aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--de_DE.ISO8859-1/Makefile8
-rw-r--r--de_DE.ISO8859-1/books/Makefile14
-rw-r--r--de_DE.ISO8859-1/books/Makefile.inc11
-rw-r--r--de_DE.ISO8859-1/books/faq/Makefile30
-rw-r--r--de_DE.ISO8859-1/books/faq/book.sgml14616
-rw-r--r--de_DE.ISO8859-1/books/handbook/Makefile36
-rw-r--r--de_DE.ISO8859-1/books/handbook/appendix.decl1
-rw-r--r--de_DE.ISO8859-1/books/handbook/backups/chapter.sgml848
-rw-r--r--de_DE.ISO8859-1/books/handbook/basics/chapter.sgml581
-rw-r--r--de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml485
-rw-r--r--de_DE.ISO8859-1/books/handbook/book.sgml119
-rw-r--r--de_DE.ISO8859-1/books/handbook/chapter.decl1
-rw-r--r--de_DE.ISO8859-1/books/handbook/chapters.ent22
-rw-r--r--de_DE.ISO8859-1/books/handbook/mailing-lists.ent114
-rw-r--r--de_DE.ISO8859-1/books/handbook/newsgroups.ent10
-rw-r--r--de_DE.ISO8859-1/books/handbook/ports/chapter.sgml1050
-rw-r--r--de_DE.ISO8859-1/books/handbook/users/chapter.sgml445
-rw-r--r--de_DE.ISO8859-1/share/sgml/bookinfo.ent12
-rw-r--r--de_DE.ISO8859-1/share/sgml/catalog9
-rw-r--r--de_DE.ISO8859-1/share/sgml/freebsd.dsl55
-rw-r--r--de_DE.ISO8859-1/share/sgml/legalnotice.sgml44
-rw-r--r--de_DE.ISO8859-1/share/sgml/translators.ent14
-rw-r--r--en/handbook/contrib/chapter.sgml5796
-rw-r--r--en_US.ISO8859-1/Makefile9
-rw-r--r--en_US.ISO8859-1/articles/Makefile20
-rw-r--r--en_US.ISO8859-1/articles/Makefile.inc5
-rw-r--r--en_US.ISO8859-1/articles/committers-guide/Makefile27
-rw-r--r--en_US.ISO8859-1/articles/committers-guide/article.sgml2252
-rw-r--r--en_US.ISO8859-1/articles/contributing/article.sgml6292
-rw-r--r--en_US.ISO8859-1/articles/dialup-firewall/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/dialup-firewall/article.sgml361
-rw-r--r--en_US.ISO8859-1/articles/diskless-x/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/diskless-x/article.sgml349
-rw-r--r--en_US.ISO8859-1/articles/explaining-bsd/Makefile23
-rw-r--r--en_US.ISO8859-1/articles/explaining-bsd/article.sgml542
-rw-r--r--en_US.ISO8859-1/articles/fonts/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/fonts/article.sgml988
-rw-r--r--en_US.ISO8859-1/articles/formatting-media/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/formatting-media/article.sgml603
-rw-r--r--en_US.ISO8859-1/articles/freebsd-questions/Makefile23
-rw-r--r--en_US.ISO8859-1/articles/freebsd-questions/article.sgml563
-rw-r--r--en_US.ISO8859-1/articles/ipsec-must/Makefile16
-rw-r--r--en_US.ISO8859-1/articles/ipsec-must/article.sgml297
-rw-r--r--en_US.ISO8859-1/articles/mh/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/mh/article.sgml782
-rw-r--r--en_US.ISO8859-1/articles/multi-os/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/multi-os/article.sgml743
-rw-r--r--en_US.ISO8859-1/articles/new-users/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/new-users/article.sgml1052
-rw-r--r--en_US.ISO8859-1/articles/programming-tools/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/programming-tools/article.sgml2256
-rw-r--r--en_US.ISO8859-1/articles/vm-design/Makefile16
-rw-r--r--en_US.ISO8859-1/articles/vm-design/article.sgml838
-rw-r--r--en_US.ISO8859-1/articles/vm-design/fig1.eps104
-rw-r--r--en_US.ISO8859-1/articles/vm-design/fig2.eps115
-rw-r--r--en_US.ISO8859-1/articles/vm-design/fig3.eps133
-rw-r--r--en_US.ISO8859-1/articles/vm-design/fig4.eps133
-rw-r--r--en_US.ISO8859-1/articles/zip-drive/Makefile14
-rw-r--r--en_US.ISO8859-1/articles/zip-drive/article.sgml267
-rw-r--r--en_US.ISO8859-1/books/Makefile15
-rw-r--r--en_US.ISO8859-1/books/Makefile.inc5
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/Makefile27
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/book.sgml508
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/chapters.ent60
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.sgml379
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/locking/chapter.sgml333
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/pci/chapter.sgml372
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/scsi/chapter.sgml1983
-rw-r--r--en_US.ISO8859-1/books/arch-handbook/usb/chapter.sgml623
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/08-01.eps8104
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/08-02.eps8655
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/08-03.eps8489
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/08-04.eps8386
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/08-05.eps12613
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/08-06.eps8457
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/Makefile25
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/book.sgml3213
-rw-r--r--en_US.ISO8859-1/books/corp-net-guide/freebsd.dsl18
-rw-r--r--en_US.ISO8859-1/books/design-44bsd/Makefile20
-rw-r--r--en_US.ISO8859-1/books/design-44bsd/book.sgml2858
-rw-r--r--en_US.ISO8859-1/books/design-44bsd/fig1.eps340
-rw-r--r--en_US.ISO8859-1/books/design-44bsd/fig2.eps1476
-rw-r--r--en_US.ISO8859-1/books/design-44bsd/freebsd.dsl22
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/Makefile27
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/book.sgml508
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/chapters.ent60
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/driverbasics/chapter.sgml379
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml639
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/locking/chapter.sgml333
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/pci/chapter.sgml372
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml396
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/scsi/chapter.sgml1983
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/secure/chapter.sgml407
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/tools/chapter.sgml2249
-rw-r--r--en_US.ISO8859-1/books/developers-handbook/usb/chapter.sgml623
-rw-r--r--en_US.ISO8859-1/books/faq/Makefile26
-rw-r--r--en_US.ISO8859-1/books/faq/book.sgml12195
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/Makefile50
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/book.sgml299
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/chapter.decl1
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/chapters.ent25
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/doc-build/chapter.sgml501
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/examples/appendix.sgml355
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml182
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml150
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml121
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml2563
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml1556
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml295
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml81
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml217
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml284
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml480
-rw-r--r--en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml318
-rw-r--r--en_US.ISO8859-1/books/handbook/Makefile73
-rw-r--r--en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml3366
-rw-r--r--en_US.ISO8859-1/books/handbook/appendix.decl1
-rw-r--r--en_US.ISO8859-1/books/handbook/authors.ent616
-rw-r--r--en_US.ISO8859-1/books/handbook/backups/chapter.sgml731
-rw-r--r--en_US.ISO8859-1/books/handbook/basics/chapter.sgml543
-rw-r--r--en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml499
-rw-r--r--en_US.ISO8859-1/books/handbook/book.sgml135
-rw-r--r--en_US.ISO8859-1/books/handbook/boot/chapter.sgml549
-rw-r--r--en_US.ISO8859-1/books/handbook/chapter.decl1
-rw-r--r--en_US.ISO8859-1/books/handbook/chapters.ent51
-rw-r--r--en_US.ISO8859-1/books/handbook/contrib/chapter.sgml6292
-rw-r--r--en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml1576
-rw-r--r--en_US.ISO8859-1/books/handbook/disks/chapter.sgml892
-rw-r--r--en_US.ISO8859-1/books/handbook/eresources/chapter.sgml1617
-rw-r--r--en_US.ISO8859-1/books/handbook/hw/chapter.sgml5854
-rw-r--r--en_US.ISO8859-1/books/handbook/install/chapter.sgml1831
-rw-r--r--en_US.ISO8859-1/books/handbook/introduction/chapter.sgml709
-rw-r--r--en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml1118
-rw-r--r--en_US.ISO8859-1/books/handbook/kerneldebug/chapter.sgml639
-rw-r--r--en_US.ISO8859-1/books/handbook/kernelopts/chapter.sgml162
-rw-r--r--en_US.ISO8859-1/books/handbook/l10n/chapter.sgml935
-rw-r--r--en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml795
-rw-r--r--en_US.ISO8859-1/books/handbook/mail/chapter.sgml486
-rw-r--r--en_US.ISO8859-1/books/handbook/mailing-lists.ent113
-rw-r--r--en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml3785
-rw-r--r--en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml326
-rw-r--r--en_US.ISO8859-1/books/handbook/newsgroups.ent10
-rw-r--r--en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml2154
-rw-r--r--en_US.ISO8859-1/books/handbook/policies/chapter.sgml396
-rw-r--r--en_US.ISO8859-1/books/handbook/ports/chapter.sgml1138
-rw-r--r--en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml2778
-rw-r--r--en_US.ISO8859-1/books/handbook/printing/chapter.sgml4561
-rw-r--r--en_US.ISO8859-1/books/handbook/security/chapter.sgml2689
-rw-r--r--en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml2721
-rw-r--r--en_US.ISO8859-1/books/handbook/sound/chapter.sgml326
-rw-r--r--en_US.ISO8859-1/books/handbook/staff/chapter.sgml1367
-rw-r--r--en_US.ISO8859-1/books/handbook/users/chapter.sgml634
-rw-r--r--en_US.ISO8859-1/books/handbook/x11/chapter.sgml1400
-rw-r--r--en_US.ISO8859-1/books/porters-handbook/Makefile29
-rw-r--r--en_US.ISO8859-1/books/porters-handbook/book.sgml4439
-rw-r--r--en_US.ISO8859-1/books/porters-handbook/freebsd.dsl41
-rw-r--r--en_US.ISO8859-1/books/ppp-primer/Makefile26
-rw-r--r--en_US.ISO8859-1/books/ppp-primer/book.sgml2372
-rw-r--r--en_US.ISO8859-1/share/images/callouts/1.pngbin294 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/10.pngbin326 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/2.pngbin318 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/3.pngbin315 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/4.pngbin310 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/5.pngbin313 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/6.pngbin320 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/7.pngbin309 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/8.pngbin322 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/images/callouts/9.pngbin322 -> 0 bytes
-rw-r--r--en_US.ISO8859-1/share/sgml/authors.ent616
-rw-r--r--en_US.ISO8859-1/share/sgml/bookinfo.ent12
-rw-r--r--en_US.ISO8859-1/share/sgml/catalog9
-rw-r--r--en_US.ISO8859-1/share/sgml/freebsd.dsl63
-rw-r--r--en_US.ISO8859-1/share/sgml/legalnotice.sgml44
-rw-r--r--en_US.ISO_8859-1/books/corp-net-guide/book.sgml4
-rw-r--r--en_US.ISO_8859-1/books/faq/book.sgml25
-rw-r--r--en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml6
-rw-r--r--en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml10
-rw-r--r--en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml6
-rw-r--r--en_US.ISO_8859-1/books/handbook/book.sgml4
-rw-r--r--en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml19
-rw-r--r--es_ES.ISO8859-1/FAQ/FAQ.sgml64
-rw-r--r--es_ES.ISO8859-1/FAQ/Makefile16
-rw-r--r--es_ES.ISO8859-1/FAQ/acknowledgments.sgml61
-rw-r--r--es_ES.ISO8859-1/FAQ/admin.sgml1163
-rw-r--r--es_ES.ISO8859-1/FAQ/applications.sgml170
-rw-r--r--es_ES.ISO8859-1/FAQ/commercial.sgml186
-rw-r--r--es_ES.ISO8859-1/FAQ/hackers.sgml556
-rw-r--r--es_ES.ISO8859-1/FAQ/hardware.sgml560
-rw-r--r--es_ES.ISO8859-1/FAQ/includes.sgml7
-rw-r--r--es_ES.ISO8859-1/FAQ/install.sgml698
-rw-r--r--es_ES.ISO8859-1/FAQ/kernelconfig.sgml156
-rw-r--r--es_ES.ISO8859-1/FAQ/misc.sgml200
-rw-r--r--es_ES.ISO8859-1/FAQ/network.sgml1167
-rw-r--r--es_ES.ISO8859-1/FAQ/preface.sgml635
-rw-r--r--es_ES.ISO8859-1/FAQ/serial.sgml538
-rw-r--r--es_ES.ISO8859-1/FAQ/troubleshoot.sgml418
-rw-r--r--es_ES.ISO8859-1/FAQ/x.sgml442
-rw-r--r--es_ES.ISO8859-1/Makefile8
-rw-r--r--es_ES.ISO8859-1/books/Makefile8
-rw-r--r--es_ES.ISO8859-1/books/Makefile.inc5
-rw-r--r--es_ES.ISO8859-1/books/faq/Makefile25
-rw-r--r--es_ES.ISO8859-1/books/faq/book.sgml9343
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/Makefile59
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/advanced-networking/chapter.sgml24
-rw-r--r--es_ES.ISO8859-1/books/handbook/appendix.decl1
-rw-r--r--es_ES.ISO8859-1/books/handbook/authors.ent477
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/backups/chapter.sgml675
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/basics/chapter.sgml156
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/bibliography/chapter.sgml488
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/book.sgml146
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/chapter.decl5
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/chapters.ent52
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/contrib/chapter.sgml29
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml39
-rw-r--r--es_ES.ISO8859-1/books/handbook/disks/chapter.sgml186
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/eresources/chapter.sgml34
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/hw/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/install/chapter.sgml1297
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/internals/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/introduction/chapter.sgml639
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/kernelconfig/chapter.sgml30
-rw-r--r--es_ES.ISO8859-1/books/handbook/kerneldebug/chapter.sgml618
-rw-r--r--es_ES.ISO8859-1/books/handbook/kernelopts/chapter.sgml165
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/l10n/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/mail/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/mailing-lists.ent48
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/mirrors/chapter.sgml29
-rw-r--r--es_ES.ISO8859-1/books/handbook/newsgroups.ent10
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/pgpkeys/chapter.sgml517
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/policies/chapter.sgml392
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/ports/chapter.sgml2091
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml29
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/printing/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/quotas/chapter.sgml243
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/security/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/serialcomms/chapter.sgml24
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/staff/chapter.sgml802
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/x11/chapter.sgml24
-rw-r--r--es_ES.ISO8859-1/share/sgml/catalog9
-rw-r--r--es_ES.ISO8859-1/share/sgml/freebsd.dsl45
-rw-r--r--fr_FR.ISO8859-1/Makefile9
-rw-r--r--fr_FR.ISO8859-1/articles/Makefile26
-rw-r--r--fr_FR.ISO8859-1/articles/Makefile.inc9
-rw-r--r--fr_FR.ISO8859-1/articles/committers-guide/Makefile20
-rw-r--r--fr_FR.ISO8859-1/articles/committers-guide/article.sgml1233
-rw-r--r--fr_FR.ISO8859-1/articles/ddwg/Makefile20
-rw-r--r--fr_FR.ISO8859-1/articles/ddwg/article.sgml1861
-rw-r--r--fr_FR.ISO8859-1/articles/diskless-x/Makefile20
-rw-r--r--fr_FR.ISO8859-1/articles/diskless-x/article.sgml298
-rw-r--r--fr_FR.ISO8859-1/articles/fonts/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/fonts/article.sgml775
-rw-r--r--fr_FR.ISO8859-1/articles/formatting-media/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/formatting-media/article.sgml557
-rw-r--r--fr_FR.ISO8859-1/articles/ip-aliasing/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/ip-aliasing/article.sgml277
-rw-r--r--fr_FR.ISO8859-1/articles/make-world/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/make-world/article.sgml1376
-rw-r--r--fr_FR.ISO8859-1/articles/mh/Makefile20
-rw-r--r--fr_FR.ISO8859-1/articles/mh/article.sgml744
-rw-r--r--fr_FR.ISO8859-1/articles/multi-os/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/multi-os/article.sgml700
-rw-r--r--fr_FR.ISO8859-1/articles/new-users/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/new-users/article.sgml827
-rw-r--r--fr_FR.ISO8859-1/articles/ntfs/Makefile20
-rw-r--r--fr_FR.ISO8859-1/articles/ntfs/article.sgml490
-rw-r--r--fr_FR.ISO8859-1/articles/ppp/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/ppp/article.sgml1894
-rw-r--r--fr_FR.ISO8859-1/articles/programming-tools/Makefile20
-rwxr-xr-xfr_FR.ISO8859-1/articles/programming-tools/article.sgml2001
-rw-r--r--fr_FR.ISO8859-1/articles/zip-drive/Makefile14
-rw-r--r--fr_FR.ISO8859-1/articles/zip-drive/article.sgml304
-rw-r--r--fr_FR.ISO8859-1/books/Makefile16
-rw-r--r--fr_FR.ISO8859-1/books/Makefile.inc9
-rw-r--r--fr_FR.ISO8859-1/books/faq/Makefile45
-rw-r--r--fr_FR.ISO8859-1/books/faq/acknowledgments.sgml92
-rw-r--r--fr_FR.ISO8859-1/books/faq/admin.sgml893
-rw-r--r--fr_FR.ISO8859-1/books/faq/applications.sgml149
-rw-r--r--fr_FR.ISO8859-1/books/faq/book.sgml97
-rw-r--r--fr_FR.ISO8859-1/books/faq/commercial.sgml254
-rw-r--r--fr_FR.ISO8859-1/books/faq/hackers.sgml299
-rw-r--r--fr_FR.ISO8859-1/books/faq/hardware.sgml478
-rw-r--r--fr_FR.ISO8859-1/books/faq/includes.sgml10
-rw-r--r--fr_FR.ISO8859-1/books/faq/install.sgml860
-rw-r--r--fr_FR.ISO8859-1/books/faq/kernelconfig.sgml147
-rw-r--r--fr_FR.ISO8859-1/books/faq/misc.sgml353
-rw-r--r--fr_FR.ISO8859-1/books/faq/network.sgml1588
-rw-r--r--fr_FR.ISO8859-1/books/faq/preface.sgml785
-rw-r--r--fr_FR.ISO8859-1/books/faq/serial.sgml626
-rw-r--r--fr_FR.ISO8859-1/books/faq/troubleshoot.sgml640
-rw-r--r--fr_FR.ISO8859-1/books/faq/x.sgml475
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/Makefile47
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/book.sgml303
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/chapters.ent23
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml187
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml154
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml124
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml2356
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml1645
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml72
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml49
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml282
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml49
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml301
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml497
-rw-r--r--fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml149
-rw-r--r--fr_FR.ISO8859-1/books/handbook/Makefile67
-rw-r--r--fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml1124
-rw-r--r--fr_FR.ISO8859-1/books/handbook/backups/chapter.sgml774
-rw-r--r--fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml163
-rw-r--r--fr_FR.ISO8859-1/books/handbook/bibliography/chapter.sgml498
-rw-r--r--fr_FR.ISO8859-1/books/handbook/book.sgml142
-rw-r--r--fr_FR.ISO8859-1/books/handbook/chapter.decl1
-rw-r--r--fr_FR.ISO8859-1/books/handbook/chapters.ent53
-rw-r--r--fr_FR.ISO8859-1/books/handbook/contrib/chapter.sgml5888
-rw-r--r--fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml2628
-rwxr-xr-xfr_FR.ISO8859-1/books/handbook/disks/chapter.sgml191
-rw-r--r--fr_FR.ISO8859-1/books/handbook/eresources/chapter.sgml1357
-rw-r--r--fr_FR.ISO8859-1/books/handbook/hw/chapter.sgml5780
-rw-r--r--fr_FR.ISO8859-1/books/handbook/in-progress.sgml9
-rw-r--r--fr_FR.ISO8859-1/books/handbook/install/chapter.sgml1298
-rw-r--r--fr_FR.ISO8859-1/books/handbook/internals/chapter.sgml2141
-rw-r--r--fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml727
-rwxr-xr-xfr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml1876
-rw-r--r--fr_FR.ISO8859-1/books/handbook/kerneldebug/chapter.sgml682
-rw-r--r--fr_FR.ISO8859-1/books/handbook/kernelopts/chapter.sgml200
-rw-r--r--fr_FR.ISO8859-1/books/handbook/l10n/chapter.sgml376
-rw-r--r--fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml973
-rw-r--r--fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml653
-rw-r--r--fr_FR.ISO8859-1/books/handbook/mailing-lists.ent113
-rw-r--r--fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml1420
-rw-r--r--fr_FR.ISO8859-1/books/handbook/pgpkeys/chapter.sgml627
-rw-r--r--fr_FR.ISO8859-1/books/handbook/policies/chapter.sgml404
-rw-r--r--fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml5197
-rw-r--r--fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml2783
-rwxr-xr-xfr_FR.ISO8859-1/books/handbook/printing/chapter.sgml5375
-rwxr-xr-xfr_FR.ISO8859-1/books/handbook/quotas/chapter.sgml284
-rwxr-xr-xfr_FR.ISO8859-1/books/handbook/security/chapter.sgml1894
-rw-r--r--fr_FR.ISO8859-1/books/handbook/serialcomms/chapter.sgml2351
-rw-r--r--fr_FR.ISO8859-1/books/handbook/staff/chapter.sgml859
-rw-r--r--fr_FR.ISO8859-1/books/handbook/todo.sgml9
-rw-r--r--fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml29
-rw-r--r--fr_FR.ISO8859-1/share/sgml/abstract.ent15
-rw-r--r--fr_FR.ISO8859-1/share/sgml/artheader.ent14
-rw-r--r--fr_FR.ISO8859-1/share/sgml/bookinfo.ent16
-rw-r--r--fr_FR.ISO8859-1/share/sgml/catalog9
-rw-r--r--fr_FR.ISO8859-1/share/sgml/copyright.sgml13
-rw-r--r--fr_FR.ISO8859-1/share/sgml/disclaimer.sgml19
-rw-r--r--fr_FR.ISO8859-1/share/sgml/freebsd.dsl53
-rw-r--r--fr_FR.ISO8859-1/share/sgml/legalnotice.sgml14
-rw-r--r--fr_FR.ISO8859-1/share/sgml/license.sgml27
-rw-r--r--fr_FR.ISO8859-1/share/sgml/translators.ent63
-rw-r--r--fr_FR.ISO8859-1/share/sgml/urls.ent22
-rw-r--r--ja_JP.eucJP/articles/contributing/article.sgml6473
-rw-r--r--ja_JP.eucJP/books/handbook/multimedia/chapter.sgml355
-rw-r--r--ja_JP.eucJP/man/man1/gtar.1588
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/aic.451
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/apm.4160
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/ar.4108
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/cs.4105
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/cx.4289
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/el.458
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/ep.4121
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/ex.484
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/fe.4284
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/ie.496
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/io.472
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/lnc.4124
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/mcd.4151
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/npx.479
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/pcf.465
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/perfmon.4225
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/pnp.4221
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/scd.465
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/spkr.4234
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/sr.4119
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/vx.4102
-rw-r--r--ja_JP.eucJP/man/man4/man4.i386/wd.4106
-rw-r--r--ja_JP.eucJP/man/man8/man8.i386/apm.8157
-rw-r--r--ja_JP.eucJP/man/man8/man8.i386/apmd.8296
-rw-r--r--ja_JP.eucJP/share/sgml/authors.ent621
-rw-r--r--ja_JP.eucJP/share/sgml/jauthors.ent91
-rw-r--r--nl_NL.ISO8859-1/Makefile6
-rw-r--r--nl_NL.ISO8859-1/share/sgml/bookinfo.ent13
-rw-r--r--nl_NL.ISO8859-1/share/sgml/catalog9
-rw-r--r--zh/FAQ/FAQ.sgml70
386 files changed, 47 insertions, 313954 deletions
diff --git a/de_DE.ISO8859-1/Makefile b/de_DE.ISO8859-1/Makefile
deleted file mode 100644
index 63a1e66199..0000000000
--- a/de_DE.ISO8859-1/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# $FreeBSD$
-
-COMPAT_SYMLINK = de
-
-SUBDIR= books
-
-DOC_PREFIX?= ${.CURDIR}/..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/de_DE.ISO8859-1/books/Makefile b/de_DE.ISO8859-1/books/Makefile
deleted file mode 100644
index 8217581a81..0000000000
--- a/de_DE.ISO8859-1/books/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD German Documentation Project
-#
-# $FreeBSD: doc/de_DE.ISO_8859-1/books/Makefile,v 1.1 2000/08/06 14:44:20 alex Exp $
-# $FreeBSDde: de-docproj/books/Makefile,v 1.4 2001/02/01 21:24:27 alex Exp $
-#
-
-SUBDIR= faq handbook
-
-ROOT_SYMLINKS= handbook
-
-DOC_PREFIX?= ${.CURDIR}/../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/de_DE.ISO8859-1/books/Makefile.inc b/de_DE.ISO8859-1/books/Makefile.inc
deleted file mode 100644
index d1d02ad633..0000000000
--- a/de_DE.ISO8859-1/books/Makefile.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD German Documentation Project
-#
-# $FreeBSD: doc/de_DE.ISO_8859-1/books/Makefile.inc,v 1.1 2000/08/25 18:33:40 alex Exp $
-# $FreeBSDde: de-docproj/books/Makefile.inc,v 1.4 2001/02/01 21:24:27 alex Exp $
-#
-
-TIDYFLAGS= -latin1
-
-DESTDIR?= ${DOCDIR}/de_DE.ISO_8859-1/books/${.CURDIR:T}
diff --git a/de_DE.ISO8859-1/books/faq/Makefile b/de_DE.ISO8859-1/books/faq/Makefile
deleted file mode 100644
index e2148ca58d..0000000000
--- a/de_DE.ISO8859-1/books/faq/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD German Documentation Project
-#
-# Build the FreeBSD FAQ in the German translation
-#
-# $FreeBSD$
-# $FreeBSDde: de-docproj/books/faq/Makefile,v 1.4 2001/02/01 21:24:28 alex Exp $
-#
-
-MAINTAINER=de-bsd-translators@DE.FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/de_DE.ISO8859-1/books/faq/book.sgml b/de_DE.ISO8859-1/books/faq/book.sgml
deleted file mode 100644
index fe232412cd..0000000000
--- a/de_DE.ISO8859-1/books/faq/book.sgml
+++ /dev/null
@@ -1,14616 +0,0 @@
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
-%authors;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//DE">
-%translators;
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//DE">
-%bookinfo;
-]>
-
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
-$FreeBSD$
-$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.134 2001/04/16 09:21:10 alex Exp $
-
- basiert auf: 1.174-en
-
--->
-
-<book id="faq" lang="de">
- <bookinfo>
- <title>H&auml;ufig gestellte Fragen zu FreeBSD 2.X, 3.X und
- 4.X</title>
-
- <subtitle>Frequently Asked Questions f&uuml;r FreeBSD 2.X, 3.X und
- 4.X</subtitle>
-
- <authorgroup>
- <corpauthor>The FreeBSD German Documentation
- Project</corpauthor>
-
- <collab>
- <collabname>Deutsche &Uuml;bersetzung von Robert S. F.
- Drehmel, Dirk Gouders und Udo Erdelhoff</collabname>
- </collab>
- </authorgroup>
-
- <pubdate>$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.134 2001/04/16 09:21:10 alex Exp $</pubdate>
-
- <copyright>
- <year>1995</year>
-
- <year>1996</year>
-
- <year>1997</year>
-
- <year>1998</year>
-
- <year>1999</year>
-
- <year>2000</year>
-
- <year>2001</year>
-
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- <copyright>
- <year>2000</year>
-
- <year>2001</year>
-
- <holder>The FreeBSD German Documentation Project</holder>
- </copyright>
-
- &bookinfo.legalnotice;
-
- <abstract>
- <para>Dies ist die FAQ f&uuml;r die FreeBSD-Versionen 2.X, 3.X
- und 4.X. Alle Eintr&auml;ge sollten f&uuml;r FreeBSD ab
- Version 2.0.5 relevant sein, andernfalls wird darauf explizit
- hingewiesen. Alle mit &lt;XXX&gt; gekennzeichneten
- Eintr&auml;ge befinden sich in Arbeit. Falls Sie daran
- interessiert sein sollten, an diesem Projekt mitzuhelfen,
- senden Sie eine Mail an die Mailingliste des FreeBSD German
- Documentation Project
- <email>de-bsd-translators@de.FreeBSD.org</email>. Die
- aktuelle Version dieses Dokuments ist st&auml;ndig auf dem
- <ulink URL="http://www.de.FreeBSD.org/">FreeBSD
- World-Wide-Web-Server</ulink> verf&uuml;gbar. Es kann auch
- per HTTP als eine gro&szlig;e <ulink
- URL="book.html">HTML</ulink>-Datei heruntergeladen werden oder
- als Textdatei, im PostScript-, PDF- und anderen Formaten vom
- <ulink URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD
- FTP-Server</ulink>. Sie k&ouml;nnen die FAQ auch <ulink
- URL="http://www.de.FreeBSD.org/search/search.html">
- durchsuchen</ulink>.</para>
- </abstract>
- </bookinfo>
-
- <preface id="preface">
- <title>Vorwort</title>
-
- <para>Willkommen zur FreeBSD 2.X-4.X FAQ!</para>
-
- <para>Wie auch bei den Usenet FAQs &uuml;blich, wird mit diesem
- Dokument beabsichtigt, die am h&auml;ufigsten gestellten Fragen
- bez&uuml;glich des Betriebssystems FreeBSD zu erfassen und sie
- nat&uuml;rlich auch zu beantworten. Obwohl FAQs
- urspr&uuml;nglich lediglich dazu dienen sollten, die
- Netzbelastung zu reduzieren und das st&auml;ndige Wiederholen
- derselben Fragen zu vermeiden, haben sie sich als wertvolle
- Informationsquellen etabliert.</para>
-
- <para>Wir haben uns die gr&ouml;&szlig;te M&uuml;he gegeben, diese
- FAQ so lehrreich wie m&ouml;glich zu gestalten; falls Sie
- irgendwelche Vorschl&auml;ge haben, wie sie verbessert werden
- kann, senden Sie diese bitte an den &a.faq;.</para>
-
- <qandaset>
- <qandaentry>
- <question id="what-is-freebsd">
- <para>Was ist FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD ist, kurz gesagt, ein UN*X-&auml;hnliches
- Betriebssystem f&uuml;r die Plattformen i386 und
- Alpha/AXP, das auf der <quote>4.4BSD-Lite</quote>-Release
- der University of California at Berkeley (UCB) basiert;
- au&szlig;erdem flossen einige Erweiterungen aus der
- <quote>4.4BSD-Lite2</quote>-Release mit ein. Es basiert
- au&szlig;erdem indirekt auf der von William Jolitz unter
- dem Namen <quote>386BSD</quote> herausgebrachten
- Portierung der <quote>Net/2</quote>-Release der UCB auf
- die i386-Plattform - allerdings ist nur wenig vom
- 386BSD-Code &uuml;briggeblieben. Eine umfassendere
- Beschreibung dar&uuml;ber, was FreeBSD ist und wie Sie es
- f&uuml;r Ihre Zwecke verwenden k&ouml;nnen, finden Sie auf
- der <ulink URL="http://www.de.FreeBSD.org/">FreeBSD home
- page</ulink>.</para>
-
- <para>Unternehmen, Internet Service Provider, Forscher,
- Computerfachleute, Studenten und Privatnutzer auf der
- ganzen Welt nutzen FreeBSD f&uuml;r die Arbeit, die
- Ausbildung oder zur Freizeitgestaltung. Sie finden einige
- von ihnen in der <ulink
- URL="http://www.de.FreeBSD.org/gallery/gallery.html">FreeBSD
- Gallerie</ulink>.</para>
-
- <para>Ausf&uuml;hrlichere Informationen zu FreeBSD, finden
- Sie im <ulink URL="../handbook/index.html">FreeBSD
- Handbuch</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="FreeBSD-goals">
- <para>Welches sind die Ziele von FreeBSD?</para>
- </question>
-
- <answer>
- <para>Die Ziele von FreeBSD sind es, Software zur Nutzung
- f&uuml;r beliebige Zwecke, bedingungslos zur
- Verf&uuml;gung zu stellen. Viele von uns haben
- entscheidend zur Erstellung des Codes (und zum Projekt)
- beigetragen und h&auml;tten jetzt oder in Zukunft
- sicherlich nichts gegen einen geringen finanziellen
- Ausgleich einzuwenden, aber wir beabsichtigen definitiv
- nicht, darauf zu bestehen. Wir sind der Meinung,
- da&szlig; unsere <quote>Mission</quote> zuerst und
- vorderst darin besteht, allen und jedem Kommenden Code
- f&uuml;r welchen Zweck auch immer zur Verf&uuml;gung zu
- stellen, damit der Code m&ouml;glichst weit eingesetzt
- wird und den gr&ouml;&szlig;tm&ouml;glichen Nutzen
- liefert. Das ist, so glauben wir, eines der
- fundamentalsten Ziele von freier Software und eines, das
- wir enthusiastisch unterst&uuml;tzen.</para>
-
- <para>Der Code in unserem Quellbaum, der der GNU General
- Public License (GPL) oder der GNU Library General Public
- License (LGPL) unterliegt, ist mit zus&auml;tzlichen,
- geringf&uuml;gigen Bedingungen verkn&uuml;pft, jedoch
- handelt es sich dabei lediglich um erzwungene
- Bereitstellung statt des sonst &uuml;blichen Gegenteils.
- Auf Grund der zus&auml;tzlichen Komplexit&auml;t, die
- durch den kommerziellen Einsatz von GPL Software entstehen
- kann, bem&uuml;hen wir uns jedoch, solche Software, wo
- m&ouml;glich, durch solche, die dem etwas lockereren BSD
- Copyright unterliegt, zu ersetzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="why-called-FreeBSD">
- <para>Warum hei&szlig;t es FreeBSD?</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>Es darf kostenlos genutzt werden - sogar von
- kommerziellen Benutzern.</para>
- </listitem>
-
- <listitem>
- <para>Der komplette Quellcode f&uuml;r das
- Betriebssystem ist frei verf&uuml;gbar und die
- Benutzung, Verbreitung und Einbindung in andere
- (kommerzielle und nicht-kommerzielle) Arbeiten sind
- mit den geringstm&ouml;glichen Einschr&auml;nkungen
- versehen worden.</para>
- </listitem>
-
- <listitem>
- <para>Jedem ist es freigestellt, Code f&uuml;r
- Verbesserungen und/oder die Behebung von Fehlern
- einzusenden und ihn zum Quellbaum hinzuf&uuml;gen zu
- lassen (dies ist nat&uuml;rlich Gegenstand von ein
- oder zwei offensichtlichen Klauseln).</para>
- </listitem>
- </itemizedlist>
-
- <para>Es wird darauf hingewiesen, da&szlig; das englisch
- Wort <quote>free</quote> hier in den Bedeutungen
- <quote>umsonst</quote> und <quote>Sie k&ouml;nnen tun, was
- immer Sie m&ouml;chten</quote> genutzt wird. Abgesehen
- von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code
- <emphasis>nicht</emphasis> tun k&ouml;nnen (z.B. vorgeben,
- ihn geschrieben zu haben), k&ouml;nnen Sie damit
- tats&auml;chlich tun, was auch immer Sie
- m&ouml;chten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="latest-version">
- <para>Welches ist die aktuelle FreeBSD-Version?</para>
- </question>
-
- <answer>
- <para>Version <ulink
- url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/">4.2</ulink>
- ist die aktuelle, <emphasis>STABLE</emphasis> Version; sie
- ist im November 2000 erschienen. Gleichzeitig ist sie
- auch die aktuelle
- <emphasis>RELEASE</emphasis>-Version.</para>
-
- <para>Kurz erl&auml;utert, <emphasis>-STABLE</emphasis> ist
- f&uuml;r ISPs und andere Benutzer gedacht, die mehr Wert
- auf Stabilit&auml;t und eine niedrige
- &Auml;nderungsfrequenz als auf die neuesten Features im
- aktuellen <emphasis>-CURRENT</emphasis> Snapshot legen.
- Releases k&ouml;nnen aus jedem Zweig entstehen, Sie
- sollten <emphasis>-CURRENT</emphasis> allerdings nur dann
- benutzen, wenn Sie auf ein erh&ouml;htes Fehlverhalten
- im Vergleich zu <emphasis>-STABLE</emphasis> auch
- vorbereitet sind.</para>
-
- <para>Releases entstehen nur <link
- linkend="release-freq">alle paar Monate</link>. Viele
- Leute halten ihre Systeme aktueller (lesen Sie die Fragen
- zu <link linkend="current">FreeBSD-CURRENT</link> und
- <link linkend="stable">FreeBSD-STABLE</link>), aber das
- erfordert ein erh&ouml;htes Engagement, da die Sourcen
- sich st&auml;ndig ver&auml;ndern.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="current">
- <para>Was ist FreeBSD-CURRENT?</para>
- </question>
-
- <answer>
- <para><ulink URL="../handbook/cutting-edge.html#CURRENT">
- FreeBSD-CURRENT</ulink> ist die Entwicklungsversion des
- Betriebssystems, die zu gegebener Zeit zu 5.0-RELEASE
- werden wird. Als solche ist sie lediglich f&uuml;r
- Entwickler, die am System mitarbeiten und f&uuml;r
- unentwegte Bastler von Interesse. Details zum Betrieb von
- -CURRENT finden Sie im <ulink
- URL="../handbook/cutting-edge.html#CURRENT">
- entsprechenden Abschnitt</ulink> des <ulink
- URL="../handbook/index.html">Handbuchs</ulink>.</para>
-
- <para>Falls Sie nicht mit dem Betriebssystem vertraut sind
- oder nicht in der Lage sein sollten, den Unterschied
- zwischen einen echten und einem tempor&auml;ren Problem zu
- erkennen, sollten Sie FreeBSD-CURRENT nicht verwenden.
- Dieser Zweig entwickelt sich manchmal sehr schnell weiter
- und kann gelegentlich f&uuml;r mehrere Tage hintereinander
- nicht installierbar sein. Von Personen, die
- FreeBSD-CURRENT verwenden, wird erwartet, da&szlig; Sie
- dazu in der Lage sind, Probleme zu analysieren und nur
- dann von ihnen berichten, wenn es sich um Fehler und nicht
- um <quote>kurzzeitige St&ouml;rungen</quote> handelt.
- Fragen wie <quote>make world produziert Fehlermeldungen
- bez&uuml;glich Gruppen</quote> werden in der -CURRENT
- Mailingliste manchmal nicht beachtet.</para>
-
- <para>Jeden Tag wird der aktuelle Entwicklungsstand in den
- Zweigen -CURRENT und -STABLE in einer <ulink
- URL="http://www.de.FreeBSD.org/releases/snapshots.html">Snapshot</ulink>
- Releases festgehalten. Mittlerweile werden sogar CDROM
- Distributionen dieser gelegentlichen Snapshots zur
- Verf&uuml;gung gestellt. Die Ziele dieser Snapshot
- Releases sind:</para>
-
- <itemizedlist>
- <listitem>
- <para>Die aktuelle Version der Installationssoftware zu
- testen.</para>
- </listitem>
-
- <listitem>
- <para>Personen, die -CURRENT oder -STABLE benutzen
- m&ouml;chten, aber nicht &uuml;ber die n&ouml;tige
- Zeit und/oder Bandbreite verf&uuml;gen, um
- tagesaktuell zu bleiben, soll eine bequeme
- M&ouml;glichkeit geboten werden, es auf ihr System zu
- bringen.</para>
- </listitem>
-
- <listitem>
- <para>Die Erhaltung von Referenzpunkten des fraglichen
- Codes, f&uuml;r den Fall, da&szlig; wir sp&auml;ter
- einmal ernsthaften Schaden anrichten sollten (obwohl
- CVS verhindern sollte, da&szlig; solche Situationen
- entstehen :)</para>
- </listitem>
-
- <listitem>
- <para>Sicherzustellen, da&szlig; zu testende, neue
- Merkmale an eine m&ouml;glichst gro&szlig;en Zahl
- potentieller Tester gelangen.</para>
- </listitem>
- </itemizedlist>
-
- <para>Von keinem -CURRENT Snapshot kann
- <quote>Produktionsqualit&auml;t</quote> f&uuml;r beliebige
- Zwecke erwartet werden. Wenn Sie eine stabile und
- ausgetestete Version ben&ouml;tigen, sollten Sie eine
- vollst&auml;ndige Release oder einen -STABLE Snapshot
- verwenden.</para>
-
- <para>Snapshot Releases von 5.0-CURRENT sind unter <ulink
- URL="ftp://current.FreeBSD.org/pub/FreeBSD/">
- ftp://current.FreeBSD.org/pub/FreeBSD/</ulink>
- verf&uuml;gbar; wenn Sie einen Snapshot von 4-STABLE
- erhalten m&ouml;chten, lautet die Adresse <ulink
- url="ftp://releng4.FreeBSD.org/pub/FreeBSD">releng4.FreeBSD.org</ulink>.
- Zur Zeit (Mai 2000) werden keine Snapshots von 3-STABLE
- erstellt.</para>
-
- <para>In der Regel wird jeden Tag ein Snapshot jedes zur
- Zeit aktiven Zweiges erstellt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stable">
- <para>Was ist das Konzept von FreeBSD-STABLE?</para>
- </question>
-
- <answer>
- <para>Zur Zeit, als FreeBSD 2.0.5 herausgegeben wurde, haben
- wir entschieden, die Entwicklung von FreeBSD zweizuteilen.
- Ein Zweig wurde <ulink
- URL="../handbook/stable.html">-STABLE</ulink> genannt. In
- diesem Zweige werden nur ausgetestete Fehlerbehebungen und
- kleine, inkrementelle &Auml;nderungen aufgenommen. Dieser
- Zweig ist f&uuml;r Anbieter von Internetdiensten und
- andere kommerzielle Unternehmen gedacht, f&uuml;r die
- pl&ouml;tzliche Ver&auml;nderungen und experimentelle
- Features unerw&uuml;nscht sind. Der andere Zweig war
- <ulink
- URL="../handbook/cutting-edge.html#CURRENT">-CURRENT</ulink>.
- Im wesentlichen stellt eine ununterbrochene Linie zum
- 4.0-RELEASE (und dar&uuml;ber hinaus) dar, seit 2.0
- herausgegeben worden ist. Die folgende ASCII-Zeichnung
- soll verdeutlichen, wie das aussieht:</para>
-
- <programlisting>
- 2.0
- |
- |
- | [2.1-STABLE]
- *ZWEIG* 2.0.5 -&gt; 2.1 -&gt; 2.1.5 -&gt; 2.1.6 -&gt; 2.1.7.1 [2.1-STABLE endet]
- | (M&auml;rz 1997)
- |
- |
- | [2.2-STABLE]
- *ZWEIG* 2.2.1 -&gt; 2.2.2-RELEASE -&gt; 2.2.5 -&gt; 2.2.6 -&gt; 2.2.7 -&gt; 2.2.8 [Ende]
- | (M&auml;rz 1997) (Okt 97) (Apr 98) (Jul 98) (Dez 98)
- |
- |
- 3.0-SNAPs (begonnen im 1. Quartal 1997)
- |
- |
- 3.0-RELEASE (Okt 1998)
- |
- | [3.0-STABLE]
- *ZWEIG* 3.1-RELEASE (Feb 1999) -&gt; 3.2 -&gt; 3.3 -&gt; 3.4 -&gt; 3.5 -&gt; 3.5.1
- | (Mai 1999) (Sep 1999) (Dec 1999) (Jun 2000) (Juli 2000)
- |
- | [4.0-STABLE]
- *ZWEIG* 4.0 (M&auml;rz 2000) -&gt; 4.1 -&gt; 4.1.1 -&gt; 4.2 -&gt; ... zuk&uuml;nftige 4.x Releases ...
- | (Jul 2000) (Sep 2000) (Nov 2000)
- |
- |
- \|/
- +
- [5.0-CURRENT wird fortgesetzt]
- </programlisting>
-
- <para>Der -CURRENT-Zweig entwickelt sich langsam in Richtung
- 5.0 und dar&uuml;ber hinaus weiter. Der fr&uuml;here
- 2.2-STABLE-Zweig wurde mit der Version 2.2.8 stillgelegt
- und wurde durch 3-STABLE ersetzt, 3.5.1 (die letzte
- 3.x-Release) erschien im Juli 2000. Im Mai 2000 wurde der
- Zweig 3-STABLE fast v&ouml;llig von 4-STABLE ersetzt (auch
- wenn 3.5 erst nach diesem Zeitpunkt herausgegeben wurde).
- 4.2-RELEASE erschien im November 2000. 4-STABLE ist der
- Zweig, auf den sich die Entwicklung zur Zeit konzentriert,
- aber wichtige Fehlerkorrekturen (haupts&auml;chlich im
- Bereich Sicherheit) werden immer noch auf 3-STABLE
- &uuml;bertragen. Der 3.x-Zweig wird wahrscheinlich im
- Sommer 2000 offiziell eingestellt. 5.0-CURRENT ist jetzt
- der <quote>aktive Zweig</quote>, ein Datum f&uuml;r eine
- Release steht noch nicht fest.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="release-freq">
- <para>Wann werden FreeBSD-Versionen erstellt?</para>
- </question>
-
- <answer>
- <para>Prinzipiell gibt das FreeBSD Core Team nur dann neue
- FreeBSD-Versionen heraus, wenn es der Meinung ist,
- da&szlig; gen&uuml;gend neue Bestandteile und/oder
- Fehlerkorrekturen vorliegen, die dies rechtfertigen.
- Au&szlig;erdem mu&szlig; es davon &uuml;berzeugt sind,
- da&szlig; die durchgef&uuml;hrten &Auml;nderungen derart
- ins System integriert sind, da&szlig; eine
- Beeintr&auml;chtigung der Stabilit&auml;t der Version
- ausgeschlossen ist. Viele Benutzer halten dies f&uuml;r
- einen gro&szlig;en Vorteil von FreeBSD, obwohl es manchmal
- frustrierend sein kann, so lange auf die
- Verf&uuml;gbarkeit der aktuellsten Leckerbissen zu
- warten...</para>
-
- <para>Neue Versionen werden durchschnittlich alle vier
- Monate erstellt.</para>
-
- <para>F&uuml;r diejenigen, die ein wenig mehr Spannung
- brauchen (oder m&ouml;chten), werden t&auml;glich
- Snapshots herausgegeben... siehe oben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="available-platforms">
- <para>Gibt es FreeBSD nur f&uuml;r PCs?</para>
- </question>
-
- <answer>
- <para>Seit Version 3.0 ist FreeBSD f&uuml;r die <ulink
- URL="http://www.de.FreeBSD.org/alpha/alpha.html">DEC
- Alpha</ulink> und x86 Architekturen verf&uuml;gbar. Es
- wurde auch Interesse an einer Portierung auf die
- Plattformen SPARC, PowerPC und IA64 bekundet.</para>
-
- <para>Falls Ihre Maschine eine andere Architektur aufweist
- und Sie unbedingt sofort etwas ben&ouml;tigen, schlagen
- wir vor, da&szlig; Sie sich einmal <ulink
- URL="http://www.netbsd.org/">NetBSD</ulink> oder <ulink
- URL="http://www.openbsd.org/">OpenBSD</ulink>
- ansehen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="responsible">
- <para>Wer ist f&uuml;r FreeBSD verantwortlich?</para>
- </question>
-
- <answer>
- <para>Schl&uuml;sseldiskussionen, die das FreeBSD-Projekt
- betreffen, wie z.B. &uuml;ber die generelle Ausrichtung
- des Projekts und dar&uuml;ber, wem es erlaubt sein soll,
- Code zum Quellbaum hinzuzuf&uuml;gen, werden innerhalb
- eines <ulink URL="../handbook/staff.html#STAFF-CORE">Core
- Team</ulink> von etwa 9 Personen gef&uuml;hrt. Es gibt
- ein weitaus gr&ouml;&szlig;eres Team von &uuml;ber 200
- <ulink
- URL="../handbook/staff-committers.html">Committers</ulink>,
- die dazu autorisiert sind, &Auml;nderungen am FreeBSD
- Quellbaum durchzuf&uuml;hren.</para>
-
- <para>Jedoch werden die meisten nicht-trivialen
- &Auml;nderungen zuvor in den <link
- linkend="mailing">Mailinglisten</link> diskutiert und es
- bestehen keinerlei Einschr&auml;nkungen dar&uuml;ber, wer
- sich an diesen Diskussionen beteiligen darf.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="where-get">
- <para>Wie kann ich FreeBSD beziehen?</para>
- </question>
-
- <answer>
- <para>Jede bedeutende Ausgabe von FreeBSD ist per
- Anonymous-FTP vom <ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">FreeBSD FTP
- Server</ulink> erh&auml;ltlich:</para>
-
- <itemizedlist>
- <listitem>
- <para>Die aktuelle Ausgabe von 3.X-STABLE,
- 3.5.1-RELEASE, finden Sie im Verzeichnis <ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/releases/i386/3.5.1-RELEASE/">
- 3.5.1-RELEASE</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>Die aktuelle Ausgabe von 4-STABLE, 4.2-RELEASE,
- finden Sie im Verzeichnis <ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/">
- 4.2-RELEASE</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://releng4.FreeBSD.org/pub/FreeBSD/">4.X
- Snapshots</ulink> werden in der Regel einmal
- t&auml;glich erstellt.</para>
- </listitem>
-
- <listitem>
- <para>Einmal t&auml;glich werden <ulink
- URL="ftp://current.FreeBSD.org/pub/FreeBSD/">5.0
- Snapshot</ulink> Ausgaben vom <link
- linkend="current">-CURRENT</link>-Zweig erstellt, die
- allerdings nur den Testern und Entwicklern an
- vorderster Front dienen.</para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD ist au&szlig;erdem auf CDROM von folgenden
- Stellen erh&auml;ltlich:</para>
-
- <address>BSDi
-<street>4041 Pike Lane, Suite F</street>
-<city>Concord</city>, <state>CA</state>
-<postcode>94520</postcode>
-<country>USA</country>
-
-<phone>Orders: +1 800 786-9907</phone>
-<phone>Questions: +1 925 674-0783</phone>
-<fax>FAX: +1 925 674-0821</fax>
-<otheraddr>email: <ulink URL="mailto:orders@osd.bsdi.com">BSDi Orders address</ulink></otheraddr>
-<otheraddr>WWW: <ulink URL="http://osd.bsdi.com/">BSDi Home page</ulink></otheraddr></address>
-
- <para>In Australia, finden Sie es unter:</para>
-
- <address>Advanced Multimedia Distributors
-<street>Factory 1/1 Ovata Drive</street>
-<city>Tullamarine, Melbourne</city>
-<state>Victoria</state>
-<country>Australia</country>
-<phone>Voice: +61 3 9338 6777</phone>
-
-<otheraddr>CDROM Support BBS</otheraddr>
-<street>17 Irvine St</street>
-<city>Peppermint Grove</city>, <state>WA</state>
-<postcode>6011</postcode>
-<phone>Voice: +61 9 385-3793</phone>
-<fax>Fax: +61 9 385-2360</fax></address>
-
- <para>Und in Gro&szlig;britannien:</para>
-
- <address>The Public Domain &amp; Shareware Library
-<street>Winscombe House, Beacon Rd</street>
-<city>Crowborough</city>
-<state>Sussex. TN6 1UL</state>
-<phone>Voice: +44 1892 663-298</phone>
-<fax>Fax: +44 1892 667-473</fax></address>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mailing">
- <para>Woher bekomme ich Informationen zu den FreeBSD
- Mailinglisten?</para>
- </question>
-
- <answer>
- <para>Vollst&auml;ndige Informationen finden Sie im <ulink
- URL="../handbook/eresources.html#ERESOURCES-MAIL">Handbucheintrag
- &uuml;ber Mailinglisten</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="y2k">
- <para>Wo finde ich die FreeBSD-spezifischen Informationen
- zum Jahr-2000-Problem?</para>
- </question>
-
- <answer>
- <para>Vollst&auml;ndige Informationen finden Sie auf der
- <ulink URL="http://www.de.FreeBSD.org/y2kbug.html">FreeBSD
- Jahr-2000-Seite</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="newsgroups">
- <para>Welche Newsgruppen existieren zu FreeBSD?</para>
- </question>
-
- <answer>
- <para>Sie finden alle Informationen hierzu im <ulink
- URL="../handbook/eresources-news.html">Handbucheintrag zu
- Newsgruppen</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="irc">
- <para>Gibt es FreeBSD IRC (Internet Relay Chat)
- Kan&auml;le?</para>
- </question>
-
- <answer>
- <para>Ja, die meisten gro&szlig;en IRC Netze bieten einen
- FreeBSD Chat-Channel:</para>
-
- <itemizedlist>
- <listitem>
- <para>Channel <literal>FreeBSD</literal> im EFNet ist
- ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um
- technische Unterst&uuml;tzung zu suchen, oder, um zu
- versuchen, die Leute dort dazu zu bringen, Ihnen dabei
- zu Helfen, das m&uuml;hselige Lesen von Manuals zu
- ersparen oder eigene Nachforschungen zu betreiben. Es
- ist in erster Linie ein Chat-Channel und die Themen
- dort umfassen Sex, Sport oder Kernwaffen ebensogut,
- wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf
- dem Server <hostid>irc.chat.org</hostid>
- verf&uuml;gbar.</para>
- </listitem>
-
- <listitem>
- <para>Der Channel <emphasis>#FreeBSDhelp</emphasis> im
- EFNet hat sich dagegen auf die Unterst&uuml;tzung der
- Benutzer von FreeBSD spezialisiert. In diesem Channel
- sind Fragen deutlich willkommener als im Channel
- <emphasis>#FreeBSD</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Der Channel <literal>#FreeBSD</literal> im DALNET
- ist in den USA unter <hostid>irc.dal.net</hostid> und
- in Europa unter <hostid>irc.eu.dal.net</hostid>
- verf&uuml;gbar.</para>
- </listitem>
-
- <listitem>
- <para>Der Channel <literal>#FreeBSD</literal> im
- UNDERNET ist in den USA unter
- <hostid>us.undernet.org</hostid> und in Europa unter
- <hostid>eu.undernet.org</hostid> verf&uuml;gbar. Es
- handelt sich hierbei um einen Hilfe-Channel, man wird
- Sie daher auf Dokumente verweisen, die Sie selbst
- lesen m&uuml;ssen.</para>
- </listitem>
-
- <listitem>
- <para>Der Channel <literal>#FreeBSD</literal> im <ulink
- url="http://www.hybnet.net/">HybNet</ulink>. Dieser
- Channel <emphasis>ist</emphasis> ein Hilfe-Channel.
- Eine Liste der m&ouml;glichen Server finden Sie auf
- der <ulink url="http://www.hybnet.net/">Webseite von
- HybNet</ulink>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Alle diese Kan&auml;le unterscheiden sich voneinander
- und sind nicht miteinander verbunden. Ebenso
- unterscheiden sich Ihre Chat-Stile, weshalb es sein kann,
- da&szlig; Sie zun&auml;chst alle Kan&auml;le ausprobieren
- m&uuml;ssen, um den zu Ihrem Chat-Stil passenden zu
- finden. Hier gilt, was f&uuml;r *jeden* IRC-Verkehr gilt:
- falls sie sich leicht angegriffen f&uuml;hlen oder nicht
- mit vielen jungen (und einigen &auml;lteren) Leuten,
- verbunden mit dem nutzlosen Gezanke umgehen k&ouml;nnen,
- dann ziehen Sie es gar nicht erst in
- Erw&auml;gung.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="books">
- <para>B&uuml;cher &uuml;ber FreeBSD</para>
- </question>
-
- <answer>
- <para>Es gibt ein FreeBSD Documentation Project, das Sie
- &uuml;ber die Mailingliste <literal>freebsd-doc</literal>
- erreichen (oder an dem Sie besser noch teilnehmen)
- k&ouml;nnen: <email>freebsd-doc@FreeBSD.org</email>.
- Diese Liste dient zu Diskussionen &uuml;ber die
- FreeBSD-Dokumentation. F&uuml;r Fragen bez&uuml;glich
- FreeBSD gibt es die
- <literal>freebsd-questions</literal>-Mailingliste:
- <email>freebsd-questions@FreeBSD.org</email>.</para>
-
- <para>Es gibt ein FreeBSD-<quote>Handbuch</quote>, das sie
- hier finden: <ulink URL="../handbook/index.html">Das
- FreeBSD-Handbuch</ulink>. Beachten Sie bitte, da&szlig;
- es sich noch in Arbeit befindet, weshalb einige Teile
- nicht vollst&auml;ndig oder veraltet sein
- k&ouml;nnten.</para>
-
- <para><quote>The Complete FreeBSD</quote> hei&szlig;t der
- definitive F&uuml;hrer zu FreeBSD, verfa&szlig;t von Greg
- Lehey und herausgegeben von BSDi (fr&uuml;her Walnut
- Creek) CDROM Books. Mittlerweile in der dritten Ausgabe,
- enth&auml;lt das Buch 773 Seiten mit Anweisungen zur
- Installation &amp; Systemadministration, Hilfe zur
- Programmeinrichtung und Manuals. Das Buch (und die
- aktuelle FreeBSD-Ausgabe) k&ouml;nnen Sie bei <ulink
- URL="http://www.osd.bsdi.com/">BSDi</ulink>, bei <ulink
- URL="http://www.cheapbytes.com/">CheapBytes</ulink> oder
- bei Ihrem Buchh&auml;ndler bestellen. Die ISBN lautet
- 1-57176-246-9.</para>
-
- <para>Da FreeBSD auf Berkeley 4.4BSD-Lite basiert, sind die
- meisten 4.4BSD Manuals f&uuml;r FreeBSD anwendbar.
- O'Reilly and Associates geben diese Manuals
- heraus:</para>
-
- <itemizedlist>
- <listitem>
- <informaltable frame=none>
- <tgroup cols=1>
- <tbody>
- <row>
- <entry>4.4BSD System Manager's Manual</entry>
- </row>
-
- <row>
- <entry>Computer Systems Research Group, UC
- Berkeley</entry>
- </row>
-
- <row>
- <entry>1st Edition June 1994, 804 pages</entry>
- </row>
-
- <row>
- <entry><ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1565920805">ISBN</ulink>:
- 1-56592-080-5</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
-
- <listitem>
- <informaltable frame=none>
- <tgroup cols=1>
- <tbody>
- <row>
- <entry>4.4BSD User's Reference Manual</entry>
- </row>
-
- <row>
- <entry>By Computer Systems Research Group, UC
- Berkeley</entry>
- </row>
-
- <row>
- <entry>1st Edition June 1994, 905 pages</entry>
- </row>
-
- <row>
- <entry><ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1565920759">ISBN</ulink>:
- 1-56592-075-9</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
-
- <listitem>
- <informaltable frame=none>
- <tgroup cols=1>
- <tbody>
- <row>
- <entry>4.4BSD User's Supplementary
- Documents</entry>
- </row>
-
- <row>
- <entry>Computer Systems Research Group, UC
- Berkeley</entry>
- </row>
-
- <row>
- <entry>1st Edition July 1994, 712 pages</entry>
- </row>
-
- <row>
- <entry><ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1565920767">ISBN</ulink>:
- 1-56592-076-7 </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
-
- <listitem>
- <informaltable frame=none>
- <tgroup cols=1>
- <tbody>
- <row>
- <entry>4.4BSD Programmer's Reference Manual
- </entry>
- </row>
-
- <row>
- <entry>Computer Systems Research Group, UC
- Berkeley</entry>
- </row>
-
- <row>
- <entry>1st Edition June 1994, 886 pages</entry>
- </row>
-
- <row>
- <entry><ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1565920783">ISBN</ulink>:
- 1-56592-078-3</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
-
- <listitem>
- <informaltable frame=none>
- <tgroup cols=1>
- <tbody>
- <row>
- <entry>4.4BSD Programmer's Supplementary
- Documents</entry>
- </row>
-
- <row>
- <entry>Computer Systems Research Group, UC
- Berkeley</entry>
- </row>
-
- <row>
- <entry>1st Edition July 1994, 596 pages</entry>
- </row>
-
- <row>
- <entry><ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1565920791">ISBN</ulink>:
- 1-56592-079-1</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
- </itemizedlist>
-
- <para>Eine Beschreibung im WWW finden Sie unter: <ulink
- URL="http://gnn.com/gnn/bus/ora/category/bsd.html">Beschreibung
- zu 4.4BSD B&uuml;chern</ulink>. Aufgrund geringer
- Nachfrage k&ouml;nnten diese Manuals aber schwer zu
- bekommen sein.</para>
-
- <para>F&uuml;r einen tieferen Einblick in die Organisation
- des 4.4BSD-Kernels k&ouml;nnen Sie mit diesem Buch nichts
- falsch machen:</para>
-
- <informaltable frame="none">
- <tgroup cols=1>
- <tbody>
- <row>
- <entry>McKusick, Marshall Kirk, Keith Bostic,
- Michael J Karels, and John Quarterman</entry>
- </row>
-
- <row>
- <entry>The Design and Implementation of the 4.4BSD
- Operating System</entry>
- </row>
-
- <row>
- <entry>Reading, Mass.: Addison-Wesley, 1996</entry>
- </row>
-
- <row>
- <entry><ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/0201549794">ISBN</ulink>
- 0-201-54979-4</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Ein gutes Buch zur Systemadministration:</para>
-
- <informaltable frame="none">
- <tgroup cols=1>
- <tbody>
- <row>
- <entry>Evi Nemeth, Garth Snyder, Scott Seebass &amp;
- Trent R. Hein</entry>
- </row>
-
- <row>
- <entry>Unix System Administration Handbook</entry>
- </row>
-
- <row>
- <entry>Prentice-Hall, 2000</entry>
- </row>
-
- <row>
- <entry><ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/0130206016">ISBN</ulink>:
- 0-13-020601-6</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>
- <note>
- <para>Achten Sie unbedingt darauf, da&szlig; Sie die
- dritte Ausgabe im lila Umschlag bekommen und nicht die
- erste Ausgabe (gelber Umschlag) oder die zweite
- Ausgabe (roter Umschlag).</para>
- </note>
- </para>
-
- <para>Dieses Buch umfa&szlig;t Grundlagen, sowie TCP/IP,
- DNS, NFS, SLIP/PPP, Sendmail, INN/NNTP, Printing, usw.
- Das Buch ist zwar teuer (etwa US&#36;45-&#36;55), aber
- seinen Preis wert. Au&szlig;erdem enth&auml;lt es eine
- CDROM mit dem Quellcode f&uuml;r verschiedene Werkzeuge;
- allerdings sind die meisten von ihnen auch auf der FreeBSD
- 2.2.6R CDROM (und die FreeBSD-CDROM enth&auml;lt
- h&auml;ufig neuere Versionen).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="access-pr">
- <para>Wie greife ich auf die Datenbank mit Problemberichten
- zu?</para>
- </question>
-
- <answer>
- <para>Die Datenbank mit Problemberichten (PR - Problem
- Report) &Auml;nderungsanfragen von Benutzern kann
- &uuml;ber die Web-basierte PR- <ulink
- URL="http://www.de.FreeBSD.org/cgi/query-pr-summary.cgi?query">Abfrage</ulink>-Schnittstelle
- abgefragt und &uuml;ber das PR-<ulink
- URL="http://www.de.FreeBSD.org/send-pr.html">Einsende</ulink>-Interface
- k&ouml;nnen Einsendungen vorgenommen werden. Der
- <command>send-pr(1)</command>-Befehl kann auch dazu
- genutzt werden, Problemberichte oder
- &Auml;nderungsantr&auml;ge per Email einzusenden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="doc-formats">
- <para>Ist die Dokumentation auch in anderen Formaten
- verf&uuml;gbar? Zum Beispiel als einfacher Text (ASCII)
- oder als Postscript?</para>
- </question>
-
- <answer>
- <para>Ja. Werfen Sie einen Blick auf das Verzeichnis <ulink
- url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink>
- auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation
- in vielen verschiedenen Format.</para>
-
- <para>Die Dokumentation wurde nach vielen verschiedenen
- Kriterien sortiert. Die Kriterien sind:</para>
-
- <itemizedlist>
- <listitem>
- <para>Der Name des Dokumentes, z.B.
- <literal>FAQ</literal> oder
- <literal>Handbuch</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Die Sprache und der Zeichensatz, die in dem
- Dokument verwendet werden. Diese entsprechen den
- Anpassungen, die Sie auf Ihrem FreeBSD-System im
- Verzeichnis <filename>/usr/share/locale</filename>
- finden. Zur Zeit werden die folgenden Sprachen und
- Zeichens&auml;tze benutzt:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Bedeutung</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>en_US.ISO_8859-1</literal></entry>
-
- <entry>US Englisch</entry>
- </row>
-
- <row>
- <entry><literal>es_ES.ISO_8859-1</literal></entry>
-
- <entry>Spanisch</entry>
- </row>
-
- <row>
- <entry><literal>fr_FR.ISO_8859-1</literal></entry>
-
- <entry>Franz&ouml;sisch</entry>
- </row>
-
- <row>
- <entry><literal>de_DE.ISO_8859-1</literal></entry>
-
- <entry>Deutsch</entry>
- </row>
-
- <row>
- <entry><literal>ja_JP.eucJP</literal></entry>
-
- <entry>Japanisch (EUC kodiert)</entry>
- </row>
-
- <row>
- <entry><literal>ru_RU.KOI8-R</literal></entry>
-
- <entry>Russisch (KOI8-R kodiert)</entry>
- </row>
-
- <row>
- <entry><literal>zh_TW.Big5</literal></entry>
-
- <entry>Chinesisch (Big5 kodiert)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>Einige Dokumente sind nicht in allen Sprachen
- verf&uuml;gbar.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Das Format des Dokumentes. Die Dokumentation wird
- in verschiedenen Formaten erzeugt, um eine
- m&ouml;glichst gro&szlig;e Flexibilit&auml;t zu
- erreichen. Zur Zeit werden die folgenden Formate
- unterst&uuml;tzt.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Format</entry>
-
- <entry>Erkl&auml;rung</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>html-split</literal></entry>
-
- <entry>Viele kleine HTML-Dateien, die sich
- gegenseitig referenzieren.</entry>
- </row>
-
- <row>
- <entry><literal>html</literal></entry>
-
- <entry>Eine gro&szlig;e HTML-Datei, die das
- komplette Dokument enth&auml;lt.</entry>
- </row>
-
- <row>
- <entry><literal>pdb</literal></entry>
-
- <entry>Palm Pilot Datenbank f&uuml;r das
- Programm <ulink
- url="http://www.iSilo.com/">iSilo</ulink>.</entry>
- </row>
-
- <row>
- <entry><literal>pdf</literal></entry>
-
- <entry>Adobe's Portable Document Format</entry>
- </row>
-
- <row>
- <entry><literal>ps</literal></entry>
-
- <entry>Postscript</entry>
- </row>
-
- <row>
- <entry><literal>rtf</literal></entry>
-
- <entry>Microsoft's Rich Text Format
- <footnote>
- <para>Die Seitennummern werden nicht
- automatisch aktualisiert, wenn Sie diese
- Datei in Word laden. Wenn Sie das
- Dokument geladen haben, m&uuml;ssen Sie
- Sie
- <keycap>CTRL</keycap>+<keycap>A</keycap>,
- <keycap>CTRL</keycap>+<keycap>END</keycap>,
- <keycap>F9</keycap> eingeben, um die
- Seitennummern akualisieren zu
- lassen.</para>
- </footnote>
- </entry>
- </row>
-
- <row>
- <entry><literal>txt</literal></entry>
-
- <entry>Ganz normaler Text</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
-
- <listitem>
- <para>Das zur Komprimierung verwendete Programm. Zur
- Zeit werden drei verschiedene Methoden
- benutzt.</para>
-
- <orderedlist>
- <listitem>
- <para>Wenn die Dokumentation im Format
- <literal>html-split</literal> vorliegt, werden die
- Dateien mit &man.tar.1; zusammengefa&szlig;t. Die
- so entstandene <filename>.tar</filename> Datei
- wird dann mit einer der unten genannten Methoden
- komprimiert.</para>
- </listitem>
-
- <listitem>
- <para>Bei allen anderen Formaten existiert nur eine
- Datei mit dem Namen
- <filename>book.<replaceable>format</replaceable></filename>
- (z.B., <filename>book.pdb</filename>,
- <filename>book.html</filename>, und so
- weiter).</para>
-
- <para>Diese Dateien werden mit drei verschiedenen
- Programmen komprimiert.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Programm</entry>
-
- <entry>Beschreibung</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>zip</literal></entry>
-
- <entry>Das Zip Format. Wenn Sie diese
- Dateien unter FreeBSD auspacken wollen,
- m&uuml;ssen sie vorher den Port
- <filename>archivers/unzip</filename>
- installieren.</entry>
- </row>
-
- <row>
- <entry><literal>gz</literal></entry>
-
- <entry>Das GNU Zip format. Sie k&ouml;nnen
- diese Dateien mit &man.gunzip.1;
- entpacken, dieses Programm ist Bestandteil
- von FreeBSD.</entry>
- </row>
-
- <row>
- <entry><literal>bz2</literal></entry>
-
- <entry>Das BZip2 Format. Es wird selten
- benutzt, erzeugt aber normalerweise
- kleinere Archive. Sie m&uuml;ssen den
- Port <filename>archivers/bzip2</filename>
- installieren, um diese Dateien entpacken
- zu k&ouml;nnen.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Ein Beispiel: Die mit BZip2 gepackte Version
- des Handbuchs im Postscript-Format hat den Namen
- <filename>book.sgml.bz2</filename> und ist im
- Verzeichnis <filename>handbook/</filename> zu
- finden.</para>
- </listitem>
-
- <listitem>
- <para>Die formatierte Dokumentation ist auch als
- Package verf&uuml;gbar, siehe unten.</para>
- </listitem>
- </orderedlist>
- </listitem>
- </itemizedlist>
-
- <para>Nachdem Sie das Format und das Kompressionsverfahren
- ausgew&auml;hlt haben, m&uuml;ssen Sie sich entscheiden,
- ob Sie das Dokument in Form eines FreeBSD
- <emphasis>Package</emphasis> herunterladen
- m&ouml;chten.</para>
-
- <para>Der Vorteil dieser Variante, da&szlig; Sie die
- Dokumentation mit normalen Tools wie &man.pkg.add.1; und
- &man.pkg.delete.1; verwalten k&ouml;nnen.</para>
-
- <para>Wenn Sie das Package herunterladen und installieren
- wollen, m&uuml;ssen Sie den richtigen Dateinamen kennen.
- Die Datei liegen in einem separaten Verzeichnis mit dem
- Namen <filename>packages</filename>. Die Dateinamen
- nutzen das Schema
- <filename><replaceable>Dokument-Name</replaceable>.<replaceable>Sprache</replaceable>.<replaceable>Zeichensatz</replaceable>.<replaceable>Format</replaceable>.tgz</filename>.</para>
-
- <para>Ein Beispiel: Die englische Version der FAQ im
- PDF-Format ist in dem Package mit dem Namen
- <filename>faq.en_US.ISO_8859-1.pdf.tgz</filename>
- enthalten.</para>
-
- <para>Sie k&ouml;nnen daher das englische PDF FAQ Package
- mit den folgenden Befehlen installieren.</para>
-
- <screen>
-&prompt.root; <userinput>pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO_8859-1.pdf.tgz</userinput>
- </screen>
-
- <para>Danach k&ouml;nnen Sie mit &man.pkg.info.1; nachsehen,
- wno die Datei installiert wurde.</para>
-
- <screen>
-&prompt.root; <userinput>pkg_info -f faq.en_US.ISO_8859-1.pdf</userinput>
-Information for faq.en_US.ISO_8859-1.pdf:
-
-Packing list:
- Package name: faq.en_US.ISO_8859-1.pdf
- CWD to /usr/share/doc/en_US.ISO_8859-1/books/faq
-File: book.pdf
- CWD to .
-File: +COMMENT (ignored)
-File: +DESC (ignored)
- </screen>
-
- <para>Wie sie sehen k&ouml;nnen, wurde die Datei
- <filename>book.pdf</filename> im Verzeichnis
- <filename>/usr/share/doc/en_US.ISO_8859-1/books/faq</filename>
- installiert.</para>
-
- <para>Wenn sie die Packages nicht benutzen, m&uuml;ssen Sie
- die komprimierten selber herunterladen, auspacken und die
- richtigen Stellen kopieren.</para>
-
- <para>Wenn Sie zum Beispiel die mit &man.gzip.1; gepackte
- "split HTML"-Version der englischen FAQ herunterladen und
- installieren wollten, br&auml;uchten Sie die Datei
- <filename>en_US.ISO_8859-1/books/faq/book.html-split.tar.gz</filename>.
- Um diese Datei herunterzuladen und auszupacken, w&auml;ren
- die folgenden Schritte notwendig.</para>
-
- <screen>
-&prompt.root; <userinput>fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO_8859-1/books/faq/book.html-split.tar.gz</userinput>
-&prompt.root; <userinput>gzip -d book.html-split.tar.gz</userinput>
-&prompt.root; <userinput>tar xvf book.html-split.tar</userinput>
- </screen>
-
- <para>Danach haben Sie eine Sammlung vieler kleiner
- <filename>.html</filename> Datei. Die wichtigste Datei
- hat Namen <filename>index.html</filename> und enth&auml;lt
- das Inhaltsverzeichnis, eine Einleitung und Verweise auf
- die anderen Teile des Dokumentes. Falls notwendig,
- k&ouml;nnen Sie die diversen Dateien jetzt an ihren
- endg&uuml;ltigen Bestimmungsort verschieben oder
- kopieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="become-web-mirror">
- <para>Ich m&ouml;chte einen FreeBSD-Web-Mirror
- betreiben!</para>
- </question>
-
- <answer>
- <para>Sicherlich! Es gibt mehrere M&ouml;glichkeiten, die
- Web-Seiten zu spiegeln.</para>
-
- <itemizedlist>
- <listitem>
- <para>Mit <application>CVSUP</application>: Sie
- k&ouml;nnen die formatierten Dateien per
- <application>CVSUP</application> von einem
- entsprechenden Server bekommen.</para>
-
- <para>Wie Sie die Webseiten erhalten k&ouml;nnen,
- k&ouml;nnen Sie der entsprechender Beispieldatei
- entnehmen, die auf Ihrem System als
- <filename>/usr/share/examples/cvsup/www-supfile</filename>
- verf&uuml;bar sein sollte.</para>
- </listitem>
-
- <listitem>
- <para>Mit einem FTP-Spiegel: Sie k&ouml;nnen sich die
- eine Kopie der Quelldateien f&uuml;r den Web-Server
- mit einem FTP-Spiegelwerkzeug Ihrer Wahl
- herunterladen. Allerdings m&uuml;ssen Sie diese
- Quelldateien erst &uuml;bersetzen, bevor Sie sie
- verwenden k&ouml;nnen. Starten Sie einfach bei
- ftp://ftp.de.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="translation">
- <para>Ich m&ouml;chte die Dokumentation in Friesisch
- &uuml;bersetzen.</para>
- </question>
-
- <answer>
- <para>Nun, wir k&ouml;nnen zwar nichts bezahlen, aber evtl.
- k&ouml;nnen wir eine Gratis-CD oder ein T-Shirt und einen
- Eintrag im Handbuch arrangieren, wenn Sie eine
- &Uuml;bersetzung der Dokumentation einsenden. Bevor Sie
- mit der &Uuml;bersetzung beginnen, sollten Sie sich
- allerdings die Mailingliste
- <emphasis>freebsd-doc</emphasis> wenden, die unter der
- Adresse <email>freebsd-doc@FreeBSD.org</email> zu
- erreichen ist. Es ist durchaus m&ouml;glich, da&szlig;
- Sie dort jemanden finden, der Ihnen bei der Arbeit hilft;
- es ist genausogut m&ouml;glich, da&szlig; ein Team bereits
- an der &Uuml;bersetzung in die von Ihnen gew&uuml;nschte
- Sprache arbeitet, dieses Team wird ihre Mithilfe
- sicherlich nicht ablehnen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="other-info-sources">
- <para>Andere Informationsquellen.</para>
- </question>
-
- <answer>
- <para>In den folgenden Newsgruppen werden n&uuml;tzliche
- Diskussionen f&uuml;r FreeBSD-Benutzer
- gef&uuml;hrt:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink>
- (moderiert)</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.misc">comp.unix.bsd.misc</ulink></para>
- </listitem>
- </itemizedlist>
-
- <para>Webseiten:</para>
-
- <itemizedlist>
- <listitem>
- <para>Die <ulink
- URL="http://www.de.FreeBSD.org/">FreeBSD Home
- Page</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="pao">Falls Sie einen Laptop besitzen,
- dann besuchen Sie auf alle F&auml;lle <ulink
- URL="http://www.jp.FreeBSD.org/PAO/">Tatsumi
- Hosokawa's Mobile Computing Page</ulink> in
- Japan.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="smp">Informationen zu SMP (Symmetric
- MultiProcessing) finden Sie auf der <ulink
- URL="http://people.FreeBSD.org/~fsmp/SMP/SMP.html">SMP
- support page</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="multimedia">Informationen zu
- FreeBSD-Multimedia-Anwendungen finden Sie auf der
- <ulink
- URL="http://people.FreeBSD.org/~faulkner/multimedia/mm.html">Multimedia</ulink>-Seite.
- Falls Sie speziell am <ulink
- URL="http://people.FreeBSD.org/~ahasty/Bt848.html">Bt848</ulink>
- video capture chip interessiert sind, dann folgen Sie
- dem Link.</para>
- </listitem>
- </itemizedlist>
-
- <para>Das FreeBSD-Handbuch enth&auml;lt au&szlig;erdem eine
- ziemlich umfangreiche <ulink
- URL="../handbook/bibliography.html">Bibliographie</ulink>,
- die es sich lohnt, anzusehen, falls Sie B&uuml;cher
- suchen, die Sie sich kaufen m&ouml;chten.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </preface>
-
- <chapter id="install">
- <title>Installation</title>
-
- <qandaset>
- <qandaentry>
- <question id="floppy-download">
- <para>Welche Dateien mu&szlig; ich herunterladen, um FreeBSD
- zu bekommen?</para>
- </question>
-
- <answer>
- <para>Vor dem 3.1-RELEASE ben&ouml;tigte man nur ein
- Floppy-Image, <filename>floppies/boot.flp</filename>, um
- FreeBSD zu installieren. Seit dem 3.1-RELEASE haben wir
- jedoch Unterst&uuml;tzung f&uuml;r eine Vielfalt von
- Hardware hinzugef&uuml;gt, weshalb man nun f&uuml;r 3.x-
- und 4.x-RELEASE zwei Floppy-Images
- <filename>floppies/kernel.flp</filename> und
- <filename>floppies/mfsroot.flp</filename> ben&ouml;tigt.
- Diese Images m&uuml;ssen mit Hilfe von Werkzeugen wie
- <command>fdimage</command> oder &man.dd.1; auf Disketten
- kopiert werden.</para>
-
- <para>Falls Sie selbst die einzelnen Distributionen
- herunterladen m&uuml;ssen (um z.B. von einem
- DOS-Dateisystem aus zu installieren), empfehlen wir, sich
- die folgenden Distributionen zu besorgen:</para>
-
- <itemizedlist>
- <listitem>
- <para>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>Vollst&auml;ndige Instruktionen f&uuml;r dieses
- Vorgehen und ein wenig mehr zur Installation generell
- finden Sie im <ulink
- URL="../handbook/install.html">Handbucheintrag zur
- Installation von FreeBSD</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="floppy-image-too-large">
- <para>Hilfe! Das Floppy-Image pa&szlig;t nicht auf eine
- Diskette!</para>
- </question>
-
- <answer>
- <para>Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an
- Daten fassen und das Boot-Image ist exakt 1474560 Byte
- gro&szlig;.</para>
-
- <para>H&auml;ufige Fehler bei der Erstellung der
- Boot-Diskette sind:</para>
-
- <itemizedlist>
- <listitem>
- <para>Bei der Benutzung von <acronym>FTP</acronym> das
- Floppy-Image nicht im
- <emphasis>Bin&auml;r</emphasis>-Modus
- herunterzuladen.</para>
-
- <para>Einige FTP-Clients benutzen als Voreinstellung den
- <emphasis>ASCII</emphasis>-Modus und versuchen, alle
- Zeilenendezeichen an das Zielsystem anzupassen.
- Dadurch wird das Boot-Image in jedem Fall unbrauchbar.
- &Uuml;berpr&uuml;fen Sie die Gr&ouml;&szlig;e des
- heruntergeladenen Boot-Images: falls sie nicht
- <emphasis>exakt</emphasis> mit der auf dem Server
- &uuml;bereinstimmt, hat das Herunterladen nicht
- richtig funktioniert.</para>
-
- <para>Abhilfe: geben Sie <emphasis>binary</emphasis> an
- der FTP-Eingabeaufforderung ein, nach dem Sie mit dem
- Server verbunden sind und bevor Sie das Image
- herunterladen.</para>
- </listitem>
-
- <listitem>
- <para>Die Benutzung des DOS-Befehls
- <command>copy</command> (oder eines entsprechendes
- Werkzeugs der grafischen Benutzeroberfl&auml;che), um
- das Boot-Image auf die Diskette zu
- &uuml;bertragen.</para>
-
- <para>Programme wie <command>copy</command> sind hier
- unbrauchbar, weil das Image zur direkten
- &Uuml;bertragung erstellt wurde. Das Image stellt den
- gesamten Disketteninhalt dar, Spur f&uuml;r Spur, und
- nicht eine gew&ouml;hnliche Datei. Sie m&uuml;ssen es
- <quote>roh</quote> mit speziellen Werkzeugen (z.B.
- <command>fdimage</command> oder
- <command>rawrite</command>) &uuml;bertragen, wie es in
- der <ulink
- URL="../handbook/install.html">Installationsanleitung
- zu FreeBSD</ulink> beschrieben ist.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-instructions-location">
- <para>Wo befinden sich die Instruktionen zur Installation
- von FreeBSD?</para>
- </question>
-
- <answer>
- <para>Installationsanleitungen finden Sie im <ulink
- URL="../handbook/install.html">Handbucheintrag zur
- Installation von FreeBSD</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-to-run">
- <para>Was ben&ouml;tige ich zum Betrieb von FreeBSD?</para>
- </question>
-
- <answer>
- <para>Sie werden einen 386er oder besseren PC mit 5MB oder
- mehr Hauptspeicher und mindestens 60MB Festplattenspeicher
- ben&ouml;tigen. Es l&auml;uft mit einer einfachen MDA
- Grafikkarte, aber um X11R6 zu benutzen, ben&ouml;tigen Sie
- eine VGA- oder bessere Videokarte.</para>
-
- <para>Lesen Sie auch den Abschnitt <xref linkend="hardware"
- remap="Hardwarekompatibilit&auml;t"></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="four-meg-ram-install">
- <para>Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD
- installieren?</para>
- </question>
-
- <answer>
- <para>FreeBSD 2.1.7 war die letzte FreeBSD-Version, die auf
- einem 4MB-System installiert werden konnte. Neuere
- FreeBSD-Versionen, wie 2.2, ben&ouml;tigen mindestens 5MB
- zur Installation auf einem neuen System.</para>
-
- <para>Alle FreeBSD-Versionen, einschlie&szlig;lich 3.0,
- <emphasis>laufen</emphasis> zwar mit 4MB Hauptspeicher,
- lediglich ihr Installationsprogramm l&auml;uft nicht mit
- 4MB. Wenn Sie m&ouml;chten, k&ouml;nnen Sie f&uuml;r den
- Installationsvorgang zus&auml;tzlichen Hauptspeicher
- hinzuf&uuml;gen, und nachdem das System installiert ist,
- wieder auf 4MB zur&uuml;ckgehen. Sie k&ouml;nnen Ihre
- Festplatte auch jederzeit in ein System mit &gt;4MB
- einbauen, dort installieren und sie dann wieder
- umbauen.</para>
-
- <para>Es gibt auch Situationen, in denen FreeBSD 2.1.7 nicht
- mit 4 MB zu installieren ist. Um genau zu sein: man kann
- es nicht mit 640 kB Basis- + 3MB erweitertem Speicher
- installieren. Falls ihr Motherboard einiges vom
- <quote>verlorenen</quote> Speicher aus der 640kB - 1MB
- Region verschieben kann, k&ouml;nnten Sie trotzdem in der
- Lage sein, FreeBSD 2.1.7 zu installieren.</para>
-
- <para>Versuchen Sie in Ihr BIOS-Setup zu gelangen und suchen
- Sie nach einer <quote>remap</quote> Option. Aktivieren
- Sie sie. Sie sollten das ROM shadowing ebenfalls
- ausschalten.</para>
-
- <para>Es k&ouml;nnte einfacher sein, 4 weitere MB nur
- f&uuml;r die Installation zu benutzen, einen
- benutzerdefinierten Kernel nur mit den ben&ouml;tigten
- Optionen zu generieren und dann die 4 MB wieder
- auszubauen.</para>
-
- <para>Sie k&ouml;nnen auch 2.0.5 installieren und
- anschlie&szlig;end Ihr System mit der
- <quote>upgrade</quote> Option des 2.1.7
- Installationsprogramms nach 2.1.7 migrieren.</para>
-
- <para>Wenn Sie nach der Installation einen
- benutzerdefinierten Kernel generieren, wird er mit 4 MB
- laufen. Irgend jemand hat es geschafft, mit 2 MB zu
- booten (allerdings war das System nahezu unbrauchbar
- :-))</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custom-boot-floppy">
- <para>Wie kann ich eine angepa&szlig;te
- Installationsdiskette erstellen?</para>
- </question>
-
- <answer>
- <para>Zur Zeit gibt es keine M&ouml;glichkeit,
- <emphasis>nur</emphasis> die angepa&szlig;ten
- Installationsdisketten zu erstellen. Sie m&uuml;ssen sich
- eine ganz neues Release erstellen, das Ihre
- Installationsdiskette enth&auml;lt.</para>
-
- <para>Befolgen Sie <link linkend="custrel">diese</link>
- Instruktionen, um sich eine angepa&szlig;te Ausgabe zu
- erstellen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiboot">
- <para>Kann ich mehr als ein Betriebssystem auf meinem PC
- unterbringen?</para>
- </question>
-
- <answer>
- <para>Sehen Sie sich <ulink
- URL="http://www.de.FreeBSD.org/tutorials/multi-os/">Die
- Multi-OS-Seite</ulink> an.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="windows-coexist">
- <para>Kann Windows 95/98 neben FreeBSD existieren?</para>
- </question>
-
- <answer>
- <para>Installieren Sie zuerst Windows 95/98, dann FreeBSD.
- Der Bootmanager von FreeBSD kann dann entweder Win95/98
- oder FreeBSD booten. Falls Sie Windows 95/98 nach FreeBSD
- installieren, wird es, ohne zu fragen, Ihren Bootmanager
- &uuml;berschreiben. Lesen Sie den n&auml;chsten
- Abschnitt, falls das passieren sollte.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="win95-damaged-boot-manager">
- <para>Windows 95/98 hat meinen Bootmanager zerst&ouml;rt!
- Wie stelle ich ihn wieder her?</para>
- </question>
-
- <answer>
- <para>Es gibt drei M&ouml;glichkeiten, den
- FreeBSD-Bootmanager neu zu installieren:</para>
-
- <itemizedlist>
- <listitem>
- <para>Unter DOS wechseln Sie in das Verzeichnis tools/
- Ihrer FreeBSD-Distribution und suchen nach
- <filename>bootinst.exe</filename>. Rufen sie es so
- auf:</para>
-
- <screen>
-<prompt>...\TOOLS&gt;</prompt> <userinput>bootinst.exe boot.bin</userinput>
- </screen>
-
- <para></para>
-
- <para>und der Bootmanager wird neu installiert.</para>
-
- <para></para>
- </listitem>
-
- <listitem>
- <para>Booten Sie FreeBSD wieder mit der Bootdiskette und
- w&auml;hlen Sie den Menueeintrag Custom Installation.
- W&auml;hlen Sie Partition. W&auml;hlen Sie das
- Laufwerk, auf dem sich der Bootmanager befand
- (wahrscheinlich der erste Eintrag) und wenn Sie in den
- Partitioneditor gelangen, w&auml;hlen Sie als aller
- erstes (nehmen Sie z.B. keine &Auml;nderungen vor)
- (W)rite. Sie werden nach einer Best&auml;tigung
- gefragt, antworten ja und vergessen Sie nicht, in der
- Bootmanager-Auswahl <quote>Boot Manager</quote>
- auszuw&auml;hlen. Hierdurch wird der Bootmanager
- wieder auf die Festplatte geschrieben. Verlassen Sie
- nun das Installationsmenue und rebooten wie
- gew&ouml;hnlich von der Festplatte.</para>
- </listitem>
-
- <listitem>
- <para>Booten Sie FreeBSD wieder mit der Bootdiskette
- (oder der CD-ROM) und w&auml;hlen Sie den
- Men&uuml;punkt <quote>Fixit</quote>. W&auml;hlen Sie
- die f&uuml;r Sie passende Option, entweder die
- Fixit-Diskette oder die CD Nummer 2 (die Option
- <quote>live</quote> Filesystem). Wechseln Sie zur
- Fixit-Shell und geben Sie den folgenden Befehl
- ein:</para>
-
- <screen>
-<prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput>
- </screen>
-
- <para>Als <replaceable>bootdevice</replaceable>
- m&uuml;ssen Sie das von Ihrem System verwendete
- Ger&auml;t angeben, z.B. <devicename>ad0</devicename>
- (erste IDE-Platte), <devicename>ad4</devicename>
- (erste IDE-Platte an einem zus&auml;tzlichen
- Controller), <devicename>da0</devicename> (erste
- SCSI-Platte), usw.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-on-thinkpad">
- <para>Ich habe ein IBM Thinkpad Modell A, T oder X, auf dem
- ich FreeBSD zwar installieren kann, aber beim
- n&auml;chsten Start h&auml;ngt sich das System auf. Gibt
- es eine L&ouml;sung f&uuml;r dieses Problem?</para>
- </question>
-
- <answer>
- <para>Ein Fehler in den ersten BIOS-Versionen dieser
- Ger&auml;te f&uuml;hrt dazu, da&szlig; sie die von FreeBSD
- genutzte Partition f&uuml;r eine Suspend-To-Disk-Partition
- halten. Wenn das BIOS dann versucht, diese Partition
- auszuwerten, h&auml;ngt sich das System auf.</para>
-
- <para>Der Fehler wurde in den folgenden BIOS-Versionen
- behoben:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Ger&auml;t</entry>
-
- <entry>BIOS Version</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>T20</entry>
-
- <entry>IYET49WW oder neuer</entry>
- </row>
-
- <row>
- <entry>T21</entry>
-
- <entry>KZET22WW oder neuer</entry>
- </row>
-
- <row>
- <entry>A20p</entry>
-
- <entry>IVET62WW oder neuer</entry>
- </row>
-
- <row>
- <entry>A20m</entry>
-
- <entry>IWET54WW oder neuer</entry>
- </row>
-
- <row>
- <entry>A21p</entry>
-
- <entry>KYET27WW oder neuer</entry>
- </row>
-
- <row>
- <entry>A21m</entry>
-
- <entry>KXET24WW oder neuer</entry>
- </row>
-
- <row>
- <entry>A21e</entry>
-
- <entry>KUET30WW</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Wenn Ihr Thinkpad &uuml;ber eine &auml;ltere
- BIOS-Version verf&uuml;gt und Sie das BIOS nicht
- aktualisieren k&ouml;nnen, ist eine der m&ouml;glichen
- L&ouml;sungen, FreeBSD zu installieren, die Partitions-ID
- zu &auml;ndern und danach neue Bootblocks zu installieren,
- die mit der ge&auml;nderten ID umgehen
- k&ouml;nnen.</para>
-
- <para>Zun&auml;chst m&uuml;ssen Sie die Maschine so weit
- wiederherstellen, da&szlig; sie &uuml;ber den Selbst-Test
- hinauskommt. Dazu ist es erforderlich, da&szlig; das
- System beim Start keine Partitions-ID auf seiner
- prim&auml;ren Festplatte findet. Eine Variante ist, die
- Platte auszubauen und vor&uuml;bergehend in einem
- &auml;lteren Thinkpad (z.B. dem Thinkpad 600) oder (mit
- einem passenden Adapter) in einen normalen PC einzubauen.
- Sobald dies erfolgt ist, k&ouml;nnen Sie die
- FreeBSD-Partition l&ouml;schen und die Festplatte wieder
- in das Thinkpad einbauen. Das Thinkpad sollte jetzt
- wieder starten k&ouml;nnen.</para>
-
- <para>Danach k&ouml;nnen Sie mit der nachfolgend
- beschriebenen Anleitung eine funktionsf&auml;hige
- FreeBSD-Installation erhalten.</para>
-
- <procedure>
- <step>
- <para>Beschaffen Sie sich <filename>boot1</filename> und
- <filename>boot2</filename> von <ulink
- url="http://people.freebsd.org/~bmah/ThinkPad/">http://people.freebsd.org/~bmah/ThinkPad/</ulink>.
- Legen Sie diese Dateien an einem sicheren Ort
- ab.</para>
- </step>
-
- <step>
- <para>Installieren Sie ganz wie gewohnt FreeBSD auf dem
- Thinkpad. Allerdings d&uuml;rfen Sie den
- <quote>Dangerously Dedicated</quote>-Modus
- <emphasis>nicht benutzen</emphasis>. Nach dem
- Abschlu&szlig; der Installation d&uuml;rfen Sie die
- Maschine <emphasis>nicht neu
- starten</emphasis>.</para>
- </step>
-
- <step>
- <para>Wechseln Sie zur <quote>Emergency Holographic
- Shell</quote>
- (<keycombo><keycap>ALT</keycap><keycap>F4</keycap></keycombo>)
- oder starten Sie eine <quote>fixit</quote>
- Shell.</para>
- </step>
-
- <step>
- <para>Benutzen Sie &man.fdisk.8;, um die Partitions-ID
- von FreeBSD von <literal>165</literal> in
- <literal>166</literal> zu &auml;ndern (dieser Wert
- wird von OpenBSD benutzt).</para>
- </step>
-
- <step>
- <para>Kopieren Sie die Dateien
- <filename>boot1</filename> und
- <filename>boot2</filename> auf die lokale
- Festplatte.</para>
- </step>
-
- <step>
- <para>Installieren Sie <filename>boot1</filename> und
- <filename>boot2</filename> mit &man.disklabel.8; auf
- die FreeBSD-Slice.</para>
-
- <screen>
-&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput>
- </screen>
-
- <para>Setzen Sie f&uuml;r <replaceable>n</replaceable>
- die Nummer der Slice ein, auf der sie FreeBSD
- installiert haben.</para>
- </step>
-
- <step>
- <para>Starten Sie das System neu. Am Boot-Prompt
- sollten Sie die Auswahl <literal>OpenBSD</literal>
- erhalten. Damit wird in Wirklichkeit FreeBSD
- gestartet.</para>
- </step>
- </procedure>
-
- <para>Was Sie machen m&uuml;ssen, wenn Sie FreeBSD und
- OpenBSD parallel installieren wollen, sollten Sie zu
- &Uuml;bungszwecken einfach einmal selbst
- herausfinden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-bad-blocks">
- <para>Kann ich auf einer Festplatte mit besch&auml;digten
- Bl&ouml;cken installieren?</para>
- </question>
-
- <answer>
- <para>&Auml;ltere Versionen von FreeBSD enthielten ein
- Programm namens <command>bad144</command>, das die
- defekten Sektoren automatisch verlagerte. Da diese
- Funktion aber von modernen IDE-Platten selbstst&auml;ndig
- durchgef&uuml;hrt wird, wurde <command>bad144</command> in
- der Version 3.0 aus dem System entfernt. Wenn Sie FreeBSD
- 3.0 oder neuer installieren wollen, sollten Sie sich eine
- neue Festplatte zulegen. Falls Sie dazu nicht bereit
- sind, m&uuml;ssen Sie FreeBSD 2.X verwenden.</para>
-
- <para>Wenn Ihnen bei einer modernen IDE-Platte defekte
- Sektoren gemeldet werden, wird die Platte mit gro&szlig;er
- Wahrscheinlichkeit innerhalb kurzer Zeit vollst&auml;ndig
- ausfallen, da die Meldung ein Zeichen daf&uuml;r ist,
- da&szlig; die f&uuml;r die Korrektur reservierten Sektoren
- bereits verbraucht wurden. Wir raten Ihnen, die Platte
- auszutauschen.</para>
-
- <para>Falls Sie ein SCSI-Laufwerk mit besch&auml;digten
- Bl&ouml;cken besitzen, lesen Sie <link
- linkend="awre">diese Antwort</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-floppy-strangeness">
- <para>Wenn ich von der Installationsdiskette boote,
- geschehen merkw&uuml;rdige Dinge!</para>
- </question>
-
- <answer>
- <para>Falls Sie beobachten, da&szlig; ihr Rechner sich bis
- zum Stillstand abm&uuml;ht oder spontan rebootet,
- w&auml;hrend Sie versuchen, von der Installationsdiskette
- zu booten, sollten Sie sich drei Fragen stellen:</para>
-
- <orderedlist>
- <listitem>
- <para>Haben Sie eine brandneue, frisch formatierte,
- fehlerfreie Diskette benutzt (g&uuml;nstigerweise eine
- brandneue, direkt aus dem Karton und nicht eine
- Diskette aus einem Magazin, das schon seit drei Jahren
- unter Ihrem Bett lag)?</para>
- </listitem>
-
- <listitem>
- <para>Haben Sie das Floppy-Image im Bin&auml;r- (oder
- Image) Modus heruntergeladen? (Sch&auml;men Sie sich
- nicht. Sogar die besten unter uns haben wenigstens
- einmal Bin&auml;rdateien versehentlich im ASCII-Modus
- heruntergeladen!)</para>
- </listitem>
-
- <listitem>
- <para>Falls Sie Windows 95 oder Windows 98 benutzen,
- haben Sie es heruntergefahren und in einfachem, reinem
- DOS neu gestartet? Es scheint, da&szlig; diese
- Betriebssysteme Programme st&ouml;ren, die direkt auf
- Hardware schreiben, wie es das Erstellungsprogramm
- f&uuml;r die Diskette tut; selbst bei der
- Ausf&uuml;hrung des Programms in einem DOS-Fenster in
- der grafischen Benutzeroberfl&auml;che kann dieses
- Problem auftreten.</para>
- </listitem>
- </orderedlist>
-
- <para>Es wurde auch dar&uuml;ber berichtet, da&szlig;
- Netscape Probleme beim Herunterladen der Bootdisketten
- verursacht. Es ist also wahrscheinlich besser, einen
- anderen FTP-Client zu benutzen, wenn m&ouml;glich.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="no-install-cdrom">
- <para>Ich habe zur Installation von meinem ATAPI CD-ROM
- gebootet, aber das Installationsprogramm sagt mir,
- da&szlig; es kein CD-ROM gefunden hat. Was geht hier
- ab?</para>
- </question>
-
- <answer>
- <para>Dieses Problem wird &uuml;blicherweise durch ein
- falsch konfiguriertes CD-ROM verursacht. Bei vielen PCs
- ist das CD-ROM der Slave am zweiten IDE-Controller, ein
- Master ist nicht vorhanden. Laut Spezifikation ist diese
- Konfiguration illegal, aber Windows verletzt die
- Spezifikation und das BIOS ignoriert sie, wenn es von
- einem CD-ROM booten soll. Daher konnten Sie zwar vom
- CD-ROM booten, w&auml;hrend FreeBSD es nicht f&uuml;r die
- Installation nutzen kann.</para>
-
- <para>Um dieses Problem zu l&ouml;sen, m&uuml;ssen Sie
- entweder das CD-ROM als Master an den IDE-Controller
- anschlie&szlig;en oder daf&uuml;r sorgen, da&szlig; an dem
- vom CD-ROM genutzten IDE-Controller das CD-ROM als Slave
- und ein anderes Ger&auml;t als Master angeschlossen
- ist.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cannot-install-tape">
- <para>Hilfe! Ich kann nicht von Band installieren!</para>
- </question>
-
- <answer>
- <para>Falls Sie 2.1.7R von Band installieren, m&uuml;ssen
- Sie bei der Erstellung des Bandes eine
- tar-Blockgr&ouml;&szlig;e von 10 (5120 Byte) verwenden.
- Die standard tar-Blockgr&ouml;&szlig;e betr&auml;gt 20
- (10240 Byte) und B&auml;nder, die mit diesem Standardwert
- erstellt worden sind, k&ouml;nnen nicht zur Installation
- von 2.1.7R verwendet werden. Diese B&auml;nder
- verursachen einen Fehler, der besagt, da&szlig; die
- Satzl&auml;nge zu gro&szlig; ist.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="parallel-connect">
- <para>Verbindung von zwei FreeBSD-Maschinen &uuml;ber die
- parallele Schnittstelle (PLIP).</para>
- </question>
-
- <answer>
- <para>Besorgen Sie sich ein Laplink-Kabel. Stellen Sie
- sicher, da&szlig; Sie einen Kernel mit
- lpt-Treiberunterst&uuml;tzung haben.</para>
-
- <screen>
-&prompt.root; <userinput>dmesg | grep lp</userinput>
-lpt0 at 0x378-0x37f irq 7 on isa
-lpt0: Interrupt-driven
-lp0: TCP/IP capable interface
- </screen>
-
- <para>Schlie&szlig;en Sie das Kabel an die parallelen
- Schnittstellen an.</para>
-
- <para>Konfigurieren Sie die Netzwerkschnittstellenparameter
- f&uuml;r lp0 auf beiden Seiten als
- <username>root</username>. Falls Sie z.B. die Rechner max
- und moritz miteinander verbinden wollen</para>
-
- <programlisting>
- max &lt;-----&gt; moritz
-IP-Adresse 10.0.0.1 10.0.0.2
- </programlisting>
-
- <para>Auf max geben Sie ein</para>
-
- <screen>
-&prompt.root; <userinput>ifconfig lp0 10.0.0.1 10.0.0.2</userinput>
- </screen>
-
- <para>Auf moritz geben Sie ein</para>
-
- <screen>
-&prompt.root; <userinput>ifconfig lp0 10.0.0.2 10.0.0.1</userinput>
- </screen>
-
- <para>Das ist alles! Lesen Sie bitte auch die Manuals
- &man.lp.4; und &man.lpt.4;.</para>
-
- <para>Sie sollten die Rechner auch in die Datei
- <filename>/etc/hosts</filename> eintragen</para>
-
- <programlisting>
- 127.0.0.1 localhost.my.domain localhost
- 10.0.0.1 max.my.domain max
- 10.0.0.2 moritz.my.domain moritz
- </programlisting>
-
- <para>So &uuml;berpr&uuml;fen, Sie, ob es
- funktioniert:</para>
-
- <para>auf max:</para>
-
- <screen>
-&prompt.root; <userinput>ifconfig lp</userinput>0
-lp0: flags=8851&lt;UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
- inet 10.0.0.1 --&gt; 10.0.0.2 netmask 0xff000000
-&prompt.root; <userinput>netstat -r</userinput>
-Routing tables
-
-Internet:
-Destination Gateway Flags Refs Use Netif Expire
-moritz max UH 4 127592 lp0
-&prompt.root; <userinput>ping -c 4 moritz</userinput>
-PING moritz (10.0.0.2): 56 data bytes
-64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
-64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
-64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
-64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
-
---- moritz ping statistics ---
-4 packets transmitted, 4 packets received, 0% packet loss
-round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-PLIP">
- <para>Kann ich auf meinem Laptop per PLIP (Parallel Line IP)
- installieren?</para>
- </question>
-
- <answer>
- <para>Verbinden Sie die beiden Computer hierzu mit einem
- Laplink-Kabel:</para>
-
- <table>
- <title>Pinbelegung f&uuml;r ein Netzwerkkabel an der
- parallelen Schnittstelle</title>
-
- <tgroup cols="5">
- <thead>
- <row>
- <entry>A-name</entry>
-
- <entry>A-End</entry>
-
- <entry>B-End</entry>
-
- <entry>Descr.</entry>
-
- <entry>Post/Bit</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literallayout>DATA0
--ERROR</literallayout></entry>
-
- <entry><literallayout>2
-15</literallayout></entry>
-
- <entry><literallayout>15
-2</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x01
-1/0x08</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA1
-+SLCT</literallayout></entry>
-
- <entry><literallayout>3
-13</literallayout></entry>
-
- <entry><literallayout>13
-3</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x02
-1/0x10</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA2
-+PE</literallayout></entry>
-
- <entry><literallayout>4
-12</literallayout></entry>
-
- <entry><literallayout>12
-4</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x04
-1/0x20</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA3
--ACK</literallayout></entry>
-
- <entry><literallayout>5
-10</literallayout></entry>
-
- <entry><literallayout>10
-5</literallayout></entry>
-
- <entry>Strobe</entry>
-
- <entry><literallayout>0/0x08
-1/0x40</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA4
-BUSY</literallayout></entry>
-
- <entry><literallayout>6
-11</literallayout></entry>
-
- <entry><literallayout>11
-6</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x10
-1/0x80</literallayout></entry>
- </row>
-
- <row>
- <entry>GND</entry>
-
- <entry>18-25</entry>
-
- <entry>18-25</entry>
-
- <entry>GND</entry>
-
- <entry>-</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Lesen Sie auch <link linkend="pao">diesen
- Hinweis</link> auf der Mobile-Computing-Seite.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="geometry">
- <para>Welche Geometrie sollte ich f&uuml;r ein
- Festplattenlaufwerk verwenden?</para>
- </question>
-
- <answer>
- <para>
- <note>
- <para>Unter der <quote>Geometrie</quote> einer
- Festplatte verstehen wir die Anzahl Zylinder,
- Schreib-/Lesek&ouml;pfen und Sektoren/Spur auf einer
- Festplatte - im folgenden werde ich hierf&uuml;r kurz
- C/H/S schreiben. Das BIOS des PCs berechnet mit
- diesen Angaben, auf welche Bereiche der Festplatte es
- f&uuml;r Schreib-/Lesezugriffe zugreifen
- mu&szlig;).</para>
- </note>
- </para>
-
- <para>Aus einigen Gr&uuml;nden scheint dies f&uuml;r sehr
- viel Verwirrung zu sorgen. Zun&auml;chsteinmal ist die
- <emphasis>physikalische</emphasis> Geometrie eines
- SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit
- Bl&ouml;cken arbeitet. Tats&auml;chlich gibt es
- <quote>die</quote> physikalische Geometrie nicht, da die
- Sektordichte auf einer Festplatte variiert - was die
- Hersteller als die <quote>wahre</quote> physikalische
- Geometrie bezeichnen, ist im allgemeinen die Geometrie,
- die aufgrund ihrer Ergebnisse im geringsten ungenutzten
- Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit
- C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese
- intern ebenfalls in Blocknummern um.</para>
-
- <para>Wichtig ist nur die <emphasis>logische</emphasis>
- Geometrie. Das BIOS kann die logische Geometrie der
- Festplatte abfragen; die erhaltenen Daten werden dann vom
- BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD
- das BIOS benutzt, w&auml;hrend es bootet, ist es sehr
- wichtig, da&szlig; diese Angaben richtig sind.
- Insbesondere m&uuml;ssen alle Betriebssysteme mit
- derselben Geometrie arbeiten, falls Sie mehr als ein
- Betriebssystem auf einer Festplatte haben, andernfalls
- werden Sie ernsthafte Bootprobleme bekommen!</para>
-
- <para>Bei SCSI-Festplatten h&auml;ngt die zu verwendende
- Geometrie davon ab, ob der Extended Translation Support
- auf Ihrem Controller eingeschaltet ist (oft auch als
- <quote>Unterst&uuml;tzung f&uuml;r DOS-Platten
- &gt;1GB</quote> oder &auml;hnlich bezeichnet). Falls sie
- ausgeschaltet ist, benutzen Sie
- <replaceable>N</replaceable> Zylinder, 64 K&ouml;pfe und
- 32 Sektoren/Spur, wobei <replaceable>N</replaceable> die
- Kapazit&auml;t der Festplatte in MB ist. Zum Beispiel
- sollten f&uuml;r eine 2GB Festplatte 2048 Zylinder, 64
- K&ouml;pfe und 32 Sektoren/Spur angegeben werden.</para>
-
- <para>Falls sie <emphasis>eingeschaltet</emphasis> ist (was
- oft der Fall ist, um bestimmte Einschr&auml;nkungen von
- MSDOS zu umgehen) und die Plattenkapazit&auml;t mehr als
- 1GB betr&auml;gt, benutzen Sie M Zylinder, 63
- Sektoren/Spur (*nicht* 64) und 255 K&ouml;pfe, wobei 'M'
- der Plattenkapazit&auml;t in MB, dividiert durch 7,844238
- entspricht (!). Also w&uuml;rde unsere 2GB Beispielplatte
- 261 Zylinder, 63 Sektoren/Spur und 255 K&ouml;pfe
- haben.</para>
-
- <para>Falls Sie sich hier nicht sicher sind oder FreeBSD
- w&auml;hrend der Installation die Geometrie nicht richtig
- erkennt, hilft es normalerweise, eine kleine DOS-Partition
- auf der Festplatte anzulegen. Die richtige Geometrie
- sollte dann erkannt werden (Sie k&ouml;nnen die Partition
- jederzeit im Partitioneditor entfernen, falls Sie sie
- nicht behalten m&ouml;chten, oder Sie nutzen sie zur
- Programmierung von Netzwerkkarten oder
- &auml;hnlichem).</para>
-
- <para>Alternativ wird ein frei verf&uuml;gbares Programm
- <filename>pfdisk.exe</filename> (im Unterverzeichnis
- <filename>tools</filename> auf der FreeBSD-CDROM oder den
- unterschiedlichen FTP-Servern) mit FreeBSD verbreitet, das
- dazu genutzt werden kann, herauszufinden, welche Geometrie
- die anderen Betriebssysteme auf der Festplatte verwenden.
- Diese Geometrie k&ouml;nnen Sie im Partitioneditor
- eingeben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disk-divide-restrictions">
- <para>Gibt es irgendwelche Einschr&auml;nkungen, wie ich die
- Festplatte aufteilen darf?</para>
- </question>
-
- <answer>
- <para>Ja. Sie m&uuml;ssen sicherstellen, da&szlig; Ihre
- Rootpartition kleiner als 1024 Zylinder ist, damit das
- BIOS den Kernel von Ihr booten kann. (Beachten Sie,
- da&szlig; es sich um eine Einschr&auml;nkung durch das
- BIOS des PCs handelt und nicht durch FreeBSD).</para>
-
- <para>F&uuml;r ein SCSI-Laufwerk bedeutet dies
- normalerweise, da&szlig; sich die Rootpartition in den
- ersten 1024MB befindet (oder in den ersten 4096MB, falls
- die Extended Translation eingeschaltet ist - siehe die
- vorherige Frage). Der entsprechende Wert f&uuml;r IDE ist
- 504MB.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disk-manager">
- <para>Was ist mit Plattenmanagern? Oder: Ich habe ein
- gro&szlig;es Laufwerk!</para>
- </question>
-
- <answer>
- <para>FreeBSD erkennt den Ontrack Plattenmanager und
- ber&uuml;cksichtigt ihn. Andere Plattenmanager werden
- nicht unterst&uuml;tzt.</para>
-
- <para>Falls Sie die Festplatte nur mit FreeBSD benutzen
- wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie
- die Platte einfach in der vom BIOS maximal
- unterst&uuml;tzten Gr&ouml;&szlig;e (normalerweise 504
- Megabyte) konfigurieren, sollte FreeBSD erkennen, wieviel
- Platz Sie tats&auml;chlich haben. Falls Sie eine alte
- Festplatte mit einem MFM-Controller verwenden, k&ouml;nnte
- es sein, da&szlig; Sie FreeBSD explizit angeben
- m&uuml;ssen, wieviele Zylinder es benutzen soll.</para>
-
- <para>Falls Sie die Festplatte mit FreeBSD und einem anderen
- Betriebssystem nutzen wollen, sollten Sie auch in der Lage
- sein, ohne einen Plattenmanager auszukommen: stellen sie
- einfach sicher, da&szlig; sich die Bootpartition von
- FreeBSD und der Bereich f&uuml;r das andere Betriebssystem
- in den ersten 1024 Zylindern befinden. Eine 20 Megabyte
- Bootpartition sollte v&ouml;llig gen&uuml;gen, wenn Sie
- einigerma&szlig;en sorgf&auml;ltig arbeiten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-os">
- <para>Beim Booten von FreeBSD erscheint <literal>Missing
- Operating System</literal></para>
- </question>
-
- <answer>
- <para>Dies ist ein klassischer Fall von Konflikten bei den
- verwendeten <link
- linkend="geometry">Plattengeometrien</link> von FreeBSD
- und DOS oder anderen Betriebssystemen. Sie werden FreeBSD
- neu installieren m&uuml;ssen. Bei Beachtung obiger
- Instruktionen wird in den meisten F&auml;llen alles
- funktionieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stop-at-boot-manager">
- <para>Ich komme nicht weiter als bis zum
- <literal>F?</literal>-Prompt des Bootmanagers.</para>
- </question>
-
- <answer>
- <para>Dies ist ein weiteres Symptom f&uuml;r das bereits in
- der vorherigen Frage beschriebene Problem. Ihre
- Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen
- nicht &uuml;berein! Falls Ihr Controller oder BIOS
- Zylinderumsetzung (oft als <quote>&gt;1GB drive
- support</quote> bezeichnet), probieren Sie eine Umsetzung
- dieser Einstellung und Neuinstallation von
- FreeBSD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-complete-sources">
- <para>Mu&szlig; ich den vollst&auml;ndigen Quellcode
- installieren?</para>
- </question>
-
- <answer>
- <para>Im allgemeinen nicht. Wir empfehlen jedoch dringend
- die Installation des <literal>base</literal> Source-Kit,
- das viele der hier erw&auml;hnten Dateien enth&auml;lt und
- des <literal>sys</literal> (Kernel) Source-Kit, das den
- Quellcode f&uuml;r den Kernel enth&auml;lt. Au&szlig;er
- dem Programm zur Konfiguration des Kernels
- (&man.config.8;) gibt es im System nichts, zu dessen
- Funktion der Quellcode erforderlich ist. Mit Ausnahme der
- Kernelquellen ist unsere Build-Struktur so aufgebaut,
- da&szlig; Sie den Quellcode von &uuml;berall her per NFS
- read-only mounten und dennoch neue Binaries erstellen
- k&ouml;nnen. (Wegen der Einschr&auml;nkung bez&uuml;glich
- der Kernelquellen empfehlen wir, diese nicht direkt nach
- <filename>/usr/src</filename> zu mounten, sondern
- irgendwoanders hin mit passenden symbolischen Links, um
- die Toplevel-Struktur des Quellbaumes zu
- duplizieren.)</para>
-
- <para>Die Quellen verf&uuml;gbar zu haben und zu wissen, wie
- man ein System mit ihnen erstellt, wird es Ihnen
- wesentlich einfacher machen, zu zuk&uuml;nftigen Ausgaben
- von FreeBSD zu wechseln.</para>
-
- <para>Um einen Teil der Quellen auszuw&auml;hlen, verwenden
- Sie den Menuepunkt Custom, wenn Sie sich im Menue
- Distributions des Systeminstallationstools
- befinden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-kernel">
- <para>Mu&szlig; ich einen Kernel erstellen?</para>
- </question>
-
- <answer>
- <para>Urspr&uuml;nglich war die Erstellung eines neuen
- Kernels bei fast jeder Installation von FreeBSD
- erforderlich, aber neuere Ausgaben haben von der
- Einf&uuml;hrung eines weitaus benutzerfreundlicheren
- Kernelkonfigurationswerkzeugs profitiert. Geben Sie am
- FreeBSD Boot-Prompt (boot:) <option>-c</option> ein, um in
- ein visuelles Konfigurationsmenue zu gelangen. Dieses
- Programm erm&ouml;glicht Ihnen die Konfiguration der
- Kerneleinstellungen f&uuml;r die gebr&auml;uchlichsten
- ISA-Karten.</para>
-
- <para>Es wird weiterhin empfohlen, gegebenenfalls einen
- neuen Kernel zu erstellen, der nur die ben&ouml;tigten
- Treiber enth&auml;lt, um ein wenig Hauptspeicher zu
- sparen, aber f&uuml;r die meisten Systeme ist dies ist
- nicht l&auml;nger erforderlich.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="password-encryption">
- <para>Soll ich DES oder MD5 zur Verschl&uuml;sselung der
- Pa&szlig;w&ouml;rter benutzen?</para>
- </question>
-
- <answer>
- <para>FreeBSD benutzt standardm&auml;&szlig;ig
- <emphasis>MD5</emphasis> zur Verschl&uuml;sselung der
- Pa&szlig;w&ouml;rter. Es wird angenommen, da&szlig; diese
- Methode sicherer ist als das traditionell benutzte
- Verfahren, das auf dem <emphasis>DES</emphasis>
- Algorithmus basierte. Es ist immer noch m&ouml;glich,
- DES-Pa&szlig;w&ouml;rter zu benutzen, wenn Sie die Datei
- mit den Pa&szlig;w&ouml;rtern mit &auml;lteren System
- austauschen m&uuml;ssen. &Auml;ltere System verstehen
- meist nur das unsichere Verfahren, dieses steht Ihnen zur
- Verf&uuml;gung, wenn Sie mit sysinstall die
- <quote>crypto</quote> Distribution installieren. Sie
- k&ouml;nnen auch die crypto Sourcecodes installieren, wenn
- Sie Ihr System &uuml;ber die Sourcen aktualisieren. Das
- f&uuml;r neue Pa&szlig;w&ouml;rter benutzte
- Verschl&uuml;sselungsverfahren wird &uuml;ber die
- Einstellung <quote>passwd_format</quote> in
- <filename>/etc/login</filename> festgelegt. Die
- m&ouml;glichen Werte sind entweder <quote>des</quote>
- (falls installiert) oder <quote>md5</quote>. Weitere
- Informationen &uuml;ber die Einstellungen f&uuml;r den
- Login erhalten Sie in &man.login.conf.5;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-floppy-hangs">
- <para>Die Bootdiskette startet, bleibt aber bei
- <literal>Probing Devices...</literal> h&auml;ngen.</para>
- </question>
-
- <answer>
- <para>Falls Sie ein IDE-Zip- oder Jaz-Laufwerk eingebaut
- haben, entfernen Sie es und versuchen Sie es erneut.
- Solche Laufwerke k&ouml;nnten dem Bootvorgang st&ouml;ren.
- Nach der Installation des Systems k&ouml;nnen Sie das
- Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich
- in einer sp&auml;teren Version behoben werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="panic-on-install-reboot">
- <para>Ich bekomme den Fehler <literal>panic: cant mount
- root</literal>, wenn ich das System nach der Installation
- reboote.</para>
- </question>
-
- <answer>
- <para>Dieser Fehler beruht auf Unstimmigkeiten zwischen den
- Festplatteninformationen im Bootblock und denen im Kernel.
- Der Fehler tritt normalerweise auf IDE-Systemen mit zwei
- Festplatten auf, bei denen die Festplatten als Master-
- oder Single-Device auf separaten IDE-Controllern
- angeschlossen sind und FreeBSD auf der Platte am zweiten
- Controller installiert wurde. Der Bootblock vermutet,
- da&szlig; das System auf wd1 (der zweiten BIOS-Platte)
- installiert ist, w&auml;hrend der Kernel der ersten Platte
- auf dem zweiten Controller die Ger&auml;tekennung wd2
- zuteilt. Der Kernel versucht nach der
- Ger&auml;te&uuml;berpr&uuml;fung die vom Bootblock
- angenommene Bootdisk wd1 zu mounten, obwohl sie in
- Wirklichkeit wd2 hei&szlig;t - und scheitert.</para>
-
- <para>Tun Sie folgendes, um dieses Problem zu
- beheben:</para>
-
- <orderedlist>
- <listitem>
- <para>Wenn Sie FreeBSD 3.3 oder neuer benutzen,
- m&uuml;ssen Sie das System rebooten und
- <literal>Enter</literal> dr&uuml;cken, wenn die
- Meldung <literal>Booting kernel in 10 seconds; hit
- [Enter] to interrupt</literal> erscheint. Dadurch
- gelangen Sie in den Boot Loader.</para>
-
- <para>Geben Sie nun
- <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
- ein. <literal>disk_number</literal> hat den Wert
- <literal>0</literal>, wenn FreeBSD auf dem Master des
- ersten IDE-Controllers installiert wurde;
- <literal>1</literal>, wenn FreeBSD auf dem Slave des
- ersten IDE-Controllers installiert wurde;
- <literal>2</literal>, wenn FreeBSD auf dem Master des
- zweiten IDE-Controllers installiert wurde; und
- <literal>3</literal>, wenn FreeBSD auf dem Slave des
- zweiten IDE-Controllers installiert wurde.</para>
-
- <para>Nach der Eingabe von <literal>boot</literal>
- sollte Ihr System jetzt korrekt starten.</para>
-
- <para>Damit Sie dieses Ritual nicht bei jedem Start des
- Systems durchf&uuml;hren m&uuml;ssen, sollten Sie die
- Zeile
- <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
- in die Datei
- <filename>/boot/loader.conf.local</filename>
- eintragen.</para>
- </listitem>
-
- <listitem>
- <para>Wenn Sie FreeBSD 3.2 oder eine &auml;ltere Version
- benutzen, geben Sie am Prompt Boot:
- <literal>1:wd(2,a)kernel</literal> ein und
- bet&auml;tigen Sie die Enter-Taste. Wenn das System
- nun startet, f&uuml;hren Sie den Befehl <command>echo
- "1:wd(2,a)kernel" &gt; /boot.config</command> aus, um
- diese Bootzeichenfolge zur Voreinstellung zu
- machen.</para>
- </listitem>
-
- <listitem>
- <para>Stellen Sie eine ununterbrochene Folge der
- Festplatten her, indem Sie die FreeBSD-Platte am
- ersten IDE-Controller anschlie&szlig;en.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="../handbook/kernelconfig.html">Erstellen Sie
- einen neuen Kernel</ulink>: modifizieren Sie die
- wd-Konfigurationszeilen wie folgt:</para>
-
- <programlisting>
-controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
-disk wd0 at wdc0 drive 0
-# disk wd1 at wdc0 drive 1 # Kommentieren Sie diese Zeile aus
-
-controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
-disk wd1 at wdc1 drive 0 # &Auml;ndern Sie wd2 in wd1
-disk wd2 at wdc1 drive 1 # &Auml;ndern Sie wd3 in wd2
- </programlisting>
-
- <para>Installieren Sie den neuen Kernel. Falls sie Ihre
- Festplattenanschl&uuml;sse umgesteckt haben und die
- alte Konfiguration wiederherstellen m&ouml;chten,
- stecken Sie die Anschl&uuml;sse wie gew&uuml;nscht um
- und rebooten Sie. Ihr System sollte nun fehlerfrei
- booten.</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="memory-limits">
- <para>Gibt es eine Hauptspeicherbegrenzung?</para>
- </question>
-
- <answer>
- <para>Es werden maximal 4 Gigabyte Hauptspeicher
- unterst&uuml;tzt. Details zu einer entsprechenden,
- getesteten Konfiguration finden Sie unter <ulink
- URL="ftp://ftp.cdrom.com/archive-info/configuration">Konfiguration
- von WCArchive</ulink>. Seien Sie vorsichtig, wenn Sie
- soviel Hauptspeicher in Ihrem Rechner benutzen
- m&ouml;chten. Benutzen Sie ggfs. ECC-Speicher und Module
- mit neun (statt der &uuml;blichen 18) Chips, um die
- kapazitive Belastung zu reduzieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ffs-limits">
- <para>Wo liegen die Grenzen f&uuml;r
- ffs-Dateisysteme?</para>
- </question>
-
- <answer>
- <para>Theoretisch liegt das Limit f&uuml;r ffs-Dateisysteme
- bei 8 Terabyte (2G-Bl&ouml;cke) oder 16TB f&uuml;r die
- standard Blockgr&ouml;&szlig;e von 8k. In der Praxis
- setzt die Software das Limit auf 1 Terabyte herab, aber
- durch Modifikationen sind auch Dateisysteme mit 4 Terabyte
- m&ouml;glich (und existieren auch).</para>
-
- <para>Die maximale Gr&ouml;&szlig;e einer einzelnen
- ffs-Datei liegt bei ungef&auml;hr 1G Bl&ouml;cken (4TB,
- falls die Blockgr&ouml;&szlig;e 4k betr&auml;gt).</para>
-
- <table>
- <title>Maximale Dateigr&ouml;&szlig;e</title>
-
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Blockgr&ouml;&szlig;e</entry>
-
- <entry>2.2.7-stable</entry>
-
- <entry>3.0-current</entry>
-
- <entry>geht</entry>
-
- <entry>sollte gehen</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>4K</entry>
-
- <entry>4T-1</entry>
-
- <entry>4T-1</entry>
-
- <entry>4T-1</entry>
-
- <entry>4+t</entry>
- </row>
-
- <row>
- <entry>8K</entry>
-
- <entry>32+G</entry>
-
- <entry>8T-1</entry>
-
- <entry>32+G</entry>
-
- <entry>32T-1</entry>
- </row>
-
- <row>
- <entry>16K</entry>
-
- <entry>128+G</entry>
-
- <entry>16T-1</entry>
-
- <entry>128+G</entry>
-
- <entry>32T-1</entry>
- </row>
-
- <row>
- <entry>32K</entry>
-
- <entry>512+G</entry>
-
- <entry>32T-1</entry>
-
- <entry>512+G</entry>
-
- <entry>64T-1</entry>
- </row>
-
- <row>
- <entry>64K</entry>
-
- <entry>2048+G</entry>
-
- <entry>64T-1</entry>
-
- <entry>2048+G</entry>
-
- <entry>128T-1</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Wenn die im Dateisystem verwendete
- Blockgr&ouml;&szlig;e 4k betr&auml;gt, wird mit dreifacher
- Indirektion gearbeitet und die Limitierung sollte durch
- die h&ouml;chste Blocknummer erfolgen, die mit dreifacher
- Indirektion dargestellt werden kann (ungef&auml;hr 1k^3 +
- 1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der
- (falschen) Anzahl von 1G-1 Blocknummern im Dateisystem.
- Die maximale Anzahl Blocknummern m&uuml;&szlig;te 2G-1
- sein. Es gibt einige Fehler f&uuml;r Blocknummern nahe
- 2G-1, aber solche Blocknummern sind bei einer
- Blockgr&ouml;&szlig;e von 4k unerreichbar.</para>
-
- <para>Bei Blocknummern von 8k und gr&ouml;&szlig;er sollte
- das Limit bei 2G-1 Blocknummern liegen, aber
- tats&auml;chlich liegt es bei bei 1G-1 Blocknummern.
- Au&szlig;er unter -STABLE sind Bl&ouml;cke in der dritten
- Indirektion unerreichbar, wodurch das Limit auf die durch
- zweifache Indirektion maximal darstellbare Blocknummer
- reduziert wird (ca. (Blockgr&ouml;&szlig;e/4)^2 +
- (Blockgr&ouml;&szlig;e/4)). Unter -CURRENT k&ouml;nnte
- die &Uuml;berschreitung dieser Grenze Probleme
- verursachen. Die Verwendung der korrekten Grenze von 2G-1
- verursacht Probleme.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tb-on-floppy">
- <para>Wie bekomme ich 1TB-Dateien auf meine
- Diskette?</para>
- </question>
-
- <answer>
- <para>Ich habe mehrere virtuelle auf Disketten :-). Die
- maximale Dateigr&ouml;&szlig;e hat nicht unbedingt etwas
- mit der maximalen Plattengr&ouml;&szlig;e zu tun. Die
- maximale Plattengr&ouml;&szlig;e betr&auml;gt 1TB. Es ist
- ein Feature, da&szlig; die Dateigr&ouml;&szlig;e die
- Plattengr&ouml;&szlig;e &uuml;bersteigen kann.</para>
-
- <para>Durch das folgende Beispiel wird eine Datei der
- Gr&ouml;&szlig;e 8T-1 erstellt, die insgesamt 32k
- Plattenplatz (3 indirekte Bl&ouml;cke und ein Datenblock)
- auf einer kleinen Rootpartition in Anspruch nimmt. Dieser
- dd-Befehl setzt ein dd-Programm voraus, das gro&szlig;e
- Dateien unterst&uuml;tzt.</para>
-
- <screen>
-&prompt.user; <userinput>cat foo</userinput>
-df .
-dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
-ls -l z
-du z
-df .
-&prompt.user; <userinput>sh foo</userinput>
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/da0a 64479 27702 31619 47% /
-1+0 records in
-1+0 records out
-1 bytes transferred in 0.000187 secs (5346 bytes/sec)
--rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
-32 z
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/da0a 64479 27734 31587 47% /
- </screen>
-
- <para>Bruce Evans, September 1998</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="archsw-readin-failed-error">
- <para>Ich habe einen neuen Kernel erstellt und bekomme beim
- Booten nun die Fehlermeldung
- <literal>archsw.readin.failed</literal>.</para>
- </question>
-
- <answer>
- <para>Sie k&ouml;nnen den zu bootenden Kernel direkt im
- zweiten Schritt angeben, indem Sie eine beliebige Taste
- dr&uuml;cken, wenn das | erscheint und bevor der Loader
- startet. Genauer: Sie haben die Kernelquellen erneuert,
- und von dort ein neues Kernel-Builtin installiert,
- <emphasis>ohne make world auszuf&uuml;hren</emphasis>.
- Das geht nicht - f&uuml;hren Sie make world aus.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="upgrade-3x-4x">
- <para>Wie f&uuml;hre ich ein Update von 3.X nach 4.X
- durch?</para>
- </question>
-
- <answer>
- <para>Wir raten Ihnen <emphasis>dringend</emphasis>, dazu
- einen der Snapshots zu verwenden. Die Snapshots von
- 4-STABLE sind auf <ulink
- url="ftp://releng4.FreeBSD.org/">releng4.FreeBSD.org</ulink>
- verf&uuml;gbar.</para>
-
- <para>Wenn Sie den Quellcode f&uuml;r das Update benutzen
- wollen, finden Sie im <ulink
- url="http://www.de.FreeBSD.org/handbook/cutting-edge.html">FreeBSD
- Handbuch</ulink> weitere Informationen.</para>
-
- <para><emphasis>Wenn Sie FreeBSD erst seit kurzer Zeit
- nutzen, sollten Sie auf gar keinen Fall &uuml;ber den
- Quellcode updaten, das gilt ganz besonders f&uuml;r das
- Update von 3.X nach 4.X. Falls Sie es dennoch versuchen
- wollen, sollten Sie vorher die entsprechenden Anleitungen
- sehr sorgf&auml;ltig durchlesen!</emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="security-profiles">
- <para>Was sind die <quote>Sicherheits-Profile</quote>?</para>
- </question>
-
- <answer>
- <para>In einem <quote>Sicherheits-Profil</quote> werden
- verschiedene Einstellungen zusammengefa&szlig;t, mit denen
- das gew&uuml;schte Verh&auml;ltnis zwischen Sicherheit und
- Benutzerfreundlichkeit hergestellt werden soll. Um dies
- zu erreichen, werden bestimmte Dienste und Features
- entweder aktiviert oder deaktiviert. Nutzt man ein
- strengeres Sicherheits-Profil, werden weniger Dienste
- automatisch gestartet. Dies ist eines der Grundprinzipien
- der Sicherheit: Benutze nichts, was nicht unbedingt
- benutzt werden mu&szlig;.</para>
-
- <para>Bitte beachten Sie, da&szlig; die Sicherheits-Profile
- nur Voreinstellungen sind. Sie k&ouml;nnen nach der
- Installation von FreeBSD alle Dienste einzeln aktivieren oder
- deaktivieren, indem Sie die die entsprechenden Optionen in
- <filename>/etc/rc.conf</filename> hinzuf&uuml;gen bzw.
- &auml;ndern. Weitere Informationen erhalten Sie in der
- Onlinehilfe &man.rc.conf.5;.</para>
-
- <para>In der Tabelle sind die Auswirkungen der
- Sicherheits-Profile zusammengefa&szlig;t. Jedes
- Sicherheits-Profil belegt eine Zeile, die
- beinflu&szlig;ten Dienste bzw. Optionen stehen in den
- Spalten.</para>
-
- <table>
- <title>M&ouml;gliche Sicherheits-Profile</title>
-
- <tgroup cols=5>
- <thead>
- <row>
- <entry></entry>
-
- <entry>Extreme</entry>
-
- <entry>High</entry>
-
- <entry>Moderate</entry>
-
- <entry>Low</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>&man.inetd.8;</entry>
-
- <entry>NEIN</entry>
-
- <entry>NEIN</entry>
-
- <entry>JA</entry>
-
- <entry>JA</entry>
- </row>
-
- <row>
- <entry>&man.sendmail.8;</entry>
-
- <entry>NEIN</entry>
-
- <entry>JA</entry>
-
- <entry>JA</entry>
-
- <entry>JA</entry>
- </row>
-
- <row>
- <entry>&man.sshd.8;</entry>
-
- <entry>NEIN</entry>
-
- <entry>JA</entry>
-
- <entry>JA</entry>
-
- <entry>JA</entry>
- </row>
-
- <row>
- <entry>&man.portmap.8;</entry>
-
- <entry>NEIN</entry>
-
- <entry>NEIN</entry>
-
- <entry>[1]</entry>
-
- <entry>JA</entry>
- </row>
-
- <row>
- <entry>NFS server</entry>
-
- <entry>NEIN</entry>
-
- <entry>NEIN</entry>
-
- <entry>JA</entry>
-
- <entry>JA</entry>
- </row>
-
- <row>
- <entry>&man.securelevel.8;</entry>
-
- <entry>JA (2) [2]</entry>
-
- <entry>JA (1) [2]</entry>
-
- <entry>NEIN</entry>
-
- <entry>NEIN</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Anmerkungen:</para>
-
- <orderedlist>
- <listitem>
- <para>Der Dienst <quote>portmapper</quote> wird
- aktiviert, wenn die Maschine w&auml;hrend der
- Installation als NFS-Client oder NFS-Server
- konfiguriert wurde.</para>
- </listitem>
-
- <listitem>
- <para>Wenn Sie ein Sicherheits-Profil nutzen, bei dem
- eine Sicherheits-Stufe gesetzt wird (Extreme or High),
- sollten Sie sich &uuml;ber die Auswirkungen im klaren
- sein. Lesen Sie die Onlinehilfe zu &man.init.8; und
- achten Sie auf die Bedeutung der Sicherheits-Stufen.
- Wenn Sie das nicht tun, k&ouml;nnten Sie sp&auml;ter
- jede Menge Probleme haben!</para>
- </listitem>
- </orderedlist>
-
- <para>
- <warning>
- <para>Die Sicherheits-Profile sind kein Allheilmittel!
- Wenn Sie hier ein strenges Profil ausw&auml;hlen,
- bedeutet da&szlig; nicht, da&szlig; Sie sich nicht
- mehr um das Thema Sicherheit k&uuml;mmern m&uuml;ssen.
- Behalten Sie die aktuellen Entwicklungen im Auge (z.B.
- auf der entsprechenden <ulink
- url="../handbook/eresources.html#ERESOURCES-MAIL">Mailing
- Liste</ulink>), benutzen Sie sichere Kennw&ouml;rter
- bzw. Kenns&auml;tze und halten Sie die Grundregeln zum
- Thema Sicherheit ein. Das Sicherheits-Profil ist
- lediglich eine M&ouml;glichkeit, das Verh&auml;ltnis
- zwischen Sicherheit und Benutzerfreundlichkeit schon
- bei der Installation einzustellen.</para>
- </warning>
-
- <note>
- <para>Der Mechanismus der Sicherheits-Profile wurde
- f&uuml;r die Installation entwickelt. Wenn Sie
- FreeBSD bereits installiert haben, ist es
- wahrscheinlich sinnvoller, die einzelnen Dienste
- direkt zu aktivieren oder zu deaktivieren. Wenn Sie
- wirklich ein Sicherheits-Profil benutzen wollen,
- k&ouml;nnen Sie &man.sysinstall.8; erneut starten, um
- es zu aktivieren.</para>
- </note>
- </para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="hardware">
- <title>Hardware-Kompatibilit&auml;t</title>
-
- <qandaset>
- <qandaentry>
- <question id="supported-hard-drives">
- <para>Welche Arten von Festplatten werden von FreeBSD
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>FreeBSD unterst&uuml;tzt EIDE- und SCSI-Laufwerke (mit
- kompatiblen Controllern - siehe folgenden Abschnitt),
- sowie alle Laufwerke, die die original <quote>Western
- Digital</quote>-Schnittstelle (MFM, RLL, ESDI und
- nat&uuml;rlich IDE) benutzen. Ein paar Controller mit
- propriet&auml;ren Schnittstellen k&ouml;nnten nicht
- laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und
- Clones.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="supported-scsi-controllers">
- <para>Welche SCSI-Controller werden
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>Sie finden eine vollst&auml;ndige Liste im <ulink
- URL="../handbook/install.html#INSTALL-HW">Handbuch</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="supported-cdrom-drives">
- <para>Welche CD-ROM-Laufwerke werden von FreeBSD
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>Jedes an einem unterst&uuml;tzten Controller
- angeschlossene SCSI-Laufwerk wird
- unterst&uuml;tzt.</para>
-
- <para>Die folgenden propriet&auml;ren CD-ROM-Schnittstellen
- werden ebenfalls unterst&uuml;tzt:</para>
-
- <itemizedlist>
- <listitem>
- <para>Mitsumi LU002 (8bit), LU005 (16bit) und FX001D
- (16bit 2x Speed).</para>
- </listitem>
-
- <listitem>
- <para>Sony CDU 31/33A</para>
- </listitem>
-
- <listitem>
- <para>Sound Blaster Non-SCSI CD-ROM</para>
- </listitem>
-
- <listitem>
- <para>Matsushita/Panasonic CD-ROM</para>
- </listitem>
-
- <listitem>
- <para>ATAPI compatible IDE CD-ROMs</para>
- </listitem>
- </itemizedlist>
-
- <para>Von allen Nicht-SCSI-Laufwerken ist bekannt, da&szlig;
- sie im Vergleich zu SCSI-Laufwerken extrem langsam sind.
- Einige ATAPI-CDROMs k&ouml;nnten nicht
- funktionieren.</para>
-
- <para>Ab 2.2 unterst&uuml;tzt die FreeBSD-CDROM von BSDi das
- direkte Booten von CD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="zip-support">
- <para>Unterst&uuml;tzt FreeBSD ZIP-Laufwerke?</para>
- </question>
-
- <answer>
- <para>FreeBSD unterst&uuml;tzt nat&uuml;rlich alle
- g&auml;ngigen SCSI-ZIP-Laufwerke. Ihr ZIP-Laufwerk darf
- nur mit den SCSI-Ziel-IDs 5 oder 6 laufen, aber Sie
- k&ouml;nnen sogar davon booten, falls das BIOS Ihres
- Hostadapters dies unterst&uuml;tzt. Ich wei&szlig; nicht,
- welcher Hostadapter das Booten von anderen Zielen als 0
- oder 1 erlaubt... schauen Sie in Ihren Handb&uuml;chern
- nach (und lassen Sie mich wissen, falls Sie es
- herausgefunden haben).</para>
-
- <para>ATAPI (IDE) Zip-Laufwerke werden von FreeBSD 2.2.6 und
- sp&auml;teren Versionen unterst&uuml;tzt.</para>
-
- <para>Seit Version 3.0 unterst&uuml;tzt FreeBSD
- ZIP-Laufwerke, die an der parallel Schnittstelle
- angeschlossen sind. Falls Sie eine gen&uuml;gend aktuelle
- Version benutzen, sollten Sie &uuml;berpr&uuml;fen, ob Ihr
- Kernel die folgenden Treiber enth&auml;lt:
- <devicename>scbus0</devicename>,
- <devicename>da0</devicename>,
- <devicename>ppbus0</devicename> und
- <devicename>vp0</devicename> (der GENERIC-Kernel
- enth&auml;lt alle, au&szlig;er
- <devicename>vp0</devicename>). Wenn diese Treiber
- vorhanden sind, sollte das Laufwerk an der parallelen
- Schnittstelle als <filename>/dev/da0s4</filename>
- verf&uuml;gbar sein. Zip-Datentr&auml;ger k&ouml;nnen mit
- <command>mount /dev/da0s4 /mnt</command> ODER
- (DOS-formatierte) <command>mount_msdos /dev/da0s4
- /mnt</command> gemountet werden.</para>
-
- <para>Lesen Sie auch <link linkend="jaz">diese Anmerkung zu
- Wechseldatentr&auml;gern</link> und <link
- linkend="disklabel">diese zur
- <quote>Formatierung</quote></link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="jaz-zip-removable-support">
- <para>Unterst&uuml;tzt FreeBSD JAZ, EZ und andere
- Wechsellaufwerke?</para>
- </question>
-
- <answer>
- <para>Abgesehen von der IDE-Version der EZ-Laufwerke,
- handelt es sich ausschlie&szlig;lich um SCSI-Ger&auml;te.
- Unter FreeBSD m&uuml;&szlig;ten sie sich also alle wie
- SCSI-Platten und das IDE-EZ-Laufwerk m&uuml;&szlig;te sich
- wie ein IDE-Laufwerk verhalten.</para>
-
- <para><anchor id="jaz">Ich bin mir nicht sicher, wie gut
- FreeBSD den Wechsel der Datentr&auml;ger w&auml;hrend des
- Betriebs unterst&uuml;tzt. Sie werden die Laufwerke vor
- einem Datentr&auml;gerwechsel nat&uuml;rlich unmounten und
- sicherstellen m&uuml;ssen, da&szlig; externe Einheiten
- w&auml;hrend des Bootens eingeschaltet sind, damit FreeBSD
- sie erkennen kann.</para>
-
- <para>Lesen Sie auch <link linkend="disklabel">diesen
- Hinweis zur <quote>Formatierung</quote></link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-support">
- <para>Welche seriellen Multi-Port-Karten werden von FreeBSD
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>Es existiert eine Liste der unterst&uuml;tzten Karten
- im Abschnitt <ulink
- URL="../handbook/install-hw.html#INSTALL-MISC">Verschiedene
- Ger&auml;te</ulink> des Handbuchs.</para>
-
- <para>Von einigen nicht NoName-Nachbauten ist ebenfalls
- bekannt, da&szlig; sie funktionieren, speziell von den
- AST-kompatiblen.</para>
-
- <para>In &man.sio.4; finden Sie weitere Informationen zur
- Konfiguration solcher Karten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="usbkbd">
- <para>Unterst&uuml;tzt FreeBSD meine Tastatur mit
- USB-Anschlu&szlig;?</para>
- </question>
-
- <answer>
- <para>Die Unterst&uuml;tzung f&uuml;r USB-Ger&auml;te ist
- seit FreeBSD 3.1 Bestandteil des Systems. Die
- Unterst&uuml;tzung war allerdings nicht ganz ausgereift;
- einige der Probleme konnten bis zur Ver&ouml;ffentlichung
- von FreeBSD 3.2 nicht behoben werden. Wenn Sie die
- Treiber f&uuml;r USB-Tastaturen selbst testen
- m&ouml;chten, sollten Sie den unten aufgef&uuml;hrten
- Anweisungen folgen:</para>
-
- <orderedlist>
- <listitem>
- <para>Benutzen Sie FreeBSD 3.2 oder eine neuere
- Version.</para>
- </listitem>
-
- <listitem>
- <para>Tragen Sie die folgenden Zeilen in die
- Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
- einen neuen Kernel.</para>
-
- <programlisting>
-device uhci
-device ohci
-device usb
-device ukbd
-options KBD_INSTALL_CDEV
- </programlisting>
-
- <para>Falls Sie eine &auml;ltere FreeBSD-Version als
- FreeBSD 4.0 benutzen, m&uuml;ssen Sie diese
- Eintr&auml;ge verwenden:</para>
-
- <programlisting>
-controller uhci0
-controller ohci0
-controller usb0
-controller ukbd0
-options KBD_INSTALL_CDEV
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Erzeugen Sie im Verzeichnis
- <filename>/dev</filename> die notwendigen
- Dateien:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV kbd0 kbd1</userinput>
- </screen>
- </listitem>
-
- <listitem>
- <para>Tragen Sie in der
- <filename>/etc/rc.conf</filename> die folgenden Zeilen
- ein:</para>
-
- <programlisting>
-usbd_enable="YES"
-usbd_flags=""
- </programlisting>
- </listitem>
- </orderedlist>
-
- <para>Nach einem Neustart des Systems ist die AT-Tastatur
- als <filename>/dev/kbd0</filename> und die USB-Tastatur
- als <filename>/dev/kbd1</filename> verf&uuml;gbar. Dies
- gilt nat&uuml;rlich nur, wenn beide Tastaturen
- angeschlossen sind; falls nur die USB-Tastatur
- angeschlossen ist, ist diese als
- <filename>/dev/ukbd0</filename> verf&uuml;gbar.</para>
-
- <para>Wenn Sie die USB-Tastatur an der Systemkonsole
- benutzen wollen, m&uuml;ssen Sie dies dem System explizit
- mitteilen. Dazu mu&szlig; das folgende Kommando
- w&auml;hrend des Systemstarts ausgef&uuml;hrt
- werden:</para>
-
- <screen>
-&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 &lt; /dev/ttyv0 &gt; /dev/null</userinput>
- </screen>
-
- <para>Wenn Sie nur die USB-Tastatur angeschlossen haben, ist
- diese als <filename>/dev/kbd0</filename> verf&uuml;gbar;
- daher mu&szlig; in diesem Fall das folgende Kommando
- benutzt werden:</para>
-
- <screen>
-&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 &lt; /dev/ttyv0 &gt; /dev/null</userinput>
- </screen>
-
- <para>Tragen Sie dieses Kommando in Datei
- <filename>/etc/rc.i386</filename> ein.</para>
-
- <para>Sobald Sie diese Schritte durchgef&uuml;hrt haben,
- sollte die USB-Tastatur ohne weitere &Auml;nderungen auch
- unter X benutzbar sei.</para>
-
- <para>Zur Zeit kann es noch Probleme geben, wenn Sie eine
- USB-Tastatur im laufenden Betrieb einstecken oder
- abziehen. Um Probleme zu vermeiden, sollten Sie die
- Tastatur anschlie&szlig;en, bevor Sie das System
- anschalten und die Tastatur nicht abziehen, solange das
- System noch l&auml;uft.</para>
-
- <para>Weitere Informationen erhalten Sie in
- &man.ukbd.4;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="busmouse">
- <para>Ich habe eine un&uuml;bliche Busmaus. Wie mu&szlig;
- ich sie konfigurieren?</para>
- </question>
-
- <answer>
- <para>FreeBSD unterst&uuml;tzt die Busmaus und
- InPort-Busmaus von Herstellern wie Microsoft, Logitech und
- ATI. Der Bus-Ger&auml;tetreiber ist bei FreeBSD 2.x
- standardm&auml;&szlig;ig im GENERIC-Kernel eingebunden; ab
- Version 3.0 m&uuml;ssen Sie ihn selbst in die
- Konfigurationsdatei f&uuml;r Ihren angepa&szlig;ten Kernel
- einbinden. F&uuml;gen Sie die folgende Zeile in Ihre
- Konfigurationsdatei ein, falls Sie sich einen
- angepa&szlig;ten Kernel mit dem Busmaustreiber
- erstellen</para>
-
- <para>FreeBSD 3.0 und &auml;ltere Versionen</para>
-
- <programlisting>
-device mse0 at isa? port 0x23c tty irq5 vector mseintr
- </programlisting>
-
- <para>FreeBSD 3.X au&szlig;er 3.0</para>
-
- <programlisting>
-device mse0 at isa? port 0x23c tty irq5
- </programlisting>
-
- <para>FreeBSD 4.X</para>
-
- <programlisting>
-device mse0 at isa? port 0x23c irq5
- </programlisting>
-
- <para>Die Busmaus wird &uuml;blicherweise zusammen mit einer
- speziellen Karte ausgeliefert. Sie k&ouml;nnte es Ihnen
- erm&ouml;glichen, andere Werte f&uuml;r die Port-Adresse
- und den Interrupt zu setzen. Weitere Informationen finden
- Sie in Handbuch zu Ihrer Maus und in der &man.mse.4;
- Manualpage.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2mouse">
- <para>Wie benutze ich meine PS/2 (<quote>Mouse-Port</quote>
- oder <quote>Tastatur</quote>)-Maus?</para>
- </question>
-
- <answer>
- <para>Falls Sie eine sp&auml;tere FreeBSD-Version als 2.2.5
- benutzen, ist der entsprechende Treiber
- <devicename>psm</devicename> im Kernel enthalten und
- aktiviert. Der Kernel sollte Ihre PS/2-Maus beim Booten
- erkennen.</para>
-
- <para>Wenn Sie eine gerigf&uuml;gig fr&uuml;here Version von
- FreeBSD benutzen (2.1.x oder h&ouml;her), k&ouml;nnen Sie
- den Treiber w&auml;hrend der Installation einfach im
- Kernelkonfigurationsmenue aktivieren, oder sp&auml;ter mit
- der Option <option>-c</option> am Bootprompt
- <command>boot:</command>. Da der Treiber
- standardm&auml;&szlig;ig deaktiviert ist, werden Sie ihn
- also explizit aktivieren m&uuml;ssen.</para>
-
- <para>Falls Sie eine &auml;ltere FreeBSD-Version benutzen,
- m&uuml;ssen Sie folgende Zeile in Ihre
- Kernelkonfigurationsdatei einf&uuml;gen und den Kernel neu
- kompilieren.</para>
-
- <para>FreeBSD 3.0 und &auml;ltere Versionen</para>
-
- <programlisting>
-device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
- </programlisting>
-
- <para>FreeBSD 3.1 und neuere Versionen:</para>
-
- <programlisting>
-device psm0 at isa? tty irq 12
- </programlisting>
-
- <para>Ab FreeBSD 4.0:</para>
-
- <programlisting>
-device psm0 at atkbdc? irq 12
- </programlisting>
-
- <para>Lesen Sie den <ulink
- URL="../handbook/kernelconfig.html">Handbucheintrag zur
- Kernelkonfiguration</ulink>, falls Sie sich mit der
- Erstellung eines Kernels nicht auskennen.</para>
-
- <para>Wenn Sie den Kernel soweit haben, da&szlig; er
- <devicename>psm0</devicename> beim Booten korrekt erkennt,
- stellen Sie sicher, da&szlig; sich im Verzeichnis /dev ein
- Eintrag f&uuml;r <devicename>psm0</devicename> befindet.
- Durch Eingabe von</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput>
- </screen>
-
- <para>k&ouml;nnen Sie einen erstellen, wenn Sie als
- <username>root</username> angemeldet sind.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="moused">
- <para>Kann man die Maus irgendwie au&szlig;erhalb von X
- Windows benutzen?</para>
- </question>
-
- <answer>
- <para>Falls Sie den standard Konsoltreiber syscons benutzen,
- k&ouml;nnen Sie den Mauszeiger auf Textkonsolen zum
- Kopieren und Einf&uuml;gen von Text verwenden. Starten
- Sie den Mausd&auml;mon moused und schalten Sie den
- Mauszeiger auf der virtuellen Konsole ein:</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> bezeichnet hierbei den
- Ger&auml;tename der Maus und
- <replaceable>yyyy</replaceable> das Protokoll.
- Unterst&uuml;tzte Protokolle finden Sie in der
- &man.moused.8; Manualpage.</para>
-
- <para>Wahrscheinlich wollen Sie den Mausd&auml;mon
- automatisch beim Booten starten. In Version 2.2.1
- m&uuml;ssen Sie hierzu die folgenden Variablen in
- <filename>/etc/sysconfig</filename> setzen:</para>
-
- <programlisting>
-mousedtype="yyyy"
-mousedport="xxxx"
-mousedflags=""
- </programlisting>
-
- <para>In den Versionen 2.2.2 bis 3.0 m&uuml;ssen Sie die
- folgenden Variablen in <filename>/etc/rc.conf</filename>
- setzen.</para>
-
- <programlisting>
-moused_type="yyyy"
-moused_port="xxxx"
-moused_flags=""
- </programlisting>
-
- <para>Wenn Sie eine PS/2-Maus besitzen und FreeBSD 3.1 (oder
- neuer) benutzen, brauchen Sie nur die Zeile
- <literal>moused_enable="YES"</literal> in die Datei
- <filename>/etc/rc.conf</filename> einzutragen.</para>
-
- <para>Falls Sie den Mausd&auml;mon auf allen virtuellen
- Bildschirmen anstatt nur w&auml;hrend des Bootens auf der
- Konsole benutzen wollen, tragen Sie au&szlig;erdem
- folgendes in <filename>/etc/rc.conf</filename>
- ein.</para>
-
- <programlisting>
-allscreens_flags="-m on"
- </programlisting>
-
- <para>Beginnend mit FreeBSD 2.2.6 ist der Mausd&auml;mon in
- der Lage, das richtige Protokoll automatisch zu erkennen,
- falls es sich nicht um ein relativ altes serielles
- Mausmodell handelt. Geben Sie <literal>auto</literal> als
- Protokoll an, um die automatische Erkennung zu
- aktivieren.</para>
-
- <para>W&auml;hrend der Mausd&auml;mon l&auml;uft, mu&szlig;
- der Zugriff auf die Maus zwischen dem Mausd&auml;mon und
- anderen Programmen, wie z.B. X Windows koordiniert werden.
- Lesen Sie auch <link linkend="x-and-moused">einen anderen
- Abschnitt</link> zu diesem Thema.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="text-mode-cut-paste">
- <para>Wie funktioniert das Kopieren und Einf&uuml;gen von
- Text mit der Maus auf einer Textkonsole?</para>
- </question>
-
- <answer>
- <para>Wenn Sie es geschafft haben, den Mausd&auml;mon zu
- starten (siehe <link linkend="moused">vorherigen
- Abschnitt</link>), halten Sie die linke Maustaste
- gedr&uuml;ckt und bewegen Sie die Maus, um einen
- Textabschnitt zu markieren. Dann dr&uuml;cken Sie die
- mittlere oder rechte Maustaste, um ihn an der
- Cursorposition einzuf&uuml;gen.</para>
-
- <para>In den Versionen 2.2.6 und sp&auml;teren bewirkt das
- Dr&uuml;cken der mittleren Maustaste das Einf&uuml;gen des
- Textes. Das Dr&uuml;cken der rechten Maustaste
- <quote>erweitert</quote> den markierten Textabschnitt.
- Evtl. m&ouml;chten Sie Tasten umbelegen oder die mittlere
- Taste emulieren, falls Ihre Maus keine hat. Details
- hierzu finden Sie in der &man.moused.8;
- Manualpage.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="usbmouse">
- <para>Wird meine USB-Maus von FreeBSD
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>Die Unterst&uuml;tzung f&uuml;r USB-Ger&auml;te ist
- seit FreeBSD 3.1 Bestandteil des Systems. Die
- Unterst&uuml;tzung war allerdings nicht ganz ausgereift;
- einige der Probleme konnten bis zur Ver&ouml;ffentlichung
- von FreeBSD 3.2 nicht behoben werden. Wenn Sie die
- Treiber f&uuml;r USB-M&auml;use selbst testen
- m&ouml;chten, sollten Sie den unten aufgef&uuml;hrten
- Anweisungen folgen:</para>
-
- <orderedlist>
- <listitem>
- <para>Benutzen Sie FreeBSD 3.2 oder eine neuere
- Version.</para>
- </listitem>
-
- <listitem>
- <para>Tragen Sie die folgenden Zeilen in die
- Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
- einen neuen Kernel.</para>
-
- <programlisting>
-device uhci
-device ohci
-device usb
-device ukbd
-options KBD_INSTALL_CDEV
- </programlisting>
-
- <para>Falls Sie eine &auml;ltere FreeBSD-Version als
- FreeBSD 4.0 benutzen, m&uuml;ssen Sie diese
- Eintr&auml;ge verwenden:</para>
-
- <programlisting>
-controller uhci0
-controller ohci0
-controller usb0
-controller usm0
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Erzeugen Sie im Verzeichnis
- <filename>/dev</filename> die notwendigen
- Dateien:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV ums0</userinput>
- </screen>
- </listitem>
-
- <listitem>
- <para>Tragen Sie in der
- <filename>/etc/rc.conf</filename> die folgenden Zeilen
- ein:</para>
-
- <programlisting>
-moused_enable="YES"
-moused_type="auto"
-moused_port="/dev/ums0"
-moused_flags=""
-usbd_enable="YES"
-usbd_flags=""
- </programlisting>
-
- <para>Weitergehende Informationen zum Thema moused
- finden sie im <link linkend="moused">vorherigen
- Abschnitt</link>.</para>
- </listitem>
-
- <listitem>
- <para>Wenn Sie Ihre USB-Maus auch unter X benutzen
- wollen, m&uuml;ssen sie die Datei
- <filename>XF86Config</filename> &auml;ndern. Wenn Sie
- XFree86 3.3.2 oder eine neuere Version benutzen,
- m&uuml;ssen die folgenden Zeilen im Abschnitt
- <emphasis>Pointer</emphasis> stehen:</para>
-
- <programlisting>
-Device "/dev/sysmouse"
-Protocol "Auto"
- </programlisting>
-
- <para>Wenn sie eine &auml;ltere Version von XFree86
- benutzen, m&uuml;ssen im Abschnitt
- <emphasis>Pointer</emphasis> die folgenden Angaben
- stehen:</para>
-
- <programlisting>
-Device "/dev/sysmouse"
-Protocol "SysMouse"
- </programlisting>
- </listitem>
- </orderedlist>
-
- <para>Weitergehende Informationen zum Thema "Maus und X"
- erhalten Sie <link
- linkend="x-and-moused">hier</link>.</para>
-
- <para>Zur Zeit kann es noch Probleme geben, wenn Sie eine
- USB-Maus im laufenden Betrieb einstecken oder abziehen.
- Um Probleme zu vermeiden, sollten Sie die Maus
- anschlie&szlig;en, bevor Sie das System anschalten und die
- Maus nicht abziehen, solange das System noch
- l&auml;uft.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mouse-wheel-buttons">
- <para>Meine Maus hat ein neumodisches Rad und mehr
- Kn&ouml;pfe. Kann ich sie in FreeBSD benutzen?</para>
- </question>
-
- <answer>
- <para>Ungl&uuml;cklicherweise lautet die Antwort:
- <quote>Vielleicht</quote>. Solche M&auml;use mit
- zus&auml;tzlichen Extras erfordern in den meisten
- F&auml;llen spezielle Treiber. Wenn der
- Ger&auml;tetreiber f&uuml;r die Maus oder das
- Anwendungsprogramm keine spezielle Unterst&uuml;tzung
- f&uuml;r die Maus bietet, wird sie sich wie eine
- gew&ouml;hnliche Maus mit zwei oder drei Kn&ouml;pfen
- verhalten.</para>
-
- <para>Ob und wie Sie das Rad unter X nutzen k&ouml;nnen,
- k&ouml;nnen Sie im <link linkend="x-and-wheel">passenden
- Abschnitt</link> der FAQ erfahren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="psmerr">
- <para>Meine Maus scheint nicht zu funktionieren. Der Cursor
- springt wild &uuml;ber den Bildschirm. Die Maus hat ein
- Rad und ist am PS/2-Port angeschlossen.</para>
- </question>
-
- <answer>
- <para>Die bis einschlie&szlig;lich FreeBSD 3.2 genutzte
- Version des Treibers f&uuml;r PS/2-M&auml;use
- unterst&uuml;tzt einige M&auml;use nicht richtig. Dazu
- geh&ouml;rt die Logitech M-S48 und deren OEM-Version.
- Wenden Sie die folgenden Patch auf
- <filename>/sys/i386/isa/psm.c</filename> an und erzeugen
- Sie einen neuen Kernel.</para>
-
- <programlisting>
-Index: psm.c
-===================================================================
-RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v
-retrieving revision 1.60.2.1
-retrieving revision 1.60.2.2
-diff -u -r1.60.2.1 -r1.60.2.2
---- psm.c 1999/06/03 12:41:13 1.60.2.1
-+++ psm.c 1999/07/12 13:40:52 1.60.2.2
-@@ -959,14 +959,28 @@
- sc->mode.packetsize = vendortype[i].packetsize;
-
- /* set mouse parameters */
-+#if 0
-+ /*
-+ * A version of Logitech FirstMouse+ won't report wheel
-movement,
-+ * if SET_DEFAULTS is sent... Don't use this command.
-+ * This fix was found by Takashi Nishida.
-+ */
- i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
- if (verbose >= 2)
- printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i);
-+#endif
- if (sc->config & PSM_CONFIG_RESOLUTION) {
- sc->mode.resolution
- = set_mouse_resolution(sc->kbdc,
-- (sc->config & PSM_CONFIG_RESOLUTION) - 1);
-+ (sc->config & PSM_CONFIG_RESOLUTION) - 1);
-+ } else if (sc->mode.resolution >= 0) {
-+ sc->mode.resolution
-+ = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
-+ }
-+ if (sc->mode.rate > 0) {
-+ sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
- }
-+ set_mouse_scaling(sc->kbdc, 1);
-
- /* request a data packet and extract sync. bits */
- if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3)
- </programlisting>
-
- <para>Dieses Problem sollte ab FreeBSD 3.3 nicht mehr
- auftreten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="laptop-mouse-trackball">
- <para>Wie benutze ich Maus/Trackball/Touchpad auf meinem
- Laptop?</para>
- </question>
-
- <answer>
- <para>Bitte lesen Sie <link linkend="ps2mouse">die Antwort
- zur vorherigen Frage</link> und sehen Sie sich <link
- linkend="pao">diese Anmerkung</link> auf der
- Mobile-Computing-Seite an.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tape-support">
- <para>Welche Arten von Bandlaufwerken werden
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>FreeBSD unterst&uuml;tzt SCSI-, QIC-36- (mit
- QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke
- (diskettenbasiert). Hierzu geh&ouml;ren auch 8-mm (aka
- Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind
- bekanntlich sehr langsam.</para>
-
- <para>Einige der fr&uuml;hen 8-mm-Laufwerke sind nicht
- besonders kompatibel zu SCSI-2 und k&ouml;nnten unter
- FreeBSD nicht einwandfrei funktionieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tape-changer-support">
- <para>Unterst&uuml;tzt FreeBSD Bandwechsler?</para>
- </question>
-
- <answer>
- <para>FreeBSD 2.2 untest&uuml;tzt SCSI-Wechsler mit dem
- Ger&auml;t <devicename>ch</devicename> und dem Befehl
- <command>chio</command>. Datails zum Betrieb des
- Wechslers k&ouml;nnen Sie in der Manualpage &man.chio.1;
- finden.</para>
-
- <para>Falls Sie nicht <application>AMANDA</application> oder
- ein anderes Produkt benutzen, das den Wechsler bereits
- kennt, bedenken Sie, da&szlig; die Programme nur wissen,
- wie sie ein Band von einem Punkt zu einem anderen bewegen
- m&uuml;ssen. Sie selbst m&uuml;ssen sich also merken, in
- welchem Einschub sich ein Band befindet und zu welchem
- Einschub das Band, das sich gerade im Laufwerk befindet,
- zur&uuml;ck mu&szlig;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sound-card-support">
- <para>Welche Soundkarten werden von FreeBSD
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>FreeBSD unterst&uuml;tzt die Soundkarten SoundBlaster,
- SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16,
- AdLib und Gravis UltraSound. MPU-401 und kompatible
- MIDI-Karten werden begrenzt unterst&uuml;tzt. Ebenso
- werden Karten, die der Microsoft Sound
- System-Spezifikation entsprechen, durch den pcm-Treiber
- unterst&uuml;tzt.</para>
-
- <para>
- <note>
- <para>Das gilt nur f&uuml;r Sound! Dieser Treiber
- unterst&uuml;tzt keine CDROMs, SCSI oder Joysticks auf
- diesen Karten, au&szlig;er der SoundBlaster. Die
- SoundBlaster-SCSI-Schnittstelle und einige
- Nicht-SCSI-CDROMs werden unterst&uuml;tzt, Sie
- k&ouml;nnen von diesen Ger&auml;ten aber nicht
- booten.</para>
- </note>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="es1370-silent-pcm">
- <para>Abhilfen f&uuml;r fehlenden Sound von es1370 mit dem
- pcm-Treiber?</para>
- </question>
-
- <answer>
- <para>Sie k&ouml;nnen den folgenden Befehl jedesmal nach dem
- Booten ausf&uuml;hren:</para>
-
- <screen>
-&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="network-cards">
- <para>Welche Netzwerkkarten unterst&uuml;tzt
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>Sie finden im Abschnitt <ulink
- URL="../handbook/install-hw.html#INSTALL-NICS">Ethernet-Karten</ulink>
- des Handbuchs eine vollst&auml;ndige Liste.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="no-math-coprocessor">
- <para>Ich habe keinen mathematischen Co-Prozessor - ist das
- schlimm?</para>
- </question>
-
- <answer>
- <para>
- <note>
- <para>Dies betrifft nur Besitzer von 386/486SX/486SLC -
- andere Maschinen haben in ihrer CPU einen
- integriert.</para>
- </note>
- </para>
-
- <para>Im allgemeinen wird das keine Probleme verursachen,
- aber es gibt Gelegenheiten bei denen es Sie betreffen wird
- - entweder bei der Performance oder bei der Genauigkeit
- der Emulation (lesen Sie den Abschnitt <link
- linkend="emul">&uuml;ber Gleitpunkt-Emulation</link>).
- Insbesondere wird das Zeichnen von B&ouml;gen in X SEHR
- langsam sein. Es wird dringend empfohlen, da&szlig; Sie
- sich einen mathematischen Co-Prozessor kaufen - er ist
- sein Geld wert.</para>
-
- <para>
- <note>
- <para>Einige Co-Prozessoren sind besser als andere. Es
- tut uns weh, es zu sagen, aber es ist noch niemand
- daf&uuml;r entlassen worden, da&szlig; er bei Intel
- eingekauft hat. H&uuml;ten Sie sich vor Clones, es
- sei denn, Sie sind sicher, da&szlig; sie unter FreeBSD
- funktionieren.</para>
- </note>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="other-device-support">
- <para>Welche Ger&auml;te werden noch von FreeBSD
- unterst&uuml;tzt?</para>
- </question>
-
- <answer>
- <para>Im <ulink
- URL="../handbook/install.html#INSTALL-MISC">Handbuch</ulink>
- finden Sie eine Liste von anderen unterst&uuml;tzten
- Ger&auml;ten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="power-management-support">
- <para>Unterst&uuml;tzt FreeBSD Power-Management auf meinem
- Laptop?</para>
- </question>
-
- <answer>
- <para>Auf einigen Rechnern unterst&uuml;tzt FreeBSD APM.
- Suchen Sie bitte in der Kernelkonfigurationdatei
- <filename>LINT</filename> nach dem Wort
- <acronym>APM</acronym>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="micron-hang-boot">
- <para>Mein Micron-System h&auml;ngt sich beim Booten
- auf</para>
- </question>
-
- <answer>
- <para>Einige Micron Motherboards besitzen eine
- nicht-konforme PCI-BIOS-Implementierung. Sie bereitet
- Kummer, wenn FreeBSD bootet, weil PCI-Ger&auml;te nicht an
- der angegebenen Adresse konfiguriert werden.</para>
-
- <para>Deaktivieren Sie <quote>Plug and Play Operating
- System</quote> im BIOS, um dieses Problem zu beheben.
- Weitere Informationen k&ouml;nnen unter <ulink
- URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink>
- gefunden werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="newer-adaptec-support">
- <para>Ich habe einen neueren Adaptec-Controller, den FreeBSD
- nicht finden kann.</para>
- </question>
-
- <answer>
- <para>Die Chips der neueren Adaptec AIC789-Serie werden
- unter dem CAM SCSI System unterst&uuml;tzt, das sein Debut
- in 3.0 gemacht hat. Patches f&uuml;r 2.2-STABLE befinden
- sich in <ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/development/cam/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/development/cam/</ulink>.
- Eine Bootdiskette mit CAM-Erweiterung ist unter <ulink
- URL="http://people.FreeBSD.org/~abial/cam-boot/">http://people.FreeBSD.org/~abial/cam-boot/</ulink>
- erh&auml;ltlich. Lesen Sie in beiden F&auml;llen die
- Datei README, bevor Sie beginnen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="internal-plugnplay-modem">
- <para>Ich habe ein internes Plug &amp; Play-Modem, das
- FreeBSD nicht finden kann.</para>
- </question>
-
- <answer>
- <para>Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste
- des seriellen Treibers aufnehmen m&uuml;ssen. Erstellen
- Sie einen neuen Kernel mit dem Eintrag <literal>controller
- pnp0</literal> in der Konfigurationsdatei und rebooten Sie
- Ihr System, um die Plug &amp; Play-Unterst&uuml;tzung zu
- aktivieren. Der Kernel wird nun alle PnP-IDs der
- gefundenen Ger&auml;te ausgeben. In der Datei
- <filename>/sys/i386/isa/sio.c</filename> finden Sie ab
- Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des
- Modems eintragen m&uuml;ssen. Suchen Sie die Zeichenfolge
- <literal>SUP1310</literal> in der Struktur "siopnp_ids[]",
- um die Tabelle zu finden. Erstellen Sie den Kernel
- nochmals, installieren Sie ihn, rebooten Sie, und Ihr
- Modem sollte erkannt werden.</para>
-
- <para>M&ouml;glicherweise m&uuml;ssen Sie in der
- boot-time-Konfiguration die PnP-Ger&auml;te manuell mit
- einem <literal>pnp</literal>-Befehl &auml;hnlich</para>
-
- <programlisting>
-pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
- </programlisting>
-
- <para>konfigurieren, damit das Modem erkannt wird.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="serial-console-prompt">
- <para>Wie kann ich den boot:-Prompt auf einer seriellen
- Konsole erscheinen lassen?</para>
- </question>
-
- <answer>
- <orderedlist>
- <listitem>
- <para>Erstellen Sie einen Kernel mit <literal>options
- COMCONSOLE</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Erstellen Sie /boot.config mit <option>-P</option>
- als einzigem Text in der Datei.</para>
- </listitem>
-
- <listitem>
- <para>Ziehen Sie das Tastaturkabel aus dem
- Rechner.</para>
- </listitem>
- </orderedlist>
-
- <para>Lesen Sie
- <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename>
- zur Information.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="micron-3comnic-failure">
- <para>Warum arbeitet meine 3Com PCI-Netzwerkkarte in meinem
- Micron-Computer nicht?</para>
- </question>
-
- <answer>
- <para>Einige Micron Motherboards besitzen eine
- nicht-konforme PCI-BIOS-Implementierung, die die
- PCI-Ger&auml;te nicht an den angegebenen Adressen
- konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD
- bootet.</para>
-
- <para>Deaktivieren Sie die Option <quote>Plug and Play
- Operating System</quote> im BIOS, um das Problem zu
- umgehen.</para>
-
- <para>Weitere Informationen zu diesem Problem gibt es unter
- dem URL: <ulink
- URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="smp-support">
- <para>Unterst&uuml;tzt FreeBSD Symmetric Multiproccessing
- (SMP)?</para>
- </question>
-
- <answer>
- <para>SMP wird erst ab Version 3.0 unterst&uuml;tzt. SMP
- ist im Standardkernel (<emphasis>GENERIC</emphasis>) nicht
- aktiviert, wenn Sie SMP verwenden wollen, m&uuml;ssen Sie
- einen angepa&szlig;ten Kernel erstellen. Die dazu
- notwendigen Optionen k&ouml;nnen Sie der Datei
- <filename>/sys/i386/conf/LINT</filename>
- entnehmen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="asusk7v-boot-failure">
- <para>Wenn ich ein System mit einem ASUS K7V Mainboard von
- der Bootdiskette starte, h&auml;ngt sich das System auf.
- Wie kann ich dieses Problem l&ouml;sen?</para>
- </question>
-
- <answer>
- <para>Schalten Sie im BIOS die Option &quot;boot virus
- protection&quot; aus.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="troubleshoot">
- <title>Fehlerbehebung</title>
-
- <qandaset>
- <qandaentry>
- <question id="awre">
- <para>Ich habe fehlerhafte Bl&ouml;cke auf meiner
- Festplatte!</para>
- </question>
-
- <answer>
- <para>SCSI-Laufwerke sollten in der Lage sein, diese
- automatisch zu verlagern. Bei einigen Laufwerken ist
- diese Eigenschaft jedoch aus unerfindlichen Gr&uuml;nden
- bei der Auslieferung ausgeschaltet...</para>
-
- <para>Um sie einzuschalten, m&uuml;ssen Sie den Page-Mode
- des ersten Ger&auml;tes editieren. Unter FreeBSD
- k&ouml;nnen Sie das (als <username>root</username>) mit
- folgendem Befehl tun</para>
-
- <screen>
-&prompt.root; <userinput>scsi -f /dev/rsd0c -m 1 -e -P 3</userinput>
- </screen>
-
- <para>und die Werte f&uuml;r AWRE und ARRE von 0 auf 1
- &auml;ndern:-</para>
-
- <programlisting>
-AWRE (Auto Write Reallocation Enbld): 1
-ARRE (Auto Read Reallocation Enbld): 1
- </programlisting>
-
- <para>Die folgenden Abschnitte wurden von <ulink
- URL="mailto:tedm@toybox.placo.com">Ted
- Mittelstaedt</ulink> eingesendet:</para>
-
- <para>Bei IDE-Laufwerken sind fehlerhafte Bl&ouml;cke
- normalerweise ein Zeichen f&uuml;r potentielle Probleme.
- Bei allen modernen IDE-Laufwerken ist eine interne
- Verlagerung von fehlerhaften Bl&ouml;cken eingeschaltet.
- Heutzutage bieten alle IDE-Festplattenhersteller eine
- umfassende Garantie und tauschen Laufwerke mit
- fehlerhaften Bl&ouml;cken um.</para>
-
- <para>Falls Sie ein IDE-Laufwerk mit fehlerhaften
- Bl&ouml;cken trotzdem weiterbenutzen m&ouml;chten,
- k&ouml;nnen Sie versuchen, sich vom Hersteller ein
- IDE-Diagnoseprogramm herunterzuladen und dies &uuml;ber
- das Laufwerk laufen zu lassen. Manchmal k&ouml;nnen diese
- Programme so eingestellt werden, da&szlig; sie die
- Elektronik des Laufwerks dazu veranlassen, das Laufwerk
- nochmals nach fehlerhaften Bl&ouml;cken zu durchsuchen und
- diese auszuschlie&szlig;en.</para>
-
- <para>Auf ESDI-, RLL- und MFM-Laufwerken sind fehlerhafte
- Bl&ouml;cke nichts ungew&ouml;hnliches und im allgemeinen
- kein Zeichen f&uuml;r Probleme. Auf einem PC
- &uuml;bernehmen der Festplatten-Controller und das BIOS
- die Aufgabe, fehlerhafte Sektoren auszuschlie&szlig;en,
- was bei Betriebssystemen wie DOS, die das BIOS benutzen,
- um auf die Platte zuzugreifen, auch gut funktioniert. Die
- Festplattentreiber von FreeBSD benutzen allerdings nicht
- das BIOS, weshalb ein Mechanismus bad144 existiert, der
- diese Funktionalit&auml;t ersetzt. bad144 arbeitet nur
- mit dem wd-Treiber (und wird damit von FreeBSD 4.x nicht
- unterst&uuml;tzt) und kann NICHT f&uuml;r SCSI benutzt
- werden. bad144 arbeitet, indem es alle gefundenen,
- fehlerhaften Sektoren in eine spezielle Datei
- schreibt.</para>
-
- <para>Eine Einschr&auml;nkung von bad144 ist, da&szlig; die
- Datei mit den fehlerhaften Sektoren auf die letzte Spur
- der Platte plaziert wird. Da diese Datei nun
- m&ouml;glicherweise eine Liste von fehlerhaften Sektoren
- enthalten k&ouml;nnte, die am Anfang der Platte auftreten,
- wo sich m&ouml;glicherweise die /kernel-Datei befindet,
- mu&szlig; sie vom Bootstrap-Programm, das BIOS-Routinen
- benutzt, um den Kernel zu lesen, erreichbar sein. Das
- bedeutet, da&szlig; Platten, auf denen bad144 benutzt
- wird, 1024 Zylinder, 16 K&ouml;pfe und 63 Sektoren nicht
- &uuml;berschreiten d&uuml;rfen. Platten, die von bad144
- verwaltet werden, sind also effektiv auf 500MB
- begrenzt.</para>
-
- <para>Setzen Sie <quote>Bad Block Scanning</quote>
- w&auml;hrend der Installation im fdisk-Menue einfach auf
- ON, um bad144 zu verwenden. Dies funktioniert bis zu
- FreeBSD 2.2.7. Die Platte darf nicht mehr als 1024
- Zylinder besitzen. Generell wird empfohlen, da&szlig; die
- Festplatte vorher mindestens vier Stunden in Betrieb war,
- um ihr die M&ouml;glichkeit zur thermischen Ausdehnung und
- Spurversetzung zu geben.</para>
-
- <para>Falls eine Platte mehr als 1024 Zylinder besitzt (wie
- z.B. gro&szlig;e ESDI-Laufwerke), benutzt der Controller
- einen speziellen &Uuml;bersetzungsmodus, um den Betrieb
- unter DOS zu erm&ouml;glichen. Der wd-Treiber kennt diese
- &Uuml;bersetzungsmodi, WENN Sie die
- <quote>translated</quote>-Geometrie mit dem <quote>set
- geometry</quote>-Befehl in fdisk eingeben. Sie
- d&uuml;rfen NICHT den "dangerously dedicated"-Modus zur
- Erstellung der FreeBSD-Partition verwenden, weil dieser
- die Geometrie ignoriert und obwohl fdisk Ihre
- &uuml;berschriebene Geometrie benutzen wird, ist die wahre
- Gr&ouml;&szlig;e der Platte noch bekannt und es wird
- versucht, eine zu gro&szlig;e FreeBSD-Partition zu
- erstellen. Wenn die Plattengeometrie in die
- &uuml;bersetzte Geometrie ge&auml;ndert worden ist, dann
- MU&szlig; die Partition manuell durch Angabe der
- Blockanzahl erstellt werden.</para>
-
- <para>Sie k&ouml;nnen mit dem ESDI-Controller auch
- kurzerhand eine gro&szlig;e ESDI-Platte erstellen, diese
- dann mit DOS booten und als DOS-Partition formatieren.
- Anschlie&szlig;end booten Sie mit dem
- FreeBSD-Installationsprogramm und im fdisk-Menue notieren
- Sie sich die Blockgr&ouml;&szlig;e und die Anzahl
- Bl&ouml;cke der DOS-Partition. Dann &auml;ndern Sie die
- Geometrie in die gleiche, wie die von DOS verwendete,
- l&ouml;schen die DOS-Partition und erstellen eine
- <quote>kooperative</quote> FreeBSD-Partition mit der
- gleichen Blockgr&ouml;&szlig;e, die Sie zuvor notiert
- haben. Machen Sie die Partition nun bootf&auml;hig und
- schalten Sie Bad Block Scanning ein. W&auml;hrend der
- tats&auml;chen Installation wird bad144 gestartet, bevor
- irgendwelche Dateisysteme erstellt werden (Sie k&ouml;nnen
- das mit Alt-F2 beobachten). Falls irgendwelche Probleme
- bei der Erstellung der Datei mit den fehlerhaften Sektoren
- auftreten sollten, haben Sie eine zu gro&szlig;e
- Plattengeometrie eingestellt - rebooten Sie Ihr System und
- beginnen Sie von vorne (die Neupartitionierung und
- Formatierung unter DOS eingeschlossen).</para>
-
- <para>Falls die Verlagerung fehlerhafter Bl&ouml;cke
- aktiviert ist und Sie trotzdem fehlerhafte Bl&ouml;cke
- bemerken, sollten Sie einen Austausch des Laufwerkes in
- Erw&auml;gung ziehen, da die fehlerhaften Bl&ouml;cke mit
- der Zeit zunehmen werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bustek742a-eisa-scsi">
- <para>FreeBSD erkennt meinen SCSI-Controller vom Typ Bustek
- 742a EISA nicht!</para>
- </question>
-
- <answer>
- <para>Diese Information ist speziell f&uuml;r die 742a,
- k&ouml;nnte aber auch andere Buslogic-Karten
- einschlie&szlig;en (Bustek = Buslogic)</para>
-
- <para>Es gibt zwei grundverschiedene
- <quote>Versionen</quote> der 742a-Karte. Das sind die
- Hardware-Revisionen A-G und Revisionen von H
- aufw&auml;rts. Der Revisionsbuchstabe befindet sich
- hinter der Fabriknummer am Rand der Karte. Auf der 742a
- befinden sich zwei Chips. Einer ist der BIOS-Chip, der
- andere der Firmware-Chip. FreeBSD achtet nicht darauf,
- welche BIOS-Version Sie haben, aber es achtet auf die
- Version des Firmware-Chips. Buslogic schickt Ihnen
- Upgrade-ROMS, wenn Sie sich an den technischen Support
- wenden. Die BIOS- und Firmware-Chips m&uuml;ssen als
- passende Paare ausgeliefert werden. F&uuml;r Ihre
- Hardware-Revision ben&ouml;tigen Sie das aktuellste
- Firmware-ROM auf Ihrer Adapter-Karte.</para>
-
- <para>Karten der Revision A-G akzeptieren
- BIOS/Firmware-Paare bis zu 2.41/2.21. Die Karten der
- Revisionen H und aufw&auml;rts akzeptieren die aktuellsten
- BIOS/Firmware-Paare 4.70/3.37. Der Unterschied der
- Firmware-Versionen ist, da&szlig; die 3.37-Firmware
- <quote>round robin</quote> unterst&uuml;tzt.</para>
-
- <para>Auf den Buslogic-Karten befindet sich auch eine
- Seriennummer. Falls Sie eine Karte mit einer alten
- Hardwarerevisionsnummer besitzen, k&ouml;nnen Sie sich an
- die RMA-Abteilung von Buslogic wenden, Ihre Seriennummer
- angeben und versuchen, die Karte gegen eine neuere
- Hardwarerevision auszutauschen. Falls Ihre Karte nicht zu
- alt ist, wird dem Tausch zugestimmt werden.</para>
-
- <para>Von FreeBSD 2.1 werden nur Firmwarerevisionen ab 2.21
- aufw&auml;rts unterst&uuml;tzt. Wenn Sie eine &auml;tere
- Firmwarerevision besitzen, wird Ihre Karte nicht als
- Buslogic-Karte erkannt. Sie k&ouml;nnte jedoch als
- Adaptec 1540 erkannt werden. Die fr&uuml;e Firmware von
- Buslogic enth&auml;lt eine AHA1540
- <quote>Emulation</quote>, wovon bei EISA-Karten jedoch
- abzuraten ist.</para>
-
- <para>Wenn sie eine Karte mit einer alten
- Hardwarerevisionsnummer besitzen und die 2.21-Firmware
- f&uuml;r sie bekommen, m&uuml;ssen Sie den Jumper W1 in
- die Position B-C setzen; die Voreinstellung ist
- A-B.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="hpnetserver-scsi-failure">
- <para>Der SCSI-Controller meines HP Netserver wird nicht
- erkannt!</para>
- </question>
-
- <answer>
- <para>Hierbei handelt es sich um ein bekanntes Problem. Der
- auf dem Board befindliche EISA-SCSI-Controller auf dem HP
- Netserver belegt die EISA-Slotnummer 11, wodurch sich alle
- <quote>wirklichen</quote> EISA-Slots vor ihm befinden.
- Leider kollidiert der Adre&szlig;raum von EISA-Slots
- &gt;10 mit dem Adre&szlig;raum, der PCI zugeordnet ist und
- die Autokonfiguration von FreeBSD kann mit dieser
- Situation derzeit nicht besonders gut umgehen.</para>
-
- <para>Die einfachste Alternative ist, diese Kollision
- einfach zu leugnen. Setzen Sie dazu die Kerneloption
- <literal>EISA_SLOTS</literal> auf den Wert 12.
- Konfigurieren und kompilieren Sie den Kernel, wie im
- <ulink URL="../handbook/kernelconfig.html">Handbucheintrag
- zur Kernelkonfiguration</ulink> beschrieben.</para>
-
- <para>Dies bringt Ihnen nat&uuml;rlich das klassische
- Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine
- installieren wollen. Um dieses Problem zu umgehen,
- existiert ein spezieller Hack in
- <emphasis>UserConfig</emphasis>. Benutzen Sie nicht die
- <quote>visuelle</quote> Schnittstelle, sondern die rohe
- Kommandozeilenschnittstelle. Geben Sie einfach</para>
-
- <programlisting>
-eisa 12
-quit
- </programlisting>
-
- <para>am Prompt ein und Sie k&ouml;nnen Ihr System ganz
- normal installieren. Sie sollten auf jeden Fall einen
- angepa&szlig;ten Kernel zu kompilieren und
- installieren,</para>
-
- <para>Zuk&uuml;nftige Versionen werden hoffentlich eine
- passende L&ouml;sung f&uuml;r dieses Problem
- beinhalten.</para>
-
- <para>
- <note>
- <para>Sie k&ouml;nnen keine <literal>dangerously
- dedicated</literal> Platte auf einem HP Netserver
- verwenden. Lesen Sie weitere Informationen finden Sie
- in <link linkend="dedicate">diesem
- Hinweis</link>.</para>
- </note>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cmd640-ide">
- <para>Was ist mit diesem CMD640-Controller los?</para>
- </question>
-
- <answer>
- <para>Er ist fehlerhaft. Er kann Befehle auf beiden
- Kan&auml;len nicht simultan behandeln.</para>
-
- <para>Es gibt jetzt eine Abhilfe, die automatisch aktiviert
- wird, wenn Ihr System diesen Chip benutzt. Details finden
- Sie in der Manualpage zum Plattentreiber (man 4
- wd).</para>
-
- <para>Wenn bei Ihnen bereits FreeBSD 2.2.1 oder 2.2.2 mit
- einem CMD640-Controller l&auml;uft und Sie den zweiten
- Kanal benutzen m&ouml;chten, erstellen Sie einen neuen
- Kernel mit <literal>options "CMD640"</literal>. Dies ist
- seit 2.2.5 Voreinstellung.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ed1-timeout">
- <para>Ich sehe st&auml;ndig Meldungen wie <literal>ed1:
- timeout</literal>.</para>
- </question>
-
- <answer>
- <para>Dies wird meistens durch einen Interruptkonflikt
- verursacht (z.B., wenn zwei Karten den selben Interrupt
- benutzen). Vor 2.0.5R war FreeBSD diesbez&uuml;glich
- tolerant und die Treiber f&uuml;r Netzwerkkarten
- funktionierten auch bei IRQ-Konflikten. Seit 2.0.5R
- werden IRQ-Konflikte jedoch nicht l&auml;nger toleriert.
- Booten Sie mit der Option -c und &auml;ndern Sie die
- Eintr&auml;ge zu ed0/de0/... Ihrem Board
- entsprechend.</para>
-
- <para>Wenn Sie den BNC-Anschlu&szlig; Ihrer Netzwerkkarte
- benutzen, k&ouml;nnte es auch sein, da&szlig; es sich
- Ger&auml;te-Timeouts aufgrund fehlerhafter Terminierung
- handelt. Um dies zu &uuml;berpr&uuml;fen, verbinden Sie
- einen Terminator direkt mit der Netzwerkkarte (ohne Kabel)
- und beobachten Sie, ob die Fehlermeldungen
- verschwinden.</para>
-
- <para>Einige NE2000 kompatible Karten melden diesen Fehler,
- wenn keine Verbindung am UTP-Eingang existiert oder wenn
- das Kabel nicht eingesteckt ist.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-cd-superblock">
- <para>Beim Mounten einer CDROM erscheint <quote>Incorrect
- super block</quote>.</para>
- </question>
-
- <answer>
- <para>Sie m&uuml;ssen <command>mount</command> mitteilen,
- was f&uuml;r ein Ger&auml;t Sie mounten wollen.
- Standardm&auml;&szlig;ig wird <command>mount</command> den
- Typ <literal>ufs</literal> annehmen. Sie wollen ein
- CDROM-Dateisystem mounten und das tun Sie, indem Sie die
- Option <option>-t cd9660</option> f&uuml;r
- <command>mount</command> benutzen. Nat&uuml;rlich unter
- der Annahme, da&szlig; die CDROM ein ISO 9660-Dateisystem
- enth&auml;lt, wie bei den meisten CDROMs. Ab 1.1R
- versteht FreeBSD auch automatisch die Rock Ridge
- Erweiterungen (lange Dateinamen).</para>
-
- <para>Wenn sie zum Beispiel das CDROM-Ger&auml;t
- <filename>/dev/cd0c</filename> unter dem Dateinamen
- <filename>/mnt</filename> mounten wollen,
- m&uuml;&szlig;ten Sie:</para>
-
- <screen>
-&prompt.root; <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput>
- </screen>
-
- <para>eingeben.</para>
-
- <para>Beachten Sie, da&szlig; Ihr Ger&auml;tename
- (<filename>/dev/cd0c</filename> in diesem Beispiel)
- abh&auml;ngig von der CDROM-Schnittstelle unterschiedlich
- sein k&ouml;nnte. Die Option <option>-t cd9660</option>
- bewirkt lediglich, da&szlig; der Befehl
- <command>mount_cd9660</command> ausgef&uuml;hrt wird. Das
- obige Beispiel k&ouml;nnte also k&uuml;rzer
- lauten:</para>
-
- <screen>
-&prompt.root; <userinput>mount_cd9660 /dev/cd0c /mnt</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cdrom-not-configured">
- <para>Wenn ich eine CDROM mounte, erscheint <literal>Device
- not configured</literal>.</para>
- </question>
-
- <answer>
- <para>Das bedeutet im allgemeinen, da&szlig; sich keine
- CDROM im Laufwerk befindet, oder, da&szlig; das Laufwerk
- auf dem Bus nicht sichtbar ist. Legen sie etwas ins
- Laufwerk ein und/oder &uuml;berpr&uuml;fen Sie den
- Master/Slave-Status des Laufwerks, falls es sich um ein
- IDE (ATAPI) Laufwerk handelt. Bei einem CDROM-Laufwerk
- kann es einige Sekunden dauern, bis ein eingelegter
- Datentr&auml;ger erkannt wird. Haben Sie also
- Geduld.</para>
-
- <para>Manchmal kann ein SCSI-CDROM verfehlt werden, weil es
- nicht gen&uuml;gend Zeit hatte, auf einen Bus-Reset zu
- antworten. Falls Sie ein SCSI-CDROM besitzen, versuchen
- Sie, folgendes in Ihre Kernelkonfigurationsdatei
- einzuf&uuml;gen, und neu zu kompilieren:</para>
-
- <programlisting>
-options "SCSI_DELAY=15"
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cdrom-unicode-filenames">
- <para>Wenn ich eine CD-ROM mounte, werden alle Sonderzeichen
- in den Dateinamen durch <quote>?</quote> ersetzt.</para>
- </question>
-
- <answer>
- <para>Wahrscheinlich werden auf der CDROM die
- <quote>Joilet</quote> Erweiterungen f&uuml;r die
- Speicherung von Datei- und Verzeichnisnamen benutzt.
- Diese Erweiterung verlangt, da&szlig; alle Dateinamen im
- Unicode-Format (mit zwei Bytes pro Zeichen) abgespeichert
- werden. Eine Unicode-Erweiterung f&uuml;r den
- FreeBSD-Kernel ist zwar in Arbeit; da diese Erweiterung
- aber noch nicht fertig ist, hat der CD9660-Treiber keine
- M&ouml;glichkeit, die Zeichen korrekt zu
- dekodieren.</para>
-
- <para>F&uuml;r die &Uuml;bergangszeit gibt es seit FreeBSD
- 4.3 eine Schnittstelle im CD9660-Treiber, &uuml;ber die
- zur Laufzeit eine passende &Uuml;bersetzungstabelle
- geladen werden kann. Der Port
- <filename>sysutils/cd9660_unicode</filename> enth&auml;lt
- passende &Uuml;bersetzungstabelle f&uuml;r g&auml;ngige
- Anwendungen.</para>
-
- <para>[Anmerkung des &Uuml;bersetzers: Es geht hier nicht um
- die deutschen Sonderzeichen, da diese schon im normalen
- ISO_8859-1 enthalten sind. Die Probleme treten auf, wenn
- man z.B. russische CDs (ISO_8859-5) verwendet.]</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="printer-slow">
- <para>Mein Drucker ist unglaublich langsam. Was kann ich
- tun?</para>
- </question>
-
- <answer>
- <para>Falls es sich um einen parallelen Drucker handelt und
- das einzige Problem ist, da&szlig; er schrecklich langsam
- ist, probieren Sie, den Druckerausgang in den
- <quote>gepollten</quote> Modus zu setzen:</para>
-
- <screen>
-&prompt.root; <userinput>lptcontrol -p</userinput>
- </screen>
-
- <para>Von einigen neueren HP-Druckern wird behauptet,
- da&szlig; sie im Interruptmodus nicht korrekt arbeiten,
- anscheinend wegen eines (noch nicht genau verstandenen)
- Timing-Problems.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="signal11">
- <para>Meine Programme brechen gelegentlich mit
- <literal>Signal 11</literal>-Fehlern ab.</para>
- </question>
-
- <answer>
- <para>Das Signal 11 wird generiert, wenn ein Proze&szlig;
- versucht, auf Speicher zuzugreifen, obwohl er vom
- Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das
- scheinbar zuf&auml;llig immer wieder passiert, sollten Sie
- der Sache einmal auf der Grund gehen.</para>
-
- <para>Das Problem hat in der Regel eine der folgenden
- Ursachen:</para>
-
- <orderedlist>
- <listitem>
- <para>Wenn das Problem nur in einer bestimmten
- Applikation auftritt, die Sie selbst entwickeln, dann
- ist es wahrscheinlich ein Fehler in Ihren
- Sourcen.</para>
- </listitem>
-
- <listitem>
- <para>Wenn das Problem in einem Teil von FreeBSD
- auftritt, k&ouml;nnte es nat&uuml;rlich auch ein
- Fehler sein; aber in der &uuml;berwiegenden Zahl der
- F&auml;lle werden diese Probleme gefunden und behoben,
- bevor die typischen Leser der FAQ (wir) diese Teile
- der Sourcen benutzen k&ouml;nnen (daf&uuml;r gibt es
- schlie&szlig;lich -current).</para>
- </listitem>
- </orderedlist>
-
- <para>Wenn der Fehler auftritt, wenn Sie ein Programm
- compilieren aber dabei immer wieder an anderer Stelle
- auftritt, dann ist das ein ganz eindeutiger Hinweis,
- da&szlig; das Problem *nicht* bei FreeBSD liegt.</para>
-
- <para>Nehmen wir zum Beispiel an, da&szlig; Sie "make
- buildworld" ausf&uuml;hren und die Compilierung von ls.c
- in ls.o abbricht. Wenn Sie nochmal "make buildworld"
- durchf&uuml;hren und die Compilierung an der gleichen
- Stelle abbricht, handelt es sich um einen Fehler in den
- Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie
- es noch einmal. Wenn der Fehler jedoch an einer anderen
- Stelle auftritt, liegt das Problem mit an Sicherheit
- grenzender Wahrscheinlichkeit bei Ihrer Hardware.</para>
-
- <para>Was Sie tun sollten:</para>
-
- <para>Im ersten Fall k&ouml;nnen Sie einen Debugger wie z.B.
- gdb benutzen, um die Stelle im Programm zu finden, an der
- auf eine falsche Adresse zugegriffen wird und danach den
- Fehler beheben.</para>
-
- <para>Im zweiten Fall m&uuml;ssen Sie sicherstellen,
- da&szlig; das Problem nicht von Ihrer Hardware verursacht
- wird.</para>
-
- <para>Typische Ursachen daf&uuml;r sind unter
- anderem:</para>
-
- <orderedlist>
- <listitem>
- <para>Es k&ouml;nnte sein, da&szlig; Ihren Festplatten
- zu warm wird: &Uuml;berpr&uuml;fen Sie, ob die
- L&uuml;fter in Ihrem Geh&auml;use noch funktionieren,
- damit Ihre Festplatten (und andere Hardware) nicht
- hei&szlig;laufen.</para>
- </listitem>
-
- <listitem>
- <para>Der Prozessor &uuml;berhitzt, weil Sie Ihn
- &uuml;bertaktet haben oder der CPU-K&uuml;hler
- ausgefallen ist. Sie m&uuml;ssen sicherstellen,
- da&szlig; Sie Ihre Hardware unter den Bedingungen
- betreiben, f&uuml;r die sie spezifiziert ist,
- zumindestens w&auml;hrend Sie versuchen, das Problem
- zu l&ouml;sen. Mit anderen Worten: Betreiben Sie
- Ihre CPU mit der normalen Taktfrequenz.</para>
-
- <para>Wenn Sie &uuml;bertakten, sollten Sie daran
- denken, da&szlig; ein langsames System deutlich
- billiger ist als ein defektes System. Die gro&szlig;e
- Masse hat nicht sehr h&auml;ufig Mitgef&uuml;hl mit
- Problemen bei &uuml;bertakteten System, auch wenn Sie
- es f&uuml;r ungef&auml;hrlich halten.</para>
- </listitem>
-
- <listitem>
- <para>Unzuverl&auml;ssiger Speicher: Wenn Sie mehr als
- ein SIMM/DIMM installiert haben, sollten Sie sie alle
- ausbauen und die Maschine testweise mit jedem SIMM
- oder DIMM einzeln betreiben. So k&ouml;nnen Sie
- feststellen, ob die Ursache ein einzelnes SIMM/DIMM
- oder auch eine Kombination von Modulen ist.</para>
- </listitem>
-
- <listitem>
- <para>Zu optimistische Einstellung des Mainboards: In
- Ihrem BIOS und mit den Jumpern auf dem Mainboard
- k&ouml;nnen Sie diverse Timings &auml;ndern. In den
- meisten F&auml;llen reichen die Defaults aus, aber
- manchmal kann es durch zu wenig wait states, die
- Einstellung "RAM Speed: Turbo" oder &auml;hnliches zu
- merkw&uuml;rdigen Problemen kommen. Ein
- m&ouml;glicher Ansatz ist, die BIOS defaults zu laden,
- allerdings k&ouml;nnte es sinnvoll sein, die aktuellen
- Einstellungen vorher zu notieren.</para>
- </listitem>
-
- <listitem>
- <para>Schlechte oder fehlerhafte Stromversorgung des
- Mainboards: Wenn Sie unbenutzte Steckkarten, Platten
- oder CD-ROMs in Ihrem System haben, sollten Sie sie
- testweise ausbauen oder die Stromversorgung abziehen.
- Dadurch k&ouml;nnen Sie pr&uuml;fen, ob Ihr Netzteil
- eventuell mit einer geringeren Last besser
- zurechtkommt. Sie k&ouml;nnen auch testweise ein
- anderes, am besten ein leistungsf&auml;higeres,
- Netzteil ausprobieren. Wenn Sie zur Zeit ein
- 250W-Netzteil benutzen, sollten Sie testweise ein
- 300W-Netzteil einbauen.</para>
- </listitem>
- </orderedlist>
-
- <para>Die sollten ebenfalls die SIG11 FAQ (unten
- aufgef&uuml;hrt) lesen, da sie gute Erkl&auml;rungen
- f&uuml;r alle diese Probleme enth&auml;lt (allerdings aus
- Linux-Sicht). Sie erkl&auml;rt ebenfalls, warum sowohl
- Programme als auch Ger&auml;te zur Speicherpr&uuml;fung
- fehlerhaften Speicher teilweise nicht erkennen.</para>
-
- <para>Wenn alle diese Schritte nicht helfen, ist es
- m&ouml;glich, da&szlig; Sie einen Fehler in FreeBSD
- gefunden haben. Folgen Sie einfach den Anweisungen
- f&uuml;r die Erstellung eines Problem Reports.</para>
-
- <para>Es existiert eine ausf&uuml;hrliche FAQ hierzu unter
- <ulink URL="http://www.bitwizard.nl/sig11/">der
- SIG11-Problem-FAQ</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="screen-loses-sync">
- <para>Beim Booten wird der Bildschirm schwarz und reagiert
- nicht mehr!</para>
- </question>
-
- <answer>
- <para>Dies ist ein bekanntes Problem mit der ATI Mach 64
- Videokarte. Das Problem besteht darin, da&szlig; diese
- Karte die Adresse <literal>2e8</literal> benutzt und die
- vierte serielle Schnittstelle ebenfalls. Aufgrund eines
- Fehlers (einer Besonderheit?) im Treiber
- <devicename>sio</devicename> wird diese Schnittstelle
- angesprochen, auch wenn Sie gar keine vierte serielle
- Schnittstelle besitzen und <emphasis>sogar</emphasis>,
- wenn sie sio3 (die vierte Schnittstelle), die
- normalerweise diese Adresse verwendet,
- deaktivieren.</para>
-
- <para>Bis der Fehler behoben ist, k&ouml;nnen Sie folgende
- Abhilfe verwenden:</para>
-
- <orderedlist>
- <listitem>
- <para>Geben Sie am Bootprompt <option>-c</option> ein.
- (Dies bringt den Kernel in den
- Konfigurationsmodus).</para>
- </listitem>
-
- <listitem>
- <para>Deaktivieren Sie <devicename>sio0</devicename>,
- <devicename>sio1</devicename>,
- <devicename>sio2</devicename> und
- <devicename>sio3</devicename> (alle). Auf diese Weise
- wird der sio-Treiber nicht aktiviert und das Problem
- tritt nicht mehr auf.</para>
- </listitem>
-
- <listitem>
- <para>Geben Sie exit ein, um den Bootvorgang
- fortzusetzen.</para>
- </listitem>
- </orderedlist>
-
- <para>Falls sie in der Lage sein wollen Ihre seriellen
- Schnittstellen zu benutzen, m&uuml;ssen Sie einen neuen
- Kernel mit folgenden Modifikationen erstellen: suchen Sie
- in <filename>/usr/src/sys/i386/isa/sio.c</filename> nach
- der Zeichenkette <literal>0x2e8</literal> und l&ouml;schen
- Sie sie und das vorhergehende Komma (nicht das folgende
- Komma). Nun folgen Sie der normalen Prozedur zur
- Erstellung eines neuen Kernels.</para>
-
- <para>Auch nach Anwendung dieser Ma&szlig;nahmen k&ouml;nnte
- es sein, da&szlig; Ihr X Windows-System nicht einwandfrei
- funktioniert. Wenn dies der Fall ist, stellen Sie sicher,
- da&szlig; es sich bei der von Ihnen benutzten X
- Windows-Version mindestens um XFree86 3.3.3 oder
- h&ouml;her handelt. Diese Version und h&ouml;here
- besitzen eine integrierte Unterst&uuml;tzung f&uuml;r
- Mach64-Karten und sogar einen dedizierten X-Server
- f&uuml;r sie.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reallybigram">
- <para>Ich besitze 128 MB Hauptspeicher, aber das System
- verwendet nur 64 MB.</para>
- </question>
-
- <answer>
- <para>Aufgrund der Art und Weise, wie FreeBSD die
- Hauptspeichergr&ouml;&szlig;e vom BIOS mitgeteilt bekommt,
- kann es lediglich 16-Bit Werte in kByte-Gr&ouml;&szlig;e
- (65535 kByte = 64MB) erkennen (oder weniger... einige
- BIOSe setzen die Hauptspeichergr&ouml;&szlig; auf 16MB).
- Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen,
- das zu erkennen, was aber nicht immer
- funktioniert.</para>
-
- <para>Um dieses Problem zu umgehen, m&uuml;ssen Sie die
- untenstehende Kerneloption verwenden. Es gibt einen Weg,
- vollst&auml;ndige Hauptspeicherinformationen vom BIOS zu
- erhalten, aber in den Bootbl&ouml;cken ist nicht
- gen&uuml;gend Platz daf&uuml;r vorhanden. Wenn der
- Platzmangel in den Bootbl&ouml;cken eins Tages behoben
- ist, werden wir die erweiterten BIOS-Funktionen dazu
- nutzen, die vollst&auml;ndigen Hauptspeicherinformationen
- zu erhalten... aber zur Zeit sind wir auf die Kerneloption
- angewiesen.</para>
-
- <para><literal>options
- "MAXMEM=<replaceable>n</replaceable>"</literal></para>
-
- <para>Hierbei ist <literal>n</literal> Ihre
- Hauptspeichergr&ouml;&szlig;e in Kilobyte. Bei einer 128
- MB-Maschine m&uuml;&szlig;ten Sie
- <literal>131072</literal> benutzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="panic-kmemmap-too-small">
- <para>FreeBSD 2.0 ger&auml;t mit <literal>kmem_map too
- small!</literal> in Panik.</para>
- </question>
-
- <answer>
- <para>
- <note>
- <para>Die Nachricht kann auch <literal>mb_map too
- small!</literal> lauten.</para>
- </note>
- </para>
-
- <para>Diese Meldung zeigt an, da&szlig; der virtuelle
- Speicher f&uuml;r Netzwerkpuffer (spezieller mbuf-Cluster)
- aufgebraucht ist. Sie k&ouml;nnen die f&uuml;r mbuf
- verf&uuml;gbare Gr&ouml;&szlig;e an VM erh&ouml;hen, indem
- Sie</para>
-
- <para><literal>options
- "NMBCLUSTERS=<replaceable>n</replaceable>"</literal></para>
-
- <para>in Ihre Kernelkonfigurationsdatei einf&uuml;gen, wobei
- <replaceable>n</replaceable>, abh&auml;ngig davon,
- wieviele gleichzeitige TCP-Verbindungen Sie
- unterst&uuml;tzen m&uuml;ssen, eine Zahl aus dem Bereich
- 512-4096 ist. Ich w&uuml;rde Ihnen empfehlen, 2048 zu
- probieren - das sollte Sie von solchen Paniksituationen
- vollkommen befreien. Sie k&ouml;nnen die Anzahl der
- zugeordneten/benutzten mbuf-Cluster im System mit
- <command>netstat -m</command> beobachten. Der
- voreingestellte Wert f&uuml;r NMBCLUSTERS ist <literal>512
- + MAXUSERS * 16</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cmap-busy-panic">
- <para>Beim Rebooten mit einem neuen Kernel erscheint
- <literal>CMAP busy panic</literal>.</para>
- </question>
-
- <answer>
- <para>Die Logik, die versucht, veraltete
- <filename>/var/db/kvm_*.db</filename>-Dateien zu erkennen,
- versagt manchmal und die Benutzung einer unpassenden Datei
- kann zu Paniksituationen f&uuml;hren.</para>
-
- <para>Falls das passiert, rebooten Sie im Single-User-Modus
- und l&ouml;schen Sie die Dateien:</para>
-
- <screen>
-&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="brkadrint-illegal-host-access">
- <para>ahc0: brkadrint, Illegal Host Access at seqaddr
- 0x0</para>
- </question>
-
- <answer>
- <para>Dies ist ein Konflikt mit einem Ultrastor SCSI
- Hostadapter.</para>
-
- <para>Rufen Sie w&auml;hrend des Bootprozesses das
- Kernelkonfigurationsmenue auf und deaktivieren Sie
- <devicename>uha0</devicename>, welches das Problem
- verursacht.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mail-loopback">
- <para>Sendmail meldet <literal>mail loops back to
- myself</literal></para>
- </question>
-
- <answer>
- <para>Dies wird in der Sendmail-FAQ wie folgt
- beantwortet:-</para>
-
- <literallayout> * Ich erhalte "Local configuration error" Meldungen, wie:
-
- 553 relay.domain.net config error: mail loops back to myself
- 554 &lt;user@domain.net&gt;... Local configuration error
-
- Wie kann ich dieses Problem l&ouml;sen?
-
- Sie haben durch die Benutzung einer MX-Zeile eingestellt, da&szlig;
- Mail f&uuml;r die Dom&auml;ne (z.B. domain.net) an einen speziellen
- Host (in diesem Fall relay.domain.net) weitergeleitet wird,
- aber der Relay-Host erkennt sich selbst nicht als
- domain.net. F&uuml;gen Sie domain.net in /etc/sendmail.cw
- (falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
- in /etc/sendmail.cf ein.
- </literallayout>
-
- <para>Die aktuelle Version der <ulink
- URL="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">Sendmail-FAQ</ulink>
- wird nicht mehr mit dem Sendmail-Release verwaltet. Sie
- wird jedoch regelm&auml;&szlig;ig nach <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> und
- <ulink URL="news:news.answers">news.answers</ulink>
- gepostet. Sie k&ouml;nnen auch eine Kopie per Email
- bekommen, indem Sie eine Mail mit dem Inhalt <literal>send
- usenet/news.answers/mail/sendmail-faq</literal> an
- <email>mail-server@rtfm.mit.edu</email> schicken.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="remote-fullscreen">
- <para>Auf entfernten Maschinen laufende
- Full-Screen-Applikationen verhalten sich nicht
- richtig.</para>
- </question>
-
- <answer>
- <para>Die entfernte Maschine scheint den Terminaltyp auf
- etwas anderes als den Typ <literal>cons25</literal>, der
- von FreeBSD verlangt wird, zu setzen.</para>
-
- <para>Es gibt mehrere m&ouml;gliche Abhilfen f&uuml;r dieses
- Problem:</para>
-
- <itemizedlist>
- <listitem>
- <para>Setzen Sie die Shell-Variable TERM nach dem
- Einloggen auf der entfernten Maschine auf
- <literal>ansi</literal> oder <literal>sco</literal>,
- sofern die entfernte Maschine diese Terminaltypen
- kennt.</para>
- </listitem>
-
- <listitem>
- <para>Benutzen Sie einen VT100-Emulator wie
- <application>screen</application> auf der
- FreeBSD-Console. <application>screen</application>
- bietet Ihnen die M&ouml;glichkeit, mehrere
- gleichzeitige Sitzungen von einem Bildschirm aus
- laufen zu lassen. Es ist ein sehr nettes Programm.
- Jedes <application>screen</application>-Fenster
- verh&auml;lt sich, wie ein VT100-Terminal, weshalb die
- Variable TERM am entfernten Ende auf
- <literal>vt100</literal> gesetzt werden
- sollte.</para>
- </listitem>
-
- <listitem>
- <para>Installieren Sie den Eintrag
- <literal>cons25</literal> in der Bildschirmdatenbank
- der entfernten Maschine. Wie das zu geschehen hat,
- h&auml;ngt vom Betriebssystem der entfernten Maschine
- ab. Das Systemadministrationshandbuch f&uuml;r das
- entfernte System sollte Ihnen hierbei helfen
- k&ouml;nnen.</para>
- </listitem>
-
- <listitem>
- <para>Starten Sie einen X-Server auf der FreeBSD-Seite
- und benutzen Sie einen X-basierten Terminalemulator
- wie <command>xterm</command> oder
- <command>rxvt</command>, um sich auf der entfernten
- Maschine einzuloggen. Die Variable TERM auf dem
- entfernten Host sollte auf <literal>xterm</literal>
- oder <literal>vt100</literal> gesetzt werden.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="calcru-negative">
- <para>Mein Rechner meldet <literal>calcru: negative
- time...</literal></para>
- </question>
-
- <answer>
- <para>Dies kann durch verschiedene Hardware- und/oder
- Softwareprobleme in Verbindung mit Interrupts verursacht
- werden. Das kann aufgrund von Fehlern sein, aber es kann
- auch durch die Eigenarten bestimmter Ger&auml;te
- passieren. TCP/IP &uuml;ber die parallele Schnittstelle
- mit einer gro&szlig;en MTU laufen zu lassen, ist ein
- sicherer Weg, um dieses Problem zu provozieren.
- Grafikbeschleuniger k&ouml;nnen es auch verursachen. In
- diesem Fall sollten Sie zun&auml;chst die
- Interrupteinstellungen der Karte
- &uuml;berpr&uuml;fen.</para>
-
- <para>Ein Seiteneffekt dieses Problems sind Prozesse, die
- mit der Meldung <quote>SIGXCPU exceeded cpu time
- limit</quote> abbrechen.</para>
-
- <para>F&uuml;r FreeBSD 3.0 und sp&auml;tere ab dem 29. Nov.
- 1998: Falls das Problem nicht anders gel&ouml;st werden
- kann, besteht die L&ouml;sung darin, diese sysctl-Variable
- zu setzen:</para>
-
- <screen>
-&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput>
- </screen>
-
- <para>Das bedeutet zwar Performanceeinbu&szlig;en, aber in
- Anbetracht der Ursache f&uuml;r dieses Problem werden Sie
- das wahrscheinlich nicht bemerken. Fall das Problem
- weiter bestehen bleibt, lassen sie die sysctl-Variable auf
- 1 stehen und setzen Sie die Option
- <literal>NTIMECOUNTER</literal> im Kernel auf immer
- h&ouml;here Werte. Wenn Sie irgendwann
- <literal>NTIMECOUNTER=20</literal> erreicht haben sollten,
- ist das Problem nicht gel&ouml;st. Die Interrupts auf
- Ihrer Maschine sind f&uuml;r eine verl&auml;&szlig;liche
- Zeiterhaltung nicht zu gebrauchen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pcm0-not-found">
- <para>Ich erhalte die Meldung <literal>pcm0 not
- found</literal> oder meine Soundkarte wird als
- <literal>pcm1</literal> eingebunden, obwohl in meiner
- Kernel-Konfiguration <literal>device pcm0</literal>
- steht.</para>
- </question>
-
- <answer>
- <para>Dieser Effekt tritt auf, wenn Sie FreeBSD 3.x und eine
- PCI Soundkarte haben. Das Ger&auml;t
- <literal>pcm0</literal> ist f&uuml;r ISA Soundkarten
- reserviert; wenn Sie eine PCI Soundkarte haben, werden Sie
- diese Meldung erhalten und Ihre Karte wird als
- <literal>pcm1</literal> eingebunden.</para>
-
- <para>
- <note>
- <para>Sie k&ouml;nnen das Problem nicht l&ouml;sen,
- indem Sie einfach in der Konfigurationsdatei f&uuml;r
- Ihnen Kernel die Zeile <literal>device pcm1</literal>
- eintragen. Wenn Sie dies tun, wird
- <literal>pcm1</literal> f&uuml;r ISA-Karten reserviert
- und Ihre PCI-Karte wird zu <literal>pcm2</literal>.
- Zus&auml;tzlich erhalten Sie den Hinweis <literal>pcm1
- not found</literal>.</para>
- </note>
- </para>
-
- <para>Wenn Sie eine PCI Sounkarte haben, m&uuml;ssen Sie das
- Ger&auml;t <literal>snd1</literal> statt des &uuml;blichen
- <literal>snd0</literal> verwenden:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV snd1</userinput>
- </screen>
-
- <para>Dieses Problem tritt in FreeBSD 4.x nicht mehr auf, da
- gro&szlig;e Anstrengungen unternommen wurden, diese
- Version <emphasis>PnP-orientiert</emphasis> zu machen. In
- FreeBSD 4.x ist das Ger&auml;t <literal>pcm0</literal>
- nicht mehr f&uuml;r ISA-Karten reserviert.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-not-found">
- <para>Meine PnP-Karte wird nicht mehr (oder nur noch als
- <literal>unknown</literal>) erkannt, seit ich FreeBSD 4.x
- benutze.</para>
- </question>
-
- <answer>
- <para>FreeBSD 4.x ist deutlich
- <emphasis>PnP-orientierter</emphasis> und das f&uuml;hrt
- leider dazu, da&szlig; einige PnP-Ger&auml;te (wie z.B.
- Soundkarten und interne Modems) nicht mehr funktionieren,
- obwohl Sie von FreeBSD 3.x noch erkannt wurden.</para>
-
- <para>Die Gr&uuml;nde f&uuml;r dieses Verhalten werden in
- der unten zitierten Mail von Mail von Peter Wemm
- erkl&auml;rt. Diese Mail stammt von der Mailingliste
- freebsd-questions und war eine Antwort auf eine Frage
- bez&uuml;glich eines internen Modem, das nach dem Update
- auf FreeBSD 4.x nicht mehr erkannt wurde. Die Kommentare
- in <literal>[]</literal> wurden eingef&uuml;gt, um an
- einigen Stellen die Bez&uuml;ge klarstellen.</para>
-
- <blockquote>
- <para>Das PnP-Bios hat es [das Modem] vorkonfiguriert und
- es dann im Adre&szlig;raum liegenlassen, daher haben es
- die alten ISA-Erkennungsroutinen [in 3.x]
- <quote>gefunden</quote>.</para>
-
- <para>In 4.0 sind die ISA-Routinen deutlich
- PnP-orientierter. Es war m&ouml;glich [in 3.x],
- da&szlig; eine ISA-Erkennungsroutinen ein
- <quote>zugelaufenes</quote> Ger&auml;t fand;
- w&auml;hrend die PnP-Treiber zwar die ID erkannten, das
- Ger&auml;t aber wegen des Ressourcekonfliktes nicht
- nutzen konnten. Daher werden die programmierbaren
- Karten zun&auml;chst einmal abgeschaltet, um diese
- doppelte Erkennung vermeiden zu k&ouml;nnen. Das
- bedeutet allerdings auch, da&szlig; die Treiber die
- PnP-ID kennen mu&szlig;, um PnP-Hardware
- unterst&uuml;tzen zu k&ouml;nnen. Wir haben uns
- vorgenommen, den Benutzern eine einfachere
- M&ouml;glichkeit zur Manipulation dieser Informationen
- zur Verf&uuml;gung zu stellen.</para>
- </blockquote>
-
- <para>Damit Ihr Ger&auml;t wieder funktioniert, m&uuml;ssen
- Sie seine PnP-ID herausfinden und die ID in die Listen
- eintragen, die zur Erkennung von PnP-Ger&auml;ten
- genutzten werden. Zu diesem Zweck wird das Ger&auml;t mit
- &man.pnpinfo.8; analysiert. Das Beispiel zeigt die
- Ausgaben von &man.pnpinfo.8; f&uuml;r ein internes
- Modem:</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>[weitere TAG Zeilen gestrichen]</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>Sie ben&ouml;tigen die Information aus der Zeile
- <quote>Vendor ID</quote> ganz im Anfang. Die in Klammern
- ausgegebene Hexadezimale Zahl (0x3024a341 in diesem
- Beispiel) ist die PnP ID und die unmittelbar davor
- stehende Zeichenkette (PMC2430) ist eine eindeutige
- Herstellerkennung. Diese Informationen m&uuml;ssen in die
- Datei <filename>/usr/src/sys/isa/sio.c</filename>
- eingetragen werden.</para>
-
- <para>Sie sollten zun&auml;chst ein Backup von
- <filename>sio.c</filename> anlegen, falls irgendwas
- schiefgehen sollte. Sie werden auch einen Patch erzeugen
- m&uuml;ssen, um ihn zusammen mit Ihrem PR einzusenden.
- (Sie wollten doch einen PR schreiben, oder etwa nicht?)
- &Ouml;ffnen Sie nun <filename>sio.c</filename> mit einem
- Editor und suchen Sie nach der Zeile</para>
-
- <programlisting>
-static struct isa_pnp_id sio_ids[] = {
- </programlisting>
-
- <para>und bl&auml;ttern Sie dann nach unten, um die passende
- Stelle f&uuml;r Ihr Ger&auml;t zu finden. Unten finden
- Sie Beispiel f&uuml;r die Eintr&auml;ge, diese sind nach
- der Herstellerkennung sortiert. Diese sollte in dem
- Kommentar auf der rechten Seite aufgenommen werden, dazu
- kommt die Ger&auml;tebeschreibung (<emphasis>Device
- Description</emphasis>) aus der Ausgabe von
- &man.pnpinfo.8;:</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>F&uuml;gen Sie die hexadezimale Ger&auml;tekennung an
- der richtigen Stelle ein, speichern Sie die Datei ab,
- erzeugen Sie einen neuen Kernel und starten Sie Ihr System
- neu. Ihr Ger&auml;t sollte nun wie bei FreeBSD 3.x als
- <literal>sio</literal> Ger&auml;t erkannt werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nlist-failed">
- <para>Ich erhalte die Meldung <errorname>nlist failed</errorname>
- wenn ich Programme wie <command>top</command> oder
- <command>systat</command> benutze.</para>
- </question>
-
- <answer>
- <para>Das Programm sucht nach einem speziellen Symbol im
- Kernel, kann es aber aus irgendeinem Grunde nicht finden.
- Dieser Fehler wird von einem dieser Probleme
- verursacht:</para>
-
- <itemizedlist>
- <listitem>
- <para>Ihr Kernel und die sonstigen Programme (das
- <quote>userland</quote> sind nicht mehr auf dem
- gleichen Stand. Mit anderen Worten, Sie haben zwar
- einen neuen Kernel erzeugt, aber kein
- <maketarget>installworld</maketarget> (oder
- umgekehrt); darum weicht die Symboltabelle von dem
- ab, was die Anwendung erwartet. Wenn dies der Fall,
- m&uuml;ssen Sie lediglich die noch fehlenden Schritte
- des Upgrades durchf&uuml;hren. Die richtige
- Vorgehensweise kann
- <filename>/usr/src/UPDATING</filename> entnommen
- werden.</para>
- </listitem>
-
- <listitem>
- <para>Um Ihren Kernel zu laden, benutzen Sie nicht
- <command>/boot/loader</command>, sondern laden ihn
- direkt mit boot2 (siehe &man.boot.8;). Es ist zwar
- nicht immer ein Fehler,
- <command>/boot/loader</command> zu umgehen; allerdings
- ist in der Regel besser dazu geeignet, die Symbole des
- Kernels f&uuml;r normale Anwendungen verf&uuml;gbar zu
- machen.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="connection-delay">
- <para>Wieso dauert es so lange, bis eine Verbindung
- (&man.ssh.1; oder &man.telnet.1;) aufgebaut wird?</para>
- </question>
-
- <answer>
- <para>Das Symptom: Nach dem Aufbau des TCP-Verbindung
- vergeht einige Zeit, bis endlich die Abfrage des
- Pa&szlig;wortes (bzw. der Login-Prompt bei Telnet)
- erscheint.</para>
-
- <para>Das Problem: In den meisten F&auml;llen versucht der
- Server in der Zwischenzeit, die IP-Adresse des Clients in
- einen Rechnernamen zu &uuml;bersetzen. Viele Server
- (darunter die Telnet und SSH Server von FreeBSD) machen
- das, um den Hostnamen z.B. f&uuml;r sp&auml;tere
- Verwendung durch den Systemadministrator in eine
- Protokolldatei schreiben zu k&ouml;nnen.</para>
-
- <para>Die L&ouml;sung: wenn das Problem bei jedem Server
- auftritt, den Sie von Ihrem Computer (dem Client)
- ansprechen, dann wird das Problem vom Client verursacht.
- Wenn das Problem aber nur auftritt, wenn jemand Ihren
- Rechner (den Server) anspricht, dann liegt die Ursache
- beim Server.</para>
-
- <para>Wenn das Problem vom Client verursacht wird,
- m&uuml;sssen Sie die Eintr&auml;ge im DNS korrigieren,
- damit der Server Ihre IP-Adresse &uuml;bersetzen kann.
- Wenn das Problem in Ihrem lokalen Netzwerk auftritt,
- sollten Sie es als Problem des Servers behandeln und
- weiterlesen; wenn es allerdings im Internet auftritt,
- werden Sie sich wahrscheinlich an Ihrem ISP wenden
- m&uuml;ssen, damit dieser das Problem f&uuml;r Sie
- korrigiert.</para>
-
- <para>Wenn das Problem vom Server verursacht wird und Sie
- sich in einem lokalen Netzwerk befinden, dann m&uuml;ssen
- Sie Ihren Server so konfigurieren, da&szlig; er die lokal
- genutzen IP-Adressen in Rechnernamen &uuml;bersetzen kann.
- Weitere Informationen erhalten Sie in den Onlinehilfen zu
- &man.hosts.5; and &man.named.8;. Wenn dieses Problem im
- Internet auftritt, k&ouml;nnte die Ursache auch darin
- liegen, da&szlig; die Namensaufl&ouml;sung auf dem Server
- nicht funktioniert. Versuchen Sie, einen anderen
- Hostnamen wie z.B. <hostid>www.yahoo.com</hostid>
- aufzul&ouml;sen. Wenn das nicht funktioniert, liegt das
- Problem bei Ihrem System.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="file-table-full">
- <para>In dmesg sehe ich h&auml;ufig die Meldung
- <errorname>file: table is full</errorname>.</para>
- </question>
-
- <answer>
- <para>Diese Fehlermeldung besagt, da&szlig; Sie die zur
- Verf&uuml;gung stehenden File-Handles des Systems
- verbraucht haben. Die im Speicher stehende entsprechende Tabelle
- ist voll.</para>
-
- <para>Die L&ouml;sung:</para>
-
- <para>Erh&ouml;hen Sie den Wert der Kernel-Variable
- <varname>kern.maxfiles</varname>.</para>
-
- <screen>&prompt.root; <userinput>sysctl -w kern.maxfiles=n</userinput></screen>
-
- <para>W&auml;hlen Sie ein f&uuml;r Ihre Anforderungen
- passendes <varname>n</varname>. Jede ge&ouml;ffnete
- Datei, jeder Socket und jeder FIFO verbrauchen je ein
- File-Handle. Ein gro&szlig;er Fileserver kann durchaus
- mehr als zehntausend (10.000+) File-Handles
- ben&ouml;tigen; dies h&auml;ngt davon ab, welche und wie
- viele Dienste gleichzeitig genutzt werden.</para>
-
- <para>Die Voreinstellung f&uuml;r die Anzahl der
- File-Handles wird in der Kernel-Konfiguration
- festgelegt:</para>
-
- <programlisting>maxusers 32</programlisting>
-
- <para>Wenn Sie den Wert der Variablen
- <varname>maxusers</varname> erh&ouml;hen, steigt
- <varname>kern.maxfiles</varname> proportional mit.</para>
-
- <para>Sie k&ouml;nnen den aktuellen Wert von
- <varname>kern.maxfiles</varname> mit dem folgenden
- Kommando abfragen:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.maxfiles</userinput>
-kern.maxfiles: 1064
- </screen>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="commercial">
- <title>Kommerzielle Anwendungen</title>
-
- <para>
- <note>
- <para>Dieser Abschnitt ist immer noch sehr d&uuml;rftig, aber
- wir hoffen nat&uuml;rlich, da&szlig; Unternehmen einen
- Beitrag leisten werden! :) Die FreeBSD-Gruppe hat keinerlei
- finanzielle Interessen an einem der hier aufgelisteten
- Unternehmen, sondern listet sie lediglich als
- &ouml;ffentlichen Service auf (und ist der Meinung,
- da&szlig; ein kommerzielles Interesse an FreeBSD sehr
- positive Einflu&szlig; auf ein langfristiges Bestehen von
- FreeBSD haben kann). Wir m&ouml;chten Anbieter
- kommerzieller Software dazu aufrufen, ihren Eintrag hier
- aufnehmen zu lassen. Auf <ulink
- URL="http://www.de.FreeBSD.org/commercial/commercial.html">der
- Anbieter-Seite</ulink> finden Sie eine l&auml;ngere
- Liste.</para>
- </note>
- </para>
-
- <qandaset>
- <qandaentry>
- <question id="officesuite">
- <para>Wo bekommen ich FreeBSD-Versionen der klassischen
- B&uuml;ro-Anwendungen?</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.wccdrom.com">BSDi</ulink>
- bietet eine FreeBSD-Version von <ulink
- url="http://www.vistasource.com">VistaSource </ulink>
- ApplixWare 5 an.</para>
-
- <para>ApplixWare ist eine umfassende Sammlung von
- B&uuml;roanwendungen, die eine Textverarbeitung, eine
- Tabellenkalkulation, ein Programm f&uuml;r
- Vortr&auml;ge, ein Vektorzeichenprogramm und diverse
- andere Programme beinhaltet.</para>
-
- <para>Sie k&ouml;nnen die FreeBSD-Version von ApplixWare
- <ulink
- url="http://www.wccdrom.com/titles/freebsd/applix.phtml">online
- bestellen</ulink>. </para>
- </listitem>
-
- <listitem>
- <para>Die Linux-Version von <ulink
- url="http://www.sun.com/staroffice">StarOffice</ulink>
- l&auml;uft unter FreeBSD problemlos. Die einfachste
- M&ouml;glichkeit zur Installation der Linux-Version
- von Staroffice ist die Benutzung der <ulink
- url="../handbook/ports.html">FreeBSD Ports</ulink>.
- Zuk&uuml;nfte Versionen der im Sourcecode vorliegenden
- Variante <ulink
- url="http://www.openoffice.org">OpenOffice</ulink>
- sollten auch problemlos funktionieren.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="motif">
- <para>Woher kann ich Motif f&uuml;r FreeBSD
- bekommen?</para>
- </question>
-
- <answer>
- <para>Um die g&uuml;nstigste ELF-Motiv 2.1.20 Distribution
- f&uuml;r FreeBSD (entweder i386 oder Alpha) zu bekommen,
- wenden Sie sich bitte an <link
- linkend="apps2go">Apps2go</link>.<anchor
- id="apps2go"></para>
-
- <para>Es gibt zwei Distributionen, die <quote>developement
- edition</quote> und die <quote>runtime edition</quote>
- (wesentlich g&uuml;nstiger). Diese Distributionen
- enthalten:</para>
-
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Development-Kit mit uil, mrm, xm, xmcxx, Include-
- und Imake-Dateien.</para>
- </listitem>
-
- <listitem>
- <para>Statische und dynamische ELF-Bibliotheken (zur
- Benutzung mit FreeBSD 3.0 und h&ouml;her).</para>
- </listitem>
-
- <listitem>
- <para>Demonstrations-Applets.</para>
- </listitem>
- </itemizedlist>
-
- <para>Achten Sie darauf, da&szlig; Sie bei der Bestellung
- angeben, da&szlig; Sie die FreeBSD-Version von Motif
- m&ouml;chten (vergessen Sie auch nicht, die Architektur
- anzugeben)! Von <emphasis>Apps2go</emphasis> werden auch
- Versionen f&uuml;r NetBSD und OpenBSD verkauft. Dieses
- Produkt ist zur Zeit nur zum Download per FTP
- verf&uuml;gbar.</para>
-
- <variablelist>
- <varlistentry>
- <term>Weitere Informationen</term>
-
- <listitem>
- <para><ulink URL="http://www.apps2go.com/">Apps2go
- Web-Seite</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>oder</term>
-
- <listitem>
- <para><ulink
- URL="mailto:sales@apps2go.com">Vertrieb</ulink> oder
- <ulink
- URL="mailto:support@apps2go.com">Support</ulink>
- Email-Adressen.</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>oder</term>
-
- <listitem>
- <para>Telefon (817) 431 8775 oder +1 817
- 431-8775</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Eine Motif 2.1-Distribution f&uuml;r FreeBSD im ELF-
- oder a.out-Format ist bei <link linkend="metrox">Metro
- Link</link> erh&auml;ltlich.</para>
-
- <para>Diese Distribution enth&auml;lt:</para>
-
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Development-Kit mit uil, mrm, xm, xmcxx, Include-
- und Imake-Dateien.</para>
- </listitem>
-
- <listitem>
- <para>Statische und dynamische Bibliotheken (verlangen
- Sie ELF zur Verwendung unter FreeBSD ab 3.0 und oder
- a.out zur Verwendung unter FreeBSD bis
- einschlie&szlig;lich 2.2.8).</para>
- </listitem>
-
- <listitem>
- <para>Demonstrations-Applets.</para>
- </listitem>
-
- <listitem>
- <para>Vorformatierte Manualpages.</para>
- </listitem>
- </itemizedlist>
-
- <para>Achten Sie darauf, bei der Bestellung anzugeben,
- da&szlig; Sie die FreeBSD-Version von Motiv m&ouml;chten!
- <emphasis>Metro Link</emphasis> vertreibt auch Versionen
- f&uuml;r Linux. Dieses Produkt ist entweder als CDROM
- oder zum Download per FTP erh&auml;tlich.</para>
-
- <para>Eine Motif 2.0 Distribution f&uuml;r FreeBSD im
- a.out-Format gibt es bei <link linkend="xig">Xi
- Graphics</link>.</para>
-
- <para>Diese Distribution enth&auml;lt:/</para>
-
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Development-Kit mit uil, mrm, xm, xmcxx, Include-
- und Imake-Dateien.</para>
- </listitem>
-
- <listitem>
- <para>Statische und dynamische Bibliotheken (zur
- Verwendung unter FreeBSD 2.2.8 und
- fr&uuml;here).</para>
- </listitem>
-
- <listitem>
- <para>Demonstrations-Applets.</para>
- </listitem>
-
- <listitem>
- <para>Vorformatierte Manualpages.</para>
- </listitem>
- </itemizedlist>
-
- <para>Achten Sie darauf, bei der Bestellung anzugeben,
- da&szlig; Sie die FreeBSD-Version von Motiv m&ouml;chten!
- <emphasis>Xi Graphics</emphasis> verkauft auch Versionen
- f&uuml;r BSDI und Linux. Dieses Produkt ist derzeit ein
- Satz von vier Disketten... zuk&uuml;nftig wird es eine
- einheitliche CD-Distribution geben, wie beim CDE.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cde">
- <para>Woher kann ich CDE f&uuml;r FreeBSD bekommen?</para>
- </question>
-
- <answer>
- <para><link linkend="xig">Xi Graphics</link> hat einmal CDE
- f&uuml;r FreeBSD verkauft, tut es aber nicht mehr.</para>
-
- <para><ulink URL="http://www.kde.org/">KDE</ulink> ist ein
- Open-Source X11-Desktop, das CDE in vielen Punkten
- &auml;hnelt. Eventuell gef&auml;llt Ihnen auch das "Look
- and Feel" von <ulink
- url="http://www.xfce.org/">xfce</ulink>. KDE und xfce
- sind &uuml;ber das <ulink
- url="http://www.de.FreeBSD.org/ports/">Ports-System</ulink>
- von FreeBSD verf&uuml;gbar.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="commercial-xserver">
- <para>Gibt es irgendwelche kommerzielle leistungsf&auml;hige
- X-Server?</para>
- </question>
-
- <answer>
- <para>Ja, <ulink URL="http://www.xig.com/">Xi
- Graphics</ulink> und <ulink
- URL="http://www.metrolink.com/">Metro Link</ulink>
- vertreiben beschleunigte X-Produkte f&uuml;r FreeBSD und
- andere Intel-basierte Systeme.</para>
-
- <para>Das Angebot von Metro Link besteht aus einem
- leistungsf&auml;higen X-Server, der einfache Konfiguration
- unter Verwendung von Werkzeugen aus der
- FreeBSD-Paketsammlung und Unterst&uuml;tzung f&uuml;r den
- parallelen Einsatz mehrerer Videokarten bietet. Es wird
- nur in bin&auml;rer Form &uuml;ber ein bequemes
- FTP-Download vertrieben. Ganz zu schweigen davon,
- da&szlig; das Angebot von Metro Link zum sehr
- g&uuml;nstigen Preis von 39 Dollar erh&auml;ltlich
- ist.<anchor id="metrox"></para>
-
- <para>Metro Link bietet auch Motif f&uuml;r FreeBSD sowohl
- im ELF-, als auch im a.out-Format an (siehe oben).</para>
-
- <variablelist>
- <varlistentry>
- <term>Weitere Informationen</term>
-
- <listitem>
- <para><ulink URL="http://www.metrolink.com/">Metro
- Link Web-Seite</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>oder</term>
-
- <listitem>
- <para><ulink
- URL="mailto:sales@metrolink.com">Vertrieb</ulink>
- oder <ulink
- URL="mailto:tech@metrolink.com">Support</ulink>
- Email-Adressen.</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>oder</term>
-
- <listitem>
- <para>Telefon (954) 938-0283 oder +1 954
- 938-0283</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Das Angebot von Xi Graphics besteht aus einem
- leistungsf&auml;higen X-Server, der einfache Konfiguration
- und Unterst&uuml;tzung f&uuml;r den parallelen Einsatz
- mehrerer Videokarten bietet. Es wird in bin&auml;rer Form
- in einer einheitlichen Diskettendistribution f&uuml;r
- FreeBSD und Linux vertrieben. XI Graphics bietet auch
- leistungsf&auml;hige X-Server, die auf die
- Unterst&uuml;tzung von Laptops zugeschnitten sind.
- <anchor id="xig"></para>
-
- <para>Es gibt ein kostenloses
- <quote>Kompatibilit&auml;ts-Demo</quote> der Version
- 5.0.</para>
-
- <para>Xi Graphics vertreibt auch Motif und CDE f&uuml;r
- FreeBSD (siehe oben).</para>
-
- <variablelist>
- <varlistentry>
- <term>Weitere Informationen</term>
-
- <listitem>
- <para><ulink URL="http://www.xig.com/">Xi Graphics
- Web-Seite</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>oder</term>
-
- <listitem>
- <para><ulink
- URL="mailto:sales@xig.com">Vertrieb</ulink> oder
- <ulink URL="mailto:support@xig.com">Support</ulink>
- Email-Adressen.</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>oder</term>
-
- <listitem>
- <para>Telefon (800) 946 7433 oder +1 303
- 298-7478.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="database-systems">
- <para>Gibt es irgendwelche Datenbanksysteme f&uuml;r
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>Ja! Lesen Sie den Abschnitt <ulink
- URL="http://www.de.FreeBSD.org/commercial/software_bycat.html#CATEGORY_DATABASE">kommerzielle
- Anbieter</ulink> auf der FreeBSD-Web-Seite.</para>
-
- <para>Schauen Sie auch im Abschnitt <ulink
- URL="http://www.de.FreeBSD.org/ports/databases.html">Datenbanken</ulink>
- der Ports-Sammlung nach.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="oracle-support">
- <para>Kann ich Oracle unter FreeBSD laufen lassen?</para>
- </question>
-
- <answer>
- <para>Ja. Die folgenden Seiten beschreiben genau, wie
- Linux-Oracle unter FreeBSD einzustellen ist:</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">
- <title>Benutzerprogramme</title>
-
- <qandaset>
- <qandaentry>
- <question id="user-apps">
- <para>Nun, wo sind die ganzen Benutzerprogramme?</para>
- </question>
-
- <answer>
- <para>Werfen Sie bitte einen Blick auf <ulink
- URL="http://www.de.FreeBSD.org/ports/">die
- Ports-Seite</ulink>, um Informationen &uuml;ber die nach
- FreeBSD portierten Softwarepakete zu erhalten. Die Liste
- enth&auml;lt zur Zeit 3400 Eintr&auml;ge und w&auml;chst
- t&auml;glich. Schauen Sie hier also &ouml;fter nach oder
- melden Sie sich bei der <link
- linkend="mailing">Mailingliste</link><literal>freebsd-announce</literal>
- an, um sich regelm&auml;&szlig;ig &uuml;ber
- &Auml;nderungen zu informieren.</para>
-
- <para>Die meisten Ports sind f&uuml;r die Zweige 2.2, 3.0
- und 4.x erh&auml;ltlich; viele von ihnen sollten auch auf
- 2.1.x-Systemen laufen. Jedesmal, wenn ein FreeBSD-Release
- erstellt wird, wird auch ein Snapshot des Port-Baumes vom
- Zeitpunkt des Releases in das Verzeichnis
- <filename>ports/</filename> eingef&uuml;gt.</para>
-
- <para>Wir unterst&uuml;tzen auch das Konzept von
- <quote>Packages</quote> - im Grunde genommen nicht mehr
- als gezippte Bin&auml;rdistributionen mit ein wenig
- zus&auml;tzlicher Intelligenz zur Erm&ouml;glichung
- angepa&szlig;ter Installationen. Ein Package kann leicht
- installiert und wieder deinstalliert werden, ohne,
- da&szlig; man etwas &uuml;ber wissen mu&szlig;, welche
- Dateien es enth&auml;lt.</para>
-
- <para>Benutzen Sie das Paketinstallationsmenue in
- <filename>/stand/sysinstall</filename> (unter dem
- Menuepunkt post-configuration) oder f&uuml;hren Sie den
- Befehl <command>pkg_add(1)</command> mit den speziellen
- Paketdateien aus, die Sie installieren m&ouml;chten.
- Paketdateien k&ouml;nnen f&uuml;r gew&ouml;hnlich an der
- Endung <filename>.tgz</filename> erkannt werden und
- diejenigen, die &uuml;ber eine CDROM-Distribution
- verf&uuml;gen, haben auf ihrer CD ein Verzeichnis
- <filename>packages/All</filename>, das solche Dateien
- enth&auml;lt. F&uuml;r verschiedene FreeBSD-Versionen
- k&ouml;nnen sie von folgenden Adressen auch &uuml;ber das
- Netz heruntergeladen werden:</para>
-
- <variablelist>
- <varlistentry>
- <term>f&uuml;r 2.2.8-RELEASE/2.2.8-STABLE</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>f&uuml;r 3.X-RELEASE/3.X-STABLE</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>f&uuml;r 4.X-RELEASE/4-STABLE</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>f&uuml;r 5.0-CURRENT</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>oder von Ihrem n&auml;chstgelegenen Mirror.</para>
-
- <para>Beachten Sie, da&szlig; nicht alle Ports als Package
- verf&uuml;gbar sind, da st&auml;ndig neue hinzugef&uuml;gt
- werden. Es ist immer eine gute Idee, sich
- regelm&auml;&szlig;ig auf der <ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">ftp.de.FreeBSD.org</ulink>
- Masterseite dar&uuml;ber zu informieren, welche Packages
- verf&uuml;gbar sind.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="minimal-sh">
- <para>Warum ist <command>/bin/sh</command> so spartanisch?
- Warum benutzt FreeBSD nicht die <command>bash</command>
- oder eine &auml;hnliche Shell?</para>
- </question>
-
- <answer>
- <para>Weil der POSIX-Standard definiert, da&szlig; es so
- eine Shell geben mu&szlig;.</para>
-
- <para>Die ausf&uuml;hrlichere Antwort: Viele Leute
- m&uuml;ssen Shell-Programme schreiben, die auf vielen
- verschiedenen Systemen nutzbar sein m&uuml;ssen. Aus
- diesem Grund enth&auml;lt der POSIX-Standard eine sehr
- detaillierte Definition der Shell und der Hilfsprogramme.
- Die meisten Programme werden f&uuml;r die Bourne Shell
- geschrieben; au&szlig;erdem nutzen mehrere wichtige
- Schnittstellen (&man.make.1;, &man.system.3;,
- &man.popen.3; und ihre Entsprechungen in h&ouml;heren
- Programmiersprachen wie Perl und Tcl) die Bourne Shell, um
- Befehle auszuf&uuml;hren. Da die Bourne Shell an so
- vielen Stellen und so h&auml;ufig genutzt wird, mu&szlig;
- sie die folgenden Anforderungen erf&uuml;llen: Schneller
- Start, ein klar definiertes Verhalten und ein
- m&ouml;glichst geringer Speicherverbrauch.</para>
-
- <para>Wir haben bei der vorliegenden Implementierung
- versucht, m&ouml;glichst viele dieser Anforderungen zu
- erf&uuml;llen. Um <command>/bin/sh</command> nicht zu
- gro&szlig; werden zu lasen, haben wir viele der
- Annehmlichkeiten der anderen Shells weggelassen. Aus
- diesem Grund gibt es in den Ports die luxuri&ouml;seren
- Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie
- einfach mal den Speicherverbrauch der verschiedenen
- Shells, indem Sie <command>ps -u</command> aufrufen und
- sich die Angaben in den Spalten <quote>VSZ</quote> und
- <quote>RSS</quote> ansehen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-libcso30">
- <para>Wo finde ich libc.so.3.0?</para>
- </question>
-
- <answer>
- <para>Sie versuchen, ein Package f&uuml;r 2.2 oder neuer auf
- einem 2.1.x-System laufen zu lassen. Bitte lesen Sie den
- vorherigen Abschnitt und besorgen Sie sich den passenden
- Port/das passende Package f&uuml;r Ihr System.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-libcso40">
- <para>Ich erhalte die Meldung <literal>Error: can't find
- libc.so.4.0</literal></para>
- </question>
-
- <answer>
- <para>Sie haben versehentlich ein Package f&uuml;r ein 4.X-
- oder 5.X-System heruntergeladen und versucht, es auf einem
- 2.X- oder 3.X-System zu benutzen. Bitte besorgen Sie sich
- die f&uuml;r ihr System korrekte Version des
- Packages.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="emul">
- <para>ghostscript produziert einen Menge Fehler auf meinem
- 386/486SX.</para>
- </question>
-
- <answer>
- <para>Sie haben keinen mathematischen Co-Prozessor, richtig?
- Sie werden den alternativen mathematischen Emulator zu
- Ihren Kernel hinzuf&uuml;gen m&uuml;ssen; tun Sie das,
- indem Sie die folgende Zeile in Ihre
- Kernelkonfigurationsdatei einf&uuml;gen, wodurch der
- Emulator in den Kernel kompiliert wird:</para>
-
- <programlisting>
-options GPL_MATH_EMULATE
- </programlisting>
-
- <para>
- <note>
- <para>Sie m&uuml;ssen die Option
- <symbol>MATH_EMULATE</symbol> hierzu
- entfernen.</para>
- </note>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sco-socksys">
- <para>Wenn ich eine SCO/iBCS2-Anwendung laufen lasse, werden
- mir Fehler bei <literal>socksys</literal> gemeldet (nur
- f&uuml;r FreeBSD 3.0 und &auml;ltere Systeme).</para>
- </question>
-
- <answer>
- <para>Sie m&uuml;ssen zun&auml;chst den letzten Abschnitt
- der Datei <filename>/etc/sysconfig</filename> (oder
- <filename>/etc/rc.conf</filename>) editieren und die
- folgende Variable auf <literal>YES</literal>
- setzen:</para>
-
- <programlisting>
-# Set to YES if you want ibcs2 (SCO) emulation loaded at startup
-ibcs2=NO
- </programlisting>
-
- <para>Hierdurch wird das Kernelmodul ibcs2 beim Hochfahren
- geladen.</para>
-
- <para>Dann m&uuml;ssen Sie /compat/ibcs2/dev so
- einrichten:</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 kann einfach auf
- <filename>/dev/null</filename> zeigen, um open &amp; close
- eine regul&auml;re Datei vorzut&auml;uschen. Der code in
- -CURRENT wird sich um den Rest k&uuml;mmern. Dieses
- Vorgehen ist wesentlich sauberer, als bisher. Falls Sie
- den Treiber <devicename>spx</devicename> f&uuml;r lokale
- Socket-X-Verbindungen m&ouml;chten, definieren Sie
- <literal>SPX_HACK</literal>, wenn Sie das System
- kompilieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="configure-inn">
- <para>Wie konfiguriere ich INN (Internet News) f&uuml;r
- meine Maschine?</para>
- </question>
-
- <answer>
- <para>Ein idealer Startpunkt nach der Installation des
- Packages oder Ports INN ist <ulink
- URL="http://www.cis.ohio-state.edu/~barr/INN.html">Dave
- Barr's INN-Seite</ulink>, wo Sie die INN-FAQ
- finden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ms-frontpage">
- <para>Welche Version von Microsoft FrontPage sollte ich mir
- besorgen?</para>
- </question>
-
- <answer>
- <para>Benutzen Sie den Port! Im Ports-Verzeichnis gibt es
- eine vorbereitete Version von Apache.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="java">
- <para>Unterst&uuml;tzt FreeBSD Java?</para>
- </question>
-
- <answer>
- <para>Ja. Schauen Sie bitte hier <ulink
- URL="http://www.de.FreeBSD.org/java/">http://www.de.FreeBSD.org/java/</ulink>
- nach.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ports-3x">
- <para>Warum kann ich manche Ports auf meiner
- 3.X-STABLE-Machine nicht erstellen?</para>
- </question>
-
- <answer>
- <para>Wenn Sie eine FreeBSD-Version benutzen, die deutlich
- &auml;lter als das aktuelle -CURRENT oder -STABLE ist,
- k&ouml;nnte es sein, da&szlig; Sie ein Ports-Upgrade-Kit
- von <ulink
- URL="http://www.de.FreeBSD.org/ports/">http://www.de.FreeBSD.org/ports/</ulink>
- ben&ouml;tigen. Wenn Sie auf dem neuesten Stand sind,
- k&ouml;nnte es sein, da&szlig; jemand eine &Auml;nderung
- des Ports durchgef&uuml;hrt hat, die f&uuml;r -CURRENT
- funktioniert, den Port f&uuml;r -STABLE aber unbrauchbar
- gemacht hat. Bitte senden Sie einen Fehlerbericht mit dem
- Befehl <command>send-pr</command>. Von der Ports-Sammlung
- wird n&auml;mlich erwartet, da&szlig; sie sowohl auf
- -CURRENT als auch auf -STABLE funktioniert.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="find-ldso">
- <para>Wo finde ich ld.so?</para>
- </question>
-
- <answer>
- <para>Wenn Sie aout-Anwendungen wie den Netscape-Navigator
- auf einer ELF-basierten Maschine wie 3.1-R oder
- sp&auml;tere laufen lassen m&ouml;chten, werden Sie
- <filename>/usr/libexec/ld.so</filename> und einige
- aout-Bibliotheken ben&ouml;tigen. Sie sind in der
- Distribution compat22 enthalten. Benutzen Sie
- <filename>/stand/sysinstall</filename> oder
- <filename>install.sh</filename> im Unterverzeichnis
- compat22, um sie zu installieren. Lesen Sie auch die
- ERRATAs f&uuml;r 3.1-R und 3.2-R.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ports-update">
- <para>Ich habe die Sourcen aktualisiert, wie aktualisiere
- ich jetzt die installierten Ports?</para>
- </question>
-
- <answer>
- <para>Leider gibt es keine einfache Methode, um die
- installierten Ports zu aktualisieren. Sie k&ouml;nnen mit
- <command>pkg_version</command> ein Script erzeugen, das
- die installieren Ports mit einer neueren Version aus der
- Ports-Sammlung ersetzt:</para>
-
- <screen>&prompt.root; <userinput>pkg_version <option>-c</option> > <replaceable>/tmp/myscript</replaceable></userinput></screen>
-
- <para>Das so erzeugte Script <emphasis>mu&szlig;</emphasis>
- manuell ge&auml;ndert werden, bevor es benutzt wird. Die
- aktuelle Version von <command>pkg_version</command>
- erzwingt dies, indem sie ein <command>exit</command> an
- den Anfang des Scripts setzt.</para>
-
- <para>Sie sollten die Ausgaben des Scripts abspeichern, da
- sie Ihnen melden werden, welche Ports von den dem gerade
- aktualisierten Port abh&auml;ngen. Es ist m&ouml;glich,
- da&szlig; diese auch aktualisiert werden m&uuml;ssen. Der
- typische Fall, in dem ein Update erforderlich ist, ist
- eine &Auml;nderung der Versionsnummer einer shared
- library; in diesem Fall m&uuml;ssen die abh&auml;ngigen
- Ports neu &uuml;bersetzt werden, damit sie die neue
- Library nutzen.</para>
-
- <para>Wenn Ihr System rund um die Uhr l&auml;uft, kann es
- jede Woche automatisch eine Liste der Ports erzeugen, die
- wahrscheinlich aktualisert werden m&uuml;ssen. F&uuml;gen
- Sie dazu <literal>weekly_status_pkg_enable="YES"</literal>
- in <filename>/etc/periodic.conf</filename> ein.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="kernelconfig">
- <title>Kernelkonfiguration</title>
-
- <qandaset>
- <qandaentry>
- <question id="make-kernel">
- <para>Ich m&ouml;chte meinen Kernel anpassen. Ist das
- schwierig?</para>
- </question>
-
- <answer>
- <para>&Uuml;berhaupt nicht! Lesen Sie den <ulink
- URL="../handbook/kernelconfig.html">Abschnitt zur
- Kernelkonfiguration im Handbuch</ulink>.</para>
-
- <para>
- <note>
- <para>Ich empfehle Ihnen, einen datierten Snapshot Ihres
- Kernels als <filename>kernel.YYMMDD</filename> zu
- erstellen, nachdem Sie alles zum Laufen gebracht
- haben. Auf diese Weise k&ouml;nnen Sie diesen Kernel
- hochfahren, anstatt den ganzen Weg zur&uuml;ck zu
- <filename>kernel.GENERIC</filename> gehen zu
- m&uuml;ssen, wenn Sie das n&auml;chste Mal mit Ihrer
- Konfiguration herumexperimentieren und dabei etwas
- falsch machen sollten. Das ist besonders wichtig,
- wenn Sie nun von einem Controller booten, der vom
- GENERIC-Kernel nicht unterst&uuml;tzt wird (ja, das
- beruht auf pers&ouml;nlichen Erfahrungen).</para>
- </note>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-hw-float">
- <para>Meine Kernel-Kompilierungen schlagen fehl, weil
- <literal>_hw_float</literal> fehlt.</para>
- </question>
-
- <answer>
- <para>Lassen Sie mich raten. Sie haben
- <devicename>npx0</devicename> aus Ihrer
- Konfigurationsdatei entfernt, weil Sie keinen
- mathematischen Co-Prozessor besitzen, richtig? Falsch! :-)
- <devicename>npx0</devicename> ist <emphasis>zwingend
- erforderlich</emphasis>. Auch, wenn Sie keinen
- mathematischen Co-Prozessor besitzen,
- <emphasis>m&uuml;ssen</emphasis> Sie das Ger&auml;t
- <devicename>npx0</devicename> einbinden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="why-kernel-big">
- <para>Warum ist mein Kernel so gro&szlig; (&uuml;ber 10
- MByte)?</para>
- </question>
-
- <answer>
- <para>Sie haben Ihren Kernel wahrscheinlich im
- <emphasis>Debug Modus</emphasis> erstellt. Ein
- Debug-Kernel enth&auml;lt viele zus&auml;tzliche
- Informationen f&uuml;r die Fehlersuche, daher ist er so
- gro&szlig;. Bitte beachten Sie, da&szlig; die Verwendung
- eines Debug-Kernels bei FreeBSD 3.0 und neueren Version
- die Performance des Systems nicht oder nur minimal
- reduziert; au&szlig;erdem ist es f&uuml;r den Fall einer
- system panic sehr praktisch, einen Debug-Kernel zur Hand
- zu haben.</para>
-
- <para>Wenn Ihnen allerdings der Plattenplatz ausgeht oder
- Sie einfach rein prinzipiell keinen Debug-Kernel benutzen
- wollen, m&uuml;ssen die beiden folgenden Bedingungen
- erf&uuml;llt sein:</para>
-
- <itemizedlist>
- <listitem>
- <para>Die Konfigurationsdatei f&uuml;r Ihren Kernel darf
- die folgende Zeile nicht enthalten:</para>
-
- <programlisting>makeoptions DEBUG=-g</programlisting>
- </listitem>
-
- <listitem>
- <para>Sie d&uuml;rfen <command>config</command> nicht
- mit dem Parameter <option>-g</option> starten.</para>
- </listitem>
- </itemizedlist>
-
- <para>Sollten Sie sich nicht an diese Einschr&auml;nkungen
- halten, wird Ihr Kernel im Debug-Modus erstellt. Solange
- Sie sich an diese Einschr&auml;nkungen halten, k&ouml;nnen
- Sie Ihren Kernel ganz normal erstellen und die
- Gr&ouml;&szlig;e des Kernels sollte deutlich sinken. Ein
- normaler Kernel ist nur 1.5 MByte bis 2 MByte
- gro&szlig;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-interrupts">
- <para>Interrupt-Konflikte mit dem Code f&uuml;r die serielle
- Multi-Port-Schnittstelle.</para>
- </question>
-
- <answer>
- <para>Wenn ich einen Kernel mit Unterst&uuml;tzung f&uuml;r
- serielle Multi-Port-Schnittstellen kompiliere, bekomme ich
- den Hinweis, da&szlig; nur der erste Port gepr&uuml;ft
- wird und die restlichen auf Grund von Interrupt-Konflikten
- &uuml;bersprungen werden. Wie kann ich das
- Beheben?</para>
-
- <para>Das Problem besteht darin, da&szlig; in FreeBSD Code
- integriert ist, um den Kernel vor Abst&uuml;rzen aufgrund
- von Hardware- oder Software-Konflikten zu bewahren.
- Behoben wird es, indem die IRQ-Angaben f&uuml;r alle
- Ports, bis auf einen ausgelassen werden. Hier ist ein
- Beispiel:</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>Ich kann &uuml;berhaupt keinen Kernel compilieren,
- nicht einmal den Standard-Kernel (GENERIC).</para>
- </question>
-
- <answer>
- <para>Es gibt eine Reihe von m&ouml;glichen Ursachen
- f&uuml;r dieses Problem:</para>
-
- <itemizedlist>
- <listitem>
- <para>Sie benutzen die neuen Kommandos <command>make
- buildkernel</command> und <command>make
- installkernel</command> nicht, obwohl die Sourcen auf
- Ihrem System nicht zum laufenden System passen (z.B.
- benutzen Sie die Sourcen von 4.2-RELEASE auf einem
- System mit 4.0-RELEASE). Wenn Sie ein Upgrade
- durchf&uuml;hren wollen, sollten Sie
- <filename>/usr/src/UPDATING</filename> lesen, beachten
- Sie insbesondere den Abschnitt <quote>COMMON
- ITEMS</quote> gegen Ende des Dokuments.</para>
- </listitem>
-
- <listitem>
- <para>Sie benutzen zwar <command>make
- buildkernel</command> und <command>make
- installkernel</command>, aber Sie haben nicht darauf
- geachtet, da&szlig; vorher ein komplettes
- <command>make buildworld</command> durchgelaufen sein
- mu&szlig;. Um seine Arbeit erledigen zu k&ouml;nnen,
- ben&ouml;tigt <command>make buildkernel</command>
- Dateien, die von <command>make buildworld</command>
- erzeugt werden.</para>
- </listitem>
-
- <listitem>
- <para>Auch wenn Sie <link
- linkend="stable">FreeBSD-STABLE</link> verwenden, ist
- es durchaus m&ouml;glich, da&szlig; Sie die Sourcen
- genau zum falschen Zeitpunkt aktualisiert haben:
- W&auml;hrend Sie gerade modifiziert wurden oder
- kurzzeitig fehlerhaft waren. Eine absolute und
- vollst&auml;ndige Garantie, da&szlig; Sie die Sourcen
- compilieren k&ouml;nnen, gibt es nur f&uuml;r die
- Releases, bei <link
- linkend="stable">FreeBSD-STABLE</link> ist das nicht
- immer so. Wenn Sie es noch nicht versucht haben,
- sollten Sie ihre Source nochmals aktualisieren. Es
- ist denkbar, da&szlig; der von Ihnen genutzte Server
- zur Zeit Probleme hat, benutzten Sie daher testweise
- auch einmal einen anderen Server.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="admin">
- <title>Systemadministration</title>
-
- <qandaset>
- <qandaentry>
- <question id="startup-config-files">
- <para>Wo befinden sich die Konfigurationsdateien f&uuml;r
- den Systemstart?</para>
- </question>
-
- <answer>
- <para>F&uuml;r die Versionen 2.0.5R bis 2.2.1R hei&szlig;t
- die prim&auml;re Konfigurationsdatei
- <filename>/etc/sysconfig</filename>. Alle Optionen
- m&uuml;ssen in dieser Datei angegeben werden und andere
- Dateien wie <filename>/etc/rc</filename> und
- <filename>/etc/netstart</filename> &uuml;bernehmen sie
- einfach hieraus.</para>
-
- <para>Sehen Sie in die Datei
- <filename>/etc/sysconfig</filename> und &auml;ndern Sie
- die Werte entsprechend Ihrem System. Diese Datei
- enth&auml;lt Kommentare, die die m&ouml;glichen
- Einstellungen erkl&auml;ren.</para>
-
- <para>In den Versionen nach 2.2.1 und 3.0 erhielt
- <filename>/etc/sysconfig</filename> den
- aussagekr&auml;ftigeren Namen <filename>rc.conf</filename>
- und die Syntax wurde bei dieser Gelegenheit auch etwas
- bereinigt. <filename>/etc/netstart</filename> wurde
- ebenfalls in <filename>/etc/rc.network</filename>
- umbenannt, so da&szlig; alle Dateien nun mit dem Befehl
- <command>cp /usr/src/etc/rc* /etc</command> kopiert werden
- k&ouml;nnen.</para>
-
- <para>Seit FreeBSD 3.1 ist <filename>rc.conf</filename> als
- <filename>/etc/defaults/rc.conf</filename> verf&uuml;gbar.
- <emphasis>&Auml;ndern Sie diese Datei nicht!</emphasis>
- Wenn Sie den Wert einer der in
- <filename>/etc/defaults/rc.conf</filename> gesetzten
- Variablen &auml;ndern wollen, sollten Sie die
- entsprechende Zeile an die Datei
- <filename>/etc/rc.conf</filename> anf&uuml;gen und sie
- dort &auml;ndern.</para>
-
- <para>Wenn Sie zum Beispiel den ab FreeBSD 3.1
- mitgelieferten DNS Server named aktivieren wollen,
- m&uuml;ssen Sie lediglich das folgende Kommando
- eingeben:</para>
-
- <screen>
-&prompt.root; <userinput>echo named_enable="YES" &gt;&gt; /etc/rc.conf</userinput>
- </screen>
-
- <para>Wenn Sie in FreeBSD 3.1 und sp&auml;teren Versionen
- lokale Server starten wollen, m&uuml;ssen Sie passende
- Shellscripts im Verzeichnis
- <filename>/usr/local/etc/rc.d/</filename> ablegen. Die
- Dateien m&uuml;ssen als ausf&uuml;hrbar markiert sein und
- die Endung .sh haben. Wenn Sie FreeBSD 3.0 oder eine noch
- &auml;ltere Version benutzen, m&uuml;ssen Sie die Datei
- <filename>/etc/rc.local</filename> &auml;ndern.</para>
-
- <para>Die Datei <filename>/etc/rc.serial</filename> dient
- zur Initialisierung serieller Schnittstellen (z.B.
- Einstellung der Schnittstelleneigenschaften usw.).</para>
-
- <para>Die Datei <filename>/etc/rc.i386</filename> dient
- f&uuml;r Intel-spezifische Einstellungen wie
- iBCS2-Emulation oder Konfiguration der
- PC-Systemkonsole.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="adding-users">
- <para>Wie kann ich am Einfachsten einen Benutzer
- hinzuf&uuml;gen?</para>
- </question>
-
- <answer>
- <para>Benutzen Sie den Befehl <command>adduser</command> und
- f&uuml;r kompliziertere F&auml;lle den Befehl
- <command>pw</command>.</para>
-
- <para>Benutzen Sie den Befehl <command>rmuser</command> um
- einen Benutzer wieder zu l&ouml;schen. Sie k&ouml;nnen
- hierzu auch <command>pw</command> benutzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="adding-disks">
- <para>Wie kann ich meine neue Festplatte in mein
- FreeBSD-System einbinden?</para>
- </question>
-
- <answer>
- <para>Lesen Sie das Tutorial zur Festplattenformatierung
- unter <ulink
- URL="../tutorials/formatting-media/">www.de.FreeBSD.org</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="removable-drives">
- <para>Ich habe ein Wechsellaufwerk. Wie benutze ich
- es?</para>
- </question>
-
- <answer>
- <para>Ob es sich um ein Wechsellaufwerk handelt, um ein ZIP-
- oder ein EZ-Laufwerk (oder sogar ein Diskettenlaufwerk,
- wenn Sie es auf diese Weise benutzen m&ouml;chten), oder
- um eine neue Festplatte - wenn es einmal installiert und
- vom System erkannt ist und Sie Ihre
- Kassete/Diskette/was_auch_immer eingelegt haben, ist das
- Vorgehen bei allen Ger&auml;ten ziemlich
- &auml;hnlich.</para>
-
- <para><anchor id="disklabel">(dieser Abschnitt basiert auf
- <ulink
- URL="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">Mark
- Mayo's ZIP-FAQ</ulink>)</para>
-
- <para>Wenn es sich um ein ZIP- oder Diskettenlaufwerk
- handelt, und sich bereits ein DOS-Dateisystem darauf
- befindet, k&ouml;nnen Sie einen Befehl wie diesen f&uuml;r
- eine Diskette benutzen:</para>
-
- <screen>
-&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput>
- </screen>
-
- <para>oder diesen:</para>
-
- <screen>
-&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput>
- </screen>
-
- <para>f&uuml;r eine ZIP-Disk mit der
- Herstellerkonfiguration.</para>
-
- <para>Benutzen Sie bei anderen Platten
- <command>fdisk</command> oder
- <filename>/stand/sysinstall</filename>, um herauszufinden,
- wie sie konfiguriert sind.</para>
-
- <para>Die restlichen Beispiele sind f&uuml;r ein
- ZIP-Laufwerk unter da2, der dritten SCSI-Platte.</para>
-
- <para>Wenn es sich nicht um eine Diskette oder eine
- Wechselplatte handelt, die Sie mit anderen Leuten
- austauschen wollen, ist es wahrscheinlich besser, ein
- BSD-Dateisystem darauf zu installieren. Hierdurch
- bekommen Sie Unterst&uuml;tzung f&uuml;r lange Dateinamen,
- eine mindestens doppelt so hohe Leistungsausnutzung und
- wesentlich h&ouml;here Stabilit&auml;t. Zun&auml;chst
- m&uuml;ssen Sie die Partitionen/Dateisysteme auf DOS-Ebene
- nochmals erstellen. Sie k&ouml;nnen entweder
- <command>fdisk</command> oder
- <command>/stand/sysinstall</command> benutzen, oder, bei
- einem kleinen Laufwerk, dem Sie eine Unterst&uuml;tzung
- f&uuml;r mehrere Betriebssysteme nicht zumuten wollen,
- entfernen Sie einfach die komplette FAT Partitionstabelle
- (Slices) und benutzen Sie einfach die
- BSD-Partitionierung:</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>Sie k&ouml;nnen disklabel oder
- <command>/stand/sysinstall</command> benutzen, um mehrere
- BSD-Partitionen zu erstellen. Dies werden Sie sicherlich
- bei einer fest eingebauten Platte wollen, aber bei einem
- Wechsellaufwerk wie einem ZIP ist das wahrscheinlich
- irrelevant.</para>
-
- <para>Zum Schlu&szlig; erstellen Sie ein neues Dateisystem -
- dieses befindet sich auf unserem ZIP-Laufwerk und belegt
- die gesamte Platte:</para>
-
- <screen>
-&prompt.root; <userinput>newfs /dev/rda2c</userinput>
- </screen>
-
- <para>anschlie&szlig;end mounten Sie es:</para>
-
- <screen>
-&prompt.root; <userinput>mount /dev/da2c /zip</userinput>
- </screen>
-
- <para>Und sicherlich ist es keine schlechte Idee, eine Zeile
- &auml;hnlich der folgenden in die Datei
- <filename>/etc/fstab</filename> einzuf&uuml;gen, damit Sie
- in Zukunft nur <command>mount /zip</command> einzugeben
- brauchen:</para>
-
- <programlisting>
-/dev/da2c /zip ffs rw,noauto 0 0
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="root-not-found-cron-errors">
- <para>Warum erhalte ich Meldungen wie <errorname>root: not
- found</errorname>, nachdem ich meine crontab ge&auml;ndert
- habe?</para>
- </question>
-
- <answer>
- <para>Die &uuml;bliche Ursache dieses Problems ist,
- da&szlig; Sie die crontab des Systems
- (<filename>/etc/crontab</filename>) ge&auml;ndert und dann
- mit &man.crontab.1; installiert haben:</para>
-
- <screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
-
- <para>Diese Vorgehensweise ist falsch. Die crontab des
- Systems hat ein anderes Format als die crontabs f&uuml;r
- die einzelnen Benutzer, die mit &man.crontab.1;
- aktualisiert werden (genauere Informationen &uuml;ber die
- Unterschiede erhalten Sie in &man.crontab.5).</para>
-
- <para>Wenn Sie so vorgegangen sind, ist die zweite crontab
- einfach nur eine Kopie von
- <filename>/etc/crontab</filename>, allerdings im falschen
- Format. L&ouml;schen Sie sie mit dem folgenden
- Befehl:</para>
-
- <screen>&prompt.root; <userinput>crontab -r</userinput></screen>
-
- <para>Wenn Sie <filename>/etc/crontab</filename> wieder
- &auml;ndern m&uuml;ssen, sollten Sie einfach gar nichts
- tun, um &man.cron.8; &uuml;ber die &Auml;nderung zu
- informieren, er erkennt die &Auml;nderung
- automatisch.</para>
-
- <para>Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden
- Monat ausf&uuml;hren lassen wollen, ist es wahrscheinlich
- einfacher, wenn Sie entsprechende Shell-Scripte in
- <filename>/usr/local/etc/periodic</filename> ablegen.
- Diese werden dann von &man.periodic.8; zusammen mit den
- anderen regelm&auml;&szlig;igen T&auml;tigkeiten
- ausgef&uuml;hrt.</para>
-
- <para>Der eigentliche Grund f&uuml;r den Fehler ist die
- Tatsache, da&szlig; die crontab des Systems ein
- zus&auml;tzliches Feld enth&auml;lt; dieses Feld gibt an,
- mit welcher Benutzerkennung der Befehl ausgef&uuml;hrt
- werden soll. In der mitgelieferten crontab ist das bei
- allen Eintr&auml;gen die Benutzerkennung
- <username>root</username>. Wenn diese Datei als die
- crontab des Benutzers <username>username</username> (die
- <emphasis>nicht</emphasis> mit der crontab des Systems
- identisch ist) verwendet wird, h&auml;lt &man.cron.8; die
- Zeichenkette <literal>root</literal> f&uuml;r den Namen
- des zu startenden Programmes, aber dieses Programm gibt es
- nicht.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="rcconf-readonly">
- <para>Ich habe einen Fehler in der
- <filename>rc.conf</filename> oder einer der anderen
- Dateien f&uuml;r den Systemstart und jetzt kann ich sie
- nicht &auml;ndern, weil das Dateisystem
- <quote>read-only</quote> ist. Was kann ich tun?</para>
- </question>
-
- <answer>
- <para>Wenn Sie aufgefordert werden, den Pfadnamen der Shell
- einzugeben, dr&uuml;cken Sie einfach
- <literal>ENTER</literal>. Geben Sie danach <command>mount
- /</command> ein, um das root Dateisystem im
- Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich
- auch <command>mount -a -t ufs</command> ausf&uuml;hren
- m&uuml;ssen, um das Dateisystem mit Ihrem Lieblingseditor
- zu mounten. Wenn Ihr Lieblingseditor auf einem
- Netzwerklaufwerk liegt, m&uuml;ssen Sie entweder das
- Netzwerk von Hand konfigurieren oder einen Editor
- benutzen, der auf einem lokalen Laufwerk vorhanden ist,
- z.B. &man.ed.1;.</para>
-
- <para>Wenn Sie einen bildschirmorientierten Editor wie zum
- Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen,
- werden Sie auch den Befehl <command>export
- TERM=cons25</command> ausf&uuml;hren m&uuml;ssen, damit
- diese Editoren die richtigen Einstellungen aus der
- Datenbank &man.termcap.5; &uuml;bernehmen.</para>
-
- <para>Sobald Sie diese Schritte ausgef&uuml;hrt, k&ouml;nnen
- Sie den Fehler in der <filename>/etc/rc.conf</filename>
- ganz normal beheben. Die Fehlermeldungen, die Ihnen
- unmittelbar nach den Startmeldungen des Kernels angezeigt
- wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler
- melden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-dos">
- <para>Wie mounte ich eine erweiterte DOS-Partition?</para>
- </question>
-
- <answer>
- <para>Die erweiterten DOS-Partitionen befinden sich hinter
- ALLEN prim&auml;ren Partitionen. Wenn sich zum Beispiel
- eine Partition <quote>E</quote> als sekund&auml;re
- DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet,
- m&uuml;ssen Sie die speziellen Dateien f&uuml;r
- <quote>Slice 5</quote> im Verzeichnis
- <filename>/dev</filename> erstellen und dann
- <filename>/dev/da1s5</filename> mouten:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV da1s5</userinput>
-&prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-foreign-fs">
- <para>Kann ich andere fremde Dateisysteme unter FreeBSD
- mounten?</para>
- </question>
-
- <answer>
- <para><literal>Digital UNIX</literal>-UFS-CDROMs k&ouml;nnen
- unter FreeBSD direkt gemountet werden. Das Mounten von
- Partitionen von Digital UNIX und anderen Systemen, die UFS
- unterst&uuml;tzen, k&ouml;nnte schwieriger sein,
- abh&auml;ngig von den Details der Plattenpartitionierung
- des betreffenden Betriebssystems.</para>
-
- <para><literal>Linux</literal>: 2.2 und sp&auml;tere
- unterst&uuml;tzen <literal>ext2fs</literal>-Partitionen.
- Unter &man.mount.ext2fs.8; finden Sie weitere
- Informationen.</para>
-
- <para><literal>NT</literal>: Es gibt einen NTFS-Treiber, der
- nur Lesezugriffe gestattet. Weitere Informationen finden
- Sie im Tutorium von Mark Ovens unter <ulink
- URL="http://ukug.uk.freebsd.org/~mark/ntfs_install.html">http://ukug.uk.freebsd.org/~mark/ntfs_install.html</ulink>.</para>
-
- <para>F&uuml;r weitere Informationen zu diesem Thema
- w&auml;ren wir sehr dankbar.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nt-bootloader">
- <para>Wie kann ich den NT-Loader zum Booten von FreeBSD
- verwenden?</para>
- </question>
-
- <answer>
- <para>Diese Prozedur unterscheidet sich f&uuml;r die Systeme
- 2.2.x and 3.x (mit dem dreistufigen Bootproze&szlig;)
- geringf&uuml;gig.</para>
-
- <para>Das grunds&auml;tzliche Vorgehen besteht darin,
- da&szlig; Sie den ersten Sektor Ihrer eigentlichen
- FreeBSD-Rootpartition in eine Datei auf der
- DOS/NT-Partition kopieren. Angenommen, sie nennen die
- Datei etwa <filename>c:\bootsect.bsd</filename> (durch
- <filename>c:\bootsect.dos</filename> inspiriert), dann
- k&ouml;nnen Sie die Datei <filename>c:\boot.ini</filename>
- etwa wie folgt editieren:</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>Bei 2.2.x-Systemen wird f&uuml;r diese Prozedur
- angenommen, da&szlig; DOS, NT, FreeBSD oder was auch
- immer, in den entsprechenden Partitionen auf
- <emphasis>derselben</emphasis> Platte installiert wurden.
- In meinem Fall befinden sich DOS &amp; NT auf der ersten
- fdisk-Partition und FreeBSD in der zweiten.
- Au&szlig;erdem habe ich FreeBSD so installiert, da&szlig;
- es von seiner Partition bootet, und
- <emphasis>nicht</emphasis> vom MBR.</para>
-
- <para>Mounten Sie eine DOS-formatierte Diskette (falls Sie
- nach NTFS gewechselt haben) oder die FAT-Partition z.B.
- unter <filename>/mnt</filename>.</para>
-
- <screen>
-&prompt.root; <userinput>dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1</userinput>
- </screen>
-
- <para>Rebooten Sie mit DOS oder NT. Benutzer von NTFS
- kopieren nun die Dateien <filename>bootsect.bsd</filename>
- und/oder <filename>bootsect.lnx</filename> von der
- Diskette nach <filename>C:\</filename>. &Auml;ndern Sie
- die Attribute (Rechte) von <filename>boot.ini</filename>
- mit:</para>
-
- <screen>
-<prompt>C:\&gt;</prompt>attrib -s -r c:\boot.ini
- </screen>
-
- <para>Editieren Sie nun die Datei und f&uuml;gen Sie die
- entsprechenden Eintr&auml;ge aus dem obigen
- <filename>boot.ini</filename>-Beispiel hinzu und setzen
- dann wieder die alten Attribute:</para>
-
- <screen>
-<prompt>C:\&gt;</prompt>attrib +s +r c:\boot.ini
- </screen>
-
- <para>Falls FreeBSD vom MBR bootet, restaurieren Sie den MBR
- mit dem DOS-Befehl <command>fdisk</command>, nachdem Sie
- FreeBSD so umkonfiguriert haben, da&szlig; es von seiner
- Partition bootet.</para>
-
- <para>F&uuml;r die FreeBSD-Systeme 3.x ist die Prozedur
- etwas einfacher.</para>
-
- <para>Falls FreeBSD auf derselben Platte, wie die
- NT-Bootpartition installiert ist, kopieren Sie einfach
- <filename>/boot/boot1</filename> nach
- <filename>C:\BOOTSECT.BSD</filename>. Falls FreeBSD auf
- einer anderen Platte installiert ist, wird
- <filename>/boot/boot1</filename> nicht funktionieren; Sie
- brauchen in diesem Fall
- <filename>/boot/boot0</filename>.</para>
-
- <para>
- <warning>
- <para>SIE D&Uuml;RFEN AUF GAR KEINEN FALL EINFACH
- <filename>/boot/boot0</filename> STATT
- <filename>/boot/boot1</filename> KOPIEREN. WENN SIE
- DAS DOCH TUN SOLLTEN, WIRD IHRE PARTITIONSTABELLE
- &Uuml;BERSCHRIEBEN UND IHR RECHNER WIRD NICHT MEHR
- STARTEN!</para>
- </warning>
- </para>
-
- <para><filename>/boot/boot0</filename> mu&szlig; mit
- sysinstall installiert werden. W&auml;hlen Sie dazu den
- FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie
- einen Bootmanager installieren wollen. Dieser Schritt ist
- notwendig, weil <filename>/boot/boot0</filename> eine
- leere Partitionstabelle enth&auml;lt, die von sysinstall
- ausgef&uuml;llt wird, bevor
- <filename>/boot/boot0</filename> in den MBR kopiert
- wird.</para>
-
- <para>Wenn der Bootmanager von FreeBSD gestartet wird, merkt
- er sich das zuletzt gestartet Betriebssystem, indem er
- dessen Partition als aktiv markiert. Danach kopiert er
- sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also
- einfach <filename>/boot/boot0</filename> nach
- <filename>C:\BOOTSECT.BSD</filename> kopieren, w&uuml;rde
- der Bootmanager eine leere Partitionstabelle (mit einem
- als <quote>aktiv</quote> markiertem Eintrag) in den MBR
- kopieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="lilo-bootloader">
- <para>Wie boote ich FreeBSD und Linux mit LILO?</para>
- </question>
-
- <answer>
- <para>Falls sich FreeBSD und Linux auf derselben Platte
- befinden, folgen Sie einfach den Installationsanweisungen
- von LILO zum booten eines Nicht-Linux-Betriebssystems.
- Ganz knapp sind dies:</para>
-
- <para>Booten Sie Linux und f&uuml;gen Sie die folgenden
- Zeilen in die Datei <filename>/etc/lilo.conf</filename>
- ein:</para>
-
- <programlisting>
-other=/dev/hda2
-table=/dev/hda
-label=FreeBSD
- </programlisting>
-
- <para>(hierbei wird angenommen, da&szlig; Ihre
- FreeBSD-Partition Linux unter
- <filename>/dev/hda2</filename> bekannt ist; &auml;ndern
- Sie dies entsprechend Ihren Einstellungen). F&uuml;hren
- Sie nun als <username>root</username> den Befehl
- <command>lilo</command> aus und Sie sind fertig.</para>
-
- <para>Falls FreeBSD sich auf einer anderen Platte befindet,
- m&uuml;ssen Sie <literal>loader=/boot/chain.b</literal> zu
- den LILO-Angaben hinzuf&uuml;gen. Zum Beispiel:</para>
-
- <programlisting>
-other=/dev/dab4
-table=/dev/dab
-loader=/boot/chain.b
-label=FreeBSD
- </programlisting>
-
- <para>In einigen F&auml;llen k&ouml;nnte es sein, da&szlig;
- Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer
- angeben m&uuml;ssen, um von der zweiten Platte booten zu
- k&ouml;nnen. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum
- Beispiel als BIOS-Platte 1 erkannt wird, m&uuml;ssen Sie
- am Prompt des FreeBSD-Bootloaders eingeben:</para>
-
- <screen>
-Boot: <userinput>1:da(0,a)/kernel</userinput>
- </screen>
-
- <para>Seit Version 2.2.5 k&ouml;nnen Sie &man.boot.8; so
- konfigurieren, da&szlig; das beim Booten automatisch
- geschieht.</para>
-
- <para>Das <ulink
- URL="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD
- mini-HOWTO</ulink> ist ein guter Ratgeber bei Fragen zur
- Interaktion von FreeBSD und Linux.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="booteasy-loader">
- <para>Wie boote ich FreeBSD und Linux mit BootEasy?</para>
- </question>
-
- <answer>
- <para>Installieren Sie LILO am Anfang Ihrer
- Linux-Bootpartition, anstatt im Master Boot Record. Sie
- k&ouml;nnen LILO dann von BootEasy aus booten.</para>
-
- <para>Wenn Sie Windows-95 und Linux benutzen, wird das
- ohnehin empfohlen, um es einfacher zu machen, Linux wieder
- zu booten, wenn es n&ouml;tig werden sollte, da&szlig; Sie
- Windows95 neu installieren (Windows95 ist ein
- eifers&uuml;chtiges Betriebssystem, das kein anderes
- Betriebssystem im Master Boot Sektor duldet).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dangerously-dedicated">
- <para>Gef&auml;hrdet eine <quote>dangerously
- dedicated</quote> Festplatte meine Gesundheit?</para>
- </question>
-
- <answer>
- <para><anchor id="dedicate">Die Installationsprozedur bietet
- Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu
- partitionieren. Die Standardmethode macht sie kompatibel
- zu anderen Betriebssystemen auf derselben Maschine, indem
- fdisk-Tabelleneintr&auml;ge (unter FreeBSD
- <quote>slices</quote> genannt) mit einem FreeBSD-Eintrag,
- in dem eigene Partitionen untergebracht werden, benutzt
- werden. Optional kann ausgew&auml;hlt werden, ob ein
- Boot-Selektor installiert werden soll, um zwischen den
- m&ouml;glichen Betriebssystemen auf der/den Platte(n)
- wechseln zu k&ouml;nnen. Bei der zweiten Methode wird die
- gesamte Platte f&uuml;r FreeBSD genutzt und nicht
- versucht, kompatibel zu anderen Betriebssystemen zu
- sein.</para>
-
- <para>Nun, warum wird es <quote>gef&auml;hrlich</quote>
- genannt? Eine Platte in diesem Modus enth&auml;lt nichts,
- was von normalen PC-Hilfsprogrammen als g&uuml;ltige
- fdisk-Tabelle betrachtet werden w&uuml;rde. Abh&auml;ngig
- von der Qualit&auml;t ihres Designs werden sie sich bei
- Ihnen beschweren, sobald sie mit einer solchen Platte in
- Kontakt kommen, oder noch schlimmer, sie k&ouml;nnten den
- Bootstrap von FreeBSD besch&auml;digen, ohne Sie zu fragen
- oder darauf hinzuweisen. Hinzu kommt, da&szlig; vom
- Layout von <quote>dangerously dedicated</quote> Platten
- bekannt ist, da&szlig; es viele BIOSe verwirrt,
- einschlie&szlig;lich solcher von AWARD (wie es z.B. im HP
- Netserver oder Micronics-Systemen, sowie vielen anderen zu
- finden ist) und Symbios/NCR (f&uuml;r die bekannte
- 53C8xx-Reihe von SCSI-Controllern). Dies ist keine
- vollst&auml;ndige Liste - es gibt weitere. Symptome
- f&uuml;r diese Verwirrung sind <quote>read
- error</quote>-Meldungen, die vom FreeBSD-Bootstrap
- ausgegeben werden, wenn es sich selbst nicht finden kann,
- sowie Systemabst&uuml;rze beim Booten.</para>
-
- <para>Warum gibt es diesen Modus dann &uuml;berhaupt? Es
- spart ein paar kByte an Plattenplatz und kann echte
- Probleme verursachen, die zu einer Neuinstallation
- f&uuml;hren. Die Urspr&uuml;nge des <quote>Dangerously
- dedicated</quote> Modus liegen in der Absicht, eines der
- h&auml;ufigsten Probleme, das Erstinstallierer von FreeBSD
- plagt, zu verhindern - die BIOS-Werte f&uuml;r die
- <quote>Geometrie</quote> einer Festplatte auf der
- Festplatte selbst anzupassen.</para>
-
- <para><quote>Geometrie</quote> ist ein veraltetes Konzept,
- das aber immer noch die Grundlage f&uuml;r die Interaktion
- zwischen dem PC-BIOS und den Festplatten ist. Wenn das
- Installationsprogramm von FreeBSD Slices erstellt,
- mu&szlig; es sich die Lage dieser Slices auf der
- Festplatte in einer Art merken, die damit
- &uuml;bereinstimmt, wie das BIOS erwartet, sie zu finden.
- Wenn das falsch geschieht, werden Sie nicht in der Lage
- sein, zu booten.</para>
-
- <para>Durch den <quote>Dangerously dedicated</quote> Modus
- wird versucht, dies zu umgehen, indem das Problem
- vereinfacht wird. In einigen F&auml;llen klappt das zwar,
- aber er ist eher als allerletzter Ausweg gedacht - in 99
- von 100 F&auml;llen gibt es bessere M&ouml;glichkeiten,
- das Problem zu l&ouml;sen.</para>
-
- <para>Wie vermeiden Sie also die Notwendigkeit zum
- <quote>DD</quote> Modus, wenn Sie installieren? Beginnen
- Sie, indem Sie sich notieren, welche Geometrie das BIOS
- f&uuml;r Ihre Platten benutzt. Sie k&ouml;nnen erreichen,
- da&szlig; der Kernel sie beim Booten ausgibt, indem Sie
- <option>-v</option> an der Eingabeaufforderung
- <literal>boot:</literal> angeben, oder <command>boot
- -v</command> im Loader verwenden. Kurz bevor das
- Installationprogramm startet, wird der Kernel eine Liste
- mit den BIOS-Geometrien ausgeben. Keine Panik - warten
- Sie, bis das Installationsprogramm gestartet wurde und
- benutzen Sie Scrollback, um die Zahlen zu lesen.
- Typischerweise befinden sich die BIOS-Platten in derselben
- Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst
- IDE, dann SCSI.</para>
-
- <para>Wenn Sie Ihre Festplatte in Slices unterteilen,
- &uuml;berpr&uuml;fen Sie, ob die Plattengeometrie, die im
- FDISK-Menue angegeben ist, korrekt ist (d.h. mit den
- Einstellungen im BIOS &uuml;bereinstimmen). Falls die
- Werte nicht stimmen, benutzen Sie <literal>g</literal>, um
- sie zu korrigieren. Diese Schritte sind n&ouml;tig, wenn
- sich absolut nichts auf der Festplatte befindet, oder,
- wenn die Festplatte vorher in einem anderen System benutzt
- worden ist. Beachten Sie, da&szlig; dies nur f&uuml;r die
- Festplatte n&ouml;tig ist, von der Sie booten wollen. Mit
- weiteren vorhandenen Platten wird FreeBSD sich problemlos
- zurechtfinden.</para>
-
- <para>Wenn Sie es geschafft haben, da&szlig; das BIOS und
- FreeBSD in der Festplattengeometrie &uuml;bereinstimmen,
- dann sind Ihre Probleme ziemlich sicher vor&uuml;ber -
- ohne, da&szlig; es n&ouml;tig gewesen w&auml;re, den
- <quote>DD</quote>-Modus zu benutzen. Falls sie jedoch
- immer noch mit der gef&uuml;rchteten <quote>read
- error</quote>-Meldung begr&uuml;&szlig;t werden sollten,
- wenn Sie versuchen, zu booten, wird es Zeit, da&szlig; Sie
- Ihre Finger kreuzen und es einfach versuchen - es gibt
- nichts mehr zu verlieren.</para>
-
- <para>Um eine <quote>dangerously dedicated</quote>
- Festplatte wieder f&uuml;r einen normalen PC brauchbar zu
- machen, gibt es zwei M&ouml;glichkeiten. Die erste ist,
- ausreichend viele NULL-Bytes in den MBR zu schreiben, um
- irgendwelche nachfolgenden Installation glauben zu machen,
- da&szlig; es sich um eine leere Festplatte handelt. Sie
- k&ouml;nnen das zum Beispiel so tun:</para>
-
- <screen>
-&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput>
- </screen>
-
- <para>Alternativ installiert der undokumentierte
- DOS-Befehl</para>
-
- <screen>
-<prompt>C:\&gt;</prompt> <userinput>fdisk /mbr</userinput>
- </screen>
-
- <para>einen neuen Master-Boot-Record, d.h. der BSD-Bootstrap
- wird zest&ouml;rt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="add-swap-space">
- <para>Wie kann ich den Swap-Bereich
- vergr&ouml;&szlig;ern?</para>
- </question>
-
- <answer>
- <para>Der beste Weg ist, Ihre Swap-Partition zu
- vergr&ouml;&szlig;ern, oder sie nutzen diese bequeme
- Ausrede, um eine weitere Festplatte einzubauen. Eine
- gebr&auml;uchliche Faustregel ist, einen etwa doppelt so
- gro&szlig;en Swap-Bereich zu nutzen, wie Hauptspeicher
- vorhanden ist. Falls Sie jedoch nur &uuml;ber sehr wenig
- Hauptspeicher verf&uuml;gen, werden Sie wahrscheinlich
- einen gr&ouml;&szlig;eren Swap-Bereich konfigurieren
- wollen. Es ist auch sinnvoll, gen&uuml;gend Swap-Bereich
- im Hinblick auf geplante zuk&uuml;nftige
- Hauptspeichererweiterungen zu konfigurieren, damit Sie
- sich sp&auml;ter nicht mit der Konfiguration Ihres
- Swap-Bereiches herum&auml;rgern m&uuml;ssen.</para>
-
- <para>Das Hinzuf&uuml;gen eines Swap-Bereichs auf einer
- separaten Platte, ist effizienter, als einfach einen
- Swap-Bereich auf derselben Platte hinzuzuf&uuml;gen. Wenn
- Sie zum Beispiel Quellcode auf einer Platte kompilieren
- und der Swap-Bereich sich auf einer anderen Platte
- befindet, geschieht das viel schneller, als wenn beides,
- Swapping und Kompilierung auf derselben Platte stattfinden
- w&uuml;rden. Das trifft ganz besonders auf SCSI-Platten
- zu.</para>
-
- <para>Wenn Sie mehrere Festplatten besitzen, lohnt es sich
- f&uuml;r gew&ouml;hnlich, auf jeder einzelnen einen
- Swap-Bereich zu konfigurieren, auch, wenn das bedeutet,
- einen Swap-Bereich auf einer bereits verwendeten Platte
- einzurichten. Typischerweise sollte jede schnelle Platte
- in Ihrem System mit etwas Swap-Bereich konfiguriert
- werden. FreeBSD unterst&uuml;tzt standardm&auml;&szlig;ig
- bis zu vier interleaved Swap-Ger&auml;te. Bei der
- Konfiguration mehrerer Swap-Bereiche werden sie
- grunds&auml;tzlich alle mit derselben Gr&ouml;&szlig;e
- anlegen wollen, aber manchmal verwenden Benutzer eine
- gr&ouml;&szlig;ere prim&auml;re Swap-Partition, um einen
- Hauptspeicherauszug vom Kernel darin aufnehmen zu
- k&ouml;nnen. Ihre prim&auml;re Swap-Partition mu&szlig;
- mindestens so gro&szlig; wie der Hauptspeicher sein, um
- einen Hauptspeicherauszug vom Kernel aufnehmen zu
- k&ouml;nnen.</para>
-
- <para>IDE-Laufwerke k&ouml;nnen keinen gleichzeitigen
- Zugriff auf beide Laufwerke auf demselben Kanal zuzulassen
- (FreeBSD unterst&uuml;tzt nicht den Modus 4, also ist
- jeglicher Lese-/Schreibzugriff auf IDE-Platten
- <quote>programmiert</quote>). Ich w&uuml;rde dennoch
- empfehlen, Ihren Swap-Bereich auf einem separaten Laufwerk
- anzulegen; die Laufwerke sind so g&uuml;nstig, da&szlig;
- es nicht lohnt, sich dar&uuml;ber Gedanken zu
- machen.</para>
-
- <para>Swapping &uuml;ber NFS ist nur zu empfehlen, wenn Sie
- keine lokale Platte zum Swappen besitzen. Bei
- FreeBSD-Versionen vor 4.x ist Swapping &uuml;ber NFS
- langsam und ineffizient, aber erstaunlich schnell bei
- Versionen gr&ouml;&szlig;er oder gleich 4.0. Dennoch wird
- es durch die verf&uuml;gbare Bandbreite des Netzes
- begrenzt sein und belastet den NFS-Server
- zus&auml;tzlich.</para>
-
- <para>Hier ist ein Beispiel f&uuml;r einen VN-Swap-Bereich
- von 64MB (<filename>/usr/swap0</filename>, Sie k&ouml;nnen
- nat&uuml;rlich jeden beliebigen Namen benutzen).</para>
-
- <para>Stellen Sie sicher, da&szlig; Ihr Kernel mit der
- Zeile</para>
-
- <programlisting>
-pseudo-device vn 1 #Vnode driver (turns a file into a device)
- </programlisting>
-
- <para>in Ihrer Konfigurationsdatei erstellt worden ist. Der
- Standard-Kernel enth&auml;lt sie bereits.</para>
-
- <orderedlist>
- <listitem>
- <para>Erstellen Sie ein vn-Ger&auml;t</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh ./MAKEDEV vn0</userinput>
- </screen>
- </listitem>
-
- <listitem>
- <para>Erstellen Sie eine Swap-Datei
- (<filename>/usr/swap0</filename>)</para>
-
- <screen>
-&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput>
- </screen>
- </listitem>
-
- <listitem>
- <para>Setzen Sie geeignete Zugriffsrechte f&uuml;r
- (<filename>/usr/swap0</filename>)</para>
-
- <screen>
-&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput>
- </screen>
- </listitem>
-
- <listitem>
- <para>Aktivieren Sie die Swapdatei in
- <filename>/etc/rc.conf</filename></para>
-
- <programlisting>
-swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Rebooten Sie die Maschine</para>
- </listitem>
- </orderedlist>
-
- <para>Um die Swapdatei direkt zu aktivieren, geben Sie
- folgendes ein:</para>
-
- <screen>
-&prompt.root; <userinput>vnconfig -ce /dev/vn0c /usr/swap0 swap</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="printer-setup">
- <para>Ich habe Probleme, meinen Drucker
- einzurichten.</para>
- </question>
-
- <answer>
- <para>Bitte sehen Sie im Handbucheintrag &uuml;ber Drucker
- nach. Es sollte die meisten Ihrer Probleme behandeln.
- Lesen sie den <ulink
- URL="../handbook/printing.html">Handbucheintrag &uuml;ber
- Drucker</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="keyboard-mappings">
- <para>Die Tastatureinstellungen f&uuml;r mein System stimmen
- nicht.</para>
- </question>
-
- <answer>
- <para>Das Programm kbdcontrol bietet eine Option zum Laden
- einer Tastaturzuordnungsdatei. Unter
- <filename>/usr/share/syscons/keymaps</filename> befinden
- sich einige Tastaturzuordnungsdateien. W&auml;hlen Sie
- die zu Ihrem System passende aus und laden Sie
- sie:</para>
-
- <screen>
-&prompt.root; <userinput>kbdcontrol -l uk.iso</userinput>
- </screen>
-
- <para>Die beiden Erweiterungen
- <filename>/usr/share/syscons/keymaps</filename> und
- <filename>.kbd</filename> werden von &man.kbdcontrol.1;
- angenommen.</para>
-
- <para>Dies kann in der Datei
- <filename>/etc/sysconfig</filename> (oder
- <filename>rc.conf</filename>) eingestellt werden. Lesen
- Sie die entsprechenden Hinweise in dieser Datei.</para>
-
- <para>Seit 2.0.5-RELEASE befindet sich alles, was mit
- Textfonts und Tastaturzuordnung zu tun hat im Verzeichnis
- <filename>/usr/share/examples/syscons</filename>.</para>
-
- <para>Die folgenden Zuordnungen werden derzeit
- unterst&uuml;tzt:</para>
-
- <itemizedlist>
- <listitem>
- <para>Belgisch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Brasilianische Tastatur 275 Codeseite 850</para>
- </listitem>
-
- <listitem>
- <para>Brasilianische Tastatur 275 ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>D&auml;nisch Codeseite 865</para>
- </listitem>
-
- <listitem>
- <para>D&auml;nisch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Franz&ouml;sisch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Deutsch Codeseite 850</para>
- </listitem>
-
- <listitem>
- <para>Deutsch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Italienisch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Japanisch 106</para>
- </listitem>
-
- <listitem>
- <para>Japanisch 106x</para>
- </listitem>
-
- <listitem>
- <para>Lateinamerikanisch</para>
- </listitem>
-
- <listitem>
- <para>Norwegisch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Polnisch ISO-8859-2 (f&uuml;r
- Programmierer)</para>
- </listitem>
-
- <listitem>
- <para>Russisch Codeseite 866 (alternativ)</para>
- </listitem>
-
- <listitem>
- <para>Russisch koi8-r (shift)</para>
- </listitem>
-
- <listitem>
- <para>Russisch koi8-r</para>
- </listitem>
-
- <listitem>
- <para>Spanisch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Schwedisch Codeseite 850</para>
- </listitem>
-
- <listitem>
- <para>Schwedisch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Schweizer Deutsch ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Vereinigtes K&ouml;nigreich Codeseite 850</para>
- </listitem>
-
- <listitem>
- <para>Vereinigtes K&ouml;nigreich ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Vereinigte Staaten von Amerika ISO-8859-1</para>
- </listitem>
-
- <listitem>
- <para>Vereinigte Staaten von Amerika dvorak</para>
- </listitem>
-
- <listitem>
- <para>Vereinigte Staaten von Amerika dvorakx</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-resources">
- <para>Beim Start des Systems erhalte ich Meldungen wie
- <errorname>unknown: &lt;PNP0303&gt; can't assign
- resources</errorname>.</para>
- </question>
-
- <answer>
- <para>Diese Meldungen werden durch Plug-and-Play Ger&auml;te
- erzeugt, f&uuml;r die der Kernel keine Treiber hat. Sie
- sind harmlos.</para>
-
- <para>Falls Sie sich von diesen Meldungen bel&auml;stigt
- f&uuml;hlen sollten, wird das FreeBSD Projekt ihre mit
- send-pr eingesandten Treiber gerne akzeptieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="user-quotas">
- <para>Die Benutzer-Quotas funktionieren nicht
- richtig.</para>
- </question>
-
- <answer>
- <orderedlist>
- <listitem>
- <para>Benutzen Sie keine Quotas f&uuml;r
- <filename>/</filename>,</para>
- </listitem>
-
- <listitem>
- <para>Erstellen Sie die Quotas-Datei in dem Dateisystem,
- f&uuml;r das die Quotas gelten sollen, z.B.:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Filesystem</entry>
-
- <entry>Quota file</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="inappropriate-ccd">
- <para>Was stimmt mit meinem ccd nicht?</para>
- </question>
-
- <answer>
- <para>Das Symptom hierf&uuml;r ist:</para>
-
- <screen>
-&prompt.root; <userinput>ccdconfig -C</userinput>
-ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
- </screen>
-
- <para>Das geschieht f&uuml;r gew&ouml;hnlich, wenn Sie
- versuchen, die Partitionen <literal>c</literal>, die
- standardm&auml;&szlig; vom Typ
- <literal>unbenutzt</literal> sind, zu verbinden. Der
- ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS.
- Editieren Sie den Plattenlabel der Platten, die Sie zu
- verkn&uuml;pfen versuchen und &auml;ndern Sie die Typen
- der Partitionen in <literal>4.2BSD</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ccd-disklabel">
- <para>Warum kann ich den Plattenlabel meines ccd nicht
- editieren?</para>
- </question>
-
- <answer>
- <para>Das Symptom hierf&uuml;r ist:</para>
-
- <screen>
-&prompt.root; <userinput>disklabel ccd0</userinput>
-(hier wird etwas vern&uuml;nftiges ausgegeben; versuchen wir nun, es zu editieren)
-&prompt.root; <userinput>disklabel -e ccd0</userinput>
-(editiern, speichern, beenden)
-disklabel: ioctl DIOCWDINFO: No disk label on disk;
-use "disklabel -r" to install initial label
- </screen>
-
- <para>Der Grund ist, da&szlig; der von ccd
- zur&uuml;ckgelieferte Plattenlabel ein
- <quote>vorget&auml;uschter</quote> ist, der sich nicht
- wirklich auf der Platte befindet. Sie k&ouml;nnen das
- Problem beheben, indem Sie ihn explizit
- zur&uuml;ckschreiben, wie z.B. hier:</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>
-(nun wird es funktionieren)
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sysv-ipc">
- <para>Unterst&uuml;tzt FreeBSD IPC-Grundfunktionen von
- System V?</para>
- </question>
-
- <answer>
- <para>Ja, FreeBSD unterst&uuml;tzt IPC im Stil von System V
- einschlie&szlig;lich gemeinsamen Speicher, Nachrichten und
- Semaphoren. Zur Aktivierung m&uuml;ssen Sie die folgenden
- Zeilen in Ihre Kernelkonfigurationsdatei
- einf&uuml;gen:</para>
-
- <programlisting>
-options SYSVSHM
-options SYSVSHM # enable shared memory
-options SYSVSEM # enable for semaphores
-options SYSVMSG # enable for messaging
- </programlisting>
-
- <para>
- <note>
- <para>Diese Variablen sind seit FreeBSD 3.2 schon im
- Standardkernel (<emphasis>GENERIC</emphasis>) gesetzt
- und sollte daher Beststandteil Ihres Systems
- sein.</para>
- </note>
- </para>
-
- <para>Kompilieren und installieren Sie einen neuen
- Kernel.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uucpmail">
- <para>Wie benutze ich sendmail zum Zustellen von Mails mit
- UUCP?</para>
- </question>
-
- <answer>
- <para>Die sendmail-Konfiguration, die mit FreeBSD
- ausgeliefert wird, ist f&uuml;r Sites geeignet, die direkt
- ans Internet angeschlossen sind. Sites, die ihre Mail per
- UUCP austauschen wollen, m&uuml;ssen eine andere
- sendmail-Konfigurationsdatei installieren.</para>
-
- <para>Die manuelle Bearbeitung von
- <filename>/etc/sendmail.cf</filename> ist nur etwas
- f&uuml;r Puristen. Sendmail Version 8 bietet die neue
- M&ouml;glichkeit der Generierung von Konfigurationsdateien
- &uuml;ber eine Vorverarbeitung mit <command>m4</command>,
- wobei die tats&auml;chliche, h&auml;ndische Konfiguration
- auf einer h&ouml;heren Abstraktionsstufe stattfindet. Sie
- sollten die Konfigurationsdateien unter
- <filename>/usr/src/usr.sbin/sendmail/cf</filename>
- benutzen.</para>
-
- <para>F&uuml;r den Fall, da&szlig; Sie Ihr System nicht mit
- dem kompletten Quellcode installiert haben, wurden die
- n&ouml;tigen Dateien zur Konfiguration von sendmail in
- einer separaten Quelldistribution f&uuml;r Sie extrahiert.
- Wenn Sie Ihre CD-ROM gemountet haben, m&uuml;ssen Sie die
- folgenden Schritte ausf&uuml;hren:</para>
-
- <screen>
-&prompt.root; <userinput>cd /cdrom/src</userinput>
-&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput>
- </screen>
-
- <para>Keine Panik, das sind nur ein paar hundert Kilobyte.
- Die Datei <filename>README</filename> im Verzeichnis
- <filename>cf</filename> kann zur grundlegenden
- Einf&uuml;hrung in die m4-Konfiguration dienen.</para>
-
- <para>Zur Zustellung &uuml;ber UUCP sind Sie am besten damit
- beraten, das <literal>mailertable</literal>-Feature zu
- nutzen. Es stellt eine Datenbank dar, auf deren Basis
- sendmail Entscheidungen zum Routing treffen kann.</para>
-
- <para>Zun&auml;chst m&uuml;ssen Sie Ihre
- <filename>.mc</filename>-Datei erstellen. Das Verzeichnis
- <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> ist
- die Basis f&uuml;r diese Dateien. Sehen Sie sich um, es
- gibt bereits einige Beispiele. Wenn Sie Ihre Datei
- <filename>foo.mc</filename> genannt haben, m&uuml;ssen Sie
- die folgenden Befehle ausf&uuml;hren, um sie in eine
- g&uuml;ltige <filename>sendmail.cf</filename> umzuwandeln,
- ist:</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/sendmail.cf</userinput>
- </screen>
-
- <para>Eine typische <filename>.mc</filename>-Datei
- k&ouml;nnte so aussehen:</para>
-
- <programlisting>
-include(`../m4/cf.m4')
-VERSIONID(`<replaceable>Your version number</replaceable>')
-OSTYPE(bsd4.4)
-
-FEATURE(nodns)
-FEATURE(nocanonify)
-FEATURE(mailertable)
-
-define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
-define(`UUCP_MAX_SIZE', 200000)
-
-MAILER(local)
-MAILER(smtp)
-MAILER(uucp)
-
-Cw <replaceable>your.alias.host.name</replaceable>
-Cw <replaceable>youruucpnodename.UUCP</replaceable>
- </programlisting>
-
- <para>Die Einstellungen <literal>nodns</literal> und
- <literal>nocanonify</literal> werden die Benutzung von DNS
- bei der Zustellung von Mails verhindern. Die Klausel
- <literal>UUCP_RELAY</literal> wird aus seltsamen
- Gr&uuml;nden ben&ouml;tigt - fragen Sie nicht, warum.
- Setzen Sie dort einfach den Namen eines Hosts ein, der in
- der Lage ist, Adressen mit der Pseudodom&auml;ne .UUCP zu
- behandeln; wahrscheinlich werden Sie dort den Relayhost
- Ihres ISP eintragen.</para>
-
- <para>Wenn Sie soweit sind, m&uuml;ssen Sie die Datei
- <filename>/etc/mailertable</filename> erzeugen. Hierzu
- wieder ein typisches Beispiel:</para>
-
- <programlisting>
-#
-# makemap hash /etc/mailertable.db &lt; /etc/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>Wie Sie sehen k&ouml;nnen, handelt es sich um einen
- Teil einer realen Datei. Die ersten drei Zeilen behandeln
- spezielle F&auml;lle, in denen an Dom&auml;nen adressierte
- Mails nicht &uuml;ber die Standard-Route versendet werden
- sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg
- <quote>abzuk&uuml;rzen</quote>. Die n&auml;chsten Zeilen
- behandeln Mails Rechner in der Domain, die im lokalen
- Ethernetz verwendet wird. Diese Mails k&ouml;nnen direkt
- per SMTP zugestellt werden. Schlie&szlig;lich werden die
- UUCP-Nachbarn in der Notation mit der Pseudodom&auml;ne
- .UUCP aufgef&uuml;hrt, um die Standardregeln mit
- <literal><replaceable>uucp-neighbour</replaceable>!<replaceable>recipient</replaceable></literal>
- zu &uuml;berschreiben. Die letzte Zeile besteht stets aus
- einem einzelnen Punkt, der als Ihr Universalgateway in die
- Welt dient. Alle Knoten hinter dem Schl&uuml;sselwort
- <literal>uucp-dom:</literal> m&uuml;ssen g&uuml;ltige
- UUCP-Nachbarn sein, was Sie mit dem Befehl
- <literal>uuname</literal> &uuml;berpr&uuml;fen
- k&ouml;nnen.</para>
-
- <para>Als Erinnerung daran, da&szlig; diese Datei in eine
- DBM-Datenbankdatei konvertiert werden mu&szlig;, bevor sie
- benutzt werden kann, sollte der Befehl hierzu als
- Kommentar am Anfang der mailertable plaziert werden. Sie
- m&uuml;ssen den Befehl jedesmal ausf&uuml;hren, wenn Sie
- Ihre Mailertable ge&auml;ndert haben.</para>
-
- <para>Abschlie&szlig;ender Hinweis: wenn Sie unsicher sind,
- ob bestimmte Mailrouten funktionieren, erinnern Sie sich
- an die Option <option>-bt</option> von sendmail. Sie
- startet sendmail im
- <emphasis>Adre&szlig;-Testmodus</emphasis>; geben Sie
- einfach <literal>0</literal>, gefolgt von der Adresse,
- f&uuml;r die Sie das Routing testen m&ouml;chten, ein.
- Die letzte Zeile nennt Ihnen den benutzten Mailagenten,
- den Zielhost, mit dem dieser Agent aufgerufen wird und die
- (ggfs. &uuml;bersetzte) Adresse. Verlassen Sie diesen
- Modus, indem Sie Control-D eingeben.</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>0 foo@interface-business.de</userinput>
-rewrite: ruleset 0 input: foo @ interface-business . de
-...
-rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \
-&lt; @ interface-business . de &gt;
-<prompt>&gt;</prompt> <userinput>^D</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ispmail">
- <para>Wie richte ich das Mailsystem konfigurieren, wenn ich
- eine W&auml;hlverbindung zum Internet habe?</para>
- </question>
-
- <answer>
- <para>Wenn Sie eine feste IP-Adresse haben, m&uuml;ssen Sie
- die Standardeinstellungen wahrscheinlich gar nicht
- &auml;ndern. Stellen Sie Ihren Hostnamen entsprechend
- Ihrem zugeordneten Internetnamen ein und sendmail
- &uuml;bernimmt das &uuml;brige.</para>
-
- <para>Wenn Sie eine dynamische IP-Adresse haben und eine
- <application>ppp</application>-W&auml;hlverbindung zum
- Internet benutzen, bekommen Sie wahrscheinlich eine
- Mailbox auf dem Mailserver Ihres ISPs zugeordnet. Lassen
- Sie uns annehmen, die Dom&auml;ne ihres ISPs sei <hostid
- role="domainname">myISP.com</hostid> und Ihr Benutzername
- <username>user</username>; au&szlig;erdem nehmen wir an,
- da&szlig; Sie Ihre Maschine <hostid
- role="fqdn">bsd.home</hostid> genannt haben und, da&szlig;
- Ihr ISP ihnen gesagt hat, da&szlig; Sie <hostid
- role="fqdn">relay.myISP.com</hostid> als Mail-Relayhost
- benutzen k&ouml;nnen.</para>
-
- <para>Um Mails aus Ihrer Mailbox abzuholen, m&uuml;ssen Sie
- einen entsprechenden Programm installieren.
- <application>Fetchmail</application> ist eine gute Wahl,
- weil es viele verschiedene Protokolle unterst&uuml;tzt.
- F&uuml;r gew&ouml;hnlich wird von Ihrem ISP POP3 zur
- Verf&uuml;gung gestellt werden. Falls sie sich daf&uuml;r
- entschieden haben, user-ppp zu nutzen, k&ouml;nnen Sie
- durch folgenden Eintrag in der Datei
- <filename>/etc/ppp/ppp.linkup</filename> Ihre Mails
- automatisch abholen lassen, wenn eine Verbindung zum Netz
- aufgebaut wird:</para>
-
- <programlisting>
-MYADDR:
- !bg su user -c fetchmail
- </programlisting>
-
- <para>Falls Sie (wie unten gezeigt)
- <application>sendmail</application> benutzen, um Mails an
- nicht-lokale Benutzer zu versenden, f&uuml;gen Sie den
- Befehl</para>
-
- <programlisting>
-!bg su user -c "sendmail -q"
- </programlisting>
-
- <para>nach dem oben gezeigten Eintrag ein. Das
- veranla&szlig;t <application>sendmail</application>, Ihre
- ausgehenden Mails zu verarbeiten, sobald eine Verbindung
- zum Internet aufgebaut wird.</para>
-
- <para>Ich nehme an, da&szlig; auf <hostid
- role="fqdn">bsd.home</hostid> ein Benutzer
- <username>user</username> existiert; erstellen Sie auf
- <hostid role="fqdn">bsd.home</hostid> im Heimatverzeichnis
- von <username>user</username> eine Datei
- <filename>.fetchmailrc</filename>:</para>
-
- <programlisting>
-poll myISP.com protocol pop3 fetchall pass MySecret;
- </programlisting>
-
- <para>Ich brauche wohl nicht zu erw&auml;hnen, da&szlig;
- diese Datei f&uuml;r niemandem au&szlig;er
- <username>user</username> lesbar sein sollte, weil sie das
- Passwort <literal>MySecret</literal> enth&auml;lt.</para>
-
- <para>Um Mails mit dem richtigen
- <literal>from:</literal>-Header zu versenden, m&uuml;ssen
- Sie <application>sendmail</application> mitteilen,
- da&szlig; es <literal>user@myISP.com</literal> und nicht
- <literal>user@bsd.home</literal> benutzen soll. Evtl.
- m&ouml;chten Sie auch, da&szlig;
- <application>sendmail</application> alle Mails &uuml;ber
- <hostid role="fqdn">relay.myISP.com</hostid> versendet, um
- eine schnellere &Uuml;bertragung von Mails zu
- gew&auml;hrleisten.</para>
-
- <para>Die folgende <filename>.mc</filename>-Datei sollte
- ausreichen:</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(`myISP.com')dnl
-FEATURE(allmasquerade)dnl
-FEATURE(masquerade_envelope)dnl
-FEATURE(nocanonify)dnl
-FEATURE(nodns)dnl
-define(`SMART_HOST', `relay.myISP.com')
-Dmbsd.home
-define(`confDOMAIN_NAME',`bsd.home')dnl
-define(`confDELIVERY_MODE',`deferred')dnl
- </programlisting>
-
- <para>Im vorherigen Abschnitt finden Sie Details dazu, wie
- Sie aus dieser <filename>.mc</filename>-Datei eine Datei
- <filename>sendmail.cf</filename> erstellen k&ouml;nnen.
- Vergessen Sie auch nicht,
- <application>sendmail</application> neu zu starten,
- nachdem Sie <filename>sendmail.cf</filename>
- ver&auml;ndert haben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="toor-account">
- <para>Woher kommt dieser Benutzer <username>toor</username>
- mit UID 0? Ist mein System gehackt worden?</para>
- </question>
-
- <answer>
- <para>Keine Panik. <username>toor</username> ist ein
- <quote>alternativer</quote> Account f&uuml;r den
- Super-User (wenn man root r&uuml;ckw&auml;rts schreibt,
- erh&auml;lt man toor). Fr&uuml;her wurde er nur erzeugt,
- wenn die Shell &man.bash.1; installiert wurde, heute wird
- er auf jeden Fall erzeugt. Dieser Account ist f&uuml;r
- die Verwendung mit einer alternativen Shell vorgesehen;
- damit ist es nicht mehr erforderlich, die Shell von
- <username>root</username> zu &auml;ndern. Dies ist
- wichtig, wenn eine Shell verwendet wird, die nicht zum
- Lieferumfang von FreeBSD geh&ouml;rt, zum Beispiel aus
- einem Port oder einem Package. Diese Shells werden in der
- Regel in <filename>/usr/local/bin</filename> installiert
- und dieses Verzeichnis liegt standardm&auml;&szlig;ig auf
- einem anderem Filesystem. Wenn die Shell von
- <username>root</username> in
- <filename>/usr/local/bin</filename> liegt und
- <filename>/usr</filename> (oder das Filesystem, auf dem
- <filename>/usr/local/bin</filename> liegt) nicht gemountet
- werden kann, kann sich <username>root</username> nicht
- mehr einloggen, um das Problem zu beheben. Es ist
- allerdings m&ouml;glich, das System zu rebooten und das
- Problem im Single-User Modus zu l&ouml;sen, da man hier
- gefragt wird, welche Shell benutzt werden soll.</para>
-
- <para>Einige Anwender benutzen <username>toor</username> mit
- einer alternativen Shell f&uuml;r die t&auml;gliche Arbeit
- und nutzen <username>root</username> (mit der
- Standard-Shell) f&uuml;r den Single-User Modus und
- f&uuml;r Notf&auml;lle. Standardm&auml;&szlig;ig kann man
- sich nicht als <username>toor</username> anmelden, da der
- Account kein g&uuml;ltiges Pa&szlig;wort hat; Sie
- m&uuml;ssen sich also als <username>root</username>
- anmelden und ein Pa&szlig;wort f&uuml;r
- <username>toor</username> setzen, wenn Sie diesen Account
- benutzen wollen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="forgot-root-pw">
- <para>Hilfe! Ich habe das Rootpasswort vergessen!</para>
- </question>
-
- <answer>
- <para>Keine Panik! Starten Sie Ihr System einfach neu und
- geben Sie <userinput>boot -s</userinput> an der
- Eingabeaufforderung Boot: ein (bei FreeBSD-Versionen vor
- 3.2 nur <userinput>-s</userinput>), um in den
- Einzelbenutzermodus zu gelangen. Bei der Frage danach,
- welche Shell benutzt werden soll, dr&uuml;cken Sie einfach
- ENTER. Nun erscheint die Eingabeaufforderung
- &prompt.root;. Geben Sie <command>mount -u /</command>
- ein, um Ihr Root-Dateisystem f&uuml;r Lese- und
- Schreibzugriffe zu remounten und dann <command>mount
- -a</command>, um alle Dateisysteme zu remounten. Mit
- <command>passwd root</command> k&ouml;nnen Sie das
- Rootpasswort &auml;ndern und mit <command>exit</command>
- k&ouml;nnen Sie mit dem Booten fortfahren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="CAD-reboot">
- <para>Wie verhindere ich, da&szlig; das System mit
- Control-Alt-Delete rebootet werden kann?</para>
- </question>
-
- <answer>
- <para>Falls Sie syscons (den Standard-Treiber f&uuml;r die
- Konsole) unter FreeBSD ab 2.2.7-RELEASE benutzen,
- erstellen und installieren Sie einen neuen Kernel mit der
- Zeile</para>
-
- <programlisting>options SC_DISABLE_REBOOT</programlisting>
-
- <para>in der Konfigurationsdatei. Falls Sie den
- Konsolen-Treiber PCVT unter FreeBSD seit 2.2.5-RELEASE
- benutzen, benutzen Sie stattdessen die folgende
- Kernelkonfigurationszeile:</para>
-
- <programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
-
- <para>Editieren Sie bei &auml;lteren Versionen von FreeBSD
- die Tastenzuordnungsdatei, die Sie f&uuml;r die Konsole
- verwenden und ersetzen Sie die Schl&uuml;sselworte
- <literal>boot</literal> durch <literal>nop</literal>. Die
- standard Tastenzuordnungsdatei hei&szlig;t
- <filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>.
- Es k&ouml;nnte sein, da&szlig; Sie
- <filename>/etc/rc.conf</filename> explizit instruieren
- m&uuml;ssen, diese Tastenzuordnungsdatei zu laden, um die
- &Auml;nderungen wirksam werden zu lassen. Falls Sie eine
- andere Tastenzuordnung f&uuml;r Ihr Land verwenden,
- m&uuml;ssen Sie nat&uuml;rlich diese editieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dos-to-unix-txt">
- <para>Wie &auml;ndere ich das Format von Textdateien von DOS
- nach UNIX?</para>
- </question>
-
- <answer>
- <para>Benutzen Sie einfach diesen Perl-Befehl:</para>
-
- <screen>
-&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput>
- </screen>
-
- <para>file ist/sind die zu verarbeitende(n) Datei(en). Die
- &Auml;nderungen erfolgen in der Originaldatei, die zuvor
- mit der Erweiterung .bak gesichert wird.</para>
-
- <para>Alternativ k&ouml;nnen Sie den Befehl
- <command>tr</command> benutzen:</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> ist die
- Datei, die den Text im DOS-Format enth&auml;lt und
- <replaceable>unix-file</replaceable> wird die konvertierte
- Ausgabe enthalten. Diese M&ouml;glichkeit k&ouml;nnte
- etwas schneller sein, als die Benutzung von Perl.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kill-by-name">
- <para>Wie beende ich Prozesse namentlich?</para>
- </question>
-
- <answer>
- <para>Benutzen Sie <command>killall</command>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="root-acl">
- <para>Warum nervt su mich damit, da&szlig; ich nicht in der
- ACL von <username>root</username> bin?</para>
- </question>
-
- <answer>
- <para>Der Fehler stammt vom verteilten
- Authentifizierungssystem Kerberos. Das Problem ist nicht
- ernsthaft, aber st&ouml;rend. Sie k&ouml;nnen entweder su
- mit der Option -K benutzen, oder Kerberos deinstallieren,
- wie in der n&auml;chsten Frage beschrieben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uninstall-kerberos">
- <para>Wie deinstalliere ich Kerberos?</para>
- </question>
-
- <answer>
- <para>Um Kerberos aus dem System zu entfernen, m&uuml;ssen
- Sie die bin-Distribution der von Ihnen benutzen RELEASE
- neu installieren. Wenn Sie die CDROM besitzen,
- k&ouml;nnen Sie sie mounten (wir nehmen an, unter /cdrom)
- und folgende Schritte ausf&uuml;hren:</para>
-
- <screen>
-&prompt.root; <userinput>cd /cdrom/bin</userinput>
-&prompt.root; <userinput>./install.sh</userinput>
- </screen>
-
- <para>Alternativ k&ouml;nnen Sie alle Zeilen mit
- "MAKE_KERBEROS" aus der
- <filename>/etc/make.conf</filename> entfernen und dann ein
- make world durchf&uuml;hren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="add-pty">
- <para>Wie f&uuml;ge ich Pseudo-Terminals zum System
- hinzu?</para>
- </question>
-
- <answer>
- <para>Wenn Sie viele Benutzer von telnet, ssh, X oder
- screens haben, k&ouml;nnte es sein, da&szlig; Ihnen die
- Pseudo-Terminals ausgehen. So f&uuml;gen Sie weitere
- hinzu:</para>
-
- <orderedlist>
- <listitem>
- <para>Erstellen und installieren Sie einen neuen Kernel
- mit der Zeile</para>
-
- <programlisting>
-pseudo-device pty 256
- </programlisting>
-
- <para>in der Konfigurationsdatei.</para>
- </listitem>
-
- <listitem>
- <para>F&uuml;hren Sie die Befehle</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV pty{1,2,3,4,5,6,7}</userinput>
- </screen>
-
- <para>aus, um 256 Ger&auml;teeintr&auml;ge f&uuml;r die
- neuen Terminals zu erstellen.</para>
- </listitem>
-
- <listitem>
- <para>Editieren Sie die Datei
- <filename>/etc/ttys</filename> und f&uuml;gen Sie
- Zeilen f&uuml;r jeden der 256 Terminals ein. Sie
- sollten so aussehen, wie die existierenden
- Eintr&auml;ge, also etwa so:</para>
-
- <programlisting>
-ttyqc none network
- </programlisting>
-
- <para>Die Reihenfolge der Buchstabenzuordnung lautet mit
- einem regul&auml;ren Ausdruck
- <literal>tty[pqrsPQRS][0-9a-v]</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Starten Sie das System mit dem neuen Kernel
- erneut, wenn Sie bereit sind.</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="create-snd0">
- <para>Ich kann das Ger&auml;t snd0 nicht erstellen!</para>
- </question>
-
- <answer>
- <para>Es gibt kein Ger&auml;t <devicename>snd</devicename>.
- Diese Bezeichnung ist nur ein Sammelbegriff f&uuml;r die
- diversen Ger&auml;te, die zusammen das Soundsystem von
- FreeBSD bilden, wie zum Beispiel
- <devicename>mixer</devicename>,
- <devicename>sequencer</devicename>, und
- <devicename>dsp</devicename>.</para>
-
- <para>So erzeugen Sie diese Ger&auml;te:;</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd0</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reread-rc">
- <para>Wie lade ich <filename>/etc/rc.conf</filename> und
- starte <filename>/etc/rc</filename> neu, ohne zu
- rebooten?</para>
- </question>
-
- <answer>
- <para>Gehen Sie in den Einzelbenutzermodus und dann
- zur&uuml;ck in den Mehrbenutzermodus.</para>
-
- <para>Geben Sie auf der Konsole folgendes ein:</para>
-
- <screen>
-&prompt.root; <userinput>shutdown now</userinput>
-(Hinweis: ohne -r oder -h)
-&prompt.root; <userinput>return</userinput>
-&prompt.root; <userinput>exit</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sandbox">
- <para>Was ist ein Sandkasten (sandbox)?</para>
- </question>
-
- <answer>
- <para><quote>Sandkasten</quote> (sandbox) ist ein Ausdruck
- aus dem Bereich Sicherheit. Er hat zwei
- Bedeutungen:</para>
-
- <itemizedlist>
- <listitem>
- <para>Ein Programm, das innerhalb virtueller W&auml;nde
- ausgef&uuml;hrt wird. Wenn ein Angreifer &uuml;ber
- eine Sicherheitsl&uuml;cke in diesen Programm
- einbricht, verhindern diese W&auml;nde ein tieferes
- Vordringen in das System.</para>
-
- <para>Man sagt: Der Proze&szlig; kann innerhalb der
- W&auml;nde <quote>spielen</quote>, d.h. nichts, was
- der Proze&szlig; in Bezug auf die Ausf&uuml;hrung von
- Code tut, kann die W&auml;nde durchbrechen. Es ist
- also keine detailierte Revision des Codes
- erforderlich, um gewisse Aussagen &uuml;ber seine
- Sicherheit machen zu k&ouml;nnen.</para>
-
- <para>Die W&auml;nde k&ouml;nnten z.B. eine
- Benutzerkennung sein. Dies ist die Definition, die in
- den Manualpages security und named benutzt
- wird.</para>
-
- <para>Nehmen Sie zum Beispiel den Dienst
- <literal>ntalk</literal> (siehe auch /etc/inetd.conf).
- Dieser Dienst ist fr&uuml;her mit der Benutzerkennung
- root gelaufen; nun l&auml;uft er mit der
- Benutzerkennung tty. Der Benutzer tty ist ein
- Sandkasten, der dazu gedacht ist, es jemandem, der
- &uuml;ber ntalk erfolgreich in das System eingebrochen
- ist, schwer zu machen, &uuml;ber diese Benutzerkennung
- hinaus vorzudringen.</para>
- </listitem>
-
- <listitem>
- <para>Ein Proze&szlig;, der sich innerhalb einer
- simulierten Maschine befindet. Dies ist etwas
- fortgeschrittener; grunds&auml;tzlich bedeutet es,
- da&szlig; jemand, der in der Lage ist, in einen
- Proze&szlig; einzudringen, annehmen k&ouml;nnte, er
- k&ouml;nnte weiter in die Maschine eindringen,
- tats&auml;chlich aber nur in eine Simulation der
- Maschine einbricht und keine echten Daten
- ver&auml;ndert.</para>
-
- <para>Der g&auml;ngigste Weg, dies zu erreichen, ist, in
- einem Unterverzeichnis eine simulierte Umgebung zu
- erstellen und den Proze&szlig; in diesem Verzeichnis
- mit chroot auszuf&uuml;hren (d.h. f&uuml;r diesen
- Proze&szlig; ist <filename>/</filename> dieses
- Verzeichnis und nicht das echte <filename>/</filename>
- des Systems).</para>
-
- <para>Eine weitere gebr&auml;uchliche Anwendung ist, ein
- untergeordnetes Dateisystem nur mit Leserechten zu
- mounten, und dann dar&uuml;ber eine Dateisystemebene
- zu erstellen, die einem Proze&szlig; einen scheinbar
- schreibberechtigten Blick in das Dateisystem gibt.
- Der Proze&szlig; mag glauben, da&szlig; er in der Lage
- ist, diese Dateien zu ver&auml;ndern, aber nur der
- Proze&szlig; sieht diesen Effekt - andere Proze&szlig;
- im System nat&uuml;rlich nicht.</para>
-
- <para>Es wird versucht, diese Art von Sandkasten so
- transparent zu gestalten, da&szlig; der Benutzer (oder
- Hacker) nicht realisiert, da&szlig; er sich in ihm
- befindet.</para>
- </listitem>
- </itemizedlist>
-
- <para>UNIX implementiert zwei Arten von Sandk&auml;sten -
- eine auf Proze&szlig;ebene und die andere auf der Ebene
- der Benutzerkennung.</para>
-
- <para>Jeder UNIX-Proze&szlig; ist vollst&auml;ndig von jedem
- anderen UNIX-Proze&szlig; abgeschirmt. Ein Proze&szlig;
- kann den Adre&szlig;raum eines anderen Prozesses nicht
- modifizieren. Das ist anders als bei Windows, wo ein
- Proze&szlig; leicht den Adre&szlig;raum eines anderen
- &uuml;berschreiben kann, was zu einem Absturz
- f&uuml;hrt.</para>
-
- <para>Ein UNIX-Proze&szlig; geh&ouml;rt einer bestimmten
- Benutzerkennung. Falls die Benutzerkennung nicht die von
- <username>root</username> ist, dient sie dazu, den
- Proze&szlig; von Prozessen anderer Benutzer abzuschirmen.
- Die Benutzerkennung wird au&szlig;erdem dazu genutzt,
- Daten auf der Festplatte abzuschirmen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="securelevel">
- <para>Was sind die Sicherheitsstufen?</para>
- </question>
-
- <answer>
- <para>Die Sicherheitsstufen sind ein Sicherheitsmechanismus,
- der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe
- einen positiven Wert hat, verhindert der Kernel die
- Ausf&uuml;hrung bestimmter T&auml;tigkeiten; nicht einmal
- der Super-User (also <username>root</username>) darf sie
- durchf&uuml;hren. Zur Zeit k&ouml;nnen &uuml;ber die
- Sicherheitsstufen unter anderem die folgenden
- T&ouml;tigkeiten geblockt werden:</para>
-
- <itemizedlist>
- <listitem>
- <para>&Auml;nderungen bestimmter Dateiattribute, wie zum
- Beispiel <literal>schg</literal> (das "system immutable
- Attribut)</para>
- </listitem>
-
- <listitem>
- <para>Schreibender Zugriff auf die Speicherbereiche des
- Kernels mittels <filename>/dev/mem</filename> und
- <filename>/dev/kmem</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Laden von Kernel-Modulen.</para>
- </listitem>
-
- <listitem>
- <para>&Auml;nderungen an den Firewall-Regeln.</para>
- </listitem>
- </itemizedlist>
-
- <para>Um die eingestellte Sicherheitstufe eines aktiven
- Systems abzufragen, reicht das folgende einfache
- Kommando:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>Die Ausgaben wird den Namen der
- &man.sysctl.8;-Variablen (in diesem Fall
- <varname>kern.securelevel</varname>) und eine Zahl
- enthalten. Die Zahl ist der aktuelle Wert der
- Sicherheitsstufe. Wenn die Zahl positiv
- (gr&ouml;&szlig;er als Null) ist, sind zumindestens einige
- der Schutzma&szlig;nahmen aktiviert.</para>
-
- <para>Sie k&ouml;nnen die Sicherheitsstufe eines laufenden
- Systems nicht verringern, da dies den Mechanismus wertlos
- machen w&uuml;rden. Wenn Sie eine T&auml;tigkeit
- ausf&uuml;hren m&uuml;ssen, bei der die Sicherheitsstufe
- nicht-positiv sein mu&szlig; (z.B. ein
- <maketarget>installworld</maketarget> oder eine
- &Auml;nderung der Systemzeit), dann m&uuml;ssen Sie die
- entsprechende Einstellung in
- <filename>/etc/rc.conf</filename> &auml;ndern (suchen Sie
- nach den Variablen <varname>kern_securelevel</varname> und
- <varname>kern_securelevel_enable</varname>) und das System
- rebooten.</para>
-
- <para>Weitere Informationen &uuml;ber die Sicherheitstufen
- und genaue Informationen, was die Einstellungen bewirken,
- k&ouml;nnen Sie der Online-Hilfe &man.init.8;
- entnehmen.</para>
-
- <para>
- <warning>
- <para>Die Sicherheitsstufen sind kein magischer
- Zauberstab, der alle Ihre Problem l&ouml;st; es gibt
- viele bekannte Probleme. Und in der Mehrzahl der
- F&auml;lle vermitteln sie ein falsches Gef&uuml;hl der
- Sicherheit.</para>
-
- <para>Eines der gr&ouml;&szlig;ten Probleme ist,
- da&szlig; alle f&uuml;r den Start des Systems
- ben&ouml;tigten Dateien gesch&uuml;tzt sein
- m&uuml;ssen, damit die Sicherheitsstufe effektiv sein
- k&ouml;nnen. Wenn es ein Angreifer schafft, seine
- eigenen Programme ausf&uuml;hren zu lassen, bevor die
- Sicherheitsstufe gesetzt wird (was leider erst gegen
- Ende des Startvorgangs erfolgen kann, da viele der
- notwendigen T&auml;tigkeiten f&uuml;r den Systemstart
- nicht mit einer gesetzten Sicherheitsstufe
- m&ouml;glich w&auml;ren), werden die Schutzmechanismen
- ausgehebelt. Es ist zwar nicht technisch
- unm&ouml;glich, alle beim Systemstart genutzten
- Dateien zu sch&uuml;tzen; allerdings w&uuml;rde in
- einem so gesch&uuml;tzten System die Administration zu
- einem Alptraum, da man das System neu starten oder in
- den Single-User Modus bringen m&uuml;&szlig;te, um
- eine Konfigurationsdatei &auml;ndern zu
- k&ouml;nnen.</para>
-
- <para>Dieses und andere Probleme werden h&auml;ufig auf
- den Mailinglisten diskutiert, speziell auf
- freebsd-security. Das <ulink
- url="http://www.FreeBSD.org/search/">hier</ulink>
- verf&uuml;gbare Archiv enth&auml;lt ausgiebige
- Diskussionen. Einige Benutzer sind guter Hoffnung,
- da&szlig; das System der Sicherheitsstufen bald durch
- ein besser konfigurierbares System ersetzt wird, aber
- es gibt noch keine definitiven Aussagen.</para>
-
- <para>F&uuml;hlen Sie sich gewarnt.</para>
- </warning>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="user-floppymount">
- <para>Wie lasse ich normale Benutzer Disketten, CD-ROMs und
- andere Wechseldatentr&auml;ger mounten?</para>
- </question>
-
- <answer>
- <para>Normale Benutzer k&ouml;nnen dazu berechtigt werden,
- Ger&auml;te zu mounten. Das geht so:</para>
-
- <procedure>
- <step>
- <para>Setzen Sie als <username>root</username> die
- sysctl-Variable <varname>vfs.usermount</varname> auf
- <literal>1</literal>:</para>
-
- <screen>
-&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput>
- </screen>
- </step>
-
- <step>
- <para>Ordnen Sie als <username>root</username> den
- Block-Ger&auml;ten, die den Wechsellaufwerken
- zugeordnet sind, die entsprechenden Zugriffsrechte
- zu.</para>
-
- <para>Wenn Sie zum Beispiel den Benutzer den Zugriff auf
- das erste Diskettenlaufwerk zu erlauben
- wollen:</para>
-
- <screen>
-&prompt.root; <userinput>chmod 666 /dev/fd0</userinput>
- </screen>
-
- <para>Um den Mitgliedern der Gruppe
- <username>operator</username> den Zugriff auf das
- CD-ROM zu gestatten:</para>
-
- <screen>
-&prompt.root; <userinput>chgrp operator /dev/cd0c</userinput>
-&prompt.root; <userinput>chmod 640 /dev/cd0c</userinput>
- </screen>
- </step>
-
- <step>
- <para>F&uuml;gen Sie zum Abschlu&szlig; die Zeile
- <literal>vfs.usermount=1</literal> in die Datei
- <filename>/etc/sysctl.conf</filename> ein, damit die
- Einstellung bei einem Neustart des Systems automatisch
- erhalten bleibt.</para>
- </step>
- </procedure>
-
- <para>Alle Benutzer k&ouml;nnen nun
- <filename>/dev/fd0</filename> auf ein Verzeichnis, das
- ihnen geh&ouml;rt, mounten:</para>
-
- <screen>
-&prompt.user; <userinput> mkdir ~/my-mount-point</userinput>
-&prompt.user; <userinput> mount -t msdos /dev/fd0 ~/my-mount-point</userinput>
- </screen>
-
- <para>Die zur Gruppe <username>operator</username>
- geh&ouml;renden Benutzer k&ouml;nnen nun
- <filename>/dev/cd0c</filename> auf ein Verzeichnis, das
- ihnen geh&ouml;rt, mounten:</para>
-
- <screen>
-&prompt.user; <userinput> mkdir ~/my-mount-point</userinput>
-&prompt.user; <userinput> mount -t msdos /dev/cd0c ~/my-mount-point</userinput>
- </screen>
-
- <para>Das Unmounten des Ger&auml;tes ist simpel:</para>
-
- <screen>
-&prompt.user; <userinput>umount <filename>~/my-mount-point</filename></userinput>
- </screen>
-
- <para>Die Aktivierung von <varname>vfs.usermount</varname>
- hat jedoch negative Auswirkungen auf Sicherheitsaspekte.
- Ein besserer Weg, um auf MSDOS-formatierte
- Datentr&auml;ger zuzugreifen, ist die Benutzung des
- Packages <application>mtools</application> aus der
- Ports-Sammlung.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="new-huge-disk">
- <para>Wie verschiebe ich mein System auf meine neue,
- gro&szlig;e Platte.</para>
- </question>
-
- <answer>
- <para>Die beste Methode ist, das Betriebssystem auf der
- neuen Platte neu zu installieren und danach die Daten zu
- verschieben. Wenn Sie -stable &uuml;ber eine Release
- hinaus genutzt haben oder eine Release aktualiert haben,
- ist das sehr empfehlenwert. Sie k&ouml;nnen auf beiden
- Platten &man.boot0cfg.8;i installieren und die beiden
- Versionen so lange parallel betreiben, bis Ihnen die neue
- Konfiguation gef&auml;llt. Wenn Sie dies tun wollen,
- k&ouml;nnen Sie im &uuml;bern&auml;chsten Absatz erfahren,
- wie sie Ihre Daten verschieben k&ouml;nnen.</para>
-
- <para>Falls Sie sich entscheiden, das nicht zu tun,
- m&uuml;ssen Sie Ihre neue Platte partitionieren und
- labeln. Benutzen Sie daf&uuml;r entweder
- <filename>/stand/sysinstall</filename> oder &man.fdisk.8;
- und &man.disklabel.8;. Weiterhin sollten Sie mit
- &man.boot0cfg.8; auf beiden Platten booteasy installieren,
- damit Sie in der Lage sind, das alte und das neue System
- abwechselnd zu starten, nachdem der Kopiervorgang
- abgeschlossen ist. Im <ulink
- url="http://www.freebsd.org/tutorials/formatting-media/index.html">formatting-media
- tutorial</ulink> finden Sie weitere Informationen zu
- diesen Schritten.</para>
-
- <para>Nachdem Sie die neue Platte eingerichtet haben,
- k&ouml;nnen Sie Ihre Daten verschieben. Dummerweise
- k&ouml;nnen Sie die Daten nicht einfach. Dinge wie die
- Ger&auml;tedateien (in <filename>/dev</filename>) und
- Symbolische Links f&uuml;hren dazu, da&szlig; das in die
- Hose geht. Sie m&uuml;tzen Programme benutzen, die damit
- umgehen k&ouml;nnen, und das sind &man.dump.8; and
- &man.tar.1;. Ich empfehle Ihnen, die Daten im single user
- mode zu verschieben, aber das ist nicht unbedingt
- notwendig.</para>
-
- <para>Sie sollten auf gar keinen Fall etwas anderes als
- &man.dump.8; und &man.restore.8; benutzen, um Ihr root
- file system zu verschieben. Es k&ouml;nnte auch mit
- &man.tar.1; funktionieren - oder auch nicht. Sie sollten
- ebenfalls &man.dump.8; und &man.restore.8; benutzen, wenn
- Sie eine komplette Partition auf eine andere, leere
- Partition verschieben. Um die Daten einer Partition mit
- dump auf eine andere Partition zu verschieben, m&uuml;ssen
- Sie die folgenden Schritte ausf&uuml;hren:</para>
-
- <procedure>
- <step>
- <para>Richten Sie in der neuen Partition mit newfs ein
- Dateisystem ein.</para>
- </step>
-
- <step>
- <para>Mounten Sie die Partition tempor&auml;r an einer
- geeigneten Stelle.</para>
- </step>
-
- <step>
- <para>Wechseln Sie mit cd in dieses Verzeichnis.</para>
- </step>
-
- <step>
- <para>Lesen Sie die alte Partition mit dump aus und
- lenken Sie die Ausgabe auf die neue Partition
- um.</para>
- </step>
- </procedure>
-
- <para>Wenn Sie zum Beispiel root auf
- <filename>/dev/ad1s1a</filename> verschieben wollen und
- diese zur Zeit auf <filename>/mnt</filename> gemountet
- ist, bedeutet das:</para>
-
- <screen>
- &prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
- &prompt.root; <userinput>mount /dev/ad1s1a</userinput>
- &prompt.root; <userinput>cd /mnt</userinput>
- &prompt.root; <userinput>dump 0uaf - / | restore xf -</userinput>
- </screen>
-
- <para>Wenn Sie Ihre Partitionen umorganisieren wollen, also
- zum Beispiel aus eine alte in zwei neue aufteilen wollen
- oder zwei alte zu einer neuen zusammenfassen wollen, dann
- wird es fr&uuml;hrer oder sp&auml;ter vorkommen, da&szlig;
- Sie nur einen Verzeichnisbaum verschieben wollen. Da
- &man.dump.8; nur ganze Dateisysteme bearbeitet,
- k&ouml;nnen Sie es daf&uuml;r nicht nutzen. Hier sollten
- Sie &man.tar.1; verwenden. Um mit &man.tar.1;
- <filename>/old</filename> nach <filename>/new</filename>
- zu verschieben, m&uuml;ssen Sie diesen Befehl
- eingeben:</para>
-
- <screen>
-&prompt.root; <userinput>(cd /old; tar cf - .) | (cd /new; tar xpf -)</userinput>
- </screen>
-
- <para>Wenn unter <filename>/old</filename> andere
- Dateisysteme gemountet sind und Sie weder die Daten auf
- diesen Dateisystem verschieben noch die anderen
- Dateisysteme unmounten wollen, m&uuml;ssen das erste
- &man.tar.1; mit dem Parameter <option>l</option>
- aufrufen:</para>
-
- <screen>
-&prompt.root; <userinput>(cd /old; tar clf - .) | (cd /new; tar xpf -).</userinput>
- </screen>
-
- <para>Eventuell gefallen Ihnen &man.cpio.1;, &man.pax.1;
- oder cpdup (ports/sysutils/cpdup) besser als
- &man.tar.1;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="release-candidate">
- <para>Ich wollte auf das aktuelle -STABLE updaten, und
- pl&ouml;tzlich l&auml;uft hier ein -RC oder -BETA. Was
- ist passiert?</para>
- </question>
-
- <answer>
- <para>Kurze Antwort: Das ist nur ein anderer Name. RC ist
- die Abk&uuml;rzung f&uuml;r <quote>Release
- Candidate</quote>. Es bedeutet, da&szlig; eine neue
- Release bevorsteht. Und -BETA bedeutet bei FreeBSD
- normalerweise, da&szlig; die Sourcen zur Vorbereitung auf eine
- Release <quote>eingefroren</quote> wurden.</para>
-
- <para>Ausf&uuml;hrliche Antwort: Bei FreeBSD gibt es zwei
- Quellen f&uuml;r Releases. Die Major Releases wie
- 3.0-RELEASE und 4.0-RELEASE werden aus dem aktuellen Stand
- des Hauptzweiges der Entwicklung (besser und k&uuml;rzer
- als <link linkend="current">-CURRENT</link> bekannt)
- erzeugt. Minor Releases wie 3.1-RELEASE or 4.2-RELEASE
- stammen aus dem aktiven <link
- linkend="stable">-STABLE</link> Zweig.</para>
-
- <para>Bevor in einem Zweig eine Release erfolgt, mu&szlig;
- in diesem Zweig ein bestimmter Proze&szlig; ablaufen. Ein
- Teil dieses Prozesses ist der <quote>code freeze</quote>,
- der Stop der Weiterentwicklung. Sobald dieser Schritt
- erfolgt ist, wird der Name des Zweiges ge&auml;ndert, um
- anzuzeigen, da&szlig; demn&auml;chst eine Release erfolgen
- wird. Wenn der Zweig zum Beispiel 4.0-STABLE genannt
- wurde, wird der Name in 4.1-BETA ge&auml;ndert, um dies zu
- verdeutlichen. Weiterhin ist das ein Zeichen, da&szlig;
- jetzt besonders intensiv getestet werden sollte. In
- dieser Phase k&ouml;nnen Fehler im Sourcecode noch
- korrigiert werden. Wenn der Sourcecode so weit
- <quote>gereift</quote> ist, da&szlig; eine Release
- erstellt werden kann, wird der Name in 4.1-RC
- ge&auml;ndert, um genau dies anzuzeigen. In dieser Phase
- k&ouml;nnen nur noch extrem wichtige Korrekturen
- aufgenommen werden. Sobald die Release (in diesem Beispiel
- 4.1-RELEASE) erfolgt ist, wird der Zweig in 4.1-STABLE
- umbenannt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-chflag-failure">
- <para>Als ich versucht habe, einen neuen Kernel zu
- installieren, ist das chflags fehlgeschlagen. Was mache
- ich jetzt?</para>
- </question>
-
- <answer>
- <para>Kurze Antwort: Ihre Sicherheitseinstellung (der
- securelevel) ist wahrscheinlich gr&ouml;&szlig;er als 0.
- Sie m&uuml;ssen das System neu starten und den Kernel im
- Single-User Modus installierten.</para>
-
- <para>Ausf&uuml;hrliche Antwort: Wenn die
- Sicherheitseinstellung gr&ouml;&szlig;er als 0 ist,
- erlaubt Ihnen FreeBSD nicht, die Systemflags zu
- &auml;ndern. Um den aktuellen Securelevel zu ermitteln,
- k&ouml;nnen Sie das folgende Kommando benutzen:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>Sie k&ouml;nnen die Sicherheitseinstellung nicht
- verringern, Sie m&uuml;ssen das System neu starten und den
- Kernel im Single-User Mode installieren oder die
- Sicherheitseinstellung in
- <filename>/etc/rc.conf</filename> &auml;ndern und dann das
- System neu starten. Weitere Detail zur
- Sicherheitseinstellung erhalten Sie in &man.init.8;,
- weitere Informationen zur rc.conf erhalten Sie in
- <filename>/etc/defaults/rc.conf</filename> und
- &man.rc.conf.5;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-securelevel-time">
- <para>Ich kann die Systemzeit nicht um mehr als eine Sekunde
- verstellen. Was mache ich jetzt?</para>
- </question>
-
- <answer>
- <para>Kurze Antwort: Ihre Sicherheitseinstellung (der
- securelevel) ist wahrscheinlich gr&ouml;&szlig;er als 1.
- Sie m&uuml;ssen das System neu starten und die Systemzeit
- im Single-User Modus verstellen.</para>
-
- <para>Ausf&uuml;hrliche Antwort: Wenn die
- Sicherheitseinstellung gr&ouml;&szlig;er als 1 ist,
- erlaubt Ihnen FreeBSD nicht, die Systemzeit zu
- &auml;ndern. Um den aktuellen Securelevel zu ermitteln,
- k&ouml;nnen Sie das folgende Kommando benutzen:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>Sie k&ouml;nnen die Sicherheitseinstellung nicht
- verringern, Sie m&uuml;ssen das System neu starten und die
- Systemzeit im Single-User Mode &auml;ndern oder die
- Sicherheitseinstellung in
- <filename>/etc/rc.conf</filename> &auml;ndern und dann das
- System neu starten. Weitere Detail zur
- Sicherheitseinstellung erhalten Sie in &man.init.8;,
- weitere Informationen zur rc.conf erhalten Sie in
- <filename>/etc/defaults/rc.conf</filename> und
- &man.rc.conf.5;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="statd-mem-leak">
- <para>Ist &man.rpc.statd.8; fehlerhaft? Er verbraucht 256
- MByte Speicher!</para>
- </question>
-
- <answer>
- <para>Nein, das Programm hat keinen Fehler und es verbraucht
- auch nicht 256 MByte Speicher. Das Programm hat nur eine
- Vorliebe daf&uuml;r, einen &uuml;bertrieben gro&szlig;en
- Speicherbereich in seinen eigenen Adre&szlig;raum zu
- projizieren. Von einem rein technischen Standpunkt aus
- ist das nichts verwerfliches, allerdings verwirrt es
- Programme wie &man.top.1; und &man.ps.1;.</para>
-
- <para>&man.rpc.statd.8; projiziert seine Statusdatei (die in
- <filename>/var</filename> liegt) in seinen
- Adre&szlig;raum. Um die Probleme zu vermeiden, die bei
- einer Ver&ouml;&szlig;erung dieser Projektion entstehen
- k&ouml;nnte, wird gleich ein m&ouml;lichst gro&szlig;er
- Speicherbereich benutzt. Dies kann man sehr sch&ouml;n im
- Sourcecode sehen: Die L&auml;ngenangabe beim Aufruf von
- &man.mmap.2; ist <literal>0x10000000</literal>, ein
- sechzehntel des Adre&szlig;raums bei IA32, oder genau 256
- MByte.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="unsetting-schg">
- <para>Warum kann ich das Dateiattribut
- <literal>schg</literal> nicht l&ouml;schen?</para>
- </question>
-
- <answer>
- <para>Sie betreiben Ihr System mit einer erh&ouml;hten
- Sicherheitsstufe. Senken Sie die Sicherheitsstufe und
- versuchen Sie es dann noch einmal. Weitere Informationen
- erhalten Sie im <link linkend="securelevel">FAQ Eintrag
- &uuml;ber Sicherheitsstufe</link> und in der Online-Hilfe
- &man.init.8;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="x">
- <title>Das X Window System und virtuelle Konsolen</title>
-
- <qandaset>
- <qandaentry>
- <question id="running-X">
- <para>Ich m&ouml;chte X benutzen, was mu&szlig; ich
- tun?</para>
- </question>
-
- <answer>
- <para>Der einfachste Weg ist der, da&szlig; Sie w&auml;hrend
- der Installation angeben, da&szlig; Sie X benutzen
- m&ouml;chten.</para>
-
- <para>Lesen Sie dann die Dokumentation zum Tool
- <command>xf86config</command>, das Sie bei der
- Konfiguration von XFree86(tm) speziell f&uuml;r Ihre
- Grafikkarte/Maus/etc. unterst&uuml;tzt.</para>
-
- <para>Evtl. m&ouml;chten Sie sich auch den Xaccel-Server
- ansehen. N&auml;here Details finden Sie in den
- Abschnitten &uuml;ber <link linkend="xig">Xi
- Graphics</link> oder <link linkend="metrox">Metro
- Link</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="running-X-securelevels">
- <para>Ich habe <emphasis>versucht</emphasis>, X zu starten,
- aber wenn ich <command>startx</command> eingebe, erhalte
- ich die Fehlermeldung <errorname>KDENABIO failed
- (Operation not permitted)</errorname>. Was soll ich jetzt
- machen?</para>
- </question>
-
- <answer>
- <para>Sie haben die Sicherheitsstufe (den securelevel) ihres
- Systems erh&ouml;rt, richtig? Es ist tats&auml;chlich
- nicht m&ouml;glich, X zu starten, wenn die
- Sicherheitsstufe erh&ouml;ht wurde. Warum das so ist,
- k&ouml;nnen Sie in &man.init.8; nachlesen.</para>
-
- <para>Die Frage ist also eigentlich, was Sie anders machen
- sollten. Sie haben zwei M&ouml;glichkeiten: Setzen Sie
- die Sicherheitstufe wieder zur&uuml;ck auf 0 (die
- Einstellung erfolgt in der Regel in
- <filename>/etc/rc.conf</filename>) oder starten Sie
- &man.xdm.1; w&auml;hrend des Starts des Systems, bevor die
- Sicherheitsstufe erh&ouml;ht wird.</para>
-
- <para>Der Abschnitt <xref linkend="xdm-boot"> enth&auml;lt
- Informationen dar&uuml;ber, wie Sie &man.xdm.1; beim Start
- des Systems starten k&ouml;nnen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="x-and-moused">
- <para>Warum funktioniert meine Maus unter X nicht?</para>
- </question>
-
- <answer>
- <para>Wenn Sie syscons (den standard Konsoltreiber)
- benutzen, k&ouml;nnen Sie FreeBSD so konfigurieren,
- da&szlig; auf jedem virtuellen Bildschirm ein Mauszeiger
- unterst&uuml;tzt wird. Um Konflikte mit X zu vermeiden,
- unterst&uuml;tzt syscons ein virtuelles Ger&auml;t mit dem
- Namen <filename>/dev/sysmouse</filename>. &Uuml;ber
- dieses virtuelle Ger&auml;t k&ouml;nnen andere Programme
- alle Mausbewegungen und Mausclicks im MouseSystems-Format
- mitlesen. Falls Sie Ihre Maus auf einer oder mehreren
- virtuellen Konsolen <emphasis>und</emphasis> und X
- benutzen wollen, sollten Sie zun&auml;chst <xref
- linkend="moused" remap="diesen Abschnitt"> lesen und dann
- moused installieren.</para>
-
- <para>Die Datei <filename>/etc/XF86Config</filename> sollte
- die folgenden Eintr&auml;ge enthalten:</para>
-
- <programlisting>
-Section Pointer
-Protocol "SysMouse"
-Device "/dev/sysmouse"
-.....
- </programlisting>
-
- <para>Diese Variante kann f&uuml;r XFree86 3.3.2 und neuere
- Versionen benutzt werden. Wenn Sie eine &auml;ltere
- Versionen verwenden, mu&szlig; als
- <emphasis>Protocol</emphasis> dagegen
- <emphasis>MouseSystems</emphasis> benutzt werden.</para>
-
- <para>Einige Leute ziehen es vor, unter X
- <filename>/dev/mouse</filename> zu benutzen. Hierzu
- sollte <filename>/dev/mouse</filename> nach
- <filename>/dev/sysmouse</filename> gelinkt werden:</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>Kann ich meine Rad-Maus auch unter X benutzen?</para>
- </question>
-
- <answer>
- <para>Ja. Allerdings m&uuml;ssen Sie die X-Anwendungen
- anpassen. Weitere Informationen erhalten Sie auf der
- Homepage von <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>Wenn Sie das Programm
- <application>imwheel</application> benutzen wollen,
- m&uuml;ssen Sie folgenden Arbeiten
- durchf&uuml;hren.</para>
-
- <orderedlist>
- <listitem>
- <para>Umsetzung der Rad-Bewegung</para>
-
- <para>Das Programm <application>imwheel</application>
- &uuml;bersetzt die Maustasten 4 und 5 in normale
- Tastaturkommandos. Sie m&uuml;ssen also nur
- daf&uuml;r sorgen, da&szlig; die Bewegung des Rades
- vom Maustreiber als Bet&auml;tigung der Maustaten 4
- und 5 &uuml;bersetzt werden. Es gibt zwei
- M&ouml;glichkeiten, dieses Ziel zu erreichen. Zum
- einen kann die &Uuml;bersetzung von &man.moused.8;
- durchgef&uuml;hrt werden, zum zweiten kann der
- X-Server diese Aufgabe &uuml;bernehmen.</para>
-
- <orderedlist>
- <listitem>
- <para>Umsetzung durch &man.moused.8;</para>
-
- <para>Damit &man.moused.8; die Umsetzung vornimmt,
- m&uuml;ssen ihn lediglich mit dem
- zus&auml;tzlichen Parametern <option>-z 4</option>
- starten. Wenn Sie zum Beispiel &man.moused.8; mit
- dem Befehl <command>moused -p /dev/psm0</command>
- gestartet haben, w&uuml;rde der neue Befehl
- <command>moused -p /dev/psm0 -z 4</command>
- lautet. Wenn Sie &man.moused.8; &uuml;ber einen
- Eintrag in der Datei
- <filename>/etc/rc.conf</filename> automatisch beim
- Start des Systems starten lassen, m&uuml;ssen Sie
- in der <filename>/etc/rc.conf</filename>lediglich
- die Einstellung <varname>moused_flags</varname> um
- <option>-z 4</option> erg&auml;nzen.</para>
-
- <para>Nun m&uuml;ssen Sie X dar&uuml;ber
- informieren, da&szlig; Sie eine Maus mit 5 Tasten
- haben. F&uuml;gen sie dazu die Zeile
- <literal>Buttons 5</literal> in den Abschnitt
- <quote>Pointer</quote> der Datei
- <filename>/etc/XF86Config</filename> ein. Das
- Beispiel zeigt, wie ein solcher Abschnitt aussehen
- k&ouml;nnte.</para>
-
- <example>
- <title>Abschnitt <quote>Pointer</quote> f&uuml;r
- XFree86 3.3.x f&uuml;r M&auml;use mit Rad und
- Umsetzung durch
- <command>moused</command></title>
-
- <programlisting>
-Section "Pointer"
- Protocol "SysMouse"
- Device "/dev/sysmouse"
- Buttons 5
-EndSection
- </programlisting>
- </example>
-
- <example>
- <title>Abschnitt <quote>InputDevice</quote> f&uuml;r
- Rad-M&auml;use in der XF86Config von XFree86 4.X
- mit automatischer Protokollerkennung und
- &Uuml;bersetzung der Maustasten</title>
-
- <programlisting>
-Section "InputDevice"
- Identifier "Mouse1"
- Driver "mouse"
- Option "Protocol" "auto"
- Option "Device" "/dev/psm0"
- Option "Buttons" "5"
- Option "ZAxisMapping" "4 5"
-EndSection
- </programlisting>
- </example>
-
- <example>
- <title><quote>.emacs</quote> Konfiguration
- f&uuml;r seitenweises Bl&auml;ttern mit einer
- Rad-Maus</title>
-
- <programlisting>
-;; wheel mouse
-(global-set-key [mouse-4] 'scroll-down)
-(global-set-key [mouse-5] 'scroll-up)
- </programlisting>
- </example>
- </listitem>
-
- <listitem>
- <para>Umsetzung durch den X-Server</para>
-
- <para>Wenn Sie &man.moused.8; nicht benutzen oder
- die Umsetzung nicht von &man.moused.8; vornehmen
- lassen wollen, kann diese Aufgabe auch vom
- X-Server &uuml;bernommen werden. Dazu sind einige
- &Auml;nderungen an der Datei
- <filename>/etc/XF86Config</filename> notwendig.
- Zun&auml;chst m&uuml;ssen Sie das von Ihrer Maus
- verwendete Protokoll herausfinden. Die meisten
- Radm&auml;use verwenden das
- <quote>IntelliMouse</quote> Protokoll. XFree86
- unterst&uuml;tzt allerdings auch andere
- Protokolle, zum Beispiel das von der Logitech
- Mouseman+ verwendete
- <quote>MouseManPlusPS/2</quote>. Wenn Sie das
- Protokoll ermittelt haben, m&uuml;ssen Sie eine
- entsprechende <varname>Protocol</varname>-Zeile in
- den Abschnitt <quote>Pointer</quote>
- aufnehmen.</para>
-
- <para>Zum zweiten m&uuml;ssen Sie dem X-Server
- mitteilen, da&szlig; er die Bewegung des Rades in
- Bet&auml;tigungen der Tasten 4 und 5 umsetzen
- soll. Dazu dient die Option
- <varname>ZAxisMapping</varname>.</para>
-
- <para>Wenn Sie zum Beispiel &man.moused.8; nicht
- verwenden und eine IntelliMouse an den PS/2
- Mausport angeschlossen haben, m&uuml;&szlig;te in
- Ihrer <filename>/etc/XF86Config</filename> die
- folgenden Angaben stehen.</para>
-
- <example>
- <title>Abschnitt <quote>Pointer</quote> der Datei
- <filename>XF86Config</filename> f&uuml;r eine
- Rad-Maus und Umsetzung durch den
- X-Server</title>
-
- <programlisting>
-Section "Pointer"
- Protocol "IntelliMouse"
- Device "/dev/psm0"
- ZAxisMapping 4 5
-EndSection
- </programlisting>
- </example>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>Installation von
- <application>imwheel</application></para>
-
- <para>Der n&auml;chste Schritt ist die Installation von
- <application>imwheel</application> &uuml;ber die
- Ports. Das Programm ist ein Teil der Kategorie
- <filename>x11</filename>.
- <application>imwheel</application> &uuml;bersetzt die
- Bewegungen des Rades in Tastendr&uuml;cken. Es
- k&ouml;nnte zum Beispiel <keycap>Bild auf</keycap> an
- ein Programm senden, wenn Sie das Rad nach vorne
- bewegen. <application>Imwheel</application> benutzt
- eine Konfigurationsdatei, die den Bewegungen des Rades
- die zu simulierenden Tastendr&uuml;cke zuordnet.
- Damit ist es m&ouml;glich, verschiedenen Anwendungen
- die jeweils &quot;richtigen&quot; Tastendr&uuml;cke zu
- senden. Ein Prototyp der Konfigurationsdatei f&uuml;r
- <application>imwheel</application> wird unter dem
- Namen <filename>/usr/X11R6/etc/imwheelrc</filename>
- installiert. Wenn Sie die Konfiguration von
- <application>imwheel</application> an die von Ihnen
- verwendeten Programme anpassen wollen, erzeugen Sie
- eine Kopie der Datei mit dem Namen
- <filename>~/.imwheelrc</filename> und tragen Sie ihre
- Anpassungen dort ein. Das Format der Datei wird in
- &man.imwheel.1; erkl&auml;rt.</para>
- </listitem>
-
- <listitem>
- <para>Anpassung von <application>Emacs</application> an
- with <application>Imwheel</application>
- (<emphasis>Optional</emphasis>)</para>
-
- <para>Wenn Sie <application>emacs</application> oder
- <application>Xemacs</application> benutzen,
- m&uuml;ssen Sie einen kleinen Abschnitt in die Datei
- <filename>~/.emacs</filename> einf&uuml;gen. F&uuml;r
- <application>emacs</application> m&uuml;ssen Sie die
- folgenden Zeilen anf&uuml;gen:</para>
-
- <example>
- <title>Nutzung von <application>Emacs</application>
- mit <application>Imwheel</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>Wenn Sie <application>Xemacs</application>
- verwenden, m&uuml;ssen stattdessen die folgenden
- Zeilen an Ihre <filename>~/.emacs</filename>
- anf&uuml;gen:</para>
-
- <example>
- <title>Nutzung von <application>Xemacs</application>
- mit <application>Imwheel</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>
- ausf&uuml;hren</para>
-
- <para>Sie brauchen nach der Installation einfach nur
- <command>imwheel</command> in einem xterm einzugben,
- um das Programm zu starten. Das Programm l&auml;uft
- dann im Hintergrund und ist sofort aktiv. Wenn Sie
- <application>imwheel</application> st&auml;ndig
- benutzen wollen, sollten Sie es einfach in Ihre
- <filename>.xinitrc</filename> oder
- <filename>.xsession</filename> eintragen. Falls
- <application>imwheel</application> Warnungen &uuml;ber
- &quot;PID files&quot; ausgeben sollte, k&ouml;nnen Sie
- diese ignorieren, da Sie nur die Linux-Version von
- <application>imwheel</application> betreffen.</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="window-menu-weird">
- <para>X Window Menues und Dialogfenster funktionieren nicht
- richtig!</para>
- </question>
-
- <answer>
- <para>Versuchen Sie, die Num-Lock-Taste
- auszustellen.</para>
-
- <para>Falls Ihre Num-Lock-Taste beim Booten
- standardm&auml;&szlig;ig eingeschaltet ist, sollten Sie
- die folgende Zeile in den Abschnitt
- <literal>Keyboard</literal> der Datei
- <filename>XF86Config</filename> einf&uuml;gen:</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>Was ist eine virtuelle Konsole und wie erstelle ich
- mehr?</para>
- </question>
-
- <answer>
- <para>Mit virtuellen Konsolen k&ouml;nnen Sie mehrere
- simultane Sitzungen auf einer Maschine laufen lassen, ohne
- so komplizierte Dinge wie die Einrichtung eines Netzwerkes
- oder die Benutzung von X zu ben&ouml;tigen.</para>
-
- <para>Wenn das System startet, wird es nach der Anzeige
- aller Bootmeldungen eine Eingabeaufforderung auf dem
- Bildschirm anzeigen. Sie k&ouml;nnen dann auf der ersten
- virtuellen Konsole Ihren Benutzernamen und das Passwort
- eingeben und anfangen, zu arbeiten (oder zu
- spielen!).</para>
-
- <para>Gelegentlich m&ouml;chten Sie m&ouml;glicherweise eine
- weitere Sitzung starten wollen, vielleicht, um die
- Dokumentation zu einem Programm, das Sie gerade benutzen,
- einzusehen, oder, um Ihre Mails zu lesen, w&auml;hrend Sie
- auf das Ende einer FTP-&Uuml;bertragung warten.
- Dr&uuml;cken Sie einfach Alt-F2 (halten Sie die Alt-Taste
- gedr&uuml;ckt und dr&uuml;cken Sie die Taste F2) und Sie
- gelangen zur Anmelde-Aufforderung auf der zweiten
- <quote>virtuellen Konsole</quote>! Wenn Sie zur&uuml;ck
- zur ersten Sitzung m&ouml;chten, dr&uuml;cken Sie
- Alt-F1.</para>
-
- <para>Die standard Installation von FreeBSD bietet drei
- aktivierte virtuelle Konsolen (acht ab der Version 3.3)
- und Alt-F1, Alt-F2 und Alt-F3 wechseln zwischen diesen
- virtuellen Konsolen.</para>
-
- <para>Um mehr von ihnen zu aktivieren, editieren Sie
- <filename>/etc/ttys</filename> und f&uuml;gen
- Eintr&auml;ge f&uuml;r <devicename>ttyv4</devicename> bis
- zu <devicename>ttyvc</devicename> nach dem Kommentar zu
- <quote>virtuellen Terminals</quote> ein:</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>Benutzen Sie so wenig oder soviele, wie Sie
- m&ouml;chten. Je mehr virtuelle Terminals Sie benutzen,
- desto mehr Ressourcen werden gebraucht; das kann wichtig
- sein, wenn Sie 8MB RAM oder weniger besitzen. Sie
- k&ouml;nnen auch <literal>secure</literal> in
- <literal>insecure</literal> &auml;ndern.</para>
-
- <para>
- <important>
- <para>Wenn Sie einen X-Server benutzen m&ouml;chten,
- <emphasis>m&uuml;ssen</emphasis> Sie mindestens ein
- virtuelles Terminal unbenutzt (oder ausgeschaltet)
- lassen damit der Server es benutzen kann. Das
- hei&szlig;t, da&szlig; Sie Pech haben, wenn Sie
- f&uuml;r jede Ihrer 12 Alt-Funktionstasten eine
- Anmeldeaufforderung haben m&ouml;chten - Sie
- k&ouml;nnen das nur f&uuml;r elf von ihnen tun, wenn
- Sie einen X-Server auf derselben Maschine laufen
- lassen m&ouml;chten.</para>
- </important>
- </para>
-
- <para>Der einfachste Weg, eine Konsole zu deaktivieren, ist,
- sie auszuschalten. Wenn Sie zum Beispiel die oben
- erw&auml;hnte volle Zuordnung aller 12 Terminals
- h&auml;tten, m&uuml;&szlig;ten Sie die Einstellung
- f&uuml;r das virtuelle Terminal 12 von:</para>
-
- <programlisting>
-ttyvb "/usr/libexec/getty Pc" cons25 on secure
- </programlisting>
-
- <para>in:</para>
-
- <programlisting>
-ttyvb "/usr/libexec/getty Pc" cons25 off secure
- </programlisting>
-
- <para>&auml;ndern.</para>
-
- <para>Wenn Ihre Tastatur nur &uuml;ber zehn Funktionstasten
- verf&uuml;gt, bedeutet das:</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>(Sie k&ouml;nnen diese Zeilen auch einfach
- l&ouml;schen.)</para>
-
- <para>Nachdem Sie die Datei <filename>/etc/ttys</filename>
- ge&auml;ndert haben, besteht der n&auml;chste Schritt
- darin, sicherzustellen, da&szlig; Sie gen&uuml;gend
- Ger&auml;te f&uuml;r virtuelle Terminal haben. Der
- einfachste Weg, dies zu tun, ist:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV vty12</userinput>
- </screen>
-
- <para>Die einfachste (und sauberste) M&ouml;glichkeit, die
- virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn
- Sie jedoch auf keinen Fall rebooten m&ouml;chten,
- k&ouml;nnen Sie auch einfach das X Window System
- herunterfahren und als <username>root</username></para>
-
- <screen>
-&prompt.root; <userinput>kill -HUP 1</userinput>
- </screen>
-
- <para>ausf&uuml;hren.</para>
-
- <para>Es ist unbedingt erforderlich, da&szlig; Sie das X
- Window System vollst&auml;ndig herunterfahren, falls es
- l&auml;uft. Falls Sie es nicht tun, k&ouml;nnte es sein,
- da&szlig; sich ihr System nach der Eingabe des
- kill-Befehls aufh&auml;ngt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="vty-from-x">
- <para>Wie greife ich von X aus auf virtuelle Konsolen
- zu?</para>
- </question>
-
- <answer>
- <para>Benutzen Sie <keycombo
- action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F<replaceable>n</replaceable></keycap></keycombo>
- um auf eine virtuelle Konsole umzuschalten. Mit <keycombo
- action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>
- w&uuml;rden Sie zur ersten virtuellen Konsole
- umschalten.</para>
-
- <para>Sobald Sie auf eine virtuelle Konsole umgeschaltet
- haben, k&ouml;nnen Sie ganz normal <keycombo
- action="simul"><keycap>Alt</keycap><keycap>F<replaceable>n</replaceable></keycap></keycombo>
- benutzen, um zwischen den einzelnen virtuellen Konsolen
- umzuschalten.</para>
-
- <para>Um zu Ihrer X-Sitzung zur&uuml;ckzukehren, m&uuml;ssen
- Sie auf die virtuelle Konsole umschalten, auf der X
- l&auml;uft. Wenn Sie X &uuml;ber der Eingabeaufforderung
- gestartet haben (z.B. mit <command>startx</command>),
- benutzt X die n&auml;chste freie virtuelle Konsole und
- nicht die Konsole, von der es gestartet wurde. Wenn Sie
- acht aktive virtuelle Konsole haben, dann wird X die
- neunte benutzen und Sie k&ouml;nnen mit <keycombo
- action="simul"><keycap>Alt</keycap><keycap>F9</keycap></keycombo>
- umschalten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xdm-boot">
- <para>Wie starte ich XDM beim Booten?</para>
- </question>
-
- <answer>
- <para>Es gibt zwei Denkans&auml;tze, wie
- <command>xdm</command> zu starten ist. Bei dem einen wird
- <command>xdm</command> von <filename>/etc/ttys</filename>
- aus gestartet, wobei das mitgelieferte Beispiel benutzt
- wird, w&auml;hrend <command>xdm</command> bei dem anderen
- Ansatz einfach in <filename>rc.local</filename> oder von
- einem Skript <filename>X.sh</filename> im Verzeichnis
- <filename>/usr/local/etc/rc.d</filename> aus gestartet
- wird. Beide Ans&auml;tze sind gleichwertig und der eine
- wird in Situationen funktionieren, in denen der andere es
- nicht tut. In beiden F&auml;llen ist das Ergebnis das
- gleiche: X liefert eine graphische
- Anmeldeaufforderung.</para>
-
- <para>Die ttys-Methode hat den Vorteil, da&szlig;
- dokumentiert ist, auf welchem vty X gestartet wird und der
- Neustart des X-Servers beim Abmelden an init
- &uuml;bergeben wird. Die rc.local-Methode erleichtert ein
- Killen von xdm, falls Probleme beim Start des X-Servers
- auftreten sollten.</para>
-
- <para>Beim Laden von rc.local sollte <command>xdm</command>
- ohne irgendwelche Argumente (d.h. als Daemon) gestartet
- werden. xdm mu&szlig; gestartet werden NACHDEM getty
- l&auml;uft, andernfalls entsteht ein Konflikt zwischen
- getty und xdm und die Konsole bleibt gesperrt. Der beste
- Weg, um dies zu vermeiden, ist, das Skript f&uuml;r etwa
- zehn Sekunden anzuhalten und dann xdm zu starten.</para>
-
- <para>Wenn Sie <command>xdm</command> durch einen Eintrag in
- <filename>/etc/ttys</filename> starten lassen, kann es zu
- einem Konflikt zwischen <command>xdm</command> und
- <command>getty</command> kommen. Um dieses Problem zu
- vermeiden, sollten Sie die Nummer des
- <literal>vt</literal> in die Datei
- <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>
- eintragen.</para>
-
- <programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting>
-
- <para>Diese Zeile f&uuml;hrt dazu, da&szlig; der X Server
- <filename>/dev/ttyv3</filename> nutzt. Die beiden Zahlen
- weichen voneinander ab: Der X-Server beginnt die
- Z&auml;hlung der vty bei 1, w&auml;hrend der
- FreeBSD-Kernel bei 0 beginnt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xconsole-failure">
- <para>Wenn ich xconsole benutze, erscheint <literal>Couldn't
- open console</literal>.</para>
- </question>
-
- <answer>
- <para>Wenn Sie <application>X</application> mit
- <command>startx</command> starten, werden die
- Zugriffsrechte f&uuml;r
- <filename>/dev/console</filename><emphasis>nicht</emphasis>
- ge&auml;ndert, was dazu f&uuml;hrt, da&szlig; Dinge wie
- <command>xterm -C</command> und
- <command>xconsole</command> nicht funktionieren.</para>
-
- <para>Das h&auml;ngt damit zusammen, wie die Zugriffsrechte
- f&uuml;r die Konsole standardm&auml;&szlig;ig gesetzt
- sind. Auf einem Mehrbenutzersystem m&ouml;chte man nicht
- unbedingt, da&szlig; jeder Benutzer einfach auf die
- Systemkonsole schreiben kann. F&uuml;r Benutzer, die sich
- auf einer Maschine direkt mit einem VTY anmelden,
- existiert die Datei <filename>/etc/fbtab</filename>, um
- derartige Probleme zu l&ouml;sen.</para>
-
- <para>In K&uuml;rze: sorgen Sie daf&uuml;r, da&szlig; sich
- eine nicht auskommentierte Zeile der Form</para>
-
- <programlisting>
-/dev/ttyv0 0600 /dev/console
- </programlisting>
-
- <para>in der Datei <filename>/etc/fbtab</filename> befindet.
- Das sorgt daf&uuml;r, da&szlig; wer auch immer sich auf
- <filename>/dev/ttyv0</filename> anmeldet, auch die Konsole
- besitzt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xfree86-root">
- <para>Fr&uuml;her konnte ich XFree86 als normaler User
- starten, aber jetzt sagt mir das System, da&szlig; ich
- root sein mu&szlig;!</para>
- </question>
-
- <answer>
- <para>Alle X-Server m&uuml;ssen mit der ID
- <username>root</username> laufen, um direkt auf die
- Videohardware zuzugreifen. Die &auml;lteren Versionen von
- XFree86 (bis einschlie&szlig;lich 3.3.6) installierten
- alle mitgelieferten Server so, da&szlig; sie automatisch
- unter ID <username>root</username> ausgef&uuml;hrt werden
- (setuid to root). Dies stellt nat&uuml;rlich eine
- Gefahrenquelle dar, da die X-Server gro&szlig;e, komplexe
- Programme sind. Alle neueren Version von XFree86
- installieren die Server aus genau diesem Grund nicht mehr
- "setuid root".</para>
-
- <para>Es ist nat&uuml;rlich nicht tragbar, den X-Server
- immer mit der ID <username>root</username> laufen zu
- lassen; auch aus Gr&uuml;nden der Sicherheit ist es keine
- Idee. Es gibt zwei M&ouml;glichkeiten, um X auch als
- normaler Benutzer starten zu k&ouml;nnen. Die erste ist
- die Verwendung von <command>xdm</command> oder eines
- &auml;hnlichen Programms; die zweite ist die Benutzer von
- <command>Xwrapper</command>.</para>
-
- <para><command>xdm</command> ist ein st&auml;ndig laufendes
- Programm, mit dem Logins &uuml;ber eine graphische
- Benutzeroberfl&auml;che sind. Es wird normalerweise beim
- Systemstart initialisiert und f&uuml;r die
- Authentifizierung der Benutzer und den Start ihrer
- Sitzungen verantwortlich. Es ist also die graphische
- Entsprechnung von <command>getty</command> und
- <command>login</command>. Weitere Informationen zum Thema
- <command>xdm</command> finden Sie in der <ulink
- url="http://www.xfree86.org/support.html">XFree86
- Dokumentation</ulink> und dem entsprechenden <link
- linkend="xdm-boot">FAQ-Eintrag</link>.</para>
-
- <para><command>Xwrapper</command> ist eine
- <quote>H&uuml;lle</quote> f&uuml;r den X-Server. Mit
- diesem kleinen Utility ist es m&ouml;glich, manuell den
- X-Server zu starten und weiterhin eine annehmbare
- Sicherheit zu haben. Das Tools pr&uuml;ft, ob die per
- Kommandozeile &uuml;bergebenen Argumente halbwegs sinnvoll
- sind. Wenn dies der Fall ist, startet es den
- entsprechenden X-Server. Wenn Sie (aus welchem Grund auch
- immer) keine graphische Anmeldung wollen, ist
- <command>Xwrapper</command> die optimale L&ouml;sung.
- Wenn Sie die vollst&auml;ndige Ports-Sammlung installiert
- haben, finden Sie das Tool im Verzeichnis
- <filename>/usr/ports/x11/wrapper</filename>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2-x">
- <para>Meine PS/2-Maus verh&auml;lt sich unter X nicht
- richtig.</para>
- </question>
-
- <answer>
- <para>Ihre Maus und der Maustreiber sind etwas aus der
- Synchronisation geraten.</para>
-
- <para>Bis einschlie&szlig;lich Version 2.2.5 sorgt ein
- Wechsel von X zu einer virtuellen Konsole und wieder
- zur&uuml;ck f&uuml;r eine erneute Synchronisation. Falls
- das Problem &ouml;fter auftritt, k&ouml;nnen Sie die
- folgende Zeile in Ihre Kernelkonfigurationsdatei
- einf&uuml;gen und den Kernel neu erstellen.</para>
-
- <programlisting>
-options PSM_CHECKSYNC
- </programlisting>
-
- <para>Lesen Sie den Abschnitt &uuml;ber <link
- linkend="make-kernel">die Erstellung eines Kernels</link>,
- falls Sie keine Erfahrung mit der Erstellung eines Kernels
- haben.</para>
-
- <para>Mit dieser Option sollten geringere Chancen f&uuml;r
- Synchronisationsprobleme zwischen der Maus und dem Treiber
- bestehen. Falls sie jedoch weiterhin auf das Problem
- sto&szlig;en, dr&uuml;cken Sie eine der Maustasten,
- w&auml;hrend Sie die Maus nicht bewegen, um die Maus und
- den Treiber neu zu synchronisieren.</para>
-
- <para>Beachten Sie, da&szlig; diese Option leider nicht auf
- allen Systemen funktioniert und das <quote>tap</quote>
- Merkmal eines am PS/2-Mausanschlu&szlig; angeschlossenen
- ALPS GlidePoint Ger&auml;tes beeintr&auml;chtigt.</para>
-
- <para>Ab Version 2.2.6 erfolgt die &Uuml;berpr&uuml;fung der
- Synchronisation etwas besser und ist ein Standard im
- PS/2-Maustreiber. Es sollte sogar mit GlidePoint
- funktionieren. (Da der Code zur &Uuml;berpr&uuml;fung ein
- standard Merkmal geworden ist, gibt es die Option
- PSM_CHECKSYNC in diesen Versionen nicht mehr.) In seltenen
- F&auml;llen kann es jedoch sein, da&szlig; der Treiber
- f&auml;lschlicherweise Synchronisationsprobleme meldet und
- Sie in den Kernelmeldungen folgendes sehen:</para>
-
- <programlisting>
-psmintr: out of sync (xxxx != yyyy)
- </programlisting>
-
- <para>und Ihre Maus nicht richtig zu funktionieren
- scheint.</para>
-
- <para>Falls das passiert, deaktivieren Sie den Code zur
- &Uuml;berpr&uuml;fung der Synchronisation, indem Sie die
- Treiberangaben f&uuml;r den PS/2-Maustreiber auf 0x100
- setzen. Rufen Sie <emphasis>UserConfig</emphasis> durch
- Angabe der Option <option>-c</option> am Boot-Prompt
- auf:</para>
-
- <screen>
-boot: <userinput>-c</userinput>
- </screen>
-
- <para>Geben sie dann in der Kommandozeile von
- <emphasis>UserConfig</emphasis> folgendes ein:</para>
-
- <screen>
-UserConfig&gt; <userinput>flags psm0 0x100</userinput>
-UserConfig&gt; <userinput>quit</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2-mousesystems">
- <para>Meine PS/2-Maus von MouseSystems scheint nicht zu
- funktionieren.</para>
- </question>
-
- <answer>
- <para>Es wurde berichtet, da&szlig; einige Modelle der
- PS/2-M&auml;use von MouseSystems nur funktionieren, wenn
- sie im <quote>hochaufl&ouml;senden</quote> Modus betrieben
- werden. Andernfalls springt der Mauszeiger sehr oft in
- die linke obere Ecke des Bilschirms.</para>
-
- <para>Leider gibt es hierzu keine Abhilfe f&uuml;r die
- Versionen 2.0.X und 2.1.X. Verwenden Sie bei den
- Versionen 2.2 bis 2.2.5 den folgenden Patch f&uuml;r die
- Datei <filename>/sys/i386/isa/psm.c</filename> und
- erstellen Sie den Kernel neu. Lesen Sie den Abschnitt
- &uuml;ber die <link linkend="make-kernel">Erstellung eines
- Kernels</link>, falls Sie keine Erfahrung mit der
- Erstellung eines Kernels haben.</para>
-
- <programlisting>
-diff -u psm.c.orig psm.c
-@@ -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>Spezifizieren Sie ab Version 2.2.6 das Flag 0x04
- f&uuml;r den Maustreiber, um die Maus in den
- hochaufl&ouml;senden Modus zu bringen. Rufen Sie
- <emphasis>UserConfig</emphasis> durch Angabe der Option
- <option>-c</option> am Boot-Prompt auf:</para>
-
- <screen>
-boot: <userinput>-c</userinput>
- </screen>
-
- <para>Geben sie dann in der Kommandozeile von
- <emphasis>UserConfig</emphasis> folgendes ein:</para>
-
- <screen>
-UserConfig&gt; <userinput>flags psm0 0x04</userinput>
-UserConfig&gt; <userinput>quit</userinput>
- </screen>
-
- <para>Lesen Sie den vorigen Abschnitt &uuml;ber eine andere
- m&ouml;gliche Ursache f&uuml;r Probleme mit der
- Maus.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="imake-tmpl">
- <para>Wenn ich eine X-Applikation erstellen will, kann
- <command>imake</command> die Datei
- <filename>Imake.tmpl</filename> nicht finden. Wo befindet
- sie sich?</para>
- </question>
-
- <answer>
- <para><filename>Imake.tmpl</filename> ist Teil des
- Imake-Paketes, ein Standardwerkzeug zur Erstellung von
- X-Applikationen. <filename>Imake.tmpl</filename> ist
- ebenso, wie viele Header-Dateien, die zur Erstellung von
- X-Applikationen ben&ouml;tigt werden, in der Distribution
- <literal>xprog</literal> enthalten. Sie k&ouml;nnen Sie
- per sysinstall oder aber manuell mit den X
- Distributionsdateien installieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mouse-button-reverse">
- <para>Wie vertausche ich die Maustasten?</para>
- </question>
-
- <answer>
- <para>Benutzen Sie den Befehl <command>xmodmap -e "pointer =
- 3 2 1"</command> in Ihrer Datei .xinitrc oder
- .xsession.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-splash">
- <para>Wie installiere ich einen Splash-Screen und wo finde
- ich sie?</para>
- </question>
-
- <answer>
- <para>Kurz vor der Herausgabe von FreeBSD 3.1 wurde ein
- neues Feature eingef&uuml;gt, das die Anzeige von
- <quote>Splash-Screens</quote> w&auml;hrend der
- Bootmeldungen erlaubt. Die Splash-Screens d&uuml;rfen
- derzeit nur Bitmaps mit 256-Farben
- (<filename>*.BMP</filename>) oder ZSoft-PCX-Dateien
- <filename>*.PCX</filename>) sein. Damit sie mit normalen
- VGA-Karten dargestellt werden k&ouml;nnen, darf die
- Gr&ouml;&szlig;e 320x200 Bildpunkte nicht
- &uuml;berschreiten. Wenn Sie in ihrem Kernel die
- VESA-Unterst&uuml;tzung eingebunden haben, betr&auml;gt
- die maximale Gr&ouml;&szlig;e 1024x768 Pixel. Beachten
- Sie, da&szlig; die VESA-Unterst&uuml;tzung die
- Kerneloption <literal>VM86</literal> ben&ouml;tigt, um in
- den Kernel eingebunden werden zu k&ouml;nnen. Die
- derzeitige VESA-Unterst&uuml;tzung kann entweder direkt
- durch die Kernelkonfigurationsoption
- <literal>VESA</literal> in den Kernel eingebunden werden,
- oder durch das Laden des VESA-Moduls kld w&auml;hrend des
- Bootens.</para>
-
- <para>Um eine Splash-Screen zu benutzen, m&uuml;ssen Sie die
- Startdateien, die den Bootproze&szlig; von FreeBSD
- kontrollieren, modifizieren. Diese Dateien haben sich vor
- der Herausgabe von FreeBSD 3.2 ge&auml;ndert, so da&szlig;
- nun zwei M&ouml;glichkeiten zum Laden einer Splash-Screen
- existieren:</para>
-
- <itemizedlist>
- <listitem>
- <para>FreeBSD 3.1</para>
-
- <para>Der erste Schritt besteht darin, eine
- Bitmap-Version Ihrer Splash-Screen zu finden. Von
- Version 3.1 werden nur Windows-Bitmap Splash-Screens
- unterst&uuml;tzt. Wenn Sie die Splash-Screen Ihrer
- Wahl gefunden haben, kopieren Sie sie nach
- <filename>/boot/splash.bmp</filename>. Als
- n&auml;chstes ben&ouml;tigen Sie eine Datei
- <filename>/boot/loader.rc</filename>, die die
- folgenden Zeilen enth&auml;lt:</para>
-
- <programlisting>
-load kernel
-load -t splash_image_data /boot/splash.bmp
-load splash_bmp
-autoboot
- </programlisting>
- </listitem>
-
- <listitem>
- <para>seit FreeBSD 3.2</para>
-
- <para>Au&szlig;er der zus&auml;tzlichen
- Unterst&uuml;tzung von PCX Splash-Screens bietet
- FreeBSD 3.2 eine einfachere M&ouml;glichkeit, den
- Bootproze&szlig; zu konfigurieren. Wenn Sie
- m&ouml;chten, k&ouml;nnen Sie auch die obige Methode
- f&uuml;r FreeBSD 3.1 benutzen. Falls Sie das tun und
- PCX verwenden m&ouml;chten, dann ersetzen Sie
- <literal>splash_bmp</literal> durch
- <literal>splash_pcx</literal>. Falls Sie aber die
- neuere Bootkonfiguration benutzen m&ouml;chten,
- m&uuml;ssen Sie eine Datei
- <filename>/boot/loader.rc</filename> erstellen, die
- die folgenden Zeilen enth&auml;lt:</para>
-
- <programlisting>
-include /boot/loader.4th
-start
- </programlisting>
-
- <para>und eine Datei
- <filename>/boot/loader.conf</filename>, die die
- folgenden Zeilen enth&auml;lt:</para>
-
- <programlisting>
-splash_bmp_load="YES"
-bitmap_load="YES"
- </programlisting>
-
- <para>Dies setzt voraus, da&szlig; Sie
- <filename>/boot/splash.bmp</filename> als Ihren
- Splash-Screen benutzen. Wenn Sie lieber eine
- PCX-Datei benutzen wollen, dann kopieren Sie sie nach
- <filename>/boot/splash.pcx</filename>, erstellen Sie
- eine Datei <filename>/boot/loader.rc</filename>, wie
- oben beschrieben und eine Datei
- <filename>/boot/loader.conf</filename>, die folgendes
- enth&auml;lt:</para>
-
- <programlisting>
-splash_pcx_load="YES"
-bitmap_load="YES"
-bitmap_name="/boot/splash.pcx"
- </programlisting>
- </listitem>
- </itemizedlist>
-
- <para>Alles, was Sie nun brauchen, ist ein Splash-Screen.
- Hierzu k&ouml;nnen Sie durch die Gallerie bei <ulink
- URL="http://www.baldwin.cx/splash/">http://www.baldwin.cx/splash/</ulink>
- surfen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="windows-keys">
- <para>Kann ich die Windows(tm)-Tasten unter X
- nutzen?</para>
- </question>
-
- <answer>
- <para>Ja, Sie m&uuml;ssen lediglich mit &man.xmodmap.1;
- festlegen, welche Aktion diese Tasten ausl&ouml;sen
- sollen.</para>
-
- <para>Unter der Annahme, da&szlig; alle
- <quote>Windows(tm)</quote> Tastaturen dem Standard
- entsprechen, lauten die Keycodes f&uuml;r die drei
- Tasten</para>
-
- <itemizedlist>
- <listitem>
- <para>115 - Windows(tm) Taste zwischen den Alt- und
- Strg-Tasten auf der linken Seite</para>
- </listitem>
-
- <listitem>
- <para>116 - Windows(tm) Taste rechts von der
- Alt-Gr-Taste</para>
- </listitem>
-
- <listitem>
- <para>117 - Men&uuml;-Taste, links von der rechten
- Strg-Taste</para>
- </listitem>
- </itemizedlist>
-
- <para>Nach der folgenden Anweisung erzeugt die linke
- Windows(tm)-Taste ein Komma.</para>
-
- <screen>
-&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput>
- </screen>
-
- <para>Sie werden Ihren Window Manager wahrscheinlich neu
- starten m&uuml;ssen, damit diese Einstellung wirksam
- wird.</para>
-
- <para>Um die neue Belegung der Windows(tm)-Tasten
- automatisch beim Start von X zu erhalten, k&ouml;nnten Sie
- entsprechende <command>xmodmap</command> Anweisungen in
- ihre <filename>~/.xinitrc</filename> einf&uuml;gen. Die
- bevorzugte Variante ist aber, eine Datei mit dem Namen
- <filename>~/.xmodmaprc</filename> zu erzeugen, die nur die
- Parameter f&uuml;r den Aufruf von
- <command>xmodmap</command> enth&auml;lt. Wenn Sie mehrere
- Tasten umdefinieren wollen, mu&szlig; jede Definition in
- eine eigene Zeile gesetzt werden. Weiterhin m&uuml;ssen
- Sie in Ihrer <filename>~/.xinitrc</filename> noch die
- folgende Zeile einf&uuml;gen:</para>
-
- <programlisting>
-xmodmap $HOME/.xmodmaprc
- </programlisting>
-
- <para>Auf meinem System habe ich drei Tasten zu F13, F14 und
- F15 gemacht. Dadurch ist es sehr einfach, diese Tasten
- mit n&uuml;tzlichen Funktionen eines Programmes oder
- Desktops zu verkn&uuml;pfen.</para>
-
- <para>Falls Sie das auch tun wollen, sollten in Ihrer
- <filename>~/.xmodmaprc</filename> die folgenden
- Anweisungen stehen.</para>
-
- <programlisting>
-keycode 115 = F13
-keycode 116 = F14
-keycode 117 = F15
- </programlisting>
-
- <para>Ich benutze <command>fvwm2</command> und habe ihn so
- eingestellt, da&szlig; F13 das Fenster unter dem
- Mauszeiger minimiert bzw. maximiert. F14 holt das Fenster
- unter dem Mauszeiger in den Vordergrund bzw. ganz nach
- hinten, wenn es bereits im Vordergrund ist. F15
- &ouml;ffnet das Arbeitsplatz (Programme) Men&uuml;, auch
- wenn der Cursor nicht auf den Hintergrund zeigt. Dies ist
- extrem praktisch, wenn der gesamte Bildschirm von Fenster
- belegt wird; als kleiner Bonus gibt es sogar einen
- Zusammenhang zwischem dem Symbol auf der Taste und der
- durchgef&uuml;hrten Aktion.</para>
-
- <para>Dieses Verhalten kann man mit den folgenden
- Eintr&auml;gen in der Datei <filename>~/.fvwmrc</filename>
- erhalten:</para>
-
- <programlisting>
-Key F13 FTIWS A Iconify
-Key F14 FTIWS A RaiseLower
-Key F15 A A Menu Workplace Nop
- </programlisting>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="networking">
- <title>Netzwerke</title>
-
- <qandaset>
- <qandaentry>
- <question id="diskless-booting">
- <para>Woher kann ich Informationen &uuml;ber <quote>Diskless
- Booting</quote> bekommen?</para>
- </question>
-
- <answer>
- <para><quote>Diskless Booting</quote> bedeutet, da&szlig;
- die FreeBSD-Maschine &uuml;ber ein Netzwerk gebootet wird
- und die notwendigen Dateien von einem Server anstatt von
- der Festplatte liest. Vollst&auml;ndige Details finden
- Sie im <ulink
- URL="../handbook/diskless.html">Handbucheintrag &uuml;ber
- Diskless Booting</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="router">
- <para>Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt
- werden?</para>
- </question>
-
- <answer>
- <para>Internetstandards und gute Ingenieurtechniken
- verbieten uns, in FreeBSD standardm&auml;&szlig;ig eine
- Paketweiterleitung zu aktivieren. Sie k&ouml;nnen dieses
- Feature aber aktivieren, indem Sie in
- <filename>/etc/rc.conf</filename> die folgende Variable
- auf <literal>YES</literal> setzen:</para>
-
- <programlisting>
-gateway_enable=YES # Set to YES if this host will be a gateway
- </programlisting>
-
- <para>Diese Option setzt die
- <command>sysctl</command>-Variable
- <literal>net.inet.ip.forwarding</literal> auf
- <literal>1</literal>.</para>
-
- <para>In den meisten F&auml;llen werden Sie auch einen
- Routing-D&aelig;mon laufen lassen m&uuml;ssen, um andere
- Systeme in Ihrem Netzwerk &uuml;ber Ihren Router zu
- informieren. FreeBSD enth&auml;lt den standard
- Routing-Daemon <command>routed</command>, f&uuml;r
- komplexere Situationen m&ouml;chten Sie evtl.
- <application>GaTeD</application> ausprobieren
- (erh&auml;ltlich von <ulink
- URL="http://www.gated.org/">http://www.gated.org/</ulink>),
- der FreeBSD vom Stand 3_5Alpha7 unterst&uuml;tzt.</para>
-
- <para>Wir m&uuml;ssen sie allerdings warnen, da&szlig;
- FreeBSD selbst in dieser Konfiguration nicht alle
- Internet-Standards f&uuml;r Router erf&uuml;llt. F&uuml;r
- normale Anwendungszwecke kommt es diesen Standard aber
- ausreichend nahe.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="win95-connection">
- <para>Kann ich meine Win95-Maschine &uuml;ber FreeBSD ans
- Internet anbinden?</para>
- </question>
-
- <answer>
- <para>Personen, die diese Frage stellen, haben
- typischerweise zwei PCs zu Hause: einen mit FreeBSD und
- einen mit Win95; die Idee ist, die FreeBSD-Maschine an das
- Internet anzubinden und dann in der Lage zu sein, von der
- Windows95-Maschine aus &uuml;ber die FreeBSD-Maschine auf
- das Internet zuzugreifen. Das ist tats&auml;chlich nur
- ein Spezialfall der vorherigen Frage.</para>
-
- <para>... und die Antwort ist JA! Das user-mode ppp von
- FreeBSD kennt die Option <option>-nat</option>. Wenn Sie
- <command>ppp</command> mit der Option
- <option>-nat</option> starten, in
- <filename>/etc/rc.conf</filename> die Variable
- <literal>gateway_enable</literal> auf
- <emphasis>YES</emphasis> setzen und ihre Windows-Maschine
- korrekt konfigurieren, sollte das hervorragend
- funktionieren.</para>
-
- <para>Ausf&uuml;hrlichere Informationen zur Konfiguration
- finden Sie im <ulink
- url="http://www.de.FreeBSD.org/tutorials/ppp/index.html">Pedantic
- PPP Primer</ulink> von Steve Sims.</para>
-
- <para>Wenn Sie Kernel-Mode PPP verwenden oder ihre
- Verbindung zum Internet &uuml;ber Ethernet realisiert
- wurde, m&uuml;ssen Sie <command>natd</command> verwenden.
- Weitere Informationen dazu finden Sie im Abschnitt
- &uuml;ber <link linkend="natd">natd</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="latest-bind">
- <para>Warum mi&szlig;lingt die Neukompilierung des neuesten
- BIND von ISC?</para>
- </question>
-
- <answer>
- <para>Es existiert ein Konflikt zwischen der Datei
- <filename>cdefs.h</filename> in der Distribution und der,
- die mit FreeBSD ausgeliefert wird. L&ouml;schen Sie
- <filename>compat/include/sys/cdefs.h</filename>
- einfach.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="slip-ppp-support">
- <para>Unterst&uuml;tzt FreeBSD SLIP und PPP?</para>
- </question>
-
- <answer>
- <para>Ja. Lesen Sie die Manualpages &man.slattach.8;,
- &man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;.
- <command>pppd</command> und <command>ppp</command> liefern
- Unterst&uuml;tzung sowohl f&uuml;r eingehende, als auch
- ausgehende Verbindungen. <command>Sliplogin</command>
- behandelt ausschlie&szlig;lich eingehende Verbindungen und
- <command>slattach</command> behandelt ausschlie&szlig;lich
- ausgehende Verbindungen.</para>
-
- <para>Diese Programme werden im Abschnitt <ulink
- url="../handbook/ppp-and-slip.html">PPP und SLIP</ulink>
- des Handbuchs beschrieben.</para>
-
- <para>Falls Sie nur durch einen <quote>Shell-Account</quote>
- Zugang zum Internet haben, sehen Sie sich einmal das
- Package <application>slirp</application> an. Es kann
- Ihnen (eingeschr&auml;nkten) Zugang zu Diensten wie ftp
- und http direkt von Ihrer lokalen Maschine aus
- erm&ouml;glichen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="natd">
- <para>Unterst&uuml;tzt FreeBSD NAT oder
- Masquerading?</para>
- </question>
-
- <answer>
- <para>Falls Sie ein lokales Subnetz (oder mehrere lokale
- Maschinen) besitzen, aber von Ihrem Internetprovider nur
- eine einzige (evtl. auch dynamisch zugeteilte) IP-Adresse
- zugewiesen bekommen haben, sehen Sie sich einmal das
- Programm <command>natd</command> an.
- <command>natd</command> erm&ouml;glicht es Ihnen, ein
- vollst&auml;ndiges Subnetz mit nur einer einzigen
- IP-Adresse an das Internet anzubinden.</para>
-
- <para>Das Programm <command>ppp</command> verf&uuml;gt mit
- der eingebauten Option <option>-nat</option> &uuml;ber
- eine &auml;hnliche Funktionalit&auml;t. In beiden
- F&auml;llen wird die Alias-Bibliothek &man.libalias.3;
- verwendet.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="create-dev-net">
- <para>Ich kann kein <filename>/dev/ed0</filename>-Ger&auml;t
- erstellen!</para>
- </question>
-
- <answer>
- <para>Bei Berkley-basierten Netzwerkimplementationen kann
- nur vom Kernel-Code aus direkt auf Netzwerkkarten
- zugegriffen werden. Zur weiteren Information lesen Sie
- bitte die Datei <filename>/etc/rc.network</filename> und
- die Manualpages zu den unterschiedlichen
- Netzwerkprogrammen, die dort erw&auml;hnt werden. Falls
- Sie danach total verwirrt sind, sollten Sie sich ein Buch
- besorgen, das die Netzwerkadministration auf einem anderen
- BSD-&auml;hnlichen Betriebssystem beschreibt; mit wenigen
- signifikanten Ausnahmen gleicht die Netzwerkadministration
- auf FreeBSD im Grunde der auf SunOS 4.0 oder
- Ultrix.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ethernet-aliases">
- <para>Wie kann ich Ethernet-Aliase einrichten?</para>
- </question>
-
- <answer>
- <para>Benutzen Sie <literal>netmask 0xffffffff</literal> in
- Ihrer <command>ifconfig</command>-Befehlszeile, wie
- z.B.:</para>
-
- <screen>
-&prompt.root; <userinput>ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="port-3c503">
- <para>Wie bringe ich meine 3C503 dazu, den anderen
- Anschlu&szlig; zu benutzen?</para>
- </question>
-
- <answer>
- <para>Wenn Sie die anderen Anschl&uuml;sse benutzen
- m&ouml;chten, m&uuml;ssen Sie einen zus&auml;tzlichen
- Parameter in der <command>ifconfig</command>-Befehlszeile
- spezifizieren. Der Standard-Anschlu&szlig; ist
- <literal>link0</literal>. Um den AUI-Anschlu&szlig;
- anstelle des BNC-Anschlusses zu verwenden, benutzen Sie
- <literal>link2</literal>. Diese Angaben sollten durch
- Benutzung der Variablen ifconfig_* in der Datei
- <filename>/etc/rc.conf</filename> spezifiziert
- werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs">
- <para>Ich habe Probleme mit NFS nach/von FreeBSD.</para>
- </question>
-
- <answer>
- <para>Gewisse PC-Netzwerkkarten sind (um es gelinde
- auszudr&uuml;cken) besser als andere und k&ouml;nnen
- manchmal Probleme mit netzwerkintensiven Anwendungen wie
- NFS verursachen.</para>
-
- <para>Weitere Informationen zu diesem Thema finden Sie
- <ulink URL="../handbook/nfs.html">im Handbucheintrag zu
- NFS</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs-linux">
- <para>Warum kann ich per NFS nicht von einer Linux-Maschine
- mounten?</para>
- </question>
-
- <answer>
- <para>Einige Versionen des NFS-Codes von Linux akzeptieren
- Mount-Requests nur von einem privilegierten Port.
- Versuchen Sie</para>
-
- <screen>
-&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs-sun">
- <para>Warum kann ich per NFS nicht von einer Sun-Maschine
- mounten?</para>
- </question>
-
- <answer>
- <para>Sun Workstations mit SunOS 4.X akzeptieren
- Mount-Requests nur von einem privilegierten Port.
- Versuchen Sie</para>
-
- <screen>
-&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput>
- </screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="exports-errors">
- <para>Warum meldet mir <command>mountd</command> auf meinem
- FreeBSD NFS-Server st&auml;ndig <quote>can't change
- attributes</quote> und <quote>bad exports
- list</quote>?</para>
- </question>
-
- <answer>
- <para>Die h&auml;ufigste Ursache f&uuml;r dieses Problem
- ist, da&szlig; Sie die folgende Passage aus
- &man.exports.5; nicht oder nicht richtig verstanden
- haben:</para>
-
- <blockquote>
- <para>Jede Zeile in dieser Datei (au&szlig;er den mit
- einem # beginnenden Kommentarzeilen) definiert den Mount
- Point und die Einstellungen f&uuml;r den Export
- innerhalb eines Dateisystems auf dem Server, f&uuml;r
- einen oder mehrere andere Rechner (Anmerkung des
- &Uuml;bersetzers: Clients). Jeder Rechner darf f&uuml;r
- jedes lokale Dateisystem nur ein mal erw&auml;hnt werden
- und es darf f&uuml;r jedes Dateisystem des Servers nur
- einen Defaulteintrag geben, der dann f&uuml;r alle
- anderen Rechner gilt.</para>
- </blockquote>
-
- <para>Um dies zu verdeutlichen, folgt ein Beispiel eines
- typischen Fehlers. Wenn alles oberhalb von
- <filename>/usr</filename> Teil eines einzigen Dateisystems
- ist (es also keine Mounts oberhalb von
- <filename>/usr</filename> gibt), ist die folgende Datei
- nicht korrekt:</para>
-
- <programlisting>
-/usr/src client
-/usr/ports client
- </programlisting>
-
- <para>Es gibt zwei Zeilen, die Einstellungen f&uuml;r das
- gleiche Dateisystem (<filename>/usr</filename>) und den
- gleichen Host (<hostid>client</hostid>) definieren. Die
- richtige Variante w&auml;re:</para>
-
- <programlisting>
-/usr/src /usr/ports client
- </programlisting>
-
- <para>Um die zitiere Passage anders auszudr&uuml;cken: Die
- Einstellungen f&uuml;r den Export eines Filesystems an
- einen anderen Host (globale Exporte werden wie ein anderer
- Host behandelt) m&uuml;ssen alle in einer Zeile erfolgen.
- Ja, das schr&auml;nkt ihre M&ouml;glichkeiten f&uuml;r den
- Export von Dateisystemen ein, wenn Sie keine
- h&auml;&szlig;lichen Kr&uuml;cken einbauen wollen.
- F&uuml;r die meisten Benutzer ist dies allerdings kein
- Problem.</para>
-
- <para>Es folgt ein Beispiel einer legalen Export-Datei;
- dabei sind <filename>/usr</filename> und
- <filename>/exports</filename> lokale Dateisysteme:</para>
-
- <programlisting>
-# Export src and ports to client01 and client02, but only
-# client01 has root privileges on it
-/usr/src /usr/ports -maproot=0 client01
-/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. The world can mount /exports/obj read-only
-/exports -alldirs -maproot=0 client01 client02
-/exports/obj -ro
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nextstep">
- <para>Ich habe Probleme, per PPP mit NeXTStep-Maschinen zu
- kommunizieren.</para>
- </question>
-
- <answer>
- <para>Versuchen Sie, die TCP-Erweiterung in
- <filename>/etc/rc.conf</filename> zu deaktivieren, indem
- Sie die folgende Variable auf NO setzen:</para>
-
- <programlisting>
-tcp_extensions=NO
- </programlisting>
-
- <para>Xylogic's Annex-Maschinen arbeiten hier auch
- fehlerhaft und Sie m&uuml;ssen die obige &Auml;nderung
- benutzen, um &uuml;ber Sie Verbindungen
- herzustellen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ip-multicast">
- <para>Wie aktiviere ich die Unterst&uuml;tzung f&uuml;r
- IP-Multicast?</para>
- </question>
-
- <answer>
- <para>Multicast-Host-Funktionen werden seit FreeBSD 2.0
- standardm&auml;&szlig;ig voll unterst&uuml;tzt. Wenn Sie
- Ihre Maschine als Multicast-Router betreiben wollen,
- m&uuml;ssen Sie Ihren Kernel mit der Option
- <literal>MROUTING</literal> rekompilieren und
- <command>mrouted</command> starten. Seit Version 2.2
- startet FreeBSD <command>mrouted</command> beim Booten,
- wenn die Variable <literal>mrouted_enable</literal> in der
- Datei <filename>/etc/rc.conf</filename> auf
- <literal>"YES"</literal> gesetzt ist.</para>
-
- <para>MBONE-Tools sind in ihrer eigenen Ports-Kategorie
- mbone verf&uuml;gbar. Schauen Sie dort nach, wenn Sie die
- Konferenztools <command>vic</command> und
- <command>vat</command> suchen!</para>
-
- <para>Weitere Informationen finden Sie im <ulink
- URL="http://www.mbone.com/">Mbone Information
- Web</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dec-pci-chipset">
- <para>Welche Netzwerkkarten basieren auf dem
- DEC-PCI-Chipsatz?</para>
- </question>
-
- <answer>
- <para>Hier ist eine von <ulink
- URL="mailto:gfoster@driver.nsta.org">Glen Foster</ulink>
- zusammengetragene Liste mit einigen aktuellen
- Erg&auml;nzungen:</para>
-
- <programlisting>
-Hersteller Modell
-----------------------------------------------
-ASUS PCI-L101-TB
-Accton ENI1203
-Cogent EM960PCI
-Compex ENET32-PCI
-D-Link DE-530
-Dayna DP1203, DP2100
-DEC DE435, DE450
-Danpex EN-9400P3
-JCIS Condor JC1260
-Linksys EtherPCI
-Mylex LNP101
-SMC EtherPower 10/100 (Modell 9332)
-SMC EtherPower (Modell 8432)
-TopWare TE-3500P
-Znyx (2.2.x) ZX312, ZX314, ZX342, ZX345, ZX346, ZX348
- (3.x) ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442,
- ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="fqdn-hosts">
- <para>Warum mu&szlig; ich f&uuml;r Hosts auf meiner Site den
- FQDN benutzen?</para>
- </question>
-
- <answer>
- <para>Sie werden wahrscheinlich feststellen, da&szlig; der
- Host sich tats&auml;chlich in einer anderen Dom&auml;ne
- befindet; wenn Sie sich zum Beispiel in foo.bar.edu
- befinden und einen Host namens <hostid>mumble</hostid> in
- der Dom&auml;ne <hostid role="domainname">bar.edu</hostid>
- erreichen wollen, werden Sie den fully-qualified
- Domainnamen <hostid role="fqdn">mumble.bar.edu</hostid>,
- anstatt nur <hostid>mumble</hostid> benutzen
- m&uuml;ssen.</para>
-
- <para>Traditionell war dies bei BSD-BIND-Resolvern erlaubt.
- Die aktuelle Version von <application>bind</application>,
- die mit FreeBSD ausgeliefert wird, erm&ouml;glicht jedoch
- nicht mehr die standardm&auml;&szlig;ige Abk&uuml;rzung
- von nicht-fully-qualified Domainnamen f&uuml;r andere als
- ihre eigene Dom&auml;ne. Ein nicht-qualifizierter Host
- <hostid>mumble</hostid> mu&szlig; also entweder als
- <hostid role="fqdn">mumble.foo.bar.edu</hostid> gefunden
- werden, oder er wird in der Hauptdom&auml;ne
- gesucht.</para>
-
- <para>Dies unterscheidet sich vom vorherigen Verhalten, wo
- die Suche &uuml;ber <hostid
- role="fqdn">mumble.bar.edu</hostid> und <hostid
- role="domainname">mumble.edu</hostid> fortgesetzt wurde.
- Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum
- dies als schlechter Stil oder sogar als eine
- Sicherheitsl&uuml;cke betrachtet wurde.</para>
-
- <para>Als Abhilfe k&ouml;nnen Sie die Zeile</para>
-
- <programlisting>
-search foo.bar.edu bar.edu
- </programlisting>
-
- <para>anstelle der vorherigen</para>
-
- <programlisting>
-domain foo.bar.edu
- </programlisting>
-
- <para>in Ihre Datei <filename>/etc/resolv.conf</filename>
- einf&uuml;gen. Stellen Sie jedoch sicher, da&szlig; die
- Suchreihenfolge nicht &uuml;ber die <quote>Grenze zwischen
- lokaler und &ouml;ffentlicher Administration</quote>, wie
- RFC 1535 sie nennt, hinausreicht.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="network-permission-denied">
- <para><literal>Permission denied</literal> bei allen
- Netzwerkoperationen.</para>
- </question>
-
- <answer>
- <para>Dieses Problem kann auftreten, wenn Sie einen Kernel
- mit der Option <literal>IPFIREWALL</literal> erstellt
- haben. W&auml;hrend der Entwicklung von FreeBSD 2.1.7
- wurde die Semantik dieser Option ge&auml;ndert: Seit
- dieser Version ist alles verboten, was nicht explizit
- erlaubt ist.</para>
-
- <para>Falls sie Ihr System unbeabsichtigt als Firewall
- fehlkonfiguriert haben, k&ouml;nnen Sie die
- Netzwerkfunktionalit&auml;t wiederherstellen, indem Sie
- als <username>root</username> folgendes eingeben:</para>
-
- <screen>
-&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput>
- </screen>
-
- <para>Sie k&ouml;nnen in <filename>/etc/rc.conf</filename>
- auch <literal>firewall_type="open"</literal>
- setzen.</para>
-
- <para>Weitere Informationen &uuml;ber die Konfiguration
- einer FreeBSD-Firewall finden Sie im <ulink
- URL="../handbook/firewalls.html">Handbuch-Abschnitt</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ipfw-overhead">
- <para>Wieviele Einbu&szlig;en zieht IPFW nach sich?</para>
- </question>
-
- <answer>
- <para>Die Antwort auf diese Frage h&auml;ngt
- haupts&auml;chlich von Ihrem Rule-Set und der
- Prozessorgeschwindigkeit ab. F&uuml;r die meisten
- Anwendungen, die mit Ethernetzen und kleinen Rule-Sets
- arbeiten, ist die Antwort: unbedeutend. Diejenigen, die
- tats&auml;chliche Messungen zur Befriedigung ihrer
- Neugierde brauchen, sollten weiterlesen.</para>
-
- <para>Die folgenden Messungen wurden mit 2.2.5-STABLE auf
- einem 486-66 durchgef&uuml;hrt. IPFW wurde modifiziert,
- um die Zeit zu messen, die in der Routine
- <literal>ip_fw_chk</literal> verbracht wurde. Das
- Ergebnis wurde nach jeweils 1000 Paketen auf der Konsole
- ausgegeben.</para>
-
- <para>Getestet wurden zwei Regels&auml;tze mit jeweils 1000
- Regeln. Der erste Satz wurde zur Demonstration eines
- Szenarios im schlimmsten Fall zusammengestellt, indem die
- folgende Regel wiederholt wurde:</para>
-
- <screen>
-&prompt.root; <userinput>ipfw add deny tcp from any to any 55555</userinput>
- </screen>
-
- <para>Dies demonstriert den schlimmsten Fall, indem
- daf&uuml;r gesorgt wird, da&szlig; die meisten von IPFW's
- Paket&uuml;berpr&uuml;fungsroutinen ausgef&uuml;hrt
- werden, bevor letztlich entschieden wird, da&szlig; die
- Regel f&uuml;r das Paket nicht zutrifft (wegen der
- virtuellen Portnummer). Auf die 999. Iteration dieser
- Regel folgte ein <literal>allow ip from any to
- any</literal>.</para>
-
- <para>Der zweite Regelsatz wurde so zusammengestellt,
- da&szlig; die &Uuml;berpr&uuml;fung der Regeln schnell
- abbricht:</para>
-
- <screen>
-&prompt.root; <userinput>ipfw add deny ip from 1.2.3.4 to 1.2.3.4</userinput>
- </screen>
-
- <para>Die nichtzutreffende IP-Adresse f&uuml;r die obige
- Regel sorgt daf&uuml;r, da&szlig; diese Regeln sehr
- schnell &uuml;bersprungen werden. Wie zuvor war die 1000.
- Regel ein <literal>allow ip from any to
- any</literal>.</para>
-
- <para>Der Verarbeitungsmehraufwand pro Paket im ersten Fall
- war ungef&auml;hr 2,703 ms/Paket, oder grob 2,7
- Mikrosekunden pro Regel. Das theoretische Limit f&uuml;r
- die Verarbeitung von Paketen liegt also etwa bei 370
- Paketen pro Sekunde. Bei einem 10Mbps Ethernet und einer
- Paketgr&ouml;&szlig;e von ~1500 Byte k&ouml;nnte man nur
- eine 55,5% ige Ausnutzung der Bandbreite
- erreichen.</para>
-
- <para>Im letzteren Fall wurde jedes Paket in ungef&auml;hr
- 1,172 ms verarbeitet, oder grob 1,2 Mikrosekunden pro
- Regel. Das theoretische Limit f&uuml;r die Verarbeitung
- von Paketen l&auml;ge hier bei etwa 853 Paketen pro
- Sekunde, was ein 10Mbps Ethernet auslasten
- k&ouml;nnte.</para>
-
- <para>Die &uuml;berm&auml;&szlig;ige Anzahl der getesteten
- Regeln und die Beschaffenheit dieser Regeln liefern kein
- realistisches Szenario -- sie wurden lediglich benutzt, um
- die hier vorgestellten Me&szlig;ergebnisse zu generieren.
- Hier sind einige Dinge, die bei der Erstellung eines
- effizienten Regelsatzes beachtet werden sollten:</para>
-
- <itemizedlist>
- <listitem>
- <para>Setzen Sie fr&uuml;hzeitig eine
- <literal>established</literal>-Regel, um den
- Gro&szlig;teil des TCP-Verkehrs abzufangen. Setzen
- Sie keine <literal>allow tcp</literal>-Anweisungen vor
- diese Regel.</para>
- </listitem>
-
- <listitem>
- <para>Plazieren Sie h&auml;ufig angesto&szlig;ene Regeln
- im Regelsatz vor solche, die weniger h&auml;ufig
- benutzt werden (nat&uuml;rlich, <emphasis>ohne die
- Toleranz der Firewall zu ver&auml;ndern</emphasis>).
- Sie k&ouml;nnen herausfinden, welche Regeln am
- h&auml;ufigsten benutzt werden, indem Sie die
- Paketstatistik mit <command>ipfw -a l</command>
- untersuchen.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ipfw-fwd">
- <para>Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit
- <quote>fwd</quote> auf eine andere Maschine
- umlenken?</para>
- </question>
-
- <answer>
- <para>Der wahrscheinlichste Grund ist, da&szlig; Sie Network
- Address Translation (NAT) brauchen und nicht die einfache
- Weiterleitung von Pakete. Die <quote>fwd</quote>
- Anweisung macht genau das, was da steht: Sie leitet
- Pakete weiter; die Daten in den Paketen werden aber nicht
- ver&auml;ndert. Ein Beispiel:</para>
-
- <screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
-
- <para>Wenn ein Paket mit dem Ziel
- <replaceable>foo</replaceable> die Maschine mit dieser
- Regel erreicht, wird das Paket an
- <replaceable>10.0.0.1</replaceable> weitergeleitet; die
- Zieladresse im Paket lautet aber immer noch
- <replaceable>foo</replaceable>! Die Zieladresse wird
- <emphasis>nicht</emphasis> in
- <replaceable>10.0.0.1</replaceable> ge&auml;ndert. Die
- meisten Rechner werden allerdings Pakete verwerfen, wenn
- die Zieladresse des Paketes nicht mit der Adresse des
- Rechners &uuml;bereinstimmt. Das ist der Grund, warum
- eine <quote>fwd</quote> Regel oft nicht den Effekt hat,
- den der Benutzer wollte. Dieses Verhalten ist aber kein
- Fehler, sondern erw&uuml;nscht.</para>
-
- <para>Wenn Sie einen Dienst auf eine andere Maschine
- umleiten wollen, sollten Sie sich den <link
- linkend="service-redirect">FAQ-Eintrag &uuml;ber die
- Umleitung von Diensten</link> oder die Online-Hilfe zu
- &man.natd.8; durchlesen. Auch in der <ulink
- url="../ports/">Ports Sammlung</ulink> sind diverse
- Hilfsprogramme f&uuml;r diesen Zweck enthalten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="service-redirect">
- <para>Wie kann ich Service-Requests von einer Maschine auf
- eine andere umleiten?</para>
- </question>
-
- <answer>
- <para>Sie k&ouml;nnen FTP-Requests (und andere Dienste) mit
- dem Package <literal>socket</literal> umleiten, das im
- Ports-Tree in der Kategorie <quote>sysutils</quote>
- verf&uuml;gbar ist. Ersetzen sie die Befehlszeile
- f&uuml;r den Dienst einfach so, da&szlig; stattdessen
- socket aufgerufen wird, zum Beispiel so:</para>
-
- <programlisting>
-ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.foo.com</replaceable> <replaceable>ftp</replaceable>
- </programlisting>
-
- <para>wobei <replaceable>ftp.foo.com</replaceable> und
- <replaceable>ftp</replaceable> entsprechend der Host und
- der Port sind, wohin umgeleitet werden soll.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bandwidth-mgr-tool">
- <para>Woher kann ich ein Bandbreiten-Managementtool
- bekommen?</para>
- </question>
-
- <answer>
- <para>F&uuml;r FreeBSD gibt es zwei
- Bandbreiten-Managementtools. <ulink
- URL="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink>
- gibt es umsonst; Bandwidth Manager von <ulink
- URL="http://www.etinc.com/">Emerging Technologies</ulink>
- ist ein kommerzielles Produkt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bpf-not-configured">
- <para>Warum erhalte ich <literal>/dev/bpf0: device not
- configured</literal>?</para>
- </question>
-
- <answer>
- <para>Der Berkeley-Paket-Filter <devicename>bpf</devicename>
- mu&szlig; in den Kernel eingebunden werden, bevor er von
- einem Programme aus genutzt werden kann. F&uuml;gen Sie
- folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und
- erstellen Sie einen neuen Kernel:</para>
-
- <programlisting>
-pseudo-device bpfilter # Berkeley Packet Filter
- </programlisting>
-
- <para>Zweitens m&uuml;ssen Sie nach dem Rebooten den Device
- Node erstellen. F&uuml;hren Sie dazu die folgenden
- Befehle aus:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV bpf0</userinput>
- </screen>
-
- <para>Weitere Informationen zur Erstellung von Ger&auml;ten
- finden Sie im <ulink
- URL="../handbook/kernelconfig-nodes.html">Handbucheintrag
- &uuml;ber Device Nodes</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-smb-share">
- <para>Habe ich, analog zum smbmount von Linux, eine
- M&ouml;glichkeit, auf ein freigegebenes Laufwerk einer
- Windows-Maschine in meinem Netzwerk zuzugreifen.</para>
- </question>
-
- <answer>
- <para>Benutzen Sie das Package <application>sharity
- light</application> aus der Ports-Sammlung.</para>
- <!-- XXX update for bp's SMBFS in CURRENT, when it is imported! -->
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="icmp-response-bw-limit">
- <para>Was bedeutet die Meldung <quote>icmp-response
- bandwidth limit 300/200 pps</quote> in meinen
- Logfiles?</para>
- </question>
-
- <answer>
- <para>Mit dieser Meldung teilt Ihnen der Kernel mit,
- da&szlig; irgend jemand versucht, ihn zur Generierung von
- zu vielen ICMP oder TCP reset (TST) Antworten zu
- provozieren. ICMP Antworten sind oft das Ergebnis von
- Verbindungsversuchen zu unbenutzen UDP ports. TCP resets
- werden generiert, wenn jemand versucht, eine Verbindung zu
- einem ungenutzten TCP Port aufzubauen. Die Meldungen
- k&ouml;nnen unter anderem durch die folgenden Ereignisse
- ausgel&ouml;st werden:</para>
-
- <itemizedlist>
- <listitem>
- <para>Denial of Service (DoS) Angriffe mit der
- Brechstange (und nicht durch Angriffe mit einzelnen
- Paketen, die gezielt eine Schwachstelle des Systems
- ausnutzen sollen).</para>
- </listitem>
-
- <listitem>
- <para>Port Scans, bei denen versucht wird, Verbindungen
- zu einer gro&szlig;en Anzahl von Ports (und nicht nur
- einigen bekannten Ports) herzustellen.</para>
- </listitem>
- </itemizedlist>
-
- <para>Die erste Zahl gibt an, wieviele Pakete vom Kernel
- ohne das Limit versendet worden w&auml;ren; die zweite
- Zahl gibt das Limit an. Sie k&ouml;nnen das Limit mit
- Hilfe der sysctl-Variable
- <varname>net.inet.icmp.icmplim</varname> einstellen. Im
- Beispiel wird das Limit auf <literal>300</literal> Packete
- pro Sekunde gesetzt:</para>
-
- <screen>
-&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput>
- </screen>
-
- <para>Wenn Sie zwar die Begrenzung nutzen m&ouml;chten, aber
- die Meldungen nicht in Ihren Logfiles sehen m&ouml;chten,
- k&ouml;nnen Sie die Meldungen mit der sysctl-Variable
- <varname>net.inet.icmp.icmplim_output</varname>
- abschalten:</para>
-
- <screen>
-&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput>
- </screen>
-
- <para>Falls Sie die Begrenzung ganz abschalten wollen,
- k&ouml;nnen Sie die Sysctl-Variable
- <varname>net.inet.icmp.icmplim</varname> auf
- <literal>0</literal>. Wir raten Ihnen aus den oben
- genannten Gr&uuml;nden dringend von diesem Schritt
- ab.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="ppp">
- <title>PPP</title>
-
- <qandaset>
- <qandaentry>
- <question id="userppp">
- <para>Ich bekomme ppp nicht zum Laufen. Was mache ich
- falsch?</para>
- </question>
-
- <answer>
- <para>Sie sollten zuerst &man.ppp.8; (die Manualpage zu ppp)
- und den <ulink
- URL="../handbook/ppp-and-slip.html#USERPPP">Abschnitt zu
- ppp im Handbuch</ulink> lesen. Aktivieren Sie das Logging
- mit folgendem Befehl:</para>
-
- <programlisting>
-set log Phase Chat Connect Carrier lcp ipcp ccp command
- </programlisting>
-
- <para>Dieser Befehl kann an der Eingabeaufforderung von
- <application>ppp</application> eingegeben oder in die
- Konfigurationsdatei <filename>/etc/ppp/ppp.conf</filename>
- eingetragen werden (der beste Ort hierf&uuml;r ist der
- Anfang des Abschnitts <literal>default</literal>. Stellen
- Sie sicher, da&szlig; die Datei
- <filename>/etc/syslog.conf</filename> die folgenden Zeilen
- enth&auml;lt:</para>
-
- <programlisting>
-!ppp
-*.* /var/log/ppp.log
- </programlisting>
-
- <para>und, da&szlig; die Datei
- <filename>/var/log/ppp.log</filename> existiert. Sie
- k&ouml;nnen nun &uuml;ber die Logfiles eine Menge
- dar&uuml;ber herausfinden, was geschieht. Es macht
- nichts, wenn die Eintr&auml;ge in den Logfiles Ihnen gar
- nichts sagen. Wenn Sie jemandem um Hilfe bitten
- m&uuml;ssen, k&ouml;nnten sie f&uuml;r ihn von Nutzen
- sein.</para>
-
- <para>Falls Ihre ppp-Version den <command>set log</command>
- Befehl nicht versteht, sollten Sie sich die <ulink
- URL="http://people.FreeBSD.org/~brian/">neueste
- Version</ulink> herunterladen. Sie kann auf
- Freebsd-Version 2.1.5 und h&ouml;her erstellt
- werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-hangs">
- <para>ppp h&auml;ngt, wenn ich es benutze.</para>
- </question>
-
- <answer>
- <para>Das liegt meistens daran, da&szlig; Ihr Rechnername
- nicht aufgel&ouml;st werden kann. Um dieses Problem zu
- l&ouml;sen, mu&szlig; in der Datei
- <filename>/etc/hosts</filename> der Eintrag
- <literal>hosts</literal> an die erste Stelle gesetzt
- werden. Damit wird der Resolver angewiesen, f&uuml;r die
- Namensaufl&ouml;sung zun&auml;chst einmal diese Datei zu
- verwenden. Erstellen Sie dann einfach f&uuml;r Ihren
- lokalen Rechner einen Eintrag in der Datei
- <filename>/etc/hosts</filename>. Falls Sie kein lokales
- Netzwerk besitzen, &auml;ndern Sie die
- <hostid>localhost</hostid>-Zeile:</para>
-
- <programlisting>
-127.0.0.1 foo.bar.com foo localhost
- </programlisting>
-
- <para>Andernfalls f&uuml;gen Sie einfach einen weiteren
- Eintrag f&uuml;r Ihren lokalen Recher hinzu. Weitere
- Details finden Sie in den betreffenden
- Manualpages.</para>
-
- <para>Wenn Sie fertig sind sollten Sie <command>ping -c1
- `hostname`</command> erfolgreich ausf&uuml;hren
- k&ouml;nnen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nodial-auto">
- <para>ppp w&auml;hlt im -auto-Modus nicht.</para>
- </question>
-
- <answer>
- <para>&Uuml;berpr&uuml;fen Sie zun&auml;chst, ob Sie eine
- Standard-Gateway eingestellt haben. Wenn Sie
- <command>netstat -rn</command> ausf&uuml;hren, sollten Sie
- zwei Eintr&auml;ge &auml;hnlich den folgenden
- sehen:</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>Hier wird angenommen, da&szlig; Sie die Adressen aus
- dem Handbuch, der Manualpage oder aus der Datei
- ppp.conf.sample benutzt haben. Falls Sie keine
- Standardroute haben, kann es daran liegen, da&szlig; Sie
- eine alte Version von <command>ppp</command> benutzen, die
- das Wort <literal>HISADDR</literal> in der Datei ppp.conf
- nicht versteht. Falls Ihre
- <application>ppp</application>-Version &auml;lter als
- 2.2.5 ist, &auml;ndern Sie die Zeile</para>
-
- <programlisting>
-add 0 0 HISADDR
- </programlisting>
-
- <para>in</para>
-
- <programlisting>
-add 0 0 10.0.0.2
- </programlisting>
-
- <para>Ein weiterer Grund daf&uuml;r, da&szlig; die Zeile
- f&uuml;r die Standardroute fehlt, k&ouml;nnte der sein,
- da&szlig; Sie f&auml;lschlicherweise eine Standardroute in
- der Datei <filename>/etc/rc.conf</filename> (diese Datei
- hie&szlig; vor Version 2.2.2
- <filename>/etc/sysconfig</filename>) eingetragen und die
- folgende Zeile in <filename>ppp.conf</filename>
- ausgelassen haben:</para>
-
- <programlisting>
-delete ALL
- </programlisting>
-
- <para>Lesen Sie in diesem Fall den Abschnitt <ulink
- URL="../handbook/ppp-and-slip.html#USERPPP-FINAL">Abschlie&szlig;ende
- Systemkonfiguration</ulink> des Handbuchs.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="no-route-to-host">
- <para>Was bedeutet <quote>No route to host</quote>?</para>
- </question>
-
- <answer>
- <para>Dieser Fehler beruht f&uuml;r gew&ouml;hnlich auf
- einem fehlenden Abschnitt</para>
-
- <programlisting>
-MYADDR:
- delete ALL
- add 0 0 HISADDR
- </programlisting>
-
- <para>in Ihrer Datei
- <filename>/etc/ppp/ppp.linkup</filename>. Er ist nur
- notwendig, wenn Sie eine dynamische IP-Adresse besitzen
- oder die Adresse Ihres Gateways nicht kennen. Wenn Sie
- den interaktiven Modus benutzen, k&ouml;nnen Sie folgendes
- eingeben, nachdem Sie in den <literal>packet
- mode</literal> gelangt sind (den Paket Modus erkennen Sie
- an <acronym>PPP</acronym> im Prompt):</para>
-
- <programlisting>
-delete ALL
-add 0 0 HISADDR
- </programlisting>
-
- <para>Weitere Details finden Sie im Abschnitt <ulink
- URL="../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">PPP
- und Dynamische IP-Adressen</ulink> des Handbuchs.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="connection-threeminutedrop">
- <para>Meine Verbindung wird nach drei Minuten
- beendet</para>
- </question>
-
- <answer>
- <para>Der Standardtimeout f&uuml;r ppp betr&auml;gt drei
- Minuten. Er kann durch die Zeile</para>
-
- <programlisting>
-set timeout <replaceable>NNN</replaceable>
- </programlisting>
-
- <para>eingestellt werden, wobei
- <replaceable>NNN</replaceable> die Inaktivit&auml;t in
- Sekunden, bevor die Verbindung geschlossen wird, angibt.
- Falls <replaceable>NNN</replaceable> Null ist, wird die
- Verbindung niemals aufgrund eines Timeouts geschlossen.
- Es ist m&ouml;glich, diesen Befehl in die Datei
- <filename>ppp.conf</filename> einzubinden, oder ihn an der
- Eingabeaufforderung im interaktiven Modus einzugeben.
- Durch eine Verbindung zum Server-Socket von
- <application>ppp</application> &uuml;ber
- <command>telnet</command> oder <command>pppctl</command>
- ist es auch m&ouml;glich, den Timeout bei aktiver
- Verbindung anzupassen. Weitere Details finden Sie in der
- Manualpage &man.ppp.8;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-drop-heavy-load">
- <para>Meine Verbindung bricht bei hoher Auslastung
- ab</para>
- </question>
-
- <answer>
- <para>Falls Sie Link-Quality-Reporting (LQR) konfiguriert
- haben, ist es m&ouml;glich, da&szlig; zu viele LQR-Pakete
- zwischen Ihrer Maschine und dem verbundenen Rechner
- verloren gehen. ppp folgert daraus, da&szlig; die
- Verbindung nicht in Ordnung ist und schlie&szlig;t sie.
- Vor FreeBSD Version 2.2.5 war LQR standardm&auml;&szlig;ig
- aktiviert; nun ist es standardm&auml;&szlig;ig
- deaktiviert. Es kann durch folgende Zeile deaktiviert
- werden:</para>
-
- <programlisting>
-disable lqr
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-drop-random">
- <para>Meine Verbindung bricht nach unbestimmter Zeit
- ab</para>
- </question>
-
- <answer>
- <para>Wenn die Qualit&auml;t Ihrer Telefonleitung zu
- schlecht oder bei Ihrem Anschlu&szlig; die Option
- (Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert
- ist, kann es manchmal vorkommen, da&szlig; Ihr Modem
- auflegt, weil es (f&auml;lschlicherweise) annimmt,
- da&szlig; es das Tr&auml;gersignal verloren hat.</para>
-
- <para>Bei den meisten Modems gibt es eine
- Einstellm&ouml;glichkeit, um anzugeben, wie tolerant es
- gegen&uuml;ber vor&uuml;bergehenden Verlusten des
- Tr&auml;gersignals sein soll. Bei einem USR Sportster
- wird dies zum Beispiel im Register S10 in Zehntelsekunden
- angegeben. Um Ihr Modem toleranter zu machen, k&ouml;nnen
- Sie zu Ihrem W&auml;hlbefehl die folgende
- Sende-Empfangs-Sequenz hinzuf&uuml;gen:</para>
-
- <programlisting>
-set dial "...... ATS10=10 OK ......"
- </programlisting>
-
- <para>Weitere Information sollten Sie dem Handbuch Ihres
- Modems entnehmen k&ouml;nnen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-hangs-random">
- <para>Meine Verbindung h&auml;ngt nach einer unbestimmten
- Zeit</para>
- </question>
-
- <answer>
- <para>Viele Leute machen Erfahrungen mit h&auml;ngenden
- Verbindungen ohne erkennbaren Grund. Als erstes mu&szlig;
- festgestellt werden, welche Seite der Verbindung
- h&auml;ngt.</para>
-
- <para>Wenn Sie ein externes Modem benutzen, k&ouml;nnen Sie
- einfach versuchen, <command>ping</command> zu benutzen, um
- zu sehen, ob die <acronym>TD</acronym>-Anzeige
- aufleuchtet, wenn Sie Daten &uuml;bertragen. Falls sie
- aufleuchtet (und die <acronym>RD</acronym>-Anzeige nicht),
- liegt das Problem am anderen Ende. Falls
- <acronym>TD</acronym> nicht aufleuchtet, handelt es sich
- um ein lokales Problem. Bei einem internen Modem
- m&uuml;ssen Sie den Befehl <literal>set server</literal>
- in Ihrer Datei <filename>ppp.conf</filename> benutzen.
- Stellen Sie &uuml;ber pppctl eine Verbindung zu ppp her,
- wenn die Verbindung h&auml;ngt. Falls Ihre
- Netzwerkverbindung pl&ouml;tzlich wieder funktioniert (ppp
- wurde durch die Aktivit&auml;t auf dem Diagnose-Socket
- wiederbelebt) oder Sie keine Verbindung bekommen
- (vorausgesetzt, der Befehl <literal>set socket</literal>
- wurde beim Start erfolgreich ausgef&uuml;hrt), handelt es
- sich um ein lokales Problem. Falls Sie eine Verbindung
- bekommen und die externe Verbindung weiterhin h&auml;ngt,
- aktivieren Sie lokales asynchrones Logging mit
- <literal>set log local async</literal> und benutzen Sie
- <command>ping</command> von einem anderen Fenster oder
- Bildschirm aus, um die externe Verbindung zu benutzen.
- Das asynchrone Logging zeigt Ihnen, welche Daten &uuml;ber
- die Verbindung gesendet und empfangen werden. Falls Daten
- hinausgehen, aber nicht zur&uuml;ckkommen, handelt es sich
- um ein externes Problem.</para>
-
- <para>Wenn Sie festgestellt haben, ob es sich um ein lokales
- oder um ein externes Problem handelt, haben Sie zwei
- M&ouml;glichkeiten:</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-remote-not-responding">
- <para>Das externe Ende antwortet nicht</para>
- </question>
-
- <answer>
- <para>Hier k&ouml;nnen Sie wenig tun. Die meisten ISPs
- werden ablehnen, Ihnen zu helfen, wenn Sie kein
- Betriebssystem von Microsoft benutzen. Sie k&ouml;nnen
- <literal>enable lqr</literal> in Ihrer Datei
- <filename>ppp.conf</filename> angeben, wodurch ppp
- erm&ouml;glicht wird, ein externes Versagen zu erkennen
- und aufzulegen, aber diese Erkennung ist relativ langsam
- und deshalb nicht besonders n&uuml;tzlich. Evtl. sagen
- Sie Ihrem ISP nicht, da&szlig; Sie ein eigenes ppp
- benutzen...</para>
-
- <para>Versuchen Sie zun&auml;chst, jegliche Datenkompression
- auszuschalten, indem Sie folgendes zu Ihrer Konfiguration
- hinzuf&uuml;gen:</para>
-
- <programlisting>
-disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
-deny pred1 deflate deflate24 protocomp acfcomp shortseq vj
- </programlisting>
-
- <para>Stellen Sie nun wieder eine Verbindung her, um
- festzustellen, ob sich etwas ge&auml;ndert hat. Falls es
- nun besser l&auml;uft oder falls das Problem
- vollst&auml;ndig behoben ist, versuchen Sie durch
- schrittweises &Auml;ndern der Einstellungen festzustellen,
- welche Einstellung den Unterschied bewirkt. Hierdurch
- erhalten Sie schl&uuml;ssige Fakten fuer ein Gespr&auml;ch
- mit Ihrem ISP (andererseits wird hierdurch offensichtlich,
- da&szlig; Sie kein Microsoft-Produkt benutzen).</para>
-
- <para>Aktivieren Sie asynchrones Logging und warten Sie, bis
- die Verbindung wieder h&auml;ngt, bevor Sie sich an Ihren
- ISP wenden. Hierzu kann einiges an Plattenplatz
- n&ouml;tig sein. Die Daten, die als letztes von dem Port
- gelesen wurden, k&ouml;nnten von Interesse sein. F&uuml;r
- gew&ouml;hnlich handelt es sich um ASCII-Text, der sogar
- den Fehler beschreiben kann (<quote>Memory fault, core
- dumped</quote>).</para>
-
- <para>Falls Ihr ISP hilfsbereit ist, sollte er in der Lage
- sein, an seinem Ende das Logging zu aktivieren und wenn
- das n&auml;chste Mal die Verbindung abbricht, k&ouml;nnte
- er Ihnen mitteilen, worin das Problem auf seiner Seite
- besteht. Gerne k&ouml;nnen Sie Details auch an &a.brian;
- schicken, oder Ihren ISP bitten, sich direkt an ihn zu
- wenden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-hung">
- <para>ppp h&auml;ngt sich auf</para>
- </question>
-
- <answer>
- <para>In diesem Fall erstellen Sie am besten ppp neu, indem
- Sie <literal>CFLAGS+=-g</literal> und
- <literal>STRIP=</literal> am Ende des Makefiles
- einf&uuml;gen und dann <command>make clean &amp;&amp; make
- &amp;&amp; make install</command> ausf&uuml;hren. Suchen
- Sie die Proze&szlig;nummer von ppp mit <command>ps ajxww |
- fgrep ppp</command>, wenn ppp sich aufh&auml;ngt und
- f&uuml;hren Sie <command> gdb ppp
- <replaceable>PID</replaceable></command> aus. Am
- gdb-Prompt k&ouml;nnen Sie <command>bt</command> benutzen,
- um einen Auszug von Stack zu erhalten.</para>
-
- <para>Senden Sie die Ergebnisse an
- <email>brian@Awfulhak.org</email>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-loginok-thennothing">
- <para>Nach der Nachricht Login OK! geschieht nichts.</para>
- </question>
-
- <answer>
- <para>Bei Freebsd-Versionen vor 2.2.5 wartete
- <application>ppp</application> darauf, da&szlig; der
- Partner das Line Control Protocol (LCP) initiiert. Viele
- ISPs starten nicht mit der Initiierung, sondern erwarten
- dies vom Client. Benutzen Sie die folgende Zeile, um
- <application>ppp</application> zu veranlassen, LCP zu
- initiieren:</para>
-
- <programlisting>
-set openmode active
- </programlisting>
-
- <para>
- <note>
- <para>F&uuml;r gew&ouml;hnlich schadet es nicht, wenn
- beide Seiten versuchen, Verhandlungen einzuleiten.
- Deshalb ist openmode nun standardm&auml;&szlig;ig
- aktiv. Im n&auml;chsten Abschnitt wird allerdings
- erkl&auml;rt, in welchen F&auml;llen es dennoch
- schadet.</para>
- </note>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-same-magic">
- <para>Ich sehe st&auml;ndig Fehlermeldungen &uuml;ber
- gleiche "Magic Numbers".</para>
- </question>
-
- <answer>
- <para>Nach dem Aufbau einer Verbindung kann es sein,
- da&szlig; Sie in der Logdatei gelegentlich Meldungen mit
- dem Hinweis <quote>magic is the same</quote> sehen.
- Manchmal sind diese Meldungen harmlos und manchmal bricht
- die eine oder andere Seite die Verbindung ab. Die meisten
- Implementationen von ppp k&ouml;nnen dieses Problem nicht
- handhaben und Sie werden wiederholte
- Konfigurationsanforderungen und -best&auml;tigungen in der
- Logdatei finden, bis ppp schlie&szlig;lich aufgibt und die
- Verbindung beendet.</para>
-
- <para>Dies geschieht normalerweise auf Servern mit langsamen
- Festplatten, bei denen ein getty auf dem Port
- ausgef&uuml;hrt und ppp nach dem Einloggen von einem
- Login-Skript oder einem Programm aus gestartet wird. Ich
- habe auch davon geh&ouml;rt, da&szlig; dies bei der
- Benutzung von slirp regelm&auml;&szlig;ig auftritt. Der
- Grund hierf&uuml;r ist, da&szlig; das ppp auf der
- Client-Seite in der Zeit, die ben&ouml;tigt wird, getty zu
- beenden und ppp zu starten, bereits beginnt, Line Control
- Protocol (LCP) Pakete zu senden. Da ECHO auf dem
- Serverport weiterhin eingeschaltet ist, werden diese
- Pakete zum ppp auf der Client-Seite
- <quote>reflektiert</quote>.</para>
-
- <para>Ein Teil der LCP-Verhandlungen ist die Einrichtung
- einer "magic Number" f&uuml;r jede Seite der Verbindung,
- damit <quote>Echos</quote> erkannt werden k&ouml;nnen.
- Das Protokoll besagt, da&szlig;, wenn der Partner
- versucht, die gleiche "Magic Number" auszuhandeln, ein NAK
- zur&uuml;ckgesendet und eine neue "Magic Number"
- gew&auml;hlt werden soll. W&auml;hrend der Server das
- ECHO eingeschaltet hat, sendet der Client LCP Pakete,
- sieht die gleiche "Magic Number" im reflektierten Paket
- und erzeugt ein NAK. Er sieht auch das reflektierte NAK
- (was bedeutet, da&szlig; ppp seine "Magic Number"
- &auml;ndern mu&szlig;). Hierdurch wird eine Vielzahl von
- &Auml;nderungen der "Magic Number" hervorgerufen, die sich
- allesamt im tty-Puffer des Servers ansammeln. Sobald ppp
- auf dem Server startet, wird es mit &Auml;nderungen der
- "Magic Number" &uuml;berflutet und entscheidet, da&szlig;
- es sich zur Gen&uuml;ge mit den LCP-Verhandlungen
- besch&auml;ftigt hat und gibt auf. Und w&auml;hrend sich
- der Client noch dar&uuml;ber freut, da&szlig; er keine
- weiteren Reflexionen sieht, wird ihm gemeldet, da&szlig;
- der Server auflegt.</para>
-
- <para>Dies kann verhindert werden, indem dem Parter durch
- die folgende Zeile in der Datei
- <filename>ppp.conf</filename> erlaubt wird, mit der
- Verhandlung zu beginnen:</para>
-
- <programlisting>
-set openmode passive
- </programlisting>
-
- <para>Hierdurch wird ppp mitgeteilt, darauf zu warten,
- da&szlig; der Server mit den LCP-Verhandlungen beginnt.
- Einige Server starten jedoch nie mit der Verhandlungen;
- falls dies der Fall ist, k&ouml;nnen Sie folgendes
- tun:</para>
-
- <programlisting>
-set openmode active 3
- </programlisting>
-
- <para>Hierdurch bleibt ppp f&uuml;r drei Sekunden passiv und
- f&auml;ngt dann erst an, LCP-Anforderungen zu senden.
- Falls der Partner w&auml;hrend dieser Zeit beginnt,
- Anforderungen zu senden, wird ppp direkt antworten und
- nicht erst, nachdem die drei Sekunden abgelaufen
- sind.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-lcp-constant">
- <para>Die LCP-Verhandlungen dauern an, bis die Verbindung
- geschlossen wird.</para>
- </question>
-
- <answer>
- <para>Es gibt eine Fehlfunktion in der Implementierung von
- <application>ppp</application>, die darin besteht,
- da&szlig; LCP-, CCP- &amp; IPCP-Antworten nicht mit den
- urspr&uuml;nglichen Anforderungen assoziiert werden.
- F&uuml;r den Fall, da&szlig; eine Implementation von
- <application>ppp</application> mehr als sechs Sekunden
- langsamer ist, als die andere Seite, resultiert das darin,
- da&szlig; die andere Seite zwei weitere
- LCP-Konfigurationsanforderungen sendet, was fatale
- Auswirkungen hat.</para>
-
- <para>Stellen Sie sich vor, wir h&auml;tten es mit zwei
- Implementierungen <hostid>A</hostid> und
- <hostid>B</hostid> zu tun. <hostid>A</hostid> beginnt
- unmittelbar nach der Verbindung, LCP-Anforderungen zu
- senden und <hostid>B</hostid> ben&ouml;tigt sieben
- Sekunden, zu starten. Wenn <hostid>B</hostid> startet,
- hat <hostid>A</hostid> bereits drei LCP-Anforderungen
- gesendet. Wir nehmen an, da&szlig; ECHO ausgeschaltet
- ist; andernfalls w&uuml;rden wir Probleme mit der "Magic
- Number" beobachten, wie bereits im vorherigen Abschnitt
- beschrieben. <hostid>B</hostid> sendet eine Anforderung
- und anschlie&szlig;end eine Best&auml;tigung der ersten
- Anforderung von <hostid>A</hostid>. Dies f&uuml;hrt dazu,
- da&szlig; <hostid>A</hostid> in den Zustand
- <acronym>OPENED</acronym> &uuml;bergeht und eine
- Best&auml;tigung (die erste) zur&uuml;ck an
- <hostid>B</hostid> sendet. In der Zwischenzeit sendet
- <hostid>B</hostid> zwei weitere Best&auml;tigungen als
- Antwort auf die zus&auml;tzlichen Anforderungen, die von
- <hostid>A</hostid> gesendet worden sind, bevor
- <hostid>B</hostid> gestartet ist. <hostid>B</hostid>
- empf&auml;ngt dann die erste Best&auml;tigung von
- <hostid>A</hostid> und geht in den Zustand
- <acronym>OPENED</acronym> &uuml;ber. <hostid>A</hostid>
- empf&auml;ngt die zweite Best&auml;tigung von
- <hostid>B</hostid>, geht zur&uuml;ck in den Zustand
- <literal>Anforderung Gesendet</literal> und sendet eine
- weitere (vierte) Anforderung entsprechend dem RFC.
- <hostid>A</hostid> empf&auml;ngt dann die dritte
- Best&auml;tigung und geht in den Zustand
- <acronym>OPENED</acronym> &uuml;ber. In der Zwischenzeit
- empf&auml;ngt <hostid>B</hostid> die vierte Anforderung
- von <hostid>A</hostid>, wechselt in den Zustand
- <literal>ACK-SENT</literal> und sendet eine weitere
- (zweite) Anforderung und (vierte) Best&auml;tigung
- entsprechend dem RFC. <hostid>A</hostid> erh&auml;lt die
- Anforderung, geht in den Zustand
- <literal>REQ-SENT</literal> &uuml;ber, sendet eine weitere
- Anforderung, erh&auml;lt unverz&uuml;glich die
- n&auml;chste Best&auml;tigung und geht in
- <acronym>OPENED</acronym> &uuml;ber.</para>
-
- <para>Das geht so weiter, bis eine Seite erkennt, da&szlig;
- man zu keinem Ergebnis gelangt und aufgibt.</para>
-
- <para>Am besten verhindert man solche Situationen, indem man
- eine Seite als <literal>passiv</literal> konfiguriert,
- d.h. daf&uuml;r sorgt, da&szlig; eine Seite darauf wartet,
- da&szlig; die andere mit den Verhandlungen beginnt. Das
- kann durch den Befehl</para>
-
- <programlisting>
-set openmode passive
- </programlisting>
-
- <para>geschehen. Diese Option sollten Sie mit Vorsicht
- genie&szlig;en. Folgenden Befehl sollten Sie benutzen, um
- die Wartezeit auf den Beginn der Verhandlungen des
- Partners von <application>ppp</application> zu
- begrenzen:</para>
-
- <programlisting>
-set stopped N
- </programlisting>
-
- <para>Alternativ kann der Befehl</para>
-
- <programlisting>
-set openmode active <replaceable>N</replaceable>
- </programlisting>
-
- <para>(wobei <replaceable>N</replaceable> die Wartezeit in
- Sekunden vor Beginn der Verhandlungen angibt) benutzt
- werden. Weitere Details finden Sie in den
- Manualpages</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-lockups">
- <para>ppp schlie&szlig;t kurz nach Aufbau der
- Verbindung.</para>
- </question>
-
- <answer>
- <para>Bei FreeBSD-Versionen vor 2.2.5 konnte es passieren,
- da&szlig; Ihre Verbindung kurz nach dem Aufbau deaktiviert
- wurde, weil <application>ppp</application> die
- Verhandlungen der Kompression Predictor1 falsch handhabte.
- Das passiert nur dann, wenn beide Seiten versuchen, ein
- unterschiedliches Kompressionsprotokoll (Compression
- Control Protocol (CCP)) auszuhandeln. Dieses Problem ist
- bereits behoben, falls Sie aber noch eine alte Version von
- <application>ppp</application> verwenden, k&ouml;nnen Sie
- es mit Hilfe der folgenden Zeile umgehen:</para>
-
- <programlisting>
-disable pred1
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-shell-test-lockup">
- <para>ppp reagiert nicht, wenn ich shell benutze, um es zu
- testen.</para>
- </question>
-
- <answer>
- <para>Wenn Sie den Befehl <command>shell</command> oder
- <command>!</command> benutzen, f&uuml;hrt
- <command>ppp</command> eine Shell aus (falls Sie Argumente
- &uuml;bergeben haben, f&uuml;hrt <command>ppp</command>
- diese Argumente aus). ppp wartet auf die Beendigung des
- Befehls, bevor es seine Arbeit fortsetzt. Falls Sie
- versuchen, die ppp-Verbindung w&auml;hrend der
- Programmausf&uuml;hrung zu benutzen, wird es so aussehen,
- als w&auml;re die Verbindung eingefroren. Das liegt
- daran, da&szlig; <command>ppp</command> auf die Beendigung
- des Befehls wartet.</para>
-
- <para>Falls Sie solche Befehle verwenden m&ouml;chten,
- benutzen Sie stattdessen den Befehl
- <command>!bg</command>. Hierdurch wird der angegebene
- Befehl im Hintergrund ausgef&uuml;hrt und ppp kann
- fortfahren, die Verbindung zu bedienen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nullmodem">
- <para>ppp &uuml;ber ein Null-Modem-Kabel wird niemals
- beendet.</para>
- </question>
-
- <answer>
- <para>Es gibt keine M&ouml;glichkeit f&uuml;r
- <application>ppp</application>, automatisch festzustellen,
- ob eine direkte Verbindung beendet worden ist. Das liegt
- an den Leitungen, die bei einem seriellen Null-Modem-Kabel
- benutzt werden. Wenn Sie diese Art der Verbindung
- verwenden, sollte LQR immer aktiviert werden:</para>
-
- <programlisting>
-enable lqr
- </programlisting>
-
- <para>LQR wird standardm&auml;&szlig;ig akzeptiert, wenn es
- vom Partner ausgehandelt wird.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-auto-noreasondial">
- <para>Warum w&auml;hlt ppp im Modus -auto ohne
- Grund?</para>
- </question>
-
- <answer>
- <para>Falls <application>ppp</application> unerwarteterweise
- w&auml;hlt, m&uuml;ssen Sie den Grund herausfinden und
- W&auml;hlfilter (dfilters) einsetzen, um dies zu
- verhindern.</para>
-
- <para>Benutzen Sie die folgende Zeile, um den Grund
- herauszufinden:</para>
-
- <programlisting>
-set log +tcp/ip
- </programlisting>
-
- <para>Dadurch wird jeglicher Verkehr &uuml;ber die
- Verbindung geloggt. Wenn das n&auml;chste mal unerwartet
- eine Verbindung hergestellt wird, werden Sie den Grund
- zusammen mit einer hilfreichen Zeitangabe in der Logdatei
- finden.</para>
-
- <para>Sie k&ouml;nnen nun das W&auml;hlen aufgrund dieser
- Bedingungen verhindern. Normalerweise wird diese Art von
- Problemen durch Anfragen an den DNS verursacht. Um zu
- verhindern, da&szlig; DNS-Anfragen den Aufbau der
- Verbindung hervorrufen (das verhindert
- <emphasis>nicht</emphasis>, da&szlig; Pakete &uuml;ber
- eine bestehende Verbindung gesendet werden), benutzen Sie
- die folgenden Zeilen:</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>Dies ist nicht immer brauchbar, weil es effektiv Ihre
- F&auml;higkeit, auf Anforderung w&auml;hlen zu k&ouml;nnen
- einschr&auml;nkt - die meisten Programme m&uuml;ssen eine
- DNS-Anfrage durchf&uuml;hren, bevor Sie andere, das
- Netzwerk betreffenden Dinge tun k&ouml;nnen.</para>
-
- <para>Im Fall von DNS sollten Sie versuchen, herauszufinden,
- welches Programm tats&auml;chlich versucht, einen
- Hostnamen aufzul&ouml;sen. Sehr oft handelt es sich hier
- um <application>sendmail</application>. Sie sollten
- sicherstellen, da&szlig; Sie sendmail in der
- Konfigurationsdatei sagen, da&szlig; keine DNS-Anfragen
- durchf&uuml;hren soll. Lesen Sie den Abschnitt zur <link
- linkend="ispmail">Mail-Konfiguration</link>, um Details
- zur Erstellung Ihrer eigenen Konfigurationsdatei und
- dar&uuml;ber, was dort angegeben werden sollte, zu
- erfahren. Sie k&ouml;nnten z.B. die folgende Zeile in
- Ihre <filename>.mc</filename>-Datei einf&uuml;gen:</para>
-
- <programlisting>
-define(`confDELIVERY_MODE', `d')dnl
- </programlisting>
-
- <para>Das veranla&szlig;t sendmail dazu, alles in eine
- Warteschlange einzureihen, bis die Warteschlange
- verarbeitet wird (normalerweise wird sendmail mit
- <option>-bd -q30m</option> aufgerufen, was besagt,
- da&szlig; die Warteschlange alle 30 Minuten abgearbeitet
- wird) oder, bis ein <command>sendmail -q</command>
- ausgef&uuml;hrt wird (z.B. aus Ihrer Datei ppp.linkup
- heraus).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ccp-errors">
- <para>Was bedeuten diese CCP-Fehler?</para>
- </question>
-
- <answer>
- <para>Ich sehe st&auml;ndig folgende Fehler in meiner
- Logdatei:</para>
-
- <programlisting>
-CCP: CcpSendConfigReq
-CCP: Received Terminate Ack (1) state = Req-Sent (6)
- </programlisting>
-
- <para>Das liegt daran, da&szlig; ppp versucht, die
- Komprimierung Predictor1 auszuhandeln und der Partner
- &uuml;ber keinerlei Komprimierung verhandeln will. Die
- Meldungen sind harmlos, aber wenn Sie sie beseitigen
- m&ouml;chten, k&ouml;nnen Sie die Komprimierung Predictor1
- auch lokal ausschalten:</para>
-
- <programlisting>
-disable pred1
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-lockup-ioerrors">
- <para>ppp blockt w&auml;hrend einer Datei&uuml;bertragung
- mit IO-Fehlern.</para>
- </question>
-
- <answer>
- <para>Unter FreeBSD 2.2.2 und fr&uuml;here gab es einen Bug
- im Tun-Treiber, der ankommende Pakete die
- gr&ouml;&szlig;er als die MTU der Tun-Schnittstelle sind,
- ablehnt. Der Empfang eines Paketes gr&ouml;&szlig;er der
- MTU resultiert in einem IO-Fehler, der &uuml;ber syslogd
- geloggt wird.</para>
-
- <para>Die ppp-Spezifikation besagt, da&szlig; eine MTU von
- 1500 <emphasis>immer</emphasis> als Minimum akzeptiert
- werden sollte, ungeachtet aller LCP-Verhandlungen. Es ist
- deshalb m&ouml;glich, da&szlig; Sie die MTU auf unter 1500
- herabsetzen, Ihr ISP wird trotzdem Pakete der
- Gr&ouml;&szlig;e 1500 &uuml;bertragen und Sie werden auf
- diese Fehlfunktion sto&szlig;en, die Ihre Verbindung
- lahmlegt.</para>
-
- <para>Das Problem kann umgangen werden, indem unter FreeBSD
- 2.2.2 und fr&uuml;her niemals eine MTU von weniger als
- 1500 gesetzt wird.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-connectionspeed">
- <para>Warum loggt ppp die Geschwindigkeit meiner Verbindung
- nicht?</para>
- </question>
-
- <answer>
- <para>Um alle Zeilen Ihrer <quote>Modemkonversation</quote>
- mitzuloggen, m&uuml;ssen Sie folgendes einstellen:</para>
-
- <programlisting>
-set log +connect
- </programlisting>
-
- <para>Dies veranla&szlig;t <application>ppp</application>
- dazu, alles bis zur letzten angeforderten
- <quote>expext</quote>-Zeile mitzuloggen.</para>
-
- <para>Falls Sie die Geschwindigkeit Ihrer Verbindung
- erfahren m&ouml;chten und PAP oder CHAP (und deshalb nach
- dem CONNECT im W&auml;hlskript nichts mehr zu
- <quote>chatten</quote> haben - kein <literal>set
- login</literal>-Skript), m&uuml;ssen Sie sicherstellen,
- da&szlig; Sie ppp anweisen, die gesamte CONNECT-Zeile zu
- <quote>erwarten</quote>, etwa so:</para>
-
- <programlisting>
-set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"
- </programlisting>
-
- <para>Hier bekommen wir unser CONNECT, senden nichts,
- erwarten dann einen Line-Feed, der
- <application>ppp</application> zwingt, die gesamte
- CONNECT-Antwort zu lesen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-ignores-backslash">
- <para>ppp ignoriert das Zeichen <literal>\</literal> in
- meinem Chat-Skript.</para>
- </question>
-
- <answer>
- <para>ppp analysiert jede Zeile in Ihrer
- Konfigurationsdatei, damit es Zeichenketten wie z.B.
- <literal>set phone "123 456 789"</literal> korrekt
- interpretieren kann (und erkennen, da&szlig; es sich bei
- der Nummer tats&auml;chlich nur um
- <emphasis>ein</emphasis> Argument handelt). Um das
- Zeichen <literal>"</literal> anzugeben, m&uuml;ssen Sie
- ihm einen Backslash (<literal>\</literal>)
- voranstellen.</para>
-
- <para>Wenn der Chat-Interpreter jedes Argument analysiert,
- reinterpretiert er die Argumente, um irgendwelche
- speziellen Escape-Sequenzen wie z.B. <literal>\P</literal>
- oder <literal>\T</literal> (sehen Sie in die Manualpage)
- zu finden. Das Ergebnis dieser Doppelanalyse ist,
- da&szlig; Sie daran denken m&uuml;ssen, die richtige
- Anzahl an Escape-Zeichen zu verwenden.</para>
-
- <para>Falls Sie tats&auml;chlich das Zeichen
- <literal>\</literal> z.B. zu Ihrem Modem senden
- m&ouml;chten, brauchen Sie etwas &auml;hnliches,
- wie:</para>
-
- <programlisting>
-set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"
- </programlisting>
-
- <para>woraus sich folgende Zeichen ergeben:</para>
-
- <programlisting>
-ATZ
-OK
-AT\X
-OK
- </programlisting>
-
- <para>oder</para>
-
- <programlisting>
-set phone 1234567
-set dial "\"\" ATZ OK ATDT\\T"
- </programlisting>
-
- <para>was folgende Zeichen ergibt:</para>
-
- <programlisting>
-ATZ
-OK
-ATDT1234567
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-segfault-nocore">
- <para>ppp erzeugt einen Segmentation Fault, aber ich finde
- die Datei <filename>ppp.core</filename> nicht.</para>
- </question>
-
- <answer>
- <para>Weder ppp noch andere Programme sollten Core-Dumps
- erzeugen. Da ppp mit der effektiven Benutzerkennung 0
- ausgef&uuml;hrt wird, wird das Betriebssystem ppp's
- Coreimage nicht auf die Festplatte schreiben, bevor es ppp
- beendet hat. Falls ppp jedoch tats&auml;chlich aufgrund
- einer Speicherverletzung abbricht <emphasis>und</emphasis>
- Sie die aktuellste Version (siehe Anfang dieses Kapitels)
- benutzen, dann sollten Sie folgendes tun:</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>Nun ist die installierte Version von ppp mit einem
- Debugger ausf&uuml;hrbar. Sie k&ouml;nnen ppp nun nur
- noch als <username>root</username> ausf&uuml;hren, da alle
- vorherigen Zugriffsrechte aufgehoben worden sind. Achten
- Sie darauf, in welchem Verzeichnis Sie sich gerade
- befinden, wenn Sie ppp starten.</para>
-
- <para>Wenn nun wieder eine Speicherverletzung auftreten
- sollte, wird ppp einen Speicherauszug erzeugen, den Sie in
- der Datei <filename>ppp.core</filename> finden. Sie
- sollten dann folgendes tun:</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>Mit Hilfe all dieser Informationen sollte es
- m&ouml;glich sein, das Problem zu diagnostizieren.</para>
-
- <para>Falls Sie mit dem Umgang mit gdb vertraut sind,
- k&ouml;nnten Sie weitere Einzelheiten herausfinden, z.B.
- wodurch der Fehler tats&auml;chlich hervorgerufen wurde
- und die Adressen &amp; Werte der betreffenden
- Variablen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-autodialprocess-noconnect">
- <para>Ein Proze&szlig;, der einen automatischen
- Einw&auml;hlmodus erzwingt, bekommt keine
- Verbindung</para>
- </question>
-
- <answer>
- <para>Dies war ein bekanntes Problem bei
- <application>ppp</application>-Konfigurationen, bei denen
- automatisch dynamische, lokale IP-Adressen mit dem Partner
- ausgehandelt werden. In der aktuellsten Version ist das
- Problem behoben - suchen Sie in den Manualpages nach
- <literal>iface</literal>.</para>
-
- <para>Das Problem bestand darin, da&szlig;, wenn das erste
- Programm &man.connect.2; aufruft, die IP-Adresse der
- tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der
- Kernel erstellt das erste ausgehende Paket und schreibt es
- in das tun-Ger&auml;t. <application>ppp</application>
- liest dann das Paket und baut eine Verbindung auf. Falls
- die Schnittstellenadresse sich nun aufgrund
- <application>ppp</application>'s dynamischer
- Adre&szlig;zuordnung &auml;ndert, wird der originale
- Socketendpunkt ung&uuml;ltig. Alle weiteren Pakete, die
- zum Partner gesendet werden, werden f&uuml;r
- gew&ouml;hnlich verworfen. Selbst wenn sie nicht
- verworfen werden w&uuml;rden, w&uuml;rden alle Antworten
- nicht an den betreffenden Rechner gelangen, weil die
- IP-Adresse nicht mehr zu diesem Rechner
- geh&ouml;rt.</para>
-
- <para>Theoretisch gibt es mehrere M&ouml;glichkeiten, dieses
- Problem anzugehen. Am sch&ouml;nsten w&auml;re es, wenn
- der Partner die gleiche IP-Adresse wieder zuordnen
- w&uuml;rde, wenn m&ouml;glich <literal>:-)</literal> Die
- derzeitige Version von <application>ppp</application> tut
- das, aber die meisten anderen Implementierungen
- nicht.</para>
-
- <para>Die einfachste Ma&szlig;nahme von unserer Seite
- w&auml;re die, niemals die IP-Adresse der
- tun-Schnittstelle zu &auml;ndern, sondern stattdessen alle
- ausgehenden Pakete so zu &auml;ndern, da&szlig; als
- Absender-IP-Adresse anstelle der IP-Adresse der
- Schnittstelle die ausgehandelte IP-Adresse gesetzt wird.
- Das ist im wesentlichen das, was durch die Option
- <literal>iface-alias</literal> in der aktuellsten Version
- von <application>ppp</application> bewirkt wird (mit
- Unterst&uuml;tzung von &man.libalias.3; und ppp's
- <option>-nat</option> Schalter) - alle
- Schnittstellenadressen werden beibehalten und auf die
- letzte ausgehandelte Adresse umgesetzt.</para>
-
- <para>Eine andere Alternative (und wahrscheinlich die
- zuverl&auml;ssigste) w&auml;re die, einen Systemaufruf zu
- implementieren der die IP-Adressen aller verbundenen
- Sockets von einer Adresse in eine andere &auml;ndert.
- <application>ppp</application> w&uuml;rde diesen Aufruf
- benutzen, um die Sockets aller laufenden Programme zu
- &auml;ndern, nachdem eine neue IP-Adresse ausgehandelt
- worden ist. Der gleiche Systemaufruf k&ouml;nnte von
- DHCP-Clients benutzt werden, wenn sie gezwungen werden,
- einen re-bind() auf ihren Sockets
- auszuf&uuml;hren.</para>
-
- <para>Noch eine andere M&ouml;glichkeit w&auml;re die, das
- Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben.
- Ausgehende Paketen w&uuml;rde die IP-Adressee
- 255.255.255.255 gegeben, bis der erste ioctl() mit
- SIOCAIFADDR erfolgt. Dies w&uuml;rde in der
- vollst&auml;ndigen Verbindung des Sockets resultieren. Es
- w&auml;re die Aufgabe von <application>ppp</application>,
- die Absender-IP-Adresse zu &auml;ndern, allerdings nur
- dann, wenn sie 255.255.255.255 lautet und nur die
- IP-Adresse und IP-Pr&uuml;fsumme m&uuml;&szlig;ten
- ge&auml;ndert werden. Dies w&auml;re allerdings keine
- besonders elegante L&ouml;sung, da der Kernel fehlerhafte
- Pakete an eine unzureichend konfigurierte Schnittstelle
- senden w&uuml;rde, in der Annahme, da&szlig; andere
- Mechanismen in der Lage sind, diese Dinge r&uuml;ckwirkend
- zu beheben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nat-games">
- <para>Warum laufen die meisten Spiele mit dem -nat Schalter
- nicht?</para>
- </question>
-
- <answer>
- <para>Der Grund daf&uuml;r, da&szlig; Spiele und andere
- Programme nicht funktionieren, wenn libalias benutzt wird,
- ist der, da&szlig; der Rechner au&szlig;erhalb des lokalen
- Netzes versucht, eine Verbindung aufzubauen und
- (unaufgefordert) UDP-Pakete an den Rechner innerhalb des
- lokalen Netzes zu senden. Die Software, die f&uuml;r die
- NAT zust&auml;ndig ist, wei&szlig; nicht, da&szlig; sie
- diese Pakete an den internen Rechner weiterleiten
- soll.</para>
-
- <para>Um dies zu beheben, stellen Sie zun&auml;chst sicher,
- da&szlig; die Software, mit der Sie Probleme haben, die
- einzige ist, die gerade l&auml;uft. Benutzen Sie dann
- entweder tcpdump auf der tun-Schnittstelle des Gateways
- oder aktivieren Sie auf dem Gateway das Logging von TCP/IP
- (<literal>set log +tcp/ip</literal>) unter ppp.</para>
-
- <para>Wenn Sie nun das betreffende Programm starten, sollten
- Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn
- von au&szlig;en etwas zur&uuml;ckkommt, wird es ignoriert
- (das ist das Problem). Merken Sie sich die Portnummer
- dieser Pakete und beenden Sie das betreffende Programm.
- Wiederholen Sie diesen Schritt einige Male, um
- festzustellen, ob die Portnummern konsistent sind. Falls
- dem so ist, wird die folgende Zeile im entsprechenden
- Abschnitt von <filename>/etc/ppp/ppp.conf</filename>
- daf&uuml;r sorgen, da&szlig; das Programm
- funktioniert:</para>
-
- <programlisting>
-nat port <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable>
- </programlisting>
-
- <para>wobei f&uuml;r <replaceable>proto</replaceable>
- entweder <literal>tcp</literal> oder
- <literal>udp</literal> zu setzen ist,
- <replaceable>internalmachine</replaceable> den Rechner
- bezeichnet, an den die Pakete geschickt werden sollen und
- <replaceable>port</replaceable> die betreffende
- Portnummer.</para>
-
- <para>Sie k&ouml;nnen das Programm nicht auf einem anderen
- Rechner benutzen, ohne die obige Zeile abzu&auml;ndern und
- die Benutzung des Programms auf zwei internen Rechnern
- steht au&szlig;er Frage - schlie&szlig;lich sieht die
- Au&szlig;enwelt Ihr gesamtes internes Netz so, als
- w&auml;re es ein einzelner Rechner.</para>
-
- <para>Falls die Portnummern nicht konsistent sind, gibt es
- drei weitere Optionen:</para>
-
- <orderedlist>
- <listitem>
- <para>Erm&ouml;glichen Sie die Unterst&uuml;tzung durch
- libalias. Beispiele f&uuml;r <quote>spezielle
- F&auml;lle</quote> finden Sie in
- <filename>/usr/src/lib/libalias/alias_*.c</filename>
- (<filename>alias_ftp.c</filename> ist ein sch&ouml;ner
- Prototyp). Hierzu geh&ouml;rt f&uuml;r
- gew&ouml;hnlich das Lesen bestimmter, erkannter,
- ausgehender Pakete, die Identifizierung der
- Instruktion, die den entfernten Rechner dazu
- veranla&szlig;t, auf einem bestimmten (wahlfreien)
- Port eine Verbindung zur&uuml;ck zum lokalen Rechner
- herzustellen, sowie das Erstellen einer
- <quote>Route</quote> in der Aliastabelle, so da&szlig;
- nachfolgende Pakete wissen, wohin sie
- geh&ouml;ren.</para>
-
- <para>Dieses ist zwar die komplizierteste L&ouml;sung,
- aber die beste, die auch daf&uuml;r sorgt, da&szlig;
- die Software auf mehreren Rechnern
- funktioniert.</para>
- </listitem>
-
- <listitem>
- <para>Benutzen Sie einen Proxy. Die Applikation
- k&ouml;nnte z.B. socks5 unterst&uuml;tzen, oder (wie
- im Fall von <quote>cvsup</quote>) eine Option
- <quote>passiv</quote> besitzen, die stets verhindert,
- da&szlig; verlangt wird, da&szlig; der Partner eine
- Verbindung zur&uuml;ck zur lokalen Maschine
- aufbaut.</para>
- </listitem>
-
- <listitem>
- <para>Leiten Sie mit <literal>nat addr</literal> alles
- zur lokalen Maschine um. Dieses Vorgehen &auml;hnelt
- dem mit einem Vorschlaghammer.</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="useful-port-numbers">
- <para>Hat jemand eine Liste mit n&uuml;tzlichen Portnummern
- erstellt?</para>
- </question>
-
- <answer>
- <para>Noch nicht, aber hieraus k&ouml;nnte eine solche
- entstehen (falls Interesse besteht). In jedem Beispiel
- sollte <replaceable>internal</replaceable> durch die
- IP-Adresse der Maschine ersetzt werden, auf der das Spiel
- laufen soll.</para>
-
- <itemizedlist>
- <listitem>
- <para><application>Asheron's Call</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:65000
- 65000</literal></para>
-
- <para>Konfigurieren Sie das Spiel manuell auf Port 65000
- um. Wenn Sie von mehreren Rechner aus spielen wollen,
- weisen Sie jedem eine eindeutige Portnummer zu (also
- 65001, 65002, u.s.w.) und f&uuml;gen Sie f&uuml;r jede
- Maschine eine eigene <literal>nat port</literal> Zeile
- ein.</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>Alternativ k&ouml;nnen sie wegen
- Proxyunterst&uuml;tzung f&uuml;r Quake unter <ulink
- URL="http://www.battle.net/support/proxy/">www.battle.net</ulink>
- nachsehen.</para>
- </listitem>
-
- <listitem>
- <para><application>Quake 2</application></para>
-
- <para><literal>nat port udp
- <replaceable>internal</replaceable>:27901
- 27910</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>Was sind FCS-Fehler?</para>
- </question>
-
- <answer>
- <para>FCS steht f&uuml;r <literal>F</literal>rame
- <literal>C</literal>heck <literal>S</literal>equence.
- Jedes ppp-Paket besitzt eine Checksumme, um
- sicherzustellen, da&szlig; die empfangenen Daten dieselben
- sind, wie die versendeten. Falls die FCS eines
- ankommenden Paketes fehlerhaft ist, wird das Paket
- verworfen und der Z&auml;hler HDLC FCS wird erh&ouml;ht.
- Der HDLC-Fehlerwert kann durch den Befehl <literal>show
- hdlc</literal> angezeigt werden.</para>
-
- <para>Falls Ihre Leitung schlecht ist (oder falls Ihr
- serieller Treiber Pakete verwirft), werden sie
- gelegentliche FCS-Fehler sehen. Normalerweise lohnt es
- sich nicht, sich hier&uuml;ber Gedanken zu machen, obwohl
- das Kompressionsprotokoll hierdurch wesentlich langsamer
- wird. Wenn Sie ein externes Modem besitzen, stellen Sie
- sicher, da&szlig; Ihr Kabel ausreichend gegen
- Interferenzen abgeschirmt ist - das k&ouml;nnte das
- Problem beseitigen.</para>
-
- <para>Falls Ihre Leitung einfriert, sobald die Verbindung
- steht, und viele FCS-Fehler auftreten, k&ouml;nnte das
- daran liegen, da&szlig; Ihre Leitung nicht 8-Bit-rein ist.
- Stellen Sie sicher, da&szlig; Ihr Modem keinen
- Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre
- Datenschnittstelle Software-Flow-Control verwenden
- <emphasis>mu&szlig;</emphasis>, benutzen Sie den Befehl
- <literal>set accmap 0x000a0000</literal>, um
- <command>ppp</command> zu sagen, da&szlig; es die Zeichen
- <literal>^Q</literal> und <literal>^S</literal> maskieren
- soll.</para>
-
- <para>Ein weiterer Grund daf&uuml;r, da&szlig; zu viele
- FCS-Fehler auftreten, k&ouml;nnte der sein, da&szlig; das
- andere Ende aufgeh&ouml;rt hat, <acronym>ppp</acronym> zu
- sprechen. Aktivieren Sie <literal>async</literal>
- Logging, um festzustellen, ob es sich bei den eingehenden
- Daten tats&auml;chlich um einen login- oder Shell-Prompt
- handelt. Wenn Sie am anderen Ende einen Shell-Prompt
- haben, ist es m&ouml;glich, durch den Befehl
- <literal>close lcp</literal> ppp zu beenden, ohne die
- Verbindung zu beenden (ein folgender <literal>
- term</literal>-Befehl wird Sie wieder mit der Shell auf
- dem entfernten Rechner verbinden.</para>
-
- <para>Falls nichts in Ihrer Logdatei darauf hindeutet, warum
- die Verbindung beendet wurde, sollten Sie den
- Administrator des externen Rechners (Ihren ISP?) fragen,
- warum die Sitzung beendet worden ist.</para>
- </answer>
- </qandaentry>
-
- <qandaentry id=PPPoEwithNAT>
- <question id="macos-win98-pppoe-freeze">
- <para>Wieso h&auml;ngen die Verbindungen meiner MacOS- und
- Windows98(tm)-Maschinen, wenn auf meinem Gateway PPPoE
- l&auml;uft?</para>
- </question>
-
- <answer>
- <para>Vielen Dank an Michael Wozniak
- <email>mwozniak@netcom.ca</email> f&uuml;r die
- Erkl&auml;rung und an Dan Flemming
- <email>danflemming@mac.com</email> f&uuml;r die
- L&ouml;sung f&uuml;r MacOS</para>
-
- <para>Die Ursache des Problems ist ein sogenannter
- <quote>Black Hole Router</quote>. MacOS und Windows 98
- (und wahrscheinlich auch die anderen Betriebssysteme von
- Microsoft) senden TCP Pakete, bei denen zum einen die
- angeforderte Segmentgr&ouml;&szlig;e zu gro&szlig;
- f&uuml;r einen PPPoE-Rahmen ist (die Default-MTU f&uuml;r
- Ethernet betr&auml;gt 1500 Byte) <emphasis>und</emphasis>
- bei denen das <quote>don't fragment</quote> Bit gesetzt
- ist (das ist bei TCP allerdings Standard). Au&szlig;erdem
- sendet der Router beim Provider nicht die eigentlich
- notwendigen <quote>must fragment</quote>-Meldungen zu dem
- Webserver, von dem Sie gerade eine Seite laden wollen. Es
- ist auch m&ouml;glich, da&szlig; diese Meldung zwar
- erzeugt, aber danach von einem Firewall vor dem Webserver
- abgefangen wird. Wenn Ihnen dieser Webserver nun ein
- Paket schickt, das nicht in einen PPPoE-Rahmen pa&szlig;t,
- dann verwirft der Router dieses Paket und die Seite wird
- nicht geladen (einige Seiten/Grafiken werden geladen, weil
- ihre Gr&ouml;&szlig;e kleiner ist als die MSS). Dies
- scheint leider der Normalfall zu sein (wenn die Leute doch
- nur w&uuml;&szlig;ten, wie man einen Router
- konfiguriert... st&ouml;hn...)</para>
-
- <para>Eine der m&ouml;glichen L&ouml;sungen f&uuml;r dieses
- Problem ist die Erzeugung des folgenden Schl&uuml;ssels in
- der Registry des Windows-Clients:</para>
-
- <literallayout>
-HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU
- </literallayout>
-
- <para>Der Wert des Schl&uuml;ssels sollte vom Typ String
- sein und <quote>1450</quote> betragen. Der korrekte Wert
- w&auml;re eigentlich <quote>1464</quote>, wenn die
- TCP-Pakete den PPPoE-Rahmen komplett ausf&uuml;llen
- sollen, aber mit <quote>1450</quote> erhalten Sie eine
- Sicherheitsreserve f&uuml;r andere evtl. genutzte
- IP-Protokolle. Wenn Sie Windows 2000 verwenden,
- m&uuml;ssen Sie dagegen den Schl&uuml;ssel
- <literal>Tcpip\Parameters\Interfaces\<replaceable>ID der
- Netzwerkkarte</replaceable>\MTU</literal>
- benutzen.</para>
-
- <para>Die <ulink
- url="search.support.microsoft.com/kb">Knowledge Base von
- Microsoft</ulink> enth&auml;lt weitere Informationen
- dar&uuml;ber, wie sie die MTU einer Windows-Maschine
- &auml;ndern, damit diese mit einem
- FreeBSD/NAT/PPPoE-Router korrekt zusammenarbeitet. Vom
- besonderen Interesse sind die Artikel <quote>Q158474 -
- Windows TCPIP Registry Entries</quote> und <quote>Q120642
- - TCPIP & NBT Configuration Parameters for Windows
- NT</quote>.</para>
-
- <para>Mit den Bordmitteln von MacOS ist es leider nicht
- m&ouml;glich, die TCP/IP-Einstellungen zu ver&auml;ndern.
- Es gibt jedoch kommerzielle L&ouml;sungen wie zum Beispiel
- OTAdvancedTuner (OT steht f&uuml;r OpenTransport, den
- TCP/IP-Stack von MacOS) von <ulink
- URL="http://www.softworks.com/">Sustainable
- Softworks</ulink>, mit denen man die TCP/IP-Einstellungen
- bearbeiten kann. Wenn Sie als MacOS-Anwender NAT
- benutzen, sollten Sie im entsprechenden drop-down
- Men&uuml; den Punkt <literal>ip_interface_MTU</literal>
- ausw&auml;hlen und in der Dialogbox
- <literal>1450</literal> statt <literal>1500</literal>
- eingeben. Aktivieren Sie den Punkt <literal>Save as Auto
- Configure</literal> und klicken Sie danach auf
- <literal>Make Active</literal>.</para>
-
- <para><application>ppp</application> kennt seit Version 2.3
- den Befehl <command>enable tcpmssfixup</command>, mit dem
- die MSS automatisch korrigiert wird. Wenn Sie einen
- &auml;ltere Version von <application>ppp</application>
- benutzen m&uuml;ssen, k&ouml;nnte der Port
- <application>tcpmssd</application> f&uuml;r Sie
- interessant sein.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="desperation">
- <para>Nichts von alledem hilft - ich bin
- verzweifelt!</para>
- </question>
-
- <answer>
- <para>Falls alles andere fehlschl&auml;gt, senden Sie
- m&ouml;glichst umfangreiche Informationen,
- einschlie&szlig;lich Ihrer Konfigurationsdateien, wie Sie
- <application>ppp</application> starten, die relevanten
- Teile Ihrer Logdateien und die Ausgabe des Befehls
- <command>netstat -rn</command> (vor und nach Aufbau der
- Verbindung) an die Mailingliste
- <email>de-bsd-questions@de.FreeBSD.org</email> oder die
- Newsgroup <ulink
- URL="news:de.comp.os.unix.bsd">de.comp.os.unix.bsd</ulink>.
- Irgend jemand sollte Ihnen dann weiterhelfen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="free-account">
- <para>Wo kann ich einen freien FreeBSD-Account bekommen?</para>
- </question>
-
- <answer>
- <para>Das FreeBSD-Projekt bietet zwar keinen freien Zugang
- zu seinen Servern an; andere Firmen bieten jedoch frei
- zug&auml;ngliche Unix-Systeme. Die Kosten variieren und
- es kann sein, da&szlig; nicht alle Dienste zur
- Verf&uuml;gung stehen.</para>
-
- <para><ulink URL="http://www.arbornet.org/">Arbornet,
- Inc</ulink>, auch als M-Net bekannt, bietet seit 1983
- uneingeschr&auml;nkten Zugang zu Unix-Systemen.
- Zun&auml;chst wurde eine Altos-Maschine mit System III
- benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im
- Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu
- FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den
- Zugang zur gesammten Software von FreeBSD. Allerdings ist
- der Zugriff auf das Netzwerk auf Mitglieder und
- G&ouml;nner beschr&auml;nkt, die eine Spende an die
- nicht-kommerzielle Organisation geleistet haben. M-Net
- stellt zus&auml;tzlich ein Mailbox-System und einen
- interaktiven Chat zur Verf&uuml;gung.</para>
-
- <para><ulink URL="http://www.grex.org/">Grex</ulink> bietet
- ein ganz &auml;hnlichen Dienst wie M-Net an, dazu
- geh&ouml;ren auch das Mailbox-System und der interaktive
- Chat. Allerdings wird eine SUN4M mit SunOS
- benutzt.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="serial">
- <!--
- The FreeBSD German Documentation Project FAQ - serial
- communications,
- Uebersetzer: Robert S. F. Drehmel
-
- Original revision 1.54
- -->
-
- <title>Serielle Verbindungen</title>
-
- <para>Dieses Kapitel beantwortet h&auml;ufig gestellte Fragen zu
- seriellen Verbindungen mit FreeBSD. PPP und SLIP werden in
- <xref linkend="networking" remap="Netzwerke"> behandelt.</para>
-
- <qandaset>
- <qandaentry>
- <question id="found-serial">
- <para>Wie kann ich feststellen, ob FreeBSD meine seriellen
- Schnittstellen gefunden hat?</para>
- </question>
-
- <answer>
- <para>Wenn der FreeBSD Kernel bootet, testet er die
- seriellen Schnittstellen, f&uuml;r die er konfiguriert
- wurde. Sie k&ouml;nnen entweder Ihrem System aufmerksam
- beim booten zusehen und nach den Nachrichten Ausschau
- halten, oder Sie f&uuml;hren den Befehl</para>
-
- <screen>
-&prompt.user; <userinput>dmesg | grep sio</userinput>
- </screen>
-
- <para>aus, nachdem Ihr System hochgefahren ist und
- l&auml;uft.</para>
-
- <para>Hier ist ein Beispiel einer Ausgabe nach dem oben
- genannten Befehl:</para>
-
- <programlisting>
-si0: at 0x3f8-0x3ff irq 4 on isa
-si0: type 16550A
-si1: at 0x2f8-0x2ff irq 3 on isa
-si1: type 16550A
- </programlisting>
-
- <para>Es zeigt zwei serielle Schnittstellen. Die erste
- liegt auf Port-Adresse <literal>0x3f8</literal>, nutzt IRQ
- 4, und hat einen 16550A UART Chip. Die zweite benutzt
- ebenfalls einen 16550A, liegt aber auf Port-Adresse
- <literal>0x2f8</literal> und nutzt IRQ 3. Modemkarten
- werden wie serielle Schnittstellen behandelt. Der einzige
- Unterschied ist, da&szlig; an diesen Schnittstellen immer
- ein Modem <quote>angeschlossen</quote> ist.</para>
-
- <para>Der <filename>GENERIC</filename> Kernel beinhaltet
- Unterst&uuml;tzung f&uuml;r zwei serielle Schnittstellen,
- die den im Beispiel genannten Port und IRQ nutzen. Wenn
- diese Einstellungen nicht richtig f&uuml;r Ihr System
- sind, Sie Modemkarten hinzugef&uuml;gt haben oder mehr
- serielle Schnittstellen haben als Ihre
- Kernel-Konfiguration zul&auml;&szlig;t, konfigurieren Sie
- Ihren Kernel einfach neu. In der Sektion <link
- linkend="make-kernel">wie man einen Kernel erstellt</link>
- finden Sie mehr Details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="found-modem">
- <para>Wie kann ich feststellen, ob FreeBSD meine Modemkarten
- gefunden hat?</para>
- </question>
-
- <answer>
- <para>Die vorherige Frage sollte darauf eine Antwort
- geben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-tty0X">
- <para>Ich habe gerade auf 2.0.5 geupdatet und meine
- <filename>tty0X</filename> fehlen!</para>
- </question>
-
- <answer>
- <para>Keine Sorge, die wurden mit den
- <filename>ttydX</filename> Ger&auml;ten
- zusammengef&uuml;hrt. Sie m&uuml;ssen allerdings die
- alten Konfigurationsdateien &auml;ndern.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="access-serial-ports">
- <para>Wie kann ich auf die seriellen Schnittstellen in
- FreeBSD zugreifen?</para>
- </question>
-
- <answer>
- <para>Die dritte serielle Schnittstelle,
- <devicename>sio2</devicename> (in DOS/Windows: COM3),
- verwendet <filename>/dev/cuaa2</filename> f&uuml;r
- dial-out Ger&auml;te und <filename>/dev/ttyd2</filename>
- f&uuml;r dial-in Ger&auml;te. Was ist der Unterschied
- zwischen den beiden Ger&auml;teklassen?</para>
-
- <para>Sie benutzen <filename>ttydX</filename> f&uuml;r
- dial-ins. Wenn man <filename>/dev/ttydX</filename> im
- blockierenden Modus &ouml;ffnet, wartet ein Proze&szlig;
- darauf, da&szlig; das entsprechende
- <filename>cuaaX</filename> Ger&auml;t inaktiv und
- <quote>Carrier Detect</quote> aktiv wird. Wenn Sie das
- <filename>cuaaX</filename> Ger&auml;t &ouml;ffnen,
- vergewissert es sich, da&szlig; die serielle Schnittstelle
- nicht bereits von dem <filename>ttydX</filename>
- Ger&auml;t benutzt wird. Wenn die Schnittstelle
- verf&uuml;gbar ist, <quote>stiehlt</quote> es sie von dem
- <filename>ttydX</filename> Ger&auml;t. Das
- <filename>cuaaX</filename> Ger&auml;t k&uuml;mmert sich
- nicht um Tr&auml;gersignalerkennung. Mit diesem Schema
- und einem automatisch antwortenden Modem, k&ouml;nnen sich
- Benutzer von au&szlig;en einloggen, weiterhin mit dem
- selben Modem w&auml;hlen und das System k&uuml;mmert sich
- um die Konflikte.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="enable-multiport-serial">
- <para>Wie kann ich die Unterst&uuml;tzung f&uuml;r eine
- Karte mit mehreren seriellen Schnittstellen
- aktivieren?</para>
- </question>
-
- <answer>
- <para>Die Sektion &uuml;ber die Kernelkonfiguration bietet
- Informationen dar&uuml;ber, wie Sie Ihren Kernel
- konfigurieren. F&uuml;r eine Karte mit mehreren seriellen
- Schnittstellen, schreiben Sie eine
- <devicename>sio</devicename> Zeile f&uuml;r jede serielle
- Schnittstelle auf der Karte in die
- Kernel-Konfigurationsdatei. Aber achten Sie darauf, den
- IRQ und die Verktorbezeichnung nur in einem der
- Eintr&auml;ge zu plazieren. Alle seriellen Schnittstellen
- auf der Karte sollten sich einen IRQ teilen. Daher
- sollten Sie den IRQ nur beim letzten Eintrag angeben.
- Aktivieren Sie auch die <literal>COM_MULTIPORT</literal>
- Option.</para>
-
- <para>Das folgende Beispiel ist f&uuml;r eine AST Karte mit
- 4 seriellen Schnittstellen, die IRQ 7 benutzt,
- geeignet:</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>Die Flags zeigen an, da&szlig; die
- Master-Schnittstelle die Minor-Nummer 7
- (<literal>0x700</literal>) hat, Diagnosen w&auml;hrend des
- Bootens erm&ouml;glicht sind (<literal>0x080</literal>),
- und da&szlig; sich alle Schnittstellen einen IRQ teilen
- (<literal>0x001</literal>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-share-irq">
- <para>Kann FreeBSD mehrere Karten mit mehreren seriellen
- Schnittstellen mit den gleichen IRQs verwalten?</para>
- </question>
-
- <answer>
- <para>Noch nicht. Sie m&uuml;ssen f&uuml;r jede Karte einen
- anderen IRQ verwenden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="default-serial-params">
- <para>Kann ich die vorgegebenen seriellen Parameter f&uuml;r
- eine Schnittstelle einstellen?</para>
- </question>
-
- <answer>
- <para>Das <filename>ttydX</filename> (oder
- <filename>cuaaX</filename>) Ger&auml;t ist das
- regul&auml;re Ger&auml;t, das man in Anwendungen
- &ouml;ffnet. Wenn ein Proze&szlig; es &ouml;ffnet, hat es
- die voreingestellten Terminal
- Eingabe/Ausgabe-Einstellungen. Sie k&ouml;nnen diese
- Einstellungen mit dem folgenden Befehl ansehen</para>
-
- <screen>
-&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput>
- </screen>
-
- <para>Wenn Sie die Einstellungen f&uuml;r dieses Ger&auml;t
- &auml;ndern, sind die Einstellungen g&uuml;ltig, bis das
- Ger&auml;t geschlossen wird. Wird es danach
- ge&ouml;ffnet, hat es wieder die vorgegebenen
- Einstellungen. Um &Auml;nderungen an den voreingestellten
- Einstellungen vorzunehmen, k&ouml;nnen Sie die
- Einstellungen des <quote>inital state</quote> Ger&auml;ts
- &ouml;ffnen und anpassen. Beispiel: um den
- <acronym>CLOCAL</acronym> Modus, 8 Bits und
- <command>XON/XOFF</command> Datenflu&szlig;kontrolle als
- Standard f&uuml;r ttyd5 einzustellen:</para>
-
- <screen>
-&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput>
- </screen>
-
- <para>Eine gute Stelle um dies zu tun ist in
- <filename>/etc/rc.serial</filename>. Jetzt hat eine
- Anwendung diese Einstellungen als Standardwerte, wenn sie
- <filename>ttyd5</filename> &ouml;ffnet. Die Anwendung
- kann die Einstellungen jedoch immer noch nach Belieben
- ver&auml;ndern.</para>
-
- <para>Man aber kann auch bestimme Einstellungen davor
- sch&uuml;tzen, von einer Anwendung ver&auml;ndert zu
- werden, indem man Ver&auml;nderungen am <quote>lock
- state</quote> Ger&auml;t vornimmt. Um zum Beispiel die
- Geschwindigkeit von <filename>ttyd5</filename> auf 57600
- festzusetzen:</para>
-
- <screen>
-&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput>
- </screen>
-
- <para>Wenn jetzt eine Anwendung <filename>ttyd5</filename>
- &ouml;ffnet, und versucht die Geschwindigkeit zu
- ver&auml;ndern, wird sie den Wert nicht ver&auml;ndern
- k&ouml;nnen und es bleibt bei 57600 bps.</para>
-
- <para>Nat&uuml;rlich sollten Sie das Schreiben auf die
- initial state und lock state Ger&auml;te nur
- <username>root</username> erlauben. Das MAKEDEV Skript
- tut dies <emphasis>nicht</emphasis>, wenn es die
- Ger&auml;te-Eintr&auml;ge erstellt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="enable-dialup">
- <para>Wie kann ich Einwahl-Logins &uuml;ber mein Modem
- aktivieren?</para>
- </question>
-
- <answer>
- <para>Also Sie wollen ein Internet Service Provider werden,
- ja? Als erstes brauchen Sie eines oder mehrere Modems,
- die automatisches Antworten beherrschen. Ihr Modem sollte
- auf Tr&auml;gererkennung reagieren und nicht fortlaufend
- die Leitung offen halten. Es mu&szlig; auflegen und sich
- neu initialisieren k&ouml;nnen, wenn die <quote>Data
- Terminal Ready</quote> (<acronym>DTR</acronym>) Leitung
- ausgeschaltet wird. Es sollte vielleicht
- <acronym>RTS/CTS</acronym> oder gar keine lokale
- Datenflu&szlig;kontrolle benutzen. Zuletzt mu&szlig; es
- eine konstante Geschwindigkeit zwischen dem Computer und
- sich selbst verwenden, aber es sollte (um die Anrufer
- freundlich zu behandeln) eine Geschwindigkeit zwischen
- sich selbst und dem entfernten Modem aushandeln
- k&ouml;nnen.</para>
-
- <para>Bei den meisten Hayes-kompatiblen Modems erzeugt der
- folgende Befehl diese Einstellungen und legt sie im
- nicht-fl&uuml;chtigen Speicher ab.</para>
-
- <programlisting>
-AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W
- </programlisting>
-
- <para>Die Sektion <link linkend="direct-at">wie man AT
- Befehle sendet</link> bietet weitere Informationen, wie
- man diese Einstellungen vornimmt, ohne zu einem MS-DOS
- Terminal Programm zu fl&uuml;chten.</para>
-
- <para>Als n&auml;chstes erstellen Sie einen Eintrag in
- <filename>/etc/ttys</filename> f&uuml;r das Modem. Diese
- Datei listet alle Schnittstellen auf, auf denen das
- Betriebssystem logins erwartet. F&uuml;gen Sie eine
- solche Zeile hinzu:</para>
-
- <programlisting>
-ttyd1 "/usr/libexec/getty std 57600" dialup on insecure
- </programlisting>
-
- <para>Diese Zeile bedeutet, da&szlig; an der zweiten
- seriellen Schnittstelle (<filename>/dev/ttyd1</filename>)
- ein Modem angeschlossen ist, das mit 57600 bps l&auml;uft
- und keine Parit&auml;t besitzt
- (<literal>std.57600</literal>, aus
- <filename>/etc/gettytab</filename>). Der Terminal-Typ
- f&uuml;r diese Schnittstelle ist Einwahl
- (<literal>dialup</literal>). Die Schnittstelle ist
- eingeschaltet (<literal>on</literal>) und unsicher
- (<literal>unsecure</literal>) -- das bedeutet, man kann
- sich &uuml;ber diese Schnittstelle nicht als
- <username>root</username> einloggen. F&uuml;r
- Einwahlanschl&uuml;sse wie diesen, benutzen Sie den
- <literal>ttydX</literal> Eintrag.</para>
-
- <para>Es ist relativ gel&auml;ufig,
- <literal>dialup</literal> als Terminal-Typ zu verwenden.
- Viele Benutzer richten in ihren
- <filename>.profile</filename> oder
- <filename>.login</filename> Dateien eine Abfrage f&uuml;r
- das eigentliche Terminal ein, wenn der Start-Typ
- <literal>dialup</literal> ist. Das Beispiel zeigt die
- Schnittstelle als unsicher und um &uuml;ber diese
- Schnittstelle <username>root</username> zu werden,
- m&uuml;ssen Sie sich als normaler Benutzer einloggen und
- <command>su</command> benutzen. Wenn sie sicher
- (<literal>secure</literal>) als Einstellung verwenden,
- kann sich <username>root</username> direkt
- einloggen.</para>
-
- <para>Nachdem Sie Modifikationen in
- <filename>/etc/ttys</filename> vorgenommen haben,
- m&uuml;ssen Sie ein <acronym>hangup</acronym> oder
- <acronym>HUP</acronym> Signal an <command>init</command>
- senden:</para>
-
- <screen>
-&prompt.root; <userinput>kill -HUP 1</userinput>
- </screen>
-
- <para>Das bringt <command>init</command> dazu, die Datei
- <filename>/etc/ttys</filename> neu einzulesen.
- <command>init</command> startet dann an allen
- eingeschalteten (<literal>on</literal>) Schnittstellen die
- getty-Prozesse. Sie k&ouml;nnen herausfinden ob noch
- logins f&uuml;r Ihre Schnittstelle verf&uuml;gbar sind,
- wenn Sie folgendes eingeben:</para>
-
- <screen>
-&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput>
- </screen>
-
- <para>Sie sollten etwas sehen, das so &auml;hnlich aussieht,
- wie:</para>
-
- <programlisting>
-747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dumb-terminal">
- <para>Wie kann ich ein Hardware-Terminal mit meiner FreeBSD
- Box verbinden?</para>
- </question>
-
- <answer>
- <para>Wenn Sie einen anderen Computer als Terminal f&uuml;r
- Ihr FreeBSD System verwenden wollen, verbinden Sie die
- beiden seriellen Schnittstellen mit einem Nullmodem-Kabel.
- Wenn Sie ein "echtes" (Hardware-)Terminal benutzen, lesen
- Sie die Begleitinformationen.</para>
-
- <para>&Auml;ndern Sie <filename>/etc/ttys</filename> wie
- oben angegeben. Wenn Sie zum Beispiel ein WYSE-50
- Terminal mit der f&uuml;nften seriellen Schnittstelle
- verbinden wollen, schreiben Sie einen Eintrag wie
- diesen:</para>
-
- <programlisting>
-ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
- </programlisting>
-
- <para>Das Beispiel zeigt, da&szlig; die Schnittstelle an
- <filename>/dev/ttyd4</filename> mit einem wyse50 Terminal
- mit 38400 bps und ohne Parit&auml;t
- (<literal>std.38400</literal> aus
- <filename>/etc/gettytab</filename>) verbunden ist und
- <username>root</username> logins m&ouml;glich sind
- (<literal>secure</literal>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cannot-tip">
- <para>Warum kann ich <command>tip</command> oder
- <command>cu</command> nicht laufen lassen?</para>
- </question>
-
- <answer>
- <para>Vielleicht sind auf Ihrem System die Programme
- <command>tip</command> und <command>cu</command> nur von
- <username>uucp</username> und der Gruppe
- <literal>dialer</literal> ausf&uuml;hrbar. Sie
- k&ouml;nnen die Gruppe <literal>dialer</literal>
- verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem
- oder entfernte Systeme hat. F&uuml;gen Sie Sich einfach
- selbst zur Gruppe <literal>dialer</literal> hinzu.</para>
-
- <para>Als Alternative k&ouml;nnen Sie jeden Benutzer auf
- Ihrem System <command>tip</command> und
- <command>cu</command> verwenden lassen, dazu m&uuml;ssen
- Sie das folgende eingeben:</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>Mein Hayes Modem wird nicht unterst&uuml;tzt -- was
- kann ich tun?</para>
- </question>
-
- <answer>
- <para>Eigentlich ist die man page f&uuml;r
- <command>tip</command> nicht mehr aktuell. Es gibt einen
- eingebauten, allgemeinen Hayes W&auml;hler. Verwenden Sie
- einfach <literal>at=hayes</literal> in
- <filename>/etc/remote</filename>.</para>
-
- <para>Der Hayes Treiber ist nicht schlau genug, um ein paar
- der erweiterten Merkmale von neueren Modems zu erkennen --
- Nachrichten wie <literal>BUSY</literal>, <literal>NO
- DIALTONE</literal> oder <literal>CONNECT 115200</literal>
- verwirren ihn nur. Sie sollten diese Nachrichten mit
- Hilfe von <literal>ATX0&amp;W</literal> abschalten, wenn
- sie <command>tip</command> benutzen.</para>
-
- <para>Das Anwahl-Timeout von <command>tip</command>
- betr&auml;gt 60 Sekunden. Ihr Modem sollte weniger
- verwenden, oder <command>tip</command> denkt, da&szlig;
- ein Kommunikationsfehler vorliegt. Versuchen Sie es mit
- <literal>ATS7=45&amp;W</literal>.</para>
-
- <para>Tats&auml;chlich unterst&uuml;tzt die ausgelieferte
- Version von <command>tip</command> es noch nicht
- vollst&auml;ndig. Die L&ouml;sung ist
- <filename>tipconf.h</filename> im Verzeichnis
- <filename>/usr/src/usr.bin/tip/tip</filename> zu
- editieren. Daf&uuml;r ben&ouml;tigen Sie nat&uuml;rlich
- die Quellcode Distribution.</para>
-
- <para>Editieren Sie die Zeile <literal>#define HAYES
- 0</literal> in <literal>#define HAYES 1</literal> um.
- Dann f&uuml;hren Sie <command>make</command> und
- <command>make install</command> aus. Es sollte jetzt
- funktionieren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="direct-at">
- <para>Wie soll ich die AT Befehle eingeben?</para>
- </question>
-
- <answer>
- <para>Erstellen Sie einen sogenannten
- <literal>direct</literal> Eintrag in
- <filename>/etc/remote</filename>. Wenn Ihr Modem zum
- Beispiel an der ersten seriellen Schnittstelle,
- <filename>/dev/cuaa0</filename> angeschlossen ist, dann
- f&uuml;gen Sie die folgende Zeile hinzu:</para>
-
- <programlisting>
-cuaa0:dv=/dev/cuaa0:br#19200:pa=none
- </programlisting>
-
- <para>Verwenden Sie die h&ouml;chste bps Rate, die Ihr Modem
- in der br F&auml;higkeit unterst&uuml;tzt. Geben Sie dann
- <command>tip cuaa0</command> ein und Sie sind mit Ihrem
- Modem verbunden.</para>
-
- <para>Wenn auf Ihrem System keine
- <filename>/dev/cuaa0</filename> Datei existiert, geben Sie
- folgendes ein:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV cuaa0</userinput>
- </screen>
-
- <para>Oder benutzen Sie cu als <username>root</username> mit
- dem folgenden Befehl</para>
-
- <screen>
-&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput>
- </screen>
-
- <para>&lt;line&gt; steht f&uuml;r die serielle Schnittstelle
- (<filename>/dev/cuaa0</filename>) und &lt;speed&gt;
- f&uuml;r die Geschwindigkeit (<literal>57600</literal>).
- Wenn Sie mit dem Eingeben der AT Befehle fertig sind,
- beenden Sie mit <literal>~.</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="gt-failure">
- <para>Das <literal>&lt;@&gt;</literal> Zeichen f&uuml;r die
- pn F&auml;higkeit funktioniert nicht!</para>
- </question>
-
- <answer>
- <para>Das <literal>&lt;@&gt;</literal> Zeichen in der
- Telefonnummerf&auml;higkeit sagt tip, da&szlig; es in der
- Datei <filename>/etc/phones</filename> nach einer Nummer
- suchen soll. Aber <literal>&lt;@&gt;</literal> ist auch
- ein spezielles Zeichen in den Dateien, in denen
- F&auml;higkeiten beschrieben werden, wie
- <filename>/etc/remote</filename>. Schreiben Sie es mit
- einem '\' (backslash):</para>
-
- <programlisting>pn=\@</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dial-command-line">
- <para>Wie kann ich von der Kommandozeile eine Telefonnummer
- w&auml;hlen?</para>
- </question>
-
- <answer>
- <para>Stellen Sie einen <quote>allgemeinen</quote> Eintrag
- in <filename>/etc/remote</filename>. Zum
- Beispiel:</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>Mit einem Befehl wie <command>tip -115200
- 5551234</command> k&ouml;nnen Sie dann w&auml;hlen. Wenn
- Sie <command>cu</command> im Gegensatz zu
- <command>tip</command> bevorzugen, verwenden Sie einen
- allgemeinen cu-Eintrag:</para>
-
- <programlisting>
-cu115200|Use cu to dial any number at 115200bps:\
- :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
- </programlisting>
-
- <para>Zum W&auml;hlen k&ouml;nnen Sie dann <command>cu
- 5551234 -s 115200</command> eingeben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="set-bps">
- <para>Mu&szlig; ich dabei jedes Mal die bps Rate
- angeben?</para>
- </question>
-
- <answer>
- <para>Schreiben Sie einen <literal>tip1200</literal> oder
- einen <literal>cu1200</literal> Eintrag, aber benutzen Sie
- auch die bps Rate, die Ihr Modem wirklich
- unterst&uuml;tzt. Leider denkt <command>tip</command>,
- da&szlig; 1200 bps ein guter Standardwert ist und deswegen
- sucht es nach einem <literal>tip1200</literal>-Eintrag.
- Nat&uuml;rlich m&uuml;ssen Sie nicht wirklich 1200 bps
- benutzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="terminal-server">
- <para>Ich greife auf ein paar Rechner &uuml;ber einen
- Terminal-Server zu.</para>
- </question>
-
- <answer>
- <para>Sie m&uuml;ssen nicht warten bis Sie verbunden sind,
- und jedesmal <emphasis>CONNECT
- <replaceable>Rechner</replaceable></emphasis> eingeben,
- benutzen Sie tip's <literal>cm</literal> F&auml;higkeit.
- Sie k&ouml;nnen diese Eintr&auml;ge in
- <filename>/etc/remote</filename> verwenden:</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>Mit den Befehlen <command>tip pain</command> oder
- <command>tip muffin</command> k&ouml;nnen Sie eine
- Verbindungen zu den Rechnern pain oder muffin herstellen;
- mit <command>tip deep13</command> verbinden Sie Sich mit
- dem Terminal Server</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tip-multiline">
- <para>Kann tip mehr als eine Verbindung f&uuml;r jede Seite
- testen?</para>
- </question>
-
- <answer>
- <para>Das ist oft ein Problem, wenn eine Universit&auml;t
- mehrere Telefonleitungen hat und viele tausend Studenten
- diese benutzen wollen.</para>
-
- <para>Erstellen Sie einen Eintrag f&uuml;r Ihre
- Universit&auml;t in <filename>/etc/remote</filename> und
- benutzen Sie <literal>&lt;\@&gt;</literal> f&uuml;r die
- <literal>pn</literal> F&auml;higkeit:</para>
-
- <programlisting>
-big-university:\
- :pn=\@:tc=dialout
-dialout:\
- :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
- </programlisting>
-
- <para>Listen Sie die Telefonnummern f&uuml;r die
- Universit&auml;ten in <filename>/etc/phones</filename>
- auf:</para>
-
- <programlisting>
-big-university 5551111
-big-university 5551112
-big-university 5551113
-big-university 5551114
- </programlisting>
-
- <para><command>tip</command> testet jede der Nummern in der
- aufgelisteten Reihenfolge und gibt dann auf. Wenn Sie
- wollen, da&szlig; <command>tip</command> immer weiter
- probiert eine Verbindung herzustellen, lassen Sie
- <command>tip</command> in einer while-schleife
- laufen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multi-controlp">
- <para>Warum mu&szlig; ich zweimal CTRL-P tippen um ein
- CTRL-P zu senden?</para>
- </question>
-
- <answer>
- <para>CTRL-P ist das voreingestellte Zeichen, mit dem eine
- Uebertragung erzwungen werden kann und wird benutzt, um
- <command>tip</command> zu sagen, da&szlig; das
- n&auml;chste Zeichen direkt gesendet werden soll und kein
- Escape ist. Mit Hilfe des <literal>~s</literal> Escapes,
- mit dem man Variablen setzen kann, k&ouml;nnen Sie jedes
- andere Zeichen als <quote>force</quote>-Zeichen
- definieren.</para>
-
- <para>Geben Sie
- <literal>~sforce=<replaceable>zeichen</replaceable></literal>
- ein und dr&uuml;cken sie enter. Fuer
- <replaceable>zeichen</replaceable> k&ouml;nnen sie ein
- beliebiges einzelnes Zeichen einsetzen. Wenn Sie
- <replaceable>zeichen</replaceable> weglassen, ist das
- <quote>force</quote>-Zeichen der nul character, den sie
- mit CTRL-2 oder CTRL-SPACE eingeben k&ouml;nnen. Ein
- guter Wert f&uuml;r <replaceable>zeichen</replaceable> ist
- SHIFT+CTRL+6, welches ich erst auf ein paar Terminal
- Servern in Benutzung gesehen habe.</para>
-
- <para>Sie k&ouml;nnen das <quote>force</quote>-Zeichen auch
- bestimmen, indem Sie in
- <filename>&#36;HOME/.tiprc</filename> das folgende
- einstellen:</para>
-
- <programlisting>
-force=<replaceable>single-char</replaceable>
- </programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uppercase">
- <para>Auf einmal ist alles was ich schreibe in
- GROSSBUCHSTABEN??</para>
- </question>
-
- <answer>
- <para>Sie m&uuml;ssen CTRL-A eingegeben haben, das
- <quote>raise</quote>-Zeichen von <command>tip</command>,
- das speziell f&uuml;r Leute mit defekten caps-lock Tasten
- eingerichtet wurde. Benutzen Sie <literal>~s</literal>
- wie oben und setzen Sie die Variable
- <quote>raisechar</quote> auf etwas, das Ihnen angemessen
- erscheint. Tats&auml;chlich kann die Variable auf das
- gleiche Zeichen wie das <quote>force</quote>-Zeichen
- gesetzt werden, wenn Sie diese F&auml;higkeiten niemals
- benutzen wollen.</para>
-
- <para>Hier ist eine Muster <filename>.tiprc</filename>
- Datei, perfekt f&uuml;r emacs Benutzer die oft CTRL-2 und
- CTRL-A tippen m&uuml;ssen:</para>
-
- <programlisting>
-force=^^
-raisechar=^^
- </programlisting>
-
- <para>Das ^^ steht f&uuml;r SHIFT-CTRL-6.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tip-filetransfer">
- <para>Wie kann ich Dateien mit <command>tip</command>
- &uuml;bertragen?</para>
- </question>
-
- <answer>
- <para>Wenn Sie mit einem anderen UNIX-System kommunizieren,
- k&ouml;nnen Sie Dateien senden und empfangen -- mit
- <literal>~p</literal> (put) und <literal>~t</literal>
- (take). Diese Befehle lassen <command>cat</command> und
- <command>echo</command> auf dem entfernten System laufen,
- um Dateien zu akzeptieren und zu senden. Die Syntax
- ist:</para>
-
- <programlisting>
-~p &lt;local-file&gt; [&lt;remote-file&gt;]
-~t &lt;remote-file&gt; [&lt;local-file&gt;]
- </programlisting>
-
- <para>Es gibt keine Fehlerkontrolle, also sollten Sie
- vielleicht ein anderes Protokoll benutzen, wie
- zmodem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="zmodem-tip">
- <para>Wie kann ich zmodem mit <application>tip</application>
- laufen lassen?</para>
- </question>
-
- <answer>
- <para>Zuerst installieren Sie ein zmodem Programm aus der
- Ports-Sammlung (eines der beiden aus der comms-Kategorie,
- <application>lrzsz</application> oder
- <application>rzsz</application>).</para>
-
- <para>Um Dateien zu empfangen, starten Sie das Programm zum
- Senden auf dem entfernten Computer. Dr&uuml;cken Sie dann
- Enter gefolgt von <literal>~C rz</literal> (oder
- <literal>~C lrz</literal>, wenn Sie lrzsz installiert
- haben), um diese lokal zu empfangen.</para>
-
- <para>Um Dateien zu senden, starten Sie das Programm zum
- empfangen auf dem entfernten Computer. Dr&uuml;cken Sie
- dann Enter gefolgt von <literal>~C sz
- <replaceable>Dateien</replaceable></literal> (oder
- <literal>~C lsz
- <replaceable>Dateien</replaceable></literal>), um sie zum
- entfernten System zu senden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cannot-find-serial">
- <para>FreeBSD scheint meine seriellen Schnittstellen nicht
- zu finden, auch wenn die Einstellungen korrekt
- sind.</para>
- </question>
-
- <answer>
- <para>Hauptplatinen und Karten mit Acer UARTs werden im
- FreeBSD sio test nicht richtig erkannt. Sie erhalten
- einen Patch von <ulink
- URL="http://www.lemis.com/serial-port-patch.html">www.lemis.com</ulink>,
- mit dem Sie das Problem beheben k&ouml;nnen.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="misc">
- <title>Verschiedene Fragen</title>
-
- <qandaset>
- <qandaentry>
- <question id="more-swap">
- <para>FreeBSD benutzt viel mehr Swap-Speicher als Linux.
- Warum?</para>
- </question>
-
- <answer>
- <para>Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt,
- als Linux. Tats&auml;chlich ist dies nicht der Fall. In
- dieser Hinsicht besteht der Hauptunterschied zwischen
- FreeBSD und Linux darin, da&szlig; FreeBSD vorbeugend
- vollkommen unt&auml;tige, unbenutzte Seiten aus dem
- Hauptspeicher in den Swap-Bereich auslagert, um mehr
- Hauptspeicher f&uuml;r die aktive Nutzung zur
- Verf&uuml;gung zu stellen. Linux tendiert dazu, nur als
- letzten Ausweg Seiten in den Swap-Bereich auszulagern.
- Die sp&uuml;rbar h&ouml;here Nutzung des Swap-Speichers
- wird durch die effizientere Nutzung des Hauptspeichers
- wieder ausgeglichen.</para>
-
- <para>Beachten Sie, da&szlig; FreeBSD in dieser Hinsicht
- zwar vorbeugend arbeitet, es entscheidet jedoch nicht
- willk&uuml;rlich, Seiten auszulagern, wenn das System
- vollkommen unt&auml;tig ist. Deshalb werden Sie
- feststellen, da&szlig; nicht alle Seiten Ihres Systems
- ausgelagert wurden, wenn Sie morgens aufstehen, nachdem
- das System eine Nacht lang nicht benutzt worden
- ist.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="top-freemem">
- <para>Warum zeigt mir &man.top.1; so wenig freien Speicher
- an, obwohl nur wenige Programme laufen?</para>
- </question>
-
- <answer>
- <para>Die Antwort ist ganz einfach: Freier Speicher ist
- verschwendeter Speicher. Der FreeBSD Kernel verwendet den
- von den Programmen nicht genutzten Speicher automatisch
- f&uuml;r den Plattencache. Die in &man.top.1; f&uuml;r
- <literal>Inact</literal>, <literal>Cache</literal> und
- <literal>Buf</literal> gemeldeten Werte stehen alle
- f&uuml;r zwischengespeicherte Daten mit unterschiedlichem
- Alter. Wenn das System wiederholt auf Daten zugreifen
- mu&szlig;, braucht es nicht auf die langsame Platte
- zuzugreifen, da die Daten noch zwischengespeichert sind.
- Dadurch erh&ouml;ht sich die Performance. Ganz generell
- ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen
- Wert bei <literal>Free</literal> anzeigt, solange der Wert
- nicht <emphasis>extrem</emphasis> klein ist.</para>
-
- <para>Anmerkung des &Uuml;bersetzers: Mit <quote>extrem
- klein</quote> sind hier Werte unterhalb 512 KByte
- gemeint.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="aout-elf">
- <para>Warum benutzt man (was sind) die Formate a.out und ELF
- f&uuml;r ausf&uuml;hrbare Dateien?</para>
- </question>
-
- <answer>
- <para>Um zu verstehen, warum FreeBSD das Format
- <filename>ELF</filename> benutzt, m&uuml;ssen Sie
- zun&auml;chst etwas &uuml;ber die drei gegenw&auml;rtig
- <quote>dominanten</quote> ausf&uuml;hrbaren Formate
- f&uuml;r UNIX wissen:</para>
-
- <para>
- <note>
- <para>FreeBSD-Version 1.x und 2.x benutzten das Format
- a.out.</para>
- </note>
- </para>
-
- <itemizedlist>
- <listitem>
- <para><acronym>A.OUT</acronym></para>
-
- <para>Das &auml;lteste und <quote>klassische</quote>
- UNIX-Objektformat. Es benutzt einen kurzen, kompakten
- Header mit einer magischen Nummer am Anfang, die oft
- benutzt wird, um das Format zu charakterisieren
- (weitere Details finden Sie unter &man.a.out.5;). Es
- enth&auml;lt drei geladene Segmente: .text, .data und
- .bss, sowie eine Symboltabelle und eine
- Stringtabelle.</para>
- </listitem>
-
- <listitem>
- <para><acronym>COFF</acronym></para>
-
- <para>Das Objektformat von SVR3. Der Header
- enth&auml;lt nun eine "Sectiontable". Man kann also
- mit mehr als nur den Sections .text, .data und .bss
- arbeiten.</para>
- </listitem>
-
- <listitem>
- <para><acronym>ELF</acronym></para>
-
- <para>Der Nachfolger von <acronym>COFF</acronym>.
- Kennzeichnend sind mehrere Sections und m&ouml;gliche
- 32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil:
- <acronym>ELF</acronym> wurde auch unter der Annahme
- entworfen, da&szlig; es nur ein ABI (Application
- Binary Interface) pro Systemarchitektur geben wird.
- Tats&auml;chlich ist diese Annahme falsch - nicht
- einmal f&uuml;r die kommerzielle SYSV-Welt (in der es
- mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft
- sie zu.</para>
-
- <para>FreeBSD versucht, dieses Problem zu umgehen, indem
- ein Utility bereitgestellt wird, um ausf&uuml;hrbare
- Dateien im <acronym>ELF</acronym>-Format mit
- Informationen &uuml;ber die ABI zu versehen, zu der
- sie passen. Weitere Informationen finden Sie in der
- Manualpage &man.brandelf.1;.</para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD kommt aus dem <quote>klassischen</quote> Lager
- und verwendete traditionell das
- <acronym>a.out</acronym>-Format, eine Technologie, die
- bereits &uuml;ber viele BSD-Releases hinweg eingesetzt und
- gepr&uuml;ft worden ist. Obwohl es bereits seit einiger
- Zeit m&ouml;glich war, auf einem FreeBSD-System auch
- Binaries (und Kernel) im <acronym>ELF</acronym>-Format zu
- erstellen und auszuf&uuml;hren, wiedersetzte FreeBSD sich
- anfangs dem <quote>Druck</quote>, auf
- <acronym>ELF</acronym> als Standardformat umzusteigen.
- Warum? Nun, als das Linux-Lager die schmerzhafte
- Umstellung auf <acronym>ELF</acronym> durchf&uuml;hrte,
- ging es nicht so sehr darum, dem ausf&uuml;hrbaren Format
- <filename>a.out</filename> zu entkommen, als dem
- unflexiblen, auf Sprungtabellen basierten Mechanismus
- f&uuml;r "Shared Libraries", der die Konstruktion von
- Shared Libraries f&uuml;r Hersteller und Entwickler
- gleicherma&szlig;en sehr kompliziert machte. Da die
- verf&uuml;gbaren <acronym>ELF</acronym>-Werkzeuge eine
- L&ouml;sung f&uuml;r das Problem mit den Shared Libraries
- anboten und ohnehin generell als <quote>ein Schritt
- vorw&auml;rts</quote> angesehen wurden, wurde der Auffand
- f&uuml;r die Umstellung als notwendig akzeptiert und die
- Umstellung wurde durchgef&uuml;hrt.</para>
-
- <para>Im Fall von FreeBSD ist der Mechanismus von Shared
- Libraries enger an den Mechanismus im Stil von Sun's
- <application>SunOS</application> angelehnt und als solcher
- sehr einfach zu verwenden. Seit Version 3.0
- unterst&uuml;tzt FreeBSD <acronym>ELF</acronym>-Binaries
- jedoch offiziell als das Standardformat. Obwohl das
- ausf&uuml;hrbare Format <filename>a.out</filename> uns
- gute Dienste geleistet hat, hat das GNU-Team, das den von
- uns verwendeten Compiler erstellt, die Unterst&uuml;tzung
- des <filename>a.out</filename>-Formats eingestellt. Dies
- zwang uns dazu, abweichende Versionen der Compiler und
- Linker beizubehalten und hinderte uns daran, Nutzen aus
- den aktuellen Entwicklungsergebnisen von GNU zu ziehen.
- Auch die Anforderungen von ISO-C++, besonders
- Konstruktoren und Destruktoren, haben zur
- Unterst&uuml;tzung von <acronym>ELF</acronym> in
- zuk&uuml;nftigen Versionen von FreeBSD
- gef&uuml;hrt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="binary-formats">
- <para>Ja aber warum gibt es so viele unterschiedliche
- Formate?</para>
- </question>
-
- <answer>
- <para>In alter, grauer Vorzeit gab es simple Hardware.
- Diese simple Hardware unterst&uuml;tzte ein einfaches,
- kleines System. a.out war absolut passend f&uuml;r die
- Aufgabe, Binaries auf diesem simplen System (eine PDP-11)
- darzustellen. Als UNIX von diesem simplen System portiert
- wurde, wurde auch das a.out-Format beibehalten, weil es
- f&uuml;r die fr&uuml;hen Portierungen auf Architekturen
- wie den Motorola 68000, VAXe usw. ausreichte.</para>
-
- <para>Dann dachte sich ein schlauer Hardware-Ingenieur,
- da&szlig; wenn er Software zwingen k&ouml;nnte, einige
- Tricks anzustellen, es ihm m&ouml;glich w&auml;re, ein
- paar Gatter im Design zu sparen, und seinen CPU-Kern
- schneller zu machen. Obgleich es dazu gebracht wurde, mit
- dieser neuen Art von Hardware (heute als RISC bekannt) zu
- arbeiten, war <filename>a.out</filename> f&uuml;r diese
- Hardware schlecht geeignet. Deshalb wurde viele neue
- Formate entwickelt, um eine bessere Leistung auf dieser
- Hardware zu erreichen, als mit dem begrenzten, simplen
- <filename>a.out</filename>-Format. Dinge wie
- <acronym>COFF</acronym>, <acronym>ECOFF</acronym> und
- einige andere obskure wurden erdacht und ihre Grenzen
- untersucht, bevor die Dinge sich in Richtung
- <acronym>ELF</acronym> entwickelten.</para>
-
- <para>Hinzu kam, da&szlig; die Gr&ouml;&szlig;e von
- Programmen gewaltig wurden und Festplatten (und
- physikalischer Speicher) immer noch relativ klein waren.
- Also wurde das Konzept von Shared Libraries geboren. Das
- VM-System wurde auch immer fortgeschrittener. Obwohl bei
- jedem dieser Fortschritte das
- <filename>a.out</filename>-Format benutzt worden ist,
- wurde sein Nutzen mit jedem neuen Merkmal mehr und mehr
- gedehnt. Zus&auml;tzlich wollte man Dinge dynamisch zur
- Ausf&uuml;hrungszeit laden, oder Teile ihres Programms
- nach der Initialisierung wegwerfen, um Hauptspeicher
- und/oder Swap-Speicher zu sparen. Programmiersprachen
- wurden immer fortschrittlicher und man wollte, da&szlig;
- Code automatisch vor der main-Funktion aufgerufen wird.
- Das <filename>a.out</filename>-Format wurde oft
- &uuml;berarbeitet, um alle diese Dinge zu erm&ouml;glichen
- und sie funktionierten auch f&uuml;r einige Zeit.
- <filename>a.out</filename> konnte diese Probleme nicht
- ohne ein st&auml;ndiges Ansteigen eines Overheads im Code
- und in der Komplexit&auml;t handhaben. Obwohl
- <acronym>ELF</acronym> viele dieser Probleme l&ouml;ste,
- w&auml;re es sehr aufwendig, ein System umzustellen, das
- im Grunde genommen funktionierte. Also mu&szlig;te
- <acronym>ELF</acronym> warten, bis es aufwendiger war, bei
- <filename>a.out</filename> zu bleiben, als zu
- <acronym>ELF</acronym> &uuml;berzugehen.</para>
-
- <para>Im Laufe der Zeit haben sich die Erstellungswerkzeuge,
- von denen FreeBSD seine Erstellungswerkzeuge abgeleitet
- hat (speziell der Assembler und der Loader), in zwei
- parallele Zweige entwickelt. Im FreeBSD-Zweig wurden
- Shared Libraries hinzugef&uuml;gt und einige Fehler
- behoben. Das GNU-Team, das diese Programme
- urspr&uuml;nglich geschrieben hat, hat sie umgeschrieben
- und eine simplere Unterst&uuml;tzung zur Erstellung von
- Cross-Compilern durch beliebiges Einschalten verschiedener
- Formate usw. hinzugef&uuml;gt. Viele Leute wollten
- Cross-Compiler f&uuml;r FreeBSD erstellen, aber sie hatten
- kein Gl&uuml;ck, denn FreeBSD's &auml;ltere Sourcen
- f&uuml;r as und ld waren hierzu nicht geeignet. Die neuen
- GNU-Werkzeuge (binutils) unterst&uuml;tzen
- Cross-Compilierung, <acronym>ELF</acronym>, Shared
- Libraries, C++-Erweiterungen usw. Weiterhin geben viele
- Hersteller <acronym>ELF</acronym>-Binaries heraus und es
- ist gut, wenn FreeBSD sie ausf&uuml;hren kann. Und wenn
- es <acronym>ELF</acronym>-Binaries ausf&uuml;hrt, warum
- dann auch noch <filename>a.out</filename> behalten? Es
- ist ein m&uuml;des, altes Pferd, da&szlig; sich f&uuml;r
- eine lange Zeit als n&uuml;tzlich erwiesen hat, aber es
- ist an der Zeit, es f&uuml;r seine langen, treuen
- Dienstjahre auf die Weide zu schicken.</para>
-
- <para><acronym>ELF</acronym> ist ausdrucksf&auml;higer als
- a.out und gestattet eine bessere Erweiterbarkeit des
- Basissystems. Die <acronym>ELF</acronym>-Werkzeuge werden
- besser gewartet und bieten Unterst&uuml;tzung von
- Cross-Compilierung, was f&uuml;r viele Leute wichtig ist.
- <acronym>ELF</acronym> mag etwas langsamer sein, als
- a.out, aber zu versuchen, das zu messen, k&ouml;nnte
- schwierig werden. Es gibt unz&auml;hlige Details, in
- denen sich die beiden Formate unterscheiden, wie sie Pages
- abbilden, Initialisierungscode handhaben usw. Keins davon
- ist sehr wichtig, aber es sind Unterschiede. Irgendwann
- wird die Unterst&uuml;tzung f&uuml;r Programme im
- <filename>a.out</filename>-Format aus dem GENERIC Kernel
- entfernt werden. Wenn es dann keinen oder kaum noch
- Bedarf f&uuml;r die Unterst&uuml;tzung dieses Formates
- gibt, werden die entsprechenden Routinen ganz entfernt
- werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="chmod-symlinks">
- <para>Warum &auml;ndert chmod die Zugriffsrechte auf
- symbolische Links nicht?</para>
- </question>
-
- <answer>
- <para>F&uuml;r symbolische Links gibt es keine separaten
- Zugriffsrechte und standardm&auml;&szlig;ig folgt
- &man.chmod.1; dem Link nicht; die Zugriffsrechte f&uuml;r
- die Datei, auf die der symbolische Link zeigt, werden also
- nicht ver&auml;ndert. Wenn Sie eine Datei mit dem Namen
- <filename>foo</filename> und einen auf diese Datei
- zeigenden symbolischen Link mit dem Namen
- <filename>bar</filename> haben, wird das folgende Kommando
- niemals einen Fehler melden.</para>
-
- <screen>
-prompt.user; <userinput>chmod g-w bar</userinput>
- </screen>
-
- <para>Trotzdem werden die Zugriffsrechte f&uuml;r
- <filename>foo</filename> nicht ge&auml;ndert.</para>
-
- <para>Hierzu m&uuml;ssen Sie entweder <option>-H</option>
- oder <option>-L</option> zusammen mit der Option
- <option>-R</option> benutzen. Weitere Informationen
- finden Sie in den Manualpages &man.chmod.1; und
- &man.symlink.2;.</para>
-
- <para>
- <warning>
- <para>Die Option <option>-R</option> bewirkt ein
- <acronym>REKURSIVES</acronym><command>chmod</command>.
- Seien Sie vorsichtig, wenn Sie bei
- <command>chmod</command> Verzeichnisse oder
- symbolische Links zu Verzeichnissen angeben. Wenn Sie
- die Zugriffsrechte eines Verzeichnisses &auml;ndern
- m&ouml;chten, das durch einen symbolischen Link
- referenziert wird, benutzen Sie
- <command>chmod</command> ohne irgendwelche Optionen
- und folgen dem symbolischen Link durch einen
- abschliessenden Schr&auml;gstrich
- (<filename>/</filename>). Falls z.B.
- <filename>foo</filename> ein symbolischer Link zum
- Verzeichnis <filename>bar</filename> ist und Sie die
- Zugriffsrechte von <filename>foo</filename>
- (tats&auml;chlich <filename>bar</filename>)
- &auml;ndern m&ouml;chten, dann benutzen Sie etwas
- &auml;hnliches wie:</para>
-
- <screen>
-&prompt.user; <userinput>chmod 555 foo/</userinput>
- </screen>
-
- <para>Durch den abschliessenden Schr&auml;gstrich folgt
- <command>chmod</command> dem symbolischen Link
- <filename>foo</filename>, um die Zugriffsrechte
- f&uuml;r das Verzeichnis <filename>bar</filename> zu
- &auml;ndern.</para>
- </warning>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="login-8char">
- <para>Warum sind Loginnamen <emphasis>immer noch</emphasis>
- auf acht Zeichen begrenzt?</para>
- </question>
-
- <answer>
- <para>Sie denken vielleicht, da&szlig; es leicht sein
- sollte, <literal>UT_NAMESIZE</literal> zu &auml;ndern, das
- ganze System neu zu erstellen und das dann alles
- funktionieren m&uuml;&szlig;te. Ungl&uuml;cklicherweise
- gibt es oft dutzende Applikationen und Utilities
- (einschlie&szlig;lich Systemwerkzeuge), bei denen kleine
- Zahlen (nicht immer <literal>8</literal> oder
- <literal>9</literal>, sondern auch sonderbare, wie
- <literal>15</literal> und <literal>20</literal>) in
- Strukturen und Puffern fest codiert sind. Hierdurch
- erhalten Sie nicht nur unbrauchbare Logdateien (weil
- variabel lange S&auml;tze ausgegeben werden, wo S&auml;tze
- fester L&auml;nge erwartet werden), sondern es kann dazu
- f&uuml;hren, da&szlig; Sun's NIS-Clients nicht mehr
- funktionieren und m&ouml;glicherweise andere Probleme bei
- der Interaktion mit anderen UNIX-Systemen
- verursachen.</para>
-
- <para>In FreeBSD 3.0 und sp&auml;teren wurde die maximale
- L&auml;nge f&uuml;r Namen auf 16 Zeichen erweitert und die
- unterschiedlichen Utilities mit fest codierten
- Namensl&auml;ngen wurden gefunden und bereinigt. Die
- Tatsache, da&szlig; hiervon so viele Bereiche des Systems
- betroffen waren, ist der Grund, warum diese &Auml;nderung
- nicht vor 3.0 durchgef&uuml;hrt worden ist.</para>
-
- <para>Wenn Sie sich absolut sicher sind, da&szlig; Sie diese
- Art von Problemen selbst finden und bereinigen
- k&ouml;nnen, wenn und falls sie auftreten, dann
- k&ouml;nnen Sie die L&auml;nge von Loginnamen in
- fr&uuml;heren Versionen &auml;ndern, indem Sie
- <filename>/usr/include/utmp.h</filename> editieren und
- UT_NAMESIZE entsprechend &auml;ndern. Sie m&uuml;ssen
- MAXLOGNAME in
- <filename>/usr/include/sys/param.h</filename> auch
- entsprechend der &Auml;nderung von UT_NAMESIZE
- &auml;ndern. Schlie&szlig;lich, vergessen Sie nicht,
- da&szlig; /usr/include jedesmal aktualisiert wird, wenn
- Sie von den Sourcen aus Erstellen! &Auml;ndern Sie
- stattdessen die entsprechen Dateien in
- /usr/src/...</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dos-binaries">
- <para>Kann ich DOS-Programme unter FreeBSD
- ausf&uuml;hren?</para>
- </question>
-
- <answer>
- <para>Ja, ab Version 3.0 k&ouml;nnen Sie die DOS-Emulation
- <application>doscmd</application> der Firma BSDi benutzen,
- die integriert und erweitert wurde. Schicken Sie eine
- Mail an <ulink
- URL="mailto:freebsd-emulation@FreeBSD.org">The FreeBSD
- emulation discussion list</ulink>, wenn Sie daran
- interessiert sind, an den laufenden Bem&uuml;hungen
- teilzunehmen!</para>
-
- <para>F&uuml;r Systeme vor 3.0 gibt es ein nettes Utility
- <application>pcemu</application> in der Ports-Sammlung,
- das einen 8088 und genug BIOS-Dienste emuliert, um
- DOS-Applikationen im Textmodus auszuf&uuml;hren. Hierzu
- wird das X Window-System ben&ouml;tigt (erh&auml;ltlich
- als XFree86).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sup-define">
- <para>Was ist <command>sup</command> und wie benutze ich
- es?</para>
- </question>
-
- <answer>
- <para>Der Name <acronym>SUP</acronym> steht f&uuml;r
- Software Update Protocol und wurde von der CMU (Carnegie
- Mellon University) entwickelt, um ihre Entwicklungszweige
- zu synchronisieren. Wir haben es benutzt, um entfernte
- Sites mit unseren zentralen Quellcodeentwicklungen zu
- synchronisieren.</para>
-
- <para>SUP ist nicht sehr bandbreitenfreundlich und wurde
- abgel&ouml;st. Die derzeit empfohlene Methode, um Ihren
- Quellcode auf dem neuesten Stand zu halten ist <ulink
- URL="../handbook/synching.html#CVSUP">Handbucheintrag zu
- CVSup</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="very-very-cool">
- <para>Wie cool ist FreeBSD?</para>
- </question>
-
- <answer>
- <para>Q. Hat irgend jemand Temperaturmessungen
- durchgef&uuml;hrt, w&auml;hrend FreeBSD l&auml;uft? Ich
- wei&szlig;, da&szlig; Linux cooler l&auml;uft, als DOS,
- aber niemals gesehen, da&szlig; FreeBSD erw&auml;hnt
- wurde. Es scheint sehr hei&szlig; zu laufen.</para>
-
- <para>A. Nein, aber wir haben zahlreiche Geschmackstests mit
- verblendeten Freiwilligen durchgef&uuml;hrt, denen
- aus&szlig;erdem zuvor 250 Mikrogramm LSD-25 verabreicht
- wurden. 35% der Freiwilligen sagte, da&szlig; FreeBSD
- nach Orange schmeckte, Linux hingegen schmecke wie
- <quote>purple haze</quote> (Anm. d. &Uuml;bersetzers: Song
- von Jimmy Hendrix und LSD-Marke). Ich kann mich nicht
- daran erinnern, da&szlig; eine Gruppe besondere
- Abweichungen der Temperatur erw&auml;hnt hat. Eventuell
- h&auml;tten wir s&auml;mtliche Ergebnisse dieser
- Untersuchung fortwerfen sollen, als wir festgestellt
- haben, da&szlig; zu viele der Freiwillingen den Raum
- w&auml;hrend der Tests verlassen haben und dadurch die
- Ergebnisse verf&auml;lscht haben. Ich glaube die meisten
- der Freiwilligen sind nun bei Apple und arbeiten an ihrer
- neuen <quote>scratch and sniff</quote> Oberfl&auml;che.
- Es ist ein lustiges, altes Gesch&auml;ft, in dem wir uns
- befinden!</para>
-
- <para>Ernsthaft, FreeBSD und Linux benutzen beide die
- Instruktion <acronym>HLT</acronym> (halt), wenn das System
- unt&auml;tig ist, wodurch der Energieverbrauch und dadurch
- die produzierte W&auml;rme reduziert wird. Falls Sie auch
- noch APM (advanced power management) konfiguriert haben,
- kann FreeBSD Ihre CPU auch in einen Low-Power-Modus
- bringen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="letmeoutofhere">
- <para>Wer kratzt in meinen Speicherb&auml;nken??</para>
- </question>
-
- <answer>
- <para>Q. Gibt es irgend etwas <quote>seltsames</quote>, das
- FreeBSD tut, wenn ich den Kernel kompiliere, das dazu
- f&uuml;hrt, da&szlig; der Speicher ein kratzendes
- Ger&auml;usch macht? Bei der Kompilierung (und auch
- f&uuml;r einen kurzen Moment nach der Erkennung des
- Floppy-Laufwerks beim Hochfahren), kommt ein seltsames
- kratzendes Ger&auml;usch von etwas das die
- Speicherb&auml;nke zu sein scheinen.</para>
-
- <para>A. Ja! In der BSD-Dokumentation finden Sie
- h&auml;ufige Verweise auf <quote>Daemons</quote> und was
- die meisten Leute nicht wissen, ist, da&szlig; diese sich
- auf echte, nicht-k&ouml;rperlichen Wesen beziehen, die
- Besitz von Ihrem Computer ergriffen haben. Das kratzende
- Ger&auml;usch, das von Ihrem Speicher kommt, ist in
- Wirklichkeit hocht&ouml;niges Fl&uuml;stern, das unter den
- Daemons ausgetauscht wird, w&auml;hrend Sie entscheiden,
- wie Sie die verschiedenen Systemadministrationsaufgaben,
- am besten erledigen.</para>
-
- <para>Wenn Sie das Ger&auml;usch st&ouml;rt, wird ein
- <command>fdisk /mbr</command> sie vertreiben, aber wundern
- Sie sich nicht, wenn sie feindlich reagieren und
- versuchen, Sie aufzuhalten. Wenn Sie w&auml;hrend der
- Ausf&uuml;hrung zu irgendeinem Zeitpunkt die teuflische
- Stimme von Bill Gates aus dem eingebauten Lautsprecher
- kommen h&ouml;ren, laufen Sie weg und sehen Sie sich auf
- keinen Fall um! Befreit von dem ausgleichenden
- Einflu&szlig; der BSD D&auml;monen sind die beiden
- D&auml;monen von DOS und Windows oft dazu in der Lage, die
- totale Kontrolle &uuml;ber Ihre Maschine f&uuml;r die
- ewige Verdammung Ihrer Seele zur&uuml;ckzuerlangen. Wenn
- ich die Wahl h&auml;tte, glaube ich, da&szlig; ich es
- vorziehen w&uuml;rde, mich an die Ger&auml;sche zu
- gew&ouml;hnen!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="define-MFC">
- <para>Was bedeutet <acronym>MFC</acronym>?</para>
- </question>
-
- <answer>
- <para>MFC ist ein Acronym f&uuml;r <quote>Merged From
- -Current</quote>. Es wird in den CVS-Logs benutzt, um zu
- kennzeichnen, wenn eine &Auml;nderung vom CURRENT-Zweig in
- den STABLE-Zweig &uuml;bernommen worden ist.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="define-BSD">
- <para>Was bedeutet <acronym>BSD</acronym>?</para>
- </question>
-
- <answer>
- <para>Es steht f&uuml;r etwas in einer geheimen Sprache, das
- nur Mitglieder wissen k&ouml;nnen. Es kann nicht
- w&ouml;rtlich &uuml;bersetzt werden, aber wir k&ouml;nnen
- Ihnen sagen, da&szlig; die &Uuml;bersetzung von BSD etwas
- zwischen <quote>Formel-1 Team</quote>, <quote>Pinguine
- sind ein leckerer Imbi&szlig;</quote> und <quote>Wir haben
- einen besseren Sinn f&uuml;r Humor als Linux</quote> ist
- :-)</para>
-
- <para>Ernsthaft, BSD ist ein Acronym f&uuml;r <quote>Berkley
- Software Distribution</quote>. Das ist der Name, den die
- Berkley <acronym>CSRG</acronym> (Computer Systems Research
- Group) damals f&uuml;r ihre UNIX-Distribution gew&auml;hlt
- hat.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="define-repocopy">
- <para>Was ist eine repo-copy?</para>
- </question>
-
- <answer>
- <para>Eine repo-copy (die Kurzform von <quote>repository
- copy</quote>) bedeutet, da&szlig; Dateien direkt innerhalb
- des CVS repository kopiert wurden.</para>
-
- <para>Wenn eine Datei an einen anderen Ort im Repository
- kopiert oder verschoben werden m&uuml;sste, w&uuml;rde ein
- Comitter ohne repo-copy die neue Datei mit <command>cvs
- add</command> hinzuf&uuml;gen und die alte ggfs. mit
- <command>cvs rm</command> l&ouml;schen.</para>
-
- <para>Damit w&uuml;rden allerdings die Eintr&auml;ge in der
- History (die Eintr&auml;ge im CVS-Logfile) nicht mit
- &uuml;bertragen. Da das FreeBSD Projekt diese
- Informationen allerdings f&uuml;r &auml;u&szlig;erst
- n&uuml;tzlich h&auml;lt, wird eine repository copy
- durchgef&uuml;hrt. Bei diesem Vorgang wird einer der
- CVS-Meister die Dateien direkt innerhalb des Repository
- verschieben, statt das Programm <command>cvs</command> zu
- benutzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bikeshed-painting">
- <para>Warum sollte mich die Farbe des Fahrradschuppens
- interessieren?</para>
- </question>
-
- <answer>
- <para>Die ganz, ganz kurze Antwort ist &uuml;berhaupt nicht.
- Die etwas l&auml;ngere Antwort lautet: Nur weil Sie in der
- Lage sind, einen Fahrradschuppen zu bauen, m&uuml;ssen Sie
- noch lange nicht andere davon abhalten, nur weil Ihnen die
- Farbe gef&auml;llt. Dies ist nat&uuml;rlich eine Metapher
- daf&uuml;r, da&szlig; Sie nicht eine Diskussion &uuml;ber
- jede kleine &Auml;nderung beginnen sollen, nur weil Sie
- das k&ouml;nnen. Einige Leute behaupten sogar, da&szlig;
- die Anzahl der (nutzlosen) Kommentare &uuml;ber eine
- &Auml;nderung umgekehrt proportional zu Ihrer
- Komplexit&auml;t der &Auml;nderung ist.</para>
-
- <para>Die noch l&auml;ngere und vollst&auml;ndigere Antwort
- ist, da&szlig; &a.phk; nach einen langen Diskussion
- &uuml;ber das Thema "Soll &man.sleep.1; Sekundenbruchteile
- als Parameter akzeptieren?" eine lange Mail mit dem Titel
- <quote><ulink
- url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A
- bike shed (any colour will do) on greener
- grass...</ulink></quote> schrieb. Die einschl&auml;gigen
- Teile der Nachricht lauteten:</para>
-
- <blockquote>
- <attribution>&a.phk; in freebsd-hackers,
- 2.10.1999</attribution>
-
- <para>Einige von Euch haben mich gefragt, <quote>Was
- meinst Du mit dem Fahrradschuppen?</quote></para>
-
- <para>Es ist eine lange oder eigentlich eher eine sehr
- alte und doch sehr kurze Geschichte. C. Northcote
- Parkinson schrieb in den f&uuml;hren sechzigern ein Buch
- mit dem Namen <quote>Parkinson's Law</quote>, das viele
- Einblick in die Beziehungen innerhalb des Managements
- gibt.</para>
-
- <para>[ein paar Kommentare zum Buch gestrichen]</para>
-
- <para>In dem Beispiel mit dem Fahrradschuppen ist die
- andere wichtige Komponente ein Kernkraftwerk. Ich
- glaube, da&szlig; zeigt schon, wie alt dieses Buch
- ist.</para>
-
- <para>Parkinson zeigte, da&szlig; man zum Vorstand gehen
- kann und die Genehmigung f&uuml;r ein mehrere Millionen
- oder sogar Milliarden Dollar teures Kernkraftwerk
- bekommt; wenn man aber einen Fahrradschuppen bauen will,
- wird man in endlose Diskussionen verwickelt.</para>
-
- <para>Laut Parkinson liegt das daran, da&szlig; ein
- Kernkraftwerk so gro&szlig;, so teuer und so kompliziert
- ist, da&szlig; die Leute es nicht verstehen. Und bevor
- sie versuchen, es zu verstehen, verlassen Sie sich
- lieber darauf, da&szlig; irgend jemand sicherlich die
- ganzen Details gepr&uuml;ft hat, bevor das Projekt bis
- zum Vorstand gekommen ist. Im Buch von Richard P.
- Feynmann finden sich einige interessante und sehr
- passende Beispiele aus dem Gebiet von Los
- Alamos.</para>
-
- <para>Ein Fahrradschuppen ist was anderes. Jeder kann an
- seinem freien Wochenende einen bauen und hat trotzdem
- noch genug Zeit f&uuml;r die Sportschau. Daher ist es
- unwichtig, wie gut man sich vorbereitet und wie sinnvoll
- der eigene Vorschlag ist. Irgend jemand wird die
- M&ouml;glichkeit nutzen und zeigen, da&szlig; er seine
- Arbeit tut, da&szlig; er aufmerksam ist, da&szlig; er
- <emphasis>da ist</emphasis>.</para>
-
- <para>In D&auml;nemark nennen wir dieses Verhalten
- <quote>Seine Fingerabdr&uuml;cke hinterlassen</quote>.
- Es geht um pers&ouml;nlichen Stolz und Prestige; die
- Chance, auf irgend etwas zu zeigen und zu sagen zu
- k&ouml;nnen: <quote>Da! Das habe
- <emphasis>Ich</emphasis> getan.</quote> Politiker leiden
- sehr stark darunter, aber viele Leute verhalten sich so,
- wenn sie die Chance haben. Denkt einfach mal an
- Fu&szlig;abdr&uuml;cke in feuchtem Zement.</para>
- </blockquote>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="changing-lightbulbs">
- <para>Wieviele FreeBSD-Hacker braucht man, um eine
- Gl&uuml;hbirne auszuwechseln?</para>
- </question>
-
- <answer>
- <para>Eintausendeinhundertundzweiundsiebzig:</para>
-
- <para>Dreiundzwanzig, die sich bei -CURRENT beschweren,
- da&szlig; das Licht aus ist;</para>
-
- <para>Vier, die behaupten, da&szlig; es sich um ein
- Konfigurationsproblem handelt und da&szlig; solche Dinge
- wirklich nach -questions geh&ouml;ren;</para>
-
- <para>Drei, die PRs hierzu einreichen, einer von ihnen wird
- falsch unter DOC abgelegt und fristet sein Dasein im
- Dunkeln;</para>
-
- <para>Einen, der eine ungetestete Gl&uuml;hbirne einreicht,
- wonach buildworld nicht mehr funktioniert, und sie dann
- f&uuml;nf Minuten sp&auml;ter wieder herausnimmt;</para>
-
- <para>Acht, die die PR-Erzeuger beschimpfen, weil sie zu
- ihren PRs keine Patche hinzugef&uuml;gt haben;</para>
-
- <para>F&uuml;nf, die sich dar&uuml;ber beschweren, da&szlig;
- buildworld nicht mehr funktioniert;</para>
-
- <para>Einunddrei&szlig;ig, die antworten, da&szlig; es bei
- ihnen funktioniert und da&szlig; sie cvsup wohl zu einigem
- ung&uuml;nstigen Zeitpunkt durchgef&uuml;hrt
- haben;</para>
-
- <para>Einen, der einen Patch f&uuml;r eine neue
- Gl&uuml;hbirne an -hackers schickt;</para>
-
- <para>Einen, der sich beschwert, da&szlig; es vor drei
- Jahren Patches hierf&uuml;r hatte, aber als er sie nach
- -CURRENT schickte, sind sie einfach ignoriert worden und
- er hatte schlechte Erfahrungen mit dem PR-System; nebenbei
- ist die vorgeschlagene Gl&uuml;hbirne nicht
- reflexiv;</para>
-
- <para>Siebenunddrei&szlig;ig, die schreien, da&szlig;
- Gl&uuml;hbirnen nicht ins Basissystem geh&ouml;ren,
- da&szlig; Committer nicht das Recht haben, solche Dinge
- durchzuf&uuml;hren, ohne die Gemeinschaft zu konsultieren
- und WAS GEDENKT -CORE HIER ZU TUN!?</para>
-
- <para>Zweihundert, die sich &uuml;ber die Farbe des
- Fahrradschuppens beschweren;</para>
-
- <para>Drei, die darauf hinweisen, da&szlig; der Patch nicht
- mit style(9) &uuml;bereinstimmt;</para>
-
- <para>Siebzehn, die sich beschweren, da&szlig; die
- vorgeschlagene neue Gl&uuml;hbirne der GPL
- unterliegt;</para>
-
- <para>F&uuml;nfhundertundsechsundachtzig, die sich in einen
- Streit &uuml;ber die vergleichbaren Vorteile der GPL, der
- BSD-Lizenz, der MIT-Lizenz, der NPL und der
- pers&ouml;nlichen Hygiene nichtgenannter FSF-Gr&uuml;nder
- verwickeln;</para>
-
- <para>Sieben, die unterschiedliche Teile des Threads nach
- -chat und -advocacy weiterleiten;</para>
-
- <para>Einer, der die vorgeschlagene Gl&uuml;hbirne einbaut,
- obwohl sie dunkler leuchtet, als die alte;</para>
-
- <para>Zwei, die sie wieder ausbauen, und in einer
- w&uuml;tenden Nachricht argumentieren, da&szlig; FreeBSD
- besser ganz im Dunkeln dasteht, als mit einer
- d&auml;mmerigen Gl&uuml;hbirne;</para>
-
- <para>Sechsundvierzig, die sich l&auml;rmend wegen des
- Wiederausbaus der d&auml;mmerigen Gl&uuml;hbirne streiten
- und eine Erkl&auml;rung von -core verlangen;</para>
-
- <para>Elf, die eine kleinere Gl&uuml;hbirne beantragen,
- damit sie in ihr Tamagotchi pa&szlig;t, falls wir
- irgendwann beschlie&szlig;en, FreeBSD auf diese Plattform
- zu portieren;</para>
-
- <para>Dreiundsiebzig, die sich &uuml;ber die SNR auf
- -hackers und -chat beschweren und aus Protest
- abmelden;</para>
-
- <para>Dreizehn, die "unsubscribe", "How do I unsubscribe?",
- oder "Please remove me from the list", gefolgt von der
- &uuml;blichen Fu&szlig;zeile abschicken;</para>
-
- <para>Einen, der eine funktionierende Gl&uuml;hbirne
- einbaut, w&auml;hrend alle zu besch&auml;ftigt damit sind,
- mit jedem zu streiten, um es zu bemerken;</para>
-
- <para>Einunddrei&szlig;, die herausstellen, da&szlig; die
- neue Gl&uuml;hbirne 0,364% heller leuchten w&uuml;rde,
- wenn sie mit TenDRA kompiliert werden w&uuml;rde (obwohl
- sie ein einen W&uuml;rfel umgeformt werden
- m&uuml;&szlig;te) und da&szlig; FreeBSD deshalb nach
- TenDRA, anstatt nach EGCS wechseln sollte;</para>
-
- <para>Einen, der sich beschwert, da&szlig; bei der neuen
- Gl&uuml;hbirne die Verkleidung fehlt;</para>
-
- <para>Neun (einschlie&szlig;lich der PR-Ersteller), die
- fragen "Was ist MFC?";</para>
-
- <para>Siebenundf&uuml;nfzig, die sich zwei Wochen, nachdem
- die Birne gewechselt worden ist, dar&uuml;ber beschweren,
- da&szlig; das Licht aus war.</para>
-
- <para><emphasis>&a.nik; hat
- hinzugef&uuml;gt:</emphasis></para>
-
- <para><emphasis>Ich habe ziemlich hier&uuml;ber
- gelacht.</emphasis></para>
-
- <para><emphasis>Und dann dachte ich: "Halt, sollte in dieser
- Liste nicht irgendwo 'Einer, der es dokumentiert'
- sein?"</emphasis></para>
-
- <para><emphasis>Und dann wurde ich erleuchtet
- :-)</emphasis></para>
-
- <para><emphasis>This entry is Copyright (c) 1999 &a.des;.
- Please do not reproduce without
- attribution.</emphasis></para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="hackers">
- <title>Nur f&uuml;r ernsthafte FreeBSD-Hacker</title>
-
- <qandaset>
- <qandaentry>
- <question id="define-snap-release">
- <para>Was sind SNAPs und RELEASEs?</para>
- </question>
-
- <answer>
- <para>Derzeit existieren drei aktive/halbaktive Zweige im
- <ulink URL="http://www.de.FreeBSD.org/cgi/cvsweb.cgi">
- FreeBSD-CVS-Repository</ulink> (im Zweig RELENG_2 erfolgen
- vielleicht noch zwei &Auml;nderungen pro Jahr, daher gibt
- es nur drei aktive Entwicklungszwenige:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>RELENG_2_2</literal> bzw.
- <emphasis>2.2-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>RELENG_3</literal> bzw.
- <emphasis>3.X-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>RELENG_4</literal> bzw.
- <emphasis>4-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>HEAD</literal> bzw.
- <emphasis>-CURRENT</emphasis> oder
- <emphasis>5.0-CURRENT</emphasis></para>
- </listitem>
- </itemizedlist>
-
- <para><literal>HEAD</literal> ist keine wirkliche
- Bezeichnung f&uuml;r einen Zweig, wie die anderen beiden.
- Es ist lediglich eine symbolische Konstante f&uuml;r
- <quote><emphasis>den aktuellen, nicht verzweigten
- Entwicklungsstrom</emphasis></quote>, auf den wir uns
- einfach als <quote>-CURRENT</quote> beziehen.</para>
-
- <para>Zur Zeit ist <quote>-CURRENT</quote> der 5.0
- Entwicklungsstrom und der
- <literal>4-STABLE</literal>-Zweig
- <symbol>RELENG_4</symbol> wurde im M&auml;rz 2000 von
- <quote>-CURRENT</quote> abgespalten.</para>
-
- <para>Der <literal>2.2-STABLE</literal>-Zweig
- <symbol>RELENG_2_2</symbol> verlie&szlig; -CURRENT im
- November 1996, die Weiterentwicklung wurde fast
- vollst&auml;ndig eingestellt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custrel">
- <para>Wie kann ich meine eigene, angepa&szlig;tes Release
- erstellen?</para>
- </question>
-
- <answer>
- <para>Um ein Release zu erstellen, m&uuml;ssen Sie drei
- Dinge tun: erstens m&uuml;ssen Sie einen Kernel benutzen,
- der das Ger&auml;t <devicename>vn</devicename>
- enth&auml;lt. F&uuml;gen Sie folgendes in ihre
- Kernelkonfigurationsdatei ein und erstellen Sie einen
- neuen Kernel:</para>
-
- <programlisting>
-pseudo-device vn #Vnode driver (verwandelt eine Datei in ein Ger&auml;t)
- </programlisting>
-
- <para>Zweitens m&uuml;ssen Sie das vollst&auml;ndige
- CVS-Repository zur Hand haben. Sie k&ouml;nnen hierzu
- <ulink URL="../handbook/synching.html#CVSUP">CVSUP</ulink>
- benutzen. Sie m&uuml;ssen in den Konfigurationsdateien
- f&uuml;r <command>cvsup</command> als Release
- <literal>cvs</literal> verwenden und alle evtl.
- vorhandenen <literal>tag=</literal> und
- <literal>date=</literal> Zeilen entfernen:</para>
-
- <programlisting>
-*default prefix=/home/ncvs
-*default base=/a
-*default host=cvsup.FreeBSD.org
-*default release=cvs
-*default delete compress use-rel-suffix
-
-## Main Source Tree
-src-all
-src-eBones
-src-secure
-
-# Other stuff
-ports-all
-www
-doc-all
- </programlisting>
-
- <para>Benutzen Sie dann <command>cvsup -g supfile</command>,
- um all die guten Bits auf Ihren Rechner zu
- saugen...</para>
-
- <para>Schlie&szlig;lich brauchen Sie eine Menge freien
- Plattenplatz f&uuml;r die Erstellung. Angenommen, er
- befindet sich unter
- <filename>/some/big/filesystem</filename> und entsprechend
- dem obigen Beispiel befindet sich das CVS-Repository unter
- <filename>/home/ncvs</filename>:</para>
-
- <screen>
-&prompt.root; <userinput>setenv CVSROOT /home/ncvs</userinput> # or export CVSROOT=/home/ncvs
-&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make buildworld</userinput>
-&prompt.root; <userinput>cd /usr/src/release</userinput>
-&prompt.root; <userinput>make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release</userinput>
- </screen>
-
- <blockquote>
- <note>
- <para>Es ist <emphasis>nicht</emphasis> notwendig,
- <command>make buildworld</command> auszuf&uuml;hren,
- wenn Sie &uuml;ber ein aktuelles
- <filename>/usr/obj</filename> verf&uuml;gen.</para>
- </note>
- </blockquote>
-
- <para>Ein vollst&auml;ndiges Release wird nun unter
- <filename>/some/big/filesystem/release</filename>
- erstellt. Wenn der Vorgang abgeschlossen ist, finden Sie
- unter
- <filename>/some/big/filesystem/release/R/ftp</filename>
- eine vollst&auml;ndige FTP-f&auml;hige Installlation.
- Falls Sie Ihren SNAP von einem anderen Zweig als -CURRENT
- erstellen wollen, k&ouml;nnen Sie auch
- <literal>RELEASETAG=SOMETAG</literal> zu der obigen
- Befehlszeile "make release" hinzuf&uuml;gen, z.B.
- w&uuml;rde <literal>RELEASETAG=RELENG_2_2</literal> einen
- minutenaktuellen Schnappschu&szlig; von 2.2-STABLE
- erstellen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custom-install-disks">
- <para>Wie erstelle ich eine angepa&szlig;te
- Installationsdiskette?</para>
- </question>
-
- <answer>
- <para>Der gesamte Proze&szlig; zur Erstellung von
- Installationsdisketten und Quell- und Bin&auml;rarchiven
- ist durch verschiedene Targets in
- <filename>/usr/src/release/Makefile</filename>
- automatisiert. Die dortigen Informationen sollten
- f&uuml;r einen Einstieg ausreichen. Es sollte jedoch
- erw&auml;hnt werden, da&szlig; dies ein <command>make
- world</command> einschlie&szlig;t und daher sehr viel Zeit
- und Plattenplatz in Anspruch nimmt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="makeworld-clobbers">
- <para><command>make world</command> wirkt sich auf meine
- installierten Binaries aus.</para>
- </question>
-
- <answer>
- <para>Das ist beabsichtigt. Wie der Name schon andeutet,
- erstellt <command>make world</command> alle Systembinaries
- von Grund auf neu. Sie k&ouml;nnen also sicher sein, am
- Ende eine saubere, konsistente Umgebung zu haben (das ist
- der Grund ist, warum es so lange dauert).</para>
-
- <para>Falls die Umgebungsvariable <literal>DESTDIR</literal>
- w&auml;hrend der Ausf&uuml;hrung von <command>make
- world</command> oder <command>make install</command>
- definiert ist, werden die neu erstellten Binaries unter
- <literal>&#36;{DESTDIR}</literal> in einem zum
- installierten identischen Verzeichnisbaum abgelegt.
- Einige zuf&auml;llige Kombinationen von &Auml;nderungen
- von Shared Libraries und Neuerstellungen von Programmen
- k&ouml;nnen hierbei jedoch ein Scheitern von <command>make
- world</command> verursachen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bus-speed-defaulted">
- <para>Wenn mein System bootet, meldet es <quote>(bus speed
- defaulted)</quote></para>
- </question>
-
- <answer>
- <para>Die Adaptec 1542 SCSI Hostadapter erlauben dem
- Benutzer die Buszugriffsgeschwindigkeit per Software zu
- konfigurieren. &Auml;ltere Versionen des 1542-Treibers
- versuchten, die schnellstm&ouml;gliche Geschwindigkeit
- herauszufinden und konfigurierten den Adapter
- entsprechend. Wir haben festgestellt, da&szlig; dies auf
- einigen Systemen nicht funktioniert, weshalb Sie nun die
- Kernelkonfigurationsoption <symbol>TUNE_1542</symbol>
- definieren m&uuml;ssen, um es zu aktivieren. Die
- Benutzung auf Systemen, auf denen es funktioniert,
- k&ouml;nnte Ihre Platten schneller machen, aber auf den
- Systemen, auf denen es nicht funktioniert, k&ouml;nnten
- Ihre Daten besch&auml;digt werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ctm">
- <para>Kann ich -CURRENT mit begrenztem Internetzugang
- folgen?</para>
- </question>
-
- <answer>
- <para>Ja, Sie k&ouml;nnen das tun, <literal>ohne</literal>
- den gesamten Quellbaum herunterzuladen, indem Sie die
- Einrichtung <ulink
- URL="../handbook/synching.html#CTM">CTM</ulink>
- benutzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="split-240k">
- <para>Wie haben Sie die Distribution in 240k-Dateien
- aufgespalten?</para>
- </question>
-
- <answer>
- <para>Bei neueren BSD-basierten Systemen gibt es eine Option
- <option>-b</option> zu split, die das Splitten von Dateien
- an willk&uuml;rlichen Bytegrenzen erlaubt.</para>
-
- <para>Hier ist ein Beispiel aus
- <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>Ich habe eine Kernelerweiterung geschrieben. An wen
- sende ich sie?</para>
- </question>
-
- <answer>
- <para>Lesen Sie bitte den <ulink
- URL="../handbook/contrib.html">Handbucheintrag &uuml;ber
- das Einreichen vom Code.</ulink></para>
-
- <para>Und Danke, da&szlig; Sie dar&uuml;ber
- Nachdenken!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-initialize">
- <para>Wie werden Plug&amp;Play ISA-Karten erkannt und
- initialisiert?</para>
- </question>
-
- <answer>
- <para>Von: <ulink
- URL="mailto:uhclem@nemesis.lonestar.org">Frank Durda
- IV</ulink></para>
-
- <para>Kurz gesagt gibt es nur wenige I/O-Ports &uuml;ber die
- PnP-Karten antworten, wenn der Host fragt, ob jemand da
- ist. Wenn die PnP-Erkennungsroutine startet, fragt sie,
- ob irgendwelche PnP-Karten vorhanden sind und alle
- PnP-Karten antworten mit ihrer Modellnummer auf demselben
- Port, von dem sie auch gelesen haben. Die
- Erkennungsroutine erh&auml;lt also ein geodertes
- <quote>Ja</quote> auf diese Frage. Mindestens ein Bit
- wird bei dieser Antwort gesetzt sein. Die
- Erkennungsroutine ist dann in der Lage, daf&uuml;r zu
- sorgen, da&szlig; Karten mit Modellnummern (zugeordnet von
- Microsoft/Intel) kleiner als X <quote>off-line</quote>
- gesetzt werden. Sie pr&uuml;ft dann, ob immer noch Karten
- da sind, die auf die Frage antworten. Falls die Antwort
- <literal>0</literal> war, sind keine Karten mit IDs
- gr&ouml;&szlig;er X vorhanden. Nun pr&uuml;ft die
- Erkennungsroutine, ob Karten unterhalb
- <literal>X</literal> vorhanden sind. Dann setzt die
- Erkennungsroutine alle Karten gr&ouml;&szlig;er als
- X-(limit/4) off-line und wiederholt die Frage. Wenn diese
- halbbin&auml;re Suche nach IDs in Folge gen&uuml;gend oft
- wiederholt worden ist, wird die Erkennungsroutine
- schlie&szlig;lich alle in einem Rechner befindlichen
- PnP-Karten identifiziert haben und das mit einer
- Iterationszahl sehr viel kleiner als 2^64.</para>
-
- <para>Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64)
- + acht Bit Pr&uuml;fsumme. Die ersten 32 Bit sind die
- Herstellerkennung. Es wurde zwar nicht best&auml;tigt,
- aber es wird angenommen, da&szlig; unterschiedliche
- Kartentypen desselben Herstellers unterschiedliche 32-Bit
- Herstellerkennungen besitzen k&ouml;nnen. 32 Bit nur
- f&uuml;r eindeutige Hersteller zu ben&ouml;tigen, scheint
- etwas &uuml;bertrieben.</para>
-
- <para>Die niedrigen 32 Bit sind eine Seriennummer,
- Ethernetadresse - etwas, das die betreffende Karte
- einzigartig macht. Die Hersteller d&uuml;rfen niemals
- eine zweite Karte mit denselben niedrigen 32 Bit
- herstellen, es sei denn, die h&ouml;heren 32 Bit sind
- unterschiedlich. Sie k&ouml;nnen also mehrere Karten des
- selben Typs im Rechner haben und die gesamten 64 Bit
- bleiben stets eindeutig.</para>
-
- <para>Die 32-Bit-Gruppen k&ouml;nnen niemals nur aus Nullen
- bestehen. Das erlaubt es, bei der bin&auml;ren Suche zu
- Beginn nur auf von Null verschiedene Bits zu
- achten.</para>
-
- <para>Wenn das System alle vorhandenen Karten-IDs
- identifiziert hat, reaktiviert es jede Karte - eine nach
- der anderen (&uuml;ber dieselben I/O-Ports) und ermittelt,
- welche Ressourcen von der jeweiligen Karte ben&ouml;tigt
- werden, welche Wahlm&ouml;glichkeiten f&uuml;r Interrupts
- bestehen usw. Alle Karten werden abgefragt, um diese
- Informationen zusammenzustellen.</para>
-
- <para>Diese Informationen werden dann mit Informationen aus
- allen ECU-Dateien auf der Festplatte oder mit im MLB-Bios
- verdrahteten Informationen verkn&uuml;pft. Die ECU- und
- BIOS-PnP-Unterst&uuml;tzung f&uuml;r Hardware auf dem MLB
- ist f&uuml;r gew&ouml;hnlich k&uuml;nstlich und was die
- Peripherieger&auml;te tun ist nicht wirklich echtes PnP.
- Durch die Untersuchung der BIOS-Informationen und der
- ECU-Informationen k&ouml;nnen die Erkennungsroutinen
- jedoch die von PnP-Ger&auml;ten benutzten Ressourcen so
- &auml;ndern, da&szlig; vermieden wird, da&szlig; bereits
- von anderen Geraeten benutzte Ressourcen verwendet
- werden.</para>
-
- <para>Dann werden die PnP-Ger&auml;te nochmals besucht und
- ihre I/O, DMA, IRQ und Memory-Map-Adressen werden
- zugeordnet. Die Ger&auml;te werden an diesen Stellen
- sichtbar werden und dort bis zum n&auml;chsten Reboot
- verbleiben. Allerdings hindert Sie auch nichts daran, sie
- zu verschieben, wohin Sie wollen.</para>
-
- <para>Im obigen Teil wurde sehr viel vereinfacht, aber die
- grundlegende Idee sollte klar geworden sein.</para>
-
- <para>Microsoft hat einige der prim&auml;ren
- Druckerstatusports f&uuml;r PnP &uuml;bernommen, da keine
- Karte diese Adressen f&uuml;r die entgegengesetzten
- I/O-Zyklen decodiert. Ich habe w&auml;hrend der
- fr&uuml;hen &Uuml;berpr&uuml;fungsperiode des
- PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die
- Schreibzugriffe auf dem Statusport decodiert hat, aber MS
- hat nur <quote>tough</quote> gesagt. Also schreiben sie
- auf den Druckerstatusport, um Adressen zu setzen, benutzen
- zus&auml;tzlich diese Adresse + <literal>0x800</literal>
- und einen dritten I/O-Port zum Lesen, der irgendwo
- zwischen <literal>0x200</literal> und
- <literal>0x3ff</literal> liegen kann.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="architectures">
- <para>Unterst&uuml;tzt FreeBSD andere Architekturen
- au&szlig;er x86?</para>
- </question>
-
- <answer>
- <para>Verschiedene Gruppen haben ihr Interesse daran
- ge&auml;u&szlig;ert, an Multiarchitektur-Ports f&uuml;r
- FreeBSD zu arbeiten. Ziemlich erfolgreich waren die
- Anstrengungen f&uuml;r den Port FreeBSD/AXP (ALPHA), der
- unter <ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/alpha/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/alpha</ulink>
- erh&auml;ltlich ist. Der ALPHA-Port l&auml;ft nun auf
- einer steigenden Anzahl von ALPHA-Maschinen, unter ihnen
- die Modelle AlphaStation, AXPpci, PC164, Miata und Multia.
- Bitte schlie&szlig;en Sie sich der <link
- linkend="mailing">Mailingliste</link><email>freebsd-alpha@FreeBSD.org</email>
- an, falls Sie an Statusinformationen interessiert
- sind.</para>
-
- <para>Au&szlig;erdem wurde Interesse an einem Port von
- FreeBSD zur SPARC-Architektur ausgedr&uuml;ckt.
- Schlie&szlig;en Sie sich der <link linkend="mailing">
- Mailingliste</link><email>freebsd-sparc@FreeBSD.org</email>
- an, wenn Sie bei dem Projekt teilnehmen m&ouml;chten. Die
- Neuzug&auml;nge auf der Liste der in Zukunft
- unterst&uuml;tzten Plattformen sind IA-64 und PowerPC,
- weitere Informationen erhalten Sie auf den <link
- linkend="mailing">Mailinglisten</link><email>freebsd-ia64@FreeBSD.org</email>
- und/oder <email>freebsd-ppc@FreeBSD.org</email>.
- Schlie&szlig;en Sie sich dieser <link
- linkend="mailing">Mailingliste</link><email>freebsd-platforms@FreeBSD.org</email>
- an, wenn Sie an grunds&auml;tzlichen Diskussionen
- &uuml;ber neue Architekturen interessiert sind.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="major-numbers">
- <para>Ich ben&ouml;tige eine major number f&uuml;r einen
- Ger&auml;tetreiber, den ich geschrieben habe.</para>
- </question>
-
- <answer>
- <para>Das h&auml;ngt davon ab, ob Sie beabsichtigen, den
- Treiber frei verf&uuml;gbar zu machen, oder nicht. Falls
- dem so ist, senden Sie uns bitte eine Kopie der
- Treiber-Sourcen und zus&auml;tzlich die entsprechenden
- &Auml;nderungen der Datei <filename>files.i386</filename>,
- ein Beispiel f&uuml;r einen Eintrag in der
- Konfigurationsdatei und den entsprechenden Code f&uuml;r
- <command>MAKEDEV</command>, um spezielle Ger&auml;te zu
- erstellen, die Ihr Ger&auml;t benutzt. Falls Sie nicht
- beabsichtigen, den Treiber frei verf&uuml;gbar zu machen,
- oder es aufgrund von Lizenzbeschr&auml;nkungen nicht
- k&ouml;nnen, dann ist die Hauptnummer 32 f&uuml;r
- zeichenorientierte und die Hauptnummer 8 f&uuml;r
- blockorientierte Ger&auml;te speziell f&uuml;r diesen
- Zweck reserviert. In jedem Fall w&uuml;rden wir uns
- freuen, in <email>freebsd-hackers@FreeBSD.org</email>
- etwas &uuml;ber Ihren neuen Treiber zu h&ouml;ren.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="alternate-directory-layout">
- <para>Alternative Layoutverfahren f&uuml;r
- Verzeichnisse</para>
- </question>
-
- <answer>
- <para>Als Antwort auf die Frage nach alternativen
- Layoutverfahren f&uuml;r Verzeichnisse ist das Schema, das
- derzeit benutzt wird, unver&auml;ndert von dem, das ich
- 1983 geschrieben habe. Ich habe das Vorgehen f&uuml;r das
- originale Fast-Filesystem geschrieben und es niemals
- &uuml;berarbeitet. Es funktioniert gut, wenn es darum
- geht, zu verhindern, da&szlig; Zylindergruppen volllaufen.
- Wie viele von Ihnen angemerkt haben, funktioniert es
- schlecht f&uuml;r find. Die meisten Dateisysteme werden
- von Archiven erstellt, die mit einer Tiefensuche (also
- ftw) erstellt wurden. Diese Verzeichnisse werden
- &uuml;ber die Zylindergruppen hinweg entfaltet und
- erzeugen denkbar ung&uuml;nstigste Voraussetzungen
- f&uuml;r zuk&uuml;nftige Tiefensuchen. Falls man die
- Gesamtzahl der zu erstellenden Verzeichnisse w&uuml;sste,
- w&auml;re die L&ouml;sung die, (gesamt / fs_ncg) pro
- Zylindergruppe zu erstellen, bevor fortgefahren wird.
- Offensichtlich m&uuml;&szlig;te man eine Heuristik
- erstellen, um die Zahl zu sch&auml;tzen. Sogar die
- Benutzung einer kleinen, fixen Zahl, z.B. 10, w&uuml;rde
- eine Verbesserung um Gr&ouml;&szlig;enordnungen ausmachen.
- Um Wiederherstellungen von normalem Betrieb (wo der
- derzeitige Algorithmus vermutlich sinnvoller ist) zu
- unterscheiden, k&ouml;nnten Sie die Clusterung von bis zu
- 10 benutzen, wenn sie alle innerhalb eines
- 10-Sekunden-Fensters durchgef&uuml;hrt w&uuml;rden.
- Jedenfalls ist mein Schluss, da&szlig; dies ein
- fruchtbares Gebiet f&uuml;r Experimente ist.</para>
-
- <para>Kirk McKusick, September 1998</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-panic-troubleshooting">
- <para>Optimalen Nutzen aus einer kernel panic ziehen</para>
- </question>
-
- <answer>
- <para><emphasis>[Dieser Abschnitt wurde von &a.des;, der
- einige Tippfehler korrigiert und die Kommentare in eckigen
- Klammern hinzugef&uuml;gt hat, aus einer Mail von
- &a.wpaul; in der <link
- linkend="mailing">Mailingliste</link> freebsd-current
- entnommen.]</emphasis></para>
-
- <programlisting>
-From: Bill Paul &lt;wpaul@skynet.ctr.columbia.edu&gt;
-Subject: Re: the fs fun never stops
-To: ben@rosengart.com Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
-Cc: current@FreeBSD.org
- </programlisting>
-
- <para><emphasis>[&lt;ben@rosengart.com&gt; sendete die
- folgende Panik-Meldung]</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>[Wenn] Sie eine Meldung wie diese sehen, reicht es
- nicht, sie einfach zu reproduzieren und sie einzusenden.
- Der Wert des Instruktionszeigers, den ich oben
- hervorgehoben habe, ist wichtig; leider ist er auch
- konfigurationsabh&auml;ngig. Mit anderen Worten variieren
- die Werte abh&auml;ngig von dem Kernel-Image, das Sie
- tats&auml;chlich benutzen. Wenn Sie ein GENERIC
- Kernelimage von einem der Snapshots benutzen, dann ist es
- f&uuml;r jemand anderen m&ouml;glich, die fehlerhafte
- Instruktion herauszufinden, aber wenn Sie einen
- angepa&szlig;ten Kernel benutzen, k&ouml;nnen nur
- <emphasis>Sie</emphasis> uns sagen, wo der Fehler
- auftrat.</para>
-
- <para>Was Sie tun sollten, ist folgendes:</para>
-
- <itemizedlist>
- <listitem>
- <para>Notieren Sie sich den Wert des
- Instruktionszeigers. Beachten Sie, da&szlig; der Teil
- <literal>0x8:</literal> am Anfang in diesem Fall nicht
- von Bedeutung ist; der Teil
- <literal>0xf0xxxxxx</literal> ist der, den wir
- wollen.</para>
- </listitem>
-
- <listitem>
- <para>Tun Sie folgendes, wenn das System
- rebootet:</para>
-
- <screen>
-&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxx
- </screen>
-
- <para>wobei <literal>0xf0xxxxxx</literal> der Wert des
- Instruktionszeigers ist. Es besteht die
- M&ouml;glichkeit, da&szlig; Sie keinen exakten Treffer
- erzielen, weil die Symbole in der Symboltabelle des
- Kernels Funktionseinstiegspunkte sind und die Adresse
- des Instruktionszeiger irgendwo innerhalb einer
- Funktion liegen wird und nicht am Anfang. Falls sie
- keinen exakten Treffer erzielen, lassen Sie den
- letzten Teil des Werts des Instruktionszeigers weg und
- versuchen es nocheinmal, z.B.:</para>
-
- <screen>
-&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxx
- </screen>
-
- <para>Falls das kein Ergebnis liefert, hacken Sie eine
- weitere Ziffer ab. Wiederholen Sie die Schritte, bis
- Sie irgendeine Ausgabe erhalten. Das Ergebnis wird
- eine Liste m&ouml;glicher Funktionen sein, die die
- Panik verursacht haben. Das ist zwar kein absolut
- genauer Mechanismus, um die Fehlerursache ausfindig zu
- machen, aber es ist besser als gar nichts.</para>
- </listitem>
- </itemizedlist>
-
- <para>Ich sehe st&auml;ndig Leute, die Panik-Meldungen wie
- diese zeigen, aber ich sehe kaum jemanden, der sich die
- Zeit nimmt, den Instruktionszeiger einer Funktion aus der
- Symboltabelle des Kernel zuzuordnen.</para>
-
- <para>Der beste Weg, den Grund f&uuml;r eine Panik
- herauszufinden, ist der, einen Crash-Dump festzuhalten und
- dann <command>gdb(1)</command> zu benutzen, um den Stack
- im Crash-Dump zur&uuml;ckzuverfolgen.</para>
-
- <para>Jedenfalls ist die Methode, die ich normalerweise
- benutze, folgende:</para>
-
- <itemizedlist>
- <listitem>
- <para>Richten Sie eine Kernelkonfigurationsdatei ein,
- f&uuml;gen Sie optional <literal>options DDB</literal>
- hinzu, falls Sie glauben, da&szlig; Sie den
- Kerneldebugger ben&ouml;tigen. (Ich benutze ihn
- haupts&auml;chlich zum Setzen von Haltepunkten, wenn
- ich eine Endlosschleife irgendeiner Art
- vermute.)</para>
- </listitem>
-
- <listitem>
- <para>Benutzen Sie <command>config -g
- <replaceable>KERNELCONFIG</replaceable></command>, um
- das Erstellungsverzeichnis einzurichten.</para>
- </listitem>
-
- <listitem>
- <para><command>cd
- /sys/compile/<replaceable>KERNELCONFIG</replaceable>;
- make</command></para>
- </listitem>
-
- <listitem>
- <para>Warten Sie, bis der Kernel fertig kompiliert
- ist.</para>
- </listitem>
-
- <listitem>
- <para><command>make install</command></para>
- </listitem>
-
- <listitem>
- <para>reboot</para>
- </listitem>
- </itemizedlist>
-
- <para>Der &man.make.1;-Proze&szlig; wird zwei Kernel
- erstellt haben: <filename>kernel</filename> und
- <filename>kernel.debug</filename>.
- <filename>kernel</filename> wurde als
- <filename>/kernel</filename> installiert, w&auml;hrend
- <filename>kernel.debug</filename> als Quelle f&uuml;r
- Debuggersymbole f&uuml;r gdb(1) benutzt werden
- kann.</para>
-
- <para>Um sicherzustellen, da&szlig; ein Crash-Dump erhalten
- bleibt, m&uuml;ssen Sie
- <filename>/etc/rc.config</filename> editieren und
- <literal>dumpdev</literal> so setzen, da&szlig; es auf
- Ihre Swap-Partition zeigt. Das bewirkt, da&szlig; die
- <command>rc(8)</command>-Skripte den Befehl
- <command>dumpon(8)</command> benutzen, um Crash-Dumps zu
- erm&ouml;glichen. Sie k&ouml;nnen
- <command>dumpon(8)</command> auch manuell ausf&uuml;hren.
- Nach einer Panik kann der Crash-Dump mit
- <command>savecore(8)</command> wiederhergestellt werden;
- wenn <literal>dumpdev</literal> in
- <filename>/etc/rc.conf</filename> gesetzt ist, werden die
- <command>rc(8)</command>-Skripte
- <command>savecore(8)</command> automatisch ausf&uuml;hren
- und den Crash-Dump unter <filename>/var/crash</filename>
- ablegen.</para>
-
- <para>
- <note>
- <para>Crash-Dumps von FreeBSD sind f&uuml;r
- gew&ouml;hnlich genauso gro&szlig; wie der
- physikalische Hauptspeicher Ihres Rechners. D.h.,
- wenn Sie 64MB RAM haben, werden sie einen 64MB
- Crash-Dump erhalten. Deshalb m&uuml;ssen Sie
- daf&uuml;r sorgen, da&szlig; gen&uuml;gend
- Speicherplatz in <filename>/var/crash</filename> zur
- Verf&uuml;gung steht, um den Dump aufnehmen zu
- k&ouml;nnen. Alternativ f&uuml;hren Sie
- <command>savecore(8)</command> manuell aus und lassen
- es den Crash-Dump in einem anderen Verzeichnis
- wiederherstellen, in dem Sie mehr Platz haben. Es ist
- m&ouml;glich, die Gr&ouml;&szlig;e des Crash-Dumps zu
- begrenzen, indem <literal>options
- MAXMEM=(foo)</literal> benutzt wird, um den Speicher,
- den der Kernel benutzt, auf einen etwas
- vern&uuml;nftigeren Wert zu setzen. Wenn Sie z.B.
- 128MB RAM haben, k&ouml;nnen Sie die Speicherbenutzung
- des Kernels auf 16MB begrenzen, so da&szlig; die
- Gr&ouml;&szlig;e Ihres Crash-Dumps 16MB anstatt 128MB
- betr&auml;gen wird.</para>
- </note>
- </para>
-
- <para>Wenn Sie den Crash-Dump wiederhergestellt haben,
- k&ouml;nnen Sie den Stack mit <command>gdb(1)</command> so
- zur&uuml;ckverfolgen:</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>Beachten Sie, da&szlig; es mehrere Seiten mit
- wertvollen Informationen geben k&ouml;nnte; idealerweise
- sollten Sie <command>script(1)</command> benutzen, um sie
- alle festzuhalten. Wenn Sie das vollst&auml;ndige
- Kernelimage mit allen Debugginginformationen benutzen,
- m&uuml;&szlig;ten Sie exakt die Zeile des
- Kernel-Sourcecodes finden, wo die Panik aufgetreten ist.
- F&uuml;r gew&ouml;hnlich m&uuml;ssen Sie den Stack von
- unten an zur&uuml;ckverfolgen, um die genaue
- Ereignisabfolge, die zum Crash f&uuml;hrte,
- zur&uuml;ckzuverfolgen. Sie k&ouml;nnen
- <command>gdb(1)</command> auch zum Ausdrucken der Inhalte
- verschiedener Variablen oder Strukturen benutzen, um den
- Systemstatus zum Zeitpunkt des Absturzes zu
- untersuchen.</para>
-
- <para>Wenn Sie nun wirklich verr&uuml;ckt sind und einen
- zweiten Computer haben, k&ouml;nnen Sie
- <command>gdb(1)</command> auch f&uuml;r entferntes
- Debugging konfigurieren, so da&szlig; Sie
- <command>gdb(1)</command> auf einem System benutzen
- k&ouml;nnen, um den Kernel auf einem anderen System zu
- debuggen, einschlie&szlig;lich dem Setzen von Haltepunkten
- und dem Bewegen in Einzelschritten durch den Kernelcode,
- genauso, wie Sie es mit einem normalen Benutzerprogramm
- tun k&ouml;nnen. Ich habe noch nicht damit gespielt weil
- ich nicht oft Gelegenheit habe, zwei Rechner nebeneinander
- f&uuml;r Debuggingzwecke einzurichten.</para>
-
- <para><emphasis>[Bill hat hinzugef&uuml;gt: "Ich
- verga&szlig;, etwas zu erw&auml;hnen: wenn Sie DDB
- aktiviert haben und der Kernel im Debugger landet,
- k&ouml;nnen Sie eine Panik (und einen Crash-Dump)
- erzwingen, indem Sie einfach 'panic' am ddb-Prompt
- eingeben. Er k&ouml;nnte w&auml;hrend der Panikphase
- wieder im Debugger stoppen. Falls er das tut, geben Sie
- 'continue' ein, dann wird er den Crash-Dump beenden."
- -ed]</emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dlsym-failure">
- <para>dlsym() funktioniert nicht mehr f&uuml;r
- ELF-Executables!</para>
- </question>
-
- <answer>
- <para>Die ELF-Werkzeuge machen die in einem Executable
- definierten Symbole dem dynamischen Linker nicht
- standardm&auml;&szlig;ig sichtbar. Konsequenterweise
- werden <function>dlsym()</function>-Suchen nach Handlern
- aus Aufrufen von <function>dlopen(NULL, flags)</function>
- diese Symbole nicht finden k&ouml;nnen.</para>
-
- <para>Wenn Sie mit <function>dlsym()</function> nach im
- Hauptexecutable eines Prozesses vorhandenen Symbolen
- suchen wollen, m&uuml;ssen Sie das Executable mit der
- Option <option>-export-dynamic</option> von &man.ld.1;
- linken.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="change-kernel-address-space">
- <para>Erh&ouml;hung oder Verminderung des
- Kernel-Adre&szlig;raums</para>
- </question>
-
- <answer>
- <para>Standardm&auml;&szlig;ig betr&auml;gt der
- Adre&szlig;raum des Kernels 256MB (FreeBSD 3.x) bzw. 1 GB
- (FreeBSD 4.x). Wenn Sie einen netzwerkintensiven Server
- (z.B. einen gro&szlig;en FTP- oder HTTP-Server) betreiben,
- kann es sein, da&szlig; Sie der Meinung sind, da&szlig;
- 256MB nicht ausreichen.</para>
-
- <para>Wie also erh&ouml;hen Sie den Adre&szlig;raum? Hier
- gibt es zwei Aspekte. Erstens m&uuml;ssen Sie dem Kernel
- sagen, da&szlig; er einen gr&ouml;sseren Anteil des
- Adre&szlig;raums f&uuml;r sich selbst reservieren soll.
- Da der Kernel am oberen Ende des Adre&szlig;raums geladen
- wird, m&uuml;ssen Sie zweitens die Ladeadresse verringern,
- damit er mit dem Kopf nicht gegen die Obergrenze
- st&ouml;&szlig;t.</para>
-
- <para>Das erste Ziel erreicht man, indem man den Wert von
- <literal>NKPDE</literal> in
- <filename>src/sys/i386/include/pmap.h</filename>
- erh&ouml;ht. F&uuml;r einen Adre&szlig;raum von 1 GB
- sieht das so aus:</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>Dividieren Sie die gew&uuml;nschte
- Adre&szlig;raumgr&ouml;&szlig;e (in Megabyte) durch vier
- und subtrahieren Sie dann eins f&uuml;r UP und zwei
- f&uuml;r SMP, um den korrekten Wert f&uuml;r
- <literal>NKPDE</literal> zu finden.</para>
-
- <para>Um das zweite Ziel zu erreichen m&uuml;ssen Sie die
- korrekte Ladeadresse berechnen: subtrahieren Sie einfach
- die Gr&ouml;&szlig;e des Adre&szlig;raums (in Byte) von
- 0x100100000; f&uuml;r einen Adre&szlig;raum von 1 GB
- lautet das Ergebnis 0xc0100000. Setzen Sie
- <symbol>LOAD_ADDRESS</symbol> in
- <filename>src/sys/i386/conf/Makefile.i386</filename> auf
- diesen Wert; setzen Sie dann den Location-Counter am
- Anfang der Abschnittsliste in
- <filename>src/sys/i386/conf/kernel.script</filename> auf
- denselben Wert:</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>Konfigurieren und erstellen Sie Ihren Kernel dann neu.
- Sie werden vermutlich Probleme mit <command>ps</command>,
- <command>top</command> und &auml;hnlichen Programmen
- haben. Ein <command>make world</command> sollte diese
- beheben; alternativ k&ouml;nnen Sie die gepatchte
- <filename>pmap.h</filename> in das Verzeichnis
- <filename>/usr/include/vm</filename> kopieren und danach
- <filename>libkvm</filename>, <command>ps</command> und
- <command>top</command> neu erzeugen.</para>
-
- <para>Hinweis: die Gr&ouml;&szlig;e des
- Kernel-Adre&szlig;raums mu&szlig; ein Vielfaches von vier
- Megabyte betragen.</para>
-
- <para>[&a.dg; f&uuml;gt hinzu: <emphasis>Ich glaube, der
- Kerneladre&szlig;raum mu&szlig; eine Zweierpotenz sein,
- aber ich bin mir dessen nicht sicher. Der alte
- (&auml;ltere) Bootcode pflegte die oberen Adre&szlig;bits
- zu mi&szlig;brauchen und ich glaube, er erwartete
- mindestens 256MB Granularit&auml;t.]</emphasis></para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="acknowledgments">
- <title>Danksagung</title>
-
- <blockquote>
- <attribution>FreeBSD Core Team</attribution>
-
- <para>Falls Sie ein Problem in dieser FAQ entdecken, oder einen
- Eintrag einsenden m&ouml;chten, senden Sie uns bitte eine Mail
- an &a.faq; Wir sch&auml;tzen Ihr Feedback und k&ouml;nnen
- diese FAQ ohne Ihre Hilfe nicht verbessern!</para>
- </blockquote>
-
- <variablelist>
- <title>Originalversion</title>
-
- <varlistentry>
- <term>&a.jkh;</term>
-
- <listitem>
- <para>Gelegentliche Anpassungen von Umstrukturierungen der
- FAQ und Aktualisierung.</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.dwhite;</term>
-
- <listitem>
- <para>Dienste &uuml;ber Pflichtbesuche in freebsd-questions
- hinaus</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.joerg;</term>
-
- <listitem>
- <para>Dienste &uuml;ber Pflichtbesuche im Usenet
- hinaus</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.wollman;</term>
-
- <listitem>
- <para>Netzwerke und Formatierung</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Jim Lowe</term>
-
- <listitem>
- <para>Multicast-Informationen</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.pds;</term>
-
- <listitem>
- <para>Schreibmaschinenknecht der FreeBSD-FAQ</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Das FreeBSD-Team</term>
-
- <listitem>
- <para>N&ouml;rgeln, St&ouml;hnen, Einsenden von
- Daten</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Folgende Personen haben durch die Beantwortung von Fragen,
- sowie durch Hinweise und Kommentare an der Entstehung der
- deutschen &Uuml;bersetzung mitgewirkt:</para>
-
- <itemizedlist>
- <listitem>
- <para>Ross Alexander</para>
- </listitem>
-
- <listitem>
- <para>&a.jhb;</para>
- </listitem>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
-
- <listitem>
- <para>Glen Foster</para>
- </listitem>
-
- <listitem>
- <para>Oliver Fromme</para>
- </listitem>
-
- <listitem>
- <para>Frank Gruender</para>
- </listitem>
-
- <listitem>
- <para>Chris Hill</para>
- </listitem>
-
- <listitem>
- <para>James Howard</para>
- </listitem>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
-
- <listitem>
- <para>&a.alex;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmas;</para>
- </listitem>
-
- <listitem>
- <para>Mike Meyer</para>
- </listitem>
-
- <listitem>
- <para>Dan O'Connor</para>
- </listitem>
-
- <listitem>
- <para>Eric Ogren</para>
- </listitem>
-
- <listitem>
- <para>&a.de.pierau;</para>
- </listitem>
-
- <listitem>
- <para>Oliver Schneider</para>
- </listitem>
-
- <listitem>
- <para>Christoph Sold</para>
- </listitem>
- </itemizedlist>
-
- <para>Und an alle anderen, an die wir nicht gedacht haben.
- Entschuldigung und herzlichen Dank!</para>
- </chapter>
-</book>
diff --git a/de_DE.ISO8859-1/books/handbook/Makefile b/de_DE.ISO8859-1/books/handbook/Makefile
deleted file mode 100644
index c544cf2225..0000000000
--- a/de_DE.ISO8859-1/books/handbook/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# $FreeBSD$
-# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.4 2001/03/24 15:53:55 alex Exp $
-#
-# Build the FreeBSD Handbook in its German translation.
-#
-
-MAINTAINER=alex@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-SRCS+= backups/chapter.sgml
-SRCS+= basics/chapter.sgml
-SRCS+= bibliography/chapter.sgml
-SRCS+= ports/chapter.sgml
-SRCS+= users/chapter.sgml
-
-# Entities
-SRCS+= ../../../en_US.ISO_8859-1/books/handbook/authors.ent
-SRCS+= chapters.ent
-SRCS+= newsgroups.ent
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/de_DE.ISO8859-1/books/handbook/appendix.decl b/de_DE.ISO8859-1/books/handbook/appendix.decl
deleted file mode 100644
index 5b0425623d..0000000000
--- a/de_DE.ISO8859-1/books/handbook/appendix.decl
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE appendix PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
diff --git a/de_DE.ISO8859-1/books/handbook/backups/chapter.sgml b/de_DE.ISO8859-1/books/handbook/backups/chapter.sgml
deleted file mode 100644
index 0a8b63a48e..0000000000
--- a/de_DE.ISO8859-1/books/handbook/backups/chapter.sgml
+++ /dev/null
@@ -1,848 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- Original version 1.25
- $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/backups/chapter.sgml,v 1.1 2000/06/13 09:42:15 alex Exp $
--->
-
-<chapter id="backups">
- <title>Datensicherung</title>
-
- <para><emphasis>&Uuml;bersetzt von &a.de.bwarken,
- Januar 1999</emphasis></para>
-
- <para>Das folgende Kapitel besch&auml;ftigt sich mit der Datensicherung und
- den dazu verwendeten Programmen. Wenn Sie etwas zu diesem Kapitel
- beisteuern m&ouml;chten, senden Sie es bitte an die (englischsprachige)
- &a.doc;</para>
-
- <sect1 id="backups-tapebackups">
- <title>Bandmedien</title>
-
- <para>Die wichtigsten Bandmedien sind 4mm, 8mm, QIC,
- Mini-Cartridge und DLT.</para>
-
- <sect2 id="backups-tapebackups-4mm">
- <title>4mm (DDS: Digital Data Storage)</title>
-
- <para>Die 4mm-B&auml;nder ersetzen mehr und mehr das QIC-Format als
- Backupmedium der Wahl f&uuml;r Workstations. Dieser Trend nahm stark
- zu, als Conner die Firma Archive, einen f&uuml;hrenden Hersteller von
- QIC-Laufwerken, aufkaufte und die Produktion von QIC-Laufwerken
- stoppte. 4mm-Laufwerke sind klein und ruhig, haben aber nicht den
- gleichen Ruf der Zuverl&auml;ssigkeit, den die 8mm-Laufwerke
- genie&szlig;en. Die 4mm-Kassetten sind preiswerter und mit den
- Ma&szlig;en 76,2 x 50,8 x 12,7 mm (3 x 2 x 0,5 Inch) kleiner als die
- 8mm-Kassetten. Sowohl die 4mm- als auch die 8mm-Magnetk&ouml;pfe
- haben eine relativ kurze Lebensdauer, weil beide die gleiche
- Helical-Scan-Technologie benutzen.</para>
-
- <para>Der Datendurchsatz dieser Laufwerke beginnt bei etwa 150
- kByte/s, Spitzenwerte liegen bei etwa 500 kByte/s. Die
- Datenkapazit&auml;t liegt zwischen 1,3 GB und 2 GB. Die meisten
- Ger&auml;te haben eine Hardwarekompression eingebaut, die die
- Kapazit&auml;t ungef&auml;hr verdoppelt. Es gibt
- Multi-Drive-Einheiten f&uuml;r Bandbibliotheken mit bis zu 6
- Laufwerken in einem Geh&auml;use und automatischem Bandwechsel. Die
- Kapazit&auml;t einer solchen Bibliothek liegt bei 240 GB.</para>
-
- <para>Der Standard DDS-3 unterst&uuml;tzt nun Bandkapazit&auml;ten bis
- zu 12 GB (oder komprimiert 24 GB).</para>
-
- <para>4mm-Laufwerke, ebenso wie 8mm-Laufwerke, verwenden Helical-Scan.
- Alle Vor- und Nachteile von Helical-Scan gelten sowohl f&uuml;r 4mm-
- als auch f&uuml;r 8mm-Laufwerke.</para>
-
- <para>B&auml;nder sollten nach 2.000 Banddurchl&auml;ufen oder 100
- vollen Backups ersetzt werden.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-8mm">
- <title>8mm (Exabyte)</title>
-
- <para>8mm-B&auml;nder sind die verbreitetsten SCSI-Bandlaufwerke; sie
- sind das geeignetste Bandformat zum Austausch von B&auml;ndern. Fast
- an jedem Standort gibt es ein 8mm-Bandlaufwerk mit 2 GB.
- 8mm-B&auml;nder sind zuverl&auml;ssig, gut zu handhaben und arbeiten
- leise. Bandkassetten sind preiswert und klein mit 122 x 84 x 15 mm
- (4,8 x 3,3 x 0,6 Inch). ein Nachteil der 8mm-Technologie ist die
- relativ kurze Lebensdauer des Schreib-/Lesekopfs und der B&auml;nder
- auf Grund der hohen Relativgeschwindigkeit des Bandes &uuml;ber die
- K&ouml;pfe hinweg.</para>
-
- <para>Der Datendurchsatz liegt ungef&auml;hr zwischen 250 kByte/s und
- 500 kByte/s. Die Datenkapazit&auml;t beginnt bei 300 MB und erreicht
- bis zu 7 GB bei den Spitzenger&auml;ten. Die meisten Ger&auml;te
- haben eine Hardwarekompression eingebaut, die die Kapazit&auml;t
- ungef&auml;hr verdoppelt. Diese Laufwerke sind erh&auml;ltlich in
- Form von Einzelger&auml;ten oder als Multi-Drive-Bandbibliotheken mit
- 6 Laufwerken und 120 B&auml;ndern in einem Geh&auml;use. Die
- B&auml;nder werden von der Ger&auml;teeinheit automatisch gewechselt.
- Die Kapazit&auml;t einer solchen Bibliothek liegt bei 840 GB und
- mehr.</para>
-
- <para>Das Exabyte-Modell <quote>Mammoth</quote> unterst&uuml;tzt 12 GB
- auf einem Band (24 MB mit Kompression) und kostet etwa doppelt so viel
- wie ein konventionelles Bandlaufwerk.</para>
-
- <para>Die Daten werden mittels Helical-Scan auf das Band
- aufgezeichnet, die K&ouml;pfe sind leicht schr&auml;g zum Medium
- angebracht (mit einem Winkel von etwa 6 Grad). Das Band wickelt sich
- 270 Grad um die Spule, die die K&ouml;pfe tr&auml;gt. Die Spule dreht
- sich, w&auml;hrend das Band dar&uuml;berl&auml;uft. Das Resultat ist
- eine hohe Datendichte und eng gepackte Spuren, die von einem Rand des
- Bands zum gegen&uuml;berliegenden quer &uuml;ber das Band abgewinkelt
- verlaufen.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-qic">
- <title>QIC</title>
-
- <para>QIC-150-B&auml;nder und -Laufwerke sind wohl der am weitesten
- verbreitete Bandtyp &uuml;berhaupt. QIC-Bandlaufwerke sind die
- preiswertesten "seri&ouml;sen" Backupger&auml;te, die angeboten
- werden. Der Nachteil dabei ist der hohe Preis der B&auml;nder.
- QIC-B&auml;nder sind im Vergleich zu 8mm- oder 4mm-B&auml;ndern bis zu
- 5 Mal teurer, wenn man den Preis auf 1 GB Datenkapazit&auml;t
- umrechnet. Aber wenn Ihr Bedarf mit einem halben Dutzend B&auml;nder
- abgedeckt werden kann, mag QIC die richtige Wahl sein.</para>
-
- <para>QIC ist der <emphasis>g&auml;ngigste</emphasis>
- Bandlaufwerkstyp. Jeder Standort hat ein QIC-Laufwerk der einen oder
- anderen Dichte. Aber gerade das ist der Haken an der Sache, QIC
- bietet eine gro&szlig;e Anzahl verschiedener Datendichten auf
- physikalisch &auml;hnlichen (manchmal identischen) B&auml;ndern.
- QIC-Laufwerke sind nicht leise. Diese Laufwerke suchen lautstark die
- richtige Bandstelle, bevor sie mit der Datenaufzeichnung beginnen.
- Sie sind w&auml;hrend des Lesens, Schreibens und Suchens deutlich
- h&ouml;rbar.</para>
-
- <para>Die Abmessungen der QIC-Kassetten betragen 152.4 x 101.6 x 17.78
- mm (6 x 4 x 0,7 Inch), die QIC-Bandbreite betr&auml;gt 6,35 mm (1/4
- Inch). <link
- linkend="backups-tapebackups-mini">Mini-Cartridges</link>, die die
- gleiche Bandbreite verwenden, werden gesondert vorgestellt.
- Bandbibliotheken und Bandwechselger&auml;te gibt es im QIC-Format
- keine.</para>
-
- <para>Der Datendurchsatz liegt ungef&auml;hr zwischen 150 kByte/s und
- 500 kByte/s. Die Datenkapzit&auml;t reicht von 40 MB bis zu 15 GB.
- Hardwarekompression ist in vielen der neueren QIC-Laufwerke eingebaut.
- QIC-Laufwerke werden heute seltener eingesetzt; sie werden von den
- DAT-Laufwerken abgel&ouml;st.</para>
-
- <para>Die Daten werden auf dem Band in Spuren aufgezeichnet. Die
- Spuren verlaufen entlang der L&auml;ngsachse des Bandmediums von einem
- Ende zum anderen. Die Anzahl der Spuren, und damit auch die Breite
- einer Spur, variiert mit der Kapazit&auml;t des Laufwerks. Die
- meisten, wenn nicht alle neueren Laufwerke sind
- r&uuml;ckw&auml;rtskompatibel, zumindest zum Lesen (aber oft auch zum
- Schreiben). QIC hat einen guten Ruf bez&uuml;glich der
- Datensicherheit (die Mechanik ist einfacher und robuster als diejenige
- der Helical-Scan-Laufwerken).</para>
-
- <para>B&auml;nder sollten nach 5,000 Backups ersetzt werden.</para>
- </sect2>
-
-<![ %not.published; [
-
- <sect2 id="backups-tapebackups-mini">
- <title>* Mini-Cartridge</title>
-
- <para></para>
- </sect2>
-
-]]>
-
- <sect2 id="backups-tapebackups-dlt">
- <title>DLT</title>
-
- <para>DLT hat die schnellste Datentransferrate von allen hier
- aufgelisteten Ger&auml;tetypen. Das 1/2-Inch-Band (12,7 mm) befindet
- sich in einer Spulkassette mit den Abmessungen 101,6 x 101,6 x 25,4 mm
- (4 x 4 x 1 Inch). Die eine Seite der Kassette hat eine bewegliche
- Abdeckung. Der Laufwerksmechanismus &ouml;ffnet diese Abdeckung und
- zieht die Bandf&uuml;hrung heraus. Die Bandf&uuml;hrung tr&auml;gt
- ein ovales Loch, die das Laufwerk zum "Einh&auml;ngen" des Bandes
- benutzt. Die Aufwickelspule befindet sich im Innern des
- Bandlaufwerks. Bei allen anderen hier besprochenen Bandkassetten
- (9-Spur-B&auml;nder sind die einzige Ausnahme) befinden sich sowohl
- die Auf- als auch die Abwickelspule im Inneren der
- Bandkassette.</para>
-
- <para>Der Datendurchsatz liegt bei etwa 1,5 MBytes/s, der dreifache
- Durchsatz der 4mm-, 8mm- oder QIC-Bandlaufwerke. Die
- Datenkapazit&auml;t reicht von 10 GB bis 20 GB f&uuml;r
- Einfachlaufwerke. Auch Mehrfachbandger&auml;te sind erh&auml;ltlich,
- sowohl als Bandwechsler wie auch als Multi-Drive-Bandbibliotheken, die
- Platz f&uuml;r 5 bis 900 B&auml;nder verteilt auf 1 bis 20 Laufwerke
- enthalten, mit einer Speicherkapazit&auml;t von 50 GB bis 9 TB.</para>
-
- <para>Mit Kompression unterst&uuml;tzt das Format DLT Type IV bis zu
- 70 GB Kapazit&auml;t.</para>
-
- <para>Die Daten werden auf dem Band in Spuren aufgezeichnet, die
- parallel zur Bewegungsrichtung verlaufen (gerade so wie bei den
- QIC-B&auml;ndern). Zwei Spuren werden dabei gleichzeitig beschrieben.
- Die Lebenszeit der Lese- und Schreibk&ouml;pfe sind relativ lang; denn
- sobald das Band anh&auml;lt, gibt es keine Relativbewegung mehr
- zwischen den K&ouml;pfen und dem Band.</para>
- </sect2>
-
- <sect2>
- <title id="backups-tapebackups-ait">AIT</title>
-
- <para>AIT ist ein neues Format von Sony, das (mit Kompression) bis zu
- 50 GB pro Band speichern kann. Die B&auml;nder haben einen
- Speicherchip, der einen Index mit dem Inhalt des Bandes anlegt.
- Dieser Index kann vom Bandlaufwerk zur schnellen Bestimmung der Lage
- von Dateien auf dem Band benutzt werden, w&auml;hrend andere
- B&auml;nder einige Minuten zur Lokalisierung ben&ouml;tigen.</para>
-
- <para>Entsprechende Software wie etwa SAMS:Alexandria
- k&ouml;nnen 40 oder mehr AIT-Bandbibliotheken verarbeiten, indem sie
- direkt mit dem Speicherchip des Bandes kommunizieren, wenn der
- Bandinhalt am Bildschirm dargestellt werden soll oder bestimmt werden
- soll, welche Dateien auf welchem Band gespeichert sind, oder um das
- richtige Band zu lockalisieren, zu laden und Daten vom Band
- zur&uuml;ckzuspielen. Bibliotheken dieser Art liegen in der
- Preiskategorie von $20,000, womit sie etwas aus dem Hobbymarkt
- herausfallen.</para>
- </sect2>
-
- <sect2>
- <title>Die erste Benutzung eines neuen Bands</title>
-
- <para>Der Versuch ein neues, vollkommen leeres Band ohne weiteres zu
- lesen oder zu beschreiben wird schiefgehen. Auf der Konsole werden
- dann Meldungen &auml;hnlich wie folgt ausgegeben:</para>
-
- <screen>sa0(ncr1:4:0): NOT READY asc:4,1
-0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
-
- <para>Das Band enth&auml;lt n&auml;mlich keinen Identifier-Block
- (Blocknummer 0). Alle QIC-Bandlaufwerke seit der Einf&uuml;hrung des
- QIC-525-Standards schreiben einen Identifier-Block auf das Band. Es
- gibt zwei L&ouml;sungen:</para>
-
- <para><command>mt fsf 1</command> veranlasst das Bandlaufwerk einen
- Identifier-Block auf das Band zu schreiben.</para>
-
- <para>Das Band durch Dr&uuml;cken des Bandauswurfknopfs an der
- Vorderseite des Bandger&auml;ts auswerfen.</para>
-
- <para>Danach das Band wieder einlegen und Daten auf das Band
- &uuml;bertragen wie in &man.dump.8; beschrieben.</para>
-
- <para>Das Kommando &man.dump.8; gibt die Meldung <literal>DUMP: End of
- tape detected</literal> zur&uuml;ck und die Konsole zeigt:
- <literal>HARDWARE FAILURE info:280 asc:80,96</literal></para>
-
- <para>Das Band zur&uuml;ckspulen mit dem Kommando: <command>mt
- rewind</command></para>
-
- <para>Nachfolgende Bandoperationen werden dann erfolgreich
- ausgef&uuml;hrt.</para>
- </sect2>
- </sect1>
-
- <sect1 id="backup-programs">
- <title>Backup-Programme</title>
-
- <para>Die drei wichtigsten Programme sind
- &man.dump.8;,
- &man.tar.1;,
- and
- &man.cpio.1;.</para>
-
- <sect2>
- <title>Aufspielen und Wiederherstellen</title>
-
- <para>&man.dump.8; und &man.restore.8; sind die traditionellen
- Backupprogramme in UNIX. Sie betrachten das Laufwerk als eine
- Ansammlung von Bl&ouml;cken, operieren also unterhalb dem
- Abstraktionslevel von Dateien, Links und Verzeichnissen, die die
- Grundlage des Dateisystemkonzepts bilden.</para>
-
- <para>&man.dump.8; f&uuml;hrt Datensicherungen von Ger&auml;ten aus,
- bearbeitet also nur komplette Dateisysteme, nicht jedoch Teile eines
- Dateisystems und auch keine Verzeichnisb&auml;ume, die mehr als ein
- Dateisystem &uuml;berspannen, was durch Verwendung von symbolischen
- Links mittels &man.ln.1; oder durch das Einh&auml;ngen von
- Dateisystemen vorkommen kann. &man.dump.8; schreibt also keine
- Dateien und Verzeichnisse auf das Band, sondern direkt die
- Datenbl&ouml;cke, die die Dateien und Verzeichnisse enthalten.</para>
-
- <para>&man.dump.8; hat einige Eigenarten, die noch aus den fr&uuml;hen
- Tagen der Version 6 von ATT UNIX (ca. 1975) stammen. Die Parameter
- sind f&uuml;r 9-Spur-B&auml;nder (6250 bpi) voreingestellt, nicht auf
- die heute &uuml;blichen Medien hoher Dichte (bis zu 62.182 ftpi). Bei
- der Verwendung der Kapazit&auml;ten moderner Bandlaufwerke muss diese
- Voreinstellung auf der Kommandozeile &uuml;berschrieben werden.</para>
-
- <para>&man.rdump.8; und &man.rrestore.8; k&ouml;nnen Daten &uuml;ber
- Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen
- Computers befindet, &uuml;berspielen. Beide Programme benutzen die
- Befehle &man.rcmd.3; und &man.ruserok.3; zum Zugriff auf das entfernte
- Bandlaufwerk. Daher muss der Anwender, der das Backup
- durchf&uuml;hrt, auf dem entfernten Computer eine Zugangsberechtigung
- f&uuml;r <literal>rhosts</literal> haben.</para>
-
- <para>Die Argumente zu &man.rdump.8; und &man.rrestore.8; m&uuml;ssen
- zur Verwendung auf dem entfernten Computer geeignet sein.
- (Z.B. lautet das Kommando zum Aufrufen von <command>rdump</command>
- von einem FreeBSD-Computer aus auf ein Exabyte-Bandlaufwerk auf einer
- Sun namens <hostid>komodo</hostid>: <command>/sbin/rdump 0dsbfu 54000
- 13000 126 komodo:/dev/nrsa8 /dev/rda0a 2&gt;&amp;1</command>). Man
- beachte, dass bei der Ausf&uuml;hrung die Sicherheitsvorkehrungen wie
- beim Aufruf des Kommandos <literal>rhosts</literal> gelten.
- Erkundigen Sie sich nach Ihrer Zugangsberechtigung.</para>
- </sect2>
-
- <sect2>
- <title>Tar</title>
-
- <para>&man.tar.1; stammt ebenfalls aus Version 6 von ATT Unix
- (ca. 1975). &man.tar.1; arbeitet mit dem Dateisystem, denn es
- schreibt Dateien und Verzeichnisse auf das Band. &man.tar.1;
- unterst&uuml;tzt zwar nicht den vollen Umfang von Optionen, die bei
- &man.cpio.1; zur Verf&uuml;gung stehen, aber daf&uuml;r erfordert
- &man.tar.1; nicht die ungew&ouml;hnliche Kommando-Pipeline,1 die
- &man.cpio.1; verwendet.</para>
-
- <para>Die meisten Versionen von &man.tar.1; unterst&uuml;tzen keine
- Backups &uuml;ber das Netzwerk. Die GNU-Version von &man.tar.1;, die
- in FreeBSD verwendet wird, unterst&uuml;zt jedoch entfernte
- Ger&auml;te mit der gleichen Syntax wie &man.rdump.8;. Um &man.tar.1;
- f&uuml;r ein Exabyte-Bandlaufwerk auf einer Sun
- namens<hostid>komodo</hostid> auszuf&uuml;hren, muss folgendes
- Kommando aufgerufen werden: <command>/usr/bin/tar cf komodo:/dev/nrsa8
- . 2&gt;&amp;1</command>. Bei den Versionen ohne Unterst&uuml;tzung
- f&uuml;r entfernte Ger&auml;te kann man die Daten &uuml;ber eine
- Pipeline und &man.rsh.1; an ein entferntes Laufwerk senden.</para>
-
- <screen>&prompt.root; <userinput>tar cf - . | rsh <replaceable>hostname</replaceable> dd of=<replaceable>tape-device</replaceable> obs=20b</userinput></screen>
-
- <para>Wenn Sie Bedenken bez&uuml;glich der Sicherheit beim Backup
- &uuml;ber's Netz haben, sollten Sie &man.ssh.1; anstatt
- &man.rsh.1; benutzen.</para>
- </sect2>
-
- <sect2>
- <title>Cpio</title>
-
- <para>&man.cpio.1; ist das urspr&uuml;ngliche Unix-Programm zum
- Dateitransfer mit magnetischen Medien. &man.cpio.1; hat (neben vielen
- anderen Leistungsmerkmalen) Optionen zum Byte-Swapping, zum Schreiben
- einer Anzahl verschiedener Archivformate und zum Weiterleiten von
- Daten an andere Programme &uuml;ber Pipeline. Dieses letztes
- Leistungsmerkmal macht &man.cpio.1; zu einer ausgezeichneten Wahl
- f&uuml;r Installationsmedien. Leider kann &man.cpio.1; keine
- Dateib&auml;ume durchlaufen, so dass eine Liste der zu bearbeitenden
- Dateien &uuml;ber <filename>stdin</filename> angegeben werden
- muss.</para>
-
- <para>&man.cpio.1; unterst&uuml;tzt keine Backups &uuml;ber das
- Netzwerk. Man kann aber eine Pipeline und &man.rsh.1 verwenden, um
- Daten an ein entferntes Bandlaufwerk zu senden. (XXX ein
- Beispiel-Kommando beif&uuml;gen)</para>
- </sect2>
-
- <sect2>
- <title>Pax</title>
-
- <para>&man.pax.1; ist die Antort von IEEE/POSIX auf &man.tar.1; und
- &man.cpio.1;. &Uuml;ber die Jahre hinweg sind die verschiedenen
- Versionen von &man.tar.1; und &man.cpio.1; leicht inkompatibel
- geworden. Daher hat POSIX, statt eine Standardisierung zwischen
- diesen auszufechten, ein neues Archivprogramm geschaffen. &man.pax.1;
- versucht viele der unterschiedlichen cpio- und tar-Formate zu lesen
- und zu schreiben, au&szlig;erdem einige neue, eigene Formate. Die
- Kommandostruktur &auml;hnelt eher &man.cpio.1; als &man.tar.1;.</para>
- </sect2>
-
- <sect2 id="backups-programs-amanda">
- <title>Amanda</title>
-
- <para><ulink url="../ports/misc.html#amanda-2.4.0">Amanda</ulink>
- (Advanced Maryland Network Disk Archiver) ist ein
- Client/Server-Backupsystem, nicht nur ein einzelnes Programm. Ein
- Amanda-Server kann auf einem einzigen Bandlaufwerk Datensicherungen
- von jeder beliebigen Anzahl von Computern speichern, sofern auf diesen
- jeweils ein Amanda-Client l&auml;uft und sie &uuml;ber Netzwerk mit
- dem Amanda-Server verbunden sind.</para>
-
- <para>Ein h&auml;ufiges Problem bei Standorten mit einer Anzahl
- gro&szlig;er Festplatten ist, dass das Kopieren der Daten auf Band
- langsamer vor sich geht als solche Daten anfallen. Amanda l&ouml;st
- dieses Problem durch Verwendung einer "Holding Disk", einer Festplatte
- zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.</para>
-
- <para>F&uuml;r Datensicherungen &uuml;ber einen l&auml;ngeren Zeitraum
- erzeugt Amanda "Archivsets" von allen Dateisystemen, die in Amanda's
- Konfigurationsdatei genannt werden. Ein Archivset ist eine Gruppe von
- B&auml;ndern mit vollen Backups und Reihen von inkrementellen (oder
- differentiellen) Backups, die jeweils nur die Unterschiede zum vorigen
- Backup enthalten. Zur Wiederherstellung von besch&auml;digten
- Dateissystemen ben&ouml;tigt man das letzte volle Backup und alle
- darauf folgenden inkrementellen Backups.</para>
-
- <para>Ein g&auml;ngiger Datensicherungsplan ist, an den Wochenenden
- ein volles Backup und w&auml;hrend der Woche jede Nacht ein
- inkrementelles Backup zu erstellen.</para>
-
- <para>Die Konfigurationsdatei erm&ouml;glicht die Feineinstellung der
- Backups und des Netzwerkverkehrs von Amanda. Amanda kann zum
- Schreiben der Daten auf das Band jedes der oben beschriebenen
- Backuprogramme verwenden. Amanda ist erh&auml;ltlich als Portierung
- oder als Softwarepaket, es ist nicht von vorne herein auf dem System
- installiert.</para>
- </sect2>
-
- <sect2>
- <title>Tue nichts</title>
-
- <para><quote>Tue nichts</quote> ist kein Computerprogramm, sondern die
- am h&auml;ufigsten angewendete Backupstrategie. Diese kostet nichts,
- man muss keinen Backupplan befolgen, einfach nur nein sagen. Wenn
- etwas passiert, einfach grinsen und ertragen!</para>
-
- <para>Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist
- die Strategie <quote>Tue nichts</quote> das geeignetste Backupprogramm
- f&uuml;r Ihren Computer. Aber UNIX ein n&uuml;tzliches Werkzeug. Sie
- m&uuml;ssen damit rechnen, dass Sie innerhalb von sechs Monaten eine
- Sammlung von Dateien haben, die f&uuml;r Sie wertvoll geworden
- sind.</para>
-
- <para><quote>Tue nichts</quote> ist die richtige Backupmethode f&uuml;r
- <filename>/usr/obj</filename> und andere Verzeichnisb&auml;ume, die
- vom Computer exakt wiedererzeugt werden k&ouml;nnen. Ein Beispiel
- sind die Dateien, die diese Handbuchseiten darstellen &mdash; sie
- wurden aus Quelldateien im Format <acronym>SGML</acronym> erzeugt. Es
- ist nicht n&ouml;tig, Sicherheitskopien der Dateien in den
- sekund&auml;ren Formaten wie etwa <acronym>HTML</acronym> zu
- erstellen. Die Quelldateien in <acronym>SGML</acronym> sollten jedoch
- in die regelm&auml;&szlig;igen Backups mit einbezogen werden.</para>
- </sect2>
-
- <sect2>
- <title>Welches Backup-Programm ist am Besten?</title>
-
- <para>&man.dump.8;, <emphasis>Punkt und Schluss.</emphasis> Elizabeth
- D. Zwicky hat alle hier genannten Backup-Programme bis zur
- Ersch&ouml;pfung ausgetestet. Ihre eindeutige Wahl zur Sicherung
- aller Daten mit Ber&uuml;cksichtigung aller Besonderheiten von
- UNIX-Dateisystemen ist &man.dump.8;.</para>
-
- <para>Elizabeth erzeugte Dateisysteme mit einer gro&szlig;en Vielfalt
- ungew&ouml;hnlicher Bedingungen (und einiger gar nicht so
- ungew&ouml;hnlicher) und testete jedes Programm durch ein Backup und
- eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten
- waren Dateien mit L&ouml;chern, Dateien mit L&ouml;chern und einem
- Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im
- Dateinamen, unlesbare und nichtschreibbare Dateien,
- Ger&auml;tedateien, Dateien, deren L&auml;nge sich w&auml;hrend des
- Backups &auml;ndert, Dateien, die w&auml;hrend des Backups erzeugt und
- gel&ouml;scht werden, u.v.m. Sie berichtete &uuml;ber ihre Ergebnisse
- in LISA V im Oktober 1991, s. <ulink
- url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">Torture-testing
- Backup and Archive Programs</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Die Wiederherstellung in einem Notfall</title>
-
- <sect3>
- <title>Vor dem Ungl&uuml;ck</title>
-
- <para>Es sind nur vier Vorkehrungen zu treffen, um auf jedes
- erdenkliche Ungl&uuml;ck vorbereitet zu sein.</para>
-
- <para>Als erstes drucken Sie das Disklabel jeder Ihrer Festplatten
- (z.B. mittels <command>disklabel da0 | lpr</command>), die
- Partitions- und Dateisystemtabelle jeder Festplatte (mit
- <filename>/etc/fstab</filename>) sowie alle Bootmeldungen, jeweils
- in zweifacher Ausfertigung.</para>
-
- <para>Zweitens, &uuml;berzeugen Sie sich, dass sowohl die
- Bootdiskette als auch die Reparaturdiskette
- (<filename>boot.flp</filename> bzw. <filename>fixit.flp</filename>)
- all Ihre Ger&auml;te ansprechen k&ouml;nnen. Die einfachste Methode
- dies nach zu pr&uuml;fen ist, Ihren Rechner mit der Boot-Diskette im
- Floppylaufwerk neu zu starten und die Bootmeldungen zu durchzusehen.
- Wenn all Ihre Ger&auml;te aufgelistet sind und funktionieren,
- k&ouml;nnen Sie weiter zu Schritt drei gehen.</para>
-
- <para>Ist das nicht der Fall, m&uuml;ssen Sie sich eine eigene
- Version der beiden zum Booten ben&ouml;tigten Disketten erstellen.
- Diese m&uuml;ssen einen Kernel enthalten, der all Ihre Platten
- mounten kann und Zugriff auf Ihr Bandlaufwerk gestattet. Diese
- Disketten m&uuml;ssen ferner folgende Programme enthalten:
- &man.fdisk.8;, &man.disklabel.8;, &man.newfs.8;, &man.mount.8; sowie
- jedes Backup-Programm, das Sie verwenden. Diese Programme
- m&uuml;ssen statisch gelinkt sein. Falls Sie &man.dump.8;
- verwenden, muss die Diskette auch &man.restore.8; enthalten.</para>
-
- <para>Drittens, machen Sie oft Backups auf Band. Jede &Auml;nderung
- seit Ihrem letzten Backup kann unwiederbringlich verloren gehen.
- Versehen Sie die Backup-B&auml;nder mit Schreibschutz.</para>
-
- <para>Viertens, testen Sie aus, wie die Disketten (entweder
- <filename>boot.flp</filename> und <filename>fixit.flp</filename>
- oder Ihre beiden eigenen Disketten aus Schritt zwei) und die
- B&auml;nder mit den Backups zu behandeln sind. Machen Sie sich
- Notizen zu diesem Test. Bewahren Sie diese Notizen zusammen mit den
- Bootdisketten, den Ausdrucken und den B&auml;ndern mit den Backups
- auf. Wenn der Ernstfall eintritt, werden Sie vielleicht so genervt
- sein, dass Sie ohne Ihre Notizen evt. das Backup auf Ihren
- B&auml;ndern zerst&ouml;ren. (Wie das geht? Man braucht nur
- ungl&uuml;cklicherweise den Befehl <command>tar cvf
- /dev/rsa0</command> einzugeben um ein Band zu
- &uuml;berschreiben).</para>
-
- <para>Als zus&auml;tzliche Sicherheitsvorkehrung, kann man jeweils
- die Disketten und B&auml;nder zweifach erstellen. Eine der Kopien
- sollte an einem entfernten Standort aufbewahrt werden. Ein
- entfernter Standort ist NICHT der Keller im gleichen
- B&uuml;rogeb&auml;ude. Eine Anzahl von Firmen im World Trade Center
- musste diese Lektion auf die harte Tour lernen. Ein entfernter
- Standort sollte von Ihrem Computer und Ihren Festplatten
- physikalisch durch eine erhebliche Entfernung getrennt sein.</para>
-
- <para>Ein Beispielskript zum Erstellen eigener Bootdisketten:</para>
-
- <programlisting>
-<![ CDATA [#!/bin/sh
-#
-# Erstellen einer Diskette zur Wiederherstellung eines Backups
-#
-# Diskette formatieren
-#
-PATH=/bin:/sbin:/usr/sbin:/usr/bin
-
-fdformat -q fd0
-if [ $? -ne 0 ]
-then
-echo "Bad floppy, please use a new one"
-exit 1
-fi
-
-# Die Bootbloecke auf die Diskette schreiben
-#
-disklabel -w -B /dev/rfd0c fd1440
-
-#
-# Dateisystem fuer die (einzige) Partition auf der Diskette
-#
-newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a
-
-#
-# Diskette mounten
-#
-mount /dev/fd0a /mnt
-
-#
-# Benoetigte Verzeichnisse erstellen
-#
-mkdir /mnt/dev
-mkdir /mnt/bin
-mkdir /mnt/sbin
-mkdir /mnt/etc
-mkdir /mnt/root
-mkdir /mnt/mnt # fuer die Root-Partition
-mkdir /mnt/tmp
-mkdir /mnt/var
-
-#
-# die Verzeichnisse bevoelkern
-#
-if [ ! -x /sys/compile/MINI/kernel ]
-then
-cat << EOM
-Der MINI_Kernel existiert nicht, bitte einen erzeugen.
-Hier ein Beispiel einer Konfigurationsdatei:
-#
-# MINI -- Ein FreeBSD-Kernel, der auf die Diskette passt.
-#
-machine "i386"
-cpu "I486_CPU"
-ident MINI
-maxusers 5
-
-options INET # notwendig fuer _tcp _icmpstat _ipstat
-# _udpstat _tcpstat _udb
-options FFS #Berkeley Fast File System
-options FAT_CURSOR #Blockcursor in syscons oder pccons
-options SCSI_DELAY=15 #traue nicht Joe's SCSI-Geraet
-options NCONS=2 #2 virtuelle Konsolen
-options USERCONFIG #Konfiguration mit -c XXX zulassen
-
-
-config kernel root on da0 swap on da0 and da1 dumps on da0
-
-controller isa0
-controller pci0
-
-controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
-disk fd0 at fdc0 drive 0
-
-controller ncr0
-
-controller scbus0
-
-device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
-device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
-
-device da0
-device da1
-device da2
-
-device sa0
-
-pseudo-device loop # von INET benoetigt
-pseudo-device gzip # komprimierte a.out-Dateien ausfuehren
-EOM
-exit 1
-fi
-
-cp -f /sys/compile/MINI/kernel /mnt
-
-gzip -c -best /sbin/init > /mnt/sbin/init
-gzip -c -best /sbin/fsck > /mnt/sbin/fsck
-gzip -c -best /sbin/mount > /mnt/sbin/mount
-gzip -c -best /sbin/halt > /mnt/sbin/halt
-gzip -c -best /sbin/restore > /mnt/sbin/restore
-
-gzip -c -best /bin/sh > /mnt/bin/sh
-gzip -c -best /bin/sync > /mnt/bin/sync
-
-cp /root/.profile /mnt/root
-
-cp -f /dev/MAKEDEV /mnt/dev
-chmod 755 /mnt/dev/MAKEDEV
-
-chmod 500 /mnt/sbin/init
-chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
-chmod 555 /mnt/bin/sh /mnt/bin/sync
-chmod 6555 /mnt/sbin/restore
-
-#
-# Geraetedateien erstellen
-#
-cd /mnt/dev
-./MAKEDEV std
-./MAKEDEV da0
-./MAKEDEV da1
-./MAKEDEV da2
-./MAKEDEV sa0
-./MAKEDEV pty0
-cd /
-
-#
-# Minimale Dateisystemtabelle erstellen
-#
-cat > /mnt/etc/fstab <<EOM
-/dev/fd0a / ufs rw 1 1
-EOM
-
-#
-# Minimale Passwortdatei erstellen
-#
-cat > /mnt/etc/passwd <<EOM
-root:*:0:0:Charlie &:/root:/bin/sh
-EOM
-
-cat > /mnt/etc/master.passwd <<EOM
-root::0:0::0:0:Charlie &:/root:/bin/sh
-EOM
-
-chmod 600 /mnt/etc/master.passwd
-chmod 644 /mnt/etc/passwd
-/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
-
-#
-# Die Diskette aushaengen und den Benutzer informieren
-#
-/sbin/umount /mnt
-echo "Die Diskette wurde ausgehaengt und ist jetzt bereit."]]></programlisting>
- </sect3>
-
- <sect3>
- <title>Nach dem Ungl&uuml;ck</title>
-
- <para>Die Schl&uuml;sselfrage ist, ob Ihre Hardware &uuml;berlebt
- hat. Denn da Sie ja regelm&auml;&szlig;ig Backups angefertigt
- haben, brauchen Sie sich um die Software keine Sorgen zu
- machen.</para>
-
- <para>Falls die Hardware besch&auml;digt wurde, ersetzen Sie zuerst
- die defekten Teile.</para>
-
- <para>Falls die Hardware funktioniert, &uuml;berpr&uuml;fen Sie die
- Disketten. Wenn Sie eigene Bootdisketten verwenden, booten Sie im
- Single-User-Modus (geben dazu Sie <literal>-s</literal> am
- Boot-Prompt <prompt>boot:</prompt> ein). &Uuml;berspringen Sie den
- folgenden Paragrafen.</para>
-
- <para>Wenn Sie die Standarddisketten <filename>boot.flp</filename>
- und <filename>fixit.flp</filename> verwenden, lesen Sie hier weiter.
- Legen Sie die Bootdiskette <filename>boot.flp</filename> in das
- erste Floppylaufwerk ein und starten Sie den Computer. Wie
- &uuml;blich wird dann das originale Installationsmen&uuml; von
- FreeBSD gestartet. W&auml;hlen Sie die Option
- <literal>Fixit--Repair mode with CDROM or floppy.</literal>. Legen
- Sie die Diskette <filename>fixit.flp</filename> ein, wenn danach
- gefragt wird. <command>restore</command> und die anderen Programme,
- die Sie ben&ouml;tigen, befinden sich dann in
- <filename>/mnt2/stand</filename>.</para>
-
- <para>Stellen Sie die Dateisysteme nacheinander, getrennt von
- einander, wieder her.</para>
-
- <para>Versuchen Sie die Root-Partition Ihrer ersten Festplatte
- &man.mount.8; einzuh&auml;ngen (z.B. mit <command>mount /dev/sd0a
- /mnt</command>). Wenn das Disklabel besch&auml;digt wurde, benutzen
- Sie &man.disklabel.8; um die Platte neu zu partitionieren und zu
- benennen und zwar so, dass die Festplatte mit dem Label
- &uuml;bereinstimmt, das Sie ausgedruckt und aufbewahrt haben.</para>
-
- <para>Verwenden Sie &man.newfs.8; um neue Dateisysteme auf den
- Partitionen anzulegen. H&auml;ngen Sie nun die Root-Partition der
- Festplatte mit Schreibzugriff ein (mit <command>mount -u -o rw
- /mnt</command>). Benutzen Sie Ihr Backup-Programm um die Daten
- f&uuml;r das jeweilige Dateisystem aus den Backup-B&auml;ndern
- wieder her zu stellen (z.B. durch <command>restore vrf
- /dev/sta</command>). H&auml;ngen Sie das Dateisystem wieder aus
- (z.B. durch <command>umount /mnt</command>). Wiederholen Sie diesen
- Ablauf f&uuml;r jedes betroffene Dateisystem.</para>
-
- <para>Sobald Ihr System wieder l&auml;uft, machen Sie gleich wieder
- ein vollst&auml;ndiges Backup auf neue B&auml;nder. Denn die
- Ursache f&uuml;r den Absturz oder den Datenverlust kann wieder
- zuschlagen. Eine weitere Stunde, die Sie jetzt noch
- dranh&auml;ngen, kann Ihnen sp&auml;ter ein weiteres Missgeschick
- ersparen.</para>
- </sect3>
-
-<![ %not.published; [
-
- <sect3>
- <title>* Ich habe mich nicht auf Missgeschicke vorbereitet - was
- nun?</title>
-
- <para></para>
- </sect3>
-
-]]>
-
- </sect2>
- </sect1>
-
- <sect1 id="backups-floppybackups">
- <title>Was ist mit Backups auf Disketten?</title>
-
- <sect2 id="floppies-using">
- <title>Kann ich Disketten zum Backup meiner Daten verwenden?</title>
-
- <para>Disketten sind kein wirklich geeignetes Medium f&uuml;r Backups
- aus folgenden Gr&uuml;nden:</para>
-
- <itemizedlist>
- <listitem>
- <para>Disketten sind unzuverl&auml;ssig, besonders
- langfristig.</para>
- </listitem>
-
- <listitem>
- <para>Speichern und Wiederherstellen ist sehr langsam.</para>
- </listitem>
-
- <listitem>
- <para>Sie haben eine sehr eingeschr&auml;nkte Kapazit&auml;t (Die
- Zeiten sind l&auml;ngst vorbei, wo eine ganze Festplatte auf ein
- Dutzend Floppies oder so gespeichert werden konnte).</para>
- </listitem>
- </itemizedlist>
-
- <para>Wenn jedoch keine andere M&ouml;glichkeit zum Datenbackup
- vorhanden ist, dann sind Disketten immer noch besser als gar kein
- Backup.</para>
-
- <para>Wenn man gezwungen ist Disketten zu verwenden, dann sollte man
- auf eine gute Qualit&auml;t achten. Floppies, die schon einige Jahre
- im B&uuml;ro herumgelegen haben, sind eine schlechte Wahl. Ideal sind
- neue Disketten von einem renommierten Hersteller.</para>
- </sect2>
-
- <sect2 id="floppies-creating">
- <title>Wie mache ich ein Backup auf Disketten?</title>
-
- <para>Die beste Art eines Diskettenbackups ist der Befehl &man.tar.1;
- mit der Mehrfachband-Option <option>-M</option>, die es
- erm&ouml;glicht ein Backup &uuml;ber mehrere Floppies zu
- verteilen.</para>
-
- <para>Ein Backup aller Dateien im aktuellen Verzeichnis
- einschlie&szlig;lich aller Unterverzeichnisse wird durch den folgenden
- Befehl veranlasst (als root):</para>
-
- <screen>&prompt.root; <userinput>tar Mcvf /dev/rfd0 *</userinput></screen>
-
- <para>Wenn die erste Floppy voll ist, meldet sich &man.tar.1; und
- verlangt einen Diskettenwechsel (weil &man.tar.1; unabh&auml;ngig vom
- Medium arbeitet, wird der n&auml;chste Band (Volume) verlangt, was in
- diesem Zusammenhang eine Diskette bedeutet), in etwa wie folgt:</para>
-
- <screen>Prepare volume #2 for /dev/rfd0 and hit return:</screen>
-
- <para>Dies wird mit steigender Volumezahl wiederholt, bis alle
- angebenen Dateien archiviert sind.</para>
- </sect2>
-
- <sect2 id="floppies-compress">
- <title>K&ouml;nnen Diskettenbackups komprimiert werden?</title>
-
- <para>Leider erlaubt es &man.tar.1; nicht, die Option
- <option>-z</option> f&uuml;r Multi-Volume-Archive zu verwenden. Man
- kann nat&uuml;rlich alle Dateien mit &man.gzip.1; komprimieren, sie
- mit &man.tar.1; auf die Floppies aufspielen, und dann die Dateien
- wieder &man.gunzip.1; entkomprimieren!</para>
- </sect2>
-
- <sect2 id="floppies-restoring">
- <title>Wie werden Diskettenbackups wieder her gestellt?</title>
-
- <para>Zur Wiederherstellung des gesamten Archivs verwendet man:</para>
-
- <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0</userinput></screen>
-
- <para>Eine Methode um nur bestimmte Dateien wieder her zu stellen ist
- mit der ersten Diskette den folgenden Befehl auszuf&uuml;hren:</para>
-
- <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0 <replaceable>filename</replaceable></userinput></screen>
-
- <para>&man.tar.1; wird dann dir folgenden Disketten anfordern, bis die
- ben&ouml;tigte Datei gefunden ist.</para>
-
- <para>Wenn man die Diskette kennt auf der sich die Datei befindet,
- kann man alternativ diese Diskette auch direkt einlegen und den
- gleichen Befehl wie oben verwenden. Man beachte, dass, falls die
- erste Datei eine Fortsetzung eine Fortsetzung einer Datei von einer
- der vorigen Disketten ist, &man.tar.1; die Warnung ausgibt, dass diese
- Datei nicht wiederhergestellt werden kann, selbst dann, wenn dies gar
- nicht verlangt wurde!</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
deleted file mode 100644
index 2958665e8b..0000000000
--- a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
+++ /dev/null
@@ -1,581 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- Original version 1.20
- $FreeBSD$
--->
-
-<chapter id="basics">
- <title>Unix Grundlagen</title>
-
- <sect1>
- <title>&Uuml;bersicht</title>
-
- <para><emphasis>Neugeschrieben von Chris Shumway
- <email>cshumway@cdrom.com</email>, 10 Mar 2000.</emphasis></para>
- <para><emphasis>&Uuml;bersetzt von &a.de.pierau,
- Juni 2000</emphasis></para>
-
- <para>Das folgende Kapitel umfa&szlig;t die grundlegenden Kommandos
- und Funktionsweisen des Betriebssystems FreeBSD. Wenn FreeBSD neu
- f&uuml;r Sie ist, dann sollten Sie dieses Kapitel auf jeden Fall
- lesen, bevor Sie um Hilfe fragen.</para>
- </sect1>
-
- <sect1 id="permissions">
- <title>Zugriffsrechte</title>
-
- <para>Die Grundlagen von FreeBSD, dessen Geschichte in BSD UNIX
- begr&uuml;ndet ist, st&uuml;tzen sich auf verschiedene UNIX
- Grundkonzepte. Das erste und ausgepr&auml;gteste: FreeBSD ist
- ein Multi-User Betriebssystem. Das System erm&ouml;glicht,
- da&szlig; mehrere User gleichzeitig an v&ouml;llig verschiedenen
- und unabh&auml;ngigen Aufgaben arbeiten k&ouml;nnen. Es ist
- verantwortlich f&uuml;r eine gerechte Auf- und Zuteilung von
- Nachfragen nach Hardware- und Peripherieger&auml;ten, Speicher
- und CPU Zeit unter den Usern.</para>
-
- <para>Da das System mehere Benutzer unterst&uuml;tzt, hat alles,
- was das System verwaltet, einen Satz von Rechten, die bestimmen,
- wer die jeweilige Ressource lesen, schreiben oder ausf&uuml;hren
- darf. Diese Zugriffsrechte stehen in einer Achtergruppe, die in
- drei Teile unterteilt ist: einen f&uuml;r den Besitzer der
- Datei, einen f&uuml;r die Gruppe¸ zu der die Datei geh&ouml;rt
- und einen f&uuml;r alle anderen. Die numerische Darstellung
- sieht wie folgt aus:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Wert</entry>
- <entry>Zugriffsrechte</entry>
- <entry>Auflistung im Verzeichnis</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>0</entry>
- <entry>Kein Lesen, Kein Schreiben, Kein Ausf&uuml;hren</entry>
- <entry><literal>---</literal></entry>
- </row>
-
- <row>
- <entry>1</entry>
- <entry>Kein Lesen, Kein Schreiben, Ausf&uuml;hren</entry>
- <entry><literal>--x</literal></entry>
- </row>
-
- <row>
- <entry>2</entry>
- <entry>Kein Lesen, Schreiben, Kein Ausf&uuml;hren</entry>
- <entry><literal>-w-</literal></entry>
- </row>
-
- <row>
- <entry>3</entry>
- <entry>Kein Lesen, Schreiben, Ausf&uuml;hren</entry>
- <entry><literal>-wx</literal></entry>
- </row>
-
- <row>
- <entry>4</entry>
- <entry>Lesen, Kein Schreiben, Kein Ausf&uuml;hren</entry>
- <entry><literal>r--</literal></entry>
- </row>
-
- <row>
- <entry>5</entry>
- <entry>Lesen, Kein Schreiben, Ausf&uuml;hren</entry>
- <entry><literal>r-x</literal></entry>
- </row>
-
- <row>
- <entry>6</entry>
- <entry>Lesen, Schreiben, Kein Ausf&uuml;hren</entry>
- <entry><literal>rw-</literal></entry>
- </row>
-
- <row>
- <entry>7</entry>
- <entry>Lesen, Schreiben, Ausf&uuml;hren</entry>
- <entry><literal>rwx</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Bei einer ausf&uuml;hrlichen Verzeichnisauflistung mittels
- <command>ls -l</command> zeigt eine Spalte die Zugriffsrechte
- f&uuml;r den Besitzer, die Gruppe und alle anderen an. Hier
- sieht man, wie das aussehen k&ouml;nnte:</para>
-
- <screen>-rw-r--r--</screen>
-
- <para>Das erste Zeichen von links ist ein Sysmbol, welches angibt,
- ob es sich um eine normale Datei, ein Verzeichnis, ein special-
- oder block-device, ein Socket oder irgend eine andere
- Pseudo-Datei handelt. Die n&auml;chsten drei Zeichen,
- dargestellt als <literal>rw-</literal>, ergeben die Rechte
- f&uuml;r den Datei-Besitzer. Die drei Zeichen danach
- <literal>r--</literal> die Rechte der Gruppe, zu der die Datei
- geh&ouml;rt. Die letzten drei Zeichen, <literal>r--</literal>,
- geben die Rechte f&uuml;r den Rest der Welt an. Ein Minus
- bedeutet, da&szlig; das Recht nicht gegeben ist. In diesem Fall
- sind die Zugriffsrechte also: der Eigent&uuml;mer kann die Datei
- lesen und schreiben, die Gruppe kann lesen und alle anderen
- k&ouml;nnen auch nur lesen. Entsprechend obiger Tabelle
- w&auml;ren die Zugriffsrechte f&uuml;r diese Datei
- <literal>644</literal>, worin jede Ziffer die drei Teile der
- Zugriffrechte dieser Datei verk&ouml;rpert.</para>
-
- <para>Das ist alles sch&ouml;n und gut, aber wie kontrolliert das
- System die Rechte von Hardware Ger&auml;ten? FreeBSD behandelt
- die meisten Hardware Ger&auml;te als Dateien, welche Programme
- &ouml;ffnen, lesen und mit Daten beschreiben k&ouml;nnen wie
- alle anderen Dateien auch. Diese Spezial-Dateien sind im
- Verzeichnis <filename>/dev</filename> gespeichert.</para>
-
- <para>Verzeichnisse werden ebenfalls wie Dateien behandelt. Sie
- haben Lese-, Schreib- und Ausf&uuml;hr-Rechte. Das
- Ausf&uuml;hrungs-Bit hat eine etwas andere Bedeutung f&uuml;r
- ein Verzeichnis als f&uuml;r eine Datei. Die Ausf&uuml;hrbarkeit
- eines Verzeichnisses bedeutet, da&szlig; man darin Suchen kann.
- Zum Beispiel kann man sich in diesem Verzeichnis eine Auflistung
- erstellen.</para>
-
- <para>Es gibt noch mehr Rechte, aber die werden vor allem in
- speziellen Umst&auml;nden benutzt, wie zum Beispiel bei
- setuid binaries und sticky directories. Wollen Sie mehr
- &uuml;ber Zugriffsrechte von Dateien erfahren, lesen Sie in die
- &man.chmod.1; Man-Page.</para>
- </sect1>
-
- <sect1 id="dirstructure">
- <title>Verzeichnis-Strukturen</title>
-
- <para>Da FreeBSD seine Dateisysteme nutzt, um viele grundlegende
- Systemt&auml;tigkeiten festzulegen, ist die Hierarchie des
- Dateisystems &auml;u&szlig;erst wichtig. Durch den Umstand,
- da&szlig; die Man-Page &man.hier.7; eine komplette Beschreibung
- der Verzeichnisstruktur bietet, wird sie hier nicht dupliziert.
- Bitte lesen Sie &man.hier.7; f&uuml;r ausf&uuml;hrlichere
- Informationen.</para>
-
- <para>Von bedeutender Wichtigkeit ist die Wurzel aller
- Verzeichnisse, das / Verzeichnis. Dieses wird beim booten als
- erstes gemountet und es enth&auml;lt das Basissystem,
- welches zum boot-Zeitpunkt notwendig ist. Das / Verzeichnis
- enth&auml;lt au&szlig;erdem mount Punkte (Montierungspunkte)
- f&uuml;r jedes weitere Dateisystem, das Sie mounten
- wollen.</para>
-
- <para>Ein mount Punkt ist ein Verzeichnis, in das zus&auml;tzliche
- Dateisysteme ins / Verzeichnis eingepflanzt werden k&ouml;nnen.
- Standard mount Punkte beinhalten <filename>/usr</filename>,
- <filename>/var</filename>, <filename>/mnt</filename> und
- <filename>/cdrom</filename>. Auf diese Verzeichnisse verweisen
- &uuml;blicherweise Eintr&auml;ge in der Datei
- <filename>/etc/fstab</filename>. <filename>/etc/fstab</filename> ist
- eine Tabelle mit verschiedenen Dateisystemen und mount Punkten
- als Referenz des Systems. Die meisten der Dateisysteme in
- <filename>/etc/fstab</filename> werden zur boot Zeit automatisch
- durch das Skript &man.rc.8; gemountet, wenn die zugeh&ouml;rigen
- Eintr&auml;ge nicht mit der Option <option>noauto</option>
- versehen sind. Konsultieren Sie die &man.fstab.5; Man-Page
- f&uuml;r mehr Informationen &uuml;ber das Format der Datei
- <filename>/etc/fstab</filename> und den Optionen darin.</para>
- </sect1>
-
- <sect1 id="shells">
- <title>Shells</title>
-
- <para>Von der tagt&auml;glichen Arbeit mit FreeBSD wird eine Menge
- mit der Kommandozeilen Schnittstelle der Shell erledigt. Die
- Hauptaufgabe einer Shell besteht darin, Kommandos der Eingabe
- anzunehmen und diese auszuf&uuml;hren. Viele Shells haben
- au&szlig;erdem eingebaute Funktionen, um die t&auml;gliche
- Arbeit zu erleichtern, wie Dateiverwaltung, Editieren von
- Kommandozeilen, Makros und Umgebungsvariablen. FreeBSD
- enth&auml;lt die Shells sh (die Bourne Shell) und csh
- (die C-Shell) im Basissystem. Viele andere sind in der Ports
- Sammlung zu finden, von denen einige auch leistungsf&auml;higer
- sind, zum Beispiel tcsh und bash.</para>
-
- <para>Welche Shell soll ich benutzen? Das ist wirklich eine
- Geschmacksfrage. Sind Sie ein C Programmierer, finden Sie
- vielleicht eine C-artige Shell wie die tcsh angenehmer. Kommen
- Sie von Linux oder Ihnen ist eine UNIX Kommandozeile neu, so
- k&ouml;nnten Sie die bash probieren. Der Punkt ist, da&szlig;
- jede Shell ihre speziellen Eigenschaften hat, die mit Ihrer
- bevorzugten Arbeitsumgebung harmonieren k&ouml;nnen oder nicht.
- Sie m&uuml;ssen sich eine Shell aussuchen.</para>
-
- <para>Ein verbreitetes Merkmal in Shells ist die
- Dateinamen-Vervollst&auml;ndigung. Sie m&uuml;ssen nur einige
- Buchstaben eines Kommandos oder eines Dateinames eingeben und
- die Shell vervollst&auml;ndigt den Rest automatisch durch
- dr&uuml;cken der TAB-Taste. Hier ist ein Beispiel. Ich habe
- zwei Dateien <filename>foobar</filename> und
- <filename>foo.bar</filename>. Die Datei
- <filename>foo.bar</filename> m&ouml;chte ich l&ouml;schen. Nun
- w&uuml;rde ich an der Tastatur eingeben:
- <command>rm fo[TAB].[TAB]</command>.</para>
-
- <para>Die Shell g&auml;be dann ausgeben <command>rm
- foo[BEEP].bar</command>.</para>
-
- <para>[BEEP] meint den Rechner-Piepser. Diesen gibt die Shell
- aus, um anzuzeigen, da&szlig; es den Dateinamen nicht
- vervollst&auml;ndigen konnte, da es mehrere M&ouml;glichkeiten
- gibt. Beide Dateien <filename>foobar</filename> und
- <filename>foo.bar</filename> beginnen mit <literal>fo</literal>,
- so konnte nur bis <literal>foo</literal> erg&auml;nzt werden.
- Nachdem ich <literal>.</literal> eingab und dann die TAB-Taste
- dr&uuml;ckte, konnte die Shell den Rest f&uuml;r mich
- ausf&uuml;llen.</para>
-
- <para>Eine andere Funktion der Shell sind die Umgebungsvariablen.
- Das sind ver&auml;nderbare Schl&uuml;sselpaare im Umgebungsraum
- der Shell. Diesen Umgebungsraum kann jedes von der Shell
- aufgerufene Programm lesen. So kommt es, da&szlig; viel
- Programmkonfiguration darin enthalten ist. Hier eine Liste
- verbreiteter Umgebungsvariablen und was sie bedeuten:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable</entry>
- <entry>Beschreibung</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><envar>USER</envar></entry>
- <entry>Name des zur Zeit angemeldeten Benutzers.</entry>
- </row>
-
- <row>
- <entry><envar>PATH</envar></entry>
- <entry>Liste mit Verzeichnissen (getrennt durch Doppelpunkt)
- zum Suchen nach Programmen.</entry>
- </row>
-
- <row>
- <entry><envar>DISPLAY</envar></entry>
- <entry>Wenn gesetzt der Netzwerkname des X11 Bildschirms
- f&uuml;r die Anzeige.</entry>
- </row>
-
- <row>
- <entry><envar>SHELL</envar></entry>
- <entry>Die aktuelle Shell.</entry>
- </row>
-
- <row>
- <entry><envar>TERM</envar></entry>
- <entry>Name des Terminals des Benutzers. Benutzt, um die
- F&auml;higkeiten des Terminals bestimmen.</entry>
- </row>
-
- <row>
- <entry><envar>TERMCAP</envar></entry>
- <entry>Datenbankeintrag der Terminal Escape Kodes,
- ben&ouml;tigt um verschieden Terminalfunktionen
- auszuf&uuml;hren.</entry>
- </row>
-
- <row>
- <entry><envar>OSTYPE</envar></entry>
- <entry>Typ des Betriebsystems. Z.B., FreeBSD.</entry>
- </row>
-
- <row>
- <entry><envar>MACHTYPE</envar></entry>
- <entry>Die CPU Architektur auf dem das System
- l&auml;uft.</entry>
- </row>
-
- <row>
- <entry><envar>EDITOR</envar></entry>
- <entry>Vom Benutzer bervorzugter Text-Editor.</entry>
- </row>
-
- <row>
- <entry><envar>PAGER</envar></entry>
- <entry>Vom Benutzer bevorzugter Text-Betrachter.</entry>
- </row>
-
- <row>
- <entry><envar>MANPATH</envar></entry>
- <entry>Liste mit Verzeichnissen (getrennt durch Doppelpunkt)
- zum Suchen nach Man-Pages.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Das Anzeigen oder Setzen von Umgebungsvariablen funktioniert
- von Shell zu Shell unterschiedlich. Zum Beispiel benutzt man
- in C-artigen Shells wie der tcsh dazu <command>setenv</command>.
- Unter Bourne-Shells wie sh oder bash w&uuml;rde man
- <command>set</command> und <command>export</command> benutzen
- zum ansehen oder setzen von aktuellen Umgebungsvariablen. Um
- beispielsweise die Variable <envar>EDITOR</envar> zu setzen oder
- zu modifizieren, w&uuml;rde folgendes Kommando die Variable
- <envar>EDITOR</envar> auf
- <filename>/usr/local/bin/emacs</filename> setzen:</para>
-
- <para><command>setenv EDITOR /usr/local/bin/emacs</command></para>
-
- <para>Unter Bourne-Shells:</para>
-
- <para><command>export EDITOR="/usr/local/bin/emacs"</command></para>
-
- <para>Sie k&ouml;nnen die meisten Shells Umgebungsvariablen
- expandieren lassen, in dem Sie in der Kommandozeile ein
- <literal>$</literal> davor eingeben. Zum Beispiel gibt
- <command>echo $TERM</command> aus, worauf <envar>$TERM</envar>
- gesetzt ist, weil die Shell <envar>$TERM</envar> expandiert
- und das Ergebnis an echo gibt.</para>
-
- <para>Shells behandeln eine Menge an Spezialzeichen, sogenannte
- meta-characters, als besondere Darstellungen f&uuml;r Daten.
- Das allgemeinste ist das Zeichen <literal>*</literal>, das eine
- beliebige Anzahl Zeichen in einem Dateinamen repr&auml;sentiert.
- Das Kommando <command>echo *</command> liefert nahezu das gleiche
- wie die Eingabe von <command>ls</command>, da die Shell alle
- Dateinamen die mit <command>*</command> &uuml;bereinstimmen an
- echo weitergibt.</para>
-
- <para>Um zu verhindern, da&szlig; die Shell diese Sonderzeichen
- interpretiert, kann man sie sch&uuml;tzen, indem man ihnen einen
- backslash (<literal>\</literal>) voranstellt. <command>echo
- $TERM</command> gibt aus, auf was auch immer Ihr Terminal
- gesetzt ist. <command>echo \$TERM</command> gibt
- <envar>$TERM</envar> genauso aus, wie es hier steht.</para>
-
- <sect2 id="changing-shells">
- <title>&Auml;ndern der Shell</title>
-
- <para>Der einfachste Weg Ihre Shell zu &auml;ndern, ist das
- Kommando <command>chsh</command> zu benutzen.
- <command>chsh</command> platziert Sie im Editor, welcher durch
- Ihre Umgebungsvariable <envar>EDITOR</envar> gesetzt ist,
- im <command>vi</command> wenn die Variable nicht gesetzt ist.
- &Auml;ndern Sie die Zeile mit <quote>Shell:</quote>
- entsprechend Ihren W&uuml;nschen.</para>
-
- <para>Sie k&ouml;nnen auch <command>chsh</command> mit der Option
- <option>-s</option> aufrufen, dann wird Ihre Shell gesetzt,
- ohne das&szlig; Sie in einen Editor gelangen. Um Ihre Shell
- zum Beispiel auf die bash zu &auml;ndern, geben Sie das
- folgende Kommando ein:</para>
-
- <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen>
-
- <para>Einfach <command>chsh</command> ohne Optionen und mit
- Editieren der entsprechenden Zeile w&uuml;rde auch
- funktionieren.</para>
-
- <note>
- <para>Die von Ihnen gew&uuml;nschte Shell
- <emphasis>mu&szlig;</emphasis> in <filename>/etc/shells</filename>
- aufgef&uuml;hrt sein. Haben Sie eine Shell aus der
- <!--<link linkend="ports">-->Ports Sammlung<!--</link>--> installiert,
- sollte das schon automatisch erledigt werden. Installierten
- Sie die Shell von Hand, so m&uuml;ssen Sie sie dort
- eintragen.</para>
-
- <para>Haben Sie beispielsweise die <command>bash</command> nach
- <filename>/usr/local/bin</filename> installiert, wollen Sie
- dies tun:</para>
-
- <screen>&prompt.root; <userinput>echo &quot;/usr/local/bin/bash&quot; &gt;&gt; /etc/shells</userinput></screen>
-
- <para>Danach <command>chsh</command> aufrufen.</para>
- </note>
- </sect2>
- </sect1>
-
- <sect1 id="editors">
- <title>Text Editoren</title>
-
- <para>Eine Menge der Konfiguration bei FreeBSD wird durch
- das Editieren von Textdateien erledigt. Deshalb ist es eine
- gute Idee, mit einem Texteditor vertraut zu werden. FreeBSD hat
- ein paar davon im Basissystem und sehr viel mehr in der Ports
- Sammlung.</para>
-
- <para>Der am leichtesten und einfachsten zu erlernende Editor nennt
- sich <application>ee</application>, was f&uuml;r easy editor steht.
- Um <application>ee</application> zu starten, gibt man in der
- Kommandozeile <command>ee filename</command> ein, worin
- <literal>filename</literal> der Name der zu editierenden Datei
- ist. Um zum Beispiel <filename>/etc/rc.conf</filename> zu
- editieren, tippen Sie <command>ee /etc/rc.conf</command>.
- Einmal im Editor, finden Sie alle Editor-Funktionen oben im
- Display aufgelistet. Das Einschaltungszeichen
- <literal>^</literal> meint die Control (oft Steuerung) Taste,
- also ^e hei&szlig;t, da&szlig; die Controltaste und dann der
- Buchstabe <literal>e</literal> gedr&uuml;ckt werden. Um
- <application>ee</application> zu verlassen, einfach die
- Escapetaste dr&uuml;cken und leave editor w&auml;hlen. Der
- Editor fragt Sie nach, ob Sie speichern m&ouml;chten, wenn die
- Datei ver&auml;ndert wurde.</para>
-
- <para>FreeBSD verf&uuml;gt &uuml;ber leistungf&auml;higere
- Editoren wie <application>vi</application> als Teil des
- Basissystems und <application>emacs</application> oder
- <application>vim</application> als Teil der Ports Sammlung.
- Diese Editoren bieten h&ouml;here Funktionalit&auml;t und
- Leistungsf&auml;higkeit jedoch auf Kosten einer etwas
- schwierigeren Erlernbarkeit. Dennoch, wenn Sie viel
- Textdateien editieren werden, sparen Sie auf lange Sicht mehr
- Zeit ein durch das Erlernen solcher Editoren wie
- <application>vim</application> oder
- <application>emacs</application>.</para>
- </sect1>
-
- <sect1>
- <title>Weitere Informationen...</title>
-
- <sect2 id="basics-man">
- <title>Man pages</title>
-
- <para>Die umfassendste Dokumentation rund um FreeBSD gibt es in
- Form von Man-Pages. Ann&auml;hrernd jedes Programm im System
- bringt eine kurze Referenzdokumentation mit, die die
- grunds&auml;tzliche Funktion und verschiedene Parameter
- erkl&auml;rt. Diese Dokumentationen kann man mit dem
- <command>man</command> Kommando benutzen. Die Benutzung des
- <command>man</command> Kommandos ist einfach:</para>
-
- <para><command>&prompt.user; man Kommando</command></para>
-
- <para><literal>Kommando</literal> ist der Name des Kommandos,
- &uuml;ber das Sie etwas erfahren wollen. Um beispielsweise
- mehr &uuml;ber das Kommando <command>ls</command> zu lernen,
- geben Sie ein:</para>
-
- <para><command>&prompt.user; man ls</command></para>
-
- <para>Die Online-Dokumentation ist in numerierte Sektionen
- unterteilt:</para>
-
- <orderedlist>
- <listitem>
- <para>Benutzerkommandos.</para>
- </listitem>
-
- <listitem>
- <para>Systemaufrufe und Fehlernummern.</para>
- </listitem>
-
- <listitem>
- <para>Funktionen der C Bibliothkene.</para>
- </listitem>
-
- <listitem>
- <para>Ger&auml;tetreiber.</para>
- </listitem>
-
- <listitem>
- <para>Dateiformate.</para>
- </listitem>
-
- <listitem>
- <para>Spiele und andere Unterhaltung.</para>
- </listitem>
-
- <listitem>
- <para>Verschiedene Informationen.</para>
- </listitem>
-
- <listitem>
- <para>Systemverwaltung und -Kommandos.</para>
- </listitem>
-
- <listitem>
- <para>Kernel Entwickler.</para>
- </listitem>
- </orderedlist>
-
- <para>In einigen F&auml;llen kann dasselbe Thema in mehreren
- Sektionen auftauchen. Es gibt zum Beispiel ein chmod
- Benutzerkommando und ein <literal>chmod()</literal>
- Systemaufruf. In diesem Fall k&ouml;nnen Sie dem man Kommando
- sagen, aus welcher Sektion Sie die Information erhalten
- m&ouml;chten, indem Sie die Sektion mit angeben:</para>
-
- <para><command>&prompt.user; man 1 chmod</command></para>
-
- <para>Dies wird Ihnen die Man-Page f&uuml;r das Benutzerkommando
- <command>chmod</command> zeigen. Verweise auf eine Sektion
- der Man-Pages werden traditionsgem&auml;&szlig; in Klammern
- gesetzt. So nezieht sich &man.chmod.1; auf das
- Benutzerkommando <command>chmod</command> und mit
- &man.chmod.2; ist der Systemaufruf gemeint.</para>
-
- <para>Das ist nett, wenn Sie den Namen eines Kommandos wissen,
- und lediglich wissen wollen, wie es zu benutzen ist. Aber was
- tun Sie, wenn Sie Sich nicht an den Namen des Kommandos
- erinnern k&ouml;nnen? Sie k&ouml;nnen man benutzen, um nach
- Schl&uuml;sselbegriffen in den Kommandobeschreibungen zu
- suchen, indem Sie den Parameter <option>-k</option>
- benutzen:</para>
-
- <para><command>&prompt.user; man -k mail</command></para>
-
- <para> Mit diesem Kommando bekommen Sie eine Liste der
- Kommandos, deren Beschreibung das Schl&uuml;sselwort
- <quote>mail</quote> enth&auml;lt. Diese Funktionalit&auml;t
- erhalten Sie auch, wenn Sie das Kommando apropos
- benutzen.</para>
-
- <para>Nun, Sie schauen Sich alle die geheimnisvollen Kommandos
- in <filename>/usr/bin</filename> an, haben aber nicht den
- blassesten Schimmer, wozu die meisten davon gut sind? Dann
- geben Sie doch einfach <command>&prompt.user; cd /usr/bin;
- man -f *</command> oder <command>&prompt.user; cd /usr/bin;
- whatis *</command> ein, beides tut dasselbe.</para>
- </sect2>
-
- <sect2 id="basics-info">
- <title>GNU Info Dateien</title>
-
- <para>FreeBSD enth&auml;lt viele Applikationen und Utilities
- der Free Software Foundation (FSF). Zus&auml;tzlich zu den
- Man-Pages bringen diese Programme ausf&uuml;hrlichere
- Hypertext-Dokumente (<literal>info</literal> genannt) mit,
- welche man sich mit dem Kommando <command>info</command>
- ansehen kann. Wenn Sie <application>emacs</application>
- installiert haben, k&ouml;nnen Sie auch dessen info-Modus
- benutzen.</para>
-
- <para>Um das Kommando &man.info.1; zu benutzen, geben Sie
- einfach ein:</para>
-
- <para><command>&prompt.user; info</command></para>
-
- <para>Eine kurze Einf&uuml;rung gibt es mit
- <literal>h</literal>; eine Befehlsreferenz erhalten Sie durch
- Eingabe von: <literal>?</literal>.</para>
- </sect2>
- </sect1>
-</chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
deleted file mode 100644
index b0d0288f8c..0000000000
--- a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
+++ /dev/null
@@ -1,485 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- Original version 1.26
- $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/bibliography/chapter.sgml,v 1.1 2000/06/29 10:08:28 alex Exp $
--->
-
-<appendix id="bibliography">
- <title>Bibliografie</title>
-
- <para><emphasis>&Uuml;bersetzt von &a.de.gruender</emphasis></para>
-
- <para>W&auml;hrend die Manual-Seiten die endg&uuml;ltige Auskunft
- &uuml;ber bestimmte Teile des FreeBSD Betriebssystems geben, so
- k&ouml;nnen sie jedoch nicht darstellen, wie man die einzelnen Teile
- zusammenf&uuml;gt, um ein vollst&auml;ndig laufendes Betriebssystem
- herzustellen. Daher gibt es keinen Ersatz f&uuml;r ein gutes Buch
- f&uuml;r UNIX System-Administration und ein gutes
- Benutzerhandbuch.</para>
-
- <sect1 id="bibliography-freebsd">
- <title>B&uuml;cher &amp; Magazine speziell f&uuml;r FreeBSD</title>
-
- <para><emphasis>Internationale B&uuml;cher &amp;
- Magazine:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://jdli.tw.freebsd.org/publication/book/freebsd2/index.htm">Using FreeBSD</ulink> (auf chinesisch).</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD for PC 98'ers (auf japanisch), herausgegeben von
- SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD (auf japanisch), herausgegeben von CUTT. ISBN
- 4-906391-22-2 C3055 P2400E.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.shoeisha.co.jp/pc/index/shinkan/97_05_06.htm">Complete Introduction to FreeBSD</ulink> (auf japanisch), herausgegeben von <ulink url="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</ulink>. ISBN 4-88135-473-6 P3600E.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Personal UNIX Starter Kit FreeBSD</ulink> (auf japanisch), herausgegeben von <ulink url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN 4-7561-1733-3 P3000E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD Handbook (japanische &Uuml;bersetzung), herausgegeben
- von <ulink url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN
- 4-7561-1580-2 P3800E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD mit Methode (auf deutsch), herausgegeben von Computer und
- Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/install-manual.html">FreeBSD Install and Utilization Manual</ulink> (auf japanisch), herausgegeben von <ulink url="http://www.pc.mycom.co.jp/">Mainichi Communications Inc.</ulink>.</para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>Englischsprachige B&uuml;cher &amp;
- Magazine:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.cdrom.com/titles/freebsd/bsdcomp_bkx.phtml">
- The Complete FreeBSD</ulink>, herausgegeben von <ulink
- url="http://www.cdrom.com/">Walnut Creek CDROM</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-userguides">
- <title>Handb&uuml;cher</title>
-
- <itemizedlist>
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Reference Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-075-9</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-076-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>UNIX in a Nutshell</emphasis>. O'Reilly &amp;
- Associates, Inc., 1990. ISBN 093717520X</para>
- </listitem>
-
- <listitem>
- <para>Mui, Linda. <emphasis>What You Need To Know When You Can't Find
- Your UNIX System Administrator</emphasis>. O'Reilly &amp;
- Associates, Inc., 1995. ISBN 1-56592-104-6</para>
- </listitem>
-
- <listitem>
- <para>Die <ulink url="http://www-wks.acs.ohio-state.edu/">Ohio State
- University</ulink> hat ein <ulink
- url="http://www-wks.acs.ohio-state.edu/unix_course/unix.html">UNIX
- Introductory Course</ulink> geschrieben, welcher auch online im
- HTML- und Postscriptformat verf&uuml;gbar ist.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</ulink>. <ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/urm.html">FreeBSD User's
- Reference Manual</ulink> (japanische &Uuml;bersetzung). <ulink
- url="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</ulink>, 1998. ISBN4-8399-0088-4 P3800E.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-adminguides">
- <title>Administrations-Anleitungen</title>
-
- <itemizedlist>
- <listitem>
- <para>Albitz, Paul and Liu, Cricket. <emphasis>DNS and
- BIND</emphasis>, 3nd Ed. O'Reilly &amp; Associates, Inc., 1998.
- ISBN 1-56592-512-2</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- System Manager's Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-080-5</para>
- </listitem>
-
- <listitem>
- <para>Costales, Brian, et al. <emphasis>Sendmail</emphasis>, 2nd Ed.
- O'Reilly &amp; Associates, Inc., 1997. ISBN 1-56592-222-0</para>
- </listitem>
-
- <listitem>
- <para>Frisch, &AElig;leen. <emphasis>Essential System
- Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates,
- Inc., 1995. ISBN 1-56592-127-5</para>
- </listitem>
-
- <listitem>
- <para>Hunt, Craig. <emphasis>TCP/IP Network
- Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates, Inc., 1997.
- ISBN 1-56592-322-7</para>
- </listitem>
-
- <listitem>
- <para>Nemeth, Evi. <emphasis>UNIX System Administration
- Handbook</emphasis>. 3nd Ed. Prentice Hall, 2000. ISBN
- 0-13-020601-6</para>
- </listitem>
-
- <listitem>
- <para>Stern, Hal <emphasis>Managing NFS and NIS</emphasis> O'Reilly
- &amp; Associates, Inc., 1991. ISBN 0-937175-75-7</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</ulink>. <ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/sam.html">FreeBSD System
- Administrator's Manual</ulink> (japanische &Uuml;bersetzung). <ulink
- url="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</ulink>, 1998. ISBN4-8399-0109-0 P3300E.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-programmers">
- <title>Programmierhandb&uuml;cher</title>
-
- <itemizedlist>
- <listitem>
- <para>Asente, Paul. <emphasis>X Window System Toolkit</emphasis>.
- Digital Press. ISBN 1-55558-051-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Reference Manual</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-078-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-079-1</para>
- </listitem>
-
- <listitem>
- <para>Harbison, Samuel P. and Steele, Guy L. Jr. <emphasis>C: A
- Reference Manual</emphasis>. 4rd ed. Prentice Hall, 1995.
- ISBN 0-13-326224-3</para>
- </listitem>
-
- <listitem>
- <para>Kernighan, Brian and Dennis M. Ritchie. <emphasis>The C
- Programming Language.</emphasis>. PTR Prentice Hall, 1988.
- ISBN 0-13-110362-9</para>
- </listitem>
-
- <listitem>
- <para>Lehey, Greg. <emphasis>Porting UNIX Software</emphasis>.
- O'Reilly &amp; Associates, Inc., 1995. ISBN 1-56592-126-7</para>
- </listitem>
-
- <listitem>
- <para>Plauger, P. J. <emphasis>The Standard C Library</emphasis>.
- Prentice Hall, 1992. ISBN 0-13-131509-9</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>Advanced Programming in the UNIX
- Environment</emphasis>. Reading, Mass. : Addison-Wesley, 1992
- ISBN 0-201-56317-7</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>UNIX Network
- Programming</emphasis>. 2nd Ed, PTR Prentice Hall, 1998. ISBN
- 0-13-490012-X</para>
- </listitem>
-
- <listitem>
- <para>Wells, Bill. <quote>Writing Serial Drivers for UNIX</quote>.
- <emphasis>Dr. Dobb's Journal</emphasis>. 19(15), December 1994.
- pp68-71, 97-99.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-osinternals">
- <title>Betriebssystem-Interna</title>
-
- <itemizedlist>
- <listitem>
- <para>Andleigh, Prabhat K. <emphasis>UNIX System
- Architecture</emphasis>. Prentice-Hall, Inc., 1990. ISBN
- 0-13-949843-5</para>
- </listitem>
-
- <listitem>
- <para>Jolitz, William. <quote>Porting UNIX to the 386</quote>.
- <emphasis>Dr. Dobb's Journal</emphasis>. January 1991-July
- 1992.</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
- John Quarterman <emphasis>The Design and Implementation of the
- 4.3BSD UNIX Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1989. ISBN 0-201-06196-1</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, <emphasis>The Design
- and Implementation of the 4.3BSD UNIX Operating System: Answer
- Book</emphasis>. Reading, Mass. : Addison-Wesley, 1991. ISBN
- 0-201-54629-9</para>
- </listitem>
-
- <listitem>
- <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
- John Quarterman. <emphasis>The Design and Implementation of the
- 4.4BSD Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1996. ISBN 0-201-54979-4</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 1:
- The Protocols</emphasis>. Reading, Mass. : Addison-Wesley,
- 1996. ISBN 0-201-63346-9</para>
- </listitem>
-
- <listitem>
- <para>Schimmel, Curt. <emphasis>Unix Systems for Modern
- Architectures</emphasis>. Reading, Mass. : Addison-Wesley, 1994.
- ISBN 0-201-63338-8</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 3:
- TCP for Transactions, HTTP, NNTP and the UNIX Domain
- Protocols</emphasis>. Reading, Mass. : Addison-Wesley, 1996.
- ISBN 0-201-63495-3</para>
- </listitem>
-
- <listitem>
- <para>Vahalia, Uresh. <emphasis>UNIX Internals -- The New
- Frontiers</emphasis>. Prentice Hall, 1996. ISBN
- 0-13-101908-2</para>
- </listitem>
-
- <listitem>
- <para>Wright, Gary R. and W. Richard Stevens. <emphasis>TCP/IP
- Illustrated, Volume 2: The Implementation</emphasis>. Reading,
- Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-security">
- <title>Sicherheits-Anleitung</title>
-
- <itemizedlist>
- <listitem>
- <para>Cheswick, William R. and Steven M. Bellovin. <emphasis>Firewalls
- and Internet Security: Repelling the Wily Hacker</emphasis>.
- Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-63357-4</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson and Gene Spafford. <emphasis>Practical UNIX
- Security</emphasis>. 2nd Ed. O'Reilly &amp; Associates, Inc.,
- 1996. ISBN 1-56592-148-8</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson. <emphasis>PGP Pretty Good
- Privacy</emphasis> O'Reilly &amp; Associates, Inc., 1995. ISBN
- 1-56592-098-8</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-hardware">
- <title>Hardware-Anleitung</title>
-
- <itemizedlist>
- <listitem>
- <para>Anderson, Don and Tom Shanley. <emphasis>Pentium Processor
- System Architecture</emphasis>. 2nd Ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-40992-5</para>
- </listitem>
-
- <listitem>
- <para>Ferraro, Richard F. <emphasis>Programmer's Guide to the EGA,
- VGA, and Super VGA Cards</emphasis>. 3rd ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-62490-7</para>
- </listitem>
-
- <listitem>
- <para>Die Intel Corporation ver&ouml;ffentlicht Dokumentationen
- Ihrer CPUs, Chipsets und Standards auf ihrer <ulink
- url="http://developer.intel.com/">developer web site</ulink>,
- normalerweise als PDF-Dateien.</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>80486 System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40994-1</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>ISA System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40996-8</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>PCI System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40993-3</para>
- </listitem>
-
- <listitem>
- <para>Van Gilluwe, Frank. <emphasis>The Undocumented PC</emphasis>.
- Reading, Mass: Addison-Wesley Pub. Co., 1994. ISBN
- 0-201-62277-7</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-history">
- <title>UNIX Geschichte</title>
-
- <itemizedlist>
- <listitem>
- <para>Lion, John <emphasis>Lion's Commentary on UNIX, 6th Ed. With
- Source Code</emphasis>. ITP Media Group, 1996. ISBN
- 1573980137</para>
- </listitem>
-
- <listitem>
- <para>Raymond, Eric S. <emphasis>The New Hacker's Dictionary, 3rd
- edition</emphasis>. MIT Press, 1996. ISBN
- 0-262-68092-0. Auch bekannt als das <ulink
- url="http://www.ccil.org/jargon/jargon.html">Jargon
- File</ulink></para>
- </listitem>
-
- <listitem>
- <para>Salus, Peter H. <emphasis>A quarter century of UNIX</emphasis>.
- Addison-Wesley Publishing Company, Inc., 1994. ISBN
- 0-201-54777-5</para>
- </listitem>
-
- <listitem>
- <para>Simon Garfinkel, Daniel Weise, Steven Strassmann. <emphasis>The
- UNIX-HATERS Handbook</emphasis>. IDG Books Worldwide, Inc.,
- 1994. ISBN 1-56884-203-1</para>
- </listitem>
-
- <listitem>
- <para>Don Libes, Sandy Ressler <emphasis>Life with UNIX</emphasis>
- &mdash; special edition. Prentice-Hall, Inc., 1989. ISBN
- 0-13-536657-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD family tree</emphasis>. 1997. <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree</ulink> oder <ulink url="file:/usr/share/misc/bsd-family-tree">local</ulink> auf einem FreeBSD-current Rechner.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD Release Announcements collection</emphasis>.
- 1997. <ulink
- url="http://www.de.FreeBSD.org/de/ftp/releases/">http://www.de.FreeBSD.org/de/ftp/releases/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Networked Computer Science Technical Reports
- Library</emphasis>. <ulink
- url="http://www.ncstrl.org/">http://www.ncstrl.org/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Old BSD releases from the Computer Systems Research
- group (CSRG)</emphasis>. <ulink
- url="http://www.mckusick.com/csrg/">http://www.mckusick.com/csrg/</ulink>:
- Das Paket mit 4 CDROM enth&auml;lt alle BSD-Versionen von 1BSD
- bis 4.4BSD und 4.4BSD-Lite2 (ungl&uuml;cklicherweise nicht
- 2.11BSD). Die letzte CD beinhaltet auch die finalen Sourcen
- inclusive den SCCS Dateien.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-journals">
- <title>Magazine und Journale</title>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>The C/C++ Users Journal</emphasis>. R&amp;D
- Publications Inc. ISSN 1075-2838</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Sys Admin &mdash; The Journal for UNIX System
- Administrators</emphasis> Miller Freeman, Inc., ISSN
- 1061-2688</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
-
diff --git a/de_DE.ISO8859-1/books/handbook/book.sgml b/de_DE.ISO8859-1/books/handbook/book.sgml
deleted file mode 100644
index 7407bba145..0000000000
--- a/de_DE.ISO8859-1/books/handbook/book.sgml
+++ /dev/null
@@ -1,119 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- $FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/book.sgml,v 1.6 2001/03/24 15:19:30 alex Exp $
- Original version: ?
--->
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN">
-%bookinfo;
-
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//DE">
-%translators;
-
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists;
-<!ENTITY % newsgroups SYSTEM "newsgroups.ent"> %newsgroups;
-<!ENTITY % not.published "INCLUDE">
-
-<!-- Die aktuelle FreeBSD-RELEASE version. Wird für verschiedene Dinge benutzt,
- z.B. Links auf Webseiten usw. Solange NICHT ändern wie es nicht wirklich
- Release-Zeit ist. -->
-<!ENTITY rel.current CDATA "4.2">
-]>
-
-<book>
- <bookinfo>
- <title>FreeBSD Handbuch</title>
-
- <authorgroup>
- <author>
- <surname>The FreeBSD German Documentation Project</surname>
- <affiliation>
- <address>
- <email>de-bsd-translators@de.FreeBSD.org</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>February 1999</pubdate>
-
- <copyright>
- <year>1995</year>
- <year>1996</year>
- <year>1997</year>
- <year>1998</year>
- <year>1999</year>
- <year>2000</year>
- <year>2001</year>
- <holder>The FreeBSD German Documentation Project</holder>
- </copyright>
-
- &bookinfo.legalnotice;
-
- <abstract>
- <para>Willkommen bei FreeBSD! Dieses Handbuch beschreibt die
- Installation und den t&auml;glichen Umgang mit <emphasis>FreeBSD
- Release &rel.current;</emphasis>.
- Das Handbuch ist <emphasis>jederzeit unter Bearbeitung</emphasis>
- und die Arbeit vieler Einzelpersonen. Manche Kapitel existieren noch
- nicht und andere Kapitel m&uuml;ssen auf den neusten Stand
- gebracht werden.
- Wenn Sie an diesem Projekt mithelfen m&ouml;chten, senden Sie bitte
- eine E-Mail an die &a.de.translators;. Die letzte Version des
- Handbuchs ist immer auf dem
- <ulink URL="http://www.FreeBSD.ORG/de/handbook/">FreeBSD Web
- Server</ulink> verf&uuml;gbar.
- Es kann au&szlig;erdem in verschiedenen Formaten und in komprimierter
- Form vom <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">FreeBSD
- FTP Server</ulink> oder einer der vielen
-
-<!--
-<link linkend="mirrors-ftp">Mirror Seiten</link>
--->
-
- <ulink URL="http://www.FreeBSD.org/handbook/mirrors-ftp.html">Mirror
- Seiten</ulink> herunter geladen werden.
- Vielleicht m&ouml;chten Sie das Handbuch auch
- <ulink URL="http://www.FreeBSD.org/search.html">durchsuchen</ulink>.</para>
- </abstract>
- </bookinfo>
-
- <part>
- <title>Erste Schritte</title>
-
- &chap.basics;
- &chap.ports;
- </part>
-
- <part>
- <title>System Administration</title>
- &chap.users;
- &chap.backups;
- </part>
-
- <part>
- <title>Anhang</title>
-
- &chap.bibliography;
- </part>
-
-</book>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
-
diff --git a/de_DE.ISO8859-1/books/handbook/chapter.decl b/de_DE.ISO8859-1/books/handbook/chapter.decl
deleted file mode 100644
index ce0a7ed16a..0000000000
--- a/de_DE.ISO8859-1/books/handbook/chapter.decl
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
diff --git a/de_DE.ISO8859-1/books/handbook/chapters.ent b/de_DE.ISO8859-1/books/handbook/chapters.ent
deleted file mode 100644
index da49e8abd1..0000000000
--- a/de_DE.ISO8859-1/books/handbook/chapters.ent
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
- Die Entities für jedes Kapitel im FreeBSD Handbuch.
- Jede Entity heißt chap.foo, wobei foo der Name des ID-Attributes
- dieses Kapitels ist und dem Verzeichnis, in dem die entsprechende
- .sgml Datei liegt, entspricht.
-
- Kapitel sollten in der Reihenfolge aufgelistet sein, in der auf sie
- referenziert wird.
-
- $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/chapters.ent,v 1.5 2000/08/18 12:47:39 alex Exp $
--->
-
-<!-- Teil Eins -->
-<!ENTITY chap.basics SYSTEM "basics/chapter.sgml">
-<!ENTITY chap.ports SYSTEM "ports/chapter.sgml">
-
-<!-- Teil Zwei -->
-<!ENTITY chap.users SYSTEM "users/chapter.sgml">
-<!ENTITY chap.backups SYSTEM "backups/chapter.sgml">
-
-<!-- Teil Fünf (Anhang) -->
-<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml">
diff --git a/de_DE.ISO8859-1/books/handbook/mailing-lists.ent b/de_DE.ISO8859-1/books/handbook/mailing-lists.ent
deleted file mode 100644
index 6f62fb4418..0000000000
--- a/de_DE.ISO8859-1/books/handbook/mailing-lists.ent
+++ /dev/null
@@ -1,114 +0,0 @@
-<!--
- Namen der FreeBSD Mailinglisten und verwandter Software
-
- $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/mailing-lists.ent,v 1.1 2000/06/11 18:50:56 alex Exp $
--->
-
-<!ENTITY a.advocacy "FreeBSD Bef&uuml;rworter Mailingliste
- <email>freebsd-advocacy@FreeBSD.org</email>">
-
-<!ENTITY a.announce "FreeBSD Ank&uuml;ndigungen Mailingliste
- <email>freebsd-announce@FreeBSD.org</email>">
-
-<!ENTITY a.bugs "FreeBSD Problem Report (PR) Mailingliste
- <email>freebsd-bugs@FreeBSD.org</email>">
-
-<!ENTITY a.chat "FreeBSD Chat Mailingliste
- <email>freebsd-chat@FreeBSD.org</email>">
-
-<!ENTITY a.core "FreeBSD Core Team
- <email>freebsd-core@FreeBSD.org</email>">
-
-<!ENTITY a.current "FreeBSD-current Mailingliste
- <email>freebsd-current@FreeBSD.org</email>">
-
-<!ENTITY a.cvsall "FreeBSD CVS Commit Nachrichten Mailingliste
- <email>cvs-all@FreeBSD.org</email>">
-
-<!ENTITY a.database "FreeBSD basierte Datenbanken Mailingliste
- <email>freebsd-database@FreeBSD.org</email>">
-
-<!ENTITY a.doc "FreeBSD Documentation Project Mailingliste
- <email>freebsd-doc@FreeBSD.org</email>">
-
-<!ENTITY a.emulation "FreeBSD-emulation Mailingliste
- <email>freebsd-emulation@FreeBSD.org</email>">
-
-<!ENTITY a.fs "FreeBSD Filesystem Project (Dateisysteme) Mailingliste
- <email>freebsd-fs@FreeBSD.org</email>">
-
-<!ENTITY a.hackers "FreeBSD technische Diskussionen Mailingliste
- <email>freebsd-hackers@FreeBSD.org</email>">
-
-<!ENTITY a.hardware "FreeBSD Hardware und Zubeh&ouml;r Mailingliste
- <email>freebsd-hardware@FreeBSD.org</email>">
-
-<!ENTITY a.isdn "FreeBSD ISDN Mailingliste
- <email>freebsd-isdn@FreeBSD.org</email>">
-
-<!ENTITY a.isp "FreeBSD Internet Service Providers Mailingliste
- <email>freebsd-isp@FreeBSD.org</email>">
-
-<!ENTITY a.java "FreeBSD Java Mailingliste
- <email>freebsd-java@FreeBSD.org</email>">
-
-<!ENTITY a.jobs "FreeBSD betreffende Stellenangebote/-gesuche Mailingliste
- <email>freebsd-jobs@FreeBSD.org</email>">
-
-<!ENTITY a.mobile "FreeBSD Laptop Computer Mailingliste
- <email>freebsd-mobile@FreeBSD.org</email>">
-
-<!ENTITY a.mozilla "FreeBSD Portierung des Mozilla Browsers Mailingliste
- <email>freebsd-mozilla@FreeBSD.org</email>">
-
-<!ENTITY a.multimedia "FreeBSD Multimedia Mailingliste
- <email>freebsd-multimedia@FreeBSD.org</email>">
-
-<!ENTITY a.net "FreeBSD Netzwerk und Netzwerktechnik Mailingliste
- <email>freebsd-net@FreeBSD.org</email>">
-
-<!ENTITY a.newbies "FreeBSD Anf&auml;nger Mailingliste
- <email>freebsd-newbies@FreeBSD.org</email>">
-
-<!ENTITY a.newbus "New Bus Architektur Mailingliste
- <email>new-bus-arch@bostonradio.org</email>">
-
-<!ENTITY a.ports "FreeBSD Ports Mailingliste
- <email>freebsd-ports@FreeBSD.org</email>">
-
-<!ENTITY a.questions "FreeBSD generelle Fragen Mailingliste
- <email>freebsd-questions@FreeBSD.org</email>">
-
-<!ENTITY a.scsi "FreeBSD SCSI Subsystem Mailingliste
- <email>freebsd-scsi@FreeBSD.org</email>">
-
-<!ENTITY a.security "FreeBSD Security Mailingliste
- <email>freebsd-security@FreeBSD.org</email>">
-
-<!ENTITY a.security-notifications "FreeBSD Sicherheits Benachrichtungen Mailingliste
- <email>freebsd-security-notifications@FreeBSD.org</email>">
-
-<!ENTITY a.small "FreeBSD-small Mailingliste
- <email>freebsd-small@FreeBSD.org</email>">
-
-<!ENTITY a.smp "FreeBSD Symmetric Multiprocessing Mailingliste
- <email>freebsd-smp@FreeBSD.org</email>">
-
-<!ENTITY a.stable "FreeBSD-stable Mailingliste
- <email>freebsd-stable@FreeBSD.org</email>">
-
-<!ENTITY a.tokenring "FreeBSD Tokenring Mailingliste
- <email>freebsd-tokenring@FreeBSD.org</email>">
-
-<!ENTITY a.www "FreeBSD Webmaster Mailingliste
- <email>freebsd-www@FreeBSD.org</email>">
-
-<!ENTITY a.majordomo "<email>majordomo@FreeBSD.org</email>">
-
-<!-- Deutsche Mailinglisten -->
-
-<!ENTITY a.de.translators "FreeBSD German Documentation Project Mailingliste
- <email>de-bsd-translators@de.FreeBSD.org</email>">
-
-<!ENTITY a.de.questions "deutsche FreeBSD Fragen Mailingliste
- <email>de-bsd-questions@de.FreeBSD.org</email>">
diff --git a/de_DE.ISO8859-1/books/handbook/newsgroups.ent b/de_DE.ISO8859-1/books/handbook/newsgroups.ent
deleted file mode 100644
index e580f9e3b7..0000000000
--- a/de_DE.ISO8859-1/books/handbook/newsgroups.ent
+++ /dev/null
@@ -1,10 +0,0 @@
-<!--
- Namen der FreeBSD Newsgroups
-
- $FreeBSD$
--->
-
-<!ENTITY ng.misc "die
- <ulink url='news:comp.unix.bsd.freebsd.misc'>comp.unix.bsd.freebsd.misc</ulink>
- Newsgroup">
-
diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
deleted file mode 100644
index 399652b334..0000000000
--- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
+++ /dev/null
@@ -1,1050 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- Original version 1.111
- $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/ports/chapter.sgml,v 1.1 2000/08/18 12:47:40 alex Exp $
--->
-
-<chapter id="ports">
- <title>Installieren von Anwendungen: Die Ports-Sammlung</title>
-
- <para><emphasis>Neu geschrieben von &a.jim;, 22 November 1999.
- Urspr&uuml;ngliche Version von verschiedenen Leuten.</emphasis></para>
- <para><emphasis>&Uuml;bersetzt von &a.de.pierau, Juli 2000</emphasis></para>
-
- <sect1>
- <title>&Uuml;bersicht</title>
-
- <para>Die FreeBSD Ports-Sammlung erlaubt Ihnen das &Uuml;bersetzen
- und Installieren einer Vielzahl von Anwendungen mit minimalem
- Aufwand.</para>
-
- <para>Ein Port ist gew&ouml;hnlich eine Gruppe von <link
- linkend="ports-skeleton">Ger&uuml;sten</link>, die die minimalen
- Anpassungen enthalten, welche n&ouml;tig sind, damit sich
- eine Anwendung unter FreeBSD &uuml;bersetzen und installieren
- l&auml;&szlig;t.</para>
-
- <para>Trotz des ganzen Geredes von offenen Standards kann es eine
- verzwickte Angelegenheit werden, eine Anwednung unter verschiedenen
- UNIX Versionen zu &uuml;bersetzen. Sie k&ouml;nnen zufrieden sein,
- wenn sich die Anwendung sauber &uuml;bersetzen l&auml;&szlig;t, in die
- richtigen Verzeichnisse installiert und <quote>out-of-the-box</quote>
- fehlerfrei l&auml;uft. Dies wird aber sehr selten vorkommen.
- Die meiste Zeit werden Sie Modifizierungen vornehmen m&uuml;ssen, damit
- die Anwendung funktioniert. An diesem Punkt kommt die Ports-Sammlung
- zum Zuge.</para>
-
- <para>Die Grundidee hinter der Ports-Sammlung ist, all die
- verwirrenden Schritte zu eliminieren, welche n&ouml;tig sind,
- damit alles richtig funktioniert, so da&szlig; die Installation
- einfach und schmerzlos ist. Mit der Ports-Sammlung ist die
- ganze harte Arbeit bereits f&uuml;r Sie getan und Sie brauchen
- zum Installieren eines Ports aus der Ports-Sammlung lediglich
- <command>make install</command> eingeben.</para>
- </sect1>
-
- <sect1 id="ports-using">
- <title>Benutzen der Ports-Sammlung</title>
-
- <para>Die folgenden Abschnitte stellen die grundlegenden Anweisungen
- vor, um Anwendungen aus der Ports-Sammlung auf
- Ihren Rechner zu installieren oder zu l&ouml;schen.</para>
-
- <sect2 id="ports-skeleton">
- <title>Ports installieren</title>
-
- <para>Was ist mit einem <quote>Ger&uuml;st</quote> im Zusammenhang
- mit der Ports-Sammlung gemeint? In aller K&uuml;rze: ein
- Ger&uuml;st eines Ports ist ein minimaler Satz von Dateien, die
- f&uuml;r eine Anwendung ben&ouml;tigt werden, damit es sich
- unter FreeBSD sauber &uuml;bersetzen und installieren
- l&auml;&szlig;t. Ein jeder Port beinhaltet:</para>
-
- <itemizedlist>
- <listitem>
- <para>Eine Datei <filename>Makefile</filename>. Das
- <filename>Makefile</filename> enth&auml;lt verschiedene
- Anweisungen, die spezifizieren, wie die Anwendung kompiliert
- werden und wo sie auf Ihrem System installiert werden
- sollte.</para>
- </listitem>
-
- <listitem>
- <para>Ein Verzeichnis <filename>files</filename>. Dieses
- Verzeichnis enth&auml;lt eine Datei namens
- <filename>md5</filename>. Der Name kommt vom MD5
- Algorithmus, welcher zur Ermittlung der Pr&uuml;fsumme des
- Portes benutzt wird. Eine Pr&uuml;fsumme ist eine Zahl,
- die durch Addition aller Daten einer Datei entsteht.
- &Auml;ndert sich ein Zeichen in der Datei, so weicht die
- Pr&uuml;fsumme vom Original ab und eine Fehlermeldung
- erscheint. Damit sind Sie in der Lage, die Unterschiede zu
- bemerken und zu untersuchen.</para>
-
- <para>Dieses <filename>files</filename> Verzeichnis kann
- noch andere Dateien enthalten, die vom Port ben&ouml;tigt
- werden, aber nicht woanders in die Verzeichnis-Struktur
- geh&ouml;ren.</para>
- </listitem>
-
- <listitem>
- <para>Ein <filename>patches</filename> Verzeichnis. Hierin
- liegen Patches, welche das &Uuml;bersetzen und Installieren
- der Anwendung erm&ouml;glichen. Patches sind im Wesentlichen
- kleine Dateien, die &Auml;nderungen an speziellen Dateien
- s&uuml;zifizieren. Sie liegen als reiner Text vor und sagen
- ungef&auml;hr:
- <quote>L&ouml;sche Zeile 10</quote> oder
- <quote>&Auml;ndere Zeile 26 zu ...</quote>. Patches sind
- auch bekannt unter dem Namen <quote>diffs</quote>, weil
- Sie mit dem Programm <application>diff</application>
- erstellt werden.</para>
- </listitem>
-
- <listitem>
- <para>Ein Verzeichnis <filename>pkg</filename>. Dieses
- enth&auml;lt normalerweise drei Dateien. Gelegentlich sind
- es auch mehr, das h&auml;ngt vom Port ab. Die meisten
- Ports erfordern nur drei, und zwar diese:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>COMMENT</filename>. Eine einzeilige
- Beschreibung der Anwendung.</para>
- </listitem>
-
- <listitem>
- <para><filename>DESCR</filename>. Eine
- ausf&uuml;hrlichere oft mehrzeilige Beschreibung der
- Anwendung.</para>
- </listitem>
-
- <listitem>
- <para><filename>PLIST</filename>. Das ist eine Liste
- aller Dateien, die durch diesen Port installiert
- werden. Au&szlig;erdem sind hier Informationen enthalten,
- die bei der Deinstallation des Ports ben&ouml;tigt werden.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-
- <para>Nun haben Sie genug Hintergrund Informationen &uuml;ber
- die Ports-Sammlung und Sie k&ouml;nnen Ihren ersten Port
- installieren. Es gibt dazu zwei M&ouml;glichkeiten, beide
- werden im Folgenden erl&auml;utert.</para>
-
- <para>Bevor Sie damit beginnen, m&uuml;ssen Sie sich nat&uuml;rlich
- einen Port zum Installieren aussuchen. Sie k&ouml;nnen
- dazu mehrere Wege gehen, als einfachste Methode gibt es die
- <ulink url="http://www.freebsd.org/ports/">Liste der Port auf
- dem FreeBSD Web-Server</ulink>. Sie k&ouml;nnen dort Suchen
- oder in der Liste schm&ouml;kern. Jeder Port enth&auml;lt
- au&szlig;erdem eine Beschreibung, so da&szlig; Sie sich vor der
- Entscheidung, welchen Port Sie installieren wollen, &uuml;ber den Port
- informieren k&ouml;nnen.</para>
-
- <para>Eine andere Methode bietet das Kommando <command>whereis</command>.
- Um <command>whereis</command> zu benutzen, geben Sie einfach
- <quote><command>whereis &lt;Programm, da&szlig; Sie
- installieren m&ouml;chten&gt;</command></quote> ein. Wenn es auf
- Ihrem System gefunden wird, wird das wie im folgenden Beispiel anzeigt:
- </para>
-
- <screen>&prompt.root; <userinput>whereis xchat</userinput>
-xchat: /usr/ports/irc/xchat
-&prompt.root;</screen>
-
- <para>Dies sagt uns, da&szlig; xchat (ein IRC-Client) im
- Verzeichnis <filename>/usr/ports/irc/xchat</filename>
- gefunden werden kann.</para>
-
- <para>Ein noch anderer Weg, einen bestimmten Port zu finden ist,
- die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
- Dazu m&uuml;ssen Sie im Verzeichnis <filename>/usr/ports</filename>
- sein. Darin geben Sie ein
- <command>make search key=Anwendungsname</command> worin
- <quote>Anwendungsname</quote> der Name der von Ihnen gesuchten
- Anwendung ist. Wenn Sie zum Beispiel nach xchat suchten:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make search key=xchat</userinput>
-Port: xchat-1.3.8
-Path: /usr/ports/irc/xchat
-Info: An X11 IRC client using the GTK+ toolkit, and optionally, GNOME
-Maint: jim@FreeBSD.org
-Index: irc
-B-deps: XFree86-3.3.5 bzip2-0.9.5d gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gmake-3.77 gtk-1.2.6
- imlib-1.9.8 jpeg-6b png-1.0.3 tiff-3.5.1
-R-deps: XFree86-3.3.5 gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gtk-1.2.6 imlib-1.9.8 jpeg-6b
- png-1.0.3 tiff-3.5.1</screen>
-
- <para>Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
- mit <quote>Path:</quote> beginnt, weil sie Ihnen sagt, wo der Port
- zu finden ist. Die anderen Informationen werden zum Installieren
- des Ports nicht direkt ben&ouml;tigt, Sie brauchen sich darum
- jetzt nicht weiter zu k&uuml;mmern.</para>
-
- <note>
- <para>Zum Installieren von Ports m&uuml;ssen Sie als Benutzer
- <username>root</username> angemeldet sein.</para>
- </note>
-
- <para>Jetzt, wo Sie den gew&uuml;nschten Port gefunden haben, kann es
- mit der eigentlichen Installation losgehen.</para>
-
- <sect3 id="ports-cd">
- <title>Installation von einer CDROM</title>
-
- <para>Wie Sie schon vermuten, geht dieser Abschnitt davon aus,
- da&szlig; Sie eine FreeBSD-CDROM Zusammenstellung haben.
- Wenn nicht, k&ouml;nnen Sie eine bei <ulink
- url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>
- bestellen.</para>
-
- <para>Angenommen Ihre FreeBSD-CDROM ist im Laufwerk und nach
- <filename>/cdrom</filename> eingebunden (und der Mount Punkt
- <emphasis>mu&szlig;</emphasis> das Verzeichnis
- <filename>/cdrom</filename> sein), kann es mit dem Installieren
- von Port losgehen. Zu Beginn gehen Sie in das Verzeichnis des
- Portes, welchen Sie installieren m&ouml;chten:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput></screen>
-
- <para>Im Verzeichnis xchat kann man das Ger&uuml;st erkennen. Der
- n&auml;chste Schritt ist das &Uuml;bersetzen (auch Bauen genannt)
- des Portes. Dies wird durch Eingabe von <command>make</command>
- getan. Haben Sie das eingegeben, so werden Sie etwas lesen
- wie:</para>
-
-
- <screen>&prompt.root; <userinput>make</userinput>
-&gt;&gt; xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from file:/cdrom/ports/distfiles/.
-===&gt; Extracting for xchat-1.3.8
-&gt;&gt; Checksum OK for xchat-1.3.8.tar.bz2.
-===&gt; xchat-1.3.8 depends on executable: bzip2 - found
-===&gt; xchat-1.3.8 depends on executable: gmake - found
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-===&gt; Patching for xchat-1.3.8
-===&gt; Applying FreeBSD patches for xchat-1.3.8
-===&gt; Configuring for xchat-1.3.8
-...
-[configure-Ausgabe weggelassen]
-...
-===&gt; Building for xchat-1.3.8
-...
-[Ausgabe der &Uuml;bersetzung weggelassen]
-...
-&prompt.root;</screen>
-
- <para>Ist die &Uuml;bersetzungsprozedur beendet, sind Sie wieder
- in der Kommandozeile und der n&auml;chste Schritt ist das
- Installieren. Dazu h&auml;ngen Sie einfach ein Wort an das
- <command>make</command>-Kommando, und dieses Wort ist
- <command>install</command>:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-===&gt; Installing for xchat-1.3.8
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-...
-[Ausgabe der Installation weggelassen]
-...
-===&gt; Generating temporary packing list
-===&gt; Installing xchat docs in /usr/X11R6/share/doc/xchat
-===&gt; Registering installation for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>Wenn Sie wieder den Prompt haben, sollte Sie in der Lage
- sein, die gerade in stallierte Anwendung laufen zu lassen.</para>
-
- <note>
- <para>Sie k&ouml;nnen einen Schritt sparen, wenn Sie gleich
- <command>make install</command> anstatt von
- <command>make</command> und dem anschlie&szlig;enden
- <command>make install</command> eingeben.</para>
- </note>
-
- <note>
- <para>Beachten Sie bitte, da&szlig; die Lizenzen einiger Ports
- die Einbeziehung auf der CDROM verbieten. Das k&ouml;nnte
- aufgrund verschiedenster Gr&uuml;nde der Fall sein, beispielsweise
- weil man sich vor dem Herunterladen registrieren lassen
- mu&szlig; oder eine Weiterverteilung verboten ist u.s.w.
- W&uuml;nschen Sie einen Port zu installieren, der nicht auf
- der CDROM enthalten ist, so m&uuml;ssen Sie online gehen und
- mit Hilfe <link linkend="ports-inet"> des n&auml;chsten
- Abschnitts </link> den Port installieren.</para>
- </note>
- </sect3>
-
- <sect3 id="ports-inet">
- <title>Port vom Internet installieren</title>
-
- <para>Dieser Abschnitt setzt voraus, da&szlig; Sie eine Verbindung
- mit dem Internet haben. Haben Sie dies nicht, m&uuml;ssen Sie
- eine <link linkend="ports-cd">CDROM Installation</link>
- durchf&uuml;hren.</para>
-
- <para>Das Installieren eines Ports vom Internet wird genau so
- durchgef&uuml;hrt wie das Installieren von CDROM. Der einzige
- Unterschied zwischen beiden ist, da&szlig; der Quellcode der
- Anwendung vom Internet heruntergeladen und nicht von der CDROM
- genommen wird.</para>
-
- <para>Die durchgef&uuml;hrten Schritte sind identisch:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from http://xchat.org/files/v1.3/.
-Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100%
-305543 bytes transferred in 2.9 seconds (102.81 Kbytes/s)
-===&gt; Extracting for xchat-1.3.8
-&gt;&gt; Checksum OK for xchat-1.3.8.tar.bz2.
-===&gt; xchat-1.3.8 depends on executable: bzip2 - found
-===&gt; xchat-1.3.8 depends on executable: gmake - found
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-===&gt; Patching for xchat-1.3.8
-===&gt; Applying FreeBSD patches for xchat-1.3.8
-===&gt; Configuring for xchat-1.3.8
-...
-[configure-Ausgabe weggelassen]
-...
-===&gt; Building for xchat-1.3.8
-...
-[Ausgabe der &Uuml;bersetzung weggelassen]
-...
-===&gt; Installing for xchat-1.3.8
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-...
-[Ausgabe der Installation weggelassen]
-...
-===&gt; Generating temporary packing list
-===&gt; Installing xchat docs in /usr/X11R6/share/doc/xchat
-===&gt; Registering installation for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>Wie Sie sehen k&ouml;nnen, besteht der einzige Unterschied in
- der Zeile, die Ihnen sagt, woher das System den Quellcode
- herholt.</para>
-
- <para>Obiges erkl&auml;rte Ihnen, wie Sie Ports auf Ihrem Computer
- installieren k&ouml;nnen. Hiernach lernen Sie, wie Sie einen
- Port wieder von Ihrem System l&ouml;schen.</para>
- </sect3>
- </sect2>
-
- <sect2 id="ports-removing">
- <title>Entfernen installierter Ports</title>
-
- <para>Da Sie nun wissen, wie man einen Port installiert, wollen Sie
- sicher auch wissen, wie man einen Port deinstalliert, f&uuml;r den
- Fall, da&szlig; Sie versehentlich einen Falschen installiert haben.
- Die n&auml;chsten Abschitte decken genau dieses Thema ab.</para>
-
- <para>Nun wollen wir mal unser vorheriges Beispiel wieder
- l&ouml;schen (f&uuml;r alle die nicht aufgepa&szlig;t haben, da&szlig;
- war xchat). Wie beim Installieren geht man zuerst in das
- Verzeichnis des Portes, wie Sie sich erinnern werden war das
- <filename>/usr/ports/irc/xchat</filename>. Danach ist man
- in der Lage den Port zu deinstallieren. Dies wird mit dem
- Kommando <command>make deinstall</command> getan (erscheint
- sinnvoll, oder?):</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput>
-&prompt.root; <userinput>make deinstall</userinput>
-===&gt; Deinstalling for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>Das war leicht. Sie haben jetzt die F&auml;higkeit, xchat
- von Ihrem System zu entfernen. M&ouml;chten Sie den Port doch
- wieder neu installieren, geben Sie
- <command>make reinstall</command> im Verzeichnis
- <filename>/usr/ports/irc/xchat</filename> ein.</para>
- </sect2>
- </sect1>
-
- <sect1 id="ports-trouble">
- <title>Fehlersuche und -behebung</title>
-
- <para>Die folgenden Zeilen beschreiben einige einfache
- Fehlerbehebungsm&ouml;glichkeiten beim Benutzen der Ports-Sammlung
- und ein paar Fehlerbehandlungen, falls ein <link
- linkend="ports-broken">Port kaputt</link> ist.</para>
-
- <sect2 id="ports-questions">
- <title>Einige Fragen und Antworten</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Ich dachte hierbei ging es um Modems??!</para>
- </question>
-
- <answer>
- <para>Ah, Sie m&uuml;ssen an die serielle Schnittstelle auf der
- R&uuml;ckseite Ihres Computers gedacht haben (engl. port). Wir
- benutzen hier <quote>Port</quote> als Ergebnis des
- <quote>Portierens</quote> einer Anwendung von einer UNIX-Variante
- zu einer anderen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich dachte man soll Packete (packages) benutzen, um
- zus&auml;tzliche Anwendungen zu installieren?</para>
- </question>
-
- <answer>
- <para>Ja, das ist gew&ouml;hnlich der schnellste und einfachste
- Weg.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Warum dann mit den Ports herumplagen?</para>
- </question>
-
- <answer>
- <para>Aus verschiedenen Gr&uuml;nden:</para>
-
- <orderedlist>
- <listitem>
- <para>Die Lizenz-Bestimmungen einiger Software verbietet
- Verteilung in bin&auml;rer Form. Diese mu&szlig; als
- Quellcode verteilt werden.</para>
- </listitem>
-
- <listitem>
- <para>Einige Leute vertrauen bereits kompilierter Software
- nicht. Mit dem Quellcode haben sie zumindest (in der
- Theorie) die M&ouml;glichkeit, sich den Code anzusehen und
- nach potentiellen Problemen f&uuml;r sich zu suchen.</para>
- </listitem>
-
- <listitem>
- <para>Haben Sie eigene Anpassungen, so ben&ouml;tigen Sie den
- Quellcode, um diese vornehmen zu k&ouml;nnen.</para>
- </listitem>
-
- <listitem>
- <para>Sie k&ouml;nnten andere Ansichten dar&uuml;ber haben,
- wie eine Anwendung &uuml;bersetzt werden soll, als die Person
- welche das Package erstellt hat&mdash; einige Leute haben
- strenge Ansichten dr&uuml;ber, welche Optimierung benutzt,
- ob eine Debug-Version erstellt oder ob anschlie&szlig;end
- <command>strip</command> benutzt werden soll und so
- weiter.</para>
- </listitem>
-
- <listitem>
- <para>Packages werden normalerweise mit recht konservativen
- Einstellungen erstellt. Wenn ein Port spezielle Optionen
- f&uuml;r einen speziellen Prozessor oder eine besondere
- Karte in Ihrem Rechner hat, k&ouml;nnen Sie diese immer
- benutzen und die Ersteller der Packages m&uuml;ssen nicht
- sehr viele verschiedene davon bereitstellen.</para>
-
- <para>Die verbreiteste Ausnahme von dieser Regel ist das
- Papierformat. Unterst&uuml;tzt ein Port von Haus aus
- verschieden Formate, stellen wir auch verschiedene
- packages bereit, eins pro Papierformat.</para>
- </listitem>
-
- <listitem>
- <para>Manche Menschen haben gerne Quellcode rumliegen, um
- darin zu lesen, wenn ihnen langweilig ist, drin rumzuhacken,
- sich etwas auszuleihen (nat&uuml;rlich, wenn es die Lizenz
- erlaubt) und so weiter.</para>
- </listitem>
-
- <listitem>
- <para>Hast Du keinen Quellcode, ist es keine Software!
- <!-- smiley -->;-)</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-patch">Was ist ein Patch?</para>
- </question>
-
- <answer>
- <para>Ein Patch ist eine kleine Datei, die beschreibt, wie man
- von einer Version einer Datei zu einer anderen kommt. Sie
- enth&auml;lt reinen Text und sagt im Prinzip Dinge wie
- <quote>l&ouml;sche Zeile 23</quote>,
- <quote>f&uuml;ge diese zwei Zeilen hinter Zeile 468an </quote>,
- oder <quote>&auml;ndere Zeile 197 hierzu</quote>. Sie sind
- auch bekannt als diffs, weil sie mit der Anwendung
- <application>diff</application> erstellt werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-tarball">Worum gehts eigentlich bei diesen
- tarballs?</para>
- </question>
-
- <answer>
- <para>Das ist eine Datei mit der Endung <filename>.tar</filename>
- oder als Varianten mit <filename>.tar.gz</filename>,
- <filename>.tar.Z</filename>, <filename>.tar.bz2</filename>,
- oder auch <filename>.tgz</filename>.</para>
-
- <para>Vereinfacht ist das ein Verzeichnisbaum, welcher in eine
- einzelne Datei (<filename>.tar</filename>) archiviert und
- optional gepackt (<filename>.gz</filename>) wurde. Diese
- Technik wurde urspr&uuml;nglich f&uuml;r
- <emphasis>T</emphasis>ape <emphasis>AR</emphasis>chives
- benutzt (daher der Name <command>tar</command>), aber stellt
- heute einen weit verbreiteten Weg da, im Internet Quellcode
- zu verbreiten und zu verteilen.</para>
-
- <para>Sie k&ouml;nnen selber hineinsehen, was f&uuml;r Dateien
- darin sind oder diese auspacken, indem Sie das UNIX-Programm
- <application>tar</application> benutzen. Dies ist auch bei
- FreeBSD dabei. Das s&auml;he in etwa so aus:</para>
-
- <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput>
-&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput>
-&prompt.user; <userinput>tar tvf foobar.tar</userinput>
-&prompt.user; <userinput>tar xvf foobar.tar</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-checksum">Eine Pr&uuml;fsumme?</para>
- </question>
-
- <answer>
- <para>Das ist eine Zahl, die dadurch generiert wird, indem man
- die ganzen Daten einer Datei aufaddiert. &Auml;ndert sich ein
- Zeichen in dieser Datei, ist die Pr&uuml;fsumme nicht mehr die
- gleiche und ein einfacher Vergleich erm&ouml;glicht das
- Erkennen des Unterschiedes.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich tat, was ihr zum &Uuml;bersetzen von Ports von der
- CDROM geschrieben habt und es funktionierte auch prima, bis ich
- zum Port kermit kam.</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; cku190.tar.gz doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.</screen>
-
- <para>Warum kann die Datei nicht gefunden werden? Habe ich eine kaputte
- CDROM?</para>
- </question>
-
- <answer>
- <para>Wie im Abschnitt <link linkend="ports-cd">Installation von
- CDROM</link> erl&auml;utert, d&uuml;rfen einige Ports wegen
- Lizenz-Beschr&auml;nkungen nicht auf CDROM ver&ouml;ffentlicht
- werden. Kermit ist ein solches Beispiel. Die Lizenz-Bestimmungen
- verbieten uns das Brennen des tarballs auf CDROM, leider
- m&uuml;ssen Sie es sich von Hand aus dem Netz
- Herunterladen&mdash;sorry!</para>
-
- <para>Der Grund f&uuml;r die ganzen Fehlermeldungen liegt darin,
- da&szlig; Sie zu diesem Zeitpunkt nicht mit dem Internet verbunden
- waren. Haben Sie den tarball von einer der MASTER_SITES
- (aufgef&uuml;hrt im Makefile) gezogen, k&ouml;nnen Sie die
- Installation erneut starten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Das habe ich getan, aber als ich ihn ins Verzeichnis
- <filename>/usr/ports/distfiles</filename> legen wollte, erhielt
- ich eine Fehlermeldung bez&uuml;glich der Zugriffsrechte.</para>
- </question>
-
- <answer>
- <para>Der Ports Mechanimus sucht den tarball in
- <filename>/usr/ports/distfiles</filename>, aber Sie konnten ihn
- dort nicht hinkopieren, da dieses Verzeichnis auf die CDROM
- zeigt, die man nur gelesen kann. Sie k&ouml;nnen eine andere
- Stelle angeben, indem Sie eingeben:</para>
-
- <screen>&prompt.root; <userinput>make DISTDIR=<replaceable>/wohin/Sie/es/legten</replaceable> install</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Funktioniert das Konzept der Ports nur, wenn alles in
- <filename>/usr/ports</filename> abl&auml;uft? Mein
- Systemadministrator sagt, da&szlig; ich alles unter
- <filename>/u/people/guests/wurzburger</filename> haben
- mu&szlig;, aber das scheint nicht klappen.</para>
- </question>
-
- <answer>
- <para>Sie k&ouml;nnen die Variablen <makevar>PORTSDIR</makevar>
- und <makevar>PREFIX</makevar> benutzen, um dem Ports-System zu
- sagen, da&szlig; es andere Verzeichnisse nutzen soll. Zum
- Beispiel w&uuml;rde,</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen>
-
- <para>den Port in
- <filename>/u/people/guests/wurzburger/ports</filename>
- kompilieren und alles unter <filename>/usr/local</filename>
- installieren.</para>
-
- <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen>
-
- <para>kompiliert in <filename>/usr/ports</filename> und
- installiert ihn in
- <filename>/u/people/guests/wurzburger/local</filename>.</para>
-
- <para>Und nat&uuml;rlich</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>
-
- <para>kombiniert die beiden Sachen. (Es ist aber ein wenig lang,
- um es hier komplett aufzuschreiben. Sie sollten aber die
- zugrunde liegende Idee erkennen.)</para>
-
- <para>Wenn Sie keine Lust haben, dies jedesmal einzutippen,
- sollten Sie diese Variablen als Umgebungsvariablen setzen.
- Lesen Sie die Man-Page Ihre Shell, um zu erfahren, wie das
- anstellt.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich habe keine FreeBSD CDROM, w&uuml;rde aber gerne die
- tarballs auf meinem Rechner liegen haben, damit ich nicht
- jedesmal auf den Downlaod warten mu&szlig;, wenn ich mal einen
- Port installieren will. Gibt es einen Weg, alle auf einmal
- zu holen?</para>
- </question>
-
- <answer>
- <para>Um jeden einzelnen tarball f&uuml;r die Ports-Sammlung zu
- holen geben Sie ein:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>F&uuml;r alle tarballs eines Ports-Verzeichnis:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>Verzeichnis</replaceable></userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>und f&uuml;r nur einen Port&mdash;gut, das haben Sie sicher
- schon erraten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich wei&szlig;, das es wohl schneller geht, wenn ich die
- tarballs von einem FreeBSD Mirror in der N&auml;he hole. Kann
- ich sagen, da&szlig; andere als in MASTER_SITES angegebene
- Server genommen werden soll?</para>
- </question>
-
- <answer>
- <para>Ja. Zum Beispiel, wenn <hostid
- role="fqdn">ftp.FreeBSD.org</hostid> bei Ihnen n&auml;her dran
- ist, als der in <makevar>MASTER_SITES</makevar> angegebene,
- machen Sie das wie folgt:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
-&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
-ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich w&uuml;rde gern vorher wissen, welche Dateien
- <command>make</command> holen wird, bevor es das versucht.</para>
- </question>
-
- <answer>
- <para><command>make fetch-list</command> gibt aus, welche Dateien
- f&uuml;r den Port ben&ouml;tigt werden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Gibt es einen Weg einen Port am Kompilieren zu hindern? Ich
- m&ouml;chter gern vor der Installation etwas im Quellcode hacken.
- Es ist aber etwas nervig, immer aufzupassen und im richtigen
- Moment mit Control-C abzubrechen.</para>
- </question>
-
- <answer>
- <para>Die Eingabe von <command>make extract</command> erreicht,
- da&szlig; der Port Quellcode nur geholt und entpackt wird.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich versuche einen eigenen Port zu erstellen und will,
- da&szlig; der Port vor dem &Uuml;bersetzen anh&auml;lt, damit
- ich eine Chance habe zu sehen, ob meine Patches sauber
- funktionieren. Gibt es etwas wie <command>make
- extract</command> f&uuml;r Patches?</para>
- </question>
-
- <answer>
- <para>Klar, <command>make patch</command> ist alles was Sie
- w&uuml;nschen. Sie werden wahrscheinlich die Variable
- <makevar>PATCH_DEBUG</makevar> auch recht n&uuml;tzlich finden.
- Ach ja, und vielen Dank f&uuml;r Ihre Bem&uuml;hungen!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Stimmt es, da&szlig; einige Compiler Fehler machen? Wie
- kann ich sicher gehen, da&szlig; ich mit den richtigen
- Einstellungen &uuml;bersetze?</para>
- </question>
-
- <answer>
- <para>Ja, in der Version 2.6.3 des <command>gcc</command> (diese
- Version ist bei FreeBSD 2.1.0 und 2.1.5 dabei) kann die Option
- <option>-O2</option> fehlerhafte Ergebnisse liefern, sofern man
- nicht auch die Option <option>-fno-strength-reduce</option>
- benutzt. (Die meisten Ports benutzen <option>-O2</option>
- nicht). Sie <emphasis>sollten</emphasis> die Compiler Optionen
- etwa wie folgt spezifieren k&ouml;nnen:</para>
-
- <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen>
-
- <para>oder durch editieren von <filename>/etc/make.conf</filename>,
- alleding beachten das nicht alle Ports. Der sicherste Weg ist,
- nach einem <command>make configure</command> ins Verzeichnis
- mit dem Quellcode zu gehen und dort die Makefiles von Hand zu
- untersuchen. Das kann aber sehr m&uuml;hselig werden, da es
- oft sehr viele Unterverzeichnisse mit eigenen Makefiles geben
- kann.</para>
-
- <para>Die bei FreeBSD voreingestellten Compiler Optionen sind
- recht konservativ, so sollten Sie eigentlich keine Probleme
- bekommen, wenn Sie diese nicht ver&auml;ndert haben.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Das sind aber ganz sch&ouml;n viele Ports und es ist nicht
- leicht den einen zu finden, den ich gerade m&ouml;chte. Gibt es
- eine Liste der erh&auml;ltlichen Ports?</para>
- </question>
-
- <answer>
- <para>Schauen Sie in die Datei <filename>INDEX</filename> im
- Verzeichnis <filename>/usr/ports</filename>. Sie k&ouml;nnen
- auch die Ports-Sammlung nach einem Stichwort durchsuchen.
- Wollen Sie zum Beispiel alle Ports finden, die mit der
- Programmiersprache LISP zu tun haben, geben Sie ein:</para>
-
- <screen>&prompt.user; <userinput>cd /usr/ports</userinput>
-&prompt.user; <userinput>make search key=lisp</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Als ich den Port <literal>bla</literal> installieren
- wollte, h&ouml;rt das System auf einmal mit dem Kompilieren auf
- und fing an, den Port <literal>s&uuml;lz</literal> zu
- erstellen. Was ist hier los?</para>
- </question>
-
- <answer>
- <para>Der Port <literal>bla</literal> braucht etwas, was mit dem
- Port <literal>s&uuml;lz</literal> mitkommt &mdash; beispielsweise,
- wenn <literal>bla</literal> Grafik benutzt wird und der Port
- <literal>s&uuml;lz</literal> k&ouml;nnte dann eine Bibliothek mit
- n&uuml;tzlichen grafischen Routinen enthalten. Oder
- <literal>s&uuml;lz</literal> k&ouml;nnte ein Werkzeug sein, das zum
- &Uuml;bersetzen des Ports <literal>bla</literal> notwendig
- ist.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-remove"> Ich habe aus der Ports-Sammlung die
- Anwendung <literal>grizzle</literal> installiert und nun
- festgestellt, da&szlig; es reine Verschwendung von Plattenplatz
- ist. Ich will ihn wieder l&ouml;schen, wei&szlig; aber nicht
- wohin der Port seine Dateien installiert hat. Tips?</para>
- </question>
-
- <answer>
- <para>Alles kein Problem, machen Sie nur:</para>
-
- <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen>
-
- <para>Sie k&ouml;nnen alternativ auch eingeben:</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/grizzle</replaceable></userinput>
-&prompt.root; <userinput>make deinstall</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Moment, man mu&szlig; die Versionsnummer wissen, um das
- Kommando benutzen zu k&ouml;nnen. Es wird nicht wirklich
- erwartet, da&szlig; ich mich daran noch erinner, oder??</para>
- </question>
-
- <answer>
- <para>Nein, Sie finden diese Nummer durch folgende Eingabe heraus:</para>
-
- <screen>&prompt.root; <userinput>pkg_info -a | grep grizzle</userinput>
-Information for grizzle-6.5:
-grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up
-arcade game.</screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Apropos Plattenplatz, die Ports-Sammlung scheint recht viel
- Platz einzunehmen. Ist es gef&auml;hrlich dahin zu gehen und
- Sachen zu l&ouml;schen?</para>
- </question>
-
- <answer>
- <para>Nun, wenn Sie Anwendungen installiert haben und sicher sind,
- da&szlig; Sie den Quellcode nicht ben&ouml;tigen, gibt es
- keinen Grund diesen herumliegen zu haben. Der beste Weg zum
- Aufr&auml;umen ist:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>Das geht durch alle Ports-Verzeichnisse und l&ouml;scht
- f&uuml;r jeden Port alles bis auf das Ger&uuml;st.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Das habe ich probiert, aber da liegen immer noch diese
- tarballs (oder wie die genannt werden) im Verzeichnis
- <filename>distfiles</filename> herum. Darf ich die auch
- l&ouml;schen?</para>
- </question>
-
- <answer>
- <para>Ja, wenn Sie mit denen fertig sind, konnen die auch
- verschwinden. Man kann sie von Hand l&ouml;schen das
- Kommando <command>make distclean</command> benutzen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich finde es toll, tierisch viele Anwendungen zu haben und
- damit rumzuspielen. Gibt es einen Weg alle Ports auf einmal
- zu installieren?</para>
- </question>
-
- <answer>
- <para>Machen Sie einfach:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
-
- <para>Vorsicht: Einige Ports k&ouml;nnten Dateien mit dem
- gleichen Namen installieren. Wenn man zwei grafische Ports
- installiert und beide eine Datei
- <filename>/usr/local/bin/plot</filename> anlegen, haben Sie
- ein Problem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Okay, das habe ich gemacht und ich dachte, da&szlig; das
- sicherlich ziemlich lange dauert, ging zu Bett. Als ich heute
- morgen zum Computer kam, waren erst dreieinhalb Ports
- installiert. Hat da etwas nicht geklappt?</para>
- </question>
-
- <answer>
- <para>Nein, das Problem ist, da&szlig; es Ports gibt, die Ihnen
- Fragen stellen, auf die wir die Antworten nicht f&uuml;r Sie
- geben konnten (z.B. <quote>Drucken Sie auf Papier im A4 oder US
- letter Format?</quote>). In solchen F&auml;llen mu&szlig;
- jemand da sein und die Fragen beantworten.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ich m&ouml;chte aber nicht wirklich einen ganzen Tag damit
- verbringen, auf den Monitor zu starren. Irgendeine bessere
- Idee?</para>
- </question>
-
- <answer>
- <para>Klar, bevor Sie ins Bett/zur Arbeit/in den Park gehen,
- geben Sie ein:</para>
-
- <screen>&prompt.root <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DBATCH install</userinput></screen>
-
- <para>Das installiert Ihnen alle Ports, die
- <emphasis>keine</emphasis> Eingaben des Benutzers erfordern.
- Wenn Sie dann zur&uuml;ck sind, geben Sie ein:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DIS_INTERACTIVE install</userinput></screen>
-
- <para>um die Aufgabe zu beenden.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Auf der Arbeit benutzen wir die Anwendung
- <literal>frobble</literal>, das in der Ports-Sammlung ist. Wir
- haben das aber etwas auf unsere Bed&uuml;rfnisse angepa&szlig;t.
- K&ouml;nnen wir irgendwie eigene packages erstellen, so
- da&szlig; wir die Anwendung auf unseren Rechnern leichter
- verteilen k&ouml;nnen?</para>
- </question>
-
- <answer>
- <para>Kein Problem. Angenommen Sie wissen, wie Sie f&uuml;r Ihre
- Anpassungen Patches erzeugen:</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/frobble</replaceable></userinput>
-&prompt.root; <userinput>make extract</userinput>
-&prompt.root; <userinput>cd work/frobble-2.8</userinput>
-[Ihre patche einspielen]
-&prompt.root; <userinput>cd ../..</userinput>
-&prompt.root; <userinput>make package</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Diese Geschichte mit den Ports ist wirklich clever. Ich
- habe keine Ahnung, wie ihr das hinbekommen habt. Was ist das
- Geheimnis dahinter?</para>
- </question>
-
- <answer>
- <para>Keine Geheimnisse. Sehen Sie einfach in die Dateien
- <filename>bsd.port.mk</filename> und
- <filename>bsd.port.subdir.mk</filename> in dem
- <ulink url="file://localhost/usr/ports/Mk/">makefiles
- Verzeichnis</ulink> auf Ihrem Rechner an.</para>
-
- <para>(Lesern mit einer Aversion gegen komplizierte Shell-scripts
- wird geraten, diesen Link nicht zu verfolgen...)</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect2>
-
- <sect2 id="ports-broken">
- <title>Hilfe! Dieser Port ist kaputt!</title>
-
- <para>Stolpern Sie mal &uuml;ber einen Port, der bei Ihnen nicht
- funktioniert, k&ouml;nnten Sie zum Beispiel folgendes tun:</para>
-
- <orderedlist>
- <listitem>
- <para>Reparieren Sie ihn! Der Abschnitt
- <link linkend="porting"><quote>Wie erstelle ich einen
- Port</quote></link> sollte Ihnen dabei helfen.</para>
- </listitem>
-
- <listitem>
- <para>Rummeckern&mdash;<emphasis>nur mittels E-Mail!</emphasis>
- Senden Sie zuerst eine E-Mail an den Betreuer des Ports. Geben
- Sie dazu <command>make maintainer</command> ein oder lesen das
- <filename>Makefile</filename> im Verzeichnis des Ports, um an
- die E-Mail-Adresse zu kommen. Vergessen Sie nicht den Namen und
- die Version des Ports (schicken Sie die Zeile mit
- <literal>$FreeBSD:</literal> aus dem <filename>Makefile</filename>)
- und die Ausgabe bis zur Fehlermeldung mitzuschicken. Erhalten
- Sie vom Betreuer keine Resonanz, k&ouml;nnen Sie auch das
- <command>send-pr</command> Kommando benutzen, um einen
- Fehler-Report einzusenden.</para>
- </listitem>
-
- <listitem>
- <para>Vergessen Sie es. Das ist der einfachste Weg&mdash; nur
- sehr wenige Ports kann man als <quote>unverzichtbar</quote>
- klassifizieren. Au&szlig;erdem gibt eine gro&szlig;e
- Wahrscheinlichkeit, da&szlig; der Fehler in der n&auml;chsten
- Version behoben ist, wenn der Port aktualisiert wurde.</para>
- </listitem>
-
- <listitem>
- <para>Holen Sie sich das Package von einem FTP-Server in Ihrer
- N&auml;he. Die <quote>Basis</quote> Sammlung aller packages
- liegt auf <hostid role="fqdn">ftp.de.FreeBSD.org</hostid> im
- Verzeichnis <ulink
- URL="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/packages/">packages</ulink>.
- Aber versuchen Sie <emphasis>zuerst</emphasis> einen Mirror in
- Ihrer N&auml;he! Die Methode mit den Packages geht um einiges
- schneller. Benutzen Sie das Programm &man.pkg.add.1;, um
- Packages auf Ihrem Rechner zu installieren.</para>
- </listitem>
- </orderedlist>
- </sect2>
- </sect1>
-
- <sect1 id="porting">
- <title>Weitergehende Themen</title>
-
- <para>Dieser Abschnitt wurde ausgelagert und zu einem eigenst&auml;ndigen
- Handbuch, dem
- <ulink url="../porters-handbook/index.html">Porters-Handbuch</ulink>,
- Wenn Sie selber einen Port erstellen und einreichen
- wollen, lesen Sie bitte dieses Handbuch.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml b/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
deleted file mode 100644
index 24410f1083..0000000000
--- a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
+++ /dev/null
@@ -1,445 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- Original Revision 1.4
-
- $FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/users/chapter.sgml,v 1.2 2001/03/23 07:28:36 robert Exp $
--->
-
-<chapter id="users">
- <title>Benutzer und grundlegende Account-Verwaltung</title>
-
- <sect1 id="users-synopsis">
- <title>&Uuml;bersicht</title>
-
- <para><emphasis>Beigesteuert von &a.nbm; im Februar 2000. &Uuml;bersetzt
- von &a.de.robert; im Juli 2000.</emphasis></para>
-
- <para>Jeder Zugriff auf das System geschieht &uuml;ber Accounts und alle
- Prozesse werden von Benutzern gestartet, also sind Benutzer- und
- Account-Verwaltung von wesentlicher Bedeutung in FreeBSD-Systemen.</para>
-
- <para>Es gibt drei Haupttypen von Accounts: Der
- <link linkend="users-superuser">Superuser</link>,
- <link linkend="users-system">Systembenutzer</link> und
- <link linkend="users-user">Benutzer-Accounts</link>. Der
- Superuser-Account, normalerweise <username>root</username> genannt, wird
- benutzt, um das System ohne Beschr&auml;nkungen auf Privilegien zu
- verwalten. Systembenutzer starten Dienste. Abschliessend werden
- Benutzer-Accounts von echten Menschen genutzt, die sich einloggen, Mails
- lesen und so weiter.</para>
- </sect1>
-
- <sect1 id="users-superuser">
- <title>Der Superuser-Account</title>
-
- <para>Der Superuser-Account, normalerweise <username>root</username>
- genannt, ist vorkonfiguriert und erleichtert die Systemverwaltung, sollte
- aber nicht f&uuml;r allt&auml;gliche Aufgaben wie verschicken und
- empfangen von Mails, Entdecken des Systems oder Programmierung benutzt
- werden.</para>
-
- <para>Das ist so, da der Superuser im Gegensatz zu normalen
- Benutzer-Accounts ohne Beschr&auml;nkungen operiert und falsche
- Anwendung des Superuser-Accounts in spektakul&auml;ren Katastrophen
- resultieren kann. Benutzer-Accounts sind nicht f&auml;hig das System
- versehentlich zu zerst&ouml;ren, deswegen ist es generell am besten
- normale Benutzer-Accounts zu verwenden, solange man nicht
- haupts&auml;chlich die extra Privililegien ben&ouml;tigt.</para>
-
- <para>Zus&auml;tzlich sollten Sie Kommandos, die Sie als Superuser
- eingeben, immer doppelt und dreifach &uuml;berpr&uuml;fen, da ein
- zus&auml;tzliches Leerzeichen oder ein fehlender Buchstabe irreparablen
- Datenverlust bedeuten kann. Diese zus&auml;tzlichen Privilegien, die Sie
- ben&ouml;tigten, als Sie zu dem Superuser-Account gewechselt haben,
- bedeuten, dass die Absicherung Ihres normalen Benutzer-Accounts nicht
- mehr g&uuml;ltig ist.</para>
-
- <para>Das erste, das Sie tun sollten, nachdem Sie dieses Kapitel gelesen
- haben, ist einen unprivilegierten Benutzer f&uuml;r Ihre eigene normale
- Benutzung zu erstellen, wenn Sie das nicht bereits getan haben. Das
- trifft immer zu, egal ob Sie ein Mehrbenutzer-System oder ein System
- laufen haben, welches Sie alleine benutzen. Sp&auml;ter in diesem
- Kapitel besprechen wir, wie man zus&auml;tzliche Accounts erstellt und
- wie man zwischen dem normalen Benutzer und dem Superuser wechselt.</para>
- </sect1>
-
- <sect1 id="users-system">
- <title>System-Accounts</title>
-
- <para>Systembenutzer starten Dienste wie DNS, mail, Web-Server und so
- weiter. Der Grund daf&uuml;r ist die Sicherheit; wenn die Programme
- von dem Superuser gestartet werden, k&ouml;nnen Sie ohne
- Einschr&auml;nkungen handeln.</para>
-
- <para>Beispiele von Systembenutzern sind <username>daemon</username>,
- <username>operator</username>, <username>bind</username> (f&uuml;r den
- Domain Name Service) und <username>news</username>. Oft erstellen
- Systemadministratoren den Benutzer <username>httpd</username>, um
- Web-Server laufen zu lassen, die sie installieren.</para>
-
- <para><username>nobody</username> ist der generische unprivilegierte
- Systembenutzer, aber je mehr Dienste nobody benutzen, um so
- privilegierter wird er.</para>
- </sect1>
-
- <sect1 id="users-user">
- <title>Benutzer-Accounts</title>
-
- <para>Benutzer-Account sind das prim&auml;re Mittel des Zugriffs f&uuml;r
- echte Menschen auf das System und isolieren Benutzer und Umgebung,
- sch&uuml;tzen die Benutzer davor das System oder Daten anderer Benutzer
- zu besch&auml;digen und erlauben Benutzern ihre Umgebung selbst
- einzurichten, ohne das sich dies auf andere auswirkt.</para>
-
- <para>Jede Person, die auf Ihr System zugreift, sollte ihren eigenen
- Account besitzen. Das erlaubt Ihnen herauszufinden, wer was macht
- und h&auml;lt Leute davon ab, die Einstellungen der anderen zu
- ver&auml;ndern oder mails zu lesen, die nicht f&uuml;r sie bestimmt
- waren.</para>
-
- <para>Jeder Benutzer kann seine eigene Umgebung einstellen, um sie
- der Benutzung auf dem System anzupassen: Alternative Shells, Editoren,
- Tastaturbelegungen und Sprache.</para>
- </sect1>
-
- <sect1 id="users-modifying">
- <title>Accounts ver&auml;ndern</title>
-
- <para><application>pw</application> ist ein m&auml;chtiges und flexibles
- Mittel f&uuml;r zum &Auml;ndern von Accounts, aber <application>adduser
- </application> wird empfohlen zum Erstellen und <application>rmuser
- </application> zum L&ouml;schen von Accounts.</para>
-
- <para><application>chpass</application> erlaubt dem Systemadministrator
- und normalen Benutzern Passw&ouml;rter, Shells und personelle
- Informationen einzustellen. Jedoch ist <application>passwd</application>
- das gew&ouml;hnlichere Mittel, um Passw&ouml;rter im speziellen zu
- &auml;ndern.</para>
-
- <sect2 id="users-adduser">
- <title>adduser</title>
-
- <para><application>adduser</application> ist ein einfaches Programm
- um neue Benutzer hinzuzuf&uuml;gen. Es erstellt <filename>passwd
- </filename> und <filename>group</filename> Eintr&auml;ge f&uuml;r den
- Benutzer, genauso wie ein home Verzeichnis, kopiert ein paar
- vorgegebene dotfiles aus <filename>/usr/share/skel</filename> und kann
- optional dem Benutzer eine ,,Willkommen``-Nachricht zuschicken.</para>
-
- <para>Um die anf&auml;ngliche Konfigurationsdatei zu erstellen,
- benutzen Sie: <command>adduser -s -config_create</command>.
- <footnote>
- <para>Das <option>-s</option> bringt <application>adduser
- </application> dazu, weniger Fragen und Fehlermeldungen auszugeben.
- Wir benutzen <option>-v</option> sp&auml;ter, wenn wir die
- Voreinstellungen &auml;ndern wollen.</para>
- </footnote>
- Zun&auml;chst konfigurieren wir addusers Voreinstellungen und
- erstellen unseren ersten Benutzer-Account, da es b&ouml;se und
- unangenehm ist, root f&uuml;r normale Aufgaben zu verwenden.</para>
- <example>
- <title>Die Konfiguration f&uuml;r adduser &auml;ndern</title>
-
- <screen>&prompt.root; <userinput>adduser -v</userinput>
-Use option ``-silent'' if you don't want to see all warnings and questions.
-Check /etc/shells
-Check /etc/master.passwd
-Check /etc/group
-Enter your default shell: csh date no sh tcsh [sh]: <userinput>tcsh</userinput>
-Your default shell is: tcsh -> /usr/local/bin/tcsh
-Enter your default HOME partition: [/home]:
-Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
-Send message from file: /etc/adduser.message no
-[/etc/adduser.message]: <userinput>no</userinput>
-Do not send message
-Use passwords (y/n) [y]: <userinput>y</userinput>
-
-Write your changes to /etc/adduser.conf? (y/n) [n]: <userinput>y</userinput>
-
-Ok, let's go.
-Don't worry about mistakes. I will give you the chance later to correct any input.
-Enter username [a-z0-9_-]: <userinput>jru</userinput>
-Enter full name []: <userinput>J. Random User</userinput>
-Enter shell csh date no sh tcsh [tcsh]:
-Enter home directory (full path) [/home/jru]:
-Uid [1001]:
-Enter login class: default []:
-Login group jru [jru]:
-Login group is ``jru''. Invite jru into other groups: guest no
-[no]: <userinput>wheel</userinput>
-Enter password []:
-Enter password again []:
-
-Name: jru
-Password: ****
-Fullname: J. Random User
-Uid: 1007
-Gid: 1007 (jru)
-Class:
-Groups: jru wheel
-HOME: /home/jru
-Shell: /usr/local/bin/tcsh
-OK? (y/n) [y]: <userinput>y</userinput>
-Added user ``jru''
-Copy files from /usr/share/skel to /home/jru
-Add another user? (y/n) [y]: <userinput>n</userinput>
-Goodbye!
-&prompt.root;</screen>
- </example>
-
- <para>Zusammengefasst haben wir die vorgegebene Shell in
- <application>tcsh</application> (eine zus&auml;tzliche Shell aus
- den Packages) ge&auml;ndert und das Senden einer
- ,,Willkommen``-Nachricht an neue Benutzer abgeschaltet.
- Danach haben wir die Konfiguration abgespeichert und anschliessend
- einen Account f&uuml;r <username>jru</username> eingerichtet
- und sichergestellt, dass <username>jru</username> in der
- Gruppe <username>wheel</username> ist (was sp&auml;ter wichtig ist,
- wie wir sehen werden).</para>
- <note>
- <para>Wenn Sie das Passwort eingeben, werden weder Passwort noch
- Sternchen angezeigt. Passen Sie auf, dass Sie das Passwort nicht
- zweimal falsch eingeben. :-)</para>
- </note>
- <note>
- <para>Benutzen Sie ab jetzt <command>adduser</command> ohne Argumente,
- dann m&uuml;ssen Sie nicht jedes mal die Vorgaben neu einstellen.
- Wenn das Programm Sie fragt, ob Sie die Vorgaben &auml;ndern wollen,
- verlassen und starten Sie es erneut mit der <option>-s</option>
- Option.</para>
- </note>
- </sect2>
-
- <sect2 id="users-rmuser">
- <title>rmuser</title>
-
- <para><application>rmuser</application> entfernt Benutzer aus dem System,
- inklusive der Spuren ausserhalb der Benutzer-Datenbank.</para>
-
- <para><application>rmuser</application> f&uuml;hrt die folgenden
- Schritte durch:</para>
-
- <procedure>
- <step>
- <para>Enfernt den &man.crontab.1; Eintrag des Benutzers (wenn dieser
- existiert).</para>
- </step>
- <step>
- <para>Entfernt alle &man.at.1; jobs, die dem Benutzer geh&ouml;ren.
- </para>
- </step>
- <step>
- <para>Schliesst alle Prozesse des Benutzers.</para>
- </step>
- <step>
- <para>Entfernt den Benutzer aus der lokalen Passwort-Datei des
- Systems.</para>
- </step>
- <step>
- <para>Entfernt das home Verzeichnis des Benutzers (falls es dem
- Benutzer geh&ouml;rt).</para>
- </step>
- <step>
- <para>Entfernt die eingegangen mails, die dem Benutzer geh&ouml;ren,
- aus <filename>/var/mail</filename>.</para>
- </step>
- <step>
- <para>Entfernt alle Dateien des Benutzers aus tempor&auml;ren
- Dateispeicherbereichen wie <filename>/tmp</filename>.</para>
- </step>
- <step>
- <para>Entfernt den Benutzernamen von allen Gruppen, zu denen er
- geh&ouml;rt, aus <filename>/etc/group</filename>.
-
- <note>
- <para>Wenn eine Gruppe leer wird und der Gruppenname mit dem
- Benutzernamen identisch ist, wird die Gruppe entfernt; das
- erg&auml;nzt sich mit den einzelnen Benutzer-Gruppen, die von
- &man.adduser.8; f&uuml;r jeden neuen Benutzer erstellt werden.
- </para>
- </note>
- </para>
- </step>
- </procedure>
-
- <para><application>rmuser</application> kann nicht daf&uuml;r benutzt
- werden Superuser-Accounts zu entfernen, da dies nahezu immer ein
- Zeichen f&uuml;r eine massive Verw&uuml;stung ist.</para>
-
- <para>Als Vorgabe wird ein interaktiver Modus benutzt, der
- sicherzustellen versucht, dass Sie wissen, was Sie tun.</para>
-
- <example>
- <title>interaktives Account-Entfernen mit rmuser</title>
-
- <screen>&prompt.root; <userinput>rmuser jru</userinput>
-Matching password entry:
-jru:*:1000:1000::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh
-Is this the entry you wish to remove? <userinput>y</userinput>
-Remove user's home directory (/home/jru)? <userinput>y</userinput>
-Updating password file, updating databases, done.
-Updating group file: trusted (removing group jru -- personal group is empty) done.
-Removing user's incoming mail file /var/mail/jru: done.
-Removing files belonging to jru from /tmp: done.
-Removing files belonging to jru from /var/tmp: done.
-Removing files belonging to jru from /var/tmp/vi.recover: done.
-&prompt.root;</screen>
- </example>
- </sect2>
-
- <sect2 id="users-pw">
- <title>pw</title>
-
- <para><application>pw</application> ist ein Kommandozeilenprogramm, mit
- dem man Benutzer und Gruppen erstellen, entfernen und anzeigen kann,
- und fungiert als Editor der Benutzer- und Gruppendateien des Systems.
- </para>
-
- <para>Es wurde entworfen um n&uuml;tzlich als direkt ausgef&uuml;hrter
- Befehl und f&uuml;r die Benutzung in Shell-Scripts zu sein.</para>
-
- <para>Informationen dar&uuml;ber gibt es in &man.pw.8;.</para>
- </sect2>
-
- <sect2 id="users-chpass">
- <title>chpass</title>
-
- <para><application>chpass</application> &auml;ndert Informationen der
- Benutzerdatenbank wie Passw&ouml;rter, Shells und personelle
- Informationen.</para>
-
- <para>Nur Systemadministratoren, als Superuser, k&ouml;nnen die
- Informationen und Passw&ouml;rter der anderen Benutzer mit
- <application>chpass</application> ver&auml;ndern.</para>
-
- <para>Werden keine Optionen neben dem optionalen Benutzernamen
- angegeben, zeigt <application>chpass</application> einen Editor
- mit Benutzerinformationen an und wenn dieser Editor beendet wird,
- versucht es die Informationen in der Benutzerdatenbank zu
- ver&auml;ndern.</para>
-
- <example>
- <title>Interaktives chpass des Superusers</title>
-
- <screen>#Changing user database information for jru.
-Login: jru
-Password: *
-Uid [#]: 1000
-Gid [# or name]: 1000
-Change [month day year]:
-Expire [month day year]:
-Class:
-Home directory: /home/jru
-Shell: /usr/local/bin/tcsh
-Full Name: J. Random User
-Office Location:
-Office Phone:
-Home Phone:
-Other information:</screen>
- </example>
-
- <para>Der normale Benutzer kann nur einen kleinen Teil dieser
- Informationen ver&auml;ndern und nat&uuml;rlich nur f&uuml;r sich
- selbst.</para>
-
- <example>
- <title>Interaktives chpass eines normalen Benutzers</title>
-
- <screen>#Changing user database information for jru.
-Shell: /usr/local/bin/tcsh
-Full Name: J. Random User
-Office Location:
-Office Phone:
-Home Phone:
-Other information:</screen>
- </example>
-
- <note>
- <para><command>chfn</command> und <command>chsh</command> sind
- nur Verweise auf <command>chpass</command>, genauso wie
- <command>ypchpass</command>, <command>ypchfn</command> und
- <command>ypchsh</command>. NIS wird automatisch unterst&uuml;tzt,
- deswegen ist es nicht notwendig das <literal>yp</literal> vor dem
- Kommando einzugeben.</para>
- </note>
- </sect2>
- <sect2 id="users-passwd">
- <title>passwd</title>
-
- <para><application>passwd</application> ist der &uuml;bliche Weg Ihr
- eigenes Passwort als Benutzer zu &auml;ndern oder das Passwort eines
- anderen Benutzers als Superuser.</para>
-
- <note>
- <para>Benutzer m&uuml;ssen ihr urspr&uuml;ngliches Passwort eingeben,
- bevor sie es wechseln, um eine unauthorisierte Person davon
- abzuhalten ihr Passwort zu &auml;ndern, wenn der Benutzer gerade
- nicht an seinem Ger&auml;t ist.</para>
- </note>
-
- <example>
- <title>passwd</title>
-
- <screen>&prompt.user; <userinput>passwd</userinput>
-Changing local password for jru.
-Old password:
-New password:
-Retype new password:
-passwd: updating the database...
-passwd: done
-
-&prompt.root; <userinput>passwd jru</userinput>
-Changing local password for jru.
-New password:
-Retype new password:
-passwd: updating the database...
-passwd: done</screen>
- </example>
-
- <note>
- <para><command>yppasswd</command> ist nur ein Verweis zu
- <command>passwd</command>. NIS wird automatisch
- unterst&uuml;tzt, also ist es nicht notwendig, <literal>yp</literal>
- vor dem Kommando einzugeben.</para>
- </note>
- </sect2>
- </sect1>
-
- <sect1 id="users-limiting-and-personalizing">
- <title>Benutzer einschr&auml;nken und personalisieren</title>
-
- <para>Kontigente erlauben dem Systemadministrator
- Benutzungsbeschr&auml;nkungen der Festplatte festzusetzen und Benutzern
- ihre Festplattenbenutzung zu &uuml;berpr&uuml;fen, wenn Kontigente
- auf dem System verwendet werden. Kontigente werden in ihrem
-<!--
- <link linkend="quotas">eigenen Kapitel</link>
--->
- eigenen Kapitel
- besprochen.</para>
-
- <para>Die Lokalisierung ist eine Umgebung, die vom Systemadministrator oder
- Benutzer eingerichtet wird, um verschiedene Sprachen, Zeichens&auml;tze,
- Datum- und Zeitstandards und so weiter unterzubringen. Dies wird im
- Kapitel &uuml;ber die
-<!--
- <link linkend="l10n">Lokalisierung</link>
--->
- Lokalisierung
- besprochen.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/de_DE.ISO8859-1/share/sgml/bookinfo.ent b/de_DE.ISO8859-1/share/sgml/bookinfo.ent
deleted file mode 100644
index d6e567519c..0000000000
--- a/de_DE.ISO8859-1/share/sgml/bookinfo.ent
+++ /dev/null
@@ -1,12 +0,0 @@
-<!--
- Querverweise auf andere Dateien können in einem DocBook BookInfo
- Element eingefügt werden.
-
- Entity Namen haben die Form "bookinfo.<element>", wobei <element> der
- Name des äußersten Elements in der Entity ist. Beispiele sind
- "bookinfo.legalnotice" und "bookinfo.preface".
-
- $FreeBSD$
--->
-
-<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml">
diff --git a/de_DE.ISO8859-1/share/sgml/catalog b/de_DE.ISO8859-1/share/sgml/catalog
deleted file mode 100644
index 5ebe8768fc..0000000000
--- a/de_DE.ISO8859-1/share/sgml/catalog
+++ /dev/null
@@ -1,9 +0,0 @@
- -- ...................................................................... --
- -- FreeBSD SGML Public Identifiers ...................................... --
-
- -- $FreeBSD: doc/share/sgml/catalog,v 1.9 2000/07/08 16:31:28 phantom Exp $
- --
-
-PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
- "freebsd.dsl"
-
diff --git a/de_DE.ISO8859-1/share/sgml/freebsd.dsl b/de_DE.ISO8859-1/share/sgml/freebsd.dsl
deleted file mode 100644
index 102db85acb..0000000000
--- a/de_DE.ISO8859-1/share/sgml/freebsd.dsl
+++ /dev/null
@@ -1,55 +0,0 @@
-<!-- $FreeBSDde: de-docproj/share/sgml/freebsd.dsl,v 1.4 2001/01/06 18:15:53 alex Exp $
- $FreeBSD: doc/de_DE.ISO_8859-1/share/sgml/freebsd.dsl,v 1.5 2001/04/01 13:59:08 alex Exp $ -->
-
-<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
-<!ENTITY freebsd.dsl PUBLIC "-//FreeBSD//DOCUMENT DocBook Language Neutral Stylesheet//EN" CDATA DSSSL>
-<!ENTITY % output.html "IGNORE">
-<!ENTITY % output.print "IGNORE">
-]>
-
-<style-sheet>
- <style-specification use="docbook">
- <style-specification-body>
-
- <![ %output.html; [
- (define ($email-footer$)
- (make sequence
- (make element gi: "p"
- attributes: (list (list "align" "center"))
- (make element gi: "small"
- (literal "Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine EMail an <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:de-bsd-questions@de.FreeBSD.org"))
- (literal "de-bsd-questions@de.FreeBSD.org"))
- (literal ">.")
- (make empty-element gi: "br")
- (literal "Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine Email an <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:de-bsd-translators@de.FreeBSD.org"))
- (literal "de-bsd-translators@de.FreeBSD.org"))
- (literal ">.")))))
-
-
- <!-- Convert " ... " to `` ... '' in the HTML output. -->
- (element quote
- (make sequence
- (literal "``")
- (process-children)
- (literal "''")))
-
- <!-- Generate links to HTML man pages -->
- (define %refentry-xref-link% #t)
-
- <!-- Specify how to generate the man page link HREF -->
- (define ($create-refentry-xref-link$ refentrytitle manvolnum)
- (string-append "http://www.de.FreeBSD.org/cgi/man.cgi?"
- refentrytitle
- "("
- manvolnum
- ")"))
- ]]>
- </style-specification-body>
- </style-specification>
-
- <external-specification id="docbook" document="freebsd.dsl">
-</style-sheet>
diff --git a/de_DE.ISO8859-1/share/sgml/legalnotice.sgml b/de_DE.ISO8859-1/share/sgml/legalnotice.sgml
deleted file mode 100644
index ecb8ba6cee..0000000000
--- a/de_DE.ISO8859-1/share/sgml/legalnotice.sgml
+++ /dev/null
@@ -1,44 +0,0 @@
-<!--
- Standard FreeBSD Documentation Project Legal Notice.
-
- $FreeBSD$
--->
-
-<legalnotice>
- <para>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:</para>
-
- <orderedlist>
- <listitem>
- <para>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.</para>
- </listitem>
-
- <listitem>
- <para>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.</para>
- </listitem>
- </orderedlist>
-
- <important>
- <para>THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION
- PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
- BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- THE FREEBSD DOCUMENTATION PROJECT 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.</para>
- </important>
-</legalnotice>
-
diff --git a/de_DE.ISO8859-1/share/sgml/translators.ent b/de_DE.ISO8859-1/share/sgml/translators.ent
deleted file mode 100644
index 17b905a350..0000000000
--- a/de_DE.ISO8859-1/share/sgml/translators.ent
+++ /dev/null
@@ -1,14 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD German Documentation Project
-
- Deutsche Übersetzer
- $FreeBSDde: de-docproj/share/sgml/translators.ent,v 1.4 2001/03/23 03:22:50 robert Exp $
- $FreeBSD$
--->
-
-<!ENTITY a.de.bwarken "Bernd Warken <email>bwarken@mayn.de</email>">
-<!ENTITY a.de.gruender "Frank Gr&uuml;nder <email>elwood@mc5sys.in-berlin.de</email>">
-<!ENTITY a.de.pierau "Uwe Pierau <email>uwe.pierau@tu-clausthal.de</email>">
-<!ENTITY a.de.robert "Robert Drehmel <email>robert@gizmo.quizbot.org</email>">
-<!ENTITY a.de.ue "Udo Erdelhoff <email>ue@nathan.ruhr.de</email>">
diff --git a/en/handbook/contrib/chapter.sgml b/en/handbook/contrib/chapter.sgml
deleted file mode 100644
index 9a41073467..0000000000
--- a/en/handbook/contrib/chapter.sgml
+++ /dev/null
@@ -1,5796 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $Id: chapter.sgml,v 1.92 2000-03-19 06:20:31 vanilla Exp $
--->
-
-<chapter id="contrib">
- <title>Contributing to FreeBSD</title>
-
- <para><emphasis>Contributed by &a.jkh;.</emphasis></para>
-
- <para>So you want to contribute something to FreeBSD? That is great! We can
- always use the help, and FreeBSD is one of those systems that
- <emphasis>relies</emphasis> on the contributions of its user base in order
- to survive. Your contributions are not only appreciated, they are vital
- to FreeBSD's continued growth!</para>
-
- <para>Contrary to what some people might also have you believe, you do not
- need to be a hot-shot programmer or a close personal friend of the FreeBSD
- core team in order to have your contributions accepted. The FreeBSD
- Project's development is done by a large and growing number of
- international contributors whose ages and areas of technical expertise
- vary greatly, and there is always more work to be done than there are
- people available to do it.</para>
-
- <para>Since the FreeBSD project is responsible for an entire operating
- system environment (and its installation) rather than just a kernel or a
- few scattered utilities, our <filename>TODO</filename> list also spans a
- very wide range of tasks, from documentation, beta testing and
- presentation to highly specialized types of kernel development. No matter
- what your skill level, there is almost certainly something you can do to
- help the project!</para>
-
- <para>Commercial entities engaged in FreeBSD-related enterprises are also
- encouraged to contact us. Need a special extension to make your product
- work? You will find us receptive to your requests, given that they are not
- too outlandish. Working on a value-added product? Please let us know! We
- may be able to work cooperatively on some aspect of it. The free software
- world is challenging a lot of existing assumptions about how software is
- developed, sold, and maintained throughout its life cycle, and we urge you
- to at least give it a second look.</para>
-
- <sect1>
- <title>What Is Needed</title>
-
- <para>The following list of tasks and sub-projects represents something of
- an amalgam of the various core team <filename>TODO</filename> lists and
- user requests we have collected over the last couple of months. Where
- possible, tasks have been ranked by degree of urgency. If you are
- interested in working on one of the tasks you see here, send mail to the
- coordinator listed by clicking on their names. If no coordinator has
- been appointed, maybe you would like to volunteer?</para>
-
- <sect2>
- <title>High priority tasks</title>
-
- <para>The following tasks are considered to be urgent, usually because
- they represent something that is badly broken or sorely needed:</para>
-
- <orderedlist>
- <listitem>
- <para>3-stage boot issues. Overall coordination: &a.hackers;</para>
-
- <itemizedlist>
- <listitem>
- <para>Do WinNT compatible drive tagging so that the 3rd stage
- can provide an accurate mapping of BIOS geometries for
- disks.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Filesystem problems. Overall coordination: &a.fs;</para>
-
- <itemizedlist>
- <listitem>
- <para>Fix the MSDOS file system.</para>
- </listitem>
-
- <listitem>
- <para>Clean up and document the nullfs filesystem code.
- Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Fix the union file system. Coordinator: &a.dg;</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Implement Int13 vm86 disk driver. Coordinator:
- &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>New bus architecture. Coordinator: &a.newbus;</para>
-
- <itemizedlist>
- <listitem>
- <para>Port existing ISA drivers to new architecture.</para>
- </listitem>
-
- <listitem>
- <para>Move all interrupt-management code to appropriate parts of
- the bus drivers.</para>
- </listitem>
-
- <listitem>
- <para>Port PCI subsystem to new architecture. Coordinator:
- &a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>Figure out the right way to handle removable devices and
- then use that as a substrate on which PC-Card and CardBus
- support can be implemented.</para>
- </listitem>
-
- <listitem>
- <para>Resolve the probe/attach priority issue once and for
- all.</para>
- </listitem>
-
- <listitem>
- <para>Move any remaining buses over to the new
- architecture.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Kernel issues. Overall coordination: &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>Add more pro-active security infrastructure. Overall
- coordination: &a.security;</para>
-
- <itemizedlist>
- <listitem>
- <para>Build something like Tripwire(TM) into the kernel, with a
- remote and local part. There are a number of cryptographic
- issues to getting this right; contact the coordinator for
- details. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Make the entire kernel use <literal>suser()</literal>
- instead of comparing to 0. It is presently using about half
- of each. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Split securelevels into different parts, to allow an
- administrator to throw away those privileges he can throw
- away. Setting the overall securelevel needs to have the same
- effect as now, obviously. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Make it possible to upload a list of &ldquo;allowed
- program&rdquo; to BPF, and then block BPF from accepting other
- programs. This would allow BPF to be used e.g. for DHCP,
- without allowing an attacker to start snooping the local
- network.</para>
- </listitem>
-
- <listitem>
- <para>Update the security checker script. We should at least
- grab all the checks from the other BSD derivatives, and add
- checks that a system with securelevel increased also have
- reasonable flags on the relevant parts. Coordinator:
- &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Add authorization infrastructure to the kernel, to allow
- different authorization policies. Part of this could be done
- by modifying <literal>suser()</literal>. Coordinator:
- &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Add code to the NFS layer so that you cannot
- <literal>chdir("..")</literal> out of an NFS partition. E.g.,
- <filename>/usr</filename> is a UFS partition with
- <filename>/usr/src</filename> NFS exported. Now it is
- possible to use the NFS filehandle for
- <filename>/usr/src</filename> to get access to
- <filename>/usr</filename>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Medium priority tasks</title>
-
- <para>The following tasks need to be done, but not with any particular
- urgency:</para>
-
- <orderedlist>
- <listitem>
- <para>Full KLD based driver support/Configuration Manager.</para>
-
- <itemizedlist>
- <listitem>
- <para>Write a configuration manager (in the 3rd stage boot?)
- that probes your hardware in a sane manner, keeps only the
- KLDs required for your hardware, etc.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>PCMCIA/PCCARD. Coordinators: &a.msmith; and &a.phk;</para>
-
- <itemizedlist>
- <listitem>
- <para>Documentation!</para>
- </listitem>
-
- <listitem>
- <para>Reliable operation of the pcic driver (needs
- testing).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>sio.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>ed.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>ep.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>User-mode recognizer and handler (partially done).</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Advanced Power Management. Coordinators: &a.msmith; and
- &a.phk;</para>
-
- <itemizedlist>
- <listitem>
- <para>APM sub-driver (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>IDE/ATA disk sub-driver (partially done).</para>
- </listitem>
-
- <listitem>
- <para>syscons/pcvt sub-driver.</para>
- </listitem>
-
- <listitem>
- <para>Integration with the PCMCIA/PCCARD drivers
- (suspend/resume).</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Low priority tasks</title>
-
- <para>The following tasks are purely cosmetic or represent such an
- investment of work that it is not likely that anyone will get them
- done anytime soon:</para>
-
- <para>The first N items are from Terry Lambert
- <email>terry@lambert.org</email></para>
-
- <orderedlist>
- <listitem>
- <para>NetWare Server (protected mode ODI driver) loader and
- subservices to allow the use of ODI card drivers supplied with
- network cards. The same thing for NDIS drivers and NetWare SCSI
- drivers.</para>
- </listitem>
-
- <listitem>
- <para>An "upgrade system" option that works on Linux boxes instead
- of just previous rev FreeBSD boxes.</para>
- </listitem>
-
- <listitem>
- <para>Symmetric Multiprocessing with kernel preemption (requires
- kernel preemption).</para>
- </listitem>
-
- <listitem>
- <para>A concerted effort at support for portable computers. This is
- somewhat handled by changing PCMCIA bridging rules and power
- management event handling. But there are things like detecting
- internal vs. external display and picking a different screen
- resolution based on that fact, not spinning down the disk if the
- machine is in dock, and allowing dock-based cards to disappear
- without affecting the machines ability to boot (same issue for
- PCMCIA).</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Smaller tasks</title>
-
- <para>Most of the tasks listed in the previous sections require either a
- considerable investment of time or an in-depth knowledge of the
- FreeBSD kernel (or both). However, there are also many useful tasks
- which are suitable for &quot;weekend hackers&quot;, or people without
- programming skills.</para>
-
- <orderedlist>
- <listitem>
- <para>If you run FreeBSD-current and have a good Internet
- connection, there is a machine <hostid
- role="fqdn">current.FreeBSD.org</hostid> which builds a full
- release once a day &mdash; every now and again, try and install
- the latest release from it and report any failures in the
- process.</para>
- </listitem>
-
- <listitem>
- <para>Read the freebsd-bugs mailing list. There might be a
- problem you can comment constructively on or with patches you
- can test. Or you could even try to fix one of the problems
- yourself.</para>
- </listitem>
-
- <listitem>
- <para>Read through the FAQ and Handbook periodically. If anything
- is badly explained, out of date or even just completely wrong, let
- us know. Even better, send us a fix (SGML is not difficult to
- learn, but there is no objection to ASCII submissions).</para>
- </listitem>
-
- <listitem>
- <para>Help translate FreeBSD documentation into your native language
- (if not already available) &mdash; just send an email to &a.doc;
- asking if anyone is working on it. Note that you are not
- committing yourself to translating every single FreeBSD document
- by doing this &mdash; in fact, the documentation most in need of
- translation is the installation instructions.</para>
- </listitem>
-
- <listitem>
- <para>Read the freebsd-questions mailing list and &ng.misc
- occasionally (or even regularly). It can be very satisfying to
- share your expertise and help people solve their problems;
- sometimes you may even learn something new yourself! These forums
- can also be a source of ideas for things to work on.</para>
- </listitem>
-
- <listitem>
- <para>If you know of any bugfixes which have been successfully
- applied to -current but have not been merged into -stable after a
- decent interval (normally a couple of weeks), send the committer a
- polite reminder.</para>
- </listitem>
-
- <listitem>
- <para>Move contributed software to <filename>src/contrib</filename>
- in the source tree.</para>
- </listitem>
-
- <listitem>
- <para>Make sure code in <filename>src/contrib</filename> is up to
- date.</para>
- </listitem>
-
- <listitem>
- <para>Look for year 2000 bugs (and fix any you find!)</para>
- </listitem>
-
- <listitem>
- <para>Build the source tree (or just part of it) with extra warnings
- enabled and clean up the warnings.</para>
- </listitem>
-
- <listitem>
- <para>Fix warnings for ports which do deprecated things like using
- gets() or including malloc.h.</para>
- </listitem>
-
- <listitem>
- <para>If you have contributed any ports, send your patches back to
- the original author (this will make your life easier when they
- bring out the next version)</para>
- </listitem>
-
- <listitem>
- <para>Suggest further tasks for this list!</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Work through the PR database</title>
-
- <para>The <ulink
- url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD PR
- list</ulink> shows all the current active problem reports and
- requests for enhancement that have been submitted by FreeBSD users.
- Look through the open PRs, and see if anything there takes your
- interest. Some of these might be very simple tasks, that just need an
- extra pair of eyes to look over them and confirm that the fix in the
- PR is a good one. Others might be much more complex.</para>
-
- <para>Start with the PRs that have not been assigned to anyone else, but
- if one them is assigned to someone else, but it looks like something
- you can handle, e-mail the person it is assigned to and ask if you can
- work on it&mdash;they might already have a patch ready to be tested,
- or further ideas that you can discuss with them.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>How to Contribute</title>
-
- <para>Contributions to the system generally fall into one or more of the
- following 6 categories:</para>
-
- <sect2 id="contrib-general">
- <title>Bug reports and general commentary</title>
-
- <para>An idea or suggestion of <emphasis>general</emphasis> technical
- interest should be mailed to the &a.hackers;. Likewise, people with
- an interest in such things (and a tolerance for a
- <emphasis>high</emphasis> volume of mail!) may subscribe to the
- hackers mailing list by sending mail to &a.majordomo;. See <link
- linkend="eresources-mail">mailing lists</link> for more information
- about this and other mailing lists.</para>
-
- <para>If you find a bug or are submitting a specific change, please
- report it using the &man.send-pr.1; program or its <ulink
- URL="http://www.FreeBSD.org/send-pr.html">WEB-based
- equivalent</ulink>. Try to fill-in each field of the bug report.
- Unless they exceed 65KB, include any patches directly in the report.
- When including patches, <emphasis>do not</emphasis> use cut-and-paste
- because cut-and-paste turns tabs into spaces and makes them unusable.
- Consider compressing patches and using &man.uuencode.1; if they exceed
- 20KB. Upload very large submissions to <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink>.</para>
-
- <para>After filing a report, you should receive confirmation along with
- a tracking number. Keep this tracking number so that you can update
- us with details about the problem by sending mail to
- <email>bug-followup@FreeBSD.org</email>. Use the number as the
- message subject, e.g. <literal>"Re: kern/3377"</literal>. Additional
- information for any bug report should be submitted this way.</para>
-
- <para>If you do not receive confirmation in a timely fashion (3 days to
- a week, depending on your email connection) or are, for some reason,
- unable to use the &man.send-pr.1; command, then you may ask
- someone to file it for you by sending mail to the &a.bugs;.</para>
- </sect2>
-
- <sect2>
- <title>Changes to the documentation</title>
-
- <para>Changes to the documentation are overseen by the &a.doc;. Send
- submissions and changes (even small ones are welcome!) using
- <command>send-pr</command> as described in <link
- linkend="contrib-general">Bug Reports and General
- Commentary</link>.</para>
- </sect2>
-
- <sect2>
- <title>Changes to existing source code</title>
-
- <para>An addition or change to the existing source code is a somewhat
- trickier affair and depends a lot on how far out of date you are with
- the current state of the core FreeBSD development. There is a special
- on-going release of FreeBSD known as &ldquo;FreeBSD-current&rdquo;
- which is made available in a variety of ways for the convenience of
- developers working actively on the system. See <link
- linkend="current">Staying current with FreeBSD</link> for more
- information about getting and using FreeBSD-current.</para>
-
- <para>Working from older sources unfortunately means that your changes
- may sometimes be too obsolete or too divergent for easy re-integration
- into FreeBSD. Chances of this can be minimized somewhat by
- subscribing to the &a.announce; and the &a.current; lists, where
- discussions on the current state of the system take place.</para>
-
- <para>Assuming that you can manage to secure fairly up-to-date sources
- to base your changes on, the next step is to produce a set of diffs to
- send to the FreeBSD maintainers. This is done with the &man.diff.1;
- command, with the &ldquo;context diff&rdquo; form
- being preferred. For example:</para>
-
- <para>
- <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
-
- or
-
- <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
-
- would generate such a set of context diffs for the given source file
- or directory hierarchy. See the man page for &man.diff.1; for more
- details.</para>
-
- <para>Once you have a set of diffs (which you may test with the
- &man.patch.1; command), you should submit them for inclusion with
- FreeBSD. Use the &man.send-pr.1; program as described in <link
- linkend="contrib-general">Bug Reports and General Commentary</link>.
- <emphasis>Do not</emphasis> just send the diffs to the &a.hackers; or
- they will get lost! We greatly appreciate your submission (this is a
- volunteer project!); because we are busy, we may not be able to
- address it immediately, but it will remain in the pr database until we
- do.</para>
-
- <para>If you feel it appropriate (e.g. you have added, deleted, or
- renamed files), bundle your changes into a <command>tar</command> file
- and run the &man.uuencode.1; program on it. Shar archives are also
- welcome.</para>
-
- <para>If your change is of a potentially sensitive nature, e.g. you are
- unsure of copyright issues governing its further distribution or you
- are simply not ready to release it without a tighter review first,
- then you should send it to &a.core; directly rather than submitting it
- with &man.send-pr.1;. The core mailing list reaches a much smaller
- group of people who do much of the day-to-day work on FreeBSD. Note
- that this group is also <emphasis>very busy</emphasis> and so you
- should only send mail to them where it is truly necessary.</para>
-
- <para>Please refer to <command>man 9 intro</command> and <command>man 9
- style</command> for some information on coding style. We would
- appreciate it if you were at least aware of this information before
- submitting code.</para>
- </sect2>
-
- <sect2>
- <title>New code or major value-added packages</title>
-
- <para>In the rare case of a significant contribution of a large body
- work, or the addition of an important new feature to FreeBSD, it
- becomes almost always necessary to either send changes as uuencode'd
- tar files or upload them to our ftp site <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming">ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming</ulink>.</para>
-
- <para>When working with large amounts of code, the touchy subject of
- copyrights also invariably comes up. Acceptable copyrights for code
- included in FreeBSD are:</para>
-
- <orderedlist>
- <listitem>
- <para>The BSD copyright. This copyright is most preferred due to
- its &ldquo;no strings attached&rdquo; nature and general
- attractiveness to commercial enterprises. Far from discouraging
- such commercial use, the FreeBSD Project actively encourages such
- participation by commercial interests who might eventually be
- inclined to invest something of their own into FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>The GNU Public License, or &ldquo;GPL&rdquo;. This license is
- not quite as popular with us due to the amount of extra effort
- demanded of anyone using the code for commercial purposes, but
- given the sheer quantity of GPL'd code we currently require
- (compiler, assembler, text formatter, etc) it would be silly to
- refuse additional contributions under this license. Code under
- the GPL also goes into a different part of the tree, that being
- <filename>/sys/gnu</filename> or
- <filename>/usr/src/gnu</filename>, and is therefore easily
- identifiable to anyone for whom the GPL presents a problem.</para>
- </listitem>
- </orderedlist>
-
- <para>Contributions coming under any other type of copyright must be
- carefully reviewed before their inclusion into FreeBSD will be
- considered. Contributions for which particularly restrictive
- commercial copyrights apply are generally rejected, though the authors
- are always encouraged to make such changes available through their own
- channels.</para>
-
- <para>To place a &ldquo;BSD-style&rdquo; copyright on your work, include
- the following text at the very beginning of every source code file you
- wish to protect, replacing the text between the <literal>%%</literal>
- with the appropriate information.</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>For your convenience, a copy of this text can be found in
- <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para>
- </sect2>
-
- <sect2>
- <title>Money, Hardware or Internet access</title>
-
- <para>We are always very happy to accept donations to further the cause
- of the FreeBSD Project and, in a volunteer effort like ours, a little
- can go a long way! Donations of hardware are also very important to
- expanding our list of supported peripherals since we generally lack
- the funds to buy such items ourselves.</para>
-
- <sect3>
- <title><anchor id="donations">Donating funds</title>
-
- <para>While the FreeBSD Project is not a 501(c)(3) (charitable)
- corporation and hence cannot offer special tax incentives for any
- donations made, any such donations will be gratefully accepted on
- behalf of the project by FreeBSD, Inc.</para>
-
- <para>FreeBSD, Inc. was founded in early 1995 by &a.jkh; and &a.dg;
- with the goal of furthering the aims of the FreeBSD Project and
- giving it a minimal corporate presence. Any and all funds donated
- (as well as any profits that may eventually be realized by FreeBSD,
- Inc.) will be used exclusively to further the project's
- goals.</para>
-
- <para>Please make any checks payable to FreeBSD, Inc., sent in care of
- the following address:</para>
-
- <address>
- <otheraddr>FreeBSD, Inc.</otheraddr>
- <otheraddr>c/o Jordan Hubbard</otheraddr>
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>
- <state>CA</state>, <postcode>94520</postcode>
- </address>
-
- <para>(currently using the Walnut Creek CDROM address until a PO box
- can be opened)</para>
-
- <para>Wire transfers may also be sent directly to:</para>
-
- <address>
- <otheraddr>Bank Of America</otheraddr>
- <otheraddr>Concord Main Office</otheraddr>
- <pob>P.O. Box 37176</pob>
- <city>San Francisco</city>
- <state>CA</state>, <postcode>94137-5176</postcode>
-
- <otheraddr>Routing #: 121-000-358</otheraddr>
- <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr>
- </address>
-
- <para>Any correspondence related to donations should be sent to &a.jkh,
- either via email or to the FreeBSD, Inc. postal address given above.
- </para>
-
- <para>If you do not wish to be listed in our <link
- linkend="donors">donors</link> section, please specify this when
- making your donation. Thanks!</para>
- </sect3>
-
- <sect3>
- <title>Donating hardware</title>
-
- <para>Donations of hardware in any of the 3 following categories are
- also gladly accepted by the FreeBSD Project:</para>
-
- <itemizedlist>
- <listitem>
- <para>General purpose hardware such as disk drives, memory or
- complete systems should be sent to the FreeBSD, Inc. address
- listed in the <emphasis>donating funds</emphasis>
- section.</para>
- </listitem>
-
- <listitem>
- <para>Hardware for which ongoing compliance testing is desired.
- We are currently trying to put together a testing lab of all
- components that FreeBSD supports so that proper regression
- testing can be done with each new release. We are still lacking
- many important pieces (network cards, motherboards, etc) and if
- you would like to make such a donation, please contact &a.dg;
- for information on which items are still required.</para>
- </listitem>
-
- <listitem>
- <para>Hardware currently unsupported by FreeBSD for which you
- would like to see such support added. Please contact the
- &a.core; before sending such items as we will need to find a
- developer willing to take on the task before we can accept
- delivery of new hardware.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Donating Internet access</title>
-
- <para>We can always use new mirror sites for FTP, WWW or
- <command>cvsup</command>. If you would like to be such a mirror,
- please contact the FreeBSD project administrators
- <email>admin@FreeBSD.org</email> for more information.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="donors">
- <title>Donors Gallery</title>
-
- <para>The FreeBSD Project is indebted to the following donors and would
- like to publically thank them here!</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Contributors to the central server
- project:</emphasis></para>
-
- <para>The following individuals and businesses made it possible for
- the FreeBSD Project to build a new central server machine to
- eventually replace <hostid role="fqdn">freefall.FreeBSD.org</hostid>
- by donating the following items:</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.mbarkah and his employer, <ulink URL="http://www.hemi.com">
- Hemisphere Online</ulink>, donated a <emphasis>Pentium Pro
- (P6) 200Mhz CPU</emphasis></para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.asacomputers.com">ASA
- Computers</ulink> donated a <emphasis>Tyan 1662
- motherboard</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Joe McGuckin <email>joe@via.net</email> of <ulink
- URL="http://www.via.net">ViaNet Communications</ulink> donated
- a <emphasis>Kingston ethernet controller.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email>
- donated an <emphasis>NCR 53C875 SCSI controller
- card</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Ulf Zimmermann <email>ulf@Alameda.net</email> of <ulink
- URL="http://www.Alameda.net">Alameda Networks</ulink> donated
- <emphasis>128MB of memory</emphasis>, a <emphasis>4 Gb disk
- drive and the case.</emphasis></para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Direct funding:</emphasis></para>
-
- <para>The following individuals and businesses have generously
- contributed direct funding to the project:</para>
-
- <itemizedlist>
- <listitem>
- <para>Annelise Anderson
- <email>ANDRSN@HOOVER.STANFORD.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>&a.dillon</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.epilogue.com/">Epilogue Technology
- Corporation</ulink></para>
- </listitem>
-
- <listitem>
- <para>&a.sef</para>
- </listitem>
-
- <listitem>
- <para>Don Scott Wilde</para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@masternet.it</email></para>
- </listitem>
-
- <listitem>
- <para>Josef C. Grosch <email>joeg@truenorth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Robert T. Morris</para>
- </listitem>
-
- <listitem>
- <para>&a.chuckr</para>
- </listitem>
-
- <listitem>
- <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> of
- <ulink URL="http://www.imagescape.com">Imaginary Landscape,
- LLC.</ulink></para>
- </listitem>
-
- <listitem>
- <para>Dmitry S. Kohmanyuk <email>dk@dog.farm.org</email></para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.cdrom.co.jp/">Laser5</ulink> of Japan
- (a portion of the profits from sales of their various FreeBSD
- CD-ROMs.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.mmjp.or.jp/fuki/">Fuki Shuppan
- Publishing Co.</ulink> donated a portion of their profits from
- <emphasis>Hajimete no FreeBSD</emphasis> (FreeBSD, Getting
- started) to the FreeBSD and XFree86 projects.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.ascii.co.jp/">ASCII Corp.</ulink>
- donated a portion of their profits from several FreeBSD-related
- books to the FreeBSD project.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.yokogawa.co.jp/">Yokogawa Electric
- Corp</ulink> has generously donated significant funding to the
- FreeBSD project.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.buffnet.net/">BuffNET</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.pacificsolutions.com/">Pacific
- Solutions</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.siemens.de/">Siemens AG</ulink>
- via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre
- Albsmeier</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink>
- </para>
- </listitem>
-
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Hardware contributors:</emphasis></para>
-
- <para>The following individuals and businesses have generously
- contributed hardware for testing and device driver
- development/support:</para>
-
- <itemizedlist>
- <listitem>
- <para>Walnut Creek CDROM for providing the Pentium P5-90 and
- 486/DX2-66 EISA/VL systems that are being used for our
- development work, to say nothing of the network access and other
- donations of hardware resources.</para>
- </listitem>
-
- <listitem>
- <para>TRW Financial Systems, Inc. provided 130 PCs, three 68 GB
- fileservers, twelve Ethernets, two routers and an ATM switch for
- debugging the diskless code.</para>
- </listitem>
-
- <listitem>
- <para>Dermot McDonnell donated the Toshiba XM3401B CDROM drive
- currently used in freefall.</para>
- </listitem>
-
- <listitem>
- <para>&a.chuck; contributed his floppy tape streamer for
- experimental work.</para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email>, and &a.wilko;,
- provided Wangtek and Archive QIC-02 tape drives in order to
- improve the <devicename>wt</devicename> driver.</para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email> contributed
- a 2.88 MB floppy drive to the project. This will hopefully
- increase the pressure for rewriting the floppy disk driver.
- <!-- smiley -->;-)</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.tekram.com">Tekram
- Technologies</ulink> sent one each of their DC-390, DC-390U
- and DC-390F FAST and ULTRA SCSI host adapter cards for
- regression testing of the NCR and AMD drivers with their cards.
- They are also to be applauded for making driver sources for free
- operating systems available from their FTP server <ulink
- URL="ftp://ftp.tekram.com/scsi/FreeBSD">ftp://ftp.tekram.com/scsi/FreeBSD</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><email>Larry M. Augustin</email> contributed not only a
- Symbios Sym8751S SCSI card, but also a set of data books,
- including one about the forthcoming Sym53c895 chip with Ultra-2
- and LVD support, and the latest programming manual with
- information on how to safely use the advanced features of the
- latest Symbios SCSI chips. Thanks a lot!</para>
- </listitem>
-
- <listitem>
- <para>Christoph Kukulies <email>kuku@FreeBSD.org</email> donated
- an FX120 12 speed Mitsumi CDROM drive for IDE CDROM driver
- development.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Special contributors:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.cdrom.com">Walnut Creek CDROM</ulink>
- has donated almost more than we can say (see the <link
- linkend="history">history</link> document for more details).
- In particular, we would like to thank them for the original
- hardware used for <hostid
- role="fqdn">freefall.FreeBSD.org</hostid>, our primary
- development machine, and for <hostid
- role="fqdn">thud.FreeBSD.org</hostid>, a testing and build
- box. We are also indebted to them for funding various
- contributors over the years and providing us with unrestricted
- use of their T1 connection to the Internet.</para>
- </listitem>
-
- <listitem>
- <para>The <ulink URL="http://www.interface-business.de">interface
- business GmbH, Dresden</ulink> has been patiently supporting
- &a.joerg; who has often preferred FreeBSD work over paywork, and
- used to fall back to their (quite expensive) EUnet Internet
- connection whenever his private connection became too slow or
- flakey to work with it...</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.bsdi.com">Berkeley Software Design,
- Inc.</ulink> has contributed their DOS emulator code to the
- remaining BSD world, which is used in the
- <emphasis>doscmd</emphasis> command.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Core Team Alumni</title>
-
- <para>The following people were members of the FreeBSD core team during
- the periods indicated. We thank them for their past efforts in the
- service of the FreeBSD project.</para>
-
- <para><emphasis>In rough chronological order:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>&a.guido (1995 - 1999)</para>
- </listitem>
-
- <listitem>
- <para>&a.dyson (1993 - 1998)</para>
- </listitem>
-
- <listitem>
- <para>&a.nate (1992 - 1996)</para>
- </listitem>
-
- <listitem>
- <para>&a.rgrimes (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.csgr (1993 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.paul (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.smace (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>J. T. Conklin (1992 - 1993)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Derived Software Contributors</title>
-
- <para>This software was originally derived from William F. Jolitz's 386BSD
- release 0.1, though almost none of the original 386BSD specific code
- remains. This software has been essentially re-implemented from the
- 4.4BSD-Lite release provided by the Computer Science Research Group
- (CSRG) at the University of California, Berkeley and associated academic
- contributors.</para>
-
- <para>There are also portions of NetBSD and OpenBSD that have been
- integrated into FreeBSD as well, and we would therefore like to thank
- all the contributors to NetBSD and OpenBSD for their work.</para>
- </sect1>
-
- <sect1 id="contrib-additional">
- <title>Additional FreeBSD Contributors</title>
-
- <para>(in alphabetical order by first name):</para>
-
- <itemizedlist>
- <listitem>
- <para>ABURAYA Ryushirou <email>rewsirow@ff.iij4u.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>AMAGAI Yoshiji <email>amagai@nue.org</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Bornstein <email>aaronb@j51.com</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Smith <email>aaron@mutex.org</email></para>
- </listitem>
-
- <listitem>
- <para>Achim Patzner <email>ap@noses.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ada T Lim <email>ada@bsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Baran <email>badam@mw.mil.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam McDougall <email>mcdouga9@egr.msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Colley <email>aecolley@ois.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>adrian@ibmpcug.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Mariano <email>adrian@cam.cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Steinmann <email>ast@marabu.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Strohl <email>troll@digitalspark.net</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian T. Filipi-Martin
- <email>atf3r@agate.cs.virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ajit Thyagarajan <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akio Morita
- <email>amorita@meadow.scphys.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akira SAWADA <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akira Watanabe
- <email>akira@myaw.ei.meisei-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akito Fujita <email>fujita@zoo.ncl.omron.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Alain Kalker
- <email>A.C.P.M.Kalker@student.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Alan Bawden <email>alan@curry.epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alec Wolman <email>wolman@cs.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Aled Morris <email>aledm@routers.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Alex <email>garbanzo@hooked.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alex D. Chen
- <email>dhchen@Canvas.dorm7.nccu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Alex G. Bulushev <email>bag@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Le Heux <email>alexlh@funk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Perel <email>veers@disturbed.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Leidinger
- <email>netchild@wurzelausix.CS.Uni-SB.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Langer <email>alex@cichlids.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alexandre Snarskii <email>snar@paranoia.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alistair G. Crooks <email>agc@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Saddi <email>asaddi@philosophysw.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allen Campbell <email>allenc@verinet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amakawa Shuhei <email>amakawa@hoh.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Amancio Hasty <email>hasty@star-gate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amir Farah <email>amir@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amy Baron <email>amee@beer.org</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly A. Orehovsky <email>tolik@mpeks.tomsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly Vorobey <email>mellon@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Nordby <email>nickerne@nome.no</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Thulin <email>Anders.X.Thulin@telia.se</email></para>
- </listitem>
-
- <listitem>
- <para>Andras Olah <email>olah@cs.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Albsmeier
- <email>Andre.Albsmeier@mchp.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Oppermann <email>andre@pipeline.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Haakh <email>ah@alman.robin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Kohout <email>shanee@rabbit.augusta.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Lohr <email>andreas@marvin.RoBIN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wetzel <email>mickey@deadline.snafu.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wrede <email>andreas@planix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andres Vega Garcia <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Atrens <email>atreand@statcan.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Boothman <email>andrew@cream.org</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gillham <email>gillham@andrews.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gordon <email>andrew.gordon@net-tel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew J. Korty <email>ajk@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Moore <email>alm@mclink.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew McRae <email>amcrae@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Stevenson <email>andrew@ugh.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Timonin <email>tim@pool1.convey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew V. Stesin <email>stesin@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Webster <email>awebster@dataradio.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Zakhvatov <email>andy@icc.surw.chel.su</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Farkas <email>andyf@speednet.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Whitcroft <email>andy@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Angelo Turetta <email>ATuretta@stylo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony C. Chavez <email>magus@xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony Yee-Hang Chan <email>yeehang@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Berezin <email>tobez@plab.ku.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Antti Kaipila <email>anttik@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Are Bryne <email>are.bryne@communique.no</email></para>
- </listitem>
-
- <listitem>
- <para>Ari Suutari <email>ari@suutari.iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Arjan de Vet <email>devet@IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Assar Westerlund <email>assar@sics.se</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Furuta <email>furuta@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Murai <email>amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Bierbauch <email>pivrnec@vszbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Hutchinson <email>benhutch@xfiles.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Jackson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Smithurst <email>ben@scientia.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Walter <email>bwalter@itachi.swcp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Benjamin Lewis <email>bhlewis@gte.net</email></para>
- </listitem>
-
- <listitem>
- <para>Bernd Rosauer <email>br@schiele-ct.de</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Kish <email>kish@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Trost <email>trost@cloud.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Blaz Zupan <email>blaz@amis.net</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Van Valzah <email>Bob@whitebarn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Willcox <email>bob@luke.pmr.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boris Staeblow <email>balu@dva.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Karp <email>karp@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Bradley Dunn <email>bradley@dunn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Fosdick <email>bfoz@glue.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para>
- </listitem>
-
- <listitem>
- <para>&a.wlloyd</para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd Faulkner <email>faulkner@mpd.tandem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brent J. Nordquist <email>bjn@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Taylor
- <email>brett@peloton.physics.montana.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Campbell <email>brianc@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Clapper <email>bmc@willscreek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Cully <email>shmit@kublai.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Handy
- <email>handy@lambic.space.lockheed.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Litzinger <email>brian@MediaCity.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian McGovern <email>bmcgover@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Moore <email>ziff@houdini.eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian R. Haug <email>haug@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Tao <email>taob@risc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brion Moss <email>brion@queeg.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce A. Mah <email>bmah@ca.sandia.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Albrecht <email>bruce@zuhause.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Gingery <email>bgingery@gtcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce J. Keeler <email>loodvrij@gridpoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Murphy <email>packrat@iinet.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Walter <email>walter@fortean.com</email></para>
- </listitem>
-
- <listitem>
- <para>Carey Jones <email>mcj@acquiesce.org</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Fongheiser <email>cmf@netins.net</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Mascott <email>cmascott@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Casper <email>casper@acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Castor Fu <email>castor@geocast.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cejka Rudolf <email>cejkar@dcse.fee.vutbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Chain Lee <email>chain@110.net</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Henrich <email>henrich@msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Mott <email>cmott@srv.net</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Owens <email>owensc@enc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chet Ramey <email>chet@odin.INS.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chia-liang Kao <email>clkao@CirX.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Chiharu Shibata <email>chi@bd.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Chip Norkus <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Choi Jun Ho <email>junker@jazz.snu.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Csanady <email>cc@tarsier.ca.sandia.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dabrowski <email>chris@vader.org</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dillon <email>cdillon@wolves.k12.mo.us</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Shenton
- <email>cshenton@angst.it.hq.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Stenton <email>jacs@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Timmons <email>skynyrd@opus.cts.cwu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Gusenbauer
- <email>cg@fimp01.fim.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Haury <email>Christian.Haury@sagem.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Weisgerber
- <email>naddy@bigeye.rhein-neckar.de</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph P. Kukulies <email>kuku@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Weber-Fahr
- <email>wefa@callcenter.systemhaus.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher T. Johnson
- <email>cjohnson@neunacht.netgsi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chrisy Luke <email>chrisy@flix.net</email></para>
- </listitem>
-
- <listitem>
- <para>Chuck Hein <email>chein@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Clive Lin <email>clive@CiRX.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Colman Reilly <email>careilly@tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Conrad Sabatier <email>conrads@neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Coranth Gryphon <email>gryphon@healer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cornelis van der Laan
- <email>nils@guru.ims.uni-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Cove Schneider <email>cove@brazil.nbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Leres <email>leres@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Loomis <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Metz <email>cmetz@inner.net</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Spannring <email>cts@internetcds.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Struble <email>cstruble@vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Cristian Ferretti <email>cfs@riemann.mat.puc.cl</email></para>
- </listitem>
-
- <listitem>
- <para>Curt Mayer <email>curt@toad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cy Schubert <email>cschuber@uumail.gov.bc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>DI. Christian Gusenbauer
- <email>cg@scotty.edvz.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Damian Hamill <email>damian@cablenet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Cross <email>tenser@spitfire.ecsel.psu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Lukes <email>dan@obluda.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Nelson <email>dnelson@emsphone.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Walters <email>hannibal@cyberstation.net</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel M. Eischen
- <email>deischen@iworks.InterWorks.org</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel O'Connor <email>doconnor@gsoft.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Rock <email>rock@cs.uni-sb.de</email></para>
- </listitem>
-
- <listitem>
- <para>Danny Egen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Danny J. Zerkel <email>dzerkel@phofarm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Darren Reed <email>avalon@coombs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Andersen <email>angio@aros.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Blizzard <email>dblizzar@sprynet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Bodenstab <email>imdave@synet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Chapeskie <email>dchapes@ddm.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Cornejo <email>dave@dogwood.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Edmondson <email>davided@sco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Glowacki <email>dglo@ssec.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Marquardt <email>marquard@austin.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Tweten <email>tweten@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Bader <email>dbader@umiacs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Borman <email>dab@bsdi.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@XFree86.org</email></para>
- </listitem>
-
- <listitem>
- <para>David Filo <email>filo@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Holland <email>dholland@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Holloway <email>daveh@gwythaint.tamis.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Horwitt <email>dhorwitt@ucsd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Hovemeyer <email>daveho@infocom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Jones <email>dej@qpoint.torfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Kelly <email>dkelly@tomcat1.tbe.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Kulp <email>dkulp@neomorphic.com</email></para>
- </listitem>
-
- <listitem>
- <para>David L. Nugent <email>davidn@blaze.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Leonard <email>d@scry.dstc.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Malone <email>dwmalone@maths.tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>David Muir Sharnoff <email>muir@idiom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David S. Miller <email>davem@jenolan.rutgers.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Wolfskill <email>dhw@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Gaudet <email>dgaudet@arctic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Huxley <email>dean@fsa.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Fortin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Dennis Glatting
- <email>dennis.glatting@software-munitions.com</email></para>
- </listitem>
-
- <listitem>
- <para>Denton Gentry <email>denny1@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>Derek Inksetter <email>derek@saidev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dima Sivachenko <email>dima@Chg.RU</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Keunecke <email>dk@panda.rhein-main.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Nehrling <email>nerle@pdv.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Khrustalev <email>dima@xyzzy.machaon.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Kohmanyuk <email>dk@farm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dom Mitchell <email>dom@myrddin.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Dominik Brettnacher <email>domi@saargate.de</email></para>
- </listitem>
-
- <listitem>
- <para>Don Croyle <email>croyle@gelemna.ft-wayne.in.us</email></para>
- </listitem>
-
- <listitem>
- <para>&a.whiteside;</para>
- </listitem>
-
- <listitem>
- <para>Don Morrison <email>dmorrisn@u.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Don Yuniskis <email>dgy@rtd.com</email></para>
- </listitem>
-
- <listitem>
- <para>Donald Maddox <email>dmaddox@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Doug Barton <email>studded@dal.net</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Ambrisko <email>ambrisko@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Carmichael <email>dcarmich@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Crosher <email>dtc@scrooge.ee.swin.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Drew Derbyshire <email>ahd@kew.com</email></para>
- </listitem>
-
- <listitem>
- <para>Duncan Barclay <email>dmlb@ragnet.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Dustin Sallings <email>dustin@spy.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eckart "Isegrim" Hofmann
- <email>Isegrim@Wunder-Nett.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Gold
- <email>vegold01@starbase.spd.louisville.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Hudson <email>elh@p5.spnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Wang <email>edward@edcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Groothus <email>edwin@nwm.wan.philips.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eiji-usagi-MATSUmoto <email>usagi@clave.gr.jp</email></para>
- </listitem>
-
- <listitem>
- <para>ELISA Font Project</para>
- </listitem>
-
- <listitem>
- <para>Elmar Bartel
- <email>bartel@informatik.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eric A. Griff <email>eagriff@global2000.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Blood <email>eblood@cs.unr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Schwertfeger <email>eric@cybernut.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric L. Hernes <email>erich@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric P. Scott <email>eps@sirius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Sprinkle <email>eric@ennovatenetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Stefan Boleyn <email>erich@uruk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Erik E. Rantapaa <email>rantapaa@math.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Moe <email>ehm@cris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email></para>
- </listitem>
-
- <listitem>
- <para>Espen Skoglund <email>espensk@stud.cs.uit.no></email></para>
- </listitem>
-
- <listitem>
- <para>Eugene M. Kim <email>astralblue@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene Radchenko <email>genie@qsar.chem.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Evan Champion <email>evanc@synapse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Faried Nawaz <email>fn@Hungry.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Flemming Jacobsen <email>fj@tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fong-Ching Liaw <email>fong@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Francis M J Hsieh <email>mjshieh@life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Bartels <email>knarf@camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Chen Hsiung Chan
- <email>frankch@waru.life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Durda IV <email>uhclem@nemesis.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Frank MacLachlan <email>fpm@n2.net</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Mayhar <email>frank@exit.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Nobis <email>fn@Radio-do.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Volf <email>volf@oasis.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank ten Wolde <email>franky@pinewood.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank van der Linden <email>frank@fwi.uva.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Cawthorne <email>fcawth@jjarray.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Gilham <email>gilham@csl.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Templin <email>templin@erg.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frederick Earl Gray <email>fgray@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>FUJIMOTO Kensaku
- <email>fujimoto@oscar.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>FUJISHIMA Satsuki <email>k5@respo.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>FURUSAWA Kazuhisa
- <email>furusawa@com.cs.osakafu-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Kincses <email>gabor@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Zahemszky <email>zgabor@CoDe.hu</email></para>
- </listitem>
-
- <listitem>
- <para>G. Adam Stanislav<email>adam@whizkidtech.net</email></para>
- </listitem>
-
- <listitem>
- <para>Garance A Drosehn <email>gad@eclipse.its.rpi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Gareth McCaughan <email>gjm11@dpmms.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary J. <email>garyj@rks32.pcs.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Kline <email>kline@thought.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gaspar Chilingarov <email>nightmar@lemming.acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Gea-Suan Lin <email>gsl@tpts4.seed.net.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Georg Wagner <email>georg.wagner@ubs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gerard Roudier <email>groudier@club-internet.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@giovannelli.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gil Kloepfer Jr. <email>gil@limbic.ssdl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gilad Rom <email>rom_glsa@ein-hashofet.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>Ginga Kawaguti
- <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Giles Lean <email>giles@nemeton.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Glen Foster <email>gfoster@gfoster.com</email></para>
- </listitem>
-
- <listitem>
- <para>Glenn Johnson <email>gljohns@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>Godmar Back <email>gback@facility.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Gord Matzigkeit <email>gord@enci.ucalgary.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Gordon Greeff <email>gvg@uunet.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Graham Wheeler <email>gram@cdsec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg A. Woods <email>woods@zeus.leitch.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ansley <email>gja@ansley.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Troxel <email>gdt@ir.bbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ungerer <email>gerg@stallion.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory Bond <email>gnb@itga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory D. Moncreaff
- <email>moncrg@bt340707.res.ray.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@netapp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Helmer <email>ghelmer@cs.iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>HAMADA Naoki <email>hamada@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>HONDA Yasuhiro
- <email>honda@kashio.info.mie-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hannu Savolainen <email>hannu@voxware.pp.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Huebner <email>hans@artcom.de</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Petter Bieker <email>zerium@webindex.no</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Zuidam <email>hans@brandinnovators.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harlan Stenn <email>Harlan.Stenn@pfcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harold Barker <email>hbarker@dsms.com</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Heikki Suonsivu <email>hsu@cs.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Heiko W. Rupp <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Helmut F. Wirth <email>hfwirth@ping.at</email></para>
- </listitem>
-
- <listitem>
- <para>Henrik Vestergaard Draboel
- <email>hvd@terry.ping.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideaki Ohmon <email>ohmon@tom.sfc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hidekazu Kuroki <email>hidekazu@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hideki Yamamoto <email>hyama@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideyuki Suzuki
- <email>hideyuki@sat.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hirayama Issei <email>iss@mail.wbs.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroaki Sakai <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroharu Tamaru <email>tamaru@ap.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hironori Ikura <email>hikura@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroshi Nishikawa <email>nis@pluto.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroya Tsubakimoto <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holm Tiffe <email>holm@geophysik.tu-freiberg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Horance Chou
- <email>horance@freedom.ie.cycu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Horihiro Kumagai <email>kuma@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>HOTARU-YA <email>hotaru@tail.net</email></para>
- </listitem>
-
- <listitem>
- <para>Hr.Ladavac <email>lada@ws2301.gud.siemens.co.at</email></para>
- </listitem>
-
- <listitem>
- <para>Hubert Feyrer <email>hubertf@NetBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh F. Mahon <email>hugh@nsmdserv.cnd.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh Mahon <email>h_mahon@fc.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hung-Chi Chu <email>hcchu@r350.ee.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>IMAI Takeshi <email>take-i@ceres.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IMAMURA Tomoaki
- <email>tomoak-i@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Dowse <email>iedowse@maths.tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Holland <email>ianh@tortuga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Struble <email>ian@broken.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Vaudrey <email>i.vaudrey@bigfoot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Khasilev <email>igor@jabber.paco.odessa.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Roshchin <email>str@giganda.komkon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Sviridov <email>siac@ua.net</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Vinokurov <email>igor@zynaps.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Ikuo Nakagawa <email>ikuo@isl.intec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ilya V. Komarov <email>mur@lynx.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Issei Suzuki <email>issei@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Itsuro Saito <email>saito@miv.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>J. Bryant <email>jbryant@argus.flash.net</email></para>
- </listitem>
-
- <listitem>
- <para>J. David Lowe <email>lowe@saturn5.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Han <email>hjh@best.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Hawk <email>jhawk@MIT.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>J.T. Jang <email>keith@email.gcn.net.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Jack <email>jack@zeus.xtalwind.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jacob Bohn Lorensen <email>jacob@jblhome.ping.mk</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jake Burkholder <email>jake@checker.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jake Hamby <email>jehamby@lightside.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James D. Stewart <email>jds@c4systm.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Raynard
- <email>fhackers@jraynard.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>James T. Liu <email>jtliu@phlebas.rockefeller.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Conard
- <email>charly@fachschaften.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Koum <email>jkb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Janick Taillandier
- <email>Janick.Taillandier@ratp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Janusz Kokot <email>janek@gaja.ipan.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Jarle Greipsland <email>jarle@idt.unit.no</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Garman <email>init@risen.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Thorpe <email>thorpej@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Wright <email>jason@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Young
- <email>doogie@forbidden-donut.anet-stl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Javier Martin Rueda <email>jmrueda@diatel.upm.es</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jaye Mathisen <email>mrcpu@cdsnet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Bartig <email>jeffb@doit.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Forys <email>jeff@forys.cranbury.nj.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Kletsky <email>Jeff@Wagsky.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Evans <email>evans@scnc.k12.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Wheat <email>jeff@cetlink.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jens Schweikhardt <email>schweikh@noc.dfn.d</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Allison <email>jallison@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chatfield <email>jdc@xinside.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Lea <email>reg@shale.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Prior <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Jeroen Ruigrok/Asmodai <email>asmodai@wxs.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse Rosenstock <email>jmr@ugcs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jian-Da Li <email>jdli@csie.nctu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Babb <email>babb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Binkley <email>jrb@cs.pdx.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Carroll <email>jim@carroll.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Flowers <email>jflowers@ezo.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Leppek <email>jleppek@harris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Lowe <email>james@cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mattson <email>jmattson@sonic.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mercer <email>jim@komodo.reptiles.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jimbo Bahooli
- <email>griffin@blackhole.iceworld.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jin Guojun <email>jin@george.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Joachim Kuebart <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Joao Carlos Mendes Luis <email>jonny@jonny.eng.br</email></para>
- </listitem>
-
- <listitem>
- <para>Jochen Pohl <email>jpo.drs@sni.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joe "Marcus" Clarke <email>marcus@miami.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Abley <email>jabley@clear.co.nz</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Jih-Shian Lu <email>jslu@dns.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Orthoefer <email>j_orthoefer@tia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Traister <email>traister@mojozone.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Faedi <email>Joel.Faedi@esial.u-nancy.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Ray Holveck <email>joelh@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Sutton <email>sutton@aardvark.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Granlund <email>johan@granlund.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Karlsson <email>k@numeri.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Larsson <email>johan@moon.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johann Tonsing <email>jtonsing@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Helander <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Stille <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Baldwin <email>jobaldwi@vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Beckett <email>jbeckett@southern.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Beukema <email>jbeukema@hk.super.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Brezak <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Capo <email>jc@irbs.com</email></para>
- </listitem>
-
- <listitem>
- <para>John F. Woods <email>jfw@jfwhome.funhouse.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Goerzen
- <email>jgoerzen@alexanderwohl.complete.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Hay <email>jhay@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>John Heidemann <email>johnh@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Hood <email>cgull@owl.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Kohl <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Lind <email>john@starfire.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Mackin <email>john@physiol.su.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>John P <email>johnp@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Perry <email>perry@vishnu.alias.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Preisler <email>john@vapornet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Rochester <email>jr@cs.mun.ca</email></para>
- </listitem>
-
- <listitem>
- <para>John Sadler <email>john_sadler@alum.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Saunders <email>john@pacer.nlc.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>John W. DeBoskey <email>jwd@unx.sas.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Wehle <email>john@feith.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jon Morgan <email>morgan@terminus.trailblazer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan H N Chin <email>jc254@newton.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Hanna
- <email>jh@pc-21490.bc.rogers.wave.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge Goncalves <email>j@bug.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge M. Goncalves <email>ee96199@tom.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jos Backus <email>jbackus@plex.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Jose M. Alcaide <email>jose@we.lc.ehu.es</email></para>
- </listitem>
-
- <listitem>
- <para>Jose Marques <email>jose@nobody.org</email></para>
- </listitem>
-
- <listitem>
- <para>Josef Grosch
- <email>jgrosch@superior.mooseriver.com</email></para>
- </listitem>
-
- <listitem>
- <para>Josef Karthauser <email>joe@uk.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Stein <email>joes@wstein.com</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Gilliam <email>josh@quick.net</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Tiefenbach <email>josh@ican.net</email></para>
- </listitem>
-
- <listitem>
- <para>Juergen Lock <email>nox@jelal.hb.north.de</email></para>
- </listitem>
-
- <listitem>
- <para>Juha Inkari <email>inkari@cc.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Jukka A. Ukkonen <email>jua@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Assange <email>proff@suburbia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Coleman <email>j.d.coleman@ncl.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>&a.jhs</para>
- </listitem>
-
- <listitem>
- <para>Julian Jenkins <email>kaveman@magna.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Junichi Satoh <email>junichi@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junji SAKAI <email>sakai@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junya WATANABE <email>junya-w@remus.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>K.Higashino <email>a00303@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kai Vorma <email>vode@snakemail.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Kaleb S. Keithley <email>kaleb@ics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kaneda Hiloshi <email>vanitas@ma3.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kapil Chowksey <email>kchowksey@hss.hns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Denninger <email>karl@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kato Takenori
- <email>kato@eclogite.eps.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kawanobe Koh <email>kawanobe@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kazuhiko Kiriyama <email>kiri@kiri.toba-cmt.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kazuo Horikawa <email>horikawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kees Jan Koster <email>kjk1@ukc.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@bostic.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith E. Walker <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Moore <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Sklower <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Kelly Yancey <email>kbyanc@posi.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hornstein <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Key <email>key@cs.utk.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Mayer <email>kmayer@freegate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Saito <email>marukun@mx2.nisiq.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Tomita <email>tommyk@da2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Furge <email>kenneth.furge@us.endress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Monville <email>desmo@bandwidth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth R. Westerback <email>krw@tcn.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Stailey <email>kstailey@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Vander Velden <email>graphix@iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kentaro Inagaki <email>JBD01226@niftyserve.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Bracey <email>kbracey@art.acorn.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Day <email>toasty@dragondata.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml@nas.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lo<email>kevlo@hello.com.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Street <email>street@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Van Maren <email>vanmaren@fast.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kiroh HARADA <email>kiroh@kh.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Klein <email>kleink@layla.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus-J. Wolf <email>Yanestra@t-online.de</email></para>
- </listitem>
-
- <listitem>
- <para>Koichi Sato <email>copan@ppp.fastnet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kostya Lukin <email>lukin@okbmei.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Kouichi Hirabayashi <email>kh@mogami-wire.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt D. Zeilenga <email>Kurt@Boolean.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt Olsen <email>kurto@tiny.mcs.usu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>L. Jonas Olsson
- <email>ljo@ljo-slip.DIALIN.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Lars K&ouml;ller
- <email>Lars.Koeller@Uni-Bielefeld.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Laurence Lopez <email>lopez@mv.mv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lee Cremeans <email>lcremean@tidalwave.net</email></para>
- </listitem>
-
- <listitem>
- <para>Liang Tai-hwa
- <email>avatar@www.mmlab.cse.yzu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Lon Willett <email>lon%softt.uucp@math.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Louis A. Mamakos <email>louie@TransSys.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Louis Mamakos <email>loiue@TransSys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lucas James <email>Lucas.James@ldjpc.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Lyndon Nerenberg <email>lyndon@orthanc.com</email></para>
- </listitem>
-
- <listitem>
- <para>M.C. Wong <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>MANTANI Nobutaka <email>nobutaka@nobutaka.com</email></para>
- </listitem>
-
- <listitem>
- <para>MIHIRA Sanpei Yoshiro <email>sanpei@sanpei.org</email></para>
- </listitem>
-
- <listitem>
- <para>MITA Yoshio <email>mita@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>MITSUNAGA Noriaki
- <email>mitchy@er.ams.eng.osaka-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Magnus Enbom <email>dot@tinto.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mahesh Neelakanta <email>mahesh@gcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto MATSUSHITA <email>matusita@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto WATANABE
- <email>watanabe@zlab.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Malte Lance <email>malte.lance@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>Manu Iyengar
- <email>iyengar@grunthos.pscwa.psca.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Ramirez <email>mrami@mramirez.sy.yale.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Slemko <email>marcs@znep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Kempen <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Woerkom <email>van.woerkom@netcologne.de</email></para>
- </listitem>
-
- <listitem>
- <para>Marcel Moolenaar <email>marcel@scc.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Mario Sergio Fujikawa Ferreira
- <email>lioux@gns.com.br</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Andrews <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Cammidge <email>mark@gmtunx.ee.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Diekhans <email>markd@grizzly.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Huizer <email>xaa@stack.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark J. Taylor <email>mtaylor@cybernet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Krentel <email>krentel@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Mayo <email>markm@vmunix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Thompson <email>thompson@tgsoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Treacy <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Valentine <email>mark@linus.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Birgmeier</para>
- </listitem>
-
- <listitem>
- <para>Martin Ibert <email>mib@ppe.bb-data.de</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Kammerhofer <email>dada@sbox.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Martti Kuparinen
- <email>martti.kuparinen@ericsson.com</email></para>
- </listitem>
-
- <listitem>
- <para>Masachika ISHIZUKA
- <email>ishizuka@isis.min.ntt.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mas.TAKEMURA <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Masafumi NAKANE <email>max@wide.ad.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro Sekiguchi
- <email>seki@sysrap.cs.fujitsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanobu Saitoh <email>msaitoh@spa.is.uec.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kanaoka <email>kana@saijo.mke.mei.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kiriake <email>seiken@ARGV.AC</email></para>
- </listitem>
-
- <listitem>
- <para>Masatoshi TAMURA
- <email>tamrin@shinzan.kuee.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mats Lofkvist <email>mal@algonet.se</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Bartley <email>mbartley@lear35.cytex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Thomas <email>matt@3am-software.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt White <email>mwhite+@CMU.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew C. Mead <email>mmead@Glock.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Cashdollar <email>mattc@rfcnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Flatt <email>mflatt@cs.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Fuller <email>fullermd@futuresouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Stein <email>matt@bdd.net</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Pfaller <email>leo@dachau.marco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Scheler <email>tron@netbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Gronlund
- <email>Mattias.Gronlund@sa.erisoft.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Pantzare <email>pantzer@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Maurice Castro
- <email>maurice@planet.serc.rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Max Euston <email>meuston@jmrodgers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Max Khon <email>fjoe@husky.iclub.nsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxim Bolotin <email>max@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxim V. Sobolev <email>sobomax@altavista.net</email></para>
- </listitem>
-
- <listitem>
- <para>Micha Class
- <email>michael_class@hpbbse.bbn.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butler <email>imb@scgt.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butschky <email>butsch@computi.erols.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Elbel <email>me@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hancock <email>michaelh@cet.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hohmuth <email>hohmuth@inf.tu-dresden.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Perlman <email>canuck@caam.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Petry <email>petry@netwolf.NetMasters.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Reifenberger <email>root@totum.plaut.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Sardo <email>jaeger16@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Michal Listos <email>mcl@Amnesiac.123.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michio Karl Jinbo
- <email>karl@marcer.nagaokaut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Miguel Angel Sagreras
- <email>msagre@cactus.fi.uba.ar</email></para>
- </listitem>
-
- <listitem>
- <para>Mihoko Tanaka <email>m_tonaka@pa.yokogawa.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mika Nystrom <email>mika@cs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Hybsch <email>micke@dynas.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Karpberg
- <email>karpen@ocean.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Del <email>repenting@hotmail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durian <email>durian@plutotech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike E. Matsnev <email>mike@azog.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Evans <email>mevans@candle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Grupenhoff <email>kashmir@umiacs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Hibler <email>mike@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Karels <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mike McGaughey <email>mmcg@cs.monash.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Meyer <email>mwm@shiva.the-park.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Mitchell <email>mitchell@ref.tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Murphy <email>mrm@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Peck <email>mike@binghamton.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Spengler <email>mks@msc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikhail A. Sokolov <email>mishania@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Mikhail Teterin <email>mi@aldan.ziplink.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ming-I Hseh <email>PA@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Mitsuru IWASAKI <email>iwasaki@pc.jaring.my</email></para>
- </listitem>
-
- <listitem>
- <para>Mitsuru Yoshida <email>mitsuru@riken.go.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Monte Mitzelfelt <email>monte@gonefishing.org</email></para>
- </listitem>
-
- <listitem>
- <para>Morgan Davis <email>root@io.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mostyn Lewis <email>mostyn@mrl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Motoyuki Konno <email>motoyuki@snipe.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Murray Stokely <email>murray@cdrom.com</email></para>
- </listitem>
-
- <listitem>
- <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAJI Hiroyuki
- <email>nakaji@tutrp.tut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Kazushi <email>nkazushi@highway.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Motonori
- <email>motonori@econ.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NIIMI Satoshi <email>sa2c@and.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NOKUBI Hirotaka <email>h-nokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nadav Eiron <email>nadav@barcode.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>Nanbor Wang <email>nw1@cs.wustl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Naofumi Honda
- <email>honda@Kururu.math.sci.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Narvi <email>narvi@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Nathan Ahlstrom <email>nrahlstr@winternet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nathan Dorfman <email>nathan@rtfm.net</email></para>
- </listitem>
-
- <listitem>
- <para>Neal Fachan <email>kneel@ishiboo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Neil Blakey-Milner <email>nbm@rucus.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Niall Smart <email>rotel@indigo.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Barnes <email>Nick.Barnes@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Hilliard <email>nick@foobar.org</email></para>
- </listitem>
-
- <listitem>
- <para>&a.nsayer;</para>
- </listitem>
-
- <listitem>
- <para>Nick Williams <email>njw@cs.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nickolay N. Dudorov <email>nnd@itfs.nsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Niklas Hallqvist <email>niklas@filippa.appli.se</email></para>
- </listitem>
-
- <listitem>
- <para>Nisha Talagala <email>nisha@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ZW6T-KND@j.asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>adrian@virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>alex@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>anto@netscape.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bobson@egg.ics.nitch.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bovynf@awe.be</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>burg@is.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>chris@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>colsen@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>coredump@nervosa.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dannyman@arh0300.urh.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>davids@SECNET.COM</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>derek@free.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>devet@adv.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>djv@bedford.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dvv@sprint.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>enami@ba2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@eru.tubank.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@hway.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>fn@pain.csrv.uidaho.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gclarkii@netport.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gordon@sheaky.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>graaf@iae.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>greg@greg.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>grossman@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gusw@fub46.zedat.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hfir@math.rochester.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hnokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iaint@css.tuu.utas.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>invis@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ishisone@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iverson@lionheart.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>jpt@magic.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>junker@jazz.snu.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>k-sugyou@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kenji@reseau.toyonaka.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kfurge@worldnet.att.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lh@aus.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lhecking@nmrc.ucc.ie</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>mrgreen@mame.mu.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>nakagawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ohki@gssm.otsuka.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>owaki@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pechter@shell.monmouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pete@pelican.pelican.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pritc003@maroon.tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>risner@stdio.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>roman@rpd.univ.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@ns2.redline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@uglabgw.ug.cs.sunysb.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>stephen.ma@jtec.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>sumii@is.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>takas-su@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tamone@eig.unige.ch</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tjevans@raleigh.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tony-o@iij.ad.jp amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>torii@tcd.hitachi.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uenami@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uhlar@netlab.sk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>vode@hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlloyd@mpd.ca</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlr@furball.wellsfargo.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>yamagata@nwgpc.kek.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ziggy@ryan.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuhiro Yasutomi <email>nobu@psrc.isac.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuyuki Koganemaru
- <email>kogane@koganemaru.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Norio Suzuki <email>nosuzuki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Noritaka Ishizumi <email>graphite@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Noriyuki Soda <email>soda@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Oh Junseon <email>hollywar@mail.holywar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Sharoiko <email>os@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg V. Volkov <email>rover@lglobus.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Breuninger <email>ob@seicom.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Friedrichs <email>oliver@secnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Fromme
- <email>oliver.fromme@heim3.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Laumann
- <email>net@informatik.uni-bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Oberdorf <email>oly@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Olof Johansson <email>offe@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Osokin Sergey aka oZZ <email>ozz@FreeBSD.org.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paco Rosich <email>rosich@modico.eleinf.uv.es</email></para>
- </listitem>
-
- <listitem>
- <para>Palle Girgensohn <email>girgen@partitur.se</email></para>
- </listitem>
-
- <listitem>
- <para>Parag Patel <email>parag@cgt.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pascal Pederiva <email>pascal@zuo.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pasvorn Boonmark <email>boonmark@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Gardella <email>patrick@cre8tivegroup.com</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Hausen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Antonov <email>apg@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Paul F. Werkowski <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Fox <email>pgf@foxharp.boston.ma.us</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Koch <email>koch@thehub.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul S. LaFollette, Jr. <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Saab <email>paul@mu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Sandys <email>myj@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul T. Root <email>proot@horton.iaces.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Vixie <email>paul@vix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>paulo@isr.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>pm@dee.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro A M Vazquez <email>vazquez@IQM.Unicamp.BR</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro Giffuni <email>giffunip@asme.org</email></para>
- </listitem>
-
- <listitem>
- <para>Pete Bentley <email>pete@demon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Childs <email>pjchilds@imforei.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Cornelius <email>pc@inr.fzk.de</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Haight <email>peterh@prognet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Jeremy <email>perer.jeremy@alcatel.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter M. Chen <email>pmchen@eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Much <email>peter@citylink.dinoex.sub.org</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Olsson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Philipp <email>pjp@bsd-daemon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Stubbs <email>PETERS@staidan.qld.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Maker <email>pjm@cs.ntu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Taylor <email>phil@zipmail.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Philip Musumeci <email>philip@rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Pierre Y. Dampure <email>pierre.dampure@k2c.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Pius Fischer <email>pius@ienet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pomegranate <email>daver@flag.blackened.net</email></para>
- </listitem>
-
- <listitem>
- <para>Powerdog Industries
- <email>kevin.ruddy@powerdog.com</email></para>
- </listitem>
-
- <listitem>
- <para>R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>Rajesh Vaidheeswarran <email>rv@fore.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Randal S. Masutani <email>randal@comtest.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall Hopper <email>rhh@ct.picker.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall W. Dean <email>rwd@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Randy Bush <email>rbush@bainbridge.verio.net</email></para>
- </listitem>
-
- <listitem>
- <para>Reinier Bezuidenhout
- <email>rbezuide@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Remy Card <email>Remy.Card@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Ricardas Cepas <email>rch@richard.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Riccardo Veraldi <email>veraldi@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Henderson <email>richard@atheist.tamu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Hwang <email>rhwang@bigpanda.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Kiss <email>richard@homemail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard J Kuhns <email>rjk@watson.grauel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard M. Neswold
- <email>rneswold@drmemory.fnal.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Seaman, Jr. <email>dick@tar.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Stallman <email>rms@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Straka <email>straka@user1.inficad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Tobin <email>richard@cogsci.ed.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wackerbarth <email>rkw@Dataplex.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Winkel <email>rich@math.missouri.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wiwatowski <email>rjwiwat@adelaide.on.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>rick@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Austein <email>sra@epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Mallory <email>rmallory@qualcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Snow <email>rsnow@txdirect.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Crowe <email>bob@speakez.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Eckardt
- <email>roberte@MEP.Ruhr-Uni-Bochum.de</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sanders <email>rsanders@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sexton <email>robert@kudra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Shady <email>rls@id.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Swindells <email>swindellsr@genrad.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Watson <email>robert@cyrus.watson.org</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Withrow <email>witr@rwwa.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Yoder <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Robin Carey
- <email>robin@mailgate.dtc.rankxerox.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Roger Hardiman <email>roger@cs.strath.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Roland Jesse <email>jesse@cs.uni-magdeburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Bickers <email>rbickers@intercenter.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Lenk <email>rlenk@widget.xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ronald Kuehn <email>kuehn@rz.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rudolf Cejka <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Belkin <email>rus@home2.UA.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Ermilov <email>ru@ucb.crimea.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Shevchenko <email>rssh@cam.grad.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Russell L. Carter <email>rcarter@pinyon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Russell Vincent <email>rv@groa.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Ryan Younce <email>ryany@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ryuichiro IMURA <email>imura@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SAWADA Mizuki <email>miz@qb3.so-net.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>SURANYI Peter
- <email>suranyip@jks.is.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakari Jalovaara <email>sja@tekla.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Sam Hartman <email>hartmans@mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Lam <email>skl@ScalableNetwork.com</email></para>
- </listitem>
-
- <listitem>
- <para>Samuele Zannoli <email>zannoli@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Vesik <email>sander@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Sandro Sigala <email>ssigala@globalnet.it</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Blank <email>blank@fox.uni-trier.de</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Satoh Junichi <email>junichi@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Scot Elliott <email>scot@poptart.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scot W. Hetzel <email>hetzels@westbend.net</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Kenney <email>saken@rmta.ml.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Blachowicz
- <email>scott.blachowicz@seaslug.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Hazen Mueller <email>scott@zorch.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Michel <email>scottm@cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Mitchel <email>scott@uk.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sebastian Strollo <email>seb@erix.ericsson.se</email></para>
- </listitem>
-
- <listitem>
- <para>Serge A. Babkin <email>babkin@hq.icb.chel.su</email></para>
- </listitem>
-
- <listitem>
- <para>Serge V. Vakulenko <email>vak@zebub.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei Chechetkin
- <email>csl@whale.sunbay.crimea.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei S. Laskavy <email>laskavy@pc759.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Gershtein <email>sg@mplik.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Kosyakov <email>ks@itp.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Potapov <email>sp@alkor.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Shkonda <email>serg@bcs.zp.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey V.Dorokhov <email>svd@kbtelecom.nalnet.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergio Lenzi <email>lenzi@bsi.com.br</email></para>
- </listitem>
-
- <listitem>
- <para>Shaun Courtney <email>shaun@emma.eng.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Shawn M. Carey <email>smcarey@mailbox.syr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Shigio Yamaguchi <email>shigio@tamacom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shunsuke Akiyama <email>akiyama@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Simon <email>simon@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Burge <email>simonb@telstra.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Marlow <email>simonm@dcs.gla.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Shapiro <email>shimon@simon-shapiro.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sin'ichiro MIYATANI <email>siu@phaseone.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Soochon Radee <email>slr@mitre.org</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dayton <email>csdayton@midway.uchicago.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dossing <email>sauber@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Soren S. Jorvang <email>soren@dt.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Bethke <email>stb@hanse.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Eggers <email>seggers@semyam.dinoco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Moeding <email>s.moeding@ndh.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Petri <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan `Sec` Zehl <email>sec@42.org</email></para>
- </listitem>
-
- <listitem>
- <para>Steinar Haug <email>sthaug@nethelp.no</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane E. Potvin <email>sepotvin@videotron.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane Legrand <email>stephane@lituus.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Clawson
- <email>sclawson@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen F. Combs <email>combssf@salem.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Farrell <email>stephen@farrell.org</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Hocking <email>sysseh@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen J. Roznowski <email>sjr@home.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Melvin <email>melvin@zytek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Bauer <email>sbauer@rock.sdsmt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Coltrin <email>spcoltri@io.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Deering <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gerakines <email>steve2@genesis.tiac.net</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gericke <email>steveg@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Piette <email>steve@simon.chi.il.US</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Schwarz <email>schwarz@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven G. Kargl
- <email>kargl@troutmask.apl.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven H. Samorodin <email>samorodi@NUXI.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven McCanne <email>mccanne@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Plite <email>splite@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Wallace <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stuart Henderson
- <email>stuart@internationalschool.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Sue Blake <email>sue@welearn.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sugiura Shiro <email>ssugiura@duo.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sujal Patel <email>smpatel@wam.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Sune Stjerneby <email>stjerneby@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>Suzuki Yoshiaki
- <email>zensyo@ann.tama.kawasaki.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tadashi Kumano <email>kumano@strl.nhk.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Taguchi Takeshi <email>taguchi@tohoku.iij.ad.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takahiro Yugawa <email>yugawa@orleans.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takanori Watanabe
- <email>takawata@shidahara1.planet.sci.kobe-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Mega <email>mega@minz.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Uozu <email>j1594016@ed.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takayuki Ariga <email>a00821@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeru NAIKI <email>naiki@bfd.es.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Amaike <email>amaike@iri.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi MUTOH <email>mutoh@info.nara-k.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Ohashi
- <email>ohashi@mickey.ai.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi WATANABE
- <email>watanabe@crayon.earth.s.kobe-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takuya SHIOZAKI
- <email>tshiozak@makino.ise.chuo-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tatoku Ogaito <email>tacha@tera.fukui-med.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tatsumi HOSOKAWA <email>hosokawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Buswell <email>tbuswell@mediaone.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Faber <email>faber@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Lemon <email>mellon@isc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@lambert.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tetsuya Furukawa <email>tetsuya@secom-sis.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Theo de Raadt <email>deraadt@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas <email>thomas@mathematik.uni-Bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas D. Dean <email>tomdean@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas David Rivers <email>rivers@dignus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas G. McWilliams <email>tgm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Gellekum
- <email>thomas@ghpc8.ihf.rwth-aachen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Graichen
- <email>graichen@omega.physik.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas K&ouml;nig
- <email>Thomas.Koenig@ciw.uni-karlsruhe.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Ptacek <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas A. Stephens <email>tas@stephens.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Stromberg <email>tstrombe@rtci.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Valentino Crimi
- <email>tcrimi+@andrew.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Wintergerst <email>thomas@lemur.nord.de</email></para>
- </listitem>
-
- <listitem>
- <para>&THORN;&oacute;r&eth;ur &Iacute;varsson
- <email>totii@est.is</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Kientzle <email>kientzle@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Singletary
- <email>tsingle@sunland.gsfc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Wilkinson <email>tim@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Timo J. Rinne <email>tri@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Todd Miller <email>millert@openbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>root@majestix.cmr.no</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>tom@sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Gray - DCA <email>dcasba@rain.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Jobbins <email>tom@tom.tj</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Pusateri <email>pusateri@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Rush <email>tarush@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Samplonius <email>tom@misery.sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tomohiko Kurahashi
- <email>kura@melchior.q.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Kimball <email>alk@Think.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Li <email>tli@jnx.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Lynn <email>wing@cc.nsysu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Maher <email>tonym@angis.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Torbjorn Granlund <email>tege@matematik.su.se</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiko ARAI <email>toshi@tenchi.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiko SHIMOKAWA <email>toshi@tea.forus.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiro Kanda <email>candy@kgc.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshiomi Moriki
- <email>Toshiomi.Moriki@ma1.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Trefor S. <email>trefor@flevel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Trevor Blackwell <email>tlb@viaweb.com</email></para>
- </listitem>
-
- <listitem>
- <para>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Udo Schweigert <email>ust@cert.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ugo Paternostro <email>paterno@dsi.unifi.it</email></para>
- </listitem>
-
- <listitem>
- <para>Ulf Kieber <email>kieber@sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ulli Linzen <email>ulli@perceval.camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ustimenko Semen <email>semen@iclub.nsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Uwe Arndt <email>arndt@mailhost.uni-koblenz.de</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Chekan <email>vadim@gc.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Kolontsov <email>vadim@tversu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Mikhailov <email>mvp@braz.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Van Jacobson <email>van@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Vasily V. Grechishnikov
- <email>bazilio@ns1.ied-vorstu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vasim Valejev <email>vasim@uddias.diaspro.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vernon J. Schryver <email>vjs@mica.denver.sgi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vic Abell <email>abe@cc.purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ville Eerola <email>ve@sci.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Vincent Poy <email>vince@venus.gaianet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincenzo Capuano
- <email>VCAPUANO@vmprofs.esoc.esa.de</email></para>
- </listitem>
-
- <listitem>
- <para>Virgil Champlin <email>champlin@pa.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir A. Jakovenko
- <email>vovik@ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir Kushnir <email>kushn@mail.kar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vsevolod Lobko <email>seva@alex-ua.com</email></para>
- </listitem>
-
- <listitem>
- <para>W. Gerald Hicks <email>wghicks@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens <email>rstevens@noao.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt Howard <email>howard@ee.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wayne Scott <email>wscott@ichips.intel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Werner Griessl
- <email>werner@btp1da.phy.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wes Santee <email>wsantee@wsantee.oz.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wietse Venema <email>wietse@wzv.win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Wilfredo Sanchez <email>wsanchez@apple.com</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wilko Bulte <email>wilko@yedi.iaf.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Will Andrews <email>andrews@technologist.com</email></para>
- </listitem>
-
- <listitem>
- <para>Willem Jan Withagen <email>wjw@surf.IAE.nl</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>William Liao <email>william@tale.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wojtek Pilorz
- <email>wpilorz@celebris.bdk.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Helbig <email>helbig@ba-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Wu Ching-hong <email>woju@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Yarema <email>yds@ingress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Yaroslav Terletsky <email>ts@polynet.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhiro Fukama <email>yasuf@big.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Ying-Chieh Liao <email>ijliao@csie.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yixin Jin <email>yjin@rain.cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshiaki Uchikawa <email>yoshiaki@kt.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihiko OHTA <email>yohta@bres.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihisa NAKAGAWA
- <email>y-nakaga@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshikazu Goto <email>gotoh@ae.anritsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshimasa Ohnishi
- <email>ohnishi@isc.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshishige Arai <email>ryo2@on.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuichi MATSUTAKA <email>matutaka@osa.att.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yujiro MIYATA
- <email>miyata@bioele.nuee.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yukihiro Nakai <email>nacai@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Yusuke Nawano <email>azuki@azkey.org</email></para>
- </listitem>
-
- <listitem>
- <para>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@cpcoup5.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@dutncp8.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Heilig <email>zach@gaffaneys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zahemszhky Gabor <email>zgabor@code.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Zhong Ming-Xun <email>zmx@mail.CDPA.nsysu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>arci <email>vega@sophia.inria.fr</email></para>
- </listitem>
-
- <listitem>
- <para>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>frf <email>frf@xocolatl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ege Rekk <email>aagero@aage.priv.no</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>386BSD Patch Kit Patch Contributors</title>
-
- <para>(in alphabetical order by first name):</para>
-
- <itemizedlist>
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>adrian@ibmpcug.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey A. Chernov <email>ache@astral.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore <email>alm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email>
- <email>jtk@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Branko Lankester</para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Rivers <email>rivers@ponds.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@physics.su.OZ.AU</email></para>
- </listitem>
-
- <listitem>
- <para>David Greenman <email>dg@Root.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Felix Gaehtgens
- <email>felix@escape.vsse.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Maclachlan <email>fpm@crash.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Guido van Rooij <email>guido@gvr.org</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@auspex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@novatel.cuc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ishii Masahiro, R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James W. Dolter</para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email> et al</para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Lohse
- <email>lohse@tech7.informatik.uni-hamburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Wunsch
- <email>joerg_wunsch@uriah.heep.sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>John Dyson</para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jordan K. Hubbard <email>jkh@whisker.hubbard.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Elischer <email>julian@dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Stacey <email>jhs@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email>
- <email>karl@one.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@toe.CS.Berkeley.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hughes</para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml%rokkaku.UUCP@mathcs.emory.edu</email>
- <email>kml@mosquito.cis.ufl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email>
- <email>tinguely@hookie.cs.ndsu.NoDak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nate Williams <email>nate@bsd.coe.montana.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email>
- <email>nick@madhouse.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@cs.few.eur.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter da Silva <email>peter@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Poul-Henning Kamp<email>phk@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>root@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rodney W. Grimes <email>rgrimes@cdrom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sean Eric Fagan <email>sef@kithrup.com</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email>
- <email>sjg@zen.void.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@icarus.weber.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tor Egge <email>Tor.Egge@idi.ntnu.no</email></para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@dentaro.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/Makefile b/en_US.ISO8859-1/Makefile
deleted file mode 100644
index 0b2210c098..0000000000
--- a/en_US.ISO8859-1/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# $FreeBSD$
-
-SUBDIR = articles
-SUBDIR+= books
-
-COMPAT_SYMLINK = en
-
-DOC_PREFIX?= ${.CURDIR}/..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/Makefile b/en_US.ISO8859-1/articles/Makefile
deleted file mode 100644
index 74180421a8..0000000000
--- a/en_US.ISO8859-1/articles/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $FreeBSD: doc/en_US.ISO_8859-1/articles/Makefile,v 1.9 2001/02/16 00:23:27 nik Exp $
-
-SUBDIR = committers-guide
-SUBDIR+= dialup-firewall
-SUBDIR+= diskless-x
-SUBDIR+= explaining-bsd
-SUBDIR+= freebsd-questions
-SUBDIR+= fonts
-SUBDIR+= formatting-media
-SUBDIR+= ipsec-must
-SUBDIR+= mh
-SUBDIR+= multi-os
-SUBDIR+= new-users
-SUBDIR+= programming-tools
-SUBDIR+= zip-drive
-
-# ROOT_SYMLINKS+= new-users
-
-DOC_PREFIX?= ${.CURDIR}/../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/Makefile.inc b/en_US.ISO8859-1/articles/Makefile.inc
deleted file mode 100644
index 68161e6d79..0000000000
--- a/en_US.ISO8859-1/articles/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# $FreeBSD$
-#
-
-DESTDIR?= ${DOCDIR}/en_US.ISO_8859-1/articles/${.CURDIR:T}
diff --git a/en_US.ISO8859-1/articles/committers-guide/Makefile b/en_US.ISO8859-1/articles/committers-guide/Makefile
deleted file mode 100644
index 51fe6d2820..0000000000
--- a/en_US.ISO8859-1/articles/committers-guide/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# $FreeBSD: doc/en_US.ISO_8859-1/articles/committers-guide/Makefile,v 1.3 1999/09/06 06:52:35 peter Exp $
-#
-# Build the FreeBSD New Committers Guide
-#
-
-MAINTAINER=jhb@FreeBSD.org
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-JADEFLAGS+= -V %generate-article-toc%
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/committers-guide/article.sgml b/en_US.ISO8859-1/articles/committers-guide/article.sgml
deleted file mode 100644
index d36f87a2b4..0000000000
--- a/en_US.ISO8859-1/articles/committers-guide/article.sgml
+++ /dev/null
@@ -1,2252 +0,0 @@
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-
-<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
-%authors;
-
-<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//EN">
-%mailing-lists;
-]>
-
-<article>
- <artheader>
- <title>Committer Guide</title>
-
- <authorgroup>
- <author>
- <surname>The FreeBSD Documentation Project</surname>
- </author>
- </authorgroup>
-
- <pubdate>$FreeBSD: doc/en_US.ISO_8859-1/articles/committers-guide/article.sgml,v 1.59 2001/04/07 18:22:32 obrien Exp $</pubdate>
-
- <copyright>
- <year>1999</year>
- <year>2000</year>
- <year>2001</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- <abstract>
- <para>This document provides information for the FreeBSD committer
- community. All new committers should read this document before they
- start, and existing committers are strongly encouraged to review it
- from time to time.</para>
- </abstract>
- </artheader>
-
- <sect1 id="admin">
- <title>Administrative Details</title>
-
- <informaltable frame="none" orient="port">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><emphasis>Main Repository Host</emphasis></entry>
- <entry><hostid>freefall.FreeBSD.org</hostid></entry>
- </row>
-
- <row>
- <entry><emphasis>Login Methods</emphasis></entry>
- <entry>&man.ssh.1;</entry>
- </row>
-
- <row>
- <entry><emphasis>Main CVSROOT</emphasis></entry>
- <entry>/home/ncvs</entry>
- </row>
-
- <row>
- <entry><emphasis>Main CVS Repository Meisters</emphasis></entry>
- <entry>&a.jdp; and &a.peter; as well as &a.asami; for
- <filename>ports/</filename></entry>
- </row>
-
- <row>
- <entry><emphasis>Mailing List</emphasis></entry>
- <entry><email>developers@FreeBSD.org</email>,
- <email>cvs-committers@FreeBSD.org</email></entry>
- </row>
-
- <row>
- <entry><emphasis>Noteworthy CVS Tags</emphasis></entry>
- <entry>RELENG_3 (3.x-STABLE), RELENG_4 (4.x-STABLE), HEAD (-CURRENT)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>It is required that you use &man.ssh.1; or &man.telnet.1;
- with Kerberos 5 to connect to the repository hosts. These are
- generally more secure than plain &man.telnet.1; or
- &man.rlogin.1; since credential negotiation will always be
- encrypted. All traffic is encrypted by default with &man.ssh.1;.
- With utilities like &man.ssh-agent.1; and &man.scp.1; also
- available, &man.ssh.1; is also far more convenient. If you do
- not know anything about &man.ssh.1;, please see
- <xref linkend="ssh.guide">.</para>
- </sect1>
-
- <sect1 id="cvs.operations">
- <title>CVS Operations</title>
-
- <para>It is assumed that you are already familiar with the basic operation
- of CVS.</para>
-
- <para>The CVS Repository Meisters (Peter Wemm and John Polstra)
- are the <quote>owners</quote> of the CVS repository and are
- responsible for any and <emphasis>all</emphasis> direct
- modification of it for the purposes of cleanup or fixing some
- grievous abuse of CVS by a committer. No one else should
- attempt to touch the repository directly. Should you cause some
- repository accident, say a bad cvs import or tag operation, do
- <emphasis role="bold">not</emphasis> attempt to fix it yourself!
- Mail or call John or Peter immediately and report the problem to
- one of them instead. The only ones allowed to directly fiddle
- the repository bits are the repomeisters. Satoshi Asami is also a
- repomeister for the <filename>ports/</filename> portion of the
- tree.</para>
-
- <para>CVS operations are usually done by logging into
- <hostid>freefall</hostid>, making sure the
- <envar>CVSROOT</envar> environment variable is set to
- <filename>/home/ncvs</filename>, and then doing the appropriate
- check-out/check-in operations. If you wish to add
- something which is wholly new (like contrib-ified
- sources, etc), a script called <quote>easy-import</quote> is
- also provided for making the process easier. It automatically
- adds the new module entry, does the appropriate thing with
- <command>cvs import</command>, etc. &ndash; just run it without
- arguments and it will prompt you for everything it needs to
- know.</para>
-
- <para>Note that when you use CVS on <hostid>freefall</hostid>, you
- should set your <literal>umask</literal> to <literal>2</literal>,
- as well as setting the <literal>CVSUMASK</literal> environment
- variable to <literal>2</literal>. This ensures that any new
- files created by <command>cvs add</command> will have the correct
- permissions. If you add a file or directory and discover that the
- file in the repository has incorrect permissions (specifically,
- all files in the repository should be group writable by group
- <literal>ncvs</literal>), contact one of the repository meisters
- as described below.</para>
-
- <para>If you are familiar with remote CVS and consider yourself
- pretty studly with CVS in general, you can also do CVS
- operations directly from your own machine and local working
- sources. Just remember to set <envar>CVS_RSH</envar> to
- <wordasword>ssh</wordasword> so that you are using a relatively
- secure and reliable transport. If you have no idea what any of
- the above even means, on the other hand, then please stick with
- logging into <hostid>freefall</hostid> and applying your diffs
- with &man.patch.1;.</para>
-
- <para>If you need to use CVS <command>add</command> and
- <command>delete</command> operations in a manner that is
- effectively a <quote>mv</quote> operation, then a repository
- copy is in order rather than your CVS <command>add</command> and
- <command>delete</command>. In a repository copy, a <link
- linkend="conventions">CVS Meister</link> will copy the file(s)
- to their new name and/or location and let you know when it is
- done. The purpose of a repository copy is to preserve file
- change history, or logs. We in the FreeBSD Project greatly
- value the change history CVS gives to the project.</para>
-
- <para>CVS reference information, tutorials, and FAQs can also be found at:
- <ulink
- url="http://www.cvshome.org/docs/index.html">http://www.cvshome.org/docs/index.html</ulink></para>
-
- <para>&a.des; also supplied the following <quote>mini primer</quote> for
- CVS.</para>
-
- <orderedlist>
- <listitem>
- <para>Check out a module with the <literal>co</literal> or
- <literal>checkout</literal> command.</para>
-
- <screen>&prompt.user; <userinput>cvs checkout shazam</userinput></screen>
-
- <para>This checks out a copy of the <filename>shazam</filename> module. If
- there is no <filename>shazam</filename> module in the modules file, looks for a
- top-level directory named <filename>shazam</filename> instead.</para>
-
- <table frame="none">
- <title>Useful <command>cvs checkout</command> options</title>
-
- <tgroup cols=2>
- <tbody>
- <row>
- <entry><option>-P</option></entry>
- <entry>Don't create empty directories</entry>
- </row>
-
- <row>
- <entry><option>-l</option></entry>
- <entry>Check out a single level, no subdirectories</entry>
- </row>
-
- <row>
- <entry><option>-r<replaceable>rev</replaceable></option></entry>
- <entry>Check out revision, branch or tag
- <replaceable>rev</replaceable></entry>
- </row>
-
- <row>
- <entry><option>-D<replaceable>date</replaceable></option></entry>
- <entry>Check out the sources as they were on date
- <replaceable>data</replaceable></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Practical FreeBSD examples:</para>
-
- <itemizedlist>
- <listitem>
- <para>Check out the <filename>miscfs</filename> module,
- which corresponds to <filename>src/sys/miscfs</filename>:</para>
-
- <screen>&prompt.user; <userinput>cvs co miscfs</userinput></screen>
-
- <para>You now have a directory named <filename>miscfs</filename>
- with subdirectories <filename>CVS</filename>,
- <filename>deadfs</filename>, <filename>devfs</filename>, and so
- on. One of these (<filename>linprocfs</filename>) is
- empty.</para>
- </listitem>
-
- <listitem>
- <para>Check out the same files, but with full path:</para>
-
- <screen>&prompt.user; <userinput>cvs co src/sys/miscfs</userinput></screen>
-
- <para>You now have a directory named <filename>src</filename>,
- with subdirectories <filename>CVS</filename> and
- <filename>sys</filename>. <filename>src/sys</filename> has
- subdirectories <filename>CVS</filename> and
- <filename>miscfs</filename>, etc.</para>
- </listitem>
-
- <listitem>
- <para>Check out the same files, but prunes empty
- directories:</para>
-
- <screen>&prompt.user; <userinput>cvs co -P miscfs</userinput></screen>
-
- <para>You now have a directory named
- <filename>miscfs</filename> with subdirectories
- <filename>CVS</filename>, <filename>deadfs</filename>,
- <filename>devfs</filename>... but note that there is no
- <filename>linprocfs</filename> subdirectory, because there
- are no files in it.</para>
- </listitem>
-
- <listitem>
- <para>Check out the directory <filename>miscfs</filename>, but
- none of the subdirectories:</para>
-
- <screen>&prompt.root; <userinput>cvs co -l miscfs</userinput></screen>
-
- <para>You now have a directory named <filename>miscfs</filename>
- with just one subdirectory named
- <filename>CVS</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Check out the <filename>miscfs</filename> module as
- it is in the 4.x branch:</para>
-
- <screen>&prompt.user; <userinput>cvs co -rRELENG_4 miscfs</userinput></screen>
-
- <para>You can modify the sources and commit along this
- branch.</para>
- </listitem>
-
- <listitem>
- <para>Check out the <filename>miscfs</filename> module as
- it was in 3.4-RELEASE.</para>
-
- <screen>&prompt.user; <userinput>cvs co -rRELENG_3_4_0_RELEASE miscfs</userinput></screen>
-
- <para>You will not be able to commit modifications, since
- RELENG_3_4_0_RELEASE is a point in time, not a branch.</para>
- </listitem>
-
- <listitem>
- <para>Check out the <filename>miscfs</filename> module as it was
- on Jan 15 2000.</para>
-
- <screen>&prompt.user; <userinput>cvs co -D'01/15/2000' miscfs</userinput></screen>
-
- <para>You will not be able to commit modifications.</para>
- </listitem>
-
- <listitem>
- <para>Check out the <filename>miscfs</filename> module as it was
- one week agao.</para>
-
- <screen>&prompt.user; <userinput>cvs co -D'last week' miscfs</userinput></screen>
-
- <para>You will not be able to commit modifications.</para>
- </listitem>
- </itemizedlist>
-
- <para>Note that cvs stores metadata in subdirectories named
- <filename>CVS</filename>.</para>
-
- <para>Arguments to <option>-D</option> and <option>-r</option>
- are sticky, which means cvs will remember them later, e.g.
- when you do a <command>cvs update</command>.</para>
- </listitem>
-
- <listitem>
- <para>Check the status of checked-out files with the
- <literal>status</literal> command.</para>
-
- <screen>&prompt.user; <userinput>cvs status shazam</userinput></screen>
-
- <para>This displays the status of the
- <filename>shazam</filename> file or of every file in the
- <filename>shazam</filename> directory. For every file, the
- status is given as one of:</para>
-
- <informaltable frame="none">
- <tgroup cols=2>
- <tbody>
- <row>
- <entry>Up-to-date</entry>
- <entry>File is up-to-date and unmodified.</entry>
- </row>
-
- <row>
- <entry>Needs Patch</entry>
- <entry>File is unmodified, but there's a newer revision in
- the repository.</entry>
- </row>
-
- <row>
- <entry>Locally Modified</entry>
- <entry>File is up-to-date, but modified.</entry>
- </row>
-
- <row>
- <entry>Needs Merge</entry>
- <entry>File is modified, and there's a newer revision in the
- repository.</entry>
- </row>
-
- <row>
- <entry>File had conflicts on merge</entry>
- <entry>There were conflicts the last time this file was
- updated, and they haven't been resolved yet.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>You'll also see the local revision and date,
- the revision number of the newest applicable version
- (<quote>newest applicable</quote> because if you have a
- sticky date, tag or branch, it may not be the actual newest
- revision), and any sticky tags, dates or options.</para>
- </listitem>
-
- <listitem>
- <para>Once you've checked something out, update it with the
- <literal>update</literal> command.</para>
-
- <screen>&prompt.user; <userinput>cvs update shazam</userinput></screen>
-
- <para>This updates the <filename>shazam</filename> file or the
- contents of the <filename>shazam</filename> directory to the
- latest version along the branch you checked out. If you
- checked out a <quote>point in time</quote>, does nothing
- unless the tags have moved in the repository or some other weird
- stuff is going on.</para>
-
- <para>Useful options, in addition to those listed above for
- <literal>checkout</literal>:</para>
-
- <informaltable frame="none">
- <tgroup cols=2>
- <tbody>
- <row>
- <entry><option>-d</option></entry>
- <entry>Check out any additional missing directories.</entry>
- </row>
-
- <row>
- <entry><option>-A</option></entry>
- <entry>Update to head of main branch.</entry>
- </row>
-
- <row>
- <entry><option>-j<replaceable>rev</replaceable></option></entry>
- <entry>More magic (see below).</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If you checked out a module with <option>-r</option> or
- <option>-D</option>, running <command>cvs update</command>
- with a different <option>-r</option> or <option>-D</option>
- argument or with <option>-A</option> will select a new branch,
- revision or date. The <option>-A</option> option clears all
- sticky tags, dates or revisions whereas <option>-r</option>
- and <option>-D</option> set new ones.</para>
-
- <para>Theoretically, specifying <literal>HEAD</literal> as
- argument to <option>-r</option> will give you the same result
- as <option>-A</option>, but that's just theory.</para>
-
- <para>The <option>-d</option> option is useful if:</para>
-
- <itemizedlist>
- <listitem>
- <para>somebody has added subdirectories to the module
- you've checked out after you checked it out.</para>
- </listitem>
-
- <listitem>
- <para>you checked out with <option>-l</option>, and later
- change your mind and want to check out the subdirectories
- as well.</para>
- </listitem>
-
- <listitem>
- <para>you deleted some subdirectories and want to check
- them all back out.</para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>Watch the output of the <command>cvs
- update</command> with care.</emphasis> The letter in front of
- each file name indicates what was done with it:</para>
-
- <informaltable frame="none">
- <tgroup cols=2>
- <tbody>
- <row>
- <entry><literal>U</literal></entry>
- <entry>The file was updated with no trouble.</entry>
- </row>
-
- <row>
- <entry><literal>P</literal></entry>
- <entry>The file was updated with no trouble (you'll only see
- this when working against a remote repo).</entry>
- </row>
-
- <row>
- <entry><literal>M</literal></entry>
- <entry>The file had been modified, and was merged with no
- conflicts.</entry>
- </row>
-
- <row>
- <entry><literal>C</literal></entry>
- <entry>The file had been modified, and was merged with
- conflicts.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Merging is what happens if you check out a copy of
- some source code, modify it, then someone else commits a
- change, and you run <command>cvs update</command>. CVS notices
- that you've made local changes, and tries to merge your
- changes with the changes between the version you originally
- checked out and the one you updated to. If the changed are to
- separate portions of the file, it'll almost always work fine
- (though the result might not be syntactically or semantically
- correct).</para>
-
- <para>CVS will print an 'M' in front of every locally modified
- file even if there is no newer version in the repository, so
- <command>cvs update</command> is handy for getting a summary
- of what you've changed locally.</para>
-
- <para>If you get a <literal>C</literal>, then your changes
- conflicted with the changes in the repository (the changes
- were to the same lines, or neighboring lines, or you changed
- the local file so much that <command>cvs</command> can't
- figure out how to apply the repository's changes). You'll have
- to go through the file manually and resolve the conflicts;
- they'll be marked with rows of <literal>&lt;</literal>,
- <literal>=</literal> and <literal>&gt;</literal> signs. For
- every conflict, there'll be a marker line with seven
- <literal>&lt;</literal> signs and the name of the file,
- followed by a chunk of what your local file contained,
- followed by a separator line with seven <literal>=</literal>
- signs, followed by the corresponding chunk in the
- repository version, followed by a marker line with seven
- <literal>&gt;</literal> signs and the revision number you
- updated to.</para>
-
- <para>The <option>-j</option> option is slightly voodoo. It
- updates the local file to the specified revision as if you
- used <option>-r</option>, but it does not change the recorded
- revision number or branch of the local file. It's not really
- useful except when used twice, in which case it will merge the
- changes between the two specified versions into the working
- copy.</para>
-
- <para>For instance, say you commit a change to
- <filename>shazam/shazam.c</filename> in -CURRENT and later
- want to MFC it. The change you want to MFC was revision
- 1.15:</para>
-
- <itemizedlist>
- <listitem>
- <para>Check out the -STABLE version of the
- <filename>shazam</filename> module:</para>
-
- <screen>&prompt.user; <userinput>cvs co -rRELENG_4 shazam</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Apply the changes between rev 1.14 and 1.15:</para>
-
- <screen>&prompt.user; <userinput>cvs update -j1.14 -j1.15 shazam/shazam.c</userinput></screen>
- </listitem>
- </itemizedlist>
-
- <para>You'll almost certainly get a conflict because
- of the <literal>$Id: article.sgml,v 1.60 2001-04-08 17:26:41 nik Exp $</literal> (or in FreeBSD's case,
- <literal>$FreeBSD<!-- stop expansion -->$</literal>) lines, so you'll have to edit
- the file to resolve the conflict (remove the marker lines and
- the second <literal>$Id: article.sgml,v 1.60 2001-04-08 17:26:41 nik Exp $</literal> line, leaving the original
- <literal>$Id: article.sgml,v 1.60 2001-04-08 17:26:41 nik Exp $</literal> line intact).</para>
- </listitem>
-
- <listitem>
- <para>View differences between the local version and the
- repository version with the <literal>diff</literal>
- command.</para>
-
- <screen>&prompt.user; <userinput>cvs diff shazam</userinput></screen>
-
- <para>shows you every modification you've made to the
- <filename>shazam</filename> file or module.</para>
-
- <table frame="none">
- <title>Useful <command>cvs diff</command> options</title>
-
- <tgroup cols=2>
- <tbody>
- <row>
- <entry><option>-u</option></entry>
- <entry>Uses the unified diff format.</entry>
- </row>
-
- <row>
- <entry><option>-N</option></entry>
- <entry>Shows missing or added files.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>You always want to use <option>-u</option>, since
- unified diffs are much easier to read than almost any other
- diff format (in some circumstances, context diffs may be
- better, but they're much bulkier). A unified diff consists of
- a series of hunks. Each hunk begins with a line that starts
- with two <literal>@</literal> signs and specifies where in the
- file the differences are and how many lines they span. This
- is followed by a number of lines; some (preceded by a blank)
- are context; some (preceded by a <literal>-</literal> sign)
- are outtakes and some (preceded by a <literal>+</literal>) are
- additions.</para>
-
- <para>You can also diff against a different version
- than the one you checked out by specifying a version
- with <option>-r</option> or <option>-D</option> as in
- <literal>checkout</literal> or <literal>update</literal>,
- or even view the diffs between two arbitrary versions
- (with no regard for what you have locally) by specifying
- <emphasis>two</emphasis> versions with <option>-r</option> or
- <option>-D</option>.</para>
- </listitem>
-
- <listitem>
- <para>View log entries with the <literal>log</literal>
- command.</para>
-
- <!-- XXX needs more details -->
- <screen>&prompt.user; <userinput>cvs log shazam</userinput></screen>
- </listitem>
-
- <listitem>
- <para>See who did what with the <literal>annotate</literal> command.
- This command shows you each line of the specified file or
- files, along with which user most recently changed that
- line.</para>
-
- <screen>&prompt.user; <userinput>cvs annotate shazam</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Add new files with the <literal>add</literal> command.</para>
-
- <para>Create the file, <command>cvs add</command> it, then
- <command>cvs commit</command> it.</para>
-
- <para>Similarly, you can add new directories by creating them
- and then <command>cvs add</command>ing them. Note that you
- don't need to commit directories.</para>
- </listitem>
-
- <listitem>
- <para>Remove obsolete files with the <literal>remove</literal> command.</para>
-
- <para>Remove the file, then <command>cvs rm</command> it, then
- <command>cvs commit</command> it.</para>
- </listitem>
-
- <listitem>
- <para>Commit with the <literal>commit</literal> or
- <literal>checkin</literal> command.</para>
-
- <table frame="none">
- <title>Useful <command>cvs commit</command> options</title>
-
- <tgroup cols=2>
- <tbody>
- <row>
- <entry><option>-f</option></entry>
- <entry>Force a commit of an unmodified file.</entry>
- </row>
-
- <row>
- <entry><option>-m<replaceable>msg</replaceable></option></entry>
- <entry>Specify a commit message on the command line rather
- than invoking an editor.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Use the <option>-f</option> option if you realize that
- you left out important information from the commit message.</para>
-
- <para>Good commit messages are important. They tell others
- why you did the changes you did, not just right here and now,
- but months or years from now when someone wonders why some
- seemingly illogical or inefficient piece of code snuck into
- your source file. It's also an invaluable aid to deciding
- which changes to MFC and which not to MFC.</para>
-
- <para>Don't waste space in the commit messages explaining
- <emphasis>what</emphasis> you did. That's what
- <command>cvs diff</command> is for. Instead, tell us
- <emphasis>why</emphasis> you did it.</para>
-
- <para>Avoid committing several unrelated changes in one go. It
- makes merging difficult, and also makes it harder to determine
- which change is the culprit if a bug crops up.</para>
-
- <para>Avoid committing style or whitespace fixes and
- functionality fixes in one go. It makes merging difficult,
- and also makes it harder to understand just what functional
- changes were made.</para>
-
- <para>Avoid committing changes to multiple files in one go
- with a generic, vague message. Instead, commit each file (or
- small groups of files) with tailored commit messages.</para>
-
- <para>Before committing, <emphasis>always</emphasis>:</para>
-
- <itemizedlist>
- <listitem>
- <para>verify which branch you're committing to, using
- <command>cvs status</command>.</para>
- </listitem>
-
- <listitem>
- <para>review your diffs, using
- <command>cvs diff</command></para>
- </listitem>
- </itemizedlist>
-
- <para>Also, ALWAYS specify which files to commit explicitly on
- the command line, so you don't accidentally commit other files
- than the ones you intended - <command>cvs commit</command>
- with no arguments will commit every modification in your
- current working directory and every subdirectory.</para>
- </listitem>
- </orderedlist>
-
- <para>Additional tips and tricks:</para>
-
- <orderedlist>
- <listitem>
-
- <para>You can place commonly used options in your
- <filename>~/.cvsrc</filename>, like this:</para>
-
- <programlisting>cvs -z3
-diff -Nu
-update -Pd
-checkout -P</programlisting>
-
- <para>This example says:</para>
-
- <itemizedlist>
- <listitem>
- <para>always use compression level 3 when talking to a
- remote server. This is a life-saver when working over a
- slow connection.</para>
- </listitem>
-
- <listitem>
- <para>always use the <option>-N</option> (show added or
- removed files) and <option>-u</option> (unified diff
- format) options to &man.diff.1;.</para>
- </listitem>
-
- <listitem>
- <para>always use the <option>-P</option> (prune empty
- directories) and <option>-d</option> (check out new
- directories) options when updating.</para>
- </listitem>
-
- <listitem>
- <para>always use the <option>-P</option> (prune empty
- directories) option when checking out.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Use Eivind Eklund's <command>cdiff</command> script to
- view unidiffs. It's a wrapper for &man.less.1; that adds ANSI
- color codes to make hunk headers, outtakes and additions stand
- out; context and garbage are unmodified. It also expands tabs
- properly (tabs often look wrong in diffs because of the extra
- character in front of each line).</para>
-
-<para><ulink url="http://people.FreeBSD.org/~eivind/cdiff">http://people.FreeBSD.org/~eivind/cdiff</ulink></para>
-
- <para>Simply use instead of &man.more.1; or &man.less.1;:</para>
-
- <screen>&prompt.user; <userinput>cvs diff -Nu shazam | cdiff</userinput></screen>
-
- <para>Alternatively some editors like &man.vim.1;
- (ports/editors/vim5) have color support and when used as
- a pager with color syntax highlighting switched on will
- highlight many types of file, including diffs, patches,
- and cvs/rcs logs. </para>
-
- <screen>&prompt.user; <userinput> echo "syn on" >> ~/.vimrc </userinput>
-&prompt.user; <userinput> cvs diff -Nu shazam | vim -</userinput>
-&prompt.user; <userinput> cvs log shazam | vim -</userinput> </screen>
- </listitem>
-
- <listitem>
- <para>CVS is old, arcane, crufty and buggy, and sometimes
- exhibits non-deterministic behavior which some claim as proof
- that it's actually merely the Newtonian manifestation of a
- sentient transdimensional entity. It's not humanly possible
- to know its every quirk inside out, so don't be afraid to ask
- the resident AI (<email>cvs@FreeBSD.org</email>) for help when
- you screw up.</para>
- </listitem>
-
- <listitem>
- <para>Don't leave the <command>cvs commit</command> command in commit
- message editing mode for too long (more than 2-3 minutes). It
- locks the directory you are working with and will prevent other
- developers from committing into the same directory. If you have
- to type a long commit message, type it before executing
- <command>cvs commit</command>, and insert it into the commit
- message.</para>
- </listitem>
- </orderedlist>
-
- </sect1>
-
- <sect1 id="conventions">
- <title>Conventions and Traditions</title>
-
- <para>As a new committer there are a number of things you should do
- first.</para>
-
- <itemizedlist>
- <listitem>
- <para>Add yourself to the <quote>Developers</quote> section of the
- Handbook and remove yourself from the <quote>Additional
- Contributors</quote> section.</para>
-
- <para>This is a relatively easy task, but remains a good first test of
- your CVS skills.</para>
- </listitem>
-
- <listitem>
- <para>Add an entry for yourself to
- <filename>www/en/news/newsflash.sgml</filename>. Look for the other
- entries that look like <quote>A new committer</quote> and follow the
- format.</para>
- </listitem>
-
- <listitem>
- <para>If you have a PGP or GnuPG key, you may want to add it to
- <filename>doc/en_US.ISO_8859-1/books/handbook/pgpkeys</filename>.
- </para>
- </listitem>
-
- <listitem>
- <para>Some people also add an entry for themselves to
- <filename>ports/astro/xearth/files/freebsd.committers.markers</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Introduce yourself to the other committers, otherwise no one
- will have any idea who you are or what you are working on. You do
- not have to write a comprehensive biography, just write a paragraph
- or two about who you are and what you plan to be working on as a
- committer in FreeBSD. Email this to
- <email>developers@FreeBSD.org</email> and you will be on your
- way!</para>
- </listitem>
-
- <listitem>
- <para>Log into <hostid>hub.FreeBSD.org</hostid> and create a
- <filename>/var/forward/<replaceable>user</replaceable></filename>
- (where <replaceable>user</replaceable> is your username) file
- containing the e-mail address where you want mail addressed to
- <replaceable>yourusername</replaceable>@FreeBSD.org to be forwarded.
- This includes all of the commit messages as well as any other mail
- addressed to <email>cvs-committers@FreeBSD.org</email> and
- <email>developers@FreeBSD.org</email>. Really
- large mailboxes which have taken up permanent residence on
- <hostid>hub</hostid> often get <quote>accidently</quote> truncated
- without warning, so forward it or read it and you will not lose
- it.</para>
- </listitem>
- </itemizedlist>
-
- <para>All new committers also have a mentor assigned to them for
- the first few months. Your mentor is more or less responsible for
- explaining anything which is confusing to you and is also
- responsible for your actions during this initial period. If you
- make a bogus commit, it is only going to embarrass your mentor
- and you should probably make it a policy to pass at least your
- first few commits by your mentor before committing it to the
- repository.</para>
-
- <para>All commits should go to <literal>-CURRENT</literal> first
- before being merged to <literal>-STABLE</literal>. No major new
- features or high-risk modifications should be made to the
- <literal>-STABLE</literal> branch.</para>
- </sect1>
-
- <sect1 id="developer.relations">
- <title>Developer Relations</title>
-
- <para>If you are working directly on your own code or on code
- which is already well established as your responsibility, then
- there is probably little need to check with other committers
- before jumping in with a commit. If you see a bug in an area of
- the system which is clearly orphaned (and there are a few such
- areas, to our shame), the same applies. If, however, you are
- about to modify something which is clearly being actively
- maintained by someone else (and it is only by watching the
- <literal>cvs-committers</literal> mailing list that you can
- really get a feel for just what is and is not) then consider
- sending the change to them instead, just as you would have
- before becoming a committer. For ports, you should contact the
- listed <makevar>MAINTAINER</makevar> in the
- <filename>Makefile</filename>. For other parts of the
- repository, if you are unsure who the active maintainer might
- be, it may help to scan the output of <command>cvs log</command>
- to see who has committed changes in the past. &a.fenner; has
- written a nice shell script that can help determine who the
- active maintainer might be. It lists each person who has
- committed to a given file along with the number of commits each
- person has made. It can be found on <hostid>freefall</hostid>
- at <filename>~fenner/bin/whodid</filename>. If your queries go
- unanswered or the committer otherwise indicates a lack of
- proprietary interest in the area affected, go ahead and commit
- it.</para>
-
- <para>If you are unsure about a commit for any reason at
- all, have it reviewed by <literal>-hackers</literal>
- before committing. Better to have it flamed then and there
- rather than when it is part of the CVS repository. If you do
- happen to commit something which results in controversy
- erupting, you may also wish to consider backing the change out
- again until the matter is settled. Remember &ndash; with CVS we
- can always change it back.</para>
- </sect1>
-
- <sect1 id="gnats">
- <title>GNATS</title>
-
- <para>The FreeBSD Project utilizes
- <application>GNATS</application> for tracking bugs and change
- requests. Be sure that if you commit a fix or suggestion found
- in a <application>GNATS</application> PR, you use
- <command>edit-pr <replaceable>pr-number</replaceable></command>
- on <hostid>freefall</hostid> to close it. It is also considered
- nice if you take time to close any PRs associated with your
- commits, if appropriate. Your can also make use of
- &man.send-pr.1; yourself for proposing any change which you feel
- should probably be made, pending a more extensive peer-review
- first.</para>
-
- <para>You can find out more about <application>GNATS</application>
- at:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html">http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.FreeBSD.org/support.html">http://www.FreeBSD.org/support.html</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</ulink></para>
- </listitem>
-
- <listitem>
- <para>&man.send-pr.1;</para>
- </listitem>
- </itemizedlist>
-
- <para>You can run a local copy of GNATS, and then integrate the FreeBSD
- GNATS tree in to it using CVSup. Then you can run GNATS commands
- locally, or use other interfaces, such as <command>tkgnats</command>.
- This lets you query the PR database without needing to be connected to
- the Internet.</para>
-
- <procedure>
- <title>Using a local GNATS tree</title>
-
- <step>
- <para>If you are not already downloading the GNATS tree, add this line
- to your <filename>supfile</filename>, and re-sup. Note that since
- GNATS is not under CVS control it has no tag, so if you are adding
- it to your existing <filename>supfile</filename> it should appear
- before any <quote>tag=</quote> entry as these remain active once set.
- </para>
-
- <programlisting>gnats release=current prefix=/usr</programlisting>
-
- <para>This will place the FreeBSD GNATS tree in
- <filename>/usr/gnats</filename>. You can use a
- <emphasis>refuse</emphasis> file to control which categories to
- receive. For example, to only receive <literal>docs</literal> PRs,
- put this line in
- <filename>/usr/local/etc/cvsup/sup/refuse</filename><footnote>
- <para>The precise path depends on the <literal>*default
- base</literal> setting in your
- <filename>supfile</filename>.</para>
- </footnote>.</para>
-
- <programlisting>gnats/[a-ce-z]*</programlisting>
-
- <para>The rest of these examples assume you have only supped the
- <literal>docs</literal> category. Adjust them as necessary,
- depending on the categories you are synching.</para>
- </step>
-
- <step>
- <para>Install the GNATS port from
- <filename>ports/databases/gnats</filename>. This will place the
- various GNATS directories under
- <filename>$PREFIX/share/gnats</filename>.</para>
- </step>
-
- <step>
- <para>Symlink the GNATS directories you are supping under the version
- of GNATS you have installed.</para>
-
- <screen>&prompt.root; <userinput>cd /usr/local/share/gnats/gnats-db</userinput>
-&prompt.root; <userinput>ln -s /usr/gnats/docs</userinput></screen>
-
- <para>Repeat as necessary, depending on how many GNATS categories you
- are synching.</para>
- </step>
-
- <step>
- <para>Update the GNATS <filename>categories</filename> file with these
- categories. The file is
- <filename>$PREFIX/share/gnats/gnats-db/gnats-adm/categories</filename>.</para>
-
- <programlisting># This category is mandatory
-pending:Category for faulty PRs:gnats-admin:
-#
-# FreeBSD categories
-#
-docs:Documentation Bug:nik:</programlisting>
- </step>
-
- <step>
- <para>Run <filename>$PREFIX/libexec/gnats/gen-index</filename> to
- recreate the GNATS index. The output has to be redirected to
- <filename>$PREFIX/share/gnats/gnats-db/gnats-adm/index</filename>.
- You can do this periodically from &man.cron.8;, or run &man.cvsup.1;
- from a shell script that does this as well.</para>
-
- <screen>&prompt.root; <userinput>/usr/local/libexec/gnats/gen-index \
- > /usr/local/share/gnats/gnats-db/gnats-adm/index</userinput></screen>
- </step>
-
- <step>
- <para>Test the configuration by querying the PR database. This
- command shows open <literal>docs</literal> PRs.</para>
-
- <screen>&prompt.root; <userinput>query-pr -c docs -s open</userinput></screen>
-
- <para>Other interfaces, like
- <filename>ports/databases/tkgnats</filename> should also work
- nicely.</para>
- </step>
-
- <step>
- <para>Pick a PR and close it.</para>
- </step>
- </procedure>
-
- <note>
- <para>This procedure only works to allow you to view and query the PRs
- locally. To edit or close them you will still have to log in to
- <hostid>freefall</hostid> and do it from there.</para>
- </note>
- </sect1>
-
- <sect1 id="people">
- <title>Who's Who</title>
-
- <para>Besides Peter Wemm and John Polstra, the repository
- meisters, there are other FreeBSD project members whom you will
- probably get to know in your role as a committer. Briefly,
- and by no means all-inclusively, these are:</para>
-
- <variablelist>
- <varlistentry>
- <term>&a.asami;</term>
-
- <listitem>
- <para>Satoshi is the Ports Wraith, meaning that he has
- ultimate authority over any modifications to the ports
- collection or the ports skeleton makefiles. He is also
- the one responsible for administering ports freezes before
- the releases.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.bde;</term>
-
- <listitem>
- <para>Bruce is the Obersturmbahnfuhrer of the Style Police.
- When you do a commit that could have been done better,
- Bruce will be there to tell you. Be thankful that someone
- is. Bruce is also very knowledgeable on the various
- standards applicable to FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.gallatin;</term>
- <term>&a.mjacob;</term>
- <term>&a.dfr;</term>
- <term>&a.obrien;</term>
-
- <listitem>
- <para>These are the primary developers and overseers of the
- DEC Alpha AXP platform.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.dg;</term>
-
- <listitem>
- <para>David is the overseer of the
- VM system. If you have a VM system change in mind,
- coordinate it with David.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.jkh;</term>
-
- <listitem>
- <para>Jordan is the release engineer. He is responsible for
- setting release deadlines and controlling the release
- process. During code freezes, he also has final authority
- on all changes to the system for whichever branch is
- pending release status. If there is something you want
- merged from <literal>-CURRENT</literal> to
- <literal>-STABLE</literal> (whatever values those may have
- at any given time), he is also the one to talk to about
- it.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.obrien;</term>
-
- <listitem>
- <para>David is the unofficial Obersturmbahnfuhrer of
- <filename>src/contrib</filename>. If you have something
- significant you'd like to do there, you should probably
- coordinate it with David first. Please consult him before
- importing into <filename>src/contrib</filename> if you have
- never done this before in the FreeBSD CVS repository. Also
- if you need to commit to something you do not maintain in
- <filename>src/contrib</filename> and it is unclear who the
- maintainer / point of contact is. (It is also not a bad idea
- to consult David if you need to make a non-import commit to
- something you maintain in <filename>src/contrib</filename> and
- you are new to how FreeBSD does things.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.brian;</term>
-
- <listitem>
- <para>Official maintainer of
- <filename>/usr/sbin/ppp</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.wollman;</term>
-
- <listitem>
- <para>If you need advice on obscure network internals or
- aren't sure of some potential change to the networking
- subsystem you have in mind, Garrett is someone to talk
- to. Garrett is also very knowledgeable on the various
- standards applicable to FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.bmah;</term>
-
- <listitem>
- <para>Bruce is keeper of the release notes
- (<filename>src/release/texts/*</filename>). If you commit a
- change that you think is worthy of mention in the release notes,
- please make sure Bruce knows about it. Better still, send him
- a patch with your suggested commentary for the release
- notes.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.ru;</term>
-
- <listitem>
- <para>Ruslan is Mr mdoc(7). If you are writing a man page and need
- some advice on the structure, or the markup, ask Ruslan.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.committers;</term>
-
- <listitem>
- <para>cvs-committers is the entity that CVS uses to send you all your
- commit messages. You should <emphasis>never</emphasis> send email
- directly to this list. You should only send replies to this list
- when they are short and are directly related to a commit.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.developers;</term>
-
- <listitem>
- <para>developers is all committers. This list was created to be a
- forum for the committers "community" issues. Examples are Core
- voting, announcements, etc... developers@FreeBSD.org is
- <emphasis>not</emphasis> intended as a place for code reviews or a
- replacement for arch@FreeBSD.org or audit@FreeBSD.org. In fact
- using it as such hurts the FreeBSD Project as it gives a sense of a
- closed list where general decisions affecting all of the FreeBSD
- using community are made with out being "open".</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="ssh.guide">
- <title>SSH Quick-Start Guide</title>
-
- <procedure>
- <step>
- <para>If you are using FreeBSD 4.0 or later,
- OpenSSH is included in the base system.
- If you are using an earlier release,
- update and install one of the SSH ports. In general,
- you will probably want to get OpenSSH from the port in
- <filename>/usr/ports/security/openssh</filename>. You
- may also wish to check out the original ssh1 in
- <filename>/usr/ports/security/ssh</filename>, but make
- certain you pay attention to its license. Note that both
- of these ports cannot be installed at the same time.</para>
- </step>
-
- <step>
- <para>If you do not wish to type your password in every
- time you use &man.ssh.1;, and you use RSA keys to
- authenticate, &man.ssh-agent.1; is there for your
- convenience. If you want to use &man.ssh-agent.1;, make
- sure that you run it before running other applications. X
- users, for example, usually do this from their
- <filename>.xsession</filename> or
- <filename>.xinitrc</filename> file. See &man.ssh-agent.1;
- for details.</para>
- </step>
-
- <step>
- <para>Generate a key pair using &man.ssh-keygen.1;. The key
- pair will wind up in the
- <filename><envar>$HOME</envar>/.ssh</filename>
- directory.</para>
- </step>
-
- <step>
- <para>Send your public key
- (<filename><envar>$HOME</envar>/.ssh/identity.pub</filename>)
- to the person setting you up as a committer so it can be put
- into your <filename>authorized_keys</filename> file in your
- home directory on <hostid>freefall</hostid>
- (i.e.
- <filename><envar>$HOME</envar>/.ssh/authorized_keys</filename>).
- </para>
- </step>
- </procedure>
-
- <para>Now you should be able to use &man.ssh-add.1; for
- authentication once per session. This will prompt you for
- your private key's pass phrase, and then store it in your
- authentication agent (&man.ssh-agent.1;). If you no longer
- wish to have your key stored in the agent, issuing
- <command>ssh-add -d</command> will remove it.</para>
-
- <para>Test by doing something such as <command>ssh
- freefall.FreeBSD.org ls /usr</command>.</para>
-
- <para>For more information, see
- <filename>/usr/ports/security/openssh</filename>, &man.ssh.1;,
- &man.ssh-add.1;, &man.ssh-agent.1;, &man.ssh-keygen.1;, and
- &man.scp.1;.</para>
- </sect1>
-
- <sect1>
- <title>The FreeBSD Committers' Big List of Rules</title>
-
- <orderedlist>
- <listitem>
- <para>Respect other committers.</para>
- </listitem>
-
- <listitem>
- <para>Respect other contributors.</para>
- </listitem>
-
- <listitem>
- <para>Discuss any significant change
- <emphasis>before</emphasis> committing.</para>
- </listitem>
-
- <listitem>
- <para>Respect existing maintainers if listed in the
- (<makevar>MAINTAINER</makevar> field in
- <filename>Makefile</filename> or in the
- <filename>MAINTAINER</filename> file in the top-level
- directory).</para>
- </listitem>
-
- <listitem>
- <para>Never touch the repository directly. Ask a
- Repomeister.</para>
- </listitem>
-
- <listitem>
- <para>Any disputed change must be backed out pending
- resolution of the dispute if requested by a maintainer.
- Security related changes may
- override a maintainer's wishes at the Security Officer's
- discretion.</para>
- </listitem>
-
- <listitem>
- <para>Changes go to <literal>-CURRENT</literal> before
- <literal>-STABLE</literal> unless specifically permitted by
- the release engineer or unless they're not applicable to
- <literal>-CURRENT</literal>. Any non-trivial or non-urgent
- change which is applicable should also be allowed to sit in
- <literal>-CURRENT</literal> for at least 3 days before
- merging so that it can be given sufficient testing. The
- release engineer has the same authority over the
- <literal>-STABLE</literal> branch as outlined for the
- maintainer in rule #5.</para>
- </listitem>
-
- <listitem>
- <para>Don't fight in public with other committers; it looks
- bad. If you must <quote>strongly disagree</quote> about
- something, do so only in private.</para>
- </listitem>
-
- <listitem>
- <para>Respect all code freezes and read the
- <literal>committers</literal> mailing list on a timely basis
- so you know when a code freeze is in effect.</para>
- </listitem>
-
- <listitem>
- <para>When in doubt on any procedure, ask first!</para>
- </listitem>
-
- <listitem>
- <para>Test your changes before committing them.</para>
- </listitem>
- </orderedlist>
-
- <para>As noted, breaking some of these rules can be grounds for
- suspension or, upon repeated offense, permanent removal of
- commit privileges. Three or more members of core
- acting in unison,
- have the power to temporarily suspend commit privileges until
- <literal>-core</literal> as a whole has the chance to review the
- issue. In case of an <quote>emergency</quote> (a committer
- doing damage to the repository), a temporary suspension may also
- be done by the repository meisters or any other member of core
- who may happen to be awake at the time. Only core as a whole
- has the authority to suspend commit privileges for any
- significant length of time or to remove them permanently, the
- latter generally only being done after consultation with
- committers. This rule does not exist to set core up as a bunch
- of cruel dictators who can dispose of committers as casually as
- empty soda cans, but to give the project a kind of safety fuse.
- If someone is seriously out of control, it's important to be
- able to deal with this immediately rather than be paralyzed by
- debate. In all cases, a committer whose privileges are
- suspended or revoked is entitled to a <quote>hearing</quote>,
- the total duration of the suspension being determined at that
- time. A committer whose privileges are suspended may also
- request a review of the decision after 30 days and every 30 days
- thereafter (unless the total suspension period is less than 30
- days). A committer whose privileges have been revoked entirely
- may request a review after a period of 6 months have elapsed.
- This review policy is <emphasis>strictly informal</emphasis>
- and, in all cases, core reserves the right to either act on or
- disregard requests for review if they feel their original
- decision to be the right one.</para>
-
- <para>In all other aspects of project operation, core is a subset
- of committers and is bound by the <emphasis>same
- rules</emphasis>. Just because someone is in core doesn't mean
- that they have special dispensation to step outside of any of
- the lines painted here; core's <quote>special powers</quote>
- only kick in when it acts as a group, not on an individual
- basis. As individuals, we are all committers first and core
- second.</para>
-
- <sect2>
- <title>Details</title>
-
- <orderedlist>
- <listitem>
- <para>Respect other committers.</para>
-
- <para>This means that you need to treat other committers as
- the peer-group developers that they are. Despite our
- occasional attempts to prove the contrary, one doesn't get
- into committers by being stupid and nothing rankles more
- than being treated that way by one of your peers. Whether
- we always feel respect for one another or not (and
- everyone has off days), we still have to
- <emphasis>treat</emphasis> other committers with respect
- at all times or the whole team structure rapidly breaks
- down.</para>
-
- <para>Being able to work together long term is this project's
- greatest asset, one far more important than any set of
- changes to the code, and turning arguments about code into
- issues that affect our long-term ability to work
- harmoniously together is just not worth the trade-off by
- any conceivable stretch of the imagination.</para>
-
- <para>To comply with this rule, don't send email when you're
- angry or otherwise behave in a manner which is likely to
- strike others as needlessly confrontational. First calm
- down, then think about how to communicate in the most
- effective fashion for convincing the other person(s) that
- your side of the argument is correct, don't just blow off
- some steam so you can feel better in the short term at the
- cost of a long-term flame war. Not only is this very bad
- <quote>energy economics</quote>, but repeated displays of
- public aggression which impair our ability to work well
- together will be dealt with severely by the project
- leadership and may result in suspension or termination of
- your commit privileges. That's never an option which the
- project's leadership enjoys in the slightest, but unity
- comes first. No amount of code or good advice is worth
- trading that away.</para>
- </listitem>
-
- <listitem>
- <para>Respect other contributors.</para>
-
- <para>You weren't always a committer. At one time you were
- a contributor. Remember that at all times. Remember what
- it was like trying to get help and attention. Don't forget
- that your work as a contributor time was very important to
- you. Remember what it was like. Don't discourage, belittle,
- or demean contributors. Treat them with respect. They are
- our committers in waiting. They are every bit as important
- to the project as committers. Their contributions are as
- valid and as important as your own. After all, you made
- many contributions before you became a committer. Always
- remember that. </para>
-
- <para>Consider the points raised under 'Respect other committers'
- and apply them also to contributors.</para>
- </listitem>
-
- <listitem>
- <para>Discuss any significant change
- <emphasis>before</emphasis> committing.</para>
-
- <para>The CVS repository is not where changes should be
- initially submitted for correctness or argued over, that
- should happen first in the mailing lists and then
- committed only once something resembling consensus has
- been reached. This doesn't mean that you have to ask
- permission before correcting every obvious syntax error or
- man page misspelling, simply that you should try to
- develop a feel for when a proposed change isn't quite such
- a no-brainer and requires some feedback first. People
- really don't mind sweeping changes if the result is
- something clearly better than what they had before, they
- just don't like being <emphasis>surprised</emphasis> by
- those changes. The very best way of making sure that
- you're on the right track is to have your code reviewed by
- one or more other committers.</para>
-
- <para>When in doubt, ask for review!</para>
- </listitem>
-
- <listitem>
- <para>Respect existing maintainers if listed.</para>
-
- <para>Many parts of FreeBSD aren't <quote>owned</quote> in
- the sense that any specific individual will jump up and
- yell if you commit a change to <quote>their</quote> area,
- but it still pays to check first. One convention we use
- is to put a maintainer line in the
- <filename>Makefile</filename> for any package or subtree
- which is being actively maintained by one or more people;
- see <ulink
- url="http://www.FreeBSD.org/handbook/policies.html">http://www.FreeBSD.org/handbook/policies.html</ulink>
- for documentation on this. Where sections of code have
- several maintainers, commits to affected areas by one
- maintainer need to be reviewed by at least one other
- maintainer. In cases where the
- <quote>maintainer-ship</quote> of something isn't clear,
- you can also look at the CVS logs for the file(s) in
- question and see if someone has been working recently or
- predominantly in that area.</para>
-
- <para>Other areas of FreeBSD fall under the control of
- someone who manages an overall category of FreeBSD
- evolution, such as internationalization or networking.
- See <ulink url="http://www.FreeBSD.org/handbook/staff-who.html">http://www.FreeBSD.org/handbook/staff-who.html</ulink>
- for more information on this.</para>
- </listitem>
-
- <listitem>
- <para>Never touch the repository directly. Ask a
- Repomeister.</para>
-
- <para>This is pretty clear - you're not allowed to make
- direct modifications to the CVS repository, period. In
- case of difficulty, ask one of the repository meisters by
- sending mail to <email>cvs@FreeBSD.org</email> and simply
- wait for them to fix the problem and get back to you. Do
- not attempt to fix the problem yourself!</para>
-
- <para>If you're thinking about putting down a tag or doing a
- new import of code on a vendor branch, you might also find
- it useful to ask for advice first. A lot of people get
- this wrong the first few times and the consequences are
- expensive in terms of files touched and angry CVSup/CTM
- folks who are suddenly getting a lot of changes sent over
- unnecessarily.</para>
- </listitem>
-
- <listitem>
- <para>Any disputed change must be backed out pending
- resolution of the dispute if requested by a maintainer
- Security related changes may
- override a maintainer's wishes at the Security Officer's
- discretion.</para>
-
- <para>This may be hard to swallow in times of conflict (when
- each side is convinced that they're in the right, of
- course) but CVS makes it unnecessary to have an ongoing
- dispute raging when it's far easier to simply reverse the
- disputed change, get everyone calmed down again and then
- try and figure out how best to proceed. If the change
- turns out to be the best thing after all, it can be easily
- brought back. If it turns out not to be, then the users
- didn't have to live with the bogus change in the tree
- while everyone was busily debating its merits. People
- very very rarely call for back-outs in the repository
- since discussion generally exposes bad or controversial
- changes before the commit even happens, but on such rare
- occasions the back-out should be done without argument so
- that we can get immediately on to the topic of figuring
- out whether it was bogus or not.</para>
- </listitem>
-
- <listitem>
- <para>Changes go to <literal>-CURRENT</literal> before
- <literal>-STABLE</literal> unless specifically permitted
- by the release engineer or unless they're not applicable
- to <literal>-CURRENT</literal>. Any non-trivial or
- non-urgent change which is applicable should also be
- allowed to sit in <literal>-CURRENT</literal> for at least
- 3 days before merging so that it can be given sufficient
- testing. The release engineer has the same authority over
- the <literal>-STABLE</literal> branch as outlined in rule
- #5.</para>
-
- <para>This is another <quote>don't argue about it</quote>
- issue since it's the release engineer who is ultimately
- responsible (and gets beaten up) if a change turns out to
- be bad. Please respect this and give the release engineer
- your full cooperation when it comes to the
- <literal>-STABLE</literal> branch. The management of
- <literal>-STABLE</literal> may frequently seem to be
- overly conservative to the casual observer, but also bear
- in mind the fact that conservatism is supposed to be the
- hallmark of <literal>-STABLE</literal> and different rules
- apply there than in <literal>-CURRENT</literal>. There's
- also really no point in having <literal>-CURRENT</literal>
- be a testing ground if changes are merged over to
- <literal>-STABLE</literal> immediately. Changes need a
- chance to be tested by the <literal>-CURRENT</literal>
- developers, so allow some time to elapse before merging
- unless the <literal>-STABLE</literal> fix is critical,
- time sensitive or so obvious as to make further testing
- unnecessary (spelling fixes to manpages, obvious bug/typo
- fixes, etc.) In other words, apply common sense.</para>
- </listitem>
-
- <listitem>
- <para>Don't fight in public with other committers; it looks
- bad. If you must <quote>strongly disagree</quote> about
- something, do so only in private.</para>
-
- <para>This project has a public image to uphold and that
- image is very important to all of us, especially if we are
- to continue to attract new members. There will be
- occasions when, despite everyone's very best attempts at
- self-control, tempers are lost and angry words are
- exchanged, and the best we can do is try and minimize the
- effects of this until everyone has cooled back down. That
- means that you should not air your angry words in public
- and you should not forward private correspondence to
- public mailing lists or aliases. What people say
- one-to-one is often much less sugar-coated than what they
- would say in public, and such communications therefore
- have no place there - they only serve to inflame an
- already bad situation. If the person sending you a
- flame-o-gram at least had the grace to send it privately,
- then have the grace to keep it private yourself. If you
- feel you are being unfairly treated by another developer,
- and it is causing you anguish, bring the matter up with
- core rather than taking it public. We will do our best to
- play peace makers and get things back to sanity. In cases
- where the dispute involves a change to the codebase and
- the participants do not appear to be reaching an amicable
- agreement, core may appoint a mutually-agreeable 3rd party
- to resolve the dispute. All parties involved must then
- agree to be bound by the decision reached by this 3rd
- party.</para>
- </listitem>
-
- <listitem>
- <para>Respect all code freezes and read the
- <literal>committers</literal> mailing list on a timely
- basis so you know when they are.</para>
-
- <para>Committing changes during a code freeze is a really
- big mistake and committers are expected to keep up-to-date
- on what's going on before jumping in after a long absence
- and committing 10 megabytes worth of accumulated stuff.
- People who abuse this on a regular basis will have their
- commit privileges suspended until they get back from the
- FreeBSD Happy Reeducation Camp we run in Greenland.</para>
- </listitem>
-
- <listitem>
- <para>When in doubt on any procedure, ask first!</para>
-
- <para>Many mistakes are made because someone is in a hurry
- and just assumes they know the right way of doing
- something. If you have not done it before, chances are
- good that you do not actually know the way we do things
- and really need to ask first or you are going to
- completely embarrass yourself in public. There's no shame
- in asking <quote>how in the heck do I do this?</quote> We
- already know you are an intelligent person; otherwise, you
- would not be a committer.</para>
- </listitem>
-
- <listitem>
- <para>Test your changes before committing them.</para>
-
- <para>This may sound obvious, but if it really were so
- obvious then we probably wouldn't see so many cases of
- people clearly not doing this. If your changes are to the
- kernel, make sure you can still compile both GENERIC and
- LINT. If your changes are anywhere else, make sure you
- can still make world. If your changes are to a branch,
- make sure your testing occurs with a machine which is
- running that code. If you have a change which also may
- break another architecture, be sure and test on all
- supported architectures. Currently, this is only the x86
- and the Alpha so it's pretty easy to do. If you need to
- test on the AXP, your account on <hostid
- role="fqdn">beast.FreeBSD.org</hostid> will let you
- compile and test Alpha binaries/kernels/etc. As other
- architectures are added to the FreeBSD supported platforms
- list, the appropriate shared testing resources will be
- made available.</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Other Suggestions</title>
-
- <para>When committing documentation changes, use a spell checker
- before committing. :) For all SGML docs, you should also
- verify that your formatting directives are correct by running
- <command>make lint</command>.</para>
-
- <para>For all on-line manual pages, run <command>manck</command>
- (from ports) over the man page to verify the all of the cross
- references and file references are correct and that the man
- page has all of the appropriate <makevar>MLINK</makevar>s
- installed.</para>
-
- <para>Do not mix style fixes with new functionality. A style
- fix is any change which does not modify the functionality of
- the code. Mixing the changes obfuscates the functionality
- change when using <command>cvs diff</command>, which can hide
- any new bugs. Do not include whitespace changes with content
- changes in commits to <filename>doc/</filename> or
- <filename>www/</filename>. The extra clutter in the diffs
- makes the translators' job much more difficult. Instead, make
- any style or whitespace changes in separate commits that are
- clearly labeled as such in the commit message.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Ports Specific FAQ</title>
-
- <qandaset>
- <qandadiv>
- <title>Adding a New Port</title>
-
- <qandaentry>
- <question>
- <para>How do I add a new port?</para>
- </question>
-
- <answer>
- <para>First, please read the section about repository
- copy.</para>
-
- <para>The easiest way to add a new port is to use the
- <command>addport</command> script on
- <hostid>freefall</hostid>. It will add a port from the
- directory you specify, determining the category automatically
- from the port <filename>Makefile</filename>.
- It will also add an entry to the
- <filename>CVSROOT/modules</filename> file and the port's
- category <filename>Makefile</filename>. It was
- written by &a.mharo; and &a.will;, but Will is the current
- maintainer so please send questions/patches about
- <command>addport</command> to him.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Any other things I need to know when I add a new
- port?</para>
- </question>
-
- <answer>
- <para>Check the port, preferably to make sure it compiles
- and packages correctly. This is the recommended
- sequence:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&prompt.root; <userinput>make package</userinput>
-&prompt.root; <userinput>make deinstall</userinput>
-&prompt.root; <userinput>pkg_add <replaceable>package you built above</replaceable></userinput>
-&prompt.root; <userinput>make deinstall</userinput>
-&prompt.root; <userinput>make reinstall</userinput>
-&prompt.root; <userinput>make package</userinput>
- </screen>
-
- <para>The
- <ulink url="http://www.FreeBSD.org/porters-handbook/index.html">Porters
- Handbook</ulink> contains more detailed
- instructions.</para>
-
- <para>Use &man.portlint.1; to check the syntax of the port.
- You don't necessarily have to eliminate all warnings but
- make sure you have fixed the simple ones.</para>
-
- <para>If the port came from a submitter who has not
- contributed to the project before, add that person's
- name to the Handbook's <citetitle
- pubwork="section">Additional Contributors</citetitle>
- section.</para>
-
- <para>Close the PR if the port came in as a PR. To close
- a PR, just do
- <userinput>edit-pr <replaceable>PR#</replaceable></userinput>
- on <hostid>freefall</hostid> and change the
- <varname>state</varname> from <constant>open</constant>
- to <constant>closed</constant>. You will be asked to
- enter a log message and then you are done.</para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Repository Copies</title>
-
- <qandaentry>
- <question>
- <para>When do we need a repository copy?</para>
- </question>
-
- <answer>
- <para>When you want to add a port that is related to
- any port that is already in the tree in a separate
- directory, please send mail to the ports manager asking
- about it. Here <wordasword>related</wordasword> means
- it is a different version or a slightly modified
- version. Examples are
- <filename>print/ghostscript*</filename> (different
- versions) and <filename>x11-wm/windowmaker*</filename>
- (English-only and internationalized version).</para>
-
- <para>Another example is when a port is moved from one
- subdirectory to another, or when you want to change the
- name of a directory because the author(s) renamed their
- software even though it is a
- descendant of a port already in a tree.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>When do we <emphasis>not</emphasis> need a
- repository copy?</para>
- </question>
-
- <answer>
- <para>When there is no history to preserve. If a port is
- added into a wrong category and is moved immediately,
- it suffices to simply <command>cvs remove</command> the
- old one and <command>addport</command> the new
- one.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What do I need to do?</para>
- </question>
-
- <answer>
- <para>Send mail to the ports manager, who will do a copy
- from the old location/name to the new location/name.
- You will then get a notice, at which point you are
- expected to perform the following:</para>
-
- <procedure>
- <step>
- <para><command>cvs remove</command> the old port (if
- necessary)</para>
- </step>
-
- <step>
- <para>Adjust the parent (category)
- <filename>Makefile</filename></para>
- </step>
-
- <step>
- <para>Update <filename>CVSROOT/modules</filename></para>
- </step>
-
- <step>
- <para>If other ports depend on the updated port,
- change their <filename>Makefile</filename>s'
- dependency lines</para>
- </step>
-
- <step>
- <para>If the port changed categories, modify the
- <makevar>CATEGORIES</makevar> line of the port's
- <filename>Makefile</filename> accordingly</para>
- </step>
- </procedure>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Ports Freeze</title>
-
- <qandaentry>
- <question>
- <para>What is a <quote>ports freeze</quote>?</para>
- </question>
-
- <answer>
- <para>Before a release, it is necessary to restrict
- commits to the ports tree for a short period of time
- while the packages and the release itself are being
- built. This is to ensure consistency among the various
- parts of the release, and is called the <quote>ports
- freeze</quote>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How long is a ports freeze?</para>
- </question>
-
- <answer>
- <para>Usually an hour or two.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What does it mean to me?</para>
- </question>
-
- <answer>
- <para>During the ports freeze, you are not allowed to
- commit anything to the tree without explicit approval
- from the ports manager. <quote>Explicit
- approval</quote> here means either of the
- following:</para>
-
- <itemizedlist>
- <listitem>
- <para>You asked the ports manager and got a reply
- saying, <quote>Go ahead and commit
- it.</quote></para>
- </listitem>
-
- <listitem>
- <para>The ports manager sent a mail to you or the
- mailing lists during the ports freeze pointing out
- that the port is broken and has to be fixed.</para>
- </listitem>
- </itemizedlist>
-
- <para>Note that you do not have implicit permission to fix
- a port during the freeze just because it is
- broken.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How do I know when the ports freeze starts?</para>
- </question>
-
- <answer>
- <para>The ports manager will send out warning messages to
- the <email>freebsd-ports@FreeBSD.org</email> and
- <email>cvs-committers@FreeBSD.org</email> mailing lists
- announcing the start of the impending release, usually
- two or three weeks in advance. The exact starting time
- will not be determined until a few days before the
- actual release. This is because the ports freeze has to
- be synchronized with the release, and it is usually not
- known until then when exactly the release will be
- rolled.</para>
-
- <para>When the freeze starts, there will be another
- announcement to the
- <email>cvs-committers@FreeBSD.org</email> list, of
- course.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How do I know when the ports freeze ends?</para>
- </question>
-
- <answer>
- <para>A few hours after the release, the ports manager
- will send out a mail to the
- <email>freebsd-ports@FreeBSD.org</email> and
- <email>cvs-committers@FreeBSD.org</email> mailing lists
- announcing the end of the ports freeze. Note that the
- release being cut does not automatically end the freeze.
- We have to make sure there will not be any last minute
- snafus that result in an immediate re-rolling of the
- release.</para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Miscellaneous Questions</title>
-
- <qandaentry>
- <question>
- <para>How do I know if my port is building correctly or
- not?</para>
- </question>
-
- <answer>
- <para>First, go check
- <ulink url="http://bento.FreeBSD.org/~asami/errorlogs/">http://bento.FreeBSD.org/~asami/errorlogs/</ulink>.
-
- There you will find error logs from the latest package
- building runs on 3-stable, 4-stable and 5-current.</para>
-
- <para>However, just because the port doesn't show up there
- doesn't mean it's building correctly. (One of the
- dependencies may have failed, for instance.) Here are
- the relevant directories on bento, so feel free to dig
- around.</para>
-
- <programlisting> /a/asami/portbuild/3/errors error logs from latest 3-stable run
- /logs all logs from latest 3-stable run
- /packages packages from latest 3-stable run
- /bak/errors error logs from last complete 3-stable run
- /bak/logs all logs from last complete 3-stable run
- /bak/packages packages from last complete 3-stable run
- /4/errors error logs from latest 4-stable run
- /logs all logs from latest 4-stable run
- /packages packages from latest 4-stable run
- /bak/errors error logs from last complete 4-stable run
- /bak/logs all logs from last complete 4-stable run
- /bak/packages packages from last complete 4-stable run
- /5/errors error logs from latest 5-current run
- /logs all logs from latest 5-current run
- /packages packages from latest 5-current run
- /bak/errors error logs from last complete 5-current run
- /bak/logs all logs from last complete 5-current run
- /bak/packages packages from last complete 5-current run
- </programlisting>
-
- <para>Basically, if the port shows up in
- <filename>packages</filename>, or it is in
- <filename>logs</filename> but not in
- <filename>errors</filename>, it built fine. (The
- <filename>errors</filename> directories are what you get
- from the web page.)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I added a new port. Do I need to add it to the
- <filename>INDEX</filename>?</para>
- </question>
-
- <answer>
- <para>No. The ports manager will regenerate the
- <filename>INDEX</filename> and commit it every few
- days.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Are there any other files I'm not allowed to
- touch?</para>
- </question>
-
- <answer>
- <para>Any file directly under <filename>ports/</filename>, or
- any file under a subdirectory that starts with an
- uppercase letter (<filename>Mk/</filename>,
- <filename>Tools/</filename>, etc.). In particular, the
- ports manager is very protective of
- <filename>ports/Mk/bsd.port*.mk</filename> so don't
- commit changes to those files unless you want to face his
- wra(i)th.</para>
- </answer>
- </qandaentry>
- </qandadiv>
- </qandaset>
- </sect1>
-
- <sect1>
- <title>Miscellaneous Questions</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Why are trivial or cosmetic changes to files on a vendor
- branch a bad idea?</para>
- </question>
-
- <answer>
- <para>The RCS file format is quite braindead and certain
- operations to achieve things for CVS are hideously
- expensive for the repository. Making changes to files on
- a vendor branch, thereby pulling the file off that branch,
- is one example of this.</para>
-
- <para>Suppose you have a file which was first imported on a
- vendor branch, and was then re-imported three times (still
- on the vendor branch) as the vendor makes updates to the
- file.</para>
-
- <segmentedlist>
- <seglistitem>
- <seg>1.1.1.1</seg>
- <seg>vendor import</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>1.1.1.2</seg>
- <seg>vendor import, +1000, -500 lines</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>1.1.1.3</seg>
- <seg>vendor import, +2000, -500 lines</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>1.1.1.4</seg>
- <seg>vendor import, +1000, -1000 lines</seg>
- </seglistitem>
- </segmentedlist>
-
- <para>Now suppose that one of the FreeBSD committers makes a
- one line change to this file, causing it to go to version
- 1.2. This causes it to leave the branch, resulting in
- 4,001 lines being added to the file's history, and 2,001
- lines being deleted.</para>
-
- <para>This is because the 1.2 delta is stored relative to
- 1.1.1.1, <emphasis>not</emphasis> 1.1.1.4, and so the
- entire vendor history is duplicated in the 1.2 delta.
- Now, repeat this for 2000 files in a large directory, it
- adds up a lot.</para>
-
- <para><emphasis>This</emphasis> is why we have such
- <quote>hands off</quote> policies for
- <filename>src/contrib</filename> and other things that
- track the vendor releases. This is why <quote>typo
- fixes</quote> in man pages and spelling
- <quote>corrections</quote> are so strongly discouraged for
- vendor code.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How do I add a new file to a CVS branch?</para>
- </question>
-
- <answer>
- <para>To add a file onto a branch, simply checkout or update
- to the branch you want to add to and then add the file using
- <command>cvs add</command> as you normally would. For
- example, if you wanted to MFC the file
- <filename>src/sys/alpha/include/smp.h</filename> from HEAD
- to RELENG_4 and it does not exist in RELENG_4 yet, you would
- use the following steps:</para>
-
- <example>
- <title>MFC'ing a New File</title>
-
- <screen>&prompt.user; <userinput>cd sys/alpha/include</userinput>
-&prompt.user; <userinput>cvs update -rRELENG_4</userinput>
-cvs update: Updating .
-U clockvar.h
-U console.h
-...
-&prompt.user; <userinput>cvs update -kk -Ap smp.h &gt; smp.h</userinput>
-===================================================================
-Checking out smp.h
-RCS: /usr/cvs/src/sys/alpha/include/smp.h,v
-VERS: 1.1
-***************
-&prompt.user; <userinput>cvs add smp.h</userinput>
-cvs add: scheduling file `smp.h' for addition on branch `RELENG_4'
-cvs add: use 'cvs commit' to add this file permanently
-&prompt.user; <userinput>cvs commit</userinput>
- </screen>
- </example>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What <quote>meta</quote> information should I include in a
- commit message?</para>
- </question>
-
- <answer>
- <para>As well as including an informative message with each commit
- you may need to include some additional information as
- well.</para>
-
- <para>This information consists of one or more lines containing the
- the key word or phrase, a colon, tabs for formatting, and then the
- additional information.</para>
-
- <para>The key words or phrases are:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><literal>PR:</literal></entry>
- <entry>The problem report (if any) which is affected
- (typically, by being closed) by this commit.</entry>
- </row>
-
- <row>
- <entry><literal>Submitted by:</literal></entry>
- <entry>The name and e-mail address of the person that
- submitted the fix.</entry>
- </row>
-
- <row>
- <entry><literal>Reviewed by:</literal></entry>
- <entry>The name and e-mail address of the person or people
- that reviewed the change. If a patch was submitted to a
- mailing list for review, and the review was favourable,
- then just include the list name.</entry>
- </row>
-
- <row>
- <entry><literal>Approved by:</literal></entry>
- <entry>The name and e-mail address of the person or people
- that approved the change. It is customary to get prior
- approval for a commit if it is to an area of the tree to
- which you do not usually commit. In addition, during the
- run up to a new release all commits
- <emphasis>must</emphasis> be approved by the release
- engineer. If these are your first commits then you should
- have passed them past your mentor first for approval, and
- you should list your mentor.</entry>
- </row>
-
- <row>
- <entry><literal>Obtained from:</literal></entry>
- <entry>The name of the project (if any) from which the code
- was obtained.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <example>
- <title>Commit log for a commit based on a PR</title>
-
- <para>You want to commit a change based on a PR submitted by John
- Smith containing a patch. The end of the commit message should
- look something like this.</para>
-
- <programlisting>...
-
-PR: foo/12345
-Submitted by: John Smith &lt;John.Smith@example.com></programlisting>
- </example>
-
- <example>
- <title>Commit log for a commit needing review</title>
-
- <para>You want to change the virtual memory system. You have
- posted patches to the appropriate mailing list (in this case,
- <literal>freebsd-arch</literal>) and the changes have been
- approved.</para>
-
- <programlisting>...
-
-Reviewed by: -arch</programlisting>
- </example>
-
- <example>
- <title>Commit log for a commit needing approval</title>
-
- <para>You want to commit a change to a section of the tree with a
- MAINTAINER assigned. You have collaborated with the listed
- MAINTAINER, who has told you to go ahead and commit. The </para>
-
- <programlisting>...
-
-Approved by: <replaceable>abc</replaceable></programlisting>
-
- <para>Where <replaceable>abc</replaceable> is the account name of
- the person who approved.</para>
- </example>
-
- <example>
- <title>Commit log for a commit bringing in code from
- OpenBSD</title>
-
- <para>You want to commit some code based on work done in the
- OpenBSD project.</para>
-
- <programlisting>...
-
-Obtained from: OpenBSD</programlisting>
- </example>
-
- <para>In some cases you may need to combine some of these.</para>
-
- <para>Consider the situation where a user has submitted a PR
- containing code from the NetBSD project. You are looking at the
- PR, but it's not an area of the tree you normally work in, so
- you've decided to get the change reviewed by the
- <literal>arch</literal> mailing list.</para>
-
- <para>The extra information to include in the commit would look
- something like</para>
-
- <programlisting>PR: foo/54321
-Submitted by: John Smith &lt;John.Smith@example.com>
-Reviewed by: -arch
-Obtained from: NetBSD</programlisting>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/contributing/article.sgml b/en_US.ISO8859-1/articles/contributing/article.sgml
deleted file mode 100644
index d3efa591b6..0000000000
--- a/en_US.ISO8859-1/articles/contributing/article.sgml
+++ /dev/null
@@ -1,6292 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/contrib/chapter.sgml,v 1.406 2001/04/09 00:33:48 dd Exp $
--->
-
-<chapter id="contrib">
- <title>Contributing to FreeBSD</title>
-
- <para><emphasis>Contributed by &a.jkh;.</emphasis></para>
-
- <para>So you want to contribute something to FreeBSD? That is great! We can
- always use the help, and FreeBSD is one of those systems that
- <emphasis>relies</emphasis> on the contributions of its user base in order
- to survive. Your contributions are not only appreciated, they are vital
- to FreeBSD's continued growth!</para>
-
- <para>Contrary to what some people might also have you believe, you do not
- need to be a hot-shot programmer or a close personal friend of the FreeBSD
- core team in order to have your contributions accepted. The FreeBSD
- Project's development is done by a large and growing number of
- international contributors whose ages and areas of technical expertise
- vary greatly, and there is always more work to be done than there are
- people available to do it.</para>
-
- <para>Since the FreeBSD project is responsible for an entire operating
- system environment (and its installation) rather than just a kernel or a
- few scattered utilities, our <filename>TODO</filename> list also spans a
- very wide range of tasks, from documentation, beta testing and
- presentation to highly specialized types of kernel development. No matter
- what your skill level, there is almost certainly something you can do to
- help the project!</para>
-
- <para>Commercial entities engaged in FreeBSD-related enterprises are also
- encouraged to contact us. Need a special extension to make your product
- work? You will find us receptive to your requests, given that they are not
- too outlandish. Working on a value-added product? Please let us know! We
- may be able to work cooperatively on some aspect of it. The free software
- world is challenging a lot of existing assumptions about how software is
- developed, sold, and maintained throughout its life cycle, and we urge you
- to at least give it a second look.</para>
-
- <sect1 id="contrib-what">
- <title>What is Needed</title>
-
- <para>The following list of tasks and sub-projects represents something of
- an amalgam of the various core team <filename>TODO</filename> lists and
- user requests we have collected over the last couple of months. Where
- possible, tasks have been ranked by degree of urgency. If you are
- interested in working on one of the tasks you see here, send mail to the
- coordinator listed by clicking on their names. If no coordinator has
- been appointed, maybe you would like to volunteer?</para>
-
- <sect2>
- <title>High priority tasks</title>
-
- <para>The following tasks are considered to be urgent, usually because
- they represent something that is badly broken or sorely needed:</para>
-
- <orderedlist>
- <listitem>
- <para>3-stage boot issues. Overall coordination: &a.hackers;</para>
-
- <itemizedlist>
- <listitem>
- <para>Do WinNT compatible drive tagging so that the 3rd stage
- can provide an accurate mapping of BIOS geometries for
- disks.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Filesystem problems. Overall coordination: &a.fs;</para>
-
- <itemizedlist>
- <listitem>
- <para>Clean up and document the nullfs filesystem code.
- Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Fix the union file system. Coordinator: &a.dg;</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Implement Int13 vm86 disk driver. Coordinator:
- &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>New bus architecture. Coordinator: &a.newbus;</para>
-
- <itemizedlist>
- <listitem>
- <para>Port existing ISA drivers to new architecture.</para>
- </listitem>
-
- <listitem>
- <para>Move all interrupt-management code to appropriate parts of
- the bus drivers.</para>
- </listitem>
-
- <listitem>
- <para>Port PCI subsystem to new architecture. Coordinator:
- &a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>Figure out the right way to handle removable devices and
- then use that as a substrate on which PC-Card and CardBus
- support can be implemented.</para>
- </listitem>
-
- <listitem>
- <para>Resolve the probe/attach priority issue once and for
- all.</para>
- </listitem>
-
- <listitem>
- <para>Move any remaining buses over to the new
- architecture.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Kernel issues. Overall coordination: &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>Add more pro-active security infrastructure. Overall
- coordination: &a.security;</para>
-
- <itemizedlist>
- <listitem>
- <para>Build something like Tripwire(TM) into the kernel, with a
- remote and local part. There are a number of cryptographic
- issues to getting this right; contact the coordinator for
- details. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Make the entire kernel use <literal>suser()</literal>
- instead of comparing to 0. It is presently using about half
- of each. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Split securelevels into different parts, to allow an
- administrator to throw away those privileges he can throw
- away. Setting the overall securelevel needs to have the same
- effect as now, obviously. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Make it possible to upload a list of <quote>allowed
- program</quote> to BPF, and then block BPF from accepting other
- programs. This would allow BPF to be used e.g. for DHCP,
- without allowing an attacker to start snooping the local
- network.</para>
- </listitem>
-
- <listitem>
- <para>Update the security checker script. We should at least
- grab all the checks from the other BSD derivatives, and add
- checks that a system with securelevel increased also have
- reasonable flags on the relevant parts. Coordinator:
- &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Add authorization infrastructure to the kernel, to allow
- different authorization policies. Part of this could be done
- by modifying <literal>suser()</literal>. Coordinator:
- &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Add code to the NFS layer so that you cannot
- <literal>chdir("..")</literal> out of an NFS partition. E.g.,
- <filename>/usr</filename> is a UFS partition with
- <filename>/usr/src</filename> NFS exported. Now it is
- possible to use the NFS filehandle for
- <filename>/usr/src</filename> to get access to
- <filename>/usr</filename>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Medium priority tasks</title>
-
- <para>The following tasks need to be done, but not with any particular
- urgency:</para>
-
- <orderedlist>
- <listitem>
- <para>Full KLD based driver support/Configuration Manager.</para>
-
- <itemizedlist>
- <listitem>
- <para>Write a configuration manager (in the 3rd stage boot?)
- that probes your hardware in a sane manner, keeps only the
- KLDs required for your hardware, etc.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>PCMCIA/PCCARD. Coordinators: &a.msmith; and &a.imp;</para>
-
- <itemizedlist>
- <listitem>
- <para>Documentation!</para>
- </listitem>
-
- <listitem>
- <para>Reliable operation of the pcic driver (needs
- testing).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>sio.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>ed.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>ep.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>User-mode recognizer and handler (partially done).</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Advanced Power Management. Coordinators: &a.msmith; and
- &a.phk;</para>
-
- <itemizedlist>
- <listitem>
- <para>APM sub-driver (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>IDE/ATA disk sub-driver (partially done).</para>
- </listitem>
-
- <listitem>
- <para>syscons/pcvt sub-driver.</para>
- </listitem>
-
- <listitem>
- <para>Integration with the PCMCIA/PCCARD drivers
- (suspend/resume).</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Low priority tasks</title>
-
- <para>The following tasks are purely cosmetic or represent such an
- investment of work that it is not likely that anyone will get them
- done anytime soon:</para>
-
- <para>The first N items are from Terry Lambert
- <email>terry@lambert.org</email></para>
-
- <orderedlist>
- <listitem>
- <para>NetWare Server (protected mode ODI driver) loader and
- sub-services to allow the use of ODI card drivers supplied with
- network cards. The same thing for NDIS drivers and NetWare SCSI
- drivers.</para>
- </listitem>
-
- <listitem>
- <para>An "upgrade system" option that works on Linux boxes instead
- of just previous rev FreeBSD boxes.</para>
- </listitem>
-
- <listitem>
- <para>Symmetric Multiprocessing with kernel preemption (requires
- kernel preemption).</para>
- </listitem>
-
- <listitem>
- <para>A concerted effort at support for portable computers. This is
- somewhat handled by changing PCMCIA bridging rules and power
- management event handling. But there are things like detecting
- internal v.s.. external display and picking a different screen
- resolution based on that fact, not spinning down the disk if the
- machine is in dock, and allowing dock-based cards to disappear
- without affecting the machines ability to boot (same issue for
- PCMCIA).</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Smaller tasks</title>
-
- <para>Most of the tasks listed in the previous sections require either a
- considerable investment of time or an in-depth knowledge of the
- FreeBSD kernel (or both). However, there are also many useful tasks
- which are suitable for &quot;weekend hackers&quot;, or people without
- programming skills.</para>
-
- <orderedlist>
- <listitem>
- <para>If you run FreeBSD-current and have a good Internet
- connection, there is a machine <hostid
- role="fqdn">current.FreeBSD.org</hostid> which builds a full
- release once a day &mdash; every now and again, try and install
- the latest release from it and report any failures in the
- process.</para>
- </listitem>
-
- <listitem>
- <para>Read the freebsd-bugs mailing list. There might be a
- problem you can comment constructively on or with patches you
- can test. Or you could even try to fix one of the problems
- yourself.</para>
- </listitem>
-
- <listitem>
- <para>Read through the FAQ and Handbook periodically. If anything
- is badly explained, out of date or even just completely wrong, let
- us know. Even better, send us a fix (SGML is not difficult to
- learn, but there is no objection to ASCII submissions).</para>
- </listitem>
-
- <listitem>
- <para>Help translate FreeBSD documentation into your native language
- (if not already available) &mdash; just send an email to &a.doc;
- asking if anyone is working on it. Note that you are not
- committing yourself to translating every single FreeBSD document
- by doing this &mdash; in fact, the documentation most in need of
- translation is the installation instructions.</para>
- </listitem>
-
- <listitem>
- <para>Read the freebsd-questions mailing list and &ng.misc
- occasionally (or even regularly). It can be very satisfying to
- share your expertise and help people solve their problems;
- sometimes you may even learn something new yourself! These forums
- can also be a source of ideas for things to work on.</para>
- </listitem>
-
- <listitem>
- <para>If you know of any bug fixes which have been successfully
- applied to -current but have not been merged into -stable after a
- decent interval (normally a couple of weeks), send the committer a
- polite reminder.</para>
- </listitem>
-
- <listitem>
- <para>Move contributed software to <filename>src/contrib</filename>
- in the source tree.</para>
- </listitem>
-
- <listitem>
- <para>Make sure code in <filename>src/contrib</filename> is up to
- date.</para>
- </listitem>
-
- <listitem>
- <para>Look for year 2000 bugs (and fix any you find!)</para>
- </listitem>
-
- <listitem>
- <para>Build the source tree (or just part of it) with extra warnings
- enabled and clean up the warnings.</para>
- </listitem>
-
- <listitem>
- <para>Fix warnings for ports which do deprecated things like using
- gets() or including malloc.h.</para>
- </listitem>
-
- <listitem>
- <para>If you have contributed any ports, send your patches back to
- the original author (this will make your life easier when they
- bring out the next version)</para>
- </listitem>
-
- <listitem>
- <para>Suggest further tasks for this list!</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Work through the PR database</title>
-
- <para>The <ulink
- url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD PR
- list</ulink> shows all the current active problem reports and
- requests for enhancement that have been submitted by FreeBSD users.
- Look through the open PRs, and see if anything there takes your
- interest. Some of these might be very simple tasks, that just need an
- extra pair of eyes to look over them and confirm that the fix in the
- PR is a good one. Others might be much more complex.</para>
-
- <para>Start with the PRs that have not been assigned to anyone else, but
- if one them is assigned to someone else, but it looks like something
- you can handle, e-mail the person it is assigned to and ask if you can
- work on it&mdash;they might already have a patch ready to be tested,
- or further ideas that you can discuss with them.</para>
- </sect2>
- </sect1>
-
- <sect1 id="contrib-how">
- <title>How to Contribute</title>
-
- <para>Contributions to the system generally fall into one or more of the
- following 6 categories:</para>
-
- <sect2 id="contrib-general">
- <title>Bug reports and general commentary</title>
-
- <para>An idea or suggestion of <emphasis>general</emphasis> technical
- interest should be mailed to the &a.hackers;. Likewise, people with
- an interest in such things (and a tolerance for a
- <emphasis>high</emphasis> volume of mail!) may subscribe to the
- hackers mailing list by sending mail to &a.majordomo;. See <link
- linkend="eresources-mail">mailing lists</link> for more information
- about this and other mailing lists.</para>
-
- <para>If you find a bug or are submitting a specific change, please
- report it using the &man.send-pr.1; program or its <ulink
- url="http://www.FreeBSD.org/send-pr.html">WEB-based
- equivalent</ulink>. Try to fill-in each field of the bug report.
- Unless they exceed 65KB, include any patches directly in the report.
- When including patches, <emphasis>do not</emphasis> use cut-and-paste
- because cut-and-paste turns tabs into spaces and makes them unusable.
- Consider compressing patches and using &man.uuencode.1; if they exceed
- 20KB. Upload very large submissions to <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink>.</para>
-
- <para>After filing a report, you should receive confirmation along with
- a tracking number. Keep this tracking number so that you can update
- us with details about the problem by sending mail to
- <email>bug-followup@FreeBSD.org</email>. Use the number as the
- message subject, e.g. <literal>"Re: kern/3377"</literal>. Additional
- information for any bug report should be submitted this way.</para>
-
- <para>If you do not receive confirmation in a timely fashion (3 days to
- a week, depending on your email connection) or are, for some reason,
- unable to use the &man.send-pr.1; command, then you may ask
- someone to file it for you by sending mail to the &a.bugs;.</para>
- </sect2>
-
- <sect2>
- <title>Changes to the documentation</title>
-
- <para>Changes to the documentation are overseen by the &a.doc;. Send
- submissions and changes (even small ones are welcome!) using
- <command>send-pr</command> as described in <link
- linkend="contrib-general">Bug Reports and General
- Commentary</link>.</para>
- </sect2>
-
- <sect2>
- <title>Changes to existing source code</title>
-
- <para>An addition or change to the existing source code is a somewhat
- trickier affair and depends a lot on how far out of date you are with
- the current state of the core FreeBSD development. There is a special
- on-going release of FreeBSD known as <quote>FreeBSD-current</quote>
- which is made available in a variety of ways for the convenience of
- developers working actively on the system. See <link
- linkend="current">Staying current with FreeBSD</link> for more
- information about getting and using FreeBSD-current.</para>
-
- <para>Working from older sources unfortunately means that your changes
- may sometimes be too obsolete or too divergent for easy re-integration
- into FreeBSD. Chances of this can be minimized somewhat by
- subscribing to the &a.announce; and the &a.current; lists, where
- discussions on the current state of the system take place.</para>
-
- <para>Assuming that you can manage to secure fairly up-to-date sources
- to base your changes on, the next step is to produce a set of diffs to
- send to the FreeBSD maintainers. This is done with the &man.diff.1;
- command, with the <quote>context diff</quote> form
- being preferred. For example:</para>
-
- <para>
- <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
-
- or
-
- <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
-
- would generate such a set of context diffs for the given source file
- or directory hierarchy. See the man page for &man.diff.1; for more
- details.</para>
-
- <para>Once you have a set of diffs (which you may test with the
- &man.patch.1; command), you should submit them for inclusion with
- FreeBSD. Use the &man.send-pr.1; program as described in <link
- linkend="contrib-general">Bug Reports and General Commentary</link>.
- <emphasis>Do not</emphasis> just send the diffs to the &a.hackers; or
- they will get lost! We greatly appreciate your submission (this is a
- volunteer project!); because we are busy, we may not be able to
- address it immediately, but it will remain in the pr database until we
- do.</para>
-
- <para>If you feel it appropriate (e.g. you have added, deleted, or
- renamed files), bundle your changes into a <command>tar</command> file
- and run the &man.uuencode.1; program on it. Shar archives are also
- welcome.</para>
-
- <para>If your change is of a potentially sensitive nature, e.g. you are
- unsure of copyright issues governing its further distribution or you
- are simply not ready to release it without a tighter review first,
- then you should send it to &a.core; directly rather than submitting it
- with &man.send-pr.1;. The core mailing list reaches a much smaller
- group of people who do much of the day-to-day work on FreeBSD. Note
- that this group is also <emphasis>very busy</emphasis> and so you
- should only send mail to them where it is truly necessary.</para>
-
- <para>Please refer to <command>man 9 intro</command> and <command>man 9
- style</command> for some information on coding style. We would
- appreciate it if you were at least aware of this information before
- submitting code.</para>
- </sect2>
-
- <sect2>
- <title>New code or major value-added packages</title>
-
- <para>In the case of a significant contribution of a large body
- work, or the addition of an important new feature to FreeBSD, it
- becomes almost always necessary to either send changes as uuencoded
- tar files or upload them to a web or FTP site for other people to
- access. If you do not have access to a web or FTP site, ask on an
- appropriate FreeBSD mailing list for someone to host the changes for
- you.</para>
-
- <para>When working with large amounts of code, the touchy subject of
- copyrights also invariably comes up. Acceptable copyrights for code
- included in FreeBSD are:</para>
-
- <orderedlist>
- <listitem>
- <para>The BSD copyright. This copyright is most preferred due to
- its <quote>no strings attached</quote> nature and general
- attractiveness to commercial enterprises. Far from discouraging
- such commercial use, the FreeBSD Project actively encourages such
- participation by commercial interests who might eventually be
- inclined to invest something of their own into FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>The GNU Public License, or <quote>GPL</quote>. This license is
- not quite as popular with us due to the amount of extra effort
- demanded of anyone using the code for commercial purposes, but
- given the sheer quantity of GPL'd code we currently require
- (compiler, assembler, text formatter, etc) it would be silly to
- refuse additional contributions under this license. Code under
- the GPL also goes into a different part of the tree, that being
- <filename>/sys/gnu</filename> or
- <filename>/usr/src/gnu</filename>, and is therefore easily
- identifiable to anyone for whom the GPL presents a problem.</para>
- </listitem>
- </orderedlist>
-
- <para>Contributions coming under any other type of copyright must be
- carefully reviewed before their inclusion into FreeBSD will be
- considered. Contributions for which particularly restrictive
- commercial copyrights apply are generally rejected, though the authors
- are always encouraged to make such changes available through their own
- channels.</para>
-
- <para>To place a <quote>BSD-style</quote> copyright on your work, include
- the following text at the very beginning of every source code file you
- wish to protect, replacing the text between the <literal>%%</literal>
- with the appropriate information.</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>For your convenience, a copy of this text can be found in
- <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para>
- </sect2>
-
- <sect2>
- <title>Money, Hardware or Internet access</title>
-
- <para>We are always very happy to accept donations to further the cause
- of the FreeBSD Project and, in a volunteer effort like ours, a little
- can go a long way! Donations of hardware are also very important to
- expanding our list of supported peripherals since we generally lack
- the funds to buy such items ourselves.</para>
-
- <sect3>
- <title><anchor id="donations">Donating funds</title>
-
- <para>While the FreeBSD Project is not a 501(c)(3) (charitable)
- corporation and hence cannot offer special tax incentives for any
- donations made, any such donations will be gratefully accepted on
- behalf of the project by FreeBSD, Inc.</para>
-
- <para>FreeBSD, Inc. was founded in early 1995 by &a.jkh; and &a.dg;
- with the goal of furthering the aims of the FreeBSD Project and
- giving it a minimal corporate presence. Any and all funds donated
- (as well as any profits that may eventually be realized by FreeBSD,
- Inc.) will be used exclusively to further the project's
- goals.</para>
-
- <para>Please make any checks payable to FreeBSD, Inc., sent in care of
- the following address:</para>
-
- <address>
- <otheraddr>FreeBSD, Inc.</otheraddr>
- <otheraddr>c/o Jordan Hubbard</otheraddr>
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>
- <state>CA</state>, <postcode>94520</postcode>
- </address>
-
- <para>(currently using the BSDi address until a PO box
- can be opened)</para>
-
- <para>Wire transfers may also be sent directly to:</para>
-
- <address>
- <otheraddr>Bank Of America</otheraddr>
- <otheraddr>Concord Main Office</otheraddr>
- <pob>P.O. Box 37176</pob>
- <city>San Francisco</city>
- <state>CA</state>, <postcode>94137-5176</postcode>
-
- <otheraddr>Routing #: 121-000-358</otheraddr>
- <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr>
- </address>
-
- <para>Any correspondence related to donations should be sent to &a.jkh,
- either via email or to the FreeBSD, Inc. postal address given above.
- </para>
-
- <para>If you do not wish to be listed in our <link
- linkend="donors">donors</link> section, please specify this when
- making your donation. Thanks!</para>
- </sect3>
-
- <sect3>
- <title>Donating hardware</title>
-
- <para>Donations of hardware in any of the 3 following categories are
- also gladly accepted by the FreeBSD Project:</para>
-
- <itemizedlist>
- <listitem>
- <para>General purpose hardware such as disk drives, memory or
- complete systems should be sent to the FreeBSD, Inc. address
- listed in the <emphasis>donating funds</emphasis>
- section.</para>
- </listitem>
-
- <listitem>
- <para>Hardware for which ongoing compliance testing is desired.
- We are currently trying to put together a testing lab of all
- components that FreeBSD supports so that proper regression
- testing can be done with each new release. We are still lacking
- many important pieces (network cards, motherboards, etc) and if
- you would like to make such a donation, please contact &a.dg;
- for information on which items are still required.</para>
- </listitem>
-
- <listitem>
- <para>Hardware currently unsupported by FreeBSD for which you
- would like to see such support added. Please contact the
- &a.core; before sending such items as we will need to find a
- developer willing to take on the task before we can accept
- delivery of new hardware.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Donating Internet access</title>
-
- <para>We can always use new mirror sites for FTP, WWW or
- <command>cvsup</command>. If you would like to be such a mirror,
- please contact the FreeBSD project administrators
- <email>hubs@FreeBSD.org</email> for more information.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="donors">
- <title>Donors Gallery</title>
-
- <para>The FreeBSD Project is indebted to the following donors and would
- like to publicly thank them here!</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Contributors to the central server
- project:</emphasis></para>
-
- <para>The following individuals and businesses made it possible for
- the FreeBSD Project to build a new central server machine to
- eventually replace <hostid role="fqdn">freefall.FreeBSD.org</hostid>
- by donating the following items:</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.mbarkah and his employer, <ulink url="http://www.hemi.com/">
- Hemisphere Online</ulink>, donated a <emphasis>Pentium Pro
- (P6) 200Mhz CPU</emphasis></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.asacomputers.com/">ASA
- Computers</ulink> donated a <emphasis>Tyan 1662
- motherboard</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Joe McGuckin <email>joe@via.net</email> of <ulink
- url="http://www.via.net/">ViaNet Communications</ulink> donated
- a <emphasis>Kingston ethernet controller.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email>
- donated an <emphasis>NCR 53C875 SCSI controller
- card</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Ulf Zimmermann <email>ulf@Alameda.net</email> of <ulink
- url="http://www.Alameda.net/">Alameda Networks</ulink> donated
- <emphasis>128MB of memory</emphasis>, a <emphasis>4 Gb disk
- drive and the case.</emphasis></para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Direct funding:</emphasis></para>
-
- <para>The following individuals and businesses have generously
- contributed direct funding to the project:</para>
-
- <itemizedlist>
- <listitem>
- <para>Annelise Anderson
- <email>ANDRSN@HOOVER.STANFORD.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>&a.dillon</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.bluemountain.com/">Blue Mountain
- Arts</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.epilogue.com/">Epilogue Technology
- Corporation</ulink></para>
- </listitem>
-
- <listitem>
- <para>&a.sef</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.gta.com/">Global Technology
- Associates, Inc</ulink></para>
- </listitem>
-
- <listitem>
- <para>Don Scott Wilde</para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@masternet.it</email></para>
- </listitem>
-
- <listitem>
- <para>Josef C. Grosch <email>joeg@truenorth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Robert T. Morris</para>
- </listitem>
-
- <listitem>
- <para>&a.chuckr</para>
- </listitem>
-
- <listitem>
- <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> of
- <ulink url="http://www.imagescape.com/">Imaginary Landscape,
- LLC.</ulink></para>
- </listitem>
-
- <listitem>
- <para>Dmitry S. Kohmanyuk <email>dk@dog.farm.org</email></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.cdrom.co.jp/">Laser5</ulink> of Japan
- (a portion of the profits from sales of their various FreeBSD
- CDROMs).</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.mmjp.or.jp/fuki/">Fuki Shuppan
- Publishing Co.</ulink> donated a portion of their profits from
- <emphasis>Hajimete no FreeBSD</emphasis> (FreeBSD, Getting
- started) to the FreeBSD and XFree86 projects.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.ascii.co.jp/">ASCII Corp.</ulink>
- donated a portion of their profits from several FreeBSD-related
- books to the FreeBSD project.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.yokogawa.co.jp/">Yokogawa Electric
- Corp</ulink> has generously donated significant funding to the
- FreeBSD project.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.buffnet.net/">BuffNET</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.pacificsolutions.com/">Pacific
- Solutions</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.siemens.de/">Siemens AG</ulink>
- via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre
- Albsmeier</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink>
- </para>
- </listitem>
-
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Hardware contributors:</emphasis></para>
-
- <para>The following individuals and businesses have generously
- contributed hardware for testing and device driver
- development/support:</para>
-
- <itemizedlist>
- <listitem>
- <para>BSDi for providing the Pentium P5-90 and
- 486/DX2-66 EISA/VL systems that are being used for our
- development work, to say nothing of the network access and other
- donations of hardware resources.</para>
- </listitem>
-
- <listitem>
- <para>TRW Financial Systems, Inc. provided 130 PCs, three 68 GB
- file servers, twelve Ethernets, two routers and an ATM switch for
- debugging the diskless code.</para>
- </listitem>
-
- <listitem>
- <para>Dermot McDonnell donated the Toshiba XM3401B CDROM drive
- currently used in freefall.</para>
- </listitem>
-
- <listitem>
- <para>&a.chuck; contributed his floppy tape streamer for
- experimental work.</para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email>, and &a.wilko;,
- provided Wangtek and Archive QIC-02 tape drives in order to
- improve the <devicename>wt</devicename> driver.</para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email> contributed
- a 2.88 MB floppy drive to the project. This will hopefully
- increase the pressure for rewriting the floppy disk driver.
- <!-- smiley -->;-)</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.tekram.com/">Tekram
- Technologies</ulink> sent one each of their DC-390, DC-390U
- and DC-390F FAST and ULTRA SCSI host adapter cards for
- regression testing of the NCR and AMD drivers with their cards.
- They are also to be applauded for making driver sources for free
- operating systems available from their FTP server <ulink
- url="ftp://ftp.tekram.com/scsi/FreeBSD/">ftp://ftp.tekram.com/scsi/FreeBSD/</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>Larry M. Augustin contributed not only a
- Symbios Sym8751S SCSI card, but also a set of data books,
- including one about the forthcoming Sym53c895 chip with Ultra-2
- and LVD support, and the latest programming manual with
- information on how to safely use the advanced features of the
- latest Symbios SCSI chips. Thanks a lot!</para>
- </listitem>
-
- <listitem>
- <para>Christoph Kukulies <email>kuku@FreeBSD.org</email> donated
- an FX120 12 speed Mitsumi CDROM drive for IDE CDROM driver
- development.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Special contributors:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.osd.bsdi.com/">BSDi</ulink> (formerly Walnut Creek CDROM)
- has donated almost more than we can say (see the <link
- linkend="history">history</link> document for more details).
- In particular, we would like to thank them for the original
- hardware used for <hostid
- role="fqdn">freefall.FreeBSD.org</hostid>, our primary
- development machine, and for <hostid
- role="fqdn">thud.FreeBSD.org</hostid>, a testing and build
- box. We are also indebted to them for funding various
- contributors over the years and providing us with unrestricted
- use of their T1 connection to the Internet.</para>
- </listitem>
-
- <listitem>
- <para>The <ulink url="http://www.interface-business.de/">interface
- business GmbH, Dresden</ulink> has been patiently supporting
- &a.joerg; who has often preferred FreeBSD work over paid work, and
- used to fall back to their (quite expensive) EUnet Internet
- connection whenever his private connection became too slow or
- flaky to work with it...</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.bsdi.com/">Berkeley Software Design,
- Inc.</ulink> has contributed their DOS emulator code to the
- remaining BSD world, which is used in the
- <emphasis>doscmd</emphasis> command.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-corealumni">
- <title>Core Team Alumni</title>
-
- <para>The following people were members of the FreeBSD core team during
- the periods indicated. We thank them for their past efforts in the
- service of the FreeBSD project.</para>
-
- <para><emphasis>In rough chronological order:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>&a.ache (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.jmb (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.bde (1992 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.gibbs (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.rich (1994 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.phk (1992 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.gpalmer (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.sos (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.wollman (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.joerg (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.jdp (1997 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.guido (1995 - 1999)</para>
- </listitem>
-
- <listitem>
- <para>&a.dyson (1993 - 1998)</para>
- </listitem>
-
- <listitem>
- <para>&a.nate (1992 - 1996)</para>
- </listitem>
-
- <listitem>
- <para>&a.rgrimes (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.csgr (1993 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.paul (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.smace (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>J. T. Conklin (1992 - 1993)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-develalumni">
- <title>Development Team Alumni</title>
-
- <para>The following people were members of the FreeBSD development team
- during the periods indicated. We thank them for their past efforts
- in the service of the FreeBSD project.</para>
-
- <para><emphasis>In rough chronological order:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>&a.tedm (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.karl (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.gclarkii (1993 - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.jraynard (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.jgreco (???? - 1999)</para>
- </listitem>
- <listitem>
- <para>&a.ats (???? - 1999)</para>
- </listitem>
- <listitem>
- <para>Jamil Weatherby (1997 - 1999)</para>
- </listitem>
- <listitem>
- <para>meganm (???? - 1998)</para>
- </listitem>
- <listitem>
- <para>&a.dyson (???? - 1998)</para>
- </listitem>
- <listitem>
- <para>Amancio Hasty (1997 - 1998)</para>
- </listitem>
- <listitem>
- <para>Drew Derbyshire (1997 - 1998)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-derived">
- <title>Derived Software Contributors</title>
-
- <para>This software was originally derived from William F. Jolitz's 386BSD
- release 0.1, though almost none of the original 386BSD specific code
- remains. This software has been essentially re-implemented from the
- 4.4BSD-Lite release provided by the Computer Science Research Group
- (CSRG) at the University of California, Berkeley and associated academic
- contributors.</para>
-
- <para>There are also portions of NetBSD and OpenBSD that have been
- integrated into FreeBSD as well, and we would therefore like to thank
- all the contributors to NetBSD and OpenBSD for their work.</para>
- </sect1>
-
- <sect1 id="contrib-additional">
- <title>Additional FreeBSD Contributors</title>
-
- <para>(in alphabetical order by first name):</para>
-
- <itemizedlist>
- <listitem>
- <para>ABURAYA Ryushirou <email>rewsirow@ff.iij4u.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>AMAGAI Yoshiji <email>amagai@nue.org</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Bornstein <email>aaronb@j51.com</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Smith <email>aaron@mutex.org</email></para>
- </listitem>
-
- <listitem>
- <para>Achim Patzner <email>ap@noses.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ada T Lim <email>ada@bsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Baran <email>badam@mw.mil.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Herzog <email>adam@herzogdesigns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adam McDougall <email>mcdouga9@egr.msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Strohl <email>troll@digitalspark.net</email></para>
- </listitem>
-
- <listitem>
- <para>Adoal Xu <email>adoal@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Colley <email>aecolley@ois.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>ahall@mirapoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Mariano <email>adrian@cam.cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Steinmann <email>ast@marabu.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian T. Filipi-Martin
- <email>atf3r@agate.cs.virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ajit Thyagarajan <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akio Morita
- <email>amorita@meadow.scphys.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akira SAWADA <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akira Watanabe
- <email>akira@myaw.ei.meisei-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akito Fujita <email>fujita@zoo.ncl.omron.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Alain Kalker
- <email>A.C.P.M.Kalker@student.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Alan Bawden <email>alan@curry.epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alec Wolman <email>wolman@cs.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Aled Morris <email>aledm@routers.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Aleksandr A Babaylov <email>.@babolo.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alex G. Bulushev <email>bag@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Alex D. Chen
- <email>dhchen@Canvas.dorm7.nccu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Le Heux <email>alexlh@funk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Kapranoff <email>kappa@zombie.antar.bryansk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Perel <email>veers@disturbed.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Varju <email>varju@webct.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Zepeda <email>garbanzo@hooked.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Gelfenbain <email>mail@gelf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Leidinger
- <email>netchild@wurzelausix.CS.Uni-SB.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Alexandre Snarskii <email>snar@paranoia.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alistair G. Crooks <email>agc@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Bowhill <email>bowhill@bowhill.vservers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Saddi <email>asaddi@philosophysw.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allen Campbell <email>allenc@verinet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amakawa Shuhei <email>amakawa@hoh.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Amancio Hasty <email>hasty@star-gate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amir Farah <email>amir@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amy Baron <email>amee@beer.org</email></para>
- </listitem>
-
- <listitem>
- <para>The Anarcat <email>beaupran@iro.umontreal.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly A. Orehovsky <email>tolik@mpeks.tomsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly Vorobey <email>mellon@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Andersson <email>anders@codefactory.se</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Nordby <email>anders@fix.no</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Thulin <email>Anders.X.Thulin@telia.se</email></para>
- </listitem>
-
- <listitem>
- <para>Andras Olah <email>olah@cs.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Albsmeier
- <email>Andre.Albsmeier@mchp.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Goeree <email>abgoeree@uwnet.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Oppermann <email>andre@pipeline.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Haakh <email>ah@alman.robin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Kohout <email>shanee@rabbit.augusta.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Lohr <email>andreas@marvin.RoBIN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wetzel <email>mickey@deadline.snafu.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wrede <email>andreas@planix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andres Vega Garcia <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Atrens <email>atreand@statcan.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Boothman <email>andrew@cream.org</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gillham <email>gillham@andrews.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gordon <email>andrew.gordon@net-tel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew J. Korty <email>ajk@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Moore <email>alm@mclink.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Neporada <email>andrew@chg.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew McRae <email>amcrae@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Stevenson <email>andrew@ugh.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Timonin <email>tim@pool1.convey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew V. Stesin <email>stesin@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Webster <email>awebster@dataradio.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Novikov <email>andrey@novikov.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Simonenko <email>simon@comsys.ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Tchoritch <email>andy@venus.sympad.net</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Farkas <email>andyf@speednet.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Whitcroft <email>andy@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Angelo Turetta <email>ATuretta@stylo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony C. Chavez <email>magus@xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony Yee-Hang Chan <email>yeehang@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Berezin <email>tobez@plab.ku.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Anton N. Bruesov <email>antonz@library.ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Voronin <email>anton@urc.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Antti Kaipila <email>anttik@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>arci <email>vega@sophia.inria.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Are Bryne <email>are.bryne@communique.no</email></para>
- </listitem>
-
- <listitem>
- <para>Ari Suutari <email>ari@suutari.iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Arindum Mukerji <email>rmukerji@execpc.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arjan de Vet <email>devet@IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Arun Sharma <email>adsharma@sharmas.dhs.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ask Bjoern Hansen <email>ask@valueclick.com</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Furuta <email>furuta@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Murai <email>amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Bierbauch <email>pivrnec@vszbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Hutchinson <email>benhutch@xfiles.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Jackson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Walter <email>bwalter@itachi.swcp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Benjamin Lewis <email>bhlewis@gte.net</email></para>
- </listitem>
-
- <listitem>
- <para>Berend de Boer <email>berend@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bernd Rosauer <email>br@schiele-ct.de</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Kish <email>kish@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Trost <email>trost@cloud.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Blaz Zupan <email>blaz@amis.net</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Van Valzah <email>Bob@whitebarn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Willcox <email>bob@luke.pmr.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boris Staeblow <email>balu@dva.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd Faulkner <email>faulkner@mpd.tandem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Chapman <email>chapmanb@arches.uga.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Hendrickse <email>bradh@uunet.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Karp <email>karp@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Bradley Dunn <email>bradley@dunn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Jones <email>brad@kazrak.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Fosdick <email>bfoz@glue.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para>
- </listitem>
-
- <listitem>
- <para>&a.wlloyd</para>
- </listitem>
-
- <listitem>
- <para>Brent J. Nordquist <email>bjn@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Taylor
- <email>brett@peloton.runet.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Campbell <email>brianc@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Clapper <email>bmc@willscreek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Cully <email>shmit@kublai.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Handy
- <email>handy@lambic.space.lockheed.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Litzinger <email>brian@MediaCity.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian McGovern <email>bmcgover@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Moore <email>ziff@houdini.eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian R. Haug <email>haug@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Tao <email>taob@risc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brion Moss <email>brion@queeg.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Albrecht <email>bruce@zuhause.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Gingery <email>bgingery@gtcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce J. Keeler <email>loodvrij@gridpoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Murphy <email>packrat@iinet.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Walter <email>walter@fortean.com</email></para>
- </listitem>
-
- <listitem>
- <para>Carey Jones <email>mcj@acquiesce.org</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Fongheiser <email>cmf@netins.net</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Mascott <email>cmascott@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Casper <email>casper@acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Castor Fu <email>castor@geocast.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chain Lee <email>chain@110.net</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Henrich <email>henrich@msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Mott <email>cmott@scientech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Owens <email>owensc@enc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chet Ramey <email>chet@odin.INS.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chia-liang Kao <email>clkao@CirX.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Chiharu Shibata <email>chi@bd.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Chip Norkus <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Csanady <email>cc@tarsier.ca.sandia.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dabrowski <email>chris@vader.org</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dillon <email>cdillon@wolves.k12.mo.us</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Shenton
- <email>cshenton@angst.it.hq.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Stenton <email>jacs@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Timmons <email>skynyrd@opus.cts.cwu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Gusenbauer
- <email>cg@fimp01.fim.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Haury <email>Christian.Haury@sagem.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Weisgerber
- <email>naddy@mips.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph P. Kukulies <email>kuku@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Weber-Fahr
- <email>wefa@callcenter.systemhaus.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher N. Harrell <email>cnh@ivmg.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher T. Johnson
- <email>cjohnson@neunacht.netgsi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chrisy Luke <email>chrisy@flix.net</email></para>
- </listitem>
-
- <listitem>
- <para>Chuck Hein <email>chein@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cliff Rowley <email>dozprompt@onsea.com</email></para>
- </listitem>
-
- <listitem>
- <para>Colman Reilly <email>careilly@tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Conrad Sabatier <email>conrads@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>Coranth Gryphon <email>gryphon@healer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cornelis van der Laan
- <email>nils@guru.ims.uni-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Cove Schneider <email>cove@brazil.nbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Leres <email>leres@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Loomis <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Metz <email>cmetz@inner.net</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Spannring <email>cts@internetcds.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Struble <email>cstruble@vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Cristian Ferretti <email>cfs@riemann.mat.puc.cl</email></para>
- </listitem>
-
- <listitem>
- <para>Curt Mayer <email>curt@toad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cy Schubert <email>cschuber@uumail.gov.bc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Cyrille Lefevre <email>clefevre@citeweb.net</email></para>
- </listitem>
-
- <listitem>
- <para>Cyrus Rahman <email>cr@jcmax.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Daisuke Watanabe <email>NU7D-WTNB@asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Damian Hamill <email>damian@cablenet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Cross <email>tenser@spitfire.ecsel.psu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Langille <email>dan@freebsddiary.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Lukes <email>dan@obluda.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Nelson <email>dnelson@emsphone.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Papasian <email>bugg@bugg.strangled.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Piponi <email>wmtop@tanelorn.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Walters <email>hannibal@cyberstation.net</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Hagan
- <email>dhagan@cs.vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel O'Connor <email>doconnor@gsoft.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Rock <email>rock@cs.uni-sb.de</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel W. McRobb <email>dwm@caimis.com</email></para>
- </listitem>
-
- <listitem>
- <para>Danny Egen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Danny J. Zerkel <email>dzerkel@phofarm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Andersen <email>angio@aros.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Blizzard <email>dblizzar@sprynet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Bodenstab <email>imdave@synet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Chapeskie <email>dchapes@ddm.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Cornejo <email>dave@dogwood.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Edmondson <email>davided@sco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Glowacki <email>dglo@ssec.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Marquardt <email>marquard@austin.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Tweten <email>tweten@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Bader <email>dbader@eece.unm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Borman <email>dab@bsdi.com</email></para>
- </listitem>
-
- <listitem>
- <para>David W. Chapman Jr. <email>dwcjr@inethouston.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@XFree86.org</email></para>
- </listitem>
-
- <listitem>
- <para>David Filo <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>David Holland <email>dholland@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Holloway <email>daveh@gwythaint.tamis.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Horwitt <email>dhorwitt@ucsd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Hovemeyer <email>daveho@infocom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Jones <email>dej@qpoint.torfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Kelly <email>dkelly@tomcat1.tbe.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Kulp <email>dkulp@neomorphic.com</email></para>
- </listitem>
-
- <listitem>
- <para>David L. Nugent <email>davidn@blaze.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Leonard <email>d@scry.dstc.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Muir Sharnoff <email>muir@idiom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David S. Miller <email>davem@jenolan.rutgers.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Sugar <email>dyfet@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>David Wolfskill <email>dhw@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Gaudet <email>dgaudet@arctic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Huxley <email>dean@fsa.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Fortin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Shaposhnikov <email>dsh@vlink.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dennis Glatting
- <email>dennis.glatting@software-munitions.com</email></para>
- </listitem>
-
- <listitem>
- <para>Denton Gentry <email>denny1@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Derek Inksetter <email>derek@saidev.com</email></para>
- </listitem>
-
- <listitem>
- <para>DI. Christian Gusenbauer
- <email>cg@scotty.edvz.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Keunecke <email>dk@panda.rhein-main.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Nehrling <email>nerle@pdv.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dishanker Rajakulendren <email>draj@oceanfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Khrustalev <email>dima@xyzzy.machaon.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Kohmanyuk <email>dk@farm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dom Mitchell <email>dom@myrddin.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Domas Mituzas <email>midom@dammit.lt</email></para>
- </listitem>
-
- <listitem>
- <para>Dominik Brettnacher <email>domi@saargate.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dominik Rothert <email>dr@domix.de</email></para>
- </listitem>
-
- <listitem>
- <para>Don Croyle <email>croyle@gelemna.ft-wayne.in.us</email></para>
- </listitem>
-
- <listitem>
- <para>Donn Miller <email>dmmiller@cvzoom.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Pelleg <email>dpelleg+unison@cs.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>&a.whiteside;</para>
- </listitem>
-
- <listitem>
- <para>Don Morrison <email>dmorrisn@u.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Don Yuniskis <email>dgy@rtd.com</email></para>
- </listitem>
-
- <listitem>
- <para>Donald Maddox <email>dmaddox@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Ambrisko <email>ambrisko@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Carmichael <email>dcarmich@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Crosher <email>dtc@scrooge.ee.swin.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Drew Derbyshire <email>ahd@kew.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dustin Sallings <email>dustin@spy.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eckart "Isegrim" Hofmann
- <email>Isegrim@Wunder-Nett.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Gold
- <email>vegold01@starbase.spd.louisville.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Hudson <email>elh@p5.spnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Chuang <email>edwardc@firebird.org.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Wang <email>edward@edcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Groothus <email>edwin@nwm.wan.philips.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Mons <email>e@ik.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Ege Rekk <email>aagero@aage.priv.no</email></para>
- </listitem>
-
- <listitem>
- <para>Eiji-usagi-MATSUmoto <email>usagi@clave.gr.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Eike Bernhardt <email>eike.bernhardt@gmx.de</email></para>
- </listitem>
-
- <listitem>
- <para>ELISA Font Project</para>
- </listitem>
-
- <listitem>
- <para>Elmar Bartel
- <email>bartel@informatik.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eoin Lawless <email>eoin@maths.tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Eric A. Griff <email>eagriff@global2000.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Blood <email>eblood@cs.unr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric D. Futch <email>efutch@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Schwertfeger <email>eric@cybernut.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric L. Hernes <email>erich@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric P. Scott <email>eps@sirius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Sprinkle <email>eric@ennovatenetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Stefan Boleyn <email>erich@uruk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Zigler <email>erich@tacni.net</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Bakke <email>erikhb@bgnett.no</email></para>
- </listitem>
-
- <listitem>
- <para>Erik E. Rantapaa <email>rantapaa@math.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Moe <email>ehm@cris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst de Haan <email>ernst@heinz.jollem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email></para>
- </listitem>
-
- <listitem>
- <para>Espen Skoglund <email>esk@ira.uka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene M. Kim <email>astralblue@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene Radchenko <email>genie@qsar.chem.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Eugeny Kuzakov <email>CoreDumped@coredumped.null.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Evan Champion <email>evanc@synapse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Faried Nawaz <email>fn@Hungry.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Flemming Jacobsen <email>fj@tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fong-Ching Liaw <email>fong@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Francis M J Hsieh <email>mjshieh@life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Francisco Reyes <email>fjrm@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Bartels <email>knarf@camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Chen Hsiung Chan
- <email>frankch@waru.life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Durda IV <email>uhclem@nemesis.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Frank MacLachlan <email>fpm@n2.net</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Nobis <email>fn@Radio-do.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank ten Wolde <email>franky@pinewood.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank van der Linden <email>frank@fwi.uva.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Volf <email>volf@oasis.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Cawthorne <email>fcawth@jjarray.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Gilham <email>gilham@csl.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Templin <email>templin@erg.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frederick Earl Gray <email>fgray@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>FUJIMOTO Kensaku
- <email>fujimoto@oscar.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>FURUSAWA Kazuhisa
- <email>furusawa@com.cs.osakafu-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>G. Adam Stanislav<email>adam@whizkidtech.net</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Kincses <email>gabor@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Zahemszky <email>zgabor@CoDe.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Gareth McCaughan <email>gjm11@dpmms.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary J. <email>garyj@rks32.pcs.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Kline <email>kline@thought.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gaspar Chilingarov <email>nightmar@lemming.acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Gea-Suan Lin <email>gsl@tpts4.seed.net.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Gene Raytsin <email>pal@paladin7.net</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Georg Wagner <email>georg.wagner@ubs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gianlorenzo Masini <email>masini@uniroma3.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@giovannelli.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gil Kloepfer Jr. <email>gil@limbic.ssdl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gilad Rom <email>rom_glsa@ein-hashofet.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>Giles Lean <email>giles@nemeton.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ginga Kawaguti
- <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Giorgos Keramidas <email>keramida@ceid.upatras.gr</email></para>
- </listitem>
-
- <listitem>
- <para>Glen Foster <email>gfoster@gfoster.com</email></para>
- </listitem>
-
- <listitem>
- <para>Glenn Johnson <email>gljohns@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>Godmar Back <email>gback@facility.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Gord Matzigkeit <email>gord@enci.ucalgary.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Gordon Greeff <email>gvg@uunet.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Graham Wheeler <email>gram@cdsec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg A. Woods <email>woods@zeus.leitch.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ansley <email>gja@ansley.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Robinson <email>greg@rosevale.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Troxel <email>gdt@ir.bbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ungerer <email>gerg@stallion.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory Bond <email>gnb@itga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory D. Moncreaff
- <email>moncrg@bt340707.res.ray.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@netapp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Helmer <email>ghelmer@cs.iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>HAMADA Naoki <email>hamada@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hannu Savolainen <email>hannu@voxware.pp.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Huebner <email>hans@artcom.de</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Petter Bieker <email>zerium@webindex.no</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Zuidam <email>hans@brandinnovators.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harlan Stenn <email>Harlan.Stenn@pfcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harold Barker <email>hbarker@dsms.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harry Newton <email>harry_newton@telinco.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Heikki Suonsivu <email>hsu@cs.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Heiko W. Rupp <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Helmut F. Wirth <email>hfwirth@ping.at</email></para>
- </listitem>
-
- <listitem>
- <para>Henrik Vestergaard Draboel
- <email>hvd@terry.ping.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideaki Ohmon <email>ohmon@tom.sfc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hidekazu Kuroki <email>hidekazu@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hideki Yamamoto <email>hyama@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideyuki Suzuki
- <email>hideyuki@sat.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hirayama Issei <email>iss@mail.wbs.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroaki Sakai <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroharu Tamaru <email>tamaru@ap.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hironori Ikura <email>hikura@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroshi Nishikawa <email>nis@pluto.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroya Tsubakimoto <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Lamm <email>holger@eit.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holm Tiffe <email>holm@geophysik.tu-freiberg.de</email></para>
- </listitem>
-
- <listitem>
- <para>HONDA Yasuhiro
- <email>honda@kashio.info.mie-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Horance Chou
- <email>horance@freedom.ie.cycu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Horihiro Kumagai <email>kuma@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>HOTARU-YA <email>hotaru@tail.net</email></para>
- </listitem>
-
- <listitem>
- <para>Hr.Ladavac <email>lada@ws2301.gud.siemens.co.at</email></para>
- </listitem>
-
- <listitem>
- <para>Hubert Feyrer <email>hubertf@NetBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh F. Mahon <email>hugh@nsmdserv.cnd.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh Mahon <email>h_mahon@fc.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hung-Chi Chu <email>hcchu@r350.ee.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Holland <email>ianh@tortuga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Struble <email>ian@broken.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Vaudrey <email>i.vaudrey@bigfoot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Khasilev <email>igor@jabber.paco.odessa.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Roshchin <email>str@giganda.komkon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Sviridov <email>siac@ua.net</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Vinokurov <email>igor@zynaps.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Ikuo Nakagawa <email>ikuo@isl.intec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ilia Chipitsine <email>ilia@jane.cgu.chel.su</email></para>
- </listitem>
-
- <listitem>
- <para>Ilya V. Komarov <email>mur@lynx.ru</email></para>
- </listitem>
-
- <listitem>
- <para>IMAI Takeshi <email>take-i@ceres.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IMAMURA Tomoaki
- <email>tomoak-i@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Itsuro Saito <email>saito@miv.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IWASHITA Yoji <email>shuna@pop16.odn.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>J. Bryant <email>jbryant@argus.flash.net</email></para>
- </listitem>
-
- <listitem>
- <para>J. David Lowe <email>lowe@saturn5.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Han <email>hjh@photino.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Hawk <email>jhawk@MIT.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jack <email>jack@zeus.xtalwind.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jacob Bohn Lorensen <email>jacob@jblhome.ping.mk</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jake Hamby <email>jehamby@lightside.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James D. Stewart <email>jds@c4systm.com</email></para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Raynard
- <email>fhackers@jraynard.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>James T. Liu <email>jtliu@phlebas.rockefeller.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jamie Heckford <email>jamie@jamiesdomain.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Conard
- <email>charly@fachschaften.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Koum <email>jkb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Janick Taillandier
- <email>Janick.Taillandier@ratp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Janusz Kokot <email>janek@gaja.ipan.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Jarle Greipsland <email>jarle@idt.unit.no</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Garman <email>init@risen.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason R. Mastaler
- <email>jason-freebsd@mastaler.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Thorpe <email>thorpej@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Wright <email>jason@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Young
- <email>doogie@forbidden-donut.anet-stl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Javier Martin Rueda <email>jmrueda@diatel.upm.es</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Krell <email>jay.krell@cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jaye Mathisen <email>mrcpu@cdsnet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Bartig <email>jeffb@doit.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Brown <email>jabrown@caida.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Forys <email>jeff@forys.cranbury.nj.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Kletsky <email>Jeff@Wagsky.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Palmer <email>jeff@isni.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Evans <email>evans@scnc.k12.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Wheat <email>jeff@cetlink.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Allison <email>jallison@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chadwick <email>yoshi@parodius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chatfield <email>jdc@xinside.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Karlson <email>karlj000@unbc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Prior <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Shaffner <email>jeremy@external.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse McConnell <email>jesse@cylant.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse Rosenstock <email>jmr@ugcs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jian-Da Li <email>jdli@csie.nctu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Babb <email>babb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Binkley <email>jrb@cs.pdx.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Bloom <email>bloom@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Carroll <email>jim@carroll.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Flowers <email>jflowers@ezo.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Leppek <email>jleppek@harris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Lowe <email>james@cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mattson <email>jmattson@sonic.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mercer <email>jim@komodo.reptiles.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Sloan <email>odinn@atlantabiker.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jimbo Bahooli
- <email>griffin@blackhole.iceworld.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jin Guojun <email>jin@george.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Joachim Kuebart <email>kuebart@mathematik.uni-ulm.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joao Carlos Mendes Luis <email>jonny@jonny.eng.br</email></para>
- </listitem>
-
- <listitem>
- <para>Jochen Pohl <email>jpo.drs@sni.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joe "Marcus" Clarke <email>marcus@miami.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Abley <email>jabley@automagic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Jih-Shian Lu <email>jslu@dns.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Orthoefer <email>j_orthoefer@tia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Traister <email>traister@mojozone.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Faedi <email>Joel.Faedi@esial.u-nancy.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Ray Holveck <email>joelh@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Sutton <email>jsutton@bbcon.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Scott <email>joseph@randomnetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Granlund <email>johan@granlund.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Karlsson <email>k@numeri.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Larsson <email>johan@moon.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johann Tonsing <email>jtonsing@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Helander <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Stille <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Beckett <email>jbeckett@southern.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Beukema <email>jbeukema@hk.super.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Brezak <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Capo <email>jc@irbs.com</email></para>
- </listitem>
-
- <listitem>
- <para>John F. Woods <email>jfw@jfwhome.funhouse.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Goerzen
- <email>jgoerzen@alexanderwohl.complete.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Heidemann <email>johnh@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Hood <email>cgull@owl.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Kohl <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Lind <email>john@starfire.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Mackin <email>john@physiol.su.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>John P <email>johnp@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Perry <email>perry@vishnu.alias.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Preisler <email>john@vapornet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Reynolds <email>jjreynold@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Rochester <email>jr@cs.mun.ca</email></para>
- </listitem>
-
- <listitem>
- <para>John Sadler <email>john_sadler@alum.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Saunders <email>john@pacer.nlc.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>John Wehle <email>john@feith.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Johny Mattsson <email>lonewolf@flame.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jon Morgan <email>morgan@terminus.trailblazer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan H N Chin <email>jc254@newton.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Hanna
- <email>jh@pc-21490.bc.rogers.wave.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Pennington <email>john@coastalgeology.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge Goncalves <email>j@bug.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge M. Goncalves <email>ee96199@tom.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jos Backus <email>jbackus@plex.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Jose Marques <email>jose@nobody.org</email></para>
- </listitem>
-
- <listitem>
- <para>Josef Grosch
- <email>jgrosch@superior.mooseriver.com</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Stein <email>joes@wstein.com</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Gilliam <email>josh@quick.net</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Tiefenbach <email>josh@ican.net</email></para>
- </listitem>
-
- <listitem>
- <para>Juergen Lock <email>nox@jelal.hb.north.de</email></para>
- </listitem>
-
- <listitem>
- <para>Juha Inkari <email>inkari@cc.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Jukka A. Ukkonen <email>jau@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Assange <email>proff@suburbia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Coleman <email>j.d.coleman@ncl.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>&a.jhs</para>
- </listitem>
-
- <listitem>
- <para>Julian Jenkins <email>kaveman@magna.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Junichi Satoh <email>junichi@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junji SAKAI <email>sakai@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junya WATANABE <email>junya-w@remus.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Justas <email>justas@mbank.lv</email></para>
- </listitem>
-
- <listitem>
- <para>Justin Stanford <email>jus@security.za.net</email></para>
- </listitem>
-
- <listitem>
- <para>K.Higashino <email>a00303@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kai Vorma <email>vode@snakemail.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Kaleb S. Keithley <email>kaleb@ics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kaneda Hiloshi <email>vanitas@ma3.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kang-ming Liu <email>gugod@gugod.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kapil Chowksey <email>kchowksey@hss.hns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Denninger <email>karl@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>KATO Tsuguru <email>tkato@prontomail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kawanobe Koh <email>kawanobe@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kees Jan Koster <email>kjk1@ukc.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@bostic.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith E. Walker <email>kew@icehouse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Moore <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Sklower <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hornstein <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Key <email>key@cs.utk.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Mayer <email>kmayer@freegate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Saito <email>marukun@mx2.nisiq.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Tomita <email>tommyk@da2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Furge <email>kenneth.furge@us.endress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Monville <email>desmo@bandwidth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth R. Westerback <email>krw@tcn.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Stailey <email>kstailey@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Vander Velden <email>graphix@iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kentaro Inagaki <email>JBD01226@niftyserve.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Bracey <email>kbracey@art.acorn.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Day <email>toasty@dragondata.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml@nas.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Meltzer <email>perlguy@perlguy.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Street <email>street@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Van Maren <email>vanmaren@fast.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kim Scarborough <email>sluggo@unknown.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Kiril Mitev <email>kiril@ideaglobal.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kiroh HARADA <email>kiroh@kh.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Herrmann <email>klaus.herrmann@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Klein <email>kleink@layla.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus-J. Wolf <email>Yanestra@t-online.de</email></para>
- </listitem>
-
- <listitem>
- <para>Koichi Sato <email>copan@ppp.fastnet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Konrad Heuer <email>kheuer@gwdu60.gwdg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Konstantin Chuguev <email>Konstantin.Chuguev@dante.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kostya Lukin <email>lukin@okbmei.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Kouichi Hirabayashi <email>kh@mogami-wire.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kris Dow <email>kris@vilnya.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt D. Zeilenga <email>Kurt@Boolean.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt Olsen <email>kurto@tiny.mcs.usu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>L. Jonas Olsson
- <email>ljo@ljo-slip.DIALIN.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Lars Bernhardsson <email>lab@fnurt.net</email></para>
- </listitem>
-
- <listitem>
- <para>Lars K&ouml;ller
- <email>Lars.Koeller@Uni-Bielefeld.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Laurence Lopez <email>lopez@mv.mv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lee Cremeans <email>lcremean@tidalwave.net</email></para>
- </listitem>
-
- <listitem>
- <para>Leo Kim <email>leo@florida.sarang.net</email></para>
- </listitem>
-
- <listitem>
- <para>Liang Tai-hwa
- <email>avatar@www.mmlab.cse.yzu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Lon Willett <email>lon%softt.uucp@math.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Louis A. Mamakos <email>louie@TransSys.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Louis Mamakos <email>loiue@TransSys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lowell Gilbert <email>lowell@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lucas James <email>Lucas.James@ldjpc.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Lyndon Nerenberg <email>lyndon@orthanc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>M. L. Dodson <email>bdodson@scms.utmb.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>M.C. Wong <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Magnus Enbom <email>dot@tinto.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mahesh Neelakanta <email>mahesh@gcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto MATSUSHITA <email>matusita@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto WATANABE
- <email>watanabe@zlab.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto YAMAKURA <email>makoto@pinpott.spnet.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Malte Lance <email>malte.lance@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>MANTANI Nobutaka <email>nobutaka@nobutaka.com</email></para>
- </listitem>
-
- <listitem>
- <para>Manu Iyengar
- <email>iyengar@grunthos.pscwa.psca.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Ramirez <email>mrami@mramirez.sy.yale.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Slemko <email>marcs@znep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Kempen <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Woerkom <email>van.woerkom@netcologne.de</email></para>
- </listitem>
-
- <listitem>
- <para>Marcin Cieslak <email>saper@system.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Andrews <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Cammidge <email>mark@gmtunx.ee.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Diekhans <email>markd@grizzly.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Huizer <email>xaa@stack.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark J. Taylor <email>mtaylor@cybernet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Knight <email>markk@knigma.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Krentel <email>krentel@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Mayo <email>markm@vmunix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Pulford <email>mark@kyne.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Thompson <email>thompson@tgsoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Treacy <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Valentine <email>mark@linus.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Markus Holmberg <email>saska@acc.umu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Birgmeier <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Blapp <email>blapp@attic.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Hinner <email>mhi@linux.gyarab.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Ibert <email>mib@ppe.bb-data.de</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Kammerhofer <email>dada@sbox.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Minkus <email>diskiller@cnbinc.com</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Martti Kuparinen
- <email>martti.kuparinen@ericsson.com</email></para>
- </listitem>
-
- <listitem>
- <para>Masachika ISHIZUKA
- <email>ishizuka@isis.min.ntt.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro Sekiguchi
- <email>seki@sysrap.cs.fujitsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro TAKEMURA
- <email>mastake@msel.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanobu Saitoh <email>msaitoh@spa.is.uec.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kanaoka <email>kana@saijo.mke.mei.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kiriake <email>seiken@ARGV.AC</email></para>
- </listitem>
-
- <listitem>
- <para>Masatoshi TAMURA
- <email>tamrin@shinzan.kuee.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mats Lofkvist <email>mal@algonet.se</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Bartley <email>mbartley@lear35.cytex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Heckaman <email>matt@LUCIDA.QC.CA</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Thomas <email>matt@3am-software.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt White <email>mwhite+@CMU.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew C. Mead <email>mmead@Glock.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Cashdollar <email>mattc@rfcnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Emmerton <email>root@gabby.gsicomp.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Flatt <email>mflatt@cs.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Fuller <email>fullermd@futuresouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Stein <email>matt@bdd.net</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew West <email>mwest@uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Pfaller <email>leo@dachau.marco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Scheler <email>tron@netbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Gronlund
- <email>Mattias.Gronlund@sa.erisoft.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Pantzare <email>pantzer@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Maurice Castro
- <email>maurice@planet.serc.rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Max Euston <email>meuston@jmrodgers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Max Khon <email>fjoe@husky.iclub.nsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxim Bolotin <email>max@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxime Henrion <email>mhenrion@cybercable.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Micha Class
- <email>michael_class@hpbbse.bbn.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Alyn Miller <email>malyn@strangeGizmo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Lucas <email>mwlucas@blackhelicopters.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Lyngbøl <email>michael@lyngbol.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butler <email>imb@scgt.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butschky <email>butsch@computi.erols.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hancock <email>michaelh@cet.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hohmuth <email>hohmuth@inf.tu-dresden.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Perlman <email>canuck@caam.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Petry <email>petry@netwolf.NetMasters.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Reifenberger <email>root@totum.plaut.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Sardo <email>jaeger16@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Urban <email>murban@tznet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Vasilenko <email>acid@stu.cn.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Michal Listos <email>mcl@Amnesiac.123.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michio Karl Jinbo
- <email>karl@marcer.nagaokaut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Miguel Angel Sagreras
- <email>msagre@cactus.fi.uba.ar</email></para>
- </listitem>
-
- <listitem>
- <para>Mihoko Tanaka <email>m_tonaka@pa.yokogawa.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mika Nystrom <email>mika@cs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Hybsch <email>micke@dynas.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Karpberg
- <email>karpen@ocean.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Barcroft <email>mike@q9media.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Bristow <email>mike@urgle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Del <email>repenting@hotmail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durian <email>durian@plutotech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike E. Matsnev <email>mike@azog.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Evans <email>mevans@candle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Grupenhoff <email>kashmir@umiacs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Harding <email>mvh@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Hibler <email>mike@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Karels <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mike McGaughey <email>mmcg@cs.monash.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Meyer <email>mwm@mired.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Mitchell <email>mitchell@ref.tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Murphy <email>mrm@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Peck <email>mike@binghamton.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Sherwood <email>mike@fate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Spengler <email>mks@msc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikhail A. Sokolov <email>mishania@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Ming-I Hseh <email>PA@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Mitsuru Yoshida <email>mitsuru@riken.go.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Monte Mitzelfelt <email>monte@gonefishing.org</email></para>
- </listitem>
-
- <listitem>
- <para>Morgan Davis <email>root@io.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mostyn Lewis <email>mostyn@mrl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nadav Eiron <email>nadav@barcode.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAJI Hiroyuki
- <email>nakaji@tutrp.tut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Kazushi <email>nkazushi@highway.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Motonori
- <email>motonori@econ.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKATA, Maho <email>chat95@mbox.kyoto-inet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nanbor Wang <email>nw1@cs.wustl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Naofumi Honda
- <email>honda@Kururu.math.sci.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Narvi <email>narvi@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Nathan Dorfman <email>nathan@rtfm.net</email></para>
- </listitem>
-
- <listitem>
- <para>Neal Fachan <email>kneel@ishiboo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Niall Smart <email>rotel@indigo.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Nicholas Esborn <email>nick@netdot.net</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Barnes <email>Nick.Barnes@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Hilliard <email>nick@foobar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Johnson <email>freebsd@spatula.net</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Williams <email>njw@cs.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nickolay N. Dudorov <email>nnd@itfs.nsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>NIIMI Satoshi <email>sa2c@and.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Niklas Hallqvist <email>niklas@filippa.appli.se</email></para>
- </listitem>
-
- <listitem>
- <para>Nils M. Holm <email>nmh@t3x.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nisha Talagala <email>nisha@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>adrian@virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>alex@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>anto@netscape.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bobson@egg.ics.nitch.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bovynf@awe.be</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>burg@is.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>chris@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>colsen@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>coredump@nervosa.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dannyman@arh0300.urh.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>davids@SECNET.COM</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>derek@free.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>devet@adv.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>djv@bedford.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dvv@sprint.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>enami@ba2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@eru.tubank.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@hway.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>fn@pain.csrv.uidaho.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>frf@xocolatl.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gclarkii@netport.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gordon@sheaky.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>graaf@iae.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>greg@greg.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>grossman@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gusw@fub46.zedat.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hfir@math.rochester.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hnokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iaint@css.tuu.utas.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>invis@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ishisone@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iverson@lionheart.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>jpt@magic.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>junker@jazz.snu.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>k-sugyou@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kenji@reseau.toyonaka.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kfurge@worldnet.att.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lh@aus.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lhecking@nmrc.ucc.ie</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>mrgreen@mame.mu.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>nakagawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ohki@gssm.otsuka.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>owaki@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pechter@shell.monmouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pete@pelican.pelican.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pritc003@maroon.tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>risner@stdio.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>roman@rpd.univ.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@ns2.redline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@uglabgw.ug.cs.sunysb.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>stephen.ma@jtec.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>sumii@is.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>takas-su@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tamone@eig.unige.ch</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tjevans@raleigh.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tony-o@iij.ad.jp amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>torii@tcd.hitachi.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uenami@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uhlar@netlab.sk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>vode@hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlloyd@mpd.ca</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlr@furball.wellsfargo.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>yamagata@nwgpc.kek.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ziggy@ryan.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ZW6T-KND@j.asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuhiro Yasutomi <email>nobu@psrc.isac.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuyuki Koganemaru
- <email>kogane@koganemaru.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NOKUBI Hirotaka <email>h-nokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Norio Suzuki <email>nosuzuki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Noritaka Ishizumi <email>graphite@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Noriyuki Soda <email>soda@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Oddbjorn Steffenson <email>oddbjorn@tricknology.org</email</para>
- </listitem>
-
- <listitem>
- <para>Oh Junseon <email>hollywar@mail.holywar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Semyonov <email>os@altavista.net</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Sharoiko <email>os@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg V. Volkov <email>rover@lglobus.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Olexander Kunytsa <email>kunia@wolf.istc.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Breuninger <email>ob@seicom.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Friedrichs <email>oliver@secnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Fromme
- <email>oliver.fromme@heim3.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Helmling
- <email>oliver.helmling@stud.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Laumann
- <email>net@informatik.uni-bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Lehmann
- <email>Kai_Allard_Liao@gmx.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Oberdorf <email>oly@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Olof Johansson <email>offe@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Osokin Sergey aka oZZ <email>ozz@FreeBSD.org.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paco Rosich <email>rosich@modico.eleinf.uv.es</email></para>
- </listitem>
-
- <listitem>
- <para>Palle Girgensohn <email>girgen@partitur.se</email></para>
- </listitem>
-
- <listitem>
- <para>Parag Patel <email>parag@cgt.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pascal Pederiva <email>pascal@zuo.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pasvorn Boonmark <email>boonmark@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Bihan-Faou <email>patrick@mindstep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Hausen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Seal <email>patseal@hyperhost.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Antonov <email>apg@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Paul F. Werkowski <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Fox <email>pgf@foxharp.boston.ma.us</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Koch <email>koch@thehub.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Paul M. Lambert <email>plambert@plambert.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul S. LaFollette, Jr. <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Sandys <email>myj@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul T. Root <email>proot@horton.iaces.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Vixie <email>paul@vix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>paulo@isr.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>pm@dee.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro A M Vazquez <email>vazquez@IQM.Unicamp.BR</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro Giffuni <email>giffunip@asme.org</email></para>
- </listitem>
-
- <listitem>
- <para>Per Wigren <email>wigren@home.se</email></para>
- </listitem>
-
- <listitem>
- <para>Pete Bentley <email>pete@demon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Childs <email>pjchilds@imforei.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Cornelius <email>pc@inr.fzk.de</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Haight <email>peterh@prognet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Jeremy <email>perer.jeremy@alcatel.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter M. Chen <email>pmchen@eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Much <email>peter@citylink.dinoex.sub.org</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Olsson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Philipp <email>pjp@bsd-daemon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Stubbs <email>PETERS@staidan.qld.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter van Heusden <email>pvh@egenetics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Maker <email>pjm@cs.ntu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Taylor <email>phil@zipmail.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Philip Musumeci <email>philip@rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Philippe Lefebvre <email>nemesis@balistik.net</email></para>
- </listitem>
-
- <listitem>
- <para>Pierre Y. Dampure <email>pierre.dampure@k2c.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Pius Fischer <email>pius@ienet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pomegranate <email>daver@flag.blackened.net</email></para>
- </listitem>
-
- <listitem>
- <para>Powerdog Industries
- <email>kevin.ruddy@powerdog.com</email></para>
- </listitem>
-
- <listitem>
- <para>Priit J&auml;rv <email>priit@cc.ttu.ee</email></para>
- </listitem>
-
- <listitem>
- <para>R Joseph Wright <email>rjoseph@mammalia.org</email></para>
- </listitem>
-
- <listitem>
- <para>R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Randal S. Masutani <email>randal@comtest.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall Hopper <email>rhh@ct.picker.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall W. Dean <email>rwd@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Randy Bush <email>rbush@bainbridge.verio.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rasmus Kaj <email>kaj@Raditex.se</email></para>
- </listitem>
-
- <listitem>
- <para>Reinier Bezuidenhout
- <email>rbezuide@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Remy Card <email>Remy.Card@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Ricardas Cepas <email>rch@richard.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Riccardo Veraldi <email>veraldi@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Rich Wood <email>rich@FreeBSD.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Henderson <email>richard@atheist.tamu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Hwang <email>rhwang@bigpanda.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Kiss <email>richard@homemail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard J Kuhns <email>rjk@watson.grauel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard M. Neswold
- <email>rneswold@enteract.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Seaman, Jr. <email>dick@tar.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Stallman <email>rms@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Straka <email>straka@user1.inficad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Tobin <email>richard@cogsci.ed.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wackerbarth <email>rkw@Dataplex.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Winkel <email>rich@math.missouri.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wiwatowski <email>rjwiwat@adelaide.on.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>rick@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Austein <email>sra@epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Mallory <email>rmallory@qualcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Snow <email>rsnow@txdirect.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Crowe <email>bob@speakez.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Eckardt
- <email>roberte@MEP.Ruhr-Uni-Bochum.de</email></para>
- </listitem>
-
- <listitem>
- <para>Robert P Ricci <email>ricci@cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sanders <email>rsanders@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sexton <email>robert@kudra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Shady <email>rls@id.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Swindells <email>swindellsr@genrad.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Withrow <email>witr@rwwa.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Yoder <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Robin Carey
- <email>robin@mailgate.dtc.rankxerox.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Rod Taylor <email>rod@idiotswitch.org</email></para>
- </listitem>
-
- <listitem>
- <para>Roger Hardiman <email>roger@cs.strath.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Roland Jesse <email>jesse@cs.uni-magdeburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Roman Shterenzon <email>roman@xpert.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Bickers <email>rbickers@intercenter.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Lenk <email>rlenk@widget.xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ronald Kuehn <email>kuehn@rz.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rudolf Cejka <email>cejkar@dcse.fee.vutbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Belkin <email>rus@home2.UA.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Shevchenko <email>rssh@cam.grad.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Russell L. Carter <email>rcarter@pinyon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Russell Vincent <email>rv@groa.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Ryan Younce <email>ryany@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ryuichiro IMURA <email>imura@af.airnet.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakari Jalovaara <email>sja@tekla.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Sam Hartman <email>hartmans@mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Lam <email>skl@ScalableNetwork.com</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Tardieu <email>sam@inf.enst.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Samuele Zannoli <email>zannoli@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Janssen <email>janssen@rendo.dekooi.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Vesik <email>sander@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Sandro Sigala <email>ssigala@globalnet.it</email></para>
- </listitem>
-
- <listitem>
- <para>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SASAKI Shunsuke <email>ele@pop17.odn.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Blank <email>blank@fox.uni-trier.de</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Satoh Junichi <email>junichi@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SAWADA Mizuki <email>miz@qb3.so-net.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Scot Elliott <email>scot@poptart.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scot W. Hetzel <email>hetzels@westbend.net</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Kenney <email>saken@rmta.ml.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Moberly <email>smoberly@xavier.dyndns.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Blachowicz
- <email>scott.blachowicz@seaslug.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Hazen Mueller <email>scott@zorch.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Michel <email>scottm@cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Mitchel <email>scott@uk.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sebastian Strollo <email>seb@erix.ericsson.se</email></para>
- </listitem>
-
- <listitem>
- <para>Serge V. Vakulenko <email>vak@zebub.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei Chechetkin <email>csl@whale.sunbay.crimea.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei S. Laskavy <email>laskavy@pc759.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Gershtein <email>sg@mplik.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Kosyakov <email>ks@itp.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Potapov <email>sp@alkor.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Samoyloff <email>gonza@techline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Shkonda <email>serg@bcs.zp.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Skvortsov <email>skv@protey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey V.Dorokhov <email>svd@kbtelecom.nalnet.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergio Lenzi <email>lenzi@bsi.com.br</email></para>
- </listitem>
-
- <listitem>
- <para>Shaun Courtney <email>shaun@emma.eng.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Shawn M. Carey <email>smcarey@mailbox.syr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Shigio Yamaguchi <email>shigio@tamacom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shinya FUJIE <email>fujie@tk.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Simon <email>simon@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Burge <email>simonb@telstra.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Dick <email>simond@irrelevant.org</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Marlow <email>simonm@dcs.gla.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Shapiro <email>shimon@simon-shapiro.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sin'ichiro MIYATANI <email>siu@phaseone.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Soochon Radee <email>slr@mitre.org</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dayton <email>csdayton@midway.uchicago.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dossing <email>sauber@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Soren S. Jorvang <email>soren@wheel.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Bethke <email>stb@hanse.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Eggers <email>seggers@semyam.dinoco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Moeding <email>s.moeding@ndh.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Petri <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan `Sec` Zehl <email>sec@42.org</email></para>
- </listitem>
-
- <listitem>
- <para>Steinar Haug <email>sthaug@nethelp.no</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane E. Potvin <email>sepotvin@videotron.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane Legrand <email>stephane@lituus.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Clawson
- <email>sclawson@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen F. Combs <email>combssf@salem.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Farrell <email>stephen@farrell.org</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Hocking <email>sysseh@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen J. Roznowski <email>sjr@home.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Melvin <email>melvin@zytek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Bauer <email>sbauer@rock.sdsmt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Coltrin <email>spcoltri@unm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Deering <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gerakines <email>steve2@genesis.tiac.net</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gericke <email>steveg@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Piette <email>steve@simon.chi.il.US</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Schwarz <email>schwarz@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Enderle <email>panic@subphase.de</email></para>
- </listitem>
-
- <listitem>
- <para>Steven G. Kargl
- <email>kargl@troutmask.apl.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven H. Samorodin <email>samorodi@NUXI.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven McCanne <email>mccanne@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Plite <email>splite@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Wallace <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stijn Hoop <email>stijn@win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Stuart Henderson
- <email>stuart@internationalschool.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Sue Blake <email>sue@welearn.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sugiura Shiro <email>ssugiura@duo.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sujal Patel <email>smpatel@wam.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Sungman Cho <email>smcho@tsp.korea.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>Sune Stjerneby <email>stjerneby@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>SURANYI Peter
- <email>suranyip@jks.is.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Suzuki Yoshiaki
- <email>zensyo@ann.tama.kawasaki.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Svein Skogen
- <email>tds@nsn.no</email></para>
- </listitem>
-
- <listitem>
- <para>Sybolt de Boer <email>bolt@xs4all.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Tadashi Kumano <email>kumano@strl.nhk.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Taguchi Takeshi <email>taguchi@tohoku.iij.ad.jp</email></para>
- </listitem>
-
- <listitem>
- <para>TAKAHASHI Kaoru <email>kaoru@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takahiro Yugawa <email>yugawa@orleans.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Mega <email>mega@minz.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Uozu <email>j1594016@ed.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takayuki Ariga <email>a00821@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeru NAIKI <email>naiki@bfd.es.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Amaike <email>amaike@iri.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi MUTOH <email>mutoh@info.nara-k.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Ohashi
- <email>ohashi@mickey.ai.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi WATANABE
- <email>watanabe@crayon.earth.s.kobe-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takuya SHIOZAKI
- <email>tshiozak@makino.ise.chuo-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tatoku Ogaito <email>tacha@tera.fukui-med.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Buswell <email>tbuswell@mediaone.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Faber <email>faber@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Lemon <email>mellon@isc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@lambert.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tetsuya Furukawa <email>tetsuya@secom-sis.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Theo de Raadt <email>deraadt@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas <email>thomas@mathematik.uni-Bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas D. Dean <email>tomdean@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas David Rivers <email>rivers@dignus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas G. McWilliams <email>tgm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Graichen
- <email>graichen@omega.physik.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas K&ouml;nig
- <email>Thomas.Koenig@ciw.uni-karlsruhe.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Ptacek <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Quinot <email>thomas@cuivre.fr.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas A. Stephens <email>tas@stephens.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Stromberg <email>tstrombe@rtci.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Valentino Crimi
- <email>tcrimi+@andrew.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Wintergerst <email>thomas@lemur.nord.de</email></para>
- </listitem>
-
- <listitem>
- <para>&THORN;&oacute;r&eth;ur &Iacute;varsson
- <email>totii@est.is</email></para>
- </listitem>
-
- <listitem>
- <para>Thierry Thomas <email>tthomas@mail.dotcom.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Timothy Jensen <email>toast@blackened.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Kientzle <email>kientzle@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Singletary
- <email>tsingle@sunland.gsfc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Wilkinson <email>tim@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Timo J. Rinne <email>tri@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Tobias Reifenberger <email>treif@mayn.de</email></para>
- </listitem>
-
- <listitem>
- <para>Todd Miller <email>millert@openbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>root@majestix.cmr.no</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>tom@sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Gray - DCA <email>dcasba@rain.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Jobbins <email>tom@tom.tj</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Pusateri <email>pusateri@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Rush <email>tarush@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Samplonius <email>tom@misery.sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tomohiko Kurahashi
- <email>kura@melchior.q.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Kimball <email>alk@Think.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Li <email>tli@jnx.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Lynn <email>wing@cc.nsysu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Maher <email>Tony.Maher@eBioinformatics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Torbjorn Granlund <email>tege@matematik.su.se</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiko SHIMOKAWA <email>toshi@tea.forus.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiro Kanda <email>candy@kgc.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshiomi Moriki
- <email>Toshiomi.Moriki@ma1.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Trefor S. <email>trefor@flevel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Trenton Schulz <email>twschulz@cord.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Trevor Blackwell <email>tlb@viaweb.com</email></para>
- </listitem>
-
- <listitem>
- <para>Udo Schweigert <email>ust@cert.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ugo Paternostro <email>paterno@dsi.unifi.it</email></para>
- </listitem>
-
- <listitem>
- <para>Ulf Kieber <email>kieber@sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ulli Linzen <email>ulli@perceval.camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Uwe Arndt <email>arndt@mailhost.uni-koblenz.de</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Belman <email>vab@lflat.vas.mobilix.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Chekan <email>vadim@gc.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Kolontsov <email>vadim@tversu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Mikhailov <email>mvp@braz.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Valentin Nechayev <email>netch@lucky.net</email></para>
- </listitem>
-
- <listitem>
- <para>Valentino Vaschetto <email>logo@blackened.com</email></para>
- </listitem>
-
- <listitem>
- <para>Van Jacobson <email>van@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Vasily V. Grechishnikov
- <email>bazilio@ns1.ied-vorstu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vasim Valejev <email>vasim@uddias.diaspro.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vernon J. Schryver <email>vjs@mica.denver.sgi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Veselin Slavov <email>vess@btc.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vic Abell <email>abe@cc.purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ville Eerola <email>ve@sci.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Vince Valenti <email>vince@blue-box.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincent Poy <email>vince@venus.gaianet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincenzo Capuano
- <email>VCAPUANO@vmprofs.esoc.esa.de</email></para>
- </listitem>
-
- <listitem>
- <para>Virgil Champlin <email>champlin@pa.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir A. Jakovenko
- <email>vovik@ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir Kushnir <email>kushn@mail.kar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vsevolod Lobko <email>seva@alex-ua.com</email></para>
- </listitem>
-
- <listitem>
- <para>W. Gerald Hicks <email>wghicks@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens <email>rstevens@noao.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt Howard <email>howard@ee.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt M. Shandruk <email>walt@erudition.net</email</para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wayne Scott <email>wscott@ichips.intel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Werner Griessl
- <email>werner@btp1da.phy.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wes Santee <email>wsantee@wsantee.oz.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wietse Venema <email>wietse@wzv.win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>Willem Jan Withagen <email>wjw@surf.IAE.nl</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>William Liao <email>william@tale.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wojtek Pilorz
- <email>wpilorz@celebris.bdk.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Helbig <email>helbig@ba-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Wu Ching-hong <email>woju@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Yarema <email>yds@ingress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Yaroslav Terletsky <email>ts@polynet.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhiro Fukama <email>yasuf@big.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Ming Lee <email>leeym@bsd.ce.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yin-Jieh Chen <email>yinjieh@Crazyman.Dorm13.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yixin Jin <email>yjin@rain.cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yoichi Asai <email>yatt@msc.biglobe.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoichi Nakayama <email>yoichi@eken.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshiaki Uchikawa <email>yoshiaki@kt.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihiko SARUMRU <email>mistral@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihisa NAKAGAWA
- <email>y-nakaga@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshikazu Goto <email>gotoh@ae.anritsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshimasa Ohnishi
- <email>ohnishi@isc.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshishige Arai <email>ryo2@on.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuichi MATSUTAKA <email>matutaka@osa.att.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yujiro MIYATA
- <email>miyata@bioele.nuee.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yu-Shun Wang <email>yushunwa@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yusuke Nawano <email>azuki@azkey.org</email></para>
- </listitem>
-
- <listitem>
- <para>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuuki SAWADA <email>mami@whale.cc.muroran-it.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuuichi Narahara <email>aconitum@po.teleway.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@cpcoup5.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@dutncp8.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Heilig <email>zach@gaffaneys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Zurflu <email>zach@pabst.bendnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zahemszhky Gabor <email>zgabor@code.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Zhong Ming-Xun <email>zmx@mail.CDPA.nsysu.edu.tw</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-386bsd">
- <title>386BSD Patch Kit Patch Contributors</title>
-
- <para>(in alphabetical order by first name):</para>
-
- <itemizedlist>
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>ahall@mirapoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey A. Chernov <email>ache@astral.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore <email>alm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email>
- <email>jtk@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Branko Lankester</para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Rivers <email>rivers@ponds.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@physics.su.OZ.AU</email></para>
- </listitem>
-
- <listitem>
- <para>David Greenman <email>dg@Root.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Felix Gaehtgens
- <email>felix@escape.vsse.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Maclachlan <email>fpm@crash.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Guido van Rooij <email>guido@gvr.org</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Antony Halse <email>guy@rucus.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@auspex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@novatel.cuc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ishii Masahiro, R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James W. Dolter</para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email> et al</para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Lohse
- <email>lohse@tech7.informatik.uni-hamburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Wunsch
- <email>joerg_wunsch@uriah.heep.sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>John Dyson</para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jordan K. Hubbard <email>jkh@whisker.hubbard.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Elischer <email>julian@dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Stacey <email>jhs@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email>
- <email>karl@one.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@toe.CS.Berkeley.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hughes</para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml%rokkaku.UUCP@mathcs.emory.edu</email>
- <email>kml@mosquito.cis.ufl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Konstantinos Konstantinidis <email>kkonstan@duth.gr</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email>
- <email>tinguely@hookie.cs.ndsu.NoDak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nate Williams <email>nate@bsd.coe.montana.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email>
- <email>nick@madhouse.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@cs.few.eur.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter da Silva <email>peter@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Poul-Henning Kamp<email>phk@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>root@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rodney W. Grimes <email>rgrimes@cdrom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sean Eric Fagan <email>sef@kithrup.com</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email>
- <email>sjg@zen.void.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@icarus.weber.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tor Egge <email>Tor.Egge@idi.ntnu.no</email></para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@dentaro.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/articles/dialup-firewall/Makefile b/en_US.ISO8859-1/articles/dialup-firewall/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/dialup-firewall/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/dialup-firewall/article.sgml b/en_US.ISO8859-1/articles/dialup-firewall/article.sgml
deleted file mode 100644
index c76119415a..0000000000
--- a/en_US.ISO8859-1/articles/dialup-firewall/article.sgml
+++ /dev/null
@@ -1,361 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/articles/dialup-firewall/article.sgml,v 1.6 2001/02/27 12:45:43 jesusr Exp $
--->
-
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<article>
- <articleinfo>
- <title>Dialup firewalling with FreeBSD</title>
-
- <authorgroup>
- <author>
- <firstname>Marc</firstname>
- <surname>Silver</surname>
-
- <affiliation>
- <address><email>marcs@draenor.org</email></address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>$Date: 2001-04-17 15:53:37 $</pubdate>
-
- <abstract>
- <para>This article documents how to setup a firewall using a PPP
- dialup with FreeBSD and IPFW, and specifically with firewalling over
- a dialup with a dynamically assigned IP address. This document does
- not cover setting up your PPP connection in the first place.</para>
- </abstract>
- </articleinfo>
-
- <sect1 id="preface">
- <title>Preface</title>
-
- <para>Dialup Firewalling with FreeBSD</para>
-
- <para>This document aims to cover the process that is required in
- order to setup firewalling with FreeBSD when are dynamically
- assigned an IP address by your ISP. While every effort has been
- made to make this document as informative and correct as possible,
- you are welcome to mail your comments/suggestions to the
- <ulink URL="mailto:marcs@draenor.org">maintainer</ulink>.</para>
- </sect1>
-
- <sect1 id="kernel">
- <title>Kernel Options</title>
-
- <para>The first thing you'll need to do is recompile your kernel in
- FreeBSD. If you need more information on how to recompile the kernel,
- then the best place to start is the <ulink
- URL="http://www.freebsd.org/handbook/kernelconfig.html">kernel
- configuration section in the Handbook</ulink>. You need to compile the
- following options into the kernel: </para>
-
- <variablelist>
- <varlistentry>
- <term><literal>options IPFIREWALL</literal></term>
-
- <listitem>
- <para>Enables the kernel's firewall code.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>options IPFIREWALL_VERBOSE</literal></term>
-
- <listitem>
- <para>Sends logged packets to the system logger.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>options
- IPFIREWALL_VERBOSE_LIMIT=<replaceable>100</replaceable></literal></term>
-
- <listitem>
- <para>Limits the number of times a matching entry is logged. This
- stops your log files filling up with lots of repetitive entries.
- <replaceable>100</replaceable> is a reasonable number to use, but
- you can adjust it based on your requirements.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>options IPDIVERT</literal></term>
-
- <listitem>
- <para>Enables <emphasis>divert</emphasis> sockets, which will be
- shown later.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>There are also some other OPTIONAL items that you can compile
- into the kernel for some added security. These are not required in
- order to get firewalling to work, but some more paranoid users may
- want to use them.</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>options TCP_RESTRICT_RST</literal></term>
-
- <listitem>
- <para>This option blocks all TCP RST packets. This is
- best used for systems that might be exposed to SYN
- flooding (IRC Servers are a good example) or for those who
- do not want to be easily portscannable.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>options TCP_DROP_SYNFIN</literal></term>
-
- <listitem>
- <para>This option ignores TCP packets with SYN and FIN. This
- prevents tools such as nmap etc from identifying the TCP/IP
- stack of the machine, but breaks support for RFC1644
- extensions. This is NOT recommended if the machine will be
- running a web server.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Don't reboot once you have recompiled the kernel. Hopefully, we will
- need to reboot just once in order to complete the installing of the
- firewall.</para>
- </sect1>
-
- <sect1 id="rcconf">
- <title>Changing <filename>/etc/rc.conf</filename> to load the
- firewall</title>
-
- <para>We now need to make some changes to
- <filename>/etc/rc.conf</filename> in order to tell it about the
- firewall. Simply add the following lines:</para>
-
- <programlisting>firewall_enable="YES"
-firewall_script="/etc/firewall/fwrules"
-natd_enable="YES"
-natd_interface="tun0"
-natd_flags="-dynamic"</programlisting>
-
- <para>For more information on what the above do take a look at
- <filename>/etc/defaults/rc.conf</filename> and read
- &man.rc.conf.5;</para>
- </sect1>
-
- <sect1>
- <title>Disable PPP's network address translation</title>
-
- <para>You may already be using PPP's built in network address
- translation (NAT). If that is the case you will have to disable it,
- as these examples use &man.natd.8; to do the same.</para>
-
- <para>If you already have a block of entries to
- automatically start PPP it probably looks like this:</para>
-
- <programlisting>ppp_enable="YES"
-ppp_mode="auto"
-ppp_nat="YES"
-ppp_profile="<replaceable>profile</replaceable>"</programlisting>
-
- <para>If so, remove the <literal>ppp_nat="YES"</literal> line. You will
- also need to remove any <literal>nat enable yes</literal> or
- <literal>alias enable yes</literal> in
- <filename>/etc/ppp/ppp.conf</filename>.</para>
- </sect1>
-
- <sect1 id="rules">
- <title>The ruleset for the firewall</title>
-
- <para>We're nearly done now. All that remains now is to define the
- firewall rules and then we can reboot and the firewall should be up and
- running. I realise that everyone will want something slightly different
- when it comes to their rulebase. What I've tried to do is write a
- rulebase that suits most dialup users. You can obviously modify it to
- your needs by simply using the following rules as the foundation for
- your own rulebase. First, let's start with the basics of closed
- firewalling. What you want to do is deny everything by default and then
- only open up for the things you really need. Rules should be in the
- order of allow first and then deny. The premise is that you add the
- rules for your allows, and then everything else is denied. :)</para>
-
- <para>Now, let's make the dir /etc/firewall. Change into the directory and
- edit the file fwrules as we specified in rc.conf. Please note that you
- can change this filename to be anything you wish. This guide just gives
- an example of a filename. </para>
-
- <para>Now, let's look at a sample firewall file, and we'll detail
- everything in it. </para>
-
- <programlisting># Firewall rules
-# Written by Marc Silver (marcs@draenor.org)
-# http://draenor.org/ipfw
-# Freely distributable
-
-
-# Define the firewall command (as in /etc/rc.firewall) for easy
-# reference. Helps to make it easier to read.
-fwcmd="/sbin/ipfw"
-
-# Force a flushing of the current rules before we reload.
-$fwcmd -f flush
-
-# Divert all packets through the tunnel interface.
-$fwcmd add divert natd all from any to any via tun0
-
-# Allow all data from my network card and localhost. Make sure you
-# change your network card (mine was fxp0) before you reboot. :)
-$fwcmd add allow ip from any to any via lo0
-$fwcmd add allow ip from any to any via fxp0
-
-# Allow all connections that I initiate.
-$fwcmd add allow tcp from any to any out xmit tun0 setup
-
-# Once connections are made, allow them to stay open.
-$fwcmd add allow tcp from any to any via tun0 established
-
-# Everyone on the internet is allowed to connect to the following
-# services on the machine. This example shows that people may connect
-# to ssh and apache.
-$fwcmd add allow tcp from any to any 80 setup
-$fwcmd add allow tcp from any to any 22 setup
-
-# This sends a RESET to all ident packets.
-$fwcmd add reset log tcp from any to any 113 in recv tun0
-
-# Allow outgoing DNS queries ONLY to the specified servers.
-$fwcmd add allow udp from any to <replaceable>x.x.x.x</replaceable> 53 out xmit tun0
-
-# Allow them back in with the answers... :)
-$fwcmd add allow udp from <replaceable>x.x.x.x</replaceable> 53 to any in recv tun0
-
-# Allow ICMP (for ping and traceroute to work). You may wish to
-# disallow this, but I feel it suits my needs to keep them in.
-$fwcmd add 65435 allow icmp from any to any
-
-# Deny all the rest.
-$fwcmd add 65435 deny log ip from any to any</programlisting>
-
- <para>You now have a fully functional firewall that will allow on
- connections to ports 80 and 22 and will log any other connection
- attempts. Now, you should be able to safely reboot and your firewall
- should come up fine. If you find this incorrect in anyway or experience
- any problems, or have any suggestions to improve this page, please
- email me.</para>
- </sect1>
-
- <sect1>
- <title>Questions</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Why are you using natd and ipfw when you could be using
- the built in ppp-filters?</para>
- </question>
-
- <answer>
- <para>I'll have to be honest and say there's no definitive reason
- why I use ipfw and natd instead of the built in ppp filters. From
- the discussions I've had with people the consensus seems to be
- that while ipfw is certainly more powerful and more configurable
- than the ppp filters, what it makes up for in functionality it
- loses in being easy to customise. One of the reasons I use it is
- because I prefer firewalling to be done at a kernel level rather
- than by a userland program.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>If I'm using private addresses internally, such as in the
- 192.168.0.0 range, Could I add a command like <literal>$fwcmd add
- deny all from any to 192.168.0.0:255.255.0.0 via tun0</literal>
- to the firewall rules to prevent outside attempts to connect to
- internal machines?</para>
- </question>
-
- <answer>
- <para>The simple answer is no. The reason for this is that natd is
- doing address translation for <emphasis>anything</emphasis> being
- diverted through the tun0 device. As far as it's concerned
- incoming packets will speak only to the dynamically assigned IP
- address and NOT to the internal network. Note though that you can
- add a rule like <literal>$fwcmd add deny all from
- 192.168.0.4:255.255.0.0 to any via tun0</literal> which would
- limit a host on your internal network from going out via the
- firewall.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>There must be something wrong. I followed your instructions
- to the letter and now I am locked out.</para>
- </question>
-
- <answer>
- <para>This tutorial assumes that you are running
- <emphasis>userland-ppp</emphasis>, therefore the supplied ruleset
- operates on the <devicename>tun0</devicename> interface, which
- corresponds to the first connection made with &man.ppp.8; (a.k.a.
- <emphasis>user-ppp</emphasis>). Additional connections would use
- <devicename>tun1</devicename>, <devicename>tun2</devicename> and so
- on.</para>
-
- <para>You should also note that &man.pppd.8; uses the
- <devicename>ppp0</devicename> interface instead, so if you start the
- connection with &man.pppd.8; you must substitute
- <devicename>tun0</devicename> for <devicename>ppp0</devicename>. A
- quick way to edit the firewall rules to reflect this change is shown
- below. The original ruleset is backed up as
- <filename>fwrules_tun0</filename>.</para>
-
- <screen>
- &prompt.user; <userinput>cd /etc/firewall</userinput>
- /etc/firewall&prompt.user; <userinput>su</userinput>
- <prompt>Password:</prompt>
- /etc/firewall&prompt.root; <userinput>mv fwrules fwrules_tun0</userinput>
- /etc/firewall&prompt.root; <userinput>cat fwrules_tun0 | sed s/tun0/ppp0/g > fwrules</userinput>
- </screen>
-
- <para>To know whether you are currently using &man.ppp.8; or
- &man.pppd.8; you can examine the output of &man.ifconfig.8; once the
- connection is up. E.g., for a connection made with &man.pppd.8; you
- would see something like this (showing only the relevant lines):</para>
-
- <screen>
- &prompt.user; <userinput>ifconfig</userinput>
- <emphasis>(skipped...)</emphasis>
- ppp0: flags=<replaceable>8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1524</replaceable>
- inet <replaceable>xxx.xxx.xxx.xxx</replaceable> --&gt; <replaceable>xxx.xxx.xxx.xxx</replaceable> netmask <replaceable>0xff000000</replaceable>
- <emphasis>(skipped...)</emphasis>
- </screen>
-
- <para>On the other hand, for a connection made with &man.ppp.8;
- (<emphasis>user-ppp</emphasis>) you should see something similar to
- this:</para>
-
- <screen>
- &prompt.user; <userinput>ifconfig</userinput>
- <emphasis>(skipped...)</emphasis>
- ppp0: flags=<replaceable>8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500</replaceable>
- <emphasis>(skipped...)</emphasis>
- tun0: flags=<replaceable>8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1524</replaceable>
- <emphasis>(IPv6 stuff skipped...)</emphasis>
- inet <replaceable>xxx.xxx.xxx.xxx</replaceable> --&gt; <replaceable>xxx.xxx.xxx.xxx</replaceable> netmask <replaceable>0xffffff00</replaceable>
- Opened by PID <replaceable>xxxxx</replaceable>
- <emphasis>(skipped...)</emphasis>
- </screen>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/diskless-x/Makefile b/en_US.ISO8859-1/articles/diskless-x/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/diskless-x/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/diskless-x/article.sgml b/en_US.ISO8859-1/articles/diskless-x/article.sgml
deleted file mode 100644
index 692ea3367f..0000000000
--- a/en_US.ISO8859-1/articles/diskless-x/article.sgml
+++ /dev/null
@@ -1,349 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/articles/diskless-x/article.sgml,v 1.3 1999/11/15 22:55:44 phantom Exp $
--->
-
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<article>
- <articleinfo>
- <title>Diskless X Server: a how to guide</title>
-
- <authorgroup>
- <author>
- <firstname> Jerry</firstname>
- <surname>Kendall</surname>
- <affiliation>
- <address>
- <email>jerry@kcis.com</email>
- </address>
- </affiliation>
- </author></authorgroup>
-
- <pubdate>28-December-1996</pubdate>
-
- <copyright>
- <year>1996</year>
- <holder>Jerry Kendall</holder>
- </copyright>
-
- <abstract>
- <para>With the help of some friends on the FreeBSD-hackers list, I have
- been able to create a diskless X terminal. The creation of the X
- terminal required first creating a diskless system with minimal
- utilities mounted via NFS. These same steps were used to create 2
- separate diskless systems. The first is <hostid
- role="fqdn">altair.kcis.com</hostid>. A diskless X terminal that I
- run on my old 386DX-40. It has a 340Meg hard disk but, I did not want
- to change it. So, it boots from <hostid
- role="fqdn">antares.kcis.com</hostid> across a Ethernet. The second
- system is a 486DX2-66. I setup a diskless FreeBSD (complete) that
- uses no local disk. The server in that case is a Sun 670MP running
- SunOS 4.1.3. The same setup configuration was needed for both.</para>
-
- <para>I am sure that there is stuff that needs to be added
- to this. Please send me any comments.</para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>Creating the boot floppy (On the diskless system)</title>
-
- <para>Since the network boot loaders will not work with some of the TSR's
- and such that MS-DOS uses, it is best to create a dedicated boot floppy
- or, if you can, create an MS-DOS menu that will (via the
- <filename>config.sys</filename>/<filename>autoexec.bat</filename> files)
- ask what configuration to load when the system starts. The later is the
- method that I use and it works great. My MS-DOS (6.x) menu is
- below.</para>
-
- <example>
- <title><filename>config.sys</filename></title>
-
- <programlisting>[menu]
-menuitem=normal, normal
-menuitem=unix, unix
-[normal]
-....
-normal config.sys stuff
-...
-[unix]</programlisting>
- </example>
-
- <example>
- <title><filename>autoexec.bat</filename></title>
-
- <programlisting>@ECHO OFF
-goto %config%
-
-:normal
-...
-normal autoexec.bat stuff
-...
-goto end
-
-:unix
-cd \netboot
-nb8390.com
-
-:end</programlisting>
- </example>
- </sect1>
-
- <sect1>
- <title>Getting the network boot programs (On the server)</title>
-
- <para>Compile the 'net-boot' programs that are located in
- <filename>/usr/src/sys/i386/boot/netboot</filename>. You should read
- the comments at the top of the <filename>Makefile</filename>. Adjust as
- required. Make a backup of the original in case it gets foobar'd. When
- the build is done, there should be 2 MS-DOS executables,
- <filename>nb8390.com</filename> and <filename>nb3c509.com</filename>.
- One of these two programs will be what you need to run on the diskless
- server. It will load the kernel from the boot server. At this point,
- put both programs on the MS-DOS boot floppy created earlier.</para>
- </sect1>
-
- <sect1>
- <title>Determine which program to run (On the diskless system)</title>
-
- <para>If you know the chipset that your Ethernet adapter uses, this is
- easy. If you have the NS8390 chipset, or a NS8390 based chipset, use
- <filename>nb8390.com</filename>. If you have a 3Com 509 based chipset,
- use the <filename>nb3C509.com</filename> boot program. If you are not
- sure which you have, try using one, if it says <errorname>No adapter
- found</errorname>, try the other. Beyond that, you are pretty much on
- your own.</para>
- </sect1>
-
- <sect1>
- <title>Booting across the network</title>
-
- <para>Boot the diskless system with out any config.sys/autoexec.bat
- files. try running the boot program for your Ethernet adapter.</para>
-
- <para>My Ethernet adapter is running in WD8013 16bit mode so I run
- <filename>nb8390.com</filename></para>
-
- <screen><prompt>C:&gt;</prompt> <userinput>cd \netboot</userinput>
-<prompt>C:&gt</prompt> <userinput>nb8390</userinput>
-
-<prompt>Boot from Network (Y/N) ?</prompt> <userinput>Y</userinput>
-
-BOOTP/TFTP/NFS bootstrap loader ESC for menu
-
-Searching for adapter..
-WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66
-
-Searching for server...</screen>
-
- <para>At this point, my diskless system is trying to find a machine to act
- as a boot server. Make note of the <literal>addr</literal> line above,
- you will need this number later. Reset the diskless system and modify
- your <filename>config.sys</filename> and
- <filename>autoexec.bat</filename> files to do these steps automatically
- for you. Perhaps in a menu. If you had to run
- <command>nb3c509.com</command> instead of <command>nb8390.com</command>
- the output is the same as above. If you got <errorname>No adapter
- found</errorname> at the <literal>Searching for adapter...</literal>
- message, verify that you did indeed set the compile time defines in the
- <filename>Makefile</filename> correctly.</para>
- </sect1>
-
- <sect1>
- <title>Allowing systems to boot across the network (On the server)</title>
-
- <para>Make sure the <filename>/etc/inetd.conf</filename> file has entries
- for tftp and bootps. Mine are listed below:</para>
-
- <programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot
-#
-# Additions by who ever you are
-bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab</programlisting>
-
- <para>If you have to change the <filename>/etc/inetd.conf</filename> file,
- send a <literal>HUP</literal> signal to inetd. To do this, get the
- process ID of inetd with <command>ps -ax | grep inetd | grep -v
- grep</command>. Once you have it, send it a HUP signal. Do this by
- <command>kill -HUP &lt;pid&gt;</command>. This will force inetd to
- re-read its config file.</para>
-
- <para>Did you remember to note the <literal>addr</literal> line from the
- output of the boot loader on the diskless system? Guess what, here is
- where you need it.</para>
-
- <para>Add an entry to <literal>/etc/bootptab</literal> (maybe creating the
- file). It should be laid out identical to this:</para>
-
- <programlisting>altair:\
- :ht=ether:\
- :ha=004001432666:\
- :sm=255.255.255.0:\
- :hn:\
- :ds=199.246.76.1:\
- :ip=199.246.76.2:\
- :gw=199.246.76.1:\
- :vm=rfc1048:</programlisting>
-
- <para>The lines are as follows:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><literal>altair</literal></entry>
- <entry>the diskless systems name without the domain name.</entry>
- </row>
-
- <row>
- <entry><literal>ht=ether</literal></entry>
- <entry>the hardware type of 'ethernet'.</entry>
- </row>
-
- <row>
- <entry><literal>ha=004001432666</literal></entry>
- <entry>the hardware address (the number noted above).</entry>
- </row>
-
- <row>
- <entry><literal>sm=255.255.255.0</literal></entry>
- <entry>the subnet mask.</entry>
- </row>
-
- <row>
- <entry><literal>hn</literal></entry>
- <entry>tells server to send client's hostname to the
- client.</entry>
- </row>
-
- <row>
- <entry><literal>ds=199.246.76.1</literal></entry>
- <entry>tells the client who the domain server is.</entry>
- </row>
-
- <row>
- <entry><literal>ip=199.246.76.2</literal></entry>
- <entry>tells the client what it's IP address is.</entry>
- </row>
-
- <row>
- <entry><literal>gw=199.246.76.1</literal></entry>
- <entry>tells the client what the default gateway is.</entry>
- </row>
-
- <row>
- <entry><literal>vm=...</literal></entry>
- <entry>just leave it there.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>Be sure to setup the IP addresses correctly, the addresses above
- are my own.</para>
- </note>
-
- <para>Create the directory '/tftpboot' on the server it will contain the
- configuration files for the diskless systems that the server will serve.
- These files will be named 'cfg.&lt;ip&gt;' where &lt;ip&gt; is the IP
- address of the diskless system. The config file for 'altair' is
- /tftpboot/cfg.199.246.76.2. The contents is:</para>
-
- <programlisting>rootfs 199.246.76.1:/DiskLess/rootfs/altair
-hostname altair.kcis.com</programlisting>
-
- <para>The line <literal>hostname altair.kcis.com</literal> simply tells
- the diskless system what its fully qualified domain name is.</para>
-
- <para>The line <literal>rootfs
- 199.246.76.1:/DiskLess/rootfs/altair</literal> tells the diskless
- system where its NFS mountable root filesystem is located.</para>
-
- <note>
- <para>The NFS mounted root filesystem will be mounted <emphasis>read
- only</emphasis>.</para>
- </note>
-
- <para>The hierarchy for the diskless system can be re-mounted allowing
- read-write operations if required.</para>
-
- <para>I use my spare 386DX-40 as a dedicated X terminal.</para>
-
- <para>The hierarchy for 'altair' is:</para>
-
- <literallayout>/
-/bin
-/etc
-/tmp
-/sbin
-/dev
-/dev/fd
-/usr
-/var
-/var/run</literallayout>
-
- <para>The actual list of files is:</para>
-
- <screen>-r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel
--r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh
--rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc
--rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys
--rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts
--rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair
--r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init
--r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig
--r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs
--r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot
--r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount
--r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local
--r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV</screen>
-
- <para>Don't forget to run <command>MAKEDEV all</command> in the
- <filename>dev</filename> directory.</para>
-
- <para>My <filename>/etc/rc</filename> for <hostid>altair</hostid>
- is:</para>
-
-<programlisting>#!/bin/sh
-#
-PATH=/bin:/
-export PATH
-#
-# configure the localhost
-/sbin/ifconfig lo0 127.0.0.1
-#
-# configure the ethernet card
-/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00
-#
-# mount the root filesystem via NFS
-/sbin/mount antares:/DiskLess/rootfs/altair /
-#
-# mount the /usr filesystem via NFS
-/sbin/mount antares:/DiskLess/usr /usr
-#
-/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1
-#
-# Reboot after X exits
-/sbin/reboot
-#
-# We blew up....
-exit 1</programlisting>
-
- <para>Any comments and all questions welcome.</para>
- </sect1>
-</article>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/en_US.ISO8859-1/articles/explaining-bsd/Makefile b/en_US.ISO8859-1/articles/explaining-bsd/Makefile
deleted file mode 100644
index 3893643f3e..0000000000
--- a/en_US.ISO8859-1/articles/explaining-bsd/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# $FreeBSD: doc/en_US.ISO_8859-1/articles/freebsd-questions/Makefile,v 1.1 2001/02/16 00:22:33 nik Exp $
-#
-
-MAINTAINER=grog@FreeBSD.org
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/explaining-bsd/article.sgml b/en_US.ISO8859-1/articles/explaining-bsd/article.sgml
deleted file mode 100644
index ad1ba6cec5..0000000000
--- a/en_US.ISO8859-1/articles/explaining-bsd/article.sgml
+++ /dev/null
@@ -1,542 +0,0 @@
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<article>
- <articleinfo>
- <title>Explaining BSD</title>
-
- <author>
- <firstname>Greg</firstname>
- <surname>Lehey</surname>
-
- <affiliation>
- <address><email>grog@FreeBSD.org</email></address>
- </affiliation>
- </author>
-
- <abstract>
- <para>In the open source world, the word <quote>Linux</quote> is almost
- synonymous with <quote>Operating System</quote>, but it's not the only
- open source <trademark>UNIX</trademark> operating system. According
- to the <ulink
- url="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
- Operating System Counter</ulink>, as of April 1999 31.3% of the
- world's network connected machines run Linux. 14.6% run BSD UNIX.
- Some of the world's largest web operations, such as <ulink
- url="http://www.yahoo.com">Yahoo!</ulink>, run BSD. The world's
- busiest ftp server, <ulink
- url="ftp://ftp.cdrom.com">ftp.cdrom.com</ulink>, uses BSD to
- transfer 1.4 TB of data a day. Clearly this is not a niche
- market: BSD is a well-kept secret.</para>
-
- <para>So what's the secret? Why isn't BSD better known? This white
- paper addresses these and other questions.</para>
-
- <para>Throughout this paper, differences between BSD and Linux will be
- noted <emphasis>like this</emphasis>.</para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>What is BSD?</title>
-
- <para>BSD stands for <quote>Berkeley Software Distribution</quote>. It is
- the name of distributions of source code from the University of
- California, Berkeley, which were originally extensions to AT&amp;T's
- Research UNIX operating system. Several open source operating system
- projects are based on a release of this source code known as
- 4.4BSD-Lite. In addition, they comprise a number of packages from other
- Open Source projects, including notably the GNU project. The overall
- operating system comprises:</para>
-
- <itemizedlist>
- <listitem>
- <para>The BSD kernel, which handles process scheduling, memory
- management, symmetric multi-processing (SMP), device drivers,
- etc.</para>
-
- <para><emphasis>Unlike the Linux kernel, there are several different
- BSD kernels with differing capabilities.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>The C library, the base API for the system.</para>
-
- <para><emphasis>The BSD C library is based on code from Berkeley, not
- the GNU project.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Utilities such as shells, file utilities, compilers and
- linkers.</para>
-
- <para><emphasis>Some of the utilities are derived from the GNU
- project, others are not.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>The X Window system, which handles graphical display.</para>
-
- <para>The X Window system used in most versions of BSD is maintained
- by a separate project, the
- <ulink url="http://www.XFree86.org/">XFree86 project</ulink>.
- This is the same code as Linux uses. BSD does not normally
- specify a <quote>graphical desktop</quote> such as GNOME or KDE,
- though these are available.</para>
- </listitem>
-
- <listitem>
- <para>Many other programs and utilities.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>What, a real UNIX?</title>
-
- <para>The BSD operating systems are not clones, but open source
- derivatives of AT&amp;T's Research UNIX operating system, which is also
- the ancestor of the modern UNIX System V. This may surprise you. How
- could that happen when AT&amp;T has never released its code as open
- source?</para>
-
- <para>It's true that AT&amp;T UNIX is not open source, and in a copyright
- sense BSD is very definitely <emphasis>not</emphasis> UNIX, but on the
- other hand, AT&amp;T has imported sources from other projects,
- noticeably the Computer Sciences Research Group of the University of
- California in Berkeley, CA. Starting in 1976, the CSRG started
- releasing tapes of their software, calling them <emphasis>Berkeley
- Software Distribution</emphasis> or <emphasis>BSD</emphasis>.</para>
-
- <para>Initial BSD releases consisted mainly of user programs, but that
- changed dramatically when the CSRG landed a contract with the Defense
- Advanced Projects Research Agency (DARPA) to upgrade the communications
- protocols on their network, ARPANET. The new protocols were known as
- the <emphasis>Internet Protocols</emphasis>, later
- <emphasis>TCP/IP</emphasis> after the most important protocols. The
- first widely distributed implementation was part of 4.2BSD, in
- 1982.</para>
-
- <para>In the course of the 1980s, a number of new workstation companies
- sprang up. Many preferred to license UNIX rather than developing
- operating systems for themselves. In particular, Sun Microsystems
- licensed UNIX and implemented a version of 4.2BSD, which they called
- SunOS. When AT&amp;T themselves were allowed to sell UNIX commercially,
- they started with a somewhat bare-bones implementation called System
- III, to be quickly followed by System V. The System V code base did not
- include networking, so all implementions included additional software
- from the BSD, including the TCP/IP software, but also utilities such as
- the <emphasis>csh</emphasis> shell and the <emphasis>vi</emphasis>
- editor. Collectively, these enhancements were known as the
- <emphasis>Berkeley Extensions</emphasis>.</para>
-
- <para>The BSD tapes contained AT&amp;T source code and thus required a
- UNIX source license. By 1990, the CSRG's funding was running out, and
- it faced closure. Some members of the group decided to release the BSD
- code, which was Open Source, without the AT&amp;T proprietary code.
- This finally happened with the <emphasis>Networking Tape 2</emphasis>,
- usually known as <emphasis>Net/2</emphasis>. Net/2 was not a complete
- operating system: about 20% of the kernel code was missing. One of the
- CSRG members, William F. Jolitz, wrote the remaining code and released
- it in early 1992 as <emphasis>386BSD</emphasis>. At the same time,
- another group of ex-CSRG members formed a commercial company called
- <ulink url="http://www.bsdi.com">Berkeley Software Design Inc.</ulink>
- and released a beta version of an operating system called
- <ulink url="http://www.bsdi.com">BSD/386</ulink>, which was based on
- the same sources. The name of the operating system has since changed
- to BSD/OS.</para>
-
- <para>386BSD never became a stable operating system. Instead, two other
- projects split off from it in 1993:
- <ulink url="http://www.NetBSD.org">NetBSD</ulink> and
- <ulink url="http://www.FreeBSD.org">FreeBSD</ulink>. The two projects
- originally diverged due to differences in patience waiting for
- improvements to 386BSD: the NetBSD people started early in the year,
- and the first version of FreeBSD wasn't ready until the end of the
- year. In the meantime, the code base had diverged sufficiently to
- make it difficult to merge. In addition, the projects had different
- aims, as we'll see below. In 1996, a further project,
- <ulink url="http://www.OpenBSD.org">OpenBSD</ulink>, split off from
- NetBSD.</para>
- </sect1>
-
- <sect1>
- <title>Why isn't BSD better known?</title>
-
- <para>For a number of reasons, BSD is relatively unknown:</para>
-
- <orderedlist>
- <listitem>
- <para>The BSD developers are often more interested in polishing their
- code than marketing it.</para>
- </listitem>
-
- <listitem>
- <para>Much of Linux's popularity is due to factors external to the
- Linux projects, such as the press, and to companies formed to
- provide Linux services. Until recently, the open source BSDs had no
- such proponents.</para>
- </listitem>
-
- <listitem>
- <para>BSD developers tend to be more experienced than Linux
- developers, and have less interest in making the system easy to use.
- Newcomers tend to feel more comfortable with Linux.</para>
- </listitem>
-
- <listitem>
- <para>In 1992, AT&amp;T sued
- <ulink url="http://www.bsdi.com">BSDI</ulink>,
- the vendor of BSD/386, alleging that the product contained
- AT&amp;T-copyrighted code. The case was settled out of court in
- 1994, but the spectre of the litigation continues to haunt people.
- As recently as March 2000 an article published on the web claimed
- that the court case had been <quote>recently settled</quote>.</para>
-
- <para>One detail that the lawsuit did clarify is the naming: in the
- 1980s, BSD was known as <quote>BSD UNIX</quote>. With the
- elimination of the last vestige of AT&amp;T code from BSD, it
- also lost the right to the name UNIX. Thus you will see
- references in book titles to <quote>the 4.3BSD UNIX operating
- system</quote> and <quote>the 4.4BSD operating
- system</quote>.</para>
- </listitem>
-
- <listitem>
- <para>There is a perception that the BSD projects are fragmented and
- belligerent. The
- <ulink url="http://interactive.wsj.com/bin/login?Tag=/&amp;URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&">Wall Street
- Journal</ulink> spoke of <quote>balkanization</quote> of the
- BSD projects. Like the law suit, this perception bases mainly
- on ancient history.</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1>
- <title>Comparing BSD and Linux</title>
-
- <para>So what's really the difference between, say, Debian Linux and
- FreeBSD? For the average user, the difference is surprisingly small:
- Both are UNIX-like operating systems. Both are developed by
- non-commercial projects (this doesn't apply to many other Linux
- distributions, of course). In the following section, we'll look at BSD
- and compare it to Linux. The description applies most closely to
- FreeBSD, which accounts for an estimated 80% of the BSD installations,
- but the differences from NetBSD and OpenBSD are small.</para>
-
- <sect2>
- <title>Who owns BSD?</title>
-
- <para>No one person or corporation owns BSD. It is created and
- distributed by a community of highly technical and committed
- contributors all over the world. Some of the components of BSD are
- Open Source projects managed by a different project maintainer.</para>
- </sect2>
-
- <sect2>
- <title>How is BSD developed and updated?</title>
-
- <para>The BSD kernels are developed and updated following the Open
- Source development model. Each project maintains a publicly
- accessible <emphasis>source tree</emphasis> under the
- <ulink url="http://www.sourcegear.com/CVS">Concurrent Versions
- System</ulink> (CVS), which contains all source files for the
- project, including documentation and other incidental files. CVS
- allows users to <quote>check out</quote> (in other words, to
- extract a copy of) any desired version of the system.</para>
-
- <para>A large number of developers worldwide contribute to improvements
- to BSD. They are divided into three kinds:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Contributors</emphasis> write code or documentation.
- They are not permitted to commit (add code) directly to the source
- tree. In order for their code to be included in the system, it
- must be reviewed and checked in by a registered developer, known
- as a <emphasis>committer</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Committers</emphasis> are developers with write
- access to the source tree. In order to become a committer, an
- individual must show ability in the area in which he is
- active.</para>
-
- <para>
- It is at the individual committer's discretion whether he should
- obtain authority before committing changes to the source tree. In
- general, an experienced committer may make changes which are
- obviously correct without obtaining consensus. For example, a
- documentation project committer may correct typographical or
- grammatical errors without review. On the other hand, developers
- making far-reaching or complicated changes are expected to submit
- their changes for review before committing them. In extreme
- cases, a core team member with a function such as Principal
- Architect may order that changes be removed from the tree, a
- process known as <emphasis>backing out</emphasis>. All committers
- receive mail describing each individual commit, so it is not
- possible to commit secretly.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Core team</emphasis> In addition, FreeBSD
- and NetBSD each have a core team which manages the project. The
- core teams developed in the course of the projects, and their role
- is not always well-defined. It is not necessary to be a developer
- in order to be a core team member, though it is normal. The rules
- for the core team vary from one project to the other, but in
- general they have more say in the direction of the project than
- non-core team members have.</para>
- </listitem>
- </itemizedlist>
-
- <para>This arrangement differs from Linux in a number of ways:</para>
-
- <orderedlist>
- <listitem>
- <para>No one person controls the content of the system. In
- practice, this difference is overrated, since the Chief Architect
- can require that code be backed out, and even in the Linux project
- several people are permitted to make changes.</para>
- </listitem>
-
- <listitem>
- <para>On the other hand, there <emphasis>is</emphasis> a central
- repository, a single place where you can find the entire operating
- system sources, including all older versions.</para>
- </listitem>
-
- <listitem>
- <para>BSD projects maintain the entire <quote>Operating
- System</quote>, not only the kernel. This distinction is only
- marginally useful: neither BSD nor Linux is useful without
- applications. The applications used under BSD are frequently the
- same as the applications used under Linux.</para>
- </listitem>
-
- <listitem>
- <para>As a result of the formalized maintenance of a single CVS
- source tree, BSD development is clear, and it is possible to
- access any version of the system by release number or by date.
- CVS also allows incremental updates to the system: for example,
- the FreeBSD repository is updated about 100 times a day. Most of
- these changes are small.</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>BSD releases</title>
-
- <para>Each BSD project provides the system in three different
- <quote>releases</quote>. As with Linux, releases are assigned a
- number such as 1.4.1 or 3.5. In addition, the version number has a
- suffix indicating its purpose:</para>
-
- <orderedlist>
- <listitem>
- <para>The development version of the system is called
- <emphasis>CURRENT</emphasis>. FreeBSD assigns a number to
- CURRENT, for example FreeBSD 5.0-CURRENT. NetBSD uses a slightly
- different naming scheme and appends a single-letter suffix which
- indicates changes in the internal interfaces, for example NetBSD
- 1.4.3G. OpenBSD does not assign a number ("OpenBSD-current").
- All new development on the system goes into this branch.</para>
- </listitem>
-
- <listitem>
- <para>At regular intervals, between two and four times a year, the
- projects bring out a <emphasis>RELEASE</emphasis> version of the
- system, which is available on CD-ROM and for free download from
- ftp sites, for example OpenBSD 2.6-RELEASE or NetBSD 1.4-RELEASE.
- The RELEASE version is intended for end users and is the normal
- version of the system. NetBSD also provides <emphasis>patch
- releases</emphasis> with a third digit, for example NetBSD
- 1.4.2.</para>
- </listitem>
-
- <listitem>
- <para>As bugs are found in a RELEASE version, they are fixed, and
- the fixes are added to the CVS tree. In FreeBSD, the resultant
- version is called the STABLE version, while in NetBSD and OpenBSD
- it continues to be called the RELEASE version. Smaller new
- features can also be added to this branch after a period of test
- in the CURRENT branch.</para>
- </listitem>
- </orderedlist>
-
- <para><emphasis>By contrast, Linux maintains two separate code trees:
- the stable version and the development version. Stable versions
- have an even minor version number, such as 2.0, 2.2 or 2.4.
- Development versions have an odd minor version number, such as 2.1,
- 2.3 or 2.5. In each case, the number is followed by a further
- number designating the exact release. In addition, each vendor adds
- their own userland programs and utilities, so the name of the
- distribution is also important. Each distribution vendor also
- assigns version numbers to the distribution, so a complete
- description might be something like <quote>TurboLinux 6.0 with kernel
- 2.2.14</quote></emphasis></para>
- </sect2>
-
- <sect2>
- <title>What versions of BSD are available?</title>
-
- <para>In contrast to the numerous Linux distributions, there are only
- three open source BSDs. Each BSD project maintains its own source
- tree and its own kernel. In practice, though, there appear to be
- fewer divergences between the userland code of the projects than there
- is in Linux.</para>
-
- <para>It's difficult to categorize the goals of each project: the
- differences are very subjective. Basically,</para>
-
- <itemizedlist>
- <listitem>
- <para>FreeBSD aims for high performance and ease of use by
- end users, and is a favourite of web content providers. It runs
- on PCs and Compaq's Alpha processors. The FreeBSD project has
- significantly more users than the other projects.</para>
- </listitem>
-
- <listitem>
- <para>NetBSD aims for maximum portability: <quote>of course it runs
- NetBSD</quote>. It runs on machines from palmtops to large
- servers, and has even been used on NASA space missions. It is a
- particularly good choice for running on old non-Intel
- hardware.</para>
- </listitem>
-
- <listitem>
- <para>OpenBSD aims for security and code purity: it uses a
- combination of the open source concept and rigorous code reviews
- to create a system which is demonstrably correct, making it the
- choice of security-conscious organizations such as banks, stock
- exchanges and US Government departments. Like NetBSD, it runs on
- a number of platforms.</para>
- </listitem>
- </itemizedlist>
-
- <para>There are also two additional BSD operating systems which are not
- open source, BSD/OS and Apple's Mac OS X:</para>
-
- <itemizedlist>
- <listitem>
- <para>BSD/OS is the oldest of the 4.4BSD derivatives. It
- is not open source, though source code licenses are available at
- relatively low cost. It resembles FreeBSD in many ways.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.apple.com/macosx/server/">Mac OS
- X</ulink> is the latest version of the operating system for
- <ulink url="http://www.apple.com">Apple Computer Inc.'s</ulink>
- Macintosh line. Unlike the rest of the operating system, the
- kernel is open source. As part of this development, key Apple
- developers have commit access to the FreeBSD source tree.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>How does the BSD license differ from the GNU Public
- license?</title>
-
- <para>Linux is available under the
- <ulink url="http://www.fsf.org/copyleft/gpl.html">GNU General Public
- License</ulink> (GPL), which is designed to eliminate closed
- source software. In particular, any derivative work of a product
- released under the GPL must also be supplied with source code if
- requested. By contrast, the
- <ulink url="http://www.opensource.org/licenses/bsd-license.html">BSD
- license</ulink> is less restrictive: binary-only distributions are
- allowed. This is particularly attractive for embedded
- applications.</para>
- </sect2>
-
- <sect2>
- <title>What else should I know?</title>
-
- <para>Since fewer applications are available for BSD than Linux, the BSD
- developers created a Linux compatibility package, which allows Linux
- programs to run under BSD. The package includes both kernel
- modifications, in order to correctly perform Linux system calls, and
- Linux compatibility files such as the C library. There is no
- noticeable difference in execution speed between a Linux application
- running on a Linux machine and a Linux application running on a BSD
- machine of the same speed.</para>
-
- <para>The <quote>all from one supplier</quote> nature of BSD means that
- upgrades are much easier to handle than is frequently the case with
- Linux. BSD handles library version upgrades by providing
- compatibility modules for earlier library versions, so it is possible
- to run binaries which are several years old with no problems.</para>
- </sect2>
-
- <sect2>
- <title>Which should I use, BSD or Linux?</title>
-
- <para>What does this all mean in practice? Who should use BSD, who
- should use Linux?</para>
-
- <para>This is a very difficult question to answer. Here are some
- guidelines:</para>
-
- <itemizedlist>
- <listitem>
- <para><quote>If it ain't broke, don't fix it</quote>: If you already
- use an open source operating system, and you are happy with it,
- there's probably no good reason to change.</para>
- </listitem>
-
- <listitem>
- <para>BSD systems, in particular FreeBSD, can have notably higher
- performance than Linux. But this isn't across the board. In many
- cases, there is little or no difference in performance. In some
- cases, Linux may perform better than FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>In general, BSD systems have a better reputation for
- reliability, mainly as a result of the more mature code
- base.</para>
- </listitem>
-
- <listitem>
- <para>The BSD license may be more attractive than the GPL.</para>
- </listitem>
-
- <listitem>
- <para>BSD can execute Linux code, while Linux can't execute BSD
- code. As a result, more software is available for BSD than for
- Linux.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Who provides support, service, and training for BSD?</title>
-
- <para>BSDi have always supported BSD/OS, and they have recently
- announced support contracts for FreeBSD.</para>
-
- <para>In addition, each of the projects has a list of consultants for
- hire:
- <ulink url="http://www.freebsd.org/commercial/consulting_bycat.html">FreeBSD</ulink>,
- <ulink url="http://www.netbsd.org/gallery/consultants.html">NetBSD</ulink>,
- and <ulink url="http://www.openbsd.org/support.html">OpenBSD</ulink>.</para>
- </sect2>
- </sect1>
-</article>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/en_US.ISO8859-1/articles/fonts/Makefile b/en_US.ISO8859-1/articles/fonts/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/fonts/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/fonts/article.sgml b/en_US.ISO8859-1/articles/fonts/article.sgml
deleted file mode 100644
index a15a3ef658..0000000000
--- a/en_US.ISO8859-1/articles/fonts/article.sgml
+++ /dev/null
@@ -1,988 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/fonts/article.sgml,v 1.13 2001/04/09 09:59:33 murray Exp $ -->
-<!-- The FreeBSD Documentation Project -->
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<!-- Recently, I wanted to figure out how to use some additional fonts that
- I had accumulated. I finally figured out *how to do it* from the various
- man pages and documentation. Since it might be of use to other users,
- and I didn't see any reference to this topic in the FAQ or handbook, I
- thought I'd try my hand at a simple cookbook tutorial addressing the
- use of fonts. I have included my unanswered questions at the end of
- the document.
-
- Anyway, here's what I put together. This is my present understanding of
- fonts and how to use them with FreeBSD. I am sure that there are errors or
- misunderstandings, but it contains enough valid information to allow the
- use of additional fonts with Ghostscript, X11 and Groff. This is my first
- attempt to write anything along the lines of a tutorial/FAQ, so I am sure
- it is pretty raw. There are probably better ways to do some of this stuff,
- and I would welcome being corrected.
- -->
-
-<!-- The section "Setting a virtual console to 80x60 line mode" was
- updated to reflect changes in FreeBSD system configuration
- files by Mark Ovens <mark@ukug.uk.freebsd.org> 27/5/00
- -->
-
-<article>
- <articleinfo>
- <title>Fonts and FreeBSD</title>
-
- <subtitle>A Tutorial</subtitle>
-
- <authorgroup>
- <author>
- <firstname>Dave</firstname>
-
- <surname>Bodenstab</surname>
-
- <affiliation>
- <address>
- <email>imdave@synet.net</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>Wed Aug 7, 1996</pubdate>
-
- <abstract>
- <para>This document contains a description of the various font
- files that may be used with FreeBSD and the syscons driver,
- X11, Ghostscript and Groff. Cookbook examples are provided
- for switching the syscons display to 80x60 mode, and for using
- type 1 fonts with the above application programs.</para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>Introduction</title>
-
- <para>There are many sources of fonts available, and one might ask
- how they might be used with FreeBSD. The answer can be found by
- carefully searching the documentation for the component that one
- would like to use. This is very time consuming, so this
- tutorial is an attempt to provide a shortcut for others who
- might be interested.</para>
- </sect1>
-
- <sect1>
- <title>Basic terminology</title>
-
- <para>There are many different font formats and associated font
- file suffixes. A few that will be addressed here are:</para>
-
- <variablelist>
- <varlistentry>
- <term><filename>.pfa</filename>, <filename>.pfb</filename></term>
-
- <listitem>
- <para>Postscript type 1 fonts. The
- <filename>.pfa</filename> is the
- <emphasis>A</emphasis>scii form and
- <filename>.pfb</filename> the <emphasis>B</emphasis>inary
- form.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.afm</filename></term>
-
- <listitem>
- <para>The font metrics associated with a type 1 font.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.pfm</filename></term>
-
- <listitem>
- <para>The printer font metrics associated with a type 1
- font.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.ttf</filename></term>
-
- <listitem>
- <para>A TrueType font</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.fot</filename></term>
-
- <listitem>
- <para>An indirect reference to a TrueType font (not an
- actual font)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><filename>.fon</filename>, <filename>.fnt</filename></term>
-
- <listitem>
- <para>Bitmapped screen fonts</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The <filename>.fot</filename> file is used by Windows as
- sort of a symbolic link to the actual TrueType font
- (<filename>.ttf</filename>) file. The <filename>.fon</filename>
- font files are also used by Windows. I know of no way to use
- this font format with FreeBSD.</para>
- </sect1>
-
- <sect1>
- <title>What font formats can I use?</title>
-
- <para>Which font file format is useful depends on the application
- being used. FreeBSD by itself uses no fonts. Application
- programs and/or drivers may make use of the font files. Here is
- a small cross reference of application/driver to the font type
- suffixes:</para>
-
- <variablelist>
- <varlistentry>
- <term>Driver</term>
-
- <listitem>
- <variablelist>
- <varlistentry>
- <term>syscons</term>
-
- <listitem>
- <para><filename>.fnt</filename></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Application</term>
-
- <listitem>
- <variablelist>
- <varlistentry>
- <term>Ghostscript</term>
-
- <listitem>
- <para><filename>.pfa</filename>,
- <filename>.pfb</filename>,
- <filename>.ttf</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>X11</term>
-
- <listitem>
- <para><filename>.pfa</filename>,
- <filename>.pfb</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Groff</term>
-
- <listitem>
- <para><filename>.pfa</filename>,
- <filename>.afm</filename></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Povray</term>
-
- <listitem>
- <para><filename>.ttf</filename></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The <filename>.fnt</filename> suffix is used quite
- frequently. I suspect that whenever someone wanted to create a
- specialized font file for their application, more often than not
- they chose this suffix. Therefore, it is likely that files with
- this suffix are not all the same format; specifically, the
- <filename>.fnt</filename> files used by syscons under FreeBSD
- may not be the same format as a <filename>.fnt</filename> file
- one encounters in the MSDOS/Windows environment. I have not
- made any attempt at using other <filename>.fnt</filename> files
- other than those provided with FreeBSD.</para>
- </sect1>
-
- <sect1>
- <title>Setting a virtual console to 80x60 line mode</title>
-
- <para>First, an 8x8 font must be loaded. To do this,
- <filename>/etc/rc.conf</filename> should contain the
- line (change the font name to an appropriate one for
- your locale):</para>
-
- <informalexample>
- <programlisting>font8x8="iso-8x8" # font 8x8 from /usr/share/syscons/fonts/* (or NO).</programlisting>
- </informalexample>
-
- <para>The command to actually switch the mode is
- &man.vidcontrol.1;:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>vidcontrol VGA_80x60</userinput>
- </screen>
- </informalexample>
-
- <para>Various screen orientated programs, such as &man.vi.1;, must
- be able to determine the current screen dimensions. As this is
- achieved this through <command>ioctl</command> calls to the console
- driver (such as &man.syscons.4;) they will correctly determine the new
- screen dimensions.</para>
-
- <para>To make this more seamless, one can embed these commands in
- the startup scripts so it takes place when the system boots.
- To do this is add this line to <filename>/etc/rc.conf</filename>
- </para>
-
- <informalexample>
- <programlisting>allscreens_flags="VGA_80x60" # Set this vidcontrol mode for all virtual screens
- </programlisting>
- </informalexample>
-
- <para>References: &man.rc.conf.5;, &man.vidcontrol.1;.</para>
- </sect1>
-
- <sect1>
- <title>Using type 1 fonts with X11</title>
-
- <para>X11 can use either the <filename>.pfa</filename> or the
- <filename>.pfb</filename> format fonts. The X11 fonts are
- located in various subdirectories under
- <filename>/usr/X11R6/lib/X11/fonts</filename>. Each font file
- is cross referenced to its X11 name by the contents of the
- <filename>fonts.dir</filename> file in each directory.</para>
-
- <para>There is already a directory named <filename>Type1</filename>. The
- most straight forward way to add a new font is to put it into
- this directory. A better way is to keep all new fonts in a
- separate directory and use a symbolic link to the additional
- font. This allows one to more easily keep track of ones fonts
- without confusing them with the fonts that were originally
- provided. For example:</para>
-
- <informalexample>
- <screen><lineannotation>Create a directory to contain the font files</lineannotation>
-&prompt.user; <userinput>mkdir -p /usr/local/share/fonts/type1</userinput>
-&prompt.user; <userinput>cd /usr/local/share/fonts/type1</userinput>
-
-<lineannotation>Place the .pfa, .pfb and .afm files here</lineannotation>
-<lineannotation>One might want to keep readme files, and other documentation</lineannotation>
-<lineannotation>for the fonts here also</lineannotation>
-&prompt.user; <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</userinput>
-&prompt.user; <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</userinput>
-
-<lineannotation>Maintain an index to cross reference the fonts</lineannotation>
-&prompt.user; <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat &gt;&gt;INDEX</userinput>
- </screen>
- </informalexample>
-
- <para>Now, to use a new font with X11, one must make the font file
- available and update the font name files. The X11 font names
- look like:</para>
-
- <informalexample>
- <screen>-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
- | | | | | | | | | | | | \ \
- | | | | | \ \ \ \ \ \ \ +----+- character set
- | | | | \ \ \ \ \ \ \ +- average width
- | | | | \ \ \ \ \ \ +- spacing
- | | | \ \ \ \ \ \ +- vertical res.
- | | | \ \ \ \ \ +- horizontal res.
- | | | \ \ \ \ +- points
- | | | \ \ \ +- pixels
- | | | \ \ \
- foundry family weight slant width additional style
- </screen>
- </informalexample>
-
- <para>A new name needs to be created for each new font. If you
- have some information from the documentation that accompanied
- the font, then it could serve as the basis for creating the
- name. If there is no information, then you can get some idea by
- using &man.strings.1; on the font file. For example:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>strings showboat.pfb | more</userinput>
-%!FontType1-1.0: Showboat 001.001
-%%CreationDate: 1/15/91 5:16:03 PM
-%%VMusage: 1024 45747
-% Generated by Fontographer 3.1
-% Showboat
- 1991 by David Rakowski. Alle Rechte Vorbehalten.
-FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup
-/UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-12 dict begin
-/FontInfo 9 dict dup begin
- /version (001.001) readonly def
- /FullName (Showboat) readonly def
- /FamilyName (Showboat) readonly def
- /Weight (Medium) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -106 def
- /UnderlineThickness 16 def
- /Notice (Showboat
- 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def
-end readonly def
-/FontName /Showboat def
---stdin--
- </screen>
- </informalexample>
-
- <para>Using this information, a possible name might be:</para>
-
- <informalexample>
- <screen>-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
- </screen>
- </informalexample>
-
- <para>The components of our name are:</para>
-
- <variablelist>
- <varlistentry>
- <term>Foundry</term>
-
- <listitem>
- <para>Lets just name all the new fonts
- <literal>type1</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Family</term>
-
- <listitem>
- <para>The name of the font.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Weight</term>
-
- <listitem>
- <para>Normal, bold, medium, semibold, etc. From the
- &man.strings.1;
- output above, it appears that this font has a weight of
- <emphasis>medium</emphasis>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Slant</term>
-
- <listitem>
- <para><emphasis remap=bf>r</emphasis>oman, <emphasis
- remap=bf>i</emphasis>talic, <emphasis
- remap=bf>o</emphasis>blique, etc. Since the
- <emphasis>ItalicAngle</emphasis> is zero,
- <emphasis>roman</emphasis> will be used.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Width</term>
-
- <listitem>
- <para>Normal, wide, condensed, extended, etc. Until it can
- be examined, the assumption will be
- <emphasis>normal</emphasis>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Additional style</term>
-
- <listitem>
- <para>Usually omitted, but this will indicate that the font
- contains decorative capital letters.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Spacing</term>
-
- <listitem>
- <para>proportional or monospaced.
- <emphasis>Proportional</emphasis> is used since
- <emphasis>isFixedPitch</emphasis> is false.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>All of these names are arbitrary, but one should strive to
- be compatible with the existing conventions. A font is
- referenced by name with possible wild cards by an X11 program,
- so the name chosen should make some sense. One might begin by
- simply using
-
- <informalexample>
- <screen>&hellip;-normal-r-normal-&hellip;-p-&hellip;
- </screen>
- </informalexample>
-
- as the name, and then use
- &man.xfontsel.1;
- to examine it and adjust the name based on the appearance of the
- font.</para>
-
- <para>So, to complete our example:</para>
-
- <informalexample>
- <screen><lineannotation>Make the font accessible to X11</lineannotation>
-&prompt.user; <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</userinput>
-&prompt.user; <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput>
-
-<lineannotation>Edit fonts.dir and fonts.scale, adding the line describing the font
-and incrementing the number of fonts which is found on the first line.</lineannotation>
-&prompt.user; <userinput>ex fonts.dir
-:1p
-25
-:1c
-26
-.
-:$a
-showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
-.
-:wq</userinput>
-
-<lineannotation><filename>fonts.scale</filename> seems to be identical to <filename>fonts.dir</filename>&hellip;</lineannotation>
-&prompt.user; <userinput>cp fonts.dir fonts.scale</userinput>
-
-<lineannotation>Tell X11 that things have changed</lineannotation>
-&prompt.user; <userinput>xset fp rehash</userinput>
-
-<lineannotation>Examine the new font</lineannotation>
-&prompt.user; <userinput>xfontsel -pattern -type1-*</userinput>
- </screen>
- </informalexample>
-
- <para>References: &man.xfontsel.1;, &man.xset.1;, <citetitle>The X
- Windows System in a Nutshell</citetitle>, <ulink
- URL="http://www.ora.com/">O'Reilly &amp;
- Associates</ulink>.</para>
- </sect1>
-
- <sect1>
- <title>Using type 1 fonts with Ghostscript</title>
-
- <para>Ghostscript references a font via its <filename>Fontmap</filename>
- file. This must be modified in a similar way to the X11
- <filename>fonts.dir</filename> file. Ghostscript can use either
- the <filename>.pfa</filename> or the <filename>.pfb</filename>
- format fonts. Using the font from the previous example, here is
- how to use it with Ghostscript:</para>
-
- <informalexample>
- <screen><lineannotation>Put the font in Ghostscript's font directory</lineannotation>
-&prompt.user; <userinput>cd /usr/local/share/ghostscript/fonts</userinput>
-&prompt.user; <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput>
-
-<lineannotation>Edit Fontmap so Ghostscript knows about the font</lineannotation>
-&prompt.user; <userinput>cd /usr/local/share/ghostscript/4.01</userinput>
-&prompt.user; <userinput>ex Fontmap
-:$a
-/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat
-.
-:wq</userinput>
-
-<lineannotation>Use Ghostscript to examine the font</lineannotation>
-&prompt.user; <userinput>gs prfont.ps</userinput>
-Aladdin Ghostscript 4.01 (1996-7-10)
-Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights
-reserved.
-This software comes with NO WARRANTY: see the file PUBLIC for details.
-Loading Times-Roman font from /usr/local/share/ghostscript/fonts/tir_____.pfb...
- /1899520 581354 1300084 13826 0 done.
-GS&gt;<userinput>Showboat DoFont</userinput>
-Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb...
- 1939688 565415 1300084 16901 0 done.
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-GS&gt;<userinput>quit</userinput>
- </screen>
- </informalexample>
-
- <para>References: <filename>fonts.txt</filename> in the
- Ghostscript 4.01 distribution</para>
- </sect1>
-
- <sect1>
- <title>Using type 1 fonts with Groff</title>
-
- <para>Now that the new font can be used by both X11 and
- Ghostscript, how can one use the new font with groff? First of
- all, since we are dealing with type 1 postscript fonts, the
- groff device that is applicable is the <emphasis>ps</emphasis>
- device. A font file must be created for each font that groff
- can use. A groff font name is just a file in
- <filename>/usr/share/groff_font/devps</filename>. With our
- example, the font file could be
- <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. The
- file must be created using tools provided by groff.</para>
-
- <para>The first tool is <command>afmtodit</command>. This is not
- normally installed, so it must be retrieved from the source
- distribution. I found I had to change the first line of the
- file, so I did:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</userinput>
-&prompt.user; <userinput>ex /tmp/afmtodit.pl
-:1c
-#!/usr/bin/perl -P-
-.
-:wq</userinput>
- </screen>
- </informalexample>
-
- <para>This tool will create the groff font file from the metrics
- file (<filename>.afm</filename> suffix.) Continuing with our
- example:</para>
-
- <informalexample>
- <screen><lineannotation>Many <filename>.afm</filename> files are in Mac format&hellip; ^M delimited lines
-We need to convert them to unix style ^J delimited lines</lineannotation>
-&prompt.user; <userinput>cd /tmp</userinput>
-&prompt.user; <userinput>cat /usr/local/share/fonts/type1/showboat.afm |
- tr '\015' '\012' &gt;showboat.afm</userinput>
-
-<lineannotation>Now create the groff font file</lineannotation>
-&prompt.user; <userinput>cd /usr/share/groff_font/devps</userinput>
-&prompt.user; <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</userinput>
- </screen>
- </informalexample>
-
- <para>The font can now be referenced with the name
- SHOWBOAT.</para>
-
- <para>If ghostscript is used to drive the printers on the system,
- then nothing more needs to be done. However, if true postscript
- printers are used, then the font must be down loaded to the
- printer in order for the font to be used (unless the printer
- happens to have the showboat font built in or on an accessible
- font disk.) The final step is to create a down loadable font.
- The <command>pfbtops</command> tool is used to create the
- <filename>.pfa</filename> format of the font, and the
- <filename>download</filename> file is modified to reference the new
- font. The <filename>download</filename> file must reference the
- internal name of the font. This can easily be determined from
- the groff font file as illustrated:</para>
-
- <informalexample>
- <screen><lineannotation>Create the <filename>.pfa</filename> font file</lineannotation>
-&prompt.user; <userinput>pfbtops /usr/local/share/fonts/type1/showboat.pfb &gt;showboat.pfa</userinput>
- </screen>
- </informalexample>
-
- <para>Of course, if the <filename>.pfa</filename> file is already
- available, just use a symbolic link to reference it.</para>
-
- <informalexample>
- <screen><lineannotation>Get the internal font name</lineannotation>
-&prompt.user; <userinput>fgrep internalname SHOWBOAT</userinput>
-internalname Showboat
-
-<lineannotation>Tell groff that the font must be down loaded</lineannotation>
-&prompt.user; <userinput>ex download
-:$a
-Showboat showboat.pfa
-.
-:wq</userinput>
- </screen>
- </informalexample>
-
- <para>To test the font:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cd /tmp</userinput>
-&prompt.user; <userinput>cat &gt;example.t &lt;&lt;EOF
-.sp 5
-.ps 16
-This is an example of the Showboat font:
-.br
-.ps 48
-.vs (\n(.s+2)p
-.sp
-.ft SHOWBOAT
-ABCDEFGHI
-.br
-JKLMNOPQR
-.br
-STUVWXYZ
-.sp
-.ps 16
-.vs (\n(.s+2)p
-.fp 5 SHOWBOAT
-.ft R
-To use it for the first letter of a paragraph, it will look like:
-.sp 50p
-\s(48\f5H\s0\fRere is the first sentence of a paragraph that uses the
-showboat font as its first letter.
-Additional vertical space must be used to allow room for the larger
-letter.
-EOF</userinput>
-&prompt.user; <userinput>groff -Tps example.t &gt;example.ps</userinput>
-
-<lineannotation>To use ghostscript/ghostview</lineannotation>
-&prompt.user; <userinput>ghostview example.ps</userinput>
-
-<lineannotation>To print it</lineannotation>
-&prompt.user; <userinput>lpr -Ppostscript example.ps</userinput>
- </screen>
- </informalexample>
-
- <para>References:
- <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>,
- &man.groff.font.5;, &man.groff.char.7;, &man.pfbtops.1;.</para>
- </sect1>
-
- <sect1>
- <title>Converting TrueType fonts to a groff/postscript format for
- groff</title>
-
- <para>This potentially requires a bit of work, simply because it
- depends on some utilities that are not installed as part of the
- base system. They are:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>ttf2pf</command></term>
-
- <listitem>
- <para>TrueType to postscript convertsion utilities. This
- allows conversion of a TrueType font to an ascii font
- metric (<filename>.afm</filename>) file.</para>
-
- <para>Currently available at <ulink
- url="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/">http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf</ulink>.
- Note: These files are postscript programs and must be
- downloaded to disk by holding down the
- <keycap>Shift</keycap> key when clicking on the link.
- Otherwise, your browser may try to launch
- <application>ghostview</application> to view them.</para>
-
- <para>The files of interest are:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>GS_TTF.PS</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>PF2AFM.PS</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>ttf2pf.ps</filename></para>
- </listitem>
- </itemizedlist>
-
- <para>The funny upper/lower case is due to their being
- intended also for DOS shells.
- <filename>ttf2pf.ps</filename> makes use of the others as
- upper case, so any renaming must be consistent with this.
- (Actually, <filename>GS_TTF.PS</filename> and
- <filename>PFS2AFM.PS</filename> are supposedly part of the
- ghostscript distribution, but it's just as easy to use
- these as an isolated utility. FreeBSD doesn't seem to
- include the latter.) You also may want to have these
- installed to
- <filename>/usr/local/share/groff_font/devps</filename>(?).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>afmtodit</command></term>
-
- <listitem>
- <para>Creates font files for use with groff from ascii font
- metrics file. This usually resides in the directory,
- <filename>/usr/src/contrib/groff/afmtodit</filename>, and
- requires some work to get going.</para>
-
- <note>
- <para> If you're paranoid about working in the
- <filename>/usr/src</filename> tree, simply copy the
- contents of the above directory to a work
- location.</para>
- </note>
-
- <para>In the work area, you'll need to make the utility.
- Just type:</para>
-
- <screen><prompt>#</prompt> <userinput>make -f Makefile.sub afmtodit</userinput>
- </screen>
-
- <para>You may also need to copy
- <filename>/usr/contrib/groff/devps/generate/textmap</filename>
- to
- <filename>/usr/share/groff_font/devps/generate</filename>
- if it doesn't already exist.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Once all these utilities are in place, you're ready to
- commence:</para>
-
- <orderedlist>
- <listitem>
- <para>Create the <filename>.afm</filename> file by
- typing:</para>
-
- <screen><prompt>%</prompt> <userinput>gs <optional>-dNODISPLAY</optional> <optional>-q</optional> -- ttf2pf.ps <replaceable>TTF_name</replaceable> <optional><replaceable>PS_font_name</replaceable> <optional><replaceable>AFM_name</replaceable></optional></optional></userinput>
- </screen>
-
- <para>Where, <replaceable>TTF_name</replaceable> is your
- TrueType font file, <replaceable>PS_font_name</replaceable>
- is the file name for the <filename>.pfa</filename> file,
- <replaceable>AFM_name</replaceable> is the name you wish for
- the <filename>.afm</filename> file. If you do not specify
- output file names for the <filename>.pfa</filename> or
- <filename>.afm</filename> files, then default names will be
- generated from the TrueType font file name.</para>
-
- <para>This also produces a <filename>.pfa</filename> file, the
- ascii postscript font metrics file
- (<filename>.pfb</filename> is for the binrary form). This
- won't be needed, but could (I think) be useful for a
- fontserver.</para>
-
- <para>For example, to convert the 30f9 Barcode font using the
- default file names, use the following command:</para>
-
- <screen><prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf</userinput>
-Aladdin Ghostscript 5.10 (1997-11-23)
-Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved.
-This software comes with NO WARRANTY: see the file PUBLIC for details.
-Converting 3of9.ttf to 3of9.pfa and 3of9.afm.
- </screen>
-
- <para>If you want the converted fonts to be stored in
- <filename>A.pfa</filename> and <filename>B.afm</filename>,
- then use this command:</para>
-
- <screen><prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B</userinput>
-Aladdin Ghostscript 5.10 (1997-11-23)
-Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved.
-This software comes with NO WARRANTY: see the file PUBLIC for details.
-Converting 3of9.ttf to A.pfa and B.afm.
- </screen>
- </listitem>
-
- <listitem>
- <para>Create the groff postscript file:</para>
-
- <para>Change directories to
- <filename>/usr/share/groff_font/devps</filename> so as to
- make the following command easier to execute. You'll
- probably need root priviledges for this. (Or, if you're
- paranoid about working there, make sure you reference the
- files <filename>DESC</filename>,
- <filename>text.enc</filename> and
- <filename>generate/textmap</filename> as being in this
- directory.)</para>
-
- <screen><prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc file.afm \
- generate/textmap <replaceable>PS_font_name</replaceable></userinput>
- </screen>
-
- <para>Where, <filename>file.afm</filename> is the
- <replaceable>AFM_name</replaceable> created by
- <command>ttf2pf.ps</command> above, and
- <replaceable>PS_font_name</replaceable> is the font name
- used from that command, as well as the name that
- &man.groff.1; will use for references to this font. For
- example, assuming you used the first
- <command>tiff2pf.ps</command> command above, then the 3of9
- Barcode font can be created using the command:</para>
-
- <screen><prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc 3of9.afm \
- generate/textmap 3of9</userinput>
- </screen>
-
- <para>Ensure that the resulting
- <replaceable>PS_font_name</replaceable> file (e.g.,
- <filename>3of9</filename> in the example above) is located
- in the directory
- <filename>/usr/share/groff_font/devps</filename> by copying
- or moving it there.</para>
-
- <para>Note that if <filename>ttf2pf.ps</filename> assigns a
- font name using the one it finds in the TrueType font file
- and you want to use a different name, you must edit the
- <filename>.afm</filename> file prior to running
- <command>afmtodit</command>. This name must also match the
- one used in the Fontmap file if you wish to pipe
- &man.groff.1; into &man.gs.1;.</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1>
- <title>Can TrueType fonts be used with other programs?</title>
-
- <para>The TrueType font format is used by Windows, Windows 95, and
- Mac's. It is quite popular and there are a great number of
- fonts available in this format.</para>
-
- <para>Unfortunately, there are few applications that I am aware of
- that can use this format: Ghostscript and Povray come to mind.
- Ghostscript's support, according to the documentation, is
- rudimentary and the results are likely to be inferior to type 1
- fonts. Povray version 3 also has the ability to use TrueType
- fonts, but I rather doubt many people will be creating documents
- as a series of raytraced pages :-).</para>
-
- <para>This rather dismal situation may soon change. The <ulink
- url="http://www.freetype.org/">FreeType Project</ulink> is
- currently developing a useful set of FreeType tools:</para>
-
- <itemizedlist>
- <listitem>
- <para>The freetype module is included with XFree86 4.x. For
- more information please see the <ulink
- url="http://www.freebsd.org/handbook/x-fonts.html">FreeBSD
- Handbook</ulink> or the <ulink
- url="http://www.xfree86.org/4.0.2/fonts.html">XFree86 4.0.2
- Fonts</ulink> page.</para>
- </listitem>
-
- <listitem>
- <para>The <command>xfsft</command> font server for X11 can
- serve TrueType fonts in addition to regular fonts. Though
- currently in beta, it is said to be quite useable. See
- <ulink
- url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">Juliusz
- Chroboczek's page</ulink> for further information.
- Porting instructions for FreeBSD can be found at <ulink
- url="http://math.missouri.edu/~stephen/software/">Stephen
- Montgomery's software page</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><command>xfstt</command> is another font server for X11,
- available under <ulink url="
- ftp://sunsite.unc.edu/pub/Linux/X11/fonts">
- ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>A program called <command>ttf2bdf</command> can produce
- BDF files suitable for use in an X environment from TrueType
- files. Linux binaries are said to be available from <ulink
- url="ftp://crl.nmsu.edu/CLR/multiling/General">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>For people requiring the use of Asian TrueType fonts,
- the <command>XTT</command> font server may be worth a look.
- Information about <command>XTT</command> can be found at
- URL: <ulink
- url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>and others &hellip;</para>
- </listitem>
- </itemizedlist>
-
- <para>The <ulink
- url="http://freetype.sourceforge.net/projects.html">FreeType Projects
- page </ulink> is a good starting point for information on
- these and other free TrueType projects.</para>
- </sect1>
-
- <sect1>
- <title>Where can additional fonts be obtained?</title>
-
- <para>Many fonts are available on the Internet. They are either
- entirely free, or are share-ware. In addition, there are many
- inexpensive CDROMs available that contain many fonts. Some
- Internet locations (as of August 1996) are:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink>
- (Formerly CICA)</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Additional questions</title>
-
- <itemizedlist>
- <listitem>
- <para>What use are the <filename>.pfm</filename> files?</para>
- </listitem>
-
- <listitem>
- <para>Can one generate the <filename>.afm</filename> file from
- a <filename>.pfa</filename> or
- <filename>.pfb</filename>?</para>
- </listitem>
-
- <listitem>
- <para>How to generate the groff character mapping files for
- postscript fonts with non-standard character names?</para>
- </listitem>
-
- <listitem>
- <para>Can xditview and devX?? devices be setup to access all
- the new fonts?</para>
- </listitem>
-
- <listitem>
- <para>It would be good to have examples of using TrueType
- fonts with povray and ghostscript.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/formatting-media/Makefile b/en_US.ISO8859-1/articles/formatting-media/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/formatting-media/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/formatting-media/article.sgml b/en_US.ISO8859-1/articles/formatting-media/article.sgml
deleted file mode 100644
index c6854498eb..0000000000
--- a/en_US.ISO8859-1/articles/formatting-media/article.sgml
+++ /dev/null
@@ -1,603 +0,0 @@
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/formatting-media/article.sgml,v 1.14 2000/07/26 18:24:38 jim Exp $ -->
-<article>
- <articleinfo>
- <title>Formatting Media For Use With FreeBSD 2.2-RELEASE</title>
-
- <subtitle>A Tutorial</subtitle>
-
- <authorgroup>
- <author>
- <firstname>Doug</firstname>
-
- <surname>White</surname>
-
- <affiliation>
- <address>
- <email>dwhite@resnet.uoregon.edu</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>March 1997</pubdate>
-
- <abstract>
- <para>This document describes how to slice, partition, and
- format hard disk drives and similar media for use with
- FreeBSD. The examples given have been tested under FreeBSD
- 2.2-GAMMA and may work for other releases.</para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>Introduction & Definitions</title>
-
- <sect2>
- <title>Overview</title>
-
- <para>Successfully adding disks to an existing system is the
- mark of an experienced system administrator. Slicing,
- partitioning, and adding disks requires a careful dance of
- proper command and name syntax. One slipped finger and an
- entire disk could disappear in seconds. This document is
- written in an attempt to simplify this process and avoid
- accidents. Thankfully, enhancements to existing tools
- (notably sysinstall) have greatly improved this process in
- recent releases of FreeBSD.</para>
-
- <para>There are two possible modes of disk formatting:</para>
-
- <itemizedlist>
- <listitem>
- <para><firstterm>compatibility mode</firstterm>: Arranging a
- disk so that it has a slice table for use with other
- operating systems.</para>
- </listitem>
-
- <listitem>
- <para><firstterm>dangerously dedicated mode</firstterm>:
- Formatting a disk with no slice table. This makes the
- process of adding disks easier, however non-FreeBSD
- operating systems may not accept the disk.</para>
- </listitem>
- </itemizedlist>
-
- <para>For most cases, dedicated mode is the easiest to set up
- and use in existing systems, as a new disk is usually
- dedicated entirely to FreeBSD. However, compatibility mode
- insures optimum interoperability with future installations at
- a cost of increased complexity.</para>
-
- <para>In addition to selecting the mode, two methods of slicing
- the disk are available. One is using the system installation
- tool <command>/stand/sysinstall</command>. 2.1.7-RELEASE and
- later versions of <command>sysinstall</command> contain code
- to ease setup of disks during normal system operation, mainly
- allowing access to the Label and Partition editors and a Write
- feature which will update just the selected disk and slice
- without affecting other disks. The other method is running
- the tools manually from a root command line. For dangerously
- dedicated mode, only three or four commands are involved while
- <command>sysinstall</command> requires some
- manipulation.</para>
- </sect2>
-
- <sect2>
- <title>Definitions</title>
-
- <para>UNIX disk management over the centuries has invented many
- new definitions for old words. The following glossary covers
- the definitions used in this document and (hopefully) for
- FreeBSD in general.</para>
-
-<!-- I'm tempted to use GLOSSARY here but will resort to a list for
-now. -->
-
- <itemizedlist>
- <listitem>
- <para>compatibility mode: Arranging a disk so that it has a
- slice table for use with other operating systems. Oppose
- dangerously dedicated mode.</para>
- </listitem>
-
- <listitem>
- <para>dangerously dedicated mode: Formatting a disk with no
- slice table. This makes the process of adding disks
- easier, however non-FreeBSD operating systems may not
- accept the disk. Oppose compatibility mode.</para>
- </listitem>
-
- <listitem>
- <para>disk: A circular disc, covered with magnetic or
- similarly manipulable material, spun by a motor under a
- head. Data is stored on the disk by changing the pattern
- of magnetism on the disc, which can be later read. Hard
- disks, CD-ROMs, Magneto-optical,and Zip/Jaz removables are
- examples of disks.</para>
- </listitem>
-
- <listitem>
- <para>slice: A division of a disk. Up to four slices are
- permitted on one disk in the PC standard. Slices are
- composed of contiguous sectors. Slices are recorded in a
- <quote>slice table</quote> used by the system BIOS to
- locate bootable partitions. The slice table is usually
- called the Partition Table in DOS parlance. Maintained by
- the fdisk utility.</para>
- </listitem>
-
- <listitem>
- <para>partition: A division of a slice. Usually used in
- reference to divisions of the FreeBSD slice of a disk.
- Each filesystem and swap area on a disk resides in a
- partition. Maintained using the disklabel utility.</para>
- </listitem>
-
- <listitem>
- <para>sector: Smallest subdivision of a disk. One sector
- usually represents 512 bytes of data.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Warnings & Pitfalls</title>
-
- <para>Building disks is not something to take lightly. It is
- quite possible to destroy the contents of other disks in your
- system if the proper precautions are not taken.</para>
-
- <para><emphasis>Check your work carefully.</emphasis> It is very simple
- to destroy the incorrect disk when working with these
- commands. When in doubt consult the kernel boot output for
- the proper device.</para>
-
- <para>Needless to say, we are not responsible for any damage to
- any data or hardware that you may experience. You work at
- your own risk!</para>
- </sect2>
-
- <sect2>
- <title>Zip, Jaz, and Other Removables</title>
-
- <para>Removable disks can be formatted in the same way as normal
- hard disks. It is essential to have the disk drive connected
- to the system and a disk placed in the drive during startup,
- so the kernel can determine the drive's geometry. Check the
- <command>dmesg</command> output and make sure your device and
- the disk's size is listed. If the kernel reports
-
- <informalexample>
- <screen>Can't get the size
- </screen>
- </informalexample>
-
- then the disk was not in the drive. In this case, you will
- need to restart the machine before attempting to format
- disks.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Formatting Disks in Dedicated Mode</title>
-
- <sect2>
- <title>Introduction</title>
-
- <para>This section details how to make disks that are totally
- dedicated to FreeBSD. Remember, dedicated mode disks cannot
- be booted by the PC architecture.</para>
- </sect2>
-
- <sect2>
- <title>Making Dedicated Mode Disks using Sysinstall</title>
-
- <para><command>/stand/sysinstall</command>, the system
- installation utility, has been expanded in recent versions to
- make the process of dividing disks properly a less tiring
- affair. The fdisk and disklabel editors built into sysinstall
- are GUI tools that remove much of the confusion from slicing
- disks. For FreeBSD versions 2.1.7 and later, this is perhaps
- the simplest way to slice disks.</para>
-
- <procedure>
- <step>
- <para>Start sysinstall as root by typing
-
- <informalexample>
- <screen>&prompt.root; <userinput>/stand/sysinstall</userinput>
- </screen>
- </informalexample>
-
- from the command prompt.</para>
- </step>
-
- <step>
- <para>Select <command>Index</command>.</para>
- </step>
-
- <step>
- <para>Select <command>Partition</command>.</para>
- </step>
-
- <step>
- <para>Select the disk to edit with arrow keys and
- <keycap>SPACE</keycap>.</para>
- </step>
-
- <step>
- <para>If you are using this entire disk for FreeBSD, select
- <command>A</command>.</para>
- </step>
-
- <step>
- <para>When asked:
-
- <informalexample>
- <screen>Do you want to do this with a true partition entry so as to remain
-cooperative with any future possible operating systems on the
-drive(s)?
- </screen>
- </informalexample>
-
- answer <command>No</command>.</para>
- </step>
-
- <step>
- <para>When asked if you still want to do this, answer
- <command>Yes</command>.</para>
- </step>
-
- <step>
- <para>Select <command>Write</command>.</para>
- </step>
-
- <step>
- <para>When warned about Writing on installed systems, answer
- <command>Yes</command>.</para>
- </step>
-
- <step>
- <para><command>Quit</command>the FDISK Editor and
- <keycap>ESCAPE</keycap> back to the Index menu.</para>
- </step>
-
- <step>
- <para>Select <command>Label</command> from the Index
- menu.</para>
- </step>
-
- <step>
- <para>Label as desired. For a single partition, enter
- <command>C</command> to Create a partition, accept the
- default size, partition type Filesystem, and a mountpoint
- (which isn't used).</para>
- </step>
-
- <step>
- <para>Enter <command>W</command> when done and confirm to
- continue. The filesystem will be newfs'd for you, unless
- you select otherwise (for news partitions you'll want to
- do this!). You'll get the error:
-
- <informalexample>
- <screen>Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory
- </screen>
- </informalexample>
-
- Ignore.</para>
- </step>
-
- <step>
- <para>Exit out by repeatedly pressing
- <keycap>ESCAPE</keycap>.</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Making Dedicated Mode Disks Using the Command Line</title>
-
- <para>Execute the following commands, replacing wd2 with the
- disk name.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput>
-&prompt.root; <userinput>disklabel /dev/rwd2 | disklabel -B -R -r wd2 /dev/stdin</userinput>
-<lineannotation>We only want one partition, so using slice 'c' should be fine:</lineannotation>
-&prompt.root; <userinput>newfs /dev/rwd2c</userinput>
- </screen>
- </informalexample>
-
- <para>If you need to edit the disklabel to create multiple
- partitions (such as swap), use the following: </para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput>
-&prompt.root; <userinput>disklabel /dev/r$d > /tmp/label</userinput>
-<lineannotation>Edit disklabel to add partitions:</lineannotation>
-&prompt.root; <userinput>vi /tmp/label</userinput>
-&prompt.root; <userinput>disklabel -B -R -r wd2 /tmp/label</userinput>
-<lineannotation>newfs partitions appropriately</lineannotation>
- </screen>
- </informalexample>
-
- <para>Your disk is now ready for use.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Making Compatibility Mode Disks</title>
-
- <sect2>
- <title>Introduction</title>
-
- <para>The command line is the easiest way to make dedicated
- disks, and the worst way to make compatibility disks. The
- command-line fdisk utility requires higher math skills and an
- in-depth understanding of the slice table, which is more than
- most people want to deal with. Use sysinstall for
- compatibility disks, as described below.</para>
- </sect2>
-
- <sect2>
- <title>Making Compatibility Mode Disks Using Sysinstall</title>
-
- <procedure>
- <step>
- <para>Start sysinstall as root by typing
-
- <informalexample>
- <screen>&prompt.root; <userinput>/stand/sysinstall</>
- </screen>
- </informalexample>
-
- from the command prompt.</para>
- </step>
-
- <step>
- <para>Select <command>Index</command>.</para>
- </step>
-
- <step>
- <para>Select <command>Partition</command>.</para>
- </step>
-
- <step>
- <para>Select the disk to edit with arrow keys and
- <keycap>SPACE</keycap>.</para>
- </step>
-
- <step>
- <para>If you are using this entire disk for FreeBSD, select
- <command>A</command>.</para>
- </step>
-
- <step>
- <para>When asked:
-
- <informalexample>
- <screen>Do you want to do this with a true partition entry so as to remain
-cooperative with any future possible operating systems on the
-drive(s)?
- </screen>
- </informalexample>
-
- answer <command>yes</command>.</para>
- </step>
-
- <step>
- <para>Select <command>Write</command>.</para>
- </step>
-
- <step>
- <para>When asked to install the boot manager, select None
- with <keycap>SPACE</keycap> then hit
- <keycap>ENTER</keycap> for OK.</para>
- </step>
-
- <step>
- <para><command>Quit</command> the FDISK Editor.</para>
- </step>
-
- <step>
- <para>You'll be asked about the boot manager, select
- <command>None</command> again. </para>
- </step>
-
- <step>
- <para>Select <command>Label</command> from the Index
- menu.</para>
- </step>
-
- <step>
- <para>Label as desired. For a single partition, accept the
- default size, type filesystem, and a mountpoint (which
- isn't used).</para>
- </step>
-
- <step>
- <para>The filesystem will be newfs'd for you, unless you
- select otherwise (for news partitions you'll want to do
- this!). You'll get the error:
-
- <informalexample>
- <screen>Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory
- </screen>
- </informalexample>
-
- Ignore.</para>
- </step>
-
- <step>
- <para>Exit out by repeatedly pressing
- <keycap>ESCAPE</keycap>.</para>
- </step>
- </procedure>
-
- <para>Your new disk is now ready for use.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Other Disk Operations</title>
-
- <sect2>
- <title>Adding Swap Space</title>
-
- <para>As a system grows, it's need for swap space can also grow.
- Although adding swap space to existing disks is very
- difficult, a new disk can be partitioned with additional swap
- space.</para>
-
- <para>To add swap space when adding a disk to a system:</para>
-
- <procedure>
- <step>
- <para>When partitioning the disk, edit the disklabel and
- allocate the amount of swap space to add in partition `b'
- and the remainder in another partition, such as `a' or
- `e'. The size is given in 512 byte blocks.</para>
- </step>
-
- <step>
- <para>When newfsing the drive, do NOT newfs the `c'
- partition. Instead, newfs the partition where the
- non-swap space lies.</para>
- </step>
-
- <step>
- <para>Add an entry to <filename>/etc/fstab</filename> as
- follows:</para>
-
- <informalexample>
- <programlisting>/dev/wd0b none swap sw 0 0
- </programlisting>
- </informalexample>
-
- <para>Change /dev/wd0b to the device of the newly added
- space.</para>
- </step>
-
- <step>
- <para>To make the new space immediately available, use the
- <command>swapon</command> command.
-
- <informalexample>
- <screen>&prompt.root; <userinput>swapon /dev/sd0b</userinput>
-swapon: added /dev/sd0b as swap space
- </screen>
- </informalexample>
- </para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Copying the Contents of Disks</title>
-<!-- Should have specific tag -->
-
- <para>Submitted By: Renaud Waldura
- (<email>renaud@softway.com</email>) </para>
-
- <para>To move file from your original base disk to the fresh new
- one, do:
-
- <informalexample>
- <screen>&prompt.root; <userinput>mount /dev/wd2 /mnt</userinput>
-&prompt.root; <userinput>pax -r -w -p e /usr/home /mnt</userinput>
-&prompt.root; <userinput>umount /mnt</userinput>
-&prompt.root; <userinput>rm -rf /usr/home/*</userinput>
-&prompt.root; <userinput>mount /dev/wd2 /usr/home</userinput>
- </screen>
- </informalexample>
- </para>
- </sect2>
-
- <sect2>
- <title>Creating Striped Disks using CCD</title>
-
- <para>Commands Submitted By: Stan Brown
- (<email>stanb@awod.com</email>) </para>
-
- <para>The Concatenated Disk Driver, or CCD, allows you to treat
- several identical disks as a single disk. Striping can result
- in increased disk performance by distributing reads and writes
- across the disks. See the &man.ccd.4; and &man.ccdconfig.8;
- man pages or the <ulink
- URL="http://stampede.cs.berkeley.edu/ccd/">CCD
- Homepage</ulink> for further details.</para>
-
- <para>To create a new CCD, execute the following commands. This
- describes how to add three disks together; simply add or
- remove devices as necessary. Remember that the disks to be
- striped must be <emphasis>identical.</emphasis></para>
-
- <para>Before executing these commands, make sure you add the line
-
- <userinput>pseudo-device ccd 4</userinput>
-
- to your kernel.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /dev ; sh MAKDEV ccd0</userinput>
-
-&prompt.root; <userinput>disklabel -r -w sd0 auto</userinput>
-&prompt.root; <userinput>disklabel -r -w sd1 auto</userinput>
-&prompt.root; <userinput>disklabel -r -w sd2 auto</userinput>
-
-&prompt.root; <userinput>disklabel -e sd0c</userinput>
-<lineannotation>change type to 4.2BSD</lineannotation>
-&prompt.root; <userinput>disklabel -e sd1c</userinput>
-<lineannotation>change type to 4.2BSD</lineannotation>
-&prompt.root; <userinput>disklabel -e sd2c</userinput>
-<lineannotation>change type to 4.2BSD</lineannotation>
-
-&prompt.root; <userinput>ccdconfig ccd0 32 0 /dev/sd0c /dev/sd1c /dev/sd2c</userinput>
-
-&prompt.root; <userinput>newfs /dev/rccd0c</userinput>
- </screen>
- </informalexample>
-
- <para>Now you can mount and use your CCD by referencing device
- /dev/ccd0c.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Credits</title>
-
- <para>The author would like to thank the following individuals for
- their contributions to this project:</para>
-
- <itemizedlist>
- <listitem>
- <para>Darryl Okahata
- (<email>darrylo@hpnmhjw.sr.hp.com</email>) for his simple
- dedicated mode setup documentation which I have used
- repeatedly on freebsd-questions.</para>
- </listitem>
-
- <listitem>
- <para>Jordan Hubbard (<email>jkh@FreeBSD.org</email>) for
- making sysinstall useful for this type of task.</para>
- </listitem>
-
- <listitem>
- <para>John Fieber (<email>jfieber@indiana.edu</email>) for
- making information and examples of the DocBook DTD on which
- this document is based.</para>
- </listitem>
-
- <listitem>
- <para>Greg Lehey (<email>grog@FreeBSD.org</email>) for
- checking my work and pointing out inaccuracies, as well as
- miscellaneous support.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/freebsd-questions/Makefile b/en_US.ISO8859-1/articles/freebsd-questions/Makefile
deleted file mode 100644
index 16296d21ff..0000000000
--- a/en_US.ISO8859-1/articles/freebsd-questions/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# $FreeBSD: doc/en_US.ISO_8859-1/articles/committers-guide/Makefile,v 1.3 1999/09/06 06:52:35 peter Exp $
-#
-
-MAINTAINER=grog@FreeBSD.org
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/freebsd-questions/article.sgml b/en_US.ISO8859-1/articles/freebsd-questions/article.sgml
deleted file mode 100644
index a3bf0ff5ea..0000000000
--- a/en_US.ISO8859-1/articles/freebsd-questions/article.sgml
+++ /dev/null
@@ -1,563 +0,0 @@
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<article>
- <artheader>
- <title>How to get best results from the FreeBSD-questions mailing
- list</title>
-
- <author>
- <firstname>Greg</firstname>
- <surname>Lehey</surname>
-
- <affiliation>
- <address><email>grog@FreeBSD.org</email></address>
- </affiliation>
- </author>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <abstract>
- <para>This document provides useful information for people looking to
- prepare an e-mail to the FreeBSD-questions mailing list. Advice and
- hints are given that will maximise the chance that the reader will
- receive useful replies.</para>
-
- <para>This document is regularly posted to the FreeBSD-questions mailing
- list.</para>
- </abstract>
- </artheader>
-
- <sect1>
- <title id="Introduction">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
- use of FreeBSD. Another group, <literal>FreeBSD-hackers</literal>,
- discusses more advanced questions such as future development
- work.</para>
-
- <note>
- <para>The term <quote>hacker</quote> has nothing to do with breaking
- into other people's computers. The correct term for the latter
- activity is <quote>cracker</quote>, but the popular press hasn't found
- out yet. The FreeBSD hackers disapprove strongly of cracking
- security, and have nothing to do with it. For a longer description of
- hackers, see Eric Raymond's <ulink
- url="http://www.tuxedo.org/~esr/faqs/hacker-howto.html">How To Become A Hacker</ulink></para>
- </note>
-
- <para>This is a regular posting aimed to help both those seeking advice
- from FreeBSD-questions (the <quote>newcomers</quote>), and also those
- who answer the questions (the <quote>hackers</quote>).</para>
-
- <para>Inevitably there is some friction, which stems from the different
- viewpoints of the two groups. The newcomers accuse the hackers of being
- arrogant, stuck-up, and unhelpful, while the hackers accuse the
- newcomers of being stupid, unable to read plain English, and expecting
- everything to be handed to them on a silver platter. Of course, there's
- an element of truth in both these claims, but for the most part these
- viewpoints come from a sense of frustration.</para>
-
- <para>In this document, I'd like to do something to relieve this
- frustration and help everybody get better results from
- FreeBSD-questions. In the following section, I recommend how to submit
- a question; after that, we'll look at how to answer one.</para>
- </sect1>
-
- <sect1>
- <title id="subscribe">How to subscribe to FreeBSD-questions</title>
-
- <para>FreeBSD-questions is a mailing list, so you need mail access. Send
- a mail message to <email>majordomo@FreeBSD.org</email> with the single
- line:</para>
-
- <literallayout class="monospaced">subscribe FreeBSD-questions</literallayout>
-
- <para><application>majordomo</application> is an automatic program which
- maintains the mailing list, so you don't need a subject line. If your
- mailer complains, however, you can put anything you like in the subject
- line.</para>
-
- <para>When you get the reply from <application>majordomo</application>
- telling you the details of the list, <emphasis>please save
- it</emphasis>. If you ever should want to leave the list, you'll need
- the information there. See the next section for more details.</para>
- </sect1>
-
- <sect1>
- <title id="unsubscribe">How to unsubscribe from FreeBSD-questions</title>
-
- <para>When you subscribed to FreeBSD-questions, you got a welcome message
- from <email>Majordomo@FreeBSD.ORG</email>. In this message, amongst
- other things, it told you how to unsubscribe. Here's a typical
- message:</para>
-
- <literallayout class="monospaced">Welcome to the freebsd-questions mailing list!
-
-If you ever want to remove yourself from this mailing list, you can send
-mail to "Majordomo@FreeBSD.ORG" with the following command in the body
-of your email message:
-
-unsubscribe freebsd-questions Greg Lehey &lt;grog@lemis.de&gt;
-
-Here's the general information for the list you've subscribed to,
-in case you don't already have it:
-
-FREEBSD-QUESTIONS User questions
-This is the mailing list for questions about FreeBSD.
-You should not send "how to" questions to the technical lists unless
-you consider the question to be pretty technical.</literallayout>
-
- <para>Normally, unsubscribing is even simpler than the message suggests:
- you don't need to specify your mail ID unless it is different from the
- one which you specified when you subscribed.</para>
-
- <para>If Majordomo replies and tells you (incorrectly) that you're not on
- the list, this may mean one of two things:</para>
-
- <orderedlist>
- <listitem>
- <para>You have changed your mail ID since you subscribed. That's
- where keeping the original message from <literal>majordomo</literal>
- comes in handy. For example, the sample message above shows my mail
- ID as <literal>grog@lemis.de</literal>. Since then, I have changed
- it to <literal>grog@lemis.com</literal>. If I were to try to remove
- <literal>grog@lemis.com</literal> from the list, it would fail: I
- would have to specify the name with which I joined.</para>
- </listitem>
-
- <listitem>
- <para>You're subscribed to a mailing list which is subscribed to
- <literal>FreeBSD-questions</literal>. If that's the case, you'll
- have to figure out which one it is and get your name taken off that
- one. If you're not sure which one it might be, check the headers of
- the messages you receive from freebsd-questions: maybe there's a
- clue there.</para>
- </listitem>
- </orderedlist>
-
- <para>If you've done all this, and you still can't figure out what's going
- on, send a message to <email>Postmaster@FreeBSD.org</email>, and he will
- sort things out for you. <emphasis>Don't</emphasis> send a message to
- FreeBSD-questions: they can't help you.</para>
- </sect1>
-
- <sect1>
- <title id="askwho">Should I ask <literal>-questions</literal> or
- <literal>-hackers</literal>?</title>
-
- <para>Two mailing lists handle general questions about FreeBSD,
- <literal>FreeBSD-questions</literal> and
- <literal>FreeBSD-hackers</literal>. In some cases, it's not really
- clear which group you should ask. The following criteria should help
- for 99% of all questions, however:</para>
-
- <orderedlist>
- <listitem>
- <para>If the question is of a general nature, ask
- <literal>FreeBSD-questions</literal>. Examples might be questions
- about intstalling FreeBSD or the use of a particular UNIX
- utility.</para>
- </listitem>
-
- <listitem>
- <para>If you think the question relates to a bug, but you're not sure,
- or you don't know how to look for it, send the message to
- <literal>FreeBSD-questions</literal>.</para>
- </listitem>
-
- <listitem>
- <para>If the question relates to a bug, and you're
- <emphasis>sure</emphasis> that it's a bug (for example, you can
- pinpoint the place in the code where it happens, and you maybe have
- a fix), then send the message to
- <literal>FreeBSD-hackers</literal>.</para>
- </listitem>
-
- <listitem>
- <para>If the question relates to enhancements to FreeBSD, and you
- can make suggestions about how to implement them, then send the
- message to <literal>FreeBSD-hackers</literal>.</para>
- </listitem>
- </orderedlist>
-
- <para>There are also a number of other specialized mailing lists, for
- example <literal>FreeBSD-isp</literal>, which caters to the interests of
- ISPs (Internet Service Providers) who run FreeBSD. If you happen to be
- an ISP, this doesn't mean you should automatically send your questions
- to <literal>FreeBSD-isp</literal>. The criteria above still apply, and
- it's in your interest to stick to them, since you're more likely to get
- good results that way.</para>
- </sect1>
-
- <sect1>
- <title id="submit">How to submit a question</title>
-
- <para>When submitting a question to FreeBSD-questions, consider the
- following points:</para>
-
- <itemizedlist>
- <listitem>
- <para> Remember that nobody gets paid for answering a FreeBSD
- question. They do it of their own free will. You can influence this
- free will positively by submitting a well-formulated question
- supplying as much relevant information as possible. You can
- influence this free will negatively by submitting an incomplete,
- illegible, or rude question. It's perfectly possible to send a
- message to FreeBSD-questions and not get an answer even if you
- follow these rules. It's much more possible to not get an answer if
- you don't. In the rest of this document, we'll look at how to get
- the most out of your question to FreeBSD-questions.</para>
- </listitem>
-
- <listitem>
- <para>Not everybody who answers FreeBSD questions reads every message:
- they look at the subject line and decide whether it interests them.
- Clearly, it's in your interest to specify a subject. ``FreeBSD
- problem'' or ``Help'' aren't enough. If you provide no subject at
- all, many people won't bother reading it. If your subject isn't
- specific enough, the people who can answer it may not read
- it.</para>
- </listitem>
-
- <listitem>
- <para>Format your message so that it is legible, and
- PLEASE DON'T SHOUT!!!!!. We appreciate that a lot of people don't
- speak English as their first language, and we try to make
- allowances for that, but it's really painful to try to read a
- message written full of typos or without any line breaks.</para>
-
- <para>Don't underestimate the effect that a poorly formatted mail
- message has, not just on the FreeBSD-questions mailing list.
- Your mail message is all people see of you, and if it's poorly
- formatted, one line per paragraph, badly spelt, or full of
- errors, it will give people a poor impression of you.</para>
-
- <para>A lot of badly formatted messages come from
- <ulink url="http://www.lemis.com/email.html">bad mailers or badly
- configured mailers</ulink>. The following mailers are known to
- send out badly formatted messages without you finding out about
- them:</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>As you can see, the mailers in the Microsoft world are frequent
- offenders. If at all possible, use a UNIX mailer. If you must use a
- mailer under Microsoft environments, make sure it is set up
- correctly. Try not to use <acronym>MIME</acronym>: a lot of people
- use mailers which don't get on very well with
- <acronym>MIME</acronym>.</para>
- </listitem>
-
- <listitem>
- <para>Make sure your time and time zone are set correctly. This may
- seem a little silly, since your message still gets there, but many
- of the people you are trying to reach get several hundred messages a
- day. They frequently sort the incoming messages by subject and by
- date, and if your message doesn't come before the first answer, they
- may assume they missed it and not bother to look.</para>
- </listitem>
-
- <listitem>
- <para>Don't include unrelated questions in the same message. Firstly,
- a long message tends to scare people off, and secondly, it's more
- difficult to get all the people who can answer all the questions to
- read the message.</para>
- </listitem>
-
- <listitem>
- <para>Specify as much information as possible. This is a difficult
- area, and we need to expand on what information you need to submit,
- but here's a start:</para>
-
- <itemizedlist>
- <listitem>
- <para>In nearly every case, it's important to know the version of
- FreeBSD you're running. This is particularly the case for
- FreeBSD-CURRENT, where you should also specify the date of the
- sources, though of course you shouldn't be sending questions
- about -CURRENT to FreeBSD-questions.</para>
- </listitem>
-
- <listitem><para>With any problem which <emphasis>could</emphasis> be
- hardware related, tell us about your hardware. In case of
- doubt, assume it's possible that it's hardware. What kind of
- CPU are you using? How fast? What motherboard? How much
- memory? What peripherals?</para>
-
- <para>There's a judgement call here, of course, but the output of
- the &man.dmesg.8; command can frequently be very useful, since it
- tells not just what hardware you're running, but what version of
- FreeBSD as well.</para>
- </listitem>
-
- <listitem>
- <para>If you get error messages, don't say <quote>I get error
- messages</quote>, say (for example) <quote>I get the error
- message 'No route to host'</quote>.</para>
- </listitem>
-
- <listitem>
- <para>If your system panics, don't say <quote>My system
- panicked</quote>, say (for example) <quote>my system panicked
- with the message 'free vnode isn't'</quote>.</para>
- </listitem>
-
- <listitem>
- <para>If you have difficulty installing FreeBSD, please tell us
- what hardware you have. In particular, it's important to know
- the IRQs and I/O addresses of the boards installed in your
- machine.</para>
- </listitem>
-
- <listitem>
- <para>If you have difficulty getting PPP to run, describe the
- configuration. Which version of PPP do you use? What kind of
- authentication do you have? Do you have a static or dynamic IP
- address? What kind of messages do you get in the log
- file?</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>A lot of the information you need to supply is the output of
- programs, such as &man.dmesg.8;, or console messages, which usually
- appear in <filename>/var/log/messages</filename>. Don't try to copy
- this information by typing it in again; it's a real pain, and you're
- bound to make a mistake. To send log file contents, either make a
- copy of the file and use an editor to trim the information to what
- is relevant, or cut and paste into your message. For the output of
- programs like &man.dmesg.8;, redirect the output to a file and
- include that. For example,</para>
-
- <screen>&prompt.user; <userinput>dmesg &gt; /tmp/dmesg.out</userinput></screen>
-
- <para>This redirects the information to the file
- <filename>/tmp/dmesg.out</filename>.</para>
- </listitem>
-
- <listitem>
- <para>If you do all this, and you still don't get an answer, there
- could be other reasons. For example, the problem is so complicated
- that nobody knows the answer, or the person who does know the answer
- was offline. If you don't get an answer after, say, a week, it
- might help to re-send the message. If you don't get an answer to
- your second message, though, you're probably not going to get one
- from this forum. Resending the same message again and again will
- only make you unpopular.</para>
- </listitem>
- </itemizedlist>
-
- <para>To summarize, let's assume you know the answer to the following
- question (yes, it's the same one in each case <literal>:-)</literal>.
- You choose which of these two questions you would be more prepared to
- answer:</para>
-
- <example>
- <title>Message 1</title>
-
- <literallayout class="monospaced">Subject: HELP!!?!??
-I just can't get hits damn silly FereBSD system to
-workd, and Im really good at this tsuff, but I have never seen
-anythign sho difficult to install, it jst wont work whatever I try
-so why don't y9ou guys tell me what I doing wrong.</literallayout>
- </example>
-
- <example>
- <title>Message 2</title>
-
- <literallayout class="monospaced">Subject: Problems installing FreeBSD
-
-I've just got the FreeBSD 2.1.5 CD-ROM from Walnut Creek, and I'm having a lot
-of difficulty installing it. I have a 66 MHz 486 with 16 MB of
-memory and an Adaptec 1540A SCSI board, a 1.2GB Quantum Fireball
-disk and a Toshiba 3501XA CD-ROM drive. The installation works just
-fine, but when I try to reboot the system, I get the message
-``Missing Operating System''.</literallayout>
- </example>
- </sect1>
-
- <sect1>
- <title id="followup">How to follow up to a question</title>
-
- <para>Often you will want to send in additional information to a question
- you have already sent. The best way to do this is to reply to your
- original message. This has three advantages:</para>
-
- <orderedlist>
- <listitem>
- <para>You include the original message text, so people will know what
- you're talking about. Don't forget to trim unnecessary text out,
- though.</para>
- </listitem>
-
- <listitem>
- <para>The text in the subject line stays the same (you did remember to
- put one in, didn't you?). Many mailers will sort messages by
- subject. This helps group messages together.</para>
- </listitem>
-
- <listitem>
- <para>The message reference numbers in the header will refer to the
- previous message. Some mailers, such as
- <ulink url="http://www.mutt.org/">mutt</ulink>, can
- <emphasis>thread</emphasis> messages, showing the exact
- relationships between the messages.</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1>
- <title id="answer">How to answer a question</title>
-
-
- <para>Before you answer a question to FreeBSD-questions, consider:</para>
-
- <orderedlist>
- <listitem>
- <para>A lot of the points on submitting questions also apply to
- answering questions. Read them.</para>
- </listitem>
-
- <listitem>
- <para>Has somebody already answered the question? The easiest way to
- check this is to sort your incoming mail by subject: then
- (hopefully) you'll see the question followed by any answers, all
- together.</para>
-
- <para>If somebody has already answered it, it doesn't automatically
- mean that you shouldn't send another answer. But it makes sense to
- read all the other answers first.</para>
- </listitem>
-
- <listitem>
- <para>Do you have something to contribute beyond what has already been
- said? In general, <quote>Yeah, me too</quote> answers don't help
- much, although there are exceptions, like when somebody is
- describing a problem he's having, and he doesn't know whether it's
- his fault or whether there's something wrong with the hardware or
- software. If you do send a <quote>me too</quote> answer, you should
- also include any further relevant information.</para>
- </listitem>
-
- <listitem>
- <para>Are you sure you understand the question? Very frequently, the
- person who asks the question is confused or doesn't express himself
- very well. Even with the best understanding of the system, it's
- easy to send a reply which doesn't answer the question. This
- doesn't help: you'll leave the person who submitted the question
- more frustrated or confused than ever. If nobody else answers, and
- you're not too sure either, you can always ask for more
- information.</para>
- </listitem>
-
- <listitem>
- <para>Are you sure your answer is correct?
- If not, wait a day or so. If nobody else comes up with a
- better answer, you can still reply and say, for example, <quote>I
- don't know if this is correct, but since nobody else has
- replied, why don't you try replacing your ATAPI CD-ROM with
- a frog?</quote>.</para>
- </listitem>
-
- <listitem>
- <para>Unless there's a good reason to do otherwise, reply to the
- sender and to FreeBSD-questions. Many people on the
- FreeBSD-questions are <quote>lurkers</quote>: they learn by reading
- messages sent and replied to by others. If you take a message which
- is of general interest off the list, you're depriving these people
- of their information. Be careful with group replies; lots of people
- send messages with hundreds of CCs. If this is the case, be sure to
- trim the Cc: lines appropriately.</para>
- </listitem>
-
- <listitem>
- <para>Include relevant text from the original message. Trim it to the
- minimum, but don't overdo it. It should still be possible for
- somebody who didn't read the original message to understand what
- you're talking about.</para>
- </listitem>
-
- <listitem>
- <para>Use some technique to identify which text came from the original
- message, and which text you add. I personally find that prepending
- <quote><literal>&gt; </literal></quote> to the original message
- works best. Leaving white space after the
- <quote><literal>&gt; </literal></quote> and leave empty lines
- between your text and the original text both make the result more
- readable.</para>
- </listitem>
-
- <listitem>
- <para>Put your response in the correct place (after the text to which
- it replies). It's very difficult to read a thread of responses
- where each reply comes before the text to which it replies.</para>
- </listitem>
-
- <listitem>
- <para>Most mailers change the subject line on a reply by prepending a
- text such as <quote>Re: </quote>. If your mailer doesn't do it
- automatically, you should do it manually.</para>
- </listitem>
-
- <listitem>
- <para>If the submitter didn't abide by format conventions (lines too
- long, inappropriate subject line), <emphasis>please</emphasis> fix
- it. In the case of an incorrect subject line (such as
- <quote>HELP!!??</quote>), change the subject line to (say)
- <quote>Re: Difficulties with sync PPP (was: HELP!!??)</quote>. That
- way other people trying to follow the thread will have less
- difficulty following it.</para>
-
- <para>In such cases, it's appropriate to say what you did and why you
- did it, but try not to be rude. If you find you can't answer
- without being rude, don't answer.</para>
-
- <para>If you just want to reply to a message because of its bad
- format, just reply to the submitter, not to the list. You can just
- send him this message in reply, if you like.</para>
- </listitem>
- </orderedlist>
- </sect1>
-</article>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/en_US.ISO8859-1/articles/ipsec-must/Makefile b/en_US.ISO8859-1/articles/ipsec-must/Makefile
deleted file mode 100644
index 0647dfada3..0000000000
--- a/en_US.ISO8859-1/articles/ipsec-must/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-DOCFORMAT= html
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/ipsec-must/article.sgml b/en_US.ISO8859-1/articles/ipsec-must/article.sgml
deleted file mode 100644
index 34edb9c5c5..0000000000
--- a/en_US.ISO8859-1/articles/ipsec-must/article.sgml
+++ /dev/null
@@ -1,297 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
- <head>
- <title>Independent Verification of IPSec Functionality in FreeBSD</title>
- </head>
-
- <body text="#000000" bgcolor="#FFFFFF">
-
- <h1>Independent Verification of IPsec Functionality Under FreeBSD 3.0</h1>
-
- <p align="center"><i>You installed IPsec and it seems to be working.&nbsp;
- How do you know? I describe a method for experimentally verifying
- that IPsec is working</i></p>
-
- <h2>The Problem</h2>
-
- <p>First, let's assume you have <a href="#Installing IPsec">installed
- <i>IPsec</i></a>. How do you know its <a href="#Caveat">working</a>?
- Sure, your connection won't work if its misconfigured, and it will work
- when you finally get it right. <i>Netstat</i> will list it. But can you
- independently confirm it?</p>
-
- <h2>The Solution</h2>
-
- <p>First, some crypto-relevent info theory:</p>
-
- <ol>
- <li>
- <p>Encrypted data is uniformly distributed, ie, has maximal entropy
- per symbol.</p>
- </li>
-
- <li>
- <p>Raw, uncompressed data is typically redundant, i.e., has
- sub-maximal entropy.</p>
- </li>
- </ol>
-
- <p>Suppose you could measure the entropy of the data to- and from- your
- network interface. Then you could see the difference between unencrypted
- data and encrypted data. This would be true even if some of the data
- in "encrypted mode" was not encrypted ---as the outermost IP header must
- be, if the packet is to be routable.</p>
-
- <h4><a name="MUST"></a>MUST</h4>
-
- <p>Ueli Maurer's "Universal Statistical Test for Random Bit Generators"
- ("MUST") quickly measures the entropy of a sample. It uses a
- compression-like algorithm. <a href="#Maurer's Universal Statistical
- Test">The code is given below for a variant which measures successive
- (~quarter megabyte) chunks of a file</a>.</p>
-
- <h4><a NAME="Tcpdump"></a>Tcpdump</h4>
-
- <p>We also need a way to capture the raw network data. A program called
- "<i>tcpdump</i>" lets you do this, if you have enabled the <i>Berkeley
- Packet Filter</i> interface in your <a
- href="#KERNELNAME">kernel's config file</a>.</p>
-
- <p>The command</p>
-
- <blockquote><b>tcpdump</b> <b>-c</b> 4000 <b>-s</b> 10000 <b>-w</b>
- <i>dumpfile.bin</i></blockquote>
-
- <p>will capture 4000 raw packets to <i>dumpfile.bin</i>. Up to 10,000
- bytes per packet will be captured in this example.</p>
-
- <h2>The Experiment</h2>
-
- <p>Here's the experiment. Open a window to an IPsec host and another
- window to an insecure host.</p>
-
- <p>Now start <a href="#Tcpdump">capturing packets</a>.</p>
-
- <p>In the "secure" window, run the unix command "yes", which will stream
- the "y" character. After a while, stop this. Switch to the insecure
- window, and repeat. After a while, stop.</p>
-
- <p>Now run <a href="#Maurer's Universal Statistical Test">MUST</a> on the
- captured packets. You should see something like the the following.
- The important thing to note is that the secure connection has 93% (6.7)
- of the expected value (7.18), and the "normal" connection has 29% (2.1)
- of the expected value.</p>
-
-
- <pre>% tcpdump -c 4000 -s 10000 -w ipsecdemo.bin
-% uliscan ipsecdemo.bin
-
-Uliscan 21 Dec 98
-L=8 256 258560
-Measuring file ipsecdemo.bin
-Init done
-Expected value for L=8 is 7.1836656
-6.9396 --------------------------------------------------------
-6.6177 -----------------------------------------------------
-6.4100 ---------------------------------------------------
-2.1101 -----------------
-2.0838 -----------------
-2.0983 -----------------</pre>
-
- <h2><a NAME="Caveat"></a>Caveat</h2>
-
- <p>This experiment shows that IPsec <i>does</i> seem to be distributing the
- payload data <i>uniformly</i>, as encryption should. However, the
- experiment described here <i>can not </i>detect many possible flaws in a
- system (none of which do I have any evidence for). These include poor
- key generation or exchange, data or keys being visible to others, use of
- weak algorithms, kernel subversion, etc. Study the source; know the
- code.</p>
-
- <h2><a NAME="IPsec"></a>IPsec -Definition</h2>
-
- <p>Internet Protocol security extensions to IP v 4; required for IP v6. A
- protocol for negotiating encryption and authentication at the IP
- (host-to-host) level. SSL secures only one application socket; SSH
- secures only a login; PGP secures only a specified file or
- message. IPsec encrypts everything between two hosts.</p>
-
- <h2><a NAME="Installing IPsec"></a>Installing IPsec</h2>
-
- <p>Starting from the BSD 3.0 stable release,</p>
-
- <ol>
- <li>
- <p>install IPsec v0.04, rebuild, reinstall</p>
- </li>
-
- <li>
- <p>run the administration tools (e.g, <i>ipsecadm</i>) and distribute
- keys (or use <i>Photuris</i> for key exchange)</p>
- </li>
-
- <li>
- <p>set the routes (<i>rt</i>) up appropriately</p>
- </li>
- </ol>
-
- <p>You may want to make an "ipsec_setup" script containing the
- <i>ipsecadm</i> and <i>rt</i> commands which establish your IPsec
- tunnel. You can run this script automatically at boottime from your
- <i>/etc/rc.local</i> The ipsec_setup script will have to contain at
- least two <i>ipsecadm</i> commands and one <i>rt</i> command to be
- useful.</p>
-
- <h2><a NAME="KERNELNAME"></a>usr/src/sys/i386/conf/KERNELNAME</h2>
-
- <p>This needs to be present in the kernel config file in order to run
- IPsec. After adding it, run <i>config</i>, etc. and rebuild and
- reinstall.</p>
-
- <pre># The `bpfilter' pseudo-device enables the Berkeley Packet Filter. Be
-# aware of the legal and administrative consequences of enabling this
-# option. Heh heh. The number of devices determines the maximum number of
-# simultaneous BPF clients programs runnable.
-pseudo-device bpfilter 2 #Berkeley packet filter
-
-# IPSEC
-options IPSEC
-options "MD5"
-pseudo-device enc 1</pre>
-
- <h2><a name="Maurer's Universal Statistical Test"></a>Maurer's Universal Statistical Test (for block
- size=8 bits)</h2>
-
- <pre><![ CDATA [/*
- ULISCAN.c ---blocksize of 8
-
- 1 Oct 98
- 1 Dec 98
- 21 Dec 98 uliscan.c derived from ueli8.c
-
- This version has // comments removed for Sun cc
-
- This implements Ueli M Maurer's "Universal Statistical Test for Random
- Bit Generators" using L=8
-
- Accepts a filename on the command line; writes its results, with other
- info, to stdout.
-
- Handles input file exhaustion gracefully.
-
- Ref: J. Cryptology v 5 no 2, 1992 pp 89-105
- also on the web somewhere, which is where I found it.
-
- -David Honig
- honig@sprynet.com
-
- Usage:
- ULISCAN filename
- outputs to stdout
-*/
-
-#define L 8
-#define V (1<<L)
-#define Q (10*V)
-#define K (100 *Q)
-#define MAXSAMP (Q + K)
-
-#include <stdio.h>
-#include <math.h>
-
-int main(argc, argv)
-int argc;
-char **argv;
-{
- FILE *fptr;
- int i,j;
- int b, c;
- int table[V];
- double sum = 0.0;
- int iproduct = 1;
- int run;
-
- extern double log(/* double x */);
-
- printf("Uliscan 21 Dec 98 \nL=%d %d %d \n", L, V, MAXSAMP);
-
- if (argc < 2) {
- printf("Usage: Uliscan filename\n");
- exit(-1);
- } else {
- printf("Measuring file %s\n", argv[1]);
- }
-
- fptr = fopen(argv[1],"rb");
-
- if (fptr == NULL) {
- printf("Can't find %s\n", argv[1]);
- exit(-1);
- }
-
- for (i = 0; i < V; i++) {
- table[i] = 0;
- }
-
- for (i = 0; i < Q; i++) {
- b = fgetc(fptr);
- table[b] = i;
- }
-
- printf("Init done\n");
-
- printf("Expected value for L=8 is 7.1836656\n");
-
- run = 1;
-
- while (run) {
- sum = 0.0;
- iproduct = 1;
-
- if (run)
- for (i = Q; run && i < Q + K; i++) {
- j = i;
- b = fgetc(fptr);
-
- if (b < 0)
- run = 0;
-
- if (run) {
- if (table[b] > j)
- j += K;
-
- sum += log((double)(j-table[b]));
-
- table[b] = i;
- }
- }
-
- if (!run)
- printf("Premature end of file; read %d blocks.\n", i - Q);
-
- sum = (sum/((double)(i - Q))) / log(2.0);
- printf("%4.4f ", sum);
-
- for (i = 0; i < (int)(sum*8.0 + 0.50); i++)
- printf("-");
-
- printf("\n");
-
- /* refill initial table */
- if (0) {
- for (i = 0; i < Q; i++) {
- b = fgetc(fptr);
- if (b < 0) {
- run = 0;
- } else {
- table[b] = i;
- }
- }
- }
- }
-}]]></pre>
- </body>
-</html>
-
-
diff --git a/en_US.ISO8859-1/articles/mh/Makefile b/en_US.ISO8859-1/articles/mh/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/mh/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/mh/article.sgml b/en_US.ISO8859-1/articles/mh/article.sgml
deleted file mode 100644
index 27ff6c8651..0000000000
--- a/en_US.ISO8859-1/articles/mh/article.sgml
+++ /dev/null
@@ -1,782 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/mh/article.sgml,v 1.8 2000/07/26 18:24:49 jim Exp $ -->
-<!-- FreeBSD Documentation Project -->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
-<article>
- <articleinfo>
- <title>An MH Primer</title>
-
- <authorgroup>
- <author>
- <firstname>Matt</firstname>
-
- <surname>Midboe</surname>
-
- <affiliation>
- <address>
- <email>matt@garply.com</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>v1.0, 16 January 1996</pubdate>
-
- <abstract>
- <para>This document contains an introduction to using MH on
- FreeBSD</para>
- </abstract>
- </articleinfo>
-
- <sect1 id="mhintro">
- <title>Introduction</title>
-
- <para>MH started back in 1977 at the RAND Corporation, where the
- initial philosophies behind MH were developed. MH isn't so much
- a monolithic email program but a philosophy about how best to
- develop tools for reading email. The MH developers have done a
- great job adhering to the <acronym>KISS</acronym> principle: Keep It
- Simple Stupid. Rather than have one large program for reading,
- sending and handling email they have written specialized
- programs for each part of your email life. One might liken MH to
- the specialization that one finds in insects and nature. Each
- tool in MH does one thing, and does it very well.</para>
-
- <para>Beyond just the various tools that one uses to handle their
- email MH has done an excellent job keeping the configuration of
- each of these tools consistent and uniform. In fact, if you are
- not quite sure how something is supposed to work or what the
- arguments for some command are supposed to be then you can
- generally guess and be right. Each MH command is consistent
- about how it handles reading the configuration files and how it
- takes arguments on the command line. One useful thing to
- remember is that you can always add a <option>-help</option> to
- the command to have it display the options for that
- command.</para>
-
- <para>The first thing that you need to do is to make sure that you
- have installed the MH package on your FreeBSD machine. If you
- installed from CDROM you should be able to execute the following
- to load mh:
-
- <informalexample>
- <screen>&prompt.root; <userinput>pkg_add /cdrom/packages/mh-6.8.3.tgz</>
- </screen>
- </informalexample>
-
- You will notice that it created a <filename>/usr/local/lib/mh</filename>
- directory for you as well as adding several binaries to the
- <filename>/usr/local/bin</filename> directory. If you would prefer to
- compile it yourself then you can anonymous ftp it from <ulink
- URL="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</ulink> or <ulink
- URL="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para>
-
- <para>This primer is not a full comprehensive explanation of how
- MH works. This is just intended to get you started on the road
- to happier, faster mail reading. You should read the man pages
- for the various commands. Also you might want to read the <ulink
- URL="news:comp.mail.mh">comp.mail.mh</ulink> newsgroup. Also
- you can read the <ulink
- URL="http://www.cis.ohio-state.edu/hypertext/faq/usenet/mh-faq/part1/faq.html">FAQ
- for MH</ulink>. The best resource for MH is the O'Reilly and
- Associates book written by Jerry Peek.</para>
- </sect1>
-
- <sect1>
- <title>Reading Mail</title>
-
- <para>This section covers how to use <command>inc</command>,
- <command>show</command>, <command>scan</command>, <command>next</command>,
- <command>prev</command>, <command>rmm</command>, <command>rmf</command>, and
- <command>msgchk</command>. One of the best things about MH is the
- consistent interface between programs. A few things to keep in
- mind when using these commands is how to specify message lists.
- In the case of <command>inc</command> this doesn't really make any
- sense but with commands like <command>show</command> it is useful to
- know. </para>
-
- <para>A message list can consist of something like <parameter>23
- 20 16</parameter> which will act on messages 23, 20 and 16. This is
- fairly simple but you can do more useful things like
- <parameter>23-30</parameter> which will act on all the messages between
- 23 and 30. You can also specify something like
- <parameter>cur:10</parameter> which will act on the current message and
- the next 9 messages. The <parameter>cur</parameter>, <parameter>last</parameter>,
- and <parameter>first</parameter> messages are special messages that refer
- to the current, last or first message in the folder.</para>
-
- <sect2 id="inc">
- <title><command>inc</command>, <command>msgchk</command>&mdash;read in your
- new email or check it</title>
-
- <para>If you just type in <userinput>inc</userinput> and hit
- <keycap>return</keycap> you will be well on your way to getting
- started with MH. The first time you run <command>inc</command> it
- will setup your account to use all the MH defaults and ask you
- about creating a Mail directory. If you have mail waiting to
- be downloaded you will see something that looks like:</para>
-
- <informalexample>
- <screen> 29 01/15 Doug White Re: Another Failed to boot problem&lt;&lt;On Mon, 15 J
- 30 01/16 "Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
- 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
- 32 01/16 "Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
- 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa
- </screen>
- </informalexample>
-
- <para>This is the same thing you will see from a
- <command>scan</command> (see <xref linkend="scan">). If you just run
- <command>inc</command> with no arguments it will look on your
- computer for email that is supposed to be coming to
- you.</para>
-
- <para>A lot of people like to use POP for grabbing their email.
- MH can do POP to grab your email. You will need to give
- <command>inc</command> a few command line arguments.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>inc -host mail.pop.org -user <replaceable>username</> -norpop</>
- </screen>
- </informalexample>
-
- <para>That tells <command>inc</command> to go to
- <parameter>mail.pop.org</parameter> to download your email, and that
- your username on their system is <replaceable>username</replaceable>. The
- <option>-norpop</option> option tells <command>inc</command> to use
- plain POP3 for downloading your email. MH has support for a
- few different dialects of POP. More than likely you will never
- ever need to use them though. While you can do more complex
- things with inc such as audit files and scan format files this
- will get you going.</para>
-
- <para>The <command>msgchk</command> command is used to get information
- on whether or not you have new email. <command>msgchk</command> takes
- the same <option>-host</option> and <option>-user</option>
- options that <command>inc</command> takes.</para>
- </sect2>
-
- <sect2 id="show">
- <title><command>show</command>, <command>next</command> and
- <command>prev</command>&mdash;displaying and moving through
- email</title>
-
- <para><command>show</command> is to show a letter in your current
- folder. Like <command>inc</command>, <command>show</command> is a fairly
- straightforward command. If you just type <userinput>show</userinput>
- and hit <keycap>return</keycap> then it displays the current
- message. You can also give specific message numbers to
- show:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>show 32 45 56</>
- </screen>
- </informalexample>
-
- <para>This would display message numbers 32, 45 and 56 right
- after each other. Unless you change the default behavior
- <command>show</command> basically just does a <command>more</command> on the
- email message.</para>
-
- <para><command>next</command> is used to move onto the next message and
- <command>prev</command> will go to the previous message. Both
- commands have an implied <command>show</command> command so that when
- you go to the next message it automatically displays
- it.</para>
- </sect2>
-
- <sect2 id="scan">
- <title><command>scan</command>&mdash;shows you a scan of your
- messages</title>
-
- <para><command>scan</command> will display a brief listing of the
- messages in your current folder. This is an example of what
- the <command>scan</command> command will give you.</para>
-
- <informalexample>
- <screen> 30+ 01/16 "Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
- 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
- 32 01/16 "Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
- 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa
- </screen>
- </informalexample>
-
- <para>Like just about everything in MH this display is very
- configurable. This is the typical default display. It gives
- you the message number, the date on the email, the sender, the
- subject line, and a sentence fragment from the very beginning
- of the email if it can fit it. The <literal>+</literal> means that
- message is the current message, so if you do a
- <command>show</command> it will display that message.</para>
-
- <para>One useful option for scan is the
- <option>-reverse</option> option. This will list your messages
- with the highest message number first and lowest message
- number last. Another useful option with <command>scan</command> is to
- have it read from a file. If you want to scan your incoming
- mailbox on FreeBSD without having to <command>inc</command> it you
- can do <command>scan -file
- /var/mail/<replaceable>username</replaceable></command>. This can be used
- with any file that is in the <database>mbox</database> format.</para>
- </sect2>
-
- <sect2 id="rmm">
- <title><command>rmm</command> and <command>rmf</command>&mdash;remove the
- current message or folder</title>
-
- <para><command>rmm</command> is used to remove a mail message. The
- default is typically to not actually remove the message but to
- rename the file to one that is ignored by the MH commands. You
- will need to through periodically and physically delete the
- <quote>removed</quote> messages.</para>
-
- <para>The <command>rmf</command> command is used to remove folders.
- This doesn't just rename the files but actually removes the
- from the hard drive so you should be careful when you use this
- command.</para>
- </sect2>
-
- <sect2 id="samplereading">
- <title>A typical session of reading with MH</title>
-
- <para>The first thing that you will want to do is
- <command>inc</command> your new mail. So at a shell prompt just type
- in <command>inc</command> and hit <keycap>return</keycap>.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>inc</>
-Incorporating new mail into inbox...
-
- 36+ 01/19 "Stephen L. Lange Request...&lt;&lt;Please remove me as contact for pind
- 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
- 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
-&prompt.user;
- </screen>
- </informalexample>
-
- <para>This shows you the new email that has been added to your
- mailbox. So the next thing to do is <command>show</command> the email
- and move around.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>show</>
-Received: by sashimi.wwa.com (Smail3.1.29.1 #2)
- id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST
-Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST)
-From: "Stephen L. Lange" &lt;stvlange@wwa.com&gt;
-To: matt@garply.com
-Subject: Request...
-Message-Id: &lt;Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com&gt;
-Mime-Version: 1.0
-Content-Type: TEXT/PLAIN; charset=US-ASCII
-
-
-Please remove me as contact for pindat.com
-
-&prompt.user; <userinput>rmm</>
-&prompt.user; <userinput>next</>
-Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8
-.6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT
-Message-Id: &lt;199601191756.RAA24416@whydos.lkg.dec.com&gt;
-X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro
-tocol
-To: hsu@clinet.fi
-Cc: hackers@FreeBSD.org
-Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet
- boards)
-In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100."
- &lt;199601182318.AA11772@Sysiphos&gt;
-X-Mailer: exmh version 1.5omega 10/6/94
-Date: Fri, 19 Jan 1996 17:56:40 +0000
-From: Matt Thomas &lt;matt@lkg.dec.com&gt;
-Sender: owner-hackers@FreeBSD.org
-Precedence: bulk
-
-
-This is due to a typo in pcireg.h (to
-which I am probably the guilty party).
- </screen>
- </informalexample>
-
- <para>The <command>rmm</command> removed the current message and the
- <command>next</command> command moved me on to the next message. Now
- if I wanted to look at ten most recent messages so I could
- read one of them here is what I would do:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>scan last:10</>
- 26 01/16 maddy Re: Testing some stuff&lt;&lt;yeah, well, Trinity has
- 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19
- 28 01/17 Evans A Criswell Re: Hey dude&lt;&lt;&gt;From matt@tempest.garply.com Tue
- 29 01/16 Karl Heuer need configure/make volunteers&lt;&lt;The FSF is looki
- 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)&lt;
- 31 01/18 Bill Lenherr Re: Linux NIS Solaris&lt;&lt;--- On Thu, 18 Jan 1996 1
- 34 01/19 John Fieber Re: Stuff for the email section?&lt;&lt;On Fri, 19 Jan
- 35 01/19 support@foo.garpl [garply.com #1138] parlor&lt;&lt;Hello. This is the Ne
- 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
- 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
-&prompt.user;
- </screen>
- </informalexample>
-
- <para>Then if I wanted to read message number 27 I would do a
- <userinput>show 27</userinput> and it would be displayed. As you can
- probably tell from this sample session MH is pretty easy to
- use and looking through emails and displaying them is fairly
- intuitive and easy.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Folders and Mail Searching</title>
-
- <para>Anybody who gets lots of email definitely wants to be able
- to prioritize, stamp, brief, de-brief, and number their emails
- in a variety of different ways. MH can do this better than just
- about anything. One thing that we haven't really talked about is
- the concept of folders. You have undoubtedly come across the
- folders concept using other email programs. MH has folders too.
- MH can even do sub-folders of a folder. One thing you should
- keep in mind with MH is that when you ran <command>inc</command> for
- the first time and it asked you if it could create a
- <filename>Mail</filename> directory it began storing everything in that
- directory. If you look at that directory you will find a
- directory named <filename>inbox</filename>. The <filename>inbox</filename>
- directory houses all of your incoming mail that hasn't been
- thrown anywhere else.</para>
-
- <para>Whenever you create a new folder a new directory is going to
- be created underneath your MH <filename>Mail</filename> directory, and
- messages in that folder are going to be stored in that
- directory. When new email comes in that new email is thrown
- into your <filename>inbox</filename> directory with a file name that is
- equivalent to the message number. So even if you didn't have
- any of the MH tools to read your email you could still use
- standard UNIX commands to munge around in those directories and
- just more your files. It's this simplicity that really gives you
- a lot of power with what you can do with your email.</para>
-
- <para>Just as you can use message lists like <parameter>23 16
- 42</parameter> with most MH commands there is a folder option you can
- specify with just about every MH command. If you do a
- <command>scan +freebsd</command> it will scan your <filename>freebsd</filename>
- folder, and your current folder will be changed to
- <filename>freebsd</filename>. If you do a <command>show +freebsd 23 16
- 42</command>, <command>show</command> is going to switch to your
- <filename>freebsd</filename> folder and display messages 23, 16 and 42.
- So remember that <option>+<replaceable>folder</replaceable></option> syntax. You
- will need to make sure you use it to make commands process
- different folders. Remember you default folder for mail is
- <filename>inbox</filename> so doing a <command>folder +inbox</command> should
- always get you back to your mail. Of course, in MH's infinite
- flexibility this can be changed but most places have probably
- left it as <command>inbox</command>.</para>
-
- <sect2>
- <title><command>pick</command>&mdash;search email that matches certain
- criteria</title>
-
- <para><command>pick</command> is one of the more complex commands in
- the MH system. So you might want to read the
- <citerefentry><refentrytitle>pick</refentrytitle><manvolnum>1</manvolnum></citerefentry> man
- page for a more thorough understanding. At its simplest level
- you can do something like</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -search pci</>
-15
-42
-55
-56
-57
- </screen>
- </informalexample>
-
- <para>This will tell <command>pick</command> to look through every
- single line in every message in your current folder and tell
- you which message numbers it found the word <literal>pci</literal>
- in. You can then <command>show</command> those messages and read them
- if you wish or <command>rmm</command> them. You would have to specify
- something like <command>show 15 42 55-57</command> to display them
- though. A slightly more useful thing to do is this:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -search pci -seq pick</>
-5 hits
-&prompt.user; <userinput>show pick</>
- </screen>
- </informalexample>
-
- <para>This will show you the same messages you just didn't have
- to work as hard to do it. The <option>-seq</option> option is
- really an abbreviation of <option>-sequence</option> and
- <command>pick</command> is just a sequence which contains the message
- numbers that matched. You can use sequences with just about
- any MH command. So you could have done an <command>rmm pick</command>
- and all those messages would be removed instead. You sequence
- can be named anything. If you run pick again it will overwrite
- the old sequence if you use the same name.</para>
-
- <para>Doing a <command>pick -search</command> can be a bit more
- time consuming than just searching for message from someone,
- or to someone. So <command>pick</command> allows you to use the
- following predefined search criteria:</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-to</option></term>
-
- <listitem>
- <para>search based upon who the message is to</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-cc</option></term>
-
- <listitem>
- <para>search based on who is in the cc list</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-from</option></term>
-
- <listitem>
- <para>search for who sent the message</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-subject</option></term>
-
- <listitem>
- <para>search for emails with this subject</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-date</option></term>
-
- <listitem>
- <para>find emails with a matching dat</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--<replaceable>component</replaceable></option></term>
-
- <listitem>
- <para>search for any other component in the header. (i.e.
- <option>--reply-to</option> to find all emails with a certain
- reply-to in the header)</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>This allows you to do things like
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -to freebsd-hackers@FreeBSD.org -seq hackers</>
- </screen>
- </informalexample>
-
- to get a list of all the email send to the FreeBSD hackers
- mailing list. <command>pick</command> also allows you to group these
- criteria in different ways using the following options:</para>
-
- <itemizedlist>
- <listitem>
- <para>&hellip; <option>-and</option> &hellip;</para>
- </listitem>
-
- <listitem>
- <para>&hellip; <option>-or</option> &hellip</para>
- </listitem>
-
- <listitem>
- <para><option>-not</option> &hellip;</para>
- </listitem>
-
- <listitem>
- <para><option>-lbrace</option> &hellip;
- <option>-rbrace</option></para>
- </listitem>
- </itemizedlist>
-
- <para>These commands allow you to do things like</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -to freebsd-hackers -and -cc freebsd-hackers</>
- </screen>
- </informalexample>
-
- <para>That will grab all the email in your inbox that was sent
- to freebsd-hackers or cc'd to that list. The brace options
- allow you to group search criteria together. This is sometimes
- very necessary as in the following example</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -lbrace -to freebsd-hackers -and
- -not -cc freebsd-questions -rbrace -and -subject pci</>
- </screen>
- </informalexample>
-
- <para>Basically this says <quote>pick (to freebsd-hackers and
- not cc'd on freebsd-questions) and the subject is
- pci</quote>. It should look through your folder and find
- all messages sent to the freebsd-hackers list that aren't cc'd
- to the freebsd-questions list that contain something on pci in
- the subject line. Ordinarily you might have to worry about
- something called operator precedence. Remember in math how you
- evaluate from left to right and you do multiplication and
- division first and addition and subtraction second? MH has the
- same type of rules for <command>pick</command>. It's fairly complex
- so you might want to study the man page. This document is just
- to help you get acquainted with MH.</para>
- </sect2>
-
- <sect2>
- <title><command>folder</command>, <command>folders</command>,
- <command>refile</command>&mdash;three useful programs for folder
- maintenance</title>
-
- <para>There are three programs which are primarily just for
- manipulating your folders. The <command>folder</command> program is
- used to switch between folders, pack them, and list them. At
- its simplest level you can do a <command>folder
- +<replaceable>newfolder</replaceable></command> and you will be switched into
- <replaceable>newfolder</replaceable>. From there on out all your MH
- commands like <command>comp</command>, <command>repl</command>,
- <command>scan</command>, and <command>show</command> will act on that
- <command>newfolder</command> folder.</para>
-
- <para>Sometimes when you are reading and deleting messages you
- will develop <quote>holes</quote> in your folders. If you do a
- <command>scan</command> you might just see messages 34, 35, 36, 43,
- 55, 56, 57, 80. If you do a <command>folder -pack</command>
- this will renumber all your messages so that there are no
- holes. It doesn't actually delete any messages though. So you
- may need to periodically go through and physically delete
- <command>rmm</command>'d messages.</para>
-
- <para>If you need statistics on your folders you can do a
- <command>folders</command> or <command>folder -all</command> to list
- all your folders, how many messages they have, what the
- current message is in each one and so on. This line of stats
- it displays for all your folders is the same one you get when
- you change to a folder with <command>folder +foldername</command>. A
- <command>folders</command> command looks like this:</para>
-
- <informalexample>
- <screen> Folder # of messages ( range ); cur msg (other files)
- announce has 1 message ( 1- 1).
- drafts has no messages.
- f-hackers has 43 messages ( 1- 43).
- f-questions has 16 messages ( 1- 16).
- inbox+ has 35 messages ( 1- 38); cur= 37.
- lists has 8 messages ( 1- 8).
- netfuture has 1 message ( 1- 1).
- out has 31 messages ( 1- 31).
- personal has 6 messages ( 1- 6).
- todo has 58 messages ( 1- 58); cur= 1.
-
- TOTAL= 199 messages in 13 folders.
- </screen>
- </informalexample>
-
- <para>The <command>refile</command> command is what you use to move
- messages between folders. When you do something like
- <command>refile 23 +netfuture</command> message number 23 is moved
- into the <filename>netfuture</filename> folder. You could also do
- something like <command>refile 23 +netfuture/latest</command> which
- would put message number 23 in a subfolder called
- <filename>latest</filename> under the <filename>netfuture</filename> folder.
- If you want to keep a message in the current folder and link
- it you can do a <command>refile -link 23 +netfuture</command>
- which would keep 23 in your current <filename>inbox</filename> but
- also list in your <filename>netfuture</filename> folder. You are
- probably beginning to realize some of the really powerful
- things you can do with MH.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Sending Mail</title>
-
- <para>Email is a two way street for most people so you want to be
- able to send something back. The way MH handles sending mail can
- be a bit difficult to follow at first, but it allows for
- incredible flexibility. The first thing MH does is to copy a
- components file into your outgoing email. A components file is
- basically a skeleton email letter with stuff like the To: and
- Subject: headers already in it. You are then sent into your
- editor where you fill in the header information and then type
- the body of your message below the dashed lines in the message.
- Then to the <command>whatnow</command> program. When you are at the
- <prompt>What now?</prompt> prompt you can tell it to
- <command>send</command>, <command>list</command>, <command>edit</command>,
- <command>edit</command>, <command>push</command>, and <command>quit</command>. Most
- of these commands are self-explanatory. So the message sending
- process involves copying a component file, editing your email,
- and then telling the <command>whatnow</command> program what to do with
- your email.</para>
-
- <sect2>
- <title><command>comp</command>, <command>forw</command>,
- <command>reply</command>&mdash;compose, forward or reply to a message
- to someone</title>
-
- <para>The <command>comp</command> program has a few useful command line
- options. The most important one to know right now is the
- <option>-editor</option> option. When MH is installed the
- default editor is usually a program called
- <command>prompter</command> which comes with MH. It's not a very
- exciting editor and basically just gets the job done. So when
- you go to compose a message to someone you might want to use
- <command>comp -editor /usr/bin/vi/</command> or <command>comp -editor
- /usr/local/bin/pico/</command> instead. Once you have run
- <emphasis>comp</emphasis> you are in your editor and you see
- something that looks like this:</para>
-
- <informalexample>
- <screen>To:
-cc:
-Subject:
---------
- </screen>
- </informalexample>
-
- <para>You need to put the person you are sending the mail to
- after the <literal>To:</literal> line. It works the same way for the
- other headers also, so you would need to put your subject
- after the <literal>Subject:</literal> line. Then you would just put
- the body of your message after the dashed lines. It may seem a
- bit simplistic since a lot of email programs have special
- requesters that ask you for this information but there really
- isn't any point to that. Plus this really gives you excellent
- flexibility.</para>
-
- <informalexample>
- <screen>To:<userinput>freebsd-rave@FreeBSD.org</>
-cc:
-Subject:<userinput>And on the 8th day God created the FreeBSD core team</>
---------
-<userinput>Wow this is an amazing operating system. Thanks!</>
- </screen>
- </informalexample>
-
- <para>You can now save this message and exit your editor. You
- will see the <prompt>What now?</prompt> prompt and you can type in
- <userinput>send</userinput> or <userinput>s</userinput> and hit
- <keycap>return</keycap>. Then the FreeBSD core team will receive
- their just rewards. As I mentioned earlier you can also use
- other commands, for example <command>quit</command> if you don't want
- to send the message.</para>
-
- <para>The <command>forw</command> command is stunningly similar. The
- big difference being that the message you are forwarding is
- automatically included in the outgoing message. When you run
- <command>forw</command> it will forward your current message. You can
- always tell it to forward something else by doing something
- like <command>forw 23</command> and then message number 23 will be
- put in your outgoing message instead of the current message.
- Beyond those small differences <command>forw</command> functions
- exactly the same as <command>comp</command>. You go through the exact
- same message sending process.</para>
-
- <para>The <command>repl</command> command will reply to whatever your
- current message is, unless you give it a different message to
- reply to. <command>repl</command> will do its best to go ahead and
- fill in some of the email headers already. So you will notice
- that the <literal>To:</literal> header already has the address of the
- recipient in there. Also the <literal>Subject:</literal> line will
- already be filled in. You then go about the normal message
- composition process and you are done. One useful command line
- option to know here is the <option>-cc</option> option. You
- can use <parameter>all</parameter>, <parameter>to</parameter>, <parameter>cc</parameter>,
- <parameter>me</parameter> after the <option>-cc</option> option to have
- <command>repl</command> automatically add the various addresses to
- the cc list in the message. You have probably noticed that the
- original message isn't included. This is because most MH
- setups are configured to do this from the start.</para>
- </sect2>
-
- <sect2>
- <title><filename>components</filename>, and
- <filename>replcomps</filename>&mdash;components files for
- <command>comp</command> and <command>repl</command></title>
-
- <para>The <filename>components</filename> file is usually in
- <filename>/usr/local/lib/mh</filename>. You can copy that file
- into your MH Mail directory and edit to contain what you want
- it to contain. It is a fairly basic file. You have various
- email headers at the top, a dashed line and then nothing. The
- <command>comp</command> command just copies this
- <filename>components</filename> file and then edits it. You can add
- any kind of valid RFC822 header you want. For instance you
- could have something like this in your <filename>components</filename>
- file:</para>
-
- <informalexample>
- <screen>To:
-Fcc: out
-Subject:
-X-Mailer: MH 6.8.3
-X-Home-Page: http://www.FreeBSD.org/
--------
- </screen>
- </informalexample>
-
- <para>MH would then copy this components file and throw you into
- your editor. The <filename>components</filename> file is fairly
- simple. If you wanted to have a signature on those messages
- you would just put your signature in that
- <filename>components</filename> file.</para>
-
- <para>The <filename>replcomps</filename> file is a bit more complex. The
- default <filename>replcomps</filename> looks like this:</para>
-
- <informalexample>
- <screen>%(lit)%(formataddr %&lt;{reply-to}%?{from}%?{sender}%?{return-path}%&gt;)\
-%&lt;(nonnull)%(void(width))%(putaddr To: )\n%&gt;\
-%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
-%&lt;(nonnull)%(void(width))%(putaddr cc: )\n%&gt;\
-%&lt;{fcc}Fcc: %{fcc}\n%&gt;\
-%&lt;{subject}Subject: Re: %{subject}\n%&gt;\
-%&lt;{date}In-reply-to: Your message of "\
-%&lt;(nodate{date})%{date}%|%(pretty{date})%&gt;."%&lt;{message-id}
- %{message-id}%&gt;\n%&gt;\
---------
- </screen>
- </informalexample>
-
- <para>It's in the same basic format as the
- <filename>components</filename> file but it contains quite a few extra
- formatting codes. The <literal>%(lit)</literal> command makes room
- for the address. The <literal>%(formataddr</literal> is a function
- that returns a proper email address. The next part is
- <literal>%&lt;</literal> which means if and the
- <literal>{reply-to}</literal> means the reply-to field in the
- original message. So that might be translated this way:</para>
-
- <informalexample>
- <screen>%&lt;<emphasis remap=bf>if</emphasis> {reply-to} <emphasis remap=bf>the original message has a reply-to</emphasis>
-then give that to formataddr, %? <emphasis remap=bf>else</emphasis> {from} <emphasis remap=bf>take the
-from address</emphasis>, %? <emphasis remap=bf>else</emphasis> {sender} <emphasis remap=bf>take the sender address</emphasis>, %?
-<emphasis remap=bf>else</emphasis> {return-path} <emphasis remap=bf>take the return-path from the original
-message</emphasis>, %&gt; <emphasis remap=bf>endif</emphasis>.
- </screen>
- </informalexample>
-
- <para>As you can tell MH formatting can get rather involved. You
- can probably decipher what most of the other functions and
- variables mean. All of the information on writing these format
- strings is in the MH-Format man page. The really nice thing is
- that once you have built your customized
- <filename>replcomps</filename> file you won't need to touch it again.
- No other email program really gives you the power and
- flexibility that MH gives you.</para>
- </sect2>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/multi-os/Makefile b/en_US.ISO8859-1/articles/multi-os/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/multi-os/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/multi-os/article.sgml b/en_US.ISO8859-1/articles/multi-os/article.sgml
deleted file mode 100644
index 63394e6f5f..0000000000
--- a/en_US.ISO8859-1/articles/multi-os/article.sgml
+++ /dev/null
@@ -1,743 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/multi-os/article.sgml,v 1.13 2000/07/26 18:24:49 jim Exp $ -->
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
-<article>
- <articleinfo>
- <title>Installing and Using FreeBSD With Other Operating Systems</title>
-
- <authorgroup>
- <author>
- <firstname>Jay</firstname>
-
- <surname>Richmond</surname>
-
- <affiliation>
- <address>
- <email>jayrich@sysc.com</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>6 August 1996</pubdate>
-
- <abstract>
- <para>This document discusses how to make FreeBSD coexist nicely
- with other popular operating systems such as Linux, MS-DOS,
- OS/2, and Windows 95. Special thanks to: Annelise Anderson
- <email>andrsn@stanford.edu</email>, Randall Hopper
- <email>rhh@ct.picker.com</email>, and Jordan K. Hubbard
- <email>jkh@time.cdrom.com</email></para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>Overview</title>
-
- <para>Most people can't fit these operating systems together
- comfortably without having a larger hard disk, so special
- information on large EIDE drives is included. Because there are
- so many combinations of possible operating systems and hard disk
- configurations, the <xref linkend="ch5"> section may be of the
- most use to you. It contains descriptions of specific working
- computer setups that use multiple operating systems.</para>
-
- <para>This document assumes that you have already made room on
- your hard disk for an additional operating system. Any time you
- repartition your hard drive, you run the risk of destroying the
- data on the original partitions. However, if your hard drive is
- completely occupied by DOS, you might find the FIPS utility
- (included on the FreeBSD CD-ROM in the
- <filename>\TOOLS</filename> directory or via <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools">ftp</ulink>)
- useful. It lets you repartition your hard disk without
- destroying the data already on it. There is also a commercial
- program available called Partition Magic, which lets you size
- and delete partitions without consequence.</para>
- </sect1>
-
- <sect1 id="ch2">
- <title>Overview of Boot Managers</title>
-
- <para>These are just brief descriptions of some of the different
- boot managers you may encounter. Depending on your computer
- setup, you may find it useful to use more than one of them on
- the same system.</para>
-
- <variablelist>
- <varlistentry>
- <term>Boot Easy</term>
-
- <listitem>
- <para>This is the default boot manager used with FreeBSD.
- It has the ability to boot most anything, including BSD,
- OS/2 (HPFS), Windows 95 (FAT and FAT32), and Linux.
- Partitions are selected with the function keys.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>OS/2 Boot Manager</term>
-
- <listitem>
- <para>This will boot FAT, HPFS, FFS (FreeBSD), and EXT2
- (Linux). It will also boot FAT32 partitions. Partitions
- are selected using arrow keys. The OS/2 Boot Manager is
- the only one to use its own separate partition, unlike the
- others which use the master boot record (MBR). Therefore,
- it must be installed below the 1024th cylinder to avoid
- booting problems. It can boot Linux using LILO when it is
- part of the boot sector, not the MBR. Go to <ulink
- URL="http://www.linuxresources.com/LDP/HOWTO/HOWTO-INDEX.html">Linux
- HOWTOs</ulink> on the World Wide Web for more
- information on booting Linux with OS/2's boot
- manager.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>OS-BS</term>
-
- <listitem>
- <para>This is an alternative to Boot Easy. It gives you more
- control over the booting process, with the ability to set
- the default partition to boot and the booting timeout.
- The beta version of this programs allows you to boot by
- selecting the OS with your arrow keys. It is included on
- the FreeBSD CD in the <filename>\TOOLS</filename>
- directory, and via <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools">ftp</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>LILO, or LInux LOader</term>
-
- <listitem>
- <para>This is a limited boot manager. It will boot FreeBSD,
- though some customization work is required in the LILO
- configuration file.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <note id="fat32">
- <title>About FAT32</title>
-
- <para>FAT32 is the replacement to the FAT filesystem included in
- Microsoft's OEM SR2 Beta release, which is expected to be
- utilitized on computers pre-loaded with Windows 95 towards the
- end of 1996. It converts the normal FAT file system and
- allows you to use smaller cluster sizes for larger hard
- drives. FAT32 also modifies the traditional FAT boot sector
- and allocation table, making it incompatible with some boot
- managers.</para>
- </note>
- </sect1>
-
- <sect1 id="ch3">
- <title>A Typical Installation</title>
-
- <para>Let's say I have two large EIDE hard drives, and I want to
- install FreeBSD, Linux, and Windows 95 on them.</para>
-
- <para>Here's how I might do it using these hard disks:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>/dev/wd0</filename> (first physical hard disk)</para>
- </listitem>
-
- <listitem>
- <para><filename>/dev/wd1</filename> (second hard disk)</para>
- </listitem>
- </itemizedlist>
-
- <para>Both disks have 1416 cylinders.</para>
-
- <procedure>
- <step>
- <para>I boot from a MS-DOS or Windows 95 boot disk that
- contains the <filename>FDISK.EXE</filename> utility and make a small
- 50 meg primary partition (35-40 for Windows 95, plus a
- little breathing room) on the first disk. Also create a
- larger partition on the second hard disk for my Windows
- applications and data.</para>
- </step>
-
- <step>
- <para>I reboot and install Windows 95 (easier said than done)
- on the <filename>C:</filename> partition.</para>
- </step>
-
- <step>
- <para>The next thing I do is install Linux. I'm not sure
- about all the distributions of Linux, but slackware includes
- LILO (see <xref linkend="ch2">). When I am partitioning out
- my hard disk with Linux <command>fdisk</command>, I would
- put all of Linux on the first drive (maybe 300 megs for a
- nice root partition and some swap space).</para>
- </step>
-
- <step>
- <para>After I install Linux, and are prompted about installing
- LILO, make SURE that I install it on the boot sector of my
- root Linux partition, not in the MBR (master boot
- record).</para>
- </step>
-
- <step>
- <para>The remaining hard disk space can go to FreeBSD. I also
- make sure that my FreeBSD root slice does not go beyond the
- 1024th cylinder. (The 1024th cylinder is 528 megs into the
- disk with our hypothetical 720MB disks). I will use the
- rest of the hard drive (about 270 megs) for the
- <filename>/usr</filename> and <filename>/</filename> slices if I wish. The
- rest of the second hard disk (size depends on the amount of
- my Windows application/data partition that I created in step
- 1 can go to the <filename>/usr/src</filename> slice and swap
- space.</para>
- </step>
-
- <step>
- <para>When viewed with the Windows 95 <command>fdisk</command>
- utility, my hard drives should now look something like this:
-
- <screen>
----------------------------------------------------------------------
-
- Display Partition Information
-
-Current fixed disk drive: 1
-
-Partition Status Type Volume_Label Mbytes System Usage
-C: 1 A PRI DOS 50 FAT** 7%
- 2 A Non-DOS (Linux) 300 43%
-
-Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes)
-
-Press Esc to continue
-
----------------------------------------------------------------------
-
- Display Partition Information
-
-Current fixed disk drive: 2
-
-Partition Status Type Volume_Label Mbytes System Usage
-D: 1 A PRI DOS 420 FAT** 60%
-
-Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes)
-
-Press Esc to continue
-
----------------------------------------------------------------------
- </screen>
- ** May say FAT16 or FAT32 if you are using the OEM SR2
- update. See <xref linkend="ch2">).</para>
- </step>
-
- <step>
- <para>Install FreeBSD. I make sure to boot with my first hard
- disk set at <quote>NORMAL</quote> in the BIOS. If it is not,
- I'll have the enter my true disk geometry at boot time (to
- get this, boot Windows 95 and consult Microsoft Diagnostics
- (<filename>MSD.EXE</filename>), or check your BIOS) with the
- parameter <literal>hd0=1416,16,63</literal> where
- <replaceable>1416</replaceable> is the number of cylinders on my hard
- disk, <replaceable>16</replaceable> is the number of heads per track,
- and <replaceable>63</replaceable> is the number of sectors per track on
- the drive.</para>
- </step>
-
- <step>
- <para>When partitioning out the hard disk, I make sure to
- install Boot Easy on the first disk. I don't worry about
- the second disk, nothing is booting off of it.</para>
- </step>
-
- <step>
- <para>When I reboot, Boot Easy should recognize my three
- bootable partitions as DOS (Windows 95), Linux, and BSD
- (FreeBSD).</para>
- </step>
- </procedure>
- </sect1>
-
- <sect1 id="ch4">
- <title>Special Considerations</title>
-
- <para>Most operating systems are very picky about where and how
- they are placed on the hard disk. Windows 95 and DOS need to be
- on the first primary partitiin on the first hard disk. OS/2 is
- the exception. It can be installed on the first or second disk
- in a primary or extended partition. If you are not sure, keep
- the beginning of the bootable partitions below the 1024th
- cylinder.</para>
-
- <para>If you install Windows 95 on an existing BSD system, it will
- <quote>destroy</quote> the MBR, and you will have to reinstall your
- previous boot manager. Boot Easy can be reinstalled by using
- the BOOTINST.EXE utility included in the \TOOLS directory on the
- CD-ROM, and via <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools">ftp</ulink>.
- You can also re-start the installation process and go to the
- partition editor. From there, mark the FreeBSD partition as
- bootable, select Boot Manager, and then type W to (W)rite out
- the information to the MBR. You can now reboot, and Boot Easy
- should then recognize Windows 95 as DOS.</para>
-
- <para>Please keep in mind that OS/2 can read FAT and HPFS
- partitions, but not FFS (FreeBSD) or EXT2 (Linux) partitions.
- Likewise, Windows 95 can only read and write to FAT and FAT32
- (see <xref linkend="ch2">) partitions. FreeBSD can read most
- file systems, but currently cannot read HPFS partitions. Linux
- can read HPFS partitions, but can't write to them. Recent
- versions of the Linux kernel (2.x) can read and write to Windows
- 95 VFAT partitions (VFAT is what gives Windows 95 long file
- names - it's pretty much the same as FAT). Linux can read and
- write to most file systems. Got that? I hope so.</para>
- </sect1>
-
- <sect1 id="ch5">
- <title>Examples</title>
-
- <para><emphasis>(section needs work, please send your example to
- <email>jayrich@sysc.com</email>)</emphasis>.</para>
-
- <para>FreeBSD+Win95: If you installed FreeBSD after Windows 95,
- you should see <literal>DOS</literal> on the Boot Easy menu. This is
- Windows 95. If you installed Windows 95 after FreeBSD, read
- <xref linkend="ch4"> above. As long as your hard disk does not
- have 1024 cylinders you should not have a problem booting. If
- one of your partitions goes beyond the 1024th cylinder however,
- and you get messages like <errorname>invalid system disk</errorname>
- under DOS (Windows 95) and FreeBSD will not boot, try looking
- for a setting in your BIOS called <quote>&gt; 1024 cylinder
- support</quote> or <quote>NORMAL/LBA</quote> mode. DOS may need LBA
- (Logical Block Addressing) in order to boot correctly. If the
- idea of switching BIOS settings every time you boot up doesn't
- appeal to you, you can boot FreeBSD through DOS via the
- <filename>FBSDBOOT.EXE</filename> utility on the CD (It should find your
- FreeBSD partition and boot it.)</para>
-
- <para>FreeBSD+OS/2+Win95: Nothing new here. OS/2's boot manger
- can boot all of these operating systems, so that shouldn't be a
- problem.</para>
-
- <para>FreeBSD+Linux: You can also use Boot Easy to boot both
- operating systems.</para>
-
- <para>FreeBSD+Linux+Win95: (see <xref linkend="ch3">)</para>
- </sect1>
-
- <sect1 id="sources">
- <title>Other Sources of Help</title>
-
- <para>There are many <ulink
- URL="http://www.linuxresources.com/LDP/HOWTO/HOWTO-INDEX.html">Linux
- HOW-TOs</ulink> that deal with multiple operating systems on
- the same hard disk.</para>
-
- <para>The <ulink
- URL="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+DOS+Win95+OS2.html">Linux+DOS+Win95+OS2
- mini-HOWTO</ulink> offers help on configuring the OS/2 boot
- manager, and the <ulink
- URL="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD
- mini-HOWTO</ulink> might be interesting as well. The <ulink
- URL="http://www.in.net/~jkatz/win95/Linux-HOWTO.html">Linux-HOWTO</ulink>
- is also helpful.</para>
-
- <para>The <ulink
- URL="http://www.dorsai.org/~dcl/publications/NTLDR_Hacking">NT
- Loader Hacking Guide</ulink> provides good information on
- multibooting Windows NT, '95, and DOS with other operating
- systems.</para>
-
- <para>And Hale Landis's "How It Works" document pack contains some
- good info on all sorts of disk geometry and booting related
- topics. You can find it at
- <ulink
- URL="ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip">ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip</ulink>.</para>
-
- <para>Finally, don't overlook FreeBSD's kernel documentation on
- the booting procedure, available in the kernel source
- distribution (it unpacks to <ulink
- URL="file:/usr/src/sys/i386/boot/biosboot/README.386BSD">file:/usr/src/sys/i386/boot/biosboot/README.386BSD</ulink>.</para>
- </sect1>
-
- <sect1>
- <title>Technical Details</title>
-
- <para><emphasis>(Contributed by Randall Hopper,
- <email>rhh@ct.picker.com</email>)</emphasis></para>
-
- <para>This section attempts to give you enough basic information
- about your hard disks and the disk booting process so that you
- can troubleshoot most problems you might encounter when getting
- set up to boot several operating systems. It starts in pretty
- basic terms, so you may want to skim down in this section until
- it begins to look unfamiliar and then start reading.</para>
-
- <sect2>
- <title>Disk Primer</title>
-
- <para>Three fundamental terms are used to describe the location
- of data on your hard disk: Cylinders, Heads, and Sectors.
- It's not particularly important to know what these terms
- relate to except to know that, together, they identify where
- data is physically on your disk.</para>
-
- <para>Your disk has a particular number of cylinders, number of
- heads, and number of sectors per cylinder-head (a
- cylinder-head also known nown as a track). Collectively this
- information defines the "physical disk geometry" for your hard
- disk. There are typically 512 bytes per sector, and 63
- sectors per track, with the number of cylinders and heads
- varying widely from disk to disk. Thus you can figure the
- number of bytes of data that'll fit on your own disk by
- calculating:</para>
-
- <informalexample>
- <para>(# of cylinders) &times; (# heads) &times; (63
- sectors/track) &times; (512 bytes/sect)</para>
- </informalexample>
-
- <para>For example, on my 1.6 Gig Western Digital AC31600 EIDE hard
- disk,that's:</para>
-
- <informalexample>
- <para>(3148 cyl) &times; (16 heads) &times; (63
- sectors/track) &times (512 bytes/sect)</para>
- </informalexample>
-
- <para>which is 1,624,670,208 bytes, or around 1.6 Gig.</para>
-
- <para>You can find out the physical disk geometry (number of
- cylinders, heads, and sectors/track counts) for your hard
- disks using ATAID or other programs off the net. Your hard
- disk probably came with this information as well. Be careful
- though: if you're using BIOS LBA (see <xref
- linkend="limits">), you can't use just any program to get
- the physical geometry. This is because many programs (e.g.
- <filename>MSD.EXE</filename> or FreeBSD fdisk) don't identify the
- physical disk geometry; they instead report the
- <firstterm>translated geometry</firstterm> (virtual numbers from using
- LBA). Stay tuned for what that means.</para>
-
- <para>One other useful thing about these terms. Given 3
- numbers&mdash;a cylinder number, a head number, and a
- sector-within-track number&mdash;you identify a specific
- absolute sector (a 512 byte block of data) on your disk.
- Cylinders and Heads are numbered up from 0, and Sectors are
- numbered up from 1.</para>
-
- <para>For those that are interested in more technical details,
- information on disk geometry, boot sectors, BIOSes, etc. can
- be found all over the net. Query Lycos, Yahoo, etc. for
- <literal>boot sector</literal> or <literal>master boot record</literal>.
- Among the useful info you'll find are Hale Landis's
- <citetitle>How It Works</citetitle> document pack. See the <xref
- linkend="sources"> section for a few pointers to this
- pack.</para>
-
- <para>Ok, enough terminology. We're talking about booting
- here.</para>
- </sect2>
-
- <sect2 id="booting">
- <title>The Booting Process</title>
-
- <para>On the first sector of your disk (Cyl 0, Head 0, Sector 1)
- lives the Master Boot Record (MBR). It contains a map of your
- disk. It identifies up to 4 <firstterm>partitions</firstterm>, each of
- which is a contiguous chunk of that disk. FreeBSD calls
- partitions <firstterm>slices</firstterm> to avoid confusion with it's
- own partitions, but we won't do that here. Each partition can
- contain its own operating system.</para>
-
- <para>Each partition entry in the MBR has a <firstterm>Partition
- ID</firstterm>, a <firstterm>Start Cylinder/Head/Sector</firstterm>, and an
- <firstterm>End Cylinder/Head/Sector</firstterm>. The Partition ID
- tells what type of partition it is (what OS) and the Start/End
- tells where it is. <xref linkend="tbl-pid"> lists a
- smattering of some common Partition IDs.</para>
-
- <table id="tbl-pid">
- <title>Partition IDs</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>ID (hex)</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>01</entry>
- <entry>Primary DOS12 (12-bit FAT)</entry>
- </row>
-
- <row>
- <entry>04</entry>
- <entry>Primary DOS16 (16-bit FAT)</entry>
- </row>
-
- <row>
- <entry>05</entry>
- <entry>Extended DOS</entry>
- </row>
-
- <row>
- <entry>06</entry>
- <entry>Primary big DOS (&gt; 32MB)</entry>
- </row>
-
- <row>
- <entry>0A</entry>
- <entry>OS/2</entry>
- </row>
-
- <row>
- <entry>83</entry>
- <entry>Linux (EXT2FS)</entry>
- </row>
-
- <row>
- <entry>A5</entry>
- <entry>FreeBSD, NetBSD, 386BSD (UFS)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Note that not all partitions are bootable (e.g. Extended
- DOS). Some are&mdash;some aren't. What makes a partition
- bootable is the configuration of the <firstterm>Partition Boot
- Sector</firstterm> that exists at the beginning of each
- partition.</para>
-
- <para>When you configure your favorite boot manager, it looks up
- the entries in the MBR partition tables of all your hard disks
- and lets you name the entries in that list. Then when you
- boot, the boot manager is invoked by special code in the
- Master Boot Sector of the first probed hard disk on your
- system. It looks at the MBR partition table entry
- corresponding to the partition choice you made, uses the Start
- Cylinder/Head/Sector information for that partition, loads up
- the Partition Boot Sector for that partition, and gives it
- control. That Boot Sector for the partition itself contains
- enough information to start loading the operating system on
- that partition.</para>
-
- <para>One thing we just brushed past that's important to know.
- All of your hard disks have MBRs. However, the one that's
- important is the one on the disk that's first probed by the
- BIOS. If you have only IDE hard disks, its the first IDE disk
- (e.g. primary disk on first controller). Similarly for SCSI
- only systems. If you have both IDE and SCSI hard disks
- though, the IDE disk is typically probed first by the BIOS, so
- the first IDE disk is the first probed disk. The boot manager
- you will install will be hooked into the MBR on this first
- probed hard disk that we've just described.</para>
- </sect2>
-
- <sect2 id="limits">
- <title>Booting Limitations and Warnings</title>
-
- <para>Now the interesting stuff that you need to watch out
- for.</para>
-
- <sect3>
- <title>The dreaded 1024 cylinder limit and how BIOS LBA helps</title>
-
- <para>The first part of the booting process is all done
- through the BIOS, (if that's a new term to you, the BIOS is
- a software chip on your system motherboard which provides
- startup code for your computer). As such, this first part
- of the process is subject to the limitations of the BIOS
- interface.</para>
-
- <para>The BIOS interface used to read the hard disk during
- this period (INT 13H, Subfunction 2) allocates 10 bits to
- the Cylinder Number, 8 bits to the Head Number, and 6 bits
- to the Sector Number. This restricts users of this
- interface (i.e. boot managers hooked into your disk's MBR as
- well as OS loaders hooked into the Boot Sectors) to the
- following limits:</para>
-
- <itemizedlist>
- <listitem>
- <para>1024 cylinders, max</para>
- </listitem>
-
- <listitem>
- <para>256 heads, max</para>
- </listitem>
-
- <listitem>
- <para>64 sectors/track, max (actually 63, <literal>0</literal>
- isn't available)</para>
- </listitem>
- </itemizedlist>
-
- <para>Now big hard disks have lots of cylinders but not a lot
- of heads, so invariably with big hard disks the number of
- cylinders is greater than 1024. Given this and the BIOS
- interface as is, you can't boot off just anywhere on your
- hard disk. The boot code (the boot manager and the OS
- loader hooked into all bootable partitions' Boot Sectors)
- has to reside below cylinder 1024. In fact, if your hard
- disk is typical and has 16 heads, this equates to:</para>
-
- <informalexample>
- <para>1024 cyl/disk &times; 16 heads/disk &times; 63
- sect/(cyl-head) &times; 512 bytes/sector</para>
- </informalexample>
-
- <para>which is around the often-mentioned 528MB limit.</para>
-
- <para>This is where BIOS LBA (Logical Block Addressing) comes
- in. BIOS LBA gives the user of the BIOS API calls access to
- physical cylinders above 1024 though the BIOS interfaces by
- redefining a cylinder. That is, it remaps your cylinders
- and heads, making it appear through the BIOS as though the
- disk has fewer cylinders and more heads than it actually
- does. In other words, it takes advantage of the fact that
- hard disks have relatively few heads and lots of cylinders
- by shifting the balance between number of cylinders and
- number of heads so that both numbers lie below the
- above-mentioned limits (1024 cylinders, 256 heads).</para>
-
- <para>With BIOS LBA, the hard disk size limitation is
- virtually removed (well, pushed up to 8 Gigabytes anyway).
- If you have an LBA BIOS, you can put FreeBSD or any OS
- anywhere you want and not hit the 1024 cylinder
- limit.</para>
-
- <para>To use my 1.6 Gig Western Digital as an example again,
- it's physical geometry is:</para>
-
- <informalexample>
- <para>(3148 cyl, 16 heads, 63 sectors/track, 512
- bytes/sector)</para>
- </informalexample>
-
- <para>However, my BIOS LBA remaps this to:</para>
-
- <informalexample>
- <para>(787 cyl, 64 heads, 63 sectors/track, 512
- bytes/sector)</para>
- </informalexample>
-
- <para>giving the same effective size disk, but with cylinder
- and head counts within the BIOS API's range (Incidentally, I
- have both Linux and FreeBSD existing on one of my hard disks
- above the 1024th physical cylinder, and both operating
- systems boot fine, thanks to BIOS LBA).</para>
- </sect3>
-
- <sect3>
- <title>Boot Managers and Disk Allocation</title>
-
- <para>Another gotcha to watch out when installing boot
- managers is allocating space for your boot manager. It's
- best to be aware of this issue up front to save yourself
- from having to reinstall one or more of your OSs.</para>
-
- <para>If you followed the discussion in <xref
- linkend="booting"> about the Master Boot Sector (where the
- MBR is), Partition Boot Sectors, and the booting process,
- you may have been wondering just exactly where on your hard
- disk that nifty boot manager is going to live. Well, some
- boot managers are small enough to fit entirely within the
- Master Boot Sector (Cylinder 0, Head 0, Sector 0) along with
- the partition table. Others need a bit more room and
- actually extend a few sectors past the Master Boot Sector in
- the Cylinder 0 Head 0 track, since that's typically
- free&hellip;typically.</para>
-
- <para>That's the catch. Some operating systems (FreeBSD
- included) let you start their partitions right after the
- Master Boot Sector at Cylinder 0, Head 0, Sector 2 if you
- want. In fact, if you give FreeBSD's sysinstall a disk with
- an empty chunk up front or the whole disk empty, that's
- where it'll start the FreeBSD partition by default (at least
- it did when I fell into this trap). Then when you go to
- install your boot manager, if it's one that occupies a few
- extra sectors after the MBR, it'll overwrite the front of
- the first partition's data. In the case of FreeBSD, this
- overwrites the disk label, and renders your FreeBSD
- partition unbootable.</para>
-
- <para>The easy way to avoid this problem (and leave yourself
- the flexibility to try different boot managers later) is
- just to always leave the first full track on your disk
- unallocated when you partition your disk. That is, leave
- the space from Cylinder 0, Head 0, Sector 2 through Cylinder
- 0, Head 0, Sector 63 unallocated, and start your first
- partition at Cylinder 0, Head 1, Sector 1. For what it's
- worth, when you create a DOS partition at the front of your
- disk, DOS leaves this space open by default (this is why
- some boot managers assume it's free). So creating a DOS
- partition up at the front of your disk avoids this problem
- altogether. I like to do this myself, creating 1 Meg DOS
- partition up front, because it also avoids my primary DOS
- drive letters shifting later when I repartition.</para>
-
- <para>For reference, the following boot managers use the
- Master Boot Sector to store their code and data:</para>
-
- <itemizedlist>
- <listitem>
- <para>OS-BS 1.35</para>
- </listitem>
-
- <listitem>
- <para>Boot Easy</para>
- </listitem>
-
- <listitem>
- <para>LILO</para>
- </listitem>
- </itemizedlist>
-
- <para>These boot managers use a few additional sectors after
- the Master Boot Sector:</para>
-
- <itemizedlist>
- <listitem>
- <para>OS-BS 2.0 Beta 8 (sectors 2-5)</para>
- </listitem>
-
- <listitem>
- <para>OS/2's boot manager</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>What if your machine won't boot?</title>
-
- <para>At some point when installing boot managers, you might
- leave the MBR in a state such that your machine won't boot.
- This is unlikely, but possible when re-FDISKing underneath
- an already-installed boot manager.</para>
-
- <para>If you have a bootable DOS partition on your disk, you
- can boot off a DOS floppy, and run:</para>
-
- <informalexample>
- <screen>A:\> <userinput>FDISK /MBR</>
- </screen>
- </informalexample>
-
- <para>to put the original, simple DOS boot code back into the
- system. You can then boot DOS (and DOS only) off the hard
- drive. Alternatively, just re-run your boot manager
- installation program off a bootable floppy.</para>
- </sect3>
- </sect2>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/new-users/Makefile b/en_US.ISO8859-1/articles/new-users/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/new-users/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/new-users/article.sgml b/en_US.ISO8859-1/articles/new-users/article.sgml
deleted file mode 100644
index 92a862ed06..0000000000
--- a/en_US.ISO8859-1/articles/new-users/article.sgml
+++ /dev/null
@@ -1,1052 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/new-users/article.sgml,v 1.17 2001/04/09 00:33:41 dd Exp $ -->
-<!-- The FreeBSD Documentation Project -->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
-<article>
- <articleinfo>
- <title>For People New to Both FreeBSD and Unix</title>
-
- <authorgroup>
- <author>
- <firstname>Annelise</firstname>
-
- <surname>Anderson</surname>
-
- <affiliation>
- <address><email>andrsn@andrsn.stanford.edu</email></address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>August 15, 1997</pubdate>
-
- <abstract>
- <para>Congratulations on installing FreeBSD! This introduction
- is for people new to both FreeBSD <emphasis>and</emphasis>
- Un*x&mdash;so it starts with basics. It assumes you're using
- version 2.0.5 or later of FreeBSD as distributed by BSDi
- or FreeBSD.org, your system (for now) has a single user
- (you)&mdash;and you're probably pretty good with DOS/Windows
- or OS/2.</para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>Logging in and Getting Out</title>
-
- <para>Log in (when you see <prompt
- >login:</prompt>) as a user you created during
- installation or as <firstterm>root</firstterm>. (Your FreeBSD
- installation will already have an account for root; root can go
- anywhere and do anything, including deleting essential files, so
- be careful!) The symbols &prompt.user; and &prompt.root; in the following stand for the
- prompt (yours may be different), with &prompt.user; indicating an ordinary
- user and &prompt.root; indicating root.</para>
-
- <para>To log out (and get a new <prompt
- >login:</prompt> prompt) type</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>exit</userinput>
- </screen>
- </informalexample>
-
- <para>as often as necessary. Yes, press <keysym>enter</keysym>
- after commands, and remember that Unix is
- case-sensitive&mdash;<command>exit</command>, not
- <command>EXIT</command>.</para>
-
- <para>To shut down the machine type</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/shutdown -h now</userinput>
- </screen>
- </informalexample>
-
- <para>Or to reboot type</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/shutdown -r now</userinput>
- </screen>
- </informalexample>
-
- <para>or</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/reboot</userinput>
- </screen>
- </informalexample>
-
- <para>You can also reboot with
- <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>.
- Give it a little time to do its work. This is equivalent to
- <command>/sbin/reboot</command> in recent releases of FreeBSD
- and is much, much better than hitting the reset button. You
- don't want to have to reinstall this thing, do you?</para>
- </sect1>
-
- <sect1>
- <title>Adding A User with Root Privileges</title>
-
- <para>If you didn't create any users when you installed the system
- and are thus logged in as root, you should probably create a
- user now with</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>adduser</userinput>
- </screen>
- </informalexample>
-
- <para>The first time you use adduser, it might ask for some
- defaults to save. You might want to make the default shell csh
- instead of sh, if it suggests sh as the default. Otherwise just
- press enter to accept each default. These defaults are saved in
- <filename>/etc/adduser.conf</filename>, an editable file.</para>
-
- <para>Suppose you create a user <emphasis>jack</emphasis> with
- full name <emphasis>Jack Benimble</emphasis>. Give jack a
- password if security (even kids around who might pound on the
- keyboard) is an issue. When it asks you if you want to invite
- jack into other groups, type <userinput>wheel</userinput></para>
-
- <informalexample>
- <screen>Login group is ``jack''. Invite jack into other groups: <userinput>wheel</userinput>
- </screen>
- </informalexample>
-
- <para>This will make it possible to log in as
- <emphasis>jack</emphasis> and use the <command>su</command>
- command to become root. Then you won't get scolded any more for
- logging in as root.</para>
-
- <para>You can quit <command>adduser</command> any time by typing
- <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>,
- and at the end you'll have a chance to approve your new user or
- simply type <keycap>n</keycap> for no. You might want to create
- a second new user (jill?) so that when you edit jack's login
- files, you'll have a hot spare in case something goes
- wrong.</para>
-
- <para>Once you've done this, use <command>exit</command> to get
- back to a login prompt and log in as <emphasis>jack</emphasis>.
- In general, it's a good idea to do as much work as possible as
- an ordinary user who doesn't have the power&mdash;and
- risk&mdash;of root.</para>
-
- <para>If you already created a user and you want the user to be
- able to <command>su</command> to root, you can log in as root
- and edit the file <filename>/etc/group</filename>, adding jack
- to the first line (the group wheel). But first you need to
- practice <command>vi</command>, the text editor--or use the
- simpler text editor, <command>ee</command>, installed on recent
- version of FreeBSD.</para>
-
- <para>To delete a user, use the <command>rmuser</command>
- command.</para>
- </sect1>
-
- <sect1>
- <title>Looking Around</title>
-
- <para>Logged in as an ordinary user, look around and try out some
- commands that will access the sources of help and information
- within FreeBSD.</para>
-
- <para>Here are some commands and what they do:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>id</command></term>
-
- <listitem>
- <para>Tells you who you are!</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>pwd</command></term>
-
- <listitem>
- <para>Shows you where you are&mdash;the current working
- directory.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls</command></term>
-
- <listitem>
- <para>Lists the files in the current directory.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls <option>-F</option></command></term>
-
- <listitem>
- <para>Lists the files in the current directory with a
- <literal>*</literal> after executables, a
- <literal>/</literal> after directories, and an
- <literal>@</literal> after symbolic links.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls <option>-l</option></command></term>
-
- <listitem>
- <para>Lists the files in long format&mdash;size, date,
- permissions.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls <option>-a</option></command></term>
-
- <listitem>
- <para>Lists hidden <quote>dot</quote> files with the others.
- If you're root, the <quote>dot</quote> files show up
- without the <option>-a</option> switch.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>cd</command></term>
-
- <listitem>
- <para>Changes directories. <command>cd
- <parameter>..</parameter></command> backs up one level;
- note the space after <command>cd</command>. <command>cd
- <parameter>/usr/local</parameter></command> goes there.
- <command>cd <parameter>~</parameter></command> goes to
- the home directory of the person logged in&mdash;e.g.,
- <filename>/usr/home/jack</filename>. Try <command>cd
- <parameter>/cdrom</parameter></command>, and then
- <command>ls</command>, to find out if your CDROM is
- mounted and working.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>view
- <replaceable>filename</replaceable></command></term>
-
- <listitem>
- <para>Lets you look at a file (named
- <replaceable>filename</replaceable>) without changing it.
- Try <command>view
- <parameter>/etc/fstab</parameter></command>.
- <command>:q</command> to quit.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>cat
- <replaceable>filename</replaceable></command></term>
-
- <listitem>
- <para>Displays <replaceable>filename</replaceable> on
- screen. If it's too long and you can see only the end of
- it, press <keycap>ScrollLock</keycap> and use the
- <keycap>up-arrow</keycap> to move backward; you can use
- <keycap>ScrollLock</keycap> with man pages too. Press
- <keycap>ScrollLock</keycap> again to quit scrolling. You
- might want to try <command>cat</command> on some of the
- dot files in your home directory&mdash;<command>cat
- <parameter>.cshrc</parameter></command>, <command>cat
- <parameter>.login</parameter></command>, <command>cat
- <parameter>.profile</parameter></command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>You'll notice aliases in <filename>.cshrc</filename> for
- some of the <command>ls</command> commands (they're very
- convenient). You can create other aliases by editing
- <filename>.cshrc</filename>. You can make these aliases
- available to all users on the system by putting them in the
- system-wide csh configuration file,
- <filename>/etc/csh.cshrc</filename>.</para>
- </sect1>
-
- <sect1>
- <title>Getting Help and Information</title>
-
- <para>Here are some useful sources of help.
- <replaceable>Text</replaceable> stands for something of your
- choice that you type in&mdash;usually a command or
- filename.</para>
-
- <variablelist>
- <varlistentry>
- <term><command>apropos
- <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Everything containing string
- <replaceable>text</replaceable> in the <database>whatis
- database</database>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>man
- <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>The man page for <replaceable>text</replaceable>. The
- major source of documentation for Un*x systems.
- <command>man <parameter>ls</parameter></command> will tell
- you all the ways to use the <command>ls</command> command.
- Press <keycap>Enter</keycap> to move through text,
- <keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo>
- to go back a page,
- <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo>
- to go forward, <keycap>q</keycap> or
- <keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo>
- to quit.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>which
- <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Tells you where in the user's path the command
- <replaceable>text</replaceable> is found.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>locate
- <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>All the paths where the string
- <replaceable>text</replaceable> is found.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>whatis
- <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Tells you what the command
- <replaceable>text</replaceable> does and its man page.
- Typing <command>whatis *</command> will tell you about all
- the binaries in the current directory.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>whereis
- <replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>Finds the file <replaceable>text</replaceable>, giving
- its full path.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>You might want to try using <command>whatis</command> on
- some common useful commands like <command>cat</command>,
- <command>more</command>, <command>grep</command>,
- <command>mv</command>, <command>find</command>,
- <command>tar</command>, <command>chmod</command>,
- <command>chown</command>, <command>date</command>, and
- <command>script</command>. <command>more</command> lets you
- read a page at a time as it does in DOS, e.g., <command>ls -l |
- more</command> or <command>more
- <replaceable>filename</replaceable></command>. The
- <literal>*</literal> works as a wildcard&mdash;e.g., <command>ls
- w*</command> will show you files beginning with
- <literal>w</literal>.</para>
-
- <para>Are some of these not working very well? Both
- <command>locate</command> and <command>whatis</command> depend
- on a database that's rebuilt weekly. If your machine isn't
- going to be left on over the weekend (and running FreeBSD), you
- might want to run the commands for daily, weekly, and monthly
- maintenance now and then. Run them as root and give each one
- time to finish before you start the next one, for now.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>periodic daily</userinput>
-<lineannotation>output omitted</lineannotation>
-&prompt.root; <userinput>periodic weekly</userinput>
-<lineannotation>output omitted</lineannotation>
-&prompt.root; <userinput>periodic monthly</userinput>
-<lineannotation>output omitted</lineannotation>
- </screen>
- </informalexample>
-
- <para>If you get tired of waiting, press
- <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> to
- get another <firstterm>virtual console</firstterm>, and log in
- again. After all, it's a multi-user, multi-tasking system.
- Nevertheless these commands will probably flash messages on your
- screen while they're running; you can type
- <command>clear</command> at the prompt to clear the screen.
- Once they've run, you might want to look at
- <filename>/var/mail/root</filename> and
- <filename>/var/log/messages</filename>.</para>
-
- <para>Running such commands is part of system
- administration&mdash;and as a single user of a Unix system,
- you're your own system administrator. Virtually everything you
- need to be root to do is system administration. Such
- responsibilities aren't covered very well even in those big fat
- books on Unix, which seem to devote a lot of space to pulling
- down menus in windows managers. You might want to get one of
- the two leading books on systems administration, either Evi
- Nemeth et.al.'s <citetitle>UNIX System Administration
- Handbook</citetitle> (Prentice-Hall, 1995, ISBN
- 0-13-15051-7)&mdash;the second edition with the red cover; or
- &AElig;leen Frisch's <citetitle>Essential System
- Administration</citetitle> (O'Reilly &amp; Associates, 1993,
- ISBN 0-937175-80-3). I used Nemeth.</para>
- </sect1>
-
- <sect1>
- <title>Editing Text</title>
-
- <para>To configure your system, you need to edit text files. Most
- of them will be in the <filename>/etc</filename> directory; and
- you'll need to <command>su</command> to root to be able to
- change them. You can use the easy <command>ee</command>, but in
- the long run the text editor <command>vi</command> is worth
- learning. There's an excellent tutorial on vi in
- <filename>/usr/src/contrib/nvi/docs/tutorial</filename> if you
- have that installed; otherwise you can get it by ftp to
- <hostid>ftp.cdrom.com</hostid> in the directory
- FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial.</para>
-
- <para>Before you edit a file, you should probably back it up.
- Suppose you want to edit <filename>/etc/rc.conf</filename>. You
- could just use <command>cd /etc</command> to get to the
- <filename>/etc</filename> directory and do:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cp rc.conf rc.conf.orig</userinput>
- </screen>
- </informalexample>
-
- <para>This would copy <filename>rc.conf</filename> to
- <filename>rc.conf.orig</filename>, and you could later copy
- <filename>rc.conf.orig</filename> to
- <filename>rc.conf</filename> to recover the original. But even
- better would be moving (renaming) and then copying back:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mv rc.conf rc.conf.orig</userinput>
-&prompt.root; <userinput>cp rc.conf.orig rc.conf</userinput>
- </screen>
- </informalexample>
-
- <para>because the <command>mv</command> command preserves the
- original date and owner of the file. You can now edit
- <filename>rc.conf</filename>. If you want the original back,
- you'd then <userinput>mv rc.conf rc.conf.myedit</userinput>
- (assuming you want to preserve your edited version) and
- then</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mv rc.conf.orig rc.conf</userinput></screen>
- </informalexample>
-
- <para>to put things back the way they were.</para>
-
- <para>To edit a file, type</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>vi <replaceable>filename</replaceable></userinput>
- </screen>
- </informalexample>
-
- <para>Move through the text with the arrow keys.
- <keycap>Esc</keycap> (the escape key) puts <command>vi</command>
- in command mode. Here are some commands:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>x</command></term>
-
- <listitem>
- <para>delete letter the cursor is on</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>dd</command></term>
-
- <listitem>
- <para>delete the entire line (even if it wraps on the
- screen)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>i</command></term>
-
- <listitem>
- <para>insert text at the cursor</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>a</command></term>
-
- <listitem>
- <para>insert text after the cursor</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Once you type <command>i</command> or <command>a</command>,
- you can enter text. <command>Esc</command> puts you back in
- command mode where you can type</para>
-
- <variablelist>
- <varlistentry>
- <term><command>:w</command></term>
-
- <listitem>
- <para>to write your changes to disk and continue
- editing</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>:wq</command></term>
-
- <listitem>
- <para>to write and quit</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>:q!</command></term>
-
- <listitem>
- <para>to quit without saving changes</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>/<replaceable>text</replaceable></command></term>
-
- <listitem>
- <para>to move the cursor to <replaceable>text</replaceable>;
- <command>/<keycap>Enter</keycap></command> (the enter key)
- to find the next instance of
- <replaceable>text</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>G</command></term>
-
- <listitem>
- <para>to go to the end of the file</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command><replaceable>n</replaceable>G</command></term>
-
- <listitem>
- <para>to go to line <replaceable>n</replaceable> in the
- file, where <replaceable>n</replaceable> is a
- number</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><keycombo><keycap>Ctrl</keycap><keycap>L</keycap></keycombo></term>
-
- <listitem>
- <para>to redraw the screen</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> and
- <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo></term>
-
- <listitem>
- <para>go back and forward a screen, as they do with
- <command>more</command> and <command>view</command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Practice with <command>vi</command> in your home directory by
- creating a new file with <command>vi <replaceable>filename</replaceable></command>
- and adding and deleting text, saving the file, and calling it up
- again. <command>vi</command> delivers some surprises because it's
- really quite complex, and sometimes you'll inadvertently issue a
- command that will do something you don't expect. (Some people
- actually like <command>vi</command>&mdash;it's more powerful than DOS
- EDIT&mdash;find out about the <command>:r</command> command.) Use
- <keycap>Esc</keycap> one or more times to be sure you're in command
- mode and proceed from there when it gives you trouble, save
- often with <command>:w</command>, and use <command>:q!</command> to get out
- and start over (from your last <command>:w</command>) when you need
- to.</para>
-
- <para>Now you can <command>cd</command> to <filename>/etc</filename>,
- <command>su</command> to root, use <command>vi</command> to edit the file
- <filename>/etc/group</filename>, and add a user to wheel so the
- user has root privileges. Just add a comma and the user's login
- name to the end of the first line in the file, press
- <keycap>Esc</keycap>, and use <command>:wq</command> to write the file to
- disk and quit. Instantly effective. (You didn't put a space
- after the comma, did you?)</para>
- </sect1>
-
- <sect1>
- <title>Printing Files from DOS</title>
-
- <para>At this point you probably don't have the printer working,
- so here's a way to create a file from a man page, move it to a
- floppy, and then print it from DOS. Suppose you want to read
- carefully about changing permissions on files (pretty
- important). You can use the command man chmod to read about it.
- The command</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>man chmod | col -b &gt; chmod.txt</>
- </screen>
- </informalexample>
-
- <para>will remove formatting codes and send the man page to the
- <filename>chmod.txt</filename> file instead of showing it on
- your screen. Now put a dos-formatted diskette in your floppy
- drive a, <command>su</command> to root, and type</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</>
- </screen>
- </informalexample>
-
- <para>to mount the floppy drive on
- <filename>/mnt</filename>.</para>
-
- <para>Now (you no longer need to be root, and you can type
- <command>exit</command> to get back to being user jack) you can go to
- the directory where you created chmod.txt and copy the file to
- the floppy with:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cp chmod.txt /mnt</>
- </screen>
- </informalexample>
-
- <para>and use <command>ls /mnt</command> to get a directory
- listing of <filename>/mnt</filename>, which should show the file
- <filename>chmod.txt</filename>.</para>
-
- <para>You might especially want to make a file from
- <filename>/sbin/dmesg</filename> by typing</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>/sbin/dmesg &gt; dmesg.txt</>
- </screen>
- </informalexample>
-
- <para>and copying <filename>dmesg.txt</filename> to the floppy.
- <command>/sbin/dmesg</command> is the boot log record, and it's
- useful to understand it because it shows what FreeBSD found when
- it booted up. If you ask questions on
- <email>freebsd-questions@FreeBSD.org</email> or on a USENET
- group&mdash;like <quote>FreeBSD isn't finding my tape drive,
- what do I do?</quote>&mdash;people will want to know what
- <command>dmesg</command> has to say.</para>
-
- <para>You can now dismount the floppy drive (as root) to get the
- disk out with</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/umount /mnt</>
- </screen>
- </informalexample>
-
- <para>and reboot to go to DOS. Copy these files to a DOS
- directory, call them up with DOS EDIT, Windows Notepad or
- Wordpad, or a word processor, make a minor change so the file
- has to be saved, and print as you normally would from DOS or
- Windows. Hope it works! man pages come out best if printed
- with the dos <command>print</command> command. (Copying files from
- FreeBSD to a mounted dos partition is in some cases still a
- little risky.)</para>
-
- <para>Getting the printer printing from FreeBSD involves creating
- an appropriate entry in <filename>/etc/printcap</filename> and
- creating a matching spool directory in
- <filename>/var/spool/output</filename>. If your printer is on
- <hardware>lpt0</hardware> (what dos calls <hardware>LPT1</hardware>), you may
- only need to go to <filename>/var/spool/output</filename> and
- (as root) create the directory <filename>lpd</filename> by typing:
- <command> mkdir lpd</command>, if it doesn't already exist.
- Then the printer should respond if it's turned on when the
- system is booted, and lp or lpr should send a file to the
- printer. Whether or not the file actually prints depends on
- configuring it, which is covered in the <ulink
- URL="../../handbook/handbook.html">FreeBSD handbook.</ulink></para>
- </sect1>
-
- <sect1>
- <title>Other Useful Commands</title>
-
- <variablelist>
- <varlistentry>
- <term><command>df</command></term>
-
- <listitem>
- <para>shows file space and mounted systems.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ps aux</command></term>
-
- <listitem>
- <para>shows processes running. <command>ps ax</command> is a
- narrower form.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>rm <replaceable>filename</replaceable></command></term>
-
- <listitem>
- <para>remove <replaceable>filename</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>rm -R <replaceable>dir</replaceable></command></term>
-
- <listitem>
- <para>removes a directory <replaceable>dir</replaceable> and all
- subdirectories&mdash;careful!</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>ls -R</command></term>
-
- <listitem>
- <para>lists files in the current directory and all
- subdirectories; I used a variant, <command>ls -AFR &gt;
- where.txt</command>, to get a list of all the files in
- <filename>/</filename> and (separately)
- <filename>/usr</filename> before I found better ways to
- find files.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>passwd</command></term>
-
- <listitem>
- <para>to change user's password (or root's password)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>man hier</command></term>
-
- <listitem>
- <para>man page on the Unix file system</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Use <command>find</command> to locate filename in
- <filename>/usr</filename> or any of its subdirectories
- with</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>find /usr -name "<replaceable>filename</>"</>
- </screen>
- </informalexample>
-
- <para>You can use <literal>*</literal> as a wildcard in
- <parameter>"<replaceable>filename</replaceable>"</parameter> (which should be in
- quotes). If you tell find to search in <filename>/</filename>
- instead of <filename>/usr</filename> it will look for the
- file(s) on all mounted file systems, including the CDROM and the
- dos partition.</para>
-
- <para>An excellent book that explains Unix commands and utilities
- is Abrahams &amp; Larson, <citetitle>Unix for the
- Impatient</citetitle> (2nd ed., Addison-Wesley, 1996).
- There's also a lot of Unix information on the Internet. Try the
- <ulink URL="http://www.geek-girl.com/unix.html">Unix Reference
- Desk</ulink>.</para>
- </sect1>
-
- <sect1>
- <title>Next Steps</title>
-
- <para>You should now have the tools you need to get around and
- edit files, so you can get everything up and running. There is
- a great deal of information in the FreeBSD handbook (which is
- probably on your hard drive) and <ulink
- URL="http://www.FreeBSD.org/">FreeBSD's web site</ulink>. A
- wide variety of packages and ports are on the CDROM as well
- as the web site. The handbook tells you more about how to use
- them (get the package if it exists, with <command>pkg_add
- /cdrom/packages/All/<replaceable>packagename</replaceable></command>, where
- <replaceable>packagename</replaceable> is the filename of the
- package). The cdrom has lists of the packages and ports with
- brief descriptions in <filename>cdrom/packages/index</filename>,
- <filename>cdrom/packages/index.txt</filename>, and
- <filename>cdrom/ports/index</filename>, with fuller descriptions
- in <filename>/cdrom/ports/*/*/pkg/DESCR</filename>, where the
- <literal>*</literal>s represent subdirectories of kinds of
- programs and program names respectively.</para>
-
- <para>If you find the handbook too sophisticated (what with
- <command>lndir</command> and all) on installing ports from the cdrom,
- here's what usually works:</para>
-
- <para>Find the port you want, say <command>kermit</command>. There will
- be a directory for it on the cdrom. Copy the subdirectory to
- <filename>/usr/local</filename> (a good place for software you
- add that should be available to all users) with:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</>
- </screen>
- </informalexample>
-
- <para>This should result in a
- <filename>/usr/local/kermit</filename> subdirectory that has all
- the files that the <command>kermit</command> subdirectory on the
- CDROM has.</para>
-
- <para>Next, create the directory
- <filename>/usr/ports/distfiles</filename> if it doesn't already
- exist using <command>mkdir</command>. Now check check
- <filename>/cdrom/ports/distfiles</filename> for a file with a
- name that indicates it's the port you want. Copy that file to
- <filename>/usr/ports/distfiles</filename>; in recent versions
- you can skip this step, as FreeBSD will do it for you. In the
- case of <command>kermit</command>, there is no distfile.</para>
-
- <para>Then <command>cd</command> to the subdirectory of
- <filename>/usr/local/kermit</filename> that has the file
- <filename>Makefile</filename>. Type</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make all install</>
- </screen>
- </informalexample>
-
- <para>During this process the port will ftp to get any compressed
- files it needs that it didn't find on the cdrom or in
- <filename>/usr/ports/distfiles</filename>. If you don't have
- your network running yet and there was no file for the port in
- <filename>/cdrom/ports/distfiles</filename>, you will have to
- get the distfile using another machine and copy it to
- <filename>/usr/ports/distfiles</filename> from a floppy or your
- dos partition. Read <filename>Makefile</filename> (with <command>cat</command>
- or <command>more</command> or <command>view</command>) to find out where to go
- (the master distribution site) to get the file and what its name
- is. Its name will be truncated when downloaded to DOS, and
- after you get it into <filename>/usr/ports/distfiles</filename>
- you'll have to rename it (with the <command>mv</command> command) to
- its original name so it can be found. (Use binary file
- transfers!) Then go back to
- <filename>/usr/local/kermit</filename>, find the directory with
- <filename>Makefile</filename>, and type <command>make all
- install</command>.</para>
-
- <para>The other thing that happens when installing ports or
- packages is that some other program is needed. If the
- installation stops with a message <errorname>can't find
- unzip</errorname> or whatever, you might need to install the
- package or port for unzip before you continue.</para>
-
- <para>Once it's installed type <command>rehash</command> to make FreeBSD
- reread the files in the path so it knows what's there. (If you
- get a lot of <errorname>path not found</errorname> messages when you use
- <command>whereis</command> or which, you might want to make additions
- to the list of directories in the path statement in
- <filename>.cshrc</filename> in your home directory. The path
- statement in Unix does the same kind of work it does in DOS,
- except the current directory is not (by default) in the path for
- security reasons; if the command you want is in the directory
- you're in, you need to type <filename>./</filename> before the
- command to make it work; no space after the slash.)</para>
-
- <para>You might want to get the most recent version of Netscape
- from their <ulink URL="ftp://ftp.netscape.com">ftp site</ulink>.
- (Netscape requires the X Window System.) There's now a FreeBSD
- version, so look around carefully. Just use <command>gunzip
- <replaceable>filename</replaceable></command> and <command>tar xvf
- <replaceable>filename</replaceable></command> on it, move the binary to
- <filename>/usr/local/bin</filename> or some other place binaries
- are kept, <command>rehash</command>, and then put the following lines
- in <filename>.cshrc</filename> in each user's home directory or
- (easier) in <filename>/etc/csh.cshrc</filename>, the
- system-wide csh start-up file:</para>
-
- <informalexample>
- <programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
-setenv XNLSPATH /usr/X11R6/lib/X11/nls</programlisting>
- </informalexample>
-
- <para>This assumes that the file <filename>XKeysymDB</filename> and the
- directory <filename>nls</filename> are in
- <filename>/usr/X11R6/lib/X11</filename>; if they're not, find
- them and put them there.</para>
-
- <para>If you originally got Netscape as a port using the CDROM (or
- ftp), don't replace <filename>/usr/local/bin/netscape</filename>
- with the new netscape binary; this is just a shell script that
- sets up the environment variables for you. Instead rename the
- new binary to <filename>netscape.bin</filename> and replace the
- old binary, which is
- <filename>/usr/local/netscape/netscape</filename>.</para>
- </sect1>
-
- <sect1>
- <title>Your Working Environment</title>
-
- <para>Your shell is the most important part of your working
- environment. In DOS, the usual shell is command.com. The shell
- is what interprets the commands you type on the command line,
- and thus communicates with the rest of the operating system.
- You can also write shell scripts, which are like DOS batch
- files: a series of commands to be run without your
- intervention.</para>
-
- <para>Two shells come installed with FreeBSD: csh and sh. csh is
- good for command-line work, but scripts should be written with
- sh (or bash). You can find out what shell you have by typing
- <command>echo $SHELL</command>.</para>
-
- <para>The csh shell is okay, but tcsh does everything csh does and
- more. It It allows you to recall commands with the arrow keys
- and edit them. It has tab-key completion of filenames (csh uses
- the escape key), and it lets you switch to the directory you
- were last in with <command>cd -</command>. It's also much
- easier to alter your prompt with tcsh. It makes life a lot
- easier.</para>
-
- <para>Here are the three steps for installing a new shell:</para>
-
- <procedure>
- <step>
- <para>Install the shell as a port or a package, just as you
- would any other port or package. Use
- <command>rehash</command> and <command>which tcsh</command>
- (assuming you're installing tcsh) to make sure it got
- installed.</para>
- </step>
-
- <step>
- <para>As root, edit <filename>/etc/shells</filename>, adding a
- line in the file for the new shell, in this case
- /usr/local/bin/tcsh, and save the file. (Some ports may do
- this for you.)</para>
- </step>
-
- <step>
- <para>Use the <command>chsh</command> command to change your
- shell to tcsh permanently, or type <command>tcsh</command>
- at the prompt to change your shell without logging in
- again.</para>
- </step>
- </procedure>
-
- <note>
- <para>It can be dangerous to change root's shell to something
- other than sh or csh on early versions of FreeBSD and many
- other versions of Unix; you may not have a working shell when
- the system puts you into single user mode. The solution is to
- use <command>su -m</command> to become root, which will give
- you the tcsh as root, because the shell is part of the
- environment. You can make this permanent by adding it to your
- <filename>.tcshrc</filename> file as an alias with
- <programlisting>alias su su -m.</programlisting></para>
- </note>
-
- <para>When tcsh starts up, it will read the
- <filename>/etc/csh.cshrc</filename> and
- <filename>/etc/csh.login</filename> files, as does csh. It will
- also read the <filename>.login</filename> file in your home
- directory and the <filename>.cshrc</filename> file as well,
- unless you provide a <filename>.tcshrc</filename> file. This
- you can do by simply copying <filename>.cshrc</filename> to
- <filename>.tcshrc</filename>.</para>
-
- <para>Now that you've installed tcsh, you can adjust your prompt.
- You can find the details in the manual page for tcsh, but here
- is a line to put in your <filename>.tcshrc</filename> that will
- tell you how many commands you have typed, what time it is, and
- what directory you are in. It also produces a
- <literal>></literal> if you're an ordinary user and a
- <literal>#</literal> if you're root, but tsch will do that in
- any case:</para>
-
- <para>set prompt = "%h %t %~ %# "</para>
-
- <para>This should go in the same place as the existing set prompt
- line if there is one, or under "if($?prompt) then" if not.
- Comment out the old line; you can always switch back to it if
- you prefer it. Don't forget the spaces and quotes. You can get
- the <filename>.tcshrc</filename> reread by typing
- <command>source .tcshrc</command>.</para>
-
- <para>You can get a listing of other environmental variables that
- have been set by typing <command>env</command> at the prompt.
- The result will show you your default editor, pager, and
- terminal type, among possibly many others. A useful command if
- you log in from a remote location and can't run a program
- because the terminal isn't capable is <command>setenv TERM
- vt100</command>.</para>
- </sect1>
-
- <sect1>
- <title>Other</title>
-
- <para>As root, you can dismount the CDROM with
- <command>/sbin/umount /cdrom</command>, take it out of the drive,
- insert another one, and mount it with
- <command>/sbin/mount_cd9660 /dev/cd0a /cdrom</command> assuming
- <hardware>cd0a</hardware> is the device name for your CDROM drive. The
- most recent versions of FreeBSD let you mount the cdrom with
- just <command>/sbin/mount /cdrom</command>.</para>
-
- <para>Using the live file system&mdash;the second of FreeBSD's
- CDROM disks&mdash;is useful if you've got limited space. What
- is on the live file system varies from release to release. You
- might try playing games from the cdrom. This involves using
- <command>lndir</command>, which gets installed with the X Window
- System, to tell the program(s) where to find the necessary
- files, because they're in the <filename>/cdrom</filename> file
- system instead of in <filename>/usr</filename> and its
- subdirectories, which is where they're expected to be. Read
- <command>man lndir</command>.</para>
- </sect1>
-
- <sect1>
- <title>Comments Welcome</title>
-
- <para>If you use this guide I'd be interested in knowing where it
- was unclear and what was left out that you think should be
- included, and if it was helpful. My thanks to Eugene W. Stark,
- professor of computer science at SUNY-Stony Brook, and John
- Fieber for helpful comments.</para>
-
- <para>Annelise Anderson,
- <email>andrsn@andrsn.stanford.edu</email></para>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/programming-tools/Makefile b/en_US.ISO8859-1/articles/programming-tools/Makefile
deleted file mode 100644
index 886e21cc9d..0000000000
--- a/en_US.ISO8859-1/articles/programming-tools/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD$
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/programming-tools/article.sgml b/en_US.ISO8859-1/articles/programming-tools/article.sgml
deleted file mode 100644
index eabcea2da8..0000000000
--- a/en_US.ISO8859-1/articles/programming-tools/article.sgml
+++ /dev/null
@@ -1,2256 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/programming-tools/article.sgml,v 1.14 2001/04/09 00:33:41 dd Exp $ -->
-<!-- The FreeBSD Documentation Project -->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
-<article>
- <articleinfo>
- <title>A User's Guide to FreeBSD Programming Tools</title>
-
- <authorgroup>
- <author>
- <firstname>James</firstname>
-
- <surname>Raynard</surname>
-
- <affiliation>
- <address>
- <email>jraynard@FreeBSD.org</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>August 17, 1997</pubdate>
-
- <copyright>
- <year>1997</year>
- <holder>James Raynard</holder>
- </copyright>
-
- <abstract>
- <para>This document is an introduction to using some of the
- programming tools supplied with FreeBSD, although much of it
- will be applicable to many other versions of Unix. It does
- <emphasis>not</emphasis> attempt to describe coding in any
- detail. Most of the document assumes little or no previous
- programming knowledge, although it is hoped that most
- programmers will find something of value in it</para>
- </abstract>
- </articleinfo>
-
- <sect1>
- <title>Introduction<anchor id=foo></title>
-
- <para>FreeBSD offers an excellent development environment.
- Compilers for C, C++, and Fortran and an assembler come with the
- basic system, not to mention a Perl interpreter and classic Unix
- tools such as <command>sed</command> and <command>awk</command>. If that is
- not enough, there are many more compilers and interpreters in
- the Ports collection. FreeBSD is very compatible with standards
- such as <acronym>POSIX</acronym> and <acronym>ANSI</acronym> C, as well with
- its own BSD heritage, so it is possible to write applications
- that will compile and run with little or no modification on a
- wide range of platforms.</para>
-
- <para>However, all this power can be rather overwhelming at first
- if you've never written programs on a Unix platform before.
- This document aims to help you get up and running, without
- getting too deeply into more advanced topics. The intention is
- that this document should give you enough of the basics to be
- able to make some sense of the documentation.</para>
-
- <para>Most of the document requires little or no knowledge of
- programming, although it does assume a basic competence with
- using Unix and a willingness to learn!</para>
- </sect1>
-
- <sect1>
- <title>Introduction to Programming</title>
-
- <para>A program is a set of instructions that tell the computer to
- do various things; sometimes the instruction it has to perform
- depends on what happened when it performed a previous
- instruction. This section gives an overview of the two main
- ways in which you can give these instructions, or
- <quote>commands</quote> as they are usually called. One way
- uses an <firstterm>interpreter</firstterm>, the other a
- <firstterm>compiler</firstterm>. As human languages are too difficult for
- a computer to understand in an unambiguous way, commands are
- usually written in one or other languages specially designed for
- the purpose.</para>
-
- <sect2>
- <title>Interpreters</title>
-
- <para>With an interpreter, the language comes as an environment,
- where you type in commands at a prompt and the environment
- executes them for you. For more complicated programs, you can
- type the commands into a file and get the interpreter to load
- the file and execute the commands in it. If anything goes
- wrong, many interpreters will drop you into a debugger to help
- you track down the problem.</para>
-
- <para>The advantage of this is that you can see the results of
- your commands immediately, and mistakes can be corrected
- readily. The biggest disadvantage comes when you want to
- share your programs with someone. They must have the same
- interpreter, or you must have some way of giving it to them,
- and they need to understand how to use it. Also users may not
- appreciate being thrown into a debugger if they press the
- wrong key! From a performance point of view, interpreters can
- use up a lot of memory, and generally do not generate code as
- efficiently as compilers.</para>
-
- <para>In my opinion, interpreted languages are the best way to
- start if you have not done any programming before. This kind
- of environment is typically found with languages like Lisp,
- Smalltalk, Perl and Basic. It could also be argued that the
- Unix shell (<command>sh</command>, <command>csh</command>) is itself an
- interpreter, and many people do in fact write shell
- <quote>scripts</quote> to help with various
- <quote>housekeeping</quote> tasks on their machine. Indeed, part
- of the original Unix philosophy was to provide lots of small
- utility programs that could be linked together in shell
- scripts to perform useful tasks.</para>
- </sect2>
-
- <sect2>
- <title>Interpreters available with FreeBSD</title>
-
- <para>Here is a list of interpreters that are available as
- <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/">FreeBSD
- packages</ulink>, with a brief discussion of some of the
- more popular interpreted languages.</para>
-
- <para>To get one of these packages, all you need to do is to
- click on the hotlink for the package, then run</para>
-
- <screen>&prompt.root; <userinput>pkg_add <replaceable>package name</></userinput>
- </screen>
-
- <para>as root. Obviously, you will need to have a fully
- functional FreeBSD 2.1.0 or later system for the package to
- work!</para>
-
- <variablelist>
- <varlistentry>
- <term><acronym>BASIC</acronym></term>
-
- <listitem>
- <para>Short for Beginner's All-purpose Symbolic
- Instruction Code. Developed in the 1950s for teaching
- University students to program and provided with every
- self-respecting personal computer in the 1980s,
- <acronym>BASIC</acronym> has been the first programming
- language for many programmers. It's also the foundation
- for Visual Basic.</para>
-
- <para>The <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/bwbasic-2.10.tgz">Bywater
- Basic Interpreter</ulink> and the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/pbasic-2.0.tgz">Phil
- Cockroft's Basic Interpreter</ulink> (formerly Rabbit
- Basic) are available as FreeBSD <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/">FreeBSD
- packages</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Lisp</term>
-
- <listitem>
- <para>A language that was developed in the late 1950s as
- an alternative to the <quote>number-crunching</quote>
- languages that were popular at the time. Instead of
- being based on numbers, Lisp is based on lists; in fact
- the name is short for <quote>List Processing</quote>.
- Very popular in AI (Artificial Intelligence)
- circles.</para>
-
- <para>Lisp is an extremely powerful and sophisticated
- language, but can be rather large and unwieldy.</para>
-
- <para>FreeBSD has <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/gcl-2.0.tgz">GNU
- Common Lisp</ulink> available as a package.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Perl</term>
-
- <listitem>
- <para>Very popular with system administrators for writing
- scripts; also often used on World Wide Web servers for
- writing <acronym>CGI</acronym> scripts.</para>
-
- <para>The latest version (version 5) comes with FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Scheme</term>
-
- <listitem>
- <para>A dialect of Lisp that is rather more compact and
- cleaner than Common Lisp. Popular in Universities as it
- is simple enough to teach to undergraduates as a first
- language, while it has a high enough level of
- abstraction to be used in research work.</para>
-
- <para>FreeBSD has packages of the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/elk-3.0.tgz">Elk
- Scheme Interpreter</ulink>, the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/mit-scheme-7.3.tgz">MIT
- Scheme Interpreter</ulink> and the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/scm-4e1.tgz">SCM
- Scheme Interpreter</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Icon</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/icon-9.0.tgz">The
- Icon Programming Language</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Logo</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/ucblogo-3.3.tgz">Brian
- Harvey's LOGO Interpreter</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Python</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/python-1.2">The
- Python Object-Oriented Programming
- Language</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Compilers</title>
-
- <para>Compilers are rather different. First of all, you write
- your code in a file (or files) using an editor. You then run
- the compiler and see if it accepts your program. If it did
- not compile, grit your teeth and go back to the editor; if it
- did compile and gave you a program, you can run it either at a
- shell command prompt or in a debugger to see if it works
- properly.
-
- <footnote>
- <para>If you run it in the shell, you may get a core
- dump.</para>
- </footnote></para>
-
- <para>Obviously, this is not quite as direct as using an
- interpreter. However it allows you to do a lot of things
- which are very difficult or even impossible with an
- interpreter, such as writing code which interacts closely with
- the operating system&mdash;or even writing your own operating
- system! It's also useful if you need to write very efficient
- code, as the compiler can take its time and optimise the code,
- which would not be acceptable in an interpreter. And
- distributing a program written for a compiler is usually more
- straightforward than one written for an interpreter&mdash;you
- can just give them a copy of the executable, assuming they
- have the same operating system as you.</para>
-
- <para>Compiled languages include Pascal, C and C++. C and C++
- are rather unforgiving languages, and best suited to more
- experienced programmers; Pascal, on the other hand, was
- designed as an educational language, and is quite a good
- language to start with. Unfortunately, FreeBSD doesn't have
- any Pascal support, except for a Pascal-to-C converter in the
- ports.</para>
-
- <para>As the edit-compile-run-debug cycle is rather tedious when
- using separate programs, many commercial compiler makers have
- produced Integrated Development Environments
- (<acronym>IDE</acronym>s for short). FreeBSD does not have an
- <acronym>IDE</acronym> as such; however it is possible to use Emacs
- for this purpose. This is discussed in <xref
- linkend="emacs">.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Compiling with <command>cc</command></title>
-
- <para>This section deals only with the GNU compiler for C and C++,
- since that comes with the base FreeBSD system. It can be
- invoked by either <command>cc</command> or <command>gcc</command>. The
- details of producing a program with an interpreter vary
- considerably between interpreters, and are usually well covered
- in the documentation and on-line help for the
- interpreter.</para>
-
- <para>Once you've written your masterpiece, the next step is to
- convert it into something that will (hopefully!) run on FreeBSD.
- This usually involves several steps, each of which is done by a
- separate program.</para>
-
- <procedure>
- <step>
- <para>Pre-process your source code to remove comments and do
- other tricks like expanding macros in C.</para>
- </step>
-
- <step>
- <para>Check the syntax of your code to see if you have obeyed
- the rules of the language. If you have not, it will
- complain!</para>
- </step>
-
- <step>
- <para>Convert the source code into assembly
- language&mdash;this is very close to machine code, but still
- understandable by humans. Allegedly.
-
- <footnote>
- <para>To be strictly accurate, <command>cc</command> converts the
- source code into its own, machine-independent
- <firstterm>p-code</firstterm> instead of assembly language at
- this stage.</para>
- </footnote></para>
- </step>
-
- <step>
- <para>Convert the assembly language into machine
- code&mdash;yep, we are talking bits and bytes, ones and
- zeros here.</para>
- </step>
-
- <step>
- <para>Check that you have used things like functions and
- global variables in a consistent way. For example, if you
- have called a non-existent function, it will
- complain.</para>
- </step>
-
- <step>
- <para>If you are trying to produce an executable from several
- source code files, work out how to fit them all
- together.</para>
- </step>
-
- <step>
- <para>Work out how to produce something that the system's
- run-time loader will be able to load into memory and
- run.</para>
- </step>
-
- <step>
- <para>Finally, write the executable on the file system.</para>
- </step>
- </procedure>
-
- <para>The word <firstterm>compiling</firstterm> is often used to refer to
- just steps 1 to 4&mdash;the others are referred to as
- <firstterm>linking</firstterm>. Sometimes step 1 is referred to as
- <firstterm>pre-processing</firstterm> and steps 3-4 as
- <firstterm>assembling</firstterm>.</para>
-
- <para>Fortunately, almost all this detail is hidden from you, as
- <command>cc</command> is a front end that manages calling all these
- programs with the right arguments for you; simply typing</para>
-
- <screen>&prompt.user; <userinput>cc foobar.c</>
- </screen>
-
- <para>will cause <filename>foobar.c</filename> to be compiled by all the
- steps above. If you have more than one file to compile, just do
- something like</para>
-
- <screen>&prompt.user; <userinput>cc foo.c bar.c</>
- </screen>
-
- <para>Note that the syntax checking is just that&mdash;checking
- the syntax. It will not check for any logical mistakes you may
- have made, like putting the program into an infinite loop, or
- using a bubble sort when you meant to use a binary
- sort.
-
- <footnote>
- <para>In case you didn't know, a binary sort is an efficient
- way of sorting things into order and a bubble sort
- isn't.</para>
- </footnote></para>
-
- <para>There are lots and lots of options for <command>cc</command>, which
- are all in the man page. Here are a few of the most important
- ones, with examples of how to use them.</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-o <replaceable>filename</replaceable></option></term>
-
- <listitem>
- <para>The output name of the file. If you do not use this
- option, <command>cc</command> will produce an executable called
- <filename>a.out</filename>.
-
- <footnote>
- <para>The reasons for this are buried in the mists of
- history.</para>
- </footnote></para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc foobar.c</> <lineannotation>executable is <filename>a.out</></>
-&prompt.user; <userinput>cc -o foobar foobar.c</> <lineannotation>executable is <filename>foobar</></>
- </screen>
- </informalexample>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>Just compile the file, do not link it. Useful for toy
- programs where you just want to check the syntax, or if
- you are using a <filename>Makefile</filename>.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -c foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce an <firstterm>object file</firstterm> (not an
- executable) called <filename>foobar.o</filename>. This
- can be linked together with other object files into an
- executable.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-g</option></term>
-
- <listitem>
- <para>Create a debug version of the executable. This makes
- the compiler put information into the executable about
- which line of which source file corresponds to which
- function call. A debugger can use this information to show
- the source code as you step through the program, which is
- <emphasis>very</emphasis> useful; the disadvantage is that
- all this extra information makes the program much bigger.
- Normally, you compile with <option>-g</option> while you
- are developing a program and then compile a <quote>release
- version</quote> without <option>-g</option> when you're
- satisfied it works properly.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -g foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce a debug version of the
- program.
-
- <footnote>
- <para>Note, we didn't use the <option>-o</option> flag
- to specify the executable name, so we will get an
- executable called <filename>a.out</filename>.
- Producing a debug version called
- <filename>foobar</filename> is left as an exercise for
- the reader!</para>
- </footnote></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-O</option></term>
-
- <listitem>
- <para>Create an optimised version of the executable. The
- compiler performs various clever tricks to try and produce
- an executable that runs faster than normal. You can add a
- number after the <option>-O</option> to specify a higher
- level of optimisation, but this often exposes bugs in the
- compiler's optimiser. For instance, the version of
- <command>cc</command> that comes with the 2.1.0 release of
- FreeBSD is known to produce bad code with the
- <option>-O2</option> option in some circumstances.</para>
-
- <para>Optimisation is usually only turned on when compiling
- a release version.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce an optimised version of
- <filename>foobar</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The following three flags will force <command>cc</command>
- to check that your code complies to the relevant international
- standard, often referred to as the <acronym>ANSI</acronym>
- standard, though strictly speaking it is an
- <acronym>ISO</acronym> standard.</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-Wall</option></term>
-
- <listitem>
- <para>Enable all the warnings which the authors of
- <command>cc</command> believe are worthwhile. Despite the
- name, it will not enable all the warnings
- <command>cc</command> is capable of.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-ansi</option></term>
-
- <listitem>
- <para>Turn off most, but not all, of the
- non-<acronym>ANSI</acronym>&nbsp;C features provided by
- <command>cc</command>. Despite the name, it does not
- guarantee strictly that your code will comply to the
- standard.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-pedantic</option></term>
-
- <listitem>
- <para>Turn off <emphasis>all</emphasis>
- <command>cc</command>'s non-<acronym>ANSI</acronym>&nbsp;C
- features.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Without these flags, <command>cc</command> will allow you to
- use some of its non-standard extensions to the standard. Some
- of these are very useful, but will not work with other
- compilers&mdash;in fact, one of the main aims of the standard is
- to allow people to write code that will work with any compiler
- on any system. This is known as <firstterm>portable
- code</firstterm>.</para>
-
- <para>Generally, you should try to make your code as portable as
- possible, as otherwise you may have to completely re-write the
- program later to get it to work somewhere else&mdash;and who
- knows what you may be using in a few years time?</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce an executable <filename>foobar</filename>
- after checking <filename>foobar.c</filename> for standard
- compliance.</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-l<replaceable>library</replaceable></option></term>
-
- <listitem>
- <para>Specify a function library to be used during when
- linking.</para>
-
- <para>The most common example of this is when compiling a
- program that uses some of the mathematical functions in C.
- Unlike most other platforms, these are in a separate
- library from the standard C one and you have to tell the
- compiler to add it.</para>
-
- <para>The rule is that if the library is called
- <filename>lib<replaceable>something</replaceable>.a</filename>,
- you give <command>cc</command> the argument
- <option>-l<replaceable>something</replaceable></option>.
- For example, the math library is
- <filename>libm.a</filename>, so you give
- <command>cc</command> the argument <option>-lm</option>.
- A common <quote>gotcha</quote> with the math library is
- that it has to be the last library on the command
- line.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput>
- </screen>
- </informalexample>
-
- <para>This will link the math library functions into
- <filename>foobar</filename>.</para>
-
- <para>If you are compiling C++ code, you need to add
- <option>-lg++</option>, or <option>-lstdc++</option> if
- you are using FreeBSD 2.2 or later, to the command line
- argument to link the C++ library functions.
- Alternatively, you can run <command>c++</command> instead
- of <command>cc</command>, which does this for you.
- <command>c++</command> can also be invoked as
- <command>g++</command> on FreeBSD.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>For FreeBSD 2.1.6 and earlier</>
-&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>For FreeBSD 2.2 and later</>
-&prompt.user; <userinput>c++ -o foobar foobar.cc</userinput>
- </screen>
- </informalexample>
-
- <para>Each of these will both produce an executable
- <filename>foobar</filename> from the C++ source file
- <filename>foobar.cc</filename>. Note that, on Unix
- systems, C++ source files traditionally end in
- <filename>.C</filename>, <filename>.cxx</filename> or
- <filename>.cc</filename>, rather than the
- MS-DOS style
- <filename>.cpp</filename> (which was already used for
- something else). <command>gcc</command> used to rely on
- this to work out what kind of compiler to use on the
- source file; however, this restriction no longer applies,
- so you may now call your C++ files
- <filename>.cpp</filename> with impunity!</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <sect2>
- <title>Common <command>cc</command> Queries and Problems</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>I am trying to write a program which uses the
- <function>sin()</function> function and I get an error
- like this. What does it mean?</para>
-
- <informalexample>
- <screen>/var/tmp/cc0143941.o: Undefined symbol `_sin' referenced from text segment
- </screen>
- </informalexample>
- </question>
-
- <answer>
- <para>When using mathematical functions like
- <function>sin()</function>, you have to tell
- <command>cc</command> to link in the math library, like
- so:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput>
- </screen>
- </informalexample>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>All right, I wrote this simple program to practice
- using <option>-lm</option>. All it does is raise 2.1 to
- the power of 6.</para>
-
- <informalexample>
- <programlisting>#include &lt;stdio.h&gt;
-
-int main() {
- float f;
-
- f = pow(2.1, 6);
- printf("2.1 ^ 6 = %f\n", f);
- return 0;
-}
- </programlisting>
- </informalexample>
-
- <para>and I compiled it as:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc temp.c -lm</userinput>
- </screen>
- </informalexample>
-
- <para>like you said I should, but I get this when I run
- it:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>./a.out</userinput>
-2.1 ^ 6 = 1023.000000
- </screen>
- </informalexample>
-
- <para>This is <emphasis>not</emphasis> the right answer!
- What is going on?</para>
- </question>
-
- <answer>
- <para>When the compiler sees you call a function, it
- checks if it has already seen a prototype for it. If it
- has not, it assumes the function returns an
- <type>int</type>, which is definitely not what you want
- here.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>So how do I fix this?</para>
- </question>
-
- <answer>
- <para>The prototypes for the mathematical functions are in
- <filename>math.h</filename>. If you include this file,
- the compiler will be able to find the prototype and it
- will stop doing strange things to your
- calculation!</para>
-
- <informalexample>
- <programlisting>#include &lt;math.h&gt;
-#include &lt;stdio.h&gt;
-
-int main() {
-...
- </programlisting>
- </informalexample>
-
- <para>After recompiling it as you did before, run
- it:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>./a.out</userinput>
-2.1 ^ 6 = 85.766121
- </screen>
- </informalexample>
-
- <para>If you are using any of the mathematical functions,
- <emphasis>always</emphasis> include
- <filename>math.h</filename> and remember to link in the
- math library.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I compiled a file called
- <filename>foobar.c</filename> and I cannot find an
- executable called <filename>foobar</filename>. Where's
- it gone?</para>
- </question>
-
- <answer>
- <para>Remember, <command>cc</command> will call the
- executable <filename>a.out</filename> unless you tell it
- differently. Use the
- <option>-o&nbsp;<replaceable>filename</replaceable></option>
- option:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.c</userinput>
- </screen>
- </informalexample>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>OK, I have an executable called
- <filename>foobar</filename>, I can see it when I run
- <command>ls</command>, but when I type in
- <command>foobar</command> at the command prompt it tells
- me there is no such file. Why can it not find
- it?</para>
- </question>
-
- <answer>
- <para>Unlike MS-DOS, Unix does not
- look in the current directory when it is trying to find
- out which executable you want it to run, unless you tell
- it to. Either type <command>./foobar</command>, which
- means <quote>run the file called
- <filename>foobar</filename> in the current
- directory</quote>, or change your <envar
- >PATH</envar> environment
- variable so that it looks something like</para>
-
- <informalexample>
- <screen>bin:/usr/bin:/usr/local/bin:.
- </screen>
- </informalexample>
-
- <para>The dot at the end means <quote>look in the current
- directory if it is not in any of the
- others</quote>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I called my executable <filename>test</filename>,
- but nothing happens when I run it. What is going
- on?</para>
- </question>
-
- <answer>
- <para>Most Unix systems have a program called
- <command>test</command> in <filename>/usr/bin</filename>
- and the shell is picking that one up before it gets to
- checking the current directory. Either type:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>./test</userinput>
- </screen>
- </informalexample>
-
- <para>or choose a better name for your program!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I compiled my program and it seemed to run all right
- at first, then there was an error and it said something
- about <errorname>core dumped</errorname>. What does that
- mean?</para>
- </question>
-
- <answer>
- <para>The name <firstterm>core dump</firstterm> dates back
- to the very early days of Unix, when the machines used
- core memory for storing data. Basically, if the program
- failed under certain conditions, the system would write
- the contents of core memory to disk in a file called
- <filename>core</filename>, which the programmer could
- then pore over to find out what went wrong.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Fascinating stuff, but what I am supposed to do
- now?</para>
- </question>
-
- <answer>
- <para>Use <command>gdb</command> to analyse the core (see
- <xref linkend="debugging">).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>When my program dumped core, it said something about
- a <errorname>segmentation fault</errorname>. What's
- that?</para>
- </question>
-
- <answer>
- <para>This basically means that your program tried to
- perform some sort of illegal operation on memory; Unix
- is designed to protect the operating system and other
- programs from rogue programs.</para>
-
- <para>Common causes for this are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Trying to write to a <symbol>NULL</symbol>
- pointer, eg</para>
-
- <programlisting>char *foo = NULL;
-strcpy(foo, "bang!");
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Using a pointer that hasn't been initialised,
- eg</para>
-
- <programlisting>char *foo;
-strcpy(foo, "bang!");
- </programlisting>
-
- <para>The pointer will have some random value that,
- with luck, will point into an area of memory that
- isn't available to your program and the kernel will
- kill your program before it can do any damage. If
- you're unlucky, it'll point somewhere inside your
- own program and corrupt one of your data structures,
- causing the program to fail mysteriously.</para>
- </listitem>
-
- <listitem>
- <para>Trying to access past the end of an array,
- eg</para>
-
- <programlisting>int bar[20];
-bar[27] = 6;
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Trying to store something in read-only memory,
- eg</para>
-
- <programlisting>char *foo = "My string";
-strcpy(foo, "bang!");
- </programlisting>
-
- <para>Unix compilers often put string literals like
- <literal>"My string"</literal> into read-only areas
- of memory.</para>
- </listitem>
-
- <listitem>
- <para>Doing naughty things with
- <function>malloc()</function> and
- <function>free()</function>, eg</para>
-
- <programlisting>char bar[80];
-free(bar);
- </programlisting>
-
- <para>or</para>
-
- <programlisting>char *foo = malloc(27);
-free(foo);
-free(foo);
- </programlisting>
- </listitem>
- </itemizedlist>
-
- <para>Making one of these mistakes will not always lead to
- an error, but they are always bad practice. Some
- systems and compilers are more tolerant than others,
- which is why programs that ran well on one system can
- crash when you try them on an another.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Sometimes when I get a core dump it says
- <errorname>bus error</errorname>. It says in my Unix
- book that this means a hardware problem, but the
- computer still seems to be working. Is this
- true?</para>
- </question>
-
- <answer>
- <para>No, fortunately not (unless of course you really do
- have a hardware problem&hellip;). This is usually
- another way of saying that you accessed memory in a way
- you shouldn't have.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>This dumping core business sounds as though it could
- be quite useful, if I can make it happen when I want to.
- Can I do this, or do I have to wait until there's an
- error?</para>
- </question>
-
- <answer>
- <para>Yes, just go to another console or xterm, do</para>
-
- <screen>&prompt.user; <userinput>ps</userinput>
- </screen>
-
- <para>to find out the process ID of your program, and
- do</para>
-
- <screen>&prompt.user; <userinput>kill -ABRT <replaceable>pid</replaceable></userinput>
- </screen>
-
- <para>where
- <parameter><replaceable>pid</replaceable></parameter> is
- the process ID you looked up.</para>
-
- <para>This is useful if your program has got stuck in an
- infinite loop, for instance. If your program happens to
- trap <symbol>SIGABRT</symbol>, there are several other
- signals which have a similar effect.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Make</title>
-
- <sect2>
- <title>What is <command>make</command>?</title>
-
- <para>When you're working on a simple program with only one or
- two source files, typing in</para>
-
- <screen>&prompt.user; <userinput>cc file1.c file2.c</userinput>
- </screen>
-
- <para>is not too bad, but it quickly becomes very tedious when
- there are several files&mdash;and it can take a while to
- compile, too.</para>
-
- <para>One way to get around this is to use object files and only
- recompile the source file if the source code has changed. So
- we could have something like:</para>
-
- <screen>&prompt.user; <userinput>cc file1.o file2.o</userinput> &hellip; <userinput>file37.c</userinput> &hellip
- </screen>
-
- <para>if we'd changed <filename>file37.c</filename>, but not any
- of the others, since the last time we compiled. This may
- speed up the compilation quite a bit, but doesn't solve the
- typing problem.</para>
-
- <para>Or we could write a shell script to solve the typing
- problem, but it would have to re-compile everything, making it
- very inefficient on a large project.</para>
-
- <para>What happens if we have hundreds of source files lying
- about? What if we're working in a team with other people who
- forget to tell us when they've changed one of their source
- files that we use?</para>
-
- <para>Perhaps we could put the two solutions together and write
- something like a shell script that would contain some kind of
- magic rule saying when a source file needs compiling. Now all
- we need now is a program that can understand these rules, as
- it's a bit too complicated for the shell.</para>
-
- <para>This program is called <command>make</command>. It reads
- in a file, called a <firstterm>makefile</firstterm>, that
- tells it how different files depend on each other, and works
- out which files need to be re-compiled and which ones don't.
- For example, a rule could say something like <quote>if
- <filename>fromboz.o</filename> is older than
- <filename>fromboz.c</filename>, that means someone must have
- changed <filename>fromboz.c</filename>, so it needs to be
- re-compiled.</quote> The makefile also has rules telling
- make <emphasis>how</emphasis> to re-compile the source file,
- making it a much more powerful tool.</para>
-
- <para>Makefiles are typically kept in the same directory as the
- source they apply to, and can be called
- <filename>makefile</filename>, <filename>Makefile</filename>
- or <filename>MAKEFILE</filename>. Most programmers use the
- name <filename>Makefile</filename>, as this puts it near the
- top of a directory listing, where it can easily be
- seen.
-
- <footnote>
- <para>They don't use the <filename>MAKEFILE</filename> form
- as block capitals are often used for documentation files
- like <filename>README</filename>.</para>
- </footnote></para>
- </sect2>
-
- <sect2>
- <title>Example of using <command>make</command></title>
-
- <para>Here's a very simple make file:</para>
-
- <programlisting>foo: foo.c
- cc -o foo foo.c</programlisting>
-
- <para>It consists of two lines, a dependency line and a creation
- line.</para>
-
- <para>The dependency line here consists of the name of the
- program (known as the <firstterm>target</firstterm>), followed
- by a colon, then whitespace, then the name of the source file.
- When <command>make</command> reads this line, it looks to see
- if <filename>foo</filename> exists; if it exists, it compares
- the time <filename>foo</filename> was last modified to the
- time <filename>foo.c</filename> was last modified. If
- <filename>foo</filename> does not exist, or is older than
- <filename>foo.c</filename>, it then looks at the creation line
- to find out what to do. In other words, this is the rule for
- working out when <filename>foo.c</filename> needs to be
- re-compiled.</para>
-
- <para>The creation line starts with a <token>tab</token> (press
- the <keycap>tab</keycap> key) and then the command you would
- type to create <filename>foo</filename> if you were doing it
- at a command prompt. If <filename>foo</filename> is out of
- date, or does not exist, <command>make</command> then executes
- this command to create it. In other words, this is the rule
- which tells make how to re-compile
- <filename>foo.c</filename>.</para>
-
- <para>So, when you type <userinput>make</userinput>, it will
- make sure that <filename>foo</filename> is up to date with
- respect to your latest changes to <filename>foo.c</filename>.
- This principle can be extended to
- <filename>Makefile</filename>s with hundreds of
- targets&mdash;in fact, on FreeBSD, it is possible to compile
- the entire operating system just by typing <userinput>make
- world</userinput> in the appropriate directory!</para>
-
- <para>Another useful property of makefiles is that the targets
- don't have to be programs. For instance, we could have a make
- file that looks like this:</para>
-
- <programlisting>foo: foo.c
- cc -o foo foo.c
-
-install:
- cp foo /home/me</programlisting>
-
- <para>We can tell make which target we want to make by
- typing:</para>
-
- <screen>&prompt.user; <userinput>make <replaceable>target</replaceable></userinput>
- </screen>
-
- <para><command>make</command> will then only look at that target
- and ignore any others. For example, if we type
- <userinput>make foo</userinput> with the makefile above, make
- will ignore the <action>install</action> target.</para>
-
- <para>If we just type <userinput>make</userinput> on its own,
- make will always look at the first target and then stop
- without looking at any others. So if we typed
- <userinput>make</userinput> here, it will just go to the
- <action>foo</action> target, re-compile
- <filename>foo</filename> if necessary, and then stop without
- going on to the <action>install</action> target.</para>
-
- <para>Notice that the <action>install</action> target doesn't
- actually depend on anything! This means that the command on
- the following line is always executed when we try to make that
- target by typing <userinput>make install</userinput>. In this
- case, it will copy <filename>foo</filename> into the user's
- home directory. This is often used by application makefiles,
- so that the application can be installed in the correct
- directory when it has been correctly compiled.</para>
-
- <para>This is a slightly confusing subject to try and explain.
- If you don't quite understand how <command>make</command>
- works, the best thing to do is to write a simple program like
- <quote>hello world</quote> and a make file like the one above
- and experiment. Then progress to using more than one source
- file, or having the source file include a header file. The
- <command>touch</command> command is very useful here&mdash;it
- changes the date on a file without you having to edit
- it.</para>
- </sect2>
-
- <sect2>
- <title>FreeBSD Makefiles</title>
-
- <para>Makefiles can be rather complicated to write. Fortunately,
- BSD-based systems like FreeBSD come with some very powerful
- ones as part of the system. One very good example of this is
- the FreeBSD ports system. Here's the essential part of a
- typical ports <filename>Makefile</filename>:</para>
-
- <programlisting>MASTER_SITES= ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/
-DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz
-
-.include &lt;bsd.port.mk&gt;</programlisting>
-
- <para>Now, if we go to the directory for this port and type
- <userinput>make</userinput>, the following happens:</para>
-
- <procedure>
- <step>
- <para>A check is made to see if the source code for this
- port is already on the system.</para>
- </step>
-
- <step>
- <para>If it isn't, an FTP connection to the URL in
- <symbol>MASTER_SITES</symbol> is set up to download the
- source.</para>
- </step>
-
- <step>
- <para>The checksum for the source is calculated and compared
- it with one for a known, good, copy of the source. This
- is to make sure that the source was not corrupted while in
- transit.</para>
- </step>
-
- <step>
- <para>Any changes required to make the source work on
- FreeBSD are applied&mdash;this is known as
- <firstterm>patching</firstterm>.</para>
- </step>
-
- <step>
- <para>Any special configuration needed for the source is
- done. (Many Unix program distributions try to work out
- which version of Unix they are being compiled on and which
- optional Unix features are present&mdash;this is where
- they are given the information in the FreeBSD ports
- scenario).</para>
- </step>
-
- <step>
- <para>The source code for the program is compiled. In
- effect, we change to the directory where the source was
- unpacked and do <command>make</command>&mdash;the
- program's own make file has the necessary information to
- build the program.</para>
- </step>
-
- <step>
- <para>We now have a compiled version of the program. If we
- wish, we can test it now; when we feel confident about the
- program, we can type <userinput>make install</userinput>.
- This will cause the program and any supporting files it
- needs to be copied into the correct location; an entry is
- also made into a <database>package database</database>, so
- that the port can easily be uninstalled later if we change
- our mind about it.</para>
- </step>
- </procedure>
-
- <para>Now I think you'll agree that's rather impressive for a
- four line script!</para>
-
- <para>The secret lies in the last line, which tells
- <command>make</command> to look in the system makefile called
- <filename>bsd.port.mk</filename>. It's easy to overlook this
- line, but this is where all the clever stuff comes
- from&mdash;someone has written a makefile that tells
- <command>make</command> to do all the things above (plus a
- couple of other things I didn't mention, including handling
- any errors that may occur) and anyone can get access to that
- just by putting a single line in their own make file!</para>
-
- <para>If you want to have a look at these system makefiles,
- they're in <filename>/usr/share/mk</filename>, but it's
- probably best to wait until you've had a bit of practice with
- makefiles, as they are very complicated (and if you do look at
- them, make sure you have a flask of strong coffee
- handy!)</para>
- </sect2>
-
- <sect2>
- <title>More advanced uses of <command>make</command></title>
-
- <para><command>Make</command> is a very powerful tool, and can
- do much more than the simple example above shows.
- Unfortunately, there are several different versions of
- <command>make</command>, and they all differ considerably.
- The best way to learn what they can do is probably to read the
- documentation&mdash;hopefully this introduction will have
- given you a base from which you can do this.</para>
-
- <para>The version of make that comes with FreeBSD is the
- <application>Berkeley make</application>; there is a tutorial
- for it in <filename>/usr/share/doc/psd/12.make</filename>. To
- view it, do</para>
-
- <screen>&prompt.user; <userinput>zmore paper.ascii.gz</userinput>
- </screen>
-
- <para>in that directory.</para>
-
- <para>Many applications in the ports use <application>GNU
- make</application>, which has a very good set of
- <quote>info</quote> pages. If you have installed any of these
- ports, <application>GNU make</application> will automatically
- have been installed as <command>gmake</command>. It's also
- available as a port and package in its own right.</para>
-
- <para>To view the info pages for <application>GNU
- make</application>, you will have to edit the
- <filename>dir</filename> file in the
- <filename>/usr/local/info</filename> directory to add an entry
- for it. This involves adding a line like</para>
-
- <programlisting> * Make: (make). The GNU Make utility.</programlisting>
-
- <para>to the file. Once you have done this, you can type
- <userinput>info</userinput> and then select
- <guimenuitem>make</guimenuitem> from the menu (or in
- <application>Emacs</application>, do <userinput>C-h
- i</userinput>).</para>
- </sect2>
- </sect1>
-
- <sect1 id="debugging">
- <title>Debugging</title>
-
- <sect2>
- <title>The Debugger</title>
-
- <para>The debugger that comes with FreeBSD is called
- <command>gdb</command> (<application>GNU
- debugger</application>). You start it up by typing</para>
-
- <screen>&prompt.user; <userinput>gdb <replaceable>progname</replaceable></userinput>
- </screen>
-
- <para>although most people prefer to run it inside
- <application>Emacs</application>. You can do this by:</para>
-
- <screen><userinput>M-x gdb RET <replaceable>progname</replaceable> RET</userinput>
- </screen>
-
- <para>Using a debugger allows you to run the program under more
- controlled circumstances. Typically, you can step through the
- program a line at a time, inspect the value of variables,
- change them, tell the debugger to run up to a certain point
- and then stop, and so on. You can even attach to a program
- that's already running, or load a core file to investigate why
- the program crashed. It's even possible to debug the kernel,
- though that's a little trickier than the user applications
- we'll be discussing in this section.</para>
-
- <para><command>gdb</command> has quite good on-line help, as
- well as a set of info pages, so this section will concentrate
- on a few of the basic commands.</para>
-
- <para>Finally, if you find its text-based command-prompt style
- off-putting, there's a graphical front-end for it <ulink
- URL="../../ports/devel.html">xxgdb</ulink> in the ports
- collection.</para>
-
- <para>This section is intended to be an introduction to using
- <command>gdb</command> and does not cover specialised topics
- such as debugging the kernel.</para>
- </sect2>
-
- <sect2>
- <title>Running a program in the debugger</title>
-
- <para>You'll need to have compiled the program with the
- <option>-g</option> option to get the most out of using
- <command>gdb</command>. It will work without, but you'll only
- see the name of the function you're in, instead of the source
- code. If you see a line like:</para>
-
- <screen>&hellip; (no debugging symbols found) &hellip;
- </screen>
-
- <para>when <command>gdb</command> starts up, you'll know that
- the program wasn't compiled with the <option>-g</option>
- option.</para>
-
- <para>At the <command>gdb</command> prompt, type
- <userinput>break main</userinput>. This will tell the
- debugger to skip over the preliminary set-up code in the
- program and start at the beginning of your code. Now type
- <userinput>run</userinput> to start the program&mdash;it will
- start at the beginning of the set-up code and then get stopped
- by the debugger when it calls <function>main()</function>.
- (If you've ever wondered where <function>main()</function>
- gets called from, now you know!).</para>
-
- <para>You can now step through the program, a line at a time, by
- pressing <command>n</command>. If you get to a function call,
- you can step into it by pressing <command>s</command>. Once
- you're in a function call, you can return from stepping into a
- function call by pressing <command>f</command>. You can also
- use <command>up</command> and <command>down</command> to take
- a quick look at the caller.</para>
-
- <para>Here's a simple example of how to spot a mistake in a
- program with <command>gdb</command>. This is our program
- (with a deliberate mistake):</para>
-
- <programlisting>#include &lt;stdio.h&gt;
-
-int bazz(int anint);
-
-main() {
- int i;
-
- printf("This is my program\n");
- bazz(i);
- return 0;
-}
-
-int bazz(int anint) {
- printf("You gave me %d\n", anint);
- return anint;
-}</programlisting>
-
- <para>This program sets <symbol>i</symbol> to be
- <literal>5</literal> and passes it to a function
- <function>bazz()</function> which prints out the number we
- gave it.</para>
-
- <para>When we compile and run the program we get</para>
-
- <screen>&prompt.user; <userinput>cc -g -o temp temp.c</userinput>
-&prompt.user; <userinput>./temp</userinput>
-This is my program
-anint = 4231
- </screen>
-
- <para>That wasn't what we expected! Time to see what's going
- on!</para>
-
- <screen>&prompt.user; <userinput>gdb temp</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc.
-(gdb) <userinput>break main</> <lineannotation>Skip the set-up code</>
-Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation><command>gdb</command> puts breakpoint at <function>main()</></>
-(gdb) <userinput>run</> <lineannotation>Run as far as <function>main()</></>
-Starting program: /home/james/tmp/temp <lineannotation>Program starts running</>
-
-Breakpoint 1, main () at temp.c:9 <lineannotation><command>gdb</command> stops at <function>main()</></>
-(gdb) <userinput>n</> <lineannotation>Go to next line</>
-This is my program <lineannotation>Program prints out</>
-(gdb) <userinput>s</> <lineannotation>step into <function>bazz()</></>
-bazz (anint=4231) at temp.c:17 <lineannotation><command>gdb</command> displays stack frame</>
-(gdb)
- </screen>
-
- <para>Hang on a minute! How did <symbol>anint</symbol> get to be
- <literal>4231</literal>? Didn't we set it to be
- <literal>5</literal> in <function>main()</function>? Let's
- move up to <function>main()</function> and have a look.</para>
-
- <screen>(gdb) <userinput>up</> <lineannotation>Move up call stack</>
-#1 0x1625 in main () at temp.c:11 <lineannotation><command>gdb</command> displays stack frame</>
-(gdb) <userinput>p i</> <lineannotation>Show us the value of <symbol>i</></>
-$1 = 4231 <lineannotation><command>gdb</command> displays <literal>4231</></>
- </screen>
-
- <para>Oh dear! Looking at the code, we forgot to initialise
- <symbol>i</symbol>. We meant to put</para>
-
- <programlisting><lineannotation>&hellip;</>
-main() {
- int i;
-
- i = 5;
- printf("This is my program\n");
-<lineannotation>&hellip</></programlisting>
-
- <para>but we left the <literal>i=5;</literal> line out. As we
- didn't initialise <symbol>i</symbol>, it had whatever number
- happened to be in that area of memory when the program ran,
- which in this case happened to be
- <literal>4231</literal>.</para>
-
- <note>
- <para><command>gdb</command> displays the stack frame every
- time we go into or out of a function, even if we're using
- <command>up</command> and <command>down</command> to move
- around the call stack. This shows the name of the function
- and the values of its arguments, which helps us keep track
- of where we are and what's going on. (The stack is a
- storage area where the program stores information about the
- arguments passed to functions and where to go when it
- returns from a function call).</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Examining a core file</title>
-
- <para>A core file is basically a file which contains the
- complete state of the process when it crashed. In <quote>the
- good old days</quote>, programmers had to print out hex
- listings of core files and sweat over machine code manuals,
- but now life is a bit easier. Incidentally, under FreeBSD and
- other 4.4BSD systems, a core file is called
- <filename><replaceable>progname</replaceable>.core</filename> instead of just
- <filename>core</filename>, to make it clearer which program a
- core file belongs to.</para>
-
- <para>To examine a core file, start up <command>gdb</command> in
- the usual way. Instead of typing <command>break</command> or
- <command>run</command>, type</para>
-
- <screen>(gdb) <userinput>core <replaceable>progname</replaceable>.core</userinput>
- </screen>
-
- <para>If you're not in the same directory as the core file,
- you'll have to do <userinput>dir
- /path/to/core/file</userinput> first.</para>
-
- <para>You should see something like this:</para>
-
- <screen>&prompt.user; <userinput>gdb a.out</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc.
-(gdb) <userinput>core a.out.core</userinput>
-Core was generated by `a.out'.
-Program terminated with signal 11, Segmentation fault.
-Cannot access memory at address 0x7020796d.
-#0 0x164a in bazz (anint=0x5) at temp.c:17
-(gdb)
- </screen>
-
- <para>In this case, the program was called
- <filename>a.out</filename>, so the core file is called
- <filename>a.out.core</filename>. We can see that the program
- crashed due to trying to access an area in memory that was not
- available to it in a function called
- <function>bazz</function>.</para>
-
- <para>Sometimes it's useful to be able to see how a function was
- called, as the problem could have occurred a long way up the
- call stack in a complex program. The <command>bt</command>
- command causes <command>gdb</command> to print out a
- back-trace of the call stack:</para>
-
- <screen>(gdb) <userinput>bt</userinput>
-#0 0x164a in bazz (anint=0x5) at temp.c:17
-#1 0xefbfd888 in end ()
-#2 0x162c in main () at temp.c:11
-(gdb)
- </screen>
-
- <para>The <function>end()</function> function is called when a
- program crashes; in this case, the <function>bazz()</function>
- function was called from <function>main()</function>.</para>
- </sect2>
-
- <sect2>
- <title>Attaching to a running program</title>
-
- <para>One of the neatest features about <command>gdb</command>
- is that it can attach to a program that's already running. Of
- course, that assumes you have sufficient permissions to do so.
- A common problem is when you are stepping through a program
- that forks, and you want to trace the child, but the debugger
- will only let you trace the parent.</para>
-
- <para>What you do is start up another <command>gdb</command>,
- use <command>ps</command> to find the process ID for the
- child, and do</para>
-
- <screen>(gdb) <userinput>attach <replaceable>pid</replaceable></userinput>
- </screen>
-
- <para>in <command>gdb</command>, and then debug as usual.</para>
-
- <para><quote>That's all very well,</quote> you're probably
- thinking, <quote>but by the time I've done that, the child
- process will be over the hill and far away</quote>. Fear
- not, gentle reader, here's how to do it (courtesy of the
- <command>gdb</command> info pages):</para>
-
- <screen><lineannotation>&hellip</lineannotation>
-if ((pid = fork()) < 0) /* _Always_ check this */
- error();
-else if (pid == 0) { /* child */
- int PauseMode = 1;
-
- while (PauseMode)
- sleep(10); /* Wait until someone attaches to us */
- <lineannotation>&hellip</lineannotation>
-} else { /* parent */
- <lineannotation>&hellip</lineannotation>
- </screen>
-
- <para>Now all you have to do is attach to the child, set
- <symbol>PauseMode</symbol> to <literal>0</literal>, and wait
- for the <function>sleep()</function> call to return!</para>
- </sect2>
- </sect1>
-
- <sect1 id="emacs">
- <title>Using Emacs as a Development Environment</title>
-
- <sect2>
- <title>Emacs</title>
-
- <para>Unfortunately, Unix systems don't come with the kind of
- everything-you-ever-wanted-and-lots-more-you-didn't-in-one-gigantic-package
- integrated development environments that other systems
- have.
-
- <footnote>
- <para>At least, not unless you pay out very large sums of
- money.</para>
- </footnote>
-
- However, it is possible to set up your own environment. It
- may not be as pretty, and it may not be quite as integrated,
- but you can set it up the way you want it. And it's free.
- And you have the source to it.</para>
-
- <para>The key to it all is Emacs. Now there are some people who
- loathe it, but many who love it. If you're one of the former,
- I'm afraid this section will hold little of interest to you.
- Also, you'll need a fair amount of memory to run it&mdash;I'd
- recommend 8MB in text mode and 16MB in X as the bare minimum
- to get reasonable performance.</para>
-
- <para>Emacs is basically a highly customisable
- editor&mdash;indeed, it has been customised to the point where
- it's more like an operating system than an editor! Many
- developers and sysadmins do in fact spend practically all
- their time working inside Emacs, leaving it only to log
- out.</para>
-
- <para>It's impossible even to summarise everything Emacs can do
- here, but here are some of the features of interest to
- developers:</para>
-
- <itemizedlist>
- <listitem>
- <para>Very powerful editor, allowing search-and-replace on
- both strings and regular expressions (patterns), jumping
- to start/end of block expression, etc, etc.</para>
- </listitem>
-
- <listitem>
- <para>Pull-down menus and online help.</para>
- </listitem>
-
- <listitem>
- <para>Language-dependent syntax highlighting and
- indentation.</para>
- </listitem>
-
- <listitem>
- <para>Completely customisable.</para>
- </listitem>
-
- <listitem>
- <para>You can compile and debug programs within
- Emacs.</para>
- </listitem>
-
- <listitem>
- <para>On a compilation error, you can jump to the offending
- line of source code.</para>
- </listitem>
-
- <listitem>
- <para>Friendly-ish front-end to the <command>info</command>
- program used for reading GNU hypertext documentation,
- including the documentation on Emacs itself.</para>
- </listitem>
-
- <listitem>
- <para>Friendly front-end to <command>gdb</command>, allowing
- you to look at the source code as you step through your
- program.</para>
- </listitem>
-
- <listitem>
- <para>You can read Usenet news and mail while your program
- is compiling.</para>
- </listitem>
- </itemizedlist>
-
- <para>And doubtless many more that I've overlooked.</para>
-
- <para>Emacs can be installed on FreeBSD using <ulink
- URL="../../ports/editors.html">the Emacs
- port</ulink>.</para>
-
- <para>Once it's installed, start it up and do <userinput>C-h
- t</userinput> to read an Emacs tutorial&mdash;that means
- hold down the <keycap>control</keycap> key, press
- <keycap>h</keycap>, let go of the <keycap>control</keycap>
- key, and then press <keycap>t</keycap>. (Alternatively, you
- can you use the mouse to select <guimenuitem>Emacs
- Tutorial</guimenuitem> from the <guimenu>Help</guimenu>
- menu).</para>
-
- <para>Although Emacs does have menus, it's well worth learning
- the key bindings, as it's much quicker when you're editing
- something to press a couple of keys than to try and find the
- mouse and then click on the right place. And, when you're
- talking to seasoned Emacs users, you'll find they often
- casually throw around expressions like <quote><literal>M-x
- replace-s RET foo RET bar RET</literal></quote> so it's
- useful to know what they mean. And in any case, Emacs has far
- too many useful functions for them to all fit on the menu
- bars.</para>
-
- <para>Fortunately, it's quite easy to pick up the key-bindings,
- as they're displayed next to the menu item. My advice is to
- use the menu item for, say, opening a file until you
- understand how it works and feel confident with it, then try
- doing C-x C-f. When you're happy with that, move on to
- another menu command.</para>
-
- <para>If you can't remember what a particular combination of
- keys does, select <guimenuitem>Describe Key</guimenuitem> from
- the <guimenu>Help</guimenu> menu and type it in&mdash;Emacs
- will tell you what it does. You can also use the
- <guimenuitem>Command Apropos</guimenuitem> menu item to find
- out all the commands which contain a particular word in them,
- with the key binding next to it.</para>
-
- <para>By the way, the expression above means hold down the
- <keysym>Meta</keysym> key, press <keysym>x</keysym>, release
- the <keysym>Meta</keysym> key, type
- <userinput>replace-s</userinput> (short for
- <literal>replace-string</literal>&mdash;another feature of
- Emacs is that you can abbreviate commands), press the
- <keysym>return</keysym> key, type <userinput>foo</userinput>
- (the string you want replaced), press the
- <keysym>return</keysym> key, type bar (the string you want to
- replace <literal>foo</literal> with) and press
- <keysym>return</keysym> again. Emacs will then do the
- search-and-replace operation you've just requested.</para>
-
- <para>If you're wondering what on earth the
- <keysym>Meta</keysym> key is, it's a special key that many
- Unix workstations have. Unfortunately, PC's don't have one,
- so it's usually the <keycap>alt</keycap> key (or if you're
- unlucky, the <keysym>escape</keysym> key).</para>
-
- <para>Oh, and to get out of Emacs, do <command>C-x C-c</command>
- (that means hold down the <keysym>control</keysym> key, press
- <keysym>x</keysym>, press <keysym>c</keysym> and release the
- <keysym>control</keysym> key). If you have any unsaved files
- open, Emacs will ask you if you want to save them. (Ignore
- the bit in the documentation where it says
- <command>C-z</command> is the usual way to leave
- Emacs&mdash;that leaves Emacs hanging around in the
- background, and is only really useful if you're on a system
- which doesn't have virtual terminals).</para>
- </sect2>
-
- <sect2>
- <title>Configuring Emacs</title>
-
- <para>Emacs does many wonderful things; some of them are built
- in, some of them need to be configured.</para>
-
- <para>Instead of using a proprietary macro language for
- configuration, Emacs uses a version of Lisp specially adapted
- for editors, known as Emacs Lisp. This can be quite useful if
- you want to go on and learn something like Common Lisp, as
- it's considerably smaller than Common Lisp (although still
- quite big!).</para>
-
- <para>The best way to learn Emacs Lisp is to download the <ulink
- URL="ftp://prep.ai.mit.edu:pub/gnu/elisp-manual-19-2.4.tar.gz">Emacs
- Tutorial</ulink></para>
-
- <para>However, there's no need to actually know any Lisp to get
- started with configuring Emacs, as I've included a sample
- <filename>.emacs</filename> file, which should be enough to
- get you started. Just copy it into your home directory and
- restart Emacs if it's already running; it will read the
- commands from the file and (hopefully) give you a useful basic
- setup.</para>
- </sect2>
-
- <sect2>
- <title>A sample <filename>.emacs</filename> file</title>
-
- <para>Unfortunately, there's far too much here to explain it in
- detail; however there are one or two points worth
- mentioning.</para>
-
- <itemizedlist>
- <listitem>
- <para>Everything beginning with a <literal>;</literal> is a comment
- and is ignored by Emacs.</para>
- </listitem>
-
- <listitem>
- <para>In the first line, the
- <literal>-*-&nbsp;Emacs-Lisp&nbsp;-*-</literal> is so that
- we can edit the <filename>.emacs</filename> file itself
- within Emacs and get all the fancy features for editing
- Emacs Lisp. Emacs usually tries to guess this based on
- the filename, and may not get it right for
- <filename>.emacs</filename>.</para>
- </listitem>
-
- <listitem>
- <para>The <keysym>tab</keysym> key is bound to an
- indentation function in some modes, so when you press the
- tab key, it will indent the current line of code. If you
- want to put a <token>tab</token> character in whatever
- you're writing, hold the <keysym>control</keysym> key down
- while you're pressing the <keysym>tab</keysym> key.</para>
- </listitem>
-
- <listitem>
- <para>This file supports syntax highlighting for C, C++,
- Perl, Lisp and Scheme, by guessing the language from the
- filename.</para>
- </listitem>
-
- <listitem>
- <para>Emacs already has a pre-defined function called
- <function>next-error</function>. In a compilation output
- window, this allows you to move from one compilation error
- to the next by doing <command>M-n</command>; we define a
- complementary function,
- <function>previous-error</function>, that allows you to go
- to a previous error by doing <command>M-p</command>. The
- nicest feature of all is that <command>C-c C-c</command>
- will open up the source file in which the error occurred
- and jump to the appropriate line.</para>
- </listitem>
-
- <listitem>
- <para>We enable Emacs's ability to act as a server, so that
- if you're doing something outside Emacs and you want to
- edit a file, you can just type in</para>
-
- <screen>&prompt.user; <userinput>emacsclient <replaceable>filename</replaceable></userinput>
- </screen>
-
- <para>and then you can edit the file in your
- Emacs!
-
- <footnote>
- <para>Many Emacs users set their <envar
- >EDITOR</envar> environment to
- <literal>emacsclient</literal> so this happens every
- time they need to edit a file.</para>
- </footnote></para>
- </listitem>
- </itemizedlist>
-
- <example>
- <title>A sample <filename>.emacs</filename> file</title>
-
- <programlisting>;; -*-Emacs-Lisp-*-
-
-;; This file is designed to be re-evaled; use the variable first-time
-;; to avoid any problems with this.
-(defvar first-time t
- "Flag signifying this is the first time that .emacs has been evaled")
-
-;; Meta
-(global-set-key "\M- " 'set-mark-command)
-(global-set-key "\M-\C-h" 'backward-kill-word)
-(global-set-key "\M-\C-r" 'query-replace)
-(global-set-key "\M-r" 'replace-string)
-(global-set-key "\M-g" 'goto-line)
-(global-set-key "\M-h" 'help-command)
-
-;; Function keys
-(global-set-key [f1] 'manual-entry)
-(global-set-key [f2] 'info)
-(global-set-key [f3] 'repeat-complex-command)
-(global-set-key [f4] 'advertised-undo)
-(global-set-key [f5] 'eval-current-buffer)
-(global-set-key [f6] 'buffer-menu)
-(global-set-key [f7] 'other-window)
-(global-set-key [f8] 'find-file)
-(global-set-key [f9] 'save-buffer)
-(global-set-key [f10] 'next-error)
-(global-set-key [f11] 'compile)
-(global-set-key [f12] 'grep)
-(global-set-key [C-f1] 'compile)
-(global-set-key [C-f2] 'grep)
-(global-set-key [C-f3] 'next-error)
-(global-set-key [C-f4] 'previous-error)
-(global-set-key [C-f5] 'display-faces)
-(global-set-key [C-f8] 'dired)
-(global-set-key [C-f10] 'kill-compilation)
-
-;; Keypad bindings
-(global-set-key [up] "\C-p")
-(global-set-key [down] "\C-n")
-(global-set-key [left] "\C-b")
-(global-set-key [right] "\C-f")
-(global-set-key [home] "\C-a")
-(global-set-key [end] "\C-e")
-(global-set-key [prior] "\M-v")
-(global-set-key [next] "\C-v")
-(global-set-key [C-up] "\M-\C-b")
-(global-set-key [C-down] "\M-\C-f")
-(global-set-key [C-left] "\M-b")
-(global-set-key [C-right] "\M-f")
-(global-set-key [C-home] "\M-&lt;")
-(global-set-key [C-end] "\M-&gt;")
-(global-set-key [C-prior] "\M-&lt;")
-(global-set-key [C-next] "\M-&gt;")
-
-;; Mouse
-(global-set-key [mouse-3] 'imenu)
-
-;; Misc
-(global-set-key [C-tab] "\C-q\t") ; Control tab quotes a tab.
-(setq backup-by-copying-when-mismatch t)
-
-;; Treat 'y' or &lt;CR&gt; as yes, 'n' as no.
-(fset 'yes-or-no-p 'y-or-n-p)
- (define-key query-replace-map [return] 'act)
- (define-key query-replace-map [?\C-m] 'act)
-
-;; Load packages
-(require 'desktop)
-(require 'tar-mode)
-
-;; Pretty diff mode
-(autoload 'ediff-buffers "ediff" "Intelligent Emacs interface to diff" t)
-(autoload 'ediff-files "ediff" "Intelligent Emacs interface to diff" t)
-(autoload 'ediff-files-remote "ediff"
- "Intelligent Emacs interface to diff")
-
-(if first-time
- (setq auto-mode-alist
- (append '(("\\.cpp$" . c++-mode)
- ("\\.hpp$" . c++-mode)
- ("\\.lsp$" . lisp-mode)
- ("\\.scm$" . scheme-mode)
- ("\\.pl$" . perl-mode)
- ) auto-mode-alist)))
-
-;; Auto font lock mode
-(defvar font-lock-auto-mode-list
- (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode)
- "List of modes to always start in font-lock-mode")
-
-(defvar font-lock-mode-keyword-alist
- '((c++-c-mode . c-font-lock-keywords)
- (perl-mode . perl-font-lock-keywords))
- "Associations between modes and keywords")
-
-(defun font-lock-auto-mode-select ()
- "Automatically select font-lock-mode if the current major mode is
-in font-lock-auto-mode-list"
- (if (memq major-mode font-lock-auto-mode-list)
- (progn
- (font-lock-mode t))
- )
- )
-
-(global-set-key [M-f1] 'font-lock-fontify-buffer)
-
-;; New dabbrev stuff
-;(require 'new-dabbrev)
-(setq dabbrev-always-check-other-buffers t)
-(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_")
-(add-hook 'emacs-lisp-mode-hook
- '(lambda ()
- (set (make-local-variable 'dabbrev-case-fold-search) nil)
- (set (make-local-variable 'dabbrev-case-replace) nil)))
-(add-hook 'c-mode-hook
- '(lambda ()
- (set (make-local-variable 'dabbrev-case-fold-search) nil)
- (set (make-local-variable 'dabbrev-case-replace) nil)))
-(add-hook 'text-mode-hook
- '(lambda ()
- (set (make-local-variable 'dabbrev-case-fold-search) t)
- (set (make-local-variable 'dabbrev-case-replace) t)))
-
-;; C++ and C mode...
-(defun my-c++-mode-hook ()
- (setq tab-width 4)
- (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key c++-mode-map "\C-ce" 'c-comment-edit)
- (setq c++-auto-hungry-initial-state 'none)
- (setq c++-delete-function 'backward-delete-char)
- (setq c++-tab-always-indent t)
- (setq c-indent-level 4)
- (setq c-continued-statement-offset 4)
- (setq c++-empty-arglist-indent 4))
-
-(defun my-c-mode-hook ()
- (setq tab-width 4)
- (define-key c-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key c-mode-map "\C-ce" 'c-comment-edit)
- (setq c-auto-hungry-initial-state 'none)
- (setq c-delete-function 'backward-delete-char)
- (setq c-tab-always-indent t)
-;; BSD-ish indentation style
- (setq c-indent-level 4)
- (setq c-continued-statement-offset 4)
- (setq c-brace-offset -4)
- (setq c-argdecl-indent 0)
- (setq c-label-offset -4))
-
-;; Perl mode
-(defun my-perl-mode-hook ()
- (setq tab-width 4)
- (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (setq perl-indent-level 4)
- (setq perl-continued-statement-offset 4))
-
-;; Scheme mode...
-(defun my-scheme-mode-hook ()
- (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent))
-
-;; Emacs-Lisp mode...
-(defun my-lisp-mode-hook ()
- (define-key lisp-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key lisp-mode-map "\C-i" 'lisp-indent-line)
- (define-key lisp-mode-map "\C-j" 'eval-print-last-sexp))
-
-;; Add all of the hooks...
-(add-hook 'c++-mode-hook 'my-c++-mode-hook)
-(add-hook 'c-mode-hook 'my-c-mode-hook)
-(add-hook 'scheme-mode-hook 'my-scheme-mode-hook)
-(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook)
-(add-hook 'lisp-mode-hook 'my-lisp-mode-hook)
-(add-hook 'perl-mode-hook 'my-perl-mode-hook)
-
-;; Complement to next-error
-(defun previous-error (n)
- "Visit previous compilation error message and corresponding source code."
- (interactive "p")
- (next-error (- n)))
-
-;; Misc...
-(transient-mark-mode 1)
-(setq mark-even-if-inactive t)
-(setq visible-bell nil)
-(setq next-line-add-newlines nil)
-(setq compile-command "make")
-(setq suggest-key-bindings nil)
-(put 'eval-expression 'disabled nil)
-(put 'narrow-to-region 'disabled nil)
-(put 'set-goal-column 'disabled nil)
-
-;; Elisp archive searching
-(autoload 'format-lisp-code-directory "lispdir" nil t)
-(autoload 'lisp-dir-apropos "lispdir" nil t)
-(autoload 'lisp-dir-retrieve "lispdir" nil t)
-(autoload 'lisp-dir-verify "lispdir" nil t)
-
-;; Font lock mode
-(defun my-make-face (face colour &amp;optional bold)
- "Create a face from a colour and optionally make it bold"
- (make-face face)
- (copy-face 'default face)
- (set-face-foreground face colour)
- (if bold (make-face-bold face))
- )
-
-(if (eq window-system 'x)
- (progn
- (my-make-face 'blue "blue")
- (my-make-face 'red "red")
- (my-make-face 'green "dark green")
- (setq font-lock-comment-face 'blue)
- (setq font-lock-string-face 'bold)
- (setq font-lock-type-face 'bold)
- (setq font-lock-keyword-face 'bold)
- (setq font-lock-function-name-face 'red)
- (setq font-lock-doc-string-face 'green)
- (add-hook 'find-file-hooks 'font-lock-auto-mode-select)
-
- (setq baud-rate 1000000)
- (global-set-key "\C-cmm" 'menu-bar-mode)
- (global-set-key "\C-cms" 'scroll-bar-mode)
- (global-set-key [backspace] 'backward-delete-char)
- ; (global-set-key [delete] 'delete-char)
- (standard-display-european t)
- (load-library "iso-transl")))
-
-;; X11 or PC using direct screen writes
-(if window-system
- (progn
- ;; (global-set-key [M-f1] 'hilit-repaint-command)
- ;; (global-set-key [M-f2] [?\C-u M-f1])
- (setq hilit-mode-enable-list
- '(not text-mode c-mode c++-mode emacs-lisp-mode lisp-mode
- scheme-mode)
- hilit-auto-highlight nil
- hilit-auto-rehighlight 'visible
- hilit-inhibit-hooks nil
- hilit-inhibit-rebinding t)
- (require 'hilit19)
- (require 'paren))
- (setq baud-rate 2400) ; For slow serial connections
- )
-
-;; TTY type terminal
-(if (and (not window-system)
- (not (equal system-type 'ms-dos)))
- (progn
- (if first-time
- (progn
- (keyboard-translate ?\C-h ?\C-?)
- (keyboard-translate ?\C-? ?\C-h)))))
-
-;; Under UNIX
-(if (not (equal system-type 'ms-dos))
- (progn
- (if first-time
- (server-start))))
-
-;; Add any face changes here
-(add-hook 'term-setup-hook 'my-term-setup-hook)
-(defun my-term-setup-hook ()
- (if (eq window-system 'pc)
- (progn
-;; (set-face-background 'default "red")
- )))
-
-;; Restore the "desktop" - do this as late as possible
-(if first-time
- (progn
- (desktop-load-default)
- (desktop-read)))
-
-;; Indicate that this file has been read at least once
-(setq first-time nil)
-
-;; No need to debug anything now
-(setq debug-on-error nil)
-
-;; All done
-(message "All done, %s%s" (user-login-name) ".")
- </programlisting>
- </example>
- </sect2>
-
- <sect2>
- <title>Extending the Range of Languages Emacs Understands</title>
-
- <para>Now, this is all very well if you only want to program in
- the languages already catered for in the
- <filename>.emacs</filename> file (C, C++, Perl, Lisp and
- Scheme), but what happens if a new language called
- <quote>whizbang</quote> comes out, full of exciting
- features?</para>
-
- <para>The first thing to do is find out if whizbang comes with
- any files that tell Emacs about the language. These usually
- end in <filename>.el</filename>, short for <quote>Emacs
- Lisp</quote>. For example, if whizbang is a FreeBSD port, we
- can locate these files by doing</para>
-
- <screen>&prompt.user; <userinput>find /usr/ports/lang/whizbang -name "*.el" -print</userinput>
- </screen>
-
- <para>and install them by copying them into the Emacs site Lisp
- directory. On FreeBSD 2.1.0-RELEASE, this is
- <filename>/usr/local/share/emacs/site-lisp</filename>.</para>
-
- <para>So for example, if the output from the find command
- was</para>
-
- <screen>/usr/ports/lang/whizbang/work/misc/whizbang.el
- </screen>
-
- <para>we would do</para>
-
- <screen>&prompt.root; <userinput>cp /usr/ports/lang/whizbang/work/misc/whizbang.el /usr/local/share/emacs/site-lisp</userinput>
- </screen>
-
- <para>Next, we need to decide what extension whizbang source
- files have. Let's say for the sake of argument that they all
- end in <filename>.wiz</filename>. We need to add an entry to
- our <filename>.emacs</filename> file to make sure Emacs will
- be able to use the information in
- <filename>whizbang.el</filename>.</para>
-
- <para>Find the <symbol>auto-mode-alist entry</symbol> in
- <filename>.emacs</filename> and add a line for whizbang, such
- as:</para>
-
- <programlisting><lineannotation>&hellip;</>
-("\\.lsp$" . lisp-mode)
-("\\.wiz$" . whizbang-mode)
-("\\.scm$" . scheme-mode)
-<lineannotation>&hellip;</></programlisting>
-
- <para>This means that Emacs will automatically go into
- <function>whizbang-mode</function> when you edit a file ending
- in <filename>.wiz</filename>.</para>
-
- <para>Just below this, you'll find the
- <symbol>font-lock-auto-mode-list</symbol> entry. Add
- <function>whizbang-mode</function> to it like so:</para>
-
- <programlisting>;; Auto font lock mode
-(defvar font-lock-auto-mode-list
- (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'whizbang-mode 'lisp-mode 'perl-mode 'scheme-mode)
- "List of modes to always start in font-lock-mode")</programlisting>
-
- <para>This means that Emacs will always enable
- <function>font-lock-mode</function> (ie syntax highlighting)
- when editing a <filename>.wiz</filename> file.</para>
-
- <para>And that's all that's needed. If there's anything else
- you want done automatically when you open up a
- <filename>.wiz</filename> file, you can add a
- <function>whizbang-mode hook</function> (see
- <function>my-scheme-mode-hook</function> for a simple example
- that adds <function>auto-indent</function>).</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Further Reading</title>
-
- <itemizedlist>
- <listitem>
- <para>Brian Harvey and Matthew Wright
- <emphasis>Simply Scheme</emphasis>
- MIT 1994.<!-- <br> -->
- ISBN 0-262-08226-8</para>
- </listitem>
-
- <listitem>
- <para>Randall Schwartz
- <emphasis>Learning Perl</emphasis>
- O'Reilly 1993<!-- <br> -->
- ISBN 1-56592-042-2</para>
- </listitem>
-
- <listitem>
- <para>Patrick Henry Winston and Berthold Klaus Paul Horn
- <emphasis>Lisp (3rd Edition)</emphasis>
- Addison-Wesley 1989<!-- <br> -->
- ISBN 0-201-08319-1</para>
- </listitem>
-
- <listitem>
- <para>Brian W. Kernighan and Rob Pike
- <emphasis>The Unix Programming Environment</emphasis>
- Prentice-Hall 1984<!-- <br> -->
- ISBN 0-13-937681-X</para>
- </listitem>
-
- <listitem>
- <para>Brian W. Kernighan and Dennis M. Ritchie
- <emphasis>The C Programming Language (2nd Edition)</emphasis>
- Prentice-Hall 1988<!-- <br> -->
- ISBN 0-13-110362-8</para>
- </listitem>
-
- <listitem>
- <para>Bjarne Stroustrup
- <emphasis>The C++ Programming Language</emphasis>
- Addison-Wesley 1991<!-- <br> -->
- ISBN 0-201-53992-6</para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens
- <emphasis>Advanced Programming in the Unix Environment</emphasis>
- Addison-Wesley 1992<!-- <br> -->
- ISBN 0-201-56317-7</para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens
- <emphasis>Unix Network Programming</emphasis>
- Prentice-Hall 1990<!-- <br> -->
- ISBN 0-13-949876-1</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/vm-design/Makefile b/en_US.ISO8859-1/articles/vm-design/Makefile
deleted file mode 100644
index 6758b4073a..0000000000
--- a/en_US.ISO8859-1/articles/vm-design/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# $FreeBSD: doc/en_US.ISO_8859-1/articles/mh/Makefile,v 1.8 1999/09/06 06:52:37 peter Exp $
-
-DOC?= article
-
-FORMATS?= html
-
-IMAGES= fig1.eps fig2.eps fig3.eps fig4.eps
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/vm-design/article.sgml b/en_US.ISO8859-1/articles/vm-design/article.sgml
deleted file mode 100644
index 54bafaf6dd..0000000000
--- a/en_US.ISO8859-1/articles/vm-design/article.sgml
+++ /dev/null
@@ -1,838 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/vm-design/article.sgml,v 1.3 2001/01/24 11:50:30 ben Exp $ -->
-<!-- FreeBSD Documentation Project -->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<article>
- <articleinfo>
- <title>Design elements of the FreeBSD VM system</title>
-
- <authorgroup>
- <author>
- <firstname>Matthew</firstname>
-
- <surname>Dillon</surname>
-
- <affiliation>
- <address>
- <email>dillon@apollo.backplane.com</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <abstract>
- <para>The title is really just a fancy way of saying that I am going to
- attempt to describe the whole VM enchilada, hopefully in a way that
- everyone can follow. For the last year I have concentrated on a number
- of major kernel subsystems within FreeBSD, with the VM and Swap
- subsystems being the most interesting and NFS being &lsquo;a necessary
- chore&rsquo;. I rewrote only small portions of the code. In the VM
- arena the only major rewrite I have done is to the swap subsystem.
- Most of my work was cleanup and maintenance, with only moderate code
- rewriting and no major algorithmic adjustments within the VM
- subsystem. The bulk of the VM subsystem's theoretical base remains
- unchanged and a lot of the credit for the modernization effort in the
- last few years belongs to John Dyson and David Greenman. Not being a
- historian like Kirk I will not attempt to tag all the various features
- with peoples names, since I will invariably get it wrong.</para>
- </abstract>
-
- <legalnotice>
- <para>This article was originally published in the January 2000 issue of
- <ulink url="http://www.daemonnews.org/">DaemonNews</ulink>. This
- version of the article may include updates from Matt and other authors
- to reflect changes in FreeBSD's VM implementation.</para>
- </legalnotice>
- </articleinfo>
-
- <sect1>
- <title>Introduction</title>
-
- <para>Before moving along to the actual design let's spend a little time
- on the necessity of maintaining and modernizing any long-living
- codebase. In the programming world, algorithms tend to be more
- important than code and it is precisely due to BSD's academic roots that
- a great deal of attention was paid to algorithm design from the
- beginning. More attention paid to the design generally leads to a clean
- and flexible codebase that can be fairly easily modified, extended, or
- replaced over time. While BSD is considered an &lsquo;old&rsquo;
- operating system by some people, those of us who work on it tend to view
- it more as a &lsquo;mature&rsquo; codebase which has various components
- modified, extended, or replaced with modern code. It has evolved, and
- FreeBSD is at the bleeding edge no matter how old some of the code might
- be. This is an important distinction to make and one that is
- unfortunately lost to many people. The biggest error a programmer can
- make is to not learn from history, and this is precisely the error that
- many other modern operating systems have made. NT is the best example
- of this, and the consequences have been dire. Linux also makes this
- mistake to some degree&mdash;enough that we BSD folk can make small
- jokes about it every once in a while, anyway. Linux's problem is simply
- one of a lack of experience and history to compare ideas against, a
- problem that is easily and rapidly being addressed by the Linux
- community in the same way it has been addressed in the BSD
- community&mdash;by continuous code development. The NT folk, on the
- other hand, repeatedly make the same mistakes solved by UNIX decades ago
- and then spend years fixing them. Over and over again. They have a
- severe case of &lsquo;not designed here&rsquo; and &lsquo;we are always
- right because our marketing department says so&rsquo;. I have little
- tolerance for anyone who cannot learn from history.</para>
-
- <para>Much of the apparent complexity of the FreeBSD design, especially in
- the VM/Swap subsystem, is a direct result of having to solve serious
- performance issues that occur under various conditions. These issues
- are not due to bad algorithmic design but instead rise from
- environmental factors. In any direct comparison between platforms,
- these issues become most apparent when system resources begin to get
- stressed. As I describe FreeBSD's VM/Swap subsystem the reader should
- always keep two points in mind. First, the most important aspect of
- performance design is what is known as &ldquo;Optimizing the Critical
- Path&rdquo;. It is often the case that performance optimizations add a
- little bloat to the code in order to make the critical path perform
- better. Second, a solid, generalized design outperforms a
- heavily-optimized design over the long run. While a generalized design
- may end up being slower than an heavily-optimized design when they are
- first implemented, the generalized design tends to be easier to adapt to
- changing conditions and the heavily-optimized design winds up having to
- be thrown away. Any codebase that will survive and be maintainable for
- years must therefore be designed properly from the beginning even if it
- costs some performance. Twenty years ago people were still arguing that
- programming in assembly was better than programming in a high-level
- language because it produced code that was ten times as fast. Today,
- the fallibility of that argument is obvious&mdash;as are the parallels
- to algorithmic design and code generalization.</para>
- </sect1>
-
- <sect1>
- <title>VM Objects</title>
-
- <para>The best way to begin describing the FreeBSD VM system is to look at
- it from the perspective of a user-level process. Each user process sees
- a single, private, contiguous VM address space containing several types
- of memory objects. These objects have various characteristics. Program
- code and program data are effectively a single memory-mapped file (the
- binary file being run), but program code is read-only while program data
- is copy-on-write. Program BSS is just memory allocated and filled with
- zeros on demand, called demand zero page fill. Arbitrary files can be
- memory-mapped into the address space as well, which is how the shared
- library mechanism works. Such mappings can require modifications to
- remain private to the process making them. The fork system call adds an
- entirely new dimension to the VM management problem on top of the
- complexity already given.</para>
-
- <para>A program binary data page (which is a basic copy-on-write page)
- illustrates the complexity. A program binary contains a preinitialized
- data section which is initially mapped directly from the program file.
- When a program is loaded into a process's VM space, this area is
- initially memory-mapped and backed by the program binary itself,
- allowing the VM system to free/reuse the page and later load it back in
- from the binary. The moment a process modifies this data, however, the
- VM system must make a private copy of the page for that process. Since
- the private copy has been modified, the VM system may no longer free it,
- because there is no longer any way to restore it later on.</para>
-
- <para>You will notice immediately that what was originally a simple file
- mapping has become much more complex. Data may be modified on a
- page-by-page basis whereas the file mapping encompasses many pages at
- once. The complexity further increases when a process forks. When a
- process forks, the result is two processes&mdash;each with their own
- private address spaces, including any modifications made by the original
- process prior to the call to <function>fork()</function>. It would be
- silly for the VM system to make a complete copy of the data at the time
- of the <function>fork()</function> because it is quite possible that at
- least one of the two processes will only need to read from that page
- from then on, allowing the original page to continue to be used. What
- was a private page is made copy-on-write again, since each process
- (parent and child) expects their own personal post-fork modifications to
- remain private to themselves and not effect the other.</para>
-
- <para>FreeBSD manages all of this with a layered VM Object model. The
- original binary program file winds up being the lowest VM Object layer.
- A copy-on-write layer is pushed on top of that to hold those pages which
- had to be copied from the original file. If the program modifies a data
- page belonging to the original file the VM system takes a fault and
- makes a copy of the page in the higher layer. When a process forks,
- additional VM Object layers are pushed on. This might make a little
- more sense with a fairly basic example. A <function>fork()</function>
- is a common operation for any *BSD system, so this example will consider
- a program that starts up, and forks. When the process starts, the VM
- system creates an object layer, let's call this A:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="fig1" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">+---------------+
-| A |
-+---------------+</literallayout>
- </textobject>
-
- <textobject>
- <phrase>A picture</phrase>
- </textobject>
- </mediaobject>
-
- <para>A represents the file&mdash;pages may be paged in and out of the
- file's physical media as necessary. Paging in from the disk is
- reasonable for a program, but we really don't want to page back out and
- overwrite the executable. The VM system therefore creates a second
- layer, B, that will be physically backed by swap space:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="fig2" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">+---------------+
-| B |
-+---------------+
-| A |
-+---------------+</literallayout>
- </textobject>
- </mediaobject>
-
- <para>On the first write to a page after this, a new page is created in B,
- and its contents are initialized from A. All pages in B can be paged in
- or out to a swap device. When the program forks, the VM system creates
- two new object layers&mdash;C1 for the parent, and C2 for the
- child&mdash;that rest on top of B:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="fig3" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">+-------+-------+
-| C1 | C2 |
-+-------+-------+
-| B |
-+---------------+
-| A |
-+---------------+</literallayout>
- </textobject>
- </mediaobject>
-
- <para>In this case, let's say a page in B is modified by the original
- parent process. The process will take a copy-on-write fault and
- duplicate the page in C1, leaving the original page in B untouched.
- Now, let's say the same page in B is modified by the child process. The
- process will take a copy-on-write fault and duplicate the page in C2.
- The original page in B is now completely hidden since both C1 and C2
- have a copy and B could theoretically be destroyed if it does not
- represent a 'real' file). However, this sort of optimization is not
- trivial to make because it is so fine-grained. FreeBSD does not make
- this optimization. Now, suppose (as is often the case) that the child
- process does an <function>exec()</function>. Its current address space
- is usually replaced by a new address space representing a new file. In
- this case, the C2 layer is destroyed:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="fig4" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">+-------+
-| C1 |
-+-------+-------+
-| B |
-+---------------+
-| A |
-+---------------+</literallayout>
- </textobject>
- </mediaobject>
-
- <para>In this case, the number of children of B drops to one, and all
- accesses to B now go through C1. This means that B and C1 can be
- collapsed together. Any pages in B that also exist in C1 are deleted
- from B during the collapse. Thus, even though the optimization in the
- previous step could not be made, we can recover the dead pages when
- either of the processes exit or <function>exec()</function>.</para>
-
- <para>This model creates a number of potential problems. The first is that
- you can wind up with a relatively deep stack of layered VM Objects which
- can cost scanning time and memory when you take a fault. Deep
- layering can occur when processes fork and then fork again (either
- parent or child). The second problem is that you can wind up with dead,
- inaccessible pages deep in the stack of VM Objects. In our last example
- if both the parent and child processes modify the same page, they both
- get their own private copies of the page and the original page in B is
- no longer accessible by anyone. That page in B can be freed.</para>
-
- <para>FreeBSD solves the deep layering problem with a special optimization
- called the &ldquo;All Shadowed Case&rdquo;. This case occurs if either
- C1 or C2 take sufficient COW faults to completely shadow all pages in B.
- Lets say that C1 achieves this. C1 can now bypass B entirely, so rather
- then have C1->B->A and C2->B->A we now have C1->A and C2->B->A. But
- look what also happened&mdash;now B has only one reference (C2), so we
- can collapse B and C2 together. The end result is that B is deleted
- entirely and we have C1->A and C2->A. It is often the case that B will
- contain a large number of pages and neither C1 nor C2 will be able to
- completely overshadow it. If we fork again and create a set of D
- layers, however, it is much more likely that one of the D layers will
- eventually be able to completely overshadow the much smaller dataset
- reprsented by C1 or C2. The same optimization will work at any point in
- the graph and the grand result of this is that even on a heavily forked
- machine VM Object stacks tend to not get much deeper then 4. This is
- true of both the parent and the children and true whether the parent is
- doing the forking or whether the children cascade forks.</para>
-
- <para>The dead page problem still exists in the case where C1 or C2 do not
- completely overshadow B. Due to our other optimizations this case does
- not represent much of a problem and we simply allow the pages to be
- dead. If the system runs low on memory it will swap them out, eating a
- little swap, but that's it.</para>
-
- <para>The advantage to the VM Object model is that
- <function>fork()</function> is extremely fast, since no real data
- copying need take place. The disadvantage is that you can build a
- relatively complex VM Object layering that slows page fault handling
- down a little, and you spend memory managing the VM Object structures.
- The optimizations FreeBSD makes proves to reduce the problems enough
- that they can be ignored, leaving no real disadvantage.</para>
- </sect1>
-
- <sect1>
- <title>SWAP Layers</title>
-
- <para>Private data pages are initially either copy-on-write or zero-fill
- pages. When a change, and therefore a copy, is made, the original
- backing object (usually a file) can no longer be used to save a copy of
- the page when the VM system needs to reuse it for other purposes. This
- is where SWAP comes in. SWAP is allocated to create backing store for
- memory that does not otherwise have it. FreeBSD allocates the swap
- management structure for a VM Object only when it is actually needed.
- However, the swap management structure has had problems
- historically.</para>
-
- <para>Under FreeBSD 3.x the swap management structure preallocates an
- array that encompasses the entire object requiring swap backing
- store&mdash;even if only a few pages of that object are swap-backed.
- This creates a kernel memory fragmentation problem when large objects
- are mapped, or processes with large runsizes (RSS) fork. Also, in order
- to keep track of swap space, a &lsquo;list of holes&rsquo; is kept in
- kernel memory, and this tends to get severely fragmented as well. Since
- the 'list of holes' is a linear list, the swap allocation and freeing
- performance is a non-optimal O(n)-per-page. It also requires kernel
- memory allocations to take place during the swap freeing process, and
- that creates low memory deadlock problems. The problem is further
- exacerbated by holes created due to the interleaving algorithm. Also,
- the swap block map can become fragmented fairly easily resulting in
- non-contiguous allocations. Kernel memory must also be allocated on the
- fly for additional swap management structures when a swapout occurs. It
- is evident that there was plenty of room for improvement.</para>
-
- <para>For FreeBSD 4.x, I completely rewrote the swap subsystem. With this
- rewrite, swap management structures are allocated through a hash table
- rather than a linear array giving them a fixed allocation size and much
- finer granularity. Rather then using a linearly linked list to keep
- track of swap space reservations, it now uses a bitmap of swap blocks
- arranged in a radix tree structure with free-space hinting in the radix
- node structures. This effectively makes swap allocation and freeing an
- O(1) operation. The entire radix tree bitmap is also preallocated in
- order to avoid having to allocate kernel memory during critical low
- memory swapping operations. After all, the system tends to swap when it
- is low on memory so we should avoid allocating kernel memory at such
- times in order to avoid potential deadlocks. Finally, to reduce
- fragmentation the radix tree is capable of allocating large contiguous
- chunks at once, skipping over smaller fragmented chunks. I did not take
- the final step of having an 'allocating hint pointer' that would trundle
- through a portion of swap as allocations were made in order to further
- guarantee contiguous allocations or at least locality of reference, but
- I ensured that such an addition could be made.</para>
- </sect1>
-
- <sect1>
- <title>When to free a page</title>
-
- <para>Since the VM system uses all available memory for disk caching,
- there are usually very few truly-free pages. The VM system depends on
- being able to properly choose pages which are not in use to reuse for
- new allocations. Selecting the optimal pages to free is possibly the
- single-most important function any VM system can perform because if it
- makes a poor selection, the VM system may be forced to unnecessarily
- retrieve pages from disk, seriously degrading system performance.</para>
-
- <para>How much overhead are we willing to suffer in the critical path to
- avoid freeing the wrong page? Each wrong choice we make will cost us
- hundreds of thousands of CPU cycles and a noticeable stall of the
- affected processes, so we are willing to endure a significant amount of
- overhead in order to be sure that the right page is chosen. This is why
- FreeBSD tends to outperform other systems when memory resources become
- stressed.</para>
-
- <para>The free page determination algorithm is built upon a history of the
- use of memory pages. To acquire this history, the system takes advantage
- of a page-used bit feature that most hardware page tables have.</para>
-
- <para>In any case, the page-used bit is cleared and at some later point
- the VM system comes across the page again and sees that the page-used
- bit has been set. This indicates that the page is still being actively
- used. If the bit is still clear it is an indication that the page is not
- being actively used. By testing this bit periodically, a use history (in
- the form of a counter) for the physical page is developed. When the VM
- system later needs to free up some pages, checking this history becomes
- the cornerstone of determining the best candidate page to reuse.</para>
-
- <sidebar>
- <title>What if the hardware has no page-used bit?</title>
-
- <para>For those platforms that do not have this feature, the system
- actually emulates a page-used bit. It unmaps or protects a page,
- forcing a page fault if the page is accessed again. When the page
- fault is taken, the system simply marks the page as having been used
- and unprotects the page so that it may be used. While taking such page
- faults just to determine if a page is being used appears to be an
- expensive proposition, it is much less expensive than reusing the page
- for some other purpose only to find that a process needs it back and
- then have to go to disk.</para>
- </sidebar>
-
- <para>FreeBSD makes use of several page queues to further refine the
- selection of pages to reuse as well as to determine when dirty pages
- must be flushed to their backing store. Since page tables are dynamic
- entities under FreeBSD, it costs virtually nothing to unmap a page from
- the address space of any processes using it. When a page candidate has
- been chosen based on the page-use counter, this is precisely what is
- done. The system must make a distinction between clean pages which can
- theoretically be freed up at any time, and dirty pages which must first
- be written to their backing store before being reusable. When a page
- candidate has been found it is moved to the inactive queue if it is
- dirty, or the cache queue if it is clean. A separate algorithm based on
- the dirty-to-clean page ratio determines when dirty pages in the
- inactive queue must be flushed to disk. Once this is accomplished, the
- flushed pages are moved from the inactive queue to the cache queue. At
- this point, pages in the cache queue can still be reactivated by a VM
- fault at relatively low cost. However, pages in the cache queue are
- considered to be &lsquo;immediately freeable&rsquo; and will be reused
- in an LRU (least-recently used) fashion when the system needs to
- allocate new memory.</para>
-
- <para>It is important to note that the FreeBSD VM system attempts to
- separate clean and dirty pages for the express reason of avoiding
- unnecessary flushes of dirty pages (which eats I/O bandwidth), nor does
- it move pages between the various page queues gratuitously when the
- memory subsystem is not being stressed. This is why you will see some
- systems with very low cache queue counts and high active queue counts
- when doing a <command>systat -vm</command> command. As the VM system
- becomes more stressed, it makes a greater effort to maintain the various
- page queues at the levels determined to be the most effective. An urban
- myth has circulated for years that Linux did a better job avoiding
- swapouts than FreeBSD, but this in fact is not true. What was actually
- occurring was that FreeBSD was proactively paging out unused pages in
- order to make room for more disk cache while Linux was keeping unused
- pages in core and leaving less memory available for cache and process
- pages. I don't know whether this is still true today.</para>
- </sect1>
-
- <sect1>
- <title>Pre-Faulting and Zeroing Optimizations</title>
-
- <para>Taking a VM fault is not expensive if the underlying page is already
- in core and can simply be mapped into the process, but it can become
- expensive if you take a whole lot of them on a regular basis. A good
- example of this is running a program such as &man.ls.1; or &man.ps.1;
- over and over again. If the program binary is mapped into memory but
- not mapped into the page table, then all the pages that will be accessed
- by the program will have to be faulted in every time the program is run.
- This is unnecessary when the pages in question are already in the VM
- Cache, so FreeBSD will attempt to pre-populate a process's page tables
- with those pages that are already in the VM Cache. One thing that
- FreeBSD does not yet do is pre-copy-on-write certain pages on exec. For
- example, if you run the &man.ls.1; program while running <command>vmstat
- 1</command> you will notice that it always takes a certain number of
- page faults, even when you run it over and over again. These are
- zero-fill faults, not program code faults (which were pre-faulted in
- already). Pre-copying pages on exec or fork is an area that could use
- more study.</para>
-
- <para>A large percentage of page faults that occur are zero-fill faults.
- You can usually see this by observing the <command>vmstat -s</command>
- output. These occur when a process accesses pages in its BSS area. The
- BSS area is expected to be initially zero but the VM system does not
- bother to allocate any memory at all until the process actually accesses
- it. When a fault occurs the VM system must not only allocate a new page,
- it must zero it as well. To optimize the zeroing operation the VM system
- has the ability to pre-zero pages and mark them as such, and to request
- pre-zeroed pages when zero-fill faults occur. The pre-zeroing occurs
- whenever the CPU is idle but the number of pages the system pre-zeros is
- limited in order to avoid blowing away the memory caches. This is an
- excellent example of adding complexity to the VM system in order to
- optimize the critical path.</para>
- </sect1>
-
- <sect1>
- <title>Page Table Optimizations</title>
-
- <para>The page table optimizations make up the most contentious part of
- the FreeBSD VM design and they have shown some strain with the advent of
- serious use of <function>mmap()</function>. I think this is actually a
- feature of most BSDs though I am not sure when it was first introduced.
- There are two major optimizations. The first is that hardware page
- tables do not contain persistent state but instead can be thrown away at
- any time with only a minor amount of management overhead. The second is
- that every active page table entry in the system has a governing
- <literal>pv_entry</literal> structure which is tied into the
- <literal>vm_page</literal> structure. FreeBSD can simply iterate
- through those mappings that are known to exist while Linux must check
- all page tables that <emphasis>might</emphasis> contain a specific
- mapping to see if it does, which can achieve O(n^2) overhead in certain
- situations. It is because of this that FreeBSD tends to make better
- choices on which pages to reuse or swap when memory is stressed, giving
- it better performance under load. However, FreeBSD requires kernel
- tuning to accommodate large-shared-address-space situations such as
- those that can occur in a news system because it may run out of
- <literal>pv_entry</literal> structures.</para>
-
- <para>Both Linux and FreeBSD need work in this area. FreeBSD is trying to
- maximize the advantage of a potentially sparse active-mapping model (not
- all processes need to map all pages of a shared library, for example),
- whereas Linux is trying to simplify its algorithms. FreeBSD generally
- has the performance advantage here at the cost of wasting a little extra
- memory, but FreeBSD breaks down in the case where a large file is
- massively shared across hundreds of processes. Linux, on the other hand,
- breaks down in the case where many processes are sparsely-mapping the
- same shared library and also runs non-optimally when trying to determine
- whether a page can be reused or not.</para>
- </sect1>
-
- <sect1>
- <title>Page Coloring</title>
-
- <para>We'll end with the page coloring optimizations. Page coloring is a
- performance optimization designed to ensure that accesses to contiguous
- pages in virtual memory make the best use of the processor cache. In
- ancient times (i.e. 10+ years ago) processor caches tended to map
- virtual memory rather than physical memory. This led to a huge number of
- problems including having to clear the cache on every context switch in
- some cases, and problems with data aliasing in the cache. Modern
- processor caches map physical memory precisely to solve those problems.
- This means that two side-by-side pages in a processes address space may
- not correspond to two side-by-side pages in the cache. In fact, if you
- aren't careful side-by-side pages in virtual memory could wind up using
- the same page in the processor cache&mdash;leading to cacheable data
- being thrown away prematurely and reducing CPU performance. This is true
- even with multi-way set-associative caches (though the effect is
- mitigated somewhat).</para>
-
- <para>FreeBSD's memory allocation code implements page coloring
- optimizations, which means that the memory allocation code will attempt
- to locate free pages that are contiguous from the point of view of the
- cache. For example, if page 16 of physical memory is assigned to page 0
- of a process's virtual memory and the cache can hold 4 pages, the page
- coloring code will not assign page 20 of physical memory to page 1 of a
- process's virtual memory. It would, instead, assign page 21 of physical
- memory. The page coloring code attempts to avoid assigning page 20
- because this maps over the same cache memory as page 16 and would result
- in non-optimal caching. This code adds a significant amount of
- complexity to the VM memory allocation subsystem as you can well
- imagine, but the result is well worth the effort. Page Coloring makes VM
- memory as deterministic as physical memory in regards to cache
- performance.</para>
- </sect1>
-
- <sect1>
- <title>Conclusion</title>
-
- <para>Virtual memory in modern operating systems must address a number of
- different issues efficiently and for many different usage patterns. The
- modular and algorithmic approach that BSD has historically taken allows
- us to study and understand the current implementation as well as
- relatively cleanly replace large sections of the code. There have been a
- number of improvements to the FreeBSD VM system in the last several
- years, and work is ongoing.</para>
- </sect1>
-
- <sect1>
- <title>Bonus QA session by Allen Briggs
- <email>briggs@ninthwonder.com</email></title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>What is &ldquo;the interleaving algorithm&rdquo; that you
- refer to in your listing of the ills of the FreeBSD 3.x swap
- arrangments?</para>
- </question>
-
- <answer>
- <para>FreeBSD uses a fixed swap interleave which defaults to 4. This
- means that FreeBSD reserves space for four swap areas even if you
- only have one, two, or three. Since swap is interleaved the linear
- address space representing the &lsquo;four swap areas&rsquo; will be
- fragmented if you don't actually have four swap areas. For
- example, if you have two swap areas A and B FreeBSD's address
- space representation for that swap area will be interleaved in
- blocks of 16 pages:</para>
-
- <literallayout>A B C D A B C D A B C D A B C D</literallayout>
-
- <para>FreeBSD 3.x uses a &lsquo;sequential list of free
- regions&rsquo; approach to accounting for the free swap areas.
- The idea is that large blocks of free linear space can be
- represented with a single list node
- (<filename>kern/subr_rlist.c</filename>). But due to the
- fragmentation the sequential list winds up being insanely
- fragmented. In the above example, completely unused swap will
- have A and B shown as &lsquo;free&rsquo; and C and D shown as
- &lsquo;all allocated&rsquo;. Each A-B sequence requires a list
- node to account for because C and D are holes, so the list node
- cannot be combined with the next A-B sequence.</para>
-
- <para>Why do we interleave our swap space instead of just tack swap
- areas onto the end and do something fancier? Because it's a whole
- lot easier to allocate linear swaths of an address space and have
- the result automatically be interleaved across multiple disks than
- it is to try to put that sophistication elsewhere.</para>
-
- <para>The fragmentation causes other problems. Being a linear list
- under 3.x, and having such a huge amount of inherent
- fragmentation, allocating and freeing swap winds up being an O(N)
- algorithm instead of an O(1) algorithm. Combined with other
- factors (heavy swapping) and you start getting into O(N^2) and
- O(N^3) levels of overhead, which is bad. The 3.x system may also
- need to allocate KVM during a swap operation to create a new list
- node which can lead to a deadlock if the system is trying to
- pageout pages in a low-memory situation.</para>
-
- <para>Under 4.x we do not use a sequential list. Instead we use a
- radix tree and bitmaps of swap blocks rather than ranged list
- nodes. We take the hit of preallocating all the bitmaps required
- for the entire swap area up front but it winds up wasting less
- memory due to the use of a bitmap (one bit per block) instead of a
- linked list of nodes. The use of a radix tree instead of a
- sequential list gives us nearly O(1) performance no matter how
- fragmented the tree becomes.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I don't get the following:</para>
-
- <blockquote>
- <para>It is important to note that the FreeBSD VM system attempts
- to separate clean and dirty pages for the express reason of
- avoiding unnecessary flushes of dirty pages (which eats I/O
- bandwidth), nor does it move pages between the various page
- queues gratitously when the memory subsystem is not being
- stressed. This is why you will see some systems with very low
- cache queue counts and high active queue counts when doing a
- <command>systat -vm</command> command.</para>
- </blockquote>
-
- <para>How is the separation of clean and dirty (inactive) pages
- related to the situation where you see low cache queue counts and
- high active queue counts in <command>systat -vm</command>? Do the
- systat stats roll the active and dirty pages together for the
- active queue count?</para>
- </question>
-
- <answer>
- <para>Yes, that is confusing. The relationship is
- &ldquo;goal&rdquo; verses &ldquo;reality&rdquo;. Our goal is to
- separate the pages but the reality is that if we are not in a
- memory crunch, we don't really have to.</para>
-
- <para>What this means is that FreeBSD will not try very hard to
- separate out dirty pages (inactive queue) from clean pages (cache
- queue) when the system is not being stressed, nor will it try to
- deactivate pages (active queue -> inactive queue) when the system
- is not being stressed, even if they aren't being used.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para> In the &man.ls.1; / <command>vmstat 1</command> example,
- wouldn't some of the page faults be data page faults (COW from
- executable file to private page)? I.e., I would expect the page
- faults to be some zero-fill and some program data. Or are you
- implying that FreeBSD does do pre-COW for the program data?</para>
- </question>
-
- <answer>
- <para>A COW fault can be either zero-fill or program-data. The
- mechanism is the same either way because the backing program-data
- is almost certainly already in the cache. I am indeed lumping the
- two together. FreeBSD does not pre-COW program data or zero-fill,
- but it <emphasis>does</emphasis> pre-map pages that exist in its
- cache.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>In your section on page table optimizations, can you give a
- little more detail about <literal>pv_entry</literal> and
- <literal>vm_page</literal> (or should vm_page be
- <literal>vm_pmap</literal>&mdash;as in 4.4, cf. pp. 180-181 of
- McKusick, Bostic, Karel, Quarterman)? Specifically, what kind of
- operation/reaction would require scanning the mappings?</para>
-
- <para>How does Linux do in the case where FreeBSD breaks down
- (sharing a large file mapping over many processes)?</para>
- </question>
-
- <answer>
- <para>A <literal>vm_page</literal> represents an (object,index#)
- tuple. A <literal>pv_entry</literal> represents a hardware page
- table entry (pte). If you have five processes sharing the same
- physical page, and three of those processes's page tables actually
- map the page, that page will be represented by a single
- <literal>vm_page</literal> structure and three
- <literal>pv_entry</literal> structures.</para>
-
- <para><literal>pv_entry</literal> structures only represent pages
- mapped by the MMU (one <literal>pv_entry</literal> represnts one
- pte). This means that when we need to remove all hardware
- references to a <literal>vm_page</literal> (in order to reuse the
- page for something else, page it out, clear it, dirty it, and so
- forth) we can simply scan the linked list of
- <literal>pv_entry</literal>'s associated with that
- <literal>vm_page</literal> to remove or modify the pte's from
- their page tables.</para>
-
- <para>Under Linux there is no such linked list. In order to remove
- all the hardware page table mappings for a
- <literal>vm_page</literal> linux must index into every VM object
- that <emphasis>might</emphasis> have mapped the page. For
- example, if you have 50 processes all mapping the same shared
- library and want to get rid of page X in that library, you need to
- index into the page table for each of those 50 processes even if
- only 10 of them have actually mapped the page. So Linux is
- trading off the simplicity of its design against performance.
- Many VM algorithms which are O(1) or (small N) under FreeBSD wind
- up being O(N), O(N^2), or worse under Linux. Since the pte's
- representing a particular page in an object tend to be at the same
- offset in all the page tables they are mapped in, reducing the
- number of accesses into the page tables at the same pte offset
- will often avoid blowing away the L1 cache line for that offset,
- which can lead to better performance.</para>
-
- <para>FreeBSD has added complexity (the <literal>pv_entry</literal>
- scheme) in order to increase performance (to limit page table
- accesses to <emphasis>only</emphasis> those pte's that need to be
- modified).</para>
-
- <para>But FreeBSD has a scaling problem that Linux does not in that
- there are a limited number of <literal>pv_entry</literal>
- structures and this causes problems when you have massive sharing
- of data. In this case you may run out of
- <literal>pv_entry</literal> structures even though there is plenty
- of free memory available. This can be fixed easily enough by
- bumping up the number of <literal>pv_entry</literal> structures in
- the kernel config, but we really need to find a better way to do
- it.</para>
-
- <para>In regards to the memory overhead of a page table verses the
- <literal>pv_entry</literal> scheme: Linux uses
- &lsquo;permanent&rsquo; page tables that are not throw away, but
- does not need a <literal>pv_entry</literal> for each potentially
- mapped pte. FreeBSD uses &lsquo;throw away&rsquo; page tables but
- adds in a <literal>pv_entry</literal> structure for each
- actually-mapped pte. I think memory utilization winds up being
- about the same, giving FreeBSD an algorithmic advantage with its
- ability to throw away page tables at will with very low
- overhead.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Finally, in the page coloring section, it might help to have a
- little more description of what you mean here. I didn't quite
- follow it.</para>
- </question>
-
- <answer>
- <para>Do you know how an L1 hardware memory cache works? I'll
- explain: Consider a machine with 16MB of main memory but only 128K
- of L1 cache. Generally the way this cache works is that each 128K
- block of main memory uses the <emphasis>same</emphasis> 128K of
- cache. If you access offset 0 in main memory and then offset
- offset 128K in main memory you can wind up throwing away the
- cached data you read from offset 0!</para>
-
- <para>Now, I am simplifying things greatly. What I just described
- is what is called a &lsquo;direct mapped&rsquo; hardware memory
- cache. Most modern caches are what are called
- 2-way-set-associative or 4-way-set-associative caches. The
- set-associatively allows you to access up to N different memory
- regions that overlap the same cache memory without destroying the
- previously cached data. But only N.</para>
-
- <para>So if I have a 4-way set associative cache I can access offset
- 0, offset 128K, 256K and offset 384K and still be able to access
- offset 0 again and have it come from the L1 cache. If I then
- access offset 512K, however, one of the four previously cached
- data objects will be thrown away by the cache.</para>
-
- <para>It is extremely important&hellip;
- <emphasis>extremely</emphasis> important for most of a processor's
- memory accesses to be able to come from the L1 cache, because the
- L1 cache operates at the processor frequency. The moment you have
- an L1 cahe miss and have to go to the L2 cache or to main memory,
- the processor will stall and potentially sit twidling its fingers
- for <emphasis>hundreds</emphasis> of instructions worth of time
- waiting for a read from main memory to complete. Main memory (the
- dynamic ram you stuff into a computer) is
- <emphasis>slow</emphasis>, when compared to the speed of a modern
- processor core.</para>
-
- <para>Ok, so now onto page coloring: All modern memory caches are
- what are known as <emphasis>physical</emphasis> caches. They
- cache physical memory addresses, not virtual memory addresses.
- This allows the cache to be left alone across a process context
- switch, which is very important.</para>
-
- <para>But in the UNIX world you are dealing with virtual address
- spaces, not physical address spaces. Any program you write will
- see the virtual address space given to it. The actual
- <emphasis>physical</emphasis> pages underlying that virtual
- address space are not necessarily physically contiguous! In fact,
- you might have two pages that are side by side in a processes
- address space which wind up being at offset 0 and offset 128K in
- <emphasis>physical</emphasis> memory.</para>
-
- <para>A program normally assumes that two side-by-side pages will be
- optimally cached. That is, that you can access data objects in
- both pages without having them blow away each other's cache entry.
- But this is only true if the physical pages underlying the virtual
- address space are contiguous (insofar as the cache is
- concerned).</para>
-
- <para>This is what Page coloring does. Instead of assigning
- <emphasis>random</emphasis> physical pages to virtual addresses,
- which may result in non-optimal cache performance , Page coloring
- assigns <emphasis>reasonably-contiguous</emphasis> physical pages
- to virtual addresses. Thus programs can be written under the
- assumption that the characteristics of the underlying hardware
- cache are the same for their virtual address space as they would
- be if the program had been run directly in a physical address
- space.</para>
-
- <para>Note that I say &lsquo;reasonably&rsquo; contiguous rather
- than simply &lsquo;contiguous&rsquo;. From the point of view of a
- 128K direct mapped cache, the physical address 0 is the same as
- the physical address 128K. So two side-by-side pages in your
- virtual address space may wind up being offset 128K and offset
- 132K in physical memory, but could also easily be offset 128K and
- offset 4K in physical memory and still retain the same cache
- performance characteristics. So page-coloring does
- <emphasis>not</emphasis> have to assign truly contiguous pages of
- physical memory to contiguous pages of virtual memory, it just
- needs to make sure it assigns contiguous pages from the point of
- view of cache performance and operation.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/articles/vm-design/fig1.eps b/en_US.ISO8859-1/articles/vm-design/fig1.eps
deleted file mode 100644
index 49d2c05a56..0000000000
--- a/en_US.ISO8859-1/articles/vm-design/fig1.eps
+++ /dev/null
@@ -1,104 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: fig1.eps
-%%Creator: fig2dev Version 3.2.3 Patchlevel
-%%CreationDate: Sun Oct 8 19:54:25 2000
-%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
-%%BoundingBox: 0 0 119 65
-%%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
-newpath 0 65 moveto 0 0 lineto 119 0 lineto 119 65 lineto closepath clip newpath
--143.0 298.0 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-
-$F2psBegin
-%%Page: 1 1
-10 setmiterlimit
- 0.06000 0.06000 sc
-% Polyline
-7.500 slw
-n 2400 4200 m 4050 4200 l 4050 4950 l 2400 4950 l
- cp gs col0 s gr
-% Polyline
-n 4050 4200 m
- 4350 3900 l gs col0 s gr
-% Polyline
-n 2400 4200 m 2700 3900 l 4350 3900 l 4350 4650 l
- 4050 4950 l gs col0 s gr
-/Helvetica-Bold ff 180.00 scf sf
-3225 4650 m
-gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
-$F2psEnd
-rs
diff --git a/en_US.ISO8859-1/articles/vm-design/fig2.eps b/en_US.ISO8859-1/articles/vm-design/fig2.eps
deleted file mode 100644
index fcb8bd41ad..0000000000
--- a/en_US.ISO8859-1/articles/vm-design/fig2.eps
+++ /dev/null
@@ -1,115 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: fig2.eps
-%%Creator: fig2dev Version 3.2.3 Patchlevel
-%%CreationDate: Sun Oct 8 19:55:31 2000
-%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
-%%BoundingBox: 0 0 120 110
-%%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
-newpath 0 110 moveto 0 0 lineto 120 0 lineto 120 110 lineto closepath clip newpath
--174.0 370.0 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-
-$F2psBegin
-%%Page: 1 1
-10 setmiterlimit
- 0.06000 0.06000 sc
-/Helvetica-Bold ff 180.00 scf sf
-3750 5100 m
-gs 1 -1 sc (B) dup sw pop 2 div neg 0 rm col0 sh gr
-% Polyline
-7.500 slw
-n 4871 5100 m 4879 5100 l gs col0 s gr
-% Polyline
-n 2925 5400 m 4575 5400 l 4575 6150 l 2925 6150 l
- cp gs col0 s gr
-% Polyline
-n 4575 4650 m
- 4875 4350 l gs col0 s gr
-% Polyline
-n 2925 4650 m 4575 4650 l 4575 5400 l 2925 5400 l
- cp gs col0 s gr
-% Polyline
-n 2925 4650 m 3225 4350 l 4875 4350 l 4875 5100 l
- 4575 5400 l gs col0 s gr
-/Helvetica-Bold ff 180.00 scf sf
-3750 5850 m
-gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
-% Polyline
-n 4875 5100 m 4875 5850 l
- 4575 6150 l gs col0 s gr
-$F2psEnd
-rs
diff --git a/en_US.ISO8859-1/articles/vm-design/fig3.eps b/en_US.ISO8859-1/articles/vm-design/fig3.eps
deleted file mode 100644
index 0e3138b2ed..0000000000
--- a/en_US.ISO8859-1/articles/vm-design/fig3.eps
+++ /dev/null
@@ -1,133 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: fig3.eps
-%%Creator: fig2dev Version 3.2.3 Patchlevel
-%%CreationDate: Sun Oct 8 19:53:51 2000
-%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
-%%BoundingBox: 0 0 120 155
-%%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
-newpath 0 155 moveto 0 0 lineto 120 0 lineto 120 155 lineto closepath clip newpath
--174.0 370.0 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-
-$F2psBegin
-%%Page: 1 1
-10 setmiterlimit
- 0.06000 0.06000 sc
-/Helvetica-Bold ff 180.00 scf sf
-4125 4350 m
-gs 1 -1 sc (C2) dup sw pop 2 div neg 0 rm col0 sh gr
-% Polyline
-7.500 slw
-n 4871 5100 m 4879 5100 l gs col0 s gr
-% Polyline
-n 2925 5400 m 4575 5400 l 4575 6150 l 2925 6150 l
- cp gs col0 s gr
-% Polyline
-n 4575 4650 m
- 4875 4350 l gs col0 s gr
-% Polyline
-n 2925 4650 m 4575 4650 l 4575 5400 l 2925 5400 l
- cp gs col0 s gr
-% Polyline
-n 4875 3600 m 4875 5100 l
- 4575 5400 l gs col0 s gr
-% Polyline
-n 2925 4650 m 2925 3900 l 3225 3600 l
- 4875 3600 l gs col0 s gr
-% Polyline
-n 2925 3900 m 4425 3900 l 4575 3900 l
- 4875 3600 l gs col0 s gr
-% Polyline
-n 4575 4650 m
- 4575 3900 l gs col0 s gr
-% Polyline
-n 3750 4650 m 3750 3900 l
- 4050 3600 l gs col0 s gr
-/Helvetica-Bold ff 180.00 scf sf
-3750 5850 m
-gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
-/Helvetica-Bold ff 180.00 scf sf
-3750 5100 m
-gs 1 -1 sc (B) dup sw pop 2 div neg 0 rm col0 sh gr
-/Helvetica-Bold ff 180.00 scf sf
-3375 4350 m
-gs 1 -1 sc (C1) dup sw pop 2 div neg 0 rm col0 sh gr
-% Polyline
-n 4875 5100 m 4875 5850 l
- 4575 6150 l gs col0 s gr
-$F2psEnd
-rs
diff --git a/en_US.ISO8859-1/articles/vm-design/fig4.eps b/en_US.ISO8859-1/articles/vm-design/fig4.eps
deleted file mode 100644
index 24fc1b5add..0000000000
--- a/en_US.ISO8859-1/articles/vm-design/fig4.eps
+++ /dev/null
@@ -1,133 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: fig4.eps
-%%Creator: fig2dev Version 3.2.3 Patchlevel
-%%CreationDate: Sun Oct 8 19:55:53 2000
-%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
-%%BoundingBox: 0 0 120 155
-%%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
-newpath 0 155 moveto 0 0 lineto 120 0 lineto 120 155 lineto closepath clip newpath
--174.0 370.0 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-
-$F2psBegin
-%%Page: 1 1
-10 setmiterlimit
- 0.06000 0.06000 sc
-/Helvetica-Bold ff 180.00 scf sf
-3375 4350 m
-gs 1 -1 sc (C1) dup sw pop 2 div neg 0 rm col0 sh gr
-% Polyline
-7.500 slw
-n 4871 5100 m 4879 5100 l gs col0 s gr
-% Polyline
-n 2925 5400 m 4575 5400 l 4575 6150 l 2925 6150 l
- cp gs col0 s gr
-% Polyline
-n 4575 4650 m
- 4875 4350 l gs col0 s gr
-% Polyline
-n 2925 4650 m 4575 4650 l 4575 5400 l 2925 5400 l
- cp gs col0 s gr
-% Polyline
-n 4875 4350 m 4875 5100 l
- 4575 5400 l gs col0 s gr
-% Polyline
-n 2925 4650 m 2925 3900 l 3225 3600 l
- 4050 3600 l gs col0 s gr
-% Polyline
-n 3750 4650 m 3750 3900 l
- 4050 3600 l gs col0 s gr
-% Polyline
-n 2925 3900 m
- 3750 3900 l gs col0 s gr
-% Polyline
-n 3750 4650 m 4050 4350 l
- 4875 4350 l gs col0 s gr
-% Polyline
-n 4050 4350 m
- 4050 3600 l gs col0 s gr
-/Helvetica-Bold ff 180.00 scf sf
-3750 5850 m
-gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
-/Helvetica-Bold ff 180.00 scf sf
-3750 5100 m
-gs 1 -1 sc (B) dup sw pop 2 div neg 0 rm col0 sh gr
-% Polyline
-n 4875 5100 m 4875 5850 l
- 4575 6150 l gs col0 s gr
-$F2psEnd
-rs
diff --git a/en_US.ISO8859-1/articles/zip-drive/Makefile b/en_US.ISO8859-1/articles/zip-drive/Makefile
deleted file mode 100644
index 60f4a450ea..0000000000
--- a/en_US.ISO8859-1/articles/zip-drive/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD: doc/en_US.ISO_8859-1/articles/programming-tools/Makefile,v 1.8 1999/09/06 06:52:38 peter Exp $
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/zip-drive/article.sgml b/en_US.ISO8859-1/articles/zip-drive/article.sgml
deleted file mode 100644
index 4e1aeeacaa..0000000000
--- a/en_US.ISO8859-1/articles/zip-drive/article.sgml
+++ /dev/null
@@ -1,267 +0,0 @@
-<!-- $FreeBSD -->
-
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<article>
- <articleinfo>
- <title>ZIP Drives</title>
-
- <authorgroup>
- <author>
- <firstname>Jason</firstname>
- <surname>Bacon</surname>
-
- <affiliation>
- <address><email>acadix@execpc.com</email></address>
- </affiliation>
- </author>
- </authorgroup>
- </articleinfo>
-
- <sect1>
- <title>ZIP Drive Basics</title>
-
- <para>ZIP disks are high capacity, removable, magnetic disks, which can be
- read or written by ZIP drives from iomega corporation. ZIP disks are
- similar to floppy disks, except that they are much faster, and have a
- much greater capacity. While floppy disks typically hold 1.44
- megabytes, ZIP disks are available in two sizes, namely 100 megabytes
- and 250 megabytes. ZIP drives should not be confused with the
- super-floppy, a 120 megabyte floppy drive which also handles traditional
- 1.44 megabyte floppies.</para>
-
- <para>IOMEGA also sells a higher capacity, higher performance drive
- called the JAZZ drive. JAZZ drives come in 1 gigabyte and
- 2 gigabyte sizes.</para>
-
- <para>ZIP drives are available as internal or external units, using one
- of three interfaces:</para>
-
- <orderedlist>
- <listitem>
- <para>The SCSI (Small Computer Standard Interface) interface is the
- fastest, most sophisticated, most expandable, and most expensive
- interface. The SCSI interface is used by all types of computers
- from PC's to RISC workstations to minicomputers, to connect all
- types of peripherals such as disk drives, tape drives, scanners, and
- so on. SCSI ZIP drives may be internal or external, assuming your
- host adapter has an external connector.</para>
-
- <note>
- <para>If you are using an external SCSI device, it is important
- never to connect or disconnect it from the SCSI bus while the
- computer is running. Doing so may cause file-system damage on the
- disks that remain connected.</para>
- </note>
-
- <para>If you want maximum performance and easy setup, the SCSI
- interface is the best choice. This will probably require adding a
- SCSI host adapter, since most PC's (except for high-performance
- servers) don't have built-in SCSI support. Each SCSI host adapter
- can support either 7 or 15 SCSI devices, depending on the
- model.</para>
-
- <para>Each SCSI device has it's own controller, and these
- controllers are fairly intelligent and well standardized, (the
- second `S' in SCSI is for Standard) so from the operating system's
- point of view, all SCSI disk drives look about the same, as do all
- SCSI tape drives, etc. To support SCSI devices, the operating
- system need only have a driver for the particular host adapter, and
- a generic driver for each type of device, i.e. a SCSI disk driver,
- SCSI tape driver, and so on. There are some SCSI devices that can
- be better utilized with specialized drivers (e.g. DAT tape drives),
- but they tend to work OK with the generic driver, too. It's just
- that the generic drivers may not support some of the special
- features.</para>
-
- <para>Using a SCSI zip drive is simply a matter of determining which
- device file in the <filename>/dev</filename> directory represents
- the ZIP drive. This can be determined by looking at the boot
- messages while FreeBSD is booting (or in
- <filename>/var/log/messages</filename> after booting), where you'll
- see a line something like this:</para>
-
- <programlisting>da1: &lt;IOMEGA ZIP 100 D.13&gt; Removable Direct Access SCSI-2 Device</programlisting>
-
- <para>This means that the ZIP drive is represented by the file
- <filename>/dev/da1</filename>.</para>
- </listitem>
-
- <listitem>
- <para>The IDE (Integrated Drive Electronics) interface is a low-cost
- disk drive interface used by many desktop PC's. Most IDE devices
- are strictly internal.</para>
-
- <para>Performance of IDE ZIP drives is comparable to SCSI ZIP drives.
- (The IDE interface is not as fast as SCSI, but ZIP drives
- performance is limited mainly by the mechanics of the drive, not by
- the bus interface.)</para>
-
- <para>The drawback of the IDE interface is the limitations it imposes.
- Most IDE adapters can only support 2 devices, and IDE interfaces are
- not typically designed for the long term. For example, the original
- IDE interface would not support hard disks with more than 1024
- cylinders, which forced a lot of people to upgrade their hardware
- prematurely. If you have plans to expand your PC by adding another
- disk, a tape drive, or scanner, you may want to invest in a SCSI
- host adapter and a SCSI ZIP drive to avoid problems in the
- future.</para>
-
- <para>IDE devices in FreeBSD are prefixed with a <literal>w</literal>.
- For example, an IDE hard disk might be
- <filename>/dev/wd0</filename>, an IDE (ATAPI) cdrom might be
- <filename>/dev/wcd1</filename>, and so on.</para>
- </listitem>
-
- <listitem>
- <para>The parallel port interface is popular for portable external
- devices such as external ZIP drives and scanners, because virtually
- every computer has a standard parallel port (usually used for
- printers). This makes things easy for people to transfer data
- between multiple computers by toting around their ZIP drive.</para>
-
- <para>Performance will generally be slower than a SCSI or IDE ZIP
- drive, since it is limited by the speed of the parallel port.
- Parallel port speed varies considerably between various computers,
- and can often be configured in the system BIOS. Some machines
- will also require BIOS configuration to operate the parallel
- port in bidirectional mode. (Parallel ports were originally
- designed only for output to printers)</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1>
- <title>Parallel ZIP: The <devicename>vpo</devicename> Driver</title>
-
- <para>To use a parallel-port ZIP drive under FreeBSD, the
- <devicename>vpo</devicename> driver must be configured into the kernel.
- Parallel port ZIP drives also have a built-in SCSI controller. The vpo
- driver allows the FreeBSD kernel to communicate with the ZIP drive's
- SCSI controller through the parallel port.</para>
-
- <para>Since the vpo driver is not a standard part of the kernel (as of
- FreeBSD 3.2), you will need to rebuild the kernel to enable this device.
- The process of building a kernel is outlined in detail in another
- section. The following steps outline the process in brief for the
- purpose of enabling the vpo driver:</para>
-
- <orderedlist>
- <listitem>
- <para>Run <command>/stand/sysinstall</command>, and install the kernel
- source code on your system.</para>
-
- <screen>&prompt.root; <userinput>cd /sys/i386/conf</userinput>
-&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen>
-
- <para>Edit <filename>MYKERNEL</filename>, change the
- <literal>ident</literal> line to <literal>MYKERNEL</literal>, and
- uncomment the line describing the vpo driver.</para>
-
- <para>If you have a second parallel port, you may need to copy the
- section for <literal>ppc0</literal> to create a
- <literal>ppc1</literal> device. The second parallel port usually
- uses IRQ 5 and address 378. Only the IRQ is required in the config
- file.</para>
-
- <para>If you're root hard disk is a SCSI disk, you might run into a
- problem with probing order, which will cause the system to attempt
- to use the ZIP drive as the root device. This will cause a boot
- failure, unless you happen to have a FreeBSD root file-system on
- your ZIP disk! In this case, you will need to <quote>wire
- down</quote> the root disk, i.e. force the kernel to bind a
- specific device to <filename>/dev/da0</filename>, the root SCSI
- disk. It will then assign the ZIP disk to the next available SCSI
- disk, e.g. <literal>/dev/da1</literal>. To wire down your SCSI hard
- drive as <literal>da0</literal>, change the line
-
- <programlisting>device da0</programlisting>
-
- to
-
- <programlisting>disk da0 at scbus0 target 0 unit 0</programlisting></para>
-
- <para>You may need to change the target above to match the SCSI ID of
- your disk drive. You should also wire down the scbus0 entry to your
- controller. For example, if you have an Adaptec 15xx controller,
- you would change
-
- <programlisting>controller scbus0</programlisting>
-
- to
-
- <programlisting>controller scbus0 at aha0</programlisting></para>
-
- <para>Lastly, as long as you're editing the kernel config, you
- can take the opportunity to remove all the unnecessary drivers. This
- should be done with a great deal of caution, and only if you feel
- confident about making kernel modifications. Removing unnecessary
- drivers will reduce the kernel size, leaving more memory available
- for your applications. To determine which drivers are not needed,
- go to the end of the file <filename>/var/log/messages</filename>, and look for lines
- reading "not found". Then, comment out these devices in your config
- file. You can also change other options to reduce the size and
- increase the speed of your kernel. Read the section on rebuilding
- your kernel for more complete information.</para>
- </listitem>
-
- <listitem>
- <para>Now it's time to compile the kernel:</para>
-
- <screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput>
-&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput>
-&prompt.root; <userinput>make clean depend && make all install</userinput></screen>
- </listitem>
- </orderedlist>
-
- <para>After the kernel is rebuilt, you'll need to reboot. Make sure the
- ZIP drive is connected to the parallel port before the boot begins. You
- should see the ZIP drive show up in the boot messages as device vpo0 or
- vpo1, depending on which parallel port the drive is attached to. It
- should also show which device file the ZIP drive has been bound to. This
- will be <filename>/dev/da0</filename> if you have no other SCSI disks in
- the system, or <filename>/dev/da1</filename> if you have a SCSI hard
- disk wired down as the root device.</para>
- </sect1>
-
- <sect1>
- <title>Mounting ZIP disks</title>
-
- <para>To access the ZIP disk, you simply mount it like any other disk
- device. The file-system is represented as slice 4 on the device, so for
- SCSI or parallel ZIP disks, you would use:</para>
-
- <screen>&prompt.root; <userinput>mount_msdos /dev/da1s4 /mnt</userinput></screen>
-
- <para>For IDE ZIP drives, use:</para>
-
- <screen>&prompt.root; <userinput>mount_msdos /dev/wd1s4 /mnt</userinput></screen>
-
- <para>It will also be helpful to update <filename>/etc/fstab</filename> to
- make mounting easier. Add a line like the following, edited to suit your
- system:
-
- <programlisting>/dev/da1s4 /zip msdos rw,noauto 0 0</programlisting>
-
- and create the directory <filename>/zip</filename>.</para>
-
- <para>Then, you can mount simply by typing
-
- <screen>&prompt.root; <userinput>mount /zip</userinput></screen>
-
- and unmount by typing
-
- <screen>&prompt.root; <userinput>umount /zip</userinput></screen></para>
-
- <para>For more information on the format of
- <filename>/etc/fstab</filename>, see &man.fstab.5;.</para>
-
- <para>You can also create a FreeBSD file-system on the ZIP disk
- using &man.newfs.8;. However, the disk will only be usable on a FreeBSD
- system, or perhaps a few other Unix clones that recognize FreeBSD
- file-systems. (Definitely not DOS or Windows.)</para>
- </sect1>
-</article>
diff --git a/en_US.ISO8859-1/books/Makefile b/en_US.ISO8859-1/books/Makefile
deleted file mode 100644
index de2ed2f597..0000000000
--- a/en_US.ISO8859-1/books/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# $FreeBSD: doc/en_US.ISO_8859-1/books/Makefile,v 1.9 2001/04/09 20:41:33 nik Exp $
-
-SUBDIR = corp-net-guide
-SUBDIR+= design-44bsd
-SUBDIR+= developers-handbook
-SUBDIR+= faq
-SUBDIR+= fdp-primer
-SUBDIR+= handbook
-SUBDIR+= porters-handbook
-SUBDIR+= ppp-primer
-
-ROOT_SYMLINKS= faq handbook
-
-DOC_PREFIX?= ${.CURDIR}/../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/Makefile.inc b/en_US.ISO8859-1/books/Makefile.inc
deleted file mode 100644
index b9219d69af..0000000000
--- a/en_US.ISO8859-1/books/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# $FreeBSD$
-#
-
-DESTDIR?= ${DOCDIR}/en_US.ISO_8859-1/books/${.CURDIR:T}
diff --git a/en_US.ISO8859-1/books/arch-handbook/Makefile b/en_US.ISO8859-1/books/arch-handbook/Makefile
deleted file mode 100644
index d9d7ad1454..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# $FreeBSD$
-#
-# Build the FreeBSD Developers' Handbook.
-#
-
-MAINTAINER=asmodai@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-
-# Entities
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/arch-handbook/book.sgml b/en_US.ISO8859-1/books/arch-handbook/book.sgml
deleted file mode 100644
index 12c46cae04..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/book.sgml
+++ /dev/null
@@ -1,508 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/book.sgml,v 1.14 2001/04/13 09:05:10 murray Exp $
--->
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN">
-%bookinfo;
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % authors SYSTEM "../handbook/authors.ent"> %authors;
-]>
-
-<book>
- <bookinfo>
- <title>FreeBSD Developers' Handbook</title>
-
- <corpauthor>The FreeBSD Documentation Project</corpauthor>
-
- <pubdate>August 2000</pubdate>
-
- <copyright>
- <year>2000</year>
- <year>2001</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- &bookinfo.legalnotice;
-
- <abstract>
- <para>Welcome to the Developers' Handbook.</para>
- </abstract>
- </bookinfo>
-
- <part id="introduction">
- <title>Introduction</title>
-
- <chapter id="developmentplatform">
- <title>Developing on FreeBSD</title>
-
- <para>This will need to discuss FreeBSD as a development
- platform, the vision of BSD, architectural overview, layout of
- /usr/src, history, etc.</para>
-
- <para>Thank you for considering FreeBSD as your development
- platform! We hope it will not let you down.</para>
- </chapter>
-
- <chapter id="bsdvision">
- <title>The BSD Vision</title>
-
- <para></para>
- </chapter>
-
- <chapter id="archoverview">
- <title>Architectural Overview</title>
-
- <para></para>
- </chapter>
-
- <chapter id="sourcelayout">
- <title>The Layout of /usr/src</title>
-
- <para>The complete source code to FreeBSD is available from our
- public CVS repository. The source code is normally installed in
- <filename class=directory>/usr/src</filename> which contains the
- following subdirectories.</para>
-
- <para>
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Directory</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename class=directory>bin/</filename></entry>
- <entry>Source for files in
- <filename>/bin</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>contrib/</filename></entry>
- <entry>Source for files from contributed software.</entry>
- </row>
-
- <row>
- <entry><filename class=directory>crypto/</filename></entry>
- <entry>DES source</entry>
- </row>
-
- <row>
- <entry><filename class=directory>etc/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/etc</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>games/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/games</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>gnu/</filename></entry>
- <entry>Utilities covered by the GNU Public License</entry>
- </row>
-
- <row>
- <entry><filename class=directory>include/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/include</filename></entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>kerberosIV/</filename></entry>
- <entry>Source for Kerbereros version IV</entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>kerberos5/</filename></entry>
- <entry>Source for Kerbereros version 5</entry>
- </row>
-
- <row>
- <entry><filename class=directory>lib/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/lib</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>libexec/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/libexec</filename></entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>release/</filename></entry>
- <entry>Files required to produce a FreeBSD release</entry>
- </row>
-
- <row>
- <entry><filename class=directory>sbin/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/sbin</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>secure/</filename></entry>
- <entry>FreeSec sources</entry>
- </row>
-
- <row>
- <entry><filename class=directory>share/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/sbin</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>sys/</filename></entry>
- <entry>Kernel source files</entry>
- </row>
-
- <row>
- <entry><filename class=directory>tools/</filename></entry>
- <entry>Tools used for maintenance and testing of
- FreeBSD</entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>usr.bin/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/bin</filename></entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>usr.sbin/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/sbin</filename></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- </para>
-
- </chapter>
- </part>
-
- <part id="Basics">
- <title>Basics</title>
-
- &chap.tools;
- &chap.secure;
-
- </part>
-
- <part id="kernel">
- <title>Kernel</title>
-
- <chapter id="kernelhistory">
- <title>History of the Unix Kernel</title>
-
- <para>Some history of the Unix/BSD kernel, system calls, how do
- processes work, blocking, scheduling, threads (kernel),
- context switching, signals, interrupts, modules, etc.</para>
-
- <para></para>
- </chapter>
-
- &chap.locking;
-
- </part>
-
- <part id="memory">
- <title>Memory and Virtual Memory</title>
-
- <chapter id="virtualmemory">
- <title>Virtual Memory</title>
-
- <para>VM, paging, swapping, allocating memory, testing for
- memory leaks, mmap, vnodes, etc.</para>
-
- <para></para>
- </chapter>
- </part>
-
- <part id="iosystem">
- <title>I/O System</title>
-
- <chapter id="ufs">
- <title>UFS</title>
-
- <para>UFS, FFS, Ext2FS, JFS, inodes, buffer cache, labeling,
- locking, metadata, soft-updates, LFS, portalfs, procfs,
- vnodes, memory sharing, memory objects, TLBs, caching</para>
-
- </chapter>
- </part>
-
- <part id="ipc">
- <title>Interprocess Communication</title>
-
- <chapter id="signals">
- <title>Signals</title>
-
- <para>Signals, pipes, semaphores, message queues, shared memory,
- ports, sockets, doors</para>
-
- </chapter>
- </part>
-
- <part id="networking">
- <title>Networking</title>
-
- <chapter id="sockets">
- <title>Sockets</title>
-
- <para>Sockets, bpf, IP, TCP, UDP, ICMP, OSI, bridging,
- firewalling, NAT, switching, etc</para>
-
- </chapter>
- </part>
-
- <part id="networkfs">
- <title>Network Filesystems</title>
-
- <chapter id="afs">
- <title>AFS</title>
-
- <para>AFS, NFS, SANs etc]</para>
-
- </chapter>
- </part>
-
- <part id="terminal">
- <title>Terminal Handling</title>
-
- <chapter id="syscons">
- <title>Syscons</title>
-
- <para>Syscons, tty, PCVT, serial console, screen savers,
- etc</para>
-
- </chapter>
- </part>
-
- <part id="sound">
- <title>Sound</title>
-
- <chapter id="oss">
- <title>OSS</title>
-
- <para>OSS, waveforms, etc</para>
-
- </chapter>
- </part>
-
- <part id="devicedrivers">
- <title>Device Drivers</title>
-
- &chap.driverbasics;
- &chap.pci;
- &chap.scsi;
- &chap.usb;
-
- <chapter id="newbus">
- <title>NewBus</title>
-
- <para>This chapter will talk about the FreeBSD NewBus
- architecture.</para>
- </chapter>
-
- </part>
-
- <part id="architectures">
- <title>Architectures</title>
-
- <chapter id="ia32">
- <title>IA-32</title>
-
- <para>Talk about the architectural specifics of FreeBSD/x86.</para>
-
- </chapter>
-
- <chapter id="alpha">
- <title>Alpha</title>
-
- <para>Talk about the architectural specifics of
- FreeBSD/alpha.</para>
-
- <para>Explanation of allignment errors, how to fix, how to
- ignore.</para>
-
- <para>Example assembly language code for FreeBSD/alpha.</para>
- </chapter>
-
- <chapter id="ia64">
- <title>IA-64</title>
-
- <para>Talk about the architectural specifics of
- FreeBSD/ia64.</para>
-
- </chapter>
- </part>
-
- <part id="debuggingpart">
- <title>Debugging</title>
-
- <chapter id="truss">
- <title>Truss</title>
-
- <para>various descriptions on how to debug certain aspects of
- the system using truss, ktrace, gdb, kgdb, etc</para>
-
- </chapter>
- </part>
-
- <part id="compatibility">
- <title>Compatibility Layers</title>
-
- <chapter id="linux">
- <title>Linux</title>
-
- <para>Linux, SVR4, etc</para>
-
- </chapter>
- </part>
-
- <part id="appendices">
- <title>Appendices</title>
-
- <bibliography>
-
- <biblioentry id="COD" xreflabel="1">
- <authorgroup>
- <author>
- <firstname>Dave</firstname>
- <othername role="MI">A</othername>
- <surname>Patterson</surname>
- </author>
- <author>
- <firstname>John</firstname>
- <othername role="MI">L</othername>
- <surname>Hennessy</surname>
- </author>
- </authorgroup>
- <copyright><year>1998</year><holder>Morgan Kaufmann Publishers,
- Inc.</holder></copyright>
- <isbn>1-55860-428-6</isbn>
- <publisher>
- <publishername>Morgan Kaufmann Publishers, Inc.</publishername>
- </publisher>
- <title>Computer Organization and Design</title>
- <subtitle>The Hardware / Software Interface</subtitle>
- <pagenums>1-2</pagenums>
- </biblioentry>
-
- <biblioentry xreflabel="2">
- <authorgroup>
- <author>
- <firstname>W.</firstname>
- <othername role="Middle">Richard</othername>
- <surname>Stevens</surname>
- </author>
- </authorgroup>
- <copyright><year>1993</year><holder>Addison Wesley Longman,
- Inc.</holder></copyright>
- <isbn>0-201-56317-7</isbn>
- <publisher>
- <publishername>Addison Wesley Longman, Inc.</publishername>
- </publisher>
- <title>Advanced Programming in the Unix Environment</title>
- <pagenums>1-2</pagenums>
- </biblioentry>
-
- <biblioentry xreflabel="3">
- <authorgroup>
- <author>
- <firstname>Marshall</firstname>
- <othername role="Middle">Kirk</othername>
- <surname>McKusick</surname>
- </author>
- <author>
- <firstname>Keith</firstname>
- <surname>Bostic</surname>
- </author>
- <author>
- <firstname>Michael</firstname>
- <othername role="MI">J</othername>
- <surname>Karels</surname>
- </author>
- <author>
- <firstname>John</firstname>
- <othername role="MI">S</othername>
- <surname>Quarterman</surname>
- </author>
- </authorgroup>
- <copyright><year>1996</year><holder>Addison-Wesley Publishing Company,
- Inc.</holder></copyright>
- <isbn>0-201-54979-4</isbn>
- <publisher>
- <publishername>Addison-Wesley Publishing Company, Inc.</publishername>
- </publisher>
- <title>The Design and Implementation of the 4.4 BSD Operating System</title>
- <pagenums>1-2</pagenums>
- </biblioentry>
-
- <biblioentry id="Phrack" xreflabel="4">
- <authorgroup>
- <author>
- <firstname>Aleph</firstname>
- <surname>One</surname>
- </author>
- </authorgroup>
- <title>Phrack 49; "Smashing the Stack for Fun and Profit"</title>
- </biblioentry>
-
- <biblioentry id="StackGuard" xreflabel="5">
- <authorgroup>
- <author>
- <firstname>Chrispin</firstname>
- <surname>Cowan</surname>
- </author>
- <author>
- <firstname>Calton</firstname>
- <surname>Pu</surname>
- </author>
- <author>
- <firstname>Dave</firstname>
- <surname>Maier</surname>
- </author>
- </authorgroup>
- <title>StackGuard; Automatic Adaptive Detection and Prevention of
- Buffer-Overflow Attacks</title>
- </biblioentry>
-
- <biblioentry id="OpenBSD" xreflabel="6">
- <authorgroup>
- <author>
- <firstname>Todd</firstname>
- <surname>Miller</surname>
- </author>
- <author>
- <firstname>Theo</firstname>
- <surname>de Raadt</surname>
- </author>
- </authorgroup>
- <title>strlcpy and strlcat -- consistent, safe string copy and
- concatenation.</title>
- </biblioentry>
-
- </bibliography>
-
- </part>
-
-</book>
diff --git a/en_US.ISO8859-1/books/arch-handbook/chapters.ent b/en_US.ISO8859-1/books/arch-handbook/chapters.ent
deleted file mode 100644
index a8d98e2eff..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/chapters.ent
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
- Creates entities for each chapter in the FreeBSD Developer's
- Handbook. Each entity is named chap.foo, where foo is the value
- of the id attribute on that chapter, and corresponds to the name of
- the directory in which that chapter's .sgml file is stored.
-
- Chapters should be listed in the order in which they are referenced.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/chapters.ent,v 1.3 2001/03/29 06:14:32 murray Exp $
--->
-
-<!-- Part one -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part two -->
-<!ENTITY chap.tools SYSTEM "tools/chapter.sgml">
-<!ENTITY chap.secure SYSTEM "secure/chapter.sgml">
-
-<!-- Part three -->
-<!-- No significant material yet, still in book.sgml -->
-<!ENTITY chap.locking SYSTEM "locking/chapter.sgml">
-
-<!-- Part four -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part five -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part six -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part seven -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part eight -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part nine -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part ten -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part eleven -->
-<!ENTITY chap.driverbasics SYSTEM "driverbasics/chapter.sgml">
-<!ENTITY chap.pci SYSTEM "pci/chapter.sgml">
-<!ENTITY chap.scsi SYSTEM "scsi/chapter.sgml">
-<!ENTITY chap.usb SYSTEM "usb/chapter.sgml">
-
-<!-- Part twelve -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part thirteen -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part fourteen -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part fifteen (appendices) -->
-<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml">
diff --git a/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.sgml b/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.sgml
deleted file mode 100644
index 52d27534ad..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.sgml
+++ /dev/null
@@ -1,379 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/driverbasics/chapter.sgml,v 1.4 2001/04/09 00:33:42 dd Exp $
--->
-
-<chapter id="driverbasics">
- <title>Writing FreeBSD Device Drivers</title>
-
- <para>This chapter was written by &.murray with selections
- from a variety of sources including the intro(4) man page by Joerg
- Wunsch.</para>
-
- <sect1>
- <title>Introduction</title>
- <para>This chapter provides a brief introduction to writing device
- drivers for FreeBSD. A device in this context is a term used
- mostly for hardware-related stuff that belongs to the system,
- like disks, printers, or a graphics display with its keyboard.
- A device driver is the software component of the operating
- system that controls a specific device. There are also
- so-called pseudo-devices where a device driver emulates the
- behaviour of a device in software without any particular
- underlying hardware. Device drivers can be compiled into the
- system statically or loaded on demand through the dynamic kernel
- linker facility `kld'.</para>
-
- <para>Most devices in a Unix-like operating system are accessed
- through device-nodes, sometimes also called special files.
- These files are usually located under the directory
- <filename>/dev</filename> in the file system hierarchy. Until
- devfs is fully integrated into FreeBSD, each device node must be
- created statically and independent of the existence of the
- associated device driver. Most device nodes on the system are
- created by running <command>MAKEDEV</command>.</para>
-
- <para>Device drivers can roughly be broken down into two
- categories; character and network device drivers.</para>
-
- </sect1>
-
- <sect1>
- <title>Dynamic Kernel Linker Facility - KLD</title>
-
- <para>The kld interface allows system administrators to
- dynamically add and remove functionality from a running system.
- This allows device driver writers to load their new changes into
- a running kernel without constantly rebooting to test
- changes.</para>
-
- <para>The kld interface is used through the following
- administrator commands :
-
- <itemizedlist>
- <listitem><simpara><command>kldload</command> - loads a new kernel
- module</simpara></listitem>
- <listitem><simpara><command>kldunload</command> - unloads a kernel
- module</simpara></listitem>
- <listitem><simpara><command>kldstat</command> - lists the currently loadded
- modules</simpara></listitem>
- </itemizedlist>
- </para>
-
- <para>Skeleton Layout of a kernel module</para>
-
-<programlisting>/*
- * KLD Skeleton
- * Inspired by Andrew Reiter's Daemonnews article
- */
-
-#include &lt;sys/types.h&gt;
-#include &lt;sys/module.h&gt;
-#include &lt;sys/systm.h&gt; /* uprintf */
-#include &lt;sys/errno.h&gt;
-#include &lt;sys/param.h&gt; /* defines used in kernel.h */
-#include &lt;sys/kernel.h&gt; /* types used in module initialization */
-
-/*
- * Load handler that deals with the loading and unloading of a KLD.
- */
-
-static int
-skel_loader(struct module *m, int what, void *arg)
-{
- int err = 0;
-
- switch (what) {
- case MOD_LOAD: /* kldload */
- uprintf("Skeleton KLD loaded.\n");
- break;
- case MOD_UNLOAD:
- uprintf("Skeleton KLD unloaded.\n");
- break;
- default:
- err = EINVAL;
- break;
- }
- return(err);
-}
-
-/* Declare this module to the rest of the kernel */
-
-DECLARE_MODULE(skeleton, skel_loader, SI_SUB_KLD, SI_ORDER_ANY);</programlisting>
-
-
- <sect2>
- <title>Makefile</title>
-
- <para>FreeBSD provides a makefile include that you can use to
- quickly compile your kernel addition.</para>
-
- <programlisting>SRCS=skeleton.c
-KMOD=skeleton
-
-.include &lt;bsd.kmod.mk&gt;</programlisting>
-
- <para>Simply running <command>make</command> with this makefile
- will create a file <filename>skeleton.ko</filename> that can
- be loaded into your system by typing :
-<screen> &prompt.root
- kldload -v ./skeleton.ko
-</screen>
- </para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Accessing a device driver</title>
-
- <para>Unix provides a common set of system calls for user
- applications to use. The upper layers of the kernel dispatch
- these calls to the corresponding device driver when a user
- accesses a device node. The <command>/dev/MAKEDEV</command>
- script makes most of the device nodes for your system but if you
- are doing your own driver development it may be necessary to
- create your own device nodes with <command>mknod</command>
- </para>
-
- <sect2>
- <title>Creating static device nodes</title>
-
- <para>The <command>mknod</command> command requires four
- arguments to create a device node. You must specify the name
- of this device node, the type of device, the major number of
- the device, and the minor number of the device.</para>
- </sect2>
-
- <sect2>
- <title>Dynamic device nodes</title>
-
- <para>The device filesystem, or devfs, provides access to the
- kernel's device namespace in the global filesystem namespace.
- This eliminates the problems of potentially having a device
- driver without a static device node, or a device node without
- an installed device driver. Devfs is still a work in
- progress, but it is already working quite nice.</para>
- </sect2>
-
- </sect1>
-
- <sect1>
- <title>Character Devices</title>
-
- <para>A character device driver is one that transfers data
- directly to and from a user process. This is the most common
- type of device driver and there are plenty of simple examples in
- the source tree.</para>
-
- <para>This simple example pseudo-device remembers whatever values
- you write to it and can then supply them back to you when you
- read from it.</para>
-
-<programlisting>/*
- * Simple `echo' pseudo-device KLD
- *
- * Murray Stokely
- */
-
-#define MIN(a,b) (((a) < (b)) ? (a) : (b))
-
-#include &lt;sys/types.h&gt;
-#include &lt;sys/module.h&gt;
-#include &lt;sys/systm.h&gt; /* uprintf */
-#include &lt;sys/errno.h&gt;
-#include &lt;sys/param.h&gt; /* defines used in kernel.h */
-#include &lt;sys/kernel.h&gt; /* types used in module initialization */
-#include &lt;sys/conf.h&gt; /* cdevsw struct */
-#include &lt;sys/uio.h&gt; /* uio struct */
-#include &lt;sys/malloc.h&gt;
-
-#define BUFFERSIZE 256
-
-/* Function prototypes */
-d_open_t echo_open;
-d_close_t echo_close;
-d_read_t echo_read;
-d_write_t echo_write;
-
-/* Character device entry points */
-static struct cdevsw echo_cdevsw = {
- echo_open,
- echo_close,
- echo_read,
- echo_write,
- noioctl,
- nopoll,
- nommap,
- nostrategy,
- "echo",
- 33, /* reserved for lkms - /usr/src/sys/conf/majors */
- nodump,
- nopsize,
- D_TTY,
- -1
-};
-
-typedef struct s_echo {
- char msg[BUFFERSIZE];
- int len;
-} t_echo;
-
-/* vars */
-static dev_t sdev;
-static int len;
-static int count;
-static t_echo *echomsg;
-
-MALLOC_DECLARE(M_ECHOBUF);
-MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module");
-
-/*
- * This function acts is called by the kld[un]load(2) system calls to
- * determine what actions to take when a module is loaded or unloaded.
- */
-
-static int
-echo_loader(struct module *m, int what, void *arg)
-{
- int err = 0;
-
- switch (what) {
- case MOD_LOAD: /* kldload */
- sdev = make_dev(<literal>&</literal>echo_cdevsw,
- 0,
- UID_ROOT,
- GID_WHEEL,
- 0600,
- "echo");
- /* kmalloc memory for use by this driver */
- /* malloc(256,M_ECHOBUF,M_WAITOK); */
- MALLOC(echomsg, t_echo *, sizeof(t_echo), M_ECHOBUF, M_WAITOK);
- printf("Echo device loaded.\n");
- break;
- case MOD_UNLOAD:
- destroy_dev(sdev);
- FREE(echomsg,M_ECHOBUF);
- printf("Echo device unloaded.\n");
- break;
- default:
- err = EINVAL;
- break;
- }
- return(err);
-}
-
-int
-echo_open(dev_t dev, int oflags, int devtype, struct proc *p)
-{
- int err = 0;
-
- uprintf("Opened device \"echo\" successfully.\n");
- return(err);
-}
-
-int
-echo_close(dev_t dev, int fflag, int devtype, struct proc *p)
-{
- uprintf("Closing device \"echo.\"\n");
- return(0);
-}
-
-/*
- * The read function just takes the buf that was saved via
- * echo_write() and returns it to userland for accessing.
- * uio(9)
- */
-
-int
-echo_read(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
- int amt;
-
- /* How big is this read operation? Either as big as the user wants,
- or as big as the remaining data */
- amt = MIN(uio->uio_resid, (echomsg->len - uio->uio_offset > 0) ? echomsg->len - uio->uio_offset : 0);
- if ((err = uiomove(echomsg->msg + uio->uio_offset,amt,uio)) != 0) {
- uprintf("uiomove failed!\n");
- }
-
- return err;
-}
-
-/*
- * echo_write takes in a character string and saves it
- * to buf for later accessing.
- */
-
-int
-echo_write(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
-
- /* Copy the string in from user memory to kernel memory */
- err = copyin(uio->uio_iov->iov_base, echomsg->msg, MIN(uio->uio_iov->iov_len,BUFFERSIZE));
-
- /* Now we need to null terminate */
- *(echomsg->msg + MIN(uio->uio_iov->iov_len,BUFFERSIZE)) = 0;
- /* Record the length */
- echomsg->len = MIN(uio->uio_iov->iov_len,BUFFERSIZE);
-
- if (err != 0) {
- uprintf("Write failed: bad address!\n");
- }
-
- count++;
- return(err);
-}
-
-DEV_MODULE(echo,echo_loader,NULL);</programlisting>
-
- <para>To install this driver you will first need to make a node on
- your filesystem with a command such as : </para>
-
-<screen>
- &prompt.root mknod /dev/echo c 33 0
-</screen>
-
- <para>With this driver loaded you should now be able to type
- something like :</para>
-
-<screen>
- &prompt.root echo -n "Test Data" > /dev/echo
- &prompt.root cat /dev/echo
- Test Data
-</screen>
-
- <para>Real hardware devices in the next chapter..</para>
-
- <para>Additional Resources
- <itemizedlist>
- <listitem><simpara><ulink
- url="http://www.daemonnews.org/200010/blueprints.html">Dynamic
- Kernel Linker (KLD) Facility Programming Tutorial</ulink> -
- <ulink url="http://www.daemonnews.org">Daemonnews</ulink> October 2000</simpara></listitem>
- <listitem><simpara><ulink
- url="http://www.daemonnews.org/200007/newbus-intro.html">How
- to Write Kernel Drivers with NEWBUS</ulink> - <ulink
- url="http://www.daemonnews.org">Daemonnews</ulink> July
- 2000</simpara></listitem>
- </itemizedlist>
- </para>
- </sect1>
-
- <sect1>
- <title>Network Drivers</title>
-
- <para>Drivers for network devices do not use device nodes in order
- to be accessed. Their selection is based on other decisions
- made inside the kernel and instead of calling open(), use of a
- network device is generally introduced by using the system call
- socket(2).</para>
-
- <para>man ifnet(), loopback device, Bill Paul's drivers,
- etc..</para>
-
- </sect1>
-
-</chapter>
diff --git a/en_US.ISO8859-1/books/arch-handbook/locking/chapter.sgml b/en_US.ISO8859-1/books/arch-handbook/locking/chapter.sgml
deleted file mode 100644
index 993d649ffc..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/locking/chapter.sgml
+++ /dev/null
@@ -1,333 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD SMP Next Generation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/locking/chapter.sgml,v 1.1 2000/11/29 04:15:17 jhb Exp $
--->
-
-<chapter id="locking">
- <title>Locking Notes</title>
-
- <para><emphasis>This chapter is maintained by the FreeBSD SMP Next
- Generation Project
- <email>freebsd-smp@FreeBSD.org</email>.</emphasis></para>
-
-
- <para>This document outlines the locking used in the FreeBSD kernel
- to permit effective multi-processing within the kernel. Locking
- can be achieved via several means. Data structures can be
- protected by mutexes or &man.lockmgr.9; locks. A few variables
- are protected simply by always using atomic operations to access
- them.</para>
-
- <sect1>
- <title>Mutexes</title>
-
- <para>A mutex is simply a lock used to guarantee mutual exclusion.
- Specifically, a mutex may only be owned by one entity at a time.
- If another entity wishes to obtain a mutex that is already
- owned, it must wait until the mutex is released. In the FreeBSD
- kernel, mutexes are owned by processes.</para>
-
- <para>Mutexes may be recursively acquired, but they are intended
- to be held for a short period of time. Specifically, one may
- not sleep while holding a mutex. If you need to hold a lock
- across a sleep, use a &man.lockmgr.9; lock.</para>
-
- <para>Each mutex has several properties of interest:</para>
-
- <variablelist>
- <varlistentry>
- <term>Variable Name</term>
- <listitem>
- <para>The name of the <type>struct mtx</type> variable in
- the kernel source.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Logical Name</term>
- <listitem>
- <para>The name of the mutex assigned to it by
- <function>mtx_init</function>. This name is displayed in
- KTR trace messages and witness errors and warnings and is
- used to distinguish mutexes in the witness code.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Type</term>
- <listitem>
- <para>The type of the mutex in terms of the
- <constant>MTX_*</constant> flags. The meaning for each
- flag is related to its meaning as documented in
- &man.mutex.9;.</para>
-
- <variablelist>
- <varlistentry>
- <term><constant>MTX_DEF</constant></term>
- <listitem>
- <para>A sleep mutex</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_SPIN</constant></term>
- <listitem>
- <para>A spin mutex</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_COLD</constant></term>
- <listitem>
- <para>This mutex is initialized very early. Thus, it
- must be declared via
- <function>MUTEX_DECLARE</function>, and the
- <constant>MTX_COLD</constant> flag must be passed to
- <function>mtx_init</function>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_TOPHALF</constant></term>
- <listitem>
- <para>This spin mutex does not disable
- interrupts.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_NORECURSE</constant></term>
- <listitem>
- <para>This mutex is not allowed to recurse.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Protectees</term>
- <listitem>
- <para>A list of data structures or data structure members
- that this entry protects. For data structure members, the
- name will be in the form of
- <structname/structure name/.<structfield/member name/.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Dependent Functions</term>
- <listitem>
- <para>Functions that can only be called if this mutex is
- held.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <table frame="all" colsep="1" rowsep="1" pgwide="1">
- <title>Mutex List</title>
-
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Variable Name</entry>
- <entry>Logical Name</entry>
- <entry>Type</entry>
- <entry>Protectees</entry>
- <entry>Dependent Functions</entry>
- </row>
- </thead>
-
- <!-- The scheduler lock -->
- <tbody>
- <row>
- <entry>sched_lock</entry>
- <entry><quote>sched lock</quote></entry>
- <entry>
- <constant>MTX_SPIN</constant> |
- <constant>MTX_COLD</constant>
- </entry>
- <entry>
- <varname>_gmonparam</varname>,
- <varname>cnt.v_swtch</varname>,
- <varname>cp_time</varname>,
- <varname>curpriority</varname>,
- <structname/mtx/.<structfield/mtx_blocked/,
- <structname/mtx/.<structfield/mtx_contested/,
- <structname/proc/.<structfield/p_contested/,
- <structname/proc/.<structfield/p_blocked/,
- <structname/proc/.<structfield/p_flag/
- (<constant>P_PROFIL</constant> XXX,
- <constant>P_INMEM</constant>,
- <constant>P_SINTR</constant>,
- <constant>P_TIMEOUT</constant>,
- <constant>P_SWAPINREQ</constant> XXX,
- <constant>P_INMEN</constant> XXX),
- <structname/proc/.<structfield/p_nice/,
- <structname/proc/.<structfield/p_procq/,
- <structname/proc/.<structfield/p_blocked/,
- <structname/proc/.<structfield/p_estcpu/,
- <structname/proc/.<structfield/p_nativepri/,
- <structname/proc/.<structfield/p_priority/,
- <structname/proc/.<structfield/p_usrpri/,
- <structname/proc/.<structfield/p_rtprio/,
- <structname/proc/.<structfield/p_rqindex/,
- <structname/proc/.<structfield/p_stats->p_prof/,
- <structname/proc/.<structfield/p_stats->p_ru/,
- <structname/proc/.<structfield/p_stat/,
- <structname/proc/.<structfield/p_cpticks/
- <structname/proc/.<structfield/p_iticks/,
- <structname/proc/.<structfield/p_uticks/,
- <structname/proc/.<structfield/p_sticks/,
- <structname/proc/.<structfield/p_swtime/,
- <structname/proc/.<structfield/p_slptime/,
- <structname/proc/.<structfield/p_runtime/,
- <structname/proc/.<structfield/p_pctcpu/,
- <structname/proc/.<structfield/p_oncpu/,
- <structname/proc/.<structfield/p_asleep/,
- <structname/proc/.<structfield/p_wchan/,
- <structname/proc/.<structfield/p_wmesg/,
- <structname/proc/.<structfield/p_slpq/,
- <structname/proc/.<structfield/p_vmspace/
- (XXX - in <function>statclock</function>),
- <varname>pscnt</varname>,
- <varname>slpque</varname>,
- <varname>itqueuebits</varname>,
- <varname>itqueues</varname>,
- <varname>rtqueuebits</varname>,
- <varname>rtqueues</varname>,
- <varname>queuebits</varname>,
- <varname>queues</varname>,
- <varname>idqueuebits</varname>,
- <varname>idqueues</varname>,
- <varname>switchtime</varname>,
- </entry>
- <entry>
- <function>setrunqueue</function>,
- <function>remrunqueue</function>,
- <function>mi_switch</function>,
- <function>chooseproc</function>,
- <function>schedclock</function>,
- <function>resetpriority</function>,
- <function>updatepri</function>,
- <function>maybe_resched</function>,
- <function>cpu_switch</function>,
- <function>cpu_throw</function>
- </entry>
- </row>
-
- <!-- The vm86 pcb lock -->
- <row>
- <entry>vm86pcb_lock</entry>
- <entry><quote>vm86pcb lock</quote></entry>
- <entry>
- <constant>MTX_DEF</constant> |
- <constant>MTX_COLD</constant>
- </entry>
- <entry>
- <varname>vm86pcb</varname>
- </entry>
- <entry>
- <function>vm86_bioscall</function>
- </entry>
- </row>
-
- <!-- Giant -->
- <row>
- <entry>Giant</entry>
- <entry><quote>Giant</quote></entry>
- <entry>
- <constant>MTX_DEF</constant> |
- <constant>MTX_COLD</constant>
- </entry>
- <entry>nearly everything</entry>
- <entry>lots</entry>
- </row>
-
- <!-- The callout lock -->
- <row>
- <entry>callout_lock</entry>
- <entry><quote>callout lock</quote></entry>
- <entry>
- <constant>MTX_SPIN</constant>
- </entry>
- <entry>
- <varname>callfree</varname>,
- <varname>callwheel</varname>,
- <varname>nextsoftcheck</varname>,
- <structname/proc/.<structfield/p_itcallout/,
- <structname/proc/.<structfield/p_slpcallout/,
- <varname>softticks</varname>,
- <varname>ticks</varname>
- </entry>
- <entry>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect1>
-
- <sect1>
- <title>Lock Manager Locks</title>
-
- <para>Locks that are provided via the &man.lockmgr.9; interface
- are lock manager locks. These locks are reader-writer locks and
- may be held by a sleeping process.</para>
-
- <table>
- <title>&man.lockmgr.9; Lock List</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable Name</entry>
- <entry>Protectees</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><varname>allproc_lock</varname></entry>
- <entry>
- <varname>allproc</varname>
- <varname>zombproc</varname>
- <varname>pidhashtbl</varname>
- <structname/proc/.<structfield/p_list/
- <structname/proc/.<structfield/p_hash/
- <varname>nextpid</varname>
- </entry>
- <entry><varname>proctree_lock</varname></entry>
- <entry>
- <structname/proc/.<structfield/p_children/
- <structname/proc/.<structfield/p_sibling/
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect1>
-
- <sect1>
- <title>Atomically Protected Variables</title>
-
- <para>An atomically protected variable is a special variable that
- is not protected by an explicit lock. Instead, all data
- accesses to the variables use special atomic operations as
- described in &man.atomic.9;. Very few variables are treated
- this way, although other synchronization primitives such as
- mutexes are implemented with atomically protected
- variables.</para>
-
- <itemizedlist>
- <listitem>
- <para><varname>astpending</varname></para>
- </listitem>
-
- <listitem>
- <para><structname/mtx/.<structfield/mtx_lock/</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
diff --git a/en_US.ISO8859-1/books/arch-handbook/pci/chapter.sgml b/en_US.ISO8859-1/books/arch-handbook/pci/chapter.sgml
deleted file mode 100644
index ca94063864..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/pci/chapter.sgml
+++ /dev/null
@@ -1,372 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/pci/chapter.sgml,v 1.2 2001/04/09 00:33:42 dd Exp $
--->
-
-<chapter id="pci">
- <title>PCI Devices</title>
-
- <para>This chapter will talk about the FreeBSD mechanisms for
- writing a device driver for a device on a PCI bus.</para>
-
- <sect1>
- <title>Probe and Attach</title>
-
- <para>Information here about how the PCI bus code iterates through
- the unattached devices and see if a newly loaded kld will attach
- to any of them.</para>
-
-<programlisting>/*
- * Simple KLD to play with the PCI functions.
- *
- * Murray Stokely
- */
-
-#define MIN(a,b) (((a) < (b)) ? (a) : (b))
-
-#include &lt;sys/types.h&gt;
-#include &lt;sys/module.h&gt;
-#include &lt;sys/systm.h&gt; /* uprintf */
-#include &lt;sys/errno.h&gt;
-#include &lt;sys/param.h&gt; /* defines used in kernel.h */
-#include &lt;sys/kernel.h&gt; /* types used in module initialization */
-#include &lt;sys/conf.h&gt; /* cdevsw struct */
-#include &lt;sys/uio.h&gt; /* uio struct */
-#include &lt;sys/malloc.h&gt;
-#include &lt;sys/bus.h&gt; /* structs, prototypes for pci bus stuff */
-
-#include &lt;pci/pcivar.h&gt; /* For get_pci macros! */
-
-/* Function prototypes */
-d_open_t mypci_open;
-d_close_t mypci_close;
-d_read_t mypci_read;
-d_write_t mypci_write;
-
-/* Character device entry points */
-
-static struct cdevsw mypci_cdevsw = {
- mypci_open,
- mypci_close,
- mypci_read,
- mypci_write,
- noioctl,
- nopoll,
- nommap,
- nostrategy,
- "mypci",
- 36, /* reserved for lkms - /usr/src/sys/conf/majors */
- nodump,
- nopsize,
- D_TTY,
- -1
-};
-
-/* vars */
-static dev_t sdev;
-
-/* We're more interested in probe/attach than with
- open/close/read/write at this point */
-
-int
-mypci_open(dev_t dev, int oflags, int devtype, struct proc *p)
-{
- int err = 0;
-
- uprintf("Opened device \"mypci\" successfully.\n");
- return(err);
-}
-
-int
-mypci_close(dev_t dev, int fflag, int devtype, struct proc *p)
-{
- int err=0;
-
- uprintf("Closing device \"mypci.\"\n");
- return(err);
-}
-
-int
-mypci_read(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
-
- uprintf("mypci read!\n");
- return err;
-}
-
-int
-mypci_write(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
-
- uprintf("mypci write!\n");
- return(err);
-}
-
-/* PCI Support Functions */
-
-/*
- * Return identification string if this is device is ours.
- */
-static int
-mypci_probe(device_t dev)
-{
- uprintf("MyPCI Probe\n"
- "Vendor ID : 0x%x\n"
- "Device ID : 0x%x\n",pci_get_vendor(dev),pci_get_device(dev));
-
- if (pci_get_vendor(dev) == 0x11c1) {
- uprintf("We've got the Winmodem, probe successful!\n");
- return 0;
- }
-
- return ENXIO;
-}
-
-/* Attach function is only called if the probe is successful */
-
-static int
-mypci_attach(device_t dev)
-{
- uprintf("MyPCI Attach for : deviceID : 0x%x\n",pci_get_vendor(dev));
- sdev = make_dev(<literal>&</literal>mypci_cdevsw,
- 0,
- UID_ROOT,
- GID_WHEEL,
- 0600,
- "mypci");
- uprintf("Mypci device loaded.\n");
- return ENXIO;
-}
-
-/* Detach device. */
-
-static int
-mypci_detach(device_t dev)
-{
- uprintf("Mypci detach!\n");
- return 0;
-}
-
-/* Called during system shutdown after sync. */
-
-static int
-mypci_shutdown(device_t dev)
-{
- uprintf("Mypci shutdown!\n");
- return 0;
-}
-
-/*
- * Device suspend routine.
- */
-static int
-mypci_suspend(device_t dev)
-{
- uprintf("Mypci suspend!\n");
- return 0;
-}
-
-/*
- * Device resume routine.
- */
-
-static int
-mypci_resume(device_t dev)
-{
- uprintf("Mypci resume!\n");
- return 0;
-}
-
-static device_method_t mypci_methods[] = {
- /* Device interface */
- DEVMETHOD(device_probe, mypci_probe),
- DEVMETHOD(device_attach, mypci_attach),
- DEVMETHOD(device_detach, mypci_detach),
- DEVMETHOD(device_shutdown, mypci_shutdown),
- DEVMETHOD(device_suspend, mypci_suspend),
- DEVMETHOD(device_resume, mypci_resume),
-
- { 0, 0 }
-};
-
-static driver_t mypci_driver = {
- "mypci",
- mypci_methods,
- 0,
- /* sizeof(struct mypci_softc), */
-};
-
-static devclass_t mypci_devclass;
-
-DRIVER_MODULE(mypci, pci, mypci_driver, mypci_devclass, 0, 0);</programlisting>
-
- <para>Additional Resources
- <itemizedlist>
- <listitem><simpara><ulink url="http://www.pcisig.org">PCI
- Special Interest Group</ulink></simpara></listitem>
-
- <listitem><simpara>PCI System Architecture, Fourth Edition by
- Tom Shanley, et al.</simpara></listitem>
-
- </itemizedlist>
- </para>
- </sect1>
-
- <sect1>
- <title>Bus Resources</title>
-
- <para>FreeBSD provides an object-oriented mechanism for requesting
- resources from a parent bus. Almost all devices will be a child
- member of some sort of bus (PCI, ISA, USB, SCSI, etc) and these
- devices need to acquire resources from their parent bus (such as
- memory segments, interrupt lines, or DMA channels).</para>
-
- <sect2>
- <title>Base Address Registers</title>
-
- <para>To do anything particularly useful with a PCI device you
- will need to obtain the <emphasis>Base Address
- Registers</emphasis> (BARs) from the PCI Configuration space.
- The PCI-specific details of obtaining the BAR is abstracted in
- the <function>bus_alloc_resource()</function> function.</para>
-
- <para>For example, a typical driver might have something similar
- to this in the <function>attach()</function> function. : </para>
-
-<programlisting> sc->bar0id = 0x10;
- sc->bar0res = bus_alloc_resource(dev, SYS_RES_MEMORY, &amp;(sc->bar0id),
- 0, ~0, 1, RF_ACTIVE);
- if (sc->bar0res == NULL) {
- uprintf("Memory allocation of PCI base register 0 failed!\n");
- error = ENXIO;
- goto fail1;
- }
-
- sc->bar1id = 0x14;
- sc->bar1res = bus_alloc_resource(dev, SYS_RES_MEMORY, &amp;(sc->bar1id),
- 0, ~0, 1, RF_ACTIVE);
- if (sc->bar1res == NULL) {
- uprintf("Memory allocation of PCI base register 1 failed!\n");
- error = ENXIO;
- goto fail2;
- }
- sc->bar0_bt = rman_get_bustag(sc->bar0res);
- sc->bar0_bh = rman_get_bushandle(sc->bar0res);
- sc->bar1_bt = rman_get_bustag(sc->bar1res);
- sc->bar1_bh = rman_get_bushandle(sc->bar1res);
-
-</programlisting>
-
- <para>Handles for each base address register are kept in the
- <structname>softc</structname> structure so that they can be
- used to write to the device later.</para>
-
- <para>These handles can then be used to read or write from the
- device registers with the <function>bus_space_*</function>
- functions. For example, a driver might contain a shorthand
- function to read from a board specific register like this :
- </para>
-
-<programlisting>uint16_t
-board_read(struct ni_softc *sc, uint16_t address) {
- return bus_space_read_2(sc->bar1_bt, sc->bar1_bh, address);
-}
-</programlisting>
-
- <para>Similarly, one could write to the registers with : </para>
-
-<programlisting>void
-board_write(struct ni_softc *sc, uint16_t address, uint16_t value) {
- bus_space_write_2(sc->bar1_bt, sc->bar1_bh, address, value);
-}
-</programlisting>
-
- <para>These functions exist in 8bit, 16bit, and 32bit versions
- and you should use
- <function>bus_space_{read|write}_{1|2|4}</function>
- accordingly.</para>
-
- </sect2>
- <sect2>
- <title>Interrupts</title>
-
- <para>Interrupts are allocated from the object-oriented bus code
- in a way similar to the memory resources. First an IRQ
- resource must be allocated from the parent bus, and then the
- interrupt handler must be setup to deal with this IRQ.</para>
-
- <para>Again, a sample from a device
- <function>attach()</function> function says more than
- words.</para>
-
-<programlisting>/* Get the IRQ resource */
-
- sc->irqid = 0x0;
- sc->irqres = bus_alloc_resource(dev, SYS_RES_IRQ, &amp;(sc->irqid),
- 0, ~0, 1, RF_SHAREABLE | RF_ACTIVE);
- if (sc->irqres == NULL) {
- uprintf("IRQ allocation failed!\n");
- error = ENXIO;
- goto fail3;
- }
-
- /* Now we should setup the interrupt handler */
-
- error = bus_setup_intr(dev, sc->irqres, INTR_TYPE_MISC,
- my_handler, sc, &amp;(sc->handler));
- if (error) {
- printf("Couldn't set up irq\n");
- goto fail4;
- }
-
- sc->irq_bt = rman_get_bustag(sc->irqres);
- sc->irq_bh = rman_get_bushandle(sc->irqres);
-</programlisting>
-
- </sect2>
-
- <sect2>
- <title>DMA</title>
- <para>On the PC, peripherals that want to do bus-mastering DMA
- must deal with physical addresses. This is a problem since
- FreeBSD uses virtual memory and deals almost exclusively with
- virtual addresses. Fortunately, there is a function,
- <function>vtophys()</function> to help.</para>
-
-<programlisting>#include &lt;vm/vm.h&gt;
-#include &lt;vm/pmap.h&gt;
-
-#define vtophys(virtual_address) (...)
-</programlisting>
-
- <para>The solution is a bit different on the alpha however, and
- what we really want is a function called
- <function>vtobus()</function>.</para>
-
-<programlisting>#if defined(__alpha__)
-#define vtobus(va) alpha_XXX_dmamap((vm_offset_t)va)
-#else
-#define vtobus(va) vtophys(va)
-#endif
-</programlisting>
-
- </sect2>
-
- <sect2>
- <title>Deallocating Resources</title>
-
- <para>It's very important to deallocate all of the resources
- that were allocated during <function>attach()</function>.
- Care must be taken to deallocate the correct stuff even on a
- failure condition so that the system will remain useable while
- your driver dies.</para>
-
- </sect2>
- </sect1>
-
-</chapter>
-
-
diff --git a/en_US.ISO8859-1/books/arch-handbook/scsi/chapter.sgml b/en_US.ISO8859-1/books/arch-handbook/scsi/chapter.sgml
deleted file mode 100644
index 63b8d5475d..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/scsi/chapter.sgml
+++ /dev/null
@@ -1,1983 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/scsi/chapter.sgml,v 1.2 2001/04/09 00:33:44 dd Exp $
--->
-
-<chapter id="scsi">
- <title>Common Access Method SCSI Controllers</title>
-
- <para><emphasis>This chapter was written by &a.babkin;
- Modifications for the handbook made by
- &a.murray;.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>This document assumes that the reader has a general
- understanding of device drivers in FreeBSD and of the SCSI
- protocol. Much of the information in this document was
- extracted from the drivers :</para>
-
- <itemizedlist>
-
- <listitem><para>ncr (<filename>/sys/pci/ncr.c</filename>) by
- Wolfgang Stanglmeier and Stefan Esser</para></listitem>
-
- <listitem><para>sym (<filename>/sys/pci/sym.c</filename>) by
- Gerard Roudier</para></listitem>
-
- <listitem><para>aic7xxx
- (<filename>/sys/dev/aic7xxx/aic7xxx.c</filename>) by Justin
- T. Gibbs</para></listitem>
-
- </itemizedlist>
-
- <para>and from the CAM code itself (by Justing T. Gibbs, see
- <filename>/sys/cam/*</filename>). When some solution looked the
- most logical and was essentially verbatim extracted from the code
- by Justin Gibbs, I marked it as "recommended".</para>
-
- <para>The document is illustrated with examples in
- pseudo-code. Although sometimes the examples have many details
- and look like real code, it's still pseudo-code. It was written
- to demonstrate the concepts in an understandable way. For a real
- driver other approaches may be more modular and efficient. It
- also abstracts from the hardware details, as well as issues that
- would cloud the demonstrated concepts or that are supposed to be
- described in the other chapters of the developers handbook. Such
- details are commonly shown as calls to functions with descriptive
- names, comments or pseudo-statements. Fortunately real life
- full-size examples with all the details can be found in the real
- drivers.</para>
-
- </sect1>
-
- <sect1>
- <title>General architecture</title>
-
- <para>CAM stands for Common Access Method. It's a generic way to
- address the I/O buses in a SCSI-like way. This allows a
- separation of the generic device drivers from the drivers
- controlling the I/O bus: for example the disk driver becomes able
- to control disks on both SCSI, IDE, and/or any other bus so the
- disk driver portion does not have to be rewritten (or copied and
- modified) for every new I/O bus. Thus the two most important
- active entities are:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>Peripheral Modules</emphasis> - a
- driver for peripheral devices (disk, tape, CDROM,
- etc.)</para></listitem>
- <listitem><para><emphasis>SCSI Interface Modules </emphasis>(SIM)
- - a Host Bus Adapter drivers for connecting to an I/O bus such
- as SCSI or IDE.</para></listitem>
- </itemizedlist>
-
- <para>A peripheral driver receives requests from the OS, converts
- them to a sequence of SCSI commands and passes these SCSI
- commands to a SCSI Interface Module. The SCSI Interface Module
- is responsible for passing these commands to the actual hardware
- (or if the actual hardware is not SCSI but, for example, IDE
- then also converting the SCSI commands to the native commands of
- the hardware).</para>
-
- <para>Because we are interested in writing a SCSI adapter driver
- here, from this point on we will consider everything from the
- SIM standpoint.</para>
-
- <para>A typical SIM driver needs to include the following
- CAM-related header files:</para>
-
-<programlisting>#include &lt;cam/cam.h&gt;
-#include &lt;cam/cam_ccb.h&gt;
-#include &lt;cam/cam_sim.h&gt;
-#include &lt;cam/cam_xpt_sim.h&gt;
-#include &lt;cam/cam_debug.h&gt;
-#include &lt;cam/scsi/scsi_all.h&gt;</programlisting>
-
- <para>The first thing each SIM driver must do is register itself
- with the CAM subsystem. This is done during the driver's
- <function>xxx_attach()</function> function (here and further
- xxx_ is used to denote the unique driver name prefix). The
- <function>xxx_attach()</function> function itself is called by
- the system bus auto-configuration code which we don't describe
- here.</para>
-
- <para>This is achieved in multiple steps: first it's necessary to
- allocate the queue of requests associated with this SIM:</para>
-
-<programlisting> struct cam_devq *devq;
-
- if(( devq = cam_simq_alloc(SIZE) )==NULL) {
- error; /* some code to handle the error */
- }</programlisting>
-
- <para>Here SIZE is the size of the queue to be allocated, maximal
- number of requests it could contain. It's the number of requests
- that the SIM driver can handle in parallel on one SCSI
- card. Commonly it can be calculated as:</para>
-
-<programlisting>SIZE = NUMBER_OF_SUPPORTED_TARGETS * MAX_SIMULTANEOUS_COMMANDS_PER_TARGET</programlisting>
-
- <para>Next we create a descriptor of our SIM:</para>
-
-<programlisting> struct cam_sim *sim;
-
- if(( sim = cam_sim_alloc(action_func, poll_func, driver_name,
- softc, unit, max_dev_transactions,
- max_tagged_dev_transactions, devq) )==NULL) {
- cam_simq_free(devq);
- error; /* some code to handle the error */
- }</programlisting>
-
- <para>Note that if we are not able to create a SIM descriptor we
- free the <structname>devq</structname> also because we can do
- nothing else with it and we want to conserve memory.</para>
-
- <para>If a SCSI card has multiple SCSI buses on it then each bus
- requires its own <structname>cam_sim</structname>
- structure.</para>
-
- <para>An interesting question is what to do if a SCSI card has
- more than one SCSI bus, do we need one
- <structname>devq</structname> structure per card or per SCSI
- bus? The answer given in the comments to the CAM code is:
- either way, as the driver's author prefers.</para>
-
- <para>The arguments are :
- <itemizedlist>
-
- <listitem><para><function>action_func</function> - pointer to
- the driver's <function>xxx_action</function> function.
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_action</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>,
- <parameter>union ccb *ccb</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
- </para></listitem>
-
- <listitem><para><function>poll_func</function> - pointer to
- the driver's <function>xxx_poll()</function>
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_poll</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
- </para></listitem>
-
- <listitem><para>driver_name - the name of the actual driver,
- such as "ncr" or "wds"</para></listitem>
-
- <listitem><para><structName>softc</structName> - pointer to the
- driver's internal descriptor for this SCSI card. This
- pointer will be used by the driver in future to get private
- data.</para></listitem>
-
- <listitem><para>unit - the controller unit number, for example
- for controller "wds0" this number will be
- 0</para></listitem>
-
- <listitem><para>max_dev_transactions - maximal number of
- simultaneous transactions per SCSI target in the non-tagged
- mode. This value will be almost universally equal to 1, with
- possible exceptions only for the non-SCSI cards. Also the
- drivers that hope to take advantage by preparing one
- transaction while another one is executed may set it to 2
- but this does not seem to be worth the
- complexity.</para></listitem>
-
- <listitem><para>max_tagged_dev_transactions - the same thing,
- but in the tagged mode. Tags are the SCSI way to initiate
- multiple transactions on a device: each transaction is
- assigned a unique tag and the transaction is sent to the
- device. When the device completes some transaction it sends
- back the result together with the tag so that the SCSI
- adapter (and the driver) can tell which transaction was
- completed. This argument is also known as the maximal tag
- depth. It depends on the abilities of the SCSI
- adapter.</para></listitem>
- </itemizedlist>
- </para>
-
- <para>Finally we register the SCSI buses associated with our SCSI
- adapter:</para>
-
-<programlisting> if(xpt_bus_register(sim, bus_number) != CAM_SUCCESS) {
- cam_sim_free(sim, /*free_devq*/ TRUE);
- error; /* some code to handle the error */
- }</programlisting>
-
- <para>If there is one <structName>devq</structName> structure per
- SCSI bus (i.e. we consider a card with multiple buses as
- multiple cards with one bus each) then the bus number will
- always be 0, otherwise each bus on the SCSI card should be get a
- distinct number. Each bus needs its own separate structure
- cam_sim.</para>
-
- <para>After that our controller is completely hooked to the CAM
- system. The value of <structName>devq</structName> can be
- discarded now: sim will be passed as an argument in all further
- calls from CAM and devq can be derived from it.</para>
-
- <para>CAM provides the framework for such asynchronous
- events. Some events originate from the lower levels (the SIM
- drivers), some events originate from the peripheral drivers,
- some events originate from the CAM subsystem itself. Any driver
- can register callbacks for some types of the asynchronous
- events, so that it would be notified if these events
- occur.</para>
-
- <para>A typical example of such an event is a device reset. Each
- transaction and event identifies the devices to which it applies
- by the means of "path". The target-specific events normally
- occur during a transaction with this device. So the path from
- that transaction may be re-used to report this event (this is
- safe because the event path is copied in the event reporting
- routine but not deallocated nor passed anywhere further). Also
- it's safe to allocate paths dynamically at any time including
- the interrupt routines, although that incurs certain overhead,
- and a possible problem with this approach is that there may be
- no free memory at that time. For a bus reset event we need to
- define a wildcard path including all devices on the bus. So we
- can create the path for the future bus reset events in advance
- and avoid problems with the future memory shortage:</para>
-
-<programlisting> struct cam_path *path;
-
- if(xpt_create_path(&amp;path, /*periph*/NULL,
- cam_sim_path(sim), CAM_TARGET_WILDCARD,
- CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
- xpt_bus_deregister(cam_sim_path(sim));
- cam_sim_free(sim, /*free_devq*/TRUE);
- error; /* some code to handle the error */
- }
-
- softc->wpath = path;
- softc->sim = sim;</programlisting>
-
- <para>As you can see the path includes:</para>
-
- <itemizedlist>
- <listitem><para>ID of the peripheral driver (NULL here because we have
- none)</para></listitem>
-
- <listitem><para>ID of the SIM driver
- (<function>cam_sim_path(sim)</function>)</para></listitem>
-
- <listitem><para>SCSI target number of the device (CAM_TARGET_WILDCARD
- means "all devices")</para></listitem>
-
- <listitem><para>SCSI LUN number of the subdevice (CAM_LUN_WILDCARD means
- "all LUNs")</para></listitem>
- </itemizedlist>
-
- <para>If the driver can't allocate this path it won't be able to
- work normally, so in that case we dismantle that SCSI
- bus.</para>
-
- <para>And we save the path pointer in the
- <structName>softc</structName> structure for future use. After
- that we save the value of sim (or we can also discard it on the
- exit from <function>xxx_probe()</function> if we wish).</para>
-
- <para>That's all for a minimalistic initialization. To do things
- right there is one more issue left. </para>
-
- <para>For a SIM driver there is one particularly interesting
- event: when a target device is considered lost. In this case
- resetting the SCSI negotiations with this device may be a good
- idea. So we register a callback for this event with CAM. The
- request is passed to CAM by requesting CAM action on a CAM
- control block for this type of request:</para>
-
-<programlisting> struct ccb_setasync csa;
-
- xpt_setup_ccb(&amp;csa.ccb_h, path, /*priority*/5);
- csa.ccb_h.func_code = XPT_SASYNC_CB;
- csa.event_enable = AC_LOST_DEVICE;
- csa.callback = xxx_async;
- csa.callback_arg = sim;
- xpt_action((union ccb *)&amp;csa);</programlisting>
-
- <para>Now we take a look at the <function>xxx_action()</function>
- and <function>xxx_poll()</function> driver entry points.</para>
-
- <para>
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_action</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>,
- <parameter>union ccb *ccb</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
- </para>
-
- <para>Do some action on request of the CAM subsystem. Sim
- describes the SIM for the request, CCB is the request
- itself. CCB stands for "CAM Control Block". It is a union of
- many specific instances, each describing arguments for some type
- of transactions. All of these instances share the CCB header
- where the common part of arguments is stored.</para>
-
- <para>CAM supports the SCSI controllers working in both initiator
- ("normal") mode and target (simulating a SCSI device) mode. Here
- we only consider the part relevant to the initiator mode.</para>
-
- <para>There are a few function and macros (in other words,
- methods) defined to access the public data in the struct sim:</para>
-
- <itemizedlist>
- <listitem><para><function>cam_sim_path(sim)</function> - the
- path ID (see above)</para></listitem>
-
- <listitem><para><function>cam_sim_name(sim)</function> - the
- name of the sim</para></listitem>
-
- <listitem><para><function>cam_sim_softc(sim)</function> - the
- pointer to the softc (driver private data)
- structure</para></listitem>
-
- <listitem><para><function> cam_sim_unit(sim)</function> - the
- unit number</para></listitem>
-
- <listitem><para><function> cam_sim_bus(sim)</function> - the bus
- ID</para></listitem>
- </itemizedlist>
-
- <para>To identify the device, <function>xxx_action()</function> can
- get the unit number and pointer to its structure softc using
- these functions.</para>
-
- <para>The type of request is stored in
- <structField>ccb-&gt;ccb_h.func_code</structField>. So generally
- <function>xxx_action()</function> consists of a big
- switch:</para>
-
-<programlisting> struct xxx_softc *softc = (struct xxx_softc *) cam_sim_softc(sim);
- struct ccb_hdr *ccb_h = &amp;ccb->ccb_h;
- int unit = cam_sim_unit(sim);
- int bus = cam_sim_bus(sim);
-
- switch(ccb_h->func_code) {
- case ...:
- ...
- default:
- ccb_h->status = CAM_REQ_INVALID;
- xpt_done(ccb);
- break;
- }</programlisting>
-
- <para>As can be seen from the default case (if an unknown command
- was received) the return code of the command is set into
- <structField>ccb-&gt;ccb_h.status</structField> and the completed
- CCB is returned back to CAM by calling
- <function>xpt_done(ccb)</function>. </para>
-
- <para><function>xpt_done()</function> does not have to be called
- from <function>xxx_action()</function>: For example an I/O
- request may be enqueued inside the SIM driver and/or its SCSI
- controller. Then when the device would post an interrupt
- signaling that the processing of this request is complete
- <function>xpt_done()</function> may be called from the interrupt
- handling routine.</para>
-
- <para>Actually, the CCB status is not only assigned as a return
- code but a CCB has some status all the time. Before CCB is
- passed to the <function>xxx_action()</function> routine it gets
- the status CCB_REQ_INPROG meaning that it's in progress. There
- are a surprising number of status values defined in
- <filename>/sys/cam/cam.h</filename> which should be able to
- represent the status of a request in great detail. More
- interesting yet, the status is in fact a "bitwise or" of an
- enumerated status value (the lower 6 bits) and possible
- additional flag-like bits (the upper bits). The enumerated
- values will be discussed later in more detail. The summary of
- them can be found in the Errors Summary section. The possible
- status flags are:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>CAM_DEV_QFRZN</emphasis> - if the
- SIM driver gets a serious error (for example, the device does
- not respond to the selection or breaks the SCSI protocol) when
- processing a CCB it should freeze the request queue by calling
- <function>xpt_freeze_simq()</function>, return the other
- enqueued but not processed yet CCBs for this device back to
- the CAM queue, then set this flag for the troublesome CCB and
- call <function>xpt_done()</function>. This flag causes the CAM
- subsystem to unfreeze the queue after it handles the
- error.</para></listitem>
-
- <listitem><para><emphasis>CAM_AUTOSNS_VALID</emphasis> - if
- the device returned an error condition and the flag
- CAM_DIS_AUTOSENSE is not set in CCB the SIM driver must
- execute the REQUEST SENSE command automatically to extract the
- sense (extended error information) data from the device. If
- this attempt was successful the sense data should be saved in
- the CCB and this flag set.</para></listitem>
-
- <listitem><para><emphasis>CAM_RELEASE_SIMQ</emphasis> - like
- CAM_DEV_QFRZN but used in case there is some problem (or
- resource shortage) with the SCSI controller itself. Then all
- the future requests to the controller should be stopped by
- <function>xpt_freeze_simq()</function>. The controller queue
- will be restarted after the SIM driver overcomes the shortage
- and informs CAM by returning some CCB with this flag
- set.</para></listitem>
-
- <listitem><para><emphasis>CAM_SIM_QUEUED</emphasis> - when SIM
- puts a CCB into its request queue this flag should be set (and
- removed when this CCB gets dequeued before being returned back
- to CAM). This flag is not used anywhere in the CAM code now,
- so its purpose is purely diagnostic.</para></listitem>
-
- </itemizedlist>
-
- <para>The function <function>xxx_action()</function> is not
- allowed to sleep, so all the synchronization for resource access
- must be done using SIM or device queue freezing. Besides the
- aforementioned flags the CAM subsystem provides functions
- <function>xpt_selease_simq()</function> and
- <function>xpt_release_devq()</function> to unfreeze the queues
- directly, without passing a CCB to CAM.</para>
-
- <para>The CCB header contains the following fields:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>path</emphasis> - path ID for the
- request</para></listitem>
-
- <listitem><para><emphasis>target_id</emphasis> - target device
- ID for the request</para></listitem>
-
- <listitem><para><emphasis>target_lun</emphasis> - LUN ID of
- the target device</para></listitem>
-
- <listitem><para><emphasis>timeout</emphasis> - timeout
- interval for this command, in milliseconds</para></listitem>
-
- <listitem><para><emphasis>timeout_ch</emphasis> - a
- convenience place for the SIM driver to store the timeout handle
- (the CAM subsystem itself does not make any assumptions about
- it)</para></listitem>
-
- <listitem><para><emphasis>flags</emphasis> - various bits of
- information about the request spriv_ptr0, spriv_ptr1 - fields
- reserved for private use by the SIM driver (such as linking to
- the SIM queues or SIM private control blocks); actually, they
- exist as unions: spriv_ptr0 and spriv_ptr1 have the type (void
- *), spriv_field0 and spriv_field1 have the type unsigned long,
- sim_priv.entries[0].bytes and sim_priv.entries[1].bytes are byte
- arrays of the size consistent with the other incarnations of the
- union and sim_priv.bytes is one array, twice
- bigger.</para></listitem>
-
- </itemizedlist>
-
- <para>The recommended way of using the SIM private fields of CCB
- is to define some meaningful names for them and use these
- meaningful names in the driver, like:</para>
-
-<programlisting>#define ccb_some_meaningful_name sim_priv.entries[0].bytes
-#define ccb_hcb spriv_ptr1 /* for hardware control block */</programlisting>
-
- <para>The most common initiator mode requests are:</para>
- <itemizedlist>
- <listitem><para><emphasis>XPT_SCSI_IO</emphasis> - execute an
- I/O transaction</para>
-
- <para>The instance "struct ccb_scsiio csio" of the union ccb is
- used to transfer the arguments. They are:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>cdb_io</emphasis> - pointer to
- the SCSI command buffer or the buffer
- itself</para></listitem>
-
- <listitem><para><emphasis>cdb_len</emphasis> - SCSI
- command length</para></listitem>
-
- <listitem><para><emphasis>data_ptr</emphasis> - pointer to
- the data buffer (gets a bit complicated if scatter/gather is
- used)</para></listitem>
-
- <listitem><para><emphasis>dxfer_len</emphasis> - length of
- the data to transfer</para></listitem>
-
- <listitem><para><emphasis>sglist_cnt</emphasis> - counter
- of the scatter/gather segments</para></listitem>
-
- <listitem><para><emphasis>scsi_status</emphasis> - place
- to return the SCSI status</para></listitem>
-
- <listitem><para><emphasis>sense_data</emphasis> - buffer
- for the SCSI sense information if the command returns an
- error (the SIM driver is supposed to run the REQUEST SENSE
- command automatically in this case if the CCB flag
- CAM_DIS_AUTOSENSE is not set)</para></listitem>
-
- <listitem><para><emphasis>sense_len</emphasis> - the
- length of that buffer (if it happens to be higher than size
- of sense_data the SIM driver must silently assume the
- smaller value) resid, sense_resid - if the transfer of data
- or SCSI sense returned an error these are the returned
- counters of the residual (not transferred) data. They do not
- seem to be especially meaningful, so in a case when they are
- difficult to compute (say, counting bytes in the SCSI
- controller's FIFO buffer) an approximate value will do as
- well. For a successfully completed transfer they must be set
- to zero.</para></listitem>
-
- <listitem><para><emphasis>tag_action</emphasis> - the kind
- of tag to use:
-
- <itemizedlist>
- <listitem><para>CAM_TAG_ACTION_NONE - don't use tags for this
- transaction</para></listitem>
- <listitem><para>MSG_SIMPLE_Q_TAG, MSG_HEAD_OF_Q_TAG,
- MSG_ORDERED_Q_TAG - value equal to the appropriate tag
- message (see /sys/cam/scsi/scsi_message.h); this gives only
- the tag type, the SIM driver must assign the tag value
- itself</para></listitem>
- </itemizedlist>
-
- </para></listitem>
-
- </itemizedlist>
-
- <para>The general logic of handling this request is the
- following:</para>
-
- <para>The first thing to do is to check for possible races, to
- make sure that the command did not get aborted when it was
- sitting in the queue:</para>
-
-<programlisting> struct ccb_scsiio *csio = &amp;ccb->csio;
-
- if ((ccb_h->status &amp; CAM_STATUS_MASK) != CAM_REQ_INPROG) {
- xpt_done(ccb);
- return;
- }</programlisting>
-
- <para>Also we check that the device is supported at all by our
- controller:</para>
-
-<programlisting> if(ccb_h->target_id > OUR_MAX_SUPPORTED_TARGET_ID
- || cch_h->target_id == OUR_SCSI_CONTROLLERS_OWN_ID) {
- ccb_h->status = CAM_TID_INVALID;
- xpt_done(ccb);
- return;
- }
- if(ccb_h->target_lun > OUR_MAX_SUPPORTED_LUN) {
- ccb_h->status = CAM_LUN_INVALID;
- xpt_done(ccb);
- return;
- }</programlisting>
-
- <para>Then allocate whatever data structures (such as
- card-dependent hardware control block) we need to process this
- request. If we can't then freeze the SIM queue and remember
- that we have a pending operation, return the CCB back and ask
- CAM to re-queue it. Later when the resources become available
- the SIM queue must be unfrozen by returning a ccb with the
- CAM_SIMQ_RELEASE bit set in its status. Otherwise, if all went
- well, link the CCB with the hardware control block (HCB) and
- mark it as queued.</para>
-
-<programlisting> struct xxx_hcb *hcb = allocate_hcb(softc, unit, bus);
-
- if(hcb == NULL) {
- softc->flags |= RESOURCE_SHORTAGE;
- xpt_freeze_simq(sim, /*count*/1);
- ccb_h->status = CAM_REQUEUE_REQ;
- xpt_done(ccb);
- return;
- }
-
- hcb->ccb = ccb; ccb_h->ccb_hcb = (void *)hcb;
- ccb_h->status |= CAM_SIM_QUEUED;</programlisting>
-
- <para>Extract the target data from CCB into the hardware control
- block. Check if we are asked to assign a tag and if yes then
- generate an unique tag and build the SCSI tag messages. The
- SIM driver is also responsible for negotiations with the
- devices to set the maximal mutually supported bus width,
- synchronous rate and offset.</para>
-
-<programlisting> hcb->target = ccb_h->target_id; hcb->lun = ccb_h->target_lun;
- generate_identify_message(hcb);
- if( ccb_h->tag_action != CAM_TAG_ACTION_NONE )
- generate_unique_tag_message(hcb, ccb_h->tag_action);
- if( !target_negotiated(hcb) )
- generate_negotiation_messages(hcb);</programlisting>
-
- <para>Then set up the SCSI command. The command storage may be
- specified in the CCB in many interesting ways, specified by
- the CCB flags. The command buffer can be contained in CCB or
- pointed to, in the latter case the pointer may be physical or
- virtual. Since the hardware commonly needs physical address we
- always convert the address to the physical one.</para>
-
- <para>A NOT-QUITE RELATED NOTE: Normally this is done by a call
- to vtophys(), but for the PCI device (which account for most
- of the SCSI controllers now) drivers' portability to the Alpha
- architecture the conversion must be done by vtobus() instead
- due to special Alpha quirks. [IMHO it would be much better to
- have two separate functions, vtop() and ptobus() then vtobus()
- would be a simple superposition of them.] In case if a
- physical address is requested it's OK to return the CCB with
- the status CAM_REQ_INVALID, the current drivers do that. But
- it's also possible to compile the Alpha-specific piece of
- code, as in this example (there should be a more direct way to
- do that, without conditional compilation in the drivers). If
- necessary a physical address can be also converted or mapped
- back to a virtual address but with big pain, so we don't do
- that.</para>
-
-<programlisting> if(ccb_h->flags &amp; CAM_CDB_POINTER) {
- /* CDB is a pointer */
- if(!(ccb_h->flags &amp; CAM_CDB_PHYS)) {
- /* CDB pointer is virtual */
- hcb->cmd = vtobus(csio->cdb_io.cdb_ptr);
- } else {
- /* CDB pointer is physical */
-#if defined(__alpha__)
- hcb->cmd = csio->cdb_io.cdb_ptr | alpha_XXX_dmamap_or ;
-#else
- hcb->cmd = csio->cdb_io.cdb_ptr ;
-#endif
- }
- } else {
- /* CDB is in the ccb (buffer) */
- hcb->cmd = vtobus(csio->cdb_io.cdb_bytes);
- }
- hcb->cmdlen = csio->cdb_len;</programlisting>
-
- <para>Now it's time to set up the data. Again, the data storage
- may be specified in the CCB in many interesting ways,
- specified by the CCB flags. First we get the direction of the
- data transfer. The simplest case is if there is no data to
- transfer:</para>
-
-<programlisting> int dir = (ccb_h->flags &amp; CAM_DIR_MASK);
-
- if (dir == CAM_DIR_NONE)
- goto end_data;</programlisting>
-
- <para>Then we check if the data is in one chunk or in a
- scatter-gather list, and the addresses are physical or
- virtual. The SCSI controller may be able to handle only a
- limited number of chunks of limited length. If the request
- hits this limitation we return an error. We use a special
- function to return the CCB to handle in one place the HCB
- resource shortages. The functions to add chunks are
- driver-dependent, and here we leave them without detailed
- implementation. See description of the SCSI command (CDB)
- handling for the details on the address-translation issues.
- If some variation is too difficult or impossible to implement
- with a particular card it's OK to return the status
- CAM_REQ_INVALID. Actually, it seems like the scatter-gather
- ability is not used anywhere in the CAM code now. But at least
- the case for a single non-scattered virtual buffer must be
- implemented, it's actively used by CAM.</para>
-
-<programlisting> int rv;
-
- initialize_hcb_for_data(hcb);
-
- if((!(ccb_h->flags &amp; CAM_SCATTER_VALID)) {
- /* single buffer */
- if(!(ccb_h->flags &amp; CAM_DATA_PHYS)) {
- rv = add_virtual_chunk(hcb, csio->data_ptr, csio->dxfer_len, dir);
- }
- } else {
- rv = add_physical_chunk(hcb, csio->data_ptr, csio->dxfer_len, dir);
- }
- } else {
- int i;
- struct bus_dma_segment *segs;
- segs = (struct bus_dma_segment *)csio->data_ptr;
-
- if ((ccb_h->flags &amp; CAM_SG_LIST_PHYS) != 0) {
- /* The SG list pointer is physical */
- rv = setup_hcb_for_physical_sg_list(hcb, segs, csio->sglist_cnt);
- } else if (!(ccb_h->flags &amp; CAM_DATA_PHYS)) {
- /* SG buffer pointers are virtual */
- for (i = 0; i < csio->sglist_cnt; i++) {
- rv = add_virtual_chunk(hcb, segs[i].ds_addr,
- segs[i].ds_len, dir);
- if (rv != CAM_REQ_CMP)
- break;
- }
- } else {
- /* SG buffer pointers are physical */
- for (i = 0; i < csio->sglist_cnt; i++) {
- rv = add_physical_chunk(hcb, segs[i].ds_addr,
- segs[i].ds_len, dir);
- if (rv != CAM_REQ_CMP)
- break;
- }
- }
- }
- if(rv != CAM_REQ_CMP) {
- /* we expect that add_*_chunk() functions return CAM_REQ_CMP
- * if they added a chunk successfully, CAM_REQ_TOO_BIG if
- * the request is too big (too many bytes or too many chunks),
- * CAM_REQ_INVALID in case of other troubles
- */
- free_hcb_and_ccb_done(hcb, ccb, rv);
- return;
- }
- end_data:</programlisting>
-
- <para>If disconnection is disabled for this CCB we pass this
- information to the hcb:</para>
-
-<programlisting> if(ccb_h->flags &amp; CAM_DIS_DISCONNECT)
- hcb_disable_disconnect(hcb);</programlisting>
-
- <para>If the controller is able to run REQUEST SENSE command all
- by itself then the value of the flag CAM_DIS_AUTOSENSE should
- also be passed to it, to prevent automatic REQUEST SENSE if the
- CAM subsystem does not want it.</para>
-
- <para>The only thing left is to set up the timeout, pass our hcb
- to the hardware and return, the rest will be done by the
- interrupt handler (or timeout handler).</para>
-
-<programlisting> ccb_h->timeout_ch = timeout(xxx_timeout, (caddr_t) hcb,
- (ccb_h->timeout * hz) / 1000); /* convert milliseconds to ticks */
- put_hcb_into_hardware_queue(hcb);
- return;</programlisting>
-
- <para>And here is a possible implementation of the function
- returning CCB:</para>
-
-<programlisting> static void
- free_hcb_and_ccb_done(struct xxx_hcb *hcb, union ccb *ccb, u_int32_t status)
- {
- struct xxx_softc *softc = hcb->softc;
-
- ccb->ccb_h.ccb_hcb = 0;
- if(hcb != NULL) {
- untimeout(xxx_timeout, (caddr_t) hcb, ccb->ccb_h.timeout_ch);
- /* we're about to free a hcb, so the shortage has ended */
- if(softc->flags &amp; RESOURCE_SHORTAGE) {
- softc->flags &amp;= ~RESOURCE_SHORTAGE;
- status |= CAM_RELEASE_SIMQ;
- }
- free_hcb(hcb); /* also removes hcb from any internal lists */
- }
- ccb->ccb_h.status = status |
- (ccb->ccb_h.status &amp; ~(CAM_STATUS_MASK|CAM_SIM_QUEUED));
- xpt_done(ccb);
- }</programlisting>
- </listitem>
-
- <listitem><para><emphasis>XPT_RESET_DEV</emphasis> - send the SCSI "BUS
- DEVICE RESET" message to a device</para>
-
- <para>There is no data transferred in CCB except the header and
- the most interesting argument of it is target_id. Depending on
- the controller hardware a hardware control block just like for
- the XPT_SCSI_IO request may be constructed (see XPT_SCSI_IO
- request description) and sent to the controller or the SCSI
- controller may be immediately programmed to send this RESET
- message to the device or this request may be just not supported
- (and return the status CAM_REQ_INVALID). Also on completion of
- the request all the disconnected transactions for this target
- must be aborted (probably in the interrupt routine).</para>
-
- <para>Also all the current negotiations for the target are lost on
- reset, so they might be cleaned too. Or they clearing may be
- deferred, because anyway the target would request re-negotiation
- on the next transaction.</para></listitem>
-
- <listitem><para><emphasis>XPT_RESET_BUS</emphasis> - send the RESET signal
- to the SCSI bus</para>
-
- <para>No arguments are passed in the CCB, the only interesting
- argument is the SCSI bus indicated by the struct sim
- pointer.</para>
-
- <para>A minimalistic implementation would forget the SCSI
- negotiations for all the devices on the bus and return the
- status CAM_REQ_CMP.</para>
-
- <para>The proper implementation would in addition actually reset
- the SCSI bus (possible also reset the SCSI controller) and mark
- all the CCBs being processed, both those in the hardware queue
- and those being disconnected, as done with the status
- CAM_SCSI_BUS_RESET. Like:</para>
-
-<programlisting> int targ, lun;
- struct xxx_hcb *h, *hh;
- struct ccb_trans_settings neg;
- struct cam_path *path;
-
- /* The SCSI bus reset may take a long time, in this case its completion
- * should be checked by interrupt or timeout. But for simplicity
- * we assume here that it's really fast.
- */
- reset_scsi_bus(softc);
-
- /* drop all enqueued CCBs */
- for(h = softc->first_queued_hcb; h != NULL; h = hh) {
- hh = h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
-
- /* the clean values of negotiations to report */
- neg.bus_width = 8;
- neg.sync_period = neg.sync_offset = 0;
- neg.valid = (CCB_TRANS_BUS_WIDTH_VALID
- | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);
-
- /* drop all disconnected CCBs and clean negotiations */
- for(targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) {
- clean_negotiations(softc, targ);
-
- /* report the event if possible */
- if(xpt_create_path(&amp;path, /*periph*/NULL,
- cam_sim_path(sim), targ,
- CAM_LUN_WILDCARD) == CAM_REQ_CMP) {
- xpt_async(AC_TRANSFER_NEG, path, &amp;neg);
- xpt_free_path(path);
- }
-
- for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++)
- for(h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) {
- hh=h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
- }
-
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
-
- /* report the event */
- xpt_async(AC_BUS_RESET, softc->wpath, NULL);
- return;</programlisting>
-
- <para>Implementing the SCSI bus reset as a function may be a good
- idea because it would be re-used by the timeout function as a
- last resort if the things go wrong.</para></listitem>
-
- <listitem><para><emphasis>XPT_ABORT</emphasis> - abort the specified
- CCB</para>
-
- <para>The arguments are transferred in the instance "struct
- ccb_abort cab" of the union ccb. The only argument field in it
- is:</para>
-
- <para><emphasis>abort_ccb</emphasis> - pointer to the CCB to be
- aborted</para>
-
- <para>If the abort is not supported just return the status
- CAM_UA_ABORT. This is also the easy way to minimally implement
- this call, return CAM_UA_ABORT in any case.</para>
-
- <para>The hard way is to implement this request honestly. First
- check that abort applies to a SCSI transaction:</para>
-
-<programlisting> struct ccb *abort_ccb;
- abort_ccb = ccb->cab.abort_ccb;
-
- if(abort_ccb->ccb_h.func_code != XPT_SCSI_IO) {
- ccb->ccb_h.status = CAM_UA_ABORT;
- xpt_done(ccb);
- return;
- }</programlisting>
-
- <para>Then it's necessary to find this CCB in our queue. This can
- be done by walking the list of all our hardware control blocks
- in search for one associated with this CCB:</para>
-
-<programlisting> struct xxx_hcb *hcb, *h;
-
- hcb = NULL;
-
- /* We assume that softc->first_hcb is the head of the list of all
- * HCBs associated with this bus, including those enqueued for
- * processing, being processed by hardware and disconnected ones.
- */
- for(h = softc->first_hcb; h != NULL; h = h->next) {
- if(h->ccb == abort_ccb) {
- hcb = h;
- break;
- }
- }
-
- if(hcb == NULL) {
- /* no such CCB in our queue */
- ccb->ccb_h.status = CAM_PATH_INVALID;
- xpt_done(ccb);
- return;
- }
-
- hcb=found_hcb;</programlisting>
-
- <para>Now we look at the current processing status of the HCB. It
- may be either sitting in the queue waiting to be sent to the
- SCSI bus, being transferred right now, or disconnected and
- waiting for the result of the command, or actually completed by
- hardware but not yet marked as done by software. To make sure
- that we don't get in any races with hardware we mark the HCB as
- being aborted, so that if this HCB is about to be sent to the
- SCSI bus the SCSI controller will see this flag and skip
- it.</para>
-
-<programlisting> int hstatus;
-
- /* shown as a function, in case special action is needed to make
- * this flag visible to hardware
- */
- set_hcb_flags(hcb, HCB_BEING_ABORTED);
-
- abort_again:
-
- hstatus = get_hcb_status(hcb);
- switch(hstatus) {
- case HCB_SITTING_IN_QUEUE:
- remove_hcb_from_hardware_queue(hcb);
- /* FALLTHROUGH */
- case HCB_COMPLETED:
- /* this is an easy case */
- free_hcb_and_ccb_done(hcb, abort_ccb, CAM_REQ_ABORTED);
- break;</programlisting>
-
- <para>If the CCB is being transferred right now we would like to
- signal to the SCSI controller in some hardware-dependent way
- that we want to abort the current transfer. The SCSI controller
- would set the SCSI ATTENTION signal and when the target responds
- to it send an ABORT message. We also reset the timeout to make
- sure that the target is not sleeping forever. If the command
- would not get aborted in some reasonable time like 10 seconds
- the timeout routine would go ahead and reset the whole SCSI bus.
- Because the command will be aborted in some reasonable time we
- can just return the abort request now as successfully completed,
- and mark the aborted CCB as aborted (but not mark it as done
- yet).</para>
-
-<programlisting> case HCB_BEING_TRANSFERRED:
- untimeout(xxx_timeout, (caddr_t) hcb, abort_ccb->ccb_h.timeout_ch);
- abort_ccb->ccb_h.timeout_ch =
- timeout(xxx_timeout, (caddr_t) hcb, 10 * hz);
- abort_ccb->ccb_h.status = CAM_REQ_ABORTED;
- /* ask the controller to abort that HCB, then generate
- * an interrupt and stop
- */
- if(signal_hardware_to_abort_hcb_and_stop(hcb) < 0) {
- /* oops, we missed the race with hardware, this transaction
- * got off the bus before we aborted it, try again */
- goto abort_again;
- }
-
- break;</programlisting>
-
- <para>If the CCB is in the list of disconnected then set it up as
- an abort request and re-queue it at the front of hardware
- queue. Reset the timeout and report the abort request to be
- completed.</para>
-
-<programlisting> case HCB_DISCONNECTED:
- untimeout(xxx_timeout, (caddr_t) hcb, abort_ccb->ccb_h.timeout_ch);
- abort_ccb->ccb_h.timeout_ch =
- timeout(xxx_timeout, (caddr_t) hcb, 10 * hz);
- put_abort_message_into_hcb(hcb);
- put_hcb_at_the_front_of_hardware_queue(hcb);
- break;
- }
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
-
- <para>That's all for the ABORT request, although there is one more
- issue. Because the ABORT message cleans all the ongoing
- transactions on a LUN we have to mark all the other active
- transactions on this LUN as aborted. That should be done in the
- interrupt routine, after the transaction gets aborted.</para>
-
- <para>Implementing the CCB abort as a function may be quite a good
- idea, this function can be re-used if an I/O transaction times
- out. The only difference would be that the timed out transaction
- would return the status CAM_CMD_TIMEOUT for the timed out
- request. Then the case XPT_ABORT would be small, like
- that:</para>
-
-<programlisting> case XPT_ABORT:
- struct ccb *abort_ccb;
- abort_ccb = ccb->cab.abort_ccb;
-
- if(abort_ccb->ccb_h.func_code != XPT_SCSI_IO) {
- ccb->ccb_h.status = CAM_UA_ABORT;
- xpt_done(ccb);
- return;
- }
- if(xxx_abort_ccb(abort_ccb, CAM_REQ_ABORTED) < 0)
- /* no such CCB in our queue */
- ccb->ccb_h.status = CAM_PATH_INVALID;
- else
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
- </listitem>
-
- <listitem><para><emphasis>XPT_SET_TRAN_SETTINGS</emphasis> - explicitly
- set values of SCSI transfer settings</para>
-
- <para>The arguments are transferred in the instance "struct ccb_trans_setting cts"
-of the union ccb:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>valid</emphasis> - a bitmask showing
- which settings should be updated:</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_SYNC_RATE_VALID</emphasis>
- - synchronous transfer rate</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_SYNC_OFFSET_VALID</emphasis>
- - synchronous offset</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_BUS_WIDTH_VALID</emphasis>
- - bus width</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_DISC_VALID</emphasis> -
- set enable/disable disconnection</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_TQ_VALID</emphasis> - set
- enable/disable tagged queuing</para></listitem>
-
- <listitem><para><emphasis>flags</emphasis> - consists of two
- parts, binary arguments and identification of
- sub-operations. The binary arguments are :</para>
- <itemizedlist>
- <listitem><para><emphasis>CCB_TRANS_DISC_ENB</emphasis> - enable disconnection</para></listitem>
- <listitem><para><emphasis>CCB_TRANS_TAG_ENB</emphasis> -
- enable tagged queuing</para></listitem>
- </itemizedlist>
- </listitem>
-
- <listitem><para>the sub-operations are:</para>
- <itemizedlist>
- <listitem><para><emphasis>CCB_TRANS_CURRENT_SETTINGS</emphasis>
- - change the current negotiations</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_USER_SETTINGS</emphasis>
- - remember the desired user values sync_period, sync_offset -
- self-explanatory, if sync_offset==0 then the asynchronous mode
- is requested bus_width - bus width, in bits (not
- bytes)</para></listitem>
- </itemizedlist>
- </listitem>
-
- </itemizedlist>
-
- <para>Two sets of negotiated parameters are supported, the user
- settings and the current settings. The user settings are not
- really used much in the SIM drivers, this is mostly just a piece
- of memory where the upper levels can store (and later recall)
- its ideas about the parameters. Setting the user parameters
- does not cause re-negotiation of the transfer rates. But when
- the SCSI controller does a negotiation it must never set the
- values higher than the user parameters, so it's essentially the
- top boundary.</para>
-
- <para>The current settings are, as the name says,
- current. Changing them means that the parameters must be
- re-negotiated on the next transfer. Again, these "new current
- settings" are not supposed to be forced on the device, just they
- are used as the initial step of negotiations. Also they must be
- limited by actual capabilities of the SCSI controller: for
- example, if the SCSI controller has 8-bit bus and the request
- asks to set 16-bit wide transfers this parameter must be
- silently truncated to 8-bit transfers before sending it to the
- device.</para>
-
- <para>One caveat is that the bus width and synchronous parameters
- are per target while the disconnection and tag enabling
- parameters are per lun.</para>
-
- <para>The recommended implementation is to keep 3 sets of
- negotiated (bus width and synchronous transfer)
- parameters:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>user</emphasis> - the user set, as
- above</para></listitem>
-
- <listitem><para><emphasis>current</emphasis> - those actually
- in effect</para></listitem>
-
- <listitem><para><emphasis>goal</emphasis> - those requested by
- setting of the "current" parameters</para></listitem>
- </itemizedlist>
-
- <para>The code looks like:</para>
-
-<programlisting> struct ccb_trans_settings *cts;
- int targ, lun;
- int flags;
-
- cts = &amp;ccb->cts;
- targ = ccb_h->target_id;
- lun = ccb_h->target_lun;
- flags = cts->flags;
- if(flags &amp; CCB_TRANS_USER_SETTINGS) {
- if(flags &amp; CCB_TRANS_SYNC_RATE_VALID)
- softc->user_sync_period[targ] = cts->sync_period;
- if(flags &amp; CCB_TRANS_SYNC_OFFSET_VALID)
- softc->user_sync_offset[targ] = cts->sync_offset;
- if(flags &amp; CCB_TRANS_BUS_WIDTH_VALID)
- softc->user_bus_width[targ] = cts->bus_width;
-
- if(flags &amp; CCB_TRANS_DISC_VALID) {
- softc->user_tflags[targ][lun] &amp;= ~CCB_TRANS_DISC_ENB;
- softc->user_tflags[targ][lun] |= flags &amp; CCB_TRANS_DISC_ENB;
- }
- if(flags &amp; CCB_TRANS_TQ_VALID) {
- softc->user_tflags[targ][lun] &amp;= ~CCB_TRANS_TQ_ENB;
- softc->user_tflags[targ][lun] |= flags &amp; CCB_TRANS_TQ_ENB;
- }
- }
- if(flags &amp; CCB_TRANS_CURRENT_SETTINGS) {
- if(flags &amp; CCB_TRANS_SYNC_RATE_VALID)
- softc->goal_sync_period[targ] =
- max(cts->sync_period, OUR_MIN_SUPPORTED_PERIOD);
- if(flags &amp; CCB_TRANS_SYNC_OFFSET_VALID)
- softc->goal_sync_offset[targ] =
- min(cts->sync_offset, OUR_MAX_SUPPORTED_OFFSET);
- if(flags &amp; CCB_TRANS_BUS_WIDTH_VALID)
- softc->goal_bus_width[targ] = min(cts->bus_width, OUR_BUS_WIDTH);
-
- if(flags &amp; CCB_TRANS_DISC_VALID) {
- softc->current_tflags[targ][lun] &amp;= ~CCB_TRANS_DISC_ENB;
- softc->current_tflags[targ][lun] |= flags &amp; CCB_TRANS_DISC_ENB;
- }
- if(flags &amp; CCB_TRANS_TQ_VALID) {
- softc->current_tflags[targ][lun] &amp;= ~CCB_TRANS_TQ_ENB;
- softc->current_tflags[targ][lun] |= flags &amp; CCB_TRANS_TQ_ENB;
- }
- }
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
-
- <para>Then when the next I/O request will be processed it will
- check if it has to re-negotiate, for example by calling the
- function target_negotiated(hcb). It can be implemented like
- this:</para>
-
-<programlisting> int
- target_negotiated(struct xxx_hcb *hcb)
- {
- struct softc *softc = hcb->softc;
- int targ = hcb->targ;
-
- if( softc->current_sync_period[targ] != softc->goal_sync_period[targ]
- || softc->current_sync_offset[targ] != softc->goal_sync_offset[targ]
- || softc->current_bus_width[targ] != softc->goal_bus_width[targ] )
- return 0; /* FALSE */
- else
- return 1; /* TRUE */
- }</programlisting>
-
- <para>After the values are re-negotiated the resulting values must
- be assigned to both current and goal parameters, so for future
- I/O transactions the current and goal parameters would be the
- same and <function>target_negotiated()</function> would return
- TRUE. When the card is initialized (in
- <function>xxx_attach()</function>) the current negotiation
- values must be initialized to narrow asynchronous mode, the goal
- and current values must be initialized to the maximal values
- supported by controller.</para></listitem>
-
- <listitem><para><emphasis>XPT_GET_TRAN_SETTINGS</emphasis> - get values of
- SCSI transfer settings</para>
-
- <para>This operations is the reverse of
- XPT_SET_TRAN_SETTINGS. Fill up the CCB instance "struct
- ccb_trans_setting cts" with data as requested by the flags
- CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both
- are set then the existing drivers return the current
- settings). Set all the bits in the valid field.</para></listitem>
-
- <listitem><para><emphasis>XPT_CALC_GEOMETRY</emphasis> - calculate logical
- (BIOS) geometry of the disk</para>
-
- <para>The arguments are transferred in the instance "struct
- ccb_calc_geometry ccg" of the union ccb:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>block_size</emphasis> - input, block
- (A.K.A sector) size in bytes</para></listitem>
-
- <listitem><para><emphasis>volume_size</emphasis> - input,
- volume size in bytes</para></listitem>
-
- <listitem><para><emphasis>cylinders</emphasis> - output,
- logical cylinders</para></listitem>
-
- <listitem><para><emphasis>heads</emphasis> - output, logical
- heads</para></listitem>
-
- <listitem><para><emphasis>secs_per_track</emphasis> - output,
- logical sectors per track</para></listitem>
-
- </itemizedlist>
-
- <para>If the returned geometry differs much enough from what the
- SCSI controller BIOS thinks and a disk on this SCSI controller
- is used as bootable the system may not be able to boot. The
- typical calculation example taken from the aic7xxx driver
- is:</para>
-
-<programlisting> struct ccb_calc_geometry *ccg;
- u_int32_t size_mb;
- u_int32_t secs_per_cylinder;
- int extended;
-
- ccg = &amp;ccb->ccg;
- size_mb = ccg->volume_size
- / ((1024L * 1024L) / ccg->block_size);
- extended = check_cards_EEPROM_for_extended_geometry(softc);
-
- if (size_mb > 1024 &amp;&amp; extended) {
- ccg->heads = 255;
- ccg->secs_per_track = 63;
- } else {
- ccg->heads = 64;
- ccg->secs_per_track = 32;
- }
- secs_per_cylinder = ccg->heads * ccg->secs_per_track;
- ccg->cylinders = ccg->volume_size / secs_per_cylinder;
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
-
- <para>This gives the general idea, the exact calculation depends
- on the quirks of the particular BIOS. If BIOS provides no way
- set the "extended translation" flag in EEPROM this flag should
- normally be assumed equal to 1. Other popular geometries
- are:</para>
-
-<programlisting> 128 heads, 63 sectors - Symbios controllers
- 16 heads, 63 sectors - old controllers</programlisting>
-
- <para>Some system BIOSes and SCSI BIOSes fight with each other
- with variable success, for example a combination of Symbios
- 875/895 SCSI and Phoenix BIOS can give geometry 128/63 after
- power up and 255/63 after a hard reset or soft reboot.</para>
- </listitem>
-
- <listitem><para><emphasis>XPT_PATH_INQ</emphasis> - path inquiry, in other
- words get the SIM driver and SCSI controller (also known as HBA
- - Host Bus Adapter) properties</para>
-
- <para>The properties are returned in the instance "struct
-ccb_pathinq cpi" of the union ccb:</para>
-
- <itemizedlist>
-
- <listitem><para>version_num - the SIM driver version number, now
- all drivers use 1</para></listitem>
-
- <listitem><para>hba_inquiry - bitmask of features supported by
- the controller:</para></listitem>
-
- <listitem><para>PI_MDP_ABLE - supports MDP message (something
- from SCSI3?)</para></listitem>
-
- <listitem><para>PI_WIDE_32 - supports 32 bit wide
- SCSI</para></listitem>
-
- <listitem><para>PI_WIDE_16 - supports 16 bit wide
- SCSI</para></listitem>
-
- <listitem><para>PI_SDTR_ABLE - can negotiate synchronous
- transfer rate</para></listitem>
-
- <listitem><para>PI_LINKED_CDB - supports linked
- commands</para></listitem>
-
- <listitem><para>PI_TAG_ABLE - supports tagged
- commands</para></listitem>
-
- <listitem><para>PI_SOFT_RST - supports soft reset alternative
- (hard reset and soft reset are mutually exclusive within a
- SCSI bus)</para></listitem>
-
- <listitem><para>target_sprt - flags for target mode support, 0
- if unsupported</para></listitem>
-
- <listitem><para>hba_misc - miscellaneous controller
- features:</para></listitem>
-
- <listitem><para>PIM_SCANHILO - bus scans from high ID to low
- ID</para></listitem>
-
- <listitem><para>PIM_NOREMOVE - removable devices not included in
- scan</para></listitem>
-
- <listitem><para>PIM_NOINITIATOR - initiator role not
- supported</para></listitem>
-
- <listitem><para>PIM_NOBUSRESET - user has disabled initial BUS
- RESET</para></listitem>
-
- <listitem><para>hba_eng_cnt - mysterious HBA engine count,
- something related to compression, now is always set to
- 0</para></listitem>
-
- <listitem><para>vuhba_flags - vendor-unique flags, unused
- now</para></listitem>
-
- <listitem><para>max_target - maximal supported target ID (7 for
- 8-bit bus, 15 for 16-bit bus, 127 for Fibre
- Channel)</para></listitem>
-
- <listitem><para>max_lun - maximal supported LUN ID (7 for older
- SCSI controllers, 63 for newer ones)</para></listitem>
-
- <listitem><para>async_flags - bitmask of installed Async
- handler, unused now</para></listitem>
-
- <listitem><para>hpath_id - highest Path ID in the subsystem,
- unused now</para></listitem>
-
- <listitem><para>unit_number - the controller unit number,
- cam_sim_unit(sim)</para></listitem>
-
- <listitem><para>bus_id - the bus number,
- cam_sim_bus(sim)</para></listitem>
-
- <listitem><para>initiator_id - the SCSI ID of the controller
- itself</para></listitem>
-
- <listitem><para>base_transfer_speed - nominal transfer speed in
- KB/s for asynchronous narrow transfers, equals to 3300 for
- SCSI</para></listitem>
-
- <listitem><para>sim_vid - SIM driver's vendor id, a
- zero-terminated string of maximal length SIM_IDLEN including
- the terminating zero</para></listitem>
-
- <listitem><para>hba_vid - SCSI controller's vendor id, a
- zero-terminated string of maximal length HBA_IDLEN including
- the terminating zero</para></listitem>
-
- <listitem><para>dev_name - device driver name, a zero-terminated
- string of maximal length DEV_IDLEN including the terminating
- zero, equal to cam_sim_name(sim)</para></listitem>
-
- </itemizedlist>
-
- <para>The recommended way of setting the string fields is using
- strncpy, like:</para>
-
-<programlisting> strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);</programlisting>
-
- <para>After setting the values set the status to CAM_REQ_CMP and mark the
-CCB as done.</para>
- </listitem>
- </itemizedlist>
-
- </sect1>
-
- <sect1>
- <title>Polling</title>
-
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_poll</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
-
- <para>The poll function is used to simulate the interrupts when
- the interrupt subsystem is not functioning (for example, when
- the system has crashed and is creating the system dump). The CAM
- subsystem sets the proper interrupt level before calling the
- poll routine. So all it needs to do is to call the interrupt
- routine (or the other way around, the poll routine may be doing
- the real action and the interrupt routine would just call the
- poll routine). Why bother about a separate function then ?
- Because of different calling conventions. The
- <function>xxx_poll</function> routine gets the struct cam_sim
- pointer as its argument when the PCI interrupt routine by common
- convention gets pointer to the struct
- <structName>xxx_softc</structName> and the ISA interrupt routine
- gets just the the device unit number. So the poll routine would
- normally look as:</para>
-
-<programlisting>static void
-xxx_poll(struct cam_sim *sim)
-{
- xxx_intr((struct xxx_softc *)cam_sim_softc(sim)); /* for PCI device */
-}</programlisting>
-
- <para>or</para>
-
-<programlisting>static void
-xxx_poll(struct cam_sim *sim)
-{
- xxx_intr(cam_sim_unit(sim)); /* for ISA device */
-}</programlisting>
-
- </sect1>
-
- <sect1>
- <title>Asynchronous Events</title>
-
- <para>If an asynchronous event callback has been set up then the
- callback function should be defined.</para>
-
-<programlisting>static void
-ahc_async(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)</programlisting>
-
- <itemizedlist>
- <listitem><para>callback_arg - the value supplied when registering the
- callback</para></listitem>
-
- <listitem><para>code - identifies the type of event</para></listitem>
-
- <listitem><para>path - identifies the devices to which the event
- applies</para></listitem>
-
- <listitem><para>arg - event-specific argument</para></listitem>
- </itemizedlist>
-
- <para>Implementation for a single type of event, AC_LOST_DEVICE,
- looks like:</para>
-
-<programlisting> struct xxx_softc *softc;
- struct cam_sim *sim;
- int targ;
- struct ccb_trans_settings neg;
-
- sim = (struct cam_sim *)callback_arg;
- softc = (struct xxx_softc *)cam_sim_softc(sim);
- switch (code) {
- case AC_LOST_DEVICE:
- targ = xpt_path_target_id(path);
- if(targ <= OUR_MAX_SUPPORTED_TARGET) {
- clean_negotiations(softc, targ);
- /* send indication to CAM */
- neg.bus_width = 8;
- neg.sync_period = neg.sync_offset = 0;
- neg.valid = (CCB_TRANS_BUS_WIDTH_VALID
- | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);
- xpt_async(AC_TRANSFER_NEG, path, &amp;neg);
- }
- break;
- default:
- break;
- }</programlisting>
-
- </sect1>
-
- <sect1>
- <title>Interrupts</title>
-
- <para>The exact type of the interrupt routine depends on the type
- of the peripheral bus (PCI, ISA and so on) to which the SCSI
- controller is connected.</para>
-
- <para>The interrupt routines of the SIM drivers run at the
- interrupt level splcam. So <function>splcam()</function> should
- be used in the driver to synchronize activity between the
- interrupt routine and the rest of the driver (for a
- multiprocessor-aware driver things get yet more interesting but
- we ignore this case here). The pseudo-code in this document
- happily ignores the problems of synchronization. The real code
- must not ignore them. A simple-minded approach is to set
- <function>splcam()</function> on the entry to the other routines
- and reset it on return thus protecting them by one big critical
- section. To make sure that the interrupt level will be always
- restored a wrapper function can be defined, like:</para>
-
-<programlisting> static void
- xxx_action(struct cam_sim *sim, union ccb *ccb)
- {
- int s;
- s = splcam();
- xxx_action1(sim, ccb);
- splx(s);
- }
-
- static void
- xxx_action1(struct cam_sim *sim, union ccb *ccb)
- {
- ... process the request ...
- }</programlisting>
-
- <para>This approach is simple and robust but the problem with it
- is that interrupts may get blocked for a relatively long time
- and this would negatively affect the system's performance. On
- the other hand the functions of the <function>spl()</function>
- family have rather high overhead, so vast amount of tiny
- critical sections may not be good either.</para>
-
- <para>The conditions handled by the interrupt routine and the
- details depend very much on the hardware. We consider the set of
- "typical" conditions.</para>
-
- <para>First, we check if a SCSI reset was encountered on the bus
- (probably caused by another SCSI controller on the same SCSI
- bus). If so we drop all the enqueued and disconnected requests,
- report the events and re-initialize our SCSI controller. It is
- important that during this initialization the controller won't
- issue another reset or else two controllers on the same SCSI bus
- could ping-pong resets forever. The case of fatal controller
- error/hang could be handled in the same place, but it will
- probably need also sending RESET signal to the SCSI bus to reset
- the status of the connections with the SCSI devices.</para>
-
-<programlisting> int fatal=0;
- struct ccb_trans_settings neg;
- struct cam_path *path;
-
- if( detected_scsi_reset(softc)
- || (fatal = detected_fatal_controller_error(softc)) ) {
- int targ, lun;
- struct xxx_hcb *h, *hh;
-
- /* drop all enqueued CCBs */
- for(h = softc->first_queued_hcb; h != NULL; h = hh) {
- hh = h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
-
- /* the clean values of negotiations to report */
- neg.bus_width = 8;
- neg.sync_period = neg.sync_offset = 0;
- neg.valid = (CCB_TRANS_BUS_WIDTH_VALID
- | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);
-
- /* drop all disconnected CCBs and clean negotiations */
- for(targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) {
- clean_negotiations(softc, targ);
-
- /* report the event if possible */
- if(xpt_create_path(&amp;path, /*periph*/NULL,
- cam_sim_path(sim), targ,
- CAM_LUN_WILDCARD) == CAM_REQ_CMP) {
- xpt_async(AC_TRANSFER_NEG, path, &amp;neg);
- xpt_free_path(path);
- }
-
- for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++)
- for(h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) {
- hh=h->next;
- if(fatal)
- free_hcb_and_ccb_done(h, h->ccb, CAM_UNREC_HBA_ERROR);
- else
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
- }
-
- /* report the event */
- xpt_async(AC_BUS_RESET, softc->wpath, NULL);
-
- /* re-initialization may take a lot of time, in such case
- * its completion should be signaled by another interrupt or
- * checked on timeout - but for simplicity we assume here that
- * it's really fast
- */
- if(!fatal) {
- reinitialize_controller_without_scsi_reset(softc);
- } else {
- reinitialize_controller_with_scsi_reset(softc);
- }
- schedule_next_hcb(softc);
- return;
- }</programlisting>
-
- <para>If interrupt is not caused by a controller-wide condition
- then probably something has happened to the current hardware
- control block. Depending on the hardware there may be other
- non-HCB-related events, we just do not consider them here. Then
- we analyze what happened to this HCB:</para>
-
-<programlisting> struct xxx_hcb *hcb, *h, *hh;
- int hcb_status, scsi_status;
- int ccb_status;
- int targ;
- int lun_to_freeze;
-
- hcb = get_current_hcb(softc);
- if(hcb == NULL) {
- /* either stray interrupt or something went very wrong
- * or this is something hardware-dependent
- */
- handle as necessary;
- return;
- }
-
- targ = hcb->target;
- hcb_status = get_status_of_current_hcb(softc);</programlisting>
-
- <para>First we check if the HCB has completed and if so we check
- the returned SCSI status.</para>
-
-<programlisting> if(hcb_status == COMPLETED) {
- scsi_status = get_completion_status(hcb);</programlisting>
-
- <para>Then look if this status is related to the REQUEST SENSE
- command and if so handle it in a simple way.</para>
-
-<programlisting> if(hcb->flags &amp; DOING_AUTOSENSE) {
- if(scsi_status == GOOD) { /* autosense was successful */
- hcb->ccb->ccb_h.status |= CAM_AUTOSNS_VALID;
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_SCSI_STATUS_ERROR);
- } else {
- autosense_failed:
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_AUTOSENSE_FAIL);
- }
- schedule_next_hcb(softc);
- return;
- }</programlisting>
-
- <para>Else the command itself has completed, pay more attention to
- details. If auto-sense is not disabled for this CCB and the
- command has failed with sense data then run REQUEST SENSE
- command to receive that data.</para>
-
-<programlisting> hcb->ccb->csio.scsi_status = scsi_status;
- calculate_residue(hcb);
-
- if( (hcb->ccb->ccb_h.flags &amp; CAM_DIS_AUTOSENSE)==0
- &amp;&amp; ( scsi_status == CHECK_CONDITION
- || scsi_status == COMMAND_TERMINATED) ) {
- /* start auto-SENSE */
- hcb->flags |= DOING_AUTOSENSE;
- setup_autosense_command_in_hcb(hcb);
- restart_current_hcb(softc);
- return;
- }
- if(scsi_status == GOOD)
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_REQ_CMP);
- else
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_SCSI_STATUS_ERROR);
- schedule_next_hcb(softc);
- return;
- }</programlisting>
-
- <para>One typical thing would be negotiation events: negotiation
- messages received from a SCSI target (in answer to our
- negotiation attempt or by target's initiative) or the target is
- unable to negotiate (rejects our negotiation messages or does
- not answer them).</para>
-
-<programlisting> switch(hcb_status) {
- case TARGET_REJECTED_WIDE_NEG:
- /* revert to 8-bit bus */
- softc->current_bus_width[targ] = softc->goal_bus_width[targ] = 8;
- /* report the event */
- neg.bus_width = 8;
- neg.valid = CCB_TRANS_BUS_WIDTH_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
- continue_current_hcb(softc);
- return;
- case TARGET_ANSWERED_WIDE_NEG:
- {
- int wd;
-
- wd = get_target_bus_width_request(softc);
- if(wd <= softc->goal_bus_width[targ]) {
- /* answer is acceptable */
- softc->current_bus_width[targ] =
- softc->goal_bus_width[targ] = neg.bus_width = wd;
-
- /* report the event */
- neg.valid = CCB_TRANS_BUS_WIDTH_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
- } else {
- prepare_reject_message(hcb);
- }
- }
- continue_current_hcb(softc);
- return;
- case TARGET_REQUESTED_WIDE_NEG:
- {
- int wd;
-
- wd = get_target_bus_width_request(softc);
- wd = min (wd, OUR_BUS_WIDTH);
- wd = min (wd, softc->user_bus_width[targ]);
-
- if(wd != softc->current_bus_width[targ]) {
- /* the bus width has changed */
- softc->current_bus_width[targ] =
- softc->goal_bus_width[targ] = neg.bus_width = wd;
-
- /* report the event */
- neg.valid = CCB_TRANS_BUS_WIDTH_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
- }
- prepare_width_nego_rsponse(hcb, wd);
- }
- continue_current_hcb(softc);
- return;
- }</programlisting>
-
- <para>Then we handle any errors that could have happened during
- auto-sense in the same simple-minded way as before. Otherwise we
- look closer at the details again.</para>
-
-<programlisting> if(hcb->flags &amp; DOING_AUTOSENSE)
- goto autosense_failed;
-
- switch(hcb_status) {</programlisting>
-
- <para>The next event we consider is unexpected disconnect. Which
- is considered normal after an ABORT or BUS DEVICE RESET message
- and abnormal in other cases.</para>
-
-<programlisting> case UNEXPECTED_DISCONNECT:
- if(requested_abort(hcb)) {
- /* abort affects all commands on that target+LUN, so
- * mark all disconnected HCBs on that target+LUN as aborted too
- */
- for(h = softc->first_discon_hcb[hcb->target][hcb->lun];
- h != NULL; h = hh) {
- hh=h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_REQ_ABORTED);
- }
- ccb_status = CAM_REQ_ABORTED;
- } else if(requested_bus_device_reset(hcb)) {
- int lun;
-
- /* reset affects all commands on that target, so
- * mark all disconnected HCBs on that target+LUN as reset
- */
-
- for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++)
- for(h = softc->first_discon_hcb[hcb->target][lun];
- h != NULL; h = hh) {
- hh=h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
-
- /* send event */
- xpt_async(AC_SENT_BDR, hcb->ccb->ccb_h.path_id, NULL);
-
- /* this was the CAM_RESET_DEV request itself, it's completed */
- ccb_status = CAM_REQ_CMP;
- } else {
- calculate_residue(hcb);
- ccb_status = CAM_UNEXP_BUSFREE;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = hcb->lun;
- }
- break;</programlisting>
-
- <para>If the target refuses to accept tags we notify CAM about
- that and return back all commands for this LUN:</para>
-
-<programlisting> case TAGS_REJECTED:
- /* report the event */
- neg.flags = 0 &amp; ~CCB_TRANS_TAG_ENB;
- neg.valid = CCB_TRANS_TQ_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
-
- ccb_status = CAM_MSG_REJECT_REC;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = hcb->lun;
- break;</programlisting>
-
- <para>Then we check a number of other conditions, with processing
- basically limited to setting the CCB status:</para>
-
-<programlisting> case SELECTION_TIMEOUT:
- ccb_status = CAM_SEL_TIMEOUT;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = CAM_LUN_WILDCARD;
- break;
- case PARITY_ERROR:
- ccb_status = CAM_UNCOR_PARITY;
- break;
- case DATA_OVERRUN:
- case ODD_WIDE_TRANSFER:
- ccb_status = CAM_DATA_RUN_ERR;
- break;
- default:
- /* all other errors are handled in a generic way */
- ccb_status = CAM_REQ_CMP_ERR;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = CAM_LUN_WILDCARD;
- break;
- }</programlisting>
-
- <para>Then we check if the error was serious enough to freeze the
- input queue until it gets proceeded and do so if it is:</para>
-
-<programlisting> if(hcb->ccb->ccb_h.status &amp; CAM_DEV_QFRZN) {
- /* freeze the queue */
- xpt_freeze_devq(ccb->ccb_h.path, /*count*/1);
-
- /* re-queue all commands for this target/LUN back to CAM */
-
- for(h = softc->first_queued_hcb; h != NULL; h = hh) {
- hh = h->next;
-
- if(targ == h->targ
- &amp;&amp; (lun_to_freeze == CAM_LUN_WILDCARD || lun_to_freeze == h->lun) )
- free_hcb_and_ccb_done(h, h->ccb, CAM_REQUEUE_REQ);
- }
- }
- free_hcb_and_ccb_done(hcb, hcb->ccb, ccb_status);
- schedule_next_hcb(softc);
- return;</programlisting>
-
- <para>This concludes the generic interrupt handling although
- specific controllers may require some additions.</para>
-
- </sect1>
-
- <sect1>
- <title>Errors Summary</title>
-
- <para>When executing an I/O request many things may go wrong. The
- reason of error can be reported in the CCB status with great
- detail. Examples of use are spread throughout this document. For
- completeness here is the summary of recommended responses for
- the typical error conditions:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>CAM_RESRC_UNAVAIL</emphasis> - some
- resource is temporarily unavailable and the SIM driver can not
- generate an event when it will become available. An example of
- this resource would be some intra-controller hardware resource
- for which the controller does not generate an interrupt when
- it becomes available.</para></listitem>
-
- <listitem><para><emphasis>CAM_UNCOR_PARITY</emphasis> -
- unrecovered parity error occurred</para></listitem>
-
- <listitem><para><emphasis>CAM_DATA_RUN_ERR</emphasis> - data
- overrun or unexpected data phase (going in other direction
- than specified in CAM_DIR_MASK) or odd transfer length for
- wide transfer</para></listitem>
-
- <listitem><para><emphasis>CAM_SEL_TIMEOUT</emphasis> - selection
- timeout occurred (target does not respond)</para></listitem>
-
- <listitem><para><emphasis>CAM_CMD_TIMEOUT</emphasis> - command
- timeout occurred (the timeout function ran)</para></listitem>
-
- <listitem><para><emphasis>CAM_SCSI_STATUS_ERROR</emphasis> - the
- device returned error</para></listitem>
-
- <listitem><para><emphasis>CAM_AUTOSENSE_FAIL</emphasis> - the
- device returned error and the REQUEST SENSE COMMAND
- failed</para></listitem>
-
- <listitem><para><emphasis>CAM_MSG_REJECT_REC</emphasis> - MESSAGE
- REJECT message was received</para></listitem>
-
- <listitem><para><emphasis>CAM_SCSI_BUS_RESET</emphasis> - received
- SCSI bus reset</para></listitem>
-
- <listitem><para><emphasis>CAM_REQ_CMP_ERR</emphasis> -
- "impossible" SCSI phase occurred or something else as weird or
- just a generic error if further detail is not
- available</para></listitem>
-
- <listitem><para><emphasis>CAM_UNEXP_BUSFREE</emphasis> -
- unexpected disconnect occurred</para></listitem>
-
- <listitem><para><emphasis>CAM_BDR_SENT</emphasis> - BUS DEVICE
- RESET message was sent to the target</para></listitem>
-
- <listitem><para><emphasis>CAM_UNREC_HBA_ERROR</emphasis> -
- unrecoverable Host Bus Adapter Error</para></listitem>
-
- <listitem><para><emphasis>CAM_REQ_TOO_BIG</emphasis> - the request
- was too large for this controller</para></listitem>
-
- <listitem><para><emphasis>CAM_REQUEUE_REQ</emphasis> - this
- request should be re-queued to preserve transaction ordering.
- This typically occurs when the SIM recognizes an error that
- should freeze the queue and must place other queued requests
- for the target at the sim level back into the XPT
- queue. Typical cases of such errors are selection timeouts,
- command timeouts and other like conditions. In such cases the
- troublesome command returns the status indicating the error,
- the and the other commands which have not be sent to the bus
- yet get re-queued.</para></listitem>
-
- <listitem><para><emphasis>CAM_LUN_INVALID</emphasis> - the LUN
- ID in the request is not supported by the SCSI
- controller</para></listitem>
-
- <listitem><para><emphasis>CAM_TID_INVALID</emphasis> - the
- target ID in the request is not supported by the SCSI
- controller</para></listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Timeout Handling</title>
-
- <para>When the timeout for an HCB expires that request should be
- aborted, just like with an XPT_ABORT request. The only
- difference is that the returned status of aborted request should
- be CAM_CMD_TIMEOUT instead of CAM_REQ_ABORTED (that's why
- implementation of the abort better be done as a function). But
- there is one more possible problem: what if the abort request
- itself will get stuck? In this case the SCSI bus should be
- reset, just like with an XPT_RESET_BUS request (and the idea
- about implementing it as a function called from both places
- applies here too). Also we should reset the whole SCSI bus if a
- device reset request got stuck. So after all the timeout
- function would look like:</para>
-
-<programlisting>static void
-xxx_timeout(void *arg)
-{
- struct xxx_hcb *hcb = (struct xxx_hcb *)arg;
- struct xxx_softc *softc;
- struct ccb_hdr *ccb_h;
-
- softc = hcb->softc;
- ccb_h = &amp;hcb->ccb->ccb_h;
-
- if(hcb->flags &amp; HCB_BEING_ABORTED
- || ccb_h->func_code == XPT_RESET_DEV) {
- xxx_reset_bus(softc);
- } else {
- xxx_abort_ccb(hcb->ccb, CAM_CMD_TIMEOUT);
- }
-}</programlisting>
-
- <para>When we abort a request all the other disconnected requests
- to the same target/LUN get aborted too. So there appears a
- question, should we return them with status CAM_REQ_ABORTED or
- CAM_CMD_TIMEOUT ? The current drivers use CAM_CMD_TIMEOUT. This
- seems logical because if one request got timed out then probably
- something really bad is happening to the device, so if they
- would not be disturbed they would time out by themselves.</para>
-
- </sect1>
-
-</chapter>
diff --git a/en_US.ISO8859-1/books/arch-handbook/usb/chapter.sgml b/en_US.ISO8859-1/books/arch-handbook/usb/chapter.sgml
deleted file mode 100644
index 9656256e31..0000000000
--- a/en_US.ISO8859-1/books/arch-handbook/usb/chapter.sgml
+++ /dev/null
@@ -1,623 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="usb">
- <title>USB Devices</title>
-
- <para><emphasis>This chapter was written by &a.nhibma;. Modifications made for
- the handbook by &a.murray;.</emphasis></para>
-
- <sect1>
- <title>Introduction</title>
-
- <para>The Universal Serial Bus (USB) is a new way of attaching
- devices to personal computers. The bus architecture features
- two-way communication and has been developed as a response to
- devices becoming smarter and requiring more interaction with the
- host. USB support is included in all current PC chipsets and is
- therefore available in all recently built PCs. Apple's
- introduction of the USB-only iMac has been a major incentive for
- hardware manufacturers to produce USB versions of their devices.
- The future PC specifications specify that all legacy connectors
- on PCs should be replaced by one or more USB connectors,
- providing generic plug and play capabilities. Support for USB
- hardware was available at a very early stage in NetBSD and was
- developed by Lennart Augustsson for the NetBSD project. The
- code has been ported to FreeBSD and we are currently maintaining
- a shared code base. For the implementation of the USB subsystem
- a number of features of USB are important.</para>
-
- <para><emphasis>Lennart Augustsson has done most of the implementation of
- the USB support for the NetBSD project. Many thanks for this
- incredible amount of work. Many thanks also to Ardy and Dirk for
- their comments and proofreading of this paper.</emphasis></para>
-
- <itemizedlist>
-
- <listitem><para>Devices connect to ports on the computer
- directly or on devices called hubs, forming a treelike device
- structure.</para></listitem>
-
- <listitem><para>The devices can be connected and disconnected at
- run time.</para></listitem>
-
- <listitem><para>Devices can suspend themselves and trigger
- resumes of the host system</para></listitem>
-
- <listitem><para>As the devices can be powered from the bus, the
- host software has to keep track of power budgets for each
- hub.</para></listitem>
-
- <listitem><para>Different quality of service requirements by the
- different device types together with the maximum of 126
- devices that can be connected to the same bus, require proper
- scheduling of transfers on the shared bus to take full
- advantage of the 12Mbps bandwidth available. (over 400Mbps
- with USB 2.0)</para></listitem>
-
- <listitem><para>Devices are intelligent and contain easily
- accessible information about themselves</para></listitem>
-
- </itemizedlist>
-
- <para>The development of drivers for the USB subsystem and devices
- connected to it is supported by the specifications that have
- been developed and will be developed. These specifications are
- publicly available from the USB home pages. Apple has been very
- strong in pushing for standards based drivers, by making drivers
- for the generic classes available in their operating system
- MacOS and discouraging the use of separate drivers for each new
- device. This chapter tries to collate essential information for a
- basic understanding of the present implementation of the USB
- stack in FreeBSD/NetBSD. It is recommended however to read it
- together with the relevant specifications mentioned in the
- references below.</para>
-
- <sect2>
- <title>Structure of the USB Stack</title>
-
- <para>The USB support in FreeBSD can be split into three
- layers. The lowest layer contains the host controller driver,
- providing a generic interface to the hardware and its scheduling
- facilities. It supports initialisation of the hardware,
- scheduling of transfers and handling of completed and/or failed
- transfers. Each host controller driver implements a virtual hub
- providing hardware independent access to the registers
- controlling the root ports on the back of the machine.</para>
-
- <para>The middle layer handles the device connection and
- disconnection, basic initialisation of the device, driver
- selection, the communication channels (pipes) and does
- resource management. This services layer also controls the
- default pipes and the device requests transferred over
- them.</para>
-
- <para>The top layer contains the individual drivers supporting
- specific (classes of) devices. These drivers implement the
- protocol that is used over the pipes other than the default
- pipe. They also implement additional functionality to make the
- device available to other parts of the kernel oruserland. They
- use the USB driver interface (USBDI) exposed by the services
- layer.</para>
- </sect2>
- </sect1>
-
- <sect1 id="usb-hc">
- <title>Host Controllers</title>
-
- <para>The host controller (HC) controls the transmission of
- packets on the bus. Frames of 1 millisecond are used. At the
- start of each frame the host controller generates a Start of
- Frame (SOF) packet.</para>
-
- <para>The SOF packet is used to synchronise to the start of the
- frame and to keep track of the frame number. Within each frame
- packets are transferred, either from host to device (out) or
- from device to host (in). Transfers are always initiated by the
- host (polled transfers). Therefore there can only be one host
- per USB bus. Each transfer of a packet has a status stage in
- which the recipient of the data can return either ACK
- (acknowledge reception), NAK (retry), STALL (error condition) or
- nothing (garbled data stage, device not available or
- disconnected). Section 8.5 of the <ulink
- url="http://www.usb.org/developers/docs.html">USB
- specification</ulink> explains the details of packets in more
- detail. Four different types of transfers can occur on a USB
- bus: control, bulk, interrupt and isochronous. The types of
- transfers and their characteristics are described below (`Pipes'
- subsection).</para>
-
- <para>Large transfers between the device on the USB bus and the
- device driver are split up into multiple packets by the host
- controller or the HC driver.</para>
-
- <para>Device requests (control transfers) to the default endpoints
- are special. They consist of two or three phases: SETUP, DATA
- (optional) and STATUS. The set-up packet is sent to the
- device. If there is a data phase, the direction of the data
- packet(s) is given in the set-up packet. The direction in the
- status phase is the opposite of the direction during the data
- phase, or IN if there was no data phase. The host controller
- hardware also provides registers with the current status of the
- root ports and the changes that have occurred since the last
- reset of the status change register. Access to these registers
- is provided through a virtualised hub as suggested in the USB
- specification [ 2]. Thevirtual hub must comply with the hub
- device class given in chapter 11 of that specification. It must
- provide a default pipe through which device requests can be sent
- to it. It returns the standard andhub class specific set of
- descriptors. It should also provide an interrupt pipe that
- reports changes happening at its ports. There are currently two
- specifications for host controllers available: <ulink
- url="http://developer.intel.com/design/USB/UHCI11D.htm">Universal
- Host Controller Interface</ulink> (UHCI; Intel) and <ulink
- url="http://www.compaq.com/productinfo/development/openhci.html">Open
- Host Controller Interface</ulink> (OHCI; Compaq, Microsoft,
- National Semiconductor). The UHCI specification has been
- designed to reduce hardware complexity byrequiring the host
- controller driver to supply a complete schedule of the transfers
- for each frame. OHCI type controllers are much more independent
- by providing a more abstract interface doing alot of work
- themselves. </para>
-
- <sect2>
- <title>UHCI</title>
-
- <para>The UHCI host controller maintains a framelist with 1024
- pointers to per frame data structures. It understands two
- different data types: transfer descriptors (TD) and queue
- heads (QH). Each TD represents a packet to be communicated to
- or from a device endpoint. QHs are a means to groupTDs (and
- QHs) together.</para>
-
- <para>Each transfer consists of one or more packets. The UHCI
- driver splits large transfers into multiple packets. For every
- transfer, apart from isochronous transfers, a QH is
- allocated. For every type of transfer these QHs are collected
- at a QH for that type. Isochronous transfers have to be
- executed first because of the fixed latency requirement and
- are directly referred to by the pointer in the framelist. The
- last isochronous TD refers to the QH for interrupt transfers
- for that frame. All QHs for interrupt transfers point at the
- QH for control transfers, which in turn points at the QH for
- bulk transfers. The following diagram gives a graphical
- overview of this:</para>
-
- <para>This results in the following schedule being run in each
- frame. After fetching the pointer for the current frame from
- the framelist the controller first executes the TDs for all
- the isochronous packets in that frame. The last of these TDs
- refers to the QH for the interrupt transfers for
- thatframe. The host controller will then descend from that QH
- to the QHs for the individual interrupt transfers. After
- finishing that queue, the QH for the interrupt transfers will
- refer the controller to the QH for all control transfers. It
- will execute all the subqueues scheduled there, followed by
- all the transfers queued at the bulk QH. To facilitate the
- handling of finished or failed transfers different types of
- interrupts are generatedby the hardware at the end of each
- frame. In the last TD for a transfer the Interrupt-On
- Completion bit is set by the HC driver to flag an interrupt
- when the transfer has completed. An error interrupt is flagged
- if a TD reaches its maximum error count. If the short packet
- detect bit is set in a TD and less than the set packet length
- is transferred this interrupt is flagged to notify
- the controller driver of the completed transfer. It is the host
- controller driver's task to find out which transfer has
- completed or produced an error. When called the interrupt
- service routine will locate all the finished transfers and
- call their callbacks.</para>
-
- <para>See for a more elaborate description the <ulink
- url="http://developer.intel.com/design/USB/UHCI11D.htm">UHCI
- specification.</ulink></para>
-
- </sect2>
-
- <sect2>
- <title>OHCI</title>
-
- <para>Programming an OHCI host controller is much simpler. The
- controller assumes that a set of endpoints is available, and
- is aware of scheduling priorities and the ordering of the
- types of transfers in a frame. The main data structure used by
- the host controller is the endpoint descriptor (ED) to which
- aqueue of transfer descriptors (TDs) is attached. The ED
- contains the maximum packet size allowed for an endpoint and
- the controller hardware does the splitting into packets. The
- pointers to the data buffers are updated after each transfer
- and when the start and end pointer are equal, the TD is
- retired to the done-queue. The four types of endpoints have
- their own queues. Control and bulk endpoints are queued each at
- their own queue. Interrupt EDs are queued in a tree, with the
- level in the tree defining the frequency at which they
- run.</para>
-
- <para>framelist interruptisochronous control bulk</para>
-
- <para>The schedule being run by the host controller in each
- frame looks as follows. The controller will first run the
- non-periodic control and bulk queues, up to a time limit set
- by the HC driver. Then the interrupt transfers for that frame
- number are run, by using the lower five bits of the frame
- number as an index into level 0 of the tree of interrupts
- EDs. At the end of this tree the isochronous EDs are connected
- and these are traversed subsequently. The isochronous TDs
- contain the frame number of the first frame the transfer
- should be run in. After all the periodic transfers have been
- run, the control and bulk queues are traversed
- again. Periodically the interrupt service routine is called to
- process the done queue and call the callbacks for each
- transfer and reschedule interrupt and isochronous
- endpoints.</para>
-
- <para>See for a more elaborate description the <ulink
- url="http://www.compaq.com/productinfo/development/openhci.html">
- OHCI specification</ulink>. Services layer The middle layer
- provides access to the device in a controlled way and
- maintains resources inuse by the different drivers and the
- services layer. The layer takes care of the following
- aspects:</para>
-
- <itemizedlist>
- <listitem><para>The device configuration
- information</para></listitem>
- <listitem><para>The pipes to communicate with a
- device</para></listitem>
- <listitem><para>Probing and attaching and detaching form a
- device.</para></listitem>
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="usb-dev">
- <title>USB Device Information</title>
-
- <sect2>
- <title>Device configuration information</title>
-
- <para>Each device provides different levels of configuration
- information. Each device has one or more configurations, of
- which one is selected during probe/attach. A configuration
- provides power and bandwidth requirements. Within each
- configuration there can be multiple interfaces. A device
- interface is a collection of endpoints. For example USB
- speakers can have an interface for the audio data (Audio
- Class) and an interface for the knobs, dials and buttons (HID
- Class). All interfaces in a configuration areactive at the
- same time and can be attached to by different drivers. Each
- interface can have alternates, providing different quality of
- service parameters. In for example cameras this is used to
- provide different frame sizes and numbers of frames per
- second.</para>
-
- <para>Within each interface 0 or more endpoints can be
- specified. Endpoints are the unidirectional access points for
- communicating with a device. They provide buffers to
- temporarily store incoming or outgoing data from the
- device. Each endpoint has a unique address within
- a configuration, the endpoint's number plus its direction. The
- default endpoint, endpoint 0, is not part of any interface and
- available in all configurations. It is managed by the services
- layer and not directly available to device drivers.</para>
-
- <para>Level 0 Level 1 Level 2 Slot 0</para>
- <para>Slot 3 Slot 2 Slot 1</para>
- <para>(Only 4 out of 32 slots shown)</para>
-
- <para>This hierarchical configuration information is described
- in the device by a standard set of descriptors (see section 9.6
- of the USB specification [ 2]). They can be requested through
- the Get Descriptor Request. The services layer caches these
- descriptors to avoid unnecessary transferson the USB
- bus. Access to the descriptors is provided through function
- calls.</para>
-
- <itemizedlist>
- <listitem><para>Device descriptors: General information about
- the device, like Vendor, Product and Revision Id, supported
- device class, subclass and protocol if applicable, maximum
- packet size for the default endpoint, etc.</para></listitem>
-
- <listitem><para>Configuration descriptors: The number of
- interfaces in this configuration, suspend and resume
- functionality supported and power
- requirements.</para></listitem>
-
- <listitem><para>Interface descriptors: interface class,
- subclass and protocol if applicable, number of alternate
- settings for the interface and the number of
- endpoints.</para></listitem>
-
- <listitem><para>Endpoint descriptors: Endpoint address,
- direction and type, maximum packet size supported and
- polling frequency if type is interrupt endpoint. There is no
- descriptor for thedefault endpoint (endpoint 0) and it is
- never counted in an interface descriptor.</para></listitem>
-
- <listitem><para>String descriptors: In the other descriptors
- string indices are supplied for some fields.These can be
- used to retrieve descriptive strings, possibly in multiple
- languages.</para></listitem>
-
- </itemizedlist>
-
- <para>Class specifications can add their own descriptor types
- that are available through the GetDescriptor Request.</para>
-
- <para>Pipes Communication to end points on a device flows
- through so-called pipes. Drivers submit transfers to endpoints
- to a pipe and provide a callback to be called on completion or
- failure of the transfer (asynchronous transfers) or wait for
- completion (synchronous transfer). Transfers to an endpoint
- are serialised in the pipe. A transfer can either complete,
- fail or time-out (if a time-out has been set). There are two
- types of time-outs for transfers. Time-outs can happen due to
- time-out on the USBbus (milliseconds). These time-outs are
- seen as failures and can be due to disconnection of the
- device. A second form of time-out is implemented in software
- and is triggered when a transfer does not complete within a
- specified amount of time (seconds). These are caused by a
- device acknowledging negatively (NAK) the transferred
- packets. The cause for this is the device not being ready to
- receive data, buffer under- or overrun or protocol
- errors.</para>
-
- <para>If a transfer over a pipe is larger than the maximum
- packet size specified in the associated endpoint descriptor,
- the host controller (OHCI) or the HC driver (UHCI) will split
- the transfer into packets of maximum packet size, with the
- last packet possibly smaller than the maximum
- packetsize.</para>
-
- <para>Sometimes it is not a problem for a device to return less
- data than requested. For example abulk-in-transfer to a modem
- might request 200 bytes of data, but the modem has only 5
- bytes available at that time. The driver can set the short
- packet (SPD) flag. It allows the host controller to accept a
- packet even if the amount of data transferred is less than
- requested. This flag is only valid for in-transfers, as the
- amount of data to be sent to a device is always known
- beforehand. If an unrecoverable error occurs in a device
- during a transfer the pipe is stalled. Before any more data is
- accepted or sent the driver needs to resolve the cause of the
- stall and clear the endpoint stall condition through send the
- clear endpoint halt device request over the default
- pipe. The default endpoint should never stall.</para>
-
- <para>There are four different types of endpoints and
- corresponding pipes: - Control pipe / default pipe: There is
- one control pipe per device, connected to the default endpoint
- (endpoint 0). The pipe carries the device requests and
- associated data. The difference between transfers over the
- default pipe and other pipes is that the protocol for
- thetransfers is described in the USB specification [ 2]. These
- requests are used to reset and configure the device. A basic
- set of commands that must be supported by each device is
- provided in chapter 9 of the USB specification [ 2]. The
- commands supported on this pipe canbe extended by a device
- class specification to support additional
- functionality.</para>
-
- <itemizedlist>
- <listitem><para>Bulk pipe: This is the USB equivalent to a raw
- transmission medium.</para></listitem>
- <listitem><para>Interrupt pipe: The host sends a request for
- data to the device and if the device has nothing to send, it
- will NAK the data packet. Interrupt transfers are scheduled
- at a frequency specifiedwhen creating the
- pipe.</para></listitem>
-
- <listitem><para>Isochronous pipe: These pipes are intended for
- isochronous data, for example video oraudio streams, with
- fixed latency, but no guaranteed delivery. Some support for
- pipes of this type is available in the current
- implementation. Packets in control, bulk and interrupt
- transfers are retried if an error occurs during transmission
- or the device acknowledges the packet negatively (NAK) due to
- for example lack of buffer space to store the incoming
- data. Isochronous packets are however not retried in case of
- failed delivery or NAK of a packet as this might violate the
- timing constraints.</para></listitem>
- </itemizedlist>
-
- <para>The availability of the necessary bandwidth is calculated
- during the creation of the pipe. Transfersare scheduled within
- frames of 1 millisecond. The bandwidth allocation within a
- frame is prescribed by the USB specification, section 5.6 [
- 2]. Isochronous and interrupt transfers areallowed to consume
- up to 90% of the bandwidth within a frame. Packets for control
- and bulk transfers are scheduled after all isochronous and
- interrupt packets and will consume all the remaining
- bandwidth.</para>
-
- <para>More information on scheduling of transfers and bandwidth
- reclamation can be found in chapter 5of the USB specification
- [ 2], section 1.3 of the UHCI specification [ 3] and section
- 3.4.2 of the OHCI specification [4].</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="usb-devprobe">
- <title>Device probe and attach</title>
-
- <para>After the notification by the hub that a new device has been
- connected, the service layer switcheson the port, providing the
- device with 100 mA of current. At this point the device is in
- its default state and listening to device address 0. The
- services layer will proceed to retrieve the various descriptors
- through the default pipe. After that it will send a Set Address
- request to move the device away from the default device address
- (address 0). Multiple device drivers might be able to support
- the device. For example a modem driver might beable to support
- an ISDN TA through the AT compatibility interface. A driver for
- that specific model of the ISDN adapter might however be able to
- provide much better support for this device. To support this
- flexibility, the probes return priorities indicating their level
- of support. Support for a specific revision of a product ranks
- the highest and the generic driver the lowest priority. It might
- also be that multiple drivers could attach to one device if
- there are multiple interfaceswithin one configuration. Each
- driver only needs to support a subset of the interfaces.</para>
-
- <para>The probing for a driver for a newly attached device checks
- first for device specific drivers. If notfound, the probe code
- iterates over all supported configurations until a driver
- attaches in a configuration. To support devices with multiple
- drivers on different interfaces, the probe iteratesover all
- interfaces in a configuration that have not yet been claimed by
- a driver. Configurations that exceed the power budget for the
- hub are ignored. During attach the driver should initialise the
- device to its proper state, but not reset it, as this will make
- the device disconnect itself from the bus and restart the
- probing process for it. To avoid consuming unnecessary bandwidth
- should not claim the interrupt pipe at attach time, but
- should postpone allocating the pipe until the file is opened and
- the data is actually used. When the file is closed the pipe
- should be closed again, eventhough the device might still be
- attached.</para>
-
- <sect2>
- <title>Device disconnect and detach</title>
-
- <para>A device driver should expect to receive errors during any
- transaction with the device. The designof USB supports and
- encourages the disconnection of devices at any point in
- time. Drivers should make sure that they do the right thing
- when the device disappears.</para>
-
- <para>Furthermore a device that has been disconnected and
- reconnected will not be reattached at the same device
- instance. This might change in the future when more devices
- support serial numbers (see the device descriptor) or other
- means of defining an identity for a device have been
- developed.</para>
-
- <para>The disconnection of a device is signalled by a hub in the
- interrupt packet delivered to the hub driver. The status
- change information indicates which port has seen a connection
- change. The device detach method for all device drivers for
- the device connected on that port are called and the structures
- cleaned up. If the port status indicates that in the mean time
- a device has been connected to that port, the procedure for
- probing and attaching the device will be started. A device
- reset will produce a disconnect-connect sequence on the hub
- and will be handled as described above.</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="usb-protocol">
- <title>USB Drivers Protocol Information</title>
-
- <para>The protocol used over pipes other than the default pipe is
- undefined by the USB specification. Information on this can be
- found from various sources. The most accurate source is the
- developer's section on the USB home pages [ 1]. From these pages
- a growing number of deviceclass specifications are
- available. These specifications specify what a compliant device
- should look like from a driver perspective, basic functionality
- it needs to provide and the protocol that is to be used over the
- communication channels. The USB specification [ 2] includes the
- description of the Hub Class. A class specification for Human
- Interface Devices (HID) has been created to cater for keyboards,
- tablets, bar-code readers, buttons, knobs, switches, etc. A
- third example is the class specification for mass storage
- devices. For a full list of device classes see the developers
- sectionon the USB home pages [ 1].</para>
-
- <para>For many devices the protocol information has not yet been
- published however. Information on the protocol being used might
- be available from the company making the device. Some companies
- will require you to sign a Non -Disclosure Agreement (NDA)
- before giving you the specifications. This in most cases
- precludes making the driver open source.</para>
-
- <para>Another good source of information is the Linux driver
- sources, as a number of companies have started to provide drivers
- for Linux for their devices. It is always a good idea to contact
- the authors of those drivers for their source of
- information.</para>
-
- <para>Example: Human Interface Devices The specification for the
- Human Interface Devices like keyboards, mice, tablets, buttons,
- dials,etc. is referred to in other device class specifications
- and is used in many devices.</para>
-
- <para>For example audio speakers provide endpoints to the digital
- to analogue converters and possibly an extra pipe for a
- microphone. They also provide a HID endpoint in a separate
- interface for the buttons and dials on the front of the
- device. The same is true for the monitor control class. It is
- straightforward to build support for these interfaces through
- the available kernel and userland libraries together with the
- HID class driver or the generic driver. Another device that
- serves as an example for interfaces within one configuration
- driven by different device drivers is a cheap keyboard with
- built-in legacy mouse port. To avoid having the cost of
- including the hardware for a USB hub in the device,
- manufacturers combined the mouse data received from the PS/2 port
- on the back of the keyboard and the keypresses from the keyboard
- into two separate interfaces in the same configuration. The
- mouse and keyboard drivers each attach to the appropriate
- interface and allocate the pipes to the two independent
- endpoints.</para>
-
- <para>Example: Firmware download Many devices that have been
- developed are based on a general purpose processor with
- anadditional USB core added to it. Because the development of
- drivers and firmware for USB devices is still very new, many
- devices require the downloading of the firmware after they
- have been connected.</para>
-
- <para>The procedure followed is straightforward. The device
- identifies itself through a vendor and product Id. The first
- driver probes and attaches to it and downloads the firmware into
- it. After that the device soft resets itself and the driver is
- detached. After a short pause the devicere announces its presence
- on the bus. The device will have changed its
- vendor/product/revision Id to reflect the fact that it has been
- supplied with firmware and as a consequence a second driver will
- probe it and attach to it.</para>
-
- <para>An example of these types of devices is the ActiveWire I/O
- board, based on the EZ-USB chip. For this chip a generic firmware
- downloader is available. The firmware downloaded into the
- ActiveWire board changes the revision Id. It will then perform a
- soft reset of the USB part of the EZ-USB chip to disconnect from
- the USB bus and again reconnect.</para>
-
- <para>Example: Mass Storage Devices Support for mass storage
- devices is mainly built around existing protocols. The Iomega
- USB Zipdrive is based on the SCSI version of their drive. The
- SCSI commands and status messages are wrapped in blocks and
- transferred over the bulk pipes to and from the device,
- emulating a SCSI controller over the USB wire. ATAPI and UFI
- commands are supported in a similar fashion.</para>
-
- <para>The Mass Storage Specification supports 2 different types of
- wrapping of the command block.The initial attempt was based on
- sending the command and status through the default pipe and
- using bulk transfers for the data to be moved between the host
- and the device. Based on experience a second approach was
- designed that was based on wrapping the command and status
- blocks and sending them over the bulk out and in endpoint. The
- specification specifies exactly what has to happen when and what
- has to be done in case an error condition is encountered. The
- biggest challenge when writing drivers for these devices is to
- fit USB based protocol into theexisting support for mass storage
- devices. CAM provides hooks to do this in a fairly straight
- forward way. ATAPI is less simple as historically the IDE
- interface has never had many different appearances.</para>
-
- <para>The support for the USB floppy from Y-E Data is again less
- straightforward as a new command set has been designed.</para>
-
- </sect1>
-
-</chapter> \ No newline at end of file
diff --git a/en_US.ISO8859-1/books/corp-net-guide/08-01.eps b/en_US.ISO8859-1/books/corp-net-guide/08-01.eps
deleted file mode 100644
index a23990fc07..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/08-01.eps
+++ /dev/null
@@ -1,8104 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: Adobe Illustrator(R) 8.0
-%%AI8_CreatorVersion: 8.0.1
-%%For: (Mark Bergeron) (PD&PS)
-%%Title: (08-01 3594)
-%%CreationDate: (11/21/00) (9:07 AM)
-%%BoundingBox: 150 275 421 404
-%%HiResBoundingBox: 150.9429 275.7031 420.7891 403.7451
-%%DocumentProcessColors: Black
-%%DocumentFonts: Formata-Bold
-%%+ Helvetica
-%%DocumentNeededFonts: Formata-Bold
-%%+ Helvetica
-%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
-%%+ procset Adobe_typography_AI5 1.0 1
-%%+ procset Adobe_ColorImage_AI6 1.3 0
-%%+ procset Adobe_Illustrator_AI5 1.3 0
-%%+ procset Adobe_cshow 2.0 8
-%%+ procset Adobe_shading_AI8 1.0 0
-%AI5_FileFormat 4.0
-%AI3_ColorUsage: Black&White
-%AI3_IncludePlacedImages
-%AI7_ImageSettings: 1
-%%CMYKProcessColor: 0 0 0 0.15 (15%)
-%%+ 0 0 0 0.3 (30%)
-%%+ 0 0 0 0.5 (50%)
-%%+ 0 0 0 0.75 (75%)
-%%+ 1 1 1 1 ([Registration])
-%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
-%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4
-%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ()
-%AI3_TemplateBox: 306.5 395.5 306.5 395.5
-%AI3_TileBox: 12 14 600 782
-%AI3_DocumentPreview: Macintosh_ColorPic
-%AI5_ArtSize: 612 792
-%AI5_RulerUnits: 3
-%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0
-%AI5_TargetResolution: 800
-%AI5_NumLayers: 1
-%AI8_OpenToView: 147 503 2.3424 1137 777 18 0 1 7 40 0 0
-%AI5_OpenViewLayers: 7
-%%PageOrigin:12 14
-%%AI3_PaperRect:-12 782 600 -10
-%%AI3_Margin:12 -14 -12 10
-%AI7_GridSettings: 12 3 12 3 1 0 0.29 1 1 0.65 1 1
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Adobe_level2_AI5 1.2 0
-%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
-%%Version: 1.2 0
-%%CreationDate: (04/10/93) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-userdict /Adobe_level2_AI5 26 dict dup begin
- put
- /packedarray where not
- {
- userdict begin
- /packedarray
- {
- array astore readonly
- } bind def
- /setpacking /pop load def
- /currentpacking false def
- end
- 0
- } if
- pop
- userdict /defaultpacking currentpacking put true setpacking
- /initialize
- {
- Adobe_level2_AI5 begin
- } bind def
- /terminate
- {
- currentdict Adobe_level2_AI5 eq
- {
- end
- } if
- } bind def
- mark
- /setcustomcolor where not
- {
- /findcmykcustomcolor
- {
- (AI8_CMYK_CustomColor)
- 6 packedarray
- } bind def
- /findrgbcustomcolor
- {
- (AI8_RGB_CustomColor)
- 5 packedarray
- } bind def
- /setcustomcolor
- {
- exch
- aload pop dup
- (AI8_CMYK_CustomColor) eq
- {
- pop pop
- 4
- {
- 4 index mul
- 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- }
- {
- dup (AI8_RGB_CustomColor) eq
- {
- pop pop
- 3
- {
- 1 exch sub
- 3 index mul
- 1 exch sub
- 3 1 roll
- } repeat
- 4 -1 roll pop
- setrgbcolor
- }
- {
- pop
- 4
- {
- 4 index mul 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- } ifelse
- } ifelse
- }
- def
- } if
- /setAIseparationgray
- {
- false setoverprint
- 0 setgray
- /setseparationgray where{
- pop setseparationgray
- }{
- /setcolorspace where{
- pop
- [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
- 1 exch sub setcolor
- }{
- setgray
- }ifelse
- }ifelse
- } def
-
- /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
- userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
- userdict /level2?
- systemdict /languagelevel known dup
- {
- pop systemdict /languagelevel get 2 ge
- } if
- put
-/level2ScreenFreq
-{
- begin
- 60
- HalftoneType 1 eq
- {
- pop Frequency
- } if
- HalftoneType 2 eq
- {
- pop GrayFrequency
- } if
- HalftoneType 5 eq
- {
- pop Default level2ScreenFreq
- } if
- end
-} bind def
-userdict /currentScreenFreq
- level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
-level2? not
- {
- /setcmykcolor where not
- {
- /setcmykcolor
- {
- exch .11 mul add exch .59 mul add exch .3 mul add
- 1 exch sub setgray
- } def
- } if
- /currentcmykcolor where not
- {
- /currentcmykcolor
- {
- 0 0 0 1 currentgray sub
- } def
- } if
- /setoverprint where not
- {
- /setoverprint /pop load def
- } if
- /selectfont where not
- {
- /selectfont
- {
- exch findfont exch
- dup type /arraytype eq
- {
- makefont
- }
- {
- scalefont
- } ifelse
- setfont
- } bind def
- } if
- /cshow where not
- {
- /cshow
- {
- [
- 0 0 5 -1 roll aload pop
- ] cvx bind forall
- } bind def
- } if
- } if
- cleartomark
- /anyColor?
- {
- add add add 0 ne
- } bind def
- /testColor
- {
- gsave
- setcmykcolor currentcmykcolor
- grestore
- } bind def
- /testCMYKColorThrough
- {
- testColor anyColor?
- } bind def
- userdict /composite?
- 1 0 0 0 testCMYKColorThrough
- 0 1 0 0 testCMYKColorThrough
- 0 0 1 0 testCMYKColorThrough
- 0 0 0 1 testCMYKColorThrough
- and and and
- put
- composite? not
- {
- userdict begin
- gsave
- /cyan? 1 0 0 0 testCMYKColorThrough def
- /magenta? 0 1 0 0 testCMYKColorThrough def
- /yellow? 0 0 1 0 testCMYKColorThrough def
- /black? 0 0 0 1 testCMYKColorThrough def
- grestore
- /isCMYKSep? cyan? magenta? yellow? black? or or or def
- /customColor? isCMYKSep? not def
- end
- } if
- end defaultpacking setpacking
-%%EndResource
-%%BeginResource: procset Adobe_typography_AI5 1.0 1
-%%Title: (Typography Operators)
-%%Version: 1.0 1
-%%CreationDate:(6/10/1996) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_typography_AI5 68 dict dup begin
-put
-/initialize
-{
- begin
- begin
- Adobe_typography_AI5 begin
- Adobe_typography_AI5
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- end
- end
- Adobe_typography_AI5 begin
-} def
-/terminate
-{
- currentdict Adobe_typography_AI5 eq
- {
- end
- } if
-} def
-/modifyEncoding
-{
- /_tempEncode exch ddef
- /_pntr 0 ddef
- {
- counttomark -1 roll
- dup type dup /marktype eq
- {
- pop pop exit
- }
- {
- /nametype eq
- {
- _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
- put
- }
- {
- /_pntr exch ddef
- } ifelse
- } ifelse
- } loop
- _tempEncode
-} def
-/havefont
-{
- systemdict /languagelevel known
- {
- /Font resourcestatus dup
- { exch pop exch pop }
- if
- }
- {
- systemdict /FontDirectory get 1 index known
- { pop true }
- {
- systemdict /fileposition known
- {
- dup length 6 add exch
- Ss 6 250 getinterval
- cvs pop
- Ss exch 0 exch getinterval
- status
- { pop pop pop pop true }
- { false }
- ifelse
- }
- {
- pop false
- }
- ifelse
- }
- ifelse
- }
- ifelse
-} def
-/TE
-{
- StandardEncoding 256 array copy modifyEncoding
- /_nativeEncoding exch def
-} def
-/subststring {
- exch 2 index exch search
- {
- exch pop
- exch dup () eq
- {
- pop exch concatstring
- }
- {
- 3 -1 roll
- exch concatstring
- concatstring
- } ifelse
- exch pop true
- }
- {
- pop pop false
- } ifelse
-} def
-/concatstring {
- 1 index length 1 index length
- 1 index add
- string
- dup 0 5 index putinterval
- dup 2 index 4 index putinterval
- 4 1 roll pop pop pop
-} def
-%
-/TZ
-{
- dup type /arraytype eq
- {
- /_wv exch def
- }
- {
- /_wv 0 def
- } ifelse
- /_useNativeEncoding exch def
- 2 index havefont
- {
- 3 index
- 255 string
- cvs
-
- dup
- (_Symbol_)
- eq
- {
- pop
- 2 index
- findfont
-
- }
- {
- 1 index 0 eq
- {
- dup length 1 sub
- 1 exch
- getinterval
-
- cvn
- findfont
- }
- {
- pop 2 index findfont
- } ifelse
- } ifelse
- }
- {
- dup 1 eq
- {
- 2 index 64 string cvs
- dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop dup
- (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop pop true
- } ifelse
- } ifelse
- {
- 1 index 1 eq
- {
- /Ryumin-Light-Ext-RKSJ-V havefont
- {/Ryumin-Light-Ext-RKSJ-V}
- {/Courier}
- ifelse
- }
- {
- /Ryumin-Light-83pv-RKSJ-H havefont
- {/Ryumin-Light-83pv-RKSJ-H}
- {/Courier}
- ifelse
- } ifelse
- findfont
- [1 0 0.5 1 0 0] makefont
- } if
- }
- {
- /Courier findfont
- } ifelse
- } ifelse
- _wv type /arraytype eq
- {
- _wv makeblendedfont
- } if
- dup length 10 add dict
- begin
- mark exch
- {
- 1 index /FID ne
- {
- def
- } if
- cleartomark mark
- } forall
- pop
- /FontScript exch def
- /FontDirection exch def
- /FontRequest exch def
- /FontName exch def
- counttomark 0 eq
- {
- 1 _useNativeEncoding eq
- {
- /Encoding _nativeEncoding def
- } if
- cleartomark
- }
- {
- /Encoding load 256 array copy
- modifyEncoding /Encoding exch def
- } ifelse
- FontName currentdict
- end
- definefont pop
-} def
-/tr
-{
- _ax _ay 3 2 roll
-} def
-/trj
-{
- _cx _cy _sp _ax _ay 6 5 roll
-} def
-/a0
-{
- /Tx
- {
- dup
- currentpoint 3 2 roll
- tr _psf
- newpath moveto
- tr _ctm _pss
- } ddef
- /Tj
- {
- dup
- currentpoint 3 2 roll
- trj _pjsf
- newpath moveto
- trj _ctm _pjss
- } ddef
-} def
-/a1
-{
-W B
-} def
-/e0
-{
- /Tx
- {
- tr _psf
- } ddef
- /Tj
- {
- trj _pjsf
- } ddef
-} def
-/e1
-{
-W F
-} def
-/i0
-{
- /Tx
- {
- tr sp
- } ddef
- /Tj
- {
- trj jsp
- } ddef
-} def
-/i1
-{
- W N
-} def
-/o0
-{
- /Tx
- {
- tr sw rmoveto
- } ddef
- /Tj
- {
- trj swj rmoveto
- } ddef
-} def
-/r0
-{
- /Tx
- {
- tr _ctm _pss
- } ddef
- /Tj
- {
- trj _ctm _pjss
- } ddef
-} def
-/r1
-{
-W S
-} def
-/To
-{
- pop _ctm currentmatrix pop
-} def
-/TO
-{
- iTe _ctm setmatrix newpath
-} def
-/Tp
-{
- pop _tm astore pop _ctm setmatrix
- _tDict begin
- /W
- {
- } def
- /h
- {
- } def
-} def
-/TP
-{
- end
- iTm 0 0 moveto
-} def
-/Tr
-{
- _render 3 le
- {
- currentpoint newpath moveto
- } if
- dup 8 eq
- {
- pop 0
- }
- {
- dup 9 eq
- {
- pop 1
- } if
- } ifelse
- dup /_render exch ddef
- _renderStart exch get load exec
-} def
-/iTm
-{
- _ctm setmatrix _tm concat
- _shift aload pop _lineorientation 1 eq { exch } if translate
- _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
-} def
-/Tm
-{
- _tm astore pop iTm 0 0 moveto
-} def
-/Td
-{
- _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
-} def
-/iTe
-{
- _render -1 eq
- {
- }
- {
- _renderEnd _render get dup null ne
- {
- load exec
- }
- {
- pop
- } ifelse
- } ifelse
- /_render -1 ddef
-} def
-/Ta
-{
- pop
-} def
-/Tf
-{
- 1 index type /nametype eq
- {
- dup 0.75 mul 1 index 0.25 mul neg
- } if
- /_fontDescent exch ddef
- /_fontAscent exch ddef
- /_fontSize exch ddef
- /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
- /_fontHeight _fontSize ddef
- findfont _fontSize scalefont setfont
-} def
-/Tl
-{
- pop neg 0 exch
- _leading astore pop
-} def
-/Tt
-{
- pop
-} def
-/TW
-{
- 3 npop
-} def
-/Tw
-{
- /_cx exch ddef
-} def
-/TC
-{
- 3 npop
-} def
-/Tc
-{
- /_ax exch ddef
-} def
-/Ts
-{
- 0 exch
- _shift astore pop
- currentpoint
- iTm
- moveto
-} def
-/Ti
-{
- 3 npop
-} def
-/Tz
-{
- count 1 eq { 100 } if
- 100 div exch 100 div exch
- _scale astore pop
- iTm
-} def
-/TA
-{
- pop
-} def
-/Tq
-{
- pop
-} def
-/Tg
-{
- pop
-} def
-/TG
-{
- pop
-} def
-/Tv
-{
- /_lineorientation exch ddef
-} def
-/TV
-{
- /_charorientation exch ddef
-} def
-/Ty
-{
- dup /_yokoorientation exch ddef 1 sub neg Tv
-} def
-/TY
-{
- pop
-} def
-/T~
-{
- Tx
-} def
-/Th
-{
- pop pop pop pop pop
-} def
-/TX
-{
- pop
-} def
-/Tk
-{
- _fontSize mul 1000 div
- _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
- rmoveto
- pop
-} def
-/TK
-{
- 2 npop
-} def
-/T*
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- Td
-} def
-/T*-
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- exch neg exch neg
- Td
-} def
-/T-
-{
- _ax neg 0 rmoveto
- _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
-} def
-/T+
-{
-} def
-/TR
-{
- _ctm currentmatrix pop
- _tm astore pop
- iTm 0 0 moveto
-} def
-/TS
-{
- currentfont 3 1 roll
- /_Symbol_ findfont _fontSize scalefont setfont
-
- 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- setfont
-} def
-/Xb
-{
- pop pop
-} def
-/Tb /Xb load def
-/Xe
-{
- pop pop pop pop
-} def
-/Te /Xe load def
-/XB
-{
-} def
-/TB /XB load def
-currentdict readonly pop
-end
-setpacking
-%
-/X^
-{
- currentfont 5 1 roll
- dup havefont
- {
- findfont _fontSize scalefont setfont
- }
- {
- pop
- exch
- } ifelse
- 2 index 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- pop pop
- setfont
-} def
-/T^ /X^ load def
-%%EndResource
-%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
-userdict /Adobe_ColorImage_AI6 known not
-{
- userdict /Adobe_ColorImage_AI6 53 dict put
-} if
-userdict /Adobe_ColorImage_AI6 get begin
-/initialize {
- Adobe_ColorImage_AI6 begin
- Adobe_ColorImage_AI6 {
- dup type /arraytype eq {
- dup xcheck {
- bind
- } if
- } if
- pop pop
- } forall
-} def
-/terminate { end } def
-currentdict /Adobe_ColorImage_AI6_Vars known not {
- /Adobe_ColorImage_AI6_Vars 41 dict def
-} if
-Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /_newproc null def
- /_proc1 null def
- /_proc2 null def
- /sourcearray 4 array def
- /_ptispace null def
- /_ptiname null def
- /_pti0 0 def
- /_pti1 0 def
- /_ptiproc null def
- /_ptiscale 0 def
- /_pticomps 0 def
- /_ptibuf 0 string def
- /_gtigray 0 def
- /_cticmyk null def
- /_rtirgb null def
- /XIEnable true def
- /XIType 0 def
- /XIEncoding 0 def
- /XICompression 0 def
- /XIChannelCount 0 def
- /XIBitsPerPixel 0 def
- /XIImageHeight 0 def
- /XIImageWidth 0 def
- /XIImageMatrix null def
- /XIRowBytes 0 def
- /XIFile null def
- /XIBuffer1 null def
- /XIBuffer2 null def
- /XIBuffer3 null def
- /XIDataProc null def
- /XIColorSpace /DeviceGray def
- /XIColorValues 0 def
- /XIPlateList false def
-end
-/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
-/ci6image systemdict /image get def
-/ci6curtransfer systemdict /currenttransfer get def
-/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
-/ci6foureq {
- 4 index ne {
- pop pop pop false
- }{
- 4 index ne {
- pop pop false
- }{
- 4 index ne {
- pop false
- }{
- 4 index eq
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6testplate {
- Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /setcmykcolor where {
- pop
- gsave
- 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
- grestore
- 1 0 0 0 ci6foureq {
- /plateindex 0 def
- }{
- 0 1 0 0 ci6foureq {
- /plateindex 1 def
- }{
- 0 0 1 0 ci6foureq {
- /plateindex 2 def
- }{
- 0 0 0 1 ci6foureq {
- /plateindex 3 def
- }{
- 0 0 0 0 ci6foureq {
- /plateindex 5 def
- } if
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- pop pop pop pop
- } if
- plateindex
- end
-} def
-/ci6concatprocs {
- /packedarray where {
- pop dup type /packedarraytype eq 2 index type
- /packedarraytype eq or
- }{
- false
- } ifelse
- {
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- _proc1 aload pop
- _proc2 aload pop
- _proc1 length
- _proc2 length add
- packedarray cvx
- }{
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- /_newproc _proc1 length _proc2 length add array def
- _newproc 0 _proc1 putinterval
- _newproc _proc1 length _proc2 putinterval
- _newproc cvx
- } ifelse
-} def
-/ci6istint {
- type /arraytype eq
-} def
-/ci6isspot {
- dup type /arraytype eq {
- dup length 1 sub get /Separation eq
- }{
- pop false
- } ifelse
-} def
-/ci6spotname {
- dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
-} def
-/ci6altspace {
- aload pop pop pop ci6colormake
-} def
-/ci6numcomps {
- dup /DeviceGray eq {
- pop 1
- }{
- dup /DeviceRGB eq {
- pop 3
- }{
- /DeviceCMYK eq {
- 4
- }{
- 1
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6marksplate {
- dup /DeviceGray eq {
- pop plateindex 3 eq
- }{
- dup /DeviceRGB eq {
- pop plateindex 5 ne
- }{
- dup /DeviceCMYK eq {
- pop plateindex 5 ne
- }{
- dup ci6isspot {
- /findcmykcustomcolor where {
- pop
- dup length 2 sub get
- 0.1 0.1 0.1 0.1 5 -1 roll
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop plateindex 5 ne
- } ifelse
- }{
- pop plateindex 5 ne
- } ifelse
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colormake {
- dup ci6numcomps
- exch 1 index 2 add 1 roll
- dup 1 eq {pop}{array astore} ifelse
- exch
-} def
-/ci6colorexpand {
- dup ci6spotname exch
- dup ci6istint {
- ci6altspace
- exch 4 1 roll
- }{
- 1 3 1 roll
- } ifelse
-} def
-/ci6colortint {
- dup /DeviceGray eq {
- 3 1 roll 1 exch sub mul 1 exch sub exch
- }{
- dup /DeviceRGB eq {
- 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
- }{
- dup /DeviceCMYK eq {
- 3 1 roll {1 index mul exch} forall pop 4 array astore exch
- }{
- 3 1 roll mul exch
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colortocmyk {
- dup /DeviceGray eq {
- pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
- }{
- dup /DeviceRGB eq {
- pop aload pop _rgbtocmyk 4 array astore
- }{
- dup /DeviceCMYK eq {
- pop
- }{
- ci6altspace ci6colortint ci6colortocmyk
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6makeimagedict {
- 7 dict begin
- /ImageType 1 def
- /Decode exch def
- /DataSource exch def
- /ImageMatrix exch def
- /BitsPerComponent exch def
- /Height exch def
- /Width exch def
- currentdict end
-} def
-/ci6stringinvert {
- 0 1 2 index length 1 sub {
- dup 2 index exch get 255 exch sub 2 index 3 1 roll put
- } for
-} def
-/ci6stringknockout {
- 0 1 2 index length 1 sub {
- 255 2 index 3 1 roll put
- } for
-} def
-/ci6stringapply {
- 0 1 4 index length 1 sub {
- dup
- 4 index exch get
- 3 index 3 1 roll
- 3 index exec
- } for
- pop exch pop
-} def
-/ci6walkrgbstring {
- 0 3 index
- dup length 1 sub 0 3 3 -1 roll {
- 3 getinterval {} forall
- 5 index exec
- 3 index
- } for
-
- 5 {pop} repeat
-} def
-/ci6walkcmykstring
-{
- 0 3 index
- dup length 1 sub 0 4 3 -1 roll {
- 4 getinterval {} forall
-
- 6 index exec
-
- 3 index
-
- } for
-
- 5 { pop } repeat
-
-} def
-/ci6putrgbtograystr
-{
- .11 mul exch
-
- .59 mul add exch
-
- .3 mul add
-
- cvi 3 copy put
-
- pop 1 add
-} def
-/ci6putcmyktograystr
-{
- exch .11 mul add
-
- exch .59 mul add
-
- exch .3 mul add
-
- dup 255 gt { pop 255 } if
-
- 255 exch sub cvi 3 copy put
-
- pop 1 add
-} def
-/ci6rgbtograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putrgbtograystr load exch
- ci6walkrgbstring
- end
-} def
-/ci6cmyktograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putcmyktograystr load exch
- ci6walkcmykstring
- end
-} def
-/ci6separatecmykproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
-
- XIBuffer3
-
- 0 2 index
-
- plateindex 4 2 index length 1 sub {
- get 255 exch sub
-
- 3 copy put pop 1 add
-
- 2 index
- } for
- pop pop exch pop
- end
-} def
-
-/ci6compositeimage {
- dup 1 eq {
- pop pop image
- }{
- /ci6colorimage load null ne {
- ci6colorimage
- }{
- 3 1 roll pop
- sourcearray 0 3 -1 roll put
- 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
- image
- } ifelse
- } ifelse
-} def
-/ci6knockoutimage {
- gsave
- 0 ci6curtransfer exec 1 ci6curtransfer exec
- eq {
- 0 ci6curtransfer exec 0.5 lt
- }{
- 0 ci6curtransfer exec 1 ci6curtransfer exec gt
- } ifelse
- {{pop 0}}{{pop 1}} ifelse
- systemdict /settransfer get exec
- ci6compositeimage
- grestore
-} def
-/ci6drawimage {
- ci6testplate -1 eq {
- pop ci6compositeimage
- }{
- dup type /arraytype eq {
- dup length plateindex gt {plateindex get}{pop false} ifelse
- }{
- {
- true
- }{
- dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
- } ifelse
- } ifelse
- {
- dup 1 eq {
- pop pop ci6image
- }{
- dup 3 eq {
- ci6compositeimage
- }{
- pop pop
- sourcearray 0 3 -1 roll put
- /ci6separatecmykproc load
- ci6image
- } ifelse
- } ifelse
- }{
- ci6curoverprint {
- 7 {pop} repeat
- }{
- ci6knockoutimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6proctintimage {
- /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
- /_pticomps _ptispace ci6numcomps store
- /_ptiscale _pti1 _pti0 sub store
- level2? {
- _ptiname length 0 gt version cvr 2012 ge and {
- [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
- [_pti0 _pti1] ci6makeimagedict ci6image
- }{
- [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
- [0 255] ci6makeimagedict ci6image
- } ifelse
- }{
- _pticomps 1 eq {
- {
- dup
- {
- 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
- } ci6stringapply
- } ci6concatprocs ci6image
- }{
- {
- dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
- _ptibuf {
- exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
- _pticomps 2 add -2 roll
- _pticomps 1 sub -1 0 {
- 1 index add 2 index exch
- 5 -1 roll
- 255 mul cvi put
- } for
- pop pop
- } ci6stringapply
- } ci6concatprocs false _pticomps
- /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
- } ifelse
- } ifelse
-} def
-/ci6graytintimage {
- /_gtigray 5 -1 roll store
- {1 _gtigray sub mul 1 exch sub} 4 1 roll
- /DeviceGray ci6proctintimage
-} def
-/ci6cmyktintimage {
- /_cticmyk 5 -1 roll store
- {_cticmyk {1 index mul exch} forall pop} 4 1 roll
- /DeviceCMYK ci6proctintimage
-} def
-/ci6rgbtintimage {
- /_rtirgb 5 -1 roll store
- {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
- /DeviceRGB ci6proctintimage
-} def
-/ci6tintimage {
- ci6testplate -1 eq {
- ci6colorexpand
- 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
- dup /DeviceGray eq {
- pop ci6graytintimage
- }{
- dup /DeviceRGB eq {
- pop ci6rgbtintimage
- }{
- pop ci6cmyktintimage
- } ifelse
- } ifelse
- }{
- dup ci6marksplate {
- plateindex 5 lt {
- ci6colortocmyk plateindex get
- dup 0 eq ci6curoverprint and {
- 7 {pop} repeat
- }{
- 1 exch sub
- exch {1 0}{0 1} ifelse () ci6graytintimage
- } ifelse
- }{
- pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
- } ifelse
- }{
- ci6curoverprint {
- 8 {pop} repeat
- }{
- pop pop pop
- {pop 1} 0 1 () /DeviceGray ci6proctintimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/XINullImage {
-} def
-/XIImageMask {
- XIImageWidth XIImageHeight false
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- imagemask
-} def
-/XIImageTint {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- XIType 3 eq XIColorValues XIColorSpace ci6tintimage
-} def
-/XIImage {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- false XIChannelCount XIPlateList ci6drawimage
-} def
-/XG {
- pop pop
-} def
-/XF {
- 13 {pop} repeat
-} def
-/Xh {
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- /XIImageMatrix exch def
- 0 0 moveto
- XIImageMatrix concat
- XIImageWidth XIImageHeight scale
-
- /_lp /null ddef
- _fc
- /_lp /imagemask ddef
- end
-} def
-/XH {
- Adobe_ColorImage_AI6_Vars begin
- grestore
- end
-} def
-/XIEnable {
- Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
-} def
-/XC {
- Adobe_ColorImage_AI6_Vars begin
- ci6colormake
- /XIColorSpace exch def
- /XIColorValues exch def
- end
-} def
-/XIPlates {
- Adobe_ColorImage_AI6_Vars begin
- /XIPlateList exch def
- end
-} def
-/XI
-{
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- cvi dup
- 256 idiv /XICompression exch store
- 256 mod /XIEncoding exch store
- pop pop
- /XIChannelCount exch def
- /XIBitsPerPixel exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- pop pop pop pop
- /XIImageMatrix exch def
- XIBitsPerPixel 1 eq {
- XIImageWidth 8 div ceiling cvi
- }{
- XIImageWidth XIChannelCount mul
- } ifelse
- /XIRowBytes exch def
- XIEnable {
- /XIBuffer3 XIImageWidth string def
- XICompression 0 eq {
- /XIBuffer1 XIRowBytes string def
- XIEncoding 0 eq {
- {currentfile XIBuffer1 readhexstring pop}
- }{
- {currentfile XIBuffer1 readstring pop}
- } ifelse
- }{
- /XIBuffer1 256 string def
- /XIBuffer2 XIRowBytes string def
- {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
- /ASCII85Decode filter /DCTDecode filter
- /XIFile exch def
- {XIFile XIBuffer2 readstring pop}
- } ifelse
- /XIDataProc exch def
-
- XIType 1 ne {
- 0 setgray
- } if
- XIType 1 eq {
- XIImageMask
- }{
- XIType 2 eq XIType 3 eq or {
- XIImageTint
- }{
- XIImage
- } ifelse
- } ifelse
- }{
- XINullImage
- } ifelse
- /XIPlateList false def
- grestore
- end
-} def
-end
-%%EndProcSet
-%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
-%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
-%%Version: 1.3 0
-%%CreationDate: (3/7/1994) ()
-%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
-put
-/_?cmyk false def
-/_eo false def
-/_lp /none def
-/_pf
-{
-} def
-/_ps
-{
-} def
-/_psf
-{
-} def
-/_pss
-{
-} def
-/_pjsf
-{
-} def
-/_pjss
-{
-} def
-/_pola 0 def
-/_doClip 0 def
-/cf currentflat def
-/_lineorientation 0 def
-/_charorientation 0 def
-/_yokoorientation 0 def
-/_tm matrix def
-/_renderStart
-[
-/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
-] def
-/_renderEnd
-[
-null null null null /i1 /i1 /i1 /i1
-] def
-/_render -1 def
-/_shift [0 0] def
-/_ax 0 def
-/_ay 0 def
-/_cx 0 def
-/_cy 0 def
-/_leading
-[
-0 0
-] def
-/_ctm matrix def
-/_mtx matrix def
-/_sp 16#020 def
-/_hyphen (-) def
-/_fontSize 0 def
-/_fontAscent 0 def
-/_fontDescent 0 def
-/_fontHeight 0 def
-/_fontRotateAdjust 0 def
-/Ss 256 string def
-Ss 0 (fonts/) putinterval
-/_cnt 0 def
-/_scale [1 1] def
-/_nativeEncoding 0 def
-/_useNativeEncoding 0 def
-/_tempEncode 0 def
-/_pntr 0 def
-/_tDict 2 dict def
-/_hfname 100 string def
-/_hffound false def
-/Tx
-{
-} def
-/Tj
-{
-} def
-/CRender
-{
-} def
-/_AI3_savepage
-{
-} def
-/_gf null def
-/_cf 4 array def
-/_rgbf 3 array def
-/_if null def
-/_of false def
-/_fc
-{
-} def
-/_gs null def
-/_cs 4 array def
-/_rgbs 3 array def
-/_is null def
-/_os false def
-/_sc
-{
-} def
-/_pd 1 dict def
-/_ed 15 dict def
-/_pm matrix def
-/_fm null def
-/_fd null def
-/_fdd null def
-/_sm null def
-/_sd null def
-/_sdd null def
-/_i null def
-/_lobyte 0 def
-/_hibyte 0 def
-/_cproc null def
-/_cscript 0 def
-/_hvax 0 def
-/_hvay 0 def
-/_hvwb 0 def
-/_hvcx 0 def
-/_hvcy 0 def
-/_bitfont null def
-/_bitlobyte 0 def
-/_bithibyte 0 def
-/_bitkey null def
-/_bitdata null def
-/_bitindex 0 def
-/discardSave null def
-/buffer 256 string def
-/beginString null def
-/endString null def
-/endStringLength null def
-/layerCnt 1 def
-/layerCount 1 def
-/perCent (%) 0 get def
-/perCentSeen? false def
-/newBuff null def
-/newBuffButFirst null def
-/newBuffLast null def
-/clipForward? false def
-end
-userdict /Adobe_Illustrator_AI5 known not {
- userdict /Adobe_Illustrator_AI5 100 dict put
-} if
-userdict /Adobe_Illustrator_AI5 get begin
-/initialize
-{
- Adobe_Illustrator_AI5 dup begin
- Adobe_Illustrator_AI5_vars begin
- /_aicmykps where {pop /_?cmyk _aicmykps def}if
- discardDict
- {
- bind pop pop
- } forall
- dup /nc get begin
- {
- dup xcheck 1 index type /operatortype ne and
- {
- bind
- } if
- pop pop
- } forall
- end
- newpath
-} def
-/terminate
-{
- end
- end
-} def
-/_
-null def
-/ddef
-{
- Adobe_Illustrator_AI5_vars 3 1 roll put
-} def
-/xput
-{
- dup load dup length exch maxlength eq
- {
- dup dup load dup
- length 2 mul dict copy def
- } if
- load begin
- def
- end
-} def
-/npop
-{
- {
- pop
- } repeat
-} def
-/hswj
-{
- dup stringwidth 3 2 roll
- {
- _hvwb eq { exch _hvcx add exch _hvcy add } if
- exch _hvax add exch _hvay add
- } cforall
-} def
-/vswj
-{
- 0 0 3 -1 roll
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- dup cstring stringwidth 5 2 roll
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- 4 -1 roll sub exch
- 3 -1 roll sub exch
- }
- {
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- _fontHeight sub
- } ifelse
- } cforall
-} def
-/swj
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hswj } { vswj } ifelse
-} def
-/sw
-{
- 0 0 0 6 3 roll swj
-} def
-/vjss
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- gsave
- 2 index false charpath
- 6 index setmatrix stroke
- grestore
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjss
-{
- 4 1 roll
- {
- dup cstring
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jss
-{
- _lineorientation 0 eq { hjss } { vjss } ifelse
-} def
-/ss
-{
- 0 0 0 7 3 roll jss
-} def
-/vjsp
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- false charpath
- currentpoint
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- 2 index false charpath
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjsp
-{
- 4 1 roll
- {
- dup cstring
- false charpath
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jsp
-{
- matrix currentmatrix
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/sp
-{
- matrix currentmatrix
- 0 0 0 7 3 roll
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/pl
-{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
-} def
-/setstrokeadjust where
-{
- pop true setstrokeadjust
- /c
- {
- curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll curveto
- } def
- /V
- /v load def
- /y
- {
- 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- lineto
- } def
- /L
- /l load def
- /m
- {
- moveto
- } def
-}
-{
- /c
- {
- pl curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll pl curveto
- } def
- /V
- /v load def
- /y
- {
- pl 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- pl lineto
- } def
- /L
- /l load def
- /m
- {
- pl moveto
- } def
-} ifelse
-/d
-{
- setdash
-} def
-/cf
-{
-} def
-/i
-{
- dup 0 eq
- {
- pop cf
- } if
- setflat
-} def
-/j
-{
- setlinejoin
-} def
-/J
-{
- setlinecap
-} def
-/M
-{
- setmiterlimit
-} def
-/w
-{
- setlinewidth
-} def
-/XR
-{
- 0 ne
- /_eo exch ddef
-} def
-/H
-{
-} def
-/h
-{
- closepath
-} def
-/N
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- _eo {eoclip} {clip} ifelse /_doClip 0 ddef
- } if
- newpath
- }
- {
- /CRender
- {
- N
- } ddef
- } ifelse
-} def
-/n
-{
- N
-} def
-/F
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
- /_doClip 0 ddef
- }
- {
- _pf
- } ifelse
- }
- {
- /CRender
- {
- F
- } ddef
- } ifelse
-} def
-/f
-{
- closepath
- F
-} def
-/S
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- _ps
- } ifelse
- }
- {
- /CRender
- {
- S
- } ddef
- } ifelse
-} def
-/s
-{
- closepath
- S
-} def
-/B
-{
- _pola 0 eq
- {
- _doClip 1 eq
- gsave F grestore
- {
- gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- S
- } ifelse
- }
- {
- /CRender
- {
- B
- } ddef
- } ifelse
-} def
-/b
-{
- closepath
- B
-} def
-/W
-{
- /_doClip 1 ddef
-} def
-/*
-{
- count 0 ne
- {
- dup type /stringtype eq
- {
- pop
- } if
- } if
- newpath
-} def
-/u
-{
-} def
-/U
-{
-} def
-/q
-{
- _pola 0 eq
- {
- gsave
- } if
-} def
-/Q
-{
- _pola 0 eq
- {
- grestore
- } if
-} def
-/*u
-{
- _pola 1 add /_pola exch ddef
-} def
-/*U
-{
- _pola 1 sub /_pola exch ddef
- _pola 0 eq
- {
- CRender
- } if
-} def
-/D
-{
- pop
-} def
-/*w
-{
-} def
-/*W
-{
-} def
-/`
-{
- /_i save ddef
- clipForward?
- {
- nulldevice
- } if
- 6 1 roll 4 npop
- concat pop
- userdict begin
- /showpage
- {
- } def
- 0 setgray
- 0 setlinecap
- 1 setlinewidth
- 0 setlinejoin
- 10 setmiterlimit
- [] 0 setdash
- /setstrokeadjust where {pop false setstrokeadjust} if
- newpath
- 0 setgray
- false setoverprint
-} def
-/~
-{
- end
- _i restore
-} def
-/_rgbtocmyk
-{
- 3
- {
- 1 exch sub 3 1 roll
- } repeat
- 3 copy 1 4 1 roll
- 3
- {
- 3 index 2 copy gt
- {
- exch
- } if
- pop 4 1 roll
- } repeat
- pop pop pop
- 4 1 roll
- 3
- {
- 3 index sub
- 3 1 roll
- } repeat
- 4 -1 roll
-} def
-/setrgbfill
-{
- _rgbf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _rgbf aload pop setrgbcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/setrgbstroke
-{
- _rgbs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _rgbs aload pop setrgbcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/O
-{
- 0 ne
- /_of exch ddef
- /_lp /none ddef
-} def
-/R
-{
- 0 ne
- /_os exch ddef
- /_lp /none ddef
-} def
-/g
-{
- /_gf exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/G
-{
- /_gs exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/k
-{
- _cf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _cf aload pop setcmykcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/K
-{
- _cs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _cs aload pop setcmykcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xa
-{
- _?cmyk {
- 3 npop k
- }{
- setrgbfill 4 npop
- } ifelse
-} def
-/XA
-{
- _?cmyk {
- 3 npop K
- }{
- setrgbstroke 4 npop
- } ifelse
-} def
-/Xs
-{
- /_gf exch ddef
- 5 npop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setAIseparationgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XS
-{
- /_gs exch ddef
- 5 npop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setAIseparationgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xx
-{
- exch
- /_gf exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XX
-{
- exch
- /_gs exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/x
-{
- /_gf exch ddef
- findcmykcustomcolor
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/X
-{
- /_gs exch ddef
- findcmykcustomcolor
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/XK
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- K
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- XA
- } ifelse
-} def
-/Xk
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- k
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- Xa
- } ifelse
-} def
-/A
-{
- pop
-} def
-/annotatepage
-{
-userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
-} def
-/XT {
- pop pop
-} def
-/Xt {
- pop
-} def
-/discard
-{
- save /discardSave exch store
- discardDict begin
- /endString exch store
- gt38?
- {
- 2 add
- } if
- load
- stopped
- pop
- end
- discardSave restore
-} bind def
-userdict /discardDict 7 dict dup begin
-put
-/pre38Initialize
-{
- /endStringLength endString length store
- /newBuff buffer 0 endStringLength getinterval store
- /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
- /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
-} def
-/shiftBuffer
-{
- newBuff 0 newBuffButFirst putinterval
- newBuffLast 0
- currentfile read not
- {
- stop
- } if
- put
-} def
-0
-{
- pre38Initialize
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff endString eq
- {
- cleartomark stop
- } if
- shiftBuffer
- } loop
- }
- {
- stop
- } ifelse
-} def
-1
-{
- pre38Initialize
- /beginString exch store
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff beginString eq
- {
- /layerCount dup load 1 add store
- }
- {
- newBuff endString eq
- {
- /layerCount dup load 1 sub store
- layerCount 0 eq
- {
- cleartomark stop
- } if
- } if
- } ifelse
- shiftBuffer
- } loop
- } if
-} def
-2
-{
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- endString eq {
- cleartomark stop
- } if
- }ifelse
- } loop
-} def
-3
-{
- /beginString exch store
- /layerCnt 1 store
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- dup beginString eq
- {
- pop /layerCnt dup load 1 add store
- }
- {
- endString eq
- {
- layerCnt 1 eq
- {
- cleartomark stop
- }
- {
- /layerCnt dup load 1 sub store
- } ifelse
- } if
- } ifelse
- }ifelse
- } loop
-} def
-end
-userdict /clipRenderOff 15 dict dup begin
-put
-{
- /n /N /s /S /f /F /b /B
-}
-{
- {
- _doClip 1 eq
- {
- /_doClip 0 ddef _eo {eoclip} {clip} ifelse
- } if
- newpath
- } def
-} forall
-/Tr /pop load def
-/Bb {} def
-/BB /pop load def
-/Bg {12 npop} def
-/Bm {6 npop} def
-/Bc /Bm load def
-/Bh {4 npop} def
-end
-/Lb
-{
- 6 npop
- 7 2 roll
- 5 npop
- 0 eq
- {
- 0 eq
- {
- (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
- }
- {
-
- /clipForward? true def
-
- /Tx /pop load def
- /Tj /pop load def
-
- currentdict end clipRenderOff begin begin
- } ifelse
- }
- {
- 0 eq
- {
- save /discardSave exch store
- } if
- } ifelse
-} bind def
-/LB
-{
- discardSave dup null ne
- {
- restore
- }
- {
- pop
- clipForward?
- {
- currentdict
- end
- end
- begin
-
- /clipForward? false ddef
- } if
- } ifelse
-} bind def
-/Pb
-{
- pop pop
- 0 (%AI5_EndPalette) discard
-} bind def
-/Np
-{
- 0 (%AI5_End_NonPrinting--) discard
-} bind def
-/Ln /pop load def
-/Ap
-/pop load def
-/Ar
-{
- 72 exch div
- 0 dtransform dup mul exch dup mul add sqrt
- dup 1 lt
- {
- pop 1
- } if
- setflat
-} def
-/Mb
-{
- q
-} def
-/Md
-{
-} def
-/MB
-{
- Q
-} def
-/nc 4 dict def
-nc begin
-/setgray
-{
- pop
-} bind def
-/setcmykcolor
-{
- 4 npop
-} bind def
-/setrgbcolor
-{
- 3 npop
-} bind def
-/setcustomcolor
-{
- 2 npop
-} bind def
-currentdict readonly pop
-end
-/XP
-{
- 4 npop
-} bind def
-/XD
-{
- pop
-} bind def
-end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_cshow 2.0 8
-%%Title: (Writing System Operators)
-%%Version: 2.0 8
-%%CreationDate: (1/23/89) ()
-%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_cshow 14 dict dup begin put
-/initialize
-{
- Adobe_cshow begin
- Adobe_cshow
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- Adobe_cshow begin
-} def
-/terminate
-{
-currentdict Adobe_cshow eq
- {
- end
- } if
-} def
-/cforall
-{
- /_lobyte 0 ddef
- /_hibyte 0 ddef
- /_cproc exch ddef
- /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
- {
- /_lobyte exch ddef
- _hibyte 0 eq
- _cscript 1 eq
- _lobyte 129 ge _lobyte 159 le and
- _lobyte 224 ge _lobyte 252 le and or and
- _cscript 2 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 3 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 25 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript -1 eq
- or or or or and
- {
- /_hibyte _lobyte ddef
- }
- {
- _hibyte 256 mul _lobyte add
- _cproc
- /_hibyte 0 ddef
- } ifelse
- } forall
-} def
-/cstring
-{
- dup 256 lt
- {
- (s) dup 0 4 3 roll put
- }
- {
- dup 256 idiv exch 256 mod
- (hl) dup dup 0 6 5 roll put 1 4 3 roll put
- } ifelse
-} def
-/clength
-{
- 0 exch
- { 256 lt { 1 } { 2 } ifelse add } cforall
-} def
-/hawidthshow
-{
- {
- dup cstring
- show
- _hvax _hvay rmoveto
- _hvwb eq { _hvcx _hvcy rmoveto } if
- } cforall
-} def
-/vawidthshow
-{
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- -90 rotate
- 0 _fontRotateAdjust rmoveto
- cstring
- _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
- 0 _fontRotateAdjust neg rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- exch _hvay sub exch _hvax sub
- 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- 3 2 roll
- cstring
- dup stringwidth pop 2 div neg _fontAscent neg rmoveto
- show
- moveto
- } ifelse
- } cforall
-} def
-/hvawidthshow
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
-} def
-/hvwidthshow
-{
- 0 0 3 -1 roll hvawidthshow
-} def
-/hvashow
-{
- 0 0 0 6 -3 roll hvawidthshow
-} def
-/hvshow
-{
- 0 0 0 0 0 6 -1 roll hvawidthshow
-} def
-currentdict readonly pop end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_shading_AI8 1.0 0
-%%Title: (Adobe Illustrator 8 Shading Procset)
-%%Version: 1.0 0
-%%CreationDate: (12/17/97) ()
-%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
-userdict /defaultpacking currentpacking put true setpacking
-userdict /Adobe_shading_AI8 10 dict dup begin put
-/initialize {
- Adobe_shading_AI8 begin
- Adobe_shading_AI8 bdprocs
- Mesh /initialize get exec
-} def
-/terminate {
- currentdict Adobe_shading_AI8 eq {
- end
- } if
-} def
-/bdprocs {
- {
- dup xcheck 1 index type /arraytype eq and {
- bind
- } if
- pop pop
- } forall
-} def
-/X! {pop} def
-/X# {pop pop} def
-/Mesh 40 dict def
-Mesh begin
-/initialize {
- Mesh bdprocs
- Mesh begin
- /emulate? /AI8MeshEmulation where {
- pop AI8MeshEmulation
- }{
- systemdict /shfill known not
- } ifelse def
- end
-} def
-/bd {
- shadingdict begin
-} def
-/paint {
- emulate? {
- end
- }{
- /_lp /none ddef _fc /_lp /none ddef
-
- /AIColorSpace AIColorSpace tocolorspace store
- /ColorSpace AIColorSpace topsspace store
-
- version_ge_3010.106 not systemdict /setsmoothness known and {
- 0.0001 setsmoothness
- } if
-
- composite? {
- /DataSource getdatasrc def
- Matrix concat
- currentdict end
- shfill
- }{
- AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
- end
- }{
- /ColorSpace /DeviceGray store
- /Decode [0 1 0 1 0 1] store
- /DataSource getplatesrc def
- Matrix concat
- currentdict end
- shfill
- } ifelse
- } ifelse
- } ifelse
-} def
-/shadingdict 12 dict def
-shadingdict begin
- /ShadingType 6 def
- /BitsPerCoordinate 16 def
- /BitsPerComponent 8 def
- /BitsPerFlag 8 def
-end
-/datafile null def
-/databuf 256 string def
-/dataptr 0 def
-/srcspace null def
-/srcchannels 0 def
-/dstchannels 0 def
-/dstplate 0 def
-/srctodstcolor null def
-/getplatesrc {
- /srcspace AIColorSpace store
- /srcchannels AIColorSpace getnchannels store
- /dstchannels 1 store
- /dstplate getplateindex store
- /srctodstcolor srcspace makesmarks {
- dstplate 4 eq {
- {1 exch sub}
- }{
- {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
- } ifelse
- }{
- {srcchannels {pop} repeat 1}
- } ifelse store
- /datafile getdatasrc store
- /rdpatch168 load DataLength () /SubFileDecode filter
-} def
-/getdatasrc {
- /rdcmntline load /ASCII85Decode filter
-} def
-/rdpatch168 {
- /dataptr 0 store
- 49 rdcount
- 4 {
- dup {pop srcchannels getint8} if
- dup {pop srctodstcolor dstchannels putint8 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdpatch3216 {
- /dataptr 0 store
- 97 rdcount
- 4 {
- dup {pop srcchannels getint16} if
- dup {pop srctodstcolor dstchannels putint16 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdcount {
- dup 0 gt {
- datafile databuf dataptr 4 -1 roll getinterval readstring
- exch length dataptr add /dataptr exch store
- }{
- true
- } ifelse
-} def
-/getint8 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 255 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint8 {
- dup dataptr add /dataptr exch store
- dataptr exch
- {
- 1 sub exch
- 255 mul cvi
- databuf 2 index
- 3 -1 roll put
- } repeat
- pop
-} def
-/getint16 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 256 mul datafile read} if
- dup {pop add 65535 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint16 {
- dup 2 mul dataptr add /dataptr exch store
- dataptr exch
- {
- 2 sub exch
- 65535 mul cvi dup
- 256 idiv databuf 3 index 3 -1 roll put
- 256 mod databuf 2 index 1 add 3 -1 roll put
- } repeat
- pop
-} def
-/srcbuf 256 string def
-/rdcmntline {
- currentfile srcbuf readline pop
- (%) anchorsearch {pop} if
-} def
-/getplateindex {
- 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
-} def
-/aicsarray 4 array def
-/aicsaltvals 4 array def
-/aicsaltcolr aicsaltvals def
-/tocolorspace {
- dup type /arraytype eq {
- mark exch aload pop
- aicsarray 0 3 -1 roll put
- aicsarray 1 3 -1 roll put
- dup aicsarray 2 3 -1 roll put
- gettintxform aicsarray 3 3 -1 roll put
- counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
- aicsaltcolr astore pop pop
- aicsarray
- } if
-} def
-/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
-/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
-/gettintxform {
- /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
-} def
-/getnchannels {
- dup type /arraytype eq {0 get} if
- colorspacedict exch get begin Channels end
-} def
-/makesmarks {
- composite? {
- pop true
- }{
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin MarksPlate end
- } ifelse
-} def
-/markingplate {
- composite? {
- pop true
- }{
- dup type /arraytype eq {
- dup length getplateindex gt {getplateindex get}{pop false} ifelse
- } if
- } ifelse
-} def
-/tocmyk {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToCMYK end
-} def
-/topsspace {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToPSSpace end
-} def
-/colorspacedict 5 dict dup begin
- /DeviceGray 4 dict dup begin
- /Channels 1 def
- /MarksPlate {pop black?} def
- /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
- /ToPSSpace {} def
- end def
- /DeviceRGB 4 dict dup begin
- /Channels 3 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop _rgbtocmyk} def
- /ToPSSpace {} def
- end def
- /DeviceCMYK 4 dict dup begin
- /Channels 4 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop} def
- /ToPSSpace {} def
- end def
- /Separation 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- /findcmykcustomcolor where {
- pop dup 1 exch ToCMYK 5 -1 roll 1 get
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {} def
- end def
- /Process 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- isCMYKSep? {
- 1 exch ToCMYK 4 array astore getplateindex get 0 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {
- 4 array copy dup 0 /Separation put
- } def
- end def
-end def
-/isoverprint {
- /currentoverprint where {pop currentoverprint}{_of} ifelse
-} def
-/version_ge_3010.106 {
- version {cvr} stopped {
- pop
- false
- }{
- 3010.106 ge
- } ifelse
-} def
-end
-end
-defaultpacking setpacking
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeFont: Formata-Bold
-%%IncludeFont: Helvetica
-userdict /_useSmoothShade false put
-userdict /_aicmykps false put
-userdict /_forceToCMYK false put
-Adobe_level2_AI5 /initialize get exec
-Adobe_cshow /initialize get exec
-Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
-Adobe_ColorImage_AI6 /initialize get exec
-Adobe_shading_AI8 /initialize get exec
-Adobe_Illustrator_AI5 /initialize get exec
-[
-39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
-/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
-/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
-/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
-/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
-/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
-/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
-/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
-/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
-/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
-/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
-/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
-/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
-/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
-/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
-/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
-/hungarumlaut/ogonek/caron
-TE
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Formata-Bold Formata-Bold
-[/_Formata-Bold/Formata-Bold 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Helvetica Helvetica
-[/_Helvetica/Helvetica 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
-181/mu/partialdiff/summation/product/pi/integral 189/Omega
-195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
-/_Symbol_/Symbol 0 0 0 TZ
-%AI5_Begin_NonPrinting
-Np
-%AI3_BeginPattern: (bi-direction diagonals)
-(bi-direction diagonals) 24.2119 0.2119 96.2124 72.2119 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-8.2119 6.2119 m
-14.2119 0.2119 L
-F
-8.2119 0.2119 m
-14.2119 6.2119 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-24.2119 72.2119 m
-96.2124 0.2119 L
-S
-21.2109 69.2129 m
-90.2124 0.2119 L
-S
-21.207 63.2168 m
-84.2124 0.2119 L
-S
-21.2031 57.2207 m
-78.2124 0.2119 L
-S
-21.1987 51.2246 m
-72.2124 0.2119 L
-S
-21.1958 45.2275 m
-66.2119 0.2119 L
-S
-21.1919 39.2314 m
-60.2119 0.2119 L
-S
-21.188 33.2363 m
-54.2119 0.2119 L
-S
-21.1851 27.2402 m
-48.2119 0.2119 L
-S
-21.1812 21.2432 m
-42.2119 0.2119 L
-S
-21.1768 15.2471 m
-36.2119 0.2119 L
-S
-21.1729 9.251 m
-30.2119 0.2119 L
-S
-21.1699 3.2549 m
-24.2119 0.2119 L
-S
-30.2119 72.2119 m
-99.2134 3.21 L
-S
-36.2119 72.2119 m
-99.2173 9.2061 L
-S
-42.2119 72.2119 m
-99.2212 15.2021 L
-S
-48.2119 72.2119 m
-99.2251 21.1992 L
-S
-54.2119 72.2119 m
-99.228 27.1953 L
-S
-60.2119 72.2119 m
-99.2319 33.1904 L
-S
-66.2119 72.2119 m
-99.2358 39.1865 L
-S
-72.2124 72.2119 m
-99.2397 45.1836 L
-S
-78.2124 72.2119 m
-99.2427 51.1797 L
-S
-84.2124 72.2119 m
-99.2466 57.1758 L
-S
-90.2124 72.2119 m
-99.2505 63.1719 L
-S
-96.2124 72.2119 m
-99.2554 69.1689 L
-S
-0.2119 68.7119 m
-10.2119 58.7119 L
-S
-96.2124 72.2119 m
-24.2119 0.2119 L
-S
-90.2124 72.2119 m
-21.2109 3.21 L
-S
-84.2124 72.2119 m
-21.207 9.2061 L
-S
-78.2124 72.2119 m
-21.2031 15.2021 L
-S
-72.2124 72.2119 m
-21.1987 21.1982 L
-S
-66.2119 72.2119 m
-21.1958 27.1953 L
-S
-60.2119 72.2119 m
-21.1919 33.1904 L
-S
-54.2119 72.2119 m
-21.188 39.1865 L
-S
-48.2119 72.2119 m
-21.1851 45.1826 L
-S
-42.2119 72.2119 m
-21.1812 51.1797 L
-S
-36.2119 72.2119 m
-21.1768 57.1758 L
-S
-30.2119 72.2119 m
-21.1729 63.1719 L
-S
-24.2119 72.2119 m
-21.1699 69.168 L
-S
-99.2134 69.2129 m
-30.2119 0.2119 L
-S
-99.2173 63.2168 m
-36.2119 0.2119 L
-S
-99.2212 57.2207 m
-42.2119 0.2119 L
-S
-99.2251 51.2246 m
-48.2119 0.2119 L
-S
-99.228 45.2275 m
-54.2119 0.2119 L
-S
-99.2319 39.2314 m
-60.2119 0.2119 L
-S
-99.2358 33.2363 m
-66.2119 0.2119 L
-S
-99.2397 27.2393 m
-72.2124 0.2119 L
-S
-99.2427 21.2432 m
-78.2124 0.2119 L
-S
-99.2466 15.2471 m
-84.2124 0.2119 L
-S
-99.2505 9.251 m
-90.2124 0.2119 L
-S
-99.2554 3.2539 m
-96.2124 0.2119 L
-S
-0.2119 58.7119 m
-10.2119 68.7119 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (black dots)
-(black dots) 16 0.6885 88 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6.6885 m
-6 0.6885 L
-F
-0 0.6885 m
-6 6.6885 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-28.9365 3.1885 m
-28.9365 3.1885 l
-S
-17.125 3.375 m
-17.125 3.375 l
-S
-26.5 4.6885 m
-26.5 4.6885 l
-S
-35.6865 5.8135 m
-35.6865 5.8135 l
-S
-19.75 0.9385 m
-19.75 0.9385 l
-S
-23.125 7.3135 m
-23.125 7.3135 l
-S
-40.5615 2.4385 m
-40.5615 2.4385 l
-S
-43 1.125 m
-43 1.125 l
-S
-45.0615 5.4385 m
-45.0615 5.4385 l
-S
-56.875 6.375 m
-56.875 6.375 l
-S
-65.3115 5.0635 m
-65.3115 5.0635 l
-S
-51.0615 6.9385 m
-51.0615 6.9385 l
-S
-40.5615 6.9385 m
-40.5615 6.9385 l
-S
-31.1865 6.9385 m
-31.1865 6.9385 l
-S
-59.875 9.5635 m
-59.875 9.5635 l
-S
-62.6865 1.3135 m
-62.6865 1.3135 l
-S
-34.5615 0.9385 m
-34.5615 0.9385 l
-S
-48.4365 2.25 m
-48.4365 2.25 l
-S
-56.3115 0.75 m
-56.3115 0.75 l
-S
-66.625 24.5635 m
-66.625 24.5635 l
-S
-74.3115 24.9385 m
-74.3115 24.9385 l
-S
-78.8115 24.375 m
-78.8115 24.375 l
-S
-82.9365 2.0635 m
-82.9365 2.0635 l
-S
-68.3115 11.8135 m
-68.3115 11.8135 l
-S
-86.5 17.8135 m
-86.5 17.8135 l
-S
-87.0615 4.6885 m
-87.0615 4.6885 l
-S
-79.9365 19.875 m
-79.9365 19.875 l
-S
-77.875 1.125 m
-77.875 1.125 l
-S
-69.625 20.25 m
-69.625 20.25 l
-S
-67.75 6 m
-67.75 6 l
-S
-73.375 17.625 m
-73.375 17.625 l
-S
-76.9365 16.875 m
-76.9365 16.875 l
-S
-72.4365 3.375 m
-72.4365 3.375 l
-S
-77.3115 9.5635 m
-77.3115 9.5635 l
-S
-73.9365 11.25 m
-73.9365 11.25 l
-S
-83.125 7.875 m
-83.125 7.875 l
-S
-85.1865 12.75 m
-85.1865 12.75 l
-S
-81.0615 13.875 m
-81.0615 13.875 l
-S
-17.6865 16.125 m
-17.6865 16.125 l
-S
-45.25 10.3135 m
-45.25 10.3135 l
-S
-31.5615 21.375 m
-31.5615 21.375 l
-S
-20.875 11.8135 m
-20.875 11.8135 l
-S
-34.75 18.5635 m
-34.75 18.5635 l
-S
-25.75 21.9385 m
-25.75 21.9385 l
-S
-34.5615 24.5635 m
-34.5615 24.5635 l
-S
-37.375 16.3135 m
-37.375 16.3135 l
-S
-36.625 12.75 m
-36.625 12.75 l
-S
-23.125 17.25 m
-23.125 17.25 l
-S
-29.3115 12.375 m
-29.3115 12.375 l
-S
-31 15.75 m
-31 15.75 l
-S
-46.1865 22.875 m
-46.1865 22.875 l
-S
-52 15.375 m
-52 15.375 l
-S
-58.375 13.3135 m
-58.375 13.3135 l
-S
-62.6865 20.0635 m
-62.6865 20.0635 l
-S
-62.875 14.0635 m
-62.875 14.0635 l
-S
-44.6865 20.4385 m
-44.6865 20.4385 l
-S
-46.75 15.1885 m
-46.75 15.1885 l
-S
-42.0615 17.0635 m
-42.0615 17.0635 l
-S
-55.1865 17.4385 m
-55.1865 17.4385 l
-S
-58.9365 23.25 m
-58.9365 23.25 l
-S
-60.0615 17.4385 m
-60.0615 17.4385 l
-S
-42.4365 25.125 m
-42.4365 25.125 l
-S
-65.3115 20.625 m
-65.3115 20.625 l
-S
-51.625 24.5635 m
-51.625 24.5635 l
-S
-52 20.625 m
-52 20.625 l
-S
-18.8115 24 m
-18.8115 24 l
-S
-21.25 24.9385 m
-21.25 24.9385 l
-S
-19.375 70.875 m
-19.375 70.875 l
-S
-26.125 66.5635 m
-26.125 66.5635 l
-S
-20.125 66.375 m
-20.125 66.375 l
-S
-38.5 69 m
-38.5 69 l
-S
-47.125 71.625 m
-47.125 71.625 l
-S
-62.875 68.0635 m
-62.875 68.0635 l
-S
-49.75 67.5 m
-49.75 67.5 l
-S
-38.875 65.625 m
-38.875 65.625 l
-S
-29.3115 70.3135 m
-29.3115 70.3135 l
-S
-31.9365 67.5 m
-31.9365 67.5 l
-S
-57.25 65.4385 m
-57.25 65.4385 l
-S
-23.5 69.1885 m
-23.5 69.1885 l
-S
-45.625 65.25 m
-45.625 65.25 l
-S
-26.6865 63.9385 m
-26.6865 63.9385 l
-S
-50.5 63.75 m
-50.5 63.75 l
-S
-32.6865 72 m
-32.6865 72 l
-S
-52.9365 71.4385 m
-52.9365 71.4385 l
-S
-57.8115 69.375 m
-57.8115 69.375 l
-S
-61 64.3135 m
-61 64.3135 l
-S
-28.9365 48.1885 m
-28.9365 48.1885 l
-S
-17.125 48.375 m
-17.125 48.375 l
-S
-21.4365 42.375 m
-21.4365 42.375 l
-S
-19.375 36 m
-19.375 36 l
-S
-26.125 31.6885 m
-26.125 31.6885 l
-S
-20.125 31.5 m
-20.125 31.5 l
-S
-26.5 49.6885 m
-26.5 49.6885 l
-S
-35.6865 50.8135 m
-35.6865 50.8135 l
-S
-19.75 45.9385 m
-19.75 45.9385 l
-S
-23.125 52.3135 m
-23.125 52.3135 l
-S
-40.5615 47.4385 m
-40.5615 47.4385 l
-S
-43 46.125 m
-43 46.125 l
-S
-23.5 39.1885 m
-23.5 39.1885 l
-S
-38.5 34.125 m
-38.5 34.125 l
-S
-47.125 36.75 m
-47.125 36.75 l
-S
-45.0615 50.4385 m
-45.0615 50.4385 l
-S
-56.875 51.375 m
-56.875 51.375 l
-S
-42.8115 39.375 m
-42.8115 39.375 l
-S
-62.875 33.1885 m
-62.875 33.1885 l
-S
-49.75 32.625 m
-49.75 32.625 l
-S
-38.875 30.75 m
-38.875 30.75 l
-S
-29.3115 35.4385 m
-29.3115 35.4385 l
-S
-31.9365 32.625 m
-31.9365 32.625 l
-S
-54.75 30.1885 m
-54.75 30.1885 l
-S
-64.9365 39.75 m
-64.9365 39.75 l
-S
-46.1865 41.8135 m
-46.1865 41.8135 l
-S
-65.3115 50.0635 m
-65.3115 50.0635 l
-S
-51.0615 51.9385 m
-51.0615 51.9385 l
-S
-23.5 34.3135 m
-23.5 34.3135 l
-S
-40.5615 51.9385 m
-40.5615 51.9385 l
-S
-31.1865 51.9385 m
-31.1865 51.9385 l
-S
-45.625 30.375 m
-45.625 30.375 l
-S
-26.6865 29.0635 m
-26.6865 29.0635 l
-S
-59.875 54.5635 m
-59.875 54.5635 l
-S
-50.5 28.875 m
-50.5 28.875 l
-S
-60.75 47.6885 m
-60.75 47.6885 l
-S
-30.625 42.75 m
-30.625 42.75 l
-S
-26.6865 42.375 m
-26.6865 42.375 l
-S
-36.8115 40.125 m
-36.8115 40.125 l
-S
-37.75 43.5 m
-37.75 43.5 l
-S
-34.5615 45.9385 m
-34.5615 45.9385 l
-S
-32.6865 37.125 m
-32.6865 37.125 l
-S
-61.9365 42.75 m
-61.9365 42.75 l
-S
-48.4365 47.25 m
-48.4365 47.25 l
-S
-54.625 42.375 m
-54.625 42.375 l
-S
-56.3115 45.75 m
-56.3115 45.75 l
-S
-52.9365 36.5635 m
-52.9365 36.5635 l
-S
-57.8115 34.5 m
-57.8115 34.5 l
-S
-58.9365 38.625 m
-58.9365 38.625 l
-S
-61 29.4385 m
-61 29.4385 l
-S
-65.875 29.625 m
-65.875 29.625 l
-S
-70.5615 27.75 m
-70.5615 27.75 l
-S
-71.5 52.875 m
-71.5 52.875 l
-S
-69.8115 34.3135 m
-69.8115 34.3135 l
-S
-76.375 27.375 m
-76.375 27.375 l
-S
-71.3115 41.0635 m
-71.3115 41.0635 l
-S
-77.3115 45.375 m
-77.3115 45.375 l
-S
-82 28.6885 m
-82 28.6885 l
-S
-88.1865 27.5635 m
-88.1865 27.5635 l
-S
-83.6865 43.3135 m
-83.6865 43.3135 l
-S
-88 50.0635 m
-88 50.0635 l
-S
-88.1865 44.0635 m
-88.1865 44.0635 l
-S
-88.1865 33.1885 m
-88.1865 33.1885 l
-S
-70 50.4385 m
-70 50.4385 l
-S
-68.875 59.625 m
-68.875 59.625 l
-S
-66.8115 38.25 m
-66.8115 38.25 l
-S
-74.75 42.1885 m
-74.75 42.1885 l
-S
-67.375 47.0635 m
-67.375 47.0635 l
-S
-72.25 64.5 m
-72.25 64.5 l
-S
-73.5615 66.9385 m
-73.5615 66.9385 l
-S
-80.5 47.4385 m
-80.5 47.4385 l
-S
-85.5615 62.4385 m
-85.5615 62.4385 l
-S
-82.9365 71.0635 m
-82.9365 71.0635 l
-S
-69.25 69 m
-69.25 69 l
-S
-80.3115 66.75 m
-80.3115 66.75 l
-S
-84.25 53.25 m
-84.25 53.25 l
-S
-87.0615 55.875 m
-87.0615 55.875 l
-S
-77.875 70.125 m
-77.875 70.125 l
-S
-85.375 47.4385 m
-85.375 47.4385 l
-S
-67.75 64.5 m
-67.75 64.5 l
-S
-67.75 55.125 m
-67.75 55.125 l
-S
-81.625 31.125 m
-81.625 31.125 l
-S
-79.375 39 m
-79.375 39 l
-S
-75.8115 33 m
-75.8115 33 l
-S
-84.4365 37.3135 m
-84.4365 37.3135 l
-S
-76.9365 54.5635 m
-76.9365 54.5635 l
-S
-77.3115 50.625 m
-77.3115 50.625 l
-S
-79.5615 60.75 m
-79.5615 60.75 l
-S
-76.1865 61.6885 m
-76.1865 61.6885 l
-S
-73.75 58.5 m
-73.75 58.5 l
-S
-82.5615 56.625 m
-82.5615 56.625 l
-S
-72.4365 72.375 m
-72.4365 72.375 l
-S
-61.75 25.875 m
-61.75 25.875 l
-S
-57.25 26.625 m
-57.25 26.625 l
-S
-25.75 60.75 m
-25.75 60.75 l
-S
-34.1865 59.4385 m
-34.1865 59.4385 l
-S
-19.9365 61.3135 m
-19.9365 61.3135 l
-S
-31.5615 55.6885 m
-31.5615 55.6885 l
-S
-17.3115 56.625 m
-17.3115 56.625 l
-S
-25.1865 55.125 m
-25.1865 55.125 l
-S
-40.375 62.25 m
-40.375 62.25 l
-S
-46.1865 54.75 m
-46.1865 54.75 l
-S
-56.875 59.4385 m
-56.875 59.4385 l
-S
-40.25 58.1885 m
-40.25 58.1885 l
-S
-36.25 56.4385 m
-36.25 56.4385 l
-S
-49.375 56.8135 m
-49.375 56.8135 l
-S
-53.125 62.625 m
-53.125 62.625 l
-S
-54.25 56.8135 m
-54.25 56.8135 l
-S
-59.5 60 m
-59.5 60 l
-S
-46.1865 60 m
-46.1865 60 l
-S
-30.8115 28.5 m
-30.8115 28.5 l
-S
-19.75 72.9385 m
-19.75 72.9385 l
-S
-43 73.125 m
-43 73.125 l
-S
-34.5615 72.9385 m
-34.5615 72.9385 l
-S
-56.3115 72.75 m
-56.3115 72.75 l
-S
-77.875 73.125 m
-77.875 73.125 l
-S
-72.4365 0.375 m
-72.4365 0.375 l
-S
-16.1865 27.5635 m
-16.1865 27.5635 l
-S
-16 50.0635 m
-16 50.0635 l
-S
-16.1865 44.0635 m
-16.1865 44.0635 l
-S
-16.1865 33.1885 m
-16.1865 33.1885 l
-S
-6 62.3135 m
-6.208 62.3135 6.375 62.4805 6.375 62.6885 c
-6.375 62.8945 6.208 63.0635 6 63.0635 c
-5.793 63.0635 5.625 62.8945 5.625 62.6885 c
-5.625 62.4805 5.793 62.3135 6 62.3135 c
-s
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (horizontal rules)
-(horizontal rules) 16 0 88 73.9463 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6 m
-6 0 L
-F
-0 0 m
-6 6 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-88 72.9727 m
-16 72.9727 l
-S
-88 71.0273 m
-16 71.0273 L
-S
-88 67.1357 m
-16 67.1357 L
-S
-88 65.1904 m
-16 65.1904 L
-S
-88 63.2441 m
-16 63.2441 L
-S
-88 61.2979 m
-16 61.2979 L
-S
-88 57.4072 m
-16 57.4072 L
-S
-88 55.4609 m
-16 55.4609 L
-S
-88 53.5156 m
-16 53.5156 L
-S
-88 51.5703 m
-16 51.5703 L
-S
-88 49.624 m
-16 49.624 L
-S
-88 47.6787 m
-16 47.6787 L
-S
-88 45.7334 m
-16 45.7334 L
-S
-88 43.7871 m
-16 43.7871 L
-S
-88 39.8965 m
-16 39.8965 L
-S
-88 37.9502 m
-16 37.9502 L
-S
-88 36.0049 m
-16 36.0049 L
-S
-88 34.0586 m
-16 34.0586 L
-S
-88 32.1133 m
-16 32.1133 L
-S
-88 30.168 m
-16 30.168 L
-S
-88 26.2764 m
-16 26.2764 L
-S
-88 22.3848 m
-16 22.3848 L
-S
-88 20.4395 m
-16 20.4395 L
-S
-88 18.4941 m
-16 18.4941 L
-S
-88 16.5479 m
-16 16.5479 L
-S
-88 14.6016 m
-16 14.6016 L
-S
-88 12.6572 m
-16 12.6572 L
-S
-88 8.7646 m
-16 8.7646 L
-S
-88 6.8193 m
-16 6.8193 L
-S
-88 4.874 m
-16 4.874 L
-S
-88 0.9727 m
-16 0.9727 l
-S
-88 2.9277 m
-16 2.9277 L
-S
-88 69.0811 m
-16 69.0811 L
-S
-88 59.3525 m
-16 59.3525 L
-S
-88 41.8418 m
-16 41.8418 L
-S
-88 28.2217 m
-16 28.2217 L
-S
-88 24.3311 m
-16 24.3311 L
-S
-88 10.7109 m
-16 10.7109 L
-S
-6 69.0811 m
-2 69.0811 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (one direction diagonals)
-(one direction diagonals) 28.856 4.6211 100.855 76.6211 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-5.106 10.6211 m
-11.106 4.6211 L
-F
-5.106 4.6211 m
-11.106 10.6211 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 1 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-21.3716 66.1055 m
-39.3706 84.1055 l
-S
-21.3716 60.1055 m
-45.3706 84.1055 l
-S
-21.3716 54.1055 m
-51.3706 84.1055 l
-S
-21.3716 48.1055 m
-57.3706 84.1055 l
-S
-21.3716 42.1055 m
-63.3706 84.1055 l
-S
-21.3716 36.1055 m
-69.3706 84.1055 l
-S
-21.3716 30.1055 m
-75.3706 84.1055 l
-S
-21.3716 24.1055 m
-81.3706 84.1055 l
-S
-21.3716 18.1055 m
-87.3706 84.1055 l
-S
-21.3716 12.1055 m
-93.3706 84.1055 l
-S
-21.3716 6.1055 m
-99.3706 84.1055 l
-S
-21.3716 0.1064 m
-105.3706 84.1055 l
-S
-27.3716 0.1064 m
-105.3706 78.1055 l
-S
-33.3706 0.1064 m
-105.3706 72.1055 l
-S
-39.3706 0.1064 m
-105.3706 66.1055 l
-S
-45.3706 0.1064 m
-105.3706 60.1055 l
-S
-51.3706 0.1064 m
-105.3706 54.1055 l
-S
-57.3706 0.1064 m
-105.3706 48.1055 l
-S
-63.3706 0.1064 m
-105.3706 42.1055 l
-S
-69.3706 0.1064 m
-105.3706 36.1055 l
-S
-75.3706 0.1064 m
-105.3706 30.1055 l
-S
-81.3706 0.1064 m
-105.3706 24.1055 l
-S
-87.3706 0.1064 m
-105.3706 18.1055 l
-S
-93.3706 0.1064 m
-105.3706 12.1055 l
-S
-2 j
-0.106 63.1211 m
-10.106 73.1211 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (white dots)
-(white dots) 0.375 0.6885 72.375 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-13.3115 3.1885 m
-13.3115 3.1885 l
-S
-1.5 3.375 m
-1.5 3.375 l
-S
-10.875 4.6885 m
-10.875 4.6885 l
-S
-20.0615 5.8135 m
-20.0615 5.8135 l
-S
-4.125 0.9385 m
-4.125 0.9385 l
-S
-7.5 7.3135 m
-7.5 7.3135 l
-S
-24.9365 2.4385 m
-24.9365 2.4385 l
-S
-27.375 1.125 m
-27.375 1.125 l
-S
-29.4365 5.4385 m
-29.4365 5.4385 l
-S
-41.25 6.375 m
-41.25 6.375 l
-S
-49.6865 5.0635 m
-49.6865 5.0635 l
-S
-35.4365 6.9385 m
-35.4365 6.9385 l
-S
-24.9365 6.9385 m
-24.9365 6.9385 l
-S
-15.5615 6.9385 m
-15.5615 6.9385 l
-S
-44.25 9.5635 m
-44.25 9.5635 l
-S
-47.0615 1.3135 m
-47.0615 1.3135 l
-S
-18.9365 0.9385 m
-18.9365 0.9385 l
-S
-32.8115 2.25 m
-32.8115 2.25 l
-S
-40.6865 0.75 m
-40.6865 0.75 l
-S
-51 24.5635 m
-51 24.5635 l
-S
-58.6865 24.9385 m
-58.6865 24.9385 l
-S
-63.1865 24.375 m
-63.1865 24.375 l
-S
-67.3115 2.0635 m
-67.3115 2.0635 l
-S
-52.6865 11.8135 m
-52.6865 11.8135 l
-S
-70.875 17.8135 m
-70.875 17.8135 l
-S
-71.4365 4.6885 m
-71.4365 4.6885 l
-S
-64.3115 19.875 m
-64.3115 19.875 l
-S
-62.25 1.125 m
-62.25 1.125 l
-S
-54 20.25 m
-54 20.25 l
-S
-52.125 6 m
-52.125 6 l
-S
-57.75 17.625 m
-57.75 17.625 l
-S
-61.3115 16.875 m
-61.3115 16.875 l
-S
-56.8115 3.375 m
-56.8115 3.375 l
-S
-61.6865 9.5635 m
-61.6865 9.5635 l
-S
-58.3115 11.25 m
-58.3115 11.25 l
-S
-67.5 7.875 m
-67.5 7.875 l
-S
-69.5615 12.75 m
-69.5615 12.75 l
-S
-65.4365 13.875 m
-65.4365 13.875 l
-S
-2.0615 16.125 m
-2.0615 16.125 l
-S
-29.625 10.3135 m
-29.625 10.3135 l
-S
-15.9365 21.375 m
-15.9365 21.375 l
-S
-5.25 11.8135 m
-5.25 11.8135 l
-S
-19.125 18.5635 m
-19.125 18.5635 l
-S
-10.125 21.9385 m
-10.125 21.9385 l
-S
-18.9365 24.5635 m
-18.9365 24.5635 l
-S
-21.75 16.3135 m
-21.75 16.3135 l
-S
-21 12.75 m
-21 12.75 l
-S
-7.5 17.25 m
-7.5 17.25 l
-S
-13.6865 12.375 m
-13.6865 12.375 l
-S
-15.375 15.75 m
-15.375 15.75 l
-S
-30.5615 22.875 m
-30.5615 22.875 l
-S
-36.375 15.375 m
-36.375 15.375 l
-S
-42.75 13.3135 m
-42.75 13.3135 l
-S
-47.0615 20.0635 m
-47.0615 20.0635 l
-S
-47.25 14.0635 m
-47.25 14.0635 l
-S
-29.0615 20.4385 m
-29.0615 20.4385 l
-S
-31.125 15.1885 m
-31.125 15.1885 l
-S
-26.4365 17.0635 m
-26.4365 17.0635 l
-S
-39.5615 17.4385 m
-39.5615 17.4385 l
-S
-43.3115 23.25 m
-43.3115 23.25 l
-S
-44.4365 17.4385 m
-44.4365 17.4385 l
-S
-26.8115 25.125 m
-26.8115 25.125 l
-S
-49.6865 20.625 m
-49.6865 20.625 l
-S
-36 24.5635 m
-36 24.5635 l
-S
-36.375 20.625 m
-36.375 20.625 l
-S
-3.1865 24 m
-3.1865 24 l
-S
-5.625 24.9385 m
-5.625 24.9385 l
-S
-3.75 70.875 m
-3.75 70.875 l
-S
-10.5 66.5635 m
-10.5 66.5635 l
-S
-4.5 66.375 m
-4.5 66.375 l
-S
-22.875 69 m
-22.875 69 l
-S
-31.5 71.625 m
-31.5 71.625 l
-S
-47.25 68.0635 m
-47.25 68.0635 l
-S
-34.125 67.5 m
-34.125 67.5 l
-S
-23.25 65.625 m
-23.25 65.625 l
-S
-13.6865 70.3135 m
-13.6865 70.3135 l
-S
-16.3115 67.5 m
-16.3115 67.5 l
-S
-41.625 65.4385 m
-41.625 65.4385 l
-S
-7.875 69.1885 m
-7.875 69.1885 l
-S
-30 65.25 m
-30 65.25 l
-S
-11.0615 63.9385 m
-11.0615 63.9385 l
-S
-34.875 63.75 m
-34.875 63.75 l
-S
-17.0615 72 m
-17.0615 72 l
-S
-37.3115 71.4385 m
-37.3115 71.4385 l
-S
-42.1865 69.375 m
-42.1865 69.375 l
-S
-45.375 64.3135 m
-45.375 64.3135 l
-S
-13.3115 48.1885 m
-13.3115 48.1885 l
-S
-1.5 48.375 m
-1.5 48.375 l
-S
-5.8115 42.375 m
-5.8115 42.375 l
-S
-3.75 36 m
-3.75 36 l
-S
-10.5 31.6885 m
-10.5 31.6885 l
-S
-4.5 31.5 m
-4.5 31.5 l
-S
-10.875 49.6885 m
-10.875 49.6885 l
-S
-20.0615 50.8135 m
-20.0615 50.8135 l
-S
-4.125 45.9385 m
-4.125 45.9385 l
-S
-7.5 52.3135 m
-7.5 52.3135 l
-S
-24.9365 47.4385 m
-24.9365 47.4385 l
-S
-27.375 46.125 m
-27.375 46.125 l
-S
-7.875 39.1885 m
-7.875 39.1885 l
-S
-22.875 34.125 m
-22.875 34.125 l
-S
-31.5 36.75 m
-31.5 36.75 l
-S
-29.4365 50.4385 m
-29.4365 50.4385 l
-S
-41.25 51.375 m
-41.25 51.375 l
-S
-27.1865 39.375 m
-27.1865 39.375 l
-S
-47.25 33.1885 m
-47.25 33.1885 l
-S
-34.125 32.625 m
-34.125 32.625 l
-S
-23.25 30.75 m
-23.25 30.75 l
-S
-13.6865 35.4385 m
-13.6865 35.4385 l
-S
-16.3115 32.625 m
-16.3115 32.625 l
-S
-39.125 30.1885 m
-39.125 30.1885 l
-S
-49.3115 39.75 m
-49.3115 39.75 l
-S
-30.5615 41.8135 m
-30.5615 41.8135 l
-S
-49.6865 50.0635 m
-49.6865 50.0635 l
-S
-35.4365 51.9385 m
-35.4365 51.9385 l
-S
-7.875 34.3135 m
-7.875 34.3135 l
-S
-24.9365 51.9385 m
-24.9365 51.9385 l
-S
-15.5615 51.9385 m
-15.5615 51.9385 l
-S
-30 30.375 m
-30 30.375 l
-S
-11.0615 29.0635 m
-11.0615 29.0635 l
-S
-44.25 54.5635 m
-44.25 54.5635 l
-S
-34.875 28.875 m
-34.875 28.875 l
-S
-45.125 47.6885 m
-45.125 47.6885 l
-S
-15 42.75 m
-15 42.75 l
-S
-11.0615 42.375 m
-11.0615 42.375 l
-S
-21.1865 40.125 m
-21.1865 40.125 l
-S
-22.125 43.5 m
-22.125 43.5 l
-S
-18.9365 45.9385 m
-18.9365 45.9385 l
-S
-17.0615 37.125 m
-17.0615 37.125 l
-S
-46.3115 42.75 m
-46.3115 42.75 l
-S
-32.8115 47.25 m
-32.8115 47.25 l
-S
-39 42.375 m
-39 42.375 l
-S
-40.6865 45.75 m
-40.6865 45.75 l
-S
-37.3115 36.5635 m
-37.3115 36.5635 l
-S
-42.1865 34.5 m
-42.1865 34.5 l
-S
-43.3115 38.625 m
-43.3115 38.625 l
-S
-45.375 29.4385 m
-45.375 29.4385 l
-S
-50.25 29.625 m
-50.25 29.625 l
-S
-54.9365 27.75 m
-54.9365 27.75 l
-S
-55.875 52.875 m
-55.875 52.875 l
-S
-54.1865 34.3135 m
-54.1865 34.3135 l
-S
-60.75 27.375 m
-60.75 27.375 l
-S
-55.6865 41.0635 m
-55.6865 41.0635 l
-S
-61.6865 45.375 m
-61.6865 45.375 l
-S
-66.375 28.6885 m
-66.375 28.6885 l
-S
-72.5615 27.5635 m
-72.5615 27.5635 l
-S
-68.0615 43.3135 m
-68.0615 43.3135 l
-S
-72.375 50.0635 m
-72.375 50.0635 l
-S
-72.5615 44.0635 m
-72.5615 44.0635 l
-S
-72.5615 33.1885 m
-72.5615 33.1885 l
-S
-54.375 50.4385 m
-54.375 50.4385 l
-S
-53.25 59.625 m
-53.25 59.625 l
-S
-51.1865 38.25 m
-51.1865 38.25 l
-S
-59.125 42.1885 m
-59.125 42.1885 l
-S
-51.75 47.0635 m
-51.75 47.0635 l
-S
-56.625 64.5 m
-56.625 64.5 l
-S
-57.9365 66.9385 m
-57.9365 66.9385 l
-S
-64.875 47.4385 m
-64.875 47.4385 l
-S
-69.9365 62.4385 m
-69.9365 62.4385 l
-S
-67.3115 71.0635 m
-67.3115 71.0635 l
-S
-53.625 69 m
-53.625 69 l
-S
-64.6865 66.75 m
-64.6865 66.75 l
-S
-68.625 53.25 m
-68.625 53.25 l
-S
-71.4365 55.875 m
-71.4365 55.875 l
-S
-62.25 70.125 m
-62.25 70.125 l
-S
-69.75 47.4385 m
-69.75 47.4385 l
-S
-52.125 64.5 m
-52.125 64.5 l
-S
-52.125 55.125 m
-52.125 55.125 l
-S
-66 31.125 m
-66 31.125 l
-S
-63.75 39 m
-63.75 39 l
-S
-60.1865 33 m
-60.1865 33 l
-S
-68.8115 37.3135 m
-68.8115 37.3135 l
-S
-61.3115 54.5635 m
-61.3115 54.5635 l
-S
-61.6865 50.625 m
-61.6865 50.625 l
-S
-63.9365 60.75 m
-63.9365 60.75 l
-S
-60.5615 61.6885 m
-60.5615 61.6885 l
-S
-58.125 58.5 m
-58.125 58.5 l
-S
-66.9365 56.625 m
-66.9365 56.625 l
-S
-56.8115 72.375 m
-56.8115 72.375 l
-S
-46.125 25.875 m
-46.125 25.875 l
-S
-41.625 26.625 m
-41.625 26.625 l
-S
-10.125 60.75 m
-10.125 60.75 l
-S
-18.5615 59.4385 m
-18.5615 59.4385 l
-S
-4.3115 61.3135 m
-4.3115 61.3135 l
-S
-15.9365 55.6885 m
-15.9365 55.6885 l
-S
-1.6865 56.625 m
-1.6865 56.625 l
-S
-9.5615 55.125 m
-9.5615 55.125 l
-S
-24.75 62.25 m
-24.75 62.25 l
-S
-30.5615 54.75 m
-30.5615 54.75 l
-S
-41.25 59.4385 m
-41.25 59.4385 l
-S
-24.625 58.1885 m
-24.625 58.1885 l
-S
-20.625 56.4385 m
-20.625 56.4385 l
-S
-33.75 56.8135 m
-33.75 56.8135 l
-S
-37.5 62.625 m
-37.5 62.625 l
-S
-38.625 56.8135 m
-38.625 56.8135 l
-S
-43.875 60 m
-43.875 60 l
-S
-30.5615 60 m
-30.5615 60 l
-S
-15.1865 28.5 m
-15.1865 28.5 l
-S
-4.125 72.9385 m
-4.125 72.9385 l
-S
-27.375 73.125 m
-27.375 73.125 l
-S
-18.9365 72.9385 m
-18.9365 72.9385 l
-S
-40.6865 72.75 m
-40.6865 72.75 l
-S
-62.25 73.125 m
-62.25 73.125 l
-S
-56.8115 0.375 m
-56.8115 0.375 l
-S
-0.5615 27.5635 m
-0.5615 27.5635 l
-S
-0.375 50.0635 m
-0.375 50.0635 l
-S
-0.5615 44.0635 m
-0.5615 44.0635 l
-S
-0.5615 33.1885 m
-0.5615 33.1885 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginBrushPattern
-(New Pattern 2)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7838.1201 8586 L
--7838.1201 8500.6914 L
--7884 8500.6914 L
--7884 8586 L
-n
-u
--7850.4111 8533.3125 m
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
-n
--7843.6582 8532.1602 m
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
-n
--7870.0361 8579.5879 m
--7870.0688 8579.5859 -7870.1006 8579.584 -7870.1318 8579.5801 c
--7870.1162 8579.582 -7870.1016 8579.584 -7870.0854 8579.585 c
--7870.0703 8579.5859 -7870.0527 8579.5879 -7870.0361 8579.5879 c
-n
--7854.5366 8533.6719 m
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
-n
--7839.1553 8576.4043 m
--7839.0625 8576.3281 -7838.9775 8576.252 -7838.9009 8576.1758 c
--7838.5967 8575.8672 -7838.4385 8575.5469 -7838.4385 8575.2207 c
--7838.4385 8575.6289 -7838.689 8576.0254 -7839.1553 8576.4043 c
-n
--7877.3232 8578.5703 m
--7877.3247 8578.5703 -7877.3281 8578.5693 -7877.3311 8578.5684 c
--7877.3306 8578.5693 -7877.3281 8578.5693 -7877.3271 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3232 8578.5703 c
-n
--7882.21 8577.0645 m
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.21 8577.0645 L
-n
--7858.9209 8533.8545 m
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
-n
--7863.582 8533.8535 m
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
-n
--7865.667 8533.7881 m
--7865.7642 8533.7842 -7865.8594 8533.7793 -7865.9561 8533.7754 c
--7865.9058 8533.7773 -7865.8608 8533.7813 -7865.8096 8533.7832 c
--7865.7642 8533.7852 -7865.7134 8533.7861 -7865.667 8533.7881 c
-n
--7884 8529.1426 m
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 c
-n
--7868.0718 8533.6602 m
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
-n
--7878.811 8532.1523 m
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
-n
--7872.1201 8533.3027 m
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
-n
--7838.4385 8529.1426 m
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
-n
--7839.0342 8530.2168 m
--7839.332 8530.4844 -7839.731 8530.7432 -7840.2358 8530.9902 c
--7840.2334 8530.9893 -7840.231 8530.9883 -7840.229 8530.9863 c
--7839.7271 8530.7402 -7839.3311 8530.4834 -7839.0342 8530.2168 c
-n
--7841.187 8531.4004 m
--7841.187 8531.4004 L
--7841.187 8531.4004 L
-n
--7884 8575.2207 m
--7884 8575.5 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.501 -7884 8575.2207 c
-n
--7856.4824 8533.7754 m
--7856.5791 8533.7793 -7856.6758 8533.7842 -7856.7729 8533.7881 c
--7856.7246 8533.7861 -7856.6758 8533.7852 -7856.6279 8533.7832 c
--7856.5791 8533.7813 -7856.5313 8533.7773 -7856.4824 8533.7754 c
-n
--7872.0942 8579.3828 m
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
-n
--7882.2026 8530.9902 m
--7882.46 8530.8633 -7882.687 8530.7344 -7882.8936 8530.6016 c
--7882.6904 8530.7324 -7882.4639 8530.8613 -7882.21 8530.9863 c
--7882.208 8530.9883 -7882.2041 8530.9893 -7882.2026 8530.9902 c
-n
--7854.4766 8579.7461 m
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
-n
--7840.229 8577.0645 m
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7840.229 8577.0645 L
-n
--7852.2998 8579.5801 m
--7852.335 8579.583 -7852.3706 8579.5859 -7852.4072 8579.5898 c
--7852.3882 8579.5879 -7852.3706 8579.5869 -7852.3521 8579.585 c
--7852.334 8579.584 -7852.3174 8579.582 -7852.2998 8579.5801 c
-n
--7856.5601 8579.8574 m
--7856.6055 8579.8594 -7856.6514 8579.8613 -7856.6958 8579.8633 c
--7856.6738 8579.8623 -7856.6494 8579.8613 -7856.6279 8579.8613 c
--7856.6055 8579.8604 -7856.583 8579.8584 -7856.5601 8579.8574 c
-n
--7868.0186 8579.7422 m
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
-n
--7850.3882 8579.3887 m
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
-n
--7865.7422 8579.8633 m
--7865.7881 8579.8613 -7865.833 8579.8594 -7865.8774 8579.8574 c
--7865.8545 8579.8584 -7865.833 8579.8604 -7865.8096 8579.8613 c
--7865.7881 8579.8613 -7865.7646 8579.8623 -7865.7422 8579.8633 c
-n
-0 O
-0.8 g
--7839.1553 8576.4043 m
--7839.437 8576.6309 -7839.7959 8576.8516 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7842.2422 8578.0547 -7845.8286 8578.8721 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
--7851.0088 8579.458 -7851.6465 8579.5215 -7852.2998 8579.5801 c
--7852.3174 8579.582 -7852.334 8579.584 -7852.3521 8579.585 c
--7852.3706 8579.5869 -7852.3882 8579.5879 -7852.4072 8579.5898 c
--7853.0615 8579.6465 -7853.7305 8579.6973 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
--7855.1567 8579.79 -7855.853 8579.8262 -7856.5601 8579.8574 c
--7856.583 8579.8584 -7856.6055 8579.8604 -7856.6279 8579.8613 c
--7856.6494 8579.8613 -7856.6738 8579.8623 -7856.6958 8579.8633 c
--7858.1567 8579.9238 -7859.6694 8579.957 -7861.2202 8579.957 c
--7862.769 8579.957 -7864.2798 8579.9238 -7865.7422 8579.8633 c
--7865.7646 8579.8623 -7865.7881 8579.8613 -7865.8096 8579.8613 c
--7865.833 8579.8604 -7865.8545 8579.8584 -7865.8774 8579.8574 c
--7866.5854 8579.8262 -7867.2832 8579.7891 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
--7868.7065 8579.6973 -7869.3799 8579.6465 -7870.0361 8579.5879 c
--7870.0527 8579.5879 -7870.0703 8579.5859 -7870.0854 8579.585 c
--7870.1016 8579.584 -7870.1162 8579.582 -7870.1318 8579.5801 c
--7870.7886 8579.5225 -7871.4321 8579.458 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
--7874.0234 8579.165 -7875.7832 8578.8906 -7877.3232 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3271 8578.5703 c
--7877.3281 8578.5693 -7877.3306 8578.5693 -7877.3311 8578.5684 c
--7879.3896 8578.1406 -7881.0576 8577.6309 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.8682 8576.7402 -7883.353 8576.3984 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.5 -7884 8575.2207 C
--7884 8581.2637 L
--7884 8581.5908 -7883.8408 8581.9102 -7883.5361 8582.2188 c
--7883.2334 8582.5273 -7882.7866 8582.8242 -7882.21 8583.1074 c
--7881.6328 8583.3906 -7880.9287 8583.6602 -7880.1089 8583.9121 c
--7879.29 8584.1641 -7878.3584 8584.3984 -7877.3271 8584.6133 c
--7876.2959 8584.8281 -7875.168 8585.0215 -7873.9561 8585.1914 c
--7872.7432 8585.3623 -7871.4497 8585.5088 -7870.0854 8585.6279 c
--7868.7231 8585.749 -7867.293 8585.8418 -7865.8096 8585.9043 c
--7864.3271 8585.9668 -7862.792 8586 -7861.2202 8586 c
--7859.6465 8586 -7858.1104 8585.9668 -7856.6279 8585.9043 c
--7855.145 8585.8418 -7853.7134 8585.749 -7852.3521 8585.6279 c
--7850.9897 8585.5088 -7849.6934 8585.3623 -7848.4814 8585.1914 c
--7847.2695 8585.0215 -7846.1416 8584.8281 -7845.1104 8584.6133 c
--7844.0801 8584.3984 -7843.147 8584.1641 -7842.3286 8583.9121 c
--7841.5103 8583.6602 -7840.8042 8583.3906 -7840.229 8583.1074 c
--7839.6514 8582.8242 -7839.2041 8582.5273 -7838.9009 8582.2188 c
--7838.5967 8581.9102 -7838.4385 8581.5908 -7838.4385 8581.2637 C
--7838.4385 8575.2207 L
--7838.4385 8575.5469 -7838.5967 8575.8672 -7838.9009 8576.1758 c
--7838.9775 8576.252 -7839.0625 8576.3281 -7839.1553 8576.4043 c
-f
-0.5 g
--7848.209 8572.2383 m
--7847.9424 8572.2383 L
--7847.9424 8572.4561 -7848.041 8572.6621 -7848.209 8572.8555 C
--7848.209 8574.0039 L
--7848.209 8574.1914 -7848.2998 8574.373 -7848.4736 8574.5488 c
--7848.6455 8574.7256 -7848.9014 8574.8945 -7849.231 8575.0566 c
--7849.5615 8575.2197 -7849.9639 8575.373 -7850.4302 8575.5166 c
--7850.8984 8575.6602 -7851.4302 8575.7949 -7852.0186 8575.917 c
--7852.6079 8576.0391 -7853.2529 8576.1504 -7853.9438 8576.248 c
--7854.6377 8576.3447 -7855.376 8576.4277 -7856.1543 8576.4961 c
--7856.9326 8576.5645 -7857.749 8576.6191 -7858.5967 8576.6543 c
--7859.4438 8576.6895 -7860.3218 8576.709 -7861.2192 8576.709 c
--7862.1162 8576.709 -7862.9946 8576.6895 -7863.8408 8576.6543 c
--7864.687 8576.6191 -7865.5049 8576.5645 -7866.2822 8576.4961 c
--7867.061 8576.4277 -7867.8008 8576.3447 -7868.4927 8576.248 c
--7869.1846 8576.1504 -7869.8306 8576.0391 -7870.418 8575.917 c
--7871.0063 8575.7949 -7871.54 8575.6602 -7872.0063 8575.5166 c
--7872.4746 8575.373 -7872.8774 8575.2197 -7873.2065 8575.0566 c
--7873.5361 8574.8945 -7873.792 8574.7256 -7873.9658 8574.5488 c
--7874.1377 8574.373 -7874.2295 8574.1914 -7874.2295 8574.0039 C
--7874.2295 8572.8555 L
--7874.3975 8572.6621 -7874.4961 8572.4561 -7874.4961 8572.2383 C
--7874.2295 8572.2383 L
--7874.2295 8571.4912 L
--7874.2695 8571.4453 -7874.2974 8571.3965 -7874.3286 8571.3486 C
--7880.1768 8572.2051 -7884 8573.6191 -7884 8575.2207 c
--7884 8575.501 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.353 8576.3984 -7882.8682 8576.7402 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7881.0576 8577.6309 -7879.3896 8578.1406 -7877.3311 8578.5684 c
--7877.3281 8578.5693 -7877.3247 8578.5703 -7877.3232 8578.5703 c
--7875.7832 8578.8906 -7874.0234 8579.165 -7872.0942 8579.3828 c
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7871.4321 8579.458 -7870.7886 8579.5225 -7870.1318 8579.5801 c
--7870.1006 8579.584 -7870.0688 8579.5859 -7870.0361 8579.5879 c
--7869.3799 8579.6465 -7868.7065 8579.6973 -7868.0186 8579.7422 c
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.2832 8579.7891 -7866.5854 8579.8262 -7865.8774 8579.8574 c
--7865.833 8579.8594 -7865.7881 8579.8613 -7865.7422 8579.8633 c
--7864.2798 8579.9238 -7862.769 8579.957 -7861.2202 8579.957 c
--7859.6694 8579.957 -7858.1567 8579.9238 -7856.6958 8579.8633 c
--7856.6514 8579.8613 -7856.6055 8579.8594 -7856.5601 8579.8574 c
--7855.853 8579.8262 -7855.1567 8579.79 -7854.4766 8579.7461 c
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7853.7305 8579.6973 -7853.0615 8579.6465 -7852.4072 8579.5898 c
--7852.3706 8579.5859 -7852.335 8579.583 -7852.2998 8579.5801 c
--7851.6465 8579.5215 -7851.0088 8579.458 -7850.3882 8579.3887 c
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7845.8286 8578.8721 -7842.2422 8578.0547 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7839.7959 8576.8516 -7839.437 8576.6309 -7839.1553 8576.4043 c
--7838.689 8576.0254 -7838.4385 8575.6289 -7838.4385 8575.2207 c
--7838.4385 8573.6191 -7842.2617 8572.2051 -7848.1104 8571.3486 C
--7848.1392 8571.3965 -7848.1689 8571.4453 -7848.209 8571.4912 C
--7848.209 8572.2383 L
-f
-0.55 g
--7861.2202 8558.7959 m
--7866.9199 8558.7959 -7872.9287 8557.9863 -7874.2295 8556.4746 C
--7874.2295 8557.2227 L
--7874.0454 8557.2227 L
--7874.0454 8558.3994 -7868.7783 8559.7109 -7861.2202 8559.7109 c
--7853.6602 8559.7109 -7848.3921 8558.3994 -7848.3921 8557.2227 C
--7848.209 8557.2227 L
--7848.209 8556.4746 L
--7849.5088 8557.9863 -7855.5166 8558.7959 -7861.2202 8558.7959 c
-f
--7861.2202 8549.2402 m
--7866.9199 8549.2402 -7872.9287 8548.4307 -7874.2295 8546.9199 C
--7874.2295 8547.666 L
--7874.0454 8547.666 L
--7874.0454 8548.8438 -7868.7783 8550.1563 -7861.2202 8550.1563 c
--7853.6602 8550.1563 -7848.3921 8548.8438 -7848.3921 8547.666 C
--7848.209 8547.666 L
--7848.209 8546.9199 L
--7849.5088 8548.4307 -7855.5166 8549.2402 -7861.2202 8549.2402 c
-f
--7861.2202 8560.1611 m
--7866.9199 8560.1611 -7872.9287 8559.3516 -7874.2295 8557.8398 C
--7874.2295 8558.5879 L
--7874.0454 8558.5879 L
--7874.0454 8559.7646 -7868.7783 8561.0762 -7861.2202 8561.0762 c
--7853.6602 8561.0762 -7848.3921 8559.7646 -7848.3921 8558.5879 C
--7848.209 8558.5879 L
--7848.209 8557.8398 L
--7849.5088 8559.3516 -7855.5166 8560.1611 -7861.2202 8560.1611 c
-f
--7861.2202 8561.5264 m
--7866.9199 8561.5264 -7872.9287 8560.7168 -7874.2295 8559.2051 C
--7874.2295 8559.9531 L
--7874.0454 8559.9531 L
--7874.0454 8561.1299 -7868.7783 8562.4414 -7861.2202 8562.4414 c
--7853.6602 8562.4414 -7848.3921 8561.1299 -7848.3921 8559.9531 C
--7848.209 8559.9531 L
--7848.209 8559.2051 L
--7849.5088 8560.7168 -7855.5166 8561.5264 -7861.2202 8561.5264 c
-f
--7861.2202 8550.6055 m
--7866.9199 8550.6055 -7872.9287 8549.7959 -7874.2295 8548.2852 C
--7874.2295 8549.0322 L
--7874.0454 8549.0322 L
--7874.0454 8550.209 -7868.7783 8551.5205 -7861.2202 8551.5205 c
--7853.6602 8551.5205 -7848.3921 8550.209 -7848.3921 8549.0322 C
--7848.209 8549.0322 L
--7848.209 8548.2852 L
--7849.5088 8549.7959 -7855.5166 8550.6055 -7861.2202 8550.6055 c
-f
--7861.2202 8554.7012 m
--7866.9199 8554.7012 -7872.9287 8553.8906 -7874.2295 8552.3789 C
--7874.2295 8553.127 L
--7874.0454 8553.127 L
--7874.0454 8554.3047 -7868.7783 8555.6162 -7861.2202 8555.6162 c
--7853.6602 8555.6162 -7848.3921 8554.3047 -7848.3921 8553.127 C
--7848.209 8553.127 L
--7848.209 8552.3789 L
--7849.5088 8553.8906 -7855.5166 8554.7012 -7861.2202 8554.7012 c
-f
--7861.2202 8557.4316 m
--7866.9199 8557.4316 -7872.9287 8556.6211 -7874.2295 8555.1104 C
--7874.2295 8555.8574 L
--7874.0454 8555.8574 L
--7874.0454 8557.0342 -7868.7783 8558.3457 -7861.2202 8558.3457 c
--7853.6602 8558.3457 -7848.3921 8557.0342 -7848.3921 8555.8574 C
--7848.209 8555.8574 L
--7848.209 8555.1104 L
--7849.5088 8556.6211 -7855.5166 8557.4316 -7861.2202 8557.4316 c
-f
--7861.2202 8553.3359 m
--7866.9199 8553.3359 -7872.9287 8552.5254 -7874.2295 8551.0146 C
--7874.2295 8551.7617 L
--7874.0454 8551.7617 L
--7874.0454 8552.9395 -7868.7783 8554.25 -7861.2202 8554.25 c
--7853.6602 8554.25 -7848.3921 8552.9395 -7848.3921 8551.7617 C
--7848.209 8551.7617 L
--7848.209 8551.0146 L
--7849.5088 8552.5254 -7855.5166 8553.3359 -7861.2202 8553.3359 c
-f
--7861.2202 8543.7803 m
--7866.9199 8543.7803 -7872.9287 8542.9707 -7874.2295 8541.459 C
--7874.2295 8542.2061 L
--7874.0454 8542.2061 L
--7874.0454 8543.3828 -7868.7783 8544.6953 -7861.2202 8544.6953 c
--7853.6602 8544.6953 -7848.3921 8543.3828 -7848.3921 8542.2061 C
--7848.209 8542.2061 L
--7848.209 8541.459 L
--7849.5088 8542.9707 -7855.5166 8543.7803 -7861.2202 8543.7803 c
-f
--7861.2202 8546.5098 m
--7866.9199 8546.5098 -7872.9287 8545.7012 -7874.2295 8544.1895 C
--7874.2295 8544.9375 L
--7874.0454 8544.9375 L
--7874.0454 8546.1133 -7868.7783 8547.4248 -7861.2202 8547.4248 c
--7853.6602 8547.4248 -7848.3921 8546.1133 -7848.3921 8544.9375 C
--7848.209 8544.9375 L
--7848.209 8544.1895 L
--7849.5088 8545.7012 -7855.5166 8546.5098 -7861.2202 8546.5098 c
-f
--7861.2202 8556.0664 m
--7866.9199 8556.0664 -7872.9287 8555.2559 -7874.2295 8553.7451 C
--7874.2295 8554.4922 L
--7874.0454 8554.4922 L
--7874.0454 8555.6689 -7868.7783 8556.9805 -7861.2202 8556.9805 c
--7853.6602 8556.9805 -7848.3921 8555.6689 -7848.3921 8554.4922 C
--7848.209 8554.4922 L
--7848.209 8553.7451 L
--7849.5088 8555.2559 -7855.5166 8556.0664 -7861.2202 8556.0664 c
-f
--7861.2202 8551.9707 m
--7866.9199 8551.9707 -7872.9287 8551.1611 -7874.2295 8549.6504 C
--7874.2295 8550.3965 L
--7874.0454 8550.3965 L
--7874.0454 8551.5742 -7868.7783 8552.8857 -7861.2202 8552.8857 c
--7853.6602 8552.8857 -7848.3921 8551.5742 -7848.3921 8550.3965 C
--7848.209 8550.3965 L
--7848.209 8549.6504 L
--7849.5088 8551.1611 -7855.5166 8551.9707 -7861.2202 8551.9707 c
-f
--7861.2202 8545.1445 m
--7866.9199 8545.1445 -7872.9287 8544.3359 -7874.2295 8542.8242 C
--7874.2295 8543.5723 L
--7874.0454 8543.5723 L
--7874.0454 8544.748 -7868.7783 8546.0605 -7861.2202 8546.0605 c
--7853.6602 8546.0605 -7848.3921 8544.748 -7848.3921 8543.5723 C
--7848.209 8543.5723 L
--7848.209 8542.8242 L
--7849.5088 8544.3359 -7855.5166 8545.1445 -7861.2202 8545.1445 c
-f
--7861.2202 8547.875 m
--7866.9199 8547.875 -7872.9287 8547.0654 -7874.2295 8545.5547 C
--7874.2295 8546.3008 L
--7874.0454 8546.3008 L
--7874.0454 8547.4785 -7868.7783 8548.791 -7861.2202 8548.791 c
--7853.6602 8548.791 -7848.3921 8547.4785 -7848.3921 8546.3008 C
--7848.209 8546.3008 L
--7848.209 8545.5547 L
--7849.5088 8547.0654 -7855.5166 8547.875 -7861.2202 8547.875 c
-f
--7861.2202 8568.3516 m
--7866.9199 8568.3516 -7872.9287 8567.543 -7874.2295 8566.0313 C
--7874.2295 8566.7783 L
--7874.0454 8566.7783 L
--7874.0454 8567.9551 -7868.7783 8569.2666 -7861.2202 8569.2666 c
--7853.6602 8569.2666 -7848.3921 8567.9551 -7848.3921 8566.7783 C
--7848.209 8566.7783 L
--7848.209 8566.0313 L
--7849.5088 8567.543 -7855.5166 8568.3516 -7861.2202 8568.3516 c
-f
--7861.2202 8572.4473 m
--7866.9199 8572.4473 -7872.9287 8571.6377 -7874.2295 8570.127 C
--7874.2295 8570.873 L
--7874.0454 8570.873 L
--7874.0454 8572.0508 -7868.7783 8573.3623 -7861.2202 8573.3623 c
--7853.6602 8573.3623 -7848.3921 8572.0508 -7848.3921 8570.873 C
--7848.209 8570.873 L
--7848.209 8570.127 L
--7849.5088 8571.6377 -7855.5166 8572.4473 -7861.2202 8572.4473 c
-f
--7861.2202 8571.082 m
--7866.9199 8571.082 -7872.9287 8570.2715 -7874.2295 8568.7607 C
--7874.2295 8569.5078 L
--7874.0454 8569.5078 L
--7874.0454 8570.6855 -7868.7783 8571.998 -7861.2202 8571.998 c
--7853.6602 8571.998 -7848.3921 8570.6855 -7848.3921 8569.5078 C
--7848.209 8569.5078 L
--7848.209 8568.7607 L
--7849.5088 8570.2715 -7855.5166 8571.082 -7861.2202 8571.082 c
-f
--7861.2202 8562.8906 m
--7866.9199 8562.8906 -7872.9287 8562.082 -7874.2295 8560.5703 C
--7874.2295 8561.3184 L
--7874.0454 8561.3184 L
--7874.0454 8562.4941 -7868.7783 8563.8066 -7861.2202 8563.8066 c
--7853.6602 8563.8066 -7848.3921 8562.4941 -7848.3921 8561.3184 C
--7848.209 8561.3184 L
--7848.209 8560.5703 L
--7849.5088 8562.082 -7855.5166 8562.8906 -7861.2202 8562.8906 c
-f
--7861.2202 8566.9863 m
--7866.9199 8566.9863 -7872.9287 8566.1768 -7874.2295 8564.666 C
--7874.2295 8565.4131 L
--7874.0454 8565.4131 L
--7874.0454 8566.5898 -7868.7783 8567.9023 -7861.2202 8567.9023 c
--7853.6602 8567.9023 -7848.3921 8566.5898 -7848.3921 8565.4131 C
--7848.209 8565.4131 L
--7848.209 8564.666 L
--7849.5088 8566.1768 -7855.5166 8566.9863 -7861.2202 8566.9863 c
-f
--7861.2202 8565.6211 m
--7866.9199 8565.6211 -7872.9287 8564.8115 -7874.2295 8563.3008 C
--7874.2295 8564.0479 L
--7874.0454 8564.0479 L
--7874.0454 8565.2246 -7868.7783 8566.5371 -7861.2202 8566.5371 c
--7853.6602 8566.5371 -7848.3921 8565.2246 -7848.3921 8564.0479 C
--7848.209 8564.0479 L
--7848.209 8563.3008 L
--7849.5088 8564.8115 -7855.5166 8565.6211 -7861.2202 8565.6211 c
-f
--7861.2202 8564.2559 m
--7866.9199 8564.2559 -7872.9287 8563.4473 -7874.2295 8561.9355 C
--7874.2295 8562.6826 L
--7874.0454 8562.6826 L
--7874.0454 8563.8594 -7868.7783 8565.1719 -7861.2202 8565.1719 c
--7853.6602 8565.1719 -7848.3921 8563.8594 -7848.3921 8562.6826 C
--7848.209 8562.6826 L
--7848.209 8561.9355 L
--7849.5088 8563.4473 -7855.5166 8564.2559 -7861.2202 8564.2559 c
-f
--7861.2202 8569.7168 m
--7866.9199 8569.7168 -7872.9287 8568.9072 -7874.2295 8567.3965 C
--7874.2295 8568.1426 L
--7874.0454 8568.1426 L
--7874.0454 8569.3203 -7868.7783 8570.6318 -7861.2202 8570.6318 c
--7853.6602 8570.6318 -7848.3921 8569.3203 -7848.3921 8568.1426 C
--7848.209 8568.1426 L
--7848.209 8567.3965 L
--7849.5088 8568.9072 -7855.5166 8569.7168 -7861.2202 8569.7168 c
-f
--7852.3521 8539.5498 m
--7853.7134 8539.6699 -7855.145 8539.7637 -7856.6279 8539.8262 c
--7858.1104 8539.8887 -7859.6465 8539.9229 -7861.2202 8539.9229 c
--7862.792 8539.9229 -7864.3271 8539.8887 -7865.8096 8539.8262 c
--7867.293 8539.7637 -7868.7231 8539.6699 -7870.0854 8539.5498 c
--7871.4497 8539.4307 -7872.7432 8539.2852 -7873.9561 8539.1143 c
--7874.0498 8539.1016 -7874.1362 8539.085 -7874.2295 8539.0713 C
--7874.2295 8539.4766 L
--7874.0454 8539.4766 L
--7874.0454 8540.6523 -7868.7783 8541.9648 -7861.2202 8541.9648 c
--7853.6602 8541.9648 -7848.3921 8540.6523 -7848.3921 8539.4766 C
--7848.209 8539.4766 L
--7848.209 8539.0723 L
--7848.3018 8539.085 -7848.3882 8539.1016 -7848.4814 8539.1143 c
--7849.6934 8539.2852 -7850.9897 8539.4307 -7852.3521 8539.5498 c
-f
--7861.2202 8542.415 m
--7866.9199 8542.415 -7872.9287 8541.6055 -7874.2295 8540.0938 C
--7874.2295 8540.8418 L
--7874.0454 8540.8418 L
--7874.0454 8542.0186 -7868.7783 8543.3301 -7861.2202 8543.3301 c
--7853.6602 8543.3301 -7848.3921 8542.0186 -7848.3921 8540.8418 C
--7848.209 8540.8418 L
--7848.209 8540.0938 L
--7849.5088 8541.6055 -7855.5166 8542.415 -7861.2202 8542.415 c
-f
--7861.2202 8575.1768 m
--7866.9199 8575.1768 -7872.9287 8574.3672 -7874.2295 8572.8555 C
--7874.2295 8574.0039 L
--7874.2295 8574.1914 -7874.1377 8574.373 -7873.9658 8574.5488 c
--7873.792 8574.7256 -7873.5361 8574.8945 -7873.2065 8575.0566 c
--7872.8774 8575.2197 -7872.4746 8575.373 -7872.0063 8575.5166 c
--7871.54 8575.6602 -7871.0063 8575.7949 -7870.418 8575.917 c
--7869.8306 8576.0391 -7869.1846 8576.1504 -7868.4927 8576.248 c
--7867.8008 8576.3447 -7867.061 8576.4277 -7866.2822 8576.4961 c
--7865.5049 8576.5645 -7864.687 8576.6191 -7863.8408 8576.6543 c
--7862.9946 8576.6895 -7862.1162 8576.709 -7861.2192 8576.709 c
--7860.3218 8576.709 -7859.4438 8576.6895 -7858.5967 8576.6543 c
--7857.749 8576.6191 -7856.9326 8576.5645 -7856.1543 8576.4961 c
--7855.376 8576.4277 -7854.6377 8576.3447 -7853.9438 8576.248 c
--7853.2529 8576.1504 -7852.6079 8576.0391 -7852.0186 8575.917 c
--7851.4302 8575.7949 -7850.8984 8575.6602 -7850.4302 8575.5166 c
--7849.9639 8575.373 -7849.5615 8575.2197 -7849.231 8575.0566 c
--7848.9014 8574.8945 -7848.6455 8574.7256 -7848.4736 8574.5488 c
--7848.2998 8574.373 -7848.209 8574.1914 -7848.209 8574.0039 C
--7848.209 8572.8555 L
--7849.5088 8574.3672 -7855.5166 8575.1768 -7861.2202 8575.1768 c
-f
--7874.0454 8572.2383 m
--7874.0454 8573.415 -7868.7783 8574.7266 -7861.2202 8574.7266 c
--7853.6602 8574.7266 -7848.3921 8573.415 -7848.3921 8572.2383 C
--7848.209 8572.2383 L
--7848.209 8571.4912 L
--7849.5088 8573.002 -7855.5166 8573.8125 -7861.2202 8573.8125 c
--7866.9199 8573.8125 -7872.9287 8573.002 -7874.2295 8571.4912 C
--7874.2295 8572.2383 L
--7874.0454 8572.2383 L
-f
-0.15 g
--7861.2202 8541.9648 m
--7868.7783 8541.9648 -7874.0454 8540.6523 -7874.0454 8539.4766 C
--7874.2295 8539.4766 L
--7874.4961 8539.4766 L
--7874.4961 8539.6943 -7874.3975 8539.8994 -7874.2295 8540.0938 c
--7872.9287 8541.6055 -7866.9199 8542.415 -7861.2202 8542.415 c
--7855.5166 8542.415 -7849.5088 8541.6055 -7848.209 8540.0938 c
--7848.041 8539.8994 -7847.9424 8539.6943 -7847.9424 8539.4766 C
--7848.209 8539.4766 L
--7848.3921 8539.4766 L
--7848.3921 8540.6523 -7853.6602 8541.9648 -7861.2202 8541.9648 c
-f
--7861.2202 8543.3301 m
--7868.7783 8543.3301 -7874.0454 8542.0186 -7874.0454 8540.8418 C
--7874.2295 8540.8418 L
--7874.4961 8540.8418 L
--7874.4961 8541.0586 -7874.3975 8541.2637 -7874.2295 8541.459 c
--7872.9287 8542.9707 -7866.9199 8543.7803 -7861.2202 8543.7803 c
--7855.5166 8543.7803 -7849.5088 8542.9707 -7848.209 8541.459 c
--7848.041 8541.2637 -7847.9424 8541.0586 -7847.9424 8540.8418 C
--7848.209 8540.8418 L
--7848.3921 8540.8418 L
--7848.3921 8542.0186 -7853.6602 8543.3301 -7861.2202 8543.3301 c
-f
--7861.2202 8544.6953 m
--7868.7783 8544.6953 -7874.0454 8543.3828 -7874.0454 8542.2061 C
--7874.2295 8542.2061 L
--7874.4961 8542.2061 L
--7874.4961 8542.4238 -7874.3975 8542.6289 -7874.2295 8542.8242 c
--7872.9287 8544.3359 -7866.9199 8545.1445 -7861.2202 8545.1445 c
--7855.5166 8545.1445 -7849.5088 8544.3359 -7848.209 8542.8242 c
--7848.041 8542.6289 -7847.9424 8542.4238 -7847.9424 8542.2061 C
--7848.209 8542.2061 L
--7848.3921 8542.2061 L
--7848.3921 8543.3828 -7853.6602 8544.6953 -7861.2202 8544.6953 c
-f
--7861.2202 8546.0605 m
--7868.7783 8546.0605 -7874.0454 8544.748 -7874.0454 8543.5723 C
--7874.2295 8543.5723 L
--7874.4961 8543.5723 L
--7874.4961 8543.79 -7874.3975 8543.9951 -7874.2295 8544.1895 c
--7872.9287 8545.7012 -7866.9199 8546.5098 -7861.2202 8546.5098 c
--7855.5166 8546.5098 -7849.5088 8545.7012 -7848.209 8544.1895 c
--7848.041 8543.9951 -7847.9424 8543.79 -7847.9424 8543.5723 C
--7848.209 8543.5723 L
--7848.3921 8543.5723 L
--7848.3921 8544.748 -7853.6602 8546.0605 -7861.2202 8546.0605 c
-f
--7861.2202 8547.4248 m
--7868.7783 8547.4248 -7874.0454 8546.1133 -7874.0454 8544.9375 C
--7874.2295 8544.9375 L
--7874.4961 8544.9375 L
--7874.4961 8545.1543 -7874.3975 8545.3594 -7874.2295 8545.5547 c
--7872.9287 8547.0654 -7866.9199 8547.875 -7861.2202 8547.875 c
--7855.5166 8547.875 -7849.5088 8547.0654 -7848.209 8545.5547 c
--7848.041 8545.3594 -7847.9424 8545.1543 -7847.9424 8544.9375 C
--7848.209 8544.9375 L
--7848.3921 8544.9375 L
--7848.3921 8546.1133 -7853.6602 8547.4248 -7861.2202 8547.4248 c
-f
--7861.2202 8548.791 m
--7868.7783 8548.791 -7874.0454 8547.4785 -7874.0454 8546.3008 C
--7874.2295 8546.3008 L
--7874.4961 8546.3008 L
--7874.4961 8546.5195 -7874.3975 8546.7246 -7874.2295 8546.9199 c
--7872.9287 8548.4307 -7866.9199 8549.2402 -7861.2202 8549.2402 c
--7855.5166 8549.2402 -7849.5088 8548.4307 -7848.209 8546.9199 c
--7848.041 8546.7246 -7847.9424 8546.5195 -7847.9424 8546.3008 C
--7848.209 8546.3008 L
--7848.3921 8546.3008 L
--7848.3921 8547.4785 -7853.6602 8548.791 -7861.2202 8548.791 c
-f
--7861.2202 8550.1563 m
--7868.7783 8550.1563 -7874.0454 8548.8438 -7874.0454 8547.666 C
--7874.2295 8547.666 L
--7874.4961 8547.666 L
--7874.4961 8547.8848 -7874.3975 8548.0898 -7874.2295 8548.2852 c
--7872.9287 8549.7959 -7866.9199 8550.6055 -7861.2202 8550.6055 c
--7855.5166 8550.6055 -7849.5088 8549.7959 -7848.209 8548.2852 c
--7848.041 8548.0898 -7847.9424 8547.8848 -7847.9424 8547.666 C
--7848.209 8547.666 L
--7848.3921 8547.666 L
--7848.3921 8548.8438 -7853.6602 8550.1563 -7861.2202 8550.1563 c
-f
--7861.2202 8551.5205 m
--7868.7783 8551.5205 -7874.0454 8550.209 -7874.0454 8549.0322 C
--7874.2295 8549.0322 L
--7874.4961 8549.0322 L
--7874.4961 8549.25 -7874.3975 8549.4551 -7874.2295 8549.6504 c
--7872.9287 8551.1611 -7866.9199 8551.9707 -7861.2202 8551.9707 c
--7855.5166 8551.9707 -7849.5088 8551.1611 -7848.209 8549.6504 c
--7848.041 8549.4551 -7847.9424 8549.25 -7847.9424 8549.0322 C
--7848.209 8549.0322 L
--7848.3921 8549.0322 L
--7848.3921 8550.209 -7853.6602 8551.5205 -7861.2202 8551.5205 c
-f
--7861.2202 8552.8857 m
--7868.7783 8552.8857 -7874.0454 8551.5742 -7874.0454 8550.3965 C
--7874.2295 8550.3965 L
--7874.4961 8550.3965 L
--7874.4961 8550.6152 -7874.3975 8550.8203 -7874.2295 8551.0146 c
--7872.9287 8552.5254 -7866.9199 8553.3359 -7861.2202 8553.3359 c
--7855.5166 8553.3359 -7849.5088 8552.5254 -7848.209 8551.0146 c
--7848.041 8550.8203 -7847.9424 8550.6152 -7847.9424 8550.3965 C
--7848.209 8550.3965 L
--7848.3921 8550.3965 L
--7848.3921 8551.5742 -7853.6602 8552.8857 -7861.2202 8552.8857 c
-f
--7861.2202 8554.25 m
--7868.7783 8554.25 -7874.0454 8552.9395 -7874.0454 8551.7617 C
--7874.2295 8551.7617 L
--7874.4961 8551.7617 L
--7874.4961 8551.9795 -7874.3975 8552.1846 -7874.2295 8552.3789 c
--7872.9287 8553.8906 -7866.9199 8554.7012 -7861.2202 8554.7012 c
--7855.5166 8554.7012 -7849.5088 8553.8906 -7848.209 8552.3789 c
--7848.041 8552.1846 -7847.9424 8551.9795 -7847.9424 8551.7617 C
--7848.209 8551.7617 L
--7848.3921 8551.7617 L
--7848.3921 8552.9395 -7853.6602 8554.25 -7861.2202 8554.25 c
-f
--7861.2202 8555.6162 m
--7868.7783 8555.6162 -7874.0454 8554.3047 -7874.0454 8553.127 C
--7874.2295 8553.127 L
--7874.4961 8553.127 L
--7874.4961 8553.3457 -7874.3975 8553.5508 -7874.2295 8553.7451 c
--7872.9287 8555.2559 -7866.9199 8556.0664 -7861.2202 8556.0664 c
--7855.5166 8556.0664 -7849.5088 8555.2559 -7848.209 8553.7451 c
--7848.041 8553.5508 -7847.9424 8553.3457 -7847.9424 8553.127 C
--7848.209 8553.127 L
--7848.3921 8553.127 L
--7848.3921 8554.3047 -7853.6602 8555.6162 -7861.2202 8555.6162 c
-f
--7861.2202 8556.9805 m
--7868.7783 8556.9805 -7874.0454 8555.6689 -7874.0454 8554.4922 C
--7874.2295 8554.4922 L
--7874.4961 8554.4922 L
--7874.4961 8554.7109 -7874.3975 8554.916 -7874.2295 8555.1104 c
--7872.9287 8556.6211 -7866.9199 8557.4316 -7861.2202 8557.4316 c
--7855.5166 8557.4316 -7849.5088 8556.6211 -7848.209 8555.1104 c
--7848.041 8554.916 -7847.9424 8554.7109 -7847.9424 8554.4922 C
--7848.209 8554.4922 L
--7848.3921 8554.4922 L
--7848.3921 8555.6689 -7853.6602 8556.9805 -7861.2202 8556.9805 c
-f
--7861.2202 8558.3457 m
--7868.7783 8558.3457 -7874.0454 8557.0342 -7874.0454 8555.8574 C
--7874.2295 8555.8574 L
--7874.4961 8555.8574 L
--7874.4961 8556.0752 -7874.3975 8556.2803 -7874.2295 8556.4746 c
--7872.9287 8557.9863 -7866.9199 8558.7959 -7861.2202 8558.7959 c
--7855.5166 8558.7959 -7849.5088 8557.9863 -7848.209 8556.4746 c
--7848.041 8556.2803 -7847.9424 8556.0752 -7847.9424 8555.8574 C
--7848.209 8555.8574 L
--7848.3921 8555.8574 L
--7848.3921 8557.0342 -7853.6602 8558.3457 -7861.2202 8558.3457 c
-f
--7861.2202 8559.7109 m
--7868.7783 8559.7109 -7874.0454 8558.3994 -7874.0454 8557.2227 C
--7874.2295 8557.2227 L
--7874.4961 8557.2227 L
--7874.4961 8557.4395 -7874.3975 8557.6455 -7874.2295 8557.8398 c
--7872.9287 8559.3516 -7866.9199 8560.1611 -7861.2202 8560.1611 c
--7855.5166 8560.1611 -7849.5088 8559.3516 -7848.209 8557.8398 c
--7848.041 8557.6455 -7847.9424 8557.4395 -7847.9424 8557.2227 C
--7848.209 8557.2227 L
--7848.3921 8557.2227 L
--7848.3921 8558.3994 -7853.6602 8559.7109 -7861.2202 8559.7109 c
-f
--7861.2202 8561.0762 m
--7868.7783 8561.0762 -7874.0454 8559.7646 -7874.0454 8558.5879 C
--7874.2295 8558.5879 L
--7874.4961 8558.5879 L
--7874.4961 8558.8057 -7874.3975 8559.0107 -7874.2295 8559.2051 c
--7872.9287 8560.7168 -7866.9199 8561.5264 -7861.2202 8561.5264 c
--7855.5166 8561.5264 -7849.5088 8560.7168 -7848.209 8559.2051 c
--7848.041 8559.0107 -7847.9424 8558.8057 -7847.9424 8558.5879 C
--7848.209 8558.5879 L
--7848.3921 8558.5879 L
--7848.3921 8559.7646 -7853.6602 8561.0762 -7861.2202 8561.0762 c
-f
--7861.2202 8562.4414 m
--7868.7783 8562.4414 -7874.0454 8561.1299 -7874.0454 8559.9531 C
--7874.2295 8559.9531 L
--7874.4961 8559.9531 L
--7874.4961 8560.1709 -7874.3975 8560.376 -7874.2295 8560.5703 c
--7872.9287 8562.082 -7866.9199 8562.8906 -7861.2202 8562.8906 c
--7855.5166 8562.8906 -7849.5088 8562.082 -7848.209 8560.5703 c
--7848.041 8560.376 -7847.9424 8560.1709 -7847.9424 8559.9531 C
--7848.209 8559.9531 L
--7848.3921 8559.9531 L
--7848.3921 8561.1299 -7853.6602 8562.4414 -7861.2202 8562.4414 c
-f
--7861.2202 8563.8066 m
--7868.7783 8563.8066 -7874.0454 8562.4941 -7874.0454 8561.3184 C
--7874.2295 8561.3184 L
--7874.4961 8561.3184 L
--7874.4961 8561.5352 -7874.3975 8561.7412 -7874.2295 8561.9355 c
--7872.9287 8563.4473 -7866.9199 8564.2559 -7861.2202 8564.2559 c
--7855.5166 8564.2559 -7849.5088 8563.4473 -7848.209 8561.9355 c
--7848.041 8561.7412 -7847.9424 8561.5352 -7847.9424 8561.3184 C
--7848.209 8561.3184 L
--7848.3921 8561.3184 L
--7848.3921 8562.4941 -7853.6602 8563.8066 -7861.2202 8563.8066 c
-f
--7861.2202 8565.1719 m
--7868.7783 8565.1719 -7874.0454 8563.8594 -7874.0454 8562.6826 C
--7874.2295 8562.6826 L
--7874.4961 8562.6826 L
--7874.4961 8562.9004 -7874.3975 8563.1055 -7874.2295 8563.3008 c
--7872.9287 8564.8115 -7866.9199 8565.6211 -7861.2202 8565.6211 c
--7855.5166 8565.6211 -7849.5088 8564.8115 -7848.209 8563.3008 c
--7848.041 8563.1055 -7847.9424 8562.9004 -7847.9424 8562.6826 C
--7848.209 8562.6826 L
--7848.3921 8562.6826 L
--7848.3921 8563.8594 -7853.6602 8565.1719 -7861.2202 8565.1719 c
-f
--7861.2202 8566.5371 m
--7868.7783 8566.5371 -7874.0454 8565.2246 -7874.0454 8564.0479 C
--7874.2295 8564.0479 L
--7874.4961 8564.0479 L
--7874.4961 8564.2656 -7874.3975 8564.4707 -7874.2295 8564.666 c
--7872.9287 8566.1768 -7866.9199 8566.9863 -7861.2202 8566.9863 c
--7855.5166 8566.9863 -7849.5088 8566.1768 -7848.209 8564.666 c
--7848.041 8564.4707 -7847.9424 8564.2656 -7847.9424 8564.0479 C
--7848.209 8564.0479 L
--7848.3921 8564.0479 L
--7848.3921 8565.2246 -7853.6602 8566.5371 -7861.2202 8566.5371 c
-f
--7861.2202 8567.9023 m
--7868.7783 8567.9023 -7874.0454 8566.5898 -7874.0454 8565.4131 C
--7874.2295 8565.4131 L
--7874.4961 8565.4131 L
--7874.4961 8565.6309 -7874.3975 8565.8359 -7874.2295 8566.0313 c
--7872.9287 8567.543 -7866.9199 8568.3516 -7861.2202 8568.3516 c
--7855.5166 8568.3516 -7849.5088 8567.543 -7848.209 8566.0313 c
--7848.041 8565.8359 -7847.9424 8565.6309 -7847.9424 8565.4131 C
--7848.209 8565.4131 L
--7848.3921 8565.4131 L
--7848.3921 8566.5898 -7853.6602 8567.9023 -7861.2202 8567.9023 c
-f
--7861.2202 8569.2666 m
--7868.7783 8569.2666 -7874.0454 8567.9551 -7874.0454 8566.7783 C
--7874.2295 8566.7783 L
--7874.4961 8566.7783 L
--7874.4961 8566.9961 -7874.3975 8567.2012 -7874.2295 8567.3965 c
--7872.9287 8568.9072 -7866.9199 8569.7168 -7861.2202 8569.7168 c
--7855.5166 8569.7168 -7849.5088 8568.9072 -7848.209 8567.3965 c
--7848.041 8567.2012 -7847.9424 8566.9961 -7847.9424 8566.7783 C
--7848.209 8566.7783 L
--7848.3921 8566.7783 L
--7848.3921 8567.9551 -7853.6602 8569.2666 -7861.2202 8569.2666 c
-f
--7861.2202 8570.6318 m
--7868.7783 8570.6318 -7874.0454 8569.3203 -7874.0454 8568.1426 C
--7874.2295 8568.1426 L
--7874.4961 8568.1426 L
--7874.4961 8568.3613 -7874.3975 8568.5664 -7874.2295 8568.7607 c
--7872.9287 8570.2715 -7866.9199 8571.082 -7861.2202 8571.082 c
--7855.5166 8571.082 -7849.5088 8570.2715 -7848.209 8568.7607 c
--7848.041 8568.5664 -7847.9424 8568.3613 -7847.9424 8568.1426 C
--7848.209 8568.1426 L
--7848.3921 8568.1426 L
--7848.3921 8569.3203 -7853.6602 8570.6318 -7861.2202 8570.6318 c
-f
--7861.2202 8571.998 m
--7868.7783 8571.998 -7874.0454 8570.6855 -7874.0454 8569.5078 C
--7874.2295 8569.5078 L
--7874.4961 8569.5078 L
--7874.4961 8569.7266 -7874.3975 8569.9316 -7874.2295 8570.127 c
--7872.9287 8571.6377 -7866.9199 8572.4473 -7861.2202 8572.4473 c
--7855.5166 8572.4473 -7849.5088 8571.6377 -7848.209 8570.127 c
--7848.041 8569.9316 -7847.9424 8569.7266 -7847.9424 8569.5078 C
--7848.209 8569.5078 L
--7848.3921 8569.5078 L
--7848.3921 8570.6855 -7853.6602 8571.998 -7861.2202 8571.998 c
-f
--7861.2202 8573.3623 m
--7868.7783 8573.3623 -7874.0454 8572.0508 -7874.0454 8570.873 C
--7874.2295 8570.873 L
--7874.4961 8570.873 L
--7874.4961 8571.0391 -7874.4282 8571.1953 -7874.3286 8571.3486 c
--7874.2974 8571.3965 -7874.2695 8571.4453 -7874.2295 8571.4912 c
--7872.9287 8573.002 -7866.9199 8573.8125 -7861.2202 8573.8125 c
--7855.5166 8573.8125 -7849.5088 8573.002 -7848.209 8571.4912 c
--7848.1689 8571.4453 -7848.1392 8571.3965 -7848.1104 8571.3486 c
--7848.0103 8571.1953 -7847.9424 8571.0391 -7847.9424 8570.873 C
--7848.209 8570.873 L
--7848.3921 8570.873 L
--7848.3921 8572.0508 -7853.6602 8573.3623 -7861.2202 8573.3623 c
-f
--7861.2202 8574.7266 m
--7868.7783 8574.7266 -7874.0454 8573.415 -7874.0454 8572.2383 C
--7874.2295 8572.2383 L
--7874.4961 8572.2383 L
--7874.4961 8572.4561 -7874.3975 8572.6621 -7874.2295 8572.8555 c
--7872.9287 8574.3672 -7866.9199 8575.1768 -7861.2202 8575.1768 c
--7855.5166 8575.1768 -7849.5088 8574.3672 -7848.209 8572.8555 c
--7848.041 8572.6621 -7847.9424 8572.4561 -7847.9424 8572.2383 C
--7848.209 8572.2383 L
--7848.3921 8572.2383 L
--7848.3921 8573.415 -7853.6602 8574.7266 -7861.2202 8574.7266 c
-f
-0.8 g
--7839.0342 8530.2168 m
--7839.3311 8530.4834 -7839.7271 8530.7402 -7840.229 8530.9863 c
--7840.231 8530.9883 -7840.2334 8530.9893 -7840.2358 8530.9902 c
--7840.5225 8531.1309 -7840.8394 8531.2676 -7841.187 8531.4004 c
--7841.187 8531.4004 l
--7841.8857 8531.668 -7842.7026 8531.9189 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
--7845.501 8532.623 -7847.7583 8533.0117 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
--7851.6626 8533.4531 -7852.9834 8533.5703 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
--7855.1743 8533.7119 -7855.8232 8533.7461 -7856.4824 8533.7754 c
--7856.5313 8533.7773 -7856.5791 8533.7813 -7856.6279 8533.7832 c
--7856.6758 8533.7852 -7856.7246 8533.7861 -7856.7729 8533.7881 c
--7857.4561 8533.8164 -7858.1514 8533.8379 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
--7859.6768 8533.8711 -7860.4424 8533.8789 -7861.2202 8533.8789 c
--7861.9951 8533.8789 -7862.7607 8533.8711 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
--7864.2871 8533.8379 -7864.9814 8533.8164 -7865.667 8533.7881 c
--7865.7134 8533.7861 -7865.7642 8533.7852 -7865.8096 8533.7832 c
--7865.8608 8533.7813 -7865.9058 8533.7773 -7865.9561 8533.7754 c
--7866.6162 8533.7461 -7867.2666 8533.7119 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
--7869.4526 8533.5703 -7870.7783 8533.4531 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
--7874.6768 8533.0117 -7876.9385 8532.623 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
--7880.1934 8531.8027 -7881.3408 8531.4121 -7882.2026 8530.9902 c
--7882.2041 8530.9893 -7882.208 8530.9883 -7882.21 8530.9863 c
--7882.4639 8530.8613 -7882.6904 8530.7324 -7882.8936 8530.6016 c
--7883.3799 8530.29 -7883.7178 8529.9639 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 C
--7884 8535.1855 L
--7884 8535.5137 -7883.8408 8535.832 -7883.5361 8536.1406 c
--7883.2334 8536.4492 -7882.7866 8536.7461 -7882.21 8537.0303 c
--7881.6328 8537.3125 -7880.9287 8537.583 -7880.1089 8537.834 c
--7879.29 8538.0859 -7878.3584 8538.3203 -7877.3271 8538.5352 c
--7876.377 8538.7324 -7875.335 8538.9121 -7874.2295 8539.0713 c
--7874.1362 8539.085 -7874.0498 8539.1016 -7873.9561 8539.1143 c
--7872.7432 8539.2852 -7871.4497 8539.4307 -7870.0854 8539.5498 c
--7868.7231 8539.6699 -7867.293 8539.7637 -7865.8096 8539.8262 c
--7864.3271 8539.8887 -7862.792 8539.9229 -7861.2202 8539.9229 c
--7859.6465 8539.9229 -7858.1104 8539.8887 -7856.6279 8539.8262 c
--7855.145 8539.7637 -7853.7134 8539.6699 -7852.3521 8539.5498 c
--7850.9897 8539.4307 -7849.6934 8539.2852 -7848.4814 8539.1143 c
--7848.3882 8539.1016 -7848.3018 8539.085 -7848.209 8539.0723 c
--7847.105 8538.9121 -7846.0615 8538.7324 -7845.1104 8538.5352 c
--7844.0801 8538.3203 -7843.147 8538.0859 -7842.3286 8537.834 c
--7841.5103 8537.583 -7840.8042 8537.3125 -7840.229 8537.0303 c
--7839.6514 8536.7461 -7839.2041 8536.4492 -7838.9009 8536.1406 c
--7838.5967 8535.832 -7838.4385 8535.5137 -7838.4385 8535.1855 C
--7838.4385 8529.1426 L
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.7881 8529.9834 -7838.9038 8530.1016 -7839.0342 8530.2168 c
-f
-0.5 g
--7845.9463 8525.6279 m
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 C
--7877.5342 8525.293 -7884 8527.0605 -7884 8529.1426 c
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.7178 8529.9639 -7883.3799 8530.29 -7882.8936 8530.6016 c
--7882.687 8530.7344 -7882.46 8530.8633 -7882.2026 8530.9902 c
--7881.3408 8531.4121 -7880.1934 8531.8027 -7878.811 8532.1523 c
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7876.9385 8532.623 -7874.6768 8533.0117 -7872.1201 8533.3027 c
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7870.7783 8533.4531 -7869.4526 8533.5703 -7868.0718 8533.6602 c
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.2666 8533.7119 -7866.6162 8533.7461 -7865.9561 8533.7754 c
--7865.8594 8533.7793 -7865.7642 8533.7842 -7865.667 8533.7881 c
--7864.9814 8533.8164 -7864.2871 8533.8379 -7863.582 8533.8535 c
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7862.7607 8533.8711 -7861.9951 8533.8789 -7861.2202 8533.8789 c
--7860.4424 8533.8789 -7859.6768 8533.8711 -7858.9209 8533.8545 c
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.1514 8533.8379 -7857.4561 8533.8164 -7856.7729 8533.7881 c
--7856.6758 8533.7842 -7856.5791 8533.7793 -7856.4824 8533.7754 c
--7855.8232 8533.7461 -7855.1743 8533.7119 -7854.5366 8533.6719 c
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7852.9834 8533.5703 -7851.6626 8533.4531 -7850.4111 8533.3125 c
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7847.7583 8533.0117 -7845.501 8532.623 -7843.6582 8532.1602 c
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7842.7026 8531.9189 -7841.8857 8531.668 -7841.187 8531.4004 C
--7841.187 8531.4004 L
--7840.8394 8531.2676 -7840.5225 8531.1309 -7840.2358 8530.9902 c
--7839.731 8530.7432 -7839.332 8530.4844 -7839.0342 8530.2168 c
--7838.9038 8530.1016 -7838.7881 8529.9834 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
--7838.4385 8527.748 -7841.3359 8526.4951 -7845.9463 8525.6279 C
-f
-*u
-1 g
-1 D
--7867.7471 8524.0996 m
--7866.8584 8522.3203 -7866.5679 8520.6797 -7866.5679 8519.0811 c
--7866.5679 8517.6328 -7866.8057 8516.2178 -7867.0498 8514.7646 c
--7867.2959 8513.2949 -7867.5498 8511.7852 -7867.5498 8510.1855 c
--7867.5498 8509.792 -7867.5352 8509.3926 -7867.5 8508.9863 c
--7867.0518 8503.7461 -7861.4072 8501.1475 -7861.3506 8501.1221 C
--7840.5649 8501.1396 -7839.0386 8501.1406 V
--7840.1807 8501.8877 -7842.5088 8503.7266 -7844.8066 8507.5039 c
--7845.8433 8509.2051 -7846.1567 8511.1133 -7846.1567 8513.041 c
--7846.1567 8514.5996 -7845.9512 8516.1699 -7845.7578 8517.6523 c
--7845.5791 8519.0303 -7845.4038 8520.3633 -7845.4038 8521.5723 c
--7845.4038 8522.4287 -7845.4912 8523.2236 -7845.7256 8523.9277 c
--7846.9727 8527.6641 -7849.792 8529.6445 -7850.0713 8529.832 C
--7850.2046 8529.832 -7870.5674 8529.832 -7872.3569 8529.832 C
--7871.3154 8529.1973 -7869.5391 8527.6836 -7867.7471 8524.0996 c
-f
-0 D
--7850.8975 8526.2422 m
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
-f
--7849.1025 8512.1074 m
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
-f
--7863.4609 8517.7168 m
--7863.4609 8518.166 L
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
-f
--7863.6855 8515.9219 m
--7850.001 8515.9219 L
--7850.001 8515.4727 L
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
-f
--7863.4609 8521.3076 m
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
-f
--7861.2178 8503.583 m
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
-f
--7862.7881 8505.3779 m
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
-f
--7863.9087 8507.8457 m
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
-f
--7864.3584 8510.3135 m
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
-f
--7864.3584 8524 m
--7849.7754 8524 L
--7849.7754 8523.5488 L
--7864.3584 8523.5488 L
--7864.3584 8524 L
-f
-*U
-*u
-0 g
-1 D
--7868.5498 8524.6582 m
--7868.417 8524.4141 -7868.2832 8524.166 -7868.1494 8523.8984 c
--7866.519 8520.6387 -7866.9937 8517.8213 -7867.4946 8514.8389 c
--7867.8057 8512.9785 -7868.1294 8511.0557 -7867.9482 8508.9473 c
--7867.4766 8503.4404 -7861.5938 8500.7383 -7861.4424 8500.6914 C
--7838.2168 8500.6914 L
--7838.1201 8501.1191 L
--7838.1514 8501.1348 -7841.3599 8502.7051 -7844.4238 8507.7373 c
--7846.2144 8510.6797 -7845.7559 8514.1953 -7845.311 8517.5947 c
--7844.9966 8520.002 -7844.7007 8522.2754 -7845.2993 8524.0703 c
--7845.4858 8524.6289 -7845.707 8525.1465 -7845.9463 8525.6279 c
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 c
-f
-0 D
--7867.7471 8524.0996 m
--7869.5391 8527.6836 -7871.3154 8529.1973 -7872.3569 8529.832 C
--7870.5674 8529.832 -7850.2046 8529.832 -7850.0713 8529.832 C
--7849.792 8529.6445 -7846.9727 8527.6641 -7845.7256 8523.9277 c
--7845.4912 8523.2236 -7845.4038 8522.4287 -7845.4038 8521.5723 c
--7845.4038 8520.3633 -7845.5791 8519.0303 -7845.7578 8517.6523 c
--7845.9512 8516.1699 -7846.1567 8514.5996 -7846.1567 8513.041 c
--7846.1567 8511.1133 -7845.8433 8509.2051 -7844.8066 8507.5039 c
--7842.5088 8503.7266 -7840.1807 8501.8877 -7839.0386 8501.1406 C
--7840.5649 8501.1396 -7861.3506 8501.1221 Y
--7861.4072 8501.1475 -7867.0518 8503.7461 -7867.5 8508.9863 c
--7867.5352 8509.3926 -7867.5498 8509.792 -7867.5498 8510.1855 c
--7867.5498 8511.7852 -7867.2959 8513.2949 -7867.0498 8514.7646 c
--7866.8057 8516.2178 -7866.5679 8517.6328 -7866.5679 8519.0811 c
--7866.5679 8520.6797 -7866.8584 8522.3203 -7867.7471 8524.0996 c
-f
-*U
--7845.7378 8503.1328 m
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
-f
--7850.4497 8504.9277 m
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
-f
--7848.2041 8507.3945 m
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
-f
--7848.6538 8509.8633 m
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
-f
--7863.9087 8512.5566 m
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
-f
--7850.001 8515.4727 m
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
--7850.001 8515.9219 L
--7850.001 8515.4727 L
-f
--7863.4609 8518.166 m
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
--7863.4609 8518.166 L
-f
--7848.6538 8520.8574 m
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
-f
--7849.7754 8523.5488 m
--7864.3584 8523.5488 L
--7864.3584 8524 L
--7849.7754 8524 L
--7849.7754 8523.5488 L
-f
--7865.9287 8526.6914 m
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
-f
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 9)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7840.7246 8585.25 L
--7840.7246 8555.5381 L
--7883.25 8555.5381 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7 g
--7872.457 8555.7881 m
--7868.6582 8555.7881 -7864.9199 8555.7881 v
--7861.1826 8555.7881 -7861.8242 8558.8838 y
--7845.9258 8558.8838 -7843.4502 8558.8838 v
--7840.9761 8558.8838 -7840.9761 8561.3594 y
--7840.9761 8578.542 l
--7876.541 8578.542 l
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
-f
-0 R
-0.9 G
-0.5 w
--7861.8242 8558.8838 m
--7845.9258 8558.8838 -7843.4502 8558.8838 v
-S
-0.5 G
--7862.8594 8556.2715 m
--7861.4634 8557.1426 -7861.8242 8558.8838 y
-S
-0.7 G
--7864.9199 8555.7881 m
--7863.9858 8555.7881 -7863.3247 8555.9814 -7862.8594 8556.2715 c
-S
-0.9 G
--7876.541 8578.542 m
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
--7868.6582 8555.7881 -7864.9199 8555.7881 v
-S
-0.25 G
--7840.9761 8561.3594 m
--7840.9761 8578.542 l
--7876.541 8578.542 l
-S
-0.5 G
--7842.019 8559.2715 m
--7840.9761 8559.9668 -7840.9761 8561.3594 y
-S
-0.7 G
--7843.4502 8558.8838 m
--7842.8306 8558.8838 -7842.3672 8559.0391 -7842.019 8559.2715 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7874.0718 8557.4023 m
--7870.2729 8557.4023 -7866.5342 8557.4023 v
--7862.7954 8557.4023 -7863.439 8560.498 y
--7847.541 8560.498 -7845.0649 8560.498 v
--7842.5903 8560.498 -7842.5903 8562.9727 y
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
-f
-0 R
-0.9 G
-0.5 w
--7863.439 8560.498 m
--7847.541 8560.498 -7845.0649 8560.498 v
-S
-0.5 G
--7864.4746 8557.8867 m
--7863.0767 8558.7578 -7863.439 8560.498 y
-S
-0.7 G
--7866.5342 8557.4023 m
--7865.6006 8557.4023 -7864.9409 8557.5957 -7864.4746 8557.8867 c
-S
-0.9 G
--7878.1558 8580.1563 m
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
--7870.2729 8557.4023 -7866.5342 8557.4023 v
-S
-0.25 G
--7842.5903 8562.9727 m
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
-S
-0.5 G
--7843.6338 8560.8848 m
--7842.5903 8561.5811 -7842.5903 8562.9727 y
-S
-0.7 G
--7845.0649 8560.498 m
--7844.4458 8560.498 -7843.981 8560.6533 -7843.6338 8560.8848 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7875.6846 8559.0176 m
--7871.8882 8559.0176 -7868.1489 8559.0176 v
--7864.4111 8559.0176 -7865.0527 8562.1123 y
--7849.1538 8562.1123 -7846.6802 8562.1123 v
--7844.2046 8562.1123 -7844.2046 8564.5879 y
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
-f
-0 R
-0.9 G
-0.5 w
--7865.0527 8562.1123 m
--7849.1538 8562.1123 -7846.6802 8562.1123 v
-S
-0.5 G
--7866.0898 8559.5 m
--7864.6929 8560.3711 -7865.0527 8562.1123 y
-S
-0.7 G
--7868.1489 8559.0176 m
--7867.2144 8559.0176 -7866.5542 8559.21 -7866.0898 8559.5 c
-S
-0.9 G
--7879.771 8581.7715 m
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
--7871.8882 8559.0176 -7868.1489 8559.0176 v
-S
-0.25 G
--7844.2046 8564.5879 m
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
-S
-0.5 G
--7845.249 8562.5 m
--7844.2046 8563.1953 -7844.2046 8564.5879 y
-S
-0.7 G
--7846.6802 8562.1123 m
--7846.061 8562.1123 -7845.5962 8562.2676 -7845.249 8562.5 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7877.2993 8560.6318 m
--7873.5034 8560.6318 -7869.7642 8560.6318 v
--7866.0254 8560.6318 -7866.667 8563.7275 y
--7850.769 8563.7275 -7848.2935 8563.7275 v
--7845.8193 8563.7275 -7845.8193 8566.2031 y
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
-f
-0 R
-0.9 G
-0.5 w
--7866.667 8563.7275 m
--7850.769 8563.7275 -7848.2935 8563.7275 v
-S
-0.5 G
--7867.7046 8561.1152 m
--7866.3071 8561.9863 -7866.667 8563.7275 y
-S
-0.7 G
--7869.7642 8560.6318 m
--7868.8286 8560.6318 -7868.1689 8560.8252 -7867.7046 8561.1152 c
-S
-0.9 G
--7881.3857 8583.3867 m
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
--7873.5034 8560.6318 -7869.7642 8560.6318 v
-S
-0.25 G
--7845.8193 8566.2031 m
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
-S
-0.5 G
--7846.8638 8564.1143 m
--7845.8193 8564.8105 -7845.8193 8566.2031 y
-S
-0.7 G
--7848.2935 8563.7275 m
--7847.6753 8563.7275 -7847.2114 8563.8828 -7846.8638 8564.1143 c
-S
-U
-u
-0 O
-0.8 g
-1 w
--7878.9146 8562.2461 m
--7875.1167 8562.2461 -7871.3794 8562.2461 v
--7867.6401 8562.2461 -7868.2817 8565.3418 y
--7852.3838 8565.3418 -7849.9087 8565.3418 v
--7847.4346 8565.3418 -7847.4346 8567.8174 y
--7847.4346 8585 l
--7883.001 8585 l
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
-f
-0 R
-0.9 G
-0.5 w
--7868.2817 8565.3418 m
--7852.3838 8565.3418 -7849.9087 8565.3418 v
-S
-0.5 G
--7869.3184 8562.7295 m
--7867.9214 8563.6006 -7868.2817 8565.3418 y
-S
-0.7 G
--7871.3794 8562.2461 m
--7870.4438 8562.2461 -7869.7842 8562.4395 -7869.3184 8562.7295 c
-S
-0.9 G
--7883.001 8585 m
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
--7875.1167 8562.2461 -7871.3794 8562.2461 v
-S
-0.25 G
--7847.4346 8567.8174 m
--7847.4346 8585 l
--7883.001 8585 l
-S
-0.5 G
--7848.4785 8565.7285 m
--7847.4346 8566.4238 -7847.4346 8567.8174 y
-S
-0.7 G
--7849.9087 8565.3418 m
--7849.29 8565.3418 -7848.8262 8565.4971 -7848.4785 8565.7285 c
-S
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 10)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7815.2593 8585.25 L
--7815.2593 8557.0195 L
--7883.25 8557.0195 L
--7883.25 8585.25 L
-n
-0 O
-0.8 g
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
--7817.0591 8570.4502 l
--7829.7202 8574.4063 l
--7835.7866 8570.4502 l
--7835.5234 8580.209 l
-f
-0 R
-0.9 G
-0.5 w
--7816.7871 8570.3242 m
--7829.7202 8574.4063 l
-S
-0.5 G
--7815.4785 8573.3516 m
--7817.0591 8570.4502 l
-S
-0.25 G
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
-S
-0.5 G
--7829.7202 8574.4063 m
--7835.7866 8570.4502 l
-S
-0 O
-0.8 g
-1 w
--7855.5679 8562.7998 m
--7843.437 8557.5254 l
--7840.0073 8561.7441 l
--7855.5679 8562.7998 l
-f
-1 Ap
-0.57 g
--7835.2598 8582.0547 m
--7881.6802 8582.0547 L
--7881.6802 8584.9551 L
--7835.2598 8584.9551 L
--7835.2598 8582.0547 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
--7843.437 8557.5254 m
--7840.0073 8561.7441 l
-S
-0.9 G
--7855.5679 8562.7998 m
--7842.875 8557.248 l
-S
-0 O
-0.8 g
-1 w
--7883.001 8560.7627 m
--7883.001 8582.0859 l
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
--7837.6338 8560.8223 l
--7883.001 8560.7627 l
-f
-0 R
-0.5 G
-0.5 w
--7883.001 8576.5166 m
--7834.2046 8576.5166 l
-S
--7880.0986 8564.1191 m
--7870.6025 8564.1191 l
-S
--7880.0986 8565.7676 m
--7870.6025 8565.7676 l
-S
--7880.0986 8567.415 m
--7870.6025 8567.415 l
-S
--7880.0986 8569.0635 m
--7870.6025 8569.0635 l
-S
--7880.0986 8570.7109 m
--7870.6025 8570.7109 l
-S
--7834.2046 8564.9121 m
--7837.6338 8560.8223 l
-S
-0.25 G
--7883.001 8582.0859 m
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
-S
-0.9 G
--7837.6338 8560.793 m
--7883.001 8560.793 l
--7883.001 8582.3555 l
-S
-0.25 G
--7835.2598 8582.0859 m
--7835.2598 8585 l
--7881.6714 8585 l
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 19)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7836.6338 8585.25 L
--7836.6338 8549.6348 L
--7883.25 8549.6348 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
--7836.9722 8585 m
--7836.9722 8582.9805 l
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
--7836.9722 8585 l
-b
-0.8748 G
-2 J 0 j
--7859.8857 8579.5479 m
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
-S
--7836.9722 8582.9805 m
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
--7876.3394 8580.7598 m
--7880.377 8582.9805 l
--7839.7993 8582.9805 l
--7843.2319 8580.7598 l
--7876.3394 8580.7598 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
--7871.125 8576.6523 m
--7868.8462 8576.6094 L
--7859.7446 8575.041 L
--7850.4634 8576.6094 L
--7848.6694 8576.6094 L
--7848.729 8578.4512 L
--7871.125 8578.4512 L
--7871.125 8576.6523 L
-f
-0 R
-0.25 G
-0.5 w
--7848.6978 8576.6523 m
--7848.7905 8578.4512 L
--7871.1567 8578.4512 L
-S
-0.9 G
--7850.498 8576.6523 m
--7848.6978 8576.6523 L
-S
-0.25 G
--7859.8042 8575.041 m
--7850.498 8576.6523 L
-S
-0.9 G
--7871.1567 8578.4512 m
--7871.1567 8576.6523 L
--7868.9033 8576.6523 L
--7859.8042 8575.041 L
-S
-U
-u
-0 O
-0.7 g
-1 w
--7873.3672 8573.5781 m
--7864.0703 8573.5313 L
--7859.7119 8571.8047 L
--7855.1343 8573.5313 L
--7846.4214 8573.5313 L
--7846.4927 8575.5557 L
--7873.3672 8575.5557 L
--7873.3672 8573.5781 L
-f
-0 R
-0.25 G
-0.5 w
--7846.4546 8573.5781 m
--7846.5649 8575.5557 L
--7873.4038 8575.5557 L
-S
-0.9 G
--7855.1758 8573.5781 m
--7846.4546 8573.5781 L
-S
-0.25 G
--7859.7817 8571.8047 m
--7855.1758 8573.5781 L
-S
-0.9 G
--7873.4038 8575.5557 m
--7873.4038 8573.5781 L
--7864.1406 8573.5781 L
--7859.7817 8571.8047 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
--7874.8838 8572.75 m
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
--7844.9922 8551.0508 L
--7844.9922 8572.4648 L
--7845.8022 8573.6045 L
--7874.0366 8573.6045 l
--7874.8838 8572.75 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
--7874.0366 8573.6045 m
--7874.8838 8572.75 L
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
--7848.0239 8570.7168 m
--7848.0054 8552.7617 L
--7871.8994 8552.7617 L
--7871.9014 8570.7148 L
--7848.0239 8570.7168 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
--7843.333 8579.5479 m
--7859.8857 8579.5479 L
--7876.439 8579.5479 L
--7883.001 8582.9805 L
--7883.001 8585 L
--7836.9722 8585 L
--7836.9722 8582.9805 L
--7843.333 8579.5479 L
-s
--7874.0366 8573.6045 m
--7873.4038 8573.6045 L
--7873.4038 8575.5557 L
--7873.3672 8575.5449 L
--7873.3672 8575.5527 L
--7873.4038 8575.5557 L
--7873.3672 8575.5557 L
--7862.731 8575.5557 L
--7868.8462 8576.6094 L
--7871.125 8576.6523 L
--7871.1567 8576.6523 L
--7871.1567 8578.4512 L
--7871.125 8578.4414 L
--7871.125 8578.4482 L
--7871.1567 8578.4512 L
--7871.125 8578.4512 L
--7848.7905 8578.4512 L
--7848.729 8578.4512 L
--7848.6694 8576.6094 L
--7850.4634 8576.6094 L
--7856.7002 8575.5557 L
--7846.5649 8575.5557 L
--7846.4927 8575.5557 L
--7846.4233 8573.6045 L
--7845.8022 8573.6045 L
--7844.9922 8572.4648 L
--7844.9922 8551.0508 L
--7845.9302 8549.9121 L
--7873.9082 8549.8848 L
--7874.8911 8550.8809 L
--7874.8838 8572.75 L
--7874.0366 8573.6045 L
-s
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 22)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7876.001 8578.6211 m
--7827.9502 8578.6211 L
--7827.9502 8497.4414 L
--7876.001 8497.4414 L
--7876.001 8578.6211 L
-n
-u
-u
-u
-0 O
-0.7 g
--7869.2202 8497.6914 m
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
-f
-0 R
-0.25 G
-0.5 w
--7834.0034 8498.543 m
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
-S
-0.9 G
--7870.4399 8562.8496 m
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
-S
-1 Ap
-0 O
-0.8 g
-0.25 G
-2 J 2 M
--7838.79 8507.9629 m
--7865.4775 8507.9629 L
--7865.4775 8560.2607 L
--7838.79 8560.2607 L
--7838.79 8507.9629 L
-b
-u
--7838.79 8523.8691 m
--7865.4736 8523.8691 L
--7865.4736 8520.0957 L
--7838.79 8520.0957 L
--7838.79 8523.8691 L
-b
--7838.79 8520.0615 m
--7865.4736 8520.0615 L
--7865.4736 8516.2871 L
--7838.79 8516.2871 L
--7838.79 8520.0615 L
-b
-U
-0 Ap
-0.25 g
-0 J 1 w 4 M
--7842.3818 8509.4375 m
--7843.2319 8509.4375 L
--7862.2729 8509.4375 L
--7862.2729 8510.3271 L
--7855.8018 8510.3271 L
--7855.8018 8510.9629 L
--7848.8486 8510.9629 L
--7848.8486 8510.3271 L
--7842.3818 8510.3271 L
--7842.3818 8509.4375 L
-f
-1 Ap
-0.6 g
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7842.8271 8511.3691 m
--7846.8706 8511.3691 L
--7846.8706 8510.7324 L
--7842.8271 8510.7324 L
--7842.8271 8511.3691 L
-b
-u
-0.8 g
--7840.8057 8514.5547 m
--7863.4463 8514.5547 L
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
--7840.8057 8514.5547 L
-b
--7863.4463 8514.5547 m
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
-S
-0.9 G
--7840.8057 8513.0664 m
--7840.8057 8514.5547 L
--7863.4463 8514.5547 L
-S
-U
-0 O
-0.7 g
-0 J 1 w 4 M
--7841.1318 8515.6172 m
--7845.1743 8515.6172 L
--7845.1743 8514.9805 L
--7841.1318 8514.9805 L
--7841.1318 8515.6172 L
-f
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7841.1318 8514.9805 m
--7841.1318 8515.6172 L
--7845.1743 8515.6172 L
-S
-u
-u
--7861.5903 8500.6797 m
--7861.5903 8503.7402 L
--7866.9287 8503.7402 L
-S
--7861.5903 8503.7393 m
--7861.5903 8506.7578 L
--7866.9287 8506.7578 L
-S
-U
-u
-0.9 G
--7866.9287 8503.7129 m
--7866.9287 8500.6934 L
--7861.5903 8500.6934 L
-S
--7866.9287 8506.7578 m
--7866.9287 8503.7393 L
--7861.5903 8503.7393 L
-S
-U
-U
-u
-u
-0.25 G
--7837.7178 8500.6797 m
--7837.7178 8503.7402 L
--7843.0542 8503.7402 L
-S
--7837.7178 8503.7393 m
--7837.7178 8506.7578 L
--7843.0542 8506.7578 L
-S
-U
-u
-0.9 G
--7843.0542 8503.7129 m
--7843.0542 8500.6934 L
--7837.7178 8500.6934 L
-S
--7843.0542 8506.7578 m
--7843.0542 8503.7393 L
--7837.7178 8503.7393 L
-S
-U
-U
-0 O
-0.8 g
-0 J 1 w 4 M
--7832.144 8564.9395 m
--7872.3799 8564.9395 L
--7870.6865 8562.6406 L
--7833.8359 8562.6406 L
--7832.144 8564.9395 L
-f
-0 R
-0.9 G
-0.5 w
--7870.4072 8562.4785 m
--7872.3799 8564.9395 L
--7869.9111 8564.9395 l
-S
-0.25 G
--7834.083 8562.3672 m
--7832.144 8564.9395 L
--7872.0337 8564.9395 l
-S
-U
-0 Ap
-0.15 G
--7833.8359 8562.6406 m
--7833.874 8562.6406 L
--7834.0034 8562.4727 L
--7834.0034 8498.543 L
--7834.0791 8498.2148 L
--7834.3569 8497.9102 L
--7834.7935 8497.7441 L
--7835.2578 8497.6914 L
--7869.2202 8497.6914 L
--7869.6855 8497.7441 L
--7870.0361 8497.9102 L
--7870.3618 8498.2148 L
--7870.4399 8498.543 L
--7870.4399 8562.5195 L
--7870.5386 8562.6406 L
--7870.6865 8562.6406 L
--7872.3799 8564.9395 L
--7872.0337 8564.9395 L
--7869.9111 8564.9395 L
--7832.144 8564.9395 L
--7833.8359 8562.6406 L
-s
--7870.4399 8562.5195 m
--7833.8359 8562.5195 l
-S
-U
-U
-0 To
-1 0 0 -1 -7851.9761 8576.5957 0 Tp
-0 Tv
-TP
--24.0247 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-36 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(DNS Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 23)
-0 A
-u
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7878.9351 8565.3359 m
--7830.6465 8565.3359 L
--7830.6465 8506.8223 L
--7878.9351 8506.8223 L
--7878.9351 8565.3359 L
-n
-0 O
-0.64 g
--7830.6465 8513.9863 m
--7832.5977 8506.8223 L
--7849.127 8506.8223 L
--7851.001 8513.9863 L
--7858.666 8513.9863 L
--7860.7529 8506.8223 L
--7877.0625 8506.8223 L
--7878.9351 8513.9863 L
--7878.9351 8514.0137 L
--7830.6465 8514.0137 L
--7830.6465 8513.9863 L
-f
-0.92 g
--7878.9351 8514.0137 m
--7878.9351 8565.3164 L
--7870.5898 8565.3164 L
--7870.5898 8561.6152 L
--7870.5386 8561.6152 L
--7870.5386 8514.0137 L
--7878.9351 8514.0137 L
-f
--7830.6465 8514.0137 m
--7838.7871 8514.0137 L
--7838.7871 8565.3359 L
--7830.6465 8565.3359 L
--7830.6465 8514.0137 L
-f
-0.8158 g
--7870.5386 8514.0137 m
--7870.5386 8561.6152 L
--7838.8442 8561.6152 L
--7838.8442 8565.3359 L
--7838.7871 8565.3359 L
--7838.7871 8514.0137 L
--7870.5386 8514.0137 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7858.666 8513.9863 m
--7858.6582 8561.6152 L
-S
--7857.8145 8513.9863 m
--7857.8066 8561.6152 L
-S
--7856.9634 8513.9863 m
--7856.9551 8561.6152 L
-S
--7856.1113 8513.9863 m
--7856.103 8561.6152 L
-S
--7855.2598 8513.9863 m
--7855.252 8561.6152 L
-S
--7854.4082 8513.9863 m
--7854.3999 8561.6152 L
-S
--7853.5566 8513.9863 m
--7853.5488 8561.6152 L
-S
--7853.5718 8513.9863 m
--7853.563 8561.6152 L
-S
--7852.7202 8513.9863 m
--7852.7114 8561.6152 L
-S
--7851.8682 8513.9863 m
--7851.8594 8561.6152 L
-S
--7851.0161 8513.9863 m
--7851.0078 8561.6152 L
-S
-U
-0 To
-1 0 0 -1 -7854.791 8576.5957 0 Tp
-0 Tv
-TP
--21.2094 0 Td
-0 Tr
-0 O
-0 g
-1 w 4 M
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-53.0468 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 4 Tl
-0 Tc
-0 Tw
-(Mainfr) Tx 1 10 Tk
-(ame) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 43)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.749 8585.8232 m
--7870.9414 8585.8232 L
--7870.9414 8557.1563 L
--7883.749 8557.1563 L
--7883.749 8585.8232 L
-n
-0 O
-0.3 g
--7870.9414 8574.5498 m
--7875.1558 8563.2031 L
--7875.3862 8562.5801 -7876.0439 8562.2598 -7876.6719 8562.4141 C
--7876.8018 8562.3506 -7876.9473 8562.3359 -7877.0889 8562.3164 C
--7875.771 8562.1797 -7874.7358 8561.1084 -7874.7358 8559.7627 c
--7874.7358 8558.3184 -7875.9009 8557.1563 -7877.3447 8557.1563 c
--7878.7842 8557.1563 -7879.9482 8558.3184 -7879.9482 8559.7627 c
--7879.9482 8561.1084 -7878.916 8562.1797 -7877.6016 8562.3164 C
--7877.7441 8562.3359 -7877.8809 8562.3506 -7878.0186 8562.4141 C
--7878.645 8562.2598 -7879.3018 8562.5801 -7879.5313 8563.2031 C
--7883.749 8574.5498 L
--7884 8575.2168 -7883.6543 8575.9688 -7882.9834 8576.2188 c
--7882.313 8576.4658 -7881.5664 8576.123 -7881.3193 8575.4531 C
--7880.1289 8572.2441 L
--7880.0054 8572.6758 -7879.876 8573.0762 -7879.7119 8573.4385 C
--7882.4902 8584.2402 L
--7882.668 8584.9375 -7882.252 8585.6416 -7881.5586 8585.8232 c
--7880.8657 8586 -7880.1626 8585.583 -7879.9766 8584.8867 C
--7877.5918 8575.5967 L
--7877.5049 8575.6084 -7877.4282 8575.6494 -7877.3447 8575.6494 c
--7877.2617 8575.6494 -7877.1855 8575.6084 -7877.0991 8575.5967 C
--7874.7129 8584.8867 L
--7874.5303 8585.583 -7873.8242 8586 -7873.1318 8585.8232 c
--7872.4385 8585.6416 -7872.0215 8584.9375 -7872.1978 8584.2402 C
--7874.9766 8573.4385 L
--7874.8154 8573.0762 -7874.6846 8572.6758 -7874.5625 8572.2441 C
--7873.3711 8575.4531 L
--7873.125 8576.123 -7872.3799 8576.4658 -7871.707 8576.2188 c
--7871.0391 8575.9688 -7870.6914 8575.2168 -7870.9414 8574.5498 C
-f
-U
-%AI8_EndBrushPattern
-%AI5_End_NonPrinting--
-%AI5_BeginPalette
-0 0 Pb
-1 1 1 1 ([Registration]) 0 Xs
-([Registration]) Pc
-0 0 0 0.15 (15%) 0 0 Xk
-(15%) Pc
-0 0 0 0.3 (30%) 0 0 Xk
-(30%) Pc
-0 0 0 0.5 (50%) 0 0 Xk
-(50%) Pc
-0 0 0 0.75 (75%) 0 0 Xk
-(75%) Pc
-(horizontal rules) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(horizontal rules) Pc
-(bi-direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(bi-direction diagonals) Pc
-(one direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(one direction diagonals) Pc
-(white dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(white dots) Pc
-(black dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(black dots) Pc
-PB
-%AI5_EndPalette
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client 1)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Folders)
-(1 /New Pattern 9/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe)
-(1 /New Pattern 23/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(person)
-(1 /New Pattern 43/ 0 0.701961 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Print spooler)
-(1 /New Pattern 2/ 0 0.854902 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Printer)
-(1 /New Pattern 10/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Scatter Brush 1)
-(1 /New Pattern 22/ 0 0.2 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Brush Manager Order)
-(Adobe Brush Manager Order)
-( Adobe Scatter Brush Tool/ Scatter Brush 1/ Adobe Scatter Brush Tool/ ) -
-(Mainframe/ Adobe Scatter Brush Tool/ Client/ Adobe Scatter Brush Tool/) -
-( person/ Adobe Scatter Brush Tool/ Print spooler/ Adobe Scatter Brush ) -
-(Tool/ Folders/ Adobe Scatter Brush Tool/ Printer/ Adobe Scatter Brush ) -
-(Tool/ Client 1/) .
-%AI8_EndPluginObject
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_PluginGroupInfo
-(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends)
-%AI8_PluginGroupInfo
-(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool)
-%AI5_End_NonPrinting--
-%%EndSetup
-%AI5_BeginLayer
-1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
-(Layer 1) Ln
-0 A
-0 R
-0 G
-800 Ar
-0 J 0 j 0.5 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-327.124 315.8066 m
-339.3242 318.5615 345.0566 314.5781 355.2559 313.3779 c
-360.9092 312.7119 380.5332 312.2432 384.124 314.8066 c
-S
-1 Ap
-0 O
-0.95 g
-1 XR
-501.71 169.1504 m
-153.71 169.1504 L
-153.71 589.1504 L
-501.71 589.1504 L
-501.71 169.1504 L
-(b) *
-u
-0 Ap
-0.64 g
-1 w
-0 XR
-344.8242 383.4502 m
-341.5918 390.4512 L
-314.2031 390.4512 L
-311.0977 383.4502 L
-298.3979 383.4502 L
-294.9399 390.4512 L
-267.9165 390.4512 L
-264.813 383.4502 L
-264.813 383.4258 L
-344.8242 383.4258 L
-344.8242 383.4502 L
-f
-0.92 g
-0 R
-0 G
-0.25 w
-264.813 383.4258 m
-264.813 294.8291 L
-278.6401 294.8291 L
-278.6401 298.4453 L
-278.7271 298.4453 L
-278.7271 383.4258 L
-264.813 383.4258 L
-b
-344.8242 383.4258 m
-331.3359 383.4258 L
-331.3359 294.8096 L
-344.8242 294.8096 L
-344.8242 383.4258 L
-b
-0.8158 g
-331.3359 383.4258 m
-278.7271 383.4258 L
-278.7271 298.4453 L
-331.2402 298.4453 L
-B
-0.67 G
-0.5 w 3.8635 M
-298.3979 383.4502 m
-298.4116 298.4453 L
-S
-299.8071 383.4502 m
-299.8208 298.4453 L
-S
-301.2202 383.4502 m
-301.2339 298.4453 L
-S
-302.6304 383.4502 m
-302.644 298.4453 L
-S
-304.0415 383.4502 m
-304.0542 298.4453 L
-S
-305.4536 383.4502 m
-305.4653 298.4453 L
-S
-306.8647 383.4502 m
-306.8755 298.4453 L
-S
-306.8394 383.4502 m
-306.853 298.4453 L
-S
-308.25 383.4502 m
-308.2656 298.4453 L
-S
-309.6602 383.4502 m
-309.6777 298.4453 L
-S
-311.0742 383.4502 m
-311.0879 298.4453 L
-S
-U
-0 G
-0.25 w 4 M
-331.2402 294.8096 m
-331.3359 294.8096 L
-344.8242 294.8096 L
-344.8242 383.4258 L
-344.8242 383.4502 L
-341.5918 390.4512 L
-314.2031 390.4512 L
-311.0977 383.4502 L
-298.3979 383.4502 L
-294.9399 390.4512 L
-267.9165 390.4512 L
-264.813 383.4502 L
-264.813 383.4258 L
-264.813 294.8291 L
-278.6401 294.8291 L
-278.6401 298.4453 L
-278.7271 298.4453 L
-331.2402 298.4453 L
-S
-0 To
-1 0 0 1 306.2915 395.3662 0 Tp
-0 Tv
-TP
--13.2744 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 236.4463 332.1426 0 Tp
-0 Tv
-TP
--14.7797 0 Td
-0 Tr
--4.5 Ts
-(P) Tx 1 40 Tk
-(ar) Tx 1 10 Tk
-(allel\r) Tx 1 0 Tk
-3.1148 -11 Td
-(Cab) Tx 1 20 Tk
-(le) Tx 1 0 Tk
-(\r) TX
-TO
-0 R
-0 G
-0.5 w
-184.8491 350.9229 m
-197.9233 350.9199 210.9907 351.3887 224.0674 351.2979 c
-227.6689 351.2725 249.1094 354.4385 250.6377 348.4697 c
-251.6982 344.3271 238.7969 344.8301 237.2236 340.9258 C
-241.8062 337.6826 254.5508 340.2188 259.3149 340.2549 c
-269.4844 340.3301 279.0869 337.2725 289.0425 336.8418 c
-S
-1 To
-1 0 0 1 277.1416 348.3008 0 Tp
-0 Tv
-1 Ap
-0 O
-0.88 g
-0.25 w
-334.2256 317.6982 m
-277.1416 317.6982 L
-277.1416 348.3008 L
-334.2256 348.3008 L
-334.2256 317.6982 L
-b
-TP
-6.7002 -8.25 Td
-0 Tr
-0 g
-1 w
-(Pr) Tx 1 -15 Tk
-(intser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er\r) Tx 1 0 Tk
-4.1519 -11 Td
-(Softw) Tx 1 15 Tk
-(are) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_0 Ap
-%_0 R
-%_0 G
-%_397.4795 315.1504 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-397.4795 315.1504 m
-N
-u
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
-420.4502 297.5928 m
-420.4502 299.6123 l
-414.0889 303.0449 l
-397.5361 303.0449 L
-380.9834 303.0449 l
-374.4209 299.6123 l
-374.4209 297.5928 l
-420.4502 297.5928 l
-b
-0.8748 G
-2 J 0 j
-397.5361 303.0449 m
-380.9834 303.0449 l
-374.4209 299.6123 l
-374.4209 297.5928 l
-S
-420.4502 299.6123 m
-414.0889 303.0449 l
-397.5361 303.0449 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-381.083 301.833 m
-377.0449 299.6123 l
-417.6221 299.6123 l
-414.1904 301.833 l
-381.083 301.833 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-386.2969 305.9404 m
-388.5752 305.9834 L
-397.6768 307.5518 L
-406.958 305.9834 L
-408.7529 305.9834 L
-408.6924 304.1416 L
-386.2969 304.1416 L
-386.2969 305.9404 L
-f
-0 R
-0.25 G
-0.5 w
-408.7236 305.9404 m
-408.6318 304.1416 L
-386.2646 304.1416 L
-S
-0.9 G
-406.9238 305.9404 m
-408.7236 305.9404 L
-S
-0.25 G
-397.6182 307.5518 m
-406.9238 305.9404 L
-S
-0.9 G
-386.2646 304.1416 m
-386.2646 305.9404 L
-388.5186 305.9404 L
-397.6182 307.5518 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-384.0547 309.0146 m
-393.3516 309.0615 L
-397.71 310.7881 L
-402.2881 309.0615 L
-411.001 309.0615 L
-410.9287 307.0371 L
-384.0547 307.0371 L
-384.0547 309.0146 L
-f
-0 R
-0.25 G
-0.5 w
-410.9678 309.0146 m
-410.8564 307.0371 L
-384.0186 307.0371 L
-S
-0.9 G
-402.2461 309.0146 m
-410.9678 309.0146 L
-S
-0.25 G
-397.6396 310.7881 m
-402.2461 309.0146 L
-S
-0.9 G
-384.0186 307.0371 m
-384.0186 309.0146 L
-393.2813 309.0146 L
-397.6396 310.7881 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-382.5381 309.8428 m
-382.5303 331.7119 l
-383.5137 332.708 L
-411.4912 332.6807 L
-412.4297 331.542 L
-412.4297 310.1279 L
-411.6201 308.9883 L
-383.3857 308.9883 l
-382.5381 309.8428 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-383.3857 308.9883 m
-382.5381 309.8428 L
-382.5303 331.7119 l
-383.5137 332.708 L
-411.4912 332.6807 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-409.3975 311.876 m
-409.417 329.8311 L
-385.5225 329.8311 L
-385.5205 311.8779 L
-409.3975 311.876 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-414.0889 303.0449 m
-397.5361 303.0449 L
-380.9834 303.0449 L
-374.4209 299.6123 L
-374.4209 297.5928 L
-420.4502 297.5928 L
-420.4502 299.6123 L
-414.0889 303.0449 L
-s
-383.3857 308.9883 m
-384.0186 308.9883 L
-384.0186 307.0371 L
-384.0547 307.0479 L
-384.0547 307.04 L
-384.0186 307.0371 L
-384.0547 307.0371 L
-394.6904 307.0371 L
-388.5752 305.9834 L
-386.2969 305.9404 L
-386.2646 305.9404 L
-386.2646 304.1416 L
-386.2969 304.1514 L
-386.2969 304.1445 L
-386.2646 304.1416 L
-386.2969 304.1416 L
-408.6318 304.1416 L
-408.6924 304.1416 L
-408.7529 305.9834 L
-406.958 305.9834 L
-400.7217 307.0371 L
-410.8564 307.0371 L
-410.9287 307.0371 L
-410.999 308.9883 L
-411.6201 308.9883 L
-412.4297 310.1279 L
-412.4297 331.542 L
-411.4912 332.6807 L
-383.5137 332.708 L
-382.5303 331.7119 L
-382.5381 309.8428 L
-383.3857 308.9883 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000000F36436C69656E742031
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 398.3652 291.5283 0 Tp
-0 Tv
-TP
--6.1604 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
--20 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
--0.18 Tc
-0 Tw
-(PC) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 398.3652 342.3154 0 Tp
-0 Tv
-TP
--15.9844 0 Td
-0 Tr
-(Netw) Tx 1 10 Tk
-(or) Tx 1 -15 Tk
-(k) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 176.1445 369.5293 0 Tp
-0 Tv
-TP
--12.7793 0 Td
-0 Tr
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_1 g
-%_0 R
-%_0.67 G
-%_1 M
-%_184.939 348.2959 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-1 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-184.939 348.2959 m
-F
-u
-0.8 g
-198.6704 339.2217 m
-218.7153 346.0791 l
-217.1348 348.9805 l
-204.4736 345.0244 l
-198.4072 348.9805 l
-198.6704 339.2217 l
-f
-0 R
-0.9 G
-0.5 w
-217.4067 349.1064 m
-204.4736 345.0244 l
-S
-0.5 G
-218.7153 346.0791 m
-217.1348 348.9805 l
-S
-0.25 G
-198.6704 339.2217 m
-218.7153 346.0791 l
-S
-0.5 G
-204.4736 345.0244 m
-198.4072 348.9805 l
-S
-0 O
-0.8 g
-1 w
-178.626 356.6309 m
-190.7568 361.9053 l
-194.1865 357.6865 l
-178.626 356.6309 l
-f
-1 Ap
-0.57 g
-198.9341 337.376 m
-152.5137 337.376 L
-152.5137 334.4756 L
-198.9341 334.4756 L
-198.9341 337.376 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-190.7568 361.9053 m
-194.1865 357.6865 l
-S
-0.9 G
-178.626 356.6309 m
-191.3188 362.1826 l
-S
-0 O
-0.8 g
-1 w
-151.1929 358.668 m
-151.1929 337.3447 l
-199.9893 337.3447 l
-199.9893 354.5186 l
-196.5601 358.6084 l
-151.1929 358.668 l
-f
-0 R
-0.5 G
-0.5 w
-151.1929 342.9141 m
-199.9893 342.9141 l
-S
-154.0952 355.3115 m
-163.5913 355.3115 l
-S
-154.0952 353.6631 m
-163.5913 353.6631 l
-S
-154.0952 352.0156 m
-163.5913 352.0156 l
-S
-154.0952 350.3672 m
-163.5913 350.3672 l
-S
-154.0952 348.7197 m
-163.5913 348.7197 l
-S
-199.9893 354.5186 m
-196.5601 358.6084 l
-S
-0.25 G
-151.1929 337.3447 m
-199.9893 337.3447 l
-199.9893 354.5186 l
-S
-0.9 G
-196.5601 358.6377 m
-151.1929 358.6377 l
-151.1929 337.0752 l
-S
-0.25 G
-198.9341 337.3447 m
-198.9341 334.4307 l
-152.5225 334.4307 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000007995072696E746572
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 294.2847 278.0166 0 Tp
-0 Tv
-TP
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Formata-Bold 9 8.82 -2.313 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 0 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-0 TA
-%_ 0 XL
-0 TY
-0 TV
-0.0244 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-0 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(\r) Tx
-TO
-LB
-%AI5_EndLayer--
-%%PageTrailer
-gsave annotatepage grestore showpage
-%%Trailer
-Adobe_Illustrator_AI5 /terminate get exec
-Adobe_shading_AI8 /terminate get exec
-Adobe_ColorImage_AI6 /terminate get exec
-Adobe_typography_AI5 /terminate get exec
-Adobe_cshow /terminate get exec
-Adobe_level2_AI5 /terminate get exec
-%%EOF
diff --git a/en_US.ISO8859-1/books/corp-net-guide/08-02.eps b/en_US.ISO8859-1/books/corp-net-guide/08-02.eps
deleted file mode 100644
index 2317acfb8d..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/08-02.eps
+++ /dev/null
@@ -1,8655 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: Adobe Illustrator(R) 8.0
-%%AI8_CreatorVersion: 8.0.1
-%%For: (Mark Bergeron) (PD&PS)
-%%Title: (08-02 3594)
-%%CreationDate: (11/20/00) (3:35 PM)
-%%BoundingBox: 150 266 424 398
-%%HiResBoundingBox: 150.9429 266.0234 423.8008 397.6465
-%%DocumentProcessColors: Black
-%%DocumentFonts: Helvetica
-%%DocumentNeededFonts: Helvetica
-%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
-%%+ procset Adobe_typography_AI5 1.0 1
-%%+ procset Adobe_ColorImage_AI6 1.3 0
-%%+ procset Adobe_Illustrator_AI5 1.3 0
-%%+ procset Adobe_cshow 2.0 8
-%%+ procset Adobe_shading_AI8 1.0 0
-%AI5_FileFormat 4.0
-%AI3_ColorUsage: Black&White
-%AI3_IncludePlacedImages
-%AI7_ImageSettings: 1
-%%CMYKProcessColor: 0 0 0 0.15 (15%)
-%%+ 0 0 0 0.3 (30%)
-%%+ 0 0 0 0.5 (50%)
-%%+ 0 0 0 0.75 (75%)
-%%+ 1 1 1 1 ([Registration])
-%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
-%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4
-%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ()
-%AI3_TemplateBox: 306.5 395.5 306.5 395.5
-%AI3_TileBox: 12 14 600 782
-%AI3_DocumentPreview: Macintosh_ColorPic
-%AI5_ArtSize: 612 792
-%AI5_RulerUnits: 3
-%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0
-%AI5_TargetResolution: 800
-%AI5_NumLayers: 1
-%AI8_OpenToView: 217.1108 471.0039 3.4569 1137 777 18 0 1 7 40 0 0
-%AI5_OpenViewLayers: 7
-%%PageOrigin:12 14
-%%AI3_PaperRect:-12 782 600 -10
-%%AI3_Margin:12 -14 -12 10
-%AI7_GridSettings: 12 3 12 3 1 0 0.29 1 1 0.65 1 1
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Adobe_level2_AI5 1.2 0
-%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
-%%Version: 1.2 0
-%%CreationDate: (04/10/93) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-userdict /Adobe_level2_AI5 26 dict dup begin
- put
- /packedarray where not
- {
- userdict begin
- /packedarray
- {
- array astore readonly
- } bind def
- /setpacking /pop load def
- /currentpacking false def
- end
- 0
- } if
- pop
- userdict /defaultpacking currentpacking put true setpacking
- /initialize
- {
- Adobe_level2_AI5 begin
- } bind def
- /terminate
- {
- currentdict Adobe_level2_AI5 eq
- {
- end
- } if
- } bind def
- mark
- /setcustomcolor where not
- {
- /findcmykcustomcolor
- {
- (AI8_CMYK_CustomColor)
- 6 packedarray
- } bind def
- /findrgbcustomcolor
- {
- (AI8_RGB_CustomColor)
- 5 packedarray
- } bind def
- /setcustomcolor
- {
- exch
- aload pop dup
- (AI8_CMYK_CustomColor) eq
- {
- pop pop
- 4
- {
- 4 index mul
- 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- }
- {
- dup (AI8_RGB_CustomColor) eq
- {
- pop pop
- 3
- {
- 1 exch sub
- 3 index mul
- 1 exch sub
- 3 1 roll
- } repeat
- 4 -1 roll pop
- setrgbcolor
- }
- {
- pop
- 4
- {
- 4 index mul 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- } ifelse
- } ifelse
- }
- def
- } if
- /setAIseparationgray
- {
- false setoverprint
- 0 setgray
- /setseparationgray where{
- pop setseparationgray
- }{
- /setcolorspace where{
- pop
- [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
- 1 exch sub setcolor
- }{
- setgray
- }ifelse
- }ifelse
- } def
-
- /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
- userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
- userdict /level2?
- systemdict /languagelevel known dup
- {
- pop systemdict /languagelevel get 2 ge
- } if
- put
-/level2ScreenFreq
-{
- begin
- 60
- HalftoneType 1 eq
- {
- pop Frequency
- } if
- HalftoneType 2 eq
- {
- pop GrayFrequency
- } if
- HalftoneType 5 eq
- {
- pop Default level2ScreenFreq
- } if
- end
-} bind def
-userdict /currentScreenFreq
- level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
-level2? not
- {
- /setcmykcolor where not
- {
- /setcmykcolor
- {
- exch .11 mul add exch .59 mul add exch .3 mul add
- 1 exch sub setgray
- } def
- } if
- /currentcmykcolor where not
- {
- /currentcmykcolor
- {
- 0 0 0 1 currentgray sub
- } def
- } if
- /setoverprint where not
- {
- /setoverprint /pop load def
- } if
- /selectfont where not
- {
- /selectfont
- {
- exch findfont exch
- dup type /arraytype eq
- {
- makefont
- }
- {
- scalefont
- } ifelse
- setfont
- } bind def
- } if
- /cshow where not
- {
- /cshow
- {
- [
- 0 0 5 -1 roll aload pop
- ] cvx bind forall
- } bind def
- } if
- } if
- cleartomark
- /anyColor?
- {
- add add add 0 ne
- } bind def
- /testColor
- {
- gsave
- setcmykcolor currentcmykcolor
- grestore
- } bind def
- /testCMYKColorThrough
- {
- testColor anyColor?
- } bind def
- userdict /composite?
- 1 0 0 0 testCMYKColorThrough
- 0 1 0 0 testCMYKColorThrough
- 0 0 1 0 testCMYKColorThrough
- 0 0 0 1 testCMYKColorThrough
- and and and
- put
- composite? not
- {
- userdict begin
- gsave
- /cyan? 1 0 0 0 testCMYKColorThrough def
- /magenta? 0 1 0 0 testCMYKColorThrough def
- /yellow? 0 0 1 0 testCMYKColorThrough def
- /black? 0 0 0 1 testCMYKColorThrough def
- grestore
- /isCMYKSep? cyan? magenta? yellow? black? or or or def
- /customColor? isCMYKSep? not def
- end
- } if
- end defaultpacking setpacking
-%%EndResource
-%%BeginResource: procset Adobe_typography_AI5 1.0 1
-%%Title: (Typography Operators)
-%%Version: 1.0 1
-%%CreationDate:(6/10/1996) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_typography_AI5 68 dict dup begin
-put
-/initialize
-{
- begin
- begin
- Adobe_typography_AI5 begin
- Adobe_typography_AI5
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- end
- end
- Adobe_typography_AI5 begin
-} def
-/terminate
-{
- currentdict Adobe_typography_AI5 eq
- {
- end
- } if
-} def
-/modifyEncoding
-{
- /_tempEncode exch ddef
- /_pntr 0 ddef
- {
- counttomark -1 roll
- dup type dup /marktype eq
- {
- pop pop exit
- }
- {
- /nametype eq
- {
- _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
- put
- }
- {
- /_pntr exch ddef
- } ifelse
- } ifelse
- } loop
- _tempEncode
-} def
-/havefont
-{
- systemdict /languagelevel known
- {
- /Font resourcestatus dup
- { exch pop exch pop }
- if
- }
- {
- systemdict /FontDirectory get 1 index known
- { pop true }
- {
- systemdict /fileposition known
- {
- dup length 6 add exch
- Ss 6 250 getinterval
- cvs pop
- Ss exch 0 exch getinterval
- status
- { pop pop pop pop true }
- { false }
- ifelse
- }
- {
- pop false
- }
- ifelse
- }
- ifelse
- }
- ifelse
-} def
-/TE
-{
- StandardEncoding 256 array copy modifyEncoding
- /_nativeEncoding exch def
-} def
-/subststring {
- exch 2 index exch search
- {
- exch pop
- exch dup () eq
- {
- pop exch concatstring
- }
- {
- 3 -1 roll
- exch concatstring
- concatstring
- } ifelse
- exch pop true
- }
- {
- pop pop false
- } ifelse
-} def
-/concatstring {
- 1 index length 1 index length
- 1 index add
- string
- dup 0 5 index putinterval
- dup 2 index 4 index putinterval
- 4 1 roll pop pop pop
-} def
-%
-/TZ
-{
- dup type /arraytype eq
- {
- /_wv exch def
- }
- {
- /_wv 0 def
- } ifelse
- /_useNativeEncoding exch def
- 2 index havefont
- {
- 3 index
- 255 string
- cvs
-
- dup
- (_Symbol_)
- eq
- {
- pop
- 2 index
- findfont
-
- }
- {
- 1 index 0 eq
- {
- dup length 1 sub
- 1 exch
- getinterval
-
- cvn
- findfont
- }
- {
- pop 2 index findfont
- } ifelse
- } ifelse
- }
- {
- dup 1 eq
- {
- 2 index 64 string cvs
- dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop dup
- (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop pop true
- } ifelse
- } ifelse
- {
- 1 index 1 eq
- {
- /Ryumin-Light-Ext-RKSJ-V havefont
- {/Ryumin-Light-Ext-RKSJ-V}
- {/Courier}
- ifelse
- }
- {
- /Ryumin-Light-83pv-RKSJ-H havefont
- {/Ryumin-Light-83pv-RKSJ-H}
- {/Courier}
- ifelse
- } ifelse
- findfont
- [1 0 0.5 1 0 0] makefont
- } if
- }
- {
- /Courier findfont
- } ifelse
- } ifelse
- _wv type /arraytype eq
- {
- _wv makeblendedfont
- } if
- dup length 10 add dict
- begin
- mark exch
- {
- 1 index /FID ne
- {
- def
- } if
- cleartomark mark
- } forall
- pop
- /FontScript exch def
- /FontDirection exch def
- /FontRequest exch def
- /FontName exch def
- counttomark 0 eq
- {
- 1 _useNativeEncoding eq
- {
- /Encoding _nativeEncoding def
- } if
- cleartomark
- }
- {
- /Encoding load 256 array copy
- modifyEncoding /Encoding exch def
- } ifelse
- FontName currentdict
- end
- definefont pop
-} def
-/tr
-{
- _ax _ay 3 2 roll
-} def
-/trj
-{
- _cx _cy _sp _ax _ay 6 5 roll
-} def
-/a0
-{
- /Tx
- {
- dup
- currentpoint 3 2 roll
- tr _psf
- newpath moveto
- tr _ctm _pss
- } ddef
- /Tj
- {
- dup
- currentpoint 3 2 roll
- trj _pjsf
- newpath moveto
- trj _ctm _pjss
- } ddef
-} def
-/a1
-{
-W B
-} def
-/e0
-{
- /Tx
- {
- tr _psf
- } ddef
- /Tj
- {
- trj _pjsf
- } ddef
-} def
-/e1
-{
-W F
-} def
-/i0
-{
- /Tx
- {
- tr sp
- } ddef
- /Tj
- {
- trj jsp
- } ddef
-} def
-/i1
-{
- W N
-} def
-/o0
-{
- /Tx
- {
- tr sw rmoveto
- } ddef
- /Tj
- {
- trj swj rmoveto
- } ddef
-} def
-/r0
-{
- /Tx
- {
- tr _ctm _pss
- } ddef
- /Tj
- {
- trj _ctm _pjss
- } ddef
-} def
-/r1
-{
-W S
-} def
-/To
-{
- pop _ctm currentmatrix pop
-} def
-/TO
-{
- iTe _ctm setmatrix newpath
-} def
-/Tp
-{
- pop _tm astore pop _ctm setmatrix
- _tDict begin
- /W
- {
- } def
- /h
- {
- } def
-} def
-/TP
-{
- end
- iTm 0 0 moveto
-} def
-/Tr
-{
- _render 3 le
- {
- currentpoint newpath moveto
- } if
- dup 8 eq
- {
- pop 0
- }
- {
- dup 9 eq
- {
- pop 1
- } if
- } ifelse
- dup /_render exch ddef
- _renderStart exch get load exec
-} def
-/iTm
-{
- _ctm setmatrix _tm concat
- _shift aload pop _lineorientation 1 eq { exch } if translate
- _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
-} def
-/Tm
-{
- _tm astore pop iTm 0 0 moveto
-} def
-/Td
-{
- _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
-} def
-/iTe
-{
- _render -1 eq
- {
- }
- {
- _renderEnd _render get dup null ne
- {
- load exec
- }
- {
- pop
- } ifelse
- } ifelse
- /_render -1 ddef
-} def
-/Ta
-{
- pop
-} def
-/Tf
-{
- 1 index type /nametype eq
- {
- dup 0.75 mul 1 index 0.25 mul neg
- } if
- /_fontDescent exch ddef
- /_fontAscent exch ddef
- /_fontSize exch ddef
- /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
- /_fontHeight _fontSize ddef
- findfont _fontSize scalefont setfont
-} def
-/Tl
-{
- pop neg 0 exch
- _leading astore pop
-} def
-/Tt
-{
- pop
-} def
-/TW
-{
- 3 npop
-} def
-/Tw
-{
- /_cx exch ddef
-} def
-/TC
-{
- 3 npop
-} def
-/Tc
-{
- /_ax exch ddef
-} def
-/Ts
-{
- 0 exch
- _shift astore pop
- currentpoint
- iTm
- moveto
-} def
-/Ti
-{
- 3 npop
-} def
-/Tz
-{
- count 1 eq { 100 } if
- 100 div exch 100 div exch
- _scale astore pop
- iTm
-} def
-/TA
-{
- pop
-} def
-/Tq
-{
- pop
-} def
-/Tg
-{
- pop
-} def
-/TG
-{
- pop
-} def
-/Tv
-{
- /_lineorientation exch ddef
-} def
-/TV
-{
- /_charorientation exch ddef
-} def
-/Ty
-{
- dup /_yokoorientation exch ddef 1 sub neg Tv
-} def
-/TY
-{
- pop
-} def
-/T~
-{
- Tx
-} def
-/Th
-{
- pop pop pop pop pop
-} def
-/TX
-{
- pop
-} def
-/Tk
-{
- _fontSize mul 1000 div
- _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
- rmoveto
- pop
-} def
-/TK
-{
- 2 npop
-} def
-/T*
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- Td
-} def
-/T*-
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- exch neg exch neg
- Td
-} def
-/T-
-{
- _ax neg 0 rmoveto
- _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
-} def
-/T+
-{
-} def
-/TR
-{
- _ctm currentmatrix pop
- _tm astore pop
- iTm 0 0 moveto
-} def
-/TS
-{
- currentfont 3 1 roll
- /_Symbol_ findfont _fontSize scalefont setfont
-
- 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- setfont
-} def
-/Xb
-{
- pop pop
-} def
-/Tb /Xb load def
-/Xe
-{
- pop pop pop pop
-} def
-/Te /Xe load def
-/XB
-{
-} def
-/TB /XB load def
-currentdict readonly pop
-end
-setpacking
-%
-/X^
-{
- currentfont 5 1 roll
- dup havefont
- {
- findfont _fontSize scalefont setfont
- }
- {
- pop
- exch
- } ifelse
- 2 index 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- pop pop
- setfont
-} def
-/T^ /X^ load def
-%%EndResource
-%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
-userdict /Adobe_ColorImage_AI6 known not
-{
- userdict /Adobe_ColorImage_AI6 53 dict put
-} if
-userdict /Adobe_ColorImage_AI6 get begin
-/initialize {
- Adobe_ColorImage_AI6 begin
- Adobe_ColorImage_AI6 {
- dup type /arraytype eq {
- dup xcheck {
- bind
- } if
- } if
- pop pop
- } forall
-} def
-/terminate { end } def
-currentdict /Adobe_ColorImage_AI6_Vars known not {
- /Adobe_ColorImage_AI6_Vars 41 dict def
-} if
-Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /_newproc null def
- /_proc1 null def
- /_proc2 null def
- /sourcearray 4 array def
- /_ptispace null def
- /_ptiname null def
- /_pti0 0 def
- /_pti1 0 def
- /_ptiproc null def
- /_ptiscale 0 def
- /_pticomps 0 def
- /_ptibuf 0 string def
- /_gtigray 0 def
- /_cticmyk null def
- /_rtirgb null def
- /XIEnable true def
- /XIType 0 def
- /XIEncoding 0 def
- /XICompression 0 def
- /XIChannelCount 0 def
- /XIBitsPerPixel 0 def
- /XIImageHeight 0 def
- /XIImageWidth 0 def
- /XIImageMatrix null def
- /XIRowBytes 0 def
- /XIFile null def
- /XIBuffer1 null def
- /XIBuffer2 null def
- /XIBuffer3 null def
- /XIDataProc null def
- /XIColorSpace /DeviceGray def
- /XIColorValues 0 def
- /XIPlateList false def
-end
-/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
-/ci6image systemdict /image get def
-/ci6curtransfer systemdict /currenttransfer get def
-/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
-/ci6foureq {
- 4 index ne {
- pop pop pop false
- }{
- 4 index ne {
- pop pop false
- }{
- 4 index ne {
- pop false
- }{
- 4 index eq
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6testplate {
- Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /setcmykcolor where {
- pop
- gsave
- 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
- grestore
- 1 0 0 0 ci6foureq {
- /plateindex 0 def
- }{
- 0 1 0 0 ci6foureq {
- /plateindex 1 def
- }{
- 0 0 1 0 ci6foureq {
- /plateindex 2 def
- }{
- 0 0 0 1 ci6foureq {
- /plateindex 3 def
- }{
- 0 0 0 0 ci6foureq {
- /plateindex 5 def
- } if
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- pop pop pop pop
- } if
- plateindex
- end
-} def
-/ci6concatprocs {
- /packedarray where {
- pop dup type /packedarraytype eq 2 index type
- /packedarraytype eq or
- }{
- false
- } ifelse
- {
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- _proc1 aload pop
- _proc2 aload pop
- _proc1 length
- _proc2 length add
- packedarray cvx
- }{
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- /_newproc _proc1 length _proc2 length add array def
- _newproc 0 _proc1 putinterval
- _newproc _proc1 length _proc2 putinterval
- _newproc cvx
- } ifelse
-} def
-/ci6istint {
- type /arraytype eq
-} def
-/ci6isspot {
- dup type /arraytype eq {
- dup length 1 sub get /Separation eq
- }{
- pop false
- } ifelse
-} def
-/ci6spotname {
- dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
-} def
-/ci6altspace {
- aload pop pop pop ci6colormake
-} def
-/ci6numcomps {
- dup /DeviceGray eq {
- pop 1
- }{
- dup /DeviceRGB eq {
- pop 3
- }{
- /DeviceCMYK eq {
- 4
- }{
- 1
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6marksplate {
- dup /DeviceGray eq {
- pop plateindex 3 eq
- }{
- dup /DeviceRGB eq {
- pop plateindex 5 ne
- }{
- dup /DeviceCMYK eq {
- pop plateindex 5 ne
- }{
- dup ci6isspot {
- /findcmykcustomcolor where {
- pop
- dup length 2 sub get
- 0.1 0.1 0.1 0.1 5 -1 roll
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop plateindex 5 ne
- } ifelse
- }{
- pop plateindex 5 ne
- } ifelse
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colormake {
- dup ci6numcomps
- exch 1 index 2 add 1 roll
- dup 1 eq {pop}{array astore} ifelse
- exch
-} def
-/ci6colorexpand {
- dup ci6spotname exch
- dup ci6istint {
- ci6altspace
- exch 4 1 roll
- }{
- 1 3 1 roll
- } ifelse
-} def
-/ci6colortint {
- dup /DeviceGray eq {
- 3 1 roll 1 exch sub mul 1 exch sub exch
- }{
- dup /DeviceRGB eq {
- 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
- }{
- dup /DeviceCMYK eq {
- 3 1 roll {1 index mul exch} forall pop 4 array astore exch
- }{
- 3 1 roll mul exch
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colortocmyk {
- dup /DeviceGray eq {
- pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
- }{
- dup /DeviceRGB eq {
- pop aload pop _rgbtocmyk 4 array astore
- }{
- dup /DeviceCMYK eq {
- pop
- }{
- ci6altspace ci6colortint ci6colortocmyk
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6makeimagedict {
- 7 dict begin
- /ImageType 1 def
- /Decode exch def
- /DataSource exch def
- /ImageMatrix exch def
- /BitsPerComponent exch def
- /Height exch def
- /Width exch def
- currentdict end
-} def
-/ci6stringinvert {
- 0 1 2 index length 1 sub {
- dup 2 index exch get 255 exch sub 2 index 3 1 roll put
- } for
-} def
-/ci6stringknockout {
- 0 1 2 index length 1 sub {
- 255 2 index 3 1 roll put
- } for
-} def
-/ci6stringapply {
- 0 1 4 index length 1 sub {
- dup
- 4 index exch get
- 3 index 3 1 roll
- 3 index exec
- } for
- pop exch pop
-} def
-/ci6walkrgbstring {
- 0 3 index
- dup length 1 sub 0 3 3 -1 roll {
- 3 getinterval {} forall
- 5 index exec
- 3 index
- } for
-
- 5 {pop} repeat
-} def
-/ci6walkcmykstring
-{
- 0 3 index
- dup length 1 sub 0 4 3 -1 roll {
- 4 getinterval {} forall
-
- 6 index exec
-
- 3 index
-
- } for
-
- 5 { pop } repeat
-
-} def
-/ci6putrgbtograystr
-{
- .11 mul exch
-
- .59 mul add exch
-
- .3 mul add
-
- cvi 3 copy put
-
- pop 1 add
-} def
-/ci6putcmyktograystr
-{
- exch .11 mul add
-
- exch .59 mul add
-
- exch .3 mul add
-
- dup 255 gt { pop 255 } if
-
- 255 exch sub cvi 3 copy put
-
- pop 1 add
-} def
-/ci6rgbtograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putrgbtograystr load exch
- ci6walkrgbstring
- end
-} def
-/ci6cmyktograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putcmyktograystr load exch
- ci6walkcmykstring
- end
-} def
-/ci6separatecmykproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
-
- XIBuffer3
-
- 0 2 index
-
- plateindex 4 2 index length 1 sub {
- get 255 exch sub
-
- 3 copy put pop 1 add
-
- 2 index
- } for
- pop pop exch pop
- end
-} def
-
-/ci6compositeimage {
- dup 1 eq {
- pop pop image
- }{
- /ci6colorimage load null ne {
- ci6colorimage
- }{
- 3 1 roll pop
- sourcearray 0 3 -1 roll put
- 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
- image
- } ifelse
- } ifelse
-} def
-/ci6knockoutimage {
- gsave
- 0 ci6curtransfer exec 1 ci6curtransfer exec
- eq {
- 0 ci6curtransfer exec 0.5 lt
- }{
- 0 ci6curtransfer exec 1 ci6curtransfer exec gt
- } ifelse
- {{pop 0}}{{pop 1}} ifelse
- systemdict /settransfer get exec
- ci6compositeimage
- grestore
-} def
-/ci6drawimage {
- ci6testplate -1 eq {
- pop ci6compositeimage
- }{
- dup type /arraytype eq {
- dup length plateindex gt {plateindex get}{pop false} ifelse
- }{
- {
- true
- }{
- dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
- } ifelse
- } ifelse
- {
- dup 1 eq {
- pop pop ci6image
- }{
- dup 3 eq {
- ci6compositeimage
- }{
- pop pop
- sourcearray 0 3 -1 roll put
- /ci6separatecmykproc load
- ci6image
- } ifelse
- } ifelse
- }{
- ci6curoverprint {
- 7 {pop} repeat
- }{
- ci6knockoutimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6proctintimage {
- /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
- /_pticomps _ptispace ci6numcomps store
- /_ptiscale _pti1 _pti0 sub store
- level2? {
- _ptiname length 0 gt version cvr 2012 ge and {
- [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
- [_pti0 _pti1] ci6makeimagedict ci6image
- }{
- [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
- [0 255] ci6makeimagedict ci6image
- } ifelse
- }{
- _pticomps 1 eq {
- {
- dup
- {
- 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
- } ci6stringapply
- } ci6concatprocs ci6image
- }{
- {
- dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
- _ptibuf {
- exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
- _pticomps 2 add -2 roll
- _pticomps 1 sub -1 0 {
- 1 index add 2 index exch
- 5 -1 roll
- 255 mul cvi put
- } for
- pop pop
- } ci6stringapply
- } ci6concatprocs false _pticomps
- /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
- } ifelse
- } ifelse
-} def
-/ci6graytintimage {
- /_gtigray 5 -1 roll store
- {1 _gtigray sub mul 1 exch sub} 4 1 roll
- /DeviceGray ci6proctintimage
-} def
-/ci6cmyktintimage {
- /_cticmyk 5 -1 roll store
- {_cticmyk {1 index mul exch} forall pop} 4 1 roll
- /DeviceCMYK ci6proctintimage
-} def
-/ci6rgbtintimage {
- /_rtirgb 5 -1 roll store
- {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
- /DeviceRGB ci6proctintimage
-} def
-/ci6tintimage {
- ci6testplate -1 eq {
- ci6colorexpand
- 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
- dup /DeviceGray eq {
- pop ci6graytintimage
- }{
- dup /DeviceRGB eq {
- pop ci6rgbtintimage
- }{
- pop ci6cmyktintimage
- } ifelse
- } ifelse
- }{
- dup ci6marksplate {
- plateindex 5 lt {
- ci6colortocmyk plateindex get
- dup 0 eq ci6curoverprint and {
- 7 {pop} repeat
- }{
- 1 exch sub
- exch {1 0}{0 1} ifelse () ci6graytintimage
- } ifelse
- }{
- pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
- } ifelse
- }{
- ci6curoverprint {
- 8 {pop} repeat
- }{
- pop pop pop
- {pop 1} 0 1 () /DeviceGray ci6proctintimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/XINullImage {
-} def
-/XIImageMask {
- XIImageWidth XIImageHeight false
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- imagemask
-} def
-/XIImageTint {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- XIType 3 eq XIColorValues XIColorSpace ci6tintimage
-} def
-/XIImage {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- false XIChannelCount XIPlateList ci6drawimage
-} def
-/XG {
- pop pop
-} def
-/XF {
- 13 {pop} repeat
-} def
-/Xh {
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- /XIImageMatrix exch def
- 0 0 moveto
- XIImageMatrix concat
- XIImageWidth XIImageHeight scale
-
- /_lp /null ddef
- _fc
- /_lp /imagemask ddef
- end
-} def
-/XH {
- Adobe_ColorImage_AI6_Vars begin
- grestore
- end
-} def
-/XIEnable {
- Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
-} def
-/XC {
- Adobe_ColorImage_AI6_Vars begin
- ci6colormake
- /XIColorSpace exch def
- /XIColorValues exch def
- end
-} def
-/XIPlates {
- Adobe_ColorImage_AI6_Vars begin
- /XIPlateList exch def
- end
-} def
-/XI
-{
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- cvi dup
- 256 idiv /XICompression exch store
- 256 mod /XIEncoding exch store
- pop pop
- /XIChannelCount exch def
- /XIBitsPerPixel exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- pop pop pop pop
- /XIImageMatrix exch def
- XIBitsPerPixel 1 eq {
- XIImageWidth 8 div ceiling cvi
- }{
- XIImageWidth XIChannelCount mul
- } ifelse
- /XIRowBytes exch def
- XIEnable {
- /XIBuffer3 XIImageWidth string def
- XICompression 0 eq {
- /XIBuffer1 XIRowBytes string def
- XIEncoding 0 eq {
- {currentfile XIBuffer1 readhexstring pop}
- }{
- {currentfile XIBuffer1 readstring pop}
- } ifelse
- }{
- /XIBuffer1 256 string def
- /XIBuffer2 XIRowBytes string def
- {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
- /ASCII85Decode filter /DCTDecode filter
- /XIFile exch def
- {XIFile XIBuffer2 readstring pop}
- } ifelse
- /XIDataProc exch def
-
- XIType 1 ne {
- 0 setgray
- } if
- XIType 1 eq {
- XIImageMask
- }{
- XIType 2 eq XIType 3 eq or {
- XIImageTint
- }{
- XIImage
- } ifelse
- } ifelse
- }{
- XINullImage
- } ifelse
- /XIPlateList false def
- grestore
- end
-} def
-end
-%%EndProcSet
-%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
-%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
-%%Version: 1.3 0
-%%CreationDate: (3/7/1994) ()
-%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
-put
-/_?cmyk false def
-/_eo false def
-/_lp /none def
-/_pf
-{
-} def
-/_ps
-{
-} def
-/_psf
-{
-} def
-/_pss
-{
-} def
-/_pjsf
-{
-} def
-/_pjss
-{
-} def
-/_pola 0 def
-/_doClip 0 def
-/cf currentflat def
-/_lineorientation 0 def
-/_charorientation 0 def
-/_yokoorientation 0 def
-/_tm matrix def
-/_renderStart
-[
-/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
-] def
-/_renderEnd
-[
-null null null null /i1 /i1 /i1 /i1
-] def
-/_render -1 def
-/_shift [0 0] def
-/_ax 0 def
-/_ay 0 def
-/_cx 0 def
-/_cy 0 def
-/_leading
-[
-0 0
-] def
-/_ctm matrix def
-/_mtx matrix def
-/_sp 16#020 def
-/_hyphen (-) def
-/_fontSize 0 def
-/_fontAscent 0 def
-/_fontDescent 0 def
-/_fontHeight 0 def
-/_fontRotateAdjust 0 def
-/Ss 256 string def
-Ss 0 (fonts/) putinterval
-/_cnt 0 def
-/_scale [1 1] def
-/_nativeEncoding 0 def
-/_useNativeEncoding 0 def
-/_tempEncode 0 def
-/_pntr 0 def
-/_tDict 2 dict def
-/_hfname 100 string def
-/_hffound false def
-/Tx
-{
-} def
-/Tj
-{
-} def
-/CRender
-{
-} def
-/_AI3_savepage
-{
-} def
-/_gf null def
-/_cf 4 array def
-/_rgbf 3 array def
-/_if null def
-/_of false def
-/_fc
-{
-} def
-/_gs null def
-/_cs 4 array def
-/_rgbs 3 array def
-/_is null def
-/_os false def
-/_sc
-{
-} def
-/_pd 1 dict def
-/_ed 15 dict def
-/_pm matrix def
-/_fm null def
-/_fd null def
-/_fdd null def
-/_sm null def
-/_sd null def
-/_sdd null def
-/_i null def
-/_lobyte 0 def
-/_hibyte 0 def
-/_cproc null def
-/_cscript 0 def
-/_hvax 0 def
-/_hvay 0 def
-/_hvwb 0 def
-/_hvcx 0 def
-/_hvcy 0 def
-/_bitfont null def
-/_bitlobyte 0 def
-/_bithibyte 0 def
-/_bitkey null def
-/_bitdata null def
-/_bitindex 0 def
-/discardSave null def
-/buffer 256 string def
-/beginString null def
-/endString null def
-/endStringLength null def
-/layerCnt 1 def
-/layerCount 1 def
-/perCent (%) 0 get def
-/perCentSeen? false def
-/newBuff null def
-/newBuffButFirst null def
-/newBuffLast null def
-/clipForward? false def
-end
-userdict /Adobe_Illustrator_AI5 known not {
- userdict /Adobe_Illustrator_AI5 100 dict put
-} if
-userdict /Adobe_Illustrator_AI5 get begin
-/initialize
-{
- Adobe_Illustrator_AI5 dup begin
- Adobe_Illustrator_AI5_vars begin
- /_aicmykps where {pop /_?cmyk _aicmykps def}if
- discardDict
- {
- bind pop pop
- } forall
- dup /nc get begin
- {
- dup xcheck 1 index type /operatortype ne and
- {
- bind
- } if
- pop pop
- } forall
- end
- newpath
-} def
-/terminate
-{
- end
- end
-} def
-/_
-null def
-/ddef
-{
- Adobe_Illustrator_AI5_vars 3 1 roll put
-} def
-/xput
-{
- dup load dup length exch maxlength eq
- {
- dup dup load dup
- length 2 mul dict copy def
- } if
- load begin
- def
- end
-} def
-/npop
-{
- {
- pop
- } repeat
-} def
-/hswj
-{
- dup stringwidth 3 2 roll
- {
- _hvwb eq { exch _hvcx add exch _hvcy add } if
- exch _hvax add exch _hvay add
- } cforall
-} def
-/vswj
-{
- 0 0 3 -1 roll
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- dup cstring stringwidth 5 2 roll
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- 4 -1 roll sub exch
- 3 -1 roll sub exch
- }
- {
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- _fontHeight sub
- } ifelse
- } cforall
-} def
-/swj
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hswj } { vswj } ifelse
-} def
-/sw
-{
- 0 0 0 6 3 roll swj
-} def
-/vjss
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- gsave
- 2 index false charpath
- 6 index setmatrix stroke
- grestore
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjss
-{
- 4 1 roll
- {
- dup cstring
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jss
-{
- _lineorientation 0 eq { hjss } { vjss } ifelse
-} def
-/ss
-{
- 0 0 0 7 3 roll jss
-} def
-/vjsp
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- false charpath
- currentpoint
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- 2 index false charpath
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjsp
-{
- 4 1 roll
- {
- dup cstring
- false charpath
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jsp
-{
- matrix currentmatrix
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/sp
-{
- matrix currentmatrix
- 0 0 0 7 3 roll
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/pl
-{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
-} def
-/setstrokeadjust where
-{
- pop true setstrokeadjust
- /c
- {
- curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll curveto
- } def
- /V
- /v load def
- /y
- {
- 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- lineto
- } def
- /L
- /l load def
- /m
- {
- moveto
- } def
-}
-{
- /c
- {
- pl curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll pl curveto
- } def
- /V
- /v load def
- /y
- {
- pl 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- pl lineto
- } def
- /L
- /l load def
- /m
- {
- pl moveto
- } def
-} ifelse
-/d
-{
- setdash
-} def
-/cf
-{
-} def
-/i
-{
- dup 0 eq
- {
- pop cf
- } if
- setflat
-} def
-/j
-{
- setlinejoin
-} def
-/J
-{
- setlinecap
-} def
-/M
-{
- setmiterlimit
-} def
-/w
-{
- setlinewidth
-} def
-/XR
-{
- 0 ne
- /_eo exch ddef
-} def
-/H
-{
-} def
-/h
-{
- closepath
-} def
-/N
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- _eo {eoclip} {clip} ifelse /_doClip 0 ddef
- } if
- newpath
- }
- {
- /CRender
- {
- N
- } ddef
- } ifelse
-} def
-/n
-{
- N
-} def
-/F
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
- /_doClip 0 ddef
- }
- {
- _pf
- } ifelse
- }
- {
- /CRender
- {
- F
- } ddef
- } ifelse
-} def
-/f
-{
- closepath
- F
-} def
-/S
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- _ps
- } ifelse
- }
- {
- /CRender
- {
- S
- } ddef
- } ifelse
-} def
-/s
-{
- closepath
- S
-} def
-/B
-{
- _pola 0 eq
- {
- _doClip 1 eq
- gsave F grestore
- {
- gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- S
- } ifelse
- }
- {
- /CRender
- {
- B
- } ddef
- } ifelse
-} def
-/b
-{
- closepath
- B
-} def
-/W
-{
- /_doClip 1 ddef
-} def
-/*
-{
- count 0 ne
- {
- dup type /stringtype eq
- {
- pop
- } if
- } if
- newpath
-} def
-/u
-{
-} def
-/U
-{
-} def
-/q
-{
- _pola 0 eq
- {
- gsave
- } if
-} def
-/Q
-{
- _pola 0 eq
- {
- grestore
- } if
-} def
-/*u
-{
- _pola 1 add /_pola exch ddef
-} def
-/*U
-{
- _pola 1 sub /_pola exch ddef
- _pola 0 eq
- {
- CRender
- } if
-} def
-/D
-{
- pop
-} def
-/*w
-{
-} def
-/*W
-{
-} def
-/`
-{
- /_i save ddef
- clipForward?
- {
- nulldevice
- } if
- 6 1 roll 4 npop
- concat pop
- userdict begin
- /showpage
- {
- } def
- 0 setgray
- 0 setlinecap
- 1 setlinewidth
- 0 setlinejoin
- 10 setmiterlimit
- [] 0 setdash
- /setstrokeadjust where {pop false setstrokeadjust} if
- newpath
- 0 setgray
- false setoverprint
-} def
-/~
-{
- end
- _i restore
-} def
-/_rgbtocmyk
-{
- 3
- {
- 1 exch sub 3 1 roll
- } repeat
- 3 copy 1 4 1 roll
- 3
- {
- 3 index 2 copy gt
- {
- exch
- } if
- pop 4 1 roll
- } repeat
- pop pop pop
- 4 1 roll
- 3
- {
- 3 index sub
- 3 1 roll
- } repeat
- 4 -1 roll
-} def
-/setrgbfill
-{
- _rgbf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _rgbf aload pop setrgbcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/setrgbstroke
-{
- _rgbs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _rgbs aload pop setrgbcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/O
-{
- 0 ne
- /_of exch ddef
- /_lp /none ddef
-} def
-/R
-{
- 0 ne
- /_os exch ddef
- /_lp /none ddef
-} def
-/g
-{
- /_gf exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/G
-{
- /_gs exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/k
-{
- _cf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _cf aload pop setcmykcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/K
-{
- _cs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _cs aload pop setcmykcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xa
-{
- _?cmyk {
- 3 npop k
- }{
- setrgbfill 4 npop
- } ifelse
-} def
-/XA
-{
- _?cmyk {
- 3 npop K
- }{
- setrgbstroke 4 npop
- } ifelse
-} def
-/Xs
-{
- /_gf exch ddef
- 5 npop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setAIseparationgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XS
-{
- /_gs exch ddef
- 5 npop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setAIseparationgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xx
-{
- exch
- /_gf exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XX
-{
- exch
- /_gs exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/x
-{
- /_gf exch ddef
- findcmykcustomcolor
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/X
-{
- /_gs exch ddef
- findcmykcustomcolor
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/XK
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- K
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- XA
- } ifelse
-} def
-/Xk
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- k
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- Xa
- } ifelse
-} def
-/A
-{
- pop
-} def
-/annotatepage
-{
-userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
-} def
-/XT {
- pop pop
-} def
-/Xt {
- pop
-} def
-/discard
-{
- save /discardSave exch store
- discardDict begin
- /endString exch store
- gt38?
- {
- 2 add
- } if
- load
- stopped
- pop
- end
- discardSave restore
-} bind def
-userdict /discardDict 7 dict dup begin
-put
-/pre38Initialize
-{
- /endStringLength endString length store
- /newBuff buffer 0 endStringLength getinterval store
- /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
- /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
-} def
-/shiftBuffer
-{
- newBuff 0 newBuffButFirst putinterval
- newBuffLast 0
- currentfile read not
- {
- stop
- } if
- put
-} def
-0
-{
- pre38Initialize
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff endString eq
- {
- cleartomark stop
- } if
- shiftBuffer
- } loop
- }
- {
- stop
- } ifelse
-} def
-1
-{
- pre38Initialize
- /beginString exch store
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff beginString eq
- {
- /layerCount dup load 1 add store
- }
- {
- newBuff endString eq
- {
- /layerCount dup load 1 sub store
- layerCount 0 eq
- {
- cleartomark stop
- } if
- } if
- } ifelse
- shiftBuffer
- } loop
- } if
-} def
-2
-{
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- endString eq {
- cleartomark stop
- } if
- }ifelse
- } loop
-} def
-3
-{
- /beginString exch store
- /layerCnt 1 store
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- dup beginString eq
- {
- pop /layerCnt dup load 1 add store
- }
- {
- endString eq
- {
- layerCnt 1 eq
- {
- cleartomark stop
- }
- {
- /layerCnt dup load 1 sub store
- } ifelse
- } if
- } ifelse
- }ifelse
- } loop
-} def
-end
-userdict /clipRenderOff 15 dict dup begin
-put
-{
- /n /N /s /S /f /F /b /B
-}
-{
- {
- _doClip 1 eq
- {
- /_doClip 0 ddef _eo {eoclip} {clip} ifelse
- } if
- newpath
- } def
-} forall
-/Tr /pop load def
-/Bb {} def
-/BB /pop load def
-/Bg {12 npop} def
-/Bm {6 npop} def
-/Bc /Bm load def
-/Bh {4 npop} def
-end
-/Lb
-{
- 6 npop
- 7 2 roll
- 5 npop
- 0 eq
- {
- 0 eq
- {
- (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
- }
- {
-
- /clipForward? true def
-
- /Tx /pop load def
- /Tj /pop load def
-
- currentdict end clipRenderOff begin begin
- } ifelse
- }
- {
- 0 eq
- {
- save /discardSave exch store
- } if
- } ifelse
-} bind def
-/LB
-{
- discardSave dup null ne
- {
- restore
- }
- {
- pop
- clipForward?
- {
- currentdict
- end
- end
- begin
-
- /clipForward? false ddef
- } if
- } ifelse
-} bind def
-/Pb
-{
- pop pop
- 0 (%AI5_EndPalette) discard
-} bind def
-/Np
-{
- 0 (%AI5_End_NonPrinting--) discard
-} bind def
-/Ln /pop load def
-/Ap
-/pop load def
-/Ar
-{
- 72 exch div
- 0 dtransform dup mul exch dup mul add sqrt
- dup 1 lt
- {
- pop 1
- } if
- setflat
-} def
-/Mb
-{
- q
-} def
-/Md
-{
-} def
-/MB
-{
- Q
-} def
-/nc 4 dict def
-nc begin
-/setgray
-{
- pop
-} bind def
-/setcmykcolor
-{
- 4 npop
-} bind def
-/setrgbcolor
-{
- 3 npop
-} bind def
-/setcustomcolor
-{
- 2 npop
-} bind def
-currentdict readonly pop
-end
-/XP
-{
- 4 npop
-} bind def
-/XD
-{
- pop
-} bind def
-end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_cshow 2.0 8
-%%Title: (Writing System Operators)
-%%Version: 2.0 8
-%%CreationDate: (1/23/89) ()
-%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_cshow 14 dict dup begin put
-/initialize
-{
- Adobe_cshow begin
- Adobe_cshow
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- Adobe_cshow begin
-} def
-/terminate
-{
-currentdict Adobe_cshow eq
- {
- end
- } if
-} def
-/cforall
-{
- /_lobyte 0 ddef
- /_hibyte 0 ddef
- /_cproc exch ddef
- /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
- {
- /_lobyte exch ddef
- _hibyte 0 eq
- _cscript 1 eq
- _lobyte 129 ge _lobyte 159 le and
- _lobyte 224 ge _lobyte 252 le and or and
- _cscript 2 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 3 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 25 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript -1 eq
- or or or or and
- {
- /_hibyte _lobyte ddef
- }
- {
- _hibyte 256 mul _lobyte add
- _cproc
- /_hibyte 0 ddef
- } ifelse
- } forall
-} def
-/cstring
-{
- dup 256 lt
- {
- (s) dup 0 4 3 roll put
- }
- {
- dup 256 idiv exch 256 mod
- (hl) dup dup 0 6 5 roll put 1 4 3 roll put
- } ifelse
-} def
-/clength
-{
- 0 exch
- { 256 lt { 1 } { 2 } ifelse add } cforall
-} def
-/hawidthshow
-{
- {
- dup cstring
- show
- _hvax _hvay rmoveto
- _hvwb eq { _hvcx _hvcy rmoveto } if
- } cforall
-} def
-/vawidthshow
-{
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- -90 rotate
- 0 _fontRotateAdjust rmoveto
- cstring
- _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
- 0 _fontRotateAdjust neg rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- exch _hvay sub exch _hvax sub
- 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- 3 2 roll
- cstring
- dup stringwidth pop 2 div neg _fontAscent neg rmoveto
- show
- moveto
- } ifelse
- } cforall
-} def
-/hvawidthshow
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
-} def
-/hvwidthshow
-{
- 0 0 3 -1 roll hvawidthshow
-} def
-/hvashow
-{
- 0 0 0 6 -3 roll hvawidthshow
-} def
-/hvshow
-{
- 0 0 0 0 0 6 -1 roll hvawidthshow
-} def
-currentdict readonly pop end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_shading_AI8 1.0 0
-%%Title: (Adobe Illustrator 8 Shading Procset)
-%%Version: 1.0 0
-%%CreationDate: (12/17/97) ()
-%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
-userdict /defaultpacking currentpacking put true setpacking
-userdict /Adobe_shading_AI8 10 dict dup begin put
-/initialize {
- Adobe_shading_AI8 begin
- Adobe_shading_AI8 bdprocs
- Mesh /initialize get exec
-} def
-/terminate {
- currentdict Adobe_shading_AI8 eq {
- end
- } if
-} def
-/bdprocs {
- {
- dup xcheck 1 index type /arraytype eq and {
- bind
- } if
- pop pop
- } forall
-} def
-/X! {pop} def
-/X# {pop pop} def
-/Mesh 40 dict def
-Mesh begin
-/initialize {
- Mesh bdprocs
- Mesh begin
- /emulate? /AI8MeshEmulation where {
- pop AI8MeshEmulation
- }{
- systemdict /shfill known not
- } ifelse def
- end
-} def
-/bd {
- shadingdict begin
-} def
-/paint {
- emulate? {
- end
- }{
- /_lp /none ddef _fc /_lp /none ddef
-
- /AIColorSpace AIColorSpace tocolorspace store
- /ColorSpace AIColorSpace topsspace store
-
- version_ge_3010.106 not systemdict /setsmoothness known and {
- 0.0001 setsmoothness
- } if
-
- composite? {
- /DataSource getdatasrc def
- Matrix concat
- currentdict end
- shfill
- }{
- AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
- end
- }{
- /ColorSpace /DeviceGray store
- /Decode [0 1 0 1 0 1] store
- /DataSource getplatesrc def
- Matrix concat
- currentdict end
- shfill
- } ifelse
- } ifelse
- } ifelse
-} def
-/shadingdict 12 dict def
-shadingdict begin
- /ShadingType 6 def
- /BitsPerCoordinate 16 def
- /BitsPerComponent 8 def
- /BitsPerFlag 8 def
-end
-/datafile null def
-/databuf 256 string def
-/dataptr 0 def
-/srcspace null def
-/srcchannels 0 def
-/dstchannels 0 def
-/dstplate 0 def
-/srctodstcolor null def
-/getplatesrc {
- /srcspace AIColorSpace store
- /srcchannels AIColorSpace getnchannels store
- /dstchannels 1 store
- /dstplate getplateindex store
- /srctodstcolor srcspace makesmarks {
- dstplate 4 eq {
- {1 exch sub}
- }{
- {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
- } ifelse
- }{
- {srcchannels {pop} repeat 1}
- } ifelse store
- /datafile getdatasrc store
- /rdpatch168 load DataLength () /SubFileDecode filter
-} def
-/getdatasrc {
- /rdcmntline load /ASCII85Decode filter
-} def
-/rdpatch168 {
- /dataptr 0 store
- 49 rdcount
- 4 {
- dup {pop srcchannels getint8} if
- dup {pop srctodstcolor dstchannels putint8 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdpatch3216 {
- /dataptr 0 store
- 97 rdcount
- 4 {
- dup {pop srcchannels getint16} if
- dup {pop srctodstcolor dstchannels putint16 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdcount {
- dup 0 gt {
- datafile databuf dataptr 4 -1 roll getinterval readstring
- exch length dataptr add /dataptr exch store
- }{
- true
- } ifelse
-} def
-/getint8 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 255 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint8 {
- dup dataptr add /dataptr exch store
- dataptr exch
- {
- 1 sub exch
- 255 mul cvi
- databuf 2 index
- 3 -1 roll put
- } repeat
- pop
-} def
-/getint16 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 256 mul datafile read} if
- dup {pop add 65535 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint16 {
- dup 2 mul dataptr add /dataptr exch store
- dataptr exch
- {
- 2 sub exch
- 65535 mul cvi dup
- 256 idiv databuf 3 index 3 -1 roll put
- 256 mod databuf 2 index 1 add 3 -1 roll put
- } repeat
- pop
-} def
-/srcbuf 256 string def
-/rdcmntline {
- currentfile srcbuf readline pop
- (%) anchorsearch {pop} if
-} def
-/getplateindex {
- 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
-} def
-/aicsarray 4 array def
-/aicsaltvals 4 array def
-/aicsaltcolr aicsaltvals def
-/tocolorspace {
- dup type /arraytype eq {
- mark exch aload pop
- aicsarray 0 3 -1 roll put
- aicsarray 1 3 -1 roll put
- dup aicsarray 2 3 -1 roll put
- gettintxform aicsarray 3 3 -1 roll put
- counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
- aicsaltcolr astore pop pop
- aicsarray
- } if
-} def
-/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
-/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
-/gettintxform {
- /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
-} def
-/getnchannels {
- dup type /arraytype eq {0 get} if
- colorspacedict exch get begin Channels end
-} def
-/makesmarks {
- composite? {
- pop true
- }{
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin MarksPlate end
- } ifelse
-} def
-/markingplate {
- composite? {
- pop true
- }{
- dup type /arraytype eq {
- dup length getplateindex gt {getplateindex get}{pop false} ifelse
- } if
- } ifelse
-} def
-/tocmyk {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToCMYK end
-} def
-/topsspace {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToPSSpace end
-} def
-/colorspacedict 5 dict dup begin
- /DeviceGray 4 dict dup begin
- /Channels 1 def
- /MarksPlate {pop black?} def
- /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
- /ToPSSpace {} def
- end def
- /DeviceRGB 4 dict dup begin
- /Channels 3 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop _rgbtocmyk} def
- /ToPSSpace {} def
- end def
- /DeviceCMYK 4 dict dup begin
- /Channels 4 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop} def
- /ToPSSpace {} def
- end def
- /Separation 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- /findcmykcustomcolor where {
- pop dup 1 exch ToCMYK 5 -1 roll 1 get
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {} def
- end def
- /Process 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- isCMYKSep? {
- 1 exch ToCMYK 4 array astore getplateindex get 0 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {
- 4 array copy dup 0 /Separation put
- } def
- end def
-end def
-/isoverprint {
- /currentoverprint where {pop currentoverprint}{_of} ifelse
-} def
-/version_ge_3010.106 {
- version {cvr} stopped {
- pop
- false
- }{
- 3010.106 ge
- } ifelse
-} def
-end
-end
-defaultpacking setpacking
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeFont: Helvetica
-userdict /_useSmoothShade false put
-userdict /_aicmykps false put
-userdict /_forceToCMYK false put
-Adobe_level2_AI5 /initialize get exec
-Adobe_cshow /initialize get exec
-Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
-Adobe_ColorImage_AI6 /initialize get exec
-Adobe_shading_AI8 /initialize get exec
-Adobe_Illustrator_AI5 /initialize get exec
-[
-39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
-/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
-/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
-/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
-/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
-/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
-/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
-/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
-/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
-/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
-/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
-/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
-/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
-/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
-/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
-/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
-/hungarumlaut/ogonek/caron
-TE
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Helvetica Helvetica
-[/_Helvetica/Helvetica 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
-181/mu/partialdiff/summation/product/pi/integral 189/Omega
-195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
-/_Symbol_/Symbol 0 0 0 TZ
-%AI5_Begin_NonPrinting
-Np
-%AI3_BeginPattern: (bi-direction diagonals)
-(bi-direction diagonals) 24.2119 0.2119 96.2124 72.2119 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-8.2119 6.2119 m
-14.2119 0.2119 L
-F
-8.2119 0.2119 m
-14.2119 6.2119 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-24.2119 72.2119 m
-96.2124 0.2119 L
-S
-21.2109 69.2129 m
-90.2124 0.2119 L
-S
-21.207 63.2168 m
-84.2124 0.2119 L
-S
-21.2031 57.2207 m
-78.2124 0.2119 L
-S
-21.1987 51.2246 m
-72.2124 0.2119 L
-S
-21.1958 45.2275 m
-66.2119 0.2119 L
-S
-21.1919 39.2314 m
-60.2119 0.2119 L
-S
-21.188 33.2363 m
-54.2119 0.2119 L
-S
-21.1851 27.2402 m
-48.2119 0.2119 L
-S
-21.1812 21.2432 m
-42.2119 0.2119 L
-S
-21.1768 15.2471 m
-36.2119 0.2119 L
-S
-21.1729 9.251 m
-30.2119 0.2119 L
-S
-21.1699 3.2549 m
-24.2119 0.2119 L
-S
-30.2119 72.2119 m
-99.2134 3.21 L
-S
-36.2119 72.2119 m
-99.2173 9.2061 L
-S
-42.2119 72.2119 m
-99.2212 15.2021 L
-S
-48.2119 72.2119 m
-99.2251 21.1992 L
-S
-54.2119 72.2119 m
-99.228 27.1953 L
-S
-60.2119 72.2119 m
-99.2319 33.1904 L
-S
-66.2119 72.2119 m
-99.2358 39.1865 L
-S
-72.2124 72.2119 m
-99.2397 45.1836 L
-S
-78.2124 72.2119 m
-99.2427 51.1797 L
-S
-84.2124 72.2119 m
-99.2466 57.1758 L
-S
-90.2124 72.2119 m
-99.2505 63.1719 L
-S
-96.2124 72.2119 m
-99.2554 69.1689 L
-S
-0.2119 68.7119 m
-10.2119 58.7119 L
-S
-96.2124 72.2119 m
-24.2119 0.2119 L
-S
-90.2124 72.2119 m
-21.2109 3.21 L
-S
-84.2124 72.2119 m
-21.207 9.2061 L
-S
-78.2124 72.2119 m
-21.2031 15.2021 L
-S
-72.2124 72.2119 m
-21.1987 21.1982 L
-S
-66.2119 72.2119 m
-21.1958 27.1953 L
-S
-60.2119 72.2119 m
-21.1919 33.1904 L
-S
-54.2119 72.2119 m
-21.188 39.1865 L
-S
-48.2119 72.2119 m
-21.1851 45.1826 L
-S
-42.2119 72.2119 m
-21.1812 51.1797 L
-S
-36.2119 72.2119 m
-21.1768 57.1758 L
-S
-30.2119 72.2119 m
-21.1729 63.1719 L
-S
-24.2119 72.2119 m
-21.1699 69.168 L
-S
-99.2134 69.2129 m
-30.2119 0.2119 L
-S
-99.2173 63.2168 m
-36.2119 0.2119 L
-S
-99.2212 57.2207 m
-42.2119 0.2119 L
-S
-99.2251 51.2246 m
-48.2119 0.2119 L
-S
-99.228 45.2275 m
-54.2119 0.2119 L
-S
-99.2319 39.2314 m
-60.2119 0.2119 L
-S
-99.2358 33.2363 m
-66.2119 0.2119 L
-S
-99.2397 27.2393 m
-72.2124 0.2119 L
-S
-99.2427 21.2432 m
-78.2124 0.2119 L
-S
-99.2466 15.2471 m
-84.2124 0.2119 L
-S
-99.2505 9.251 m
-90.2124 0.2119 L
-S
-99.2554 3.2539 m
-96.2124 0.2119 L
-S
-0.2119 58.7119 m
-10.2119 68.7119 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (black dots)
-(black dots) 16 0.6885 88 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6.6885 m
-6 0.6885 L
-F
-0 0.6885 m
-6 6.6885 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-28.9365 3.1885 m
-28.9365 3.1885 l
-S
-17.125 3.375 m
-17.125 3.375 l
-S
-26.5 4.6885 m
-26.5 4.6885 l
-S
-35.6865 5.8135 m
-35.6865 5.8135 l
-S
-19.75 0.9385 m
-19.75 0.9385 l
-S
-23.125 7.3135 m
-23.125 7.3135 l
-S
-40.5615 2.4385 m
-40.5615 2.4385 l
-S
-43 1.125 m
-43 1.125 l
-S
-45.0615 5.4385 m
-45.0615 5.4385 l
-S
-56.875 6.375 m
-56.875 6.375 l
-S
-65.3115 5.0635 m
-65.3115 5.0635 l
-S
-51.0615 6.9385 m
-51.0615 6.9385 l
-S
-40.5615 6.9385 m
-40.5615 6.9385 l
-S
-31.1865 6.9385 m
-31.1865 6.9385 l
-S
-59.875 9.5635 m
-59.875 9.5635 l
-S
-62.6865 1.3135 m
-62.6865 1.3135 l
-S
-34.5615 0.9385 m
-34.5615 0.9385 l
-S
-48.4365 2.25 m
-48.4365 2.25 l
-S
-56.3115 0.75 m
-56.3115 0.75 l
-S
-66.625 24.5635 m
-66.625 24.5635 l
-S
-74.3115 24.9385 m
-74.3115 24.9385 l
-S
-78.8115 24.375 m
-78.8115 24.375 l
-S
-82.9365 2.0635 m
-82.9365 2.0635 l
-S
-68.3115 11.8135 m
-68.3115 11.8135 l
-S
-86.5 17.8135 m
-86.5 17.8135 l
-S
-87.0615 4.6885 m
-87.0615 4.6885 l
-S
-79.9365 19.875 m
-79.9365 19.875 l
-S
-77.875 1.125 m
-77.875 1.125 l
-S
-69.625 20.25 m
-69.625 20.25 l
-S
-67.75 6 m
-67.75 6 l
-S
-73.375 17.625 m
-73.375 17.625 l
-S
-76.9365 16.875 m
-76.9365 16.875 l
-S
-72.4365 3.375 m
-72.4365 3.375 l
-S
-77.3115 9.5635 m
-77.3115 9.5635 l
-S
-73.9365 11.25 m
-73.9365 11.25 l
-S
-83.125 7.875 m
-83.125 7.875 l
-S
-85.1865 12.75 m
-85.1865 12.75 l
-S
-81.0615 13.875 m
-81.0615 13.875 l
-S
-17.6865 16.125 m
-17.6865 16.125 l
-S
-45.25 10.3135 m
-45.25 10.3135 l
-S
-31.5615 21.375 m
-31.5615 21.375 l
-S
-20.875 11.8135 m
-20.875 11.8135 l
-S
-34.75 18.5635 m
-34.75 18.5635 l
-S
-25.75 21.9385 m
-25.75 21.9385 l
-S
-34.5615 24.5635 m
-34.5615 24.5635 l
-S
-37.375 16.3135 m
-37.375 16.3135 l
-S
-36.625 12.75 m
-36.625 12.75 l
-S
-23.125 17.25 m
-23.125 17.25 l
-S
-29.3115 12.375 m
-29.3115 12.375 l
-S
-31 15.75 m
-31 15.75 l
-S
-46.1865 22.875 m
-46.1865 22.875 l
-S
-52 15.375 m
-52 15.375 l
-S
-58.375 13.3135 m
-58.375 13.3135 l
-S
-62.6865 20.0635 m
-62.6865 20.0635 l
-S
-62.875 14.0635 m
-62.875 14.0635 l
-S
-44.6865 20.4385 m
-44.6865 20.4385 l
-S
-46.75 15.1885 m
-46.75 15.1885 l
-S
-42.0615 17.0635 m
-42.0615 17.0635 l
-S
-55.1865 17.4385 m
-55.1865 17.4385 l
-S
-58.9365 23.25 m
-58.9365 23.25 l
-S
-60.0615 17.4385 m
-60.0615 17.4385 l
-S
-42.4365 25.125 m
-42.4365 25.125 l
-S
-65.3115 20.625 m
-65.3115 20.625 l
-S
-51.625 24.5635 m
-51.625 24.5635 l
-S
-52 20.625 m
-52 20.625 l
-S
-18.8115 24 m
-18.8115 24 l
-S
-21.25 24.9385 m
-21.25 24.9385 l
-S
-19.375 70.875 m
-19.375 70.875 l
-S
-26.125 66.5635 m
-26.125 66.5635 l
-S
-20.125 66.375 m
-20.125 66.375 l
-S
-38.5 69 m
-38.5 69 l
-S
-47.125 71.625 m
-47.125 71.625 l
-S
-62.875 68.0635 m
-62.875 68.0635 l
-S
-49.75 67.5 m
-49.75 67.5 l
-S
-38.875 65.625 m
-38.875 65.625 l
-S
-29.3115 70.3135 m
-29.3115 70.3135 l
-S
-31.9365 67.5 m
-31.9365 67.5 l
-S
-57.25 65.4385 m
-57.25 65.4385 l
-S
-23.5 69.1885 m
-23.5 69.1885 l
-S
-45.625 65.25 m
-45.625 65.25 l
-S
-26.6865 63.9385 m
-26.6865 63.9385 l
-S
-50.5 63.75 m
-50.5 63.75 l
-S
-32.6865 72 m
-32.6865 72 l
-S
-52.9365 71.4385 m
-52.9365 71.4385 l
-S
-57.8115 69.375 m
-57.8115 69.375 l
-S
-61 64.3135 m
-61 64.3135 l
-S
-28.9365 48.1885 m
-28.9365 48.1885 l
-S
-17.125 48.375 m
-17.125 48.375 l
-S
-21.4365 42.375 m
-21.4365 42.375 l
-S
-19.375 36 m
-19.375 36 l
-S
-26.125 31.6885 m
-26.125 31.6885 l
-S
-20.125 31.5 m
-20.125 31.5 l
-S
-26.5 49.6885 m
-26.5 49.6885 l
-S
-35.6865 50.8135 m
-35.6865 50.8135 l
-S
-19.75 45.9385 m
-19.75 45.9385 l
-S
-23.125 52.3135 m
-23.125 52.3135 l
-S
-40.5615 47.4385 m
-40.5615 47.4385 l
-S
-43 46.125 m
-43 46.125 l
-S
-23.5 39.1885 m
-23.5 39.1885 l
-S
-38.5 34.125 m
-38.5 34.125 l
-S
-47.125 36.75 m
-47.125 36.75 l
-S
-45.0615 50.4385 m
-45.0615 50.4385 l
-S
-56.875 51.375 m
-56.875 51.375 l
-S
-42.8115 39.375 m
-42.8115 39.375 l
-S
-62.875 33.1885 m
-62.875 33.1885 l
-S
-49.75 32.625 m
-49.75 32.625 l
-S
-38.875 30.75 m
-38.875 30.75 l
-S
-29.3115 35.4385 m
-29.3115 35.4385 l
-S
-31.9365 32.625 m
-31.9365 32.625 l
-S
-54.75 30.1885 m
-54.75 30.1885 l
-S
-64.9365 39.75 m
-64.9365 39.75 l
-S
-46.1865 41.8135 m
-46.1865 41.8135 l
-S
-65.3115 50.0635 m
-65.3115 50.0635 l
-S
-51.0615 51.9385 m
-51.0615 51.9385 l
-S
-23.5 34.3135 m
-23.5 34.3135 l
-S
-40.5615 51.9385 m
-40.5615 51.9385 l
-S
-31.1865 51.9385 m
-31.1865 51.9385 l
-S
-45.625 30.375 m
-45.625 30.375 l
-S
-26.6865 29.0635 m
-26.6865 29.0635 l
-S
-59.875 54.5635 m
-59.875 54.5635 l
-S
-50.5 28.875 m
-50.5 28.875 l
-S
-60.75 47.6885 m
-60.75 47.6885 l
-S
-30.625 42.75 m
-30.625 42.75 l
-S
-26.6865 42.375 m
-26.6865 42.375 l
-S
-36.8115 40.125 m
-36.8115 40.125 l
-S
-37.75 43.5 m
-37.75 43.5 l
-S
-34.5615 45.9385 m
-34.5615 45.9385 l
-S
-32.6865 37.125 m
-32.6865 37.125 l
-S
-61.9365 42.75 m
-61.9365 42.75 l
-S
-48.4365 47.25 m
-48.4365 47.25 l
-S
-54.625 42.375 m
-54.625 42.375 l
-S
-56.3115 45.75 m
-56.3115 45.75 l
-S
-52.9365 36.5635 m
-52.9365 36.5635 l
-S
-57.8115 34.5 m
-57.8115 34.5 l
-S
-58.9365 38.625 m
-58.9365 38.625 l
-S
-61 29.4385 m
-61 29.4385 l
-S
-65.875 29.625 m
-65.875 29.625 l
-S
-70.5615 27.75 m
-70.5615 27.75 l
-S
-71.5 52.875 m
-71.5 52.875 l
-S
-69.8115 34.3135 m
-69.8115 34.3135 l
-S
-76.375 27.375 m
-76.375 27.375 l
-S
-71.3115 41.0635 m
-71.3115 41.0635 l
-S
-77.3115 45.375 m
-77.3115 45.375 l
-S
-82 28.6885 m
-82 28.6885 l
-S
-88.1865 27.5635 m
-88.1865 27.5635 l
-S
-83.6865 43.3135 m
-83.6865 43.3135 l
-S
-88 50.0635 m
-88 50.0635 l
-S
-88.1865 44.0635 m
-88.1865 44.0635 l
-S
-88.1865 33.1885 m
-88.1865 33.1885 l
-S
-70 50.4385 m
-70 50.4385 l
-S
-68.875 59.625 m
-68.875 59.625 l
-S
-66.8115 38.25 m
-66.8115 38.25 l
-S
-74.75 42.1885 m
-74.75 42.1885 l
-S
-67.375 47.0635 m
-67.375 47.0635 l
-S
-72.25 64.5 m
-72.25 64.5 l
-S
-73.5615 66.9385 m
-73.5615 66.9385 l
-S
-80.5 47.4385 m
-80.5 47.4385 l
-S
-85.5615 62.4385 m
-85.5615 62.4385 l
-S
-82.9365 71.0635 m
-82.9365 71.0635 l
-S
-69.25 69 m
-69.25 69 l
-S
-80.3115 66.75 m
-80.3115 66.75 l
-S
-84.25 53.25 m
-84.25 53.25 l
-S
-87.0615 55.875 m
-87.0615 55.875 l
-S
-77.875 70.125 m
-77.875 70.125 l
-S
-85.375 47.4385 m
-85.375 47.4385 l
-S
-67.75 64.5 m
-67.75 64.5 l
-S
-67.75 55.125 m
-67.75 55.125 l
-S
-81.625 31.125 m
-81.625 31.125 l
-S
-79.375 39 m
-79.375 39 l
-S
-75.8115 33 m
-75.8115 33 l
-S
-84.4365 37.3135 m
-84.4365 37.3135 l
-S
-76.9365 54.5635 m
-76.9365 54.5635 l
-S
-77.3115 50.625 m
-77.3115 50.625 l
-S
-79.5615 60.75 m
-79.5615 60.75 l
-S
-76.1865 61.6885 m
-76.1865 61.6885 l
-S
-73.75 58.5 m
-73.75 58.5 l
-S
-82.5615 56.625 m
-82.5615 56.625 l
-S
-72.4365 72.375 m
-72.4365 72.375 l
-S
-61.75 25.875 m
-61.75 25.875 l
-S
-57.25 26.625 m
-57.25 26.625 l
-S
-25.75 60.75 m
-25.75 60.75 l
-S
-34.1865 59.4385 m
-34.1865 59.4385 l
-S
-19.9365 61.3135 m
-19.9365 61.3135 l
-S
-31.5615 55.6885 m
-31.5615 55.6885 l
-S
-17.3115 56.625 m
-17.3115 56.625 l
-S
-25.1865 55.125 m
-25.1865 55.125 l
-S
-40.375 62.25 m
-40.375 62.25 l
-S
-46.1865 54.75 m
-46.1865 54.75 l
-S
-56.875 59.4385 m
-56.875 59.4385 l
-S
-40.25 58.1885 m
-40.25 58.1885 l
-S
-36.25 56.4385 m
-36.25 56.4385 l
-S
-49.375 56.8135 m
-49.375 56.8135 l
-S
-53.125 62.625 m
-53.125 62.625 l
-S
-54.25 56.8135 m
-54.25 56.8135 l
-S
-59.5 60 m
-59.5 60 l
-S
-46.1865 60 m
-46.1865 60 l
-S
-30.8115 28.5 m
-30.8115 28.5 l
-S
-19.75 72.9385 m
-19.75 72.9385 l
-S
-43 73.125 m
-43 73.125 l
-S
-34.5615 72.9385 m
-34.5615 72.9385 l
-S
-56.3115 72.75 m
-56.3115 72.75 l
-S
-77.875 73.125 m
-77.875 73.125 l
-S
-72.4365 0.375 m
-72.4365 0.375 l
-S
-16.1865 27.5635 m
-16.1865 27.5635 l
-S
-16 50.0635 m
-16 50.0635 l
-S
-16.1865 44.0635 m
-16.1865 44.0635 l
-S
-16.1865 33.1885 m
-16.1865 33.1885 l
-S
-6 62.3135 m
-6.208 62.3135 6.375 62.4805 6.375 62.6885 c
-6.375 62.8945 6.208 63.0635 6 63.0635 c
-5.793 63.0635 5.625 62.8945 5.625 62.6885 c
-5.625 62.4805 5.793 62.3135 6 62.3135 c
-s
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (horizontal rules)
-(horizontal rules) 16 0 88 73.9463 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6 m
-6 0 L
-F
-0 0 m
-6 6 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-88 72.9727 m
-16 72.9727 l
-S
-88 71.0273 m
-16 71.0273 L
-S
-88 67.1357 m
-16 67.1357 L
-S
-88 65.1904 m
-16 65.1904 L
-S
-88 63.2441 m
-16 63.2441 L
-S
-88 61.2979 m
-16 61.2979 L
-S
-88 57.4072 m
-16 57.4072 L
-S
-88 55.4609 m
-16 55.4609 L
-S
-88 53.5156 m
-16 53.5156 L
-S
-88 51.5703 m
-16 51.5703 L
-S
-88 49.624 m
-16 49.624 L
-S
-88 47.6787 m
-16 47.6787 L
-S
-88 45.7334 m
-16 45.7334 L
-S
-88 43.7871 m
-16 43.7871 L
-S
-88 39.8965 m
-16 39.8965 L
-S
-88 37.9502 m
-16 37.9502 L
-S
-88 36.0049 m
-16 36.0049 L
-S
-88 34.0586 m
-16 34.0586 L
-S
-88 32.1133 m
-16 32.1133 L
-S
-88 30.168 m
-16 30.168 L
-S
-88 26.2764 m
-16 26.2764 L
-S
-88 22.3848 m
-16 22.3848 L
-S
-88 20.4395 m
-16 20.4395 L
-S
-88 18.4941 m
-16 18.4941 L
-S
-88 16.5479 m
-16 16.5479 L
-S
-88 14.6016 m
-16 14.6016 L
-S
-88 12.6572 m
-16 12.6572 L
-S
-88 8.7646 m
-16 8.7646 L
-S
-88 6.8193 m
-16 6.8193 L
-S
-88 4.874 m
-16 4.874 L
-S
-88 0.9727 m
-16 0.9727 l
-S
-88 2.9277 m
-16 2.9277 L
-S
-88 69.0811 m
-16 69.0811 L
-S
-88 59.3525 m
-16 59.3525 L
-S
-88 41.8418 m
-16 41.8418 L
-S
-88 28.2217 m
-16 28.2217 L
-S
-88 24.3311 m
-16 24.3311 L
-S
-88 10.7109 m
-16 10.7109 L
-S
-6 69.0811 m
-2 69.0811 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (one direction diagonals)
-(one direction diagonals) 28.856 4.6211 100.855 76.6211 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-5.106 10.6211 m
-11.106 4.6211 L
-F
-5.106 4.6211 m
-11.106 10.6211 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 1 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-21.3716 66.1055 m
-39.3706 84.1055 l
-S
-21.3716 60.1055 m
-45.3706 84.1055 l
-S
-21.3716 54.1055 m
-51.3706 84.1055 l
-S
-21.3716 48.1055 m
-57.3706 84.1055 l
-S
-21.3716 42.1055 m
-63.3706 84.1055 l
-S
-21.3716 36.1055 m
-69.3706 84.1055 l
-S
-21.3716 30.1055 m
-75.3706 84.1055 l
-S
-21.3716 24.1055 m
-81.3706 84.1055 l
-S
-21.3716 18.1055 m
-87.3706 84.1055 l
-S
-21.3716 12.1055 m
-93.3706 84.1055 l
-S
-21.3716 6.1055 m
-99.3706 84.1055 l
-S
-21.3716 0.1064 m
-105.3706 84.1055 l
-S
-27.3716 0.1064 m
-105.3706 78.1055 l
-S
-33.3706 0.1064 m
-105.3706 72.1055 l
-S
-39.3706 0.1064 m
-105.3706 66.1055 l
-S
-45.3706 0.1064 m
-105.3706 60.1055 l
-S
-51.3706 0.1064 m
-105.3706 54.1055 l
-S
-57.3706 0.1064 m
-105.3706 48.1055 l
-S
-63.3706 0.1064 m
-105.3706 42.1055 l
-S
-69.3706 0.1064 m
-105.3706 36.1055 l
-S
-75.3706 0.1064 m
-105.3706 30.1055 l
-S
-81.3706 0.1064 m
-105.3706 24.1055 l
-S
-87.3706 0.1064 m
-105.3706 18.1055 l
-S
-93.3706 0.1064 m
-105.3706 12.1055 l
-S
-2 j
-0.106 63.1211 m
-10.106 73.1211 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (white dots)
-(white dots) 0.375 0.6885 72.375 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-13.3115 3.1885 m
-13.3115 3.1885 l
-S
-1.5 3.375 m
-1.5 3.375 l
-S
-10.875 4.6885 m
-10.875 4.6885 l
-S
-20.0615 5.8135 m
-20.0615 5.8135 l
-S
-4.125 0.9385 m
-4.125 0.9385 l
-S
-7.5 7.3135 m
-7.5 7.3135 l
-S
-24.9365 2.4385 m
-24.9365 2.4385 l
-S
-27.375 1.125 m
-27.375 1.125 l
-S
-29.4365 5.4385 m
-29.4365 5.4385 l
-S
-41.25 6.375 m
-41.25 6.375 l
-S
-49.6865 5.0635 m
-49.6865 5.0635 l
-S
-35.4365 6.9385 m
-35.4365 6.9385 l
-S
-24.9365 6.9385 m
-24.9365 6.9385 l
-S
-15.5615 6.9385 m
-15.5615 6.9385 l
-S
-44.25 9.5635 m
-44.25 9.5635 l
-S
-47.0615 1.3135 m
-47.0615 1.3135 l
-S
-18.9365 0.9385 m
-18.9365 0.9385 l
-S
-32.8115 2.25 m
-32.8115 2.25 l
-S
-40.6865 0.75 m
-40.6865 0.75 l
-S
-51 24.5635 m
-51 24.5635 l
-S
-58.6865 24.9385 m
-58.6865 24.9385 l
-S
-63.1865 24.375 m
-63.1865 24.375 l
-S
-67.3115 2.0635 m
-67.3115 2.0635 l
-S
-52.6865 11.8135 m
-52.6865 11.8135 l
-S
-70.875 17.8135 m
-70.875 17.8135 l
-S
-71.4365 4.6885 m
-71.4365 4.6885 l
-S
-64.3115 19.875 m
-64.3115 19.875 l
-S
-62.25 1.125 m
-62.25 1.125 l
-S
-54 20.25 m
-54 20.25 l
-S
-52.125 6 m
-52.125 6 l
-S
-57.75 17.625 m
-57.75 17.625 l
-S
-61.3115 16.875 m
-61.3115 16.875 l
-S
-56.8115 3.375 m
-56.8115 3.375 l
-S
-61.6865 9.5635 m
-61.6865 9.5635 l
-S
-58.3115 11.25 m
-58.3115 11.25 l
-S
-67.5 7.875 m
-67.5 7.875 l
-S
-69.5615 12.75 m
-69.5615 12.75 l
-S
-65.4365 13.875 m
-65.4365 13.875 l
-S
-2.0615 16.125 m
-2.0615 16.125 l
-S
-29.625 10.3135 m
-29.625 10.3135 l
-S
-15.9365 21.375 m
-15.9365 21.375 l
-S
-5.25 11.8135 m
-5.25 11.8135 l
-S
-19.125 18.5635 m
-19.125 18.5635 l
-S
-10.125 21.9385 m
-10.125 21.9385 l
-S
-18.9365 24.5635 m
-18.9365 24.5635 l
-S
-21.75 16.3135 m
-21.75 16.3135 l
-S
-21 12.75 m
-21 12.75 l
-S
-7.5 17.25 m
-7.5 17.25 l
-S
-13.6865 12.375 m
-13.6865 12.375 l
-S
-15.375 15.75 m
-15.375 15.75 l
-S
-30.5615 22.875 m
-30.5615 22.875 l
-S
-36.375 15.375 m
-36.375 15.375 l
-S
-42.75 13.3135 m
-42.75 13.3135 l
-S
-47.0615 20.0635 m
-47.0615 20.0635 l
-S
-47.25 14.0635 m
-47.25 14.0635 l
-S
-29.0615 20.4385 m
-29.0615 20.4385 l
-S
-31.125 15.1885 m
-31.125 15.1885 l
-S
-26.4365 17.0635 m
-26.4365 17.0635 l
-S
-39.5615 17.4385 m
-39.5615 17.4385 l
-S
-43.3115 23.25 m
-43.3115 23.25 l
-S
-44.4365 17.4385 m
-44.4365 17.4385 l
-S
-26.8115 25.125 m
-26.8115 25.125 l
-S
-49.6865 20.625 m
-49.6865 20.625 l
-S
-36 24.5635 m
-36 24.5635 l
-S
-36.375 20.625 m
-36.375 20.625 l
-S
-3.1865 24 m
-3.1865 24 l
-S
-5.625 24.9385 m
-5.625 24.9385 l
-S
-3.75 70.875 m
-3.75 70.875 l
-S
-10.5 66.5635 m
-10.5 66.5635 l
-S
-4.5 66.375 m
-4.5 66.375 l
-S
-22.875 69 m
-22.875 69 l
-S
-31.5 71.625 m
-31.5 71.625 l
-S
-47.25 68.0635 m
-47.25 68.0635 l
-S
-34.125 67.5 m
-34.125 67.5 l
-S
-23.25 65.625 m
-23.25 65.625 l
-S
-13.6865 70.3135 m
-13.6865 70.3135 l
-S
-16.3115 67.5 m
-16.3115 67.5 l
-S
-41.625 65.4385 m
-41.625 65.4385 l
-S
-7.875 69.1885 m
-7.875 69.1885 l
-S
-30 65.25 m
-30 65.25 l
-S
-11.0615 63.9385 m
-11.0615 63.9385 l
-S
-34.875 63.75 m
-34.875 63.75 l
-S
-17.0615 72 m
-17.0615 72 l
-S
-37.3115 71.4385 m
-37.3115 71.4385 l
-S
-42.1865 69.375 m
-42.1865 69.375 l
-S
-45.375 64.3135 m
-45.375 64.3135 l
-S
-13.3115 48.1885 m
-13.3115 48.1885 l
-S
-1.5 48.375 m
-1.5 48.375 l
-S
-5.8115 42.375 m
-5.8115 42.375 l
-S
-3.75 36 m
-3.75 36 l
-S
-10.5 31.6885 m
-10.5 31.6885 l
-S
-4.5 31.5 m
-4.5 31.5 l
-S
-10.875 49.6885 m
-10.875 49.6885 l
-S
-20.0615 50.8135 m
-20.0615 50.8135 l
-S
-4.125 45.9385 m
-4.125 45.9385 l
-S
-7.5 52.3135 m
-7.5 52.3135 l
-S
-24.9365 47.4385 m
-24.9365 47.4385 l
-S
-27.375 46.125 m
-27.375 46.125 l
-S
-7.875 39.1885 m
-7.875 39.1885 l
-S
-22.875 34.125 m
-22.875 34.125 l
-S
-31.5 36.75 m
-31.5 36.75 l
-S
-29.4365 50.4385 m
-29.4365 50.4385 l
-S
-41.25 51.375 m
-41.25 51.375 l
-S
-27.1865 39.375 m
-27.1865 39.375 l
-S
-47.25 33.1885 m
-47.25 33.1885 l
-S
-34.125 32.625 m
-34.125 32.625 l
-S
-23.25 30.75 m
-23.25 30.75 l
-S
-13.6865 35.4385 m
-13.6865 35.4385 l
-S
-16.3115 32.625 m
-16.3115 32.625 l
-S
-39.125 30.1885 m
-39.125 30.1885 l
-S
-49.3115 39.75 m
-49.3115 39.75 l
-S
-30.5615 41.8135 m
-30.5615 41.8135 l
-S
-49.6865 50.0635 m
-49.6865 50.0635 l
-S
-35.4365 51.9385 m
-35.4365 51.9385 l
-S
-7.875 34.3135 m
-7.875 34.3135 l
-S
-24.9365 51.9385 m
-24.9365 51.9385 l
-S
-15.5615 51.9385 m
-15.5615 51.9385 l
-S
-30 30.375 m
-30 30.375 l
-S
-11.0615 29.0635 m
-11.0615 29.0635 l
-S
-44.25 54.5635 m
-44.25 54.5635 l
-S
-34.875 28.875 m
-34.875 28.875 l
-S
-45.125 47.6885 m
-45.125 47.6885 l
-S
-15 42.75 m
-15 42.75 l
-S
-11.0615 42.375 m
-11.0615 42.375 l
-S
-21.1865 40.125 m
-21.1865 40.125 l
-S
-22.125 43.5 m
-22.125 43.5 l
-S
-18.9365 45.9385 m
-18.9365 45.9385 l
-S
-17.0615 37.125 m
-17.0615 37.125 l
-S
-46.3115 42.75 m
-46.3115 42.75 l
-S
-32.8115 47.25 m
-32.8115 47.25 l
-S
-39 42.375 m
-39 42.375 l
-S
-40.6865 45.75 m
-40.6865 45.75 l
-S
-37.3115 36.5635 m
-37.3115 36.5635 l
-S
-42.1865 34.5 m
-42.1865 34.5 l
-S
-43.3115 38.625 m
-43.3115 38.625 l
-S
-45.375 29.4385 m
-45.375 29.4385 l
-S
-50.25 29.625 m
-50.25 29.625 l
-S
-54.9365 27.75 m
-54.9365 27.75 l
-S
-55.875 52.875 m
-55.875 52.875 l
-S
-54.1865 34.3135 m
-54.1865 34.3135 l
-S
-60.75 27.375 m
-60.75 27.375 l
-S
-55.6865 41.0635 m
-55.6865 41.0635 l
-S
-61.6865 45.375 m
-61.6865 45.375 l
-S
-66.375 28.6885 m
-66.375 28.6885 l
-S
-72.5615 27.5635 m
-72.5615 27.5635 l
-S
-68.0615 43.3135 m
-68.0615 43.3135 l
-S
-72.375 50.0635 m
-72.375 50.0635 l
-S
-72.5615 44.0635 m
-72.5615 44.0635 l
-S
-72.5615 33.1885 m
-72.5615 33.1885 l
-S
-54.375 50.4385 m
-54.375 50.4385 l
-S
-53.25 59.625 m
-53.25 59.625 l
-S
-51.1865 38.25 m
-51.1865 38.25 l
-S
-59.125 42.1885 m
-59.125 42.1885 l
-S
-51.75 47.0635 m
-51.75 47.0635 l
-S
-56.625 64.5 m
-56.625 64.5 l
-S
-57.9365 66.9385 m
-57.9365 66.9385 l
-S
-64.875 47.4385 m
-64.875 47.4385 l
-S
-69.9365 62.4385 m
-69.9365 62.4385 l
-S
-67.3115 71.0635 m
-67.3115 71.0635 l
-S
-53.625 69 m
-53.625 69 l
-S
-64.6865 66.75 m
-64.6865 66.75 l
-S
-68.625 53.25 m
-68.625 53.25 l
-S
-71.4365 55.875 m
-71.4365 55.875 l
-S
-62.25 70.125 m
-62.25 70.125 l
-S
-69.75 47.4385 m
-69.75 47.4385 l
-S
-52.125 64.5 m
-52.125 64.5 l
-S
-52.125 55.125 m
-52.125 55.125 l
-S
-66 31.125 m
-66 31.125 l
-S
-63.75 39 m
-63.75 39 l
-S
-60.1865 33 m
-60.1865 33 l
-S
-68.8115 37.3135 m
-68.8115 37.3135 l
-S
-61.3115 54.5635 m
-61.3115 54.5635 l
-S
-61.6865 50.625 m
-61.6865 50.625 l
-S
-63.9365 60.75 m
-63.9365 60.75 l
-S
-60.5615 61.6885 m
-60.5615 61.6885 l
-S
-58.125 58.5 m
-58.125 58.5 l
-S
-66.9365 56.625 m
-66.9365 56.625 l
-S
-56.8115 72.375 m
-56.8115 72.375 l
-S
-46.125 25.875 m
-46.125 25.875 l
-S
-41.625 26.625 m
-41.625 26.625 l
-S
-10.125 60.75 m
-10.125 60.75 l
-S
-18.5615 59.4385 m
-18.5615 59.4385 l
-S
-4.3115 61.3135 m
-4.3115 61.3135 l
-S
-15.9365 55.6885 m
-15.9365 55.6885 l
-S
-1.6865 56.625 m
-1.6865 56.625 l
-S
-9.5615 55.125 m
-9.5615 55.125 l
-S
-24.75 62.25 m
-24.75 62.25 l
-S
-30.5615 54.75 m
-30.5615 54.75 l
-S
-41.25 59.4385 m
-41.25 59.4385 l
-S
-24.625 58.1885 m
-24.625 58.1885 l
-S
-20.625 56.4385 m
-20.625 56.4385 l
-S
-33.75 56.8135 m
-33.75 56.8135 l
-S
-37.5 62.625 m
-37.5 62.625 l
-S
-38.625 56.8135 m
-38.625 56.8135 l
-S
-43.875 60 m
-43.875 60 l
-S
-30.5615 60 m
-30.5615 60 l
-S
-15.1865 28.5 m
-15.1865 28.5 l
-S
-4.125 72.9385 m
-4.125 72.9385 l
-S
-27.375 73.125 m
-27.375 73.125 l
-S
-18.9365 72.9385 m
-18.9365 72.9385 l
-S
-40.6865 72.75 m
-40.6865 72.75 l
-S
-62.25 73.125 m
-62.25 73.125 l
-S
-56.8115 0.375 m
-56.8115 0.375 l
-S
-0.5615 27.5635 m
-0.5615 27.5635 l
-S
-0.375 50.0635 m
-0.375 50.0635 l
-S
-0.5615 44.0635 m
-0.5615 44.0635 l
-S
-0.5615 33.1885 m
-0.5615 33.1885 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginBrushPattern
-(New Pattern 2)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7838.1201 8586 L
--7838.1201 8500.6914 L
--7884 8500.6914 L
--7884 8586 L
-n
-u
--7850.4111 8533.3125 m
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
-n
--7843.6582 8532.1602 m
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
-n
--7870.0361 8579.5879 m
--7870.0688 8579.5859 -7870.1006 8579.584 -7870.1318 8579.5801 c
--7870.1162 8579.582 -7870.1016 8579.584 -7870.0854 8579.585 c
--7870.0703 8579.5859 -7870.0527 8579.5879 -7870.0361 8579.5879 c
-n
--7854.5366 8533.6719 m
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
-n
--7839.1553 8576.4043 m
--7839.0625 8576.3281 -7838.9775 8576.252 -7838.9009 8576.1758 c
--7838.5967 8575.8672 -7838.4385 8575.5469 -7838.4385 8575.2207 c
--7838.4385 8575.6289 -7838.689 8576.0254 -7839.1553 8576.4043 c
-n
--7877.3232 8578.5703 m
--7877.3247 8578.5703 -7877.3281 8578.5693 -7877.3311 8578.5684 c
--7877.3306 8578.5693 -7877.3281 8578.5693 -7877.3271 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3232 8578.5703 c
-n
--7882.21 8577.0645 m
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.21 8577.0645 L
-n
--7858.9209 8533.8545 m
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
-n
--7863.582 8533.8535 m
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
-n
--7865.667 8533.7881 m
--7865.7642 8533.7842 -7865.8594 8533.7793 -7865.9561 8533.7754 c
--7865.9058 8533.7773 -7865.8608 8533.7813 -7865.8096 8533.7832 c
--7865.7642 8533.7852 -7865.7134 8533.7861 -7865.667 8533.7881 c
-n
--7884 8529.1426 m
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 c
-n
--7868.0718 8533.6602 m
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
-n
--7878.811 8532.1523 m
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
-n
--7872.1201 8533.3027 m
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
-n
--7838.4385 8529.1426 m
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
-n
--7839.0342 8530.2168 m
--7839.332 8530.4844 -7839.731 8530.7432 -7840.2358 8530.9902 c
--7840.2334 8530.9893 -7840.231 8530.9883 -7840.229 8530.9863 c
--7839.7271 8530.7402 -7839.3311 8530.4834 -7839.0342 8530.2168 c
-n
--7841.187 8531.4004 m
--7841.187 8531.4004 L
--7841.187 8531.4004 L
-n
--7884 8575.2207 m
--7884 8575.5 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.501 -7884 8575.2207 c
-n
--7856.4824 8533.7754 m
--7856.5791 8533.7793 -7856.6758 8533.7842 -7856.7729 8533.7881 c
--7856.7246 8533.7861 -7856.6758 8533.7852 -7856.6279 8533.7832 c
--7856.5791 8533.7813 -7856.5313 8533.7773 -7856.4824 8533.7754 c
-n
--7872.0942 8579.3828 m
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
-n
--7882.2026 8530.9902 m
--7882.46 8530.8633 -7882.687 8530.7344 -7882.8936 8530.6016 c
--7882.6904 8530.7324 -7882.4639 8530.8613 -7882.21 8530.9863 c
--7882.208 8530.9883 -7882.2041 8530.9893 -7882.2026 8530.9902 c
-n
--7854.4766 8579.7461 m
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
-n
--7840.229 8577.0645 m
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7840.229 8577.0645 L
-n
--7852.2998 8579.5801 m
--7852.335 8579.583 -7852.3706 8579.5859 -7852.4072 8579.5898 c
--7852.3882 8579.5879 -7852.3706 8579.5869 -7852.3521 8579.585 c
--7852.334 8579.584 -7852.3174 8579.582 -7852.2998 8579.5801 c
-n
--7856.5601 8579.8574 m
--7856.6055 8579.8594 -7856.6514 8579.8613 -7856.6958 8579.8633 c
--7856.6738 8579.8623 -7856.6494 8579.8613 -7856.6279 8579.8613 c
--7856.6055 8579.8604 -7856.583 8579.8584 -7856.5601 8579.8574 c
-n
--7868.0186 8579.7422 m
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
-n
--7850.3882 8579.3887 m
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
-n
--7865.7422 8579.8633 m
--7865.7881 8579.8613 -7865.833 8579.8594 -7865.8774 8579.8574 c
--7865.8545 8579.8584 -7865.833 8579.8604 -7865.8096 8579.8613 c
--7865.7881 8579.8613 -7865.7646 8579.8623 -7865.7422 8579.8633 c
-n
-0 O
-0.8 g
--7839.1553 8576.4043 m
--7839.437 8576.6309 -7839.7959 8576.8516 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7842.2422 8578.0547 -7845.8286 8578.8721 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
--7851.0088 8579.458 -7851.6465 8579.5215 -7852.2998 8579.5801 c
--7852.3174 8579.582 -7852.334 8579.584 -7852.3521 8579.585 c
--7852.3706 8579.5869 -7852.3882 8579.5879 -7852.4072 8579.5898 c
--7853.0615 8579.6465 -7853.7305 8579.6973 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
--7855.1567 8579.79 -7855.853 8579.8262 -7856.5601 8579.8574 c
--7856.583 8579.8584 -7856.6055 8579.8604 -7856.6279 8579.8613 c
--7856.6494 8579.8613 -7856.6738 8579.8623 -7856.6958 8579.8633 c
--7858.1567 8579.9238 -7859.6694 8579.957 -7861.2202 8579.957 c
--7862.769 8579.957 -7864.2798 8579.9238 -7865.7422 8579.8633 c
--7865.7646 8579.8623 -7865.7881 8579.8613 -7865.8096 8579.8613 c
--7865.833 8579.8604 -7865.8545 8579.8584 -7865.8774 8579.8574 c
--7866.5854 8579.8262 -7867.2832 8579.7891 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
--7868.7065 8579.6973 -7869.3799 8579.6465 -7870.0361 8579.5879 c
--7870.0527 8579.5879 -7870.0703 8579.5859 -7870.0854 8579.585 c
--7870.1016 8579.584 -7870.1162 8579.582 -7870.1318 8579.5801 c
--7870.7886 8579.5225 -7871.4321 8579.458 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
--7874.0234 8579.165 -7875.7832 8578.8906 -7877.3232 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3271 8578.5703 c
--7877.3281 8578.5693 -7877.3306 8578.5693 -7877.3311 8578.5684 c
--7879.3896 8578.1406 -7881.0576 8577.6309 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.8682 8576.7402 -7883.353 8576.3984 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.5 -7884 8575.2207 C
--7884 8581.2637 L
--7884 8581.5908 -7883.8408 8581.9102 -7883.5361 8582.2188 c
--7883.2334 8582.5273 -7882.7866 8582.8242 -7882.21 8583.1074 c
--7881.6328 8583.3906 -7880.9287 8583.6602 -7880.1089 8583.9121 c
--7879.29 8584.1641 -7878.3584 8584.3984 -7877.3271 8584.6133 c
--7876.2959 8584.8281 -7875.168 8585.0215 -7873.9561 8585.1914 c
--7872.7432 8585.3623 -7871.4497 8585.5088 -7870.0854 8585.6279 c
--7868.7231 8585.749 -7867.293 8585.8418 -7865.8096 8585.9043 c
--7864.3271 8585.9668 -7862.792 8586 -7861.2202 8586 c
--7859.6465 8586 -7858.1104 8585.9668 -7856.6279 8585.9043 c
--7855.145 8585.8418 -7853.7134 8585.749 -7852.3521 8585.6279 c
--7850.9897 8585.5088 -7849.6934 8585.3623 -7848.4814 8585.1914 c
--7847.2695 8585.0215 -7846.1416 8584.8281 -7845.1104 8584.6133 c
--7844.0801 8584.3984 -7843.147 8584.1641 -7842.3286 8583.9121 c
--7841.5103 8583.6602 -7840.8042 8583.3906 -7840.229 8583.1074 c
--7839.6514 8582.8242 -7839.2041 8582.5273 -7838.9009 8582.2188 c
--7838.5967 8581.9102 -7838.4385 8581.5908 -7838.4385 8581.2637 C
--7838.4385 8575.2207 L
--7838.4385 8575.5469 -7838.5967 8575.8672 -7838.9009 8576.1758 c
--7838.9775 8576.252 -7839.0625 8576.3281 -7839.1553 8576.4043 c
-f
-0.5 g
--7848.209 8572.2383 m
--7847.9424 8572.2383 L
--7847.9424 8572.4561 -7848.041 8572.6621 -7848.209 8572.8555 C
--7848.209 8574.0039 L
--7848.209 8574.1914 -7848.2998 8574.373 -7848.4736 8574.5488 c
--7848.6455 8574.7256 -7848.9014 8574.8945 -7849.231 8575.0566 c
--7849.5615 8575.2197 -7849.9639 8575.373 -7850.4302 8575.5166 c
--7850.8984 8575.6602 -7851.4302 8575.7949 -7852.0186 8575.917 c
--7852.6079 8576.0391 -7853.2529 8576.1504 -7853.9438 8576.248 c
--7854.6377 8576.3447 -7855.376 8576.4277 -7856.1543 8576.4961 c
--7856.9326 8576.5645 -7857.749 8576.6191 -7858.5967 8576.6543 c
--7859.4438 8576.6895 -7860.3218 8576.709 -7861.2192 8576.709 c
--7862.1162 8576.709 -7862.9946 8576.6895 -7863.8408 8576.6543 c
--7864.687 8576.6191 -7865.5049 8576.5645 -7866.2822 8576.4961 c
--7867.061 8576.4277 -7867.8008 8576.3447 -7868.4927 8576.248 c
--7869.1846 8576.1504 -7869.8306 8576.0391 -7870.418 8575.917 c
--7871.0063 8575.7949 -7871.54 8575.6602 -7872.0063 8575.5166 c
--7872.4746 8575.373 -7872.8774 8575.2197 -7873.2065 8575.0566 c
--7873.5361 8574.8945 -7873.792 8574.7256 -7873.9658 8574.5488 c
--7874.1377 8574.373 -7874.2295 8574.1914 -7874.2295 8574.0039 C
--7874.2295 8572.8555 L
--7874.3975 8572.6621 -7874.4961 8572.4561 -7874.4961 8572.2383 C
--7874.2295 8572.2383 L
--7874.2295 8571.4912 L
--7874.2695 8571.4453 -7874.2974 8571.3965 -7874.3286 8571.3486 C
--7880.1768 8572.2051 -7884 8573.6191 -7884 8575.2207 c
--7884 8575.501 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.353 8576.3984 -7882.8682 8576.7402 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7881.0576 8577.6309 -7879.3896 8578.1406 -7877.3311 8578.5684 c
--7877.3281 8578.5693 -7877.3247 8578.5703 -7877.3232 8578.5703 c
--7875.7832 8578.8906 -7874.0234 8579.165 -7872.0942 8579.3828 c
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7871.4321 8579.458 -7870.7886 8579.5225 -7870.1318 8579.5801 c
--7870.1006 8579.584 -7870.0688 8579.5859 -7870.0361 8579.5879 c
--7869.3799 8579.6465 -7868.7065 8579.6973 -7868.0186 8579.7422 c
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.2832 8579.7891 -7866.5854 8579.8262 -7865.8774 8579.8574 c
--7865.833 8579.8594 -7865.7881 8579.8613 -7865.7422 8579.8633 c
--7864.2798 8579.9238 -7862.769 8579.957 -7861.2202 8579.957 c
--7859.6694 8579.957 -7858.1567 8579.9238 -7856.6958 8579.8633 c
--7856.6514 8579.8613 -7856.6055 8579.8594 -7856.5601 8579.8574 c
--7855.853 8579.8262 -7855.1567 8579.79 -7854.4766 8579.7461 c
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7853.7305 8579.6973 -7853.0615 8579.6465 -7852.4072 8579.5898 c
--7852.3706 8579.5859 -7852.335 8579.583 -7852.2998 8579.5801 c
--7851.6465 8579.5215 -7851.0088 8579.458 -7850.3882 8579.3887 c
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7845.8286 8578.8721 -7842.2422 8578.0547 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7839.7959 8576.8516 -7839.437 8576.6309 -7839.1553 8576.4043 c
--7838.689 8576.0254 -7838.4385 8575.6289 -7838.4385 8575.2207 c
--7838.4385 8573.6191 -7842.2617 8572.2051 -7848.1104 8571.3486 C
--7848.1392 8571.3965 -7848.1689 8571.4453 -7848.209 8571.4912 C
--7848.209 8572.2383 L
-f
-0.55 g
--7861.2202 8558.7959 m
--7866.9199 8558.7959 -7872.9287 8557.9863 -7874.2295 8556.4746 C
--7874.2295 8557.2227 L
--7874.0454 8557.2227 L
--7874.0454 8558.3994 -7868.7783 8559.7109 -7861.2202 8559.7109 c
--7853.6602 8559.7109 -7848.3921 8558.3994 -7848.3921 8557.2227 C
--7848.209 8557.2227 L
--7848.209 8556.4746 L
--7849.5088 8557.9863 -7855.5166 8558.7959 -7861.2202 8558.7959 c
-f
--7861.2202 8549.2402 m
--7866.9199 8549.2402 -7872.9287 8548.4307 -7874.2295 8546.9199 C
--7874.2295 8547.666 L
--7874.0454 8547.666 L
--7874.0454 8548.8438 -7868.7783 8550.1563 -7861.2202 8550.1563 c
--7853.6602 8550.1563 -7848.3921 8548.8438 -7848.3921 8547.666 C
--7848.209 8547.666 L
--7848.209 8546.9199 L
--7849.5088 8548.4307 -7855.5166 8549.2402 -7861.2202 8549.2402 c
-f
--7861.2202 8560.1611 m
--7866.9199 8560.1611 -7872.9287 8559.3516 -7874.2295 8557.8398 C
--7874.2295 8558.5879 L
--7874.0454 8558.5879 L
--7874.0454 8559.7646 -7868.7783 8561.0762 -7861.2202 8561.0762 c
--7853.6602 8561.0762 -7848.3921 8559.7646 -7848.3921 8558.5879 C
--7848.209 8558.5879 L
--7848.209 8557.8398 L
--7849.5088 8559.3516 -7855.5166 8560.1611 -7861.2202 8560.1611 c
-f
--7861.2202 8561.5264 m
--7866.9199 8561.5264 -7872.9287 8560.7168 -7874.2295 8559.2051 C
--7874.2295 8559.9531 L
--7874.0454 8559.9531 L
--7874.0454 8561.1299 -7868.7783 8562.4414 -7861.2202 8562.4414 c
--7853.6602 8562.4414 -7848.3921 8561.1299 -7848.3921 8559.9531 C
--7848.209 8559.9531 L
--7848.209 8559.2051 L
--7849.5088 8560.7168 -7855.5166 8561.5264 -7861.2202 8561.5264 c
-f
--7861.2202 8550.6055 m
--7866.9199 8550.6055 -7872.9287 8549.7959 -7874.2295 8548.2852 C
--7874.2295 8549.0322 L
--7874.0454 8549.0322 L
--7874.0454 8550.209 -7868.7783 8551.5205 -7861.2202 8551.5205 c
--7853.6602 8551.5205 -7848.3921 8550.209 -7848.3921 8549.0322 C
--7848.209 8549.0322 L
--7848.209 8548.2852 L
--7849.5088 8549.7959 -7855.5166 8550.6055 -7861.2202 8550.6055 c
-f
--7861.2202 8554.7012 m
--7866.9199 8554.7012 -7872.9287 8553.8906 -7874.2295 8552.3789 C
--7874.2295 8553.127 L
--7874.0454 8553.127 L
--7874.0454 8554.3047 -7868.7783 8555.6162 -7861.2202 8555.6162 c
--7853.6602 8555.6162 -7848.3921 8554.3047 -7848.3921 8553.127 C
--7848.209 8553.127 L
--7848.209 8552.3789 L
--7849.5088 8553.8906 -7855.5166 8554.7012 -7861.2202 8554.7012 c
-f
--7861.2202 8557.4316 m
--7866.9199 8557.4316 -7872.9287 8556.6211 -7874.2295 8555.1104 C
--7874.2295 8555.8574 L
--7874.0454 8555.8574 L
--7874.0454 8557.0342 -7868.7783 8558.3457 -7861.2202 8558.3457 c
--7853.6602 8558.3457 -7848.3921 8557.0342 -7848.3921 8555.8574 C
--7848.209 8555.8574 L
--7848.209 8555.1104 L
--7849.5088 8556.6211 -7855.5166 8557.4316 -7861.2202 8557.4316 c
-f
--7861.2202 8553.3359 m
--7866.9199 8553.3359 -7872.9287 8552.5254 -7874.2295 8551.0146 C
--7874.2295 8551.7617 L
--7874.0454 8551.7617 L
--7874.0454 8552.9395 -7868.7783 8554.25 -7861.2202 8554.25 c
--7853.6602 8554.25 -7848.3921 8552.9395 -7848.3921 8551.7617 C
--7848.209 8551.7617 L
--7848.209 8551.0146 L
--7849.5088 8552.5254 -7855.5166 8553.3359 -7861.2202 8553.3359 c
-f
--7861.2202 8543.7803 m
--7866.9199 8543.7803 -7872.9287 8542.9707 -7874.2295 8541.459 C
--7874.2295 8542.2061 L
--7874.0454 8542.2061 L
--7874.0454 8543.3828 -7868.7783 8544.6953 -7861.2202 8544.6953 c
--7853.6602 8544.6953 -7848.3921 8543.3828 -7848.3921 8542.2061 C
--7848.209 8542.2061 L
--7848.209 8541.459 L
--7849.5088 8542.9707 -7855.5166 8543.7803 -7861.2202 8543.7803 c
-f
--7861.2202 8546.5098 m
--7866.9199 8546.5098 -7872.9287 8545.7012 -7874.2295 8544.1895 C
--7874.2295 8544.9375 L
--7874.0454 8544.9375 L
--7874.0454 8546.1133 -7868.7783 8547.4248 -7861.2202 8547.4248 c
--7853.6602 8547.4248 -7848.3921 8546.1133 -7848.3921 8544.9375 C
--7848.209 8544.9375 L
--7848.209 8544.1895 L
--7849.5088 8545.7012 -7855.5166 8546.5098 -7861.2202 8546.5098 c
-f
--7861.2202 8556.0664 m
--7866.9199 8556.0664 -7872.9287 8555.2559 -7874.2295 8553.7451 C
--7874.2295 8554.4922 L
--7874.0454 8554.4922 L
--7874.0454 8555.6689 -7868.7783 8556.9805 -7861.2202 8556.9805 c
--7853.6602 8556.9805 -7848.3921 8555.6689 -7848.3921 8554.4922 C
--7848.209 8554.4922 L
--7848.209 8553.7451 L
--7849.5088 8555.2559 -7855.5166 8556.0664 -7861.2202 8556.0664 c
-f
--7861.2202 8551.9707 m
--7866.9199 8551.9707 -7872.9287 8551.1611 -7874.2295 8549.6504 C
--7874.2295 8550.3965 L
--7874.0454 8550.3965 L
--7874.0454 8551.5742 -7868.7783 8552.8857 -7861.2202 8552.8857 c
--7853.6602 8552.8857 -7848.3921 8551.5742 -7848.3921 8550.3965 C
--7848.209 8550.3965 L
--7848.209 8549.6504 L
--7849.5088 8551.1611 -7855.5166 8551.9707 -7861.2202 8551.9707 c
-f
--7861.2202 8545.1445 m
--7866.9199 8545.1445 -7872.9287 8544.3359 -7874.2295 8542.8242 C
--7874.2295 8543.5723 L
--7874.0454 8543.5723 L
--7874.0454 8544.748 -7868.7783 8546.0605 -7861.2202 8546.0605 c
--7853.6602 8546.0605 -7848.3921 8544.748 -7848.3921 8543.5723 C
--7848.209 8543.5723 L
--7848.209 8542.8242 L
--7849.5088 8544.3359 -7855.5166 8545.1445 -7861.2202 8545.1445 c
-f
--7861.2202 8547.875 m
--7866.9199 8547.875 -7872.9287 8547.0654 -7874.2295 8545.5547 C
--7874.2295 8546.3008 L
--7874.0454 8546.3008 L
--7874.0454 8547.4785 -7868.7783 8548.791 -7861.2202 8548.791 c
--7853.6602 8548.791 -7848.3921 8547.4785 -7848.3921 8546.3008 C
--7848.209 8546.3008 L
--7848.209 8545.5547 L
--7849.5088 8547.0654 -7855.5166 8547.875 -7861.2202 8547.875 c
-f
--7861.2202 8568.3516 m
--7866.9199 8568.3516 -7872.9287 8567.543 -7874.2295 8566.0313 C
--7874.2295 8566.7783 L
--7874.0454 8566.7783 L
--7874.0454 8567.9551 -7868.7783 8569.2666 -7861.2202 8569.2666 c
--7853.6602 8569.2666 -7848.3921 8567.9551 -7848.3921 8566.7783 C
--7848.209 8566.7783 L
--7848.209 8566.0313 L
--7849.5088 8567.543 -7855.5166 8568.3516 -7861.2202 8568.3516 c
-f
--7861.2202 8572.4473 m
--7866.9199 8572.4473 -7872.9287 8571.6377 -7874.2295 8570.127 C
--7874.2295 8570.873 L
--7874.0454 8570.873 L
--7874.0454 8572.0508 -7868.7783 8573.3623 -7861.2202 8573.3623 c
--7853.6602 8573.3623 -7848.3921 8572.0508 -7848.3921 8570.873 C
--7848.209 8570.873 L
--7848.209 8570.127 L
--7849.5088 8571.6377 -7855.5166 8572.4473 -7861.2202 8572.4473 c
-f
--7861.2202 8571.082 m
--7866.9199 8571.082 -7872.9287 8570.2715 -7874.2295 8568.7607 C
--7874.2295 8569.5078 L
--7874.0454 8569.5078 L
--7874.0454 8570.6855 -7868.7783 8571.998 -7861.2202 8571.998 c
--7853.6602 8571.998 -7848.3921 8570.6855 -7848.3921 8569.5078 C
--7848.209 8569.5078 L
--7848.209 8568.7607 L
--7849.5088 8570.2715 -7855.5166 8571.082 -7861.2202 8571.082 c
-f
--7861.2202 8562.8906 m
--7866.9199 8562.8906 -7872.9287 8562.082 -7874.2295 8560.5703 C
--7874.2295 8561.3184 L
--7874.0454 8561.3184 L
--7874.0454 8562.4941 -7868.7783 8563.8066 -7861.2202 8563.8066 c
--7853.6602 8563.8066 -7848.3921 8562.4941 -7848.3921 8561.3184 C
--7848.209 8561.3184 L
--7848.209 8560.5703 L
--7849.5088 8562.082 -7855.5166 8562.8906 -7861.2202 8562.8906 c
-f
--7861.2202 8566.9863 m
--7866.9199 8566.9863 -7872.9287 8566.1768 -7874.2295 8564.666 C
--7874.2295 8565.4131 L
--7874.0454 8565.4131 L
--7874.0454 8566.5898 -7868.7783 8567.9023 -7861.2202 8567.9023 c
--7853.6602 8567.9023 -7848.3921 8566.5898 -7848.3921 8565.4131 C
--7848.209 8565.4131 L
--7848.209 8564.666 L
--7849.5088 8566.1768 -7855.5166 8566.9863 -7861.2202 8566.9863 c
-f
--7861.2202 8565.6211 m
--7866.9199 8565.6211 -7872.9287 8564.8115 -7874.2295 8563.3008 C
--7874.2295 8564.0479 L
--7874.0454 8564.0479 L
--7874.0454 8565.2246 -7868.7783 8566.5371 -7861.2202 8566.5371 c
--7853.6602 8566.5371 -7848.3921 8565.2246 -7848.3921 8564.0479 C
--7848.209 8564.0479 L
--7848.209 8563.3008 L
--7849.5088 8564.8115 -7855.5166 8565.6211 -7861.2202 8565.6211 c
-f
--7861.2202 8564.2559 m
--7866.9199 8564.2559 -7872.9287 8563.4473 -7874.2295 8561.9355 C
--7874.2295 8562.6826 L
--7874.0454 8562.6826 L
--7874.0454 8563.8594 -7868.7783 8565.1719 -7861.2202 8565.1719 c
--7853.6602 8565.1719 -7848.3921 8563.8594 -7848.3921 8562.6826 C
--7848.209 8562.6826 L
--7848.209 8561.9355 L
--7849.5088 8563.4473 -7855.5166 8564.2559 -7861.2202 8564.2559 c
-f
--7861.2202 8569.7168 m
--7866.9199 8569.7168 -7872.9287 8568.9072 -7874.2295 8567.3965 C
--7874.2295 8568.1426 L
--7874.0454 8568.1426 L
--7874.0454 8569.3203 -7868.7783 8570.6318 -7861.2202 8570.6318 c
--7853.6602 8570.6318 -7848.3921 8569.3203 -7848.3921 8568.1426 C
--7848.209 8568.1426 L
--7848.209 8567.3965 L
--7849.5088 8568.9072 -7855.5166 8569.7168 -7861.2202 8569.7168 c
-f
--7852.3521 8539.5498 m
--7853.7134 8539.6699 -7855.145 8539.7637 -7856.6279 8539.8262 c
--7858.1104 8539.8887 -7859.6465 8539.9229 -7861.2202 8539.9229 c
--7862.792 8539.9229 -7864.3271 8539.8887 -7865.8096 8539.8262 c
--7867.293 8539.7637 -7868.7231 8539.6699 -7870.0854 8539.5498 c
--7871.4497 8539.4307 -7872.7432 8539.2852 -7873.9561 8539.1143 c
--7874.0498 8539.1016 -7874.1362 8539.085 -7874.2295 8539.0713 C
--7874.2295 8539.4766 L
--7874.0454 8539.4766 L
--7874.0454 8540.6523 -7868.7783 8541.9648 -7861.2202 8541.9648 c
--7853.6602 8541.9648 -7848.3921 8540.6523 -7848.3921 8539.4766 C
--7848.209 8539.4766 L
--7848.209 8539.0723 L
--7848.3018 8539.085 -7848.3882 8539.1016 -7848.4814 8539.1143 c
--7849.6934 8539.2852 -7850.9897 8539.4307 -7852.3521 8539.5498 c
-f
--7861.2202 8542.415 m
--7866.9199 8542.415 -7872.9287 8541.6055 -7874.2295 8540.0938 C
--7874.2295 8540.8418 L
--7874.0454 8540.8418 L
--7874.0454 8542.0186 -7868.7783 8543.3301 -7861.2202 8543.3301 c
--7853.6602 8543.3301 -7848.3921 8542.0186 -7848.3921 8540.8418 C
--7848.209 8540.8418 L
--7848.209 8540.0938 L
--7849.5088 8541.6055 -7855.5166 8542.415 -7861.2202 8542.415 c
-f
--7861.2202 8575.1768 m
--7866.9199 8575.1768 -7872.9287 8574.3672 -7874.2295 8572.8555 C
--7874.2295 8574.0039 L
--7874.2295 8574.1914 -7874.1377 8574.373 -7873.9658 8574.5488 c
--7873.792 8574.7256 -7873.5361 8574.8945 -7873.2065 8575.0566 c
--7872.8774 8575.2197 -7872.4746 8575.373 -7872.0063 8575.5166 c
--7871.54 8575.6602 -7871.0063 8575.7949 -7870.418 8575.917 c
--7869.8306 8576.0391 -7869.1846 8576.1504 -7868.4927 8576.248 c
--7867.8008 8576.3447 -7867.061 8576.4277 -7866.2822 8576.4961 c
--7865.5049 8576.5645 -7864.687 8576.6191 -7863.8408 8576.6543 c
--7862.9946 8576.6895 -7862.1162 8576.709 -7861.2192 8576.709 c
--7860.3218 8576.709 -7859.4438 8576.6895 -7858.5967 8576.6543 c
--7857.749 8576.6191 -7856.9326 8576.5645 -7856.1543 8576.4961 c
--7855.376 8576.4277 -7854.6377 8576.3447 -7853.9438 8576.248 c
--7853.2529 8576.1504 -7852.6079 8576.0391 -7852.0186 8575.917 c
--7851.4302 8575.7949 -7850.8984 8575.6602 -7850.4302 8575.5166 c
--7849.9639 8575.373 -7849.5615 8575.2197 -7849.231 8575.0566 c
--7848.9014 8574.8945 -7848.6455 8574.7256 -7848.4736 8574.5488 c
--7848.2998 8574.373 -7848.209 8574.1914 -7848.209 8574.0039 C
--7848.209 8572.8555 L
--7849.5088 8574.3672 -7855.5166 8575.1768 -7861.2202 8575.1768 c
-f
--7874.0454 8572.2383 m
--7874.0454 8573.415 -7868.7783 8574.7266 -7861.2202 8574.7266 c
--7853.6602 8574.7266 -7848.3921 8573.415 -7848.3921 8572.2383 C
--7848.209 8572.2383 L
--7848.209 8571.4912 L
--7849.5088 8573.002 -7855.5166 8573.8125 -7861.2202 8573.8125 c
--7866.9199 8573.8125 -7872.9287 8573.002 -7874.2295 8571.4912 C
--7874.2295 8572.2383 L
--7874.0454 8572.2383 L
-f
-0.15 g
--7861.2202 8541.9648 m
--7868.7783 8541.9648 -7874.0454 8540.6523 -7874.0454 8539.4766 C
--7874.2295 8539.4766 L
--7874.4961 8539.4766 L
--7874.4961 8539.6943 -7874.3975 8539.8994 -7874.2295 8540.0938 c
--7872.9287 8541.6055 -7866.9199 8542.415 -7861.2202 8542.415 c
--7855.5166 8542.415 -7849.5088 8541.6055 -7848.209 8540.0938 c
--7848.041 8539.8994 -7847.9424 8539.6943 -7847.9424 8539.4766 C
--7848.209 8539.4766 L
--7848.3921 8539.4766 L
--7848.3921 8540.6523 -7853.6602 8541.9648 -7861.2202 8541.9648 c
-f
--7861.2202 8543.3301 m
--7868.7783 8543.3301 -7874.0454 8542.0186 -7874.0454 8540.8418 C
--7874.2295 8540.8418 L
--7874.4961 8540.8418 L
--7874.4961 8541.0586 -7874.3975 8541.2637 -7874.2295 8541.459 c
--7872.9287 8542.9707 -7866.9199 8543.7803 -7861.2202 8543.7803 c
--7855.5166 8543.7803 -7849.5088 8542.9707 -7848.209 8541.459 c
--7848.041 8541.2637 -7847.9424 8541.0586 -7847.9424 8540.8418 C
--7848.209 8540.8418 L
--7848.3921 8540.8418 L
--7848.3921 8542.0186 -7853.6602 8543.3301 -7861.2202 8543.3301 c
-f
--7861.2202 8544.6953 m
--7868.7783 8544.6953 -7874.0454 8543.3828 -7874.0454 8542.2061 C
--7874.2295 8542.2061 L
--7874.4961 8542.2061 L
--7874.4961 8542.4238 -7874.3975 8542.6289 -7874.2295 8542.8242 c
--7872.9287 8544.3359 -7866.9199 8545.1445 -7861.2202 8545.1445 c
--7855.5166 8545.1445 -7849.5088 8544.3359 -7848.209 8542.8242 c
--7848.041 8542.6289 -7847.9424 8542.4238 -7847.9424 8542.2061 C
--7848.209 8542.2061 L
--7848.3921 8542.2061 L
--7848.3921 8543.3828 -7853.6602 8544.6953 -7861.2202 8544.6953 c
-f
--7861.2202 8546.0605 m
--7868.7783 8546.0605 -7874.0454 8544.748 -7874.0454 8543.5723 C
--7874.2295 8543.5723 L
--7874.4961 8543.5723 L
--7874.4961 8543.79 -7874.3975 8543.9951 -7874.2295 8544.1895 c
--7872.9287 8545.7012 -7866.9199 8546.5098 -7861.2202 8546.5098 c
--7855.5166 8546.5098 -7849.5088 8545.7012 -7848.209 8544.1895 c
--7848.041 8543.9951 -7847.9424 8543.79 -7847.9424 8543.5723 C
--7848.209 8543.5723 L
--7848.3921 8543.5723 L
--7848.3921 8544.748 -7853.6602 8546.0605 -7861.2202 8546.0605 c
-f
--7861.2202 8547.4248 m
--7868.7783 8547.4248 -7874.0454 8546.1133 -7874.0454 8544.9375 C
--7874.2295 8544.9375 L
--7874.4961 8544.9375 L
--7874.4961 8545.1543 -7874.3975 8545.3594 -7874.2295 8545.5547 c
--7872.9287 8547.0654 -7866.9199 8547.875 -7861.2202 8547.875 c
--7855.5166 8547.875 -7849.5088 8547.0654 -7848.209 8545.5547 c
--7848.041 8545.3594 -7847.9424 8545.1543 -7847.9424 8544.9375 C
--7848.209 8544.9375 L
--7848.3921 8544.9375 L
--7848.3921 8546.1133 -7853.6602 8547.4248 -7861.2202 8547.4248 c
-f
--7861.2202 8548.791 m
--7868.7783 8548.791 -7874.0454 8547.4785 -7874.0454 8546.3008 C
--7874.2295 8546.3008 L
--7874.4961 8546.3008 L
--7874.4961 8546.5195 -7874.3975 8546.7246 -7874.2295 8546.9199 c
--7872.9287 8548.4307 -7866.9199 8549.2402 -7861.2202 8549.2402 c
--7855.5166 8549.2402 -7849.5088 8548.4307 -7848.209 8546.9199 c
--7848.041 8546.7246 -7847.9424 8546.5195 -7847.9424 8546.3008 C
--7848.209 8546.3008 L
--7848.3921 8546.3008 L
--7848.3921 8547.4785 -7853.6602 8548.791 -7861.2202 8548.791 c
-f
--7861.2202 8550.1563 m
--7868.7783 8550.1563 -7874.0454 8548.8438 -7874.0454 8547.666 C
--7874.2295 8547.666 L
--7874.4961 8547.666 L
--7874.4961 8547.8848 -7874.3975 8548.0898 -7874.2295 8548.2852 c
--7872.9287 8549.7959 -7866.9199 8550.6055 -7861.2202 8550.6055 c
--7855.5166 8550.6055 -7849.5088 8549.7959 -7848.209 8548.2852 c
--7848.041 8548.0898 -7847.9424 8547.8848 -7847.9424 8547.666 C
--7848.209 8547.666 L
--7848.3921 8547.666 L
--7848.3921 8548.8438 -7853.6602 8550.1563 -7861.2202 8550.1563 c
-f
--7861.2202 8551.5205 m
--7868.7783 8551.5205 -7874.0454 8550.209 -7874.0454 8549.0322 C
--7874.2295 8549.0322 L
--7874.4961 8549.0322 L
--7874.4961 8549.25 -7874.3975 8549.4551 -7874.2295 8549.6504 c
--7872.9287 8551.1611 -7866.9199 8551.9707 -7861.2202 8551.9707 c
--7855.5166 8551.9707 -7849.5088 8551.1611 -7848.209 8549.6504 c
--7848.041 8549.4551 -7847.9424 8549.25 -7847.9424 8549.0322 C
--7848.209 8549.0322 L
--7848.3921 8549.0322 L
--7848.3921 8550.209 -7853.6602 8551.5205 -7861.2202 8551.5205 c
-f
--7861.2202 8552.8857 m
--7868.7783 8552.8857 -7874.0454 8551.5742 -7874.0454 8550.3965 C
--7874.2295 8550.3965 L
--7874.4961 8550.3965 L
--7874.4961 8550.6152 -7874.3975 8550.8203 -7874.2295 8551.0146 c
--7872.9287 8552.5254 -7866.9199 8553.3359 -7861.2202 8553.3359 c
--7855.5166 8553.3359 -7849.5088 8552.5254 -7848.209 8551.0146 c
--7848.041 8550.8203 -7847.9424 8550.6152 -7847.9424 8550.3965 C
--7848.209 8550.3965 L
--7848.3921 8550.3965 L
--7848.3921 8551.5742 -7853.6602 8552.8857 -7861.2202 8552.8857 c
-f
--7861.2202 8554.25 m
--7868.7783 8554.25 -7874.0454 8552.9395 -7874.0454 8551.7617 C
--7874.2295 8551.7617 L
--7874.4961 8551.7617 L
--7874.4961 8551.9795 -7874.3975 8552.1846 -7874.2295 8552.3789 c
--7872.9287 8553.8906 -7866.9199 8554.7012 -7861.2202 8554.7012 c
--7855.5166 8554.7012 -7849.5088 8553.8906 -7848.209 8552.3789 c
--7848.041 8552.1846 -7847.9424 8551.9795 -7847.9424 8551.7617 C
--7848.209 8551.7617 L
--7848.3921 8551.7617 L
--7848.3921 8552.9395 -7853.6602 8554.25 -7861.2202 8554.25 c
-f
--7861.2202 8555.6162 m
--7868.7783 8555.6162 -7874.0454 8554.3047 -7874.0454 8553.127 C
--7874.2295 8553.127 L
--7874.4961 8553.127 L
--7874.4961 8553.3457 -7874.3975 8553.5508 -7874.2295 8553.7451 c
--7872.9287 8555.2559 -7866.9199 8556.0664 -7861.2202 8556.0664 c
--7855.5166 8556.0664 -7849.5088 8555.2559 -7848.209 8553.7451 c
--7848.041 8553.5508 -7847.9424 8553.3457 -7847.9424 8553.127 C
--7848.209 8553.127 L
--7848.3921 8553.127 L
--7848.3921 8554.3047 -7853.6602 8555.6162 -7861.2202 8555.6162 c
-f
--7861.2202 8556.9805 m
--7868.7783 8556.9805 -7874.0454 8555.6689 -7874.0454 8554.4922 C
--7874.2295 8554.4922 L
--7874.4961 8554.4922 L
--7874.4961 8554.7109 -7874.3975 8554.916 -7874.2295 8555.1104 c
--7872.9287 8556.6211 -7866.9199 8557.4316 -7861.2202 8557.4316 c
--7855.5166 8557.4316 -7849.5088 8556.6211 -7848.209 8555.1104 c
--7848.041 8554.916 -7847.9424 8554.7109 -7847.9424 8554.4922 C
--7848.209 8554.4922 L
--7848.3921 8554.4922 L
--7848.3921 8555.6689 -7853.6602 8556.9805 -7861.2202 8556.9805 c
-f
--7861.2202 8558.3457 m
--7868.7783 8558.3457 -7874.0454 8557.0342 -7874.0454 8555.8574 C
--7874.2295 8555.8574 L
--7874.4961 8555.8574 L
--7874.4961 8556.0752 -7874.3975 8556.2803 -7874.2295 8556.4746 c
--7872.9287 8557.9863 -7866.9199 8558.7959 -7861.2202 8558.7959 c
--7855.5166 8558.7959 -7849.5088 8557.9863 -7848.209 8556.4746 c
--7848.041 8556.2803 -7847.9424 8556.0752 -7847.9424 8555.8574 C
--7848.209 8555.8574 L
--7848.3921 8555.8574 L
--7848.3921 8557.0342 -7853.6602 8558.3457 -7861.2202 8558.3457 c
-f
--7861.2202 8559.7109 m
--7868.7783 8559.7109 -7874.0454 8558.3994 -7874.0454 8557.2227 C
--7874.2295 8557.2227 L
--7874.4961 8557.2227 L
--7874.4961 8557.4395 -7874.3975 8557.6455 -7874.2295 8557.8398 c
--7872.9287 8559.3516 -7866.9199 8560.1611 -7861.2202 8560.1611 c
--7855.5166 8560.1611 -7849.5088 8559.3516 -7848.209 8557.8398 c
--7848.041 8557.6455 -7847.9424 8557.4395 -7847.9424 8557.2227 C
--7848.209 8557.2227 L
--7848.3921 8557.2227 L
--7848.3921 8558.3994 -7853.6602 8559.7109 -7861.2202 8559.7109 c
-f
--7861.2202 8561.0762 m
--7868.7783 8561.0762 -7874.0454 8559.7646 -7874.0454 8558.5879 C
--7874.2295 8558.5879 L
--7874.4961 8558.5879 L
--7874.4961 8558.8057 -7874.3975 8559.0107 -7874.2295 8559.2051 c
--7872.9287 8560.7168 -7866.9199 8561.5264 -7861.2202 8561.5264 c
--7855.5166 8561.5264 -7849.5088 8560.7168 -7848.209 8559.2051 c
--7848.041 8559.0107 -7847.9424 8558.8057 -7847.9424 8558.5879 C
--7848.209 8558.5879 L
--7848.3921 8558.5879 L
--7848.3921 8559.7646 -7853.6602 8561.0762 -7861.2202 8561.0762 c
-f
--7861.2202 8562.4414 m
--7868.7783 8562.4414 -7874.0454 8561.1299 -7874.0454 8559.9531 C
--7874.2295 8559.9531 L
--7874.4961 8559.9531 L
--7874.4961 8560.1709 -7874.3975 8560.376 -7874.2295 8560.5703 c
--7872.9287 8562.082 -7866.9199 8562.8906 -7861.2202 8562.8906 c
--7855.5166 8562.8906 -7849.5088 8562.082 -7848.209 8560.5703 c
--7848.041 8560.376 -7847.9424 8560.1709 -7847.9424 8559.9531 C
--7848.209 8559.9531 L
--7848.3921 8559.9531 L
--7848.3921 8561.1299 -7853.6602 8562.4414 -7861.2202 8562.4414 c
-f
--7861.2202 8563.8066 m
--7868.7783 8563.8066 -7874.0454 8562.4941 -7874.0454 8561.3184 C
--7874.2295 8561.3184 L
--7874.4961 8561.3184 L
--7874.4961 8561.5352 -7874.3975 8561.7412 -7874.2295 8561.9355 c
--7872.9287 8563.4473 -7866.9199 8564.2559 -7861.2202 8564.2559 c
--7855.5166 8564.2559 -7849.5088 8563.4473 -7848.209 8561.9355 c
--7848.041 8561.7412 -7847.9424 8561.5352 -7847.9424 8561.3184 C
--7848.209 8561.3184 L
--7848.3921 8561.3184 L
--7848.3921 8562.4941 -7853.6602 8563.8066 -7861.2202 8563.8066 c
-f
--7861.2202 8565.1719 m
--7868.7783 8565.1719 -7874.0454 8563.8594 -7874.0454 8562.6826 C
--7874.2295 8562.6826 L
--7874.4961 8562.6826 L
--7874.4961 8562.9004 -7874.3975 8563.1055 -7874.2295 8563.3008 c
--7872.9287 8564.8115 -7866.9199 8565.6211 -7861.2202 8565.6211 c
--7855.5166 8565.6211 -7849.5088 8564.8115 -7848.209 8563.3008 c
--7848.041 8563.1055 -7847.9424 8562.9004 -7847.9424 8562.6826 C
--7848.209 8562.6826 L
--7848.3921 8562.6826 L
--7848.3921 8563.8594 -7853.6602 8565.1719 -7861.2202 8565.1719 c
-f
--7861.2202 8566.5371 m
--7868.7783 8566.5371 -7874.0454 8565.2246 -7874.0454 8564.0479 C
--7874.2295 8564.0479 L
--7874.4961 8564.0479 L
--7874.4961 8564.2656 -7874.3975 8564.4707 -7874.2295 8564.666 c
--7872.9287 8566.1768 -7866.9199 8566.9863 -7861.2202 8566.9863 c
--7855.5166 8566.9863 -7849.5088 8566.1768 -7848.209 8564.666 c
--7848.041 8564.4707 -7847.9424 8564.2656 -7847.9424 8564.0479 C
--7848.209 8564.0479 L
--7848.3921 8564.0479 L
--7848.3921 8565.2246 -7853.6602 8566.5371 -7861.2202 8566.5371 c
-f
--7861.2202 8567.9023 m
--7868.7783 8567.9023 -7874.0454 8566.5898 -7874.0454 8565.4131 C
--7874.2295 8565.4131 L
--7874.4961 8565.4131 L
--7874.4961 8565.6309 -7874.3975 8565.8359 -7874.2295 8566.0313 c
--7872.9287 8567.543 -7866.9199 8568.3516 -7861.2202 8568.3516 c
--7855.5166 8568.3516 -7849.5088 8567.543 -7848.209 8566.0313 c
--7848.041 8565.8359 -7847.9424 8565.6309 -7847.9424 8565.4131 C
--7848.209 8565.4131 L
--7848.3921 8565.4131 L
--7848.3921 8566.5898 -7853.6602 8567.9023 -7861.2202 8567.9023 c
-f
--7861.2202 8569.2666 m
--7868.7783 8569.2666 -7874.0454 8567.9551 -7874.0454 8566.7783 C
--7874.2295 8566.7783 L
--7874.4961 8566.7783 L
--7874.4961 8566.9961 -7874.3975 8567.2012 -7874.2295 8567.3965 c
--7872.9287 8568.9072 -7866.9199 8569.7168 -7861.2202 8569.7168 c
--7855.5166 8569.7168 -7849.5088 8568.9072 -7848.209 8567.3965 c
--7848.041 8567.2012 -7847.9424 8566.9961 -7847.9424 8566.7783 C
--7848.209 8566.7783 L
--7848.3921 8566.7783 L
--7848.3921 8567.9551 -7853.6602 8569.2666 -7861.2202 8569.2666 c
-f
--7861.2202 8570.6318 m
--7868.7783 8570.6318 -7874.0454 8569.3203 -7874.0454 8568.1426 C
--7874.2295 8568.1426 L
--7874.4961 8568.1426 L
--7874.4961 8568.3613 -7874.3975 8568.5664 -7874.2295 8568.7607 c
--7872.9287 8570.2715 -7866.9199 8571.082 -7861.2202 8571.082 c
--7855.5166 8571.082 -7849.5088 8570.2715 -7848.209 8568.7607 c
--7848.041 8568.5664 -7847.9424 8568.3613 -7847.9424 8568.1426 C
--7848.209 8568.1426 L
--7848.3921 8568.1426 L
--7848.3921 8569.3203 -7853.6602 8570.6318 -7861.2202 8570.6318 c
-f
--7861.2202 8571.998 m
--7868.7783 8571.998 -7874.0454 8570.6855 -7874.0454 8569.5078 C
--7874.2295 8569.5078 L
--7874.4961 8569.5078 L
--7874.4961 8569.7266 -7874.3975 8569.9316 -7874.2295 8570.127 c
--7872.9287 8571.6377 -7866.9199 8572.4473 -7861.2202 8572.4473 c
--7855.5166 8572.4473 -7849.5088 8571.6377 -7848.209 8570.127 c
--7848.041 8569.9316 -7847.9424 8569.7266 -7847.9424 8569.5078 C
--7848.209 8569.5078 L
--7848.3921 8569.5078 L
--7848.3921 8570.6855 -7853.6602 8571.998 -7861.2202 8571.998 c
-f
--7861.2202 8573.3623 m
--7868.7783 8573.3623 -7874.0454 8572.0508 -7874.0454 8570.873 C
--7874.2295 8570.873 L
--7874.4961 8570.873 L
--7874.4961 8571.0391 -7874.4282 8571.1953 -7874.3286 8571.3486 c
--7874.2974 8571.3965 -7874.2695 8571.4453 -7874.2295 8571.4912 c
--7872.9287 8573.002 -7866.9199 8573.8125 -7861.2202 8573.8125 c
--7855.5166 8573.8125 -7849.5088 8573.002 -7848.209 8571.4912 c
--7848.1689 8571.4453 -7848.1392 8571.3965 -7848.1104 8571.3486 c
--7848.0103 8571.1953 -7847.9424 8571.0391 -7847.9424 8570.873 C
--7848.209 8570.873 L
--7848.3921 8570.873 L
--7848.3921 8572.0508 -7853.6602 8573.3623 -7861.2202 8573.3623 c
-f
--7861.2202 8574.7266 m
--7868.7783 8574.7266 -7874.0454 8573.415 -7874.0454 8572.2383 C
--7874.2295 8572.2383 L
--7874.4961 8572.2383 L
--7874.4961 8572.4561 -7874.3975 8572.6621 -7874.2295 8572.8555 c
--7872.9287 8574.3672 -7866.9199 8575.1768 -7861.2202 8575.1768 c
--7855.5166 8575.1768 -7849.5088 8574.3672 -7848.209 8572.8555 c
--7848.041 8572.6621 -7847.9424 8572.4561 -7847.9424 8572.2383 C
--7848.209 8572.2383 L
--7848.3921 8572.2383 L
--7848.3921 8573.415 -7853.6602 8574.7266 -7861.2202 8574.7266 c
-f
-0.8 g
--7839.0342 8530.2168 m
--7839.3311 8530.4834 -7839.7271 8530.7402 -7840.229 8530.9863 c
--7840.231 8530.9883 -7840.2334 8530.9893 -7840.2358 8530.9902 c
--7840.5225 8531.1309 -7840.8394 8531.2676 -7841.187 8531.4004 c
--7841.187 8531.4004 l
--7841.8857 8531.668 -7842.7026 8531.9189 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
--7845.501 8532.623 -7847.7583 8533.0117 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
--7851.6626 8533.4531 -7852.9834 8533.5703 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
--7855.1743 8533.7119 -7855.8232 8533.7461 -7856.4824 8533.7754 c
--7856.5313 8533.7773 -7856.5791 8533.7813 -7856.6279 8533.7832 c
--7856.6758 8533.7852 -7856.7246 8533.7861 -7856.7729 8533.7881 c
--7857.4561 8533.8164 -7858.1514 8533.8379 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
--7859.6768 8533.8711 -7860.4424 8533.8789 -7861.2202 8533.8789 c
--7861.9951 8533.8789 -7862.7607 8533.8711 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
--7864.2871 8533.8379 -7864.9814 8533.8164 -7865.667 8533.7881 c
--7865.7134 8533.7861 -7865.7642 8533.7852 -7865.8096 8533.7832 c
--7865.8608 8533.7813 -7865.9058 8533.7773 -7865.9561 8533.7754 c
--7866.6162 8533.7461 -7867.2666 8533.7119 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
--7869.4526 8533.5703 -7870.7783 8533.4531 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
--7874.6768 8533.0117 -7876.9385 8532.623 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
--7880.1934 8531.8027 -7881.3408 8531.4121 -7882.2026 8530.9902 c
--7882.2041 8530.9893 -7882.208 8530.9883 -7882.21 8530.9863 c
--7882.4639 8530.8613 -7882.6904 8530.7324 -7882.8936 8530.6016 c
--7883.3799 8530.29 -7883.7178 8529.9639 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 C
--7884 8535.1855 L
--7884 8535.5137 -7883.8408 8535.832 -7883.5361 8536.1406 c
--7883.2334 8536.4492 -7882.7866 8536.7461 -7882.21 8537.0303 c
--7881.6328 8537.3125 -7880.9287 8537.583 -7880.1089 8537.834 c
--7879.29 8538.0859 -7878.3584 8538.3203 -7877.3271 8538.5352 c
--7876.377 8538.7324 -7875.335 8538.9121 -7874.2295 8539.0713 c
--7874.1362 8539.085 -7874.0498 8539.1016 -7873.9561 8539.1143 c
--7872.7432 8539.2852 -7871.4497 8539.4307 -7870.0854 8539.5498 c
--7868.7231 8539.6699 -7867.293 8539.7637 -7865.8096 8539.8262 c
--7864.3271 8539.8887 -7862.792 8539.9229 -7861.2202 8539.9229 c
--7859.6465 8539.9229 -7858.1104 8539.8887 -7856.6279 8539.8262 c
--7855.145 8539.7637 -7853.7134 8539.6699 -7852.3521 8539.5498 c
--7850.9897 8539.4307 -7849.6934 8539.2852 -7848.4814 8539.1143 c
--7848.3882 8539.1016 -7848.3018 8539.085 -7848.209 8539.0723 c
--7847.105 8538.9121 -7846.0615 8538.7324 -7845.1104 8538.5352 c
--7844.0801 8538.3203 -7843.147 8538.0859 -7842.3286 8537.834 c
--7841.5103 8537.583 -7840.8042 8537.3125 -7840.229 8537.0303 c
--7839.6514 8536.7461 -7839.2041 8536.4492 -7838.9009 8536.1406 c
--7838.5967 8535.832 -7838.4385 8535.5137 -7838.4385 8535.1855 C
--7838.4385 8529.1426 L
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.7881 8529.9834 -7838.9038 8530.1016 -7839.0342 8530.2168 c
-f
-0.5 g
--7845.9463 8525.6279 m
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 C
--7877.5342 8525.293 -7884 8527.0605 -7884 8529.1426 c
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.7178 8529.9639 -7883.3799 8530.29 -7882.8936 8530.6016 c
--7882.687 8530.7344 -7882.46 8530.8633 -7882.2026 8530.9902 c
--7881.3408 8531.4121 -7880.1934 8531.8027 -7878.811 8532.1523 c
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7876.9385 8532.623 -7874.6768 8533.0117 -7872.1201 8533.3027 c
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7870.7783 8533.4531 -7869.4526 8533.5703 -7868.0718 8533.6602 c
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.2666 8533.7119 -7866.6162 8533.7461 -7865.9561 8533.7754 c
--7865.8594 8533.7793 -7865.7642 8533.7842 -7865.667 8533.7881 c
--7864.9814 8533.8164 -7864.2871 8533.8379 -7863.582 8533.8535 c
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7862.7607 8533.8711 -7861.9951 8533.8789 -7861.2202 8533.8789 c
--7860.4424 8533.8789 -7859.6768 8533.8711 -7858.9209 8533.8545 c
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.1514 8533.8379 -7857.4561 8533.8164 -7856.7729 8533.7881 c
--7856.6758 8533.7842 -7856.5791 8533.7793 -7856.4824 8533.7754 c
--7855.8232 8533.7461 -7855.1743 8533.7119 -7854.5366 8533.6719 c
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7852.9834 8533.5703 -7851.6626 8533.4531 -7850.4111 8533.3125 c
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7847.7583 8533.0117 -7845.501 8532.623 -7843.6582 8532.1602 c
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7842.7026 8531.9189 -7841.8857 8531.668 -7841.187 8531.4004 C
--7841.187 8531.4004 L
--7840.8394 8531.2676 -7840.5225 8531.1309 -7840.2358 8530.9902 c
--7839.731 8530.7432 -7839.332 8530.4844 -7839.0342 8530.2168 c
--7838.9038 8530.1016 -7838.7881 8529.9834 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
--7838.4385 8527.748 -7841.3359 8526.4951 -7845.9463 8525.6279 C
-f
-*u
-1 g
-1 D
--7867.7471 8524.0996 m
--7866.8584 8522.3203 -7866.5679 8520.6797 -7866.5679 8519.0811 c
--7866.5679 8517.6328 -7866.8057 8516.2178 -7867.0498 8514.7646 c
--7867.2959 8513.2949 -7867.5498 8511.7852 -7867.5498 8510.1855 c
--7867.5498 8509.792 -7867.5352 8509.3926 -7867.5 8508.9863 c
--7867.0518 8503.7461 -7861.4072 8501.1475 -7861.3506 8501.1221 C
--7840.5649 8501.1396 -7839.0386 8501.1406 V
--7840.1807 8501.8877 -7842.5088 8503.7266 -7844.8066 8507.5039 c
--7845.8433 8509.2051 -7846.1567 8511.1133 -7846.1567 8513.041 c
--7846.1567 8514.5996 -7845.9512 8516.1699 -7845.7578 8517.6523 c
--7845.5791 8519.0303 -7845.4038 8520.3633 -7845.4038 8521.5723 c
--7845.4038 8522.4287 -7845.4912 8523.2236 -7845.7256 8523.9277 c
--7846.9727 8527.6641 -7849.792 8529.6445 -7850.0713 8529.832 C
--7850.2046 8529.832 -7870.5674 8529.832 -7872.3569 8529.832 C
--7871.3154 8529.1973 -7869.5391 8527.6836 -7867.7471 8524.0996 c
-f
-0 D
--7850.8975 8526.2422 m
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
-f
--7849.1025 8512.1074 m
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
-f
--7863.4609 8517.7168 m
--7863.4609 8518.166 L
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
-f
--7863.6855 8515.9219 m
--7850.001 8515.9219 L
--7850.001 8515.4727 L
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
-f
--7863.4609 8521.3076 m
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
-f
--7861.2178 8503.583 m
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
-f
--7862.7881 8505.3779 m
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
-f
--7863.9087 8507.8457 m
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
-f
--7864.3584 8510.3135 m
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
-f
--7864.3584 8524 m
--7849.7754 8524 L
--7849.7754 8523.5488 L
--7864.3584 8523.5488 L
--7864.3584 8524 L
-f
-*U
-*u
-0 g
-1 D
--7868.5498 8524.6582 m
--7868.417 8524.4141 -7868.2832 8524.166 -7868.1494 8523.8984 c
--7866.519 8520.6387 -7866.9937 8517.8213 -7867.4946 8514.8389 c
--7867.8057 8512.9785 -7868.1294 8511.0557 -7867.9482 8508.9473 c
--7867.4766 8503.4404 -7861.5938 8500.7383 -7861.4424 8500.6914 C
--7838.2168 8500.6914 L
--7838.1201 8501.1191 L
--7838.1514 8501.1348 -7841.3599 8502.7051 -7844.4238 8507.7373 c
--7846.2144 8510.6797 -7845.7559 8514.1953 -7845.311 8517.5947 c
--7844.9966 8520.002 -7844.7007 8522.2754 -7845.2993 8524.0703 c
--7845.4858 8524.6289 -7845.707 8525.1465 -7845.9463 8525.6279 c
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 c
-f
-0 D
--7867.7471 8524.0996 m
--7869.5391 8527.6836 -7871.3154 8529.1973 -7872.3569 8529.832 C
--7870.5674 8529.832 -7850.2046 8529.832 -7850.0713 8529.832 C
--7849.792 8529.6445 -7846.9727 8527.6641 -7845.7256 8523.9277 c
--7845.4912 8523.2236 -7845.4038 8522.4287 -7845.4038 8521.5723 c
--7845.4038 8520.3633 -7845.5791 8519.0303 -7845.7578 8517.6523 c
--7845.9512 8516.1699 -7846.1567 8514.5996 -7846.1567 8513.041 c
--7846.1567 8511.1133 -7845.8433 8509.2051 -7844.8066 8507.5039 c
--7842.5088 8503.7266 -7840.1807 8501.8877 -7839.0386 8501.1406 C
--7840.5649 8501.1396 -7861.3506 8501.1221 Y
--7861.4072 8501.1475 -7867.0518 8503.7461 -7867.5 8508.9863 c
--7867.5352 8509.3926 -7867.5498 8509.792 -7867.5498 8510.1855 c
--7867.5498 8511.7852 -7867.2959 8513.2949 -7867.0498 8514.7646 c
--7866.8057 8516.2178 -7866.5679 8517.6328 -7866.5679 8519.0811 c
--7866.5679 8520.6797 -7866.8584 8522.3203 -7867.7471 8524.0996 c
-f
-*U
--7845.7378 8503.1328 m
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
-f
--7850.4497 8504.9277 m
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
-f
--7848.2041 8507.3945 m
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
-f
--7848.6538 8509.8633 m
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
-f
--7863.9087 8512.5566 m
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
-f
--7850.001 8515.4727 m
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
--7850.001 8515.9219 L
--7850.001 8515.4727 L
-f
--7863.4609 8518.166 m
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
--7863.4609 8518.166 L
-f
--7848.6538 8520.8574 m
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
-f
--7849.7754 8523.5488 m
--7864.3584 8523.5488 L
--7864.3584 8524 L
--7849.7754 8524 L
--7849.7754 8523.5488 L
-f
--7865.9287 8526.6914 m
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
-f
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 9)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7840.7246 8585.25 L
--7840.7246 8555.5381 L
--7883.25 8555.5381 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7 g
--7872.457 8555.7881 m
--7868.6582 8555.7881 -7864.9199 8555.7881 v
--7861.1826 8555.7881 -7861.8242 8558.8838 y
--7845.9258 8558.8838 -7843.4502 8558.8838 v
--7840.9761 8558.8838 -7840.9761 8561.3594 y
--7840.9761 8578.542 l
--7876.541 8578.542 l
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
-f
-0 R
-0.9 G
-0.5 w
--7861.8242 8558.8838 m
--7845.9258 8558.8838 -7843.4502 8558.8838 v
-S
-0.5 G
--7862.8594 8556.2715 m
--7861.4634 8557.1426 -7861.8242 8558.8838 y
-S
-0.7 G
--7864.9199 8555.7881 m
--7863.9858 8555.7881 -7863.3247 8555.9814 -7862.8594 8556.2715 c
-S
-0.9 G
--7876.541 8578.542 m
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
--7868.6582 8555.7881 -7864.9199 8555.7881 v
-S
-0.25 G
--7840.9761 8561.3594 m
--7840.9761 8578.542 l
--7876.541 8578.542 l
-S
-0.5 G
--7842.019 8559.2715 m
--7840.9761 8559.9668 -7840.9761 8561.3594 y
-S
-0.7 G
--7843.4502 8558.8838 m
--7842.8306 8558.8838 -7842.3672 8559.0391 -7842.019 8559.2715 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7874.0718 8557.4023 m
--7870.2729 8557.4023 -7866.5342 8557.4023 v
--7862.7954 8557.4023 -7863.439 8560.498 y
--7847.541 8560.498 -7845.0649 8560.498 v
--7842.5903 8560.498 -7842.5903 8562.9727 y
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
-f
-0 R
-0.9 G
-0.5 w
--7863.439 8560.498 m
--7847.541 8560.498 -7845.0649 8560.498 v
-S
-0.5 G
--7864.4746 8557.8867 m
--7863.0767 8558.7578 -7863.439 8560.498 y
-S
-0.7 G
--7866.5342 8557.4023 m
--7865.6006 8557.4023 -7864.9409 8557.5957 -7864.4746 8557.8867 c
-S
-0.9 G
--7878.1558 8580.1563 m
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
--7870.2729 8557.4023 -7866.5342 8557.4023 v
-S
-0.25 G
--7842.5903 8562.9727 m
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
-S
-0.5 G
--7843.6338 8560.8848 m
--7842.5903 8561.5811 -7842.5903 8562.9727 y
-S
-0.7 G
--7845.0649 8560.498 m
--7844.4458 8560.498 -7843.981 8560.6533 -7843.6338 8560.8848 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7875.6846 8559.0176 m
--7871.8882 8559.0176 -7868.1489 8559.0176 v
--7864.4111 8559.0176 -7865.0527 8562.1123 y
--7849.1538 8562.1123 -7846.6802 8562.1123 v
--7844.2046 8562.1123 -7844.2046 8564.5879 y
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
-f
-0 R
-0.9 G
-0.5 w
--7865.0527 8562.1123 m
--7849.1538 8562.1123 -7846.6802 8562.1123 v
-S
-0.5 G
--7866.0898 8559.5 m
--7864.6929 8560.3711 -7865.0527 8562.1123 y
-S
-0.7 G
--7868.1489 8559.0176 m
--7867.2144 8559.0176 -7866.5542 8559.21 -7866.0898 8559.5 c
-S
-0.9 G
--7879.771 8581.7715 m
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
--7871.8882 8559.0176 -7868.1489 8559.0176 v
-S
-0.25 G
--7844.2046 8564.5879 m
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
-S
-0.5 G
--7845.249 8562.5 m
--7844.2046 8563.1953 -7844.2046 8564.5879 y
-S
-0.7 G
--7846.6802 8562.1123 m
--7846.061 8562.1123 -7845.5962 8562.2676 -7845.249 8562.5 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7877.2993 8560.6318 m
--7873.5034 8560.6318 -7869.7642 8560.6318 v
--7866.0254 8560.6318 -7866.667 8563.7275 y
--7850.769 8563.7275 -7848.2935 8563.7275 v
--7845.8193 8563.7275 -7845.8193 8566.2031 y
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
-f
-0 R
-0.9 G
-0.5 w
--7866.667 8563.7275 m
--7850.769 8563.7275 -7848.2935 8563.7275 v
-S
-0.5 G
--7867.7046 8561.1152 m
--7866.3071 8561.9863 -7866.667 8563.7275 y
-S
-0.7 G
--7869.7642 8560.6318 m
--7868.8286 8560.6318 -7868.1689 8560.8252 -7867.7046 8561.1152 c
-S
-0.9 G
--7881.3857 8583.3867 m
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
--7873.5034 8560.6318 -7869.7642 8560.6318 v
-S
-0.25 G
--7845.8193 8566.2031 m
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
-S
-0.5 G
--7846.8638 8564.1143 m
--7845.8193 8564.8105 -7845.8193 8566.2031 y
-S
-0.7 G
--7848.2935 8563.7275 m
--7847.6753 8563.7275 -7847.2114 8563.8828 -7846.8638 8564.1143 c
-S
-U
-u
-0 O
-0.8 g
-1 w
--7878.9146 8562.2461 m
--7875.1167 8562.2461 -7871.3794 8562.2461 v
--7867.6401 8562.2461 -7868.2817 8565.3418 y
--7852.3838 8565.3418 -7849.9087 8565.3418 v
--7847.4346 8565.3418 -7847.4346 8567.8174 y
--7847.4346 8585 l
--7883.001 8585 l
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
-f
-0 R
-0.9 G
-0.5 w
--7868.2817 8565.3418 m
--7852.3838 8565.3418 -7849.9087 8565.3418 v
-S
-0.5 G
--7869.3184 8562.7295 m
--7867.9214 8563.6006 -7868.2817 8565.3418 y
-S
-0.7 G
--7871.3794 8562.2461 m
--7870.4438 8562.2461 -7869.7842 8562.4395 -7869.3184 8562.7295 c
-S
-0.9 G
--7883.001 8585 m
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
--7875.1167 8562.2461 -7871.3794 8562.2461 v
-S
-0.25 G
--7847.4346 8567.8174 m
--7847.4346 8585 l
--7883.001 8585 l
-S
-0.5 G
--7848.4785 8565.7285 m
--7847.4346 8566.4238 -7847.4346 8567.8174 y
-S
-0.7 G
--7849.9087 8565.3418 m
--7849.29 8565.3418 -7848.8262 8565.4971 -7848.4785 8565.7285 c
-S
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 10)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7815.2593 8585.25 L
--7815.2593 8557.0195 L
--7883.25 8557.0195 L
--7883.25 8585.25 L
-n
-0 O
-0.8 g
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
--7817.0591 8570.4502 l
--7829.7202 8574.4063 l
--7835.7866 8570.4502 l
--7835.5234 8580.209 l
-f
-0 R
-0.9 G
-0.5 w
--7816.7871 8570.3242 m
--7829.7202 8574.4063 l
-S
-0.5 G
--7815.4785 8573.3516 m
--7817.0591 8570.4502 l
-S
-0.25 G
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
-S
-0.5 G
--7829.7202 8574.4063 m
--7835.7866 8570.4502 l
-S
-0 O
-0.8 g
-1 w
--7855.5679 8562.7998 m
--7843.437 8557.5254 l
--7840.0073 8561.7441 l
--7855.5679 8562.7998 l
-f
-1 Ap
-0.57 g
--7835.2598 8582.0547 m
--7881.6802 8582.0547 L
--7881.6802 8584.9551 L
--7835.2598 8584.9551 L
--7835.2598 8582.0547 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
--7843.437 8557.5254 m
--7840.0073 8561.7441 l
-S
-0.9 G
--7855.5679 8562.7998 m
--7842.875 8557.248 l
-S
-0 O
-0.8 g
-1 w
--7883.001 8560.7627 m
--7883.001 8582.0859 l
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
--7837.6338 8560.8223 l
--7883.001 8560.7627 l
-f
-0 R
-0.5 G
-0.5 w
--7883.001 8576.5166 m
--7834.2046 8576.5166 l
-S
--7880.0986 8564.1191 m
--7870.6025 8564.1191 l
-S
--7880.0986 8565.7676 m
--7870.6025 8565.7676 l
-S
--7880.0986 8567.415 m
--7870.6025 8567.415 l
-S
--7880.0986 8569.0635 m
--7870.6025 8569.0635 l
-S
--7880.0986 8570.7109 m
--7870.6025 8570.7109 l
-S
--7834.2046 8564.9121 m
--7837.6338 8560.8223 l
-S
-0.25 G
--7883.001 8582.0859 m
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
-S
-0.9 G
--7837.6338 8560.793 m
--7883.001 8560.793 l
--7883.001 8582.3555 l
-S
-0.25 G
--7835.2598 8582.0859 m
--7835.2598 8585 l
--7881.6714 8585 l
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 19)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7836.6338 8585.25 L
--7836.6338 8549.6348 L
--7883.25 8549.6348 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
--7836.9722 8585 m
--7836.9722 8582.9805 l
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
--7836.9722 8585 l
-b
-0.8748 G
-2 J 0 j
--7859.8857 8579.5479 m
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
-S
--7836.9722 8582.9805 m
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
--7876.3394 8580.7598 m
--7880.377 8582.9805 l
--7839.7993 8582.9805 l
--7843.2319 8580.7598 l
--7876.3394 8580.7598 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
--7871.125 8576.6523 m
--7868.8462 8576.6094 L
--7859.7446 8575.041 L
--7850.4634 8576.6094 L
--7848.6694 8576.6094 L
--7848.729 8578.4512 L
--7871.125 8578.4512 L
--7871.125 8576.6523 L
-f
-0 R
-0.25 G
-0.5 w
--7848.6978 8576.6523 m
--7848.7905 8578.4512 L
--7871.1567 8578.4512 L
-S
-0.9 G
--7850.498 8576.6523 m
--7848.6978 8576.6523 L
-S
-0.25 G
--7859.8042 8575.041 m
--7850.498 8576.6523 L
-S
-0.9 G
--7871.1567 8578.4512 m
--7871.1567 8576.6523 L
--7868.9033 8576.6523 L
--7859.8042 8575.041 L
-S
-U
-u
-0 O
-0.7 g
-1 w
--7873.3672 8573.5781 m
--7864.0703 8573.5313 L
--7859.7119 8571.8047 L
--7855.1343 8573.5313 L
--7846.4214 8573.5313 L
--7846.4927 8575.5557 L
--7873.3672 8575.5557 L
--7873.3672 8573.5781 L
-f
-0 R
-0.25 G
-0.5 w
--7846.4546 8573.5781 m
--7846.5649 8575.5557 L
--7873.4038 8575.5557 L
-S
-0.9 G
--7855.1758 8573.5781 m
--7846.4546 8573.5781 L
-S
-0.25 G
--7859.7817 8571.8047 m
--7855.1758 8573.5781 L
-S
-0.9 G
--7873.4038 8575.5557 m
--7873.4038 8573.5781 L
--7864.1406 8573.5781 L
--7859.7817 8571.8047 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
--7874.8838 8572.75 m
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
--7844.9922 8551.0508 L
--7844.9922 8572.4648 L
--7845.8022 8573.6045 L
--7874.0366 8573.6045 l
--7874.8838 8572.75 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
--7874.0366 8573.6045 m
--7874.8838 8572.75 L
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
--7848.0239 8570.7168 m
--7848.0054 8552.7617 L
--7871.8994 8552.7617 L
--7871.9014 8570.7148 L
--7848.0239 8570.7168 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
--7843.333 8579.5479 m
--7859.8857 8579.5479 L
--7876.439 8579.5479 L
--7883.001 8582.9805 L
--7883.001 8585 L
--7836.9722 8585 L
--7836.9722 8582.9805 L
--7843.333 8579.5479 L
-s
--7874.0366 8573.6045 m
--7873.4038 8573.6045 L
--7873.4038 8575.5557 L
--7873.3672 8575.5449 L
--7873.3672 8575.5527 L
--7873.4038 8575.5557 L
--7873.3672 8575.5557 L
--7862.731 8575.5557 L
--7868.8462 8576.6094 L
--7871.125 8576.6523 L
--7871.1567 8576.6523 L
--7871.1567 8578.4512 L
--7871.125 8578.4414 L
--7871.125 8578.4482 L
--7871.1567 8578.4512 L
--7871.125 8578.4512 L
--7848.7905 8578.4512 L
--7848.729 8578.4512 L
--7848.6694 8576.6094 L
--7850.4634 8576.6094 L
--7856.7002 8575.5557 L
--7846.5649 8575.5557 L
--7846.4927 8575.5557 L
--7846.4233 8573.6045 L
--7845.8022 8573.6045 L
--7844.9922 8572.4648 L
--7844.9922 8551.0508 L
--7845.9302 8549.9121 L
--7873.9082 8549.8848 L
--7874.8911 8550.8809 L
--7874.8838 8572.75 L
--7874.0366 8573.6045 L
-s
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 21)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.3184 8585.3184 m
--7804.0449 8585.3184 L
--7804.0449 8559.5566 L
--7883.3184 8559.5566 L
--7883.3184 8585.3184 L
-n
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.5 w 3.8636 M
--7882.8638 8562.8213 m
--7804.4961 8562.8213 L
--7804.4961 8576.9053 L
--7882.8638 8576.9053 L
--7882.8638 8562.8213 L
-b
--7843.6792 8569.8633 m
-B
-U
-u
--7880.4233 8576.9053 m
--7806.939 8576.9053 L
--7805.4766 8576.9053 -7804.2954 8578.0908 -7804.2954 8579.5498 c
--7804.2954 8580.9951 L
--7804.2954 8582.4561 -7805.4766 8583.6416 -7806.939 8583.6416 c
--7880.4233 8583.6416 L
--7881.8838 8583.6416 -7883.0688 8582.4561 -7883.0688 8580.9951 c
--7883.0688 8579.5498 L
--7883.0688 8578.0908 -7881.8838 8576.9053 -7880.4233 8576.9053 c
--7880.4233 8576.9053 L
-b
--7843.6802 8580.2744 m
-B
-U
-0 g
--7878.374 8583.6396 m
--7873.8838 8583.6396 L
--7874.7007 8585.0684 L
--7877.251 8585.0684 L
--7878.374 8583.6396 L
-b
--7814.293 8583.6396 m
--7809.8022 8583.6396 L
--7810.6191 8585.0684 L
--7813.1714 8585.0684 L
--7814.293 8583.6396 L
-b
-0.61 G
-1 w
--7875.9258 8562.8574 m
--7875.9258 8574.4893 L
-S
--7873.8838 8562.8574 m
--7873.8838 8574.4893 L
-S
-u
-0 O
-0 g
-0 G
-0.5 w
--7826.7417 8566.7002 m
--7813.0679 8566.7002 L
--7813.0679 8568.9463 L
--7826.7417 8568.9463 L
--7826.7417 8566.7002 L
-b
--7819.9038 8567.8223 m
-B
-U
-1 J
--7814.3066 8577.9297 m
--7813.8906 8578.3682 -7813.6362 8578.9561 -7813.6362 8579.6064 C
--7813.6362 8580.9355 L
--7813.6362 8581.5859 -7813.8906 8582.1758 -7814.3066 8582.6123 C
-S
--7816.1978 8577.9297 m
--7815.7842 8578.3682 -7815.5288 8578.9561 -7815.5288 8579.6064 C
--7815.5288 8580.9355 L
--7815.5288 8581.5859 -7815.7842 8582.1758 -7816.1978 8582.6123 C
-S
--7818.0913 8577.9297 m
--7817.6758 8578.3682 -7817.4214 8578.9561 -7817.4214 8579.6064 C
--7817.4214 8580.9355 L
--7817.4214 8581.5859 -7817.6758 8582.1758 -7818.0913 8582.6123 C
-S
--7819.9839 8577.9297 m
--7819.5698 8578.3682 -7819.314 8578.9561 -7819.314 8579.6064 C
--7819.314 8580.9355 L
--7819.314 8581.5859 -7819.5698 8582.1758 -7819.9839 8582.6123 C
-S
--7821.8774 8577.9297 m
--7821.4614 8578.3682 -7821.207 8578.9561 -7821.207 8579.6064 C
--7821.207 8580.9355 L
--7821.207 8581.5859 -7821.4614 8582.1758 -7821.8774 8582.6123 C
-S
--7823.769 8577.9297 m
--7823.354 8578.3682 -7823.1001 8578.9561 -7823.1001 8579.6064 C
--7823.1001 8580.9355 L
--7823.1001 8581.5859 -7823.354 8582.1758 -7823.769 8582.6123 C
-S
--7825.6616 8577.9297 m
--7825.248 8578.3682 -7824.9922 8578.9561 -7824.9922 8579.6064 C
--7824.9922 8580.9355 L
--7824.9922 8581.5859 -7825.248 8582.1758 -7825.6616 8582.6123 C
-S
--7827.5542 8577.9297 m
--7827.1401 8578.3682 -7826.8857 8578.9561 -7826.8857 8579.6064 C
--7826.8857 8580.9355 L
--7826.8857 8581.5859 -7827.1401 8582.1758 -7827.5542 8582.6123 C
-S
--7829.4463 8577.9297 m
--7829.0322 8578.3682 -7828.7769 8578.9561 -7828.7769 8579.6064 C
--7828.7769 8580.9355 L
--7828.7769 8581.5859 -7829.0322 8582.1758 -7829.4463 8582.6123 C
-S
--7831.3374 8577.9297 m
--7830.9258 8578.3682 -7830.6694 8578.9561 -7830.6694 8579.6064 C
--7830.6694 8580.9355 L
--7830.6694 8581.5859 -7830.9258 8582.1758 -7831.3374 8582.6123 C
-S
--7833.231 8577.9297 m
--7832.8159 8578.3682 -7832.563 8578.9561 -7832.563 8579.6064 C
--7832.563 8580.9355 L
--7832.563 8581.5859 -7832.8159 8582.1758 -7833.231 8582.6123 C
-S
--7835.125 8577.9297 m
--7834.7095 8578.3682 -7834.4546 8578.9561 -7834.4546 8579.6064 C
--7834.4546 8580.9355 L
--7834.4546 8581.5859 -7834.7095 8582.1758 -7835.125 8582.6123 C
-S
--7837.0151 8577.9297 m
--7836.6006 8578.3682 -7836.3472 8578.9561 -7836.3472 8579.6064 C
--7836.3472 8580.9355 L
--7836.3472 8581.5859 -7836.6006 8582.1758 -7837.0151 8582.6123 C
-S
--7838.9102 8577.9297 m
--7838.4937 8578.3682 -7838.2407 8578.9561 -7838.2407 8579.6064 C
--7838.2407 8580.9355 L
--7838.2407 8581.5859 -7838.4937 8582.1758 -7838.9102 8582.6123 C
-S
--7840.8022 8577.9297 m
--7840.3872 8578.3682 -7840.1318 8578.9561 -7840.1318 8579.6064 C
--7840.1318 8580.9355 L
--7840.1318 8581.5859 -7840.3872 8582.1758 -7840.8022 8582.6123 C
-S
-0 O
-0.4385 g
-0 J 1 j
--7873.8838 8559.8066 m
--7813.8838 8559.8066 L
--7804.4961 8562.8213 L
--7882.8638 8562.8213 L
--7873.8838 8559.8066 L
-b
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 22)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7876.001 8578.6211 m
--7827.9502 8578.6211 L
--7827.9502 8497.4414 L
--7876.001 8497.4414 L
--7876.001 8578.6211 L
-n
-u
-u
-u
-0 O
-0.7 g
--7869.2202 8497.6914 m
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
-f
-0 R
-0.25 G
-0.5 w
--7834.0034 8498.543 m
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
-S
-0.9 G
--7870.4399 8562.8496 m
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
-S
-1 Ap
-0 O
-0.8 g
-0.25 G
-2 J 2 M
--7838.79 8507.9629 m
--7865.4775 8507.9629 L
--7865.4775 8560.2607 L
--7838.79 8560.2607 L
--7838.79 8507.9629 L
-b
-u
--7838.79 8523.8691 m
--7865.4736 8523.8691 L
--7865.4736 8520.0957 L
--7838.79 8520.0957 L
--7838.79 8523.8691 L
-b
--7838.79 8520.0615 m
--7865.4736 8520.0615 L
--7865.4736 8516.2871 L
--7838.79 8516.2871 L
--7838.79 8520.0615 L
-b
-U
-0 Ap
-0.25 g
-0 J 1 w 4 M
--7842.3818 8509.4375 m
--7843.2319 8509.4375 L
--7862.2729 8509.4375 L
--7862.2729 8510.3271 L
--7855.8018 8510.3271 L
--7855.8018 8510.9629 L
--7848.8486 8510.9629 L
--7848.8486 8510.3271 L
--7842.3818 8510.3271 L
--7842.3818 8509.4375 L
-f
-1 Ap
-0.6 g
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7842.8271 8511.3691 m
--7846.8706 8511.3691 L
--7846.8706 8510.7324 L
--7842.8271 8510.7324 L
--7842.8271 8511.3691 L
-b
-u
-0.8 g
--7840.8057 8514.5547 m
--7863.4463 8514.5547 L
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
--7840.8057 8514.5547 L
-b
--7863.4463 8514.5547 m
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
-S
-0.9 G
--7840.8057 8513.0664 m
--7840.8057 8514.5547 L
--7863.4463 8514.5547 L
-S
-U
-0 O
-0.7 g
-0 J 1 w 4 M
--7841.1318 8515.6172 m
--7845.1743 8515.6172 L
--7845.1743 8514.9805 L
--7841.1318 8514.9805 L
--7841.1318 8515.6172 L
-f
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7841.1318 8514.9805 m
--7841.1318 8515.6172 L
--7845.1743 8515.6172 L
-S
-u
-u
--7861.5903 8500.6797 m
--7861.5903 8503.7402 L
--7866.9287 8503.7402 L
-S
--7861.5903 8503.7393 m
--7861.5903 8506.7578 L
--7866.9287 8506.7578 L
-S
-U
-u
-0.9 G
--7866.9287 8503.7129 m
--7866.9287 8500.6934 L
--7861.5903 8500.6934 L
-S
--7866.9287 8506.7578 m
--7866.9287 8503.7393 L
--7861.5903 8503.7393 L
-S
-U
-U
-u
-u
-0.25 G
--7837.7178 8500.6797 m
--7837.7178 8503.7402 L
--7843.0542 8503.7402 L
-S
--7837.7178 8503.7393 m
--7837.7178 8506.7578 L
--7843.0542 8506.7578 L
-S
-U
-u
-0.9 G
--7843.0542 8503.7129 m
--7843.0542 8500.6934 L
--7837.7178 8500.6934 L
-S
--7843.0542 8506.7578 m
--7843.0542 8503.7393 L
--7837.7178 8503.7393 L
-S
-U
-U
-0 O
-0.8 g
-0 J 1 w 4 M
--7832.144 8564.9395 m
--7872.3799 8564.9395 L
--7870.6865 8562.6406 L
--7833.8359 8562.6406 L
--7832.144 8564.9395 L
-f
-0 R
-0.9 G
-0.5 w
--7870.4072 8562.4785 m
--7872.3799 8564.9395 L
--7869.9111 8564.9395 l
-S
-0.25 G
--7834.083 8562.3672 m
--7832.144 8564.9395 L
--7872.0337 8564.9395 l
-S
-U
-0 Ap
-0.15 G
--7833.8359 8562.6406 m
--7833.874 8562.6406 L
--7834.0034 8562.4727 L
--7834.0034 8498.543 L
--7834.0791 8498.2148 L
--7834.3569 8497.9102 L
--7834.7935 8497.7441 L
--7835.2578 8497.6914 L
--7869.2202 8497.6914 L
--7869.6855 8497.7441 L
--7870.0361 8497.9102 L
--7870.3618 8498.2148 L
--7870.4399 8498.543 L
--7870.4399 8562.5195 L
--7870.5386 8562.6406 L
--7870.6865 8562.6406 L
--7872.3799 8564.9395 L
--7872.0337 8564.9395 L
--7869.9111 8564.9395 L
--7832.144 8564.9395 L
--7833.8359 8562.6406 L
-s
--7870.4399 8562.5195 m
--7833.8359 8562.5195 l
-S
-U
-U
-0 To
-1 0 0 -1 -7851.9761 8576.5957 0 Tp
-0 Tv
-TP
--24.0247 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-36 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(DNS Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 23)
-0 A
-u
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7878.9351 8565.3359 m
--7830.6465 8565.3359 L
--7830.6465 8506.8223 L
--7878.9351 8506.8223 L
--7878.9351 8565.3359 L
-n
-0 O
-0.64 g
--7830.6465 8513.9863 m
--7832.5977 8506.8223 L
--7849.127 8506.8223 L
--7851.001 8513.9863 L
--7858.666 8513.9863 L
--7860.7529 8506.8223 L
--7877.0625 8506.8223 L
--7878.9351 8513.9863 L
--7878.9351 8514.0137 L
--7830.6465 8514.0137 L
--7830.6465 8513.9863 L
-f
-0.92 g
--7878.9351 8514.0137 m
--7878.9351 8565.3164 L
--7870.5898 8565.3164 L
--7870.5898 8561.6152 L
--7870.5386 8561.6152 L
--7870.5386 8514.0137 L
--7878.9351 8514.0137 L
-f
--7830.6465 8514.0137 m
--7838.7871 8514.0137 L
--7838.7871 8565.3359 L
--7830.6465 8565.3359 L
--7830.6465 8514.0137 L
-f
-0.8158 g
--7870.5386 8514.0137 m
--7870.5386 8561.6152 L
--7838.8442 8561.6152 L
--7838.8442 8565.3359 L
--7838.7871 8565.3359 L
--7838.7871 8514.0137 L
--7870.5386 8514.0137 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7858.666 8513.9863 m
--7858.6582 8561.6152 L
-S
--7857.8145 8513.9863 m
--7857.8066 8561.6152 L
-S
--7856.9634 8513.9863 m
--7856.9551 8561.6152 L
-S
--7856.1113 8513.9863 m
--7856.103 8561.6152 L
-S
--7855.2598 8513.9863 m
--7855.252 8561.6152 L
-S
--7854.4082 8513.9863 m
--7854.3999 8561.6152 L
-S
--7853.5566 8513.9863 m
--7853.5488 8561.6152 L
-S
--7853.5718 8513.9863 m
--7853.563 8561.6152 L
-S
--7852.7202 8513.9863 m
--7852.7114 8561.6152 L
-S
--7851.8682 8513.9863 m
--7851.8594 8561.6152 L
-S
--7851.0161 8513.9863 m
--7851.0078 8561.6152 L
-S
-U
-0 To
-1 0 0 -1 -7854.791 8576.5957 0 Tp
-0 Tv
-TP
--21.2094 0 Td
-0 Tr
-0 O
-0 g
-1 w 4 M
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-53.0468 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 4 Tl
-0 Tc
-0 Tw
-(Mainfr) Tx 1 10 Tk
-(ame) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 40)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7835.7114 8586 L
--7835.7114 8500.1016 L
--7884 8500.1016 L
--7884 8586 L
-n
-0 O
-0.64 g
--7835.7114 8507.2656 m
--7837.6626 8500.1016 L
--7854.1919 8500.1016 L
--7856.0654 8507.2656 L
--7863.7305 8507.2656 L
--7865.8174 8500.1016 L
--7882.127 8500.1016 L
--7884 8507.2656 L
--7884 8507.293 L
--7835.7114 8507.293 L
--7835.7114 8507.2656 L
-f
-0.92 g
--7884 8507.293 m
--7884 8585.9805 L
--7875.6543 8585.9805 L
--7875.6543 8582.2793 L
--7875.6025 8582.2793 L
--7875.6025 8507.293 L
--7884 8507.293 L
-f
--7835.7114 8507.293 m
--7843.8511 8507.293 L
--7843.8511 8586 L
--7835.7114 8586 L
--7835.7114 8507.293 L
-f
-0.8158 g
--7875.6025 8507.293 m
--7875.6025 8582.2793 L
--7843.9087 8582.2793 L
--7843.9087 8586 L
--7843.8511 8586 L
--7843.8511 8507.293 L
--7875.6025 8507.293 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7863.7305 8507.2656 m
--7863.7222 8582.2793 L
-S
--7862.8794 8507.2656 m
--7862.8711 8582.2793 L
-S
--7862.0273 8507.2656 m
--7862.019 8582.2793 L
-S
--7861.1758 8507.2656 m
--7861.168 8582.2793 L
-S
--7860.3242 8507.2656 m
--7860.3169 8582.2793 L
-S
--7859.4727 8507.2656 m
--7859.4648 8582.2793 L
-S
--7858.6206 8507.2656 m
--7858.6138 8582.2793 L
-S
--7858.6362 8507.2656 m
--7858.6279 8582.2793 L
-S
--7857.7842 8507.2656 m
--7857.7754 8582.2793 L
-S
--7856.9326 8507.2656 m
--7856.9238 8582.2793 L
-S
--7856.0801 8507.2656 m
--7856.0718 8582.2793 L
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 43)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.749 8585.8232 m
--7870.9414 8585.8232 L
--7870.9414 8557.1563 L
--7883.749 8557.1563 L
--7883.749 8585.8232 L
-n
-0 O
-0.3 g
--7870.9414 8574.5498 m
--7875.1558 8563.2031 L
--7875.3862 8562.5801 -7876.0439 8562.2598 -7876.6719 8562.4141 C
--7876.8018 8562.3506 -7876.9473 8562.3359 -7877.0889 8562.3164 C
--7875.771 8562.1797 -7874.7358 8561.1084 -7874.7358 8559.7627 c
--7874.7358 8558.3184 -7875.9009 8557.1563 -7877.3447 8557.1563 c
--7878.7842 8557.1563 -7879.9482 8558.3184 -7879.9482 8559.7627 c
--7879.9482 8561.1084 -7878.916 8562.1797 -7877.6016 8562.3164 C
--7877.7441 8562.3359 -7877.8809 8562.3506 -7878.0186 8562.4141 C
--7878.645 8562.2598 -7879.3018 8562.5801 -7879.5313 8563.2031 C
--7883.749 8574.5498 L
--7884 8575.2168 -7883.6543 8575.9688 -7882.9834 8576.2188 c
--7882.313 8576.4658 -7881.5664 8576.123 -7881.3193 8575.4531 C
--7880.1289 8572.2441 L
--7880.0054 8572.6758 -7879.876 8573.0762 -7879.7119 8573.4385 C
--7882.4902 8584.2402 L
--7882.668 8584.9375 -7882.252 8585.6416 -7881.5586 8585.8232 c
--7880.8657 8586 -7880.1626 8585.583 -7879.9766 8584.8867 C
--7877.5918 8575.5967 L
--7877.5049 8575.6084 -7877.4282 8575.6494 -7877.3447 8575.6494 c
--7877.2617 8575.6494 -7877.1855 8575.6084 -7877.0991 8575.5967 C
--7874.7129 8584.8867 L
--7874.5303 8585.583 -7873.8242 8586 -7873.1318 8585.8232 c
--7872.4385 8585.6416 -7872.0215 8584.9375 -7872.1978 8584.2402 C
--7874.9766 8573.4385 L
--7874.8154 8573.0762 -7874.6846 8572.6758 -7874.5625 8572.2441 C
--7873.3711 8575.4531 L
--7873.125 8576.123 -7872.3799 8576.4658 -7871.707 8576.2188 c
--7871.0391 8575.9688 -7870.6914 8575.2168 -7870.9414 8574.5498 C
-f
-U
-%AI8_EndBrushPattern
-%AI5_End_NonPrinting--
-%AI5_BeginPalette
-0 0 Pb
-1 1 1 1 ([Registration]) 0 Xs
-([Registration]) Pc
-0 0 0 0.15 (15%) 0 0 Xk
-(15%) Pc
-0 0 0 0.3 (30%) 0 0 Xk
-(30%) Pc
-0 0 0 0.5 (50%) 0 0 Xk
-(50%) Pc
-0 0 0 0.75 (75%) 0 0 Xk
-(75%) Pc
-(horizontal rules) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(horizontal rules) Pc
-(bi-direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(bi-direction diagonals) Pc
-(one direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(one direction diagonals) Pc
-(white dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(white dots) Pc
-(black dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(black dots) Pc
-PB
-%AI5_EndPalette
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginPluginObject
-(Adobe Brush Manager Order)
-(Adobe Brush Manager Order)
-( Adobe Scatter Brush Tool/ Scatter Brush 1/ Adobe Scatter Brush Tool/ ) -
-(Mainframe/ Adobe Scatter Brush Tool/ Client/ Adobe Scatter Brush Tool/) -
-( person/ Adobe Scatter Brush Tool/ Print spooler/ Adobe Scatter Brush ) -
-(Tool/ Folders/ Adobe Scatter Brush Tool/ Printer/ Adobe Scatter Brush ) -
-(Tool/ Client 1/ Adobe Scatter Brush Tool/ Mainframe 1/ Adobe Scatter B) -
-(rush Tool/ Fax server/) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client 1)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Fax server)
-(1 /New Pattern 21/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Folders)
-(1 /New Pattern 9/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe)
-(1 /New Pattern 23/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe 1)
-(1 /New Pattern 40/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(person)
-(1 /New Pattern 43/ 0 0.701961 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Print spooler)
-(1 /New Pattern 2/ 0 0.854902 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Printer)
-(1 /New Pattern 10/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Scatter Brush 1)
-(1 /New Pattern 22/ 0 0.2 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_PluginGroupInfo
-(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends)
-%AI8_PluginGroupInfo
-(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool)
-%AI5_End_NonPrinting--
-%%EndSetup
-%AI5_BeginLayer
-1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
-(Layer 1) Ln
-0 A
-1 Ap
-0 O
-0.95 g
-0 R
-0 G
-800 Ar
-0 J 0 j 0.5 w 4 M []0 d
-%AI3_Note:
-0 D
-1 XR
-501.71 169.1504 m
-153.71 169.1504 L
-153.71 589.1504 L
-501.71 589.1504 L
-501.71 169.1504 L
-(b) *
-0 To
-1 0 0 1 236.4463 332.1426 0 Tp
-0 Tv
-TP
--14.7797 0 Td
-0 Tr
-0 g
-1 w
-0 XR
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(P) Tx 1 40 Tk
-(ar) Tx 1 10 Tk
-(allel\r) Tx 1 0 Tk
-3.1148 -11 Td
-(Cab) Tx 1 20 Tk
-(le) Tx 1 0 Tk
-(\r) TX
-TO
-0 Ap
-0 R
-0 G
-0.5 w
-184.8491 350.9229 m
-197.9233 350.9199 210.9907 351.3887 224.0674 351.2979 c
-227.6689 351.2725 249.1094 354.4385 250.6377 348.4697 c
-251.6982 344.3271 238.7969 344.8301 237.2236 340.9258 C
-241.8062 337.6826 254.5508 340.2188 259.3149 340.2549 c
-269.4844 340.3301 279.0869 337.2725 289.0425 336.8418 c
-S
-u
-%_1 w
-%_283.2539 343.2559 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-283.2539 343.2559 m
-N
-u
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
-306.2246 325.6982 m
-306.2246 327.7178 l
-299.8633 331.1504 l
-283.3105 331.1504 L
-266.7578 331.1504 l
-260.1953 327.7178 l
-260.1953 325.6982 l
-306.2246 325.6982 l
-b
-0.8748 G
-2 J 0 j
-283.3105 331.1504 m
-266.7578 331.1504 l
-260.1953 327.7178 l
-260.1953 325.6982 l
-S
-306.2246 327.7178 m
-299.8633 331.1504 l
-283.3105 331.1504 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-266.8574 329.9385 m
-262.8193 327.7178 l
-303.3965 327.7178 l
-299.9648 329.9385 l
-266.8574 329.9385 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-272.0713 334.0459 m
-274.3496 334.0889 L
-283.4512 335.6572 L
-292.7324 334.0889 L
-294.5273 334.0889 L
-294.4668 332.2471 L
-272.0713 332.2471 L
-272.0713 334.0459 L
-f
-0 R
-0.25 G
-0.5 w
-294.498 334.0459 m
-294.4063 332.2471 L
-272.0391 332.2471 L
-S
-0.9 G
-292.6982 334.0459 m
-294.498 334.0459 L
-S
-0.25 G
-283.3926 335.6572 m
-292.6982 334.0459 L
-S
-0.9 G
-272.0391 332.2471 m
-272.0391 334.0459 L
-274.293 334.0459 L
-283.3926 335.6572 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-269.8291 337.1201 m
-279.126 337.167 L
-283.4844 338.8936 L
-288.0625 337.167 L
-296.7754 337.167 L
-296.7031 335.1426 L
-269.8291 335.1426 L
-269.8291 337.1201 L
-f
-0 R
-0.25 G
-0.5 w
-296.7422 337.1201 m
-296.6309 335.1426 L
-269.793 335.1426 L
-S
-0.9 G
-288.0205 337.1201 m
-296.7422 337.1201 L
-S
-0.25 G
-283.4141 338.8936 m
-288.0205 337.1201 L
-S
-0.9 G
-269.793 335.1426 m
-269.793 337.1201 L
-279.0557 337.1201 L
-283.4141 338.8936 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-268.3125 337.9482 m
-268.3047 359.8174 l
-269.2881 360.8135 L
-297.2656 360.7861 L
-298.2041 359.6475 L
-298.2041 338.2334 L
-297.3945 337.0938 L
-269.1602 337.0938 l
-268.3125 337.9482 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-269.1602 337.0938 m
-268.3125 337.9482 L
-268.3047 359.8174 l
-269.2881 360.8135 L
-297.2656 360.7861 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-295.1719 339.9814 m
-295.1914 357.9365 L
-271.2969 357.9365 L
-271.2949 339.9834 L
-295.1719 339.9814 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-299.8633 331.1504 m
-283.3105 331.1504 L
-266.7578 331.1504 L
-260.1953 327.7178 L
-260.1953 325.6982 L
-306.2246 325.6982 L
-306.2246 327.7178 L
-299.8633 331.1504 L
-s
-269.1602 337.0938 m
-269.793 337.0938 L
-269.793 335.1426 L
-269.8291 335.1533 L
-269.8291 335.1455 L
-269.793 335.1426 L
-269.8291 335.1426 L
-280.4648 335.1426 L
-274.3496 334.0889 L
-272.0713 334.0459 L
-272.0391 334.0459 L
-272.0391 332.2471 L
-272.0713 332.2568 L
-272.0713 332.25 L
-272.0391 332.2471 L
-272.0713 332.2471 L
-294.4063 332.2471 L
-294.4668 332.2471 L
-294.5273 334.0889 L
-292.7324 334.0889 L
-286.4961 335.1426 L
-296.6309 335.1426 L
-296.7031 335.1426 L
-296.7734 337.0938 L
-297.3945 337.0938 L
-298.2041 338.2334 L
-298.2041 359.6475 L
-297.2656 360.7861 L
-269.2881 360.8135 L
-268.3047 359.8174 L
-268.3125 337.9482 L
-269.1602 337.0938 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000000F36436C69656E742031
-/Adobe_Brushed_Path () XT
-u
-%_0 G
-%_385.5439 280.833 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-385.5439 280.833 m
-N
-u
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.25 w 2 M
-397.0293 272.0547 m
-397.0293 273.0645 l
-393.8486 274.7803 l
-385.5723 274.7803 L
-377.2959 274.7803 l
-374.0146 273.0645 l
-374.0146 272.0547 l
-397.0293 272.0547 l
-b
-0.8748 G
-2 J 0 j
-385.5723 274.7803 m
-377.2959 274.7803 l
-374.0146 273.0645 l
-374.0146 272.0547 l
-S
-397.0293 273.0645 m
-393.8486 274.7803 l
-385.5723 274.7803 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-377.3457 274.1738 m
-375.3271 273.0645 l
-395.6152 273.0645 l
-393.8994 274.1738 l
-377.3457 274.1738 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-379.9521 276.2285 m
-381.0918 276.25 L
-385.6426 277.0332 L
-390.2832 276.25 L
-391.1807 276.25 L
-391.1504 275.3281 L
-379.9521 275.3281 L
-379.9521 276.2285 L
-f
-0 R
-0.25 G
-0.25 w
-391.166 276.2285 m
-391.1201 275.3281 L
-379.9365 275.3281 L
-S
-0.9 G
-390.2666 276.2285 m
-391.166 276.2285 L
-S
-0.25 G
-385.6133 277.0332 m
-390.2666 276.2285 L
-S
-0.9 G
-379.9365 275.3281 m
-379.9365 276.2285 L
-381.0635 276.2285 L
-385.6133 277.0332 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-378.8311 277.7656 m
-383.4795 277.7891 L
-385.6592 278.6523 L
-387.9482 277.7891 L
-392.3047 277.7891 L
-392.2686 276.7764 L
-378.8311 276.7764 L
-378.8311 277.7656 L
-f
-0 R
-0.25 G
-0.25 w
-392.2881 277.7656 m
-392.2324 276.7764 L
-378.8135 276.7764 L
-S
-0.9 G
-387.9268 277.7656 m
-392.2881 277.7656 L
-S
-0.25 G
-385.624 278.6523 m
-387.9268 277.7656 L
-S
-0.9 G
-378.8135 276.7764 m
-378.8135 277.7656 L
-383.4443 277.7656 L
-385.624 278.6523 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-378.0732 278.1797 m
-378.0693 289.1133 l
-378.5615 289.6113 L
-392.5498 289.5977 L
-393.0186 289.0293 L
-393.0186 278.3223 L
-392.6143 277.752 L
-378.4971 277.752 l
-378.0732 278.1797 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-378.4971 277.752 m
-378.0732 278.1797 L
-378.0693 289.1133 l
-378.5615 289.6113 L
-392.5498 289.5977 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-391.5029 279.1953 m
-391.5127 288.1738 L
-379.5654 288.1738 L
-379.5645 279.1973 L
-391.5029 279.1953 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-393.8486 274.7803 m
-385.5723 274.7803 L
-377.2959 274.7803 L
-374.0146 273.0645 L
-374.0146 272.0547 L
-397.0293 272.0547 L
-397.0293 273.0645 L
-393.8486 274.7803 L
-s
-378.4971 277.752 m
-378.8135 277.752 L
-378.8135 276.7764 L
-378.8311 276.7813 L
-378.8311 276.7773 L
-378.8135 276.7764 L
-378.8311 276.7764 L
-384.1494 276.7764 L
-381.0918 276.25 L
-379.9521 276.2285 L
-379.9365 276.2285 L
-379.9365 275.3281 L
-379.9521 275.334 L
-379.9521 275.3301 L
-379.9365 275.3281 L
-379.9521 275.3281 L
-391.1201 275.3281 L
-391.1504 275.3281 L
-391.1807 276.25 L
-390.2832 276.25 L
-387.165 276.7764 L
-392.2324 276.7764 L
-392.2686 276.7764 L
-392.3037 277.752 L
-392.6143 277.752 L
-393.0186 278.3223 L
-393.0186 289.0293 L
-392.5498 289.5977 L
-378.5615 289.6113 L
-378.0693 289.1133 L
-378.0732 278.1797 L
-378.4971 277.752 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000000F36436C69656E742031
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 282.8003 319.2734 0 Tp
-0 Tv
-TP
--21.8418 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Pr) Tx 1 -15 Tk
-(intser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 282.8003 350.0479 0 Tp
-0 Tv
-TP
--6.2504 0 Td
-0 Tr
-(PC) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 415.3008 280.3564 0 Tp
-0 Tv
-TP
--8.5004 0 Td
-0 Tr
-(PCs) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 373.9746 316.4063 0 Tp
-0 Tv
-TP
--16.5244 0 Td
-0 Tr
-(Netw) Tx 1 10 Tk
-(or) Tx 1 -15 Tk
-(k) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 176.1445 369.5293 0 Tp
-0 Tv
-TP
--12.7793 0 Td
-0 Tr
--20 Tt
--0.18 Tc
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_1 g
-%_0 R
-%_0.67 G
-%_1 M
-%_184.939 348.2959 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-1 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-184.939 348.2959 m
-F
-u
-0.8 g
-198.6704 339.2217 m
-218.7153 346.0791 l
-217.1348 348.9805 l
-204.4736 345.0244 l
-198.4072 348.9805 l
-198.6704 339.2217 l
-f
-0 R
-0.9 G
-0.5 w
-217.4067 349.1064 m
-204.4736 345.0244 l
-S
-0.5 G
-218.7153 346.0791 m
-217.1348 348.9805 l
-S
-0.25 G
-198.6704 339.2217 m
-218.7153 346.0791 l
-S
-0.5 G
-204.4736 345.0244 m
-198.4072 348.9805 l
-S
-0 O
-0.8 g
-1 w
-178.626 356.6309 m
-190.7568 361.9053 l
-194.1865 357.6865 l
-178.626 356.6309 l
-f
-1 Ap
-0.57 g
-198.9341 337.376 m
-152.5137 337.376 L
-152.5137 334.4756 L
-198.9341 334.4756 L
-198.9341 337.376 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-190.7568 361.9053 m
-194.1865 357.6865 l
-S
-0.9 G
-178.626 356.6309 m
-191.3188 362.1826 l
-S
-0 O
-0.8 g
-1 w
-151.1929 358.668 m
-151.1929 337.3447 l
-199.9893 337.3447 l
-199.9893 354.5186 l
-196.5601 358.6084 l
-151.1929 358.668 l
-f
-0 R
-0.5 G
-0.5 w
-151.1929 342.9141 m
-199.9893 342.9141 l
-S
-154.0952 355.3115 m
-163.5913 355.3115 l
-S
-154.0952 353.6631 m
-163.5913 353.6631 l
-S
-154.0952 352.0156 m
-163.5913 352.0156 l
-S
-154.0952 350.3672 m
-163.5913 350.3672 l
-S
-154.0952 348.7197 m
-163.5913 348.7197 l
-S
-199.9893 354.5186 m
-196.5601 358.6084 l
-S
-0.25 G
-151.1929 337.3447 m
-199.9893 337.3447 l
-199.9893 354.5186 l
-S
-0.9 G
-196.5601 358.6377 m
-151.1929 358.6377 l
-151.1929 337.0752 l
-S
-0.25 G
-198.9341 337.3447 m
-198.9341 334.4307 l
-152.5225 334.4307 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000007995072696E746572
-/Adobe_Brushed_Path () XT
-0 G
-368.3398 266.2295 m
-349.9629 278.8408 l
-349.9629 330.7295 349.9629 333.9727 v
-350.0488 345.1484 338.7871 345.1484 v
-327.5254 345.1484 298.0693 345.1484 y
-S
-349.9629 291.9287 m
-368.3398 279.3174 l
-S
-349.9629 305.0166 m
-368.3398 292.4053 l
-S
-0 To
-1 0 0 1 369.2402 389.2676 0 Tp
-0 Tv
-TP
--19.7722 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Fileser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_0 R
-%_0 G
-%_0.65 w
-%_368.8516 374.7744 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-368.8516 374.7744 m
-N
-u
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.325 w 3.8636 M
-343.3828 381.0254 m
-394.3223 381.0254 L
-394.3223 371.8701 L
-343.3828 371.8701 L
-343.3828 381.0254 L
-b
-368.8535 376.4473 m
-B
-U
-u
-344.9697 371.8701 m
-392.7344 371.8701 L
-393.6855 371.8701 394.4531 371.0996 394.4531 370.1514 c
-394.4531 369.2119 L
-394.4531 368.2617 393.6855 367.4922 392.7344 367.4922 c
-344.9697 367.4922 L
-344.0205 367.4922 343.25 368.2617 343.25 369.2119 c
-343.25 370.1514 L
-343.25 371.0996 344.0205 371.8701 344.9697 371.8701 c
-344.9697 371.8701 L
-b
-368.8525 369.6797 m
-B
-U
-0 g
-346.3018 367.4922 m
-349.2207 367.4922 L
-348.6895 366.5645 L
-347.0313 366.5645 L
-346.3018 367.4922 L
-b
-387.9551 367.4922 m
-390.873 367.4922 L
-390.3418 366.5645 L
-388.6836 366.5645 L
-387.9551 367.4922 L
-b
-0.61 G
-0.65 w
-347.8926 381.002 m
-347.8926 373.4404 L
-S
-349.2207 381.002 m
-349.2207 373.4404 L
-S
-u
-0 O
-0 g
-0 G
-0.325 w
-379.8633 378.5039 m
-388.75 378.5039 L
-388.75 377.043 L
-379.8633 377.043 L
-379.8633 378.5039 L
-b
-384.3066 377.7734 m
-B
-U
-1 J
-387.9453 371.2041 m
-388.2158 370.9199 388.3809 370.5371 388.3809 370.1143 C
-388.3809 369.25 L
-388.3809 368.8281 388.2158 368.4443 387.9453 368.1602 C
-S
-386.7168 371.2041 m
-386.9844 370.9199 387.1504 370.5371 387.1504 370.1143 C
-387.1504 369.25 L
-387.1504 368.8281 386.9844 368.4443 386.7168 368.1602 C
-S
-385.4854 371.2041 m
-385.7559 370.9199 385.9209 370.5371 385.9209 370.1143 C
-385.9209 369.25 L
-385.9209 368.8281 385.7559 368.4443 385.4854 368.1602 C
-S
-384.2559 371.2041 m
-384.5244 370.9199 384.6914 370.5371 384.6914 370.1143 C
-384.6914 369.25 L
-384.6914 368.8281 384.5244 368.4443 384.2559 368.1602 C
-S
-383.0244 371.2041 m
-383.2949 370.9199 383.4609 370.5371 383.4609 370.1143 C
-383.4609 369.25 L
-383.4609 368.8281 383.2949 368.4443 383.0244 368.1602 C
-S
-381.7949 371.2041 m
-382.0645 370.9199 382.2305 370.5371 382.2305 370.1143 C
-382.2305 369.25 L
-382.2305 368.8281 382.0645 368.4443 381.7949 368.1602 C
-S
-380.5645 371.2041 m
-380.834 370.9199 381 370.5371 381 370.1143 C
-381 369.25 L
-381 368.8281 380.834 368.4443 380.5645 368.1602 C
-S
-379.334 371.2041 m
-379.6035 370.9199 379.7695 370.5371 379.7695 370.1143 C
-379.7695 369.25 L
-379.7695 368.8281 379.6035 368.4443 379.334 368.1602 C
-S
-378.1045 371.2041 m
-378.374 370.9199 378.54 370.5371 378.54 370.1143 C
-378.54 369.25 L
-378.54 368.8281 378.374 368.4443 378.1045 368.1602 C
-S
-376.875 371.2041 m
-377.1426 370.9199 377.3096 370.5371 377.3096 370.1143 C
-377.3096 369.25 L
-377.3096 368.8281 377.1426 368.4443 376.875 368.1602 C
-S
-375.6445 371.2041 m
-375.9141 370.9199 376.0791 370.5371 376.0791 370.1143 C
-376.0791 369.25 L
-376.0791 368.8281 375.9141 368.4443 375.6445 368.1602 C
-S
-374.4141 371.2041 m
-374.6836 370.9199 374.8496 370.5371 374.8496 370.1143 C
-374.8496 369.25 L
-374.8496 368.8281 374.6836 368.4443 374.4141 368.1602 C
-S
-373.1855 371.2041 m
-373.4551 370.9199 373.6191 370.5371 373.6191 370.1143 C
-373.6191 369.25 L
-373.6191 368.8281 373.4551 368.4443 373.1855 368.1602 C
-S
-371.9531 371.2041 m
-372.2246 370.9199 372.3887 370.5371 372.3887 370.1143 C
-372.3887 369.25 L
-372.3887 368.8281 372.2246 368.4443 371.9531 368.1602 C
-S
-370.7227 371.2041 m
-370.9932 370.9199 371.1592 370.5371 371.1592 370.1143 C
-371.1592 369.25 L
-371.1592 368.8281 370.9932 368.4443 370.7227 368.1602 C
-S
-0 O
-0.4385 g
-0 J 1 j
-349.2207 382.9844 m
-388.2207 382.9844 L
-394.3223 381.0254 L
-343.3828 381.0254 L
-349.2207 382.9844 L
-b
-U
-U
-(Adobe Scatter Brush Tool) 1 0 58 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000041C646617820736572766572
-/Adobe_Brushed_Path () XT
-0 j 0.5 w 4 M
-342.4727 375.2129 m
-327.0859 375.2129 l
-327.0859 345.3223 l
-S
-LB
-%AI5_EndLayer--
-%%PageTrailer
-gsave annotatepage grestore showpage
-%%Trailer
-Adobe_Illustrator_AI5 /terminate get exec
-Adobe_shading_AI8 /terminate get exec
-Adobe_ColorImage_AI6 /terminate get exec
-Adobe_typography_AI5 /terminate get exec
-Adobe_cshow /terminate get exec
-Adobe_level2_AI5 /terminate get exec
-%%EOF
diff --git a/en_US.ISO8859-1/books/corp-net-guide/08-03.eps b/en_US.ISO8859-1/books/corp-net-guide/08-03.eps
deleted file mode 100644
index 381023e0f7..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/08-03.eps
+++ /dev/null
@@ -1,8489 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: Adobe Illustrator(R) 8.0
-%%AI8_CreatorVersion: 8.0.1
-%%For: (William B Brownville) (PDPS)
-%%Title: (08-03 3594)
-%%CreationDate: (11/21/00) (8:55 AM)
-%%BoundingBox: 150 266 424 397
-%%HiResBoundingBox: 150.9429 266.0234 423.8008 396.3271
-%%DocumentProcessColors: Black
-%%DocumentFonts: Helvetica
-%%DocumentNeededFonts: Helvetica
-%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
-%%+ procset Adobe_typography_AI5 1.0 1
-%%+ procset Adobe_ColorImage_AI6 1.3 0
-%%+ procset Adobe_Illustrator_AI5 1.3 0
-%%+ procset Adobe_cshow 2.0 8
-%%+ procset Adobe_shading_AI8 1.0 0
-%AI5_FileFormat 4.0
-%AI3_ColorUsage: Black&White
-%AI3_IncludePlacedImages
-%AI7_ImageSettings: 1
-%%CMYKProcessColor: 0 0 0 0.15 (15%)
-%%+ 0 0 0 0.3 (30%)
-%%+ 0 0 0 0.5 (50%)
-%%+ 0 0 0 0.75 (75%)
-%%+ 1 1 1 1 ([Registration])
-%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
-%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4
-%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ()
-%AI3_TemplateBox: 306.5 395.5 306.5 395.5
-%AI3_TileBox: 12 14 600 782
-%AI3_DocumentPreview: Macintosh_ColorPic
-%AI5_ArtSize: 612 792
-%AI5_RulerUnits: 3
-%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0
-%AI5_TargetResolution: 800
-%AI5_NumLayers: 1
-%AI8_OpenToView: 127.5986 435.8184 3.81 1137 777 18 0 1 7 40 0 0
-%AI5_OpenViewLayers: 7
-%%PageOrigin:12 14
-%%AI3_PaperRect:-12 782 600 -10
-%%AI3_Margin:12 -14 -12 10
-%AI7_GridSettings: 12 3 12 3 1 0 0.29 1 1 0.65 1 1
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Adobe_level2_AI5 1.2 0
-%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
-%%Version: 1.2 0
-%%CreationDate: (04/10/93) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-userdict /Adobe_level2_AI5 26 dict dup begin
- put
- /packedarray where not
- {
- userdict begin
- /packedarray
- {
- array astore readonly
- } bind def
- /setpacking /pop load def
- /currentpacking false def
- end
- 0
- } if
- pop
- userdict /defaultpacking currentpacking put true setpacking
- /initialize
- {
- Adobe_level2_AI5 begin
- } bind def
- /terminate
- {
- currentdict Adobe_level2_AI5 eq
- {
- end
- } if
- } bind def
- mark
- /setcustomcolor where not
- {
- /findcmykcustomcolor
- {
- (AI8_CMYK_CustomColor)
- 6 packedarray
- } bind def
- /findrgbcustomcolor
- {
- (AI8_RGB_CustomColor)
- 5 packedarray
- } bind def
- /setcustomcolor
- {
- exch
- aload pop dup
- (AI8_CMYK_CustomColor) eq
- {
- pop pop
- 4
- {
- 4 index mul
- 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- }
- {
- dup (AI8_RGB_CustomColor) eq
- {
- pop pop
- 3
- {
- 1 exch sub
- 3 index mul
- 1 exch sub
- 3 1 roll
- } repeat
- 4 -1 roll pop
- setrgbcolor
- }
- {
- pop
- 4
- {
- 4 index mul 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- } ifelse
- } ifelse
- }
- def
- } if
- /setAIseparationgray
- {
- false setoverprint
- 0 setgray
- /setseparationgray where{
- pop setseparationgray
- }{
- /setcolorspace where{
- pop
- [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
- 1 exch sub setcolor
- }{
- setgray
- }ifelse
- }ifelse
- } def
-
- /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
- userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
- userdict /level2?
- systemdict /languagelevel known dup
- {
- pop systemdict /languagelevel get 2 ge
- } if
- put
-/level2ScreenFreq
-{
- begin
- 60
- HalftoneType 1 eq
- {
- pop Frequency
- } if
- HalftoneType 2 eq
- {
- pop GrayFrequency
- } if
- HalftoneType 5 eq
- {
- pop Default level2ScreenFreq
- } if
- end
-} bind def
-userdict /currentScreenFreq
- level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
-level2? not
- {
- /setcmykcolor where not
- {
- /setcmykcolor
- {
- exch .11 mul add exch .59 mul add exch .3 mul add
- 1 exch sub setgray
- } def
- } if
- /currentcmykcolor where not
- {
- /currentcmykcolor
- {
- 0 0 0 1 currentgray sub
- } def
- } if
- /setoverprint where not
- {
- /setoverprint /pop load def
- } if
- /selectfont where not
- {
- /selectfont
- {
- exch findfont exch
- dup type /arraytype eq
- {
- makefont
- }
- {
- scalefont
- } ifelse
- setfont
- } bind def
- } if
- /cshow where not
- {
- /cshow
- {
- [
- 0 0 5 -1 roll aload pop
- ] cvx bind forall
- } bind def
- } if
- } if
- cleartomark
- /anyColor?
- {
- add add add 0 ne
- } bind def
- /testColor
- {
- gsave
- setcmykcolor currentcmykcolor
- grestore
- } bind def
- /testCMYKColorThrough
- {
- testColor anyColor?
- } bind def
- userdict /composite?
- 1 0 0 0 testCMYKColorThrough
- 0 1 0 0 testCMYKColorThrough
- 0 0 1 0 testCMYKColorThrough
- 0 0 0 1 testCMYKColorThrough
- and and and
- put
- composite? not
- {
- userdict begin
- gsave
- /cyan? 1 0 0 0 testCMYKColorThrough def
- /magenta? 0 1 0 0 testCMYKColorThrough def
- /yellow? 0 0 1 0 testCMYKColorThrough def
- /black? 0 0 0 1 testCMYKColorThrough def
- grestore
- /isCMYKSep? cyan? magenta? yellow? black? or or or def
- /customColor? isCMYKSep? not def
- end
- } if
- end defaultpacking setpacking
-%%EndResource
-%%BeginResource: procset Adobe_typography_AI5 1.0 1
-%%Title: (Typography Operators)
-%%Version: 1.0 1
-%%CreationDate:(6/10/1996) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_typography_AI5 68 dict dup begin
-put
-/initialize
-{
- begin
- begin
- Adobe_typography_AI5 begin
- Adobe_typography_AI5
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- end
- end
- Adobe_typography_AI5 begin
-} def
-/terminate
-{
- currentdict Adobe_typography_AI5 eq
- {
- end
- } if
-} def
-/modifyEncoding
-{
- /_tempEncode exch ddef
- /_pntr 0 ddef
- {
- counttomark -1 roll
- dup type dup /marktype eq
- {
- pop pop exit
- }
- {
- /nametype eq
- {
- _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
- put
- }
- {
- /_pntr exch ddef
- } ifelse
- } ifelse
- } loop
- _tempEncode
-} def
-/havefont
-{
- systemdict /languagelevel known
- {
- /Font resourcestatus dup
- { exch pop exch pop }
- if
- }
- {
- systemdict /FontDirectory get 1 index known
- { pop true }
- {
- systemdict /fileposition known
- {
- dup length 6 add exch
- Ss 6 250 getinterval
- cvs pop
- Ss exch 0 exch getinterval
- status
- { pop pop pop pop true }
- { false }
- ifelse
- }
- {
- pop false
- }
- ifelse
- }
- ifelse
- }
- ifelse
-} def
-/TE
-{
- StandardEncoding 256 array copy modifyEncoding
- /_nativeEncoding exch def
-} def
-/subststring {
- exch 2 index exch search
- {
- exch pop
- exch dup () eq
- {
- pop exch concatstring
- }
- {
- 3 -1 roll
- exch concatstring
- concatstring
- } ifelse
- exch pop true
- }
- {
- pop pop false
- } ifelse
-} def
-/concatstring {
- 1 index length 1 index length
- 1 index add
- string
- dup 0 5 index putinterval
- dup 2 index 4 index putinterval
- 4 1 roll pop pop pop
-} def
-%
-/TZ
-{
- dup type /arraytype eq
- {
- /_wv exch def
- }
- {
- /_wv 0 def
- } ifelse
- /_useNativeEncoding exch def
- 2 index havefont
- {
- 3 index
- 255 string
- cvs
-
- dup
- (_Symbol_)
- eq
- {
- pop
- 2 index
- findfont
-
- }
- {
- 1 index 0 eq
- {
- dup length 1 sub
- 1 exch
- getinterval
-
- cvn
- findfont
- }
- {
- pop 2 index findfont
- } ifelse
- } ifelse
- }
- {
- dup 1 eq
- {
- 2 index 64 string cvs
- dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop dup
- (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop pop true
- } ifelse
- } ifelse
- {
- 1 index 1 eq
- {
- /Ryumin-Light-Ext-RKSJ-V havefont
- {/Ryumin-Light-Ext-RKSJ-V}
- {/Courier}
- ifelse
- }
- {
- /Ryumin-Light-83pv-RKSJ-H havefont
- {/Ryumin-Light-83pv-RKSJ-H}
- {/Courier}
- ifelse
- } ifelse
- findfont
- [1 0 0.5 1 0 0] makefont
- } if
- }
- {
- /Courier findfont
- } ifelse
- } ifelse
- _wv type /arraytype eq
- {
- _wv makeblendedfont
- } if
- dup length 10 add dict
- begin
- mark exch
- {
- 1 index /FID ne
- {
- def
- } if
- cleartomark mark
- } forall
- pop
- /FontScript exch def
- /FontDirection exch def
- /FontRequest exch def
- /FontName exch def
- counttomark 0 eq
- {
- 1 _useNativeEncoding eq
- {
- /Encoding _nativeEncoding def
- } if
- cleartomark
- }
- {
- /Encoding load 256 array copy
- modifyEncoding /Encoding exch def
- } ifelse
- FontName currentdict
- end
- definefont pop
-} def
-/tr
-{
- _ax _ay 3 2 roll
-} def
-/trj
-{
- _cx _cy _sp _ax _ay 6 5 roll
-} def
-/a0
-{
- /Tx
- {
- dup
- currentpoint 3 2 roll
- tr _psf
- newpath moveto
- tr _ctm _pss
- } ddef
- /Tj
- {
- dup
- currentpoint 3 2 roll
- trj _pjsf
- newpath moveto
- trj _ctm _pjss
- } ddef
-} def
-/a1
-{
-W B
-} def
-/e0
-{
- /Tx
- {
- tr _psf
- } ddef
- /Tj
- {
- trj _pjsf
- } ddef
-} def
-/e1
-{
-W F
-} def
-/i0
-{
- /Tx
- {
- tr sp
- } ddef
- /Tj
- {
- trj jsp
- } ddef
-} def
-/i1
-{
- W N
-} def
-/o0
-{
- /Tx
- {
- tr sw rmoveto
- } ddef
- /Tj
- {
- trj swj rmoveto
- } ddef
-} def
-/r0
-{
- /Tx
- {
- tr _ctm _pss
- } ddef
- /Tj
- {
- trj _ctm _pjss
- } ddef
-} def
-/r1
-{
-W S
-} def
-/To
-{
- pop _ctm currentmatrix pop
-} def
-/TO
-{
- iTe _ctm setmatrix newpath
-} def
-/Tp
-{
- pop _tm astore pop _ctm setmatrix
- _tDict begin
- /W
- {
- } def
- /h
- {
- } def
-} def
-/TP
-{
- end
- iTm 0 0 moveto
-} def
-/Tr
-{
- _render 3 le
- {
- currentpoint newpath moveto
- } if
- dup 8 eq
- {
- pop 0
- }
- {
- dup 9 eq
- {
- pop 1
- } if
- } ifelse
- dup /_render exch ddef
- _renderStart exch get load exec
-} def
-/iTm
-{
- _ctm setmatrix _tm concat
- _shift aload pop _lineorientation 1 eq { exch } if translate
- _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
-} def
-/Tm
-{
- _tm astore pop iTm 0 0 moveto
-} def
-/Td
-{
- _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
-} def
-/iTe
-{
- _render -1 eq
- {
- }
- {
- _renderEnd _render get dup null ne
- {
- load exec
- }
- {
- pop
- } ifelse
- } ifelse
- /_render -1 ddef
-} def
-/Ta
-{
- pop
-} def
-/Tf
-{
- 1 index type /nametype eq
- {
- dup 0.75 mul 1 index 0.25 mul neg
- } if
- /_fontDescent exch ddef
- /_fontAscent exch ddef
- /_fontSize exch ddef
- /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
- /_fontHeight _fontSize ddef
- findfont _fontSize scalefont setfont
-} def
-/Tl
-{
- pop neg 0 exch
- _leading astore pop
-} def
-/Tt
-{
- pop
-} def
-/TW
-{
- 3 npop
-} def
-/Tw
-{
- /_cx exch ddef
-} def
-/TC
-{
- 3 npop
-} def
-/Tc
-{
- /_ax exch ddef
-} def
-/Ts
-{
- 0 exch
- _shift astore pop
- currentpoint
- iTm
- moveto
-} def
-/Ti
-{
- 3 npop
-} def
-/Tz
-{
- count 1 eq { 100 } if
- 100 div exch 100 div exch
- _scale astore pop
- iTm
-} def
-/TA
-{
- pop
-} def
-/Tq
-{
- pop
-} def
-/Tg
-{
- pop
-} def
-/TG
-{
- pop
-} def
-/Tv
-{
- /_lineorientation exch ddef
-} def
-/TV
-{
- /_charorientation exch ddef
-} def
-/Ty
-{
- dup /_yokoorientation exch ddef 1 sub neg Tv
-} def
-/TY
-{
- pop
-} def
-/T~
-{
- Tx
-} def
-/Th
-{
- pop pop pop pop pop
-} def
-/TX
-{
- pop
-} def
-/Tk
-{
- _fontSize mul 1000 div
- _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
- rmoveto
- pop
-} def
-/TK
-{
- 2 npop
-} def
-/T*
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- Td
-} def
-/T*-
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- exch neg exch neg
- Td
-} def
-/T-
-{
- _ax neg 0 rmoveto
- _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
-} def
-/T+
-{
-} def
-/TR
-{
- _ctm currentmatrix pop
- _tm astore pop
- iTm 0 0 moveto
-} def
-/TS
-{
- currentfont 3 1 roll
- /_Symbol_ findfont _fontSize scalefont setfont
-
- 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- setfont
-} def
-/Xb
-{
- pop pop
-} def
-/Tb /Xb load def
-/Xe
-{
- pop pop pop pop
-} def
-/Te /Xe load def
-/XB
-{
-} def
-/TB /XB load def
-currentdict readonly pop
-end
-setpacking
-%
-/X^
-{
- currentfont 5 1 roll
- dup havefont
- {
- findfont _fontSize scalefont setfont
- }
- {
- pop
- exch
- } ifelse
- 2 index 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- pop pop
- setfont
-} def
-/T^ /X^ load def
-%%EndResource
-%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
-userdict /Adobe_ColorImage_AI6 known not
-{
- userdict /Adobe_ColorImage_AI6 53 dict put
-} if
-userdict /Adobe_ColorImage_AI6 get begin
-/initialize {
- Adobe_ColorImage_AI6 begin
- Adobe_ColorImage_AI6 {
- dup type /arraytype eq {
- dup xcheck {
- bind
- } if
- } if
- pop pop
- } forall
-} def
-/terminate { end } def
-currentdict /Adobe_ColorImage_AI6_Vars known not {
- /Adobe_ColorImage_AI6_Vars 41 dict def
-} if
-Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /_newproc null def
- /_proc1 null def
- /_proc2 null def
- /sourcearray 4 array def
- /_ptispace null def
- /_ptiname null def
- /_pti0 0 def
- /_pti1 0 def
- /_ptiproc null def
- /_ptiscale 0 def
- /_pticomps 0 def
- /_ptibuf 0 string def
- /_gtigray 0 def
- /_cticmyk null def
- /_rtirgb null def
- /XIEnable true def
- /XIType 0 def
- /XIEncoding 0 def
- /XICompression 0 def
- /XIChannelCount 0 def
- /XIBitsPerPixel 0 def
- /XIImageHeight 0 def
- /XIImageWidth 0 def
- /XIImageMatrix null def
- /XIRowBytes 0 def
- /XIFile null def
- /XIBuffer1 null def
- /XIBuffer2 null def
- /XIBuffer3 null def
- /XIDataProc null def
- /XIColorSpace /DeviceGray def
- /XIColorValues 0 def
- /XIPlateList false def
-end
-/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
-/ci6image systemdict /image get def
-/ci6curtransfer systemdict /currenttransfer get def
-/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
-/ci6foureq {
- 4 index ne {
- pop pop pop false
- }{
- 4 index ne {
- pop pop false
- }{
- 4 index ne {
- pop false
- }{
- 4 index eq
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6testplate {
- Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /setcmykcolor where {
- pop
- gsave
- 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
- grestore
- 1 0 0 0 ci6foureq {
- /plateindex 0 def
- }{
- 0 1 0 0 ci6foureq {
- /plateindex 1 def
- }{
- 0 0 1 0 ci6foureq {
- /plateindex 2 def
- }{
- 0 0 0 1 ci6foureq {
- /plateindex 3 def
- }{
- 0 0 0 0 ci6foureq {
- /plateindex 5 def
- } if
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- pop pop pop pop
- } if
- plateindex
- end
-} def
-/ci6concatprocs {
- /packedarray where {
- pop dup type /packedarraytype eq 2 index type
- /packedarraytype eq or
- }{
- false
- } ifelse
- {
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- _proc1 aload pop
- _proc2 aload pop
- _proc1 length
- _proc2 length add
- packedarray cvx
- }{
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- /_newproc _proc1 length _proc2 length add array def
- _newproc 0 _proc1 putinterval
- _newproc _proc1 length _proc2 putinterval
- _newproc cvx
- } ifelse
-} def
-/ci6istint {
- type /arraytype eq
-} def
-/ci6isspot {
- dup type /arraytype eq {
- dup length 1 sub get /Separation eq
- }{
- pop false
- } ifelse
-} def
-/ci6spotname {
- dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
-} def
-/ci6altspace {
- aload pop pop pop ci6colormake
-} def
-/ci6numcomps {
- dup /DeviceGray eq {
- pop 1
- }{
- dup /DeviceRGB eq {
- pop 3
- }{
- /DeviceCMYK eq {
- 4
- }{
- 1
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6marksplate {
- dup /DeviceGray eq {
- pop plateindex 3 eq
- }{
- dup /DeviceRGB eq {
- pop plateindex 5 ne
- }{
- dup /DeviceCMYK eq {
- pop plateindex 5 ne
- }{
- dup ci6isspot {
- /findcmykcustomcolor where {
- pop
- dup length 2 sub get
- 0.1 0.1 0.1 0.1 5 -1 roll
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop plateindex 5 ne
- } ifelse
- }{
- pop plateindex 5 ne
- } ifelse
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colormake {
- dup ci6numcomps
- exch 1 index 2 add 1 roll
- dup 1 eq {pop}{array astore} ifelse
- exch
-} def
-/ci6colorexpand {
- dup ci6spotname exch
- dup ci6istint {
- ci6altspace
- exch 4 1 roll
- }{
- 1 3 1 roll
- } ifelse
-} def
-/ci6colortint {
- dup /DeviceGray eq {
- 3 1 roll 1 exch sub mul 1 exch sub exch
- }{
- dup /DeviceRGB eq {
- 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
- }{
- dup /DeviceCMYK eq {
- 3 1 roll {1 index mul exch} forall pop 4 array astore exch
- }{
- 3 1 roll mul exch
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colortocmyk {
- dup /DeviceGray eq {
- pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
- }{
- dup /DeviceRGB eq {
- pop aload pop _rgbtocmyk 4 array astore
- }{
- dup /DeviceCMYK eq {
- pop
- }{
- ci6altspace ci6colortint ci6colortocmyk
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6makeimagedict {
- 7 dict begin
- /ImageType 1 def
- /Decode exch def
- /DataSource exch def
- /ImageMatrix exch def
- /BitsPerComponent exch def
- /Height exch def
- /Width exch def
- currentdict end
-} def
-/ci6stringinvert {
- 0 1 2 index length 1 sub {
- dup 2 index exch get 255 exch sub 2 index 3 1 roll put
- } for
-} def
-/ci6stringknockout {
- 0 1 2 index length 1 sub {
- 255 2 index 3 1 roll put
- } for
-} def
-/ci6stringapply {
- 0 1 4 index length 1 sub {
- dup
- 4 index exch get
- 3 index 3 1 roll
- 3 index exec
- } for
- pop exch pop
-} def
-/ci6walkrgbstring {
- 0 3 index
- dup length 1 sub 0 3 3 -1 roll {
- 3 getinterval {} forall
- 5 index exec
- 3 index
- } for
-
- 5 {pop} repeat
-} def
-/ci6walkcmykstring
-{
- 0 3 index
- dup length 1 sub 0 4 3 -1 roll {
- 4 getinterval {} forall
-
- 6 index exec
-
- 3 index
-
- } for
-
- 5 { pop } repeat
-
-} def
-/ci6putrgbtograystr
-{
- .11 mul exch
-
- .59 mul add exch
-
- .3 mul add
-
- cvi 3 copy put
-
- pop 1 add
-} def
-/ci6putcmyktograystr
-{
- exch .11 mul add
-
- exch .59 mul add
-
- exch .3 mul add
-
- dup 255 gt { pop 255 } if
-
- 255 exch sub cvi 3 copy put
-
- pop 1 add
-} def
-/ci6rgbtograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putrgbtograystr load exch
- ci6walkrgbstring
- end
-} def
-/ci6cmyktograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putcmyktograystr load exch
- ci6walkcmykstring
- end
-} def
-/ci6separatecmykproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
-
- XIBuffer3
-
- 0 2 index
-
- plateindex 4 2 index length 1 sub {
- get 255 exch sub
-
- 3 copy put pop 1 add
-
- 2 index
- } for
- pop pop exch pop
- end
-} def
-
-/ci6compositeimage {
- dup 1 eq {
- pop pop image
- }{
- /ci6colorimage load null ne {
- ci6colorimage
- }{
- 3 1 roll pop
- sourcearray 0 3 -1 roll put
- 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
- image
- } ifelse
- } ifelse
-} def
-/ci6knockoutimage {
- gsave
- 0 ci6curtransfer exec 1 ci6curtransfer exec
- eq {
- 0 ci6curtransfer exec 0.5 lt
- }{
- 0 ci6curtransfer exec 1 ci6curtransfer exec gt
- } ifelse
- {{pop 0}}{{pop 1}} ifelse
- systemdict /settransfer get exec
- ci6compositeimage
- grestore
-} def
-/ci6drawimage {
- ci6testplate -1 eq {
- pop ci6compositeimage
- }{
- dup type /arraytype eq {
- dup length plateindex gt {plateindex get}{pop false} ifelse
- }{
- {
- true
- }{
- dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
- } ifelse
- } ifelse
- {
- dup 1 eq {
- pop pop ci6image
- }{
- dup 3 eq {
- ci6compositeimage
- }{
- pop pop
- sourcearray 0 3 -1 roll put
- /ci6separatecmykproc load
- ci6image
- } ifelse
- } ifelse
- }{
- ci6curoverprint {
- 7 {pop} repeat
- }{
- ci6knockoutimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6proctintimage {
- /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
- /_pticomps _ptispace ci6numcomps store
- /_ptiscale _pti1 _pti0 sub store
- level2? {
- _ptiname length 0 gt version cvr 2012 ge and {
- [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
- [_pti0 _pti1] ci6makeimagedict ci6image
- }{
- [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
- [0 255] ci6makeimagedict ci6image
- } ifelse
- }{
- _pticomps 1 eq {
- {
- dup
- {
- 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
- } ci6stringapply
- } ci6concatprocs ci6image
- }{
- {
- dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
- _ptibuf {
- exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
- _pticomps 2 add -2 roll
- _pticomps 1 sub -1 0 {
- 1 index add 2 index exch
- 5 -1 roll
- 255 mul cvi put
- } for
- pop pop
- } ci6stringapply
- } ci6concatprocs false _pticomps
- /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
- } ifelse
- } ifelse
-} def
-/ci6graytintimage {
- /_gtigray 5 -1 roll store
- {1 _gtigray sub mul 1 exch sub} 4 1 roll
- /DeviceGray ci6proctintimage
-} def
-/ci6cmyktintimage {
- /_cticmyk 5 -1 roll store
- {_cticmyk {1 index mul exch} forall pop} 4 1 roll
- /DeviceCMYK ci6proctintimage
-} def
-/ci6rgbtintimage {
- /_rtirgb 5 -1 roll store
- {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
- /DeviceRGB ci6proctintimage
-} def
-/ci6tintimage {
- ci6testplate -1 eq {
- ci6colorexpand
- 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
- dup /DeviceGray eq {
- pop ci6graytintimage
- }{
- dup /DeviceRGB eq {
- pop ci6rgbtintimage
- }{
- pop ci6cmyktintimage
- } ifelse
- } ifelse
- }{
- dup ci6marksplate {
- plateindex 5 lt {
- ci6colortocmyk plateindex get
- dup 0 eq ci6curoverprint and {
- 7 {pop} repeat
- }{
- 1 exch sub
- exch {1 0}{0 1} ifelse () ci6graytintimage
- } ifelse
- }{
- pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
- } ifelse
- }{
- ci6curoverprint {
- 8 {pop} repeat
- }{
- pop pop pop
- {pop 1} 0 1 () /DeviceGray ci6proctintimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/XINullImage {
-} def
-/XIImageMask {
- XIImageWidth XIImageHeight false
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- imagemask
-} def
-/XIImageTint {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- XIType 3 eq XIColorValues XIColorSpace ci6tintimage
-} def
-/XIImage {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- false XIChannelCount XIPlateList ci6drawimage
-} def
-/XG {
- pop pop
-} def
-/XF {
- 13 {pop} repeat
-} def
-/Xh {
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- /XIImageMatrix exch def
- 0 0 moveto
- XIImageMatrix concat
- XIImageWidth XIImageHeight scale
-
- /_lp /null ddef
- _fc
- /_lp /imagemask ddef
- end
-} def
-/XH {
- Adobe_ColorImage_AI6_Vars begin
- grestore
- end
-} def
-/XIEnable {
- Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
-} def
-/XC {
- Adobe_ColorImage_AI6_Vars begin
- ci6colormake
- /XIColorSpace exch def
- /XIColorValues exch def
- end
-} def
-/XIPlates {
- Adobe_ColorImage_AI6_Vars begin
- /XIPlateList exch def
- end
-} def
-/XI
-{
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- cvi dup
- 256 idiv /XICompression exch store
- 256 mod /XIEncoding exch store
- pop pop
- /XIChannelCount exch def
- /XIBitsPerPixel exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- pop pop pop pop
- /XIImageMatrix exch def
- XIBitsPerPixel 1 eq {
- XIImageWidth 8 div ceiling cvi
- }{
- XIImageWidth XIChannelCount mul
- } ifelse
- /XIRowBytes exch def
- XIEnable {
- /XIBuffer3 XIImageWidth string def
- XICompression 0 eq {
- /XIBuffer1 XIRowBytes string def
- XIEncoding 0 eq {
- {currentfile XIBuffer1 readhexstring pop}
- }{
- {currentfile XIBuffer1 readstring pop}
- } ifelse
- }{
- /XIBuffer1 256 string def
- /XIBuffer2 XIRowBytes string def
- {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
- /ASCII85Decode filter /DCTDecode filter
- /XIFile exch def
- {XIFile XIBuffer2 readstring pop}
- } ifelse
- /XIDataProc exch def
-
- XIType 1 ne {
- 0 setgray
- } if
- XIType 1 eq {
- XIImageMask
- }{
- XIType 2 eq XIType 3 eq or {
- XIImageTint
- }{
- XIImage
- } ifelse
- } ifelse
- }{
- XINullImage
- } ifelse
- /XIPlateList false def
- grestore
- end
-} def
-end
-%%EndProcSet
-%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
-%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
-%%Version: 1.3 0
-%%CreationDate: (3/7/1994) ()
-%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
-put
-/_?cmyk false def
-/_eo false def
-/_lp /none def
-/_pf
-{
-} def
-/_ps
-{
-} def
-/_psf
-{
-} def
-/_pss
-{
-} def
-/_pjsf
-{
-} def
-/_pjss
-{
-} def
-/_pola 0 def
-/_doClip 0 def
-/cf currentflat def
-/_lineorientation 0 def
-/_charorientation 0 def
-/_yokoorientation 0 def
-/_tm matrix def
-/_renderStart
-[
-/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
-] def
-/_renderEnd
-[
-null null null null /i1 /i1 /i1 /i1
-] def
-/_render -1 def
-/_shift [0 0] def
-/_ax 0 def
-/_ay 0 def
-/_cx 0 def
-/_cy 0 def
-/_leading
-[
-0 0
-] def
-/_ctm matrix def
-/_mtx matrix def
-/_sp 16#020 def
-/_hyphen (-) def
-/_fontSize 0 def
-/_fontAscent 0 def
-/_fontDescent 0 def
-/_fontHeight 0 def
-/_fontRotateAdjust 0 def
-/Ss 256 string def
-Ss 0 (fonts/) putinterval
-/_cnt 0 def
-/_scale [1 1] def
-/_nativeEncoding 0 def
-/_useNativeEncoding 0 def
-/_tempEncode 0 def
-/_pntr 0 def
-/_tDict 2 dict def
-/_hfname 100 string def
-/_hffound false def
-/Tx
-{
-} def
-/Tj
-{
-} def
-/CRender
-{
-} def
-/_AI3_savepage
-{
-} def
-/_gf null def
-/_cf 4 array def
-/_rgbf 3 array def
-/_if null def
-/_of false def
-/_fc
-{
-} def
-/_gs null def
-/_cs 4 array def
-/_rgbs 3 array def
-/_is null def
-/_os false def
-/_sc
-{
-} def
-/_pd 1 dict def
-/_ed 15 dict def
-/_pm matrix def
-/_fm null def
-/_fd null def
-/_fdd null def
-/_sm null def
-/_sd null def
-/_sdd null def
-/_i null def
-/_lobyte 0 def
-/_hibyte 0 def
-/_cproc null def
-/_cscript 0 def
-/_hvax 0 def
-/_hvay 0 def
-/_hvwb 0 def
-/_hvcx 0 def
-/_hvcy 0 def
-/_bitfont null def
-/_bitlobyte 0 def
-/_bithibyte 0 def
-/_bitkey null def
-/_bitdata null def
-/_bitindex 0 def
-/discardSave null def
-/buffer 256 string def
-/beginString null def
-/endString null def
-/endStringLength null def
-/layerCnt 1 def
-/layerCount 1 def
-/perCent (%) 0 get def
-/perCentSeen? false def
-/newBuff null def
-/newBuffButFirst null def
-/newBuffLast null def
-/clipForward? false def
-end
-userdict /Adobe_Illustrator_AI5 known not {
- userdict /Adobe_Illustrator_AI5 100 dict put
-} if
-userdict /Adobe_Illustrator_AI5 get begin
-/initialize
-{
- Adobe_Illustrator_AI5 dup begin
- Adobe_Illustrator_AI5_vars begin
- /_aicmykps where {pop /_?cmyk _aicmykps def}if
- discardDict
- {
- bind pop pop
- } forall
- dup /nc get begin
- {
- dup xcheck 1 index type /operatortype ne and
- {
- bind
- } if
- pop pop
- } forall
- end
- newpath
-} def
-/terminate
-{
- end
- end
-} def
-/_
-null def
-/ddef
-{
- Adobe_Illustrator_AI5_vars 3 1 roll put
-} def
-/xput
-{
- dup load dup length exch maxlength eq
- {
- dup dup load dup
- length 2 mul dict copy def
- } if
- load begin
- def
- end
-} def
-/npop
-{
- {
- pop
- } repeat
-} def
-/hswj
-{
- dup stringwidth 3 2 roll
- {
- _hvwb eq { exch _hvcx add exch _hvcy add } if
- exch _hvax add exch _hvay add
- } cforall
-} def
-/vswj
-{
- 0 0 3 -1 roll
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- dup cstring stringwidth 5 2 roll
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- 4 -1 roll sub exch
- 3 -1 roll sub exch
- }
- {
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- _fontHeight sub
- } ifelse
- } cforall
-} def
-/swj
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hswj } { vswj } ifelse
-} def
-/sw
-{
- 0 0 0 6 3 roll swj
-} def
-/vjss
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- gsave
- 2 index false charpath
- 6 index setmatrix stroke
- grestore
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjss
-{
- 4 1 roll
- {
- dup cstring
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jss
-{
- _lineorientation 0 eq { hjss } { vjss } ifelse
-} def
-/ss
-{
- 0 0 0 7 3 roll jss
-} def
-/vjsp
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- false charpath
- currentpoint
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- 2 index false charpath
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjsp
-{
- 4 1 roll
- {
- dup cstring
- false charpath
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jsp
-{
- matrix currentmatrix
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/sp
-{
- matrix currentmatrix
- 0 0 0 7 3 roll
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/pl
-{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
-} def
-/setstrokeadjust where
-{
- pop true setstrokeadjust
- /c
- {
- curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll curveto
- } def
- /V
- /v load def
- /y
- {
- 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- lineto
- } def
- /L
- /l load def
- /m
- {
- moveto
- } def
-}
-{
- /c
- {
- pl curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll pl curveto
- } def
- /V
- /v load def
- /y
- {
- pl 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- pl lineto
- } def
- /L
- /l load def
- /m
- {
- pl moveto
- } def
-} ifelse
-/d
-{
- setdash
-} def
-/cf
-{
-} def
-/i
-{
- dup 0 eq
- {
- pop cf
- } if
- setflat
-} def
-/j
-{
- setlinejoin
-} def
-/J
-{
- setlinecap
-} def
-/M
-{
- setmiterlimit
-} def
-/w
-{
- setlinewidth
-} def
-/XR
-{
- 0 ne
- /_eo exch ddef
-} def
-/H
-{
-} def
-/h
-{
- closepath
-} def
-/N
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- _eo {eoclip} {clip} ifelse /_doClip 0 ddef
- } if
- newpath
- }
- {
- /CRender
- {
- N
- } ddef
- } ifelse
-} def
-/n
-{
- N
-} def
-/F
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
- /_doClip 0 ddef
- }
- {
- _pf
- } ifelse
- }
- {
- /CRender
- {
- F
- } ddef
- } ifelse
-} def
-/f
-{
- closepath
- F
-} def
-/S
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- _ps
- } ifelse
- }
- {
- /CRender
- {
- S
- } ddef
- } ifelse
-} def
-/s
-{
- closepath
- S
-} def
-/B
-{
- _pola 0 eq
- {
- _doClip 1 eq
- gsave F grestore
- {
- gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- S
- } ifelse
- }
- {
- /CRender
- {
- B
- } ddef
- } ifelse
-} def
-/b
-{
- closepath
- B
-} def
-/W
-{
- /_doClip 1 ddef
-} def
-/*
-{
- count 0 ne
- {
- dup type /stringtype eq
- {
- pop
- } if
- } if
- newpath
-} def
-/u
-{
-} def
-/U
-{
-} def
-/q
-{
- _pola 0 eq
- {
- gsave
- } if
-} def
-/Q
-{
- _pola 0 eq
- {
- grestore
- } if
-} def
-/*u
-{
- _pola 1 add /_pola exch ddef
-} def
-/*U
-{
- _pola 1 sub /_pola exch ddef
- _pola 0 eq
- {
- CRender
- } if
-} def
-/D
-{
- pop
-} def
-/*w
-{
-} def
-/*W
-{
-} def
-/`
-{
- /_i save ddef
- clipForward?
- {
- nulldevice
- } if
- 6 1 roll 4 npop
- concat pop
- userdict begin
- /showpage
- {
- } def
- 0 setgray
- 0 setlinecap
- 1 setlinewidth
- 0 setlinejoin
- 10 setmiterlimit
- [] 0 setdash
- /setstrokeadjust where {pop false setstrokeadjust} if
- newpath
- 0 setgray
- false setoverprint
-} def
-/~
-{
- end
- _i restore
-} def
-/_rgbtocmyk
-{
- 3
- {
- 1 exch sub 3 1 roll
- } repeat
- 3 copy 1 4 1 roll
- 3
- {
- 3 index 2 copy gt
- {
- exch
- } if
- pop 4 1 roll
- } repeat
- pop pop pop
- 4 1 roll
- 3
- {
- 3 index sub
- 3 1 roll
- } repeat
- 4 -1 roll
-} def
-/setrgbfill
-{
- _rgbf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _rgbf aload pop setrgbcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/setrgbstroke
-{
- _rgbs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _rgbs aload pop setrgbcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/O
-{
- 0 ne
- /_of exch ddef
- /_lp /none ddef
-} def
-/R
-{
- 0 ne
- /_os exch ddef
- /_lp /none ddef
-} def
-/g
-{
- /_gf exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/G
-{
- /_gs exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/k
-{
- _cf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _cf aload pop setcmykcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/K
-{
- _cs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _cs aload pop setcmykcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xa
-{
- _?cmyk {
- 3 npop k
- }{
- setrgbfill 4 npop
- } ifelse
-} def
-/XA
-{
- _?cmyk {
- 3 npop K
- }{
- setrgbstroke 4 npop
- } ifelse
-} def
-/Xs
-{
- /_gf exch ddef
- 5 npop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setAIseparationgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XS
-{
- /_gs exch ddef
- 5 npop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setAIseparationgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xx
-{
- exch
- /_gf exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XX
-{
- exch
- /_gs exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/x
-{
- /_gf exch ddef
- findcmykcustomcolor
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/X
-{
- /_gs exch ddef
- findcmykcustomcolor
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/XK
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- K
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- XA
- } ifelse
-} def
-/Xk
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- k
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- Xa
- } ifelse
-} def
-/A
-{
- pop
-} def
-/annotatepage
-{
-userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
-} def
-/XT {
- pop pop
-} def
-/Xt {
- pop
-} def
-/discard
-{
- save /discardSave exch store
- discardDict begin
- /endString exch store
- gt38?
- {
- 2 add
- } if
- load
- stopped
- pop
- end
- discardSave restore
-} bind def
-userdict /discardDict 7 dict dup begin
-put
-/pre38Initialize
-{
- /endStringLength endString length store
- /newBuff buffer 0 endStringLength getinterval store
- /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
- /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
-} def
-/shiftBuffer
-{
- newBuff 0 newBuffButFirst putinterval
- newBuffLast 0
- currentfile read not
- {
- stop
- } if
- put
-} def
-0
-{
- pre38Initialize
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff endString eq
- {
- cleartomark stop
- } if
- shiftBuffer
- } loop
- }
- {
- stop
- } ifelse
-} def
-1
-{
- pre38Initialize
- /beginString exch store
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff beginString eq
- {
- /layerCount dup load 1 add store
- }
- {
- newBuff endString eq
- {
- /layerCount dup load 1 sub store
- layerCount 0 eq
- {
- cleartomark stop
- } if
- } if
- } ifelse
- shiftBuffer
- } loop
- } if
-} def
-2
-{
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- endString eq {
- cleartomark stop
- } if
- }ifelse
- } loop
-} def
-3
-{
- /beginString exch store
- /layerCnt 1 store
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- dup beginString eq
- {
- pop /layerCnt dup load 1 add store
- }
- {
- endString eq
- {
- layerCnt 1 eq
- {
- cleartomark stop
- }
- {
- /layerCnt dup load 1 sub store
- } ifelse
- } if
- } ifelse
- }ifelse
- } loop
-} def
-end
-userdict /clipRenderOff 15 dict dup begin
-put
-{
- /n /N /s /S /f /F /b /B
-}
-{
- {
- _doClip 1 eq
- {
- /_doClip 0 ddef _eo {eoclip} {clip} ifelse
- } if
- newpath
- } def
-} forall
-/Tr /pop load def
-/Bb {} def
-/BB /pop load def
-/Bg {12 npop} def
-/Bm {6 npop} def
-/Bc /Bm load def
-/Bh {4 npop} def
-end
-/Lb
-{
- 6 npop
- 7 2 roll
- 5 npop
- 0 eq
- {
- 0 eq
- {
- (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
- }
- {
-
- /clipForward? true def
-
- /Tx /pop load def
- /Tj /pop load def
-
- currentdict end clipRenderOff begin begin
- } ifelse
- }
- {
- 0 eq
- {
- save /discardSave exch store
- } if
- } ifelse
-} bind def
-/LB
-{
- discardSave dup null ne
- {
- restore
- }
- {
- pop
- clipForward?
- {
- currentdict
- end
- end
- begin
-
- /clipForward? false ddef
- } if
- } ifelse
-} bind def
-/Pb
-{
- pop pop
- 0 (%AI5_EndPalette) discard
-} bind def
-/Np
-{
- 0 (%AI5_End_NonPrinting--) discard
-} bind def
-/Ln /pop load def
-/Ap
-/pop load def
-/Ar
-{
- 72 exch div
- 0 dtransform dup mul exch dup mul add sqrt
- dup 1 lt
- {
- pop 1
- } if
- setflat
-} def
-/Mb
-{
- q
-} def
-/Md
-{
-} def
-/MB
-{
- Q
-} def
-/nc 4 dict def
-nc begin
-/setgray
-{
- pop
-} bind def
-/setcmykcolor
-{
- 4 npop
-} bind def
-/setrgbcolor
-{
- 3 npop
-} bind def
-/setcustomcolor
-{
- 2 npop
-} bind def
-currentdict readonly pop
-end
-/XP
-{
- 4 npop
-} bind def
-/XD
-{
- pop
-} bind def
-end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_cshow 2.0 8
-%%Title: (Writing System Operators)
-%%Version: 2.0 8
-%%CreationDate: (1/23/89) ()
-%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_cshow 14 dict dup begin put
-/initialize
-{
- Adobe_cshow begin
- Adobe_cshow
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- Adobe_cshow begin
-} def
-/terminate
-{
-currentdict Adobe_cshow eq
- {
- end
- } if
-} def
-/cforall
-{
- /_lobyte 0 ddef
- /_hibyte 0 ddef
- /_cproc exch ddef
- /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
- {
- /_lobyte exch ddef
- _hibyte 0 eq
- _cscript 1 eq
- _lobyte 129 ge _lobyte 159 le and
- _lobyte 224 ge _lobyte 252 le and or and
- _cscript 2 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 3 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 25 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript -1 eq
- or or or or and
- {
- /_hibyte _lobyte ddef
- }
- {
- _hibyte 256 mul _lobyte add
- _cproc
- /_hibyte 0 ddef
- } ifelse
- } forall
-} def
-/cstring
-{
- dup 256 lt
- {
- (s) dup 0 4 3 roll put
- }
- {
- dup 256 idiv exch 256 mod
- (hl) dup dup 0 6 5 roll put 1 4 3 roll put
- } ifelse
-} def
-/clength
-{
- 0 exch
- { 256 lt { 1 } { 2 } ifelse add } cforall
-} def
-/hawidthshow
-{
- {
- dup cstring
- show
- _hvax _hvay rmoveto
- _hvwb eq { _hvcx _hvcy rmoveto } if
- } cforall
-} def
-/vawidthshow
-{
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- -90 rotate
- 0 _fontRotateAdjust rmoveto
- cstring
- _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
- 0 _fontRotateAdjust neg rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- exch _hvay sub exch _hvax sub
- 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- 3 2 roll
- cstring
- dup stringwidth pop 2 div neg _fontAscent neg rmoveto
- show
- moveto
- } ifelse
- } cforall
-} def
-/hvawidthshow
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
-} def
-/hvwidthshow
-{
- 0 0 3 -1 roll hvawidthshow
-} def
-/hvashow
-{
- 0 0 0 6 -3 roll hvawidthshow
-} def
-/hvshow
-{
- 0 0 0 0 0 6 -1 roll hvawidthshow
-} def
-currentdict readonly pop end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_shading_AI8 1.0 0
-%%Title: (Adobe Illustrator 8 Shading Procset)
-%%Version: 1.0 0
-%%CreationDate: (12/17/97) ()
-%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
-userdict /defaultpacking currentpacking put true setpacking
-userdict /Adobe_shading_AI8 10 dict dup begin put
-/initialize {
- Adobe_shading_AI8 begin
- Adobe_shading_AI8 bdprocs
- Mesh /initialize get exec
-} def
-/terminate {
- currentdict Adobe_shading_AI8 eq {
- end
- } if
-} def
-/bdprocs {
- {
- dup xcheck 1 index type /arraytype eq and {
- bind
- } if
- pop pop
- } forall
-} def
-/X! {pop} def
-/X# {pop pop} def
-/Mesh 40 dict def
-Mesh begin
-/initialize {
- Mesh bdprocs
- Mesh begin
- /emulate? /AI8MeshEmulation where {
- pop AI8MeshEmulation
- }{
- systemdict /shfill known not
- } ifelse def
- end
-} def
-/bd {
- shadingdict begin
-} def
-/paint {
- emulate? {
- end
- }{
- /_lp /none ddef _fc /_lp /none ddef
-
- /AIColorSpace AIColorSpace tocolorspace store
- /ColorSpace AIColorSpace topsspace store
-
- version_ge_3010.106 not systemdict /setsmoothness known and {
- 0.0001 setsmoothness
- } if
-
- composite? {
- /DataSource getdatasrc def
- Matrix concat
- currentdict end
- shfill
- }{
- AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
- end
- }{
- /ColorSpace /DeviceGray store
- /Decode [0 1 0 1 0 1] store
- /DataSource getplatesrc def
- Matrix concat
- currentdict end
- shfill
- } ifelse
- } ifelse
- } ifelse
-} def
-/shadingdict 12 dict def
-shadingdict begin
- /ShadingType 6 def
- /BitsPerCoordinate 16 def
- /BitsPerComponent 8 def
- /BitsPerFlag 8 def
-end
-/datafile null def
-/databuf 256 string def
-/dataptr 0 def
-/srcspace null def
-/srcchannels 0 def
-/dstchannels 0 def
-/dstplate 0 def
-/srctodstcolor null def
-/getplatesrc {
- /srcspace AIColorSpace store
- /srcchannels AIColorSpace getnchannels store
- /dstchannels 1 store
- /dstplate getplateindex store
- /srctodstcolor srcspace makesmarks {
- dstplate 4 eq {
- {1 exch sub}
- }{
- {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
- } ifelse
- }{
- {srcchannels {pop} repeat 1}
- } ifelse store
- /datafile getdatasrc store
- /rdpatch168 load DataLength () /SubFileDecode filter
-} def
-/getdatasrc {
- /rdcmntline load /ASCII85Decode filter
-} def
-/rdpatch168 {
- /dataptr 0 store
- 49 rdcount
- 4 {
- dup {pop srcchannels getint8} if
- dup {pop srctodstcolor dstchannels putint8 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdpatch3216 {
- /dataptr 0 store
- 97 rdcount
- 4 {
- dup {pop srcchannels getint16} if
- dup {pop srctodstcolor dstchannels putint16 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdcount {
- dup 0 gt {
- datafile databuf dataptr 4 -1 roll getinterval readstring
- exch length dataptr add /dataptr exch store
- }{
- true
- } ifelse
-} def
-/getint8 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 255 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint8 {
- dup dataptr add /dataptr exch store
- dataptr exch
- {
- 1 sub exch
- 255 mul cvi
- databuf 2 index
- 3 -1 roll put
- } repeat
- pop
-} def
-/getint16 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 256 mul datafile read} if
- dup {pop add 65535 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint16 {
- dup 2 mul dataptr add /dataptr exch store
- dataptr exch
- {
- 2 sub exch
- 65535 mul cvi dup
- 256 idiv databuf 3 index 3 -1 roll put
- 256 mod databuf 2 index 1 add 3 -1 roll put
- } repeat
- pop
-} def
-/srcbuf 256 string def
-/rdcmntline {
- currentfile srcbuf readline pop
- (%) anchorsearch {pop} if
-} def
-/getplateindex {
- 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
-} def
-/aicsarray 4 array def
-/aicsaltvals 4 array def
-/aicsaltcolr aicsaltvals def
-/tocolorspace {
- dup type /arraytype eq {
- mark exch aload pop
- aicsarray 0 3 -1 roll put
- aicsarray 1 3 -1 roll put
- dup aicsarray 2 3 -1 roll put
- gettintxform aicsarray 3 3 -1 roll put
- counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
- aicsaltcolr astore pop pop
- aicsarray
- } if
-} def
-/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
-/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
-/gettintxform {
- /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
-} def
-/getnchannels {
- dup type /arraytype eq {0 get} if
- colorspacedict exch get begin Channels end
-} def
-/makesmarks {
- composite? {
- pop true
- }{
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin MarksPlate end
- } ifelse
-} def
-/markingplate {
- composite? {
- pop true
- }{
- dup type /arraytype eq {
- dup length getplateindex gt {getplateindex get}{pop false} ifelse
- } if
- } ifelse
-} def
-/tocmyk {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToCMYK end
-} def
-/topsspace {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToPSSpace end
-} def
-/colorspacedict 5 dict dup begin
- /DeviceGray 4 dict dup begin
- /Channels 1 def
- /MarksPlate {pop black?} def
- /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
- /ToPSSpace {} def
- end def
- /DeviceRGB 4 dict dup begin
- /Channels 3 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop _rgbtocmyk} def
- /ToPSSpace {} def
- end def
- /DeviceCMYK 4 dict dup begin
- /Channels 4 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop} def
- /ToPSSpace {} def
- end def
- /Separation 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- /findcmykcustomcolor where {
- pop dup 1 exch ToCMYK 5 -1 roll 1 get
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {} def
- end def
- /Process 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- isCMYKSep? {
- 1 exch ToCMYK 4 array astore getplateindex get 0 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {
- 4 array copy dup 0 /Separation put
- } def
- end def
-end def
-/isoverprint {
- /currentoverprint where {pop currentoverprint}{_of} ifelse
-} def
-/version_ge_3010.106 {
- version {cvr} stopped {
- pop
- false
- }{
- 3010.106 ge
- } ifelse
-} def
-end
-end
-defaultpacking setpacking
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeFont: Helvetica
-userdict /_useSmoothShade false put
-userdict /_aicmykps true put
-userdict /_forceToCMYK true put
-Adobe_level2_AI5 /initialize get exec
-Adobe_cshow /initialize get exec
-Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
-Adobe_ColorImage_AI6 /initialize get exec
-Adobe_shading_AI8 /initialize get exec
-Adobe_Illustrator_AI5 /initialize get exec
-[
-39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
-/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
-/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
-/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
-/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
-/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
-/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
-/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
-/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
-/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
-/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
-/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
-/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
-/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
-/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
-/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
-/hungarumlaut/ogonek/caron
-TE
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Helvetica Helvetica
-[/_Helvetica/Helvetica 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
-181/mu/partialdiff/summation/product/pi/integral 189/Omega
-195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
-/_Symbol_/Symbol 0 0 0 TZ
-%AI5_Begin_NonPrinting
-Np
-%AI3_BeginPattern: (bi-direction diagonals)
-(bi-direction diagonals) 24.2119 0.2119 96.2124 72.2119 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-8.2119 6.2119 m
-14.2119 0.2119 L
-F
-8.2119 0.2119 m
-14.2119 6.2119 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-24.2119 72.2119 m
-96.2124 0.2119 L
-S
-21.2109 69.2129 m
-90.2124 0.2119 L
-S
-21.207 63.2168 m
-84.2124 0.2119 L
-S
-21.2031 57.2207 m
-78.2124 0.2119 L
-S
-21.1987 51.2246 m
-72.2124 0.2119 L
-S
-21.1958 45.2275 m
-66.2119 0.2119 L
-S
-21.1919 39.2314 m
-60.2119 0.2119 L
-S
-21.188 33.2363 m
-54.2119 0.2119 L
-S
-21.1851 27.2402 m
-48.2119 0.2119 L
-S
-21.1812 21.2432 m
-42.2119 0.2119 L
-S
-21.1768 15.2471 m
-36.2119 0.2119 L
-S
-21.1729 9.251 m
-30.2119 0.2119 L
-S
-21.1699 3.2549 m
-24.2119 0.2119 L
-S
-30.2119 72.2119 m
-99.2134 3.21 L
-S
-36.2119 72.2119 m
-99.2173 9.2061 L
-S
-42.2119 72.2119 m
-99.2212 15.2021 L
-S
-48.2119 72.2119 m
-99.2251 21.1992 L
-S
-54.2119 72.2119 m
-99.228 27.1953 L
-S
-60.2119 72.2119 m
-99.2319 33.1904 L
-S
-66.2119 72.2119 m
-99.2358 39.1865 L
-S
-72.2124 72.2119 m
-99.2397 45.1836 L
-S
-78.2124 72.2119 m
-99.2427 51.1797 L
-S
-84.2124 72.2119 m
-99.2466 57.1758 L
-S
-90.2124 72.2119 m
-99.2505 63.1719 L
-S
-96.2124 72.2119 m
-99.2554 69.1689 L
-S
-0.2119 68.7119 m
-10.2119 58.7119 L
-S
-96.2124 72.2119 m
-24.2119 0.2119 L
-S
-90.2124 72.2119 m
-21.2109 3.21 L
-S
-84.2124 72.2119 m
-21.207 9.2061 L
-S
-78.2124 72.2119 m
-21.2031 15.2021 L
-S
-72.2124 72.2119 m
-21.1987 21.1982 L
-S
-66.2119 72.2119 m
-21.1958 27.1953 L
-S
-60.2119 72.2119 m
-21.1919 33.1904 L
-S
-54.2119 72.2119 m
-21.188 39.1865 L
-S
-48.2119 72.2119 m
-21.1851 45.1826 L
-S
-42.2119 72.2119 m
-21.1812 51.1797 L
-S
-36.2119 72.2119 m
-21.1768 57.1758 L
-S
-30.2119 72.2119 m
-21.1729 63.1719 L
-S
-24.2119 72.2119 m
-21.1699 69.168 L
-S
-99.2134 69.2129 m
-30.2119 0.2119 L
-S
-99.2173 63.2168 m
-36.2119 0.2119 L
-S
-99.2212 57.2207 m
-42.2119 0.2119 L
-S
-99.2251 51.2246 m
-48.2119 0.2119 L
-S
-99.228 45.2275 m
-54.2119 0.2119 L
-S
-99.2319 39.2314 m
-60.2119 0.2119 L
-S
-99.2358 33.2363 m
-66.2119 0.2119 L
-S
-99.2397 27.2393 m
-72.2124 0.2119 L
-S
-99.2427 21.2432 m
-78.2124 0.2119 L
-S
-99.2466 15.2471 m
-84.2124 0.2119 L
-S
-99.2505 9.251 m
-90.2124 0.2119 L
-S
-99.2554 3.2539 m
-96.2124 0.2119 L
-S
-0.2119 58.7119 m
-10.2119 68.7119 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (black dots)
-(black dots) 16 0.6885 88 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6.6885 m
-6 0.6885 L
-F
-0 0.6885 m
-6 6.6885 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-28.9365 3.1885 m
-28.9365 3.1885 l
-S
-17.125 3.375 m
-17.125 3.375 l
-S
-26.5 4.6885 m
-26.5 4.6885 l
-S
-35.6865 5.8135 m
-35.6865 5.8135 l
-S
-19.75 0.9385 m
-19.75 0.9385 l
-S
-23.125 7.3135 m
-23.125 7.3135 l
-S
-40.5615 2.4385 m
-40.5615 2.4385 l
-S
-43 1.125 m
-43 1.125 l
-S
-45.0615 5.4385 m
-45.0615 5.4385 l
-S
-56.875 6.375 m
-56.875 6.375 l
-S
-65.3115 5.0635 m
-65.3115 5.0635 l
-S
-51.0615 6.9385 m
-51.0615 6.9385 l
-S
-40.5615 6.9385 m
-40.5615 6.9385 l
-S
-31.1865 6.9385 m
-31.1865 6.9385 l
-S
-59.875 9.5635 m
-59.875 9.5635 l
-S
-62.6865 1.3135 m
-62.6865 1.3135 l
-S
-34.5615 0.9385 m
-34.5615 0.9385 l
-S
-48.4365 2.25 m
-48.4365 2.25 l
-S
-56.3115 0.75 m
-56.3115 0.75 l
-S
-66.625 24.5635 m
-66.625 24.5635 l
-S
-74.3115 24.9385 m
-74.3115 24.9385 l
-S
-78.8115 24.375 m
-78.8115 24.375 l
-S
-82.9365 2.0635 m
-82.9365 2.0635 l
-S
-68.3115 11.8135 m
-68.3115 11.8135 l
-S
-86.5 17.8135 m
-86.5 17.8135 l
-S
-87.0615 4.6885 m
-87.0615 4.6885 l
-S
-79.9365 19.875 m
-79.9365 19.875 l
-S
-77.875 1.125 m
-77.875 1.125 l
-S
-69.625 20.25 m
-69.625 20.25 l
-S
-67.75 6 m
-67.75 6 l
-S
-73.375 17.625 m
-73.375 17.625 l
-S
-76.9365 16.875 m
-76.9365 16.875 l
-S
-72.4365 3.375 m
-72.4365 3.375 l
-S
-77.3115 9.5635 m
-77.3115 9.5635 l
-S
-73.9365 11.25 m
-73.9365 11.25 l
-S
-83.125 7.875 m
-83.125 7.875 l
-S
-85.1865 12.75 m
-85.1865 12.75 l
-S
-81.0615 13.875 m
-81.0615 13.875 l
-S
-17.6865 16.125 m
-17.6865 16.125 l
-S
-45.25 10.3135 m
-45.25 10.3135 l
-S
-31.5615 21.375 m
-31.5615 21.375 l
-S
-20.875 11.8135 m
-20.875 11.8135 l
-S
-34.75 18.5635 m
-34.75 18.5635 l
-S
-25.75 21.9385 m
-25.75 21.9385 l
-S
-34.5615 24.5635 m
-34.5615 24.5635 l
-S
-37.375 16.3135 m
-37.375 16.3135 l
-S
-36.625 12.75 m
-36.625 12.75 l
-S
-23.125 17.25 m
-23.125 17.25 l
-S
-29.3115 12.375 m
-29.3115 12.375 l
-S
-31 15.75 m
-31 15.75 l
-S
-46.1865 22.875 m
-46.1865 22.875 l
-S
-52 15.375 m
-52 15.375 l
-S
-58.375 13.3135 m
-58.375 13.3135 l
-S
-62.6865 20.0635 m
-62.6865 20.0635 l
-S
-62.875 14.0635 m
-62.875 14.0635 l
-S
-44.6865 20.4385 m
-44.6865 20.4385 l
-S
-46.75 15.1885 m
-46.75 15.1885 l
-S
-42.0615 17.0635 m
-42.0615 17.0635 l
-S
-55.1865 17.4385 m
-55.1865 17.4385 l
-S
-58.9365 23.25 m
-58.9365 23.25 l
-S
-60.0615 17.4385 m
-60.0615 17.4385 l
-S
-42.4365 25.125 m
-42.4365 25.125 l
-S
-65.3115 20.625 m
-65.3115 20.625 l
-S
-51.625 24.5635 m
-51.625 24.5635 l
-S
-52 20.625 m
-52 20.625 l
-S
-18.8115 24 m
-18.8115 24 l
-S
-21.25 24.9385 m
-21.25 24.9385 l
-S
-19.375 70.875 m
-19.375 70.875 l
-S
-26.125 66.5635 m
-26.125 66.5635 l
-S
-20.125 66.375 m
-20.125 66.375 l
-S
-38.5 69 m
-38.5 69 l
-S
-47.125 71.625 m
-47.125 71.625 l
-S
-62.875 68.0635 m
-62.875 68.0635 l
-S
-49.75 67.5 m
-49.75 67.5 l
-S
-38.875 65.625 m
-38.875 65.625 l
-S
-29.3115 70.3135 m
-29.3115 70.3135 l
-S
-31.9365 67.5 m
-31.9365 67.5 l
-S
-57.25 65.4385 m
-57.25 65.4385 l
-S
-23.5 69.1885 m
-23.5 69.1885 l
-S
-45.625 65.25 m
-45.625 65.25 l
-S
-26.6865 63.9385 m
-26.6865 63.9385 l
-S
-50.5 63.75 m
-50.5 63.75 l
-S
-32.6865 72 m
-32.6865 72 l
-S
-52.9365 71.4385 m
-52.9365 71.4385 l
-S
-57.8115 69.375 m
-57.8115 69.375 l
-S
-61 64.3135 m
-61 64.3135 l
-S
-28.9365 48.1885 m
-28.9365 48.1885 l
-S
-17.125 48.375 m
-17.125 48.375 l
-S
-21.4365 42.375 m
-21.4365 42.375 l
-S
-19.375 36 m
-19.375 36 l
-S
-26.125 31.6885 m
-26.125 31.6885 l
-S
-20.125 31.5 m
-20.125 31.5 l
-S
-26.5 49.6885 m
-26.5 49.6885 l
-S
-35.6865 50.8135 m
-35.6865 50.8135 l
-S
-19.75 45.9385 m
-19.75 45.9385 l
-S
-23.125 52.3135 m
-23.125 52.3135 l
-S
-40.5615 47.4385 m
-40.5615 47.4385 l
-S
-43 46.125 m
-43 46.125 l
-S
-23.5 39.1885 m
-23.5 39.1885 l
-S
-38.5 34.125 m
-38.5 34.125 l
-S
-47.125 36.75 m
-47.125 36.75 l
-S
-45.0615 50.4385 m
-45.0615 50.4385 l
-S
-56.875 51.375 m
-56.875 51.375 l
-S
-42.8115 39.375 m
-42.8115 39.375 l
-S
-62.875 33.1885 m
-62.875 33.1885 l
-S
-49.75 32.625 m
-49.75 32.625 l
-S
-38.875 30.75 m
-38.875 30.75 l
-S
-29.3115 35.4385 m
-29.3115 35.4385 l
-S
-31.9365 32.625 m
-31.9365 32.625 l
-S
-54.75 30.1885 m
-54.75 30.1885 l
-S
-64.9365 39.75 m
-64.9365 39.75 l
-S
-46.1865 41.8135 m
-46.1865 41.8135 l
-S
-65.3115 50.0635 m
-65.3115 50.0635 l
-S
-51.0615 51.9385 m
-51.0615 51.9385 l
-S
-23.5 34.3135 m
-23.5 34.3135 l
-S
-40.5615 51.9385 m
-40.5615 51.9385 l
-S
-31.1865 51.9385 m
-31.1865 51.9385 l
-S
-45.625 30.375 m
-45.625 30.375 l
-S
-26.6865 29.0635 m
-26.6865 29.0635 l
-S
-59.875 54.5635 m
-59.875 54.5635 l
-S
-50.5 28.875 m
-50.5 28.875 l
-S
-60.75 47.6885 m
-60.75 47.6885 l
-S
-30.625 42.75 m
-30.625 42.75 l
-S
-26.6865 42.375 m
-26.6865 42.375 l
-S
-36.8115 40.125 m
-36.8115 40.125 l
-S
-37.75 43.5 m
-37.75 43.5 l
-S
-34.5615 45.9385 m
-34.5615 45.9385 l
-S
-32.6865 37.125 m
-32.6865 37.125 l
-S
-61.9365 42.75 m
-61.9365 42.75 l
-S
-48.4365 47.25 m
-48.4365 47.25 l
-S
-54.625 42.375 m
-54.625 42.375 l
-S
-56.3115 45.75 m
-56.3115 45.75 l
-S
-52.9365 36.5635 m
-52.9365 36.5635 l
-S
-57.8115 34.5 m
-57.8115 34.5 l
-S
-58.9365 38.625 m
-58.9365 38.625 l
-S
-61 29.4385 m
-61 29.4385 l
-S
-65.875 29.625 m
-65.875 29.625 l
-S
-70.5615 27.75 m
-70.5615 27.75 l
-S
-71.5 52.875 m
-71.5 52.875 l
-S
-69.8115 34.3135 m
-69.8115 34.3135 l
-S
-76.375 27.375 m
-76.375 27.375 l
-S
-71.3115 41.0635 m
-71.3115 41.0635 l
-S
-77.3115 45.375 m
-77.3115 45.375 l
-S
-82 28.6885 m
-82 28.6885 l
-S
-88.1865 27.5635 m
-88.1865 27.5635 l
-S
-83.6865 43.3135 m
-83.6865 43.3135 l
-S
-88 50.0635 m
-88 50.0635 l
-S
-88.1865 44.0635 m
-88.1865 44.0635 l
-S
-88.1865 33.1885 m
-88.1865 33.1885 l
-S
-70 50.4385 m
-70 50.4385 l
-S
-68.875 59.625 m
-68.875 59.625 l
-S
-66.8115 38.25 m
-66.8115 38.25 l
-S
-74.75 42.1885 m
-74.75 42.1885 l
-S
-67.375 47.0635 m
-67.375 47.0635 l
-S
-72.25 64.5 m
-72.25 64.5 l
-S
-73.5615 66.9385 m
-73.5615 66.9385 l
-S
-80.5 47.4385 m
-80.5 47.4385 l
-S
-85.5615 62.4385 m
-85.5615 62.4385 l
-S
-82.9365 71.0635 m
-82.9365 71.0635 l
-S
-69.25 69 m
-69.25 69 l
-S
-80.3115 66.75 m
-80.3115 66.75 l
-S
-84.25 53.25 m
-84.25 53.25 l
-S
-87.0615 55.875 m
-87.0615 55.875 l
-S
-77.875 70.125 m
-77.875 70.125 l
-S
-85.375 47.4385 m
-85.375 47.4385 l
-S
-67.75 64.5 m
-67.75 64.5 l
-S
-67.75 55.125 m
-67.75 55.125 l
-S
-81.625 31.125 m
-81.625 31.125 l
-S
-79.375 39 m
-79.375 39 l
-S
-75.8115 33 m
-75.8115 33 l
-S
-84.4365 37.3135 m
-84.4365 37.3135 l
-S
-76.9365 54.5635 m
-76.9365 54.5635 l
-S
-77.3115 50.625 m
-77.3115 50.625 l
-S
-79.5615 60.75 m
-79.5615 60.75 l
-S
-76.1865 61.6885 m
-76.1865 61.6885 l
-S
-73.75 58.5 m
-73.75 58.5 l
-S
-82.5615 56.625 m
-82.5615 56.625 l
-S
-72.4365 72.375 m
-72.4365 72.375 l
-S
-61.75 25.875 m
-61.75 25.875 l
-S
-57.25 26.625 m
-57.25 26.625 l
-S
-25.75 60.75 m
-25.75 60.75 l
-S
-34.1865 59.4385 m
-34.1865 59.4385 l
-S
-19.9365 61.3135 m
-19.9365 61.3135 l
-S
-31.5615 55.6885 m
-31.5615 55.6885 l
-S
-17.3115 56.625 m
-17.3115 56.625 l
-S
-25.1865 55.125 m
-25.1865 55.125 l
-S
-40.375 62.25 m
-40.375 62.25 l
-S
-46.1865 54.75 m
-46.1865 54.75 l
-S
-56.875 59.4385 m
-56.875 59.4385 l
-S
-40.25 58.1885 m
-40.25 58.1885 l
-S
-36.25 56.4385 m
-36.25 56.4385 l
-S
-49.375 56.8135 m
-49.375 56.8135 l
-S
-53.125 62.625 m
-53.125 62.625 l
-S
-54.25 56.8135 m
-54.25 56.8135 l
-S
-59.5 60 m
-59.5 60 l
-S
-46.1865 60 m
-46.1865 60 l
-S
-30.8115 28.5 m
-30.8115 28.5 l
-S
-19.75 72.9385 m
-19.75 72.9385 l
-S
-43 73.125 m
-43 73.125 l
-S
-34.5615 72.9385 m
-34.5615 72.9385 l
-S
-56.3115 72.75 m
-56.3115 72.75 l
-S
-77.875 73.125 m
-77.875 73.125 l
-S
-72.4365 0.375 m
-72.4365 0.375 l
-S
-16.1865 27.5635 m
-16.1865 27.5635 l
-S
-16 50.0635 m
-16 50.0635 l
-S
-16.1865 44.0635 m
-16.1865 44.0635 l
-S
-16.1865 33.1885 m
-16.1865 33.1885 l
-S
-6 62.3135 m
-6.208 62.3135 6.375 62.4805 6.375 62.6885 c
-6.375 62.8945 6.208 63.0635 6 63.0635 c
-5.793 63.0635 5.625 62.8945 5.625 62.6885 c
-5.625 62.4805 5.793 62.3135 6 62.3135 c
-s
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (horizontal rules)
-(horizontal rules) 16 0 88 73.9463 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6 m
-6 0 L
-F
-0 0 m
-6 6 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-88 72.9727 m
-16 72.9727 l
-S
-88 71.0273 m
-16 71.0273 L
-S
-88 67.1357 m
-16 67.1357 L
-S
-88 65.1904 m
-16 65.1904 L
-S
-88 63.2441 m
-16 63.2441 L
-S
-88 61.2979 m
-16 61.2979 L
-S
-88 57.4072 m
-16 57.4072 L
-S
-88 55.4609 m
-16 55.4609 L
-S
-88 53.5156 m
-16 53.5156 L
-S
-88 51.5703 m
-16 51.5703 L
-S
-88 49.624 m
-16 49.624 L
-S
-88 47.6787 m
-16 47.6787 L
-S
-88 45.7334 m
-16 45.7334 L
-S
-88 43.7871 m
-16 43.7871 L
-S
-88 39.8965 m
-16 39.8965 L
-S
-88 37.9502 m
-16 37.9502 L
-S
-88 36.0049 m
-16 36.0049 L
-S
-88 34.0586 m
-16 34.0586 L
-S
-88 32.1133 m
-16 32.1133 L
-S
-88 30.168 m
-16 30.168 L
-S
-88 26.2764 m
-16 26.2764 L
-S
-88 22.3848 m
-16 22.3848 L
-S
-88 20.4395 m
-16 20.4395 L
-S
-88 18.4941 m
-16 18.4941 L
-S
-88 16.5479 m
-16 16.5479 L
-S
-88 14.6016 m
-16 14.6016 L
-S
-88 12.6572 m
-16 12.6572 L
-S
-88 8.7646 m
-16 8.7646 L
-S
-88 6.8193 m
-16 6.8193 L
-S
-88 4.874 m
-16 4.874 L
-S
-88 0.9727 m
-16 0.9727 l
-S
-88 2.9277 m
-16 2.9277 L
-S
-88 69.0811 m
-16 69.0811 L
-S
-88 59.3525 m
-16 59.3525 L
-S
-88 41.8418 m
-16 41.8418 L
-S
-88 28.2217 m
-16 28.2217 L
-S
-88 24.3311 m
-16 24.3311 L
-S
-88 10.7109 m
-16 10.7109 L
-S
-6 69.0811 m
-2 69.0811 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (one direction diagonals)
-(one direction diagonals) 28.856 4.6211 100.855 76.6211 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-5.106 10.6211 m
-11.106 4.6211 L
-F
-5.106 4.6211 m
-11.106 10.6211 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 1 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-21.3716 66.1055 m
-39.3706 84.1055 l
-S
-21.3716 60.1055 m
-45.3706 84.1055 l
-S
-21.3716 54.1055 m
-51.3706 84.1055 l
-S
-21.3716 48.1055 m
-57.3706 84.1055 l
-S
-21.3716 42.1055 m
-63.3706 84.1055 l
-S
-21.3716 36.1055 m
-69.3706 84.1055 l
-S
-21.3716 30.1055 m
-75.3706 84.1055 l
-S
-21.3716 24.1055 m
-81.3706 84.1055 l
-S
-21.3716 18.1055 m
-87.3706 84.1055 l
-S
-21.3716 12.1055 m
-93.3706 84.1055 l
-S
-21.3716 6.1055 m
-99.3706 84.1055 l
-S
-21.3716 0.1064 m
-105.3706 84.1055 l
-S
-27.3716 0.1064 m
-105.3706 78.1055 l
-S
-33.3706 0.1064 m
-105.3706 72.1055 l
-S
-39.3706 0.1064 m
-105.3706 66.1055 l
-S
-45.3706 0.1064 m
-105.3706 60.1055 l
-S
-51.3706 0.1064 m
-105.3706 54.1055 l
-S
-57.3706 0.1064 m
-105.3706 48.1055 l
-S
-63.3706 0.1064 m
-105.3706 42.1055 l
-S
-69.3706 0.1064 m
-105.3706 36.1055 l
-S
-75.3706 0.1064 m
-105.3706 30.1055 l
-S
-81.3706 0.1064 m
-105.3706 24.1055 l
-S
-87.3706 0.1064 m
-105.3706 18.1055 l
-S
-93.3706 0.1064 m
-105.3706 12.1055 l
-S
-2 j
-0.106 63.1211 m
-10.106 73.1211 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (white dots)
-(white dots) 0.375 0.6885 72.375 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-13.3115 3.1885 m
-13.3115 3.1885 l
-S
-1.5 3.375 m
-1.5 3.375 l
-S
-10.875 4.6885 m
-10.875 4.6885 l
-S
-20.0615 5.8135 m
-20.0615 5.8135 l
-S
-4.125 0.9385 m
-4.125 0.9385 l
-S
-7.5 7.3135 m
-7.5 7.3135 l
-S
-24.9365 2.4385 m
-24.9365 2.4385 l
-S
-27.375 1.125 m
-27.375 1.125 l
-S
-29.4365 5.4385 m
-29.4365 5.4385 l
-S
-41.25 6.375 m
-41.25 6.375 l
-S
-49.6865 5.0635 m
-49.6865 5.0635 l
-S
-35.4365 6.9385 m
-35.4365 6.9385 l
-S
-24.9365 6.9385 m
-24.9365 6.9385 l
-S
-15.5615 6.9385 m
-15.5615 6.9385 l
-S
-44.25 9.5635 m
-44.25 9.5635 l
-S
-47.0615 1.3135 m
-47.0615 1.3135 l
-S
-18.9365 0.9385 m
-18.9365 0.9385 l
-S
-32.8115 2.25 m
-32.8115 2.25 l
-S
-40.6865 0.75 m
-40.6865 0.75 l
-S
-51 24.5635 m
-51 24.5635 l
-S
-58.6865 24.9385 m
-58.6865 24.9385 l
-S
-63.1865 24.375 m
-63.1865 24.375 l
-S
-67.3115 2.0635 m
-67.3115 2.0635 l
-S
-52.6865 11.8135 m
-52.6865 11.8135 l
-S
-70.875 17.8135 m
-70.875 17.8135 l
-S
-71.4365 4.6885 m
-71.4365 4.6885 l
-S
-64.3115 19.875 m
-64.3115 19.875 l
-S
-62.25 1.125 m
-62.25 1.125 l
-S
-54 20.25 m
-54 20.25 l
-S
-52.125 6 m
-52.125 6 l
-S
-57.75 17.625 m
-57.75 17.625 l
-S
-61.3115 16.875 m
-61.3115 16.875 l
-S
-56.8115 3.375 m
-56.8115 3.375 l
-S
-61.6865 9.5635 m
-61.6865 9.5635 l
-S
-58.3115 11.25 m
-58.3115 11.25 l
-S
-67.5 7.875 m
-67.5 7.875 l
-S
-69.5615 12.75 m
-69.5615 12.75 l
-S
-65.4365 13.875 m
-65.4365 13.875 l
-S
-2.0615 16.125 m
-2.0615 16.125 l
-S
-29.625 10.3135 m
-29.625 10.3135 l
-S
-15.9365 21.375 m
-15.9365 21.375 l
-S
-5.25 11.8135 m
-5.25 11.8135 l
-S
-19.125 18.5635 m
-19.125 18.5635 l
-S
-10.125 21.9385 m
-10.125 21.9385 l
-S
-18.9365 24.5635 m
-18.9365 24.5635 l
-S
-21.75 16.3135 m
-21.75 16.3135 l
-S
-21 12.75 m
-21 12.75 l
-S
-7.5 17.25 m
-7.5 17.25 l
-S
-13.6865 12.375 m
-13.6865 12.375 l
-S
-15.375 15.75 m
-15.375 15.75 l
-S
-30.5615 22.875 m
-30.5615 22.875 l
-S
-36.375 15.375 m
-36.375 15.375 l
-S
-42.75 13.3135 m
-42.75 13.3135 l
-S
-47.0615 20.0635 m
-47.0615 20.0635 l
-S
-47.25 14.0635 m
-47.25 14.0635 l
-S
-29.0615 20.4385 m
-29.0615 20.4385 l
-S
-31.125 15.1885 m
-31.125 15.1885 l
-S
-26.4365 17.0635 m
-26.4365 17.0635 l
-S
-39.5615 17.4385 m
-39.5615 17.4385 l
-S
-43.3115 23.25 m
-43.3115 23.25 l
-S
-44.4365 17.4385 m
-44.4365 17.4385 l
-S
-26.8115 25.125 m
-26.8115 25.125 l
-S
-49.6865 20.625 m
-49.6865 20.625 l
-S
-36 24.5635 m
-36 24.5635 l
-S
-36.375 20.625 m
-36.375 20.625 l
-S
-3.1865 24 m
-3.1865 24 l
-S
-5.625 24.9385 m
-5.625 24.9385 l
-S
-3.75 70.875 m
-3.75 70.875 l
-S
-10.5 66.5635 m
-10.5 66.5635 l
-S
-4.5 66.375 m
-4.5 66.375 l
-S
-22.875 69 m
-22.875 69 l
-S
-31.5 71.625 m
-31.5 71.625 l
-S
-47.25 68.0635 m
-47.25 68.0635 l
-S
-34.125 67.5 m
-34.125 67.5 l
-S
-23.25 65.625 m
-23.25 65.625 l
-S
-13.6865 70.3135 m
-13.6865 70.3135 l
-S
-16.3115 67.5 m
-16.3115 67.5 l
-S
-41.625 65.4385 m
-41.625 65.4385 l
-S
-7.875 69.1885 m
-7.875 69.1885 l
-S
-30 65.25 m
-30 65.25 l
-S
-11.0615 63.9385 m
-11.0615 63.9385 l
-S
-34.875 63.75 m
-34.875 63.75 l
-S
-17.0615 72 m
-17.0615 72 l
-S
-37.3115 71.4385 m
-37.3115 71.4385 l
-S
-42.1865 69.375 m
-42.1865 69.375 l
-S
-45.375 64.3135 m
-45.375 64.3135 l
-S
-13.3115 48.1885 m
-13.3115 48.1885 l
-S
-1.5 48.375 m
-1.5 48.375 l
-S
-5.8115 42.375 m
-5.8115 42.375 l
-S
-3.75 36 m
-3.75 36 l
-S
-10.5 31.6885 m
-10.5 31.6885 l
-S
-4.5 31.5 m
-4.5 31.5 l
-S
-10.875 49.6885 m
-10.875 49.6885 l
-S
-20.0615 50.8135 m
-20.0615 50.8135 l
-S
-4.125 45.9385 m
-4.125 45.9385 l
-S
-7.5 52.3135 m
-7.5 52.3135 l
-S
-24.9365 47.4385 m
-24.9365 47.4385 l
-S
-27.375 46.125 m
-27.375 46.125 l
-S
-7.875 39.1885 m
-7.875 39.1885 l
-S
-22.875 34.125 m
-22.875 34.125 l
-S
-31.5 36.75 m
-31.5 36.75 l
-S
-29.4365 50.4385 m
-29.4365 50.4385 l
-S
-41.25 51.375 m
-41.25 51.375 l
-S
-27.1865 39.375 m
-27.1865 39.375 l
-S
-47.25 33.1885 m
-47.25 33.1885 l
-S
-34.125 32.625 m
-34.125 32.625 l
-S
-23.25 30.75 m
-23.25 30.75 l
-S
-13.6865 35.4385 m
-13.6865 35.4385 l
-S
-16.3115 32.625 m
-16.3115 32.625 l
-S
-39.125 30.1885 m
-39.125 30.1885 l
-S
-49.3115 39.75 m
-49.3115 39.75 l
-S
-30.5615 41.8135 m
-30.5615 41.8135 l
-S
-49.6865 50.0635 m
-49.6865 50.0635 l
-S
-35.4365 51.9385 m
-35.4365 51.9385 l
-S
-7.875 34.3135 m
-7.875 34.3135 l
-S
-24.9365 51.9385 m
-24.9365 51.9385 l
-S
-15.5615 51.9385 m
-15.5615 51.9385 l
-S
-30 30.375 m
-30 30.375 l
-S
-11.0615 29.0635 m
-11.0615 29.0635 l
-S
-44.25 54.5635 m
-44.25 54.5635 l
-S
-34.875 28.875 m
-34.875 28.875 l
-S
-45.125 47.6885 m
-45.125 47.6885 l
-S
-15 42.75 m
-15 42.75 l
-S
-11.0615 42.375 m
-11.0615 42.375 l
-S
-21.1865 40.125 m
-21.1865 40.125 l
-S
-22.125 43.5 m
-22.125 43.5 l
-S
-18.9365 45.9385 m
-18.9365 45.9385 l
-S
-17.0615 37.125 m
-17.0615 37.125 l
-S
-46.3115 42.75 m
-46.3115 42.75 l
-S
-32.8115 47.25 m
-32.8115 47.25 l
-S
-39 42.375 m
-39 42.375 l
-S
-40.6865 45.75 m
-40.6865 45.75 l
-S
-37.3115 36.5635 m
-37.3115 36.5635 l
-S
-42.1865 34.5 m
-42.1865 34.5 l
-S
-43.3115 38.625 m
-43.3115 38.625 l
-S
-45.375 29.4385 m
-45.375 29.4385 l
-S
-50.25 29.625 m
-50.25 29.625 l
-S
-54.9365 27.75 m
-54.9365 27.75 l
-S
-55.875 52.875 m
-55.875 52.875 l
-S
-54.1865 34.3135 m
-54.1865 34.3135 l
-S
-60.75 27.375 m
-60.75 27.375 l
-S
-55.6865 41.0635 m
-55.6865 41.0635 l
-S
-61.6865 45.375 m
-61.6865 45.375 l
-S
-66.375 28.6885 m
-66.375 28.6885 l
-S
-72.5615 27.5635 m
-72.5615 27.5635 l
-S
-68.0615 43.3135 m
-68.0615 43.3135 l
-S
-72.375 50.0635 m
-72.375 50.0635 l
-S
-72.5615 44.0635 m
-72.5615 44.0635 l
-S
-72.5615 33.1885 m
-72.5615 33.1885 l
-S
-54.375 50.4385 m
-54.375 50.4385 l
-S
-53.25 59.625 m
-53.25 59.625 l
-S
-51.1865 38.25 m
-51.1865 38.25 l
-S
-59.125 42.1885 m
-59.125 42.1885 l
-S
-51.75 47.0635 m
-51.75 47.0635 l
-S
-56.625 64.5 m
-56.625 64.5 l
-S
-57.9365 66.9385 m
-57.9365 66.9385 l
-S
-64.875 47.4385 m
-64.875 47.4385 l
-S
-69.9365 62.4385 m
-69.9365 62.4385 l
-S
-67.3115 71.0635 m
-67.3115 71.0635 l
-S
-53.625 69 m
-53.625 69 l
-S
-64.6865 66.75 m
-64.6865 66.75 l
-S
-68.625 53.25 m
-68.625 53.25 l
-S
-71.4365 55.875 m
-71.4365 55.875 l
-S
-62.25 70.125 m
-62.25 70.125 l
-S
-69.75 47.4385 m
-69.75 47.4385 l
-S
-52.125 64.5 m
-52.125 64.5 l
-S
-52.125 55.125 m
-52.125 55.125 l
-S
-66 31.125 m
-66 31.125 l
-S
-63.75 39 m
-63.75 39 l
-S
-60.1865 33 m
-60.1865 33 l
-S
-68.8115 37.3135 m
-68.8115 37.3135 l
-S
-61.3115 54.5635 m
-61.3115 54.5635 l
-S
-61.6865 50.625 m
-61.6865 50.625 l
-S
-63.9365 60.75 m
-63.9365 60.75 l
-S
-60.5615 61.6885 m
-60.5615 61.6885 l
-S
-58.125 58.5 m
-58.125 58.5 l
-S
-66.9365 56.625 m
-66.9365 56.625 l
-S
-56.8115 72.375 m
-56.8115 72.375 l
-S
-46.125 25.875 m
-46.125 25.875 l
-S
-41.625 26.625 m
-41.625 26.625 l
-S
-10.125 60.75 m
-10.125 60.75 l
-S
-18.5615 59.4385 m
-18.5615 59.4385 l
-S
-4.3115 61.3135 m
-4.3115 61.3135 l
-S
-15.9365 55.6885 m
-15.9365 55.6885 l
-S
-1.6865 56.625 m
-1.6865 56.625 l
-S
-9.5615 55.125 m
-9.5615 55.125 l
-S
-24.75 62.25 m
-24.75 62.25 l
-S
-30.5615 54.75 m
-30.5615 54.75 l
-S
-41.25 59.4385 m
-41.25 59.4385 l
-S
-24.625 58.1885 m
-24.625 58.1885 l
-S
-20.625 56.4385 m
-20.625 56.4385 l
-S
-33.75 56.8135 m
-33.75 56.8135 l
-S
-37.5 62.625 m
-37.5 62.625 l
-S
-38.625 56.8135 m
-38.625 56.8135 l
-S
-43.875 60 m
-43.875 60 l
-S
-30.5615 60 m
-30.5615 60 l
-S
-15.1865 28.5 m
-15.1865 28.5 l
-S
-4.125 72.9385 m
-4.125 72.9385 l
-S
-27.375 73.125 m
-27.375 73.125 l
-S
-18.9365 72.9385 m
-18.9365 72.9385 l
-S
-40.6865 72.75 m
-40.6865 72.75 l
-S
-62.25 73.125 m
-62.25 73.125 l
-S
-56.8115 0.375 m
-56.8115 0.375 l
-S
-0.5615 27.5635 m
-0.5615 27.5635 l
-S
-0.375 50.0635 m
-0.375 50.0635 l
-S
-0.5615 44.0635 m
-0.5615 44.0635 l
-S
-0.5615 33.1885 m
-0.5615 33.1885 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginBrushPattern
-(New Pattern 2)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7838.1201 8586 L
--7838.1201 8500.6914 L
--7884 8500.6914 L
--7884 8586 L
-n
-u
--7850.4111 8533.3125 m
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
-n
--7843.6582 8532.1602 m
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
-n
--7870.0361 8579.5879 m
--7870.0688 8579.5859 -7870.1006 8579.584 -7870.1318 8579.5801 c
--7870.1162 8579.582 -7870.1016 8579.584 -7870.0854 8579.585 c
--7870.0703 8579.5859 -7870.0527 8579.5879 -7870.0361 8579.5879 c
-n
--7854.5366 8533.6719 m
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
-n
--7839.1553 8576.4043 m
--7839.0625 8576.3281 -7838.9775 8576.252 -7838.9009 8576.1758 c
--7838.5967 8575.8672 -7838.4385 8575.5469 -7838.4385 8575.2207 c
--7838.4385 8575.6289 -7838.689 8576.0254 -7839.1553 8576.4043 c
-n
--7877.3232 8578.5703 m
--7877.3247 8578.5703 -7877.3281 8578.5693 -7877.3311 8578.5684 c
--7877.3306 8578.5693 -7877.3281 8578.5693 -7877.3271 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3232 8578.5703 c
-n
--7882.21 8577.0645 m
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.21 8577.0645 L
-n
--7858.9209 8533.8545 m
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
-n
--7863.582 8533.8535 m
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
-n
--7865.667 8533.7881 m
--7865.7642 8533.7842 -7865.8594 8533.7793 -7865.9561 8533.7754 c
--7865.9058 8533.7773 -7865.8608 8533.7813 -7865.8096 8533.7832 c
--7865.7642 8533.7852 -7865.7134 8533.7861 -7865.667 8533.7881 c
-n
--7884 8529.1426 m
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 c
-n
--7868.0718 8533.6602 m
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
-n
--7878.811 8532.1523 m
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
-n
--7872.1201 8533.3027 m
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
-n
--7838.4385 8529.1426 m
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
-n
--7839.0342 8530.2168 m
--7839.332 8530.4844 -7839.731 8530.7432 -7840.2358 8530.9902 c
--7840.2334 8530.9893 -7840.231 8530.9883 -7840.229 8530.9863 c
--7839.7271 8530.7402 -7839.3311 8530.4834 -7839.0342 8530.2168 c
-n
--7841.187 8531.4004 m
--7841.187 8531.4004 L
--7841.187 8531.4004 L
-n
--7884 8575.2207 m
--7884 8575.5 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.501 -7884 8575.2207 c
-n
--7856.4824 8533.7754 m
--7856.5791 8533.7793 -7856.6758 8533.7842 -7856.7729 8533.7881 c
--7856.7246 8533.7861 -7856.6758 8533.7852 -7856.6279 8533.7832 c
--7856.5791 8533.7813 -7856.5313 8533.7773 -7856.4824 8533.7754 c
-n
--7872.0942 8579.3828 m
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
-n
--7882.2026 8530.9902 m
--7882.46 8530.8633 -7882.687 8530.7344 -7882.8936 8530.6016 c
--7882.6904 8530.7324 -7882.4639 8530.8613 -7882.21 8530.9863 c
--7882.208 8530.9883 -7882.2041 8530.9893 -7882.2026 8530.9902 c
-n
--7854.4766 8579.7461 m
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
-n
--7840.229 8577.0645 m
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7840.229 8577.0645 L
-n
--7852.2998 8579.5801 m
--7852.335 8579.583 -7852.3706 8579.5859 -7852.4072 8579.5898 c
--7852.3882 8579.5879 -7852.3706 8579.5869 -7852.3521 8579.585 c
--7852.334 8579.584 -7852.3174 8579.582 -7852.2998 8579.5801 c
-n
--7856.5601 8579.8574 m
--7856.6055 8579.8594 -7856.6514 8579.8613 -7856.6958 8579.8633 c
--7856.6738 8579.8623 -7856.6494 8579.8613 -7856.6279 8579.8613 c
--7856.6055 8579.8604 -7856.583 8579.8584 -7856.5601 8579.8574 c
-n
--7868.0186 8579.7422 m
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
-n
--7850.3882 8579.3887 m
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
-n
--7865.7422 8579.8633 m
--7865.7881 8579.8613 -7865.833 8579.8594 -7865.8774 8579.8574 c
--7865.8545 8579.8584 -7865.833 8579.8604 -7865.8096 8579.8613 c
--7865.7881 8579.8613 -7865.7646 8579.8623 -7865.7422 8579.8633 c
-n
-0 O
-0.8 g
--7839.1553 8576.4043 m
--7839.437 8576.6309 -7839.7959 8576.8516 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7842.2422 8578.0547 -7845.8286 8578.8721 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
--7851.0088 8579.458 -7851.6465 8579.5215 -7852.2998 8579.5801 c
--7852.3174 8579.582 -7852.334 8579.584 -7852.3521 8579.585 c
--7852.3706 8579.5869 -7852.3882 8579.5879 -7852.4072 8579.5898 c
--7853.0615 8579.6465 -7853.7305 8579.6973 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
--7855.1567 8579.79 -7855.853 8579.8262 -7856.5601 8579.8574 c
--7856.583 8579.8584 -7856.6055 8579.8604 -7856.6279 8579.8613 c
--7856.6494 8579.8613 -7856.6738 8579.8623 -7856.6958 8579.8633 c
--7858.1567 8579.9238 -7859.6694 8579.957 -7861.2202 8579.957 c
--7862.769 8579.957 -7864.2798 8579.9238 -7865.7422 8579.8633 c
--7865.7646 8579.8623 -7865.7881 8579.8613 -7865.8096 8579.8613 c
--7865.833 8579.8604 -7865.8545 8579.8584 -7865.8774 8579.8574 c
--7866.5854 8579.8262 -7867.2832 8579.7891 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
--7868.7065 8579.6973 -7869.3799 8579.6465 -7870.0361 8579.5879 c
--7870.0527 8579.5879 -7870.0703 8579.5859 -7870.0854 8579.585 c
--7870.1016 8579.584 -7870.1162 8579.582 -7870.1318 8579.5801 c
--7870.7886 8579.5225 -7871.4321 8579.458 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
--7874.0234 8579.165 -7875.7832 8578.8906 -7877.3232 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3271 8578.5703 c
--7877.3281 8578.5693 -7877.3306 8578.5693 -7877.3311 8578.5684 c
--7879.3896 8578.1406 -7881.0576 8577.6309 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.8682 8576.7402 -7883.353 8576.3984 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.5 -7884 8575.2207 C
--7884 8581.2637 L
--7884 8581.5908 -7883.8408 8581.9102 -7883.5361 8582.2188 c
--7883.2334 8582.5273 -7882.7866 8582.8242 -7882.21 8583.1074 c
--7881.6328 8583.3906 -7880.9287 8583.6602 -7880.1089 8583.9121 c
--7879.29 8584.1641 -7878.3584 8584.3984 -7877.3271 8584.6133 c
--7876.2959 8584.8281 -7875.168 8585.0215 -7873.9561 8585.1914 c
--7872.7432 8585.3623 -7871.4497 8585.5088 -7870.0854 8585.6279 c
--7868.7231 8585.749 -7867.293 8585.8418 -7865.8096 8585.9043 c
--7864.3271 8585.9668 -7862.792 8586 -7861.2202 8586 c
--7859.6465 8586 -7858.1104 8585.9668 -7856.6279 8585.9043 c
--7855.145 8585.8418 -7853.7134 8585.749 -7852.3521 8585.6279 c
--7850.9897 8585.5088 -7849.6934 8585.3623 -7848.4814 8585.1914 c
--7847.2695 8585.0215 -7846.1416 8584.8281 -7845.1104 8584.6133 c
--7844.0801 8584.3984 -7843.147 8584.1641 -7842.3286 8583.9121 c
--7841.5103 8583.6602 -7840.8042 8583.3906 -7840.229 8583.1074 c
--7839.6514 8582.8242 -7839.2041 8582.5273 -7838.9009 8582.2188 c
--7838.5967 8581.9102 -7838.4385 8581.5908 -7838.4385 8581.2637 C
--7838.4385 8575.2207 L
--7838.4385 8575.5469 -7838.5967 8575.8672 -7838.9009 8576.1758 c
--7838.9775 8576.252 -7839.0625 8576.3281 -7839.1553 8576.4043 c
-f
-0.5 g
--7848.209 8572.2383 m
--7847.9424 8572.2383 L
--7847.9424 8572.4561 -7848.041 8572.6621 -7848.209 8572.8555 C
--7848.209 8574.0039 L
--7848.209 8574.1914 -7848.2998 8574.373 -7848.4736 8574.5488 c
--7848.6455 8574.7256 -7848.9014 8574.8945 -7849.231 8575.0566 c
--7849.5615 8575.2197 -7849.9639 8575.373 -7850.4302 8575.5166 c
--7850.8984 8575.6602 -7851.4302 8575.7949 -7852.0186 8575.917 c
--7852.6079 8576.0391 -7853.2529 8576.1504 -7853.9438 8576.248 c
--7854.6377 8576.3447 -7855.376 8576.4277 -7856.1543 8576.4961 c
--7856.9326 8576.5645 -7857.749 8576.6191 -7858.5967 8576.6543 c
--7859.4438 8576.6895 -7860.3218 8576.709 -7861.2192 8576.709 c
--7862.1162 8576.709 -7862.9946 8576.6895 -7863.8408 8576.6543 c
--7864.687 8576.6191 -7865.5049 8576.5645 -7866.2822 8576.4961 c
--7867.061 8576.4277 -7867.8008 8576.3447 -7868.4927 8576.248 c
--7869.1846 8576.1504 -7869.8306 8576.0391 -7870.418 8575.917 c
--7871.0063 8575.7949 -7871.54 8575.6602 -7872.0063 8575.5166 c
--7872.4746 8575.373 -7872.8774 8575.2197 -7873.2065 8575.0566 c
--7873.5361 8574.8945 -7873.792 8574.7256 -7873.9658 8574.5488 c
--7874.1377 8574.373 -7874.2295 8574.1914 -7874.2295 8574.0039 C
--7874.2295 8572.8555 L
--7874.3975 8572.6621 -7874.4961 8572.4561 -7874.4961 8572.2383 C
--7874.2295 8572.2383 L
--7874.2295 8571.4912 L
--7874.2695 8571.4453 -7874.2974 8571.3965 -7874.3286 8571.3486 C
--7880.1768 8572.2051 -7884 8573.6191 -7884 8575.2207 c
--7884 8575.501 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.353 8576.3984 -7882.8682 8576.7402 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7881.0576 8577.6309 -7879.3896 8578.1406 -7877.3311 8578.5684 c
--7877.3281 8578.5693 -7877.3247 8578.5703 -7877.3232 8578.5703 c
--7875.7832 8578.8906 -7874.0234 8579.165 -7872.0942 8579.3828 c
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7871.4321 8579.458 -7870.7886 8579.5225 -7870.1318 8579.5801 c
--7870.1006 8579.584 -7870.0688 8579.5859 -7870.0361 8579.5879 c
--7869.3799 8579.6465 -7868.7065 8579.6973 -7868.0186 8579.7422 c
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.2832 8579.7891 -7866.5854 8579.8262 -7865.8774 8579.8574 c
--7865.833 8579.8594 -7865.7881 8579.8613 -7865.7422 8579.8633 c
--7864.2798 8579.9238 -7862.769 8579.957 -7861.2202 8579.957 c
--7859.6694 8579.957 -7858.1567 8579.9238 -7856.6958 8579.8633 c
--7856.6514 8579.8613 -7856.6055 8579.8594 -7856.5601 8579.8574 c
--7855.853 8579.8262 -7855.1567 8579.79 -7854.4766 8579.7461 c
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7853.7305 8579.6973 -7853.0615 8579.6465 -7852.4072 8579.5898 c
--7852.3706 8579.5859 -7852.335 8579.583 -7852.2998 8579.5801 c
--7851.6465 8579.5215 -7851.0088 8579.458 -7850.3882 8579.3887 c
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7845.8286 8578.8721 -7842.2422 8578.0547 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7839.7959 8576.8516 -7839.437 8576.6309 -7839.1553 8576.4043 c
--7838.689 8576.0254 -7838.4385 8575.6289 -7838.4385 8575.2207 c
--7838.4385 8573.6191 -7842.2617 8572.2051 -7848.1104 8571.3486 C
--7848.1392 8571.3965 -7848.1689 8571.4453 -7848.209 8571.4912 C
--7848.209 8572.2383 L
-f
-0.55 g
--7861.2202 8558.7959 m
--7866.9199 8558.7959 -7872.9287 8557.9863 -7874.2295 8556.4746 C
--7874.2295 8557.2227 L
--7874.0454 8557.2227 L
--7874.0454 8558.3994 -7868.7783 8559.7109 -7861.2202 8559.7109 c
--7853.6602 8559.7109 -7848.3921 8558.3994 -7848.3921 8557.2227 C
--7848.209 8557.2227 L
--7848.209 8556.4746 L
--7849.5088 8557.9863 -7855.5166 8558.7959 -7861.2202 8558.7959 c
-f
--7861.2202 8549.2402 m
--7866.9199 8549.2402 -7872.9287 8548.4307 -7874.2295 8546.9199 C
--7874.2295 8547.666 L
--7874.0454 8547.666 L
--7874.0454 8548.8438 -7868.7783 8550.1563 -7861.2202 8550.1563 c
--7853.6602 8550.1563 -7848.3921 8548.8438 -7848.3921 8547.666 C
--7848.209 8547.666 L
--7848.209 8546.9199 L
--7849.5088 8548.4307 -7855.5166 8549.2402 -7861.2202 8549.2402 c
-f
--7861.2202 8560.1611 m
--7866.9199 8560.1611 -7872.9287 8559.3516 -7874.2295 8557.8398 C
--7874.2295 8558.5879 L
--7874.0454 8558.5879 L
--7874.0454 8559.7646 -7868.7783 8561.0762 -7861.2202 8561.0762 c
--7853.6602 8561.0762 -7848.3921 8559.7646 -7848.3921 8558.5879 C
--7848.209 8558.5879 L
--7848.209 8557.8398 L
--7849.5088 8559.3516 -7855.5166 8560.1611 -7861.2202 8560.1611 c
-f
--7861.2202 8561.5264 m
--7866.9199 8561.5264 -7872.9287 8560.7168 -7874.2295 8559.2051 C
--7874.2295 8559.9531 L
--7874.0454 8559.9531 L
--7874.0454 8561.1299 -7868.7783 8562.4414 -7861.2202 8562.4414 c
--7853.6602 8562.4414 -7848.3921 8561.1299 -7848.3921 8559.9531 C
--7848.209 8559.9531 L
--7848.209 8559.2051 L
--7849.5088 8560.7168 -7855.5166 8561.5264 -7861.2202 8561.5264 c
-f
--7861.2202 8550.6055 m
--7866.9199 8550.6055 -7872.9287 8549.7959 -7874.2295 8548.2852 C
--7874.2295 8549.0322 L
--7874.0454 8549.0322 L
--7874.0454 8550.209 -7868.7783 8551.5205 -7861.2202 8551.5205 c
--7853.6602 8551.5205 -7848.3921 8550.209 -7848.3921 8549.0322 C
--7848.209 8549.0322 L
--7848.209 8548.2852 L
--7849.5088 8549.7959 -7855.5166 8550.6055 -7861.2202 8550.6055 c
-f
--7861.2202 8554.7012 m
--7866.9199 8554.7012 -7872.9287 8553.8906 -7874.2295 8552.3789 C
--7874.2295 8553.127 L
--7874.0454 8553.127 L
--7874.0454 8554.3047 -7868.7783 8555.6162 -7861.2202 8555.6162 c
--7853.6602 8555.6162 -7848.3921 8554.3047 -7848.3921 8553.127 C
--7848.209 8553.127 L
--7848.209 8552.3789 L
--7849.5088 8553.8906 -7855.5166 8554.7012 -7861.2202 8554.7012 c
-f
--7861.2202 8557.4316 m
--7866.9199 8557.4316 -7872.9287 8556.6211 -7874.2295 8555.1104 C
--7874.2295 8555.8574 L
--7874.0454 8555.8574 L
--7874.0454 8557.0342 -7868.7783 8558.3457 -7861.2202 8558.3457 c
--7853.6602 8558.3457 -7848.3921 8557.0342 -7848.3921 8555.8574 C
--7848.209 8555.8574 L
--7848.209 8555.1104 L
--7849.5088 8556.6211 -7855.5166 8557.4316 -7861.2202 8557.4316 c
-f
--7861.2202 8553.3359 m
--7866.9199 8553.3359 -7872.9287 8552.5254 -7874.2295 8551.0146 C
--7874.2295 8551.7617 L
--7874.0454 8551.7617 L
--7874.0454 8552.9395 -7868.7783 8554.25 -7861.2202 8554.25 c
--7853.6602 8554.25 -7848.3921 8552.9395 -7848.3921 8551.7617 C
--7848.209 8551.7617 L
--7848.209 8551.0146 L
--7849.5088 8552.5254 -7855.5166 8553.3359 -7861.2202 8553.3359 c
-f
--7861.2202 8543.7803 m
--7866.9199 8543.7803 -7872.9287 8542.9707 -7874.2295 8541.459 C
--7874.2295 8542.2061 L
--7874.0454 8542.2061 L
--7874.0454 8543.3828 -7868.7783 8544.6953 -7861.2202 8544.6953 c
--7853.6602 8544.6953 -7848.3921 8543.3828 -7848.3921 8542.2061 C
--7848.209 8542.2061 L
--7848.209 8541.459 L
--7849.5088 8542.9707 -7855.5166 8543.7803 -7861.2202 8543.7803 c
-f
--7861.2202 8546.5098 m
--7866.9199 8546.5098 -7872.9287 8545.7012 -7874.2295 8544.1895 C
--7874.2295 8544.9375 L
--7874.0454 8544.9375 L
--7874.0454 8546.1133 -7868.7783 8547.4248 -7861.2202 8547.4248 c
--7853.6602 8547.4248 -7848.3921 8546.1133 -7848.3921 8544.9375 C
--7848.209 8544.9375 L
--7848.209 8544.1895 L
--7849.5088 8545.7012 -7855.5166 8546.5098 -7861.2202 8546.5098 c
-f
--7861.2202 8556.0664 m
--7866.9199 8556.0664 -7872.9287 8555.2559 -7874.2295 8553.7451 C
--7874.2295 8554.4922 L
--7874.0454 8554.4922 L
--7874.0454 8555.6689 -7868.7783 8556.9805 -7861.2202 8556.9805 c
--7853.6602 8556.9805 -7848.3921 8555.6689 -7848.3921 8554.4922 C
--7848.209 8554.4922 L
--7848.209 8553.7451 L
--7849.5088 8555.2559 -7855.5166 8556.0664 -7861.2202 8556.0664 c
-f
--7861.2202 8551.9707 m
--7866.9199 8551.9707 -7872.9287 8551.1611 -7874.2295 8549.6504 C
--7874.2295 8550.3965 L
--7874.0454 8550.3965 L
--7874.0454 8551.5742 -7868.7783 8552.8857 -7861.2202 8552.8857 c
--7853.6602 8552.8857 -7848.3921 8551.5742 -7848.3921 8550.3965 C
--7848.209 8550.3965 L
--7848.209 8549.6504 L
--7849.5088 8551.1611 -7855.5166 8551.9707 -7861.2202 8551.9707 c
-f
--7861.2202 8545.1445 m
--7866.9199 8545.1445 -7872.9287 8544.3359 -7874.2295 8542.8242 C
--7874.2295 8543.5723 L
--7874.0454 8543.5723 L
--7874.0454 8544.748 -7868.7783 8546.0605 -7861.2202 8546.0605 c
--7853.6602 8546.0605 -7848.3921 8544.748 -7848.3921 8543.5723 C
--7848.209 8543.5723 L
--7848.209 8542.8242 L
--7849.5088 8544.3359 -7855.5166 8545.1445 -7861.2202 8545.1445 c
-f
--7861.2202 8547.875 m
--7866.9199 8547.875 -7872.9287 8547.0654 -7874.2295 8545.5547 C
--7874.2295 8546.3008 L
--7874.0454 8546.3008 L
--7874.0454 8547.4785 -7868.7783 8548.791 -7861.2202 8548.791 c
--7853.6602 8548.791 -7848.3921 8547.4785 -7848.3921 8546.3008 C
--7848.209 8546.3008 L
--7848.209 8545.5547 L
--7849.5088 8547.0654 -7855.5166 8547.875 -7861.2202 8547.875 c
-f
--7861.2202 8568.3516 m
--7866.9199 8568.3516 -7872.9287 8567.543 -7874.2295 8566.0313 C
--7874.2295 8566.7783 L
--7874.0454 8566.7783 L
--7874.0454 8567.9551 -7868.7783 8569.2666 -7861.2202 8569.2666 c
--7853.6602 8569.2666 -7848.3921 8567.9551 -7848.3921 8566.7783 C
--7848.209 8566.7783 L
--7848.209 8566.0313 L
--7849.5088 8567.543 -7855.5166 8568.3516 -7861.2202 8568.3516 c
-f
--7861.2202 8572.4473 m
--7866.9199 8572.4473 -7872.9287 8571.6377 -7874.2295 8570.127 C
--7874.2295 8570.873 L
--7874.0454 8570.873 L
--7874.0454 8572.0508 -7868.7783 8573.3623 -7861.2202 8573.3623 c
--7853.6602 8573.3623 -7848.3921 8572.0508 -7848.3921 8570.873 C
--7848.209 8570.873 L
--7848.209 8570.127 L
--7849.5088 8571.6377 -7855.5166 8572.4473 -7861.2202 8572.4473 c
-f
--7861.2202 8571.082 m
--7866.9199 8571.082 -7872.9287 8570.2715 -7874.2295 8568.7607 C
--7874.2295 8569.5078 L
--7874.0454 8569.5078 L
--7874.0454 8570.6855 -7868.7783 8571.998 -7861.2202 8571.998 c
--7853.6602 8571.998 -7848.3921 8570.6855 -7848.3921 8569.5078 C
--7848.209 8569.5078 L
--7848.209 8568.7607 L
--7849.5088 8570.2715 -7855.5166 8571.082 -7861.2202 8571.082 c
-f
--7861.2202 8562.8906 m
--7866.9199 8562.8906 -7872.9287 8562.082 -7874.2295 8560.5703 C
--7874.2295 8561.3184 L
--7874.0454 8561.3184 L
--7874.0454 8562.4941 -7868.7783 8563.8066 -7861.2202 8563.8066 c
--7853.6602 8563.8066 -7848.3921 8562.4941 -7848.3921 8561.3184 C
--7848.209 8561.3184 L
--7848.209 8560.5703 L
--7849.5088 8562.082 -7855.5166 8562.8906 -7861.2202 8562.8906 c
-f
--7861.2202 8566.9863 m
--7866.9199 8566.9863 -7872.9287 8566.1768 -7874.2295 8564.666 C
--7874.2295 8565.4131 L
--7874.0454 8565.4131 L
--7874.0454 8566.5898 -7868.7783 8567.9023 -7861.2202 8567.9023 c
--7853.6602 8567.9023 -7848.3921 8566.5898 -7848.3921 8565.4131 C
--7848.209 8565.4131 L
--7848.209 8564.666 L
--7849.5088 8566.1768 -7855.5166 8566.9863 -7861.2202 8566.9863 c
-f
--7861.2202 8565.6211 m
--7866.9199 8565.6211 -7872.9287 8564.8115 -7874.2295 8563.3008 C
--7874.2295 8564.0479 L
--7874.0454 8564.0479 L
--7874.0454 8565.2246 -7868.7783 8566.5371 -7861.2202 8566.5371 c
--7853.6602 8566.5371 -7848.3921 8565.2246 -7848.3921 8564.0479 C
--7848.209 8564.0479 L
--7848.209 8563.3008 L
--7849.5088 8564.8115 -7855.5166 8565.6211 -7861.2202 8565.6211 c
-f
--7861.2202 8564.2559 m
--7866.9199 8564.2559 -7872.9287 8563.4473 -7874.2295 8561.9355 C
--7874.2295 8562.6826 L
--7874.0454 8562.6826 L
--7874.0454 8563.8594 -7868.7783 8565.1719 -7861.2202 8565.1719 c
--7853.6602 8565.1719 -7848.3921 8563.8594 -7848.3921 8562.6826 C
--7848.209 8562.6826 L
--7848.209 8561.9355 L
--7849.5088 8563.4473 -7855.5166 8564.2559 -7861.2202 8564.2559 c
-f
--7861.2202 8569.7168 m
--7866.9199 8569.7168 -7872.9287 8568.9072 -7874.2295 8567.3965 C
--7874.2295 8568.1426 L
--7874.0454 8568.1426 L
--7874.0454 8569.3203 -7868.7783 8570.6318 -7861.2202 8570.6318 c
--7853.6602 8570.6318 -7848.3921 8569.3203 -7848.3921 8568.1426 C
--7848.209 8568.1426 L
--7848.209 8567.3965 L
--7849.5088 8568.9072 -7855.5166 8569.7168 -7861.2202 8569.7168 c
-f
--7852.3521 8539.5498 m
--7853.7134 8539.6699 -7855.145 8539.7637 -7856.6279 8539.8262 c
--7858.1104 8539.8887 -7859.6465 8539.9229 -7861.2202 8539.9229 c
--7862.792 8539.9229 -7864.3271 8539.8887 -7865.8096 8539.8262 c
--7867.293 8539.7637 -7868.7231 8539.6699 -7870.0854 8539.5498 c
--7871.4497 8539.4307 -7872.7432 8539.2852 -7873.9561 8539.1143 c
--7874.0498 8539.1016 -7874.1362 8539.085 -7874.2295 8539.0713 C
--7874.2295 8539.4766 L
--7874.0454 8539.4766 L
--7874.0454 8540.6523 -7868.7783 8541.9648 -7861.2202 8541.9648 c
--7853.6602 8541.9648 -7848.3921 8540.6523 -7848.3921 8539.4766 C
--7848.209 8539.4766 L
--7848.209 8539.0723 L
--7848.3018 8539.085 -7848.3882 8539.1016 -7848.4814 8539.1143 c
--7849.6934 8539.2852 -7850.9897 8539.4307 -7852.3521 8539.5498 c
-f
--7861.2202 8542.415 m
--7866.9199 8542.415 -7872.9287 8541.6055 -7874.2295 8540.0938 C
--7874.2295 8540.8418 L
--7874.0454 8540.8418 L
--7874.0454 8542.0186 -7868.7783 8543.3301 -7861.2202 8543.3301 c
--7853.6602 8543.3301 -7848.3921 8542.0186 -7848.3921 8540.8418 C
--7848.209 8540.8418 L
--7848.209 8540.0938 L
--7849.5088 8541.6055 -7855.5166 8542.415 -7861.2202 8542.415 c
-f
--7861.2202 8575.1768 m
--7866.9199 8575.1768 -7872.9287 8574.3672 -7874.2295 8572.8555 C
--7874.2295 8574.0039 L
--7874.2295 8574.1914 -7874.1377 8574.373 -7873.9658 8574.5488 c
--7873.792 8574.7256 -7873.5361 8574.8945 -7873.2065 8575.0566 c
--7872.8774 8575.2197 -7872.4746 8575.373 -7872.0063 8575.5166 c
--7871.54 8575.6602 -7871.0063 8575.7949 -7870.418 8575.917 c
--7869.8306 8576.0391 -7869.1846 8576.1504 -7868.4927 8576.248 c
--7867.8008 8576.3447 -7867.061 8576.4277 -7866.2822 8576.4961 c
--7865.5049 8576.5645 -7864.687 8576.6191 -7863.8408 8576.6543 c
--7862.9946 8576.6895 -7862.1162 8576.709 -7861.2192 8576.709 c
--7860.3218 8576.709 -7859.4438 8576.6895 -7858.5967 8576.6543 c
--7857.749 8576.6191 -7856.9326 8576.5645 -7856.1543 8576.4961 c
--7855.376 8576.4277 -7854.6377 8576.3447 -7853.9438 8576.248 c
--7853.2529 8576.1504 -7852.6079 8576.0391 -7852.0186 8575.917 c
--7851.4302 8575.7949 -7850.8984 8575.6602 -7850.4302 8575.5166 c
--7849.9639 8575.373 -7849.5615 8575.2197 -7849.231 8575.0566 c
--7848.9014 8574.8945 -7848.6455 8574.7256 -7848.4736 8574.5488 c
--7848.2998 8574.373 -7848.209 8574.1914 -7848.209 8574.0039 C
--7848.209 8572.8555 L
--7849.5088 8574.3672 -7855.5166 8575.1768 -7861.2202 8575.1768 c
-f
--7874.0454 8572.2383 m
--7874.0454 8573.415 -7868.7783 8574.7266 -7861.2202 8574.7266 c
--7853.6602 8574.7266 -7848.3921 8573.415 -7848.3921 8572.2383 C
--7848.209 8572.2383 L
--7848.209 8571.4912 L
--7849.5088 8573.002 -7855.5166 8573.8125 -7861.2202 8573.8125 c
--7866.9199 8573.8125 -7872.9287 8573.002 -7874.2295 8571.4912 C
--7874.2295 8572.2383 L
--7874.0454 8572.2383 L
-f
-0.15 g
--7861.2202 8541.9648 m
--7868.7783 8541.9648 -7874.0454 8540.6523 -7874.0454 8539.4766 C
--7874.2295 8539.4766 L
--7874.4961 8539.4766 L
--7874.4961 8539.6943 -7874.3975 8539.8994 -7874.2295 8540.0938 c
--7872.9287 8541.6055 -7866.9199 8542.415 -7861.2202 8542.415 c
--7855.5166 8542.415 -7849.5088 8541.6055 -7848.209 8540.0938 c
--7848.041 8539.8994 -7847.9424 8539.6943 -7847.9424 8539.4766 C
--7848.209 8539.4766 L
--7848.3921 8539.4766 L
--7848.3921 8540.6523 -7853.6602 8541.9648 -7861.2202 8541.9648 c
-f
--7861.2202 8543.3301 m
--7868.7783 8543.3301 -7874.0454 8542.0186 -7874.0454 8540.8418 C
--7874.2295 8540.8418 L
--7874.4961 8540.8418 L
--7874.4961 8541.0586 -7874.3975 8541.2637 -7874.2295 8541.459 c
--7872.9287 8542.9707 -7866.9199 8543.7803 -7861.2202 8543.7803 c
--7855.5166 8543.7803 -7849.5088 8542.9707 -7848.209 8541.459 c
--7848.041 8541.2637 -7847.9424 8541.0586 -7847.9424 8540.8418 C
--7848.209 8540.8418 L
--7848.3921 8540.8418 L
--7848.3921 8542.0186 -7853.6602 8543.3301 -7861.2202 8543.3301 c
-f
--7861.2202 8544.6953 m
--7868.7783 8544.6953 -7874.0454 8543.3828 -7874.0454 8542.2061 C
--7874.2295 8542.2061 L
--7874.4961 8542.2061 L
--7874.4961 8542.4238 -7874.3975 8542.6289 -7874.2295 8542.8242 c
--7872.9287 8544.3359 -7866.9199 8545.1445 -7861.2202 8545.1445 c
--7855.5166 8545.1445 -7849.5088 8544.3359 -7848.209 8542.8242 c
--7848.041 8542.6289 -7847.9424 8542.4238 -7847.9424 8542.2061 C
--7848.209 8542.2061 L
--7848.3921 8542.2061 L
--7848.3921 8543.3828 -7853.6602 8544.6953 -7861.2202 8544.6953 c
-f
--7861.2202 8546.0605 m
--7868.7783 8546.0605 -7874.0454 8544.748 -7874.0454 8543.5723 C
--7874.2295 8543.5723 L
--7874.4961 8543.5723 L
--7874.4961 8543.79 -7874.3975 8543.9951 -7874.2295 8544.1895 c
--7872.9287 8545.7012 -7866.9199 8546.5098 -7861.2202 8546.5098 c
--7855.5166 8546.5098 -7849.5088 8545.7012 -7848.209 8544.1895 c
--7848.041 8543.9951 -7847.9424 8543.79 -7847.9424 8543.5723 C
--7848.209 8543.5723 L
--7848.3921 8543.5723 L
--7848.3921 8544.748 -7853.6602 8546.0605 -7861.2202 8546.0605 c
-f
--7861.2202 8547.4248 m
--7868.7783 8547.4248 -7874.0454 8546.1133 -7874.0454 8544.9375 C
--7874.2295 8544.9375 L
--7874.4961 8544.9375 L
--7874.4961 8545.1543 -7874.3975 8545.3594 -7874.2295 8545.5547 c
--7872.9287 8547.0654 -7866.9199 8547.875 -7861.2202 8547.875 c
--7855.5166 8547.875 -7849.5088 8547.0654 -7848.209 8545.5547 c
--7848.041 8545.3594 -7847.9424 8545.1543 -7847.9424 8544.9375 C
--7848.209 8544.9375 L
--7848.3921 8544.9375 L
--7848.3921 8546.1133 -7853.6602 8547.4248 -7861.2202 8547.4248 c
-f
--7861.2202 8548.791 m
--7868.7783 8548.791 -7874.0454 8547.4785 -7874.0454 8546.3008 C
--7874.2295 8546.3008 L
--7874.4961 8546.3008 L
--7874.4961 8546.5195 -7874.3975 8546.7246 -7874.2295 8546.9199 c
--7872.9287 8548.4307 -7866.9199 8549.2402 -7861.2202 8549.2402 c
--7855.5166 8549.2402 -7849.5088 8548.4307 -7848.209 8546.9199 c
--7848.041 8546.7246 -7847.9424 8546.5195 -7847.9424 8546.3008 C
--7848.209 8546.3008 L
--7848.3921 8546.3008 L
--7848.3921 8547.4785 -7853.6602 8548.791 -7861.2202 8548.791 c
-f
--7861.2202 8550.1563 m
--7868.7783 8550.1563 -7874.0454 8548.8438 -7874.0454 8547.666 C
--7874.2295 8547.666 L
--7874.4961 8547.666 L
--7874.4961 8547.8848 -7874.3975 8548.0898 -7874.2295 8548.2852 c
--7872.9287 8549.7959 -7866.9199 8550.6055 -7861.2202 8550.6055 c
--7855.5166 8550.6055 -7849.5088 8549.7959 -7848.209 8548.2852 c
--7848.041 8548.0898 -7847.9424 8547.8848 -7847.9424 8547.666 C
--7848.209 8547.666 L
--7848.3921 8547.666 L
--7848.3921 8548.8438 -7853.6602 8550.1563 -7861.2202 8550.1563 c
-f
--7861.2202 8551.5205 m
--7868.7783 8551.5205 -7874.0454 8550.209 -7874.0454 8549.0322 C
--7874.2295 8549.0322 L
--7874.4961 8549.0322 L
--7874.4961 8549.25 -7874.3975 8549.4551 -7874.2295 8549.6504 c
--7872.9287 8551.1611 -7866.9199 8551.9707 -7861.2202 8551.9707 c
--7855.5166 8551.9707 -7849.5088 8551.1611 -7848.209 8549.6504 c
--7848.041 8549.4551 -7847.9424 8549.25 -7847.9424 8549.0322 C
--7848.209 8549.0322 L
--7848.3921 8549.0322 L
--7848.3921 8550.209 -7853.6602 8551.5205 -7861.2202 8551.5205 c
-f
--7861.2202 8552.8857 m
--7868.7783 8552.8857 -7874.0454 8551.5742 -7874.0454 8550.3965 C
--7874.2295 8550.3965 L
--7874.4961 8550.3965 L
--7874.4961 8550.6152 -7874.3975 8550.8203 -7874.2295 8551.0146 c
--7872.9287 8552.5254 -7866.9199 8553.3359 -7861.2202 8553.3359 c
--7855.5166 8553.3359 -7849.5088 8552.5254 -7848.209 8551.0146 c
--7848.041 8550.8203 -7847.9424 8550.6152 -7847.9424 8550.3965 C
--7848.209 8550.3965 L
--7848.3921 8550.3965 L
--7848.3921 8551.5742 -7853.6602 8552.8857 -7861.2202 8552.8857 c
-f
--7861.2202 8554.25 m
--7868.7783 8554.25 -7874.0454 8552.9395 -7874.0454 8551.7617 C
--7874.2295 8551.7617 L
--7874.4961 8551.7617 L
--7874.4961 8551.9795 -7874.3975 8552.1846 -7874.2295 8552.3789 c
--7872.9287 8553.8906 -7866.9199 8554.7012 -7861.2202 8554.7012 c
--7855.5166 8554.7012 -7849.5088 8553.8906 -7848.209 8552.3789 c
--7848.041 8552.1846 -7847.9424 8551.9795 -7847.9424 8551.7617 C
--7848.209 8551.7617 L
--7848.3921 8551.7617 L
--7848.3921 8552.9395 -7853.6602 8554.25 -7861.2202 8554.25 c
-f
--7861.2202 8555.6162 m
--7868.7783 8555.6162 -7874.0454 8554.3047 -7874.0454 8553.127 C
--7874.2295 8553.127 L
--7874.4961 8553.127 L
--7874.4961 8553.3457 -7874.3975 8553.5508 -7874.2295 8553.7451 c
--7872.9287 8555.2559 -7866.9199 8556.0664 -7861.2202 8556.0664 c
--7855.5166 8556.0664 -7849.5088 8555.2559 -7848.209 8553.7451 c
--7848.041 8553.5508 -7847.9424 8553.3457 -7847.9424 8553.127 C
--7848.209 8553.127 L
--7848.3921 8553.127 L
--7848.3921 8554.3047 -7853.6602 8555.6162 -7861.2202 8555.6162 c
-f
--7861.2202 8556.9805 m
--7868.7783 8556.9805 -7874.0454 8555.6689 -7874.0454 8554.4922 C
--7874.2295 8554.4922 L
--7874.4961 8554.4922 L
--7874.4961 8554.7109 -7874.3975 8554.916 -7874.2295 8555.1104 c
--7872.9287 8556.6211 -7866.9199 8557.4316 -7861.2202 8557.4316 c
--7855.5166 8557.4316 -7849.5088 8556.6211 -7848.209 8555.1104 c
--7848.041 8554.916 -7847.9424 8554.7109 -7847.9424 8554.4922 C
--7848.209 8554.4922 L
--7848.3921 8554.4922 L
--7848.3921 8555.6689 -7853.6602 8556.9805 -7861.2202 8556.9805 c
-f
--7861.2202 8558.3457 m
--7868.7783 8558.3457 -7874.0454 8557.0342 -7874.0454 8555.8574 C
--7874.2295 8555.8574 L
--7874.4961 8555.8574 L
--7874.4961 8556.0752 -7874.3975 8556.2803 -7874.2295 8556.4746 c
--7872.9287 8557.9863 -7866.9199 8558.7959 -7861.2202 8558.7959 c
--7855.5166 8558.7959 -7849.5088 8557.9863 -7848.209 8556.4746 c
--7848.041 8556.2803 -7847.9424 8556.0752 -7847.9424 8555.8574 C
--7848.209 8555.8574 L
--7848.3921 8555.8574 L
--7848.3921 8557.0342 -7853.6602 8558.3457 -7861.2202 8558.3457 c
-f
--7861.2202 8559.7109 m
--7868.7783 8559.7109 -7874.0454 8558.3994 -7874.0454 8557.2227 C
--7874.2295 8557.2227 L
--7874.4961 8557.2227 L
--7874.4961 8557.4395 -7874.3975 8557.6455 -7874.2295 8557.8398 c
--7872.9287 8559.3516 -7866.9199 8560.1611 -7861.2202 8560.1611 c
--7855.5166 8560.1611 -7849.5088 8559.3516 -7848.209 8557.8398 c
--7848.041 8557.6455 -7847.9424 8557.4395 -7847.9424 8557.2227 C
--7848.209 8557.2227 L
--7848.3921 8557.2227 L
--7848.3921 8558.3994 -7853.6602 8559.7109 -7861.2202 8559.7109 c
-f
--7861.2202 8561.0762 m
--7868.7783 8561.0762 -7874.0454 8559.7646 -7874.0454 8558.5879 C
--7874.2295 8558.5879 L
--7874.4961 8558.5879 L
--7874.4961 8558.8057 -7874.3975 8559.0107 -7874.2295 8559.2051 c
--7872.9287 8560.7168 -7866.9199 8561.5264 -7861.2202 8561.5264 c
--7855.5166 8561.5264 -7849.5088 8560.7168 -7848.209 8559.2051 c
--7848.041 8559.0107 -7847.9424 8558.8057 -7847.9424 8558.5879 C
--7848.209 8558.5879 L
--7848.3921 8558.5879 L
--7848.3921 8559.7646 -7853.6602 8561.0762 -7861.2202 8561.0762 c
-f
--7861.2202 8562.4414 m
--7868.7783 8562.4414 -7874.0454 8561.1299 -7874.0454 8559.9531 C
--7874.2295 8559.9531 L
--7874.4961 8559.9531 L
--7874.4961 8560.1709 -7874.3975 8560.376 -7874.2295 8560.5703 c
--7872.9287 8562.082 -7866.9199 8562.8906 -7861.2202 8562.8906 c
--7855.5166 8562.8906 -7849.5088 8562.082 -7848.209 8560.5703 c
--7848.041 8560.376 -7847.9424 8560.1709 -7847.9424 8559.9531 C
--7848.209 8559.9531 L
--7848.3921 8559.9531 L
--7848.3921 8561.1299 -7853.6602 8562.4414 -7861.2202 8562.4414 c
-f
--7861.2202 8563.8066 m
--7868.7783 8563.8066 -7874.0454 8562.4941 -7874.0454 8561.3184 C
--7874.2295 8561.3184 L
--7874.4961 8561.3184 L
--7874.4961 8561.5352 -7874.3975 8561.7412 -7874.2295 8561.9355 c
--7872.9287 8563.4473 -7866.9199 8564.2559 -7861.2202 8564.2559 c
--7855.5166 8564.2559 -7849.5088 8563.4473 -7848.209 8561.9355 c
--7848.041 8561.7412 -7847.9424 8561.5352 -7847.9424 8561.3184 C
--7848.209 8561.3184 L
--7848.3921 8561.3184 L
--7848.3921 8562.4941 -7853.6602 8563.8066 -7861.2202 8563.8066 c
-f
--7861.2202 8565.1719 m
--7868.7783 8565.1719 -7874.0454 8563.8594 -7874.0454 8562.6826 C
--7874.2295 8562.6826 L
--7874.4961 8562.6826 L
--7874.4961 8562.9004 -7874.3975 8563.1055 -7874.2295 8563.3008 c
--7872.9287 8564.8115 -7866.9199 8565.6211 -7861.2202 8565.6211 c
--7855.5166 8565.6211 -7849.5088 8564.8115 -7848.209 8563.3008 c
--7848.041 8563.1055 -7847.9424 8562.9004 -7847.9424 8562.6826 C
--7848.209 8562.6826 L
--7848.3921 8562.6826 L
--7848.3921 8563.8594 -7853.6602 8565.1719 -7861.2202 8565.1719 c
-f
--7861.2202 8566.5371 m
--7868.7783 8566.5371 -7874.0454 8565.2246 -7874.0454 8564.0479 C
--7874.2295 8564.0479 L
--7874.4961 8564.0479 L
--7874.4961 8564.2656 -7874.3975 8564.4707 -7874.2295 8564.666 c
--7872.9287 8566.1768 -7866.9199 8566.9863 -7861.2202 8566.9863 c
--7855.5166 8566.9863 -7849.5088 8566.1768 -7848.209 8564.666 c
--7848.041 8564.4707 -7847.9424 8564.2656 -7847.9424 8564.0479 C
--7848.209 8564.0479 L
--7848.3921 8564.0479 L
--7848.3921 8565.2246 -7853.6602 8566.5371 -7861.2202 8566.5371 c
-f
--7861.2202 8567.9023 m
--7868.7783 8567.9023 -7874.0454 8566.5898 -7874.0454 8565.4131 C
--7874.2295 8565.4131 L
--7874.4961 8565.4131 L
--7874.4961 8565.6309 -7874.3975 8565.8359 -7874.2295 8566.0313 c
--7872.9287 8567.543 -7866.9199 8568.3516 -7861.2202 8568.3516 c
--7855.5166 8568.3516 -7849.5088 8567.543 -7848.209 8566.0313 c
--7848.041 8565.8359 -7847.9424 8565.6309 -7847.9424 8565.4131 C
--7848.209 8565.4131 L
--7848.3921 8565.4131 L
--7848.3921 8566.5898 -7853.6602 8567.9023 -7861.2202 8567.9023 c
-f
--7861.2202 8569.2666 m
--7868.7783 8569.2666 -7874.0454 8567.9551 -7874.0454 8566.7783 C
--7874.2295 8566.7783 L
--7874.4961 8566.7783 L
--7874.4961 8566.9961 -7874.3975 8567.2012 -7874.2295 8567.3965 c
--7872.9287 8568.9072 -7866.9199 8569.7168 -7861.2202 8569.7168 c
--7855.5166 8569.7168 -7849.5088 8568.9072 -7848.209 8567.3965 c
--7848.041 8567.2012 -7847.9424 8566.9961 -7847.9424 8566.7783 C
--7848.209 8566.7783 L
--7848.3921 8566.7783 L
--7848.3921 8567.9551 -7853.6602 8569.2666 -7861.2202 8569.2666 c
-f
--7861.2202 8570.6318 m
--7868.7783 8570.6318 -7874.0454 8569.3203 -7874.0454 8568.1426 C
--7874.2295 8568.1426 L
--7874.4961 8568.1426 L
--7874.4961 8568.3613 -7874.3975 8568.5664 -7874.2295 8568.7607 c
--7872.9287 8570.2715 -7866.9199 8571.082 -7861.2202 8571.082 c
--7855.5166 8571.082 -7849.5088 8570.2715 -7848.209 8568.7607 c
--7848.041 8568.5664 -7847.9424 8568.3613 -7847.9424 8568.1426 C
--7848.209 8568.1426 L
--7848.3921 8568.1426 L
--7848.3921 8569.3203 -7853.6602 8570.6318 -7861.2202 8570.6318 c
-f
--7861.2202 8571.998 m
--7868.7783 8571.998 -7874.0454 8570.6855 -7874.0454 8569.5078 C
--7874.2295 8569.5078 L
--7874.4961 8569.5078 L
--7874.4961 8569.7266 -7874.3975 8569.9316 -7874.2295 8570.127 c
--7872.9287 8571.6377 -7866.9199 8572.4473 -7861.2202 8572.4473 c
--7855.5166 8572.4473 -7849.5088 8571.6377 -7848.209 8570.127 c
--7848.041 8569.9316 -7847.9424 8569.7266 -7847.9424 8569.5078 C
--7848.209 8569.5078 L
--7848.3921 8569.5078 L
--7848.3921 8570.6855 -7853.6602 8571.998 -7861.2202 8571.998 c
-f
--7861.2202 8573.3623 m
--7868.7783 8573.3623 -7874.0454 8572.0508 -7874.0454 8570.873 C
--7874.2295 8570.873 L
--7874.4961 8570.873 L
--7874.4961 8571.0391 -7874.4282 8571.1953 -7874.3286 8571.3486 c
--7874.2974 8571.3965 -7874.2695 8571.4453 -7874.2295 8571.4912 c
--7872.9287 8573.002 -7866.9199 8573.8125 -7861.2202 8573.8125 c
--7855.5166 8573.8125 -7849.5088 8573.002 -7848.209 8571.4912 c
--7848.1689 8571.4453 -7848.1392 8571.3965 -7848.1104 8571.3486 c
--7848.0103 8571.1953 -7847.9424 8571.0391 -7847.9424 8570.873 C
--7848.209 8570.873 L
--7848.3921 8570.873 L
--7848.3921 8572.0508 -7853.6602 8573.3623 -7861.2202 8573.3623 c
-f
--7861.2202 8574.7266 m
--7868.7783 8574.7266 -7874.0454 8573.415 -7874.0454 8572.2383 C
--7874.2295 8572.2383 L
--7874.4961 8572.2383 L
--7874.4961 8572.4561 -7874.3975 8572.6621 -7874.2295 8572.8555 c
--7872.9287 8574.3672 -7866.9199 8575.1768 -7861.2202 8575.1768 c
--7855.5166 8575.1768 -7849.5088 8574.3672 -7848.209 8572.8555 c
--7848.041 8572.6621 -7847.9424 8572.4561 -7847.9424 8572.2383 C
--7848.209 8572.2383 L
--7848.3921 8572.2383 L
--7848.3921 8573.415 -7853.6602 8574.7266 -7861.2202 8574.7266 c
-f
-0.8 g
--7839.0342 8530.2168 m
--7839.3311 8530.4834 -7839.7271 8530.7402 -7840.229 8530.9863 c
--7840.231 8530.9883 -7840.2334 8530.9893 -7840.2358 8530.9902 c
--7840.5225 8531.1309 -7840.8394 8531.2676 -7841.187 8531.4004 c
--7841.187 8531.4004 l
--7841.8857 8531.668 -7842.7026 8531.9189 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
--7845.501 8532.623 -7847.7583 8533.0117 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
--7851.6626 8533.4531 -7852.9834 8533.5703 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
--7855.1743 8533.7119 -7855.8232 8533.7461 -7856.4824 8533.7754 c
--7856.5313 8533.7773 -7856.5791 8533.7813 -7856.6279 8533.7832 c
--7856.6758 8533.7852 -7856.7246 8533.7861 -7856.7729 8533.7881 c
--7857.4561 8533.8164 -7858.1514 8533.8379 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
--7859.6768 8533.8711 -7860.4424 8533.8789 -7861.2202 8533.8789 c
--7861.9951 8533.8789 -7862.7607 8533.8711 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
--7864.2871 8533.8379 -7864.9814 8533.8164 -7865.667 8533.7881 c
--7865.7134 8533.7861 -7865.7642 8533.7852 -7865.8096 8533.7832 c
--7865.8608 8533.7813 -7865.9058 8533.7773 -7865.9561 8533.7754 c
--7866.6162 8533.7461 -7867.2666 8533.7119 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
--7869.4526 8533.5703 -7870.7783 8533.4531 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
--7874.6768 8533.0117 -7876.9385 8532.623 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
--7880.1934 8531.8027 -7881.3408 8531.4121 -7882.2026 8530.9902 c
--7882.2041 8530.9893 -7882.208 8530.9883 -7882.21 8530.9863 c
--7882.4639 8530.8613 -7882.6904 8530.7324 -7882.8936 8530.6016 c
--7883.3799 8530.29 -7883.7178 8529.9639 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 C
--7884 8535.1855 L
--7884 8535.5137 -7883.8408 8535.832 -7883.5361 8536.1406 c
--7883.2334 8536.4492 -7882.7866 8536.7461 -7882.21 8537.0303 c
--7881.6328 8537.3125 -7880.9287 8537.583 -7880.1089 8537.834 c
--7879.29 8538.0859 -7878.3584 8538.3203 -7877.3271 8538.5352 c
--7876.377 8538.7324 -7875.335 8538.9121 -7874.2295 8539.0713 c
--7874.1362 8539.085 -7874.0498 8539.1016 -7873.9561 8539.1143 c
--7872.7432 8539.2852 -7871.4497 8539.4307 -7870.0854 8539.5498 c
--7868.7231 8539.6699 -7867.293 8539.7637 -7865.8096 8539.8262 c
--7864.3271 8539.8887 -7862.792 8539.9229 -7861.2202 8539.9229 c
--7859.6465 8539.9229 -7858.1104 8539.8887 -7856.6279 8539.8262 c
--7855.145 8539.7637 -7853.7134 8539.6699 -7852.3521 8539.5498 c
--7850.9897 8539.4307 -7849.6934 8539.2852 -7848.4814 8539.1143 c
--7848.3882 8539.1016 -7848.3018 8539.085 -7848.209 8539.0723 c
--7847.105 8538.9121 -7846.0615 8538.7324 -7845.1104 8538.5352 c
--7844.0801 8538.3203 -7843.147 8538.0859 -7842.3286 8537.834 c
--7841.5103 8537.583 -7840.8042 8537.3125 -7840.229 8537.0303 c
--7839.6514 8536.7461 -7839.2041 8536.4492 -7838.9009 8536.1406 c
--7838.5967 8535.832 -7838.4385 8535.5137 -7838.4385 8535.1855 C
--7838.4385 8529.1426 L
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.7881 8529.9834 -7838.9038 8530.1016 -7839.0342 8530.2168 c
-f
-0.5 g
--7845.9463 8525.6279 m
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 C
--7877.5342 8525.293 -7884 8527.0605 -7884 8529.1426 c
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.7178 8529.9639 -7883.3799 8530.29 -7882.8936 8530.6016 c
--7882.687 8530.7344 -7882.46 8530.8633 -7882.2026 8530.9902 c
--7881.3408 8531.4121 -7880.1934 8531.8027 -7878.811 8532.1523 c
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7876.9385 8532.623 -7874.6768 8533.0117 -7872.1201 8533.3027 c
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7870.7783 8533.4531 -7869.4526 8533.5703 -7868.0718 8533.6602 c
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.2666 8533.7119 -7866.6162 8533.7461 -7865.9561 8533.7754 c
--7865.8594 8533.7793 -7865.7642 8533.7842 -7865.667 8533.7881 c
--7864.9814 8533.8164 -7864.2871 8533.8379 -7863.582 8533.8535 c
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7862.7607 8533.8711 -7861.9951 8533.8789 -7861.2202 8533.8789 c
--7860.4424 8533.8789 -7859.6768 8533.8711 -7858.9209 8533.8545 c
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.1514 8533.8379 -7857.4561 8533.8164 -7856.7729 8533.7881 c
--7856.6758 8533.7842 -7856.5791 8533.7793 -7856.4824 8533.7754 c
--7855.8232 8533.7461 -7855.1743 8533.7119 -7854.5366 8533.6719 c
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7852.9834 8533.5703 -7851.6626 8533.4531 -7850.4111 8533.3125 c
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7847.7583 8533.0117 -7845.501 8532.623 -7843.6582 8532.1602 c
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7842.7026 8531.9189 -7841.8857 8531.668 -7841.187 8531.4004 C
--7841.187 8531.4004 L
--7840.8394 8531.2676 -7840.5225 8531.1309 -7840.2358 8530.9902 c
--7839.731 8530.7432 -7839.332 8530.4844 -7839.0342 8530.2168 c
--7838.9038 8530.1016 -7838.7881 8529.9834 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
--7838.4385 8527.748 -7841.3359 8526.4951 -7845.9463 8525.6279 C
-f
-*u
-1 g
-1 D
--7867.7471 8524.0996 m
--7866.8584 8522.3203 -7866.5679 8520.6797 -7866.5679 8519.0811 c
--7866.5679 8517.6328 -7866.8057 8516.2178 -7867.0498 8514.7646 c
--7867.2959 8513.2949 -7867.5498 8511.7852 -7867.5498 8510.1855 c
--7867.5498 8509.792 -7867.5352 8509.3926 -7867.5 8508.9863 c
--7867.0518 8503.7461 -7861.4072 8501.1475 -7861.3506 8501.1221 C
--7840.5649 8501.1396 -7839.0386 8501.1406 V
--7840.1807 8501.8877 -7842.5088 8503.7266 -7844.8066 8507.5039 c
--7845.8433 8509.2051 -7846.1567 8511.1133 -7846.1567 8513.041 c
--7846.1567 8514.5996 -7845.9512 8516.1699 -7845.7578 8517.6523 c
--7845.5791 8519.0303 -7845.4038 8520.3633 -7845.4038 8521.5723 c
--7845.4038 8522.4287 -7845.4912 8523.2236 -7845.7256 8523.9277 c
--7846.9727 8527.6641 -7849.792 8529.6445 -7850.0713 8529.832 C
--7850.2046 8529.832 -7870.5674 8529.832 -7872.3569 8529.832 C
--7871.3154 8529.1973 -7869.5391 8527.6836 -7867.7471 8524.0996 c
-f
-0 D
--7850.8975 8526.2422 m
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
-f
--7849.1025 8512.1074 m
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
-f
--7863.4609 8517.7168 m
--7863.4609 8518.166 L
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
-f
--7863.6855 8515.9219 m
--7850.001 8515.9219 L
--7850.001 8515.4727 L
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
-f
--7863.4609 8521.3076 m
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
-f
--7861.2178 8503.583 m
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
-f
--7862.7881 8505.3779 m
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
-f
--7863.9087 8507.8457 m
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
-f
--7864.3584 8510.3135 m
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
-f
--7864.3584 8524 m
--7849.7754 8524 L
--7849.7754 8523.5488 L
--7864.3584 8523.5488 L
--7864.3584 8524 L
-f
-*U
-*u
-0 g
-1 D
--7868.5498 8524.6582 m
--7868.417 8524.4141 -7868.2832 8524.166 -7868.1494 8523.8984 c
--7866.519 8520.6387 -7866.9937 8517.8213 -7867.4946 8514.8389 c
--7867.8057 8512.9785 -7868.1294 8511.0557 -7867.9482 8508.9473 c
--7867.4766 8503.4404 -7861.5938 8500.7383 -7861.4424 8500.6914 C
--7838.2168 8500.6914 L
--7838.1201 8501.1191 L
--7838.1514 8501.1348 -7841.3599 8502.7051 -7844.4238 8507.7373 c
--7846.2144 8510.6797 -7845.7559 8514.1953 -7845.311 8517.5947 c
--7844.9966 8520.002 -7844.7007 8522.2754 -7845.2993 8524.0703 c
--7845.4858 8524.6289 -7845.707 8525.1465 -7845.9463 8525.6279 c
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 c
-f
-0 D
--7867.7471 8524.0996 m
--7869.5391 8527.6836 -7871.3154 8529.1973 -7872.3569 8529.832 C
--7870.5674 8529.832 -7850.2046 8529.832 -7850.0713 8529.832 C
--7849.792 8529.6445 -7846.9727 8527.6641 -7845.7256 8523.9277 c
--7845.4912 8523.2236 -7845.4038 8522.4287 -7845.4038 8521.5723 c
--7845.4038 8520.3633 -7845.5791 8519.0303 -7845.7578 8517.6523 c
--7845.9512 8516.1699 -7846.1567 8514.5996 -7846.1567 8513.041 c
--7846.1567 8511.1133 -7845.8433 8509.2051 -7844.8066 8507.5039 c
--7842.5088 8503.7266 -7840.1807 8501.8877 -7839.0386 8501.1406 C
--7840.5649 8501.1396 -7861.3506 8501.1221 Y
--7861.4072 8501.1475 -7867.0518 8503.7461 -7867.5 8508.9863 c
--7867.5352 8509.3926 -7867.5498 8509.792 -7867.5498 8510.1855 c
--7867.5498 8511.7852 -7867.2959 8513.2949 -7867.0498 8514.7646 c
--7866.8057 8516.2178 -7866.5679 8517.6328 -7866.5679 8519.0811 c
--7866.5679 8520.6797 -7866.8584 8522.3203 -7867.7471 8524.0996 c
-f
-*U
--7845.7378 8503.1328 m
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
-f
--7850.4497 8504.9277 m
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
-f
--7848.2041 8507.3945 m
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
-f
--7848.6538 8509.8633 m
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
-f
--7863.9087 8512.5566 m
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
-f
--7850.001 8515.4727 m
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
--7850.001 8515.9219 L
--7850.001 8515.4727 L
-f
--7863.4609 8518.166 m
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
--7863.4609 8518.166 L
-f
--7848.6538 8520.8574 m
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
-f
--7849.7754 8523.5488 m
--7864.3584 8523.5488 L
--7864.3584 8524 L
--7849.7754 8524 L
--7849.7754 8523.5488 L
-f
--7865.9287 8526.6914 m
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
-f
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 9)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7840.7246 8585.25 L
--7840.7246 8555.5381 L
--7883.25 8555.5381 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7 g
--7872.457 8555.7881 m
--7868.6582 8555.7881 -7864.9199 8555.7881 v
--7861.1826 8555.7881 -7861.8242 8558.8838 y
--7845.9258 8558.8838 -7843.4502 8558.8838 v
--7840.9761 8558.8838 -7840.9761 8561.3594 y
--7840.9761 8578.542 l
--7876.541 8578.542 l
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
-f
-0 R
-0.9 G
-0.5 w
--7861.8242 8558.8838 m
--7845.9258 8558.8838 -7843.4502 8558.8838 v
-S
-0.5 G
--7862.8594 8556.2715 m
--7861.4634 8557.1426 -7861.8242 8558.8838 y
-S
-0.7 G
--7864.9199 8555.7881 m
--7863.9858 8555.7881 -7863.3247 8555.9814 -7862.8594 8556.2715 c
-S
-0.9 G
--7876.541 8578.542 m
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
--7868.6582 8555.7881 -7864.9199 8555.7881 v
-S
-0.25 G
--7840.9761 8561.3594 m
--7840.9761 8578.542 l
--7876.541 8578.542 l
-S
-0.5 G
--7842.019 8559.2715 m
--7840.9761 8559.9668 -7840.9761 8561.3594 y
-S
-0.7 G
--7843.4502 8558.8838 m
--7842.8306 8558.8838 -7842.3672 8559.0391 -7842.019 8559.2715 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7874.0718 8557.4023 m
--7870.2729 8557.4023 -7866.5342 8557.4023 v
--7862.7954 8557.4023 -7863.439 8560.498 y
--7847.541 8560.498 -7845.0649 8560.498 v
--7842.5903 8560.498 -7842.5903 8562.9727 y
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
-f
-0 R
-0.9 G
-0.5 w
--7863.439 8560.498 m
--7847.541 8560.498 -7845.0649 8560.498 v
-S
-0.5 G
--7864.4746 8557.8867 m
--7863.0767 8558.7578 -7863.439 8560.498 y
-S
-0.7 G
--7866.5342 8557.4023 m
--7865.6006 8557.4023 -7864.9409 8557.5957 -7864.4746 8557.8867 c
-S
-0.9 G
--7878.1558 8580.1563 m
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
--7870.2729 8557.4023 -7866.5342 8557.4023 v
-S
-0.25 G
--7842.5903 8562.9727 m
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
-S
-0.5 G
--7843.6338 8560.8848 m
--7842.5903 8561.5811 -7842.5903 8562.9727 y
-S
-0.7 G
--7845.0649 8560.498 m
--7844.4458 8560.498 -7843.981 8560.6533 -7843.6338 8560.8848 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7875.6846 8559.0176 m
--7871.8882 8559.0176 -7868.1489 8559.0176 v
--7864.4111 8559.0176 -7865.0527 8562.1123 y
--7849.1538 8562.1123 -7846.6802 8562.1123 v
--7844.2046 8562.1123 -7844.2046 8564.5879 y
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
-f
-0 R
-0.9 G
-0.5 w
--7865.0527 8562.1123 m
--7849.1538 8562.1123 -7846.6802 8562.1123 v
-S
-0.5 G
--7866.0898 8559.5 m
--7864.6929 8560.3711 -7865.0527 8562.1123 y
-S
-0.7 G
--7868.1489 8559.0176 m
--7867.2144 8559.0176 -7866.5542 8559.21 -7866.0898 8559.5 c
-S
-0.9 G
--7879.771 8581.7715 m
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
--7871.8882 8559.0176 -7868.1489 8559.0176 v
-S
-0.25 G
--7844.2046 8564.5879 m
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
-S
-0.5 G
--7845.249 8562.5 m
--7844.2046 8563.1953 -7844.2046 8564.5879 y
-S
-0.7 G
--7846.6802 8562.1123 m
--7846.061 8562.1123 -7845.5962 8562.2676 -7845.249 8562.5 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7877.2993 8560.6318 m
--7873.5034 8560.6318 -7869.7642 8560.6318 v
--7866.0254 8560.6318 -7866.667 8563.7275 y
--7850.769 8563.7275 -7848.2935 8563.7275 v
--7845.8193 8563.7275 -7845.8193 8566.2031 y
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
-f
-0 R
-0.9 G
-0.5 w
--7866.667 8563.7275 m
--7850.769 8563.7275 -7848.2935 8563.7275 v
-S
-0.5 G
--7867.7046 8561.1152 m
--7866.3071 8561.9863 -7866.667 8563.7275 y
-S
-0.7 G
--7869.7642 8560.6318 m
--7868.8286 8560.6318 -7868.1689 8560.8252 -7867.7046 8561.1152 c
-S
-0.9 G
--7881.3857 8583.3867 m
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
--7873.5034 8560.6318 -7869.7642 8560.6318 v
-S
-0.25 G
--7845.8193 8566.2031 m
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
-S
-0.5 G
--7846.8638 8564.1143 m
--7845.8193 8564.8105 -7845.8193 8566.2031 y
-S
-0.7 G
--7848.2935 8563.7275 m
--7847.6753 8563.7275 -7847.2114 8563.8828 -7846.8638 8564.1143 c
-S
-U
-u
-0 O
-0.8 g
-1 w
--7878.9146 8562.2461 m
--7875.1167 8562.2461 -7871.3794 8562.2461 v
--7867.6401 8562.2461 -7868.2817 8565.3418 y
--7852.3838 8565.3418 -7849.9087 8565.3418 v
--7847.4346 8565.3418 -7847.4346 8567.8174 y
--7847.4346 8585 l
--7883.001 8585 l
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
-f
-0 R
-0.9 G
-0.5 w
--7868.2817 8565.3418 m
--7852.3838 8565.3418 -7849.9087 8565.3418 v
-S
-0.5 G
--7869.3184 8562.7295 m
--7867.9214 8563.6006 -7868.2817 8565.3418 y
-S
-0.7 G
--7871.3794 8562.2461 m
--7870.4438 8562.2461 -7869.7842 8562.4395 -7869.3184 8562.7295 c
-S
-0.9 G
--7883.001 8585 m
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
--7875.1167 8562.2461 -7871.3794 8562.2461 v
-S
-0.25 G
--7847.4346 8567.8174 m
--7847.4346 8585 l
--7883.001 8585 l
-S
-0.5 G
--7848.4785 8565.7285 m
--7847.4346 8566.4238 -7847.4346 8567.8174 y
-S
-0.7 G
--7849.9087 8565.3418 m
--7849.29 8565.3418 -7848.8262 8565.4971 -7848.4785 8565.7285 c
-S
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 10)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7815.2593 8585.25 L
--7815.2593 8557.0195 L
--7883.25 8557.0195 L
--7883.25 8585.25 L
-n
-0 O
-0.8 g
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
--7817.0591 8570.4502 l
--7829.7202 8574.4063 l
--7835.7866 8570.4502 l
--7835.5234 8580.209 l
-f
-0 R
-0.9 G
-0.5 w
--7816.7871 8570.3242 m
--7829.7202 8574.4063 l
-S
-0.5 G
--7815.4785 8573.3516 m
--7817.0591 8570.4502 l
-S
-0.25 G
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
-S
-0.5 G
--7829.7202 8574.4063 m
--7835.7866 8570.4502 l
-S
-0 O
-0.8 g
-1 w
--7855.5679 8562.7998 m
--7843.437 8557.5254 l
--7840.0073 8561.7441 l
--7855.5679 8562.7998 l
-f
-1 Ap
-0.57 g
--7835.2598 8582.0547 m
--7881.6802 8582.0547 L
--7881.6802 8584.9551 L
--7835.2598 8584.9551 L
--7835.2598 8582.0547 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
--7843.437 8557.5254 m
--7840.0073 8561.7441 l
-S
-0.9 G
--7855.5679 8562.7998 m
--7842.875 8557.248 l
-S
-0 O
-0.8 g
-1 w
--7883.001 8560.7627 m
--7883.001 8582.0859 l
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
--7837.6338 8560.8223 l
--7883.001 8560.7627 l
-f
-0 R
-0.5 G
-0.5 w
--7883.001 8576.5166 m
--7834.2046 8576.5166 l
-S
--7880.0986 8564.1191 m
--7870.6025 8564.1191 l
-S
--7880.0986 8565.7676 m
--7870.6025 8565.7676 l
-S
--7880.0986 8567.415 m
--7870.6025 8567.415 l
-S
--7880.0986 8569.0635 m
--7870.6025 8569.0635 l
-S
--7880.0986 8570.7109 m
--7870.6025 8570.7109 l
-S
--7834.2046 8564.9121 m
--7837.6338 8560.8223 l
-S
-0.25 G
--7883.001 8582.0859 m
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
-S
-0.9 G
--7837.6338 8560.793 m
--7883.001 8560.793 l
--7883.001 8582.3555 l
-S
-0.25 G
--7835.2598 8582.0859 m
--7835.2598 8585 l
--7881.6714 8585 l
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 19)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7836.6338 8585.25 L
--7836.6338 8549.6348 L
--7883.25 8549.6348 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
--7836.9722 8585 m
--7836.9722 8582.9805 l
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
--7836.9722 8585 l
-b
-0.8748 G
-2 J 0 j
--7859.8857 8579.5479 m
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
-S
--7836.9722 8582.9805 m
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
--7876.3394 8580.7598 m
--7880.377 8582.9805 l
--7839.7993 8582.9805 l
--7843.2319 8580.7598 l
--7876.3394 8580.7598 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
--7871.125 8576.6523 m
--7868.8462 8576.6094 L
--7859.7446 8575.041 L
--7850.4634 8576.6094 L
--7848.6694 8576.6094 L
--7848.729 8578.4512 L
--7871.125 8578.4512 L
--7871.125 8576.6523 L
-f
-0 R
-0.25 G
-0.5 w
--7848.6978 8576.6523 m
--7848.7905 8578.4512 L
--7871.1567 8578.4512 L
-S
-0.9 G
--7850.498 8576.6523 m
--7848.6978 8576.6523 L
-S
-0.25 G
--7859.8042 8575.041 m
--7850.498 8576.6523 L
-S
-0.9 G
--7871.1567 8578.4512 m
--7871.1567 8576.6523 L
--7868.9033 8576.6523 L
--7859.8042 8575.041 L
-S
-U
-u
-0 O
-0.7 g
-1 w
--7873.3672 8573.5781 m
--7864.0703 8573.5313 L
--7859.7119 8571.8047 L
--7855.1343 8573.5313 L
--7846.4214 8573.5313 L
--7846.4927 8575.5557 L
--7873.3672 8575.5557 L
--7873.3672 8573.5781 L
-f
-0 R
-0.25 G
-0.5 w
--7846.4546 8573.5781 m
--7846.5649 8575.5557 L
--7873.4038 8575.5557 L
-S
-0.9 G
--7855.1758 8573.5781 m
--7846.4546 8573.5781 L
-S
-0.25 G
--7859.7817 8571.8047 m
--7855.1758 8573.5781 L
-S
-0.9 G
--7873.4038 8575.5557 m
--7873.4038 8573.5781 L
--7864.1406 8573.5781 L
--7859.7817 8571.8047 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
--7874.8838 8572.75 m
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
--7844.9922 8551.0508 L
--7844.9922 8572.4648 L
--7845.8022 8573.6045 L
--7874.0366 8573.6045 l
--7874.8838 8572.75 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
--7874.0366 8573.6045 m
--7874.8838 8572.75 L
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
--7848.0239 8570.7168 m
--7848.0054 8552.7617 L
--7871.8994 8552.7617 L
--7871.9014 8570.7148 L
--7848.0239 8570.7168 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
--7843.333 8579.5479 m
--7859.8857 8579.5479 L
--7876.439 8579.5479 L
--7883.001 8582.9805 L
--7883.001 8585 L
--7836.9722 8585 L
--7836.9722 8582.9805 L
--7843.333 8579.5479 L
-s
--7874.0366 8573.6045 m
--7873.4038 8573.6045 L
--7873.4038 8575.5557 L
--7873.3672 8575.5449 L
--7873.3672 8575.5527 L
--7873.4038 8575.5557 L
--7873.3672 8575.5557 L
--7862.731 8575.5557 L
--7868.8462 8576.6094 L
--7871.125 8576.6523 L
--7871.1567 8576.6523 L
--7871.1567 8578.4512 L
--7871.125 8578.4414 L
--7871.125 8578.4482 L
--7871.1567 8578.4512 L
--7871.125 8578.4512 L
--7848.7905 8578.4512 L
--7848.729 8578.4512 L
--7848.6694 8576.6094 L
--7850.4634 8576.6094 L
--7856.7002 8575.5557 L
--7846.5649 8575.5557 L
--7846.4927 8575.5557 L
--7846.4233 8573.6045 L
--7845.8022 8573.6045 L
--7844.9922 8572.4648 L
--7844.9922 8551.0508 L
--7845.9302 8549.9121 L
--7873.9082 8549.8848 L
--7874.8911 8550.8809 L
--7874.8838 8572.75 L
--7874.0366 8573.6045 L
-s
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 21)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.3184 8585.3184 m
--7804.0449 8585.3184 L
--7804.0449 8559.5566 L
--7883.3184 8559.5566 L
--7883.3184 8585.3184 L
-n
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.5 w 3.8636 M
--7882.8638 8562.8213 m
--7804.4961 8562.8213 L
--7804.4961 8576.9053 L
--7882.8638 8576.9053 L
--7882.8638 8562.8213 L
-b
--7843.6792 8569.8633 m
-B
-U
-u
--7880.4233 8576.9053 m
--7806.939 8576.9053 L
--7805.4766 8576.9053 -7804.2954 8578.0908 -7804.2954 8579.5498 c
--7804.2954 8580.9951 L
--7804.2954 8582.4561 -7805.4766 8583.6416 -7806.939 8583.6416 c
--7880.4233 8583.6416 L
--7881.8838 8583.6416 -7883.0688 8582.4561 -7883.0688 8580.9951 c
--7883.0688 8579.5498 L
--7883.0688 8578.0908 -7881.8838 8576.9053 -7880.4233 8576.9053 c
--7880.4233 8576.9053 L
-b
--7843.6802 8580.2744 m
-B
-U
-0 g
--7878.374 8583.6396 m
--7873.8838 8583.6396 L
--7874.7007 8585.0684 L
--7877.251 8585.0684 L
--7878.374 8583.6396 L
-b
--7814.293 8583.6396 m
--7809.8022 8583.6396 L
--7810.6191 8585.0684 L
--7813.1714 8585.0684 L
--7814.293 8583.6396 L
-b
-0.61 G
-1 w
--7875.9258 8562.8574 m
--7875.9258 8574.4893 L
-S
--7873.8838 8562.8574 m
--7873.8838 8574.4893 L
-S
-u
-0 O
-0 g
-0 G
-0.5 w
--7826.7417 8566.7002 m
--7813.0679 8566.7002 L
--7813.0679 8568.9463 L
--7826.7417 8568.9463 L
--7826.7417 8566.7002 L
-b
--7819.9038 8567.8223 m
-B
-U
-1 J
--7814.3066 8577.9297 m
--7813.8906 8578.3682 -7813.6362 8578.9561 -7813.6362 8579.6064 C
--7813.6362 8580.9355 L
--7813.6362 8581.5859 -7813.8906 8582.1758 -7814.3066 8582.6123 C
-S
--7816.1978 8577.9297 m
--7815.7842 8578.3682 -7815.5288 8578.9561 -7815.5288 8579.6064 C
--7815.5288 8580.9355 L
--7815.5288 8581.5859 -7815.7842 8582.1758 -7816.1978 8582.6123 C
-S
--7818.0913 8577.9297 m
--7817.6758 8578.3682 -7817.4214 8578.9561 -7817.4214 8579.6064 C
--7817.4214 8580.9355 L
--7817.4214 8581.5859 -7817.6758 8582.1758 -7818.0913 8582.6123 C
-S
--7819.9839 8577.9297 m
--7819.5698 8578.3682 -7819.314 8578.9561 -7819.314 8579.6064 C
--7819.314 8580.9355 L
--7819.314 8581.5859 -7819.5698 8582.1758 -7819.9839 8582.6123 C
-S
--7821.8774 8577.9297 m
--7821.4614 8578.3682 -7821.207 8578.9561 -7821.207 8579.6064 C
--7821.207 8580.9355 L
--7821.207 8581.5859 -7821.4614 8582.1758 -7821.8774 8582.6123 C
-S
--7823.769 8577.9297 m
--7823.354 8578.3682 -7823.1001 8578.9561 -7823.1001 8579.6064 C
--7823.1001 8580.9355 L
--7823.1001 8581.5859 -7823.354 8582.1758 -7823.769 8582.6123 C
-S
--7825.6616 8577.9297 m
--7825.248 8578.3682 -7824.9922 8578.9561 -7824.9922 8579.6064 C
--7824.9922 8580.9355 L
--7824.9922 8581.5859 -7825.248 8582.1758 -7825.6616 8582.6123 C
-S
--7827.5542 8577.9297 m
--7827.1401 8578.3682 -7826.8857 8578.9561 -7826.8857 8579.6064 C
--7826.8857 8580.9355 L
--7826.8857 8581.5859 -7827.1401 8582.1758 -7827.5542 8582.6123 C
-S
--7829.4463 8577.9297 m
--7829.0322 8578.3682 -7828.7769 8578.9561 -7828.7769 8579.6064 C
--7828.7769 8580.9355 L
--7828.7769 8581.5859 -7829.0322 8582.1758 -7829.4463 8582.6123 C
-S
--7831.3374 8577.9297 m
--7830.9258 8578.3682 -7830.6694 8578.9561 -7830.6694 8579.6064 C
--7830.6694 8580.9355 L
--7830.6694 8581.5859 -7830.9258 8582.1758 -7831.3374 8582.6123 C
-S
--7833.231 8577.9297 m
--7832.8159 8578.3682 -7832.563 8578.9561 -7832.563 8579.6064 C
--7832.563 8580.9355 L
--7832.563 8581.5859 -7832.8159 8582.1758 -7833.231 8582.6123 C
-S
--7835.125 8577.9297 m
--7834.7095 8578.3682 -7834.4546 8578.9561 -7834.4546 8579.6064 C
--7834.4546 8580.9355 L
--7834.4546 8581.5859 -7834.7095 8582.1758 -7835.125 8582.6123 C
-S
--7837.0151 8577.9297 m
--7836.6006 8578.3682 -7836.3472 8578.9561 -7836.3472 8579.6064 C
--7836.3472 8580.9355 L
--7836.3472 8581.5859 -7836.6006 8582.1758 -7837.0151 8582.6123 C
-S
--7838.9102 8577.9297 m
--7838.4937 8578.3682 -7838.2407 8578.9561 -7838.2407 8579.6064 C
--7838.2407 8580.9355 L
--7838.2407 8581.5859 -7838.4937 8582.1758 -7838.9102 8582.6123 C
-S
--7840.8022 8577.9297 m
--7840.3872 8578.3682 -7840.1318 8578.9561 -7840.1318 8579.6064 C
--7840.1318 8580.9355 L
--7840.1318 8581.5859 -7840.3872 8582.1758 -7840.8022 8582.6123 C
-S
-0 O
-0.4385 g
-0 J 1 j
--7873.8838 8559.8066 m
--7813.8838 8559.8066 L
--7804.4961 8562.8213 L
--7882.8638 8562.8213 L
--7873.8838 8559.8066 L
-b
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 22)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7876.001 8578.6211 m
--7827.9502 8578.6211 L
--7827.9502 8497.4414 L
--7876.001 8497.4414 L
--7876.001 8578.6211 L
-n
-u
-u
-u
-0 O
-0.7 g
--7869.2202 8497.6914 m
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
-f
-0 R
-0.25 G
-0.5 w
--7834.0034 8498.543 m
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
-S
-0.9 G
--7870.4399 8562.8496 m
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
-S
-1 Ap
-0 O
-0.8 g
-0.25 G
-2 J 2 M
--7838.79 8507.9629 m
--7865.4775 8507.9629 L
--7865.4775 8560.2607 L
--7838.79 8560.2607 L
--7838.79 8507.9629 L
-b
-u
--7838.79 8523.8691 m
--7865.4736 8523.8691 L
--7865.4736 8520.0957 L
--7838.79 8520.0957 L
--7838.79 8523.8691 L
-b
--7838.79 8520.0615 m
--7865.4736 8520.0615 L
--7865.4736 8516.2871 L
--7838.79 8516.2871 L
--7838.79 8520.0615 L
-b
-U
-0 Ap
-0.25 g
-0 J 1 w 4 M
--7842.3818 8509.4375 m
--7843.2319 8509.4375 L
--7862.2729 8509.4375 L
--7862.2729 8510.3271 L
--7855.8018 8510.3271 L
--7855.8018 8510.9629 L
--7848.8486 8510.9629 L
--7848.8486 8510.3271 L
--7842.3818 8510.3271 L
--7842.3818 8509.4375 L
-f
-1 Ap
-0.6 g
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7842.8271 8511.3691 m
--7846.8706 8511.3691 L
--7846.8706 8510.7324 L
--7842.8271 8510.7324 L
--7842.8271 8511.3691 L
-b
-u
-0.8 g
--7840.8057 8514.5547 m
--7863.4463 8514.5547 L
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
--7840.8057 8514.5547 L
-b
--7863.4463 8514.5547 m
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
-S
-0.9 G
--7840.8057 8513.0664 m
--7840.8057 8514.5547 L
--7863.4463 8514.5547 L
-S
-U
-0 O
-0.7 g
-0 J 1 w 4 M
--7841.1318 8515.6172 m
--7845.1743 8515.6172 L
--7845.1743 8514.9805 L
--7841.1318 8514.9805 L
--7841.1318 8515.6172 L
-f
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7841.1318 8514.9805 m
--7841.1318 8515.6172 L
--7845.1743 8515.6172 L
-S
-u
-u
--7861.5903 8500.6797 m
--7861.5903 8503.7402 L
--7866.9287 8503.7402 L
-S
--7861.5903 8503.7393 m
--7861.5903 8506.7578 L
--7866.9287 8506.7578 L
-S
-U
-u
-0.9 G
--7866.9287 8503.7129 m
--7866.9287 8500.6934 L
--7861.5903 8500.6934 L
-S
--7866.9287 8506.7578 m
--7866.9287 8503.7393 L
--7861.5903 8503.7393 L
-S
-U
-U
-u
-u
-0.25 G
--7837.7178 8500.6797 m
--7837.7178 8503.7402 L
--7843.0542 8503.7402 L
-S
--7837.7178 8503.7393 m
--7837.7178 8506.7578 L
--7843.0542 8506.7578 L
-S
-U
-u
-0.9 G
--7843.0542 8503.7129 m
--7843.0542 8500.6934 L
--7837.7178 8500.6934 L
-S
--7843.0542 8506.7578 m
--7843.0542 8503.7393 L
--7837.7178 8503.7393 L
-S
-U
-U
-0 O
-0.8 g
-0 J 1 w 4 M
--7832.144 8564.9395 m
--7872.3799 8564.9395 L
--7870.6865 8562.6406 L
--7833.8359 8562.6406 L
--7832.144 8564.9395 L
-f
-0 R
-0.9 G
-0.5 w
--7870.4072 8562.4785 m
--7872.3799 8564.9395 L
--7869.9111 8564.9395 l
-S
-0.25 G
--7834.083 8562.3672 m
--7832.144 8564.9395 L
--7872.0337 8564.9395 l
-S
-U
-0 Ap
-0.15 G
--7833.8359 8562.6406 m
--7833.874 8562.6406 L
--7834.0034 8562.4727 L
--7834.0034 8498.543 L
--7834.0791 8498.2148 L
--7834.3569 8497.9102 L
--7834.7935 8497.7441 L
--7835.2578 8497.6914 L
--7869.2202 8497.6914 L
--7869.6855 8497.7441 L
--7870.0361 8497.9102 L
--7870.3618 8498.2148 L
--7870.4399 8498.543 L
--7870.4399 8562.5195 L
--7870.5386 8562.6406 L
--7870.6865 8562.6406 L
--7872.3799 8564.9395 L
--7872.0337 8564.9395 L
--7869.9111 8564.9395 L
--7832.144 8564.9395 L
--7833.8359 8562.6406 L
-s
--7870.4399 8562.5195 m
--7833.8359 8562.5195 l
-S
-U
-U
-0 To
-1 0 0 -1 -7851.9761 8576.5957 0 Tp
-0 Tv
-TP
--24.0247 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-36 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(DNS Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 23)
-0 A
-u
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7878.9351 8565.3359 m
--7830.6465 8565.3359 L
--7830.6465 8506.8223 L
--7878.9351 8506.8223 L
--7878.9351 8565.3359 L
-n
-0 O
-0.64 g
--7830.6465 8513.9863 m
--7832.5977 8506.8223 L
--7849.127 8506.8223 L
--7851.001 8513.9863 L
--7858.666 8513.9863 L
--7860.7529 8506.8223 L
--7877.0625 8506.8223 L
--7878.9351 8513.9863 L
--7878.9351 8514.0137 L
--7830.6465 8514.0137 L
--7830.6465 8513.9863 L
-f
-0.92 g
--7878.9351 8514.0137 m
--7878.9351 8565.3164 L
--7870.5898 8565.3164 L
--7870.5898 8561.6152 L
--7870.5386 8561.6152 L
--7870.5386 8514.0137 L
--7878.9351 8514.0137 L
-f
--7830.6465 8514.0137 m
--7838.7871 8514.0137 L
--7838.7871 8565.3359 L
--7830.6465 8565.3359 L
--7830.6465 8514.0137 L
-f
-0.8158 g
--7870.5386 8514.0137 m
--7870.5386 8561.6152 L
--7838.8442 8561.6152 L
--7838.8442 8565.3359 L
--7838.7871 8565.3359 L
--7838.7871 8514.0137 L
--7870.5386 8514.0137 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7858.666 8513.9863 m
--7858.6582 8561.6152 L
-S
--7857.8145 8513.9863 m
--7857.8066 8561.6152 L
-S
--7856.9634 8513.9863 m
--7856.9551 8561.6152 L
-S
--7856.1113 8513.9863 m
--7856.103 8561.6152 L
-S
--7855.2598 8513.9863 m
--7855.252 8561.6152 L
-S
--7854.4082 8513.9863 m
--7854.3999 8561.6152 L
-S
--7853.5566 8513.9863 m
--7853.5488 8561.6152 L
-S
--7853.5718 8513.9863 m
--7853.563 8561.6152 L
-S
--7852.7202 8513.9863 m
--7852.7114 8561.6152 L
-S
--7851.8682 8513.9863 m
--7851.8594 8561.6152 L
-S
--7851.0161 8513.9863 m
--7851.0078 8561.6152 L
-S
-U
-0 To
-1 0 0 -1 -7854.791 8576.5957 0 Tp
-0 Tv
-TP
--21.2094 0 Td
-0 Tr
-0 O
-0 g
-1 w 4 M
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-53.0468 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 4 Tl
-0 Tc
-0 Tw
-(Mainfr) Tx 1 10 Tk
-(ame) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 40)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7835.7114 8586 L
--7835.7114 8500.1016 L
--7884 8500.1016 L
--7884 8586 L
-n
-0 O
-0.64 g
--7835.7114 8507.2656 m
--7837.6626 8500.1016 L
--7854.1919 8500.1016 L
--7856.0654 8507.2656 L
--7863.7305 8507.2656 L
--7865.8174 8500.1016 L
--7882.127 8500.1016 L
--7884 8507.2656 L
--7884 8507.293 L
--7835.7114 8507.293 L
--7835.7114 8507.2656 L
-f
-0.92 g
--7884 8507.293 m
--7884 8585.9805 L
--7875.6543 8585.9805 L
--7875.6543 8582.2793 L
--7875.6025 8582.2793 L
--7875.6025 8507.293 L
--7884 8507.293 L
-f
--7835.7114 8507.293 m
--7843.8511 8507.293 L
--7843.8511 8586 L
--7835.7114 8586 L
--7835.7114 8507.293 L
-f
-0.8158 g
--7875.6025 8507.293 m
--7875.6025 8582.2793 L
--7843.9087 8582.2793 L
--7843.9087 8586 L
--7843.8511 8586 L
--7843.8511 8507.293 L
--7875.6025 8507.293 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7863.7305 8507.2656 m
--7863.7222 8582.2793 L
-S
--7862.8794 8507.2656 m
--7862.8711 8582.2793 L
-S
--7862.0273 8507.2656 m
--7862.019 8582.2793 L
-S
--7861.1758 8507.2656 m
--7861.168 8582.2793 L
-S
--7860.3242 8507.2656 m
--7860.3169 8582.2793 L
-S
--7859.4727 8507.2656 m
--7859.4648 8582.2793 L
-S
--7858.6206 8507.2656 m
--7858.6138 8582.2793 L
-S
--7858.6362 8507.2656 m
--7858.6279 8582.2793 L
-S
--7857.7842 8507.2656 m
--7857.7754 8582.2793 L
-S
--7856.9326 8507.2656 m
--7856.9238 8582.2793 L
-S
--7856.0801 8507.2656 m
--7856.0718 8582.2793 L
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 43)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.749 8585.8232 m
--7870.9414 8585.8232 L
--7870.9414 8557.1563 L
--7883.749 8557.1563 L
--7883.749 8585.8232 L
-n
-0 O
-0.3 g
--7870.9414 8574.5498 m
--7875.1558 8563.2031 L
--7875.3862 8562.5801 -7876.0439 8562.2598 -7876.6719 8562.4141 C
--7876.8018 8562.3506 -7876.9473 8562.3359 -7877.0889 8562.3164 C
--7875.771 8562.1797 -7874.7358 8561.1084 -7874.7358 8559.7627 c
--7874.7358 8558.3184 -7875.9009 8557.1563 -7877.3447 8557.1563 c
--7878.7842 8557.1563 -7879.9482 8558.3184 -7879.9482 8559.7627 c
--7879.9482 8561.1084 -7878.916 8562.1797 -7877.6016 8562.3164 C
--7877.7441 8562.3359 -7877.8809 8562.3506 -7878.0186 8562.4141 C
--7878.645 8562.2598 -7879.3018 8562.5801 -7879.5313 8563.2031 C
--7883.749 8574.5498 L
--7884 8575.2168 -7883.6543 8575.9688 -7882.9834 8576.2188 c
--7882.313 8576.4658 -7881.5664 8576.123 -7881.3193 8575.4531 C
--7880.1289 8572.2441 L
--7880.0054 8572.6758 -7879.876 8573.0762 -7879.7119 8573.4385 C
--7882.4902 8584.2402 L
--7882.668 8584.9375 -7882.252 8585.6416 -7881.5586 8585.8232 c
--7880.8657 8586 -7880.1626 8585.583 -7879.9766 8584.8867 C
--7877.5918 8575.5967 L
--7877.5049 8575.6084 -7877.4282 8575.6494 -7877.3447 8575.6494 c
--7877.2617 8575.6494 -7877.1855 8575.6084 -7877.0991 8575.5967 C
--7874.7129 8584.8867 L
--7874.5303 8585.583 -7873.8242 8586 -7873.1318 8585.8232 c
--7872.4385 8585.6416 -7872.0215 8584.9375 -7872.1978 8584.2402 C
--7874.9766 8573.4385 L
--7874.8154 8573.0762 -7874.6846 8572.6758 -7874.5625 8572.2441 C
--7873.3711 8575.4531 L
--7873.125 8576.123 -7872.3799 8576.4658 -7871.707 8576.2188 c
--7871.0391 8575.9688 -7870.6914 8575.2168 -7870.9414 8574.5498 C
-f
-U
-%AI8_EndBrushPattern
-%AI5_End_NonPrinting--
-%AI5_BeginPalette
-0 0 Pb
-1 1 1 1 ([Registration]) 0 Xs
-([Registration]) Pc
-0 0 0 0.15 (15%) 0 0 Xk
-(15%) Pc
-0 0 0 0.3 (30%) 0 0 Xk
-(30%) Pc
-0 0 0 0.5 (50%) 0 0 Xk
-(50%) Pc
-0 0 0 0.75 (75%) 0 0 Xk
-(75%) Pc
-(horizontal rules) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(horizontal rules) Pc
-(bi-direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(bi-direction diagonals) Pc
-(one direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(one direction diagonals) Pc
-(white dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(white dots) Pc
-(black dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(black dots) Pc
-PB
-%AI5_EndPalette
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginPluginObject
-(Adobe Brush Manager Order)
-(Adobe Brush Manager Order)
-( Adobe Scatter Brush Tool/ Scatter Brush 1/ Adobe Scatter Brush Tool/ ) -
-(Mainframe/ Adobe Scatter Brush Tool/ Client/ Adobe Scatter Brush Tool/) -
-( person/ Adobe Scatter Brush Tool/ Print spooler/ Adobe Scatter Brush ) -
-(Tool/ Folders/ Adobe Scatter Brush Tool/ Printer/ Adobe Scatter Brush ) -
-(Tool/ Client 1/ Adobe Scatter Brush Tool/ Mainframe 1/ Adobe Scatter B) -
-(rush Tool/ Fax server/) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client 1)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Fax server)
-(1 /New Pattern 21/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Folders)
-(1 /New Pattern 9/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe)
-(1 /New Pattern 23/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe 1)
-(1 /New Pattern 40/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(person)
-(1 /New Pattern 43/ 0 0.701961 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Print spooler)
-(1 /New Pattern 2/ 0 0.854902 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Printer)
-(1 /New Pattern 10/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Scatter Brush 1)
-(1 /New Pattern 22/ 0 0.2 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_PluginGroupInfo
-(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends)
-%AI8_PluginGroupInfo
-(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool)
-%AI5_End_NonPrinting--
-%%EndSetup
-%AI5_BeginLayer
-1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
-(Layer 1) Ln
-0 A
-0 R
-0 G
-800 Ar
-0 J 0 j 0.5 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-272.4243 340.377 m
-S
-1 Ap
-0 O
-0.95 g
-1 XR
-501.71 169.1504 m
-153.71 169.1504 L
-153.71 589.1504 L
-501.71 589.1504 L
-501.71 169.1504 L
-(b) *
-0 To
-1 0 0 1 236.4463 332.1426 0 Tp
-0 Tv
-TP
--14.7797 0 Td
-0 Tr
-0 g
-1 w
-0 XR
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(P) Tx 1 40 Tk
-(ar) Tx 1 10 Tk
-(allel\r) Tx 1 0 Tk
-3.1148 -11 Td
-(Cab) Tx 1 20 Tk
-(le) Tx 1 0 Tk
-(\r) TX
-TO
-0 Ap
-0 R
-0 G
-0.5 w
-184.8491 350.9229 m
-197.9233 350.9199 210.9907 351.3887 224.0674 351.2979 c
-227.6689 351.2725 249.1094 354.4385 250.6377 348.4697 c
-251.6982 344.3271 238.7969 344.8301 237.2236 340.9258 C
-241.8062 337.6826 254.5508 340.2188 259.3149 340.2549 c
-269.4844 340.3301 276.6069 336.6514 289.0425 336.8418 c
-301.478 337.0322 301.6904 338.085 308.3408 338.8457 c
-314.9912 339.6064 341.1025 338.8457 345.5137 338.8457 c
-349.9248 338.8457 349.9688 333.9688 Y
-349.9629 333.9727 L
-349.9629 330.7295 349.9629 278.8408 y
-368.3398 266.2295 l
-S
-u
-%_385.5439 280.833 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-385.5439 280.833 m
-N
-u
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.25 w 2 M
-397.0293 272.0547 m
-397.0293 273.0645 l
-393.8486 274.7803 l
-385.5723 274.7803 L
-377.2959 274.7803 l
-374.0146 273.0645 l
-374.0146 272.0547 l
-397.0293 272.0547 l
-b
-0.8748 G
-2 J 0 j
-385.5723 274.7803 m
-377.2959 274.7803 l
-374.0146 273.0645 l
-374.0146 272.0547 l
-S
-397.0293 273.0645 m
-393.8486 274.7803 l
-385.5723 274.7803 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-377.3457 274.1738 m
-375.3271 273.0645 l
-395.6152 273.0645 l
-393.8994 274.1738 l
-377.3457 274.1738 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-379.9521 276.2285 m
-381.0918 276.25 L
-385.6426 277.0332 L
-390.2832 276.25 L
-391.1807 276.25 L
-391.1504 275.3281 L
-379.9521 275.3281 L
-379.9521 276.2285 L
-f
-0 R
-0.25 G
-0.25 w
-391.166 276.2285 m
-391.1201 275.3281 L
-379.9365 275.3281 L
-S
-0.9 G
-390.2666 276.2285 m
-391.166 276.2285 L
-S
-0.25 G
-385.6133 277.0332 m
-390.2666 276.2285 L
-S
-0.9 G
-379.9365 275.3281 m
-379.9365 276.2285 L
-381.0635 276.2285 L
-385.6133 277.0332 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-378.8311 277.7656 m
-383.4795 277.7891 L
-385.6592 278.6523 L
-387.9482 277.7891 L
-392.3047 277.7891 L
-392.2686 276.7764 L
-378.8311 276.7764 L
-378.8311 277.7656 L
-f
-0 R
-0.25 G
-0.25 w
-392.2881 277.7656 m
-392.2324 276.7764 L
-378.8135 276.7764 L
-S
-0.9 G
-387.9268 277.7656 m
-392.2881 277.7656 L
-S
-0.25 G
-385.624 278.6523 m
-387.9268 277.7656 L
-S
-0.9 G
-378.8135 276.7764 m
-378.8135 277.7656 L
-383.4443 277.7656 L
-385.624 278.6523 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-378.0732 278.1797 m
-378.0693 289.1133 l
-378.5615 289.6113 L
-392.5498 289.5977 L
-393.0186 289.0293 L
-393.0186 278.3223 L
-392.6143 277.752 L
-378.4971 277.752 l
-378.0732 278.1797 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-378.4971 277.752 m
-378.0732 278.1797 L
-378.0693 289.1133 l
-378.5615 289.6113 L
-392.5498 289.5977 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-391.5029 279.1953 m
-391.5127 288.1738 L
-379.5654 288.1738 L
-379.5645 279.1973 L
-391.5029 279.1953 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-393.8486 274.7803 m
-385.5723 274.7803 L
-377.2959 274.7803 L
-374.0146 273.0645 L
-374.0146 272.0547 L
-397.0293 272.0547 L
-397.0293 273.0645 L
-393.8486 274.7803 L
-s
-378.4971 277.752 m
-378.8135 277.752 L
-378.8135 276.7764 L
-378.8311 276.7813 L
-378.8311 276.7773 L
-378.8135 276.7764 L
-378.8311 276.7764 L
-384.1494 276.7764 L
-381.0918 276.25 L
-379.9521 276.2285 L
-379.9365 276.2285 L
-379.9365 275.3281 L
-379.9521 275.334 L
-379.9521 275.3301 L
-379.9365 275.3281 L
-379.9521 275.3281 L
-391.1201 275.3281 L
-391.1504 275.3281 L
-391.1807 276.25 L
-390.2832 276.25 L
-387.165 276.7764 L
-392.2324 276.7764 L
-392.2686 276.7764 L
-392.3037 277.752 L
-392.6143 277.752 L
-393.0186 278.3223 L
-393.0186 289.0293 L
-392.5498 289.5977 L
-378.5615 289.6113 L
-378.0693 289.1133 L
-378.0732 278.1797 L
-378.4971 277.752 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000000F36436C69656E742031
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 291.1274 326.3594 0 Tp
-0 Tv
-TP
--21.8418 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Pr) Tx 1 -15 Tk
-(intser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 415.3008 280.3564 0 Tp
-0 Tv
-TP
--8.5004 0 Td
-0 Tr
-(PCs) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 176.1445 369.5293 0 Tp
-0 Tv
-TP
--12.7793 0 Td
-0 Tr
--20 Tt
--0.18 Tc
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_1 g
-%_0 R
-%_0.67 G
-%_1 M
-%_184.939 348.2959 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-1 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-184.939 348.2959 m
-F
-u
-0.8 g
-198.6704 339.2217 m
-218.7153 346.0791 l
-217.1348 348.9805 l
-204.4736 345.0244 l
-198.4072 348.9805 l
-198.6704 339.2217 l
-f
-0 R
-0.9 G
-0.5 w
-217.4067 349.1064 m
-204.4736 345.0244 l
-S
-0.5 G
-218.7153 346.0791 m
-217.1348 348.9805 l
-S
-0.25 G
-198.6704 339.2217 m
-218.7153 346.0791 l
-S
-0.5 G
-204.4736 345.0244 m
-198.4072 348.9805 l
-S
-0 O
-0.8 g
-1 w
-178.626 356.6309 m
-190.7568 361.9053 l
-194.1865 357.6865 l
-178.626 356.6309 l
-f
-1 Ap
-0.57 g
-198.9341 337.376 m
-152.5137 337.376 L
-152.5137 334.4756 L
-198.9341 334.4756 L
-198.9341 337.376 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-190.7568 361.9053 m
-194.1865 357.6865 l
-S
-0.9 G
-178.626 356.6309 m
-191.3188 362.1826 l
-S
-0 O
-0.8 g
-1 w
-151.1929 358.668 m
-151.1929 337.3447 l
-199.9893 337.3447 l
-199.9893 354.5186 l
-196.5601 358.6084 l
-151.1929 358.668 l
-f
-0 R
-0.5 G
-0.5 w
-151.1929 342.9141 m
-199.9893 342.9141 l
-S
-154.0952 355.3115 m
-163.5913 355.3115 l
-S
-154.0952 353.6631 m
-163.5913 353.6631 l
-S
-154.0952 352.0156 m
-163.5913 352.0156 l
-S
-154.0952 350.3672 m
-163.5913 350.3672 l
-S
-154.0952 348.7197 m
-163.5913 348.7197 l
-S
-199.9893 354.5186 m
-196.5601 358.6084 l
-S
-0.25 G
-151.1929 337.3447 m
-199.9893 337.3447 l
-199.9893 354.5186 l
-S
-0.9 G
-196.5601 358.6377 m
-151.1929 358.6377 l
-151.1929 337.0752 l
-S
-0.25 G
-198.9341 337.3447 m
-198.9341 334.4307 l
-152.5225 334.4307 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000007995072696E746572
-/Adobe_Brushed_Path () XT
-0 G
-349.9629 291.9287 m
-368.3398 279.3174 l
-S
-349.9629 305.0166 m
-368.3398 292.4053 l
-S
-0 O
-0 g
-0.25 w
-307.4824 346.4248 m
-B
-0.8158 g
-286.1353 350.4033 m
-B
-0.4385 g
-285.9966 380.4932 m
-B
-0 To
-1 0 0 1 366.6016 387.9482 0 Tp
-0 Tv
-TP
--19.7722 0 Td
-0 Tr
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Fileser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_0 R
-%_0 G
-%_0.65 w
-%_366.2129 373.4551 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-366.2129 373.4551 m
-N
-u
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.325 w 3.8636 M
-340.7441 379.7061 m
-391.6836 379.7061 L
-391.6836 370.5508 L
-340.7441 370.5508 L
-340.7441 379.7061 L
-b
-366.2148 375.1279 m
-B
-U
-u
-342.3311 370.5508 m
-390.0957 370.5508 L
-391.0469 370.5508 391.8145 369.7803 391.8145 368.832 c
-391.8145 367.8926 L
-391.8145 366.9424 391.0469 366.1729 390.0957 366.1729 c
-342.3311 366.1729 L
-341.3818 366.1729 340.6113 366.9424 340.6113 367.8926 c
-340.6113 368.832 L
-340.6113 369.7803 341.3818 370.5508 342.3311 370.5508 c
-342.3311 370.5508 L
-b
-366.2139 368.3604 m
-B
-U
-0 g
-343.6631 366.1729 m
-346.582 366.1729 L
-346.0508 365.2451 L
-344.3926 365.2451 L
-343.6631 366.1729 L
-b
-385.3164 366.1729 m
-388.2344 366.1729 L
-387.7031 365.2451 L
-386.0449 365.2451 L
-385.3164 366.1729 L
-b
-0.61 G
-0.65 w
-345.2539 379.6826 m
-345.2539 372.1211 L
-S
-346.582 379.6826 m
-346.582 372.1211 L
-S
-u
-0 O
-0 g
-0 G
-0.325 w
-377.2246 377.1846 m
-386.1113 377.1846 L
-386.1113 375.7236 L
-377.2246 375.7236 L
-377.2246 377.1846 L
-b
-381.668 376.4541 m
-B
-U
-1 J
-385.3066 369.8848 m
-385.5771 369.6006 385.7422 369.2178 385.7422 368.7949 C
-385.7422 367.9307 L
-385.7422 367.5088 385.5771 367.125 385.3066 366.8408 C
-S
-384.0781 369.8848 m
-384.3457 369.6006 384.5117 369.2178 384.5117 368.7949 C
-384.5117 367.9307 L
-384.5117 367.5088 384.3457 367.125 384.0781 366.8408 C
-S
-382.8467 369.8848 m
-383.1172 369.6006 383.2822 369.2178 383.2822 368.7949 C
-383.2822 367.9307 L
-383.2822 367.5088 383.1172 367.125 382.8467 366.8408 C
-S
-381.6172 369.8848 m
-381.8857 369.6006 382.0527 369.2178 382.0527 368.7949 C
-382.0527 367.9307 L
-382.0527 367.5088 381.8857 367.125 381.6172 366.8408 C
-S
-380.3857 369.8848 m
-380.6563 369.6006 380.8223 369.2178 380.8223 368.7949 C
-380.8223 367.9307 L
-380.8223 367.5088 380.6563 367.125 380.3857 366.8408 C
-S
-379.1563 369.8848 m
-379.4258 369.6006 379.5918 369.2178 379.5918 368.7949 C
-379.5918 367.9307 L
-379.5918 367.5088 379.4258 367.125 379.1563 366.8408 C
-S
-377.9258 369.8848 m
-378.1953 369.6006 378.3613 369.2178 378.3613 368.7949 C
-378.3613 367.9307 L
-378.3613 367.5088 378.1953 367.125 377.9258 366.8408 C
-S
-376.6953 369.8848 m
-376.9648 369.6006 377.1309 369.2178 377.1309 368.7949 C
-377.1309 367.9307 L
-377.1309 367.5088 376.9648 367.125 376.6953 366.8408 C
-S
-375.4658 369.8848 m
-375.7354 369.6006 375.9014 369.2178 375.9014 368.7949 C
-375.9014 367.9307 L
-375.9014 367.5088 375.7354 367.125 375.4658 366.8408 C
-S
-374.2363 369.8848 m
-374.5039 369.6006 374.6709 369.2178 374.6709 368.7949 C
-374.6709 367.9307 L
-374.6709 367.5088 374.5039 367.125 374.2363 366.8408 C
-S
-373.0059 369.8848 m
-373.2754 369.6006 373.4404 369.2178 373.4404 368.7949 C
-373.4404 367.9307 L
-373.4404 367.5088 373.2754 367.125 373.0059 366.8408 C
-S
-371.7754 369.8848 m
-372.0449 369.6006 372.2109 369.2178 372.2109 368.7949 C
-372.2109 367.9307 L
-372.2109 367.5088 372.0449 367.125 371.7754 366.8408 C
-S
-370.5469 369.8848 m
-370.8164 369.6006 370.9805 369.2178 370.9805 368.7949 C
-370.9805 367.9307 L
-370.9805 367.5088 370.8164 367.125 370.5469 366.8408 C
-S
-369.3145 369.8848 m
-369.5859 369.6006 369.75 369.2178 369.75 368.7949 C
-369.75 367.9307 L
-369.75 367.5088 369.5859 367.125 369.3145 366.8408 C
-S
-368.084 369.8848 m
-368.3545 369.6006 368.5205 369.2178 368.5205 368.7949 C
-368.5205 367.9307 L
-368.5205 367.5088 368.3545 367.125 368.084 366.8408 C
-S
-0 O
-0.4385 g
-0 J 1 j
-346.582 381.665 m
-385.582 381.665 L
-391.6836 379.7061 L
-340.7441 379.7061 L
-346.582 381.665 L
-b
-U
-U
-(Adobe Scatter Brush Tool) 1 0 58 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000041C646617820736572766572
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 371.0703 322.457 0 Tp
-0 Tv
-TP
--16.5244 0 Td
-0 Tr
-0 g
-0 j 1 w 4 M
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Netw) Tx 1 10 Tk
-(or) Tx 1 -15 Tk
-(k) Tx 1 0 Tk
-(\r) TX
-TO
-0 R
-0 G
-0.5 w
-340.6094 374.2686 m
-330.7031 374.2686 l
-330.7031 338.8955 l
-S
-1 Ap
-0 O
-0.8158 g
-0.325 w 3.8636 M
-306.7998 332.9063 m
-271.2852 332.9063 L
-271.2852 340.7783 L
-306.7998 340.7783 L
-306.7998 332.9063 L
-b
-302.9561 334.9072 m
-275.1289 334.9072 L
-275.1289 338.7764 L
-302.9561 338.7764 L
-302.9561 334.9072 L
-b
-LB
-%AI5_EndLayer--
-%%PageTrailer
-gsave annotatepage grestore showpage
-%%Trailer
-Adobe_Illustrator_AI5 /terminate get exec
-Adobe_shading_AI8 /terminate get exec
-Adobe_ColorImage_AI6 /terminate get exec
-Adobe_typography_AI5 /terminate get exec
-Adobe_cshow /terminate get exec
-Adobe_level2_AI5 /terminate get exec
-%%EOF
diff --git a/en_US.ISO8859-1/books/corp-net-guide/08-04.eps b/en_US.ISO8859-1/books/corp-net-guide/08-04.eps
deleted file mode 100644
index 5f3905ade9..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/08-04.eps
+++ /dev/null
@@ -1,8386 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: Adobe Illustrator(R) 8.0
-%%AI8_CreatorVersion: 8.0.1
-%%For: (Mark G Bergeron) (PD&PS)
-%%Title: (08-04 3594)
-%%CreationDate: (10/10/00) (1:28 PM)
-%%BoundingBox: 150 267 366 405
-%%HiResBoundingBox: 150.9429 267.4053 365.0137 404.0498
-%%DocumentProcessColors: Black
-%%DocumentFonts: Helvetica
-%%DocumentNeededFonts: Helvetica
-%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
-%%+ procset Adobe_typography_AI5 1.0 1
-%%+ procset Adobe_ColorImage_AI6 1.3 0
-%%+ procset Adobe_Illustrator_AI5 1.3 0
-%%+ procset Adobe_cshow 2.0 8
-%%+ procset Adobe_shading_AI8 1.0 0
-%AI5_FileFormat 4.0
-%AI3_ColorUsage: Black&White
-%AI3_IncludePlacedImages
-%AI7_ImageSettings: 1
-%%CMYKProcessColor: 0 0 0 0.15 (15%)
-%%+ 0 0 0 0.3 (30%)
-%%+ 0 0 0 0.5 (50%)
-%%+ 0 0 0 0.75 (75%)
-%%+ 1 1 1 1 ([Registration])
-%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
-%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4
-%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ()
-%AI3_TemplateBox: 306.5 395.5 306.5 395.5
-%AI3_TileBox: 12 14 600 782
-%AI3_DocumentPreview: Macintosh_ColorPic
-%AI5_ArtSize: 612 792
-%AI5_RulerUnits: 3
-%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0
-%AI5_TargetResolution: 800
-%AI5_NumLayers: 1
-%AI8_OpenToView: 262.5698 429.7842 7.4643 1060 751 18 0 1 7 40 0 0
-%AI5_OpenViewLayers: 7
-%%PageOrigin:12 14
-%%AI3_PaperRect:-12 782 600 -10
-%%AI3_Margin:12 -14 -12 10
-%AI7_GridSettings: 12 3 12 3 1 0 0.29 1 1 0.65 1 1
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Adobe_level2_AI5 1.2 0
-%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
-%%Version: 1.2 0
-%%CreationDate: (04/10/93) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-userdict /Adobe_level2_AI5 26 dict dup begin
- put
- /packedarray where not
- {
- userdict begin
- /packedarray
- {
- array astore readonly
- } bind def
- /setpacking /pop load def
- /currentpacking false def
- end
- 0
- } if
- pop
- userdict /defaultpacking currentpacking put true setpacking
- /initialize
- {
- Adobe_level2_AI5 begin
- } bind def
- /terminate
- {
- currentdict Adobe_level2_AI5 eq
- {
- end
- } if
- } bind def
- mark
- /setcustomcolor where not
- {
- /findcmykcustomcolor
- {
- (AI8_CMYK_CustomColor)
- 6 packedarray
- } bind def
- /findrgbcustomcolor
- {
- (AI8_RGB_CustomColor)
- 5 packedarray
- } bind def
- /setcustomcolor
- {
- exch
- aload pop dup
- (AI8_CMYK_CustomColor) eq
- {
- pop pop
- 4
- {
- 4 index mul
- 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- }
- {
- dup (AI8_RGB_CustomColor) eq
- {
- pop pop
- 3
- {
- 1 exch sub
- 3 index mul
- 1 exch sub
- 3 1 roll
- } repeat
- 4 -1 roll pop
- setrgbcolor
- }
- {
- pop
- 4
- {
- 4 index mul 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- } ifelse
- } ifelse
- }
- def
- } if
- /setAIseparationgray
- {
- false setoverprint
- 0 setgray
- /setseparationgray where{
- pop setseparationgray
- }{
- /setcolorspace where{
- pop
- [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
- 1 exch sub setcolor
- }{
- setgray
- }ifelse
- }ifelse
- } def
-
- /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
- userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
- userdict /level2?
- systemdict /languagelevel known dup
- {
- pop systemdict /languagelevel get 2 ge
- } if
- put
-/level2ScreenFreq
-{
- begin
- 60
- HalftoneType 1 eq
- {
- pop Frequency
- } if
- HalftoneType 2 eq
- {
- pop GrayFrequency
- } if
- HalftoneType 5 eq
- {
- pop Default level2ScreenFreq
- } if
- end
-} bind def
-userdict /currentScreenFreq
- level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
-level2? not
- {
- /setcmykcolor where not
- {
- /setcmykcolor
- {
- exch .11 mul add exch .59 mul add exch .3 mul add
- 1 exch sub setgray
- } def
- } if
- /currentcmykcolor where not
- {
- /currentcmykcolor
- {
- 0 0 0 1 currentgray sub
- } def
- } if
- /setoverprint where not
- {
- /setoverprint /pop load def
- } if
- /selectfont where not
- {
- /selectfont
- {
- exch findfont exch
- dup type /arraytype eq
- {
- makefont
- }
- {
- scalefont
- } ifelse
- setfont
- } bind def
- } if
- /cshow where not
- {
- /cshow
- {
- [
- 0 0 5 -1 roll aload pop
- ] cvx bind forall
- } bind def
- } if
- } if
- cleartomark
- /anyColor?
- {
- add add add 0 ne
- } bind def
- /testColor
- {
- gsave
- setcmykcolor currentcmykcolor
- grestore
- } bind def
- /testCMYKColorThrough
- {
- testColor anyColor?
- } bind def
- userdict /composite?
- 1 0 0 0 testCMYKColorThrough
- 0 1 0 0 testCMYKColorThrough
- 0 0 1 0 testCMYKColorThrough
- 0 0 0 1 testCMYKColorThrough
- and and and
- put
- composite? not
- {
- userdict begin
- gsave
- /cyan? 1 0 0 0 testCMYKColorThrough def
- /magenta? 0 1 0 0 testCMYKColorThrough def
- /yellow? 0 0 1 0 testCMYKColorThrough def
- /black? 0 0 0 1 testCMYKColorThrough def
- grestore
- /isCMYKSep? cyan? magenta? yellow? black? or or or def
- /customColor? isCMYKSep? not def
- end
- } if
- end defaultpacking setpacking
-%%EndResource
-%%BeginResource: procset Adobe_typography_AI5 1.0 1
-%%Title: (Typography Operators)
-%%Version: 1.0 1
-%%CreationDate:(6/10/1996) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_typography_AI5 68 dict dup begin
-put
-/initialize
-{
- begin
- begin
- Adobe_typography_AI5 begin
- Adobe_typography_AI5
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- end
- end
- Adobe_typography_AI5 begin
-} def
-/terminate
-{
- currentdict Adobe_typography_AI5 eq
- {
- end
- } if
-} def
-/modifyEncoding
-{
- /_tempEncode exch ddef
- /_pntr 0 ddef
- {
- counttomark -1 roll
- dup type dup /marktype eq
- {
- pop pop exit
- }
- {
- /nametype eq
- {
- _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
- put
- }
- {
- /_pntr exch ddef
- } ifelse
- } ifelse
- } loop
- _tempEncode
-} def
-/havefont
-{
- systemdict /languagelevel known
- {
- /Font resourcestatus dup
- { exch pop exch pop }
- if
- }
- {
- systemdict /FontDirectory get 1 index known
- { pop true }
- {
- systemdict /fileposition known
- {
- dup length 6 add exch
- Ss 6 250 getinterval
- cvs pop
- Ss exch 0 exch getinterval
- status
- { pop pop pop pop true }
- { false }
- ifelse
- }
- {
- pop false
- }
- ifelse
- }
- ifelse
- }
- ifelse
-} def
-/TE
-{
- StandardEncoding 256 array copy modifyEncoding
- /_nativeEncoding exch def
-} def
-/subststring {
- exch 2 index exch search
- {
- exch pop
- exch dup () eq
- {
- pop exch concatstring
- }
- {
- 3 -1 roll
- exch concatstring
- concatstring
- } ifelse
- exch pop true
- }
- {
- pop pop false
- } ifelse
-} def
-/concatstring {
- 1 index length 1 index length
- 1 index add
- string
- dup 0 5 index putinterval
- dup 2 index 4 index putinterval
- 4 1 roll pop pop pop
-} def
-%
-/TZ
-{
- dup type /arraytype eq
- {
- /_wv exch def
- }
- {
- /_wv 0 def
- } ifelse
- /_useNativeEncoding exch def
- 2 index havefont
- {
- 3 index
- 255 string
- cvs
-
- dup
- (_Symbol_)
- eq
- {
- pop
- 2 index
- findfont
-
- }
- {
- 1 index 0 eq
- {
- dup length 1 sub
- 1 exch
- getinterval
-
- cvn
- findfont
- }
- {
- pop 2 index findfont
- } ifelse
- } ifelse
- }
- {
- dup 1 eq
- {
- 2 index 64 string cvs
- dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop dup
- (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop pop true
- } ifelse
- } ifelse
- {
- 1 index 1 eq
- {
- /Ryumin-Light-Ext-RKSJ-V havefont
- {/Ryumin-Light-Ext-RKSJ-V}
- {/Courier}
- ifelse
- }
- {
- /Ryumin-Light-83pv-RKSJ-H havefont
- {/Ryumin-Light-83pv-RKSJ-H}
- {/Courier}
- ifelse
- } ifelse
- findfont
- [1 0 0.5 1 0 0] makefont
- } if
- }
- {
- /Courier findfont
- } ifelse
- } ifelse
- _wv type /arraytype eq
- {
- _wv makeblendedfont
- } if
- dup length 10 add dict
- begin
- mark exch
- {
- 1 index /FID ne
- {
- def
- } if
- cleartomark mark
- } forall
- pop
- /FontScript exch def
- /FontDirection exch def
- /FontRequest exch def
- /FontName exch def
- counttomark 0 eq
- {
- 1 _useNativeEncoding eq
- {
- /Encoding _nativeEncoding def
- } if
- cleartomark
- }
- {
- /Encoding load 256 array copy
- modifyEncoding /Encoding exch def
- } ifelse
- FontName currentdict
- end
- definefont pop
-} def
-/tr
-{
- _ax _ay 3 2 roll
-} def
-/trj
-{
- _cx _cy _sp _ax _ay 6 5 roll
-} def
-/a0
-{
- /Tx
- {
- dup
- currentpoint 3 2 roll
- tr _psf
- newpath moveto
- tr _ctm _pss
- } ddef
- /Tj
- {
- dup
- currentpoint 3 2 roll
- trj _pjsf
- newpath moveto
- trj _ctm _pjss
- } ddef
-} def
-/a1
-{
-W B
-} def
-/e0
-{
- /Tx
- {
- tr _psf
- } ddef
- /Tj
- {
- trj _pjsf
- } ddef
-} def
-/e1
-{
-W F
-} def
-/i0
-{
- /Tx
- {
- tr sp
- } ddef
- /Tj
- {
- trj jsp
- } ddef
-} def
-/i1
-{
- W N
-} def
-/o0
-{
- /Tx
- {
- tr sw rmoveto
- } ddef
- /Tj
- {
- trj swj rmoveto
- } ddef
-} def
-/r0
-{
- /Tx
- {
- tr _ctm _pss
- } ddef
- /Tj
- {
- trj _ctm _pjss
- } ddef
-} def
-/r1
-{
-W S
-} def
-/To
-{
- pop _ctm currentmatrix pop
-} def
-/TO
-{
- iTe _ctm setmatrix newpath
-} def
-/Tp
-{
- pop _tm astore pop _ctm setmatrix
- _tDict begin
- /W
- {
- } def
- /h
- {
- } def
-} def
-/TP
-{
- end
- iTm 0 0 moveto
-} def
-/Tr
-{
- _render 3 le
- {
- currentpoint newpath moveto
- } if
- dup 8 eq
- {
- pop 0
- }
- {
- dup 9 eq
- {
- pop 1
- } if
- } ifelse
- dup /_render exch ddef
- _renderStart exch get load exec
-} def
-/iTm
-{
- _ctm setmatrix _tm concat
- _shift aload pop _lineorientation 1 eq { exch } if translate
- _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
-} def
-/Tm
-{
- _tm astore pop iTm 0 0 moveto
-} def
-/Td
-{
- _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
-} def
-/iTe
-{
- _render -1 eq
- {
- }
- {
- _renderEnd _render get dup null ne
- {
- load exec
- }
- {
- pop
- } ifelse
- } ifelse
- /_render -1 ddef
-} def
-/Ta
-{
- pop
-} def
-/Tf
-{
- 1 index type /nametype eq
- {
- dup 0.75 mul 1 index 0.25 mul neg
- } if
- /_fontDescent exch ddef
- /_fontAscent exch ddef
- /_fontSize exch ddef
- /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
- /_fontHeight _fontSize ddef
- findfont _fontSize scalefont setfont
-} def
-/Tl
-{
- pop neg 0 exch
- _leading astore pop
-} def
-/Tt
-{
- pop
-} def
-/TW
-{
- 3 npop
-} def
-/Tw
-{
- /_cx exch ddef
-} def
-/TC
-{
- 3 npop
-} def
-/Tc
-{
- /_ax exch ddef
-} def
-/Ts
-{
- 0 exch
- _shift astore pop
- currentpoint
- iTm
- moveto
-} def
-/Ti
-{
- 3 npop
-} def
-/Tz
-{
- count 1 eq { 100 } if
- 100 div exch 100 div exch
- _scale astore pop
- iTm
-} def
-/TA
-{
- pop
-} def
-/Tq
-{
- pop
-} def
-/Tg
-{
- pop
-} def
-/TG
-{
- pop
-} def
-/Tv
-{
- /_lineorientation exch ddef
-} def
-/TV
-{
- /_charorientation exch ddef
-} def
-/Ty
-{
- dup /_yokoorientation exch ddef 1 sub neg Tv
-} def
-/TY
-{
- pop
-} def
-/T~
-{
- Tx
-} def
-/Th
-{
- pop pop pop pop pop
-} def
-/TX
-{
- pop
-} def
-/Tk
-{
- _fontSize mul 1000 div
- _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
- rmoveto
- pop
-} def
-/TK
-{
- 2 npop
-} def
-/T*
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- Td
-} def
-/T*-
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- exch neg exch neg
- Td
-} def
-/T-
-{
- _ax neg 0 rmoveto
- _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
-} def
-/T+
-{
-} def
-/TR
-{
- _ctm currentmatrix pop
- _tm astore pop
- iTm 0 0 moveto
-} def
-/TS
-{
- currentfont 3 1 roll
- /_Symbol_ findfont _fontSize scalefont setfont
-
- 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- setfont
-} def
-/Xb
-{
- pop pop
-} def
-/Tb /Xb load def
-/Xe
-{
- pop pop pop pop
-} def
-/Te /Xe load def
-/XB
-{
-} def
-/TB /XB load def
-currentdict readonly pop
-end
-setpacking
-%
-/X^
-{
- currentfont 5 1 roll
- dup havefont
- {
- findfont _fontSize scalefont setfont
- }
- {
- pop
- exch
- } ifelse
- 2 index 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- pop pop
- setfont
-} def
-/T^ /X^ load def
-%%EndResource
-%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
-userdict /Adobe_ColorImage_AI6 known not
-{
- userdict /Adobe_ColorImage_AI6 53 dict put
-} if
-userdict /Adobe_ColorImage_AI6 get begin
-/initialize {
- Adobe_ColorImage_AI6 begin
- Adobe_ColorImage_AI6 {
- dup type /arraytype eq {
- dup xcheck {
- bind
- } if
- } if
- pop pop
- } forall
-} def
-/terminate { end } def
-currentdict /Adobe_ColorImage_AI6_Vars known not {
- /Adobe_ColorImage_AI6_Vars 41 dict def
-} if
-Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /_newproc null def
- /_proc1 null def
- /_proc2 null def
- /sourcearray 4 array def
- /_ptispace null def
- /_ptiname null def
- /_pti0 0 def
- /_pti1 0 def
- /_ptiproc null def
- /_ptiscale 0 def
- /_pticomps 0 def
- /_ptibuf 0 string def
- /_gtigray 0 def
- /_cticmyk null def
- /_rtirgb null def
- /XIEnable true def
- /XIType 0 def
- /XIEncoding 0 def
- /XICompression 0 def
- /XIChannelCount 0 def
- /XIBitsPerPixel 0 def
- /XIImageHeight 0 def
- /XIImageWidth 0 def
- /XIImageMatrix null def
- /XIRowBytes 0 def
- /XIFile null def
- /XIBuffer1 null def
- /XIBuffer2 null def
- /XIBuffer3 null def
- /XIDataProc null def
- /XIColorSpace /DeviceGray def
- /XIColorValues 0 def
- /XIPlateList false def
-end
-/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
-/ci6image systemdict /image get def
-/ci6curtransfer systemdict /currenttransfer get def
-/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
-/ci6foureq {
- 4 index ne {
- pop pop pop false
- }{
- 4 index ne {
- pop pop false
- }{
- 4 index ne {
- pop false
- }{
- 4 index eq
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6testplate {
- Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /setcmykcolor where {
- pop
- gsave
- 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
- grestore
- 1 0 0 0 ci6foureq {
- /plateindex 0 def
- }{
- 0 1 0 0 ci6foureq {
- /plateindex 1 def
- }{
- 0 0 1 0 ci6foureq {
- /plateindex 2 def
- }{
- 0 0 0 1 ci6foureq {
- /plateindex 3 def
- }{
- 0 0 0 0 ci6foureq {
- /plateindex 5 def
- } if
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- pop pop pop pop
- } if
- plateindex
- end
-} def
-/ci6concatprocs {
- /packedarray where {
- pop dup type /packedarraytype eq 2 index type
- /packedarraytype eq or
- }{
- false
- } ifelse
- {
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- _proc1 aload pop
- _proc2 aload pop
- _proc1 length
- _proc2 length add
- packedarray cvx
- }{
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- /_newproc _proc1 length _proc2 length add array def
- _newproc 0 _proc1 putinterval
- _newproc _proc1 length _proc2 putinterval
- _newproc cvx
- } ifelse
-} def
-/ci6istint {
- type /arraytype eq
-} def
-/ci6isspot {
- dup type /arraytype eq {
- dup length 1 sub get /Separation eq
- }{
- pop false
- } ifelse
-} def
-/ci6spotname {
- dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
-} def
-/ci6altspace {
- aload pop pop pop ci6colormake
-} def
-/ci6numcomps {
- dup /DeviceGray eq {
- pop 1
- }{
- dup /DeviceRGB eq {
- pop 3
- }{
- /DeviceCMYK eq {
- 4
- }{
- 1
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6marksplate {
- dup /DeviceGray eq {
- pop plateindex 3 eq
- }{
- dup /DeviceRGB eq {
- pop plateindex 5 ne
- }{
- dup /DeviceCMYK eq {
- pop plateindex 5 ne
- }{
- dup ci6isspot {
- /findcmykcustomcolor where {
- pop
- dup length 2 sub get
- 0.1 0.1 0.1 0.1 5 -1 roll
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop plateindex 5 ne
- } ifelse
- }{
- pop plateindex 5 ne
- } ifelse
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colormake {
- dup ci6numcomps
- exch 1 index 2 add 1 roll
- dup 1 eq {pop}{array astore} ifelse
- exch
-} def
-/ci6colorexpand {
- dup ci6spotname exch
- dup ci6istint {
- ci6altspace
- exch 4 1 roll
- }{
- 1 3 1 roll
- } ifelse
-} def
-/ci6colortint {
- dup /DeviceGray eq {
- 3 1 roll 1 exch sub mul 1 exch sub exch
- }{
- dup /DeviceRGB eq {
- 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
- }{
- dup /DeviceCMYK eq {
- 3 1 roll {1 index mul exch} forall pop 4 array astore exch
- }{
- 3 1 roll mul exch
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colortocmyk {
- dup /DeviceGray eq {
- pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
- }{
- dup /DeviceRGB eq {
- pop aload pop _rgbtocmyk 4 array astore
- }{
- dup /DeviceCMYK eq {
- pop
- }{
- ci6altspace ci6colortint ci6colortocmyk
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6makeimagedict {
- 7 dict begin
- /ImageType 1 def
- /Decode exch def
- /DataSource exch def
- /ImageMatrix exch def
- /BitsPerComponent exch def
- /Height exch def
- /Width exch def
- currentdict end
-} def
-/ci6stringinvert {
- 0 1 2 index length 1 sub {
- dup 2 index exch get 255 exch sub 2 index 3 1 roll put
- } for
-} def
-/ci6stringknockout {
- 0 1 2 index length 1 sub {
- 255 2 index 3 1 roll put
- } for
-} def
-/ci6stringapply {
- 0 1 4 index length 1 sub {
- dup
- 4 index exch get
- 3 index 3 1 roll
- 3 index exec
- } for
- pop exch pop
-} def
-/ci6walkrgbstring {
- 0 3 index
- dup length 1 sub 0 3 3 -1 roll {
- 3 getinterval {} forall
- 5 index exec
- 3 index
- } for
-
- 5 {pop} repeat
-} def
-/ci6walkcmykstring
-{
- 0 3 index
- dup length 1 sub 0 4 3 -1 roll {
- 4 getinterval {} forall
-
- 6 index exec
-
- 3 index
-
- } for
-
- 5 { pop } repeat
-
-} def
-/ci6putrgbtograystr
-{
- .11 mul exch
-
- .59 mul add exch
-
- .3 mul add
-
- cvi 3 copy put
-
- pop 1 add
-} def
-/ci6putcmyktograystr
-{
- exch .11 mul add
-
- exch .59 mul add
-
- exch .3 mul add
-
- dup 255 gt { pop 255 } if
-
- 255 exch sub cvi 3 copy put
-
- pop 1 add
-} def
-/ci6rgbtograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putrgbtograystr load exch
- ci6walkrgbstring
- end
-} def
-/ci6cmyktograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putcmyktograystr load exch
- ci6walkcmykstring
- end
-} def
-/ci6separatecmykproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
-
- XIBuffer3
-
- 0 2 index
-
- plateindex 4 2 index length 1 sub {
- get 255 exch sub
-
- 3 copy put pop 1 add
-
- 2 index
- } for
- pop pop exch pop
- end
-} def
-
-/ci6compositeimage {
- dup 1 eq {
- pop pop image
- }{
- /ci6colorimage load null ne {
- ci6colorimage
- }{
- 3 1 roll pop
- sourcearray 0 3 -1 roll put
- 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
- image
- } ifelse
- } ifelse
-} def
-/ci6knockoutimage {
- gsave
- 0 ci6curtransfer exec 1 ci6curtransfer exec
- eq {
- 0 ci6curtransfer exec 0.5 lt
- }{
- 0 ci6curtransfer exec 1 ci6curtransfer exec gt
- } ifelse
- {{pop 0}}{{pop 1}} ifelse
- systemdict /settransfer get exec
- ci6compositeimage
- grestore
-} def
-/ci6drawimage {
- ci6testplate -1 eq {
- pop ci6compositeimage
- }{
- dup type /arraytype eq {
- dup length plateindex gt {plateindex get}{pop false} ifelse
- }{
- {
- true
- }{
- dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
- } ifelse
- } ifelse
- {
- dup 1 eq {
- pop pop ci6image
- }{
- dup 3 eq {
- ci6compositeimage
- }{
- pop pop
- sourcearray 0 3 -1 roll put
- /ci6separatecmykproc load
- ci6image
- } ifelse
- } ifelse
- }{
- ci6curoverprint {
- 7 {pop} repeat
- }{
- ci6knockoutimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6proctintimage {
- /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
- /_pticomps _ptispace ci6numcomps store
- /_ptiscale _pti1 _pti0 sub store
- level2? {
- _ptiname length 0 gt version cvr 2012 ge and {
- [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
- [_pti0 _pti1] ci6makeimagedict ci6image
- }{
- [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
- [0 255] ci6makeimagedict ci6image
- } ifelse
- }{
- _pticomps 1 eq {
- {
- dup
- {
- 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
- } ci6stringapply
- } ci6concatprocs ci6image
- }{
- {
- dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
- _ptibuf {
- exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
- _pticomps 2 add -2 roll
- _pticomps 1 sub -1 0 {
- 1 index add 2 index exch
- 5 -1 roll
- 255 mul cvi put
- } for
- pop pop
- } ci6stringapply
- } ci6concatprocs false _pticomps
- /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
- } ifelse
- } ifelse
-} def
-/ci6graytintimage {
- /_gtigray 5 -1 roll store
- {1 _gtigray sub mul 1 exch sub} 4 1 roll
- /DeviceGray ci6proctintimage
-} def
-/ci6cmyktintimage {
- /_cticmyk 5 -1 roll store
- {_cticmyk {1 index mul exch} forall pop} 4 1 roll
- /DeviceCMYK ci6proctintimage
-} def
-/ci6rgbtintimage {
- /_rtirgb 5 -1 roll store
- {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
- /DeviceRGB ci6proctintimage
-} def
-/ci6tintimage {
- ci6testplate -1 eq {
- ci6colorexpand
- 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
- dup /DeviceGray eq {
- pop ci6graytintimage
- }{
- dup /DeviceRGB eq {
- pop ci6rgbtintimage
- }{
- pop ci6cmyktintimage
- } ifelse
- } ifelse
- }{
- dup ci6marksplate {
- plateindex 5 lt {
- ci6colortocmyk plateindex get
- dup 0 eq ci6curoverprint and {
- 7 {pop} repeat
- }{
- 1 exch sub
- exch {1 0}{0 1} ifelse () ci6graytintimage
- } ifelse
- }{
- pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
- } ifelse
- }{
- ci6curoverprint {
- 8 {pop} repeat
- }{
- pop pop pop
- {pop 1} 0 1 () /DeviceGray ci6proctintimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/XINullImage {
-} def
-/XIImageMask {
- XIImageWidth XIImageHeight false
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- imagemask
-} def
-/XIImageTint {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- XIType 3 eq XIColorValues XIColorSpace ci6tintimage
-} def
-/XIImage {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- false XIChannelCount XIPlateList ci6drawimage
-} def
-/XG {
- pop pop
-} def
-/XF {
- 13 {pop} repeat
-} def
-/Xh {
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- /XIImageMatrix exch def
- 0 0 moveto
- XIImageMatrix concat
- XIImageWidth XIImageHeight scale
-
- /_lp /null ddef
- _fc
- /_lp /imagemask ddef
- end
-} def
-/XH {
- Adobe_ColorImage_AI6_Vars begin
- grestore
- end
-} def
-/XIEnable {
- Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
-} def
-/XC {
- Adobe_ColorImage_AI6_Vars begin
- ci6colormake
- /XIColorSpace exch def
- /XIColorValues exch def
- end
-} def
-/XIPlates {
- Adobe_ColorImage_AI6_Vars begin
- /XIPlateList exch def
- end
-} def
-/XI
-{
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- cvi dup
- 256 idiv /XICompression exch store
- 256 mod /XIEncoding exch store
- pop pop
- /XIChannelCount exch def
- /XIBitsPerPixel exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- pop pop pop pop
- /XIImageMatrix exch def
- XIBitsPerPixel 1 eq {
- XIImageWidth 8 div ceiling cvi
- }{
- XIImageWidth XIChannelCount mul
- } ifelse
- /XIRowBytes exch def
- XIEnable {
- /XIBuffer3 XIImageWidth string def
- XICompression 0 eq {
- /XIBuffer1 XIRowBytes string def
- XIEncoding 0 eq {
- {currentfile XIBuffer1 readhexstring pop}
- }{
- {currentfile XIBuffer1 readstring pop}
- } ifelse
- }{
- /XIBuffer1 256 string def
- /XIBuffer2 XIRowBytes string def
- {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
- /ASCII85Decode filter /DCTDecode filter
- /XIFile exch def
- {XIFile XIBuffer2 readstring pop}
- } ifelse
- /XIDataProc exch def
-
- XIType 1 ne {
- 0 setgray
- } if
- XIType 1 eq {
- XIImageMask
- }{
- XIType 2 eq XIType 3 eq or {
- XIImageTint
- }{
- XIImage
- } ifelse
- } ifelse
- }{
- XINullImage
- } ifelse
- /XIPlateList false def
- grestore
- end
-} def
-end
-%%EndProcSet
-%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
-%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
-%%Version: 1.3 0
-%%CreationDate: (3/7/1994) ()
-%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
-put
-/_?cmyk false def
-/_eo false def
-/_lp /none def
-/_pf
-{
-} def
-/_ps
-{
-} def
-/_psf
-{
-} def
-/_pss
-{
-} def
-/_pjsf
-{
-} def
-/_pjss
-{
-} def
-/_pola 0 def
-/_doClip 0 def
-/cf currentflat def
-/_lineorientation 0 def
-/_charorientation 0 def
-/_yokoorientation 0 def
-/_tm matrix def
-/_renderStart
-[
-/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
-] def
-/_renderEnd
-[
-null null null null /i1 /i1 /i1 /i1
-] def
-/_render -1 def
-/_shift [0 0] def
-/_ax 0 def
-/_ay 0 def
-/_cx 0 def
-/_cy 0 def
-/_leading
-[
-0 0
-] def
-/_ctm matrix def
-/_mtx matrix def
-/_sp 16#020 def
-/_hyphen (-) def
-/_fontSize 0 def
-/_fontAscent 0 def
-/_fontDescent 0 def
-/_fontHeight 0 def
-/_fontRotateAdjust 0 def
-/Ss 256 string def
-Ss 0 (fonts/) putinterval
-/_cnt 0 def
-/_scale [1 1] def
-/_nativeEncoding 0 def
-/_useNativeEncoding 0 def
-/_tempEncode 0 def
-/_pntr 0 def
-/_tDict 2 dict def
-/_hfname 100 string def
-/_hffound false def
-/Tx
-{
-} def
-/Tj
-{
-} def
-/CRender
-{
-} def
-/_AI3_savepage
-{
-} def
-/_gf null def
-/_cf 4 array def
-/_rgbf 3 array def
-/_if null def
-/_of false def
-/_fc
-{
-} def
-/_gs null def
-/_cs 4 array def
-/_rgbs 3 array def
-/_is null def
-/_os false def
-/_sc
-{
-} def
-/_pd 1 dict def
-/_ed 15 dict def
-/_pm matrix def
-/_fm null def
-/_fd null def
-/_fdd null def
-/_sm null def
-/_sd null def
-/_sdd null def
-/_i null def
-/_lobyte 0 def
-/_hibyte 0 def
-/_cproc null def
-/_cscript 0 def
-/_hvax 0 def
-/_hvay 0 def
-/_hvwb 0 def
-/_hvcx 0 def
-/_hvcy 0 def
-/_bitfont null def
-/_bitlobyte 0 def
-/_bithibyte 0 def
-/_bitkey null def
-/_bitdata null def
-/_bitindex 0 def
-/discardSave null def
-/buffer 256 string def
-/beginString null def
-/endString null def
-/endStringLength null def
-/layerCnt 1 def
-/layerCount 1 def
-/perCent (%) 0 get def
-/perCentSeen? false def
-/newBuff null def
-/newBuffButFirst null def
-/newBuffLast null def
-/clipForward? false def
-end
-userdict /Adobe_Illustrator_AI5 known not {
- userdict /Adobe_Illustrator_AI5 100 dict put
-} if
-userdict /Adobe_Illustrator_AI5 get begin
-/initialize
-{
- Adobe_Illustrator_AI5 dup begin
- Adobe_Illustrator_AI5_vars begin
- /_aicmykps where {pop /_?cmyk _aicmykps def}if
- discardDict
- {
- bind pop pop
- } forall
- dup /nc get begin
- {
- dup xcheck 1 index type /operatortype ne and
- {
- bind
- } if
- pop pop
- } forall
- end
- newpath
-} def
-/terminate
-{
- end
- end
-} def
-/_
-null def
-/ddef
-{
- Adobe_Illustrator_AI5_vars 3 1 roll put
-} def
-/xput
-{
- dup load dup length exch maxlength eq
- {
- dup dup load dup
- length 2 mul dict copy def
- } if
- load begin
- def
- end
-} def
-/npop
-{
- {
- pop
- } repeat
-} def
-/hswj
-{
- dup stringwidth 3 2 roll
- {
- _hvwb eq { exch _hvcx add exch _hvcy add } if
- exch _hvax add exch _hvay add
- } cforall
-} def
-/vswj
-{
- 0 0 3 -1 roll
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- dup cstring stringwidth 5 2 roll
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- 4 -1 roll sub exch
- 3 -1 roll sub exch
- }
- {
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- _fontHeight sub
- } ifelse
- } cforall
-} def
-/swj
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hswj } { vswj } ifelse
-} def
-/sw
-{
- 0 0 0 6 3 roll swj
-} def
-/vjss
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- gsave
- 2 index false charpath
- 6 index setmatrix stroke
- grestore
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjss
-{
- 4 1 roll
- {
- dup cstring
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jss
-{
- _lineorientation 0 eq { hjss } { vjss } ifelse
-} def
-/ss
-{
- 0 0 0 7 3 roll jss
-} def
-/vjsp
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- false charpath
- currentpoint
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- 2 index false charpath
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjsp
-{
- 4 1 roll
- {
- dup cstring
- false charpath
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jsp
-{
- matrix currentmatrix
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/sp
-{
- matrix currentmatrix
- 0 0 0 7 3 roll
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/pl
-{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
-} def
-/setstrokeadjust where
-{
- pop true setstrokeadjust
- /c
- {
- curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll curveto
- } def
- /V
- /v load def
- /y
- {
- 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- lineto
- } def
- /L
- /l load def
- /m
- {
- moveto
- } def
-}
-{
- /c
- {
- pl curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll pl curveto
- } def
- /V
- /v load def
- /y
- {
- pl 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- pl lineto
- } def
- /L
- /l load def
- /m
- {
- pl moveto
- } def
-} ifelse
-/d
-{
- setdash
-} def
-/cf
-{
-} def
-/i
-{
- dup 0 eq
- {
- pop cf
- } if
- setflat
-} def
-/j
-{
- setlinejoin
-} def
-/J
-{
- setlinecap
-} def
-/M
-{
- setmiterlimit
-} def
-/w
-{
- setlinewidth
-} def
-/XR
-{
- 0 ne
- /_eo exch ddef
-} def
-/H
-{
-} def
-/h
-{
- closepath
-} def
-/N
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- _eo {eoclip} {clip} ifelse /_doClip 0 ddef
- } if
- newpath
- }
- {
- /CRender
- {
- N
- } ddef
- } ifelse
-} def
-/n
-{
- N
-} def
-/F
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
- /_doClip 0 ddef
- }
- {
- _pf
- } ifelse
- }
- {
- /CRender
- {
- F
- } ddef
- } ifelse
-} def
-/f
-{
- closepath
- F
-} def
-/S
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- _ps
- } ifelse
- }
- {
- /CRender
- {
- S
- } ddef
- } ifelse
-} def
-/s
-{
- closepath
- S
-} def
-/B
-{
- _pola 0 eq
- {
- _doClip 1 eq
- gsave F grestore
- {
- gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- S
- } ifelse
- }
- {
- /CRender
- {
- B
- } ddef
- } ifelse
-} def
-/b
-{
- closepath
- B
-} def
-/W
-{
- /_doClip 1 ddef
-} def
-/*
-{
- count 0 ne
- {
- dup type /stringtype eq
- {
- pop
- } if
- } if
- newpath
-} def
-/u
-{
-} def
-/U
-{
-} def
-/q
-{
- _pola 0 eq
- {
- gsave
- } if
-} def
-/Q
-{
- _pola 0 eq
- {
- grestore
- } if
-} def
-/*u
-{
- _pola 1 add /_pola exch ddef
-} def
-/*U
-{
- _pola 1 sub /_pola exch ddef
- _pola 0 eq
- {
- CRender
- } if
-} def
-/D
-{
- pop
-} def
-/*w
-{
-} def
-/*W
-{
-} def
-/`
-{
- /_i save ddef
- clipForward?
- {
- nulldevice
- } if
- 6 1 roll 4 npop
- concat pop
- userdict begin
- /showpage
- {
- } def
- 0 setgray
- 0 setlinecap
- 1 setlinewidth
- 0 setlinejoin
- 10 setmiterlimit
- [] 0 setdash
- /setstrokeadjust where {pop false setstrokeadjust} if
- newpath
- 0 setgray
- false setoverprint
-} def
-/~
-{
- end
- _i restore
-} def
-/_rgbtocmyk
-{
- 3
- {
- 1 exch sub 3 1 roll
- } repeat
- 3 copy 1 4 1 roll
- 3
- {
- 3 index 2 copy gt
- {
- exch
- } if
- pop 4 1 roll
- } repeat
- pop pop pop
- 4 1 roll
- 3
- {
- 3 index sub
- 3 1 roll
- } repeat
- 4 -1 roll
-} def
-/setrgbfill
-{
- _rgbf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _rgbf aload pop setrgbcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/setrgbstroke
-{
- _rgbs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _rgbs aload pop setrgbcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/O
-{
- 0 ne
- /_of exch ddef
- /_lp /none ddef
-} def
-/R
-{
- 0 ne
- /_os exch ddef
- /_lp /none ddef
-} def
-/g
-{
- /_gf exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/G
-{
- /_gs exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/k
-{
- _cf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _cf aload pop setcmykcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/K
-{
- _cs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _cs aload pop setcmykcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xa
-{
- _?cmyk {
- 3 npop k
- }{
- setrgbfill 4 npop
- } ifelse
-} def
-/XA
-{
- _?cmyk {
- 3 npop K
- }{
- setrgbstroke 4 npop
- } ifelse
-} def
-/Xs
-{
- /_gf exch ddef
- 5 npop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setAIseparationgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XS
-{
- /_gs exch ddef
- 5 npop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setAIseparationgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xx
-{
- exch
- /_gf exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XX
-{
- exch
- /_gs exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/x
-{
- /_gf exch ddef
- findcmykcustomcolor
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/X
-{
- /_gs exch ddef
- findcmykcustomcolor
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/XK
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- K
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- XA
- } ifelse
-} def
-/Xk
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- k
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- Xa
- } ifelse
-} def
-/A
-{
- pop
-} def
-/annotatepage
-{
-userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
-} def
-/XT {
- pop pop
-} def
-/Xt {
- pop
-} def
-/discard
-{
- save /discardSave exch store
- discardDict begin
- /endString exch store
- gt38?
- {
- 2 add
- } if
- load
- stopped
- pop
- end
- discardSave restore
-} bind def
-userdict /discardDict 7 dict dup begin
-put
-/pre38Initialize
-{
- /endStringLength endString length store
- /newBuff buffer 0 endStringLength getinterval store
- /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
- /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
-} def
-/shiftBuffer
-{
- newBuff 0 newBuffButFirst putinterval
- newBuffLast 0
- currentfile read not
- {
- stop
- } if
- put
-} def
-0
-{
- pre38Initialize
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff endString eq
- {
- cleartomark stop
- } if
- shiftBuffer
- } loop
- }
- {
- stop
- } ifelse
-} def
-1
-{
- pre38Initialize
- /beginString exch store
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff beginString eq
- {
- /layerCount dup load 1 add store
- }
- {
- newBuff endString eq
- {
- /layerCount dup load 1 sub store
- layerCount 0 eq
- {
- cleartomark stop
- } if
- } if
- } ifelse
- shiftBuffer
- } loop
- } if
-} def
-2
-{
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- endString eq {
- cleartomark stop
- } if
- }ifelse
- } loop
-} def
-3
-{
- /beginString exch store
- /layerCnt 1 store
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- dup beginString eq
- {
- pop /layerCnt dup load 1 add store
- }
- {
- endString eq
- {
- layerCnt 1 eq
- {
- cleartomark stop
- }
- {
- /layerCnt dup load 1 sub store
- } ifelse
- } if
- } ifelse
- }ifelse
- } loop
-} def
-end
-userdict /clipRenderOff 15 dict dup begin
-put
-{
- /n /N /s /S /f /F /b /B
-}
-{
- {
- _doClip 1 eq
- {
- /_doClip 0 ddef _eo {eoclip} {clip} ifelse
- } if
- newpath
- } def
-} forall
-/Tr /pop load def
-/Bb {} def
-/BB /pop load def
-/Bg {12 npop} def
-/Bm {6 npop} def
-/Bc /Bm load def
-/Bh {4 npop} def
-end
-/Lb
-{
- 6 npop
- 7 2 roll
- 5 npop
- 0 eq
- {
- 0 eq
- {
- (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
- }
- {
-
- /clipForward? true def
-
- /Tx /pop load def
- /Tj /pop load def
-
- currentdict end clipRenderOff begin begin
- } ifelse
- }
- {
- 0 eq
- {
- save /discardSave exch store
- } if
- } ifelse
-} bind def
-/LB
-{
- discardSave dup null ne
- {
- restore
- }
- {
- pop
- clipForward?
- {
- currentdict
- end
- end
- begin
-
- /clipForward? false ddef
- } if
- } ifelse
-} bind def
-/Pb
-{
- pop pop
- 0 (%AI5_EndPalette) discard
-} bind def
-/Np
-{
- 0 (%AI5_End_NonPrinting--) discard
-} bind def
-/Ln /pop load def
-/Ap
-/pop load def
-/Ar
-{
- 72 exch div
- 0 dtransform dup mul exch dup mul add sqrt
- dup 1 lt
- {
- pop 1
- } if
- setflat
-} def
-/Mb
-{
- q
-} def
-/Md
-{
-} def
-/MB
-{
- Q
-} def
-/nc 4 dict def
-nc begin
-/setgray
-{
- pop
-} bind def
-/setcmykcolor
-{
- 4 npop
-} bind def
-/setrgbcolor
-{
- 3 npop
-} bind def
-/setcustomcolor
-{
- 2 npop
-} bind def
-currentdict readonly pop
-end
-/XP
-{
- 4 npop
-} bind def
-/XD
-{
- pop
-} bind def
-end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_cshow 2.0 8
-%%Title: (Writing System Operators)
-%%Version: 2.0 8
-%%CreationDate: (1/23/89) ()
-%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_cshow 14 dict dup begin put
-/initialize
-{
- Adobe_cshow begin
- Adobe_cshow
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- Adobe_cshow begin
-} def
-/terminate
-{
-currentdict Adobe_cshow eq
- {
- end
- } if
-} def
-/cforall
-{
- /_lobyte 0 ddef
- /_hibyte 0 ddef
- /_cproc exch ddef
- /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
- {
- /_lobyte exch ddef
- _hibyte 0 eq
- _cscript 1 eq
- _lobyte 129 ge _lobyte 159 le and
- _lobyte 224 ge _lobyte 252 le and or and
- _cscript 2 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 3 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 25 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript -1 eq
- or or or or and
- {
- /_hibyte _lobyte ddef
- }
- {
- _hibyte 256 mul _lobyte add
- _cproc
- /_hibyte 0 ddef
- } ifelse
- } forall
-} def
-/cstring
-{
- dup 256 lt
- {
- (s) dup 0 4 3 roll put
- }
- {
- dup 256 idiv exch 256 mod
- (hl) dup dup 0 6 5 roll put 1 4 3 roll put
- } ifelse
-} def
-/clength
-{
- 0 exch
- { 256 lt { 1 } { 2 } ifelse add } cforall
-} def
-/hawidthshow
-{
- {
- dup cstring
- show
- _hvax _hvay rmoveto
- _hvwb eq { _hvcx _hvcy rmoveto } if
- } cforall
-} def
-/vawidthshow
-{
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- -90 rotate
- 0 _fontRotateAdjust rmoveto
- cstring
- _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
- 0 _fontRotateAdjust neg rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- exch _hvay sub exch _hvax sub
- 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- 3 2 roll
- cstring
- dup stringwidth pop 2 div neg _fontAscent neg rmoveto
- show
- moveto
- } ifelse
- } cforall
-} def
-/hvawidthshow
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
-} def
-/hvwidthshow
-{
- 0 0 3 -1 roll hvawidthshow
-} def
-/hvashow
-{
- 0 0 0 6 -3 roll hvawidthshow
-} def
-/hvshow
-{
- 0 0 0 0 0 6 -1 roll hvawidthshow
-} def
-currentdict readonly pop end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_shading_AI8 1.0 0
-%%Title: (Adobe Illustrator 8 Shading Procset)
-%%Version: 1.0 0
-%%CreationDate: (12/17/97) ()
-%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
-userdict /defaultpacking currentpacking put true setpacking
-userdict /Adobe_shading_AI8 10 dict dup begin put
-/initialize {
- Adobe_shading_AI8 begin
- Adobe_shading_AI8 bdprocs
- Mesh /initialize get exec
-} def
-/terminate {
- currentdict Adobe_shading_AI8 eq {
- end
- } if
-} def
-/bdprocs {
- {
- dup xcheck 1 index type /arraytype eq and {
- bind
- } if
- pop pop
- } forall
-} def
-/X! {pop} def
-/X# {pop pop} def
-/Mesh 40 dict def
-Mesh begin
-/initialize {
- Mesh bdprocs
- Mesh begin
- /emulate? /AI8MeshEmulation where {
- pop AI8MeshEmulation
- }{
- systemdict /shfill known not
- } ifelse def
- end
-} def
-/bd {
- shadingdict begin
-} def
-/paint {
- emulate? {
- end
- }{
- /_lp /none ddef _fc /_lp /none ddef
-
- /AIColorSpace AIColorSpace tocolorspace store
- /ColorSpace AIColorSpace topsspace store
-
- version_ge_3010.106 not systemdict /setsmoothness known and {
- 0.0001 setsmoothness
- } if
-
- composite? {
- /DataSource getdatasrc def
- Matrix concat
- currentdict end
- shfill
- }{
- AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
- end
- }{
- /ColorSpace /DeviceGray store
- /Decode [0 1 0 1 0 1] store
- /DataSource getplatesrc def
- Matrix concat
- currentdict end
- shfill
- } ifelse
- } ifelse
- } ifelse
-} def
-/shadingdict 12 dict def
-shadingdict begin
- /ShadingType 6 def
- /BitsPerCoordinate 16 def
- /BitsPerComponent 8 def
- /BitsPerFlag 8 def
-end
-/datafile null def
-/databuf 256 string def
-/dataptr 0 def
-/srcspace null def
-/srcchannels 0 def
-/dstchannels 0 def
-/dstplate 0 def
-/srctodstcolor null def
-/getplatesrc {
- /srcspace AIColorSpace store
- /srcchannels AIColorSpace getnchannels store
- /dstchannels 1 store
- /dstplate getplateindex store
- /srctodstcolor srcspace makesmarks {
- dstplate 4 eq {
- {1 exch sub}
- }{
- {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
- } ifelse
- }{
- {srcchannels {pop} repeat 1}
- } ifelse store
- /datafile getdatasrc store
- /rdpatch168 load DataLength () /SubFileDecode filter
-} def
-/getdatasrc {
- /rdcmntline load /ASCII85Decode filter
-} def
-/rdpatch168 {
- /dataptr 0 store
- 49 rdcount
- 4 {
- dup {pop srcchannels getint8} if
- dup {pop srctodstcolor dstchannels putint8 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdpatch3216 {
- /dataptr 0 store
- 97 rdcount
- 4 {
- dup {pop srcchannels getint16} if
- dup {pop srctodstcolor dstchannels putint16 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdcount {
- dup 0 gt {
- datafile databuf dataptr 4 -1 roll getinterval readstring
- exch length dataptr add /dataptr exch store
- }{
- true
- } ifelse
-} def
-/getint8 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 255 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint8 {
- dup dataptr add /dataptr exch store
- dataptr exch
- {
- 1 sub exch
- 255 mul cvi
- databuf 2 index
- 3 -1 roll put
- } repeat
- pop
-} def
-/getint16 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 256 mul datafile read} if
- dup {pop add 65535 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint16 {
- dup 2 mul dataptr add /dataptr exch store
- dataptr exch
- {
- 2 sub exch
- 65535 mul cvi dup
- 256 idiv databuf 3 index 3 -1 roll put
- 256 mod databuf 2 index 1 add 3 -1 roll put
- } repeat
- pop
-} def
-/srcbuf 256 string def
-/rdcmntline {
- currentfile srcbuf readline pop
- (%) anchorsearch {pop} if
-} def
-/getplateindex {
- 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
-} def
-/aicsarray 4 array def
-/aicsaltvals 4 array def
-/aicsaltcolr aicsaltvals def
-/tocolorspace {
- dup type /arraytype eq {
- mark exch aload pop
- aicsarray 0 3 -1 roll put
- aicsarray 1 3 -1 roll put
- dup aicsarray 2 3 -1 roll put
- gettintxform aicsarray 3 3 -1 roll put
- counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
- aicsaltcolr astore pop pop
- aicsarray
- } if
-} def
-/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
-/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
-/gettintxform {
- /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
-} def
-/getnchannels {
- dup type /arraytype eq {0 get} if
- colorspacedict exch get begin Channels end
-} def
-/makesmarks {
- composite? {
- pop true
- }{
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin MarksPlate end
- } ifelse
-} def
-/markingplate {
- composite? {
- pop true
- }{
- dup type /arraytype eq {
- dup length getplateindex gt {getplateindex get}{pop false} ifelse
- } if
- } ifelse
-} def
-/tocmyk {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToCMYK end
-} def
-/topsspace {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToPSSpace end
-} def
-/colorspacedict 5 dict dup begin
- /DeviceGray 4 dict dup begin
- /Channels 1 def
- /MarksPlate {pop black?} def
- /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
- /ToPSSpace {} def
- end def
- /DeviceRGB 4 dict dup begin
- /Channels 3 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop _rgbtocmyk} def
- /ToPSSpace {} def
- end def
- /DeviceCMYK 4 dict dup begin
- /Channels 4 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop} def
- /ToPSSpace {} def
- end def
- /Separation 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- /findcmykcustomcolor where {
- pop dup 1 exch ToCMYK 5 -1 roll 1 get
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {} def
- end def
- /Process 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- isCMYKSep? {
- 1 exch ToCMYK 4 array astore getplateindex get 0 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {
- 4 array copy dup 0 /Separation put
- } def
- end def
-end def
-/isoverprint {
- /currentoverprint where {pop currentoverprint}{_of} ifelse
-} def
-/version_ge_3010.106 {
- version {cvr} stopped {
- pop
- false
- }{
- 3010.106 ge
- } ifelse
-} def
-end
-end
-defaultpacking setpacking
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeFont: Helvetica
-userdict /_useSmoothShade false put
-userdict /_aicmykps false put
-userdict /_forceToCMYK false put
-Adobe_level2_AI5 /initialize get exec
-Adobe_cshow /initialize get exec
-Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
-Adobe_ColorImage_AI6 /initialize get exec
-Adobe_shading_AI8 /initialize get exec
-Adobe_Illustrator_AI5 /initialize get exec
-[
-39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
-/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
-/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
-/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
-/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
-/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
-/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
-/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
-/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
-/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
-/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
-/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
-/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
-/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
-/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
-/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
-/hungarumlaut/ogonek/caron
-TE
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Helvetica Helvetica
-[/_Helvetica/Helvetica 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
-181/mu/partialdiff/summation/product/pi/integral 189/Omega
-195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
-/_Symbol_/Symbol 0 0 0 TZ
-%AI5_Begin_NonPrinting
-Np
-%AI3_BeginPattern: (bi-direction diagonals)
-(bi-direction diagonals) 24.2119 0.2119 96.2124 72.2119 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-8.2119 6.2119 m
-14.2119 0.2119 L
-F
-8.2119 0.2119 m
-14.2119 6.2119 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-24.2119 72.2119 m
-96.2124 0.2119 L
-S
-21.2109 69.2129 m
-90.2124 0.2119 L
-S
-21.207 63.2168 m
-84.2124 0.2119 L
-S
-21.2031 57.2207 m
-78.2124 0.2119 L
-S
-21.1987 51.2246 m
-72.2124 0.2119 L
-S
-21.1958 45.2275 m
-66.2119 0.2119 L
-S
-21.1919 39.2314 m
-60.2119 0.2119 L
-S
-21.188 33.2363 m
-54.2119 0.2119 L
-S
-21.1851 27.2402 m
-48.2119 0.2119 L
-S
-21.1812 21.2432 m
-42.2119 0.2119 L
-S
-21.1768 15.2471 m
-36.2119 0.2119 L
-S
-21.1729 9.251 m
-30.2119 0.2119 L
-S
-21.1699 3.2549 m
-24.2119 0.2119 L
-S
-30.2119 72.2119 m
-99.2134 3.21 L
-S
-36.2119 72.2119 m
-99.2173 9.2061 L
-S
-42.2119 72.2119 m
-99.2212 15.2021 L
-S
-48.2119 72.2119 m
-99.2251 21.1992 L
-S
-54.2119 72.2119 m
-99.228 27.1953 L
-S
-60.2119 72.2119 m
-99.2319 33.1904 L
-S
-66.2119 72.2119 m
-99.2358 39.1865 L
-S
-72.2124 72.2119 m
-99.2397 45.1836 L
-S
-78.2124 72.2119 m
-99.2427 51.1797 L
-S
-84.2124 72.2119 m
-99.2466 57.1758 L
-S
-90.2124 72.2119 m
-99.2505 63.1719 L
-S
-96.2124 72.2119 m
-99.2554 69.1689 L
-S
-0.2119 68.7119 m
-10.2119 58.7119 L
-S
-96.2124 72.2119 m
-24.2119 0.2119 L
-S
-90.2124 72.2119 m
-21.2109 3.21 L
-S
-84.2124 72.2119 m
-21.207 9.2061 L
-S
-78.2124 72.2119 m
-21.2031 15.2021 L
-S
-72.2124 72.2119 m
-21.1987 21.1982 L
-S
-66.2119 72.2119 m
-21.1958 27.1953 L
-S
-60.2119 72.2119 m
-21.1919 33.1904 L
-S
-54.2119 72.2119 m
-21.188 39.1865 L
-S
-48.2119 72.2119 m
-21.1851 45.1826 L
-S
-42.2119 72.2119 m
-21.1812 51.1797 L
-S
-36.2119 72.2119 m
-21.1768 57.1758 L
-S
-30.2119 72.2119 m
-21.1729 63.1719 L
-S
-24.2119 72.2119 m
-21.1699 69.168 L
-S
-99.2134 69.2129 m
-30.2119 0.2119 L
-S
-99.2173 63.2168 m
-36.2119 0.2119 L
-S
-99.2212 57.2207 m
-42.2119 0.2119 L
-S
-99.2251 51.2246 m
-48.2119 0.2119 L
-S
-99.228 45.2275 m
-54.2119 0.2119 L
-S
-99.2319 39.2314 m
-60.2119 0.2119 L
-S
-99.2358 33.2363 m
-66.2119 0.2119 L
-S
-99.2397 27.2393 m
-72.2124 0.2119 L
-S
-99.2427 21.2432 m
-78.2124 0.2119 L
-S
-99.2466 15.2471 m
-84.2124 0.2119 L
-S
-99.2505 9.251 m
-90.2124 0.2119 L
-S
-99.2554 3.2539 m
-96.2124 0.2119 L
-S
-0.2119 58.7119 m
-10.2119 68.7119 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (black dots)
-(black dots) 16 0.6885 88 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6.6885 m
-6 0.6885 L
-F
-0 0.6885 m
-6 6.6885 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-28.9365 3.1885 m
-28.9365 3.1885 l
-S
-17.125 3.375 m
-17.125 3.375 l
-S
-26.5 4.6885 m
-26.5 4.6885 l
-S
-35.6865 5.8135 m
-35.6865 5.8135 l
-S
-19.75 0.9385 m
-19.75 0.9385 l
-S
-23.125 7.3135 m
-23.125 7.3135 l
-S
-40.5615 2.4385 m
-40.5615 2.4385 l
-S
-43 1.125 m
-43 1.125 l
-S
-45.0615 5.4385 m
-45.0615 5.4385 l
-S
-56.875 6.375 m
-56.875 6.375 l
-S
-65.3115 5.0635 m
-65.3115 5.0635 l
-S
-51.0615 6.9385 m
-51.0615 6.9385 l
-S
-40.5615 6.9385 m
-40.5615 6.9385 l
-S
-31.1865 6.9385 m
-31.1865 6.9385 l
-S
-59.875 9.5635 m
-59.875 9.5635 l
-S
-62.6865 1.3135 m
-62.6865 1.3135 l
-S
-34.5615 0.9385 m
-34.5615 0.9385 l
-S
-48.4365 2.25 m
-48.4365 2.25 l
-S
-56.3115 0.75 m
-56.3115 0.75 l
-S
-66.625 24.5635 m
-66.625 24.5635 l
-S
-74.3115 24.9385 m
-74.3115 24.9385 l
-S
-78.8115 24.375 m
-78.8115 24.375 l
-S
-82.9365 2.0635 m
-82.9365 2.0635 l
-S
-68.3115 11.8135 m
-68.3115 11.8135 l
-S
-86.5 17.8135 m
-86.5 17.8135 l
-S
-87.0615 4.6885 m
-87.0615 4.6885 l
-S
-79.9365 19.875 m
-79.9365 19.875 l
-S
-77.875 1.125 m
-77.875 1.125 l
-S
-69.625 20.25 m
-69.625 20.25 l
-S
-67.75 6 m
-67.75 6 l
-S
-73.375 17.625 m
-73.375 17.625 l
-S
-76.9365 16.875 m
-76.9365 16.875 l
-S
-72.4365 3.375 m
-72.4365 3.375 l
-S
-77.3115 9.5635 m
-77.3115 9.5635 l
-S
-73.9365 11.25 m
-73.9365 11.25 l
-S
-83.125 7.875 m
-83.125 7.875 l
-S
-85.1865 12.75 m
-85.1865 12.75 l
-S
-81.0615 13.875 m
-81.0615 13.875 l
-S
-17.6865 16.125 m
-17.6865 16.125 l
-S
-45.25 10.3135 m
-45.25 10.3135 l
-S
-31.5615 21.375 m
-31.5615 21.375 l
-S
-20.875 11.8135 m
-20.875 11.8135 l
-S
-34.75 18.5635 m
-34.75 18.5635 l
-S
-25.75 21.9385 m
-25.75 21.9385 l
-S
-34.5615 24.5635 m
-34.5615 24.5635 l
-S
-37.375 16.3135 m
-37.375 16.3135 l
-S
-36.625 12.75 m
-36.625 12.75 l
-S
-23.125 17.25 m
-23.125 17.25 l
-S
-29.3115 12.375 m
-29.3115 12.375 l
-S
-31 15.75 m
-31 15.75 l
-S
-46.1865 22.875 m
-46.1865 22.875 l
-S
-52 15.375 m
-52 15.375 l
-S
-58.375 13.3135 m
-58.375 13.3135 l
-S
-62.6865 20.0635 m
-62.6865 20.0635 l
-S
-62.875 14.0635 m
-62.875 14.0635 l
-S
-44.6865 20.4385 m
-44.6865 20.4385 l
-S
-46.75 15.1885 m
-46.75 15.1885 l
-S
-42.0615 17.0635 m
-42.0615 17.0635 l
-S
-55.1865 17.4385 m
-55.1865 17.4385 l
-S
-58.9365 23.25 m
-58.9365 23.25 l
-S
-60.0615 17.4385 m
-60.0615 17.4385 l
-S
-42.4365 25.125 m
-42.4365 25.125 l
-S
-65.3115 20.625 m
-65.3115 20.625 l
-S
-51.625 24.5635 m
-51.625 24.5635 l
-S
-52 20.625 m
-52 20.625 l
-S
-18.8115 24 m
-18.8115 24 l
-S
-21.25 24.9385 m
-21.25 24.9385 l
-S
-19.375 70.875 m
-19.375 70.875 l
-S
-26.125 66.5635 m
-26.125 66.5635 l
-S
-20.125 66.375 m
-20.125 66.375 l
-S
-38.5 69 m
-38.5 69 l
-S
-47.125 71.625 m
-47.125 71.625 l
-S
-62.875 68.0635 m
-62.875 68.0635 l
-S
-49.75 67.5 m
-49.75 67.5 l
-S
-38.875 65.625 m
-38.875 65.625 l
-S
-29.3115 70.3135 m
-29.3115 70.3135 l
-S
-31.9365 67.5 m
-31.9365 67.5 l
-S
-57.25 65.4385 m
-57.25 65.4385 l
-S
-23.5 69.1885 m
-23.5 69.1885 l
-S
-45.625 65.25 m
-45.625 65.25 l
-S
-26.6865 63.9385 m
-26.6865 63.9385 l
-S
-50.5 63.75 m
-50.5 63.75 l
-S
-32.6865 72 m
-32.6865 72 l
-S
-52.9365 71.4385 m
-52.9365 71.4385 l
-S
-57.8115 69.375 m
-57.8115 69.375 l
-S
-61 64.3135 m
-61 64.3135 l
-S
-28.9365 48.1885 m
-28.9365 48.1885 l
-S
-17.125 48.375 m
-17.125 48.375 l
-S
-21.4365 42.375 m
-21.4365 42.375 l
-S
-19.375 36 m
-19.375 36 l
-S
-26.125 31.6885 m
-26.125 31.6885 l
-S
-20.125 31.5 m
-20.125 31.5 l
-S
-26.5 49.6885 m
-26.5 49.6885 l
-S
-35.6865 50.8135 m
-35.6865 50.8135 l
-S
-19.75 45.9385 m
-19.75 45.9385 l
-S
-23.125 52.3135 m
-23.125 52.3135 l
-S
-40.5615 47.4385 m
-40.5615 47.4385 l
-S
-43 46.125 m
-43 46.125 l
-S
-23.5 39.1885 m
-23.5 39.1885 l
-S
-38.5 34.125 m
-38.5 34.125 l
-S
-47.125 36.75 m
-47.125 36.75 l
-S
-45.0615 50.4385 m
-45.0615 50.4385 l
-S
-56.875 51.375 m
-56.875 51.375 l
-S
-42.8115 39.375 m
-42.8115 39.375 l
-S
-62.875 33.1885 m
-62.875 33.1885 l
-S
-49.75 32.625 m
-49.75 32.625 l
-S
-38.875 30.75 m
-38.875 30.75 l
-S
-29.3115 35.4385 m
-29.3115 35.4385 l
-S
-31.9365 32.625 m
-31.9365 32.625 l
-S
-54.75 30.1885 m
-54.75 30.1885 l
-S
-64.9365 39.75 m
-64.9365 39.75 l
-S
-46.1865 41.8135 m
-46.1865 41.8135 l
-S
-65.3115 50.0635 m
-65.3115 50.0635 l
-S
-51.0615 51.9385 m
-51.0615 51.9385 l
-S
-23.5 34.3135 m
-23.5 34.3135 l
-S
-40.5615 51.9385 m
-40.5615 51.9385 l
-S
-31.1865 51.9385 m
-31.1865 51.9385 l
-S
-45.625 30.375 m
-45.625 30.375 l
-S
-26.6865 29.0635 m
-26.6865 29.0635 l
-S
-59.875 54.5635 m
-59.875 54.5635 l
-S
-50.5 28.875 m
-50.5 28.875 l
-S
-60.75 47.6885 m
-60.75 47.6885 l
-S
-30.625 42.75 m
-30.625 42.75 l
-S
-26.6865 42.375 m
-26.6865 42.375 l
-S
-36.8115 40.125 m
-36.8115 40.125 l
-S
-37.75 43.5 m
-37.75 43.5 l
-S
-34.5615 45.9385 m
-34.5615 45.9385 l
-S
-32.6865 37.125 m
-32.6865 37.125 l
-S
-61.9365 42.75 m
-61.9365 42.75 l
-S
-48.4365 47.25 m
-48.4365 47.25 l
-S
-54.625 42.375 m
-54.625 42.375 l
-S
-56.3115 45.75 m
-56.3115 45.75 l
-S
-52.9365 36.5635 m
-52.9365 36.5635 l
-S
-57.8115 34.5 m
-57.8115 34.5 l
-S
-58.9365 38.625 m
-58.9365 38.625 l
-S
-61 29.4385 m
-61 29.4385 l
-S
-65.875 29.625 m
-65.875 29.625 l
-S
-70.5615 27.75 m
-70.5615 27.75 l
-S
-71.5 52.875 m
-71.5 52.875 l
-S
-69.8115 34.3135 m
-69.8115 34.3135 l
-S
-76.375 27.375 m
-76.375 27.375 l
-S
-71.3115 41.0635 m
-71.3115 41.0635 l
-S
-77.3115 45.375 m
-77.3115 45.375 l
-S
-82 28.6885 m
-82 28.6885 l
-S
-88.1865 27.5635 m
-88.1865 27.5635 l
-S
-83.6865 43.3135 m
-83.6865 43.3135 l
-S
-88 50.0635 m
-88 50.0635 l
-S
-88.1865 44.0635 m
-88.1865 44.0635 l
-S
-88.1865 33.1885 m
-88.1865 33.1885 l
-S
-70 50.4385 m
-70 50.4385 l
-S
-68.875 59.625 m
-68.875 59.625 l
-S
-66.8115 38.25 m
-66.8115 38.25 l
-S
-74.75 42.1885 m
-74.75 42.1885 l
-S
-67.375 47.0635 m
-67.375 47.0635 l
-S
-72.25 64.5 m
-72.25 64.5 l
-S
-73.5615 66.9385 m
-73.5615 66.9385 l
-S
-80.5 47.4385 m
-80.5 47.4385 l
-S
-85.5615 62.4385 m
-85.5615 62.4385 l
-S
-82.9365 71.0635 m
-82.9365 71.0635 l
-S
-69.25 69 m
-69.25 69 l
-S
-80.3115 66.75 m
-80.3115 66.75 l
-S
-84.25 53.25 m
-84.25 53.25 l
-S
-87.0615 55.875 m
-87.0615 55.875 l
-S
-77.875 70.125 m
-77.875 70.125 l
-S
-85.375 47.4385 m
-85.375 47.4385 l
-S
-67.75 64.5 m
-67.75 64.5 l
-S
-67.75 55.125 m
-67.75 55.125 l
-S
-81.625 31.125 m
-81.625 31.125 l
-S
-79.375 39 m
-79.375 39 l
-S
-75.8115 33 m
-75.8115 33 l
-S
-84.4365 37.3135 m
-84.4365 37.3135 l
-S
-76.9365 54.5635 m
-76.9365 54.5635 l
-S
-77.3115 50.625 m
-77.3115 50.625 l
-S
-79.5615 60.75 m
-79.5615 60.75 l
-S
-76.1865 61.6885 m
-76.1865 61.6885 l
-S
-73.75 58.5 m
-73.75 58.5 l
-S
-82.5615 56.625 m
-82.5615 56.625 l
-S
-72.4365 72.375 m
-72.4365 72.375 l
-S
-61.75 25.875 m
-61.75 25.875 l
-S
-57.25 26.625 m
-57.25 26.625 l
-S
-25.75 60.75 m
-25.75 60.75 l
-S
-34.1865 59.4385 m
-34.1865 59.4385 l
-S
-19.9365 61.3135 m
-19.9365 61.3135 l
-S
-31.5615 55.6885 m
-31.5615 55.6885 l
-S
-17.3115 56.625 m
-17.3115 56.625 l
-S
-25.1865 55.125 m
-25.1865 55.125 l
-S
-40.375 62.25 m
-40.375 62.25 l
-S
-46.1865 54.75 m
-46.1865 54.75 l
-S
-56.875 59.4385 m
-56.875 59.4385 l
-S
-40.25 58.1885 m
-40.25 58.1885 l
-S
-36.25 56.4385 m
-36.25 56.4385 l
-S
-49.375 56.8135 m
-49.375 56.8135 l
-S
-53.125 62.625 m
-53.125 62.625 l
-S
-54.25 56.8135 m
-54.25 56.8135 l
-S
-59.5 60 m
-59.5 60 l
-S
-46.1865 60 m
-46.1865 60 l
-S
-30.8115 28.5 m
-30.8115 28.5 l
-S
-19.75 72.9385 m
-19.75 72.9385 l
-S
-43 73.125 m
-43 73.125 l
-S
-34.5615 72.9385 m
-34.5615 72.9385 l
-S
-56.3115 72.75 m
-56.3115 72.75 l
-S
-77.875 73.125 m
-77.875 73.125 l
-S
-72.4365 0.375 m
-72.4365 0.375 l
-S
-16.1865 27.5635 m
-16.1865 27.5635 l
-S
-16 50.0635 m
-16 50.0635 l
-S
-16.1865 44.0635 m
-16.1865 44.0635 l
-S
-16.1865 33.1885 m
-16.1865 33.1885 l
-S
-6 62.3135 m
-6.208 62.3135 6.375 62.4805 6.375 62.6885 c
-6.375 62.8945 6.208 63.0635 6 63.0635 c
-5.793 63.0635 5.625 62.8945 5.625 62.6885 c
-5.625 62.4805 5.793 62.3135 6 62.3135 c
-s
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (horizontal rules)
-(horizontal rules) 16 0 88 73.9463 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6 m
-6 0 L
-F
-0 0 m
-6 6 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-88 72.9727 m
-16 72.9727 l
-S
-88 71.0273 m
-16 71.0273 L
-S
-88 67.1357 m
-16 67.1357 L
-S
-88 65.1904 m
-16 65.1904 L
-S
-88 63.2441 m
-16 63.2441 L
-S
-88 61.2979 m
-16 61.2979 L
-S
-88 57.4072 m
-16 57.4072 L
-S
-88 55.4609 m
-16 55.4609 L
-S
-88 53.5156 m
-16 53.5156 L
-S
-88 51.5703 m
-16 51.5703 L
-S
-88 49.624 m
-16 49.624 L
-S
-88 47.6787 m
-16 47.6787 L
-S
-88 45.7334 m
-16 45.7334 L
-S
-88 43.7871 m
-16 43.7871 L
-S
-88 39.8965 m
-16 39.8965 L
-S
-88 37.9502 m
-16 37.9502 L
-S
-88 36.0049 m
-16 36.0049 L
-S
-88 34.0586 m
-16 34.0586 L
-S
-88 32.1133 m
-16 32.1133 L
-S
-88 30.168 m
-16 30.168 L
-S
-88 26.2764 m
-16 26.2764 L
-S
-88 22.3848 m
-16 22.3848 L
-S
-88 20.4395 m
-16 20.4395 L
-S
-88 18.4941 m
-16 18.4941 L
-S
-88 16.5479 m
-16 16.5479 L
-S
-88 14.6016 m
-16 14.6016 L
-S
-88 12.6572 m
-16 12.6572 L
-S
-88 8.7646 m
-16 8.7646 L
-S
-88 6.8193 m
-16 6.8193 L
-S
-88 4.874 m
-16 4.874 L
-S
-88 0.9727 m
-16 0.9727 l
-S
-88 2.9277 m
-16 2.9277 L
-S
-88 69.0811 m
-16 69.0811 L
-S
-88 59.3525 m
-16 59.3525 L
-S
-88 41.8418 m
-16 41.8418 L
-S
-88 28.2217 m
-16 28.2217 L
-S
-88 24.3311 m
-16 24.3311 L
-S
-88 10.7109 m
-16 10.7109 L
-S
-6 69.0811 m
-2 69.0811 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (one direction diagonals)
-(one direction diagonals) 28.856 4.6211 100.855 76.6211 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-5.106 10.6211 m
-11.106 4.6211 L
-F
-5.106 4.6211 m
-11.106 10.6211 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 1 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-21.3716 66.1055 m
-39.3706 84.1055 l
-S
-21.3716 60.1055 m
-45.3706 84.1055 l
-S
-21.3716 54.1055 m
-51.3706 84.1055 l
-S
-21.3716 48.1055 m
-57.3706 84.1055 l
-S
-21.3716 42.1055 m
-63.3706 84.1055 l
-S
-21.3716 36.1055 m
-69.3706 84.1055 l
-S
-21.3716 30.1055 m
-75.3706 84.1055 l
-S
-21.3716 24.1055 m
-81.3706 84.1055 l
-S
-21.3716 18.1055 m
-87.3706 84.1055 l
-S
-21.3716 12.1055 m
-93.3706 84.1055 l
-S
-21.3716 6.1055 m
-99.3706 84.1055 l
-S
-21.3716 0.1064 m
-105.3706 84.1055 l
-S
-27.3716 0.1064 m
-105.3706 78.1055 l
-S
-33.3706 0.1064 m
-105.3706 72.1055 l
-S
-39.3706 0.1064 m
-105.3706 66.1055 l
-S
-45.3706 0.1064 m
-105.3706 60.1055 l
-S
-51.3706 0.1064 m
-105.3706 54.1055 l
-S
-57.3706 0.1064 m
-105.3706 48.1055 l
-S
-63.3706 0.1064 m
-105.3706 42.1055 l
-S
-69.3706 0.1064 m
-105.3706 36.1055 l
-S
-75.3706 0.1064 m
-105.3706 30.1055 l
-S
-81.3706 0.1064 m
-105.3706 24.1055 l
-S
-87.3706 0.1064 m
-105.3706 18.1055 l
-S
-93.3706 0.1064 m
-105.3706 12.1055 l
-S
-2 j
-0.106 63.1211 m
-10.106 73.1211 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (white dots)
-(white dots) 0.375 0.6885 72.375 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-13.3115 3.1885 m
-13.3115 3.1885 l
-S
-1.5 3.375 m
-1.5 3.375 l
-S
-10.875 4.6885 m
-10.875 4.6885 l
-S
-20.0615 5.8135 m
-20.0615 5.8135 l
-S
-4.125 0.9385 m
-4.125 0.9385 l
-S
-7.5 7.3135 m
-7.5 7.3135 l
-S
-24.9365 2.4385 m
-24.9365 2.4385 l
-S
-27.375 1.125 m
-27.375 1.125 l
-S
-29.4365 5.4385 m
-29.4365 5.4385 l
-S
-41.25 6.375 m
-41.25 6.375 l
-S
-49.6865 5.0635 m
-49.6865 5.0635 l
-S
-35.4365 6.9385 m
-35.4365 6.9385 l
-S
-24.9365 6.9385 m
-24.9365 6.9385 l
-S
-15.5615 6.9385 m
-15.5615 6.9385 l
-S
-44.25 9.5635 m
-44.25 9.5635 l
-S
-47.0615 1.3135 m
-47.0615 1.3135 l
-S
-18.9365 0.9385 m
-18.9365 0.9385 l
-S
-32.8115 2.25 m
-32.8115 2.25 l
-S
-40.6865 0.75 m
-40.6865 0.75 l
-S
-51 24.5635 m
-51 24.5635 l
-S
-58.6865 24.9385 m
-58.6865 24.9385 l
-S
-63.1865 24.375 m
-63.1865 24.375 l
-S
-67.3115 2.0635 m
-67.3115 2.0635 l
-S
-52.6865 11.8135 m
-52.6865 11.8135 l
-S
-70.875 17.8135 m
-70.875 17.8135 l
-S
-71.4365 4.6885 m
-71.4365 4.6885 l
-S
-64.3115 19.875 m
-64.3115 19.875 l
-S
-62.25 1.125 m
-62.25 1.125 l
-S
-54 20.25 m
-54 20.25 l
-S
-52.125 6 m
-52.125 6 l
-S
-57.75 17.625 m
-57.75 17.625 l
-S
-61.3115 16.875 m
-61.3115 16.875 l
-S
-56.8115 3.375 m
-56.8115 3.375 l
-S
-61.6865 9.5635 m
-61.6865 9.5635 l
-S
-58.3115 11.25 m
-58.3115 11.25 l
-S
-67.5 7.875 m
-67.5 7.875 l
-S
-69.5615 12.75 m
-69.5615 12.75 l
-S
-65.4365 13.875 m
-65.4365 13.875 l
-S
-2.0615 16.125 m
-2.0615 16.125 l
-S
-29.625 10.3135 m
-29.625 10.3135 l
-S
-15.9365 21.375 m
-15.9365 21.375 l
-S
-5.25 11.8135 m
-5.25 11.8135 l
-S
-19.125 18.5635 m
-19.125 18.5635 l
-S
-10.125 21.9385 m
-10.125 21.9385 l
-S
-18.9365 24.5635 m
-18.9365 24.5635 l
-S
-21.75 16.3135 m
-21.75 16.3135 l
-S
-21 12.75 m
-21 12.75 l
-S
-7.5 17.25 m
-7.5 17.25 l
-S
-13.6865 12.375 m
-13.6865 12.375 l
-S
-15.375 15.75 m
-15.375 15.75 l
-S
-30.5615 22.875 m
-30.5615 22.875 l
-S
-36.375 15.375 m
-36.375 15.375 l
-S
-42.75 13.3135 m
-42.75 13.3135 l
-S
-47.0615 20.0635 m
-47.0615 20.0635 l
-S
-47.25 14.0635 m
-47.25 14.0635 l
-S
-29.0615 20.4385 m
-29.0615 20.4385 l
-S
-31.125 15.1885 m
-31.125 15.1885 l
-S
-26.4365 17.0635 m
-26.4365 17.0635 l
-S
-39.5615 17.4385 m
-39.5615 17.4385 l
-S
-43.3115 23.25 m
-43.3115 23.25 l
-S
-44.4365 17.4385 m
-44.4365 17.4385 l
-S
-26.8115 25.125 m
-26.8115 25.125 l
-S
-49.6865 20.625 m
-49.6865 20.625 l
-S
-36 24.5635 m
-36 24.5635 l
-S
-36.375 20.625 m
-36.375 20.625 l
-S
-3.1865 24 m
-3.1865 24 l
-S
-5.625 24.9385 m
-5.625 24.9385 l
-S
-3.75 70.875 m
-3.75 70.875 l
-S
-10.5 66.5635 m
-10.5 66.5635 l
-S
-4.5 66.375 m
-4.5 66.375 l
-S
-22.875 69 m
-22.875 69 l
-S
-31.5 71.625 m
-31.5 71.625 l
-S
-47.25 68.0635 m
-47.25 68.0635 l
-S
-34.125 67.5 m
-34.125 67.5 l
-S
-23.25 65.625 m
-23.25 65.625 l
-S
-13.6865 70.3135 m
-13.6865 70.3135 l
-S
-16.3115 67.5 m
-16.3115 67.5 l
-S
-41.625 65.4385 m
-41.625 65.4385 l
-S
-7.875 69.1885 m
-7.875 69.1885 l
-S
-30 65.25 m
-30 65.25 l
-S
-11.0615 63.9385 m
-11.0615 63.9385 l
-S
-34.875 63.75 m
-34.875 63.75 l
-S
-17.0615 72 m
-17.0615 72 l
-S
-37.3115 71.4385 m
-37.3115 71.4385 l
-S
-42.1865 69.375 m
-42.1865 69.375 l
-S
-45.375 64.3135 m
-45.375 64.3135 l
-S
-13.3115 48.1885 m
-13.3115 48.1885 l
-S
-1.5 48.375 m
-1.5 48.375 l
-S
-5.8115 42.375 m
-5.8115 42.375 l
-S
-3.75 36 m
-3.75 36 l
-S
-10.5 31.6885 m
-10.5 31.6885 l
-S
-4.5 31.5 m
-4.5 31.5 l
-S
-10.875 49.6885 m
-10.875 49.6885 l
-S
-20.0615 50.8135 m
-20.0615 50.8135 l
-S
-4.125 45.9385 m
-4.125 45.9385 l
-S
-7.5 52.3135 m
-7.5 52.3135 l
-S
-24.9365 47.4385 m
-24.9365 47.4385 l
-S
-27.375 46.125 m
-27.375 46.125 l
-S
-7.875 39.1885 m
-7.875 39.1885 l
-S
-22.875 34.125 m
-22.875 34.125 l
-S
-31.5 36.75 m
-31.5 36.75 l
-S
-29.4365 50.4385 m
-29.4365 50.4385 l
-S
-41.25 51.375 m
-41.25 51.375 l
-S
-27.1865 39.375 m
-27.1865 39.375 l
-S
-47.25 33.1885 m
-47.25 33.1885 l
-S
-34.125 32.625 m
-34.125 32.625 l
-S
-23.25 30.75 m
-23.25 30.75 l
-S
-13.6865 35.4385 m
-13.6865 35.4385 l
-S
-16.3115 32.625 m
-16.3115 32.625 l
-S
-39.125 30.1885 m
-39.125 30.1885 l
-S
-49.3115 39.75 m
-49.3115 39.75 l
-S
-30.5615 41.8135 m
-30.5615 41.8135 l
-S
-49.6865 50.0635 m
-49.6865 50.0635 l
-S
-35.4365 51.9385 m
-35.4365 51.9385 l
-S
-7.875 34.3135 m
-7.875 34.3135 l
-S
-24.9365 51.9385 m
-24.9365 51.9385 l
-S
-15.5615 51.9385 m
-15.5615 51.9385 l
-S
-30 30.375 m
-30 30.375 l
-S
-11.0615 29.0635 m
-11.0615 29.0635 l
-S
-44.25 54.5635 m
-44.25 54.5635 l
-S
-34.875 28.875 m
-34.875 28.875 l
-S
-45.125 47.6885 m
-45.125 47.6885 l
-S
-15 42.75 m
-15 42.75 l
-S
-11.0615 42.375 m
-11.0615 42.375 l
-S
-21.1865 40.125 m
-21.1865 40.125 l
-S
-22.125 43.5 m
-22.125 43.5 l
-S
-18.9365 45.9385 m
-18.9365 45.9385 l
-S
-17.0615 37.125 m
-17.0615 37.125 l
-S
-46.3115 42.75 m
-46.3115 42.75 l
-S
-32.8115 47.25 m
-32.8115 47.25 l
-S
-39 42.375 m
-39 42.375 l
-S
-40.6865 45.75 m
-40.6865 45.75 l
-S
-37.3115 36.5635 m
-37.3115 36.5635 l
-S
-42.1865 34.5 m
-42.1865 34.5 l
-S
-43.3115 38.625 m
-43.3115 38.625 l
-S
-45.375 29.4385 m
-45.375 29.4385 l
-S
-50.25 29.625 m
-50.25 29.625 l
-S
-54.9365 27.75 m
-54.9365 27.75 l
-S
-55.875 52.875 m
-55.875 52.875 l
-S
-54.1865 34.3135 m
-54.1865 34.3135 l
-S
-60.75 27.375 m
-60.75 27.375 l
-S
-55.6865 41.0635 m
-55.6865 41.0635 l
-S
-61.6865 45.375 m
-61.6865 45.375 l
-S
-66.375 28.6885 m
-66.375 28.6885 l
-S
-72.5615 27.5635 m
-72.5615 27.5635 l
-S
-68.0615 43.3135 m
-68.0615 43.3135 l
-S
-72.375 50.0635 m
-72.375 50.0635 l
-S
-72.5615 44.0635 m
-72.5615 44.0635 l
-S
-72.5615 33.1885 m
-72.5615 33.1885 l
-S
-54.375 50.4385 m
-54.375 50.4385 l
-S
-53.25 59.625 m
-53.25 59.625 l
-S
-51.1865 38.25 m
-51.1865 38.25 l
-S
-59.125 42.1885 m
-59.125 42.1885 l
-S
-51.75 47.0635 m
-51.75 47.0635 l
-S
-56.625 64.5 m
-56.625 64.5 l
-S
-57.9365 66.9385 m
-57.9365 66.9385 l
-S
-64.875 47.4385 m
-64.875 47.4385 l
-S
-69.9365 62.4385 m
-69.9365 62.4385 l
-S
-67.3115 71.0635 m
-67.3115 71.0635 l
-S
-53.625 69 m
-53.625 69 l
-S
-64.6865 66.75 m
-64.6865 66.75 l
-S
-68.625 53.25 m
-68.625 53.25 l
-S
-71.4365 55.875 m
-71.4365 55.875 l
-S
-62.25 70.125 m
-62.25 70.125 l
-S
-69.75 47.4385 m
-69.75 47.4385 l
-S
-52.125 64.5 m
-52.125 64.5 l
-S
-52.125 55.125 m
-52.125 55.125 l
-S
-66 31.125 m
-66 31.125 l
-S
-63.75 39 m
-63.75 39 l
-S
-60.1865 33 m
-60.1865 33 l
-S
-68.8115 37.3135 m
-68.8115 37.3135 l
-S
-61.3115 54.5635 m
-61.3115 54.5635 l
-S
-61.6865 50.625 m
-61.6865 50.625 l
-S
-63.9365 60.75 m
-63.9365 60.75 l
-S
-60.5615 61.6885 m
-60.5615 61.6885 l
-S
-58.125 58.5 m
-58.125 58.5 l
-S
-66.9365 56.625 m
-66.9365 56.625 l
-S
-56.8115 72.375 m
-56.8115 72.375 l
-S
-46.125 25.875 m
-46.125 25.875 l
-S
-41.625 26.625 m
-41.625 26.625 l
-S
-10.125 60.75 m
-10.125 60.75 l
-S
-18.5615 59.4385 m
-18.5615 59.4385 l
-S
-4.3115 61.3135 m
-4.3115 61.3135 l
-S
-15.9365 55.6885 m
-15.9365 55.6885 l
-S
-1.6865 56.625 m
-1.6865 56.625 l
-S
-9.5615 55.125 m
-9.5615 55.125 l
-S
-24.75 62.25 m
-24.75 62.25 l
-S
-30.5615 54.75 m
-30.5615 54.75 l
-S
-41.25 59.4385 m
-41.25 59.4385 l
-S
-24.625 58.1885 m
-24.625 58.1885 l
-S
-20.625 56.4385 m
-20.625 56.4385 l
-S
-33.75 56.8135 m
-33.75 56.8135 l
-S
-37.5 62.625 m
-37.5 62.625 l
-S
-38.625 56.8135 m
-38.625 56.8135 l
-S
-43.875 60 m
-43.875 60 l
-S
-30.5615 60 m
-30.5615 60 l
-S
-15.1865 28.5 m
-15.1865 28.5 l
-S
-4.125 72.9385 m
-4.125 72.9385 l
-S
-27.375 73.125 m
-27.375 73.125 l
-S
-18.9365 72.9385 m
-18.9365 72.9385 l
-S
-40.6865 72.75 m
-40.6865 72.75 l
-S
-62.25 73.125 m
-62.25 73.125 l
-S
-56.8115 0.375 m
-56.8115 0.375 l
-S
-0.5615 27.5635 m
-0.5615 27.5635 l
-S
-0.375 50.0635 m
-0.375 50.0635 l
-S
-0.5615 44.0635 m
-0.5615 44.0635 l
-S
-0.5615 33.1885 m
-0.5615 33.1885 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginBrushPattern
-(New Pattern 2)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7838.1201 8586 L
--7838.1201 8500.6914 L
--7884 8500.6914 L
--7884 8586 L
-n
-u
--7850.4111 8533.3125 m
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
-n
--7843.6582 8532.1602 m
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
-n
--7870.0361 8579.5879 m
--7870.0688 8579.5859 -7870.1006 8579.584 -7870.1318 8579.5801 c
--7870.1162 8579.582 -7870.1016 8579.584 -7870.0854 8579.585 c
--7870.0703 8579.5859 -7870.0527 8579.5879 -7870.0361 8579.5879 c
-n
--7854.5366 8533.6719 m
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
-n
--7839.1553 8576.4043 m
--7839.0625 8576.3281 -7838.9775 8576.252 -7838.9009 8576.1758 c
--7838.5967 8575.8672 -7838.4385 8575.5469 -7838.4385 8575.2207 c
--7838.4385 8575.6289 -7838.689 8576.0254 -7839.1553 8576.4043 c
-n
--7877.3232 8578.5703 m
--7877.3247 8578.5703 -7877.3281 8578.5693 -7877.3311 8578.5684 c
--7877.3306 8578.5693 -7877.3281 8578.5693 -7877.3271 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3232 8578.5703 c
-n
--7882.21 8577.0645 m
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.21 8577.0645 L
-n
--7858.9209 8533.8545 m
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
-n
--7863.582 8533.8535 m
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
-n
--7865.667 8533.7881 m
--7865.7642 8533.7842 -7865.8594 8533.7793 -7865.9561 8533.7754 c
--7865.9058 8533.7773 -7865.8608 8533.7813 -7865.8096 8533.7832 c
--7865.7642 8533.7852 -7865.7134 8533.7861 -7865.667 8533.7881 c
-n
--7884 8529.1426 m
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 c
-n
--7868.0718 8533.6602 m
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
-n
--7878.811 8532.1523 m
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
-n
--7872.1201 8533.3027 m
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
-n
--7838.4385 8529.1426 m
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
-n
--7839.0342 8530.2168 m
--7839.332 8530.4844 -7839.731 8530.7432 -7840.2358 8530.9902 c
--7840.2334 8530.9893 -7840.231 8530.9883 -7840.229 8530.9863 c
--7839.7271 8530.7402 -7839.3311 8530.4834 -7839.0342 8530.2168 c
-n
--7841.187 8531.4004 m
--7841.187 8531.4004 L
--7841.187 8531.4004 L
-n
--7884 8575.2207 m
--7884 8575.5 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.501 -7884 8575.2207 c
-n
--7856.4824 8533.7754 m
--7856.5791 8533.7793 -7856.6758 8533.7842 -7856.7729 8533.7881 c
--7856.7246 8533.7861 -7856.6758 8533.7852 -7856.6279 8533.7832 c
--7856.5791 8533.7813 -7856.5313 8533.7773 -7856.4824 8533.7754 c
-n
--7872.0942 8579.3828 m
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
-n
--7882.2026 8530.9902 m
--7882.46 8530.8633 -7882.687 8530.7344 -7882.8936 8530.6016 c
--7882.6904 8530.7324 -7882.4639 8530.8613 -7882.21 8530.9863 c
--7882.208 8530.9883 -7882.2041 8530.9893 -7882.2026 8530.9902 c
-n
--7854.4766 8579.7461 m
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
-n
--7840.229 8577.0645 m
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7840.229 8577.0645 L
-n
--7852.2998 8579.5801 m
--7852.335 8579.583 -7852.3706 8579.5859 -7852.4072 8579.5898 c
--7852.3882 8579.5879 -7852.3706 8579.5869 -7852.3521 8579.585 c
--7852.334 8579.584 -7852.3174 8579.582 -7852.2998 8579.5801 c
-n
--7856.5601 8579.8574 m
--7856.6055 8579.8594 -7856.6514 8579.8613 -7856.6958 8579.8633 c
--7856.6738 8579.8623 -7856.6494 8579.8613 -7856.6279 8579.8613 c
--7856.6055 8579.8604 -7856.583 8579.8584 -7856.5601 8579.8574 c
-n
--7868.0186 8579.7422 m
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
-n
--7850.3882 8579.3887 m
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
-n
--7865.7422 8579.8633 m
--7865.7881 8579.8613 -7865.833 8579.8594 -7865.8774 8579.8574 c
--7865.8545 8579.8584 -7865.833 8579.8604 -7865.8096 8579.8613 c
--7865.7881 8579.8613 -7865.7646 8579.8623 -7865.7422 8579.8633 c
-n
-0 O
-0.8 g
--7839.1553 8576.4043 m
--7839.437 8576.6309 -7839.7959 8576.8516 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7840.229 8577.0645 L
--7842.2422 8578.0547 -7845.8286 8578.8721 -7850.3369 8579.3828 c
--7850.3535 8579.3848 -7850.3706 8579.3867 -7850.3882 8579.3887 c
--7851.0088 8579.458 -7851.6465 8579.5215 -7852.2998 8579.5801 c
--7852.3174 8579.582 -7852.334 8579.584 -7852.3521 8579.585 c
--7852.3706 8579.5869 -7852.3882 8579.5879 -7852.4072 8579.5898 c
--7853.0615 8579.6465 -7853.7305 8579.6973 -7854.4146 8579.7422 c
--7854.4346 8579.7432 -7854.4561 8579.7441 -7854.4766 8579.7461 c
--7855.1567 8579.79 -7855.853 8579.8262 -7856.5601 8579.8574 c
--7856.583 8579.8584 -7856.6055 8579.8604 -7856.6279 8579.8613 c
--7856.6494 8579.8613 -7856.6738 8579.8623 -7856.6958 8579.8633 c
--7858.1567 8579.9238 -7859.6694 8579.957 -7861.2202 8579.957 c
--7862.769 8579.957 -7864.2798 8579.9238 -7865.7422 8579.8633 c
--7865.7646 8579.8623 -7865.7881 8579.8613 -7865.8096 8579.8613 c
--7865.833 8579.8604 -7865.8545 8579.8584 -7865.8774 8579.8574 c
--7866.5854 8579.8262 -7867.2832 8579.7891 -7867.9658 8579.7461 c
--7867.9834 8579.7441 -7868.001 8579.7432 -7868.0186 8579.7422 c
--7868.7065 8579.6973 -7869.3799 8579.6465 -7870.0361 8579.5879 c
--7870.0527 8579.5879 -7870.0703 8579.5859 -7870.0854 8579.585 c
--7870.1016 8579.584 -7870.1162 8579.582 -7870.1318 8579.5801 c
--7870.7886 8579.5225 -7871.4321 8579.458 -7872.0562 8579.3877 c
--7872.0698 8579.3867 -7872.083 8579.3848 -7872.0942 8579.3828 c
--7874.0234 8579.165 -7875.7832 8578.8906 -7877.3232 8578.5703 c
--7877.3247 8578.5703 -7877.3247 8578.5703 -7877.3271 8578.5703 c
--7877.3281 8578.5693 -7877.3306 8578.5693 -7877.3311 8578.5684 c
--7879.3896 8578.1406 -7881.0576 8577.6309 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7882.21 8577.0645 L
--7882.8682 8576.7402 -7883.353 8576.3984 -7883.6514 8576.042 c
--7883.876 8575.7754 -7884 8575.5 -7884 8575.2207 C
--7884 8581.2637 L
--7884 8581.5908 -7883.8408 8581.9102 -7883.5361 8582.2188 c
--7883.2334 8582.5273 -7882.7866 8582.8242 -7882.21 8583.1074 c
--7881.6328 8583.3906 -7880.9287 8583.6602 -7880.1089 8583.9121 c
--7879.29 8584.1641 -7878.3584 8584.3984 -7877.3271 8584.6133 c
--7876.2959 8584.8281 -7875.168 8585.0215 -7873.9561 8585.1914 c
--7872.7432 8585.3623 -7871.4497 8585.5088 -7870.0854 8585.6279 c
--7868.7231 8585.749 -7867.293 8585.8418 -7865.8096 8585.9043 c
--7864.3271 8585.9668 -7862.792 8586 -7861.2202 8586 c
--7859.6465 8586 -7858.1104 8585.9668 -7856.6279 8585.9043 c
--7855.145 8585.8418 -7853.7134 8585.749 -7852.3521 8585.6279 c
--7850.9897 8585.5088 -7849.6934 8585.3623 -7848.4814 8585.1914 c
--7847.2695 8585.0215 -7846.1416 8584.8281 -7845.1104 8584.6133 c
--7844.0801 8584.3984 -7843.147 8584.1641 -7842.3286 8583.9121 c
--7841.5103 8583.6602 -7840.8042 8583.3906 -7840.229 8583.1074 c
--7839.6514 8582.8242 -7839.2041 8582.5273 -7838.9009 8582.2188 c
--7838.5967 8581.9102 -7838.4385 8581.5908 -7838.4385 8581.2637 C
--7838.4385 8575.2207 L
--7838.4385 8575.5469 -7838.5967 8575.8672 -7838.9009 8576.1758 c
--7838.9775 8576.252 -7839.0625 8576.3281 -7839.1553 8576.4043 c
-f
-0.5 g
--7848.209 8572.2383 m
--7847.9424 8572.2383 L
--7847.9424 8572.4561 -7848.041 8572.6621 -7848.209 8572.8555 C
--7848.209 8574.0039 L
--7848.209 8574.1914 -7848.2998 8574.373 -7848.4736 8574.5488 c
--7848.6455 8574.7256 -7848.9014 8574.8945 -7849.231 8575.0566 c
--7849.5615 8575.2197 -7849.9639 8575.373 -7850.4302 8575.5166 c
--7850.8984 8575.6602 -7851.4302 8575.7949 -7852.0186 8575.917 c
--7852.6079 8576.0391 -7853.2529 8576.1504 -7853.9438 8576.248 c
--7854.6377 8576.3447 -7855.376 8576.4277 -7856.1543 8576.4961 c
--7856.9326 8576.5645 -7857.749 8576.6191 -7858.5967 8576.6543 c
--7859.4438 8576.6895 -7860.3218 8576.709 -7861.2192 8576.709 c
--7862.1162 8576.709 -7862.9946 8576.6895 -7863.8408 8576.6543 c
--7864.687 8576.6191 -7865.5049 8576.5645 -7866.2822 8576.4961 c
--7867.061 8576.4277 -7867.8008 8576.3447 -7868.4927 8576.248 c
--7869.1846 8576.1504 -7869.8306 8576.0391 -7870.418 8575.917 c
--7871.0063 8575.7949 -7871.54 8575.6602 -7872.0063 8575.5166 c
--7872.4746 8575.373 -7872.8774 8575.2197 -7873.2065 8575.0566 c
--7873.5361 8574.8945 -7873.792 8574.7256 -7873.9658 8574.5488 c
--7874.1377 8574.373 -7874.2295 8574.1914 -7874.2295 8574.0039 C
--7874.2295 8572.8555 L
--7874.3975 8572.6621 -7874.4961 8572.4561 -7874.4961 8572.2383 C
--7874.2295 8572.2383 L
--7874.2295 8571.4912 L
--7874.2695 8571.4453 -7874.2974 8571.3965 -7874.3286 8571.3486 C
--7880.1768 8572.2051 -7884 8573.6191 -7884 8575.2207 c
--7884 8575.501 -7883.876 8575.7754 -7883.6514 8576.042 c
--7883.353 8576.3984 -7882.8682 8576.7402 -7882.21 8577.0645 C
--7882.21 8577.0645 L
--7881.0576 8577.6309 -7879.3896 8578.1406 -7877.3311 8578.5684 c
--7877.3281 8578.5693 -7877.3247 8578.5703 -7877.3232 8578.5703 c
--7875.7832 8578.8906 -7874.0234 8579.165 -7872.0942 8579.3828 c
--7872.083 8579.3848 -7872.0698 8579.3867 -7872.0562 8579.3877 c
--7871.4321 8579.458 -7870.7886 8579.5225 -7870.1318 8579.5801 c
--7870.1006 8579.584 -7870.0688 8579.5859 -7870.0361 8579.5879 c
--7869.3799 8579.6465 -7868.7065 8579.6973 -7868.0186 8579.7422 c
--7868.001 8579.7432 -7867.9834 8579.7441 -7867.9658 8579.7461 c
--7867.2832 8579.7891 -7866.5854 8579.8262 -7865.8774 8579.8574 c
--7865.833 8579.8594 -7865.7881 8579.8613 -7865.7422 8579.8633 c
--7864.2798 8579.9238 -7862.769 8579.957 -7861.2202 8579.957 c
--7859.6694 8579.957 -7858.1567 8579.9238 -7856.6958 8579.8633 c
--7856.6514 8579.8613 -7856.6055 8579.8594 -7856.5601 8579.8574 c
--7855.853 8579.8262 -7855.1567 8579.79 -7854.4766 8579.7461 c
--7854.4561 8579.7441 -7854.4346 8579.7432 -7854.4146 8579.7422 c
--7853.7305 8579.6973 -7853.0615 8579.6465 -7852.4072 8579.5898 c
--7852.3706 8579.5859 -7852.335 8579.583 -7852.2998 8579.5801 c
--7851.6465 8579.5215 -7851.0088 8579.458 -7850.3882 8579.3887 c
--7850.3706 8579.3867 -7850.3535 8579.3848 -7850.3369 8579.3828 c
--7845.8286 8578.8721 -7842.2422 8578.0547 -7840.229 8577.0645 C
--7840.229 8577.0645 L
--7839.7959 8576.8516 -7839.437 8576.6309 -7839.1553 8576.4043 c
--7838.689 8576.0254 -7838.4385 8575.6289 -7838.4385 8575.2207 c
--7838.4385 8573.6191 -7842.2617 8572.2051 -7848.1104 8571.3486 C
--7848.1392 8571.3965 -7848.1689 8571.4453 -7848.209 8571.4912 C
--7848.209 8572.2383 L
-f
-0.55 g
--7861.2202 8558.7959 m
--7866.9199 8558.7959 -7872.9287 8557.9863 -7874.2295 8556.4746 C
--7874.2295 8557.2227 L
--7874.0454 8557.2227 L
--7874.0454 8558.3994 -7868.7783 8559.7109 -7861.2202 8559.7109 c
--7853.6602 8559.7109 -7848.3921 8558.3994 -7848.3921 8557.2227 C
--7848.209 8557.2227 L
--7848.209 8556.4746 L
--7849.5088 8557.9863 -7855.5166 8558.7959 -7861.2202 8558.7959 c
-f
--7861.2202 8549.2402 m
--7866.9199 8549.2402 -7872.9287 8548.4307 -7874.2295 8546.9199 C
--7874.2295 8547.666 L
--7874.0454 8547.666 L
--7874.0454 8548.8438 -7868.7783 8550.1563 -7861.2202 8550.1563 c
--7853.6602 8550.1563 -7848.3921 8548.8438 -7848.3921 8547.666 C
--7848.209 8547.666 L
--7848.209 8546.9199 L
--7849.5088 8548.4307 -7855.5166 8549.2402 -7861.2202 8549.2402 c
-f
--7861.2202 8560.1611 m
--7866.9199 8560.1611 -7872.9287 8559.3516 -7874.2295 8557.8398 C
--7874.2295 8558.5879 L
--7874.0454 8558.5879 L
--7874.0454 8559.7646 -7868.7783 8561.0762 -7861.2202 8561.0762 c
--7853.6602 8561.0762 -7848.3921 8559.7646 -7848.3921 8558.5879 C
--7848.209 8558.5879 L
--7848.209 8557.8398 L
--7849.5088 8559.3516 -7855.5166 8560.1611 -7861.2202 8560.1611 c
-f
--7861.2202 8561.5264 m
--7866.9199 8561.5264 -7872.9287 8560.7168 -7874.2295 8559.2051 C
--7874.2295 8559.9531 L
--7874.0454 8559.9531 L
--7874.0454 8561.1299 -7868.7783 8562.4414 -7861.2202 8562.4414 c
--7853.6602 8562.4414 -7848.3921 8561.1299 -7848.3921 8559.9531 C
--7848.209 8559.9531 L
--7848.209 8559.2051 L
--7849.5088 8560.7168 -7855.5166 8561.5264 -7861.2202 8561.5264 c
-f
--7861.2202 8550.6055 m
--7866.9199 8550.6055 -7872.9287 8549.7959 -7874.2295 8548.2852 C
--7874.2295 8549.0322 L
--7874.0454 8549.0322 L
--7874.0454 8550.209 -7868.7783 8551.5205 -7861.2202 8551.5205 c
--7853.6602 8551.5205 -7848.3921 8550.209 -7848.3921 8549.0322 C
--7848.209 8549.0322 L
--7848.209 8548.2852 L
--7849.5088 8549.7959 -7855.5166 8550.6055 -7861.2202 8550.6055 c
-f
--7861.2202 8554.7012 m
--7866.9199 8554.7012 -7872.9287 8553.8906 -7874.2295 8552.3789 C
--7874.2295 8553.127 L
--7874.0454 8553.127 L
--7874.0454 8554.3047 -7868.7783 8555.6162 -7861.2202 8555.6162 c
--7853.6602 8555.6162 -7848.3921 8554.3047 -7848.3921 8553.127 C
--7848.209 8553.127 L
--7848.209 8552.3789 L
--7849.5088 8553.8906 -7855.5166 8554.7012 -7861.2202 8554.7012 c
-f
--7861.2202 8557.4316 m
--7866.9199 8557.4316 -7872.9287 8556.6211 -7874.2295 8555.1104 C
--7874.2295 8555.8574 L
--7874.0454 8555.8574 L
--7874.0454 8557.0342 -7868.7783 8558.3457 -7861.2202 8558.3457 c
--7853.6602 8558.3457 -7848.3921 8557.0342 -7848.3921 8555.8574 C
--7848.209 8555.8574 L
--7848.209 8555.1104 L
--7849.5088 8556.6211 -7855.5166 8557.4316 -7861.2202 8557.4316 c
-f
--7861.2202 8553.3359 m
--7866.9199 8553.3359 -7872.9287 8552.5254 -7874.2295 8551.0146 C
--7874.2295 8551.7617 L
--7874.0454 8551.7617 L
--7874.0454 8552.9395 -7868.7783 8554.25 -7861.2202 8554.25 c
--7853.6602 8554.25 -7848.3921 8552.9395 -7848.3921 8551.7617 C
--7848.209 8551.7617 L
--7848.209 8551.0146 L
--7849.5088 8552.5254 -7855.5166 8553.3359 -7861.2202 8553.3359 c
-f
--7861.2202 8543.7803 m
--7866.9199 8543.7803 -7872.9287 8542.9707 -7874.2295 8541.459 C
--7874.2295 8542.2061 L
--7874.0454 8542.2061 L
--7874.0454 8543.3828 -7868.7783 8544.6953 -7861.2202 8544.6953 c
--7853.6602 8544.6953 -7848.3921 8543.3828 -7848.3921 8542.2061 C
--7848.209 8542.2061 L
--7848.209 8541.459 L
--7849.5088 8542.9707 -7855.5166 8543.7803 -7861.2202 8543.7803 c
-f
--7861.2202 8546.5098 m
--7866.9199 8546.5098 -7872.9287 8545.7012 -7874.2295 8544.1895 C
--7874.2295 8544.9375 L
--7874.0454 8544.9375 L
--7874.0454 8546.1133 -7868.7783 8547.4248 -7861.2202 8547.4248 c
--7853.6602 8547.4248 -7848.3921 8546.1133 -7848.3921 8544.9375 C
--7848.209 8544.9375 L
--7848.209 8544.1895 L
--7849.5088 8545.7012 -7855.5166 8546.5098 -7861.2202 8546.5098 c
-f
--7861.2202 8556.0664 m
--7866.9199 8556.0664 -7872.9287 8555.2559 -7874.2295 8553.7451 C
--7874.2295 8554.4922 L
--7874.0454 8554.4922 L
--7874.0454 8555.6689 -7868.7783 8556.9805 -7861.2202 8556.9805 c
--7853.6602 8556.9805 -7848.3921 8555.6689 -7848.3921 8554.4922 C
--7848.209 8554.4922 L
--7848.209 8553.7451 L
--7849.5088 8555.2559 -7855.5166 8556.0664 -7861.2202 8556.0664 c
-f
--7861.2202 8551.9707 m
--7866.9199 8551.9707 -7872.9287 8551.1611 -7874.2295 8549.6504 C
--7874.2295 8550.3965 L
--7874.0454 8550.3965 L
--7874.0454 8551.5742 -7868.7783 8552.8857 -7861.2202 8552.8857 c
--7853.6602 8552.8857 -7848.3921 8551.5742 -7848.3921 8550.3965 C
--7848.209 8550.3965 L
--7848.209 8549.6504 L
--7849.5088 8551.1611 -7855.5166 8551.9707 -7861.2202 8551.9707 c
-f
--7861.2202 8545.1445 m
--7866.9199 8545.1445 -7872.9287 8544.3359 -7874.2295 8542.8242 C
--7874.2295 8543.5723 L
--7874.0454 8543.5723 L
--7874.0454 8544.748 -7868.7783 8546.0605 -7861.2202 8546.0605 c
--7853.6602 8546.0605 -7848.3921 8544.748 -7848.3921 8543.5723 C
--7848.209 8543.5723 L
--7848.209 8542.8242 L
--7849.5088 8544.3359 -7855.5166 8545.1445 -7861.2202 8545.1445 c
-f
--7861.2202 8547.875 m
--7866.9199 8547.875 -7872.9287 8547.0654 -7874.2295 8545.5547 C
--7874.2295 8546.3008 L
--7874.0454 8546.3008 L
--7874.0454 8547.4785 -7868.7783 8548.791 -7861.2202 8548.791 c
--7853.6602 8548.791 -7848.3921 8547.4785 -7848.3921 8546.3008 C
--7848.209 8546.3008 L
--7848.209 8545.5547 L
--7849.5088 8547.0654 -7855.5166 8547.875 -7861.2202 8547.875 c
-f
--7861.2202 8568.3516 m
--7866.9199 8568.3516 -7872.9287 8567.543 -7874.2295 8566.0313 C
--7874.2295 8566.7783 L
--7874.0454 8566.7783 L
--7874.0454 8567.9551 -7868.7783 8569.2666 -7861.2202 8569.2666 c
--7853.6602 8569.2666 -7848.3921 8567.9551 -7848.3921 8566.7783 C
--7848.209 8566.7783 L
--7848.209 8566.0313 L
--7849.5088 8567.543 -7855.5166 8568.3516 -7861.2202 8568.3516 c
-f
--7861.2202 8572.4473 m
--7866.9199 8572.4473 -7872.9287 8571.6377 -7874.2295 8570.127 C
--7874.2295 8570.873 L
--7874.0454 8570.873 L
--7874.0454 8572.0508 -7868.7783 8573.3623 -7861.2202 8573.3623 c
--7853.6602 8573.3623 -7848.3921 8572.0508 -7848.3921 8570.873 C
--7848.209 8570.873 L
--7848.209 8570.127 L
--7849.5088 8571.6377 -7855.5166 8572.4473 -7861.2202 8572.4473 c
-f
--7861.2202 8571.082 m
--7866.9199 8571.082 -7872.9287 8570.2715 -7874.2295 8568.7607 C
--7874.2295 8569.5078 L
--7874.0454 8569.5078 L
--7874.0454 8570.6855 -7868.7783 8571.998 -7861.2202 8571.998 c
--7853.6602 8571.998 -7848.3921 8570.6855 -7848.3921 8569.5078 C
--7848.209 8569.5078 L
--7848.209 8568.7607 L
--7849.5088 8570.2715 -7855.5166 8571.082 -7861.2202 8571.082 c
-f
--7861.2202 8562.8906 m
--7866.9199 8562.8906 -7872.9287 8562.082 -7874.2295 8560.5703 C
--7874.2295 8561.3184 L
--7874.0454 8561.3184 L
--7874.0454 8562.4941 -7868.7783 8563.8066 -7861.2202 8563.8066 c
--7853.6602 8563.8066 -7848.3921 8562.4941 -7848.3921 8561.3184 C
--7848.209 8561.3184 L
--7848.209 8560.5703 L
--7849.5088 8562.082 -7855.5166 8562.8906 -7861.2202 8562.8906 c
-f
--7861.2202 8566.9863 m
--7866.9199 8566.9863 -7872.9287 8566.1768 -7874.2295 8564.666 C
--7874.2295 8565.4131 L
--7874.0454 8565.4131 L
--7874.0454 8566.5898 -7868.7783 8567.9023 -7861.2202 8567.9023 c
--7853.6602 8567.9023 -7848.3921 8566.5898 -7848.3921 8565.4131 C
--7848.209 8565.4131 L
--7848.209 8564.666 L
--7849.5088 8566.1768 -7855.5166 8566.9863 -7861.2202 8566.9863 c
-f
--7861.2202 8565.6211 m
--7866.9199 8565.6211 -7872.9287 8564.8115 -7874.2295 8563.3008 C
--7874.2295 8564.0479 L
--7874.0454 8564.0479 L
--7874.0454 8565.2246 -7868.7783 8566.5371 -7861.2202 8566.5371 c
--7853.6602 8566.5371 -7848.3921 8565.2246 -7848.3921 8564.0479 C
--7848.209 8564.0479 L
--7848.209 8563.3008 L
--7849.5088 8564.8115 -7855.5166 8565.6211 -7861.2202 8565.6211 c
-f
--7861.2202 8564.2559 m
--7866.9199 8564.2559 -7872.9287 8563.4473 -7874.2295 8561.9355 C
--7874.2295 8562.6826 L
--7874.0454 8562.6826 L
--7874.0454 8563.8594 -7868.7783 8565.1719 -7861.2202 8565.1719 c
--7853.6602 8565.1719 -7848.3921 8563.8594 -7848.3921 8562.6826 C
--7848.209 8562.6826 L
--7848.209 8561.9355 L
--7849.5088 8563.4473 -7855.5166 8564.2559 -7861.2202 8564.2559 c
-f
--7861.2202 8569.7168 m
--7866.9199 8569.7168 -7872.9287 8568.9072 -7874.2295 8567.3965 C
--7874.2295 8568.1426 L
--7874.0454 8568.1426 L
--7874.0454 8569.3203 -7868.7783 8570.6318 -7861.2202 8570.6318 c
--7853.6602 8570.6318 -7848.3921 8569.3203 -7848.3921 8568.1426 C
--7848.209 8568.1426 L
--7848.209 8567.3965 L
--7849.5088 8568.9072 -7855.5166 8569.7168 -7861.2202 8569.7168 c
-f
--7852.3521 8539.5498 m
--7853.7134 8539.6699 -7855.145 8539.7637 -7856.6279 8539.8262 c
--7858.1104 8539.8887 -7859.6465 8539.9229 -7861.2202 8539.9229 c
--7862.792 8539.9229 -7864.3271 8539.8887 -7865.8096 8539.8262 c
--7867.293 8539.7637 -7868.7231 8539.6699 -7870.0854 8539.5498 c
--7871.4497 8539.4307 -7872.7432 8539.2852 -7873.9561 8539.1143 c
--7874.0498 8539.1016 -7874.1362 8539.085 -7874.2295 8539.0713 C
--7874.2295 8539.4766 L
--7874.0454 8539.4766 L
--7874.0454 8540.6523 -7868.7783 8541.9648 -7861.2202 8541.9648 c
--7853.6602 8541.9648 -7848.3921 8540.6523 -7848.3921 8539.4766 C
--7848.209 8539.4766 L
--7848.209 8539.0723 L
--7848.3018 8539.085 -7848.3882 8539.1016 -7848.4814 8539.1143 c
--7849.6934 8539.2852 -7850.9897 8539.4307 -7852.3521 8539.5498 c
-f
--7861.2202 8542.415 m
--7866.9199 8542.415 -7872.9287 8541.6055 -7874.2295 8540.0938 C
--7874.2295 8540.8418 L
--7874.0454 8540.8418 L
--7874.0454 8542.0186 -7868.7783 8543.3301 -7861.2202 8543.3301 c
--7853.6602 8543.3301 -7848.3921 8542.0186 -7848.3921 8540.8418 C
--7848.209 8540.8418 L
--7848.209 8540.0938 L
--7849.5088 8541.6055 -7855.5166 8542.415 -7861.2202 8542.415 c
-f
--7861.2202 8575.1768 m
--7866.9199 8575.1768 -7872.9287 8574.3672 -7874.2295 8572.8555 C
--7874.2295 8574.0039 L
--7874.2295 8574.1914 -7874.1377 8574.373 -7873.9658 8574.5488 c
--7873.792 8574.7256 -7873.5361 8574.8945 -7873.2065 8575.0566 c
--7872.8774 8575.2197 -7872.4746 8575.373 -7872.0063 8575.5166 c
--7871.54 8575.6602 -7871.0063 8575.7949 -7870.418 8575.917 c
--7869.8306 8576.0391 -7869.1846 8576.1504 -7868.4927 8576.248 c
--7867.8008 8576.3447 -7867.061 8576.4277 -7866.2822 8576.4961 c
--7865.5049 8576.5645 -7864.687 8576.6191 -7863.8408 8576.6543 c
--7862.9946 8576.6895 -7862.1162 8576.709 -7861.2192 8576.709 c
--7860.3218 8576.709 -7859.4438 8576.6895 -7858.5967 8576.6543 c
--7857.749 8576.6191 -7856.9326 8576.5645 -7856.1543 8576.4961 c
--7855.376 8576.4277 -7854.6377 8576.3447 -7853.9438 8576.248 c
--7853.2529 8576.1504 -7852.6079 8576.0391 -7852.0186 8575.917 c
--7851.4302 8575.7949 -7850.8984 8575.6602 -7850.4302 8575.5166 c
--7849.9639 8575.373 -7849.5615 8575.2197 -7849.231 8575.0566 c
--7848.9014 8574.8945 -7848.6455 8574.7256 -7848.4736 8574.5488 c
--7848.2998 8574.373 -7848.209 8574.1914 -7848.209 8574.0039 C
--7848.209 8572.8555 L
--7849.5088 8574.3672 -7855.5166 8575.1768 -7861.2202 8575.1768 c
-f
--7874.0454 8572.2383 m
--7874.0454 8573.415 -7868.7783 8574.7266 -7861.2202 8574.7266 c
--7853.6602 8574.7266 -7848.3921 8573.415 -7848.3921 8572.2383 C
--7848.209 8572.2383 L
--7848.209 8571.4912 L
--7849.5088 8573.002 -7855.5166 8573.8125 -7861.2202 8573.8125 c
--7866.9199 8573.8125 -7872.9287 8573.002 -7874.2295 8571.4912 C
--7874.2295 8572.2383 L
--7874.0454 8572.2383 L
-f
-0.15 g
--7861.2202 8541.9648 m
--7868.7783 8541.9648 -7874.0454 8540.6523 -7874.0454 8539.4766 C
--7874.2295 8539.4766 L
--7874.4961 8539.4766 L
--7874.4961 8539.6943 -7874.3975 8539.8994 -7874.2295 8540.0938 c
--7872.9287 8541.6055 -7866.9199 8542.415 -7861.2202 8542.415 c
--7855.5166 8542.415 -7849.5088 8541.6055 -7848.209 8540.0938 c
--7848.041 8539.8994 -7847.9424 8539.6943 -7847.9424 8539.4766 C
--7848.209 8539.4766 L
--7848.3921 8539.4766 L
--7848.3921 8540.6523 -7853.6602 8541.9648 -7861.2202 8541.9648 c
-f
--7861.2202 8543.3301 m
--7868.7783 8543.3301 -7874.0454 8542.0186 -7874.0454 8540.8418 C
--7874.2295 8540.8418 L
--7874.4961 8540.8418 L
--7874.4961 8541.0586 -7874.3975 8541.2637 -7874.2295 8541.459 c
--7872.9287 8542.9707 -7866.9199 8543.7803 -7861.2202 8543.7803 c
--7855.5166 8543.7803 -7849.5088 8542.9707 -7848.209 8541.459 c
--7848.041 8541.2637 -7847.9424 8541.0586 -7847.9424 8540.8418 C
--7848.209 8540.8418 L
--7848.3921 8540.8418 L
--7848.3921 8542.0186 -7853.6602 8543.3301 -7861.2202 8543.3301 c
-f
--7861.2202 8544.6953 m
--7868.7783 8544.6953 -7874.0454 8543.3828 -7874.0454 8542.2061 C
--7874.2295 8542.2061 L
--7874.4961 8542.2061 L
--7874.4961 8542.4238 -7874.3975 8542.6289 -7874.2295 8542.8242 c
--7872.9287 8544.3359 -7866.9199 8545.1445 -7861.2202 8545.1445 c
--7855.5166 8545.1445 -7849.5088 8544.3359 -7848.209 8542.8242 c
--7848.041 8542.6289 -7847.9424 8542.4238 -7847.9424 8542.2061 C
--7848.209 8542.2061 L
--7848.3921 8542.2061 L
--7848.3921 8543.3828 -7853.6602 8544.6953 -7861.2202 8544.6953 c
-f
--7861.2202 8546.0605 m
--7868.7783 8546.0605 -7874.0454 8544.748 -7874.0454 8543.5723 C
--7874.2295 8543.5723 L
--7874.4961 8543.5723 L
--7874.4961 8543.79 -7874.3975 8543.9951 -7874.2295 8544.1895 c
--7872.9287 8545.7012 -7866.9199 8546.5098 -7861.2202 8546.5098 c
--7855.5166 8546.5098 -7849.5088 8545.7012 -7848.209 8544.1895 c
--7848.041 8543.9951 -7847.9424 8543.79 -7847.9424 8543.5723 C
--7848.209 8543.5723 L
--7848.3921 8543.5723 L
--7848.3921 8544.748 -7853.6602 8546.0605 -7861.2202 8546.0605 c
-f
--7861.2202 8547.4248 m
--7868.7783 8547.4248 -7874.0454 8546.1133 -7874.0454 8544.9375 C
--7874.2295 8544.9375 L
--7874.4961 8544.9375 L
--7874.4961 8545.1543 -7874.3975 8545.3594 -7874.2295 8545.5547 c
--7872.9287 8547.0654 -7866.9199 8547.875 -7861.2202 8547.875 c
--7855.5166 8547.875 -7849.5088 8547.0654 -7848.209 8545.5547 c
--7848.041 8545.3594 -7847.9424 8545.1543 -7847.9424 8544.9375 C
--7848.209 8544.9375 L
--7848.3921 8544.9375 L
--7848.3921 8546.1133 -7853.6602 8547.4248 -7861.2202 8547.4248 c
-f
--7861.2202 8548.791 m
--7868.7783 8548.791 -7874.0454 8547.4785 -7874.0454 8546.3008 C
--7874.2295 8546.3008 L
--7874.4961 8546.3008 L
--7874.4961 8546.5195 -7874.3975 8546.7246 -7874.2295 8546.9199 c
--7872.9287 8548.4307 -7866.9199 8549.2402 -7861.2202 8549.2402 c
--7855.5166 8549.2402 -7849.5088 8548.4307 -7848.209 8546.9199 c
--7848.041 8546.7246 -7847.9424 8546.5195 -7847.9424 8546.3008 C
--7848.209 8546.3008 L
--7848.3921 8546.3008 L
--7848.3921 8547.4785 -7853.6602 8548.791 -7861.2202 8548.791 c
-f
--7861.2202 8550.1563 m
--7868.7783 8550.1563 -7874.0454 8548.8438 -7874.0454 8547.666 C
--7874.2295 8547.666 L
--7874.4961 8547.666 L
--7874.4961 8547.8848 -7874.3975 8548.0898 -7874.2295 8548.2852 c
--7872.9287 8549.7959 -7866.9199 8550.6055 -7861.2202 8550.6055 c
--7855.5166 8550.6055 -7849.5088 8549.7959 -7848.209 8548.2852 c
--7848.041 8548.0898 -7847.9424 8547.8848 -7847.9424 8547.666 C
--7848.209 8547.666 L
--7848.3921 8547.666 L
--7848.3921 8548.8438 -7853.6602 8550.1563 -7861.2202 8550.1563 c
-f
--7861.2202 8551.5205 m
--7868.7783 8551.5205 -7874.0454 8550.209 -7874.0454 8549.0322 C
--7874.2295 8549.0322 L
--7874.4961 8549.0322 L
--7874.4961 8549.25 -7874.3975 8549.4551 -7874.2295 8549.6504 c
--7872.9287 8551.1611 -7866.9199 8551.9707 -7861.2202 8551.9707 c
--7855.5166 8551.9707 -7849.5088 8551.1611 -7848.209 8549.6504 c
--7848.041 8549.4551 -7847.9424 8549.25 -7847.9424 8549.0322 C
--7848.209 8549.0322 L
--7848.3921 8549.0322 L
--7848.3921 8550.209 -7853.6602 8551.5205 -7861.2202 8551.5205 c
-f
--7861.2202 8552.8857 m
--7868.7783 8552.8857 -7874.0454 8551.5742 -7874.0454 8550.3965 C
--7874.2295 8550.3965 L
--7874.4961 8550.3965 L
--7874.4961 8550.6152 -7874.3975 8550.8203 -7874.2295 8551.0146 c
--7872.9287 8552.5254 -7866.9199 8553.3359 -7861.2202 8553.3359 c
--7855.5166 8553.3359 -7849.5088 8552.5254 -7848.209 8551.0146 c
--7848.041 8550.8203 -7847.9424 8550.6152 -7847.9424 8550.3965 C
--7848.209 8550.3965 L
--7848.3921 8550.3965 L
--7848.3921 8551.5742 -7853.6602 8552.8857 -7861.2202 8552.8857 c
-f
--7861.2202 8554.25 m
--7868.7783 8554.25 -7874.0454 8552.9395 -7874.0454 8551.7617 C
--7874.2295 8551.7617 L
--7874.4961 8551.7617 L
--7874.4961 8551.9795 -7874.3975 8552.1846 -7874.2295 8552.3789 c
--7872.9287 8553.8906 -7866.9199 8554.7012 -7861.2202 8554.7012 c
--7855.5166 8554.7012 -7849.5088 8553.8906 -7848.209 8552.3789 c
--7848.041 8552.1846 -7847.9424 8551.9795 -7847.9424 8551.7617 C
--7848.209 8551.7617 L
--7848.3921 8551.7617 L
--7848.3921 8552.9395 -7853.6602 8554.25 -7861.2202 8554.25 c
-f
--7861.2202 8555.6162 m
--7868.7783 8555.6162 -7874.0454 8554.3047 -7874.0454 8553.127 C
--7874.2295 8553.127 L
--7874.4961 8553.127 L
--7874.4961 8553.3457 -7874.3975 8553.5508 -7874.2295 8553.7451 c
--7872.9287 8555.2559 -7866.9199 8556.0664 -7861.2202 8556.0664 c
--7855.5166 8556.0664 -7849.5088 8555.2559 -7848.209 8553.7451 c
--7848.041 8553.5508 -7847.9424 8553.3457 -7847.9424 8553.127 C
--7848.209 8553.127 L
--7848.3921 8553.127 L
--7848.3921 8554.3047 -7853.6602 8555.6162 -7861.2202 8555.6162 c
-f
--7861.2202 8556.9805 m
--7868.7783 8556.9805 -7874.0454 8555.6689 -7874.0454 8554.4922 C
--7874.2295 8554.4922 L
--7874.4961 8554.4922 L
--7874.4961 8554.7109 -7874.3975 8554.916 -7874.2295 8555.1104 c
--7872.9287 8556.6211 -7866.9199 8557.4316 -7861.2202 8557.4316 c
--7855.5166 8557.4316 -7849.5088 8556.6211 -7848.209 8555.1104 c
--7848.041 8554.916 -7847.9424 8554.7109 -7847.9424 8554.4922 C
--7848.209 8554.4922 L
--7848.3921 8554.4922 L
--7848.3921 8555.6689 -7853.6602 8556.9805 -7861.2202 8556.9805 c
-f
--7861.2202 8558.3457 m
--7868.7783 8558.3457 -7874.0454 8557.0342 -7874.0454 8555.8574 C
--7874.2295 8555.8574 L
--7874.4961 8555.8574 L
--7874.4961 8556.0752 -7874.3975 8556.2803 -7874.2295 8556.4746 c
--7872.9287 8557.9863 -7866.9199 8558.7959 -7861.2202 8558.7959 c
--7855.5166 8558.7959 -7849.5088 8557.9863 -7848.209 8556.4746 c
--7848.041 8556.2803 -7847.9424 8556.0752 -7847.9424 8555.8574 C
--7848.209 8555.8574 L
--7848.3921 8555.8574 L
--7848.3921 8557.0342 -7853.6602 8558.3457 -7861.2202 8558.3457 c
-f
--7861.2202 8559.7109 m
--7868.7783 8559.7109 -7874.0454 8558.3994 -7874.0454 8557.2227 C
--7874.2295 8557.2227 L
--7874.4961 8557.2227 L
--7874.4961 8557.4395 -7874.3975 8557.6455 -7874.2295 8557.8398 c
--7872.9287 8559.3516 -7866.9199 8560.1611 -7861.2202 8560.1611 c
--7855.5166 8560.1611 -7849.5088 8559.3516 -7848.209 8557.8398 c
--7848.041 8557.6455 -7847.9424 8557.4395 -7847.9424 8557.2227 C
--7848.209 8557.2227 L
--7848.3921 8557.2227 L
--7848.3921 8558.3994 -7853.6602 8559.7109 -7861.2202 8559.7109 c
-f
--7861.2202 8561.0762 m
--7868.7783 8561.0762 -7874.0454 8559.7646 -7874.0454 8558.5879 C
--7874.2295 8558.5879 L
--7874.4961 8558.5879 L
--7874.4961 8558.8057 -7874.3975 8559.0107 -7874.2295 8559.2051 c
--7872.9287 8560.7168 -7866.9199 8561.5264 -7861.2202 8561.5264 c
--7855.5166 8561.5264 -7849.5088 8560.7168 -7848.209 8559.2051 c
--7848.041 8559.0107 -7847.9424 8558.8057 -7847.9424 8558.5879 C
--7848.209 8558.5879 L
--7848.3921 8558.5879 L
--7848.3921 8559.7646 -7853.6602 8561.0762 -7861.2202 8561.0762 c
-f
--7861.2202 8562.4414 m
--7868.7783 8562.4414 -7874.0454 8561.1299 -7874.0454 8559.9531 C
--7874.2295 8559.9531 L
--7874.4961 8559.9531 L
--7874.4961 8560.1709 -7874.3975 8560.376 -7874.2295 8560.5703 c
--7872.9287 8562.082 -7866.9199 8562.8906 -7861.2202 8562.8906 c
--7855.5166 8562.8906 -7849.5088 8562.082 -7848.209 8560.5703 c
--7848.041 8560.376 -7847.9424 8560.1709 -7847.9424 8559.9531 C
--7848.209 8559.9531 L
--7848.3921 8559.9531 L
--7848.3921 8561.1299 -7853.6602 8562.4414 -7861.2202 8562.4414 c
-f
--7861.2202 8563.8066 m
--7868.7783 8563.8066 -7874.0454 8562.4941 -7874.0454 8561.3184 C
--7874.2295 8561.3184 L
--7874.4961 8561.3184 L
--7874.4961 8561.5352 -7874.3975 8561.7412 -7874.2295 8561.9355 c
--7872.9287 8563.4473 -7866.9199 8564.2559 -7861.2202 8564.2559 c
--7855.5166 8564.2559 -7849.5088 8563.4473 -7848.209 8561.9355 c
--7848.041 8561.7412 -7847.9424 8561.5352 -7847.9424 8561.3184 C
--7848.209 8561.3184 L
--7848.3921 8561.3184 L
--7848.3921 8562.4941 -7853.6602 8563.8066 -7861.2202 8563.8066 c
-f
--7861.2202 8565.1719 m
--7868.7783 8565.1719 -7874.0454 8563.8594 -7874.0454 8562.6826 C
--7874.2295 8562.6826 L
--7874.4961 8562.6826 L
--7874.4961 8562.9004 -7874.3975 8563.1055 -7874.2295 8563.3008 c
--7872.9287 8564.8115 -7866.9199 8565.6211 -7861.2202 8565.6211 c
--7855.5166 8565.6211 -7849.5088 8564.8115 -7848.209 8563.3008 c
--7848.041 8563.1055 -7847.9424 8562.9004 -7847.9424 8562.6826 C
--7848.209 8562.6826 L
--7848.3921 8562.6826 L
--7848.3921 8563.8594 -7853.6602 8565.1719 -7861.2202 8565.1719 c
-f
--7861.2202 8566.5371 m
--7868.7783 8566.5371 -7874.0454 8565.2246 -7874.0454 8564.0479 C
--7874.2295 8564.0479 L
--7874.4961 8564.0479 L
--7874.4961 8564.2656 -7874.3975 8564.4707 -7874.2295 8564.666 c
--7872.9287 8566.1768 -7866.9199 8566.9863 -7861.2202 8566.9863 c
--7855.5166 8566.9863 -7849.5088 8566.1768 -7848.209 8564.666 c
--7848.041 8564.4707 -7847.9424 8564.2656 -7847.9424 8564.0479 C
--7848.209 8564.0479 L
--7848.3921 8564.0479 L
--7848.3921 8565.2246 -7853.6602 8566.5371 -7861.2202 8566.5371 c
-f
--7861.2202 8567.9023 m
--7868.7783 8567.9023 -7874.0454 8566.5898 -7874.0454 8565.4131 C
--7874.2295 8565.4131 L
--7874.4961 8565.4131 L
--7874.4961 8565.6309 -7874.3975 8565.8359 -7874.2295 8566.0313 c
--7872.9287 8567.543 -7866.9199 8568.3516 -7861.2202 8568.3516 c
--7855.5166 8568.3516 -7849.5088 8567.543 -7848.209 8566.0313 c
--7848.041 8565.8359 -7847.9424 8565.6309 -7847.9424 8565.4131 C
--7848.209 8565.4131 L
--7848.3921 8565.4131 L
--7848.3921 8566.5898 -7853.6602 8567.9023 -7861.2202 8567.9023 c
-f
--7861.2202 8569.2666 m
--7868.7783 8569.2666 -7874.0454 8567.9551 -7874.0454 8566.7783 C
--7874.2295 8566.7783 L
--7874.4961 8566.7783 L
--7874.4961 8566.9961 -7874.3975 8567.2012 -7874.2295 8567.3965 c
--7872.9287 8568.9072 -7866.9199 8569.7168 -7861.2202 8569.7168 c
--7855.5166 8569.7168 -7849.5088 8568.9072 -7848.209 8567.3965 c
--7848.041 8567.2012 -7847.9424 8566.9961 -7847.9424 8566.7783 C
--7848.209 8566.7783 L
--7848.3921 8566.7783 L
--7848.3921 8567.9551 -7853.6602 8569.2666 -7861.2202 8569.2666 c
-f
--7861.2202 8570.6318 m
--7868.7783 8570.6318 -7874.0454 8569.3203 -7874.0454 8568.1426 C
--7874.2295 8568.1426 L
--7874.4961 8568.1426 L
--7874.4961 8568.3613 -7874.3975 8568.5664 -7874.2295 8568.7607 c
--7872.9287 8570.2715 -7866.9199 8571.082 -7861.2202 8571.082 c
--7855.5166 8571.082 -7849.5088 8570.2715 -7848.209 8568.7607 c
--7848.041 8568.5664 -7847.9424 8568.3613 -7847.9424 8568.1426 C
--7848.209 8568.1426 L
--7848.3921 8568.1426 L
--7848.3921 8569.3203 -7853.6602 8570.6318 -7861.2202 8570.6318 c
-f
--7861.2202 8571.998 m
--7868.7783 8571.998 -7874.0454 8570.6855 -7874.0454 8569.5078 C
--7874.2295 8569.5078 L
--7874.4961 8569.5078 L
--7874.4961 8569.7266 -7874.3975 8569.9316 -7874.2295 8570.127 c
--7872.9287 8571.6377 -7866.9199 8572.4473 -7861.2202 8572.4473 c
--7855.5166 8572.4473 -7849.5088 8571.6377 -7848.209 8570.127 c
--7848.041 8569.9316 -7847.9424 8569.7266 -7847.9424 8569.5078 C
--7848.209 8569.5078 L
--7848.3921 8569.5078 L
--7848.3921 8570.6855 -7853.6602 8571.998 -7861.2202 8571.998 c
-f
--7861.2202 8573.3623 m
--7868.7783 8573.3623 -7874.0454 8572.0508 -7874.0454 8570.873 C
--7874.2295 8570.873 L
--7874.4961 8570.873 L
--7874.4961 8571.0391 -7874.4282 8571.1953 -7874.3286 8571.3486 c
--7874.2974 8571.3965 -7874.2695 8571.4453 -7874.2295 8571.4912 c
--7872.9287 8573.002 -7866.9199 8573.8125 -7861.2202 8573.8125 c
--7855.5166 8573.8125 -7849.5088 8573.002 -7848.209 8571.4912 c
--7848.1689 8571.4453 -7848.1392 8571.3965 -7848.1104 8571.3486 c
--7848.0103 8571.1953 -7847.9424 8571.0391 -7847.9424 8570.873 C
--7848.209 8570.873 L
--7848.3921 8570.873 L
--7848.3921 8572.0508 -7853.6602 8573.3623 -7861.2202 8573.3623 c
-f
--7861.2202 8574.7266 m
--7868.7783 8574.7266 -7874.0454 8573.415 -7874.0454 8572.2383 C
--7874.2295 8572.2383 L
--7874.4961 8572.2383 L
--7874.4961 8572.4561 -7874.3975 8572.6621 -7874.2295 8572.8555 c
--7872.9287 8574.3672 -7866.9199 8575.1768 -7861.2202 8575.1768 c
--7855.5166 8575.1768 -7849.5088 8574.3672 -7848.209 8572.8555 c
--7848.041 8572.6621 -7847.9424 8572.4561 -7847.9424 8572.2383 C
--7848.209 8572.2383 L
--7848.3921 8572.2383 L
--7848.3921 8573.415 -7853.6602 8574.7266 -7861.2202 8574.7266 c
-f
-0.8 g
--7839.0342 8530.2168 m
--7839.3311 8530.4834 -7839.7271 8530.7402 -7840.229 8530.9863 c
--7840.231 8530.9883 -7840.2334 8530.9893 -7840.2358 8530.9902 c
--7840.5225 8531.1309 -7840.8394 8531.2676 -7841.187 8531.4004 c
--7841.187 8531.4004 l
--7841.8857 8531.668 -7842.7026 8531.9189 -7843.626 8532.1523 c
--7843.6362 8532.1543 -7843.647 8532.1572 -7843.6582 8532.1602 c
--7845.501 8532.623 -7847.7583 8533.0117 -7850.313 8533.3018 c
--7850.3457 8533.3047 -7850.3774 8533.3086 -7850.4111 8533.3125 c
--7851.6626 8533.4531 -7852.9834 8533.5703 -7854.3599 8533.6602 c
--7854.4209 8533.6641 -7854.4785 8533.668 -7854.5366 8533.6719 c
--7855.1743 8533.7119 -7855.8232 8533.7461 -7856.4824 8533.7754 c
--7856.5313 8533.7773 -7856.5791 8533.7813 -7856.6279 8533.7832 c
--7856.6758 8533.7852 -7856.7246 8533.7861 -7856.7729 8533.7881 c
--7857.4561 8533.8164 -7858.1514 8533.8379 -7858.856 8533.8535 c
--7858.8774 8533.8535 -7858.8994 8533.8545 -7858.9209 8533.8545 c
--7859.6768 8533.8711 -7860.4424 8533.8789 -7861.2202 8533.8789 c
--7861.9951 8533.8789 -7862.7607 8533.8711 -7863.5166 8533.8545 c
--7863.5391 8533.8545 -7863.5601 8533.8535 -7863.582 8533.8535 c
--7864.2871 8533.8379 -7864.9814 8533.8164 -7865.667 8533.7881 c
--7865.7134 8533.7861 -7865.7642 8533.7852 -7865.8096 8533.7832 c
--7865.8608 8533.7813 -7865.9058 8533.7773 -7865.9561 8533.7754 c
--7866.6162 8533.7461 -7867.2666 8533.7119 -7867.9038 8533.6709 c
--7867.9609 8533.668 -7868.0166 8533.6641 -7868.0718 8533.6602 c
--7869.4526 8533.5703 -7870.7783 8533.4531 -7872.0322 8533.3125 c
--7872.0615 8533.3086 -7872.0898 8533.3057 -7872.1201 8533.3027 c
--7874.6768 8533.0117 -7876.9385 8532.623 -7878.7822 8532.1592 c
--7878.792 8532.1572 -7878.8018 8532.1543 -7878.811 8532.1523 c
--7880.1934 8531.8027 -7881.3408 8531.4121 -7882.2026 8530.9902 c
--7882.2041 8530.9893 -7882.208 8530.9883 -7882.21 8530.9863 c
--7882.4639 8530.8613 -7882.6904 8530.7324 -7882.8936 8530.6016 c
--7883.3799 8530.29 -7883.7178 8529.9639 -7883.8818 8529.627 c
--7883.96 8529.4688 -7884 8529.3066 -7884 8529.1426 C
--7884 8535.1855 L
--7884 8535.5137 -7883.8408 8535.832 -7883.5361 8536.1406 c
--7883.2334 8536.4492 -7882.7866 8536.7461 -7882.21 8537.0303 c
--7881.6328 8537.3125 -7880.9287 8537.583 -7880.1089 8537.834 c
--7879.29 8538.0859 -7878.3584 8538.3203 -7877.3271 8538.5352 c
--7876.377 8538.7324 -7875.335 8538.9121 -7874.2295 8539.0713 c
--7874.1362 8539.085 -7874.0498 8539.1016 -7873.9561 8539.1143 c
--7872.7432 8539.2852 -7871.4497 8539.4307 -7870.0854 8539.5498 c
--7868.7231 8539.6699 -7867.293 8539.7637 -7865.8096 8539.8262 c
--7864.3271 8539.8887 -7862.792 8539.9229 -7861.2202 8539.9229 c
--7859.6465 8539.9229 -7858.1104 8539.8887 -7856.6279 8539.8262 c
--7855.145 8539.7637 -7853.7134 8539.6699 -7852.3521 8539.5498 c
--7850.9897 8539.4307 -7849.6934 8539.2852 -7848.4814 8539.1143 c
--7848.3882 8539.1016 -7848.3018 8539.085 -7848.209 8539.0723 c
--7847.105 8538.9121 -7846.0615 8538.7324 -7845.1104 8538.5352 c
--7844.0801 8538.3203 -7843.147 8538.0859 -7842.3286 8537.834 c
--7841.5103 8537.583 -7840.8042 8537.3125 -7840.229 8537.0303 c
--7839.6514 8536.7461 -7839.2041 8536.4492 -7838.9009 8536.1406 c
--7838.5967 8535.832 -7838.4385 8535.5137 -7838.4385 8535.1855 C
--7838.4385 8529.1426 L
--7838.4385 8529.3887 -7838.5278 8529.6289 -7838.7002 8529.8643 c
--7838.7881 8529.9834 -7838.9038 8530.1016 -7839.0342 8530.2168 c
-f
-0.5 g
--7845.9463 8525.6279 m
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 C
--7877.5342 8525.293 -7884 8527.0605 -7884 8529.1426 c
--7884 8529.3066 -7883.96 8529.4688 -7883.8818 8529.627 c
--7883.7178 8529.9639 -7883.3799 8530.29 -7882.8936 8530.6016 c
--7882.687 8530.7344 -7882.46 8530.8633 -7882.2026 8530.9902 c
--7881.3408 8531.4121 -7880.1934 8531.8027 -7878.811 8532.1523 c
--7878.8018 8532.1543 -7878.792 8532.1572 -7878.7822 8532.1592 c
--7876.9385 8532.623 -7874.6768 8533.0117 -7872.1201 8533.3027 c
--7872.0898 8533.3057 -7872.0615 8533.3086 -7872.0322 8533.3125 c
--7870.7783 8533.4531 -7869.4526 8533.5703 -7868.0718 8533.6602 c
--7868.0166 8533.6641 -7867.9609 8533.668 -7867.9038 8533.6709 c
--7867.2666 8533.7119 -7866.6162 8533.7461 -7865.9561 8533.7754 c
--7865.8594 8533.7793 -7865.7642 8533.7842 -7865.667 8533.7881 c
--7864.9814 8533.8164 -7864.2871 8533.8379 -7863.582 8533.8535 c
--7863.5601 8533.8535 -7863.5391 8533.8545 -7863.5166 8533.8545 c
--7862.7607 8533.8711 -7861.9951 8533.8789 -7861.2202 8533.8789 c
--7860.4424 8533.8789 -7859.6768 8533.8711 -7858.9209 8533.8545 c
--7858.8994 8533.8545 -7858.8774 8533.8535 -7858.856 8533.8535 c
--7858.1514 8533.8379 -7857.4561 8533.8164 -7856.7729 8533.7881 c
--7856.6758 8533.7842 -7856.5791 8533.7793 -7856.4824 8533.7754 c
--7855.8232 8533.7461 -7855.1743 8533.7119 -7854.5366 8533.6719 c
--7854.4785 8533.668 -7854.4209 8533.6641 -7854.3599 8533.6602 c
--7852.9834 8533.5703 -7851.6626 8533.4531 -7850.4111 8533.3125 c
--7850.3774 8533.3086 -7850.3457 8533.3047 -7850.313 8533.3018 c
--7847.7583 8533.0117 -7845.501 8532.623 -7843.6582 8532.1602 c
--7843.647 8532.1572 -7843.6362 8532.1543 -7843.626 8532.1523 c
--7842.7026 8531.9189 -7841.8857 8531.668 -7841.187 8531.4004 C
--7841.187 8531.4004 L
--7840.8394 8531.2676 -7840.5225 8531.1309 -7840.2358 8530.9902 c
--7839.731 8530.7432 -7839.332 8530.4844 -7839.0342 8530.2168 c
--7838.9038 8530.1016 -7838.7881 8529.9834 -7838.7002 8529.8643 c
--7838.5278 8529.6289 -7838.4385 8529.3887 -7838.4385 8529.1426 c
--7838.4385 8527.748 -7841.3359 8526.4951 -7845.9463 8525.6279 C
-f
-*u
-1 g
-1 D
--7867.7471 8524.0996 m
--7866.8584 8522.3203 -7866.5679 8520.6797 -7866.5679 8519.0811 c
--7866.5679 8517.6328 -7866.8057 8516.2178 -7867.0498 8514.7646 c
--7867.2959 8513.2949 -7867.5498 8511.7852 -7867.5498 8510.1855 c
--7867.5498 8509.792 -7867.5352 8509.3926 -7867.5 8508.9863 c
--7867.0518 8503.7461 -7861.4072 8501.1475 -7861.3506 8501.1221 C
--7840.5649 8501.1396 -7839.0386 8501.1406 V
--7840.1807 8501.8877 -7842.5088 8503.7266 -7844.8066 8507.5039 c
--7845.8433 8509.2051 -7846.1567 8511.1133 -7846.1567 8513.041 c
--7846.1567 8514.5996 -7845.9512 8516.1699 -7845.7578 8517.6523 c
--7845.5791 8519.0303 -7845.4038 8520.3633 -7845.4038 8521.5723 c
--7845.4038 8522.4287 -7845.4912 8523.2236 -7845.7256 8523.9277 c
--7846.9727 8527.6641 -7849.792 8529.6445 -7850.0713 8529.832 C
--7850.2046 8529.832 -7870.5674 8529.832 -7872.3569 8529.832 C
--7871.3154 8529.1973 -7869.5391 8527.6836 -7867.7471 8524.0996 c
-f
-0 D
--7850.8975 8526.2422 m
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
-f
--7849.1025 8512.1074 m
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
-f
--7863.4609 8517.7168 m
--7863.4609 8518.166 L
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
-f
--7863.6855 8515.9219 m
--7850.001 8515.9219 L
--7850.001 8515.4727 L
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
-f
--7863.4609 8521.3076 m
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
-f
--7861.2178 8503.583 m
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
-f
--7862.7881 8505.3779 m
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
-f
--7863.9087 8507.8457 m
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
-f
--7864.3584 8510.3135 m
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
-f
--7864.3584 8524 m
--7849.7754 8524 L
--7849.7754 8523.5488 L
--7864.3584 8523.5488 L
--7864.3584 8524 L
-f
-*U
-*u
-0 g
-1 D
--7868.5498 8524.6582 m
--7868.417 8524.4141 -7868.2832 8524.166 -7868.1494 8523.8984 c
--7866.519 8520.6387 -7866.9937 8517.8213 -7867.4946 8514.8389 c
--7867.8057 8512.9785 -7868.1294 8511.0557 -7867.9482 8508.9473 c
--7867.4766 8503.4404 -7861.5938 8500.7383 -7861.4424 8500.6914 C
--7838.2168 8500.6914 L
--7838.1201 8501.1191 L
--7838.1514 8501.1348 -7841.3599 8502.7051 -7844.4238 8507.7373 c
--7846.2144 8510.6797 -7845.7559 8514.1953 -7845.311 8517.5947 c
--7844.9966 8520.002 -7844.7007 8522.2754 -7845.2993 8524.0703 c
--7845.4858 8524.6289 -7845.707 8525.1465 -7845.9463 8525.6279 c
--7847.4521 8528.6533 -7849.7656 8530.1738 -7849.8774 8530.2461 C
--7849.9346 8530.2813 L
--7873.333 8530.2813 L
--7873.3887 8529.8389 L
--7873.3638 8529.832 -7871.0127 8529.166 -7868.5498 8524.6582 c
-f
-0 D
--7867.7471 8524.0996 m
--7869.5391 8527.6836 -7871.3154 8529.1973 -7872.3569 8529.832 C
--7870.5674 8529.832 -7850.2046 8529.832 -7850.0713 8529.832 C
--7849.792 8529.6445 -7846.9727 8527.6641 -7845.7256 8523.9277 c
--7845.4912 8523.2236 -7845.4038 8522.4287 -7845.4038 8521.5723 c
--7845.4038 8520.3633 -7845.5791 8519.0303 -7845.7578 8517.6523 c
--7845.9512 8516.1699 -7846.1567 8514.5996 -7846.1567 8513.041 c
--7846.1567 8511.1133 -7845.8433 8509.2051 -7844.8066 8507.5039 c
--7842.5088 8503.7266 -7840.1807 8501.8877 -7839.0386 8501.1406 C
--7840.5649 8501.1396 -7861.3506 8501.1221 Y
--7861.4072 8501.1475 -7867.0518 8503.7461 -7867.5 8508.9863 c
--7867.5352 8509.3926 -7867.5498 8509.792 -7867.5498 8510.1855 c
--7867.5498 8511.7852 -7867.2959 8513.2949 -7867.0498 8514.7646 c
--7866.8057 8516.2178 -7866.5679 8517.6328 -7866.5679 8519.0811 c
--7866.5679 8520.6797 -7866.8584 8522.3203 -7867.7471 8524.0996 c
-f
-*U
--7845.7378 8503.1328 m
--7861.2178 8503.1328 L
--7861.2178 8503.583 L
--7845.7378 8503.583 L
--7845.7378 8503.1328 L
-f
--7850.4497 8504.9277 m
--7862.7881 8504.9277 L
--7862.7881 8505.3779 L
--7850.4497 8505.3779 L
--7850.4497 8504.9277 L
-f
--7848.2041 8507.3945 m
--7863.9087 8507.3945 L
--7863.9087 8507.8457 L
--7848.2041 8507.8457 L
--7848.2041 8507.3945 L
-f
--7848.6538 8509.8633 m
--7864.3584 8509.8633 L
--7864.3584 8510.3135 L
--7848.6538 8510.3135 L
--7848.6538 8509.8633 L
-f
--7863.9087 8512.5566 m
--7849.1025 8512.5566 L
--7849.1025 8512.1074 L
--7863.9087 8512.1074 L
--7863.9087 8512.5566 L
-f
--7850.001 8515.4727 m
--7863.6855 8515.4727 L
--7863.6855 8515.9219 L
--7850.001 8515.9219 L
--7850.001 8515.4727 L
-f
--7863.4609 8518.166 m
--7848.4297 8518.166 L
--7848.4297 8517.7168 L
--7863.4609 8517.7168 L
--7863.4609 8518.166 L
-f
--7848.6538 8520.8574 m
--7863.4609 8520.8574 L
--7863.4609 8521.3076 L
--7848.6538 8521.3076 L
--7848.6538 8520.8574 L
-f
--7849.7754 8523.5488 m
--7864.3584 8523.5488 L
--7864.3584 8524 L
--7849.7754 8524 L
--7849.7754 8523.5488 L
-f
--7865.9287 8526.6914 m
--7850.8975 8526.6914 L
--7850.8975 8526.2422 L
--7865.9287 8526.2422 L
--7865.9287 8526.6914 L
-f
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 9)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7840.7246 8585.25 L
--7840.7246 8555.5381 L
--7883.25 8555.5381 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7 g
--7872.457 8555.7881 m
--7868.6582 8555.7881 -7864.9199 8555.7881 v
--7861.1826 8555.7881 -7861.8242 8558.8838 y
--7845.9258 8558.8838 -7843.4502 8558.8838 v
--7840.9761 8558.8838 -7840.9761 8561.3594 y
--7840.9761 8578.542 l
--7876.541 8578.542 l
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
-f
-0 R
-0.9 G
-0.5 w
--7861.8242 8558.8838 m
--7845.9258 8558.8838 -7843.4502 8558.8838 v
-S
-0.5 G
--7862.8594 8556.2715 m
--7861.4634 8557.1426 -7861.8242 8558.8838 y
-S
-0.7 G
--7864.9199 8555.7881 m
--7863.9858 8555.7881 -7863.3247 8555.9814 -7862.8594 8556.2715 c
-S
-0.9 G
--7876.541 8578.542 m
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
--7868.6582 8555.7881 -7864.9199 8555.7881 v
-S
-0.25 G
--7840.9761 8561.3594 m
--7840.9761 8578.542 l
--7876.541 8578.542 l
-S
-0.5 G
--7842.019 8559.2715 m
--7840.9761 8559.9668 -7840.9761 8561.3594 y
-S
-0.7 G
--7843.4502 8558.8838 m
--7842.8306 8558.8838 -7842.3672 8559.0391 -7842.019 8559.2715 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7874.0718 8557.4023 m
--7870.2729 8557.4023 -7866.5342 8557.4023 v
--7862.7954 8557.4023 -7863.439 8560.498 y
--7847.541 8560.498 -7845.0649 8560.498 v
--7842.5903 8560.498 -7842.5903 8562.9727 y
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
-f
-0 R
-0.9 G
-0.5 w
--7863.439 8560.498 m
--7847.541 8560.498 -7845.0649 8560.498 v
-S
-0.5 G
--7864.4746 8557.8867 m
--7863.0767 8558.7578 -7863.439 8560.498 y
-S
-0.7 G
--7866.5342 8557.4023 m
--7865.6006 8557.4023 -7864.9409 8557.5957 -7864.4746 8557.8867 c
-S
-0.9 G
--7878.1558 8580.1563 m
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
--7870.2729 8557.4023 -7866.5342 8557.4023 v
-S
-0.25 G
--7842.5903 8562.9727 m
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
-S
-0.5 G
--7843.6338 8560.8848 m
--7842.5903 8561.5811 -7842.5903 8562.9727 y
-S
-0.7 G
--7845.0649 8560.498 m
--7844.4458 8560.498 -7843.981 8560.6533 -7843.6338 8560.8848 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7875.6846 8559.0176 m
--7871.8882 8559.0176 -7868.1489 8559.0176 v
--7864.4111 8559.0176 -7865.0527 8562.1123 y
--7849.1538 8562.1123 -7846.6802 8562.1123 v
--7844.2046 8562.1123 -7844.2046 8564.5879 y
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
-f
-0 R
-0.9 G
-0.5 w
--7865.0527 8562.1123 m
--7849.1538 8562.1123 -7846.6802 8562.1123 v
-S
-0.5 G
--7866.0898 8559.5 m
--7864.6929 8560.3711 -7865.0527 8562.1123 y
-S
-0.7 G
--7868.1489 8559.0176 m
--7867.2144 8559.0176 -7866.5542 8559.21 -7866.0898 8559.5 c
-S
-0.9 G
--7879.771 8581.7715 m
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
--7871.8882 8559.0176 -7868.1489 8559.0176 v
-S
-0.25 G
--7844.2046 8564.5879 m
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
-S
-0.5 G
--7845.249 8562.5 m
--7844.2046 8563.1953 -7844.2046 8564.5879 y
-S
-0.7 G
--7846.6802 8562.1123 m
--7846.061 8562.1123 -7845.5962 8562.2676 -7845.249 8562.5 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7877.2993 8560.6318 m
--7873.5034 8560.6318 -7869.7642 8560.6318 v
--7866.0254 8560.6318 -7866.667 8563.7275 y
--7850.769 8563.7275 -7848.2935 8563.7275 v
--7845.8193 8563.7275 -7845.8193 8566.2031 y
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
-f
-0 R
-0.9 G
-0.5 w
--7866.667 8563.7275 m
--7850.769 8563.7275 -7848.2935 8563.7275 v
-S
-0.5 G
--7867.7046 8561.1152 m
--7866.3071 8561.9863 -7866.667 8563.7275 y
-S
-0.7 G
--7869.7642 8560.6318 m
--7868.8286 8560.6318 -7868.1689 8560.8252 -7867.7046 8561.1152 c
-S
-0.9 G
--7881.3857 8583.3867 m
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
--7873.5034 8560.6318 -7869.7642 8560.6318 v
-S
-0.25 G
--7845.8193 8566.2031 m
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
-S
-0.5 G
--7846.8638 8564.1143 m
--7845.8193 8564.8105 -7845.8193 8566.2031 y
-S
-0.7 G
--7848.2935 8563.7275 m
--7847.6753 8563.7275 -7847.2114 8563.8828 -7846.8638 8564.1143 c
-S
-U
-u
-0 O
-0.8 g
-1 w
--7878.9146 8562.2461 m
--7875.1167 8562.2461 -7871.3794 8562.2461 v
--7867.6401 8562.2461 -7868.2817 8565.3418 y
--7852.3838 8565.3418 -7849.9087 8565.3418 v
--7847.4346 8565.3418 -7847.4346 8567.8174 y
--7847.4346 8585 l
--7883.001 8585 l
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
-f
-0 R
-0.9 G
-0.5 w
--7868.2817 8565.3418 m
--7852.3838 8565.3418 -7849.9087 8565.3418 v
-S
-0.5 G
--7869.3184 8562.7295 m
--7867.9214 8563.6006 -7868.2817 8565.3418 y
-S
-0.7 G
--7871.3794 8562.2461 m
--7870.4438 8562.2461 -7869.7842 8562.4395 -7869.3184 8562.7295 c
-S
-0.9 G
--7883.001 8585 m
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
--7875.1167 8562.2461 -7871.3794 8562.2461 v
-S
-0.25 G
--7847.4346 8567.8174 m
--7847.4346 8585 l
--7883.001 8585 l
-S
-0.5 G
--7848.4785 8565.7285 m
--7847.4346 8566.4238 -7847.4346 8567.8174 y
-S
-0.7 G
--7849.9087 8565.3418 m
--7849.29 8565.3418 -7848.8262 8565.4971 -7848.4785 8565.7285 c
-S
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 10)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7815.2593 8585.25 L
--7815.2593 8557.0195 L
--7883.25 8557.0195 L
--7883.25 8585.25 L
-n
-0 O
-0.8 g
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
--7817.0591 8570.4502 l
--7829.7202 8574.4063 l
--7835.7866 8570.4502 l
--7835.5234 8580.209 l
-f
-0 R
-0.9 G
-0.5 w
--7816.7871 8570.3242 m
--7829.7202 8574.4063 l
-S
-0.5 G
--7815.4785 8573.3516 m
--7817.0591 8570.4502 l
-S
-0.25 G
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
-S
-0.5 G
--7829.7202 8574.4063 m
--7835.7866 8570.4502 l
-S
-0 O
-0.8 g
-1 w
--7855.5679 8562.7998 m
--7843.437 8557.5254 l
--7840.0073 8561.7441 l
--7855.5679 8562.7998 l
-f
-1 Ap
-0.57 g
--7835.2598 8582.0547 m
--7881.6802 8582.0547 L
--7881.6802 8584.9551 L
--7835.2598 8584.9551 L
--7835.2598 8582.0547 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
--7843.437 8557.5254 m
--7840.0073 8561.7441 l
-S
-0.9 G
--7855.5679 8562.7998 m
--7842.875 8557.248 l
-S
-0 O
-0.8 g
-1 w
--7883.001 8560.7627 m
--7883.001 8582.0859 l
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
--7837.6338 8560.8223 l
--7883.001 8560.7627 l
-f
-0 R
-0.5 G
-0.5 w
--7883.001 8576.5166 m
--7834.2046 8576.5166 l
-S
--7880.0986 8564.1191 m
--7870.6025 8564.1191 l
-S
--7880.0986 8565.7676 m
--7870.6025 8565.7676 l
-S
--7880.0986 8567.415 m
--7870.6025 8567.415 l
-S
--7880.0986 8569.0635 m
--7870.6025 8569.0635 l
-S
--7880.0986 8570.7109 m
--7870.6025 8570.7109 l
-S
--7834.2046 8564.9121 m
--7837.6338 8560.8223 l
-S
-0.25 G
--7883.001 8582.0859 m
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
-S
-0.9 G
--7837.6338 8560.793 m
--7883.001 8560.793 l
--7883.001 8582.3555 l
-S
-0.25 G
--7835.2598 8582.0859 m
--7835.2598 8585 l
--7881.6714 8585 l
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 19)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7836.6338 8585.25 L
--7836.6338 8549.6348 L
--7883.25 8549.6348 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
--7836.9722 8585 m
--7836.9722 8582.9805 l
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
--7836.9722 8585 l
-b
-0.8748 G
-2 J 0 j
--7859.8857 8579.5479 m
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
-S
--7836.9722 8582.9805 m
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
--7876.3394 8580.7598 m
--7880.377 8582.9805 l
--7839.7993 8582.9805 l
--7843.2319 8580.7598 l
--7876.3394 8580.7598 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
--7871.125 8576.6523 m
--7868.8462 8576.6094 L
--7859.7446 8575.041 L
--7850.4634 8576.6094 L
--7848.6694 8576.6094 L
--7848.729 8578.4512 L
--7871.125 8578.4512 L
--7871.125 8576.6523 L
-f
-0 R
-0.25 G
-0.5 w
--7848.6978 8576.6523 m
--7848.7905 8578.4512 L
--7871.1567 8578.4512 L
-S
-0.9 G
--7850.498 8576.6523 m
--7848.6978 8576.6523 L
-S
-0.25 G
--7859.8042 8575.041 m
--7850.498 8576.6523 L
-S
-0.9 G
--7871.1567 8578.4512 m
--7871.1567 8576.6523 L
--7868.9033 8576.6523 L
--7859.8042 8575.041 L
-S
-U
-u
-0 O
-0.7 g
-1 w
--7873.3672 8573.5781 m
--7864.0703 8573.5313 L
--7859.7119 8571.8047 L
--7855.1343 8573.5313 L
--7846.4214 8573.5313 L
--7846.4927 8575.5557 L
--7873.3672 8575.5557 L
--7873.3672 8573.5781 L
-f
-0 R
-0.25 G
-0.5 w
--7846.4546 8573.5781 m
--7846.5649 8575.5557 L
--7873.4038 8575.5557 L
-S
-0.9 G
--7855.1758 8573.5781 m
--7846.4546 8573.5781 L
-S
-0.25 G
--7859.7817 8571.8047 m
--7855.1758 8573.5781 L
-S
-0.9 G
--7873.4038 8575.5557 m
--7873.4038 8573.5781 L
--7864.1406 8573.5781 L
--7859.7817 8571.8047 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
--7874.8838 8572.75 m
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
--7844.9922 8551.0508 L
--7844.9922 8572.4648 L
--7845.8022 8573.6045 L
--7874.0366 8573.6045 l
--7874.8838 8572.75 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
--7874.0366 8573.6045 m
--7874.8838 8572.75 L
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
--7848.0239 8570.7168 m
--7848.0054 8552.7617 L
--7871.8994 8552.7617 L
--7871.9014 8570.7148 L
--7848.0239 8570.7168 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
--7843.333 8579.5479 m
--7859.8857 8579.5479 L
--7876.439 8579.5479 L
--7883.001 8582.9805 L
--7883.001 8585 L
--7836.9722 8585 L
--7836.9722 8582.9805 L
--7843.333 8579.5479 L
-s
--7874.0366 8573.6045 m
--7873.4038 8573.6045 L
--7873.4038 8575.5557 L
--7873.3672 8575.5449 L
--7873.3672 8575.5527 L
--7873.4038 8575.5557 L
--7873.3672 8575.5557 L
--7862.731 8575.5557 L
--7868.8462 8576.6094 L
--7871.125 8576.6523 L
--7871.1567 8576.6523 L
--7871.1567 8578.4512 L
--7871.125 8578.4414 L
--7871.125 8578.4482 L
--7871.1567 8578.4512 L
--7871.125 8578.4512 L
--7848.7905 8578.4512 L
--7848.729 8578.4512 L
--7848.6694 8576.6094 L
--7850.4634 8576.6094 L
--7856.7002 8575.5557 L
--7846.5649 8575.5557 L
--7846.4927 8575.5557 L
--7846.4233 8573.6045 L
--7845.8022 8573.6045 L
--7844.9922 8572.4648 L
--7844.9922 8551.0508 L
--7845.9302 8549.9121 L
--7873.9082 8549.8848 L
--7874.8911 8550.8809 L
--7874.8838 8572.75 L
--7874.0366 8573.6045 L
-s
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 21)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.3184 8585.3184 m
--7804.0449 8585.3184 L
--7804.0449 8559.5566 L
--7883.3184 8559.5566 L
--7883.3184 8585.3184 L
-n
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.5 w 3.8636 M
--7882.8638 8562.8213 m
--7804.4961 8562.8213 L
--7804.4961 8576.9053 L
--7882.8638 8576.9053 L
--7882.8638 8562.8213 L
-b
--7843.6792 8569.8633 m
-B
-U
-u
--7880.4233 8576.9053 m
--7806.939 8576.9053 L
--7805.4766 8576.9053 -7804.2954 8578.0908 -7804.2954 8579.5498 c
--7804.2954 8580.9951 L
--7804.2954 8582.4561 -7805.4766 8583.6416 -7806.939 8583.6416 c
--7880.4233 8583.6416 L
--7881.8838 8583.6416 -7883.0688 8582.4561 -7883.0688 8580.9951 c
--7883.0688 8579.5498 L
--7883.0688 8578.0908 -7881.8838 8576.9053 -7880.4233 8576.9053 c
--7880.4233 8576.9053 L
-b
--7843.6802 8580.2744 m
-B
-U
-0 g
--7878.374 8583.6396 m
--7873.8838 8583.6396 L
--7874.7007 8585.0684 L
--7877.251 8585.0684 L
--7878.374 8583.6396 L
-b
--7814.293 8583.6396 m
--7809.8022 8583.6396 L
--7810.6191 8585.0684 L
--7813.1714 8585.0684 L
--7814.293 8583.6396 L
-b
-0.61 G
-1 w
--7875.9258 8562.8574 m
--7875.9258 8574.4893 L
-S
--7873.8838 8562.8574 m
--7873.8838 8574.4893 L
-S
-u
-0 O
-0 g
-0 G
-0.5 w
--7826.7417 8566.7002 m
--7813.0679 8566.7002 L
--7813.0679 8568.9463 L
--7826.7417 8568.9463 L
--7826.7417 8566.7002 L
-b
--7819.9038 8567.8223 m
-B
-U
-1 J
--7814.3066 8577.9297 m
--7813.8906 8578.3682 -7813.6362 8578.9561 -7813.6362 8579.6064 C
--7813.6362 8580.9355 L
--7813.6362 8581.5859 -7813.8906 8582.1758 -7814.3066 8582.6123 C
-S
--7816.1978 8577.9297 m
--7815.7842 8578.3682 -7815.5288 8578.9561 -7815.5288 8579.6064 C
--7815.5288 8580.9355 L
--7815.5288 8581.5859 -7815.7842 8582.1758 -7816.1978 8582.6123 C
-S
--7818.0913 8577.9297 m
--7817.6758 8578.3682 -7817.4214 8578.9561 -7817.4214 8579.6064 C
--7817.4214 8580.9355 L
--7817.4214 8581.5859 -7817.6758 8582.1758 -7818.0913 8582.6123 C
-S
--7819.9839 8577.9297 m
--7819.5698 8578.3682 -7819.314 8578.9561 -7819.314 8579.6064 C
--7819.314 8580.9355 L
--7819.314 8581.5859 -7819.5698 8582.1758 -7819.9839 8582.6123 C
-S
--7821.8774 8577.9297 m
--7821.4614 8578.3682 -7821.207 8578.9561 -7821.207 8579.6064 C
--7821.207 8580.9355 L
--7821.207 8581.5859 -7821.4614 8582.1758 -7821.8774 8582.6123 C
-S
--7823.769 8577.9297 m
--7823.354 8578.3682 -7823.1001 8578.9561 -7823.1001 8579.6064 C
--7823.1001 8580.9355 L
--7823.1001 8581.5859 -7823.354 8582.1758 -7823.769 8582.6123 C
-S
--7825.6616 8577.9297 m
--7825.248 8578.3682 -7824.9922 8578.9561 -7824.9922 8579.6064 C
--7824.9922 8580.9355 L
--7824.9922 8581.5859 -7825.248 8582.1758 -7825.6616 8582.6123 C
-S
--7827.5542 8577.9297 m
--7827.1401 8578.3682 -7826.8857 8578.9561 -7826.8857 8579.6064 C
--7826.8857 8580.9355 L
--7826.8857 8581.5859 -7827.1401 8582.1758 -7827.5542 8582.6123 C
-S
--7829.4463 8577.9297 m
--7829.0322 8578.3682 -7828.7769 8578.9561 -7828.7769 8579.6064 C
--7828.7769 8580.9355 L
--7828.7769 8581.5859 -7829.0322 8582.1758 -7829.4463 8582.6123 C
-S
--7831.3374 8577.9297 m
--7830.9258 8578.3682 -7830.6694 8578.9561 -7830.6694 8579.6064 C
--7830.6694 8580.9355 L
--7830.6694 8581.5859 -7830.9258 8582.1758 -7831.3374 8582.6123 C
-S
--7833.231 8577.9297 m
--7832.8159 8578.3682 -7832.563 8578.9561 -7832.563 8579.6064 C
--7832.563 8580.9355 L
--7832.563 8581.5859 -7832.8159 8582.1758 -7833.231 8582.6123 C
-S
--7835.125 8577.9297 m
--7834.7095 8578.3682 -7834.4546 8578.9561 -7834.4546 8579.6064 C
--7834.4546 8580.9355 L
--7834.4546 8581.5859 -7834.7095 8582.1758 -7835.125 8582.6123 C
-S
--7837.0151 8577.9297 m
--7836.6006 8578.3682 -7836.3472 8578.9561 -7836.3472 8579.6064 C
--7836.3472 8580.9355 L
--7836.3472 8581.5859 -7836.6006 8582.1758 -7837.0151 8582.6123 C
-S
--7838.9102 8577.9297 m
--7838.4937 8578.3682 -7838.2407 8578.9561 -7838.2407 8579.6064 C
--7838.2407 8580.9355 L
--7838.2407 8581.5859 -7838.4937 8582.1758 -7838.9102 8582.6123 C
-S
--7840.8022 8577.9297 m
--7840.3872 8578.3682 -7840.1318 8578.9561 -7840.1318 8579.6064 C
--7840.1318 8580.9355 L
--7840.1318 8581.5859 -7840.3872 8582.1758 -7840.8022 8582.6123 C
-S
-0 O
-0.4385 g
-0 J 1 j
--7873.8838 8559.8066 m
--7813.8838 8559.8066 L
--7804.4961 8562.8213 L
--7882.8638 8562.8213 L
--7873.8838 8559.8066 L
-b
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 22)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7876.001 8578.6211 m
--7827.9502 8578.6211 L
--7827.9502 8497.4414 L
--7876.001 8497.4414 L
--7876.001 8578.6211 L
-n
-u
-u
-u
-0 O
-0.7 g
--7869.2202 8497.6914 m
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
-f
-0 R
-0.25 G
-0.5 w
--7834.0034 8498.543 m
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
-S
-0.9 G
--7870.4399 8562.8496 m
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
-S
-1 Ap
-0 O
-0.8 g
-0.25 G
-2 J 2 M
--7838.79 8507.9629 m
--7865.4775 8507.9629 L
--7865.4775 8560.2607 L
--7838.79 8560.2607 L
--7838.79 8507.9629 L
-b
-u
--7838.79 8523.8691 m
--7865.4736 8523.8691 L
--7865.4736 8520.0957 L
--7838.79 8520.0957 L
--7838.79 8523.8691 L
-b
--7838.79 8520.0615 m
--7865.4736 8520.0615 L
--7865.4736 8516.2871 L
--7838.79 8516.2871 L
--7838.79 8520.0615 L
-b
-U
-0 Ap
-0.25 g
-0 J 1 w 4 M
--7842.3818 8509.4375 m
--7843.2319 8509.4375 L
--7862.2729 8509.4375 L
--7862.2729 8510.3271 L
--7855.8018 8510.3271 L
--7855.8018 8510.9629 L
--7848.8486 8510.9629 L
--7848.8486 8510.3271 L
--7842.3818 8510.3271 L
--7842.3818 8509.4375 L
-f
-1 Ap
-0.6 g
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7842.8271 8511.3691 m
--7846.8706 8511.3691 L
--7846.8706 8510.7324 L
--7842.8271 8510.7324 L
--7842.8271 8511.3691 L
-b
-u
-0.8 g
--7840.8057 8514.5547 m
--7863.4463 8514.5547 L
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
--7840.8057 8514.5547 L
-b
--7863.4463 8514.5547 m
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
-S
-0.9 G
--7840.8057 8513.0664 m
--7840.8057 8514.5547 L
--7863.4463 8514.5547 L
-S
-U
-0 O
-0.7 g
-0 J 1 w 4 M
--7841.1318 8515.6172 m
--7845.1743 8515.6172 L
--7845.1743 8514.9805 L
--7841.1318 8514.9805 L
--7841.1318 8515.6172 L
-f
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7841.1318 8514.9805 m
--7841.1318 8515.6172 L
--7845.1743 8515.6172 L
-S
-u
-u
--7861.5903 8500.6797 m
--7861.5903 8503.7402 L
--7866.9287 8503.7402 L
-S
--7861.5903 8503.7393 m
--7861.5903 8506.7578 L
--7866.9287 8506.7578 L
-S
-U
-u
-0.9 G
--7866.9287 8503.7129 m
--7866.9287 8500.6934 L
--7861.5903 8500.6934 L
-S
--7866.9287 8506.7578 m
--7866.9287 8503.7393 L
--7861.5903 8503.7393 L
-S
-U
-U
-u
-u
-0.25 G
--7837.7178 8500.6797 m
--7837.7178 8503.7402 L
--7843.0542 8503.7402 L
-S
--7837.7178 8503.7393 m
--7837.7178 8506.7578 L
--7843.0542 8506.7578 L
-S
-U
-u
-0.9 G
--7843.0542 8503.7129 m
--7843.0542 8500.6934 L
--7837.7178 8500.6934 L
-S
--7843.0542 8506.7578 m
--7843.0542 8503.7393 L
--7837.7178 8503.7393 L
-S
-U
-U
-0 O
-0.8 g
-0 J 1 w 4 M
--7832.144 8564.9395 m
--7872.3799 8564.9395 L
--7870.6865 8562.6406 L
--7833.8359 8562.6406 L
--7832.144 8564.9395 L
-f
-0 R
-0.9 G
-0.5 w
--7870.4072 8562.4785 m
--7872.3799 8564.9395 L
--7869.9111 8564.9395 l
-S
-0.25 G
--7834.083 8562.3672 m
--7832.144 8564.9395 L
--7872.0337 8564.9395 l
-S
-U
-0 Ap
-0.15 G
--7833.8359 8562.6406 m
--7833.874 8562.6406 L
--7834.0034 8562.4727 L
--7834.0034 8498.543 L
--7834.0791 8498.2148 L
--7834.3569 8497.9102 L
--7834.7935 8497.7441 L
--7835.2578 8497.6914 L
--7869.2202 8497.6914 L
--7869.6855 8497.7441 L
--7870.0361 8497.9102 L
--7870.3618 8498.2148 L
--7870.4399 8498.543 L
--7870.4399 8562.5195 L
--7870.5386 8562.6406 L
--7870.6865 8562.6406 L
--7872.3799 8564.9395 L
--7872.0337 8564.9395 L
--7869.9111 8564.9395 L
--7832.144 8564.9395 L
--7833.8359 8562.6406 L
-s
--7870.4399 8562.5195 m
--7833.8359 8562.5195 l
-S
-U
-U
-0 To
-1 0 0 -1 -7851.9761 8576.5957 0 Tp
-0 Tv
-TP
--24.0247 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-36 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(DNS Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 23)
-0 A
-u
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7878.9351 8565.3359 m
--7830.6465 8565.3359 L
--7830.6465 8506.8223 L
--7878.9351 8506.8223 L
--7878.9351 8565.3359 L
-n
-0 O
-0.64 g
--7830.6465 8513.9863 m
--7832.5977 8506.8223 L
--7849.127 8506.8223 L
--7851.001 8513.9863 L
--7858.666 8513.9863 L
--7860.7529 8506.8223 L
--7877.0625 8506.8223 L
--7878.9351 8513.9863 L
--7878.9351 8514.0137 L
--7830.6465 8514.0137 L
--7830.6465 8513.9863 L
-f
-0.92 g
--7878.9351 8514.0137 m
--7878.9351 8565.3164 L
--7870.5898 8565.3164 L
--7870.5898 8561.6152 L
--7870.5386 8561.6152 L
--7870.5386 8514.0137 L
--7878.9351 8514.0137 L
-f
--7830.6465 8514.0137 m
--7838.7871 8514.0137 L
--7838.7871 8565.3359 L
--7830.6465 8565.3359 L
--7830.6465 8514.0137 L
-f
-0.8158 g
--7870.5386 8514.0137 m
--7870.5386 8561.6152 L
--7838.8442 8561.6152 L
--7838.8442 8565.3359 L
--7838.7871 8565.3359 L
--7838.7871 8514.0137 L
--7870.5386 8514.0137 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7858.666 8513.9863 m
--7858.6582 8561.6152 L
-S
--7857.8145 8513.9863 m
--7857.8066 8561.6152 L
-S
--7856.9634 8513.9863 m
--7856.9551 8561.6152 L
-S
--7856.1113 8513.9863 m
--7856.103 8561.6152 L
-S
--7855.2598 8513.9863 m
--7855.252 8561.6152 L
-S
--7854.4082 8513.9863 m
--7854.3999 8561.6152 L
-S
--7853.5566 8513.9863 m
--7853.5488 8561.6152 L
-S
--7853.5718 8513.9863 m
--7853.563 8561.6152 L
-S
--7852.7202 8513.9863 m
--7852.7114 8561.6152 L
-S
--7851.8682 8513.9863 m
--7851.8594 8561.6152 L
-S
--7851.0161 8513.9863 m
--7851.0078 8561.6152 L
-S
-U
-0 To
-1 0 0 -1 -7854.791 8576.5957 0 Tp
-0 Tv
-TP
--21.2094 0 Td
-0 Tr
-0 O
-0 g
-1 w 4 M
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-53.0468 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 4 Tl
-0 Tc
-0 Tw
-(Mainfr) Tx 1 10 Tk
-(ame) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 40)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7835.7114 8586 L
--7835.7114 8500.1016 L
--7884 8500.1016 L
--7884 8586 L
-n
-0 O
-0.64 g
--7835.7114 8507.2656 m
--7837.6626 8500.1016 L
--7854.1919 8500.1016 L
--7856.0654 8507.2656 L
--7863.7305 8507.2656 L
--7865.8174 8500.1016 L
--7882.127 8500.1016 L
--7884 8507.2656 L
--7884 8507.293 L
--7835.7114 8507.293 L
--7835.7114 8507.2656 L
-f
-0.92 g
--7884 8507.293 m
--7884 8585.9805 L
--7875.6543 8585.9805 L
--7875.6543 8582.2793 L
--7875.6025 8582.2793 L
--7875.6025 8507.293 L
--7884 8507.293 L
-f
--7835.7114 8507.293 m
--7843.8511 8507.293 L
--7843.8511 8586 L
--7835.7114 8586 L
--7835.7114 8507.293 L
-f
-0.8158 g
--7875.6025 8507.293 m
--7875.6025 8582.2793 L
--7843.9087 8582.2793 L
--7843.9087 8586 L
--7843.8511 8586 L
--7843.8511 8507.293 L
--7875.6025 8507.293 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7863.7305 8507.2656 m
--7863.7222 8582.2793 L
-S
--7862.8794 8507.2656 m
--7862.8711 8582.2793 L
-S
--7862.0273 8507.2656 m
--7862.019 8582.2793 L
-S
--7861.1758 8507.2656 m
--7861.168 8582.2793 L
-S
--7860.3242 8507.2656 m
--7860.3169 8582.2793 L
-S
--7859.4727 8507.2656 m
--7859.4648 8582.2793 L
-S
--7858.6206 8507.2656 m
--7858.6138 8582.2793 L
-S
--7858.6362 8507.2656 m
--7858.6279 8582.2793 L
-S
--7857.7842 8507.2656 m
--7857.7754 8582.2793 L
-S
--7856.9326 8507.2656 m
--7856.9238 8582.2793 L
-S
--7856.0801 8507.2656 m
--7856.0718 8582.2793 L
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 43)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.749 8585.8232 m
--7870.9414 8585.8232 L
--7870.9414 8557.1563 L
--7883.749 8557.1563 L
--7883.749 8585.8232 L
-n
-0 O
-0.3 g
--7870.9414 8574.5498 m
--7875.1558 8563.2031 L
--7875.3862 8562.5801 -7876.0439 8562.2598 -7876.6719 8562.4141 C
--7876.8018 8562.3506 -7876.9473 8562.3359 -7877.0889 8562.3164 C
--7875.771 8562.1797 -7874.7358 8561.1084 -7874.7358 8559.7627 c
--7874.7358 8558.3184 -7875.9009 8557.1563 -7877.3447 8557.1563 c
--7878.7842 8557.1563 -7879.9482 8558.3184 -7879.9482 8559.7627 c
--7879.9482 8561.1084 -7878.916 8562.1797 -7877.6016 8562.3164 C
--7877.7441 8562.3359 -7877.8809 8562.3506 -7878.0186 8562.4141 C
--7878.645 8562.2598 -7879.3018 8562.5801 -7879.5313 8563.2031 C
--7883.749 8574.5498 L
--7884 8575.2168 -7883.6543 8575.9688 -7882.9834 8576.2188 c
--7882.313 8576.4658 -7881.5664 8576.123 -7881.3193 8575.4531 C
--7880.1289 8572.2441 L
--7880.0054 8572.6758 -7879.876 8573.0762 -7879.7119 8573.4385 C
--7882.4902 8584.2402 L
--7882.668 8584.9375 -7882.252 8585.6416 -7881.5586 8585.8232 c
--7880.8657 8586 -7880.1626 8585.583 -7879.9766 8584.8867 C
--7877.5918 8575.5967 L
--7877.5049 8575.6084 -7877.4282 8575.6494 -7877.3447 8575.6494 c
--7877.2617 8575.6494 -7877.1855 8575.6084 -7877.0991 8575.5967 C
--7874.7129 8584.8867 L
--7874.5303 8585.583 -7873.8242 8586 -7873.1318 8585.8232 c
--7872.4385 8585.6416 -7872.0215 8584.9375 -7872.1978 8584.2402 C
--7874.9766 8573.4385 L
--7874.8154 8573.0762 -7874.6846 8572.6758 -7874.5625 8572.2441 C
--7873.3711 8575.4531 L
--7873.125 8576.123 -7872.3799 8576.4658 -7871.707 8576.2188 c
--7871.0391 8575.9688 -7870.6914 8575.2168 -7870.9414 8574.5498 C
-f
-U
-%AI8_EndBrushPattern
-%AI5_End_NonPrinting--
-%AI5_BeginPalette
-0 0 Pb
-1 1 1 1 ([Registration]) 0 Xs
-([Registration]) Pc
-0 0 0 0.15 (15%) 0 0 Xk
-(15%) Pc
-0 0 0 0.3 (30%) 0 0 Xk
-(30%) Pc
-0 0 0 0.5 (50%) 0 0 Xk
-(50%) Pc
-0 0 0 0.75 (75%) 0 0 Xk
-(75%) Pc
-(horizontal rules) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(horizontal rules) Pc
-(bi-direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(bi-direction diagonals) Pc
-(one direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(one direction diagonals) Pc
-(white dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(white dots) Pc
-(black dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(black dots) Pc
-PB
-%AI5_EndPalette
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginPluginObject
-(Adobe Brush Manager Order)
-(Adobe Brush Manager Order)
-( Adobe Scatter Brush Tool/ Scatter Brush 1/ Adobe Scatter Brush Tool/ ) -
-(Mainframe/ Adobe Scatter Brush Tool/ Client/ Adobe Scatter Brush Tool/) -
-( person/ Adobe Scatter Brush Tool/ Print spooler/ Adobe Scatter Brush ) -
-(Tool/ Folders/ Adobe Scatter Brush Tool/ Printer/ Adobe Scatter Brush ) -
-(Tool/ Client 1/ Adobe Scatter Brush Tool/ Mainframe 1/ Adobe Scatter B) -
-(rush Tool/ Fax server/) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client 1)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Fax server)
-(1 /New Pattern 21/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Folders)
-(1 /New Pattern 9/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe)
-(1 /New Pattern 23/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe 1)
-(1 /New Pattern 40/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(person)
-(1 /New Pattern 43/ 0 0.701961 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Print spooler)
-(1 /New Pattern 2/ 0 0.854902 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Printer)
-(1 /New Pattern 10/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Scatter Brush 1)
-(1 /New Pattern 22/ 0 0.2 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_PluginGroupInfo
-(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends)
-%AI8_PluginGroupInfo
-(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool)
-%AI5_End_NonPrinting--
-%%EndSetup
-%AI5_BeginLayer
-1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
-(Layer 1) Ln
-0 A
-1 Ap
-0 O
-0.95 g
-0 R
-0 G
-800 Ar
-0 J 0 j 0.5 w 4 M []0 d
-%AI3_Note:
-0 D
-1 XR
-501.71 169.1504 m
-153.71 169.1504 L
-153.71 589.1504 L
-501.71 589.1504 L
-501.71 169.1504 L
-(b) *
-u
-%_0 Ap
-%_0 XR
-%_326.7559 283.2148 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-326.7559 283.2148 m
-N
-u
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.25 w 2 M
-338.2412 274.4355 m
-338.2412 275.4453 l
-335.0605 277.1621 l
-326.7842 277.1621 L
-318.5078 277.1621 l
-315.2266 275.4453 l
-315.2266 274.4355 l
-338.2412 274.4355 l
-b
-0.8748 G
-2 J 0 j
-326.7842 277.1621 m
-318.5078 277.1621 l
-315.2266 275.4453 l
-315.2266 274.4355 l
-S
-338.2412 275.4453 m
-335.0605 277.1621 l
-326.7842 277.1621 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-318.5576 276.5566 m
-316.5391 275.4453 l
-336.8271 275.4453 l
-335.1113 276.5566 l
-318.5576 276.5566 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-321.1641 278.6094 m
-322.3037 278.6309 L
-326.8545 279.416 L
-331.4951 278.6309 L
-332.3926 278.6309 L
-332.3623 277.7109 L
-321.1641 277.7109 L
-321.1641 278.6094 L
-f
-0 R
-0.25 G
-0.25 w
-332.3779 278.6094 m
-332.332 277.7109 L
-321.1484 277.7109 L
-S
-0.9 G
-331.4785 278.6094 m
-332.3779 278.6094 L
-S
-0.25 G
-326.8252 279.416 m
-331.4785 278.6094 L
-S
-0.9 G
-321.1484 277.7109 m
-321.1484 278.6094 L
-322.2754 278.6094 L
-326.8252 279.416 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-320.043 280.1465 m
-324.6914 280.1699 L
-326.8711 281.0332 L
-329.1602 280.1699 L
-333.5166 280.1699 L
-333.4805 279.1582 L
-320.043 279.1582 L
-320.043 280.1465 L
-f
-0 R
-0.25 G
-0.25 w
-333.5 280.1465 m
-333.4443 279.1582 L
-320.0254 279.1582 L
-S
-0.9 G
-329.1387 280.1465 m
-333.5 280.1465 L
-S
-0.25 G
-326.8359 281.0332 m
-329.1387 280.1465 L
-S
-0.9 G
-320.0254 279.1582 m
-320.0254 280.1465 L
-324.6563 280.1465 L
-326.8359 281.0332 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-319.2852 280.5605 m
-319.2813 291.4961 l
-319.7734 291.9941 L
-333.7617 291.9805 L
-334.2305 291.4102 L
-334.2305 280.7031 L
-333.8262 280.1338 L
-319.709 280.1338 l
-319.2852 280.5605 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-319.709 280.1338 m
-319.2852 280.5605 L
-319.2813 291.4961 l
-319.7734 291.9941 L
-333.7617 291.9805 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-332.7148 281.5781 m
-332.7246 290.5547 L
-320.7773 290.5547 L
-320.7764 281.5781 L
-332.7148 281.5781 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-335.0605 277.1621 m
-326.7842 277.1621 L
-318.5078 277.1621 L
-315.2266 275.4453 L
-315.2266 274.4355 L
-338.2412 274.4355 L
-338.2412 275.4453 L
-335.0605 277.1621 L
-s
-319.709 280.1338 m
-320.0254 280.1338 L
-320.0254 279.1582 L
-320.043 279.1641 L
-320.043 279.1602 L
-320.0254 279.1582 L
-320.043 279.1582 L
-325.3613 279.1582 L
-322.3037 278.6309 L
-321.1641 278.6094 L
-321.1484 278.6094 L
-321.1484 277.7109 L
-321.1641 277.7148 L
-321.1641 277.7119 L
-321.1484 277.7109 L
-321.1641 277.7109 L
-332.332 277.7109 L
-332.3623 277.7109 L
-332.3926 278.6309 L
-331.4951 278.6309 L
-328.377 279.1582 L
-333.4443 279.1582 L
-333.4805 279.1582 L
-333.5156 280.1338 L
-333.8262 280.1338 L
-334.2305 280.7031 L
-334.2305 291.4102 L
-333.7617 291.9805 L
-319.7734 291.9941 L
-319.2813 291.4961 L
-319.2852 280.5605 L
-319.709 280.1338 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000000F36436C69656E742031
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 356.5137 282.7383 0 Tp
-0 Tv
-TP
--8.5004 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(PCs) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 176.1445 369.5293 0 Tp
-0 Tv
-TP
--12.7793 0 Td
-0 Tr
--20 Tt
--0.18 Tc
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_1 g
-%_0 R
-%_0.67 G
-%_1 M
-%_184.939 348.2959 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-1 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-184.939 348.2959 m
-F
-u
-0.8 g
-198.6704 339.2217 m
-218.7153 346.0791 l
-217.1348 348.9805 l
-204.4736 345.0244 l
-198.4072 348.9805 l
-198.6704 339.2217 l
-f
-0 R
-0.9 G
-0.5 w
-217.4067 349.1064 m
-204.4736 345.0244 l
-S
-0.5 G
-218.7153 346.0791 m
-217.1348 348.9805 l
-S
-0.25 G
-198.6704 339.2217 m
-218.7153 346.0791 l
-S
-0.5 G
-204.4736 345.0244 m
-198.4072 348.9805 l
-S
-0 O
-0.8 g
-1 w
-178.626 356.6309 m
-190.7568 361.9053 l
-194.1865 357.6865 l
-178.626 356.6309 l
-f
-1 Ap
-0.57 g
-198.9341 337.376 m
-152.5137 337.376 L
-152.5137 334.4756 L
-198.9341 334.4756 L
-198.9341 337.376 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-190.7568 361.9053 m
-194.1865 357.6865 l
-S
-0.9 G
-178.626 356.6309 m
-191.3188 362.1826 l
-S
-0 O
-0.8 g
-1 w
-151.1929 358.668 m
-151.1929 337.3447 l
-199.9893 337.3447 l
-199.9893 354.5186 l
-196.5601 358.6084 l
-151.1929 358.668 l
-f
-0 R
-0.5 G
-0.5 w
-151.1929 342.9141 m
-199.9893 342.9141 l
-S
-154.0952 355.3115 m
-163.5913 355.3115 l
-S
-154.0952 353.6631 m
-163.5913 353.6631 l
-S
-154.0952 352.0156 m
-163.5913 352.0156 l
-S
-154.0952 350.3672 m
-163.5913 350.3672 l
-S
-154.0952 348.7197 m
-163.5913 348.7197 l
-S
-199.9893 354.5186 m
-196.5601 358.6084 l
-S
-0.25 G
-151.1929 337.3447 m
-199.9893 337.3447 l
-199.9893 354.5186 l
-S
-0.9 G
-196.5601 358.6377 m
-151.1929 358.6377 l
-151.1929 337.0752 l
-S
-0.25 G
-198.9341 337.3447 m
-198.9341 334.4307 l
-152.5225 334.4307 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000007995072696E746572
-/Adobe_Brushed_Path () XT
-0 G
-291.1753 294.3105 m
-309.5527 281.6992 l
-S
-291.1753 307.3984 m
-309.5527 294.7871 l
-S
-0 To
-1 0 0 1 311.5088 324.3838 0 Tp
-0 Tv
-TP
--16.5244 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Netw) Tx 1 10 Tk
-(or) Tx 1 -15 Tk
-(k) Tx 1 0 Tk
-(\r) TX
-TO
-1 Ap
-0.99 g
-0 R
-0.25 G
-0.5 w
-198.752 338.9092 m
-186.9775 338.9092 L
-186.9775 341.7178 L
-198.752 341.7178 L
-198.752 338.9092 L
-b
-0 Ap
-0 G
-309.5527 267.6113 m
-291.1753 280.2227 l
-291.1753 332.1113 291.1753 335.3545 v
-291.0659 339.9316 286.5981 339.9316 v
-282.1304 339.9316 194.2432 339.9316 y
-S
-0 To
-1 0 0 1 315.0566 395.6709 0 Tp
-0 Tv
-TP
--19.7722 0 Td
-0 Tr
-0 O
-0 g
-1 w
-(Fileser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_0 R
-%_0 G
-%_0.65 w
-%_314.668 381.1777 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-314.668 381.1777 m
-N
-u
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.325 w 3.8636 M
-289.1997 387.4277 m
-340.1387 387.4277 L
-340.1387 378.2734 L
-289.1997 378.2734 L
-289.1997 387.4277 L
-b
-314.6699 382.8506 m
-B
-U
-u
-290.7861 378.2734 m
-338.5508 378.2734 L
-339.501 378.2734 340.2686 377.5029 340.2686 376.5547 c
-340.2686 375.6152 L
-340.2686 374.666 339.501 373.8945 338.5508 373.8945 c
-290.7861 373.8945 L
-289.8369 373.8945 289.0664 374.666 289.0664 375.6152 c
-289.0664 376.5547 L
-289.0664 377.5029 289.8369 378.2734 290.7861 378.2734 c
-290.7861 378.2734 L
-b
-314.6689 376.084 m
-B
-U
-0 g
-292.1182 373.8965 m
-295.0366 373.8965 L
-294.5059 372.9668 L
-292.8481 372.9668 L
-292.1182 373.8965 L
-b
-333.7705 373.8965 m
-336.6904 373.8965 L
-336.1592 372.9668 L
-334.5 372.9668 L
-333.7705 373.8965 L
-b
-0.61 G
-0.65 w
-293.7095 387.4043 m
-293.7095 379.8438 L
-S
-295.0366 387.4043 m
-295.0366 379.8438 L
-S
-u
-0 O
-0 g
-0 G
-0.325 w
-325.6787 384.9063 m
-334.5674 384.9063 L
-334.5674 383.4473 L
-325.6787 383.4473 L
-325.6787 384.9063 L
-b
-330.124 384.1777 m
-B
-U
-1 J
-333.7617 377.6074 m
-334.0322 377.3223 334.1982 376.9404 334.1982 376.5176 C
-334.1982 375.6543 L
-334.1982 375.2305 334.0322 374.8477 333.7617 374.5645 C
-S
-332.5322 377.6074 m
-332.8018 377.3223 332.9678 376.9404 332.9678 376.5176 C
-332.9678 375.6543 L
-332.9678 375.2305 332.8018 374.8477 332.5322 374.5645 C
-S
-331.3018 377.6074 m
-331.5713 377.3223 331.7373 376.9404 331.7373 376.5176 C
-331.7373 375.6543 L
-331.7373 375.2305 331.5713 374.8477 331.3018 374.5645 C
-S
-330.0713 377.6074 m
-330.3408 377.3223 330.5068 376.9404 330.5068 376.5176 C
-330.5068 375.6543 L
-330.5068 375.2305 330.3408 374.8477 330.0713 374.5645 C
-S
-328.8408 377.6074 m
-329.1113 377.3223 329.2764 376.9404 329.2764 376.5176 C
-329.2764 375.6543 L
-329.2764 375.2305 329.1113 374.8477 328.8408 374.5645 C
-S
-327.6113 377.6074 m
-327.8818 377.3223 328.0459 376.9404 328.0459 376.5176 C
-328.0459 375.6543 L
-328.0459 375.2305 327.8818 374.8477 327.6113 374.5645 C
-S
-326.3818 377.6074 m
-326.6494 377.3223 326.8164 376.9404 326.8164 376.5176 C
-326.8164 375.6543 L
-326.8164 375.2305 326.6494 374.8477 326.3818 374.5645 C
-S
-325.1514 377.6074 m
-325.4199 377.3223 325.585 376.9404 325.585 376.5176 C
-325.585 375.6543 L
-325.585 375.2305 325.4199 374.8477 325.1514 374.5645 C
-S
-323.9209 377.6074 m
-324.1904 377.3223 324.3564 376.9404 324.3564 376.5176 C
-324.3564 375.6543 L
-324.3564 375.2305 324.1904 374.8477 323.9209 374.5645 C
-S
-322.6924 377.6074 m
-322.96 377.3223 323.126 376.9404 323.126 376.5176 C
-323.126 375.6543 L
-323.126 375.2305 322.96 374.8477 322.6924 374.5645 C
-S
-321.4609 377.6074 m
-321.7314 377.3223 321.8955 376.9404 321.8955 376.5176 C
-321.8955 375.6543 L
-321.8955 375.2305 321.7314 374.8477 321.4609 374.5645 C
-S
-320.2295 377.6074 m
-320.5 377.3223 320.665 376.9404 320.665 376.5176 C
-320.665 375.6543 L
-320.665 375.2305 320.5 374.8477 320.2295 374.5645 C
-S
-319.001 377.6074 m
-319.2705 377.3223 319.4355 376.9404 319.4355 376.5176 C
-319.4355 375.6543 L
-319.4355 375.2305 319.2705 374.8477 319.001 374.5645 C
-S
-317.7695 377.6074 m
-318.04 377.3223 318.2041 376.9404 318.2041 376.5176 C
-318.2041 375.6543 L
-318.2041 375.2305 318.04 374.8477 317.7695 374.5645 C
-S
-316.5391 377.6074 m
-316.8096 377.3223 316.9756 376.9404 316.9756 376.5176 C
-316.9756 375.6543 L
-316.9756 375.2305 316.8096 374.8477 316.5391 374.5645 C
-S
-0 O
-0.4385 g
-0 J 1 j
-295.0366 389.3877 m
-334.0361 389.3877 L
-340.1387 387.4277 L
-289.1997 387.4277 L
-295.0366 389.3877 L
-b
-U
-U
-(Adobe Scatter Brush Tool) 1 0 58 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000041C646617820736572766572
-/Adobe_Brushed_Path () XT
-0 j 0.5 w 4 M
-289.0234 383.1641 m
-243.0117 383.1641 l
-243.0117 339.9492 l
-S
-LB
-%AI5_EndLayer--
-%%PageTrailer
-gsave annotatepage grestore showpage
-%%Trailer
-Adobe_Illustrator_AI5 /terminate get exec
-Adobe_shading_AI8 /terminate get exec
-Adobe_ColorImage_AI6 /terminate get exec
-Adobe_typography_AI5 /terminate get exec
-Adobe_cshow /terminate get exec
-Adobe_level2_AI5 /terminate get exec
-%%EOF
diff --git a/en_US.ISO8859-1/books/corp-net-guide/08-05.eps b/en_US.ISO8859-1/books/corp-net-guide/08-05.eps
deleted file mode 100644
index a44642b5ed..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/08-05.eps
+++ /dev/null
@@ -1,12613 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: Adobe Illustrator(R) 8.0
-%%AI8_CreatorVersion: 8.0.1
-%%For: (Mark Bergeron) (PD&PS)
-%%Title: (08-05 3594)
-%%CreationDate: (11/21/00) (9:05 AM)
-%%BoundingBox: 153 278 439 551
-%%HiResBoundingBox: 153.7051 278.1367 438.7607 550.6758
-%%DocumentProcessColors: Black
-%%DocumentFonts: Helvetica
-%%+ Helvetica-Bold
-%%DocumentNeededFonts: Helvetica
-%%+ Helvetica-Bold
-%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
-%%+ procset Adobe_typography_AI5 1.0 1
-%%+ procset Adobe_ColorImage_AI6 1.3 0
-%%+ procset Adobe_Illustrator_AI5 1.3 0
-%%+ procset Adobe_cshow 2.0 8
-%%+ procset Adobe_shading_AI8 1.0 0
-%AI5_FileFormat 4.0
-%AI3_ColorUsage: Black&White
-%AI3_IncludePlacedImages
-%AI7_ImageSettings: 1
-%%CMYKProcessColor: 0 0 0 0.15 (15%)
-%%+ 0 0 0 0.3 (30%)
-%%+ 0 0 0 0.5 (50%)
-%%+ 0 0 0 0.75 (75%)
-%%+ 1 1 1 1 ([Registration])
-%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
-%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4
-%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ()
-%AI3_TemplateBox: 306.5 395.5 306.5 395.5
-%AI3_TileBox: 12 14 600 782
-%AI3_DocumentPreview: Macintosh_ColorPic
-%AI5_ArtSize: 612 792
-%AI5_RulerUnits: 3
-%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0
-%AI5_TargetResolution: 800
-%AI5_NumLayers: 1
-%AI8_OpenToView: 19.1475 609.1196 1.6275 1060 751 18 1 1 7 40 0 0
-%AI5_OpenViewLayers: 7
-%%PageOrigin:12 14
-%%AI3_PaperRect:-12 782 600 -10
-%%AI3_Margin:12 -14 -12 10
-%AI7_GridSettings: 12 3 12 3 1 0 0.29 1 1 0.65 1 1
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Adobe_level2_AI5 1.2 0
-%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
-%%Version: 1.2 0
-%%CreationDate: (04/10/93) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-userdict /Adobe_level2_AI5 26 dict dup begin
- put
- /packedarray where not
- {
- userdict begin
- /packedarray
- {
- array astore readonly
- } bind def
- /setpacking /pop load def
- /currentpacking false def
- end
- 0
- } if
- pop
- userdict /defaultpacking currentpacking put true setpacking
- /initialize
- {
- Adobe_level2_AI5 begin
- } bind def
- /terminate
- {
- currentdict Adobe_level2_AI5 eq
- {
- end
- } if
- } bind def
- mark
- /setcustomcolor where not
- {
- /findcmykcustomcolor
- {
- (AI8_CMYK_CustomColor)
- 6 packedarray
- } bind def
- /findrgbcustomcolor
- {
- (AI8_RGB_CustomColor)
- 5 packedarray
- } bind def
- /setcustomcolor
- {
- exch
- aload pop dup
- (AI8_CMYK_CustomColor) eq
- {
- pop pop
- 4
- {
- 4 index mul
- 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- }
- {
- dup (AI8_RGB_CustomColor) eq
- {
- pop pop
- 3
- {
- 1 exch sub
- 3 index mul
- 1 exch sub
- 3 1 roll
- } repeat
- 4 -1 roll pop
- setrgbcolor
- }
- {
- pop
- 4
- {
- 4 index mul 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- } ifelse
- } ifelse
- }
- def
- } if
- /setAIseparationgray
- {
- false setoverprint
- 0 setgray
- /setseparationgray where{
- pop setseparationgray
- }{
- /setcolorspace where{
- pop
- [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
- 1 exch sub setcolor
- }{
- setgray
- }ifelse
- }ifelse
- } def
-
- /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
- userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
- userdict /level2?
- systemdict /languagelevel known dup
- {
- pop systemdict /languagelevel get 2 ge
- } if
- put
-/level2ScreenFreq
-{
- begin
- 60
- HalftoneType 1 eq
- {
- pop Frequency
- } if
- HalftoneType 2 eq
- {
- pop GrayFrequency
- } if
- HalftoneType 5 eq
- {
- pop Default level2ScreenFreq
- } if
- end
-} bind def
-userdict /currentScreenFreq
- level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
-level2? not
- {
- /setcmykcolor where not
- {
- /setcmykcolor
- {
- exch .11 mul add exch .59 mul add exch .3 mul add
- 1 exch sub setgray
- } def
- } if
- /currentcmykcolor where not
- {
- /currentcmykcolor
- {
- 0 0 0 1 currentgray sub
- } def
- } if
- /setoverprint where not
- {
- /setoverprint /pop load def
- } if
- /selectfont where not
- {
- /selectfont
- {
- exch findfont exch
- dup type /arraytype eq
- {
- makefont
- }
- {
- scalefont
- } ifelse
- setfont
- } bind def
- } if
- /cshow where not
- {
- /cshow
- {
- [
- 0 0 5 -1 roll aload pop
- ] cvx bind forall
- } bind def
- } if
- } if
- cleartomark
- /anyColor?
- {
- add add add 0 ne
- } bind def
- /testColor
- {
- gsave
- setcmykcolor currentcmykcolor
- grestore
- } bind def
- /testCMYKColorThrough
- {
- testColor anyColor?
- } bind def
- userdict /composite?
- 1 0 0 0 testCMYKColorThrough
- 0 1 0 0 testCMYKColorThrough
- 0 0 1 0 testCMYKColorThrough
- 0 0 0 1 testCMYKColorThrough
- and and and
- put
- composite? not
- {
- userdict begin
- gsave
- /cyan? 1 0 0 0 testCMYKColorThrough def
- /magenta? 0 1 0 0 testCMYKColorThrough def
- /yellow? 0 0 1 0 testCMYKColorThrough def
- /black? 0 0 0 1 testCMYKColorThrough def
- grestore
- /isCMYKSep? cyan? magenta? yellow? black? or or or def
- /customColor? isCMYKSep? not def
- end
- } if
- end defaultpacking setpacking
-%%EndResource
-%%BeginResource: procset Adobe_typography_AI5 1.0 1
-%%Title: (Typography Operators)
-%%Version: 1.0 1
-%%CreationDate:(6/10/1996) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_typography_AI5 68 dict dup begin
-put
-/initialize
-{
- begin
- begin
- Adobe_typography_AI5 begin
- Adobe_typography_AI5
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- end
- end
- Adobe_typography_AI5 begin
-} def
-/terminate
-{
- currentdict Adobe_typography_AI5 eq
- {
- end
- } if
-} def
-/modifyEncoding
-{
- /_tempEncode exch ddef
- /_pntr 0 ddef
- {
- counttomark -1 roll
- dup type dup /marktype eq
- {
- pop pop exit
- }
- {
- /nametype eq
- {
- _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
- put
- }
- {
- /_pntr exch ddef
- } ifelse
- } ifelse
- } loop
- _tempEncode
-} def
-/havefont
-{
- systemdict /languagelevel known
- {
- /Font resourcestatus dup
- { exch pop exch pop }
- if
- }
- {
- systemdict /FontDirectory get 1 index known
- { pop true }
- {
- systemdict /fileposition known
- {
- dup length 6 add exch
- Ss 6 250 getinterval
- cvs pop
- Ss exch 0 exch getinterval
- status
- { pop pop pop pop true }
- { false }
- ifelse
- }
- {
- pop false
- }
- ifelse
- }
- ifelse
- }
- ifelse
-} def
-/TE
-{
- StandardEncoding 256 array copy modifyEncoding
- /_nativeEncoding exch def
-} def
-/subststring {
- exch 2 index exch search
- {
- exch pop
- exch dup () eq
- {
- pop exch concatstring
- }
- {
- 3 -1 roll
- exch concatstring
- concatstring
- } ifelse
- exch pop true
- }
- {
- pop pop false
- } ifelse
-} def
-/concatstring {
- 1 index length 1 index length
- 1 index add
- string
- dup 0 5 index putinterval
- dup 2 index 4 index putinterval
- 4 1 roll pop pop pop
-} def
-%
-/TZ
-{
- dup type /arraytype eq
- {
- /_wv exch def
- }
- {
- /_wv 0 def
- } ifelse
- /_useNativeEncoding exch def
- 2 index havefont
- {
- 3 index
- 255 string
- cvs
-
- dup
- (_Symbol_)
- eq
- {
- pop
- 2 index
- findfont
-
- }
- {
- 1 index 0 eq
- {
- dup length 1 sub
- 1 exch
- getinterval
-
- cvn
- findfont
- }
- {
- pop 2 index findfont
- } ifelse
- } ifelse
- }
- {
- dup 1 eq
- {
- 2 index 64 string cvs
- dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop dup
- (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop pop true
- } ifelse
- } ifelse
- {
- 1 index 1 eq
- {
- /Ryumin-Light-Ext-RKSJ-V havefont
- {/Ryumin-Light-Ext-RKSJ-V}
- {/Courier}
- ifelse
- }
- {
- /Ryumin-Light-83pv-RKSJ-H havefont
- {/Ryumin-Light-83pv-RKSJ-H}
- {/Courier}
- ifelse
- } ifelse
- findfont
- [1 0 0.5 1 0 0] makefont
- } if
- }
- {
- /Courier findfont
- } ifelse
- } ifelse
- _wv type /arraytype eq
- {
- _wv makeblendedfont
- } if
- dup length 10 add dict
- begin
- mark exch
- {
- 1 index /FID ne
- {
- def
- } if
- cleartomark mark
- } forall
- pop
- /FontScript exch def
- /FontDirection exch def
- /FontRequest exch def
- /FontName exch def
- counttomark 0 eq
- {
- 1 _useNativeEncoding eq
- {
- /Encoding _nativeEncoding def
- } if
- cleartomark
- }
- {
- /Encoding load 256 array copy
- modifyEncoding /Encoding exch def
- } ifelse
- FontName currentdict
- end
- definefont pop
-} def
-/tr
-{
- _ax _ay 3 2 roll
-} def
-/trj
-{
- _cx _cy _sp _ax _ay 6 5 roll
-} def
-/a0
-{
- /Tx
- {
- dup
- currentpoint 3 2 roll
- tr _psf
- newpath moveto
- tr _ctm _pss
- } ddef
- /Tj
- {
- dup
- currentpoint 3 2 roll
- trj _pjsf
- newpath moveto
- trj _ctm _pjss
- } ddef
-} def
-/a1
-{
-W B
-} def
-/e0
-{
- /Tx
- {
- tr _psf
- } ddef
- /Tj
- {
- trj _pjsf
- } ddef
-} def
-/e1
-{
-W F
-} def
-/i0
-{
- /Tx
- {
- tr sp
- } ddef
- /Tj
- {
- trj jsp
- } ddef
-} def
-/i1
-{
- W N
-} def
-/o0
-{
- /Tx
- {
- tr sw rmoveto
- } ddef
- /Tj
- {
- trj swj rmoveto
- } ddef
-} def
-/r0
-{
- /Tx
- {
- tr _ctm _pss
- } ddef
- /Tj
- {
- trj _ctm _pjss
- } ddef
-} def
-/r1
-{
-W S
-} def
-/To
-{
- pop _ctm currentmatrix pop
-} def
-/TO
-{
- iTe _ctm setmatrix newpath
-} def
-/Tp
-{
- pop _tm astore pop _ctm setmatrix
- _tDict begin
- /W
- {
- } def
- /h
- {
- } def
-} def
-/TP
-{
- end
- iTm 0 0 moveto
-} def
-/Tr
-{
- _render 3 le
- {
- currentpoint newpath moveto
- } if
- dup 8 eq
- {
- pop 0
- }
- {
- dup 9 eq
- {
- pop 1
- } if
- } ifelse
- dup /_render exch ddef
- _renderStart exch get load exec
-} def
-/iTm
-{
- _ctm setmatrix _tm concat
- _shift aload pop _lineorientation 1 eq { exch } if translate
- _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
-} def
-/Tm
-{
- _tm astore pop iTm 0 0 moveto
-} def
-/Td
-{
- _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
-} def
-/iTe
-{
- _render -1 eq
- {
- }
- {
- _renderEnd _render get dup null ne
- {
- load exec
- }
- {
- pop
- } ifelse
- } ifelse
- /_render -1 ddef
-} def
-/Ta
-{
- pop
-} def
-/Tf
-{
- 1 index type /nametype eq
- {
- dup 0.75 mul 1 index 0.25 mul neg
- } if
- /_fontDescent exch ddef
- /_fontAscent exch ddef
- /_fontSize exch ddef
- /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
- /_fontHeight _fontSize ddef
- findfont _fontSize scalefont setfont
-} def
-/Tl
-{
- pop neg 0 exch
- _leading astore pop
-} def
-/Tt
-{
- pop
-} def
-/TW
-{
- 3 npop
-} def
-/Tw
-{
- /_cx exch ddef
-} def
-/TC
-{
- 3 npop
-} def
-/Tc
-{
- /_ax exch ddef
-} def
-/Ts
-{
- 0 exch
- _shift astore pop
- currentpoint
- iTm
- moveto
-} def
-/Ti
-{
- 3 npop
-} def
-/Tz
-{
- count 1 eq { 100 } if
- 100 div exch 100 div exch
- _scale astore pop
- iTm
-} def
-/TA
-{
- pop
-} def
-/Tq
-{
- pop
-} def
-/Tg
-{
- pop
-} def
-/TG
-{
- pop
-} def
-/Tv
-{
- /_lineorientation exch ddef
-} def
-/TV
-{
- /_charorientation exch ddef
-} def
-/Ty
-{
- dup /_yokoorientation exch ddef 1 sub neg Tv
-} def
-/TY
-{
- pop
-} def
-/T~
-{
- Tx
-} def
-/Th
-{
- pop pop pop pop pop
-} def
-/TX
-{
- pop
-} def
-/Tk
-{
- _fontSize mul 1000 div
- _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
- rmoveto
- pop
-} def
-/TK
-{
- 2 npop
-} def
-/T*
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- Td
-} def
-/T*-
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- exch neg exch neg
- Td
-} def
-/T-
-{
- _ax neg 0 rmoveto
- _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
-} def
-/T+
-{
-} def
-/TR
-{
- _ctm currentmatrix pop
- _tm astore pop
- iTm 0 0 moveto
-} def
-/TS
-{
- currentfont 3 1 roll
- /_Symbol_ findfont _fontSize scalefont setfont
-
- 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- setfont
-} def
-/Xb
-{
- pop pop
-} def
-/Tb /Xb load def
-/Xe
-{
- pop pop pop pop
-} def
-/Te /Xe load def
-/XB
-{
-} def
-/TB /XB load def
-currentdict readonly pop
-end
-setpacking
-%
-/X^
-{
- currentfont 5 1 roll
- dup havefont
- {
- findfont _fontSize scalefont setfont
- }
- {
- pop
- exch
- } ifelse
- 2 index 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- pop pop
- setfont
-} def
-/T^ /X^ load def
-%%EndResource
-%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
-userdict /Adobe_ColorImage_AI6 known not
-{
- userdict /Adobe_ColorImage_AI6 53 dict put
-} if
-userdict /Adobe_ColorImage_AI6 get begin
-/initialize {
- Adobe_ColorImage_AI6 begin
- Adobe_ColorImage_AI6 {
- dup type /arraytype eq {
- dup xcheck {
- bind
- } if
- } if
- pop pop
- } forall
-} def
-/terminate { end } def
-currentdict /Adobe_ColorImage_AI6_Vars known not {
- /Adobe_ColorImage_AI6_Vars 41 dict def
-} if
-Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /_newproc null def
- /_proc1 null def
- /_proc2 null def
- /sourcearray 4 array def
- /_ptispace null def
- /_ptiname null def
- /_pti0 0 def
- /_pti1 0 def
- /_ptiproc null def
- /_ptiscale 0 def
- /_pticomps 0 def
- /_ptibuf 0 string def
- /_gtigray 0 def
- /_cticmyk null def
- /_rtirgb null def
- /XIEnable true def
- /XIType 0 def
- /XIEncoding 0 def
- /XICompression 0 def
- /XIChannelCount 0 def
- /XIBitsPerPixel 0 def
- /XIImageHeight 0 def
- /XIImageWidth 0 def
- /XIImageMatrix null def
- /XIRowBytes 0 def
- /XIFile null def
- /XIBuffer1 null def
- /XIBuffer2 null def
- /XIBuffer3 null def
- /XIDataProc null def
- /XIColorSpace /DeviceGray def
- /XIColorValues 0 def
- /XIPlateList false def
-end
-/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
-/ci6image systemdict /image get def
-/ci6curtransfer systemdict /currenttransfer get def
-/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
-/ci6foureq {
- 4 index ne {
- pop pop pop false
- }{
- 4 index ne {
- pop pop false
- }{
- 4 index ne {
- pop false
- }{
- 4 index eq
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6testplate {
- Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /setcmykcolor where {
- pop
- gsave
- 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
- grestore
- 1 0 0 0 ci6foureq {
- /plateindex 0 def
- }{
- 0 1 0 0 ci6foureq {
- /plateindex 1 def
- }{
- 0 0 1 0 ci6foureq {
- /plateindex 2 def
- }{
- 0 0 0 1 ci6foureq {
- /plateindex 3 def
- }{
- 0 0 0 0 ci6foureq {
- /plateindex 5 def
- } if
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- pop pop pop pop
- } if
- plateindex
- end
-} def
-/ci6concatprocs {
- /packedarray where {
- pop dup type /packedarraytype eq 2 index type
- /packedarraytype eq or
- }{
- false
- } ifelse
- {
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- _proc1 aload pop
- _proc2 aload pop
- _proc1 length
- _proc2 length add
- packedarray cvx
- }{
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- /_newproc _proc1 length _proc2 length add array def
- _newproc 0 _proc1 putinterval
- _newproc _proc1 length _proc2 putinterval
- _newproc cvx
- } ifelse
-} def
-/ci6istint {
- type /arraytype eq
-} def
-/ci6isspot {
- dup type /arraytype eq {
- dup length 1 sub get /Separation eq
- }{
- pop false
- } ifelse
-} def
-/ci6spotname {
- dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
-} def
-/ci6altspace {
- aload pop pop pop ci6colormake
-} def
-/ci6numcomps {
- dup /DeviceGray eq {
- pop 1
- }{
- dup /DeviceRGB eq {
- pop 3
- }{
- /DeviceCMYK eq {
- 4
- }{
- 1
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6marksplate {
- dup /DeviceGray eq {
- pop plateindex 3 eq
- }{
- dup /DeviceRGB eq {
- pop plateindex 5 ne
- }{
- dup /DeviceCMYK eq {
- pop plateindex 5 ne
- }{
- dup ci6isspot {
- /findcmykcustomcolor where {
- pop
- dup length 2 sub get
- 0.1 0.1 0.1 0.1 5 -1 roll
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop plateindex 5 ne
- } ifelse
- }{
- pop plateindex 5 ne
- } ifelse
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colormake {
- dup ci6numcomps
- exch 1 index 2 add 1 roll
- dup 1 eq {pop}{array astore} ifelse
- exch
-} def
-/ci6colorexpand {
- dup ci6spotname exch
- dup ci6istint {
- ci6altspace
- exch 4 1 roll
- }{
- 1 3 1 roll
- } ifelse
-} def
-/ci6colortint {
- dup /DeviceGray eq {
- 3 1 roll 1 exch sub mul 1 exch sub exch
- }{
- dup /DeviceRGB eq {
- 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
- }{
- dup /DeviceCMYK eq {
- 3 1 roll {1 index mul exch} forall pop 4 array astore exch
- }{
- 3 1 roll mul exch
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colortocmyk {
- dup /DeviceGray eq {
- pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
- }{
- dup /DeviceRGB eq {
- pop aload pop _rgbtocmyk 4 array astore
- }{
- dup /DeviceCMYK eq {
- pop
- }{
- ci6altspace ci6colortint ci6colortocmyk
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6makeimagedict {
- 7 dict begin
- /ImageType 1 def
- /Decode exch def
- /DataSource exch def
- /ImageMatrix exch def
- /BitsPerComponent exch def
- /Height exch def
- /Width exch def
- currentdict end
-} def
-/ci6stringinvert {
- 0 1 2 index length 1 sub {
- dup 2 index exch get 255 exch sub 2 index 3 1 roll put
- } for
-} def
-/ci6stringknockout {
- 0 1 2 index length 1 sub {
- 255 2 index 3 1 roll put
- } for
-} def
-/ci6stringapply {
- 0 1 4 index length 1 sub {
- dup
- 4 index exch get
- 3 index 3 1 roll
- 3 index exec
- } for
- pop exch pop
-} def
-/ci6walkrgbstring {
- 0 3 index
- dup length 1 sub 0 3 3 -1 roll {
- 3 getinterval {} forall
- 5 index exec
- 3 index
- } for
-
- 5 {pop} repeat
-} def
-/ci6walkcmykstring
-{
- 0 3 index
- dup length 1 sub 0 4 3 -1 roll {
- 4 getinterval {} forall
-
- 6 index exec
-
- 3 index
-
- } for
-
- 5 { pop } repeat
-
-} def
-/ci6putrgbtograystr
-{
- .11 mul exch
-
- .59 mul add exch
-
- .3 mul add
-
- cvi 3 copy put
-
- pop 1 add
-} def
-/ci6putcmyktograystr
-{
- exch .11 mul add
-
- exch .59 mul add
-
- exch .3 mul add
-
- dup 255 gt { pop 255 } if
-
- 255 exch sub cvi 3 copy put
-
- pop 1 add
-} def
-/ci6rgbtograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putrgbtograystr load exch
- ci6walkrgbstring
- end
-} def
-/ci6cmyktograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putcmyktograystr load exch
- ci6walkcmykstring
- end
-} def
-/ci6separatecmykproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
-
- XIBuffer3
-
- 0 2 index
-
- plateindex 4 2 index length 1 sub {
- get 255 exch sub
-
- 3 copy put pop 1 add
-
- 2 index
- } for
- pop pop exch pop
- end
-} def
-
-/ci6compositeimage {
- dup 1 eq {
- pop pop image
- }{
- /ci6colorimage load null ne {
- ci6colorimage
- }{
- 3 1 roll pop
- sourcearray 0 3 -1 roll put
- 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
- image
- } ifelse
- } ifelse
-} def
-/ci6knockoutimage {
- gsave
- 0 ci6curtransfer exec 1 ci6curtransfer exec
- eq {
- 0 ci6curtransfer exec 0.5 lt
- }{
- 0 ci6curtransfer exec 1 ci6curtransfer exec gt
- } ifelse
- {{pop 0}}{{pop 1}} ifelse
- systemdict /settransfer get exec
- ci6compositeimage
- grestore
-} def
-/ci6drawimage {
- ci6testplate -1 eq {
- pop ci6compositeimage
- }{
- dup type /arraytype eq {
- dup length plateindex gt {plateindex get}{pop false} ifelse
- }{
- {
- true
- }{
- dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
- } ifelse
- } ifelse
- {
- dup 1 eq {
- pop pop ci6image
- }{
- dup 3 eq {
- ci6compositeimage
- }{
- pop pop
- sourcearray 0 3 -1 roll put
- /ci6separatecmykproc load
- ci6image
- } ifelse
- } ifelse
- }{
- ci6curoverprint {
- 7 {pop} repeat
- }{
- ci6knockoutimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6proctintimage {
- /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
- /_pticomps _ptispace ci6numcomps store
- /_ptiscale _pti1 _pti0 sub store
- level2? {
- _ptiname length 0 gt version cvr 2012 ge and {
- [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
- [_pti0 _pti1] ci6makeimagedict ci6image
- }{
- [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
- [0 255] ci6makeimagedict ci6image
- } ifelse
- }{
- _pticomps 1 eq {
- {
- dup
- {
- 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
- } ci6stringapply
- } ci6concatprocs ci6image
- }{
- {
- dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
- _ptibuf {
- exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
- _pticomps 2 add -2 roll
- _pticomps 1 sub -1 0 {
- 1 index add 2 index exch
- 5 -1 roll
- 255 mul cvi put
- } for
- pop pop
- } ci6stringapply
- } ci6concatprocs false _pticomps
- /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
- } ifelse
- } ifelse
-} def
-/ci6graytintimage {
- /_gtigray 5 -1 roll store
- {1 _gtigray sub mul 1 exch sub} 4 1 roll
- /DeviceGray ci6proctintimage
-} def
-/ci6cmyktintimage {
- /_cticmyk 5 -1 roll store
- {_cticmyk {1 index mul exch} forall pop} 4 1 roll
- /DeviceCMYK ci6proctintimage
-} def
-/ci6rgbtintimage {
- /_rtirgb 5 -1 roll store
- {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
- /DeviceRGB ci6proctintimage
-} def
-/ci6tintimage {
- ci6testplate -1 eq {
- ci6colorexpand
- 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
- dup /DeviceGray eq {
- pop ci6graytintimage
- }{
- dup /DeviceRGB eq {
- pop ci6rgbtintimage
- }{
- pop ci6cmyktintimage
- } ifelse
- } ifelse
- }{
- dup ci6marksplate {
- plateindex 5 lt {
- ci6colortocmyk plateindex get
- dup 0 eq ci6curoverprint and {
- 7 {pop} repeat
- }{
- 1 exch sub
- exch {1 0}{0 1} ifelse () ci6graytintimage
- } ifelse
- }{
- pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
- } ifelse
- }{
- ci6curoverprint {
- 8 {pop} repeat
- }{
- pop pop pop
- {pop 1} 0 1 () /DeviceGray ci6proctintimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/XINullImage {
-} def
-/XIImageMask {
- XIImageWidth XIImageHeight false
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- imagemask
-} def
-/XIImageTint {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- XIType 3 eq XIColorValues XIColorSpace ci6tintimage
-} def
-/XIImage {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- false XIChannelCount XIPlateList ci6drawimage
-} def
-/XG {
- pop pop
-} def
-/XF {
- 13 {pop} repeat
-} def
-/Xh {
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- /XIImageMatrix exch def
- 0 0 moveto
- XIImageMatrix concat
- XIImageWidth XIImageHeight scale
-
- /_lp /null ddef
- _fc
- /_lp /imagemask ddef
- end
-} def
-/XH {
- Adobe_ColorImage_AI6_Vars begin
- grestore
- end
-} def
-/XIEnable {
- Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
-} def
-/XC {
- Adobe_ColorImage_AI6_Vars begin
- ci6colormake
- /XIColorSpace exch def
- /XIColorValues exch def
- end
-} def
-/XIPlates {
- Adobe_ColorImage_AI6_Vars begin
- /XIPlateList exch def
- end
-} def
-/XI
-{
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- cvi dup
- 256 idiv /XICompression exch store
- 256 mod /XIEncoding exch store
- pop pop
- /XIChannelCount exch def
- /XIBitsPerPixel exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- pop pop pop pop
- /XIImageMatrix exch def
- XIBitsPerPixel 1 eq {
- XIImageWidth 8 div ceiling cvi
- }{
- XIImageWidth XIChannelCount mul
- } ifelse
- /XIRowBytes exch def
- XIEnable {
- /XIBuffer3 XIImageWidth string def
- XICompression 0 eq {
- /XIBuffer1 XIRowBytes string def
- XIEncoding 0 eq {
- {currentfile XIBuffer1 readhexstring pop}
- }{
- {currentfile XIBuffer1 readstring pop}
- } ifelse
- }{
- /XIBuffer1 256 string def
- /XIBuffer2 XIRowBytes string def
- {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
- /ASCII85Decode filter /DCTDecode filter
- /XIFile exch def
- {XIFile XIBuffer2 readstring pop}
- } ifelse
- /XIDataProc exch def
-
- XIType 1 ne {
- 0 setgray
- } if
- XIType 1 eq {
- XIImageMask
- }{
- XIType 2 eq XIType 3 eq or {
- XIImageTint
- }{
- XIImage
- } ifelse
- } ifelse
- }{
- XINullImage
- } ifelse
- /XIPlateList false def
- grestore
- end
-} def
-end
-%%EndProcSet
-%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
-%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
-%%Version: 1.3 0
-%%CreationDate: (3/7/1994) ()
-%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
-put
-/_?cmyk false def
-/_eo false def
-/_lp /none def
-/_pf
-{
-} def
-/_ps
-{
-} def
-/_psf
-{
-} def
-/_pss
-{
-} def
-/_pjsf
-{
-} def
-/_pjss
-{
-} def
-/_pola 0 def
-/_doClip 0 def
-/cf currentflat def
-/_lineorientation 0 def
-/_charorientation 0 def
-/_yokoorientation 0 def
-/_tm matrix def
-/_renderStart
-[
-/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
-] def
-/_renderEnd
-[
-null null null null /i1 /i1 /i1 /i1
-] def
-/_render -1 def
-/_shift [0 0] def
-/_ax 0 def
-/_ay 0 def
-/_cx 0 def
-/_cy 0 def
-/_leading
-[
-0 0
-] def
-/_ctm matrix def
-/_mtx matrix def
-/_sp 16#020 def
-/_hyphen (-) def
-/_fontSize 0 def
-/_fontAscent 0 def
-/_fontDescent 0 def
-/_fontHeight 0 def
-/_fontRotateAdjust 0 def
-/Ss 256 string def
-Ss 0 (fonts/) putinterval
-/_cnt 0 def
-/_scale [1 1] def
-/_nativeEncoding 0 def
-/_useNativeEncoding 0 def
-/_tempEncode 0 def
-/_pntr 0 def
-/_tDict 2 dict def
-/_hfname 100 string def
-/_hffound false def
-/Tx
-{
-} def
-/Tj
-{
-} def
-/CRender
-{
-} def
-/_AI3_savepage
-{
-} def
-/_gf null def
-/_cf 4 array def
-/_rgbf 3 array def
-/_if null def
-/_of false def
-/_fc
-{
-} def
-/_gs null def
-/_cs 4 array def
-/_rgbs 3 array def
-/_is null def
-/_os false def
-/_sc
-{
-} def
-/_pd 1 dict def
-/_ed 15 dict def
-/_pm matrix def
-/_fm null def
-/_fd null def
-/_fdd null def
-/_sm null def
-/_sd null def
-/_sdd null def
-/_i null def
-/_lobyte 0 def
-/_hibyte 0 def
-/_cproc null def
-/_cscript 0 def
-/_hvax 0 def
-/_hvay 0 def
-/_hvwb 0 def
-/_hvcx 0 def
-/_hvcy 0 def
-/_bitfont null def
-/_bitlobyte 0 def
-/_bithibyte 0 def
-/_bitkey null def
-/_bitdata null def
-/_bitindex 0 def
-/discardSave null def
-/buffer 256 string def
-/beginString null def
-/endString null def
-/endStringLength null def
-/layerCnt 1 def
-/layerCount 1 def
-/perCent (%) 0 get def
-/perCentSeen? false def
-/newBuff null def
-/newBuffButFirst null def
-/newBuffLast null def
-/clipForward? false def
-end
-userdict /Adobe_Illustrator_AI5 known not {
- userdict /Adobe_Illustrator_AI5 100 dict put
-} if
-userdict /Adobe_Illustrator_AI5 get begin
-/initialize
-{
- Adobe_Illustrator_AI5 dup begin
- Adobe_Illustrator_AI5_vars begin
- /_aicmykps where {pop /_?cmyk _aicmykps def}if
- discardDict
- {
- bind pop pop
- } forall
- dup /nc get begin
- {
- dup xcheck 1 index type /operatortype ne and
- {
- bind
- } if
- pop pop
- } forall
- end
- newpath
-} def
-/terminate
-{
- end
- end
-} def
-/_
-null def
-/ddef
-{
- Adobe_Illustrator_AI5_vars 3 1 roll put
-} def
-/xput
-{
- dup load dup length exch maxlength eq
- {
- dup dup load dup
- length 2 mul dict copy def
- } if
- load begin
- def
- end
-} def
-/npop
-{
- {
- pop
- } repeat
-} def
-/hswj
-{
- dup stringwidth 3 2 roll
- {
- _hvwb eq { exch _hvcx add exch _hvcy add } if
- exch _hvax add exch _hvay add
- } cforall
-} def
-/vswj
-{
- 0 0 3 -1 roll
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- dup cstring stringwidth 5 2 roll
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- 4 -1 roll sub exch
- 3 -1 roll sub exch
- }
- {
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- _fontHeight sub
- } ifelse
- } cforall
-} def
-/swj
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hswj } { vswj } ifelse
-} def
-/sw
-{
- 0 0 0 6 3 roll swj
-} def
-/vjss
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- gsave
- 2 index false charpath
- 6 index setmatrix stroke
- grestore
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjss
-{
- 4 1 roll
- {
- dup cstring
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jss
-{
- _lineorientation 0 eq { hjss } { vjss } ifelse
-} def
-/ss
-{
- 0 0 0 7 3 roll jss
-} def
-/vjsp
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- false charpath
- currentpoint
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- 2 index false charpath
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjsp
-{
- 4 1 roll
- {
- dup cstring
- false charpath
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jsp
-{
- matrix currentmatrix
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/sp
-{
- matrix currentmatrix
- 0 0 0 7 3 roll
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/pl
-{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
-} def
-/setstrokeadjust where
-{
- pop true setstrokeadjust
- /c
- {
- curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll curveto
- } def
- /V
- /v load def
- /y
- {
- 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- lineto
- } def
- /L
- /l load def
- /m
- {
- moveto
- } def
-}
-{
- /c
- {
- pl curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll pl curveto
- } def
- /V
- /v load def
- /y
- {
- pl 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- pl lineto
- } def
- /L
- /l load def
- /m
- {
- pl moveto
- } def
-} ifelse
-/d
-{
- setdash
-} def
-/cf
-{
-} def
-/i
-{
- dup 0 eq
- {
- pop cf
- } if
- setflat
-} def
-/j
-{
- setlinejoin
-} def
-/J
-{
- setlinecap
-} def
-/M
-{
- setmiterlimit
-} def
-/w
-{
- setlinewidth
-} def
-/XR
-{
- 0 ne
- /_eo exch ddef
-} def
-/H
-{
-} def
-/h
-{
- closepath
-} def
-/N
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- _eo {eoclip} {clip} ifelse /_doClip 0 ddef
- } if
- newpath
- }
- {
- /CRender
- {
- N
- } ddef
- } ifelse
-} def
-/n
-{
- N
-} def
-/F
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
- /_doClip 0 ddef
- }
- {
- _pf
- } ifelse
- }
- {
- /CRender
- {
- F
- } ddef
- } ifelse
-} def
-/f
-{
- closepath
- F
-} def
-/S
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- _ps
- } ifelse
- }
- {
- /CRender
- {
- S
- } ddef
- } ifelse
-} def
-/s
-{
- closepath
- S
-} def
-/B
-{
- _pola 0 eq
- {
- _doClip 1 eq
- gsave F grestore
- {
- gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- S
- } ifelse
- }
- {
- /CRender
- {
- B
- } ddef
- } ifelse
-} def
-/b
-{
- closepath
- B
-} def
-/W
-{
- /_doClip 1 ddef
-} def
-/*
-{
- count 0 ne
- {
- dup type /stringtype eq
- {
- pop
- } if
- } if
- newpath
-} def
-/u
-{
-} def
-/U
-{
-} def
-/q
-{
- _pola 0 eq
- {
- gsave
- } if
-} def
-/Q
-{
- _pola 0 eq
- {
- grestore
- } if
-} def
-/*u
-{
- _pola 1 add /_pola exch ddef
-} def
-/*U
-{
- _pola 1 sub /_pola exch ddef
- _pola 0 eq
- {
- CRender
- } if
-} def
-/D
-{
- pop
-} def
-/*w
-{
-} def
-/*W
-{
-} def
-/`
-{
- /_i save ddef
- clipForward?
- {
- nulldevice
- } if
- 6 1 roll 4 npop
- concat pop
- userdict begin
- /showpage
- {
- } def
- 0 setgray
- 0 setlinecap
- 1 setlinewidth
- 0 setlinejoin
- 10 setmiterlimit
- [] 0 setdash
- /setstrokeadjust where {pop false setstrokeadjust} if
- newpath
- 0 setgray
- false setoverprint
-} def
-/~
-{
- end
- _i restore
-} def
-/_rgbtocmyk
-{
- 3
- {
- 1 exch sub 3 1 roll
- } repeat
- 3 copy 1 4 1 roll
- 3
- {
- 3 index 2 copy gt
- {
- exch
- } if
- pop 4 1 roll
- } repeat
- pop pop pop
- 4 1 roll
- 3
- {
- 3 index sub
- 3 1 roll
- } repeat
- 4 -1 roll
-} def
-/setrgbfill
-{
- _rgbf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _rgbf aload pop setrgbcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/setrgbstroke
-{
- _rgbs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _rgbs aload pop setrgbcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/O
-{
- 0 ne
- /_of exch ddef
- /_lp /none ddef
-} def
-/R
-{
- 0 ne
- /_os exch ddef
- /_lp /none ddef
-} def
-/g
-{
- /_gf exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/G
-{
- /_gs exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/k
-{
- _cf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _cf aload pop setcmykcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/K
-{
- _cs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _cs aload pop setcmykcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xa
-{
- _?cmyk {
- 3 npop k
- }{
- setrgbfill 4 npop
- } ifelse
-} def
-/XA
-{
- _?cmyk {
- 3 npop K
- }{
- setrgbstroke 4 npop
- } ifelse
-} def
-/Xs
-{
- /_gf exch ddef
- 5 npop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setAIseparationgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XS
-{
- /_gs exch ddef
- 5 npop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setAIseparationgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xx
-{
- exch
- /_gf exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XX
-{
- exch
- /_gs exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/x
-{
- /_gf exch ddef
- findcmykcustomcolor
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/X
-{
- /_gs exch ddef
- findcmykcustomcolor
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/XK
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- K
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- XA
- } ifelse
-} def
-/Xk
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- k
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- Xa
- } ifelse
-} def
-/A
-{
- pop
-} def
-/annotatepage
-{
-userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
-} def
-/XT {
- pop pop
-} def
-/Xt {
- pop
-} def
-/discard
-{
- save /discardSave exch store
- discardDict begin
- /endString exch store
- gt38?
- {
- 2 add
- } if
- load
- stopped
- pop
- end
- discardSave restore
-} bind def
-userdict /discardDict 7 dict dup begin
-put
-/pre38Initialize
-{
- /endStringLength endString length store
- /newBuff buffer 0 endStringLength getinterval store
- /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
- /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
-} def
-/shiftBuffer
-{
- newBuff 0 newBuffButFirst putinterval
- newBuffLast 0
- currentfile read not
- {
- stop
- } if
- put
-} def
-0
-{
- pre38Initialize
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff endString eq
- {
- cleartomark stop
- } if
- shiftBuffer
- } loop
- }
- {
- stop
- } ifelse
-} def
-1
-{
- pre38Initialize
- /beginString exch store
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff beginString eq
- {
- /layerCount dup load 1 add store
- }
- {
- newBuff endString eq
- {
- /layerCount dup load 1 sub store
- layerCount 0 eq
- {
- cleartomark stop
- } if
- } if
- } ifelse
- shiftBuffer
- } loop
- } if
-} def
-2
-{
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- endString eq {
- cleartomark stop
- } if
- }ifelse
- } loop
-} def
-3
-{
- /beginString exch store
- /layerCnt 1 store
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- dup beginString eq
- {
- pop /layerCnt dup load 1 add store
- }
- {
- endString eq
- {
- layerCnt 1 eq
- {
- cleartomark stop
- }
- {
- /layerCnt dup load 1 sub store
- } ifelse
- } if
- } ifelse
- }ifelse
- } loop
-} def
-end
-userdict /clipRenderOff 15 dict dup begin
-put
-{
- /n /N /s /S /f /F /b /B
-}
-{
- {
- _doClip 1 eq
- {
- /_doClip 0 ddef _eo {eoclip} {clip} ifelse
- } if
- newpath
- } def
-} forall
-/Tr /pop load def
-/Bb {} def
-/BB /pop load def
-/Bg {12 npop} def
-/Bm {6 npop} def
-/Bc /Bm load def
-/Bh {4 npop} def
-end
-/Lb
-{
- 6 npop
- 7 2 roll
- 5 npop
- 0 eq
- {
- 0 eq
- {
- (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
- }
- {
-
- /clipForward? true def
-
- /Tx /pop load def
- /Tj /pop load def
-
- currentdict end clipRenderOff begin begin
- } ifelse
- }
- {
- 0 eq
- {
- save /discardSave exch store
- } if
- } ifelse
-} bind def
-/LB
-{
- discardSave dup null ne
- {
- restore
- }
- {
- pop
- clipForward?
- {
- currentdict
- end
- end
- begin
-
- /clipForward? false ddef
- } if
- } ifelse
-} bind def
-/Pb
-{
- pop pop
- 0 (%AI5_EndPalette) discard
-} bind def
-/Np
-{
- 0 (%AI5_End_NonPrinting--) discard
-} bind def
-/Ln /pop load def
-/Ap
-/pop load def
-/Ar
-{
- 72 exch div
- 0 dtransform dup mul exch dup mul add sqrt
- dup 1 lt
- {
- pop 1
- } if
- setflat
-} def
-/Mb
-{
- q
-} def
-/Md
-{
-} def
-/MB
-{
- Q
-} def
-/nc 4 dict def
-nc begin
-/setgray
-{
- pop
-} bind def
-/setcmykcolor
-{
- 4 npop
-} bind def
-/setrgbcolor
-{
- 3 npop
-} bind def
-/setcustomcolor
-{
- 2 npop
-} bind def
-currentdict readonly pop
-end
-/XP
-{
- 4 npop
-} bind def
-/XD
-{
- pop
-} bind def
-end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_cshow 2.0 8
-%%Title: (Writing System Operators)
-%%Version: 2.0 8
-%%CreationDate: (1/23/89) ()
-%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_cshow 14 dict dup begin put
-/initialize
-{
- Adobe_cshow begin
- Adobe_cshow
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- Adobe_cshow begin
-} def
-/terminate
-{
-currentdict Adobe_cshow eq
- {
- end
- } if
-} def
-/cforall
-{
- /_lobyte 0 ddef
- /_hibyte 0 ddef
- /_cproc exch ddef
- /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
- {
- /_lobyte exch ddef
- _hibyte 0 eq
- _cscript 1 eq
- _lobyte 129 ge _lobyte 159 le and
- _lobyte 224 ge _lobyte 252 le and or and
- _cscript 2 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 3 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 25 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript -1 eq
- or or or or and
- {
- /_hibyte _lobyte ddef
- }
- {
- _hibyte 256 mul _lobyte add
- _cproc
- /_hibyte 0 ddef
- } ifelse
- } forall
-} def
-/cstring
-{
- dup 256 lt
- {
- (s) dup 0 4 3 roll put
- }
- {
- dup 256 idiv exch 256 mod
- (hl) dup dup 0 6 5 roll put 1 4 3 roll put
- } ifelse
-} def
-/clength
-{
- 0 exch
- { 256 lt { 1 } { 2 } ifelse add } cforall
-} def
-/hawidthshow
-{
- {
- dup cstring
- show
- _hvax _hvay rmoveto
- _hvwb eq { _hvcx _hvcy rmoveto } if
- } cforall
-} def
-/vawidthshow
-{
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- -90 rotate
- 0 _fontRotateAdjust rmoveto
- cstring
- _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
- 0 _fontRotateAdjust neg rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- exch _hvay sub exch _hvax sub
- 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- 3 2 roll
- cstring
- dup stringwidth pop 2 div neg _fontAscent neg rmoveto
- show
- moveto
- } ifelse
- } cforall
-} def
-/hvawidthshow
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
-} def
-/hvwidthshow
-{
- 0 0 3 -1 roll hvawidthshow
-} def
-/hvashow
-{
- 0 0 0 6 -3 roll hvawidthshow
-} def
-/hvshow
-{
- 0 0 0 0 0 6 -1 roll hvawidthshow
-} def
-currentdict readonly pop end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_shading_AI8 1.0 0
-%%Title: (Adobe Illustrator 8 Shading Procset)
-%%Version: 1.0 0
-%%CreationDate: (12/17/97) ()
-%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
-userdict /defaultpacking currentpacking put true setpacking
-userdict /Adobe_shading_AI8 10 dict dup begin put
-/initialize {
- Adobe_shading_AI8 begin
- Adobe_shading_AI8 bdprocs
- Mesh /initialize get exec
-} def
-/terminate {
- currentdict Adobe_shading_AI8 eq {
- end
- } if
-} def
-/bdprocs {
- {
- dup xcheck 1 index type /arraytype eq and {
- bind
- } if
- pop pop
- } forall
-} def
-/X! {pop} def
-/X# {pop pop} def
-/Mesh 40 dict def
-Mesh begin
-/initialize {
- Mesh bdprocs
- Mesh begin
- /emulate? /AI8MeshEmulation where {
- pop AI8MeshEmulation
- }{
- systemdict /shfill known not
- } ifelse def
- end
-} def
-/bd {
- shadingdict begin
-} def
-/paint {
- emulate? {
- end
- }{
- /_lp /none ddef _fc /_lp /none ddef
-
- /AIColorSpace AIColorSpace tocolorspace store
- /ColorSpace AIColorSpace topsspace store
-
- version_ge_3010.106 not systemdict /setsmoothness known and {
- 0.0001 setsmoothness
- } if
-
- composite? {
- /DataSource getdatasrc def
- Matrix concat
- currentdict end
- shfill
- }{
- AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
- end
- }{
- /ColorSpace /DeviceGray store
- /Decode [0 1 0 1 0 1] store
- /DataSource getplatesrc def
- Matrix concat
- currentdict end
- shfill
- } ifelse
- } ifelse
- } ifelse
-} def
-/shadingdict 12 dict def
-shadingdict begin
- /ShadingType 6 def
- /BitsPerCoordinate 16 def
- /BitsPerComponent 8 def
- /BitsPerFlag 8 def
-end
-/datafile null def
-/databuf 256 string def
-/dataptr 0 def
-/srcspace null def
-/srcchannels 0 def
-/dstchannels 0 def
-/dstplate 0 def
-/srctodstcolor null def
-/getplatesrc {
- /srcspace AIColorSpace store
- /srcchannels AIColorSpace getnchannels store
- /dstchannels 1 store
- /dstplate getplateindex store
- /srctodstcolor srcspace makesmarks {
- dstplate 4 eq {
- {1 exch sub}
- }{
- {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
- } ifelse
- }{
- {srcchannels {pop} repeat 1}
- } ifelse store
- /datafile getdatasrc store
- /rdpatch168 load DataLength () /SubFileDecode filter
-} def
-/getdatasrc {
- /rdcmntline load /ASCII85Decode filter
-} def
-/rdpatch168 {
- /dataptr 0 store
- 49 rdcount
- 4 {
- dup {pop srcchannels getint8} if
- dup {pop srctodstcolor dstchannels putint8 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdpatch3216 {
- /dataptr 0 store
- 97 rdcount
- 4 {
- dup {pop srcchannels getint16} if
- dup {pop srctodstcolor dstchannels putint16 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdcount {
- dup 0 gt {
- datafile databuf dataptr 4 -1 roll getinterval readstring
- exch length dataptr add /dataptr exch store
- }{
- true
- } ifelse
-} def
-/getint8 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 255 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint8 {
- dup dataptr add /dataptr exch store
- dataptr exch
- {
- 1 sub exch
- 255 mul cvi
- databuf 2 index
- 3 -1 roll put
- } repeat
- pop
-} def
-/getint16 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 256 mul datafile read} if
- dup {pop add 65535 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint16 {
- dup 2 mul dataptr add /dataptr exch store
- dataptr exch
- {
- 2 sub exch
- 65535 mul cvi dup
- 256 idiv databuf 3 index 3 -1 roll put
- 256 mod databuf 2 index 1 add 3 -1 roll put
- } repeat
- pop
-} def
-/srcbuf 256 string def
-/rdcmntline {
- currentfile srcbuf readline pop
- (%) anchorsearch {pop} if
-} def
-/getplateindex {
- 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
-} def
-/aicsarray 4 array def
-/aicsaltvals 4 array def
-/aicsaltcolr aicsaltvals def
-/tocolorspace {
- dup type /arraytype eq {
- mark exch aload pop
- aicsarray 0 3 -1 roll put
- aicsarray 1 3 -1 roll put
- dup aicsarray 2 3 -1 roll put
- gettintxform aicsarray 3 3 -1 roll put
- counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
- aicsaltcolr astore pop pop
- aicsarray
- } if
-} def
-/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
-/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
-/gettintxform {
- /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
-} def
-/getnchannels {
- dup type /arraytype eq {0 get} if
- colorspacedict exch get begin Channels end
-} def
-/makesmarks {
- composite? {
- pop true
- }{
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin MarksPlate end
- } ifelse
-} def
-/markingplate {
- composite? {
- pop true
- }{
- dup type /arraytype eq {
- dup length getplateindex gt {getplateindex get}{pop false} ifelse
- } if
- } ifelse
-} def
-/tocmyk {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToCMYK end
-} def
-/topsspace {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToPSSpace end
-} def
-/colorspacedict 5 dict dup begin
- /DeviceGray 4 dict dup begin
- /Channels 1 def
- /MarksPlate {pop black?} def
- /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
- /ToPSSpace {} def
- end def
- /DeviceRGB 4 dict dup begin
- /Channels 3 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop _rgbtocmyk} def
- /ToPSSpace {} def
- end def
- /DeviceCMYK 4 dict dup begin
- /Channels 4 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop} def
- /ToPSSpace {} def
- end def
- /Separation 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- /findcmykcustomcolor where {
- pop dup 1 exch ToCMYK 5 -1 roll 1 get
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {} def
- end def
- /Process 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- isCMYKSep? {
- 1 exch ToCMYK 4 array astore getplateindex get 0 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {
- 4 array copy dup 0 /Separation put
- } def
- end def
-end def
-/isoverprint {
- /currentoverprint where {pop currentoverprint}{_of} ifelse
-} def
-/version_ge_3010.106 {
- version {cvr} stopped {
- pop
- false
- }{
- 3010.106 ge
- } ifelse
-} def
-end
-end
-defaultpacking setpacking
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeFont: Helvetica
-%%IncludeFont: Helvetica-Bold
-userdict /_useSmoothShade false put
-userdict /_aicmykps false put
-userdict /_forceToCMYK false put
-Adobe_level2_AI5 /initialize get exec
-Adobe_cshow /initialize get exec
-Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
-Adobe_ColorImage_AI6 /initialize get exec
-Adobe_shading_AI8 /initialize get exec
-Adobe_Illustrator_AI5 /initialize get exec
-[
-39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
-/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
-/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
-/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
-/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
-/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
-/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
-/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
-/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
-/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
-/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
-/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
-/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
-/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
-/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
-/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
-/hungarumlaut/ogonek/caron
-TE
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Helvetica Helvetica
-[/_Helvetica/Helvetica 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Helvetica-Bold Helvetica-Bold
-[/_Helvetica-Bold/Helvetica-Bold 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
-181/mu/partialdiff/summation/product/pi/integral 189/Omega
-195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
-/_Symbol_/Symbol 0 0 0 TZ
-%AI5_Begin_NonPrinting
-Np
-%AI3_BeginPattern: (bi-direction diagonals)
-(bi-direction diagonals) 24.2119 0.2119 96.2124 72.2119 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-8.2119 6.2119 m
-14.2119 0.2119 L
-F
-8.2119 0.2119 m
-14.2119 6.2119 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-24.2119 72.2119 m
-96.2124 0.2119 L
-S
-21.2109 69.2129 m
-90.2124 0.2119 L
-S
-21.207 63.2168 m
-84.2124 0.2119 L
-S
-21.2031 57.2207 m
-78.2124 0.2119 L
-S
-21.1987 51.2246 m
-72.2124 0.2119 L
-S
-21.1958 45.2275 m
-66.2119 0.2119 L
-S
-21.1919 39.2314 m
-60.2119 0.2119 L
-S
-21.188 33.2363 m
-54.2119 0.2119 L
-S
-21.1851 27.2402 m
-48.2119 0.2119 L
-S
-21.1812 21.2432 m
-42.2119 0.2119 L
-S
-21.1768 15.2471 m
-36.2119 0.2119 L
-S
-21.1729 9.251 m
-30.2119 0.2119 L
-S
-21.1699 3.2549 m
-24.2119 0.2119 L
-S
-30.2119 72.2119 m
-99.2134 3.21 L
-S
-36.2119 72.2119 m
-99.2173 9.2061 L
-S
-42.2119 72.2119 m
-99.2212 15.2021 L
-S
-48.2119 72.2119 m
-99.2251 21.1992 L
-S
-54.2119 72.2119 m
-99.228 27.1953 L
-S
-60.2119 72.2119 m
-99.2319 33.1904 L
-S
-66.2119 72.2119 m
-99.2358 39.1865 L
-S
-72.2124 72.2119 m
-99.2397 45.1836 L
-S
-78.2124 72.2119 m
-99.2427 51.1797 L
-S
-84.2124 72.2119 m
-99.2466 57.1758 L
-S
-90.2124 72.2119 m
-99.2505 63.1719 L
-S
-96.2124 72.2119 m
-99.2554 69.1689 L
-S
-0.2119 68.7119 m
-10.2119 58.7119 L
-S
-96.2124 72.2119 m
-24.2119 0.2119 L
-S
-90.2124 72.2119 m
-21.2109 3.21 L
-S
-84.2124 72.2119 m
-21.207 9.2061 L
-S
-78.2124 72.2119 m
-21.2031 15.2021 L
-S
-72.2124 72.2119 m
-21.1987 21.1982 L
-S
-66.2119 72.2119 m
-21.1958 27.1953 L
-S
-60.2119 72.2119 m
-21.1919 33.1904 L
-S
-54.2119 72.2119 m
-21.188 39.1865 L
-S
-48.2119 72.2119 m
-21.1851 45.1826 L
-S
-42.2119 72.2119 m
-21.1812 51.1797 L
-S
-36.2119 72.2119 m
-21.1768 57.1758 L
-S
-30.2119 72.2119 m
-21.1729 63.1719 L
-S
-24.2119 72.2119 m
-21.1699 69.168 L
-S
-99.2134 69.2129 m
-30.2119 0.2119 L
-S
-99.2173 63.2168 m
-36.2119 0.2119 L
-S
-99.2212 57.2207 m
-42.2119 0.2119 L
-S
-99.2251 51.2246 m
-48.2119 0.2119 L
-S
-99.228 45.2275 m
-54.2119 0.2119 L
-S
-99.2319 39.2314 m
-60.2119 0.2119 L
-S
-99.2358 33.2363 m
-66.2119 0.2119 L
-S
-99.2397 27.2393 m
-72.2124 0.2119 L
-S
-99.2427 21.2432 m
-78.2124 0.2119 L
-S
-99.2466 15.2471 m
-84.2124 0.2119 L
-S
-99.2505 9.251 m
-90.2124 0.2119 L
-S
-99.2554 3.2539 m
-96.2124 0.2119 L
-S
-0.2119 58.7119 m
-10.2119 68.7119 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (black dots)
-(black dots) 16 0.6885 88 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6.6885 m
-6 0.6885 L
-F
-0 0.6885 m
-6 6.6885 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-28.9365 3.1885 m
-28.9365 3.1885 l
-S
-17.125 3.375 m
-17.125 3.375 l
-S
-26.5 4.6885 m
-26.5 4.6885 l
-S
-35.6865 5.8135 m
-35.6865 5.8135 l
-S
-19.75 0.9385 m
-19.75 0.9385 l
-S
-23.125 7.3135 m
-23.125 7.3135 l
-S
-40.5615 2.4385 m
-40.5615 2.4385 l
-S
-43 1.125 m
-43 1.125 l
-S
-45.0615 5.4385 m
-45.0615 5.4385 l
-S
-56.875 6.375 m
-56.875 6.375 l
-S
-65.3115 5.0635 m
-65.3115 5.0635 l
-S
-51.0615 6.9385 m
-51.0615 6.9385 l
-S
-40.5615 6.9385 m
-40.5615 6.9385 l
-S
-31.1865 6.9385 m
-31.1865 6.9385 l
-S
-59.875 9.5635 m
-59.875 9.5635 l
-S
-62.6865 1.3135 m
-62.6865 1.3135 l
-S
-34.5615 0.9385 m
-34.5615 0.9385 l
-S
-48.4365 2.25 m
-48.4365 2.25 l
-S
-56.3115 0.75 m
-56.3115 0.75 l
-S
-66.625 24.5635 m
-66.625 24.5635 l
-S
-74.3115 24.9385 m
-74.3115 24.9385 l
-S
-78.8115 24.375 m
-78.8115 24.375 l
-S
-82.9365 2.0635 m
-82.9365 2.0635 l
-S
-68.3115 11.8135 m
-68.3115 11.8135 l
-S
-86.5 17.8135 m
-86.5 17.8135 l
-S
-87.0615 4.6885 m
-87.0615 4.6885 l
-S
-79.9365 19.875 m
-79.9365 19.875 l
-S
-77.875 1.125 m
-77.875 1.125 l
-S
-69.625 20.25 m
-69.625 20.25 l
-S
-67.75 6 m
-67.75 6 l
-S
-73.375 17.625 m
-73.375 17.625 l
-S
-76.9365 16.875 m
-76.9365 16.875 l
-S
-72.4365 3.375 m
-72.4365 3.375 l
-S
-77.3115 9.5635 m
-77.3115 9.5635 l
-S
-73.9365 11.25 m
-73.9365 11.25 l
-S
-83.125 7.875 m
-83.125 7.875 l
-S
-85.1865 12.75 m
-85.1865 12.75 l
-S
-81.0615 13.875 m
-81.0615 13.875 l
-S
-17.6865 16.125 m
-17.6865 16.125 l
-S
-45.25 10.3135 m
-45.25 10.3135 l
-S
-31.5615 21.375 m
-31.5615 21.375 l
-S
-20.875 11.8135 m
-20.875 11.8135 l
-S
-34.75 18.5635 m
-34.75 18.5635 l
-S
-25.75 21.9385 m
-25.75 21.9385 l
-S
-34.5615 24.5635 m
-34.5615 24.5635 l
-S
-37.375 16.3135 m
-37.375 16.3135 l
-S
-36.625 12.75 m
-36.625 12.75 l
-S
-23.125 17.25 m
-23.125 17.25 l
-S
-29.3115 12.375 m
-29.3115 12.375 l
-S
-31 15.75 m
-31 15.75 l
-S
-46.1865 22.875 m
-46.1865 22.875 l
-S
-52 15.375 m
-52 15.375 l
-S
-58.375 13.3135 m
-58.375 13.3135 l
-S
-62.6865 20.0635 m
-62.6865 20.0635 l
-S
-62.875 14.0635 m
-62.875 14.0635 l
-S
-44.6865 20.4385 m
-44.6865 20.4385 l
-S
-46.75 15.1885 m
-46.75 15.1885 l
-S
-42.0615 17.0635 m
-42.0615 17.0635 l
-S
-55.1865 17.4385 m
-55.1865 17.4385 l
-S
-58.9365 23.25 m
-58.9365 23.25 l
-S
-60.0615 17.4385 m
-60.0615 17.4385 l
-S
-42.4365 25.125 m
-42.4365 25.125 l
-S
-65.3115 20.625 m
-65.3115 20.625 l
-S
-51.625 24.5635 m
-51.625 24.5635 l
-S
-52 20.625 m
-52 20.625 l
-S
-18.8115 24 m
-18.8115 24 l
-S
-21.25 24.9385 m
-21.25 24.9385 l
-S
-19.375 70.875 m
-19.375 70.875 l
-S
-26.125 66.5635 m
-26.125 66.5635 l
-S
-20.125 66.375 m
-20.125 66.375 l
-S
-38.5 69 m
-38.5 69 l
-S
-47.125 71.625 m
-47.125 71.625 l
-S
-62.875 68.0635 m
-62.875 68.0635 l
-S
-49.75 67.5 m
-49.75 67.5 l
-S
-38.875 65.625 m
-38.875 65.625 l
-S
-29.3115 70.3135 m
-29.3115 70.3135 l
-S
-31.9365 67.5 m
-31.9365 67.5 l
-S
-57.25 65.4385 m
-57.25 65.4385 l
-S
-23.5 69.1885 m
-23.5 69.1885 l
-S
-45.625 65.25 m
-45.625 65.25 l
-S
-26.6865 63.9385 m
-26.6865 63.9385 l
-S
-50.5 63.75 m
-50.5 63.75 l
-S
-32.6865 72 m
-32.6865 72 l
-S
-52.9365 71.4385 m
-52.9365 71.4385 l
-S
-57.8115 69.375 m
-57.8115 69.375 l
-S
-61 64.3135 m
-61 64.3135 l
-S
-28.9365 48.1885 m
-28.9365 48.1885 l
-S
-17.125 48.375 m
-17.125 48.375 l
-S
-21.4365 42.375 m
-21.4365 42.375 l
-S
-19.375 36 m
-19.375 36 l
-S
-26.125 31.6885 m
-26.125 31.6885 l
-S
-20.125 31.5 m
-20.125 31.5 l
-S
-26.5 49.6885 m
-26.5 49.6885 l
-S
-35.6865 50.8135 m
-35.6865 50.8135 l
-S
-19.75 45.9385 m
-19.75 45.9385 l
-S
-23.125 52.3135 m
-23.125 52.3135 l
-S
-40.5615 47.4385 m
-40.5615 47.4385 l
-S
-43 46.125 m
-43 46.125 l
-S
-23.5 39.1885 m
-23.5 39.1885 l
-S
-38.5 34.125 m
-38.5 34.125 l
-S
-47.125 36.75 m
-47.125 36.75 l
-S
-45.0615 50.4385 m
-45.0615 50.4385 l
-S
-56.875 51.375 m
-56.875 51.375 l
-S
-42.8115 39.375 m
-42.8115 39.375 l
-S
-62.875 33.1885 m
-62.875 33.1885 l
-S
-49.75 32.625 m
-49.75 32.625 l
-S
-38.875 30.75 m
-38.875 30.75 l
-S
-29.3115 35.4385 m
-29.3115 35.4385 l
-S
-31.9365 32.625 m
-31.9365 32.625 l
-S
-54.75 30.1885 m
-54.75 30.1885 l
-S
-64.9365 39.75 m
-64.9365 39.75 l
-S
-46.1865 41.8135 m
-46.1865 41.8135 l
-S
-65.3115 50.0635 m
-65.3115 50.0635 l
-S
-51.0615 51.9385 m
-51.0615 51.9385 l
-S
-23.5 34.3135 m
-23.5 34.3135 l
-S
-40.5615 51.9385 m
-40.5615 51.9385 l
-S
-31.1865 51.9385 m
-31.1865 51.9385 l
-S
-45.625 30.375 m
-45.625 30.375 l
-S
-26.6865 29.0635 m
-26.6865 29.0635 l
-S
-59.875 54.5635 m
-59.875 54.5635 l
-S
-50.5 28.875 m
-50.5 28.875 l
-S
-60.75 47.6885 m
-60.75 47.6885 l
-S
-30.625 42.75 m
-30.625 42.75 l
-S
-26.6865 42.375 m
-26.6865 42.375 l
-S
-36.8115 40.125 m
-36.8115 40.125 l
-S
-37.75 43.5 m
-37.75 43.5 l
-S
-34.5615 45.9385 m
-34.5615 45.9385 l
-S
-32.6865 37.125 m
-32.6865 37.125 l
-S
-61.9365 42.75 m
-61.9365 42.75 l
-S
-48.4365 47.25 m
-48.4365 47.25 l
-S
-54.625 42.375 m
-54.625 42.375 l
-S
-56.3115 45.75 m
-56.3115 45.75 l
-S
-52.9365 36.5635 m
-52.9365 36.5635 l
-S
-57.8115 34.5 m
-57.8115 34.5 l
-S
-58.9365 38.625 m
-58.9365 38.625 l
-S
-61 29.4385 m
-61 29.4385 l
-S
-65.875 29.625 m
-65.875 29.625 l
-S
-70.5615 27.75 m
-70.5615 27.75 l
-S
-71.5 52.875 m
-71.5 52.875 l
-S
-69.8115 34.3135 m
-69.8115 34.3135 l
-S
-76.375 27.375 m
-76.375 27.375 l
-S
-71.3115 41.0635 m
-71.3115 41.0635 l
-S
-77.3115 45.375 m
-77.3115 45.375 l
-S
-82 28.6885 m
-82 28.6885 l
-S
-88.1865 27.5635 m
-88.1865 27.5635 l
-S
-83.6865 43.3135 m
-83.6865 43.3135 l
-S
-88 50.0635 m
-88 50.0635 l
-S
-88.1865 44.0635 m
-88.1865 44.0635 l
-S
-88.1865 33.1885 m
-88.1865 33.1885 l
-S
-70 50.4385 m
-70 50.4385 l
-S
-68.875 59.625 m
-68.875 59.625 l
-S
-66.8115 38.25 m
-66.8115 38.25 l
-S
-74.75 42.1885 m
-74.75 42.1885 l
-S
-67.375 47.0635 m
-67.375 47.0635 l
-S
-72.25 64.5 m
-72.25 64.5 l
-S
-73.5615 66.9385 m
-73.5615 66.9385 l
-S
-80.5 47.4385 m
-80.5 47.4385 l
-S
-85.5615 62.4385 m
-85.5615 62.4385 l
-S
-82.9365 71.0635 m
-82.9365 71.0635 l
-S
-69.25 69 m
-69.25 69 l
-S
-80.3115 66.75 m
-80.3115 66.75 l
-S
-84.25 53.25 m
-84.25 53.25 l
-S
-87.0615 55.875 m
-87.0615 55.875 l
-S
-77.875 70.125 m
-77.875 70.125 l
-S
-85.375 47.4385 m
-85.375 47.4385 l
-S
-67.75 64.5 m
-67.75 64.5 l
-S
-67.75 55.125 m
-67.75 55.125 l
-S
-81.625 31.125 m
-81.625 31.125 l
-S
-79.375 39 m
-79.375 39 l
-S
-75.8115 33 m
-75.8115 33 l
-S
-84.4365 37.3135 m
-84.4365 37.3135 l
-S
-76.9365 54.5635 m
-76.9365 54.5635 l
-S
-77.3115 50.625 m
-77.3115 50.625 l
-S
-79.5615 60.75 m
-79.5615 60.75 l
-S
-76.1865 61.6885 m
-76.1865 61.6885 l
-S
-73.75 58.5 m
-73.75 58.5 l
-S
-82.5615 56.625 m
-82.5615 56.625 l
-S
-72.4365 72.375 m
-72.4365 72.375 l
-S
-61.75 25.875 m
-61.75 25.875 l
-S
-57.25 26.625 m
-57.25 26.625 l
-S
-25.75 60.75 m
-25.75 60.75 l
-S
-34.1865 59.4385 m
-34.1865 59.4385 l
-S
-19.9365 61.3135 m
-19.9365 61.3135 l
-S
-31.5615 55.6885 m
-31.5615 55.6885 l
-S
-17.3115 56.625 m
-17.3115 56.625 l
-S
-25.1865 55.125 m
-25.1865 55.125 l
-S
-40.375 62.25 m
-40.375 62.25 l
-S
-46.1865 54.75 m
-46.1865 54.75 l
-S
-56.875 59.4385 m
-56.875 59.4385 l
-S
-40.25 58.1885 m
-40.25 58.1885 l
-S
-36.25 56.4385 m
-36.25 56.4385 l
-S
-49.375 56.8135 m
-49.375 56.8135 l
-S
-53.125 62.625 m
-53.125 62.625 l
-S
-54.25 56.8135 m
-54.25 56.8135 l
-S
-59.5 60 m
-59.5 60 l
-S
-46.1865 60 m
-46.1865 60 l
-S
-30.8115 28.5 m
-30.8115 28.5 l
-S
-19.75 72.9385 m
-19.75 72.9385 l
-S
-43 73.125 m
-43 73.125 l
-S
-34.5615 72.9385 m
-34.5615 72.9385 l
-S
-56.3115 72.75 m
-56.3115 72.75 l
-S
-77.875 73.125 m
-77.875 73.125 l
-S
-72.4365 0.375 m
-72.4365 0.375 l
-S
-16.1865 27.5635 m
-16.1865 27.5635 l
-S
-16 50.0635 m
-16 50.0635 l
-S
-16.1865 44.0635 m
-16.1865 44.0635 l
-S
-16.1865 33.1885 m
-16.1865 33.1885 l
-S
-6 62.3135 m
-6.208 62.3135 6.375 62.4805 6.375 62.6885 c
-6.375 62.8945 6.208 63.0635 6 63.0635 c
-5.793 63.0635 5.625 62.8945 5.625 62.6885 c
-5.625 62.4805 5.793 62.3135 6 62.3135 c
-s
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (horizontal rules)
-(horizontal rules) 16 0 88 73.9463 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6 m
-6 0 L
-F
-0 0 m
-6 6 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-88 72.9727 m
-16 72.9727 l
-S
-88 71.0273 m
-16 71.0273 L
-S
-88 67.1357 m
-16 67.1357 L
-S
-88 65.1904 m
-16 65.1904 L
-S
-88 63.2441 m
-16 63.2441 L
-S
-88 61.2979 m
-16 61.2979 L
-S
-88 57.4072 m
-16 57.4072 L
-S
-88 55.4609 m
-16 55.4609 L
-S
-88 53.5156 m
-16 53.5156 L
-S
-88 51.5703 m
-16 51.5703 L
-S
-88 49.624 m
-16 49.624 L
-S
-88 47.6787 m
-16 47.6787 L
-S
-88 45.7334 m
-16 45.7334 L
-S
-88 43.7871 m
-16 43.7871 L
-S
-88 39.8965 m
-16 39.8965 L
-S
-88 37.9502 m
-16 37.9502 L
-S
-88 36.0049 m
-16 36.0049 L
-S
-88 34.0586 m
-16 34.0586 L
-S
-88 32.1133 m
-16 32.1133 L
-S
-88 30.168 m
-16 30.168 L
-S
-88 26.2764 m
-16 26.2764 L
-S
-88 22.3848 m
-16 22.3848 L
-S
-88 20.4395 m
-16 20.4395 L
-S
-88 18.4941 m
-16 18.4941 L
-S
-88 16.5479 m
-16 16.5479 L
-S
-88 14.6016 m
-16 14.6016 L
-S
-88 12.6572 m
-16 12.6572 L
-S
-88 8.7646 m
-16 8.7646 L
-S
-88 6.8193 m
-16 6.8193 L
-S
-88 4.874 m
-16 4.874 L
-S
-88 0.9727 m
-16 0.9727 l
-S
-88 2.9277 m
-16 2.9277 L
-S
-88 69.0811 m
-16 69.0811 L
-S
-88 59.3525 m
-16 59.3525 L
-S
-88 41.8418 m
-16 41.8418 L
-S
-88 28.2217 m
-16 28.2217 L
-S
-88 24.3311 m
-16 24.3311 L
-S
-88 10.7109 m
-16 10.7109 L
-S
-6 69.0811 m
-2 69.0811 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (one direction diagonals)
-(one direction diagonals) 28.856 4.6211 100.855 76.6211 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-5.106 10.6211 m
-11.106 4.6211 L
-F
-5.106 4.6211 m
-11.106 10.6211 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 1 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-21.3716 66.1055 m
-39.3706 84.1055 l
-S
-21.3716 60.1055 m
-45.3706 84.1055 l
-S
-21.3716 54.1055 m
-51.3706 84.1055 l
-S
-21.3716 48.1055 m
-57.3706 84.1055 l
-S
-21.3716 42.1055 m
-63.3706 84.1055 l
-S
-21.3716 36.1055 m
-69.3706 84.1055 l
-S
-21.3716 30.1055 m
-75.3706 84.1055 l
-S
-21.3716 24.1055 m
-81.3706 84.1055 l
-S
-21.3716 18.1055 m
-87.3706 84.1055 l
-S
-21.3716 12.1055 m
-93.3706 84.1055 l
-S
-21.3716 6.1055 m
-99.3706 84.1055 l
-S
-21.3716 0.1064 m
-105.3706 84.1055 l
-S
-27.3716 0.1064 m
-105.3706 78.1055 l
-S
-33.3706 0.1064 m
-105.3706 72.1055 l
-S
-39.3706 0.1064 m
-105.3706 66.1055 l
-S
-45.3706 0.1064 m
-105.3706 60.1055 l
-S
-51.3706 0.1064 m
-105.3706 54.1055 l
-S
-57.3706 0.1064 m
-105.3706 48.1055 l
-S
-63.3706 0.1064 m
-105.3706 42.1055 l
-S
-69.3706 0.1064 m
-105.3706 36.1055 l
-S
-75.3706 0.1064 m
-105.3706 30.1055 l
-S
-81.3706 0.1064 m
-105.3706 24.1055 l
-S
-87.3706 0.1064 m
-105.3706 18.1055 l
-S
-93.3706 0.1064 m
-105.3706 12.1055 l
-S
-2 j
-0.106 63.1211 m
-10.106 73.1211 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (white dots)
-(white dots) 0.375 0.6885 72.375 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-13.3115 3.1885 m
-13.3115 3.1885 l
-S
-1.5 3.375 m
-1.5 3.375 l
-S
-10.875 4.6885 m
-10.875 4.6885 l
-S
-20.0615 5.8135 m
-20.0615 5.8135 l
-S
-4.125 0.9385 m
-4.125 0.9385 l
-S
-7.5 7.3135 m
-7.5 7.3135 l
-S
-24.9365 2.4385 m
-24.9365 2.4385 l
-S
-27.375 1.125 m
-27.375 1.125 l
-S
-29.4365 5.4385 m
-29.4365 5.4385 l
-S
-41.25 6.375 m
-41.25 6.375 l
-S
-49.6865 5.0635 m
-49.6865 5.0635 l
-S
-35.4365 6.9385 m
-35.4365 6.9385 l
-S
-24.9365 6.9385 m
-24.9365 6.9385 l
-S
-15.5615 6.9385 m
-15.5615 6.9385 l
-S
-44.25 9.5635 m
-44.25 9.5635 l
-S
-47.0615 1.3135 m
-47.0615 1.3135 l
-S
-18.9365 0.9385 m
-18.9365 0.9385 l
-S
-32.8115 2.25 m
-32.8115 2.25 l
-S
-40.6865 0.75 m
-40.6865 0.75 l
-S
-51 24.5635 m
-51 24.5635 l
-S
-58.6865 24.9385 m
-58.6865 24.9385 l
-S
-63.1865 24.375 m
-63.1865 24.375 l
-S
-67.3115 2.0635 m
-67.3115 2.0635 l
-S
-52.6865 11.8135 m
-52.6865 11.8135 l
-S
-70.875 17.8135 m
-70.875 17.8135 l
-S
-71.4365 4.6885 m
-71.4365 4.6885 l
-S
-64.3115 19.875 m
-64.3115 19.875 l
-S
-62.25 1.125 m
-62.25 1.125 l
-S
-54 20.25 m
-54 20.25 l
-S
-52.125 6 m
-52.125 6 l
-S
-57.75 17.625 m
-57.75 17.625 l
-S
-61.3115 16.875 m
-61.3115 16.875 l
-S
-56.8115 3.375 m
-56.8115 3.375 l
-S
-61.6865 9.5635 m
-61.6865 9.5635 l
-S
-58.3115 11.25 m
-58.3115 11.25 l
-S
-67.5 7.875 m
-67.5 7.875 l
-S
-69.5615 12.75 m
-69.5615 12.75 l
-S
-65.4365 13.875 m
-65.4365 13.875 l
-S
-2.0615 16.125 m
-2.0615 16.125 l
-S
-29.625 10.3135 m
-29.625 10.3135 l
-S
-15.9365 21.375 m
-15.9365 21.375 l
-S
-5.25 11.8135 m
-5.25 11.8135 l
-S
-19.125 18.5635 m
-19.125 18.5635 l
-S
-10.125 21.9385 m
-10.125 21.9385 l
-S
-18.9365 24.5635 m
-18.9365 24.5635 l
-S
-21.75 16.3135 m
-21.75 16.3135 l
-S
-21 12.75 m
-21 12.75 l
-S
-7.5 17.25 m
-7.5 17.25 l
-S
-13.6865 12.375 m
-13.6865 12.375 l
-S
-15.375 15.75 m
-15.375 15.75 l
-S
-30.5615 22.875 m
-30.5615 22.875 l
-S
-36.375 15.375 m
-36.375 15.375 l
-S
-42.75 13.3135 m
-42.75 13.3135 l
-S
-47.0615 20.0635 m
-47.0615 20.0635 l
-S
-47.25 14.0635 m
-47.25 14.0635 l
-S
-29.0615 20.4385 m
-29.0615 20.4385 l
-S
-31.125 15.1885 m
-31.125 15.1885 l
-S
-26.4365 17.0635 m
-26.4365 17.0635 l
-S
-39.5615 17.4385 m
-39.5615 17.4385 l
-S
-43.3115 23.25 m
-43.3115 23.25 l
-S
-44.4365 17.4385 m
-44.4365 17.4385 l
-S
-26.8115 25.125 m
-26.8115 25.125 l
-S
-49.6865 20.625 m
-49.6865 20.625 l
-S
-36 24.5635 m
-36 24.5635 l
-S
-36.375 20.625 m
-36.375 20.625 l
-S
-3.1865 24 m
-3.1865 24 l
-S
-5.625 24.9385 m
-5.625 24.9385 l
-S
-3.75 70.875 m
-3.75 70.875 l
-S
-10.5 66.5635 m
-10.5 66.5635 l
-S
-4.5 66.375 m
-4.5 66.375 l
-S
-22.875 69 m
-22.875 69 l
-S
-31.5 71.625 m
-31.5 71.625 l
-S
-47.25 68.0635 m
-47.25 68.0635 l
-S
-34.125 67.5 m
-34.125 67.5 l
-S
-23.25 65.625 m
-23.25 65.625 l
-S
-13.6865 70.3135 m
-13.6865 70.3135 l
-S
-16.3115 67.5 m
-16.3115 67.5 l
-S
-41.625 65.4385 m
-41.625 65.4385 l
-S
-7.875 69.1885 m
-7.875 69.1885 l
-S
-30 65.25 m
-30 65.25 l
-S
-11.0615 63.9385 m
-11.0615 63.9385 l
-S
-34.875 63.75 m
-34.875 63.75 l
-S
-17.0615 72 m
-17.0615 72 l
-S
-37.3115 71.4385 m
-37.3115 71.4385 l
-S
-42.1865 69.375 m
-42.1865 69.375 l
-S
-45.375 64.3135 m
-45.375 64.3135 l
-S
-13.3115 48.1885 m
-13.3115 48.1885 l
-S
-1.5 48.375 m
-1.5 48.375 l
-S
-5.8115 42.375 m
-5.8115 42.375 l
-S
-3.75 36 m
-3.75 36 l
-S
-10.5 31.6885 m
-10.5 31.6885 l
-S
-4.5 31.5 m
-4.5 31.5 l
-S
-10.875 49.6885 m
-10.875 49.6885 l
-S
-20.0615 50.8135 m
-20.0615 50.8135 l
-S
-4.125 45.9385 m
-4.125 45.9385 l
-S
-7.5 52.3135 m
-7.5 52.3135 l
-S
-24.9365 47.4385 m
-24.9365 47.4385 l
-S
-27.375 46.125 m
-27.375 46.125 l
-S
-7.875 39.1885 m
-7.875 39.1885 l
-S
-22.875 34.125 m
-22.875 34.125 l
-S
-31.5 36.75 m
-31.5 36.75 l
-S
-29.4365 50.4385 m
-29.4365 50.4385 l
-S
-41.25 51.375 m
-41.25 51.375 l
-S
-27.1865 39.375 m
-27.1865 39.375 l
-S
-47.25 33.1885 m
-47.25 33.1885 l
-S
-34.125 32.625 m
-34.125 32.625 l
-S
-23.25 30.75 m
-23.25 30.75 l
-S
-13.6865 35.4385 m
-13.6865 35.4385 l
-S
-16.3115 32.625 m
-16.3115 32.625 l
-S
-39.125 30.1885 m
-39.125 30.1885 l
-S
-49.3115 39.75 m
-49.3115 39.75 l
-S
-30.5615 41.8135 m
-30.5615 41.8135 l
-S
-49.6865 50.0635 m
-49.6865 50.0635 l
-S
-35.4365 51.9385 m
-35.4365 51.9385 l
-S
-7.875 34.3135 m
-7.875 34.3135 l
-S
-24.9365 51.9385 m
-24.9365 51.9385 l
-S
-15.5615 51.9385 m
-15.5615 51.9385 l
-S
-30 30.375 m
-30 30.375 l
-S
-11.0615 29.0635 m
-11.0615 29.0635 l
-S
-44.25 54.5635 m
-44.25 54.5635 l
-S
-34.875 28.875 m
-34.875 28.875 l
-S
-45.125 47.6885 m
-45.125 47.6885 l
-S
-15 42.75 m
-15 42.75 l
-S
-11.0615 42.375 m
-11.0615 42.375 l
-S
-21.1865 40.125 m
-21.1865 40.125 l
-S
-22.125 43.5 m
-22.125 43.5 l
-S
-18.9365 45.9385 m
-18.9365 45.9385 l
-S
-17.0615 37.125 m
-17.0615 37.125 l
-S
-46.3115 42.75 m
-46.3115 42.75 l
-S
-32.8115 47.25 m
-32.8115 47.25 l
-S
-39 42.375 m
-39 42.375 l
-S
-40.6865 45.75 m
-40.6865 45.75 l
-S
-37.3115 36.5635 m
-37.3115 36.5635 l
-S
-42.1865 34.5 m
-42.1865 34.5 l
-S
-43.3115 38.625 m
-43.3115 38.625 l
-S
-45.375 29.4385 m
-45.375 29.4385 l
-S
-50.25 29.625 m
-50.25 29.625 l
-S
-54.9365 27.75 m
-54.9365 27.75 l
-S
-55.875 52.875 m
-55.875 52.875 l
-S
-54.1865 34.3135 m
-54.1865 34.3135 l
-S
-60.75 27.375 m
-60.75 27.375 l
-S
-55.6865 41.0635 m
-55.6865 41.0635 l
-S
-61.6865 45.375 m
-61.6865 45.375 l
-S
-66.375 28.6885 m
-66.375 28.6885 l
-S
-72.5615 27.5635 m
-72.5615 27.5635 l
-S
-68.0615 43.3135 m
-68.0615 43.3135 l
-S
-72.375 50.0635 m
-72.375 50.0635 l
-S
-72.5615 44.0635 m
-72.5615 44.0635 l
-S
-72.5615 33.1885 m
-72.5615 33.1885 l
-S
-54.375 50.4385 m
-54.375 50.4385 l
-S
-53.25 59.625 m
-53.25 59.625 l
-S
-51.1865 38.25 m
-51.1865 38.25 l
-S
-59.125 42.1885 m
-59.125 42.1885 l
-S
-51.75 47.0635 m
-51.75 47.0635 l
-S
-56.625 64.5 m
-56.625 64.5 l
-S
-57.9365 66.9385 m
-57.9365 66.9385 l
-S
-64.875 47.4385 m
-64.875 47.4385 l
-S
-69.9365 62.4385 m
-69.9365 62.4385 l
-S
-67.3115 71.0635 m
-67.3115 71.0635 l
-S
-53.625 69 m
-53.625 69 l
-S
-64.6865 66.75 m
-64.6865 66.75 l
-S
-68.625 53.25 m
-68.625 53.25 l
-S
-71.4365 55.875 m
-71.4365 55.875 l
-S
-62.25 70.125 m
-62.25 70.125 l
-S
-69.75 47.4385 m
-69.75 47.4385 l
-S
-52.125 64.5 m
-52.125 64.5 l
-S
-52.125 55.125 m
-52.125 55.125 l
-S
-66 31.125 m
-66 31.125 l
-S
-63.75 39 m
-63.75 39 l
-S
-60.1865 33 m
-60.1865 33 l
-S
-68.8115 37.3135 m
-68.8115 37.3135 l
-S
-61.3115 54.5635 m
-61.3115 54.5635 l
-S
-61.6865 50.625 m
-61.6865 50.625 l
-S
-63.9365 60.75 m
-63.9365 60.75 l
-S
-60.5615 61.6885 m
-60.5615 61.6885 l
-S
-58.125 58.5 m
-58.125 58.5 l
-S
-66.9365 56.625 m
-66.9365 56.625 l
-S
-56.8115 72.375 m
-56.8115 72.375 l
-S
-46.125 25.875 m
-46.125 25.875 l
-S
-41.625 26.625 m
-41.625 26.625 l
-S
-10.125 60.75 m
-10.125 60.75 l
-S
-18.5615 59.4385 m
-18.5615 59.4385 l
-S
-4.3115 61.3135 m
-4.3115 61.3135 l
-S
-15.9365 55.6885 m
-15.9365 55.6885 l
-S
-1.6865 56.625 m
-1.6865 56.625 l
-S
-9.5615 55.125 m
-9.5615 55.125 l
-S
-24.75 62.25 m
-24.75 62.25 l
-S
-30.5615 54.75 m
-30.5615 54.75 l
-S
-41.25 59.4385 m
-41.25 59.4385 l
-S
-24.625 58.1885 m
-24.625 58.1885 l
-S
-20.625 56.4385 m
-20.625 56.4385 l
-S
-33.75 56.8135 m
-33.75 56.8135 l
-S
-37.5 62.625 m
-37.5 62.625 l
-S
-38.625 56.8135 m
-38.625 56.8135 l
-S
-43.875 60 m
-43.875 60 l
-S
-30.5615 60 m
-30.5615 60 l
-S
-15.1865 28.5 m
-15.1865 28.5 l
-S
-4.125 72.9385 m
-4.125 72.9385 l
-S
-27.375 73.125 m
-27.375 73.125 l
-S
-18.9365 72.9385 m
-18.9365 72.9385 l
-S
-40.6865 72.75 m
-40.6865 72.75 l
-S
-62.25 73.125 m
-62.25 73.125 l
-S
-56.8115 0.375 m
-56.8115 0.375 l
-S
-0.5615 27.5635 m
-0.5615 27.5635 l
-S
-0.375 50.0635 m
-0.375 50.0635 l
-S
-0.5615 44.0635 m
-0.5615 44.0635 l
-S
-0.5615 33.1885 m
-0.5615 33.1885 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginBrushPattern
-(New Pattern 10)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7815.2593 8585.25 L
--7815.2593 8557.0195 L
--7883.25 8557.0195 L
--7883.25 8585.25 L
-n
-0 O
-0.8 g
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
--7817.0591 8570.4502 l
--7829.7202 8574.4063 l
--7835.7866 8570.4502 l
--7835.5234 8580.209 l
-f
-0 R
-0.9 G
-0.5 w
--7816.7871 8570.3242 m
--7829.7202 8574.4063 l
-S
-0.5 G
--7815.4785 8573.3516 m
--7817.0591 8570.4502 l
-S
-0.25 G
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
-S
-0.5 G
--7829.7202 8574.4063 m
--7835.7866 8570.4502 l
-S
-0 O
-0.8 g
-1 w
--7855.5679 8562.7998 m
--7843.437 8557.5254 l
--7840.0073 8561.7441 l
--7855.5679 8562.7998 l
-f
-1 Ap
-0.57 g
--7835.2598 8582.0547 m
--7881.6802 8582.0547 L
--7881.6802 8584.9551 L
--7835.2598 8584.9551 L
--7835.2598 8582.0547 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
--7843.437 8557.5254 m
--7840.0073 8561.7441 l
-S
-0.9 G
--7855.5679 8562.7998 m
--7842.875 8557.248 l
-S
-0 O
-0.8 g
-1 w
--7883.001 8560.7627 m
--7883.001 8582.0859 l
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
--7837.6338 8560.8223 l
--7883.001 8560.7627 l
-f
-0 R
-0.5 G
-0.5 w
--7883.001 8576.5166 m
--7834.2046 8576.5166 l
-S
--7880.0986 8564.1191 m
--7870.6025 8564.1191 l
-S
--7880.0986 8565.7676 m
--7870.6025 8565.7676 l
-S
--7880.0986 8567.415 m
--7870.6025 8567.415 l
-S
--7880.0986 8569.0635 m
--7870.6025 8569.0635 l
-S
--7880.0986 8570.7109 m
--7870.6025 8570.7109 l
-S
--7834.2046 8564.9121 m
--7837.6338 8560.8223 l
-S
-0.25 G
--7883.001 8582.0859 m
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
-S
-0.9 G
--7837.6338 8560.793 m
--7883.001 8560.793 l
--7883.001 8582.3555 l
-S
-0.25 G
--7835.2598 8582.0859 m
--7835.2598 8585 l
--7881.6714 8585 l
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 19)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7836.6338 8585.25 L
--7836.6338 8549.6348 L
--7883.25 8549.6348 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
--7836.9722 8585 m
--7836.9722 8582.9805 l
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
--7836.9722 8585 l
-b
-0.8748 G
-2 J 0 j
--7859.8857 8579.5479 m
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
-S
--7836.9722 8582.9805 m
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
--7876.3394 8580.7598 m
--7880.377 8582.9805 l
--7839.7993 8582.9805 l
--7843.2319 8580.7598 l
--7876.3394 8580.7598 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
--7871.125 8576.6523 m
--7868.8462 8576.6094 L
--7859.7446 8575.041 L
--7850.4634 8576.6094 L
--7848.6694 8576.6094 L
--7848.729 8578.4512 L
--7871.125 8578.4512 L
--7871.125 8576.6523 L
-f
-0 R
-0.25 G
-0.5 w
--7848.6978 8576.6523 m
--7848.7905 8578.4512 L
--7871.1567 8578.4512 L
-S
-0.9 G
--7850.498 8576.6523 m
--7848.6978 8576.6523 L
-S
-0.25 G
--7859.8042 8575.041 m
--7850.498 8576.6523 L
-S
-0.9 G
--7871.1567 8578.4512 m
--7871.1567 8576.6523 L
--7868.9033 8576.6523 L
--7859.8042 8575.041 L
-S
-U
-u
-0 O
-0.7 g
-1 w
--7873.3672 8573.5781 m
--7864.0703 8573.5313 L
--7859.7119 8571.8047 L
--7855.1343 8573.5313 L
--7846.4214 8573.5313 L
--7846.4927 8575.5557 L
--7873.3672 8575.5557 L
--7873.3672 8573.5781 L
-f
-0 R
-0.25 G
-0.5 w
--7846.4546 8573.5781 m
--7846.5649 8575.5557 L
--7873.4038 8575.5557 L
-S
-0.9 G
--7855.1758 8573.5781 m
--7846.4546 8573.5781 L
-S
-0.25 G
--7859.7817 8571.8047 m
--7855.1758 8573.5781 L
-S
-0.9 G
--7873.4038 8575.5557 m
--7873.4038 8573.5781 L
--7864.1406 8573.5781 L
--7859.7817 8571.8047 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
--7874.8838 8572.75 m
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
--7844.9922 8551.0508 L
--7844.9922 8572.4648 L
--7845.8022 8573.6045 L
--7874.0366 8573.6045 l
--7874.8838 8572.75 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
--7874.0366 8573.6045 m
--7874.8838 8572.75 L
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
--7848.0239 8570.7168 m
--7848.0054 8552.7617 L
--7871.8994 8552.7617 L
--7871.9014 8570.7148 L
--7848.0239 8570.7168 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
--7843.333 8579.5479 m
--7859.8857 8579.5479 L
--7876.439 8579.5479 L
--7883.001 8582.9805 L
--7883.001 8585 L
--7836.9722 8585 L
--7836.9722 8582.9805 L
--7843.333 8579.5479 L
-s
--7874.0366 8573.6045 m
--7873.4038 8573.6045 L
--7873.4038 8575.5557 L
--7873.3672 8575.5449 L
--7873.3672 8575.5527 L
--7873.4038 8575.5557 L
--7873.3672 8575.5557 L
--7862.731 8575.5557 L
--7868.8462 8576.6094 L
--7871.125 8576.6523 L
--7871.1567 8576.6523 L
--7871.1567 8578.4512 L
--7871.125 8578.4414 L
--7871.125 8578.4482 L
--7871.1567 8578.4512 L
--7871.125 8578.4512 L
--7848.7905 8578.4512 L
--7848.729 8578.4512 L
--7848.6694 8576.6094 L
--7850.4634 8576.6094 L
--7856.7002 8575.5557 L
--7846.5649 8575.5557 L
--7846.4927 8575.5557 L
--7846.4233 8573.6045 L
--7845.8022 8573.6045 L
--7844.9922 8572.4648 L
--7844.9922 8551.0508 L
--7845.9302 8549.9121 L
--7873.9082 8549.8848 L
--7874.8911 8550.8809 L
--7874.8838 8572.75 L
--7874.0366 8573.6045 L
-s
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 21)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.3184 8585.3184 m
--7804.0449 8585.3184 L
--7804.0449 8559.5566 L
--7883.3184 8559.5566 L
--7883.3184 8585.3184 L
-n
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.5 w 3.8636 M
--7882.8638 8562.8213 m
--7804.4961 8562.8213 L
--7804.4961 8576.9053 L
--7882.8638 8576.9053 L
--7882.8638 8562.8213 L
-b
--7843.6792 8569.8633 m
-B
-U
-u
--7880.4233 8576.9053 m
--7806.939 8576.9053 L
--7805.4766 8576.9053 -7804.2954 8578.0908 -7804.2954 8579.5498 c
--7804.2954 8580.9951 L
--7804.2954 8582.4561 -7805.4766 8583.6416 -7806.939 8583.6416 c
--7880.4233 8583.6416 L
--7881.8838 8583.6416 -7883.0688 8582.4561 -7883.0688 8580.9951 c
--7883.0688 8579.5498 L
--7883.0688 8578.0908 -7881.8838 8576.9053 -7880.4233 8576.9053 c
--7880.4233 8576.9053 L
-b
--7843.6802 8580.2744 m
-B
-U
-0 g
--7878.374 8583.6396 m
--7873.8838 8583.6396 L
--7874.7007 8585.0684 L
--7877.251 8585.0684 L
--7878.374 8583.6396 L
-b
--7814.293 8583.6396 m
--7809.8022 8583.6396 L
--7810.6191 8585.0684 L
--7813.1714 8585.0684 L
--7814.293 8583.6396 L
-b
-0.61 G
-1 w
--7875.9258 8562.8574 m
--7875.9258 8574.4893 L
-S
--7873.8838 8562.8574 m
--7873.8838 8574.4893 L
-S
-u
-0 O
-0 g
-0 G
-0.5 w
--7826.7417 8566.7002 m
--7813.0679 8566.7002 L
--7813.0679 8568.9463 L
--7826.7417 8568.9463 L
--7826.7417 8566.7002 L
-b
--7819.9038 8567.8223 m
-B
-U
-1 J
--7814.3066 8577.9297 m
--7813.8906 8578.3682 -7813.6362 8578.9561 -7813.6362 8579.6064 C
--7813.6362 8580.9355 L
--7813.6362 8581.5859 -7813.8906 8582.1758 -7814.3066 8582.6123 C
-S
--7816.1978 8577.9297 m
--7815.7842 8578.3682 -7815.5288 8578.9561 -7815.5288 8579.6064 C
--7815.5288 8580.9355 L
--7815.5288 8581.5859 -7815.7842 8582.1758 -7816.1978 8582.6123 C
-S
--7818.0913 8577.9297 m
--7817.6758 8578.3682 -7817.4214 8578.9561 -7817.4214 8579.6064 C
--7817.4214 8580.9355 L
--7817.4214 8581.5859 -7817.6758 8582.1758 -7818.0913 8582.6123 C
-S
--7819.9839 8577.9297 m
--7819.5698 8578.3682 -7819.314 8578.9561 -7819.314 8579.6064 C
--7819.314 8580.9355 L
--7819.314 8581.5859 -7819.5698 8582.1758 -7819.9839 8582.6123 C
-S
--7821.8774 8577.9297 m
--7821.4614 8578.3682 -7821.207 8578.9561 -7821.207 8579.6064 C
--7821.207 8580.9355 L
--7821.207 8581.5859 -7821.4614 8582.1758 -7821.8774 8582.6123 C
-S
--7823.769 8577.9297 m
--7823.354 8578.3682 -7823.1001 8578.9561 -7823.1001 8579.6064 C
--7823.1001 8580.9355 L
--7823.1001 8581.5859 -7823.354 8582.1758 -7823.769 8582.6123 C
-S
--7825.6616 8577.9297 m
--7825.248 8578.3682 -7824.9922 8578.9561 -7824.9922 8579.6064 C
--7824.9922 8580.9355 L
--7824.9922 8581.5859 -7825.248 8582.1758 -7825.6616 8582.6123 C
-S
--7827.5542 8577.9297 m
--7827.1401 8578.3682 -7826.8857 8578.9561 -7826.8857 8579.6064 C
--7826.8857 8580.9355 L
--7826.8857 8581.5859 -7827.1401 8582.1758 -7827.5542 8582.6123 C
-S
--7829.4463 8577.9297 m
--7829.0322 8578.3682 -7828.7769 8578.9561 -7828.7769 8579.6064 C
--7828.7769 8580.9355 L
--7828.7769 8581.5859 -7829.0322 8582.1758 -7829.4463 8582.6123 C
-S
--7831.3374 8577.9297 m
--7830.9258 8578.3682 -7830.6694 8578.9561 -7830.6694 8579.6064 C
--7830.6694 8580.9355 L
--7830.6694 8581.5859 -7830.9258 8582.1758 -7831.3374 8582.6123 C
-S
--7833.231 8577.9297 m
--7832.8159 8578.3682 -7832.563 8578.9561 -7832.563 8579.6064 C
--7832.563 8580.9355 L
--7832.563 8581.5859 -7832.8159 8582.1758 -7833.231 8582.6123 C
-S
--7835.125 8577.9297 m
--7834.7095 8578.3682 -7834.4546 8578.9561 -7834.4546 8579.6064 C
--7834.4546 8580.9355 L
--7834.4546 8581.5859 -7834.7095 8582.1758 -7835.125 8582.6123 C
-S
--7837.0151 8577.9297 m
--7836.6006 8578.3682 -7836.3472 8578.9561 -7836.3472 8579.6064 C
--7836.3472 8580.9355 L
--7836.3472 8581.5859 -7836.6006 8582.1758 -7837.0151 8582.6123 C
-S
--7838.9102 8577.9297 m
--7838.4937 8578.3682 -7838.2407 8578.9561 -7838.2407 8579.6064 C
--7838.2407 8580.9355 L
--7838.2407 8581.5859 -7838.4937 8582.1758 -7838.9102 8582.6123 C
-S
--7840.8022 8577.9297 m
--7840.3872 8578.3682 -7840.1318 8578.9561 -7840.1318 8579.6064 C
--7840.1318 8580.9355 L
--7840.1318 8581.5859 -7840.3872 8582.1758 -7840.8022 8582.6123 C
-S
-0 O
-0.4385 g
-0 J 1 j
--7873.8838 8559.8066 m
--7813.8838 8559.8066 L
--7804.4961 8562.8213 L
--7882.8638 8562.8213 L
--7873.8838 8559.8066 L
-b
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 42)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7875.999 8578.6211 m
--7852.9873 8578.6211 L
--7852.9873 8540.5439 L
--7875.999 8540.5439 L
--7875.999 8578.6211 L
-n
-*u
-0 R
-1 G
-1 D
--7858.4966 8549.5801 m
--7858.4966 8551.3926 L
--7858.4966 8551.4912 -7858.5439 8551.5869 -7858.6362 8551.6787 c
--7858.7266 8551.7715 -7858.8608 8551.8604 -7859.0342 8551.9463 c
--7859.2065 8552.0303 -7859.418 8552.1123 -7859.6641 8552.1875 c
--7859.9087 8552.2627 -7860.1895 8552.333 -7860.498 8552.3975 c
--7860.7842 8552.457 -7861.0967 8552.5107 -7861.4282 8552.5586 C
--7861.4282 8552.6797 L
--7861.3481 8552.6797 L
--7861.3481 8552.7451 -7861.3774 8552.8066 -7861.4282 8552.8652 C
--7861.4282 8553.0898 L
--7861.3481 8553.0898 L
--7861.3481 8553.1543 -7861.3774 8553.2158 -7861.4282 8553.2744 C
--7861.4282 8553.499 L
--7861.3481 8553.499 L
--7861.3481 8553.5645 -7861.3774 8553.626 -7861.4282 8553.6846 C
--7861.4282 8553.9092 L
--7861.3481 8553.9092 L
--7861.3481 8553.9736 -7861.3774 8554.0361 -7861.4282 8554.0938 C
--7861.4282 8554.3184 L
--7861.3481 8554.3184 L
--7861.3481 8554.3838 -7861.3774 8554.4443 -7861.4282 8554.5029 C
--7861.4282 8554.7275 L
--7861.3481 8554.7275 L
--7861.3481 8554.793 -7861.3774 8554.8545 -7861.4282 8554.9131 C
--7861.4282 8555.1367 L
--7861.3481 8555.1367 L
--7861.3481 8555.2021 -7861.3774 8555.2637 -7861.4282 8555.3223 C
--7861.4282 8555.5469 L
--7861.3481 8555.5469 L
--7861.3481 8555.6123 -7861.3774 8555.6738 -7861.4282 8555.7324 C
--7861.4282 8555.9561 L
--7861.3481 8555.9561 L
--7861.3481 8556.0215 -7861.3774 8556.083 -7861.4282 8556.1416 C
--7861.4282 8556.3652 L
--7861.3481 8556.3652 L
--7861.3481 8556.4307 -7861.3774 8556.4922 -7861.4282 8556.5508 C
--7861.4282 8556.7754 L
--7861.3481 8556.7754 L
--7861.3481 8556.8408 -7861.3774 8556.9023 -7861.4282 8556.96 C
--7861.4282 8557.1846 L
--7861.3481 8557.1846 L
--7861.3481 8557.25 -7861.3774 8557.3115 -7861.4282 8557.3701 C
--7861.4282 8557.5947 L
--7861.3481 8557.5947 L
--7861.3481 8557.6592 -7861.3774 8557.7217 -7861.4282 8557.7793 C
--7861.4282 8558.0039 L
--7861.3481 8558.0039 L
--7861.3481 8558.0693 -7861.3774 8558.1309 -7861.4282 8558.1885 C
--7861.4282 8558.4131 L
--7861.3481 8558.4131 L
--7861.3481 8558.4785 -7861.3774 8558.54 -7861.4282 8558.5986 C
--7861.4282 8558.8232 L
--7861.3481 8558.8232 L
--7861.3481 8558.8877 -7861.3774 8558.9502 -7861.4282 8559.0078 C
--7861.4282 8559.2324 L
--7861.3481 8559.2324 L
--7861.3481 8559.2979 -7861.3774 8559.3594 -7861.4282 8559.418 C
--7861.4282 8559.6416 L
--7861.3481 8559.6416 L
--7861.3481 8559.707 -7861.3774 8559.7686 -7861.4282 8559.8271 C
--7861.4282 8560.0518 L
--7861.3481 8560.0518 L
--7861.3481 8560.1162 -7861.3774 8560.1787 -7861.4282 8560.2373 C
--7861.4282 8560.4609 L
--7861.3481 8560.4609 L
--7861.3481 8560.5264 -7861.3774 8560.5879 -7861.4282 8560.6465 C
--7861.4282 8560.8701 L
--7861.3481 8560.8701 L
--7861.3481 8560.9355 -7861.3774 8560.9971 -7861.4282 8561.0557 C
--7861.4282 8561.2803 L
--7861.3481 8561.2803 L
--7861.3481 8561.3457 -7861.3774 8561.4072 -7861.4282 8561.4658 C
--7861.4282 8561.6895 L
--7861.3481 8561.6895 L
--7861.3481 8561.7549 -7861.3774 8561.8164 -7861.4282 8561.875 C
--7861.4282 8562.0986 L
--7861.3481 8562.0986 L
--7861.3481 8562.1484 -7861.3682 8562.1953 -7861.3984 8562.2412 C
--7859.6431 8562.499 -7858.4966 8562.9229 -7858.4966 8563.4033 c
--7858.4966 8563.459 -7858.5166 8563.5146 -7858.5474 8563.5693 c
--7858.5166 8563.5146 -7858.4966 8563.459 -7858.4966 8563.4033 C
--7858.4966 8565.2158 L
--7858.4966 8565.3145 -7858.5439 8565.4102 -7858.6362 8565.5029 c
--7858.7266 8565.5947 -7858.8608 8565.6846 -7859.0342 8565.7695 c
--7859.2065 8565.8545 -7859.418 8565.9346 -7859.6641 8566.0107 c
--7859.9087 8566.0859 -7860.1895 8566.1563 -7860.498 8566.2207 c
--7860.8081 8566.2852 -7861.1455 8566.3438 -7861.5098 8566.3945 c
--7861.873 8566.4463 -7862.2622 8566.4893 -7862.6714 8566.5254 c
--7863.0791 8566.5615 -7863.5088 8566.5898 -7863.9546 8566.6084 c
--7864.3984 8566.627 -7864.8594 8566.6367 -7865.3311 8566.6367 c
--7865.8022 8566.6367 -7866.2642 8566.627 -7866.708 8566.6084 c
--7867.1538 8566.5898 -7867.582 8566.5615 -7867.9912 8566.5254 c
--7868.3999 8566.4893 -7868.7881 8566.4463 -7869.1519 8566.3945 c
--7869.5151 8566.3438 -7869.8545 8566.2852 -7870.1631 8566.2207 c
--7870.4727 8566.1563 -7870.752 8566.0859 -7870.998 8566.0107 c
--7871.2441 8565.9346 -7871.4551 8565.8545 -7871.6279 8565.7695 c
--7871.8018 8565.6846 -7871.9351 8565.5947 -7872.0264 8565.5029 c
--7872.1167 8565.4102 -7872.165 8565.3145 -7872.165 8565.2158 C
--7872.165 8563.4033 L
--7872.165 8562.9229 -7871.0186 8562.499 -7869.2642 8562.2412 C
--7869.2935 8562.1953 -7869.3135 8562.1484 -7869.3135 8562.0986 C
--7869.2344 8562.0986 L
--7869.2344 8561.875 L
--7869.2842 8561.8164 -7869.3135 8561.7549 -7869.3135 8561.6895 C
--7869.2344 8561.6895 L
--7869.2344 8561.4658 L
--7869.2842 8561.4072 -7869.3135 8561.3457 -7869.3135 8561.2803 C
--7869.2344 8561.2803 L
--7869.2344 8561.0557 L
--7869.2842 8560.9971 -7869.3135 8560.9355 -7869.3135 8560.8701 C
--7869.2344 8560.8701 L
--7869.2344 8560.6465 L
--7869.2842 8560.5879 -7869.3135 8560.5264 -7869.3135 8560.4609 C
--7869.2344 8560.4609 L
--7869.2344 8560.2373 L
--7869.2842 8560.1787 -7869.3135 8560.1162 -7869.3135 8560.0518 C
--7869.2344 8560.0518 L
--7869.2344 8559.8271 L
--7869.2842 8559.7686 -7869.3135 8559.707 -7869.3135 8559.6416 C
--7869.2344 8559.6416 L
--7869.2344 8559.418 L
--7869.2842 8559.3594 -7869.3135 8559.2979 -7869.3135 8559.2324 C
--7869.2344 8559.2324 L
--7869.2344 8559.0078 L
--7869.2842 8558.9502 -7869.3135 8558.8877 -7869.3135 8558.8232 C
--7869.2344 8558.8232 L
--7869.2344 8558.5986 L
--7869.2842 8558.54 -7869.3135 8558.4785 -7869.3135 8558.4131 C
--7869.2344 8558.4131 L
--7869.2344 8558.1885 L
--7869.2842 8558.1309 -7869.3135 8558.0693 -7869.3135 8558.0039 C
--7869.2344 8558.0039 L
--7869.2344 8557.7793 L
--7869.2842 8557.7217 -7869.3135 8557.6592 -7869.3135 8557.5947 C
--7869.2344 8557.5947 L
--7869.2344 8557.3701 L
--7869.2842 8557.3115 -7869.3135 8557.25 -7869.3135 8557.1846 C
--7869.2344 8557.1846 L
--7869.2344 8556.96 L
--7869.2842 8556.9023 -7869.3135 8556.8408 -7869.3135 8556.7754 C
--7869.2344 8556.7754 L
--7869.2344 8556.5508 L
--7869.2842 8556.4922 -7869.3135 8556.4307 -7869.3135 8556.3652 C
--7869.2344 8556.3652 L
--7869.2344 8556.1416 L
--7869.2842 8556.083 -7869.3135 8556.0215 -7869.3135 8555.9561 C
--7869.2344 8555.9561 L
--7869.2344 8555.7324 L
--7869.2842 8555.6738 -7869.3135 8555.6123 -7869.3135 8555.5469 C
--7869.2344 8555.5469 L
--7869.2344 8555.3223 L
--7869.2842 8555.2637 -7869.3135 8555.2021 -7869.3135 8555.1367 C
--7869.2344 8555.1367 L
--7869.2344 8554.9131 L
--7869.2842 8554.8545 -7869.3135 8554.793 -7869.3135 8554.7275 C
--7869.2344 8554.7275 L
--7869.2344 8554.5029 L
--7869.2842 8554.4443 -7869.3135 8554.3838 -7869.3135 8554.3184 C
--7869.2344 8554.3184 L
--7869.2344 8554.0938 L
--7869.2842 8554.0361 -7869.3135 8553.9736 -7869.3135 8553.9092 C
--7869.2344 8553.9092 L
--7869.2344 8553.6846 L
--7869.2842 8553.626 -7869.3135 8553.5645 -7869.3135 8553.499 C
--7869.2344 8553.499 L
--7869.2344 8553.2744 L
--7869.2842 8553.2158 -7869.3135 8553.1543 -7869.3135 8553.0898 C
--7869.2344 8553.0898 L
--7869.2344 8552.8652 L
--7869.2842 8552.8066 -7869.3135 8552.7451 -7869.3135 8552.6797 C
--7869.2344 8552.6797 L
--7869.2344 8552.5586 L
--7869.5654 8552.5107 -7869.8774 8552.457 -7870.1631 8552.3975 c
--7870.4727 8552.333 -7870.752 8552.2627 -7870.998 8552.1875 c
--7871.2441 8552.1123 -7871.4551 8552.0303 -7871.6279 8551.9463 c
--7871.8018 8551.8604 -7871.9351 8551.7715 -7872.0264 8551.6787 c
--7872.1167 8551.5869 -7872.165 8551.4912 -7872.165 8551.3926 C
--7872.165 8549.5801 L
--7872.165 8548.9551 -7870.2256 8548.4248 -7867.5303 8548.2344 C
--7867.4902 8548.1611 -7867.4502 8548.0869 -7867.4102 8548.0068 c
--7866.9209 8547.0283 -7867.063 8546.1836 -7867.2134 8545.2881 c
--7867.3066 8544.7305 -7867.4038 8544.1533 -7867.3496 8543.5215 c
--7867.208 8541.8691 -7865.4434 8541.0586 -7865.3975 8541.0439 C
--7858.4302 8541.0439 L
--7858.4014 8541.1729 L
--7858.4111 8541.1777 -7859.373 8541.6484 -7860.292 8543.1582 c
--7860.8286 8544.041 -7860.6929 8545.0957 -7860.5586 8546.1152 c
--7860.4639 8546.8379 -7860.376 8547.5195 -7860.5542 8548.0576 c
--7860.6104 8548.2256 -7860.6768 8548.3809 -7860.749 8548.5254 C
--7859.3662 8548.7861 -7858.4966 8549.1611 -7858.4966 8549.5801 C
-s
-0 D
--7871.626 8550.1338 m
--7871.7031 8550.0957 -7871.771 8550.0576 -7871.833 8550.0176 c
--7871.7729 8550.0566 -7871.7041 8550.0957 -7871.6279 8550.1328 C
--7871.6279 8550.1338 -7871.626 8550.1338 Y
-s
-1 D
--7870.1626 8564.4082 m
--7870.1631 8564.4082 -7870.1631 8564.4072 -7870.165 8564.4072 c
--7870.1641 8564.4072 -7870.1631 8564.4072 -7870.1631 8564.4082 C
--7870.1631 8564.4082 -7870.1626 8564.4082 v
-s
--7866.687 8564.7959 m
--7866.7026 8564.7959 -7866.7153 8564.7949 -7866.729 8564.7939 C
--7866.7217 8564.7939 -7866.7153 8564.7949 -7866.708 8564.7959 C
--7866.7026 8564.7959 -7866.6943 8564.7959 -7866.687 8564.7959 c
-s
--7863.9326 8564.7939 m
--7863.9463 8564.7949 -7863.9609 8564.7959 -7863.9736 8564.7959 c
--7863.9678 8564.7959 -7863.96 8564.7959 -7863.9546 8564.7959 C
--7863.9463 8564.7949 -7863.9409 8564.7939 -7863.9326 8564.7939 C
-s
-0 D
--7858.7119 8563.7588 m
--7858.6831 8563.7354 -7858.6582 8563.7129 -7858.6362 8563.6895 c
--7858.6138 8563.667 -7858.6016 8563.6426 -7858.585 8563.6201 c
--7858.6191 8563.667 -7858.6558 8563.7129 -7858.7119 8563.7588 c
-s
--7858.6758 8549.9023 m
--7858.7646 8549.9824 -7858.8848 8550.0596 -7859.0361 8550.1338 C
--7859.0352 8550.1338 -7859.0342 8550.1338 -7859.0342 8550.1328 C
--7858.8838 8550.0596 -7858.7646 8549.9814 -7858.6758 8549.9023 c
-s
-*U
-u
-0 O
-0 g
--7865.2832 8553.8408 m
-F
-u
-u
-0.67 g
--7858.7119 8563.7588 m
--7858.7959 8563.8262 -7858.9038 8563.8926 -7859.0342 8563.9561 C
--7859.0342 8563.9561 L
--7859.0342 8563.9561 L
--7859.6377 8564.2529 -7860.7134 8564.499 -7862.0664 8564.6514 c
--7862.0713 8564.6523 -7862.0762 8564.6533 -7862.0806 8564.6533 c
--7862.2671 8564.6748 -7862.459 8564.6934 -7862.6553 8564.7109 c
--7862.6602 8564.7119 -7862.665 8564.7119 -7862.6714 8564.7119 c
--7862.6768 8564.7129 -7862.6816 8564.7139 -7862.687 8564.7139 c
--7862.8838 8564.7314 -7863.084 8564.7461 -7863.29 8564.7598 c
--7863.2959 8564.7598 -7863.3018 8564.7607 -7863.3071 8564.7607 c
--7863.5127 8564.7744 -7863.7217 8564.7852 -7863.9326 8564.7939 c
--7863.9409 8564.7939 -7863.9463 8564.7949 -7863.9546 8564.7959 c
--7863.96 8564.7959 -7863.9678 8564.7959 -7863.9736 8564.7959 c
--7864.4121 8564.8145 -7864.8662 8564.8242 -7865.3311 8564.8242 c
--7865.7959 8564.8242 -7866.249 8564.8145 -7866.687 8564.7959 c
--7866.6943 8564.7959 -7866.7026 8564.7959 -7866.708 8564.7959 c
--7866.7153 8564.7949 -7866.7217 8564.7939 -7866.729 8564.7939 c
--7866.9409 8564.7852 -7867.1504 8564.7734 -7867.3545 8564.7607 c
--7867.3599 8564.7607 -7867.3647 8564.7598 -7867.3711 8564.7598 c
--7867.5767 8564.7461 -7867.7793 8564.7314 -7867.9761 8564.7139 c
--7867.9814 8564.7139 -7867.9863 8564.7129 -7867.9912 8564.7119 c
--7867.9951 8564.7119 -7868 8564.7119 -7868.0049 8564.7109 c
--7868.2026 8564.6943 -7868.3945 8564.6748 -7868.582 8564.6533 c
--7868.5854 8564.6533 -7868.5898 8564.6523 -7868.5938 8564.6514 c
--7869.1719 8564.5869 -7869.7002 8564.5039 -7870.1626 8564.4082 c
--7870.1631 8564.4082 -7870.1631 8564.4082 y
--7870.1631 8564.4072 -7870.1641 8564.4072 -7870.165 8564.4072 c
--7870.7822 8564.2793 -7871.2822 8564.126 -7871.6279 8563.9561 C
--7871.6279 8563.9561 L
--7871.6279 8563.9561 L
--7871.8257 8563.8594 -7871.9722 8563.7568 -7872.061 8563.6494 c
--7872.1279 8563.5693 -7872.165 8563.4873 -7872.165 8563.4033 C
--7872.165 8565.2158 L
--7872.165 8565.3145 -7872.1167 8565.4102 -7872.0264 8565.5029 c
--7871.9351 8565.5947 -7871.8018 8565.6846 -7871.6279 8565.7695 c
--7871.4551 8565.8545 -7871.2441 8565.9346 -7870.998 8566.0107 c
--7870.752 8566.0859 -7870.4727 8566.1563 -7870.1631 8566.2207 c
--7869.8545 8566.2852 -7869.5151 8566.3438 -7869.1519 8566.3945 c
--7868.7881 8566.4463 -7868.3999 8566.4893 -7867.9912 8566.5254 c
--7867.582 8566.5615 -7867.1538 8566.5898 -7866.708 8566.6084 c
--7866.2642 8566.627 -7865.8022 8566.6367 -7865.3311 8566.6367 c
--7864.8594 8566.6367 -7864.3984 8566.627 -7863.9546 8566.6084 c
--7863.5088 8566.5898 -7863.0791 8566.5615 -7862.6714 8566.5254 c
--7862.2622 8566.4893 -7861.873 8566.4463 -7861.5098 8566.3945 c
--7861.1455 8566.3438 -7860.8081 8566.2852 -7860.498 8566.2207 c
--7860.1895 8566.1563 -7859.9087 8566.0859 -7859.6641 8566.0107 c
--7859.418 8565.9346 -7859.2065 8565.8545 -7859.0342 8565.7695 c
--7858.8608 8565.6846 -7858.7266 8565.5947 -7858.6362 8565.5029 c
--7858.5439 8565.4102 -7858.4966 8565.3145 -7858.4966 8565.2158 C
--7858.4966 8563.4033 L
--7858.4966 8563.501 -7858.5439 8563.5967 -7858.6362 8563.6895 c
--7858.6582 8563.7129 -7858.6831 8563.7354 -7858.7119 8563.7588 c
-f
-0.39 g
--7861.4282 8562.5088 m
--7861.3481 8562.5088 L
--7861.3481 8562.5732 -7861.3774 8562.6357 -7861.4282 8562.6934 C
--7861.4282 8563.0381 L
--7861.4282 8563.0947 -7861.4551 8563.1494 -7861.5073 8563.2021 c
--7861.5586 8563.2549 -7861.6362 8563.3057 -7861.7344 8563.3545 c
--7861.834 8563.4033 -7861.9546 8563.4492 -7862.0942 8563.4922 c
--7862.2344 8563.5352 -7862.3945 8563.5752 -7862.5713 8563.6123 c
--7862.7471 8563.6484 -7862.9414 8563.6826 -7863.1489 8563.7119 c
--7863.3569 8563.7402 -7863.5786 8563.7656 -7863.811 8563.7861 c
--7864.0449 8563.8066 -7864.29 8563.8232 -7864.5439 8563.833 c
--7864.7974 8563.8438 -7865.0615 8563.8496 -7865.3311 8563.8496 c
--7865.6006 8563.8496 -7865.8633 8563.8438 -7866.1167 8563.833 c
--7866.3711 8563.8232 -7866.6162 8563.8066 -7866.8496 8563.7861 c
--7867.083 8563.7656 -7867.3057 8563.7402 -7867.5127 8563.7119 c
--7867.7207 8563.6826 -7867.9146 8563.6484 -7868.0913 8563.6123 c
--7868.2666 8563.5752 -7868.4272 8563.5352 -7868.5674 8563.4922 c
--7868.708 8563.4492 -7868.8281 8563.4033 -7868.9263 8563.3545 c
--7869.0264 8563.3057 -7869.1025 8563.2549 -7869.1553 8563.2021 c
--7869.2065 8563.1494 -7869.2344 8563.0947 -7869.2344 8563.0381 C
--7869.2344 8562.6934 L
--7869.2842 8562.6357 -7869.3135 8562.5732 -7869.3135 8562.5088 C
--7869.2344 8562.5088 L
--7869.2344 8562.2842 L
--7869.2466 8562.2705 -7869.2554 8562.2559 -7869.2642 8562.2412 C
--7871.0186 8562.499 -7872.165 8562.9229 -7872.165 8563.4033 c
--7872.165 8563.4873 -7872.1279 8563.5693 -7872.061 8563.6494 c
--7871.9722 8563.7568 -7871.8257 8563.8594 -7871.6279 8563.9561 C
--7871.6279 8563.9561 L
--7871.2822 8564.126 -7870.7822 8564.2793 -7870.165 8564.4072 c
--7870.1631 8564.4072 -7870.1631 8564.4082 -7870.1626 8564.4082 c
--7869.7002 8564.5039 -7869.1719 8564.5869 -7868.5938 8564.6514 c
--7868.5898 8564.6523 -7868.5854 8564.6533 -7868.582 8564.6533 c
--7868.3945 8564.6748 -7868.2026 8564.6943 -7868.0049 8564.7109 c
--7867.9951 8564.7119 -7867.9858 8564.7129 -7867.9761 8564.7139 c
--7867.7793 8564.7314 -7867.5767 8564.7461 -7867.3711 8564.7598 c
--7867.3647 8564.7598 -7867.3599 8564.7607 -7867.3545 8564.7607 c
--7867.1504 8564.7734 -7866.9409 8564.7852 -7866.729 8564.7939 c
--7866.7153 8564.7949 -7866.7026 8564.7959 -7866.687 8564.7959 c
--7866.249 8564.8145 -7865.7959 8564.8242 -7865.3311 8564.8242 c
--7864.8662 8564.8242 -7864.4121 8564.8145 -7863.9736 8564.7959 c
--7863.9609 8564.7959 -7863.9463 8564.7949 -7863.9326 8564.7939 c
--7863.7217 8564.7852 -7863.5127 8564.7744 -7863.3071 8564.7607 c
--7863.3018 8564.7607 -7863.2959 8564.7598 -7863.29 8564.7598 c
--7863.084 8564.7461 -7862.8838 8564.7314 -7862.687 8564.7139 c
--7862.6768 8564.7129 -7862.666 8564.7119 -7862.6553 8564.7109 c
--7862.459 8564.6934 -7862.2671 8564.6748 -7862.0806 8564.6533 c
--7862.0762 8564.6533 -7862.0713 8564.6523 -7862.0664 8564.6514 c
--7860.7134 8564.499 -7859.6377 8564.2529 -7859.0342 8563.9561 C
--7859.0342 8563.9561 L
--7858.9038 8563.8926 -7858.7959 8563.8262 -7858.7119 8563.7588 c
--7858.5713 8563.6445 -7858.4966 8563.5254 -7858.4966 8563.4033 c
--7858.4966 8562.9229 -7859.6431 8562.499 -7861.3984 8562.2412 C
--7861.4072 8562.2559 -7861.416 8562.2705 -7861.4282 8562.2842 C
--7861.4282 8562.5088 L
-f
-0.55 g
--7865.3311 8558.4756 m
--7867.041 8558.4756 -7868.8442 8558.2334 -7869.2344 8557.7793 C
--7869.2344 8558.0039 L
--7869.1782 8558.0039 L
--7869.1782 8558.3564 -7867.5986 8558.75 -7865.3311 8558.75 c
--7863.063 8558.75 -7861.4834 8558.3564 -7861.4834 8558.0039 C
--7861.4282 8558.0039 L
--7861.4282 8557.7793 L
--7861.8174 8558.2334 -7863.6201 8558.4756 -7865.3311 8558.4756 c
-f
--7865.3311 8555.6094 m
--7867.041 8555.6094 -7868.8442 8555.3662 -7869.2344 8554.9131 C
--7869.2344 8555.1367 L
--7869.1782 8555.1367 L
--7869.1782 8555.4902 -7867.5986 8555.8838 -7865.3311 8555.8838 c
--7863.063 8555.8838 -7861.4834 8555.4902 -7861.4834 8555.1367 C
--7861.4282 8555.1367 L
--7861.4282 8554.9131 L
--7861.8174 8555.3662 -7863.6201 8555.6094 -7865.3311 8555.6094 c
-f
--7865.3311 8558.8857 m
--7867.041 8558.8857 -7868.8442 8558.6426 -7869.2344 8558.1885 C
--7869.2344 8558.4131 L
--7869.1782 8558.4131 L
--7869.1782 8558.7666 -7867.5986 8559.1602 -7865.3311 8559.1602 c
--7863.063 8559.1602 -7861.4834 8558.7666 -7861.4834 8558.4131 C
--7861.4282 8558.4131 L
--7861.4282 8558.1885 L
--7861.8174 8558.6426 -7863.6201 8558.8857 -7865.3311 8558.8857 c
-f
--7865.3311 8559.2949 m
--7867.041 8559.2949 -7868.8442 8559.0518 -7869.2344 8558.5986 C
--7869.2344 8558.8232 L
--7869.1782 8558.8232 L
--7869.1782 8559.1758 -7867.5986 8559.5693 -7865.3311 8559.5693 c
--7863.063 8559.5693 -7861.4834 8559.1758 -7861.4834 8558.8232 C
--7861.4282 8558.8232 L
--7861.4282 8558.5986 L
--7861.8174 8559.0518 -7863.6201 8559.2949 -7865.3311 8559.2949 c
-f
--7865.3311 8556.0186 m
--7867.041 8556.0186 -7868.8442 8555.7764 -7869.2344 8555.3223 C
--7869.2344 8555.5469 L
--7869.1782 8555.5469 L
--7869.1782 8555.8994 -7867.5986 8556.293 -7865.3311 8556.293 c
--7863.063 8556.293 -7861.4834 8555.8994 -7861.4834 8555.5469 C
--7861.4282 8555.5469 L
--7861.4282 8555.3223 L
--7861.8174 8555.7764 -7863.6201 8556.0186 -7865.3311 8556.0186 c
-f
--7865.3311 8557.2471 m
--7867.041 8557.2471 -7868.8442 8557.0039 -7869.2344 8556.5508 C
--7869.2344 8556.7754 L
--7869.1782 8556.7754 L
--7869.1782 8557.1279 -7867.5986 8557.5225 -7865.3311 8557.5225 c
--7863.063 8557.5225 -7861.4834 8557.1279 -7861.4834 8556.7754 C
--7861.4282 8556.7754 L
--7861.4282 8556.5508 L
--7861.8174 8557.0039 -7863.6201 8557.2471 -7865.3311 8557.2471 c
-f
--7865.3311 8558.0664 m
--7867.041 8558.0664 -7868.8442 8557.8232 -7869.2344 8557.3701 C
--7869.2344 8557.5947 L
--7869.1782 8557.5947 L
--7869.1782 8557.9473 -7867.5986 8558.3408 -7865.3311 8558.3408 c
--7863.063 8558.3408 -7861.4834 8557.9473 -7861.4834 8557.5947 C
--7861.4282 8557.5947 L
--7861.4282 8557.3701 L
--7861.8174 8557.8232 -7863.6201 8558.0664 -7865.3311 8558.0664 c
-f
--7865.3311 8556.8379 m
--7867.041 8556.8379 -7868.8442 8556.5947 -7869.2344 8556.1416 C
--7869.2344 8556.3652 L
--7869.1782 8556.3652 L
--7869.1782 8556.7188 -7867.5986 8557.1123 -7865.3311 8557.1123 c
--7863.063 8557.1123 -7861.4834 8556.7188 -7861.4834 8556.3652 C
--7861.4282 8556.3652 L
--7861.4282 8556.1416 L
--7861.8174 8556.5947 -7863.6201 8556.8379 -7865.3311 8556.8379 c
-f
--7865.3311 8553.9717 m
--7867.041 8553.9717 -7868.8442 8553.7285 -7869.2344 8553.2744 C
--7869.2344 8553.499 L
--7869.1782 8553.499 L
--7869.1782 8553.8516 -7867.5986 8554.2451 -7865.3311 8554.2451 c
--7863.063 8554.2451 -7861.4834 8553.8516 -7861.4834 8553.499 C
--7861.4282 8553.499 L
--7861.4282 8553.2744 L
--7861.8174 8553.7285 -7863.6201 8553.9717 -7865.3311 8553.9717 c
-f
--7865.3311 8554.79 m
--7867.041 8554.79 -7868.8442 8554.5479 -7869.2344 8554.0938 C
--7869.2344 8554.3184 L
--7869.1782 8554.3184 L
--7869.1782 8554.6709 -7867.5986 8555.0645 -7865.3311 8555.0645 c
--7863.063 8555.0645 -7861.4834 8554.6709 -7861.4834 8554.3184 C
--7861.4282 8554.3184 L
--7861.4282 8554.0938 L
--7861.8174 8554.5479 -7863.6201 8554.79 -7865.3311 8554.79 c
-f
--7865.3311 8557.6572 m
--7867.041 8557.6572 -7868.8442 8557.4141 -7869.2344 8556.96 C
--7869.2344 8557.1846 L
--7869.1782 8557.1846 L
--7869.1782 8557.5381 -7867.5986 8557.9307 -7865.3311 8557.9307 c
--7863.063 8557.9307 -7861.4834 8557.5381 -7861.4834 8557.1846 C
--7861.4282 8557.1846 L
--7861.4282 8556.96 L
--7861.8174 8557.4141 -7863.6201 8557.6572 -7865.3311 8557.6572 c
-f
--7865.3311 8556.4287 m
--7867.041 8556.4287 -7868.8442 8556.1855 -7869.2344 8555.7324 C
--7869.2344 8555.9561 L
--7869.1782 8555.9561 L
--7869.1782 8556.3096 -7867.5986 8556.7021 -7865.3311 8556.7021 c
--7863.063 8556.7021 -7861.4834 8556.3096 -7861.4834 8555.9561 C
--7861.4282 8555.9561 L
--7861.4282 8555.7324 L
--7861.8174 8556.1855 -7863.6201 8556.4287 -7865.3311 8556.4287 c
-f
--7865.3311 8554.3799 m
--7867.041 8554.3799 -7868.8442 8554.1377 -7869.2344 8553.6846 C
--7869.2344 8553.9092 L
--7869.1782 8553.9092 L
--7869.1782 8554.2617 -7867.5986 8554.6553 -7865.3311 8554.6553 c
--7863.063 8554.6553 -7861.4834 8554.2617 -7861.4834 8553.9092 C
--7861.4282 8553.9092 L
--7861.4282 8553.6846 L
--7861.8174 8554.1377 -7863.6201 8554.3799 -7865.3311 8554.3799 c
-f
--7865.3311 8555.1992 m
--7867.041 8555.1992 -7868.8442 8554.9561 -7869.2344 8554.5029 C
--7869.2344 8554.7275 L
--7869.1782 8554.7275 L
--7869.1782 8555.0811 -7867.5986 8555.4746 -7865.3311 8555.4746 c
--7863.063 8555.4746 -7861.4834 8555.0811 -7861.4834 8554.7275 C
--7861.4282 8554.7275 L
--7861.4282 8554.5029 L
--7861.8174 8554.9561 -7863.6201 8555.1992 -7865.3311 8555.1992 c
-f
--7865.3311 8561.3428 m
--7867.041 8561.3428 -7868.8442 8561.0996 -7869.2344 8560.6465 C
--7869.2344 8560.8701 L
--7869.1782 8560.8701 L
--7869.1782 8561.2236 -7867.5986 8561.6172 -7865.3311 8561.6172 c
--7863.063 8561.6172 -7861.4834 8561.2236 -7861.4834 8560.8701 C
--7861.4282 8560.8701 L
--7861.4282 8560.6465 L
--7861.8174 8561.0996 -7863.6201 8561.3428 -7865.3311 8561.3428 c
-f
--7865.3311 8562.5713 m
--7867.041 8562.5713 -7868.8442 8562.3281 -7869.2344 8561.875 C
--7869.2344 8562.0986 L
--7869.1782 8562.0986 L
--7869.1782 8562.4521 -7867.5986 8562.8457 -7865.3311 8562.8457 c
--7863.063 8562.8457 -7861.4834 8562.4521 -7861.4834 8562.0986 C
--7861.4282 8562.0986 L
--7861.4282 8561.875 L
--7861.8174 8562.3281 -7863.6201 8562.5713 -7865.3311 8562.5713 c
-f
--7865.3311 8562.1611 m
--7867.041 8562.1611 -7868.8442 8561.9189 -7869.2344 8561.4658 C
--7869.2344 8561.6895 L
--7869.1782 8561.6895 L
--7869.1782 8562.043 -7867.5986 8562.4365 -7865.3311 8562.4365 c
--7863.063 8562.4365 -7861.4834 8562.043 -7861.4834 8561.6895 C
--7861.4282 8561.6895 L
--7861.4282 8561.4658 L
--7861.8174 8561.9189 -7863.6201 8562.1611 -7865.3311 8562.1611 c
-f
--7865.3311 8559.7041 m
--7867.041 8559.7041 -7868.8442 8559.4619 -7869.2344 8559.0078 C
--7869.2344 8559.2324 L
--7869.1782 8559.2324 L
--7869.1782 8559.585 -7867.5986 8559.9795 -7865.3311 8559.9795 c
--7863.063 8559.9795 -7861.4834 8559.585 -7861.4834 8559.2324 C
--7861.4282 8559.2324 L
--7861.4282 8559.0078 L
--7861.8174 8559.4619 -7863.6201 8559.7041 -7865.3311 8559.7041 c
-f
--7865.3311 8560.9326 m
--7867.041 8560.9326 -7868.8442 8560.6904 -7869.2344 8560.2373 C
--7869.2344 8560.4609 L
--7869.1782 8560.4609 L
--7869.1782 8560.8135 -7867.5986 8561.208 -7865.3311 8561.208 c
--7863.063 8561.208 -7861.4834 8560.8135 -7861.4834 8560.4609 C
--7861.4282 8560.4609 L
--7861.4282 8560.2373 L
--7861.8174 8560.6904 -7863.6201 8560.9326 -7865.3311 8560.9326 c
-f
--7865.3311 8560.5234 m
--7867.041 8560.5234 -7868.8442 8560.2803 -7869.2344 8559.8271 C
--7869.2344 8560.0518 L
--7869.1782 8560.0518 L
--7869.1782 8560.4043 -7867.5986 8560.7979 -7865.3311 8560.7979 c
--7863.063 8560.7979 -7861.4834 8560.4043 -7861.4834 8560.0518 C
--7861.4282 8560.0518 L
--7861.4282 8559.8271 L
--7861.8174 8560.2803 -7863.6201 8560.5234 -7865.3311 8560.5234 c
-f
--7865.3311 8560.1143 m
--7867.041 8560.1143 -7868.8442 8559.8711 -7869.2344 8559.418 C
--7869.2344 8559.6416 L
--7869.1782 8559.6416 L
--7869.1782 8559.9951 -7867.5986 8560.3887 -7865.3311 8560.3887 c
--7863.063 8560.3887 -7861.4834 8559.9951 -7861.4834 8559.6416 C
--7861.4282 8559.6416 L
--7861.4282 8559.418 L
--7861.8174 8559.8711 -7863.6201 8560.1143 -7865.3311 8560.1143 c
-f
--7865.3311 8561.752 m
--7867.041 8561.752 -7868.8442 8561.5088 -7869.2344 8561.0557 C
--7869.2344 8561.2803 L
--7869.1782 8561.2803 L
--7869.1782 8561.6328 -7867.5986 8562.0264 -7865.3311 8562.0264 c
--7863.063 8562.0264 -7861.4834 8561.6328 -7861.4834 8561.2803 C
--7861.4282 8561.2803 L
--7861.4282 8561.0557 L
--7861.8174 8561.5088 -7863.6201 8561.752 -7865.3311 8561.752 c
-f
--7862.6714 8552.7021 m
--7863.0791 8552.7383 -7863.5088 8552.7666 -7863.9546 8552.7852 c
--7864.3984 8552.8037 -7864.8594 8552.8135 -7865.3311 8552.8135 c
--7865.8022 8552.8135 -7866.2642 8552.8037 -7866.708 8552.7852 c
--7867.1538 8552.7666 -7867.582 8552.7383 -7867.9912 8552.7021 c
--7868.3999 8552.666 -7868.7881 8552.6221 -7869.1519 8552.5713 c
--7869.1807 8552.5674 -7869.2065 8552.5625 -7869.2344 8552.5586 C
--7869.2344 8552.6797 L
--7869.1782 8552.6797 L
--7869.1782 8553.0322 -7867.5986 8553.4268 -7865.3311 8553.4268 c
--7863.063 8553.4268 -7861.4834 8553.0322 -7861.4834 8552.6797 C
--7861.4282 8552.6797 L
--7861.4282 8552.5586 L
--7861.4561 8552.5625 -7861.4814 8552.5674 -7861.5098 8552.5713 c
--7861.873 8552.6221 -7862.2622 8552.666 -7862.6714 8552.7021 c
-f
--7865.3311 8553.5615 m
--7867.041 8553.5615 -7868.8442 8553.3184 -7869.2344 8552.8652 C
--7869.2344 8553.0898 L
--7869.1782 8553.0898 L
--7869.1782 8553.4424 -7867.5986 8553.8359 -7865.3311 8553.8359 c
--7863.063 8553.8359 -7861.4834 8553.4424 -7861.4834 8553.0898 C
--7861.4282 8553.0898 L
--7861.4282 8552.8652 L
--7861.8174 8553.3184 -7863.6201 8553.5615 -7865.3311 8553.5615 c
-f
--7865.3311 8563.3896 m
--7867.041 8563.3896 -7868.8442 8563.1475 -7869.2344 8562.6934 C
--7869.2344 8563.0381 L
--7869.2344 8563.0947 -7869.2065 8563.1494 -7869.1553 8563.2021 c
--7869.1025 8563.2549 -7869.0264 8563.3057 -7868.9263 8563.3545 c
--7868.8281 8563.4033 -7868.708 8563.4492 -7868.5674 8563.4922 c
--7868.4272 8563.5352 -7868.2666 8563.5752 -7868.0913 8563.6123 c
--7867.9146 8563.6484 -7867.7207 8563.6826 -7867.5127 8563.7119 c
--7867.3057 8563.7402 -7867.083 8563.7656 -7866.8496 8563.7861 c
--7866.6162 8563.8066 -7866.3711 8563.8232 -7866.1167 8563.833 c
--7865.8633 8563.8438 -7865.6006 8563.8496 -7865.3311 8563.8496 c
--7865.0615 8563.8496 -7864.7974 8563.8438 -7864.5439 8563.833 c
--7864.29 8563.8232 -7864.0449 8563.8066 -7863.811 8563.7861 c
--7863.5786 8563.7656 -7863.3569 8563.7402 -7863.1489 8563.7119 c
--7862.9414 8563.6826 -7862.7471 8563.6484 -7862.5713 8563.6123 c
--7862.3945 8563.5752 -7862.2344 8563.5352 -7862.0942 8563.4922 c
--7861.9546 8563.4492 -7861.834 8563.4033 -7861.7344 8563.3545 c
--7861.6362 8563.3057 -7861.5586 8563.2549 -7861.5073 8563.2021 c
--7861.4551 8563.1494 -7861.4282 8563.0947 -7861.4282 8563.0381 C
--7861.4282 8562.6934 L
--7861.8174 8563.1475 -7863.6201 8563.3896 -7865.3311 8563.3896 c
-f
--7869.1782 8562.5088 m
--7869.1782 8562.8613 -7867.5986 8563.2549 -7865.3311 8563.2549 c
--7863.063 8563.2549 -7861.4834 8562.8613 -7861.4834 8562.5088 C
--7861.4282 8562.5088 L
--7861.4282 8562.2842 L
--7861.8174 8562.7373 -7863.6201 8562.9805 -7865.3311 8562.9805 c
--7867.041 8562.9805 -7868.8442 8562.7373 -7869.2344 8562.2842 C
--7869.2344 8562.5088 L
--7869.1782 8562.5088 L
-f
-0.15 g
--7865.3311 8553.4268 m
--7867.5986 8553.4268 -7869.1782 8553.0322 -7869.1782 8552.6797 C
--7869.2344 8552.6797 L
--7869.3135 8552.6797 L
--7869.3135 8552.7451 -7869.2842 8552.8066 -7869.2344 8552.8652 c
--7868.8442 8553.3184 -7867.041 8553.5615 -7865.3311 8553.5615 c
--7863.6201 8553.5615 -7861.8174 8553.3184 -7861.4282 8552.8652 c
--7861.3774 8552.8066 -7861.3481 8552.7451 -7861.3481 8552.6797 C
--7861.4282 8552.6797 L
--7861.4834 8552.6797 L
--7861.4834 8553.0322 -7863.063 8553.4268 -7865.3311 8553.4268 c
-f
--7865.3311 8553.8359 m
--7867.5986 8553.8359 -7869.1782 8553.4424 -7869.1782 8553.0898 C
--7869.2344 8553.0898 L
--7869.3135 8553.0898 L
--7869.3135 8553.1543 -7869.2842 8553.2158 -7869.2344 8553.2744 c
--7868.8442 8553.7285 -7867.041 8553.9717 -7865.3311 8553.9717 c
--7863.6201 8553.9717 -7861.8174 8553.7285 -7861.4282 8553.2744 c
--7861.3774 8553.2158 -7861.3481 8553.1543 -7861.3481 8553.0898 C
--7861.4282 8553.0898 L
--7861.4834 8553.0898 L
--7861.4834 8553.4424 -7863.063 8553.8359 -7865.3311 8553.8359 c
-f
--7865.3311 8554.2451 m
--7867.5986 8554.2451 -7869.1782 8553.8516 -7869.1782 8553.499 C
--7869.2344 8553.499 L
--7869.3135 8553.499 L
--7869.3135 8553.5645 -7869.2842 8553.626 -7869.2344 8553.6846 c
--7868.8442 8554.1377 -7867.041 8554.3799 -7865.3311 8554.3799 c
--7863.6201 8554.3799 -7861.8174 8554.1377 -7861.4282 8553.6846 c
--7861.3774 8553.626 -7861.3481 8553.5645 -7861.3481 8553.499 C
--7861.4282 8553.499 L
--7861.4834 8553.499 L
--7861.4834 8553.8516 -7863.063 8554.2451 -7865.3311 8554.2451 c
-f
--7865.3311 8554.6553 m
--7867.5986 8554.6553 -7869.1782 8554.2617 -7869.1782 8553.9092 C
--7869.2344 8553.9092 L
--7869.3135 8553.9092 L
--7869.3135 8553.9736 -7869.2842 8554.0361 -7869.2344 8554.0938 c
--7868.8442 8554.5479 -7867.041 8554.79 -7865.3311 8554.79 c
--7863.6201 8554.79 -7861.8174 8554.5479 -7861.4282 8554.0938 c
--7861.3774 8554.0361 -7861.3481 8553.9736 -7861.3481 8553.9092 C
--7861.4282 8553.9092 L
--7861.4834 8553.9092 L
--7861.4834 8554.2617 -7863.063 8554.6553 -7865.3311 8554.6553 c
-f
--7865.3311 8555.0645 m
--7867.5986 8555.0645 -7869.1782 8554.6709 -7869.1782 8554.3184 C
--7869.2344 8554.3184 L
--7869.3135 8554.3184 L
--7869.3135 8554.3838 -7869.2842 8554.4443 -7869.2344 8554.5029 c
--7868.8442 8554.9561 -7867.041 8555.1992 -7865.3311 8555.1992 c
--7863.6201 8555.1992 -7861.8174 8554.9561 -7861.4282 8554.5029 c
--7861.3774 8554.4443 -7861.3481 8554.3838 -7861.3481 8554.3184 C
--7861.4282 8554.3184 L
--7861.4834 8554.3184 L
--7861.4834 8554.6709 -7863.063 8555.0645 -7865.3311 8555.0645 c
-f
--7865.3311 8555.4746 m
--7867.5986 8555.4746 -7869.1782 8555.0811 -7869.1782 8554.7275 C
--7869.2344 8554.7275 L
--7869.3135 8554.7275 L
--7869.3135 8554.793 -7869.2842 8554.8545 -7869.2344 8554.9131 c
--7868.8442 8555.3662 -7867.041 8555.6094 -7865.3311 8555.6094 c
--7863.6201 8555.6094 -7861.8174 8555.3662 -7861.4282 8554.9131 c
--7861.3774 8554.8545 -7861.3481 8554.793 -7861.3481 8554.7275 C
--7861.4282 8554.7275 L
--7861.4834 8554.7275 L
--7861.4834 8555.0811 -7863.063 8555.4746 -7865.3311 8555.4746 c
-f
--7865.3311 8555.8838 m
--7867.5986 8555.8838 -7869.1782 8555.4902 -7869.1782 8555.1367 C
--7869.2344 8555.1367 L
--7869.3135 8555.1367 L
--7869.3135 8555.2021 -7869.2842 8555.2637 -7869.2344 8555.3223 c
--7868.8442 8555.7764 -7867.041 8556.0186 -7865.3311 8556.0186 c
--7863.6201 8556.0186 -7861.8174 8555.7764 -7861.4282 8555.3223 c
--7861.3774 8555.2637 -7861.3481 8555.2021 -7861.3481 8555.1367 C
--7861.4282 8555.1367 L
--7861.4834 8555.1367 L
--7861.4834 8555.4902 -7863.063 8555.8838 -7865.3311 8555.8838 c
-f
--7865.3311 8556.293 m
--7867.5986 8556.293 -7869.1782 8555.8994 -7869.1782 8555.5469 C
--7869.2344 8555.5469 L
--7869.3135 8555.5469 L
--7869.3135 8555.6123 -7869.2842 8555.6738 -7869.2344 8555.7324 c
--7868.8442 8556.1855 -7867.041 8556.4287 -7865.3311 8556.4287 c
--7863.6201 8556.4287 -7861.8174 8556.1855 -7861.4282 8555.7324 c
--7861.3774 8555.6738 -7861.3481 8555.6123 -7861.3481 8555.5469 C
--7861.4282 8555.5469 L
--7861.4834 8555.5469 L
--7861.4834 8555.8994 -7863.063 8556.293 -7865.3311 8556.293 c
-f
--7865.3311 8556.7021 m
--7867.5986 8556.7021 -7869.1782 8556.3096 -7869.1782 8555.9561 C
--7869.2344 8555.9561 L
--7869.3135 8555.9561 L
--7869.3135 8556.0215 -7869.2842 8556.083 -7869.2344 8556.1416 c
--7868.8442 8556.5947 -7867.041 8556.8379 -7865.3311 8556.8379 c
--7863.6201 8556.8379 -7861.8174 8556.5947 -7861.4282 8556.1416 c
--7861.3774 8556.083 -7861.3481 8556.0215 -7861.3481 8555.9561 C
--7861.4282 8555.9561 L
--7861.4834 8555.9561 L
--7861.4834 8556.3096 -7863.063 8556.7021 -7865.3311 8556.7021 c
-f
--7865.3311 8557.1123 m
--7867.5986 8557.1123 -7869.1782 8556.7188 -7869.1782 8556.3652 C
--7869.2344 8556.3652 L
--7869.3135 8556.3652 L
--7869.3135 8556.4307 -7869.2842 8556.4922 -7869.2344 8556.5508 c
--7868.8442 8557.0039 -7867.041 8557.2471 -7865.3311 8557.2471 c
--7863.6201 8557.2471 -7861.8174 8557.0039 -7861.4282 8556.5508 c
--7861.3774 8556.4922 -7861.3481 8556.4307 -7861.3481 8556.3652 C
--7861.4282 8556.3652 L
--7861.4834 8556.3652 L
--7861.4834 8556.7188 -7863.063 8557.1123 -7865.3311 8557.1123 c
-f
--7865.3311 8557.5225 m
--7867.5986 8557.5225 -7869.1782 8557.1279 -7869.1782 8556.7754 C
--7869.2344 8556.7754 L
--7869.3135 8556.7754 L
--7869.3135 8556.8408 -7869.2842 8556.9023 -7869.2344 8556.96 c
--7868.8442 8557.4141 -7867.041 8557.6572 -7865.3311 8557.6572 c
--7863.6201 8557.6572 -7861.8174 8557.4141 -7861.4282 8556.96 c
--7861.3774 8556.9023 -7861.3481 8556.8408 -7861.3481 8556.7754 C
--7861.4282 8556.7754 L
--7861.4834 8556.7754 L
--7861.4834 8557.1279 -7863.063 8557.5225 -7865.3311 8557.5225 c
-f
--7865.3311 8557.9307 m
--7867.5986 8557.9307 -7869.1782 8557.5381 -7869.1782 8557.1846 C
--7869.2344 8557.1846 L
--7869.3135 8557.1846 L
--7869.3135 8557.25 -7869.2842 8557.3115 -7869.2344 8557.3701 c
--7868.8442 8557.8232 -7867.041 8558.0664 -7865.3311 8558.0664 c
--7863.6201 8558.0664 -7861.8174 8557.8232 -7861.4282 8557.3701 c
--7861.3774 8557.3115 -7861.3481 8557.25 -7861.3481 8557.1846 C
--7861.4282 8557.1846 L
--7861.4834 8557.1846 L
--7861.4834 8557.5381 -7863.063 8557.9307 -7865.3311 8557.9307 c
-f
--7865.3311 8558.3408 m
--7867.5986 8558.3408 -7869.1782 8557.9473 -7869.1782 8557.5947 C
--7869.2344 8557.5947 L
--7869.3135 8557.5947 L
--7869.3135 8557.6592 -7869.2842 8557.7217 -7869.2344 8557.7793 c
--7868.8442 8558.2334 -7867.041 8558.4756 -7865.3311 8558.4756 c
--7863.6201 8558.4756 -7861.8174 8558.2334 -7861.4282 8557.7793 c
--7861.3774 8557.7217 -7861.3481 8557.6592 -7861.3481 8557.5947 C
--7861.4282 8557.5947 L
--7861.4834 8557.5947 L
--7861.4834 8557.9473 -7863.063 8558.3408 -7865.3311 8558.3408 c
-f
--7865.3311 8558.75 m
--7867.5986 8558.75 -7869.1782 8558.3564 -7869.1782 8558.0039 C
--7869.2344 8558.0039 L
--7869.3135 8558.0039 L
--7869.3135 8558.0693 -7869.2842 8558.1309 -7869.2344 8558.1885 c
--7868.8442 8558.6426 -7867.041 8558.8857 -7865.3311 8558.8857 c
--7863.6201 8558.8857 -7861.8174 8558.6426 -7861.4282 8558.1885 c
--7861.3774 8558.1309 -7861.3481 8558.0693 -7861.3481 8558.0039 C
--7861.4282 8558.0039 L
--7861.4834 8558.0039 L
--7861.4834 8558.3564 -7863.063 8558.75 -7865.3311 8558.75 c
-f
--7865.3311 8559.1602 m
--7867.5986 8559.1602 -7869.1782 8558.7666 -7869.1782 8558.4131 C
--7869.2344 8558.4131 L
--7869.3135 8558.4131 L
--7869.3135 8558.4785 -7869.2842 8558.54 -7869.2344 8558.5986 c
--7868.8442 8559.0518 -7867.041 8559.2949 -7865.3311 8559.2949 c
--7863.6201 8559.2949 -7861.8174 8559.0518 -7861.4282 8558.5986 c
--7861.3774 8558.54 -7861.3481 8558.4785 -7861.3481 8558.4131 C
--7861.4282 8558.4131 L
--7861.4834 8558.4131 L
--7861.4834 8558.7666 -7863.063 8559.1602 -7865.3311 8559.1602 c
-f
--7865.3311 8559.5693 m
--7867.5986 8559.5693 -7869.1782 8559.1758 -7869.1782 8558.8232 C
--7869.2344 8558.8232 L
--7869.3135 8558.8232 L
--7869.3135 8558.8877 -7869.2842 8558.9502 -7869.2344 8559.0078 c
--7868.8442 8559.4619 -7867.041 8559.7041 -7865.3311 8559.7041 c
--7863.6201 8559.7041 -7861.8174 8559.4619 -7861.4282 8559.0078 c
--7861.3774 8558.9502 -7861.3481 8558.8877 -7861.3481 8558.8232 C
--7861.4282 8558.8232 L
--7861.4834 8558.8232 L
--7861.4834 8559.1758 -7863.063 8559.5693 -7865.3311 8559.5693 c
-f
--7865.3311 8559.9795 m
--7867.5986 8559.9795 -7869.1782 8559.585 -7869.1782 8559.2324 C
--7869.2344 8559.2324 L
--7869.3135 8559.2324 L
--7869.3135 8559.2979 -7869.2842 8559.3594 -7869.2344 8559.418 c
--7868.8442 8559.8711 -7867.041 8560.1143 -7865.3311 8560.1143 c
--7863.6201 8560.1143 -7861.8174 8559.8711 -7861.4282 8559.418 c
--7861.3774 8559.3594 -7861.3481 8559.2979 -7861.3481 8559.2324 C
--7861.4282 8559.2324 L
--7861.4834 8559.2324 L
--7861.4834 8559.585 -7863.063 8559.9795 -7865.3311 8559.9795 c
-f
--7865.3311 8560.3887 m
--7867.5986 8560.3887 -7869.1782 8559.9951 -7869.1782 8559.6416 C
--7869.2344 8559.6416 L
--7869.3135 8559.6416 L
--7869.3135 8559.707 -7869.2842 8559.7686 -7869.2344 8559.8271 c
--7868.8442 8560.2803 -7867.041 8560.5234 -7865.3311 8560.5234 c
--7863.6201 8560.5234 -7861.8174 8560.2803 -7861.4282 8559.8271 c
--7861.3774 8559.7686 -7861.3481 8559.707 -7861.3481 8559.6416 C
--7861.4282 8559.6416 L
--7861.4834 8559.6416 L
--7861.4834 8559.9951 -7863.063 8560.3887 -7865.3311 8560.3887 c
-f
--7865.3311 8560.7979 m
--7867.5986 8560.7979 -7869.1782 8560.4043 -7869.1782 8560.0518 C
--7869.2344 8560.0518 L
--7869.3135 8560.0518 L
--7869.3135 8560.1162 -7869.2842 8560.1787 -7869.2344 8560.2373 c
--7868.8442 8560.6904 -7867.041 8560.9326 -7865.3311 8560.9326 c
--7863.6201 8560.9326 -7861.8174 8560.6904 -7861.4282 8560.2373 c
--7861.3774 8560.1787 -7861.3481 8560.1162 -7861.3481 8560.0518 C
--7861.4282 8560.0518 L
--7861.4834 8560.0518 L
--7861.4834 8560.4043 -7863.063 8560.7979 -7865.3311 8560.7979 c
-f
--7865.3311 8561.208 m
--7867.5986 8561.208 -7869.1782 8560.8135 -7869.1782 8560.4609 C
--7869.2344 8560.4609 L
--7869.3135 8560.4609 L
--7869.3135 8560.5264 -7869.2842 8560.5879 -7869.2344 8560.6465 c
--7868.8442 8561.0996 -7867.041 8561.3428 -7865.3311 8561.3428 c
--7863.6201 8561.3428 -7861.8174 8561.0996 -7861.4282 8560.6465 c
--7861.3774 8560.5879 -7861.3481 8560.5264 -7861.3481 8560.4609 C
--7861.4282 8560.4609 L
--7861.4834 8560.4609 L
--7861.4834 8560.8135 -7863.063 8561.208 -7865.3311 8561.208 c
-f
--7865.3311 8561.6172 m
--7867.5986 8561.6172 -7869.1782 8561.2236 -7869.1782 8560.8701 C
--7869.2344 8560.8701 L
--7869.3135 8560.8701 L
--7869.3135 8560.9355 -7869.2842 8560.9971 -7869.2344 8561.0557 c
--7868.8442 8561.5088 -7867.041 8561.752 -7865.3311 8561.752 c
--7863.6201 8561.752 -7861.8174 8561.5088 -7861.4282 8561.0557 c
--7861.3774 8560.9971 -7861.3481 8560.9355 -7861.3481 8560.8701 C
--7861.4282 8560.8701 L
--7861.4834 8560.8701 L
--7861.4834 8561.2236 -7863.063 8561.6172 -7865.3311 8561.6172 c
-f
--7865.3311 8562.0264 m
--7867.5986 8562.0264 -7869.1782 8561.6328 -7869.1782 8561.2803 C
--7869.2344 8561.2803 L
--7869.3135 8561.2803 L
--7869.3135 8561.3457 -7869.2842 8561.4072 -7869.2344 8561.4658 c
--7868.8442 8561.9189 -7867.041 8562.1611 -7865.3311 8562.1611 c
--7863.6201 8562.1611 -7861.8174 8561.9189 -7861.4282 8561.4658 c
--7861.3774 8561.4072 -7861.3481 8561.3457 -7861.3481 8561.2803 C
--7861.4282 8561.2803 L
--7861.4834 8561.2803 L
--7861.4834 8561.6328 -7863.063 8562.0264 -7865.3311 8562.0264 c
-f
--7865.3311 8562.4365 m
--7867.5986 8562.4365 -7869.1782 8562.043 -7869.1782 8561.6895 C
--7869.2344 8561.6895 L
--7869.3135 8561.6895 L
--7869.3135 8561.7549 -7869.2842 8561.8164 -7869.2344 8561.875 c
--7868.8442 8562.3281 -7867.041 8562.5713 -7865.3311 8562.5713 c
--7863.6201 8562.5713 -7861.8174 8562.3281 -7861.4282 8561.875 c
--7861.3774 8561.8164 -7861.3481 8561.7549 -7861.3481 8561.6895 C
--7861.4282 8561.6895 L
--7861.4834 8561.6895 L
--7861.4834 8562.043 -7863.063 8562.4365 -7865.3311 8562.4365 c
-f
--7865.3311 8562.8457 m
--7867.5986 8562.8457 -7869.1782 8562.4521 -7869.1782 8562.0986 C
--7869.2344 8562.0986 L
--7869.3135 8562.0986 L
--7869.3135 8562.1484 -7869.2935 8562.1953 -7869.2642 8562.2412 c
--7869.2554 8562.2559 -7869.2466 8562.2705 -7869.2344 8562.2842 c
--7868.8442 8562.7373 -7867.041 8562.9805 -7865.3311 8562.9805 c
--7863.6201 8562.9805 -7861.8174 8562.7373 -7861.4282 8562.2842 c
--7861.416 8562.2705 -7861.4072 8562.2559 -7861.3984 8562.2412 c
--7861.3682 8562.1953 -7861.3481 8562.1484 -7861.3481 8562.0986 C
--7861.4282 8562.0986 L
--7861.4834 8562.0986 L
--7861.4834 8562.4521 -7863.063 8562.8457 -7865.3311 8562.8457 c
-f
--7865.3311 8563.2549 m
--7867.5986 8563.2549 -7869.1782 8562.8613 -7869.1782 8562.5088 C
--7869.2344 8562.5088 L
--7869.3135 8562.5088 L
--7869.3135 8562.5732 -7869.2842 8562.6357 -7869.2344 8562.6934 c
--7868.8442 8563.1475 -7867.041 8563.3896 -7865.3311 8563.3896 c
--7863.6201 8563.3896 -7861.8174 8563.1475 -7861.4282 8562.6934 c
--7861.3774 8562.6357 -7861.3481 8562.5732 -7861.3481 8562.5088 C
--7861.4282 8562.5088 L
--7861.4834 8562.5088 L
--7861.4834 8562.8613 -7863.063 8563.2549 -7865.3311 8563.2549 c
-f
-0.67 g
--7858.6758 8549.9023 m
--7858.7646 8549.9814 -7858.8838 8550.0596 -7859.0342 8550.1328 c
--7859.0342 8550.1338 -7859.0352 8550.1338 -7859.0361 8550.1338 c
--7859.1226 8550.1768 -7859.2168 8550.2178 -7859.3218 8550.2568 c
--7859.3218 8550.2568 l
--7859.5313 8550.3369 -7859.7759 8550.4131 -7860.0527 8550.4824 c
--7860.0562 8550.4834 -7860.0591 8550.4844 -7860.0625 8550.4854 c
--7860.6152 8550.624 -7861.293 8550.7402 -7862.0591 8550.8271 c
--7862.0698 8550.8281 -7862.0786 8550.8291 -7862.0889 8550.8311 c
--7862.4639 8550.873 -7862.8608 8550.9082 -7863.2734 8550.9346 c
--7863.292 8550.9365 -7863.3086 8550.9375 -7863.3262 8550.9385 c
--7863.5176 8550.9502 -7863.7119 8550.9609 -7863.9102 8550.9697 c
--7863.9248 8550.9697 -7863.9385 8550.9717 -7863.9546 8550.9717 c
--7863.9678 8550.9727 -7863.9824 8550.9727 -7863.9966 8550.9736 c
--7864.2026 8550.9814 -7864.4111 8550.9883 -7864.6226 8550.9932 c
--7864.6279 8550.9932 -7864.6353 8550.9932 -7864.6416 8550.9932 c
--7864.8682 8550.998 -7865.0977 8551.001 -7865.3311 8551.001 c
--7865.563 8551.001 -7865.7935 8550.998 -7866.021 8550.9932 c
--7866.0264 8550.9932 -7866.0337 8550.9932 -7866.04 8550.9932 c
--7866.251 8550.9883 -7866.46 8550.9814 -7866.665 8550.9736 c
--7866.6782 8550.9727 -7866.6943 8550.9727 -7866.708 8550.9717 c
--7866.7231 8550.9717 -7866.7378 8550.9697 -7866.752 8550.9697 c
--7866.9502 8550.9609 -7867.1455 8550.9502 -7867.3369 8550.9385 c
--7867.3535 8550.9375 -7867.3706 8550.9365 -7867.3862 8550.9346 c
--7867.8008 8550.9082 -7868.1982 8550.873 -7868.5752 8550.8311 c
--7868.584 8550.8291 -7868.5918 8550.8291 -7868.6016 8550.8281 c
--7869.3682 8550.7402 -7870.0474 8550.624 -7870.6001 8550.4854 c
--7870.6025 8550.4844 -7870.6055 8550.4834 -7870.6079 8550.4824 c
--7871.0234 8550.3779 -7871.3672 8550.2607 -7871.626 8550.1338 c
--7871.6279 8550.1338 -7871.6279 8550.1328 v
--7871.7041 8550.0957 -7871.7729 8550.0566 -7871.833 8550.0176 c
--7871.979 8549.9238 -7872.0806 8549.8262 -7872.1294 8549.7256 c
--7872.1538 8549.6777 -7872.165 8549.6289 -7872.165 8549.5801 C
--7872.165 8551.3926 L
--7872.165 8551.4912 -7872.1167 8551.5869 -7872.0264 8551.6787 c
--7871.9351 8551.7715 -7871.8018 8551.8604 -7871.6279 8551.9463 c
--7871.4551 8552.0303 -7871.2441 8552.1123 -7870.998 8552.1875 c
--7870.752 8552.2627 -7870.4727 8552.333 -7870.1631 8552.3975 c
--7869.8774 8552.457 -7869.5654 8552.5107 -7869.2344 8552.5586 c
--7869.2065 8552.5625 -7869.1807 8552.5674 -7869.1519 8552.5713 c
--7868.7881 8552.6221 -7868.3999 8552.666 -7867.9912 8552.7021 c
--7867.582 8552.7383 -7867.1538 8552.7666 -7866.708 8552.7852 c
--7866.2642 8552.8037 -7865.8022 8552.8135 -7865.3311 8552.8135 c
--7864.8594 8552.8135 -7864.3984 8552.8037 -7863.9546 8552.7852 c
--7863.5088 8552.7666 -7863.0791 8552.7383 -7862.6714 8552.7021 c
--7862.2622 8552.666 -7861.873 8552.6221 -7861.5098 8552.5713 c
--7861.4814 8552.5674 -7861.4561 8552.5625 -7861.4282 8552.5586 c
--7861.0967 8552.5107 -7860.7842 8552.457 -7860.498 8552.3975 c
--7860.1895 8552.333 -7859.9087 8552.2627 -7859.6641 8552.1875 c
--7859.418 8552.1123 -7859.2065 8552.0303 -7859.0342 8551.9463 c
--7858.8608 8551.8604 -7858.7266 8551.7715 -7858.6362 8551.6787 c
--7858.5439 8551.5869 -7858.4966 8551.4912 -7858.4966 8551.3926 C
--7858.4966 8549.5801 L
--7858.4966 8549.6533 -7858.5234 8549.7256 -7858.5752 8549.7959 c
--7858.6016 8549.832 -7858.6362 8549.8672 -7858.6758 8549.9023 c
-f
-0.39 g
--7860.749 8548.5254 m
--7861.2017 8549.4326 -7861.8945 8549.8896 -7861.9287 8549.9111 C
--7861.9458 8549.9209 L
--7868.9648 8549.9209 L
--7868.9814 8549.7881 L
--7868.9746 8549.7861 -7868.269 8549.5869 -7867.5303 8548.2344 C
--7870.2256 8548.4248 -7872.165 8548.9551 -7872.165 8549.5801 c
--7872.165 8549.6289 -7872.1538 8549.6777 -7872.1294 8549.7256 c
--7872.0806 8549.8262 -7871.979 8549.9238 -7871.833 8550.0176 c
--7871.771 8550.0576 -7871.7031 8550.0957 -7871.626 8550.1338 c
--7871.3672 8550.2607 -7871.0234 8550.3779 -7870.6079 8550.4824 c
--7870.6055 8550.4834 -7870.6025 8550.4844 -7870.6001 8550.4854 c
--7870.0474 8550.624 -7869.3682 8550.7402 -7868.6016 8550.8281 c
--7868.5918 8550.8291 -7868.584 8550.8291 -7868.5752 8550.8311 c
--7868.1982 8550.873 -7867.8008 8550.9082 -7867.3862 8550.9346 c
--7867.3706 8550.9365 -7867.3535 8550.9375 -7867.3369 8550.9385 c
--7867.1455 8550.9502 -7866.9502 8550.9609 -7866.752 8550.9697 c
--7866.7222 8550.9707 -7866.6943 8550.9717 -7866.665 8550.9736 c
--7866.46 8550.9814 -7866.251 8550.9883 -7866.04 8550.9932 c
--7866.0337 8550.9932 -7866.0264 8550.9932 -7866.021 8550.9932 c
--7865.7935 8550.998 -7865.563 8551.001 -7865.3311 8551.001 c
--7865.0977 8551.001 -7864.8682 8550.998 -7864.6416 8550.9932 c
--7864.6353 8550.9932 -7864.6279 8550.9932 -7864.6226 8550.9932 c
--7864.4111 8550.9883 -7864.2026 8550.9814 -7863.9966 8550.9736 c
--7863.9678 8550.9717 -7863.9385 8550.9707 -7863.9102 8550.9697 c
--7863.7119 8550.9609 -7863.5176 8550.9502 -7863.3262 8550.9385 c
--7863.3086 8550.9375 -7863.292 8550.9365 -7863.2734 8550.9346 c
--7862.8608 8550.9082 -7862.4639 8550.873 -7862.0889 8550.8311 c
--7862.0786 8550.8291 -7862.0698 8550.8281 -7862.0591 8550.8271 c
--7861.293 8550.7402 -7860.6152 8550.624 -7860.0625 8550.4854 c
--7860.0591 8550.4844 -7860.0562 8550.4834 -7860.0527 8550.4824 c
--7859.7759 8550.4131 -7859.5313 8550.3369 -7859.3218 8550.2568 C
--7859.3218 8550.2568 L
--7859.2168 8550.2178 -7859.1226 8550.1768 -7859.0361 8550.1338 c
--7858.8848 8550.0596 -7858.7646 8549.9824 -7858.6758 8549.9023 c
--7858.6362 8549.8672 -7858.6016 8549.832 -7858.5752 8549.7959 c
--7858.5234 8549.7256 -7858.4966 8549.6533 -7858.4966 8549.5801 c
--7858.4966 8549.1611 -7859.3662 8548.7861 -7860.749 8548.5254 C
-f
-*u
-1 g
--7868.6729 8549.7861 m
--7868.1362 8549.7861 -7862.0264 8549.7861 -7861.9863 8549.7861 C
--7861.9033 8549.7305 -7861.0566 8549.1357 -7860.6826 8548.0156 c
--7860.6118 8547.8037 -7860.5874 8547.5654 -7860.5874 8547.3086 c
--7860.5874 8546.9463 -7860.6382 8546.5459 -7860.6929 8546.1328 c
--7860.751 8545.6885 -7860.813 8545.2168 -7860.813 8544.749 c
--7860.813 8544.1709 -7860.7178 8543.5986 -7860.4072 8543.0879 c
--7859.7178 8541.9551 -7859.019 8541.4033 -7858.6768 8541.1787 C
--7859.1343 8541.1787 -7865.3706 8541.1738 Y
--7865.3882 8541.1807 -7867.0806 8541.9609 -7867.2144 8543.5332 c
--7867.2256 8543.6553 -7867.2305 8543.7744 -7867.2305 8543.8926 c
--7867.2305 8544.3721 -7867.1543 8544.8252 -7867.0801 8545.2666 c
--7867.0063 8545.7021 -7866.9351 8546.127 -7866.9351 8546.5615 c
--7866.9351 8547.041 -7867.0225 8547.5332 -7867.2886 8548.0674 c
--7867.8271 8549.1416 -7868.3599 8549.5967 -7868.6729 8549.7861 C
-f
-1 D
--7862.2344 8548.8447 m
--7866.7441 8548.8447 L
--7866.7441 8548.71 L
--7862.2344 8548.71 L
--7862.2344 8548.8447 L
-f
--7861.6958 8544.6045 m
--7866.1377 8544.6045 L
--7866.1377 8544.4697 L
--7861.6958 8544.4697 L
--7861.6958 8544.6045 L
-f
-0 D
--7861.4946 8546.1523 m
--7861.4946 8546.2871 L
--7866.0034 8546.2871 L
--7866.0034 8546.1523 L
--7861.4946 8546.1523 L
-f
--7866.0713 8545.4785 m
--7861.9658 8545.4785 L
--7861.9658 8545.6133 L
--7866.0713 8545.6133 L
--7866.0713 8545.4785 L
-f
-1 D
--7866.0034 8547.0947 m
--7861.5615 8547.0947 L
--7861.5615 8547.2295 L
--7866.0034 8547.2295 L
--7866.0034 8547.0947 L
-f
--7865.3311 8541.7764 m
--7860.6865 8541.7764 L
--7860.6865 8541.9121 L
--7865.3311 8541.9121 L
--7865.3311 8541.7764 L
-f
--7865.8018 8542.3154 m
--7862.1006 8542.3154 L
--7862.1006 8542.4502 L
--7865.8018 8542.4502 L
--7865.8018 8542.3154 L
-f
--7866.1377 8543.0557 m
--7861.4272 8543.0557 L
--7861.4272 8543.1904 L
--7866.1377 8543.1904 L
--7866.1377 8543.0557 L
-f
--7866.2729 8543.7959 m
--7861.5615 8543.7959 L
--7861.5615 8543.9307 L
--7866.2729 8543.9307 L
--7866.2729 8543.7959 L
-f
-0 D
--7866.2729 8547.9014 m
--7861.8975 8547.9014 L
--7861.8975 8548.0371 L
--7866.2729 8548.0371 L
--7866.2729 8547.9014 L
-f
-*U
-*u
-0 g
--7868.9814 8549.7881 m
--7868.9648 8549.9209 L
--7861.9458 8549.9209 L
--7861.9287 8549.9111 L
--7861.8945 8549.8896 -7861.2017 8549.4326 -7860.749 8548.5254 c
--7860.6768 8548.3809 -7860.6104 8548.2256 -7860.5542 8548.0576 c
--7860.376 8547.5195 -7860.4639 8546.8379 -7860.5586 8546.1152 c
--7860.6929 8545.0957 -7860.8286 8544.041 -7860.292 8543.1582 c
--7859.373 8541.6484 -7858.4111 8541.1777 -7858.4014 8541.1729 C
--7858.4302 8541.0439 L
--7865.3975 8541.0439 L
--7865.4434 8541.0586 -7867.208 8541.8691 -7867.3496 8543.5215 c
--7867.4038 8544.1533 -7867.3066 8544.7305 -7867.2134 8545.2881 c
--7867.063 8546.1836 -7866.9209 8547.0283 -7867.4102 8548.0068 c
--7867.4502 8548.0869 -7867.4902 8548.1611 -7867.5303 8548.2344 c
--7868.269 8549.5869 -7868.9746 8549.7861 -7868.9814 8549.7881 C
-f
-1 D
--7866.9351 8546.5615 m
--7866.9351 8546.127 -7867.0063 8545.7021 -7867.0801 8545.2666 c
--7867.1543 8544.8252 -7867.2305 8544.3721 -7867.2305 8543.8926 c
--7867.2305 8543.7744 -7867.2256 8543.6553 -7867.2144 8543.5332 c
--7867.0806 8541.9609 -7865.3882 8541.1807 -7865.3706 8541.1738 C
--7859.1343 8541.1787 -7858.6768 8541.1787 V
--7859.019 8541.4033 -7859.7178 8541.9551 -7860.4072 8543.0879 c
--7860.7178 8543.5986 -7860.813 8544.1709 -7860.813 8544.749 c
--7860.813 8545.2168 -7860.751 8545.6885 -7860.6929 8546.1328 c
--7860.6382 8546.5459 -7860.5874 8546.9463 -7860.5874 8547.3086 c
--7860.5874 8547.5654 -7860.6118 8547.8037 -7860.6826 8548.0156 c
--7861.0566 8549.1357 -7861.9033 8549.7305 -7861.9863 8549.7861 C
--7862.0264 8549.7861 -7868.1362 8549.7861 -7868.6729 8549.7861 C
--7868.3599 8549.5967 -7867.8271 8549.1416 -7867.2886 8548.0674 c
--7867.0225 8547.5332 -7866.9351 8547.041 -7866.9351 8546.5615 c
-f
-*U
-0 D
--7860.6865 8541.7764 m
--7865.3311 8541.7764 L
--7865.3311 8541.9121 L
--7860.6865 8541.9121 L
--7860.6865 8541.7764 L
-f
--7862.1006 8542.3154 m
--7865.8018 8542.3154 L
--7865.8018 8542.4502 L
--7862.1006 8542.4502 L
--7862.1006 8542.3154 L
-f
--7861.4272 8543.0557 m
--7866.1377 8543.0557 L
--7866.1377 8543.1904 L
--7861.4272 8543.1904 L
--7861.4272 8543.0557 L
-f
--7861.5615 8543.7959 m
--7866.2729 8543.7959 L
--7866.2729 8543.9307 L
--7861.5615 8543.9307 L
--7861.5615 8543.7959 L
-f
--7866.1377 8544.6045 m
--7861.6958 8544.6045 L
--7861.6958 8544.4697 L
--7866.1377 8544.4697 L
--7866.1377 8544.6045 L
-f
--7861.9658 8545.4785 m
--7866.0713 8545.4785 L
--7866.0713 8545.6133 L
--7861.9658 8545.6133 L
--7861.9658 8545.4785 L
-f
--7866.0034 8546.2871 m
--7861.4946 8546.2871 L
--7861.4946 8546.1523 L
--7866.0034 8546.1523 L
--7866.0034 8546.2871 L
-f
--7861.5615 8547.0947 m
--7866.0034 8547.0947 L
--7866.0034 8547.2295 L
--7861.5615 8547.2295 L
--7861.5615 8547.0947 L
-f
--7861.8975 8547.9014 m
--7866.2729 8547.9014 L
--7866.2729 8548.0371 L
--7861.8975 8548.0371 L
--7861.8975 8547.9014 L
-f
--7866.7441 8548.8447 m
--7862.2344 8548.8447 L
--7862.2344 8548.71 L
--7866.7441 8548.71 L
--7866.7441 8548.8447 L
-f
-U
-U
-U
-0 To
-1 0 0 -1 -7864.4927 8576.5957 0 Tp
-0 Tv
-TP
--11.5064 0 Td
-0 Tr
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Spool) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI5_End_NonPrinting--
-%AI5_BeginPalette
-0 0 Pb
-1 1 1 1 ([Registration]) 0 Xs
-([Registration]) Pc
-0 0 0 0.15 (15%) 0 0 Xk
-(15%) Pc
-0 0 0 0.3 (30%) 0 0 Xk
-(30%) Pc
-0 0 0 0.5 (50%) 0 0 Xk
-(50%) Pc
-0 0 0 0.75 (75%) 0 0 Xk
-(75%) Pc
-(horizontal rules) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(horizontal rules) Pc
-(bi-direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(bi-direction diagonals) Pc
-(one direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(one direction diagonals) Pc
-(white dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(white dots) Pc
-(black dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(black dots) Pc
-PB
-%AI5_EndPalette
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginPluginObject
-(Adobe Brush Manager Order)
-(Adobe Brush Manager Order)
-( Adobe Scatter Brush Tool/ Print spooler/ Adobe Scatter Brush Tool/ Pr) -
-(inter/ Adobe Scatter Brush Tool/ Client 1/ Adobe Scatter Brush Tool/ F) -
-(ile Server/) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client 1)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(File Server)
-(1 /New Pattern 21/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Print spooler)
-(1 /New Pattern 42/ 0 1 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Printer)
-(1 /New Pattern 10/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_PluginGroupInfo
-(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends)
-%AI8_PluginGroupInfo
-(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool)
-%AI5_End_NonPrinting--
-%%EndSetup
-%AI5_BeginLayer
-1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
-(Layer 1) Ln
-0 A
-0 R
-0 G
-800 Ar
-0 J 0 j 0.5 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-194.0713 301.835 m
-197.3433 301.833 200.6157 301.9365 203.8794 302.1709 c
-208.9277 302.5342 213.9385 303.2334 218.9448 303.96 c
-226.5107 305.0596 265.4395 308.9443 273.3052 307.7568 c
-273.0552 307.7939 396.9258 296.8955 409.877 309.8467 C
-S
-0 To
-1 0 0 1 178.9067 526.6191 0 Tp
-0 Tv
-TP
--12.7793 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
--20 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
--0.18 Tc
-0 Tw
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_1 g
-%_0 R
-%_0.67 G
-%_1 M
-%_187.7012 503.2959 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-1 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-187.7012 503.2959 m
-F
-u
-0.8 g
-201.4326 494.2217 m
-221.4771 501.0791 l
-219.897 503.9805 l
-207.2358 500.0244 l
-201.1694 503.9805 l
-201.4326 494.2217 l
-f
-0 R
-0.9 G
-0.5 w
-220.1689 504.1064 m
-207.2358 500.0244 l
-S
-0.5 G
-221.4771 501.0791 m
-219.897 503.9805 l
-S
-0.25 G
-201.4326 494.2217 m
-221.4771 501.0791 l
-S
-0.5 G
-207.2358 500.0244 m
-201.1694 503.9805 l
-S
-0 O
-0.8 g
-1 w
-181.3882 511.6309 m
-193.519 516.9053 l
-196.9487 512.6865 l
-181.3882 511.6309 l
-f
-1 Ap
-0.57 g
-201.6963 492.376 m
-155.2759 492.376 L
-155.2759 489.4756 L
-201.6963 489.4756 L
-201.6963 492.376 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-193.519 516.9053 m
-196.9487 512.6865 l
-S
-0.9 G
-181.3882 511.6309 m
-194.0811 517.1826 l
-S
-0 O
-0.8 g
-1 w
-153.9551 513.668 m
-153.9551 492.3447 l
-202.7515 492.3447 l
-202.7515 509.5186 l
-199.3223 513.6084 l
-153.9551 513.668 l
-f
-0 R
-0.5 G
-0.5 w
-153.9551 497.9141 m
-202.7515 497.9141 l
-S
-156.8574 510.3115 m
-166.3535 510.3115 l
-S
-156.8574 508.6631 m
-166.3535 508.6631 l
-S
-156.8574 507.0156 m
-166.3535 507.0156 l
-S
-156.8574 505.3672 m
-166.3535 505.3672 l
-S
-156.8574 503.7197 m
-166.3535 503.7197 l
-S
-202.7515 509.5186 m
-199.3223 513.6084 l
-S
-0.25 G
-153.9551 492.3447 m
-202.7515 492.3447 l
-202.7515 509.5186 l
-S
-0.9 G
-199.3223 513.6377 m
-153.9551 513.6377 l
-153.9551 492.0752 l
-S
-0.25 G
-201.6963 492.3447 m
-201.6963 489.4307 l
-155.2847 489.4307 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000007995072696E746572
-/Adobe_Brushed_Path () XT
-1 Ap
-0 O
-0.99 g
-201.5142 493.9092 m
-189.7397 493.9092 L
-189.7397 496.7178 L
-201.5142 496.7178 L
-201.5142 493.9092 L
-b
-0 Ap
-0 G
-193.917 495.4238 m
-197.189 495.4229 200.4614 495.5264 203.7251 495.7607 c
-208.7734 496.123 213.7842 496.8223 218.7905 497.5498 c
-226.356 498.6494 248.2603 502.5342 256.1255 501.3457 c
-266.688 499.75 299.4917 492.1152 310.8125 503.4355 C
-S
-u
-%_0 O
-%_0 g
-%_1 w 1 M
-%_316.3848 505.874 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-316.3848 505.874 m
-F
-u
-u
-u
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
-339.3555 488.3164 m
-339.3555 490.3359 l
-332.9941 493.7686 l
-316.4414 493.7686 L
-299.8892 493.7686 l
-293.3267 490.3359 l
-293.3267 488.3164 l
-339.3555 488.3164 l
-b
-0.8748 G
-2 J 0 j
-316.4414 493.7686 m
-299.8892 493.7686 l
-293.3267 490.3359 l
-293.3267 488.3164 l
-S
-339.3555 490.3359 m
-332.9941 493.7686 l
-316.4414 493.7686 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-299.9888 492.5566 m
-295.9507 490.3359 l
-336.5273 490.3359 l
-333.0957 492.5566 l
-299.9888 492.5566 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-305.2031 496.6641 m
-307.4805 496.707 L
-316.582 498.2754 L
-325.8633 496.707 L
-327.6582 496.707 L
-327.5977 494.8652 L
-305.2031 494.8652 L
-305.2031 496.6641 L
-f
-0 R
-0.25 G
-0.5 w
-327.6289 496.6641 m
-327.5371 494.8652 L
-305.1699 494.8652 L
-S
-0.9 G
-325.8301 496.6641 m
-327.6289 496.6641 L
-S
-0.25 G
-316.5234 498.2754 m
-325.8301 496.6641 L
-S
-0.9 G
-305.1699 494.8652 m
-305.1699 496.6641 L
-307.4238 496.6641 L
-316.5234 498.2754 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-302.9604 499.7383 m
-312.2578 499.7852 L
-316.6152 501.5117 L
-321.1934 499.7852 L
-329.9063 499.7852 L
-329.834 497.7607 L
-302.9604 497.7607 L
-302.9604 499.7383 L
-f
-0 R
-0.25 G
-0.5 w
-329.873 499.7383 m
-329.7617 497.7607 L
-302.9243 497.7607 L
-S
-0.9 G
-321.1523 499.7383 m
-329.873 499.7383 L
-S
-0.25 G
-316.5449 501.5117 m
-321.1523 499.7383 L
-S
-0.9 G
-302.9243 497.7607 m
-302.9243 499.7383 L
-312.1875 499.7383 L
-316.5449 501.5117 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-301.4438 500.5664 m
-301.436 522.4355 l
-302.4194 523.4316 L
-330.3965 523.4043 L
-331.3359 522.2656 L
-331.3359 500.8516 L
-330.5254 499.7119 L
-302.2915 499.7119 l
-301.4438 500.5664 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-302.2915 499.7119 m
-301.4438 500.5664 L
-301.436 522.4355 l
-302.4194 523.4316 L
-330.3965 523.4043 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-328.3027 502.5996 m
-328.3223 520.5547 L
-304.4277 520.5547 L
-304.4258 502.6016 L
-328.3027 502.5996 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-332.9941 493.7686 m
-316.4414 493.7686 L
-299.8892 493.7686 L
-293.3267 490.3359 L
-293.3267 488.3164 L
-339.3555 488.3164 L
-339.3555 490.3359 L
-332.9941 493.7686 L
-s
-302.2915 499.7119 m
-302.9243 499.7119 L
-302.9243 497.7607 L
-302.9604 497.7715 L
-302.9604 497.7637 L
-302.9243 497.7607 L
-302.9604 497.7607 L
-313.5957 497.7607 L
-307.4805 496.707 L
-305.2031 496.6641 L
-305.1699 496.6641 L
-305.1699 494.8652 L
-305.2031 494.875 L
-305.2031 494.8682 L
-305.1699 494.8652 L
-305.2031 494.8652 L
-327.5371 494.8652 L
-327.5977 494.8652 L
-327.6582 496.707 L
-325.8633 496.707 L
-319.627 497.7607 L
-329.7617 497.7607 L
-329.834 497.7607 L
-329.9043 499.7119 L
-330.5254 499.7119 L
-331.3359 500.8516 L
-331.3359 522.2656 L
-330.3965 523.4043 L
-302.4194 523.4316 L
-301.436 522.4355 L
-301.4438 500.5664 L
-302.2915 499.7119 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000002043436C69656E742031
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 317.4297 527.9204 0 Tp
-0 Tv
-TP
--6.2504 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(PC) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 245.729 542.0176 0 Tp
-0 Tv
-TP
--12.5009 0 Td
-0 Tr
-/_Helvetica-Bold 9 8.6581 -2.052 Tf
-(Client) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 179.0386 427.9668 0 Tp
-0 Tv
-TP
--12.7793 0 Td
-0 Tr
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
--20 Tt
-%_ -- XL
--0.18 Tc
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-u
-%_1 g
-%_0 R
-%_0.67 G
-%_1 M
-%_187.833 404.6426 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-1 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-187.833 404.6426 m
-F
-u
-0.8 g
-201.5645 395.5684 m
-221.6094 402.4258 l
-220.0288 405.3271 l
-207.3677 401.3711 l
-201.3013 405.3271 l
-201.5645 395.5684 l
-f
-0 R
-0.9 G
-0.5 w
-220.3008 405.4531 m
-207.3677 401.3711 l
-S
-0.5 G
-221.6094 402.4258 m
-220.0288 405.3271 l
-S
-0.25 G
-201.5645 395.5684 m
-221.6094 402.4258 l
-S
-0.5 G
-207.3677 401.3711 m
-201.3013 405.3271 l
-S
-0 O
-0.8 g
-1 w
-181.52 412.9775 m
-193.6509 418.252 l
-197.0806 414.0332 l
-181.52 412.9775 l
-f
-1 Ap
-0.57 g
-201.8281 393.7227 m
-155.4077 393.7227 L
-155.4077 390.8223 L
-201.8281 390.8223 L
-201.8281 393.7227 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-193.6509 418.252 m
-197.0806 414.0332 l
-S
-0.9 G
-181.52 412.9775 m
-194.2129 418.5293 l
-S
-0 O
-0.8 g
-1 w
-154.0869 415.0146 m
-154.0869 393.6914 l
-202.8833 393.6914 l
-202.8833 410.8652 l
-199.4541 414.9551 l
-154.0869 415.0146 l
-f
-0 R
-0.5 G
-0.5 w
-154.0869 399.2607 m
-202.8833 399.2607 l
-S
-156.9893 411.6582 m
-166.4854 411.6582 l
-S
-156.9893 410.0098 m
-166.4854 410.0098 l
-S
-156.9893 408.3623 m
-166.4854 408.3623 l
-S
-156.9893 406.7139 m
-166.4854 406.7139 l
-S
-156.9893 405.0664 m
-166.4854 405.0664 l
-S
-202.8833 410.8652 m
-199.4541 414.9551 l
-S
-0.25 G
-154.0869 393.6914 m
-202.8833 393.6914 l
-202.8833 410.8652 l
-S
-0.9 G
-199.4541 414.9844 m
-154.0869 414.9844 l
-154.0869 393.4219 l
-S
-0.25 G
-201.8281 393.6914 m
-201.8281 390.7773 l
-155.4165 390.7773 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000007995072696E746572
-/Adobe_Brushed_Path () XT
-1 Ap
-0 O
-0.99 g
-201.646 395.2559 m
-189.8716 395.2559 L
-189.8716 398.0645 L
-201.646 398.0645 L
-201.646 395.2559 L
-b
-0 Ap
-0 G
-194.0488 396.7715 m
-197.3208 396.7695 200.5933 396.873 203.8569 397.1074 c
-208.9053 397.4707 213.916 398.1699 218.9224 398.8965 c
-226.4883 399.9961 248.3921 403.8809 256.2573 402.6929 c
-266.8198 401.0972 330.748 393.4629 342.0684 404.7832 C
-S
-u
-%_0 O
-%_0 g
-%_1 w 1 M
-%_347.6406 407.2207 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-347.6406 407.2207 m
-F
-u
-u
-u
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
-370.6113 389.6631 m
-370.6113 391.6826 l
-364.25 395.1152 l
-347.6973 395.1152 L
-331.1445 395.1152 l
-324.582 391.6826 l
-324.582 389.6631 l
-370.6113 389.6631 l
-b
-0.8748 G
-2 J 0 j
-347.6973 395.1152 m
-331.1445 395.1152 l
-324.582 391.6826 l
-324.582 389.6631 l
-S
-370.6113 391.6826 m
-364.25 395.1152 l
-347.6973 395.1152 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-331.2441 393.9033 m
-327.2061 391.6826 l
-367.7832 391.6826 l
-364.3516 393.9033 l
-331.2441 393.9033 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-336.458 398.0107 m
-338.7363 398.0537 L
-347.8379 399.6221 L
-357.1191 398.0537 L
-358.9141 398.0537 L
-358.8535 396.2119 L
-336.458 396.2119 L
-336.458 398.0107 L
-f
-0 R
-0.25 G
-0.5 w
-358.8848 398.0107 m
-358.793 396.2119 L
-336.4258 396.2119 L
-S
-0.9 G
-357.085 398.0107 m
-358.8848 398.0107 L
-S
-0.25 G
-347.7793 399.6221 m
-357.085 398.0107 L
-S
-0.9 G
-336.4258 396.2119 m
-336.4258 398.0107 L
-338.6797 398.0107 L
-347.7793 399.6221 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-334.2158 401.085 m
-343.5127 401.1318 L
-347.8711 402.8584 L
-352.4492 401.1318 L
-361.1621 401.1318 L
-361.0898 399.1074 L
-334.2158 399.1074 L
-334.2158 401.085 L
-f
-0 R
-0.25 G
-0.5 w
-361.1289 401.085 m
-361.0176 399.1074 L
-334.1797 399.1074 L
-S
-0.9 G
-352.4072 401.085 m
-361.1289 401.085 L
-S
-0.25 G
-347.8008 402.8584 m
-352.4072 401.085 L
-S
-0.9 G
-334.1797 399.1074 m
-334.1797 401.085 L
-343.4424 401.085 L
-347.8008 402.8584 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-332.6992 401.9131 m
-332.6914 423.7822 l
-333.6748 424.7783 L
-361.6523 424.751 L
-362.5908 423.6123 L
-362.5908 402.1982 L
-361.7813 401.0586 L
-333.5469 401.0586 l
-332.6992 401.9131 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-333.5469 401.0586 m
-332.6992 401.9131 L
-332.6914 423.7822 l
-333.6748 424.7783 L
-361.6523 424.751 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-359.5586 403.9463 m
-359.5781 421.9014 L
-335.6836 421.9014 L
-335.6816 403.9482 L
-359.5586 403.9463 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-364.25 395.1152 m
-347.6973 395.1152 L
-331.1445 395.1152 L
-324.582 391.6826 L
-324.582 389.6631 L
-370.6113 389.6631 L
-370.6113 391.6826 L
-364.25 395.1152 L
-s
-333.5469 401.0586 m
-334.1797 401.0586 L
-334.1797 399.1074 L
-334.2158 399.1182 L
-334.2158 399.1104 L
-334.1797 399.1074 L
-334.2158 399.1074 L
-344.8516 399.1074 L
-338.7363 398.0537 L
-336.458 398.0107 L
-336.4258 398.0107 L
-336.4258 396.2119 L
-336.458 396.2217 L
-336.458 396.2148 L
-336.4258 396.2119 L
-336.458 396.2119 L
-358.793 396.2119 L
-358.8535 396.2119 L
-358.9141 398.0537 L
-357.1191 398.0537 L
-350.8828 399.1074 L
-361.0176 399.1074 L
-361.0898 399.1074 L
-361.1602 401.0586 L
-361.7813 401.0586 L
-362.5908 402.1982 L
-362.5908 423.6123 L
-361.6523 424.751 L
-333.6748 424.7783 L
-332.6914 423.7822 L
-332.6992 401.9131 L
-333.5469 401.0586 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000002043436C69656E742031
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 348.6855 430.2109 0 Tp
-0 Tv
-TP
--6.2504 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ -- XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(PC) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-0 To
-1 0 0 1 265.6528 451.4365 0 Tp
-0 Tv
-TP
--23.8037 0 Td
-0 Tr
-/_Helvetica-Bold 9 8.658 -2.052 Tf
-(Printser) Tx 1 -10 Tk
-(ver) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-u
-281.5698 398.6543 m
-F
-u
-u
-0 R
-0 G
-0.25 w
-297.9858 400.9424 m
-B
-0.9 g
-293.0542 398.5264 m
-293.0542 396.6377 L
-298.7534 396.6377 L
-293.0542 398.5264 L
-b
-0.65 g
-293.0542 396.6377 m
-293.0542 387.4463 L
-298.7534 387.4463 L
-298.7534 396.6377 L
-293.0542 396.6377 L
-b
-0.9 g
-293.0542 407.165 m
-293.0542 406.1494 L
-299.7944 406.1494 L
-293.0542 407.165 L
-b
-0.65 g
-293.0542 406.1494 m
-293.0542 404.1113 L
-299.7944 404.1113 L
-299.7944 406.1494 L
-293.0542 406.1494 L
-b
-0.9 g
-293.0542 403.418 m
-293.0542 401.9395 L
-302.9194 401.9395 L
-293.0542 403.418 L
-b
-0.65 g
-293.0542 401.9395 m
-293.0542 399.9443 L
-302.9194 399.9443 L
-302.9194 401.9395 L
-293.0542 401.9395 L
-b
-0.8158 g
-293.0542 406.1494 m
-293.0542 429.1064 L
-260.2212 429.1064 L
-260.2212 380.7354 L
-293.0542 380.7354 L
-293.0542 396.6377 L
-293.0542 401.9395 L
-293.0542 406.1494 L
-b
-276.6382 404.9209 m
-B
-0.4385 g
-260.2212 440.917 m
-293.0542 440.917 L
-293.0542 429.1064 L
-260.2212 429.1064 L
-260.2212 440.917 L
-b
-276.4995 435.0107 m
-B
-1 g
-280.0073 427.0225 m
-289.3804 427.0225 L
-289.3804 424.9385 L
-280.0073 424.9385 L
-280.0073 427.0225 L
-b
-284.6929 425.9814 m
-B
-260.1577 422.3652 m
-292.8999 422.3652 L
-S
-260.1577 398.3535 m
-293.0542 398.3535 L
-S
-0 O
-0 g
-296.4253 405.1299 m
-B
-295.9067 392.042 m
-B
-0.31 g
-269.019 440.917 m
-293.0542 440.917 L
-293.0542 438.7344 L
-274.7456 438.7344 L
-272.6304 436.6182 L
-272.6304 429.0674 L
-269.019 429.0674 L
-269.019 440.917 L
-b
-U
-U
-U
-0 To
-1 0 0 1 179.061 333.0303 0 Tp
-0 Tv
-TP
--12.7793 0 Td
-0 Tr
-0 g
-1 w
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
--20 Tt
--0.18 Tc
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-u
-%_1 g
-%_0 R
-%_0.67 G
-%_1 M
-%_187.8555 309.7061 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-1 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-187.8555 309.7061 m
-F
-u
-0.8 g
-201.5869 300.6318 m
-221.6318 307.4893 l
-220.0513 310.3906 l
-207.3901 306.4346 l
-201.3237 310.3906 l
-201.5869 300.6318 l
-f
-0 R
-0.9 G
-0.5 w
-220.3232 310.5166 m
-207.3901 306.4346 l
-S
-0.5 G
-221.6318 307.4893 m
-220.0513 310.3906 l
-S
-0.25 G
-201.5869 300.6318 m
-221.6318 307.4893 l
-S
-0.5 G
-207.3901 306.4346 m
-201.3237 310.3906 l
-S
-0 O
-0.8 g
-1 w
-181.5425 318.041 m
-193.6733 323.3154 l
-197.103 319.0967 l
-181.5425 318.041 l
-f
-1 Ap
-0.57 g
-201.8506 298.7861 m
-155.4302 298.7861 L
-155.4302 295.8857 L
-201.8506 295.8857 L
-201.8506 298.7861 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-193.6733 323.3154 m
-197.103 319.0967 l
-S
-0.9 G
-181.5425 318.041 m
-194.2354 323.5928 l
-S
-0 O
-0.8 g
-1 w
-154.1094 320.0781 m
-154.1094 298.7549 l
-202.9058 298.7549 l
-202.9058 315.9287 l
-199.4766 320.0186 l
-154.1094 320.0781 l
-f
-0 R
-0.5 G
-0.5 w
-154.1094 304.3242 m
-202.9058 304.3242 l
-S
-157.0117 316.7217 m
-166.5078 316.7217 l
-S
-157.0117 315.0732 m
-166.5078 315.0732 l
-S
-157.0117 313.4258 m
-166.5078 313.4258 l
-S
-157.0117 311.7773 m
-166.5078 311.7773 l
-S
-157.0117 310.1299 m
-166.5078 310.1299 l
-S
-202.9058 315.9287 m
-199.4766 320.0186 l
-S
-0.25 G
-154.1094 298.7549 m
-202.9058 298.7549 l
-202.9058 315.9287 l
-S
-0.9 G
-199.4766 320.0479 m
-154.1094 320.0479 l
-154.1094 298.4854 l
-S
-0.25 G
-201.8506 298.7549 m
-201.8506 295.8408 l
-155.439 295.8408 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000007995072696E746572
-/Adobe_Brushed_Path () XT
-1 Ap
-0 O
-0.99 g
-201.6685 300.3193 m
-189.894 300.3193 L
-189.894 303.1279 L
-201.6685 303.1279 L
-201.6685 300.3193 L
-b
-u
-%_0 Ap
-%_0 g
-%_0 G
-%_1 w 1 M
-%_415.4512 312.2842 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-415.4512 312.2842 m
-F
-u
-u
-u
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
-438.4219 294.7266 m
-438.4219 296.7461 l
-432.0605 300.1787 l
-415.5078 300.1787 L
-398.9551 300.1787 l
-392.3926 296.7461 l
-392.3926 294.7266 l
-438.4219 294.7266 l
-b
-0.8748 G
-2 J 0 j
-415.5078 300.1787 m
-398.9551 300.1787 l
-392.3926 296.7461 l
-392.3926 294.7266 l
-S
-438.4219 296.7461 m
-432.0605 300.1787 l
-415.5078 300.1787 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-399.0547 298.9668 m
-395.0166 296.7461 l
-435.5938 296.7461 l
-432.1621 298.9668 l
-399.0547 298.9668 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-404.2686 303.0742 m
-406.5469 303.1172 L
-415.6484 304.6855 L
-424.9297 303.1172 L
-426.7246 303.1172 L
-426.6641 301.2754 L
-404.2686 301.2754 L
-404.2686 303.0742 L
-f
-0 R
-0.25 G
-0.5 w
-426.6953 303.0742 m
-426.6035 301.2754 L
-404.2363 301.2754 L
-S
-0.9 G
-424.8955 303.0742 m
-426.6953 303.0742 L
-S
-0.25 G
-415.5898 304.6855 m
-424.8955 303.0742 L
-S
-0.9 G
-404.2363 301.2754 m
-404.2363 303.0742 L
-406.4902 303.0742 L
-415.5898 304.6855 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-402.0264 306.1484 m
-411.3232 306.1953 L
-415.6816 307.9219 L
-420.2598 306.1953 L
-428.9727 306.1953 L
-428.9004 304.1709 L
-402.0264 304.1709 L
-402.0264 306.1484 L
-f
-0 R
-0.25 G
-0.5 w
-428.9395 306.1484 m
-428.8281 304.1709 L
-401.9902 304.1709 L
-S
-0.9 G
-420.2178 306.1484 m
-428.9395 306.1484 L
-S
-0.25 G
-415.6113 307.9219 m
-420.2178 306.1484 L
-S
-0.9 G
-401.9902 304.1709 m
-401.9902 306.1484 L
-411.2529 306.1484 L
-415.6113 307.9219 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-400.5098 306.9766 m
-400.502 328.8457 l
-401.4854 329.8418 L
-429.4629 329.8145 L
-430.4014 328.6758 L
-430.4014 307.2617 L
-429.5918 306.1221 L
-401.3574 306.1221 l
-400.5098 306.9766 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-401.3574 306.1221 m
-400.5098 306.9766 L
-400.502 328.8457 l
-401.4854 329.8418 L
-429.4629 329.8145 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-427.3691 309.0098 m
-427.3887 326.9648 L
-403.4941 326.9648 L
-403.4922 309.0117 L
-427.3691 309.0098 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-432.0605 300.1787 m
-415.5078 300.1787 L
-398.9551 300.1787 L
-392.3926 296.7461 L
-392.3926 294.7266 L
-438.4219 294.7266 L
-438.4219 296.7461 L
-432.0605 300.1787 L
-s
-401.3574 306.1221 m
-401.9902 306.1221 L
-401.9902 304.1709 L
-402.0264 304.1816 L
-402.0264 304.1738 L
-401.9902 304.1709 L
-402.0264 304.1709 L
-412.6621 304.1709 L
-406.5469 303.1172 L
-404.2686 303.0742 L
-404.2363 303.0742 L
-404.2363 301.2754 L
-404.2686 301.2852 L
-404.2686 301.2783 L
-404.2363 301.2754 L
-404.2686 301.2754 L
-426.6035 301.2754 L
-426.6641 301.2754 L
-426.7246 303.1172 L
-424.9297 303.1172 L
-418.6934 304.1709 L
-428.8281 304.1709 L
-428.9004 304.1709 L
-428.9707 306.1221 L
-429.5918 306.1221 L
-430.4014 307.2617 L
-430.4014 328.6758 L
-429.4629 329.8145 L
-401.4854 329.8418 L
-400.502 328.8457 L
-400.5098 306.9766 L
-401.3574 306.1221 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000002043436C69656E742031
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 416.4961 335.2744 0 Tp
-0 Tv
-TP
--6.2504 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ -- XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(PC) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-0 To
-1 0 0 1 294.9165 342.126 0 Tp
-0 Tv
-TP
--21.3063 0 Td
-0 Tr
-/_Helvetica-Bold 9 8.658 -2.052 Tf
-(Fileser) Tx 1 -10 Tk
-(ver) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-u
-u
-0 To
-1 0 0 1 272.2954 291.0332 0 Tp
-0 Tv
-TP
--21.8418 0 Td
-0 Tr
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-(Pr) Tx 1 -15 Tk
-(intser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-U
-U
-u
-%_0 R
-%_0 G
-%_277.3394 406.5059 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-277.3394 406.5059 m
-F
-u
-*u
-0 R
-1 G
-283.3354 416.5078 m
-283.3354 414.6953 L
-283.3354 414.5967 283.2881 414.501 283.1958 414.4092 c
-283.1055 414.3164 282.9712 414.2275 282.7979 414.1416 c
-282.6255 414.0576 282.4141 413.9756 282.168 413.9004 c
-281.9233 413.8252 281.6426 413.7549 281.334 413.6904 c
-281.0479 413.6309 280.7354 413.5771 280.4038 413.5293 C
-280.4038 413.4082 L
-280.4839 413.4082 L
-280.4839 413.3428 280.4546 413.2813 280.4038 413.2227 C
-280.4038 412.998 L
-280.4839 412.998 L
-280.4839 412.9336 280.4546 412.8721 280.4038 412.8135 C
-280.4038 412.5889 L
-280.4839 412.5889 L
-280.4839 412.5234 280.4546 412.4619 280.4038 412.4033 C
-280.4038 412.1787 L
-280.4839 412.1787 L
-280.4839 412.1143 280.4546 412.0518 280.4038 411.9941 C
-280.4038 411.7695 L
-280.4839 411.7695 L
-280.4839 411.7041 280.4546 411.6436 280.4038 411.585 C
-280.4038 411.3604 L
-280.4839 411.3604 L
-280.4839 411.2949 280.4546 411.2334 280.4038 411.1748 C
-280.4038 410.9512 L
-280.4839 410.9512 L
-280.4839 410.8857 280.4546 410.8242 280.4038 410.7656 C
-280.4038 410.541 L
-280.4839 410.541 L
-280.4839 410.4756 280.4546 410.4141 280.4038 410.3555 C
-280.4038 410.1318 L
-280.4839 410.1318 L
-280.4839 410.0664 280.4546 410.0049 280.4038 409.9463 C
-280.4038 409.7227 L
-280.4839 409.7227 L
-280.4839 409.6572 280.4546 409.5957 280.4038 409.5371 C
-280.4038 409.3125 L
-280.4839 409.3125 L
-280.4839 409.2471 280.4546 409.1855 280.4038 409.1279 C
-280.4038 408.9033 L
-280.4839 408.9033 L
-280.4839 408.8379 280.4546 408.7764 280.4038 408.7178 C
-280.4038 408.4932 L
-280.4839 408.4932 L
-280.4839 408.4287 280.4546 408.3662 280.4038 408.3086 C
-280.4038 408.084 L
-280.4839 408.084 L
-280.4839 408.0186 280.4546 407.957 280.4038 407.8994 C
-280.4038 407.6748 L
-280.4839 407.6748 L
-280.4839 407.6094 280.4546 407.5479 280.4038 407.4893 C
-280.4038 407.2646 L
-280.4839 407.2646 L
-280.4839 407.2002 280.4546 407.1377 280.4038 407.0801 C
-280.4038 406.8555 L
-280.4839 406.8555 L
-280.4839 406.79 280.4546 406.7285 280.4038 406.6699 C
-280.4038 406.4463 L
-280.4839 406.4463 L
-280.4839 406.3809 280.4546 406.3193 280.4038 406.2607 C
-280.4038 406.0361 L
-280.4839 406.0361 L
-280.4839 405.9717 280.4546 405.9092 280.4038 405.8506 C
-280.4038 405.627 L
-280.4839 405.627 L
-280.4839 405.5615 280.4546 405.5 280.4038 405.4414 C
-280.4038 405.2178 L
-280.4839 405.2178 L
-280.4839 405.1523 280.4546 405.0908 280.4038 405.0322 C
-280.4038 404.8076 L
-280.4839 404.8076 L
-280.4839 404.7422 280.4546 404.6807 280.4038 404.6221 C
-280.4038 404.3984 L
-280.4839 404.3984 L
-280.4839 404.333 280.4546 404.2715 280.4038 404.2129 C
-280.4038 403.9893 L
-280.4839 403.9893 L
-280.4839 403.9395 280.4639 403.8926 280.4336 403.8467 C
-282.189 403.5889 283.3354 403.165 283.3354 402.6846 c
-283.3354 402.6289 283.3154 402.5732 283.2847 402.5186 c
-283.3154 402.5732 283.3354 402.6289 283.3354 402.6846 C
-283.3354 400.8721 L
-283.3354 400.7734 283.2881 400.6777 283.1958 400.585 c
-283.1055 400.4932 282.9712 400.4033 282.7979 400.3184 c
-282.6255 400.2334 282.4141 400.1533 282.168 400.0771 c
-281.9233 400.002 281.6426 399.9316 281.334 399.8672 c
-281.0239 399.8027 280.6865 399.7441 280.3223 399.6934 c
-279.959 399.6416 279.5698 399.5986 279.1606 399.5625 c
-278.7529 399.5264 278.3232 399.498 277.8774 399.4795 c
-277.4336 399.4609 276.9727 399.4512 276.501 399.4512 c
-276.0298 399.4512 275.5679 399.4609 275.124 399.4795 c
-274.6782 399.498 274.25 399.5264 273.8408 399.5625 c
-273.4321 399.5986 273.0439 399.6416 272.6802 399.6934 c
-272.3169 399.7441 271.9775 399.8027 271.6689 399.8672 c
-271.3594 399.9316 271.0801 400.002 270.834 400.0771 c
-270.5879 400.1533 270.377 400.2334 270.2041 400.3184 c
-270.0303 400.4033 269.897 400.4932 269.8057 400.585 c
-269.7153 400.6777 269.667 400.7734 269.667 400.8721 C
-269.667 402.6846 L
-269.667 403.165 270.8135 403.5889 272.5679 403.8467 C
-272.5386 403.8926 272.5186 403.9395 272.5186 403.9893 C
-272.5977 403.9893 L
-272.5977 404.2129 L
-272.5479 404.2715 272.5186 404.333 272.5186 404.3984 C
-272.5977 404.3984 L
-272.5977 404.6221 L
-272.5479 404.6807 272.5186 404.7422 272.5186 404.8076 C
-272.5977 404.8076 L
-272.5977 405.0322 L
-272.5479 405.0908 272.5186 405.1523 272.5186 405.2178 C
-272.5977 405.2178 L
-272.5977 405.4414 L
-272.5479 405.5 272.5186 405.5615 272.5186 405.627 C
-272.5977 405.627 L
-272.5977 405.8506 L
-272.5479 405.9092 272.5186 405.9717 272.5186 406.0361 C
-272.5977 406.0361 L
-272.5977 406.2607 L
-272.5479 406.3193 272.5186 406.3809 272.5186 406.4463 C
-272.5977 406.4463 L
-272.5977 406.6699 L
-272.5479 406.7285 272.5186 406.79 272.5186 406.8555 C
-272.5977 406.8555 L
-272.5977 407.0801 L
-272.5479 407.1377 272.5186 407.2002 272.5186 407.2646 C
-272.5977 407.2646 L
-272.5977 407.4893 L
-272.5479 407.5479 272.5186 407.6094 272.5186 407.6748 C
-272.5977 407.6748 L
-272.5977 407.8994 L
-272.5479 407.957 272.5186 408.0186 272.5186 408.084 C
-272.5977 408.084 L
-272.5977 408.3086 L
-272.5479 408.3662 272.5186 408.4287 272.5186 408.4932 C
-272.5977 408.4932 L
-272.5977 408.7178 L
-272.5479 408.7764 272.5186 408.8379 272.5186 408.9033 C
-272.5977 408.9033 L
-272.5977 409.1279 L
-272.5479 409.1855 272.5186 409.2471 272.5186 409.3125 C
-272.5977 409.3125 L
-272.5977 409.5371 L
-272.5479 409.5957 272.5186 409.6572 272.5186 409.7227 C
-272.5977 409.7227 L
-272.5977 409.9463 L
-272.5479 410.0049 272.5186 410.0664 272.5186 410.1318 C
-272.5977 410.1318 L
-272.5977 410.3555 L
-272.5479 410.4141 272.5186 410.4756 272.5186 410.541 C
-272.5977 410.541 L
-272.5977 410.7656 L
-272.5479 410.8242 272.5186 410.8857 272.5186 410.9512 C
-272.5977 410.9512 L
-272.5977 411.1748 L
-272.5479 411.2334 272.5186 411.2949 272.5186 411.3604 C
-272.5977 411.3604 L
-272.5977 411.585 L
-272.5479 411.6436 272.5186 411.7041 272.5186 411.7695 C
-272.5977 411.7695 L
-272.5977 411.9941 L
-272.5479 412.0518 272.5186 412.1143 272.5186 412.1787 C
-272.5977 412.1787 L
-272.5977 412.4033 L
-272.5479 412.4619 272.5186 412.5234 272.5186 412.5889 C
-272.5977 412.5889 L
-272.5977 412.8135 L
-272.5479 412.8721 272.5186 412.9336 272.5186 412.998 C
-272.5977 412.998 L
-272.5977 413.2227 L
-272.5479 413.2813 272.5186 413.3428 272.5186 413.4082 C
-272.5977 413.4082 L
-272.5977 413.5293 L
-272.2666 413.5771 271.9546 413.6309 271.6689 413.6904 c
-271.3594 413.7549 271.0801 413.8252 270.834 413.9004 c
-270.5879 413.9756 270.377 414.0576 270.2041 414.1416 c
-270.0303 414.2275 269.897 414.3164 269.8057 414.4092 c
-269.7153 414.501 269.667 414.5967 269.667 414.6953 C
-269.667 416.5078 L
-269.667 417.1328 271.6064 417.6631 274.3018 417.8535 C
-274.3418 417.9268 274.3818 418.001 274.4219 418.0811 c
-274.9111 419.0596 274.769 419.9043 274.6187 420.7998 c
-274.5254 421.3574 274.4282 421.9346 274.4824 422.5664 c
-274.624 424.2188 276.3887 425.0293 276.4346 425.0439 C
-283.4019 425.0439 L
-283.4307 424.915 L
-283.4209 424.9102 282.459 424.4395 281.54 422.9297 c
-281.0034 422.0469 281.1392 420.9922 281.2734 419.9727 c
-281.3682 419.25 281.4561 418.5684 281.2778 418.0303 c
-281.2217 417.8623 281.1553 417.707 281.083 417.5625 C
-282.4658 417.3018 283.3354 416.9268 283.3354 416.5078 C
-s
-1 D
-270.2061 415.9541 m
-270.1289 415.9922 270.061 416.0303 269.999 416.0703 c
-270.0591 416.0313 270.1279 415.9922 270.2041 415.9551 C
-270.2041 415.9541 270.2061 415.9541 Y
-s
-0 D
-271.6694 401.6797 m
-271.6689 401.6797 271.6689 401.6807 271.667 401.6807 c
-271.668 401.6807 271.6689 401.6807 271.6689 401.6797 C
-271.6689 401.6797 271.6694 401.6797 v
-s
-275.145 401.292 m
-275.1294 401.292 275.1167 401.293 275.103 401.2939 C
-275.1104 401.2939 275.1167 401.293 275.124 401.292 C
-275.1294 401.292 275.1377 401.292 275.145 401.292 c
-s
-1 D
-277.8994 401.2939 m
-277.8857 401.293 277.8711 401.292 277.8584 401.292 c
-277.8643 401.292 277.8721 401.292 277.8774 401.292 C
-277.8857 401.293 277.8911 401.2939 277.8994 401.2939 C
-s
-283.1201 402.3291 m
-283.1489 402.3525 283.1738 402.375 283.1958 402.3984 c
-283.2183 402.4209 283.2305 402.4453 283.2471 402.4678 c
-283.2129 402.4209 283.1763 402.375 283.1201 402.3291 c
-s
-283.1563 416.1855 m
-283.0674 416.1055 282.9473 416.0283 282.7959 415.9541 C
-282.7969 415.9541 282.7979 415.9541 282.7979 415.9551 C
-282.9482 416.0283 283.0674 416.1064 283.1563 416.1855 c
-s
-*U
-u
-0 O
-0 g
-0 D
-276.5488 412.2471 m
-F
-u
-u
-0.67 g
-283.1201 402.3291 m
-283.0361 402.2617 282.9282 402.1953 282.7979 402.1318 C
-282.7979 402.1318 L
-282.7979 402.1318 L
-282.1943 401.835 281.1187 401.5889 279.7656 401.4365 c
-279.7607 401.4355 279.7559 401.4346 279.7515 401.4346 c
-279.5649 401.4131 279.373 401.3945 279.1768 401.377 c
-279.1719 401.376 279.167 401.376 279.1606 401.376 c
-279.1553 401.375 279.1504 401.374 279.145 401.374 c
-278.9482 401.3564 278.748 401.3418 278.542 401.3281 c
-278.5361 401.3281 278.5303 401.3271 278.5249 401.3271 c
-278.3193 401.3135 278.1104 401.3027 277.8994 401.2939 c
-277.8911 401.2939 277.8857 401.293 277.8774 401.292 c
-277.8721 401.292 277.8643 401.292 277.8584 401.292 c
-277.4199 401.2734 276.9658 401.2637 276.501 401.2637 c
-276.0361 401.2637 275.583 401.2734 275.145 401.292 c
-275.1377 401.292 275.1294 401.292 275.124 401.292 c
-275.1167 401.293 275.1104 401.2939 275.103 401.2939 c
-274.8911 401.3027 274.6816 401.3145 274.4775 401.3271 c
-274.4722 401.3271 274.4673 401.3281 274.4609 401.3281 c
-274.2554 401.3418 274.0527 401.3564 273.856 401.374 c
-273.8506 401.374 273.8457 401.375 273.8408 401.376 c
-273.8369 401.376 273.832 401.376 273.8271 401.377 c
-273.6294 401.3936 273.4375 401.4131 273.25 401.4346 c
-273.2466 401.4346 273.2422 401.4355 273.2383 401.4365 c
-272.6602 401.501 272.1318 401.584 271.6694 401.6797 c
-271.6689 401.6797 271.6689 401.6797 y
-271.6689 401.6807 271.668 401.6807 271.667 401.6807 c
-271.0498 401.8086 270.5498 401.9619 270.2041 402.1318 C
-270.2041 402.1318 L
-270.2041 402.1318 L
-270.0063 402.2285 269.8599 402.3311 269.771 402.4385 c
-269.7041 402.5186 269.667 402.6006 269.667 402.6846 C
-269.667 400.8721 L
-269.667 400.7734 269.7153 400.6777 269.8057 400.585 c
-269.897 400.4932 270.0303 400.4033 270.2041 400.3184 c
-270.377 400.2334 270.5879 400.1533 270.834 400.0771 c
-271.0801 400.002 271.3594 399.9316 271.6689 399.8672 c
-271.9775 399.8027 272.3169 399.7441 272.6802 399.6934 c
-273.0439 399.6416 273.4321 399.5986 273.8408 399.5625 c
-274.25 399.5264 274.6782 399.498 275.124 399.4795 c
-275.5679 399.4609 276.0298 399.4512 276.501 399.4512 c
-276.9727 399.4512 277.4336 399.4609 277.8774 399.4795 c
-278.3232 399.498 278.7529 399.5264 279.1606 399.5625 c
-279.5698 399.5986 279.959 399.6416 280.3223 399.6934 c
-280.6865 399.7441 281.0239 399.8027 281.334 399.8672 c
-281.6426 399.9316 281.9233 400.002 282.168 400.0771 c
-282.4141 400.1533 282.6255 400.2334 282.7979 400.3184 c
-282.9712 400.4033 283.1055 400.4932 283.1958 400.585 c
-283.2881 400.6777 283.3354 400.7734 283.3354 400.8721 C
-283.3354 402.6846 L
-283.3354 402.5869 283.2881 402.4912 283.1958 402.3984 c
-283.1738 402.375 283.1489 402.3525 283.1201 402.3291 c
-f
-0.39 g
-280.4038 403.5791 m
-280.4839 403.5791 L
-280.4839 403.5146 280.4546 403.4521 280.4038 403.3945 C
-280.4038 403.0498 L
-280.4038 402.9932 280.377 402.9385 280.3247 402.8857 c
-280.2734 402.833 280.1958 402.7822 280.0977 402.7334 c
-279.998 402.6846 279.8774 402.6387 279.7378 402.5957 c
-279.5977 402.5527 279.4375 402.5127 279.2607 402.4756 c
-279.085 402.4395 278.8906 402.4053 278.6831 402.376 c
-278.4751 402.3477 278.2534 402.3223 278.021 402.3018 c
-277.7871 402.2813 277.542 402.2646 277.2881 402.2549 c
-277.0347 402.2441 276.7705 402.2383 276.501 402.2383 c
-276.2314 402.2383 275.9688 402.2441 275.7153 402.2549 c
-275.4609 402.2646 275.2158 402.2813 274.9824 402.3018 c
-274.749 402.3223 274.5264 402.3477 274.3193 402.376 c
-274.1113 402.4053 273.9175 402.4395 273.7407 402.4756 c
-273.5654 402.5127 273.4048 402.5527 273.2646 402.5957 c
-273.124 402.6387 273.0039 402.6846 272.9058 402.7334 c
-272.8057 402.7822 272.7295 402.833 272.6768 402.8857 c
-272.6255 402.9385 272.5977 402.9932 272.5977 403.0498 C
-272.5977 403.3945 L
-272.5479 403.4521 272.5186 403.5146 272.5186 403.5791 C
-272.5977 403.5791 L
-272.5977 403.8037 L
-272.5854 403.8174 272.5767 403.832 272.5679 403.8467 C
-270.8135 403.5889 269.667 403.165 269.667 402.6846 c
-269.667 402.6006 269.7041 402.5186 269.771 402.4385 c
-269.8599 402.3311 270.0063 402.2285 270.2041 402.1318 C
-270.2041 402.1318 L
-270.5498 401.9619 271.0498 401.8086 271.667 401.6807 c
-271.6689 401.6807 271.6689 401.6797 271.6694 401.6797 c
-272.1318 401.584 272.6602 401.501 273.2383 401.4365 c
-273.2422 401.4355 273.2466 401.4346 273.25 401.4346 c
-273.4375 401.4131 273.6294 401.3936 273.8271 401.377 c
-273.8369 401.376 273.8462 401.375 273.856 401.374 c
-274.0527 401.3564 274.2554 401.3418 274.4609 401.3281 c
-274.4673 401.3281 274.4722 401.3271 274.4775 401.3271 c
-274.6816 401.3145 274.8911 401.3027 275.103 401.2939 c
-275.1167 401.293 275.1294 401.292 275.145 401.292 c
-275.583 401.2734 276.0361 401.2637 276.501 401.2637 c
-276.9658 401.2637 277.4199 401.2734 277.8584 401.292 c
-277.8711 401.292 277.8857 401.293 277.8994 401.2939 c
-278.1104 401.3027 278.3193 401.3135 278.5249 401.3271 c
-278.5303 401.3271 278.5361 401.3281 278.542 401.3281 c
-278.748 401.3418 278.9482 401.3564 279.145 401.374 c
-279.1553 401.375 279.166 401.376 279.1768 401.377 c
-279.373 401.3945 279.5649 401.4131 279.7515 401.4346 c
-279.7559 401.4346 279.7607 401.4355 279.7656 401.4365 c
-281.1187 401.5889 282.1943 401.835 282.7979 402.1318 C
-282.7979 402.1318 L
-282.9282 402.1953 283.0361 402.2617 283.1201 402.3291 c
-283.2607 402.4434 283.3354 402.5625 283.3354 402.6846 c
-283.3354 403.165 282.189 403.5889 280.4336 403.8467 C
-280.4248 403.832 280.416 403.8174 280.4038 403.8037 C
-280.4038 403.5791 L
-f
-0.55 g
-276.501 407.6123 m
-274.791 407.6123 272.9878 407.8545 272.5977 408.3086 C
-272.5977 408.084 L
-272.6538 408.084 L
-272.6538 407.7314 274.2334 407.3379 276.501 407.3379 c
-278.769 407.3379 280.3486 407.7314 280.3486 408.084 C
-280.4038 408.084 L
-280.4038 408.3086 L
-280.0146 407.8545 278.2119 407.6123 276.501 407.6123 c
-f
-276.501 410.4785 m
-274.791 410.4785 272.9878 410.7217 272.5977 411.1748 C
-272.5977 410.9512 L
-272.6538 410.9512 L
-272.6538 410.5977 274.2334 410.2041 276.501 410.2041 c
-278.769 410.2041 280.3486 410.5977 280.3486 410.9512 C
-280.4038 410.9512 L
-280.4038 411.1748 L
-280.0146 410.7217 278.2119 410.4785 276.501 410.4785 c
-f
-276.501 407.2021 m
-274.791 407.2021 272.9878 407.4453 272.5977 407.8994 C
-272.5977 407.6748 L
-272.6538 407.6748 L
-272.6538 407.3213 274.2334 406.9277 276.501 406.9277 c
-278.769 406.9277 280.3486 407.3213 280.3486 407.6748 C
-280.4038 407.6748 L
-280.4038 407.8994 L
-280.0146 407.4453 278.2119 407.2021 276.501 407.2021 c
-f
-276.501 406.793 m
-274.791 406.793 272.9878 407.0361 272.5977 407.4893 C
-272.5977 407.2646 L
-272.6538 407.2646 L
-272.6538 406.9121 274.2334 406.5186 276.501 406.5186 c
-278.769 406.5186 280.3486 406.9121 280.3486 407.2646 C
-280.4038 407.2646 L
-280.4038 407.4893 L
-280.0146 407.0361 278.2119 406.793 276.501 406.793 c
-f
-276.501 410.0693 m
-274.791 410.0693 272.9878 410.3115 272.5977 410.7656 C
-272.5977 410.541 L
-272.6538 410.541 L
-272.6538 410.1885 274.2334 409.7949 276.501 409.7949 c
-278.769 409.7949 280.3486 410.1885 280.3486 410.541 C
-280.4038 410.541 L
-280.4038 410.7656 L
-280.0146 410.3115 278.2119 410.0693 276.501 410.0693 c
-f
-276.501 408.8408 m
-274.791 408.8408 272.9878 409.084 272.5977 409.5371 C
-272.5977 409.3125 L
-272.6538 409.3125 L
-272.6538 408.96 274.2334 408.5654 276.501 408.5654 c
-278.769 408.5654 280.3486 408.96 280.3486 409.3125 C
-280.4038 409.3125 L
-280.4038 409.5371 L
-280.0146 409.084 278.2119 408.8408 276.501 408.8408 c
-f
-276.501 408.0215 m
-274.791 408.0215 272.9878 408.2646 272.5977 408.7178 C
-272.5977 408.4932 L
-272.6538 408.4932 L
-272.6538 408.1406 274.2334 407.7471 276.501 407.7471 c
-278.769 407.7471 280.3486 408.1406 280.3486 408.4932 C
-280.4038 408.4932 L
-280.4038 408.7178 L
-280.0146 408.2646 278.2119 408.0215 276.501 408.0215 c
-f
-276.501 409.25 m
-274.791 409.25 272.9878 409.4932 272.5977 409.9463 C
-272.5977 409.7227 L
-272.6538 409.7227 L
-272.6538 409.3691 274.2334 408.9756 276.501 408.9756 c
-278.769 408.9756 280.3486 409.3691 280.3486 409.7227 C
-280.4038 409.7227 L
-280.4038 409.9463 L
-280.0146 409.4932 278.2119 409.25 276.501 409.25 c
-f
-276.501 412.1162 m
-274.791 412.1162 272.9878 412.3594 272.5977 412.8135 C
-272.5977 412.5889 L
-272.6538 412.5889 L
-272.6538 412.2363 274.2334 411.8428 276.501 411.8428 c
-278.769 411.8428 280.3486 412.2363 280.3486 412.5889 C
-280.4038 412.5889 L
-280.4038 412.8135 L
-280.0146 412.3594 278.2119 412.1162 276.501 412.1162 c
-f
-276.501 411.2979 m
-274.791 411.2979 272.9878 411.54 272.5977 411.9941 C
-272.5977 411.7695 L
-272.6538 411.7695 L
-272.6538 411.417 274.2334 411.0234 276.501 411.0234 c
-278.769 411.0234 280.3486 411.417 280.3486 411.7695 C
-280.4038 411.7695 L
-280.4038 411.9941 L
-280.0146 411.54 278.2119 411.2979 276.501 411.2979 c
-f
-276.501 408.4307 m
-274.791 408.4307 272.9878 408.6738 272.5977 409.1279 C
-272.5977 408.9033 L
-272.6538 408.9033 L
-272.6538 408.5498 274.2334 408.1572 276.501 408.1572 c
-278.769 408.1572 280.3486 408.5498 280.3486 408.9033 C
-280.4038 408.9033 L
-280.4038 409.1279 L
-280.0146 408.6738 278.2119 408.4307 276.501 408.4307 c
-f
-276.501 409.6592 m
-274.791 409.6592 272.9878 409.9023 272.5977 410.3555 C
-272.5977 410.1318 L
-272.6538 410.1318 L
-272.6538 409.7783 274.2334 409.3857 276.501 409.3857 c
-278.769 409.3857 280.3486 409.7783 280.3486 410.1318 C
-280.4038 410.1318 L
-280.4038 410.3555 L
-280.0146 409.9023 278.2119 409.6592 276.501 409.6592 c
-f
-276.501 411.708 m
-274.791 411.708 272.9878 411.9502 272.5977 412.4033 C
-272.5977 412.1787 L
-272.6538 412.1787 L
-272.6538 411.8262 274.2334 411.4326 276.501 411.4326 c
-278.769 411.4326 280.3486 411.8262 280.3486 412.1787 C
-280.4038 412.1787 L
-280.4038 412.4033 L
-280.0146 411.9502 278.2119 411.708 276.501 411.708 c
-f
-276.501 410.8887 m
-274.791 410.8887 272.9878 411.1318 272.5977 411.585 C
-272.5977 411.3604 L
-272.6538 411.3604 L
-272.6538 411.0068 274.2334 410.6133 276.501 410.6133 c
-278.769 410.6133 280.3486 411.0068 280.3486 411.3604 C
-280.4038 411.3604 L
-280.4038 411.585 L
-280.0146 411.1318 278.2119 410.8887 276.501 410.8887 c
-f
-276.501 404.7451 m
-274.791 404.7451 272.9878 404.9883 272.5977 405.4414 C
-272.5977 405.2178 L
-272.6538 405.2178 L
-272.6538 404.8643 274.2334 404.4707 276.501 404.4707 c
-278.769 404.4707 280.3486 404.8643 280.3486 405.2178 C
-280.4038 405.2178 L
-280.4038 405.4414 L
-280.0146 404.9883 278.2119 404.7451 276.501 404.7451 c
-f
-276.501 403.5166 m
-274.791 403.5166 272.9878 403.7598 272.5977 404.2129 C
-272.5977 403.9893 L
-272.6538 403.9893 L
-272.6538 403.6357 274.2334 403.2422 276.501 403.2422 c
-278.769 403.2422 280.3486 403.6357 280.3486 403.9893 C
-280.4038 403.9893 L
-280.4038 404.2129 L
-280.0146 403.7598 278.2119 403.5166 276.501 403.5166 c
-f
-276.501 403.9268 m
-274.791 403.9268 272.9878 404.1689 272.5977 404.6221 C
-272.5977 404.3984 L
-272.6538 404.3984 L
-272.6538 404.0449 274.2334 403.6514 276.501 403.6514 c
-278.769 403.6514 280.3486 404.0449 280.3486 404.3984 C
-280.4038 404.3984 L
-280.4038 404.6221 L
-280.0146 404.1689 278.2119 403.9268 276.501 403.9268 c
-f
-276.501 406.3838 m
-274.791 406.3838 272.9878 406.626 272.5977 407.0801 C
-272.5977 406.8555 L
-272.6538 406.8555 L
-272.6538 406.5029 274.2334 406.1084 276.501 406.1084 c
-278.769 406.1084 280.3486 406.5029 280.3486 406.8555 C
-280.4038 406.8555 L
-280.4038 407.0801 L
-280.0146 406.626 278.2119 406.3838 276.501 406.3838 c
-f
-276.501 405.1553 m
-274.791 405.1553 272.9878 405.3975 272.5977 405.8506 C
-272.5977 405.627 L
-272.6538 405.627 L
-272.6538 405.2744 274.2334 404.8799 276.501 404.8799 c
-278.769 404.8799 280.3486 405.2744 280.3486 405.627 C
-280.4038 405.627 L
-280.4038 405.8506 L
-280.0146 405.3975 278.2119 405.1553 276.501 405.1553 c
-f
-276.501 405.5645 m
-274.791 405.5645 272.9878 405.8076 272.5977 406.2607 C
-272.5977 406.0361 L
-272.6538 406.0361 L
-272.6538 405.6836 274.2334 405.29 276.501 405.29 c
-278.769 405.29 280.3486 405.6836 280.3486 406.0361 C
-280.4038 406.0361 L
-280.4038 406.2607 L
-280.0146 405.8076 278.2119 405.5645 276.501 405.5645 c
-f
-276.501 405.9736 m
-274.791 405.9736 272.9878 406.2168 272.5977 406.6699 C
-272.5977 406.4463 L
-272.6538 406.4463 L
-272.6538 406.0928 274.2334 405.6992 276.501 405.6992 c
-278.769 405.6992 280.3486 406.0928 280.3486 406.4463 C
-280.4038 406.4463 L
-280.4038 406.6699 L
-280.0146 406.2168 278.2119 405.9736 276.501 405.9736 c
-f
-276.501 404.3359 m
-274.791 404.3359 272.9878 404.5791 272.5977 405.0322 C
-272.5977 404.8076 L
-272.6538 404.8076 L
-272.6538 404.4551 274.2334 404.0615 276.501 404.0615 c
-278.769 404.0615 280.3486 404.4551 280.3486 404.8076 C
-280.4038 404.8076 L
-280.4038 405.0322 L
-280.0146 404.5791 278.2119 404.3359 276.501 404.3359 c
-f
-279.1606 413.3857 m
-278.7529 413.3496 278.3232 413.3213 277.8774 413.3027 c
-277.4336 413.2842 276.9727 413.2744 276.501 413.2744 c
-276.0298 413.2744 275.5679 413.2842 275.124 413.3027 c
-274.6782 413.3213 274.25 413.3496 273.8408 413.3857 c
-273.4321 413.4219 273.0439 413.4658 272.6802 413.5166 c
-272.6514 413.5205 272.6255 413.5254 272.5977 413.5293 C
-272.5977 413.4082 L
-272.6538 413.4082 L
-272.6538 413.0557 274.2334 412.6611 276.501 412.6611 c
-278.769 412.6611 280.3486 413.0557 280.3486 413.4082 C
-280.4038 413.4082 L
-280.4038 413.5293 L
-280.376 413.5254 280.3506 413.5205 280.3223 413.5166 c
-279.959 413.4658 279.5698 413.4219 279.1606 413.3857 c
-f
-276.501 412.5264 m
-274.791 412.5264 272.9878 412.7695 272.5977 413.2227 C
-272.5977 412.998 L
-272.6538 412.998 L
-272.6538 412.6455 274.2334 412.252 276.501 412.252 c
-278.769 412.252 280.3486 412.6455 280.3486 412.998 C
-280.4038 412.998 L
-280.4038 413.2227 L
-280.0146 412.7695 278.2119 412.5264 276.501 412.5264 c
-f
-276.501 402.6982 m
-274.791 402.6982 272.9878 402.9404 272.5977 403.3945 C
-272.5977 403.0498 L
-272.5977 402.9932 272.6255 402.9385 272.6768 402.8857 c
-272.7295 402.833 272.8057 402.7822 272.9058 402.7334 c
-273.0039 402.6846 273.124 402.6387 273.2646 402.5957 c
-273.4048 402.5527 273.5654 402.5127 273.7407 402.4756 c
-273.9175 402.4395 274.1113 402.4053 274.3193 402.376 c
-274.5264 402.3477 274.749 402.3223 274.9824 402.3018 c
-275.2158 402.2813 275.4609 402.2646 275.7153 402.2549 c
-275.9688 402.2441 276.2314 402.2383 276.501 402.2383 c
-276.7705 402.2383 277.0347 402.2441 277.2881 402.2549 c
-277.542 402.2646 277.7871 402.2813 278.021 402.3018 c
-278.2534 402.3223 278.4751 402.3477 278.6831 402.376 c
-278.8906 402.4053 279.085 402.4395 279.2607 402.4756 c
-279.4375 402.5127 279.5977 402.5527 279.7378 402.5957 c
-279.8774 402.6387 279.998 402.6846 280.0977 402.7334 c
-280.1958 402.7822 280.2734 402.833 280.3247 402.8857 c
-280.377 402.9385 280.4038 402.9932 280.4038 403.0498 C
-280.4038 403.3945 L
-280.0146 402.9404 278.2119 402.6982 276.501 402.6982 c
-f
-272.6538 403.5791 m
-272.6538 403.2266 274.2334 402.833 276.501 402.833 c
-278.769 402.833 280.3486 403.2266 280.3486 403.5791 C
-280.4038 403.5791 L
-280.4038 403.8037 L
-280.0146 403.3506 278.2119 403.1074 276.501 403.1074 c
-274.791 403.1074 272.9878 403.3506 272.5977 403.8037 C
-272.5977 403.5791 L
-272.6538 403.5791 L
-f
-0.15 g
-276.501 412.6611 m
-274.2334 412.6611 272.6538 413.0557 272.6538 413.4082 C
-272.5977 413.4082 L
-272.5186 413.4082 L
-272.5186 413.3428 272.5479 413.2813 272.5977 413.2227 c
-272.9878 412.7695 274.791 412.5264 276.501 412.5264 c
-278.2119 412.5264 280.0146 412.7695 280.4038 413.2227 c
-280.4546 413.2813 280.4839 413.3428 280.4839 413.4082 C
-280.4038 413.4082 L
-280.3486 413.4082 L
-280.3486 413.0557 278.769 412.6611 276.501 412.6611 c
-f
-276.501 412.252 m
-274.2334 412.252 272.6538 412.6455 272.6538 412.998 C
-272.5977 412.998 L
-272.5186 412.998 L
-272.5186 412.9336 272.5479 412.8721 272.5977 412.8135 c
-272.9878 412.3594 274.791 412.1162 276.501 412.1162 c
-278.2119 412.1162 280.0146 412.3594 280.4038 412.8135 c
-280.4546 412.8721 280.4839 412.9336 280.4839 412.998 C
-280.4038 412.998 L
-280.3486 412.998 L
-280.3486 412.6455 278.769 412.252 276.501 412.252 c
-f
-276.501 411.8428 m
-274.2334 411.8428 272.6538 412.2363 272.6538 412.5889 C
-272.5977 412.5889 L
-272.5186 412.5889 L
-272.5186 412.5234 272.5479 412.4619 272.5977 412.4033 c
-272.9878 411.9502 274.791 411.708 276.501 411.708 c
-278.2119 411.708 280.0146 411.9502 280.4038 412.4033 c
-280.4546 412.4619 280.4839 412.5234 280.4839 412.5889 C
-280.4038 412.5889 L
-280.3486 412.5889 L
-280.3486 412.2363 278.769 411.8428 276.501 411.8428 c
-f
-276.501 411.4326 m
-274.2334 411.4326 272.6538 411.8262 272.6538 412.1787 C
-272.5977 412.1787 L
-272.5186 412.1787 L
-272.5186 412.1143 272.5479 412.0518 272.5977 411.9941 c
-272.9878 411.54 274.791 411.2979 276.501 411.2979 c
-278.2119 411.2979 280.0146 411.54 280.4038 411.9941 c
-280.4546 412.0518 280.4839 412.1143 280.4839 412.1787 C
-280.4038 412.1787 L
-280.3486 412.1787 L
-280.3486 411.8262 278.769 411.4326 276.501 411.4326 c
-f
-276.501 411.0234 m
-274.2334 411.0234 272.6538 411.417 272.6538 411.7695 C
-272.5977 411.7695 L
-272.5186 411.7695 L
-272.5186 411.7041 272.5479 411.6436 272.5977 411.585 c
-272.9878 411.1318 274.791 410.8887 276.501 410.8887 c
-278.2119 410.8887 280.0146 411.1318 280.4038 411.585 c
-280.4546 411.6436 280.4839 411.7041 280.4839 411.7695 C
-280.4038 411.7695 L
-280.3486 411.7695 L
-280.3486 411.417 278.769 411.0234 276.501 411.0234 c
-f
-276.501 410.6133 m
-274.2334 410.6133 272.6538 411.0068 272.6538 411.3604 C
-272.5977 411.3604 L
-272.5186 411.3604 L
-272.5186 411.2949 272.5479 411.2334 272.5977 411.1748 c
-272.9878 410.7217 274.791 410.4785 276.501 410.4785 c
-278.2119 410.4785 280.0146 410.7217 280.4038 411.1748 c
-280.4546 411.2334 280.4839 411.2949 280.4839 411.3604 C
-280.4038 411.3604 L
-280.3486 411.3604 L
-280.3486 411.0068 278.769 410.6133 276.501 410.6133 c
-f
-276.501 410.2041 m
-274.2334 410.2041 272.6538 410.5977 272.6538 410.9512 C
-272.5977 410.9512 L
-272.5186 410.9512 L
-272.5186 410.8857 272.5479 410.8242 272.5977 410.7656 c
-272.9878 410.3115 274.791 410.0693 276.501 410.0693 c
-278.2119 410.0693 280.0146 410.3115 280.4038 410.7656 c
-280.4546 410.8242 280.4839 410.8857 280.4839 410.9512 C
-280.4038 410.9512 L
-280.3486 410.9512 L
-280.3486 410.5977 278.769 410.2041 276.501 410.2041 c
-f
-276.501 409.7949 m
-274.2334 409.7949 272.6538 410.1885 272.6538 410.541 C
-272.5977 410.541 L
-272.5186 410.541 L
-272.5186 410.4756 272.5479 410.4141 272.5977 410.3555 c
-272.9878 409.9023 274.791 409.6592 276.501 409.6592 c
-278.2119 409.6592 280.0146 409.9023 280.4038 410.3555 c
-280.4546 410.4141 280.4839 410.4756 280.4839 410.541 C
-280.4038 410.541 L
-280.3486 410.541 L
-280.3486 410.1885 278.769 409.7949 276.501 409.7949 c
-f
-276.501 409.3857 m
-274.2334 409.3857 272.6538 409.7783 272.6538 410.1318 C
-272.5977 410.1318 L
-272.5186 410.1318 L
-272.5186 410.0664 272.5479 410.0049 272.5977 409.9463 c
-272.9878 409.4932 274.791 409.25 276.501 409.25 c
-278.2119 409.25 280.0146 409.4932 280.4038 409.9463 c
-280.4546 410.0049 280.4839 410.0664 280.4839 410.1318 C
-280.4038 410.1318 L
-280.3486 410.1318 L
-280.3486 409.7783 278.769 409.3857 276.501 409.3857 c
-f
-276.501 408.9756 m
-274.2334 408.9756 272.6538 409.3691 272.6538 409.7227 C
-272.5977 409.7227 L
-272.5186 409.7227 L
-272.5186 409.6572 272.5479 409.5957 272.5977 409.5371 c
-272.9878 409.084 274.791 408.8408 276.501 408.8408 c
-278.2119 408.8408 280.0146 409.084 280.4038 409.5371 c
-280.4546 409.5957 280.4839 409.6572 280.4839 409.7227 C
-280.4038 409.7227 L
-280.3486 409.7227 L
-280.3486 409.3691 278.769 408.9756 276.501 408.9756 c
-f
-276.501 408.5654 m
-274.2334 408.5654 272.6538 408.96 272.6538 409.3125 C
-272.5977 409.3125 L
-272.5186 409.3125 L
-272.5186 409.2471 272.5479 409.1855 272.5977 409.1279 c
-272.9878 408.6738 274.791 408.4307 276.501 408.4307 c
-278.2119 408.4307 280.0146 408.6738 280.4038 409.1279 c
-280.4546 409.1855 280.4839 409.2471 280.4839 409.3125 C
-280.4038 409.3125 L
-280.3486 409.3125 L
-280.3486 408.96 278.769 408.5654 276.501 408.5654 c
-f
-276.501 408.1572 m
-274.2334 408.1572 272.6538 408.5498 272.6538 408.9033 C
-272.5977 408.9033 L
-272.5186 408.9033 L
-272.5186 408.8379 272.5479 408.7764 272.5977 408.7178 c
-272.9878 408.2646 274.791 408.0215 276.501 408.0215 c
-278.2119 408.0215 280.0146 408.2646 280.4038 408.7178 c
-280.4546 408.7764 280.4839 408.8379 280.4839 408.9033 C
-280.4038 408.9033 L
-280.3486 408.9033 L
-280.3486 408.5498 278.769 408.1572 276.501 408.1572 c
-f
-276.501 407.7471 m
-274.2334 407.7471 272.6538 408.1406 272.6538 408.4932 C
-272.5977 408.4932 L
-272.5186 408.4932 L
-272.5186 408.4287 272.5479 408.3662 272.5977 408.3086 c
-272.9878 407.8545 274.791 407.6123 276.501 407.6123 c
-278.2119 407.6123 280.0146 407.8545 280.4038 408.3086 c
-280.4546 408.3662 280.4839 408.4287 280.4839 408.4932 C
-280.4038 408.4932 L
-280.3486 408.4932 L
-280.3486 408.1406 278.769 407.7471 276.501 407.7471 c
-f
-276.501 407.3379 m
-274.2334 407.3379 272.6538 407.7314 272.6538 408.084 C
-272.5977 408.084 L
-272.5186 408.084 L
-272.5186 408.0186 272.5479 407.957 272.5977 407.8994 c
-272.9878 407.4453 274.791 407.2021 276.501 407.2021 c
-278.2119 407.2021 280.0146 407.4453 280.4038 407.8994 c
-280.4546 407.957 280.4839 408.0186 280.4839 408.084 C
-280.4038 408.084 L
-280.3486 408.084 L
-280.3486 407.7314 278.769 407.3379 276.501 407.3379 c
-f
-276.501 406.9277 m
-274.2334 406.9277 272.6538 407.3213 272.6538 407.6748 C
-272.5977 407.6748 L
-272.5186 407.6748 L
-272.5186 407.6094 272.5479 407.5479 272.5977 407.4893 c
-272.9878 407.0361 274.791 406.793 276.501 406.793 c
-278.2119 406.793 280.0146 407.0361 280.4038 407.4893 c
-280.4546 407.5479 280.4839 407.6094 280.4839 407.6748 C
-280.4038 407.6748 L
-280.3486 407.6748 L
-280.3486 407.3213 278.769 406.9277 276.501 406.9277 c
-f
-276.501 406.5186 m
-274.2334 406.5186 272.6538 406.9121 272.6538 407.2646 C
-272.5977 407.2646 L
-272.5186 407.2646 L
-272.5186 407.2002 272.5479 407.1377 272.5977 407.0801 c
-272.9878 406.626 274.791 406.3838 276.501 406.3838 c
-278.2119 406.3838 280.0146 406.626 280.4038 407.0801 c
-280.4546 407.1377 280.4839 407.2002 280.4839 407.2646 C
-280.4038 407.2646 L
-280.3486 407.2646 L
-280.3486 406.9121 278.769 406.5186 276.501 406.5186 c
-f
-276.501 406.1084 m
-274.2334 406.1084 272.6538 406.5029 272.6538 406.8555 C
-272.5977 406.8555 L
-272.5186 406.8555 L
-272.5186 406.79 272.5479 406.7285 272.5977 406.6699 c
-272.9878 406.2168 274.791 405.9736 276.501 405.9736 c
-278.2119 405.9736 280.0146 406.2168 280.4038 406.6699 c
-280.4546 406.7285 280.4839 406.79 280.4839 406.8555 C
-280.4038 406.8555 L
-280.3486 406.8555 L
-280.3486 406.5029 278.769 406.1084 276.501 406.1084 c
-f
-276.501 405.6992 m
-274.2334 405.6992 272.6538 406.0928 272.6538 406.4463 C
-272.5977 406.4463 L
-272.5186 406.4463 L
-272.5186 406.3809 272.5479 406.3193 272.5977 406.2607 c
-272.9878 405.8076 274.791 405.5645 276.501 405.5645 c
-278.2119 405.5645 280.0146 405.8076 280.4038 406.2607 c
-280.4546 406.3193 280.4839 406.3809 280.4839 406.4463 C
-280.4038 406.4463 L
-280.3486 406.4463 L
-280.3486 406.0928 278.769 405.6992 276.501 405.6992 c
-f
-276.501 405.29 m
-274.2334 405.29 272.6538 405.6836 272.6538 406.0361 C
-272.5977 406.0361 L
-272.5186 406.0361 L
-272.5186 405.9717 272.5479 405.9092 272.5977 405.8506 c
-272.9878 405.3975 274.791 405.1553 276.501 405.1553 c
-278.2119 405.1553 280.0146 405.3975 280.4038 405.8506 c
-280.4546 405.9092 280.4839 405.9717 280.4839 406.0361 C
-280.4038 406.0361 L
-280.3486 406.0361 L
-280.3486 405.6836 278.769 405.29 276.501 405.29 c
-f
-276.501 404.8799 m
-274.2334 404.8799 272.6538 405.2744 272.6538 405.627 C
-272.5977 405.627 L
-272.5186 405.627 L
-272.5186 405.5615 272.5479 405.5 272.5977 405.4414 c
-272.9878 404.9883 274.791 404.7451 276.501 404.7451 c
-278.2119 404.7451 280.0146 404.9883 280.4038 405.4414 c
-280.4546 405.5 280.4839 405.5615 280.4839 405.627 C
-280.4038 405.627 L
-280.3486 405.627 L
-280.3486 405.2744 278.769 404.8799 276.501 404.8799 c
-f
-276.501 404.4707 m
-274.2334 404.4707 272.6538 404.8643 272.6538 405.2178 C
-272.5977 405.2178 L
-272.5186 405.2178 L
-272.5186 405.1523 272.5479 405.0908 272.5977 405.0322 c
-272.9878 404.5791 274.791 404.3359 276.501 404.3359 c
-278.2119 404.3359 280.0146 404.5791 280.4038 405.0322 c
-280.4546 405.0908 280.4839 405.1523 280.4839 405.2178 C
-280.4038 405.2178 L
-280.3486 405.2178 L
-280.3486 404.8643 278.769 404.4707 276.501 404.4707 c
-f
-276.501 404.0615 m
-274.2334 404.0615 272.6538 404.4551 272.6538 404.8076 C
-272.5977 404.8076 L
-272.5186 404.8076 L
-272.5186 404.7422 272.5479 404.6807 272.5977 404.6221 c
-272.9878 404.1689 274.791 403.9268 276.501 403.9268 c
-278.2119 403.9268 280.0146 404.1689 280.4038 404.6221 c
-280.4546 404.6807 280.4839 404.7422 280.4839 404.8076 C
-280.4038 404.8076 L
-280.3486 404.8076 L
-280.3486 404.4551 278.769 404.0615 276.501 404.0615 c
-f
-276.501 403.6514 m
-274.2334 403.6514 272.6538 404.0449 272.6538 404.3984 C
-272.5977 404.3984 L
-272.5186 404.3984 L
-272.5186 404.333 272.5479 404.2715 272.5977 404.2129 c
-272.9878 403.7598 274.791 403.5166 276.501 403.5166 c
-278.2119 403.5166 280.0146 403.7598 280.4038 404.2129 c
-280.4546 404.2715 280.4839 404.333 280.4839 404.3984 C
-280.4038 404.3984 L
-280.3486 404.3984 L
-280.3486 404.0449 278.769 403.6514 276.501 403.6514 c
-f
-276.501 403.2422 m
-274.2334 403.2422 272.6538 403.6357 272.6538 403.9893 C
-272.5977 403.9893 L
-272.5186 403.9893 L
-272.5186 403.9395 272.5386 403.8926 272.5679 403.8467 c
-272.5767 403.832 272.5854 403.8174 272.5977 403.8037 c
-272.9878 403.3506 274.791 403.1074 276.501 403.1074 c
-278.2119 403.1074 280.0146 403.3506 280.4038 403.8037 c
-280.416 403.8174 280.4248 403.832 280.4336 403.8467 c
-280.4639 403.8926 280.4839 403.9395 280.4839 403.9893 C
-280.4038 403.9893 L
-280.3486 403.9893 L
-280.3486 403.6357 278.769 403.2422 276.501 403.2422 c
-f
-276.501 402.833 m
-274.2334 402.833 272.6538 403.2266 272.6538 403.5791 C
-272.5977 403.5791 L
-272.5186 403.5791 L
-272.5186 403.5146 272.5479 403.4521 272.5977 403.3945 c
-272.9878 402.9404 274.791 402.6982 276.501 402.6982 c
-278.2119 402.6982 280.0146 402.9404 280.4038 403.3945 c
-280.4546 403.4521 280.4839 403.5146 280.4839 403.5791 C
-280.4038 403.5791 L
-280.3486 403.5791 L
-280.3486 403.2266 278.769 402.833 276.501 402.833 c
-f
-0.67 g
-283.1563 416.1855 m
-283.0674 416.1064 282.9482 416.0283 282.7979 415.9551 c
-282.7979 415.9541 282.7969 415.9541 282.7959 415.9541 c
-282.7095 415.9111 282.6152 415.8701 282.5103 415.8311 c
-282.5103 415.8311 l
-282.3008 415.751 282.0562 415.6748 281.7793 415.6055 c
-281.7759 415.6045 281.7729 415.6035 281.7695 415.6025 c
-281.2168 415.4639 280.5391 415.3477 279.7729 415.2607 c
-279.7622 415.2598 279.7534 415.2588 279.7432 415.2568 c
-279.3682 415.2148 278.9712 415.1797 278.5586 415.1533 c
-278.54 415.1514 278.5234 415.1504 278.5059 415.1494 c
-278.3145 415.1377 278.1201 415.127 277.9219 415.1182 c
-277.9072 415.1182 277.8936 415.1162 277.8774 415.1162 c
-277.8643 415.1152 277.8496 415.1152 277.8354 415.1143 c
-277.6294 415.1064 277.4209 415.0996 277.2095 415.0947 c
-277.2041 415.0947 277.1968 415.0947 277.1904 415.0947 c
-276.9639 415.0898 276.7344 415.0869 276.501 415.0869 c
-276.269 415.0869 276.0386 415.0898 275.811 415.0947 c
-275.8057 415.0947 275.7983 415.0947 275.792 415.0947 c
-275.5811 415.0996 275.3721 415.1064 275.167 415.1143 c
-275.1538 415.1152 275.1377 415.1152 275.124 415.1162 c
-275.1089 415.1162 275.0942 415.1182 275.0801 415.1182 c
-274.8818 415.127 274.6865 415.1377 274.4951 415.1494 c
-274.4785 415.1504 274.4614 415.1514 274.4458 415.1533 c
-274.0313 415.1797 273.6338 415.2148 273.2568 415.2568 c
-273.248 415.2588 273.2402 415.2588 273.2305 415.2598 c
-272.4639 415.3477 271.7847 415.4639 271.2319 415.6025 c
-271.2295 415.6035 271.2266 415.6045 271.2241 415.6055 c
-270.8086 415.71 270.4648 415.8271 270.2061 415.9541 c
-270.2041 415.9541 270.2041 415.9551 v
-270.1279 415.9922 270.0591 416.0313 269.999 416.0703 c
-269.853 416.1641 269.7515 416.2617 269.7026 416.3623 c
-269.6782 416.4102 269.667 416.459 269.667 416.5078 C
-269.667 414.6953 L
-269.667 414.5967 269.7153 414.501 269.8057 414.4092 c
-269.897 414.3164 270.0303 414.2275 270.2041 414.1416 c
-270.377 414.0576 270.5879 413.9756 270.834 413.9004 c
-271.0801 413.8252 271.3594 413.7549 271.6689 413.6904 c
-271.9546 413.6309 272.2666 413.5771 272.5977 413.5293 c
-272.6255 413.5254 272.6514 413.5205 272.6802 413.5166 c
-273.0439 413.4658 273.4321 413.4219 273.8408 413.3857 c
-274.25 413.3496 274.6782 413.3213 275.124 413.3027 c
-275.5679 413.2842 276.0298 413.2744 276.501 413.2744 c
-276.9727 413.2744 277.4336 413.2842 277.8774 413.3027 c
-278.3232 413.3213 278.7529 413.3496 279.1606 413.3857 c
-279.5698 413.4219 279.959 413.4658 280.3223 413.5166 c
-280.3506 413.5205 280.376 413.5254 280.4038 413.5293 c
-280.7354 413.5771 281.0479 413.6309 281.334 413.6904 c
-281.6426 413.7549 281.9233 413.8252 282.168 413.9004 c
-282.4141 413.9756 282.6255 414.0576 282.7979 414.1416 c
-282.9712 414.2275 283.1055 414.3164 283.1958 414.4092 c
-283.2881 414.501 283.3354 414.5967 283.3354 414.6953 C
-283.3354 416.5078 L
-283.3354 416.4346 283.3086 416.3623 283.2568 416.292 c
-283.2305 416.2559 283.1958 416.2207 283.1563 416.1855 c
-f
-0.39 g
-281.083 417.5625 m
-280.6304 416.6553 279.9375 416.1982 279.9033 416.1768 C
-279.8862 416.167 L
-272.8672 416.167 L
-272.8506 416.2998 L
-272.8574 416.3018 273.563 416.501 274.3018 417.8535 C
-271.6064 417.6631 269.667 417.1328 269.667 416.5078 c
-269.667 416.459 269.6782 416.4102 269.7026 416.3623 c
-269.7515 416.2617 269.853 416.1641 269.999 416.0703 c
-270.061 416.0303 270.1289 415.9922 270.2061 415.9541 c
-270.4648 415.8271 270.8086 415.71 271.2241 415.6055 c
-271.2266 415.6045 271.2295 415.6035 271.2319 415.6025 c
-271.7847 415.4639 272.4639 415.3477 273.2305 415.2598 c
-273.2402 415.2588 273.248 415.2588 273.2568 415.2568 c
-273.6338 415.2148 274.0313 415.1797 274.4458 415.1533 c
-274.4614 415.1514 274.4785 415.1504 274.4951 415.1494 c
-274.6865 415.1377 274.8818 415.127 275.0801 415.1182 c
-275.1099 415.1172 275.1377 415.1162 275.167 415.1143 c
-275.3721 415.1064 275.5811 415.0996 275.792 415.0947 c
-275.7983 415.0947 275.8057 415.0947 275.811 415.0947 c
-276.0386 415.0898 276.269 415.0869 276.501 415.0869 c
-276.7344 415.0869 276.9639 415.0898 277.1904 415.0947 c
-277.1968 415.0947 277.2041 415.0947 277.2095 415.0947 c
-277.4209 415.0996 277.6294 415.1064 277.8354 415.1143 c
-277.8643 415.1162 277.8936 415.1172 277.9219 415.1182 c
-278.1201 415.127 278.3145 415.1377 278.5059 415.1494 c
-278.5234 415.1504 278.54 415.1514 278.5586 415.1533 c
-278.9712 415.1797 279.3682 415.2148 279.7432 415.2568 c
-279.7534 415.2588 279.7622 415.2598 279.7729 415.2607 c
-280.5391 415.3477 281.2168 415.4639 281.7695 415.6025 c
-281.7729 415.6035 281.7759 415.6045 281.7793 415.6055 c
-282.0562 415.6748 282.3008 415.751 282.5103 415.8311 C
-282.5103 415.8311 L
-282.6152 415.8701 282.7095 415.9111 282.7959 415.9541 c
-282.9473 416.0283 283.0674 416.1055 283.1563 416.1855 c
-283.1958 416.2207 283.2305 416.2559 283.2568 416.292 c
-283.3086 416.3623 283.3354 416.4346 283.3354 416.5078 c
-283.3354 416.9268 282.4658 417.3018 281.083 417.5625 C
-f
-*u
-1 g
-1 D
-273.1592 416.3018 m
-273.6958 416.3018 279.8057 416.3018 279.8457 416.3018 C
-279.9287 416.3574 280.7754 416.9521 281.1494 418.0723 c
-281.2202 418.2842 281.2446 418.5225 281.2446 418.7793 c
-281.2446 419.1416 281.1938 419.542 281.1392 419.9551 c
-281.0811 420.3994 281.019 420.8711 281.019 421.3389 c
-281.019 421.917 281.1143 422.4893 281.4248 423 c
-282.1143 424.1328 282.813 424.6846 283.1553 424.9092 C
-282.6978 424.9092 276.4614 424.9141 Y
-276.4438 424.9072 274.7515 424.127 274.6177 422.5547 c
-274.6064 422.4326 274.6016 422.3135 274.6016 422.1953 c
-274.6016 421.7158 274.6777 421.2627 274.752 420.8213 c
-274.8257 420.3857 274.897 419.9609 274.897 419.5264 c
-274.897 419.0469 274.8096 418.5547 274.5435 418.0205 c
-274.0049 416.9463 273.4722 416.4912 273.1592 416.3018 C
-f
-0 D
-279.5977 417.2432 m
-275.0879 417.2432 L
-275.0879 417.3779 L
-279.5977 417.3779 L
-279.5977 417.2432 L
-f
-280.1362 421.4834 m
-275.6943 421.4834 L
-275.6943 421.6182 L
-280.1362 421.6182 L
-280.1362 421.4834 L
-f
-280.3374 419.9355 m
-280.3374 419.8008 L
-275.8286 419.8008 L
-275.8286 419.9355 L
-280.3374 419.9355 L
-f
-1 D
-275.7607 420.6094 m
-279.8662 420.6094 L
-279.8662 420.4746 L
-275.7607 420.4746 L
-275.7607 420.6094 L
-f
-0 D
-275.8286 418.9932 m
-280.2705 418.9932 L
-280.2705 418.8584 L
-275.8286 418.8584 L
-275.8286 418.9932 L
-f
-276.501 424.3115 m
-281.1455 424.3115 L
-281.1455 424.1758 L
-276.501 424.1758 L
-276.501 424.3115 L
-f
-1 D
-276.0303 423.7725 m
-279.7314 423.7725 L
-279.7314 423.6377 L
-276.0303 423.6377 L
-276.0303 423.7725 L
-f
-0 D
-275.6943 423.0322 m
-280.4048 423.0322 L
-280.4048 422.8975 L
-275.6943 422.8975 L
-275.6943 423.0322 L
-f
-275.5591 422.292 m
-280.2705 422.292 L
-280.2705 422.1572 L
-275.5591 422.1572 L
-275.5591 422.292 L
-f
-275.5591 418.1865 m
-279.9346 418.1865 L
-279.9346 418.0508 L
-275.5591 418.0508 L
-275.5591 418.1865 L
-f
-*U
-*u
-0 g
-1 D
-272.8506 416.2998 m
-272.8672 416.167 L
-279.8862 416.167 L
-279.9033 416.1768 L
-279.9375 416.1982 280.6304 416.6553 281.083 417.5625 c
-281.1553 417.707 281.2217 417.8623 281.2778 418.0303 c
-281.4561 418.5684 281.3682 419.25 281.2734 419.9727 c
-281.1392 420.9922 281.0034 422.0469 281.54 422.9297 c
-282.459 424.4395 283.4209 424.9102 283.4307 424.915 C
-283.4019 425.0439 L
-276.4346 425.0439 L
-276.3887 425.0293 274.624 424.2188 274.4824 422.5664 c
-274.4282 421.9346 274.5254 421.3574 274.6187 420.7998 c
-274.769 419.9043 274.9111 419.0596 274.4219 418.0811 c
-274.3818 418.001 274.3418 417.9268 274.3018 417.8535 c
-273.563 416.501 272.8574 416.3018 272.8506 416.2998 C
-f
-0 D
-274.897 419.5264 m
-274.897 419.9609 274.8257 420.3857 274.752 420.8213 c
-274.6777 421.2627 274.6016 421.7158 274.6016 422.1953 c
-274.6016 422.3135 274.6064 422.4326 274.6177 422.5547 c
-274.7515 424.127 276.4438 424.9072 276.4614 424.9141 C
-282.6978 424.9092 283.1553 424.9092 V
-282.813 424.6846 282.1143 424.1328 281.4248 423 c
-281.1143 422.4893 281.019 421.917 281.019 421.3389 c
-281.019 420.8711 281.0811 420.3994 281.1392 419.9551 c
-281.1938 419.542 281.2446 419.1416 281.2446 418.7793 c
-281.2446 418.5225 281.2202 418.2842 281.1494 418.0723 c
-280.7754 416.9521 279.9287 416.3574 279.8457 416.3018 C
-279.8057 416.3018 273.6958 416.3018 273.1592 416.3018 C
-273.4722 416.4912 274.0049 416.9463 274.5435 418.0205 c
-274.8096 418.5547 274.897 419.0469 274.897 419.5264 c
-f
-*U
-281.1455 424.3115 m
-276.501 424.3115 L
-276.501 424.1758 L
-281.1455 424.1758 L
-281.1455 424.3115 L
-f
-279.7314 423.7725 m
-276.0303 423.7725 L
-276.0303 423.6377 L
-279.7314 423.6377 L
-279.7314 423.7725 L
-f
-280.4048 423.0322 m
-275.6943 423.0322 L
-275.6943 422.8975 L
-280.4048 422.8975 L
-280.4048 423.0322 L
-f
-280.2705 422.292 m
-275.5591 422.292 L
-275.5591 422.1572 L
-280.2705 422.1572 L
-280.2705 422.292 L
-f
-275.6943 421.4834 m
-280.1362 421.4834 L
-280.1362 421.6182 L
-275.6943 421.6182 L
-275.6943 421.4834 L
-f
-279.8662 420.6094 m
-275.7607 420.6094 L
-275.7607 420.4746 L
-279.8662 420.4746 L
-279.8662 420.6094 L
-f
-275.8286 419.8008 m
-280.3374 419.8008 L
-280.3374 419.9355 L
-275.8286 419.9355 L
-275.8286 419.8008 L
-f
-280.2705 418.9932 m
-275.8286 418.9932 L
-275.8286 418.8584 L
-280.2705 418.8584 L
-280.2705 418.9932 L
-f
-279.9346 418.1865 m
-275.5591 418.1865 L
-275.5591 418.0508 L
-279.9346 418.0508 L
-279.9346 418.1865 L
-f
-275.0879 417.2432 m
-279.5977 417.2432 L
-279.5977 417.3779 L
-275.0879 417.3779 L
-275.0879 417.2432 L
-f
-U
-U
-U
-0 To
-1 0 0 1 277.3394 389.4922 0 Tp
-0 Tv
-TP
--11.5064 0 Td
-0 Tr
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ -- XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Spool) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-U
-U
-(Adobe Scatter Brush Tool) 1 0 61 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000033FA5072696E742073706F6F6C65
-%72
-/Adobe_Brushed_Path () XT
-u
-%_0 R
-%_0 G
-%_1 M
-%_316.5801 491.5308 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-316.5801 491.5308 m
-F
-u
-*u
-0 R
-1 G
-322.5762 501.5332 m
-322.5762 499.7207 L
-322.5762 499.6221 322.5293 499.5264 322.4365 499.4346 c
-322.3457 499.3418 322.2119 499.2529 322.0391 499.167 c
-321.8662 499.083 321.6543 499.001 321.4082 498.9258 c
-321.1641 498.8506 320.8828 498.7803 320.5742 498.7158 c
-320.2891 498.6563 319.9766 498.6025 319.6445 498.5547 C
-319.6445 498.4336 L
-319.7246 498.4336 L
-319.7246 498.3682 319.6953 498.3066 319.6445 498.248 C
-319.6445 498.0234 L
-319.7246 498.0234 L
-319.7246 497.959 319.6953 497.8975 319.6445 497.8389 C
-319.6445 497.6143 L
-319.7246 497.6143 L
-319.7246 497.5488 319.6953 497.4873 319.6445 497.4287 C
-319.6445 497.2041 L
-319.7246 497.2041 L
-319.7246 497.1396 319.6953 497.0771 319.6445 497.0195 C
-319.6445 496.7949 L
-319.7246 496.7949 L
-319.7246 496.7295 319.6953 496.6689 319.6445 496.6104 C
-319.6445 496.3857 L
-319.7246 496.3857 L
-319.7246 496.3203 319.6953 496.2588 319.6445 496.2002 C
-319.6445 495.9766 L
-319.7246 495.9766 L
-319.7246 495.9111 319.6953 495.8496 319.6445 495.791 C
-319.6445 495.5664 L
-319.7246 495.5664 L
-319.7246 495.501 319.6953 495.4395 319.6445 495.3809 C
-319.6445 495.1572 L
-319.7246 495.1572 L
-319.7246 495.0918 319.6953 495.0303 319.6445 494.9717 C
-319.6445 494.748 L
-319.7246 494.748 L
-319.7246 494.6826 319.6953 494.6211 319.6445 494.5625 C
-319.6445 494.3379 L
-319.7246 494.3379 L
-319.7246 494.2725 319.6953 494.2109 319.6445 494.1533 C
-319.6445 493.9287 L
-319.7246 493.9287 L
-319.7246 493.8633 319.6953 493.8018 319.6445 493.7432 C
-319.6445 493.5186 L
-319.7246 493.5186 L
-319.7246 493.4541 319.6953 493.3916 319.6445 493.334 C
-319.6445 493.1094 L
-319.7246 493.1094 L
-319.7246 493.0439 319.6953 492.9824 319.6445 492.9248 C
-319.6445 492.7002 L
-319.7246 492.7002 L
-319.7246 492.6348 319.6953 492.5732 319.6445 492.5146 C
-319.6445 492.29 L
-319.7246 492.29 L
-319.7246 492.2256 319.6953 492.1631 319.6445 492.1055 C
-319.6445 491.8809 L
-319.7246 491.8809 L
-319.7246 491.8154 319.6953 491.7539 319.6445 491.6953 C
-319.6445 491.4717 L
-319.7246 491.4717 L
-319.7246 491.4063 319.6953 491.3447 319.6445 491.2861 C
-319.6445 491.0615 L
-319.7246 491.0615 L
-319.7246 490.9971 319.6953 490.9346 319.6445 490.876 C
-319.6445 490.6523 L
-319.7246 490.6523 L
-319.7246 490.5869 319.6953 490.5254 319.6445 490.4668 C
-319.6445 490.2432 L
-319.7246 490.2432 L
-319.7246 490.1777 319.6953 490.1162 319.6445 490.0576 C
-319.6445 489.833 L
-319.7246 489.833 L
-319.7246 489.7676 319.6953 489.7061 319.6445 489.6475 C
-319.6445 489.4238 L
-319.7246 489.4238 L
-319.7246 489.3584 319.6953 489.2969 319.6445 489.2383 C
-319.6445 489.0146 L
-319.7246 489.0146 L
-319.7246 488.9648 319.7051 488.918 319.6738 488.8721 C
-321.4297 488.6143 322.5762 488.1904 322.5762 487.71 c
-322.5762 487.6543 322.5566 487.5986 322.5254 487.5439 c
-322.5566 487.5986 322.5762 487.6543 322.5762 487.71 C
-322.5762 485.8975 L
-322.5762 485.7988 322.5293 485.7031 322.4365 485.6104 c
-322.3457 485.5186 322.2119 485.4287 322.0391 485.3438 c
-321.8662 485.2588 321.6543 485.1787 321.4082 485.1025 c
-321.1641 485.0273 320.8828 484.957 320.5742 484.8926 c
-320.2646 484.8281 319.9277 484.7695 319.5625 484.7188 c
-319.1992 484.667 318.8105 484.624 318.4014 484.5879 c
-317.9941 484.5518 317.5645 484.5234 317.1182 484.5049 c
-316.6738 484.4863 316.2129 484.4766 315.7422 484.4766 c
-315.2705 484.4766 314.8086 484.4863 314.3652 484.5049 c
-313.9189 484.5234 313.4902 484.5518 313.082 484.5879 c
-312.6729 484.624 312.2852 484.667 311.9209 484.7188 c
-311.5576 484.7695 311.2188 484.8281 310.9102 484.8926 c
-310.5996 484.957 310.3203 485.0273 310.0742 485.1025 c
-309.8281 485.1787 309.6172 485.2588 309.4453 485.3438 c
-309.2715 485.4287 309.1377 485.5186 309.0469 485.6104 c
-308.9561 485.7031 308.9082 485.7988 308.9082 485.8975 C
-308.9082 487.71 L
-308.9082 488.1904 310.0547 488.6143 311.8086 488.8721 C
-311.7793 488.918 311.7598 488.9648 311.7598 489.0146 C
-311.8379 489.0146 L
-311.8379 489.2383 L
-311.7891 489.2969 311.7598 489.3584 311.7598 489.4238 C
-311.8379 489.4238 L
-311.8379 489.6475 L
-311.7891 489.7061 311.7598 489.7676 311.7598 489.833 C
-311.8379 489.833 L
-311.8379 490.0576 L
-311.7891 490.1162 311.7598 490.1777 311.7598 490.2432 C
-311.8379 490.2432 L
-311.8379 490.4668 L
-311.7891 490.5254 311.7598 490.5869 311.7598 490.6523 C
-311.8379 490.6523 L
-311.8379 490.876 L
-311.7891 490.9346 311.7598 490.9971 311.7598 491.0615 C
-311.8379 491.0615 L
-311.8379 491.2861 L
-311.7891 491.3447 311.7598 491.4063 311.7598 491.4717 C
-311.8379 491.4717 L
-311.8379 491.6953 L
-311.7891 491.7539 311.7598 491.8154 311.7598 491.8809 C
-311.8379 491.8809 L
-311.8379 492.1055 L
-311.7891 492.1631 311.7598 492.2256 311.7598 492.29 C
-311.8379 492.29 L
-311.8379 492.5146 L
-311.7891 492.5732 311.7598 492.6348 311.7598 492.7002 C
-311.8379 492.7002 L
-311.8379 492.9248 L
-311.7891 492.9824 311.7598 493.0439 311.7598 493.1094 C
-311.8379 493.1094 L
-311.8379 493.334 L
-311.7891 493.3916 311.7598 493.4541 311.7598 493.5186 C
-311.8379 493.5186 L
-311.8379 493.7432 L
-311.7891 493.8018 311.7598 493.8633 311.7598 493.9287 C
-311.8379 493.9287 L
-311.8379 494.1533 L
-311.7891 494.2109 311.7598 494.2725 311.7598 494.3379 C
-311.8379 494.3379 L
-311.8379 494.5625 L
-311.7891 494.6211 311.7598 494.6826 311.7598 494.748 C
-311.8379 494.748 L
-311.8379 494.9717 L
-311.7891 495.0303 311.7598 495.0918 311.7598 495.1572 C
-311.8379 495.1572 L
-311.8379 495.3809 L
-311.7891 495.4395 311.7598 495.501 311.7598 495.5664 C
-311.8379 495.5664 L
-311.8379 495.791 L
-311.7891 495.8496 311.7598 495.9111 311.7598 495.9766 C
-311.8379 495.9766 L
-311.8379 496.2002 L
-311.7891 496.2588 311.7598 496.3203 311.7598 496.3857 C
-311.8379 496.3857 L
-311.8379 496.6104 L
-311.7891 496.6689 311.7598 496.7295 311.7598 496.7949 C
-311.8379 496.7949 L
-311.8379 497.0195 L
-311.7891 497.0771 311.7598 497.1396 311.7598 497.2041 C
-311.8379 497.2041 L
-311.8379 497.4287 L
-311.7891 497.4873 311.7598 497.5488 311.7598 497.6143 C
-311.8379 497.6143 L
-311.8379 497.8389 L
-311.7891 497.8975 311.7598 497.959 311.7598 498.0234 C
-311.8379 498.0234 L
-311.8379 498.248 L
-311.7891 498.3066 311.7598 498.3682 311.7598 498.4336 C
-311.8379 498.4336 L
-311.8379 498.5547 L
-311.5078 498.6025 311.1953 498.6563 310.9102 498.7158 c
-310.5996 498.7803 310.3203 498.8506 310.0742 498.9258 c
-309.8281 499.001 309.6172 499.083 309.4453 499.167 c
-309.2715 499.2529 309.1377 499.3418 309.0469 499.4346 c
-308.9561 499.5264 308.9082 499.6221 308.9082 499.7207 C
-308.9082 501.5332 L
-308.9082 502.1582 310.8477 502.6885 313.543 502.8789 C
-313.582 502.9521 313.623 503.0264 313.6621 503.1064 c
-314.1523 504.085 314.0098 504.9297 313.8594 505.8252 c
-313.7656 506.3828 313.6689 506.96 313.7227 507.5918 c
-313.8652 509.2441 315.6289 510.0547 315.6758 510.0693 C
-322.6426 510.0693 L
-322.6719 509.9404 L
-322.6621 509.9355 321.6992 509.4648 320.7813 507.9551 c
-320.2441 507.0723 320.3799 506.0176 320.5137 504.998 c
-320.6094 504.2754 320.6973 503.5938 320.5186 503.0557 c
-320.4629 502.8877 320.3965 502.7324 320.3242 502.5879 C
-321.707 502.3271 322.5762 501.9521 322.5762 501.5332 C
-s
-1 D
-309.4473 500.9795 m
-309.3691 501.0176 309.3018 501.0557 309.2402 501.0957 c
-309.2998 501.0566 309.3691 501.0176 309.4453 500.9805 C
-309.4453 500.9795 309.4473 500.9795 Y
-s
-0 D
-310.9102 486.7051 m
-310.9102 486.7061 310.9082 486.7061 v
-310.9102 486.7061 310.9102 486.7051 V
-310.9102 486.7051 l
-s
-314.3857 486.3174 m
-314.3701 486.3174 314.3574 486.3184 314.3438 486.3193 C
-314.3516 486.3193 314.3574 486.3184 314.3652 486.3174 C
-314.3701 486.3174 314.3789 486.3174 314.3857 486.3174 c
-s
-317.1406 486.3193 m
-317.127 486.3184 317.1113 486.3174 317.0996 486.3174 c
-317.1055 486.3174 317.1133 486.3174 317.1182 486.3174 C
-317.127 486.3184 317.1318 486.3193 317.1406 486.3193 C
-s
-1 D
-322.3613 487.3545 m
-322.3896 487.3779 322.4141 487.4004 322.4365 487.4238 c
-322.459 487.4463 322.4707 487.4707 322.4883 487.4932 c
-322.4531 487.4463 322.417 487.4004 322.3613 487.3545 c
-s
-322.3965 501.2109 m
-322.3086 501.1309 322.1875 501.0537 322.0371 500.9795 C
-322.0391 500.9795 322.0391 500.9805 V
-322.1895 501.0537 322.3086 501.1318 322.3965 501.2109 c
-s
-*U
-u
-0 O
-0 g
-0 D
-315.7891 497.2725 m
-F
-u
-u
-0.67 g
-322.3613 487.3545 m
-322.2773 487.2871 322.1689 487.2207 322.0391 487.1572 C
-322.0391 487.1572 L
-322.0391 487.1572 L
-321.4355 486.8604 320.3594 486.6143 319.0059 486.4619 c
-319.002 486.4609 318.9961 486.46 318.9922 486.46 c
-318.8057 486.4385 318.6133 486.4199 318.418 486.4023 c
-318.4121 486.4014 318.4082 486.4014 318.4014 486.4014 c
-318.3965 486.4004 318.3906 486.3994 318.3857 486.3994 c
-318.1895 486.3818 317.9883 486.3672 317.7832 486.3535 c
-317.7773 486.3535 317.7715 486.3525 317.7656 486.3525 c
-317.5605 486.3389 317.3516 486.3281 317.1406 486.3193 c
-317.1318 486.3193 317.127 486.3184 317.1182 486.3174 c
-317.1133 486.3174 317.1055 486.3174 317.0996 486.3174 c
-316.6602 486.2988 316.207 486.2891 315.7422 486.2891 c
-315.2773 486.2891 314.8242 486.2988 314.3857 486.3174 c
-314.3789 486.3174 314.3701 486.3174 314.3652 486.3174 c
-314.3574 486.3184 314.3516 486.3193 314.3438 486.3193 c
-314.1318 486.3281 313.9219 486.3398 313.7188 486.3525 c
-313.7129 486.3525 313.708 486.3535 313.7012 486.3535 c
-313.4961 486.3672 313.293 486.3818 313.0967 486.3994 c
-313.0918 486.3994 313.0859 486.4004 313.082 486.4014 c
-313.0781 486.4014 313.0723 486.4014 313.0684 486.4023 c
-312.8701 486.4189 312.6777 486.4385 312.4902 486.46 c
-312.4873 486.46 312.4824 486.4609 312.4785 486.4619 c
-311.9004 486.5264 311.373 486.6094 310.9102 486.7051 c
-310.9102 486.7051 l
-310.9102 486.7061 310.9082 486.7061 y
-310.291 486.834 309.791 486.9873 309.4453 487.1572 C
-309.4453 487.1572 L
-309.4453 487.1572 L
-309.2471 487.2539 309.1006 487.3564 309.0117 487.4639 c
-308.9453 487.5439 308.9082 487.626 308.9082 487.71 C
-308.9082 485.8975 L
-308.9082 485.7988 308.9561 485.7031 309.0469 485.6104 c
-309.1377 485.5186 309.2715 485.4287 309.4453 485.3438 c
-309.6172 485.2588 309.8281 485.1787 310.0742 485.1025 c
-310.3203 485.0273 310.5996 484.957 310.9102 484.8926 c
-311.2188 484.8281 311.5576 484.7695 311.9209 484.7188 c
-312.2852 484.667 312.6729 484.624 313.082 484.5879 c
-313.4902 484.5518 313.9189 484.5234 314.3652 484.5049 c
-314.8086 484.4863 315.2705 484.4766 315.7422 484.4766 c
-316.2129 484.4766 316.6738 484.4863 317.1182 484.5049 c
-317.5645 484.5234 317.9941 484.5518 318.4014 484.5879 c
-318.8105 484.624 319.1992 484.667 319.5625 484.7188 c
-319.9277 484.7695 320.2646 484.8281 320.5742 484.8926 c
-320.8828 484.957 321.1641 485.0273 321.4082 485.1025 c
-321.6543 485.1787 321.8662 485.2588 322.0391 485.3438 c
-322.2119 485.4287 322.3457 485.5186 322.4365 485.6104 c
-322.5293 485.7031 322.5762 485.7988 322.5762 485.8975 C
-322.5762 487.71 L
-322.5762 487.6123 322.5293 487.5166 322.4365 487.4238 c
-322.4141 487.4004 322.3896 487.3779 322.3613 487.3545 c
-f
-0.39 g
-319.6445 488.6045 m
-319.7246 488.6045 L
-319.7246 488.54 319.6953 488.4775 319.6445 488.4199 C
-319.6445 488.0752 L
-319.6445 488.0186 319.6172 487.9639 319.5654 487.9111 c
-319.5137 487.8584 319.4365 487.8076 319.3379 487.7588 c
-319.2383 487.71 319.1182 487.6641 318.9785 487.6211 c
-318.8379 487.5781 318.6777 487.5381 318.502 487.501 c
-318.3262 487.4648 318.1309 487.4307 317.9238 487.4014 c
-317.7158 487.373 317.4941 487.3477 317.2617 487.3271 c
-317.0273 487.3066 316.7832 487.29 316.5293 487.2803 c
-316.2754 487.2695 316.0117 487.2637 315.7422 487.2637 c
-315.4727 487.2637 315.209 487.2695 314.9561 487.2803 c
-314.7012 487.29 314.457 487.3066 314.2227 487.3271 c
-313.9902 487.3477 313.7676 487.373 313.5605 487.4014 c
-313.3516 487.4307 313.1582 487.4648 312.9814 487.501 c
-312.8066 487.5381 312.6455 487.5781 312.5059 487.6211 c
-312.3652 487.6641 312.2441 487.71 312.1465 487.7588 c
-312.0469 487.8076 311.9707 487.8584 311.918 487.9111 c
-311.8662 487.9639 311.8379 488.0186 311.8379 488.0752 C
-311.8379 488.4199 L
-311.7891 488.4775 311.7598 488.54 311.7598 488.6045 C
-311.8379 488.6045 L
-311.8379 488.8291 L
-311.8262 488.8428 311.8174 488.8574 311.8086 488.8721 C
-310.0547 488.6143 308.9082 488.1904 308.9082 487.71 c
-308.9082 487.626 308.9453 487.5439 309.0117 487.4639 c
-309.1006 487.3564 309.2471 487.2539 309.4453 487.1572 C
-309.4453 487.1572 L
-309.791 486.9873 310.291 486.834 310.9082 486.7061 c
-310.9102 486.7061 310.9102 486.7051 y
-311.373 486.6094 311.9004 486.5264 312.4785 486.4619 c
-312.4824 486.4609 312.4873 486.46 312.4902 486.46 c
-312.6777 486.4385 312.8701 486.4189 313.0684 486.4023 c
-313.0781 486.4014 313.0869 486.4004 313.0967 486.3994 c
-313.293 486.3818 313.4961 486.3672 313.7012 486.3535 c
-313.708 486.3535 313.7129 486.3525 313.7188 486.3525 c
-313.9219 486.3398 314.1318 486.3281 314.3438 486.3193 c
-314.3574 486.3184 314.3701 486.3174 314.3857 486.3174 c
-314.8242 486.2988 315.2773 486.2891 315.7422 486.2891 c
-316.207 486.2891 316.6602 486.2988 317.0996 486.3174 c
-317.1113 486.3174 317.127 486.3184 317.1406 486.3193 c
-317.3516 486.3281 317.5605 486.3389 317.7656 486.3525 c
-317.7715 486.3525 317.7773 486.3535 317.7832 486.3535 c
-317.9883 486.3672 318.1895 486.3818 318.3857 486.3994 c
-318.3965 486.4004 318.4063 486.4014 318.418 486.4023 c
-318.6133 486.4199 318.8057 486.4385 318.9922 486.46 c
-318.9961 486.46 319.002 486.4609 319.0059 486.4619 c
-320.3594 486.6143 321.4355 486.8604 322.0391 487.1572 C
-322.0391 487.1572 L
-322.1689 487.2207 322.2773 487.2871 322.3613 487.3545 c
-322.502 487.4688 322.5762 487.5879 322.5762 487.71 c
-322.5762 488.1904 321.4297 488.6143 319.6738 488.8721 C
-319.666 488.8574 319.6563 488.8428 319.6445 488.8291 C
-319.6445 488.6045 L
-f
-0.55 g
-315.7422 492.6377 m
-314.0313 492.6377 312.2285 492.8799 311.8379 493.334 C
-311.8379 493.1094 L
-311.8945 493.1094 L
-311.8945 492.7568 313.4746 492.3633 315.7422 492.3633 c
-318.0098 492.3633 319.5898 492.7568 319.5898 493.1094 C
-319.6445 493.1094 L
-319.6445 493.334 L
-319.2559 492.8799 317.4531 492.6377 315.7422 492.6377 c
-f
-315.7422 495.5039 m
-314.0313 495.5039 312.2285 495.7471 311.8379 496.2002 C
-311.8379 495.9766 L
-311.8945 495.9766 L
-311.8945 495.623 313.4746 495.2295 315.7422 495.2295 c
-318.0098 495.2295 319.5898 495.623 319.5898 495.9766 C
-319.6445 495.9766 L
-319.6445 496.2002 L
-319.2559 495.7471 317.4531 495.5039 315.7422 495.5039 c
-f
-315.7422 492.2275 m
-314.0313 492.2275 312.2285 492.4707 311.8379 492.9248 C
-311.8379 492.7002 L
-311.8945 492.7002 L
-311.8945 492.3467 313.4746 491.9531 315.7422 491.9531 c
-318.0098 491.9531 319.5898 492.3467 319.5898 492.7002 C
-319.6445 492.7002 L
-319.6445 492.9248 L
-319.2559 492.4707 317.4531 492.2275 315.7422 492.2275 c
-f
-315.7422 491.8184 m
-314.0313 491.8184 312.2285 492.0615 311.8379 492.5146 C
-311.8379 492.29 L
-311.8945 492.29 L
-311.8945 491.9375 313.4746 491.5439 315.7422 491.5439 c
-318.0098 491.5439 319.5898 491.9375 319.5898 492.29 C
-319.6445 492.29 L
-319.6445 492.5146 L
-319.2559 492.0615 317.4531 491.8184 315.7422 491.8184 c
-f
-315.7422 495.0947 m
-314.0313 495.0947 312.2285 495.3369 311.8379 495.791 C
-311.8379 495.5664 L
-311.8945 495.5664 L
-311.8945 495.2139 313.4746 494.8203 315.7422 494.8203 c
-318.0098 494.8203 319.5898 495.2139 319.5898 495.5664 C
-319.6445 495.5664 L
-319.6445 495.791 L
-319.2559 495.3369 317.4531 495.0947 315.7422 495.0947 c
-f
-315.7422 493.8662 m
-314.0313 493.8662 312.2285 494.1094 311.8379 494.5625 C
-311.8379 494.3379 L
-311.8945 494.3379 L
-311.8945 493.9854 313.4746 493.5908 315.7422 493.5908 c
-318.0098 493.5908 319.5898 493.9854 319.5898 494.3379 C
-319.6445 494.3379 L
-319.6445 494.5625 L
-319.2559 494.1094 317.4531 493.8662 315.7422 493.8662 c
-f
-315.7422 493.0469 m
-314.0313 493.0469 312.2285 493.29 311.8379 493.7432 C
-311.8379 493.5186 L
-311.8945 493.5186 L
-311.8945 493.166 313.4746 492.7725 315.7422 492.7725 c
-318.0098 492.7725 319.5898 493.166 319.5898 493.5186 C
-319.6445 493.5186 L
-319.6445 493.7432 L
-319.2559 493.29 317.4531 493.0469 315.7422 493.0469 c
-f
-315.7422 494.2754 m
-314.0313 494.2754 312.2285 494.5186 311.8379 494.9717 C
-311.8379 494.748 L
-311.8945 494.748 L
-311.8945 494.3945 313.4746 494.001 315.7422 494.001 c
-318.0098 494.001 319.5898 494.3945 319.5898 494.748 C
-319.6445 494.748 L
-319.6445 494.9717 L
-319.2559 494.5186 317.4531 494.2754 315.7422 494.2754 c
-f
-315.7422 497.1416 m
-314.0313 497.1416 312.2285 497.3848 311.8379 497.8389 C
-311.8379 497.6143 L
-311.8945 497.6143 L
-311.8945 497.2617 313.4746 496.8682 315.7422 496.8682 c
-318.0098 496.8682 319.5898 497.2617 319.5898 497.6143 C
-319.6445 497.6143 L
-319.6445 497.8389 L
-319.2559 497.3848 317.4531 497.1416 315.7422 497.1416 c
-f
-315.7422 496.3232 m
-314.0313 496.3232 312.2285 496.5654 311.8379 497.0195 C
-311.8379 496.7949 L
-311.8945 496.7949 L
-311.8945 496.4424 313.4746 496.0488 315.7422 496.0488 c
-318.0098 496.0488 319.5898 496.4424 319.5898 496.7949 C
-319.6445 496.7949 L
-319.6445 497.0195 L
-319.2559 496.5654 317.4531 496.3232 315.7422 496.3232 c
-f
-315.7422 493.4561 m
-314.0313 493.4561 312.2285 493.6992 311.8379 494.1533 C
-311.8379 493.9287 L
-311.8945 493.9287 L
-311.8945 493.5752 313.4746 493.1826 315.7422 493.1826 c
-318.0098 493.1826 319.5898 493.5752 319.5898 493.9287 C
-319.6445 493.9287 L
-319.6445 494.1533 L
-319.2559 493.6992 317.4531 493.4561 315.7422 493.4561 c
-f
-315.7422 494.6846 m
-314.0313 494.6846 312.2285 494.9277 311.8379 495.3809 C
-311.8379 495.1572 L
-311.8945 495.1572 L
-311.8945 494.8037 313.4746 494.4111 315.7422 494.4111 c
-318.0098 494.4111 319.5898 494.8037 319.5898 495.1572 C
-319.6445 495.1572 L
-319.6445 495.3809 L
-319.2559 494.9277 317.4531 494.6846 315.7422 494.6846 c
-f
-315.7422 496.7334 m
-314.0313 496.7334 312.2285 496.9756 311.8379 497.4287 C
-311.8379 497.2041 L
-311.8945 497.2041 L
-311.8945 496.8516 313.4746 496.458 315.7422 496.458 c
-318.0098 496.458 319.5898 496.8516 319.5898 497.2041 C
-319.6445 497.2041 L
-319.6445 497.4287 L
-319.2559 496.9756 317.4531 496.7334 315.7422 496.7334 c
-f
-315.7422 495.9141 m
-314.0313 495.9141 312.2285 496.1572 311.8379 496.6104 C
-311.8379 496.3857 L
-311.8945 496.3857 L
-311.8945 496.0322 313.4746 495.6387 315.7422 495.6387 c
-318.0098 495.6387 319.5898 496.0322 319.5898 496.3857 C
-319.6445 496.3857 L
-319.6445 496.6104 L
-319.2559 496.1572 317.4531 495.9141 315.7422 495.9141 c
-f
-315.7422 489.7705 m
-314.0313 489.7705 312.2285 490.0137 311.8379 490.4668 C
-311.8379 490.2432 L
-311.8945 490.2432 L
-311.8945 489.8896 313.4746 489.4961 315.7422 489.4961 c
-318.0098 489.4961 319.5898 489.8896 319.5898 490.2432 C
-319.6445 490.2432 L
-319.6445 490.4668 L
-319.2559 490.0137 317.4531 489.7705 315.7422 489.7705 c
-f
-315.7422 488.542 m
-314.0313 488.542 312.2285 488.7852 311.8379 489.2383 C
-311.8379 489.0146 L
-311.8945 489.0146 L
-311.8945 488.6611 313.4746 488.2676 315.7422 488.2676 c
-318.0098 488.2676 319.5898 488.6611 319.5898 489.0146 C
-319.6445 489.0146 L
-319.6445 489.2383 L
-319.2559 488.7852 317.4531 488.542 315.7422 488.542 c
-f
-315.7422 488.9521 m
-314.0313 488.9521 312.2285 489.1943 311.8379 489.6475 C
-311.8379 489.4238 L
-311.8945 489.4238 L
-311.8945 489.0703 313.4746 488.6768 315.7422 488.6768 c
-318.0098 488.6768 319.5898 489.0703 319.5898 489.4238 C
-319.6445 489.4238 L
-319.6445 489.6475 L
-319.2559 489.1943 317.4531 488.9521 315.7422 488.9521 c
-f
-315.7422 491.4092 m
-314.0313 491.4092 312.2285 491.6514 311.8379 492.1055 C
-311.8379 491.8809 L
-311.8945 491.8809 L
-311.8945 491.5283 313.4746 491.1338 315.7422 491.1338 c
-318.0098 491.1338 319.5898 491.5283 319.5898 491.8809 C
-319.6445 491.8809 L
-319.6445 492.1055 L
-319.2559 491.6514 317.4531 491.4092 315.7422 491.4092 c
-f
-315.7422 490.1807 m
-314.0313 490.1807 312.2285 490.4229 311.8379 490.876 C
-311.8379 490.6523 L
-311.8945 490.6523 L
-311.8945 490.2998 313.4746 489.9053 315.7422 489.9053 c
-318.0098 489.9053 319.5898 490.2998 319.5898 490.6523 C
-319.6445 490.6523 L
-319.6445 490.876 L
-319.2559 490.4229 317.4531 490.1807 315.7422 490.1807 c
-f
-315.7422 490.5898 m
-314.0313 490.5898 312.2285 490.833 311.8379 491.2861 C
-311.8379 491.0615 L
-311.8945 491.0615 L
-311.8945 490.709 313.4746 490.3154 315.7422 490.3154 c
-318.0098 490.3154 319.5898 490.709 319.5898 491.0615 C
-319.6445 491.0615 L
-319.6445 491.2861 L
-319.2559 490.833 317.4531 490.5898 315.7422 490.5898 c
-f
-315.7422 490.999 m
-314.0313 490.999 312.2285 491.2422 311.8379 491.6953 C
-311.8379 491.4717 L
-311.8945 491.4717 L
-311.8945 491.1182 313.4746 490.7246 315.7422 490.7246 c
-318.0098 490.7246 319.5898 491.1182 319.5898 491.4717 C
-319.6445 491.4717 L
-319.6445 491.6953 L
-319.2559 491.2422 317.4531 490.999 315.7422 490.999 c
-f
-315.7422 489.3613 m
-314.0313 489.3613 312.2285 489.6045 311.8379 490.0576 C
-311.8379 489.833 L
-311.8945 489.833 L
-311.8945 489.4805 313.4746 489.0869 315.7422 489.0869 c
-318.0098 489.0869 319.5898 489.4805 319.5898 489.833 C
-319.6445 489.833 L
-319.6445 490.0576 L
-319.2559 489.6045 317.4531 489.3613 315.7422 489.3613 c
-f
-318.4014 498.4111 m
-317.9941 498.375 317.5645 498.3467 317.1182 498.3281 c
-316.6738 498.3096 316.2129 498.2998 315.7422 498.2998 c
-315.2705 498.2998 314.8086 498.3096 314.3652 498.3281 c
-313.9189 498.3467 313.4902 498.375 313.082 498.4111 c
-312.6729 498.4473 312.2852 498.4912 311.9209 498.542 c
-311.8926 498.5459 311.8662 498.5508 311.8379 498.5547 C
-311.8379 498.4336 L
-311.8945 498.4336 L
-311.8945 498.0811 313.4746 497.6865 315.7422 497.6865 c
-318.0098 497.6865 319.5898 498.0811 319.5898 498.4336 C
-319.6445 498.4336 L
-319.6445 498.5547 L
-319.6172 498.5508 319.5918 498.5459 319.5625 498.542 c
-319.1992 498.4912 318.8105 498.4473 318.4014 498.4111 c
-f
-315.7422 497.5518 m
-314.0313 497.5518 312.2285 497.7949 311.8379 498.248 C
-311.8379 498.0234 L
-311.8945 498.0234 L
-311.8945 497.6709 313.4746 497.2773 315.7422 497.2773 c
-318.0098 497.2773 319.5898 497.6709 319.5898 498.0234 C
-319.6445 498.0234 L
-319.6445 498.248 L
-319.2559 497.7949 317.4531 497.5518 315.7422 497.5518 c
-f
-315.7422 487.7236 m
-314.0313 487.7236 312.2285 487.9658 311.8379 488.4199 C
-311.8379 488.0752 L
-311.8379 488.0186 311.8662 487.9639 311.918 487.9111 c
-311.9707 487.8584 312.0469 487.8076 312.1465 487.7588 c
-312.2441 487.71 312.3652 487.6641 312.5059 487.6211 c
-312.6455 487.5781 312.8066 487.5381 312.9814 487.501 c
-313.1582 487.4648 313.3516 487.4307 313.5605 487.4014 c
-313.7676 487.373 313.9902 487.3477 314.2227 487.3271 c
-314.457 487.3066 314.7012 487.29 314.9561 487.2803 c
-315.209 487.2695 315.4727 487.2637 315.7422 487.2637 c
-316.0117 487.2637 316.2754 487.2695 316.5293 487.2803 c
-316.7832 487.29 317.0273 487.3066 317.2617 487.3271 c
-317.4941 487.3477 317.7158 487.373 317.9238 487.4014 c
-318.1309 487.4307 318.3262 487.4648 318.502 487.501 c
-318.6777 487.5381 318.8379 487.5781 318.9785 487.6211 c
-319.1182 487.6641 319.2383 487.71 319.3379 487.7588 c
-319.4365 487.8076 319.5137 487.8584 319.5654 487.9111 c
-319.6172 487.9639 319.6445 488.0186 319.6445 488.0752 C
-319.6445 488.4199 L
-319.2559 487.9658 317.4531 487.7236 315.7422 487.7236 c
-f
-311.8945 488.6045 m
-311.8945 488.252 313.4746 487.8584 315.7422 487.8584 c
-318.0098 487.8584 319.5898 488.252 319.5898 488.6045 C
-319.6445 488.6045 L
-319.6445 488.8291 L
-319.2559 488.376 317.4531 488.1328 315.7422 488.1328 c
-314.0313 488.1328 312.2285 488.376 311.8379 488.8291 C
-311.8379 488.6045 L
-311.8945 488.6045 L
-f
-0.15 g
-315.7422 497.6865 m
-313.4746 497.6865 311.8945 498.0811 311.8945 498.4336 C
-311.8379 498.4336 L
-311.7598 498.4336 L
-311.7598 498.3682 311.7891 498.3066 311.8379 498.248 c
-312.2285 497.7949 314.0313 497.5518 315.7422 497.5518 c
-317.4531 497.5518 319.2559 497.7949 319.6445 498.248 c
-319.6953 498.3066 319.7246 498.3682 319.7246 498.4336 C
-319.6445 498.4336 L
-319.5898 498.4336 L
-319.5898 498.0811 318.0098 497.6865 315.7422 497.6865 c
-f
-315.7422 497.2773 m
-313.4746 497.2773 311.8945 497.6709 311.8945 498.0234 C
-311.8379 498.0234 L
-311.7598 498.0234 L
-311.7598 497.959 311.7891 497.8975 311.8379 497.8389 c
-312.2285 497.3848 314.0313 497.1416 315.7422 497.1416 c
-317.4531 497.1416 319.2559 497.3848 319.6445 497.8389 c
-319.6953 497.8975 319.7246 497.959 319.7246 498.0234 C
-319.6445 498.0234 L
-319.5898 498.0234 L
-319.5898 497.6709 318.0098 497.2773 315.7422 497.2773 c
-f
-315.7422 496.8682 m
-313.4746 496.8682 311.8945 497.2617 311.8945 497.6143 C
-311.8379 497.6143 L
-311.7598 497.6143 L
-311.7598 497.5488 311.7891 497.4873 311.8379 497.4287 c
-312.2285 496.9756 314.0313 496.7334 315.7422 496.7334 c
-317.4531 496.7334 319.2559 496.9756 319.6445 497.4287 c
-319.6953 497.4873 319.7246 497.5488 319.7246 497.6143 C
-319.6445 497.6143 L
-319.5898 497.6143 L
-319.5898 497.2617 318.0098 496.8682 315.7422 496.8682 c
-f
-315.7422 496.458 m
-313.4746 496.458 311.8945 496.8516 311.8945 497.2041 C
-311.8379 497.2041 L
-311.7598 497.2041 L
-311.7598 497.1396 311.7891 497.0771 311.8379 497.0195 c
-312.2285 496.5654 314.0313 496.3232 315.7422 496.3232 c
-317.4531 496.3232 319.2559 496.5654 319.6445 497.0195 c
-319.6953 497.0771 319.7246 497.1396 319.7246 497.2041 C
-319.6445 497.2041 L
-319.5898 497.2041 L
-319.5898 496.8516 318.0098 496.458 315.7422 496.458 c
-f
-315.7422 496.0488 m
-313.4746 496.0488 311.8945 496.4424 311.8945 496.7949 C
-311.8379 496.7949 L
-311.7598 496.7949 L
-311.7598 496.7295 311.7891 496.6689 311.8379 496.6104 c
-312.2285 496.1572 314.0313 495.9141 315.7422 495.9141 c
-317.4531 495.9141 319.2559 496.1572 319.6445 496.6104 c
-319.6953 496.6689 319.7246 496.7295 319.7246 496.7949 C
-319.6445 496.7949 L
-319.5898 496.7949 L
-319.5898 496.4424 318.0098 496.0488 315.7422 496.0488 c
-f
-315.7422 495.6387 m
-313.4746 495.6387 311.8945 496.0322 311.8945 496.3857 C
-311.8379 496.3857 L
-311.7598 496.3857 L
-311.7598 496.3203 311.7891 496.2588 311.8379 496.2002 c
-312.2285 495.7471 314.0313 495.5039 315.7422 495.5039 c
-317.4531 495.5039 319.2559 495.7471 319.6445 496.2002 c
-319.6953 496.2588 319.7246 496.3203 319.7246 496.3857 C
-319.6445 496.3857 L
-319.5898 496.3857 L
-319.5898 496.0322 318.0098 495.6387 315.7422 495.6387 c
-f
-315.7422 495.2295 m
-313.4746 495.2295 311.8945 495.623 311.8945 495.9766 C
-311.8379 495.9766 L
-311.7598 495.9766 L
-311.7598 495.9111 311.7891 495.8496 311.8379 495.791 c
-312.2285 495.3369 314.0313 495.0947 315.7422 495.0947 c
-317.4531 495.0947 319.2559 495.3369 319.6445 495.791 c
-319.6953 495.8496 319.7246 495.9111 319.7246 495.9766 C
-319.6445 495.9766 L
-319.5898 495.9766 L
-319.5898 495.623 318.0098 495.2295 315.7422 495.2295 c
-f
-315.7422 494.8203 m
-313.4746 494.8203 311.8945 495.2139 311.8945 495.5664 C
-311.8379 495.5664 L
-311.7598 495.5664 L
-311.7598 495.501 311.7891 495.4395 311.8379 495.3809 c
-312.2285 494.9277 314.0313 494.6846 315.7422 494.6846 c
-317.4531 494.6846 319.2559 494.9277 319.6445 495.3809 c
-319.6953 495.4395 319.7246 495.501 319.7246 495.5664 C
-319.6445 495.5664 L
-319.5898 495.5664 L
-319.5898 495.2139 318.0098 494.8203 315.7422 494.8203 c
-f
-315.7422 494.4111 m
-313.4746 494.4111 311.8945 494.8037 311.8945 495.1572 C
-311.8379 495.1572 L
-311.7598 495.1572 L
-311.7598 495.0918 311.7891 495.0303 311.8379 494.9717 c
-312.2285 494.5186 314.0313 494.2754 315.7422 494.2754 c
-317.4531 494.2754 319.2559 494.5186 319.6445 494.9717 c
-319.6953 495.0303 319.7246 495.0918 319.7246 495.1572 C
-319.6445 495.1572 L
-319.5898 495.1572 L
-319.5898 494.8037 318.0098 494.4111 315.7422 494.4111 c
-f
-315.7422 494.001 m
-313.4746 494.001 311.8945 494.3945 311.8945 494.748 C
-311.8379 494.748 L
-311.7598 494.748 L
-311.7598 494.6826 311.7891 494.6211 311.8379 494.5625 c
-312.2285 494.1094 314.0313 493.8662 315.7422 493.8662 c
-317.4531 493.8662 319.2559 494.1094 319.6445 494.5625 c
-319.6953 494.6211 319.7246 494.6826 319.7246 494.748 C
-319.6445 494.748 L
-319.5898 494.748 L
-319.5898 494.3945 318.0098 494.001 315.7422 494.001 c
-f
-315.7422 493.5908 m
-313.4746 493.5908 311.8945 493.9854 311.8945 494.3379 C
-311.8379 494.3379 L
-311.7598 494.3379 L
-311.7598 494.2725 311.7891 494.2109 311.8379 494.1533 c
-312.2285 493.6992 314.0313 493.4561 315.7422 493.4561 c
-317.4531 493.4561 319.2559 493.6992 319.6445 494.1533 c
-319.6953 494.2109 319.7246 494.2725 319.7246 494.3379 C
-319.6445 494.3379 L
-319.5898 494.3379 L
-319.5898 493.9854 318.0098 493.5908 315.7422 493.5908 c
-f
-315.7422 493.1826 m
-313.4746 493.1826 311.8945 493.5752 311.8945 493.9287 C
-311.8379 493.9287 L
-311.7598 493.9287 L
-311.7598 493.8633 311.7891 493.8018 311.8379 493.7432 c
-312.2285 493.29 314.0313 493.0469 315.7422 493.0469 c
-317.4531 493.0469 319.2559 493.29 319.6445 493.7432 c
-319.6953 493.8018 319.7246 493.8633 319.7246 493.9287 C
-319.6445 493.9287 L
-319.5898 493.9287 L
-319.5898 493.5752 318.0098 493.1826 315.7422 493.1826 c
-f
-315.7422 492.7725 m
-313.4746 492.7725 311.8945 493.166 311.8945 493.5186 C
-311.8379 493.5186 L
-311.7598 493.5186 L
-311.7598 493.4541 311.7891 493.3916 311.8379 493.334 c
-312.2285 492.8799 314.0313 492.6377 315.7422 492.6377 c
-317.4531 492.6377 319.2559 492.8799 319.6445 493.334 c
-319.6953 493.3916 319.7246 493.4541 319.7246 493.5186 C
-319.6445 493.5186 L
-319.5898 493.5186 L
-319.5898 493.166 318.0098 492.7725 315.7422 492.7725 c
-f
-315.7422 492.3633 m
-313.4746 492.3633 311.8945 492.7568 311.8945 493.1094 C
-311.8379 493.1094 L
-311.7598 493.1094 L
-311.7598 493.0439 311.7891 492.9824 311.8379 492.9248 c
-312.2285 492.4707 314.0313 492.2275 315.7422 492.2275 c
-317.4531 492.2275 319.2559 492.4707 319.6445 492.9248 c
-319.6953 492.9824 319.7246 493.0439 319.7246 493.1094 C
-319.6445 493.1094 L
-319.5898 493.1094 L
-319.5898 492.7568 318.0098 492.3633 315.7422 492.3633 c
-f
-315.7422 491.9531 m
-313.4746 491.9531 311.8945 492.3467 311.8945 492.7002 C
-311.8379 492.7002 L
-311.7598 492.7002 L
-311.7598 492.6348 311.7891 492.5732 311.8379 492.5146 c
-312.2285 492.0615 314.0313 491.8184 315.7422 491.8184 c
-317.4531 491.8184 319.2559 492.0615 319.6445 492.5146 c
-319.6953 492.5732 319.7246 492.6348 319.7246 492.7002 C
-319.6445 492.7002 L
-319.5898 492.7002 L
-319.5898 492.3467 318.0098 491.9531 315.7422 491.9531 c
-f
-315.7422 491.5439 m
-313.4746 491.5439 311.8945 491.9375 311.8945 492.29 C
-311.8379 492.29 L
-311.7598 492.29 L
-311.7598 492.2256 311.7891 492.1631 311.8379 492.1055 c
-312.2285 491.6514 314.0313 491.4092 315.7422 491.4092 c
-317.4531 491.4092 319.2559 491.6514 319.6445 492.1055 c
-319.6953 492.1631 319.7246 492.2256 319.7246 492.29 C
-319.6445 492.29 L
-319.5898 492.29 L
-319.5898 491.9375 318.0098 491.5439 315.7422 491.5439 c
-f
-315.7422 491.1338 m
-313.4746 491.1338 311.8945 491.5283 311.8945 491.8809 C
-311.8379 491.8809 L
-311.7598 491.8809 L
-311.7598 491.8154 311.7891 491.7539 311.8379 491.6953 c
-312.2285 491.2422 314.0313 490.999 315.7422 490.999 c
-317.4531 490.999 319.2559 491.2422 319.6445 491.6953 c
-319.6953 491.7539 319.7246 491.8154 319.7246 491.8809 C
-319.6445 491.8809 L
-319.5898 491.8809 L
-319.5898 491.5283 318.0098 491.1338 315.7422 491.1338 c
-f
-315.7422 490.7246 m
-313.4746 490.7246 311.8945 491.1182 311.8945 491.4717 C
-311.8379 491.4717 L
-311.7598 491.4717 L
-311.7598 491.4063 311.7891 491.3447 311.8379 491.2861 c
-312.2285 490.833 314.0313 490.5898 315.7422 490.5898 c
-317.4531 490.5898 319.2559 490.833 319.6445 491.2861 c
-319.6953 491.3447 319.7246 491.4063 319.7246 491.4717 C
-319.6445 491.4717 L
-319.5898 491.4717 L
-319.5898 491.1182 318.0098 490.7246 315.7422 490.7246 c
-f
-315.7422 490.3154 m
-313.4746 490.3154 311.8945 490.709 311.8945 491.0615 C
-311.8379 491.0615 L
-311.7598 491.0615 L
-311.7598 490.9971 311.7891 490.9346 311.8379 490.876 c
-312.2285 490.4229 314.0313 490.1807 315.7422 490.1807 c
-317.4531 490.1807 319.2559 490.4229 319.6445 490.876 c
-319.6953 490.9346 319.7246 490.9971 319.7246 491.0615 C
-319.6445 491.0615 L
-319.5898 491.0615 L
-319.5898 490.709 318.0098 490.3154 315.7422 490.3154 c
-f
-315.7422 489.9053 m
-313.4746 489.9053 311.8945 490.2998 311.8945 490.6523 C
-311.8379 490.6523 L
-311.7598 490.6523 L
-311.7598 490.5869 311.7891 490.5254 311.8379 490.4668 c
-312.2285 490.0137 314.0313 489.7705 315.7422 489.7705 c
-317.4531 489.7705 319.2559 490.0137 319.6445 490.4668 c
-319.6953 490.5254 319.7246 490.5869 319.7246 490.6523 C
-319.6445 490.6523 L
-319.5898 490.6523 L
-319.5898 490.2998 318.0098 489.9053 315.7422 489.9053 c
-f
-315.7422 489.4961 m
-313.4746 489.4961 311.8945 489.8896 311.8945 490.2432 C
-311.8379 490.2432 L
-311.7598 490.2432 L
-311.7598 490.1777 311.7891 490.1162 311.8379 490.0576 c
-312.2285 489.6045 314.0313 489.3613 315.7422 489.3613 c
-317.4531 489.3613 319.2559 489.6045 319.6445 490.0576 c
-319.6953 490.1162 319.7246 490.1777 319.7246 490.2432 C
-319.6445 490.2432 L
-319.5898 490.2432 L
-319.5898 489.8896 318.0098 489.4961 315.7422 489.4961 c
-f
-315.7422 489.0869 m
-313.4746 489.0869 311.8945 489.4805 311.8945 489.833 C
-311.8379 489.833 L
-311.7598 489.833 L
-311.7598 489.7676 311.7891 489.7061 311.8379 489.6475 c
-312.2285 489.1943 314.0313 488.9521 315.7422 488.9521 c
-317.4531 488.9521 319.2559 489.1943 319.6445 489.6475 c
-319.6953 489.7061 319.7246 489.7676 319.7246 489.833 C
-319.6445 489.833 L
-319.5898 489.833 L
-319.5898 489.4805 318.0098 489.0869 315.7422 489.0869 c
-f
-315.7422 488.6768 m
-313.4746 488.6768 311.8945 489.0703 311.8945 489.4238 C
-311.8379 489.4238 L
-311.7598 489.4238 L
-311.7598 489.3584 311.7891 489.2969 311.8379 489.2383 c
-312.2285 488.7852 314.0313 488.542 315.7422 488.542 c
-317.4531 488.542 319.2559 488.7852 319.6445 489.2383 c
-319.6953 489.2969 319.7246 489.3584 319.7246 489.4238 C
-319.6445 489.4238 L
-319.5898 489.4238 L
-319.5898 489.0703 318.0098 488.6768 315.7422 488.6768 c
-f
-315.7422 488.2676 m
-313.4746 488.2676 311.8945 488.6611 311.8945 489.0146 C
-311.8379 489.0146 L
-311.7598 489.0146 L
-311.7598 488.9648 311.7793 488.918 311.8086 488.8721 c
-311.8174 488.8574 311.8262 488.8428 311.8379 488.8291 c
-312.2285 488.376 314.0313 488.1328 315.7422 488.1328 c
-317.4531 488.1328 319.2559 488.376 319.6445 488.8291 c
-319.6563 488.8428 319.666 488.8574 319.6738 488.8721 c
-319.7051 488.918 319.7246 488.9648 319.7246 489.0146 C
-319.6445 489.0146 L
-319.5898 489.0146 L
-319.5898 488.6611 318.0098 488.2676 315.7422 488.2676 c
-f
-315.7422 487.8584 m
-313.4746 487.8584 311.8945 488.252 311.8945 488.6045 C
-311.8379 488.6045 L
-311.7598 488.6045 L
-311.7598 488.54 311.7891 488.4775 311.8379 488.4199 c
-312.2285 487.9658 314.0313 487.7236 315.7422 487.7236 c
-317.4531 487.7236 319.2559 487.9658 319.6445 488.4199 c
-319.6953 488.4775 319.7246 488.54 319.7246 488.6045 C
-319.6445 488.6045 L
-319.5898 488.6045 L
-319.5898 488.252 318.0098 487.8584 315.7422 487.8584 c
-f
-0.67 g
-322.3965 501.2109 m
-322.3086 501.1318 322.1895 501.0537 322.0391 500.9805 c
-322.0391 500.9795 322.0371 500.9795 y
-321.9502 500.9365 321.8555 500.8955 321.751 500.8564 c
-321.751 500.8564 l
-321.541 500.7764 321.2969 500.7002 321.0195 500.6309 c
-321.0166 500.6299 321.0137 500.6289 321.0098 500.6279 c
-320.457 500.4893 319.7793 500.373 319.0137 500.2861 c
-319.0029 500.2852 318.9941 500.2842 318.9844 500.2822 c
-318.6094 500.2402 318.2119 500.2051 317.7988 500.1787 c
-317.7813 500.1768 317.7637 500.1758 317.7461 500.1748 c
-317.5547 500.1631 317.3613 500.1523 317.1621 500.1436 c
-317.1484 500.1436 317.1348 500.1416 317.1182 500.1416 c
-317.1055 500.1406 317.0898 500.1406 317.0762 500.1396 c
-316.8701 500.1318 316.6621 500.125 316.4502 500.1201 c
-316.4453 500.1201 316.4375 500.1201 316.4316 500.1201 c
-316.2051 500.1152 315.9746 500.1123 315.7422 500.1123 c
-315.5098 500.1123 315.2793 500.1152 315.0518 500.1201 c
-315.0469 500.1201 315.0391 500.1201 315.0332 500.1201 c
-314.8223 500.125 314.6133 500.1318 314.4082 500.1396 c
-314.3945 500.1406 314.3789 500.1406 314.3652 500.1416 c
-314.3496 500.1416 314.335 500.1436 314.3203 500.1436 c
-314.123 500.1523 313.9277 500.1631 313.7363 500.1748 c
-313.7188 500.1758 313.7021 500.1768 313.6865 500.1787 c
-313.2715 500.2051 312.875 500.2402 312.498 500.2822 c
-312.4883 500.2842 312.4805 500.2842 312.4707 500.2852 c
-311.7051 500.373 311.0254 500.4893 310.4727 500.6279 c
-310.4707 500.6289 310.4668 500.6299 310.4648 500.6309 c
-310.0488 500.7354 309.7051 500.8525 309.4473 500.9795 c
-309.4453 500.9795 309.4453 500.9805 v
-309.3691 501.0176 309.2998 501.0566 309.2402 501.0957 c
-309.0938 501.1895 308.9922 501.2871 308.9434 501.3877 c
-308.9189 501.4355 308.9082 501.4844 308.9082 501.5332 C
-308.9082 499.7207 L
-308.9082 499.6221 308.9561 499.5264 309.0469 499.4346 c
-309.1377 499.3418 309.2715 499.2529 309.4453 499.167 c
-309.6172 499.083 309.8281 499.001 310.0742 498.9258 c
-310.3203 498.8506 310.5996 498.7803 310.9102 498.7158 c
-311.1953 498.6563 311.5078 498.6025 311.8379 498.5547 c
-311.8662 498.5508 311.8926 498.5459 311.9209 498.542 c
-312.2852 498.4912 312.6729 498.4473 313.082 498.4111 c
-313.4902 498.375 313.9189 498.3467 314.3652 498.3281 c
-314.8086 498.3096 315.2705 498.2998 315.7422 498.2998 c
-316.2129 498.2998 316.6738 498.3096 317.1182 498.3281 c
-317.5645 498.3467 317.9941 498.375 318.4014 498.4111 c
-318.8105 498.4473 319.1992 498.4912 319.5625 498.542 c
-319.5918 498.5459 319.6172 498.5508 319.6445 498.5547 c
-319.9766 498.6025 320.2891 498.6563 320.5742 498.7158 c
-320.8828 498.7803 321.1641 498.8506 321.4082 498.9258 c
-321.6543 499.001 321.8662 499.083 322.0391 499.167 c
-322.2119 499.2529 322.3457 499.3418 322.4365 499.4346 c
-322.5293 499.5264 322.5762 499.6221 322.5762 499.7207 C
-322.5762 501.5332 L
-322.5762 501.46 322.5488 501.3877 322.498 501.3174 c
-322.4707 501.2813 322.4365 501.2461 322.3965 501.2109 c
-f
-0.39 g
-320.3242 502.5879 m
-319.8711 501.6807 319.1777 501.2236 319.1445 501.2021 C
-319.127 501.1924 L
-312.1074 501.1924 L
-312.0918 501.3252 L
-312.0977 501.3271 312.8037 501.5264 313.543 502.8789 C
-310.8477 502.6885 308.9082 502.1582 308.9082 501.5332 c
-308.9082 501.4844 308.9189 501.4355 308.9434 501.3877 c
-308.9922 501.2871 309.0938 501.1895 309.2402 501.0957 c
-309.3018 501.0557 309.3691 501.0176 309.4473 500.9795 c
-309.7051 500.8525 310.0488 500.7354 310.4648 500.6309 c
-310.4668 500.6299 310.4707 500.6289 310.4727 500.6279 c
-311.0254 500.4893 311.7051 500.373 312.4707 500.2852 c
-312.4805 500.2842 312.4883 500.2842 312.498 500.2822 c
-312.875 500.2402 313.2715 500.2051 313.6865 500.1787 c
-313.7021 500.1768 313.7188 500.1758 313.7363 500.1748 c
-313.9277 500.1631 314.123 500.1523 314.3203 500.1436 c
-314.3506 500.1426 314.3789 500.1416 314.4082 500.1396 c
-314.6133 500.1318 314.8223 500.125 315.0332 500.1201 c
-315.0391 500.1201 315.0469 500.1201 315.0518 500.1201 c
-315.2793 500.1152 315.5098 500.1123 315.7422 500.1123 c
-315.9746 500.1123 316.2051 500.1152 316.4316 500.1201 c
-316.4375 500.1201 316.4453 500.1201 316.4502 500.1201 c
-316.6621 500.125 316.8701 500.1318 317.0762 500.1396 c
-317.1055 500.1416 317.1348 500.1426 317.1621 500.1436 c
-317.3613 500.1523 317.5547 500.1631 317.7461 500.1748 c
-317.7637 500.1758 317.7813 500.1768 317.7988 500.1787 c
-318.2119 500.2051 318.6094 500.2402 318.9844 500.2822 c
-318.9941 500.2842 319.0029 500.2852 319.0137 500.2861 c
-319.7793 500.373 320.457 500.4893 321.0098 500.6279 c
-321.0137 500.6289 321.0166 500.6299 321.0195 500.6309 c
-321.2969 500.7002 321.541 500.7764 321.751 500.8564 C
-321.751 500.8564 L
-321.8555 500.8955 321.9502 500.9365 322.0371 500.9795 c
-322.1875 501.0537 322.3086 501.1309 322.3965 501.2109 c
-322.4365 501.2461 322.4707 501.2813 322.498 501.3174 c
-322.5488 501.3877 322.5762 501.46 322.5762 501.5332 c
-322.5762 501.9521 321.707 502.3271 320.3242 502.5879 C
-f
-*u
-1 g
-1 D
-312.4004 501.3271 m
-312.9365 501.3271 319.0469 501.3271 319.0859 501.3271 C
-319.1699 501.3828 320.0156 501.9775 320.3906 503.0977 c
-320.4609 503.3096 320.4854 503.5479 320.4854 503.8047 c
-320.4854 504.167 320.4346 504.5674 320.3799 504.9805 c
-320.3223 505.4248 320.2598 505.8965 320.2598 506.3643 c
-320.2598 506.9424 320.3555 507.5146 320.666 508.0254 c
-321.3555 509.1582 322.0537 509.71 322.3965 509.9346 C
-321.9385 509.9346 315.7021 509.9395 Y
-315.6846 509.9326 313.9922 509.1523 313.8584 507.5801 c
-313.8477 507.458 313.8418 507.3389 313.8418 507.2207 c
-313.8418 506.7412 313.918 506.2881 313.9922 505.8467 c
-314.0664 505.4111 314.1377 504.9863 314.1377 504.5518 c
-314.1377 504.0723 314.0508 503.5801 313.7842 503.0459 c
-313.2461 501.9717 312.7129 501.5166 312.4004 501.3271 C
-f
-0 D
-318.8379 502.2686 m
-314.3281 502.2686 L
-314.3281 502.4033 L
-318.8379 502.4033 L
-318.8379 502.2686 L
-f
-1 D
-319.377 506.5088 m
-314.9355 506.5088 L
-314.9355 506.6436 L
-319.377 506.6436 L
-319.377 506.5088 L
-f
-0 D
-319.5781 504.9609 m
-319.5781 504.8262 L
-315.0693 504.8262 L
-315.0693 504.9609 L
-319.5781 504.9609 L
-f
-315.002 505.6348 m
-319.1074 505.6348 L
-319.1074 505.5 L
-315.002 505.5 L
-315.002 505.6348 L
-f
-315.0693 504.0186 m
-319.5117 504.0186 L
-319.5117 503.8838 L
-315.0693 503.8838 L
-315.0693 504.0186 L
-f
-315.7422 509.3369 m
-320.3867 509.3369 L
-320.3867 509.2012 L
-315.7422 509.2012 L
-315.7422 509.3369 L
-f
-315.2715 508.7979 m
-318.9727 508.7979 L
-318.9727 508.6631 L
-315.2715 508.6631 L
-315.2715 508.7979 L
-f
-1 D
-314.9355 508.0576 m
-319.6455 508.0576 L
-319.6455 507.9229 L
-314.9355 507.9229 L
-314.9355 508.0576 L
-f
-0 D
-314.7998 507.3174 m
-319.5117 507.3174 L
-319.5117 507.1826 L
-314.7998 507.1826 L
-314.7998 507.3174 L
-f
-314.7998 503.2119 m
-319.1758 503.2119 L
-319.1758 503.0762 L
-314.7998 503.0762 L
-314.7998 503.2119 L
-f
-*U
-*u
-0 g
-1 D
-312.0918 501.3252 m
-312.1074 501.1924 L
-319.127 501.1924 L
-319.1445 501.2021 L
-319.1777 501.2236 319.8711 501.6807 320.3242 502.5879 c
-320.3965 502.7324 320.4629 502.8877 320.5186 503.0557 c
-320.6973 503.5938 320.6094 504.2754 320.5137 504.998 c
-320.3799 506.0176 320.2441 507.0723 320.7813 507.9551 c
-321.6992 509.4648 322.6621 509.9355 322.6719 509.9404 C
-322.6426 510.0693 L
-315.6758 510.0693 L
-315.6289 510.0547 313.8652 509.2441 313.7227 507.5918 c
-313.6689 506.96 313.7656 506.3828 313.8594 505.8252 c
-314.0098 504.9297 314.1523 504.085 313.6621 503.1064 c
-313.623 503.0264 313.582 502.9521 313.543 502.8789 c
-312.8037 501.5264 312.0977 501.3271 312.0918 501.3252 C
-f
-0 D
-314.1377 504.5518 m
-314.1377 504.9863 314.0664 505.4111 313.9922 505.8467 c
-313.918 506.2881 313.8418 506.7412 313.8418 507.2207 c
-313.8418 507.3389 313.8477 507.458 313.8584 507.5801 c
-313.9922 509.1523 315.6846 509.9326 315.7021 509.9395 C
-321.9385 509.9346 322.3965 509.9346 V
-322.0537 509.71 321.3555 509.1582 320.666 508.0254 c
-320.3555 507.5146 320.2598 506.9424 320.2598 506.3643 c
-320.2598 505.8965 320.3223 505.4248 320.3799 504.9805 c
-320.4346 504.5674 320.4854 504.167 320.4854 503.8047 c
-320.4854 503.5479 320.4609 503.3096 320.3906 503.0977 c
-320.0156 501.9775 319.1699 501.3828 319.0859 501.3271 C
-319.0469 501.3271 312.9365 501.3271 312.4004 501.3271 C
-312.7129 501.5166 313.2461 501.9717 313.7842 503.0459 c
-314.0508 503.5801 314.1377 504.0723 314.1377 504.5518 c
-f
-*U
-320.3867 509.3369 m
-315.7422 509.3369 L
-315.7422 509.2012 L
-320.3867 509.2012 L
-320.3867 509.3369 L
-f
-318.9727 508.7979 m
-315.2715 508.7979 L
-315.2715 508.6631 L
-318.9727 508.6631 L
-318.9727 508.7979 L
-f
-319.6455 508.0576 m
-314.9355 508.0576 L
-314.9355 507.9229 L
-319.6455 507.9229 L
-319.6455 508.0576 L
-f
-319.5117 507.3174 m
-314.7998 507.3174 L
-314.7998 507.1826 L
-319.5117 507.1826 L
-319.5117 507.3174 L
-f
-314.9355 506.5088 m
-319.377 506.5088 L
-319.377 506.6436 L
-314.9355 506.6436 L
-314.9355 506.5088 L
-f
-319.1074 505.6348 m
-315.002 505.6348 L
-315.002 505.5 L
-319.1074 505.5 L
-319.1074 505.6348 L
-f
-315.0693 504.8262 m
-319.5781 504.8262 L
-319.5781 504.9609 L
-315.0693 504.9609 L
-315.0693 504.8262 L
-f
-319.5117 504.0186 m
-315.0693 504.0186 L
-315.0693 503.8838 L
-319.5117 503.8838 L
-319.5117 504.0186 L
-f
-319.1758 503.2119 m
-314.7998 503.2119 L
-314.7998 503.0762 L
-319.1758 503.0762 L
-319.1758 503.2119 L
-f
-314.3281 502.2686 m
-318.8379 502.2686 L
-318.8379 502.4033 L
-314.3281 502.4033 L
-314.3281 502.2686 L
-f
-U
-U
-U
-0 To
-1 0 0 1 316.5801 474.5176 0 Tp
-0 Tv
-TP
--11.5064 0 Td
-0 Tr
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ -- XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Spool) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-U
-U
-(Adobe Scatter Brush Tool) 1 0 61 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%000000000000000000000000000000006FBE5072696E742073706F6F6C65
-%72
-/Adobe_Brushed_Path () XT
-0 To
-1 0 0 1 349.9512 322.2725 0 Tp
-0 Tv
-TP
--19.7722 0 Td
-0 Tr
-/_Helvetica 9 8.379 -2.0251 Tf
-(Fileser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-u
-%_0 R
-%_0 G
-%_0.65 w
-%_349.5625 307.7793 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-349.5625 307.7793 m
-N
-u
-u
-0 O
-0.8158 g
-0 R
-0 G
-0.325 w 3.8636 M
-324.0938 314.0293 m
-375.0332 314.0293 L
-375.0332 304.875 L
-324.0938 304.875 L
-324.0938 314.0293 L
-b
-349.5645 309.4521 m
-B
-U
-u
-325.6807 304.875 m
-373.4453 304.875 L
-374.3965 304.875 375.1641 304.1045 375.1641 303.1563 c
-375.1641 302.2168 L
-375.1641 301.2676 374.3965 300.4961 373.4453 300.4961 c
-325.6807 300.4961 L
-324.7314 300.4961 323.9609 301.2676 323.9609 302.2168 c
-323.9609 303.1563 L
-323.9609 304.1045 324.7314 304.875 325.6807 304.875 c
-325.6807 304.875 L
-b
-349.5635 302.6855 m
-B
-U
-0 g
-327.0127 300.498 m
-329.9316 300.498 L
-329.4004 299.5684 L
-327.7422 299.5684 L
-327.0127 300.498 L
-b
-368.666 300.498 m
-371.584 300.498 L
-371.0527 299.5684 L
-369.3945 299.5684 L
-368.666 300.498 L
-b
-0.61 G
-0.65 w
-328.6035 314.0059 m
-328.6035 306.4453 L
-S
-329.9316 314.0059 m
-329.9316 306.4453 L
-S
-u
-0 O
-0 g
-0 G
-0.325 w
-360.5742 311.5078 m
-369.4609 311.5078 L
-369.4609 310.0488 L
-360.5742 310.0488 L
-360.5742 311.5078 L
-b
-365.0176 310.7793 m
-B
-U
-1 J
-368.6563 304.209 m
-368.9268 303.9238 369.0918 303.542 369.0918 303.1191 C
-369.0918 302.2559 L
-369.0918 301.832 368.9268 301.4492 368.6563 301.166 C
-S
-367.4277 304.209 m
-367.6953 303.9238 367.8613 303.542 367.8613 303.1191 C
-367.8613 302.2559 L
-367.8613 301.832 367.6953 301.4492 367.4277 301.166 C
-S
-366.1963 304.209 m
-366.4668 303.9238 366.6318 303.542 366.6318 303.1191 C
-366.6318 302.2559 L
-366.6318 301.832 366.4668 301.4492 366.1963 301.166 C
-S
-364.9668 304.209 m
-365.2354 303.9238 365.4023 303.542 365.4023 303.1191 C
-365.4023 302.2559 L
-365.4023 301.832 365.2354 301.4492 364.9668 301.166 C
-S
-363.7354 304.209 m
-364.0059 303.9238 364.1719 303.542 364.1719 303.1191 C
-364.1719 302.2559 L
-364.1719 301.832 364.0059 301.4492 363.7354 301.166 C
-S
-362.5059 304.209 m
-362.7754 303.9238 362.9414 303.542 362.9414 303.1191 C
-362.9414 302.2559 L
-362.9414 301.832 362.7754 301.4492 362.5059 301.166 C
-S
-361.2754 304.209 m
-361.5449 303.9238 361.7109 303.542 361.7109 303.1191 C
-361.7109 302.2559 L
-361.7109 301.832 361.5449 301.4492 361.2754 301.166 C
-S
-360.0449 304.209 m
-360.3145 303.9238 360.4805 303.542 360.4805 303.1191 C
-360.4805 302.2559 L
-360.4805 301.832 360.3145 301.4492 360.0449 301.166 C
-S
-358.8154 304.209 m
-359.085 303.9238 359.251 303.542 359.251 303.1191 C
-359.251 302.2559 L
-359.251 301.832 359.085 301.4492 358.8154 301.166 C
-S
-357.5859 304.209 m
-357.8535 303.9238 358.0205 303.542 358.0205 303.1191 C
-358.0205 302.2559 L
-358.0205 301.832 357.8535 301.4492 357.5859 301.166 C
-S
-356.3555 304.209 m
-356.625 303.9238 356.79 303.542 356.79 303.1191 C
-356.79 302.2559 L
-356.79 301.832 356.625 301.4492 356.3555 301.166 C
-S
-355.125 304.209 m
-355.3945 303.9238 355.5605 303.542 355.5605 303.1191 C
-355.5605 302.2559 L
-355.5605 301.832 355.3945 301.4492 355.125 301.166 C
-S
-353.8965 304.209 m
-354.166 303.9238 354.3301 303.542 354.3301 303.1191 C
-354.3301 302.2559 L
-354.3301 301.832 354.166 301.4492 353.8965 301.166 C
-S
-352.6641 304.209 m
-352.9355 303.9238 353.0996 303.542 353.0996 303.1191 C
-353.0996 302.2559 L
-353.0996 301.832 352.9355 301.4492 352.6641 301.166 C
-S
-351.4336 304.209 m
-351.7041 303.9238 351.8701 303.542 351.8701 303.1191 C
-351.8701 302.2559 L
-351.8701 301.832 351.7041 301.4492 351.4336 301.166 C
-S
-0 O
-0.4385 g
-0 J 1 j
-329.9316 315.9893 m
-368.9316 315.9893 L
-375.0332 314.0293 L
-324.0938 314.0293 L
-329.9316 315.9893 L
-b
-U
-U
-(Adobe Scatter Brush Tool) 1 0 59 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000041C646696C6520536572766572
-/Adobe_Brushed_Path () XT
-u
-%_0 g
-%_0 j 1 w 4 M
-%_336.6777 297.1758 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-336.6777 297.1758 m
-F
-u
-*u
-0 R
-1 G
-342.6738 307.1777 m
-342.6738 305.3652 L
-342.6738 305.2666 342.626 305.1709 342.5332 305.0791 c
-342.4434 304.9863 342.3086 304.8975 342.1357 304.8115 c
-341.9629 304.7275 341.752 304.6455 341.5059 304.5703 c
-341.2617 304.4951 340.9805 304.4248 340.6719 304.3604 c
-340.3857 304.3008 340.0732 304.2471 339.7422 304.1992 C
-339.7422 304.0781 L
-339.8223 304.0781 L
-339.8223 304.0127 339.793 303.9512 339.7422 303.8926 C
-339.7422 303.668 L
-339.8223 303.668 L
-339.8223 303.6035 339.793 303.542 339.7422 303.4834 C
-339.7422 303.2588 L
-339.8223 303.2588 L
-339.8223 303.1934 339.793 303.1318 339.7422 303.0732 C
-339.7422 302.8486 L
-339.8223 302.8486 L
-339.8223 302.7842 339.793 302.7217 339.7422 302.6641 C
-339.7422 302.4395 L
-339.8223 302.4395 L
-339.8223 302.374 339.793 302.3135 339.7422 302.2549 C
-339.7422 302.0303 L
-339.8223 302.0303 L
-339.8223 301.9648 339.793 301.9033 339.7422 301.8447 C
-339.7422 301.6211 L
-339.8223 301.6211 L
-339.8223 301.5557 339.793 301.4941 339.7422 301.4355 C
-339.7422 301.2109 L
-339.8223 301.2109 L
-339.8223 301.1455 339.793 301.084 339.7422 301.0254 C
-339.7422 300.8018 L
-339.8223 300.8018 L
-339.8223 300.7363 339.793 300.6748 339.7422 300.6162 C
-339.7422 300.3926 L
-339.8223 300.3926 L
-339.8223 300.3271 339.793 300.2656 339.7422 300.207 C
-339.7422 299.9824 L
-339.8223 299.9824 L
-339.8223 299.917 339.793 299.8555 339.7422 299.7979 C
-339.7422 299.5732 L
-339.8223 299.5732 L
-339.8223 299.5078 339.793 299.4463 339.7422 299.3877 C
-339.7422 299.1631 L
-339.8223 299.1631 L
-339.8223 299.0986 339.793 299.0361 339.7422 298.9785 C
-339.7422 298.7539 L
-339.8223 298.7539 L
-339.8223 298.6885 339.793 298.627 339.7422 298.5693 C
-339.7422 298.3447 L
-339.8223 298.3447 L
-339.8223 298.2793 339.793 298.2178 339.7422 298.1592 C
-339.7422 297.9346 L
-339.8223 297.9346 L
-339.8223 297.8701 339.793 297.8076 339.7422 297.75 C
-339.7422 297.5254 L
-339.8223 297.5254 L
-339.8223 297.46 339.793 297.3984 339.7422 297.3398 C
-339.7422 297.1162 L
-339.8223 297.1162 L
-339.8223 297.0508 339.793 296.9893 339.7422 296.9307 C
-339.7422 296.7061 L
-339.8223 296.7061 L
-339.8223 296.6416 339.793 296.5791 339.7422 296.5205 C
-339.7422 296.2969 L
-339.8223 296.2969 L
-339.8223 296.2314 339.793 296.1699 339.7422 296.1113 C
-339.7422 295.8877 L
-339.8223 295.8877 L
-339.8223 295.8223 339.793 295.7607 339.7422 295.7021 C
-339.7422 295.4775 L
-339.8223 295.4775 L
-339.8223 295.4121 339.793 295.3506 339.7422 295.292 C
-339.7422 295.0684 L
-339.8223 295.0684 L
-339.8223 295.0029 339.793 294.9414 339.7422 294.8828 C
-339.7422 294.6592 L
-339.8223 294.6592 L
-339.8223 294.6094 339.8018 294.5625 339.7715 294.5166 C
-341.5273 294.2588 342.6738 293.835 342.6738 293.3545 c
-342.6738 293.2988 342.6533 293.2432 342.623 293.1885 c
-342.6533 293.2432 342.6738 293.2988 342.6738 293.3545 C
-342.6738 291.542 L
-342.6738 291.4434 342.626 291.3477 342.5332 291.2549 c
-342.4434 291.1631 342.3086 291.0732 342.1357 290.9883 c
-341.9629 290.9033 341.752 290.8232 341.5059 290.7471 c
-341.2617 290.6719 340.9805 290.6016 340.6719 290.5371 c
-340.3613 290.4727 340.0244 290.4141 339.6602 290.3633 c
-339.2969 290.3115 338.9082 290.2686 338.498 290.2324 c
-338.0908 290.1963 337.6611 290.168 337.2148 290.1494 c
-336.7715 290.1309 336.3105 290.1211 335.8389 290.1211 c
-335.3672 290.1211 334.9063 290.1309 334.4619 290.1494 c
-334.0156 290.168 333.5879 290.1963 333.1787 290.2324 c
-332.7695 290.2686 332.3818 290.3115 332.0176 290.3633 c
-331.6543 290.4141 331.3154 290.4727 331.0068 290.5371 c
-330.6973 290.6016 330.418 290.6719 330.1719 290.7471 c
-329.9258 290.8232 329.7148 290.9033 329.542 290.9883 c
-329.3682 291.0732 329.2344 291.1631 329.1436 291.2549 c
-329.0527 291.3477 329.0049 291.4434 329.0049 291.542 C
-329.0049 293.3545 L
-329.0049 293.835 330.1514 294.2588 331.9063 294.5166 C
-331.877 294.5625 331.8564 294.6094 331.8564 294.6592 C
-331.9355 294.6592 L
-331.9355 294.8828 L
-331.8857 294.9414 331.8564 295.0029 331.8564 295.0684 C
-331.9355 295.0684 L
-331.9355 295.292 L
-331.8857 295.3506 331.8564 295.4121 331.8564 295.4775 C
-331.9355 295.4775 L
-331.9355 295.7021 L
-331.8857 295.7607 331.8564 295.8223 331.8564 295.8877 C
-331.9355 295.8877 L
-331.9355 296.1113 L
-331.8857 296.1699 331.8564 296.2314 331.8564 296.2969 C
-331.9355 296.2969 L
-331.9355 296.5205 L
-331.8857 296.5791 331.8564 296.6416 331.8564 296.7061 C
-331.9355 296.7061 L
-331.9355 296.9307 L
-331.8857 296.9893 331.8564 297.0508 331.8564 297.1162 C
-331.9355 297.1162 L
-331.9355 297.3398 L
-331.8857 297.3984 331.8564 297.46 331.8564 297.5254 C
-331.9355 297.5254 L
-331.9355 297.75 L
-331.8857 297.8076 331.8564 297.8701 331.8564 297.9346 C
-331.9355 297.9346 L
-331.9355 298.1592 L
-331.8857 298.2178 331.8564 298.2793 331.8564 298.3447 C
-331.9355 298.3447 L
-331.9355 298.5693 L
-331.8857 298.627 331.8564 298.6885 331.8564 298.7539 C
-331.9355 298.7539 L
-331.9355 298.9785 L
-331.8857 299.0361 331.8564 299.0986 331.8564 299.1631 C
-331.9355 299.1631 L
-331.9355 299.3877 L
-331.8857 299.4463 331.8564 299.5078 331.8564 299.5732 C
-331.9355 299.5732 L
-331.9355 299.7979 L
-331.8857 299.8555 331.8564 299.917 331.8564 299.9824 C
-331.9355 299.9824 L
-331.9355 300.207 L
-331.8857 300.2656 331.8564 300.3271 331.8564 300.3926 C
-331.9355 300.3926 L
-331.9355 300.6162 L
-331.8857 300.6748 331.8564 300.7363 331.8564 300.8018 C
-331.9355 300.8018 L
-331.9355 301.0254 L
-331.8857 301.084 331.8564 301.1455 331.8564 301.2109 C
-331.9355 301.2109 L
-331.9355 301.4355 L
-331.8857 301.4941 331.8564 301.5557 331.8564 301.6211 C
-331.9355 301.6211 L
-331.9355 301.8447 L
-331.8857 301.9033 331.8564 301.9648 331.8564 302.0303 C
-331.9355 302.0303 L
-331.9355 302.2549 L
-331.8857 302.3135 331.8564 302.374 331.8564 302.4395 C
-331.9355 302.4395 L
-331.9355 302.6641 L
-331.8857 302.7217 331.8564 302.7842 331.8564 302.8486 C
-331.9355 302.8486 L
-331.9355 303.0732 L
-331.8857 303.1318 331.8564 303.1934 331.8564 303.2588 C
-331.9355 303.2588 L
-331.9355 303.4834 L
-331.8857 303.542 331.8564 303.6035 331.8564 303.668 C
-331.9355 303.668 L
-331.9355 303.8926 L
-331.8857 303.9512 331.8564 304.0127 331.8564 304.0781 C
-331.9355 304.0781 L
-331.9355 304.1992 L
-331.6045 304.2471 331.293 304.3008 331.0068 304.3604 c
-330.6973 304.4248 330.418 304.4951 330.1719 304.5703 c
-329.9258 304.6455 329.7148 304.7275 329.542 304.8115 c
-329.3682 304.8975 329.2344 304.9863 329.1436 305.0791 c
-329.0527 305.1709 329.0049 305.2666 329.0049 305.3652 C
-329.0049 307.1777 L
-329.0049 307.8027 330.9443 308.333 333.6396 308.5234 C
-333.6797 308.5967 333.7197 308.6709 333.7598 308.751 c
-334.249 309.7295 334.1074 310.5742 333.957 311.4697 c
-333.8633 312.0273 333.7656 312.6045 333.8203 313.2363 c
-333.9619 314.8887 335.7266 315.6992 335.7725 315.7139 C
-342.7402 315.7139 L
-342.7686 315.585 L
-342.7588 315.5801 341.7969 315.1094 340.8779 313.5996 c
-340.3418 312.7168 340.4766 311.6621 340.6113 310.6426 c
-340.7061 309.9199 340.7939 309.2383 340.6152 308.7002 c
-340.5596 308.5322 340.4932 308.377 340.4209 308.2324 C
-341.8037 307.9717 342.6738 307.5967 342.6738 307.1777 C
-s
-1 D
-329.5439 306.624 m
-329.4668 306.6621 329.3984 306.7002 329.3369 306.7402 c
-329.3965 306.7012 329.4658 306.6621 329.542 306.625 C
-329.542 306.624 329.5439 306.624 Y
-s
-0 D
-331.0078 292.3496 m
-331.0068 292.3496 331.0068 292.3506 331.0049 292.3506 c
-331.0059 292.3506 331.0068 292.3506 331.0068 292.3496 C
-331.0068 292.3496 331.0078 292.3496 v
-s
-334.4824 291.9619 m
-334.4668 291.9619 334.4551 291.9629 334.4414 291.9639 C
-334.4482 291.9639 334.4551 291.9629 334.4619 291.9619 C
-334.4668 291.9619 334.4756 291.9619 334.4824 291.9619 c
-s
-337.2373 291.9639 m
-337.2236 291.9629 337.209 291.9619 337.1963 291.9619 c
-337.2021 291.9619 337.21 291.9619 337.2148 291.9619 C
-337.2236 291.9629 337.2285 291.9639 337.2373 291.9639 C
-s
-342.458 292.999 m
-342.4863 293.0225 342.5117 293.0449 342.5332 293.0684 c
-342.5566 293.0908 342.5684 293.1152 342.585 293.1377 c
-342.5508 293.0908 342.5137 293.0449 342.458 292.999 c
-s
-342.4941 306.8555 m
-342.4053 306.7754 342.2852 306.6982 342.1338 306.624 C
-342.1348 306.624 342.1357 306.624 342.1357 306.625 C
-342.2861 306.6982 342.4053 306.7764 342.4941 306.8555 c
-s
-*U
-u
-0 O
-0 g
-335.8867 302.917 m
-F
-u
-u
-0.67 g
-342.458 292.999 m
-342.374 292.9316 342.2656 292.8652 342.1357 292.8018 C
-342.1357 292.8018 L
-342.1357 292.8018 L
-341.5322 292.5049 340.457 292.2588 339.1035 292.1064 c
-339.0986 292.1055 339.0938 292.1045 339.0898 292.1045 c
-338.9023 292.083 338.7109 292.0645 338.5146 292.0469 c
-338.5098 292.0459 338.5049 292.0459 338.498 292.0459 c
-338.4932 292.0449 338.4883 292.0439 338.4824 292.0439 c
-338.2861 292.0264 338.0859 292.0117 337.8799 291.998 c
-337.874 291.998 337.8682 291.9971 337.8633 291.9971 c
-337.6572 291.9834 337.4482 291.9727 337.2373 291.9639 c
-337.2285 291.9639 337.2236 291.9629 337.2148 291.9619 c
-337.21 291.9619 337.2021 291.9619 337.1963 291.9619 c
-336.7578 291.9434 336.3037 291.9336 335.8389 291.9336 c
-335.374 291.9336 334.9209 291.9434 334.4824 291.9619 c
-334.4756 291.9619 334.4668 291.9619 334.4619 291.9619 c
-334.4551 291.9629 334.4482 291.9639 334.4414 291.9639 c
-334.2285 291.9727 334.0195 291.9844 333.8154 291.9971 c
-333.8105 291.9971 333.8047 291.998 333.7988 291.998 c
-333.5938 292.0117 333.3906 292.0264 333.1934 292.0439 c
-333.1885 292.0439 333.1836 292.0449 333.1787 292.0459 c
-333.1748 292.0459 333.1699 292.0459 333.165 292.0469 c
-332.9668 292.0635 332.7754 292.083 332.5879 292.1045 c
-332.584 292.1045 332.5801 292.1055 332.5762 292.1064 c
-331.998 292.1709 331.4697 292.2539 331.0078 292.3496 c
-331.0068 292.3496 331.0068 292.3496 y
-331.0068 292.3506 331.0059 292.3506 331.0049 292.3506 c
-330.3877 292.4785 329.8877 292.6318 329.542 292.8018 C
-329.542 292.8018 L
-329.542 292.8018 L
-329.3438 292.8984 329.1973 293.001 329.1094 293.1084 c
-329.042 293.1885 329.0049 293.2705 329.0049 293.3545 C
-329.0049 291.542 L
-329.0049 291.4434 329.0527 291.3477 329.1436 291.2549 c
-329.2344 291.1631 329.3682 291.0732 329.542 290.9883 c
-329.7148 290.9033 329.9258 290.8232 330.1719 290.7471 c
-330.418 290.6719 330.6973 290.6016 331.0068 290.5371 c
-331.3154 290.4727 331.6543 290.4141 332.0176 290.3633 c
-332.3818 290.3115 332.7695 290.2686 333.1787 290.2324 c
-333.5879 290.1963 334.0156 290.168 334.4619 290.1494 c
-334.9063 290.1309 335.3672 290.1211 335.8389 290.1211 c
-336.3105 290.1211 336.7715 290.1309 337.2148 290.1494 c
-337.6611 290.168 338.0908 290.1963 338.498 290.2324 c
-338.9082 290.2686 339.2969 290.3115 339.6602 290.3633 c
-340.0244 290.4141 340.3613 290.4727 340.6719 290.5371 c
-340.9805 290.6016 341.2617 290.6719 341.5059 290.7471 c
-341.752 290.8232 341.9629 290.9033 342.1357 290.9883 c
-342.3086 291.0732 342.4434 291.1631 342.5332 291.2549 c
-342.626 291.3477 342.6738 291.4434 342.6738 291.542 C
-342.6738 293.3545 L
-342.6738 293.2568 342.626 293.1611 342.5332 293.0684 c
-342.5117 293.0449 342.4863 293.0225 342.458 292.999 c
-f
-0.39 g
-339.7422 294.249 m
-339.8223 294.249 L
-339.8223 294.1846 339.793 294.1221 339.7422 294.0645 C
-339.7422 293.7197 L
-339.7422 293.6631 339.7148 293.6084 339.6621 293.5557 c
-339.6113 293.5029 339.5332 293.4521 339.4355 293.4033 c
-339.3359 293.3545 339.2148 293.3086 339.0762 293.2656 c
-338.9355 293.2227 338.7754 293.1826 338.5986 293.1455 c
-338.4229 293.1094 338.2285 293.0752 338.0215 293.0459 c
-337.8125 293.0176 337.5918 292.9922 337.3594 292.9717 c
-337.125 292.9512 336.8799 292.9346 336.626 292.9248 c
-336.373 292.9141 336.1084 292.9082 335.8389 292.9082 c
-335.5693 292.9082 335.3066 292.9141 335.0527 292.9248 c
-334.7988 292.9346 334.5537 292.9512 334.3203 292.9717 c
-334.0869 292.9922 333.8643 293.0176 333.6572 293.0459 c
-333.4492 293.0752 333.2559 293.1094 333.0781 293.1455 c
-332.9033 293.1826 332.7422 293.2227 332.6025 293.2656 c
-332.4619 293.3086 332.3418 293.3545 332.2441 293.4033 c
-332.1436 293.4521 332.0674 293.5029 332.0146 293.5557 c
-331.9629 293.6084 331.9355 293.6631 331.9355 293.7197 C
-331.9355 294.0645 L
-331.8857 294.1221 331.8564 294.1846 331.8564 294.249 C
-331.9355 294.249 L
-331.9355 294.4736 L
-331.9238 294.4873 331.9141 294.502 331.9063 294.5166 C
-330.1514 294.2588 329.0049 293.835 329.0049 293.3545 c
-329.0049 293.2705 329.042 293.1885 329.1094 293.1084 c
-329.1973 293.001 329.3438 292.8984 329.542 292.8018 C
-329.542 292.8018 L
-329.8877 292.6318 330.3877 292.4785 331.0049 292.3506 c
-331.0068 292.3506 331.0068 292.3496 331.0078 292.3496 c
-331.4697 292.2539 331.998 292.1709 332.5762 292.1064 c
-332.5801 292.1055 332.584 292.1045 332.5879 292.1045 c
-332.7754 292.083 332.9668 292.0635 333.165 292.0469 c
-333.1748 292.0459 333.1836 292.0449 333.1934 292.0439 c
-333.3906 292.0264 333.5938 292.0117 333.7988 291.998 c
-333.8047 291.998 333.8105 291.9971 333.8154 291.9971 c
-334.0195 291.9844 334.2285 291.9727 334.4414 291.9639 c
-334.4551 291.9629 334.4668 291.9619 334.4824 291.9619 c
-334.9209 291.9434 335.374 291.9336 335.8389 291.9336 c
-336.3037 291.9336 336.7578 291.9434 337.1963 291.9619 c
-337.209 291.9619 337.2236 291.9629 337.2373 291.9639 c
-337.4482 291.9727 337.6572 291.9834 337.8633 291.9971 c
-337.8682 291.9971 337.874 291.998 337.8799 291.998 c
-338.0859 292.0117 338.2861 292.0264 338.4824 292.0439 c
-338.4932 292.0449 338.5039 292.0459 338.5146 292.0469 c
-338.7109 292.0645 338.9023 292.083 339.0898 292.1045 c
-339.0938 292.1045 339.0986 292.1055 339.1035 292.1064 c
-340.457 292.2588 341.5322 292.5049 342.1357 292.8018 C
-342.1357 292.8018 L
-342.2656 292.8652 342.374 292.9316 342.458 292.999 c
-342.5986 293.1133 342.6738 293.2324 342.6738 293.3545 c
-342.6738 293.835 341.5273 294.2588 339.7715 294.5166 C
-339.7627 294.502 339.7539 294.4873 339.7422 294.4736 C
-339.7422 294.249 L
-f
-0.55 g
-335.8389 298.2822 m
-334.1289 298.2822 332.3262 298.5244 331.9355 298.9785 C
-331.9355 298.7539 L
-331.9922 298.7539 L
-331.9922 298.4014 333.5713 298.0078 335.8389 298.0078 c
-338.1074 298.0078 339.6865 298.4014 339.6865 298.7539 C
-339.7422 298.7539 L
-339.7422 298.9785 L
-339.3525 298.5244 337.5498 298.2822 335.8389 298.2822 c
-f
-335.8389 301.1484 m
-334.1289 301.1484 332.3262 301.3916 331.9355 301.8447 C
-331.9355 301.6211 L
-331.9922 301.6211 L
-331.9922 301.2676 333.5713 300.874 335.8389 300.874 c
-338.1074 300.874 339.6865 301.2676 339.6865 301.6211 C
-339.7422 301.6211 L
-339.7422 301.8447 L
-339.3525 301.3916 337.5498 301.1484 335.8389 301.1484 c
-f
-335.8389 297.8721 m
-334.1289 297.8721 332.3262 298.1152 331.9355 298.5693 C
-331.9355 298.3447 L
-331.9922 298.3447 L
-331.9922 297.9912 333.5713 297.5977 335.8389 297.5977 c
-338.1074 297.5977 339.6865 297.9912 339.6865 298.3447 C
-339.7422 298.3447 L
-339.7422 298.5693 L
-339.3525 298.1152 337.5498 297.8721 335.8389 297.8721 c
-f
-335.8389 297.4629 m
-334.1289 297.4629 332.3262 297.7061 331.9355 298.1592 C
-331.9355 297.9346 L
-331.9922 297.9346 L
-331.9922 297.582 333.5713 297.1885 335.8389 297.1885 c
-338.1074 297.1885 339.6865 297.582 339.6865 297.9346 C
-339.7422 297.9346 L
-339.7422 298.1592 L
-339.3525 297.7061 337.5498 297.4629 335.8389 297.4629 c
-f
-335.8389 300.7393 m
-334.1289 300.7393 332.3262 300.9814 331.9355 301.4355 C
-331.9355 301.2109 L
-331.9922 301.2109 L
-331.9922 300.8584 333.5713 300.4648 335.8389 300.4648 c
-338.1074 300.4648 339.6865 300.8584 339.6865 301.2109 C
-339.7422 301.2109 L
-339.7422 301.4355 L
-339.3525 300.9814 337.5498 300.7393 335.8389 300.7393 c
-f
-335.8389 299.5107 m
-334.1289 299.5107 332.3262 299.7539 331.9355 300.207 C
-331.9355 299.9824 L
-331.9922 299.9824 L
-331.9922 299.6299 333.5713 299.2354 335.8389 299.2354 c
-338.1074 299.2354 339.6865 299.6299 339.6865 299.9824 C
-339.7422 299.9824 L
-339.7422 300.207 L
-339.3525 299.7539 337.5498 299.5107 335.8389 299.5107 c
-f
-335.8389 298.6914 m
-334.1289 298.6914 332.3262 298.9346 331.9355 299.3877 C
-331.9355 299.1631 L
-331.9922 299.1631 L
-331.9922 298.8105 333.5713 298.417 335.8389 298.417 c
-338.1074 298.417 339.6865 298.8105 339.6865 299.1631 C
-339.7422 299.1631 L
-339.7422 299.3877 L
-339.3525 298.9346 337.5498 298.6914 335.8389 298.6914 c
-f
-335.8389 299.9199 m
-334.1289 299.9199 332.3262 300.1631 331.9355 300.6162 C
-331.9355 300.3926 L
-331.9922 300.3926 L
-331.9922 300.0391 333.5713 299.6455 335.8389 299.6455 c
-338.1074 299.6455 339.6865 300.0391 339.6865 300.3926 C
-339.7422 300.3926 L
-339.7422 300.6162 L
-339.3525 300.1631 337.5498 299.9199 335.8389 299.9199 c
-f
-335.8389 302.7861 m
-334.1289 302.7861 332.3262 303.0293 331.9355 303.4834 C
-331.9355 303.2588 L
-331.9922 303.2588 L
-331.9922 302.9063 333.5713 302.5127 335.8389 302.5127 c
-338.1074 302.5127 339.6865 302.9063 339.6865 303.2588 C
-339.7422 303.2588 L
-339.7422 303.4834 L
-339.3525 303.0293 337.5498 302.7861 335.8389 302.7861 c
-f
-335.8389 301.9678 m
-334.1289 301.9678 332.3262 302.21 331.9355 302.6641 C
-331.9355 302.4395 L
-331.9922 302.4395 L
-331.9922 302.0869 333.5713 301.6934 335.8389 301.6934 c
-338.1074 301.6934 339.6865 302.0869 339.6865 302.4395 C
-339.7422 302.4395 L
-339.7422 302.6641 L
-339.3525 302.21 337.5498 301.9678 335.8389 301.9678 c
-f
-335.8389 299.1006 m
-334.1289 299.1006 332.3262 299.3438 331.9355 299.7979 C
-331.9355 299.5732 L
-331.9922 299.5732 L
-331.9922 299.2197 333.5713 298.8271 335.8389 298.8271 c
-338.1074 298.8271 339.6865 299.2197 339.6865 299.5732 C
-339.7422 299.5732 L
-339.7422 299.7979 L
-339.3525 299.3438 337.5498 299.1006 335.8389 299.1006 c
-f
-335.8389 300.3291 m
-334.1289 300.3291 332.3262 300.5723 331.9355 301.0254 C
-331.9355 300.8018 L
-331.9922 300.8018 L
-331.9922 300.4482 333.5713 300.0557 335.8389 300.0557 c
-338.1074 300.0557 339.6865 300.4482 339.6865 300.8018 C
-339.7422 300.8018 L
-339.7422 301.0254 L
-339.3525 300.5723 337.5498 300.3291 335.8389 300.3291 c
-f
-335.8389 302.3779 m
-334.1289 302.3779 332.3262 302.6201 331.9355 303.0732 C
-331.9355 302.8486 L
-331.9922 302.8486 L
-331.9922 302.4961 333.5713 302.1025 335.8389 302.1025 c
-338.1074 302.1025 339.6865 302.4961 339.6865 302.8486 C
-339.7422 302.8486 L
-339.7422 303.0732 L
-339.3525 302.6201 337.5498 302.3779 335.8389 302.3779 c
-f
-335.8389 301.5586 m
-334.1289 301.5586 332.3262 301.8018 331.9355 302.2549 C
-331.9355 302.0303 L
-331.9922 302.0303 L
-331.9922 301.6768 333.5713 301.2832 335.8389 301.2832 c
-338.1074 301.2832 339.6865 301.6768 339.6865 302.0303 C
-339.7422 302.0303 L
-339.7422 302.2549 L
-339.3525 301.8018 337.5498 301.5586 335.8389 301.5586 c
-f
-335.8389 295.415 m
-334.1289 295.415 332.3262 295.6582 331.9355 296.1113 C
-331.9355 295.8877 L
-331.9922 295.8877 L
-331.9922 295.5342 333.5713 295.1406 335.8389 295.1406 c
-338.1074 295.1406 339.6865 295.5342 339.6865 295.8877 C
-339.7422 295.8877 L
-339.7422 296.1113 L
-339.3525 295.6582 337.5498 295.415 335.8389 295.415 c
-f
-335.8389 294.1865 m
-334.1289 294.1865 332.3262 294.4297 331.9355 294.8828 C
-331.9355 294.6592 L
-331.9922 294.6592 L
-331.9922 294.3057 333.5713 293.9121 335.8389 293.9121 c
-338.1074 293.9121 339.6865 294.3057 339.6865 294.6592 C
-339.7422 294.6592 L
-339.7422 294.8828 L
-339.3525 294.4297 337.5498 294.1865 335.8389 294.1865 c
-f
-335.8389 294.5967 m
-334.1289 294.5967 332.3262 294.8389 331.9355 295.292 C
-331.9355 295.0684 L
-331.9922 295.0684 L
-331.9922 294.7148 333.5713 294.3213 335.8389 294.3213 c
-338.1074 294.3213 339.6865 294.7148 339.6865 295.0684 C
-339.7422 295.0684 L
-339.7422 295.292 L
-339.3525 294.8389 337.5498 294.5967 335.8389 294.5967 c
-f
-335.8389 297.0537 m
-334.1289 297.0537 332.3262 297.2959 331.9355 297.75 C
-331.9355 297.5254 L
-331.9922 297.5254 L
-331.9922 297.1729 333.5713 296.7783 335.8389 296.7783 c
-338.1074 296.7783 339.6865 297.1729 339.6865 297.5254 C
-339.7422 297.5254 L
-339.7422 297.75 L
-339.3525 297.2959 337.5498 297.0537 335.8389 297.0537 c
-f
-335.8389 295.8252 m
-334.1289 295.8252 332.3262 296.0674 331.9355 296.5205 C
-331.9355 296.2969 L
-331.9922 296.2969 L
-331.9922 295.9443 333.5713 295.5498 335.8389 295.5498 c
-338.1074 295.5498 339.6865 295.9443 339.6865 296.2969 C
-339.7422 296.2969 L
-339.7422 296.5205 L
-339.3525 296.0674 337.5498 295.8252 335.8389 295.8252 c
-f
-335.8389 296.2344 m
-334.1289 296.2344 332.3262 296.4775 331.9355 296.9307 C
-331.9355 296.7061 L
-331.9922 296.7061 L
-331.9922 296.3535 333.5713 295.96 335.8389 295.96 c
-338.1074 295.96 339.6865 296.3535 339.6865 296.7061 C
-339.7422 296.7061 L
-339.7422 296.9307 L
-339.3525 296.4775 337.5498 296.2344 335.8389 296.2344 c
-f
-335.8389 296.6436 m
-334.1289 296.6436 332.3262 296.8867 331.9355 297.3398 C
-331.9355 297.1162 L
-331.9922 297.1162 L
-331.9922 296.7627 333.5713 296.3691 335.8389 296.3691 c
-338.1074 296.3691 339.6865 296.7627 339.6865 297.1162 C
-339.7422 297.1162 L
-339.7422 297.3398 L
-339.3525 296.8867 337.5498 296.6436 335.8389 296.6436 c
-f
-335.8389 295.0059 m
-334.1289 295.0059 332.3262 295.249 331.9355 295.7021 C
-331.9355 295.4775 L
-331.9922 295.4775 L
-331.9922 295.125 333.5713 294.7314 335.8389 294.7314 c
-338.1074 294.7314 339.6865 295.125 339.6865 295.4775 C
-339.7422 295.4775 L
-339.7422 295.7021 L
-339.3525 295.249 337.5498 295.0059 335.8389 295.0059 c
-f
-338.498 304.0557 m
-338.0908 304.0195 337.6611 303.9912 337.2148 303.9727 c
-336.7715 303.9541 336.3105 303.9443 335.8389 303.9443 c
-335.3672 303.9443 334.9063 303.9541 334.4619 303.9727 c
-334.0156 303.9912 333.5879 304.0195 333.1787 304.0557 c
-332.7695 304.0918 332.3818 304.1357 332.0176 304.1865 c
-331.9893 304.1904 331.9629 304.1953 331.9355 304.1992 C
-331.9355 304.0781 L
-331.9922 304.0781 L
-331.9922 303.7256 333.5713 303.3311 335.8389 303.3311 c
-338.1074 303.3311 339.6865 303.7256 339.6865 304.0781 C
-339.7422 304.0781 L
-339.7422 304.1992 L
-339.7139 304.1953 339.6885 304.1904 339.6602 304.1865 c
-339.2969 304.1357 338.9082 304.0918 338.498 304.0557 c
-f
-335.8389 303.1963 m
-334.1289 303.1963 332.3262 303.4395 331.9355 303.8926 C
-331.9355 303.668 L
-331.9922 303.668 L
-331.9922 303.3154 333.5713 302.9219 335.8389 302.9219 c
-338.1074 302.9219 339.6865 303.3154 339.6865 303.668 C
-339.7422 303.668 L
-339.7422 303.8926 L
-339.3525 303.4395 337.5498 303.1963 335.8389 303.1963 c
-f
-335.8389 293.3682 m
-334.1289 293.3682 332.3262 293.6104 331.9355 294.0645 C
-331.9355 293.7197 L
-331.9355 293.6631 331.9629 293.6084 332.0146 293.5557 c
-332.0674 293.5029 332.1436 293.4521 332.2441 293.4033 c
-332.3418 293.3545 332.4619 293.3086 332.6025 293.2656 c
-332.7422 293.2227 332.9033 293.1826 333.0781 293.1455 c
-333.2559 293.1094 333.4492 293.0752 333.6572 293.0459 c
-333.8643 293.0176 334.0869 292.9922 334.3203 292.9717 c
-334.5537 292.9512 334.7988 292.9346 335.0527 292.9248 c
-335.3066 292.9141 335.5693 292.9082 335.8389 292.9082 c
-336.1084 292.9082 336.373 292.9141 336.626 292.9248 c
-336.8799 292.9346 337.125 292.9512 337.3594 292.9717 c
-337.5918 292.9922 337.8125 293.0176 338.0215 293.0459 c
-338.2285 293.0752 338.4229 293.1094 338.5986 293.1455 c
-338.7754 293.1826 338.9355 293.2227 339.0762 293.2656 c
-339.2148 293.3086 339.3359 293.3545 339.4355 293.4033 c
-339.5332 293.4521 339.6113 293.5029 339.6621 293.5557 c
-339.7148 293.6084 339.7422 293.6631 339.7422 293.7197 C
-339.7422 294.0645 L
-339.3525 293.6104 337.5498 293.3682 335.8389 293.3682 c
-f
-331.9922 294.249 m
-331.9922 293.8965 333.5713 293.5029 335.8389 293.5029 c
-338.1074 293.5029 339.6865 293.8965 339.6865 294.249 C
-339.7422 294.249 L
-339.7422 294.4736 L
-339.3525 294.0205 337.5498 293.7773 335.8389 293.7773 c
-334.1289 293.7773 332.3262 294.0205 331.9355 294.4736 C
-331.9355 294.249 L
-331.9922 294.249 L
-f
-0.15 g
-335.8389 303.3311 m
-333.5713 303.3311 331.9922 303.7256 331.9922 304.0781 C
-331.9355 304.0781 L
-331.8564 304.0781 L
-331.8564 304.0127 331.8857 303.9512 331.9355 303.8926 c
-332.3262 303.4395 334.1289 303.1963 335.8389 303.1963 c
-337.5498 303.1963 339.3525 303.4395 339.7422 303.8926 c
-339.793 303.9512 339.8223 304.0127 339.8223 304.0781 C
-339.7422 304.0781 L
-339.6865 304.0781 L
-339.6865 303.7256 338.1074 303.3311 335.8389 303.3311 c
-f
-335.8389 302.9219 m
-333.5713 302.9219 331.9922 303.3154 331.9922 303.668 C
-331.9355 303.668 L
-331.8564 303.668 L
-331.8564 303.6035 331.8857 303.542 331.9355 303.4834 c
-332.3262 303.0293 334.1289 302.7861 335.8389 302.7861 c
-337.5498 302.7861 339.3525 303.0293 339.7422 303.4834 c
-339.793 303.542 339.8223 303.6035 339.8223 303.668 C
-339.7422 303.668 L
-339.6865 303.668 L
-339.6865 303.3154 338.1074 302.9219 335.8389 302.9219 c
-f
-335.8389 302.5127 m
-333.5713 302.5127 331.9922 302.9063 331.9922 303.2588 C
-331.9355 303.2588 L
-331.8564 303.2588 L
-331.8564 303.1934 331.8857 303.1318 331.9355 303.0732 c
-332.3262 302.6201 334.1289 302.3779 335.8389 302.3779 c
-337.5498 302.3779 339.3525 302.6201 339.7422 303.0732 c
-339.793 303.1318 339.8223 303.1934 339.8223 303.2588 C
-339.7422 303.2588 L
-339.6865 303.2588 L
-339.6865 302.9063 338.1074 302.5127 335.8389 302.5127 c
-f
-335.8389 302.1025 m
-333.5713 302.1025 331.9922 302.4961 331.9922 302.8486 C
-331.9355 302.8486 L
-331.8564 302.8486 L
-331.8564 302.7842 331.8857 302.7217 331.9355 302.6641 c
-332.3262 302.21 334.1289 301.9678 335.8389 301.9678 c
-337.5498 301.9678 339.3525 302.21 339.7422 302.6641 c
-339.793 302.7217 339.8223 302.7842 339.8223 302.8486 C
-339.7422 302.8486 L
-339.6865 302.8486 L
-339.6865 302.4961 338.1074 302.1025 335.8389 302.1025 c
-f
-335.8389 301.6934 m
-333.5713 301.6934 331.9922 302.0869 331.9922 302.4395 C
-331.9355 302.4395 L
-331.8564 302.4395 L
-331.8564 302.374 331.8857 302.3135 331.9355 302.2549 c
-332.3262 301.8018 334.1289 301.5586 335.8389 301.5586 c
-337.5498 301.5586 339.3525 301.8018 339.7422 302.2549 c
-339.793 302.3135 339.8223 302.374 339.8223 302.4395 C
-339.7422 302.4395 L
-339.6865 302.4395 L
-339.6865 302.0869 338.1074 301.6934 335.8389 301.6934 c
-f
-335.8389 301.2832 m
-333.5713 301.2832 331.9922 301.6768 331.9922 302.0303 C
-331.9355 302.0303 L
-331.8564 302.0303 L
-331.8564 301.9648 331.8857 301.9033 331.9355 301.8447 c
-332.3262 301.3916 334.1289 301.1484 335.8389 301.1484 c
-337.5498 301.1484 339.3525 301.3916 339.7422 301.8447 c
-339.793 301.9033 339.8223 301.9648 339.8223 302.0303 C
-339.7422 302.0303 L
-339.6865 302.0303 L
-339.6865 301.6768 338.1074 301.2832 335.8389 301.2832 c
-f
-335.8389 300.874 m
-333.5713 300.874 331.9922 301.2676 331.9922 301.6211 C
-331.9355 301.6211 L
-331.8564 301.6211 L
-331.8564 301.5557 331.8857 301.4941 331.9355 301.4355 c
-332.3262 300.9814 334.1289 300.7393 335.8389 300.7393 c
-337.5498 300.7393 339.3525 300.9814 339.7422 301.4355 c
-339.793 301.4941 339.8223 301.5557 339.8223 301.6211 C
-339.7422 301.6211 L
-339.6865 301.6211 L
-339.6865 301.2676 338.1074 300.874 335.8389 300.874 c
-f
-335.8389 300.4648 m
-333.5713 300.4648 331.9922 300.8584 331.9922 301.2109 C
-331.9355 301.2109 L
-331.8564 301.2109 L
-331.8564 301.1455 331.8857 301.084 331.9355 301.0254 c
-332.3262 300.5723 334.1289 300.3291 335.8389 300.3291 c
-337.5498 300.3291 339.3525 300.5723 339.7422 301.0254 c
-339.793 301.084 339.8223 301.1455 339.8223 301.2109 C
-339.7422 301.2109 L
-339.6865 301.2109 L
-339.6865 300.8584 338.1074 300.4648 335.8389 300.4648 c
-f
-335.8389 300.0557 m
-333.5713 300.0557 331.9922 300.4482 331.9922 300.8018 C
-331.9355 300.8018 L
-331.8564 300.8018 L
-331.8564 300.7363 331.8857 300.6748 331.9355 300.6162 c
-332.3262 300.1631 334.1289 299.9199 335.8389 299.9199 c
-337.5498 299.9199 339.3525 300.1631 339.7422 300.6162 c
-339.793 300.6748 339.8223 300.7363 339.8223 300.8018 C
-339.7422 300.8018 L
-339.6865 300.8018 L
-339.6865 300.4482 338.1074 300.0557 335.8389 300.0557 c
-f
-335.8389 299.6455 m
-333.5713 299.6455 331.9922 300.0391 331.9922 300.3926 C
-331.9355 300.3926 L
-331.8564 300.3926 L
-331.8564 300.3271 331.8857 300.2656 331.9355 300.207 c
-332.3262 299.7539 334.1289 299.5107 335.8389 299.5107 c
-337.5498 299.5107 339.3525 299.7539 339.7422 300.207 c
-339.793 300.2656 339.8223 300.3271 339.8223 300.3926 C
-339.7422 300.3926 L
-339.6865 300.3926 L
-339.6865 300.0391 338.1074 299.6455 335.8389 299.6455 c
-f
-335.8389 299.2354 m
-333.5713 299.2354 331.9922 299.6299 331.9922 299.9824 C
-331.9355 299.9824 L
-331.8564 299.9824 L
-331.8564 299.917 331.8857 299.8555 331.9355 299.7979 c
-332.3262 299.3438 334.1289 299.1006 335.8389 299.1006 c
-337.5498 299.1006 339.3525 299.3438 339.7422 299.7979 c
-339.793 299.8555 339.8223 299.917 339.8223 299.9824 C
-339.7422 299.9824 L
-339.6865 299.9824 L
-339.6865 299.6299 338.1074 299.2354 335.8389 299.2354 c
-f
-335.8389 298.8271 m
-333.5713 298.8271 331.9922 299.2197 331.9922 299.5732 C
-331.9355 299.5732 L
-331.8564 299.5732 L
-331.8564 299.5078 331.8857 299.4463 331.9355 299.3877 c
-332.3262 298.9346 334.1289 298.6914 335.8389 298.6914 c
-337.5498 298.6914 339.3525 298.9346 339.7422 299.3877 c
-339.793 299.4463 339.8223 299.5078 339.8223 299.5732 C
-339.7422 299.5732 L
-339.6865 299.5732 L
-339.6865 299.2197 338.1074 298.8271 335.8389 298.8271 c
-f
-335.8389 298.417 m
-333.5713 298.417 331.9922 298.8105 331.9922 299.1631 C
-331.9355 299.1631 L
-331.8564 299.1631 L
-331.8564 299.0986 331.8857 299.0361 331.9355 298.9785 c
-332.3262 298.5244 334.1289 298.2822 335.8389 298.2822 c
-337.5498 298.2822 339.3525 298.5244 339.7422 298.9785 c
-339.793 299.0361 339.8223 299.0986 339.8223 299.1631 C
-339.7422 299.1631 L
-339.6865 299.1631 L
-339.6865 298.8105 338.1074 298.417 335.8389 298.417 c
-f
-335.8389 298.0078 m
-333.5713 298.0078 331.9922 298.4014 331.9922 298.7539 C
-331.9355 298.7539 L
-331.8564 298.7539 L
-331.8564 298.6885 331.8857 298.627 331.9355 298.5693 c
-332.3262 298.1152 334.1289 297.8721 335.8389 297.8721 c
-337.5498 297.8721 339.3525 298.1152 339.7422 298.5693 c
-339.793 298.627 339.8223 298.6885 339.8223 298.7539 C
-339.7422 298.7539 L
-339.6865 298.7539 L
-339.6865 298.4014 338.1074 298.0078 335.8389 298.0078 c
-f
-335.8389 297.5977 m
-333.5713 297.5977 331.9922 297.9912 331.9922 298.3447 C
-331.9355 298.3447 L
-331.8564 298.3447 L
-331.8564 298.2793 331.8857 298.2178 331.9355 298.1592 c
-332.3262 297.7061 334.1289 297.4629 335.8389 297.4629 c
-337.5498 297.4629 339.3525 297.7061 339.7422 298.1592 c
-339.793 298.2178 339.8223 298.2793 339.8223 298.3447 C
-339.7422 298.3447 L
-339.6865 298.3447 L
-339.6865 297.9912 338.1074 297.5977 335.8389 297.5977 c
-f
-335.8389 297.1885 m
-333.5713 297.1885 331.9922 297.582 331.9922 297.9346 C
-331.9355 297.9346 L
-331.8564 297.9346 L
-331.8564 297.8701 331.8857 297.8076 331.9355 297.75 c
-332.3262 297.2959 334.1289 297.0537 335.8389 297.0537 c
-337.5498 297.0537 339.3525 297.2959 339.7422 297.75 c
-339.793 297.8076 339.8223 297.8701 339.8223 297.9346 C
-339.7422 297.9346 L
-339.6865 297.9346 L
-339.6865 297.582 338.1074 297.1885 335.8389 297.1885 c
-f
-335.8389 296.7783 m
-333.5713 296.7783 331.9922 297.1729 331.9922 297.5254 C
-331.9355 297.5254 L
-331.8564 297.5254 L
-331.8564 297.46 331.8857 297.3984 331.9355 297.3398 c
-332.3262 296.8867 334.1289 296.6436 335.8389 296.6436 c
-337.5498 296.6436 339.3525 296.8867 339.7422 297.3398 c
-339.793 297.3984 339.8223 297.46 339.8223 297.5254 C
-339.7422 297.5254 L
-339.6865 297.5254 L
-339.6865 297.1729 338.1074 296.7783 335.8389 296.7783 c
-f
-335.8389 296.3691 m
-333.5713 296.3691 331.9922 296.7627 331.9922 297.1162 C
-331.9355 297.1162 L
-331.8564 297.1162 L
-331.8564 297.0508 331.8857 296.9893 331.9355 296.9307 c
-332.3262 296.4775 334.1289 296.2344 335.8389 296.2344 c
-337.5498 296.2344 339.3525 296.4775 339.7422 296.9307 c
-339.793 296.9893 339.8223 297.0508 339.8223 297.1162 C
-339.7422 297.1162 L
-339.6865 297.1162 L
-339.6865 296.7627 338.1074 296.3691 335.8389 296.3691 c
-f
-335.8389 295.96 m
-333.5713 295.96 331.9922 296.3535 331.9922 296.7061 C
-331.9355 296.7061 L
-331.8564 296.7061 L
-331.8564 296.6416 331.8857 296.5791 331.9355 296.5205 c
-332.3262 296.0674 334.1289 295.8252 335.8389 295.8252 c
-337.5498 295.8252 339.3525 296.0674 339.7422 296.5205 c
-339.793 296.5791 339.8223 296.6416 339.8223 296.7061 C
-339.7422 296.7061 L
-339.6865 296.7061 L
-339.6865 296.3535 338.1074 295.96 335.8389 295.96 c
-f
-335.8389 295.5498 m
-333.5713 295.5498 331.9922 295.9443 331.9922 296.2969 C
-331.9355 296.2969 L
-331.8564 296.2969 L
-331.8564 296.2314 331.8857 296.1699 331.9355 296.1113 c
-332.3262 295.6582 334.1289 295.415 335.8389 295.415 c
-337.5498 295.415 339.3525 295.6582 339.7422 296.1113 c
-339.793 296.1699 339.8223 296.2314 339.8223 296.2969 C
-339.7422 296.2969 L
-339.6865 296.2969 L
-339.6865 295.9443 338.1074 295.5498 335.8389 295.5498 c
-f
-335.8389 295.1406 m
-333.5713 295.1406 331.9922 295.5342 331.9922 295.8877 C
-331.9355 295.8877 L
-331.8564 295.8877 L
-331.8564 295.8223 331.8857 295.7607 331.9355 295.7021 c
-332.3262 295.249 334.1289 295.0059 335.8389 295.0059 c
-337.5498 295.0059 339.3525 295.249 339.7422 295.7021 c
-339.793 295.7607 339.8223 295.8223 339.8223 295.8877 C
-339.7422 295.8877 L
-339.6865 295.8877 L
-339.6865 295.5342 338.1074 295.1406 335.8389 295.1406 c
-f
-335.8389 294.7314 m
-333.5713 294.7314 331.9922 295.125 331.9922 295.4775 C
-331.9355 295.4775 L
-331.8564 295.4775 L
-331.8564 295.4121 331.8857 295.3506 331.9355 295.292 c
-332.3262 294.8389 334.1289 294.5967 335.8389 294.5967 c
-337.5498 294.5967 339.3525 294.8389 339.7422 295.292 c
-339.793 295.3506 339.8223 295.4121 339.8223 295.4775 C
-339.7422 295.4775 L
-339.6865 295.4775 L
-339.6865 295.125 338.1074 294.7314 335.8389 294.7314 c
-f
-335.8389 294.3213 m
-333.5713 294.3213 331.9922 294.7148 331.9922 295.0684 C
-331.9355 295.0684 L
-331.8564 295.0684 L
-331.8564 295.0029 331.8857 294.9414 331.9355 294.8828 c
-332.3262 294.4297 334.1289 294.1865 335.8389 294.1865 c
-337.5498 294.1865 339.3525 294.4297 339.7422 294.8828 c
-339.793 294.9414 339.8223 295.0029 339.8223 295.0684 C
-339.7422 295.0684 L
-339.6865 295.0684 L
-339.6865 294.7148 338.1074 294.3213 335.8389 294.3213 c
-f
-335.8389 293.9121 m
-333.5713 293.9121 331.9922 294.3057 331.9922 294.6592 C
-331.9355 294.6592 L
-331.8564 294.6592 L
-331.8564 294.6094 331.877 294.5625 331.9063 294.5166 c
-331.9141 294.502 331.9238 294.4873 331.9355 294.4736 c
-332.3262 294.0205 334.1289 293.7773 335.8389 293.7773 c
-337.5498 293.7773 339.3525 294.0205 339.7422 294.4736 c
-339.7539 294.4873 339.7627 294.502 339.7715 294.5166 c
-339.8018 294.5625 339.8223 294.6094 339.8223 294.6592 C
-339.7422 294.6592 L
-339.6865 294.6592 L
-339.6865 294.3057 338.1074 293.9121 335.8389 293.9121 c
-f
-335.8389 293.5029 m
-333.5713 293.5029 331.9922 293.8965 331.9922 294.249 C
-331.9355 294.249 L
-331.8564 294.249 L
-331.8564 294.1846 331.8857 294.1221 331.9355 294.0645 c
-332.3262 293.6104 334.1289 293.3682 335.8389 293.3682 c
-337.5498 293.3682 339.3525 293.6104 339.7422 294.0645 c
-339.793 294.1221 339.8223 294.1846 339.8223 294.249 C
-339.7422 294.249 L
-339.6865 294.249 L
-339.6865 293.8965 338.1074 293.5029 335.8389 293.5029 c
-f
-0.67 g
-342.4941 306.8555 m
-342.4053 306.7764 342.2861 306.6982 342.1357 306.625 c
-342.1357 306.624 342.1348 306.624 342.1338 306.624 c
-342.0469 306.5811 341.9531 306.54 341.8477 306.501 c
-341.8477 306.501 l
-341.6387 306.4209 341.3945 306.3447 341.1172 306.2754 c
-341.1133 306.2744 341.1113 306.2734 341.1074 306.2725 c
-340.5547 306.1338 339.877 306.0176 339.1113 305.9307 c
-339.0996 305.9297 339.0918 305.9287 339.0811 305.9268 c
-338.7061 305.8848 338.3086 305.8496 337.8965 305.8232 c
-337.8779 305.8213 337.8613 305.8203 337.8438 305.8193 c
-337.6523 305.8076 337.458 305.7969 337.2598 305.7881 c
-337.2451 305.7881 337.2314 305.7861 337.2148 305.7861 c
-337.2021 305.7852 337.1875 305.7852 337.1738 305.7842 c
-336.9668 305.7764 336.7588 305.7695 336.5469 305.7646 c
-336.542 305.7646 336.5352 305.7646 336.5283 305.7646 c
-336.3018 305.7598 336.0723 305.7568 335.8389 305.7568 c
-335.6074 305.7568 335.377 305.7598 335.1484 305.7646 c
-335.1436 305.7646 335.1367 305.7646 335.1299 305.7646 c
-334.9189 305.7695 334.71 305.7764 334.5049 305.7842 c
-334.4922 305.7852 334.4756 305.7852 334.4619 305.7861 c
-334.4473 305.7861 334.4316 305.7881 334.418 305.7881 c
-334.2197 305.7969 334.0244 305.8076 333.833 305.8193 c
-333.8164 305.8203 333.7988 305.8213 333.7832 305.8232 c
-333.3691 305.8496 332.9717 305.8848 332.5947 305.9268 c
-332.5859 305.9287 332.5781 305.9287 332.5684 305.9297 c
-331.8018 306.0176 331.123 306.1338 330.5703 306.2725 c
-330.5674 306.2734 330.5645 306.2744 330.5625 306.2754 c
-330.1465 306.3799 329.8027 306.4971 329.5439 306.624 c
-329.542 306.624 329.542 306.625 v
-329.4658 306.6621 329.3965 306.7012 329.3369 306.7402 c
-329.1914 306.834 329.0898 306.9316 329.041 307.0322 c
-329.0156 307.0801 329.0049 307.1289 329.0049 307.1777 C
-329.0049 305.3652 L
-329.0049 305.2666 329.0527 305.1709 329.1436 305.0791 c
-329.2344 304.9863 329.3682 304.8975 329.542 304.8115 c
-329.7148 304.7275 329.9258 304.6455 330.1719 304.5703 c
-330.418 304.4951 330.6973 304.4248 331.0068 304.3604 c
-331.293 304.3008 331.6045 304.2471 331.9355 304.1992 c
-331.9629 304.1953 331.9893 304.1904 332.0176 304.1865 c
-332.3818 304.1357 332.7695 304.0918 333.1787 304.0557 c
-333.5879 304.0195 334.0156 303.9912 334.4619 303.9727 c
-334.9063 303.9541 335.3672 303.9443 335.8389 303.9443 c
-336.3105 303.9443 336.7715 303.9541 337.2148 303.9727 c
-337.6611 303.9912 338.0908 304.0195 338.498 304.0557 c
-338.9082 304.0918 339.2969 304.1357 339.6602 304.1865 c
-339.6885 304.1904 339.7139 304.1953 339.7422 304.1992 c
-340.0732 304.2471 340.3857 304.3008 340.6719 304.3604 c
-340.9805 304.4248 341.2617 304.4951 341.5059 304.5703 c
-341.752 304.6455 341.9629 304.7275 342.1357 304.8115 c
-342.3086 304.8975 342.4434 304.9863 342.5332 305.0791 c
-342.626 305.1709 342.6738 305.2666 342.6738 305.3652 C
-342.6738 307.1777 L
-342.6738 307.1045 342.6465 307.0322 342.5947 306.9619 c
-342.5684 306.9258 342.5332 306.8906 342.4941 306.8555 c
-f
-0.39 g
-340.4209 308.2324 m
-339.9688 307.3252 339.2754 306.8682 339.2412 306.8467 C
-339.2246 306.8369 L
-332.2051 306.8369 L
-332.1885 306.9697 L
-332.1953 306.9717 332.9004 307.1709 333.6396 308.5234 C
-330.9443 308.333 329.0049 307.8027 329.0049 307.1777 c
-329.0049 307.1289 329.0156 307.0801 329.041 307.0322 c
-329.0898 306.9316 329.1914 306.834 329.3369 306.7402 c
-329.3984 306.7002 329.4668 306.6621 329.5439 306.624 c
-329.8027 306.4971 330.1465 306.3799 330.5625 306.2754 c
-330.5645 306.2744 330.5674 306.2734 330.5703 306.2725 c
-331.123 306.1338 331.8018 306.0176 332.5684 305.9297 c
-332.5781 305.9287 332.5859 305.9287 332.5947 305.9268 c
-332.9717 305.8848 333.3691 305.8496 333.7832 305.8232 c
-333.7988 305.8213 333.8164 305.8203 333.833 305.8193 c
-334.0244 305.8076 334.2197 305.7969 334.418 305.7881 c
-334.4473 305.7871 334.4756 305.7861 334.5049 305.7842 c
-334.71 305.7764 334.9189 305.7695 335.1299 305.7646 c
-335.1367 305.7646 335.1436 305.7646 335.1484 305.7646 c
-335.377 305.7598 335.6074 305.7568 335.8389 305.7568 c
-336.0723 305.7568 336.3018 305.7598 336.5283 305.7646 c
-336.5352 305.7646 336.542 305.7646 336.5469 305.7646 c
-336.7588 305.7695 336.9668 305.7764 337.1738 305.7842 c
-337.2021 305.7861 337.2314 305.7871 337.2598 305.7881 c
-337.458 305.7969 337.6523 305.8076 337.8438 305.8193 c
-337.8613 305.8203 337.8779 305.8213 337.8965 305.8232 c
-338.3086 305.8496 338.7061 305.8848 339.0811 305.9268 c
-339.0918 305.9287 339.0996 305.9297 339.1113 305.9307 c
-339.877 306.0176 340.5547 306.1338 341.1074 306.2725 c
-341.1113 306.2734 341.1133 306.2744 341.1172 306.2754 c
-341.3945 306.3447 341.6387 306.4209 341.8477 306.501 C
-341.8477 306.501 L
-341.9531 306.54 342.0469 306.5811 342.1338 306.624 c
-342.2852 306.6982 342.4053 306.7754 342.4941 306.8555 c
-342.5332 306.8906 342.5684 306.9258 342.5947 306.9619 c
-342.6465 307.0322 342.6738 307.1045 342.6738 307.1777 c
-342.6738 307.5967 341.8037 307.9717 340.4209 308.2324 C
-f
-*u
-1 g
-1 D
-332.4971 306.9717 m
-333.0332 306.9717 339.1436 306.9717 339.1836 306.9717 C
-339.2666 307.0273 340.1133 307.6221 340.4873 308.7422 c
-340.5586 308.9541 340.582 309.1924 340.582 309.4492 c
-340.582 309.8115 340.5313 310.2119 340.4766 310.625 c
-340.4189 311.0693 340.3574 311.541 340.3574 312.0088 c
-340.3574 312.5869 340.4521 313.1592 340.7627 313.6699 c
-341.4521 314.8027 342.1504 315.3545 342.4932 315.5791 C
-342.0352 315.5791 335.7988 315.584 Y
-335.7813 315.5771 334.0898 314.7969 333.9551 313.2246 c
-333.9443 313.1025 333.9395 312.9834 333.9395 312.8652 c
-333.9395 312.3857 334.0156 311.9326 334.0898 311.4912 c
-334.1641 311.0557 334.2344 310.6309 334.2344 310.1963 c
-334.2344 309.7168 334.1475 309.2246 333.8809 308.6904 c
-333.3428 307.6162 332.8105 307.1611 332.4971 306.9717 C
-f
-338.9355 307.9131 m
-334.4258 307.9131 L
-334.4258 308.0479 L
-338.9355 308.0479 L
-338.9355 307.9131 L
-f
-0 D
-339.4746 312.1533 m
-335.0322 312.1533 L
-335.0322 312.2881 L
-339.4746 312.2881 L
-339.4746 312.1533 L
-f
-1 D
-339.6758 310.6055 m
-339.6758 310.4707 L
-335.166 310.4707 L
-335.166 310.6055 L
-339.6758 310.6055 L
-f
-335.0986 311.2793 m
-339.2041 311.2793 L
-339.2041 311.1445 L
-335.0986 311.1445 L
-335.0986 311.2793 L
-f
-335.166 309.6631 m
-339.6084 309.6631 L
-339.6084 309.5283 L
-335.166 309.5283 L
-335.166 309.6631 L
-f
-335.8389 314.9814 m
-340.4834 314.9814 L
-340.4834 314.8457 L
-335.8389 314.8457 L
-335.8389 314.9814 L
-f
-0 D
-335.3682 314.4424 m
-339.0693 314.4424 L
-339.0693 314.3076 L
-335.3682 314.3076 L
-335.3682 314.4424 L
-f
-335.0322 313.7021 m
-339.7422 313.7021 L
-339.7422 313.5674 L
-335.0322 313.5674 L
-335.0322 313.7021 L
-f
-334.8965 312.9619 m
-339.6084 312.9619 L
-339.6084 312.8271 L
-334.8965 312.8271 L
-334.8965 312.9619 L
-f
-1 D
-334.8965 308.8564 m
-339.2725 308.8564 L
-339.2725 308.7207 L
-334.8965 308.7207 L
-334.8965 308.8564 L
-f
-*U
-*u
-0 g
-332.1885 306.9697 m
-332.2051 306.8369 L
-339.2246 306.8369 L
-339.2412 306.8467 L
-339.2754 306.8682 339.9688 307.3252 340.4209 308.2324 c
-340.4932 308.377 340.5596 308.5322 340.6152 308.7002 c
-340.7939 309.2383 340.7061 309.9199 340.6113 310.6426 c
-340.4766 311.6621 340.3418 312.7168 340.8779 313.5996 c
-341.7969 315.1094 342.7588 315.5801 342.7686 315.585 C
-342.7402 315.7139 L
-335.7725 315.7139 L
-335.7266 315.6992 333.9619 314.8887 333.8203 313.2363 c
-333.7656 312.6045 333.8633 312.0273 333.957 311.4697 c
-334.1074 310.5742 334.249 309.7295 333.7598 308.751 c
-333.7197 308.6709 333.6797 308.5967 333.6396 308.5234 c
-332.9004 307.1709 332.1953 306.9717 332.1885 306.9697 C
-f
-0 D
-334.2344 310.1963 m
-334.2344 310.6309 334.1641 311.0557 334.0898 311.4912 c
-334.0156 311.9326 333.9395 312.3857 333.9395 312.8652 c
-333.9395 312.9834 333.9443 313.1025 333.9551 313.2246 c
-334.0898 314.7969 335.7813 315.5771 335.7988 315.584 C
-342.0352 315.5791 342.4932 315.5791 V
-342.1504 315.3545 341.4521 314.8027 340.7627 313.6699 c
-340.4521 313.1592 340.3574 312.5869 340.3574 312.0088 c
-340.3574 311.541 340.4189 311.0693 340.4766 310.625 c
-340.5313 310.2119 340.582 309.8115 340.582 309.4492 c
-340.582 309.1924 340.5586 308.9541 340.4873 308.7422 c
-340.1133 307.6221 339.2666 307.0273 339.1836 306.9717 C
-339.1436 306.9717 333.0332 306.9717 332.4971 306.9717 C
-332.8105 307.1611 333.3428 307.6162 333.8809 308.6904 c
-334.1475 309.2246 334.2344 309.7168 334.2344 310.1963 c
-f
-*U
-340.4834 314.9814 m
-335.8389 314.9814 L
-335.8389 314.8457 L
-340.4834 314.8457 L
-340.4834 314.9814 L
-f
-339.0693 314.4424 m
-335.3682 314.4424 L
-335.3682 314.3076 L
-339.0693 314.3076 L
-339.0693 314.4424 L
-f
-339.7422 313.7021 m
-335.0322 313.7021 L
-335.0322 313.5674 L
-339.7422 313.5674 L
-339.7422 313.7021 L
-f
-339.6084 312.9619 m
-334.8965 312.9619 L
-334.8965 312.8271 L
-339.6084 312.8271 L
-339.6084 312.9619 L
-f
-335.0322 312.1533 m
-339.4746 312.1533 L
-339.4746 312.2881 L
-335.0322 312.2881 L
-335.0322 312.1533 L
-f
-339.2041 311.2793 m
-335.0986 311.2793 L
-335.0986 311.1445 L
-339.2041 311.1445 L
-339.2041 311.2793 L
-f
-335.166 310.4707 m
-339.6758 310.4707 L
-339.6758 310.6055 L
-335.166 310.6055 L
-335.166 310.4707 L
-f
-339.6084 309.6631 m
-335.166 309.6631 L
-335.166 309.5283 L
-339.6084 309.5283 L
-339.6084 309.6631 L
-f
-339.2725 308.8564 m
-334.8965 308.8564 L
-334.8965 308.7207 L
-339.2725 308.7207 L
-339.2725 308.8564 L
-f
-334.4258 307.9131 m
-338.9355 307.9131 L
-338.9355 308.0479 L
-334.4258 308.0479 L
-334.4258 307.9131 L
-f
-U
-U
-U
-0 To
-1 0 0 1 336.6777 280.1621 0 Tp
-0 Tv
-TP
--11.5064 0 Td
-0 Tr
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ -- XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Spool) Tx 1 0 Tk
-(\r) Tx 1 0 Tk
-TO
-U
-U
-(Adobe Scatter Brush Tool) 1 0 61 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000033FA5072696E742073706F6F6C65
-%72
-/Adobe_Brushed_Path () XT
-u
-%_0.8158 g
-%_0 R
-%_0 G
-%_0.65 w 3.8636 M
-%_271.9199 306.0703 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0.8158 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-271.9199 306.0703 m
-F
-u
-u
-0 R
-0 G
-0.325 w 3.8636 M
-246.4517 312.3203 m
-297.3906 312.3203 L
-297.3906 303.166 L
-246.4517 303.166 L
-246.4517 312.3203 L
-b
-271.9219 307.7432 m
-B
-U
-u
-248.0381 303.166 m
-295.8027 303.166 L
-296.7534 303.166 297.521 302.3955 297.521 301.4473 c
-297.521 300.5078 L
-297.521 299.5586 296.7534 298.7871 295.8027 298.7871 c
-248.0381 298.7871 L
-247.0889 298.7871 246.3184 299.5586 246.3184 300.5078 c
-246.3184 301.4473 L
-246.3184 302.3955 247.0889 303.166 248.0381 303.166 c
-248.0381 303.166 L
-b
-271.9209 300.9766 m
-B
-U
-0 g
-249.3701 298.7891 m
-252.2886 298.7891 L
-251.7578 297.8594 L
-250.1001 297.8594 L
-249.3701 298.7891 L
-b
-291.0229 298.7891 m
-293.9419 298.7891 L
-293.4106 297.8594 L
-291.752 297.8594 L
-291.0229 298.7891 L
-b
-0.61 G
-0.65 w
-250.9614 312.2969 m
-250.9614 304.7363 L
-S
-252.2886 312.2969 m
-252.2886 304.7363 L
-S
-u
-0 O
-0 g
-0 G
-0.325 w
-282.9312 309.7988 m
-291.8188 309.7988 L
-291.8188 308.3398 L
-282.9312 308.3398 L
-282.9312 309.7988 L
-b
-287.3755 309.0703 m
-B
-U
-1 J
-291.0137 302.5 m
-291.2842 302.2148 291.4497 301.833 291.4497 301.4102 C
-291.4497 300.5469 L
-291.4497 300.123 291.2842 299.7402 291.0137 299.457 C
-S
-289.7847 302.5 m
-290.0532 302.2148 290.2192 301.833 290.2192 301.4102 C
-290.2192 300.5469 L
-290.2192 300.123 290.0532 299.7402 289.7847 299.457 C
-S
-288.5537 302.5 m
-288.8237 302.2148 288.9893 301.833 288.9893 301.4102 C
-288.9893 300.5469 L
-288.9893 300.123 288.8237 299.7402 288.5537 299.457 C
-S
-287.3237 302.5 m
-287.5928 302.2148 287.7593 301.833 287.7593 301.4102 C
-287.7593 300.5469 L
-287.7593 300.123 287.5928 299.7402 287.3237 299.457 C
-S
-286.0928 302.5 m
-286.3633 302.2148 286.5288 301.833 286.5288 301.4102 C
-286.5288 300.5469 L
-286.5288 300.123 286.3633 299.7402 286.0928 299.457 C
-S
-284.8633 302.5 m
-285.1333 302.2148 285.2983 301.833 285.2983 301.4102 C
-285.2983 300.5469 L
-285.2983 300.123 285.1333 299.7402 284.8633 299.457 C
-S
-283.6333 302.5 m
-283.9019 302.2148 284.0684 301.833 284.0684 301.4102 C
-284.0684 300.5469 L
-284.0684 300.123 283.9019 299.7402 283.6333 299.457 C
-S
-282.4028 302.5 m
-282.6719 302.2148 282.8374 301.833 282.8374 301.4102 C
-282.8374 300.5469 L
-282.8374 300.123 282.6719 299.7402 282.4028 299.457 C
-S
-281.1729 302.5 m
-281.4424 302.2148 281.6084 301.833 281.6084 301.4102 C
-281.6084 300.5469 L
-281.6084 300.123 281.4424 299.7402 281.1729 299.457 C
-S
-279.9438 302.5 m
-280.2114 302.2148 280.3779 301.833 280.3779 301.4102 C
-280.3779 300.5469 L
-280.3779 300.123 280.2114 299.7402 279.9438 299.457 C
-S
-278.7129 302.5 m
-278.9829 302.2148 279.1475 301.833 279.1475 301.4102 C
-279.1475 300.5469 L
-279.1475 300.123 278.9829 299.7402 278.7129 299.457 C
-S
-277.4819 302.5 m
-277.752 302.2148 277.9175 301.833 277.9175 301.4102 C
-277.9175 300.5469 L
-277.9175 300.123 277.752 299.7402 277.4819 299.457 C
-S
-276.2534 302.5 m
-276.5229 302.2148 276.6875 301.833 276.6875 301.4102 C
-276.6875 300.5469 L
-276.6875 300.123 276.5229 299.7402 276.2534 299.457 C
-S
-275.0215 302.5 m
-275.2925 302.2148 275.4565 301.833 275.4565 301.4102 C
-275.4565 300.5469 L
-275.4565 300.123 275.2925 299.7402 275.0215 299.457 C
-S
-273.7915 302.5 m
-274.0615 302.2148 274.2275 301.833 274.2275 301.4102 C
-274.2275 300.5469 L
-274.2275 300.123 274.0615 299.7402 273.7915 299.457 C
-S
-0 O
-0.4385 g
-0 J 1 j
-252.2886 314.2803 m
-291.2886 314.2803 L
-297.3906 312.3203 L
-246.4517 312.3203 L
-252.2886 314.2803 L
-b
-U
-U
-(Adobe Scatter Brush Tool) 1 0 59 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000031DF46696C6520536572766572
-/Adobe_Brushed_Path () XT
-LB
-%AI5_EndLayer--
-%%PageTrailer
-gsave annotatepage grestore showpage
-%%Trailer
-Adobe_Illustrator_AI5 /terminate get exec
-Adobe_shading_AI8 /terminate get exec
-Adobe_ColorImage_AI6 /terminate get exec
-Adobe_typography_AI5 /terminate get exec
-Adobe_cshow /terminate get exec
-Adobe_level2_AI5 /terminate get exec
-%%EOF
diff --git a/en_US.ISO8859-1/books/corp-net-guide/08-06.eps b/en_US.ISO8859-1/books/corp-net-guide/08-06.eps
deleted file mode 100644
index 5ef3c1f999..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/08-06.eps
+++ /dev/null
@@ -1,8457 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: Adobe Illustrator(R) 8.0
-%%AI8_CreatorVersion: 8.0.1
-%%For: (William B Brownville) (PDPS)
-%%Title: (08-06 3594)
-%%CreationDate: (9/28/00) (4:18 PM)
-%%BoundingBox: 188 366 413 476
-%%HiResBoundingBox: 188.0039 366.5078 412.8252 475.7046
-%%DocumentProcessColors: Black
-%%DocumentFonts: Helvetica
-%%DocumentNeededFonts: Helvetica
-%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
-%%+ procset Adobe_typography_AI5 1.0 1
-%%+ procset Adobe_ColorImage_AI6 1.3 0
-%%+ procset Adobe_Illustrator_AI5 1.3 0
-%%+ procset Adobe_cshow 2.0 8
-%%+ procset Adobe_shading_AI8 1.0 0
-%AI5_FileFormat 4.0
-%AI3_ColorUsage: Black&White
-%AI3_IncludePlacedImages
-%AI7_ImageSettings: 1
-%%CMYKProcessColor: 0 0 0 0.15 (15%)
-%%+ 0 0 0 0.3 (30%)
-%%+ 0 0 0 0.5 (50%)
-%%+ 0 0 0 0.75 (75%)
-%%+ 1 1 1 1 ([Registration])
-%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
-%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4
-%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ()
-%AI3_TemplateBox: 306.5 395.5 306.5 395.5
-%AI3_TileBox: 12 14 600 782
-%AI3_DocumentPreview: Macintosh_ColorPic
-%AI5_ArtSize: 612 792
-%AI5_RulerUnits: 3
-%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0
-%AI5_TargetResolution: 800
-%AI5_NumLayers: 1
-%AI8_OpenToView: 91.3892 559.3486 2.3409 1060 751 18 1 1 7 40 0 0
-%AI5_OpenViewLayers: 7
-%%PageOrigin:12 14
-%%AI3_PaperRect:-12 782 600 -10
-%%AI3_Margin:12 -14 -12 10
-%AI7_GridSettings: 12 3 12 3 1 0 0.29 1 1 0.65 1 1
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Adobe_level2_AI5 1.2 0
-%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
-%%Version: 1.2 0
-%%CreationDate: (04/10/93) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-userdict /Adobe_level2_AI5 26 dict dup begin
- put
- /packedarray where not
- {
- userdict begin
- /packedarray
- {
- array astore readonly
- } bind def
- /setpacking /pop load def
- /currentpacking false def
- end
- 0
- } if
- pop
- userdict /defaultpacking currentpacking put true setpacking
- /initialize
- {
- Adobe_level2_AI5 begin
- } bind def
- /terminate
- {
- currentdict Adobe_level2_AI5 eq
- {
- end
- } if
- } bind def
- mark
- /setcustomcolor where not
- {
- /findcmykcustomcolor
- {
- (AI8_CMYK_CustomColor)
- 6 packedarray
- } bind def
- /findrgbcustomcolor
- {
- (AI8_RGB_CustomColor)
- 5 packedarray
- } bind def
- /setcustomcolor
- {
- exch
- aload pop dup
- (AI8_CMYK_CustomColor) eq
- {
- pop pop
- 4
- {
- 4 index mul
- 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- }
- {
- dup (AI8_RGB_CustomColor) eq
- {
- pop pop
- 3
- {
- 1 exch sub
- 3 index mul
- 1 exch sub
- 3 1 roll
- } repeat
- 4 -1 roll pop
- setrgbcolor
- }
- {
- pop
- 4
- {
- 4 index mul 4 1 roll
- } repeat
- 5 -1 roll pop
- setcmykcolor
- } ifelse
- } ifelse
- }
- def
- } if
- /setAIseparationgray
- {
- false setoverprint
- 0 setgray
- /setseparationgray where{
- pop setseparationgray
- }{
- /setcolorspace where{
- pop
- [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
- 1 exch sub setcolor
- }{
- setgray
- }ifelse
- }ifelse
- } def
-
- /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
- userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
- userdict /level2?
- systemdict /languagelevel known dup
- {
- pop systemdict /languagelevel get 2 ge
- } if
- put
-/level2ScreenFreq
-{
- begin
- 60
- HalftoneType 1 eq
- {
- pop Frequency
- } if
- HalftoneType 2 eq
- {
- pop GrayFrequency
- } if
- HalftoneType 5 eq
- {
- pop Default level2ScreenFreq
- } if
- end
-} bind def
-userdict /currentScreenFreq
- level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
-level2? not
- {
- /setcmykcolor where not
- {
- /setcmykcolor
- {
- exch .11 mul add exch .59 mul add exch .3 mul add
- 1 exch sub setgray
- } def
- } if
- /currentcmykcolor where not
- {
- /currentcmykcolor
- {
- 0 0 0 1 currentgray sub
- } def
- } if
- /setoverprint where not
- {
- /setoverprint /pop load def
- } if
- /selectfont where not
- {
- /selectfont
- {
- exch findfont exch
- dup type /arraytype eq
- {
- makefont
- }
- {
- scalefont
- } ifelse
- setfont
- } bind def
- } if
- /cshow where not
- {
- /cshow
- {
- [
- 0 0 5 -1 roll aload pop
- ] cvx bind forall
- } bind def
- } if
- } if
- cleartomark
- /anyColor?
- {
- add add add 0 ne
- } bind def
- /testColor
- {
- gsave
- setcmykcolor currentcmykcolor
- grestore
- } bind def
- /testCMYKColorThrough
- {
- testColor anyColor?
- } bind def
- userdict /composite?
- 1 0 0 0 testCMYKColorThrough
- 0 1 0 0 testCMYKColorThrough
- 0 0 1 0 testCMYKColorThrough
- 0 0 0 1 testCMYKColorThrough
- and and and
- put
- composite? not
- {
- userdict begin
- gsave
- /cyan? 1 0 0 0 testCMYKColorThrough def
- /magenta? 0 1 0 0 testCMYKColorThrough def
- /yellow? 0 0 1 0 testCMYKColorThrough def
- /black? 0 0 0 1 testCMYKColorThrough def
- grestore
- /isCMYKSep? cyan? magenta? yellow? black? or or or def
- /customColor? isCMYKSep? not def
- end
- } if
- end defaultpacking setpacking
-%%EndResource
-%%BeginResource: procset Adobe_typography_AI5 1.0 1
-%%Title: (Typography Operators)
-%%Version: 1.0 1
-%%CreationDate:(6/10/1996) ()
-%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_typography_AI5 68 dict dup begin
-put
-/initialize
-{
- begin
- begin
- Adobe_typography_AI5 begin
- Adobe_typography_AI5
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- end
- end
- Adobe_typography_AI5 begin
-} def
-/terminate
-{
- currentdict Adobe_typography_AI5 eq
- {
- end
- } if
-} def
-/modifyEncoding
-{
- /_tempEncode exch ddef
- /_pntr 0 ddef
- {
- counttomark -1 roll
- dup type dup /marktype eq
- {
- pop pop exit
- }
- {
- /nametype eq
- {
- _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
- put
- }
- {
- /_pntr exch ddef
- } ifelse
- } ifelse
- } loop
- _tempEncode
-} def
-/havefont
-{
- systemdict /languagelevel known
- {
- /Font resourcestatus dup
- { exch pop exch pop }
- if
- }
- {
- systemdict /FontDirectory get 1 index known
- { pop true }
- {
- systemdict /fileposition known
- {
- dup length 6 add exch
- Ss 6 250 getinterval
- cvs pop
- Ss exch 0 exch getinterval
- status
- { pop pop pop pop true }
- { false }
- ifelse
- }
- {
- pop false
- }
- ifelse
- }
- ifelse
- }
- ifelse
-} def
-/TE
-{
- StandardEncoding 256 array copy modifyEncoding
- /_nativeEncoding exch def
-} def
-/subststring {
- exch 2 index exch search
- {
- exch pop
- exch dup () eq
- {
- pop exch concatstring
- }
- {
- 3 -1 roll
- exch concatstring
- concatstring
- } ifelse
- exch pop true
- }
- {
- pop pop false
- } ifelse
-} def
-/concatstring {
- 1 index length 1 index length
- 1 index add
- string
- dup 0 5 index putinterval
- dup 2 index 4 index putinterval
- 4 1 roll pop pop pop
-} def
-%
-/TZ
-{
- dup type /arraytype eq
- {
- /_wv exch def
- }
- {
- /_wv 0 def
- } ifelse
- /_useNativeEncoding exch def
- 2 index havefont
- {
- 3 index
- 255 string
- cvs
-
- dup
- (_Symbol_)
- eq
- {
- pop
- 2 index
- findfont
-
- }
- {
- 1 index 0 eq
- {
- dup length 1 sub
- 1 exch
- getinterval
-
- cvn
- findfont
- }
- {
- pop 2 index findfont
- } ifelse
- } ifelse
- }
- {
- dup 1 eq
- {
- 2 index 64 string cvs
- dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop dup
- (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
- {
- exch pop dup havefont
- {
- findfont false
- }
- {
- pop true
- } ifelse
- }
- {
- pop pop true
- } ifelse
- } ifelse
- {
- 1 index 1 eq
- {
- /Ryumin-Light-Ext-RKSJ-V havefont
- {/Ryumin-Light-Ext-RKSJ-V}
- {/Courier}
- ifelse
- }
- {
- /Ryumin-Light-83pv-RKSJ-H havefont
- {/Ryumin-Light-83pv-RKSJ-H}
- {/Courier}
- ifelse
- } ifelse
- findfont
- [1 0 0.5 1 0 0] makefont
- } if
- }
- {
- /Courier findfont
- } ifelse
- } ifelse
- _wv type /arraytype eq
- {
- _wv makeblendedfont
- } if
- dup length 10 add dict
- begin
- mark exch
- {
- 1 index /FID ne
- {
- def
- } if
- cleartomark mark
- } forall
- pop
- /FontScript exch def
- /FontDirection exch def
- /FontRequest exch def
- /FontName exch def
- counttomark 0 eq
- {
- 1 _useNativeEncoding eq
- {
- /Encoding _nativeEncoding def
- } if
- cleartomark
- }
- {
- /Encoding load 256 array copy
- modifyEncoding /Encoding exch def
- } ifelse
- FontName currentdict
- end
- definefont pop
-} def
-/tr
-{
- _ax _ay 3 2 roll
-} def
-/trj
-{
- _cx _cy _sp _ax _ay 6 5 roll
-} def
-/a0
-{
- /Tx
- {
- dup
- currentpoint 3 2 roll
- tr _psf
- newpath moveto
- tr _ctm _pss
- } ddef
- /Tj
- {
- dup
- currentpoint 3 2 roll
- trj _pjsf
- newpath moveto
- trj _ctm _pjss
- } ddef
-} def
-/a1
-{
-W B
-} def
-/e0
-{
- /Tx
- {
- tr _psf
- } ddef
- /Tj
- {
- trj _pjsf
- } ddef
-} def
-/e1
-{
-W F
-} def
-/i0
-{
- /Tx
- {
- tr sp
- } ddef
- /Tj
- {
- trj jsp
- } ddef
-} def
-/i1
-{
- W N
-} def
-/o0
-{
- /Tx
- {
- tr sw rmoveto
- } ddef
- /Tj
- {
- trj swj rmoveto
- } ddef
-} def
-/r0
-{
- /Tx
- {
- tr _ctm _pss
- } ddef
- /Tj
- {
- trj _ctm _pjss
- } ddef
-} def
-/r1
-{
-W S
-} def
-/To
-{
- pop _ctm currentmatrix pop
-} def
-/TO
-{
- iTe _ctm setmatrix newpath
-} def
-/Tp
-{
- pop _tm astore pop _ctm setmatrix
- _tDict begin
- /W
- {
- } def
- /h
- {
- } def
-} def
-/TP
-{
- end
- iTm 0 0 moveto
-} def
-/Tr
-{
- _render 3 le
- {
- currentpoint newpath moveto
- } if
- dup 8 eq
- {
- pop 0
- }
- {
- dup 9 eq
- {
- pop 1
- } if
- } ifelse
- dup /_render exch ddef
- _renderStart exch get load exec
-} def
-/iTm
-{
- _ctm setmatrix _tm concat
- _shift aload pop _lineorientation 1 eq { exch } if translate
- _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
-} def
-/Tm
-{
- _tm astore pop iTm 0 0 moveto
-} def
-/Td
-{
- _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
-} def
-/iTe
-{
- _render -1 eq
- {
- }
- {
- _renderEnd _render get dup null ne
- {
- load exec
- }
- {
- pop
- } ifelse
- } ifelse
- /_render -1 ddef
-} def
-/Ta
-{
- pop
-} def
-/Tf
-{
- 1 index type /nametype eq
- {
- dup 0.75 mul 1 index 0.25 mul neg
- } if
- /_fontDescent exch ddef
- /_fontAscent exch ddef
- /_fontSize exch ddef
- /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
- /_fontHeight _fontSize ddef
- findfont _fontSize scalefont setfont
-} def
-/Tl
-{
- pop neg 0 exch
- _leading astore pop
-} def
-/Tt
-{
- pop
-} def
-/TW
-{
- 3 npop
-} def
-/Tw
-{
- /_cx exch ddef
-} def
-/TC
-{
- 3 npop
-} def
-/Tc
-{
- /_ax exch ddef
-} def
-/Ts
-{
- 0 exch
- _shift astore pop
- currentpoint
- iTm
- moveto
-} def
-/Ti
-{
- 3 npop
-} def
-/Tz
-{
- count 1 eq { 100 } if
- 100 div exch 100 div exch
- _scale astore pop
- iTm
-} def
-/TA
-{
- pop
-} def
-/Tq
-{
- pop
-} def
-/Tg
-{
- pop
-} def
-/TG
-{
- pop
-} def
-/Tv
-{
- /_lineorientation exch ddef
-} def
-/TV
-{
- /_charorientation exch ddef
-} def
-/Ty
-{
- dup /_yokoorientation exch ddef 1 sub neg Tv
-} def
-/TY
-{
- pop
-} def
-/T~
-{
- Tx
-} def
-/Th
-{
- pop pop pop pop pop
-} def
-/TX
-{
- pop
-} def
-/Tk
-{
- _fontSize mul 1000 div
- _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
- rmoveto
- pop
-} def
-/TK
-{
- 2 npop
-} def
-/T*
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- Td
-} def
-/T*-
-{
- _leading aload pop
- _lineorientation 0 ne { exch } if
- exch neg exch neg
- Td
-} def
-/T-
-{
- _ax neg 0 rmoveto
- _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
-} def
-/T+
-{
-} def
-/TR
-{
- _ctm currentmatrix pop
- _tm astore pop
- iTm 0 0 moveto
-} def
-/TS
-{
- currentfont 3 1 roll
- /_Symbol_ findfont _fontSize scalefont setfont
-
- 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- setfont
-} def
-/Xb
-{
- pop pop
-} def
-/Tb /Xb load def
-/Xe
-{
- pop pop pop pop
-} def
-/Te /Xe load def
-/XB
-{
-} def
-/TB /XB load def
-currentdict readonly pop
-end
-setpacking
-%
-/X^
-{
- currentfont 5 1 roll
- dup havefont
- {
- findfont _fontSize scalefont setfont
- }
- {
- pop
- exch
- } ifelse
- 2 index 0 eq
- {
- Tx
- }
- {
- Tj
- } ifelse
- pop pop
- setfont
-} def
-/T^ /X^ load def
-%%EndResource
-%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
-userdict /Adobe_ColorImage_AI6 known not
-{
- userdict /Adobe_ColorImage_AI6 53 dict put
-} if
-userdict /Adobe_ColorImage_AI6 get begin
-/initialize {
- Adobe_ColorImage_AI6 begin
- Adobe_ColorImage_AI6 {
- dup type /arraytype eq {
- dup xcheck {
- bind
- } if
- } if
- pop pop
- } forall
-} def
-/terminate { end } def
-currentdict /Adobe_ColorImage_AI6_Vars known not {
- /Adobe_ColorImage_AI6_Vars 41 dict def
-} if
-Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /_newproc null def
- /_proc1 null def
- /_proc2 null def
- /sourcearray 4 array def
- /_ptispace null def
- /_ptiname null def
- /_pti0 0 def
- /_pti1 0 def
- /_ptiproc null def
- /_ptiscale 0 def
- /_pticomps 0 def
- /_ptibuf 0 string def
- /_gtigray 0 def
- /_cticmyk null def
- /_rtirgb null def
- /XIEnable true def
- /XIType 0 def
- /XIEncoding 0 def
- /XICompression 0 def
- /XIChannelCount 0 def
- /XIBitsPerPixel 0 def
- /XIImageHeight 0 def
- /XIImageWidth 0 def
- /XIImageMatrix null def
- /XIRowBytes 0 def
- /XIFile null def
- /XIBuffer1 null def
- /XIBuffer2 null def
- /XIBuffer3 null def
- /XIDataProc null def
- /XIColorSpace /DeviceGray def
- /XIColorValues 0 def
- /XIPlateList false def
-end
-/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
-/ci6image systemdict /image get def
-/ci6curtransfer systemdict /currenttransfer get def
-/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
-/ci6foureq {
- 4 index ne {
- pop pop pop false
- }{
- 4 index ne {
- pop pop false
- }{
- 4 index ne {
- pop false
- }{
- 4 index eq
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6testplate {
- Adobe_ColorImage_AI6_Vars begin
- /plateindex -1 def
- /setcmykcolor where {
- pop
- gsave
- 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
- 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
- grestore
- 1 0 0 0 ci6foureq {
- /plateindex 0 def
- }{
- 0 1 0 0 ci6foureq {
- /plateindex 1 def
- }{
- 0 0 1 0 ci6foureq {
- /plateindex 2 def
- }{
- 0 0 0 1 ci6foureq {
- /plateindex 3 def
- }{
- 0 0 0 0 ci6foureq {
- /plateindex 5 def
- } if
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- pop pop pop pop
- } if
- plateindex
- end
-} def
-/ci6concatprocs {
- /packedarray where {
- pop dup type /packedarraytype eq 2 index type
- /packedarraytype eq or
- }{
- false
- } ifelse
- {
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- _proc1 aload pop
- _proc2 aload pop
- _proc1 length
- _proc2 length add
- packedarray cvx
- }{
- /_proc2 exch cvlit def
- /_proc1 exch cvlit def
- /_newproc _proc1 length _proc2 length add array def
- _newproc 0 _proc1 putinterval
- _newproc _proc1 length _proc2 putinterval
- _newproc cvx
- } ifelse
-} def
-/ci6istint {
- type /arraytype eq
-} def
-/ci6isspot {
- dup type /arraytype eq {
- dup length 1 sub get /Separation eq
- }{
- pop false
- } ifelse
-} def
-/ci6spotname {
- dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
-} def
-/ci6altspace {
- aload pop pop pop ci6colormake
-} def
-/ci6numcomps {
- dup /DeviceGray eq {
- pop 1
- }{
- dup /DeviceRGB eq {
- pop 3
- }{
- /DeviceCMYK eq {
- 4
- }{
- 1
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6marksplate {
- dup /DeviceGray eq {
- pop plateindex 3 eq
- }{
- dup /DeviceRGB eq {
- pop plateindex 5 ne
- }{
- dup /DeviceCMYK eq {
- pop plateindex 5 ne
- }{
- dup ci6isspot {
- /findcmykcustomcolor where {
- pop
- dup length 2 sub get
- 0.1 0.1 0.1 0.1 5 -1 roll
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop plateindex 5 ne
- } ifelse
- }{
- pop plateindex 5 ne
- } ifelse
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colormake {
- dup ci6numcomps
- exch 1 index 2 add 1 roll
- dup 1 eq {pop}{array astore} ifelse
- exch
-} def
-/ci6colorexpand {
- dup ci6spotname exch
- dup ci6istint {
- ci6altspace
- exch 4 1 roll
- }{
- 1 3 1 roll
- } ifelse
-} def
-/ci6colortint {
- dup /DeviceGray eq {
- 3 1 roll 1 exch sub mul 1 exch sub exch
- }{
- dup /DeviceRGB eq {
- 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
- }{
- dup /DeviceCMYK eq {
- 3 1 roll {1 index mul exch} forall pop 4 array astore exch
- }{
- 3 1 roll mul exch
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6colortocmyk {
- dup /DeviceGray eq {
- pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
- }{
- dup /DeviceRGB eq {
- pop aload pop _rgbtocmyk 4 array astore
- }{
- dup /DeviceCMYK eq {
- pop
- }{
- ci6altspace ci6colortint ci6colortocmyk
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6makeimagedict {
- 7 dict begin
- /ImageType 1 def
- /Decode exch def
- /DataSource exch def
- /ImageMatrix exch def
- /BitsPerComponent exch def
- /Height exch def
- /Width exch def
- currentdict end
-} def
-/ci6stringinvert {
- 0 1 2 index length 1 sub {
- dup 2 index exch get 255 exch sub 2 index 3 1 roll put
- } for
-} def
-/ci6stringknockout {
- 0 1 2 index length 1 sub {
- 255 2 index 3 1 roll put
- } for
-} def
-/ci6stringapply {
- 0 1 4 index length 1 sub {
- dup
- 4 index exch get
- 3 index 3 1 roll
- 3 index exec
- } for
- pop exch pop
-} def
-/ci6walkrgbstring {
- 0 3 index
- dup length 1 sub 0 3 3 -1 roll {
- 3 getinterval {} forall
- 5 index exec
- 3 index
- } for
-
- 5 {pop} repeat
-} def
-/ci6walkcmykstring
-{
- 0 3 index
- dup length 1 sub 0 4 3 -1 roll {
- 4 getinterval {} forall
-
- 6 index exec
-
- 3 index
-
- } for
-
- 5 { pop } repeat
-
-} def
-/ci6putrgbtograystr
-{
- .11 mul exch
-
- .59 mul add exch
-
- .3 mul add
-
- cvi 3 copy put
-
- pop 1 add
-} def
-/ci6putcmyktograystr
-{
- exch .11 mul add
-
- exch .59 mul add
-
- exch .3 mul add
-
- dup 255 gt { pop 255 } if
-
- 255 exch sub cvi 3 copy put
-
- pop 1 add
-} def
-/ci6rgbtograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putrgbtograystr load exch
- ci6walkrgbstring
- end
-} def
-/ci6cmyktograyproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
- XIBuffer3
- dup 3 1 roll
-
- /ci6putcmyktograystr load exch
- ci6walkcmykstring
- end
-} def
-/ci6separatecmykproc {
- Adobe_ColorImage_AI6_Vars begin
- sourcearray 0 get exec
-
- XIBuffer3
-
- 0 2 index
-
- plateindex 4 2 index length 1 sub {
- get 255 exch sub
-
- 3 copy put pop 1 add
-
- 2 index
- } for
- pop pop exch pop
- end
-} def
-
-/ci6compositeimage {
- dup 1 eq {
- pop pop image
- }{
- /ci6colorimage load null ne {
- ci6colorimage
- }{
- 3 1 roll pop
- sourcearray 0 3 -1 roll put
- 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
- image
- } ifelse
- } ifelse
-} def
-/ci6knockoutimage {
- gsave
- 0 ci6curtransfer exec 1 ci6curtransfer exec
- eq {
- 0 ci6curtransfer exec 0.5 lt
- }{
- 0 ci6curtransfer exec 1 ci6curtransfer exec gt
- } ifelse
- {{pop 0}}{{pop 1}} ifelse
- systemdict /settransfer get exec
- ci6compositeimage
- grestore
-} def
-/ci6drawimage {
- ci6testplate -1 eq {
- pop ci6compositeimage
- }{
- dup type /arraytype eq {
- dup length plateindex gt {plateindex get}{pop false} ifelse
- }{
- {
- true
- }{
- dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
- } ifelse
- } ifelse
- {
- dup 1 eq {
- pop pop ci6image
- }{
- dup 3 eq {
- ci6compositeimage
- }{
- pop pop
- sourcearray 0 3 -1 roll put
- /ci6separatecmykproc load
- ci6image
- } ifelse
- } ifelse
- }{
- ci6curoverprint {
- 7 {pop} repeat
- }{
- ci6knockoutimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/ci6proctintimage {
- /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
- /_pticomps _ptispace ci6numcomps store
- /_ptiscale _pti1 _pti0 sub store
- level2? {
- _ptiname length 0 gt version cvr 2012 ge and {
- [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
- [_pti0 _pti1] ci6makeimagedict ci6image
- }{
- [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
- [0 255] ci6makeimagedict ci6image
- } ifelse
- }{
- _pticomps 1 eq {
- {
- dup
- {
- 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
- } ci6stringapply
- } ci6concatprocs ci6image
- }{
- {
- dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
- _ptibuf {
- exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
- _pticomps 2 add -2 roll
- _pticomps 1 sub -1 0 {
- 1 index add 2 index exch
- 5 -1 roll
- 255 mul cvi put
- } for
- pop pop
- } ci6stringapply
- } ci6concatprocs false _pticomps
- /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
- } ifelse
- } ifelse
-} def
-/ci6graytintimage {
- /_gtigray 5 -1 roll store
- {1 _gtigray sub mul 1 exch sub} 4 1 roll
- /DeviceGray ci6proctintimage
-} def
-/ci6cmyktintimage {
- /_cticmyk 5 -1 roll store
- {_cticmyk {1 index mul exch} forall pop} 4 1 roll
- /DeviceCMYK ci6proctintimage
-} def
-/ci6rgbtintimage {
- /_rtirgb 5 -1 roll store
- {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
- /DeviceRGB ci6proctintimage
-} def
-/ci6tintimage {
- ci6testplate -1 eq {
- ci6colorexpand
- 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
- dup /DeviceGray eq {
- pop ci6graytintimage
- }{
- dup /DeviceRGB eq {
- pop ci6rgbtintimage
- }{
- pop ci6cmyktintimage
- } ifelse
- } ifelse
- }{
- dup ci6marksplate {
- plateindex 5 lt {
- ci6colortocmyk plateindex get
- dup 0 eq ci6curoverprint and {
- 7 {pop} repeat
- }{
- 1 exch sub
- exch {1 0}{0 1} ifelse () ci6graytintimage
- } ifelse
- }{
- pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
- } ifelse
- }{
- ci6curoverprint {
- 8 {pop} repeat
- }{
- pop pop pop
- {pop 1} 0 1 () /DeviceGray ci6proctintimage
- } ifelse
- } ifelse
- } ifelse
-} def
-/XINullImage {
-} def
-/XIImageMask {
- XIImageWidth XIImageHeight false
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- imagemask
-} def
-/XIImageTint {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- XIType 3 eq XIColorValues XIColorSpace ci6tintimage
-} def
-/XIImage {
- XIImageWidth XIImageHeight XIBitsPerPixel
- [XIImageWidth 0 0 XIImageHeight neg 0 0]
- /XIDataProc load
- false XIChannelCount XIPlateList ci6drawimage
-} def
-/XG {
- pop pop
-} def
-/XF {
- 13 {pop} repeat
-} def
-/Xh {
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- /XIImageMatrix exch def
- 0 0 moveto
- XIImageMatrix concat
- XIImageWidth XIImageHeight scale
-
- /_lp /null ddef
- _fc
- /_lp /imagemask ddef
- end
-} def
-/XH {
- Adobe_ColorImage_AI6_Vars begin
- grestore
- end
-} def
-/XIEnable {
- Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
-} def
-/XC {
- Adobe_ColorImage_AI6_Vars begin
- ci6colormake
- /XIColorSpace exch def
- /XIColorValues exch def
- end
-} def
-/XIPlates {
- Adobe_ColorImage_AI6_Vars begin
- /XIPlateList exch def
- end
-} def
-/XI
-{
- Adobe_ColorImage_AI6_Vars begin
- gsave
- /XIType exch def
- cvi dup
- 256 idiv /XICompression exch store
- 256 mod /XIEncoding exch store
- pop pop
- /XIChannelCount exch def
- /XIBitsPerPixel exch def
- /XIImageHeight exch def
- /XIImageWidth exch def
- pop pop pop pop
- /XIImageMatrix exch def
- XIBitsPerPixel 1 eq {
- XIImageWidth 8 div ceiling cvi
- }{
- XIImageWidth XIChannelCount mul
- } ifelse
- /XIRowBytes exch def
- XIEnable {
- /XIBuffer3 XIImageWidth string def
- XICompression 0 eq {
- /XIBuffer1 XIRowBytes string def
- XIEncoding 0 eq {
- {currentfile XIBuffer1 readhexstring pop}
- }{
- {currentfile XIBuffer1 readstring pop}
- } ifelse
- }{
- /XIBuffer1 256 string def
- /XIBuffer2 XIRowBytes string def
- {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
- /ASCII85Decode filter /DCTDecode filter
- /XIFile exch def
- {XIFile XIBuffer2 readstring pop}
- } ifelse
- /XIDataProc exch def
-
- XIType 1 ne {
- 0 setgray
- } if
- XIType 1 eq {
- XIImageMask
- }{
- XIType 2 eq XIType 3 eq or {
- XIImageTint
- }{
- XIImage
- } ifelse
- } ifelse
- }{
- XINullImage
- } ifelse
- /XIPlateList false def
- grestore
- end
-} def
-end
-%%EndProcSet
-%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
-%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
-%%Version: 1.3 0
-%%CreationDate: (3/7/1994) ()
-%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
-put
-/_?cmyk false def
-/_eo false def
-/_lp /none def
-/_pf
-{
-} def
-/_ps
-{
-} def
-/_psf
-{
-} def
-/_pss
-{
-} def
-/_pjsf
-{
-} def
-/_pjss
-{
-} def
-/_pola 0 def
-/_doClip 0 def
-/cf currentflat def
-/_lineorientation 0 def
-/_charorientation 0 def
-/_yokoorientation 0 def
-/_tm matrix def
-/_renderStart
-[
-/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
-] def
-/_renderEnd
-[
-null null null null /i1 /i1 /i1 /i1
-] def
-/_render -1 def
-/_shift [0 0] def
-/_ax 0 def
-/_ay 0 def
-/_cx 0 def
-/_cy 0 def
-/_leading
-[
-0 0
-] def
-/_ctm matrix def
-/_mtx matrix def
-/_sp 16#020 def
-/_hyphen (-) def
-/_fontSize 0 def
-/_fontAscent 0 def
-/_fontDescent 0 def
-/_fontHeight 0 def
-/_fontRotateAdjust 0 def
-/Ss 256 string def
-Ss 0 (fonts/) putinterval
-/_cnt 0 def
-/_scale [1 1] def
-/_nativeEncoding 0 def
-/_useNativeEncoding 0 def
-/_tempEncode 0 def
-/_pntr 0 def
-/_tDict 2 dict def
-/_hfname 100 string def
-/_hffound false def
-/Tx
-{
-} def
-/Tj
-{
-} def
-/CRender
-{
-} def
-/_AI3_savepage
-{
-} def
-/_gf null def
-/_cf 4 array def
-/_rgbf 3 array def
-/_if null def
-/_of false def
-/_fc
-{
-} def
-/_gs null def
-/_cs 4 array def
-/_rgbs 3 array def
-/_is null def
-/_os false def
-/_sc
-{
-} def
-/_pd 1 dict def
-/_ed 15 dict def
-/_pm matrix def
-/_fm null def
-/_fd null def
-/_fdd null def
-/_sm null def
-/_sd null def
-/_sdd null def
-/_i null def
-/_lobyte 0 def
-/_hibyte 0 def
-/_cproc null def
-/_cscript 0 def
-/_hvax 0 def
-/_hvay 0 def
-/_hvwb 0 def
-/_hvcx 0 def
-/_hvcy 0 def
-/_bitfont null def
-/_bitlobyte 0 def
-/_bithibyte 0 def
-/_bitkey null def
-/_bitdata null def
-/_bitindex 0 def
-/discardSave null def
-/buffer 256 string def
-/beginString null def
-/endString null def
-/endStringLength null def
-/layerCnt 1 def
-/layerCount 1 def
-/perCent (%) 0 get def
-/perCentSeen? false def
-/newBuff null def
-/newBuffButFirst null def
-/newBuffLast null def
-/clipForward? false def
-end
-userdict /Adobe_Illustrator_AI5 known not {
- userdict /Adobe_Illustrator_AI5 100 dict put
-} if
-userdict /Adobe_Illustrator_AI5 get begin
-/initialize
-{
- Adobe_Illustrator_AI5 dup begin
- Adobe_Illustrator_AI5_vars begin
- /_aicmykps where {pop /_?cmyk _aicmykps def}if
- discardDict
- {
- bind pop pop
- } forall
- dup /nc get begin
- {
- dup xcheck 1 index type /operatortype ne and
- {
- bind
- } if
- pop pop
- } forall
- end
- newpath
-} def
-/terminate
-{
- end
- end
-} def
-/_
-null def
-/ddef
-{
- Adobe_Illustrator_AI5_vars 3 1 roll put
-} def
-/xput
-{
- dup load dup length exch maxlength eq
- {
- dup dup load dup
- length 2 mul dict copy def
- } if
- load begin
- def
- end
-} def
-/npop
-{
- {
- pop
- } repeat
-} def
-/hswj
-{
- dup stringwidth 3 2 roll
- {
- _hvwb eq { exch _hvcx add exch _hvcy add } if
- exch _hvax add exch _hvay add
- } cforall
-} def
-/vswj
-{
- 0 0 3 -1 roll
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- dup cstring stringwidth 5 2 roll
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- 4 -1 roll sub exch
- 3 -1 roll sub exch
- }
- {
- _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- exch _hvay sub exch _hvax sub
- _fontHeight sub
- } ifelse
- } cforall
-} def
-/swj
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hswj } { vswj } ifelse
-} def
-/sw
-{
- 0 0 0 6 3 roll swj
-} def
-/vjss
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- gsave
- 2 index false charpath
- 6 index setmatrix stroke
- grestore
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjss
-{
- 4 1 roll
- {
- dup cstring
- gsave
- false charpath currentpoint
- 5 index setmatrix stroke
- grestore
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jss
-{
- _lineorientation 0 eq { hjss } { vjss } ifelse
-} def
-/ss
-{
- 0 0 0 7 3 roll jss
-} def
-/vjsp
-{
- 4 1 roll
- {
- dup cstring
- dup length 1 eq
- _charorientation 1 eq
- and
- {
- -90 rotate
- currentpoint
- _fontRotateAdjust add
- moveto
- false charpath
- currentpoint
- _fontRotateAdjust sub
- moveto
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- 5 index sub
- 3 index _sp eq
- {
- 9 index sub
- } if
-
- currentpoint
- exch 4 index stringwidth pop 2 div sub
- exch _fontAscent sub
- moveto
-
- 2 index false charpath
-
- moveto pop pop
- } ifelse
- } cforall
- 6 npop
-} def
-/hjsp
-{
- 4 1 roll
- {
- dup cstring
- false charpath
- _sp eq
- {
- 5 index 5 index rmoveto
- } if
- 2 copy rmoveto
- } cforall
- 6 npop
-} def
-/jsp
-{
- matrix currentmatrix
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/sp
-{
- matrix currentmatrix
- 0 0 0 7 3 roll
- _lineorientation 0 eq {hjsp} {vjsp} ifelse
-} def
-/pl
-{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
-} def
-/setstrokeadjust where
-{
- pop true setstrokeadjust
- /c
- {
- curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll curveto
- } def
- /V
- /v load def
- /y
- {
- 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- lineto
- } def
- /L
- /l load def
- /m
- {
- moveto
- } def
-}
-{
- /c
- {
- pl curveto
- } def
- /C
- /c load def
- /v
- {
- currentpoint 6 2 roll pl curveto
- } def
- /V
- /v load def
- /y
- {
- pl 2 copy curveto
- } def
- /Y
- /y load def
- /l
- {
- pl lineto
- } def
- /L
- /l load def
- /m
- {
- pl moveto
- } def
-} ifelse
-/d
-{
- setdash
-} def
-/cf
-{
-} def
-/i
-{
- dup 0 eq
- {
- pop cf
- } if
- setflat
-} def
-/j
-{
- setlinejoin
-} def
-/J
-{
- setlinecap
-} def
-/M
-{
- setmiterlimit
-} def
-/w
-{
- setlinewidth
-} def
-/XR
-{
- 0 ne
- /_eo exch ddef
-} def
-/H
-{
-} def
-/h
-{
- closepath
-} def
-/N
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- _eo {eoclip} {clip} ifelse /_doClip 0 ddef
- } if
- newpath
- }
- {
- /CRender
- {
- N
- } ddef
- } ifelse
-} def
-/n
-{
- N
-} def
-/F
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
- /_doClip 0 ddef
- }
- {
- _pf
- } ifelse
- }
- {
- /CRender
- {
- F
- } ddef
- } ifelse
-} def
-/f
-{
- closepath
- F
-} def
-/S
-{
- _pola 0 eq
- {
- _doClip 1 eq
- {
- gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- _ps
- } ifelse
- }
- {
- /CRender
- {
- S
- } ddef
- } ifelse
-} def
-/s
-{
- closepath
- S
-} def
-/B
-{
- _pola 0 eq
- {
- _doClip 1 eq
- gsave F grestore
- {
- gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
- /_doClip 0 ddef
- }
- {
- S
- } ifelse
- }
- {
- /CRender
- {
- B
- } ddef
- } ifelse
-} def
-/b
-{
- closepath
- B
-} def
-/W
-{
- /_doClip 1 ddef
-} def
-/*
-{
- count 0 ne
- {
- dup type /stringtype eq
- {
- pop
- } if
- } if
- newpath
-} def
-/u
-{
-} def
-/U
-{
-} def
-/q
-{
- _pola 0 eq
- {
- gsave
- } if
-} def
-/Q
-{
- _pola 0 eq
- {
- grestore
- } if
-} def
-/*u
-{
- _pola 1 add /_pola exch ddef
-} def
-/*U
-{
- _pola 1 sub /_pola exch ddef
- _pola 0 eq
- {
- CRender
- } if
-} def
-/D
-{
- pop
-} def
-/*w
-{
-} def
-/*W
-{
-} def
-/`
-{
- /_i save ddef
- clipForward?
- {
- nulldevice
- } if
- 6 1 roll 4 npop
- concat pop
- userdict begin
- /showpage
- {
- } def
- 0 setgray
- 0 setlinecap
- 1 setlinewidth
- 0 setlinejoin
- 10 setmiterlimit
- [] 0 setdash
- /setstrokeadjust where {pop false setstrokeadjust} if
- newpath
- 0 setgray
- false setoverprint
-} def
-/~
-{
- end
- _i restore
-} def
-/_rgbtocmyk
-{
- 3
- {
- 1 exch sub 3 1 roll
- } repeat
- 3 copy 1 4 1 roll
- 3
- {
- 3 index 2 copy gt
- {
- exch
- } if
- pop 4 1 roll
- } repeat
- pop pop pop
- 4 1 roll
- 3
- {
- 3 index sub
- 3 1 roll
- } repeat
- 4 -1 roll
-} def
-/setrgbfill
-{
- _rgbf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _rgbf aload pop setrgbcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/setrgbstroke
-{
- _rgbs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _rgbs aload pop setrgbcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/O
-{
- 0 ne
- /_of exch ddef
- /_lp /none ddef
-} def
-/R
-{
- 0 ne
- /_os exch ddef
- /_lp /none ddef
-} def
-/g
-{
- /_gf exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/G
-{
- /_gs exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/k
-{
- _cf astore pop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _cf aload pop setcmykcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/K
-{
- _cs astore pop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _cs aload pop setcmykcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xa
-{
- _?cmyk {
- 3 npop k
- }{
- setrgbfill 4 npop
- } ifelse
-} def
-/XA
-{
- _?cmyk {
- 3 npop K
- }{
- setrgbstroke 4 npop
- } ifelse
-} def
-/Xs
-{
- /_gf exch ddef
- 5 npop
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _gf setAIseparationgray
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XS
-{
- /_gs exch ddef
- 5 npop
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _gs setAIseparationgray
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/Xx
-{
- exch
- /_gf exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/XX
-{
- exch
- /_gs exch ddef
- 0 eq {
- findcmykcustomcolor
- }{
- _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
- {
- 4 1 roll 3 npop
- findcmykcustomcolor
- }{
- 8 -4 roll 4 npop
- findrgbcustomcolor
- } ifelse
- } ifelse
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/x
-{
- /_gf exch ddef
- findcmykcustomcolor
- /_if exch ddef
- /_fc
- {
- _lp /fill ne
- {
- _of setoverprint
- _if _gf 1 exch sub setcustomcolor
- /_lp /fill ddef
- } if
- } ddef
- /_pf
- {
- _fc
- _eo {eofill} {fill} ifelse
- } ddef
- /_psf
- {
- _fc
- hvashow
- } ddef
- /_pjsf
- {
- _fc
- hvawidthshow
- } ddef
- /_lp /none ddef
-} def
-/X
-{
- /_gs exch ddef
- findcmykcustomcolor
- /_is exch ddef
- /_sc
- {
- _lp /stroke ne
- {
- _os setoverprint
- _is _gs 1 exch sub setcustomcolor
- /_lp /stroke ddef
- } if
- } ddef
- /_ps
- {
- _sc
- stroke
- } ddef
- /_pss
- {
- _sc
- ss
- } ddef
- /_pjss
- {
- _sc
- jss
- } ddef
- /_lp /none ddef
-} def
-/XK
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- K
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- XA
- } ifelse
-} def
-/Xk
-{
- 3 -1 roll pop
- 0 eq
- {
- 1 exch sub
- 3 {dup 3 1 roll mul 5 1 roll} repeat
- mul 4 1 roll
- k
- }
- {
- 1 exch sub 4 1 roll
- 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
- 4 -1 roll pop
- Xa
- } ifelse
-} def
-/A
-{
- pop
-} def
-/annotatepage
-{
-userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
-} def
-/XT {
- pop pop
-} def
-/Xt {
- pop
-} def
-/discard
-{
- save /discardSave exch store
- discardDict begin
- /endString exch store
- gt38?
- {
- 2 add
- } if
- load
- stopped
- pop
- end
- discardSave restore
-} bind def
-userdict /discardDict 7 dict dup begin
-put
-/pre38Initialize
-{
- /endStringLength endString length store
- /newBuff buffer 0 endStringLength getinterval store
- /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
- /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
-} def
-/shiftBuffer
-{
- newBuff 0 newBuffButFirst putinterval
- newBuffLast 0
- currentfile read not
- {
- stop
- } if
- put
-} def
-0
-{
- pre38Initialize
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff endString eq
- {
- cleartomark stop
- } if
- shiftBuffer
- } loop
- }
- {
- stop
- } ifelse
-} def
-1
-{
- pre38Initialize
- /beginString exch store
- mark
- currentfile newBuff readstring exch pop
- {
- {
- newBuff beginString eq
- {
- /layerCount dup load 1 add store
- }
- {
- newBuff endString eq
- {
- /layerCount dup load 1 sub store
- layerCount 0 eq
- {
- cleartomark stop
- } if
- } if
- } ifelse
- shiftBuffer
- } loop
- } if
-} def
-2
-{
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- endString eq {
- cleartomark stop
- } if
- }ifelse
- } loop
-} def
-3
-{
- /beginString exch store
- /layerCnt 1 store
- mark
- {
- currentfile buffer {readline} stopped {
- % assume error was due to overfilling the buffer
- }{
- not
- {
- stop
- } if
- dup beginString eq
- {
- pop /layerCnt dup load 1 add store
- }
- {
- endString eq
- {
- layerCnt 1 eq
- {
- cleartomark stop
- }
- {
- /layerCnt dup load 1 sub store
- } ifelse
- } if
- } ifelse
- }ifelse
- } loop
-} def
-end
-userdict /clipRenderOff 15 dict dup begin
-put
-{
- /n /N /s /S /f /F /b /B
-}
-{
- {
- _doClip 1 eq
- {
- /_doClip 0 ddef _eo {eoclip} {clip} ifelse
- } if
- newpath
- } def
-} forall
-/Tr /pop load def
-/Bb {} def
-/BB /pop load def
-/Bg {12 npop} def
-/Bm {6 npop} def
-/Bc /Bm load def
-/Bh {4 npop} def
-end
-/Lb
-{
- 6 npop
- 7 2 roll
- 5 npop
- 0 eq
- {
- 0 eq
- {
- (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
- }
- {
-
- /clipForward? true def
-
- /Tx /pop load def
- /Tj /pop load def
-
- currentdict end clipRenderOff begin begin
- } ifelse
- }
- {
- 0 eq
- {
- save /discardSave exch store
- } if
- } ifelse
-} bind def
-/LB
-{
- discardSave dup null ne
- {
- restore
- }
- {
- pop
- clipForward?
- {
- currentdict
- end
- end
- begin
-
- /clipForward? false ddef
- } if
- } ifelse
-} bind def
-/Pb
-{
- pop pop
- 0 (%AI5_EndPalette) discard
-} bind def
-/Np
-{
- 0 (%AI5_End_NonPrinting--) discard
-} bind def
-/Ln /pop load def
-/Ap
-/pop load def
-/Ar
-{
- 72 exch div
- 0 dtransform dup mul exch dup mul add sqrt
- dup 1 lt
- {
- pop 1
- } if
- setflat
-} def
-/Mb
-{
- q
-} def
-/Md
-{
-} def
-/MB
-{
- Q
-} def
-/nc 4 dict def
-nc begin
-/setgray
-{
- pop
-} bind def
-/setcmykcolor
-{
- 4 npop
-} bind def
-/setrgbcolor
-{
- 3 npop
-} bind def
-/setcustomcolor
-{
- 2 npop
-} bind def
-currentdict readonly pop
-end
-/XP
-{
- 4 npop
-} bind def
-/XD
-{
- pop
-} bind def
-end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_cshow 2.0 8
-%%Title: (Writing System Operators)
-%%Version: 2.0 8
-%%CreationDate: (1/23/89) ()
-%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
-currentpacking true setpacking
-userdict /Adobe_cshow 14 dict dup begin put
-/initialize
-{
- Adobe_cshow begin
- Adobe_cshow
- {
- dup xcheck
- {
- bind
- } if
- pop pop
- } forall
- end
- Adobe_cshow begin
-} def
-/terminate
-{
-currentdict Adobe_cshow eq
- {
- end
- } if
-} def
-/cforall
-{
- /_lobyte 0 ddef
- /_hibyte 0 ddef
- /_cproc exch ddef
- /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
- {
- /_lobyte exch ddef
- _hibyte 0 eq
- _cscript 1 eq
- _lobyte 129 ge _lobyte 159 le and
- _lobyte 224 ge _lobyte 252 le and or and
- _cscript 2 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 3 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript 25 eq
- _lobyte 161 ge _lobyte 254 le and and
- _cscript -1 eq
- or or or or and
- {
- /_hibyte _lobyte ddef
- }
- {
- _hibyte 256 mul _lobyte add
- _cproc
- /_hibyte 0 ddef
- } ifelse
- } forall
-} def
-/cstring
-{
- dup 256 lt
- {
- (s) dup 0 4 3 roll put
- }
- {
- dup 256 idiv exch 256 mod
- (hl) dup dup 0 6 5 roll put 1 4 3 roll put
- } ifelse
-} def
-/clength
-{
- 0 exch
- { 256 lt { 1 } { 2 } ifelse add } cforall
-} def
-/hawidthshow
-{
- {
- dup cstring
- show
- _hvax _hvay rmoveto
- _hvwb eq { _hvcx _hvcy rmoveto } if
- } cforall
-} def
-/vawidthshow
-{
- {
- dup 255 le
- _charorientation 1 eq
- and
- {
- -90 rotate
- 0 _fontRotateAdjust rmoveto
- cstring
- _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
- 0 _fontRotateAdjust neg rmoveto
- 90 rotate
- }
- {
- currentpoint
- _fontHeight sub
- exch _hvay sub exch _hvax sub
- 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
- 3 2 roll
- cstring
- dup stringwidth pop 2 div neg _fontAscent neg rmoveto
- show
- moveto
- } ifelse
- } cforall
-} def
-/hvawidthshow
-{
- 6 1 roll
- /_hvay exch ddef
- /_hvax exch ddef
- /_hvwb exch ddef
- /_hvcy exch ddef
- /_hvcx exch ddef
- _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
-} def
-/hvwidthshow
-{
- 0 0 3 -1 roll hvawidthshow
-} def
-/hvashow
-{
- 0 0 0 6 -3 roll hvawidthshow
-} def
-/hvshow
-{
- 0 0 0 0 0 6 -1 roll hvawidthshow
-} def
-currentdict readonly pop end
-setpacking
-%%EndResource
-%%BeginResource: procset Adobe_shading_AI8 1.0 0
-%%Title: (Adobe Illustrator 8 Shading Procset)
-%%Version: 1.0 0
-%%CreationDate: (12/17/97) ()
-%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
-userdict /defaultpacking currentpacking put true setpacking
-userdict /Adobe_shading_AI8 10 dict dup begin put
-/initialize {
- Adobe_shading_AI8 begin
- Adobe_shading_AI8 bdprocs
- Mesh /initialize get exec
-} def
-/terminate {
- currentdict Adobe_shading_AI8 eq {
- end
- } if
-} def
-/bdprocs {
- {
- dup xcheck 1 index type /arraytype eq and {
- bind
- } if
- pop pop
- } forall
-} def
-/X! {pop} def
-/X# {pop pop} def
-/Mesh 40 dict def
-Mesh begin
-/initialize {
- Mesh bdprocs
- Mesh begin
- /emulate? /AI8MeshEmulation where {
- pop AI8MeshEmulation
- }{
- systemdict /shfill known not
- } ifelse def
- end
-} def
-/bd {
- shadingdict begin
-} def
-/paint {
- emulate? {
- end
- }{
- /_lp /none ddef _fc /_lp /none ddef
-
- /AIColorSpace AIColorSpace tocolorspace store
- /ColorSpace AIColorSpace topsspace store
-
- version_ge_3010.106 not systemdict /setsmoothness known and {
- 0.0001 setsmoothness
- } if
-
- composite? {
- /DataSource getdatasrc def
- Matrix concat
- currentdict end
- shfill
- }{
- AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
- end
- }{
- /ColorSpace /DeviceGray store
- /Decode [0 1 0 1 0 1] store
- /DataSource getplatesrc def
- Matrix concat
- currentdict end
- shfill
- } ifelse
- } ifelse
- } ifelse
-} def
-/shadingdict 12 dict def
-shadingdict begin
- /ShadingType 6 def
- /BitsPerCoordinate 16 def
- /BitsPerComponent 8 def
- /BitsPerFlag 8 def
-end
-/datafile null def
-/databuf 256 string def
-/dataptr 0 def
-/srcspace null def
-/srcchannels 0 def
-/dstchannels 0 def
-/dstplate 0 def
-/srctodstcolor null def
-/getplatesrc {
- /srcspace AIColorSpace store
- /srcchannels AIColorSpace getnchannels store
- /dstchannels 1 store
- /dstplate getplateindex store
- /srctodstcolor srcspace makesmarks {
- dstplate 4 eq {
- {1 exch sub}
- }{
- {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
- } ifelse
- }{
- {srcchannels {pop} repeat 1}
- } ifelse store
- /datafile getdatasrc store
- /rdpatch168 load DataLength () /SubFileDecode filter
-} def
-/getdatasrc {
- /rdcmntline load /ASCII85Decode filter
-} def
-/rdpatch168 {
- /dataptr 0 store
- 49 rdcount
- 4 {
- dup {pop srcchannels getint8} if
- dup {pop srctodstcolor dstchannels putint8 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdpatch3216 {
- /dataptr 0 store
- 97 rdcount
- 4 {
- dup {pop srcchannels getint16} if
- dup {pop srctodstcolor dstchannels putint16 true} if
- } repeat
- {databuf 0 dataptr getinterval}{()} ifelse
-} def
-/rdcount {
- dup 0 gt {
- datafile databuf dataptr 4 -1 roll getinterval readstring
- exch length dataptr add /dataptr exch store
- }{
- true
- } ifelse
-} def
-/getint8 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 255 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint8 {
- dup dataptr add /dataptr exch store
- dataptr exch
- {
- 1 sub exch
- 255 mul cvi
- databuf 2 index
- 3 -1 roll put
- } repeat
- pop
-} def
-/getint16 {
- mark true 3 -1 roll
- {
- dup {pop datafile read} if
- dup {pop 256 mul datafile read} if
- dup {pop add 65535 div true} if
- } repeat
- {
- counttomark 1 add -1 roll pop true
- }{
- cleartomark false
- } ifelse
-} def
-/putint16 {
- dup 2 mul dataptr add /dataptr exch store
- dataptr exch
- {
- 2 sub exch
- 65535 mul cvi dup
- 256 idiv databuf 3 index 3 -1 roll put
- 256 mod databuf 2 index 1 add 3 -1 roll put
- } repeat
- pop
-} def
-/srcbuf 256 string def
-/rdcmntline {
- currentfile srcbuf readline pop
- (%) anchorsearch {pop} if
-} def
-/getplateindex {
- 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
-} def
-/aicsarray 4 array def
-/aicsaltvals 4 array def
-/aicsaltcolr aicsaltvals def
-/tocolorspace {
- dup type /arraytype eq {
- mark exch aload pop
- aicsarray 0 3 -1 roll put
- aicsarray 1 3 -1 roll put
- dup aicsarray 2 3 -1 roll put
- gettintxform aicsarray 3 3 -1 roll put
- counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
- aicsaltcolr astore pop pop
- aicsarray
- } if
-} def
-/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
-/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
-/gettintxform {
- /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
-} def
-/getnchannels {
- dup type /arraytype eq {0 get} if
- colorspacedict exch get begin Channels end
-} def
-/makesmarks {
- composite? {
- pop true
- }{
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin MarksPlate end
- } ifelse
-} def
-/markingplate {
- composite? {
- pop true
- }{
- dup type /arraytype eq {
- dup length getplateindex gt {getplateindex get}{pop false} ifelse
- } if
- } ifelse
-} def
-/tocmyk {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToCMYK end
-} def
-/topsspace {
- dup dup type /arraytype eq {0 get} if
- colorspacedict exch get begin ToPSSpace end
-} def
-/colorspacedict 5 dict dup begin
- /DeviceGray 4 dict dup begin
- /Channels 1 def
- /MarksPlate {pop black?} def
- /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
- /ToPSSpace {} def
- end def
- /DeviceRGB 4 dict dup begin
- /Channels 3 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop _rgbtocmyk} def
- /ToPSSpace {} def
- end def
- /DeviceCMYK 4 dict dup begin
- /Channels 4 def
- /MarksPlate {pop isCMYKSep?} def
- /ToCMYK {pop} def
- /ToPSSpace {} def
- end def
- /Separation 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- /findcmykcustomcolor where {
- pop dup 1 exch ToCMYK 5 -1 roll 1 get
- findcmykcustomcolor 1 setcustomcolor
- systemdict /currentgray get exec
- 1 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {} def
- end def
- /Process 4 dict dup begin
- /Channels 1 def
- /MarksPlate {
- isCMYKSep? {
- 1 exch ToCMYK 4 array astore getplateindex get 0 ne
- }{
- pop false
- } ifelse
- } def
- /ToCMYK {
- dup 2 get mark exch 4 2 roll
- 3 get exec
- counttomark -1 roll tocmyk
- 5 -1 roll pop
- } def
- /ToPSSpace {
- 4 array copy dup 0 /Separation put
- } def
- end def
-end def
-/isoverprint {
- /currentoverprint where {pop currentoverprint}{_of} ifelse
-} def
-/version_ge_3010.106 {
- version {cvr} stopped {
- pop
- false
- }{
- 3010.106 ge
- } ifelse
-} def
-end
-end
-defaultpacking setpacking
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeFont: Helvetica
-userdict /_useSmoothShade false put
-userdict /_aicmykps true put
-userdict /_forceToCMYK true put
-Adobe_level2_AI5 /initialize get exec
-Adobe_cshow /initialize get exec
-Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
-Adobe_ColorImage_AI6 /initialize get exec
-Adobe_shading_AI8 /initialize get exec
-Adobe_Illustrator_AI5 /initialize get exec
-[
-39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
-/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
-/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
-/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
-/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
-/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
-/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
-/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
-/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
-/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
-/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
-/.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
-/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
-/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
-/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
-/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
-/hungarumlaut/ogonek/caron
-TE
-%AI55J_Tsume: None
-%AI3_BeginEncoding: _Helvetica Helvetica
-[/_Helvetica/Helvetica 0 0 1 TZ
-%AI3_EndEncoding AdobeType
-[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
-181/mu/partialdiff/summation/product/pi/integral 189/Omega
-195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
-/_Symbol_/Symbol 0 0 0 TZ
-%AI5_Begin_NonPrinting
-Np
-%AI3_BeginPattern: (bi-direction diagonals)
-(bi-direction diagonals) 24.2119 0.2119 96.2124 72.2119 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-8.2119 6.2119 m
-14.2119 0.2119 L
-F
-8.2119 0.2119 m
-14.2119 6.2119 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-24.2119 72.2119 m
-96.2124 0.2119 L
-S
-21.2109 69.2129 m
-90.2124 0.2119 L
-S
-21.207 63.2168 m
-84.2124 0.2119 L
-S
-21.2031 57.2207 m
-78.2124 0.2119 L
-S
-21.1987 51.2246 m
-72.2124 0.2119 L
-S
-21.1958 45.2275 m
-66.2119 0.2119 L
-S
-21.1919 39.2314 m
-60.2119 0.2119 L
-S
-21.188 33.2363 m
-54.2119 0.2119 L
-S
-21.1851 27.2402 m
-48.2119 0.2119 L
-S
-21.1812 21.2432 m
-42.2119 0.2119 L
-S
-21.1768 15.2471 m
-36.2119 0.2119 L
-S
-21.1729 9.251 m
-30.2119 0.2119 L
-S
-21.1699 3.2549 m
-24.2119 0.2119 L
-S
-30.2119 72.2119 m
-99.2134 3.21 L
-S
-36.2119 72.2119 m
-99.2173 9.2061 L
-S
-42.2119 72.2119 m
-99.2212 15.2021 L
-S
-48.2119 72.2119 m
-99.2251 21.1992 L
-S
-54.2119 72.2119 m
-99.228 27.1953 L
-S
-60.2119 72.2119 m
-99.2319 33.1904 L
-S
-66.2119 72.2119 m
-99.2358 39.1865 L
-S
-72.2124 72.2119 m
-99.2397 45.1836 L
-S
-78.2124 72.2119 m
-99.2427 51.1797 L
-S
-84.2124 72.2119 m
-99.2466 57.1758 L
-S
-90.2124 72.2119 m
-99.2505 63.1719 L
-S
-96.2124 72.2119 m
-99.2554 69.1689 L
-S
-0.2119 68.7119 m
-10.2119 58.7119 L
-S
-96.2124 72.2119 m
-24.2119 0.2119 L
-S
-90.2124 72.2119 m
-21.2109 3.21 L
-S
-84.2124 72.2119 m
-21.207 9.2061 L
-S
-78.2124 72.2119 m
-21.2031 15.2021 L
-S
-72.2124 72.2119 m
-21.1987 21.1982 L
-S
-66.2119 72.2119 m
-21.1958 27.1953 L
-S
-60.2119 72.2119 m
-21.1919 33.1904 L
-S
-54.2119 72.2119 m
-21.188 39.1865 L
-S
-48.2119 72.2119 m
-21.1851 45.1826 L
-S
-42.2119 72.2119 m
-21.1812 51.1797 L
-S
-36.2119 72.2119 m
-21.1768 57.1758 L
-S
-30.2119 72.2119 m
-21.1729 63.1719 L
-S
-24.2119 72.2119 m
-21.1699 69.168 L
-S
-99.2134 69.2129 m
-30.2119 0.2119 L
-S
-99.2173 63.2168 m
-36.2119 0.2119 L
-S
-99.2212 57.2207 m
-42.2119 0.2119 L
-S
-99.2251 51.2246 m
-48.2119 0.2119 L
-S
-99.228 45.2275 m
-54.2119 0.2119 L
-S
-99.2319 39.2314 m
-60.2119 0.2119 L
-S
-99.2358 33.2363 m
-66.2119 0.2119 L
-S
-99.2397 27.2393 m
-72.2124 0.2119 L
-S
-99.2427 21.2432 m
-78.2124 0.2119 L
-S
-99.2466 15.2471 m
-84.2124 0.2119 L
-S
-99.2505 9.251 m
-90.2124 0.2119 L
-S
-99.2554 3.2539 m
-96.2124 0.2119 L
-S
-0.2119 58.7119 m
-10.2119 68.7119 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (black dots)
-(black dots) 16 0.6885 88 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6.6885 m
-6 0.6885 L
-F
-0 0.6885 m
-6 6.6885 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-28.9365 3.1885 m
-28.9365 3.1885 l
-S
-17.125 3.375 m
-17.125 3.375 l
-S
-26.5 4.6885 m
-26.5 4.6885 l
-S
-35.6865 5.8135 m
-35.6865 5.8135 l
-S
-19.75 0.9385 m
-19.75 0.9385 l
-S
-23.125 7.3135 m
-23.125 7.3135 l
-S
-40.5615 2.4385 m
-40.5615 2.4385 l
-S
-43 1.125 m
-43 1.125 l
-S
-45.0615 5.4385 m
-45.0615 5.4385 l
-S
-56.875 6.375 m
-56.875 6.375 l
-S
-65.3115 5.0635 m
-65.3115 5.0635 l
-S
-51.0615 6.9385 m
-51.0615 6.9385 l
-S
-40.5615 6.9385 m
-40.5615 6.9385 l
-S
-31.1865 6.9385 m
-31.1865 6.9385 l
-S
-59.875 9.5635 m
-59.875 9.5635 l
-S
-62.6865 1.3135 m
-62.6865 1.3135 l
-S
-34.5615 0.9385 m
-34.5615 0.9385 l
-S
-48.4365 2.25 m
-48.4365 2.25 l
-S
-56.3115 0.75 m
-56.3115 0.75 l
-S
-66.625 24.5635 m
-66.625 24.5635 l
-S
-74.3115 24.9385 m
-74.3115 24.9385 l
-S
-78.8115 24.375 m
-78.8115 24.375 l
-S
-82.9365 2.0635 m
-82.9365 2.0635 l
-S
-68.3115 11.8135 m
-68.3115 11.8135 l
-S
-86.5 17.8135 m
-86.5 17.8135 l
-S
-87.0615 4.6885 m
-87.0615 4.6885 l
-S
-79.9365 19.875 m
-79.9365 19.875 l
-S
-77.875 1.125 m
-77.875 1.125 l
-S
-69.625 20.25 m
-69.625 20.25 l
-S
-67.75 6 m
-67.75 6 l
-S
-73.375 17.625 m
-73.375 17.625 l
-S
-76.9365 16.875 m
-76.9365 16.875 l
-S
-72.4365 3.375 m
-72.4365 3.375 l
-S
-77.3115 9.5635 m
-77.3115 9.5635 l
-S
-73.9365 11.25 m
-73.9365 11.25 l
-S
-83.125 7.875 m
-83.125 7.875 l
-S
-85.1865 12.75 m
-85.1865 12.75 l
-S
-81.0615 13.875 m
-81.0615 13.875 l
-S
-17.6865 16.125 m
-17.6865 16.125 l
-S
-45.25 10.3135 m
-45.25 10.3135 l
-S
-31.5615 21.375 m
-31.5615 21.375 l
-S
-20.875 11.8135 m
-20.875 11.8135 l
-S
-34.75 18.5635 m
-34.75 18.5635 l
-S
-25.75 21.9385 m
-25.75 21.9385 l
-S
-34.5615 24.5635 m
-34.5615 24.5635 l
-S
-37.375 16.3135 m
-37.375 16.3135 l
-S
-36.625 12.75 m
-36.625 12.75 l
-S
-23.125 17.25 m
-23.125 17.25 l
-S
-29.3115 12.375 m
-29.3115 12.375 l
-S
-31 15.75 m
-31 15.75 l
-S
-46.1865 22.875 m
-46.1865 22.875 l
-S
-52 15.375 m
-52 15.375 l
-S
-58.375 13.3135 m
-58.375 13.3135 l
-S
-62.6865 20.0635 m
-62.6865 20.0635 l
-S
-62.875 14.0635 m
-62.875 14.0635 l
-S
-44.6865 20.4385 m
-44.6865 20.4385 l
-S
-46.75 15.1885 m
-46.75 15.1885 l
-S
-42.0615 17.0635 m
-42.0615 17.0635 l
-S
-55.1865 17.4385 m
-55.1865 17.4385 l
-S
-58.9365 23.25 m
-58.9365 23.25 l
-S
-60.0615 17.4385 m
-60.0615 17.4385 l
-S
-42.4365 25.125 m
-42.4365 25.125 l
-S
-65.3115 20.625 m
-65.3115 20.625 l
-S
-51.625 24.5635 m
-51.625 24.5635 l
-S
-52 20.625 m
-52 20.625 l
-S
-18.8115 24 m
-18.8115 24 l
-S
-21.25 24.9385 m
-21.25 24.9385 l
-S
-19.375 70.875 m
-19.375 70.875 l
-S
-26.125 66.5635 m
-26.125 66.5635 l
-S
-20.125 66.375 m
-20.125 66.375 l
-S
-38.5 69 m
-38.5 69 l
-S
-47.125 71.625 m
-47.125 71.625 l
-S
-62.875 68.0635 m
-62.875 68.0635 l
-S
-49.75 67.5 m
-49.75 67.5 l
-S
-38.875 65.625 m
-38.875 65.625 l
-S
-29.3115 70.3135 m
-29.3115 70.3135 l
-S
-31.9365 67.5 m
-31.9365 67.5 l
-S
-57.25 65.4385 m
-57.25 65.4385 l
-S
-23.5 69.1885 m
-23.5 69.1885 l
-S
-45.625 65.25 m
-45.625 65.25 l
-S
-26.6865 63.9385 m
-26.6865 63.9385 l
-S
-50.5 63.75 m
-50.5 63.75 l
-S
-32.6865 72 m
-32.6865 72 l
-S
-52.9365 71.4385 m
-52.9365 71.4385 l
-S
-57.8115 69.375 m
-57.8115 69.375 l
-S
-61 64.3135 m
-61 64.3135 l
-S
-28.9365 48.1885 m
-28.9365 48.1885 l
-S
-17.125 48.375 m
-17.125 48.375 l
-S
-21.4365 42.375 m
-21.4365 42.375 l
-S
-19.375 36 m
-19.375 36 l
-S
-26.125 31.6885 m
-26.125 31.6885 l
-S
-20.125 31.5 m
-20.125 31.5 l
-S
-26.5 49.6885 m
-26.5 49.6885 l
-S
-35.6865 50.8135 m
-35.6865 50.8135 l
-S
-19.75 45.9385 m
-19.75 45.9385 l
-S
-23.125 52.3135 m
-23.125 52.3135 l
-S
-40.5615 47.4385 m
-40.5615 47.4385 l
-S
-43 46.125 m
-43 46.125 l
-S
-23.5 39.1885 m
-23.5 39.1885 l
-S
-38.5 34.125 m
-38.5 34.125 l
-S
-47.125 36.75 m
-47.125 36.75 l
-S
-45.0615 50.4385 m
-45.0615 50.4385 l
-S
-56.875 51.375 m
-56.875 51.375 l
-S
-42.8115 39.375 m
-42.8115 39.375 l
-S
-62.875 33.1885 m
-62.875 33.1885 l
-S
-49.75 32.625 m
-49.75 32.625 l
-S
-38.875 30.75 m
-38.875 30.75 l
-S
-29.3115 35.4385 m
-29.3115 35.4385 l
-S
-31.9365 32.625 m
-31.9365 32.625 l
-S
-54.75 30.1885 m
-54.75 30.1885 l
-S
-64.9365 39.75 m
-64.9365 39.75 l
-S
-46.1865 41.8135 m
-46.1865 41.8135 l
-S
-65.3115 50.0635 m
-65.3115 50.0635 l
-S
-51.0615 51.9385 m
-51.0615 51.9385 l
-S
-23.5 34.3135 m
-23.5 34.3135 l
-S
-40.5615 51.9385 m
-40.5615 51.9385 l
-S
-31.1865 51.9385 m
-31.1865 51.9385 l
-S
-45.625 30.375 m
-45.625 30.375 l
-S
-26.6865 29.0635 m
-26.6865 29.0635 l
-S
-59.875 54.5635 m
-59.875 54.5635 l
-S
-50.5 28.875 m
-50.5 28.875 l
-S
-60.75 47.6885 m
-60.75 47.6885 l
-S
-30.625 42.75 m
-30.625 42.75 l
-S
-26.6865 42.375 m
-26.6865 42.375 l
-S
-36.8115 40.125 m
-36.8115 40.125 l
-S
-37.75 43.5 m
-37.75 43.5 l
-S
-34.5615 45.9385 m
-34.5615 45.9385 l
-S
-32.6865 37.125 m
-32.6865 37.125 l
-S
-61.9365 42.75 m
-61.9365 42.75 l
-S
-48.4365 47.25 m
-48.4365 47.25 l
-S
-54.625 42.375 m
-54.625 42.375 l
-S
-56.3115 45.75 m
-56.3115 45.75 l
-S
-52.9365 36.5635 m
-52.9365 36.5635 l
-S
-57.8115 34.5 m
-57.8115 34.5 l
-S
-58.9365 38.625 m
-58.9365 38.625 l
-S
-61 29.4385 m
-61 29.4385 l
-S
-65.875 29.625 m
-65.875 29.625 l
-S
-70.5615 27.75 m
-70.5615 27.75 l
-S
-71.5 52.875 m
-71.5 52.875 l
-S
-69.8115 34.3135 m
-69.8115 34.3135 l
-S
-76.375 27.375 m
-76.375 27.375 l
-S
-71.3115 41.0635 m
-71.3115 41.0635 l
-S
-77.3115 45.375 m
-77.3115 45.375 l
-S
-82 28.6885 m
-82 28.6885 l
-S
-88.1865 27.5635 m
-88.1865 27.5635 l
-S
-83.6865 43.3135 m
-83.6865 43.3135 l
-S
-88 50.0635 m
-88 50.0635 l
-S
-88.1865 44.0635 m
-88.1865 44.0635 l
-S
-88.1865 33.1885 m
-88.1865 33.1885 l
-S
-70 50.4385 m
-70 50.4385 l
-S
-68.875 59.625 m
-68.875 59.625 l
-S
-66.8115 38.25 m
-66.8115 38.25 l
-S
-74.75 42.1885 m
-74.75 42.1885 l
-S
-67.375 47.0635 m
-67.375 47.0635 l
-S
-72.25 64.5 m
-72.25 64.5 l
-S
-73.5615 66.9385 m
-73.5615 66.9385 l
-S
-80.5 47.4385 m
-80.5 47.4385 l
-S
-85.5615 62.4385 m
-85.5615 62.4385 l
-S
-82.9365 71.0635 m
-82.9365 71.0635 l
-S
-69.25 69 m
-69.25 69 l
-S
-80.3115 66.75 m
-80.3115 66.75 l
-S
-84.25 53.25 m
-84.25 53.25 l
-S
-87.0615 55.875 m
-87.0615 55.875 l
-S
-77.875 70.125 m
-77.875 70.125 l
-S
-85.375 47.4385 m
-85.375 47.4385 l
-S
-67.75 64.5 m
-67.75 64.5 l
-S
-67.75 55.125 m
-67.75 55.125 l
-S
-81.625 31.125 m
-81.625 31.125 l
-S
-79.375 39 m
-79.375 39 l
-S
-75.8115 33 m
-75.8115 33 l
-S
-84.4365 37.3135 m
-84.4365 37.3135 l
-S
-76.9365 54.5635 m
-76.9365 54.5635 l
-S
-77.3115 50.625 m
-77.3115 50.625 l
-S
-79.5615 60.75 m
-79.5615 60.75 l
-S
-76.1865 61.6885 m
-76.1865 61.6885 l
-S
-73.75 58.5 m
-73.75 58.5 l
-S
-82.5615 56.625 m
-82.5615 56.625 l
-S
-72.4365 72.375 m
-72.4365 72.375 l
-S
-61.75 25.875 m
-61.75 25.875 l
-S
-57.25 26.625 m
-57.25 26.625 l
-S
-25.75 60.75 m
-25.75 60.75 l
-S
-34.1865 59.4385 m
-34.1865 59.4385 l
-S
-19.9365 61.3135 m
-19.9365 61.3135 l
-S
-31.5615 55.6885 m
-31.5615 55.6885 l
-S
-17.3115 56.625 m
-17.3115 56.625 l
-S
-25.1865 55.125 m
-25.1865 55.125 l
-S
-40.375 62.25 m
-40.375 62.25 l
-S
-46.1865 54.75 m
-46.1865 54.75 l
-S
-56.875 59.4385 m
-56.875 59.4385 l
-S
-40.25 58.1885 m
-40.25 58.1885 l
-S
-36.25 56.4385 m
-36.25 56.4385 l
-S
-49.375 56.8135 m
-49.375 56.8135 l
-S
-53.125 62.625 m
-53.125 62.625 l
-S
-54.25 56.8135 m
-54.25 56.8135 l
-S
-59.5 60 m
-59.5 60 l
-S
-46.1865 60 m
-46.1865 60 l
-S
-30.8115 28.5 m
-30.8115 28.5 l
-S
-19.75 72.9385 m
-19.75 72.9385 l
-S
-43 73.125 m
-43 73.125 l
-S
-34.5615 72.9385 m
-34.5615 72.9385 l
-S
-56.3115 72.75 m
-56.3115 72.75 l
-S
-77.875 73.125 m
-77.875 73.125 l
-S
-72.4365 0.375 m
-72.4365 0.375 l
-S
-16.1865 27.5635 m
-16.1865 27.5635 l
-S
-16 50.0635 m
-16 50.0635 l
-S
-16.1865 44.0635 m
-16.1865 44.0635 l
-S
-16.1865 33.1885 m
-16.1865 33.1885 l
-S
-6 62.3135 m
-6.208 62.3135 6.375 62.4805 6.375 62.6885 c
-6.375 62.8945 6.208 63.0635 6 63.0635 c
-5.793 63.0635 5.625 62.8945 5.625 62.6885 c
-5.625 62.4805 5.793 62.3135 6 62.3135 c
-s
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (horizontal rules)
-(horizontal rules) 16 0 88 73.9463 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-0 6 m
-6 0 L
-F
-0 0 m
-6 6 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-2 J 0 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-88 72.9727 m
-16 72.9727 l
-S
-88 71.0273 m
-16 71.0273 L
-S
-88 67.1357 m
-16 67.1357 L
-S
-88 65.1904 m
-16 65.1904 L
-S
-88 63.2441 m
-16 63.2441 L
-S
-88 61.2979 m
-16 61.2979 L
-S
-88 57.4072 m
-16 57.4072 L
-S
-88 55.4609 m
-16 55.4609 L
-S
-88 53.5156 m
-16 53.5156 L
-S
-88 51.5703 m
-16 51.5703 L
-S
-88 49.624 m
-16 49.624 L
-S
-88 47.6787 m
-16 47.6787 L
-S
-88 45.7334 m
-16 45.7334 L
-S
-88 43.7871 m
-16 43.7871 L
-S
-88 39.8965 m
-16 39.8965 L
-S
-88 37.9502 m
-16 37.9502 L
-S
-88 36.0049 m
-16 36.0049 L
-S
-88 34.0586 m
-16 34.0586 L
-S
-88 32.1133 m
-16 32.1133 L
-S
-88 30.168 m
-16 30.168 L
-S
-88 26.2764 m
-16 26.2764 L
-S
-88 22.3848 m
-16 22.3848 L
-S
-88 20.4395 m
-16 20.4395 L
-S
-88 18.4941 m
-16 18.4941 L
-S
-88 16.5479 m
-16 16.5479 L
-S
-88 14.6016 m
-16 14.6016 L
-S
-88 12.6572 m
-16 12.6572 L
-S
-88 8.7646 m
-16 8.7646 L
-S
-88 6.8193 m
-16 6.8193 L
-S
-88 4.874 m
-16 4.874 L
-S
-88 0.9727 m
-16 0.9727 l
-S
-88 2.9277 m
-16 2.9277 L
-S
-88 69.0811 m
-16 69.0811 L
-S
-88 59.3525 m
-16 59.3525 L
-S
-88 41.8418 m
-16 41.8418 L
-S
-88 28.2217 m
-16 28.2217 L
-S
-88 24.3311 m
-16 24.3311 L
-S
-88 10.7109 m
-16 10.7109 L
-S
-6 69.0811 m
-2 69.0811 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (one direction diagonals)
-(one direction diagonals) 28.856 4.6211 100.855 76.6211 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 2 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-5.106 10.6211 m
-11.106 4.6211 L
-F
-5.106 4.6211 m
-11.106 10.6211 L
-F
-%AI6_EndPatternLayer
-) &
-(0 O 0 R 0 0 0 1 k
- 0 0 0 1 K
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-0 J 1 j 0.3 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-21.3716 66.1055 m
-39.3706 84.1055 l
-S
-21.3716 60.1055 m
-45.3706 84.1055 l
-S
-21.3716 54.1055 m
-51.3706 84.1055 l
-S
-21.3716 48.1055 m
-57.3706 84.1055 l
-S
-21.3716 42.1055 m
-63.3706 84.1055 l
-S
-21.3716 36.1055 m
-69.3706 84.1055 l
-S
-21.3716 30.1055 m
-75.3706 84.1055 l
-S
-21.3716 24.1055 m
-81.3706 84.1055 l
-S
-21.3716 18.1055 m
-87.3706 84.1055 l
-S
-21.3716 12.1055 m
-93.3706 84.1055 l
-S
-21.3716 6.1055 m
-99.3706 84.1055 l
-S
-21.3716 0.1064 m
-105.3706 84.1055 l
-S
-27.3716 0.1064 m
-105.3706 78.1055 l
-S
-33.3706 0.1064 m
-105.3706 72.1055 l
-S
-39.3706 0.1064 m
-105.3706 66.1055 l
-S
-45.3706 0.1064 m
-105.3706 60.1055 l
-S
-51.3706 0.1064 m
-105.3706 54.1055 l
-S
-57.3706 0.1064 m
-105.3706 48.1055 l
-S
-63.3706 0.1064 m
-105.3706 42.1055 l
-S
-69.3706 0.1064 m
-105.3706 36.1055 l
-S
-75.3706 0.1064 m
-105.3706 30.1055 l
-S
-81.3706 0.1064 m
-105.3706 24.1055 l
-S
-87.3706 0.1064 m
-105.3706 18.1055 l
-S
-93.3706 0.1064 m
-105.3706 12.1055 l
-S
-2 j
-0.106 63.1211 m
-10.106 73.1211 L
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI3_BeginPattern: (white dots)
-(white dots) 0.375 0.6885 72.375 72.6885 [
-%AI3_Tile
-(0 O 0 R 1 g
- 1 G
-) @
-(
-%AI6_BeginPatternLayer
-800 Ar
-1 J 0 j 0.75 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-13.3115 3.1885 m
-13.3115 3.1885 l
-S
-1.5 3.375 m
-1.5 3.375 l
-S
-10.875 4.6885 m
-10.875 4.6885 l
-S
-20.0615 5.8135 m
-20.0615 5.8135 l
-S
-4.125 0.9385 m
-4.125 0.9385 l
-S
-7.5 7.3135 m
-7.5 7.3135 l
-S
-24.9365 2.4385 m
-24.9365 2.4385 l
-S
-27.375 1.125 m
-27.375 1.125 l
-S
-29.4365 5.4385 m
-29.4365 5.4385 l
-S
-41.25 6.375 m
-41.25 6.375 l
-S
-49.6865 5.0635 m
-49.6865 5.0635 l
-S
-35.4365 6.9385 m
-35.4365 6.9385 l
-S
-24.9365 6.9385 m
-24.9365 6.9385 l
-S
-15.5615 6.9385 m
-15.5615 6.9385 l
-S
-44.25 9.5635 m
-44.25 9.5635 l
-S
-47.0615 1.3135 m
-47.0615 1.3135 l
-S
-18.9365 0.9385 m
-18.9365 0.9385 l
-S
-32.8115 2.25 m
-32.8115 2.25 l
-S
-40.6865 0.75 m
-40.6865 0.75 l
-S
-51 24.5635 m
-51 24.5635 l
-S
-58.6865 24.9385 m
-58.6865 24.9385 l
-S
-63.1865 24.375 m
-63.1865 24.375 l
-S
-67.3115 2.0635 m
-67.3115 2.0635 l
-S
-52.6865 11.8135 m
-52.6865 11.8135 l
-S
-70.875 17.8135 m
-70.875 17.8135 l
-S
-71.4365 4.6885 m
-71.4365 4.6885 l
-S
-64.3115 19.875 m
-64.3115 19.875 l
-S
-62.25 1.125 m
-62.25 1.125 l
-S
-54 20.25 m
-54 20.25 l
-S
-52.125 6 m
-52.125 6 l
-S
-57.75 17.625 m
-57.75 17.625 l
-S
-61.3115 16.875 m
-61.3115 16.875 l
-S
-56.8115 3.375 m
-56.8115 3.375 l
-S
-61.6865 9.5635 m
-61.6865 9.5635 l
-S
-58.3115 11.25 m
-58.3115 11.25 l
-S
-67.5 7.875 m
-67.5 7.875 l
-S
-69.5615 12.75 m
-69.5615 12.75 l
-S
-65.4365 13.875 m
-65.4365 13.875 l
-S
-2.0615 16.125 m
-2.0615 16.125 l
-S
-29.625 10.3135 m
-29.625 10.3135 l
-S
-15.9365 21.375 m
-15.9365 21.375 l
-S
-5.25 11.8135 m
-5.25 11.8135 l
-S
-19.125 18.5635 m
-19.125 18.5635 l
-S
-10.125 21.9385 m
-10.125 21.9385 l
-S
-18.9365 24.5635 m
-18.9365 24.5635 l
-S
-21.75 16.3135 m
-21.75 16.3135 l
-S
-21 12.75 m
-21 12.75 l
-S
-7.5 17.25 m
-7.5 17.25 l
-S
-13.6865 12.375 m
-13.6865 12.375 l
-S
-15.375 15.75 m
-15.375 15.75 l
-S
-30.5615 22.875 m
-30.5615 22.875 l
-S
-36.375 15.375 m
-36.375 15.375 l
-S
-42.75 13.3135 m
-42.75 13.3135 l
-S
-47.0615 20.0635 m
-47.0615 20.0635 l
-S
-47.25 14.0635 m
-47.25 14.0635 l
-S
-29.0615 20.4385 m
-29.0615 20.4385 l
-S
-31.125 15.1885 m
-31.125 15.1885 l
-S
-26.4365 17.0635 m
-26.4365 17.0635 l
-S
-39.5615 17.4385 m
-39.5615 17.4385 l
-S
-43.3115 23.25 m
-43.3115 23.25 l
-S
-44.4365 17.4385 m
-44.4365 17.4385 l
-S
-26.8115 25.125 m
-26.8115 25.125 l
-S
-49.6865 20.625 m
-49.6865 20.625 l
-S
-36 24.5635 m
-36 24.5635 l
-S
-36.375 20.625 m
-36.375 20.625 l
-S
-3.1865 24 m
-3.1865 24 l
-S
-5.625 24.9385 m
-5.625 24.9385 l
-S
-3.75 70.875 m
-3.75 70.875 l
-S
-10.5 66.5635 m
-10.5 66.5635 l
-S
-4.5 66.375 m
-4.5 66.375 l
-S
-22.875 69 m
-22.875 69 l
-S
-31.5 71.625 m
-31.5 71.625 l
-S
-47.25 68.0635 m
-47.25 68.0635 l
-S
-34.125 67.5 m
-34.125 67.5 l
-S
-23.25 65.625 m
-23.25 65.625 l
-S
-13.6865 70.3135 m
-13.6865 70.3135 l
-S
-16.3115 67.5 m
-16.3115 67.5 l
-S
-41.625 65.4385 m
-41.625 65.4385 l
-S
-7.875 69.1885 m
-7.875 69.1885 l
-S
-30 65.25 m
-30 65.25 l
-S
-11.0615 63.9385 m
-11.0615 63.9385 l
-S
-34.875 63.75 m
-34.875 63.75 l
-S
-17.0615 72 m
-17.0615 72 l
-S
-37.3115 71.4385 m
-37.3115 71.4385 l
-S
-42.1865 69.375 m
-42.1865 69.375 l
-S
-45.375 64.3135 m
-45.375 64.3135 l
-S
-13.3115 48.1885 m
-13.3115 48.1885 l
-S
-1.5 48.375 m
-1.5 48.375 l
-S
-5.8115 42.375 m
-5.8115 42.375 l
-S
-3.75 36 m
-3.75 36 l
-S
-10.5 31.6885 m
-10.5 31.6885 l
-S
-4.5 31.5 m
-4.5 31.5 l
-S
-10.875 49.6885 m
-10.875 49.6885 l
-S
-20.0615 50.8135 m
-20.0615 50.8135 l
-S
-4.125 45.9385 m
-4.125 45.9385 l
-S
-7.5 52.3135 m
-7.5 52.3135 l
-S
-24.9365 47.4385 m
-24.9365 47.4385 l
-S
-27.375 46.125 m
-27.375 46.125 l
-S
-7.875 39.1885 m
-7.875 39.1885 l
-S
-22.875 34.125 m
-22.875 34.125 l
-S
-31.5 36.75 m
-31.5 36.75 l
-S
-29.4365 50.4385 m
-29.4365 50.4385 l
-S
-41.25 51.375 m
-41.25 51.375 l
-S
-27.1865 39.375 m
-27.1865 39.375 l
-S
-47.25 33.1885 m
-47.25 33.1885 l
-S
-34.125 32.625 m
-34.125 32.625 l
-S
-23.25 30.75 m
-23.25 30.75 l
-S
-13.6865 35.4385 m
-13.6865 35.4385 l
-S
-16.3115 32.625 m
-16.3115 32.625 l
-S
-39.125 30.1885 m
-39.125 30.1885 l
-S
-49.3115 39.75 m
-49.3115 39.75 l
-S
-30.5615 41.8135 m
-30.5615 41.8135 l
-S
-49.6865 50.0635 m
-49.6865 50.0635 l
-S
-35.4365 51.9385 m
-35.4365 51.9385 l
-S
-7.875 34.3135 m
-7.875 34.3135 l
-S
-24.9365 51.9385 m
-24.9365 51.9385 l
-S
-15.5615 51.9385 m
-15.5615 51.9385 l
-S
-30 30.375 m
-30 30.375 l
-S
-11.0615 29.0635 m
-11.0615 29.0635 l
-S
-44.25 54.5635 m
-44.25 54.5635 l
-S
-34.875 28.875 m
-34.875 28.875 l
-S
-45.125 47.6885 m
-45.125 47.6885 l
-S
-15 42.75 m
-15 42.75 l
-S
-11.0615 42.375 m
-11.0615 42.375 l
-S
-21.1865 40.125 m
-21.1865 40.125 l
-S
-22.125 43.5 m
-22.125 43.5 l
-S
-18.9365 45.9385 m
-18.9365 45.9385 l
-S
-17.0615 37.125 m
-17.0615 37.125 l
-S
-46.3115 42.75 m
-46.3115 42.75 l
-S
-32.8115 47.25 m
-32.8115 47.25 l
-S
-39 42.375 m
-39 42.375 l
-S
-40.6865 45.75 m
-40.6865 45.75 l
-S
-37.3115 36.5635 m
-37.3115 36.5635 l
-S
-42.1865 34.5 m
-42.1865 34.5 l
-S
-43.3115 38.625 m
-43.3115 38.625 l
-S
-45.375 29.4385 m
-45.375 29.4385 l
-S
-50.25 29.625 m
-50.25 29.625 l
-S
-54.9365 27.75 m
-54.9365 27.75 l
-S
-55.875 52.875 m
-55.875 52.875 l
-S
-54.1865 34.3135 m
-54.1865 34.3135 l
-S
-60.75 27.375 m
-60.75 27.375 l
-S
-55.6865 41.0635 m
-55.6865 41.0635 l
-S
-61.6865 45.375 m
-61.6865 45.375 l
-S
-66.375 28.6885 m
-66.375 28.6885 l
-S
-72.5615 27.5635 m
-72.5615 27.5635 l
-S
-68.0615 43.3135 m
-68.0615 43.3135 l
-S
-72.375 50.0635 m
-72.375 50.0635 l
-S
-72.5615 44.0635 m
-72.5615 44.0635 l
-S
-72.5615 33.1885 m
-72.5615 33.1885 l
-S
-54.375 50.4385 m
-54.375 50.4385 l
-S
-53.25 59.625 m
-53.25 59.625 l
-S
-51.1865 38.25 m
-51.1865 38.25 l
-S
-59.125 42.1885 m
-59.125 42.1885 l
-S
-51.75 47.0635 m
-51.75 47.0635 l
-S
-56.625 64.5 m
-56.625 64.5 l
-S
-57.9365 66.9385 m
-57.9365 66.9385 l
-S
-64.875 47.4385 m
-64.875 47.4385 l
-S
-69.9365 62.4385 m
-69.9365 62.4385 l
-S
-67.3115 71.0635 m
-67.3115 71.0635 l
-S
-53.625 69 m
-53.625 69 l
-S
-64.6865 66.75 m
-64.6865 66.75 l
-S
-68.625 53.25 m
-68.625 53.25 l
-S
-71.4365 55.875 m
-71.4365 55.875 l
-S
-62.25 70.125 m
-62.25 70.125 l
-S
-69.75 47.4385 m
-69.75 47.4385 l
-S
-52.125 64.5 m
-52.125 64.5 l
-S
-52.125 55.125 m
-52.125 55.125 l
-S
-66 31.125 m
-66 31.125 l
-S
-63.75 39 m
-63.75 39 l
-S
-60.1865 33 m
-60.1865 33 l
-S
-68.8115 37.3135 m
-68.8115 37.3135 l
-S
-61.3115 54.5635 m
-61.3115 54.5635 l
-S
-61.6865 50.625 m
-61.6865 50.625 l
-S
-63.9365 60.75 m
-63.9365 60.75 l
-S
-60.5615 61.6885 m
-60.5615 61.6885 l
-S
-58.125 58.5 m
-58.125 58.5 l
-S
-66.9365 56.625 m
-66.9365 56.625 l
-S
-56.8115 72.375 m
-56.8115 72.375 l
-S
-46.125 25.875 m
-46.125 25.875 l
-S
-41.625 26.625 m
-41.625 26.625 l
-S
-10.125 60.75 m
-10.125 60.75 l
-S
-18.5615 59.4385 m
-18.5615 59.4385 l
-S
-4.3115 61.3135 m
-4.3115 61.3135 l
-S
-15.9365 55.6885 m
-15.9365 55.6885 l
-S
-1.6865 56.625 m
-1.6865 56.625 l
-S
-9.5615 55.125 m
-9.5615 55.125 l
-S
-24.75 62.25 m
-24.75 62.25 l
-S
-30.5615 54.75 m
-30.5615 54.75 l
-S
-41.25 59.4385 m
-41.25 59.4385 l
-S
-24.625 58.1885 m
-24.625 58.1885 l
-S
-20.625 56.4385 m
-20.625 56.4385 l
-S
-33.75 56.8135 m
-33.75 56.8135 l
-S
-37.5 62.625 m
-37.5 62.625 l
-S
-38.625 56.8135 m
-38.625 56.8135 l
-S
-43.875 60 m
-43.875 60 l
-S
-30.5615 60 m
-30.5615 60 l
-S
-15.1865 28.5 m
-15.1865 28.5 l
-S
-4.125 72.9385 m
-4.125 72.9385 l
-S
-27.375 73.125 m
-27.375 73.125 l
-S
-18.9365 72.9385 m
-18.9365 72.9385 l
-S
-40.6865 72.75 m
-40.6865 72.75 l
-S
-62.25 73.125 m
-62.25 73.125 l
-S
-56.8115 0.375 m
-56.8115 0.375 l
-S
-0.5615 27.5635 m
-0.5615 27.5635 l
-S
-0.375 50.0635 m
-0.375 50.0635 l
-S
-0.5615 44.0635 m
-0.5615 44.0635 l
-S
-0.5615 33.1885 m
-0.5615 33.1885 l
-S
-%AI6_EndPatternLayer
-) &
-] E
-%AI3_EndPattern
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginBrushPattern
-(New Pattern 9)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7840.7246 8585.25 L
--7840.7246 8555.5381 L
--7883.25 8555.5381 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7 g
--7872.457 8555.7881 m
--7868.6582 8555.7881 -7864.9199 8555.7881 v
--7861.1826 8555.7881 -7861.8242 8558.8838 y
--7845.9258 8558.8838 -7843.4502 8558.8838 v
--7840.9761 8558.8838 -7840.9761 8561.3594 y
--7840.9761 8578.542 l
--7876.541 8578.542 l
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
-f
-0 R
-0.9 G
-0.5 w
--7861.8242 8558.8838 m
--7845.9258 8558.8838 -7843.4502 8558.8838 v
-S
-0.5 G
--7862.8594 8556.2715 m
--7861.4634 8557.1426 -7861.8242 8558.8838 y
-S
-0.7 G
--7864.9199 8555.7881 m
--7863.9858 8555.7881 -7863.3247 8555.9814 -7862.8594 8556.2715 c
-S
-0.9 G
--7876.541 8578.542 m
--7876.541 8558.9004 l
--7875.3906 8558.9004 l
--7875.439 8555.7881 -7872.457 8555.7881 v
--7868.6582 8555.7881 -7864.9199 8555.7881 v
-S
-0.25 G
--7840.9761 8561.3594 m
--7840.9761 8578.542 l
--7876.541 8578.542 l
-S
-0.5 G
--7842.019 8559.2715 m
--7840.9761 8559.9668 -7840.9761 8561.3594 y
-S
-0.7 G
--7843.4502 8558.8838 m
--7842.8306 8558.8838 -7842.3672 8559.0391 -7842.019 8559.2715 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7874.0718 8557.4023 m
--7870.2729 8557.4023 -7866.5342 8557.4023 v
--7862.7954 8557.4023 -7863.439 8560.498 y
--7847.541 8560.498 -7845.0649 8560.498 v
--7842.5903 8560.498 -7842.5903 8562.9727 y
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
-f
-0 R
-0.9 G
-0.5 w
--7863.439 8560.498 m
--7847.541 8560.498 -7845.0649 8560.498 v
-S
-0.5 G
--7864.4746 8557.8867 m
--7863.0767 8558.7578 -7863.439 8560.498 y
-S
-0.7 G
--7866.5342 8557.4023 m
--7865.6006 8557.4023 -7864.9409 8557.5957 -7864.4746 8557.8867 c
-S
-0.9 G
--7878.1558 8580.1563 m
--7878.1558 8560.5146 l
--7877.0054 8560.5146 l
--7877.0542 8557.4023 -7874.0718 8557.4023 v
--7870.2729 8557.4023 -7866.5342 8557.4023 v
-S
-0.25 G
--7842.5903 8562.9727 m
--7842.5903 8580.1563 l
--7878.1558 8580.1563 l
-S
-0.5 G
--7843.6338 8560.8848 m
--7842.5903 8561.5811 -7842.5903 8562.9727 y
-S
-0.7 G
--7845.0649 8560.498 m
--7844.4458 8560.498 -7843.981 8560.6533 -7843.6338 8560.8848 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7875.6846 8559.0176 m
--7871.8882 8559.0176 -7868.1489 8559.0176 v
--7864.4111 8559.0176 -7865.0527 8562.1123 y
--7849.1538 8562.1123 -7846.6802 8562.1123 v
--7844.2046 8562.1123 -7844.2046 8564.5879 y
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
-f
-0 R
-0.9 G
-0.5 w
--7865.0527 8562.1123 m
--7849.1538 8562.1123 -7846.6802 8562.1123 v
-S
-0.5 G
--7866.0898 8559.5 m
--7864.6929 8560.3711 -7865.0527 8562.1123 y
-S
-0.7 G
--7868.1489 8559.0176 m
--7867.2144 8559.0176 -7866.5542 8559.21 -7866.0898 8559.5 c
-S
-0.9 G
--7879.771 8581.7715 m
--7879.771 8562.1289 l
--7878.6191 8562.1289 l
--7878.6689 8559.0176 -7875.6846 8559.0176 v
--7871.8882 8559.0176 -7868.1489 8559.0176 v
-S
-0.25 G
--7844.2046 8564.5879 m
--7844.2046 8581.7715 l
--7879.771 8581.7715 l
-S
-0.5 G
--7845.249 8562.5 m
--7844.2046 8563.1953 -7844.2046 8564.5879 y
-S
-0.7 G
--7846.6802 8562.1123 m
--7846.061 8562.1123 -7845.5962 8562.2676 -7845.249 8562.5 c
-S
-U
-u
-0 O
-0.7 g
-1 w
--7877.2993 8560.6318 m
--7873.5034 8560.6318 -7869.7642 8560.6318 v
--7866.0254 8560.6318 -7866.667 8563.7275 y
--7850.769 8563.7275 -7848.2935 8563.7275 v
--7845.8193 8563.7275 -7845.8193 8566.2031 y
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
-f
-0 R
-0.9 G
-0.5 w
--7866.667 8563.7275 m
--7850.769 8563.7275 -7848.2935 8563.7275 v
-S
-0.5 G
--7867.7046 8561.1152 m
--7866.3071 8561.9863 -7866.667 8563.7275 y
-S
-0.7 G
--7869.7642 8560.6318 m
--7868.8286 8560.6318 -7868.1689 8560.8252 -7867.7046 8561.1152 c
-S
-0.9 G
--7881.3857 8583.3867 m
--7881.3857 8563.7441 l
--7880.2334 8563.7441 l
--7880.2842 8560.6318 -7877.2993 8560.6318 v
--7873.5034 8560.6318 -7869.7642 8560.6318 v
-S
-0.25 G
--7845.8193 8566.2031 m
--7845.8193 8583.3867 l
--7881.3857 8583.3867 l
-S
-0.5 G
--7846.8638 8564.1143 m
--7845.8193 8564.8105 -7845.8193 8566.2031 y
-S
-0.7 G
--7848.2935 8563.7275 m
--7847.6753 8563.7275 -7847.2114 8563.8828 -7846.8638 8564.1143 c
-S
-U
-u
-0 O
-0.8 g
-1 w
--7878.9146 8562.2461 m
--7875.1167 8562.2461 -7871.3794 8562.2461 v
--7867.6401 8562.2461 -7868.2817 8565.3418 y
--7852.3838 8565.3418 -7849.9087 8565.3418 v
--7847.4346 8565.3418 -7847.4346 8567.8174 y
--7847.4346 8585 l
--7883.001 8585 l
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
-f
-0 R
-0.9 G
-0.5 w
--7868.2817 8565.3418 m
--7852.3838 8565.3418 -7849.9087 8565.3418 v
-S
-0.5 G
--7869.3184 8562.7295 m
--7867.9214 8563.6006 -7868.2817 8565.3418 y
-S
-0.7 G
--7871.3794 8562.2461 m
--7870.4438 8562.2461 -7869.7842 8562.4395 -7869.3184 8562.7295 c
-S
-0.9 G
--7883.001 8585 m
--7883.001 8565.3574 l
--7881.8481 8565.3574 l
--7881.8994 8562.2461 -7878.9146 8562.2461 v
--7875.1167 8562.2461 -7871.3794 8562.2461 v
-S
-0.25 G
--7847.4346 8567.8174 m
--7847.4346 8585 l
--7883.001 8585 l
-S
-0.5 G
--7848.4785 8565.7285 m
--7847.4346 8566.4238 -7847.4346 8567.8174 y
-S
-0.7 G
--7849.9087 8565.3418 m
--7849.29 8565.3418 -7848.8262 8565.4971 -7848.4785 8565.7285 c
-S
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 10)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7815.2593 8585.25 L
--7815.2593 8557.0195 L
--7883.25 8557.0195 L
--7883.25 8585.25 L
-n
-0 O
-0.8 g
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
--7817.0591 8570.4502 l
--7829.7202 8574.4063 l
--7835.7866 8570.4502 l
--7835.5234 8580.209 l
-f
-0 R
-0.9 G
-0.5 w
--7816.7871 8570.3242 m
--7829.7202 8574.4063 l
-S
-0.5 G
--7815.4785 8573.3516 m
--7817.0591 8570.4502 l
-S
-0.25 G
--7835.5234 8580.209 m
--7815.4785 8573.3516 l
-S
-0.5 G
--7829.7202 8574.4063 m
--7835.7866 8570.4502 l
-S
-0 O
-0.8 g
-1 w
--7855.5679 8562.7998 m
--7843.437 8557.5254 l
--7840.0073 8561.7441 l
--7855.5679 8562.7998 l
-f
-1 Ap
-0.57 g
--7835.2598 8582.0547 m
--7881.6802 8582.0547 L
--7881.6802 8584.9551 L
--7835.2598 8584.9551 L
--7835.2598 8582.0547 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
--7843.437 8557.5254 m
--7840.0073 8561.7441 l
-S
-0.9 G
--7855.5679 8562.7998 m
--7842.875 8557.248 l
-S
-0 O
-0.8 g
-1 w
--7883.001 8560.7627 m
--7883.001 8582.0859 l
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
--7837.6338 8560.8223 l
--7883.001 8560.7627 l
-f
-0 R
-0.5 G
-0.5 w
--7883.001 8576.5166 m
--7834.2046 8576.5166 l
-S
--7880.0986 8564.1191 m
--7870.6025 8564.1191 l
-S
--7880.0986 8565.7676 m
--7870.6025 8565.7676 l
-S
--7880.0986 8567.415 m
--7870.6025 8567.415 l
-S
--7880.0986 8569.0635 m
--7870.6025 8569.0635 l
-S
--7880.0986 8570.7109 m
--7870.6025 8570.7109 l
-S
--7834.2046 8564.9121 m
--7837.6338 8560.8223 l
-S
-0.25 G
--7883.001 8582.0859 m
--7834.2046 8582.0859 l
--7834.2046 8564.9121 l
-S
-0.9 G
--7837.6338 8560.793 m
--7883.001 8560.793 l
--7883.001 8582.3555 l
-S
-0.25 G
--7835.2598 8582.0859 m
--7835.2598 8585 l
--7881.6714 8585 l
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 19)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.25 8585.25 m
--7836.6338 8585.25 L
--7836.6338 8549.6348 L
--7883.25 8549.6348 L
--7883.25 8585.25 L
-n
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
--7836.9722 8585 m
--7836.9722 8582.9805 l
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
--7836.9722 8585 l
-b
-0.8748 G
-2 J 0 j
--7859.8857 8579.5479 m
--7876.439 8579.5479 l
--7883.001 8582.9805 l
--7883.001 8585 l
-S
--7836.9722 8582.9805 m
--7843.333 8579.5479 l
--7859.8857 8579.5479 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
--7876.3394 8580.7598 m
--7880.377 8582.9805 l
--7839.7993 8582.9805 l
--7843.2319 8580.7598 l
--7876.3394 8580.7598 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
--7871.125 8576.6523 m
--7868.8462 8576.6094 L
--7859.7446 8575.041 L
--7850.4634 8576.6094 L
--7848.6694 8576.6094 L
--7848.729 8578.4512 L
--7871.125 8578.4512 L
--7871.125 8576.6523 L
-f
-0 R
-0.25 G
-0.5 w
--7848.6978 8576.6523 m
--7848.7905 8578.4512 L
--7871.1567 8578.4512 L
-S
-0.9 G
--7850.498 8576.6523 m
--7848.6978 8576.6523 L
-S
-0.25 G
--7859.8042 8575.041 m
--7850.498 8576.6523 L
-S
-0.9 G
--7871.1567 8578.4512 m
--7871.1567 8576.6523 L
--7868.9033 8576.6523 L
--7859.8042 8575.041 L
-S
-U
-u
-0 O
-0.7 g
-1 w
--7873.3672 8573.5781 m
--7864.0703 8573.5313 L
--7859.7119 8571.8047 L
--7855.1343 8573.5313 L
--7846.4214 8573.5313 L
--7846.4927 8575.5557 L
--7873.3672 8575.5557 L
--7873.3672 8573.5781 L
-f
-0 R
-0.25 G
-0.5 w
--7846.4546 8573.5781 m
--7846.5649 8575.5557 L
--7873.4038 8575.5557 L
-S
-0.9 G
--7855.1758 8573.5781 m
--7846.4546 8573.5781 L
-S
-0.25 G
--7859.7817 8571.8047 m
--7855.1758 8573.5781 L
-S
-0.9 G
--7873.4038 8575.5557 m
--7873.4038 8573.5781 L
--7864.1406 8573.5781 L
--7859.7817 8571.8047 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
--7874.8838 8572.75 m
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
--7844.9922 8551.0508 L
--7844.9922 8572.4648 L
--7845.8022 8573.6045 L
--7874.0366 8573.6045 l
--7874.8838 8572.75 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
--7874.0366 8573.6045 m
--7874.8838 8572.75 L
--7874.8911 8550.8809 l
--7873.9082 8549.8848 L
--7845.9302 8549.9121 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
--7848.0239 8570.7168 m
--7848.0054 8552.7617 L
--7871.8994 8552.7617 L
--7871.9014 8570.7148 L
--7848.0239 8570.7168 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
--7843.333 8579.5479 m
--7859.8857 8579.5479 L
--7876.439 8579.5479 L
--7883.001 8582.9805 L
--7883.001 8585 L
--7836.9722 8585 L
--7836.9722 8582.9805 L
--7843.333 8579.5479 L
-s
--7874.0366 8573.6045 m
--7873.4038 8573.6045 L
--7873.4038 8575.5557 L
--7873.3672 8575.5449 L
--7873.3672 8575.5527 L
--7873.4038 8575.5557 L
--7873.3672 8575.5557 L
--7862.731 8575.5557 L
--7868.8462 8576.6094 L
--7871.125 8576.6523 L
--7871.1567 8576.6523 L
--7871.1567 8578.4512 L
--7871.125 8578.4414 L
--7871.125 8578.4482 L
--7871.1567 8578.4512 L
--7871.125 8578.4512 L
--7848.7905 8578.4512 L
--7848.729 8578.4512 L
--7848.6694 8576.6094 L
--7850.4634 8576.6094 L
--7856.7002 8575.5557 L
--7846.5649 8575.5557 L
--7846.4927 8575.5557 L
--7846.4233 8573.6045 L
--7845.8022 8573.6045 L
--7844.9922 8572.4648 L
--7844.9922 8551.0508 L
--7845.9302 8549.9121 L
--7873.9082 8549.8848 L
--7874.8911 8550.8809 L
--7874.8838 8572.75 L
--7874.0366 8573.6045 L
-s
-U
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 21)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7879.2002 8578.6211 m
--7836.251 8578.6211 L
--7836.251 8493.8447 L
--7879.2002 8493.8447 L
--7879.2002 8578.6211 L
-n
-0 To
-1 0 0 -1 -7862.7256 8561.0957 0 Tp
-0 Tv
-TP
--9.3189 0 Td
-0 Tr
-0 O
-0 g
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--4.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Pr) Tx 1 -15 Tk
-(int\r) Tx 1 0 Tk
--3.9555 -11 Td
-(Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-u
-0 R
-0 G
-0.25 w
--7841.3096 8533.9443 m
-B
-0.9 g
--7846.2407 8536.3604 m
--7846.2407 8538.249 L
--7840.542 8538.249 L
--7846.2407 8536.3604 L
-b
-0.65 g
--7846.2407 8538.249 m
--7846.2407 8547.4404 L
--7840.542 8547.4404 L
--7840.542 8538.249 L
--7846.2407 8538.249 L
-b
-0.9 g
--7846.2407 8527.7217 m
--7846.2407 8528.7373 L
--7839.501 8528.7373 L
--7846.2407 8527.7217 L
-b
-0.65 g
--7846.2407 8528.7373 m
--7846.2407 8530.7754 L
--7839.501 8530.7754 L
--7839.501 8528.7373 L
--7846.2407 8528.7373 L
-b
-0.9 g
--7846.2407 8531.4688 m
--7846.2407 8532.9473 L
--7836.376 8532.9473 L
--7846.2407 8531.4688 L
-b
-0.65 g
--7846.2407 8532.9473 m
--7846.2407 8534.9424 L
--7836.376 8534.9424 L
--7836.376 8532.9473 L
--7846.2407 8532.9473 L
-b
-0.8158 g
--7846.2407 8528.7373 m
--7846.2407 8505.7803 L
--7879.0742 8505.7803 L
--7879.0742 8554.1514 L
--7846.2407 8554.1514 L
--7846.2407 8538.249 L
--7846.2407 8532.9473 L
--7846.2407 8528.7373 L
-b
--7862.6567 8529.9658 m
-B
-0.4385 g
--7879.0742 8493.9697 m
--7846.2407 8493.9697 L
--7846.2407 8505.7803 L
--7879.0742 8505.7803 L
--7879.0742 8493.9697 L
-b
--7862.7954 8499.876 m
-B
-1 g
--7859.2881 8507.8643 m
--7849.9146 8507.8643 L
--7849.9146 8509.9482 L
--7859.2881 8509.9482 L
--7859.2881 8507.8643 L
-b
--7854.6025 8508.9053 m
-B
--7879.1377 8512.5215 m
--7846.395 8512.5215 L
-S
--7879.1377 8536.5332 m
--7846.2407 8536.5332 L
-S
-0 O
-0 g
--7842.8706 8529.7568 m
-B
--7843.3887 8542.8447 m
-B
-0.31 g
--7870.2759 8493.9697 m
--7846.2407 8493.9697 L
--7846.2407 8496.1523 L
--7864.5498 8496.1523 L
--7866.665 8498.2686 L
--7866.665 8505.8193 L
--7870.2759 8505.8193 L
--7870.2759 8493.9697 L
-b
-U
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 22)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7876.001 8578.6211 m
--7827.9502 8578.6211 L
--7827.9502 8497.4414 L
--7876.001 8497.4414 L
--7876.001 8578.6211 L
-n
-u
-u
-u
-0 O
-0.7 g
--7869.2202 8497.6914 m
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
-f
-0 R
-0.25 G
-0.5 w
--7834.0034 8498.543 m
--7834.0034 8562.8496 L
--7834.0791 8563.1855 L
--7834.3569 8563.4355 L
--7834.7935 8563.6504 L
--7835.2578 8563.707 L
--7869.2202 8563.707 L
--7869.6855 8563.6504 L
--7870.0361 8563.4355 L
--7870.3618 8563.1855 L
--7870.4399 8562.8496 L
-S
-0.9 G
--7870.4399 8562.8496 m
--7870.4399 8498.543 L
--7870.3618 8498.2148 L
--7870.0361 8497.9102 L
--7869.6855 8497.7441 L
--7869.2202 8497.6914 L
--7835.2578 8497.6914 L
--7834.7935 8497.7441 L
--7834.3569 8497.9102 L
--7834.0791 8498.2148 L
--7834.0034 8498.543 L
-S
-1 Ap
-0 O
-0.8 g
-0.25 G
-2 J 2 M
--7838.79 8507.9629 m
--7865.4775 8507.9629 L
--7865.4775 8560.2607 L
--7838.79 8560.2607 L
--7838.79 8507.9629 L
-b
-u
--7838.79 8523.8691 m
--7865.4736 8523.8691 L
--7865.4736 8520.0957 L
--7838.79 8520.0957 L
--7838.79 8523.8691 L
-b
--7838.79 8520.0615 m
--7865.4736 8520.0615 L
--7865.4736 8516.2871 L
--7838.79 8516.2871 L
--7838.79 8520.0615 L
-b
-U
-0 Ap
-0.25 g
-0 J 1 w 4 M
--7842.3818 8509.4375 m
--7843.2319 8509.4375 L
--7862.2729 8509.4375 L
--7862.2729 8510.3271 L
--7855.8018 8510.3271 L
--7855.8018 8510.9629 L
--7848.8486 8510.9629 L
--7848.8486 8510.3271 L
--7842.3818 8510.3271 L
--7842.3818 8509.4375 L
-f
-1 Ap
-0.6 g
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7842.8271 8511.3691 m
--7846.8706 8511.3691 L
--7846.8706 8510.7324 L
--7842.8271 8510.7324 L
--7842.8271 8511.3691 L
-b
-u
-0.8 g
--7840.8057 8514.5547 m
--7863.4463 8514.5547 L
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
--7840.8057 8514.5547 L
-b
--7863.4463 8514.5547 m
--7863.4463 8513.0664 L
--7840.8057 8513.0664 L
-S
-0.9 G
--7840.8057 8513.0664 m
--7840.8057 8514.5547 L
--7863.4463 8514.5547 L
-S
-U
-0 O
-0.7 g
-0 J 1 w 4 M
--7841.1318 8515.6172 m
--7845.1743 8515.6172 L
--7845.1743 8514.9805 L
--7841.1318 8514.9805 L
--7841.1318 8515.6172 L
-f
-0 R
-0.25 G
-2 J 0.5 w 2 M
--7841.1318 8514.9805 m
--7841.1318 8515.6172 L
--7845.1743 8515.6172 L
-S
-u
-u
--7861.5903 8500.6797 m
--7861.5903 8503.7402 L
--7866.9287 8503.7402 L
-S
--7861.5903 8503.7393 m
--7861.5903 8506.7578 L
--7866.9287 8506.7578 L
-S
-U
-u
-0.9 G
--7866.9287 8503.7129 m
--7866.9287 8500.6934 L
--7861.5903 8500.6934 L
-S
--7866.9287 8506.7578 m
--7866.9287 8503.7393 L
--7861.5903 8503.7393 L
-S
-U
-U
-u
-u
-0.25 G
--7837.7178 8500.6797 m
--7837.7178 8503.7402 L
--7843.0542 8503.7402 L
-S
--7837.7178 8503.7393 m
--7837.7178 8506.7578 L
--7843.0542 8506.7578 L
-S
-U
-u
-0.9 G
--7843.0542 8503.7129 m
--7843.0542 8500.6934 L
--7837.7178 8500.6934 L
-S
--7843.0542 8506.7578 m
--7843.0542 8503.7393 L
--7837.7178 8503.7393 L
-S
-U
-U
-0 O
-0.8 g
-0 J 1 w 4 M
--7832.144 8564.9395 m
--7872.3799 8564.9395 L
--7870.6865 8562.6406 L
--7833.8359 8562.6406 L
--7832.144 8564.9395 L
-f
-0 R
-0.9 G
-0.5 w
--7870.4072 8562.4785 m
--7872.3799 8564.9395 L
--7869.9111 8564.9395 l
-S
-0.25 G
--7834.083 8562.3672 m
--7832.144 8564.9395 L
--7872.0337 8564.9395 l
-S
-U
-0 Ap
-0.15 G
--7833.8359 8562.6406 m
--7833.874 8562.6406 L
--7834.0034 8562.4727 L
--7834.0034 8498.543 L
--7834.0791 8498.2148 L
--7834.3569 8497.9102 L
--7834.7935 8497.7441 L
--7835.2578 8497.6914 L
--7869.2202 8497.6914 L
--7869.6855 8497.7441 L
--7870.0361 8497.9102 L
--7870.3618 8498.2148 L
--7870.4399 8498.543 L
--7870.4399 8562.5195 L
--7870.5386 8562.6406 L
--7870.6865 8562.6406 L
--7872.3799 8564.9395 L
--7872.0337 8564.9395 L
--7869.9111 8564.9395 L
--7832.144 8564.9395 L
--7833.8359 8562.6406 L
-s
--7870.4399 8562.5195 m
--7833.8359 8562.5195 l
-S
-U
-U
-0 To
-1 0 0 -1 -7851.9761 8576.5957 0 Tp
-0 Tv
-TP
--24.0247 0 Td
-0 Tr
-0 O
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-36 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(DNS Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 23)
-0 A
-u
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7878.9351 8565.3359 m
--7830.6465 8565.3359 L
--7830.6465 8506.8223 L
--7878.9351 8506.8223 L
--7878.9351 8565.3359 L
-n
-0 O
-0.64 g
--7830.6465 8513.9863 m
--7832.5977 8506.8223 L
--7849.127 8506.8223 L
--7851.001 8513.9863 L
--7858.666 8513.9863 L
--7860.7529 8506.8223 L
--7877.0625 8506.8223 L
--7878.9351 8513.9863 L
--7878.9351 8514.0137 L
--7830.6465 8514.0137 L
--7830.6465 8513.9863 L
-f
-0.92 g
--7878.9351 8514.0137 m
--7878.9351 8565.3164 L
--7870.5898 8565.3164 L
--7870.5898 8561.6152 L
--7870.5386 8561.6152 L
--7870.5386 8514.0137 L
--7878.9351 8514.0137 L
-f
--7830.6465 8514.0137 m
--7838.7871 8514.0137 L
--7838.7871 8565.3359 L
--7830.6465 8565.3359 L
--7830.6465 8514.0137 L
-f
-0.8158 g
--7870.5386 8514.0137 m
--7870.5386 8561.6152 L
--7838.8442 8561.6152 L
--7838.8442 8565.3359 L
--7838.7871 8565.3359 L
--7838.7871 8514.0137 L
--7870.5386 8514.0137 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7858.666 8513.9863 m
--7858.6582 8561.6152 L
-S
--7857.8145 8513.9863 m
--7857.8066 8561.6152 L
-S
--7856.9634 8513.9863 m
--7856.9551 8561.6152 L
-S
--7856.1113 8513.9863 m
--7856.103 8561.6152 L
-S
--7855.2598 8513.9863 m
--7855.252 8561.6152 L
-S
--7854.4082 8513.9863 m
--7854.3999 8561.6152 L
-S
--7853.5566 8513.9863 m
--7853.5488 8561.6152 L
-S
--7853.5718 8513.9863 m
--7853.563 8561.6152 L
-S
--7852.7202 8513.9863 m
--7852.7114 8561.6152 L
-S
--7851.8682 8513.9863 m
--7851.8594 8561.6152 L
-S
--7851.0161 8513.9863 m
--7851.0078 8561.6152 L
-S
-U
-0 To
-1 0 0 -1 -7854.791 8576.5957 0 Tp
-0 Tv
-TP
--21.2094 0 Td
-0 Tr
-0 O
-0 g
-1 w 4 M
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-53.0468 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 0 0 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 4 Tl
-0 Tc
-0 Tw
-(Mainfr) Tx 1 10 Tk
-(ame) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 40)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7884 8586 m
--7835.7114 8586 L
--7835.7114 8500.1016 L
--7884 8500.1016 L
--7884 8586 L
-n
-0 O
-0.64 g
--7835.7114 8507.2656 m
--7837.6626 8500.1016 L
--7854.1919 8500.1016 L
--7856.0654 8507.2656 L
--7863.7305 8507.2656 L
--7865.8174 8500.1016 L
--7882.127 8500.1016 L
--7884 8507.2656 L
--7884 8507.293 L
--7835.7114 8507.293 L
--7835.7114 8507.2656 L
-f
-0.92 g
--7884 8507.293 m
--7884 8585.9805 L
--7875.6543 8585.9805 L
--7875.6543 8582.2793 L
--7875.6025 8582.2793 L
--7875.6025 8507.293 L
--7884 8507.293 L
-f
--7835.7114 8507.293 m
--7843.8511 8507.293 L
--7843.8511 8586 L
--7835.7114 8586 L
--7835.7114 8507.293 L
-f
-0.8158 g
--7875.6025 8507.293 m
--7875.6025 8582.2793 L
--7843.9087 8582.2793 L
--7843.9087 8586 L
--7843.8511 8586 L
--7843.8511 8507.293 L
--7875.6025 8507.293 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
--7863.7305 8507.2656 m
--7863.7222 8582.2793 L
-S
--7862.8794 8507.2656 m
--7862.8711 8582.2793 L
-S
--7862.0273 8507.2656 m
--7862.019 8582.2793 L
-S
--7861.1758 8507.2656 m
--7861.168 8582.2793 L
-S
--7860.3242 8507.2656 m
--7860.3169 8582.2793 L
-S
--7859.4727 8507.2656 m
--7859.4648 8582.2793 L
-S
--7858.6206 8507.2656 m
--7858.6138 8582.2793 L
-S
--7858.6362 8507.2656 m
--7858.6279 8582.2793 L
-S
--7857.7842 8507.2656 m
--7857.7754 8582.2793 L
-S
--7856.9326 8507.2656 m
--7856.9238 8582.2793 L
-S
--7856.0801 8507.2656 m
--7856.0718 8582.2793 L
-S
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 42)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7875.999 8578.6211 m
--7852.9873 8578.6211 L
--7852.9873 8540.5439 L
--7875.999 8540.5439 L
--7875.999 8578.6211 L
-n
-*u
-0 R
-1 G
-1 D
--7858.4966 8549.5801 m
--7858.4966 8551.3926 L
--7858.4966 8551.4912 -7858.5439 8551.5869 -7858.6362 8551.6787 c
--7858.7266 8551.7715 -7858.8608 8551.8604 -7859.0342 8551.9463 c
--7859.2065 8552.0303 -7859.418 8552.1123 -7859.6641 8552.1875 c
--7859.9087 8552.2627 -7860.1895 8552.333 -7860.498 8552.3975 c
--7860.7842 8552.457 -7861.0967 8552.5107 -7861.4282 8552.5586 C
--7861.4282 8552.6797 L
--7861.3481 8552.6797 L
--7861.3481 8552.7451 -7861.3774 8552.8066 -7861.4282 8552.8652 C
--7861.4282 8553.0898 L
--7861.3481 8553.0898 L
--7861.3481 8553.1543 -7861.3774 8553.2158 -7861.4282 8553.2744 C
--7861.4282 8553.499 L
--7861.3481 8553.499 L
--7861.3481 8553.5645 -7861.3774 8553.626 -7861.4282 8553.6846 C
--7861.4282 8553.9092 L
--7861.3481 8553.9092 L
--7861.3481 8553.9736 -7861.3774 8554.0361 -7861.4282 8554.0938 C
--7861.4282 8554.3184 L
--7861.3481 8554.3184 L
--7861.3481 8554.3838 -7861.3774 8554.4443 -7861.4282 8554.5029 C
--7861.4282 8554.7275 L
--7861.3481 8554.7275 L
--7861.3481 8554.793 -7861.3774 8554.8545 -7861.4282 8554.9131 C
--7861.4282 8555.1367 L
--7861.3481 8555.1367 L
--7861.3481 8555.2021 -7861.3774 8555.2637 -7861.4282 8555.3223 C
--7861.4282 8555.5469 L
--7861.3481 8555.5469 L
--7861.3481 8555.6123 -7861.3774 8555.6738 -7861.4282 8555.7324 C
--7861.4282 8555.9561 L
--7861.3481 8555.9561 L
--7861.3481 8556.0215 -7861.3774 8556.083 -7861.4282 8556.1416 C
--7861.4282 8556.3652 L
--7861.3481 8556.3652 L
--7861.3481 8556.4307 -7861.3774 8556.4922 -7861.4282 8556.5508 C
--7861.4282 8556.7754 L
--7861.3481 8556.7754 L
--7861.3481 8556.8408 -7861.3774 8556.9023 -7861.4282 8556.96 C
--7861.4282 8557.1846 L
--7861.3481 8557.1846 L
--7861.3481 8557.25 -7861.3774 8557.3115 -7861.4282 8557.3701 C
--7861.4282 8557.5947 L
--7861.3481 8557.5947 L
--7861.3481 8557.6592 -7861.3774 8557.7217 -7861.4282 8557.7793 C
--7861.4282 8558.0039 L
--7861.3481 8558.0039 L
--7861.3481 8558.0693 -7861.3774 8558.1309 -7861.4282 8558.1885 C
--7861.4282 8558.4131 L
--7861.3481 8558.4131 L
--7861.3481 8558.4785 -7861.3774 8558.54 -7861.4282 8558.5986 C
--7861.4282 8558.8232 L
--7861.3481 8558.8232 L
--7861.3481 8558.8877 -7861.3774 8558.9502 -7861.4282 8559.0078 C
--7861.4282 8559.2324 L
--7861.3481 8559.2324 L
--7861.3481 8559.2979 -7861.3774 8559.3594 -7861.4282 8559.418 C
--7861.4282 8559.6416 L
--7861.3481 8559.6416 L
--7861.3481 8559.707 -7861.3774 8559.7686 -7861.4282 8559.8271 C
--7861.4282 8560.0518 L
--7861.3481 8560.0518 L
--7861.3481 8560.1162 -7861.3774 8560.1787 -7861.4282 8560.2373 C
--7861.4282 8560.4609 L
--7861.3481 8560.4609 L
--7861.3481 8560.5264 -7861.3774 8560.5879 -7861.4282 8560.6465 C
--7861.4282 8560.8701 L
--7861.3481 8560.8701 L
--7861.3481 8560.9355 -7861.3774 8560.9971 -7861.4282 8561.0557 C
--7861.4282 8561.2803 L
--7861.3481 8561.2803 L
--7861.3481 8561.3457 -7861.3774 8561.4072 -7861.4282 8561.4658 C
--7861.4282 8561.6895 L
--7861.3481 8561.6895 L
--7861.3481 8561.7549 -7861.3774 8561.8164 -7861.4282 8561.875 C
--7861.4282 8562.0986 L
--7861.3481 8562.0986 L
--7861.3481 8562.1484 -7861.3682 8562.1953 -7861.3984 8562.2412 C
--7859.6431 8562.499 -7858.4966 8562.9229 -7858.4966 8563.4033 c
--7858.4966 8563.459 -7858.5166 8563.5146 -7858.5474 8563.5693 c
--7858.5166 8563.5146 -7858.4966 8563.459 -7858.4966 8563.4033 C
--7858.4966 8565.2158 L
--7858.4966 8565.3145 -7858.5439 8565.4102 -7858.6362 8565.5029 c
--7858.7266 8565.5947 -7858.8608 8565.6846 -7859.0342 8565.7695 c
--7859.2065 8565.8545 -7859.418 8565.9346 -7859.6641 8566.0107 c
--7859.9087 8566.0859 -7860.1895 8566.1563 -7860.498 8566.2207 c
--7860.8081 8566.2852 -7861.1455 8566.3438 -7861.5098 8566.3945 c
--7861.873 8566.4463 -7862.2622 8566.4893 -7862.6714 8566.5254 c
--7863.0791 8566.5615 -7863.5088 8566.5898 -7863.9546 8566.6084 c
--7864.3984 8566.627 -7864.8594 8566.6367 -7865.3311 8566.6367 c
--7865.8022 8566.6367 -7866.2642 8566.627 -7866.708 8566.6084 c
--7867.1538 8566.5898 -7867.582 8566.5615 -7867.9912 8566.5254 c
--7868.3999 8566.4893 -7868.7881 8566.4463 -7869.1519 8566.3945 c
--7869.5151 8566.3438 -7869.8545 8566.2852 -7870.1631 8566.2207 c
--7870.4727 8566.1563 -7870.752 8566.0859 -7870.998 8566.0107 c
--7871.2441 8565.9346 -7871.4551 8565.8545 -7871.6279 8565.7695 c
--7871.8018 8565.6846 -7871.9351 8565.5947 -7872.0264 8565.5029 c
--7872.1167 8565.4102 -7872.165 8565.3145 -7872.165 8565.2158 C
--7872.165 8563.4033 L
--7872.165 8562.9229 -7871.0186 8562.499 -7869.2642 8562.2412 C
--7869.2935 8562.1953 -7869.3135 8562.1484 -7869.3135 8562.0986 C
--7869.2344 8562.0986 L
--7869.2344 8561.875 L
--7869.2842 8561.8164 -7869.3135 8561.7549 -7869.3135 8561.6895 C
--7869.2344 8561.6895 L
--7869.2344 8561.4658 L
--7869.2842 8561.4072 -7869.3135 8561.3457 -7869.3135 8561.2803 C
--7869.2344 8561.2803 L
--7869.2344 8561.0557 L
--7869.2842 8560.9971 -7869.3135 8560.9355 -7869.3135 8560.8701 C
--7869.2344 8560.8701 L
--7869.2344 8560.6465 L
--7869.2842 8560.5879 -7869.3135 8560.5264 -7869.3135 8560.4609 C
--7869.2344 8560.4609 L
--7869.2344 8560.2373 L
--7869.2842 8560.1787 -7869.3135 8560.1162 -7869.3135 8560.0518 C
--7869.2344 8560.0518 L
--7869.2344 8559.8271 L
--7869.2842 8559.7686 -7869.3135 8559.707 -7869.3135 8559.6416 C
--7869.2344 8559.6416 L
--7869.2344 8559.418 L
--7869.2842 8559.3594 -7869.3135 8559.2979 -7869.3135 8559.2324 C
--7869.2344 8559.2324 L
--7869.2344 8559.0078 L
--7869.2842 8558.9502 -7869.3135 8558.8877 -7869.3135 8558.8232 C
--7869.2344 8558.8232 L
--7869.2344 8558.5986 L
--7869.2842 8558.54 -7869.3135 8558.4785 -7869.3135 8558.4131 C
--7869.2344 8558.4131 L
--7869.2344 8558.1885 L
--7869.2842 8558.1309 -7869.3135 8558.0693 -7869.3135 8558.0039 C
--7869.2344 8558.0039 L
--7869.2344 8557.7793 L
--7869.2842 8557.7217 -7869.3135 8557.6592 -7869.3135 8557.5947 C
--7869.2344 8557.5947 L
--7869.2344 8557.3701 L
--7869.2842 8557.3115 -7869.3135 8557.25 -7869.3135 8557.1846 C
--7869.2344 8557.1846 L
--7869.2344 8556.96 L
--7869.2842 8556.9023 -7869.3135 8556.8408 -7869.3135 8556.7754 C
--7869.2344 8556.7754 L
--7869.2344 8556.5508 L
--7869.2842 8556.4922 -7869.3135 8556.4307 -7869.3135 8556.3652 C
--7869.2344 8556.3652 L
--7869.2344 8556.1416 L
--7869.2842 8556.083 -7869.3135 8556.0215 -7869.3135 8555.9561 C
--7869.2344 8555.9561 L
--7869.2344 8555.7324 L
--7869.2842 8555.6738 -7869.3135 8555.6123 -7869.3135 8555.5469 C
--7869.2344 8555.5469 L
--7869.2344 8555.3223 L
--7869.2842 8555.2637 -7869.3135 8555.2021 -7869.3135 8555.1367 C
--7869.2344 8555.1367 L
--7869.2344 8554.9131 L
--7869.2842 8554.8545 -7869.3135 8554.793 -7869.3135 8554.7275 C
--7869.2344 8554.7275 L
--7869.2344 8554.5029 L
--7869.2842 8554.4443 -7869.3135 8554.3838 -7869.3135 8554.3184 C
--7869.2344 8554.3184 L
--7869.2344 8554.0938 L
--7869.2842 8554.0361 -7869.3135 8553.9736 -7869.3135 8553.9092 C
--7869.2344 8553.9092 L
--7869.2344 8553.6846 L
--7869.2842 8553.626 -7869.3135 8553.5645 -7869.3135 8553.499 C
--7869.2344 8553.499 L
--7869.2344 8553.2744 L
--7869.2842 8553.2158 -7869.3135 8553.1543 -7869.3135 8553.0898 C
--7869.2344 8553.0898 L
--7869.2344 8552.8652 L
--7869.2842 8552.8066 -7869.3135 8552.7451 -7869.3135 8552.6797 C
--7869.2344 8552.6797 L
--7869.2344 8552.5586 L
--7869.5654 8552.5107 -7869.8774 8552.457 -7870.1631 8552.3975 c
--7870.4727 8552.333 -7870.752 8552.2627 -7870.998 8552.1875 c
--7871.2441 8552.1123 -7871.4551 8552.0303 -7871.6279 8551.9463 c
--7871.8018 8551.8604 -7871.9351 8551.7715 -7872.0264 8551.6787 c
--7872.1167 8551.5869 -7872.165 8551.4912 -7872.165 8551.3926 C
--7872.165 8549.5801 L
--7872.165 8548.9551 -7870.2256 8548.4248 -7867.5303 8548.2344 C
--7867.4902 8548.1611 -7867.4502 8548.0869 -7867.4102 8548.0068 c
--7866.9209 8547.0283 -7867.063 8546.1836 -7867.2134 8545.2881 c
--7867.3066 8544.7305 -7867.4038 8544.1533 -7867.3496 8543.5215 c
--7867.208 8541.8691 -7865.4434 8541.0586 -7865.3975 8541.0439 C
--7858.4302 8541.0439 L
--7858.4014 8541.1729 L
--7858.4111 8541.1777 -7859.373 8541.6484 -7860.292 8543.1582 c
--7860.8286 8544.041 -7860.6929 8545.0957 -7860.5586 8546.1152 c
--7860.4639 8546.8379 -7860.376 8547.5195 -7860.5542 8548.0576 c
--7860.6104 8548.2256 -7860.6768 8548.3809 -7860.749 8548.5254 C
--7859.3662 8548.7861 -7858.4966 8549.1611 -7858.4966 8549.5801 C
-s
-0 D
--7871.626 8550.1338 m
--7871.7031 8550.0957 -7871.771 8550.0576 -7871.833 8550.0176 c
--7871.7729 8550.0566 -7871.7041 8550.0957 -7871.6279 8550.1328 C
--7871.6279 8550.1338 -7871.626 8550.1338 Y
-s
-1 D
--7870.1626 8564.4082 m
--7870.1631 8564.4082 -7870.1631 8564.4072 -7870.165 8564.4072 c
--7870.1641 8564.4072 -7870.1631 8564.4072 -7870.1631 8564.4082 C
--7870.1631 8564.4082 -7870.1626 8564.4082 v
-s
--7866.687 8564.7959 m
--7866.7026 8564.7959 -7866.7153 8564.7949 -7866.729 8564.7939 C
--7866.7217 8564.7939 -7866.7153 8564.7949 -7866.708 8564.7959 C
--7866.7026 8564.7959 -7866.6943 8564.7959 -7866.687 8564.7959 c
-s
--7863.9326 8564.7939 m
--7863.9463 8564.7949 -7863.9609 8564.7959 -7863.9736 8564.7959 c
--7863.9678 8564.7959 -7863.96 8564.7959 -7863.9546 8564.7959 C
--7863.9463 8564.7949 -7863.9409 8564.7939 -7863.9326 8564.7939 C
-s
-0 D
--7858.7119 8563.7588 m
--7858.6831 8563.7354 -7858.6582 8563.7129 -7858.6362 8563.6895 c
--7858.6138 8563.667 -7858.6016 8563.6426 -7858.585 8563.6201 c
--7858.6191 8563.667 -7858.6558 8563.7129 -7858.7119 8563.7588 c
-s
--7858.6758 8549.9023 m
--7858.7646 8549.9824 -7858.8848 8550.0596 -7859.0361 8550.1338 C
--7859.0352 8550.1338 -7859.0342 8550.1338 -7859.0342 8550.1328 C
--7858.8838 8550.0596 -7858.7646 8549.9814 -7858.6758 8549.9023 c
-s
-*U
-u
-0 O
-0 g
--7865.2832 8553.8408 m
-F
-u
-u
-0.67 g
--7858.7119 8563.7588 m
--7858.7959 8563.8262 -7858.9038 8563.8926 -7859.0342 8563.9561 C
--7859.0342 8563.9561 L
--7859.0342 8563.9561 L
--7859.6377 8564.2529 -7860.7134 8564.499 -7862.0664 8564.6514 c
--7862.0713 8564.6523 -7862.0762 8564.6533 -7862.0806 8564.6533 c
--7862.2671 8564.6748 -7862.459 8564.6934 -7862.6553 8564.7109 c
--7862.6602 8564.7119 -7862.665 8564.7119 -7862.6714 8564.7119 c
--7862.6768 8564.7129 -7862.6816 8564.7139 -7862.687 8564.7139 c
--7862.8838 8564.7314 -7863.084 8564.7461 -7863.29 8564.7598 c
--7863.2959 8564.7598 -7863.3018 8564.7607 -7863.3071 8564.7607 c
--7863.5127 8564.7744 -7863.7217 8564.7852 -7863.9326 8564.7939 c
--7863.9409 8564.7939 -7863.9463 8564.7949 -7863.9546 8564.7959 c
--7863.96 8564.7959 -7863.9678 8564.7959 -7863.9736 8564.7959 c
--7864.4121 8564.8145 -7864.8662 8564.8242 -7865.3311 8564.8242 c
--7865.7959 8564.8242 -7866.249 8564.8145 -7866.687 8564.7959 c
--7866.6943 8564.7959 -7866.7026 8564.7959 -7866.708 8564.7959 c
--7866.7153 8564.7949 -7866.7217 8564.7939 -7866.729 8564.7939 c
--7866.9409 8564.7852 -7867.1504 8564.7734 -7867.3545 8564.7607 c
--7867.3599 8564.7607 -7867.3647 8564.7598 -7867.3711 8564.7598 c
--7867.5767 8564.7461 -7867.7793 8564.7314 -7867.9761 8564.7139 c
--7867.9814 8564.7139 -7867.9863 8564.7129 -7867.9912 8564.7119 c
--7867.9951 8564.7119 -7868 8564.7119 -7868.0049 8564.7109 c
--7868.2026 8564.6943 -7868.3945 8564.6748 -7868.582 8564.6533 c
--7868.5854 8564.6533 -7868.5898 8564.6523 -7868.5938 8564.6514 c
--7869.1719 8564.5869 -7869.7002 8564.5039 -7870.1626 8564.4082 c
--7870.1631 8564.4082 -7870.1631 8564.4082 y
--7870.1631 8564.4072 -7870.1641 8564.4072 -7870.165 8564.4072 c
--7870.7822 8564.2793 -7871.2822 8564.126 -7871.6279 8563.9561 C
--7871.6279 8563.9561 L
--7871.6279 8563.9561 L
--7871.8257 8563.8594 -7871.9722 8563.7568 -7872.061 8563.6494 c
--7872.1279 8563.5693 -7872.165 8563.4873 -7872.165 8563.4033 C
--7872.165 8565.2158 L
--7872.165 8565.3145 -7872.1167 8565.4102 -7872.0264 8565.5029 c
--7871.9351 8565.5947 -7871.8018 8565.6846 -7871.6279 8565.7695 c
--7871.4551 8565.8545 -7871.2441 8565.9346 -7870.998 8566.0107 c
--7870.752 8566.0859 -7870.4727 8566.1563 -7870.1631 8566.2207 c
--7869.8545 8566.2852 -7869.5151 8566.3438 -7869.1519 8566.3945 c
--7868.7881 8566.4463 -7868.3999 8566.4893 -7867.9912 8566.5254 c
--7867.582 8566.5615 -7867.1538 8566.5898 -7866.708 8566.6084 c
--7866.2642 8566.627 -7865.8022 8566.6367 -7865.3311 8566.6367 c
--7864.8594 8566.6367 -7864.3984 8566.627 -7863.9546 8566.6084 c
--7863.5088 8566.5898 -7863.0791 8566.5615 -7862.6714 8566.5254 c
--7862.2622 8566.4893 -7861.873 8566.4463 -7861.5098 8566.3945 c
--7861.1455 8566.3438 -7860.8081 8566.2852 -7860.498 8566.2207 c
--7860.1895 8566.1563 -7859.9087 8566.0859 -7859.6641 8566.0107 c
--7859.418 8565.9346 -7859.2065 8565.8545 -7859.0342 8565.7695 c
--7858.8608 8565.6846 -7858.7266 8565.5947 -7858.6362 8565.5029 c
--7858.5439 8565.4102 -7858.4966 8565.3145 -7858.4966 8565.2158 C
--7858.4966 8563.4033 L
--7858.4966 8563.501 -7858.5439 8563.5967 -7858.6362 8563.6895 c
--7858.6582 8563.7129 -7858.6831 8563.7354 -7858.7119 8563.7588 c
-f
-0.39 g
--7861.4282 8562.5088 m
--7861.3481 8562.5088 L
--7861.3481 8562.5732 -7861.3774 8562.6357 -7861.4282 8562.6934 C
--7861.4282 8563.0381 L
--7861.4282 8563.0947 -7861.4551 8563.1494 -7861.5073 8563.2021 c
--7861.5586 8563.2549 -7861.6362 8563.3057 -7861.7344 8563.3545 c
--7861.834 8563.4033 -7861.9546 8563.4492 -7862.0942 8563.4922 c
--7862.2344 8563.5352 -7862.3945 8563.5752 -7862.5713 8563.6123 c
--7862.7471 8563.6484 -7862.9414 8563.6826 -7863.1489 8563.7119 c
--7863.3569 8563.7402 -7863.5786 8563.7656 -7863.811 8563.7861 c
--7864.0449 8563.8066 -7864.29 8563.8232 -7864.5439 8563.833 c
--7864.7974 8563.8438 -7865.0615 8563.8496 -7865.3311 8563.8496 c
--7865.6006 8563.8496 -7865.8633 8563.8438 -7866.1167 8563.833 c
--7866.3711 8563.8232 -7866.6162 8563.8066 -7866.8496 8563.7861 c
--7867.083 8563.7656 -7867.3057 8563.7402 -7867.5127 8563.7119 c
--7867.7207 8563.6826 -7867.9146 8563.6484 -7868.0913 8563.6123 c
--7868.2666 8563.5752 -7868.4272 8563.5352 -7868.5674 8563.4922 c
--7868.708 8563.4492 -7868.8281 8563.4033 -7868.9263 8563.3545 c
--7869.0264 8563.3057 -7869.1025 8563.2549 -7869.1553 8563.2021 c
--7869.2065 8563.1494 -7869.2344 8563.0947 -7869.2344 8563.0381 C
--7869.2344 8562.6934 L
--7869.2842 8562.6357 -7869.3135 8562.5732 -7869.3135 8562.5088 C
--7869.2344 8562.5088 L
--7869.2344 8562.2842 L
--7869.2466 8562.2705 -7869.2554 8562.2559 -7869.2642 8562.2412 C
--7871.0186 8562.499 -7872.165 8562.9229 -7872.165 8563.4033 c
--7872.165 8563.4873 -7872.1279 8563.5693 -7872.061 8563.6494 c
--7871.9722 8563.7568 -7871.8257 8563.8594 -7871.6279 8563.9561 C
--7871.6279 8563.9561 L
--7871.2822 8564.126 -7870.7822 8564.2793 -7870.165 8564.4072 c
--7870.1631 8564.4072 -7870.1631 8564.4082 -7870.1626 8564.4082 c
--7869.7002 8564.5039 -7869.1719 8564.5869 -7868.5938 8564.6514 c
--7868.5898 8564.6523 -7868.5854 8564.6533 -7868.582 8564.6533 c
--7868.3945 8564.6748 -7868.2026 8564.6943 -7868.0049 8564.7109 c
--7867.9951 8564.7119 -7867.9858 8564.7129 -7867.9761 8564.7139 c
--7867.7793 8564.7314 -7867.5767 8564.7461 -7867.3711 8564.7598 c
--7867.3647 8564.7598 -7867.3599 8564.7607 -7867.3545 8564.7607 c
--7867.1504 8564.7734 -7866.9409 8564.7852 -7866.729 8564.7939 c
--7866.7153 8564.7949 -7866.7026 8564.7959 -7866.687 8564.7959 c
--7866.249 8564.8145 -7865.7959 8564.8242 -7865.3311 8564.8242 c
--7864.8662 8564.8242 -7864.4121 8564.8145 -7863.9736 8564.7959 c
--7863.9609 8564.7959 -7863.9463 8564.7949 -7863.9326 8564.7939 c
--7863.7217 8564.7852 -7863.5127 8564.7744 -7863.3071 8564.7607 c
--7863.3018 8564.7607 -7863.2959 8564.7598 -7863.29 8564.7598 c
--7863.084 8564.7461 -7862.8838 8564.7314 -7862.687 8564.7139 c
--7862.6768 8564.7129 -7862.666 8564.7119 -7862.6553 8564.7109 c
--7862.459 8564.6934 -7862.2671 8564.6748 -7862.0806 8564.6533 c
--7862.0762 8564.6533 -7862.0713 8564.6523 -7862.0664 8564.6514 c
--7860.7134 8564.499 -7859.6377 8564.2529 -7859.0342 8563.9561 C
--7859.0342 8563.9561 L
--7858.9038 8563.8926 -7858.7959 8563.8262 -7858.7119 8563.7588 c
--7858.5713 8563.6445 -7858.4966 8563.5254 -7858.4966 8563.4033 c
--7858.4966 8562.9229 -7859.6431 8562.499 -7861.3984 8562.2412 C
--7861.4072 8562.2559 -7861.416 8562.2705 -7861.4282 8562.2842 C
--7861.4282 8562.5088 L
-f
-0.55 g
--7865.3311 8558.4756 m
--7867.041 8558.4756 -7868.8442 8558.2334 -7869.2344 8557.7793 C
--7869.2344 8558.0039 L
--7869.1782 8558.0039 L
--7869.1782 8558.3564 -7867.5986 8558.75 -7865.3311 8558.75 c
--7863.063 8558.75 -7861.4834 8558.3564 -7861.4834 8558.0039 C
--7861.4282 8558.0039 L
--7861.4282 8557.7793 L
--7861.8174 8558.2334 -7863.6201 8558.4756 -7865.3311 8558.4756 c
-f
--7865.3311 8555.6094 m
--7867.041 8555.6094 -7868.8442 8555.3662 -7869.2344 8554.9131 C
--7869.2344 8555.1367 L
--7869.1782 8555.1367 L
--7869.1782 8555.4902 -7867.5986 8555.8838 -7865.3311 8555.8838 c
--7863.063 8555.8838 -7861.4834 8555.4902 -7861.4834 8555.1367 C
--7861.4282 8555.1367 L
--7861.4282 8554.9131 L
--7861.8174 8555.3662 -7863.6201 8555.6094 -7865.3311 8555.6094 c
-f
--7865.3311 8558.8857 m
--7867.041 8558.8857 -7868.8442 8558.6426 -7869.2344 8558.1885 C
--7869.2344 8558.4131 L
--7869.1782 8558.4131 L
--7869.1782 8558.7666 -7867.5986 8559.1602 -7865.3311 8559.1602 c
--7863.063 8559.1602 -7861.4834 8558.7666 -7861.4834 8558.4131 C
--7861.4282 8558.4131 L
--7861.4282 8558.1885 L
--7861.8174 8558.6426 -7863.6201 8558.8857 -7865.3311 8558.8857 c
-f
--7865.3311 8559.2949 m
--7867.041 8559.2949 -7868.8442 8559.0518 -7869.2344 8558.5986 C
--7869.2344 8558.8232 L
--7869.1782 8558.8232 L
--7869.1782 8559.1758 -7867.5986 8559.5693 -7865.3311 8559.5693 c
--7863.063 8559.5693 -7861.4834 8559.1758 -7861.4834 8558.8232 C
--7861.4282 8558.8232 L
--7861.4282 8558.5986 L
--7861.8174 8559.0518 -7863.6201 8559.2949 -7865.3311 8559.2949 c
-f
--7865.3311 8556.0186 m
--7867.041 8556.0186 -7868.8442 8555.7764 -7869.2344 8555.3223 C
--7869.2344 8555.5469 L
--7869.1782 8555.5469 L
--7869.1782 8555.8994 -7867.5986 8556.293 -7865.3311 8556.293 c
--7863.063 8556.293 -7861.4834 8555.8994 -7861.4834 8555.5469 C
--7861.4282 8555.5469 L
--7861.4282 8555.3223 L
--7861.8174 8555.7764 -7863.6201 8556.0186 -7865.3311 8556.0186 c
-f
--7865.3311 8557.2471 m
--7867.041 8557.2471 -7868.8442 8557.0039 -7869.2344 8556.5508 C
--7869.2344 8556.7754 L
--7869.1782 8556.7754 L
--7869.1782 8557.1279 -7867.5986 8557.5225 -7865.3311 8557.5225 c
--7863.063 8557.5225 -7861.4834 8557.1279 -7861.4834 8556.7754 C
--7861.4282 8556.7754 L
--7861.4282 8556.5508 L
--7861.8174 8557.0039 -7863.6201 8557.2471 -7865.3311 8557.2471 c
-f
--7865.3311 8558.0664 m
--7867.041 8558.0664 -7868.8442 8557.8232 -7869.2344 8557.3701 C
--7869.2344 8557.5947 L
--7869.1782 8557.5947 L
--7869.1782 8557.9473 -7867.5986 8558.3408 -7865.3311 8558.3408 c
--7863.063 8558.3408 -7861.4834 8557.9473 -7861.4834 8557.5947 C
--7861.4282 8557.5947 L
--7861.4282 8557.3701 L
--7861.8174 8557.8232 -7863.6201 8558.0664 -7865.3311 8558.0664 c
-f
--7865.3311 8556.8379 m
--7867.041 8556.8379 -7868.8442 8556.5947 -7869.2344 8556.1416 C
--7869.2344 8556.3652 L
--7869.1782 8556.3652 L
--7869.1782 8556.7188 -7867.5986 8557.1123 -7865.3311 8557.1123 c
--7863.063 8557.1123 -7861.4834 8556.7188 -7861.4834 8556.3652 C
--7861.4282 8556.3652 L
--7861.4282 8556.1416 L
--7861.8174 8556.5947 -7863.6201 8556.8379 -7865.3311 8556.8379 c
-f
--7865.3311 8553.9717 m
--7867.041 8553.9717 -7868.8442 8553.7285 -7869.2344 8553.2744 C
--7869.2344 8553.499 L
--7869.1782 8553.499 L
--7869.1782 8553.8516 -7867.5986 8554.2451 -7865.3311 8554.2451 c
--7863.063 8554.2451 -7861.4834 8553.8516 -7861.4834 8553.499 C
--7861.4282 8553.499 L
--7861.4282 8553.2744 L
--7861.8174 8553.7285 -7863.6201 8553.9717 -7865.3311 8553.9717 c
-f
--7865.3311 8554.79 m
--7867.041 8554.79 -7868.8442 8554.5479 -7869.2344 8554.0938 C
--7869.2344 8554.3184 L
--7869.1782 8554.3184 L
--7869.1782 8554.6709 -7867.5986 8555.0645 -7865.3311 8555.0645 c
--7863.063 8555.0645 -7861.4834 8554.6709 -7861.4834 8554.3184 C
--7861.4282 8554.3184 L
--7861.4282 8554.0938 L
--7861.8174 8554.5479 -7863.6201 8554.79 -7865.3311 8554.79 c
-f
--7865.3311 8557.6572 m
--7867.041 8557.6572 -7868.8442 8557.4141 -7869.2344 8556.96 C
--7869.2344 8557.1846 L
--7869.1782 8557.1846 L
--7869.1782 8557.5381 -7867.5986 8557.9307 -7865.3311 8557.9307 c
--7863.063 8557.9307 -7861.4834 8557.5381 -7861.4834 8557.1846 C
--7861.4282 8557.1846 L
--7861.4282 8556.96 L
--7861.8174 8557.4141 -7863.6201 8557.6572 -7865.3311 8557.6572 c
-f
--7865.3311 8556.4287 m
--7867.041 8556.4287 -7868.8442 8556.1855 -7869.2344 8555.7324 C
--7869.2344 8555.9561 L
--7869.1782 8555.9561 L
--7869.1782 8556.3096 -7867.5986 8556.7021 -7865.3311 8556.7021 c
--7863.063 8556.7021 -7861.4834 8556.3096 -7861.4834 8555.9561 C
--7861.4282 8555.9561 L
--7861.4282 8555.7324 L
--7861.8174 8556.1855 -7863.6201 8556.4287 -7865.3311 8556.4287 c
-f
--7865.3311 8554.3799 m
--7867.041 8554.3799 -7868.8442 8554.1377 -7869.2344 8553.6846 C
--7869.2344 8553.9092 L
--7869.1782 8553.9092 L
--7869.1782 8554.2617 -7867.5986 8554.6553 -7865.3311 8554.6553 c
--7863.063 8554.6553 -7861.4834 8554.2617 -7861.4834 8553.9092 C
--7861.4282 8553.9092 L
--7861.4282 8553.6846 L
--7861.8174 8554.1377 -7863.6201 8554.3799 -7865.3311 8554.3799 c
-f
--7865.3311 8555.1992 m
--7867.041 8555.1992 -7868.8442 8554.9561 -7869.2344 8554.5029 C
--7869.2344 8554.7275 L
--7869.1782 8554.7275 L
--7869.1782 8555.0811 -7867.5986 8555.4746 -7865.3311 8555.4746 c
--7863.063 8555.4746 -7861.4834 8555.0811 -7861.4834 8554.7275 C
--7861.4282 8554.7275 L
--7861.4282 8554.5029 L
--7861.8174 8554.9561 -7863.6201 8555.1992 -7865.3311 8555.1992 c
-f
--7865.3311 8561.3428 m
--7867.041 8561.3428 -7868.8442 8561.0996 -7869.2344 8560.6465 C
--7869.2344 8560.8701 L
--7869.1782 8560.8701 L
--7869.1782 8561.2236 -7867.5986 8561.6172 -7865.3311 8561.6172 c
--7863.063 8561.6172 -7861.4834 8561.2236 -7861.4834 8560.8701 C
--7861.4282 8560.8701 L
--7861.4282 8560.6465 L
--7861.8174 8561.0996 -7863.6201 8561.3428 -7865.3311 8561.3428 c
-f
--7865.3311 8562.5713 m
--7867.041 8562.5713 -7868.8442 8562.3281 -7869.2344 8561.875 C
--7869.2344 8562.0986 L
--7869.1782 8562.0986 L
--7869.1782 8562.4521 -7867.5986 8562.8457 -7865.3311 8562.8457 c
--7863.063 8562.8457 -7861.4834 8562.4521 -7861.4834 8562.0986 C
--7861.4282 8562.0986 L
--7861.4282 8561.875 L
--7861.8174 8562.3281 -7863.6201 8562.5713 -7865.3311 8562.5713 c
-f
--7865.3311 8562.1611 m
--7867.041 8562.1611 -7868.8442 8561.9189 -7869.2344 8561.4658 C
--7869.2344 8561.6895 L
--7869.1782 8561.6895 L
--7869.1782 8562.043 -7867.5986 8562.4365 -7865.3311 8562.4365 c
--7863.063 8562.4365 -7861.4834 8562.043 -7861.4834 8561.6895 C
--7861.4282 8561.6895 L
--7861.4282 8561.4658 L
--7861.8174 8561.9189 -7863.6201 8562.1611 -7865.3311 8562.1611 c
-f
--7865.3311 8559.7041 m
--7867.041 8559.7041 -7868.8442 8559.4619 -7869.2344 8559.0078 C
--7869.2344 8559.2324 L
--7869.1782 8559.2324 L
--7869.1782 8559.585 -7867.5986 8559.9795 -7865.3311 8559.9795 c
--7863.063 8559.9795 -7861.4834 8559.585 -7861.4834 8559.2324 C
--7861.4282 8559.2324 L
--7861.4282 8559.0078 L
--7861.8174 8559.4619 -7863.6201 8559.7041 -7865.3311 8559.7041 c
-f
--7865.3311 8560.9326 m
--7867.041 8560.9326 -7868.8442 8560.6904 -7869.2344 8560.2373 C
--7869.2344 8560.4609 L
--7869.1782 8560.4609 L
--7869.1782 8560.8135 -7867.5986 8561.208 -7865.3311 8561.208 c
--7863.063 8561.208 -7861.4834 8560.8135 -7861.4834 8560.4609 C
--7861.4282 8560.4609 L
--7861.4282 8560.2373 L
--7861.8174 8560.6904 -7863.6201 8560.9326 -7865.3311 8560.9326 c
-f
--7865.3311 8560.5234 m
--7867.041 8560.5234 -7868.8442 8560.2803 -7869.2344 8559.8271 C
--7869.2344 8560.0518 L
--7869.1782 8560.0518 L
--7869.1782 8560.4043 -7867.5986 8560.7979 -7865.3311 8560.7979 c
--7863.063 8560.7979 -7861.4834 8560.4043 -7861.4834 8560.0518 C
--7861.4282 8560.0518 L
--7861.4282 8559.8271 L
--7861.8174 8560.2803 -7863.6201 8560.5234 -7865.3311 8560.5234 c
-f
--7865.3311 8560.1143 m
--7867.041 8560.1143 -7868.8442 8559.8711 -7869.2344 8559.418 C
--7869.2344 8559.6416 L
--7869.1782 8559.6416 L
--7869.1782 8559.9951 -7867.5986 8560.3887 -7865.3311 8560.3887 c
--7863.063 8560.3887 -7861.4834 8559.9951 -7861.4834 8559.6416 C
--7861.4282 8559.6416 L
--7861.4282 8559.418 L
--7861.8174 8559.8711 -7863.6201 8560.1143 -7865.3311 8560.1143 c
-f
--7865.3311 8561.752 m
--7867.041 8561.752 -7868.8442 8561.5088 -7869.2344 8561.0557 C
--7869.2344 8561.2803 L
--7869.1782 8561.2803 L
--7869.1782 8561.6328 -7867.5986 8562.0264 -7865.3311 8562.0264 c
--7863.063 8562.0264 -7861.4834 8561.6328 -7861.4834 8561.2803 C
--7861.4282 8561.2803 L
--7861.4282 8561.0557 L
--7861.8174 8561.5088 -7863.6201 8561.752 -7865.3311 8561.752 c
-f
--7862.6714 8552.7021 m
--7863.0791 8552.7383 -7863.5088 8552.7666 -7863.9546 8552.7852 c
--7864.3984 8552.8037 -7864.8594 8552.8135 -7865.3311 8552.8135 c
--7865.8022 8552.8135 -7866.2642 8552.8037 -7866.708 8552.7852 c
--7867.1538 8552.7666 -7867.582 8552.7383 -7867.9912 8552.7021 c
--7868.3999 8552.666 -7868.7881 8552.6221 -7869.1519 8552.5713 c
--7869.1807 8552.5674 -7869.2065 8552.5625 -7869.2344 8552.5586 C
--7869.2344 8552.6797 L
--7869.1782 8552.6797 L
--7869.1782 8553.0322 -7867.5986 8553.4268 -7865.3311 8553.4268 c
--7863.063 8553.4268 -7861.4834 8553.0322 -7861.4834 8552.6797 C
--7861.4282 8552.6797 L
--7861.4282 8552.5586 L
--7861.4561 8552.5625 -7861.4814 8552.5674 -7861.5098 8552.5713 c
--7861.873 8552.6221 -7862.2622 8552.666 -7862.6714 8552.7021 c
-f
--7865.3311 8553.5615 m
--7867.041 8553.5615 -7868.8442 8553.3184 -7869.2344 8552.8652 C
--7869.2344 8553.0898 L
--7869.1782 8553.0898 L
--7869.1782 8553.4424 -7867.5986 8553.8359 -7865.3311 8553.8359 c
--7863.063 8553.8359 -7861.4834 8553.4424 -7861.4834 8553.0898 C
--7861.4282 8553.0898 L
--7861.4282 8552.8652 L
--7861.8174 8553.3184 -7863.6201 8553.5615 -7865.3311 8553.5615 c
-f
--7865.3311 8563.3896 m
--7867.041 8563.3896 -7868.8442 8563.1475 -7869.2344 8562.6934 C
--7869.2344 8563.0381 L
--7869.2344 8563.0947 -7869.2065 8563.1494 -7869.1553 8563.2021 c
--7869.1025 8563.2549 -7869.0264 8563.3057 -7868.9263 8563.3545 c
--7868.8281 8563.4033 -7868.708 8563.4492 -7868.5674 8563.4922 c
--7868.4272 8563.5352 -7868.2666 8563.5752 -7868.0913 8563.6123 c
--7867.9146 8563.6484 -7867.7207 8563.6826 -7867.5127 8563.7119 c
--7867.3057 8563.7402 -7867.083 8563.7656 -7866.8496 8563.7861 c
--7866.6162 8563.8066 -7866.3711 8563.8232 -7866.1167 8563.833 c
--7865.8633 8563.8438 -7865.6006 8563.8496 -7865.3311 8563.8496 c
--7865.0615 8563.8496 -7864.7974 8563.8438 -7864.5439 8563.833 c
--7864.29 8563.8232 -7864.0449 8563.8066 -7863.811 8563.7861 c
--7863.5786 8563.7656 -7863.3569 8563.7402 -7863.1489 8563.7119 c
--7862.9414 8563.6826 -7862.7471 8563.6484 -7862.5713 8563.6123 c
--7862.3945 8563.5752 -7862.2344 8563.5352 -7862.0942 8563.4922 c
--7861.9546 8563.4492 -7861.834 8563.4033 -7861.7344 8563.3545 c
--7861.6362 8563.3057 -7861.5586 8563.2549 -7861.5073 8563.2021 c
--7861.4551 8563.1494 -7861.4282 8563.0947 -7861.4282 8563.0381 C
--7861.4282 8562.6934 L
--7861.8174 8563.1475 -7863.6201 8563.3896 -7865.3311 8563.3896 c
-f
--7869.1782 8562.5088 m
--7869.1782 8562.8613 -7867.5986 8563.2549 -7865.3311 8563.2549 c
--7863.063 8563.2549 -7861.4834 8562.8613 -7861.4834 8562.5088 C
--7861.4282 8562.5088 L
--7861.4282 8562.2842 L
--7861.8174 8562.7373 -7863.6201 8562.9805 -7865.3311 8562.9805 c
--7867.041 8562.9805 -7868.8442 8562.7373 -7869.2344 8562.2842 C
--7869.2344 8562.5088 L
--7869.1782 8562.5088 L
-f
-0.15 g
--7865.3311 8553.4268 m
--7867.5986 8553.4268 -7869.1782 8553.0322 -7869.1782 8552.6797 C
--7869.2344 8552.6797 L
--7869.3135 8552.6797 L
--7869.3135 8552.7451 -7869.2842 8552.8066 -7869.2344 8552.8652 c
--7868.8442 8553.3184 -7867.041 8553.5615 -7865.3311 8553.5615 c
--7863.6201 8553.5615 -7861.8174 8553.3184 -7861.4282 8552.8652 c
--7861.3774 8552.8066 -7861.3481 8552.7451 -7861.3481 8552.6797 C
--7861.4282 8552.6797 L
--7861.4834 8552.6797 L
--7861.4834 8553.0322 -7863.063 8553.4268 -7865.3311 8553.4268 c
-f
--7865.3311 8553.8359 m
--7867.5986 8553.8359 -7869.1782 8553.4424 -7869.1782 8553.0898 C
--7869.2344 8553.0898 L
--7869.3135 8553.0898 L
--7869.3135 8553.1543 -7869.2842 8553.2158 -7869.2344 8553.2744 c
--7868.8442 8553.7285 -7867.041 8553.9717 -7865.3311 8553.9717 c
--7863.6201 8553.9717 -7861.8174 8553.7285 -7861.4282 8553.2744 c
--7861.3774 8553.2158 -7861.3481 8553.1543 -7861.3481 8553.0898 C
--7861.4282 8553.0898 L
--7861.4834 8553.0898 L
--7861.4834 8553.4424 -7863.063 8553.8359 -7865.3311 8553.8359 c
-f
--7865.3311 8554.2451 m
--7867.5986 8554.2451 -7869.1782 8553.8516 -7869.1782 8553.499 C
--7869.2344 8553.499 L
--7869.3135 8553.499 L
--7869.3135 8553.5645 -7869.2842 8553.626 -7869.2344 8553.6846 c
--7868.8442 8554.1377 -7867.041 8554.3799 -7865.3311 8554.3799 c
--7863.6201 8554.3799 -7861.8174 8554.1377 -7861.4282 8553.6846 c
--7861.3774 8553.626 -7861.3481 8553.5645 -7861.3481 8553.499 C
--7861.4282 8553.499 L
--7861.4834 8553.499 L
--7861.4834 8553.8516 -7863.063 8554.2451 -7865.3311 8554.2451 c
-f
--7865.3311 8554.6553 m
--7867.5986 8554.6553 -7869.1782 8554.2617 -7869.1782 8553.9092 C
--7869.2344 8553.9092 L
--7869.3135 8553.9092 L
--7869.3135 8553.9736 -7869.2842 8554.0361 -7869.2344 8554.0938 c
--7868.8442 8554.5479 -7867.041 8554.79 -7865.3311 8554.79 c
--7863.6201 8554.79 -7861.8174 8554.5479 -7861.4282 8554.0938 c
--7861.3774 8554.0361 -7861.3481 8553.9736 -7861.3481 8553.9092 C
--7861.4282 8553.9092 L
--7861.4834 8553.9092 L
--7861.4834 8554.2617 -7863.063 8554.6553 -7865.3311 8554.6553 c
-f
--7865.3311 8555.0645 m
--7867.5986 8555.0645 -7869.1782 8554.6709 -7869.1782 8554.3184 C
--7869.2344 8554.3184 L
--7869.3135 8554.3184 L
--7869.3135 8554.3838 -7869.2842 8554.4443 -7869.2344 8554.5029 c
--7868.8442 8554.9561 -7867.041 8555.1992 -7865.3311 8555.1992 c
--7863.6201 8555.1992 -7861.8174 8554.9561 -7861.4282 8554.5029 c
--7861.3774 8554.4443 -7861.3481 8554.3838 -7861.3481 8554.3184 C
--7861.4282 8554.3184 L
--7861.4834 8554.3184 L
--7861.4834 8554.6709 -7863.063 8555.0645 -7865.3311 8555.0645 c
-f
--7865.3311 8555.4746 m
--7867.5986 8555.4746 -7869.1782 8555.0811 -7869.1782 8554.7275 C
--7869.2344 8554.7275 L
--7869.3135 8554.7275 L
--7869.3135 8554.793 -7869.2842 8554.8545 -7869.2344 8554.9131 c
--7868.8442 8555.3662 -7867.041 8555.6094 -7865.3311 8555.6094 c
--7863.6201 8555.6094 -7861.8174 8555.3662 -7861.4282 8554.9131 c
--7861.3774 8554.8545 -7861.3481 8554.793 -7861.3481 8554.7275 C
--7861.4282 8554.7275 L
--7861.4834 8554.7275 L
--7861.4834 8555.0811 -7863.063 8555.4746 -7865.3311 8555.4746 c
-f
--7865.3311 8555.8838 m
--7867.5986 8555.8838 -7869.1782 8555.4902 -7869.1782 8555.1367 C
--7869.2344 8555.1367 L
--7869.3135 8555.1367 L
--7869.3135 8555.2021 -7869.2842 8555.2637 -7869.2344 8555.3223 c
--7868.8442 8555.7764 -7867.041 8556.0186 -7865.3311 8556.0186 c
--7863.6201 8556.0186 -7861.8174 8555.7764 -7861.4282 8555.3223 c
--7861.3774 8555.2637 -7861.3481 8555.2021 -7861.3481 8555.1367 C
--7861.4282 8555.1367 L
--7861.4834 8555.1367 L
--7861.4834 8555.4902 -7863.063 8555.8838 -7865.3311 8555.8838 c
-f
--7865.3311 8556.293 m
--7867.5986 8556.293 -7869.1782 8555.8994 -7869.1782 8555.5469 C
--7869.2344 8555.5469 L
--7869.3135 8555.5469 L
--7869.3135 8555.6123 -7869.2842 8555.6738 -7869.2344 8555.7324 c
--7868.8442 8556.1855 -7867.041 8556.4287 -7865.3311 8556.4287 c
--7863.6201 8556.4287 -7861.8174 8556.1855 -7861.4282 8555.7324 c
--7861.3774 8555.6738 -7861.3481 8555.6123 -7861.3481 8555.5469 C
--7861.4282 8555.5469 L
--7861.4834 8555.5469 L
--7861.4834 8555.8994 -7863.063 8556.293 -7865.3311 8556.293 c
-f
--7865.3311 8556.7021 m
--7867.5986 8556.7021 -7869.1782 8556.3096 -7869.1782 8555.9561 C
--7869.2344 8555.9561 L
--7869.3135 8555.9561 L
--7869.3135 8556.0215 -7869.2842 8556.083 -7869.2344 8556.1416 c
--7868.8442 8556.5947 -7867.041 8556.8379 -7865.3311 8556.8379 c
--7863.6201 8556.8379 -7861.8174 8556.5947 -7861.4282 8556.1416 c
--7861.3774 8556.083 -7861.3481 8556.0215 -7861.3481 8555.9561 C
--7861.4282 8555.9561 L
--7861.4834 8555.9561 L
--7861.4834 8556.3096 -7863.063 8556.7021 -7865.3311 8556.7021 c
-f
--7865.3311 8557.1123 m
--7867.5986 8557.1123 -7869.1782 8556.7188 -7869.1782 8556.3652 C
--7869.2344 8556.3652 L
--7869.3135 8556.3652 L
--7869.3135 8556.4307 -7869.2842 8556.4922 -7869.2344 8556.5508 c
--7868.8442 8557.0039 -7867.041 8557.2471 -7865.3311 8557.2471 c
--7863.6201 8557.2471 -7861.8174 8557.0039 -7861.4282 8556.5508 c
--7861.3774 8556.4922 -7861.3481 8556.4307 -7861.3481 8556.3652 C
--7861.4282 8556.3652 L
--7861.4834 8556.3652 L
--7861.4834 8556.7188 -7863.063 8557.1123 -7865.3311 8557.1123 c
-f
--7865.3311 8557.5225 m
--7867.5986 8557.5225 -7869.1782 8557.1279 -7869.1782 8556.7754 C
--7869.2344 8556.7754 L
--7869.3135 8556.7754 L
--7869.3135 8556.8408 -7869.2842 8556.9023 -7869.2344 8556.96 c
--7868.8442 8557.4141 -7867.041 8557.6572 -7865.3311 8557.6572 c
--7863.6201 8557.6572 -7861.8174 8557.4141 -7861.4282 8556.96 c
--7861.3774 8556.9023 -7861.3481 8556.8408 -7861.3481 8556.7754 C
--7861.4282 8556.7754 L
--7861.4834 8556.7754 L
--7861.4834 8557.1279 -7863.063 8557.5225 -7865.3311 8557.5225 c
-f
--7865.3311 8557.9307 m
--7867.5986 8557.9307 -7869.1782 8557.5381 -7869.1782 8557.1846 C
--7869.2344 8557.1846 L
--7869.3135 8557.1846 L
--7869.3135 8557.25 -7869.2842 8557.3115 -7869.2344 8557.3701 c
--7868.8442 8557.8232 -7867.041 8558.0664 -7865.3311 8558.0664 c
--7863.6201 8558.0664 -7861.8174 8557.8232 -7861.4282 8557.3701 c
--7861.3774 8557.3115 -7861.3481 8557.25 -7861.3481 8557.1846 C
--7861.4282 8557.1846 L
--7861.4834 8557.1846 L
--7861.4834 8557.5381 -7863.063 8557.9307 -7865.3311 8557.9307 c
-f
--7865.3311 8558.3408 m
--7867.5986 8558.3408 -7869.1782 8557.9473 -7869.1782 8557.5947 C
--7869.2344 8557.5947 L
--7869.3135 8557.5947 L
--7869.3135 8557.6592 -7869.2842 8557.7217 -7869.2344 8557.7793 c
--7868.8442 8558.2334 -7867.041 8558.4756 -7865.3311 8558.4756 c
--7863.6201 8558.4756 -7861.8174 8558.2334 -7861.4282 8557.7793 c
--7861.3774 8557.7217 -7861.3481 8557.6592 -7861.3481 8557.5947 C
--7861.4282 8557.5947 L
--7861.4834 8557.5947 L
--7861.4834 8557.9473 -7863.063 8558.3408 -7865.3311 8558.3408 c
-f
--7865.3311 8558.75 m
--7867.5986 8558.75 -7869.1782 8558.3564 -7869.1782 8558.0039 C
--7869.2344 8558.0039 L
--7869.3135 8558.0039 L
--7869.3135 8558.0693 -7869.2842 8558.1309 -7869.2344 8558.1885 c
--7868.8442 8558.6426 -7867.041 8558.8857 -7865.3311 8558.8857 c
--7863.6201 8558.8857 -7861.8174 8558.6426 -7861.4282 8558.1885 c
--7861.3774 8558.1309 -7861.3481 8558.0693 -7861.3481 8558.0039 C
--7861.4282 8558.0039 L
--7861.4834 8558.0039 L
--7861.4834 8558.3564 -7863.063 8558.75 -7865.3311 8558.75 c
-f
--7865.3311 8559.1602 m
--7867.5986 8559.1602 -7869.1782 8558.7666 -7869.1782 8558.4131 C
--7869.2344 8558.4131 L
--7869.3135 8558.4131 L
--7869.3135 8558.4785 -7869.2842 8558.54 -7869.2344 8558.5986 c
--7868.8442 8559.0518 -7867.041 8559.2949 -7865.3311 8559.2949 c
--7863.6201 8559.2949 -7861.8174 8559.0518 -7861.4282 8558.5986 c
--7861.3774 8558.54 -7861.3481 8558.4785 -7861.3481 8558.4131 C
--7861.4282 8558.4131 L
--7861.4834 8558.4131 L
--7861.4834 8558.7666 -7863.063 8559.1602 -7865.3311 8559.1602 c
-f
--7865.3311 8559.5693 m
--7867.5986 8559.5693 -7869.1782 8559.1758 -7869.1782 8558.8232 C
--7869.2344 8558.8232 L
--7869.3135 8558.8232 L
--7869.3135 8558.8877 -7869.2842 8558.9502 -7869.2344 8559.0078 c
--7868.8442 8559.4619 -7867.041 8559.7041 -7865.3311 8559.7041 c
--7863.6201 8559.7041 -7861.8174 8559.4619 -7861.4282 8559.0078 c
--7861.3774 8558.9502 -7861.3481 8558.8877 -7861.3481 8558.8232 C
--7861.4282 8558.8232 L
--7861.4834 8558.8232 L
--7861.4834 8559.1758 -7863.063 8559.5693 -7865.3311 8559.5693 c
-f
--7865.3311 8559.9795 m
--7867.5986 8559.9795 -7869.1782 8559.585 -7869.1782 8559.2324 C
--7869.2344 8559.2324 L
--7869.3135 8559.2324 L
--7869.3135 8559.2979 -7869.2842 8559.3594 -7869.2344 8559.418 c
--7868.8442 8559.8711 -7867.041 8560.1143 -7865.3311 8560.1143 c
--7863.6201 8560.1143 -7861.8174 8559.8711 -7861.4282 8559.418 c
--7861.3774 8559.3594 -7861.3481 8559.2979 -7861.3481 8559.2324 C
--7861.4282 8559.2324 L
--7861.4834 8559.2324 L
--7861.4834 8559.585 -7863.063 8559.9795 -7865.3311 8559.9795 c
-f
--7865.3311 8560.3887 m
--7867.5986 8560.3887 -7869.1782 8559.9951 -7869.1782 8559.6416 C
--7869.2344 8559.6416 L
--7869.3135 8559.6416 L
--7869.3135 8559.707 -7869.2842 8559.7686 -7869.2344 8559.8271 c
--7868.8442 8560.2803 -7867.041 8560.5234 -7865.3311 8560.5234 c
--7863.6201 8560.5234 -7861.8174 8560.2803 -7861.4282 8559.8271 c
--7861.3774 8559.7686 -7861.3481 8559.707 -7861.3481 8559.6416 C
--7861.4282 8559.6416 L
--7861.4834 8559.6416 L
--7861.4834 8559.9951 -7863.063 8560.3887 -7865.3311 8560.3887 c
-f
--7865.3311 8560.7979 m
--7867.5986 8560.7979 -7869.1782 8560.4043 -7869.1782 8560.0518 C
--7869.2344 8560.0518 L
--7869.3135 8560.0518 L
--7869.3135 8560.1162 -7869.2842 8560.1787 -7869.2344 8560.2373 c
--7868.8442 8560.6904 -7867.041 8560.9326 -7865.3311 8560.9326 c
--7863.6201 8560.9326 -7861.8174 8560.6904 -7861.4282 8560.2373 c
--7861.3774 8560.1787 -7861.3481 8560.1162 -7861.3481 8560.0518 C
--7861.4282 8560.0518 L
--7861.4834 8560.0518 L
--7861.4834 8560.4043 -7863.063 8560.7979 -7865.3311 8560.7979 c
-f
--7865.3311 8561.208 m
--7867.5986 8561.208 -7869.1782 8560.8135 -7869.1782 8560.4609 C
--7869.2344 8560.4609 L
--7869.3135 8560.4609 L
--7869.3135 8560.5264 -7869.2842 8560.5879 -7869.2344 8560.6465 c
--7868.8442 8561.0996 -7867.041 8561.3428 -7865.3311 8561.3428 c
--7863.6201 8561.3428 -7861.8174 8561.0996 -7861.4282 8560.6465 c
--7861.3774 8560.5879 -7861.3481 8560.5264 -7861.3481 8560.4609 C
--7861.4282 8560.4609 L
--7861.4834 8560.4609 L
--7861.4834 8560.8135 -7863.063 8561.208 -7865.3311 8561.208 c
-f
--7865.3311 8561.6172 m
--7867.5986 8561.6172 -7869.1782 8561.2236 -7869.1782 8560.8701 C
--7869.2344 8560.8701 L
--7869.3135 8560.8701 L
--7869.3135 8560.9355 -7869.2842 8560.9971 -7869.2344 8561.0557 c
--7868.8442 8561.5088 -7867.041 8561.752 -7865.3311 8561.752 c
--7863.6201 8561.752 -7861.8174 8561.5088 -7861.4282 8561.0557 c
--7861.3774 8560.9971 -7861.3481 8560.9355 -7861.3481 8560.8701 C
--7861.4282 8560.8701 L
--7861.4834 8560.8701 L
--7861.4834 8561.2236 -7863.063 8561.6172 -7865.3311 8561.6172 c
-f
--7865.3311 8562.0264 m
--7867.5986 8562.0264 -7869.1782 8561.6328 -7869.1782 8561.2803 C
--7869.2344 8561.2803 L
--7869.3135 8561.2803 L
--7869.3135 8561.3457 -7869.2842 8561.4072 -7869.2344 8561.4658 c
--7868.8442 8561.9189 -7867.041 8562.1611 -7865.3311 8562.1611 c
--7863.6201 8562.1611 -7861.8174 8561.9189 -7861.4282 8561.4658 c
--7861.3774 8561.4072 -7861.3481 8561.3457 -7861.3481 8561.2803 C
--7861.4282 8561.2803 L
--7861.4834 8561.2803 L
--7861.4834 8561.6328 -7863.063 8562.0264 -7865.3311 8562.0264 c
-f
--7865.3311 8562.4365 m
--7867.5986 8562.4365 -7869.1782 8562.043 -7869.1782 8561.6895 C
--7869.2344 8561.6895 L
--7869.3135 8561.6895 L
--7869.3135 8561.7549 -7869.2842 8561.8164 -7869.2344 8561.875 c
--7868.8442 8562.3281 -7867.041 8562.5713 -7865.3311 8562.5713 c
--7863.6201 8562.5713 -7861.8174 8562.3281 -7861.4282 8561.875 c
--7861.3774 8561.8164 -7861.3481 8561.7549 -7861.3481 8561.6895 C
--7861.4282 8561.6895 L
--7861.4834 8561.6895 L
--7861.4834 8562.043 -7863.063 8562.4365 -7865.3311 8562.4365 c
-f
--7865.3311 8562.8457 m
--7867.5986 8562.8457 -7869.1782 8562.4521 -7869.1782 8562.0986 C
--7869.2344 8562.0986 L
--7869.3135 8562.0986 L
--7869.3135 8562.1484 -7869.2935 8562.1953 -7869.2642 8562.2412 c
--7869.2554 8562.2559 -7869.2466 8562.2705 -7869.2344 8562.2842 c
--7868.8442 8562.7373 -7867.041 8562.9805 -7865.3311 8562.9805 c
--7863.6201 8562.9805 -7861.8174 8562.7373 -7861.4282 8562.2842 c
--7861.416 8562.2705 -7861.4072 8562.2559 -7861.3984 8562.2412 c
--7861.3682 8562.1953 -7861.3481 8562.1484 -7861.3481 8562.0986 C
--7861.4282 8562.0986 L
--7861.4834 8562.0986 L
--7861.4834 8562.4521 -7863.063 8562.8457 -7865.3311 8562.8457 c
-f
--7865.3311 8563.2549 m
--7867.5986 8563.2549 -7869.1782 8562.8613 -7869.1782 8562.5088 C
--7869.2344 8562.5088 L
--7869.3135 8562.5088 L
--7869.3135 8562.5732 -7869.2842 8562.6357 -7869.2344 8562.6934 c
--7868.8442 8563.1475 -7867.041 8563.3896 -7865.3311 8563.3896 c
--7863.6201 8563.3896 -7861.8174 8563.1475 -7861.4282 8562.6934 c
--7861.3774 8562.6357 -7861.3481 8562.5732 -7861.3481 8562.5088 C
--7861.4282 8562.5088 L
--7861.4834 8562.5088 L
--7861.4834 8562.8613 -7863.063 8563.2549 -7865.3311 8563.2549 c
-f
-0.67 g
--7858.6758 8549.9023 m
--7858.7646 8549.9814 -7858.8838 8550.0596 -7859.0342 8550.1328 c
--7859.0342 8550.1338 -7859.0352 8550.1338 -7859.0361 8550.1338 c
--7859.1226 8550.1768 -7859.2168 8550.2178 -7859.3218 8550.2568 c
--7859.3218 8550.2568 l
--7859.5313 8550.3369 -7859.7759 8550.4131 -7860.0527 8550.4824 c
--7860.0562 8550.4834 -7860.0591 8550.4844 -7860.0625 8550.4854 c
--7860.6152 8550.624 -7861.293 8550.7402 -7862.0591 8550.8271 c
--7862.0698 8550.8281 -7862.0786 8550.8291 -7862.0889 8550.8311 c
--7862.4639 8550.873 -7862.8608 8550.9082 -7863.2734 8550.9346 c
--7863.292 8550.9365 -7863.3086 8550.9375 -7863.3262 8550.9385 c
--7863.5176 8550.9502 -7863.7119 8550.9609 -7863.9102 8550.9697 c
--7863.9248 8550.9697 -7863.9385 8550.9717 -7863.9546 8550.9717 c
--7863.9678 8550.9727 -7863.9824 8550.9727 -7863.9966 8550.9736 c
--7864.2026 8550.9814 -7864.4111 8550.9883 -7864.6226 8550.9932 c
--7864.6279 8550.9932 -7864.6353 8550.9932 -7864.6416 8550.9932 c
--7864.8682 8550.998 -7865.0977 8551.001 -7865.3311 8551.001 c
--7865.563 8551.001 -7865.7935 8550.998 -7866.021 8550.9932 c
--7866.0264 8550.9932 -7866.0337 8550.9932 -7866.04 8550.9932 c
--7866.251 8550.9883 -7866.46 8550.9814 -7866.665 8550.9736 c
--7866.6782 8550.9727 -7866.6943 8550.9727 -7866.708 8550.9717 c
--7866.7231 8550.9717 -7866.7378 8550.9697 -7866.752 8550.9697 c
--7866.9502 8550.9609 -7867.1455 8550.9502 -7867.3369 8550.9385 c
--7867.3535 8550.9375 -7867.3706 8550.9365 -7867.3862 8550.9346 c
--7867.8008 8550.9082 -7868.1982 8550.873 -7868.5752 8550.8311 c
--7868.584 8550.8291 -7868.5918 8550.8291 -7868.6016 8550.8281 c
--7869.3682 8550.7402 -7870.0474 8550.624 -7870.6001 8550.4854 c
--7870.6025 8550.4844 -7870.6055 8550.4834 -7870.6079 8550.4824 c
--7871.0234 8550.3779 -7871.3672 8550.2607 -7871.626 8550.1338 c
--7871.6279 8550.1338 -7871.6279 8550.1328 v
--7871.7041 8550.0957 -7871.7729 8550.0566 -7871.833 8550.0176 c
--7871.979 8549.9238 -7872.0806 8549.8262 -7872.1294 8549.7256 c
--7872.1538 8549.6777 -7872.165 8549.6289 -7872.165 8549.5801 C
--7872.165 8551.3926 L
--7872.165 8551.4912 -7872.1167 8551.5869 -7872.0264 8551.6787 c
--7871.9351 8551.7715 -7871.8018 8551.8604 -7871.6279 8551.9463 c
--7871.4551 8552.0303 -7871.2441 8552.1123 -7870.998 8552.1875 c
--7870.752 8552.2627 -7870.4727 8552.333 -7870.1631 8552.3975 c
--7869.8774 8552.457 -7869.5654 8552.5107 -7869.2344 8552.5586 c
--7869.2065 8552.5625 -7869.1807 8552.5674 -7869.1519 8552.5713 c
--7868.7881 8552.6221 -7868.3999 8552.666 -7867.9912 8552.7021 c
--7867.582 8552.7383 -7867.1538 8552.7666 -7866.708 8552.7852 c
--7866.2642 8552.8037 -7865.8022 8552.8135 -7865.3311 8552.8135 c
--7864.8594 8552.8135 -7864.3984 8552.8037 -7863.9546 8552.7852 c
--7863.5088 8552.7666 -7863.0791 8552.7383 -7862.6714 8552.7021 c
--7862.2622 8552.666 -7861.873 8552.6221 -7861.5098 8552.5713 c
--7861.4814 8552.5674 -7861.4561 8552.5625 -7861.4282 8552.5586 c
--7861.0967 8552.5107 -7860.7842 8552.457 -7860.498 8552.3975 c
--7860.1895 8552.333 -7859.9087 8552.2627 -7859.6641 8552.1875 c
--7859.418 8552.1123 -7859.2065 8552.0303 -7859.0342 8551.9463 c
--7858.8608 8551.8604 -7858.7266 8551.7715 -7858.6362 8551.6787 c
--7858.5439 8551.5869 -7858.4966 8551.4912 -7858.4966 8551.3926 C
--7858.4966 8549.5801 L
--7858.4966 8549.6533 -7858.5234 8549.7256 -7858.5752 8549.7959 c
--7858.6016 8549.832 -7858.6362 8549.8672 -7858.6758 8549.9023 c
-f
-0.39 g
--7860.749 8548.5254 m
--7861.2017 8549.4326 -7861.8945 8549.8896 -7861.9287 8549.9111 C
--7861.9458 8549.9209 L
--7868.9648 8549.9209 L
--7868.9814 8549.7881 L
--7868.9746 8549.7861 -7868.269 8549.5869 -7867.5303 8548.2344 C
--7870.2256 8548.4248 -7872.165 8548.9551 -7872.165 8549.5801 c
--7872.165 8549.6289 -7872.1538 8549.6777 -7872.1294 8549.7256 c
--7872.0806 8549.8262 -7871.979 8549.9238 -7871.833 8550.0176 c
--7871.771 8550.0576 -7871.7031 8550.0957 -7871.626 8550.1338 c
--7871.3672 8550.2607 -7871.0234 8550.3779 -7870.6079 8550.4824 c
--7870.6055 8550.4834 -7870.6025 8550.4844 -7870.6001 8550.4854 c
--7870.0474 8550.624 -7869.3682 8550.7402 -7868.6016 8550.8281 c
--7868.5918 8550.8291 -7868.584 8550.8291 -7868.5752 8550.8311 c
--7868.1982 8550.873 -7867.8008 8550.9082 -7867.3862 8550.9346 c
--7867.3706 8550.9365 -7867.3535 8550.9375 -7867.3369 8550.9385 c
--7867.1455 8550.9502 -7866.9502 8550.9609 -7866.752 8550.9697 c
--7866.7222 8550.9707 -7866.6943 8550.9717 -7866.665 8550.9736 c
--7866.46 8550.9814 -7866.251 8550.9883 -7866.04 8550.9932 c
--7866.0337 8550.9932 -7866.0264 8550.9932 -7866.021 8550.9932 c
--7865.7935 8550.998 -7865.563 8551.001 -7865.3311 8551.001 c
--7865.0977 8551.001 -7864.8682 8550.998 -7864.6416 8550.9932 c
--7864.6353 8550.9932 -7864.6279 8550.9932 -7864.6226 8550.9932 c
--7864.4111 8550.9883 -7864.2026 8550.9814 -7863.9966 8550.9736 c
--7863.9678 8550.9717 -7863.9385 8550.9707 -7863.9102 8550.9697 c
--7863.7119 8550.9609 -7863.5176 8550.9502 -7863.3262 8550.9385 c
--7863.3086 8550.9375 -7863.292 8550.9365 -7863.2734 8550.9346 c
--7862.8608 8550.9082 -7862.4639 8550.873 -7862.0889 8550.8311 c
--7862.0786 8550.8291 -7862.0698 8550.8281 -7862.0591 8550.8271 c
--7861.293 8550.7402 -7860.6152 8550.624 -7860.0625 8550.4854 c
--7860.0591 8550.4844 -7860.0562 8550.4834 -7860.0527 8550.4824 c
--7859.7759 8550.4131 -7859.5313 8550.3369 -7859.3218 8550.2568 C
--7859.3218 8550.2568 L
--7859.2168 8550.2178 -7859.1226 8550.1768 -7859.0361 8550.1338 c
--7858.8848 8550.0596 -7858.7646 8549.9824 -7858.6758 8549.9023 c
--7858.6362 8549.8672 -7858.6016 8549.832 -7858.5752 8549.7959 c
--7858.5234 8549.7256 -7858.4966 8549.6533 -7858.4966 8549.5801 c
--7858.4966 8549.1611 -7859.3662 8548.7861 -7860.749 8548.5254 C
-f
-*u
-1 g
--7868.6729 8549.7861 m
--7868.1362 8549.7861 -7862.0264 8549.7861 -7861.9863 8549.7861 C
--7861.9033 8549.7305 -7861.0566 8549.1357 -7860.6826 8548.0156 c
--7860.6118 8547.8037 -7860.5874 8547.5654 -7860.5874 8547.3086 c
--7860.5874 8546.9463 -7860.6382 8546.5459 -7860.6929 8546.1328 c
--7860.751 8545.6885 -7860.813 8545.2168 -7860.813 8544.749 c
--7860.813 8544.1709 -7860.7178 8543.5986 -7860.4072 8543.0879 c
--7859.7178 8541.9551 -7859.019 8541.4033 -7858.6768 8541.1787 C
--7859.1343 8541.1787 -7865.3706 8541.1738 Y
--7865.3882 8541.1807 -7867.0806 8541.9609 -7867.2144 8543.5332 c
--7867.2256 8543.6553 -7867.2305 8543.7744 -7867.2305 8543.8926 c
--7867.2305 8544.3721 -7867.1543 8544.8252 -7867.0801 8545.2666 c
--7867.0063 8545.7021 -7866.9351 8546.127 -7866.9351 8546.5615 c
--7866.9351 8547.041 -7867.0225 8547.5332 -7867.2886 8548.0674 c
--7867.8271 8549.1416 -7868.3599 8549.5967 -7868.6729 8549.7861 C
-f
-1 D
--7862.2344 8548.8447 m
--7866.7441 8548.8447 L
--7866.7441 8548.71 L
--7862.2344 8548.71 L
--7862.2344 8548.8447 L
-f
--7861.6958 8544.6045 m
--7866.1377 8544.6045 L
--7866.1377 8544.4697 L
--7861.6958 8544.4697 L
--7861.6958 8544.6045 L
-f
-0 D
--7861.4946 8546.1523 m
--7861.4946 8546.2871 L
--7866.0034 8546.2871 L
--7866.0034 8546.1523 L
--7861.4946 8546.1523 L
-f
--7866.0713 8545.4785 m
--7861.9658 8545.4785 L
--7861.9658 8545.6133 L
--7866.0713 8545.6133 L
--7866.0713 8545.4785 L
-f
-1 D
--7866.0034 8547.0947 m
--7861.5615 8547.0947 L
--7861.5615 8547.2295 L
--7866.0034 8547.2295 L
--7866.0034 8547.0947 L
-f
--7865.3311 8541.7764 m
--7860.6865 8541.7764 L
--7860.6865 8541.9121 L
--7865.3311 8541.9121 L
--7865.3311 8541.7764 L
-f
--7865.8018 8542.3154 m
--7862.1006 8542.3154 L
--7862.1006 8542.4502 L
--7865.8018 8542.4502 L
--7865.8018 8542.3154 L
-f
--7866.1377 8543.0557 m
--7861.4272 8543.0557 L
--7861.4272 8543.1904 L
--7866.1377 8543.1904 L
--7866.1377 8543.0557 L
-f
--7866.2729 8543.7959 m
--7861.5615 8543.7959 L
--7861.5615 8543.9307 L
--7866.2729 8543.9307 L
--7866.2729 8543.7959 L
-f
-0 D
--7866.2729 8547.9014 m
--7861.8975 8547.9014 L
--7861.8975 8548.0371 L
--7866.2729 8548.0371 L
--7866.2729 8547.9014 L
-f
-*U
-*u
-0 g
--7868.9814 8549.7881 m
--7868.9648 8549.9209 L
--7861.9458 8549.9209 L
--7861.9287 8549.9111 L
--7861.8945 8549.8896 -7861.2017 8549.4326 -7860.749 8548.5254 c
--7860.6768 8548.3809 -7860.6104 8548.2256 -7860.5542 8548.0576 c
--7860.376 8547.5195 -7860.4639 8546.8379 -7860.5586 8546.1152 c
--7860.6929 8545.0957 -7860.8286 8544.041 -7860.292 8543.1582 c
--7859.373 8541.6484 -7858.4111 8541.1777 -7858.4014 8541.1729 C
--7858.4302 8541.0439 L
--7865.3975 8541.0439 L
--7865.4434 8541.0586 -7867.208 8541.8691 -7867.3496 8543.5215 c
--7867.4038 8544.1533 -7867.3066 8544.7305 -7867.2134 8545.2881 c
--7867.063 8546.1836 -7866.9209 8547.0283 -7867.4102 8548.0068 c
--7867.4502 8548.0869 -7867.4902 8548.1611 -7867.5303 8548.2344 c
--7868.269 8549.5869 -7868.9746 8549.7861 -7868.9814 8549.7881 C
-f
-1 D
--7866.9351 8546.5615 m
--7866.9351 8546.127 -7867.0063 8545.7021 -7867.0801 8545.2666 c
--7867.1543 8544.8252 -7867.2305 8544.3721 -7867.2305 8543.8926 c
--7867.2305 8543.7744 -7867.2256 8543.6553 -7867.2144 8543.5332 c
--7867.0806 8541.9609 -7865.3882 8541.1807 -7865.3706 8541.1738 C
--7859.1343 8541.1787 -7858.6768 8541.1787 V
--7859.019 8541.4033 -7859.7178 8541.9551 -7860.4072 8543.0879 c
--7860.7178 8543.5986 -7860.813 8544.1709 -7860.813 8544.749 c
--7860.813 8545.2168 -7860.751 8545.6885 -7860.6929 8546.1328 c
--7860.6382 8546.5459 -7860.5874 8546.9463 -7860.5874 8547.3086 c
--7860.5874 8547.5654 -7860.6118 8547.8037 -7860.6826 8548.0156 c
--7861.0566 8549.1357 -7861.9033 8549.7305 -7861.9863 8549.7861 C
--7862.0264 8549.7861 -7868.1362 8549.7861 -7868.6729 8549.7861 C
--7868.3599 8549.5967 -7867.8271 8549.1416 -7867.2886 8548.0674 c
--7867.0225 8547.5332 -7866.9351 8547.041 -7866.9351 8546.5615 c
-f
-*U
-0 D
--7860.6865 8541.7764 m
--7865.3311 8541.7764 L
--7865.3311 8541.9121 L
--7860.6865 8541.9121 L
--7860.6865 8541.7764 L
-f
--7862.1006 8542.3154 m
--7865.8018 8542.3154 L
--7865.8018 8542.4502 L
--7862.1006 8542.4502 L
--7862.1006 8542.3154 L
-f
--7861.4272 8543.0557 m
--7866.1377 8543.0557 L
--7866.1377 8543.1904 L
--7861.4272 8543.1904 L
--7861.4272 8543.0557 L
-f
--7861.5615 8543.7959 m
--7866.2729 8543.7959 L
--7866.2729 8543.9307 L
--7861.5615 8543.9307 L
--7861.5615 8543.7959 L
-f
--7866.1377 8544.6045 m
--7861.6958 8544.6045 L
--7861.6958 8544.4697 L
--7866.1377 8544.4697 L
--7866.1377 8544.6045 L
-f
--7861.9658 8545.4785 m
--7866.0713 8545.4785 L
--7866.0713 8545.6133 L
--7861.9658 8545.6133 L
--7861.9658 8545.4785 L
-f
--7866.0034 8546.2871 m
--7861.4946 8546.2871 L
--7861.4946 8546.1523 L
--7866.0034 8546.1523 L
--7866.0034 8546.2871 L
-f
--7861.5615 8547.0947 m
--7866.0034 8547.0947 L
--7866.0034 8547.2295 L
--7861.5615 8547.2295 L
--7861.5615 8547.0947 L
-f
--7861.8975 8547.9014 m
--7866.2729 8547.9014 L
--7866.2729 8548.0371 L
--7861.8975 8548.0371 L
--7861.8975 8547.9014 L
-f
--7866.7441 8548.8447 m
--7862.2344 8548.8447 L
--7862.2344 8548.71 L
--7866.7441 8548.71 L
--7866.7441 8548.8447 L
-f
-U
-U
-U
-0 To
-1 0 0 -1 -7864.4927 8576.5957 0 Tp
-0 Tv
-TP
--11.5064 0 Td
-0 Tr
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(Spool) Tx 1 0 Tk
-(\r) TX
-TO
-U
-%AI8_EndBrushPattern
-%AI8_BeginBrushPattern
-(New Pattern 43)
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
--7883.749 8585.8232 m
--7870.9414 8585.8232 L
--7870.9414 8557.1563 L
--7883.749 8557.1563 L
--7883.749 8585.8232 L
-n
-0 O
-0.3 g
--7870.9414 8574.5498 m
--7875.1558 8563.2031 L
--7875.3862 8562.5801 -7876.0439 8562.2598 -7876.6719 8562.4141 C
--7876.8018 8562.3506 -7876.9473 8562.3359 -7877.0889 8562.3164 C
--7875.771 8562.1797 -7874.7358 8561.1084 -7874.7358 8559.7627 c
--7874.7358 8558.3184 -7875.9009 8557.1563 -7877.3447 8557.1563 c
--7878.7842 8557.1563 -7879.9482 8558.3184 -7879.9482 8559.7627 c
--7879.9482 8561.1084 -7878.916 8562.1797 -7877.6016 8562.3164 C
--7877.7441 8562.3359 -7877.8809 8562.3506 -7878.0186 8562.4141 C
--7878.645 8562.2598 -7879.3018 8562.5801 -7879.5313 8563.2031 C
--7883.749 8574.5498 L
--7884 8575.2168 -7883.6543 8575.9688 -7882.9834 8576.2188 c
--7882.313 8576.4658 -7881.5664 8576.123 -7881.3193 8575.4531 C
--7880.1289 8572.2441 L
--7880.0054 8572.6758 -7879.876 8573.0762 -7879.7119 8573.4385 C
--7882.4902 8584.2402 L
--7882.668 8584.9375 -7882.252 8585.6416 -7881.5586 8585.8232 c
--7880.8657 8586 -7880.1626 8585.583 -7879.9766 8584.8867 C
--7877.5918 8575.5967 L
--7877.5049 8575.6084 -7877.4282 8575.6494 -7877.3447 8575.6494 c
--7877.2617 8575.6494 -7877.1855 8575.6084 -7877.0991 8575.5967 C
--7874.7129 8584.8867 L
--7874.5303 8585.583 -7873.8242 8586 -7873.1318 8585.8232 c
--7872.4385 8585.6416 -7872.0215 8584.9375 -7872.1978 8584.2402 C
--7874.9766 8573.4385 L
--7874.8154 8573.0762 -7874.6846 8572.6758 -7874.5625 8572.2441 C
--7873.3711 8575.4531 L
--7873.125 8576.123 -7872.3799 8576.4658 -7871.707 8576.2188 c
--7871.0391 8575.9688 -7870.6914 8575.2168 -7870.9414 8574.5498 C
-f
-U
-%AI8_EndBrushPattern
-%AI5_End_NonPrinting--
-%AI5_BeginPalette
-0 0 Pb
-1 1 1 1 ([Registration]) 0 Xs
-([Registration]) Pc
-0 0 0 0.15 (15%) 0 0 Xk
-(15%) Pc
-0 0 0 0.3 (30%) 0 0 Xk
-(30%) Pc
-0 0 0 0.5 (50%) 0 0 Xk
-(50%) Pc
-0 0 0 0.75 (75%) 0 0 Xk
-(75%) Pc
-(horizontal rules) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(horizontal rules) Pc
-(bi-direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(bi-direction diagonals) Pc
-(one direction diagonals) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(one direction diagonals) Pc
-(white dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(white dots) Pc
-(black dots) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
-(black dots) Pc
-PB
-%AI5_EndPalette
-%AI5_Begin_NonPrinting
-Np
-%AI8_BeginPluginObject
-(Adobe Brush Manager Order)
-(Adobe Brush Manager Order)
-( Adobe Scatter Brush Tool/ Scatter Brush 1/ Adobe Scatter Brush Tool/ ) -
-(Mainframe/ Adobe Scatter Brush Tool/ Client/ Adobe Scatter Brush Tool/) -
-( person/ Adobe Scatter Brush Tool/ Print spooler/ Adobe Scatter Brush ) -
-(Tool/ Folders/ Adobe Scatter Brush Tool/ Printer/ Adobe Scatter Brush ) -
-(Tool/ Client 1/ Adobe Scatter Brush Tool/ Mainframe 1/ Adobe Scatter B) -
-(rush Tool/ Print Server/) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Client 1)
-(1 /New Pattern 19/ 0 0.0784314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Folders)
-(1 /New Pattern 9/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe)
-(1 /New Pattern 23/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Mainframe 1)
-(1 /New Pattern 40/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(person)
-(1 /New Pattern 43/ 0 0.701961 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Print Server)
-(1 /New Pattern 21/ 0 0.184314 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Print spooler)
-(1 /New Pattern 42/ 0 1 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Printer)
-(1 /New Pattern 10/ 0 0.160784 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI8_BeginPluginObject
-(Adobe Scatter Brush Tool)
-(Scatter Brush 1)
-(1 /New Pattern 22/ 0 0.2 / 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0) .
-%AI8_EndPluginObject
-%AI5_End_NonPrinting--
-%AI5_Begin_NonPrinting
-Np
-%AI8_PluginGroupInfo
-(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends)
-%AI8_PluginGroupInfo
-(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (Art Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Calligraphic Brush Tool) (Undo New Calligraphic Brush) (Calligraphic Brush Tool)
-%AI8_PluginGroupInfo
-(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool)
-%AI5_End_NonPrinting--
-%%EndSetup
-%AI5_BeginLayer
-1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
-(Layer 1) Ln
-0 A
-1 Ap
-0 O
-0.95 g
-0 R
-0 G
-800 Ar
-0 J 0 j 0.5 w 4 M []0 d
-%AI3_Note:
-0 D
-1 XR
-501.71 169.1504 m
-153.71 169.1504 L
-153.71 589.1504 L
-501.71 589.1504 L
-501.71 169.1504 L
-(b) *
-0 Ap
-1 w
-0 XR
--7885 476.1484 m
-8498 476.1484 L
-(N) *
-u
-278.2988 366.5078 m
-326.5869 366.5078 L
-326.5869 452.4067 L
-278.2988 452.4067 L
-278.2988 366.5078 L
-n
-0 O
-0.64 g
-326.5869 445.2427 m
-324.6357 452.4067 L
-308.1064 452.4067 L
-306.2334 445.2427 L
-298.5684 445.2427 L
-296.4814 452.4067 L
-280.1719 452.4067 L
-278.2988 445.2427 L
-278.2988 445.2153 L
-326.5869 445.2153 L
-326.5869 445.2427 L
-f
-0.92 g
-278.2988 445.2153 m
-278.2988 366.5273 L
-286.6445 366.5273 L
-286.6445 370.2285 L
-286.6963 370.2285 L
-286.6963 445.2153 L
-278.2988 445.2153 L
-f
-326.5869 445.2153 m
-318.4482 445.2153 L
-318.4482 366.5078 L
-326.5869 366.5078 L
-326.5869 445.2153 L
-f
-0.8158 g
-286.6963 445.2153 m
-286.6963 370.2285 L
-318.3896 370.2285 L
-318.3896 366.5078 L
-318.4482 366.5078 L
-318.4482 445.2153 L
-286.6963 445.2153 L
-f
-0 R
-0.67 G
-0.5 w 3.8635 M
-298.5684 445.2427 m
-298.5771 370.2285 L
-S
-299.4189 445.2427 m
-299.4277 370.2285 L
-S
-300.2715 445.2427 m
-300.2803 370.2285 L
-S
-301.123 445.2427 m
-301.1309 370.2285 L
-S
-301.9746 445.2427 m
-301.9814 370.2285 L
-S
-302.8262 445.2427 m
-302.834 370.2285 L
-S
-303.6787 445.2427 m
-303.6846 370.2285 L
-S
-303.6631 445.2427 m
-303.6709 370.2285 L
-S
-304.5146 445.2427 m
-304.5234 370.2285 L
-S
-305.3662 445.2427 m
-305.375 370.2285 L
-S
-306.2188 445.2427 m
-306.2275 370.2285 L
-S
-U
-0 To
-1 0 0 1 303.8311 457.7568 0 Tp
-0 Tv
-TP
--32.827 0 Td
-0 Tr
-0 O
-0 g
-1 w 4 M
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
-0 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-0 0 Tl
-0 Tc
-0 Tw
-(F) Tx 1 45 Tk
-(reeBSD Ser) Tx 1 -30 Tk
-(v) Tx 1 25 Tk
-(er) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 213.8311 386.7568 0 Tp
-0 Tv
-TP
--13.3193 0 Td
-0 Tr
-(Pr) Tx 1 -15 Tk
-(inter) Tx 1 0 Tk
-(\r) TX
-TO
-0 To
-1 0 0 1 390.3867 467.3257 0 Tp
-0 Tv
-TP
--6.2504 0 Td
-0 Tr
-(PC) Tx 1 0 Tk
-(\r) TX
-TO
-0 R
-0 G
-0.5 w
-217.0078 407.6445 m
-223.6318 406.6948 230.0293 408.6035 236.5386 407.7129 c
-242.2739 406.9282 251.585 409.6475 256.374 405.7373 c
-259.2319 403.4033 256.8335 403.853 255.4209 401.2061 c
-251.8193 394.4561 262.8799 392.4922 267.1919 391.708 c
-271.0522 391.0049 273.6836 390.2246 277.2637 388.5576 c
-281.0601 386.79 292.1436 381.0078 295.9917 383.6387 c
-299.3252 385.9189 298.2676 392.4941 298.7207 395.9209 c
-299.7368 403.6084 297.4468 409.623 303.6387 415.3564 c
-S
-u
-%_0 O
-%_0 g
-%_1 w 1 M
-%_222 413 m
-%_B
-%_U
-%_0 Ap
-0 A
-u
-0 O
-0 g
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-222 413 m
-F
-u
-0.8 g
-235.7314 403.9258 m
-255.7764 410.7832 l
-254.1958 413.6846 l
-241.5347 409.7285 l
-235.4683 413.6846 l
-235.7314 403.9258 l
-f
-0 R
-0.9 G
-0.5 w
-254.4678 413.8105 m
-241.5347 409.7285 l
-S
-0.5 G
-255.7764 410.7832 m
-254.1958 413.6846 l
-S
-0.25 G
-235.7314 403.9258 m
-255.7764 410.7832 l
-S
-0.5 G
-241.5347 409.7285 m
-235.4683 413.6846 l
-S
-0 O
-0.8 g
-1 w
-215.687 421.335 m
-227.8179 426.6094 l
-231.2476 422.3906 l
-215.687 421.335 l
-f
-1 Ap
-0.57 g
-235.9951 402.0801 m
-189.5747 402.0801 L
-189.5747 399.1797 L
-235.9951 399.1797 L
-235.9951 402.0801 L
-f
-0 Ap
-0 R
-0.5 G
-0.5 w
-227.8179 426.6094 m
-231.2476 422.3906 l
-S
-0.9 G
-215.687 421.335 m
-228.3799 426.8867 l
-S
-0 O
-0.8 g
-1 w
-188.2539 423.3721 m
-188.2539 402.0488 l
-237.0503 402.0488 l
-237.0503 419.2227 l
-233.6211 423.3125 l
-188.2539 423.3721 l
-f
-0 R
-0.5 G
-0.5 w
-188.2539 407.6182 m
-237.0503 407.6182 l
-S
-191.1563 420.0156 m
-200.6523 420.0156 l
-S
-191.1563 418.3672 m
-200.6523 418.3672 l
-S
-191.1563 416.7197 m
-200.6523 416.7197 l
-S
-191.1563 415.0713 m
-200.6523 415.0713 l
-S
-191.1563 413.4238 m
-200.6523 413.4238 l
-S
-237.0503 419.2227 m
-233.6211 423.3125 l
-S
-0.25 G
-188.2539 402.0488 m
-237.0503 402.0488 l
-237.0503 419.2227 l
-S
-0.9 G
-233.6211 423.3418 m
-188.2539 423.3418 l
-188.2539 401.7793 l
-S
-0.25 G
-235.9951 402.0488 m
-235.9951 399.1348 l
-189.5835 399.1348 l
-S
-U
-U
-(Adobe Scatter Brush Tool) 1 0 55 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000036A65072696E746572
-/Adobe_Brushed_Path () XT
-1 To
-1 0 0 1 281.519 400.9961 0 Tp
-0 Tv
-1 Ap
-0 O
-1 g
-0 G
-322.6641 377.0742 m
-281.519 377.0742 L
-281.519 400.9961 L
-322.6641 400.9961 L
-322.6641 377.0742 L
-b
-TP
-11.2536 -7.5 Td
-0 Tr
-0 g
-1 w
-%_ 0 50 XQ
-/_Helvetica 9 8.379 -2.0251 Tf
--2.5 Ts
-100 100 Tz
-0 Tt
-%_0 0 100 100 Xu
-%AI55J_GlyphSubst: GlyphSubstNone
-1 TA
-%_ 0 XL
-0 TY
-0 TV
-23.6196 0 Xb
-XB
-0 0 5 TC
-100 100 200 TW
-25 TG
-0 3.2805 3.2805 Ti
-1 Ta
-0 1 2 2 3 Th
-0 Tq
-240 Tg
-10 0 Tl
-0 Tc
-0 Tw
-(Pr) Tx 1 -15 Tk
-(int\r) Tx 1 0 Tk
--5.6841 -10 Td
-(System) Tx 1 0 Tk
-(\r) TX
-TO
-0 Ap
-0 R
-0 G
-0.5 w
-308.6152 430.79 m
-319.5049 432.8555 329.874 434.1938 341.0127 434.2627 c
-346.5908 434.2969 353.5547 433.0586 357.333 438.1875 c
-359.3633 440.9438 344.6357 443.0537 347.3252 444.3096 c
-352.249 446.6089 361.1465 445.8994 366.5117 446.0098 c
-369.8262 446.0776 373.1357 446.0195 376.4365 445.8389 c
-S
-1 To
-1 0 0 1 281.519 434.9224 0 Tp
-0 Tv
-1 Ap
-0 O
-1 g
-322.6641 411.0005 m
-281.519 411.0005 L
-281.519 434.9224 L
-322.6641 434.9224 L
-322.6641 411.0005 L
-b
-TP
-6.3166 -7.5 Td
-0 Tr
-0 g
-1 w
-(Samba\r) Tx 1 0 Tk
--0.747 -10 Td
-(System) Tx 1 0 Tk
-(\r) TX
-TO
-u
-%_0 Ap
-%_0 R
-%_0 G
-%_389.5166 445.5781 m
-%_S
-%_U
-%_0 Ap
-0 A
-u
-800 Ar
-0 J 0 j 1 w 4 M []0 d
-%AI3_Note:
-0 D
-0 XR
-389.5166 445.5781 m
-N
-u
-u
-u
-0 O
-0.7495 g
-0 R
-0.25 G
-1 j 0.5 w 2 M
-412.4863 428.0205 m
-412.4863 430.04 l
-406.126 433.4727 l
-389.5732 433.4727 L
-373.0195 433.4727 l
-366.458 430.04 l
-366.458 428.0205 l
-412.4863 428.0205 l
-b
-0.8748 G
-2 J 0 j
-389.5732 433.4727 m
-373.0195 433.4727 l
-366.458 430.04 l
-366.458 428.0205 l
-S
-412.4863 430.04 m
-406.126 433.4727 l
-389.5732 433.4727 L
-S
-0 O
-0.9 g
-0.25 G
-0 J 1 j
-373.1191 432.2607 m
-369.082 430.04 l
-409.6602 430.04 l
-406.2266 432.2607 l
-373.1191 432.2607 l
-b
-U
-u
-u
-0.7 g
-0 j 1 w 4 M
-378.334 436.3682 m
-380.6133 436.4111 L
-389.7148 437.9795 L
-398.9961 436.4111 L
-400.7891 436.4111 L
-400.7305 434.5693 L
-378.334 434.5693 L
-378.334 436.3682 L
-f
-0 R
-0.25 G
-0.5 w
-400.7617 436.3682 m
-400.668 434.5693 L
-378.3027 434.5693 L
-S
-0.9 G
-398.9609 436.3682 m
-400.7617 436.3682 L
-S
-0.25 G
-389.6543 437.9795 m
-398.9609 436.3682 L
-S
-0.9 G
-378.3027 434.5693 m
-378.3027 436.3682 L
-380.5557 436.3682 L
-389.6543 437.9795 L
-S
-U
-u
-0 O
-0.7 g
-1 w
-376.0918 439.4424 m
-385.3887 439.4893 L
-389.7471 441.2158 L
-394.3242 439.4893 L
-403.0371 439.4893 L
-402.9668 437.4648 L
-376.0918 437.4648 L
-376.0918 439.4424 L
-f
-0 R
-0.25 G
-0.5 w
-403.0039 439.4424 m
-402.8945 437.4648 L
-376.0547 437.4648 L
-S
-0.9 G
-394.2832 439.4424 m
-403.0039 439.4424 L
-S
-0.25 G
-389.6777 441.2158 m
-394.2832 439.4424 L
-S
-0.9 G
-376.0547 437.4648 m
-376.0547 439.4424 L
-385.3184 439.4424 L
-389.6777 441.2158 L
-S
-U
-u
-0 O
-0.7495 g
-0.25 G
-2 J 2 M
-374.5752 440.2705 m
-374.5684 462.1396 l
-375.5508 463.1357 L
-403.5293 463.1084 L
-404.4668 461.9697 L
-404.4668 440.5557 L
-403.6563 439.416 L
-375.4219 439.416 l
-374.5752 440.2705 L
-b
-/BBAccumRotation (4.712389) XT
-0.8748 G
-375.4219 439.416 m
-374.5752 440.2705 L
-374.5684 462.1396 l
-375.5508 463.1357 L
-403.5293 463.1084 L
-S
-/BBAccumRotation (4.712389) XT
-0 O
-0.9 g
-0.25 G
-401.4355 442.3037 m
-401.4531 460.2588 L
-377.5596 460.2588 L
-377.5576 442.3057 L
-401.4355 442.3037 L
-b
-/BBAccumRotation (4.712389) XT
-U
-U
-u
-0.15 G
-0 J 4 M
-406.126 433.4727 m
-389.5732 433.4727 L
-373.0195 433.4727 L
-366.458 430.04 L
-366.458 428.0205 L
-412.4863 428.0205 L
-412.4863 430.04 L
-406.126 433.4727 L
-s
-375.4219 439.416 m
-376.0547 439.416 L
-376.0547 437.4648 L
-376.0918 437.4756 L
-376.0918 437.4678 L
-376.0547 437.4648 L
-376.0918 437.4648 L
-386.7285 437.4648 L
-380.6133 436.4111 L
-378.334 436.3682 L
-378.3027 436.3682 L
-378.3027 434.5693 L
-378.334 434.5791 L
-378.334 434.5723 L
-378.3027 434.5693 L
-378.334 434.5693 L
-400.668 434.5693 L
-400.7305 434.5693 L
-400.7891 436.4111 L
-398.9961 436.4111 L
-392.7588 437.4648 L
-402.8945 437.4648 L
-402.9668 437.4648 L
-403.0352 439.416 L
-403.6563 439.416 L
-404.4668 440.5557 L
-404.4668 461.9697 L
-403.5293 463.1084 L
-375.5508 463.1357 L
-374.5684 462.1396 L
-374.5752 440.2705 L
-375.4219 439.416 L
-s
-U
-U
-U
-U
-(Adobe Scatter Brush Tool) 1 0 56 XP
-%010203043F8000003F8000003F8000003F80000000000000000000000000
-%0000000000000000000000000000000030E4436C69656E742031
-/Adobe_Brushed_Path () XT
-LB
-%AI5_EndLayer--
-%%PageTrailer
-gsave annotatepage grestore showpage
-%%Trailer
-Adobe_Illustrator_AI5 /terminate get exec
-Adobe_shading_AI8 /terminate get exec
-Adobe_ColorImage_AI6 /terminate get exec
-Adobe_typography_AI5 /terminate get exec
-Adobe_cshow /terminate get exec
-Adobe_level2_AI5 /terminate get exec
-%%EOF
diff --git a/en_US.ISO8859-1/books/corp-net-guide/Makefile b/en_US.ISO8859-1/books/corp-net-guide/Makefile
deleted file mode 100644
index f56c401d90..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# $FreeBSD: doc/en_US.ISO_8859-1/books/design-44bsd/Makefile,v 1.2 2001/03/09 18:05:31 nik Exp $
-
-DOC?= book
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= book.sgml
-
-IMAGES= 08-01.eps
-IMAGES+= 08-02.eps
-IMAGES+= 08-03.eps
-IMAGES+= 08-04.eps
-IMAGES+= 08-05.eps
-IMAGES+= 08-06.eps
-
-# Use the local DSSSL file
-DSLHTML?= ${.CURDIR}/freebsd.dsl
-DSLPRINT?= ${.CURDIR}/freebsd.dsl
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/corp-net-guide/book.sgml b/en_US.ISO8859-1/books/corp-net-guide/book.sgml
deleted file mode 100644
index 05fcec7efc..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/book.sgml
+++ /dev/null
@@ -1,3213 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/books/corp-net-guide/book.sgml,v 1.1 2001/04/09 20:39:28 nik Exp $ -->
-<!-- FreeBSD Documentation Project -->
-
-<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
-
-<book>
- <bookinfo>
- <title>The FreeBSD Corporate Networker's Guide</title>
-
- <author>
- <firstname>Ted</firstname>
- <surname>Mittelstaedt</surname>
- </author>
-
- <copyright>
- <year>2000</year>
- <holder>Addison-Wesley Longman, Inc</holder>
- </copyright>
-
- <isbn>ISBN: 0-201-70481-1</isbn>
-
- <legalnotice>
- <para>The eighth chapter of the book, <citetitle>The FreeBSD Corporate
- Networker's Guide</citetitle> is excerpted here with the permission
- of the publisher. No part of it may be further reproduced or
- distributed without the publisher's express written
- <ulink url="mailto:Chanda.Leary-Coutu@awl.com">permission</ulink>.
- The other chapters of
- <ulink url="http://www.awl.com/cseng/titles/0-201-70481-1">the
- book</ulink> covers topics such as system administration,
- fileserving, and e-mail delivery. More information about this book is
- available from the publisher, with whom you can also sign up to
- receive news of <ulink url="mailto:Chanda.Leary-Coutu@awl.com">related
- titles</ulink>. The author's web site for the book includes sample
- code, working examples,
- <ulink url="http://www.freebsd-corp-net-guide.com/errata.html">errata</ulink>
- and a Q&amp;A forum, and is available at
- <ulink url="http://www.freebsd-corp-net-guide.com/">http://www.freebsd-corp-net-guide.com/</ulink>.</para>
- </legalnotice>
- </bookinfo>
-
- <chapter label="8">
- <title>Printserving</title>
-
- <para>Printserving is a complicated topic. There are many different
- software interfaces to printers, as well as a wide variety of printer
- hardware interfaces. This chapter covers the basics of setting up a
- print queue, using Samba to print, and administering print queues and
- connections.</para>
-
- <sect1>
- <title>PC printing history</title>
-
- <para>In the early days of the personal computer, printing was simple.
- The PC owner bought a cheap printer, usually a dot matrix that barely
- supported ASCII, and plugged it into the computer with a parallel
- cable. Applications would either work with the printer or not, and
- most did because all they could do was output DOS or ASCII text. The
- few software applications that supported graphics generally could only
- output on specific makes and models of printers. Shared
- <emphasis>network</emphasis> printing, if it existed, was usually done
- by some type of serial port switchbox.</para>
-
- <para>This was the general state of affairs with the PC until the
- Windows operating system was released. All at once, application
- programmers were finally free of the restrictions of worrying about
- how some printer manufacturer would change printer control codes.
- Graphics printing, in the form of fonts and images, was added to most
- applications, and demand for it rapidly increased across the
- corporation. Large, high-capacity laser printers designed for office
- printing appeared on the scene. Printing went from 150 to 300 to
- 600dpi for the common desktop laser printer.</para>
-
- <para>Today organizational network printing is complex, and printers
- themselves are more complicated. Most organizations find that sharing
- a few high-quality laser printers is much more cost effective than
- buying many cheaper dot matrix units. Good network print serving is a
- necessity, and it can be very well provided by the FreeBSD UNIX
- system.</para>
- </sect1>
-
- <sect1>
- <title>Printer communication protocols and hardware</title>
-
- <para>Printers that don't use proprietary vendor codes communicate with
- computers using one or more of three major printing protocols. The
- communication is done over a hardware cable that can be a parallel
- connection (printer port) or a serial connection (COM port).</para>
-
- <sect2>
- <title>ASCII Printing Protocol</title>
-
- <para>The ASCII protocol is the simplest protocol used, as well as the
- oldest. ASCII is also used to represent text files internally in
- the DOS, UNIX, and Windows operating systems. Therefore, data taken
- from a text file or a directory listing generally requires little
- preparation before being sent to the printer, other than a
- newline-to-carriage return/linefeed conversion for UNIX. Printers
- usually follow the DOS text file convention of the print head
- requiring an explicit carriage return character followed by a
- linefeed character at the end of a line of text. Since UNIX uses
- only the linefeed character to terminate text, an additional
- carriage return character must be added to the end of each line in
- raw text print output; otherwise, text prints in a
- <emphasis>stairstep</emphasis> output. (Some printers have hardware
- or software switches to do the conversion)</para>
- </sect2>
-
- <sect2>
- <title>PostScript Printing Protocol</title>
-
- <para>Adobe introduced the PostScript language in 1985; it is used to
- enable the printout of high quality graphics and styled font text.
- PostScript is now the de-facto print standard in the UNIX community,
- and the only print standard in the Macintosh community. Numerous
- UNIX utilities exist to <emphasis>beautify</emphasis> and enhance
- text printing with PostScript. PostScript can be used to download
- font files into a printer as well as the data to be printed.
- PostScript commands can be sent to instruct the printer CPU to
- image, rotate, and scale complex graphics and images, thus freeing
- the host CPU. Scaling is particularly important with fonts since
- the document with the font has been produced on a computer screen
- with far lower resolution than the printer. For example, a 1024x768
- computer screen on a 17-inch monitor allows for a resolution of
- approximately 82dpi, a modern desktop printer prints at a resolution
- of 600dpi. Therefore, a font must be scaled at least seven times
- larger for WYSIWYG output!</para>
-
- <para>PostScript printers generally come with a number of resident
- fonts. For example, the NEC Silentwriter 95 contains Courier,
- Helvetica, ITC Avant Garde Gothic Book, ITC Bookman Light, New
- Century Schoolbook Roman, Palatino Roman, Times Roman, and several
- symbol fonts. These are stored in Read Only Memory (ROM) in the
- printer. When a page is printed from a Windows client that contains
- a font not in the printer, a font substitution table is used. If no
- substitute can be made, Courier is usually used. The user should be
- conscious of this when creating documents - documents with fonts not
- listed in the substitution table may cause other users problems when
- printing. Avoid use of strange fonts for documents that will be
- widely distributed.</para>
-
- <para>The user program can choose to download different fonts as
- outline fonts to the PostScript printer if desired. Fonts that are
- commonly used by the user are often downloaded to PostScript
- printers that are connected directly to the user's computer, the
- fonts are then available to successive print jobs until the printer
- is turned off. When PostScript printers are networked, the clients
- must download any fonts desired <emphasis>with each print
- job</emphasis>. Since jobs come from different clients, the
- clients cannot assume that downloaded fonts will still be in the
- printer.</para>
-
- <para>PostScript print jobs also contain a header that is sent
- describing the page layout, among other things. On a shared network
- printer, this header must also be downloaded with each print job.
- Although some PostScript drivers allow downloading of the header
- only once, this usually requires a bi-directional serial connection
- to the printer, instead of a unidirectional parallel
- connection.</para>
-
- <para>PostScript print jobs can be sent either as binary data or as
- ASCII. The main advantage of binary data transmission is that it is
- faster. However, not all PostScript printers support it. Also,
- fonts can generally not be downloaded in binary. When FreeBSD is
- used as a printserver, ASCII PostScript printing should be selected
- on the clients, this is generally the default with most PostScript
- drivers.</para>
-
- <para>The Adobe company licenses PostScript interpreters as well as
- resident fonts to printer manufacturers, and extracts a hefty
- license fee from any printer manufacturer who wants to use them in
- its printer. This presents both a benefit and a problem to the end
- user. Although a single company holding control over a standard can
- guarantee compliance, it does significantly raise the cost of the
- printer. As a result, PostScript has not met with much success in
- lower-end laser and inkjet Windows printing market, despite the fact
- that Adobe distributes PostScript software operating system drivers
- for free.</para>
-
- <para>One issue that is a concern when networking PostScript printers
- is the selection of banner page, (also known as header page, or
- <emphasis>burst page)</emphasis> printing. UNIX shared printing
- began with ASCII line printers, and since UNIX is a multiuser
- system, often many different user print jobs piled up in the printer
- output hopper. To separate these jobs the UNIX printing system
- programs support banner page printing if the client program that
- submits jobs asks for them. These pages print at the beginning or
- end of every print job and contain the username, submittal date, and
- so on.. By default, most clients, whether remote (e.g., a Windows
- LPR client) or local (e.g., the <command>/usr/bin/lpr</command>
- program) trigger a banner page to be printed. One problem is that
- some PostScript printers abort the entire job if they get
- unformatted ASCII text instead of PostScript. (In general,
- PostScript printers compatible with Hewlett-Packard Printer Control
- Language [HPPCL] handle banners without problems) Banner printing
- should be disabled for any printers with this problem, unless
- PostScript banner page printing is set up on the server.</para>
- </sect2>
-
- <sect2>
- <title>HPPCL Printing Protocol</title>
-
- <para>The Hewlett Packard company currently holds the largest market
- share of desktop inkjet and office laser printers. Back when
- Windows was released, HP decided to expand into the desktop laser
- jet market with the first LaserJet series of printers. At the time
- there was much pressure on Microsoft to use Adobe Type Manager for
- scaleable fonts within Windows, and to print PostScript to
- higher-end printers. Microsoft decided against doing this and used
- a technically inferior font standard, Truetype. They thought that
- it would be unlikely that the user would download fonts to the
- printer, since desktop Publishing was not being done on PC's at the
- time. Instead users would rasterize the entire page to the printer
- using whatever proprietary graphics printer codes the selected
- printer needed. HP devised HPPCL for their LaserJets, and make
- PostScript an add-on. The current revision of HPPCL now allows for
- many of the same scaling and font download commands that PostScript
- does. HP laser jet printers that support PostScript can be
- distinguished by the letter "M" in their model number. (M is for
- Macintosh, since Macintosh requires PostScript to print) For
- example, the HP 6MP has PostScript, the 6P doesn't.</para>
-
- <para>HPPCL has almost no support in the UNIX applications market, and
- it is very unlikely that any will appear soon. One big reason is
- the development of the free <application>Ghostscript</application>
- PostScript interpreter. <application>Ghostscript</application> can
- take a PostScript input stream and print it on a PCL printer under
- UNIX. Another reason is the UNIX community's dislike of reinventing
- the wheel. HPPCL has no advantage over PostScript, and in many ways
- there are fewer problems with PostScript. Considering that
- PostScript can be added to a printer, either by hardware or use of
- <application>Ghostscript</application>, what is the point of
- exchanging an existing working solution for a slightly technically
- inferior one? Over the life of the printer, taking into account the
- costs of toner, paper, and maintenance, the initial higher cost of
- PostScript support is infinitesimal.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Network Printing Basics</title>
-
- <para>The most common network printing implementation is a printserver
- accepting print jobs from clients tied to the server via a network
- cable.</para>
-
- <sect2>
- <title>Printservers</title>
-
- <para>The term "printserver" is one of those networking terms, like
- <emphasis>packet,</emphasis> that has been carelessly tossed around
- until it's meaning has become somewhat confusing and blurred. To be
- specific, a printserver is simply a program that arbitrates print
- data from multiple clients for a single printer. Printservers can
- be implemented in one of the four methods described in the following
- sections.</para>
-
- <sect3>
- <title>Printserver on the fileserver</title>
-
- <para>The printer can be physically cabled to the PC running the
- Network OS. Print jobs are submitted by clients to the
- printserver software on the fileserver, which sends them down the
- parallel or serial cable to the printer. The printer must be
- physically close to the fileserver. This kind of printserving is
- popular in smaller workgroup networks, in smaller offices.</para>
-
- <figure>
- <title>Printserver on the fileserver</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="08-01" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> ,---------.
- | ======= | Server
- | ======= | +---------------------+ ,-----.
-+-----------+ | +---------------+ | | |
-| Printer [ ]------------[ ] | Printserver | | |_____|
-+-----------+ Parallel | | Software | [ ]------_________
- Cable | +---------------+ | / ::::::: \
- +---------------------+ `---------'
- Network PC</literallayout>
- </textobject>
-
- <textobject>
- <phrase>Printer, connected to a network server running
- printserver software, with one or more network PCs printing
- through it.</phrase>
- </textobject>
- </mediaobject>
- </figure>
- </sect3>
-
- <sect3>
- <title>Printserver on a separate PC</title>
-
- <para>It is possible to run a print server program on a cheap PC
- that is located next to the printer and plugged into it via
- parallel cable. This program simply acts as a pass-through
- program, taking network packets from the network interface and
- passing them to the printer. This kind of server doesn't allow
- any manipulation of print jobs, jobs usually come from a central
- fileserver, where jobs are controlled.</para>
-
- <figure>
- <title>Printserver on a separate PC</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="08-02" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> Fileserver
- ,----------------.
- ,---------. .---| | === |
- | ======= | ,-----. | `----------======'
- | ======= | | | |
- +-----------+ |_____| |
- | Printer [ ]------------_________---------| Ethernet
- +-----------+ Parallel / ::::::: \ |
- Cable `---------' |
- Printserver | ,-----.
- | | |
- | |_____|
- `---------_________
- / ::::::: \
- `---------'
- Network PC</literallayout>
- </textobject>
-
- <textobject>
- <phrase>Printer connected to a printserver (typically running
- FreeBSD), with network files hosted on a separate machine,
- and a network PC, able to access both resources.</phrase>
- </textobject>
- </mediaobject>
- </figure>
- </sect3>
-
- <sect3>
- <title>Printserver on a separate hardware box</title>
-
- <para>A printserver on a separate hardware box is exemplified by
- network devices such as the Intel Netport, the HP JetDirect Ex,
- the Osicom/DPI NETPrint, and the Lexmark MarkNet. Basically, these
- are plastic boxes with an Ethernet connection on one side and a
- parallel port on the other. Like a printserver on a PC, these
- devices don't allow remote job manipulation, and merely pass
- packets from the network down the parallel port to the
- printer.</para>
-
- <figure>
- <title>Printserver on a separate hardware box</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="08-03" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> Fileserver
- ,----------------.
- ,---------. .---| | === |
- | ======= | | `----------======'
- | ======= | Printserver |
- +-----------+ ,--------. |
- | Printer [ ]-----------[ ] ooo [ ]-------| Ethernet
- +-----------+ Parallel `--------' |
- Cable |
- | ,-----.
- | | |
- | |_____|
- `---------_________
- / ::::::: \
- `---------'
- Network PC</literallayout>
- </textobject>
-
- <textobject>
- <phrase>Printer connected to a dedicated print server
- <quote>appliance</quote>.</phrase>
- </textobject>
- </mediaobject>
- </figure>
- </sect3>
-
- <sect3>
- <title>Printserver in the Printer</title>
-
- <para>The HP JetDirect Internal is the best known printserver of
- this type. It is inserted into a slot in the printer case, and it
- works identically to the external JetDirect units.</para>
-
- <figure>
- <title>Printeserver in the printer</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="08-04" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> Fileserver
- ,----------------.
- ,---------. .---| | === |
- | ======= | | `----------======'
- | ======= | |
- +-----------+ |
- | Printer [ ]------------------------------| Ethernet
- +-----------+ |
- |
- | ,-----.
- | | |
- | |_____|
- `---------_________
- / ::::::: \
- `---------'
- Network PC</literallayout>
- </textobject>
-
- <textobject>
- <phrase>Printer with an embedded print server, connecting
- directly to the local network.</phrase>
- </textobject>
- </mediaobject>
- </figure>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Printspools</title>
-
- <para>Printspooling is an integral part of network printing. Since
- the PC can spit out data much faster than the printer can accept it,
- the data must be buffered in a spool at some location. In addition,
- because many clients share printers, when clients send print jobs at
- the same time, jobs must be placed on a queue so that one can be
- printed after the other.</para>
-
- <sect3>
- <title>Logical location of the print spool</title>
-
- <para>Printspooling can be implemented at one of three
- locations</para>
-
- <orderedlist>
- <listitem>
- <para>The client. Clients can be required to spool their own
- print jobs on their own disks. For example, when a Windows
- client application generates a print job the job must be
- placed on the local client's hard drive. Once the remote
- print server is free to accept the job it signals the client
- to start sending the job a bit at a time. Client spooling is
- popular in peer-to-peer networks with no defined central
- fileserver. However, it is impossible for a central
- administrator to perform advanced print job management tasks
- such as moving a particular print job ahead of another, or
- deleting jobs.</para>
- </listitem>
-
- <listitem>
- <para>The printserver. If each printer on the network is
- allocated their own combination print spooler-printserver,
- jobs can stack at the printer. Many of the larger printers
- with internal printservers have internal hard disks for this
- purpose. Although this enables basic job management, it still
- restricts the ability to move jobs from one printer to
- another.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>A central print spooler on a
- fileserver</emphasis>. Print jobs are received from all
- clients on the network in the spool and then dispatched to the
- appropriate printer. This scheme is the best for locations
- with several busy printers and many clients. Administration
- is extremely simple because all print jobs are spooled on a
- central server, which is particularly important in bigger
- organizations. Many large organizations have standardized on
- PostScript printing for all printing; in the event that a
- particular printer fails and is offline, incoming PostScript
- print jobs can be rerouted automatically to another printer.
- Since all printers and clients are using PostScript, clients
- don't need to be reconfigured when this happens. Print jobs
- appear the same whether printed on a 4 page-per-minute NEC
- Silentwriter 95, or a 24 page-per-minute HP LaserJet 5SiMX if
- both printers are defined in the client as PostScript
- printers.</para>
- </listitem>
- </orderedlist>
-
- <figure>
- <title>Print spool locations</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="08-05" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> Client
- ,---------. PC
- | ======= | ,-----.
- | ======= | | |
- +-----------+ |_____|
- | Printer [ ]---------------------------------------------------_________
- +-----------+ / ::::::: \
- `---------'
- Spool
-
- Printserver
- ,---------. PC
- | ======= | ,-----.
- | ======= | | |
- +-----------+ ,----------------. |_____|
- | Printer [ ]--------------| | === |-------------------_________
- +-----------+ `----------======' / ::::::: \
- Spool `---------'
-
-
- Fileserver
- ,---------. PC
- | ======= | ,-----.
- | ======= | Printserver Fileserver | |
- +-----------+ ,----------------. ,----------------. |_____|
- | Printer [ ]----| | === |-----| | === |------_________
- +-----------+ `----------======' `----------======' / ::::::: \
- Spool `---------'</literallayout>
- </textobject>
-
- <textobject>
- <phrase>Possible locations for the print spool</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>FreeBSD is an excellent platform to implement centralized
- printserving and print spooling. The rest of this chapter
- concentrates on the centralized print spooler model. Note that
- PostScript printing is not a requirement for this model--the HPPCL
- protocol can be the standard print protocol as well. For
- transparent printing between printers with HPPCL, however, the
- printer models must be similar.</para>
- </sect3>
-
- <sect3>
- <title>Physical location of the print spool</title>
-
- <para>In some companies, the central fileserver is often placed in a
- closet, locked away. Printers, on the other hand, are best
- located in high traffic areas for ease of use. Network printing
- works best when the printers are evenly distributed throughout the
- organization. Attempting to place all the major printers in one
- location, as technically advantageous as it may seem, merely
- provokes users to requisition smaller printers that are more
- convenient for that quick print job. The administrator may end up
- with a datacenter full of nice, expensive printers that are never
- used, while the smaller personal laser printers scattered
- throughout the plant bear most of the printing load.</para>
-
- <para>The big problem with this is that scattering printers through
- the organization makes it difficult to utilize the 3 possible
- parallel ports on the fileserver due to parallel port distance
- limitations. Although high-speed serial ports may extend the
- distance, not many printers have good serial ports on them. This
- is where the hardware network print server devices can come into
- play. I prefer using these devices because they are much cheaper
- and more reliable than a standalone PC running printserver
- software. For example, Castelle
- <ulink url="http://www.castelle.com">http://www.castelle.com</ulink>
- sells the LANpress 1P/10BT printserver for about $170.00. Using
- these devices a FreeBSD UNIX server can have dozens of print spools
- accepting print jobs and then route them back out over the network
- to these remote printserver boxes. If these hardware servers are
- used, they must support the Line Printer Daemon (LPD) print
- protocol.</para>
-
- <para>With a scheme like this it is important to have enough disk
- space on the spool to handle the print jobs. A single large
- PowerPoint presentation PostScript print job containing many
- graphics may be over 100MB. When many such jobs stack up in the
- print spool waiting to print, the print spooler should have
- several gigabytes of free disk space available.</para>
- </sect3>
-
- <sect3>
- <title>Network Printing to Remote Spools</title>
-
- <para>Although several proprietary network printing protocols such
- as Banyan Vines and NetWare, are tied to proprietary protocols,
- FreeBSD Unix can use two TCP/IP network printing protocols to
- print to remote print spools. The two print protocols available
- on TCP/IP with FreeBSD are the open LPD protocol and the
- NetBIOS-over-TCP/IP Server Messaging Block (SMB) print protocol
- first defined by Intel and Microsoft and later used by IBM and
- Microsoft.</para>
-
- <para>The LPD protocol is defined in RFC1179 This network protocol
- is the standard print protocol used on all UNIX systems. LPD
- client implementations exist for all Windows operating systems and
- DOS. Microsoft has written LPD for the Windows NT versions, the
- other Windows operating system implementations are provided by
- third parties.</para>
-
- <para>The Microsoft Networking network protocol that runs on top of
- SMB can use NetBIOS over TCP/IP as defined in RFC1001 and RFC1002.
- This protocol has a specification for printing that is the same
- print protocol used to send print jobs to NT Server by Microsoft
- clients. To implement this protocol on FreeBSD requires the
- installation of the Samba client suite of programs discussed in
- Chapter 7.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Setting up LPR on Windows clients</title>
-
- <para>The program clients use to print via LPD is the Line Printer
- Remote, or LPR program. The following instructions cover enabling
- this program on Windows clients.</para>
-
- <sect2>
- <title>Windows 3.1/Windows for Workgroups 3.11</title>
-
- <para>Several commercial TCP/IP stacks are available for Win31, that
- provide LPR client programs, in addition to the basic TCP/IP
- protocol to Win31. WfW has TCP/IP networking available for free
- from Microsoft, but it doesn't include an LPR client. Unfortunately,
- I have not come across a freeware implementation of a 16-bit Windows
- LPR client, so with the following instructions I use the Shareware
- program WLPRSPL available from <ulink
- url="http://www.winsite.com/info/pc/win3/winsock/wlprs41.zip">http://www.winsite.com/info/pc/win3/winsock/wlprs41.zip</ulink>.
- This program must be active during client printing, and is usually
- placed in the Startup group.</para>
-
- <para>Organizations that want to use UNIX as a printserver to a group
- of Win31 clients without using a commercial or shareware LPR program
- have another option. The Microsoft Networking client for DOS used
- underneath Win31 contains SMB-based printing which is covered later
- in the chapter. DOS networking client setup and use are covered in
- Chapter 2 and Chapter 7.</para>
-
- <para>If LPR-based client printing is desired and the organization
- doesn't want to upgrade to Win95, (which has several LPR clients
- available) the following instructions can be used. WLPRSPL needs a
- Winsock under Windows 3.1, so for the example I explain the setup of
- the Novell 16-bit TCP/IP client. The stack can be FTPed from
- Novell, and is easy to integrate into sites that already use the
- 16-bit NetWare networking client, usually NW 3.11 and 3.12. In most
- cases, however, sites that use NetWare + Win31 are probably best off
- printing through the NetWare server, then loading an LPR spooler as
- an Netware Loadable Module (NLM) to send the job over to
- FreeBSD.</para>
-
- <para>As an alternate, the Microsoft Networking DOS 16-bit TCP/IP
- client under Win31 contains a Winsock, as does Microsoft TCP/IP for
- WfW. The target machine used here is a Compaq Deskpro 386/33 with
- 12MB of ram with an operating version of Windows 3.1, and a 3com
- 3C579 EISA network card. The instructions assume an LPR printserver
- on the network, named <hostid>mainprinter.my.domain.com</hostid>
- with a print queue named RAW.</para>
-
- <para>Use the installation instructions in Exhibit 8.1 for a quick and
- dirty TCP/IP Winsock for Win31 systems. Administrators who already
- have the Novell IPX client installed should skip those steps.</para>
- </sect2>
-
- <sect2>
- <title>Installation of the Novell TCP/IP Winsock client</title>
-
- <procedure>
- <step>
- <para>Make sure that the machine has enough environment space
- (2048 bytes or more) by adding the following line to the
- <filename>config.sys</filename> file and rebooting:</para>
-
- <programlisting>SHELL=C:\COMMAND.COM /E:2048 /P</programlisting>
- </step>
-
- <step>
- <para>Obtain the <filename>TCP16.EXE</filename> file from
- <ulink url="ftp3.novell.com/pub/updates/eol/nweol/tcp16.exe">ftp3.novell.com/pub/updates/eol/nweol/tcp16.exe</ulink>.</para>
- </step>
-
- <step>
- <para>Obtain the Network Adapter support diskette for the network
- card in your machine. This should be supplied with the card, or
- available via FTP from the network adapter manufacturer's FTP
- site.</para>
- </step>
-
- <step>
- <para>Now you need the file <filename>LSL.COM</filename>. This is
- available on some Network Adapter Driver diskettes, it used to
- be available from the <filename>VLM121_2.EXE</filename> file
- from Novell but unfortunately this file is no longer publicly
- accessible from Novell.</para>
- </step>
-
- <step>
- <para>If you have <filename>vlm121_2.exe</filename> in a temporary
- directory, run it. This will extract a number of files.</para>
- </step>
-
- <step>
- <para>One of the files extracted is <filename>LSL.CO_</filename>
- extract this file with the command <command>nwunpack
- lsl.co_</command>.</para>
- </step>
-
- <step>
- <para>Create the directory <filename>c:\nwclient</filename>. Then,
- copy <filename>lsl.com</filename> from the temporary directory
- into the directory.</para>
- </step>
-
- <step>
- <para>Obtain and install the printer driver for the model of
- printer that you will be spooling to and point it to
- <devicename>LPT1:</devicename>. Win31 and WfW 3.11 have an
- incomplete printer driver list, so if you need a driver
- Microsoft has many Win16 printer drivers on their FTP site. A
- list is available at
- <ulink
- url="ftp://ftp.microsoft.com/Softlib/index.txt">ftp://ftp.microsoft.com/Softlib/index.txt</ulink>.
- In addition, if you are installing a PostScript printer driver
- for a printer supplied in Win31, it may be necessary to patch
- the driver. The Microsoft PostScript driver supplied in Win31
- is version 3.5. (The patch named
- <filename>PSCRIP.EXE</filename> which brought the PostScript
- driver to version 3.58 is no longer publicly available.) WfW
- already uses the more recent PostScript driver, as does Win31
- version A. Installing the Adobe Postscript driver for Win31 is
- also an option. (see
- <ulink url="http://www.adobe.com/support/downloads/pdrvwin.htm">http://www.adobe.com/support/downloads/pdrvwin.htm</ulink>
- for the version 3.1.2 Win31 PostScript driver).</para>
- </step>
-
- <step>
- <para>Look on the network adapter driver disk for the subdirectory
- <filename>nwclient/</filename> and then look for the ODI driver
- with the adapter card. For example, on the 3com 3C509/3C579
- adapter driver disk, the driver and location are
- <filename>\NWCLIENT\3C5X9.COM</filename>. Copy this driver to
- the <filename>c:\nwclient</filename> directory.</para>
- </step>
-
- <step>
- <para>Create a file called <filename>NET.CFG</filename> in the
- <filename>c:\nwclient</filename> directory. Often, the network
- card adapter driver diskette has a template for this file in the
- same location as the ODI driver. This can be modified, as can
- the following example:</para>
-
- <programlisting>LINK SUPPORT
-
-BUFFERS 4 1600
-
-MEMPOOL 8192
-
-LINK DRIVER
-3C5X9
-
-; PORT 300 (these are optional, if needed by card uncomment)
-
-; INT 10 (optional, uncomment and modify if needed)</programlisting>
- </step>
-
- <step>
- <para>Attempt to load the network card driver. First load
- <filename>lsl</filename>, then the ODI driver. With the 3com
- card the commands are:</para>
-
- <screen><userinput>lsl</userinput>
-<userinput>3c5x9</userinput></screen>
-
- <para>If the driver properly loads it will list the hardware port
- and interrupt settings for the network adapter. If it has
- loaded properly, unload the drivers in reverse order with the
- <option>/u</option> command:</para>
-
- <screen><userinput>3c5x9 /u</userinput>
-<userinput>lsl /u</userinput></screen>
- </step>
-
- <step>
- <para>Go to the temporary directory that contains the
- <filename>tcp16.exe</filename> file and extract it by running
- the program.</para>
- </step>
-
- <step>
- <para>Run the install batch file by typing
- <command>installr</command>. It should list <literal>New
- Installation detected</literal>. It will then copy a number
- of files into <filename>nwclient</filename>, add some
- commented-out sections to <filename>net.cfg</filename>, and call
- <command>edit</command> on <filename>net.cfg</filename>.</para>
- </step>
-
- <step>
- <para>Read the editing instructions and make the appropriate
- entries. The sample <filename>net.cfg</filename> file from
- above would look like this.</para>
-
- <programlisting>LINK SUPPORT
-
-BUFFERS 4 1600
-
-MEMPOOL 8192
-
-LINK DRIVER 3C5X9
-
-FRAME ETHERNET_II
-
-Protocol TCPIP
-
-PATH TCP_CFG c:\nwclient
-
-ip_address 192.168.1.54 LAN_NET
-
-ip_netmask 255.255.255.0 LAN_NET
-
-ip_router 192.168.1.1 LAN_NET
-
-Bind 3C5X9 #1 Ethernet_II LAN_NET</programlisting>
-
- <para>Save and exit, the Installer should list <literal>TCP16
- installation completed</literal>.</para>
- </step>
-
- <step>
- <para>Reload the client with the commands:</para>
-
- <screen><userinput>lsl</userinput>
-<userinput>3c5x9</userinput>
-<userinput>tcpip</userinput></screen>
-
- <para>The TCPIP driver should list the IP numbers and other
- information.</para>
- </step>
-
- <step>
- <para>Optionally, create either a <filename>HOSTS</filename> file,
- or a <filename>RESOLV.CFG</filename> file (pointing to a
- nameserver) in <filename>c:\nwclient</filename>. Check to see
- this is operating properly by pinging a hostname.</para>
-
- <para>Add the <filename>c:\nwclient</filename> directory to the
- <envar>PATH</envar>, as well as the 3 startup commands in step
- 15 in <filename>autoexec.bat</filename></para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Installation of the LPR client on 16-bit Windows with a Winsock
- installed</title>
-
- <para>The following assumes a running Win31 installation with a
- Winsock or a running WfW installation with the 32-bit Microsoft
- TCP/IP protocol installed.</para>
-
- <procedure>
- <step>
- <para>Install the printer driver desired. See step 8 of the
- previous set of instructions.</para>
- </step>
-
- <step>
- <para>Obtain and extract into a temporary directory the
- <filename>wlprs41.zip</filename> file from the location
- mentioned above.</para>
- </step>
-
- <step>
- <para>Run <command>setup.exe</command> from the temporary
- directory containing the <filename>wlprs</filename> files
- are.</para>
- </step>
-
- <step>
- <para>In setup, accept default directory, and check Yes to add to
- its own group. Click <guibutton>Continue</guibutton> when asked
- for group name, and check whatever choice you want when asked to
- copy the <filename>doc</filename> files.</para>
- </step>
-
- <step>
- <para>Click <guibutton>No</guibutton> when asked to add the
- program to <literal>Startup</literal>.</para>
- </step>
-
- <step>
- <para>On the Unix FreeBSD print spooler, make sure that there is
- an entry in <filename>/etc/hosts.lpd</filename> or
- <filename>/etc/hosts.equiv</filename> for the client
- workstation, thereby allowing it to submit jobs.</para>
- </step>
-
- <step>
- <para>Double-click the Windows LPR Spooler icon in the Windows LPR
- Spooler group that is opened. When it asks for a valid spool
- directory, just select the <filename>c:\wlprspl</filename>
- directory that the program installed its files into.</para>
- </step>
-
- <step>
- <para>When asked for a valid Queue Definition File, just click
- <guibutton>OK</guibutton> to use the default filename. The
- program automatically creates a queue definition file.</para>
- </step>
-
- <step>
- <para>The program opens up with it's menu. Click
- <guibutton>Setup</guibutton> in the top menu, then select
- <guimenuitem>Define New Queue</guimenuitem>.</para>
- </step>
-
- <step>
- <para>For a local spool filename, just use the name of the remote
- queue (RAW) to which the client prints.</para>
- </step>
-
- <step>
- <para>For the remote printer name, use the same name as the remote
- queue (RAW) to which the client prints.</para>
- </step>
-
- <step>
- <para>For the remote hostname, use the machine name
- of the FreeBSD print spooler.
- <hostid role="fqdn"><replaceable>mainprinter.ayedomain.com</replaceable></hostid>.</para>
- </step>
-
- <step>
- <para>For the Description, enter a description such as
- <literal>3rd floor Marketing printer</literal>.</para>
- </step>
-
- <step>
- <para>For the protocol, leave the default of BSD LPR/LPD
- selected.</para>
- </step>
-
- <step>
- <para>Click on the <guimenuitem>Queue Properties</guimenuitem>,
- and make sure that the <guilabel>Print unfiltered</guilabel> is
- selected. If you're printing PostScript, then also click the
- <guibutton>Advanced options</guibutton> button. Make sure that
- <guilabel>Remove trailing Ctrl-D</guilabel> is
- <emphasis>unchecked</emphasis>, and that <guilabel>Remove
- Leading Ctrl-D</guilabel> is <emphasis>checked</emphasis>.
- Also with PostScript, if the printer cannot print ASCII, uncheck
- the <guilabel>Send header page</guilabel> box. (PostScript
- header/banner pages are discussed later in this chapter)</para>
- </step>
-
- <step>
- <para>Click <guibutton>OK</guibutton>. At the main menu of the
- program, click <guimenu>File</guimenu>, then <guimenu>Control
- Panel/Printers</guimenu> to bring up the Printers control
- panel of Windows.</para>
- </step>
-
- <step>
- <para>Make sure that the <guilabel>Use Print Manager</guilabel>
- button is checked, then highlight the printer driver and click
- the <guibutton>Connect</guibutton> button.</para>
- </step>
-
- <step>
- <para>Scroll down to the <guilabel>C:\WLPRSPL\RAW</guilabel> entry
- for the spool that was built and highlight this. Click
- <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>Minimize the Windows LPR Spooler. Copy the Windows LPR
- Spooler icon to the Startup group. Click
- <guimenu>File/Properties</guimenu> with the Windows LPR Spooler
- icon highlighted in the Startup group. Check the <guilabel>Run
- Minimized</guilabel> button.</para>
- </step>
-
- <step>
- <para>Exit Windows, and when the <guibutton>Save queue
- changes?</guibutton> button comes up, click
- <guibutton>Yes</guibutton>.</para>
- </step>
-
- <step>
- <para>Restart windows and make sure that the spooler starts
- up.</para>
- </step>
-
- <step>
- <para>Open the Control Panel and look for a new yellow icon named
- <guiicon>Set Username</guiicon> If you are running the Novell or
- other Winsock under Win31, click on this icon and put the
- username of the person using this computer into the space
- provided. If you are running WfW, this isn't necessary because
- Windows will supply the username.</para>
- </step>
-
- <step>
- <para>If the spooler is not started properly in some
- installations, there may be a bug. If placing the icon in the
- StartUp group doesen't actually start the spooler, the program
- name can be placed in the <literal>run=</literal> line of
- <filename>win.ini</filename>.</para>
- </step>
-
- <step>
- <para>Try printing a print job from an application such as
- Notepad. If everything goes properly, clicking on the
- <guimenuitem>Queues/Show remote printer status</guimenuitem>" in
- the Windows LPR menu should show the print job spooled and
- printing on the remote printserver.</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Installation of LPR client on Windows 95/98</title>
-
- <para>The <command>wlprspl</command> program also can be used under
- Windows 95, but as a 16-bit program, it is far from an optimal
- implementation on a 32-bit operating system. In addition, Win95 and
- it's derivatives fundamentally changed from Windows 3.1 in the
- printing subystem. For these reasons I use a different LPR client
- program for Win95/98 LPR printing instructions. It is a full 32-bit
- print program, and it installs as a <emphasis>Windows 32-bit
- printer</emphasis> <emphasis>port monitor</emphasis>. The program
- is called ACITS LPR Remote Printing for Windows 95 and it is located
- at <ulink
- url="http://shadowland.cc.utexas.edu/acitslpr.htm">http://shadowland.cc.utexas.edu/acitslpr.htm</ulink>.</para>
-
- <para>ACITS stands for Academic Computing and Instructional
- Technologies Services. The ACITS LPR client includes software
- developed by the University of Texas at Austin and its contributors,
- it was written by Glenn K. Smith, a systems analyst with the
- Networking Services group at the university. The filename of the
- archive in the original program was ACITSLPR95.EXE and as of version
- 1.4 it was free for individuals or organizations to use for their
- internal printing needs. Since that time, it has gotten so popular
- that the university has taken over the program, incremented the
- version number (to get out from under the free license) and is now
- charging a $35 per copy fee for commercial use for the newer
- versions. The older free version can still be found on overseas FTP
- servers, such as <ulink
- url="http://www.go.dlr.de/fresh/pc/src/winsock/acitslpr95.exe">http://www.go.dlr.de/fresh/pc/src/winsock/acitslpr95.exe</ulink>.</para>
-
- <para>It is likely that the cost of a shareware/commercial LPR program
- for Win95 plus the cost of Win95 itself will meet or exceed that of
- Win2K. As such, users wishing to print via LPR to FreeBSD UNIX
- systems will probably find it cheaper to simply upgrade to Windows
- NT Workstation or Win2K.</para>
-
- <para>ACITS LPR and Win95 have a few printing idosyncracies. Most
- Win95 programs, such as Microsoft Word, expect print output to be
- spooled on the local hard drive and then metered out to a printer
- that is plugged into the parallel port. Network printing, on the
- other hand, assumes that print output will go directly from the
- application to the remote print server. Under Win95, local ports
- have a setting under Properties, Details, Spool Settings labeled
- "Print directly to the printer". If this is checked, the
- application running on the desktop (such as Microsoft Word) will not
- create a little Printer icon with pages coming out of it or use
- other means of showing the progress of the job as it is built. This
- can be very disconcerting to the user of a network printer, so this
- option should be checked only with printers plugged directly into
- the parallel port. Worse, if this is checked with ACITS, it can
- cause the job to abort if the remote print spooler momentarily goes
- offline.</para>
-
- <para>Another local setting also should be changed. Generally, with
- local ports, Win95 builds the first page in the spooler and then
- starts printing it while the rest of the pages spool. If ACITS
- starts printing the first page while the rest of the pages are
- building, timeouts at the network layer can sometimes cause very
- large jobs to abort. The entire job should be set to completely
- spool before the LPR client passes it to the Unix spooler. The
- problem is partly the result of program design: because ACITS is
- implemented as a local printer port instead of being embedded into
- Win95 networking (and available in Network Neighborhood) the program
- acts like a local printer port in some ways.</para>
-
- <para>The LPR program can be set to deselect banner/burst page
- printing if a PostScript printer that cannot support ASCII is used.
- The burst pages referred to here are NOT generated by the Windows
- machine. Use the instructions in Exhibit 8.3 to install</para>
-
- <procedure>
- <title>LPR client on Win95/98 installation instructions</title>
-
- <step>
- <para>Obtain the <filename>ACITSLPR95.EXE</filename> file and
- place it in a temporary directory such as
- <filename>c:\temp1</filename>.</para>
- </step>
-
- <step>
- <para>Close all running programs on the desktop. The computer
- <emphasis>must</emphasis> be rebooted at completion of
- installation or the program will not work.</para>
- </step>
-
- <step>
- <para>Click <guibutton>Start</guibutton>,
- <guimenuitem>Run</guimenuitem> and type in
- <userinput>c:\temp1\acitslpr95</userinput> then click
- <guibutton>Yes</guibutton> at the InstallShield prompt.</para>
- </step>
-
- <step>
- <para>Click <guibutton>Next</guibutton>, then
- <guibutton>Yes</guibutton>. The program will run through some
- installation and then presents a Help screen that explains how
- to configure an LPR port.</para>
- </step>
-
- <step>
- <para>After the help screen closes, the program asks to reboot the
- system. Ensure that <guilabel>Yes</guilabel> is checked and
- click <guibutton>Finish</guibutton> to reboot.</para>
- </step>
-
- <step>
- <para>After the machine comes back up, install a Printer icon in
- the <guibutton>Start</guibutton>, <guimenu>Settings</guimenu>,
- <guimenuitem>Printers</guimenuitem> folder if one hasn't been
- created for the correct model of destination printer.</para>
- </step>
-
- <step>
- <para>With the Printers folder open, right-click over the printer
- icon that needs to use the LPR program and click on the
- <guilabel>Properties</guilabel> tab.</para>
- </step>
-
- <step>
- <para>Under the <guilabel>Details</guilabel> tab, click the
- <guilabel>Add Port</guilabel> tab, then click
- <guibutton>Other</guibutton>.</para>
- </step>
-
- <step>
- <para>Highlight the <guilabel>ACITS LPR Remote Printing</guilabel>
- line and click <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>The Add ACITS LPR screen opens. Type in the hostname of the
- UNIX system that the client spools through&mdash;
- <hostid role="fqdn"><replaceable>mainprinter.ayedomain.com</replaceable></hostid>.</para>
- </step>
-
- <step>
- <para>Type in the Printer/Queue name and click
- <guibutton>OK</guibutton>. (Some versions have a "Verify Printer
- Information" button.) The LPR program then contacts the UNIX
- host and makes sure that the selected printer is
- available.</para>
-
- <note>
- <para>If this fails the client machine name is probably not in
- the <filename>/etc/hosts.equiv</filename> or
- <filename>etc/hosts.lpd</filename> on the FreeBSD printserver.
- Most sites may simply decide to put a wildcard in
- <filename>hosts.equiv</filename> to allow printing, especially
- if DHCP is used, but many security-conscious sites may stick
- with individual entries in
- <filename>hosts.lpd</filename>.</para>
- </note>
- </step>
-
- <step>
- <para>If the printer is PostScript and cannot print ASCII, make
- sure that the "No banner page control flag" is checked to turn
- off banner pages. Accessible under Port settings, this flag is
- overridden if the <filename>/etc/printcap</filename>file
- specifies no banner pages.</para>
- </step>
-
- <step>
- <para>Review how the "send plain text control flag" is set. With
- this flag unchecked, the LPR code sent is L, (ie:, print
- unfiltered) meaning that the <literal>if</literal> filter gets
- called with the <option>-c</option> option. This is equivalent
- to the local invocation of <filename>/usr/bin/lpr -l</filename>.
- With the flag checked, the code is F, (formatted) meaning that
- the <literal>if</literal>filter gets called without the
- <option>-c</option> option. This is equivalent to the default
- invocation <filename>/usr/bin/lpr</filename>. (This is also an
- issue under Windows NT, which retypes the print job to text if
- this flag is checked. Some filters understand the
- <option>-c</option> flag, which is used to preserve control
- characters, so it should generally remain unchecked.</para>
- </step>
-
- <step>
- <para>Leave the "Send data file before control file" box
- unchecked. This option is used only in rare mainframe spooling
- circumstances.</para>
- </step>
-
- <step>
- <para>Click <guibutton>OK</guibutton>, then click the
- <guibutton>Spool Settings</guibutton> button at the properties
- page.</para>
- </step>
-
- <step>
- <para>Make sure that the "Spool print jobs so program finishes
- printing faster" box is checked.</para>
- </step>
-
- <step>
- <para>Make sure that "Start printing after last page is spooled"
- box is checked.</para>
- </step>
-
- <step>
- <para>Make sure that "Disable bi-directional support for this
- printer" is checked, or greyed out.</para>
- </step>
-
- <step>
- <para>Make sure that the "Spool data format" is set to RAW. Some
- printer drivers present a choice of EMF or RAW, such as the
- Generic Text driver, in this case select RAW.</para>
- </step>
-
- <step>
- <para>Click <guibutton>OK</guibutton>, then
- <guibutton>OK</guibutton> again to close the Printer Properties.
- The printer icon now spools through FreeBSD.</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Installation of LPR client on Windows NT</title>
-
- <para>Unlike WfW and Win95 TCP/IP, Windows NT&mdash;both server and
- workstation&mdash;includes an LPR client as well as an LPD program
- that allows incoming print jobs to be printed from LPR clients, such
- as UNIX systems.</para>
-
- <para>To install the LPR client and daemon program under Windows NT
- 3.51, use the following instructions. The TCP/IP protocol should be
- installed beforehand and you must be logged in to the NT system as
- Administrator. This can be done at any time after the NT system is
- installed, or during OS installation:</para>
-
- <procedure>
- <step>
- <para>Double-click on Main, Control Panel, then
- Network Settings.</para>
- </step>
-
- <step>
- <para>In the Installed Network Software window, "Microsoft TCP/IP
- Printing" should be listed as well as "TCP/IP Protocol".</para>
- </step>
-
- <step>
- <para>Click the <guibutton>Add Software</guibutton> button to get
- the Add Network Software dialog box</para>
- </step>
-
- <step>
- <para>Click the down arrow and select TCP/IP Protocol and related
- components. Click <guibutton>Continue</guibutton>.</para>
- </step>
-
- <step>
- <para>Check the "TCP/IP Network Printing Support" box and click
- <guibutton>Continue</guibutton>. LPR printing is now installed.
- Follow the instructions to reboot to save changes.</para>
- </step>
- </procedure>
-
- <para>To install the LPR client and daemon program under Windows NT 4,
- use the following instructions. The TCP/IP protocol should be
- installed beforehand and you must be logged in to the NT system as
- Administrator. This can be done at any time after the NT system is
- installed, or during OS installation:</para>
-
- <procedure>
- <step>
- <para>Click on <guibutton>Start</guibutton>,
- <guimenuitem>Settings</guimenuitem>, <guimenuitem>Control
- Panel</guimenuitem>, and double-click on
- <guiicon>Network</guiicon> to open it up.</para>
- </step>
-
- <step>
- <para>Click on the <guilabel>Services</guilabel> tab.
- <literal>Microsoft TCP/IP Printing</literal> should be listed.
- If not, continue steps 3 - 4.</para>
- </step>
-
- <step>
- <para>Click <guibutton>Add</guibutton>, then select
- <guilabel>Microsoft TCP/IP Printing</guilabel> and click
- <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>Click <guibutton>Close</guibutton>. Follow instructions to
- reboot to save changes.</para>
-
- <note>
- <para>Any NT Service Packs that were previously installed must
- be reapplied after these operations.</para>
- </note>
- </step>
- </procedure>
-
- <para>Once LPR printing has been installed, the Printer icon or icons
- must be created on the NT system so that applications can print.
- Since this printer driver does all job formatting before passing the
- printing to the FreeBSD printserver, the print queues specified
- should be raw queues on the FreeBSD system, which don't do any job
- formatting.</para>
-
- <para>To install the printer icon in Print Manager and set it to send
- print jobs to the FreeBSD UNIX system, use the following
- instructions under NT 3.51. You must be logged in to the NT system
- as Administrator. This can be done at any time after the NT system
- is installed, or during OS installation.</para>
-
- <procedure>
- <step>
- <para>Click on Main, and open it. Then click on Print Manager to
- open it.</para>
- </step>
-
- <step>
- <para>Click on <guiicon>Printer</guiicon>, <guibutton>Create
- Printer</guibutton>. Select the appropriate printer
- driver.</para>
- </step>
-
- <step>
- <para>Click the down arrow under Print To and select
- Other.</para>
- </step>
-
- <step>
- <para>In the Available Print Monitors window select
- LPR port and click <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>Enter the hostname of the FreeBSD printserver, and the name
- of the printer queue and click <guibutton>OK</guibutton></para>
- </step>
-
- <step>
- <para>Click <guibutton>OK</guibutton> to close the Create Printer
- window. The Printer icon is created.</para>
- </step>
- </procedure>
-
- <para>To install the printer icon in Print Manager and set it to send
- print jobs to the FreeBSD UNIX system, use the following
- instructions under NT 4. You must be logged in to the NT system as
- Administrator. This can be done at any time after the NT system is
- installed, or during OS installation:</para>
-
- <procedure>
- <step>
- <para>Click <guibutton>Start</guibutton>,
- <guimenuitem>Settings</guimenuitem>,
- <guimenuitem>Printers</guimenuitem> to open the printer
- folder.</para>
- </step>
-
- <step>
- <para>Double-click <guiicon>Add Printer</guiicon> to start the
- wizard.</para>
- </step>
-
- <step>
- <para>3) Select the My Computer radio button, not the Network
- Print Server button and click <guibutton>Next</guibutton>. (The
- printer <emphasis>is</emphasis> a networked printer, it is
- managed on the local NT system. Microsoft used confusing
- terminology here.</para>
- </step>
-
- <step>
- <para>Click <guibutton>Add Port</guibutton> and select LPR Port,
- then click <guibutton>New Port</guibutton>.</para>
- </step>
-
- <step>
- <para>Enter the hostname and print queue for the FreeBSD
- printserver and click <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>Click <guibutton>Next</guibutton> and select the correct
- printer driver. Continue until the printer is set up.</para>
- </step>
- </procedure>
-
- <para>The LPR client in Windows NT allows DOS print jobs originating
- in DOS boxes to be routed to the central UNIX print spooler. This
- is an advantage over the Win95 and WfW LPR programs.</para>
-
- <sect3>
- <title>Windows NT Registry Changes</title>
-
- <para>Using the LPR daemon program under Windows NT presents one
- problem. If the NT server is used as an LPR/LPD "relay", for
- example, to pass jobs from clients to LPR print queues on a UNIX
- system, to pass jobs from LPR programs on UNIX terminating at NT
- print queues, or to pass jobs from Appletalk clients to LPR
- printers, NT retypes the job if the type code is set to P (text).
- This can wreak havoc on PostScript files printed through HP
- LaserJet printers with internal MIO cards in them, if the job
- originates from the <filename>/usr/bin/lpr</filename> program
- under UNIX, which assigns a P type code. The printserver card
- treats PostScript jobs as text, and instead of the print job, the
- raw PostScript codes print. This problem often manifests in the
- following way: <filename>/usr/bin/lpr</filename> is used to print
- a PostScript file from UNIX directly to the remote printer
- printserver, which works fine, but spooling it through NT causes
- problems.</para>
-
- <para>A registry change that can override the NT Server formatting
- behavior is detailed in Microsoft Knowledge Base article ID
- Q150930. With Windows NT 3.51, and 4.0 up to service pack 1 the
- change is global. Starting with NT 4.0 Service pack 2 the change
- can be applied to specific print queues, (see Knowledge Base
- article ID Q168457).</para>
-
- <para>Under Windows NT 4.0, the change is:</para>
-
- <procedure>
- <step>
- <para>Run Registry Editor
- (<filename>REGEDT32.EXE</filename>)</para>
- </step>
-
- <step>
- <para>From the <literal>HKEY_LOCAL_MACHINE</literal> subtree, go
- to the following key:</para>
-
- <para><literal>\SYSTEM\CurrentControlSet\Services\LPDSVC\Parameters</literal></para>
- </step>
-
- <step>
- <para>On the <guimenu>Edit</guimenu> menu, click
- <guimenuitem>Add Value</guimenuitem>.</para>
- </step>
-
- <step>
- <para>Add the following:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>Value Name:</entry>
- <entry>SimulatePassThrough</entry>
- </row>
-
- <row>
- <entry>Data Type:</entry>
- <entry>REG_DWORD</entry>
- </row>
-
- <row>
- <entry>Data</entry>
- <entry>1</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>The default value is 0, which informs LPD to assign
- datatypes according to the control commands.</para>
- </note>
- </step>
- </procedure>
-
- <para>Under Windows NT 3.51, the change is:</para>
-
- <procedure>
- <step>
- <para>Run Registry Editor
- (<filename>REGEDT32.EXE</filename>)</para>
- </step>
-
- <step>
- <para>From the <literal>HKEY_LOCAL_MACHINE</literal> subtree, go
- to the following key:</para>
-
- <para><literal>\SYSTEM\CurrentControlSet\Services\LPDSVC\Parameters</literal></para>
- </step>
-
- <step>
- <para>On the <guimenu>Edit</guimenu> menu, click
- <guimenuitem>Add Value</guimenuitem>.</para>
- </step>
-
- <step>
- <para>Add the following:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>Value Name:</entry>
- <entry>SimulatePassThrough</entry>
- </row>
-
- <row>
- <entry>Data Type:</entry>
- <entry>REG_DWORD</entry>
- </row>
-
- <row>
- <entry>Data</entry>
- <entry>1</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>The default value is 0, which informs LPD to assign
- datatypes according to the control commands.</para>
- </note>
- </step>
-
- <step>
- <para>Create an LPD key at the same level as the LPDSVC
- key.</para>
- </step>
-
- <step>
- <para>Click the LPDSVC Key, click <guimenuitem>Save
- Key</guimenuitem> from the <guimenu>Registry</guimenu> menu,
- and then save the file as
- <filename>LPDSVC.KEY</filename></para>
- </step>
-
- <step>
- <para>Click the LPD key created in step 5.</para>
- </step>
-
- <step>
- <para>Click <guimenuitem>Restore</guimenuitem> on the
- <guimenu>Registry</guimenu> menu, click the file created in
- step 6, and then click <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>A warning message appears. Click
- <guibutton>OK</guibutton> and then quit the Registry
- Editor.</para>
- </step>
-
- <step>
- <para>At a command prompt window, type:</para>
-
- <screen><userinput>net stop lpdsvc</userinput>
-<userinput>net start lpdsvc</userinput></screen>
- </step>
- </procedure>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Printing Postscript and DOS command files</title>
-
- <para>One problem with printing under Win31 and Win95 with the LPR
- methods discussed is the lack of a <quote>raw</quote>
- <devicename>LPT1:</devicename> device. This is annoying to the
- administrator who wants to print an occasional text file, such as a
- file full of printer control codes, without their being intercepted by
- the Windows printer driver. Of course this is also an issue with DOS
- programs, but a commercial site that runs significant DOS software and
- wants to print directly to UNIX with LPR really only has one
- option&mdash;to use a commercial TCP/IP stack containing a DOS LPR
- program.</para>
-
- <para>Normally, under Windows printing, virtually all graphical programs
- print through the Windows printer driver. This is true even of basic
- programs such as Notepad. For example, an administrator may have a
- DOS batch file named <filename>filename.txt</filename>containing the
- following line:</para>
-
- <programlisting>echo \033&amp;k2G &gt; lpt1:</programlisting>
-
- <para>This batch file switches a HP LasterJet from CR-LF, MS-DOS
- textfile printing into Newline termination UNIX textfile printing.
- Otherwise, raw text printed from UNIX on the HP prints with a
- stairstep effect.</para>
-
- <para>If the administrator opens this file with Notepad and prints it
- using a regular printer driver, such as an Epson LQ, the Windows
- printer driver encapsulates this print output into a series of
- printer-specific control codes that do things such as initialize the
- printer, install fonts, and so on. The printer won't interpret this
- output as control code input. Usually, if the printer is locally
- attached, the user can force a "raw text print" of the file by opening
- a DOS window and running:</para>
-
- <screen><userinput>copy filename.txt lpt1: /b</userinput></screen>
-
- <para>Since the LPR client program doesn't provide a DOS driver, it
- cannot reroute input from the <devicename>LPT1:</devicename> device
- ports. The solution is to use the Generic / Text Only printer driver
- in conjunction with Wordpad (under Win95); under Win31 use a different
- text editor. The Notepad editor supplied with Windows is unsuitable
- for this - it "helpfully" inserts a 1 inch margin of spaces around all
- printed output, as well as the filename title. Wordpad supplied with
- Win95, can be set to use margins of zero, and inserts no additions
- into the printed output. Also, make sure that banner pages are turned
- off, and the print type is set to raw.</para>
- </sect1>
-
- <sect1>
- <title>Checking PostScript Printer capabilities</title>
-
- <para>Following is a PostScript command file that can be used to get a
- PostScript printer to output a number of useful pieces of information
- that are needed to set up a printer icon under Windows properly. It
- was printed from Wordpad, in Win95, through the Generic / Text Only
- printer driver with the following instructions:</para>
-
- <procedure>
- <step>
- <para><guibutton>Start</guibutton>, <guimenuitem>Run</guimenuitem>,
- type in <userinput>Wordpad</userinput> and press
- <keycap>Enter</keycap>.</para>
- </step>
-
- <step>
- <para><guimenu>File</guimenu>, <guimenuitem>Open</guimenuitem>
- <filename>testps.txt</filename></para>
- </step>
-
- <step>
- <para><guimenu>File</guimenu>, <guimenuitem>Page
- Setup</guimenuitem>, <guimenuitem>Printer</guimenuitem>, select
- <guimenuitem>Generic / Text Only</guimenuitem>, click
- <guibutton>Properties</guibutton></para>
- </step>
-
- <step>
- <para>Click <guimenuitem>Device Options</guimenuitem>, select
- <guilabel>TTY custom</guilabel>, click
- <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>Click <guibutton>OK</guibutton>, then set all four margins to
- <literal>0</literal>; click <guibutton>OK</guibutton>.</para>
- </step>
-
- <step>
- <para>Click <guimenu>File</guimenu>,
- <guimenuitem>Print</guimenuitem>,
- <guibutton>OK</guibutton>.</para>
- </step>
- </procedure>
-
- <para>This could also have been printed with
- <filename>/usr/bin/lpr</filename> on a UNIX command prompt. The file
- prints <emphasis>Test Page</emphasis> and some printer statistics
- below that, as follows.</para>
-
- <programlisting>% filename: testps.txt
-% purpose: to verify proper host connection and function of PostScript
-% printers.
-/buf 10 string def
-/CM {
-save statusdict/product get (Postscript) anchorsearch
-exch pop {length 0 eq
-{1}{2}ifelse
-}
-{2}ifelse exch restore
-}bind def
-/isCM {
-CM 1 ge
-}bind def
-/Times-BoldItalic findfont 75 scalefont setfont
-150 500 moveto
-(Test Page) false charpath
-isCM{gsave 0.0 1.0 1.0 0.0 setcmykcolor fill grestore}if
-2 setlinewidth stroke
-/Times-Roman findfont 10 scalefont setfont
-150 400 moveto
-(Your PostScript printer is properly connected and operational.)show
-150 380 moveto
-(The border around the page indicates your printer's printable region.)show
-{ vmreclaim } stopped pop
-vmstatus exch sub exch pop
-150 360 moveto
-(Max Available Printer Virtual Memory (KB):)show
-150 340 moveto
-dup 1024 div truncate buf cvs show
-150 320 moveto
-(Calculated memory size used for PostScript printer icon properties:) show
-150 300 moveto
-0.85 mul 1024 div truncate buf cvs show
-150 280 moveto
-(Printer Model: )show
-statusdict begin product show end
-150 260 moveto
-(PostScript Level: )show
-/languagelevel where
-{ languagelevel 3 string cvs show pop }
-{(1) show } ifelse
-150 240 moveto
-(PostScript Version: )show
-statusdict begin
-version show (.)show
-revision 40 string cvs show end
-clippath stroke
-showpage</programlisting>
- </sect1>
-
- <sect1>
- <title>Setting up LPR/LPD on FreeBSD</title>
-
- <para>When a FreeBSD system is booted, it starts the LPD spooler control
- daemon program if the <filename>/etc/rc.conf</filename> file has
- <literal>lpd_enable="YES"</literal> set. If this is not set, attempts
- to print through and from the FreeBSD system will fail with an
- <errorname>lpr: connect: No such file or directory</errorname> error
- message.</para>
-
- <para>The LPD program manages all incoming print jobs, whether they come
- in from the network, or from local users on the UNIX system. It
- transfers print jobs to all locally attached parallel or serial
- printers, as well as defined remote printers. Several programs also
- are used to manipulate jobs in the print spools that LPD manages, as
- well as the user programs to submit them from the UNIX command prompt.
- All of these programs use the <filename>/etc/printcap</filename>file,
- which is the master control file for the printing system.</para>
-
- <para>Back when printing was mostly text, it was common to place
- printers on a serial connection that stretched for long distances.
- Often, 9600bps was used because it could work reliably up to a block
- away, which allowed printers to be located almost anywhere on an
- office high-rise floor. Modern office print jobs, on the other hand,
- are generally graphics-laden and tend to be rather large. These jobs
- would take hours to transfer over a slower 9600bps serial printer
- connection. Today, most printers that are not connected to a remote
- hardware print server box are directly connected to the server using
- parallel cables. All of the examples shown here are direct
- connections that are parallel connections.</para>
-
- <para>The <filename>printcap</filename> configuration file, like most
- UNIX configuration files, indicates comment lines starting with a hash
- character. Lines without a hash character are meant to be part of a
- printer queue description line. Each printer queue description line
- starts with a symbolic name, and ends with a newline. Since the
- description lines are often quite long, they are often written to span
- multiple lines by escaping intermediate newlines with the backslash
- (<literal>\</literal>) character. The
- <filename>/etc/printcap</filename>file, as supplied, defines a single
- printer queue, <literal>lp</literal>. The <literal>lp</literal>queue
- is the default queue. Most UNIX-supplied printing utilities send
- print output to this queue if no printer is specified by the user. It
- should be set to point to the most popular print queue with
- <emphasis>local</emphasis> UNIX print users, (i.e.: users that have
- shell accounts).</para>
-
- <para>The layout of <filename>/etc/printcap</filename>is covered in the
- manual page, which is reached by running the <userinput>man
- printcap</userinput> command. The stock
- <filename>/etc/printcap</filename> file at the line defining the spool
- <literal>lp</literal>shows:</para>
-
- <programlisting>#
-lp|local line printer:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
-#</programlisting>
-
- <para>In this example the first line defines the names by which the
- printer is known, and ends with an escaped newline. The next line
- defines the physical device, the PC parallel port, by
- <filename>/dev/lpt0</filename>, and the directory in which the spool
- files are stored at <filename>/var/spool/output/lpd</filename>, and
- the error log file. Note that this particular error log file will not
- show all LPD errors, such as bad job submittals, it usually shows only
- the errors that originate within the printing system itself.</para>
-
- <para>In general, the administrator creates two print queues for every
- printer that is connected to the FreeBSD machine. The first queue
- entry contains whatever additional capabilities UNIX shell users on
- the server require. The second is a raw queue that performs no print
- processing on the incoming print job. This queue is used by remote
- clients, such as Windows clients, that format their own jobs.</para>
-
- <para>If the administrator is setting up the printer to allow incoming
- LPR jobs from network clients, such as other Windows or UNIX systems,
- those systems <emphasis>must</emphasis> be listed in
- <filename>/etc/hosts.lpd</filename>.</para>
-
- <sect2>
- <title>Creating the spools</title>
-
- <para>Building new print spools is merely a matter of making an entry
- in the <filename>/etc/printcap</filename> file, creating the spool
- directories, and setting the correct permissions on them. For
- example, the following additional line defines a PostScript printer
- named NEC (in addition to the <literal>lp</literal>
- definition):</para>
-
- <programlisting>#
-lp|local line printer:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
-
-NEC|NEC Silentwriter 95 Postscript printer:\
- :lp=/dev/lpt0:sd=/var/spool/output/NEC:lf=/var/log/lpd-errs:
-#</programlisting>
-
- <para>Because UNIX is case sensitive, NEC is different from
- <literal>nec</literal> in both the name of the printer and the name
- of the Spool directory. With the print spooler LPD, the Spool
- directories <emphasis>must</emphasis> be different from each other,
- or the spooler gets confused and doesen't print.</para>
-
- <para>After the <filename>/etc/printcap</filename>is modified, the
- root user must create the <filename>/var/spool/output/NEC</filename>
- directory and assign ownership of it to the <username>bin</username>
- user, assign group ownership to <username>daemon</username>, and set
- permissions with the following commands:</para>
-
- <screen>&prompt.user; <userinput>su root</userinput>
-&prompt.root; <userinput>cd /var/spool/output</userinput>
-&prompt.root; <userinput>mkdir NEC</userinput>
-&prompt.root; <userinput>chown bin NEC</userinput>
-&prompt.root; <userinput>chgrp daemon NEC</userinput>
-&prompt.root; <userinput>chmod 755 NEC</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Additional spool capabilities</title>
-
- <para>Because modern print jobs (especially PostScript) can sometimes
- reach hundreds of megabytes, the <literal>sd</literal> capability
- entry in the <filename>/etc/printcap</filename> file should always
- point to a Spool directory on a filesystem that has enough space.
- The <filename>/var</filename> directory on a default FreeBSD
- installation is generally set to a fairly small amount, which can
- easily overflow the spool. There are four ways to handle this
- problem:</para>
-
- <orderedlist>
- <listitem>
- <para>During FreeBSD installation, if the administrator knows a
- lot of print jobs are going to go through the spooler,
- <filename>/var</filename>should be set to a large
- amount of free space.</para>
- </listitem>
-
- <listitem>
- <para>Modify the <literal>sd</literal> capability in the
- <filename>/etc/printcap</filename> file to point to a spool
- directory in a different, larger filesystem, such as
- <filename>/usr/spool.</filename></para>
- </listitem>
-
- <listitem>
- <para>Use soft links to point the
- <filename>/var/spool/output</filename> directory to directories
- on a larger filesystem.</para>
- </listitem>
-
- <listitem>
- <para>Don't define a <filename>/var</filename> directory at all
- during FreeBSD installation; this would make the installer link
- <filename>/var</filename> to
- <filename>/usr/var</filename>.</para>
- </listitem>
- </orderedlist>
-
- <para>In addition to spools, the following other capabilities are
- usually placed in a production
- <filename>/etc/printcap</filename>file.</para>
-
- <para>The entry <literal>fo</literal> prints a form feed when the
- printer is opened. It is handy for HPPCL (HP LaserJets) or other
- non-PostScript printers that are located behind electronic print
- sharing devices. It can also be used for printers that accept input
- from multiple connections, such as a parallel port, serial port, and
- localtalk port. An example is an HP LaserJet with an MIO card in it
- plugged into both Ethernet and LocalTalk networks. It will clear
- any garbage out of the printer before the job is processed.</para>
-
- <para>The entry <literal>mx</literal> defines the maximum size of a
- print job, which is a must for modern print jobs that frequently
- grow far past the default print size of a megabyte. The original
- intent of this capability was to prevent errant programs from
- stuffing the spool with jobs so large that they would use up all
- paper in a printer.. Graphics-heavy print jobs have made it
- impossible to depend on this kind of space limitation, so
- <literal>mx</literal> is usually set to zero, which turns it
- off.</para>
-
- <para>The entry <literal>sh</literal> suppresses printing of banner
- pages in case the printer cannot handle ASCII and the client
- mistakenly requests them.</para>
-
- <para>The entry <literal>ct</literal> denotes a TCP Connection
- timeout. This is useful if the remote print server doesn't close
- the connection properly.</para>
-
- <note>
- <para>FreeBSD 2.2.5 contains a bug in the LPD system - as a
- workaround the <literal>ct</literal> capability needs to be set
- very large, such as 3600, or the appropriate patch installed and
- LPD recompiled. More recent versions of FreeBSD do not have this
- bug.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Printing to hardware print server boxes or remote print
- servers.</title>
-
- <para>Hardware print server boxes, such as the HP JetDirect internal
- and external cards, need some additional capabilities defined in the
- <filename>/etc/printcap</filename> entry; <literal>rp</literal>, for
- remote print spool, and <literal>rm</literal>for remote machine
- name.</para>
-
- <para>The <literal>rm</literal> capability is simply the DNS or
- <filename>/etc/hosts</filename> name of the IP number associated
- with the remote printserver device. Obviously, print server
- devices, such as the HP JetDirect, must not use a dynamic TCP/IP
- network numbering assignment. If they get their numbering via DHCP,
- the IP number should be assigned from the static pool; it should
- always be the same IP number.</para>
-
- <para>Determining the name used for <literal>rp</literal>, on the
- other hand, can be rather difficult. Here are some common
- names:</para>
-
- <para>Windows NT Server: Printer name of the printer icon created in
- Print Manager</para>
-
- <para>FreeBSD: Print queue name defined in
- <filename>/etc/printcap</filename></para>
-
- <para>HP JetDirect: Either the name <literal>TEXT</literal> or the
- name <literal>RAW</literal>. <literal>TEXT</literal> automatically
- converts incoming UNIX newline text to DOS-like CR/LF text that the
- printer can print. <literal>RAW</literal> should be used for
- PostScript, and HPPCL printing.</para>
-
- <para>HP JetDirect EX +3: External, 3 port version of the JetDirect.
- Use <literal>RAW1</literal>, <literal>RAW2</literal>,
- <literal>RAW3</literal>, <literal>TEXT1</literal>,
- <literal>TEXT2</literal>, or <literal>TEXT3</literal> depending on
- the port desired.</para>
-
- <para>Intel NetPort: Either use <literal>TEXT</literal> for UNIX text
- conversion printing or use <literal>PASSTHRU</literal> for normal
- printing.</para>
-
- <para>DPI: Use <literal>PORT1</literal> or <literal>PORT2</literal>
- depending on which port the printer is plugged into.</para>
-
- <para>For other manufacturer's print servers refer to the manuals
- supplied with those devices.</para>
-
- <para>The following is an example printcap that redefines the default
- <literal>lp</literal> print queue to send print jobs to the first
- parallel port on a remote HP LaserJet plugged into a JetDirect EX +3
- named <hostid role="fqdn">floor2hp4.biggy.com</hostid>.</para>
-
- <programlisting>#
-lp|local line printer:\
- :rm=floor2hp4.biggy.com:rp=RAW1:\
- :sd=/var/spool/output/lpd:\
- :lf=/var/log/lpd-errs:
-#</programlisting>
-
- <note>
- <para>The <literal>rp</literal> capability <emphasis>must</emphasis>
- be defined or the job goes to the default print queue on the
- remote host. If the remote device does not have a single print
- queue, such as another UNIX system, this causes problems. For
- example, if the remote device was a JetDirect EX + 3 and
- <literal>rp</literal> was omitted, all queues defined would print
- out of the first parallel port.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Filters</title>
-
- <para>The last two important printcap capabilities concern print
- filters, <literal>if</literal> (input filter) and
- <literal>of</literal> (output filter) If defined, incoming print
- jobs are run through the filters that these entries point to for
- further processing.</para>
-
- <para>Filters are the reason that the UNIX print spooling system is so
- much more powerful than any other commercial server operating
- system. Under FreeBSD, incoming print jobs are acted on by any
- filters specified in the <filename>/etc/printcap</filename>
- <emphasis>no matter where they originate</emphasis>. Incoming print
- jobs from remote Windows, Mac, NT, OS/2 or other clients can be
- intercepted and manipulated by any program specified as a filter.
- Want a PostScript Printer? There's a filter that adds PostScript
- capability to a non-PostScript printer. Want to make a cheap Epson
- MX 80 dot-matrix emulate an expensive Okidata Microline dot-matrix
- for some archaic mainframe application? Write a filter that will
- rewrite the print codes to do it. Want custom-built banner pages?
- Use a filter. Many UNIX <filename>/etc/printcap</filename> filters
- on many Internet sites can do a variety of interesting and unique
- things. Someone may have already written a filter that does what you
- want!</para>
-
- <sect3>
- <title>Types of filters</title>
-
- <para>Three types of filters can be defined in the
- <filename>/etc/printcap</filename> file. In this book all filter
- examples are for Input filters.</para>
-
- <sect4>
- <title>Input Filters</title>
-
- <para>Input filters are specified by the <literal>if</literal>
- capability. Every job that comes into the spool is acted on by
- any filter specified in the <literal>if</literal> entry for that
- spool. Virtually all filters that an administrator would use are
- specified here. These filters can be either shell scripts, or
- compiled programs.</para>
- </sect4>
-
- <sect4>
- <title>Fixed Filters</title>
-
- <para>Fixed filters are specified by separate capabilities, such
- as <literal>cf</literal>, <literal>df</literal>, and
- <literal>gf</literal>. Mostly, these exist for historical
- reasons. Originally, the idea of LPD was that incoming jobs
- would be submitted with the type fields set to trigger whatever
- filter was desired. However, type codes are confusing and
- annoying to the user, who has to remember which option is needed
- to trigger which type. It is much easier to set up multiple
- queues with different names, and this is what most sites do
- these days. For example, originally a DVI fixed filter might be
- specified in a spool for <literal>lp</literal>, triggered by the
- <option>-d</option> option passed to <command>lpr</command>.
- Jobs without this option aren't acted on by the DVI filter.
- However, the same thing can be done by creating a queue named
- <literal>lp</literal> that doesn't have a DVI filter, and a
- queue named <literal>lpdvi</literal> which has the DVI filter
- specified in the <literal>if</literal> capability. Users just
- need to remember which queue to print to, instead of what option
- needed for this or that program.</para>
- </sect4>
-
- <sect4>
- <title>Output Filters</title>
-
- <para>These are specified by the <literal>of</literal>capability.
- Output filters are much more complicated than input filters and
- are hardly ever used in normal circumstances. They also
- generally require a compiled program somewhere, either directly
- specified or wrapped in a shell script, since they have to do
- their own signal-handling.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Printing raw Unix text with a filter</title>
-
- <para>One of the first thing that a new Unix user will discover when
- plugging a standard LaserJet or impact printer into a UNIX system
- is the <emphasis>stairstep</emphasis> problem. The symptom is
- that the user dumps text to the printer, either through LPR or
- redirection (by catting it to the parallel device) and instead of
- receiving the expected Courier 10-point printout, gets a page with
- a single line of text, or two lines of text "stairstepped", text
- and nothing else.</para>
-
- <para>The problem is rooted in how printers and UNIX handle
- textfiles internally. Printers by and large follow the "MS-DOS
- Textfile" convention of requiring a carriage return, then a
- linefeed, at the end of every text line. This is a holdover from
- the early days when printers were mechanical devices, and the
- print head needed to return and the platen to advance to start a
- new line. UNIX uses only the linefeed character to terminate a
- text line. So, simply dumping raw text out the parallel port
- works on MS-DOS, but not on UNIX.</para>
-
- <para>If the printer is a PostScript printer, and doesn't support
- standard ASCII, then dumping UNIX text to it doesn't work. But
- then, neither would dumping MS-DOS text to it. (Raw text printing
- on PostScript printers is discussed later in this chapter) Note
- also that if the printer is connected over the network to an HP
- JetDirect hardware print server, internal or external, the TEXT
- queue on the hardware print automatically adds the extra Carriage
- Return character to the end of a text line.</para>
-
- <para>If the printer is the garden-variety HP LaserJet, DeskJet, or
- an impact printer, and under DOS the administrator is used to
- printing raw text from the command line for directory listings,
- there are two ways to fix stairstep. The first is to send a
- command to the printer to make it print in "unix textfile" mode,
- which makes the printer supply it's own carriage return. This
- solution is ugly in a printer environment with UNIX and Windows
- machines attempting to share use of the same printer. Switching
- the printer to work with Unix disrupts DOS/Windows raw text
- printouts.</para>
-
- <para>The better solution is to use a simple filter that converts
- incoming text from UNIX style to DOS style. The following filter
- posted on questions@freebsd.org and the sample
- <filename>/etc/printcap</filename> entry can be used to do
- this:</para>
-
- <programlisting>#!/bin/sh
-# /usr/local/libexec/crlfilter
-#
-# simple parlor trick to add CR to LF for printer
-# Every line of standard input is printed with CRLF
-# attached.
-#
-
-awk '{printf "%s\r\n", $0}' -</programlisting>
-
- <para>An alternative filter posted using sed could be written
- as:</para>
-
- <programlisting>#!/bin/sh
-# /usr/local/libexec/crlfilter
-#
-# Add CR to LF for printer
-# Every line of standard input is printed with CRLF
-# attached.
-#
-# Note, the ^M is a *real* ^M (^V^M if your typing in vi)
-#
-
-sed 's/$/^M/' -</programlisting>
-
- <para>Here is an example of a filter that triggers the printers
- automatic LF-to-CR/LF converter (this option is only useful on HP
- LaserJets that support this command):</para>
-
- <programlisting>#!/bin/sh
-# Simply copies stdin to stdout. Ignores all filter
-# arguments.
-# Tells printer to treat LF as CR+LF. Writes a form feed
-# character after printing job.
-
-printf "\033&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\f" &amp;&amp; exit 0
-
-exit 2</programlisting>
-
- <para>The printcap file used to trigger the filter is:</para>
-
- <programlisting>#/etc/printcap
-# The trailer (tr) is used when the queue empties. I found that the
-# form feed (\f) was basically required for the HP to print properly.
-# Banners also need to be shut off.
-#
-
-lp|local line printer:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
- :if=/usr/local/libexec/crlfilter:sh:tr=\f:mx#0:
-#</programlisting>
- </sect3>
-
- <sect3>
- <title>The pr filter</title>
-
- <para>Although most filters are built by scripts or programs and are
- added to the UNIX machine by the administrator, there is one
- filter that is supplied with the FreeBSD operating system is very
- useful for raw text files: the <literal>pr</literal>filter. It is
- most commonly used when printing from the UNIX command shell. The
- <literal>pr</literal> filter paginates and applies headers and
- footers to ASCII text files. It is automatically invoked with the
- <option>-p</option> option used with the <command>lpr</command>
- program at the UNIX command prompt.</para>
-
- <para>The pr filter is special - it runs <emphasis>in
- addition</emphasis> to any input filters specified for the print
- queue in <filename>/etc/printcap</filename>,
- <emphasis>if</emphasis> the user sets the option for a print job.
- This allows headers and pagination to be applied in addition to
- any special conversion, such as CR to LF that a specified input
- filter may apply.</para>
- </sect3>
-
- <sect3>
- <title>Printing PostScript banner pages with a Filter.</title>
-
- <para>Unfortunately, the canned banner page supplied in the LPD
- program prints only on a text-compatible printer. If the attached
- printer understands only PostScript and the administrator wants to
- print banner pages, it is possible to install a filterinto the
- <filename>/etc/printcap</filename>file to do this.</para>
-
- <para>The following filter is taken from the FreeBSD Handbook. I've
- slightly changed it's invocation for a couple of reasons. First,
- some PostScript printers have difficulty when two print files are
- sent within the same print job or they lack the trailing
- Control-D. Second is that the handbook invocation uses the LPRPS
- program, which requires a serial connection to the printer.</para>
-
- <para>The following filter shows another trick: calling LPR from
- within a filter program to spin off another print job.
- Unfortunately, the problem with using this trick is that the
- banner page always gets printed after the job. This is because
- the incoming job spools first, and then FreeBSD runs the filter
- against it, so the banner page generated by the filter always
- spools behind the existing job.</para>
-
- <para>There are two scripts, both should be put in the
- <filename>/usr/local/libexec</filename> directory, and the modes
- set to executable. The <filename>printcap</filename> also must be
- modified to create the nonbanner and banner versions of the print
- queue. Following the scripts is the
- <filename>/etc/printcap</filename> file showing how they are
- called. Notice that the <literal>sh</literal> parameter is turned
- on since the actual printed banner is being generated on the fly
- by the filter:</para>
-
- <programlisting>#!/bin/sh
-# Filename /usr/local/libexec/psbanner
-# parameter spacing comes from if= filter call template of:
-# if -c -w -l -i -n login -h host
-# parsing trickiness is to allow for the presence or absence of -c
-# sleep is in there for ickiness of some PostScript printers
-
-for dummy
-do
- case "$1" in
- -n) alogname="$2" ;;
- -h) ahostname="$2" ;;
- esac
- shift
-done
-
-/usr/local/libexec/make-ps-header $alogname $ahostname "PostScript" | \
- lpr -P lpnobanner
-
-sleep 10
-
-cat &amp;&amp; exit 0</programlisting>
-
- <para>Here is the <filename>make-ps-header</filename>listing.</para>
-
- <programlisting>#!/bin/sh
-# Filename /usr/local/libexec/make-ps-header
-#
-# These are PostScript units (72 to the inch). Modify for A4 or
-# whatever size paper you are using:
-#
-
-page_width=612
-page_height=792
-border=72
-
-#
-# Save these, mostly for readability in the PostScript, below.
-#
-
-user=$1
-host=$2
-job=$3
-date=`date`
-
-#
-# Send the PostScript code to stdout.
-#
-
-exec cat &lt;&lt;EOF
-%!PS
-%
-% Make sure we do not interfere with user's job that will follow
-%
-
-%
-% Make a thick, unpleasant border around the edge of the paper.
-%
-
-$border $border moveto
-$page_width $border 2 mul sub 0 rlineto
-0 $page_height $border 2 mul sub rlineto
-currentscreen 3 -1 roll pop 100 3 1 roll setscreen
-$border 2 mul $page_width sub 0 rlineto closepath
-0.8 setgray 10 setlinewidth stroke 0 setgray
-
-%
-% Display user's login name, nice and large and prominent
-%
-
-/Helvetica-Bold findfont 64 scalefont setfont
-$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
-($user) show
-
-%
-% Now show the boring particulars
-%
-
-/Helvetica findfont 14 scalefont setfont
-/y 200 def
-[ (Job:) (Host:) (Date:) ] {
-200 y moveto show /y y 18 sub def
-} forall
-/Helvetica-Bold findfont 14 scalefont setfont
-/y 200 def
-[ ($job) ($host) ($date) ] {
-270 y moveto show /y y 18 sub def
-} forall
-
-%
-% That is it
-%
-
-showpage</programlisting>
-
- <para>Here is the <filename>/etc/printcap</filename> file.</para>
-
- <programlisting>#
-lp|local line printer, PostScript, banner:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
- :if=/usr/local/libexec/psbanner:sh:mx#0:
-
-lpnobanner|local line printer, PostScript, no banner:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd-noban:\
- :lf=/var/log/lpd-errs:sh:mx#0:
-#</programlisting>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Printer Accounting</title>
-
- <para>The FreeBSD print spooler can manage accounting statistics for
- printer usage. The spooler counts each page printed and generates
- totals for each user. In this manner departments or individuals can
- be charged money for their use of the printer.</para>
-
- <para>In the academic world, such as student computer labs, accounting
- is very political. Many schemes have been developed to attempt to
- gather statistics to charge people (generally students) for printing.
- Administrators in this environment who deal with printers can have
- almost as many accounting problems as printer problems. In the
- corporate environment, on the other hand, accounting is not as
- important. I strongly recommend against any corporation attempting to
- implement printer accounting on shared printers for a number of
- reasons:</para>
-
- <orderedlist>
- <listitem>
- <para>The entire UNIX accounting system is based on ASCII printouts.
- It is easy to count the number of ASCII pages, form feeds, or text
- lines in a print job. In corporations, however, PostScript and
- HPPCL are generally the order of the day. It is almost impossible
- to figure out by examining the datastream how many pages it will
- occupy, and even if this could be done accurately, it wastes
- significant computational resources.</para>
-
- <note>
- <para>It is possible to get some PostScript printers to count
- pages, but doing so requires a bidirectional connection to the
- printer and additional programming on the UNIX system. This
- task is beyond the scope of this book.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Banner pages aren't included in UNIX printer accounting
- counts. Therefore, someone submitting 20 two-page jobs uses much
- more paper than does someone submitting one 40 page job, yet both
- are charged the same amount.</para>
- </listitem>
-
- <listitem>
- <para>The username of the submitter can be easily forged, if the job
- is remotely submitted over the network from a client. (practically
- all jobs in a Windows client printing environment are remotely
- submitted) Although some LPR clients can be set to authenticate,
- and the <literal>rs</literal> capability can be set to enforce
- authentication, not all can, especially Windows LPR
- clients.</para>
- </listitem>
-
- <listitem>
- <para>It is more difficult for a submitter to hide the IP number or
- machine name of the remote client, but in a Windows environment
- there is no guarantee that someone was sitting at a particular
- desktop machine when the job was submitted.</para>
- </listitem>
-
- <listitem>
- <para>A business generates no revenue by monitoring printer usage.
- In the academic community, however, when a student lab charges for
- printouts the lab is actually extracting money from an entity (the
- student) that is separate from the lab. Within a corporation, the
- concept of department A getting revenue from user B is pointless
- and doesn't generate a net gain for the corporation as a
- whole.</para>
-
- <para>For my printer administration, I have found that I can save
- more money on printing costs by purchasing supplies wisely than by
- attempting to discourage printing through "chargebacks". What is
- the sense of being miserly with printing while spending double on
- toner cartridges because no one is willing to comparison shop, or
- signing a "lease" agreement that isn't beneficial for the printer?
- When you get down to it, corporate users don't care much for print
- sharing anyway, and they generally only agree to it because the
- administrator can buy a far bigger, faster, and fancier printer
- than they can requisition.</para>
- </listitem>
-
- <listitem>
- <para>Worse yet, if usage on a shared printer is charged, it
- encourages employees to look for other places to print.
- Inevitably, people run out buy cheap inkjet printers for their own
- use, and the business ends up spending more on paper and supplies
- for many poor-quality small printers, than it would for a few
- decent big ones. Moreover, the inferior output of these printers
- makes the organization as a whole look bad.</para>
- </listitem>
-
- <listitem>
- <para>The corporate spirit should be one of teamwork, not bickering.
- The surest way to kill a network in a corporation is to set up a
- situation that puts the administrator into the policeman position
- or pits one department against another.</para>
- </listitem>
- </orderedlist>
-
- <para>The only justification I've ever seen for running accounting on
- corporate printers is using the accounting system to automate
- reminders to the administrator to replace paper, or toner. Aside from
- this use, a corporation that implements accounting as a way of
- encouraging employees not to waste paper ends up defeating the purpose
- of turning on accounting.</para>
- </sect1>
-
- <sect1>
- <title>Microsoft Networking Client printing with Samba</title>
-
- <para>Although LPR is a time-tested and truly cross-platform printing
- solution, sites with a majority of Windows clients running Microsoft
- Networking have an alternate printing mechanism&mdash;Samba. Samba
- can provide print services to clients running SMB-compatible network
- clients. With a running Samba installation, the administrator may
- "share out" printers as well as filesystem directories from the
- FreeBSD system.</para>
-
- <para>Printers accessed with Samba must be defined both in the
- <filename>/etc/printcap</filename> file and the
- <filename>/usr/local/etc/smb.conf</filename> file. If the individual
- printers are defined in the <filename>smb.conf</filename> file with
- the <literal>printer driver=</literal> statement set to the exact
- model name of the printer, the "Auto printer driver install" feature
- of Windows NT and Win95/98 is activated. This automatically loads the
- correct printer driver if the user clicks on the print queue in
- Network Neighborhood under Windows 95 or NT 4.0 The restriction, of
- course, is that the printer model must be in the Windows client driver
- database.</para>
-
- <para>The <filename>smb.conf</filename> file also defines the
- <literal>print</literal> command used to pass jobs to the UNIX print
- spool. It is a good idea to redefine this via the <literal>print
- command</literal> option to <literal>lpr -s -P %p %s; rm
- %s</literal>. This turns on soft linking, so that large print jobs
- don't get truncated.</para>
-
- <para>In operation, the SMB-networking client builds the print job on
- itself and then transfers the entire job over the network to the Samba
- server. On the server, Samba has it's own temporary print spool
- directory to which the job is copied. Once the job has been
- completely received, it is then passed to the UNIX print
- spooler.</para>
-
- <figure>
- <title>Microsoft Networking Client printing with Samba</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="08-06" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> ,---------.
- | ======= | FreeBSD Server
- | ======= | +---------------------+ ,-----.
-+-----------+ | +---------------+ | | |
-| Printer [ ]------------[ ] | Samba | | |_____|
-+-----------+ Parallel | | Software | [ ]------_________
- Cable | +---------------+ | / ::::::: \
- | | `---------'
- | +---------------+ | Network PC
- | | Print | |
- | | Software | |
- | +---------------+ |
- +---------------------+</literallayout>
- </textobject>
-
- <textobject>
- <phrase>The Samba software and the print software run on the same
- host. Samba receives the print job, then hands it to the print
- spooler.</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <sect2>
- <title>Client access issues</title>
-
- <para>Because a Windows client formats print jobs before sending them
- to the server, the administrator may want to hide some of the
- specialty print queues on the server. For example, the queue that
- converts LF to CRLF for UNIX text printouts would probably not be
- shared out. To make such queues invisible, the
- <literal>browseable=no</literal> option can be turned on in the
- <filename>smb.conf</filename> file. Also, the <literal>load
- printers</literal> option must be set to no to allow individual
- printer definitions.</para>
-
- <note>
- <para>In general, the only print queues that should be visible
- through Samba are the "raw" print queues that are set up by the
- administrator to allow incoming preformatted print jobs.</para>
- </note>
-
- <para>Windows clients that print to Samba print queues on the UNIX
- system can view and cancel print jobs in the print queue. They
- cannot pause them, however, which is a difference between Novell and
- Windows NT Server print queues. They also cannot prioritize print
- jobs from the print queue window, although the administrator can
- reprioritize print jobs that are in the queue from a command shell
- on the FreeBSD server.</para>
- </sect2>
-
- <sect2>
- <title>Printer entries in configuration files</title>
-
- <para>Following are listings of sample
- <filename>/etc/printcap</filename> file, and
- <filename>smb.conf</filename> files used on the system to provide
- print services. An explanation of the interaction of these files
- follows.</para>
-
- <example>
- <title><filename>/etc/printcap</filename></title>
-
- <programlisting>#
-#
-# The printer in lpt0 is a Postscript printer. The nec-crlf entry
-# is for testing the printer when it is switched into HP LaserJet III
-# mode.
-#
-
-lp|local line printer:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:\
- :lf=/var/log/lpd-errs:sh:mx#0:
-
-#
-
-nec-crlf|NEC Silentwriter 95 in ASCII mode with Unix text filter:\
- :lp=/dev/lpt0:sd=/usr/lpdspool/nec-crlf:\
- :lf=/var/log/lpd-errs:sh:mx#0:\
- :if=/usr/local/libexec/crlfilter:tr=\f:
-
-#
-
-nec-raw|NEC Silentwriter 95 used for PostScript passthrough printing:\
- :lp=/dev/lpt0:sd=/usr/lpdspool/nec-raw:\
- :lf=/var/log/lpd-errs:sh:mx#0:
-
-#
-
-nec-ps-banner|NEC Silentwriter 95 with Postscript banner page created:\
- :lp=/dev/lpt0:sd=/usr/lpdspool/nec-ps-banner:\
- :lf=/var/log/lpd-errs:sh:mx#0:if=/usr/local/libexec/psbanner:
-
-#
-#</programlisting>
- </example>
-
- <example>
- <title><filename>/usr/local/etc/smb.conf</filename></title>
-
- <programlisting>[global]
-comment = FreeBSD - Samba %v
-log file = /var/log/samba.log
-dont descend = /dev,/proc,/root,/stand
-print command = lpr -s -P %p %s; rm %s
-interfaces = <replaceable>X.X.X.X</replaceable> (the system IP number goes here)
-printing = bsd
-map archive = no
-status = yes
-public = yes
-read only = no
-preserve case = yes
-strip dot = yes
-security = share
-guest ok = no
-password level = 1
-dead time = 15
-domain master = yes
-workgroup = WORKGROUP
-
-[homes]
-browseable = no
-comment = User Home Directory
-create mode = 0775
-public = no
-
-[printers]
-path = /var/spool
-comment = Printers
-create mode = 0700
-browseable = no
-read only = yes
-public = no
-
-[lp]
-printable = yes
-browseable = no
-
-[nec-raw]
-comment = Main Postscript printer driver for Windows clients
-printer driver = NEC SilentWriter 95
-printable = yes
-browseable = yes
-
-[wwwroot]
-path = /usr/local/www
-read only = no
-create mode = 0775
-comment = Internal Web Server</programlisting>
- </example>
- </sect2>
-
- <sect2>
- <title>Browsing output</title>
-
- <para>Following is the output of a <userinput>net view</userinput>
- command executed at a DOS prompt under Windows 95:</para>
-
- <screen>Shared resources at \\SERVER
-
-Sharename Type Comment
---------------------------------------------------------------------
-nec-crlf Print NEC Silentwriter 95 in ASCII mode
-nec-raw Print Main Postscript printer driver
-tedm Disk User Home Directory
-wwwroot Disk Internal Web Server
-
-The command was completed successfully.</screen>
-
- <para>In the <filename>/etc/printcap</filename> file four print queues
- are defined, all tied to the printer plugged into the parallel port
- on the FreeBSD server. The first is <literal>lp</literal>, the
- generic local line printer. Since this print queue generally has a
- filter placed on it to format jobs from the UNIX print queue
- properly, it should not be visible on the SMB network. (ie: visible
- in Network Neighborhood) The second queue,
- <literal>nec-crlf</literal>, has a filter that converts UNIX text to
- text that prints without stairstepping, so it also should be hidden
- from the SMB network. The third, <literal>nec-raw</literal>, should
- be visible on the network because this is the spool that the Windows
- clients use. The last queue, <literal>nec-ps-banner</literal>, is
- another specialty queue for UNIX local printing and thus should not
- be visible.</para>
-
- <para>When the <filename>smb.conf</filename> file is parsed, the
- default entry <literal>[printers]</literal> is first read and used
- as a set of defaults for printers that are going to be shared out.
- Next, the <filename>/etc/printcap</filename> file is read to get a
- list of all printers on the server. Last, each printer is checked
- for a service name in the <filename>smb.conf</filename>file that
- contains settings that override the set of defaults.</para>
-
- <para>In the listing of what resources are visible on the network,
- both <literal>nec-crlf</literal> and <literal>nec-raw</literal>
- print queues are visible, and <literal>lp</literal>and
- <literal>nec-ps-banner</literal> is not. <literal>lp</literal> is
- not visible because there is a specific entry,
- <literal>[lp]</literal> in the <filename>smb.conf</filename> file
- that blocks it. <literal>nec-ps-banner</literal> doesen't have such
- an entry, but because the print queue name is not a legal length for
- a SMB name, it isn't shared out either.</para>
-
- <para>The <literal>nec-crlf</literal> printer is visible so as to
- illustrate another point - comments. If a print queue has no entry
- in the <filename>smb.conf</filename> file and is built by scanning
- the <filename>/etc/printcap</filename> file and using the
- <literal>[printers]</literal> defaults, the comment is taken from
- the <filename>/etc/printcap</filename> file next to the queue
- definition name. Otherwise, if an entry is made for the printer in
- the <filename>smb.conf</filename> file the comment is taken from the
- entry in <filename>smb.conf</filename>.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Printing between NT Server/NetWare and FreeBSD.</title>
-
- <para>Up to this point in the chapter, our main concern has been FreeBSD
- and Windows NT printing interoperability with NT as a print client
- passing jobs to the FreeBSD system. What happens if the situation is
- reversed and the FreeBSD system is itself a printing client of another
- LPD server? This situation can arise in a mixed UNIX/Netware or
- UNIX/NT environment. The administrator may elect to forgo the use of
- Samba, and use an NT server to provide print services. Alternatively,
- the administrator may have existing DOS Novell IPX clients that they
- don't want to change, printing to an existing IPX Novell NetWare
- server. Many of the earlier hardware print servers, such as the Intel
- NetPort 1 and NetPort 2 were IPX only. A site with a large number of
- these hardware servers may wish to move the clients to TCP/IP, but
- leave the existing IPX-based printing network intact.</para>
-
- <para>With NetWare it is possible to load an LPD NetWare loadable module
- (NLM) on the NetWare server that takes incoming LPR print jobs and
- prints them on IPX print queues. Later versions of NetWare may
- include this NLM, it was an extra cost add-on with NetWare 3.X</para>
-
- <para>With Windows NT Server, loading the TCP/IP LPR printing support
- also loads the LPD print server on NT. By using LPR client programs
- on UNIX, it is possible to submit, view status, and remove jobs
- remotely from an NT server that has LPR installed as a port for it's
- printers.</para>
-
- <para>Following is a sample <filename>/etc/printcap</filename>file entry
- that defines a print queue named <literal>tank</literal>on the FreeBSD
- system pointed to an NT LPD server queue named
- <literal>sherman</literal> on a NT Server named
- <hostid role="fqdn">big.army.mil</hostid> in the DNS. This uses the
- <literal>rm</literal> printcap capability. Unlike the earlier
- examples, the output print jobs are sent out not by the PC parallel
- port but over the network to the NT server.</para>
-
- <programlisting>#
-tank|sample remote printer:\
- :rm=big.army.mil:rp=sherman:sd=/var/spool/output/lphost:\
- :lf=/var/log/lpd-errs:
-#</programlisting>
-
- <note>
- <para>When using an NT server as an LPD server it may be necessary to
- make the NT registry changes mentioned under Windows NT Registry
- Changes, earlier in the chapter.</para>
- </note>
- </sect1>
-
- <sect1>
- <title>Printing from Unix</title>
-
- <para>Two commands used at the FreeBSD command prompt are intended as
- general-purpose print commands: <command>lp</command> and
- <command>lpr.</command>.</para>
-
- <sect2>
- <title><command>lp</command></title>
-
- <para>The <command>lp</command> command is simply a front end command
- that calls the <command>lpr</command> command with appropriate
- options. It's main use is to allow the running of precompiled
- binary programs and scripts that assume that the
- <command>lp</command> command is the <emphasis>official</emphasis>
- printing command.</para>
- </sect2>
-
- <sect2>
- <title><command>lpr</command></title>
-
- <para>The <command>lpr</command> command is the main command that is
- used to print files from the command prompts under the FreeBSD
- operating system. It is frequently spawned off as a child program,
- or used in pipes. For example, when the Netscape web browser's
- Print button is clicked, Netscape may create the PostScript output,
- but the output goes through the <command>lpr</command>
- command.</para>
-
- <para>The <command>lpr</command> command, like many UNIX command-line
- printing programs, assumes that the default print queue name is
- <literal>lp</literal>. When the FreeBSD machine is set up, the
- administrator usually sets the <literal>lp</literal> queue to print
- through a filter that allows raw UNIX text sent to it to print
- properly. For example, if an HP LaserJet printer that doesn't have
- Postscript is connected to the server, the
- <literal>lp</literal>queue specifies in the
- <filename>/etc/printcap</filename> file the CRLF filter listed
- earlier. On the other hand, if an Apple Laserwriter that doesn't
- support ASCII is connected to the server, the
- <literal>a2ps</literal>filter would be specified in the
- <filename>/etc/printcap</filename> for the <literal>lp</literal>
- queue.</para>
-
- <para>When printing raw text files usually the <option>-p</option>
- option is specified to <command>lpr</command>. When printing
- preformatted files, such as PostScript files, the
- <option>-P</option> option is used, which selects whatever queue is
- used to handle these job types.</para>
- </sect2>
-
- <sect2>
- <title>Managing the Unix Print Queue</title>
-
- <para>Once the print jobs coming in from clients are received on the
- FreeBSD system and placed in the print spool, they are metered out
- at a slower rate to the various printers. If traffic activity is
- light, and few print jobs get sent through, the administrator can
- probably ignore the print queue as long as it continues to work.
- However, a busy network printer running at an optimal rate of speed
- usually has a backlog of unprinted jobs in the queue waiting for
- print time. To keep all users happy and to provide for the
- occasional rush print job, the Unix LPD/LPR printing system has
- several administration commands which are described here.</para>
-
- <sect3>
- <title>Viewing the queue</title>
-
- <para>On busy printers, and to troubleshoot stopped printers, users
- sometimes need to view the print jobs in the queue. Administrators
- also need to view the queue to see what jobs may need to be
- expedited. This can be done from the workstation that remotely
- submitted the job if the LPR client has the ability to do this.
- The Windows 3.1 LPR client discussed earlier has this capability.
- Unfortunately, many LPR clients don't, which means that the
- administrator must Telnet into the UNIX machine that the print
- queues are on and view them there.</para>
-
- <para>The UNIX shell command used to view the queue is the
- <command>lpq</command> command It is frequently run as
- <userinput>lpq -a</userinput> which shows jobs in all queues. The
- following is a sample output of the command:</para>
-
- <screen>&prompt.root; <userinput>lpq -a</userinput>
-nec-raw:
-Rank Owner Job Files Total Size
-1st tedm 19 C:/WLPRSPL/SPOOL/~LP00018.TMP 105221 bytes
-2nd tedm 20 C:/WLPRSPL/SPOOL/~LP00019.TMP 13488 bytes
-3rd root 3 hosts 1220 bytes
-4th tedm 1 Printer Test Page 765 bytes
-5th tedm 2 Microsoft Word - CHAPTE10.DOC 15411 bytes</screen>
-
- <para>The first two jobs and the last two jobs came from remote
- clients, the third came from the command prompt.</para>
- </sect3>
-
- <sect3>
- <title>Removing print jobs</title>
-
- <para>Deleting unwanted print jobs that haven't yet printed from the
- queue can be done by the remote workstations that submitted the
- job if their LPR implementations have the necessary commands. The
- Windows 3.1 LPR client I detailed earlier this capability. Many
- LPR clients don't, however, which means that the administrator
- must Telnet into the UNIX machine that the print queues are on and
- delete the jobs there.</para>
-
- <para>The administrator can delete any print jobs from any queues by
- running the <command>lprm</command> command followed by the
- specified print queue and the job number. Below is a sample
- output of the command:</para>
-
- <screen>&prompt.root; <userinput>lprm -P nec-raw 19</userinput>
-dfA019tedmitte dequeued
-cfA019dostest dequeued
-&prompt.root; <userinput>lprm -P nec-raw 3</userinput>
-dfA003toybox.placo.com dequeued
-cfA003toybox.placo.com dequeued</screen>
-
- <para>The <command>lprm</command> command is also used under UNIX to
- delete remote print jobs.</para>
- </sect3>
-
- <sect3>
- <title>Advanced management</title>
-
- <para>The administrator logged into the FreeBSD system as the root
- user can also perform several other operations that ordinary users
- cannot. These include turning the queues on and off, and moving
- print jobs within the print queues. The command used to do this
- is the <command>lpc</command> command.</para>
-
- <para><command>lpc</command> has two modes of operation. In the
- first mode, the command is run by itself, which puts the
- administrator into an <prompt>lpc</prompt> prompt. Some general
- help is available for the commands, such as the following sample
- output:</para>
-
- <screen>&prompt.root; <userinput>lpc</userinput>
-<prompt>lpc&gt;</prompt> <userinput>help</userinput>
-Commands may be abbreviated.
-Commands are:
-abort enable disable help restart status topq ?
-clean exit down quit start stop up
-<prompt>lpc&gt;</prompt> <userinput>help disable</userinput>
-disable turn a spooling queue off
-<prompt>lpc&gt;</prompt> <userinput>help status</userinput>
-status show status of daemon and queue
-<prompt>lpc&gt;</prompt> <userinput>exit</userinput></screen>
-
- <para>In the second mode of operation the <command>lpc</command>
- command is just run by itself, followed by the command and the
- print queue name. Following is a sample output:</para>
-
- <screen>&prompt.root; <userinput>lpc disable lp</userinput>
-lp:
-queuing disabled</screen>
-
- <para>Under FreeBSD, there is no command that specifically allows
- the administrator to move jobs from one queue to another. This
- can be done, however, by changing into the raw queue directory
- then rerunning the <command>lpr</command> command. Following is a
- sample run showing three print jobs moved from a dysfunctional
- queue to a good one:</para>
-
- <screen>&prompt.root; <userinput>lpq -a</userinput>
-lp:
-Warning: lp is down: printing disabled
-printing disabled
-Rank Owner Job Files Total Size
-1st root 51 hosts 1220 bytes
-2nd root 52 services 60767 bytes
-3rd root 53 printcap 2383 bytes
-&prompt.root; <userinput>cd /var/spool/output/lpd</userinput>
-&prompt.root; <userinput>ls</userinput>
-.seq cfA053toybox.placo.com dfA053toybox.placo.com
-cfA051toybox.placo.com dfA051toybox.placo.com lock
-cfA052toybox.placo.com dfA052toybox.placo.com status
-&prompt.root; <userinput>lpr -P nec-raw dfA051toybox.placo.com</userinput>
-&prompt.root; <userinput>lpr -P nec-raw dfA052toybox.placo.com</userinput>
-&prompt.root; <userinput>lpr -P nec-raw dfA053toybox.placo.com</userinput>
-&prompt.root; <userinput>lprm -P lp -</userinput>
-&prompt.root; <userinput>lpq -a</userinput>
-nec-raw:
-Warning: nec-raw is down: printing disabled
-Warning: no daemon present
-Rank Owner Job Files Total Size
-1st root 5 dfA051toybox.placo.com 1220 bytes
-2nd root 6 dfA052toybox.placo.com 60767 bytes
-3rd root 7 dfA053toybox.placo.com 2383 bytes</screen>
-
- <note>
- <para>Moving jobs from queue to queue is feasible only when all
- printers are similar, as when all printers support
- PostScript.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Remote Management</title>
-
- <para>Just as the root user can manipulate remotely submitted jobs
- in the print queue, print jobs can be remotely managed by regular
- users with the LPR clients that created them. Unfortunately, some
- LPR clients, such as Win95, don't have enough programming to be
- able to do this. Others, like the Win31 client, can manipulate
- the print jobs remotely.</para>
-
- <para>FreeBSD offers some level of protection against inadvertent
- deletion of print jobs from remote hosts by restricting
- manipulation of a job to the same host that originated it. Even
- if the owner of the job matches a local user account on the
- server, for an ordinary user to delete remotely submitted print
- jobs, the request still must come from the remote host.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Advanced Printing Topics</title>
-
- <para>The FreeBSD UNIX LPR/LPD printing system is very flexible, and,
- with the addition of filters, can be adapted to very unusual printing
- environments. To enhance this flexibility, several useful printing
- utilities are supplied on the FreeBSD CDROM which the administrator
- might wish to install.</para>
-
- <sect2>
- <title>Ghostscript</title>
-
- <para>The Ghostscript program, invoked as
- <filename>/usr/local/bin/gs</filename>, is one of the most useful
- printing utilities that have been developed for the free software
- community. Ghostscript reads incoming PostScript data, (or Adobe
- PDF files) interprets it, and outputs it as a raster image. This
- can be displayed on screen, for example, with the GhostView program
- under the X Window system, or printed on most graphics printers,
- such as Epson dot-matrix, HP DeskJet, or HP LaserJet. In effect, it
- is a way of adding PostScript printing capability to a printer that
- doesn't have PostScript firmware code. Ghostscript has been ported
- to numerous operating systems including Windows.</para>
-
- <para>The Ghostscript home page is located at
- <ulink url="http://www.cs.wisc.edu/~ghost/">http://www.cs.wisc.edu/~ghost/</ulink>
- and contains the most current version of the program. A prebuilt
- FreeBSD binary of Ghostscript located in the Packages section of the
- FreeBSD CDROM. This can be installed on the FreeBSD system by
- selecting the package from the prepackaged software list that is
- accessed through the <command>/stand/sysinstall</command>
- installation program. Many packaged programs on the CD depend on
- GhostScript, and so it may already be installed.</para>
-
- <para>Installation of the packaged version of GhostScript is
- recommended in the FreeBSD ports Section because it has been tested
- with the other packages that require it. The package creates a
- directory containing some documentation files in
- <filename>/usr/local/share/ghostscript/X.XX/doc</filename>.
- Unfortunately, because of the packaging process on the FreeBSD CDROM
- not all the useful installation files are copied into this location.
- So, if the package was version 5.03 (for example) the administrator
- will also want to get the file
- <ulink url="ftp://ftp.cs.wisc.edu/ghost/aladdin/gs502/ghostscript-5.02.tar.gz">ftp://ftp.cs.wisc.edu/ghost/aladdin/gs503/ghostscript-5.03.tar.gz</ulink>,
- and unzip and untar it into a temporary directory.</para>
-
- <para>Extracting the archive file creates a directory structure under
- the <filename>gs5.03</filename> subdirectory. To install
- ghostscript in the <filename>/etc/printcap</filename> file, read the
- <filename>gs5.03/devs.mak</filename> file to determine which printer
- driver definition works with your printer and then use the following
- instructions:</para>
-
- <procedure>
- <step>
- <para>Change to the root user with su.</para>
- </step>
-
- <step>
- <para>In the <filename>gs5.03</filename>directory, copy the
- <filename>lprsetup.sh</filename>,
- <filename>unix-lpr.txt</filename>, and
- <filename>unix-lpr.sh</filename> files to
- <filename>/usr/local/share/ghostscript/5.03</filename></para>
- </step>
-
- <step>
- <para>Change to the
- <filename>/usr/local/share/ghostscript/5.03</filename>
- directory. Edit <filename>lprsetup.sh</filename> with a text
- editor such as <command>vi</command>.</para>
- </step>
-
- <step>
- <para>Modify the <literal>DEVICES=</literal> entries
- to list your selected printer driver definitions per the
- instructions in <filename>unix-lpr.txt.</filename></para>
- </step>
-
- <step>
- <para>Modify the <literal>PRINTERDEV=</literal> to
- <literal>/dev/lpt0</literal>, and the <literal>GSDIR=</literal>
- to <literal>/usr/local/share/ghostscript</literal>, and the
- <literal>SPOOLDIR=</literal> to
- <literal>/var/spool/output</literal>. Save the file.</para>
- </step>
-
- <step>
- <para>Edit the <filename>unix-lpr.sh</filename> file and change
- the <literal>PSFILTERPATH=</literal> to
- <literal>/usr/local/share/ghostscript</literal>.</para>
- </step>
-
- <step>
- <para>If the printer that you defined in the
- <filename>lprsetup.sh</filename> file is a monochrome printer,
- remove the <literal>"-dBitsPerPixel=${bpp}"</literal>and
- <literal>"$colorspec"</literal> entries on the
- <literal>gs</literal> invocation line and save the file.
- Otherwise, if it is a color definition leave them in. For
- example, the following line is for a monochrome LaserJet:</para>
-
- <programlisting>") | gs -q -dNOPAUSE -sDEVICE=${device} \"</programlisting>
-
- <para>Don't remove anything else. Exit the editor, and save the
- <filename>unix-lpr.sh</filename> file.</para>
- </step>
-
- <step>
- <para>Copy the <filename>unix-lpr.sh</filename> file to the parent
- directory, <filename>/usr/local/share/ghostscript</filename> and
- set the execute bit on it.</para>
- </step>
-
- <step>
- <para>Set the execute bit on <filename>lprsetup.sh</filename> with
- chmod and run the file by typing
- <userinput>./lprsetup.sh</userinput></para>
- </step>
-
- <step>
- <para>Follow the instructions on creating the Spool directories.
- If you will be using accounting and a separate log file, run the
- <command>touch</command> command to create the empty files per
- directions in script output.</para>
- </step>
-
- <step>
- <para>The sample <command>/etc/printcap</command> is located in
- the current directory; the filename is
- <filename>printcap.insert</filename>. Use this as a template to
- modify the <filename>/etc/printcap</filename> file. A sample
- <filename>/etc/printcap</filename> file for a LaserJet 3 is
- below:</para>
-
- <programlisting>#
-#
-ljet3.raw|Raw output device ljet3 for Ghostscript:\
- :rm=big.army.mil:rp=sherman:sd=/var/spool/output/ljet3/raw:\
- :mx#0:sf:sh:rs:
-
-#
-
-ljet3|Ghostscript device ljet3 (output to ljet3.raw):\
- :lp=/dev/null:sd=/var/spool/output/ljet3:\
- :lf=/var/log/lpd-errs:mx#0:sf:sh:rs:\
- :if=/usr/local/share/ghostscript/filt/indirect/ljet3/gsif:\
- :af=/var/spool/output/ljet3/acct:
-
-#</programlisting>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>a2ps filter</title>
-
- <para>Another handy utility is the <command>a2ps</command>, short for
- ASCII-to-PostScript. This program takes an incoming ASCII
- datastream and converts it into PostScript. It can also print
- multiple pages on a single sheet of paper by shrinking them down. It
- is a useful tool for a printer that cannot interpret ASCII, such as
- a PostScript-only printer.</para>
-
- <para><command>A2ps</command> is not installed in the FreeBSD system
- by default; it is located in the ports section
- <filename>/usr/ports/print/a2ps43</filename>. A prepackaged binary
- can be installed with <command>/stand/sysinstall</command> but I
- have had problems with that port. It is best to install it by
- running <command>make</command> in the a2ps43 ports directory. A
- printcap entry and filter using this follow:</para>
-
- <example>
- <title><filename>/etc/printcap</filename></title>
-
- <programlisting>#
-lp|local line printer with output dumped through a2ps for raw listings:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:sh:mx#0:\
- :if=/usr/local/libexec/ascii2postscript:
-#</programlisting>
- </example>
-
- <example>
- <title><filename>/usr/local/libexec/ascii2postscript</filename></title>
-
- <programlisting>#!/bin/sh
-#
-# Simple filter that converts ASCII to Postscript for basic stuff like
-# directory listings.
-#
-
-/usr/local/bin/a2ps &amp;&amp; exit 0
-
-exit 2</programlisting>
- </example>
-
- <para>Read the system manual page for <command>a2ps</command> to see
- the options available with this program, and remember to set the
- filter script <filename>ascii2postscript</filename>
- all-executable.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Miscellaneous</title>
-
- <para>The large number of other printing utilities cannot be covered
- here. Some add features such as automatic job type sensing, others
- handle bidirectional communication between the server and the printer.
- There are also a few other experimental LPR printing replacement
- systems. Commands such as ghostscript and <command>a2ps</command> can
- also be used in pipes that create pretty output on an ordinary impact
- printer.</para>
-
- <para>One last hint - the system manual pages can be printed with the
- <option>-t</option> option which turns their ordinary ASCII output to
- beautifully formatted PostScript. Try the command <command>man -t
- man</command> and send the output through GhostScript or a
- PostScript printer for easier to read manual pages.</para>
- </sect1>
- </chapter>
-</book>
diff --git a/en_US.ISO8859-1/books/corp-net-guide/freebsd.dsl b/en_US.ISO8859-1/books/corp-net-guide/freebsd.dsl
deleted file mode 100644
index ba9b0d542f..0000000000
--- a/en_US.ISO8859-1/books/corp-net-guide/freebsd.dsl
+++ /dev/null
@@ -1,18 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/books/design-44bsd/freebsd.dsl,v 1.1 2001/03/09 18:05:31 nik Exp $ -->
-
-<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
-<!ENTITY freebsd.dsl SYSTEM "../../share/sgml/freebsd.dsl" CDATA DSSSL>
-]>
-
-<style-sheet>
- <style-specification use="docbook">
- <style-specification-body>
-
- ;; Keep the legalnotice together with the rest of the text
- (define %generate-legalnotice-link%
- #f)
- </style-specification-body>
- </style-specification>
-
- <external-specification id="docbook" document="freebsd.dsl">
-</style-sheet>
diff --git a/en_US.ISO8859-1/books/design-44bsd/Makefile b/en_US.ISO8859-1/books/design-44bsd/Makefile
deleted file mode 100644
index 14af09bcd2..0000000000
--- a/en_US.ISO8859-1/books/design-44bsd/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# $FreeBSD: doc/en_US.ISO_8859-1/books/design-44bsd/Makefile,v 1.1 2001/02/20 20:01:32 nik Exp $
-
-DOC?= book
-
-FORMATS?= html
-
-IMAGES= fig1.eps fig2.eps
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= book.sgml
-
-# Use the local DSSSL file
-DSLHTML?= ${.CURDIR}/freebsd.dsl
-DSLPRINT?= ${.CURDIR}/freebsd.dsl
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/design-44bsd/book.sgml b/en_US.ISO8859-1/books/design-44bsd/book.sgml
deleted file mode 100644
index 6c44b5a92a..0000000000
--- a/en_US.ISO8859-1/books/design-44bsd/book.sgml
+++ /dev/null
@@ -1,2858 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/books/design-44bsd/book.sgml,v 1.2 2001/03/07 07:21:23 sheldonh Exp $ -->
-<!-- FreeBSD Documentation Project -->
-
-<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<book>
- <bookinfo>
- <title>The Design and Implementation of the 4.4BSD Operating System</title>
-
- <authorgroup>
- <author>
- <firstname>Marshall</firstname>
- <othername>Kirk</othername>
- <surname>McKusick</surname>
- </author>
-
- <author>
- <firstname>Keith</firstname>
- <surname>Bostic</surname>
- </author>
-
- <author>
- <firstname>Michael</firstname>
- <othername>J.</othername>
- <surname>Karels</surname>
- </author>
-
- <author>
- <firstname>John</firstname>
- <othername>S.</othername>
- <surname>Quarterman</surname>
- </author>
- </authorgroup>
-
- <copyright>
- <year>1996</year>
- <holder>Addison-Wesley Longman, Inc</holder>
- </copyright>
-
-<!-- I seem to recall the editor wanting this notice to be bold. In html, I'd
- use the _strong_ tag. What should I use instead? -->
-
- <legalnotice>
- <para>The second chapter of the book, <citetitle>The Design and
- Implementation of the 4.4BSD Operating System</citetitle> is
- excerpted here with the permission of the publisher. No part of it
- may be further reproduced or distributed without the publisher's
- express written
- <ulink url="mailto:peter.gordon@awl.com">permission</ulink>. The
- rest of
- <ulink url="http://cseng.aw.com/book/0,3828,0201549794,00.html">the
- book</ulink> explores the concepts introduced in this chapter in
- incredible detail and is an excellent reference for anyone with an
- interest in BSD UNIX. More information about this book is available
- from the publisher, with whom you can also sign up to receive news
- of <ulink url="mailto:curt.johnson@awl.com">related titles</ulink>.
- Information about <ulink url="http://www.mckusick.com/courses/">BSD
- courses</ulink> is available from Kirk McKusick.</para>
- </legalnotice>
- </bookinfo>
-
- <chapter label="2">
- <title>Design Overview of 4.4BSD</title>
-
- <sect1>
- <title>4.4BSD Facilities and the Kernel</title>
-
- <para>The 4.4BSD kernel provides four basic facilities:
- processes,
- a filesystem,
- communications, and
- system startup.
- This section outlines where each of these four basic services
- is described in this book.</para>
-
- <orderedlist>
- <listitem>
- <para>Processes constitute a thread of control in an address space.
- Mechanisms for creating, terminating, and otherwise
- controlling processes are described in
- Chapter 4.
- The system multiplexes separate virtual-address spaces
- for each process;
- this memory management is discussed in
- Chapter 5.</para>
- </listitem>
-
- <listitem>
- <para>The user interface to the filesystem and devices is similar;
- common aspects are discussed in
- Chapter 6.
- The filesystem is a set of named files, organized in a tree-structured
- hierarchy of directories, and of operations to manipulate them,
- as presented in
- Chapter 7.
- Files reside on physical media such as disks.
- 4.4BSD supports several organizations of data on the disk,
- as set forth in
- Chapter 8.
- Access to files on remote machines is the subject of
- Chapter 9.
- Terminals are used to access the system; their operation is
- the subject of
- Chapter 10.</para>
- </listitem>
-
- <listitem>
- <para>Communication mechanisms provided by traditional UNIX systems include
- simplex reliable byte streams between related processes (see pipes,
- Section 11.1),
- and notification of exceptional events (see signals,
- Section 4.7).
- 4.4BSD also has a general interprocess-communication facility.
- This facility, described in
- Chapter 11,
- uses access mechanisms distinct from those of the filesystem,
- but, once a connection is set up, a process can access it
- as though it were a pipe.
- There is a general networking framework,
- discussed in
- Chapter 12,
- that is normally used as a layer underlying the
- IPC
- facility.
- Chapter 13
- describes a particular networking implementation in detail.</para>
- </listitem>
-
- <listitem>
- <para>Any real operating system has operational issues, such as how to
- start it running.
- Startup and operational issues are described in
- Chapter 14.</para>
- </listitem>
- </orderedlist>
-
- <para>Sections 2.3 through 2.14 present introductory
- material related to Chapters 3 through 14.
- We shall define terms, mention basic system calls,
- and explore historical developments.
- Finally, we shall give the reasons for many major design decisions.</para>
-
- <sect2>
- <title>The Kernel</title>
-
- <para>The
- <emphasis>kernel</emphasis>
- is the part of the system that runs in protected mode and mediates
- access by all user programs to the underlying hardware (e.g.,
- CPU,
- disks, terminals, network links)
- and software constructs
- (e.g., filesystem, network protocols).
- The kernel provides the basic system facilities;
- it creates and manages processes,
- and provides functions to access the filesystem
- and communication facilities.
- These functions, called
- <emphasis>system calls</emphasis>
- appear to user processes as library subroutines.
- These system calls are the only interface
- that processes have to these facilities.
- Details of the system-call mechanism are given in
- Chapter 3,
- as are descriptions of several kernel mechanisms that do not execute
- as the direct result of a process doing a system call.</para>
-
- <para>A
- <emphasis>kernel</emphasis>
- in traditional operating-system terminology,
- is a small nucleus of software that
- provides only the minimal facilities necessary for implementing
- additional operating-system services.
- In contemporary research operating systems -- such as
- Chorus
- <xref linkend="biblio-rozier">,
- Mach
- <xref linkend="biblio-accetta">,
- Tunis
- <xref linkend="biblio-ewens">,
- and the
- V Kernel
- <xref linkend="biblio-cheriton"> --
- this division of functionality is more than just a logical one.
- Services such as filesystems and networking protocols are
- implemented as client application processes of the nucleus or kernel.</para>
-
- <para>The
- 4.4BSD kernel is not partitioned into multiple processes.
- This basic design decision was made in the earliest versions of UNIX.
- The first two implementations by
- Ken Thompson had no memory mapping,
- and thus made no hardware-enforced distinction
- between user and kernel space
- <xref linkend="biblio-ritchie">.
- A message-passing system could have been implemented as readily
- as the actually implemented model of kernel and user processes.
- The monolithic kernel was chosen for simplicity and performance.
- And the early kernels were small;
- the inclusion of facilities such as networking
- into the kernel has increased its size.
- The current trend in operating-systems research
- is to reduce the kernel size by placing
- such services in user space.</para>
-
- <para>Users ordinarily interact with the system through a command-language
- interpreter, called a
- <emphasis>shell</emphasis>,
- and perhaps through additional user application programs.
- Such programs and the shell are implemented with processes.
- Details of such programs are beyond the scope of this book,
- which instead concentrates almost exclusively on the kernel.</para>
-
- <para>Sections 2.3 and 2.4
- describe the services provided by the 4.4BSD kernel,
- and give an overview of the latter's design.
- Later chapters describe the detailed design and implementation of these
- services as they appear in 4.4BSD.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Kernel Organization</title>
-
- <para>In this section, we view the organization of the 4.4BSD
- kernel in two ways:</para>
-
- <orderedlist>
- <listitem>
- <para>As a static body of software,
- categorized by the functionality offered by the modules
- that make up the kernel</para>
- </listitem>
-
- <listitem>
- <para>By its dynamic operation,
- categorized according to the services provided to users</para>
- </listitem>
- </orderedlist>
-
- <para>The largest part of the kernel implements
- the system services that applications access through system calls.
- In 4.4BSD, this software has been organized according to the following:</para>
-
- <itemizedlist>
- <listitem>
- <para>Basic kernel facilities:
- timer and system-clock handling,
- descriptor management, and process management</para>
- </listitem>
-
- <listitem>
- <para>Memory-management support:
- paging and swapping</para>
- </listitem>
-
- <listitem>
- <para>Generic system interfaces:
- the I/O,
- control, and multiplexing operations performed on descriptors</para>
- </listitem>
-
- <listitem>
- <para>The filesystem:
- files, directories, pathname translation, file locking,
- and I/O buffer management</para>
- </listitem>
-
- <listitem>
- <para>Terminal-handling support:
- the terminal-interface driver and terminal
- line disciplines</para>
- </listitem>
-
- <listitem>
- <para>Interprocess-communication facilities:
- sockets</para>
- </listitem>
-
- <listitem>
- <para>Support for network communication:
- communication protocols and
- generic network facilities, such as routing</para>
- </listitem>
- </itemizedlist>
-
- <table frame="none" id="table-mach-indep">
- <title>Machine-independent software in the 4.4BSD kernel</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Category</entry>
- <entry>Lines of code</entry>
- <entry>Percentage of kernel</entry>
- </row>
- </thead>
-
- <tfoot>
- <row>
- <entry>total machine independent</entry>
- <entry>162,617</entry>
- <entry>80.4</entry>
- </row>
- </tfoot>
-
- <tbody>
- <row>
- <entry>headers</entry>
- <entry>9,393</entry>
- <entry>4.6</entry>
- </row>
-
- <row>
- <entry>initialization</entry>
- <entry>1,107</entry>
- <entry>0.6</entry>
- </row>
-
- <row>
- <entry>kernel facilities</entry>
- <entry>8,793</entry>
- <entry>4.4</entry>
- </row>
-
- <row>
- <entry>generic interfaces</entry>
- <entry>4,782</entry>
- <entry>2.4</entry>
- </row>
-
- <row>
- <entry>interprocess communication</entry>
- <entry>4,540</entry>
- <entry>2.2</entry>
- </row>
-
- <row>
- <entry>terminal handling</entry>
- <entry>3,911</entry>
- <entry>1.9</entry>
- </row>
-
- <row>
- <entry>virtual memory</entry>
- <entry>11,813</entry>
- <entry>5.8</entry>
- </row>
-
- <row>
- <entry>vnode management</entry>
- <entry>7,954</entry>
- <entry>3.9</entry>
- </row>
-
- <row>
- <entry>filesystem naming</entry>
- <entry>6,550</entry>
- <entry>3.2</entry>
- </row>
-
- <row>
- <entry>fast filestore</entry>
- <entry>4,365</entry>
- <entry>2.2</entry>
- </row>
-
- <row>
- <entry>log-structure filestore</entry>
- <entry>4,337</entry>
- <entry>2.1</entry>
- </row>
-
- <row>
- <entry>memory-based filestore</entry>
- <entry>645</entry>
- <entry>0.3</entry>
- </row>
-
- <row>
- <entry>cd9660 filesystem</entry>
- <entry>4,177</entry>
- <entry>2.1</entry>
- </row>
-
- <row>
- <entry>miscellaneous filesystems (10)</entry>
- <entry>12,695</entry>
- <entry>6.3</entry>
- </row>
-
- <row>
- <entry>network filesystem</entry>
- <entry>17,199</entry>
- <entry>8.5</entry>
- </row>
-
- <row>
- <entry>network communication</entry>
- <entry>8,630</entry>
- <entry>4.3</entry>
- </row>
-
- <row>
- <entry>internet protocols</entry>
- <entry>11,984</entry>
- <entry>5.9</entry>
- </row>
-
- <row>
- <entry>ISO protocols</entry>
- <entry>23,924</entry>
- <entry>11.8</entry>
- </row>
-
- <row>
- <entry>X.25 protocols</entry>
- <entry>10,626</entry>
- <entry>5.3</entry>
- </row>
-
- <row>
- <entry>XNS protocols</entry>
- <entry>5,192</entry>
- <entry>2.6</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Most of the software in these categories is machine independent
- and is portable across different hardware architectures.</para>
-
- <para>The machine-dependent aspects of the kernel
- are isolated from the mainstream code.
- In particular, none of the machine-independent code contains
- conditional code for specific architecture.
- When an architecture-dependent action is needed,
- the machine-independent code calls an architecture-dependent
- function that is located in the machine-dependent code.
- The software that is machine dependent includes</para>
-
- <itemizedlist>
- <listitem>
- <para>Low-level system-startup actions</para>
- </listitem>
-
- <listitem>
- <para>Trap and fault handling</para>
- </listitem>
-
- <listitem>
- <para>Low-level manipulation of the run-time context of a
- process</para>
- </listitem>
-
- <listitem>
- <para>Configuration and initialization of hardware devices</para>
- </listitem>
-
- <listitem>
- <para>Run-time support for I/O devices</para>
- </listitem>
- </itemizedlist>
-
- <table frame="none" id="table-mach-dep">
- <title>Machine-dependent software for the HP300 in the 4.4BSD
- kernel</title>
-
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Category</entry>
- <entry>Lines of code</entry>
- <entry>Percentage of kernel</entry>
- </row>
- </thead>
-
- <tfoot>
- <row>
- <entry>total machine dependent</entry>
- <entry>39,634</entry>
- <entry>19.6</entry>
- </row>
- </tfoot>
-
- <tbody>
- <row>
- <entry>machine dependent headers</entry>
- <entry>1,562</entry>
- <entry>0.8</entry>
- </row>
-
- <row>
- <entry>device driver headers</entry>
- <entry>3,495</entry>
- <entry>1.7</entry>
- </row>
-
- <row>
- <entry>device driver source</entry>
- <entry>17,506</entry>
- <entry>8.7</entry>
- </row>
-
- <row>
- <entry>virtual memory</entry>
- <entry>3,087</entry>
- <entry>1.5</entry>
- </row>
-
- <row>
- <entry>other machine dependent</entry>
- <entry>6,287</entry>
- <entry>3.1</entry>
- </row>
-
- <row>
- <entry>routines in assembly language</entry>
- <entry>3,014</entry>
- <entry>1.5</entry>
- </row>
-
- <row>
- <entry>HP/UX compatibility</entry>
- <entry>4,683</entry>
- <entry>2.3</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para><xref linkend="table-mach-indep"> summarizes the machine-independent software that constitutes the
- 4.4BSD kernel for the HP300.
- The numbers in column 2 are for lines of C source code,
- header files, and assembly language.
- Virtually all the software in the kernel is written in the C
- programming language;
- less than 2 percent is written in
- assembly language.
- As the statistics in <xref linkend="table-mach-dep"> show,
- the machine-dependent software, excluding
- HP/UX
- and device support,
- accounts for a minuscule 6.9 percent of the kernel.</para>
-
- <para>Only a small part of the kernel is devoted to
- initializing the system.
- This code is used when the system is
- <emphasis>bootstrapped</emphasis>
- into operation and is responsible for setting up the kernel hardware
- and software environment
- (see
- Chapter 14).
- Some operating systems (especially those with limited physical memory)
- discard or
- <emphasis>overlay</emphasis>
- the software that performs these functions after that software has
- been executed.
- The 4.4BSD kernel does not reclaim the memory used by the
- startup code because that memory space is barely 0.5 percent
- of the kernel resources used on a typical machine.
- Also, the startup code does not appear in one place in the kernel -- it is
- scattered throughout, and it usually appears
- in places logically associated with what is being initialized.</para>
- </sect1>
-
- <sect1>
- <title>Kernel Services</title>
-
- <para>The boundary between the kernel- and user-level code is enforced by
- hardware-protection facilities provided by the underlying hardware.
- The kernel operates in a separate address space that is inaccessible to
- user processes.
- Privileged operations -- such as starting I/O
- and halting the central processing unit
- (CPU) --
- are available to only the kernel.
- Applications request services from the kernel with
- <emphasis>system calls</emphasis>
- System calls are used to cause the kernel to execute complicated
- operations, such as writing data to secondary storage,
- and simple operations, such as returning the current time of day.
- All system calls appear
- <emphasis>synchronous</emphasis>
- to applications:
- The application does not run while the kernel does the actions associated
- with a system call.
- The kernel may finish some operations associated with a system call
- after it has returned.
- For example, a
- <emphasis>write</emphasis>
- system call will copy the data to be written
- from the user process to a kernel buffer while the process waits,
- but will usually return from the system call
- before the kernel buffer is written to the disk.</para>
-
- <para>A system call usually is implemented as a hardware trap that changes the
- CPU's
- execution mode and the current address-space mapping.
- Parameters supplied by users in system calls are validated by the kernel
- before being used.
- Such checking ensures the integrity of the system.
- All parameters passed into the kernel are copied into the
- kernel's address space,
- to ensure that validated parameters are not changed
- as a side effect of the system call.
- System-call results are returned by the kernel,
- either in hardware registers or by their values
- being copied to user-specified memory addresses.
- Like parameters passed into the kernel,
- addresses used for
- the return of results must be validated to ensure that they are
- part of an application's address space.
- If the kernel encounters an error while processing a system call,
- it returns an error code to the user.
- For the
- C programming language, this error code
- is stored in the global variable
- <emphasis>errno</emphasis>,
- and the function that executed the system call returns the value -1.</para>
-
- <para>User applications and the kernel operate
- independently of each other.
- 4.4BSD does not store I/O control blocks or other
- operating-system-related
- data structures in the application's address space.
- Each user-level application is provided an independent address space in
- which it executes.
- The kernel makes most state changes,
- such as suspending a process while another is running,
- invisible to the processes involved.</para>
- </sect1>
-
- <sect1>
- <title>Process Management</title>
-
- <para>4.4BSD supports a multitasking environment.
- Each task or thread of execution is termed a
- <emphasis>process</emphasis>.
- The
- <emphasis>context</emphasis>
- of a 4.4BSD process consists of user-level state,
- including the contents of its address space
- and the run-time environment, and kernel-level state,
- which includes
- scheduling parameters,
- resource controls,
- and identification information.
- The context includes everything
- used by the kernel in providing services for the process.
- Users can create processes, control the processes' execution,
- and receive notification when the processes' execution status changes.
- Every process is assigned a unique value, termed a
- <emphasis>process identifier</emphasis>
- (PID).
- This value is used by the kernel to identify a process when reporting
- status changes to a user, and by a user when referencing a process
- in a system call.</para>
-
- <para>The kernel creates a process by duplicating the context of another process.
- The new process is termed a
- <emphasis>child process</emphasis>
- of the original
- <emphasis>parent process</emphasis>
- The context duplicated in process creation includes
- both the user-level execution state of the process and
- the process's system state managed by the kernel.
- Important components of the kernel state are described in
- Chapter 4.</para>
-
- <figure id="fig-process-lifecycle">
- <title>Process lifecycle</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="fig1" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">+----------------+ wait +----------------+
-| parent process |--------------------------------->| parent process |--->
-+----------------+ +----------------+
- | ^
- | fork |
- V |
-+----------------+ execve +----------------+ wait +----------------+
-| child process |------->| child process |------->| zombie process |
-+----------------+ +----------------+ +----------------+</literallayout>
- </textobject>
-
- <textobject>
- <phrase>Process-management system calls</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>The process lifecycle is depicted in <xref linkend="fig-process-lifecycle">.
- A process may create a new process that is a copy of the original
- by using the
- <emphasis>fork</emphasis>
- system call.
- The
- <emphasis>fork</emphasis>
- call returns twice: once in the parent process, where
- the return value is the process identifier of the child,
- and once in the child process, where the return value is 0.
- The parent-child relationship induces a hierarchical structure on
- the set of processes in the system.
- The new process shares all its parent's resources, such as
- file descriptors, signal-handling status, and memory layout.</para>
-
- <para>Although there are occasions when the new process is intended
- to be a copy of the parent,
- the loading and execution of a different program is
- a more useful and typical action.
- A process can overlay itself with the memory image of another program,
- passing to the newly created image a set of parameters,
- using the system call
- <emphasis>execve</emphasis>.
- One parameter is the name of a file whose contents are
- in a format recognized by the system -- either a binary-executable file
- or a file that causes
- the execution of a specified interpreter program to process its contents.</para>
-
- <para>A process may terminate by executing an
- <emphasis>exit</emphasis>
- system call, sending 8 bits of
- exit status to its parent.
- If a process wants to communicate more than a single byte of
- information with its parent,
- it must either set up an interprocess-communication channel
- using pipes or sockets,
- or use an intermediate file.
- Interprocess communication is discussed extensively in
- Chapter 11.</para>
-
- <para>A process can suspend execution until any of its child processes terminate
- using the
- <emphasis>wait</emphasis>
- system call, which returns the
- PID
- and
- exit status of the terminated child process.
- A parent process can arrange to be notified by a signal when
- a child process exits or terminates abnormally.
- Using the
- <emphasis>wait4</emphasis>
- system call, the parent can retrieve information about
- the event that caused termination of the child process
- and about resources consumed by the process during its lifetime.
- If a process is orphaned because its parent exits before it is finished,
- then the kernel arranges for the child's exit status to be passed back
- to a special system process
- <!-- FIXME, the emphasis is wrong -->
- <emphasis>init</emphasis>:
- see Sections 3.1 and 14.6).</para>
-
- <para>The details of how the kernel creates and destroys processes are given in
- Chapter 5.</para>
-
- <para>Processes are scheduled for execution according to a
- <emphasis>process-priority</emphasis>
- parameter.
- This priority is managed by a kernel-based scheduling algorithm.
- Users can influence the scheduling of a process by specifying
- a parameter
- (<emphasis>nice</emphasis>)
- that weights the overall scheduling priority,
- but are still obligated to share the underlying
- CPU
- resources according to the kernel's scheduling policy.</para>
-
- <sect2>
- <title>Signals</title>
-
- <para>The system defines a set of
- <emphasis>signals</emphasis>
- that may be delivered to a process.
- Signals in 4.4BSD are modeled after hardware interrupts.
- A process may specify a user-level subroutine to be a
- <emphasis>handler</emphasis>
- to which a signal should be delivered.
- When a signal is generated,
- it is blocked from further occurrence while it is being
- <emphasis>caught</emphasis>
- by the handler.
- Catching a signal involves saving the current process context
- and building a new one in which to run the handler.
- The signal is then delivered to the handler, which can either abort
- the process or return to the executing process
- (perhaps after setting a global variable).
- If the handler returns, the signal is unblocked
- and can be generated (and caught) again.</para>
-
- <para>Alternatively, a process may specify that a signal is to be
- <emphasis>ignored</emphasis>,
- or that a default action, as determined by the kernel, is to be taken.
- The default action of certain signals is to terminate the process.
- This termination may be accompanied by creation of a
- <emphasis>core file</emphasis>
- that contains the current memory image of the process for use
- in postmortem debugging.</para>
-
- <para>Some signals cannot be caught or ignored.
- These signals include
- <emphasis>SIGKILL</emphasis>,
- which kills runaway processes,
- and the
- job-control signal
- <emphasis>SIGSTOP</emphasis>.</para>
-
- <para>A process may choose to have signals delivered on a
- special stack so that sophisticated software stack manipulations
- are possible.
- For example, a language supporting
- coroutines needs to provide a stack for each coroutine.
- The language run-time system can allocate these stacks
- by dividing up the single stack provided by 4.4BSD.
- If the kernel does not support a separate signal stack,
- the space allocated for each coroutine must be expanded by the
- amount of space required to catch a signal.</para>
-
- <para>All signals have the same <emphasis>priority</emphasis>.
- If multiple signals are pending simultaneously, the order in which
- signals are delivered to a process is implementation specific.
- Signal handlers execute with the signal that caused their
- invocation to be blocked, but other signals may yet occur.
- Mechanisms are provided so that processes can protect critical sections
- of code against the occurrence of specified signals.</para>
-
- <para>The detailed design and implementation of signals is described in
- Section 4.7.</para>
- </sect2>
-
- <sect2>
- <title>Process Groups and Sessions</title>
-
- <para>Processes are organized into
- <emphasis>process groups</emphasis>.
- Process groups are used to control access to terminals
- and to provide a means of distributing signals to collections of
- related processes.
- A process inherits its process group from its parent process.
- Mechanisms are provided by the kernel to allow a process to
- alter its process group or the process group of its descendents.
- Creating a new process group is easy;
- the value of a new process group is ordinarily the
- process identifier of the creating process.</para>
-
- <para>The group of processes in a process group is sometimes
- referred to as a
- <emphasis>job</emphasis>
- and is manipulated by high-level system software, such as the shell.
- A common kind of job created by a shell is a
- <emphasis>pipeline</emphasis>
- of several processes connected by pipes, such that the output of the first
- process is the input of the second, the output of the second is the
- input of the third, and so forth.
- The shell creates such a job by forking a
- process for each stage of the pipeline,
- then putting all those processes into a separate process group.</para>
-
- <para>A user process can send a signal to each process in
- a process group, as well as to a single process.
- A process in a specific process group may receive
- software interrupts affecting the group, causing the group to
- suspend or resume execution, or to be interrupted or terminated.</para>
-
- <para>A terminal has a process-group identifier assigned to it.
- This identifier is normally set to the identifier of a process group
- associated with the terminal.
- A job-control shell may create a number of process groups
- associated with the same terminal; the terminal is the
- <emphasis>controlling terminal</emphasis>
- for each process in these groups.
- A process may read from a descriptor for its controlling terminal
- only if the terminal's process-group identifier
- matches that of the process.
- If the identifiers do not match,
- the process will be blocked if it attempts to read from the terminal.
- By changing the process-group identifier of the terminal,
- a shell can arbitrate a terminal among several different jobs.
- This arbitration is called
- <emphasis>job control</emphasis>
- and is described, with process groups, in
- Section 4.8.</para>
-
- <para>Just as a set of related processes can be collected into a process group,
- a set of process groups can be collected into a
- <emphasis>session</emphasis>.
- The main uses for sessions are to create an isolated environment for a
- daemon process and its children,
- and to collect together a user's login shell
- and the jobs that that shell spawns.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Memory Management</title>
-
- <para>Each process has its own private address space.
- The address space is initially divided into three logical segments:
- <emphasis>text</emphasis>,
- <emphasis>data</emphasis>,
- and
- <emphasis>stack</emphasis>.
- The text segment is read-only and contains the machine
- instructions of a program.
- The data and stack segments are both readable and writable.
- The data segment contains the
- initialized and uninitialized data portions of a program, whereas
- the stack segment holds the application's run-time stack.
- On most machines, the stack segment is extended automatically
- by the kernel as the process executes.
- A process can expand or contract its data segment by making a system call,
- whereas a process can change the size of its text segment
- only when the segment's contents are overlaid with data from the
- filesystem, or when debugging takes place.
- The initial contents of the segments of a child process
- are duplicates of the segments of a parent process.</para>
-
- <para>The entire contents of a process address space do not need to be resident
- for a process to execute.
- If a process references a part of its address space that is not
- resident in main memory, the system
- <emphasis>pages</emphasis>
- the necessary information into memory.
- When system resources are scarce, the system uses a two-level
- approach to maintain available resources.
- If a modest amount of memory is available, the system will take
- memory resources away from processes if these resources have not been
- used recently.
- Should there be a severe resource shortage, the system will resort to
- <emphasis>swapping</emphasis>
- the entire context of a process to secondary storage.
- The
- <emphasis>demand paging</emphasis>
- and
- <emphasis>swapping</emphasis>
- done by the system are effectively transparent to processes.
- A process may, however, advise the system
- about expected future memory utilization as a performance aid.</para>
-
- <sect2>
- <title>BSD Memory-Management Design Decisions</title>
-
- <para>The support of large sparse address spaces, mapped files,
- and shared memory was a requirement for 4.2BSD.
- An interface was specified, called
- <emphasis>mmap</emphasis>,
- that allowed unrelated processes to request a shared
- mapping of a file into their address spaces.
- If multiple processes mapped the same file into their address spaces,
- changes to the file's portion of an address space
- by one process would be reflected
- in the area mapped by the other processes, as well as in the file itself.
- Ultimately, 4.2BSD was shipped without the
- <emphasis>mmap</emphasis>
- interface, because of pressure to make other features, such as
- networking, available.</para>
-
- <para>Further development of the
- <emphasis>mmap</emphasis>
- interface continued during the work on 4.3BSD.
- Over 40 companies and research groups participated
- in the discussions leading to the revised architecture
- that was described in the Berkeley Software Architecture Manual
- <xref linkend="biblio-mckusick-1">.
- Several of the companies have implemented the revised interface
- <xref linkend="biblio-gingell">.</para>
-
- <para>Once again, time pressure prevented 4.3BSD from providing an
- implementation of the interface.
- Although the latter could have been built into the existing
- 4.3BSD virtual-memory system,
- the developers decided not to put it in because
- that implementation was nearly 10 years old.
- Furthermore, the original virtual-memory design was based
- on the assumption that computer
- memories were small and expensive, whereas disks were
- locally connected, fast, large, and inexpensive.
- Thus, the virtual-memory system was designed to be frugal
- with its use of memory at the expense of generating extra disk traffic.
- In addition, the
- 4.3BSD implementation was riddled with
- VAX
- memory-management hardware dependencies that impeded its portability
- to other computer architectures.
- Finally, the virtual-memory system was not designed
- to support the tightly coupled
- multiprocessors that are becoming
- increasingly common and important today.</para>
-
- <para>Attempts to improve the old implementation incrementally
- seemed doomed to failure.
- A completely new design,
- on the other hand,
- could take advantage of large memories,
- conserve disk transfers,
- and have the potential to run on multiprocessors.
- Consequently, the virtual-memory system was completely replaced in 4.4BSD.
- The 4.4BSD virtual-memory system
- is based on the Mach 2.0 VM system
- <xref linkend="biblio-tevanian">.
- with updates from Mach 2.5 and Mach 3.0.
- It features
- efficient support for sharing,
- a clean separation of machine-independent and machine-dependent features,
- as well as (currently unused) multiprocessor support.
- Processes can map files anywhere in their address space.
- They can share parts of their address space by
- doing a shared mapping of the same file.
- Changes made by one process are visible in the address space of
- the other process, and also are written back to the file itself.
- Processes can also request private mappings of a file, which prevents
- any changes that they make from being visible to other processes
- mapping the file or being written back to the file itself.</para>
-
- <para>Another issue with the virtual-memory system is the way that
- information is passed into the kernel when a system call is made.
- 4.4BSD always copies data from the process address space
- into a buffer in the kernel.
- For read or write operations
- that are transferring large quantities of data,
- doing the copy can be time consuming.
- An alternative to doing the copying is to remap the
- process memory into the kernel.
- The 4.4BSD kernel always copies the data for several reasons:</para>
-
- <itemizedlist>
- <listitem>
- <para>Often, the user data are not page aligned and are not a multiple of
- the hardware page length.</para>
- </listitem>
-
- <listitem>
- <para>If the page is taken away from the process,
- it will no longer be able to reference that page.
- Some programs depend on the data remaining in the
- buffer even after those data have been written.</para>
- </listitem>
-
- <listitem>
- <para>If the process is allowed to keep a copy of the page
- (as it is in current 4.4BSD semantics),
- the page must be made
- <emphasis>copy-on-write</emphasis>.
- A copy-on-write page is one that is protected against being written
- by being made read-only.
- If the process attempts to modify the page,
- the kernel gets a write fault.
- The kernel then makes a copy of the page that the process can modify.
- Unfortunately, the typical process will immediately
- try to write new data to its output buffer,
- forcing the data to be copied anyway.</para>
- </listitem>
-
- <listitem>
- <para>When pages are remapped to new virtual-memory addresses,
- most memory-management hardware requires that the hardware
- address-translation cache be purged selectively.
- The cache purges are often slow.
- The net effect is that remapping is slower than
- copying for blocks of data less than 4 to 8 Kbyte.</para>
- </listitem>
- </itemizedlist>
-
- <para>The biggest incentives for memory mapping are the needs for
- accessing big files and for passing large quantities of data
- between processes.
- The
- <emphasis>mmap</emphasis>
- interface provides a way for both of these tasks
- to be done without copying.</para>
- </sect2>
-
- <sect2>
- <title>Memory Management Inside the Kernel</title>
-
- <para>The kernel often does allocations of memory that are
- needed for only the duration of a single system call.
- In a user process, such short-term
- memory would be allocated on the run-time stack.
- Because the kernel has a limited run-time stack,
- it is not feasible to allocate even moderate-sized blocks of memory on it.
- Consequently, such memory must be allocated
- through a more dynamic mechanism.
- For example,
- when the system must translate a pathname,
- it must allocate a 1-Kbyte buffer to hold the name.
- Other blocks of memory must be more persistent than a single system call,
- and thus could not be allocated on the stack even if there was space.
- An example is protocol-control blocks that remain throughout
- the duration of a network connection.</para>
-
- <para>Demands for dynamic memory allocation in the kernel have increased
- as more services have been added.
- A generalized memory allocator reduces the complexity
- of writing code inside the kernel.
- Thus, the 4.4BSD kernel has a single memory allocator that can be
- used by any part of the system.
- It has an interface similar to the C library routines
- <emphasis>malloc</emphasis>
- and
- <emphasis>free</emphasis>
- that provide memory allocation to application programs
- <xref linkend="biblio-mckusick-2">.
- Like the C library interface,
- the allocation routine takes a parameter specifying the
- size of memory that is needed.
- The range of sizes for memory requests is not constrained;
- however, physical memory is allocated and is not paged.
- The free routine takes a pointer to the storage being freed,
- but does not require the size
- of the piece of memory being freed.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>I/O System</title>
-
- <para>The basic model of the UNIX
- I/O system is a sequence of bytes
- that can be accessed either randomly or sequentially.
- There are no
- <emphasis>access methods</emphasis>
- and no
- <emphasis>control blocks</emphasis>
- in a typical UNIX user process.</para>
-
- <para>Different programs expect various levels of structure,
- but the kernel does not impose structure on I/O.
- For instance, the convention for text files is lines of
- ASCII
- characters separated by a single newline character
- (the
- ASCII
- line-feed character),
- but the kernel knows nothing about this convention.
- For the purposes of most programs,
- the model is further simplified to being a stream of data bytes,
- or an
- <emphasis>I/O stream</emphasis>.
- It is this single common data form that makes the
- characteristic UNIX tool-based approach work
- <xref linkend="biblio-kernighan">.
- An I/O stream from one program can be fed as input
- to almost any other program.
- (This kind of traditional UNIX
- I/O stream should not be confused with the
- Eighth Edition stream I/O system or with the
- System V, Release 3
- STREAMS,
- both of which can be accessed as traditional I/O streams.)</para>
-
- <sect2>
- <title>Descriptors and I/O</title>
-
- <para>UNIX processes use
- <emphasis>descriptors</emphasis>
- to reference I/O streams.
- Descriptors are small unsigned integers obtained from the
- <emphasis>open</emphasis>
- and
- <emphasis>socket</emphasis>
- system calls.
- The
- <emphasis>open</emphasis>
- system call takes as arguments the name of a file and
- a permission mode to
- specify whether the file should be open for reading or for writing,
- or for both.
- This system call also can be used to create a new, empty file.
- A
- <emphasis>read</emphasis>
- or
- <emphasis>write</emphasis>
- system call can be applied to a descriptor to transfer data.
- The
- <emphasis>close</emphasis>
- system call can be used to deallocate any descriptor.</para>
-
- <para>Descriptors represent underlying objects supported by the kernel,
- and are created by system calls specific to the type of object.
- In 4.4BSD, three kinds of objects can be represented by descriptors:
- files, pipes, and sockets.</para>
-
- <itemizedlist>
- <listitem>
- <para>A
- <emphasis>file</emphasis>
- is a linear array of bytes with at least one name.
- A file exists until all its names are deleted explicitly
- and no process holds a descriptor for it.
- A process acquires a descriptor for a file
- by opening that file's name with the
- <emphasis>open</emphasis>
- system call.
- I/O devices are accessed as files.</para>
- </listitem>
-
- <listitem>
- <para>A
- <emphasis>pipe</emphasis>
- is a linear array of bytes, as is a file, but it is used solely
- as an I/O stream, and it is unidirectional.
- It also has no name,
- and thus cannot be opened with
- <emphasis>open</emphasis>.
- Instead, it is created by the
- <emphasis>pipe</emphasis>
- system call, which returns two descriptors,
- one of which accepts input that is sent to the other descriptor reliably,
- without duplication, and in order.
- The system also supports a named pipe or
- FIFO.
- A
- FIFO
- has properties identical to a pipe, except that it appears
- in the filesystem;
- thus, it can be opened using the
- <emphasis>open</emphasis>
- system call.
- Two processes that wish to communicate each open the
- FIFO:
- One opens it for reading, the other for writing.</para>
- </listitem>
-
- <listitem>
- <para>A
- <emphasis>socket</emphasis>
- is a transient object that is used for
- interprocess communication;
- it exists only as long as some process holds a descriptor
- referring to it.
- A socket is created by the
- <emphasis>socket</emphasis>
- system call, which returns a descriptor for it.
- There are different kinds of sockets that support various communication
- semantics, such as reliable delivery of data, preservation of
- message ordering, and preservation of message boundaries.</para>
- </listitem>
- </itemizedlist>
-
- <para>In systems before 4.2BSD, pipes were implemented using the filesystem;
- when sockets were introduced in 4.2BSD,
- pipes were reimplemented as sockets.</para>
-
- <para>The kernel keeps for each process a
- <emphasis>descriptor table</emphasis>,
- which is a table that the kernel uses
- to translate the external representation
- of a descriptor into an internal representation.
- (The descriptor is merely an index into this table.)
- The descriptor table of a process is inherited from that process's parent,
- and thus access to the objects
- to which the descriptors refer also is inherited.
- The main ways that a process can obtain a descriptor are by
- opening or creation of an object,
- and by inheritance from the parent process.
- In addition, socket
- IPC
- allows passing of descriptors in messages between unrelated processes
- on the same machine.</para>
-
- <para>Every valid descriptor has an associated
- <emphasis>file offset</emphasis>
- in bytes from the beginning of the object.
- Read and write operations start at this offset, which is
- updated after each data transfer.
- For objects that permit random access,
- the file offset also may be set with the
- <emphasis>lseek</emphasis>
- system call.
- Ordinary files permit random access, and some devices do, as well.
- Pipes and sockets do not.</para>
-
- <para>When a process terminates, the kernel
- reclaims all the descriptors that were in use by that process.
- If the process was holding the final reference to an object,
- the object's manager is notified so that it can do any
- necessary cleanup actions, such as final deletion of a file
- or deallocation of a socket.</para>
- </sect2>
-
- <sect2>
- <title>Descriptor Management</title>
-
- <para>Most processes expect three descriptors to be open already
- when they start running.
- These descriptors are 0, 1, 2, more commonly known as
- <emphasis>standard input</emphasis>,
- <emphasis>standard output</emphasis>,
- and
- <emphasis>standard error</emphasis>,
- respectively.
- Usually, all three are associated with the user's terminal
- by the login process
- (see
- Section 14.6)
- and are inherited through
- <emphasis>fork</emphasis>
- and
- <emphasis>exec</emphasis>
- by processes run by the user.
- Thus, a program can read what the user types by reading standard
- input, and the program can send output to the user's screen by
- writing to standard output.
- The standard error descriptor also is open for writing and is
- used for error output, whereas standard output is used for ordinary output.</para>
-
- <para>These (and other) descriptors can be mapped to objects other than
- the terminal;
- such mapping is called
- <emphasis>I/O redirection</emphasis>,
- and all the standard shells permit users to do it.
- The shell can direct the output of a program to a file
- by closing descriptor 1 (standard output) and opening
- the desired output file to produce a new descriptor 1.
- It can similarly redirect standard input to come from a file
- by closing descriptor 0 and opening the file.</para>
-
- <para>Pipes allow the output of one program to be input to another program
- without rewriting or even relinking of either program.
- Instead of descriptor 1 (standard output)
- of the source program being set up to write to the terminal,
- it is set up to be the input descriptor of a pipe.
- Similarly, descriptor 0 (standard input)
- of the sink program is set up to reference the output of the pipe,
- instead of the terminal keyboard.
- The resulting set of two processes and the connecting pipe is known as a
- <emphasis>pipeline</emphasis>.
- Pipelines can be arbitrarily long series of processes connected by pipes.</para>
-
- <para>The
- <emphasis>open</emphasis>,
- <emphasis>pipe</emphasis>,
- and
- <emphasis>socket</emphasis>
- system calls produce new descriptors with the lowest unused number
- usable for a descriptor.
- For pipelines to work,
- some mechanism must be provided to map such descriptors into 0 and 1.
- The
- <emphasis>dup</emphasis>
- system call creates a copy of a descriptor that
- points to the same file-table entry.
- The new descriptor is also the lowest unused one,
- but if the desired descriptor is closed first,
- <emphasis>dup</emphasis>
- can be used to do the desired mapping.
- Care is required, however: If descriptor 1 is desired,
- and descriptor 0 happens also to have been closed, descriptor 0
- will be the result.
- To avoid this problem, the system provides the
- <emphasis>dup2</emphasis>
- system call;
- it is like
- <emphasis>dup</emphasis>,
- but it takes an additional argument specifying
- the number of the desired descriptor
- (if the desired descriptor was already open,
- <emphasis>dup2</emphasis>
- closes it before reusing it).</para>
- </sect2>
-
- <sect2>
- <title>Devices</title>
-
- <para>Hardware devices have filenames, and may be
- accessed by the user via the same system calls used for regular files.
- The kernel can distinguish a
- <emphasis>device special file</emphasis>
- or
- <emphasis>special file</emphasis>,
- and can determine to what device it refers,
- but most processes do not need to make this determination.
- Terminals, printers, and tape drives are all accessed as though they
- were streams of bytes, like 4.4BSD disk files.
- Thus, device dependencies and peculiarities are kept in the kernel
- as much as possible, and even in the kernel most of them are segregated
- in the device drivers.</para>
-
- <para>Hardware devices can be categorized as either
- <emphasis>structured</emphasis>
- or
- <emphasis>unstructured</emphasis>;
- they are known as
- <emphasis>block</emphasis>
- or
- <emphasis>character</emphasis>
- devices, respectively.
- Processes typically access devices through
- <emphasis>special files</emphasis>
- in the filesystem.
- I/O operations to these files are handled by
- kernel-resident software modules termed
- <emphasis>device drivers</emphasis>.
- Most network-communication hardware devices are accessible through only
- the interprocess-communication facilities,
- and do not have special files in the filesystem name space,
- because the
- <emphasis>raw-socket</emphasis>
- interface provides a more natural interface than does a special file.</para>
-
- <para>Structured or block devices are typified by disks and magnetic tapes,
- and include most random-access devices.
- The kernel supports read-modify-write-type buffering actions
- on block-oriented structured devices to allow the latter
- to be read and written in a
- totally random byte-addressed fashion, like regular files.
- Filesystems are created on block devices.</para>
-
- <para>Unstructured devices are those devices that do not support a block
- structure.
- Familiar unstructured devices are communication lines, raster
- plotters, and unbuffered magnetic tapes and disks.
- Unstructured devices typically support large block I/O transfers.</para>
-
- <para>Unstructured files are called
- <emphasis>character devices</emphasis>
- because the first of these to be implemented were terminal device drivers.
- The kernel interface to the driver for these devices proved convenient
- for other devices that were not block structured.</para>
-
- <para>Device special files are created by the
- <emphasis>mknod</emphasis>
- system call.
- There is an additional system call,
- <emphasis>ioctl</emphasis>,
- for manipulating the underlying device parameters of special files.
- The operations that can be done differ for each device.
- This system call allows the special characteristics of devices to
- be accessed, rather than overloading the semantics of other system calls.
- For example, there is an
- <emphasis>ioctl</emphasis>
- on a tape drive to write an end-of-tape mark,
- instead of there being a special or modified version of
- <emphasis>write</emphasis>.</para>
- </sect2>
-
- <sect2>
- <title>Socket IPC</title>
-
- <para>The 4.2BSD kernel introduced an
- IPC
- mechanism more flexible than pipes, based on
- <emphasis>sockets</emphasis>.
- A socket is an endpoint of communication referred to by
- a descriptor, just like a file or a pipe.
- Two processes can each create a socket, and then connect those
- two endpoints to produce a reliable byte stream.
- Once connected, the descriptors for the sockets can be read or written
- by processes, just as the latter would do with a pipe.
- The transparency of sockets allows the kernel to redirect the output
- of one process to the input of another process residing on another machine.
- A major difference between pipes and sockets is that
- pipes require a common parent process to set up the
- communications channel.
- A connection between sockets can be set up by two unrelated processes,
- possibly residing on different machines.</para>
-
- <para>System V provides local interprocess communication through
- FIFOs
- (also known as
- <emphasis>named pipes</emphasis>).
- FIFOs
- appear as an object in the filesystem that unrelated
- processes can open and send data through in the same
- way as they would communicate through a pipe.
- Thus,
- FIFOs
- do not require a common parent to set them up;
- they can be connected after a pair of processes are up and running.
- Unlike sockets,
- FIFOs
- can be used on only a local machine;
- they cannot be used to communicate between processes on different machines.
- FIFOs
- are implemented in 4.4BSD only because they are required by the
- POSIX.1
- standard.
- Their functionality is a subset of the socket interface.</para>
-
- <para>The socket mechanism requires extensions to the traditional UNIX
- I/O system calls to provide the associated naming and connection semantics.
- Rather than overloading the existing interface,
- the developers used the existing interfaces to the extent that
- the latter worked without being changed,
- and designed new interfaces to handle the added semantics.
- The
- <emphasis>read</emphasis>
- and
- <emphasis>write</emphasis>
- system calls were used for byte-stream type connections,
- but six new system calls were added
- to allow sending and receiving addressed messages
- such as network datagrams.
- The system calls for writing messages include
- <emphasis>send</emphasis>,
- <emphasis>sendto</emphasis>,
- and
- <emphasis>sendmsg</emphasis>.
- The system calls for reading messages include
- <emphasis>recv</emphasis>,
- <emphasis>recvfrom</emphasis>,
- and
- <emphasis>recvmsg</emphasis>.
- In retrospect, the first two in each class are special cases of the others;
- <emphasis>recvfrom</emphasis>
- and
- <emphasis>sendto</emphasis>
- probably should have been added as library interfaces to
- <emphasis>recvmsg</emphasis>
- and
- <emphasis>sendmsg</emphasis>,
- respectively.</para>
- </sect2>
-
- <sect2>
- <title>Scatter/Gather I/O</title>
-
- <para>In addition to the traditional
- <emphasis>read</emphasis>
- and
- <emphasis>write</emphasis>
- system calls, 4.2BSD introduced the ability to do scatter/gather I/O.
- Scatter input uses the
- <emphasis>readv</emphasis>
- system call to allow a single read
- to be placed in several different buffers.
- Conversely, the
- <emphasis>writev</emphasis>
- system call allows several different buffers
- to be written in a single atomic write.
- Instead of passing a single buffer and length parameter, as is done with
- <emphasis>read</emphasis>
- and
- <emphasis>write</emphasis>,
- the process passes in a pointer to an array of buffers and lengths,
- along with a count describing the size of the array.</para>
-
- <para>This facility allows buffers in different parts of a process
- address space to be written atomically, without the
- need to copy them to a single contiguous buffer.
- Atomic writes are necessary in the case where the underlying
- abstraction is record based, such as tape drives that output a
- tape block on each write request.
- It is also convenient to be able to read a single request into
- several different buffers (such as a record header into one place
- and the data into another).
- Although an application can simulate the ability to scatter data
- by reading the data into a large buffer and then copying the pieces
- to their intended destinations,
- the cost of memory-to-memory copying in such cases often
- would more than double the running time of the affected application.</para>
-
- <para>Just as
- <emphasis>send</emphasis>
- and
- <emphasis>recv</emphasis>
- could have been implemented as library interfaces to
- <emphasis>sendto</emphasis>
- and
- <emphasis>recvfrom</emphasis>,
- it also would have been possible to simulate
- <emphasis>read</emphasis>
- with
- <emphasis>readv</emphasis>
- and
- <emphasis>write</emphasis>
- with
- <emphasis>writev</emphasis>.
- However,
- <emphasis>read</emphasis>
- and
- <emphasis>write</emphasis>
- are used so much more frequently that the added cost
- of simulating them would not have been worthwhile.</para>
- </sect2>
-
- <sect2>
- <title>Multiple Filesystem Support</title>
-
- <para>With the expansion of network computing,
- it became desirable to support both local and remote filesystems.
- To simplify the support of multiple filesystems,
- the developers added a new virtual node or
- <emphasis>vnode</emphasis>
- interface to the kernel.
- The set of operations exported from the vnode interface
- appear much like the filesystem operations previously supported
- by the local filesystem.
- However, they may be supported by a wide range of filesystem types:</para>
-
- <itemizedlist>
- <listitem>
- <para>Local disk-based filesystems</para>
- </listitem>
-
- <listitem>
- <para>Files imported using a variety of remote filesystem protocols</para>
- </listitem>
-
- <listitem>
- <para>Read-only
- CD-ROM
- filesystems</para>
- </listitem>
-
- <listitem>
- <para>Filesystems providing special-purpose interfaces -- for example, the
- <filename>/proc</filename>
- filesystem</para>
- </listitem>
- </itemizedlist>
-
- <para>A few variants of 4.4BSD, such as FreeBSD,
- allow filesystems to be loaded dynamically
- when the filesystems are first referenced by the
- <emphasis>mount</emphasis>
- system call.
- The vnode interface is described in
- Section 6.5;
- its ancillary support routines are described in
- Section 6.6;
- several of the special-purpose filesystems are described in
- Section 6.7.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Filesystems</title>
-
- <para>A regular file is a linear array of bytes,
- and can be read and written starting at any byte in the file.
- The kernel distinguishes no record boundaries in regular files, although
- many programs recognize line-feed characters as distinguishing
- the ends of lines, and other programs may impose other structure.
- No system-related information about a file is kept in the file itself,
- but the filesystem stores a small amount of ownership, protection,
- and usage information with each file.</para>
-
- <para>A
- <emphasis>filename</emphasis>
- component is a string of up to 255 characters.
- These filenames are stored in a type of file called a
- <emphasis>directory</emphasis>.
- The information in a directory about a file is called a
- <emphasis>directory entry</emphasis>
- and includes, in addition to the filename,
- a pointer to the file itself.
- Directory entries may refer to other directories, as well as to plain files.
- A hierarchy of directories and files is thus formed, and is called a
- <emphasis>filesystem</emphasis>;</para>
-
- <figure id="fig-small-fs">
- <title>A small filesystem</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="fig2" format="EPS">
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> +-------+
- | |
- +-------+
- / \
- usr / \ vmunix
- |/ \|
- +-------+ +-------+
- | | | |
- +-------+ +-------+
- / | \
- staff / | \ bin
- |/ | tmp \|
- +-------+ V +-------+
- | | +-------+ | |
- +-------+ | | +-------+
- / | \ +-------+ / | \
- mckusick / | \| |/ | \ ls
- |/ | karels | vi \|
-+-------+ V V +-------+
-| | +-------+ +-------+ | |
-+-------+ | | | | +-------+
- +-------+ +-------+</literallayout>
- </textobject>
-
- <textobject>
- <phrase>A small filesystem tree</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>a small one is shown in <xref linkend="fig-small-fs">.
- Directories may contain subdirectories, and there is no inherent
- limitation to the depth with which directory nesting may occur.
- To protect the consistency of the filesystem, the kernel
- does not permit processes to write directly into directories.
- A filesystem may include not only plain files and directories,
- but also references to other objects, such as devices and sockets.</para>
-
- <para>The filesystem forms a tree, the beginning of which is the
- <emphasis>root directory</emphasis>,
- sometimes referred to by the name
- <emphasis>slash</emphasis>,
- spelled with a single solidus character (/).
- The root directory contains files; in our example in Fig 2.2, it contains
- <filename>vmunix</filename>,
- a copy of the kernel-executable object file.
- It also contains directories; in this example, it contains the
- <filename>usr</filename>
- directory.
- Within the
- <filename>usr</filename>
- directory is the
- <filename>bin</filename>
- directory, which mostly contains executable object code of programs,
- such as the files
- <!-- FIXME -->
- <filename>ls</filename>
- and
- <filename>vi</filename>.</para>
-
- <para>A process identifies a file by specifying that file's
- <emphasis>pathname</emphasis>,
- which is a string composed of zero or more
- filenames separated by slash (/) characters.
- The kernel associates two directories with each process for use
- in interpreting pathnames.
- A process's
- <emphasis>root directory</emphasis>
- is the topmost point in the filesystem that the process can access;
- it is ordinarily set to the root directory of the entire filesystem.
- A pathname beginning with a slash is called an
- <emphasis>absolute pathname</emphasis>,
- and is interpreted by the kernel starting with the process's root directory.</para>
-
- <para>A pathname that does not begin with a slash is called a
- <emphasis>relative pathname</emphasis>,
- and is interpreted relative to the
- <emphasis>current working directory</emphasis>
- of the process.
- (This directory also is known by the shorter names
- <emphasis>current directory</emphasis>
- or
- <emphasis>working directory</emphasis>.)
- The current directory itself may be referred to directly by the name
- <emphasis>dot</emphasis>,
- spelled with a single period
- (<filename>.</filename>).
- The filename
- <emphasis>dot-dot</emphasis>
- (<filename>..</filename>)
- refers to a directory's parent directory.
- The root directory is its own parent.</para>
-
- <para>A process may set its root directory with the
- <emphasis>chroot</emphasis>
- system call,
- and its current directory with the
- <emphasis>chdir</emphasis>
- system call.
- Any process may do
- <emphasis>chdir</emphasis>
- at any time, but
- <emphasis>chroot</emphasis>
- is permitted only a process with superuser privileges.
- <emphasis>Chroot</emphasis>
- is normally used to set up restricted access to the system.</para>
-
- <para>Using the filesystem shown in Fig. 2.2,
- if a process has the root of the filesystem as its root directory, and has
- <filename>/usr</filename>
- as its current directory, it can refer to the file
- <filename>vi</filename>
- either from the root with the absolute pathname
- <filename>/usr/bin/vi</filename>,
- or from its current directory with the relative pathname
- <filename>bin/vi</filename>.</para>
-
- <para>System utilities and databases are kept in certain well-known directories.
- Part of the well-defined hierarchy includes a directory that contains the
- <emphasis>home directory</emphasis>
- for each user -- for example,
- <filename>/usr/staff/mckusick</filename>
- and
- <filename>/usr/staff/karels</filename>
- in Fig. 2.2.
- When users log in,
- the current working directory of their shell is set to the
- home directory.
- Within their home directories,
- users can create directories as easily as they can regular files.
- Thus, a user can build arbitrarily complex subhierarchies.</para>
-
- <para>The user usually knows of only one filesystem, but the system may
- know that this one virtual filesystem
- is really composed of several physical
- filesystems, each on a different device.
- A physical filesystem may not span multiple hardware devices.
- Since most physical disk devices are divided into several logical devices,
- there may be more than one filesystem per physical device,
- but there will be no more than one per logical device.
- One filesystem -- the filesystem that
- anchors all absolute pathnames -- is called the
- <emphasis>root filesystem</emphasis>,
- and is always available.
- Others may be mounted;
- that is, they may be integrated into the
- directory hierarchy of the root filesystem.
- References to a directory that has a filesystem mounted on it
- are converted transparently by the kernel
- into references to the root directory of the mounted filesystem.</para>
-
- <para>The
- <emphasis>link</emphasis>
- system call takes the name of an existing file and another name
- to create for that file.
- After a successful
- <emphasis>link</emphasis>,
- the file can be accessed by either filename.
- A filename can be removed with the
- <emphasis>unlink</emphasis>
- system call.
- When the final name for a file is removed (and the final process that
- has the file open closes it), the file is deleted.</para>
-
- <para>Files are organized hierarchically in
- <emphasis>directories</emphasis>.
- A directory is a type of file,
- but, in contrast to regular files,
- a directory has a structure imposed on it by the system.
- A process can read a directory as it would an ordinary file,
- but only the kernel is permitted to modify a directory.
- Directories are created by the
- <emphasis>mkdir</emphasis>
- system call and are removed by the
- <emphasis>rmdir</emphasis>
- system call.
- Before 4.2BSD, the
- <emphasis>mkdir</emphasis>
- and
- <emphasis>rmdir</emphasis>
- system calls were implemented by a series of
- <emphasis>link</emphasis>
- and
- <emphasis>unlink</emphasis>
- system calls being done.
- There were three reasons for adding systems calls
- explicitly to create and delete directories:</para>
-
- <orderedlist>
- <listitem>
- <para>The operation could be made atomic.
- If the system crashed,
- the directory would not be left half-constructed,
- as could happen when a series of link operations were used.</para>
- </listitem>
- <listitem>
- <para>When a
- networked filesystem is being run,
- the creation and deletion of files and directories need to be
- specified atomically so that they can be serialized.</para>
- </listitem>
- <listitem>
- <para>When supporting non-UNIX filesystems, such as an
- MS-DOS
- filesystem, on another partition of the disk,
- the other filesystem may not support link operations.
- Although other filesystems might support the concept of directories,
- they probably would not create and delete the directories with links,
- as the UNIX filesystem does.
- Consequently, they could create and delete directories only
- if explicit directory create and delete requests were presented.</para>
- </listitem>
- </orderedlist>
-
- <para>The
- <emphasis>chown</emphasis>
- system call sets the owner and group of a file, and
- <emphasis>chmod</emphasis>
- changes protection attributes.
- <emphasis>Stat</emphasis>
- applied to a filename can be used to read back such properties of a file.
- The
- <emphasis>fchown</emphasis>,
- <emphasis>fchmod</emphasis>,
- and
- <emphasis>fstat</emphasis>
- system calls are applied to a descriptor, instead of
- to a filename, to do the same set of operations.
- The
- <emphasis>rename</emphasis>
- system call can be used to give a file a new name in the filesystem,
- replacing one of the file's old names.
- Like the directory-creation and directory-deletion operations, the
- <emphasis>rename</emphasis>
- system call was added to 4.2BSD
- to provide atomicity to name changes in the local filesystem.
- Later, it proved useful explicitly to
- export renaming operations to foreign filesystems and over the network.</para>
-
- <para>The
- <emphasis>truncate</emphasis>
- system call was added to 4.2BSD to allow files to be shortened
- to an arbitrary offset.
- The call was added primarily in support of the Fortran
- run-time library,
- which has the semantics such that the end of a random-access
- file is set to be wherever the program most recently accessed that file.
- Without the
- <emphasis>truncate</emphasis>
- system call, the only way to shorten a file was to
- copy the part that was desired to a new file, to delete the old file,
- then to rename the copy to the original name.
- As well as this algorithm being slow,
- the library could potentially fail on a full filesystem.</para>
-
- <para>Once the filesystem had the ability to shorten files,
- the kernel took advantage of that ability
- to shorten large empty directories.
- The advantage of shortening empty directories is that it reduces the
- time spent in the kernel searching them
- when names are being created or deleted.</para>
-
- <para>Newly created files are assigned the user identifier of the process
- that created them and the group identifier of the directory
- in which they were created.
- A three-level access-control mechanism is provided for
- the protection of files.
- These three levels specify the accessibility of a file to</para>
-
- <orderedlist>
- <listitem>
- <para>The user who owns the file</para>
- </listitem>
- <listitem>
- <para>The group that owns the file</para>
- </listitem>
- <listitem>
- <para>Everyone else</para>
- </listitem>
- </orderedlist>
-
- <para>Each level of access has separate indicators for read permission,
- write permission, and execute permission.</para>
-
- <para>Files are created with zero length, and may grow when they are written.
- While a file is open, the system maintains a pointer into
- the file indicating the current location in
- the file associated with the descriptor.
- This pointer can be moved about in the file in a random-access fashion.
- Processes sharing a file descriptor through a
- <emphasis>fork</emphasis>
- or
- <emphasis>dup</emphasis>
- system call share the current location pointer.
- Descriptors created by separate
- <emphasis>open</emphasis>
- system calls have separate current location pointers.
- Files may have
- <emphasis>holes</emphasis>
- in them.
- Holes are void areas in the linear extent of the file where data have
- never been written.
- A process can create these holes by positioning
- the pointer past the current end-of-file and writing.
- When read, holes are treated by the system as zero-valued bytes.</para>
-
- <para>Earlier UNIX systems had a limit of 14 characters per filename component.
- This limitation was often a problem.
- For example,
- in addition to the natural desire of users
- to give files long descriptive names,
- a common way of forming filenames is as
- <filename><replaceable>basename</replaceable>.<replaceable>extension</replaceable></filename>,
- where the extension (indicating the kind of file, such as
- <literal>.c</literal>
- for C source or
- <literal>.o</literal>
- for intermediate binary object)
- is one to three characters,
- leaving 10 to 12 characters for the basename.
- Source-code\-control systems and editors usually take up another
- two characters, either as a prefix or a suffix, for their purposes,
- leaving eight to 10 characters.
- It is easy to use 10 or 12 characters in a single
- English word as a basename (e.g., ``multiplexer'').</para>
-
- <para>It is possible to keep within these limits,
- but it is inconvenient or even dangerous, because other UNIX
- systems accept strings longer than the limit when creating files,
- but then
- <emphasis>truncate</emphasis>
- to the limit.
- A C language source file named
- <filename>multiplexer.c</filename>
- (already 13 characters) might have a source-code-control file
- with
- <literal>s.</literal>
- prepended, producing a filename
- <filename>s.multiplexer</filename>
- that is indistinguishable from the source-code-control file for
- <filename>multiplexer.ms</filename>,
- a file containing
- <!-- FIXME -->
- <literal>troff</literal>
- source for documentation for the C program.
- The contents of the two original files could easily get confused
- with no warning from the source-code-control system.
- Careful coding can detect this problem, but the
- long filenames
- first introduced in 4.2BSD practically eliminate it.</para>
- </sect1>
-
- <sect1>
- <title>Filestores</title>
-
- <para>The operations defined for local filesystems are divided into two parts.
- Common to all local filesystems are hierarchical naming,
- locking, quotas, attribute management, and protection.
- These features are independent of how the data will be stored.
- 4.4BSD has a single implementation to provide these semantics.</para>
-
- <para>The other part of the local filesystem is the organization
- and management of the data on the storage media.
- Laying out the contents of files on the storage media is
- the responsibility of the filestore.
- 4.4BSD supports three different filestore layouts:</para>
-
- <itemizedlist>
- <listitem>
- <para>The traditional Berkeley Fast Filesystem</para>
- </listitem>
- <listitem>
- <para>The log-structured filesystem,
- based on the Sprite operating-system design
- <xref linkend="biblio-rosenblum"></para>
- </listitem>
- <listitem>
- <para>A memory-based filesystem</para>
- </listitem>
- </itemizedlist>
-
- <para>Although the organizations of these filestores are completely different,
- these differences are indistinguishable
- to the processes using the filestores.</para>
-
- <para>The Fast Filesystem organizes data into cylinder groups.
- Files that are likely to be accessed together,
- based on their locations in the filesystem hierarchy,
- are stored in the same cylinder group.
- Files that are not expected to accessed together are moved into
- different cylinder groups.
- Thus, files written at the same time may be placed far apart on the
- disk.</para>
-
- <para>The log-structured filesystem organizes data as a log.
- All data being written at any point in time are gathered together,
- and are written at the same disk location.
- Data are never overwritten;
- instead, a new copy of the file is written that replaces the old one.
- The old files are reclaimed by a garbage-collection process that runs
- when the filesystem becomes full and additional free space is needed.</para>
-
- <para>The memory-based filesystem is designed to store data in virtual memory.
- It is used for filesystems that need to support
- fast but temporary data, such as
- <filename>/tmp</filename>.
- The goal of the memory-based filesystem is to keep
- the storage packed as compactly as possible to minimize
- the usage of virtual-memory resources.</para>
- </sect1>
-
- <sect1>
- <title>Network Filesystem</title>
-
- <para>Initially, networking was used
- to transfer data from one machine to another.
- Later, it evolved to allowing users to log in remotely to another machine.
- The next logical step was to bring the data to the user,
- instead of having the user go to the data --
- and network filesystems were born.
- Users working locally
- do not experience the network delays on each keystroke,
- so they have a more responsive environment.</para>
-
- <para>Bringing the filesystem to a local machine was among the first
- of the major client-server applications.
- The
- <emphasis>server</emphasis>
- is the remote machine that exports one or more of its filesystems.
- The
- <emphasis>client</emphasis>
- is the local machine that imports those filesystems.
- From the local client's point of view,
- a remotely mounted filesystem appears in the file-tree name space
- just like any other locally mounted filesystem.
- Local clients can change into directories on the remote filesystem,
- and can read, write, and execute binaries within that remote filesystem
- identically to the way that they can do these operations
- on a local filesystem.</para>
-
- <para>When the local client does an operation on a remote filesystem,
- the request is packaged and is sent to the server.
- The server does the requested operation and
- returns either the requested information or an error
- indicating why the request was denied.
- To get reasonable performance,
- the client must cache frequently accessed data.
- The complexity of remote filesystems lies in maintaining cache
- consistency between the server and its many clients.</para>
-
- <para>Although many remote-filesystem protocols
- have been developed over the years,
- the most pervasive one in use among UNIX
- systems is the Network Filesystem
- (NFS),
- whose protocol and most widely used implementation were
- done by Sun Microsystems.
- The 4.4BSD kernel supports the
- NFS
- protocol, although the implementation was done independently
- from the protocol specification
- <xref linkend="biblio-macklem">.
- The
- NFS
- protocol is described in
- Chapter 9.
- </para>
- </sect1>
-
- <sect1>
- <title>Terminals</title>
-
- <para>Terminals support the standard system I/O operations, as well
- as a collection of terminal-specific operations to control input-character
- editing and output delays.
- At the lowest level are the terminal device drivers that control
- the hardware terminal ports.
- Terminal input is handled according to the underlying communication
- characteristics, such as baud rate,
- and according to a set of software-controllable
- parameters, such as parity checking.</para>
-
- <para>Layered above the terminal device drivers are line disciplines
- that provide various degrees of character processing.
- The default line discipline is selected when a port is being
- used for an interactive login.
- The line discipline is run in
- <emphasis>canonical mode</emphasis>;
- input is processed to provide standard line-oriented editing functions,
- and input is presented to a process on a line-by-line basis.</para>
-
-
- <para>Screen editors and programs that communicate with other computers
- generally run in
- <emphasis>noncanonical mode</emphasis>
- (also commonly referred to as
- <emphasis>raw mode</emphasis>
- or
- <emphasis>character-at-a-time mode</emphasis>).
- In this mode, input is passed through to the reading process immediately
- and without interpretation.
- All special-character input processing is disabled,
- no erase or other line editing processing is done,
- and all characters are passed to the program
- that is reading from the terminal.</para>
-
-
- <para>It is possible to configure the terminal in thousands
- of combinations between these two extremes.
- For example,
- a screen editor that wanted to receive user interrupts asynchronously
- might enable the special characters that
- generate signals and enable output flow control,
- but otherwise run in noncanonical mode;
- all other characters would be passed through to the process uninterpreted.</para>
-
- <para>On output, the terminal handler provides simple formatting services,
- including</para>
-
-
- <itemizedlist>
- <listitem>
- <para>Converting the line-feed character
- to the two-character carriage-return-line-feed sequence</para>
- </listitem>
-
- <listitem>
- <para>Inserting delays after certain standard control characters</para>
- </listitem>
-
- <listitem>
- <para>Expanding tabs</para>
- </listitem>
-
- <listitem>
- <para>Displaying echoed nongraphic
- ASCII
- characters as a two-character sequence of the
- form ``^C''
- (i.e., the
- ASCII
- caret character followed by the
- ASCII
- character that is the character's value offset from the
- ASCII
- ``@'' character).</para>
- </listitem>
- </itemizedlist>
-
- <para>Each of these formatting services can be disabled individually by
- a process through control requests.</para>
-
- </sect1>
-
- <sect1>
- <title>Interprocess Communication</title>
-
- <para>Interprocess communication in 4.4BSD is organized in
- <emphasis>communication domains</emphasis>.
- Domains currently supported include the
- <emphasis>local domain</emphasis>,
- for communication between processes executing on the same machine; the
- <emphasis>internet domain</emphasis>,
- for communication between processes using the
- TCP/IP
- protocol suite (perhaps within the Internet); the
- ISO/OSI
- protocol family for communication between sites required to run them;
- and the
- <emphasis>XNS domain</emphasis>,
- for communication between processes using the
- XEROX
- Network Systems
- (XNS)
- protocols.</para>
-
- <para>Within a domain, communication takes place between communication
- endpoints known as
- <emphasis>sockets</emphasis>.
- As mentioned in
- Section 2.6,
- the
- <emphasis>socket</emphasis>
- system call creates a socket and returns a descriptor;
- other
- IPC
- system calls are described in
- Chapter 11.
- Each socket has a type that defines its communications semantics;
- these semantics include properties such as reliability, ordering,
- and prevention of duplication of messages.</para>
-
- <para>Each socket has associated with it a
- <emphasis>communication protocol</emphasis>.
- This protocol provides the semantics required
- by the socket according to the latter's type.
- Applications may request a specific protocol when creating a socket, or
- may allow the system to select a protocol that is appropriate for the type
- of socket being created.</para>
-
- <para>Sockets may have addresses bound to them.
- The form and meaning of socket addresses are dependent on the
- communication domain in which the socket is created.
- Binding a name to a socket in the
- local domain causes a file to be created in the filesystem.</para>
-
- <para>Normal data transmitted and received through sockets are untyped.
- Data-representation issues are the responsibility of libraries built
- on top of the interprocess-communication facilities.
- In addition to transporting normal data, communication domains may
- support the transmission and reception of specially typed data, termed
- <emphasis>access rights</emphasis>.
- The local domain, for example,
- uses this facility to pass descriptors between processes.</para>
-
- <para>Networking implementations on UNIX before 4.2BSD
- usually worked by overloading the character-device interfaces.
- One goal of the socket interface was for naive
- programs to be able to work without change on stream-style connections.
- Such programs can work only if the
- <emphasis>read</emphasis>
- and
- <emphasis>write</emphasis>
- systems calls are unchanged.
- Consequently, the original interfaces were left intact,
- and were made to work on stream-type sockets.
- A new interface was added for more complicated sockets,
- such as those used to send datagrams, with which a destination address
- must be presented with each
- <emphasis>send</emphasis>
- call.</para>
-
- <para>Another benefit is that the new interface is highly portable.
- Shortly after a test release was available from Berkeley,
- the socket interface had been ported to System III
- by a UNIX vendor
- (although AT&amp;T did not support the socket interface
- until the release of System V Release 4,
- deciding instead to use the
- Eighth Edition stream mechanism).
- The socket interface was also ported to run in many
- Ethernet boards by vendors, such as Excelan and Interlan, that were
- selling into the PC market, where the machines were
- too small to run networking in the main processor.
- More recently, the socket interface was used as the basis for
- Microsoft's Winsock networking interface for Windows.</para>
- </sect1>
-
- <sect1>
- <title>Network Communication</title>
-
- <para>Some of the communication domains supported by the
- <emphasis>socket</emphasis>
- IPC
- mechanism provide access to network protocols.
- These protocols are implemented as a separate software
- layer logically below the socket software in the kernel.
- The kernel provides many ancillary services, such as
- buffer management, message routing, standardized interfaces
- to the protocols, and interfaces to the network interface drivers
- for the use of the various network protocols.</para>
-
- <para>At the time that 4.2BSD was being implemented,
- there were many networking protocols in use or under development,
- each with its own strengths and weaknesses.
- There was no clearly superior protocol or protocol suite.
- By supporting multiple protocols, 4.2BSD
- could provide interoperability and resource sharing
- among the diverse set of machines that was available
- in the Berkeley environment.
- Multiple-protocol support also provides for future changes.
- Today's protocols designed for 10- to 100-Mbit-per-second
- Ethernets are likely to be inadequate for
- tomorrow's 1- to 10-Gbit-per-second fiber-optic networks.
- Consequently, the network-communication layer is
- designed to support multiple protocols.
- New protocols are added to the kernel without
- the support for older protocols being affected.
- Older applications can continue to operate using the old protocol
- over the same physical network as is used by newer applications
- running with a newer network protocol.</para>
- </sect1>
-
- <sect1>
- <title>Network Implementation</title>
-
- <para>The first protocol suite implemented in 4.2BSD was
- DARPA's
- Transmission Control Protocol/Internet Protocol
- (TCP/IP).
- The
- CSRG
- chose
- TCP/IP
- as the first network to incorporate into the socket
- IPC
- framework,
- because a 4.1BSD-based implementation was publicly available from a
- DARPA-sponsored
- project at Bolt, Beranek, and Newman
- (BBN).
- That was an influential choice:
- The 4.2BSD implementation
- is the main reason for the extremely widespread use of this protocol suite.
- Later performance and capability improvements to the
- TCP/IP
- implementation have also been widely adopted.
- The
- TCP/IP
- implementation is described in detail in
- Chapter 13.</para>
-
- <para>The release of 4.3BSD added the Xerox Network Systems
- (XNS)
- protocol suite,
- partly building on work done at the
- University of Maryland and at
- Cornell University.
- This suite was needed to connect
- isolated machines that could not communicate using
- TCP/IP.</para>
-
- <para>The release of 4.4BSD added the
- ISO
- protocol suite because of the latter's increasing
- visibility both within and outside the United States.
- Because of the somewhat different semantics defined for the
- ISO
- protocols, some minor changes were required in the socket interface
- to accommodate these semantics.
- The changes were made such that they were invisible to clients
- of other existing protocols.
- The
- ISO
- protocols also required extensive addition to the two-level routing
- tables provided by the kernel in 4.3BSD.
- The greatly expanded routing capabilities of 4.4BSD include
- arbitrary levels of routing with variable-length addresses and
- network masks.</para>
- </sect1>
-
- <sect1>
- <title>System Operation</title>
-
- <para>Bootstrapping mechanisms are used to start the system running.
- First, the 4.4BSD
- kernel must be loaded into the main memory of the processor.
- Once loaded, it must go through an initialization phase to
- set the hardware into a known state.
- Next, the kernel must do
- autoconfiguration, a process that finds
- and configures the peripherals that are attached to the processor.
- The system begins running in single-user mode while a start-up script does
- disk checks and starts the accounting and quota checking.
- Finally, the start-up script starts the general system services
- and brings up
- the system to full multiuser operation.</para>
-
- <para>During multiuser operation, processes wait for login requests
- on the terminal lines and network ports that have been configured
- for user access.
- When a login request is detected,
- a login process is spawned and user validation is done.
- When the login validation is successful, a
- login shell is created from which
- the user can run additional processes.</para>
- </sect1>
-
- <bibliography>
- <title>References</title>
-
- <biblioentry id="biblio-accetta">
- <abbrev>Accetta et al, 1986</abbrev>
-
- <biblioset relation="article">
- <title>Mach: A New Kernel Foundation for UNIX Development"</title>
-
- <authorgroup>
- <author>
- <firstname>M. </firstname>
- <surname>Accetta</surname>
- </author>
- <author>
- <firstname>R.</firstname>
- <surname>Baron</surname>
- </author>
- <author>
- <firstname>W.</firstname>
- <surname>Bolosky</surname>
- </author>
- <author>
- <firstname>D.</firstname>
- <surname>Golub</surname>
- </author>
- <author>
- <firstname>R.</firstname>
- <surname>Rashid</surname>
- </author>
- <author>
- <firstname>A.</firstname>
- <surname>Tevanian</surname>
- </author>
- <author>
- <firstname>M.</firstname>
- <surname>Young</surname>
- </author>
- </authorgroup>
-
- <pagenums>93-113</pagenums>
- </biblioset>
-
- <biblioset relation="journal">
- <title>USENIX Association Conference Proceedings</title>
- <publishername>USENIX Association</publishername>
- <pubdate>June 1986</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-cheriton">
- <abbrev>Cheriton, 1988</abbrev>
-
- <biblioset relation="article">
- <title>The V Distributed System</title>
-
- <author>
- <firstname>D. R.</firstname>
- <surname>Cheriton</surname>
- </author>
-
- <pagenums>314-333</pagenums>
- </biblioset>
-
- <biblioset relation="journal">
- <title>Comm ACM, 31, 3</title>
-
- <pubdate>March 1988</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-ewens">
- <abbrev>Ewens et al, 1985</abbrev>
-
- <biblioset relation="article">
- <title>Tunis: A Distributed Multiprocessor Operating System</title>
-
- <authorgroup>
- <author>
- <firstname>P.</firstname>
- <surname>Ewens</surname>
- </author>
-
- <author>
- <firstname>D. R.</firstname>
- <surname>Blythe</surname>
- </author>
-
- <author>
- <firstname>M.</firstname>
- <surname>Funkenhauser</surname>
- </author>
-
- <author>
- <firstname>R. C.</firstname>
- <surname>Holt</surname>
- </author>
- </authorgroup>
-
- <pagenums>247-254</pagenums>
- </biblioset>
-
- <biblioset relation="journal">
- <title>USENIX Assocation Conference Proceedings</title>
- <publishername>USENIX Association</publishername>
- <pubdate>June 1985</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-gingell">
- <abbrev>Gingell et al, 1987</abbrev>
-
- <biblioset relation="article">
- <title>Virtual Memory Architecture in SunOS</title>
-
- <authorgroup>
- <author>
- <firstname>R.</firstname>
- <surname>Gingell</surname>
- </author>
-
- <author>
- <firstname>J.</firstname>
- <surname>Moran</surname>
- </author>
-
- <author>
- <firstname>W.</firstname>
- <surname>Shannon</surname>
- </author>
- </authorgroup>
-
- <pagenums>81-94</pagenums>
- </biblioset>
-
- <biblioset relation="journal">
- <title>USENIX Association Conference Proceedings</title>
- <publishername>USENIX Association</publishername>
- <pubdate>June 1987</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-kernighan">
- <abbrev>Kernighan & Pike, 1984</abbrev>
-
- <title>The UNIX Programming Environment</title>
-
- <authorgroup>
- <author>
- <firstname>B. W.</firstname>
- <surname>Kernighan</surname>
- </author>
-
- <author>
- <firstname>R.</firstname>
- <surname>Pike</surname>
- </author>
- </authorgroup>
-
- <publisher>
- <publishername>Prentice-Hall</publishername>
- <address>
- <city>Englewood Cliffs</city>
- <state>NJ</state>
- </address>
- </publisher>
-
- <pubdate>1984</pubdate>
- </biblioentry>
-
- <biblioentry id="biblio-macklem">
- <abbrev>Macklem, 1994</abbrev>
-
- <biblioset relation="chapter">
- <title>The 4.4BSD NFS Implementation</title>
-
- <author>
- <firstname>R.</firstname>
- <surname>Macklem</surname>
- </author>
-
- <pagenums>6:1-14</pagenums>
- </biblioset>
-
- <biblioset relation="book">
- <title>4.4BSD System Manager's Manual</title>
-
- <publisher>
- <publishername>O'Reilly &amp; Associates, Inc.</publishername>
- <address>
- <city>Sebastopol</city>
- <state>CA</state>
- </address>
- </publisher>
-
- <pubdate>1994</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-mckusick-2">
- <abbrev>McKusick & Karels, 1988</abbrev>
-
- <biblioset relation="article">
- <title>Design of a General Purpose Memory Allocator for the 4.3BSD
- UNIX Kernel</title>
-
- <authorgroup>
- <author>
- <firstname>M. K.</firstname>
- <surname>McKusick</surname>
- </author>
-
- <author>
- <firstname>M. J.</firstname>
- <surname>Karels</surname>
- </author>
- </authorgroup>
-
- <pagenums>295-304</pagenums>
- </biblioset>
-
- <biblioset relation="journal">
- <title>USENIX Assocation Conference Proceedings</title>
- <publishername>USENIX Assocation</publishername>
- <pubdate>June 1998</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-mckusick-1">
- <abbrev>McKusick et al, 1994</abbrev>
-
- <biblioset relation="manual">
- <title>Berkeley Software Architecture Manual, 4.4BSD Edition</title>
-
- <authorgroup>
- <author>
- <firstname>M. K.</firstname>
- <surname>McKusick</surname>
- </author>
-
- <author>
- <firstname>M. J.</firstname>
- <surname>Karels</surname>
- </author>
-
- <author>
- <firstname>S. J.</firstname>
- <surname>Leffler</surname>
- </author>
-
- <author>
- <firstname>W. N.</firstname>
- <surname>Joy</surname>
- </author>
-
- <author>
- <firstname>R. S.</firstname>
- <surname>Faber</surname>
- </author>
- </authorgroup>
-
- <pagenums>5:1-42</pagenums>
- </biblioset>
-
- <biblioset relation="book">
- <title>4.4BSD Programmer's Supplementary Documents</title>
-
- <publisher>
- <publishername>O'Reilly &amp; Associates, Inc.</publishername>
- <address>
- <city>Sebastopol</city>
- <state>CA</state>
- </address>
- </publisher>
-
- <pubdate>1994</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-ritchie">
- <abbrev>Ritchie, 1988</abbrev>
-
- <title>Early Kernel Design</title>
- <subtitle>private communication</subtitle>
-
- <author>
- <firstname>D. M.</firstname>
- <surname>Ritchie</surname>
- </author>
-
- <pubdate>March 1988</pubdate>
- </biblioentry>
-
- <biblioentry id="biblio-rosenblum">
- <abbrev>Rosenblum & Ousterhout, 1992</abbrev>
-
- <biblioset relation="article">
- <title>The Design and Implementation of a Log-Structured File
- System</title>
-
- <authorgroup>
- <author>
- <firstname>M.</firstname>
- <surname>Rosenblum</surname>
- </author>
-
- <author>
- <firstname>K.</firstname>
- <surname>Ousterhout</surname>
- </author>
- </authorgroup>
-
- <pagenums>26-52</pagenums>
- </biblioset>
-
- <biblioset relation="journal">
- <title>ACM Transactions on Computer Systems, 10, 1</title>
-
- <publishername>Association for Computing Machinery</publishername>
- <pubdate>February 1992</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-rozier">
- <abbrev>Rozier et al, 1988</abbrev>
-
- <biblioset relation="article">
- <title>Chorus Distributed Operating Systems</title>
-
- <authorgroup>
- <author>
- <firstname>M.</firstname>
- <surname>Rozier</surname>
- </author>
-
- <author>
- <firstname>V.</firstname>
- <surname>Abrossimov</surname>
- </author>
-
- <author>
- <firstname>F.</firstname>
- <surname>Armand</surname>
- </author>
-
- <author>
- <firstname>I.</firstname>
- <surname>Boule</surname>
- </author>
-
- <author>
- <firstname>M.</firstname>
- <surname>Gien</surname>
- </author>
-
- <author>
- <firstname>M.</firstname>
- <surname>Guillemont</surname>
- </author>
-
- <author>
- <firstname>F.</firstname>
- <surname>Herrmann</surname>
- </author>
-
- <author>
- <firstname>C.</firstname>
- <surname>Kaiser</surname>
- </author>
-
- <author>
- <firstname>S.</firstname>
- <surname>Langlois</surname>
- </author>
-
- <author>
- <firstname>P.</firstname>
- <surname>Leonard</surname>
- </author>
-
- <author>
- <firstname>W.</firstname>
- <surname>Neuhauser</surname>
- </author>
- </authorgroup>
-
- <pagenums>305-370</pagenums>
- </biblioset>
-
- <biblioset relation="journal">
- <title>USENIX Computing Systems, 1, 4</title>
- <pubdate>Fall 1988</pubdate>
- </biblioset>
- </biblioentry>
-
- <biblioentry id="biblio-tevanian">
- <abbrev>Tevanian, 1987</abbrev>
-
- <title>Architecture-Independent Virtual Memory Management for Parallel
- and Distributed Environments: The Mach Approach</title>
- <subtitle>Technical Report CMU-CS-88-106,</subtitle>
-
- <author>
- <firstname>A.</firstname>
- <surname>Tevanian</surname>
- </author>
-
- <publisher>
- <publishername>Department of Computer Science, Carnegie-Mellon
- University</publishername>
-
- <address>
- <city>Pittsburgh</city>
- <state>PA</state>
- </address>
- </publisher>
-
- <pubdate>December 1987</pubdate>
- </biblioentry>
- </bibliography>
- </chapter>
-</book>
diff --git a/en_US.ISO8859-1/books/design-44bsd/fig1.eps b/en_US.ISO8859-1/books/design-44bsd/fig1.eps
deleted file mode 100644
index d1b1976b14..0000000000
--- a/en_US.ISO8859-1/books/design-44bsd/fig1.eps
+++ /dev/null
@@ -1,340 +0,0 @@
-%!PS-Adobe-2.0 EPSF-1.2
-%%Title: fig1.ps
-%%Creator: groff version 1.15
-%%CreationDate: Fri Jun 30 09:50:25 2000
-%%For:sheldonh sheldonh
-%%Pages: 1
-%%DocumentFonts:
-%%BoundingBox: 71 687 446 781
-%%BeginPreview: 376 93 1 93
-% 0000000000003fffffe00000000000000000000000000000000000000000000000000000001ffffff8000000000000
-% 000000000007c000001f000000000000000000000000040000000000000000000000000003e0000007c00000000000
-% 00000000007800000000f0000000000000000000000000000000000000000000000000001c00000000380000000000
-% 000000000380000000000e00000000000000000000000180000000000000000000000000e000000000070000000000
-% 000000000c00000000000180000000000000000006496dc0000000000000000000000003000000000000e000000000
-% 000000003000000000000060000000000000000002ca6d0000000000000000000000000c0000000000001800000000
-% 0000000040000000002000100000000000000000035469000000000000000000000000300000000008000400000000
-% 00000001800080100860000c00000000000000000374c9000000000000000000000000400040040218000200000000
-% 000000020000f395ef600002000000000000000002674b000000000000000000000000800079c57bd8000100000000
-% 0000000400009893e9200001000000000000000000000000000000000000000000000100004c44fa48000080000000
-% 0000000800008a9309200001800000000000000000000000000000000000000000000200004544c248000040000000
-% 00000f0800008e932920000080000000000000000000000000000000000000000003c200004744ca480000400003c0
-% 00000fe80000f3d9c930000080000000000000000000000000000000000000000003fc000079e6724c0000200003fc
-% fffffff80000800000000000be7c78f9f1e3e7c78f9f1e3e7c78f9f1e3c7cf8f1f3ffc00004000000000003ffffffc
-% 00000c0800008000000000008000000000000000000000000000000000000000000384000040000000000020000380
-% 00000008000590000000000080000000000000000000000000000000000000000000020001c4000000000040000000
-% 00000008000795a79fef000080000000000000000000000000000000000000000000020001e569ef7f800040000000
-% 000000040004d2183f8c00010000000000000000000000000000000000000000000001000134861f66000080000000
-% 000000020004521830e70002000000000000000000000000000000000000000000000080011486183b800080000000
-% 000000010004533cb32900040000000000000000000000000000000000000000000000c00114cf394c800300000000
-% 00000000c00799e71def001800000000000000000000000000000000000000000000002001e679ce7f800400000000
-% 0000000030040000000000600000000000000000000000000000000000000000000000180100000000001800000000
-% 000000000c040000000001800000000000000000000000000000000000000000000000060100000000006000000000
-% 00000000030c000000000e00000000000000000000000000000000000000000000000001c300000000038000000000
-% 0000000000f000000000700000000000000000000000000000000000000000000000000038000000001c0000000000
-% 00000000000f00000007800000000000000000000000000000000000000000000000000007c0000003e00000000000
-% 000000000000ff800ff80000000000000000000000000000000000000000000000000000003fe007fc000000000000
-% 000000000000007ff000000000000000000000000000000000000000000000000000000000001ff800000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000018000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000018000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000018000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000018000000000000000
-% 000000000000000800000000000000000000000000000000000000000000000000000000000003c000000000000000
-% 000000000000000800000000000000000000000000000000000000000000000000000000000003c000000000000000
-% 000000000000000800000000000000000000000000000000000000000000000000000000000003c000000000000000
-% 000000000000000800000000000000000000000000000000000000000000000000000000000003c000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000008006000000000000000000000000000000000000000000000000000000000008000000000000000
-% 000000000000000800e002000000000000000000000000000000000000000000000000000000000000000000000000
-% 0000000000000008008002000000000000000000000000000000000000000000000000000000000000000000000000
-% 0000000000000008008007000000000000000000000000000000000000000000000000000000008000000000000000
-% 000000000000000803def7800000000000000000000000000000000000000000000000000000008000000000000000
-% 00000000000000080122c4000000000000000000000000000000000000000000000000000000008000000000000000
-% 00000000000000080146c6000000000000000000000000000000000000000000000000000000008000000000000000
-% 000000000000000801448f000000000000000000000000000000000000000000000000000000000000000000000000
-% 0000000000000008037889800000000000000000000000000000000000000000000000000000000000000000000000
-% 0000000000000008020000000000000000000000000000000000000000000000000000000000008000000000000000
-% 00000000000000080a0000000000000000000000000000000000000000000000000000000000008000000000000000
-% 00000000000000080c0000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000008000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 000000000000003c000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 000000000000003c000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000
-% 000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000
-% 0000000000000018000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000018000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000018000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 0000000000000018000000000000000000000000000000000000000000000000000000000000008000000000000000
-% 000000000000007fe000000000000000000000000000007fe0000000000000000000000000001ff800000000000000
-% 000000000000ff801ff0000000000000000000000000ff801ff000000000000080000000003fe007fc000000000000
-% 00000000000f0000000f80000000000000000000000f0000000f8000000000000000000007c0000003e00000000000
-% 0000000000f000000000700000000000000000000070000000007000000000003000000038000000001c0000000000
-% 000000000300000000000e000003bc73e47000000380000000000e000000073db8000001c000000000038000000000
-% 000000000c00008240800180000598b424b000000c0000824080018000000b19a00000060000002080006000000000
-% 000000003000008040800060000f19e839e00000300000804080006000001e19200000180000002000001800000000
-% 00000000c0000080408000180008190839000000c00000804080001800001019200000200000002000000400000000
-% 0000000100001ef647800004000f49ef11e0000100001ef64780000400001e49600000c0039a5fbd8f000300000000
-% 00000002000020924880000200000000000000020000209248800002000000000000008000a148a69f000080000000
-% 000000040000209248800001000000000000000400002092488000010000000000000100012148a298000080000000
-% 00000008000032924c8000008000000000000f88000032924c800000800000000003c200023348a699000040000000
-% 0000000800001c9267c000008000000000000ff800001c9267c00000800000000003fe0003deeebc8e000040000000
-% 000000080000000000000000bffffffffffffff80000000000000000be7cf1e7cf9ffc000000000000000020000000
-% 0000000800000000000000008000000000000e08000000000000000080000000000384000000000000000020000000
-% 0000000800041000000000008000000000000008000410000000000080000000000004000104000000000020000000
-% 00000008000795a79fef00008000000000000008000795a79fef0000800000000000020001e569ef7f800040000000
-% 000000080004d2183f8c000180000000000000080004d2183f8c000180000000000002000134861f66000040000000
-% 000000040004521830e7000100000000000000040004521830e700010000000000000100011486183b800080000000
-% 000000020004533cb329000200000000000000020004533cb329000200000000000000800114cf394c800100000000
-% 00000001000799e71def000c0000000000000001800799e71def000c000000000000004001e679ce7f800200000000
-% 00000000c0040000000000100000000000000000400400000000001000000000000000200100000000000400000000
-% 00000000300400000000006000000000000000003004000000000060000000000000001c0100000000001800000000
-% 000000000c0c00000000018000000000000000000c0c0000000001800000000000000003030000000000e000000000
-% 000000000380000000000e0000000000000000000380000000000e000000000000000000e000000000070000000000
-% 00000000007800000000f0000000000000000000007800000000f00000000000000000001c00000000380000000000
-% 0000000000078000001f0000000000000000000000078000001f0000000000000000000003e0000007c00000000000
-% 0000000000007ffdffe00000000000000000000000007ffdffe000000000000000000000001ffffff8000000000000
-% 0000000000000002000000000000000000000000000000020000000000000000000000000000000000000000000000
-%%EndImage
-%%EndPreview
-save
-countdictstack
-mark
-newpath
-/showpage {} def
-%%EndProlog
-%%Page 1 1
-%%+ font Times-Roman
-/setpacking where{
-pop
-currentpacking
-true setpacking
-}if
-/grops 120 dict dup begin
-/SC 32 def
-/A/show load def
-/B{0 SC 3 -1 roll widthshow}bind def
-/C{0 exch ashow}bind def
-/D{0 exch 0 SC 5 2 roll awidthshow}bind def
-/E{0 rmoveto show}bind def
-/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
-/G{0 rmoveto 0 exch ashow}bind def
-/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/I{0 exch rmoveto show}bind def
-/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
-/K{0 exch rmoveto 0 exch ashow}bind def
-/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/M{rmoveto show}bind def
-/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
-/O{rmoveto 0 exch ashow}bind def
-/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/Q{moveto show}bind def
-/R{moveto 0 SC 3 -1 roll widthshow}bind def
-/S{moveto 0 exch ashow}bind def
-/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/SF{
-findfont exch
-[exch dup 0 exch 0 exch neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/MF{
-findfont
-[5 2 roll
-0 3 1 roll
-neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/level0 0 def
-/RES 0 def
-/PL 0 def
-/LS 0 def
-/MANUAL{
-statusdict begin/manualfeed true store end
-}bind def
-/PLG{
-gsave newpath clippath pathbbox grestore
-exch pop add exch pop
-}bind def
-/BP{
-/level0 save def
-1 setlinecap
-1 setlinejoin
-72 RES div dup scale
-LS{
-90 rotate
-}{
-0 PL translate
-}ifelse
-1 -1 scale
-}bind def
-/EP{
-level0 restore
-showpage
-}bind def
-/DA{
-newpath arcn stroke
-}bind def
-/SN{
-transform
-.25 sub exch .25 sub exch
-round .25 add exch round .25 add exch
-itransform
-}bind def
-/DL{
-SN
-moveto
-SN
-lineto stroke
-}bind def
-/DC{
-newpath 0 360 arc closepath
-}bind def
-/TM matrix def
-/DE{
-TM currentmatrix pop
-translate scale newpath 0 0 .5 0 360 arc closepath
-TM setmatrix
-}bind def
-/RC/rcurveto load def
-/RL/rlineto load def
-/ST/stroke load def
-/MT/moveto load def
-/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
-}bind def
-/BL/fill load def
-/LW/setlinewidth load def
-/RE{
-findfont
-dup maxlength 1 index/FontName known not{1 add}if dict begin
-{
-1 index/FID ne{def}{pop pop}ifelse
-}forall
-/Encoding exch def
-dup/FontName exch def
-currentdict end definefont pop
-}bind def
-/DEFS 0 def
-/EBEGIN{
-moveto
-DEFS begin
-}bind def
-/EEND/end load def
-/CNT 0 def
-/level1 0 def
-/PBEGIN{
-/level1 save def
-translate
-div 3 1 roll div exch scale
-neg exch neg exch translate
-0 setgray
-0 setlinecap
-1 setlinewidth
-0 setlinejoin
-10 setmiterlimit
-[]0 setdash
-/setstrokeadjust where{
-pop
-false setstrokeadjust
-}if
-/setoverprint where{
-pop
-false setoverprint
-}if
-newpath
-/CNT countdictstack def
-userdict begin
-/showpage{}def
-}bind def
-/PEND{
-clear
-countdictstack CNT sub{end}repeat
-level1 restore
-}bind def
-end def
-/setpacking where{
-pop
-setpacking
-}if
-grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
-/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
-/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
-/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
-/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
-/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
-/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
-/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
-/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
-/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
-/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
-/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
-/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
-/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
-/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
-/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
-/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
-/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
-/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
-/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/Times-Roman@0 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE
-BP
-/F0 12/Times-Italic@0 SF(fork)141.534 58.984 Q 68.832 27.216 134.424
-90.408 DE .4 LW ST/F1 12/Times-Roman@0 SF(process)116.43 97.432 Q(child)
-121.632 89.368 Q 301.968 88.824 298.368 88.824 DL 308.808 88.824 305.208
-88.824 DL 315.576 88.824 311.976 88.824 DL 322.416 88.824 318.816 88.824
-DL 329.184 88.824 325.584 88.824 DL 336.024 88.824 332.424 88.824 DL
-342.792 88.824 339.192 88.824 DL 349.632 88.824 346.032 88.824 DL
-349.632 88.824 MT -7.2 1.8 RL 0 -3.6 RL CL BL 349.632 88.824 MT -7.2 1.8
-RL 0 -3.6 RL CL ST 68.832 27.216 262.44 90.408 DE ST(process)244.374
-97.432 Q(child)249.576 89.368 Q(process)365.982 97.432 Q(zombie)364.728
-89.368 Q 383.976 72.408 383.976 76.008 DL 383.976 65.928 383.976 69.528
-DL 383.976 59.448 383.976 63.048 DL 383.976 52.968 383.976 56.568 DL
-383.976 46.488 383.976 50.088 DL 383.976 40.008 383.976 43.608 DL
-383.976 40.008 MT 1.8 7.2 RL -3.6 0 RL CL BL 383.976 40.008 MT 1.8 7.2
-RL -3.6 0 RL CL ST 68.832 27.216 384.048 90.408 DE ST 72 24.816 99.216
-24.816 DL 99.216 24.816 MT -7.2 1.8 RL 0 -3.6 RL CL BL 99.216 24.816 MT
--7.2 1.8 RL 0 -3.6 RL CL ST 445.608 24.816 418.392 24.816 DL 445.608
-24.816 MT -7.2 1.8 RL 0 -3.6 RL CL BL 445.608 24.816 MT -7.2 1.8 RL 0
--3.6 RL CL ST 228.024 88.824 170.424 88.824 DL 228.024 88.824 MT -7.2
-1.8 RL 0 -3.6 RL CL BL 228.024 88.824 MT -7.2 1.8 RL 0 -3.6 RL CL ST F0
--.24(ex)180.12 84.616 S(ecve).24 E 174.024 24.816 170.424 24.816 DL
-181.296 24.816 177.696 24.816 DL 188.64 24.816 185.04 24.816 DL 195.984
-24.816 192.384 24.816 DL 203.256 24.816 199.656 24.816 DL 210.6 24.816
-207 24.816 DL 217.872 24.816 214.272 24.816 DL 225.216 24.816 221.616
-24.816 DL 232.56 24.816 228.96 24.816 DL 239.832 24.816 236.232 24.816
-DL 247.176 24.816 243.576 24.816 DL 254.448 24.816 250.848 24.816 DL
-261.792 24.816 258.192 24.816 DL 269.136 24.816 265.536 24.816 DL
-276.408 24.816 272.808 24.816 DL 283.752 24.816 280.152 24.816 DL
-291.096 24.816 287.496 24.816 DL 298.368 24.816 294.768 24.816 DL
-305.712 24.816 302.112 24.816 DL 312.984 24.816 309.384 24.816 DL
-320.328 24.816 316.728 24.816 DL 327.672 24.816 324.072 24.816 DL
-334.944 24.816 331.344 24.816 DL 342.288 24.816 338.688 24.816 DL
-349.632 24.816 346.032 24.816 DL 349.632 24.816 MT -7.2 1.8 RL 0 -3.6 RL
-CL BL 349.632 24.816 MT -7.2 1.8 RL 0 -3.6 RL CL ST(wait)236.838 20.608
-Q -.24(ex)315.456 84.616 S(it).24 E 131.976 76.008 131.976 40.008 DL
-131.976 76.008 MT -1.8 -7.2 RL 3.6 0 RL CL BL 131.976 76.008 MT -1.8
--7.2 RL 3.6 0 RL CL ST 68.832 27.216 134.424 25.608 DE ST F1(process)
-116.43 32.632 Q(parent)118.638 24.568 Q 68.832 27.216 384.048 25.608 DE
-ST(process)365.982 32.632 Q(parent)368.19 24.568 Q EP
-end
-%%Trailer
-cleartomark
-countdictstack exch sub { end } repeat
-restore
-%%EOF
diff --git a/en_US.ISO8859-1/books/design-44bsd/fig2.eps b/en_US.ISO8859-1/books/design-44bsd/fig2.eps
deleted file mode 100644
index 84581020db..0000000000
--- a/en_US.ISO8859-1/books/design-44bsd/fig2.eps
+++ /dev/null
@@ -1,1476 +0,0 @@
-%!PS-Adobe-2.0 EPSF-1.2
-%%Title: /b/archive/c02/fig2.test.ps
-%%Creator: XV Version 3.10a Rev: 12/29/94 (jp-extension 5.3.3 + PNG patch 1.2d) - by John Bradley
-%%CreationDate: Nov 2 22:04
-%%For:sheldonh sheldonh
-%%Pages: 1
-%%DocumentFonts:
-%%BoundingBox: 187 308 426 484
-%%BeginPreview: 239 176 1 176
-% 000000000000000000000000000000000000000000aa8000000000000000
-% 000000000000000000000000000000000000000004001000000000000000
-% 000000000000000000000000000000000000000008000800000000000000
-% 000000000000000000000000000000000000000020000200000000000000
-% 000000000000000000000000000000000000000080000080000000000000
-% 000000000000000000000000000000000000000080000080000000000000
-% 000000000000000000000000000000000000000200000000000000000000
-% 000000000000000000000000000000000000000200000000000000000000
-% 000000000000000000000000000000000000000200000020000000000000
-% 000000000000000000000000000000000000000400000010000000000000
-% 000000000000000000000000000000000000000800000000000000000000
-% 000000000000000000000000000000000000000000000000000000000000
-% 000000000000000000000000000000000000000800000008000000000000
-% 000000000000000000000000000000000000000000000000000000000000
-% 000000000000000000000000000000000000000800000008000000000000
-% 000000000000000000000000000000000000000000000000000000000000
-% 000000000000000000000000000000000000000800000008000000000000
-% 000000000000000000000000000000000000000000000000000000000000
-% 000000000000000000000000000000000000000800000008000000000000
-% 000000000000000000000000000000000000000000000000000000000000
-% 000000000000000000000000000000000000000800000008000000000000
-% 000000000000000000000000000000000000000000000000000000000000
-% 000000000000000000000000000000000000000800000000000000000000
-% 000000000000000000000000000000000000000400000010000000000000
-% 000000000000000000000000000000000000000200000020000000000000
-% 000000000000000000000000000000000000000000000000000000006000
-% 000000000000000000000000000000000000000200000000000000002000
-% 00000000000000000000000000000000076c7804000000001d75ddf4fd00
-% 00000000000000000000000000000000037a68088000008008be8dbe6800
-% 00000000000000000000000000000000037c6010000000100d36cdb66600
-% 00000000000000000000000000000000036e6020280008080636cdb66600
-% 0000000000000000000000000000000003726040040010040636cdb66700
-% 0000000000000000000000000000000003fae08002aa8002023eefbeeb80
-% 000000000000000000000000000000000000010000000001000000000000
-% 000000000000000000000000000000000000020000000000800000000000
-% 000000000000000000000000000000000000040000000000400000000000
-% 000000000000000000000000000000000000080000000000080000000000
-% 000000000000000000000000000000000000100000000000080000000000
-% 000000000000000000000000000000000000200000000000020000000000
-% 000000000000000000000000000000000000400000000000010000000000
-% 00000000000000000000000000000000000080000000000000a000aa8000
-% 00000000000000000000000000000000000000000000000000700c00c000
-% 000000000000000000000000000000000002000000000000007820002800
-% 000000000000000000000000000000000040000000000000007c40000400
-% 0000000000000000000000000000000000b8000000000000003e80000200
-% 000000000000000000000000000001d500f0000000000000000700000100
-% 00000000000000000000000000000a00a0e0000000000000000200000080
-% 0000000000000000000000000000100011c0000000000000000400000000
-% 000000000000000000000000000020000b80000000000000000800000000
-% 000000000000000000000000000080000200000000000000000800000000
-% 000000000000000000000000000000000000000000000000000800000020
-% 000000000000000000000000000000000000000000000000001000000000
-% 000000000000000000000000000200000080000000000000000000000000
-% 000000000000000000000000000400000040000000000000001000000010
-% 000000000000000000000000000800000020000000000000002000000000
-% 000000000000000000000000000000000000000000000000000000000010
-% 000000000000000000000000000800000000000000000000002000000000
-% 000000000000000000000000001000000010000000000000000000000010
-% 000000000000000000000000000000000000000000000000002000000000
-% 000000000000000000000000001000000010000000000000000000000010
-% 000000000000000000000000002000000008000000000000000000000000
-% 000000000000000000000000000000000000000000000000001000000010
-% 000000000000000000000000002000000008000000000000000000000020
-% 000000000000000000000000000000000010000000000000000000000000
-% 000000000000000000000000000000000000000000000000000800000000
-% 000000000000000000000000001000000010000000000000000400000040
-% 000000000000000000000000000000000000000000000000000200000080
-% 000000000000000000000000000000000000000000000000000200000100
-% 000000000000000000000000000800000020000000000000000080000200
-% 000000000000000000000000000000000020000000000000000080000400
-% 00000000000000000000000000020000000800e180000000000020000800
-% 00000000000000000000001dc00400000000006100000000000010001000
-% 00000000000000000000201ba00a00000082006bba00000000000a808000
-% 00000000000000000007f73fc00100000101006d9b0000000000005c0000
-% 0000000000000000000c6c99802080000200806d9b000000000000000000
-% 0000000000000000000e6599800040000400406d9b000000000000000000
-% 0000000000000000000b6b9980800800280020699b000000000000000000
-% 000000000000000000016d9980000501c00010799b000000000000000000
-% 0000000000000000000e2ebb880000aa0000080000000000000000000000
-% 000000000000000000000000000000100000040000000000000000000000
-% 000000000000000000000000200000000000020000000000000000000000
-% 000000000000000000000000000000100000010000000000000000000000
-% 000000000000000000000000800000008000008000000000000000000000
-% 000000000000000000000001000000118000000000000000000000000000
-% 00000000000000000000000200000003baee800800000000000000000000
-% 000000000000000000000004000000119b66c00800000000000000000000
-% 000000000000000000000008000000019b66c00200000000000000000000
-% 000000000000000000000010000000119b66c00000000000000000000000
-% 00000000000000000aa00020000000019b668000a00aa800000000000000
-% 0000000000000000401801c0000000119b778000e0100400000000000000
-% 0000000000000002000203800000002800060000e0a00080000000000000
-% 0000000000000004000007c0000000380006000071000040000000000000
-% 000000000000000800008f8000000038000e00003a000008000000000000
-% 000000000000001000000c0000000038000000000c000008000000000000
-% 000000000000002000000800000000380000000008000000000000000000
-% 000000000000004000000000000000100000000010000000000000000000
-% 000000000000008000000800000000100000000020000002000000000000
-% 0000000000000000000004000000015d0000000000000001000000000000
-% 00000000000000000000020000000a00a000000000000000800000000000
-% 000000000000010000000000000020001000000040000000000000000000
-% 000000000000000000000200000080000800000080000000800000000000
-% 000000000000000000000100000100000400000080000000000000000000
-% 000000000000020000000000000200000200000080000000800000000000
-% 000000000000000000000100000400000100000000000000400000000000
-% 000000000000020000000000000800000080000080000000000000000000
-% 000000000000000000000100000800000000000080000000400000000000
-% 000000000000020000000000000800000000000080000000000000000000
-% 000000000000000000000100001000000000000000000000000000000000
-% 000000000000020000000000000000000020000080000000800000000000
-% 000000000000010000000000000000000000000000000000800000000000
-% 000000000000000000000200002000000020000000000000800000000000
-% 000000000000010000000000000000000000000040000000000000000000
-% 0000c0003030008000000000002000000000000020000000000000000000
-% 0000c0003030000000000400000000000010000000000000000000000000
-% fa38ebee32b2008000000800002000000000000020000002003800000000
-% db64d36c35b4000000001400002000000010000050000004001800000000
-% db28e36e3cb8022000002000002000000020000088000008801b80000000
-% db60f3673c3c041000004000000000000000000004000010001e00000000
-% db22fb6b3e3e080a00008000002000000020000002000020201e00000000
-% dbbcdbe73736100100010040001000000000000400400040001b80000000
-% 0000000000002000a0080028000800000000000800280a80081880000000
-% 00000000000040001d40000000080000004000000005d800001f80000000
-% 000000000000800000000000000800000080000000000000020000000000
-% 000000000001000001000002000400000000004000004000000000000000
-% 000000000002000000000000800200000200008000000000008000000000
-% 000000000004000001000000000100000000010000004000000000000000
-% 0000000000080000003800003000800008000000000c0000002000000000
-% 0000000000100000011800003000400010000000000c4000001000000000
-% 0000000000200000001abba2ba002800a000080003ac0000000800000000
-% 0000000001400000011859e5bc00050100001000030c4000000500000000
-% 00000020038000000018898fbe0000aa00002000030c0000000380020000
-% 0000071403c00000011e598c3700000000000000018c40000007c0556000
-% 0000280283800000001ad98eb980000000008000008c0000000382800800
-% 0000c00047000000011bd9873f40000000000000011c40000001c4000100
-% 000280000e00000000000000002000000000000000000000000028000080
-% 000200000c00000001000000000000000000000000004000000030000040
-% 00080000000000000380000000000000000000000001e000000020000020
-% 00080000000000000780000000000000000000000001c000000000000010
-% 00080000000000000380000000000000000000000000c000000080000008
-% 00100000000000000300000000000000000000000000c000000100000000
-% 002000000080000003000000000000000000000000008000000000000008
-% 00000000000000000300000000000000000000000000c000000000000004
-% 00200000000000000aa000000000000000000000000aa000000200000002
-% 004000000040000010040000000000000000000000401400000000000000
-% 000000000000000080008000000000000000000000800280000000000002
-% 004000000000000100004000000000000000000004000080000400000000
-% 008000000020000200002000000000000000000008000020000000000002
-% 000000000000000800001000000000000000000010000010000400000000
-% 008000000020000800000800000000000000000020000008000000000002
-% 004000000000001000000400000000000000000040000000000400000000
-% 000000000000002000000200000000000000000080000000000200000002
-% 004000000040004000000000000000000000000000000004000000000000
-% 000000000000008000000000000000000000000080000002000200000000
-% 000000000000000000000100000000000000000100000000000000000004
-% 002000000080008000000080000000000000000000000002000200000008
-% 001000000000000000000000000000000000000100000001000100000000
-% 000800000000008000000080000000000000000200000000000080000008
-% 000800000000010000000080000000000000000100000001000000000010
-% 000800000200008000000080000000000000000200000000000020000020
-% 000400000400010000000000000000000000000000000001000020000040
-% 000080000800008000000080000000000000000200000000000008000080
-% 000080000000000000000000000000000000000000000001000004000100
-% 000020008000008000000080000000000000000200000000000002800a00
-% 000004040000000000000000000000000000000100000001000000407000
-% 000000a800000080000000800000000000000000800000020000000a8000
-% 000000000000000000000100000000000000000000000000000000000000
-% 000000000000000000000200000000000000000080000002000000000000
-% 000000000000000000000200000000000000000040000004000000000000
-% 000000000000002000000200000000000000000000000008000000000000
-% 000000000000001000000400000000000000000000000008000000000000
-% 000000000000000800000800000000000000000020000020000000000000
-% 000000000000000400001000000000000000000008000040000000000000
-% 00000000000000020000200000000000000000000a000080000000000000
-% 000000000000000180018000000000000000000001000100000000000000
-% 0000000000000000200a0000000000000000000000a00a00000000000000
-% 000000000000000005500000000000000000000000174000000000000000
-%%EndImage
-%%EndPreview
-save
-countdictstack
-mark
-newpath
-/showpage {} def
-/setpagedevice {pop} def
-%%EndProlog
-%%Page 1 1
-%%DocumentFonts:
-
-
-% remember original state
-/origstate save def
-
-% build a temporary dictionary
-20 dict begin
-
-% define string to hold a scanline's worth of data
-/pix 240 string def
-
-% define space for color conversions
-/grays 240 string def % space for gray scale line
-/npixls 0 def
-/rgbindx 0 def
-
-% lower left corner
-186 308 translate
-
-% size of image (on paper, in 1/72inch coords)
-239.97600 176.97600 scale
-
-240 177 8 % dimensions of data
-[240 0 0 -177 0 177] % mapping matrix
-{currentfile pix readhexstring pop}
-image
-
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbbbbffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffdd8866777799bb9977777788dd
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffbb6688ddffffffffffffffffffdd88
-66ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffee7788ffffffffffffffffffffffffffff
-ee7777eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffcc55eeffffffffffffffffffffffffffffff
-ffffdd66ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff9977ffffffffffffffffffffffffffffffffff
-ffffffee66ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffcc77ffffffffffffffffffffffffffffffffffff
-ffffffffff66ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffee55ffffffffffffffffffffffffffffffffffffff
-ffffffffffee66eeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff66eeffffffffffffffffffffffffffffffffffffff
-ffffffffffffdd77ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffbb99ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffff77ddffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff55ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffee66ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffcc99ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffff88ddffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffdd88ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffbbaaffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffbbbbffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff99ccffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffaabbffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffbbbbffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffbbbbffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff99bbffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffbbaaffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffee77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffdd88ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffaaaaffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffff88ddffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff99aaffffffffffffffffffffffffffffffffffffffff
-ffffffffffffff88bbffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff66eeffffffffffffffffffffffffffffffffffffff
-ffffffffffffee77ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffff1122ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff7b50ffffffffffffffffffffffffffffffffffffff
-ffffffffffff55eeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffff4477ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffff660000660000cc222288
-ff6600007711eeffffffffffffff6699aa88ffffffffffffffffffffffffffffffffffff
-ffffffffff77ccffffffffffffffffff550011cc22556600007711bb770088ff66000066
-0000660000770099ff550000550011991166ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff00002200ffbb
-ffff00007700ccffffffffffff77bbffff9988ffffffffffffffffffffffffffffffffff
-ffffffff779966ccffffffffffffffffee1144ff99ddff0011dd0011cc0011ffff0000ff
-0000ff0011ee0011ffff0000dd1133ee77ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff0000110055ee
-ffff0000ffffffffffffffff77ccffffffffaa77eeffffffffffffffffffffffffffffff
-ffffee55ccffee77aaffffffffffffffff6600dd88ffff0000ff0000ff0000ffff0000ff
-0000ff0000ff0000ffff0000ff880033eeffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff0000cc440033
-ffff0000ffffffffffffee44ccffffffffffffcc66aaffffffffffffffffffffffffffff
-ff9966eeffffffff8888ffffffffffffffdd0044bbffff0000ff0000ff0000ffff0000ff
-0000ff0000ff0000ffff0000ffff2200ccffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff000077ddcc00
-ffff0000ffffffffffee66ddffffffffffffffffff9966aaffffffffffffffffffffee99
-55bbffffffffffffffaa77eeffffffffffff4422ffffff0000ff0000ff0000ffff0000ff
-0000ff0000ff0000ffff0000ffaaaa1133ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff550044002233111166
-ffbb0000ddffffffdd66eeffffffffffffffffffffffffaa777777aabbbbbbaa777777cc
-ffffffffffffffffffffcc66eeffffffffffaa99ffffaa0000cc0000dd000055ff550044
-0022710000cc0000ccaa0000aa44ee440077ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffcc44eeffffffffffffffffffffffffffffffffeebbbbaabbbbffffffff
-ffffffffffffffffffffffee55ccffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffcc77ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff7799ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffbb77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff9977ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffff9966ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffcc55eeffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffff9999ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffee66ccffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffff7799ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffee77aaffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ff7799ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff8888ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffaa77eebfbfffffffffffffffffffffcc
-776677666677776699eeffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee66
-ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffcc60161ceeffffffffffffee777799
-eeffffffffffffffcc7777bbffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee55cc
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffee27000028ffffffffff7777ddffff
-ffffffffffffffffffffff9966ccffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7b7bee66eeff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffdd300b00006dffffee66ccffffffff
-ffffffffffffffffffffffffee7799ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd180929eeffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffaf300708bfcc55eeffffffffff
-ffffffffffffffffffffffffffff9977ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffee997777776677777799eeffffffffffffff3000000dcfffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffaf2d0569ffffffffffffff
-ffffffffffffffffffffffffffffffcc77ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffff996677ccffffffffffffffcc776699ffffffff6d00002058ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffee46afffffffffffffff
-ffffffffffffffffffffffffffffffff9999ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffbb55bbffffffffffffffffffffffffffbb55bbffdd0f0858eeffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffff55eeffffffffffffffff
-ffffffffffffffffffffffffffffffffff77bbffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff7788ffffffffffffffffffffffffffffffffff8877191dddffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffbb99ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff66ffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffee55ccffffffffffffffffffffffffffffffffffffffcc32eeffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffff55ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff99aaffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffee66eeffffffffffffffffffffffffffffffffffffffffffee55ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffaaaaffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff66ffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffff77ccffffffffffffffffffffffffffffffffffffffffffffffcc77ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff88ddffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffff77bbffffffffffffffffffffffffffffffffffffffffffffffffffaa88ffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffdd88ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffee77ffffffffffffffffffffffffffffffffffffffffffffffffffffff77eeffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffbbaaffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ff77ddffffffffffffffffffffffffffffffffffffffffffffffffffffffdd77ffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffaabbffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ee77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77eeffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77eeffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-99ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc99ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77ddffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffbbbbffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb
-bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99bbffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffcc99ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff66ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb
-bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbbffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffcc99ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb
-bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbbffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff77eeffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77eeffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb
-aaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88ccffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffcc99ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77ffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffff66eeffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff77ccffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffdd77ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffee77ffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffff77ccffffffffffffffff
-ffffffffffffffffffffffffffffffffff66ddffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-99bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaaffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff55eeffffffffffffff
-ffffffffffffffffffffffffffffffff77ccffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ee77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffee66eeffffffffffff
-ffffffffffffffffffffffffffffff9999ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ff77ddffffffffffffffffffffffffffffffffffffffffffffffffffffffbb30ddffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffee55ccffffffffff
-ffffffffffffffffffffffffffff7799ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffee33aaffffffffffffffffffffffffffffffffffffffffffffffffffff66ee55ccffff
-ffffffffffffffffffbb0000ffffffff1122ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7788ffffffff
-ffffffffffffffffffffffffdd66ccffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffff77ffffffffffffffff7700118877001188ffffffffffffffff
-ff776699ffffffffffffffffffffffffffffffffffffffffffffffffff99aaffff77bbff
-ffffffffffffffffffff0000ffffffff4477ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb6699ffff
-ffffffffffffffffffffdd7777eeffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffff6600ffffffffffffffff0000889900008899ffffffffffffffff
-77bbff77ccffffffffffffffffffffffffffffffffffffffffffffffbb77ffffffff7799
-ffffffffffffffffffff00004422cc550000ff660000770099ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb7777
-aaeeffffffffffcc886688eeffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffcc22228877000044ee550022aaff4400007744000077ffffffffffffffff77
-ccffffff66ccffffffffffffffffffffffffffffffffffffffffffcc77ffffffffffff99
-88ffffffffffffffffff0000dd0055ff0000ffff0011ee0011ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-bb77777777777799ddffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff2200ffbbff0000ff8822ff8811ffff0000ffff0000ffffffffffffffee55cc
-ffffffffff7799ffffffffffffffffffffffffffffffffffffff9977ffffffffffffffff
-9977ffffffffffffffff0000ff0000ff0000ffff0000ff0000ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff110055eeff0000ffcc77ff8800ffff0000ffff0000ffffffffffffee66ddff
-ffffffffffff9977eeffffffffffffffffffffffffffffffee7799ffffffffffffffffff
-ffcc77eeffffffffffff0000ff0000ff0000ffff0000ff0000ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffcc440033ff0000ffee66aa0000ffff0000ffff0000ffffffffffee66eeffff
-ffffffffffffffdd7788ffffffffffffffffffffffffff7777ddffffffffffffffffffff
-ffffcc55eeffffffffff0000ee0044ff0000ffff0000ff0000ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff77ddcc00ff0000dd3300ff0000ffff0000ffff0000ffffffffcc55eeffffff
-ffffffffffffffffffbb777799eeffffffffffee997777ccffffffffffffffffffffffff
-ffffffee66ddffffffff44220022ccaa0000ffbb0000cc0000ccffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff55111166ff330099440044660099bb000077bb000077ffffcc77eeffffffff
-ffffffffffffffffffffffffcc77776638667777ccffffffffffffffffffffffffffffff
-ffffffffee55ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc77ffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffffffffffff77bbffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff9977ffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffffffffffffff7799ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffff9988ffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffff9988ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffff9999ffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffff77ffffffffffffffffffffffffffff
-ffffffffffffffffff9977ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff7799ffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffff6600ffffffffffffffffffffffffffff
-ffffffffffffffffffffcc77eeffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77bbffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffff770000446600007711bb770088ff660000
-4422ccffffffffffffffffcc55eeffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff77ccffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffff0000ffff0011dd0011cc0011ffff0022
-ee0055ffffffffffffffffffee66ddffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffee55ccffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffff0000ffff0000ff0000ff0000ffff0000
-ff0000ffffffffffffffffffffee55ccffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffee66ddffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffff0000ffff0000ff0000ff0000ffff0000
-ff0000ffffffffffffffffffffffff77bbffddffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee99777766
-667777aaeeffffffffffffffffffffff9fffee66eeffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffff0000ddff0000ff0000ff0000ffff0000
-ee0033ffffffffffffffffffffffffff77730abfffffffffffffffffffdd997777777777
-77bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffee887777bbffffff
-ffffeeaa777799ffffffffffffffffaf083a55eeffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffff330099aa0000cc0000dd000055ff0000
-3311ccffffffffffffffffffffffffffbf0f0022ffffffffffffee886688ccffffffffff
-eeaa7777bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff9966ddffffffffffff
-ffffffffffffbb66bbffffffffffee2200005affffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffaf582a58ddffffffffffffffffffffffffffffff0000
-ffffffffffffffffffffffffffffffff3700000058ffffffee7777ddffffffffffffffff
-ffffffff9966bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffdd66bbffffffffffffffff
-ffffffffffffffff9966eeffffff5000001050ffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffaf00000accffffffffffffffffffffffffffffff0000
-ffffffffffffffffffffffffffffffffff85290008b3ffcc66ddffffffffffffffffffff
-ffffffffffff8877ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffcc66eeffffffffffffffffff
-ffffffffffffffffffdd66ccffaf060530ddffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff180028ffffffffffffffffffffffffffffff550000
-ffffffffffffffffffffffffffffffffffffff641a0b8f77ffffffffffffffffffffffff
-ffffffffffffffcc55eeffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffbb66ffffffffffffffffffffff
-ffffffffffffffffffffee77bf0b1aafffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff380040ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffee3242ffffffffffffffffffffffffff
-ffffffffffffffffee66eeffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffdd66ffffffffffffffffffffffff
-ffffffffffffffffffffffee5366ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff500064ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffcc77ffffffffffffffffffffffffffff
-ffffffffffffffffffee55ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffee66eeffffffffffffffffffffffff
-ffffffffffffffffffffffffee66ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffaf00ccffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffdd66ffffffffffffffffffffffffffffff
-ffffffffffffffffffffcc77ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff77ddffffffffffffffffffffffffff
-ffffffffffffffffffffffffffaaaaffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff04ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffff
-ffffffffffffffffffffff77ddffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffee77ffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffdd887777777741667777aaeeffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffcc77ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffee55ffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ddffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffbb99ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffff996688ddffffffffffffffffaa7777ddffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff99ccffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffbb55bbffffffffffffffffffffffffffee7777eeffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffee77ffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffee77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffcc99ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffffffff
-ffffffffff7788ffffffffffffffffffffffffffffffffffdd55ccffffffffffffffffff
-ffffffffffffffffffffffffffffffffff99ccffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffcc99ffffffffffffffffffffffffffffffffffffff
-ffffffee66ccffffffffffffffffffffffffffffffffffffffff77aaffffffffffffffff
-ffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff99ccffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffffff66ccffffffffffffffffffffffffffffffffffffffffffff66ccffffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffbbbbffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffff77ccffffffffffffffffffffffffffffffffffffffffffffffff66ddffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffdd77ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffbb88ffffffffffffffffffffffffffffffffffffffffffffffffffee55ffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ff55ffffffffffffffffffffffffffffffffffffffffffffffffffffffbb99ffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-99bbffffffffffffffffffffffffffffffffffffffffffffffffffffffff66ffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffee77ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-66ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb99ffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffbbaaffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffdd88ffffffffffffffffffffffffffffffffffffdd
-88ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffffff
-ffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffaabbffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffaaaaffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff88ddffffffffffffffffffffffffffffffffffff88
-ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffffff
-ffffffffffffffffffffffffffffffffff88ddffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaabbffffff
-ffffffffffffffffffffffffffffffffffdd88ffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffdd88ffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbaaffffff
-ffffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffaaaaffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffbb0000ffffffffffffffffffffffffffffffff11
-22ffffffffffbb0000ffffffffffffffffffffffdd77ffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffaa99ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff55ffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff44
-77ffffffffffff0000ffffffffffffffffffffffff77eeffffffffffffffffffffffffff
-ffffffffffffffffffffffffffbb77ffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffff
-ffffffffffffffffffffff99bbffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-6600007711bb770088ffff77112299ffff0000dd8899600000660000ffcc222288ff5500
-00ff77112299ff0000dd8899eeffffffffffffff999477ffffffffffffffffffffffffff
-ffffffffffffffffffffffffee29bbffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffff
-ffffffffffffffffffffffffffffffffffffee5850ffffffffffffffffffffffffffffff
-ffffffffffffffffffffee5566eeffffffffffffffffffbb0000ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ff0011dd0011cc0011ff7700bb7711ffff0000ee77eeff0000ff0000ff2200ffbbffff00
-007700bb7711ff0000ee77eeffffffffffffff9999ffbb77ffffffffffffffffffffffff
-ffffffffffffffffffffffff77cc8877eeffffffffffffffffffffffffffffffffffff66
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd77ffffff
-ffffffffffffffffffffffffffffffffffbb66dd9999ffffffffffffffffffffffffffff
-ffffffffffffffffffff55eeee66eeffffffffffffffffff0000ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ff0000ff0000ff0000ff2200ffeeaaffff000077eeffff0000ff0000ff110055eeffff00
-002200ffeeaaff000077eeffffffffffffff9977ffffff8899ffffffffffffffffffffff
-ffffffffffffffffffffff77aaffffddbbffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbbffffff
-ffffffffffffffffffffffffffffffffff99ffffff77ccffffffffffffffffffffffffff
-ffffffffffffffffff77ccffffee44eeffffffffffffffff0000cc222288ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ff0000ff0000ff0000ff0000eeffffffff00001144ffff0000ff0000ffcc440033ffff00
-000000eeffffff00001144ffffffffffffcc66ffffffffff8877ffffffffffffffffffff
-ffffffffffffffffffff77aaffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88ddffffff
-ffffffffffffffffffffffffffffffffffffffffffff7799ffffffffffffffffffffffff
-ffffffffffffffee55ccffffffffcc66ffffffffffffffff00002200ffbbffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ff0000ff0000ff0000ff440066ffeeeeff0000880077ff0000ff0000ff77ddcc00ffff00
-00440066ffeeee0000880077ffffffffcc77ffffffffffffffbb77eeffffffffffffffff
-ffffffffffffffffdd55ccffffffffffffffffffffffffffffffffffffffffffffffffaa
-aaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff66ffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff9977eeffffffffffffffffffff
-ffffffffffffcc66eeffffffffffffcc77ffffffffffffff0000110055eeffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-aa0000cc0000dd000055ee55001177ffbb0011aa0000bb55004400229955111166ffaa00
-00ee55001177bb0011aa0000bbffffcc77ffffffffffffffffffdd7777eeffffffffffff
-ffffffffffffee7777eeffffffffffffffff66bbffffffffffffffffffffffffffffffee
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee77ffffffff
-ffffffffffffffffffffffffffff99aaffffffffffffffffcc6699ffffffffffffffffff
-ffffffffdd7777ffffffffffffffffffcc77ffffffffffff0000cc440033ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffcc77ffffffffffffffffffffffffcc7777aaffffffff
-ffffffeeaa7777ddffffffffffffffffffffff8877eeffffffffffffffffffffffffffff
-77eeffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ddffffffff
-ffffffffffffffffffffffffff9999ffffffffffffffffffffffbb7777ccffffffffffff
-ffee997777eeffffffffffffffffffffffcc77ffffffffff000077ddcc00ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffcc66ffffffffffffffffffffffffffffffffaa77777777
-30777777bbffffffffffffffffffffffffffffffddbbffffffffffffffffffffffffffff
-dd77ffffffffffffffffffffffffffffffffffffffffffffffffffffffee77ffffffffff
-ffffffffffffffffffffffffffaaffffffffffffffffffffffffffffee99667777663077
-6677ccffffffffffffffffffffffffffffffcc66ffffffaa000055111166ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffee44eeffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ff77ddffffffffffffffffffffffffffffffffffffffffffffffffffff77ddffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ff
-ffffffffffffffffffffffffffffffffffffff9977ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffee66eeffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffff66eeffffffffffffffffffffff
-ffee55ffffffffffffffffffffffffffffffffffffffffffffffffffaa88ffffffffffff
-ffffffffffffffffff99aaffffffffffffffffffffffffffffffffffffffffffffff77ff
-ffffffffffffffffffffffffffffffffffffffff9999ffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffee66eeffffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffee66eeffffffffffffffffffff
-ffffcc77ffffffffffffffffffffffffffffffffffffffffffffffcc77ffffffffffffff
-ffffffffffffffff9999ffffffffffffffffffffffffffffffffffffffffffffffff77ff
-ffffffffffffffffffffffffffffffffffffffffff9999ffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffee66eeffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffffeebbffffffffffffffffffff
-ffffffaa66ffffffffffffffffffffffffffffffffffffffffffcc66eeffffffffffffff
-ffffffffffffffffaaffffffffffffffffffffffffffffffffffffffffffffffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffff9999ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffee66eeffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffbb0000ffffffffffffffffffffffffffffffffffffffffbb0000ffffffffffffff
-ffffffffcc66eeffffffffffffffffffffffffffffffffffffaa77eeffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1122ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffff9999ffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffff44ccffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffff0000ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
-ffffffffffdd55bbffffffffffffffffffffffffffffffee7788ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4477ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffff66aaffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffff77ccffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffff0000dd8899df550022aaff6600007711eeff770044eeff0000bf222288ffffff
-ffffffffffffff9966bbffffffffffffffffffffffee7777ddffffffffffffffffffffff
-ffffffff99aaffffffffffffffffffffffffffffffff550011cc2255550000ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffffff77ccffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffff7bee77ccffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffff0000ee77ee8822ff8811ffff00007700cc9900ee7755ff00000e00ffbbffffff
-ffffffffffffffffff997777aabbffffffddbb886677ddffffffffffffffffffffffffff
-ffffff9999ffffffffffffffffffffffffffffffffffee1144ff99ddff0000ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffff77cc88bfffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffddbbddffffffffffffffff
-ffffffbf100da4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffff000077eeffcc77ff8800ffff0000ffffff6600000000ff0000100055eeffffff
-ffffffffffffffffffffffffbbaa77777777bbddffffffffffffffffffffffffffffffff
-ffffffaaffffffffffffffffffffffffffffffffffffff6600dd88ffff0000ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff3a0930ffffffffffff
-ffffffffffffbbbbeeffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffee9977667777bb8877777788ddffffff
-ffffff3000000eddffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffff00001144ffee66aa0000ffff0000ffffff4400ffffffff0000cc440033ffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffdd0044bbffff0000ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffff880a000085ffffffffff
-ffcc7777777799aa77777766aaffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffdd7777ccffffffffffffffffffcc8866ddff
-ffff9400001058ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffff00008800773300ff0000ffff0000ffffff880099ffccff000077ddcc0066eeff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee
-77aaffffffffffffffffffffffffffffffffffffffffffff4422ffffff0000ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffdd280c0016eeffffff99
-6699eeffffffffffffffffffaa7777eeffffffffffffffff
-ffffffffffffffffffffffffffffffffee7777eeffffffffffffffffffffffffffee7777
-eeff150030ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffbb0011aa0000320044660099bb0000ddffffee66001199aa000055111166ee66ee
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb66
-ddffffffffffffffffffffffffffffffffffffffffffffffaa99ffffaa0000ffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffff941a004bffcc66bb
-ffffffffffffffffffffffffffffcc66aaffffffffffffff
-ffffffffffffffffffffffffffffffee66ccffffffffffffffffffffffffffffffffffee
-552b0994ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeebb
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff99ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee4b037577ffff
-ffffffffffffffffffffffffffffffff9977ffffffffffff
-ffffffffffffffffffffffffffffcc66eeffffffffffffffffffffffffffffffffffffff
-ff2b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccbb
-58ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbb58cc
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5448ffffff
-ffffffffffffffffffffffffffffffffffcc55eeffffffff
-ffffffffffffffffffffffffffdd66ffffffffffffffffffffffffffffffffffffffffff
-ffff77ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2200
-0030ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1100003e
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88aaffffffff
-ffffffffffffffffffffffffffffffffffffdd66ffffffff
-ffffffffffffffffffffffffee66eeffffffffffffffffffffffffffffffffffffffffff
-ffffff55eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4800
-0050ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff38000094
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa88ffffffffff
-ffffffffffffffffffffffffffffffffffffffcc77ffffff
-ffffffffffffffffffffffff77ccffffffffffffffffffffffffffffffffffffffffffff
-ffffffee55ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8500
-00afffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff500008ee
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffee66ffffffffffff
-ffffffffffffffffffffffffffffffffffffffff88bbffff
-ffffffffffffffffffffffdd77ffffffffffffffffffffffffffffffffffffffffffffff
-ffffffff99bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd0a
-0cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf0017ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffff77ddffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff66ffff
-ffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff28
-1bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1822ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffdd77ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffbb99ff
-ffffffffffffffffffffdd77ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff99ccffffffffffffffffffffffffffffffffffffffffffffffffffffffff40
-2affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2046ff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff77eeffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff66ff
-ffffffffffffffffffff99ccffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffee77ffffffffffffffffffffffffffffffffffffffffffffffffffffcc7746
-3c77777788ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbb77777777335288
-ddffffffffffffffffffffffffffffffffffffffffffffffffffff77ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff77dd
-ffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffbb777799ddff
-ffffffffcc887777ddffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffbb777799ddffffffffffcc
-886677ddffffffffffffffffffffffffffffffffffffffffffffdd88ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffcc99
-ffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff77ffffffffffffffffffffffffffffffffffffffffffdd5599ffffffffff
-ffffffffffffffee7777eeffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffcc6699ffffffffffffffffffff
-ffffee7777eeffffffffffffffffffffffffffffffffffffffff88ccffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffaabbffffffffffffffffffffffffffffffffffffff7777eeffffffffffff
-ffffffffffffffffffdd66bbffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff7777eeffffffffffffffffffffff
-ffffffffdd66ccffffffffffffffffffffffffffffffffffffff77ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffcc99ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffbbbbffffffffffffffffffffffffffffffffffee77bbffffffffffffffff
-ffffffffffffffffffffff7799ffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffee66ccffffffffffffffffffffffffff
-ffffffffffff7799ffffffffffffffffffffffffffffffffffff77ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffbbbbffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffbbaaffffffffffffffffffffffffffffffffff55ccffffffffffffffffff
-ffffffffffffffffffffffff9977ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffee66ddffffffffffffffffffffffffffff
-ffffffffffffff9988ffffffffffffffffffffffffffffffffff77ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffbbaaffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffbbbbffffffffffffffffffffffffffffffff77ccffffffffffffffffffff
-ffffffffffffffffffffffffff9999ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff77ccffffffffffffffffffffffffffffff
-ffffffffffffffff88aaffffffffffffffffffffffffffffffff66ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffaabbffffffffffffffffffffffffffffff88aaffffffffffffffffffffff
-ffffffffffffffffffffffffffff77ccffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff77bbffffffffffffffffffffffffffffffff
-ffffffffffffffffff77ccffffffffffffffffffffffffffffff77ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff77eeffffffffffffffffffffffffffffee77ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffdd77ffffffffffffffffffffffffffffffffff
-ffffffffffffffffffee66ffffffffffffffffffffffffffffff77ddffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77
-ffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff77ffffffffffffffffffffffffffffff77ddffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff99bbffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffff
-ffffffffffffffffffff99bbffffffffffffffffffffffffffffcc99ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffdd88
-ffffffffffffffffffff88ddffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff66ffffffffffffffffffffffffffffdd77ffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffdd77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffff66ffffffffffffffffffffffffffffff77ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff88dd
-ffffffffffffffffffffdd88ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffaaaaffffffffffffffffffffffffffff88ddffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff88ccffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff88ddffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffff88ddffffffffffffffffffffffffffff77ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff66ff
-ffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff66ffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffdd88ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffdd88ffffffffffffffffffffffffffffbb88ffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffcc77ff
-ffffffffffffffffffffffbb99ffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffbb99ffffffffffffffffffffffffffffee77ffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffdd88ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77ffffffffffffffffffffffffffffff66eeffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff66ffff
-ffffffffffffffffffffffff66eeffffffffffffffffffffffffffffffffffffffffffff
-ffffffff55ffffffffffffffffffffffffffffffbbbbffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffbbbbffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77ffffffffffffffffffffffffffffffdd77ffffffffffff
-ffffffffffffffffffffffffffffffffffffffffbb99ffff
-ffffffffffffffffffffffffee55ffffffffffffffffffffffffffffffffffffffffffff
-ffffff77ccffffffffffffffffffffffffffffffbbbbffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffaabbffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77ffffffffffffffffffffffffffffffff88aaffffffffff
-ffffffffffffffffffffffffffffffffffffffdd66ffffff
-ffffffffffffffffffffffffffcc77ffffffffffffffffffffffffffffffffffffffffff
-ffff88aaffffffffffffffffffffffffffffffff88ddffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff88ddffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffff77ccffffffff
-ffffffffffffffffffffffffffffffffffffee66eeffffff
-ffffffffffffffffffffffffffff9977ffffffffffffffffffffffffffffffffffffffff
-ff9999ffffffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff88ccffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffff55ccffffff
-ffffffffffffffffffffffffffffffffffee55ddffffffff
-ffffffffffffffffffffffffffffffcc66eeffffffffffffffffffffffffffffffffffff
-7799ffffffffffffffffffffffffffffffffffffbbbbffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff99bbffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff7799ffff
-ffffffffffffffffffffffffffffffffcc55eeffffffffff
-ffffffffffffffffffffffffffffffffdd6699ffffffffffffffffffffffffffffffbb66
-ccffffffffffffffffffffffffffffffffffffffbbbbffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffbbbbffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffff9977dd
-ffffffffffffffffffffffffffffee7777ffffffffffffff
-ffffffffffffffffffffffffffffffffffffbb66aaffffffffffffffffffffffaa6699ff
-ffffffffffffffffffffffffffffffffffffffffdd88ffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffcc99ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffee77
-77ccffffffffffffffffffffdd8866ddffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffaa777777bbbbccbbbb887777aaffffff
-ffffffffffffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffee77ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffee77ffffffffffffffffffffffffffffffffffffffffffffff
-dd99777799bbbbccbbaa776688ccffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffddbbbb77bbbbddffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff99ccffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77eeffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffff99ccffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffbbbb9988bbbbeeffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffcc99ffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffcc99ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff66eeffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffbb88ffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffbb99ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffcc77ffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffbb88ffffffffffffffffffffffffffffffffff
-ffffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff77ccffffffffffffffffffffff
-ffffffffffffffffffffffffffff99aaffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff77ddffffffffffffffffffffffffffffffff
-ffffffffffffffffff88aaffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffee66eeffffffffffffffffffff
-ffffffffffffffffffffffffffcc77ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffee66eeffffffffffffffffffffffffffffff
-ffffffffffffffffbb77ffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffee55eeffffffffffffffffff
-ffffffffffffffffffffffffcc66ffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffdd66ffffffffffffffffffffffffffffff
-ffffffffffffffcc77ffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffcc66eeffffffffffffffff
-ffffffffffffffffffffffbb77eeffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffcc55eeffffffffffffffffffffffffff
-ffffffffffffaa77ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffee55bbffffffffffffff
-ffffffffffffffffffff8877ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffee55bbffffffffffffffffffffffff
-ffffffffff8888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffff9966ddffffffffff
-ffffffffffffffffaa66bbffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffff9966ddffffffffffffffffffff
-ffffff9966bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee777788ddffff
-ffffffffffcc7766aaffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffee777799ddffffffffffffff
-cc7777bbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd887777
-667777777799eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffcc8866776677777777
-99eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffffffff
-
-showpage
-
-% stop using temporary dictionary
-end
-
-% restore original state
-origstate restore
-
-%%Trailer
-cleartomark
-countdictstack exch sub { end } repeat
-restore
-%%EOF
diff --git a/en_US.ISO8859-1/books/design-44bsd/freebsd.dsl b/en_US.ISO8859-1/books/design-44bsd/freebsd.dsl
deleted file mode 100644
index edb5dd3c4b..0000000000
--- a/en_US.ISO8859-1/books/design-44bsd/freebsd.dsl
+++ /dev/null
@@ -1,22 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/books/porters-handbook/freebsd.dsl,v 1.2 2000/06/08 02:01:00 jim Exp $ -->
-
-<!-- Local DSSSL file for the Porter's Handbook. This is so we can include
- a link to the -ports mailing list at the bottom of the HTML files,
- rather than the -questions mailing list. -->
-
-<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
-<!ENTITY freebsd.dsl SYSTEM "../../share/sgml/freebsd.dsl" CDATA DSSSL>
-]>
-
-<style-sheet>
- <style-specification use="docbook">
- <style-specification-body>
-
- ;; Keep the legalnotice together with the rest of the text
- (define %generate-legalnotice-link%
- #f)
- </style-specification-body>
- </style-specification>
-
- <external-specification id="docbook" document="freebsd.dsl">
-</style-sheet>
diff --git a/en_US.ISO8859-1/books/developers-handbook/Makefile b/en_US.ISO8859-1/books/developers-handbook/Makefile
deleted file mode 100644
index d9d7ad1454..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# $FreeBSD$
-#
-# Build the FreeBSD Developers' Handbook.
-#
-
-MAINTAINER=asmodai@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-
-# Entities
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/developers-handbook/book.sgml b/en_US.ISO8859-1/books/developers-handbook/book.sgml
deleted file mode 100644
index 12c46cae04..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/book.sgml
+++ /dev/null
@@ -1,508 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/book.sgml,v 1.14 2001/04/13 09:05:10 murray Exp $
--->
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN">
-%bookinfo;
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % authors SYSTEM "../handbook/authors.ent"> %authors;
-]>
-
-<book>
- <bookinfo>
- <title>FreeBSD Developers' Handbook</title>
-
- <corpauthor>The FreeBSD Documentation Project</corpauthor>
-
- <pubdate>August 2000</pubdate>
-
- <copyright>
- <year>2000</year>
- <year>2001</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- &bookinfo.legalnotice;
-
- <abstract>
- <para>Welcome to the Developers' Handbook.</para>
- </abstract>
- </bookinfo>
-
- <part id="introduction">
- <title>Introduction</title>
-
- <chapter id="developmentplatform">
- <title>Developing on FreeBSD</title>
-
- <para>This will need to discuss FreeBSD as a development
- platform, the vision of BSD, architectural overview, layout of
- /usr/src, history, etc.</para>
-
- <para>Thank you for considering FreeBSD as your development
- platform! We hope it will not let you down.</para>
- </chapter>
-
- <chapter id="bsdvision">
- <title>The BSD Vision</title>
-
- <para></para>
- </chapter>
-
- <chapter id="archoverview">
- <title>Architectural Overview</title>
-
- <para></para>
- </chapter>
-
- <chapter id="sourcelayout">
- <title>The Layout of /usr/src</title>
-
- <para>The complete source code to FreeBSD is available from our
- public CVS repository. The source code is normally installed in
- <filename class=directory>/usr/src</filename> which contains the
- following subdirectories.</para>
-
- <para>
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Directory</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename class=directory>bin/</filename></entry>
- <entry>Source for files in
- <filename>/bin</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>contrib/</filename></entry>
- <entry>Source for files from contributed software.</entry>
- </row>
-
- <row>
- <entry><filename class=directory>crypto/</filename></entry>
- <entry>DES source</entry>
- </row>
-
- <row>
- <entry><filename class=directory>etc/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/etc</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>games/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/games</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>gnu/</filename></entry>
- <entry>Utilities covered by the GNU Public License</entry>
- </row>
-
- <row>
- <entry><filename class=directory>include/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/include</filename></entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>kerberosIV/</filename></entry>
- <entry>Source for Kerbereros version IV</entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>kerberos5/</filename></entry>
- <entry>Source for Kerbereros version 5</entry>
- </row>
-
- <row>
- <entry><filename class=directory>lib/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/lib</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>libexec/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/libexec</filename></entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>release/</filename></entry>
- <entry>Files required to produce a FreeBSD release</entry>
- </row>
-
- <row>
- <entry><filename class=directory>sbin/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/sbin</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>secure/</filename></entry>
- <entry>FreeSec sources</entry>
- </row>
-
- <row>
- <entry><filename class=directory>share/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/sbin</filename></entry>
- </row>
-
- <row>
- <entry><filename class=directory>sys/</filename></entry>
- <entry>Kernel source files</entry>
- </row>
-
- <row>
- <entry><filename class=directory>tools/</filename></entry>
- <entry>Tools used for maintenance and testing of
- FreeBSD</entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>usr.bin/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/bin</filename></entry>
- </row>
-
- <row>
- <entry><filename
- class=directory>usr.sbin/</filename></entry>
- <entry>Source for files in <filename
- class=directory>/usr/sbin</filename></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- </para>
-
- </chapter>
- </part>
-
- <part id="Basics">
- <title>Basics</title>
-
- &chap.tools;
- &chap.secure;
-
- </part>
-
- <part id="kernel">
- <title>Kernel</title>
-
- <chapter id="kernelhistory">
- <title>History of the Unix Kernel</title>
-
- <para>Some history of the Unix/BSD kernel, system calls, how do
- processes work, blocking, scheduling, threads (kernel),
- context switching, signals, interrupts, modules, etc.</para>
-
- <para></para>
- </chapter>
-
- &chap.locking;
-
- </part>
-
- <part id="memory">
- <title>Memory and Virtual Memory</title>
-
- <chapter id="virtualmemory">
- <title>Virtual Memory</title>
-
- <para>VM, paging, swapping, allocating memory, testing for
- memory leaks, mmap, vnodes, etc.</para>
-
- <para></para>
- </chapter>
- </part>
-
- <part id="iosystem">
- <title>I/O System</title>
-
- <chapter id="ufs">
- <title>UFS</title>
-
- <para>UFS, FFS, Ext2FS, JFS, inodes, buffer cache, labeling,
- locking, metadata, soft-updates, LFS, portalfs, procfs,
- vnodes, memory sharing, memory objects, TLBs, caching</para>
-
- </chapter>
- </part>
-
- <part id="ipc">
- <title>Interprocess Communication</title>
-
- <chapter id="signals">
- <title>Signals</title>
-
- <para>Signals, pipes, semaphores, message queues, shared memory,
- ports, sockets, doors</para>
-
- </chapter>
- </part>
-
- <part id="networking">
- <title>Networking</title>
-
- <chapter id="sockets">
- <title>Sockets</title>
-
- <para>Sockets, bpf, IP, TCP, UDP, ICMP, OSI, bridging,
- firewalling, NAT, switching, etc</para>
-
- </chapter>
- </part>
-
- <part id="networkfs">
- <title>Network Filesystems</title>
-
- <chapter id="afs">
- <title>AFS</title>
-
- <para>AFS, NFS, SANs etc]</para>
-
- </chapter>
- </part>
-
- <part id="terminal">
- <title>Terminal Handling</title>
-
- <chapter id="syscons">
- <title>Syscons</title>
-
- <para>Syscons, tty, PCVT, serial console, screen savers,
- etc</para>
-
- </chapter>
- </part>
-
- <part id="sound">
- <title>Sound</title>
-
- <chapter id="oss">
- <title>OSS</title>
-
- <para>OSS, waveforms, etc</para>
-
- </chapter>
- </part>
-
- <part id="devicedrivers">
- <title>Device Drivers</title>
-
- &chap.driverbasics;
- &chap.pci;
- &chap.scsi;
- &chap.usb;
-
- <chapter id="newbus">
- <title>NewBus</title>
-
- <para>This chapter will talk about the FreeBSD NewBus
- architecture.</para>
- </chapter>
-
- </part>
-
- <part id="architectures">
- <title>Architectures</title>
-
- <chapter id="ia32">
- <title>IA-32</title>
-
- <para>Talk about the architectural specifics of FreeBSD/x86.</para>
-
- </chapter>
-
- <chapter id="alpha">
- <title>Alpha</title>
-
- <para>Talk about the architectural specifics of
- FreeBSD/alpha.</para>
-
- <para>Explanation of allignment errors, how to fix, how to
- ignore.</para>
-
- <para>Example assembly language code for FreeBSD/alpha.</para>
- </chapter>
-
- <chapter id="ia64">
- <title>IA-64</title>
-
- <para>Talk about the architectural specifics of
- FreeBSD/ia64.</para>
-
- </chapter>
- </part>
-
- <part id="debuggingpart">
- <title>Debugging</title>
-
- <chapter id="truss">
- <title>Truss</title>
-
- <para>various descriptions on how to debug certain aspects of
- the system using truss, ktrace, gdb, kgdb, etc</para>
-
- </chapter>
- </part>
-
- <part id="compatibility">
- <title>Compatibility Layers</title>
-
- <chapter id="linux">
- <title>Linux</title>
-
- <para>Linux, SVR4, etc</para>
-
- </chapter>
- </part>
-
- <part id="appendices">
- <title>Appendices</title>
-
- <bibliography>
-
- <biblioentry id="COD" xreflabel="1">
- <authorgroup>
- <author>
- <firstname>Dave</firstname>
- <othername role="MI">A</othername>
- <surname>Patterson</surname>
- </author>
- <author>
- <firstname>John</firstname>
- <othername role="MI">L</othername>
- <surname>Hennessy</surname>
- </author>
- </authorgroup>
- <copyright><year>1998</year><holder>Morgan Kaufmann Publishers,
- Inc.</holder></copyright>
- <isbn>1-55860-428-6</isbn>
- <publisher>
- <publishername>Morgan Kaufmann Publishers, Inc.</publishername>
- </publisher>
- <title>Computer Organization and Design</title>
- <subtitle>The Hardware / Software Interface</subtitle>
- <pagenums>1-2</pagenums>
- </biblioentry>
-
- <biblioentry xreflabel="2">
- <authorgroup>
- <author>
- <firstname>W.</firstname>
- <othername role="Middle">Richard</othername>
- <surname>Stevens</surname>
- </author>
- </authorgroup>
- <copyright><year>1993</year><holder>Addison Wesley Longman,
- Inc.</holder></copyright>
- <isbn>0-201-56317-7</isbn>
- <publisher>
- <publishername>Addison Wesley Longman, Inc.</publishername>
- </publisher>
- <title>Advanced Programming in the Unix Environment</title>
- <pagenums>1-2</pagenums>
- </biblioentry>
-
- <biblioentry xreflabel="3">
- <authorgroup>
- <author>
- <firstname>Marshall</firstname>
- <othername role="Middle">Kirk</othername>
- <surname>McKusick</surname>
- </author>
- <author>
- <firstname>Keith</firstname>
- <surname>Bostic</surname>
- </author>
- <author>
- <firstname>Michael</firstname>
- <othername role="MI">J</othername>
- <surname>Karels</surname>
- </author>
- <author>
- <firstname>John</firstname>
- <othername role="MI">S</othername>
- <surname>Quarterman</surname>
- </author>
- </authorgroup>
- <copyright><year>1996</year><holder>Addison-Wesley Publishing Company,
- Inc.</holder></copyright>
- <isbn>0-201-54979-4</isbn>
- <publisher>
- <publishername>Addison-Wesley Publishing Company, Inc.</publishername>
- </publisher>
- <title>The Design and Implementation of the 4.4 BSD Operating System</title>
- <pagenums>1-2</pagenums>
- </biblioentry>
-
- <biblioentry id="Phrack" xreflabel="4">
- <authorgroup>
- <author>
- <firstname>Aleph</firstname>
- <surname>One</surname>
- </author>
- </authorgroup>
- <title>Phrack 49; "Smashing the Stack for Fun and Profit"</title>
- </biblioentry>
-
- <biblioentry id="StackGuard" xreflabel="5">
- <authorgroup>
- <author>
- <firstname>Chrispin</firstname>
- <surname>Cowan</surname>
- </author>
- <author>
- <firstname>Calton</firstname>
- <surname>Pu</surname>
- </author>
- <author>
- <firstname>Dave</firstname>
- <surname>Maier</surname>
- </author>
- </authorgroup>
- <title>StackGuard; Automatic Adaptive Detection and Prevention of
- Buffer-Overflow Attacks</title>
- </biblioentry>
-
- <biblioentry id="OpenBSD" xreflabel="6">
- <authorgroup>
- <author>
- <firstname>Todd</firstname>
- <surname>Miller</surname>
- </author>
- <author>
- <firstname>Theo</firstname>
- <surname>de Raadt</surname>
- </author>
- </authorgroup>
- <title>strlcpy and strlcat -- consistent, safe string copy and
- concatenation.</title>
- </biblioentry>
-
- </bibliography>
-
- </part>
-
-</book>
diff --git a/en_US.ISO8859-1/books/developers-handbook/chapters.ent b/en_US.ISO8859-1/books/developers-handbook/chapters.ent
deleted file mode 100644
index a8d98e2eff..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/chapters.ent
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
- Creates entities for each chapter in the FreeBSD Developer's
- Handbook. Each entity is named chap.foo, where foo is the value
- of the id attribute on that chapter, and corresponds to the name of
- the directory in which that chapter's .sgml file is stored.
-
- Chapters should be listed in the order in which they are referenced.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/chapters.ent,v 1.3 2001/03/29 06:14:32 murray Exp $
--->
-
-<!-- Part one -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part two -->
-<!ENTITY chap.tools SYSTEM "tools/chapter.sgml">
-<!ENTITY chap.secure SYSTEM "secure/chapter.sgml">
-
-<!-- Part three -->
-<!-- No significant material yet, still in book.sgml -->
-<!ENTITY chap.locking SYSTEM "locking/chapter.sgml">
-
-<!-- Part four -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part five -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part six -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part seven -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part eight -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part nine -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part ten -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part eleven -->
-<!ENTITY chap.driverbasics SYSTEM "driverbasics/chapter.sgml">
-<!ENTITY chap.pci SYSTEM "pci/chapter.sgml">
-<!ENTITY chap.scsi SYSTEM "scsi/chapter.sgml">
-<!ENTITY chap.usb SYSTEM "usb/chapter.sgml">
-
-<!-- Part twelve -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part thirteen -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part fourteen -->
-<!-- No significant material yet, still in book.sgml -->
-
-<!-- Part fifteen (appendices) -->
-<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml">
diff --git a/en_US.ISO8859-1/books/developers-handbook/driverbasics/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/driverbasics/chapter.sgml
deleted file mode 100644
index 52d27534ad..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/driverbasics/chapter.sgml
+++ /dev/null
@@ -1,379 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/driverbasics/chapter.sgml,v 1.4 2001/04/09 00:33:42 dd Exp $
--->
-
-<chapter id="driverbasics">
- <title>Writing FreeBSD Device Drivers</title>
-
- <para>This chapter was written by &.murray with selections
- from a variety of sources including the intro(4) man page by Joerg
- Wunsch.</para>
-
- <sect1>
- <title>Introduction</title>
- <para>This chapter provides a brief introduction to writing device
- drivers for FreeBSD. A device in this context is a term used
- mostly for hardware-related stuff that belongs to the system,
- like disks, printers, or a graphics display with its keyboard.
- A device driver is the software component of the operating
- system that controls a specific device. There are also
- so-called pseudo-devices where a device driver emulates the
- behaviour of a device in software without any particular
- underlying hardware. Device drivers can be compiled into the
- system statically or loaded on demand through the dynamic kernel
- linker facility `kld'.</para>
-
- <para>Most devices in a Unix-like operating system are accessed
- through device-nodes, sometimes also called special files.
- These files are usually located under the directory
- <filename>/dev</filename> in the file system hierarchy. Until
- devfs is fully integrated into FreeBSD, each device node must be
- created statically and independent of the existence of the
- associated device driver. Most device nodes on the system are
- created by running <command>MAKEDEV</command>.</para>
-
- <para>Device drivers can roughly be broken down into two
- categories; character and network device drivers.</para>
-
- </sect1>
-
- <sect1>
- <title>Dynamic Kernel Linker Facility - KLD</title>
-
- <para>The kld interface allows system administrators to
- dynamically add and remove functionality from a running system.
- This allows device driver writers to load their new changes into
- a running kernel without constantly rebooting to test
- changes.</para>
-
- <para>The kld interface is used through the following
- administrator commands :
-
- <itemizedlist>
- <listitem><simpara><command>kldload</command> - loads a new kernel
- module</simpara></listitem>
- <listitem><simpara><command>kldunload</command> - unloads a kernel
- module</simpara></listitem>
- <listitem><simpara><command>kldstat</command> - lists the currently loadded
- modules</simpara></listitem>
- </itemizedlist>
- </para>
-
- <para>Skeleton Layout of a kernel module</para>
-
-<programlisting>/*
- * KLD Skeleton
- * Inspired by Andrew Reiter's Daemonnews article
- */
-
-#include &lt;sys/types.h&gt;
-#include &lt;sys/module.h&gt;
-#include &lt;sys/systm.h&gt; /* uprintf */
-#include &lt;sys/errno.h&gt;
-#include &lt;sys/param.h&gt; /* defines used in kernel.h */
-#include &lt;sys/kernel.h&gt; /* types used in module initialization */
-
-/*
- * Load handler that deals with the loading and unloading of a KLD.
- */
-
-static int
-skel_loader(struct module *m, int what, void *arg)
-{
- int err = 0;
-
- switch (what) {
- case MOD_LOAD: /* kldload */
- uprintf("Skeleton KLD loaded.\n");
- break;
- case MOD_UNLOAD:
- uprintf("Skeleton KLD unloaded.\n");
- break;
- default:
- err = EINVAL;
- break;
- }
- return(err);
-}
-
-/* Declare this module to the rest of the kernel */
-
-DECLARE_MODULE(skeleton, skel_loader, SI_SUB_KLD, SI_ORDER_ANY);</programlisting>
-
-
- <sect2>
- <title>Makefile</title>
-
- <para>FreeBSD provides a makefile include that you can use to
- quickly compile your kernel addition.</para>
-
- <programlisting>SRCS=skeleton.c
-KMOD=skeleton
-
-.include &lt;bsd.kmod.mk&gt;</programlisting>
-
- <para>Simply running <command>make</command> with this makefile
- will create a file <filename>skeleton.ko</filename> that can
- be loaded into your system by typing :
-<screen> &prompt.root
- kldload -v ./skeleton.ko
-</screen>
- </para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Accessing a device driver</title>
-
- <para>Unix provides a common set of system calls for user
- applications to use. The upper layers of the kernel dispatch
- these calls to the corresponding device driver when a user
- accesses a device node. The <command>/dev/MAKEDEV</command>
- script makes most of the device nodes for your system but if you
- are doing your own driver development it may be necessary to
- create your own device nodes with <command>mknod</command>
- </para>
-
- <sect2>
- <title>Creating static device nodes</title>
-
- <para>The <command>mknod</command> command requires four
- arguments to create a device node. You must specify the name
- of this device node, the type of device, the major number of
- the device, and the minor number of the device.</para>
- </sect2>
-
- <sect2>
- <title>Dynamic device nodes</title>
-
- <para>The device filesystem, or devfs, provides access to the
- kernel's device namespace in the global filesystem namespace.
- This eliminates the problems of potentially having a device
- driver without a static device node, or a device node without
- an installed device driver. Devfs is still a work in
- progress, but it is already working quite nice.</para>
- </sect2>
-
- </sect1>
-
- <sect1>
- <title>Character Devices</title>
-
- <para>A character device driver is one that transfers data
- directly to and from a user process. This is the most common
- type of device driver and there are plenty of simple examples in
- the source tree.</para>
-
- <para>This simple example pseudo-device remembers whatever values
- you write to it and can then supply them back to you when you
- read from it.</para>
-
-<programlisting>/*
- * Simple `echo' pseudo-device KLD
- *
- * Murray Stokely
- */
-
-#define MIN(a,b) (((a) < (b)) ? (a) : (b))
-
-#include &lt;sys/types.h&gt;
-#include &lt;sys/module.h&gt;
-#include &lt;sys/systm.h&gt; /* uprintf */
-#include &lt;sys/errno.h&gt;
-#include &lt;sys/param.h&gt; /* defines used in kernel.h */
-#include &lt;sys/kernel.h&gt; /* types used in module initialization */
-#include &lt;sys/conf.h&gt; /* cdevsw struct */
-#include &lt;sys/uio.h&gt; /* uio struct */
-#include &lt;sys/malloc.h&gt;
-
-#define BUFFERSIZE 256
-
-/* Function prototypes */
-d_open_t echo_open;
-d_close_t echo_close;
-d_read_t echo_read;
-d_write_t echo_write;
-
-/* Character device entry points */
-static struct cdevsw echo_cdevsw = {
- echo_open,
- echo_close,
- echo_read,
- echo_write,
- noioctl,
- nopoll,
- nommap,
- nostrategy,
- "echo",
- 33, /* reserved for lkms - /usr/src/sys/conf/majors */
- nodump,
- nopsize,
- D_TTY,
- -1
-};
-
-typedef struct s_echo {
- char msg[BUFFERSIZE];
- int len;
-} t_echo;
-
-/* vars */
-static dev_t sdev;
-static int len;
-static int count;
-static t_echo *echomsg;
-
-MALLOC_DECLARE(M_ECHOBUF);
-MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module");
-
-/*
- * This function acts is called by the kld[un]load(2) system calls to
- * determine what actions to take when a module is loaded or unloaded.
- */
-
-static int
-echo_loader(struct module *m, int what, void *arg)
-{
- int err = 0;
-
- switch (what) {
- case MOD_LOAD: /* kldload */
- sdev = make_dev(<literal>&</literal>echo_cdevsw,
- 0,
- UID_ROOT,
- GID_WHEEL,
- 0600,
- "echo");
- /* kmalloc memory for use by this driver */
- /* malloc(256,M_ECHOBUF,M_WAITOK); */
- MALLOC(echomsg, t_echo *, sizeof(t_echo), M_ECHOBUF, M_WAITOK);
- printf("Echo device loaded.\n");
- break;
- case MOD_UNLOAD:
- destroy_dev(sdev);
- FREE(echomsg,M_ECHOBUF);
- printf("Echo device unloaded.\n");
- break;
- default:
- err = EINVAL;
- break;
- }
- return(err);
-}
-
-int
-echo_open(dev_t dev, int oflags, int devtype, struct proc *p)
-{
- int err = 0;
-
- uprintf("Opened device \"echo\" successfully.\n");
- return(err);
-}
-
-int
-echo_close(dev_t dev, int fflag, int devtype, struct proc *p)
-{
- uprintf("Closing device \"echo.\"\n");
- return(0);
-}
-
-/*
- * The read function just takes the buf that was saved via
- * echo_write() and returns it to userland for accessing.
- * uio(9)
- */
-
-int
-echo_read(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
- int amt;
-
- /* How big is this read operation? Either as big as the user wants,
- or as big as the remaining data */
- amt = MIN(uio->uio_resid, (echomsg->len - uio->uio_offset > 0) ? echomsg->len - uio->uio_offset : 0);
- if ((err = uiomove(echomsg->msg + uio->uio_offset,amt,uio)) != 0) {
- uprintf("uiomove failed!\n");
- }
-
- return err;
-}
-
-/*
- * echo_write takes in a character string and saves it
- * to buf for later accessing.
- */
-
-int
-echo_write(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
-
- /* Copy the string in from user memory to kernel memory */
- err = copyin(uio->uio_iov->iov_base, echomsg->msg, MIN(uio->uio_iov->iov_len,BUFFERSIZE));
-
- /* Now we need to null terminate */
- *(echomsg->msg + MIN(uio->uio_iov->iov_len,BUFFERSIZE)) = 0;
- /* Record the length */
- echomsg->len = MIN(uio->uio_iov->iov_len,BUFFERSIZE);
-
- if (err != 0) {
- uprintf("Write failed: bad address!\n");
- }
-
- count++;
- return(err);
-}
-
-DEV_MODULE(echo,echo_loader,NULL);</programlisting>
-
- <para>To install this driver you will first need to make a node on
- your filesystem with a command such as : </para>
-
-<screen>
- &prompt.root mknod /dev/echo c 33 0
-</screen>
-
- <para>With this driver loaded you should now be able to type
- something like :</para>
-
-<screen>
- &prompt.root echo -n "Test Data" > /dev/echo
- &prompt.root cat /dev/echo
- Test Data
-</screen>
-
- <para>Real hardware devices in the next chapter..</para>
-
- <para>Additional Resources
- <itemizedlist>
- <listitem><simpara><ulink
- url="http://www.daemonnews.org/200010/blueprints.html">Dynamic
- Kernel Linker (KLD) Facility Programming Tutorial</ulink> -
- <ulink url="http://www.daemonnews.org">Daemonnews</ulink> October 2000</simpara></listitem>
- <listitem><simpara><ulink
- url="http://www.daemonnews.org/200007/newbus-intro.html">How
- to Write Kernel Drivers with NEWBUS</ulink> - <ulink
- url="http://www.daemonnews.org">Daemonnews</ulink> July
- 2000</simpara></listitem>
- </itemizedlist>
- </para>
- </sect1>
-
- <sect1>
- <title>Network Drivers</title>
-
- <para>Drivers for network devices do not use device nodes in order
- to be accessed. Their selection is based on other decisions
- made inside the kernel and instead of calling open(), use of a
- network device is generally introduced by using the system call
- socket(2).</para>
-
- <para>man ifnet(), loopback device, Bill Paul's drivers,
- etc..</para>
-
- </sect1>
-
-</chapter>
diff --git a/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml
deleted file mode 100644
index a9a70d52f7..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml
+++ /dev/null
@@ -1,639 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kerneldebug/chapter.sgml,v 1.30 2001/04/09 00:33:52 dd Exp $
--->
-
-<chapter id="kerneldebug">
- <title>Kernel Debugging</title>
-
- <para><emphasis>Contributed by &a.paul; and &a.joerg;</emphasis></para>
-
- <sect1>
- <title>Debugging a Kernel Crash Dump with <command>gdb</command></title>
-
- <para>Here are some instructions for getting kernel debugging working on a
- crash dump. They assume that you have enough swap space for a crash
- dump. If you have multiple swap partitions and the first one is too
- small to hold the dump, you can configure your kernel to use an
- alternate dump device (in the <literal>config kernel</literal> line), or
- you can specify an alternate using the
- &man.dumpon.8; command. The best way to use &man.dumpon.8; is to set
- the <literal>dumpdev</literal> variable in
- <filename>/etc/rc.conf</filename>. Typically you want to specify one of
- the swap devices specified in <filename>/etc/fstab</filename>. Dumps to
- non-swap devices, tapes for example, are currently not supported. Config
- your kernel using <command>config <option>-g</option></command>. See <link
- linkend="kernelconfig">Kernel Configuration</link> for details on
- configuring the FreeBSD kernel.</para>
-
- <para>Use the &man.dumpon.8; command to tell the kernel where to dump to
- (note that this will have to be done after configuring the partition in
- question as swap space via &man.swapon.8;). This is normally arranged
- via <filename>/etc/rc.conf</filename> and <filename>/etc/rc</filename>.
- Alternatively, you can hard-code the dump device via the
- <literal>dump</literal> clause in the <literal>config</literal> line of
- your kernel config file. This is deprecated and should be used only if
- you want a crash dump from a kernel that crashes during booting.</para>
-
- <note>
- <para>In the following, the term <command>gdb</command> refers to
- the debugger <command>gdb</command> run in <quote>kernel debug
- mode</quote>. This can be accomplished by starting the
- <command>gdb</command> with the option <option>-k</option>. In
- kernel debug mode, <command>gdb</command> changes its prompt to
- <prompt>(kgdb)</prompt>.</para>
- </note>
-
- <tip>
- <para>If you are using FreeBSD 3 or earlier, you should make a stripped
- copy of the debug kernel, rather than installing the large debug
- kernel itself:</para>
-
- <screen>&prompt.root; <userinput>cp kernel kernel.debug</userinput>
-&prompt.root; <userinput>strip -g kernel</userinput></screen>
-
- <para>This stage isn't necessary, but it is recommended. (In
- FreeBSD 4 and later releases this step is performed automatically
- at the end of the kernel <command>make</command> process.)
- When the kernel has been stripped, either automatically or by
- using the commands above, you may install it as usual by typing
- <command>make install</command>.</para>
-
- <para>Note that older releases of FreeBSD (up to but not including
- 3.1) used a.out kernels by default, which must have their symbol
- tables permanently resident in physical memory. With the larger
- symbol table in an unstripped debug kernel, this is wasteful.
- Recent FreeBSD releases use ELF kernels where this is no longer a
- problem.</para>
- </tip>
-
- <para>If you are testing a new kernel, for example by typing the new
- kernel's name at the boot prompt, but need to boot a different one in
- order to get your system up and running again, boot it only into single
- user state using the <option>-s</option> flag at the boot prompt, and
- then perform the following steps:</para>
-
- <screen>&prompt.root; <userinput>fsck -p</userinput>
-&prompt.root; <userinput>mount -a -t ufs</userinput> # so your file system for /var/crash is writable
-&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput>
-&prompt.root; <userinput>exit</userinput> # ...to multi-user</screen>
-
- <para>This instructs &man.savecore.8; to use another kernel for symbol
- name extraction. It would otherwise default to the currently running
- kernel and most likely not do anything at all since the crash dump and
- the kernel symbols differ.</para>
-
- <para>Now, after a crash dump, go to
- <filename>/sys/compile/WHATEVER</filename> and run
- <command>gdb <option>-k</option></command>. From <command>gdb</command> do:
-
- <screen><userinput>symbol-file kernel.debug</userinput>
-<userinput>exec-file /var/crash/kernel.0</userinput>
-<userinput>core-file /var/crash/vmcore.0</userinput></screen>
-
- and voila, you can debug the crash dump using the kernel sources just
- like you can for any other program.</para>
-
- <para>Here is a script log of a <command>gdb</command> session
- illustrating the procedure. Long lines have been folded to improve
- readability, and the lines are numbered for reference. Despite this, it
- is a real-world error trace taken during the development of the pcvt
- console driver.</para>
-
-<screen> 1:Script started on Fri Dec 30 23:15:22 1994
- 2:&prompt.root; <userinput>cd /sys/compile/URIAH</userinput>
- 3:&prompt.root; <userinput>gdb -k kernel /var/crash/vmcore.1</userinput>
- 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel
-...done.
- 5:IdlePTD 1f3000
- 6:panic: because you said to!
- 7:current pcb at 1e3f70
- 8:Reading in symbols for ../../i386/i386/machdep.c...done.
- 9:<prompt>(kgdb)</prompt> <userinput>where</userinput>
-10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767)
-11:#1 0xf0115159 in panic ()
-12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698)
-13:#3 0xf010185e in db_fncall ()
-14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073)
-15:#5 0xf0101711 in db_command_loop ()
-16:#6 0xf01040a0 in db_trap ()
-17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723)
-18:#8 0xf019d2eb in trap_fatal (...)
-19:#9 0xf019ce60 in trap_pfault (...)
-20:#10 0xf019cb2f in trap (...)
-21:#11 0xf01932a1 in exception:calltrap ()
-22:#12 0xf0191503 in cnopen (...)
-23:#13 0xf0132c34 in spec_open ()
-24:#14 0xf012d014 in vn_open ()
-25:#15 0xf012a183 in open ()
-26:#16 0xf019d4eb in syscall (...)
-27:<prompt>(kgdb)</prompt> <userinput>up 10</userinput>
-28:Reading in symbols for ../../i386/i386/trap.c...done.
-29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\
-30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\
-31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\
-32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\
-33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\
-34:ss = -266427884}) (../../i386/i386/trap.c line 283)
-35:283 (void) trap_pfault(&amp;frame, FALSE);
-36:<prompt>(kgdb)</prompt> <userinput>frame frame-&gt;tf_ebp frame-&gt;tf_eip</userinput>
-37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done.
-38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\
-39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403)
-40:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-41:<prompt>(kgdb)</prompt> <userinput>list</userinput>
-42:398
-43:399 tp-&gt;t_state |= TS_CARR_ON;
-44:400 tp-&gt;t_cflag |= CLOCAL; /* cannot be a modem (:-) */
-45:401
-46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200)
-47:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-48:404 #else
-49:405 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp, flag));
-50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */
-51:407 }
-52:<prompt>(kgdb)</prompt> <userinput>print tp</userinput>
-53:Reading in symbols for ../../i386/i386/cons.c...done.
-54:$1 = (struct tty *) 0x1bae
-55:<prompt>(kgdb)</prompt> <userinput>print tp-&gt;t_line</userinput>
-56:$2 = 1767990816
-57:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\
-59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126)
-60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p));
-61:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-62:#2 0xf0132c34 in spec_open ()
-63:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-64:#3 0xf012d014 in vn_open ()
-65:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-66:#4 0xf012a183 in open ()
-67:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\
-69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\
-70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \
-71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \
-72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673)
-73:673 error = (*callp-&gt;sy_call)(p, args, rval);
-74:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-75:Initial frame selected; you cannot go up.
-76:<prompt>(kgdb)</prompt> <userinput>quit</userinput>
-77:&prompt.root; <userinput>exit</userinput>
-78:exit
-79:
-80:Script done on Fri Dec 30 23:18:04 1994</screen>
- <para>Comments to the above script:</para>
-
- <variablelist>
- <varlistentry>
- <term>line 6:</term>
-
- <listitem>
- <para>This is a dump taken from within DDB (see below), hence the
- panic comment <quote>because you said to!</quote>, and a rather
- long stack trace; the initial reason for going into DDB has been a
- page fault trap though.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 20:</term>
-
- <listitem>
- <para>This is the location of function <function>trap()</function>
- in the stack trace.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 36:</term>
-
- <listitem>
- <para>Force usage of a new stack frame; this is no longer necessary
- now. The stack frames are supposed to point to the right
- locations now, even in case of a trap.
- From looking at the code in source line 403, there is a
- high probability that either the pointer access for
- <quote>tp</quote> was messed up, or the array access was out of
- bounds.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 52:</term>
-
- <listitem>
- <para>The pointer looks suspicious, but happens to be a valid
- address.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 56:</term>
-
- <listitem>
- <para>However, it obviously points to garbage, so we have found our
- error! (For those unfamiliar with that particular piece of code:
- <literal>tp-&gt;t_line</literal> refers to the line discipline of
- the console device here, which must be a rather small integer
- number.)</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1>
- <title>Debugging a Crash Dump with DDD</title>
-
- <para>Examining a kernel crash dump with a graphical debugger like
- <command>ddd</command> is also possible. Add the <option>-k</option>
- option to the <command>ddd</command> command line you would use
- normally. For example;</para>
-
- <screen>&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput></screen>
-
- <para>You should then be able to go about looking at the crash dump using
- <command>ddd</command>'s graphical interface.</para>
- </sect1>
-
- <sect1>
- <title>Post-Mortem Analysis of a Dump</title>
-
- <para>What do you do if a kernel dumped core but you did not expect it,
- and it is therefore not compiled using <command>config -g</command>? Not
- everything is lost here. Do not panic!</para>
-
- <para>Of course, you still need to enable crash dumps. See above on the
- options you have to specify in order to do this.</para>
-
- <para>Go to your kernel config directory
- (<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>)
- and edit your configuration file. Uncomment (or add, if it does not
- exist) the following line</para>
-
- <programlisting>makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols</programlisting>
-
- <para>Rebuild the kernel. Due to the time stamp change on the Makefile,
- there will be some other object files rebuild, for example
- <filename>trap.o</filename>. With a bit of luck, the added
- <option>-g</option> option will not change anything for the generated
- code, so you will finally get a new kernel with similar code to the
- faulting one but some debugging symbols. You should at least verify the
- old and new sizes with the &man.size.1; command. If there is a
- mismatch, you probably need to give up here.</para>
-
- <para>Go and examine the dump as described above. The debugging symbols
- might be incomplete for some places, as can be seen in the stack trace
- in the example above where some functions are displayed without line
- numbers and argument lists. If you need more debugging symbols, remove
- the appropriate object files and repeat the <command>gdb <option>-k</option></command>
- session until you know enough.</para>
-
- <para>All this is not guaranteed to work, but it will do it fine in most
- cases.</para>
- </sect1>
-
- <sect1>
- <title>On-Line Kernel Debugging Using DDB</title>
-
- <para>While <command>gdb <option>-k</option></command> as an off-line debugger provides a very
- high level of user interface, there are some things it cannot do. The
- most important ones being breakpointing and single-stepping kernel
- code.</para>
-
- <para>If you need to do low-level debugging on your kernel, there is an
- on-line debugger available called DDB. It allows to setting
- breakpoints, single-stepping kernel functions, examining and changing
- kernel variables, etc. However, it cannot access kernel source files,
- and only has access to the global and static symbols, not to the full
- debug information like <command>gdb</command>.</para>
-
- <para>To configure your kernel to include DDB, add the option line
-
- <programlisting>options DDB</programlisting>
-
- to your config file, and rebuild. (See <link
- linkend="kernelconfig">Kernel Configuration</link> for details on
- configuring the FreeBSD kernel.</para>
-
- <note>
- <para>Note that if you have an older version of the boot blocks, your
- debugger symbols might not be loaded at all. Update the boot blocks;
- the recent ones load the DDB symbols automagically.)</para>
- </note>
-
- <para>Once your DDB kernel is running, there are several ways to enter
- DDB. The first, and earliest way is to type the boot flag
- <option>-d</option> right at the boot prompt. The kernel will start up
- in debug mode and enter DDB prior to any device probing. Hence you can
- even debug the device probe/attach functions.</para>
-
- <para>The second scenario is a hot-key on the keyboard, usually
- Ctrl-Alt-ESC. For syscons, this can be remapped; some of the
- distributed maps do this, so watch out. There is an option available
- for serial consoles that allows the use of a serial line BREAK on the
- console line to enter DDB (<literal>options BREAK_TO_DEBUGGER</literal>
- in the kernel config file). It is not the default since there are a lot
- of crappy serial adapters around that gratuitously generate a BREAK
- condition, for example when pulling the cable.</para>
-
- <para>The third way is that any panic condition will branch to DDB if the
- kernel is configured to use it. For this reason, it is not wise to
- configure a kernel with DDB for a machine running unattended.</para>
-
- <para>The DDB commands roughly resemble some <command>gdb</command>
- commands. The first thing you probably need to do is to set a
- breakpoint:</para>
-
- <screen><userinput>b function-name</userinput>
-<userinput>b address</userinput></screen>
-
- <para>Numbers are taken hexadecimal by default, but to make them distinct
- from symbol names; hexadecimal numbers starting with the letters
- <literal>a-f</literal> need to be preceded with <literal>0x</literal>
- (this is optional for other numbers). Simple expressions are allowed,
- for example: <literal>function-name + 0x103</literal>.</para>
-
- <para>To continue the operation of an interrupted kernel, simply
- type:</para>
-
- <screen><userinput>c</userinput></screen>
-
- <para>To get a stack trace, use:</para>
-
- <screen><userinput>trace</userinput></screen>
-
- <note>
- <para>Note that when entering DDB via a hot-key, the kernel is currently
- servicing an interrupt, so the stack trace might be not of much use
- for you.</para>
- </note>
-
- <para>If you want to remove a breakpoint, use</para>
-
-
- <screen><userinput>del</userinput>
-<userinput>del address-expression</userinput></screen>
-
- <para>The first form will be accepted immediately after a breakpoint hit,
- and deletes the current breakpoint. The second form can remove any
- breakpoint, but you need to specify the exact address; this can be
- obtained from:</para>
-
- <screen><userinput>show b</userinput></screen>
-
- <para>To single-step the kernel, try:</para>
-
- <screen><userinput>s</userinput></screen>
-
- <para>This will step into functions, but you can make DDB trace them until
- the matching return statement is reached by:</para>
-
- <screen><userinput>n</userinput></screen>
-
- <note>
- <para>This is different from <command>gdb</command>'s
- <command>next</command> statement; it is like <command>gdb</command>'s
- <command>finish</command>.</para>
- </note>
-
- <para>To examine data from memory, use (for example):
-
- <screen><userinput>x/wx 0xf0133fe0,40</userinput>
-<userinput>x/hd db_symtab_space</userinput>
-<userinput>x/bc termbuf,10</userinput>
-<userinput>x/s stringbuf</userinput></screen>
-
- for word/halfword/byte access, and hexadecimal/decimal/character/ string
- display. The number after the comma is the object count. To display
- the next 0x10 items, simply use:</para>
-
- <screen><userinput>x ,10</userinput></screen>
-
- <para>Similarly, use
-
- <screen><userinput>x/ia foofunc,10</userinput></screen>
-
- to disassemble the first 0x10 instructions of
- <function>foofunc</function>, and display them along with their offset
- from the beginning of <function>foofunc</function>.</para>
-
- <para>To modify memory, use the write command:</para>
-
- <screen><userinput>w/b termbuf 0xa 0xb 0</userinput>
-<userinput>w/w 0xf0010030 0 0</userinput></screen>
-
- <para>The command modifier
- (<literal>b</literal>/<literal>h</literal>/<literal>w</literal>)
- specifies the size of the data to be written, the first following
- expression is the address to write to and the remainder is interpreted
- as data to write to successive memory locations.</para>
-
- <para>If you need to know the current registers, use:</para>
-
- <screen><userinput>show reg</userinput></screen>
-
- <para>Alternatively, you can display a single register value by e.g.
-
- <screen><userinput>p $eax</userinput></screen>
-
- and modify it by:</para>
-
- <screen><userinput>set $eax new-value</userinput></screen>
-
- <para>Should you need to call some kernel functions from DDB, simply
- say:</para>
-
- <screen><userinput>call func(arg1, arg2, ...)</userinput></screen>
-
- <para>The return value will be printed.</para>
-
- <para>For a &man.ps.1; style summary of all running processes, use:</para>
-
- <screen><userinput>ps</userinput></screen>
-
- <para>Now you have now examined why your kernel failed, and you wish to
- reboot. Remember that, depending on the severity of previous
- malfunctioning, not all parts of the kernel might still be working as
- expected. Perform one of the following actions to shut down and reboot
- your system:</para>
-
- <screen><userinput>panic</userinput></screen>
-
- <para>This will cause your kernel to dump core and reboot, so you can
- later analyze the core on a higher level with <command>gdb</command>. This command
- usually must be followed by another <command>continue</command>
- statement.</para>
-
- <screen><userinput>call boot(0)</userinput></screen>
-
- <para>Which might be a good way to cleanly shut down the running system,
- <function>sync()</function> all disks, and finally reboot. As long as
- the disk and file system interfaces of the kernel are not damaged, this
- might be a good way for an almost clean shutdown.</para>
-
- <screen><userinput>call cpu_reset()</userinput></screen>
-
- <para>is the final way out of disaster and almost the same as hitting the
- Big Red Button.</para>
-
- <para>If you need a short command summary, simply type:</para>
-
- <screen><userinput>help</userinput></screen>
-
- <para>However, it is highly recommended to have a printed copy of the
- &man.ddb.4; manual page ready for a debugging
- session. Remember that it is hard to read the on-line manual while
- single-stepping the kernel.</para>
- </sect1>
-
- <sect1>
- <title>On-Line Kernel Debugging Using Remote GDB</title>
-
- <para>This feature has been supported since FreeBSD 2.2, and it is
- actually a very neat one.</para>
-
- <para>GDB has already supported <emphasis>remote debugging</emphasis> for
- a long time. This is done using a very simple protocol along a serial
- line. Unlike the other methods described above, you will need two
- machines for doing this. One is the host providing the debugging
- environment, including all the sources, and a copy of the kernel binary
- with all the symbols in it, and the other one is the target machine that
- simply runs a similar copy of the very same kernel (but stripped of the
- debugging information).</para>
-
- <para>You should configure the kernel in question with <command>config
- -g</command>, include <option>DDB</option> into the configuration, and
- compile it as usual. This gives a large blurb of a binary, due to the
- debugging information. Copy this kernel to the target machine, strip
- the debugging symbols off with <command>strip -x</command>, and boot it
- using the <option>-d</option> boot option. Connect the serial line
- of the target machine that has "flags 080" set on its sio device
- to any serial line of the debugging host.
- Now, on the debugging machine, go to the compile directory of the target
- kernel, and start <command>gdb</command>:</para>
-
- <screen>&prompt.user; <userinput>gdb -k kernel</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.16 (i386-unknown-freebsd),
-Copyright 1996 Free Software Foundation, Inc...
-<prompt>(kgdb)</prompt> </screen>
-
- <para>Initialize the remote debugging session (assuming the first serial
- port is being used) by:</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen>
-
- <para>Now, on the target host (the one that entered DDB right before even
- starting the device probe), type:</para>
-
- <screen>Debugger("Boot flags requested debugger")
-Stopped at Debugger+0x35: movb $0, edata+0x51bc
-<prompt>db&gt;</prompt> <userinput>gdb</userinput></screen>
-
- <para>DDB will respond with:</para>
-
- <screen>Next trap will enter GDB remote protocol mode</screen>
-
- <para>Every time you type <command>gdb</command>, the mode will be toggled
- between remote GDB and local DDB. In order to force a next trap
- immediately, simply type <command>s</command> (step). Your hosting GDB
- will now gain control over the target kernel:</para>
-
- <screen>Remote debugging using /dev/cuaa0
-Debugger (msg=0xf01b0383 "Boot flags requested debugger")
- at ../../i386/i386/db_interface.c:257
-<prompt>(kgdb)</prompt></screen>
-
- <para>You can use this session almost as any other GDB session, including
- full access to the source, running it in gud-mode inside an Emacs window
- (which gives you an automatic source code display in another Emacs
- window) etc.</para>
- </sect1>
-
- <sect1>
- <title>Debugging Loadable Modules Using GDB</title>
-
- <para>When debugging a panic that occurred within a module, or
- using remote GDB against a machine that uses dynamic modules,
- you need to tell GDB how to obtain symbol information for those
- modules.</para>
-
- <para>First, you need to build the module(s) with debugging
- information:</para>
-
- <screen>&prompt.root; <userinput>cd /sys/modules/linux</userinput>
-&prompt.root; <userinput>make clean; make COPTS=-g</userinput></screen>
-
- <para>If you are using remote GDB, you can run
- <command>kldstat</command> on the target machine to find out
- where the module was loaded:</para>
-
- <screen>&prompt.root; <userinput>kldstat</userinput>
-Id Refs Address Size Name
- 1 4 0xc0100000 1c1678 kernel
- 2 1 0xc0a9e000 6000 linprocfs.ko
- 3 1 0xc0ad7000 2000 warp_saver.ko
- 4 1 0xc0adc000 11000 linux.ko
-</screen>
-
- <para>If you are debugging a crash dump, you'll need to walk the
- <literal>linker_files</literal> list, starting at
- <literal>linker_files->tqh_first</literal> and following the
- <literal>link.tqe_next</literal> pointers until you find the
- entry with the <literal>filename</literal> you are looking for.
- The <literal>address</literal> member of that entry is the load
- address of the module.</para>
-
- <para>Next, you need to find out the offset of the text section
- within the module:</para>
-
- <screen>&prompt.root; <userinput>objdump --section-headers /sys/modules/linux/linux.ko | grep text</userinput>
- 3 .rel.text 000016e0 000038e0 000038e0 000038e0 2**2
- 10 .text 00007f34 000062d0 000062d0 000062d0 2**2</screen>
-
- <para>The one you want is the <literal>.text</literal> section,
- section 10 in the above example. The fourth hexadecimal field
- (sixth field overall) is the offset of the text section within
- the file. Add this offset to the load address of the module to
- obtain the relocation address for the module's code. In our
- example, we get 0xc0adc000 + 0x62d0 = 0xc0ae22d0. Use the
- <command>add-symbol-file</command> command in GDB to tell the
- debugger about the module:</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>add-symbol-file /sys/modules/linux/linux.ko 0xc0ae22d0</userinput>
-add symbol table from file "/sys/modules/linux/linux.ko" at text_addr = 0xc0ae22d0?
-(y or n) <userinput>y</userinput>
-Reading symbols from /sys/modules/linux/linux.ko...done.
-<prompt>(kgdb)</prompt></screen>
-
- <para>You should now have access to all the symbols in the
- module.</para>
- </sect1>
-
- <sect1>
- <title>Debugging a Console Driver</title>
-
- <para>Since you need a console driver to run DDB on, things are more
- complicated if the console driver itself is failing. You might remember
- the use of a serial console (either with modified boot blocks, or by
- specifying <option>-h</option> at the <prompt>Boot:</prompt> prompt),
- and hook up a standard terminal onto your first serial port. DDB works
- on any configured console driver, of course also on a serial
- console.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/developers-handbook/locking/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/locking/chapter.sgml
deleted file mode 100644
index 993d649ffc..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/locking/chapter.sgml
+++ /dev/null
@@ -1,333 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD SMP Next Generation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/locking/chapter.sgml,v 1.1 2000/11/29 04:15:17 jhb Exp $
--->
-
-<chapter id="locking">
- <title>Locking Notes</title>
-
- <para><emphasis>This chapter is maintained by the FreeBSD SMP Next
- Generation Project
- <email>freebsd-smp@FreeBSD.org</email>.</emphasis></para>
-
-
- <para>This document outlines the locking used in the FreeBSD kernel
- to permit effective multi-processing within the kernel. Locking
- can be achieved via several means. Data structures can be
- protected by mutexes or &man.lockmgr.9; locks. A few variables
- are protected simply by always using atomic operations to access
- them.</para>
-
- <sect1>
- <title>Mutexes</title>
-
- <para>A mutex is simply a lock used to guarantee mutual exclusion.
- Specifically, a mutex may only be owned by one entity at a time.
- If another entity wishes to obtain a mutex that is already
- owned, it must wait until the mutex is released. In the FreeBSD
- kernel, mutexes are owned by processes.</para>
-
- <para>Mutexes may be recursively acquired, but they are intended
- to be held for a short period of time. Specifically, one may
- not sleep while holding a mutex. If you need to hold a lock
- across a sleep, use a &man.lockmgr.9; lock.</para>
-
- <para>Each mutex has several properties of interest:</para>
-
- <variablelist>
- <varlistentry>
- <term>Variable Name</term>
- <listitem>
- <para>The name of the <type>struct mtx</type> variable in
- the kernel source.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Logical Name</term>
- <listitem>
- <para>The name of the mutex assigned to it by
- <function>mtx_init</function>. This name is displayed in
- KTR trace messages and witness errors and warnings and is
- used to distinguish mutexes in the witness code.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Type</term>
- <listitem>
- <para>The type of the mutex in terms of the
- <constant>MTX_*</constant> flags. The meaning for each
- flag is related to its meaning as documented in
- &man.mutex.9;.</para>
-
- <variablelist>
- <varlistentry>
- <term><constant>MTX_DEF</constant></term>
- <listitem>
- <para>A sleep mutex</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_SPIN</constant></term>
- <listitem>
- <para>A spin mutex</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_COLD</constant></term>
- <listitem>
- <para>This mutex is initialized very early. Thus, it
- must be declared via
- <function>MUTEX_DECLARE</function>, and the
- <constant>MTX_COLD</constant> flag must be passed to
- <function>mtx_init</function>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_TOPHALF</constant></term>
- <listitem>
- <para>This spin mutex does not disable
- interrupts.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><constant>MTX_NORECURSE</constant></term>
- <listitem>
- <para>This mutex is not allowed to recurse.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Protectees</term>
- <listitem>
- <para>A list of data structures or data structure members
- that this entry protects. For data structure members, the
- name will be in the form of
- <structname/structure name/.<structfield/member name/.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Dependent Functions</term>
- <listitem>
- <para>Functions that can only be called if this mutex is
- held.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <table frame="all" colsep="1" rowsep="1" pgwide="1">
- <title>Mutex List</title>
-
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Variable Name</entry>
- <entry>Logical Name</entry>
- <entry>Type</entry>
- <entry>Protectees</entry>
- <entry>Dependent Functions</entry>
- </row>
- </thead>
-
- <!-- The scheduler lock -->
- <tbody>
- <row>
- <entry>sched_lock</entry>
- <entry><quote>sched lock</quote></entry>
- <entry>
- <constant>MTX_SPIN</constant> |
- <constant>MTX_COLD</constant>
- </entry>
- <entry>
- <varname>_gmonparam</varname>,
- <varname>cnt.v_swtch</varname>,
- <varname>cp_time</varname>,
- <varname>curpriority</varname>,
- <structname/mtx/.<structfield/mtx_blocked/,
- <structname/mtx/.<structfield/mtx_contested/,
- <structname/proc/.<structfield/p_contested/,
- <structname/proc/.<structfield/p_blocked/,
- <structname/proc/.<structfield/p_flag/
- (<constant>P_PROFIL</constant> XXX,
- <constant>P_INMEM</constant>,
- <constant>P_SINTR</constant>,
- <constant>P_TIMEOUT</constant>,
- <constant>P_SWAPINREQ</constant> XXX,
- <constant>P_INMEN</constant> XXX),
- <structname/proc/.<structfield/p_nice/,
- <structname/proc/.<structfield/p_procq/,
- <structname/proc/.<structfield/p_blocked/,
- <structname/proc/.<structfield/p_estcpu/,
- <structname/proc/.<structfield/p_nativepri/,
- <structname/proc/.<structfield/p_priority/,
- <structname/proc/.<structfield/p_usrpri/,
- <structname/proc/.<structfield/p_rtprio/,
- <structname/proc/.<structfield/p_rqindex/,
- <structname/proc/.<structfield/p_stats->p_prof/,
- <structname/proc/.<structfield/p_stats->p_ru/,
- <structname/proc/.<structfield/p_stat/,
- <structname/proc/.<structfield/p_cpticks/
- <structname/proc/.<structfield/p_iticks/,
- <structname/proc/.<structfield/p_uticks/,
- <structname/proc/.<structfield/p_sticks/,
- <structname/proc/.<structfield/p_swtime/,
- <structname/proc/.<structfield/p_slptime/,
- <structname/proc/.<structfield/p_runtime/,
- <structname/proc/.<structfield/p_pctcpu/,
- <structname/proc/.<structfield/p_oncpu/,
- <structname/proc/.<structfield/p_asleep/,
- <structname/proc/.<structfield/p_wchan/,
- <structname/proc/.<structfield/p_wmesg/,
- <structname/proc/.<structfield/p_slpq/,
- <structname/proc/.<structfield/p_vmspace/
- (XXX - in <function>statclock</function>),
- <varname>pscnt</varname>,
- <varname>slpque</varname>,
- <varname>itqueuebits</varname>,
- <varname>itqueues</varname>,
- <varname>rtqueuebits</varname>,
- <varname>rtqueues</varname>,
- <varname>queuebits</varname>,
- <varname>queues</varname>,
- <varname>idqueuebits</varname>,
- <varname>idqueues</varname>,
- <varname>switchtime</varname>,
- </entry>
- <entry>
- <function>setrunqueue</function>,
- <function>remrunqueue</function>,
- <function>mi_switch</function>,
- <function>chooseproc</function>,
- <function>schedclock</function>,
- <function>resetpriority</function>,
- <function>updatepri</function>,
- <function>maybe_resched</function>,
- <function>cpu_switch</function>,
- <function>cpu_throw</function>
- </entry>
- </row>
-
- <!-- The vm86 pcb lock -->
- <row>
- <entry>vm86pcb_lock</entry>
- <entry><quote>vm86pcb lock</quote></entry>
- <entry>
- <constant>MTX_DEF</constant> |
- <constant>MTX_COLD</constant>
- </entry>
- <entry>
- <varname>vm86pcb</varname>
- </entry>
- <entry>
- <function>vm86_bioscall</function>
- </entry>
- </row>
-
- <!-- Giant -->
- <row>
- <entry>Giant</entry>
- <entry><quote>Giant</quote></entry>
- <entry>
- <constant>MTX_DEF</constant> |
- <constant>MTX_COLD</constant>
- </entry>
- <entry>nearly everything</entry>
- <entry>lots</entry>
- </row>
-
- <!-- The callout lock -->
- <row>
- <entry>callout_lock</entry>
- <entry><quote>callout lock</quote></entry>
- <entry>
- <constant>MTX_SPIN</constant>
- </entry>
- <entry>
- <varname>callfree</varname>,
- <varname>callwheel</varname>,
- <varname>nextsoftcheck</varname>,
- <structname/proc/.<structfield/p_itcallout/,
- <structname/proc/.<structfield/p_slpcallout/,
- <varname>softticks</varname>,
- <varname>ticks</varname>
- </entry>
- <entry>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect1>
-
- <sect1>
- <title>Lock Manager Locks</title>
-
- <para>Locks that are provided via the &man.lockmgr.9; interface
- are lock manager locks. These locks are reader-writer locks and
- may be held by a sleeping process.</para>
-
- <table>
- <title>&man.lockmgr.9; Lock List</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable Name</entry>
- <entry>Protectees</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><varname>allproc_lock</varname></entry>
- <entry>
- <varname>allproc</varname>
- <varname>zombproc</varname>
- <varname>pidhashtbl</varname>
- <structname/proc/.<structfield/p_list/
- <structname/proc/.<structfield/p_hash/
- <varname>nextpid</varname>
- </entry>
- <entry><varname>proctree_lock</varname></entry>
- <entry>
- <structname/proc/.<structfield/p_children/
- <structname/proc/.<structfield/p_sibling/
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect1>
-
- <sect1>
- <title>Atomically Protected Variables</title>
-
- <para>An atomically protected variable is a special variable that
- is not protected by an explicit lock. Instead, all data
- accesses to the variables use special atomic operations as
- described in &man.atomic.9;. Very few variables are treated
- this way, although other synchronization primitives such as
- mutexes are implemented with atomically protected
- variables.</para>
-
- <itemizedlist>
- <listitem>
- <para><varname>astpending</varname></para>
- </listitem>
-
- <listitem>
- <para><structname/mtx/.<structfield/mtx_lock/</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
diff --git a/en_US.ISO8859-1/books/developers-handbook/pci/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/pci/chapter.sgml
deleted file mode 100644
index ca94063864..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/pci/chapter.sgml
+++ /dev/null
@@ -1,372 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/pci/chapter.sgml,v 1.2 2001/04/09 00:33:42 dd Exp $
--->
-
-<chapter id="pci">
- <title>PCI Devices</title>
-
- <para>This chapter will talk about the FreeBSD mechanisms for
- writing a device driver for a device on a PCI bus.</para>
-
- <sect1>
- <title>Probe and Attach</title>
-
- <para>Information here about how the PCI bus code iterates through
- the unattached devices and see if a newly loaded kld will attach
- to any of them.</para>
-
-<programlisting>/*
- * Simple KLD to play with the PCI functions.
- *
- * Murray Stokely
- */
-
-#define MIN(a,b) (((a) < (b)) ? (a) : (b))
-
-#include &lt;sys/types.h&gt;
-#include &lt;sys/module.h&gt;
-#include &lt;sys/systm.h&gt; /* uprintf */
-#include &lt;sys/errno.h&gt;
-#include &lt;sys/param.h&gt; /* defines used in kernel.h */
-#include &lt;sys/kernel.h&gt; /* types used in module initialization */
-#include &lt;sys/conf.h&gt; /* cdevsw struct */
-#include &lt;sys/uio.h&gt; /* uio struct */
-#include &lt;sys/malloc.h&gt;
-#include &lt;sys/bus.h&gt; /* structs, prototypes for pci bus stuff */
-
-#include &lt;pci/pcivar.h&gt; /* For get_pci macros! */
-
-/* Function prototypes */
-d_open_t mypci_open;
-d_close_t mypci_close;
-d_read_t mypci_read;
-d_write_t mypci_write;
-
-/* Character device entry points */
-
-static struct cdevsw mypci_cdevsw = {
- mypci_open,
- mypci_close,
- mypci_read,
- mypci_write,
- noioctl,
- nopoll,
- nommap,
- nostrategy,
- "mypci",
- 36, /* reserved for lkms - /usr/src/sys/conf/majors */
- nodump,
- nopsize,
- D_TTY,
- -1
-};
-
-/* vars */
-static dev_t sdev;
-
-/* We're more interested in probe/attach than with
- open/close/read/write at this point */
-
-int
-mypci_open(dev_t dev, int oflags, int devtype, struct proc *p)
-{
- int err = 0;
-
- uprintf("Opened device \"mypci\" successfully.\n");
- return(err);
-}
-
-int
-mypci_close(dev_t dev, int fflag, int devtype, struct proc *p)
-{
- int err=0;
-
- uprintf("Closing device \"mypci.\"\n");
- return(err);
-}
-
-int
-mypci_read(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
-
- uprintf("mypci read!\n");
- return err;
-}
-
-int
-mypci_write(dev_t dev, struct uio *uio, int ioflag)
-{
- int err = 0;
-
- uprintf("mypci write!\n");
- return(err);
-}
-
-/* PCI Support Functions */
-
-/*
- * Return identification string if this is device is ours.
- */
-static int
-mypci_probe(device_t dev)
-{
- uprintf("MyPCI Probe\n"
- "Vendor ID : 0x%x\n"
- "Device ID : 0x%x\n",pci_get_vendor(dev),pci_get_device(dev));
-
- if (pci_get_vendor(dev) == 0x11c1) {
- uprintf("We've got the Winmodem, probe successful!\n");
- return 0;
- }
-
- return ENXIO;
-}
-
-/* Attach function is only called if the probe is successful */
-
-static int
-mypci_attach(device_t dev)
-{
- uprintf("MyPCI Attach for : deviceID : 0x%x\n",pci_get_vendor(dev));
- sdev = make_dev(<literal>&</literal>mypci_cdevsw,
- 0,
- UID_ROOT,
- GID_WHEEL,
- 0600,
- "mypci");
- uprintf("Mypci device loaded.\n");
- return ENXIO;
-}
-
-/* Detach device. */
-
-static int
-mypci_detach(device_t dev)
-{
- uprintf("Mypci detach!\n");
- return 0;
-}
-
-/* Called during system shutdown after sync. */
-
-static int
-mypci_shutdown(device_t dev)
-{
- uprintf("Mypci shutdown!\n");
- return 0;
-}
-
-/*
- * Device suspend routine.
- */
-static int
-mypci_suspend(device_t dev)
-{
- uprintf("Mypci suspend!\n");
- return 0;
-}
-
-/*
- * Device resume routine.
- */
-
-static int
-mypci_resume(device_t dev)
-{
- uprintf("Mypci resume!\n");
- return 0;
-}
-
-static device_method_t mypci_methods[] = {
- /* Device interface */
- DEVMETHOD(device_probe, mypci_probe),
- DEVMETHOD(device_attach, mypci_attach),
- DEVMETHOD(device_detach, mypci_detach),
- DEVMETHOD(device_shutdown, mypci_shutdown),
- DEVMETHOD(device_suspend, mypci_suspend),
- DEVMETHOD(device_resume, mypci_resume),
-
- { 0, 0 }
-};
-
-static driver_t mypci_driver = {
- "mypci",
- mypci_methods,
- 0,
- /* sizeof(struct mypci_softc), */
-};
-
-static devclass_t mypci_devclass;
-
-DRIVER_MODULE(mypci, pci, mypci_driver, mypci_devclass, 0, 0);</programlisting>
-
- <para>Additional Resources
- <itemizedlist>
- <listitem><simpara><ulink url="http://www.pcisig.org">PCI
- Special Interest Group</ulink></simpara></listitem>
-
- <listitem><simpara>PCI System Architecture, Fourth Edition by
- Tom Shanley, et al.</simpara></listitem>
-
- </itemizedlist>
- </para>
- </sect1>
-
- <sect1>
- <title>Bus Resources</title>
-
- <para>FreeBSD provides an object-oriented mechanism for requesting
- resources from a parent bus. Almost all devices will be a child
- member of some sort of bus (PCI, ISA, USB, SCSI, etc) and these
- devices need to acquire resources from their parent bus (such as
- memory segments, interrupt lines, or DMA channels).</para>
-
- <sect2>
- <title>Base Address Registers</title>
-
- <para>To do anything particularly useful with a PCI device you
- will need to obtain the <emphasis>Base Address
- Registers</emphasis> (BARs) from the PCI Configuration space.
- The PCI-specific details of obtaining the BAR is abstracted in
- the <function>bus_alloc_resource()</function> function.</para>
-
- <para>For example, a typical driver might have something similar
- to this in the <function>attach()</function> function. : </para>
-
-<programlisting> sc->bar0id = 0x10;
- sc->bar0res = bus_alloc_resource(dev, SYS_RES_MEMORY, &amp;(sc->bar0id),
- 0, ~0, 1, RF_ACTIVE);
- if (sc->bar0res == NULL) {
- uprintf("Memory allocation of PCI base register 0 failed!\n");
- error = ENXIO;
- goto fail1;
- }
-
- sc->bar1id = 0x14;
- sc->bar1res = bus_alloc_resource(dev, SYS_RES_MEMORY, &amp;(sc->bar1id),
- 0, ~0, 1, RF_ACTIVE);
- if (sc->bar1res == NULL) {
- uprintf("Memory allocation of PCI base register 1 failed!\n");
- error = ENXIO;
- goto fail2;
- }
- sc->bar0_bt = rman_get_bustag(sc->bar0res);
- sc->bar0_bh = rman_get_bushandle(sc->bar0res);
- sc->bar1_bt = rman_get_bustag(sc->bar1res);
- sc->bar1_bh = rman_get_bushandle(sc->bar1res);
-
-</programlisting>
-
- <para>Handles for each base address register are kept in the
- <structname>softc</structname> structure so that they can be
- used to write to the device later.</para>
-
- <para>These handles can then be used to read or write from the
- device registers with the <function>bus_space_*</function>
- functions. For example, a driver might contain a shorthand
- function to read from a board specific register like this :
- </para>
-
-<programlisting>uint16_t
-board_read(struct ni_softc *sc, uint16_t address) {
- return bus_space_read_2(sc->bar1_bt, sc->bar1_bh, address);
-}
-</programlisting>
-
- <para>Similarly, one could write to the registers with : </para>
-
-<programlisting>void
-board_write(struct ni_softc *sc, uint16_t address, uint16_t value) {
- bus_space_write_2(sc->bar1_bt, sc->bar1_bh, address, value);
-}
-</programlisting>
-
- <para>These functions exist in 8bit, 16bit, and 32bit versions
- and you should use
- <function>bus_space_{read|write}_{1|2|4}</function>
- accordingly.</para>
-
- </sect2>
- <sect2>
- <title>Interrupts</title>
-
- <para>Interrupts are allocated from the object-oriented bus code
- in a way similar to the memory resources. First an IRQ
- resource must be allocated from the parent bus, and then the
- interrupt handler must be setup to deal with this IRQ.</para>
-
- <para>Again, a sample from a device
- <function>attach()</function> function says more than
- words.</para>
-
-<programlisting>/* Get the IRQ resource */
-
- sc->irqid = 0x0;
- sc->irqres = bus_alloc_resource(dev, SYS_RES_IRQ, &amp;(sc->irqid),
- 0, ~0, 1, RF_SHAREABLE | RF_ACTIVE);
- if (sc->irqres == NULL) {
- uprintf("IRQ allocation failed!\n");
- error = ENXIO;
- goto fail3;
- }
-
- /* Now we should setup the interrupt handler */
-
- error = bus_setup_intr(dev, sc->irqres, INTR_TYPE_MISC,
- my_handler, sc, &amp;(sc->handler));
- if (error) {
- printf("Couldn't set up irq\n");
- goto fail4;
- }
-
- sc->irq_bt = rman_get_bustag(sc->irqres);
- sc->irq_bh = rman_get_bushandle(sc->irqres);
-</programlisting>
-
- </sect2>
-
- <sect2>
- <title>DMA</title>
- <para>On the PC, peripherals that want to do bus-mastering DMA
- must deal with physical addresses. This is a problem since
- FreeBSD uses virtual memory and deals almost exclusively with
- virtual addresses. Fortunately, there is a function,
- <function>vtophys()</function> to help.</para>
-
-<programlisting>#include &lt;vm/vm.h&gt;
-#include &lt;vm/pmap.h&gt;
-
-#define vtophys(virtual_address) (...)
-</programlisting>
-
- <para>The solution is a bit different on the alpha however, and
- what we really want is a function called
- <function>vtobus()</function>.</para>
-
-<programlisting>#if defined(__alpha__)
-#define vtobus(va) alpha_XXX_dmamap((vm_offset_t)va)
-#else
-#define vtobus(va) vtophys(va)
-#endif
-</programlisting>
-
- </sect2>
-
- <sect2>
- <title>Deallocating Resources</title>
-
- <para>It's very important to deallocate all of the resources
- that were allocated during <function>attach()</function>.
- Care must be taken to deallocate the correct stuff even on a
- failure condition so that the system will remain useable while
- your driver dies.</para>
-
- </sect2>
- </sect1>
-
-</chapter>
-
-
diff --git a/en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml
deleted file mode 100644
index 4144cf20f2..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml
+++ /dev/null
@@ -1,396 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/policies/chapter.sgml,v 1.18 2000/08/20 17:18:43 chris Exp $
--->
-
-<chapter id="policies">
- <title>Source Tree Guidelines and Policies</title>
-
- <para><emphasis>Contributed by &a.phk;.</emphasis></para>
-
- <para>This chapter documents various guidelines and policies in force for
- the FreeBSD source tree.</para>
-
- <sect1 id="policies-maintainer">
- <title><makevar>MAINTAINER</makevar> on Makefiles</title>
-
- <para>June 1996.</para>
-
- <para>If a particular portion of the FreeBSD distribution is being
- maintained by a person or group of persons, they can communicate this
- fact to the world by adding a
-
- <programlisting>MAINTAINER= email-addresses</programlisting>
-
- line to the <filename>Makefile</filename>s covering this portion of the
- source tree.</para>
-
- <para>The semantics of this are as follows:</para>
-
- <para>The maintainer owns and is responsible for that code. This means
- that he is responsible for fixing bugs and answer problem reports
- pertaining to that piece of the code, and in the case of contributed
- software, for tracking new versions, as appropriate.</para>
-
- <para>Changes to directories which have a maintainer defined shall be sent
- to the maintainer for review before being committed. Only if the
- maintainer does not respond for an unacceptable period of time, to
- several emails, will it be acceptable to commit changes without review
- by the maintainer. However, it is suggested that you try and have the
- changes reviewed by someone else if at all possible.</para>
-
- <para>It is of course not acceptable to add a person or group as
- maintainer unless they agree to assume this duty. On the other hand it
- doesn't have to be a committer and it can easily be a group of
- people.</para>
- </sect1>
-
- <sect1 id="policies-contributed">
- <title>Contributed Software</title>
-
- <para><emphasis>Contributed by &a.phk; and &a.obrien;. </emphasis></para>
-
- <para>June 1996.</para>
-
- <para>Some parts of the FreeBSD distribution consist of software that is
- actively being maintained outside the FreeBSD project. For historical
- reasons, we call this <emphasis>contributed</emphasis> software. Some
- examples are perl, gcc and patch.</para>
-
- <para>Over the last couple of years, various methods have been used in
- dealing with this type of software and all have some number of
- advantages and drawbacks. No clear winner has emerged.</para>
-
- <para>Since this is the case, after some debate one of these methods has
- been selected as the <quote>official</quote> method and will be required
- for future imports of software of this kind. Furthermore, it is
- strongly suggested that existing contributed software converge on this
- model over time, as it has significant advantages over the old method,
- including the ability to easily obtain diffs relative to the
- <quote>official</quote> versions of the source by everyone (even without
- cvs access). This will make it significantly easier to return changes
- to the primary developers of the contributed software.</para>
-
- <para>Ultimately, however, it comes down to the people actually doing the
- work. If using this model is particularly unsuited to the package being
- dealt with, exceptions to these rules may be granted only with the
- approval of the core team and with the general consensus of the other
- developers. The ability to maintain the package in the future will be a
- key issue in the decisions.</para>
-
- <note>
- <para>Because of some unfortunate design limitations with the RCS file
- format and CVS's use of vendor branches, minor, trivial and/or
- cosmetic changes are <emphasis>strongly discouraged</emphasis> on
- files that are still tracking the vendor branch. <quote>Spelling
- fixes</quote> are explicitly included here under the
- <quote>cosmetic</quote> category and are to be avoided for files with
- revision 1.1.x.x. The repository bloat impact from a single character
- change can be rather dramatic.</para>
- </note>
-
- <para>The <application>TCL</application> embedded programming
- language will be used as example of how this model works:</para>
-
- <para><filename>src/contrib/tcl</filename> contains the source as
- distributed by the maintainers of this package. Parts that are entirely
- not applicable for FreeBSD can be removed. In the case of Tcl, the
- <filename>mac</filename>, <filename>win</filename> and
- <filename>compat</filename> subdirectories were eliminated before the
- import</para>
-
- <para><filename>src/lib/libtcl</filename> contains only a "bmake style"
- <filename>Makefile</filename> that uses the standard
- <filename>bsd.lib.mk</filename> makefile rules to produce the library
- and install the documentation.</para>
-
- <para><filename>src/usr.bin/tclsh</filename> contains only a bmake style
- <filename>Makefile</filename> which will produce and install the
- <command>tclsh</command> program and its associated man-pages using the
- standard <filename>bsd.prog.mk</filename> rules.</para>
-
- <para><filename>src/tools/tools/tcl_bmake</filename> contains a couple of
- shell-scripts that can be of help when the tcl software needs updating.
- These are not part of the built or installed software.</para>
-
- <para>The important thing here is that the
- <filename>src/contrib/tcl</filename> directory is created according to
- the rules: It is supposed to contain the sources as distributed (on a
- proper CVS vendor-branch and without RCS keyword expansion) with as few
- FreeBSD-specific changes as possible. The 'easy-import' tool on
- freefall will assist in doing the import, but if there are any doubts on
- how to go about it, it is imperative that you ask first and not blunder
- ahead and hope it <quote>works out</quote>. CVS is not forgiving of
- import accidents and a fair amount of effort is required to back out
- major mistakes.</para>
-
- <para>Because of the previously mentioned design limitations with CVS's
- vendor branches, it is required that <quote>official</quote> patches from
- the vendor be applied to the original distributed sources and the result
- re-imported onto the vendor branch again. Official patches should never
- be patched into the FreeBSD checked out version and "committed", as this
- destroys the vendor branch coherency and makes importing future versions
- rather difficult as there will be conflicts.</para>
-
- <para>Since many packages contain files that are meant for compatibility
- with other architectures and environments that FreeBSD, it is
- permissible to remove parts of the distribution tree that are of no
- interest to FreeBSD in order to save space. Files containing copyright
- notices and release-note kind of information applicable to the remaining
- files shall <emphasis>not</emphasis> be removed.</para>
-
- <para>If it seems easier, the <command>bmake</command>
- <filename>Makefile</filename>s can be produced from the dist tree
- automatically by some utility, something which would hopefully make it
- even easier to upgrade to a new version. If this is done, be sure to
- check in such utilities (as necessary) in the
- <filename>src/tools</filename> directory along with the port itself so
- that it is available to future maintainers.</para>
-
- <para>In the <filename>src/contrib/tcl</filename> level directory, a file
- called <filename>FREEBSD-upgrade</filename> should be added and it
- should states things like:</para>
-
- <itemizedlist>
- <listitem>
- <para>Which files have been left out</para>
- </listitem>
-
- <listitem>
- <para>Where the original distribution was obtained from and/or the
- official master site.</para>
- </listitem>
-
- <listitem>
- <para>Where to send patches back to the original authors</para>
- </listitem>
-
- <listitem>
- <para>Perhaps an overview of the FreeBSD-specific changes that have
- been made.</para>
- </listitem>
- </itemizedlist>
-
- <para>However, please do not import <filename>FREEBSD-upgrade</filename>
- with the contributed source. Rather you should <command>cvs add
- FREEBSD-upgrade ; cvs ci</command> after the initial import. Example
- wording from <filename>src/contrib/cpio</filename> is below:</para>
-
- <programlisting>This directory contains virgin sources of the original distribution files
-on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
-the files in this directory via patches and a cvs commit. New versions or
-official-patch versions must be imported. Please remember to import with
-"-ko" to prevent CVS from corrupting any vendor RCS Ids.
-
-For the import of GNU cpio 2.4.2, the following files were removed:
-
- INSTALL cpio.info mkdir.c
- Makefile.in cpio.texi mkinstalldirs
-
-To upgrade to a newer version of cpio, when it is available:
- 1. Unpack the new version into an empty directory.
- [Do not make ANY changes to the files.]
-
- 2. Remove the files listed above and any others that don't apply to
- FreeBSD.
-
- 3. Use the command:
- cvs import -ko -m 'Virgin import of GNU cpio v&lt;version&gt;' \
- src/contrib/cpio GNU cpio_&lt;version&gt;
-
- For example, to do the import of version 2.4.2, I typed:
- cvs import -ko -m 'Virgin import of GNU v2.4.2' \
- src/contrib/cpio GNU cpio_2_4_2
-
- 4. Follow the instructions printed out in step 3 to resolve any
- conflicts between local FreeBSD changes and the newer version.
-
-Do not, under any circumstances, deviate from this procedure.
-
-To make local changes to cpio, simply patch and commit to the main
-branch (aka HEAD). Never make local changes on the GNU branch.
-
-All local changes should be submitted to "cpio@gnu.ai.mit.edu" for
-inclusion in the next vendor release.
-
-obrien@FreeBSD.org - 30 March 1997</programlisting>
- </sect1>
-
- <sect1 id="policies-encumbered">
- <title>Encumbered Files</title>
-
- <para>It might occasionally be necessary to include an encumbered file in
- the FreeBSD source tree. For example, if a device requires a small
- piece of binary code to be loaded to it before the device will operate,
- and we do not have the source to that code, then the binary file is said
- to be encumbered. The following policies apply to including encumbered
- files in the FreeBSD source tree.</para>
-
- <orderedlist>
- <listitem>
- <para>Any file which is interpreted or executed by the system CPU(s)
- and not in source format is encumbered.</para>
- </listitem>
-
- <listitem>
- <para>Any file with a license more restrictive than BSD or GNU is
- encumbered.</para>
- </listitem>
-
- <listitem>
- <para>A file which contains downloadable binary data for use by the
- hardware is not encumbered, unless (1) or (2) apply to it. It must
- be stored in an architecture neutral ASCII format (file2c or
- uuencoding is recommended).</para>
- </listitem>
-
- <listitem>
- <para>Any encumbered file requires specific approval from the <link
- linkend="staff-core">Core team</link> before it is added to the
- CVS repository.</para>
- </listitem>
-
- <listitem>
- <para>Encumbered files go in <filename>src/contrib</filename> or
- <filename>src/sys/contrib</filename>.</para>
- </listitem>
-
- <listitem>
- <para>The entire module should be kept together. There is no point in
- splitting it, unless there is code-sharing with non-encumbered
- code.</para>
- </listitem>
-
- <listitem>
- <para>Object files are named
- <filename><replaceable>arch</replaceable>/<replaceable>filename</replaceable>.o.uu></filename>.</para>
- </listitem>
-
- <listitem>
- <para>Kernel files;</para>
-
- <orderedlist>
- <listitem>
- <para>Should always be referenced in
- <filename>conf/files.*</filename> (for build simplicity).</para>
- </listitem>
-
- <listitem>
- <para>Should always be in <filename>LINT</filename>, but the <link
- linkend="staff-core">Core team</link> decides per case if it
- should be commented out or not. The <link
- linkend="staff-core">Core team</link> can, of course, change
- their minds later on.</para>
- </listitem>
-
- <listitem>
- <para>The <link linkend="staff-who">Release Engineer</link>
- decides whether or not it goes in to the release.</para>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>User-land files;</para>
-
- <orderedlist>
- <listitem>
- <para>The <link linkend="staff-core">Core team</link> decides if
- the code should be part of <command>make world</command>.</para>
- </listitem>
-
- <listitem>
- <para>The <link linkend="staff-who">Release Engineer</link>
- decides if it goes in to the release.</para>
- </listitem>
- </orderedlist>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1 id="policies-shlib">
- <title>Shared Libraries</title>
-
- <para><emphasis>Contributed by &a.asami;, &a.peter;, and &a.obrien; 9
- December 1996.</emphasis></para>
-
- <para>If you are adding shared library support to a port or other piece of
- software that doesn't have one, the version numbers should follow these
- rules. Generally, the resulting numbers will have nothing to do with
- the release version of the software.</para>
-
- <para>The three principles of shared library building are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Start from <literal>1.0</literal></para>
- </listitem>
-
- <listitem>
- <para>If there is a change that is backwards compatible, bump minor
- number (note that ELF systems ignore the minor number)</para>
- </listitem>
-
- <listitem>
- <para>If there is an incompatible change, bump major number</para>
- </listitem>
- </itemizedlist>
-
- <para>For instance, added functions and bugfixes result in the minor
- version number being bumped, while deleted functions, changed function
- call syntax etc. will force the major version number to change.</para>
-
- <para>Stick to version numbers of the form major.minor
- (<replaceable>x</replaceable>.<replaceable>y</replaceable>). Our a.out
- dynamic linker does not handle version numbers of the form
- <replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>
- well. Any version number after the <replaceable>y</replaceable>
- (ie. the third digit) is totally ignored when comparing shared lib
- version numbers to decide which library to link with. Given two shared
- libraries that differ only in the <quote>micro</quote> revision,
- <command>ld.so</command> will link with the higher one. Ie: if you link
- with <filename>libfoo.so.3.3.3</filename>, the linker only records
- <literal>3.3</literal> in the headers, and will link with anything
- starting with
- <replaceable>libfoo.so.3</replaceable>.<replaceable>(anything &gt;=
- 3)</replaceable>.<replaceable>(highest
- available)</replaceable>.</para>
-
- <note>
- <para><command>ld.so</command> will always use the highest
- <quote>minor</quote> revision. Ie: it will use
- <filename>libc.so.2.2</filename> in preference to
- <filename>libc.so.2.0</filename>, even if the program was initially
- linked with <filename>libc.so.2.0</filename>.</para>
- </note>
-
- <para>In addition, our ELF dynamic linker does not handle minor version
- numbers at all. However, one should still specify a major and minor
- version number as our <filename>Makefile</filename>s "do the right thing"
- based on the type of system.</para>
-
- <para>For non-port libraries, it is also our policy to change the shared
- library version number only once between releases. In addition, it is
- our policy to change the major shared library version number only once
- between major OS releases. Ie: X.0 to (X+1).0. When you make a
- change to a system library that requires the version number to be
- bumped, check the <filename>Makefile</filename>'s commit logs. It is the
- responsibility of the committer to ensure that the first such change
- since the release will result in the shared library version number in
- the <filename>Makefile</filename> to be updated, and any subsequent
- changes will not.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/developers-handbook/scsi/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/scsi/chapter.sgml
deleted file mode 100644
index 63b8d5475d..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/scsi/chapter.sgml
+++ /dev/null
@@ -1,1983 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/scsi/chapter.sgml,v 1.2 2001/04/09 00:33:44 dd Exp $
--->
-
-<chapter id="scsi">
- <title>Common Access Method SCSI Controllers</title>
-
- <para><emphasis>This chapter was written by &a.babkin;
- Modifications for the handbook made by
- &a.murray;.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>This document assumes that the reader has a general
- understanding of device drivers in FreeBSD and of the SCSI
- protocol. Much of the information in this document was
- extracted from the drivers :</para>
-
- <itemizedlist>
-
- <listitem><para>ncr (<filename>/sys/pci/ncr.c</filename>) by
- Wolfgang Stanglmeier and Stefan Esser</para></listitem>
-
- <listitem><para>sym (<filename>/sys/pci/sym.c</filename>) by
- Gerard Roudier</para></listitem>
-
- <listitem><para>aic7xxx
- (<filename>/sys/dev/aic7xxx/aic7xxx.c</filename>) by Justin
- T. Gibbs</para></listitem>
-
- </itemizedlist>
-
- <para>and from the CAM code itself (by Justing T. Gibbs, see
- <filename>/sys/cam/*</filename>). When some solution looked the
- most logical and was essentially verbatim extracted from the code
- by Justin Gibbs, I marked it as "recommended".</para>
-
- <para>The document is illustrated with examples in
- pseudo-code. Although sometimes the examples have many details
- and look like real code, it's still pseudo-code. It was written
- to demonstrate the concepts in an understandable way. For a real
- driver other approaches may be more modular and efficient. It
- also abstracts from the hardware details, as well as issues that
- would cloud the demonstrated concepts or that are supposed to be
- described in the other chapters of the developers handbook. Such
- details are commonly shown as calls to functions with descriptive
- names, comments or pseudo-statements. Fortunately real life
- full-size examples with all the details can be found in the real
- drivers.</para>
-
- </sect1>
-
- <sect1>
- <title>General architecture</title>
-
- <para>CAM stands for Common Access Method. It's a generic way to
- address the I/O buses in a SCSI-like way. This allows a
- separation of the generic device drivers from the drivers
- controlling the I/O bus: for example the disk driver becomes able
- to control disks on both SCSI, IDE, and/or any other bus so the
- disk driver portion does not have to be rewritten (or copied and
- modified) for every new I/O bus. Thus the two most important
- active entities are:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>Peripheral Modules</emphasis> - a
- driver for peripheral devices (disk, tape, CDROM,
- etc.)</para></listitem>
- <listitem><para><emphasis>SCSI Interface Modules </emphasis>(SIM)
- - a Host Bus Adapter drivers for connecting to an I/O bus such
- as SCSI or IDE.</para></listitem>
- </itemizedlist>
-
- <para>A peripheral driver receives requests from the OS, converts
- them to a sequence of SCSI commands and passes these SCSI
- commands to a SCSI Interface Module. The SCSI Interface Module
- is responsible for passing these commands to the actual hardware
- (or if the actual hardware is not SCSI but, for example, IDE
- then also converting the SCSI commands to the native commands of
- the hardware).</para>
-
- <para>Because we are interested in writing a SCSI adapter driver
- here, from this point on we will consider everything from the
- SIM standpoint.</para>
-
- <para>A typical SIM driver needs to include the following
- CAM-related header files:</para>
-
-<programlisting>#include &lt;cam/cam.h&gt;
-#include &lt;cam/cam_ccb.h&gt;
-#include &lt;cam/cam_sim.h&gt;
-#include &lt;cam/cam_xpt_sim.h&gt;
-#include &lt;cam/cam_debug.h&gt;
-#include &lt;cam/scsi/scsi_all.h&gt;</programlisting>
-
- <para>The first thing each SIM driver must do is register itself
- with the CAM subsystem. This is done during the driver's
- <function>xxx_attach()</function> function (here and further
- xxx_ is used to denote the unique driver name prefix). The
- <function>xxx_attach()</function> function itself is called by
- the system bus auto-configuration code which we don't describe
- here.</para>
-
- <para>This is achieved in multiple steps: first it's necessary to
- allocate the queue of requests associated with this SIM:</para>
-
-<programlisting> struct cam_devq *devq;
-
- if(( devq = cam_simq_alloc(SIZE) )==NULL) {
- error; /* some code to handle the error */
- }</programlisting>
-
- <para>Here SIZE is the size of the queue to be allocated, maximal
- number of requests it could contain. It's the number of requests
- that the SIM driver can handle in parallel on one SCSI
- card. Commonly it can be calculated as:</para>
-
-<programlisting>SIZE = NUMBER_OF_SUPPORTED_TARGETS * MAX_SIMULTANEOUS_COMMANDS_PER_TARGET</programlisting>
-
- <para>Next we create a descriptor of our SIM:</para>
-
-<programlisting> struct cam_sim *sim;
-
- if(( sim = cam_sim_alloc(action_func, poll_func, driver_name,
- softc, unit, max_dev_transactions,
- max_tagged_dev_transactions, devq) )==NULL) {
- cam_simq_free(devq);
- error; /* some code to handle the error */
- }</programlisting>
-
- <para>Note that if we are not able to create a SIM descriptor we
- free the <structname>devq</structname> also because we can do
- nothing else with it and we want to conserve memory.</para>
-
- <para>If a SCSI card has multiple SCSI buses on it then each bus
- requires its own <structname>cam_sim</structname>
- structure.</para>
-
- <para>An interesting question is what to do if a SCSI card has
- more than one SCSI bus, do we need one
- <structname>devq</structname> structure per card or per SCSI
- bus? The answer given in the comments to the CAM code is:
- either way, as the driver's author prefers.</para>
-
- <para>The arguments are :
- <itemizedlist>
-
- <listitem><para><function>action_func</function> - pointer to
- the driver's <function>xxx_action</function> function.
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_action</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>,
- <parameter>union ccb *ccb</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
- </para></listitem>
-
- <listitem><para><function>poll_func</function> - pointer to
- the driver's <function>xxx_poll()</function>
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_poll</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
- </para></listitem>
-
- <listitem><para>driver_name - the name of the actual driver,
- such as "ncr" or "wds"</para></listitem>
-
- <listitem><para><structName>softc</structName> - pointer to the
- driver's internal descriptor for this SCSI card. This
- pointer will be used by the driver in future to get private
- data.</para></listitem>
-
- <listitem><para>unit - the controller unit number, for example
- for controller "wds0" this number will be
- 0</para></listitem>
-
- <listitem><para>max_dev_transactions - maximal number of
- simultaneous transactions per SCSI target in the non-tagged
- mode. This value will be almost universally equal to 1, with
- possible exceptions only for the non-SCSI cards. Also the
- drivers that hope to take advantage by preparing one
- transaction while another one is executed may set it to 2
- but this does not seem to be worth the
- complexity.</para></listitem>
-
- <listitem><para>max_tagged_dev_transactions - the same thing,
- but in the tagged mode. Tags are the SCSI way to initiate
- multiple transactions on a device: each transaction is
- assigned a unique tag and the transaction is sent to the
- device. When the device completes some transaction it sends
- back the result together with the tag so that the SCSI
- adapter (and the driver) can tell which transaction was
- completed. This argument is also known as the maximal tag
- depth. It depends on the abilities of the SCSI
- adapter.</para></listitem>
- </itemizedlist>
- </para>
-
- <para>Finally we register the SCSI buses associated with our SCSI
- adapter:</para>
-
-<programlisting> if(xpt_bus_register(sim, bus_number) != CAM_SUCCESS) {
- cam_sim_free(sim, /*free_devq*/ TRUE);
- error; /* some code to handle the error */
- }</programlisting>
-
- <para>If there is one <structName>devq</structName> structure per
- SCSI bus (i.e. we consider a card with multiple buses as
- multiple cards with one bus each) then the bus number will
- always be 0, otherwise each bus on the SCSI card should be get a
- distinct number. Each bus needs its own separate structure
- cam_sim.</para>
-
- <para>After that our controller is completely hooked to the CAM
- system. The value of <structName>devq</structName> can be
- discarded now: sim will be passed as an argument in all further
- calls from CAM and devq can be derived from it.</para>
-
- <para>CAM provides the framework for such asynchronous
- events. Some events originate from the lower levels (the SIM
- drivers), some events originate from the peripheral drivers,
- some events originate from the CAM subsystem itself. Any driver
- can register callbacks for some types of the asynchronous
- events, so that it would be notified if these events
- occur.</para>
-
- <para>A typical example of such an event is a device reset. Each
- transaction and event identifies the devices to which it applies
- by the means of "path". The target-specific events normally
- occur during a transaction with this device. So the path from
- that transaction may be re-used to report this event (this is
- safe because the event path is copied in the event reporting
- routine but not deallocated nor passed anywhere further). Also
- it's safe to allocate paths dynamically at any time including
- the interrupt routines, although that incurs certain overhead,
- and a possible problem with this approach is that there may be
- no free memory at that time. For a bus reset event we need to
- define a wildcard path including all devices on the bus. So we
- can create the path for the future bus reset events in advance
- and avoid problems with the future memory shortage:</para>
-
-<programlisting> struct cam_path *path;
-
- if(xpt_create_path(&amp;path, /*periph*/NULL,
- cam_sim_path(sim), CAM_TARGET_WILDCARD,
- CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
- xpt_bus_deregister(cam_sim_path(sim));
- cam_sim_free(sim, /*free_devq*/TRUE);
- error; /* some code to handle the error */
- }
-
- softc->wpath = path;
- softc->sim = sim;</programlisting>
-
- <para>As you can see the path includes:</para>
-
- <itemizedlist>
- <listitem><para>ID of the peripheral driver (NULL here because we have
- none)</para></listitem>
-
- <listitem><para>ID of the SIM driver
- (<function>cam_sim_path(sim)</function>)</para></listitem>
-
- <listitem><para>SCSI target number of the device (CAM_TARGET_WILDCARD
- means "all devices")</para></listitem>
-
- <listitem><para>SCSI LUN number of the subdevice (CAM_LUN_WILDCARD means
- "all LUNs")</para></listitem>
- </itemizedlist>
-
- <para>If the driver can't allocate this path it won't be able to
- work normally, so in that case we dismantle that SCSI
- bus.</para>
-
- <para>And we save the path pointer in the
- <structName>softc</structName> structure for future use. After
- that we save the value of sim (or we can also discard it on the
- exit from <function>xxx_probe()</function> if we wish).</para>
-
- <para>That's all for a minimalistic initialization. To do things
- right there is one more issue left. </para>
-
- <para>For a SIM driver there is one particularly interesting
- event: when a target device is considered lost. In this case
- resetting the SCSI negotiations with this device may be a good
- idea. So we register a callback for this event with CAM. The
- request is passed to CAM by requesting CAM action on a CAM
- control block for this type of request:</para>
-
-<programlisting> struct ccb_setasync csa;
-
- xpt_setup_ccb(&amp;csa.ccb_h, path, /*priority*/5);
- csa.ccb_h.func_code = XPT_SASYNC_CB;
- csa.event_enable = AC_LOST_DEVICE;
- csa.callback = xxx_async;
- csa.callback_arg = sim;
- xpt_action((union ccb *)&amp;csa);</programlisting>
-
- <para>Now we take a look at the <function>xxx_action()</function>
- and <function>xxx_poll()</function> driver entry points.</para>
-
- <para>
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_action</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>,
- <parameter>union ccb *ccb</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
- </para>
-
- <para>Do some action on request of the CAM subsystem. Sim
- describes the SIM for the request, CCB is the request
- itself. CCB stands for "CAM Control Block". It is a union of
- many specific instances, each describing arguments for some type
- of transactions. All of these instances share the CCB header
- where the common part of arguments is stored.</para>
-
- <para>CAM supports the SCSI controllers working in both initiator
- ("normal") mode and target (simulating a SCSI device) mode. Here
- we only consider the part relevant to the initiator mode.</para>
-
- <para>There are a few function and macros (in other words,
- methods) defined to access the public data in the struct sim:</para>
-
- <itemizedlist>
- <listitem><para><function>cam_sim_path(sim)</function> - the
- path ID (see above)</para></listitem>
-
- <listitem><para><function>cam_sim_name(sim)</function> - the
- name of the sim</para></listitem>
-
- <listitem><para><function>cam_sim_softc(sim)</function> - the
- pointer to the softc (driver private data)
- structure</para></listitem>
-
- <listitem><para><function> cam_sim_unit(sim)</function> - the
- unit number</para></listitem>
-
- <listitem><para><function> cam_sim_bus(sim)</function> - the bus
- ID</para></listitem>
- </itemizedlist>
-
- <para>To identify the device, <function>xxx_action()</function> can
- get the unit number and pointer to its structure softc using
- these functions.</para>
-
- <para>The type of request is stored in
- <structField>ccb-&gt;ccb_h.func_code</structField>. So generally
- <function>xxx_action()</function> consists of a big
- switch:</para>
-
-<programlisting> struct xxx_softc *softc = (struct xxx_softc *) cam_sim_softc(sim);
- struct ccb_hdr *ccb_h = &amp;ccb->ccb_h;
- int unit = cam_sim_unit(sim);
- int bus = cam_sim_bus(sim);
-
- switch(ccb_h->func_code) {
- case ...:
- ...
- default:
- ccb_h->status = CAM_REQ_INVALID;
- xpt_done(ccb);
- break;
- }</programlisting>
-
- <para>As can be seen from the default case (if an unknown command
- was received) the return code of the command is set into
- <structField>ccb-&gt;ccb_h.status</structField> and the completed
- CCB is returned back to CAM by calling
- <function>xpt_done(ccb)</function>. </para>
-
- <para><function>xpt_done()</function> does not have to be called
- from <function>xxx_action()</function>: For example an I/O
- request may be enqueued inside the SIM driver and/or its SCSI
- controller. Then when the device would post an interrupt
- signaling that the processing of this request is complete
- <function>xpt_done()</function> may be called from the interrupt
- handling routine.</para>
-
- <para>Actually, the CCB status is not only assigned as a return
- code but a CCB has some status all the time. Before CCB is
- passed to the <function>xxx_action()</function> routine it gets
- the status CCB_REQ_INPROG meaning that it's in progress. There
- are a surprising number of status values defined in
- <filename>/sys/cam/cam.h</filename> which should be able to
- represent the status of a request in great detail. More
- interesting yet, the status is in fact a "bitwise or" of an
- enumerated status value (the lower 6 bits) and possible
- additional flag-like bits (the upper bits). The enumerated
- values will be discussed later in more detail. The summary of
- them can be found in the Errors Summary section. The possible
- status flags are:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>CAM_DEV_QFRZN</emphasis> - if the
- SIM driver gets a serious error (for example, the device does
- not respond to the selection or breaks the SCSI protocol) when
- processing a CCB it should freeze the request queue by calling
- <function>xpt_freeze_simq()</function>, return the other
- enqueued but not processed yet CCBs for this device back to
- the CAM queue, then set this flag for the troublesome CCB and
- call <function>xpt_done()</function>. This flag causes the CAM
- subsystem to unfreeze the queue after it handles the
- error.</para></listitem>
-
- <listitem><para><emphasis>CAM_AUTOSNS_VALID</emphasis> - if
- the device returned an error condition and the flag
- CAM_DIS_AUTOSENSE is not set in CCB the SIM driver must
- execute the REQUEST SENSE command automatically to extract the
- sense (extended error information) data from the device. If
- this attempt was successful the sense data should be saved in
- the CCB and this flag set.</para></listitem>
-
- <listitem><para><emphasis>CAM_RELEASE_SIMQ</emphasis> - like
- CAM_DEV_QFRZN but used in case there is some problem (or
- resource shortage) with the SCSI controller itself. Then all
- the future requests to the controller should be stopped by
- <function>xpt_freeze_simq()</function>. The controller queue
- will be restarted after the SIM driver overcomes the shortage
- and informs CAM by returning some CCB with this flag
- set.</para></listitem>
-
- <listitem><para><emphasis>CAM_SIM_QUEUED</emphasis> - when SIM
- puts a CCB into its request queue this flag should be set (and
- removed when this CCB gets dequeued before being returned back
- to CAM). This flag is not used anywhere in the CAM code now,
- so its purpose is purely diagnostic.</para></listitem>
-
- </itemizedlist>
-
- <para>The function <function>xxx_action()</function> is not
- allowed to sleep, so all the synchronization for resource access
- must be done using SIM or device queue freezing. Besides the
- aforementioned flags the CAM subsystem provides functions
- <function>xpt_selease_simq()</function> and
- <function>xpt_release_devq()</function> to unfreeze the queues
- directly, without passing a CCB to CAM.</para>
-
- <para>The CCB header contains the following fields:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>path</emphasis> - path ID for the
- request</para></listitem>
-
- <listitem><para><emphasis>target_id</emphasis> - target device
- ID for the request</para></listitem>
-
- <listitem><para><emphasis>target_lun</emphasis> - LUN ID of
- the target device</para></listitem>
-
- <listitem><para><emphasis>timeout</emphasis> - timeout
- interval for this command, in milliseconds</para></listitem>
-
- <listitem><para><emphasis>timeout_ch</emphasis> - a
- convenience place for the SIM driver to store the timeout handle
- (the CAM subsystem itself does not make any assumptions about
- it)</para></listitem>
-
- <listitem><para><emphasis>flags</emphasis> - various bits of
- information about the request spriv_ptr0, spriv_ptr1 - fields
- reserved for private use by the SIM driver (such as linking to
- the SIM queues or SIM private control blocks); actually, they
- exist as unions: spriv_ptr0 and spriv_ptr1 have the type (void
- *), spriv_field0 and spriv_field1 have the type unsigned long,
- sim_priv.entries[0].bytes and sim_priv.entries[1].bytes are byte
- arrays of the size consistent with the other incarnations of the
- union and sim_priv.bytes is one array, twice
- bigger.</para></listitem>
-
- </itemizedlist>
-
- <para>The recommended way of using the SIM private fields of CCB
- is to define some meaningful names for them and use these
- meaningful names in the driver, like:</para>
-
-<programlisting>#define ccb_some_meaningful_name sim_priv.entries[0].bytes
-#define ccb_hcb spriv_ptr1 /* for hardware control block */</programlisting>
-
- <para>The most common initiator mode requests are:</para>
- <itemizedlist>
- <listitem><para><emphasis>XPT_SCSI_IO</emphasis> - execute an
- I/O transaction</para>
-
- <para>The instance "struct ccb_scsiio csio" of the union ccb is
- used to transfer the arguments. They are:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>cdb_io</emphasis> - pointer to
- the SCSI command buffer or the buffer
- itself</para></listitem>
-
- <listitem><para><emphasis>cdb_len</emphasis> - SCSI
- command length</para></listitem>
-
- <listitem><para><emphasis>data_ptr</emphasis> - pointer to
- the data buffer (gets a bit complicated if scatter/gather is
- used)</para></listitem>
-
- <listitem><para><emphasis>dxfer_len</emphasis> - length of
- the data to transfer</para></listitem>
-
- <listitem><para><emphasis>sglist_cnt</emphasis> - counter
- of the scatter/gather segments</para></listitem>
-
- <listitem><para><emphasis>scsi_status</emphasis> - place
- to return the SCSI status</para></listitem>
-
- <listitem><para><emphasis>sense_data</emphasis> - buffer
- for the SCSI sense information if the command returns an
- error (the SIM driver is supposed to run the REQUEST SENSE
- command automatically in this case if the CCB flag
- CAM_DIS_AUTOSENSE is not set)</para></listitem>
-
- <listitem><para><emphasis>sense_len</emphasis> - the
- length of that buffer (if it happens to be higher than size
- of sense_data the SIM driver must silently assume the
- smaller value) resid, sense_resid - if the transfer of data
- or SCSI sense returned an error these are the returned
- counters of the residual (not transferred) data. They do not
- seem to be especially meaningful, so in a case when they are
- difficult to compute (say, counting bytes in the SCSI
- controller's FIFO buffer) an approximate value will do as
- well. For a successfully completed transfer they must be set
- to zero.</para></listitem>
-
- <listitem><para><emphasis>tag_action</emphasis> - the kind
- of tag to use:
-
- <itemizedlist>
- <listitem><para>CAM_TAG_ACTION_NONE - don't use tags for this
- transaction</para></listitem>
- <listitem><para>MSG_SIMPLE_Q_TAG, MSG_HEAD_OF_Q_TAG,
- MSG_ORDERED_Q_TAG - value equal to the appropriate tag
- message (see /sys/cam/scsi/scsi_message.h); this gives only
- the tag type, the SIM driver must assign the tag value
- itself</para></listitem>
- </itemizedlist>
-
- </para></listitem>
-
- </itemizedlist>
-
- <para>The general logic of handling this request is the
- following:</para>
-
- <para>The first thing to do is to check for possible races, to
- make sure that the command did not get aborted when it was
- sitting in the queue:</para>
-
-<programlisting> struct ccb_scsiio *csio = &amp;ccb->csio;
-
- if ((ccb_h->status &amp; CAM_STATUS_MASK) != CAM_REQ_INPROG) {
- xpt_done(ccb);
- return;
- }</programlisting>
-
- <para>Also we check that the device is supported at all by our
- controller:</para>
-
-<programlisting> if(ccb_h->target_id > OUR_MAX_SUPPORTED_TARGET_ID
- || cch_h->target_id == OUR_SCSI_CONTROLLERS_OWN_ID) {
- ccb_h->status = CAM_TID_INVALID;
- xpt_done(ccb);
- return;
- }
- if(ccb_h->target_lun > OUR_MAX_SUPPORTED_LUN) {
- ccb_h->status = CAM_LUN_INVALID;
- xpt_done(ccb);
- return;
- }</programlisting>
-
- <para>Then allocate whatever data structures (such as
- card-dependent hardware control block) we need to process this
- request. If we can't then freeze the SIM queue and remember
- that we have a pending operation, return the CCB back and ask
- CAM to re-queue it. Later when the resources become available
- the SIM queue must be unfrozen by returning a ccb with the
- CAM_SIMQ_RELEASE bit set in its status. Otherwise, if all went
- well, link the CCB with the hardware control block (HCB) and
- mark it as queued.</para>
-
-<programlisting> struct xxx_hcb *hcb = allocate_hcb(softc, unit, bus);
-
- if(hcb == NULL) {
- softc->flags |= RESOURCE_SHORTAGE;
- xpt_freeze_simq(sim, /*count*/1);
- ccb_h->status = CAM_REQUEUE_REQ;
- xpt_done(ccb);
- return;
- }
-
- hcb->ccb = ccb; ccb_h->ccb_hcb = (void *)hcb;
- ccb_h->status |= CAM_SIM_QUEUED;</programlisting>
-
- <para>Extract the target data from CCB into the hardware control
- block. Check if we are asked to assign a tag and if yes then
- generate an unique tag and build the SCSI tag messages. The
- SIM driver is also responsible for negotiations with the
- devices to set the maximal mutually supported bus width,
- synchronous rate and offset.</para>
-
-<programlisting> hcb->target = ccb_h->target_id; hcb->lun = ccb_h->target_lun;
- generate_identify_message(hcb);
- if( ccb_h->tag_action != CAM_TAG_ACTION_NONE )
- generate_unique_tag_message(hcb, ccb_h->tag_action);
- if( !target_negotiated(hcb) )
- generate_negotiation_messages(hcb);</programlisting>
-
- <para>Then set up the SCSI command. The command storage may be
- specified in the CCB in many interesting ways, specified by
- the CCB flags. The command buffer can be contained in CCB or
- pointed to, in the latter case the pointer may be physical or
- virtual. Since the hardware commonly needs physical address we
- always convert the address to the physical one.</para>
-
- <para>A NOT-QUITE RELATED NOTE: Normally this is done by a call
- to vtophys(), but for the PCI device (which account for most
- of the SCSI controllers now) drivers' portability to the Alpha
- architecture the conversion must be done by vtobus() instead
- due to special Alpha quirks. [IMHO it would be much better to
- have two separate functions, vtop() and ptobus() then vtobus()
- would be a simple superposition of them.] In case if a
- physical address is requested it's OK to return the CCB with
- the status CAM_REQ_INVALID, the current drivers do that. But
- it's also possible to compile the Alpha-specific piece of
- code, as in this example (there should be a more direct way to
- do that, without conditional compilation in the drivers). If
- necessary a physical address can be also converted or mapped
- back to a virtual address but with big pain, so we don't do
- that.</para>
-
-<programlisting> if(ccb_h->flags &amp; CAM_CDB_POINTER) {
- /* CDB is a pointer */
- if(!(ccb_h->flags &amp; CAM_CDB_PHYS)) {
- /* CDB pointer is virtual */
- hcb->cmd = vtobus(csio->cdb_io.cdb_ptr);
- } else {
- /* CDB pointer is physical */
-#if defined(__alpha__)
- hcb->cmd = csio->cdb_io.cdb_ptr | alpha_XXX_dmamap_or ;
-#else
- hcb->cmd = csio->cdb_io.cdb_ptr ;
-#endif
- }
- } else {
- /* CDB is in the ccb (buffer) */
- hcb->cmd = vtobus(csio->cdb_io.cdb_bytes);
- }
- hcb->cmdlen = csio->cdb_len;</programlisting>
-
- <para>Now it's time to set up the data. Again, the data storage
- may be specified in the CCB in many interesting ways,
- specified by the CCB flags. First we get the direction of the
- data transfer. The simplest case is if there is no data to
- transfer:</para>
-
-<programlisting> int dir = (ccb_h->flags &amp; CAM_DIR_MASK);
-
- if (dir == CAM_DIR_NONE)
- goto end_data;</programlisting>
-
- <para>Then we check if the data is in one chunk or in a
- scatter-gather list, and the addresses are physical or
- virtual. The SCSI controller may be able to handle only a
- limited number of chunks of limited length. If the request
- hits this limitation we return an error. We use a special
- function to return the CCB to handle in one place the HCB
- resource shortages. The functions to add chunks are
- driver-dependent, and here we leave them without detailed
- implementation. See description of the SCSI command (CDB)
- handling for the details on the address-translation issues.
- If some variation is too difficult or impossible to implement
- with a particular card it's OK to return the status
- CAM_REQ_INVALID. Actually, it seems like the scatter-gather
- ability is not used anywhere in the CAM code now. But at least
- the case for a single non-scattered virtual buffer must be
- implemented, it's actively used by CAM.</para>
-
-<programlisting> int rv;
-
- initialize_hcb_for_data(hcb);
-
- if((!(ccb_h->flags &amp; CAM_SCATTER_VALID)) {
- /* single buffer */
- if(!(ccb_h->flags &amp; CAM_DATA_PHYS)) {
- rv = add_virtual_chunk(hcb, csio->data_ptr, csio->dxfer_len, dir);
- }
- } else {
- rv = add_physical_chunk(hcb, csio->data_ptr, csio->dxfer_len, dir);
- }
- } else {
- int i;
- struct bus_dma_segment *segs;
- segs = (struct bus_dma_segment *)csio->data_ptr;
-
- if ((ccb_h->flags &amp; CAM_SG_LIST_PHYS) != 0) {
- /* The SG list pointer is physical */
- rv = setup_hcb_for_physical_sg_list(hcb, segs, csio->sglist_cnt);
- } else if (!(ccb_h->flags &amp; CAM_DATA_PHYS)) {
- /* SG buffer pointers are virtual */
- for (i = 0; i < csio->sglist_cnt; i++) {
- rv = add_virtual_chunk(hcb, segs[i].ds_addr,
- segs[i].ds_len, dir);
- if (rv != CAM_REQ_CMP)
- break;
- }
- } else {
- /* SG buffer pointers are physical */
- for (i = 0; i < csio->sglist_cnt; i++) {
- rv = add_physical_chunk(hcb, segs[i].ds_addr,
- segs[i].ds_len, dir);
- if (rv != CAM_REQ_CMP)
- break;
- }
- }
- }
- if(rv != CAM_REQ_CMP) {
- /* we expect that add_*_chunk() functions return CAM_REQ_CMP
- * if they added a chunk successfully, CAM_REQ_TOO_BIG if
- * the request is too big (too many bytes or too many chunks),
- * CAM_REQ_INVALID in case of other troubles
- */
- free_hcb_and_ccb_done(hcb, ccb, rv);
- return;
- }
- end_data:</programlisting>
-
- <para>If disconnection is disabled for this CCB we pass this
- information to the hcb:</para>
-
-<programlisting> if(ccb_h->flags &amp; CAM_DIS_DISCONNECT)
- hcb_disable_disconnect(hcb);</programlisting>
-
- <para>If the controller is able to run REQUEST SENSE command all
- by itself then the value of the flag CAM_DIS_AUTOSENSE should
- also be passed to it, to prevent automatic REQUEST SENSE if the
- CAM subsystem does not want it.</para>
-
- <para>The only thing left is to set up the timeout, pass our hcb
- to the hardware and return, the rest will be done by the
- interrupt handler (or timeout handler).</para>
-
-<programlisting> ccb_h->timeout_ch = timeout(xxx_timeout, (caddr_t) hcb,
- (ccb_h->timeout * hz) / 1000); /* convert milliseconds to ticks */
- put_hcb_into_hardware_queue(hcb);
- return;</programlisting>
-
- <para>And here is a possible implementation of the function
- returning CCB:</para>
-
-<programlisting> static void
- free_hcb_and_ccb_done(struct xxx_hcb *hcb, union ccb *ccb, u_int32_t status)
- {
- struct xxx_softc *softc = hcb->softc;
-
- ccb->ccb_h.ccb_hcb = 0;
- if(hcb != NULL) {
- untimeout(xxx_timeout, (caddr_t) hcb, ccb->ccb_h.timeout_ch);
- /* we're about to free a hcb, so the shortage has ended */
- if(softc->flags &amp; RESOURCE_SHORTAGE) {
- softc->flags &amp;= ~RESOURCE_SHORTAGE;
- status |= CAM_RELEASE_SIMQ;
- }
- free_hcb(hcb); /* also removes hcb from any internal lists */
- }
- ccb->ccb_h.status = status |
- (ccb->ccb_h.status &amp; ~(CAM_STATUS_MASK|CAM_SIM_QUEUED));
- xpt_done(ccb);
- }</programlisting>
- </listitem>
-
- <listitem><para><emphasis>XPT_RESET_DEV</emphasis> - send the SCSI "BUS
- DEVICE RESET" message to a device</para>
-
- <para>There is no data transferred in CCB except the header and
- the most interesting argument of it is target_id. Depending on
- the controller hardware a hardware control block just like for
- the XPT_SCSI_IO request may be constructed (see XPT_SCSI_IO
- request description) and sent to the controller or the SCSI
- controller may be immediately programmed to send this RESET
- message to the device or this request may be just not supported
- (and return the status CAM_REQ_INVALID). Also on completion of
- the request all the disconnected transactions for this target
- must be aborted (probably in the interrupt routine).</para>
-
- <para>Also all the current negotiations for the target are lost on
- reset, so they might be cleaned too. Or they clearing may be
- deferred, because anyway the target would request re-negotiation
- on the next transaction.</para></listitem>
-
- <listitem><para><emphasis>XPT_RESET_BUS</emphasis> - send the RESET signal
- to the SCSI bus</para>
-
- <para>No arguments are passed in the CCB, the only interesting
- argument is the SCSI bus indicated by the struct sim
- pointer.</para>
-
- <para>A minimalistic implementation would forget the SCSI
- negotiations for all the devices on the bus and return the
- status CAM_REQ_CMP.</para>
-
- <para>The proper implementation would in addition actually reset
- the SCSI bus (possible also reset the SCSI controller) and mark
- all the CCBs being processed, both those in the hardware queue
- and those being disconnected, as done with the status
- CAM_SCSI_BUS_RESET. Like:</para>
-
-<programlisting> int targ, lun;
- struct xxx_hcb *h, *hh;
- struct ccb_trans_settings neg;
- struct cam_path *path;
-
- /* The SCSI bus reset may take a long time, in this case its completion
- * should be checked by interrupt or timeout. But for simplicity
- * we assume here that it's really fast.
- */
- reset_scsi_bus(softc);
-
- /* drop all enqueued CCBs */
- for(h = softc->first_queued_hcb; h != NULL; h = hh) {
- hh = h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
-
- /* the clean values of negotiations to report */
- neg.bus_width = 8;
- neg.sync_period = neg.sync_offset = 0;
- neg.valid = (CCB_TRANS_BUS_WIDTH_VALID
- | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);
-
- /* drop all disconnected CCBs and clean negotiations */
- for(targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) {
- clean_negotiations(softc, targ);
-
- /* report the event if possible */
- if(xpt_create_path(&amp;path, /*periph*/NULL,
- cam_sim_path(sim), targ,
- CAM_LUN_WILDCARD) == CAM_REQ_CMP) {
- xpt_async(AC_TRANSFER_NEG, path, &amp;neg);
- xpt_free_path(path);
- }
-
- for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++)
- for(h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) {
- hh=h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
- }
-
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
-
- /* report the event */
- xpt_async(AC_BUS_RESET, softc->wpath, NULL);
- return;</programlisting>
-
- <para>Implementing the SCSI bus reset as a function may be a good
- idea because it would be re-used by the timeout function as a
- last resort if the things go wrong.</para></listitem>
-
- <listitem><para><emphasis>XPT_ABORT</emphasis> - abort the specified
- CCB</para>
-
- <para>The arguments are transferred in the instance "struct
- ccb_abort cab" of the union ccb. The only argument field in it
- is:</para>
-
- <para><emphasis>abort_ccb</emphasis> - pointer to the CCB to be
- aborted</para>
-
- <para>If the abort is not supported just return the status
- CAM_UA_ABORT. This is also the easy way to minimally implement
- this call, return CAM_UA_ABORT in any case.</para>
-
- <para>The hard way is to implement this request honestly. First
- check that abort applies to a SCSI transaction:</para>
-
-<programlisting> struct ccb *abort_ccb;
- abort_ccb = ccb->cab.abort_ccb;
-
- if(abort_ccb->ccb_h.func_code != XPT_SCSI_IO) {
- ccb->ccb_h.status = CAM_UA_ABORT;
- xpt_done(ccb);
- return;
- }</programlisting>
-
- <para>Then it's necessary to find this CCB in our queue. This can
- be done by walking the list of all our hardware control blocks
- in search for one associated with this CCB:</para>
-
-<programlisting> struct xxx_hcb *hcb, *h;
-
- hcb = NULL;
-
- /* We assume that softc->first_hcb is the head of the list of all
- * HCBs associated with this bus, including those enqueued for
- * processing, being processed by hardware and disconnected ones.
- */
- for(h = softc->first_hcb; h != NULL; h = h->next) {
- if(h->ccb == abort_ccb) {
- hcb = h;
- break;
- }
- }
-
- if(hcb == NULL) {
- /* no such CCB in our queue */
- ccb->ccb_h.status = CAM_PATH_INVALID;
- xpt_done(ccb);
- return;
- }
-
- hcb=found_hcb;</programlisting>
-
- <para>Now we look at the current processing status of the HCB. It
- may be either sitting in the queue waiting to be sent to the
- SCSI bus, being transferred right now, or disconnected and
- waiting for the result of the command, or actually completed by
- hardware but not yet marked as done by software. To make sure
- that we don't get in any races with hardware we mark the HCB as
- being aborted, so that if this HCB is about to be sent to the
- SCSI bus the SCSI controller will see this flag and skip
- it.</para>
-
-<programlisting> int hstatus;
-
- /* shown as a function, in case special action is needed to make
- * this flag visible to hardware
- */
- set_hcb_flags(hcb, HCB_BEING_ABORTED);
-
- abort_again:
-
- hstatus = get_hcb_status(hcb);
- switch(hstatus) {
- case HCB_SITTING_IN_QUEUE:
- remove_hcb_from_hardware_queue(hcb);
- /* FALLTHROUGH */
- case HCB_COMPLETED:
- /* this is an easy case */
- free_hcb_and_ccb_done(hcb, abort_ccb, CAM_REQ_ABORTED);
- break;</programlisting>
-
- <para>If the CCB is being transferred right now we would like to
- signal to the SCSI controller in some hardware-dependent way
- that we want to abort the current transfer. The SCSI controller
- would set the SCSI ATTENTION signal and when the target responds
- to it send an ABORT message. We also reset the timeout to make
- sure that the target is not sleeping forever. If the command
- would not get aborted in some reasonable time like 10 seconds
- the timeout routine would go ahead and reset the whole SCSI bus.
- Because the command will be aborted in some reasonable time we
- can just return the abort request now as successfully completed,
- and mark the aborted CCB as aborted (but not mark it as done
- yet).</para>
-
-<programlisting> case HCB_BEING_TRANSFERRED:
- untimeout(xxx_timeout, (caddr_t) hcb, abort_ccb->ccb_h.timeout_ch);
- abort_ccb->ccb_h.timeout_ch =
- timeout(xxx_timeout, (caddr_t) hcb, 10 * hz);
- abort_ccb->ccb_h.status = CAM_REQ_ABORTED;
- /* ask the controller to abort that HCB, then generate
- * an interrupt and stop
- */
- if(signal_hardware_to_abort_hcb_and_stop(hcb) < 0) {
- /* oops, we missed the race with hardware, this transaction
- * got off the bus before we aborted it, try again */
- goto abort_again;
- }
-
- break;</programlisting>
-
- <para>If the CCB is in the list of disconnected then set it up as
- an abort request and re-queue it at the front of hardware
- queue. Reset the timeout and report the abort request to be
- completed.</para>
-
-<programlisting> case HCB_DISCONNECTED:
- untimeout(xxx_timeout, (caddr_t) hcb, abort_ccb->ccb_h.timeout_ch);
- abort_ccb->ccb_h.timeout_ch =
- timeout(xxx_timeout, (caddr_t) hcb, 10 * hz);
- put_abort_message_into_hcb(hcb);
- put_hcb_at_the_front_of_hardware_queue(hcb);
- break;
- }
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
-
- <para>That's all for the ABORT request, although there is one more
- issue. Because the ABORT message cleans all the ongoing
- transactions on a LUN we have to mark all the other active
- transactions on this LUN as aborted. That should be done in the
- interrupt routine, after the transaction gets aborted.</para>
-
- <para>Implementing the CCB abort as a function may be quite a good
- idea, this function can be re-used if an I/O transaction times
- out. The only difference would be that the timed out transaction
- would return the status CAM_CMD_TIMEOUT for the timed out
- request. Then the case XPT_ABORT would be small, like
- that:</para>
-
-<programlisting> case XPT_ABORT:
- struct ccb *abort_ccb;
- abort_ccb = ccb->cab.abort_ccb;
-
- if(abort_ccb->ccb_h.func_code != XPT_SCSI_IO) {
- ccb->ccb_h.status = CAM_UA_ABORT;
- xpt_done(ccb);
- return;
- }
- if(xxx_abort_ccb(abort_ccb, CAM_REQ_ABORTED) < 0)
- /* no such CCB in our queue */
- ccb->ccb_h.status = CAM_PATH_INVALID;
- else
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
- </listitem>
-
- <listitem><para><emphasis>XPT_SET_TRAN_SETTINGS</emphasis> - explicitly
- set values of SCSI transfer settings</para>
-
- <para>The arguments are transferred in the instance "struct ccb_trans_setting cts"
-of the union ccb:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>valid</emphasis> - a bitmask showing
- which settings should be updated:</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_SYNC_RATE_VALID</emphasis>
- - synchronous transfer rate</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_SYNC_OFFSET_VALID</emphasis>
- - synchronous offset</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_BUS_WIDTH_VALID</emphasis>
- - bus width</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_DISC_VALID</emphasis> -
- set enable/disable disconnection</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_TQ_VALID</emphasis> - set
- enable/disable tagged queuing</para></listitem>
-
- <listitem><para><emphasis>flags</emphasis> - consists of two
- parts, binary arguments and identification of
- sub-operations. The binary arguments are :</para>
- <itemizedlist>
- <listitem><para><emphasis>CCB_TRANS_DISC_ENB</emphasis> - enable disconnection</para></listitem>
- <listitem><para><emphasis>CCB_TRANS_TAG_ENB</emphasis> -
- enable tagged queuing</para></listitem>
- </itemizedlist>
- </listitem>
-
- <listitem><para>the sub-operations are:</para>
- <itemizedlist>
- <listitem><para><emphasis>CCB_TRANS_CURRENT_SETTINGS</emphasis>
- - change the current negotiations</para></listitem>
-
- <listitem><para><emphasis>CCB_TRANS_USER_SETTINGS</emphasis>
- - remember the desired user values sync_period, sync_offset -
- self-explanatory, if sync_offset==0 then the asynchronous mode
- is requested bus_width - bus width, in bits (not
- bytes)</para></listitem>
- </itemizedlist>
- </listitem>
-
- </itemizedlist>
-
- <para>Two sets of negotiated parameters are supported, the user
- settings and the current settings. The user settings are not
- really used much in the SIM drivers, this is mostly just a piece
- of memory where the upper levels can store (and later recall)
- its ideas about the parameters. Setting the user parameters
- does not cause re-negotiation of the transfer rates. But when
- the SCSI controller does a negotiation it must never set the
- values higher than the user parameters, so it's essentially the
- top boundary.</para>
-
- <para>The current settings are, as the name says,
- current. Changing them means that the parameters must be
- re-negotiated on the next transfer. Again, these "new current
- settings" are not supposed to be forced on the device, just they
- are used as the initial step of negotiations. Also they must be
- limited by actual capabilities of the SCSI controller: for
- example, if the SCSI controller has 8-bit bus and the request
- asks to set 16-bit wide transfers this parameter must be
- silently truncated to 8-bit transfers before sending it to the
- device.</para>
-
- <para>One caveat is that the bus width and synchronous parameters
- are per target while the disconnection and tag enabling
- parameters are per lun.</para>
-
- <para>The recommended implementation is to keep 3 sets of
- negotiated (bus width and synchronous transfer)
- parameters:</para>
-
- <itemizedlist>
- <listitem><para><emphasis>user</emphasis> - the user set, as
- above</para></listitem>
-
- <listitem><para><emphasis>current</emphasis> - those actually
- in effect</para></listitem>
-
- <listitem><para><emphasis>goal</emphasis> - those requested by
- setting of the "current" parameters</para></listitem>
- </itemizedlist>
-
- <para>The code looks like:</para>
-
-<programlisting> struct ccb_trans_settings *cts;
- int targ, lun;
- int flags;
-
- cts = &amp;ccb->cts;
- targ = ccb_h->target_id;
- lun = ccb_h->target_lun;
- flags = cts->flags;
- if(flags &amp; CCB_TRANS_USER_SETTINGS) {
- if(flags &amp; CCB_TRANS_SYNC_RATE_VALID)
- softc->user_sync_period[targ] = cts->sync_period;
- if(flags &amp; CCB_TRANS_SYNC_OFFSET_VALID)
- softc->user_sync_offset[targ] = cts->sync_offset;
- if(flags &amp; CCB_TRANS_BUS_WIDTH_VALID)
- softc->user_bus_width[targ] = cts->bus_width;
-
- if(flags &amp; CCB_TRANS_DISC_VALID) {
- softc->user_tflags[targ][lun] &amp;= ~CCB_TRANS_DISC_ENB;
- softc->user_tflags[targ][lun] |= flags &amp; CCB_TRANS_DISC_ENB;
- }
- if(flags &amp; CCB_TRANS_TQ_VALID) {
- softc->user_tflags[targ][lun] &amp;= ~CCB_TRANS_TQ_ENB;
- softc->user_tflags[targ][lun] |= flags &amp; CCB_TRANS_TQ_ENB;
- }
- }
- if(flags &amp; CCB_TRANS_CURRENT_SETTINGS) {
- if(flags &amp; CCB_TRANS_SYNC_RATE_VALID)
- softc->goal_sync_period[targ] =
- max(cts->sync_period, OUR_MIN_SUPPORTED_PERIOD);
- if(flags &amp; CCB_TRANS_SYNC_OFFSET_VALID)
- softc->goal_sync_offset[targ] =
- min(cts->sync_offset, OUR_MAX_SUPPORTED_OFFSET);
- if(flags &amp; CCB_TRANS_BUS_WIDTH_VALID)
- softc->goal_bus_width[targ] = min(cts->bus_width, OUR_BUS_WIDTH);
-
- if(flags &amp; CCB_TRANS_DISC_VALID) {
- softc->current_tflags[targ][lun] &amp;= ~CCB_TRANS_DISC_ENB;
- softc->current_tflags[targ][lun] |= flags &amp; CCB_TRANS_DISC_ENB;
- }
- if(flags &amp; CCB_TRANS_TQ_VALID) {
- softc->current_tflags[targ][lun] &amp;= ~CCB_TRANS_TQ_ENB;
- softc->current_tflags[targ][lun] |= flags &amp; CCB_TRANS_TQ_ENB;
- }
- }
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
-
- <para>Then when the next I/O request will be processed it will
- check if it has to re-negotiate, for example by calling the
- function target_negotiated(hcb). It can be implemented like
- this:</para>
-
-<programlisting> int
- target_negotiated(struct xxx_hcb *hcb)
- {
- struct softc *softc = hcb->softc;
- int targ = hcb->targ;
-
- if( softc->current_sync_period[targ] != softc->goal_sync_period[targ]
- || softc->current_sync_offset[targ] != softc->goal_sync_offset[targ]
- || softc->current_bus_width[targ] != softc->goal_bus_width[targ] )
- return 0; /* FALSE */
- else
- return 1; /* TRUE */
- }</programlisting>
-
- <para>After the values are re-negotiated the resulting values must
- be assigned to both current and goal parameters, so for future
- I/O transactions the current and goal parameters would be the
- same and <function>target_negotiated()</function> would return
- TRUE. When the card is initialized (in
- <function>xxx_attach()</function>) the current negotiation
- values must be initialized to narrow asynchronous mode, the goal
- and current values must be initialized to the maximal values
- supported by controller.</para></listitem>
-
- <listitem><para><emphasis>XPT_GET_TRAN_SETTINGS</emphasis> - get values of
- SCSI transfer settings</para>
-
- <para>This operations is the reverse of
- XPT_SET_TRAN_SETTINGS. Fill up the CCB instance "struct
- ccb_trans_setting cts" with data as requested by the flags
- CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both
- are set then the existing drivers return the current
- settings). Set all the bits in the valid field.</para></listitem>
-
- <listitem><para><emphasis>XPT_CALC_GEOMETRY</emphasis> - calculate logical
- (BIOS) geometry of the disk</para>
-
- <para>The arguments are transferred in the instance "struct
- ccb_calc_geometry ccg" of the union ccb:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>block_size</emphasis> - input, block
- (A.K.A sector) size in bytes</para></listitem>
-
- <listitem><para><emphasis>volume_size</emphasis> - input,
- volume size in bytes</para></listitem>
-
- <listitem><para><emphasis>cylinders</emphasis> - output,
- logical cylinders</para></listitem>
-
- <listitem><para><emphasis>heads</emphasis> - output, logical
- heads</para></listitem>
-
- <listitem><para><emphasis>secs_per_track</emphasis> - output,
- logical sectors per track</para></listitem>
-
- </itemizedlist>
-
- <para>If the returned geometry differs much enough from what the
- SCSI controller BIOS thinks and a disk on this SCSI controller
- is used as bootable the system may not be able to boot. The
- typical calculation example taken from the aic7xxx driver
- is:</para>
-
-<programlisting> struct ccb_calc_geometry *ccg;
- u_int32_t size_mb;
- u_int32_t secs_per_cylinder;
- int extended;
-
- ccg = &amp;ccb->ccg;
- size_mb = ccg->volume_size
- / ((1024L * 1024L) / ccg->block_size);
- extended = check_cards_EEPROM_for_extended_geometry(softc);
-
- if (size_mb > 1024 &amp;&amp; extended) {
- ccg->heads = 255;
- ccg->secs_per_track = 63;
- } else {
- ccg->heads = 64;
- ccg->secs_per_track = 32;
- }
- secs_per_cylinder = ccg->heads * ccg->secs_per_track;
- ccg->cylinders = ccg->volume_size / secs_per_cylinder;
- ccb->ccb_h.status = CAM_REQ_CMP;
- xpt_done(ccb);
- return;</programlisting>
-
- <para>This gives the general idea, the exact calculation depends
- on the quirks of the particular BIOS. If BIOS provides no way
- set the "extended translation" flag in EEPROM this flag should
- normally be assumed equal to 1. Other popular geometries
- are:</para>
-
-<programlisting> 128 heads, 63 sectors - Symbios controllers
- 16 heads, 63 sectors - old controllers</programlisting>
-
- <para>Some system BIOSes and SCSI BIOSes fight with each other
- with variable success, for example a combination of Symbios
- 875/895 SCSI and Phoenix BIOS can give geometry 128/63 after
- power up and 255/63 after a hard reset or soft reboot.</para>
- </listitem>
-
- <listitem><para><emphasis>XPT_PATH_INQ</emphasis> - path inquiry, in other
- words get the SIM driver and SCSI controller (also known as HBA
- - Host Bus Adapter) properties</para>
-
- <para>The properties are returned in the instance "struct
-ccb_pathinq cpi" of the union ccb:</para>
-
- <itemizedlist>
-
- <listitem><para>version_num - the SIM driver version number, now
- all drivers use 1</para></listitem>
-
- <listitem><para>hba_inquiry - bitmask of features supported by
- the controller:</para></listitem>
-
- <listitem><para>PI_MDP_ABLE - supports MDP message (something
- from SCSI3?)</para></listitem>
-
- <listitem><para>PI_WIDE_32 - supports 32 bit wide
- SCSI</para></listitem>
-
- <listitem><para>PI_WIDE_16 - supports 16 bit wide
- SCSI</para></listitem>
-
- <listitem><para>PI_SDTR_ABLE - can negotiate synchronous
- transfer rate</para></listitem>
-
- <listitem><para>PI_LINKED_CDB - supports linked
- commands</para></listitem>
-
- <listitem><para>PI_TAG_ABLE - supports tagged
- commands</para></listitem>
-
- <listitem><para>PI_SOFT_RST - supports soft reset alternative
- (hard reset and soft reset are mutually exclusive within a
- SCSI bus)</para></listitem>
-
- <listitem><para>target_sprt - flags for target mode support, 0
- if unsupported</para></listitem>
-
- <listitem><para>hba_misc - miscellaneous controller
- features:</para></listitem>
-
- <listitem><para>PIM_SCANHILO - bus scans from high ID to low
- ID</para></listitem>
-
- <listitem><para>PIM_NOREMOVE - removable devices not included in
- scan</para></listitem>
-
- <listitem><para>PIM_NOINITIATOR - initiator role not
- supported</para></listitem>
-
- <listitem><para>PIM_NOBUSRESET - user has disabled initial BUS
- RESET</para></listitem>
-
- <listitem><para>hba_eng_cnt - mysterious HBA engine count,
- something related to compression, now is always set to
- 0</para></listitem>
-
- <listitem><para>vuhba_flags - vendor-unique flags, unused
- now</para></listitem>
-
- <listitem><para>max_target - maximal supported target ID (7 for
- 8-bit bus, 15 for 16-bit bus, 127 for Fibre
- Channel)</para></listitem>
-
- <listitem><para>max_lun - maximal supported LUN ID (7 for older
- SCSI controllers, 63 for newer ones)</para></listitem>
-
- <listitem><para>async_flags - bitmask of installed Async
- handler, unused now</para></listitem>
-
- <listitem><para>hpath_id - highest Path ID in the subsystem,
- unused now</para></listitem>
-
- <listitem><para>unit_number - the controller unit number,
- cam_sim_unit(sim)</para></listitem>
-
- <listitem><para>bus_id - the bus number,
- cam_sim_bus(sim)</para></listitem>
-
- <listitem><para>initiator_id - the SCSI ID of the controller
- itself</para></listitem>
-
- <listitem><para>base_transfer_speed - nominal transfer speed in
- KB/s for asynchronous narrow transfers, equals to 3300 for
- SCSI</para></listitem>
-
- <listitem><para>sim_vid - SIM driver's vendor id, a
- zero-terminated string of maximal length SIM_IDLEN including
- the terminating zero</para></listitem>
-
- <listitem><para>hba_vid - SCSI controller's vendor id, a
- zero-terminated string of maximal length HBA_IDLEN including
- the terminating zero</para></listitem>
-
- <listitem><para>dev_name - device driver name, a zero-terminated
- string of maximal length DEV_IDLEN including the terminating
- zero, equal to cam_sim_name(sim)</para></listitem>
-
- </itemizedlist>
-
- <para>The recommended way of setting the string fields is using
- strncpy, like:</para>
-
-<programlisting> strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);</programlisting>
-
- <para>After setting the values set the status to CAM_REQ_CMP and mark the
-CCB as done.</para>
- </listitem>
- </itemizedlist>
-
- </sect1>
-
- <sect1>
- <title>Polling</title>
-
- <funcSynopsis><funcPrototype>
- <funcDef>static void
- <function>xxx_poll</function>
- </funcDef>
- <paramdef>
- <parameter>struct cam_sim *sim</parameter>
- </paramdef>
- </funcPrototype></funcSynopsis>
-
- <para>The poll function is used to simulate the interrupts when
- the interrupt subsystem is not functioning (for example, when
- the system has crashed and is creating the system dump). The CAM
- subsystem sets the proper interrupt level before calling the
- poll routine. So all it needs to do is to call the interrupt
- routine (or the other way around, the poll routine may be doing
- the real action and the interrupt routine would just call the
- poll routine). Why bother about a separate function then ?
- Because of different calling conventions. The
- <function>xxx_poll</function> routine gets the struct cam_sim
- pointer as its argument when the PCI interrupt routine by common
- convention gets pointer to the struct
- <structName>xxx_softc</structName> and the ISA interrupt routine
- gets just the the device unit number. So the poll routine would
- normally look as:</para>
-
-<programlisting>static void
-xxx_poll(struct cam_sim *sim)
-{
- xxx_intr((struct xxx_softc *)cam_sim_softc(sim)); /* for PCI device */
-}</programlisting>
-
- <para>or</para>
-
-<programlisting>static void
-xxx_poll(struct cam_sim *sim)
-{
- xxx_intr(cam_sim_unit(sim)); /* for ISA device */
-}</programlisting>
-
- </sect1>
-
- <sect1>
- <title>Asynchronous Events</title>
-
- <para>If an asynchronous event callback has been set up then the
- callback function should be defined.</para>
-
-<programlisting>static void
-ahc_async(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)</programlisting>
-
- <itemizedlist>
- <listitem><para>callback_arg - the value supplied when registering the
- callback</para></listitem>
-
- <listitem><para>code - identifies the type of event</para></listitem>
-
- <listitem><para>path - identifies the devices to which the event
- applies</para></listitem>
-
- <listitem><para>arg - event-specific argument</para></listitem>
- </itemizedlist>
-
- <para>Implementation for a single type of event, AC_LOST_DEVICE,
- looks like:</para>
-
-<programlisting> struct xxx_softc *softc;
- struct cam_sim *sim;
- int targ;
- struct ccb_trans_settings neg;
-
- sim = (struct cam_sim *)callback_arg;
- softc = (struct xxx_softc *)cam_sim_softc(sim);
- switch (code) {
- case AC_LOST_DEVICE:
- targ = xpt_path_target_id(path);
- if(targ <= OUR_MAX_SUPPORTED_TARGET) {
- clean_negotiations(softc, targ);
- /* send indication to CAM */
- neg.bus_width = 8;
- neg.sync_period = neg.sync_offset = 0;
- neg.valid = (CCB_TRANS_BUS_WIDTH_VALID
- | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);
- xpt_async(AC_TRANSFER_NEG, path, &amp;neg);
- }
- break;
- default:
- break;
- }</programlisting>
-
- </sect1>
-
- <sect1>
- <title>Interrupts</title>
-
- <para>The exact type of the interrupt routine depends on the type
- of the peripheral bus (PCI, ISA and so on) to which the SCSI
- controller is connected.</para>
-
- <para>The interrupt routines of the SIM drivers run at the
- interrupt level splcam. So <function>splcam()</function> should
- be used in the driver to synchronize activity between the
- interrupt routine and the rest of the driver (for a
- multiprocessor-aware driver things get yet more interesting but
- we ignore this case here). The pseudo-code in this document
- happily ignores the problems of synchronization. The real code
- must not ignore them. A simple-minded approach is to set
- <function>splcam()</function> on the entry to the other routines
- and reset it on return thus protecting them by one big critical
- section. To make sure that the interrupt level will be always
- restored a wrapper function can be defined, like:</para>
-
-<programlisting> static void
- xxx_action(struct cam_sim *sim, union ccb *ccb)
- {
- int s;
- s = splcam();
- xxx_action1(sim, ccb);
- splx(s);
- }
-
- static void
- xxx_action1(struct cam_sim *sim, union ccb *ccb)
- {
- ... process the request ...
- }</programlisting>
-
- <para>This approach is simple and robust but the problem with it
- is that interrupts may get blocked for a relatively long time
- and this would negatively affect the system's performance. On
- the other hand the functions of the <function>spl()</function>
- family have rather high overhead, so vast amount of tiny
- critical sections may not be good either.</para>
-
- <para>The conditions handled by the interrupt routine and the
- details depend very much on the hardware. We consider the set of
- "typical" conditions.</para>
-
- <para>First, we check if a SCSI reset was encountered on the bus
- (probably caused by another SCSI controller on the same SCSI
- bus). If so we drop all the enqueued and disconnected requests,
- report the events and re-initialize our SCSI controller. It is
- important that during this initialization the controller won't
- issue another reset or else two controllers on the same SCSI bus
- could ping-pong resets forever. The case of fatal controller
- error/hang could be handled in the same place, but it will
- probably need also sending RESET signal to the SCSI bus to reset
- the status of the connections with the SCSI devices.</para>
-
-<programlisting> int fatal=0;
- struct ccb_trans_settings neg;
- struct cam_path *path;
-
- if( detected_scsi_reset(softc)
- || (fatal = detected_fatal_controller_error(softc)) ) {
- int targ, lun;
- struct xxx_hcb *h, *hh;
-
- /* drop all enqueued CCBs */
- for(h = softc->first_queued_hcb; h != NULL; h = hh) {
- hh = h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
-
- /* the clean values of negotiations to report */
- neg.bus_width = 8;
- neg.sync_period = neg.sync_offset = 0;
- neg.valid = (CCB_TRANS_BUS_WIDTH_VALID
- | CCB_TRANS_SYNC_RATE_VALID | CCB_TRANS_SYNC_OFFSET_VALID);
-
- /* drop all disconnected CCBs and clean negotiations */
- for(targ=0; targ <= OUR_MAX_SUPPORTED_TARGET; targ++) {
- clean_negotiations(softc, targ);
-
- /* report the event if possible */
- if(xpt_create_path(&amp;path, /*periph*/NULL,
- cam_sim_path(sim), targ,
- CAM_LUN_WILDCARD) == CAM_REQ_CMP) {
- xpt_async(AC_TRANSFER_NEG, path, &amp;neg);
- xpt_free_path(path);
- }
-
- for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++)
- for(h = softc->first_discon_hcb[targ][lun]; h != NULL; h = hh) {
- hh=h->next;
- if(fatal)
- free_hcb_and_ccb_done(h, h->ccb, CAM_UNREC_HBA_ERROR);
- else
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
- }
-
- /* report the event */
- xpt_async(AC_BUS_RESET, softc->wpath, NULL);
-
- /* re-initialization may take a lot of time, in such case
- * its completion should be signaled by another interrupt or
- * checked on timeout - but for simplicity we assume here that
- * it's really fast
- */
- if(!fatal) {
- reinitialize_controller_without_scsi_reset(softc);
- } else {
- reinitialize_controller_with_scsi_reset(softc);
- }
- schedule_next_hcb(softc);
- return;
- }</programlisting>
-
- <para>If interrupt is not caused by a controller-wide condition
- then probably something has happened to the current hardware
- control block. Depending on the hardware there may be other
- non-HCB-related events, we just do not consider them here. Then
- we analyze what happened to this HCB:</para>
-
-<programlisting> struct xxx_hcb *hcb, *h, *hh;
- int hcb_status, scsi_status;
- int ccb_status;
- int targ;
- int lun_to_freeze;
-
- hcb = get_current_hcb(softc);
- if(hcb == NULL) {
- /* either stray interrupt or something went very wrong
- * or this is something hardware-dependent
- */
- handle as necessary;
- return;
- }
-
- targ = hcb->target;
- hcb_status = get_status_of_current_hcb(softc);</programlisting>
-
- <para>First we check if the HCB has completed and if so we check
- the returned SCSI status.</para>
-
-<programlisting> if(hcb_status == COMPLETED) {
- scsi_status = get_completion_status(hcb);</programlisting>
-
- <para>Then look if this status is related to the REQUEST SENSE
- command and if so handle it in a simple way.</para>
-
-<programlisting> if(hcb->flags &amp; DOING_AUTOSENSE) {
- if(scsi_status == GOOD) { /* autosense was successful */
- hcb->ccb->ccb_h.status |= CAM_AUTOSNS_VALID;
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_SCSI_STATUS_ERROR);
- } else {
- autosense_failed:
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_AUTOSENSE_FAIL);
- }
- schedule_next_hcb(softc);
- return;
- }</programlisting>
-
- <para>Else the command itself has completed, pay more attention to
- details. If auto-sense is not disabled for this CCB and the
- command has failed with sense data then run REQUEST SENSE
- command to receive that data.</para>
-
-<programlisting> hcb->ccb->csio.scsi_status = scsi_status;
- calculate_residue(hcb);
-
- if( (hcb->ccb->ccb_h.flags &amp; CAM_DIS_AUTOSENSE)==0
- &amp;&amp; ( scsi_status == CHECK_CONDITION
- || scsi_status == COMMAND_TERMINATED) ) {
- /* start auto-SENSE */
- hcb->flags |= DOING_AUTOSENSE;
- setup_autosense_command_in_hcb(hcb);
- restart_current_hcb(softc);
- return;
- }
- if(scsi_status == GOOD)
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_REQ_CMP);
- else
- free_hcb_and_ccb_done(hcb, hcb->ccb, CAM_SCSI_STATUS_ERROR);
- schedule_next_hcb(softc);
- return;
- }</programlisting>
-
- <para>One typical thing would be negotiation events: negotiation
- messages received from a SCSI target (in answer to our
- negotiation attempt or by target's initiative) or the target is
- unable to negotiate (rejects our negotiation messages or does
- not answer them).</para>
-
-<programlisting> switch(hcb_status) {
- case TARGET_REJECTED_WIDE_NEG:
- /* revert to 8-bit bus */
- softc->current_bus_width[targ] = softc->goal_bus_width[targ] = 8;
- /* report the event */
- neg.bus_width = 8;
- neg.valid = CCB_TRANS_BUS_WIDTH_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
- continue_current_hcb(softc);
- return;
- case TARGET_ANSWERED_WIDE_NEG:
- {
- int wd;
-
- wd = get_target_bus_width_request(softc);
- if(wd <= softc->goal_bus_width[targ]) {
- /* answer is acceptable */
- softc->current_bus_width[targ] =
- softc->goal_bus_width[targ] = neg.bus_width = wd;
-
- /* report the event */
- neg.valid = CCB_TRANS_BUS_WIDTH_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
- } else {
- prepare_reject_message(hcb);
- }
- }
- continue_current_hcb(softc);
- return;
- case TARGET_REQUESTED_WIDE_NEG:
- {
- int wd;
-
- wd = get_target_bus_width_request(softc);
- wd = min (wd, OUR_BUS_WIDTH);
- wd = min (wd, softc->user_bus_width[targ]);
-
- if(wd != softc->current_bus_width[targ]) {
- /* the bus width has changed */
- softc->current_bus_width[targ] =
- softc->goal_bus_width[targ] = neg.bus_width = wd;
-
- /* report the event */
- neg.valid = CCB_TRANS_BUS_WIDTH_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
- }
- prepare_width_nego_rsponse(hcb, wd);
- }
- continue_current_hcb(softc);
- return;
- }</programlisting>
-
- <para>Then we handle any errors that could have happened during
- auto-sense in the same simple-minded way as before. Otherwise we
- look closer at the details again.</para>
-
-<programlisting> if(hcb->flags &amp; DOING_AUTOSENSE)
- goto autosense_failed;
-
- switch(hcb_status) {</programlisting>
-
- <para>The next event we consider is unexpected disconnect. Which
- is considered normal after an ABORT or BUS DEVICE RESET message
- and abnormal in other cases.</para>
-
-<programlisting> case UNEXPECTED_DISCONNECT:
- if(requested_abort(hcb)) {
- /* abort affects all commands on that target+LUN, so
- * mark all disconnected HCBs on that target+LUN as aborted too
- */
- for(h = softc->first_discon_hcb[hcb->target][hcb->lun];
- h != NULL; h = hh) {
- hh=h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_REQ_ABORTED);
- }
- ccb_status = CAM_REQ_ABORTED;
- } else if(requested_bus_device_reset(hcb)) {
- int lun;
-
- /* reset affects all commands on that target, so
- * mark all disconnected HCBs on that target+LUN as reset
- */
-
- for(lun=0; lun <= OUR_MAX_SUPPORTED_LUN; lun++)
- for(h = softc->first_discon_hcb[hcb->target][lun];
- h != NULL; h = hh) {
- hh=h->next;
- free_hcb_and_ccb_done(h, h->ccb, CAM_SCSI_BUS_RESET);
- }
-
- /* send event */
- xpt_async(AC_SENT_BDR, hcb->ccb->ccb_h.path_id, NULL);
-
- /* this was the CAM_RESET_DEV request itself, it's completed */
- ccb_status = CAM_REQ_CMP;
- } else {
- calculate_residue(hcb);
- ccb_status = CAM_UNEXP_BUSFREE;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = hcb->lun;
- }
- break;</programlisting>
-
- <para>If the target refuses to accept tags we notify CAM about
- that and return back all commands for this LUN:</para>
-
-<programlisting> case TAGS_REJECTED:
- /* report the event */
- neg.flags = 0 &amp; ~CCB_TRANS_TAG_ENB;
- neg.valid = CCB_TRANS_TQ_VALID;
- xpt_async(AC_TRANSFER_NEG, hcb->ccb.ccb_h.path_id, &amp;neg);
-
- ccb_status = CAM_MSG_REJECT_REC;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = hcb->lun;
- break;</programlisting>
-
- <para>Then we check a number of other conditions, with processing
- basically limited to setting the CCB status:</para>
-
-<programlisting> case SELECTION_TIMEOUT:
- ccb_status = CAM_SEL_TIMEOUT;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = CAM_LUN_WILDCARD;
- break;
- case PARITY_ERROR:
- ccb_status = CAM_UNCOR_PARITY;
- break;
- case DATA_OVERRUN:
- case ODD_WIDE_TRANSFER:
- ccb_status = CAM_DATA_RUN_ERR;
- break;
- default:
- /* all other errors are handled in a generic way */
- ccb_status = CAM_REQ_CMP_ERR;
- /* request the further code to freeze the queue */
- hcb->ccb->ccb_h.status |= CAM_DEV_QFRZN;
- lun_to_freeze = CAM_LUN_WILDCARD;
- break;
- }</programlisting>
-
- <para>Then we check if the error was serious enough to freeze the
- input queue until it gets proceeded and do so if it is:</para>
-
-<programlisting> if(hcb->ccb->ccb_h.status &amp; CAM_DEV_QFRZN) {
- /* freeze the queue */
- xpt_freeze_devq(ccb->ccb_h.path, /*count*/1);
-
- /* re-queue all commands for this target/LUN back to CAM */
-
- for(h = softc->first_queued_hcb; h != NULL; h = hh) {
- hh = h->next;
-
- if(targ == h->targ
- &amp;&amp; (lun_to_freeze == CAM_LUN_WILDCARD || lun_to_freeze == h->lun) )
- free_hcb_and_ccb_done(h, h->ccb, CAM_REQUEUE_REQ);
- }
- }
- free_hcb_and_ccb_done(hcb, hcb->ccb, ccb_status);
- schedule_next_hcb(softc);
- return;</programlisting>
-
- <para>This concludes the generic interrupt handling although
- specific controllers may require some additions.</para>
-
- </sect1>
-
- <sect1>
- <title>Errors Summary</title>
-
- <para>When executing an I/O request many things may go wrong. The
- reason of error can be reported in the CCB status with great
- detail. Examples of use are spread throughout this document. For
- completeness here is the summary of recommended responses for
- the typical error conditions:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>CAM_RESRC_UNAVAIL</emphasis> - some
- resource is temporarily unavailable and the SIM driver can not
- generate an event when it will become available. An example of
- this resource would be some intra-controller hardware resource
- for which the controller does not generate an interrupt when
- it becomes available.</para></listitem>
-
- <listitem><para><emphasis>CAM_UNCOR_PARITY</emphasis> -
- unrecovered parity error occurred</para></listitem>
-
- <listitem><para><emphasis>CAM_DATA_RUN_ERR</emphasis> - data
- overrun or unexpected data phase (going in other direction
- than specified in CAM_DIR_MASK) or odd transfer length for
- wide transfer</para></listitem>
-
- <listitem><para><emphasis>CAM_SEL_TIMEOUT</emphasis> - selection
- timeout occurred (target does not respond)</para></listitem>
-
- <listitem><para><emphasis>CAM_CMD_TIMEOUT</emphasis> - command
- timeout occurred (the timeout function ran)</para></listitem>
-
- <listitem><para><emphasis>CAM_SCSI_STATUS_ERROR</emphasis> - the
- device returned error</para></listitem>
-
- <listitem><para><emphasis>CAM_AUTOSENSE_FAIL</emphasis> - the
- device returned error and the REQUEST SENSE COMMAND
- failed</para></listitem>
-
- <listitem><para><emphasis>CAM_MSG_REJECT_REC</emphasis> - MESSAGE
- REJECT message was received</para></listitem>
-
- <listitem><para><emphasis>CAM_SCSI_BUS_RESET</emphasis> - received
- SCSI bus reset</para></listitem>
-
- <listitem><para><emphasis>CAM_REQ_CMP_ERR</emphasis> -
- "impossible" SCSI phase occurred or something else as weird or
- just a generic error if further detail is not
- available</para></listitem>
-
- <listitem><para><emphasis>CAM_UNEXP_BUSFREE</emphasis> -
- unexpected disconnect occurred</para></listitem>
-
- <listitem><para><emphasis>CAM_BDR_SENT</emphasis> - BUS DEVICE
- RESET message was sent to the target</para></listitem>
-
- <listitem><para><emphasis>CAM_UNREC_HBA_ERROR</emphasis> -
- unrecoverable Host Bus Adapter Error</para></listitem>
-
- <listitem><para><emphasis>CAM_REQ_TOO_BIG</emphasis> - the request
- was too large for this controller</para></listitem>
-
- <listitem><para><emphasis>CAM_REQUEUE_REQ</emphasis> - this
- request should be re-queued to preserve transaction ordering.
- This typically occurs when the SIM recognizes an error that
- should freeze the queue and must place other queued requests
- for the target at the sim level back into the XPT
- queue. Typical cases of such errors are selection timeouts,
- command timeouts and other like conditions. In such cases the
- troublesome command returns the status indicating the error,
- the and the other commands which have not be sent to the bus
- yet get re-queued.</para></listitem>
-
- <listitem><para><emphasis>CAM_LUN_INVALID</emphasis> - the LUN
- ID in the request is not supported by the SCSI
- controller</para></listitem>
-
- <listitem><para><emphasis>CAM_TID_INVALID</emphasis> - the
- target ID in the request is not supported by the SCSI
- controller</para></listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Timeout Handling</title>
-
- <para>When the timeout for an HCB expires that request should be
- aborted, just like with an XPT_ABORT request. The only
- difference is that the returned status of aborted request should
- be CAM_CMD_TIMEOUT instead of CAM_REQ_ABORTED (that's why
- implementation of the abort better be done as a function). But
- there is one more possible problem: what if the abort request
- itself will get stuck? In this case the SCSI bus should be
- reset, just like with an XPT_RESET_BUS request (and the idea
- about implementing it as a function called from both places
- applies here too). Also we should reset the whole SCSI bus if a
- device reset request got stuck. So after all the timeout
- function would look like:</para>
-
-<programlisting>static void
-xxx_timeout(void *arg)
-{
- struct xxx_hcb *hcb = (struct xxx_hcb *)arg;
- struct xxx_softc *softc;
- struct ccb_hdr *ccb_h;
-
- softc = hcb->softc;
- ccb_h = &amp;hcb->ccb->ccb_h;
-
- if(hcb->flags &amp; HCB_BEING_ABORTED
- || ccb_h->func_code == XPT_RESET_DEV) {
- xxx_reset_bus(softc);
- } else {
- xxx_abort_ccb(hcb->ccb, CAM_CMD_TIMEOUT);
- }
-}</programlisting>
-
- <para>When we abort a request all the other disconnected requests
- to the same target/LUN get aborted too. So there appears a
- question, should we return them with status CAM_REQ_ABORTED or
- CAM_CMD_TIMEOUT ? The current drivers use CAM_CMD_TIMEOUT. This
- seems logical because if one request got timed out then probably
- something really bad is happening to the device, so if they
- would not be disturbed they would time out by themselves.</para>
-
- </sect1>
-
-</chapter>
diff --git a/en_US.ISO8859-1/books/developers-handbook/secure/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/secure/chapter.sgml
deleted file mode 100644
index 6ae96705d2..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/secure/chapter.sgml
+++ /dev/null
@@ -1,407 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/secure/chapter.sgml,v 1.1 2000/11/28 18:31:39 asmodai Exp $
--->
-
- <chapter id="secure">
- <title>Secure Programming</title>
-
- <para>This chapter was written by Murray Stokely.</para>
-
- <sect1><title>Synopsis</title>
-
- <para>This chapter describes some of the security issues that
- have plagued Unix programmers for decades and some of the new
- tools available to help programmers avoid writing exploitable
- code.</para>
- </sect1>
-
- <sect1 id="secure-philosophy"><title>Secure Design
- Methodology</title>
-
- <para>Writing secure applications takes a very scrutinous and
- pessimistic outlook on life. Applications should be run with
- the principle of <quote>least privilege</quote> so that no
- process is ever running than more with the bare minimum access
- that it needs to accomplish its function. Previously tested
- code should be reused whenever possible to avoid common
- mistakes that others may have already fixed.</para>
-
- <para>One of the pitfalls of the Unix environment is how easy it
- is to make assumptions about the sanity of the environment.
- Applications should never trust user input (in all its forms),
- system resources, inter-process communication, or the timing of
- events. Unix processes do not execute synchronously so logical
- operations are rarely atomic.</para>
- </sect1>
-
- <sect1><title>Buffer Overflows</title>
-
- <para>Buffer Overflows have been around since the very
- beginnings of the Von-Neuman <xref linkend="COD"> architecture.
- They first gained widespread notoriety in 1988 with the Moorse
- Internet worm. Unfortunately, the same basic attack remains
- effective today. Of the 17 CERT security advisories of 1999, 10
- of them were directly caused by buffer-overflow software bugs.
- By far the most common type of buffer overflow attack is based
- on corrupting the stack.</para>
-
- <para>Most modern computer systems use a stack to pass arguments
- to procedures and to store local variables. A stack is a last
- in first out (LIFO) buffer in the high memory area of a process
- image. When a program invokes a function a new "stack frame" is
- created. This stack frame consists of the arguments passed to
- the function as well as a dynamic amount of local variable
- space. The "stack pointer" is a register that holds the current
- location of the top of the stack. Since this value is
- constantly changing as new values are pushed onto the top of the
- stack, many implementations also provide a "frame pointer" that
- is located near the beginning of a stack frame so that local
- variables can more easily be addressed relative to this
- value. <xref linkend="COD"> The return address for function
- calls is also stored on the stack, and this is the cause of
- stack-overflow exploits since overflowing a local variable in a
- function can overwrite the return address of that function,
- potentially allowing a malicious user to execute any code he or
- she wants.</para>
-
- <para>Although stack-based attacks are by far the most common,
- it would also be possible to overrun the stack with a heap-based
- (malloc/free) attack.</para>
-
- <para>The C programming language does not perform automatic
- bounds checking on arrays or pointers as many other languages
- do. In addition, the standard C library is filled with a
- handful of very dangerous functions.</para>
-
- <informaltable>
- <tgroup cols=2>
- <tbody>
- <row><entry><function>strcpy</function>(char *dest, const char
- *src)</entry>
- <entry><simpara>May overflow the dest buffer</simpara></entry>
- </row>
-
- <row><entry><function>strcat</function>(char *dest, const char
- *src)</entry>
- <entry><simpara>May overflow the dest buffer</simpara></entry>
- </row>
-
- <row><entry><function>getwd</function>(char *buf)</entry>
- <entry><simpara>May overflow the buf buffer</simpara></entry>
- </row>
-
- <row><entry><function>gets</function>(char *s)</entry>
- <entry><simpara>May overflow the s buffer</simpara></entry>
- </row>
-
- <row><entry><function>[vf]scanf</function>(const char *format,
- ...)</entry>
- <entry><simpara>May overflow its arguments.</simpara></entry>
- </row>
-
- <row><entry><function>realpath</function>(char *path, char
- resolved_path[])</entry>
- <entry><simpara>May overflow the path buffer</simpara></entry>
- </row>
-
- <row><entry><function>[v]sprintf</function>(char *str, const char
- *format, ...)</entry>
- <entry><simpara>May overflow the str buffer.</simpara></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <sect2><title>Example Buffer Overflow</title>
-
- <para>The following example code contains a buffer overflow
- designed to overwrite the return address and skip the
- instruction immediately following the function call. (Inspired
- by <xref linkend="Phrack">)</para>
-
-<programlisting>#include <sgmltag>stdio.h</sgmltag>
-
-void manipulate(char *buffer) {
- char newbuffer[80];
- strcpy(newbuffer,buffer);
-}
-
-int main() {
- char ch,buffer[4096];
- int i=0;
-
- while ((buffer[i++] = getchar()) != '\n') {};
-
- i=1;
- manipulate(buffer);
- i=2;
- printf("The value of i is : %d\n",i);
- return 0;
-}</programlisting>
-
- <para>Let us examine what the memory image of this process would
- look like if we were to input 160 spaces into our little program
- before hitting return.</para>
-
- <para>[XXX figure here!]</para>
-
- <para>Obviously more malicious input can be devised to execute
- actual compiled instructions (such as exec(/bin/sh)).</para>
- </sect2>
-
- <sect2><title>Avoiding Buffer Overflows</title>
-
- <para>The most straightforward solution to the problem of
- stack-overflows is to always use length restricted memory and
- string copy functions. <function>strncpy</function> and
- <function>strncat</function> are part of the standard C library.
- These functions accept a length value as a parameter which
- should be no larger than the size of the destination buffer.
- These functions will then copy up to `length' bytes from the
- source to the destination. However there are a number of
- problems with these functions. Neither function guarantees NUL
- termination if the size of the input buffer is as large as the
- destination. The length parameter is also used inconsistently
- between strncpy and strncat so it is easy for programmers to get
- confused as to their proper usage. There is also a significant
- performance loss compared to <function>strcpy</function> when
- copying a short string into a large buffer since
- <function>strncpy</function> NUL fills up the the size
- specified.</para>
-
- <para>In OpenBSD, another memory copy implementation has been
- created to get around these problem. The
- <function>strlcpy</function> and <function>strlcat</function>
- functions guarantee that they will always null terminate the
- destination string when given a non-zero length argument. For
- more information about these functions see <xref
- linkend="OpenBSD">. The OpenBSD <function>strlcpy</function> and
- <function>strlcat</function> instructions have been in FreeBSD
- since 3.5.</para>
-
- <sect3><title>Compiler based run-time bounds checking</title>
-
- <para>Unfortunately there is still a very large assortment of
- code in public use which blindly copies memory around without
- using any of the bounded copy routines we just discussed.
- Fortunately, there is another solution. Several compiler
- add-ons and libraries exist to do Run-time bounds checking in
- C/C++.</para>
-
- <para>StackGuard is one such add-on that is implemented as a
- small patch to the gcc code generator. From the StackGuard
- website, http://immunix.org/stackguard.html :
- <blockquote><para>"StackGuard detects and defeats stack
- smashing attacks by protecting the return address on the stack
- from being altered. StackGuard places a "canary" word next to
- the return address when a function is called. If the canary
- word has been altered when the function returns, then a stack
- smashing attack has been attempted, and the program responds
- by emitting an intruder alert into syslog, and then
- halts."</para></blockquote>
-
- <blockquote><para>"StackGuard is implemented as a small patch
- to the gcc code generator, specifically the function_prolog()
- and function_epilog() routines. function_prolog() has been
- enhanced to lay down canaries on the stack when functions
- start, and function_epilog() checks canary integrity when the
- function exits. Any attempt at corrupting the return address
- is thus detected before the function
- returns."</para></blockquote>
- </para>
-
- <para>Recompiling your application with StackGuard is an
- effective means of stopping most buffer-overflow attacks, but
- it can still be compromised.</para>
-
- </sect3>
-
- <sect3><title>Library based run-time bounds checking</title>
-
- <para>Compiler-based mechanisms are completely useless for
- binary-only software for which you cannot recompile. For
- these situations there are a number of libraries which
- re-implement the unsafe functions of the C-library
- (<function>strcpy</function>, <function>fscanf</function>,
- <function>getwd</function>, etc..) and ensure that these
- functions can never write past the stack pointer.</para>
-
- <itemizedlist>
- <listitem><simpara>libsafe</simpara></listitem>
- <listitem><simpara>libverify</simpara></listitem>
- <listitem><simpara>libparnoia</simpara></listitem>
- </itemizedlist>
-
- <para>Unfortunately these library-based defenses have a number
- of shortcomings. These libraries only protect against a very
- small set of security related issues and they neglect to fix
- the actual problem. These defenses may fail if the
- application was compiled with -fomit-frame-pointer. Also, the
- LD_PRELOAD and LD_LIBRARY_PATH environment variables can be
- overwritten/unset by the user.</para>
- </sect3>
-
- </sect2>
- </sect1>
-
- <sect1><title>SetUID issues</title>
-
- <para>There are at least 6 different IDs associated with any
- given process. Because of this you have to be very careful with
- the access that your process has at any given time. In
- particular, all seteuid applications should give up their
- privileges as soon as it is no longer required.</para>
-
- <para>The real user ID can only be changed by a superuser
- process. The <application>login</application> program sets this
- when a user initially logs in and it is seldom changed.</para>
-
- <para>The effective user ID is set by the
- <function>exec()</function> functions if a program has its
- seteuid bit set. An application can call
- <function>seteuid()</function> at any time to set the effective
- user ID to either the real user ID or the saved set-user-ID.
- When the effective user ID is set by <function>exec()</function>
- functions, the previous value is saved in the saved set-user-ID.</para>
-
- </sect1>
-
- <sect1 id="chroot"><title>Limiting your program's environment</title>
-
- <para>The traditional method of restricting access to a process
- is with the <function>chroot()</function> system call. This
- system call changes the root directory from which all other
- paths are referenced for a process and any child processes. For
- this call to succeed the process must have execute (search)
- permission on the directory being referenced. The new
- environment does not actually take affect until you
- <function>chdir()</function> into your new environment. It
- should also be noted that a process can easily break out of a
- chroot environment if it has root privilege. This could be
- accomplished by creating device nodes to read kernel memory,
- attaching a debugger to a process outside of the jail, or in
- many other creative ways.</para>
-
- <para>The behavior of the <function>chroot()</function> system
- call can be controlled somewhat with the
- kern.chroot_allow_open_directories <command>sysctl</command>
- variable. When this value is set to 0,
- <function>chroot()</function> will fail with EPERM if there are
- any directories open. If set to the default value of 1, then
- <function>chroot()</function> will fail with EPERM if there are
- any directories open and the process is already subject to a
- <function>chroot()</function> call. For any other value, the
- check for open directories will be bypassed completely.</para>
-
- <sect2><title>FreeBSD's jail functionality</title>
-
- <para>The concept of a Jail extends upon the
- <function>chroot()</function> by limiting the powers of the
- superuser to create a true `virtual server'. Once a prison is
- setup all network communication must take place through the
- specified IP address, and the power of "root privilege" in this
- jail is severely constrained.</para>
-
- <para>While in a prison, any tests of superuser power within the
- kernel using the <function>suser()</function> call will fail.
- However, some calls to <function>suser()</function> have been
- changed to a new interface <function>suser_xxx()</function>.
- This function is responsible for recognizing or denying access
- to superuser power for imprisoned processes.</para>
-
- <para>A superuser process within a jailed environment has the
- power to : </para>
- <itemizedlist>
- <listitem><simpara>Manipulate credential with
- <function>setuid</function>, <function>seteuid</function>,
- <function>setgid</function>, <function>setegid</function>,
- <function>setgroups</function>, <function>setreuid</function>,
- <function>setregid</function>, <function>setlogin</function></simpara></listitem>
- <listitem><simpara>Set resource limits with <function>setrlimit</function></simpara></listitem>
- <listitem><simpara>Modify some sysctl nodes
- (kern.hostname)</simpara></listitem>
- <listitem><simpara><function>chroot()</function></simpara></listitem>
- <listitem><simpara>Set flags on a vnode:
- <function>chflags</function>,
- <function>fchflags</function></simpara></listitem>
- <listitem><simpara>Set attributes of a vnode such as file
- permission, owner, group, size, access time, and modification
- time.</simpara></listitem>
- <listitem><simpara>Bind to privileged ports in the Internet
- domain (ports < 1024)</simpara></listitem>
- </itemizedlist>
-
- <para><function>Jail</function> is a very useful tool for
- running applications in a secure environment but it does have
- some shortcomings. Currently, the IPC mechanisms have not been
- converted to the <function>suser_xxx</function> so applications
- such as MySQL can not be run within a jail. Superuser access
- may have a very limited meaning within a jail, but there is
- no way to specify exactly what "very limited" means.</para>
- </sect2>
-
- <sect2><title>POSIX.1e Process Capabilities</title>
-
- <para>Posix has released a working draft that adds event
- auditing, access control lists, fine grained privileges,
- information labeling, and mandatory access control.</para>
- <para>This is a work in progress and is the focus of the <ulink
- url="http://www.trustedbsd.org">TrustedBSD</ulink> project. Some
- of the initial work has been committed to FreeBSD-current
- (cap_set_proc(3)).</para>
-
- </sect2>
-
- </sect1>
-
- <sect1><title>Trust</title>
-
- <para>An application should never assume that anything about the
- users environment is sane. This includes (but is certainly not
- limited to) : user input, signals, environment variables,
- resources, IPC, mmaps, the file system working directory, file
- descriptors, the # of open files, etc.</para>
-
- <para>You should never assume that you can catch all forms of
- invalid input that a user might supply. Instead, your
- application should use positive filtering to only allow a
- specific subset of inputs that you deem safe. Improper data
- validation has been the cause of many exploits, especially with
- CGI scripts on the world wide web. For filenames you need to be
- extra careful about paths ("../", "/"), symbolic links, and
- shell escape characters.</para>
-
- <para>Perl has a really cool feature called "Taint" mode which
- can be used to prevent scripts for using data derived outside
- the program in an unsafe way. This mode will check command line
- arguments, environment variables, locale information, the
- results of certain syscalls (<function>readdir()</function>,
- <function>readlink()</function>,
- <function>getpwxxx()</function>, and all file input.</para>
-
- </sect1>
-
- <sect1><title>Race Conditions</title>
-
- <para>A race condition is anomalous behavior caused by the
- unexpected dependence on the relative timing of events. In
- other words, a programmer incorrectly assumed that a particular
- event would always happen before another.</para>
-
- <para>Some of the common causes of race conditions are signals,
- access checks, and file opens. Signals are asynchronous events
- by nature so special care must be taken in dealing with them.
- Checking access with <function>access(2)</function> then
- <function>open(2)</function> is clearly non-atomic. Users can
- move files in between the two calls. Instead, privileged
- applications should <function>seteuid()</function> and then call
- <function>open()</function> directly. Along the same lines, an
- application should always set a proper umask before
- <function>open()</function> to obviate the need for spurious
- <function>chmod()</function> calls.</para>
-
- </sect1>
-
- </chapter>
diff --git a/en_US.ISO8859-1/books/developers-handbook/tools/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/tools/chapter.sgml
deleted file mode 100644
index 99e2b2e7df..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/tools/chapter.sgml
+++ /dev/null
@@ -1,2249 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/tools/chapter.sgml,v 1.2 2001/04/09 00:33:45 dd Exp $
--->
-
- <chapter id="tools">
- <title>Programming Tools</title>
-
- <para><emphasis>This chapter was written by James Raynard.
- Modifications for the Developer's Handbook by Murray Stokely.
- </emphasis></para>
-
- <sect1><title>Synopsis</title>
-
- <para>This document is an introduction to using some of the
- programming tools supplied with FreeBSD, although much of it
- will be applicable to many other versions of Unix. It does
- <emphasis>not</emphasis> attempt to describe coding in any
- detail. Most of the document assumes little or no previous
- programming knowledge, although it is hoped that most
- programmers will find something of value in it</para>
-
- </sect1>
-
- <sect1><title>Introduction</title>
-
- <para>FreeBSD offers an excellent development environment.
- Compilers for C, C++, and Fortran and an assembler come with the
- basic system, not to mention a Perl interpreter and classic Unix
- tools such as <command>sed</command> and <command>awk</command>.
- If that is not enough, there are many more compilers and
- interpreters in the Ports collection. FreeBSD is very
- compatible with standards such as <acronym>POSIX</acronym> and
- <acronym>ANSI</acronym> C, as well with its own BSD heritage, so
- it is possible to write applications that will compile and run
- with little or no modification on a wide range of
- platforms.</para>
-
- <para>However, all this power can be rather overwhelming at
- first if you've never written programs on a Unix platform
- before. This document aims to help you get up and running,
- without getting too deeply into more advanced topics. The
- intention is that this document should give you enough of the
- basics to be able to make some sense of the
- documentation.</para>
-
- <para>Most of the document requires little or no knowledge of
- programming, although it does assume a basic competence with
- using Unix and a willingness to learn!</para>
-
- </sect1>
-
- <sect1>
- <title>Introduction to Programming</title>
-
- <para>A program is a set of instructions that tell the computer
- to do various things; sometimes the instruction it has to
- perform depends on what happened when it performed a previous
- instruction. This section gives an overview of the two main
- ways in which you can give these instructions, or
- <quote>commands</quote> as they are usually called. One way
- uses an <firstterm>interpreter</firstterm>, the other a
- <firstterm>compiler</firstterm>. As human languages are too
- difficult for a computer to understand in an unambiguous way,
- commands are usually written in one or other languages specially
- designed for the purpose.</para>
-
- <sect2>
- <title>Interpreters</title>
-
- <para>With an interpreter, the language comes as an environment,
- where you type in commands at a prompt and the environment
- executes them for you. For more complicated programs, you can
- type the commands into a file and get the interpreter to load
- the file and execute the commands in it. If anything goes
- wrong, many interpreters will drop you into a debugger to help
- you track down the problem.</para>
-
- <para>The advantage of this is that you can see the results of
- your commands immediately, and mistakes can be corrected
- readily. The biggest disadvantage comes when you want to
- share your programs with someone. They must have the same
- interpreter, or you must have some way of giving it to them,
- and they need to understand how to use it. Also users may not
- appreciate being thrown into a debugger if they press the
- wrong key! From a performance point of view, interpreters can
- use up a lot of memory, and generally do not generate code as
- efficiently as compilers.</para>
-
- <para>In my opinion, interpreted languages are the best way to
- start if you have not done any programming before. This kind
- of environment is typically found with languages like Lisp,
- Smalltalk, Perl and Basic. It could also be argued that the
- Unix shell (<command>sh</command>, <command>csh</command>) is itself an
- interpreter, and many people do in fact write shell
- <quote>scripts</quote> to help with various
- <quote>housekeeping</quote> tasks on their machine. Indeed, part
- of the original Unix philosophy was to provide lots of small
- utility programs that could be linked together in shell
- scripts to perform useful tasks.</para>
- </sect2>
-
- <sect2>
- <title>Interpreters available with FreeBSD</title>
-
- <para>Here is a list of interpreters that are available as
- <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/">FreeBSD
- packages</ulink>, with a brief discussion of some of the
- more popular interpreted languages.</para>
-
- <para>To get one of these packages, all you need to do is to
- click on the hotlink for the package, then run</para>
-
- <screen>&prompt.root; <userinput>pkg_add <replaceable>package name</></userinput>
- </screen>
-
- <para>as root. Obviously, you will need to have a fully
- functional FreeBSD 2.1.0 or later system for the package to
- work!</para>
-
- <variablelist>
- <varlistentry>
- <term><acronym>BASIC</acronym></term>
-
- <listitem>
- <para>Short for Beginner's All-purpose Symbolic
- Instruction Code. Developed in the 1950s for teaching
- University students to program and provided with every
- self-respecting personal computer in the 1980s,
- <acronym>BASIC</acronym> has been the first programming
- language for many programmers. It's also the foundation
- for Visual Basic.</para>
-
- <para>The <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/bwbasic-2.10.tgz">Bywater
- Basic Interpreter</ulink> and the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/pbasic-2.0.tgz">Phil
- Cockroft's Basic Interpreter</ulink> (formerly Rabbit
- Basic) are available as FreeBSD <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/">FreeBSD
- packages</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Lisp</term>
-
- <listitem>
- <para>A language that was developed in the late 1950s as
- an alternative to the <quote>number-crunching</quote>
- languages that were popular at the time. Instead of
- being based on numbers, Lisp is based on lists; in fact
- the name is short for <quote>List Processing</quote>.
- Very popular in AI (Artificial Intelligence)
- circles.</para>
-
- <para>Lisp is an extremely powerful and sophisticated
- language, but can be rather large and unwieldy.</para>
-
- <para>FreeBSD has <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/gcl-2.0.tgz">GNU
- Common Lisp</ulink> available as a package.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Perl</term>
-
- <listitem>
- <para>Very popular with system administrators for writing
- scripts; also often used on World Wide Web servers for
- writing <acronym>CGI</acronym> scripts.</para>
-
- <para>The latest version (version 5) comes with FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Scheme</term>
-
- <listitem>
- <para>A dialect of Lisp that is rather more compact and
- cleaner than Common Lisp. Popular in Universities as it
- is simple enough to teach to undergraduates as a first
- language, while it has a high enough level of
- abstraction to be used in research work.</para>
-
- <para>FreeBSD has packages of the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/elk-3.0.tgz">Elk
- Scheme Interpreter</ulink>, the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/mit-scheme-7.3.tgz">MIT
- Scheme Interpreter</ulink> and the <ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/scm-4e1.tgz">SCM
- Scheme Interpreter</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Icon</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/icon-9.0.tgz">The
- Icon Programming Language</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Logo</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/ucblogo-3.3.tgz">Brian
- Harvey's LOGO Interpreter</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Python</term>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/python-1.2">The
- Python Object-Oriented Programming
- Language</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Compilers</title>
-
- <para>Compilers are rather different. First of all, you write
- your code in a file (or files) using an editor. You then run
- the compiler and see if it accepts your program. If it did
- not compile, grit your teeth and go back to the editor; if it
- did compile and gave you a program, you can run it either at a
- shell command prompt or in a debugger to see if it works
- properly.
-
- <footnote>
- <para>If you run it in the shell, you may get a core
- dump.</para>
- </footnote></para>
-
- <para>Obviously, this is not quite as direct as using an
- interpreter. However it allows you to do a lot of things
- which are very difficult or even impossible with an
- interpreter, such as writing code which interacts closely with
- the operating system&mdash;or even writing your own operating
- system! It's also useful if you need to write very efficient
- code, as the compiler can take its time and optimise the code,
- which would not be acceptable in an interpreter. And
- distributing a program written for a compiler is usually more
- straightforward than one written for an interpreter&mdash;you
- can just give them a copy of the executable, assuming they
- have the same operating system as you.</para>
-
- <para>Compiled languages include Pascal, C and C++. C and C++
- are rather unforgiving languages, and best suited to more
- experienced programmers; Pascal, on the other hand, was
- designed as an educational language, and is quite a good
- language to start with. Unfortunately, FreeBSD doesn't have
- any Pascal support, except for a Pascal-to-C converter in the
- ports.</para>
-
- <para>As the edit-compile-run-debug cycle is rather tedious when
- using separate programs, many commercial compiler makers have
- produced Integrated Development Environments
-
- (<acronym>IDE</acronym>s for short). FreeBSD does not have an
- <acronym>IDE</acronym> as such; however it is possible to use Emacs
- for this purpose. This is discussed in <xref
- linkend="emacs">.</para>
- </sect2>
-
-
- </sect1>
-
-
- <sect1>
- <title>Compiling with <command>cc</command></title>
-
- <para>This section deals only with the GNU compiler for C and C++,
- since that comes with the base FreeBSD system. It can be
- invoked by either <command>cc</command> or <command>gcc</command>. The
- details of producing a program with an interpreter vary
- considerably between interpreters, and are usually well covered
- in the documentation and on-line help for the
- interpreter.</para>
-
- <para>Once you've written your masterpiece, the next step is to
- convert it into something that will (hopefully!) run on FreeBSD.
- This usually involves several steps, each of which is done by a
- separate program.</para>
-
- <procedure>
- <step>
- <para>Pre-process your source code to remove comments and do
- other tricks like expanding macros in C.</para>
- </step>
-
- <step>
- <para>Check the syntax of your code to see if you have obeyed
- the rules of the language. If you have not, it will
- complain!</para>
- </step>
-
- <step>
- <para>Convert the source code into assembly
- language&mdash;this is very close to machine code, but still
- understandable by humans. Allegedly.
-
- <footnote>
- <para>To be strictly accurate, <command>cc</command> converts the
- source code into its own, machine-independent
- <firstterm>p-code</firstterm> instead of assembly language at
- this stage.</para>
- </footnote></para>
- </step>
-
- <step>
- <para>Convert the assembly language into machine
- code&mdash;yep, we are talking bits and bytes, ones and
- zeros here.</para>
- </step>
-
- <step>
- <para>Check that you have used things like functions and
- global variables in a consistent way. For example, if you
- have called a non-existent function, it will
- complain.</para>
- </step>
-
- <step>
- <para>If you are trying to produce an executable from several
- source code files, work out how to fit them all
- together.</para>
- </step>
-
- <step>
- <para>Work out how to produce something that the system's
- run-time loader will be able to load into memory and
- run.</para>
- </step>
-
- <step>
- <para>Finally, write the executable on the file system.</para>
- </step>
- </procedure>
-
- <para>The word <firstterm>compiling</firstterm> is often used to refer to
- just steps 1 to 4&mdash;the others are referred to as
- <firstterm>linking</firstterm>. Sometimes step 1 is referred to as
- <firstterm>pre-processing</firstterm> and steps 3-4 as
- <firstterm>assembling</firstterm>.</para>
-
- <para>Fortunately, almost all this detail is hidden from you, as
- <command>cc</command> is a front end that manages calling all these
- programs with the right arguments for you; simply typing</para>
-
- <screen>&prompt.user; <userinput>cc foobar.c</>
- </screen>
-
- <para>will cause <filename>foobar.c</filename> to be compiled by all the
- steps above. If you have more than one file to compile, just do
- something like</para>
-
- <screen>&prompt.user; <userinput>cc foo.c bar.c</>
- </screen>
-
- <para>Note that the syntax checking is just that&mdash;checking
- the syntax. It will not check for any logical mistakes you may
- have made, like putting the program into an infinite loop, or
- using a bubble sort when you meant to use a binary
- sort.
-
- <footnote>
- <para>In case you didn't know, a binary sort is an efficient
- way of sorting things into order and a bubble sort
- isn't.</para>
- </footnote></para>
-
- <para>There are lots and lots of options for <command>cc</command>, which
- are all in the man page. Here are a few of the most important
- ones, with examples of how to use them.</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-o <replaceable>filename</replaceable></option></term>
-
- <listitem>
- <para>The output name of the file. If you do not use this
- option, <command>cc</command> will produce an executable called
- <filename>a.out</filename>.
-
- <footnote>
- <para>The reasons for this are buried in the mists of
- history.</para>
- </footnote></para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc foobar.c</> <lineannotation>executable is <filename>a.out</></>
-&prompt.user; <userinput>cc -o foobar foobar.c</> <lineannotation>executable is <filename>foobar</></>
- </screen>
- </informalexample>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>Just compile the file, do not link it. Useful for toy
- programs where you just want to check the syntax, or if
- you are using a <filename>Makefile</filename>.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -c foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce an <firstterm>object file</firstterm> (not an
- executable) called <filename>foobar.o</filename>. This
- can be linked together with other object files into an
- executable.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-g</option></term>
-
- <listitem>
- <para>Create a debug version of the executable. This makes
- the compiler put information into the executable about
- which line of which source file corresponds to which
- function call. A debugger can use this information to show
- the source code as you step through the program, which is
- <emphasis>very</emphasis> useful; the disadvantage is that
- all this extra information makes the program much bigger.
- Normally, you compile with <option>-g</option> while you
- are developing a program and then compile a <quote>release
- version</quote> without <option>-g</option> when you're
- satisfied it works properly.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -g foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce a debug version of the
- program.
-
- <footnote>
- <para>Note, we didn't use the <option>-o</option> flag
- to specify the executable name, so we will get an
- executable called <filename>a.out</filename>.
- Producing a debug version called
- <filename>foobar</filename> is left as an exercise for
- the reader!</para>
- </footnote></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-O</option></term>
-
- <listitem>
- <para>Create an optimised version of the executable. The
- compiler performs various clever tricks to try and produce
- an executable that runs faster than normal. You can add a
- number after the <option>-O</option> to specify a higher
- level of optimisation, but this often exposes bugs in the
- compiler's optimiser. For instance, the version of
- <command>cc</command> that comes with the 2.1.0 release of
- FreeBSD is known to produce bad code with the
- <option>-O2</option> option in some circumstances.</para>
-
- <para>Optimisation is usually only turned on when compiling
- a release version.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce an optimised version of
- <filename>foobar</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The following three flags will force <command>cc</command>
- to check that your code complies to the relevant international
- standard, often referred to as the <acronym>ANSI</acronym>
- standard, though strictly speaking it is an
- <acronym>ISO</acronym> standard.</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-Wall</option></term>
-
- <listitem>
- <para>Enable all the warnings which the authors of
- <command>cc</command> believe are worthwhile. Despite the
- name, it will not enable all the warnings
- <command>cc</command> is capable of.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-ansi</option></term>
-
- <listitem>
- <para>Turn off most, but not all, of the
- non-<acronym>ANSI</acronym>&nbsp;C features provided by
- <command>cc</command>. Despite the name, it does not
- guarantee strictly that your code will comply to the
- standard.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-pedantic</option></term>
-
- <listitem>
- <para>Turn off <emphasis>all</emphasis>
- <command>cc</command>'s non-<acronym>ANSI</acronym>&nbsp;C
- features.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Without these flags, <command>cc</command> will allow you to
- use some of its non-standard extensions to the standard. Some
- of these are very useful, but will not work with other
- compilers&mdash;in fact, one of the main aims of the standard is
- to allow people to write code that will work with any compiler
- on any system. This is known as <firstterm>portable
- code</firstterm>.</para>
-
- <para>Generally, you should try to make your code as portable as
- possible, as otherwise you may have to completely re-write the
- program later to get it to work somewhere else&mdash;and who
- knows what you may be using in a few years time?</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput>
- </screen>
- </informalexample>
-
- <para>This will produce an executable <filename>foobar</filename>
- after checking <filename>foobar.c</filename> for standard
- compliance.</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-l<replaceable>library</replaceable></option></term>
-
- <listitem>
- <para>Specify a function library to be used during when
- linking.</para>
-
- <para>The most common example of this is when compiling a
- program that uses some of the mathematical functions in C.
- Unlike most other platforms, these are in a separate
- library from the standard C one and you have to tell the
- compiler to add it.</para>
-
- <para>The rule is that if the library is called
- <filename>lib<replaceable>something</replaceable>.a</filename>,
- you give <command>cc</command> the argument
- <option>-l<replaceable>something</replaceable></option>.
- For example, the math library is
- <filename>libm.a</filename>, so you give
- <command>cc</command> the argument <option>-lm</option>.
- A common <quote>gotcha</quote> with the math library is
- that it has to be the last library on the command
- line.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput>
- </screen>
- </informalexample>
-
- <para>This will link the math library functions into
- <filename>foobar</filename>.</para>
-
- <para>If you are compiling C++ code, you need to add
- <option>-lg++</option>, or <option>-lstdc++</option> if
- you are using FreeBSD 2.2 or later, to the command line
- argument to link the C++ library functions.
- Alternatively, you can run <command>c++</command> instead
- of <command>cc</command>, which does this for you.
- <command>c++</command> can also be invoked as
- <command>g++</command> on FreeBSD.</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>For FreeBSD 2.1.6 and earlier</>
-&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>For FreeBSD 2.2 and later</>
-&prompt.user; <userinput>c++ -o foobar foobar.cc</userinput>
- </screen>
- </informalexample>
-
- <para>Each of these will both produce an executable
- <filename>foobar</filename> from the C++ source file
- <filename>foobar.cc</filename>. Note that, on Unix
- systems, C++ source files traditionally end in
- <filename>.C</filename>, <filename>.cxx</filename> or
- <filename>.cc</filename>, rather than the
- MS-DOS style
- <filename>.cpp</filename> (which was already used for
- something else). <command>gcc</command> used to rely on
- this to work out what kind of compiler to use on the
- source file; however, this restriction no longer applies,
- so you may now call your C++ files
- <filename>.cpp</filename> with impunity!</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <sect2>
- <title>Common <command>cc</command> Queries and Problems</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>I am trying to write a program which uses the
- <function>sin()</function> function and I get an error
- like this. What does it mean?</para>
-
- <informalexample>
- <screen>/var/tmp/cc0143941.o: Undefined symbol `_sin' referenced from text segment
- </screen>
- </informalexample>
- </question>
-
- <answer>
- <para>When using mathematical functions like
- <function>sin()</function>, you have to tell
- <command>cc</command> to link in the math library, like
- so:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput>
- </screen>
- </informalexample>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>All right, I wrote this simple program to practice
- using <option>-lm</option>. All it does is raise 2.1 to
- the power of 6.</para>
-
- <informalexample>
- <programlisting>#include &lt;stdio.h&gt;
-
-int main() {
- float f;
-
- f = pow(2.1, 6);
- printf("2.1 ^ 6 = %f\n", f);
- return 0;
-}
- </programlisting>
- </informalexample>
-
- <para>and I compiled it as:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc temp.c -lm</userinput>
- </screen>
- </informalexample>
-
- <para>like you said I should, but I get this when I run
- it:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>./a.out</userinput>
-2.1 ^ 6 = 1023.000000
- </screen>
- </informalexample>
-
- <para>This is <emphasis>not</emphasis> the right answer!
- What is going on?</para>
- </question>
-
- <answer>
- <para>When the compiler sees you call a function, it
- checks if it has already seen a prototype for it. If it
- has not, it assumes the function returns an
- <type>int</type>, which is definitely not what you want
- here.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>So how do I fix this?</para>
- </question>
-
- <answer>
- <para>The prototypes for the mathematical functions are in
- <filename>math.h</filename>. If you include this file,
- the compiler will be able to find the prototype and it
- will stop doing strange things to your
- calculation!</para>
-
- <informalexample>
- <programlisting>#include &lt;math.h&gt;
-#include &lt;stdio.h&gt;
-
-int main() {
-...
- </programlisting>
- </informalexample>
-
- <para>After recompiling it as you did before, run
- it:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>./a.out</userinput>
-2.1 ^ 6 = 85.766121
- </screen>
- </informalexample>
-
- <para>If you are using any of the mathematical functions,
- <emphasis>always</emphasis> include
- <filename>math.h</filename> and remember to link in the
- math library.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I compiled a file called
- <filename>foobar.c</filename> and I cannot find an
- executable called <filename>foobar</filename>. Where's
- it gone?</para>
- </question>
-
- <answer>
- <para>Remember, <command>cc</command> will call the
- executable <filename>a.out</filename> unless you tell it
- differently. Use the
- <option>-o&nbsp;<replaceable>filename</replaceable></option>
- option:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cc -o foobar foobar.c</userinput>
- </screen>
- </informalexample>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>OK, I have an executable called
- <filename>foobar</filename>, I can see it when I run
- <command>ls</command>, but when I type in
- <command>foobar</command> at the command prompt it tells
- me there is no such file. Why can it not find
- it?</para>
- </question>
-
- <answer>
- <para>Unlike MS-DOS, Unix does not
- look in the current directory when it is trying to find
- out which executable you want it to run, unless you tell
- it to. Either type <command>./foobar</command>, which
- means <quote>run the file called
- <filename>foobar</filename> in the current
- directory</quote>, or change your <envar>PATH</envar>
- environment
- variable so that it looks something like</para>
-
- <informalexample>
- <screen>bin:/usr/bin:/usr/local/bin:.
- </screen>
- </informalexample>
-
- <para>The dot at the end means <quote>look in the current
- directory if it is not in any of the
- others</quote>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I called my executable <filename>test</filename>,
- but nothing happens when I run it. What is going
- on?</para>
- </question>
-
- <answer>
- <para>Most Unix systems have a program called
- <command>test</command> in <filename>/usr/bin</filename>
- and the shell is picking that one up before it gets to
- checking the current directory. Either type:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>./test</userinput>
- </screen>
- </informalexample>
-
- <para>or choose a better name for your program!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I compiled my program and it seemed to run all right
- at first, then there was an error and it said something
- about <errorname>core dumped</errorname>. What does that
- mean?</para>
- </question>
-
- <answer>
- <para>The name <firstterm>core dump</firstterm> dates back
- to the very early days of Unix, when the machines used
- core memory for storing data. Basically, if the program
- failed under certain conditions, the system would write
- the contents of core memory to disk in a file called
- <filename>core</filename>, which the programmer could
- then pore over to find out what went wrong.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Fascinating stuff, but what I am supposed to do
- now?</para>
- </question>
-
- <answer>
- <para>Use <command>gdb</command> to analyse the core (see
- <xref linkend="debugging">).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>When my program dumped core, it said something about
- a <errorname>segmentation fault</errorname>. What's
- that?</para>
- </question>
-
- <answer>
- <para>This basically means that your program tried to
- perform some sort of illegal operation on memory; Unix
- is designed to protect the operating system and other
- programs from rogue programs.</para>
-
- <para>Common causes for this are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Trying to write to a <symbol>NULL</symbol>
- pointer, eg</para>
-
- <programlisting>char *foo = NULL;
-strcpy(foo, "bang!");
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Using a pointer that hasn't been initialised,
- eg</para>
-
- <programlisting>char *foo;
-strcpy(foo, "bang!");
- </programlisting>
-
- <para>The pointer will have some random value that,
- with luck, will point into an area of memory that
- isn't available to your program and the kernel will
- kill your program before it can do any damage. If
- you're unlucky, it'll point somewhere inside your
- own program and corrupt one of your data structures,
- causing the program to fail mysteriously.</para>
- </listitem>
-
- <listitem>
- <para>Trying to access past the end of an array,
- eg</para>
-
- <programlisting>int bar[20];
-bar[27] = 6;
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Trying to store something in read-only memory,
- eg</para>
-
- <programlisting>char *foo = "My string";
-strcpy(foo, "bang!");
- </programlisting>
-
- <para>Unix compilers often put string literals like
- <literal>"My string"</literal> into read-only areas
- of memory.</para>
- </listitem>
-
- <listitem>
- <para>Doing naughty things with
- <function>malloc()</function> and
- <function>free()</function>, eg</para>
-
- <programlisting>char bar[80];
-free(bar);
- </programlisting>
-
- <para>or</para>
-
- <programlisting>char *foo = malloc(27);
-free(foo);
-free(foo);
- </programlisting>
- </listitem>
- </itemizedlist>
-
- <para>Making one of these mistakes will not always lead to
- an error, but they are always bad practice. Some
- systems and compilers are more tolerant than others,
- which is why programs that ran well on one system can
- crash when you try them on an another.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Sometimes when I get a core dump it says
- <errorname>bus error</errorname>. It says in my Unix
- book that this means a hardware problem, but the
- computer still seems to be working. Is this
- true?</para>
- </question>
-
- <answer>
- <para>No, fortunately not (unless of course you really do
- have a hardware problem&hellip;). This is usually
- another way of saying that you accessed memory in a way
- you shouldn't have.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>This dumping core business sounds as though it could
- be quite useful, if I can make it happen when I want to.
- Can I do this, or do I have to wait until there's an
- error?</para>
- </question>
-
- <answer>
- <para>Yes, just go to another console or xterm, do</para>
-
- <screen>&prompt.user; <userinput>ps</userinput>
- </screen>
-
- <para>to find out the process ID of your program, and
- do</para>
-
- <screen>&prompt.user; <userinput>kill -ABRT <replaceable>pid</replaceable></userinput>
- </screen>
-
- <para>where
- <parameter><replaceable>pid</replaceable></parameter> is
- the process ID you looked up.</para>
-
- <para>This is useful if your program has got stuck in an
- infinite loop, for instance. If your program happens to
- trap <symbol>SIGABRT</symbol>, there are several other
- signals which have a similar effect.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Make</title>
-
- <sect2>
- <title>What is <command>make</command>?</title>
-
- <para>When you're working on a simple program with only one or
- two source files, typing in</para>
-
- <screen>&prompt.user; <userinput>cc file1.c file2.c</userinput>
- </screen>
-
- <para>is not too bad, but it quickly becomes very tedious when
- there are several files&mdash;and it can take a while to
- compile, too.</para>
-
- <para>One way to get around this is to use object files and only
- recompile the source file if the source code has changed. So
- we could have something like:</para>
-
- <screen>&prompt.user; <userinput>cc file1.o file2.o</userinput> &hellip; <userinput>file37.c</userinput> &hellip
- </screen>
-
- <para>if we'd changed <filename>file37.c</filename>, but not any
- of the others, since the last time we compiled. This may
- speed up the compilation quite a bit, but doesn't solve the
- typing problem.</para>
-
- <para>Or we could write a shell script to solve the typing
- problem, but it would have to re-compile everything, making it
- very inefficient on a large project.</para>
-
- <para>What happens if we have hundreds of source files lying
- about? What if we're working in a team with other people who
- forget to tell us when they've changed one of their source
- files that we use?</para>
-
- <para>Perhaps we could put the two solutions together and write
- something like a shell script that would contain some kind of
- magic rule saying when a source file needs compiling. Now all
- we need now is a program that can understand these rules, as
- it's a bit too complicated for the shell.</para>
-
- <para>This program is called <command>make</command>. It reads
- in a file, called a <firstterm>makefile</firstterm>, that
- tells it how different files depend on each other, and works
- out which files need to be re-compiled and which ones don't.
- For example, a rule could say something like <quote>if
- <filename>fromboz.o</filename> is older than
- <filename>fromboz.c</filename>, that means someone must have
- changed <filename>fromboz.c</filename>, so it needs to be
- re-compiled.</quote> The makefile also has rules telling
- make <emphasis>how</emphasis> to re-compile the source file,
- making it a much more powerful tool.</para>
-
- <para>Makefiles are typically kept in the same directory as the
- source they apply to, and can be called
- <filename>makefile</filename>, <filename>Makefile</filename>
- or <filename>MAKEFILE</filename>. Most programmers use the
- name <filename>Makefile</filename>, as this puts it near the
- top of a directory listing, where it can easily be
- seen.
-
- <footnote>
- <para>They don't use the <filename>MAKEFILE</filename> form
- as block capitals are often used for documentation files
- like <filename>README</filename>.</para>
- </footnote></para>
- </sect2>
-
- <sect2>
- <title>Example of using <command>make</command></title>
-
- <para>Here's a very simple make file:</para>
-
- <programlisting>foo: foo.c
- cc -o foo foo.c</programlisting>
-
- <para>It consists of two lines, a dependency line and a creation
- line.</para>
-
- <para>The dependency line here consists of the name of the
- program (known as the <firstterm>target</firstterm>), followed
- by a colon, then whitespace, then the name of the source file.
- When <command>make</command> reads this line, it looks to see
- if <filename>foo</filename> exists; if it exists, it compares
- the time <filename>foo</filename> was last modified to the
- time <filename>foo.c</filename> was last modified. If
- <filename>foo</filename> does not exist, or is older than
- <filename>foo.c</filename>, it then looks at the creation line
- to find out what to do. In other words, this is the rule for
- working out when <filename>foo.c</filename> needs to be
- re-compiled.</para>
-
- <para>The creation line starts with a <token>tab</token> (press
- the <keycap>tab</keycap> key) and then the command you would
- type to create <filename>foo</filename> if you were doing it
- at a command prompt. If <filename>foo</filename> is out of
- date, or does not exist, <command>make</command> then executes
- this command to create it. In other words, this is the rule
- which tells make how to re-compile
- <filename>foo.c</filename>.</para>
-
- <para>So, when you type <userinput>make</userinput>, it will
- make sure that <filename>foo</filename> is up to date with
- respect to your latest changes to <filename>foo.c</filename>.
- This principle can be extended to
- <filename>Makefile</filename>s with hundreds of
- targets&mdash;in fact, on FreeBSD, it is possible to compile
- the entire operating system just by typing <userinput>make
- world</userinput> in the appropriate directory!</para>
-
- <para>Another useful property of makefiles is that the targets
- don't have to be programs. For instance, we could have a make
- file that looks like this:</para>
-
- <programlisting>foo: foo.c
- cc -o foo foo.c
-
-install:
- cp foo /home/me</programlisting>
-
- <para>We can tell make which target we want to make by
- typing:</para>
-
- <screen>&prompt.user; <userinput>make <replaceable>target</replaceable></userinput>
- </screen>
-
- <para><command>make</command> will then only look at that target
- and ignore any others. For example, if we type
- <userinput>make foo</userinput> with the makefile above, make
- will ignore the <action>install</action> target.</para>
-
- <para>If we just type <userinput>make</userinput> on its own,
- make will always look at the first target and then stop
- without looking at any others. So if we typed
- <userinput>make</userinput> here, it will just go to the
- <action>foo</action> target, re-compile
- <filename>foo</filename> if necessary, and then stop without
- going on to the <action>install</action> target.</para>
-
- <para>Notice that the <action>install</action> target doesn't
- actually depend on anything! This means that the command on
- the following line is always executed when we try to make that
- target by typing <userinput>make install</userinput>. In this
- case, it will copy <filename>foo</filename> into the user's
- home directory. This is often used by application makefiles,
- so that the application can be installed in the correct
- directory when it has been correctly compiled.</para>
-
- <para>This is a slightly confusing subject to try and explain.
- If you don't quite understand how <command>make</command>
- works, the best thing to do is to write a simple program like
- <quote>hello world</quote> and a make file like the one above
- and experiment. Then progress to using more than one source
- file, or having the source file include a header file. The
- <command>touch</command> command is very useful here&mdash;it
- changes the date on a file without you having to edit
- it.</para>
- </sect2>
-
- <sect2>
- <title>FreeBSD Makefiles</title>
-
- <para>Makefiles can be rather complicated to write. Fortunately,
- BSD-based systems like FreeBSD come with some very powerful
- ones as part of the system. One very good example of this is
- the FreeBSD ports system. Here's the essential part of a
- typical ports <filename>Makefile</filename>:</para>
-
- <programlisting>MASTER_SITES= ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/
-DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz
-
-.include &lt;bsd.port.mk&gt;</programlisting>
-
- <para>Now, if we go to the directory for this port and type
- <userinput>make</userinput>, the following happens:</para>
-
- <procedure>
- <step>
- <para>A check is made to see if the source code for this
- port is already on the system.</para>
- </step>
-
- <step>
- <para>If it isn't, an FTP connection to the URL in
- <symbol>MASTER_SITES</symbol> is set up to download the
- source.</para>
- </step>
-
- <step>
- <para>The checksum for the source is calculated and compared
- it with one for a known, good, copy of the source. This
- is to make sure that the source was not corrupted while in
- transit.</para>
- </step>
-
- <step>
- <para>Any changes required to make the source work on
- FreeBSD are applied&mdash;this is known as
- <firstterm>patching</firstterm>.</para>
- </step>
-
- <step>
- <para>Any special configuration needed for the source is
- done. (Many Unix program distributions try to work out
- which version of Unix they are being compiled on and which
- optional Unix features are present&mdash;this is where
- they are given the information in the FreeBSD ports
- scenario).</para>
- </step>
-
- <step>
- <para>The source code for the program is compiled. In
- effect, we change to the directory where the source was
- unpacked and do <command>make</command>&mdash;the
- program's own make file has the necessary information to
- build the program.</para>
- </step>
-
- <step>
- <para>We now have a compiled version of the program. If we
- wish, we can test it now; when we feel confident about the
- program, we can type <userinput>make install</userinput>.
- This will cause the program and any supporting files it
- needs to be copied into the correct location; an entry is
- also made into a <database>package database</database>, so
- that the port can easily be uninstalled later if we change
- our mind about it.</para>
- </step>
- </procedure>
-
- <para>Now I think you'll agree that's rather impressive for a
- four line script!</para>
-
- <para>The secret lies in the last line, which tells
- <command>make</command> to look in the system makefile called
- <filename>bsd.port.mk</filename>. It's easy to overlook this
- line, but this is where all the clever stuff comes
- from&mdash;someone has written a makefile that tells
- <command>make</command> to do all the things above (plus a
- couple of other things I didn't mention, including handling
- any errors that may occur) and anyone can get access to that
- just by putting a single line in their own make file!</para>
-
- <para>If you want to have a look at these system makefiles,
- they're in <filename>/usr/share/mk</filename>, but it's
- probably best to wait until you've had a bit of practice with
- makefiles, as they are very complicated (and if you do look at
- them, make sure you have a flask of strong coffee
- handy!)</para>
- </sect2>
-
- <sect2>
- <title>More advanced uses of <command>make</command></title>
-
- <para><command>Make</command> is a very powerful tool, and can
- do much more than the simple example above shows.
- Unfortunately, there are several different versions of
- <command>make</command>, and they all differ considerably.
- The best way to learn what they can do is probably to read the
- documentation&mdash;hopefully this introduction will have
- given you a base from which you can do this.</para>
-
- <para>The version of make that comes with FreeBSD is the
- <application>Berkeley make</application>; there is a tutorial
- for it in <filename>/usr/share/doc/psd/12.make</filename>. To
- view it, do</para>
-
- <screen>&prompt.user; <userinput>zmore paper.ascii.gz</userinput>
- </screen>
-
- <para>in that directory.</para>
-
- <para>Many applications in the ports use <application>GNU
- make</application>, which has a very good set of
- <quote>info</quote> pages. If you have installed any of these
- ports, <application>GNU make</application> will automatically
- have been installed as <command>gmake</command>. It's also
- available as a port and package in its own right.</para>
-
- <para>To view the info pages for <application>GNU
- make</application>, you will have to edit the
- <filename>dir</filename> file in the
- <filename>/usr/local/info</filename> directory to add an entry
- for it. This involves adding a line like</para>
-
- <programlisting> * Make: (make). The GNU Make utility.</programlisting>
-
- <para>to the file. Once you have done this, you can type
- <userinput>info</userinput> and then select
- <guimenuitem>make</guimenuitem> from the menu (or in
- <application>Emacs</application>, do <userinput>C-h
- i</userinput>).</para>
- </sect2>
- </sect1>
-
- <sect1 id="debugging">
- <title>Debugging</title>
-
- <sect2>
- <title>The Debugger</title>
-
- <para>The debugger that comes with FreeBSD is called
- <command>gdb</command> (<application>GNU
- debugger</application>). You start it up by typing</para>
-
- <screen>&prompt.user; <userinput>gdb <replaceable>progname</replaceable></userinput>
- </screen>
-
- <para>although most people prefer to run it inside
- <application>Emacs</application>. You can do this by:</para>
-
- <screen><userinput>M-x gdb RET <replaceable>progname</replaceable> RET</userinput>
- </screen>
-
- <para>Using a debugger allows you to run the program under more
- controlled circumstances. Typically, you can step through the
- program a line at a time, inspect the value of variables,
- change them, tell the debugger to run up to a certain point
- and then stop, and so on. You can even attach to a program
- that's already running, or load a core file to investigate why
- the program crashed. It's even possible to debug the kernel,
- though that's a little trickier than the user applications
- we'll be discussing in this section.</para>
-
- <para><command>gdb</command> has quite good on-line help, as
- well as a set of info pages, so this section will concentrate
- on a few of the basic commands.</para>
-
- <para>Finally, if you find its text-based command-prompt style
- off-putting, there's a graphical front-end for it <ulink
- URL="../../ports/devel.html">xxgdb</ulink> in the ports
- collection.</para>
-
- <para>This section is intended to be an introduction to using
- <command>gdb</command> and does not cover specialised topics
- such as debugging the kernel.</para>
- </sect2>
-
- <sect2>
- <title>Running a program in the debugger</title>
-
- <para>You'll need to have compiled the program with the
- <option>-g</option> option to get the most out of using
- <command>gdb</command>. It will work without, but you'll only
- see the name of the function you're in, instead of the source
- code. If you see a line like:</para>
-
- <screen>&hellip; (no debugging symbols found) &hellip;
- </screen>
-
- <para>when <command>gdb</command> starts up, you'll know that
- the program wasn't compiled with the <option>-g</option>
- option.</para>
-
- <para>At the <command>gdb</command> prompt, type
- <userinput>break main</userinput>. This will tell the
- debugger to skip over the preliminary set-up code in the
- program and start at the beginning of your code. Now type
- <userinput>run</userinput> to start the program&mdash;it will
- start at the beginning of the set-up code and then get stopped
- by the debugger when it calls <function>main()</function>.
- (If you've ever wondered where <function>main()</function>
- gets called from, now you know!).</para>
-
- <para>You can now step through the program, a line at a time, by
- pressing <command>n</command>. If you get to a function call,
- you can step into it by pressing <command>s</command>. Once
- you're in a function call, you can return from stepping into a
- function call by pressing <command>f</command>. You can also
- use <command>up</command> and <command>down</command> to take
- a quick look at the caller.</para>
-
- <para>Here's a simple example of how to spot a mistake in a
- program with <command>gdb</command>. This is our program
- (with a deliberate mistake):</para>
-
- <programlisting>#include &lt;stdio.h&gt;
-
-int bazz(int anint);
-
-main() {
- int i;
-
- printf("This is my program\n");
- bazz(i);
- return 0;
-}
-
-int bazz(int anint) {
- printf("You gave me %d\n", anint);
- return anint;
-}</programlisting>
-
- <para>This program sets <symbol>i</symbol> to be
- <literal>5</literal> and passes it to a function
- <function>bazz()</function> which prints out the number we
- gave it.</para>
-
- <para>When we compile and run the program we get</para>
-
- <screen>&prompt.user; <userinput>cc -g -o temp temp.c</userinput>
-&prompt.user; <userinput>./temp</userinput>
-This is my program
-anint = 4231
- </screen>
-
- <para>That wasn't what we expected! Time to see what's going
- on!</para>
-
- <screen>&prompt.user; <userinput>gdb temp</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc.
-(gdb) <userinput>break main</> <lineannotation>Skip the set-up code</>
-Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation><command>gdb</command> puts breakpoint at <function>main()</></>
-(gdb) <userinput>run</> <lineannotation>Run as far as <function>main()</></>
-Starting program: /home/james/tmp/temp <lineannotation>Program starts running</>
-
-Breakpoint 1, main () at temp.c:9 <lineannotation><command>gdb</command> stops at <function>main()</></>
-(gdb) <userinput>n</> <lineannotation>Go to next line</>
-This is my program <lineannotation>Program prints out</>
-(gdb) <userinput>s</> <lineannotation>step into <function>bazz()</></>
-bazz (anint=4231) at temp.c:17 <lineannotation><command>gdb</command> displays stack frame</>
-(gdb)
- </screen>
-
- <para>Hang on a minute! How did <symbol>anint</symbol> get to be
- <literal>4231</literal>? Didn't we set it to be
- <literal>5</literal> in <function>main()</function>? Let's
- move up to <function>main()</function> and have a look.</para>
-
- <screen>(gdb) <userinput>up</> <lineannotation>Move up call stack</>
-#1 0x1625 in main () at temp.c:11 <lineannotation><command>gdb</command> displays stack frame</>
-(gdb) <userinput>p i</> <lineannotation>Show us the value of <symbol>i</></>
-$1 = 4231 <lineannotation><command>gdb</command> displays <literal>4231</></>
- </screen>
-
- <para>Oh dear! Looking at the code, we forgot to initialise
- <symbol>i</symbol>. We meant to put</para>
-
- <programlisting><lineannotation>&hellip;</>
-main() {
- int i;
-
- i = 5;
- printf("This is my program\n");
-<lineannotation>&hellip</></programlisting>
-
- <para>but we left the <literal>i=5;</literal> line out. As we
- didn't initialise <symbol>i</symbol>, it had whatever number
- happened to be in that area of memory when the program ran,
- which in this case happened to be
- <literal>4231</literal>.</para>
-
- <note>
- <para><command>gdb</command> displays the stack frame every
- time we go into or out of a function, even if we're using
- <command>up</command> and <command>down</command> to move
- around the call stack. This shows the name of the function
- and the values of its arguments, which helps us keep track
- of where we are and what's going on. (The stack is a
- storage area where the program stores information about the
- arguments passed to functions and where to go when it
- returns from a function call).</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Examining a core file</title>
-
- <para>A core file is basically a file which contains the
- complete state of the process when it crashed. In <quote>the
- good old days</quote>, programmers had to print out hex
- listings of core files and sweat over machine code manuals,
- but now life is a bit easier. Incidentally, under FreeBSD and
- other 4.4BSD systems, a core file is called
- <filename><replaceable>progname</replaceable>.core</filename> instead of just
- <filename>core</filename>, to make it clearer which program a
- core file belongs to.</para>
-
- <para>To examine a core file, start up <command>gdb</command> in
- the usual way. Instead of typing <command>break</command> or
- <command>run</command>, type</para>
-
- <screen>(gdb) <userinput>core <replaceable>progname</replaceable>.core</userinput>
- </screen>
-
- <para>If you're not in the same directory as the core file,
- you'll have to do <userinput>dir
- /path/to/core/file</userinput> first.</para>
-
- <para>You should see something like this:</para>
-
- <screen>&prompt.user; <userinput>gdb a.out</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc.
-(gdb) <userinput>core a.out.core</userinput>
-Core was generated by `a.out'.
-Program terminated with signal 11, Segmentation fault.
-Cannot access memory at address 0x7020796d.
-#0 0x164a in bazz (anint=0x5) at temp.c:17
-(gdb)
- </screen>
-
- <para>In this case, the program was called
- <filename>a.out</filename>, so the core file is called
- <filename>a.out.core</filename>. We can see that the program
- crashed due to trying to access an area in memory that was not
- available to it in a function called
- <function>bazz</function>.</para>
-
- <para>Sometimes it's useful to be able to see how a function was
- called, as the problem could have occurred a long way up the
- call stack in a complex program. The <command>bt</command>
- command causes <command>gdb</command> to print out a
- back-trace of the call stack:</para>
-
- <screen>(gdb) <userinput>bt</userinput>
-#0 0x164a in bazz (anint=0x5) at temp.c:17
-#1 0xefbfd888 in end ()
-#2 0x162c in main () at temp.c:11
-(gdb)
- </screen>
-
- <para>The <function>end()</function> function is called when a
- program crashes; in this case, the <function>bazz()</function>
- function was called from <function>main()</function>.</para>
- </sect2>
-
- <sect2>
- <title>Attaching to a running program</title>
-
- <para>One of the neatest features about <command>gdb</command>
- is that it can attach to a program that's already running. Of
- course, that assumes you have sufficient permissions to do so.
- A common problem is when you are stepping through a program
- that forks, and you want to trace the child, but the debugger
- will only let you trace the parent.</para>
-
- <para>What you do is start up another <command>gdb</command>,
- use <command>ps</command> to find the process ID for the
- child, and do</para>
-
- <screen>(gdb) <userinput>attach <replaceable>pid</replaceable></userinput>
- </screen>
-
- <para>in <command>gdb</command>, and then debug as usual.</para>
-
- <para><quote>That's all very well,</quote> you're probably
- thinking, <quote>but by the time I've done that, the child
- process will be over the hill and far away</quote>. Fear
- not, gentle reader, here's how to do it (courtesy of the
- <command>gdb</command> info pages):</para>
-
- <screen><lineannotation>&hellip</lineannotation>
-if ((pid = fork()) < 0) /* _Always_ check this */
- error();
-else if (pid == 0) { /* child */
- int PauseMode = 1;
-
- while (PauseMode)
- sleep(10); /* Wait until someone attaches to us */
- <lineannotation>&hellip</lineannotation>
-} else { /* parent */
- <lineannotation>&hellip</lineannotation>
- </screen>
-
- <para>Now all you have to do is attach to the child, set
- <symbol>PauseMode</symbol> to <literal>0</literal>, and wait
- for the <function>sleep()</function> call to return!</para>
- </sect2>
- </sect1>
-
- <sect1 id="emacs">
- <title>Using Emacs as a Development Environment</title>
-
- <sect2>
- <title>Emacs</title>
-
- <para>Unfortunately, Unix systems don't come with the kind of
- everything-you-ever-wanted-and-lots-more-you-didn't-in-one-gigantic-package
- integrated development environments that other systems
- have.
-
- <footnote>
- <para>At least, not unless you pay out very large sums of
- money.</para>
- </footnote>
-
- However, it is possible to set up your own environment. It
- may not be as pretty, and it may not be quite as integrated,
- but you can set it up the way you want it. And it's free.
- And you have the source to it.</para>
-
- <para>The key to it all is Emacs. Now there are some people who
- loathe it, but many who love it. If you're one of the former,
- I'm afraid this section will hold little of interest to you.
- Also, you'll need a fair amount of memory to run it&mdash;I'd
- recommend 8MB in text mode and 16MB in X as the bare minimum
- to get reasonable performance.</para>
-
- <para>Emacs is basically a highly customisable
- editor&mdash;indeed, it has been customised to the point where
- it's more like an operating system than an editor! Many
- developers and sysadmins do in fact spend practically all
- their time working inside Emacs, leaving it only to log
- out.</para>
-
- <para>It's impossible even to summarise everything Emacs can do
- here, but here are some of the features of interest to
- developers:</para>
-
- <itemizedlist>
- <listitem>
- <para>Very powerful editor, allowing search-and-replace on
- both strings and regular expressions (patterns), jumping
- to start/end of block expression, etc, etc.</para>
- </listitem>
-
- <listitem>
- <para>Pull-down menus and online help.</para>
- </listitem>
-
- <listitem>
- <para>Language-dependent syntax highlighting and
- indentation.</para>
- </listitem>
-
- <listitem>
- <para>Completely customisable.</para>
- </listitem>
-
- <listitem>
- <para>You can compile and debug programs within
- Emacs.</para>
- </listitem>
-
- <listitem>
- <para>On a compilation error, you can jump to the offending
- line of source code.</para>
- </listitem>
-
- <listitem>
- <para>Friendly-ish front-end to the <command>info</command>
- program used for reading GNU hypertext documentation,
- including the documentation on Emacs itself.</para>
- </listitem>
-
- <listitem>
- <para>Friendly front-end to <command>gdb</command>, allowing
- you to look at the source code as you step through your
- program.</para>
- </listitem>
-
- <listitem>
- <para>You can read Usenet news and mail while your program
- is compiling.</para>
- </listitem>
- </itemizedlist>
-
- <para>And doubtless many more that I've overlooked.</para>
-
- <para>Emacs can be installed on FreeBSD using <ulink
- URL="../../ports/editors.html">the Emacs
- port</ulink>.</para>
-
- <para>Once it's installed, start it up and do <userinput>C-h
- t</userinput> to read an Emacs tutorial&mdash;that means
- hold down the <keycap>control</keycap> key, press
- <keycap>h</keycap>, let go of the <keycap>control</keycap>
- key, and then press <keycap>t</keycap>. (Alternatively, you
- can you use the mouse to select <guimenuitem>Emacs
- Tutorial</guimenuitem> from the <guimenu>Help</guimenu>
- menu).</para>
-
- <para>Although Emacs does have menus, it's well worth learning
- the key bindings, as it's much quicker when you're editing
- something to press a couple of keys than to try and find the
- mouse and then click on the right place. And, when you're
- talking to seasoned Emacs users, you'll find they often
- casually throw around expressions like <quote><literal>M-x
- replace-s RET foo RET bar RET</literal></quote> so it's
- useful to know what they mean. And in any case, Emacs has far
- too many useful functions for them to all fit on the menu
- bars.</para>
-
- <para>Fortunately, it's quite easy to pick up the key-bindings,
- as they're displayed next to the menu item. My advice is to
- use the menu item for, say, opening a file until you
- understand how it works and feel confident with it, then try
- doing C-x C-f. When you're happy with that, move on to
- another menu command.</para>
-
- <para>If you can't remember what a particular combination of
- keys does, select <guimenuitem>Describe Key</guimenuitem> from
- the <guimenu>Help</guimenu> menu and type it in&mdash;Emacs
- will tell you what it does. You can also use the
- <guimenuitem>Command Apropos</guimenuitem> menu item to find
- out all the commands which contain a particular word in them,
- with the key binding next to it.</para>
-
- <para>By the way, the expression above means hold down the
- <keysym>Meta</keysym> key, press <keysym>x</keysym>, release
- the <keysym>Meta</keysym> key, type
- <userinput>replace-s</userinput> (short for
- <literal>replace-string</literal>&mdash;another feature of
- Emacs is that you can abbreviate commands), press the
- <keysym>return</keysym> key, type <userinput>foo</userinput>
- (the string you want replaced), press the
- <keysym>return</keysym> key, type bar (the string you want to
- replace <literal>foo</literal> with) and press
- <keysym>return</keysym> again. Emacs will then do the
- search-and-replace operation you've just requested.</para>
-
- <para>If you're wondering what on earth the
- <keysym>Meta</keysym> key is, it's a special key that many
- Unix workstations have. Unfortunately, PC's don't have one,
- so it's usually the <keycap>alt</keycap> key (or if you're
- unlucky, the <keysym>escape</keysym> key).</para>
-
- <para>Oh, and to get out of Emacs, do <command>C-x C-c</command>
- (that means hold down the <keysym>control</keysym> key, press
- <keysym>x</keysym>, press <keysym>c</keysym> and release the
- <keysym>control</keysym> key). If you have any unsaved files
- open, Emacs will ask you if you want to save them. (Ignore
- the bit in the documentation where it says
- <command>C-z</command> is the usual way to leave
- Emacs&mdash;that leaves Emacs hanging around in the
- background, and is only really useful if you're on a system
- which doesn't have virtual terminals).</para>
- </sect2>
-
- <sect2>
- <title>Configuring Emacs</title>
-
- <para>Emacs does many wonderful things; some of them are built
- in, some of them need to be configured.</para>
-
- <para>Instead of using a proprietary macro language for
- configuration, Emacs uses a version of Lisp specially adapted
- for editors, known as Emacs Lisp. This can be quite useful if
- you want to go on and learn something like Common Lisp, as
- it's considerably smaller than Common Lisp (although still
- quite big!).</para>
-
- <para>The best way to learn Emacs Lisp is to download the <ulink
- URL="ftp://prep.ai.mit.edu:pub/gnu/elisp-manual-19-2.4.tar.gz">Emacs
- Tutorial</ulink></para>
-
- <para>However, there's no need to actually know any Lisp to get
- started with configuring Emacs, as I've included a sample
- <filename>.emacs</filename> file, which should be enough to
- get you started. Just copy it into your home directory and
- restart Emacs if it's already running; it will read the
- commands from the file and (hopefully) give you a useful basic
- setup.</para>
- </sect2>
-
- <sect2>
- <title>A sample <filename>.emacs</filename> file</title>
-
- <para>Unfortunately, there's far too much here to explain it in
- detail; however there are one or two points worth
- mentioning.</para>
-
- <itemizedlist>
- <listitem>
- <para>Everything beginning with a <literal>;</literal> is a comment
- and is ignored by Emacs.</para>
- </listitem>
-
- <listitem>
- <para>In the first line, the
- <literal>-*-&nbsp;Emacs-Lisp&nbsp;-*-</literal> is so that
- we can edit the <filename>.emacs</filename> file itself
- within Emacs and get all the fancy features for editing
- Emacs Lisp. Emacs usually tries to guess this based on
- the filename, and may not get it right for
- <filename>.emacs</filename>.</para>
- </listitem>
-
- <listitem>
- <para>The <keysym>tab</keysym> key is bound to an
- indentation function in some modes, so when you press the
- tab key, it will indent the current line of code. If you
- want to put a <token>tab</token> character in whatever
- you're writing, hold the <keysym>control</keysym> key down
- while you're pressing the <keysym>tab</keysym> key.</para>
- </listitem>
-
- <listitem>
- <para>This file supports syntax highlighting for C, C++,
- Perl, Lisp and Scheme, by guessing the language from the
- filename.</para>
- </listitem>
-
- <listitem>
- <para>Emacs already has a pre-defined function called
- <function>next-error</function>. In a compilation output
- window, this allows you to move from one compilation error
- to the next by doing <command>M-n</command>; we define a
- complementary function,
- <function>previous-error</function>, that allows you to go
- to a previous error by doing <command>M-p</command>. The
- nicest feature of all is that <command>C-c C-c</command>
- will open up the source file in which the error occurred
- and jump to the appropriate line.</para>
- </listitem>
-
- <listitem>
- <para>We enable Emacs's ability to act as a server, so that
- if you're doing something outside Emacs and you want to
- edit a file, you can just type in</para>
-
- <screen>&prompt.user; <userinput>emacsclient <replaceable>filename</replaceable></userinput>
- </screen>
-
- <para>and then you can edit the file in your
- Emacs!
-
- <footnote>
- <para>Many Emacs users set their <envar>EDITOR</envar>
- environment to
- <literal>emacsclient</literal> so this happens every
- time they need to edit a file.</para>
- </footnote></para>
- </listitem>
- </itemizedlist>
-
- <example>
- <title>A sample <filename>.emacs</filename> file</title>
-
- <programlisting>;; -*-Emacs-Lisp-*-
-
-;; This file is designed to be re-evaled; use the variable first-time
-;; to avoid any problems with this.
-(defvar first-time t
- "Flag signifying this is the first time that .emacs has been evaled")
-
-;; Meta
-(global-set-key "\M- " 'set-mark-command)
-(global-set-key "\M-\C-h" 'backward-kill-word)
-(global-set-key "\M-\C-r" 'query-replace)
-(global-set-key "\M-r" 'replace-string)
-(global-set-key "\M-g" 'goto-line)
-(global-set-key "\M-h" 'help-command)
-
-;; Function keys
-(global-set-key [f1] 'manual-entry)
-(global-set-key [f2] 'info)
-(global-set-key [f3] 'repeat-complex-command)
-(global-set-key [f4] 'advertised-undo)
-(global-set-key [f5] 'eval-current-buffer)
-(global-set-key [f6] 'buffer-menu)
-(global-set-key [f7] 'other-window)
-(global-set-key [f8] 'find-file)
-(global-set-key [f9] 'save-buffer)
-(global-set-key [f10] 'next-error)
-(global-set-key [f11] 'compile)
-(global-set-key [f12] 'grep)
-(global-set-key [C-f1] 'compile)
-(global-set-key [C-f2] 'grep)
-(global-set-key [C-f3] 'next-error)
-(global-set-key [C-f4] 'previous-error)
-(global-set-key [C-f5] 'display-faces)
-(global-set-key [C-f8] 'dired)
-(global-set-key [C-f10] 'kill-compilation)
-
-;; Keypad bindings
-(global-set-key [up] "\C-p")
-(global-set-key [down] "\C-n")
-(global-set-key [left] "\C-b")
-(global-set-key [right] "\C-f")
-(global-set-key [home] "\C-a")
-(global-set-key [end] "\C-e")
-(global-set-key [prior] "\M-v")
-(global-set-key [next] "\C-v")
-(global-set-key [C-up] "\M-\C-b")
-(global-set-key [C-down] "\M-\C-f")
-(global-set-key [C-left] "\M-b")
-(global-set-key [C-right] "\M-f")
-(global-set-key [C-home] "\M-&lt;")
-(global-set-key [C-end] "\M-&gt;")
-(global-set-key [C-prior] "\M-&lt;")
-(global-set-key [C-next] "\M-&gt;")
-
-;; Mouse
-(global-set-key [mouse-3] 'imenu)
-
-;; Misc
-(global-set-key [C-tab] "\C-q\t") ; Control tab quotes a tab.
-(setq backup-by-copying-when-mismatch t)
-
-;; Treat 'y' or &lt;CR&gt; as yes, 'n' as no.
-(fset 'yes-or-no-p 'y-or-n-p)
- (define-key query-replace-map [return] 'act)
- (define-key query-replace-map [?\C-m] 'act)
-
-;; Load packages
-(require 'desktop)
-(require 'tar-mode)
-
-;; Pretty diff mode
-(autoload 'ediff-buffers "ediff" "Intelligent Emacs interface to diff" t)
-(autoload 'ediff-files "ediff" "Intelligent Emacs interface to diff" t)
-(autoload 'ediff-files-remote "ediff"
- "Intelligent Emacs interface to diff")
-
-(if first-time
- (setq auto-mode-alist
- (append '(("\\.cpp$" . c++-mode)
- ("\\.hpp$" . c++-mode)
- ("\\.lsp$" . lisp-mode)
- ("\\.scm$" . scheme-mode)
- ("\\.pl$" . perl-mode)
- ) auto-mode-alist)))
-
-;; Auto font lock mode
-(defvar font-lock-auto-mode-list
- (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode)
- "List of modes to always start in font-lock-mode")
-
-(defvar font-lock-mode-keyword-alist
- '((c++-c-mode . c-font-lock-keywords)
- (perl-mode . perl-font-lock-keywords))
- "Associations between modes and keywords")
-
-(defun font-lock-auto-mode-select ()
- "Automatically select font-lock-mode if the current major mode is
-in font-lock-auto-mode-list"
- (if (memq major-mode font-lock-auto-mode-list)
- (progn
- (font-lock-mode t))
- )
- )
-
-(global-set-key [M-f1] 'font-lock-fontify-buffer)
-
-;; New dabbrev stuff
-;(require 'new-dabbrev)
-(setq dabbrev-always-check-other-buffers t)
-(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_")
-(add-hook 'emacs-lisp-mode-hook
- '(lambda ()
- (set (make-local-variable 'dabbrev-case-fold-search) nil)
- (set (make-local-variable 'dabbrev-case-replace) nil)))
-(add-hook 'c-mode-hook
- '(lambda ()
- (set (make-local-variable 'dabbrev-case-fold-search) nil)
- (set (make-local-variable 'dabbrev-case-replace) nil)))
-(add-hook 'text-mode-hook
- '(lambda ()
- (set (make-local-variable 'dabbrev-case-fold-search) t)
- (set (make-local-variable 'dabbrev-case-replace) t)))
-
-;; C++ and C mode...
-(defun my-c++-mode-hook ()
- (setq tab-width 4)
- (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key c++-mode-map "\C-ce" 'c-comment-edit)
- (setq c++-auto-hungry-initial-state 'none)
- (setq c++-delete-function 'backward-delete-char)
- (setq c++-tab-always-indent t)
- (setq c-indent-level 4)
- (setq c-continued-statement-offset 4)
- (setq c++-empty-arglist-indent 4))
-
-(defun my-c-mode-hook ()
- (setq tab-width 4)
- (define-key c-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key c-mode-map "\C-ce" 'c-comment-edit)
- (setq c-auto-hungry-initial-state 'none)
- (setq c-delete-function 'backward-delete-char)
- (setq c-tab-always-indent t)
-;; BSD-ish indentation style
- (setq c-indent-level 4)
- (setq c-continued-statement-offset 4)
- (setq c-brace-offset -4)
- (setq c-argdecl-indent 0)
- (setq c-label-offset -4))
-
-;; Perl mode
-(defun my-perl-mode-hook ()
- (setq tab-width 4)
- (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (setq perl-indent-level 4)
- (setq perl-continued-statement-offset 4))
-
-;; Scheme mode...
-(defun my-scheme-mode-hook ()
- (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent))
-
-;; Emacs-Lisp mode...
-(defun my-lisp-mode-hook ()
- (define-key lisp-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key lisp-mode-map "\C-i" 'lisp-indent-line)
- (define-key lisp-mode-map "\C-j" 'eval-print-last-sexp))
-
-;; Add all of the hooks...
-(add-hook 'c++-mode-hook 'my-c++-mode-hook)
-(add-hook 'c-mode-hook 'my-c-mode-hook)
-(add-hook 'scheme-mode-hook 'my-scheme-mode-hook)
-(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook)
-(add-hook 'lisp-mode-hook 'my-lisp-mode-hook)
-(add-hook 'perl-mode-hook 'my-perl-mode-hook)
-
-;; Complement to next-error
-(defun previous-error (n)
- "Visit previous compilation error message and corresponding source code."
- (interactive "p")
- (next-error (- n)))
-
-;; Misc...
-(transient-mark-mode 1)
-(setq mark-even-if-inactive t)
-(setq visible-bell nil)
-(setq next-line-add-newlines nil)
-(setq compile-command "make")
-(setq suggest-key-bindings nil)
-(put 'eval-expression 'disabled nil)
-(put 'narrow-to-region 'disabled nil)
-(put 'set-goal-column 'disabled nil)
-
-;; Elisp archive searching
-(autoload 'format-lisp-code-directory "lispdir" nil t)
-(autoload 'lisp-dir-apropos "lispdir" nil t)
-(autoload 'lisp-dir-retrieve "lispdir" nil t)
-(autoload 'lisp-dir-verify "lispdir" nil t)
-
-;; Font lock mode
-(defun my-make-face (face colour &amp;optional bold)
- "Create a face from a colour and optionally make it bold"
- (make-face face)
- (copy-face 'default face)
- (set-face-foreground face colour)
- (if bold (make-face-bold face))
- )
-
-(if (eq window-system 'x)
- (progn
- (my-make-face 'blue "blue")
- (my-make-face 'red "red")
- (my-make-face 'green "dark green")
- (setq font-lock-comment-face 'blue)
- (setq font-lock-string-face 'bold)
- (setq font-lock-type-face 'bold)
- (setq font-lock-keyword-face 'bold)
- (setq font-lock-function-name-face 'red)
- (setq font-lock-doc-string-face 'green)
- (add-hook 'find-file-hooks 'font-lock-auto-mode-select)
-
- (setq baud-rate 1000000)
- (global-set-key "\C-cmm" 'menu-bar-mode)
- (global-set-key "\C-cms" 'scroll-bar-mode)
- (global-set-key [backspace] 'backward-delete-char)
- ; (global-set-key [delete] 'delete-char)
- (standard-display-european t)
- (load-library "iso-transl")))
-
-;; X11 or PC using direct screen writes
-(if window-system
- (progn
- ;; (global-set-key [M-f1] 'hilit-repaint-command)
- ;; (global-set-key [M-f2] [?\C-u M-f1])
- (setq hilit-mode-enable-list
- '(not text-mode c-mode c++-mode emacs-lisp-mode lisp-mode
- scheme-mode)
- hilit-auto-highlight nil
- hilit-auto-rehighlight 'visible
- hilit-inhibit-hooks nil
- hilit-inhibit-rebinding t)
- (require 'hilit19)
- (require 'paren))
- (setq baud-rate 2400) ; For slow serial connections
- )
-
-;; TTY type terminal
-(if (and (not window-system)
- (not (equal system-type 'ms-dos)))
- (progn
- (if first-time
- (progn
- (keyboard-translate ?\C-h ?\C-?)
- (keyboard-translate ?\C-? ?\C-h)))))
-
-;; Under UNIX
-(if (not (equal system-type 'ms-dos))
- (progn
- (if first-time
- (server-start))))
-
-;; Add any face changes here
-(add-hook 'term-setup-hook 'my-term-setup-hook)
-(defun my-term-setup-hook ()
- (if (eq window-system 'pc)
- (progn
-;; (set-face-background 'default "red")
- )))
-
-;; Restore the "desktop" - do this as late as possible
-(if first-time
- (progn
- (desktop-load-default)
- (desktop-read)))
-
-;; Indicate that this file has been read at least once
-(setq first-time nil)
-
-;; No need to debug anything now
-
-(setq debug-on-error nil)
-
-;; All done
-(message "All done, %s%s" (user-login-name) ".")
- </programlisting>
- </example>
- </sect2>
-
- <sect2>
- <title>Extending the Range of Languages Emacs Understands</title>
-
- <para>Now, this is all very well if you only want to program in
- the languages already catered for in the
- <filename>.emacs</filename> file (C, C++, Perl, Lisp and
- Scheme), but what happens if a new language called
- <quote>whizbang</quote> comes out, full of exciting
- features?</para>
-
- <para>The first thing to do is find out if whizbang comes with
- any files that tell Emacs about the language. These usually
- end in <filename>.el</filename>, short for <quote>Emacs
- Lisp</quote>. For example, if whizbang is a FreeBSD port, we
- can locate these files by doing</para>
-
- <screen>&prompt.user; <userinput>find /usr/ports/lang/whizbang -name "*.el" -print</userinput>
- </screen>
-
- <para>and install them by copying them into the Emacs site Lisp
- directory. On FreeBSD 2.1.0-RELEASE, this is
- <filename>/usr/local/share/emacs/site-lisp</filename>.</para>
-
- <para>So for example, if the output from the find command
- was</para>
-
- <screen>/usr/ports/lang/whizbang/work/misc/whizbang.el
- </screen>
-
- <para>we would do</para>
-
- <screen>&prompt.root; <userinput>cp /usr/ports/lang/whizbang/work/misc/whizbang.el /usr/local/share/emacs/site-lisp</userinput>
- </screen>
-
- <para>Next, we need to decide what extension whizbang source
- files have. Let's say for the sake of argument that they all
- end in <filename>.wiz</filename>. We need to add an entry to
- our <filename>.emacs</filename> file to make sure Emacs will
- be able to use the information in
- <filename>whizbang.el</filename>.</para>
-
- <para>Find the <symbol>auto-mode-alist entry</symbol> in
- <filename>.emacs</filename> and add a line for whizbang, such
- as:</para>
-
- <programlisting><lineannotation>&hellip;</>
-("\\.lsp$" . lisp-mode)
-("\\.wiz$" . whizbang-mode)
-("\\.scm$" . scheme-mode)
-<lineannotation>&hellip;</></programlisting>
-
- <para>This means that Emacs will automatically go into
- <function>whizbang-mode</function> when you edit a file ending
- in <filename>.wiz</filename>.</para>
-
- <para>Just below this, you'll find the
- <symbol>font-lock-auto-mode-list</symbol> entry. Add
- <function>whizbang-mode</function> to it like so:</para>
-
- <programlisting>;; Auto font lock mode
-(defvar font-lock-auto-mode-list
- (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'whizbang-mode 'lisp-mode 'perl-mode 'scheme-mode)
- "List of modes to always start in font-lock-mode")</programlisting>
-
- <para>This means that Emacs will always enable
- <function>font-lock-mode</function> (ie syntax highlighting)
- when editing a <filename>.wiz</filename> file.</para>
-
- <para>And that's all that's needed. If there's anything else
- you want done automatically when you open up a
- <filename>.wiz</filename> file, you can add a
- <function>whizbang-mode hook</function> (see
- <function>my-scheme-mode-hook</function> for a simple example
- that adds <function>auto-indent</function>).</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Further Reading</title>
-
- <itemizedlist>
- <listitem>
- <para>Brian Harvey and Matthew Wright
- <emphasis>Simply Scheme</emphasis>
- MIT 1994.<!-- <br> -->
- ISBN 0-262-08226-8</para>
- </listitem>
-
- <listitem>
- <para>Randall Schwartz
- <emphasis>Learning Perl</emphasis>
- O'Reilly 1993<!-- <br> -->
- ISBN 1-56592-042-2</para>
- </listitem>
-
- <listitem>
- <para>Patrick Henry Winston and Berthold Klaus Paul Horn
- <emphasis>Lisp (3rd Edition)</emphasis>
- Addison-Wesley 1989<!-- <br> -->
- ISBN 0-201-08319-1</para>
- </listitem>
-
- <listitem>
- <para>Brian W. Kernighan and Rob Pike
- <emphasis>The Unix Programming Environment</emphasis>
- Prentice-Hall 1984<!-- <br> -->
- ISBN 0-13-937681-X</para>
- </listitem>
-
- <listitem>
- <para>Brian W. Kernighan and Dennis M. Ritchie
- <emphasis>The C Programming Language (2nd Edition)</emphasis>
- Prentice-Hall 1988<!-- <br> -->
- ISBN 0-13-110362-8</para>
- </listitem>
-
- <listitem>
- <para>Bjarne Stroustrup
- <emphasis>The C++ Programming Language</emphasis>
- Addison-Wesley 1991<!-- <br> -->
- ISBN 0-201-53992-6</para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens
- <emphasis>Advanced Programming in the Unix Environment</emphasis>
- Addison-Wesley 1992<!-- <br> -->
- ISBN 0-201-56317-7</para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens
- <emphasis>Unix Network Programming</emphasis>
- Prentice-Hall 1990<!-- <br> -->
- ISBN 0-13-949876-1</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- </chapter>
diff --git a/en_US.ISO8859-1/books/developers-handbook/usb/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/usb/chapter.sgml
deleted file mode 100644
index 9656256e31..0000000000
--- a/en_US.ISO8859-1/books/developers-handbook/usb/chapter.sgml
+++ /dev/null
@@ -1,623 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="usb">
- <title>USB Devices</title>
-
- <para><emphasis>This chapter was written by &a.nhibma;. Modifications made for
- the handbook by &a.murray;.</emphasis></para>
-
- <sect1>
- <title>Introduction</title>
-
- <para>The Universal Serial Bus (USB) is a new way of attaching
- devices to personal computers. The bus architecture features
- two-way communication and has been developed as a response to
- devices becoming smarter and requiring more interaction with the
- host. USB support is included in all current PC chipsets and is
- therefore available in all recently built PCs. Apple's
- introduction of the USB-only iMac has been a major incentive for
- hardware manufacturers to produce USB versions of their devices.
- The future PC specifications specify that all legacy connectors
- on PCs should be replaced by one or more USB connectors,
- providing generic plug and play capabilities. Support for USB
- hardware was available at a very early stage in NetBSD and was
- developed by Lennart Augustsson for the NetBSD project. The
- code has been ported to FreeBSD and we are currently maintaining
- a shared code base. For the implementation of the USB subsystem
- a number of features of USB are important.</para>
-
- <para><emphasis>Lennart Augustsson has done most of the implementation of
- the USB support for the NetBSD project. Many thanks for this
- incredible amount of work. Many thanks also to Ardy and Dirk for
- their comments and proofreading of this paper.</emphasis></para>
-
- <itemizedlist>
-
- <listitem><para>Devices connect to ports on the computer
- directly or on devices called hubs, forming a treelike device
- structure.</para></listitem>
-
- <listitem><para>The devices can be connected and disconnected at
- run time.</para></listitem>
-
- <listitem><para>Devices can suspend themselves and trigger
- resumes of the host system</para></listitem>
-
- <listitem><para>As the devices can be powered from the bus, the
- host software has to keep track of power budgets for each
- hub.</para></listitem>
-
- <listitem><para>Different quality of service requirements by the
- different device types together with the maximum of 126
- devices that can be connected to the same bus, require proper
- scheduling of transfers on the shared bus to take full
- advantage of the 12Mbps bandwidth available. (over 400Mbps
- with USB 2.0)</para></listitem>
-
- <listitem><para>Devices are intelligent and contain easily
- accessible information about themselves</para></listitem>
-
- </itemizedlist>
-
- <para>The development of drivers for the USB subsystem and devices
- connected to it is supported by the specifications that have
- been developed and will be developed. These specifications are
- publicly available from the USB home pages. Apple has been very
- strong in pushing for standards based drivers, by making drivers
- for the generic classes available in their operating system
- MacOS and discouraging the use of separate drivers for each new
- device. This chapter tries to collate essential information for a
- basic understanding of the present implementation of the USB
- stack in FreeBSD/NetBSD. It is recommended however to read it
- together with the relevant specifications mentioned in the
- references below.</para>
-
- <sect2>
- <title>Structure of the USB Stack</title>
-
- <para>The USB support in FreeBSD can be split into three
- layers. The lowest layer contains the host controller driver,
- providing a generic interface to the hardware and its scheduling
- facilities. It supports initialisation of the hardware,
- scheduling of transfers and handling of completed and/or failed
- transfers. Each host controller driver implements a virtual hub
- providing hardware independent access to the registers
- controlling the root ports on the back of the machine.</para>
-
- <para>The middle layer handles the device connection and
- disconnection, basic initialisation of the device, driver
- selection, the communication channels (pipes) and does
- resource management. This services layer also controls the
- default pipes and the device requests transferred over
- them.</para>
-
- <para>The top layer contains the individual drivers supporting
- specific (classes of) devices. These drivers implement the
- protocol that is used over the pipes other than the default
- pipe. They also implement additional functionality to make the
- device available to other parts of the kernel oruserland. They
- use the USB driver interface (USBDI) exposed by the services
- layer.</para>
- </sect2>
- </sect1>
-
- <sect1 id="usb-hc">
- <title>Host Controllers</title>
-
- <para>The host controller (HC) controls the transmission of
- packets on the bus. Frames of 1 millisecond are used. At the
- start of each frame the host controller generates a Start of
- Frame (SOF) packet.</para>
-
- <para>The SOF packet is used to synchronise to the start of the
- frame and to keep track of the frame number. Within each frame
- packets are transferred, either from host to device (out) or
- from device to host (in). Transfers are always initiated by the
- host (polled transfers). Therefore there can only be one host
- per USB bus. Each transfer of a packet has a status stage in
- which the recipient of the data can return either ACK
- (acknowledge reception), NAK (retry), STALL (error condition) or
- nothing (garbled data stage, device not available or
- disconnected). Section 8.5 of the <ulink
- url="http://www.usb.org/developers/docs.html">USB
- specification</ulink> explains the details of packets in more
- detail. Four different types of transfers can occur on a USB
- bus: control, bulk, interrupt and isochronous. The types of
- transfers and their characteristics are described below (`Pipes'
- subsection).</para>
-
- <para>Large transfers between the device on the USB bus and the
- device driver are split up into multiple packets by the host
- controller or the HC driver.</para>
-
- <para>Device requests (control transfers) to the default endpoints
- are special. They consist of two or three phases: SETUP, DATA
- (optional) and STATUS. The set-up packet is sent to the
- device. If there is a data phase, the direction of the data
- packet(s) is given in the set-up packet. The direction in the
- status phase is the opposite of the direction during the data
- phase, or IN if there was no data phase. The host controller
- hardware also provides registers with the current status of the
- root ports and the changes that have occurred since the last
- reset of the status change register. Access to these registers
- is provided through a virtualised hub as suggested in the USB
- specification [ 2]. Thevirtual hub must comply with the hub
- device class given in chapter 11 of that specification. It must
- provide a default pipe through which device requests can be sent
- to it. It returns the standard andhub class specific set of
- descriptors. It should also provide an interrupt pipe that
- reports changes happening at its ports. There are currently two
- specifications for host controllers available: <ulink
- url="http://developer.intel.com/design/USB/UHCI11D.htm">Universal
- Host Controller Interface</ulink> (UHCI; Intel) and <ulink
- url="http://www.compaq.com/productinfo/development/openhci.html">Open
- Host Controller Interface</ulink> (OHCI; Compaq, Microsoft,
- National Semiconductor). The UHCI specification has been
- designed to reduce hardware complexity byrequiring the host
- controller driver to supply a complete schedule of the transfers
- for each frame. OHCI type controllers are much more independent
- by providing a more abstract interface doing alot of work
- themselves. </para>
-
- <sect2>
- <title>UHCI</title>
-
- <para>The UHCI host controller maintains a framelist with 1024
- pointers to per frame data structures. It understands two
- different data types: transfer descriptors (TD) and queue
- heads (QH). Each TD represents a packet to be communicated to
- or from a device endpoint. QHs are a means to groupTDs (and
- QHs) together.</para>
-
- <para>Each transfer consists of one or more packets. The UHCI
- driver splits large transfers into multiple packets. For every
- transfer, apart from isochronous transfers, a QH is
- allocated. For every type of transfer these QHs are collected
- at a QH for that type. Isochronous transfers have to be
- executed first because of the fixed latency requirement and
- are directly referred to by the pointer in the framelist. The
- last isochronous TD refers to the QH for interrupt transfers
- for that frame. All QHs for interrupt transfers point at the
- QH for control transfers, which in turn points at the QH for
- bulk transfers. The following diagram gives a graphical
- overview of this:</para>
-
- <para>This results in the following schedule being run in each
- frame. After fetching the pointer for the current frame from
- the framelist the controller first executes the TDs for all
- the isochronous packets in that frame. The last of these TDs
- refers to the QH for the interrupt transfers for
- thatframe. The host controller will then descend from that QH
- to the QHs for the individual interrupt transfers. After
- finishing that queue, the QH for the interrupt transfers will
- refer the controller to the QH for all control transfers. It
- will execute all the subqueues scheduled there, followed by
- all the transfers queued at the bulk QH. To facilitate the
- handling of finished or failed transfers different types of
- interrupts are generatedby the hardware at the end of each
- frame. In the last TD for a transfer the Interrupt-On
- Completion bit is set by the HC driver to flag an interrupt
- when the transfer has completed. An error interrupt is flagged
- if a TD reaches its maximum error count. If the short packet
- detect bit is set in a TD and less than the set packet length
- is transferred this interrupt is flagged to notify
- the controller driver of the completed transfer. It is the host
- controller driver's task to find out which transfer has
- completed or produced an error. When called the interrupt
- service routine will locate all the finished transfers and
- call their callbacks.</para>
-
- <para>See for a more elaborate description the <ulink
- url="http://developer.intel.com/design/USB/UHCI11D.htm">UHCI
- specification.</ulink></para>
-
- </sect2>
-
- <sect2>
- <title>OHCI</title>
-
- <para>Programming an OHCI host controller is much simpler. The
- controller assumes that a set of endpoints is available, and
- is aware of scheduling priorities and the ordering of the
- types of transfers in a frame. The main data structure used by
- the host controller is the endpoint descriptor (ED) to which
- aqueue of transfer descriptors (TDs) is attached. The ED
- contains the maximum packet size allowed for an endpoint and
- the controller hardware does the splitting into packets. The
- pointers to the data buffers are updated after each transfer
- and when the start and end pointer are equal, the TD is
- retired to the done-queue. The four types of endpoints have
- their own queues. Control and bulk endpoints are queued each at
- their own queue. Interrupt EDs are queued in a tree, with the
- level in the tree defining the frequency at which they
- run.</para>
-
- <para>framelist interruptisochronous control bulk</para>
-
- <para>The schedule being run by the host controller in each
- frame looks as follows. The controller will first run the
- non-periodic control and bulk queues, up to a time limit set
- by the HC driver. Then the interrupt transfers for that frame
- number are run, by using the lower five bits of the frame
- number as an index into level 0 of the tree of interrupts
- EDs. At the end of this tree the isochronous EDs are connected
- and these are traversed subsequently. The isochronous TDs
- contain the frame number of the first frame the transfer
- should be run in. After all the periodic transfers have been
- run, the control and bulk queues are traversed
- again. Periodically the interrupt service routine is called to
- process the done queue and call the callbacks for each
- transfer and reschedule interrupt and isochronous
- endpoints.</para>
-
- <para>See for a more elaborate description the <ulink
- url="http://www.compaq.com/productinfo/development/openhci.html">
- OHCI specification</ulink>. Services layer The middle layer
- provides access to the device in a controlled way and
- maintains resources inuse by the different drivers and the
- services layer. The layer takes care of the following
- aspects:</para>
-
- <itemizedlist>
- <listitem><para>The device configuration
- information</para></listitem>
- <listitem><para>The pipes to communicate with a
- device</para></listitem>
- <listitem><para>Probing and attaching and detaching form a
- device.</para></listitem>
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="usb-dev">
- <title>USB Device Information</title>
-
- <sect2>
- <title>Device configuration information</title>
-
- <para>Each device provides different levels of configuration
- information. Each device has one or more configurations, of
- which one is selected during probe/attach. A configuration
- provides power and bandwidth requirements. Within each
- configuration there can be multiple interfaces. A device
- interface is a collection of endpoints. For example USB
- speakers can have an interface for the audio data (Audio
- Class) and an interface for the knobs, dials and buttons (HID
- Class). All interfaces in a configuration areactive at the
- same time and can be attached to by different drivers. Each
- interface can have alternates, providing different quality of
- service parameters. In for example cameras this is used to
- provide different frame sizes and numbers of frames per
- second.</para>
-
- <para>Within each interface 0 or more endpoints can be
- specified. Endpoints are the unidirectional access points for
- communicating with a device. They provide buffers to
- temporarily store incoming or outgoing data from the
- device. Each endpoint has a unique address within
- a configuration, the endpoint's number plus its direction. The
- default endpoint, endpoint 0, is not part of any interface and
- available in all configurations. It is managed by the services
- layer and not directly available to device drivers.</para>
-
- <para>Level 0 Level 1 Level 2 Slot 0</para>
- <para>Slot 3 Slot 2 Slot 1</para>
- <para>(Only 4 out of 32 slots shown)</para>
-
- <para>This hierarchical configuration information is described
- in the device by a standard set of descriptors (see section 9.6
- of the USB specification [ 2]). They can be requested through
- the Get Descriptor Request. The services layer caches these
- descriptors to avoid unnecessary transferson the USB
- bus. Access to the descriptors is provided through function
- calls.</para>
-
- <itemizedlist>
- <listitem><para>Device descriptors: General information about
- the device, like Vendor, Product and Revision Id, supported
- device class, subclass and protocol if applicable, maximum
- packet size for the default endpoint, etc.</para></listitem>
-
- <listitem><para>Configuration descriptors: The number of
- interfaces in this configuration, suspend and resume
- functionality supported and power
- requirements.</para></listitem>
-
- <listitem><para>Interface descriptors: interface class,
- subclass and protocol if applicable, number of alternate
- settings for the interface and the number of
- endpoints.</para></listitem>
-
- <listitem><para>Endpoint descriptors: Endpoint address,
- direction and type, maximum packet size supported and
- polling frequency if type is interrupt endpoint. There is no
- descriptor for thedefault endpoint (endpoint 0) and it is
- never counted in an interface descriptor.</para></listitem>
-
- <listitem><para>String descriptors: In the other descriptors
- string indices are supplied for some fields.These can be
- used to retrieve descriptive strings, possibly in multiple
- languages.</para></listitem>
-
- </itemizedlist>
-
- <para>Class specifications can add their own descriptor types
- that are available through the GetDescriptor Request.</para>
-
- <para>Pipes Communication to end points on a device flows
- through so-called pipes. Drivers submit transfers to endpoints
- to a pipe and provide a callback to be called on completion or
- failure of the transfer (asynchronous transfers) or wait for
- completion (synchronous transfer). Transfers to an endpoint
- are serialised in the pipe. A transfer can either complete,
- fail or time-out (if a time-out has been set). There are two
- types of time-outs for transfers. Time-outs can happen due to
- time-out on the USBbus (milliseconds). These time-outs are
- seen as failures and can be due to disconnection of the
- device. A second form of time-out is implemented in software
- and is triggered when a transfer does not complete within a
- specified amount of time (seconds). These are caused by a
- device acknowledging negatively (NAK) the transferred
- packets. The cause for this is the device not being ready to
- receive data, buffer under- or overrun or protocol
- errors.</para>
-
- <para>If a transfer over a pipe is larger than the maximum
- packet size specified in the associated endpoint descriptor,
- the host controller (OHCI) or the HC driver (UHCI) will split
- the transfer into packets of maximum packet size, with the
- last packet possibly smaller than the maximum
- packetsize.</para>
-
- <para>Sometimes it is not a problem for a device to return less
- data than requested. For example abulk-in-transfer to a modem
- might request 200 bytes of data, but the modem has only 5
- bytes available at that time. The driver can set the short
- packet (SPD) flag. It allows the host controller to accept a
- packet even if the amount of data transferred is less than
- requested. This flag is only valid for in-transfers, as the
- amount of data to be sent to a device is always known
- beforehand. If an unrecoverable error occurs in a device
- during a transfer the pipe is stalled. Before any more data is
- accepted or sent the driver needs to resolve the cause of the
- stall and clear the endpoint stall condition through send the
- clear endpoint halt device request over the default
- pipe. The default endpoint should never stall.</para>
-
- <para>There are four different types of endpoints and
- corresponding pipes: - Control pipe / default pipe: There is
- one control pipe per device, connected to the default endpoint
- (endpoint 0). The pipe carries the device requests and
- associated data. The difference between transfers over the
- default pipe and other pipes is that the protocol for
- thetransfers is described in the USB specification [ 2]. These
- requests are used to reset and configure the device. A basic
- set of commands that must be supported by each device is
- provided in chapter 9 of the USB specification [ 2]. The
- commands supported on this pipe canbe extended by a device
- class specification to support additional
- functionality.</para>
-
- <itemizedlist>
- <listitem><para>Bulk pipe: This is the USB equivalent to a raw
- transmission medium.</para></listitem>
- <listitem><para>Interrupt pipe: The host sends a request for
- data to the device and if the device has nothing to send, it
- will NAK the data packet. Interrupt transfers are scheduled
- at a frequency specifiedwhen creating the
- pipe.</para></listitem>
-
- <listitem><para>Isochronous pipe: These pipes are intended for
- isochronous data, for example video oraudio streams, with
- fixed latency, but no guaranteed delivery. Some support for
- pipes of this type is available in the current
- implementation. Packets in control, bulk and interrupt
- transfers are retried if an error occurs during transmission
- or the device acknowledges the packet negatively (NAK) due to
- for example lack of buffer space to store the incoming
- data. Isochronous packets are however not retried in case of
- failed delivery or NAK of a packet as this might violate the
- timing constraints.</para></listitem>
- </itemizedlist>
-
- <para>The availability of the necessary bandwidth is calculated
- during the creation of the pipe. Transfersare scheduled within
- frames of 1 millisecond. The bandwidth allocation within a
- frame is prescribed by the USB specification, section 5.6 [
- 2]. Isochronous and interrupt transfers areallowed to consume
- up to 90% of the bandwidth within a frame. Packets for control
- and bulk transfers are scheduled after all isochronous and
- interrupt packets and will consume all the remaining
- bandwidth.</para>
-
- <para>More information on scheduling of transfers and bandwidth
- reclamation can be found in chapter 5of the USB specification
- [ 2], section 1.3 of the UHCI specification [ 3] and section
- 3.4.2 of the OHCI specification [4].</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="usb-devprobe">
- <title>Device probe and attach</title>
-
- <para>After the notification by the hub that a new device has been
- connected, the service layer switcheson the port, providing the
- device with 100 mA of current. At this point the device is in
- its default state and listening to device address 0. The
- services layer will proceed to retrieve the various descriptors
- through the default pipe. After that it will send a Set Address
- request to move the device away from the default device address
- (address 0). Multiple device drivers might be able to support
- the device. For example a modem driver might beable to support
- an ISDN TA through the AT compatibility interface. A driver for
- that specific model of the ISDN adapter might however be able to
- provide much better support for this device. To support this
- flexibility, the probes return priorities indicating their level
- of support. Support for a specific revision of a product ranks
- the highest and the generic driver the lowest priority. It might
- also be that multiple drivers could attach to one device if
- there are multiple interfaceswithin one configuration. Each
- driver only needs to support a subset of the interfaces.</para>
-
- <para>The probing for a driver for a newly attached device checks
- first for device specific drivers. If notfound, the probe code
- iterates over all supported configurations until a driver
- attaches in a configuration. To support devices with multiple
- drivers on different interfaces, the probe iteratesover all
- interfaces in a configuration that have not yet been claimed by
- a driver. Configurations that exceed the power budget for the
- hub are ignored. During attach the driver should initialise the
- device to its proper state, but not reset it, as this will make
- the device disconnect itself from the bus and restart the
- probing process for it. To avoid consuming unnecessary bandwidth
- should not claim the interrupt pipe at attach time, but
- should postpone allocating the pipe until the file is opened and
- the data is actually used. When the file is closed the pipe
- should be closed again, eventhough the device might still be
- attached.</para>
-
- <sect2>
- <title>Device disconnect and detach</title>
-
- <para>A device driver should expect to receive errors during any
- transaction with the device. The designof USB supports and
- encourages the disconnection of devices at any point in
- time. Drivers should make sure that they do the right thing
- when the device disappears.</para>
-
- <para>Furthermore a device that has been disconnected and
- reconnected will not be reattached at the same device
- instance. This might change in the future when more devices
- support serial numbers (see the device descriptor) or other
- means of defining an identity for a device have been
- developed.</para>
-
- <para>The disconnection of a device is signalled by a hub in the
- interrupt packet delivered to the hub driver. The status
- change information indicates which port has seen a connection
- change. The device detach method for all device drivers for
- the device connected on that port are called and the structures
- cleaned up. If the port status indicates that in the mean time
- a device has been connected to that port, the procedure for
- probing and attaching the device will be started. A device
- reset will produce a disconnect-connect sequence on the hub
- and will be handled as described above.</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="usb-protocol">
- <title>USB Drivers Protocol Information</title>
-
- <para>The protocol used over pipes other than the default pipe is
- undefined by the USB specification. Information on this can be
- found from various sources. The most accurate source is the
- developer's section on the USB home pages [ 1]. From these pages
- a growing number of deviceclass specifications are
- available. These specifications specify what a compliant device
- should look like from a driver perspective, basic functionality
- it needs to provide and the protocol that is to be used over the
- communication channels. The USB specification [ 2] includes the
- description of the Hub Class. A class specification for Human
- Interface Devices (HID) has been created to cater for keyboards,
- tablets, bar-code readers, buttons, knobs, switches, etc. A
- third example is the class specification for mass storage
- devices. For a full list of device classes see the developers
- sectionon the USB home pages [ 1].</para>
-
- <para>For many devices the protocol information has not yet been
- published however. Information on the protocol being used might
- be available from the company making the device. Some companies
- will require you to sign a Non -Disclosure Agreement (NDA)
- before giving you the specifications. This in most cases
- precludes making the driver open source.</para>
-
- <para>Another good source of information is the Linux driver
- sources, as a number of companies have started to provide drivers
- for Linux for their devices. It is always a good idea to contact
- the authors of those drivers for their source of
- information.</para>
-
- <para>Example: Human Interface Devices The specification for the
- Human Interface Devices like keyboards, mice, tablets, buttons,
- dials,etc. is referred to in other device class specifications
- and is used in many devices.</para>
-
- <para>For example audio speakers provide endpoints to the digital
- to analogue converters and possibly an extra pipe for a
- microphone. They also provide a HID endpoint in a separate
- interface for the buttons and dials on the front of the
- device. The same is true for the monitor control class. It is
- straightforward to build support for these interfaces through
- the available kernel and userland libraries together with the
- HID class driver or the generic driver. Another device that
- serves as an example for interfaces within one configuration
- driven by different device drivers is a cheap keyboard with
- built-in legacy mouse port. To avoid having the cost of
- including the hardware for a USB hub in the device,
- manufacturers combined the mouse data received from the PS/2 port
- on the back of the keyboard and the keypresses from the keyboard
- into two separate interfaces in the same configuration. The
- mouse and keyboard drivers each attach to the appropriate
- interface and allocate the pipes to the two independent
- endpoints.</para>
-
- <para>Example: Firmware download Many devices that have been
- developed are based on a general purpose processor with
- anadditional USB core added to it. Because the development of
- drivers and firmware for USB devices is still very new, many
- devices require the downloading of the firmware after they
- have been connected.</para>
-
- <para>The procedure followed is straightforward. The device
- identifies itself through a vendor and product Id. The first
- driver probes and attaches to it and downloads the firmware into
- it. After that the device soft resets itself and the driver is
- detached. After a short pause the devicere announces its presence
- on the bus. The device will have changed its
- vendor/product/revision Id to reflect the fact that it has been
- supplied with firmware and as a consequence a second driver will
- probe it and attach to it.</para>
-
- <para>An example of these types of devices is the ActiveWire I/O
- board, based on the EZ-USB chip. For this chip a generic firmware
- downloader is available. The firmware downloaded into the
- ActiveWire board changes the revision Id. It will then perform a
- soft reset of the USB part of the EZ-USB chip to disconnect from
- the USB bus and again reconnect.</para>
-
- <para>Example: Mass Storage Devices Support for mass storage
- devices is mainly built around existing protocols. The Iomega
- USB Zipdrive is based on the SCSI version of their drive. The
- SCSI commands and status messages are wrapped in blocks and
- transferred over the bulk pipes to and from the device,
- emulating a SCSI controller over the USB wire. ATAPI and UFI
- commands are supported in a similar fashion.</para>
-
- <para>The Mass Storage Specification supports 2 different types of
- wrapping of the command block.The initial attempt was based on
- sending the command and status through the default pipe and
- using bulk transfers for the data to be moved between the host
- and the device. Based on experience a second approach was
- designed that was based on wrapping the command and status
- blocks and sending them over the bulk out and in endpoint. The
- specification specifies exactly what has to happen when and what
- has to be done in case an error condition is encountered. The
- biggest challenge when writing drivers for these devices is to
- fit USB based protocol into theexisting support for mass storage
- devices. CAM provides hooks to do this in a fairly straight
- forward way. ATAPI is less simple as historically the IDE
- interface has never had many different appearances.</para>
-
- <para>The support for the USB floppy from Y-E Data is again less
- straightforward as a new command set has been designed.</para>
-
- </sect1>
-
-</chapter> \ No newline at end of file
diff --git a/en_US.ISO8859-1/books/faq/Makefile b/en_US.ISO8859-1/books/faq/Makefile
deleted file mode 100644
index b6e3f64d37..0000000000
--- a/en_US.ISO8859-1/books/faq/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# $FreeBSD$
-#
-# Build the FreeBSD FAQ
-#
-
-MAINTAINER=nik@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/faq/book.sgml b/en_US.ISO8859-1/books/faq/book.sgml
deleted file mode 100644
index f1bbd05a9e..0000000000
--- a/en_US.ISO8859-1/books/faq/book.sgml
+++ /dev/null
@@ -1,12195 +0,0 @@
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
-%authors;
-
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN">
-%bookinfo;
-]>
-
-<book>
- <bookinfo>
- <title>Frequently Asked Questions for FreeBSD 2.X, 3.X and 4.X</title>
-
- <corpauthor>The FreeBSD Documentation Project</corpauthor>
-
- <pubdate>$FreeBSD: doc/en_US.ISO_8859-1/books/faq/book.sgml,v 1.174 2001/04/15 19:17:27 jim Exp $</pubdate>
-
- <copyright>
- <year>1995</year>
- <year>1996</year>
- <year>1997</year>
- <year>1998</year>
- <year>1999</year>
- <year>2000</year>
- <year>2001</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- &bookinfo.legalnotice;
-
- <abstract>
- <para>This is the FAQ for FreeBSD versions 2.X, 3.X, and 4.X.
- All entries are assumed to be relevant to FreeBSD 2.0.5 and later,
- unless otherwise noted. Any entries with a &lt;XXX&gt; are under
- construction. If you are interested in helping with this project,
- send email to the FreeBSD documentation project mailing list
- <email>freebsd-doc@FreeBSD.org</email>. The latest version of this
- document is always available from the <ulink
- URL="http://www.FreeBSD.org/">FreeBSD World Wide Web
- server</ulink>. It may also be downloaded as one large <ulink
- URL="book.html">HTML</ulink> file with HTTP or as plain text,
- postscript, PDF, etc. from the <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP
- server</ulink>. You may also want to <ulink
- URL="http://www.FreeBSD.org/search/search.html">Search the
- FAQ</ulink>.</para>
- </abstract>
- </bookinfo>
-
- <preface id="preface">
- <title>Preface</title>
-
- <para>Welcome to the FreeBSD 2.X-4.X FAQ!</para>
-
- <para>As is usual with Usenet FAQs, this document aims to cover the
- most frequently asked questions concerning the FreeBSD operating
- system (and of course answer them!). Although originally intended
- to reduce bandwidth and avoid the same old questions being asked
- over and over again, FAQs have become recognized as valuable
- information resources.</para>
-
- <para>Every effort has been made to make this FAQ as informative as
- possible; if you have any suggestions as to how it may be improved,
- please feel free to mail them to the &a.faq;.</para>
-
- <qandaset>
- <qandaentry>
- <question id="what-is-FreeBSD">
- <para>What is FreeBSD?</para>
- </question>
-
- <answer>
- <para>Briefly, FreeBSD is a UN*X-like operating system for the
- i386 and Alpha/AXP platforms based on U.C. Berkeley's
- 4.4BSD-Lite release, with some 4.4BSD-Lite2 enhancements.
- It is also based indirectly on William Jolitz's port of U.C.
- Berkeley's Net/2 to the i386, known as 386BSD, though very
- little of the 386BSD code remains. A fuller description of
- what FreeBSD is and how it can work for you may be found on
- the <ulink URL="http://www.FreeBSD.org/">FreeBSD home
- page</ulink>.</para>
-
- <para>FreeBSD is used by companies, Internet Service Providers,
- researchers, computer professionals, students and home users
- all over the world in their work, education and recreation.
- See some of them in the <ulink
- URL="http://www.FreeBSD.org/gallery/gallery.html">FreeBSD
- Gallery</ulink>.</para>
-
- <para>For more detailed information on FreeBSD, please see the
- <ulink URL="../handbook/index.html">FreeBSD
- Handbook</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="FreeBSD-goals">
- <para>What are the goals of FreeBSD?</para>
- </question>
-
- <answer>
- <para>The goals of the FreeBSD Project are to provide software
- that may be used for any purpose and without strings attached.
- Many of us have a significant investment in the code (and
- project) and would certainly not mind a little financial
- compensation now and then, but we're definitely not prepared
- to insist on it. We believe that our first and foremost
- <quote>mission</quote> is to provide code to any and all
- comers, and for whatever purpose, so that the code gets the
- widest possible use and provides the widest possible benefit.
- This is, we believe, one of the most fundamental goals of Free
- Software and one that we enthusiastically support.</para>
-
- <para>That code in our source tree which falls under the GNU
- General Public License (GPL) or GNU Library General Public
- License (LGPL) comes with slightly more strings attached,
- though at least on the side of enforced access rather than the
- usual opposite. Due to the additional complexities that can
- evolve in the commercial use of GPL software, we do, however,
- endeavor to replace such software with submissions under the
- more relaxed BSD copyright whenever possible.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="why-called-FreeBSD">
- <para>Why is it called FreeBSD?</para>
- </question>
-
- <answer>
- <itemizedlist>
- <listitem>
- <para>It may be used free of charge, even by commercial
- users.</para>
- </listitem>
-
- <listitem>
- <para>Full source for the operating system is freely
- available, and the minimum possible restrictions have
- been placed upon its use, distribution and incorporation
- into other work (commercial or non-commercial).</para>
- </listitem>
-
- <listitem>
- <para>Anyone who has an improvement and/or bug fix is free
- to submit their code and have it added to the source tree
- (subject to one or two obvious provisos).</para>
- </listitem>
- </itemizedlist>
-
- <para>For those of our readers whose first language is not
- English, it may be worth pointing out that the word
- <quote>free</quote> is being used in two ways here, one meaning
- <quote>at no cost</quote>, the other meaning <quote>you can do
- whatever you like</quote>. Apart from one or two things you
- <emphasis>cannot</emphasis> do with the FreeBSD code, for
- example pretending you wrote it, you really can do whatever you
- like with it.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="latest-version">
- <para>What is the latest version of FreeBSD?</para>
- </question>
-
- <answer>
- <para>Version <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/">4.2</ulink>
- is the latest <emphasis>STABLE</emphasis> version; it was
- released in November, 2000. This is also the latest
- <emphasis>RELEASE</emphasis> version.</para>
-
- <para>Briefly explained, <emphasis>-STABLE</emphasis> is aimed
- at the ISP or other corporate user who wants stability and a
- low change count over the wizzy new features of the latest
- <emphasis>-CURRENT</emphasis> snapshot. Releases can come
- from either branch, but you should only use
- <emphasis>-CURRENT</emphasis> if you're sure that you're
- prepared for its increased volatility (relative to
- <emphasis>-STABLE</emphasis>, that is).</para>
-
- <para>Releases are only made <link linkend="release-freq">every
- few months</link>. While many people stay more up-to-date with
- the FreeBSD sources (see the questions on <link
- linkend="current">FreeBSD-CURRENT</link> and <link
- linkend="stable">FreeBSD-STABLE</link>) than that, doing so
- is more of a commitment, as the sources are a moving
- target.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="current">
- <para>What is FreeBSD-CURRENT?</para>
- </question>
-
- <answer>
- <para><ulink
- URL="../handbook/cutting-edge.html#CURRENT">FreeBSD-CURRENT</ulink>
- is the development version of the operating system, which will
- in due course become 5.0-RELEASE. As such, it is really only
- of interest to developers working on the system and die-hard
- hobbyists. See the <ulink
- URL="../handbook/cutting-edge.html#CURRENT">relevant
- section</ulink> in the <ulink
- URL="../handbook/index.html">handbook</ulink> for details on
- running -CURRENT.</para>
-
- <para>If you are not familiar with the operating system or are
- not capable of identifying the difference between a real
- problem and a temporary problem, you should not use
- FreeBSD-CURRENT. This branch sometimes evolves quite quickly
- and can be un-buildable for a number of days at a time.
- People that use FreeBSD-CURRENT are expected to be able to
- analyze any problems and only report them if they are deemed
- to be mistakes rather than <quote>glitches</quote>. Questions
- such as <quote>make world produces some error about
- groups</quote> on the -CURRENT mailing list are sometimes
- treated with contempt.</para>
-
- <para>Every day, <ulink
- URL="http://www.FreeBSD.org/releases/snapshots.html">snapshot
- </ulink> releases are made based on the current state of the
- -CURRENT and -STABLE branches. Nowadays, distributions of the
- occasional snapshot are now being made available. The goals
- behind each snapshot release are:</para>
-
- <itemizedlist>
- <listitem>
- <para>To test the latest version of the installation
- software.</para>
- </listitem>
-
- <listitem>
- <para>To give people who would like to run -CURRENT or
- -STABLE but who don't have the time and/or bandwidth to
- follow it on a day-to-day basis an easy way of
- bootstrapping it onto their systems.</para>
- </listitem>
-
- <listitem>
- <para>To preserve a fixed reference point for the code in
- question, just in case we break something really badly
- later. (Although CVS normally prevents anything horrible
- like this happening :)</para>
- </listitem>
-
- <listitem>
- <para>To ensure that any new features in need of testing
- have the greatest possible number of potential
- testers.</para>
- </listitem>
- </itemizedlist>
-
- <para>No claims are made that any -CURRENT snapshot can be
- considered <quote>production quality</quote> for any purpose.
- If you want to run a stable and fully tested system, you will
- have to stick to full releases, or use the -STABLE
- snaphosts.</para>
-
- <para>Snapshot releases are directly available from <ulink
- URL="ftp://current.FreeBSD.org/pub/FreeBSD/">
- ftp://current.FreeBSD.org/pub/FreeBSD/</ulink> for 5.0-CURRENT
- and <ulink URL="ftp://releng4.FreeBSD.org/pub/FreeBSD">
- releng4.FreeBSD.org</ulink> for 4-STABLE snapshots.
- 3-STABLE snapshots are not being produced at the time of
- this writing (May 2000).</para>
-
- <para>Snapshots are generated, on the average, once a day for
- all actively developed branches.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stable">
- <para>What is the FreeBSD-STABLE concept?</para>
- </question>
-
- <answer>
- <para>Back when FreeBSD 2.0.5 was released, we decided to
- branch FreeBSD development into two parts. One branch was
- named <ulink URL="../handbook/stable.html">-STABLE</ulink>,
- with the intention that only well-tested bug fixes and small
- incremental enhancements would be made to it (for Internet
- Service Providers and other commercial enterprises for whom
- sudden shifts or experimental features are quite
- undesirable). The other branch was <ulink
- URL="../handbook/cutting-edge.html#CURRENT">-CURRENT</ulink>,
- which essentially has been one unbroken line leading towards
- 5.0-RELEASE (and beyond) since 2.0 was released. If a little
- ASCII art would help, this is how it looks:</para>
-
- <programlisting> 2.0
- |
- |
- | [2.1-STABLE]
- *BRANCH* 2.0.5 -&gt; 2.1 -&gt; 2.1.5 -&gt; 2.1.6 -&gt; 2.1.7.1 [2.1-STABLE ends]
- | (Mar 1997)
- |
- |
- | [2.2-STABLE]
- *BRANCH* 2.2.1 -&gt; 2.2.2-RELEASE -&gt; 2.2.5 -&gt; 2.2.6 -&gt; 2.2.7 -&gt; 2.2.8 [end]
- | (Mar 1997) (Oct 97) (Apr 98) (Jul 98) (Dec 98)
- |
- |
- 3.0-SNAPs (started Q1 1997)
- |
- |
- 3.0-RELEASE (Oct 1998)
- |
- | [3.0-STABLE]
- *BRANCH* 3.1-RELEASE (Feb 1999) -&gt; 3.2 -&gt; 3.3 -&gt; 3.4 -&gt; 3.5 -&gt; 3.5.1
- | (May 1999) (Sep 1999) (Dec 1999) (June 2000) (July 2000)
- |
- | [4.0-STABLE]
- *BRANCH* 4.0 (Mar 2000) -&gt; 4.1 -&gt; 4.1.1 -&gt; 4.2 -&gt; ... future 4.x releases ...
- |
- | (July 2000) (Sep 2000) (Nov 2000)
- \|/
- +
- [5.0-CURRENT continues]</programlisting>
-
- <para>The -CURRENT branch is slowly progressing towards 5.0 and
- beyond, the previous 2.2-STABLE branch having been retired with
- the release of 2.2.8. 3-STABLE replaced it, with 3.5.1 (the
- final 3.X release) being released in July 2000. In May 2000
- (even though 3.5 came after that), the 3-STABLE branch was more
- or less replaced by the 4-STABLE branch. 4.2-RELEASE was
- released in November 2000. 4-STABLE is the actively developed
- -STABLE branch, although some bugfixes (mostly
- security-related) are still being committed to 3-STABLE. It is
- expected that the 3.X branch will be officially obsoleted some
- time in summer 2000. 5.0-CURRENT is now the <quote>current
- branch</quote>, with the no release date planed.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="release-freq">
- <para>When are FreeBSD releases made?</para>
- </question>
-
- <answer>
- <para>As a general principle, the FreeBSD core team only release
- a new version of FreeBSD when they believe that there are
- sufficient new features and/or bug fixes to justify one, and
- are satisfied that the changes made have settled down
- sufficiently to avoid compromising the stability of the
- release. Many users regard this caution as one of the best
- things about FreeBSD, although it can be a little frustrating
- when waiting for all the latest goodies to become
- available...</para>
-
- <para>Releases are made about every 4 months on average.</para>
-
- <para>For people needing (or wanting) a little more excitement,
- binary snapshots are made every day... see above.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="available-platforms">
- <para>Is FreeBSD only available for PCs?</para>
- </question>
-
- <answer>
- <para>Since 3.x, FreeBSD has run on the <ulink
- URL="http://www.FreeBSD.org/alpha/alpha.html">DEC Alpha</ulink>
- as well as the x86 architecture. Some interest has also been
- expressed in a SPARC, PowerPC and IA64 ports.</para>
-
- <para>If your machine has a different architecture and you need
- something right now, we suggest you look at <ulink
- URL="http://www.netbsd.org/">NetBSD</ulink> or <ulink
- URL="http://www.openbsd.org/">OpenBSD</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="responsible">
- <para> Who is responsible for FreeBSD?</para>
- </question>
-
- <answer>
- <para>The key decisions concerning the FreeBSD project, such as
- the overall direction of the project and who is allowed to add
- code to the source tree, are made by a <ulink
- URL="../handbook/staff.html#STAFF-CORE">core team</ulink> of
- 9 people. There is a much larger team of more than 200 <ulink
- URL="../handbook/staff-committers.html">committers</ulink> who
- are authorized to make changes directly to the FreeBSD source
- tree.</para>
-
- <para>However, most non-trivial changes are discussed in advance
- in the <link linkend="mailing">mailing lists</link>, and there
- are no restrictions on who may take part in the
- discussion.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="where-get">
- <para>Where can I get FreeBSD?</para>
- </question>
-
- <answer>
- <para>Every significant release of FreeBSD is available via
- anonymous ftp from the <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">
- FreeBSD FTP site</ulink>:</para>
-
- <itemizedlist>
- <listitem>
- <para>For the current 3.X-STABLE release, 3.5.1-RELEASE, see
- the <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.5.1-RELEASE/">3.5.1-RELEASE directory</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>The current 4-STABLE release, 4.2-RELEASE can be
- found in the <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/">4.2-RELEASE directory</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://releng4.FreeBSD.org/pub/FreeBSD/">4.X
- snapshots</ulink> are usually made once a day.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://current.FreeBSD.org/pub/FreeBSD/">
- 5.0 Snapshot</ulink> releases are made once a day for the
- <link linkend="current">-CURRENT</link> branch, these being
- of service purely to bleeding-edge testers and
- developers.</para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD is also available via CDROM, from the following
- place(s):</para>
-
- <address>BSDi
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>, <state>CA</state>
- <postcode>94520</postcode>
- <country>USA</country>
-
- <phone>Orders: +1 800 786-9907</phone>
- <phone>Questions: +1 925 674-0783</phone>
- <fax>FAX: +1 925 674-0821</fax>
- <otheraddr>email: <ulink URL="mailto:orders@osd.bsdi.com">BSDi Orders address</ulink></otheraddr>
- <otheraddr>WWW: <ulink URL="http://www.osd.bsdi.com/">BSDi Home page</ulink></otheraddr></address>
-
- <para>In Australia, you may find it at:</para>
-
- <address>Advanced Multimedia Distributors
- <street>Factory 1/1 Ovata Drive</street>
- <city>Tullamarine, Melbourne</city>
- <state>Victoria</state>
- <country>Australia</country>
- <phone>Voice: +61 3 9338 6777</phone>
-
- <otheraddr>CDROM Support BBS</otheraddr>
- <street>17 Irvine St</street>
- <city>Peppermint Grove</city>, <state>WA</state>
- <postcode>6011</postcode>
- <phone>Voice: +61 9 385-3793</phone>
- <fax>Fax: +61 9 385-2360</fax></address>
-
- <para>And in the UK:</para>
-
- <address>The Public Domain &amp; Shareware Library
- <street>Winscombe House, Beacon Rd</street>
- <city>Crowborough</city>
- <state>Sussex. TN6 1UL</state>
- <phone>Voice: +44 1892 663-298</phone>
- <fax>Fax: +44 1892 667-473</fax></address>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mailing">
- <para>Where do I find info on the FreeBSD mailing lists?</para>
- </question>
-
- <answer>
- <para>You can find full information in the <ulink
- URL="../handbook/eresources.html#ERESOURCES-MAIL">Handbook
- entry on mailing-lists.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="y2k">
- <para>Where do I find the FreeBSD Y2K info?</para>
- </question>
-
- <answer>
- <para>You can find full information in the <ulink
- URL="http://www.FreeBSD.org/y2kbug.html">FreeBSD Y2K
- page.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="newsgroups">
- <para>What FreeBSD news groups are available?</para>
- </question>
-
- <answer>
- <para>You can find full information in the <ulink
- URL="../handbook/eresources-news.html">Handbook entry on
- newsgroups.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="irc">
- <para>Are there FreeBSD IRC (Internet Relay Chat)
- channels?</para>
- </question>
-
- <answer>
- <para>Yes, most major IRC networks host a FreeBSD chat
- channel:</para>
-
- <itemizedlist>
- <listitem>
- <para>Channel <literal>#FreeBSD</literal> on
- EFNet is a FreeBSD forum, but don't go there for tech
- support or to try and get folks there to help you avoid
- the pain of reading man pages or doing your own research.
- It is a chat channel, first and foremost, and topics there
- are just as likely to involve sex, sports or nuclear
- weapons as they are FreeBSD. You Have Been Warned!
- Available at server <hostid>irc.chat.org</hostid>.</para>
- </listitem>
-
- <listitem>
- <para>Channel <emphasis>#FreeBSDhelp</emphasis> on
- EFNet is a channel dedicated to helping FreeBSD users. They
- are much more sympathetic to questions then
- <emphasis>#FreeBSD</emphasis> is.</para>
- </listitem>
-
- <listitem>
- <para>Channel <literal>#FreeBSD</literal> on
- DALNET is available at <hostid>irc.dal.net</hostid> in the
- US and <hostid>irc.eu.dal.net</hostid> in Europe.</para>
- </listitem>
-
- <listitem>
- <para>Channel <literal>#FreeBSD</literal> on
- UNDERNET is available at <hostid>us.undernet.org</hostid>
- in the US and <hostid>eu.undernet.org</hostid> in Europe.
- Since it is a help channel, be prepared to read the
- documents you are referred to.</para>
- </listitem>
-
- <listitem>
- <para>Channel <literal>#FreeBSD</literal> on <ulink
- url="http://www.hybnet.net/">HybNet</ulink>. This channel
- <emphasis>is</emphasis> a help channel. A list of servers
- can be found on the <ulink
- url="http://www.hybnet.net/">HybNet web site</ulink>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Each of these channels are distinct and are not connected
- to each other. Their chat styles also differ, so you may need
- to try each to find one suited to your chat style. As with
- *all* types of IRC traffic, if you're easily offended or can't
- deal with lots of young people (and more than a few older
- ones) doing the verbal equivalent of jello wrestling, don't
- even bother with it.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="books">
- <para>Books on FreeBSD</para>
- </question>
-
- <answer>
- <para>There is a FreeBSD Documentation Project which you may
- contact (or even better, join) at the
- <literal>freebsd-doc</literal> mailing list:
- <email>freebsd-doc@FreeBSD.org</email>.
- This list is for discussion of the FreeBSD documentation. For
- actual questions about FreeBSD, there is the
- <literal>freebsd-questions</literal> mailing list:
- <email>freebsd-questions@FreeBSD.org</email>.</para>
-
- <para>A FreeBSD <quote>handbook</quote> is available, and can be
- found as: <ulink URL="../handbook/index.html">the FreeBSD
- Handbook</ulink>. Note that this is a work in progress; some
- parts may be incomplete or out-of-date.</para>
-
- <para>The definitive printed guide on FreeBSD is <quote>The
- Complete FreeBSD</quote>, written by Greg Lehey and published
- by BSDi (formerly Walnut Creek CDROM) Books. Now in its third
- edition, the book contains 773 pages of install &amp; system
- administration guidance, program setup help, and manual pages.
- The book (and current FreeBSD release) can be ordered from
- <ulink URL="http://www.osd.bsdi.com/">BSDi</ulink>, <ulink
- URL="http://www.cheapbytes.com/">CheapBytes</ulink>, or at your
- favorite bookstore. The ISBN is 1-57176-246-9 (this may not be
- unique).</para>
-
- <para>Since FreeBSD is based upon Berkeley
- 4.4BSD-Lite, most of the 4.4BSD manuals are applicable to
- FreeBSD. O'Reilly and Associates publishes the following
- manuals:</para>
-
- <itemizedlist>
- <listitem>
- <para>4.4BSD System Manager's Manual <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition June 1994, 804 pages <!-- <br> -->
- <ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-080-5">ISBN</ulink>:
- 1-56592-080-5 <!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>4.4BSD User's Reference Manual <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition June 1994, 905 pages <!-- <br> -->
- <ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-075-9">ISBN</ulink>:
- 1-56592-075-9 <!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>4.4BSD User's Supplementary Documents <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition July 1994, 712 pages <!-- <br> -->
- <ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-076-7">ISBN</ulink>:
- 1-56592-076-7 <!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>4.4BSD Programmer's Reference Manual <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition June 1994, 886 pages <!-- <br> -->
- <ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-078-3">ISBN</ulink>:
- 1-56592-078-3 <!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>4.4BSD Programmer's Supplementary Documents <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition July 1994, 596 pages <!-- <br> -->
- <ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-079-1">ISBN</ulink>:
- 1-56592-079-1 <!-- <br> --></para>
- </listitem>
- </itemizedlist>
-
- <para>A description of these can be found via WWW as:
-
- <ulink
- URL="http://gnn.com/gnn/bus/ora/category/bsd.html">4.4BSD
- books description</ulink>. Due to poor sales, however, these
- manuals may be hard to get a hold of.</para>
-
- <para>For a more in-depth look at the 4.4BSD kernel
- organization, you can't go wrong with:</para>
-
- <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels,
- and John Quarterman.<!-- <br> --></para>
-
- <para><emphasis>The Design and Implementation of the 4.4BSD
- Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1996.<!-- <br> -->
- <ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/0-201-54979-4">ISBN</ulink>
- 0-201-54979-4<!-- <br> --></para>
-
- <para>A good book on system administration is:</para>
-
- <para>Evi Nemeth, Garth Snyder, Scott Seebass &amp; Trent R.
- Hein,<!-- <br> -->
- <quote>Unix System Administration Handbook</quote>, Prentice-Hall,
- 1995<!-- <br> -->
- <ulink
- URL="http://www.amazon.com/exec/obidos/ASIN/0-13-151051-7">ISBN</ulink>:
- 0-13-151051-7<!-- <br> --></para>
-
- <para>
- <note>
- <para>Make sure you get the second edition, with a red
- cover, instead of the first edition.</para>
- </note></para>
-
- <para>This book covers the basics, as well as TCP/IP, DNS, NFS,
- SLIP/PPP, sendmail, INN/NNTP, printing, etc.. It's expensive
- (approx. US&#36;45-&#36;55), but worth it. It also includes
- a CDROM with the sources for various tools; most of these,
- however, are also on the FreeBSD 2.2.6R CDROM (and the FreeBSD
- CDROM often has newer versions).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="access-pr">
- <para>How do I access your Problem Report database?</para>
- </question>
-
- <answer>
- <para>The Problem Report database of all user change requests
- may be queried (or submitted to) by using our web-based PR
- <ulink
- URL="http://www.FreeBSD.org/send-pr.html">submission</ulink>
- and <ulink
- URL="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
- query</ulink>
- interfaces. The <command>send-pr(1)</command> command can
- also be used to submit problem reports and change requests via
- electronic mail.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="doc-formats">
- <para>Is the documentation available in other formats, such as plain
- text (ASCII), or Postscript?</para>
- </question>
-
- <answer>
- <para>Yes. The documentation is available in a number of different
- formats and compression schemes on the FreeBSD FTP site, in the
- <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink> directory.</para>
-
- <para>The documentation is categorised in a number of different
- ways. These include:</para>
-
- <itemizedlist>
- <listitem>
- <para>The document's name, such as <literal>faq</literal>, or
- <literal>handbook</literal>.</para>
- </listitem>
-
- <listitem>
- <para>The document's language and encoding. These are based on
- the locale names you will find under
- <filename>/usr/share/locale</filename> on your FreeBSD
- system. The current languages and encodings that we have for
- documentation are as follows:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Meaning</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>en_US.ISO_8859-1</literal></entry>
-
- <entry>US English</entry>
- </row>
-
- <row>
- <entry><literal>de_DE.ISO_8859-1</literal></entry>
-
- <entry>German</entry>
- </row>
-
- <row>
- <entry><literal>es_ES.ISO_8859-1</literal></entry>
-
- <entry>Spanish</entry>
- </row>
-
- <row>
- <entry><literal>fr_FR.ISO_8859-1</literal></entry>
-
- <entry>French</entry>
- </row>
-
- <row>
- <entry><literal>ja_JP.eucJP</literal></entry>
-
- <entry>Japanese (EUC encoding)</entry>
- </row>
-
- <row>
- <entry><literal>ru_RU.KOI8-R</literal></entry>
-
- <entry>Russian (KOI8-R encoding)</entry>
- </row>
-
- <row>
- <entry><literal>zh_TW.Big5</literal></entry>
-
- <entry>Chinese (Big5 encoding)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>Some documents may not be available in all
- languages.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>The document's format. We produce the documentation in a
- number of different output formats to try and make it as
- flexible as possible. The current formats are;</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Format</entry>
-
- <entry>Meaning</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>html-split</literal></entry>
-
- <entry>A collection of small, linked, HTML
- files.</entry>
- </row>
-
- <row>
- <entry><literal>html</literal></entry>
-
- <entry>One large HTML file containing the entire
- document</entry>
- </row>
-
- <row>
- <entry><literal>pdb</literal></entry>
-
- <entry>Palm Pilot database format, for use with the
- <ulink URL="http://www.iSilo.com/">iSilo</ulink>
- reader.</entry>
- </row>
-
- <row>
- <entry><literal>pdf</literal></entry>
-
- <entry>Adobe's Portable Document Format</entry>
- </row>
-
- <row>
- <entry><literal>ps</literal></entry>
-
- <entry>Postscript</entry>
- </row>
-
- <row>
- <entry><literal>rtf</literal></entry>
-
- <entry>Microsoft's Rich Text Format<footnote>
- <para>Page numbers are not automatically updated
- when loading this format in to Word. Press
- <keycap>CTRL</keycap>+<keycap>A</keycap>,
- <keycap>CTRL</keycap>+<keycap>END</keycap>,
- <keycap>F9</keycap> after loading the document, to
- update the page numbers.</para>
- </footnote>
- </entry>
- </row>
-
- <row>
- <entry><literal>txt</literal></entry>
-
- <entry>Plain text</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
-
- <listitem>
- <para>The compression and packaging scheme. There are three of
- these currently in use.</para>
-
- <orderedlist>
- <listitem>
- <para>Where the format is <literal>html-split</literal>, the
- files are bundled up using &man.tar.1;. The resulting
- <filename>.tar</filename> file is then compressed using
- the compression schemes detailed in the next point.</para>
- </listitem>
-
- <listitem>
- <para>All the other formats generate one file, called
- <filename>book.<replaceable>format</replaceable></filename>
- (i.e., <filename>book.pdb</filename>,
- <filename>book.html</filename>, and so on).</para>
-
- <para>These files are then compressed using three
- compression schemes.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Scheme</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>zip</literal></entry>
-
- <entry>The Zip format. If you want to uncompress
- this on FreeBSD you will need to install the
- <filename>archivers/unzip</filename> port
- first.</entry>
- </row>
-
- <row>
- <entry><literal>gz</literal></entry>
-
- <entry>The GNU Zip format. Use &man.gunzip.1; to
- uncompress these files, which is part of
- FreeBSD.</entry>
- </row>
-
- <row>
- <entry><literal>bz2</literal></entry>
-
- <entry>The BZip2 format. Less widespread than the
- others, but generally gives smaller files.
- Install the <filename>archivers/bzip2</filename>
- port to uncompress these files.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>So the Postscript version of the Handbook, compressed
- using BZip2 will be stored in a file called
- <filename>book.sgml.bz2</filename> in the
- <filename>handbook/</filename> directory.</para>
- </listitem>
-
- <listitem>
- <para>The formatted documentation is also available as a
- FreeBSD package, of which more later.</para>
- </listitem>
- </orderedlist>
- </listitem>
- </itemizedlist>
-
- <para>After choosing the format and compression mechanism that you
- want to download, you must then decide whether or not you want to
- download the document as a FreeBSD
- <emphasis>package</emphasis>.</para>
-
- <para>The advantage of downloading and installing the package is
- that the documentation can then be managed using the normal
- FreeBSD package management comments, such as &man.pkg.add.1; and
- &man.pkg.delete.1;.</para>
-
- <para>If you decide to download and install the package then you
- must know the filename to download. The documentation-as-packages
- files are stored in a directory called
- <filename>packages</filename>. Each package file looks like
- <filename><replaceable>document-name</replaceable>.<replaceable>lang</replaceable>.<replaceable>encoding</replaceable>.<replaceable>format</replaceable>.tgz</filename>.</para>
-
- <para>For example, the FAQ, in English, formatted as PDF, is in the
- package called
- <filename>faq.en_US.ISO_8859-1.pdf.tgz</filename>.</para>
-
- <para>Knowing this, you can use the following command to install the
- English PDF FAQ package.</para>
-
- <screen>&prompt.root; <userinput>pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO_8859-1.pdf.tgz</userinput></screen>
-
- <para>Having done that, you can use &man.pkg.info.1; to determine
- where the file has been installed.</para>
-
- <screen>&prompt.root; <userinput>pkg_info -f faq.en_US.ISO_8859-1.pdf</userinput>
-Information for faq.en_US.ISO_8859-1.pdf:
-
-Packing list:
- Package name: faq.en_US.ISO_8859-1.pdf
- CWD to /usr/share/doc/en_US.ISO_8859-1/books/faq
-File: book.pdf
- CWD to .
-File: +COMMENT (ignored)
-File: +DESC (ignored)</screen>
-
- <para>As you can see, <filename>book.pdf</filename> will have been
- installed in to
- <filename>/usr/share/doc/en_US.ISO_8859-1/books/faq</filename>.
- </para>
-
- <para>If you do not want to use the packages then you will have to
- download the compressed files yourself, uncompress them, and then
- copy the appropriate documents in to place.</para>
-
- <para>For example, the split HTML version of the FAQ, compressed
- using &man.gzip.1;, can be found in the
- <filename>en_US.ISO_8859-1/books/faq/book.html-split.tar.gz</filename>
- file. To download and uncompress that file you would have to do
- this.</para>
-
- <screen>&prompt.root; <userinput>fetch ftp://ftp.freebsd.org/pub/FreeBSD/doc/en_US.ISO_8859-1/books/faq/book.html-split.tar.gz</userinput>
-&prompt.root; <userinput>gzip -d book.html-split.tar.gz</userinput>
-&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>
-
- <para>You will be left with a collection of
- <filename>.html</filename> files. The main one is called
- <filename>index.html</filename>, which will contain the table of
- contents, introductory material, and links to the other parts of
- the document. You can then copy or move these to their final
- location as necessary.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="become-web-mirror">
- <para>I'd like to become a FreeBSD Web mirror!</para>
- </question>
-
- <answer>
- <para>Certainly! There are multiple ways to mirror the Web
- pages.</para>
-
-
-
- <itemizedlist>
- <listitem>
- <para>Using <application>CVSup</application>:
- You can retrieve the formatted files
- using <application>CVSup</application>, and connecting to
- a <application>CVSup</application> server.</para>
-
- <para>To retrieve the webpages, please look at the example
- supfile, which can be found in
- <filename>/usr/share/examples/cvsup/www-supfile</filename>.
- </para>
-
- </listitem>
-
- <listitem>
- <para>Using ftp mirror: You can download the FTP server's
- copy of the web site sources using your favorite ftp mirror
- tool. Keep in mind that you have to build these sources before
- publishing them. Simply start at
- ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="translation">
- <para>I'd like to translate the documentation into
- Friesian.</para>
- </question>
-
- <answer>
- <para>Well, we can't pay, but we might arrange a free CD or
- T-shirt and a Contributor's Handbook entry if you submit a
- translation of the documentation. Before you begin translating
- please contact the <emphasis>freebsd-doc</emphasis> mailing
- list at <email>freebsd-doc@FreeBSD.org</email>; you may find
- somebody to help with the translation effort. You may also find
- out there is already a team translating the docs into your
- chosen language, who surely wouldn't turn down your help.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="other-info-sources">
- <para>Other sources of information.</para>
- </question>
-
- <answer>
- <para>The following newsgroups contain pertinent discussion for
- FreeBSD users:</para>
-
-
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink>
- (moderated)</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.misc">comp.unix.bsd.misc</ulink></para>
- </listitem>
- </itemizedlist>
-
- <para>Web resources:</para>
-
-
-
- <itemizedlist>
- <listitem>
- <para>The <ulink
- URL="http://www.FreeBSD.org/">FreeBSD Home Page</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="pao">If you have a laptop, be sure and see
- <ulink URL="http://www.jp.FreeBSD.org/PAO/">Tatsumi
- Hosokawa's Mobile Computing page</ulink> in Japan.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="smp">For information on SMP (Symmetric
- MultiProcessing), please see the <ulink
- URL="http://people.FreeBSD.org/~fsmp/SMP/SMP.html">SMP support page</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="multimedia">For information on FreeBSD
- multimedia applications, please see the <ulink
- URL="http://people.FreeBSD.org/~faulkner/multimedia/mm.html">multimedia</ulink>
- page. If you're interested specifically in the <ulink
- URL="http://people.FreeBSD.org/~ahasty/Bt848.html">Bt848</ulink>
- video capture chip, then follow that link.</para>
- </listitem>
- </itemizedlist>
-
- <para>The FreeBSD handbook also has a fairly complete <ulink
- URL="../handbook/bibliography.html">bibliography</ulink>
- section which is worth reading if you're looking for actual
- books to buy.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </preface>
-
- <chapter
- id="install">
- <title>Installation</title>
-
-
- <qandaset>
- <qandaentry>
- <question id="floppy-download">
- <para>Which file do I download to get FreeBSD?</para>
- </question>
-
- <answer>
- <para>Prior to release 3.1, you only needed one floppy image to
- install FreeBSD, namely <filename>floppies/boot.flp</filename>.
- However, since release 3.1 the Project has added base support
- for a wide variety of hardware which needed more space, and
- thus for 3.x and 4.x we now use two floppy images, namely
- <filename>floppies/kernel.flp</filename> and
- <filename>floppies/mfsroot.flp</filename>. These images need to
- be copied onto floppies by tools like
- <command>fdimage</command> or &man.dd.1;.</para>
-
- <para>If you need to download the distributions yourself (for a
- DOS filesystem install, for instance), below are some
- recommendations for distributions to grab:</para>
-
-
- <itemizedlist>
- <listitem>
- <para> bin/<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> manpages/<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> compat*/<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> doc/ <!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> src/ssys.* <!-- <br> --></para>
- </listitem>
- </itemizedlist>
-
-
- <para>Full instructions on this procedure and a little bit more
- about installation issues in general can be found in the
- <ulink URL="../handbook/install.html">Handbook entry on
- installing FreeBSD.</ulink></para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="floppy-image-too-large">
- <para>Help! The boot floppy image will not fit on a single
- floppy!</para>
- </question>
-
- <answer>
- <para>A 3.5 inch (1.44MB) floppy can accomodate 1474560 bytes
- of data. The boot image is exactly 1474560 bytes in size.</para>
-
- <para>Common mistakes when preparing the boot floppy are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Not downloading the floppy image in
- <emphasis>binary</emphasis> mode when using
- <acronym>FTP</acronym>.</para>
-
-
- <para>Some FTP clients default their transfer mode to
- <emphasis>ascii</emphasis> and attempt to change any
- end-of-line characters received to match the conventions
- used by the client's system. This will almost invariably
- corrupt the boot image. Check the size of the downloaded
- boot image: if it is not <emphasis>exactly</emphasis> that
- on the server, then the download process is suspect.</para>
-
- <para>To workaround: type <emphasis>binary</emphasis> at the
- FTP command prompt after getting connected to the server
- and before starting the download of the image.</para>
- </listitem>
-
- <listitem>
- <para>Using the DOS <command>copy</command> command (or
- equivalent GUI tool) to transfer the boot image to
- floppy.</para>
-
- <para>Programs like <command>copy</command> will not work as
- the boot image has been created to be booted into directly.
- The image has the complete content of the floppy, track for
- track, and is not meant to be placed on the floppy as a
- regular file. You have to transfer it to the floppy
- <quote>raw</quote>, using the low-level tools (e.g.
- <command>fdimage</command> or <command>rawrite</command>)
- described in the <ulink
- URL="../handbook/install.html">installation guide to
- FreeBSD</ulink>.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-instructions-location">
- <para>Where are the instructions for installing FreeBSD?</para>
- </question>
-
- <answer>
- <para>Installation instructions can be found in the
- <ulink URL="../handbook/install.html">Handbook entry on installing FreeBSD.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-to-run">
- <para>What do I need in order to run FreeBSD?</para>
- </question>
-
- <answer>
- <para>You'll need a 386 or better PC, with 5 MB or more of RAM
- and at least 60 MB of hard disk space. It can run with a low
- end MDA graphics card but to run X11R6, a VGA or better video
- card is needed.</para>
-
- <para>See also the section on
- <xref linkend="hardware" remap="Hardware compatibility"></para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="four-meg-ram-install">
- <para>I have only 4 MB of RAM. Can I install FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD 2.1.7 was the last version of FreeBSD that could
- be installed on a 4MB system. Newer versions of FreeBSD, like
- 2.2, need at least 5MB to install on a new system.</para>
-
- <para>All versions of FreeBSD, including 3.0, will
- <emphasis>run</emphasis> in 4MB of RAM, they just can't run the
- installation program in 4MB. You can add extra memory for the
- install process, if you like, and then after the system is up
- and running, go back to 4MB. Or you could always just swap your
- disk into a system which has &gt;4MB, install onto it and then
- swap it back.</para>
-
- <para>There are also situations in which FreeBSD 2.1.7 will not
- install in 4 MB. To be exact: it does not install with 640 kB
- base + 3 MB extended memory. If your motherboard can remap some
- of the <quote>lost</quote> memory out of the 640kB to 1MB
- region, then you may still be able to get FreeBSD 2.1.7
- up.</para>
-
- <para>Try to go into your BIOS setup and look for a
- <quote>remap</quote> option. Enable it. You may also have to
- disable ROM shadowing.</para>
-
- <para>It may be easier to get 4 more MB just for the install.
- Build a custom kernel with only the options you need and then
- get the 4MB out again.</para>
-
- <para>You may also install 2.0.5 and then upgrade your system to
- 2.1.7 with the <quote>upgrade</quote> option of the 2.1.7
- installation program.</para>
-
- <para>After the installation, if you build a custom kernel, it
- will run in 4 MB. Someone has even succeeded in booting with 2
- MB (the system was almost unusable though :-))</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custom-boot-floppy">
- <para>How can I make my own custom install floppy?</para>
- </question>
-
- <answer>
- <para>Currently there's no way to <emphasis>just</emphasis>
- make a custom install floppy. You have to cut a whole new
- release, which will include your install floppy.</para>
-
- <para>To make a custom release, follow the instructions
- <link linkend="custrel">here</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiboot">
- <para>Can I have more than one operating system on my PC?</para>
- </question>
-
- <answer>
- <para>Have a look at
- <ulink URL="http://www.FreeBSD.org/tutorials/multi-os/">
- The multi-OS page.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="windows-coexist">
- <para>Can Windows 95/98 co-exist with FreeBSD?</para>
- </question>
-
- <answer>
- <para>Install Windows 95/98 first, after that FreeBSD.
- FreeBSD's boot manager will then manage to boot Win95/98 and
- FreeBSD. If you install Windows 95/98 second, it will boorishly
- overwrite your boot manager without even asking. If that
- happens, see the next section.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="win95-damaged-boot-manager">
- <para>Windows 95/98 killed my boot manager!
- How do I get it back?</para>
- </question>
-
- <answer>
- <para>You can reinstall the boot manager FreeBSD comes with in
- one of three ways:</para>
-
- <itemizedlist>
- <listitem>
- <para>Running DOS, go into the tools/ directory of your
- FreeBSD distribution and look for
- <filename>bootinst.exe</filename>. You run it like
- so:</para>
-
- <screen><prompt>...\TOOLS&gt;</prompt> <userinput>bootinst.exe boot.bin</userinput></screen>
-
- <para></para>
-
- <para>and the boot manager will be reinstalled.</para>
-
- <para></para>
- </listitem>
-
- <listitem>
- <para>Boot the FreeBSD boot floppy again and go to the
- Custom installation menu item. Choose Partition. Select the
- drive which used to contain your boot manager (likely the
- first one) and when you come to the partition editor for
- it, as the very first thing (e.g. do not make any changes)
- select (W)rite. This will ask for confirmation, say yes,
- and when you get the Boot Manager selection prompt, be
- sure to select <literal>Boot Manager</literal>. This will
- re-write the boot manager to disk. Now quit out of the
- installation menu and reboot off the hard disk as
- normal.</para>
- </listitem>
-
- <listitem>
- <para>Boot the FreeBSD boot floppy (or CD-ROM) and choose the
- <quote>Fixit</quote> menu item. Select either the Fixit
- floppy or CD-ROM #2 (the <quote>live</quote> file system
- option) as appropriate and enter the fixit shell. Then
- execute the following command:</para>
-
- <screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput></screen>
-
- <para>substituting <replaceable>bootdevice</replaceable> for
- your real
- boot device such as <devicename>ad0</devicename> (first IDE
- disk), <devicename>ad4</devicename> (first IDE disk on
- auxiliary controller), <devicename>da0</devicename> (first
- SCSI disk), etc.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-on-thinkpad">
- <para>I have an IBM Thinkpad in the A, T, or X series that FreeBSD
- installs on, but then the machine locks up on next boot. How can I
- solve this?</para>
- </question>
-
- <answer>
- <para>A bug in early revisions of IBM's BIOS on these machines
- mistakenly identifies the FreeBSD partition as a potential FAT
- suspend-to-disk partition. When the BIOS tries to parse the
- FreeBSD partition it hangs.</para>
-
- <para>According to IBM<footnote> <para>In an e-mail from Keith
- Frechette
- <email>kfrechet@us.ibm.com</email>.</para></footnote>, the
- following model/BIOS release numbers incorporate the fix.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Model</entry>
- <entry>BIOS revision</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>T20</entry>
- <entry>IYET49WW or later</entry>
- </row>
-
- <row>
- <entry>T21</entry>
- <entry>KZET22WW or later</entry>
- </row>
-
- <row>
- <entry>A20p</entry>
- <entry>IVET62WW or later</entry>
- </row>
-
- <row>
- <entry>A20m</entry>
- <entry>IWET54WW or later</entry>
- </row>
-
- <row>
- <entry>A21p</entry>
- <entry>KYET27WW or later</entry>
- </row>
-
- <row>
- <entry>A21m</entry>
- <entry>KXET24WW or later</entry>
- </row>
-
- <row>
- <entry>A21e</entry>
- <entry>KUET30WW</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If you have an earlier BIOS, and upgrading is not an option a
- workaround is to install FreeBSD, change the partition ID FreeBSD
- uses, and install new boot blocks that can handle the different
- partition ID.</para>
-
- <para>First, you'll 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's 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>Download <filename>boot1</filename> and
- <filename>boot2</filename> from <ulink
- url="http://people.freebsd.org/~bmah/ThinkPad/">http://people.freebsd.org/~bmah/ThinkPad/</ulink>.
- Put these files somewhere you will be able to retrieve them
- later.</para>
- </step>
-
- <step>
- <para>Install FreeBSD as normal on to the ThinkPad.
- <emphasis>Do not</emphasis> use <literal>Dangerously
- Dedicated</literal> mode. <emphasis>Do not</emphasis>
- reboot when the install has finished.</para>
- </step>
-
- <step>
- <para>Either switch to the <quote>Emergency Holographic
- Shell</quote> (<keycombo><keycap>ALT</keycap>
- <keycap>F4</keycap></keycombo>) or start a
- <quote>fixit</quote> shell.</para>
- </step>
-
- <step>
- <para>Use &man.fdisk.8; to change the FreeBSD partition ID from
- <literal>165</literal> to <literal>166</literal> (this is the
- type used by OpenBSD).</para>
- </step>
-
- <step>
- <para>Bring the <filename>boot1</filename> and
- <filename>boot2</filename> files to the local
- filesystem.</para>
- </step>
-
- <step>
- <para>Use &man.disklabel.8; to write <filename>boot1</filename>
- and <filename>boot2</filename> to your FreeBSD slice.</para>
-
- <screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen>
-
- <para><replaceable>n</replaceable> is the number of the slice
- where you installed FreeBSD.</para>
- </step>
-
- <step>
- <para>Reboot. At the boot prompt you will be given the option
- of booting <literal>OpenBSD</literal>. This will actually
- boot FreeBSD.</para>
- </step>
- </procedure>
-
- <para>Getting this to work in the case where you want to dual boot
- OpenBSD and FreeBSD on the same laptop is left as an exercise for
- the reader.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-bad-blocks">
- <para>Can I install on a disk with bad blocks?</para>
- </question>
-
- <answer>
- <para>Prior to 3.0, FreeBSD included a utility known as
- <command>bad144</command>, which automatically remapped bad
- blocks. Because modern IDE drives perform this function
- themselves, <command>bad144</command> has been removed from the
- FreeBSD source tree. If you wish to install FreeBSD 3.0 or
- later, we strongly suggest you purchase a newer disk drive. If
- you do not wish to do this, you must run FreeBSD 2.x.</para>
- <para>If you are seeing bad block errors with a modern IDE
- drive, chances are the drive is going to die very soon (the
- drive's internal remapping functions are no longer sufficient
- to fix the bad blocks, which means the disk is heavily
- corrupted); we suggest you by a new hard drive.</para>
-
- <para>If you have a SCSI drive with bad blocks, see
- <link linkend="awre">this answer</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-floppy-strangeness">
- <para>Strange things happen when I boot the install floppy!</para>
- </question>
-
- <answer>
- <para>If you're seeing things like the machine grinding to a halt
- or spontaneously rebooting when you try to boot the install
- floppy, here are three questions to ask yourself:-</para>
-
- <orderedlist>
- <listitem>
- <para>Did you use a new, freshly-formatted, error-free floppy
- (preferably a brand-new one straight out of the box, as
- opposed to the magazine coverdisk that's been lying under
- the bed for the last three years)?</para>
- </listitem>
-
- <listitem>
- <para>Did you download the floppy image in binary (or image)
- mode? (don't be embarrassed, even the best of us have
- accidentally downloaded a binary file in ASCII mode at
- least once!)</para>
- </listitem>
-
- <listitem>
- <para>If you're using Windows95 or Win98 did you run
- <command>fdimage</command> or <command>rawrite</command> in
- pure DOS mode? These OS's can interfere with programs that
- write directly to hardware, which the disk creation program
- does; even running it inside a DOS shell in the GUI can
- cause this problem.</para>
- </listitem>
- </orderedlist>
-
- <para>There have also been reports of Netscape causing problems
- when downloading the boot floppy, so it's probably best to use
- a different FTP client if you can.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="no-install-cdrom">
- <para>I booted from my ATAPI CD-ROM, but the install program says no
- CD-ROM is found. Where did it go?</para>
- </question>
-
- <answer>
- <para>The usual cause of this problem is a mis-configured CD-ROM
- drive. Many PCs now ship with the CD-ROM as the slave device on
- the secondary IDE controller, with no master device on that
- controller. This is illegal according to the ATAPI specification,
- but Windows plays fast and loose with the specification, and the
- BIOS ignores it when booting. This is why the BIOS was able to
- see the CD-ROM to boot from it, but why FreeBSD can not see it to
- complete the install.</para>
-
- <para>Reconfigure your system so that the CD-ROM is either the
- master device on the IDE controller it is attached to, or make
- sure that it is the slave on an IDE controller that also has a
- master device.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cannot-install-tape">
- <para>Help! I can't install from tape!</para>
- </question>
-
- <answer>
- <para>If you are installing 2.1.7R from tape, you must create
- the tape using a tar blocksize of 10 (5120 bytes). The default
- tar blocksize is 20 (10240 bytes), and tapes created using this
- default size cannot be used to install 2.1.7R; with these
- tapes, you will get an error that complains about the record
- size being too big.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="parallel-connect">
- <para>Connect two FreeBSD boxes over a parallel line (PLIP)</para>
- </question>
-
- <answer>
- <para>Get a laplink cable. Make sure both computer have a kernel
- with lpt driver support.</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep lp</userinput>
-lpt0 at 0x378-0x37f irq 7 on isa
-lpt0: Interrupt-driven
-lp0: TCP/IP capable interface</screen>
-
- <para>Plug in the laplink cable into the parallel interface.</para>
-
- <para>Configure the network interface parameters for lp0 on both
- sites as root. For example, if you want connect the host max
- with moritz</para>
-
- <programlisting> max &lt;-----&gt; moritz
-IP Address 10.0.0.1 10.0.0.2</programlisting>
-
- <para>on max start</para>
-
- <screen>&prompt.root; <userinput>ifconfig lp0 10.0.0.1 10.0.0.2</userinput></screen>
-
- <para>on moritz start</para>
-
- <screen>&prompt.root; <userinput>ifconfig lp0 10.0.0.2 10.0.0.1</userinput></screen>
-
-
- <para>Thats all! Please read also the manpages
- &man.lp.4; and &man.lpt.4; .</para>
-
- <para>You should also add the hosts to
- <filename>/etc/hosts</filename>.</para>
-
- <programlisting>127.0.0.1 localhost.my.domain localhost
-10.0.0.1 max.my.domain max
-10.0.0.2 moritz.my.domain</programlisting>
-
-
- <para>To check if it works do:</para>
-
- <para>on max:</para>
-
-
- <screen>&prompt.root; <userinput>ifconfig lp</userinput>0
-lp0: flags=8851&lt;UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
- inet 10.0.0.1 --&gt; 10.0.0.2 netmask 0xff000000
-&prompt.root; <userinput>netstat -r</userinput>
-Routing tables
-
-Internet:
-Destination Gateway Flags Refs Use Netif Expire
-moritz max UH 4 127592 lp0
-&prompt.root; <userinput>ping -c 4 moritz</userinput>
-PING moritz (10.0.0.2): 56 data bytes
-64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
-64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
-64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
-64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
-
---- moritz ping statistics ---
-4 packets transmitted, 4 packets received, 0% packet loss
-round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-PLIP">
- <para>Can I install on my laptop over PLIP (Parallel Line
- IP)?</para>
- </question>
-
- <answer>
- <para>Connect the two computers using a Laplink parallel cable
- to use this feature:</para>
-
- <table>
- <title>Wiring a parallel cable for networking</title>
-
- <tgroup cols="5">
- <thead>
- <row>
- <entry>A-name</entry>
-
- <entry>A-End</entry>
-
- <entry>B-End</entry>
-
- <entry>Descr.</entry>
-
- <entry>Post/Bit</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literallayout>DATA0
--ERROR</literallayout></entry>
-
- <entry><literallayout>2
-15</literallayout></entry>
-
- <entry><literallayout>15
-2</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x01
-1/0x08</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA1
-+SLCT</literallayout></entry>
-
- <entry><literallayout>3
-13</literallayout></entry>
-
- <entry><literallayout>13
-3</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x02
-1/0x10</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA2
-+PE</literallayout></entry>
-
- <entry><literallayout>4
-12</literallayout></entry>
-
- <entry><literallayout>12
-4</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x04
-1/0x20</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA3
--ACK</literallayout></entry>
-
- <entry><literallayout>5
-10</literallayout></entry>
-
- <entry><literallayout>10
-5</literallayout></entry>
-
- <entry>Strobe</entry>
-
- <entry><literallayout>0/0x08
-1/0x40</literallayout></entry>
- </row>
-
- <row>
- <entry><literallayout>DATA4
-BUSY</literallayout></entry>
-
- <entry><literallayout>6
-11</literallayout></entry>
-
- <entry><literallayout>11
-6</literallayout></entry>
-
- <entry>Data</entry>
-
- <entry><literallayout>0/0x10
-1/0x80</literallayout></entry>
- </row>
-
- <row>
- <entry>GND</entry>
-
- <entry>18-25</entry>
-
- <entry>18-25</entry>
-
- <entry>GND</entry>
-
- <entry>-</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>See also <link linkend="pao">this note</link> on the
- Mobile Computing page.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="geometry">
- <para>Which geometry should I use for a disk drive?</para>
- </question>
-
- <answer>
- <para>
- <note>
- <para>By the <quote>geometry</quote> of a disk, we mean the
- number of cylinders, heads and sectors/track on a disk - I'll
- refer to this as C/H/S for convenience. This is how the PC's
- BIOS works out which area on a disk to read/write from.</para>
- </note>
- </para>
-
- <para>This seems to cause a lot of confusion for some reason.
- First of all, the <emphasis>physical</emphasis> geometry of a
- SCSI drive is totally irrelevant, as FreeBSD works in term of
- disk blocks. In fact, there is no such thing as
- <emphasis>the</emphasis> physical geometry, as the sector
- density varies across the disk - what manufacturers claim is
- the <emphasis>quote</emphasis> physical geometry is usually the
- geometry that they've worked out results in the least wasted
- space. For IDE disks, FreeBSD does work in terms of C/H/S, but
- all modern drives will convert this into block references
- internally as well.</para>
-
- <para>All that matters is the <emphasis>logical</emphasis>
- geometry - the answer that the BIOS gets when it asks
- <quote>what is your geometry?</quote> and then uses to access
- the disk. As FreeBSD uses the BIOS when booting, it's very
- important to get this right. In particular, if you have more
- than one operating system on a disk, they must all agree on the
- geometry, otherwise you will have serious problems
- booting!</para>
-
- <para>For SCSI disks, the geometry to use depends on whether
- extended translation support is turned on in your controller
- (this is often referred to as <quote>support for DOS disks
- &gt;1GB</quote> or something similar). If it's turned off, then
- use <replaceable>N</replaceable> cylinders, 64 heads and 32
- sectors/track, where <replaceable>N</replaceable> is the
- capacity of the disk in MB. For example, a 2GB disk should
- pretend to have 2048 cylinders, 64 heads and 32
- sectors/track.</para>
-
- <para>If it <emphasis>is</emphasis> turned on (it's often supplied
- this way to get around certain limitations in MSDOS) and the
- disk capacity is more than 1GB, use M cylinders, 63 sectors per
- track (*not* 64), and 255 heads, where 'M' is the disk capacity
- in MB divided by 7.844238 (!). So our example 2GB drive would
- have 261 cylinders, 63 sectors per track and 255 heads.</para>
-
- <para>If you are not sure about this, or FreeBSD fails to detect
- the geometry correctly during installation, the simplest way
- around this is usually to create a small DOS partition on the
- disk. The correct geometry should then be detected (and you can
- always remove the DOS partition in the partition editor if you
- don't want to keep it, or leave it around for programming
- network cards and the like).</para>
-
- <para>Alternatively, there is a freely available utility
- distributed with FreeBSD called <filename>pfdisk.exe</filename>
- (located in the <filename>tools</filename> subdirectory on the
- FreeBSD CDROM or on the various FreeBSD ftp sites) which can be
- used to work out what geometry the other operating systems on
- the disk are using. You can then enter this geometry in the
- partition editor.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disk-divide-restrictions">
- <para>Any restrictions on how I divide the disk up?</para>
- </question>
-
- <answer>
- <para>Yes. You must make sure that your root partition is below
- 1024
- cylinders so the BIOS can boot the kernel from it. (Note that
- this is a limitation in the PC's BIOS, not FreeBSD).</para>
-
- <para>For a SCSI drive, this will normally imply that the root
- partition will be in the first 1024MB (or in the first 4096MB
- if extended translation is turned on - see previous question).
- For IDE, the corresponding figure is 504MB.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="disk-manager">
- <para>What about disk managers? Or, I have a large drive!</para>
- </question>
-
- <answer>
- <para>FreeBSD recognizes the Ontrack Disk Manager and makes
- allowances for it. Other disk managers are not supported.</para>
-
- <para>If you just want to use the disk with FreeBSD you don't
- need a disk manager. Just configure the disk for as much space
- as the BIOS can deal with (usually 504 megabytes), and FreeBSD
- should figure out how much space you really have. If you're
- using an old disk with an MFM controller, you may need to
- explicitly tell FreeBSD how many cylinders to use.</para>
-
- <para>If you want to use the disk with FreeBSD and another
- operating system, you may be able to do without a disk manager:
- just make sure the the FreeBSD boot partition and the slice for
- the other operating system are in the first 1024 cylinders. If
- you're reasonably careful, a 20 megabyte boot partition should
- be plenty.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-os">
- <para>When I boot FreeBSD I get <literal>Missing Operating
- System</literal></para>
- </question>
-
- <answer>
- <para>This is classically a case of FreeBSD and DOS or some other
- OS conflicting over their ideas of disk <link
- linkend="geometry">geometry</link>. You will have to reinstall
- FreeBSD, but obeying the instructions given above will almost
- always get you going.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stop-at-boot-manager">
- <para>I can't get past the boot manager's <literal>F?</literal>
- prompt.</para>
- </question>
-
- <answer>
- <para>This is another symptom of the problem described in the
- preceding question. Your BIOS geometry and FreeBSD geometry
- settings do not agree! If your controller or BIOS supports
- cylinder translation (often marked as <literal>&gt;1GB drive
- support</literal>), try toggling its setting and reinstalling
- FreeBSD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-complete-sources">
- <para>Do I need to install the complete sources?</para>
- </question>
-
- <answer>
- <para>In general, no. However, we would strongly recommend that
- you install, at a minimum, the <literal>base</literal> source
- kit, which includes several of the files mentioned here, and
- the <literal>sys</literal> (kernel) source kit, which includes
- sources for the kernel. There is nothing in the system which
- requires the presence of the sources to operate, however,
- except for the kernel-configuration program &man.config.8;.
- With the exception of the kernel sources, our build structure
- is set up so that you can read-only mount the sources from
- elsewhere via NFS and still be able to make new binaries.
- (Because of the kernel-source restriction, we recommend that
- you not mount this on <filename>/usr/src</filename> directly,
- but rather in some other location with appropriate symbolic
- links to duplicate the top-level structure of the source
- tree.)</para>
-
- <para>Having the sources on-line and knowing how to build a
- system with them will make it much easier for you to upgrade
- to future releases of FreeBSD.</para>
-
- <para>To actually select a subset of the sources, use the Custom
- menu item when you are in the Distributions menu of the
- system installation tool.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="need-kernel">
- <para>Do I need to build a kernel?</para>
- </question>
-
- <answer>
- <para>Building a new kernel was originally pretty much a required
- step in a FreeBSD installation, but more recent releases have
- benefited from the introduction of a much friendlier kernel
- configuration tool. When at the FreeBSD boot prompt (boot:),
- use the <option>-c</option> flag and you will be dropped into a
- visual configuration screen which allows you to configure the
- kernel's settings for most common ISA cards.</para>
-
- <para>It's still recommended that you eventually build a new
- kernel containing just the drivers that you need, just to save a
- bit of RAM, but it's no longer a strict requirement for most
- systems.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="password-encryption">
- <para>Should I use DES passwords, or MD5, and how do I specify
- which form my users receive?</para>
- </question>
-
- <answer>
- <para>The default password format on FreeBSD is to use
- <emphasis>MD5</emphasis>-based passwords. These are believed to
- be more secure than the traditional UNIX password format, which
- used a scheme based on the <emphasis>DES</emphasis> algorithm.
- DES passwords are still available if you need to share your
- password file with legacy operating systems which still use the
- less secure password format (they are available if you choose
- to install the <quote>crypto</quote> distribution in
- sysinstall, or by installing the crypto sources if building
- from source). Which password format to use for new passwords is
- controlled by the <quote>passwd_format</quote> login capability
- in <filename>/etc/login.conf</filename>, which takes values of
- either <quote>des</quote> (if available) or <quote>md5</quote>.
- See the login.conf(5) manpage for more information about login
- capabilities.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="boot-floppy-hangs">
- <para>The boot floppy starts but hangs at the
- <literal>Probing Devices...</literal> screen.</para>
- </question>
-
- <answer>
-
- <para>If you have a IDE Zip or Jaz drive installed, remove it
- and try again. The boot floppy can get confused by the drives.
- After the system is installed you can reconnect the drive.
- Hopefully this will be fixed in a later release.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="panic-on-install-reboot">
- <para>I get a <literal>panic: cant mount root</literal>
- error when rebooting the system after installation.</para>
- </question>
-
- <answer>
- <para>This error comes from confusion between the boot block's
- and the kernel's understanding of the disk devices. The error
- usually manifests on two-disk IDE systems, with the hard disks
- arranged as the master or single device on separate IDE
- controllers, with FreeBSD installed on the secondary IDE
- controller. The boot blocks think the system is installed on
- wd1 (the second BIOS disk) while the kernel assigns the first
- disk on the secondary controller device wd2. After the device
- probing, the kernel tries to mount what the boot blocks think
- is the boot disk, wd1, while it is really wd2, and
- fails.</para>
-
- <para>To fix the problem, do one of the following:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>For FreeBSD 3.3 and later, reboot the system and hit
- <literal>Enter</literal> at the <literal>Booting kernel
- in 10 seconds; hit [Enter] to interrupt</literal> prompt.
- This will drop you into the boot loader.</para>
-
- <para>Then type
- <literal>
- set root_disk_unit="<replaceable>disk_number</replaceable>"
- </literal>. <replaceable>disk_number</replaceable>
- will be <literal>0</literal> if FreeBSD is installed on
- the master drive on the first IDE controller,
- <literal>1</literal> if it is installed on the slave on
- the first IDE controller, <literal>2</literal> if it is
- installed on the master of the second IDE controller, and
- <emphasis>3</emphasis> if it is installed on the slave of
- the second IDE controller.</para>
-
- <para>Then type <literal>boot</literal>, and your system
- should boot correctly.</para>
-
- <para>To make this change permanent (ie so you don't have to
- do this everytime you reboot or turn on your FreeBSD
- machine), put the line <literal>
- root_disk_unit="<replaceable>disk_number</replaceable>"
- </literal> in <filename>/boot/loader.conf.local
- </filename>.</para>
- </listitem>
-
- <listitem>
- <para>If using FreeBSD 3.2 or earlier, at the Boot: prompt,
- enter <literal>1:wd(2,a)kernel</literal> and press Enter.
- If the system starts, then run the command
- <command>echo "1:wd(2,a)kernel" &gt; /boot.config</command>
- to make it the default boot string.</para>
- </listitem>
-
- <listitem>
- <para>Move the FreeBSD disk onto the primary IDE controller,
- so the hard disks are consecutive.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="../handbook/kernelconfig.html">Rebuild
- your kernel,</ulink> modify the wd configuration lines to
- read:</para>
-
- <programlisting>controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
-disk wd0 at wdc0 drive 0
-# disk wd1 at wdc0 drive 1 # comment out this line
-
-controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
-disk wd1 at wdc1 drive 0 # change from wd2 to wd1
-disk wd2 at wdc1 drive 1 # change from wd3 to wd2</programlisting>
-
- <para>Install the new kernel. If you moved your disks and
- wish to restore the previous configuration, replace the
- disks in the desired configuration and reboot. Your
- system should boot successfully.</para>
- </listitem>
- </orderedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="memory-limits">
- <para>What are the limits for memory?</para>
- </question>
-
- <answer>
- <para>For memory, the limit is 4 gigabytes. This configuration
- has been tested, see <ulink
- URL="ftp://ftp.cdrom.com/archive-info/configuration">wcarchive's
- configuration</ulink> for more details. If you plan to install
- this much memory into a machine, you need to be careful. You'll
- probably want to use ECC memory and to reduce capacitive
- loading use 9 chip memory modules vice 18 chip memory
- modules.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ffs-limits">
- <para>What are the limits for ffs filesystems?</para>
- </question>
-
- <answer>
- <para>For ffs filesystems, the maximum theoretical limit is 8
- terabytes (2G blocks), or 16TB for the default block size of
- 8K. In practice, there is a soft limit of 1 terabyte, but with
- modifications filesystems with 4 terabytes are possible (and
- exist).</para>
-
- <para>The maximum size of a single ffs file is approximately 1G
- blocks (4TB) if the block size is 4K.</para>
-
- <table>
- <title>Maximum file sizes</title>
-
- <tgroup cols="5">
- <thead>
- <row>
- <entry>fs block size</entry>
-
- <entry>2.2.7-stable</entry>
-
- <entry>3.0-current</entry>
-
- <entry>works</entry>
-
- <entry>should work</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>4K</entry>
-
- <entry>4T-1</entry>
-
- <entry>4T-1</entry>
-
- <entry>4T-1</entry>
-
- <entry>4+t</entry>
- </row>
-
- <row>
- <entry>8K</entry>
-
- <entry>32+G</entry>
-
- <entry>8T-1</entry>
-
- <entry>32+G</entry>
-
- <entry>32T-1</entry>
- </row>
-
- <row>
- <entry>16K</entry>
-
- <entry>128+G</entry>
-
- <entry>16T-1</entry>
-
- <entry>128+G</entry>
-
- <entry>32T-1</entry>
- </row>
-
- <row>
- <entry>32K</entry>
-
- <entry>512+G</entry>
-
- <entry>32T-1</entry>
-
- <entry>512+G</entry>
-
- <entry>64T-1</entry>
- </row>
-
- <row>
- <entry>64K</entry>
-
- <entry>2048+G</entry>
-
- <entry>64T-1</entry>
-
- <entry>2048+G</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>For block sizes of 8K and larger, everything should be
- limited by the 2G-1 limit on fs block numbers, but is actually
- limited by the 1G-1 limit on fs block numbers, except under
- -STABLE triple indirect blocks are unreachable, so the limit is
- the maxiumum fs block number that can be represented using
- double indirect blocks (approx. (blocksize/4)^2 +
- (blocksize/4)), and under -CURRENT exceeding this limit may
- cause problems. Using the correct limit of 2G-1 blocks does
- cause problems.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tb-on-floppy">
- <para>How can I put 1TB files on my floppy?</para>
- </question>
-
- <answer>
- <para>I keep several virtual ones on floppies :-). The maxiumum
- file size is not closely related to the maximum disk size. The
- maximum disk size is 1TB. It is a feature that the file size
- can be larger than the disk size.</para>
-
- <para>The following example creates a file of size 8T-1 using a
- whole 32K of disk space (3 indirect blocks and 1 data block) on
- a small root partition. The dd command requires a dd that works
- with large files.</para>
-
- <screen>&prompt.user; <userinput>cat foo</userinput>
-df .
-dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
-ls -l z
-du z
-df .
-&prompt.user; <userinput>sh foo</userinput>
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/da0a 64479 27702 31619 47% /
-1+0 records in
-1+0 records out
-1 bytes transferred in 0.000187 secs (5346 bytes/sec)
--rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
-32 z
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/da0a 64479 27734 31587 47% /</screen>
-
- <para>Bruce Evans, September 1998</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="archsw-readin-failed-error">
- <para>I compiled a new kernel and now I get the error message
- <literal>archsw.readin.failed</literal> when booting.</para>
- </question>
-
- <answer>
- <para>You can boot by specifying the kernel directly at the second
- stage, pressing any key when the | shows up before loader is
- started. More specifically, you have upgraded the source for
- your kernel, and installed a new kernel builtin from them
- <emphasis>without making world</emphasis>. This is not
- supported. Make world.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="upgrade-3x-4x">
- <para>How do I upgrade from 3.X -&gt; 4.X?</para>
- </question>
-
- <answer>
- <para>We <emphasis>strongly</emphasis> recommend that you use
- binary snapshots to do this. 4-STABLE snapshots are available at
- <ulink
- URL="ftp://releng4.FreeBSD.org/">releng4.FreeBSD.org</ulink>.</para>
-
- <para>If you wish to upgrade using source, please see the <ulink
- URL="http://www.FreeBSD.org/handbook/cutting-edge.html">FreeBSD
- Handbook</ulink> for more information.</para>
-
- <para><emphasis>Upgrading via source is never recommended for new
- users, and upgading from 3.X -> 4.X is even less so; make sure
- you have read the instructions carefully before attempting to
- upgrade via source this!</emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="security-profiles">
- <para>What are these <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. The more severe the security profile, the less
- programs will be enabled by default; this is one of the basic
- principles of security: do not run anything except what you
- must.</para>
-
- <para>Please note that the security profile is just a default
- setting. All programs can be enabled and disabled after you've
- installed FreeBSD by editing or adding the appropriate line(s)
- to <filename>/etc/rc.conf</filename>. For more information on
- the latter, please see the &man.rc.conf.5; manual page.</para>
-
- <para>Following is a table that describes what each security
- profile does. The columns are the choices you have for a
- security profile, and the rows are the program or feature that
- is enabled or disabled.</para>
-
- <table>
- <title>Possible security profiles</title>
-
- <tgroup cols=5>
- <thead>
- <row>
- <entry></entry>
-
- <entry>Extreme</entry>
-
- <entry>High</entry>
-
- <entry>Moderate</entry>
-
- <entry>Low</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>&man.inetd.8;</entry>
-
- <entry>NO</entry>
-
- <entry>NO</entry>
-
- <entry>YES</entry>
-
- <entry>YES</entry>
- </row>
-
- <row>
- <entry>&man.sendmail.8;</entry>
-
- <entry>NO</entry>
-
- <entry>YES</entry>
-
- <entry>YES</entry>
-
- <entry>YES</entry>
- </row>
-
- <row>
- <entry>&man.sshd.8;</entry>
-
- <entry>NO</entry>
-
- <entry>YES</entry>
-
- <entry>YES</entry>
-
- <entry>YES</entry>
- </row>
-
- <row>
- <entry>&man.portmap.8;</entry>
-
- <entry>NO</entry>
-
- <entry>NO</entry>
-
- <entry>[1]</entry>
-
- <entry>YES</entry>
- </row>
-
- <row>
- <entry>NFS server</entry>
-
- <entry>NO</entry>
-
- <entry>NO</entry>
-
- <entry>YES</entry>
-
- <entry>YES</entry>
- </row>
-
- <row>
- <entry>&man.securelevel.8;</entry>
-
- <entry>YES (2) [2]</entry>
-
- <entry>YES (1) [2]</entry>
-
- <entry>NO</entry>
-
- <entry>NO</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Notes:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>The portmapper is enabled if the machine has been
- configured as an NFS client or server earlier in the
- installation.</para>
- </listitem>
-
- <listitem>
- <para>If you choose a security profile that sets the
- securelevel (Extreme or High), you must be aware of the
- implications. Please read the &man.init.8; manual page
- and pay particular attention to the meanings of the
- security levels, or you may have significant trouble
- later!</para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>
- <warning>
- <para>The security profile is not a silver bullet! Setting
- it high does not mean you do have to keep up with security
- issues by reading an appropriate <ulink
- url="../handbook/eresources.html#ERESOURCES-MAIL">mailing
- list</ulink>, using good passwords and passphrases, and
- generally adhering to good security practices. It simply
- sets up the desired security to convenience ration out of
- the box.</para>
- </warning>
-
- <note>
- <para>The security profile mechanism is meant to be used
- when you first install FreeBSD. If you already have
- FreeBSD installed, it would probably be more beneficial to
- simply enable or disable the desired functionality. If
- you really want to use a security profile, you can re-run
- &man.sysinstall.8; to set it.</para>
- </note>
- </para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter
- id="hardware">
- <title>Hardware compatibility </title>
-
- <qandaset>
- <qandaentry>
- <question id="supported-hard-drives">
- <para>What kind of hard drives does FreeBSD support?</para>
- </question>
-
- <answer>
- <para>FreeBSD supports EIDE and SCSI drives (with a compatible
- controller; see the next section), and all drives using the
- original <quote>Western Digital</quote> interface (MFM, RLL,
- ESDI, and of course IDE). A few ESDI controllers that use
- proprietary interfaces may not work: stick to WD1002/3/6/7
- interfaces and clones.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="supported-scsi-controllers">
- <para>Which SCSI controllers are supported?</para>
- </question>
-
- <answer>
- <para>See the complete list in the <ulink
- URL="../handbook/install.html#INSTALL-HW">Handbook</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="supported-cdrom-drives">
- <para>Which CD-ROM drives are supported by FreeBSD?</para>
- </question>
-
- <answer>
- <para>Any SCSI drive connected to a supported controller is
- supported.</para>
-
- <para>The following proprietary CD-ROM interfaces are also
- supported:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Mitsumi LU002 (8bit), LU005 (16bit) and FX001D
- (16bit 2x Speed).</para>
- </listitem>
-
- <listitem>
- <para>Sony CDU 31/33A<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>Sound Blaster Non-SCSI CD-ROM<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>Matsushita/Panasonic CD-ROM<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>ATAPI compatible IDE CD-ROMs<!-- <br> --></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>All non-SCSI cards are known to be extremely slow compared
- to SCSI drives, and some ATAPI CDROMs may not work.</para>
-
- <para>As of 2.2 the FreeBSD CDROM from BSDi supports
- booting directly from the CD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="zip-support">
- <para>Does FreeBSD support ZIP drives?</para>
- </question>
-
- <answer>
- <para>FreeBSD supports the SCSI ZIP drive out of the box, of
- course. The ZIP drive can only be set to run at SCSI target IDs
- 5 or 6, but if your SCSI host adapter's BIOS supports it you
- can even boot from it. It is not clear which host
- adapters support booting from targets other than 0 or 1,
- so you will have to consult your adapter's documentation
- if you'd like to use this feature.</para>
-
- <para>ATAPI (IDE) Zip drives are supported in FreeBSD 2.2.6 and
- later releases.</para>
-
- <para>FreeBSD has contained support for Parallel Port Zip Drives
- since version 3.0. If you are using a sufficiently up to date
- version, then you should check that your kernel contains the
- <devicename>scbus0</devicename>, <devicename>da0</devicename>,
- <devicename>ppbus0</devicename>, and
- <devicename>vp0</devicename> drivers (the GENERIC kernel
- contains everything except <devicename>vp0</devicename>). With
- all these drivers present, the Parallel Port drive should be
- available as <filename>/dev/da0s4</filename>. Disks can be
- mounted using <command>mount /dev/da0s4 /mnt</command> OR (for
- dos disks) <command>mount_msdos /dev/da0s4 /mnt</command> as
- appropriate.</para>
-
- <para>Also check out <link linkend="jaz">this note on removable
- drives</link>, and <link linkend="disklabel">this note on
- <quote>formatting</quote></link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="jaz-zip-removable-support">
- <para>Does FreeBSD support JAZ, EZ and other removable
- drives?</para>
- </question>
-
- <answer>
- <para>Apart from the IDE version of the EZ drive, these are all
- SCSI devices, so the should all look like SCSI disks to
- FreeBSD, and the IDE EZ should look like an IDE drive.</para>
-
- <para><anchor id="jaz">I'm not sure how well FreeBSD supports
- changing the media out while running. You will of course need
- to dismount the drive before swapping media, and make sure that
- any external units are powered on when you boot the system so
- FreeBSD can see them.</para>
-
- <para>See <link linkend="disklabel">this note on
- <quote>formatting</quote></link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-support">
- <para>Which multi-port serial cards are supported by
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>There is a list of these in the <ulink
- URL="../handbook/install-hw.html#INSTALL-MISC">Miscellaneous
- devices</ulink> section of the handbook.</para>
-
- <para>Some unnamed clone cards have also been known to work,
- especially those that claim to be AST compatible.</para>
-
- <para>Check the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?sio(4)">sio</ulink>
- man page to get more information on configuring such cards.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="usbkbd">
- <para>I have a USB keyboard. Does FreeBSD support it?</para>
- </question>
-
- <answer>
- <para>USB device support was added to FreeBSD 3.1. However, it
- is still in preliminary state and may not always work as of
- version 3.2. If you want to experiment with the USB keyboard
- support, follow the procedure described below.</para>
-
- <orderedlist>
- <listitem>
- <para>Use FreeBSD 3.2 or later.</para>
- </listitem>
-
- <listitem>
- <para>Add the following lines to your kernel configuration
- file, and rebuild the kernel.</para>
-
- <programlisting>device uhci
-device ohci
-device usb
-device ukbd
-options KBD_INSTALL_CDEV</programlisting>
-
- <para>In versions of FreeBSD before 4.0, use this
- instead:</para>
-
- <programlisting>controller uhci0
-controller ohci0
-controller usb0
-controller ukbd0
-options KBD_INSTALL_CDEV</programlisting>
- </listitem>
-
- <listitem>
- <para>Go to the <filename>/dev</filename> directory and create
- device nodes as follows:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV kbd0 kbd1</userinput></screen>
-
- </listitem>
-
- <listitem>
- <para>Edit <filename>/etc/rc.conf</filename> and add the
- following lines:</para>
-
- <programlisting>usbd_enable="YES"
-usbd_flags=""</programlisting>
-
- </listitem>
- </orderedlist>
-
- <para>After the system is rebooted, the AT keyboard becomes
- <filename>/dev/kbd0</filename> and the USB keyboard becomes
- <filename>/dev/kbd1</filename>, if both are connected to the
- system. If there is the USB keyboard only, it will be
- <filename>/dev/ukbd0</filename>.</para>
-
- <para>If you want to use the USB keyboard in the console, you
- have to explicitly tell the console driver to use the existence
- of the USB keyboard. This can be done by running the following
- command as a part of system initialization.</para>
-
- <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>
-
- <para>Note that if the USB keyboard is the only keyboard, it is
- accessed as <filename>/dev/kbd0</filename>, thus, the command
- should look like:</para>
-
- <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>
-
- <para><filename>/etc/rc.i386</filename> is a good place to add the
- above command.</para>
-
- <para>Once this is done, the USB keyboard should work in the X
- environment as well without any special settings.</para>
-
- <para>Hot-plugging and unplugging of the USB keyboard may not
- work quite right yet. It is a good idea to connect the keyboard
- before you start the system and leave it connected until the
- system is shutdown to avoid troubles.</para>
-
- <para>See the &man.ukbd.4; man page for more information.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="busmouse">
- <para>I have an unusual bus mouse. How do I set it up?</para>
- </question>
-
- <answer>
- <para>FreeBSD supports the bus mouse and the InPort bus mouse
- from such manufactures as Microsoft, Logitech and ATI. The bus
- device driver is compiled in the GENERIC kernel by default in
- FreeBSD versions 2.X, but not included in version 3.0 or later.
- If you are building a custom kernel with the bus mouse driver,
- make sure to add the following line to the kernel config
- file</para>
-
- <para>In FreeBSD 3.0 or before, add:</para>
-
- <programlisting>device mse0 at isa? port 0x23c tty irq5 vector mseintr</programlisting>
-
- <para>In FreeBSD 3.X, the line should be:</para>
-
- <programlisting>device mse0 at isa? port 0x23c tty irq5</programlisting>
-
- <para>And in FreeBSD 4.X and later, the line should read:</para>
-
- <programlisting>device mse0 at isa? port 0x23c irq5</programlisting>
-
- <para>Bus mice usually comes with dedicated interface cards.
- These cards may allow you to set the port address and the IRQ
- number other than shown above. Refer to the manual of your
- mouse and the &man.mse.4; man page for more information.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2mouse">
- <para>How do I use my PS/2 (<quote>mouse port</quote> or
- <quote>keyboard</quote>) mouse?</para>
- </question>
-
- <answer>
-
- <para>If you're running a post-2.2.5 version of FreeBSD, the
- necessary driver, <devicename>psm</devicename>, is included and
- enabled in the kernel. The kernel should detect your PS/2 mouse
- at boot time.</para>
-
- <para>If you're running a previous but relatively recent version
- of FreeBSD (2.1.x or better) then you can simply enable it in
- the kernel configuration menu at installation time, otherwise
- later with <option>-c</option> at the <command>boot:</command>
- prompt. It is disabled by default, so you will need to enable
- it explicitly.</para>
-
- <para>If you're running an older version of FreeBSD then you'll
- have to add the following lines to your kernel configuration
- file and compile a new kernel.</para>
-
- <para>In FreeBSD 3.0 or earlier, the line should be:</para>
-
- <programlisting>device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr</programlisting>
-
- <para>In FreeBSD 3.1 or later, the line should be:</para>
-
- <programlisting>device psm0 at isa? tty irq 12</programlisting>
-
- <para>In FreeBSD 4.0 or later, the line should be:</para>
-
- <programlisting>device psm0 at atkbdc? irq 12</programlisting>
-
- <para>See the <ulink
- URL="../handbook/kernelconfig.html">Handbook entry on
- configuring the kernel</ulink> if you've no experience with
- building kernels.</para>
-
- <para>Once you have a kernel detecting
- <devicename>psm0</devicename> correctly at boot time, make sure
- that an entry for <devicename>psm0</devicename> exists in
- <filename>/dev</filename>. You can do this by typing:</para>
-
- <screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen>
-
- <para>when logged in as root.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="moused">
- <para>Is it possible to make use of a mouse in any way outside
- the X Window?</para>
- </question>
-
- <answer>
- <para>If you are using the default console driver, syscons, you
- can use a mouse pointer in text consoles to cut &amp; paste
- text. Run the mouse daemon, moused, and turn on the mouse
- pointer in the virtual console:</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>Where <replaceable>xxxx</replaceable> is the mouse device
- name and <replaceable>yyyy</replaceable> is a protocol type for
- the mouse. See the &man.moused.8; man page for supported
- protocol types.</para>
-
- <para>You may wish to run the mouse daemon automatically when the
- system starts. In version 2.2.1, set the following variables in
- <filename>/etc/sysconfig</filename>.</para>
-
- <programlisting>mousedtype="yyyy"
-mousedport="xxxx"
-mousedflags=""</programlisting>
-
- <para>In versions 2.2.2 to 3.0, set the following variables in
- <filename>/etc/rc.conf</filename>.</para>
-
- <programlisting>moused_type="yyyy"
-moused_port="xxxx"
-moused_flags=""</programlisting>
-
- <para>In 3.1 and later, assuming you have a PS/2 mouse, all you
- need to is add <literal>moused_enable="YES"</literal> to
- <filename>/etc/rc.conf</filename>.</para>
-
- <para>In addition, if you would like to be able to use the mouse
- daemon on all virtual terminals instead of just console at
- boot-time, add the following to
- <filename>/etc/rc.conf</filename>.</para>
-
- <programlisting>allscreens_flags="-m on"</programlisting>
-
- <para>Staring from FreeBSD 2.2.6, the mouse daemon is capable of
- determining the correct protocol type automatically unless the
- mouse is a relatively old serial mouse model. Specify
- <literal>auto</literal> the protocol to invoke automatic
- detection.</para>
-
- <para>When the mouse daemon is running, access to the mouse
- needs to be coordinated between the mouse daemon and other
- programs such as the X Window. Refer to <link
- linkend="x-and-moused">another section</link> on this
- issue.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="text-mode-cut-paste">
- <para>How do I cut and paste text with mouse in the text
- console?</para>
- </question>
-
- <answer>
- <para>Once you get the mouse daemon running (see
- <link linkend="moused">previous section</link>), hold down the
- button 1 (left button) and move the mouse to select a region of
- text. Then, press the button 2 (middle button) or the button 3
- (right button) to paste it at the text cursor.</para>
-
- <para>In versions 2.2.6 and later, pressing the button 2 will
- paste the text. Pressing the button 3 will
- <quote>extend</quote> the selected region of text. If your
- mouse does not have the middle button, you may wish to emulate
- it or remap buttons using moused options. See the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?moused(8)">
- moused(8)</ulink> man page for details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="usbmouse">
- <para>I have a USB mouse. Does FreeBSD support the USB
- mouse?</para>
- </question>
-
- <answer>
- <para>USB device support was added to FreeBSD 3.1. However, it
- is still in a preliminary state and may not always work as of
- version 3.2. If you want to experiment with the USB mouse
- support, follow the procedure described below.</para>
-
- <orderedlist>
- <listitem>
- <para>Use FreeBSD 3.2 or later.</para>
- </listitem>
-
- <listitem>
- <para>Add the following lines to your kernel configuration
- file, and rebuild the kernel.</para>
-
- <programlisting>device uhci
-device ohci
-device usb
-device ums</programlisting>
-
- <para>In versions of FreeBSD before 4.0, use this
- instead:</para>
-
- <programlisting>controller uhci0
-controller ohci0
-controller usb0
-device ums0</programlisting>
- </listitem>
-
- <listitem>
- <para>Go to the <filename>/dev</filename> directory and
- create a device node as follows:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV ums0</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Edit <filename>/etc/rc.conf</filename> and add the
- following lines:</para>
-
- <programlisting>moused_enable="YES"
-moused_type="auto"
-moused_port="/dev/ums0"
-moused_flags=""
-usbd_enable="YES"
-usbd_flags=""</programlisting>
-
- <para>See the <link linkend="moused">previous section</link>
- for more detailed discussion on moused.</para>
- </listitem>
-
- <listitem>
- <para>In order to use the USB mouse in the X session, edit
- <filename>XF86Config</filename>. If you are using XFree86
- 3.3.2 or later, be sure to have the following lines in the
- <emphasis>Pointer</emphasis> section:</para>
-
- <programlisting>Device "/dev/sysmouse"
-Protocol "Auto"</programlisting>
-
- <para>If you are using earlier versions of XFree86, be sure to
- have the following lines in the <emphasis>Pointer</emphasis>
- section:</para>
-
- <programlisting>Device "/dev/sysmouse"
-Protocol "SysMouse"</programlisting>
- </listitem>
- </orderedlist>
-
- <para>Refer to <link linkend="x-and-moused">another section</link>
- on the mouse support in the X environment.</para>
-
- <para>Hot-plugging and unplugging of the USB mouse may not work
- quite right yet. It is a good idea connect the mouse before you
- start the system and leave it connected until the system is
- shutdown to avoid trouble.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mouse-wheel-buttons">
- <para>My mouse has a fancy wheel and buttons. Can I use them in
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>The answer is, unfortunately, <quote>It depends</quote>.
- These mice with additional features require specialized driver
- in most cases. Unless the mouse device driver or the user
- program has specific support for the mouse, it will act just
- like a standard two, or three button mouse.</para>
-
- <para>For the possible usage of wheels in the X Window
- environment, refer to <link linkend="x-and-wheel">that
- section</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="psmerr">
- <para>My mouse does not seem working. The mouse cursor jumps
- around on the screen. The mouse has a wheel and is connected
- to the PS/2 mouse port.</para>
- </question>
-
- <answer>
- <para>The PS/2 mouse driver psm in FreeBSD versions 3.2 or
- earlier has difficulty with some wheel mice, including Logitech
- model M-S48 and its OEM siblings. Apply the following patch to
- <filename>/sys/i386/isa/psm.c</filename> and rebuild the
- kernel.</para>
-
- <programlisting>Index: psm.c
-===================================================================
-RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v
-retrieving revision 1.60.2.1
-retrieving revision 1.60.2.2
-diff -u -r1.60.2.1 -r1.60.2.2
---- psm.c 1999/06/03 12:41:13 1.60.2.1
-+++ psm.c 1999/07/12 13:40:52 1.60.2.2
-@@ -959,14 +959,28 @@
- sc->mode.packetsize = vendortype[i].packetsize;
-
- /* set mouse parameters */
-+#if 0
-+ /*
-+ * A version of Logitech FirstMouse+ won't report wheel movement,
-+ * if SET_DEFAULTS is sent... Don't use this command.
-+ * This fix was found by Takashi Nishida.
-+ */
- i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
- if (verbose >= 2)
- printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i);
-+#endif
- if (sc->config & PSM_CONFIG_RESOLUTION) {
- sc->mode.resolution
- = set_mouse_resolution(sc->kbdc,
-- (sc->config & PSM_CONFIG_RESOLUTION) - 1);
-+ (sc->config & PSM_CONFIG_RESOLUTION) - 1);
-+ } else if (sc->mode.resolution >= 0) {
-+ sc->mode.resolution
-+ = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
-+ }
-+ if (sc->mode.rate > 0) {
-+ sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
- }
-+ set_mouse_scaling(sc->kbdc, 1);
-
- /* request a data packet and extract sync. bits */
- if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3) {</programlisting>
-
- <para>Versions later than 3.2 should be all right.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="laptop-mouse-trackball">
- <para>How do I use the mouse/trackball/touchpad on my
- laptop?</para>
- </question>
-
- <answer>
- <para>Please refer to <link linkend="ps2mouse">the answer to
- the previous question</link>. And check out
- <link linkend="pao">this note</link> on the Mobile Computing
- page.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tape-support">
- <para>What types of tape drives are supported?</para>
- </question>
-
- <answer>
-
- <para>FreeBSD supports SCSI and QIC-36 (with a QIC-02 interface).
- This includes 8-mm (aka Exabyte) and DAT drives.</para>
-
- <para>Some of the early 8-mm drives are not quite compatible
- with SCSI-2, and may not work well with FreeBSD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="tape-changer-support">
- <para>Does FreeBSD support tape changers?</para>
- </question>
-
- <answer>
- <para>FreeBSD 2.2 supports SCSI changers using the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ch(4)">ch(4)</ulink>
- device and the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?chio(1)">chio(1)</ulink>
- command. The details of how you actually control the changer
- can be found in the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?chio(4)">chio(1)</ulink>
- man page.</para>
-
- <para>If you're not using <ulink
- URL="http://www.FreeBSD.org/cgi/ports.cgi?amanda">AMANDA</ulink>
- or some other product that already understands changers,
- remember that they're 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="sound-card-support">
- <para>Which sound cards are supported by FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD supports the SoundBlaster, SoundBlaster Pro,
- SoundBlaster 16, Pro Audio Spectrum 16, AdLib and Gravis
- UltraSound sound cards. There is also limited support for
- MPU-401 and compatible MIDI cards. Cards conforming to the
- Microsoft Sound System specification are also supported through
- the pcm driver.</para>
-
- <para>
- <note>
- <para>This is only for sound! This driver does not support
- CD-ROMs, SCSI or joysticks on these cards, except for the
- SoundBlaster. The SoundBlaster SCSI interface and some
- non-SCSI CDROMS are supported, but you can't boot off this
- device.</para>
- </note></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="es1370-silent-pcm">
- <para>Workarounds for no sound from es1370 with pcm driver?</para>
- </question>
-
- <answer>
- <para>You can run the following command everytime the machine
- booted up:</para>
-
- <screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="network-cards">
- <para>Which network cards does FreeBSD support?</para>
- </question>
-
- <answer>
- <para>See the <ulink
- URL="../handbook/install-hw.html#INSTALL-NICS">
- Ethernet cards</ulink> section of the handbook for a more
- complete list. </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="no-math-coprocessor">
- <para>I don't have a math co-processor - is that bad?</para>
- </question>
-
- <answer>
- <para>
- <note>
- <para>This will only affect 386/486SX/486SLC owners - other
- machines will have one built into the CPU.</para>
- </note></para>
-
- <para>In general this will not cause any problems, but there are
- circumstances where you will take a hit, either in performance
- or accuracy of the math emulation code (see the section <link
- linkend="emul">on FP emulation</link>). In particular, drawing
- arcs in X will be VERY slow. It is highly recommended that you
- buy a math co-processor; it's well worth it.</para>
-
- <para>
- <note>
- <para>Some math co-processors are better than others. It
- pains us to say it, but nobody ever got fired for buying
- Intel. Unless you're sure it works with FreeBSD, beware of
- clones.</para>
- </note></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="other-device-support">
- <para>What other devices does FreeBSD support?</para>
- </question>
-
- <answer>
- <para>See the <ulink
- URL="../handbook/install.html#INSTALL-MISC">Handbook</ulink>
- for the list of other devices supported.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="power-management-support">
- <para>Does FreeBSD support power management on my laptop?</para>
- </question>
-
- <answer>
- <para>FreeBSD supports APM on certain machines. Please look in
- the <filename>LINT</filename> kernel config file, searching for
- the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?apm(4)">APM</ulink>
- keyword.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="micron-hang-boot">
- <para>My Micron system hangs at boot time</para>
- </question>
-
- <answer>
- <para>Certain Micron motherboards have a non-conforming PCI BIOS
- implementation that causes grief when FreeBSD boots because PCI
- devices don't get configured at their reported addresses.</para>
-
- <para>Disable the <quote>Plug and Play Operating System</quote>
- flag in the BIOS to work around this problem. More information
- can be found at <ulink
- URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
- http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="newer-adaptec-support">
- <para>I have a newer Adaptec controller and FreeBSD can't find
- it.</para>
- </question>
-
- <answer>
- <para>The newer AIC789x series Adaptec chips are supported under
- the CAM SCSI framework which made it's debut in 3.0. Patches
- against 2.2-STABLE are in <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/</ulink>.
- A CAM-enhanced boot floppy is available at <ulink
- URL="http://people.FreeBSD.org/~abial/cam-boot/">
- http://people.FreeBSD.org/~abial/cam-boot/</ulink>.
- In both cases read the README before beginning. </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="internal-plugnplay-modem">
- <para>I have an internal Plug &amp; Play modem and FreeBSD
- can't find it.</para>
- </question>
-
- <answer>
- <para>You will need to add the modem's PnP ID to the PnP ID
- list in the serial driver. To enable Plug &amp; Play support,
- compile a new kernel with <literal>controller pnp0</literal> in
- the configuration file, then reboot the system. The kernel will
- print the PnP IDs of all the devices it finds. Copy the PnP ID
- from the modem to the table in
- <filename>/sys/i386/isa/sio.c</filename>, at about line 2777.
- Look for the string <literal>SUP1310</literal> in the structure
- <literal>siopnp_ids[]</literal> to find the table. Build the
- kernel again, install, reboot, and your modem should be
- found.</para>
-
- <para>You may have to manually configure the PnP devices using
- the <literal>pnp</literal> command in the boot-time
- configuration with a command like
-
- <programlisting>pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8</programlisting>
- to make the modem show.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="serial-console-prompt">
- <para>How do I get the boot: prompt to show on the serial
- console?</para>
- </question>
-
- <answer>
- <para>
- <orderedlist>
- <listitem>
- <para>Build a kernel with
- <literal>options COMCONSOLE</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Create /boot.config and place <option>-P</option>
- as the only text in the file.</para>
- </listitem>
-
- <listitem>
- <para>Unplug the keyboard from the system.</para>
- </listitem>
- </orderedlist></para>
-
- <para>See
- <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename>
- for information.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="micron-3comnic-failure">
- <para>Why doesn't my 3Com PCI network card work with my Micron
- computer?</para>
- </question>
-
- <answer>
- <para>Certain Micron motherboards have a non-conforming PCI BIOS
- implementation that does not configure PCI devices at the
- addresses reported. This causes grief when FreeBSD
- boots.</para>
-
- <para>To work around this problem, disable the
- <quote>Plug and Play Operating System</quote> flag in the
- BIOS.</para>
-
- <para>More information on this problem is available at URL:
- <ulink URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="smp-support">
- <para>Does FreeBSD support Symmetric Multiprocessing (SMP)?</para>
- </question>
-
- <answer>
- <para>SMP is supported in 3.0-STABLE and later releases only.
- SMP is not enabled in the <emphasis>GENERIC</emphasis> kernel,
- so you will have to recompile your kernel to enable SMP. Take a
- look at <filename>/sys/i386/conf/LINT</filename> to figure out
- what options to put in your kernel config file.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="asusk7v-boot-failure">
- <para>The boot floppy hangs on a system with an ASUS K7V
- motherboard. How do I fix this?</para>
- </question>
-
- <answer>
- <para>Go in to the BIOS setup and disable the boot virus
- protection.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="troubleshoot">
- <title>Troubleshooting</title>
-
- <qandaset>
- <qandaentry>
- <question id="awre">
- <para>I have bad blocks on my hard drive!</para>
- </question>
-
- <answer>
- <para>With SCSI drives, the drive should be capable of re-mapping
- these automatically. However, many drives are shipped with
- this feature disabled, for some mysterious reason...</para>
-
- <para>To enable this, you'll need to edit the first device page
- mode, which can be done on FreeBSD by giving the command
- (as root)</para>
-
- <screen>&prompt.root; <userinput>scsi -f /dev/rsd0c -m 1 -e -P 3</userinput></screen>
-
- <para>and changing the values of AWRE and ARRE from 0 to 1:-</para>
-
- <programlisting>AWRE (Auto Write Reallocation Enbld): 1
-ARRE (Auto Read Reallocation Enbld): 1</programlisting>
-
- <para>The following paragraphs were submitted by <ulink
- URL="mailto:tedm@toybox.placo.com">
- Ted Mittelstaedt</ulink>:</para>
-
- <para>For IDE drives, any bad block is usually a sign of
- potential trouble. All modern IDE drives come with internal
- bad-block remapping turned on. All IDE hard drive manufacturers
- today offer extensive warranties and will replace drives with
- bad blocks on them.</para>
-
- <para>If you still want to attempt to rescue an IDE drive with
- bad blocks, you can attempt to download the IDE drive
- manufacturer's IDE diagnostic program, and run this against the
- drive. Sometimes these programs can be set to force the drive
- electronics to rescan the drive for bad blocks and lock them
- out.</para>
-
- <para>For ESDI, RLL and MFM drives, bad blocks are a normal part
- of the drive and are no sign of trouble, generally. With a PC,
- the disk drive controller card and BIOS handle the task of
- locking out bad sectors. This is fine for operating systems
- like DOS that use BIOS code to access the disk. However,
- FreeBSD's disk driver does not go through BIOS, therefore a
- mechanism, bad144, exists that replaces this functionality.
- bad144 only works with the wd driver (which means it is not
- supported in FreeBSD 4.0), it is NOT able to be used with SCSI.
- bad144 works by entering all bad sectors found into a special
- file.</para>
-
- <para>One caveat with bad144 - the bad block special file is
- placed on the last track of the disk. As this file may possibly
- contain a listing for a bad sector that would occur near the
- beginning of the disk, where the /kernel file might be located,
- it therefore must be accessible to the bootstrap program that
- uses BIOS calls to read the kernel file. This means that the
- disk with bad144 used on it must not exceed 1024 cylinders, 16
- heads, and 63 sectors. This places an effective limit of 500MB
- on a disk that is mapped with bad144.</para>
-
- <para>To use bad144, simply set the <quote>Bad Block</quote>
- scanning to ON in the FreeBSD fdisk screen during the initial
- install. This works up through FreeBSD 2.2.7. The disk must
- have less than 1024 cylinders. It is generally recommended that
- the disk drive has been in operation for at least 4 hours prior
- to this to allow for thermal expansion and track
- wandering.</para>
-
- <para>If the disk has more than 1024 cylinders (such as a large
- ESDI drive) the ESDI controller uses a special translation mode
- to make it work under DOS. The wd driver understands about
- these translation modes, IF you enter the
- <quote>translated</quote> geometry with the <quote>set
- geometry</quote> command in fdisk. You must also NOT use the
- <quote>dangerously dedicated</quote> mode of creating the
- FreeBSD partition, as this ignores the geometry. Also, even
- though fdisk will use your overridden geometry, it still knows
- the true size of the disk, and will attempt to create a too
- large FreeBSD partition. If the disk geometry is changed to the
- translated geometry, the partition MUST be manually created
- with the number of blocks.</para>
-
- <para>A quick trick to use is to set up the large ESDI disk with
- the ESDI controller, boot it with a DOS disk and format it with
- a DOS partition. Then, boot the FreeBSD install and in the
- fdisk screen, read off and write down the blocksize and block
- numbers for the DOS partition. Then, reset the geometry to the
- same that DOS uses, delete the DOS partition, and create a
- <quote>cooperative</quote> FreeBSD partition using the
- blocksize you recorded earlier. Then, set the partition
- bootable and turn on bad block scanning. During the actual
- install, bad144 will run first, before any filesystems are
- created. (you can view this with an Alt-F2) If it has any
- trouble creating the badsector file, you have set too large a
- disk geometry - reboot the system and start all over again
- (including repartitioning and reformatting with DOS).</para>
-
- <para>If remapping is enabled and you are seeing bad blocks,
- consider replacing the drive. The bad blocks will only get
- worse as time goes on.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bustek742a-eisa-scsi">
- <para>FreeBSD does not recognize my Bustek 742a EISA SCSI!</para>
- </question>
-
- <answer>
- <para>This info is specific to the 742a but may also cover
- other Buslogic cards. (Bustek = Buslogic)</para>
-
- <para>There are 2 general <quote>versions</quote> of the 742a
- card. They are hardware revisions A-G, and revisions H -
- onwards. The revision letter is located after the Assembly
- number on the edge of the card. The 742a has 2 ROM chips on it,
- one is the BIOS chip and the other is the Firmware chip.
- FreeBSD doesn't care what version of BIOS chip you have but it
- does care about what version of firmware chip. Buslogic will
- send upgrade ROMS out if you call their tech support dept. The
- BIOS and Firmware chips are shipped as a matched pair. You must
- have the most current Firmware ROM in your adapter card for
- your hardware revision.</para>
-
- <para>The REV A-G cards can only accept BIOS/Firmware sets up to
- 2.41/2.21. The REV H- up cards can accept the most current
- BIOS/Firmware sets of 4.70/3.37. The difference between the
- firmware sets is that the 3.37 firmware supports <quote>round
- robin</quote></para>
-
- <para>The Buslogic cards also have a serial number on them. If
- you have a old hardware revision card you can call the Buslogic
- RMA department and give them the serial number and attempt to
- exchange the card for a newer hardware revision. If the card is
- young enough they will do so.</para>
-
- <para>FreeBSD 2.1 only supports Firmware revisions 2.21 onward.
- If you have a Firmware revision older than this your card will
- not be recognized as a Buslogic card. It may be recognized as
- an Adaptec 1540, however. The early Buslogic firmware contains
- an AHA1540 <quote>emulation</quote> mode. This is not a good
- thing for an EISA card, however.</para>
-
- <para>If you have an old hardware revision card and you obtain
- the 2.21 firmware for it, you will need to check the position
- of jumper W1 to B-C, the default is A-B.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="hpnetserver-scsi-failure">
- <para>My HP Netserver's SCSI controller is not detected!</para>
- </question>
-
- <answer>
- <para>This is basically a known problem. The EISA on-board SCSI
- controller in the HP Netserver machines occupies EISA slot
- number 11, so all the <quote>true</quote> EISA slots are in
- front of it. Alas, the address space for EISA slots &gt;= 10
- collides with the address space assigned to PCI, and FreeBSD's
- auto-configuration currently cannot handle this situation very
- well.</para>
-
- <para>So now, the best you can do is to pretend there is no
- address range clash :), by bumping the kernel option
- <literal>EISA_SLOTS</literal> to a value of 12. Configure and
- compile a kernel, as described in the <ulink
- URL="../handbook/kernelconfig.html">Handbook entry on
- configuring the kernel</ulink>.</para>
-
- <para>Of course, this does present you with a chicken-and-egg
- problem when installing on such a machine. In order to work
- around this problem, a special hack is available inside
- <emphasis>UserConfig</emphasis>. Do not use the
- <quote>visual</quote> interface, but the plain command-line
- interface there. Simply type</para>
-
- <programlisting>eisa 12
-quit</programlisting>
-
- <para>at the prompt, and install your system as usual. While
- it's recommended you compile and install a custom kernel
- anyway,</para>
-
- <para>Hopefully, future versions will have a proper fix for
- this problem.</para>
-
- <para>
- <note>
- <para>You can not use a
- <emphasis remap=bf>dangerously dedicated</emphasis> disk
- with an HP Netserver. See <link linkend="dedicate">this
- note</link> for more info.</para>
- </note></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cmd640-ide">
- <para>What's up with this CMD640 IDE controller?</para>
- </question>
-
- <answer>
- <para>It's broken. It cannot handle commands on both channels
- simultaneously.</para>
-
- <para>There's a workaround available now and it is enabled
- automatically if your system uses this chip. For the details
- refer to the manual page of the disk driver (man 4 wd).</para>
-
- <para>If you're already running FreeBSD 2.2.1 or 2.2.2 with a
- CMD640 IDE controller and you want to use the second channel,
- build a new kernel with <literal>options "CMD640"</literal>
- enabled. This is the default for 2.2.5 and later.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ed1-timeout">
- <para>I keep seeing messages like
- <literal>ed1: timeout</literal>.</para>
- </question>
-
- <answer>
- <para>This is usually caused by an interrupt conflict (e.g.,
- two boards using the same IRQ). FreeBSD prior to 2.0.5R used to
- be tolerant of this, and the network driver would still
- function in the presence of IRQ conflicts. However, with 2.0.5R
- and later, IRQ conflicts are no longer tolerated. Boot with the
- -c option and change the ed0/de0/... entry to match your
- board.</para>
-
- <para>If you're using the BNC connector on your network card,
- you may also see device timeouts because of bad termination. To
- check this, attach a terminator directly to the NIC (with no
- cable) and see if the error messages go away. </para>
-
- <para>Some NE2000 compatible cards will give this error if there
- is no link on the UTP port or if the cable is disconnected.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-cd-superblock">
- <para>When I mount a CDROM, I get
- <literal>Incorrect super block</literal>.</para>
- </question>
-
- <answer>
- <para>You have to tell <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?mount(8)">mount</ulink>
- the type of the device that you want to mount. By default,
- <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?mount(8)">mount(8)</ulink>
- will assume the filesystem is of type <literal>ufs</literal>.
- You want to mount a CDROM filesystem, and you do this by
- specifying the <option>-t cd9660</option> option to <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?mount(8)">
- mount(8)</ulink>. This does, of course, assume that the
- CDROM contains an ISO 9660 filesystem, which is what most CDROMs
- have. As of 1.1R, FreeBSD automatically understands the Rock
- Ridge (long filename) extensions as well.</para>
-
- <para>As an example, if you want to mount the CDROM device,
- <filename>/dev/cd0c</filename>, under <filename>/mnt</filename>,
- you would execute:</para>
-
- <screen>&prompt.root; <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput></screen>
-
- <para>Note that your device name (<filename>/dev/cd0c</filename>
- in this example) could be different, depending on the CDROM
- interface. Note that the <option>-t cd9660</option> option just
- causes the <command>mount_cd9660</command> command to be
- executed, and so the above example could be shortened
- to:</para>
-
- <screen>&prompt.root; <userinput>mount_cd9660 /dev/cd0c /mnt</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cdrom-not-configured">
- <para>When I mount a CDROM, I get
- <literal>Device not configured</literal>.</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. Feed the drive
- something, and/or check its master/slave status if it is IDE
- (ATAPI). It can take a couple of seconds for a CDROM drive to
- notice that it's been fed, so be patient.</para>
-
- <para>Sometimes a SCSI CD-ROM may be missed because it hadn't
- enough time to answer the bus reset. If you have a SCSI CD-ROM
- please try to add the following symbol into your kernel
- configuration file and recompile.</para>
-
- <programlisting>options "SCSI_DELAY=15"</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cdrom-unicode-filenames">
- <para>When I mount a CDROM, all non-English characters in
- filenames show up as <quote>?</quote>.</para>
- </question>
-
- <answer>
- <para>Most likely your CDROM uses the <quote>Joilet</quote>
- extention for storing information about files and directories.
- This extension specifies that all filenames are stored using
- Unicode two-byte characters. Currently, efforts are under way
- to introduce a generic Unicode interface into the FreeBSD
- kernel, but since that isn't ready yet, the CD9660 driver does
- not have the ability to decode the characters in the
- filenames.</para>
-
- <para>As a temporary solution, starting with FreeBSD 4.3, a
- special hook has been added into the CD9660 driver to allow the
- user to load an appropriate conversion table on the fly.
- Modules for some of the common encodings are available via the
- <filename>sysutils/cd9660_unicode</filename> port.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="printer-slow">
- <para>My printer is ridiculously slow. What can I do?</para>
- </question>
-
- <answer>
- <para>If it's parallel, and the only problem is that it's terribly
- slow, try setting your printer port into <quote>polled</quote>
- mode:</para>
-
- <screen>&prompt.root; <userinput>lptcontrol -p</userinput></screen>
-
- <para>Some newer HP printers are claimed not to work correctly in
- interrupt mode, apparently due to some (not yet exactly
- understood) timing problem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="signal11">
- <para>My programs occasionally die with
- <literal>Signal 11</literal> errors.</para>
- </question>
-
- <answer>
- <para>Signal 11 errors are caused when your process has attempted
- to access memory which the operating system has not granted it
- access to. If something like this is happening at seemingly
- random intervals then you need to start investigating things
- very carefully.</para>
-
- <para>These problems can usually be attributed to either:</para>
-
- <orderedlist>
- <listitem>
- <para>If the problem is occurring only in a specific
- application that you are developing yourself it is probably
- a bug in your code.</para>
- </listitem>
-
- <listitem>
- <para>If it's a problem with part of the base FreeBSD system,
- it may also be buggy code, but more often than not these
- problems are found and fixed long before us general FAQ
- readers get to use these bits of code (that's what -current
- is for).</para>
- </listitem>
- </orderedlist>
-
- <para>In particular, a dead giveaway that this is *not* a FreeBSD
- bug is if you see the problem when you're compiling a program,
- but the activity that the compiler is carrying out changes
- each time.</para>
-
- <para>For example, suppose you're running <quote>make buildworld</quote>, and
- the compile fails while trying to compile ls.c in to ls.o. If
- you next run <quote>make buildworld</quote> again, and the compile fails in
- the same place then this is a broken build -- try updating your
- sources and try again. If the compile fails elsewhere then this
- is almost certainly hardware.</para>
-
- <para>What you should do:</para>
-
- <para>In the first case you can use a debugger e.g. gdb to find
- the point in the program which is attempting to access a bogus
- address and then fix it.</para>
-
- <para>In the second case you need to verify that it's not your
- hardware at fault.</para>
-
- <para> Common causes of this include :</para>
-
- <orderedlist>
- <listitem>
- <para>Your hard disks might be overheating: Check the fans in
- your case are still working, as your disk (and perhaps
- other hardware might be overheating).</para>
- </listitem>
-
- <listitem>
- <para>The processor running is overheating: This might be
- because the processor has been overclocked, or the fan on
- the processor might have died. In either case you need to
- ensure that you have hardware running at what it's
- specified to run at, at least while trying to solve this
- problem. i.e. Clock it back to the default settings.</para>
-
- <para>If you are overclocking then note that it's far cheaper
- to have a slow system than a fried system that needs
- replacing! Also the wider community is not often
- sympathetic to problems on overclocked systems, whether you
- believe it's safe or not.</para>
- </listitem>
-
- <listitem>
- <para>Dodgy memory: If you have multiple memory SIMMS/DIMMS
- installed then pull them all out and try running the
- machine with each SIMM or DIMM individually and narrow the
- problem down to either the problematic DIMM/SIMM or perhaps
- even a combination.</para>
- </listitem>
-
- <listitem>
- <para>Over-optimistic Motherboard settings: In your BIOS
- settings, and some motherboard jumpers you have options to
- set various timings, mostly the defaults will be
- sufficient, but sometimes, setting the wait states on RAM
- too low, or setting the <quote>RAM Speed: Turbo</quote> option, or
- similar in the BIOS will cause strange behaviour. A
- possible idea is to set to BIOS defaults, but it might be
- worth noting down your settings first!</para>
- </listitem>
-
- <listitem>
- <para>Unclean or insufficient power to the motherboard. If you
- have any unused I/O boards, hard disks, or CDROMs in your
- system, try temporarily removing them or disconnecting the
- power cable from them, to see if your power supply can
- manage a smaller load. Or try another power supply,
- preferably one with a little more power (for instance, if
- your current power supply is rated at 250 Watts try one
- rated at 300 Watts).</para>
- </listitem>
-
- </orderedlist>
-
- <para>You should also read the SIG11 FAQ (listed below) which has
- excellent explanations of all these problems, albeit from a
- Linux viewpoint. It also discusses how memory testing software
- or hardware can still pass faulty memory.</para>
-
- <para>Finally, if none of this has helped it is possible that
- you've just found a bug in FreeBSD, and you should follow the
- instructions to send a problem report.</para>
-
- <para>There's an extensive FAQ on this at <ulink
- URL="http://www.bitwizard.nl/sig11/">
- the SIG11 problem FAQ</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="screen-loses-sync">
- <para>When I boot, the screen goes black and loses sync!</para>
- </question>
-
- <answer>
- <para>This is a known problem with the ATI Mach 64 video card.
- The problem is that this card uses address
- <literal>2e8</literal>, and the fourth serial port does too.
- Due to a bug (feature?) in the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?sio(4)">sio(4)</ulink>
- driver it will touch this port even if you don't have the
- fourth serial port, and <emphasis remap=bf>even</emphasis> if
- you disable sio3 (the fourth port) which normally uses this
- address.</para>
-
- <para>Until the bug has been fixed, you can use this
- workaround:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>Enter <option>-c</option> at the bootprompt.
- (This will put the kernel into configuration mode).</para>
- </listitem>
-
- <listitem>
- <para>Disable <devicename>sio0</devicename>,
- <devicename>sio1</devicename>,
- <devicename>sio2</devicename> and
- <devicename>sio3</devicename> (all of them). This way
- the sio driver doesn't get activated -&gt; no
- problems.</para>
- </listitem>
-
- <listitem>
- <para>Type exit to continue booting.</para>
- </listitem>
- </orderedlist></para>
-
- <para>If you want to be able to use your serial ports, you'll
- have to build a new kernel with the following modification: in
- <filename>/usr/src/sys/i386/isa/sio.c</filename> find the one
- occurrence of the string <literal>0x2e8</literal> and remove
- that string and the preceding comma (keep the trailing comma).
- Now follow the normal procedure of building a new
- kernel.</para>
-
- <para>Even after applying these workarounds, you may still find
- that the X Window System does not work properly. If this is the
- case, make sure that the XFree86 version you are using is at
- least XFree86 3.3.3 or higher. This version and upwards has
- built-in support for the Mach64 cards and even a dedicated X
- server for those cards.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reallybigram">
- <para>I have 128 MB of RAM but the system only uses 64 MB.</para>
- </question>
-
- <answer>
- <para>Due to the manner in which FreeBSD gets the memory size
- from the BIOS, it can only detect 16 bits worth of Kbytes in
- size (65535 Kbytes = 64MB) (or less... some BIOSes peg the
- memory size to 16M). If you have more than 64MB, FreeBSD will
- attempt to detect it; however, the attempt may fail.</para>
-
- <para>To work around this problem, you need to use the kernel
- option specified below. There is a way to get complete memory
- information from the BIOS, but we don't have room in the
- bootblocks to do it. Someday when lack of room in the
- bootblocks is fixed, we'll use the extended BIOS functions to
- get the full memory information...but for now we're stuck with
- the kernel option.</para>
-
- <para><literal>options "MAXMEM=<replaceable>n</replaceable>"</literal></para>
-
- <para>Where <replaceable>n</replaceable> is your memory in
- Kilobytes. For a 128 MB machine, you'd want to use
- <literal>131072</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="panic-kmemmap-too-small">
- <para>FreeBSD 2.0 panics with
- <literal>kmem_map too small!</literal></para>
- </question>
-
- <answer>
-
- <para>
- <note>
- <para>The message may also be
- <literal>mb_map too small!</literal></para>
- </note></para>
-
- <para>The panic indicates that the system ran out of virtual
- memory for network buffers (specifically, mbuf clusters). You
- can increase the amount of VM available for mbuf clusters by
- adding:</para>
-
- <para><literal>options "NMBCLUSTERS=<replaceable>n</replaceable>"</literal></para>
-
- <para>to your kernel config file, where
- <replaceable>n</replaceable> is a number in the range 512-4096,
- depending on the number of concurrent TCP connections you need
- to support. I'd recommend trying 2048 - this should get rid of
- the panic completely. You can monitor the number of mbuf
- clusters allocated/in use on the system with <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?netstat(1)">netstat
- -m</ulink>. The default value for NMBCLUSTERS is <literal>512 +
- MAXUSERS * 16</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cmap-busy-panic">
- <para><literal>CMAP busy panic</literal> when rebooting with a
- new kernel.</para>
- </question>
-
- <answer>
- <para>The logic that attempts to detect an out of date
- <filename>/var/db/kvm_*.db</filename> files sometimes fails
- and using a mismatched file can sometimes lead to panics.</para>
-
- <para>If this happens, reboot single-user and do:</para>
-
- <screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="brkadrint-illegal-host-access">
- <para>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</para>
- </question>
-
- <answer>
- <para>This is a conflict with an Ultrastor SCSI Host Adapter.</para>
-
- <para>During the boot process enter the kernel configuration
- menu and disable <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?uha(4)">uha0</ulink>,
- which is causing the problem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mail-loopback">
- <para>Sendmail says
- <literal>mail loops back to myself</literal></para>
- </question>
-
- <answer>
- <para>This is answered in the sendmail FAQ as follows:-</para>
-
- <para>
-<literallayout> * I'm getting "Local configuration error" messages, such as:
-
- 553 relay.domain.net config error: mail loops back to myself
- 554 &lt;user@domain.net&gt;... Local configuration error
-
- How can I solve this problem?
-
- You have asked mail to the domain (e.g., domain.net) to be
- forwarded to a specific host (in this case, relay.domain.net)
- by using an MX record, but the relay machine doesn't recognize
- itself as domain.net. Add domain.net to /etc/sendmail.cw
- (if you are using FEATURE(use_cw_file)) or add "Cw domain.net"
- to /etc/sendmail.cf.
- </literallayout></para>
-
- <para>The current version of the <ulink
- URL="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">sendmail
- FAQ</ulink> is no longer maintained with the sendmail release.
- It is however regularly posted to <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>, and <ulink
- URL="news:news.answers">news.answers</ulink>. You can also
- receive a copy via email by sending a message to
- <email>mail-server@rtfm.mit.edu</email> with the command
- <literal>send usenet/news.answers/mail/sendmail-faq</literal>
- as the body of the message.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="remote-fullscreen">
- <para>Full screen applications on remote machines misbehave</para>
- </question>
-
- <answer>
- <para>The remote machine may be setting your terminal type
- to something other than the <literal>cons25</literal> terminal
- type required by the FreeBSD console.</para>
-
- <para>There are a number of possible work-arounds for this
- problem:
- <itemizedlist>
- <listitem>
- <para>After logging on to the remote machine, set your
- TERM shell variable to <literal>ansi</literal> or
- <literal>sco</literal> if the remote machine knows
- about these terminal types.</para>
- </listitem>
-
- <listitem>
- <para>Use a VT100 emulator like <ulink
- URL="http://www.FreeBSD.org/cgi/ports.cgi?screen-">
- screen</ulink> at the FreeBSD console.
- <application>screen</application> offers you the ability
- to run multiple concurrent sessions from one terminal,
- and is a neat program in its own right. Each
- <application>screen</application> window behaves like a
- VT100 terminal, so the TERM variable at the remote end
- should be set to <literal>vt100</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Install the <literal>cons25</literal> terminal
- database entry on the remote machine. The way to do this
- depends on the operating system on the remote machine.
- The system administration manuals for the remote system
- should be able to help you here.</para>
- </listitem>
-
- <listitem>
- <para>Fire up an X server at the FreeBSD end and login to
- the remote machine using an X based terminal emulator
- such as <command>xterm</command> or
- <command>rxvt</command>. The TERM variable at the remote
- host should be set to <literal>xterm</literal> or
- <literal>vt100</literal>.</para>
- </listitem>
- </itemizedlist></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="calcru-negative">
- <para>My machine prints
- <literal>calcru: negative time...</literal></para>
- </question>
-
- <answer>
- <para>This can be caused by various hardware and/or software
- ailments relating to interrupts. It may be due to bugs but can
- also happen by nature of certain devices. Running TCP/IP over
- the parallel port using a large MTU is one good way to provoke
- this problem. Graphics accelerators can also get you here, in
- which case you should check the interrupt setting of the card
- first.</para>
-
- <para>A side effect of this problem are dying processes with the
- message <quote>SIGXCPU exceeded cpu time limit</quote>.</para>
-
- <para>For FreeBSD 3.0 and later from Nov 29, 1998 forward: If the
- problem cannot be fixed otherwise the solution is to set
- this sysctl variable:</para>
-
- <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen>
-
- <para> This means a performance impact, but considering the cause
- of this problem, you probably will not notice. If the problem
- persists, keep the sysctl set to one and set the
- <literal>NTIMECOUNTER</literal> option in your kernel to
- increasingly large values. If by the time you have reached
- <literal>NTIMECOUNTER=20</literal> the problem isn't solved,
- interrupts are too hosed on your machine for reliable
- timekeeping.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pcm0-not-found">
- <para>I see <literal>pcm0 not found</literal> or my sound card is
- found as <literal>pcm1</literal> but I have
- <literal>device pcm0</literal> in my kernel config file</para>
- </question>
-
- <answer>
- <para>This occurs in FreeBSD 3.x with PCI sound cards. The
- <literal>pcm0</literal> device is reserved exclusively for
- ISA-based cards so, if you have a PCI card, then you will see
- this error, and your card will appear as <literal>pcm1</literal>.
-
- <note>
- <para>You cannot remove the warning by simply changing the
- line in the kernel config file to <literal>device
- pcm1</literal> as this will result in
- <literal>pcm1</literal> being reserved for ISA cards and
- your PCI card being found as <literal>pcm2</literal> (along
- with the warning <literal>pcm1 not found</literal>).</para>
- </note>
-
- If you have a PCI sound card you will also have to make the
- <literal>snd1</literal> device rather than
- <literal>snd0</literal>:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV snd1</userinput></screen>
-
- <para>This situation does not arise in FreeBSD 4.x as has a lot
- of work has been done to make the it more
- <emphasis>PnP-centric</emphasis> and the
- <literal>pcm0</literal> device is no longer reserved
- exclusively fo ISA cards</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-not-found">
- <para>My PnP card is no longer found (or found as
- <literal>unknown</literal>) since upgrading to FreeBSD 4.x</para>
- </question>
-
- <answer>
- <para>FreeBSD 4.x is now much more <emphasis>PnP-centric</emphasis>
- and this has had the side effect of some PnP devices (e.g. sound
- cards and internal modems) not working even though they worked
- under FreeBSD 3.x.</para>
-
- <para>The reasons for this behaviour are explained by the following
- e-mail, posted to the freebsd-questions mailing list by Peter
- Wemm, in answer to a question about an internal modem that was
- no longer found after an upgrade to FreeBSD 4.x (the comments
- in <literal>[]</literal> have been added to clarify the
- context.</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>To get the device working again requires finding its PnP id
- and adding it to the list that the ISA probes use to identify
- PnP devices. This is obtained using &man.pnpinfo.8; to probe the
- device, for example this is the output from &man.pnpinfo.8; for
- an internal modem:</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>The information you require is in the
- <quote>Vendor ID</quote> line at the start of the output. The
- hexadecimal number in parentheses (0x3024a341 in this example)
- is the PnP id and the string immediately before this (PMC2430)
- is a unique ASCII id. This information needs adding to the file
- <filename>/usr/src/sys/isa/sio.c</filename>.</para>
-
- <para>You should first make a backup of <filename>sio.c</filename>
- just in case things go wrong. You will also need it to make the
- patch to submit with your PR (you are going to submit a PR,
- aren't you?) then edit <filename>sio.c</filename> and search
- for the line</para>
-
- <programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>
-
- <para>then scroll down to find the correct place to add the entry
- for your device. The entries look like this, and are sorted on
- the ASCII Vendor ID string which should be included in the
- comment to the right of the line of code along with all (if it
- will fit) or part of the <emphasis>Device Description</emphasis>
- from the output of &man.pnpinfo.8;:</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>Add the hexadecimal Vendor ID for your device in the
- correct place, save the file, rebuild your kernel, and reboot.
- Your device should now be found as an <literal>sio</literal>
- device as it was under FreeBSD 3.x</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nlist-failed">
- <para>I get the error <errorname>nlist failed</errorname> when
- running, for example, <command>top</command> or
- <command>systat</command>.</para>
- </question>
-
- <answer>
- <para>The problem is that the application you are trying to run is
- looking for a specific kernel symbol, but, for whatever reason,
- cannot find it; this error stems from one of two problems:</para>
-
- <itemizedlist>
- <listitem>
- <para>Your kernel and userland are not synchronized (i.e., you
- built a new kernel but did not do an
- <maketarget>installworld</maketarget>, or vice versa), and
- thus the symbol table is different from what the user
- application thinks it is. If this is the case, simply
- complete the upgrade process (see
- <filename>/usr/src/UPDATING</filename> for the correct
- sequence).</para>
- </listitem>
-
- <listitem>
- <para>You are not using <command>/boot/loader</command> to load
- your kernel, but doing it directly from boot2 (see
- &man.boot.8;). While there is nothing wrong with bypassing
- <command>/boot/loader</command>, it generally does a better
- job of making the kernel symbols available to user
- applications.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="connection-delay">
- <para>Why does it take so long to connect to my computer via
- &man.ssh.1; or &man.telnet.1;?</para>
- </question>
-
- <answer>
- <para>The symptom: there is a long delay between the time the TCP
- connection is established and the time when the client software
- asks for a password (or, in &man.telnet.1;'s case, when a login
- prompt appears).</para>
-
- <para>The problem: more likely than not, the delay is caused by
- the server software trying to resolve the client's IP address
- into a hostname. Many servers, including the Telnet and SSH
- servers that come with FreeBSD, do this in order to, among
- other things, store the hostname in a log file for future
- reference by the administrator.</para>
-
- <para>The remedy: if the problem occurs whenever you connect from
- your computer (the client) to any server, the problem is with
- the client; likewise, if the problem only occurs when someone
- connects to your computer (the server) the problem is with the
- server.</para>
-
- <para>If the problem is with the client, the only remedy is to
- fix the DNS so the server can resolve it. If this is on a
- local network, consider it a server problem and keep reading;
- conversely, if this is on the global Internet, you will most
- likely need to contact your ISP and ask them to fix it for
- you.</para>
-
- <para>If the problem is with the server, and this is on a local
- network, you need to configure the server to be able to resolve
- address-to-hostname queries for your local address range. See
- the &man.hosts.5; and &man.named.8; manual pages for more
- information. If this is on the global Internet, the problem
- may be that your server's resolver is not functioning
- correctly. To check, try to look up another host--say,
- <hostid>www.yahoo.com</hostid>. If it doesn't work, that's
- your problem.</para>
- </answer>
- </qandaentry>
- <qandaentry>
- <question id="file-table-full">
- <para><errorname>file: table is full</errorname> shows up
- repeatedly in dmesg.
- </para>
- </question>
- <answer>
- <para>
- This error is caused when you have exhausted the number of
- available file descriptors on your system. The file table in
- memory is full.
- </para>
- <para>The solution:</para>
- <para>
- Manually adjust the <varname>kern.maxfiles</varname> kernel limit
- setting.
- </para>
- <screen>&prompt.root; <userinput>sysctl -w kern.maxfiles=n</userinput></screen>
- <para>Adjust <varname>n</varname> according to your system needs.
- Each open file, socket, or fifo uses one file descriptor.
- A large-scale server may easily require tens of thousands of
- file descriptors (10,000+), depending on the kind and number
- of services running concurrently.</para>
- <para>The number of default file descriptors set in the kernel is
- dictated by the</para>
- <programlisting>maxusers 32</programlisting>
- <para><varname>maxusers</varname> line in your kernel
- config file. Increasing this will proportionally increase
- <varname>kern.maxfiles</varname>.
- </para>
- <para>You can see what <varname>kern.maxfiles</varname> is
- currently set to by:
- </para>
- <screen>&prompt.root; <userinput>sysctl kern.maxfiles</userinput>
-kern.maxfiles: 1064
- </screen>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="commercial">
- <title>Commercial Applications</title>
-
- <para>
- <note>
- <para>This section is still very sparse, though we're hoping, of
- course, that companies will add to it! :) The FreeBSD group has
- no financial interest in any of the companies listed here but
- simply lists them as a public service (and feels that commercial
- interest in FreeBSD can have very positive effects on FreeBSD's
- long-term viability). We encourage commercial software vendors to
- send their entries here for inclusion. See <ulink
- URL="http://www.FreeBSD.org/commercial/commercial.html">the
- Vendors page</ulink> for a longer list.</para>
- </note></para>
-
- <qandaset>
- <qandaentry>
- <question id="officesuite">
- <para>Where can I get an Office Suite for FreeBSD?</para>
- </question>
- <answer>
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.wccdrom.com">BSDi</ulink>
- offers a FreeBSD native version of <ulink
- url="http://www.vistasource.com">VistaSource </ulink>
- ApplixWare 5.</para>
-
- <para>ApplixWare is a rich full-featured, commercial
- Office Suite for FreeBSD containing a word processor,
- spreadsheet, presentation program, vector drawing
- package, and other applications.
- </para>
-
- <para>You can purchase ApplixWare for FreeBSD <ulink
- url="http://www.wccdrom.com/titles/freebsd/applix.phtml">here</ulink>.
- </para>
-
- </listitem>
- <listitem>
- <para>The Linux version of <ulink
- url="http://www.sun.com/staroffice">StarOffice</ulink>
- works flawlessly on FreeBSD. The easiest way to
- install the Linux version of StarOffice is through the
- <ulink
- url="../handbook/ports.html">FreeBSD
- Ports collection</ulink>. Future versions of the
- open-source <ulink
- url="http://www.openoffice.org">OpenOffice</ulink>
- suite should work as well.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- <qandaentry>
- <question id="motif">
- <para>Where can I get Motif for FreeBSD?</para>
- </question>
-
- <answer>
- <para>Contact <link linkend="apps2go">Apps2go</link> for the
- least expensive ELF Motif 2.1.20 distribution for FreeBSD
- (either i386 or Alpha).<anchor id="apps2go"></para>
-
- <para>There are two distributions, the <quote>developement
- edition</quote> and the <quote>runtime edition</quote> (for
- much less). These distributions includes:
-
- <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>
-
- <para>Be sure to specify that you want the FreeBSD version of
- Motif when ordering (don't forget to mention the architecture
- you want too)! Versions for NetBSD and OpenBSD are also sold by
- <emphasis>Apps2go</emphasis>. This is currently a FTP only
- download.</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>More info</term>
- <listitem>
- <para><ulink URL="http://www.apps2go.com/">
- Apps2go WWW page</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>or</term>
- <listitem>
- <para><ulink URL="mailto:sales@apps2go.com">
- Sales</ulink> or <ulink
- URL="mailto:support@apps2go.com">Support</ulink>
- email addresses.</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>or</term>
- <listitem>
- <para>phone (817) 431 8775 or +1 817 431-8775</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
-
- <para>Contact <link linkend="metrox">Metro Link</link>
- for an either ELF or a.out Motif 2.1 distribution for
- FreeBSD.</para>
-
- <para>This distribution includes:
- <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 (specify ELF for use
- with FreeBSD 3.0 and later; or a.out for use with FreeBSD
- 2.2.8 and eariler).</para>
- </listitem>
-
- <listitem>
- <para>Demonstration applets.</para>
- </listitem>
-
- <listitem>
- <para>Preformatted man pages.</para>
- </listitem>
-
- </itemizedlist></para>
-
- <para>Be sure to specify that you want the FreeBSD version
- of Motif when ordering! Versions for Linux are also sold by
- <emphasis>Metro Link</emphasis>. This is available on either a
- CDROM or for FTP download.</para>
-
- <para>Contact <link linkend="xig">Xi Graphics</link> for an
- a.out Motif 2.0 distribution for FreeBSD.</para>
-
- <para>This distribution includes:
- <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 eariler).</para>
- </listitem>
-
- <listitem>
- <para>Demonstration applets.</para>
- </listitem>
-
- <listitem>
- <para>Preformatted man pages.</para>
- </listitem>
- </itemizedlist></para>
-
- <para>Be sure to specify that you want the FreeBSD version
- of Motif when ordering! Versions for BSDI and Linux are also
- sold by <emphasis>Xi Graphics</emphasis>. This is currently a 4
- diskette set... in the future this will change to a unified CD
- distribution like their CDE.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cde">
- <para>Where can I get CDE for FreeBSD?</para>
- </question>
-
- <answer>
- <para><link linkend="xig">Xi Graphics</link> used to sell CDE
- for FreeBSD, but no longer do.</para>
-
- <para><ulink URL="http://www.kde.org/">KDE</ulink> is an open
- source X11 desktop which is similar to CDE in many respects.
- You might also like the look and feel of <ulink
- URL="http://www.xfce.org/">xfce</ulink>. KDE and xfce are both
- in the <ulink URL="http://www.FreeBSD.org/ports/">ports
- system</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="commercial-xserver">
- <para>Are there any commercial high-performance X servers?</para>
- </question>
-
- <answer>
- <para>Yes, <ulink URL="http://www.xig.com/">Xi Graphics</ulink>
- and <ulink URL="http://www.metrolink.com/">Metro Link</ulink>
- sells Accelerated-X product for FreeBSD and other Intel based
- systems.</para>
-
- <para>The Metro Link offering is a high performance X Server
- that offers easy configuration using the FreeBSD Package suite
- of tools, support for multiple concurrent video boards and is
- distributed in binary form only, in a convienent FTP download.
- Not to mention the Metro Link offering is available at the very
- reasonable price of $39. <anchor id="metrox"></para>
-
- <para>Metro Link also sells both ELF and a.out Motif for
- FreeBSD (see above).</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>More info</term>
- <listitem>
- <para><ulink URL="http://www.metrolink.com/">
- Metro Link WWW page</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>or</term>
- <listitem>
- <para><ulink URL="mailto:sales@metrolink.com">Sales</ulink>
- or <ulink URL="mailto:tech@metrolink.com">Support</ulink>
- email addresses.</para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>or</term>
- <listitem>
- <para>phone (954) 938-0283 or +1 954 938-0283</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
-
- <para>The Xi Graphics offering is a high performance X Server
- that offers easy configuration, support for multiple concurrent
- video boards and is distributed in binary form only, in a
- unified diskette distribution for FreeBSD and Linux. Xi
- Graphics also offers a high performance X Server taylored for
- laptop support.<anchor id="xig"></para>
-
- <para>There is a free <quote>compatibility demo</quote> of
- version 5.0 available.</para>
-
- <para>Xi Graphics also sells Motif and CDE for FreeBSD (see
- above).</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>More info</term>
- <listitem>
- <para><ulink URL="http://www.xig.com/">
- Xi Graphics WWW page</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>or</term>
- <listitem>
- <para><ulink URL="mailto:sales@xig.com">Sales</ulink>
- or <ulink URL="mailto:support@xig.com">Support</ulink>
- email addresses.</para>
-
- <para></para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>or</term>
- <listitem>
- <para>phone (800) 946 7433 or +1 303 298-7478.</para>
- </listitem>
- </varlistentry>
- </variablelist></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="database-systems">
- <para>Are there any Database systems for FreeBSD?</para>
- </question>
-
- <answer>
- <para>Yes! See the <ulink
- URL="http://www.FreeBSD.org/commercial/software_bycat.html#CATEGORY_DATABASE">
- Commercial Vendors</ulink> section of FreeBSD's Web site.</para>
-
- <para>Also see the <ulink
- URL="http://www.FreeBSD.org/ports/databases.html">
- Databases</ulink> section of the Ports collection.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="oracle-support">
- <para>Can I run Oracle on FreeBSD?</para>
- </question>
-
- <answer>
- <para>Yes. The following pages tell you exactly how to setup
- Linux-Oracle on FreeBSD:</para>
-
- <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></para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="applications">
- <title>User Applications</title>
-
- <qandaset>
- <qandaentry>
- <question id="user-apps">
- <para>So, where are all the user applications?</para>
- </question>
-
- <answer>
- <para>Please take a look at
- <ulink URL="http://www.FreeBSD.org/ports/">the ports
- page</ulink> for info on software packages ported to FreeBSD.
- The list currently tops 3400 and is growing daily, so come back
- to check often or subscribe to the
- <literal>freebsd-announce</literal> <link
- linkend="mailing">mailing list</link> for periodic updates on
- new entries.</para>
-
- <para>Most ports should be available for the 2.2, 3.x and 4.x
- branches, and many of them should work on 2.1.x systems as
- well. Each time a FreeBSD release is made, a snapshot of the
- ports tree at the time of release in also included in the
- <filename>ports/</filename> directory.</para>
-
- <para>We also support the concept of a <quote>package</quote>,
- essentially no more than a gzipped binary distribution with a
- little extra intelligence embedded in it for doing whatever
- custom installation work is required. A package can be
- installed and uninstalled again easily without having to know
- the gory details of which files it includes.</para>
-
- <para>Use the package installation menu in
- <filename>/stand/sysinstall</filename> (under the
- post-configuration menu item) or invoke the
- <command>pkg_add(1)</command> command on the specific package
- files you're interested in installing. Package files can
- usually be identified by their <filename>.tgz</filename> suffix
- and CDROM distribution people will have a
- <filename>packages/All</filename> directory on their CD which
- contains such files. They can also be downloaded over the net
- for various versions of FreeBSD at the following
- locations:</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>for 2.2.8-RELEASE/2.2.8-STABLE</term>
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>for 3.X-RELEASE/3.X-STABLE</term>
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/</ulink></para>
-
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>for 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>for 5.X-CURRENT</term>
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist></para>
-
- <para>or your nearest local mirror site.</para>
-
- <para>Note that all ports may not be available as packages since
- new ones are constantly being added. It is always a good idea
- to check back periodically to see which packages are available
- at the <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>
- master site.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="minimal-sh">
- <para>Why is <command>/bin/sh</command> so minimal? Why doesn't
- FreeBSD use <command>bash</command> or another shell?</para>
- </question>
-
- <answer>
- <para>Because POSIX says that there shall be such a shell.</para>
-
- <para>The more complicated answer: many people need to write shell
- scripts which will be portable across many systems. That's why
- POSIX specifies the shell and utility commands in great detail.
- Most scripts are written in Bourne shell, and because several
- important programming interfaces (&man.make.1;, &man.system.3;,
- &man.popen.3;, and analogues in higher-level scripting
- languages like Perl and Tcl) are specified to use the Bourne
- shell to interpret commands. Because the Bourne shell is so
- often and widely used, it is important for it to be quick to
- start, be deterministic in its behavior, and have a small
- memory footprint.</para>
-
- <para>The existing implementation is our best effort at meeting as
- many of these requirements simultaneously as we can. In order to
- keep <command>/bin/sh</command> small, we have not provided many
- of the convenience features that other shells have. That's why the
- Ports Collection includes more featureful shells like bash, scsh,
- tcsh, and zsh. (You can compare for yourself the memory
- utilization of all these shells by looking at the
- <quote>VSZ</quote> and <quote>RSS</quote> columns in a <command>ps
- -u</command> listing.)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-libcso30">
- <para>Where do I find libc.so.3.0?</para>
- </question>
-
- <answer>
- <para>You are trying to run a package built on 2.2 and later on
- a 2.1.x system. Please take a look at the previous section and
- get the correct port/package for your system.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-libcso40">
- <para>I get a message <literal>Error: can't find
- libc.so.4.0</literal></para>
- </question>
-
- <answer>
-
- <para>You accidently downloaded packages meant for 4.X and 5.X
- systems and attempted to install them on your 2.X or 3.X
- FreeBSD system. Please download the correct version of the
- packages.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="emul">
- <para>ghostscript gives lots of errors with my 386/486SX.</para>
- </question>
-
- <answer>
- <para>You don't have a math co-processor, right?
- You will need to add the alternative math emulator to your
- kernel; you do this by adding the following to your kernel
- config file and it will be compiled in.</para>
-
- <programlisting>options GPL_MATH_EMULATE</programlisting>
-
- <para>
- <note>
- <para>You will need to remove the
- <literal>MATH_EMULATE</literal> option when you do
- this.</para>
- </note></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sco-socksys">
- <para>When I run a SCO/iBCS2 application, it bombs on
- <literal>socksys</literal> (FreeBSD 3.0 and older only).</para>
- </question>
-
- <answer>
- <para>You first need to edit the
- <filename>/etc/sysconfig</filename> (or <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">
- /etc/rc.conf</ulink>) file in the last section to change the
- following variable to <literal>YES</literal>:</para>
-
- <programlisting># Set to YES if you want ibcs2 (SCO) emulation loaded at startup
-ibcs2=NO</programlisting>
-
- <para>It will load the ibcs2 kernel module at startup.</para>
-
- <para>You'll then need to set up /compat/ibcs2/dev to look
- like:</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>You just need socksys to go to <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?null(4)">/dev/null</ulink>
- to fake the open &amp; close. The code in -CURRENT will handle
- the rest. This is much cleaner than the way it was done before.
- If you want the <devicename>spx</devicename> driver for a local
- socket X connection, define <literal>SPX_HACK</literal> when
- you compile the system.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="configure-inn">
- <para>How do I configure INN (Internet News) for my machine?</para>
- </question>
-
- <answer>
- <para>After installing the inn package or port, an excellent
- place to start is <ulink
- URL="http://www.cis.ohio-state.edu/~barr/INN.html">Dave Barr's
- INN Page</ulink> where you'll find the INN FAQ.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ms-frontpage">
- <para>What version of Microsoft FrontPage should I get?</para>
- </question>
-
- <answer>
- <para>Use the Port, Luke! A pre-patched version of Apache is
- available in the ports tree.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="java">
- <para>Does FreeBSD support Java?</para>
- </question>
-
- <answer>
- <para>Yes. Please see <ulink
- URL="http://www.FreeBSD.org/java/">
- http://www.FreeBSD.org/java/</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ports-3x">
- <para>Why can't I build this port on my 3.X-STABLE machine?</para>
- </question>
-
- <answer>
- <para>If you're running a FreeBSD version that lags
- significantly behind -CURRENT or -STABLE, you may need a ports
- upgrade kit from <ulink URL="http://www.FreeBSD.org/ports/">
- http://www.FreeBSD.org/ports/</ulink>. If you are up to date,
- then someone might have committed a change to the port which
- works for -CURRENT but which broke the port for -STABLE. Please
- submit a bug report on this with the
- <command>send-pr(1)</command> command, since the ports
- collection is supposed to work for both the -CURRENT and
- -STABLE branches.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="find-ldso">
- <para>Where do I find ld.so?</para>
- </question>
-
- <answer>
- <para>If you want to run some aout applications like
- Netscape Navigator on an Elf'ened machine such as 3.1-R or
- later, it would need <filename>/usr/libexec/ld.so</filename>
- and some aout libs. They are included in the compat22
- distribution. Use <filename>/stand/sysinstall</filename> or
- <filename>install.sh</filename> in the compat22 subdirectory
- and install it. Also read ERRATAs for 3.1-R and 3.2-R.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ports-update">
- <para>I updated the sources, now how do I update my installed
- ports?</para>
- </question>
-
- <answer>
- <para>Unfortunately, there is no easy way to update installed
- ports. The <command>pkg_version</command> command can be used
- to generate a script that will update the installed ports with
- a newer version in the ports tree:</para>
-
- <screen>&prompt.root; <userinput>pkg_version <option>-c</option> > <replaceable>/tmp/myscript</replaceable></userinput></screen>
-
- <para>The output script <emphasis>must</emphasis> be edited by
- hand before you use it. Current versions of
- <command>pkg_version</command> force this by inserting an
- <command>exit</command> at the beginning of the script.</para>
-
- <para>You should save the output of the script, as it will note
- packages that depend on the one that has been udpated. These
- may or may not need to be updated as well. The usual case where
- they need to be updated is that a shared library has changed
- version numbers, so the ports that used that library need to be
- rebuilt to use the new version.</para>
-
- <para>If your system is up full time, the &man.periodic.8 system
- can be used to generate a weekly list of ports that might need
- updating by setting
- <literal>weekly_status_pkg_enable="YES"</literal> in
- <filename>/etc/periodic.conf</filename>.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="kernelconfig">
- <title>Kernel Configuration</title>
-
- <qandaset>
- <qandaentry>
- <question id="make-kernel">
- <para>I'd like to customize my kernel. Is it difficult?</para>
- </question>
-
- <answer>
- <para>Not at all! Check out the <ulink
- URL="../handbook/kernelconfig.html">
- kernel config section of the Handbook</ulink>.</para>
-
- <para>
- <note>
- <para>It is recommended that you make a dated snapshot
- of your kernel
- in <filename>kernel.YYMMDD</filename> after you get it all
- working, that way if you do something dire the next time
- you play with your configuration you can boot that kernel
- instead of having to go all the way back to
- <filename>kernel.GENERIC</filename>. This is particularly
- important if you're now booting off a controller that isn't
- supported in the GENERIC kernel.</para>
- </note></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-hw-float">
- <para>My kernel compiles fail because
- <literal>_hw_float</literal> is missing.</para>
- </question>
-
- <answer>
- <para>Let me guess. You removed <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?npx(4)">npx0</ulink>
- from your kernel configuration file because you don't have a
- math co-processor, right? Wrong! :-) The
- <devicename>npx0</devicename> is
- <emphasis>MANDATORY</emphasis>. Even if you don't have a
- mathematic co-processor, you <emphasis remap=bf>must</emphasis>
- include the <devicename>npx0</devicename> device.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="why-kernel-big">
- <para>Why is my kernel so big (over 10MB)?</para>
- </question>
-
- <answer>
- <para>Chances are, you compiled your kernel in
- <emphasis>debug mode</emphasis>. Kernels built in debug
- mode contain many symbols that are used for debugging, thus
- greatly increasing the size of the kernel. Note that if you
- running a FreeBSD 3.0 or later system, there will be little
- or no performance decrease from running a debug kernel,
- and it is useful to keep one around in case of a system
- panic.</para>
-
- <para>However, if you are running low on disk space, or
- you simply don't want to run a debug kernel, make sure
- that both of the following are true:</para>
-
- <itemizedlist>
- <listitem>
- <para>You do not have a line in your kernel
- configuration file that reads:</para>
-
- <programlisting>makeoptions DEBUG=-g</programlisting>
- </listitem>
-
- <listitem>
- <para>You are not running <command>config</command> with
- the <option>-g</option> option.</para>
- </listitem>
- </itemizedlist>
-
- <para>Both of the above situations will cause your kernel to
- be built in debug mode. As long as you make sure you follow
- the steps above, you can build your kernel normally, and you
- should notice a fairly large size decrease; most kernels
- tend to be around 1.5MB to 2MB.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="multiport-serial-interrupts">
- <para>Interrupt conflicts with multi-port serial code.</para>
- </question>
-
- <answer>
- <para><emphasis remap=bf>Q.</emphasis> When I compile a kernel
- with multi-port serial code, it tells me that only the first
- port is probed and the rest skipped due to interrupt conflicts.
- How do I fix this?</para>
-
- <para><emphasis remap=bf>A.</emphasis> The problem here is that
- FreeBSD has code built-in to keep the kernel from getting
- trashed due to hardware or software conflicts. The way to fix
- this is to leave out the IRQ settings on all but one port. Here
- is a example:</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>Every kernel I try to build fails to compile; even
- GENERIC.</para>
- </question>
-
- <answer>
- <para>There are a number of possible causes for this problem.
- They are, in no particular order:</para>
-
- <itemizedlist>
- <listitem>
- <para>You are not using the new <command>make
- buildkernel</command> and <command>make
- installkernel</command> targets, and your source tree is
- different from the one used to build the currently running
- system (e.g., you're compiling 4.2-RELEASE on a 4.0-RELEASE
- system). If you're attempting an upgrade, please read the
- <filename>/usr/src/UPDATING</filename> file, paying
- particular attention to the <quote>COMMON ITEMS</quote>
- section at the end.</para>
- </listitem>
-
- <listitem>
- <para>You are using the new <command>make
- buildkernel</command> and <command>make
- installkernel</command> targets, but you failed to assert
- the completion of the <command>make buildworld</command>
- target. The <command>make buildkernel</command> target
- relies on files generated by the <command>make
- buildworld</command> target to complete its job
- correctly.</para>
- </listitem>
-
- <listitem>
- <para>Even if you are trying to build <link
- linkend="stable">FreeBSD-STABLE</link>, it is possible that
- you fetched the source tree at a time when it was either
- being modified, or broken for other reasons; only releases
- are absolutly guaranteed to be buildable, although <link
- linkend="stable">FreeBSD-STABLE</link> builds fine the
- majority of the time. If you have not already done so, try
- re-fetching the source tree and see if the problem goes
- away. Try using a different server in case the one you're
- using is having problems.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="admin">
- <title>System Administration</title>
-
- <qandaset>
- <qandaentry>
- <question id="startup-config-files">
- <para>Where are the system start-up configuration files?</para>
- </question>
-
- <answer>
-
- <para>From 2.0.5R to 2.2.1R, the primary configuration file is
- <filename>/etc/sysconfig</filename>. All the options are to be
- specified in this file and other files such as <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rc(8)">/etc/rc</ulink>
- and <filename>/etc/netstart</filename> just include it.</para>
-
- <para>Look in the <filename>/etc/sysconfig</filename> file and
- change the value to match your system. This file is filled with
- comments to show what to put in there.</para>
-
- <para>In post-2.2.1 and 3.0, <filename>/etc/sysconfig</filename>
- was renamed to a more self-describing <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>
- file and the syntax cleaned up a bit in the process.
- <filename>/etc/netstart</filename> was also renamed to
- <filename>/etc/rc.network</filename> so that all files could be
- copied with a <command><ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?cp(1)">cp</ulink>
- /usr/src/etc/rc* /etc</command> command.</para>
-
- <para>And, in 3.1 and later, <filename>/etc/rc.conf</filename>
- has been moved to <filename>/etc/defaults/rc.conf</filename>.
- <emphasis>Do not edit this file!</emphasis> Instead, if there
- is any entry in <filename>/etc/defaults/rc.conf</filename> that
- you want to change, you should copy the line into
- <filename>/etc/rc.conf</filename> and change it there.</para>
-
- <para>For example, if you wish to start named, the DNS server
- included with FreeBSD in FreeBSD 3.1 or later, all you need to
- do is:</para>
- <screen>&prompt.root; <userinput>echo named_enable="YES" &gt;&gt; /etc/rc.conf</userinput></screen>
-
- <para>To start up local services in FreeBSD 3.1 or later, place
- shell scripts in the <filename>/usr/local/etc/rc.d</filename>
- directory. These shell scripts should be set executable, and
- end with a .sh. In FreeBSD 3.0 and earlier releases, you should
- edit the <filename>/etc/rc.local</filename> file.</para>
-
- <para>The <filename>/etc/rc.serial</filename> is for serial port
- initialization (e.g. locking the port characteristics, and so
- on.).</para>
-
- <para>The <filename>/etc/rc.i386</filename> is for Intel-specifics
- settings, such as iBCS2 emulation or the PC system console
- configuration.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="adding-users">
- <para>How do I add a user easily?</para>
- </question>
-
- <answer>
- <para>Use the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?adduser">adduser</ulink>
- command. For more complicated usage, the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?pw">pw</ulink>
- command.</para>
-
- <para>To remove the user again, use the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rmuser">rmuser</ulink>
- command. Once again, <command>pw</command> will work as
- well.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="adding-disks">
- <para>How can I add my new hard disk to my FreeBSD system?</para>
- </question>
-
- <answer>
- <para>See the Disk Formatting Tutorial at <ulink
- URL="../tutorials/formatting-media/">
- www.FreeBSD.org</ulink>.</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's a removable drive like a ZIP or an EZ drive
- (or even a floppy, if you want to use it that way), or a new
- hard disk, once it's 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><anchor id="disklabel">(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's a ZIP drive or a floppy , you've 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's 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're laid out using
- <command>fdisk</command> or
- <filename>/stand/sysinstall</filename>.</para>
-
- <para>The rest of the examples will be for a ZIP drive on da2,
- the third SCSI disk.</para>
-
- <para>Unless it's a floppy, or a removable you plan on sharing
- with other people, it's probably a better idea to stick a BSD
- file system on it. You'll 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?fdisk">fdisk</ulink> or
- <filename>/stand/sysinstall</filename>, or for a small drive
- that you don't 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>/stand/sysinstall</filename> to create multiple BSD
- partitions. You'll certainly want to do this if you're adding
- swap space on a fixed disk, but it's probably irrelevant on a
- removable drive like a ZIP.</para>
-
- <para>Finally, create a new file system, this one's 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's probably a good idea to add a line like this to
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fstab">
- /etc/fstab</ulink> 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="root-not-found-cron-errors">
- <para>Why do I keep getting messages like <errorname>root: not
- found</errorname> after editing my crontab file?</para>
- </question>
-
- <answer>
- <para>This is normally caused by editing the system crontab
- (<filename>/etc/crontab</filename>) and then using
- &man.crontab.1; to install it:</para>
-
- <screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
-
- <para>This is not the correct way to do things. The system
- crontab has a different format to the per-user crontabs
- which &man.crontab.1; updates (the &man.crontab.5; manual
- page explains the differences in more detail).</para>
-
- <para>If this is what you did, the extra crontab is simply a
- copy of <filename>/etc/crontab</filename> in the wrong
- format it. Delete it with the command:</para>
-
- <screen>&prompt.root; <userinput>crontab -r</userinput></screen>
-
- <para>Next time, when you edit
- <filename>/etc/crontab</filename>, you should not do
- anything to inform &man.cron.8; of the changes, since it
- will notice them automatically.</para>
-
- <para>If you want something to be run once per day, week, or
- month, it's probably better to add shell scripts
- <filename>/usr/local/etc/periodic</filename>, and let the
- &man.periodic.8; command run from the system cron schedule
- it with the other periodic system tasks.</para>
-
- <para>The actual reason for the error is that the system
- crontab has an extra field, specifying which user to run the
- command as. In the default system crontab provided with
- FreeBSD, this is <username>root</username> for all entries.
- When this crontab is used as the <username>root</username>
- user's crontab (which is <emphasis>not</emphasis> the
- same as the system crontab), &man.cron.8; assumes the string
- <literal>root</literal> is the first word of the command to
- execute, but no such command exists.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="rcconf-readonly">
- <para>I made a mistake in <filename>rc.conf</filename>,
- or another startup file, and
- now I can't edit it because the filesystem is read-only.
- What should I do?</para>
- </question>
-
- <answer>
- <para>When you get the prompt to enter the shell
- pathname, simply press <literal>ENTER</literal>, and run
- <command>mount /</command> to re-mount the root filesystem in
- read/write mode. You may also need to run <command>mount -a -t
- ufs</command> to mount the filesystem where your favourite
- editor is defined. If your favourite editor is on a network
- filesystem, you will need to either configure the network
- manually before you can mount network filesystems, or use an
- editor which resides on a local filesystem, such as
- &man.ed.1;.</para>
-
- <para>If you intend to use a full screen editor such
- as &man.vi.1; or &man.emacs.1;, you may also need to
- run <command>export TERM=cons25</command> so that these
- editors can load the correct data from the &man.termcap.5;
- database.</para>
-
- <para>Once you have performed these steps, you can edit
- <filename>/etc/rc.conf</filename> as you usually would
- to fix the syntax error. The error message displayed
- immediately after the kernel boot messages should tell you
- the number of the line in the file which is at fault.</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 /dev, then mount /dev/da1s5:</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>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-foreign-fs">
- <para>Can I mount other foreign filesystems under FreeBSD?</para>
- </question>
-
- <answer>
- <para><emphasis remap=bf> Digital UNIX</emphasis> 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>
-
- <para><emphasis remap=bf> Linux</emphasis>: 2.2 and later have
- support for <emphasis remap=bf>ext2fs</emphasis> partitions.
- See <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?mount_ext2fs">mount_ext2fs</ulink>
- for more information.</para>
-
- <para><emphasis remap=bf> NT</emphasis>: A read-only NTFS driver
- exists for FreeBSD. For more information, see this tutorial by
- Mark Ovens at
- <ulink URL="http://ukug.uk.freebsd.org/~mark/ntfs_install.html">
- http://ukug.uk.freebsd.org/~mark/ntfs_install.html</ulink>.</para>
-
- <para>Any other information on this subject would be
- appreciated.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nt-bootloader">
- <para>How can I use the NT loader to boot FreeBSD?</para>
- </question>
-
- <answer>
- <para>This procedure is slightly different for 2.2.x and 3.x
- (with the 3-stage boot) systems.</para>
-
- <para>The general idea is that you copy the first sector of your
- native root FreeBSD partition into a file in the DOS/NT
- 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>For 2.2.x systems this procedure assumes that DOS, NT,
- FreeBSD, or whatever have been installed into their respective
- fdisk partitions on the <emphasis remap=bf>same</emphasis>
- disk. This example was tested on a system where DOS &amp; NT
- were on the first fdisk partition, and FreeBSD on the second.
- FreeBSD was also set up to boot from its native partition, not
- the disk's MBR.</para>
-
- <para>Mount a DOS-formatted floppy (if you've converted to NTFS)
- or the FAT partition, under, say,
- <filename>/mnt</filename>.</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1</userinput></screen>
-
- <para>Reboot into DOS or NT. NTFS users copy the
- <filename>bootsect.bsd</filename> and/or the
- <filename>bootsect.lnx</filename> file from the floppy to
- <filename>C:\</filename>. Modify the attributes (permissions)
- on <filename>boot.ini</filename> with:</para>
-
- <screen><prompt>C:\&gt;</prompt> <userinput>attrib -s -r c:\boot.ini</userinput></screen>
-
- <para>Edit to add the appropriate entries from the example
- <filename>boot.ini</filename> above, and restore the
- attributes:</para>
-
- <screen><prompt>C:\&gt;</prompt> <userinput>attrib +s +r c:\boot.ini</userinput></screen>
-
- <para>If FreeBSD is booting from the MBR, restore it with the DOS
- <command>fdisk</command> command after you reconfigure them to
- boot from their native partitions.</para>
-
- <para>For FreeBSD 3.x systems the procedure is somewhat
- simpler.</para>
-
- <para>If FreeBSD is installed on the same disk as the NT 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.
-
- <warning>
- <para>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!</para>
- </warning>
-
- <filename>/boot/boot0</filename> needs to be installed using
- sysinstall 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>
-
- <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>:
- <programlisting>other=/dev/hda2
- table=/dev/hda
- label=FreeBSD</programlisting>
-
- (the above assumes that your FreeBSD slice is known to Linux
- as <filename>/dev/hda2</filename>; tailor to suit your setup).
- Then, run <command>lilo</command> as root 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:
- <programlisting>other=/dev/dab4
- table=/dev/dab
- loader=/boot/chain.b
- label=FreeBSD</programlisting></para>
-
- <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>On FreeBSD 2.2.5 and later, you can configure <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?boot(8)">boot(8)</ulink>
- 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're running Windows-95 and Linux this is recommended
- anyway, to make it simpler to get Linux booting again if you
- should need to reinstall Windows95 (which is a Jealous
- Operating System, and will bear no other Operating Systems in
- the Master Boot Record).</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
- harddisk(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 doesn't 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 BIOSsen, including those from
- AWARD (eg. 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 isn't a complete list, there
- are more. Symptoms of this confusion include the <quote>read
- error</quote> message printed by the FreeBSD bootstrap when it
- can't 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 won't 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's 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're 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. Don't 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're slicing up your disk, check that the disk
- geometry displayed in the FDISK screen is correct (ie. it
- matches the BIOS numbers); if it's wrong, use the
- <literal>g</literal> key to fix it. You may have to do this if
- there's 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're going to boot from; FreeBSD will sort
- itself out just fine with any other disks you may have.</para>
-
- <para>Once you've 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 <quote>read
- error</quote> message when you try to boot, it's time to cross
- your fingers and go for it - there's 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="add-swap-space">
- <para>How can I add more swap space?</para>
- </question>
-
- <answer>
-
- <para>The best way is to increase the size of your swap partition,
- or take advantage of this convenient excuse to add another
- disk. The general rule of thumb is to have around 2x the swap
- space as you have main memory. However, if you have a very
- small amount of main memory you may want to configure swap
- beyond that. It is also a good idea to configure sufficient
- swap relative to anticipated future memory upgrades so you do
- not have to futz with your swap configuration later.</para>
-
- <para>Adding swap onto a separate disk makes things faster than
- simply adding swap onto the same disk. As an example, if you
- are compiling source located on one disk, and the swap is on
- another disk, this is much faster than both swap and compile on
- the same disk. This is true for SCSI disks specifically.</para>
-
- <para>When you have several disks, configuring a swap partition on
- each one is usually beneficial, even if you wind up putting
- swap on a work disk. Typically, each fast disk in your system
- should have some swap configured. FreeBSD supports up to 4
- interleaved swap devices by default. When configuring multiple
- swap partitions you generally want to make them all about the
- same size, but people sometimes make their primary swap
- parition larger in order to accomodate a kernel core dump. Your
- primary swap partition must be at least as large as main memory
- in order to be able to accomodate a kernel core.</para>
-
- <para>IDE drives are not able to allow access to both drives on
- the same channel at the same time (FreeBSD doesn't support mode
- 4, so all IDE disk I/O is <quote>programmed</quote>).
- It is still suggested that you put your swap partition on a
- separate driver, however: the drives are so cheap, it is not
- worth worrying about.</para>
-
- <para>Swapping over NFS is only recommended if you do not have a
- local disk to swap to. Swapping over NFS is slow and
- inefficient in FreeBSD releases prior to 4.x, but reasonably
- fast in releases greater or equal to 4.0. Even so, it will be
- limited to the network bandwidth available and puts an
- additional burden on the NFS server.</para>
-
- <para>Here is an example for 64Mb vn-swap
- (<filename>/usr/swap0</filename>, though of course you can use
- any name that you want).</para>
-
- <para>Make sure your kernel was built with the line</para>
-
- <programlisting>pseudo-device vn 1 #Vnode driver (turns a file into a device)</programlisting>
-
- <para>in your config-file. The GENERIC kernel already contains
- this.</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>create a vn-device</para>
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV vn0</userinput></screen>
-
- </listitem>
-
- <listitem>
- <para>create a swapfile
- (<filename>/usr/swap0</filename>)</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput></screen>
-
- </listitem>
-
- <listitem>
- <para>set proper permissions on
- (<filename>/usr/swap0</filename>)</para>
-
- <screen>&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput></screen>
-
- </listitem>
-
- <listitem>
- <para>enable the swap file in
- <filename>/etc/rc.conf</filename></para>
-
- <programlisting>swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.</programlisting>
-
- </listitem>
-
- <listitem>
- <para>reboot the machine</para>
- </listitem>
- </orderedlist></para>
-
- <para>To enable the swap file immediately, type</para>
-
- <screen>&prompt.root; <userinput>vnconfig -ce /dev/vn0c /usr/swap0 swap</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="printer-setup">
- <para>I'm having problems setting up my printer.</para>
- </question>
-
- <answer>
-
- <para>Please have a look at the Handbook entry on printing. It
- should cover most of your problem. See the <ulink
- URL="../handbook/printing.html">
- Handbook entry on printing.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="keyboard-mappings">
- <para>The keyboard mappings are wrong for my system.</para>
- </question>
-
- <answer>
- <para>The kbdcontrol program has an option to load a keyboard
- map file. Under <filename>/usr/share/syscons/keymaps</filename>
- are a number of map files. Choose the one relevant to your
- system and load it.</para>
-
- <screen>&prompt.root; <userinput>kbdcontrol -l uk.iso</userinput></screen>
-
- <para>Both the <filename>/usr/share/syscons/keymaps</filename>
- and the <filename>.kbd</filename> extension are assumed by
- <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?kbdcontrol">
- kbdcontrol</ulink>.</para>
-
- <para>This can be configured in <filename>/etc/sysconfig</filename>
- (or <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">
- rc.conf</ulink>). See the appropriate comments in this
- file.</para>
-
- <para>In 2.0.5R and later, everything related to text fonts,
- keyboard mapping is in
- <filename>/usr/share/examples/syscons</filename>.</para>
-
- <para>The following mappings are currently supported:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Belgian ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Brazilian 275 keyboard Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>Brazilian 275 keyboard ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Danish Codepage 865 </para>
- </listitem>
-
- <listitem>
- <para>Danish ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>French ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>German Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>German ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Italian ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Japanese 106 </para>
- </listitem>
-
- <listitem>
- <para>Japanese 106x </para>
- </listitem>
-
- <listitem>
- <para>Latin American </para>
- </listitem>
-
- <listitem>
- <para>Norwegian ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Polish ISO-8859-2 (programmer's) </para>
- </listitem>
-
- <listitem>
- <para>Russian Codepage 866 (alternative) </para>
- </listitem>
-
- <listitem>
- <para>Russian koi8-r (shift) </para>
- </listitem>
-
- <listitem>
- <para>Russian koi8-r </para>
- </listitem>
-
- <listitem>
- <para>Spanish ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Swedish Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>Swedish ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Swiss-German ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>United Kingdom Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>United Kingdom ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>United States of America ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>United States of America dvorak </para>
- </listitem>
-
- <listitem>
- <para>United States of America dvorakx </para>
- </listitem>
- </itemizedlist></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-resources">
- <para>I get messages like: <errorname>unknown: &lt;PNP0303> can't
- assign resources</errorname> on boot</para>
- </question>
-
- <answer>
- <para>These indicate Plug-and-Play devices that the current
- kernel doesn't have drivers for. They're harmless.</para>
-
- <para>If you dislike these messages, the FreeBSD Project
- will happily accept driver contributions via send-pr.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="user-quotas">
- <para>I can't get user quotas to work properly.</para>
- </question>
-
- <answer>
-
- <para>
- <orderedlist>
- <listitem>
- <para>Don't turn on quotas on <filename>/</filename>,</para>
- </listitem>
-
- <listitem>
- <para>Put the quota file on the file system that the quotas
- are to be enforced on. ie:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Filesystem</entry>
- <entry>Quota file</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></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="inappropriate-ccd">
- <para>What's 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't I 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's 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="sysv-ipc">
- <para>Does FreeBSD support System V IPC primitives?</para>
- </question>
-
- <answer>
- <para>Yes, FreeBSD supports System V-style IPC. This includes
- shared memory, messages and semaphores. You need to add the
- following lines to your kernel config to enable them.</para>
-
- <programlisting>options SYSVSHM
-options SYSVSHM # enable shared memory
-options SYSVSEM # enable for semaphores
-options SYSVMSG # enable for messaging</programlisting>
-
- <para>
- <note>
- <para>In FreeBSD 3.2 and later, these options are already
- part of the <emphasis>GENERIC</emphasis> kernel, which
- meansthey should already be compiled into your
- system.</para>
- </note></para>
-
- <para>Recompile and install your kernel.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uucpmail">
- <para>How do I use sendmail for mail delivery with UUCP?</para>
- </question>
-
- <answer>
-
- <para>The sendmail configuration that ships with FreeBSD is
- suited for sites that connect directly to the Internet.
- Sites that wish to exchange their mail via UUCP must install
- another sendmail configuration file.</para>
-
- <para>Tweaking <filename>/etc/sendmail.cf</filename> manually is
- considered something for purists. Sendmail version 8 comes with
- a new approach of generating config files via some <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?m4">m4</ulink>
- preprocessing, where the actual hand-crafted configuration is
- on a higher abstraction level. You should use the configuration
- files under
- <filename>/usr/src/usr.sbin/sendmail/cf</filename></para>
-
- <para>If you didn't install your system with full sources,
- the sendmail config stuff has been broken out into a separate
- source distribution tarball just for you. Assuming you've got
- your CD-ROM mounted, do:</para>
-
- <screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
-&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput></screen>
-
- <para>Don't panic, this is only a few hundred kilobytes in size.
- The file <filename>README</filename> in the
- <filename>cf</filename> directory can serve as a basic
- introduction to m4 configuration.</para>
-
- <para>For UUCP delivery, you are best advised to use the
- <literal>mailertable</literal> feature. This constitutes a
- database that sendmail can use to base its routing decision
- upon.</para>
-
- <para>First, you have to create your <filename>.mc</filename>
- file. The directory
- <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> is the
- home of these files. Look around, there are already a few
- examples. Assuming you have named your file
- <filename>foo.mc</filename>, all you need to do in order to
- convert it into a valid <filename>sendmail.cf</filename>
- is:</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/sendmail.cf</userinput></screen>
-
- <para>A typical <filename>.mc</filename> file might look
- like:</para>
-
-
- <programlisting>include(`../m4/cf.m4')
-VERSIONID(`<replaceable>Your version number</replaceable>')
-OSTYPE(bsd4.4)
-
-FEATURE(nodns)
-FEATURE(nocanonify)
-FEATURE(mailertable)
-
-define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
-define(`UUCP_MAX_SIZE', 200000)
-
-MAILER(local)
-MAILER(smtp)
-MAILER(uucp)
-
-Cw <replaceable>your.alias.host.name</replaceable>
-Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting>
-
- <para>The <literal>nodns</literal> and
- <literal>nocanonify</literal> features will prevent any usage
- of the DNS during mail delivery. The
- <literal>UUCP_RELAY</literal> clause is needed for bizarre
- reasons, don't ask. Simply put an Internet hostname there that
- is able to handle .UUCP pseudo-domain addresses; most likely,
- you will enter the mail relay of your ISP there.</para>
-
- <para>Once you've got this, you need this file called
- <filename>/etc/mailertable</filename>. A typical example of
- this gender again:</para>
-
- <programlisting>#
-# makemap hash /etc/mailertable.db &lt; /etc/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>As you can see, this is part of a real-life file. The
- first three lines handle special cases where domain-addressed
- mail should not be sent out to the default route, but instead
- to some UUCP neighbor in order to <quote>shortcut</quote> the
- delivery path. The next line handles mail to the local Ethernet
- domain that can be delivered using SMTP. Finally, the UUCP
- neighbors are mentioned in the .UUCP pseudo-domain notation, to
- allow for a <literal><replaceable>uucp-neighbor
- </replaceable>!<replaceable>recipient</replaceable></literal>
- override of the default rules. The last line is always a single
- dot, matching everything else, with UUCP delivery to a UUCP
- neighbor that serves as your universal mail gateway to the
- world. All of the node names behind the
- <literal>uucp-dom:</literal> keyword must be valid UUCP
- neighbors, as you can verify using the command
- <literal>uuname</literal>.</para>
-
- <para>As a reminder that this file needs to be converted into a
- DBM database file before being usable, the command line to
- accomplish this is best placed as a comment at the top of
- the mailertable. You always have to execute this command
- each time you change your mailertable.</para>
-
- <para>Final hint: if you are uncertain whether some particular
- mail routing would work, remember the <option>-bt</option>
- option to sendmail. It starts sendmail in <emphasis>address
- test mode</emphasis>; simply enter <literal>0 </literal>,
- followed by the address you wish to test for the mail routing.
- The last line tells you the used internal mail agent, the
- destination host this agent will be called with, and the
- (possibly translated) address. Leave this mode by typing
- 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>0 foo@interface-business.de</userinput>
-rewrite: ruleset 0 input: foo @ interface-business . de
-...
-rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \
-&lt; @ interface-business . de &gt;
-<prompt>&gt;</prompt> <userinput>^D</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ispmail">
- <para>How do I set up mail with a dialup connection to the
- 'net?</para>
- </question>
-
- <answer>
- <para>If you've got a statically assigned IP number, you should
- not need to adjust anything from the default. Set your host
- name up as your assigned internet name and sendmail will do
- the rest.</para>
-
- <para>If you've got a dynamically assigned IP number and use a
- dialup <emphasis remap=bf>ppp</emphasis> connection to the
- internet, you will probably be given a mailbox on your ISPs
- mail server. Lets assume your ISPs domain is
- <hostid role="domainname">myISP.com</hostid>, and that your user name is
- <username>user</username>. Lets also assume you've
- called your machine <hostid role="fqdn">bsd.home</hostid> and that your
- ISP has told you that you may use
- <hostid role="fqdn">relay.myISP.com</hostid> as a mail relay.</para>
-
- <para>In order to retrieve mail from your mailbox, you'll need
- to install a retrieval agent. <application>Fetchmail</application> is a good choice as it supports
- many different protocols. Usually, POP3 will be provided by
- your ISP. If you've chosen to use user-ppp, you can
- automatically fetch your mail when a connection to the 'net is
- established with the following entry in
- <filename>/etc/ppp/ppp.linkup</filename>:</para>
-
- <programlisting>MYADDR:
- !bg su user -c fetchmail</programlisting>
-
- <para>If you are using <application>sendmail</application>
- (as shown below) to deliver mail to non-local accounts, put
- the command</para>
-
- <programlisting> !bg su user -c "sendmail -q"</programlisting>
-
- <para>after the above shown entry. This forces <application>sendmail</application> to
- process your mailqueue as soon as the connection to the 'net
- is established.</para>
-
- <para>I'm assuming that you have an account for
- <username>user</username> on
- <hostid role="fqdn">bsd.home</hostid>. In the home directory of
- <username>user</username> on
- <hostid role="fqdn">bsd.home</hostid>, create a
- <filename>.fetchmailrc</filename> file:</para>
-
- <programlisting>poll myISP.com protocol pop3 fetchall pass MySecret</programlisting>
-
- <para>Needless to say, this file should not be readable by
- anyone except <username>user</username> as it contains
- the password <literal>MySecret</literal>.</para>
-
- <para>In order to send mail with the correct
- <literal>from:</literal> header, you must tell
- <application>sendmail</application> to use <literal>user@myISP.com</literal> rather than
- <literal>user@bsd.home</literal>. You may also wish to tell
- <application>sendmail</application> to send all mail via
- <hostid role="fqdn">relay.myISP.com</hostid>, allowing quicker mail
- transmission.</para>
-
- <para>The following <filename>.mc</filename> file should
- suffice:</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(`myISP.com')dnl
-FEATURE(allmasquerade)dnl
-FEATURE(masquerade_envelope)dnl
-FEATURE(nocanonify)dnl
-FEATURE(nodns)dnl
-define(`SMART_HOST', `relay.myISP.com')
-Dmbsd.home
-define(`confDOMAIN_NAME',`bsd.home')dnl
-define(`confDELIVERY_MODE',`deferred')dnl</programlisting>
-
- <para>Refer to the previous section for details of how to turn
- this <filename>.mc</filename> file into a
- <filename>sendmail.cf</filename> file. Also, don't forget to
- restart <application>sendmail</application> after updating <filename>sendmail.cf</filename>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="toor-account">
- <para>What's this UID 0 <username>toor</username> account? Have I
- been compromised?</para>
- </question>
-
- <answer>
- <para>Don't worry. <username>toor</username> is an
- <quote>alternative</quote> superuser account (toor is root
- spelt backwards). Previously it was created when the
- &man.bash.1; shell was installed but now it is created by
- default. It is intended to be used with a non-standard shell so
- you don't have to change <username>root</username>'s default
- shell. This is important as shells which aren't part of the
- base distribution (for example a shell installed from ports or
- packages) are likely be to be installed in
- <filename>/usr/local/bin</filename> which, by default, resides
- on a different filesystem. If <username>root</username>'s shell
- is located in <filename>/usr/local/bin</filename> and
- <filename>/usr</filename> (or whatever filesystem contains
- <filename>/usr/local/bin</filename>) isn't mounted for some
- reason, <username>root</username> won't be able to log in to
- fix a problem (although if you reboot into single user mode
- you'll be prompted for the path to a shell).</para>
-
- <para>Some people use <username>toor</username> for
- day-to-day root tasks with a non-standard shell, leaving
- <username>root</username>, with a standard shell, for
- single user mode or emergencies. By default you can't log
- in using <username>toor</username> as it doesn't have a
- password, so log in as root and set a password for
- <username>toor</username> if you want to use it.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="forgot-root-pw">
- <para>Eek! I forgot the root password!</para>
- </question><answer>
-
- <para>Don't Panic! Simply restart the system, type
- <userinput>boot -s</userinput> at the Boot: prompt (just
- <userinput>-s</userinput> for FreeBSD releases before 3.2) to
- enter Single User mode. At the question about the shell to use,
- hit ENTER. You'll be dropped to a &prompt.root; prompt. Enter
- <command>mount -u /</command> to remount your root filesystem
- read/write, then run <command>mount -a</command> to remount all
- the filesystems. Run <command>passwd root</command> to change
- the root password then run <command>exit</command> to continue
- booting. </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="CAD-reboot">
- <para>How do I keep Control-Alt-Delete from rebooting the
- system?</para>
- </question>
-
- <answer>
-
- <para>If you are using syscons (the default console driver)
- in FreeBSD 2.2.7-RELEASE or later,
- build and install a new kernel with the line</para>
-
- <programlisting>options SC_DISABLE_REBOOT</programlisting>
-
- <para>in the configuration file. If you use the PCVT console
- driver in FreeBSD 2.2.5-RELEASE or later, use the following
- kernel configuration line instead:</para>
-
- <programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
-
- <para>For older versions of FreeBSD, edit the keymap you are
- using for the console and replace the <literal>boot</literal>
- keywords with <literal>nop</literal>. The default keymap is
- <filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>. You
- may have to instruct <filename>/etc/rc.conf</filename> to load
- this keymap explicitly for the change to take effect. Of course
- if you are using an alternate keymap for your country, you
- should edit that one instead.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dos-to-unix-txt">
- <para>How do I reformat DOS text files to UNIX ones?</para>
- </question>
-
- <answer>
-
- <para>Simply use this perl command:</para>
-
- <screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput></screen>
-
- <para>file is the file(s) to process. The modification is done
- in-place, with the original file stored with a .bak
- extension.</para>
-
- <para>Alternatively you can use the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tr">tr</ulink>
- command:</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> is the file
- containing DOS text while <replaceable>unix-file</replaceable>
- will contain the converted output. This can be quite a bit
- faster than using perl.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kill-by-name">
- <para>How do I kill processes by name?</para>
- </question><answer>
-
- <para>Use <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?killall">
- killall</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="root-acl">
- <para>Why is su bugging me about not being in root's ACL?</para>
- </question>
-
- <answer>
-
- <para>The error comes from the Kerberos distributed
- authentication system. The problem isn't fatal but annoying.
- You can either run su with the -K option, or uninstall
- Kerberos as described in the next question.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uninstall-kerberos">
- <para>How do I uninstall Kerberos?</para>
- </question>
-
- <answer>
-
- <para>To remove Kerberos from the system, reinstall the bin
- distribution for the release you are running. If you have
- the CDROM, you can mount the cd (we'll assume on /cdrom)
- and run</para>
-
- <screen>&prompt.root; <userinput>cd /cdrom/bin</userinput>
-&prompt.root; <userinput>./install.sh</userinput></screen>
-
- <para>Alternately, you can remove all "MAKE_KERBEROS"
- options from <filename>/etc/make.conf</filename> and rebuild
- world.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="add-pty">
- <para>How do I add pseudoterminals to the system?</para>
- </question>
-
- <answer>
-
- <para>If you have lots of telnet, ssh, X, or screen users,
- you'll probably run out of pseudoterminals. Here's how to
- add more:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>Build and install a new kernel with the line</para>
-
- <programlisting>pseudo-device pty 256</programlisting>
-
- <para>in the configuration file.</para>
- </listitem>
-
- <listitem>
- <para>Run the commands</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen>
-
- <para>to make 256 device nodes for the new terminals.</para>
-
- </listitem>
-
- <listitem>
- <para>Edit <filename>/etc/ttys</filename> and add lines
- for each of the 256 terminals. They should match the form
- of the existing entries, i.e. they look like</para>
-
- <programlisting>ttyqc none network</programlisting>
-
- <para>The order of the letter designations is
- <literal>tty[pqrsPQRS][0-9a-v]</literal>, using a
- regular expression. </para>
- </listitem>
-
- <listitem>
- <para>Reboot the system with the new kernel and you're
- ready to go.</para>
- </listitem>
- </orderedlist></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="create-snd0">
- <para>I can't create the snd0 device!</para>
- </question>
-
- <answer>
- <para>There is no <devicename>snd</devicename> device. The name
- is used as a shorthand for the various devices that make up the
- FreeBSD sound driver, such as <devicename>mixer</devicename>,
- <devicename>sequencer</devicename>, and
- <devicename>dsp</devicename>.</para>
-
- <para>To create these devices you should</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reread-rc">
- <para>How do I re-read /etc/rc.conf and re-start /etc/rc without
- a reboot?</para>
- </question>
-
- <answer>
-
- <para>Go into single user mode and than back to multi user
- mode.</para>
-
- <para>On the console do:</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="sandbox">
- <para>What is a sandbox?</para>
- </question><answer>
-
- <para><quote>Sandbox</quote> is a security term. It can mean
- two things:</para>
-
- <para>
- <itemizedlist>
- <listitem>
-
- <para>A process which is placed inside a set of virtual
- walls that are designed to prevent someone who breaks
- into the process from being able to break into the wider
- system.</para>
-
- <para>The process is said to be able to
- <command>play</command> inside the walls. That is,
- nothing the process does in regards to executing code is
- supposed to be able to breech the walls so you do not
- have to do a detailed audit of its code to be able to
- say certain things about its security.</para>
-
- <para>The walls might be a userid, for example. This is
- the definition used in the security and named man
- pages.</para>
-
- <para>Take the <literal>ntalk</literal> service, for
- example (see /etc/inetd.conf). This service used to run
- as userid root. Now it runs as userid tty. The tty user
- is a sandbox designed to make it more difficult for
- someone who has successfully hacked into the system via
- ntalk from being able to hack beyond that user id.</para>
- </listitem>
-
- <listitem>
-
- <para>A process which is placed inside a simulation of the
- machine. This is more hard-core. Basically it means that
- someone who is able to break into the process may believe
- that he can break into the wider machine but is, in fact,
- only breaking into a simulation of that machine and not
- modifying any real data.</para>
-
- <para>The most common way to accomplish this is to build a
- simulated environment in a subdirectory and then run the
- processes in that directory chroot'd (i.e.
- <filename>/</filename> for that process is this
- directory, not the real <filename>/</filename> of the
- system).</para>
-
- <para>Another common use is to mount an underlying
- filesystem read-only and then create a filesystem layer
- on top of it that gives a process a seemingly writeable
- view into that filesystem. The process may believe it is
- able to write to those files, but only the process sees
- the effects - other processes in the system do not,
- necessarily.</para>
-
- <para>An attempt is made to make this sort of sandbox so
- transparent that the user (or hacker) does not realize
- that he is sitting in it.</para>
- </listitem>
- </itemizedlist></para>
-
- <para>UNIX implements two core sanboxes. One is at the
- process level, and one is at the userid level.</para>
-
- <para>Every UNIX process is completely firewalled off from every
- other UNIX process. One process can not modify the address
- space of another. This is unlike Windows where a process
- can easily overwrite the address space of any other, leading
- to a crash.</para>
-
- <para>A UNIX process is owned by a patricular userid. If the
- userid is not the root user, it serves to firewall the process
- off from processes owned by other users. The userid is also
- used to firewall off on-disk data.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="securelevel">
- <para>What is securelevel?</para>
- </question>
-
- <answer>
- <para>The securelevel is a security mechanism implemented in the
- kernel. Basically, when the securelevel is positive, the
- kernel restricts certain tasks; not even the superuser (i.e.,
- <username>root</username>) is allowed to do them. At the time
- of this writing, the securelevel mechanism is capable of, among
- other things, limiting the ability to,</para>
-
- <itemizedlist>
- <listitem>
- <para>unset certain file flags, such as
- <literal>schg</literal> (the system immutable flag),</para>
- </listitem>
-
- <listitem>
- <para>write to kernel memory via
- <filename>/dev/mem</filename> and
- <filename>/dev/kmem</filename>,</para>
- </listitem>
-
- <listitem>
- <para>load kernel modules, and</para>
- </listitem>
-
- <listitem>
- <para>alter &man.ipfirewall.4; rules.</para>
- </listitem>
- </itemizedlist>
-
- <para>To check the status of the securelevel on a running system,
- simply execute the following command:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>The output will contain the name of the &man.sysctl.8;
- variable (in this case, <varname>kern.securelevel</varname>)
- and a number. The latter is the current value of the
- securelevel. If it is positive (i.e., greater than 0), at
- least some of the securelevel's protections are enabled.</para>
-
- <para>You cannot lower the securelevel of a running system; being
- able to do that would defeat its purpose. If you need to do a
- task that requires that the securelevel be non-positive (e.g.,
- an <maketarget>installworld</maketarget> or changing the date),
- you will have to change the securelevel setting in
- <filename>/etc/rc.conf</filename> (you want to look for the
- <varname>kern_securelevel</varname> and
- <varname>kern_securelevel_enable</varname> variables) and
- reboot.</para>
-
- <para>For more information on securelevel and the specific things
- all the levels do, please consult the &man.init.8; manual
- page.</para>
-
- <para>
- <warning>
- <para>Securelevel is not a silver bullet; it has many known
- deficiencies. More often than not, it provides a false
- sense of security.</para>
-
- <para>One of its biggest problems is that in order for it to
- be at all effective, all files used in the boot process up
- until the securelevel is set must be protected. If an
- attacker can get the system to execute their code prior to
- the securelevel being set (which happens quite late in the
- boot process since some things the system must do at
- start-up cannot be done at an elevated securelevel), its
- protections are invalidated. While this task of protecting
- all files used in the boot process is not technically
- impossible, if it is achieved, system maintenance will
- become a nightmare since one would have to take the system
- down, at least to single-user mode, to modify a
- configuration file.</para>
-
- <para>This point and others are often discussed on the
- mailing lists, particuarly freebsd-security. Please search
- the archives <ulink
- url="http://www.FreeBSD.org/search/">here</ulink> for an
- extensive discussion. Some people are hopeful that
- securelevel will soon go away in favor of a more
- fine-grained mechanism, but things are still hazy in this
- respect.</para>
-
- <para>Consider yourself warned.</para>
- </warning>
- </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
- <username>operator</username> to mount the cdrom drive,
- use:</para>
-
- <screen>&prompt.root; <userinput>chgrp operator /dev/cd0c</userinput>
-&prompt.root; <userinput>chmod 640 /dev/cd0c</userinput></screen>
- </step>
-
- <step>
- <para>Finally, add the line
- <literal>vfs.usermount=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
- <filename>/dev/fd0</filename> 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 <username>operator</username> can now
- mount the cdrom <filename>/dev/cd0c</filename> onto a
- directory that they own:</para>
-
- <screen>&prompt.user; <userinput> mkdir ~/my-mount-point</userinput>
-&prompt.user; <userinput> mount -t msdos /dev/cd0c ~/my-mount-point</userinput></screen>
-
- <para>Unmounting the device is simple:</para>
-
- <screen>&prompt.user; <userinput>umount <filename>~/my-mount-point</filename></userinput></screen>
-
- <para>Enabling <varname>vfs.usermount</varname>, however, has
- negative security implications. A better way to access MSDOS
- formatted media is to use the <ulink
- URL="http://www.freebsd.org/cgi/ports.cgi?query=%5Emtools-&amp;stype=name">mtools</ulink> package in the ports collection.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="new-huge-disk">
- <para>How do I move my system over to my huge new disk?</para>
- </question>
-
- <answer>
- <para>The best way is to reinstall the OS on the new
- disk, then move the user data over. This is highly
- recommended if you've 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>/stand/sysinstall</filename>, 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. See the <ulink
- url="http://www.freebsd.org/tutorials/formatting-media/index.html">
- formatting-media tutorial</ulink> for details on this
- process.</para>
-
- <para>Now you've got the new disk set up, and are ready
- to move the data. Unfortunately, you can't just blindly
- copy the data. Things like device files (in
- <filename>/dev</filename>) and symbolic links tend to
- screw that up. You need to use tools that understand
- these things, which means &man.dump.8; and &man.tar.1;.
- 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 file system. 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
- <filename>/dev/ad1s1a</filename>, with
- <filename>/mnt</filename> as the temporary mount point,
- it's:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
-&prompt.root; <userinput>mount /dev/ad1s1a</userinput>
-&prompt.root; <userinput>cd /mnt</userinput>
-&prompt.root; <userinput>dump 0uaf - / | restore xf -</userinput></screen>
-
-
- <para>If you are going to rearrange your partitions -
- say, splitting one into two, or combing two into one,
- you may find yourself needing to move everything under
- a subdirectory to a new location. Since &man.dump.8;
- works with file systems, it can't do this. So you use
- &man.tar.1;. The general command to move
- <filename>/old</filename> to <filename>/new</filename>
- for &man.tar.1; is:</para>
-
- <screen>&prompt.root; <userinput>(cd /old; tar cf - .) | (cd /new; tar xpf -)</userinput></screen>
-
- <para>If <filename>/old</filename> has file systems
- mounted on that, and you
- don't want to move that data or unmount them, you just
- add the 'l' flag to the first &man.tar.1;:</para>
-
- <screen>&prompt.root; <userinput>(cd /old; tar clf - .) | (cd /new; tar xpf -).</userinput></screen>
-
- <para>You might prefer cpio(1), pax(1) or cpdup
- (in ports/sysutils/cpdup) to tar.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="release-candidate">
- <para>I tried to update my system to the latest -STABLE, but
- got -RC or -BETA! What's going on?</para>
- </question>
-
- <answer>
- <para>Short answer: it's just a name. RC stands for
- <quote>Release Candidate</quote>. It signifies that a
- release is imminent. In FreeBSD, -BETA is typically synonymous
- with the code freeze before a release.</para>
-
- <para>Long answer: FreeBSD derives its releases from one of
- two places. Major, dot-zero, releases, such as
- 3.0-RELEASE and 4.0-RELEASE, are branched from the head of
- the development stream, commonly referred to as <link
- linkend="current">-CURRENT</link>. Minor releases, such
- as 3.1-RELEASE or 4.2-RELEASE, are snapshots of the active
- <link linkend="stable">-STABLE</link> branch.</para>
-
- <para>When a release is about to be made, the branch from
- which it will be derived from has to undergo a certain
- process. Part of this process is a code freeze. When a
- code freeze is initiated, the name of the branch is
- changed to reflect that it's about to become a release.
- For example, if the branch used to be called 4.0-STABLE,
- its name will be changed to 4.1-BETA to signify the code
- freeze and signify that extra pre-release testing should
- be happening. Bug fixes can still be committed to be part
- of the release. When the source code is in shape for the
- release the name will be chagned to 4.1-RC to signify that a
- release is about to be made from it. Once in the RC stage,
- only the most critical bugs found can be fixed.
- Once the release, 4.1-RELEASE in this example, has been made,
- the branch will be renamed to 4.1-STABLE.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-chflag-failure">
- <para>I tried to install a new kernel, and the chflags failed.
- How do I get around this?</para>
- </question>
-
- <answer>
- <para>Short answer: You're probably at security level
- greater than 0. Reboot directly to single user mode to
- install the kernel.</para>
-
- <para>Long answer: FreeBSD disallows changing system flags
- at security levels greater than 0. You can check your
- security level with the command:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>You cannot lower the security level; you have to boot
- to single mode to install the kernel, or change the
- security in <filename>/etc/rc.conf</filename> then reboot. See
- the &man.init.8; man page for details on securelevel, and
- see <filename>/etc/defaults/rc.conf</filename> and the
- &man.rc.conf.5; man page for more information on rc.conf.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-securelevel-time">
- <para>I can't change the time on my system by more than one second!
- How do I get around this?</para>
- </question>
-
- <answer>
- <para>Short answer: You're probably at security level
- greater than 1. Reboot directly to single user mode to
- change the date.</para>
-
- <para>Long answer: FreeBSD disallows changing the time by
- more that one second at security levels greater than 1. You
- can check your security level with the command:</para>
-
- <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
-
- <para>You cannot lower the security level; you have to boot
- to single mode to change the date, or change the security
- level in <filename>/etc/rc.conf</filename> then reboot. See
- the &man.init.8; man page for details on securelevel, and
- see <filename>/etc/defaults/rc.conf</filename> and the
- &man.rc.conf.5; man page for more information on rc.conf.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="statd-mem-leak">
- <para>There is a memory leak in &man.rpc.statd.8;! It is using
- 256 Mbytes of memory!</para>
- </question>
-
- <answer>
- <para>No, there is no memory leak, and it's not using 256 Mbytes
- of memory. It simply likes to (i.e., always does) map an
- obscene amount of memory into its address space for convenience.
- There is nothing terribly wrong with this from a technical
- standpoint; it just throws off things like &man.top.1; and
- &man.ps.1;.</para>
-
- <para>&man.rpc.statd.8; maps its status file (resident on
- <filename>/var</filename>) into its address space; to save
- worrying about remapping it later when it needs to grow, it maps
- it with a generious size. This is very evident from the source
- code, where one can see that the length argument to &man.mmap.2;
- is <literal>0x10000000</literal>, or one sixteenth of the
- address space on an IA32, or exactly 256MB.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="unsetting-schg">
- <para>Why can't I unset the <literal>schg</literal> file
- flag?</para>
- </question>
-
- <answer>
- <para>You're running at an elevated (i.e., greater than 0)
- securelevel. Lower the securelevel and try again. For more
- information, see <link linkend="securelevel">the FAQ entry on
- securelevel</link> and the &man.init.8; manual page.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="x">
- <title>The X Window System and Virtual Consoles</title>
-
- <qandaset>
- <qandaentry>
- <question id="running-X">
- <para>I want to run X, how do I go about it?</para>
- </question>
-
- <answer>
-
- <para>The easiest way is to simply specify that you want to
- run X during the installation process.</para>
-
- <para>Then read and follow the documentation on the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config">
- xf86config</ulink> tool, which assists you in configuring
- XFree86(tm) for your particular graphics card/mouse/etc.</para>
-
- <para>You may also wish to investigate the Xaccel server.
- See the section on <link linkend="xig">Xi Graphics</link> or
- <link linkend="metrox">Metro Link</link> for more details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="running-X-securelevels">
- <para>I <emphasis>tried</emphasis> to run X, but I get an
- <errorname>KDENABIO failed (Operation not permitted)</errorname>
- error when I type <command>startx</command>. What do I do
- now?</para>
- </question>
-
- <answer>
- <para>Your system is running at a raised securelevel, isn't
- it? It is, indeed, impossible to start X at a raised
- securelevel. To see why, look at the &man.init.8; man
- page.</para>
-
- <para>So the question is what else you should do instead,
- and you basically have two choices: set your securelevel
- back down to zero (usually from <filename>/etc/rc.conf</filename>),
- or run &man.xdm.1; at boot time (before the securelevel is
- raised).</para>
-
- <para>See <xref linkend="xdm-boot"> for more information about
- running &man.xdm.1; at boot time.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="x-and-moused">
- <para>Why doesn't my mouse work with X?</para>
- </question>
-
- <answer>
- <para>If you are using syscons (the default console driver),
- you can configure FreeBSD to support a mouse pointer on each
- virtual screen. In order to avoid conflicting with X, syscons
- supports a virtual device called
- <filename>/dev/sysmouse</filename>. All mouse events received
- from the real mouse device are written to the sysmouse device
- via moused. If you wish to use your mouse on one or more
- virtual consoles, <emphasis remap=bf>and</emphasis> use X, see
- <xref linkend="moused" remap="another section"> and set up
- moused.</para>
-
- <para>Then edit <filename>/etc/XF86Config</filename> and make
- sure you have the following lines.</para>
-
- <programlisting>Section Pointer
-Protocol "SysMouse"
-Device "/dev/sysmouse"
-.....</programlisting>
-
- <para>The above example is for XFree86 3.3.2 or later. For
- earlier versions, the <emphasis>Protocol</emphasis> should be
- <emphasis>MouseSystems</emphasis>.</para>
-
- <para>Some people prefer to use <filename>/dev/mouse</filename>
- under X. To make this work, <filename>/dev/mouse</filename>
- should be linked to <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?sysmouse">
- /dev/sysmouse</ulink>:</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>My mouse has a fancy wheel. Can I use it in X?</para>
- </question>
-
- <answer>
- <para>Yes. But you need to customize X client programs. See <ulink
- URL="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">
- Colas Nahaboo's web page
- (http://www.inria.fr/koala/colas/mouse-wheel-scroll/)
- </ulink>.</para>
-
- <para>If you want to use the <application>imwheel</application>
- program, just follow these simple steps.</para>
-
- <orderedlist>
- <listitem>
- <para>Translate the Wheel Events</para>
-
- <para>The <application>imwheel</application> program
- works by translating mouse button 4 and mouse button 5
- events into key events. Thus, you have to get the
- mouse driver to translate mouse wheel events to button
- 4 and 5 events. There are two ways of doing this, the
- first way is to have &man.moused.8; do the
- translation. The second way is for the X server
- itself to do the event translation.</para>
-
- <orderedlist>
- <listitem>
- <para>Using &man.moused.8; to Translate Wheel
- Events</para>
-
- <para>To have &man.moused.8; perform the event
- translations, simply add <option>-z 4</option> to
- the command line used to start &man.moused.8;.
- For example, if you normally start &man.moused.8;
- via <command>moused -p /dev/psm0</command> you
- would start it by entering <command>moused -p
- /dev/psm0 -z 4</command> instead. If you start
- &man.moused.8; automatically during bootup via
- <filename>/etc/rc.conf</filename>, you can simply
- add <option>-z 4</option> to the
- <varname>moused_flags</varname> variable in
- <filename>/etc/rc.conf</filename>.</para>
-
- <para>You now need to tell X that you have a 5
- button mouse. To do this, simply add the line
- <literal>Buttons 5</literal> to the
- <quote>Pointer</quote> section of
- <filename>/etc/XF86Config</filename>. For
- example, you might have the following
- <quote>Pointer</quote> section in
- <filename>/etc/XF86Config</filename>.</para>
-
- <example>
- <title><quote>Pointer</quote> Section for Wheeled
- Mouse in XFree86 3.3.x series XF86Config with moused
- Translation</title>
-
- <programlisting>Section "Pointer"
- Protocol "SysMouse"
- Device "/dev/sysmouse"
- Buttons 5
-EndSection</programlisting>
- </example>
-
- <example>
- <title><quote>InputDevice</quote> Section for Wheeled
- Mouse in XFree86 4.x series XF86Config with
- automatic protocol recognition and button mapping
- Translation</title>
-
- <programlisting>Section "InputDevice"
- Identifier "Mouse1"
- Driver "mouse"
- Option "Protocol" "auto"
- Option "Device" "/dev/psm0"
- Option "Buttons" "5"
- Option "ZAxisMapping" "4 5"
-EndSection</programlisting>
- </example>
-
- <example>
- <title><quote>.emacs</quote> example for naive
- page scrolling with Wheeled Mouse</title>
- <programlisting>;; wheel mouse
-(global-set-key [mouse-4] 'scroll-down)
-(global-set-key [mouse-5] 'scroll-up)</programlisting>
- </example>
-
- </listitem>
-
- <listitem>
- <para>Using Your X Server to Translate the Wheel
- Events</para>
-
- <para>If you aren't running &man.moused.8;, or if
- you don't want &man.moused.8; to translate your
- wheel events, you can have the X server do the
- event translation instead. This requires a couple
- of modifications to your
- <filename>/etc/XF86Config</filename> file. First,
- you need to choose the proper protocol for your
- mouse. Most wheeled mice use the
- <quote>IntelliMouse</quote> protocol. However,
- XFree86 does support other protocols, such as
- <quote>MouseManPlusPS/2</quote> for the Logitech
- MouseMan+ mice. Once you have chosen the protocol
- you will use, you need to add a
- <varname>Protocol</varname> line to the
- <quote>Pointer</quote> section.</para>
-
- <para>Secondly, you need to tell the X server to
- remap wheel scroll events to mouse buttons 4 and
- 5. This is done with the
- <varname>ZAxisMapping</varname> option.</para>
-
- <para>For example, if you aren't using
- &man.moused.8;, and you have an IntelliMouse
- attached to the PS/2 mouse port you would use
- the following in
- <filename>/etc/XF86Config</filename>.</para>
-
- <example>
- <title><quote>Pointer</quote> Section for Wheeled
- Mouse in <filename>XF86Config</filename> with X
- Server Translation</title>
-
- <programlisting>Section "Pointer"
- Protocol "IntelliMouse"
- Device "/dev/psm0"
- ZAxisMapping 4 5
-EndSection</programlisting>
- </example>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>Install <application>imwheel</application></para>
-
- <para>Next, install <application>imwheel</application>
- from the Ports collection. It can be found in the
- <filename>x11</filename> category. This program will
- map the wheel events from your mouse into keyboard
- events. For example, it might send <keycap>Page
- Up</keycap> to a program when you scroll the wheel
- forwards. <application>Imwheel</application> uses a
- configuration file to map the wheel events to
- keypresses so that it can send different keys to
- different applications. The default
- <application>imwheel</application> configuration file
- is installed in
- <filename>/usr/X11R6/etc/imwheelrc</filename>. You
- can copy it to <filename>~/.imwheelrc</filename> and
- then edit it if you wish to customize
- <application>imwheel</application>'s configuration.
- The format of the configuration file is documented in
- &man.imwheel.1;.</para>
- </listitem>
-
- <listitem>
- <para>Configure <application>Emacs</application> to Work
- with <application>Imwheel</application>
- (<emphasis>optional</emphasis>)</para>
-
- <para>If you use <application>emacs</application> or
- <application>Xemacs</application>, then you need to
- add a small section to your
- <filename>~/.emacs</filename> file. For
- <application>emacs</application>, add the
- following:</para>
-
- <example>
- <title><application>Emacs</application> Configuration
- for <application>Imwheel</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>For <application>Xemacs</application>, add the
- following to your <filename>~/.emacs</filename> file
- instead:</para>
-
- <example>
- <title><application>Xemacs</application> Configuration
- for <application>Imwheel</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>Run <application>Imwheel</application></para>
-
- <para>You can just type <command>imwheel</command>
- in an xterm to start it up once it is installed. It
- will background itself and take effect immediately.
- If you want to always use
- <application>imwheel</application>, simply add it to
- your <filename>.xinitrc</filename> or
- <filename>.xsession</filename> file. You can safely
- ignore any warnings <application>imwheel</application>
- displays about PID files. Those warnings only apply
- to the Linux version of
- <application>imwheel</application>.</para>
- </listitem>
- </orderedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="window-menu-weird">
- <para>X Window menus and dialog boxes don't work right!</para>
- </question>
-
- <answer>
- <para>Try turning off the Num Lock key.</para>
-
- <para>If your Num Lock key is on by default at boot-time, you
- may add the following line in the <literal>Keyboard</literal>
- section of the <filename>XF86Config</filename> file.</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>What is a virtual console and how do I make more?</para>
- </question>
-
- <answer>
- <para>Virtual consoles, put simply, enable you to have several
- simultaneous sessions on the same machine without doing anything
- complicated like setting up a network or running X.</para>
-
- <para>When the system starts, it will display a login prompt on
- the monitor after displaying all the boot messages. You can
- then type in your login name and password and start working (or
- playing!) on the first virtual console.</para>
-
- <para>At some point, you will probably wish to start another
- session, perhaps to look at documentation for a program
- you are running or to read your mail while waiting for an
- FTP transfer to finish. Just do Alt-F2 (hold down the Alt
- key and press the F2 key), and you will find a login prompt
- waiting for you on the second <quote>virtual console</quote>!
- When you want to go back to the original session, do
- Alt-F1.</para>
-
- <para>The default FreeBSD installation has three virtual consoles
- enabled (8 starting with 3.3-RELEASE), and Alt-F1, Alt-F2, and
- Alt-F3 will switch between these virtual consoles.</para>
-
- <para>To enable more of them, edit <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>
- and add entries for <devicename>ttyv4</devicename>
- to <devicename>ttyvc</devicename> after the comment on
- <quote>Virtual terminals</quote>:</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>Use as many or as few as you want. The more virtual
- terminals you have, the more resources that are used; this
- can be important if you have 8MB RAM or less. You may also
- want to change the <literal>secure</literal>
- to <literal>insecure</literal>.</para>
-
- <para>
- <important>
- <para>If you want to run an X server you
- <emphasis>must</emphasis> leave at least one virtual
- terminal unused (or turned off) for it to use. That is to
- say that if you want to have a login prompt pop up for all
- twelve of your Alt-function keys, you're out of luck - you
- can only do this for eleven of them if you also want to run
- an X server on the same machine.</para>
- </important>
- </para>
-
- <para>The easiest way to disable a console is by turning it off.
- For example, if you had the full 12 terminal allocation
- mentioned above and you wanted to run X, you would change
- settings for virtual terminal 12 from:</para>
-
- <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
-
- <para>to:</para>
-
- <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
-
- <para>If your keyboard has only ten function keys, you would
- end up with:</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>(You could also just delete these lines.)</para>
-
- <para>Once you have edited <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">
- /etc/ttys</ulink>, the next step is to make sure that you
- have enough virtualterminal devices. The easiest way to do
- this is:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV vty12</userinput></screen>
-
- <para>Next, the easiest (and cleanest) way to activate the
- virtual consoles is to reboot. However, if you really don't
- want to reboot, you can just shut down the X Window system
- and execute (as <username>root</username>):</para>
-
- <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
-
- <para>It's imperative that you completely shut down X Window if
- it is running, before running this command. If you don't,
- your system will probably appear to hang/lock up after
- executing the kill command.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="vty-from-x">
- <para>How do I access the virtual consoles from X?</para>
- </question>
-
- <answer>
- <para>Use <keycombo action="simul">
- <keycap>Ctrl</keycap>
- <keycap>Alt</keycap>
- <keycap>F<replaceable>n</replaceable></keycap>
- </keycombo> to switch back to a virtual console.
- <keycombo action="simul">
- <keycap>Ctrl</keycap>
- <keycap>Alt</keycap>
- <keycap>F1</keycap>
- </keycombo> would return you to the first virtual console.</para>
-
- <para>Once you are back to a text console, you can then use
- <keycombo action="simul">
- <keycap>Alt</keycap>
- <keycap>F<replaceable>n</replaceable></keycap>
- </keycombo> as normal to move between them.</para>
-
- <para>To return to the X session, you must switch to the virtual
- console running X. If you invoked X from the command line, (e.g.,
- using <command>startx</command>) then the X session will attach to
- the next unused virtual console, not the text console from which
- it was invoked. If you have eight active virtual terminals then X
- will be running on the ninth, and you would use
- <keycombo action="simul">
- <keycap>Alt</keycap>
- <keycap>F9</keycap>
- </keycombo> to return.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xdm-boot">
- <para>How do I start XDM on boot?</para>
- </question><answer>
-
- <para>There are two schools of thought on how to start <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm">
- xdm</ulink>. One school starts xdm from <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>
- using the supplied example, while the other simply runs xdm
- from <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rc(8)">rc.local</ulink>
- or from a <filename>X.sh</filename> script in
- <filename>/usr/local/etc/rc.d</filename>. Both are equally
- valid, and one may work in situations where the other doesn't.
- In both cases the result is the same: X will popup a graphical
- login: prompt. </para>
-
- <para>The ttys method has the advantage of documenting which
- vty X will start on and passing the responsibility of
- restarting the X server on logout to init. The rc.local
- method makes it easy to kill xdm if there is a problem
- starting the X server. </para>
-
- <para>If loaded from rc.local, <command>xdm</command> should
- be started without any arguments (i.e., as a daemon). xdm must
- start AFTER getty runs, or else getty and xdm will conflict,
- locking out the console. The best way around this is to have
- the script sleep 10 seconds or so then launch xdm.</para>
-
- <para>If you are to start <command>xdm</command> from
- <filename>/etc/ttys</filename>, there still is a chance of
- conflict between <command>xdm</command> and
- <command>getty</command>. One way to avoid this is to add the
- <literal>vt</literal> number in the
- <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>
- file.</para>
-
- <programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting>
-
- <para>The above example will direct the X server to run in
- <filename>/dev/ttyv3</filename>. Note the number is offset by
- one. The X server counts the vty from one, whereas the FreeBSD
- kernel numbers the vty from zero.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xconsole-failure">
- <para>When I run xconsole, I get
- <literal>Couldn't open console</literal>.</para>
- </question>
-
- <answer>
- <para>If you start <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=X">X</ulink>
- with <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=startx">
- startx</ulink>, the permissions on
- <filename>/dev/console</filename> will
- <emphasis remap=tt>not</emphasis> get changed, resulting in
- things like <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xterm">
- xterm -C</ulink> and <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xconsole">
- xconsole</ulink>not working.</para>
-
- <para>This is because of the way console permissions are set
- by default. On a multi-user system, one doesn't necessarily
- want just any user to be able to write on the system console.
- For users who are logging directly onto a machine with a VTY,
- the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab">fbtab</ulink>
- file exists to solve such problems.</para>
-
- <para>In a nutshell, make sure an uncommented line of the
- form</para>
-
- <programlisting>/dev/ttyv0 0600 /dev/console</programlisting>
-
- <para>is in <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab(5)">
- /etc/fbtab</ulink> and it will ensure that whomever logs in on
- <filename>/dev/ttyv0</filename> will own the console.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="xfree86-root">
- <para>I used to run XFree86 as a regular user, but now when
- I start it it says I must be root!</para>
- </question>
-
- <answer>
- <para>All X servers need to be run as root in order to get direct
- access to your video hardware. Older versions of XFree86
- (&lt;= 3.3.6) installed all bundled servers to be automatically
- run as root (setuid to root). This is obviously a security
- hazard because X servers are large, complicated programs.
- Newer versions of XFree86 do not install the servers setuid to
- root for just this reason.</para>
-
- <para>Obviously, running an X server as the root user is not
- acceptable, nor a good idea security-wise. There are two ways
- to be able to use X as a regular user. The first is to use
- <command>xdm</command> or another display manager
- (e.g., <command>kdm</command>); the second is to use the
- <command>Xwrapper</command>.</para>
-
- <para><command>xdm</command> is a daemon that handles graphical
- logins. It is usually started at boot time, and is responsible
- for authenticating users and starting their sessions; it is
- essentially the graphical counterpart of
- <command>getty</command> and <command>login</command>. For
- more information on <command>xdm</command> see
- <ulink url="http://www.xfree86.org/support.html">the XFree86
- documentation</ulink>, and the <link linkend="xdm-boot">the FAQ
- entry</link> on it.</para>
-
- <para><command>Xwrapper</command> is the X server wrapper; it is
- a small utility to enable one to manually run an X server while
- maintaining reasonable safety. It performs some sanity checks
- on the command line arguments given, and if they pass, runs the
- appropriate X server. If you do not want to run a display
- manger for whatever reason, this is for you. If you have
- installed the complete ports collection, you can find the port in
- <filename>/usr/ports/x11/wrapper</filename>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2-x">
- <para>My PS/2 mouse doesn't behave properly under X.</para>
- </question>
-
- <answer>
- <para>Your mouse and the mouse driver may have somewhat become
- out of synchronization.</para>
-
- <para>In versions 2.2.5 and earlier, switching away from X to a
- virtual terminal and getting back to X again may make them
- re-synchronized. If the problem occurs often, you may add the
- following option in your kernel configuration file and
- recompile it.</para>
-
- <programlisting>options PSM_CHECKSYNC</programlisting>
-
- <para>See the section on <link linkend="make-kernel">building
- a kernel</link> if you've no experience with building
- kernels.</para>
-
- <para>With this option, there should be less chance of
- synchronization problem between the mouse and the driver.
- If, however, you still see the problem, click any mouse
- button while holding the mouse still to re-synchronize the
- mouse and the driver.</para>
-
- <para>Note that unfortunately this option may not work with all
- the systems and voids the <quote>tap</quote> feature of the
- ALPS GlidePoint device attached to the PS/2 mouse port.</para>
-
- <para>In versions 2.2.6 and later, synchronization check is done
- in a slightly better way and is standard in the PS/2 mouse
- driver. It should even work with GlidePoint. (As the check code
- has become a standard feature, PSM_CHECKSYNC option is not
- available in these versions.) However, in rare case the driver
- may erroneously report synchronization problem and you may see
- the kernel message:</para>
-
- <programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>
-
- <para>and find your mouse doesn't seem to work properly.</para>
-
- <para>If this happens, disable the synchronization check code
- by setting the driver flags for the PS/2 mouse driver to 0x100.
- Enter <emphasis>UserConfig</emphasis> by giving the
- <option>-c</option> option at the boot prompt:</para>
-
- <screen>boot: <userinput>-c</userinput></screen>
-
- <para>Then, in the <emphasis>UserConfig</emphasis> command
- line, type:</para>
-
- <screen>UserConfig&gt; <userinput>flags psm0 0x100</userinput>
-UserConfig&gt; <userinput>quit</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2-mousesystems">
- <para>My PS/2 mouse from MouseSystems doesn't seem to
- work.</para>
- </question>
-
- <answer>
- <para>There have been some reports that certain model of PS/2
- mouse from MouseSystems works only if it is put into the
- <quote>high resolution</quote> mode. Otherwise, the mouse
- cursor may jump to the upper-left corner of the screen every
- so often.</para>
-
- <para>Unfortunately there is no workaround for versions 2.0.X
- and 2.1.X. In versions 2.2 through 2.2.5, apply the following
- patch to <filename>/sys/i386/isa/psm.c</filename> and rebuild
- the kernel. See the section on <link
- linkend="make-kernel">building a kernel</link> if you've no
- experience with building kernels.</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>In versions 2.2.6 or later, specify the flags 0x04 to
- the PS/2 mouse driver to put the mouse into the high
- resolution mode. Enter <emphasis>UserConfig</emphasis> by
- giving the <option>-c</option> option at the boot prompt:</para>
-
- <screen>boot: <userinput>-c</userinput></screen>
-
- <para>Then, in the <emphasis>UserConfig</emphasis> command line,
- type:</para>
-
- <screen>UserConfig&gt; <userinput>flags psm0 0x04</userinput>
-UserConfig&gt; <userinput>quit</userinput></screen>
-
- <para>See the previous section for another possible cause of mouse
- problems.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="imake-tmpl">
- <para>When building an X app, <command>imake</command> can't
- find <filename>Imake.tmpl</filename>. Where is it?</para>
- </question>
-
- <answer>
-
- <para>Imake.tmpl is part of the Imake package, a standard X
- application building tool. Imake.tmpl, as well as several
- header files that are required to build X apps, is contained
- in the X prog distribution. You can install this from sysinstall
- or manually from the X distribution files. </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mouse-button-reverse">
- <para>How do I reverse the mouse buttons?</para>
- </question>
-
- <answer>
- <para>Run the command
- <command>xmodmap -e "pointer = 3 2 1"</command> from your
- .xinitrc or .xsession.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="install-splash">
- <para>How do I install a splash screen and where do I find
- them?</para>
- </question>
-
- <answer>
-
- <para>Just prior to the release of FreeBSD 3.1, a new feature
- was added to allow the display of <quote>splash</quote> screens
- during the boot messages. The splash screens currently must be
- a 256 color bitmap (<filename>*.BMP</filename>) or ZSoft PCX
- (<filename>*.PCX</filename>) file. In addition, they must have
- a resolution of 320x200 or less to work on standard VGA
- adapters. If you compile VESA support into your kernel, then
- you can use larger bitmaps up to 1024x768. Note that VESA
- support requires the <literal>VM86</literal> kernel option to
- be compiled into the kernel. The actual VESA support can either
- be compiled directly into the kernel with the
- <literal>VESA</literal> kernel config option or by loading the
- VESA kld module during bootup.</para>
-
- <para>To use a splash screen, you need to modify the startup
- files that control the boot process for FreeBSD. The files for
- this changed prior to the release of FreeBSD 3.2, so there are
- now two ways of loading a splash screen:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>FreeBSD 3.1</para>
-
- <para>The first step is to find a bitmap version of your
- splash screen. Release 3.1 only supports Windows bitmap
- splash screens. Once you've found your splash screen of
- choice copy it to <filename>/boot/splash.bmp</filename>.
- Next, you need to have a
- <filename>/boot/loader.rc</filename> file that contains
- the following lines:</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>In addition to adding support for PCX splash screens,
- FreeBSD 3.2 includes a nicer way of configuring the boot
- process. If you wish, you can use the method listed above
- for FreeBSD 3.1. If you do and you want to use PCX,
- replace <literal>splash_bmp</literal> with
- <literal>splash_pcx</literal>. If, on the other hand, you
- want to use the newer boot configuration, you need to
- create a <filename>/boot/loader.rc</filename> file that
- contains the following lines:</para>
-
- <programlisting>include /boot/loader.4th
-start</programlisting>
-
- <para>and a <filename>/boot/loader.conf</filename> that
- contains the following:</para>
-
- <programlisting>splash_bmp_load="YES"
-bitmap_load="YES"</programlisting>
-
- <para>This assumes you are using
- <filename>/boot/splash.bmp</filename> for your splash
- screen. If you'd rather use a PCX file, copy it to
- <filename>/boot/splash.pcx</filename>, create a
- <filename>/boot/loader.rc</filename> as instructed
- above, and create a
- <filename>/boot/loader.conf</filename> that
- contains:</para>
-
- <programlisting>splash_pcx_load="YES"
-bitmap_load="YES"
-bitmap_name="/boot/splash.pcx"</programlisting>
-
- </listitem>
- </itemizedlist></para>
-
- <para>Now all you need is a splash screen. For that you can
- surf on over to the gallery at <ulink
- URL="http://www.baldwin.cx/splash/">http://www.baldwin.cx/splash/</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="windows-keys">
- <para>Can I use the Windows(tm) keys on my keyboard in X?</para>
- </question>
-
- <answer>
- <para>Yes. All you need to do is use &man.xmodmap.1; to define
- what function you wish them to perform.</para>
-
- <para>Assuming all <quote>Windows(tm)</quote> keyboards are
- standard then the keycodes for the 3 keys are</para>
-
- <itemizedlist>
- <listitem>
- <para>115 - Windows(tm) key, between the left-hand Ctrl and
- Alt keys</para>
- </listitem>
-
- <listitem>
- <para>116 - Windows(tm) key, to the right of the Alt-Gr
- key</para>
- </listitem>
-
- <listitem>
- <para>117 - Menu key, to the left of the right-hand Ctrl
- key</para>
- </listitem>
- </itemizedlist>
-
- <para>To have the left Windows(tm) key print a comma, try
- this.</para>
-
- <screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>
-
- <para>You will probably have to re-start your window manager
- to see the result.</para>
-
- <para>To have the Windows(tm) key-mappings enabled automatically
- everytime you start X either put the <command>xmodmap</command>
- commands in your <filename>~/.xinitrc</filename> file or,
- preferably, create a file <filename>~/.xmodmaprc</filename> and
- include the <command>xmodmap</command> options, one per line,
- then add the line</para>
-
- <programlisting>xmodmap $HOME/.xmodmaprc</programlisting>
-
- <para>to your <filename>~/.xinitrc</filename>.</para>
-
- <para>For example, you could map the 3 keys top be F13, F14, and
- F15, respectively. This would make it easy to map them to
- useful functions within applications or your window
- manager, as demonstrated further down.</para>
-
- <para>To do this put the following in
- <filename>~/.xmodmaprc</filename>.</para>
-
- <programlisting>keycode 115 = F13
-keycode 116 = F14
-keycode 117 = F15</programlisting>
-
- <para>If you use <command>fvwm2</command>, for example, you
- could map the keys
- so that F13 iconifies (or de-iconifies) the window the cursor
- is in, F14 brings the window the cursor is in to the front or,
- if it is already at the front, pushes it to the back, and F15
- pops up the main Workplace (application) menu even if the
- cursor is not on the desktop, which is useful if you don't have
- any part of the desktop visible (and the logo on the key
- matches its functionality).</para>
-
- <para>The following entries in
- <filename>~/.fvwmrc</filename> implement the
- aforementioned setup:</para>
-
- <programlisting>Key F13 FTIWS A Iconify
-Key F14 FTIWS A RaiseLower
-Key F15 A A Menu Workplace Nop</programlisting>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="networking">
- <title>Networking</title>
-
- <qandaset>
- <qandaentry>
- <question id="diskless-booting">
- <para>Where can I get information on
- <quote>diskless booting</quote>?</para>
- </question>
-
- <answer>
- <para><quote>Diskless booting</quote> means that the FreeBSD
- box is booted over a network, and reads the necessary files
- from a server instead of its hard disk. For full details,
- please read <ulink URL="../handbook/diskless.html">the
- Handbook entry on diskless booting</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="router">
- <para>Can a FreeBSD box be used as a dedicated network
- router?</para>
- </question>
-
- <answer>
- <para>Internet standards and good engineering practice prohibit
- us from providing packet forwarding by default in FreeBSD. You
- can however enable this feature by changing the following
- variable to <literal>YES</literal> in <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">
- rc.conf</ulink>:</para>
-
- <programlisting>gateway_enable=YES # Set to YES if this host will be a gateway</programlisting>
-
- <para>This option will put the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?sysctl">
- sysctl</ulink> variable
- <filename>net.inet.ip.forwarding</filename>
- to <literal>1</literal>.</para>
-
- <para>In most cases, you will also need to run a routing process
- to tell other systems on your network about your router;
- FreeBSD comes with the standard BSD routing daemon <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?routed">routed</ulink>,
- or for more complex situations you may want to try
- <emphasis>GaTeD</emphasis> (available from <ulink
- URL="http://www.gated.org/"> http://www.gated.org/ </ulink>)
- which supports FreeBSD as of 3_5Alpha7.</para>
-
- <para>It is our duty to warn you that, even when FreeBSD is
- configured in this way, it does not completely comply with
- the Internet standard requirements for routers; however,
- it comes close enough for ordinary usage.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="win95-connection">
- <para>Can I connect my Win95 box to the Internet via
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>Typically, people who ask this question have two PC's
- at home, one with FreeBSD and one with Win95; the idea is to
- use the FreeBSD box to connect to the Internet and then be able
- to access the Internet from the Windows95 box through the
- FreeBSD box. This is really just a special case of the previous
- question.</para> <para> ... and the answer is yes! In FreeBSD
- 3.x, user-mode ppp contains a <option>-nat</option> option. If
- you run <command>ppp</command> with the <option>-nat</option>,
- set <literal>gateway_enable</literal> to
- <emphasis>YES</emphasis> in <filename>/etc/rc.conf</filename>,
- and configure your Windows machine correctly, this should work
- fine.</para>
-
- <para>More detailed information about setting this up can be
- found in the <ulink
- URL="http://www.FreeBSD.org/tutorials/ppp/index.html">
- Pedantic PPP Primer</ulink> by Steve Sims.</para>
-
- <para>If you are using kernel-mode ppp, or have an Ethernet
- connection to the Internet, you will have to use
- <command>natd</command>. Please look at the
- <link linkend="natd">natd</link> section of this FAQ.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="latest-bind">
- <para>Why does recompiling the latest BIND from ISC fail?</para>
- </question>
-
- <answer>
- <para>There is a conflict between the
- <filename>cdefs.h</filename> file in the distribution and the
- one shipped with FreeBSD. Just remove
- <filename>compat/include/sys/cdefs.h</filename>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="slip-ppp-support">
- <para>Does FreeBSD support SLIP and PPP?</para>
- </question>
-
- <answer>
- <para>Yes. See the manual pages for &man.slattach.8;,
- &man.sliplogin.8;, &man.ppp.8;, and &man.pppd.8;. &man.ppp.8;
- and &man.pppd.8; provide support for both incoming and outgoing
- connections, while &man.sliplogin.8; deals exlusively with
- incoming connections, and &man.slattach.8; deals exclusively
- with outgoing connections.</para>
-
- <para>For more information on how to use these, please see the
- <ulink url="../handbook/ppp-and-slip.html">Handbook chapter on
- PPP and SLIP</ulink>.</para>
-
- <para>If you only have access to the Internet through a
- <quote>shell account</quote>, you may want to have a look at
- the <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^slirp">
- slirp</ulink> package. It can provide you with (limited)
- access to services such as ftp and http direct from your local
- machine.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="natd">
- <para>Does FreeBSD support NAT or Masquerading</para>
- </question>
-
- <answer>
- <para>If you have a local subnet (one or more local machines),
- but have been allocated only a single IP number from your
- Internet provider (or even if you receive a dynamic IP number),
- you may want to look at the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?natd">natd</ulink>
- program. <command>natd</command> allows you to connect an
- entire subnet to the internet using only a single IP
- number.</para>
-
- <para>The <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">
- ppp</ulink> program has similar functionality built in via
- the <option>-nat</option> switch. The <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">
- alias library</ulink> is used in both cases.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="create-dev-net">
- <para>I can't create a <filename>/dev/ed0</filename>
- device!</para>
- </question>
-
- <answer>
-
- <para>In the Berkeley networking framework, network interfaces
- are only directly accessible by kernel code. Please see the
- <filename>/etc/rc.network</filename> file and the manual pages
- for the various network programs mentioned there for more
- information. If this leaves you totally confused, then you
- should pick up a book describing network administration on
- another BSD-related operating system; with few significant
- exceptions, administering networking on FreeBSD is basically
- the same as on SunOS 4.0 or Ultrix.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ethernet-aliases">
- <para>How can I setup Ethernet aliases?</para>
- </question><answer>
-
- <para>Add <literal>netmask 0xffffffff</literal> to your <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">
- ifconfig</ulink> command-line like the following:</para>
-
- <screen>&prompt.root; <userinput>ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="port-3c503">
- <para>How do I get my 3C503 to use the other network
- port?</para>
- </question>
-
- <answer>
- <para>If you want to use the other ports, you'll have to specify
- an additional parameter on the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">
- ifconfig</ulink> command line. The default port is
- <literal>link0</literal>. To use the AUI port instead of the
- BNC one, use <literal>link2</literal>. These flags should be
- specified using the ifconfig_* variables in <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">
- /etc/rc.conf</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs">
- <para>I'm having problems with NFS to/from FreeBSD.</para>
- </question>
-
- <answer>
- <para>Certain PC network cards are better than others (to put
- it mildly) and can sometimes cause problems with network
- intensive applications like NFS.</para>
-
- <para>See <ulink URL="../handbook/nfs.html">
- the Handbook entry on NFS</ulink> for more information on
- this topic.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs-linux">
- <para>Why can't I NFS-mount from a Linux box?</para>
- </question>
-
- <answer>
- <para>Some versions of the Linux NFS code only accept mount
- requests from a privileged port; try</para>
-
- <screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="nfs-sun">
- <para>Why can't I NFS-mount from a Sun box?</para>
- </question>
-
- <answer>
- <para>Sun workstations running SunOS 4.X only accept mount
- requests from a privileged port; try</para>
-
- <screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="exports-errors">
- <para>Why does <command>mountd</command> keep telling me it
- <quote>can't change attributes</quote> and that I have a
- <quote>bad exports list</quote> on my FreeBSD NFS
- server?</para>
- </question>
-
- <answer>
- <para>The most frequent problem is not understanding this
- passage from the &man.exports.5 manual page
- correctly:</para>
-
- <blockquote>
- <para>Each line in the file (other than comment
- lines that begin with a #) specifies the mount point(s)
- and export flags within one local server filesystem for
- one or more hosts. A host may be specified only once
- for each local filesystem on the server and there may be
- only one default entry for each server filesystem that
- applies to all other hosts.</para>
- </blockquote>
-
- <para>This is made more clear by an example of a common
- mistake. If everything above <filename>/usr</filename> is
- part of one filesystem (there are no mounts above
- <filename>/usr</filename>) the following exports list is
- not valid:</para>
-
- <programlisting>/usr/src client
-/usr/ports client</programlisting>
-
- <para>There are two lines specifying properties for one
- filesystem, <filename>/usr</filename>, exported to the
- same host, <hostid>client</hostid>. The correct format
- is:</para>
-
- <programlisting>/usr/src /usr/ports client</programlisting>
-
- <para>To rephrase the passage from the manual page, the
- properties of one filesystem exported to a given host
- (world-wide exports are treated like another unique host)
- must all occur on one line. And yes, this does cause
- limitiation in how you can export filesystems without ugly
- workarounds, but for most people, this is not an
- issue.</para>
-
- <para>The following is an example of a valid export list,
- where <filename>/usr</filename> and
- <filename>/exports</filename> are local
- filesystems:</para>
-
- <programlisting># Export src and ports to client01 and client02, but only
-# client01 has root privileges on it
-/usr/src /usr/ports -maproot=0 client01
-/usr/src /usr/ports client02
-# The "client" machines have root and can mount anywhere
-# up /exports. The world can mount /exports/obj read-only
-/exports -alldirs -maproot=0 client01 client02
-/exports/obj -ro</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nextstep">
- <para>I'm having problems talking PPP to NeXTStep
- machines.</para>
- </question>
-
- <answer>
-
- <para>Try disabling the TCP extensions in <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">
- /etc/rc.conf</ulink> by changing the following variable to
- NO:</para>
-
- <programlisting>tcp_extensions=NO</programlisting>
-
- <para>Xylogic's Annex boxes are also broken in this regard and
- you must use the above change to connect thru them.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ip-multicast">
- <para>How do I enable IP multicast support?</para>
- </question>
-
- <answer>
- <para>Multicast host operations are fully supported in FreeBSD
- 2.0 and later by default. If you want your box to run as a
- multicast router, you will need to recompile your kernel with
- the <literal>MROUTING</literal> option and run
- <command>mrouted</command>. FreeBSD 2.2 and later will start
- <command>mrouted</command> at boot time if the flag
- <literal>mrouted_enable</literal> is set to
- <literal>"YES"</literal> in
- <filename>/etc/rc.conf</filename>.</para>
-
- <para>MBONE tools are available in their own ports category,
- mbone. If you are looking for the conference tools
- <command>vic</command> and <command>vat</command>,
- look there!</para>
-
- <para>For more information, see the <ulink
- URL="http://www.mbone.com/">
- Mbone Information Web</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dec-pci-chipset">
- <para>Which network cards are based on the DEC PCI
- chipset?</para>
- </question><answer>
-
- <para>Here is a list compiled by <ulink
- URL="mailto:gfoster@driver.nsta.org">Glen Foster</ulink>,
- with some more modern additions:</para>
-
-<programlisting>Vendor Model
-----------------------------------------------
-ASUS PCI-L101-TB
-Accton ENI1203
-Cogent EM960PCI
-Compex ENET32-PCI
-D-Link DE-530
-Dayna DP1203, DP2100
-DEC DE435, DE450
-Danpex EN-9400P3
-JCIS Condor JC1260
-Linksys EtherPCI
-Mylex LNP101
-SMC EtherPower 10/100 (Model 9332)
-SMC EtherPower (Model 8432)
-TopWare TE-3500P
-Znyx (2.2.x) ZX312, ZX314, ZX342, ZX345, ZX346, ZX348
- (3.x) ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442,
- ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="fqdn-hosts">
- <para>Why do I have to use the FQDN for hosts on my
- site?</para>
- </question>
-
- <answer>
- <para>You will probably find that the host is actually in a
- different domain; for example, if you are in foo.bar.edu and
- you wish to reach a host called <hostid>mumble</hostid> in the
- <hostid role="domainname">bar.edu</hostid> domain, you will
- have to refer to it by the fully-qualified domain name, <hostid
- role="fqdn">mumble.bar.edu</hostid>, instead of just
- <hostid>mumble</hostid>.</para>
-
- <para>Traditionally, this was allowed by BSD BIND resolvers.
- However the current version of <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?named">bind</ulink>
- that ships with FreeBSD no longer provides default
- abbreviations for non-fully qualified domain names other than
- the domain you are in. So an unqualified host
- <hostid>mumble</hostid> must either be found as <hostid
- role="fqdn">mumble.foo.bar.edu</hostid>, or it will be searched
- for in the root domain.</para>
-
- <para>This is different from the previous behavior, where the
- search continued across
- <hostid role="fqdn">mumble.bar.edu</hostid>, and
- <hostid role="domainname">mumble.edu</hostid>. Have a look at
- RFC 1535 for why this was considered bad practice, or even a
- security hole.</para>
-
- <para>As a good workaround, you can place the line</para>
-
- <programlisting>search foo.bar.edu bar.edu</programlisting>
-
- <para>instead of the previous</para>
-
- <programlisting>domain foo.bar.edu</programlisting>
-
- <para>into your <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?resolv.conf">
- /etc/resolv.conf</ulink> file. However, make sure that the
- search order does not go beyond the <quote>boundary between
- local and public administration</quote>, as RFC 1535 calls
- it.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="network-permission-denied">
- <para><literal>Permission denied</literal> for all networking
- operations.</para>
- </question>
-
- <answer>
- <para>If you have compiled your kernel with the
- <literal>IPFIREWALL</literal> option, you need to be aware
- that the default policy as of 2.1.7R (this actually changed
- during 2.1-STABLE development) is to deny all packets that are
- not explicitly allowed.</para>
-
- <para>If you had unintentionally misconfigured your system for
- firewalling, you can restore network operability by typing
- the following while logged in as root:</para>
-
- <screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>
-
- <para>You can also set <literal>firewall_type="open"</literal>
- in <filename>/etc/rc.conf</filename>.</para>
-
- <para>For further information on configuring a FreeBSD firewall,
- see the <ulink URL="../handbook/firewalls.html">
- Handbook section</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ipfw-overhead">
- <para>How much overhead does IPFW incur?</para>
- </question>
-
- <answer>
- <para>The answer to this depends mostly on your rule set and
- processor speed. For most applications dealing with ethernet
- and small rule sets, the answer is, negligible. For those of
- you that need actual measurements to satisfy your curiosity,
- read on.</para>
-
- <para>The following measurements were made using 2.2.5-STABLE
- on a 486-66. IPFW was modified to measure the time spent
- within the <literal>ip_fw_chk</literal> routine, displaying
- the results to the console every 1000 packets.</para>
-
- <para>Two rule sets, each with 1000 rules were tested. The
- first set was designed to demonstrate a worst case scenario
- by repeating the rule:</para>
-
- <screen>&prompt.root; <userinput>ipfw add deny tcp from any to any 55555</userinput></screen>
-
- <para>This demonstrates worst case by causing most of IPFW's
- packet check routine to be executed before finally deciding
- that the packet does not match the rule (by virtue of the port
- number). Following the 999th iteration of this rule was an
- <literal>allow ip from any to any</literal>.</para>
-
- <para>The second set of rules were designed to abort the rule
- check quickly:</para>
-
- <screen>&prompt.root; <userinput>ipfw add deny ip from 1.2.3.4 to 1.2.3.4</userinput></screen>
-
- <para>The nonmatching source IP address for the above rule causes
- these rules to be skipped very quickly. As before, the 1000th
- rule was an <literal>allow ip from any to any</literal>.</para>
-
- <para>The per-packet processing overhead in the former case was
- approximately 2.703ms/packet, or roughly 2.7 microseconds per
- rule. Thus the theoretical packet processing limit with these
- rules is around 370 packets per second. Assuming 10Mbps
- ethernet and a ~1500 byte packet size, we would only be able to
- achieve a 55.5% bandwidth utilization.</para>
-
- <para>For the latter case each packet was processed in
- approximately 1.172ms, or roughly 1.2 microseconds per rule.
- The theoretical packet processing limit here would be about
- 853 packets per second, which could consume 10Mbps ethernet
- bandwidth.</para>
-
- <para>The excessive number of rules tested and the nature of
- those rules do not provide a real-world scenario -- they were
- used only to generate the timing information presented here.
- Here are a few things to keep in mind when building an
- efficient rule set:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Place an <literal>established</literal> rule early
- on to handle the majority of TCP traffic. Don't put any
- <literal>allow tcp</literal> statements before this
- rule.</para>
- </listitem>
-
- <listitem>
- <para>Place heavily triggered rules earlier in the rule
- set than those rarely used (<emphasis remap=bf>without
- changing the permissiveness of the firewall</emphasis>,
- of course). You can see which rules are used most often
- by examining the packet counting statistics with
- <command>ipfw -a l</command>.</para>
- </listitem>
- </itemizedlist></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ipfw-fwd">
- <para>Why is my &man.ipfw.8; <quote>fwd</quote> rule to redirect a
- service to another machine not working?</para>
- </question>
-
- <answer>
- <para>Possibly because you want to do network address translation
- (NAT) and not just forward packets. A <quote>fwd</quote> rule
- does exactly what it says; it forwards packets. It does not
- actually change the data inside the packet. Say we have a rule
- like:</para>
-
- <screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
-
- <para>When a packet with a destination address of
- <replaceable>foo</replaceable> arrives at the machine with this
- rule, the packet is forwarded to
- <replaceable>10.0.0.1</replaceable>, but it still has the
- destination address of <replaceable>foo</replaceable>! The
- destination address of the packet is <emphasis>not</emphasis>
- changed to <replaceable>10.0.0.1</replaceable>. Most machines
- would probably drop a packet that they receive with a
- destination address that is not their own. Therefore, using a
- <quote>fwd</quote> rule does not often work the way the user
- expects. This behavior is a feature and not a bug.</para>
-
- <para>See the <link linkend="service-redirect">FAQ about
- redirecting services</link>, the &man.natd.8; manual, or one of
- the several port redirecting utilities in the <ulink
- url="../ports/">ports collection</ulink> for a correct way to do
- this.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="service-redirect">
- <para>How can I redirect service requests from one machine to
- another?</para>
- </question>
-
- <answer>
- <para>You can redirect FTP (and other service) request with
- the <literal>socket</literal> package, available in the ports
- tree in category <quote>sysutils</quote>. Simply replace the
- service's commandline to call socket instead, like so:</para>
-
- <programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.foo.com</replaceable> <replaceable>ftp</replaceable></programlisting>
-
- <para>where <replaceable>ftp.foo.com</replaceable> and
- <replaceable>ftp</replaceable> are the host and port to
- redirect to, respectively.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bandwidth-mgr-tool">
- <para>Where can I get a bandwidth management tool?</para>
- </question>
-
- <answer>
- <para>There are two bandwidth management tools available for
- FreeBSD. <ulink
- URL="http://www.csl.sony.co.jp/person/kjc/programs.html">
- ALTQ</ulink> is available for free; Bandwidth Manager from
- <ulink URL="http://www.etinc.com/">Emerging Technologies</ulink>
- is a commercial product. </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bpf-not-configured">
- <para>Why do I get <literal>/dev/bpf0: device not
- configured</literal>?</para>
- </question>
-
- <answer>
- <para>The Berkeley Packet Filter <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?bpf">(bpf)</ulink>
- driver needs to be enabled before running programs that
- utilize it. Add this to your kernel config file and build
- a new kernel:</para>
-
- <programlisting>pseudo-device bpfilter # Berkeley Packet Filter</programlisting>
-
- <para>Secondly, after rebooting you will have to create the
- device node. This can be accomplished by a change to the
- <filename>/dev</filename> directory, followed by the execution
- of:</para>
-
- <screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen>
-
- <para>Please see the <ulink
- URL="../handbook/kernelconfig-nodes.html">
- handbook's entry on device nodes</ulink> for more information
- on creating devices.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mount-smb-share">
- <para>How do I mount a disk from a Windows machine that's on my
- network, like smbmount in Linux?</para>
- </question>
-
- <answer>
- <para>Use the <ulink
- URL="http://www.freebsd.org/cgi/ports.cgi?query=%5Esharity-light-&;amp;stype=name">
- sharity light</ulink> package in the ports collection.</para>
-
-<!-- XXX update for bp's SMBFS in CURRENT, when it is imported! -->
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="icmp-response-bw-limit">
- <para>What are these messages about <quote>icmp-response
- bandwidth limit 300/200 pps</quote> in my log
- files?</para>
- </question>
-
- <answer>
- <para>This is the kernel telling you that some activity is
- provoking it to send more ICMP or TCP reset (RST)
- responses than it thinks it should. ICMP responses are
- often generated as a result of attempted connections to
- unused UDP ports. TCP resets are generated as a result of
- attempted connections to unopened TCP ports. Among
- others, these are the kinds of activities which may cause
- these messages:</para>
-
- <itemizedlist>
- <listitem>
- <para>Brute-force denial of service (DoS) attacks (as
- opposed to single-packet attacks which exploit a
- specific vulnerability).</para>
- </listitem>
-
- <listitem>
- <para>Port scans which attempt to connect to a large
- number of ports (as opposed to only trying a few
- well-known ports).</para>
- </listitem>
- </itemizedlist>
-
- <para>The first number in the message tells you how many
- packets the kernel would have sent if the limit wasn't in
- place, and the second number tells you the limit. You can
- control the limit using the
- <varname>net.inet.icmp.icmplim</varname> sysctl variable
- like this, where <literal>300</literal> is the limit in
- packets per second:</para>
-
- <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>
-
- <para>If you don't want to see messages about this in your
- log files, but you still want the kernel to do response
- limiting, you can use the
- <varname>net.inet.icmp.icmplim_output</varname> sysctl
- variable to disable the output like this:</para>
-
- <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>
-
- <para>Finally, if you want to disable response limiting, you
- can set the <varname>net.inet.icmp.icmplim</varname>
- sysctl variable (see above for an example) to
- <literal>0</literal>. Disabling response limiting is
- discouraged for the reasons listed above.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="ppp">
- <title>PPP</title>
-
- <qandaset>
- <qandaentry>
- <question id="userppp">
- <para>I can't make ppp work. What am I doing wrong?</para>
- </question>
-
- <answer>
- <para>You should first read the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">
- ppp man page</ulink> 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
- <emphasis remap=bf>ppp</emphasis> command prompt or it may be
- entered in the <filename>/etc/ppp/ppp.conf</filename>
- configuration file (the start of the
- <emphasis remap=bf>default</emphasis> section is the best
- place to put it). Make sure that <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?syslog.conf">
- /etc/syslog.conf</ulink> 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's going on
- from the log file. Don't worry if it doesn't all make sense.
- If you need to get help from someone, it may make sense to
- them.</para>
-
- <para>If your version of ppp doesn't 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>Ppp just hangs when I run it</para>
- </question>
-
- <answer>
- <para>This is usually because your hostname won't resolve.
- The best way to fix this is to make sure that
- <filename>/etc/hosts</filename> is consoluted 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're done.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nodial-auto">
- <para>Ppp won't dial in -auto mode</para>
- </question>
-
- <answer>
- <para>First, check that you've got a default route. By running
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">
- netstat -rn</ulink>, 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've used the addresses from the
- handbook, the man page or from the ppp.conf.sample file.
- If you haven't got a default route, it may be because you're
- running an old version of <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>
- that doesn't understand the word <literal>HISADDR</literal>
- in the ppp.conf file. If your version of
- <emphasis remap=bf>ppp</emphasis> 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
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">
- /etc/rc.conf</ulink> 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 <literal>No route to host</literal> 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 don't know the address of your gateway. If you're using
- interactive mode, you can type the following after entering
- <emphasis remap=tt>packet mode</emphasis> (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>My connection drops 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 <emphasis
- remap=bf>ppp</emphasis>s server socket using <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?telnet">telnet</ulink>
- or <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?pppctl">pppctl</ulink>.
- Refer to the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> man
- page for further details.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-drop-heavy-load">
- <para>My connection drops 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>My connection drops 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's 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>My connection hangs after a random amount of time</para>
- </question><answer>
-
- <para>Many people experience hung connections with no apparent
- explaination. 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 <command>ping</command> to see if the
- <acronym>TD</acronym> light is flashing when you transmit data.
- If it flashes (and the <acronym>RD</acronym> light doesn't),
- the problem is with the remote end. If <acronym>TD</acronym>
- doesn't flash, the problem is local. With an internal modem,
- you'll need to use the <literal>set server</literal> command in
- your <filename>ppp.conf</filename> file. When the hang occurs,
- connect to ppp using pppctl. If your network connection
- suddenly revives (ppp was revived due to the activity on the
- diagnostic socket) or if you can't 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 <command>ping</command> 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 isn't responding</para>
- </question>
-
- <answer>
- <para>There's very little you can do about this. Most ISPs
- will refuse to help if you're not running a Microsoft OS.
- You can <literal>enable lqr</literal> in your
- <filename>ppp.conf</filename> file, allowing ppp 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're 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 amunition when you contact
- your ISP (although it may make it apparent that you're 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>Ppp is hung</para>
- </question>
-
- <answer>
- <para>Your best bet here is to rebuild ppp 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 ppp hangs, find the ppp 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>Nothing happens after the Login OK! message</para>
- </question>
-
- <answer>
- <para>Prior to FreeBSD version 2.2.5, once the link was
- established, <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>
- 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
- <emphasis remap=bf>ppp</emphasis> to initiate the LCP, use the
- following line:</para>
-
- <programlisting>set openmode active</programlisting>
-
- <para><emphasis remap=bf>Note</emphasis>: 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 remap=bf>does</emphasis> do some harm.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-same-magic">
- <para>I keep seeing errors about magic being the same</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'll see
- repeated configure requests and configure acknowledgements in
- the log file until ppp 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 ppp from
- a login script or program after login. I've also heard reports
- of it happening consistently when using slirp. The reason is
- that in the time taken between getty exiting and ppp starting,
- the client-side ppp starts sending Line Control Protocol (LCP)
- packets. Because ECHO is still switched on for the port on
- the server, the client ppp 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 ppp sends LCP packets, sees the same magic in the
- reflected packet and NAKs it. It also sees the NAK reflect
- (which also means ppp 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 ppp starts on the server, it's flooded with magic number
- changes and almost immediately decides it's 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 ppp 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 ppp to be passive for 3 seconds, and then to
- start sending LCP requests. If the peer starts sending
- requests during this period, ppp 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 'till the connection is
- closed</para>
- </question>
-
- <answer>
- <para>There is currently an implementation mis-feature in
- <emphasis remap=bf>ppp</emphasis> where it doesn't associate
- LCP, CCP &amp; IPCP responses with their original requests. As
- a result, if one <emphasis remap=bf>ppp</emphasis>
- 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,
- <emphasis remap=bf>A</emphasis> and <emphasis
- remap=bf>B</emphasis>. <emphasis remap=bf>A</emphasis> starts
- sending LCP requests immediately after connecting and <emphasis
- remap=bf>B</emphasis> takes 7 seconds to start. When <emphasis
- remap=bf>B</emphasis> starts, <emphasis remap=bf>A</emphasis>
- has sent 3 LCP REQs. We're assuming the line has ECHO switched
- off, otherwise we'd see magic number problems as described in
- the previous section. <emphasis remap=bf>B</emphasis> sends a
- REQ, then an ACK to the first of <emphasis
- remap=bf>A</emphasis>'s REQs. This results in <emphasis
- remap=bf>A</emphasis> entering the <acronym>OPENED</acronym>
- state and sending and ACK (the first) back to <emphasis
- remap=bf>B</emphasis>. In the meantime, <emphasis
- remap=bf>B</emphasis> sends back two more ACKs in response to
- the two additional REQs sent by <emphasis remap=bf>A</emphasis>
- before <emphasis remap=bf>B</emphasis> started up. <emphasis
- remap=bf>B</emphasis> then receives the first ACK from
- <emphasis remap=bf>A</emphasis> and enters the
- <acronym>OPENED</acronym> state. <emphasis
- remap=bf>A</emphasis> receives the second ACK from <emphasis
- remap=bf>B</emphasis> and goes back to the <emphasis
- remap=bf>REQ-SENT</emphasis> 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, <emphasis
- remap=bf>B</emphasis> receives the forth REQ from <emphasis
- remap=bf>A</emphasis>, resulting in it reverting to the
- <emphasis remap=bf>ACK-SENT</emphasis> state and sending
- another (second) REQ and (forth) ACK as per the RFC. <emphasis
- remap=bf>A</emphasis> gets the REQ, goes into <emphasis
- remap=bf>REQ-SENT</emphasis> and sends another REQ. It
- immediately receives the following ACK and enters
- <acronym>OPENED</acronym>.</para>
-
- <para>This goes on 'till one side figures out that they're
- getting nowhere and gives up.</para>
-
- <para>The best way to avoid this is to configure one side to be
- <emphasis remap=bf>passive</emphasis> - 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
- <emphasis remap=bf>ppp</emphasis> waits for the peer to begin
- negotiations. Alternatively, the</para>
-
- <programlisting>set openmode active N</programlisting>
-
- <para>command (where <emphasis remap=bf>N</emphasis> 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>Ppp locks up shortly after connecting</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
- <emphasis remap=bf>ppp</emphasis> 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're still
- running an old version of <emphasis remap=bf>ppp</emphasis>,
- the problem can be circumvented with the line</para>
-
- <programlisting>disable pred1</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-shell-test-lockup">
- <para>Ppp locks up when I shell out to test it</para>
- </question>
-
- <answer>
- <para>When you execute the <command>shell</command> or
- <command>!</command> command, <command>ppp</command> executes a
- shell (or if you've passed any arguements,
- <command>ppp</command> will execute those arguements). 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
- <command>ppp</command> 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 ppp can continue to
- service the link.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-nullmodem">
- <para>Ppp over a null-modem cable never exits</para>
- </question>
-
- <answer>
- <para>There is no way for <emphasis remap=bf>ppp</emphasis> 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 ppp dial for no reason in -auto mode</para>
- </question><answer>
-
- <para>If <emphasis remap=bf>ppp</emphasis> 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 remap=bf>not</emphasis> prevent
- <emphasis remap=bf>ppp</emphasis> 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,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sendmail">
- sendmail</ulink> 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 ppp 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>Ppp locks 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 remap=bf>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 doesn't ppp 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> 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 don't 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 ppp 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 <emphasis remap=bf>ppp</emphasis> to read
- the whole CONNECT response.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ppp-ignores-backslash">
- <para>Ppp ignores 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 remap=bf>one</emphasis> argument. In order to specify
- a <literal>"</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'd 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>Ppp gets 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 ppp runs with an effective user id of 0,
- the operating system will not write ppps core image to disk
- before terminating it. If, however ppp
- <emphasis remap=bf>is</emphasis> actually termating due to a
- segmentation violation or some other signal that normally
- causes core to be dumped, <emphasis remap=bf>and</emphasis>
- you're sure you're 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 ppp installed.
- You will have to be root to run ppp as all of its privileges
- have been revoked. When you start ppp, take a careful note
- of what your current directory was at the time.</para>
-
- <para>Now, if and when ppp receives the segmentation violation,
- it will dump a core file called ppp.core. 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're 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>The process that forces a dial in auto mode never
- connects</para>
- </question>
-
- <answer>
- <para>This was a known problem with
- <emphasis remap=bf>ppp</emphasis> 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
- <emphasis remap=bf>iface</emphasis>.</para>
-
- <para>The problem was that when that initial program calls
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?connect">
- connect(2)</ulink>, 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. <emphasis
- remap=bf>Ppp</emphasis> then reads the packet and establishes a
- connection. If, as a result of <emphasis
- remap=bf>ppp</emphasis>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 aren't, 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 <emphasis remap=tt>:-)</emphasis>
- The current version of <emphasis remap=bf>ppp</emphasis> does
- this, but most other implementations don't.</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 <emphasis remap=bf>ppp</emphasis> is
- doing (with the help of <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">
- libalias(3)</ulink> and ppp's <option>-nat</option> switch) -
- it's 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. <emphasis remap=bf>Ppp</emphasis> 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 <emphasis remap=bf>ppp</emphasis>
- to change the source IP number, but only if it's 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 don't most games work with the -nat switch</para>
- </question>
-
- <answer>
- <para>The reason games and the like don't 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 doesn't 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're having problems with, then
- either run tcpdump on the tun interface of the gateway or
- enable ppp 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'll be dropped (that's 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 /etc/ppp/ppp.conf 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 won't 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 aren't consistent, there are three
- more options:</para>
-
- <para><emphasis remap=bf>1)</emphasis> 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>
-
- <para><emphasis remap=bf>2)</emphasis> 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>
-
- <para><emphasis remap=bf>3)</emphasis> Redirect everything to
- the internal machine using <literal>nat addr</literal>. This
- is the sledge-hammer approach.</para>
- </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've 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>
- </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 <emphasis remap=bf>F</emphasis>rame
- <emphasis remap=bf>C</emphasis>heck
- <emphasis remap=bf>S</emphasis>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've 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
- <command>ppp</command> 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's possible to terminate ppp 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's 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 remap=bf>and</emphasis> have the <quote>don't
- 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 don't fit into the PPPoE pipe the Telco router
- drops them on the floor and your page doesn't 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>
-
- <literallayout>
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU
- </literallayout>
-
- <para>It should be a string with a value <quote>1450</quote>
- (more accurately it should be <quote>1464</quote> to fit TCP
- packets into a PPPoE frame perfectly but the
- <quote>1450</quote> gives you a margin of error for other IP
- protocols you may encounter). This registry key is reported to
- have moved to
- <literal>Tcpip\Parameters\Interfaces\<replaceable>ID for adapter</replaceable>\MTU</literal>
- in Windows 2000.</para>
-
- <para>Refer to <ulink
- URL="http://search.support.microsoft.com/kb">Microsoft Knowledge
- Base</ulink> documents <quote>Q158474 - Windows TCPIP Registry
- Entries</quote> and <quote>Q120642 - TCPIP & NBT Configuration
- Parameters for Windows NT </quote> for more information on
- changing Windoze MTU to work with a FreeBSD/NAT/PPPoE
- router.</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 <emphasis remap=bf>ppp</emphasis>
- (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're stuck
- with an older version of <emphasis remap=bf>ppp</emphasis>, you
- may want to look at the <emphasis remap=bf>tcpmssd</emphasis>
- port.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="desperation">
- <para>None of this helps - I'm desperate!</para>
- </question>
-
- <answer>
- <para>If all else fails, send as much information as you can,
- including your config files, how you're starting
- <emphasis remap=bf>ppp</emphasis>, the relevant parts of your
- log file and the output of the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">
- netstat -rn</ulink> command (before and after connecting) to
- the <email>freebsd-questions@FreeBSD.org</email> mailing list
- 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>
-
- <qandaentry>
- <question id="free-account">
- <para>Where can I find a free FreeBSD account?</para>
- </question>
-
- <answer>
- <para>While FreeBSD does not provide open access to any of their
- servers, others do provide open access Unix systems. The
- charge varies and limited services may be available.</para>
-
- <para><ulink URL="http://www.arbornet.org/">Arbornet,
- Inc</ulink>, also known as M-Net, has been providing open
- access to Unix systems since 1983. Starting on an Altos
- running System III, the site switched to BSD/OS in 1991. In
- June of 2000, the site switched again to FreeBSD. M-Net can be
- accessed via telnet and SSH and provides basic access to the
- entire FreeBSD software suite. However, network access is
- limited to members and patrons who donate to the system, which
- is run as a non-proft organization. M-Net also provides an
- bulletin board system and interactive chat.</para>
-
- <para><ulink URL="http://www.grex.org/">Grex</ulink> provides a
- site very similar to M-Net including the same bulletin board
- and interactive chat software. However, the machine is a Sun
- 4M and is running SunOS</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's up and running.</para>
-
- <para>Here's 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 aren't
- right for your system, or if you've 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
- <filename>tty0X</filename> are missing!</para>
- </question>
-
- <answer>
- <para>Don't worry, they have been merged with the
- <filename>ttydX</filename> devices. You'll 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, <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio2</ulink>
- (known as COM3 in DOS), is on <filename>/dev/cuaa2</filename>
- for dial-out devices, and on <filename>/dev/ttyd2</filename>
- for dial-in devices. What's the difference between these two
- classes of devices?</para>
-
- <para>You use <filename>ttydX</filename> for dial-ins. When
- opening <filename>/dev/ttydX</filename> in blocking mode, a
- process will wait for the corresponding
- <filename>cuaaX</filename> device to become inactive, and then
- wait for the carrier detect line to go active. When you open
- the <filename>cuaaX</filename> device, it makes sure the serial
- port isn't already in use by the <filename>ttydX</filename>
- device. If the port's available, it <quote>steals</quote> it
- from the <filename>ttydX</filename> device. Also, the
- <filename>cuaXX</filename> device doesn't care about carrier
- detect. With this scheme and an auto-answer modem, you can have
- remote users log in and you can still dialout 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio</ulink> 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'll 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 <filename>ttydX</filename> (or
- <filename>cuaaX</filename>) device is the regular device
- you'll want to open for your applications. When a process
- opens the device, it'll 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's 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
- <filename>XON/XOFF</filename> 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 <filename>ttyd5</filename> to 57600 bps, do</para>
-
- <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
-
- <para>Now, an application that opens <filename>ttyd5</filename>
- 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink>
- 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'll 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">
- /etc/ttys</ulink> 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
- (<filename>/dev/ttyd1</filename>) has a modem connected
- running at 57600 bps and no parity
- (<literal>std.57600</literal>, which comes from the file <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?gettytab">/etc/gettytab</ulink>).
- The terminal type for this port is <literal>dialup</literal>.
- The port is <literal>on</literal> and is
- <literal>insecure</literal>---meaning root logins on the port
- aren't allowed. For dialin ports like this one, use the
- <literal>ttydX</literal> entry.</para>
-
- <para>It's common practice to use <literal>dialup</literal> as
- the terminal type. Many users set up in their .profile or
- .login files a prompt for the actual terminal type if the
- starting type is dialup. The example shows the port as
- insecure. To become root on this port, you have to login as a
- regular user, then <command>su</command> 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">
- /etc/ttys</ulink>, you need to send a hangup or
- <acronym>HUP</acronym> signal to the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?init">
- init</ulink> process:</para>
-
- <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
-
- <para>This forces the init process to reread <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">
- /etc/ttys</ulink>. 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're using another computer as a terminal into your
- FreeBSD system, get a null modem cable to go between the two
- serial ports. If you're using an actual terminal, see its
- accompanying instructions.</para>
-
- <para>Then, modify <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">
- /etc/ttys</ulink>, like above. For example, if you're
- 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
- <filename>/dev/ttyd4</filename> has a wyse50 terminal
- connected at 38400 bps with no parity
- (<literal>std.38400</literal> from <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?gettytab">
- /etc/gettytab</ulink>) and <literal>root</literal> logins are
- allowed (secure).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="cannot-tip">
- <para>Why can't I run <command>tip</command> or
- <command>cu</command>?</para>
- </question>
-
- <answer>
- <para>On your system, the programs <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>
- and <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cu">
- cu</ulink> are probably executable only by <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?uucp">uucp</ulink>
- and group <literal>dialer</literal>. You can use the group
- <literal>dialer</literal> 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 <command>tip</command> and <command>cu</command> 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 isn't supported---what
- can I do?</para>
- </question>
-
- <answer>
- <para>Actually, the man page for <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> is
- out of date. There is a generic Hayes dialer already built in.
- Just use <literal>at=hayes</literal> in your <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?remote">
- /etc/remote</ulink> file.</para>
-
- <para>The Hayes driver isn't 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>
- (using <literal>ATX0&amp;W</literal>).</para>
-
- <para>Also, the dial timeout for <command>tip</command> is 60
- seconds. Your modem should use something less, or else tip
- will think there's a communication problem. Try
- <literal>ATS7=45&amp;W</literal>.</para>
-
- <para>Actually, as shipped <command>tip</command> doesn't 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's called a <quote>direct</quote> entry in your
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">
- /etc/remote</ulink> file. For example, if your modem's hooked
- up to the first serial port, <filename>/dev/cuaa0</filename>,
- 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip cuaa0</ulink>
- and you'll be connected to your modem.</para>
-
- <para>If there is no <filename>/dev/cuaa0</filename> 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 root with the following command:</para>
-
- <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
-
- <para>with line being the serial port (e.g.
- <filename>/dev/cuaa0</filename>) and speed 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>The <literal>&lt;@&gt;</literal> sign for the pn
- capability doesn't 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's called a <quote>generic</quote> entry in your
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">
- /etc/remote</ulink> file. 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?cu">cu</ulink>
- over <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">
- tip</ulink>, 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. <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>
- thinks a good default is 1200 bps which is why it looks for
- a <literal>tip1200</literal> entry. You don't have to use 1200
- bps, though.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="terminal-server">
- <para>I access a number of hosts through a terminal
- server.</para>
- </question>
-
- <answer>
- <para>Rather than waiting until you're connected and typing
- <literal>CONNECT <replaceable>host</replaceable></literal>
- each time, use tip's <literal>cm</literal> capability. For
- example, these entries in <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?remote">
- /etc/remote</ulink>:</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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?remote">
- /etc/remote</ulink> 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
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?phones">
- /etc/phones</ulink>:</para>
-
- <programlisting>big-university 5551111
-big-university 5551112
-big-university 5551113
-big-university 5551114</programlisting>
-
- <para><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">
- tip</ulink> will try each one in the listed order, then give
- up. If you want to keep retrying, run <command>tip</command>
- 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 <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>
- 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've 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>&#36;HOME/.tiprc</filename> file:</para>
-
- <programlisting>force=<replaceable>single-char</replaceable></programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uppercase">
- <para>Suddenly everything I type is in UPPER CASE??</para>
- </question>
-
- <answer>
- <para>You must've pressed CTRL+A, <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?tip">
- tip</ulink> <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's 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're talking to another UNIX system, you can send
- and receive files with <literal>~p</literal> (put) and
- <literal>~t</literal> (take). These commands run <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?cat">cat</ulink> and
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?echo">
- echo</ulink> 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's 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
- <emphasis remap=tt>tip</emphasis>?</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,
- <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^lrzsz">
- lrzsz</ulink> and <ulink
- URL="http://www.FreeBSD.org/cgi/ports.cgi?^rzsz">
- rzsz</ulink>).</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>FreeBSD can't seem to 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>Miscellaneous Questions</title>
-
- <qandaset>
- <qandaentry>
- <question id="more-swap">
- <para>FreeBSD uses far more swap space than Linux. Why?</para>
- </question>
-
- <answer>
- <para>FreeBSD only appears to use more swap than Linux. In
- actual fact, it does not. The main difference between FreeBSD
- and Linux in this regard is that FreeBSD will proactively move
- entirely idle, unused pages of main memory into swap in order
- to make more main memory available for active use. Linux tends
- to only move pages to swap as a last resort. The perceived
- heavier use of swap is balanced by the more efficient use of
- main memory. </para>
-
- <para>Note that while FreeBSD is proactive in this regard, it
- does not arbitrarily decide to swap pages when the system is
- truely idle. Thus you will not find your system all paged
- out when you get up in the morning after leaving it idle
- overnight.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="top-freemem">
- <para>Why does &man.top.1; show very little free memory even
- when I have very few programs running?</para>
- </question>
-
- <answer>
- <para>The simple answer is that free memory is wasted
- memory. Any memory that your programs don't actively
- allocate is used within the FreeBSD kernel as disk
- cache. The values shown by &man.top.1; labelled as
- <literal>Inact</literal>, <literal>Cache</literal>, and
- <literal>Buf</literal> are all cached data at different
- aging levels. This cached data means the system does
- not have to access a slow disk again for data it has
- accessed recently, thus increasing overall performance.
- In general, a low value shown for <literal>Free</literal>
- memory in &man.top.1; is good, provided it is not
- <emphasis>very</emphasis> low.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="aout-elf">
- <para>Why use (what are) a.out and ELF executable
- formats? </para>
- </question>
-
- <answer>
- <para>To understand why FreeBSD uses the
- <filename>ELF</filename> format, you must first know a little
- about the 3 currently <quote>dominant</quote> executable
- formats for UNIX:</para>
-
- <para>
- <note>
- <para>Prior to FreeBSD 3.x, FreeBSD used the a.out
- format.</para>
- </note></para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">
- a.out</ulink></para>
-
- <para>The oldest and <quote>classic</quote> unix object
- format. It uses a short and compact header with a magic
- number at the beginning that's often used to
- characterize the format (see <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">
- a.out(5)</ulink> for more details). It contains three
- loaded segments: .text, .data, and .bss plus a symbol
- table and a string table.</para>
-
- <para></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><acronym>ELF</acronym></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></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's compliant with. See the
- man page for <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?brandelf">
- brandelf</ulink> for more information.</para>
- </listitem>
- </itemizedlist></para>
-
- <para>FreeBSD comes from the <quote>classic</quote> camp and has
- traditionally used the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">
- a.out</ulink> format, a technology tried and proven through
- many generations of BSD releases. Though it has also been
- possible for some time to build and run native
- <acronym>ELF</acronym> binaries (and kernels) on a FreeBSD
- system, 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.</para>
-
- <para>In FreeBSD's case, our shared library mechanism is based
- more closely on Sun's <emphasis remap=tt>SunOS</emphasis>-style
- shared library mechanism and, as such, is very easy to use.
- However, starting with 3.0, FreeBSD officially supports
- <acronym>ELF</acronym> binaries as the default format. Even
- though the <filename>a.out</filename> executable format has
- served us well, the GNU people, who author the compiler tools
- we use, have dropped support for the <filename>a.out</filename>
- format. This has forced us to maintain a divergent version of
- the compler and linker, and has kept us from reaping the
- benefits of the latest GNU development efforts. Also the
- demands of ISO-C++, notably contstructors and destructors, has
- also led to native <acronym>ELF</acronym> support in future
- FreeBSD releases.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="binary-formats">
- <para>Yes, but why are there so many different formats?</para>
- </question>
-
- <answer>
- <para>Back in the dim, dark past, there was simple hardware.
- This simple hardware supported a simple, small system. a.out
- 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 a.out 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'd 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 RISC), <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/or swap space. Languages became
- more sophistocated 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> wasn't 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 write these programs rewrote them and added simpler
- support for building cross compilers, plugging in different
- formats at will, etc. Since many people wanted to build cross
- compilers targeting FreeBSD, they were out of luck since the
- older sources that FreeBSD had for as and ld weren't up to the
- task. The new gnu tools chain (binutils) does support cross
- compiling, <acronym>ELF</acronym>, shared libraries, C++
- extnensions, etc. In addition, many vendors are releasing
- <acronym>ELF</acronym> binaries, and it is a good thing for
- FreeBSD to run them. And if it is running
- <acronym>ELF</acronym> binaries, why bother having
- <filename>a.out</filename> any more? It is a tired old horse
- that has proven useful for a long time, but it is time to turn
- him out to pasture for his long, faithful years of
- service.</para>
-
- <para><acronym>ELF</acronym> is more expressive than a.out and
- will allow 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 a.out, 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 GENERIC
- kernel, and eventually removed from the kernel once the need to
- run legacy <filename>a.out</filename> programs is past.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="chmod-symlinks">
- <para>Why won't chmod change the permissions on symlinks?</para>
- </question>
-
- <answer>
- <para>Symlinks do not have permissions, and by default,
- &man.chmod.1; will not follow symlinks to change the
- permissions on the target file. So if you have a file,
- <filename>foo</filename>, and a symlink to that file,
- <filename>bar</filename>, then this command will always
- succeed.</para>
-
- <screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen>
-
- <para>However, the permissions on <filename>foo</filename> will
- not have changed.</para>
-
- <para>You have to use either <option>-H</option> or
- <option>-L</option> together with the <option>-R</option>
- option to make this work. See the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink>
- and <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?symlink">
- symlink</ulink> man pages for more info.</para>
-
- <para>
- <warning>
- <para>The <option>-R</option> option does a
- <acronym>RECURSIVE</acronym>
- <emphasis remap=tt>chmod</emphasis>. Be careful about
- specifying directories or symlinks to directories to
- <emphasis remap=tt>chmod</emphasis>. If you want to
- change the permissions of a directory referenced by a
- symlink, use <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">
- chmod</ulink> without any options and follow the symlink
- with a trailing slash (<filename>/</filename>). For
- example, if <filename>foo</filename> is a symlink to
- directory <filename>bar</filename>, and you want to change
- the permissions of <filename>foo</filename> (actually
- <filename>bar</filename>), you would do something
- like:</para>
-
- <screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>
-
- <para>With the trailing slash, <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">
- chmod</ulink> will follow the symlink,
- <filename>foo</filename>, to change the permissions of the
- directory, <filename>bar</filename>.</para>
- </warning></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="login-8char">
- <para>Why are login names <emphasis remap=bf>still</emphasis>
- restricted to 8 characters?</para>
- </question>
-
- <answer>
-
- <para>You'd think it'd be easy enough to change
- <literal>UT_NAMESIZE</literal> and rebuild the whole world,
- and everything would just work. Unfortunately there are often
- scads of applications and utilities (including system tools)
- that have hard-coded small numbers (not always
- <literal>8</literal> or <literal>9</literal>, but oddball ones
- like <literal>15</literal> and <literal>20</literal>) in
- structures and buffers. Not only will this get you log files
- which are trashed (due to variable-length records getting
- written when fixed records were expected), but it can break
- Sun's NIS clients and potentially cause other problems in
- interacting with other UNIX systems.</para>
-
- <para>In FreeBSD 3.0 and later, the maximum name length has
- been increased to 16 characters and those various utilities
- with hard-coded name sizes have been found and fixed. The fact
- that this touched so many areas of the system is why, in fact,
- the change was not made until 3.0.</para>
-
- <para>If you're absolutely confident in your ability to find
- and fix these sorts of problems for yourself when and if they
- pop up, you can increase the login name length in earlier
- releases by editing /usr/include/utmp.h and changing
- UT_NAMESIZE accordingly. You must also update MAXLOGNAME in
- /usr/include/sys/param.h to match the UT_NAMESIZE change.
- Finally, if you build from sources, don't forget that
- /usr/include is updated each time! Change the appropriate files
- in /usr/src/.. instead.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dos-binaries">
- <para>Can I run DOS binaries under FreeBSD?</para>
- </question>
-
- <answer>
- <para>Yes, starting with version 3.0 you can using BSDI's
- <emphasis remap=tt>doscmd</emphasis> DOS emulation which has
- been integrated and enhanced. Send mail to <ulink
- URL="mailto:freebsd-emulation@FreeBSD.org">The FreeBSD
- emulation discussion list</ulink> if you're interested in
- joining this ongoing effort!</para>
-
- <para>For pre-3.0 systems, there is a neat utility called
- <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^pcemu">
- pcemu</ulink> in the ports collection which emulates an 8088
- and enough BIOS services to run DOS text mode applications.
- It requires the X Window System (provided as XFree86).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="sup-define">
- <para>What is <command>sup</command>, and how do I use
- it?</para>
- </question>
-
- <answer>
- <para><ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^sup">
- SUP</ulink> stands for Software Update Protocol, and was
- developed by CMU for keeping their development trees in sync.
- We used it to keep remote sites in sync with our central
- development sources.</para>
-
- <para>SUP is not bandwidth friendly, and has been retired.
- The current recommended method to keep your sources up to
- date is <ulink URL="../handbook/synching.html#CVSUP">
- Handbook entry on CVSup</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="very-very-cool">
- <para>How cool is FreeBSD?</para>
- </question>
-
- <answer>
- <para>Q. Has anyone done any temperature testing while
- running FreeBSD? I know Linux runs cooler than dos, but have
- never seen a mention of FreeBSD. It seems to run really
- hot.</para>
-
- <para>A. No, but we have done numerous taste tests on
- blindfolded volunteers who have also had 250 micrograms of
- LSD-25 administered beforehand. 35% of the volunteers said that
- FreeBSD tasted sort of orange, whereas Linux tasted like purple
- haze. Neither group mentioned any significant variances in
- temperature. We eventually had to throw the
- results of this survey out entirely anyway when we found that
- too many volunteers were wandering out of the room during the
- tests, thus skewing the results. We think most of the volunteers
- are at Apple now, working on their new <quote>scratch and
- sniff</quote> GUI. It's a funny old business we're in!</para>
-
- <para>Seriously, both FreeBSD and Linux use the
- <acronym>HLT</acronym> (halt) instruction when the system is
- idle thus lowering its energy consumption and therefore the
- heat it generates. Also if you have APM (advanced power
- management) configured, then FreeBSD can also put the CPU into
- a low power mode.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="letmeoutofhere">
- <para>Who's scratching in my memory banks??</para>
- </question>
-
- <answer>
- <para>Q. Is there anything <quote>odd</quote> that FreeBSD
- does when compiling the kernel which would cause the memory to
- make a scratchy sound? When compiling (and for a brief moment
- after recognizing the floppy drive upon startup, as well), a
- strange scratchy sound emanates from what appears to be the
- memory banks.</para>
-
- <para>A. Yes! You'll see frequent references to
- <quote>daemons</quote> in the BSD documentation, and what most
- people don't know is that this refers to genuine, non-corporeal
- entities that now possess your computer. The scratchy sound
- coming from your memory is actually high-pitched whispering
- exchanged among the daemons as they best decide how to deal
- with various system administration tasks.</para>
-
- <para>If the noise gets to you, a good
- <command>fdisk /mbr</command> from DOS will get rid of them,
- but don't be surprised if they react adversely and try to stop
- you. In fact, if at any point during the exercise you hear the
- satanic voice of Bill Gates coming from the built-in speaker,
- take off running and don't ever look back! Freed from the
- counterbalancing influence of the BSD daemons, the twin demons
- of DOS and Windows are often able to re-assert total control
- over your machine to the eternal damnation of your soul.
- Now that you know, given a choice you'd probably prefer to get
- used to the scratchy noises, no?</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="define-MFC">
- <para>What does <acronym>MFC</acronym> mean?</para>
- </question>
-
- <answer>
- <para>MFC is an acronym for <quote>Merged From -CURRENT</quote>.
- It's used in the CVS logs to denote when a change was
- migrated from the CURRENT to the STABLE branches.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="define-BSD">
- <para>What does <acronym>BSD</acronym> mean?</para>
- </question>
-
- <answer>
- <para>It stands for something in a secret language that only
- members can know. It doesn't translate literally but its ok
- to tell you that BSD's translation is something between,
- <quote>Formula-1 Racing Team</quote>, <quote>Penguins are
- tasty snacks</quote>, and <quote>We have a better sense of
- humor than Linux</quote>. :-)</para>
-
- <para>Seriously, BSD is an acronym for <quote>Berkeley
- Software Distribution</quote>, which is the name the
- Berkeley <acronym>CSRG</acronym> (Computer Systems Research
- Group) chose for their Unix distribution way back when.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="define-repocopy">
- <para>What is a repo-copy?</para>
- </question>
-
- <answer>
- <para>A repo-copy (which is a short form of <quote>repository
- copy</quote>) refers to the direct copying of files within
- the CVS repository.</para>
-
- <para>Without a repo-copy, if a file needed to be copied or
- moved to another place in the repository, the committer would
- run <command>cvs add</command> to put the file in its new
- location, and then <command>cvs rm</command> on the old file
- if the old copy was being removed.</para>
-
- <para>The disadvantage of this method is that the history
- (i.e. the entries in the CVS logs) of the file would not be
- copied to the new location. As the FreeBSD Project considers
- this history very useful, a repository copy is often used
- instead. This is a process where one of the repository meisters
- will copy the files directly within the repository, rather than
- using the <command>cvs</command> program.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bikeshed-painting">
- <para>Why should I care what color the bikeshed is?</para>
- </question>
-
- <answer>
- <para>The really, really short answer is that you shouldn't.
- The somewhat longer answer is that just because you are
- capable of building a bikeshed doesn't mean you should stop
- others from building one just because you don't like the
- color they plan to paint it. This is a metaphor indicating
- that you need not argue about every little feature just
- because you know enough to do so. Some people have
- commented that the amount of noise generated by a change is
- inversely proportional to the complexity of the
- change.</para>
-
- <para>The longer and more complete answer is that after a very
- long argument about whether &man.sleep.1; should take
- fractional second arguments, &a.phk; posted a long
- message entitled <quote><ulink
- url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A bike
- shed (any colour will do) on greener grass...</ulink></quote>.
- The appropriate portions of that message are quoted
- below.</para>
-
- <blockquote>
- <attribution>&a.phk; on freebsd-hackers, October
- 2, 1999</attribution>
-
- <para>
- <quote>What is it about this bike shed?</quote> Some
- of you have asked me.</para>
-
- <para>It's a long story, or rather it's an old story, but
- it is quite short actually. C. Northcote Parkinson wrote
- a book in the early 1960'ies, called <quote>Parkinson's
- Law</quote>, which contains a lot of insight into the
- dynamics of management.</para>
-
- <para>[snip a bit of commentary on the book]</para>
-
- <para>In the specific example involving the bike shed, the
- other vital component is an atomic power-plant, I guess
- that illustrates the age of the book.</para>
-
- <para>Parkinson shows how you can go in to the board of
- directors and get approval for building a multi-million or
- even billion dollar atomic power plant, but if you want to
- build a bike shed you will be tangled up in endless
- discussions.</para>
-
- <para>Parkinson explains that this is because an atomic
- plant is so vast, so expensive and so complicated that
- people cannot grasp it, and rather than try, they fall
- back on the assumption that somebody else checked all the
- details before it got this far. Richard P. Feynmann
- gives a couple of interesting, and very much to the point,
- examples relating to Los Alamos in his books.</para>
-
- <para>A bike shed on the other hand. Anyone can build one
- of those over a weekend, and still have time to watch the
- game on TV. So no matter how well prepared, no matter how
- reasonable you are with your proposal, somebody will seize
- the chance to show that he is doing his job, that he is
- paying attention, that he is
- <emphasis>here</emphasis>.</para>
-
- <para>In Denmark we call it <quote>setting your
- fingerprint</quote>. It is about personal pride and
- prestige, it is about being able to point somewhere and
- say <quote>There! <emphasis>I</emphasis> did that.</quote>
- It is a strong trait in politicians, but present in most
- people given the chance. Just think about footsteps in
- wet cement.</para>
- </blockquote>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="changing-lightbulbs">
- <para>How many FreeBSD hackers does it take to change a
- lightbulb?</para>
- </question>
-
- <answer>
- <para>One thousand, one hundred and seventy-two:</para>
-
- <para>Twenty-three to complain to -CURRENT about the lights
- being out;</para>
-
- <para>Four to claim that it is a configuration problem, and
- that such matters really belong on -questions;</para>
-
- <para>Three to submit PRs about it, one of which is misfiled
- under doc and consists only of "it's dark";</para>
-
- <para>One to commit an untested lightbulb which breaks
- buildworld, then back it out five minutes later;</para>
-
- <para>Eight to flame the PR originators for not including
- patches in their PRs;</para>
-
- <para>Five to complain about buildworld being broken;</para>
-
- <para>Thirty-one to answer that it works for them, and they
- must have cvsupped at a bad time;</para>
-
- <para>One to post a patch for a new lightbulb to -hackers;</para>
-
- <para>One to complain that he had patches for this three years
- ago, but when he sent them to -CURRENT they were just ignored,
- and he has had bad experiences with the PR system; besides,
- the proposed new lightbulb is non-reflexive;</para>
-
- <para>Thirty-seven to scream that lightbulbs do not belong in
- the base system, that committers have no right to do things
- like this without consulting the Community, and WHAT IS
- -CORE DOING ABOUT IT!?</para>
-
- <para>Two hundred to complain about the color of the bicycle
- shed;</para>
-
- <para>Three to point out that the patch breaks style(9);</para>
-
- <para>Seventeen to complain that the proposed new lightbulb is
- under GPL;</para>
-
- <para>Five hundred and eighty-six to engage in a flame war
- about the comparative advantages of the GPL, the BSD
- license, the MIT license, the NPL, and the personal hygiene
- of unnamed FSF founders;</para>
-
- <para>Seven to move various portions of the thread to -chat
- and -advocacy;</para>
-
- <para>One to commit the suggested lightbulb, even though it
- shines dimmer than the old one;</para>
-
- <para>Two to back it out with a furious flame of a commit
- message, arguing that FreeBSD is better off in the dark than
- with a dim lightbulb;</para>
-
- <para>Forty-six to argue vociferously about the backing out
- of the dim lightbulb and demanding a statement from
- -core;</para>
-
- <para>Eleven to request a smaller lightbulb so it will fit
- their Tamagotchi if we ever decide to port FreeBSD to that
- platform;</para>
-
- <para>Seventy-three to complain about the SNR on -hackers and
- -chat and unsubscribe in protest;</para>
-
- <para>Thirteen to post "unsubscribe", "How do I unsubscribe?",
- or "Please remove me from the list", followed by the usual
- footer;</para>
-
- <para>One to commit a working lightbulb while everybody is too
- busy flaming everybody else to notice;</para>
-
- <para>Thirty-one to point out that the new lightbulb would shine
- 0.364% brighter if compiled with TenDRA (although it will have
- to be reshaped into a cube), and that FreeBSD should therefore
- switch to TenDRA instead of EGCS;</para>
-
- <para>One to complain that the new lightbulb lacks
- fairings;</para>
-
- <para>Nine (including the PR originators) to ask
- "what is MFC?";</para>
-
- <para>Fifty-seven to complain about the lights being out two
- weeks after the bulb has been changed.</para>
-
- <para><emphasis>&a.nik; adds:</emphasis></para>
-
- <para><emphasis>I was laughing quite hard at
- this.</emphasis></para>
-
- <para><emphasis>And then I thought,
- "Hang on, shouldn't there be '1 to document it.' in that list somewhere?"</emphasis></para>
-
- <para><emphasis>And then I was enlightened :-)</emphasis></para>
-
- <para><emphasis>This entry is Copyright (c) 1999 &a.des;.
- Please do not reproduce without attribution.</emphasis></para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="hackers">
- <title>For serious FreeBSD hackers only</title>
-
- <qandaset>
- <qandaentry>
- <question id="define-snap-release">
- <para>What are SNAPs and RELEASEs?</para>
- </question>
-
- <answer>
- <para>There are currently three active/semi-active branches
- in the FreeBSD <ulink
- URL="http://www.FreeBSD.org/cgi/cvsweb.cgi">
- CVS Repository</ulink> (the RELENG_2 branch is probably
- only changed twice a year, which is why there are only three
- active branches of development):</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><literal>RELENG_2_2</literal> AKA
- <emphasis>2.2-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>RELENG_3</literal> AKA
- <emphasis>3.X-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>RELENG_4</literal> AKA
- <emphasis>4-STABLE</emphasis></para>
- </listitem>
-
- <listitem>
- <para><literal>HEAD</literal> AKA
- <emphasis>-CURRENT</emphasis> AKA
- <emphasis>5.0-CURRENT</emphasis></para>
- </listitem>
-
- </itemizedlist></para>
-
- <para><literal>HEAD</literal> is not an actual branch tag,
- like the other two; it's simply a symbolic constant for
- <quote><emphasis>the current, non-branched development
- stream</emphasis></quote> which we simply refer to as
- <quote>-CURRENT</quote>.</para>
-
- <para>Right now, <quote>-CURRENT</quote> is the 5.0 development
- stream and the <emphasis remap=bf>4-STABLE</emphasis> branch,
- <symbol>RELENG_4</symbol>, forked off from
- <quote>-CURRENT</quote> in Mar 2000.</para>
-
- <para>The <emphasis remap=bf>2.2-STABLE</emphasis> branch,
- <symbol>RELENG_2_2</symbol>, departed -CURRENT in November
- 1996, and has pretty much been retired.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custrel">
- <para>How do I make my own custom release?</para>
- </question>
-
- <answer>
- <para>To make a release you need to do three things: First,
- you need to be running a kernel with the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?vn">vn</ulink>
- driver configured in. Add this to your kernel config file
- and build a new kernel:</para>
-
- <programlisting>pseudo-device vn #Vnode driver (turns a file into a device)</programlisting>
-
- <para>Second, you have to have the whole CVS repository at
- hand. To get this you can use <ulink
- URL="../handbook/synching.html#CVSUP">CVSUP</ulink> but in
- your supfile set the release name to cvs and remove any tag or
- date fields:</para>
-
- <programlisting>*default prefix=/home/ncvs
-*default base=/a
-*default host=cvsup.FreeBSD.org
-*default release=cvs
-*default delete compress use-rel-suffix
-
-## Main Source Tree
-src-all
-src-eBones
-src-secure
-
-# Other stuff
-ports-all
-www
-doc-all</programlisting>
-
- <para>Then run <command>cvsup -g supfile</command> to suck all
- the good bits onto your box...</para>
-
- <para>Finally, you need a chunk of empty space to build into.
- Let's say it's in <filename>/some/big/filesystem</filename>,
- and from the example above you've got the CVS repository in
- <filename>/home/ncvs</filename>:</para>
-
- <screen>&prompt.root; <userinput>setenv CVSROOT /home/ncvs</userinput> # or export CVSROOT=/home/ncvs
-&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make buildworld</userinput>
-&prompt.root; <userinput>cd /usr/src/release</userinput>
-&prompt.root; <userinput>make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release</userinput>
- </screen>
-
- <blockquote>
- <note>
- <para>Please note that you <emphasis>do not</emphasis>
- need to build world if you already have a populated
- <filename>/usr/obj</filename>.</para>
- </note>
- </blockquote>
-
- <para>An entire release will be built in
- <filename>/some/big/filesystem/release</filename> and you
- will have a full FTP-type installation in
- <filename>/some/big/filesystem/release/R/ftp</filename> when
- you're done. If you want to build your SNAP along some other
- branch than -CURRENT, you can also add
- <literal>RELEASETAG=SOMETAG</literal> to the make release
- command line above, e.g. <literal>RELEASETAG=RELENG_2_2</literal>
- would build an up-to-the- minute 2.2-STABLE snapshot.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custom-install-disks">
- <para>How do I create customized installation disks?</para>
- </question>
-
- <answer>
- <para>The entire process of creating installation disks and
- source and binary archives is automated by various targets in
- <filename>/usr/src/release/Makefile</filename>. The information
- there should be enough to get you started. However, it should
- be said that this involves doing a <command>make
- world</command> and will therefore take up a lot of time and
- disk space.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="makeworld-clobbers">
- <para><command>make world</command> clobbers my existing
- installed binaries.</para>
- </question>
-
- <answer>
- <para>Yes, this is the general idea; as its name might suggest,
- <command>make world</command> rebuilds every system binary from
- scratch, so you can be certain of having a clean and consistent
- environment at the end (which is why it takes so long).</para>
-
- <para>If the environment variable <literal>DESTDIR</literal>
- is defined while running <command>make world</command> or
- <command>make install</command>, the newly-created binaries
- will be deposited in a directory tree identical to the
- installed one, rooted at <literal>&#36;{DESTDIR}</literal>.
- Some random combination of shared libraries modifications and
- program rebuilds can cause this to fail in <command>make
- world</command> however.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bus-speed-defaulted">
- <para>When my system boots, it says <quote>(bus speed
- defaulted)</quote>.</para>
- </question>
-
- <answer>
-
- <para>The Adaptec 1542 SCSI host adapters allow the user to
- configure their bus access speed in software. Previous versions
- of the 1542 driver tried to determine the fastest usable speed
- and set the adapter to that. We found that this breaks some
- users' systems, so you now have to define the
- <symbol>TUNE_1542</symbol> kernel configuration option in order
- to have this take place. Using it on those systems where it
- works may make your disks run faster, but on those systems
- where it doesn't, your data could be corrupted.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ctm">
- <para>Can I follow current with limited Internet access?</para>
- </question>
-
- <answer>
- <para>Yes, you can do this <emphasis remap=tt>without</emphasis>
- downloading the whole source tree by using the <ulink
- URL="../handbook/synching.html#CTM">CTM facility.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="split-240k">
- <para>How did you split the distribution into 240k files?</para>
- </question>
-
- <answer>
- <para>Newer BSD based systems have a <option>-b</option>
- option to split that allows them to split files on arbitrary
- byte boundaries.</para>
-
- <para>Here is an example from
- <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>I've written a kernel extension, who do I send it
- to?</para>
- </question>
-
- <answer>
- <para>Please take a look at <ulink
- URL="../handbook/contrib.html">The Handbook entry on how to
- submit code.</ulink></para>
-
- <para>And thanks for the thought!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="pnp-initialize">
- <para>How are Plug N Play ISA cards detected and
- initialized?</para>
- </question>
-
- <answer>
- <para>By: <ulink URL="mailto:uhclem@nemesis.lonestar.org">
- Frank Durda IV</ulink></para>
-
- <para>In a nutshell, there a few I/O ports that all of the
- PnP boards respond to when the host asks if anyone is out
- there. So when the PnP probe routine starts, he asks if there
- are any PnP boards present, and all the PnP boards respond with
- their model # to a I/O read of the same port, so the probe
- routine gets a wired-OR <quote>yes</quote> to that question. At
- least one bit will be on in that reply. Then the probe code is
- able to cause boards with board model IDs (assigned by
- Microsoft/Intel) lower than X to go <quote>off-line</quote>. It
- then looks to see if any boards are still responding to the
- query. If the answer was <literal>0</literal>, then there are
- no boards with IDs above X. Now probe asks if there are any
- boards below <literal>X</literal>. If so, probe knows there are
- boards with a model numbers below X. Probe then asks for boards
- greater than X-(limit/4) to go off-line. If repeats the query.
- By repeating this semi-binary search of IDs-in-range enough
- times, the probing code will eventually identify all PnP boards
- present in a given machine with a number of iterations that is
- much lower than what 2^64 would take.</para>
-
- <para>The IDs are two 32-bit fields (hence 2&circ;64) + 8 bit
- checksum. The first 32 bits are a vendor identifier. They never
- come out and say it, but it appears to be assumed that
- different types of boards from the same vendor could have
- different 32-bit vendor ids. The idea of needing 32 bits just
- for unique manufacturers is a bit excessive.</para>
-
- <para>The lower 32 bits are a serial #, ethernet address,
- something that makes this one board unique. The vendor must
- never produce a second board that has the same lower 32 bits
- unless the upper 32 bits are also different. So you can have
- multiple boards of the same type in the machine and the full 64
- bits will still be unique.</para>
-
- <para>The 32 bit groups can never be all zero. This allows the
- wired-OR to show non-zero bits during the initial binary
- search.</para>
-
- <para>Once the system has identified all the board IDs present,
- it will reactivate each board, one at a time (via the same I/O
- ports), and find out what resources the given board needs, what
- interrupt choices are available, etc. A scan is made over all
- the boards to collect this information.</para>
-
- <para>This info is then combined with info from any ECU files
- on the hard disk or wired into the MLB BIOS. The ECU and BIOS
- PnP support for hardware on the MLB is usually synthetic, and
- the peripherals don't really do genuine PnP. However by
- examining the BIOS info plus the ECU info, the probe routines
- can cause the devices that are PnP to avoid those devices the
- probe code cannot relocate.</para>
-
- <para>Then the PnP devices are visited once more and given
- their I/O, DMA, IRQ and Memory-map address assignments. The
- devices will then appear at those locations and remain there
- until the next reboot, although there is nothing that says you
- can't move them around whenever you want.</para>
-
- <para>There is a lot of oversimplification above, but you
- should get the general idea.</para>
-
- <para>Microsoft took over some of the primary printer status
- ports to do PnP, on the logic that no boards decoded those
- addresses for the opposing I/O cycles. I found a genuine IBM
- printer board that did decode writes of the status port during
- the early PnP proposal review period, but MS said
- <quote>tough</quote>. So they do a write to the printer status
- port for setting addresses, plus that use that address +
- <literal>0x800</literal>, and a third I/O port for reading that
- can be located anywhere between <literal>0x200</literal> and
- <literal>0x3ff</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="architectures">
- <para>Does FreeBSD support architectures other than the
- x86?</para>
- </question>
-
- <answer>
-
- <para>Several groups of people have expressed interest in
- working on multi-architecture ports for FreeBSD and the
- FreeBSD/AXP (ALPHA) port is one such effort which has been
- quite successful, now available at
- <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha/">
- ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha</ulink>. The ALPHA port
- currently runs on a growing number of ALPHA machine types,
- among them the AlphaStation, AXPpci, PC164, Miata and Multia
- models. For status information, please join the
- <email>freebsd-alpha@FreeBSD.org</email> <link
- linkend="mailing">mailing list</link>.</para>
-
- <para>Interest has also been expressed in a port of FreeBSD to
- the SPARC architecture, join the
- <email>freebsd-sparc@FreeBSD.org</email> <link linkend="mailing">
- mailing list</link> if you are interested in joining that
- project. Most recent additions to the list of upcoming plaforms
- are IA-64 and PowerPC, join the
- <email>freebsd-ia64@FreeBSD.org</email> or/and
- <email>freebsd-ppc@FreeBSD.org</email> <link
- linkend="mailing">mailing lists</link> for more information.
- For general discussion on new architectures, join
- the <email>freebsd-platforms@FreeBSD.org</email>
- <link linkend="mailing">mailing list</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="major-numbers">
- <para>I need a major number for a device driver I've
- written.</para>
- </question>
-
- <answer>
-
- <para>This depends on whether or not you plan on making the
- driver publicly available. If you do, then please send us a
- copy of the driver source code, plus the appropriate
- modifications to <emphasis remap=tt>files.i386</emphasis>, a
- sample configuration file entry, and the appropriate <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink>
- code to create any special files your device uses. If you do
- not, or are unable to because of licensing restrictions, then
- character major number 32 and block major number 8 have been
- reserved specifically for this purpose; please use them. In any
- case, we'd appreciate hearing about your driver on
- <email>freebsd-hackers@FreeBSD.org</email>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="alternate-directory-layout">
- <para>Alternative layout policies for directories</para>
- </question>
-
- <answer>
- <para>In answer to the question of alternative layout policies
- for directories, the scheme that is currently in use is
- unchanged from what I wrote in 1983. I wrote that policy for
- the original fast filesystem, and never revisited it. It works
- well at keeping cylinder groups from filling up. As several of
- you have noted, it works poorly for find. Most filesystems are
- created from archives that were created by a depth first search
- (aka ftw). These directories end up being striped across the
- cylinder groups thus creating a worst possible senario for
- future depth first searches. If one knew the total number of
- directories to be created, the solution would be to create
- (total / fs_ncg) per cylinder group before moving on.
- Obviously, one would have to create some heuristic to guess at
- this number. Even using a small fixed number like say 10 would
- make an order of magnitude improvement. To differentiate
- restores from normal operation (when the current algorithm is
- probably more sensible), you could use the clustering of up to
- 10 if they were all done within a ten second window. Anyway, my
- conclusion is that this is an area ripe for
- experimentation.</para>
-
- <para>Kirk McKusick, September 1998</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="kernel-panic-troubleshooting">
- <para>Making the most of a kernel panic</para>
- </question>
-
- <answer>
- <para><emphasis>[This section was extracted from a mail
- written by &a.wpaul; on the freebsd-current
- <link linkend="mailing">mailing list</link> by &a.des;, who
- fixed a few typos and added the bracketed comments]
- </emphasis></para>
-
- <programlisting>From: Bill Paul &lt;wpaul@skynet.ctr.columbia.edu&gt;
-Subject: Re: the fs fun never stops
-To: ben@rosengart.com
-Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
-Cc: current@FreeBSD.org</programlisting>
-
- <para><emphasis>[&lt;ben@rosengart.com&gt; posted the following
- panic message]</emphasis>
-
- <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>
-
- [When] you see a message like this, it's not enough to just
- reproduce it and send it in. The instruction pointer value that
- I highlighted up there is important; unfortunately, it's also
- configuration dependent. In other words, the value varies
- depending on the exact kernel image that you're using. If
- you're using a GENERIC kernel image from one of the snapshots,
- then it's possible for somebody else to track down the
- offending function, but if you're running a custom kernel then
- only <emphasis>you</emphasis> can tell us where the fault
- occured.</para>
-
- <para> What you should do is this:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Write down the instruction pointer value. Note that
- the <literal>0x8:</literal> part at the begining is not
- significant in this case: it's the
- <literal>0xf0xxxxxx</literal> part that we want.</para>
- </listitem>
-
- <listitem>
- <para>When the system reboots, do the following:
-
- <screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxxx</userinput></screen>
-
- where <literal>f0xxxxxx</literal> is the instruction
- pointer value. The odds are you will not get an exact
- match since the symbols in the kernel symbol table are
- for the entry points of functions and the instruction
- pointer address will be somewhere inside a function, not
- at the start. If you don't get an exact match, omit the
- last digit from the instruction pointer value and try
- again, i.e.:
-
- <screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxx</userinput></screen>
-
- If that doesn't yield any results, chop off another
- digit. Repeat until you get some sort of output. The
- result will be a possible list of functions which caused
- the panic. This is a less than exact mechanism for
- tracking down the point of failure, but it's better than
- nothing.</para>
- </listitem>
- </itemizedlist></para>
-
- <para> I see people constantly show panic messages like this
- but rarely do I see someone take the time to match up the
- instruction pointer with a function in the kernel symbol
- table.</para>
-
- <para> The best way to track down the cause of a panic is by
- capturing a crash dump, then using
- <command>gdb(1)</command> to generate a stack trace on the
- crash dump.</para>
-
- <para>In any case, the method I normally use is this:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Set up a kernel config file, optionally adding
- <literal>options DDB</literal> if you think you need
- the kernel debugger for something. (I use this mainly
- for setting beakpoints if I suspect an infinite loop
- condition of some kind.)</para>
- </listitem>
-
- <listitem>
- <para>Use <command>config -g
- <replaceable>KERNELCONFIG</replaceable></command> to set
- up the build directory.</para>
- </listitem>
-
- <listitem>
- <para><command>cd /sys/compile/
- <replaceable>KERNELCONFIG</replaceable>; make
- </command></para>
- </listitem>
-
- <listitem>
- <para>Wait for kernel to finish compiling.</para>
- </listitem>
-
- <listitem>
- <para><command>make install</command></para>
- </listitem>
-
- <listitem>
- <para>reboot</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>The &man.make.1; process will have built two kernels.
- <filename>kernel</filename> and
- <filename>kernel.debug</filename>. <filename>kernel</filename>
- was installed as <filename>/kernel</filename>, while
- <filename>kernel.debug</filename> can be used as the source of
- debugging symbols for gdb(1).</para>
-
- <para> To make sure you capture a crash dump, you need edit
- <filename>/etc/rc.conf</filename> and set
- <emphasis remap=tt>dumpdev</emphasis> to point to your swap
- partition. This will cause the <command>rc(8)</command> scripts
- to use the <command>dumpon(8)</command> command to enable crash
- dumps. You can also run <command>dumpon(8)</command> manually.
- After a panic, the crash dump can be recovered using
- <command>savecore(8)</command>; if <emphasis
- remap=tt>dumpdev</emphasis> is set in
- <filename>/etc/rc.conf</filename>, the <command>rc(8)</command>
- scripts will run <command>savecore(8)</command> automatically
- and put the crash dump in
- <filename>/var/crash</filename>.</para>
-
- <para>
- <note>
- <para>FreeBSD crash dumps are usually the same size as the
- physical RAM size of your machine. That is, if you have
- 64MB of RAM, you will get a 64MB crash dump. Therefore you
- must make sure there's enough space in
- <filename>/var/crash</filename> to hold the dump.
- Alternatively, you run <command>savecore(8)</command>
- manually and have it recover the crash dump to another
- directory where you have more room. It's possible to limit
- the size of the crash dump by using <literal>options
- MAXMEM=(foo)</literal> to set the amount of memory the
- kernel will use to something a little more sensible. For
- example, if you have 128MB of RAM, you can limit the
- kernel's memory usage to 16MB so that your crash dump size
- will be 16MB instead of 128MB.</para>
- </note></para>
-
- <para> Once you have recovered the crash dump, you can get a
- stack trace with <command>gdb(1)</command> as follows:</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> Note that there may be several screens worth of
- information; ideally you should use
- <command>script(1)</command> to capture all of them. Using the
- unstripped kernel image with all the debug symbols should show
- the exact line of kernel source code where the panic occured.
- Usually you have to read the stack trace from the bottom up in
- order to trace the exact sequence of events that lead to the
- crash. You can also use <command>gdb(1)</command> to print out
- the contents of various variables or structures in order to
- examine the system state at the time of the crash.</para>
-
- <para> Now, if you're really insane and have a second computer,
- you can also configure <command>gdb(1)</command> to do remote
- debugging such that you can use <command>gdb(1)</command> on
- one system to debug the kernel on another system, including
- setting breakpoints, single-stepping through the kernel code,
- just like you can do with a normal user-mode program. I haven't
- played with this yet as I don't often have the chance to set up
- two machines side by side for debugging purposes.</para>
-
- <para> <emphasis>[Bill adds: "I forgot to mention one thing: if
- you have DDB enabled and the kernel drops into the debugger,
- you can force a panic (and a crash dump) just by typing 'panic'
- at the ddb prompt. It may stop in the debugger again during the
- panic phase. If it does, type 'continue' and it will finish the
- crash dump." -ed]</emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="dlsym-failure">
- <para>dlsym() stopped working for ELF executables!</para>
- </question>
-
- <answer>
- <para>The ELF toolchain does not, by default, make the symbols
- defined in an executable visible to the dynamic linker.
- Consequently <function>dlsym()</function> searches on handles
- obtained from calls to <emphasis remap=tt>dlopen(NULL,
- flags)</emphasis> will fail to find such symbols.</para>
-
- <para>If you want to search, using <function>dlsym()</function>,
- for symbols present in the main executable of a process, you
- need to link the executable using the
- <option>-export-dynamic</option> option to the <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?ld">ELF
- linker</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="change-kernel-address-space">
- <para>Increasing or reducing the kernel address space</para>
- </question>
-
- <answer>
- <para>By default, the kernel address space is 256 MB on
- FreeBSD 3.x and 1 GB on FreeBSD 4.x. If you run a
- network-intensive server (e.g. a large FTP or HTTP server),
- you might find that 256 MB is not enough.</para>
-
- <para>So how do you increase the address space? There are two
- aspects to this. First, you need to tell the kernel to reserve
- a larger portion of the address space for itself. Second, since
- the kernel is loaded at the top of the address space, you need
- to lower the load address so it doesn't bump its head against
- the ceiling.</para>
-
- <para>The first goal is achieved by increasing the value of
- <literal>NKPDE</literal> in
- <filename>src/sys/i386/include/pmap.h</filename>. Here's what
- it looks like for a 1 GB address space:</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>To find the correct value of <literal>NKPDE</literal>,
- divide the desired address space size (in megabytes) by four,
- then subtract one for UP and two for SMP.</para>
-
- <para>To achieve the second goal, you need to compute the
- correct load address: simply subtract the address space size
- (in bytes) from 0x100100000; the result is 0xc0100000 for a 1
- GB address space. Set <symbol>LOAD_ADDRESS</symbol> in
- <filename>src/sys/i386/conf/Makefile.i386</filename> to that
- value; then set the location counter in the beginning of the
- section listing in
- <filename>src/sys/i386/conf/kernel.script</filename> to the
- same value, as follows:</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>Then reconfig and rebuild your kernel. You will probably
- have problems with <command>ps(1)</command>,
- <command>top(1)</command> and the like; <emphasis remap=tt>make
- world</emphasis> should take care of it (or a manual rebuild of
- <emphasis remap=tt>libkvm</emphasis>, <emphasis
- remap=tt>ps</emphasis> and <emphasis remap=tt>top</emphasis>
- after copying the patched <filename>pmap.h</filename> to
- <filename>/usr/include/vm/</filename>.</para>
-
- <para>NOTE: the size of the kernel address space must be a
- multiple of four megabytes.</para>
-
- <para>[&a.dg; adds: <emphasis> I think the kernel address space
- needs to be a power of two, but I'm not certain about that. The
- old(er) boot code used to monkey with the high order address bits
- and I think expected at least 256MB
- granularity.]</emphasis></para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="acknowledgments">
- <title>Acknowledgments</title>
-
- <blockquote>
- <attribution>FreeBSD Core Team</attribution>
-
- <para>If you see a problem with this FAQ, or wish to submit an
- entry, please mail the &a.faq;. We appreciate your feedback,
- and cannot make this a better FAQ without your help!</para>
- </blockquote>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>&a.jkh;</term>
- <listitem>
- <para>Occasional fits of FAQ-reshuffling and updating.</para>
-
- <para></para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.dwhite;</term>
-
- <listitem>
- <para>Services above and beyond the call of duty on
- freebsd-questions</para>
-
- <para></para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.joerg;</term>
-
- <listitem>
- <para>Services above and beyond the call of duty on
- Usenet</para>
-
- <para></para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.wollman;</term>
-
- <listitem>
- <para>Networking and formatting</para>
-
- <para></para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Jim Lowe</term>
-
- <listitem>
- <para>Multicast information</para>
-
- <para></para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.pds;</term>
-
- <listitem>
- <para>FreeBSD FAQ typing machine slavey</para>
-
- <para></para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The FreeBSD Team</term>
-
- <listitem>
- <para>Kvetching, moaning, submitting data</para>
-
- </listitem>
- </varlistentry>
- </variablelist></para>
-
- <para>And to any others we've forgotten, apologies and heartfelt
- thanks!</para>
- </chapter>
-</book>
diff --git a/en_US.ISO8859-1/books/fdp-primer/Makefile b/en_US.ISO8859-1/books/fdp-primer/Makefile
deleted file mode 100644
index 3e9ced1ea7..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/Makefile,v 1.9 2000/07/16 16:40:36 nik Exp $
-#
-# Build the FreeBSD Documentation Project Primer.
-#
-
-MAINTAINER=nik@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-SRCS+= overview/chapter.sgml
-SRCS+= psgml-mode/chapter.sgml
-SRCS+= see-also/chapter.sgml
-SRCS+= sgml-markup/chapter.sgml
-SRCS+= sgml-primer/chapter.sgml
-SRCS+= stylesheets/chapter.sgml
-SRCS+= structure/chapter.sgml
-SRCS+= doc-build/chapter.sgml
-SRCS+= the-website/chapter.sgml
-SRCS+= tools/chapter.sgml
-SRCS+= translations/chapter.sgml
-SRCS+= writing-style/chapter.sgml
-
-SRCS+= examples/appendix.sgml
-
-# Images from the cross-document image library
-IMAGES_LIB= callouts/1.png
-IMAGES_LIB+= callouts/2.png
-IMAGES_LIB+= callouts/3.png
-IMAGES_LIB+= callouts/4.png
-IMAGES_LIB+= callouts/5.png
-
-# Entities
-SRCS+= chapters.ent
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/fdp-primer/book.sgml b/en_US.ISO8859-1/books/fdp-primer/book.sgml
deleted file mode 100644
index 46559464e1..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/book.sgml
+++ /dev/null
@@ -1,299 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/book.sgml,v 1.12 2000/07/16 16:36:17 nik Exp $
--->
-
-<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % not.published "INCLUDE">
-<!-- ENTITY index SYSTEM "index.sgml" -->
-]>
-
-<book>
- <bookinfo>
- <title>FreeBSD Documentation Project Primer for New Contributors</title>
-
- <author>
- <firstname>Nik</firstname>
- <surname>Clayton</surname>
- <affiliation>
- <address><email>nik@FreeBSD.org</email></address>
- </affiliation>
- </author>
-
- <copyright>
- <year>1998</year>
- <year>1999</year>
- <year>2000</year>
- <holder role="mailto:nik@FreeBSD.org">Nik Clayton</holder>
- </copyright>
-
- <pubdate role="rcs">$FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/book.sgml,v 1.12 2000/07/16 16:36:17 nik Exp $</pubdate>
-
- <releaseinfo>$FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/book.sgml,v 1.12 2000/07/16 16:36:17 nik Exp $</releaseinfo>
-
- <legalnotice>
- <para>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:</para>
-
- <orderedlist>
- <listitem>
- <para>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.</para>
- </listitem>
-
- <listitem>
- <para>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.</para>
- </listitem>
- </orderedlist>
-
- <important>
- <para>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.</para>
- </important>
- </legalnotice>
-
- <abstract>
- <para>Thank you for becoming a part of the FreeBSD Documentation
- Project. Your contribution is extremely valuable.</para>
-
- <para>This primer covers everything you will need to know in order
- to start contributing to the FreeBSD Documentation Project, from
- the tools and software you will be using (both mandatory and
- recommended) to the philosophy behind the Documentation
- Project.</para>
-
- <para>This document is a work in progress, and is not complete. Sections
- that are known to be incomplete are indicated with a
- <literal>*</literal> in their name.</para>
- </abstract>
- </bookinfo>
-
- <preface>
- <title>Preface</title>
-
- <sect1>
- <title>Shell Prompts</title>
-
- <para>The following table shows the default system prompt and superuser
- prompt. The examples will use this prompt to indicate which user you
- should be running the example as.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>User</entry>
- <entry>Prompt</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Normal user</entry>
- <entry>&prompt.user;</entry>
- </row>
-
- <row>
- <entry><username>root</username></entry>
- <entry>&prompt.root;</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-
- <sect1>
- <title>Typographic Conventions</title>
-
- <para>The following table describes the typographic conventions used in
- this book.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Meaning</entry>
- <entry>Examples</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>The name of commands, files, and directories. On screen
- computer output.</entry>
- <entry><para>Edit your <filename>.login</filename>
- file.</para><para>Use <command>ls -a</command> to list all
- files.</para><para><screen>You have mail.</screen>
- </para></entry>
- </row>
-
- <row>
- <entry>What you type, when contrasted with on-screen computer
- output.</entry>
-
- <entry><screen>&prompt.user; <userinput>su</userinput>
-Password:</screen></entry>
- </row>
-
- <row>
- <entry>Manual page references.</entry>
-
- <entry>Use <citerefentry>
- <refentrytitle>su</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> to change user names.</entry>
- </row>
-
- <row>
- <entry>User and group names</entry>
-
- <entry>Only <username>root</username> can do this.</entry>
- </row>
-
- <row>
- <entry>Emphasis</entry>
-
- <entry>You <emphasis>must</emphasis> do this.</entry>
- </row>
-
- <row>
- <entry>Command line variables; replace with the real name or
- variable.</entry>
-
- <entry>To delete a file, type <command>rm <filename><replaceable>filename</replaceable></filename></command></entry>
- </row>
-
- <row>
- <entry>Environment variables</entry>
-
- <entry><envar>$HOME</envar> is your home directory.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-
- <sect1>
- <title>Notes, tips, important information, warnings, and examples</title>
-
- <para>Within the text appear notes, warnings, and examples.</para>
-
- <note>
- <para>Notes are represented like this, and contain information that
- you should take note of, as it may affect what you do.</para>
- </note>
-
- <tip>
- <para>Tips are represented like this, and contain information that you
- might find useful, or lead to an easier way to do something.</para>
- </tip>
-
- <important>
- <para>Important information is represented like this. Typically they
- flag extra steps you may need to carry out.</para>
- </important>
-
- <warning>
- <para>Warnings are represented like this, and contain information
- warning you about possible damage if you do not follow the
- instructions. This damage may be physical, to your hardware or to
- you, or it may be non-physical, such as the inadvertant deletion of
- important files.</para>
- </warning>
-
- <example>
- <title>A sample example</title>
-
- <para>Examples are represented like this, and typically contain
- examples you should walk through, or show you what the results of a
- particular action should be.</para>
- </example>
- </sect1>
-
- <sect1>
- <title>Acknowledgments</title>
-
- <para>My thanks to Sue Blake, Patrick Durusau, Jon Hamilton, Peter
- Flynn, and Christopher Maden, who took the time to read early drafts
- of this document and offer many valuable comments and
- criticisms.</para>
- </sect1>
- </preface>
-
- &chap.overview;
- &chap.tools;
- &chap.sgml-primer;
- &chap.sgml-markup;
- &chap.stylesheets;
- &chap.structure;
- &chap.doc-build;
- &chap.the-website;
- &chap.translations;
- &chap.writing-style;
- &chap.psgml-mode;
- &chap.see-also;
-
- &app.examples;
-
-<!--
- &index;
--->
-</book>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/en_US.ISO8859-1/books/fdp-primer/chapter.decl b/en_US.ISO8859-1/books/fdp-primer/chapter.decl
deleted file mode 100644
index ce0a7ed16a..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/chapter.decl
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
diff --git a/en_US.ISO8859-1/books/fdp-primer/chapters.ent b/en_US.ISO8859-1/books/fdp-primer/chapters.ent
deleted file mode 100644
index 651a2bd465..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/chapters.ent
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
- Creates entities for each chapter in the Documentation Project Primer.
- Each entity is named chap.foo, where foo is the value of the id
- attribute on that chapter, and corresponds to the name of the
- directory in which that chapter's .sgml file is stored.
-
- Chapters should be listed in the order in which they are referenced.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/chapters.ent,v 1.5 2000/06/23 00:37:53 nik Exp $
--->
-
-<!ENTITY chap.overview SYSTEM "overview/chapter.sgml">
-<!ENTITY chap.sgml-primer SYSTEM "sgml-primer/chapter.sgml">
-<!ENTITY chap.tools SYSTEM "tools/chapter.sgml">
-<!ENTITY chap.sgml-markup SYSTEM "sgml-markup/chapter.sgml">
-<!ENTITY chap.stylesheets SYSTEM "stylesheets/chapter.sgml">
-<!ENTITY chap.structure SYSTEM "structure/chapter.sgml">
-<!ENTITY chap.the-website SYSTEM "the-website/chapter.sgml">
-<!ENTITY chap.translations SYSTEM "translations/chapter.sgml">
-<!ENTITY chap.writing-style SYSTEM "writing-style/chapter.sgml">
-<!ENTITY chap.psgml-mode SYSTEM "psgml-mode/chapter.sgml">
-<!ENTITY chap.see-also SYSTEM "see-also/chapter.sgml">
-<!ENTITY chap.doc-build SYSTEM "doc-build/chapter.sgml">
-
-<!ENTITY app.examples SYSTEM "examples/appendix.sgml">
diff --git a/en_US.ISO8859-1/books/fdp-primer/doc-build/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/doc-build/chapter.sgml
deleted file mode 100644
index 910bf3cf22..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/doc-build/chapter.sgml
+++ /dev/null
@@ -1,501 +0,0 @@
-<!-- Copyright (c) 1999 Neil Blakey-Milner, 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 THE AUTHOR "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.
-
- $Id: chapter.sgml,v 1.1 2000-06-23 00:37:15 nik Exp $
--->
-
-<chapter id="doc-build">
- <title>The Documentation Build Process</title>
-
- <para>This chapter's main purpose is to clearly explain <emphasis>how
- the documentation build process is organised</emphasis>, and
- <emphasis>how to affect modifications to this process</emphasis>.
- </para>
-
- <para>After you have finished reading this chapter you should:</para>
-
- <itemizedlist>
- <listitem>
- <para>Know what you need to build the FDP documentation, in
- addition to those mentioned in the <link
- linkend="tools">SGML tools chapter</link>.</para>
- </listitem>
-
- <listitem>
- <para>Be able to read and understand the
- <application>make</application> instructions that are present in
- each document's <filename>Makefile</filename>s, as well as an
- overview of the <filename>doc.project.mk</filename> includes.</para>
- </listitem>
-
- <listitem>
- <para>Be able to customize the build process by using
- <application>make</application> variables and
- <application>make</application> targets.</para>
- </listitem>
- </itemizedlist>
-
- <sect1>
- <title>The FreeBSD Documentation Build Toolset</title>
-
- <para>Here are your tools. Use them every way you can.</para>
-
- <itemizedlist>
- <listitem>
- <para>The primary build tool you will need is
- <application>make</application>, but specifically
- <application>Berkeley Make</application>.</para>
- </listitem>
-
- <listitem>
- <para>Package building is handled by FreeBSD's
- <application>pkg_create</application>. If you are not using
- FreeBSD, you will either have to live without packages, or
- compile the source yourself.</para>
- </listitem>
-
- <listitem>
- <para><application>gzip</application> is needed to create
- compressed versions of the document.
- <application>bzip2</application> compression and
- <application>zip</application> archives are also supported.
- <application>tar</application> is supported, but package
- building demands it.</para>
- </listitem>
-
- <listitem>
- <para><application>install</application> is the default method
- to install the documentation. There are alternatives,
- however.</para
- </listitem>
- </itemizedlist>
-
- <note>
- <para>It is unlikely you will not be able to find these last two, they
- are mentioned for completeness.</para>
- </note>
- </sect1>
-
- <sect1>
- <title>Understanding Makefiles in the Documentation tree</title>
-
- <para>There are three main types of <filename>Makefile</filename>s
- in the FreeBSD Documentation Project tree.</para>
-
- <itemizedlist>
- <listitem>
- <para><link linkend="sub-make">Subdirectory
- <filename>Makefile</filename>s</link> simply pass
- commands to those directories below them.</para>
- </listitem>
-
- <listitem>
- <para><link linkend="doc-make">Documentation
- <filename>Makefile</filename>s</link> describe the
- document(s) that should be produced from this directory.</para>
- </listitem>
-
- <listitem>
- <para><link linkend="make-includes"><application>Make</application>
- includes</link> are the glue that perform the document production,
- and are usually of the form
- <filename>doc.<replaceable>xxx</replaceable>.mk</filename>.</para>
- </listitem>
- </itemizedlist>
-
- <para><application>Make</application> syntax is quickly revised as
- the we explore these types.</para>
-
- <sect2 id="sub-make">
- <title>Subdirectory Makefiles</title>
-
- <para>These directories usually take the form of:</para>
-
- <programlisting>SUBDIR =articles
-SUBDIR+=books
-
-COMPAT_SYMLINK = en
-
-DOC_PREFIX?= ${.CURDIR}/..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting>
-
- <para>In quick summary, the first four non-empty lines define the
- <application>make</application> variables,
- <makevar>SUBDIR</makevar>, <makevar>COMPAT_SYMLINK</makevar>,
- and <makevar>DOC_PREFIX</makevar>.</para>
-
- <para>The first <makevar>SUBDIR</makevar> statement, as well as
- the <makevar>COMPAT_SYMLINK</makevar> statement, shows how to
- assign a value to a variable, overriding any previous
- value.</para>
-
- <para>The second <makevar>SUBDIR</makevar> statement shows how a
- value is appended to the current value of a variable. The
- <makevar>SUBDIR</makevar> variable is now <literal>articles
- books</literal>.</para>
-
- <para>The <makevar>DOC_PREFIX</makevar> assignment shows how a
- value is assigned to the variable, but only if it is not already
- defined. This is useful if <makevar>DOC_PREFIX</makevar> is not
- where this <filename>Makefile</filename> thinks it is - the user
- can override this and provide the correct value.</para>
-
- <para>Now what does it all mean? <makevar>SUBDIR</makevar>
- mentions which subdirectories below this one the build process
- should pass any work on to.</para>
-
- <para><makevar>COMPAT_SYMLINK</makevar> is specific to
- compatibility symlinks (amazingly enough) for languages to their
- official encoding (<filename>doc/en</filename> would point to
- <filename>en_US.ISO-8859-1</filename>).</para>
-
- <para><makevar>DOC_PREFIX</makevar> is the path to the root of the
- FreeBSD Document Project tree. This is not always that easy to
- find, and is also easily overridable, to allow for flexibility.
- <makevar>.CURDIR</makevar> is a <application>make</application>
- builtin variable with the path to the current directory.</para>
-
- <para>The final line includes the FreeBSD Documentation Project's
- project-wide <application>make</application> system file
- <filename>doc.project.mk</filename> which is the glue which
- converts these variables into build instructions.</para>
-
- </sect2>
- <sect2 id="doc-make">
- <title>Documentation Makefiles</title>
-
- <para>These <filename>Makefile</filename>s set a bunch of
- <application>make</application> variables that describe how to
- build the documentation contained in that directory.</para>
-
- <para>Here is an example:</para>
-
- <programlisting>MAINTAINER=nik@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-# SGML content
-SRCS= book.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk"</programlisting>
-
- <para>The <makevar>MAINTAINER</makevar> variable is a very
- important one. This variable provides the ability to claim
- ownership over a document in the FreeBSD Documentation
- Project, whereby you gain the responsibility for maintaining
- it.</para>
-
- <para><makevar>DOC</makevar> is the name (sans the
- <filename>.sgml</filename> extension) of the main document
- created by this directory. <makevar>SRCS</makevar> lists all
- the individual files that make up the document. This should
- also include important files in which a change should result
- in a rebuild.</para>
-
- <para><makevar>FORMATS</makevar> indicates the default formats
- that should be built for this document.
- <makevar>INSTALL_COMPRESSED</makevar> is the default list of
- compression techniques that should be used in the document
- build. <makevar>INSTALL_ONLY_COMPRESS</makevar>, empty by
- default, should be non-empty if only compressed documents are
- desired in the build.</para>
-
- <note>
- <para>We covered optional variable assignments in the
- <link linkend="sub-make">previous section</link>.</para>
- </note>
-
- <para>The <makevar>DOC_PREFIX</makevar> and include statements
- should be familiar already.</para>
- </sect2>
- </sect1>
-
- <sect1 id="make-includes">
- <title>FreeBSD Documentation Project make includes</title>
-
- <para>This is best explained by inspection of the code. Here are
- the system include files:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>doc.project.mk</filename> is the main project
- include file, which includes all the following include files, as
- necessary.</para>
- </listitem>
-
- <listitem>
- <para><filename>doc.subdir.mk</filename> handles traversing of
- the document tree during the build and install processes.</para>
- </listitem>
-
- <listitem>
- <para><filename>doc.install.mk</filename> provides variables
- that affect ownership and installation of documents.</para>
- </listitem>
-
- <listitem>
- <para><filename>doc.docbook.mk</filename> is included if
- <makevar>DOCFORMAT</makevar> is <literal>docbook</literal>
- and <makevar>DOC</makevar> is set.</para>
- </listitem>
- </itemizedlist>
-
- <sect2>
- <title>doc.project.mk</title>
-
- <para>By inspection:</para>
-
- <programlisting>DOCFORMAT?= docbook
-MAINTAINER?= doc@FreeBSD.org
-
-PREFIX?= /usr/local
-PRI_LANG?= en_US.ISO_8859-1
-
-.if defined(DOC)
-.if ${DOCFORMAT} == "docbook"
-.include "doc.docbook.mk"
-.endif
-.endif
-
-.include "doc.subdir.mk"
-.include "doc.install.mk"</programlisting>
-
- <sect3>
-
- <title>Variables</title>
-
- <para><makevar>DOCFORMAT</makevar> and <makevar>MAINTAINER</makevar>
- are assigned default values, if these are not set by the
- document make file.</para>
-
- <para><makevar>PREFIX</makevar> is the prefix under which the
- <link linkend="tools">documentation building tools</link> are
- installed. For normal package and port installation, this is
- <filename>/usr/local</filename>.</para>
-
- <para><makevar>PRI_LANG</makevar> should be set to whatever
- language and encoding is natural amongst users these documents are
- being built for. US English is the default.</para>
-
- <note>
- <para><makevar>PRI_LANG</makevar> in no way affects what documents
- can, or even will, be built. It's main use is creating links to
- commonly referenced documents into the FreeBSD documentation
- install root.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Conditionals</title>
-
- <para>The <literal>.if defined(DOC)</literal> line is an example of
- a <application>make</application> conditional which, like in
- other programs, defines behaviour if some condition is true or
- if it is false. <literal>defined</literal> is a function which
- returns whether the variable given is defined or not.</para>
-
- <para><literal>.if ${DOCFORMAT} == "docbook"</literal>, next,
- tests whether the <makevar>DOCFORMAT</makevar> variable is
- <literal>"docbook"</literal>, and in this case, includes
- <filename>doc.docbook.mk</filename>.</para>
-
- <para>The two <literal>.endif</literal>s close the two above
- conditionals, marking the end of their application.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>doc.subdir.mk</title>
-
- <para>This is too long to explain by inspection, you should be
- able to work it out with the knowledge gained from the previous
- chapters, and a little help given here.</para>
-
- <sect3>
- <title>Variables</title>
-
- <itemizedlist>
- <listitem>
- <para><makevar>SUBDIR</makevar> is a list of subdirectories
- that the build process should go further down
- into.</para>
- </listitem>
-
- <listitem>
- <para><makevar>ROOT_SYMLINKS</makevar> is the name of
- directories that should be linked to the document
- install root from their actual locations, if the current
- language is the primary language (specified by
- <makevar>PRI_LANG</makevar>).</para>
- </listitem>
-
- <listitem>
- <para><makevar>COMPAT_SYMLINK</makevar> is described in the
- <link linkend="sub-make">Subdirectory Makefile</link>
- section.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Targets and macros</title>
-
- <para>Dependencies are described by
- <literal><replaceable>target</replaceable>:
- <replaceable>dependency1 dependency2 ...</replaceable></literal>
- tuples, where to build <literal>target</literal>, you need to build
- the given dependencies first.</para>
-
- <para>After that descriptive tuple, instructions on how to build
- the target may be given, if the conversion process between the
- target and it's dependencies are not previously defined, or if
- this particular conversion is not the same as the default
- conversion method.</para>
-
- <para>A special dependency <literal>.USE</literal> defines
- the equivalent of a macro.</para>
-
-<programlisting>_SUBDIRUSE: .USE
-.for entry in ${SUBDIR}
- @${ECHO} "===> ${DIRPRFX}${entry}"
- @(cd ${.CURDIR}/${entry} && \
- ${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ )
-.endfor</programlisting>
-
- <para>In the above, <maketarget>_SUBDIRUSE</maketarget> is now a
- macro which will execute the given commands when it is listed
- as a dependency.</para>
-
- <para>What sets this macro apart from other targets? Basically,
- it is executed <emphasis>after</emphasis> the instructions
- given in the build procedure it is listed as a dependency to,
- and it doesn't adjust <makevar>.TARGET</makevar>, which is the
- variable which contains the name of the target currently
- being built.</para>
-
-<programlisting>clean: _SUBDIRUSE
- rm -f ${CLEANFILES}</programlisting>
-
- <para>In the above, <maketarget>clean</maketarget> will use the
- <maketarget>_SUBDIRUSE</maketarget> macro after it has
- executed the instruction
- <command>rm -f ${CLEANFILES}</command>. In effect, this causes
- <maketarget>clean</maketarget> to go further and further down
- the directory tree, deleting built files as it goes
- <emphasis>down</emphasis>, not on the way back up.</para>
-
- <sect4>
- <title>Provided targets</title>
-
- <itemizedlist>
- <listitem>
- <para><maketarget>install</maketarget> and
- <maketarget>package</maketarget> both go down the
- directory tree calling the real versions of themselves
- in the subdirectories.
- (<maketarget>realinstall</maketarget> and
- <maketarget>realpackage</maketarget>
- respectively)</para>
- </listitem>
-
- <listitem>
- <para><maketarget>clean</maketarget> removes files created
- by the build process (and goes down the directory tree
- too). <maketarget>cleandir</maketarget> does the same,
- and also removes the object directory, if any.</para>
- </listitem>
- </itemizedlist>
- </sect4>
- </sect3>
-
- <sect3>
- <title>More on conditionals</title>
-
- <itemizedlist>
- <listitem>
- <para><literal>exists</literal> is another condition
- function which returns true if the given file exists.</para>
- </listitem>
-
- <listitem>
- <para><literal>empty</literal> returns true if the given
- variable is empty.</para>
- </listitem>
-
- <listitem>
- <para><literal>target</literal> returns true if the given
- target does not already exist.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Looping constructs in make (.for)</title>
-
- <para><literal>.for</literal> provides a way to repeat a set of
- instructions for each space-seperated element in a variable.
- It does this by assigning a variable to contain the current
- element in the list being examined.</para>
-
-<programlisting>_SUBDIRUSE: .USE
-.for entry in ${SUBDIR}
- @${ECHO} "===> ${DIRPRFX}${entry}"
- @(cd ${.CURDIR}/${entry} && \
- ${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ )
-.endfor</programlisting>
-
- <para>In the above, if <makevar>SUBDIR</makevar> is empty, no
- action is taken; if it has one or more elements, the
- instructions between <literal>.for</literal> and
- <literal>.endfor</literal> would repeat for every element,
- with <makevar>entry</makevar> being replaced with the value of
- the current element.</para>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/fdp-primer/examples/appendix.sgml b/en_US.ISO8859-1/books/fdp-primer/examples/appendix.sgml
deleted file mode 100644
index 6c5cc89d7f..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/examples/appendix.sgml
+++ /dev/null
@@ -1,355 +0,0 @@
-<!-- Copyright (c) 2000 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: doc/en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml,v 1.1 2000/07/16 16:35:41 nik Exp $
--->
-
-<appendix id="examples">
- <title>Examples</title>
-
- <para>This appendix contains example SGML files and command lines you can
- use to convert them from one output format to another. If you have
- successfully installed the Documentation Project tools then you should
- be able to to use these examples directly.</para>
-
- <para>These examples are not exhaustive&mdash;they do not contain all the
- elements you might want to use, particularly in your document's front
- matter. For more examples of DocBook markup you should examine the SGML
- source for this and other documents, available in the
- <application>CVSup</application> <literal>doc</literal> collection, or
- available online starting at <ulink
- url="http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/">http://www.FreeBSD.org/cgi/cvsweb.cgi/doc/</ulink>.</para>
-
- <para>To avoid confusion, these examples use the standard DocBook 3.1 DTD
- rather than the FreeBSD extension. They also use the stock stylesheets
- distributed by Norm Walsh, rather than any customisations made to those
- stylesheets by the FreeBSD Documentation Project. This makes them more
- useful as generic DocBook examples.</para>
-
- <sect1>
- <title>DocBook <sgmltag>book</sgmltag></title>
-
- <example>
- <title>DocBook <sgmltag>book</sgmltag></title>
-
- <programlisting><![ CDATA [<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
-
-<book>
- <bookinfo>
- <title>An Example Book</title>
-
- <author>
- <firstname>Your first name</firstname>
- <surname>Your surname</surname>
- <affiliation>
- <address><email>foo@example.com</email></address>
- </affiliation>
- </author>
-
- <copyright>
- <year>2000</year>
- <holder>Copyright string here</holder>
- </copyright>
-
- <abstract>
- <para>If your book has an abstract then it should go here.</para>
- </abstract>
- </bookinfo>
-
- <preface>
- <title>Preface</title>
-
- <para>Your book may have a preface, in which case it should be placed
- here.</para>
- </preface>
-
- <chapter>
- <title>My first chapter</title>
-
- <para>This is the first chapter in my book.</para>
-
- <sect1>
- <title>My first section</title>
-
- <para>This is the first section in my book.</para>
- </sect1>
- </chapter>
-</book>]]></programlisting>
- </example>
- </sect1>
-
- <sect1>
- <title>DocBook <sgmltag>article</sgmltag></title>
-
- <example>
- <title>DocBook <sgmltag>article</sgmltag></title>
-
- <programlisting><![ CDATA [<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
-
-<article>
- <artheader>
- <title>An example article</title>
-
- <author>
- <firstname>Your first name</firstname>
- <surname>Your surname</surname>
- <affiliation>
- <address><email>foo@example.com</email></address>
- </affiliation>
- </author>
-
- <copyright>
- <year>2000</year>
- <holder>Copyright string here</holder>
- </copyright>
-
- <abstract>
- <para>If your article has an abstract then it should go here.</para>
- </abstract>
- </artheader>
-
- <sect1>
- <title>My first section</title>
-
- <para>This is the first section in my article.</para>
-
- <sect2>
- <title>My first sub-section</title>
-
- <para>This is the first sub-section in my article.</para>
- </sect2>
- </sect1>
-</article>]]></programlisting>
- </example>
- </sect1>
-
- <sect1>
- <title>Producing formatted output</title>
-
- <para>This section assumes that you have installed the software listed in
- the <filename>textproc/docproj</filename> port, either by hand, or by
- using the port. Further, it is assumed that your software is installed
- in subdirectories under <filename>/usr/local/</filename>, and the
- directory where binaries have been installed is in your
- <envar>PATH</envar>. Adjust the paths as necessary for your
- system.</para>
-
- <sect2>
- <title>Using Jade</title>
-
- <example>
- <title>Converting DocBook to HTML (one large file)</title>
-
- <screen>&prompt.user; <userinput>jade -V nochunks \ <co id="examples-co-jade-1-nochunks">
- -c /usr/local/share/sgml/docbook/dsssl/modular/catalog \ <co id="examples-co-jade-1-catalog">
- -c /usr/local/share/sgml/docbook/catalog \
- -c /usr/local/share/sgml/jade/catalog \
- -d /usr/local/share/sgml/docbook/dsssl/modular/html/docbook.dsl <co id="examples-co-jade-1-dsssl">
- -t sgml <co id="examples-co-jade-1-transform"> file.sgml > file.html <co id="examples-co-jade-1-filename"></userinput></screen>
-
- <calloutlist>
- <callout arearefs="examples-co-jade-1-nochunks">
- <para>Specifies the <literal>nochunks</literal> parameter to the
- stylesheets, forcing all output to be written to
- <abbrev>STDOUT</abbrev> (using Norm Walsh's stylesheets).</para>
- </callout>
-
- <callout arearefs="examples-co-jade-1-catalog">
- <para>Specifies the catalogs that Jade will need to process.
- Three catalogs are required. The first is a catalog that
- contains information about the DSSSL stylesheets. The second
- contains information about the DocBook DTD. The third contains
- information specific to Jade.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-1-dsssl">
- <para>Specifies the full path to the DSSSL stylesheet that Jade
- will use when processing the document.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-1-transform">
- <para>Instructs Jade to perform a
- <emphasis>transformation</emphasis> from one DTD to another. In
- this case, the input is being transformed from the DocBook DTD
- to the HTML DTD.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-1-filename">
- <para>Specifies the file that Jade should process, and redirects
- output to the specified <filename>.html</filename> file.</para>
- </callout>
- </calloutlist>
- </example>
-
- <example>
- <title>Converting DocBook to HTML (several small files)</title>
-
- <screen>&prompt.user; <userinput>jade \
- -c /usr/local/share/sgml/docbook/dsssl/modular/catalog \ <co id="examples-co-jade-2-catalog">
- -c /usr/local/share/sgml/docbook/catalog \
- -c /usr/local/share/sgml/jade/catalog \
- -d /usr/local/share/sgml/docbook/dsssl/modular/html/docbook.dsl <co id="examples-co-jade-2-dsssl">
- -t sgml <co id="examples-co-jade-2-transform"> <replaceable>file</replaceable>.sgml <co id="examples-co-jade-2-filename"></userinput></screen>
-
- <calloutlist>
- <callout arearefs="examples-co-jade-2-catalog">
- <para>Specifies the catalogs that Jade will need to process.
- Three catalogs are required. The first is a catalog that
- contains information about the DSSSL stylesheets. The second
- contains information about the DocBook DTD. The third contains
- information specific to Jade.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-2-dsssl">
- <para>Specifies the full path to the DSSSL stylesheet that Jade
- will use when processing the document.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-2-transform">
- <para>Instructs Jade to perform a
- <emphasis>transformation</emphasis> from one DTD to another. In
- this case, the input is being transformed from the DocBook DTD
- to the HTML DTD.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-2-filename">
- <para>Specifies the file that Jade should process. The
- stylesheets determine how the individual HTML files will be
- named, and the name of the <quote>root</quote> file (i.e., the
- one that contains the start of the document.</para>
- </callout>
- </calloutlist>
-
- <para>This example may still only generate one HTML file, depending on
- the structure of the document you are processing, and the
- stylesheet's rules for splitting output.</para>
- </example>
-
- <example id="examples-docbook-postscript">
- <title>Converting DocBook to Postscript</title>
-
- <para>The source SGML file must be converted to a TeX file.</para>
-
- <screen>&prompt.user; <userinput>jade -Vtex-backend \ <co id="examples-co-jade-3-tex-backend">
- -c /usr/local/share/sgml/docbook/dsssl/modular/catalog \ <co id="examples-co-jade-3-catalog">
- -c /usr/local/share/sgml/docbook/catalog \
- -c /usr/local/share/sgml/jade/catalog \
- -d /usr/local/share/sgml/docbook/dsssl/modular/print/docbook.dsl <co id="examples-co-jade-3-dsssl">
- -t tex <co id="examples-co-jade-3-tex"> <replaceable>file</replaceable>.sgml</userinput></screen>
-
- <calloutlist>
- <callout arearefs="examples-co-jade-3-tex-backend">
- <para>Customises the stylesheets to use various options
- specific to producing output for TeX.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-3-catalog">
- <para>Specifies the catalogs that Jade will need to process. Three
- catalogs are required. The first is a catalog that contains
- information about the DSSSL stylesheets. The second contains
- information about the DocBook DTD. The third contains
- information specific to Jade.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-3-dsssl">
- <para>Specifies the full path to the DSSSL stylesheet that
- Jade will use when processing the document.</para>
- </callout>
-
- <callout arearefs="examples-co-jade-3-tex">
- <para>Instructs Jade to convert the output to TeX.</para>
- </callout>
- </calloutlist>
-
- <para>The generated <filename>.tex</filename> file must now be run
- through <command>tex</command>, specifying the
- <literal>&amp;jadetex</literal> macro package.</para>
-
- <screen>&prompt.user; <userinput>tex "&amp;jadetex" <replaceable>file</replaceable>.tex</userinput></screen>
-
- <para>You have to run <command>tex</command> <emphasis>at
- least</emphasis> three times. The first run processes the
- document, and determines areas of the document which are referenced
- from other parts of the document, for use in indexing, and so
- on.</para>
-
- <para>Do not be alarmed if you see warning messages such as
- <literal>LaTeX Warning: Reference `136' on page 5 undefined on input
- line 728.</literal> at this point.</para>
-
- <para>The second run reprocesses the document now that certain pieces
- of information are known (such as the document's page length). This
- allows index entries and other cross-references to be fixed
- up.</para>
-
- <para>The third pass performs any final cleanup necessary.</para>
-
- <para>The output from this stage will be
- <filename><replaceable>file</replaceable>.dvi</filename>.</para>
-
- <para>Finally, run <command>dvips</command> to convert the
- <filename>.dvi</filename> file to Postscript.</para>
-
- <screen>&prompt.user; <userinput>dvips -o <replaceable>file</replaceable>.ps <replaceable>file.dvi</replaceable></userinput></screen>
- </example>
-
- <example>
- <title>Converting DocBook to PDF</title>
-
- <para>The first part of this process is identical to that when
- converting DocBook to Postscript, using the same
- <command>jade</command> command line (<xref
- linkend="examples-docbook-postscript">).</para>
-
- <para>When the <filename>.tex</filename> file has been generated you
- run TeX as before. However, use the &amp;pdfjadetex macro package
- instead.</para>
-
- <screen>&prompt.user; <userinput>tex "&amp;pdfjadetex" <replaceable>file</replaceable>.tex</userinput></screen>
-
- <para>Again, run this command three times.</para>
-
- <para>This will generate
- <filename><replaceable>file</replaceable>.pdf</filename>, which does
- not need to be processed any further.</para>
- </example>
- </sect2>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
diff --git a/en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml
deleted file mode 100644
index aff71edf08..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml
+++ /dev/null
@@ -1,182 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/overview/chapter.sgml,v 1.5 2000/07/07 18:38:23 dannyboy Exp $
--->
-
-<chapter id="overview">
- <title>Overview</title>
-
- <para>Welcome to the FreeBSD Documentation Project. Good quality
- documentation is very important to the success of FreeBSD, and the
- FreeBSD Documentation Project (FDP) is how a lot of that documentation
- is produced. Your contributions are very valuable.</para>
-
- <para>This document's main purpose is to clearly explain <emphasis>how
- the FDP is organised</emphasis>, <emphasis>how to write and submit
- documentation to the FDP</emphasis>, and <emphasis>how to
- effectively use the tools available to you when writing
- documentation</emphasis>.</para>
-
- <para><indexterm>
- <primary>Membership</primary>
- </indexterm>
-Every one is welcome to join the FDP. There is no minimum
- membership requirement, no quota of documentation you need to
- produce per month. All you need to do is subscribe to the
- <email>freebsd-doc@FreeBSD.org</email> mailing list.</para>
-
- <para>After you have finished reading this document you should:</para>
-
- <itemizedlist>
- <listitem>
- <para>Know which documentation is maintained by the FDP.</para>
- </listitem>
-
- <listitem>
- <para>Be able to read and understand the SGML source code for the
- documentation maintained by the FDP.</para>
- </listitem>
-
- <listitem>
- <para>Be able to make changes to the documentation.</para>
- </listitem>
-
- <listitem>
- <para>Be able to submit your changes back for review and eventual
- inclusion in the FreeBSD documentation.</para>
- </listitem>
- </itemizedlist>
-
- <sect1>
- <title>The FreeBSD Documentation Set</title>
-
- <para>The FDP is responsible for four categories of FreeBSD
- documentation.</para>
-
- <variablelist>
- <varlistentry>
- <term>Manual pages</term>
-
- <listitem>
- <para>The English language system manual pages are not written by
- the FDP, as they are part of the base system. However, the FDP can
- (and has) re-worded parts of existing manual pages to make them
- clearer, or to correct inaccuracies.</para>
-
- <para>The translation teams are responsible for translating the
- system manual pages in to different languages. These translations
- are kept within the FDP.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FAQ</term>
-
- <listitem>
- <para>The FAQ aims to address (in short question and answer format)
- questions that are asked, or should be asked, on the various
- mailing lists and newsgroups devoted to FreeBSD. The format does
- not permit long and comprehensive answers.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Handbook</term>
-
- <listitem>
- <para>The Handbook aims to be the comprehensive on-line resource and
- reference for FreeBSD users.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Web site</term>
-
- <listitem>
- <para>This is the main FreeBSD presence on the World Wide Web,
- visible at <ulink
- url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink>
- and many mirrors around the world. The web site is many people's
- first exposure to FreeBSD.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>These four groups of documentation are all available in the
- FreeBSD CVS tree. This means that the logs of changes to these
- files are visible to anyone, and anyone can use a program such as
- <application>CVSup</application> or
- <application>CTM</application> to keep local copies of
- this documentation.</para>
-
- <para>In addition, many people have written tutorials or other web
- sites relating to FreeBSD. Some of these are stored in the CVS
- repository as well (where the author has agreed to this). In
- other cases the author has decided to keep his documentation
- separate from the main FreeBSD repository. The FDP endeavours to
- provide links to as much of this documentation as
- possible.</para>
- </sect1>
-
- <sect1>
- <title>Before you start</title>
-
- <para>This document assumes that you already know:</para>
-
- <itemizedlist>
- <listitem>
- <para>How to maintain an up-to-date local copy of the FreeBSD
- documentation by maintaining a local copy of the
- FreeBSD CVS repository (using <application>CVS</application>
- and either <application>CVSup</application> or
- <application>CTM</application>) or by using
- <application>CVSup</application> to download just a
- <emphasis>checked-out</emphasis> copy.</para>
- </listitem>
-
- <listitem>
- <para>How to download and install new software using either the
- FreeBSD Ports system or &man.pkg.add.1;.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml
deleted file mode 100644
index 8abcde6496..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml
+++ /dev/null
@@ -1,150 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/psgml-mode/chapter.sgml,v 1.3 1999/09/06 06:52:41 peter Exp $
--->
-
-<chapter id="psgml-mode">
- <title>Using <literal>sgml-mode</literal> with
- <application>Emacs</application></title>
-
- <para>Recent versions of Emacs or Xemacs (available from the ports
- collection) contain a very useful package called PSGML. Automatically
- invoked when a file with the <filename>.sgml</filename> extension is loaded,
- or by typing <command>M-x sgml-mode</command>, it is a major mode for
- dealing with SGML files, elements and attributes.</para>
-
- <para>An understanding of some of the commands provided by this mode can
- make working with SGML documents such as the Handbook much easier.</para>
-
- <variablelist>
- <varlistentry>
- <term><command>C-c C-e</command></term>
-
- <listitem>
- <para>Runs <literal>sgml-insert-element</literal>. You will be
- prompted for the name of the element to insert at the current point.
- You can use the TAB key to complete the element. Elements that are
- not valid at the current point will be disallowed.</para>
-
- <para>The start and end tags for the element will be inserted. If the
- element contains other, mandatory, elements then these will be
- inserted as well.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c =</command></term>
-
- <listitem>
- <para>Runs <literal>sgml-change-element-name</literal>. Place the
- point within an element and run this command. You will be prompted
- for the name of the element to change to. Both the start and end
- tags of the current element will be changed to the new
- element.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-r</command></term>
-
- <listitem>
- <para>Runs <literal>sgml-tag-region</literal>. Select some text (move
- to start of text, C-space, move to end of text, C-space) and then
- run this command. You will be prompted for the element to use. This
- element will then be inserted immediately before and after your
- marked region.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c -</command></term>
-
- <listitem>
- <para>Runs <literal>sgml-untag-element</literal>. Place the point
- within the start or end tag of an element you want to remove, and
- run this command. The element's start and end tags will be
- removed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-q</command></term>
-
- <listitem>
- <para>Runs <literal>sgml-fill-element</literal>. Will recursively fill
- (i.e., reformat) content from the current element in. The filling
- <emphasis>will</emphasis> affect content in which whitespace is
- significant, such as within <sgmltag>programlisting</sgmltag>
- elements, so run this command with care.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-a</command></term>
-
- <listitem>
- <para>Runs <literal>sgml-edit-attributes</literal>. Opens a second
- buffer containing a list of all the attributes for the closest
- enclosing element, and their current values. Use TAB to navigate
- between attributes, <command>C-k</command> to remove an existing
- value and replace it with a new one, <command>C-c</command> to close
- this buffer and return to the main document.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-v</command></term>
-
- <listitem>
- <para>Runs <literal>sgml-validate</literal>. Prompts you to save the
- current document (if necessary) and then runs an SGML validator. The
- output from the validator is captured into a new buffer, and you can
- then navigate from one troublespot to the next, fixing markup errors
- as you go.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Doubtless there are other useful functions of this mode, but those are
- the ones I use most often.</para>
-</chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml
deleted file mode 100644
index 9f8ac6dd06..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml
+++ /dev/null
@@ -1,121 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/see-also/chapter.sgml,v 1.4 1999/09/06 06:52:41 peter Exp $
--->
-
-<chapter id="see-also">
- <title>See Also</title>
-
- <para>This document is deliberately not an exhaustive discussion of SGML,
- the DTDs listed, and the FreeBSD Documentation Project. For more
- information about these, you are encouraged to see the following web
- sites.</para>
-
- <sect1>
- <title>The FreeBSD Documentation Project</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.FreeBSD.org/docproj/">The FreeBSD
- Documentation Project web pages</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.FreeBSD.org/handbook/">The FreeBSD Handbook</ulink></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>SGML</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.oasis-open.org/cover/">The SGML/XML web
- page</ulink>, a comprehensive SGML resource</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url='http://etext.virginia.edu/bin/tei-tocs?div=DIV1&amp;id=SG">http://etext.virginia.edu/bin/tei-tocs?div=DIV1&amp;id=SG'>Gentle introduction to SGML</ulink></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>HTML</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.w3.org/">The World Wide Web
- Consortium</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.w3.org/TR/REC-html40/">The HTML 4.0
- specification</ulink></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>DocBook</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.oasis-open.org/docbook/">The DocBook
- Technical Committee</ulink>, maintainers of the DocBook DTD</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>The Linux Documentation Project</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.linuxdoc.org/">The Linux Documentation
- Project web pages</ulink></para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
deleted file mode 100644
index a5d16c1126..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
+++ /dev/null
@@ -1,2563 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.18 2001/01/03 11:12:41 nik Exp $
--->
-
-<chapter id="sgml-markup">
- <title>SGML Markup</title>
-
- <para>This chapter describes the three markup languages you will encounter
- when you contribute to the FreeBSD documentation project. Each section
- describes the markup language, and details the markup that you are likely
- to want to use, or that is already in use.</para>
-
- <para>These markup languages contain a large number of elements, and it can
- be confusing sometimes to know which element to use for a particular
- situation. This section goes through the elements you are most likely to
- need, and gives examples of how you would use them.</para>
-
- <para>This is <emphasis>not</emphasis> an exhaustive list of elements, since
- that would just reiterate the documentation for each language. The aim of
- this section is to list those elements more likely to be useful to you.
- If you have a question about how best to markup a particular piece of
- content, please post it to the FreeBSD Documentation Project mailing list
- <email>freebsd-doc@FreeBSD.org</email>.</para>
-
- <note>
- <title>Inline vs. block</title>
-
- <para>In the remainder of this document, when describing elements,
- <emphasis>inline</emphasis> means that the element can occur within a
- block element, and does not cause a line break. A
- <emphasis>block</emphasis> element, by comparison, will cause a line
- break (and other processing) when it is encountered.</para>
- </note>
-
- <sect1>
- <title>HTML</title>
-
- <para>HTML, the HyperText Markup Language, is the markup language of
- choice on the World Wide Web. More information can be found at
- &lt;URL:<ulink
- url="http://www.w3.org/">http://www.w3.org/</ulink>&gt;.</para>
-
- <para>HTML is used to markup pages on the FreeBSD web site. It should not
- (generally) be used to mark up other documention, since DocBook offers a
- far richer set of elements to choose from. Consequently, you will
- normally only encounter HTML pages if you are writing for the web
- site.</para>
-
- <para>HTML has gone through a number of versions, 1, 2, 3.0, 3.2, and the
- latest, 4.0 (available in both <emphasis>strict</emphasis> and
- <emphasis>loose</emphasis> variants).</para>
-
- <para>The HTML DTDs are available from the ports collection in the
- <filename>textproc/html</filename> port. They are automatically
- installed as part of the <filename>textproc/docproj</filename>
- port.</para>
-
- <sect2>
- <title>Formal Public Identifier (FPI)</title>
-
- <para>There are a number of HTML FPIs, depending upon the version (also
- known as the level) of HTML that you want to declare your document to
- be compliant with.</para>
-
- <para>The majority of HTML documents on the FreeBSD web site comply with
- the loose version of HTML 4.0.</para>
-
- <programlisting>PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</programlisting>
- </sect2>
-
- <sect2>
- <title>Sectional elements</title>
-
- <para>An HTML document is normally split in to two sections. The first
- section, called the <emphasis>head</emphasis>, contains
- meta-information about the document, such as its title, the name of
- the author, the parent document, and so on. The second section, the
- <emphasis>body</emphasis>, contains the content that will be displayed
- to the user.</para>
-
- <para>These sections are indicated with <sgmltag>head</sgmltag> and
- <sgmltag>body</sgmltag> elements respectively. These elements are
- contained within the top-level <sgmltag>html</sgmltag> element.</para>
-
- <example>
- <title>Normal HTML document structure</title>
-
- <programlisting>&lt;html>
- &lt;head>
- &lt;title><replaceable>The document's title</replaceable>&lt;/title>
- &lt;/head>
-
- &lt;body>
-
- &hellip;
-
- &lt;/body>
-&lt;/html></programlisting>
- </example>
- </sect2>
-
- <sect2>
- <title>Block elements</title>
-
- <sect3>
- <title>Headings</title>
-
- <para>HTML allows you to denote headings in your document, at up to
- six different levels.</para>
-
- <para>The largest and most prominent heading is <sgmltag>h1</sgmltag>,
- then <sgmltag>h2</sgmltag>, continuing down to
- <sgmltag>h6</sgmltag>.</para>
-
- <para>The element's content is the text of the heading.</para>
-
- <example>
- <title><sgmltag>h1</sgmltag>, <sgmltag>h2</sgmltag>, etc.</title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<h1>First section</h1>
-
-<!-- Document introduction goes here -->
-
-<h2>This is the heading for the first section</h2>
-
-<!-- Content for the first section goes here -->
-
-<h3>This is the heading for the first sub-section</h3>
-
-<!-- Content for the first sub-section goes here -->
-
-<h2>This is the heading for the second section</h2>
-
-<!-- Content for the second section goes here -->]]></programlisting>
- </example>
-
- <para>Generally, an HTML page should have one first level heading
- (<sgmltag>h1</sgmltag>). This can contain many second level
- headings (<sgmltag>h2</sgmltag>), which can in turn contain many
- third level headings. Each
- <sgmltag>h<replaceable>n</replaceable></sgmltag> element should have
- the same element, but one further up the hierarchy, preceeding it.
- Leaving gaps in the numbering is to be avoided.</para>
-
- <example>
- <title>Bad ordering of
- <sgmltag>h<replaceable>n</replaceable></sgmltag> elements</title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<h1>First section</h1>
-
-<!-- Document introduction -->
-
-<h3>Sub-section</h3>
-
-<!-- This is bad, <h2> has been left out -->]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Paragraphs</title>
-
- <para>HTML supports a single paragraph element,
- <sgmltag>p</sgmltag>.</para>
-
- <example>
- <title><sgmltag>p</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>This is a paragraph. It can contain just about any
- other element.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Block quotations</title>
-
- <para>A block quotation is an extended quotation from another document
- that should not appear within the current paragraph.</para>
-
- <example>
- <title><sgmltag>blockquote</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>A small excerpt from the US Constitution:</p>
-
-<blockquote>We the People of the United States, in Order to form
- a more perfect Union, establish Justice, insure domestic
- Tranquility, provide for the common defence, promote the general
- Welfare, and secure the Blessings of Liberty to ourselves and our
- Posterity, do ordain and establish this Constitution for the
- United States of America.</blockquote>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Lists</title>
-
- <para>You can present the user with three types of lists, ordered,
- unordered, and definition.</para>
-
- <para>Typically, each entry in an ordered list will be numbered, while
- each entry in an unordered list will be preceded by a bullet point.
- Definition lists are composed of two sections for each entry. The
- first section is the term being defined, and the second section is
- the definition of the term.</para>
-
- <para>Ordered lists are indicated by the <sgmltag>ol</sgmltag>
- element, unordered lists by the <sgmltag>ul</sgmltag> element, and
- definition lists by the <sgmltag>dl</sgmltag> element.</para>
-
- <para>Ordered and unordered lists contain listitems, indicated by the
- <sgmltag>li</sgmltag> element. A listitem can contain textual
- content, or it may be further wrapped in one or more
- <sgmltag>p</sgmltag> elements.</para>
-
- <para>Definition lists contain definition terms
- (<sgmltag>dt</sgmltag>) and definition descriptions
- (<sgmltag>dd</sgmltag>). A definition term can only contain inline
- elements. A definition description can contain other block
- elements.</para>
-
- <example>
- <title><sgmltag>ul</sgmltag> and <sgmltag>ol</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>An unordered list. Listitems will probably be
- preceeded by bullets.</p>
-
-<ul>
- <li>First item</li>
-
- <li>Second item</li>
-
- <li>Third item</li>
-</ul>
-
-<p>An ordered list, with list items consisting of multiple
- paragraphs. Each item (note: not each paragraph) will be
- numbered.</p>
-
-<ol>
- <li><p>This is the first item. It only has one paragraph.</p></li>
-
- <li><p>This is the first paragraph of the second item.</p>
-
- <p>This is the second paragraph of the second item.</p></li>
-
- <li><p>This is the first and only paragraph of the third
- item.</p></li>
-</ol>]]></programlisting>
- </example>
-
- <example>
- <title>Definition lists with <sgmltag>dl</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<dl>
- <dt>Term 1</dt>
-
- <dd><p>Paragraph 1 of definition 1.</p></dd>
-
- <p>Paragraph 2 of definition 1.</p></dd>
-
- <dt>Term 2</dt>
-
- <dd><p>Paragraph 1 of definition 2.</p></dd>
-
- <dt>Term 3</dt>
-
- <dd>Paragraph 1 of definition 3. Note that the &lt;p&gt;
- element is not required in the single paragraph case.</dd>
-</dl>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Pre-formatted text</title>
-
- <para>You can indicate that text should be shown to the user exactly
- as it is in the file. Typically, this means that the text is shown
- in a fixed font, multiple spaces are not merged in to one, and line
- breaks in the text are significant.</para>
-
- <para>In order to do this, wrap the content in the
- <sgmltag>pre</sgmltag> element.</para>
-
- <example>
- <title><sgmltag>pre</sgmltag></title>
-
- <para>You could use <sgmltag>pre</sgmltag> to mark up an e-mail
- message;</para>
-
- <programlisting><![ CDATA [<pre> From: nik@FreeBSD.org
- To: freebsd-doc@FreeBSD.org
- Subject: New documentation available
-
- There's a new copy of my primer for contributers to the FreeBSD
- Documentation Project available at
-
- <URL:http://people.FreeBSD.org/~nik/primer/index.html>
-
- Comments appreciated.
-
- N</pre>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Tables</title>
-
- <note>
- <para>Most text-mode browsers (such as Lynx) do not render tables
- particularly effectively. If you are relying on the tabular
- display of your content, you should consider using alternative
- markup to prevent confusion.</para>
- </note>
-
- <para>Mark up tabular information using the <sgmltag>table</sgmltag>
- element. A table consists of one or more table rows
- (<sgmltag>tr</sgmltag>), each containing one or more cells of table
- data (<sgmltag>td</sgmltag>). Each cell can contain other block
- elements, such as paragraphs or lists. It can also contain another
- table (this nesting can repeat indefinitely). If the cell only
- contains one paragraph then you do not need to include the
- <sgmltag>p</sgmltag> element.</para>
-
- <example>
- <title>Simple use of <sgmltag>table</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>This is a simple 2x2 table.</p>
-
-<table>
- <tr>
- <td>Top left cell</td>
-
- <td>Top right cell</td>
- </tr>
-
- <tr>
- <td>Bottom left cell</td>
-
- <td>Bottom right cell</td>
- </tr>
-</table>]]></programlisting></example>
-
- <para>A cell can span multiple rows and columns. To indicate this,
- add the <literal>rowspan</literal> and/or <literal>colspan</literal>
- attributes, with values indicating the number of rows of columns
- that should be spanned.</para>
-
- <example>
- <title>Using <literal>rowspan</literal></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>One tall thin cell on the left, two short cells next to
- it on the right.</p>
-
-<table>
- <tr>
- <td rowspan="2">Long and thin</td>
- </tr>
-
- <tr>
- <td>Top cell</td>
-
- <td>Bottom cell</td>
- </tr>
-</table>]]></programlisting>
- </example>
-
- <example>
- <title>Using <literal>colspan</literal></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>One long cell on top, two short cells below it.</p>
-
-<table>
- <tr>
- <td colspan="2">Top cell</td>
- </tr>
-
- <tr>
- <td>Bottom left cell</td>
-
- <td>Bottom right cell</td>
- </tr>
-</table>]]></programlisting>
- </example>
-
- <example>
- <title>Using <literal>rowspan</literal> and
- <literal>colspan</literal> together</title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>On a 3x3 grid, the top left block is a 2x2 set of
- cells merged in to one. The other cells are normal.</p>
-
-<table>
- <tr>
- <td colspan="2" rowspan="2">Top left large cell</td>
-
- <td>Top right cell</td>
- </tr>
-
- <tr>
- <!-- Because the large cell on the left merges in to
- this row, the first <td> will occur on its
- right -->
-
- <td>Middle right cell</td>
- </tr>
-
- <tr>
- <td>Bottom left cell</td>
-
- <td>Bottom middle cell</td>
-
- <td>Bottom right cell</td>
- </tr>
-</table>]]></programlisting>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>In-line elements</title>
-
- <sect3>
- <title>Emphasising information</title>
-
- <para>You have two levels of emphasis available in HTML,
- <sgmltag>em</sgmltag> and <sgmltag>strong</sgmltag>.
- <sgmltag>em</sgmltag> is for a normal level of emphasis and
- <sgmltag>strong</sgmltag> indicates stronger emphasis.</para>
-
- <para>Typically, <sgmltag>em</sgmltag> is rendered in italic and
- <sgmltag>strong</sgmltag> is rendered in bold. This is not always
- the case, however, and you should not rely on it.</para>
-
- <example>
- <title><sgmltag>em</sgmltag> and <sgmltag>strong</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p><em>This</em> has been emphasised, while
- <strong>this</strong> has been strongly emphasised.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Bold and italics</title>
-
- <para>Because HTML includes presentational markup, you can also
- indicate that particular content should be rendered in bold or
- italic. The elements are <sgmltag>b</sgmltag> and
- <sgmltag>i</sgmltag> respectively.</para>
-
- <example>
- <title><sgmltag>b</sgmltag> and <sgmltag>i</sgmltag></title>
-
- <programlisting><![ CDATA [<p><b>This</b> is in bold, while <i>this</i> is
- in italics.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Indicating fixed pitch text</title>
-
- <para>If you have content that should be rendered in a fixed pitch
- (typewriter) typeface, use <sgmltag>tt</sgmltag> (for
- &ldquo;teletype&rdquo;).</para>
-
- <example>
- <title><sgmltag>tt</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>This document was originally written by
- Nik Clayton, who can be reached by e-mail as
- <tt>nik@FreeBSD.org</tt>.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Content size</title>
-
- <para>You can indicate that content should be shown in a larger or
- smaller font. There are three ways of doing this.</para>
-
- <orderedlist>
- <listitem>
- <para>Use <sgmltag>big</sgmltag> and <sgmltag>small</sgmltag>
- around the content you wish to change size. These tags can be
- nested, so <literal>&lt;big&gt;&lt;big&gt;This is much
- bigger&lt;/big&gt;&lt;/big&gt;</literal> is possible.</para>
- </listitem>
-
- <listitem>
- <para>Use <sgmltag>font</sgmltag> with the <literal>size</literal>
- attribute set to <literal>+1</literal> or <literal>-1</literal>
- respectively. This has the same effect as using
- <sgmltag>big</sgmltag> or <sgmltag>small</sgmltag>. However,
- the use of this approach is deprecated.</para>
- </listitem>
-
- <listitem>
- <para>Use <sgmltag>font</sgmltag> with the <literal>size</literal>
- attribute set to a number between 1 and 7. The default font size
- is <literal>3</literal>. This approach is deprecated.</para>
- </listitem>
- </orderedlist>
-
- <example>
- <title><sgmltag>big</sgmltag>, <sgmltag>small</sgmltag>, and
- <sgmltag>font</sgmltag></title>
-
- <para>The following fragments all do the same thing.</para>
-
- <programlisting><![ CDATA [<p>This text is <small>slightly smaller</small>. But
- this text is <big>slightly bigger</big>.</p>
-
-<p>This text is <font size="-1">slightly smaller</font>. But
- this text is <font size="+1">slightly bigger</font.</p>
-
-<p>This text is <font size="2">slightly smaller</font>. But
- this text is <font size="4">slightly bigger</font>.</p>]]></programlisting>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Links</title>
-
- <note>
- <para>Links are also in-line elements.</para>
- </note>
-
- <sect3>
- <title>Linking to other documents on the WWW</title>
-
- <para>In order to include a link to another document on the WWW you
- must know the URL of the document you want to link to.</para>
-
- <para>The link is indicated with <sgmltag>a</sgmltag>, and the
- <literal>href</literal> attribute contains the URL of the target
- document. The content of the element becomes the link, and is
- normally indicated to the user in some way (underlining, change of
- colour, different mouse cursor when over the link, and so
- on).</para>
-
- <example>
- <title>Using <literal>&lt;a href="..."&gt;</literal></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p>More information is available at the
- <a href="http://www.FreeBSD.org/">FreeBSD web site</a>.</p>]]></programlisting>
- </example>
-
- <para>These links will take the user to the top of the chosen
- document.</para>
- </sect3>
-
- <sect3>
- <title>Linking to other parts of documents</title>
-
- <para>Linking to a point within another document (or within the same
- document) requires that the document author include anchors that you
- can link to.</para>
-
- <para>Anchors are indicated with <sgmltag>a</sgmltag> and the
- <literal>name</literal> attribute instead of
- <literal>href</literal>.</para>
-
- <example>
- <title>Using <literal>&lt;a name="..."&gt;</literal></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<p><a name="para1">This</a> paragraph can be referenced
- in other links with the name <tt>para1</tt>.</p>]]></programlisting>
- </example>
-
- <para>To link to a named part of a document, write a normal link to
- that document, but include the name of the anchor after a
- <literal>#</literal> symbol.</para>
-
- <example>
- <title>Linking to a named part of another document</title>
-
- <para>Assume that the <literal>para1</literal> example resides in a
- document called <filename>foo.html</filename>.</para>
-
- <programlisting><![ CDATA [<p>More information can be found in the
- <a href="foo.html#para1">first paragraph</a> of
- <tt>foo.html</tt>.</p>]]></programlisting>
- </example>
-
- <para>If you are linking to a named anchor within the same document
- then you can omit the document's URL, and just include the name of
- the anchor (with the preceeding <literal>#</literal>).</para>
-
- <example>
- <title>Linking to a named part of the same document</title>
-
- <para>Assume that the <literal>para1</literal> example resides in
- this document</para>
-
- <programlisting><![ CDATA [<p>More information can be found in the
- <a href="#para1">first paragraph</a> of this
- document.</p>]]></programlisting>
- </example>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>DocBook</title>
-
- <para>DocBook was designed by the <ulink
- url="http://www.oreilly.com/davenport/">Davenport Group</ulink> to be
- a DTD for writing technical documentation. As such, and unlike LinuxDoc
- and HTML, DocBook is very heavily oriented towards markup that
- describes <emphasis>what</emphasis> something is, rather than describing
- <emphasis>how</emphasis> it should be presented.</para>
-
- <note>
- <title><literal>formal</literal> vs. <literal>informal</literal></title>
-
- <para>Some elements may exist in two forms, <emphasis>formal</emphasis>
- and <emphasis>informal</emphasis>. Typically, the formal version of
- the element will consist of a title followed by the information
- version of the element. The informal version will not have a
- title.</para>
- </note>
-
- <para>The DocBook DTD is available from the ports collection in the
- <filename>textproc/docbook</filename> port. It is automatically
- installed as part of the <filename>textproc/docproj</filename>
- port.</para>
-
- <sect2>
- <title>FreeBSD extensions</title>
-
- <para>The FreeBSD Documentation Project has extended the DocBook DTD by
- adding some new elements. These elements serve to make some of the
- markup more precise.</para>
-
- <para>Where a FreeBSD specific element is listed below it is clearly
- marked.</para>
-
- <para>Throughout the rest of this document, the term
- &ldquo;DocBook&rdquo; is used to mean the FreeBSD extended DocBook
- DTD.</para>
-
- <note>
- <para>There is nothing about these extensions that is FreeBSD
- specific, it was just felt that they were useful enhancements for
- this particular project. Should anyone from any of the other *nix
- camps (NetBSD, OpenBSD, Linux, &hellip;) be interested in
- collaborating on a standard DocBook extension set, please get in
- touch with Nik Clayton <email>nik@FreeBSD.org</email>.</para>
- </note>
-
- <para>The FreeBSD extensions are not (currently) in the ports
- collection. They are stored in the FreeBSD CVS tree, as <ulink
- url="http://www.freebsd.org/cgi/cvsweb.cgi/doc/share/sgml/freebsd.dtd">doc/share/sgml/freebsd.dtd</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Formal Public Identifier (FPI)</title>
-
- <para>In compliance with the DocBook guidelines for writing FPIs for
- DocBook customisations, the FPI for the FreeBSD extended DocBook DTD
- is;</para>
-
- <programlisting>PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN"</programlisting>
- </sect2>
-
- <sect2>
- <title>Document structure</title>
-
- <para>DocBook allows you to structure your documentation in several
- ways. In the FreeBSD Documentation Project we are using two primary
- types of DocBook document: the book and the article.</para>
-
- <para>A book is organised into <sgmltag>chapter</sgmltag>s. This is a
- mandatory requirement. There may be <sgmltag>part</sgmltag>s between
- the book and the chapter to provide another layer of organisation.
- The Handbook is arranged in this way.</para>
-
- <para>A chapter may (or may not) contain one or more sections. These
- are indicated with the <sgmltag>sect1</sgmltag> element. If a section
- contains another section then use the <sgmltag>sect2</sgmltag>
- element, and so on, up to <sgmltag>sect5</sgmltag>.</para>
-
- <para>Chapters and sections contain the remainder of the content.</para>
-
- <para>An article is simpler than a book, and does not use chapters.
- Instead, the content of an article is organised into one or more
- sections, using the same <sgmltag>sect1</sgmltag> (and
- <sgmltag>sect2</sgmltag> and so on) elements that are used in
- books.</para>
-
- <para>Obviously, you should consider the nature of the documentation you
- are writing in order to decide whether it is best marked up as a book
- or an article. Articles are well suited to information that does not
- need to be broken down into several chapters, and that is, relatively
- speaking, quite short, at up to 20-25 pages of content. Books are
- best suited to information that can be broken up into several
- chapters, possibly with appendices and similar content as well.</para>
-
- <para>The <ulink url="http://www.FreeBSD.org/tutorials/">FreeBSD
- tutorials</ulink> are all marked up as articles, while this
- document, the <ulink url="http://www.FreeBSD.org/FAQ/">FreeBSD
- FAQ</ulink>, and the <ulink
- url="http://www.FreeBSD.org/handbook/">FreeBSD Handbook</ulink> are
- all marked up as books.</para>
-
- <sect3>
- <title>Starting a book</title>
-
- <para>The content of the book is contained within the
- <sgmltag>book</sgmltag> element. As well as containing structural
- markup, this element can contain elements that include additional
- information about the book. This is either meta-information, used
- for reference purposes, or additional content used to produce a
- title page.</para>
-
- <para>This additional information should be contained within
- <sgmltag>bookinfo</sgmltag>.</para>
-
- <example>
- <title>Boilerplate <sgmltag>book</sgmltag> with
- <sgmltag>bookinfo</sgmltag></title>
-
- <!-- Can't put this in a marked section because of the
- replaceable elements -->
- <programlisting>&lt;book>
- &lt;bookinfo>
- &lt;title><replaceable>Your title here</replaceable>&lt;/title>
-
- &lt;author>
- &lt;firstname><replaceable>Your first name</replaceable>&lt;/firstname>
- &lt;surname><replaceable>Your surname</replaceable>&lt;/surname>
- &lt;affiliation>
- &lt;address>&lt;email><replaceable>Your e-mail address</replaceable>&lt;/email>&lt;/address>
- &lt;/affiliation>
- &lt;/author>
-
- &lt;copyright>
- &lt;year><replaceable>1998</replaceable>&lt;/year>
- &lt;holder role="mailto:<replaceable>your e-mail address</replaceable>"><replaceable>Your name</replaceable>&lt;/holder>
- &lt;/copyright>
-
- &lt;pubdate role="rcs">&#36;Date&#36;&lt;/pubdate>
-
- &lt;releaseinfo>&#36;Id&#36;&lt;/releaseinfo>
-
- &lt;abstract>
- &lt;para><replaceable>Include an abstract of the book's contents here.</replaceable>&lt;/para>
- &lt;/abstract>
- &lt;/bookinfo>
-
- &hellip;
-
-&lt;/book></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Starting an article</title>
-
- <para>The content of the article is contained within the
- <sgmltag>article</sgmltag> element. As well as containing
- structural markup, this element can contain elements that include
- additional information about the article. This is either
- meta-information, used for reference purposes, or additional content
- used to produce a title page.</para>
-
- <para>This additional information should be contained within
- <sgmltag>artheader</sgmltag>.</para>
-
- <example>
- <title>Boilerplate <sgmltag>article</sgmltag> with
- <sgmltag>artheader</sgmltag></title>
-
- <!-- Can't put this in a marked section because of the
- replaceable elements -->
- <programlisting>&lt;article>
- &lt;artheader>
- &lt;title><replaceable>Your title here</replaceable>&lt;/title>
-
- &lt;author>
- &lt;firstname><replaceable>Your first name</replaceable>&lt;/firstname>
- &lt;surname><replaceable>Your surname</replaceable>&lt;/surname>
- &lt;affiliation>
- &lt;address>&lt;email><replaceable>Your e-mail address</replaceable>&lt;/email>&lt;/address>
- &lt;/affiliation>
- &lt;/author>
-
- &lt;copyright>
- &lt;year><replaceable>1998</replaceable>&lt;/year>
- &lt;holder role="mailto:<replaceable>your e-mail address</replaceable>"><replaceable>Your name</replaceable>&lt;/holder>
- &lt;/copyright>
-
- &lt;pubdate role="rcs">&#36;Date&#36;&lt;/pubdate>
-
- &lt;releaseinfo>&#36;Id&#36;&lt;/releaseinfo>
-
- &lt;abstract>
- &lt;para><replaceable>Include an abstract of the article's contents here.</replaceable>&lt;/para>
- &lt;/abstract>
- &lt;/artheader>
-
- &hellip;
-
-&lt;/article></programlisting>
- </example>
- </sect3>
- <sect3>
- <title>Indicating chapters</title>
-
- <para>Use <sgmltag>chapter</sgmltag> to mark up your chapters. Each
- chapter has a mandatory <sgmltag>title</sgmltag>. Articles do not
- contain chapters, they are reserved for books.</para>
-
- <example>
- <title>A simple chapter</title>
-
- <programlisting><![ CDATA [<chapter>
- <title>The chapter's title</title>
-
- ...
-</chapter>]]></programlisting>
- </example>
-
- <para>A chapter cannot be empty; it must contain elements in addition
- to <sgmltag>title</sgmltag>. If you need to include an empty
- chapter then just use an empty paragraph.</para>
-
- <example>
- <title>Empty chapters</title>
-
- <programlisting><![ CDATA [<chapter>
- <title>This is an empty chapter</title>
-
- <para></para>
-</chapter>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Sections below chapters</title>
-
- <para>In books, chapters may (but do not need to) be broken up into
- sections, subsections, and so on. In articles, sections are the
- main structural element, and each article must contain at least one
- section. Use the
- <sgmltag>sect<replaceable>n</replaceable></sgmltag> element. The
- <replaceable>n</replaceable> indicates the section number, which
- identifies the section level.</para>
-
- <para>The first <sgmltag>sect<replaceable>n</replaceable></sgmltag> is
- <sgmltag>sect1</sgmltag>. You can have one or more of these in a
- chapter. They can contain one or more <sgmltag>sect2</sgmltag>
- elements, and so on, down to <sgmltag>sect5</sgmltag>.</para>
-
- <example>
- <title>Sections in chapters</title>
-
- <programlisting><![ RCDATA [<chapter>
- <title>A sample chapter</title>
-
- <para>Some text in the chapter.</para>
-
- <sect1>
- <title>First section (1.1)</title>
-
- &hellip;
- </sect1>
-
- <sect1>
- <title>Second section (1.2)</title>
-
- <sect2>
- <title>First sub-section (1.2.1)</title>
-
- <sect3>
- <title>First sub-sub-section (1.2.1.1)</title>
-
- &hellip;
- </sect3>
- </sect2>
-
- <sect2>
- <title>Second sub-section (1.2.2)</title>
-
- &hellip;
- </sect2>
- </sect1>
-</chapter>]]></programlisting>
- </example>
-
- <note>
- <para>This example includes section numbers in the section titles.
- You should not do this in your documents. Adding the section
- numbers is carried out the by the stylesheets (of which more
- later), and you do not need to manage them yourself.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Subdividing using <sgmltag>part</sgmltag>s</title>
-
- <para>You can introduce another layer of organisation between
- <sgmltag>book</sgmltag> and <sgmltag>chapter</sgmltag> with one or
- more <sgmltag>part</sgmltag>s. This cannot be done in an
- <sgmltag>article</sgmltag>.</para>
-
- <programlisting><![ CDATA [<part>
- <title>Introduction</title>
-
- <chapter>
- <title>Overview</title>
-
- ...
- </chapter>
-
- <chapter>
- <title>What is FreeBSD?</title>
-
- ...
- </chapter>
-
- <chapter>
- <title>History</title>
-
- ...
- </chapter>
-</part>]]></programlisting>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Block elements</title>
-
- <sect3>
- <title>Paragraphs</title>
-
- <para>DocBook supports three types of paragraphs:
- <sgmltag>formalpara</sgmltag>, <sgmltag>para</sgmltag>, and
- <sgmltag>simpara</sgmltag>.</para>
-
- <para>Most of the time you will only need to use
- <sgmltag>para</sgmltag>. <sgmltag>formalpara</sgmltag> includes a
- <sgmltag>title</sgmltag> element, and <sgmltag>simpara</sgmltag>
- disallows some elements from within <sgmltag>para</sgmltag>. Stick
- with <sgmltag>para</sgmltag>.</para>
-
- <example>
- <title><sgmltag>para</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>This is a paragraph. It can contain just about any
- other element.</para> ]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>This is a paragraph. It can contain just about any other
- element.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Block quotations</title>
-
- <para>A block quotation is an extended quotation from another document
- that should not appear within the current paragraph. You will
- probably only need it infrequently.</para>
-
- <para>Blockquotes can optionally contain a title and an attribution
- (or they can be left untitled and unattributed).</para>
-
- <example>
- <title><sgmltag>blockquote</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>A small excerpt from the US Constitution;</para>
-
-<blockquote>
- <title>Preamble to the Constitution of the United States</title>
-
- <attribution>Copied from a web site somewhere</attribution>
-
- <para>We the People of the United States, in Order to form a more perfect
- Union, establish Justice, insure domestic Tranquility, provide for the
- common defence, promote the general Welfare, and secure the Blessings
- of Liberty to ourselves and our Posterity, do ordain and establish this
- Constitution for the United States of America.</para>
-</blockquote>]]></programlisting>
-
- <para>Appearance:</para>
-
- <blockquote>
- <title>Preamble to the Constitution of the United States</title>
-
- <attribution>Copied from a web site somewhere</attribution>
-
- <para>We the People of the United States, in Order to form a more
- perfect Union, establish Justice, insure domestic Tranquility,
- provide for the common defence, promote the general Welfare, and
- secure the Blessings of Liberty to ourselves and our Posterity,
- do ordain and establish this Constitution for the United States
- of America.</para>
- </blockquote>
- </example>
- </sect3>
-
- <sect3>
- <title>Tips, notes, warnings, cautions, important information and
- sidebars.</title>
-
- <para>You may need to include extra information separate from the
- main body of the text. Typically this is &ldquo;meta&rdquo;
- information that the user should be aware of.</para>
-
- <para>Depending on the nature of the information, one of
- <sgmltag>tip</sgmltag>, <sgmltag>note</sgmltag>,
- <sgmltag>warning</sgmltag>, <sgmltag>caution</sgmltag>, and
- <sgmltag>important</sgmltag> should be used. Alternatively, if the
- information is related to the main text but is not one of the above,
- use <sgmltag>sidebar</sgmltag>.</para>
-
- <para>The circumstances in which to choose one of these elements over
- another is unclear. The DocBook documentation suggests;</para>
-
- <itemizedlist>
- <listitem>
- <para>A Note is for information that should be heeded by all
- readers.</para>
- </listitem>
-
- <listitem>
- <para>An Important element is a variation on Note.</para>
- </listitem>
-
- <listitem>
- <para>A Caution is for information regarding possible data loss
- or software damage.</para>
- </listitem>
-
- <listitem>
- <para>A Warning is for information regarding possible hardware
- damage or injury to life or limb.</para>
- </listitem>
- </itemizedlist>
-
- <example>
- <title><sgmltag>warning</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<warning>
- <para>Installing FreeBSD may make you want to delete Windows from your
- harddisk.</para>
-</warning>]]></programlisting>
- </example>
-
- <!-- Need to do this outside of the example -->
- <warning>
- <para>Installing FreeBSD may make you want to delete Windows from
- your harddisk.</para>
- </warning>
- </sect3>
-
- <sect3>
- <title>Lists and procedures</title>
-
- <para>You will often need to list pieces of information to the user,
- or present them with a number of steps that must be carried out in
- order to accomplish a particular goal.</para>
-
- <para>In order to do this, use <sgmltag>itemizedlist</sgmltag>,
- <sgmltag>orderedlist</sgmltag>, or
- <sgmltag>procedure</sgmltag><footnote><para>There are other types of
- list element in DocBook, but we're not concerned with those at
- the moment.</para>
- </footnote>
- </para>
-
- <para><sgmltag>itemizedlist</sgmltag> and
- <sgmltag>orderedlist</sgmltag> are similar to their counterparts in
- HTML, <sgmltag>ul</sgmltag> and <sgmltag>ol</sgmltag>. Each one
- consists of one or more <sgmltag>listitem</sgmltag> elements, and
- each <sgmltag>listitem</sgmltag> contains one or more block
- elements. The <sgmltag>listitem</sgmltag> elements are analagous to
- HTML's <sgmltag>li</sgmltag> tags. However, unlike HTML, they are
- required.</para>
-
- <para><sgmltag>procedure</sgmltag> is slightly different. It consists
- of <sgmltag>step</sgmltag>s, which may in turn consists of more
- <sgmltag>step</sgmltag>s or <sgmltag>substep</sgmltag>s. Each
- <sgmltag>step</sgmltag> contains block elements.</para>
-
- <example>
- <title><sgmltag>itemizedlist</sgmltag>,
- <sgmltag>orderedlist</sgmltag>, and
- <sgmltag>procedure</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<itemizedlist>
- <listitem>
- <para>This is the first itemized item.</para>
- </listitem>
-
- <listitem>
- <para>This is the second itemized item.</para>
- </listitem>
-</itemizedlist>
-
-<orderedlist>
- <listitem>
- <para>This is the first ordered item.</para>
- </listitem>
-
- <listitem>
- <para>This is the second ordered item.</para>
- </listitem>
-</orderedlist>
-
-<procedure>
- <step>
- <para>Do this.</para>
- </step>
-
- <step>
- <para>Then do this.</para>
- </step>
-
- <step>
- <para>And now do this.</para>
- </step>
-</procedure>]]></programlisting>
-
- <para>Appearance:</para>
-
- <itemizedlist>
- <listitem>
- <para>This is the first itemized item.</para>
- </listitem>
-
- <listitem>
- <para>This is the second itemized item.</para>
- </listitem>
- </itemizedlist>
-
- <orderedlist>
- <listitem>
- <para>This is the first ordered item.</para>
- </listitem>
-
- <listitem>
- <para>This is the second ordered item.</para>
- </listitem>
- </orderedlist>
- </example>
-
- <!-- Can't have <procedure> inside <example>, so this is a cheat -->
-
- <procedure>
- <step>
- <para>Do this.</para>
- </step>
-
- <step>
- <para>Then do this.</para>
- </step>
-
- <step>
- <para>And now do this.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>Showing file samples</title>
-
- <para>If you want to show a fragment of a file (or perhaps a complete
- file) to the user, wrap it in the <sgmltag>programlisting</sgmltag>
- element.</para>
-
- <para>White space and line breaks within
- <sgmltag>programlisting</sgmltag> <emphasis>are</emphasis>
- significant. In particular, this means that the opening tag should
- appear on the same line as the first line of the output, and the
- closing tag should appear on the same line as the last line of the
- output, otherwise spurious blank lines may be included.</para>
-
- <example>
- <title><sgmltag>programlisting</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA[<para>When you have finished, your program should look like
- this;</para>
-
-<programlisting>#include &lt;stdio.h&gt;
-
-int
-main(void)
-{
- printf("hello, world\n");
-}</programlisting>]]></programlisting>
-
- <para>Notice how the angle brackets in the
- <literal>#include</literal> line need to be referenced by their
- entities instead of being included literally.</para>
-
- <para>Appearance:</para>
-
- <para>When you have finished, your program should look like
- this;</para>
-
- <programlisting>#include &lt;stdio.h&gt;
-
-int
-main(void)
-{
- printf("hello, world\n");
-}</programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Callouts</title>
-
- <para>A callout is a mechanism for referring back to an earlier piece
- of text or specific position within an earlier example without
- linking to it within the text.</para>
-
- <para>To do this, mark areas of interest in your example
- (<sgmltag>programlisting</sgmltag>,
- <sgmltag>literallayout</sgmltag>, or whatever) with the
- <sgmltag>co</sgmltag> element. Each element must have a unique
- <literal>id</literal> assigned to it. After the example include a
- <sgmltag>calloutlist</sgmltag> that refers back to the example and
- provides additional commentary.</para>
-
- <example>
- <title><sgmltag>co</sgmltag> and
- <sgmltag>calloutlist</sgmltag></title>
-
- <programlisting><![ CDATA[<para>When you have finished, your program should look like
- this;</para>
-
-<programlisting>#include &lt;stdio.h&gt; <co id="co-ex-include">
-
-int <co id="co-ex-return">
-main(void)
-{
- printf("hello, world\n"); <co id="co-ex-printf">
-}</programlisting>
-
-<calloutlist>
- <callout arearefs="co-ex-include">
- <para>Includes the standard IO header file.</para>
- </callout>
-
- <callout arearefs="co-ex-return">
- <para>Specifies that <function>main()</function> returns an
- int.</para>
- </callout>
-
- <callout arearefs="co-ex-printf">
- <para>The <function>printf()</function> call that writes
- <literal>hello, world</literal> to standard output.</para>
- </callout>
-</calloutlist>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>When you have finished, your program should look like
- this;</para>
-
- <programlisting>#include &lt;stdio.h&gt; <co id="co-ex-include">
-
-int <co id="co-ex-return">
-main(void)
-{
- printf("hello, world\n"); <co id="co-ex-printf">
-}</programlisting>
-
- <calloutlist>
- <callout arearefs="co-ex-include">
- <para>Includes the standard IO header file.</para>
- </callout>
-
- <callout arearefs="co-ex-return">
- <para>Specifies that <function>main()</function> returns an
- int.</para>
- </callout>
-
- <callout arearefs="co-ex-printf">
- <para>The <function>printf()</function> call that writes
- <literal>hello, world</literal> to standard output.</para>
- </callout>
- </calloutlist>
- </example>
- </sect3>
-
- <sect3>
- <title>Tables</title>
-
- <para>Unlike HTML, you do not need to use tables for layout purposes,
- as the stylesheet handles those issues for you. Instead, just use
- tables for marking up tabular data.</para>
-
- <para>In general terms (and see the DocBook documentation for more
- detail) a table (which can be either formal or informal) consists of
- a <sgmltag>table</sgmltag> element. This contains at least one
- <sgmltag>tgroup</sgmltag> element, which specifies (as an attribute)
- the number of columns in this table group. Within the tablegroup
- you can then have one <sgmltag>thead</sgmltag> element, which
- contains elements for the table headings (column headings), and one
- <sgmltag>tbody</sgmltag> which contains the body of the
- table.</para>
-
- <para>Both <sgmltag>tgroup</sgmltag> and <sgmltag>thead</sgmltag>
- contain <sgmltag>row</sgmltag> elements, which in turn contain
- <sgmltag>entry</sgmltag> elements. Each <sgmltag>entry</sgmltag>
- element specifies one cell in the table.</para>
-
- <example>
- <title><sgmltag>informaltable</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>This is column head 1</entry>
- <entry>This is column head 2</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Row 1, column 1</entry>
- <entry>Row 1, column 2</entry>
- </row>
-
- <row>
- <entry>Row 2, column 1</entry>
- <entry>Row 2, column 2</entry>
- </row>
- </tbody>
- </tgroup>
-</informaltable>]]></programlisting>
-
- <para>Appearance:</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>This is column head 1</entry>
- <entry>This is column head 2</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Row 1, column 1</entry>
- <entry>Row 1, column 2</entry>
- </row>
-
- <row>
- <entry>Row 2, column 1</entry>
- <entry>Row 2, column 2</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </example>
-
- <para>If you don't want a border around the table the
- <literal>frame</literal> attribute can be added to the
- <sgmltag>informaltable</sgmltag> element with a value of
- <literal>none</literal> (i.e., <literal>&lt;informaltable
- frame="none"&gt;</literal>).</para>
-
- <example>
- <title>Tables where <literal>frame="none"</literal></title>
-
- <para>Appearance:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>This is column head 1</entry>
- <entry>This is column head 2</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Row 1, column 1</entry>
- <entry>Row 1, column 2</entry>
- </row>
-
- <row>
- <entry>Row 2, column 1</entry>
- <entry>Row 2, column 2</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </example>
- </sect3>
-
- <sect3>
- <title>Examples for the user to follow</title>
-
- <para>A lot of the time you need to show examples for the user to
- follow. Typically, these will consist of dialogs with the computer;
- the user types in a command, the user gets a response back, they
- type in another command, and so on.</para>
-
- <para>A number of distinct elements and entities come in to play
- here.</para>
-
- <variablelist>
- <varlistentry>
- <term><sgmltag>screen</sgmltag></term>
-
- <listitem>
- <para>Everything the user sees in this example will be on the
- computer screen, so the next element is
- <sgmltag>screen</sgmltag>.</para>
-
- <para>Within <sgmltag>screen</sgmltag>, white space is
- significant.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><sgmltag>prompt</sgmltag>,
- <literal>&amp;prompt.root;</literal> and
- <literal>&amp;prompt.user;</literal></term>
-
- <listitem>
- <para>Some of the things the user will be seeing on the screen
- are prompts from the computer (either from the OS, command
- shell, or application. These should be marked up using
- <sgmltag>prompt</sgmltag>.</para>
-
- <para>As a special case, the two shell prompts for the normal
- user and the root user have been provided as entities. Every
- time you want to indicate the user is at a shell prompt, use
- one of <literal>&amp;prompt.root;</literal> and
- <literal>&amp;prompt.user;</literal> as necessary. They do
- not need to be inside <sgmltag>prompt</sgmltag>.</para>
-
- <note>
- <para><literal>&amp;prompt.root;</literal> and
- <literal>&amp;prompt.user;</literal> are FreeBSD
- extensions to DocBook, and are not part of the original
- DTD.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><sgmltag>userinput</sgmltag></term>
-
- <listitem>
- <para>When displaying text that the user should type in, wrap it
- in <sgmltag>userinput</sgmltag> tags. It will probably be
- displayed differently to the user.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <example>
- <title><sgmltag>screen</sgmltag>, <sgmltag>prompt</sgmltag>, and
- <sgmltag>userinput</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<screen>&prompt.user; <userinput>ls -1</userinput>
-foo1
-foo2
-foo3
-&prompt.user; <userinput>ls -1 | grep foo2</userinput>
-foo2
-&prompt.user; <userinput>su</userinput>
-<prompt>Password: </prompt>
-&prompt.root; <userinput>cat foo2</userinput>
-This is the file called 'foo2'</screen>]]></programlisting>
-
- <para>Appearance:</para>
-
- <screen>&prompt.user; <userinput>ls -1</userinput>
-foo1
-foo2
-foo3
-&prompt.user; <userinput>ls -1 | grep foo2</userinput>
-foo2
-&prompt.user; <userinput>su</userinput>
-<prompt>Password: </prompt>
-&prompt.root; <userinput>cat foo2</userinput>
-This is the file called 'foo2'</screen>
- </example>
-
- <note>
- <para>Even though we are displaying the contents of the file
- <filename>foo2</filename>, it is <emphasis>not</emphasis> marked
- up as <sgmltag>programlisting</sgmltag>. Reserve
- <sgmltag>programlisting</sgmltag> for showing fragments of files
- outside the context of user actions.</para>
- </note>
- </sect3>
- </sect2>
-
- <sect2>
- <title>In-line elements</title>
-
- <sect3>
- <title>Emphasising information</title>
-
- <para>When you want to emphasise a particular word or phrase, use
- <sgmltag>emphasis</sgmltag>. This may be presented as italic, or
- bold, or might be spoken differently with a text-to-speech
- system.</para>
-
- <para>There is no way to change the presentation of the emphasis
- within your document, no equivalent of HTML's <sgmltag>b</sgmltag>
- and <sgmltag>i</sgmltag>. If the information you are presenting is
- important then consider presenting it in
- <sgmltag>important</sgmltag> rather than
- <sgmltag>emphasis</sgmltag>.</para>
-
- <example>
- <title><sgmltag>emphasis</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>FreeBSD is without doubt <emphasis>the</emphasis>
- premiere Unix like operating system for the Intel architecture.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>FreeBSD is without doubt <emphasis>the</emphasis> premiere Unix
- like operating system for the Intel architecture.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Applications, commands, options, and cites</title>
-
- <para>You will frequently want to refer to both applications and
- commands when writing for the Handbook. The distinction between
- them is simple: an application is the name for a suite (or possibly
- just 1) of programs that fulfil a particular task. A command is the
- name of a program that the user can run.</para>
-
- <para>In addition, you will occasionally need to list one or more of
- the options that a command might take.</para>
-
- <para>Finally, you will often want to list a command with its manual
- section number, in the &ldquo;command(number)&rdquo; format so
- common in Unix manuals.</para>
-
- <para>Mark up application names with
- <sgmltag>application</sgmltag>.</para>
-
- <para>When you want to list a command with its manual section number
- (which should be most of the time) the DocBook element is
- <sgmltag>citerefentry</sgmltag>. This will contain a further two
- elements, <sgmltag>refentrytitle</sgmltag> and
- <sgmltag>manvolnum</sgmltag>. The content of
- <sgmltag>refentrytitle</sgmltag> is the name of the command, and the
- content of <sgmltag>manvolnum</sgmltag> is the manual page
- section.</para>
-
- <para>This can be cumbersome to write, and so a series of <link
- linkend="sgml-primer-general-entities">general entities</link>
- have been created to make this easier. Each entity takes the form
- <literal>&amp;man.<replaceable>manual-page</replaceable>.<replaceable>manual-section</replaceable>;</literal>.</para>
-
- <para>The file that contains these entities is in
- <filename>doc/share/sgml/man-refs.ent</filename>, and can be
- referred to using this FPI:</para>
-
- <programlisting>PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"</programlisting>
-
- <para>Therefore, the introduction to your documentation will probably
- look like this:</para>
-
- <programlisting>&lt;!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-
-&lt;!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"&gt;
-%man;
-
-&hellip;
-
-]&gt;</programlisting>
-
- <para>Use <sgmltag>command</sgmltag> when you want to include a
- command name &ldquo;in-line&rdquo; but present it as something the
- user should type in.</para>
-
- <para>Use <sgmltag>option</sgmltag> to mark up a command's
- options.</para>
-
- <para>This can be confusing, and sometimes the choice is not always
- clear. Hopefully this example makes it clearer.</para>
-
- <example>
- <title>Applications, commands, and options.</title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para><application>Sendmail</application> is the most
- widely used Unix mail application.</para>
-
-<para><application>Sendmail</application> includes the
- <citerefentry>
- <refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry>, &man.mailq.8;, and &man.newaliases.8;
- programs.</para>
-
-<para>One of the command line parameters to <citerefentry>
- <refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry>, <option>-bp</option>, will display the current
- status of messages in the mail queue. Check this on the command
- line by running <command>sendmail -bp</command>.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para><application>Sendmail</application> is the most widely used
- Unix mail application.</para>
-
- <para><application>Sendmail</application> includes the
- <citerefentry>
- <refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry>, <citerefentry>
- <refentrytitle>mailq</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry>, and <citerefentry>
- <refentrytitle>newaliases</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> programs.</para>
-
- <para>One of the command line parameters to <citerefentry>
- <refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry>, <option>-bp</option>, will display the current
- status of messages in the mail queue. Check this on the command
- line by running <command>sendmail -bp</command>.</para>
- </example>
-
- <note>
- <para>Notice how the
- <literal>&amp;man.<replaceable>command</replaceable>.<replaceable>section</replaceable>;</literal> notation is easier to follow.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Files, directories, extensions</title>
-
- <para>Whenever you wish to refer to the name of a file, a directory,
- or a file extension, use <sgmltag>filename</sgmltag>.</para>
-
- <example>
- <title><sgmltag>filename</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>The SGML source for the Handbook in English can be
- found in <filename>/usr/doc/en/handbook/</filename>. The first
- file is called <filename>handbook.sgml</filename> in that
- directory. You should also see a <filename>Makefile</filename>
- and a number of files with a <filename>.ent</filename>
- extension.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>The SGML source for the Handbook in English can be found in
- <filename>/usr/doc/en/handbook/</filename>. The first file is
- called <filename>handbook.sgml</filename> in that directory. You
- should also see a <filename>Makefile</filename> and a number of
- files with a <filename>.ent</filename> extension.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Devices</title>
-
- <note>
- <title>FreeBSD extension</title>
-
- <para>These elements are part of the FreeBSD extension to DocBook,
- and do not exist in the original DocBook DTD.</para>
- </note>
-
- <para>When referring to devices you have two choices. You can either
- refer to the device as it appears in <filename>/dev</filename>, or
- you can use the name of the device as it appears in the kernel. For
- this latter course, use <sgmltag>devicename</sgmltag>.</para>
-
- <para>Sometimes you will not have a choice. Some devices, such as
- networking cards, do not have entries in <filename>/dev</filename>,
- or the entries are markedly different from those entries.</para>
-
- <example>
- <title><sgmltag>devicename</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para><devicename>sio</devicename> is used for serial
- communication in FreeBSD. <devicename>sio</devicename> manifests
- through a number of entries in <filename>/dev</filename>, including
- <filename>/dev/ttyd0</filename> and <filename>/dev/cuaa0</filename>.</para>
-
-<para>By contrast, the networking devices, such as
- <devicename>ed0</devicename> do not appear in <filename>/dev</filename>.
-
-<para>In MS-DOS, the first floppy drive is referred to as
- <devicename>a:</devicename>. In FreeBSD it is
- <filename>/dev/fd0</filename>.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para><devicename>sio</devicename> is used for serial communication
- in FreeBSD. <devicename>sio</devicename> manifests through a
- number of entries in <filename>/dev</filename>, including
- <filename>/dev/ttyd0</filename> and
- <filename>/dev/cuaa0</filename>.</para>
-
- <para>By contrast, the networking devices, such as
- <devicename>ed0</devicename> do not appear in
- <filename>/dev</filename>.</para>
-
- <para>In MS-DOS, the first floppy drive is referred to as
- <devicename>a:</devicename>. In FreeBSD it is
- <filename>/dev/fd0</filename>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Hosts, domains, IP addresses, and so forth</title>
-
- <note>
- <title>FreeBSD extension</title>
-
- <para>These elements are part of the FreeBSD extension to DocBook,
- and do not exist in the original DocBook DTD.</para>
- </note>
-
- <para>You can markup identification information for networked
- computers (hosts) in several ways, depending on the nature of the
- information. All of them use <sgmltag>hostid</sgmltag> as the
- element, with the <literal>role</literal> attribute selecting the
- type of the marked up information.</para>
-
- <variablelist>
- <varlistentry>
- <term>No role attribute, or
- <literal>role="hostname"</literal></term>
-
- <listitem>
- <para>With no role attribute (i.e.,
- <sgmltag>hostid</sgmltag>...<sgmltag>hostid</sgmltag> the
- marked up information is the simple hostname, such as
- <literal>freefall</literal> or <literal>wcarchive</literal>.
- You can explicitly specify this with
- <literal>role="hostname"</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="domainname"</literal></term>
-
- <listitem>
- <para>The text is a domain name, such as
- <literal>FreeBSD.org</literal> or
- <literal>ngo.org.uk</literal>. There is no hostname
- component.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="fqdn"</literal></term>
-
- <listitem>
- <para>The text is a Fully Qualified Domain Name, with both
- hostname and domain name parts.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="ipaddr"</literal></term>
-
- <listitem>
- <para>The text is an IP address, probably expressed as a dotted
- quad.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="ip6addr"</literal></term>
-
- <listitem>
- <para>The text is an IPv6 address.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="netmask"</literal></term>
-
- <listitem>
- <para>The text is a network mask, which might be expressed as a
- dotted quad, a hexadecimal string, or as a
- <literal>/</literal> followed by a number.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="mac"</literal></term>
-
- <listitem>
- <para>The text is an ethernet MAC address, expressed as a series
- of 2 digit hexadecimal numbers seperated by colons.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <example>
- <title><sgmltag>hostid</sgmltag> and roles</title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>The local machine can always be referred to by the
- name <hostid>localhost</hostid>, which will have the IP address
- <hostid role="ipaddr">127.0.0.1</hostid>.</para>
-
-<para>The <hostid role="domainname">FreeBSD.org</hostid> domain
- contains a number of different hosts, including
- <hostid role="fqdn">freefall.FreeBSD.org</hostid> and
- <hostid role="fqdn">bento.FreeBSD.org</hostid>.</para>
-
-<para>When adding an IP alias to an interface (using
- <command>ifconfig</command>) <emphasis>always</emphasis> use a
- netmask of <hostid role="netmask">255.255.255.255</hostid>
- (which can also be expressed as <hostid
- role="netmask">0xffffffff</hostid>.</para>
-
-<para>The MAC address uniquely identifies every network card in
- in existence. A typical MAC address looks like <hostid
- role="mac">08:00:20:87:ef:d0</hostid>.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>The local machine can always be referred to by the name
- <hostid>localhost</hostid>, which will have the IP address <hostid
- role="ipaddr">127.0.0.1</hostid>.</para>
-
- <para>The <hostid role="domainname">FreeBSD.org</hostid> domain
- contains a number of different hosts, including <hostid
- role="fqdn">freefall.FreeBSD.org</hostid> and <hostid
- role="fqdn">bento.FreeBSD.org</hostid>.</para>
-
- <para>When adding an IP alias to an interface (using
- <command>ifconfig</command>) <emphasis>always</emphasis> use a
- netmask of <hostid role="netmask">255.255.255.255</hostid> (which
- can also be expressed as <hostid
- role="netmask">0xffffffff</hostid>.</para>
-
- <para>The MAC address uniquely identifies every network card in
- existence. A typical MAC address looks like <hostid
- role="mac">08:00:20:87:ef:d0</hostid>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Usernames</title>
-
- <note>
- <title>FreeBSD extension</title>
-
- <para>These elements are part of the FreeBSD extension to DocBook,
- and do not exist in the original DocBook DTD.</para>
- </note>
-
- <para>When you need to refer to a specific username, such as
- <literal>root</literal> or <literal>bin</literal>, use
- <sgmltag>username</sgmltag>.</para>
-
- <example>
- <title><sgmltag>username</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>To carry out most system administration functions you
- will need to be <username>root</username>.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>To carry out most system administration functions you will
- need to be <username>root</username>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Describing <filename>Makefile</filename>s</title>
-
- <note>
- <title>FreeBSD extension</title>
-
- <para>These elements are part of the FreeBSD extension to DocBook,
- and do not exist in the original DocBook DTD.</para>
- </note>
-
- <para>Two elements exist to describe parts of
- <filename>Makefile</filename>s, <sgmltag>maketarget</sgmltag> and
- <sgmltag>makevar</sgmltag>.</para>
-
- <para><sgmltag>maketarget</sgmltag> identifies a build target exported
- by a <filename>Makefile</filename> that can be given as a parameter
- to <command>make</command>. <sgmltag>makevar</sgmltag> identifies a
- variable that can be set (in the environment, on the
- <command>make</command> command line, or within the
- <filename>Makefile</filename>) to influence the process.</para>
-
- <example>
- <title><sgmltag>maketarget</sgmltag> and
- <sgmltag>makevar</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>Two common targets in a <filename>Makefile</filename>
- are <maketarget>all</maketarget> and <maketarget>clean</maketarget>.</para>
-
-<para>Typically, invoking <maketarget>all</maketarget> will rebuild the
- application, and invoking <maketarget>clean</maketarget> will remove
- the temporary files (<filename>.o</filename> for example) created by
- the build process.</para>
-
-<para><maketarget>clean</maketarget> may be controlled by a number of
- variables, including <makevar>CLOBBER</makevar> and
- <makevar>RECURSE</makevar>.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>Two common targets in a <filename>Makefile</filename> are
- <maketarget>all</maketarget> and
- <maketarget>clean</maketarget>.</para>
-
- <para>Typically, invoking <maketarget>all</maketarget> will rebuild
- the application, and invoking <maketarget>clean</maketarget> will
- remove the temporary files (<filename>.o</filename> for example)
- created by the build process.</para>
-
- <para><maketarget>clean</maketarget> may be controlled by a number
- of variables, including <makevar>CLOBBER</makevar> and
- <makevar>RECURSE</makevar>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Literal text</title>
-
- <para>You will often need to include &ldquo;literal&rdquo; text in the
- Handbook. This is text that is excerpted from another file, or
- which should be copied from the Handbook into another file
- verbatim.</para>
-
- <para>Some of the time, <sgmltag>programlisting</sgmltag> will be
- sufficient to denote this text. <sgmltag>programlisting</sgmltag>
- is not always appropriate, particularly when you want to include a
- portion of a file &ldquo;in-line&rdquo; with the rest of the
- paragraph.</para>
-
- <para>On these occasions, use <sgmltag>literal</sgmltag>.</para>
-
- <example>
- <title><sgmltag>literal</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>The <literal>maxusers 10</literal> line in the kernel
- configuration file determines the size of many system tables, and is
- a rough guide to how many simultaneous logins the system will
- support.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>The <literal>maxusers 10</literal> line in the kernel
- configuration file determines the size of many system tables, and
- is a rough guide to how many simultaneous logins the system will
- support.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Showing items that the user <emphasis>must</emphasis> fill
- in</title>
-
- <para>There will often be times when you want to show the user what to
- do, or refer to a file, or command line, or similar, where the user
- can not simply copy the examples that you provide, but must instead
- include some information themselves.</para>
-
- <para><sgmltag>replaceable</sgmltag> is designed for this eventuality.
- Use it <emphasis>inside</emphasis> other elements to indicate parts
- of that element's content that the user must replace.</para>
-
- <example>
- <title><sgmltag>replaceable</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<informalexample>
- <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen>
-</informalexample>]]></programlisting>
-
- <para>Appearance:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen>
- </informalexample>
-
- <para><sgmltag>replaceable</sgmltag> can be used in many different
- elements, including <sgmltag>literal</sgmltag>. This example also
- shows that <sgmltag>replaceable</sgmltag> should only be wrapped
- around the content that the user <emphasis>is</emphasis> meant to
- provide. The other content should be left alone.</para>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>The <literal>maxusers <replaceable>n</replaceable></literal>
- line in the kernel configuration file determines the size of many system
- tables, and is a rough guide to how many simultaneous logins the system will
- support.</para>
-
-<para>For a desktop workstation, <literal>32</literal> is a good value
- for <replaceable>n</replaceable>.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>The <literal>maxusers <replaceable>n</replaceable></literal>
- line in the kernel configuration file determines the size of many
- system tables, and is a rough guide to how many simultaneous
- logins the system will support.</para>
-
- <para>For a desktop workstation, <literal>32</literal> is a good
- value for <replaceable>n</replaceable>.</para>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Images</title>
-
- <important>
- <para>Image support in the documentation is currently extremely
- experimental. I think the mechanisms described here are unlikely to
- change, but that's not guaranteed.</para>
-
- <para>You will also need to install the
- <filename>graphics/ImageMagick</filename> port, which is used to
- convert between the different image formats. This is a big port,
- and most of it is not required. However, while we're working on the
- <filename>Makefile</filename>s and other infrastructure it makes
- things easier. This port is <emphasis>not</emphasis> in the
- <filename>textproc/docproj</filename> meta port, you must install it
- by hand.</para>
-
- <para>The best example of what follows in practice is the
- <filename>en_US.ISO_8859-1/articles/vm-design/</filename> document.
- If you're unsure of the description that follows, take a look at the
- files in that directory to see how everything hangs togther.
- Experiment with creating different formatted versions of the
- document to see how the image markup appears in the formatted
- output.</para>
- </important>
-
- <sect3>
- <title>Image formats</title>
-
- <para>We currently support two formats for images. The format you
- should use will depend on the nature of your image.</para>
-
- <para>For images that are primarily vector based, such as network
- diagrams, timelines, and similar, use Encapsulated Postscript, and
- make sure that your images have the <filename>.eps</filename>
- extension.</para>
-
- <para>For bitmaps, such as screen captures, use the Portable Network
- Graphic format, and make sure that your images have the
- <filename>.png</filename> extension.</para>
-
- <para>These are the <emphasis>only</emphasis> formats in which images
- should be committed to the CVS repository.</para>
-
- <para>Use the right format for the right image. It is to be expected
- that your documentation will have a mix of EPS and PNG images. The
- <filename>Makefile</filename>s ensure that the correct format image
- is chosen depending on the output format that you use for your
- documentation. <emphasis>Do not commit the same image to the
- repository in two different formats</emphasis>.</para>
-
- <important>
- <para>It is anticipated that the Documentation Project will switch to
- using the Scalable Vector Graphic (SVG) format for vector images.
- However, the current state of SVG capable editing tools makes this
- impractical.</para>
- </important>
- </sect3>
-
- <sect3>
- <title>Markup</title>
-
- <para>The markup for an image is relatively simple. First, markup a
- <sgmltag>mediaobject</sgmltag>. The <sgmltag>mediaobject</sgmltag>
- can contain other, more specific objects. We are concerned with
- two, the <sgmltag>imageobject</sgmltag> and the
- <sgmltag>textobject</sgmltag>.</para>
-
- <para>You should include one <sgmltag>imageobject</sgmltag>, and two
- <sgmltag>textobject</sgmltag> elements. The
- <sgmltag>imageobject</sgmltag> will point to the name of the image
- file that will be used (without the extension). The
- <sgmltag>textobject</sgmltag> elements contain information that will
- be presented to the user as well as, or instead of, the
- image.</para>
-
- <para>There are two circumstances where this can happen.</para>
-
- <itemizedlist>
- <listitem>
- <para>When the reader is viewing the documentation in HTML. In
- this case, each image will need to have associated alternate
- text to show the user, typically whilst the image is loading, or
- if they hover the mouse pointer over the image.</para>
- </listitem>
-
- <listitem>
- <para>When the reader is viewing the documentation in plain text.
- In this case, each image should have an ASCII art equivalent to
- show the user.</para>
- </listitem>
- </itemizedlist>
-
- <para>An example will probably make things easier to understand.
- Suppose you have an image, called <filename>fig1</filename>, that
- you want to include in the document. This image is of a rectangle
- with an A inside it. The markup for this would be as
- follows.</para>
-
- <programlisting>&lt;mediaobject>
- &lt;imageobject>
- &lt;imagedata fileref="fig1"> <co id="co-image-ext">
- &lt;/imageobject>
-
- &lt;textobject>
- &lt;literallayout class="monospaced">+---------------+ <co id="co-image-literal">
-| A |
-+---------------+&lt;/literallayout>
- &lt;/textobject>
-
- &lt;textobject>
- &lt;phrase>A picture&lt;/phrase> <co id="co-image-phrase">
- &lt;/textobject>
-&lt;/mediaobject></programlisting>
-
- <calloutlist>
- <callout arearefs="co-image-ext">
- <para>Include an <sgmltag>imagedata</sgmltag> element inside the
- <sgmltag>imageobject</sgmltag> element. The
- <literal>fileref</literal> attribute should contain the filename
- of the image to include, without the extension. The stylesheets
- will work out which extension should be added to the filename
- automatically.</para>
- </callout>
-
- <callout arearefs="co-image-literal">
- <para>The first <sgmltag>textobject</sgmltag> should contain a
- <sgmltag>literallayout</sgmltag> element, where the
- <literal>class</literal> attribute is set to
- <literal>monospaced</literal>. This is your opportunity to
- demonstrate your ASCII art skills. This content will be used if
- the document is converted to plain text.</para>
-
- <para>Notice how the first and last lines of the content of the
- <sgmltag>literallayout</sgmltag> element butt up next to the
- element's tags. This ensures no extraneous white space is
- included.</para>
- </callout>
-
- <callout arearefs="co-image-phrase">
- <para>The second <sgmltag>textobject</sgmltag> should contain a
- single <sgmltag>phrase</sgmltag> element. The contents of this
- will become the <literal>alt</literal> attribute for the image
- when this document is converted to HTML.</para>
- </callout>
- </calloutlist>
- </sect3>
-
- <sect3>
- <title><filename>Makefile</filename> entries</title>
-
- <para>Your images must be listed in the
- <filename>Makefile</filename> in the <makevar>IMAGES</makevar>
- variable. This variable should contain the name of all your
- <emphasis>source</emphasis> images. For example, if you have
- created three figures, <filename>fig1.eps</filename>,
- <filename>fig2.png</filename>, <filename>fig3.png</filename>, then
- your <filename>Makefile</filename> should have lines like this in
- it.</para>
-
- <programlisting>&hellip;
-IMAGES= fig1.eps fig2.png fig3.png
-&hellip;</programlisting>
-
- <para>or</para>
-
- <programlisting>&hellip;
-IMAGES= fig1.eps
-IMAGES+= fig2.png
-IMAGES+= fig3.png
-&hellip;</programlisting>
-
- <para>Again, the <filename>Makefile</filename> will work out the
- complete list of images it needs to build your source document, you
- only need to list the image files <emphasis>you</emphasis>
- provided.</para>
- </sect3>
-
- <sect3>
- <title>Images and chapters in subdirectories</title>
-
- <para>You must be careful when you separate your documentation in to
- smaller files (see <xref linkend="sgml-primer-include-using-gen-entities">) in
- different directories.</para>
-
- <para>Suppose you have a book with three chapters, and the chapters
- are stored in their own directories, called
- <filename>chapter1/chapter.sgml</filename>,
- <filename>chapter2/chapter.sgml</filename>, and
- <filename>chapter3/chapter.sgml</filename>. If each chapter has
- images associated with it, I suggest you place those images in each
- chapter's subdirectory (<filename>chapter1/</filename>,
- <filename>chapter2/</filename>, and
- <filename>chapter3/</filename>).</para>
-
- <para>However, if you do this you must include the directory names in
- the <makevar>IMAGES</makevar> variable in the
- <filename>Makefile</filename>, <emphasis>and</emphasis> you must
- include the directory name in the <sgmltag>imagedata</sgmltag>
- element in your document.</para>
-
- <para>For example, if you have <filename>chapter1/fig1.png</filename>,
- then <filename>chapter1/chapter.sgml</filename> should
- contain</para>
-
- <programlisting>&lt;mediaobject>
- &lt;imageobject>
- &lt;imagedata fileref="chapter1/fig1"> <co id="co-image-dir">
- &lt;/imageobject>
-
- &hellip;
-
-&lt;/mediaobject></programlisting>
-
- <calloutlist>
- <callout arearefs="co-image-dir">
- <para>The directory name must be included in the
- <literal>fileref</literal> attribute</para>
- </callout>
- </calloutlist>
-
- <para>The <filename>Makefile</filename> must contain</para>
-
- <programlisting>&hellip;
-IMAGES= chapter1/fig1.png
-&hellip;</programlisting>
-
- <para>Then everything should just work.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Links</title>
-
- <note>
- <para>Links are also in-line elements.</para>
- </note>
-
- <sect3>
- <title>Linking to other parts of the same document</title>
-
- <para>Linking within the same document requires you to to specify
- where you are linking from (i.e., the text the user will click, or
- otherwise indicate, as the source of the link) and where you are
- linking to (the link's destination).</para>
-
- <para>Each element within DocBook has an attribute called
- <literal>id</literal>. You can place text in this attribute to
- uniquely name the element it is attached to.</para>
-
- <para>This value will be used when you specify the link
- source.</para>
-
- <para>Normally, you will only be linking to chapters or sections, so
- you would add the <literal>id</literal> attribute to these
- elements.</para>
-
- <example>
- <title><literal>id on chapters and sections</literal></title>
-
- <programlisting><![ CDATA [<chapter id="chapter1">
- <title>Introduction</title>
-
- <para>This is the introduction. It contains a subsection,
- which is identified as well.</para>
-
- <sect1 id="chapter1-sect1">
- <title>Sub-sect 1</title>
-
- <para>This is the subsection.</para>
- </sect1>
-</chapter>]]></programlisting>
- </example>
-
- <para>Obviously, you should use more descriptive values. The values
- must be unique within the document (i.e., not just the file, but the
- document the file might be included in as well). Notice how the
- <literal>id</literal> for the subsection is constructed by appending
- text to the <literal>id</literal> of the chapter. This helps to
- ensure that they are unique.</para>
-
- <para>If you want to allow the user to jump into a specific portion of
- the document (possibly in the middle of a paragraph or an example),
- use <sgmltag>anchor</sgmltag>. This element has no content, but
- takes an <literal>id</literal> attribute.</para>
-
- <example>
- <title><sgmltag>anchor</sgmltag></title>
-
- <programlisting><![ CDATA [<para>This paragraph has an embedded
- <anchor id="para1">link target in it. It won't show up in
- the document.</para>]]></programlisting>
- </example>
-
- <para>When you want to provide the user with a link they can activate
- (probably by clicking) to go to a section of the document that has
- an <literal>id</literal> attribute, you can use either
- <sgmltag>xref</sgmltag> or <sgmltag>link</sgmltag>.</para>
-
- <para>Both of these elements have a <literal>linkend</literal>
- attribute. The value of this attribute should be the value that you
- have used in a <literal>id</literal> attribute (it does not matter
- if that value has not yet occurred in your document; this will work
- for forward links as well as backward links).</para>
-
- <para>If you use <sgmltag>xref</sgmltag> then you have no control over
- the text of the link. It will be generated for you.</para>
-
- <example>
- <title>Using <sgmltag>xref</sgmltag></title>
-
- <para>Assume that this fragment appears somewhere in a document that
- includes the <literal>id</literal> example;</para>
-
- <programlisting><![ CDATA [<para>More information can be found
- in <xref linkend="chapter1">.</para>
-
-<para>More specific information can be found
- in <xref linkend="chapter1-sect1">.</para>]]></programlisting>
-
- <para>The text of the link will be generated automatically, and will
- look like (<emphasis>emphasised</emphasis> text indicates the text
- that will be the link);</para>
-
- <blockquote>
- <para>More information can be found in <emphasis>Chapter
- One</emphasis>.</para>
-
- <para>More specific information can be found in <emphasis>the
- section called Sub-sect 1</emphasis>.</para>
- </blockquote>
- </example>
-
- <para>Notice how the text from the link is derived from the section
- title or the chapter number.</para>
-
- <note>
- <para>This means that you <emphasis>can not</emphasis> use
- <sgmltag>xref</sgmltag> to link to an <literal>id</literal>
- attribute on an <sgmltag>anchor</sgmltag> element. The
- <sgmltag>anchor</sgmltag> has no content, so the
- <sgmltag>xref</sgmltag> can not generate the text for the
- link.</para>
- </note>
-
- <para>If you want to control the text of the link then use
- <sgmltag>link</sgmltag>. This element wraps content, and the
- content will be used for the link.</para>
-
- <example>
- <title>Using <sgmltag>link</sgmltag></title>
-
- <para>Assume that this fragment appears somewhere in a document that
- includes the <literal>id</literal> example.</para>
-
- <programlisting><![ CDATA [<para>More information can be found in
- <link linkend="chapter1">the first chapter</link>.</para>
-
-<para>More specific information can be found in
- <link linkend="chapter1-sect1>this</link> section.</para>]]></programlisting>
-
- <para>This will generate the following
- (<emphasis>emphasised</emphasis> text indicates the text that will
- be the link);</para>
-
- <blockquote>
- <para>More information can be found in <emphasis>the first
- chapter</emphasis>.</para>
-
- <para>More specific information can be found in
- <emphasis>this</emphasis> section.</para>
- </blockquote>
- </example>
-
- <note>
- <para>That last one is a bad example. Never use words like
- &ldquo;this&rdquo; or &ldquo;here&rdquo; as the source for the
- link. The reader will need to hunt around the surrounding context
- to see where the link is actually taking them.</para>
- </note>
-
- <note>
- <para>You <emphasis>can</emphasis> use <sgmltag>link</sgmltag> to
- include a link to an <literal>id</literal> on an
- <sgmltag>anchor</sgmltag> element, since the
- <sgmltag>link</sgmltag> content defines the text that will be used
- for the link.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Linking to documents on the WWW</title>
-
- <para>Linking to external documents is much simpler, as long as you
- know the URL of the document you want to link to. Use
- <sgmltag>ulink</sgmltag>. The <literal>url</literal> attribute is
- the URL of the page that the link points to, and the content of the
- element is the text that will be displayed for the user to
- activate.</para>
-
- <example>
- <title><sgmltag>ulink</sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting><![ CDATA [<para>Of course, you could stop reading this document and
- go to the <ulink url="http://www.FreeBSD.org/">FreeBSD
- home page</ulink> instead.</para>]]></programlisting>
-
- <para>Appearance:</para>
-
- <para>Of course, you could stop reading this document and go to the
- <ulink url="http://www.FreeBSD.org/">FreeBSD home page</ulink>
- instead.</para>
- </example>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>* LinuxDoc</title>
-
- <para>LinuxDoc is an adaptation of the QWERTZ DTD, first adopted by the
- <ulink url="http://www.linuxdoc.org/">Linux Documentation
- Project</ulink>, and subsequently adopted by the FreeBSD Documentation
- Project.</para>
-
- <para>The LinuxDoc DTD contains primarily appearance related markup rather
- than content related markup (i.e., it describes what something looks
- like rather than what it is).</para>
-
- <para>Both the FreeBSD Documentation Project and the Linux Documentation
- Project are migrating from the LinuxDoc DTD to the DocBook DTD.</para>
-
- <para>The LinuxDoc DTD is available from the ports collection in the
- <filename>textproc/linuxdoc</filename> category.</para>
- </sect1>
-</chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml
deleted file mode 100644
index e6378df431..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml
+++ /dev/null
@@ -1,1556 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/sgml-primer/chapter.sgml,v 1.16 2001/04/09 00:33:47 dd Exp $
--->
-
-<chapter id="sgml-primer">
- <title>SGML Primer</title>
-
- <para>The majority of FDP documentation is written in applications of
- SGML. This chapter explains exactly what that means, how to read
- and understand the source to the documentation, and the sort of SGML
- tricks you will see used in the documentation.</para>
-
- <para>Portions of this section were inspired by Mark Galassi's <ulink
- url="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html">Get Going With DocBook</ulink>.</para>
-
- <sect1>
- <title>Overview</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,
- EBCDIC, or one of a number of others) but that was about it. Text was
- text, and what you saw really was what you got. No frills, no
- formatting, no intelligence.</para>
-
- <para>Inevitably, this was not enough. Once you have text in a
- machine-usable format, you expect machines to be able to use it and
- manipulate it intelligently. You would like to indicate that certain
- phrases should be emphasised, or added to a glossary, or be hyperlinks.
- You might want filenames to be shown in a &ldquo;typewriter&rdquo; style
- font for viewing on screen, but as &ldquo;italics&rdquo; when printed,
- or any of a myriad of other options for presentation.</para>
-
- <para>It was once hoped that Artificial Intelligence (AI) would make this
- easy. Your computer would read in the document and automatically
- identify key phrases, filenames, text that the reader should type in,
- examples, and more. Unfortunately, real life has not happened quite
- like that, and our computers require some assistance before they can
- meaningfully process our text.</para>
-
- <para>More precisely, they need help identifying what is what. You or I
- can look at
-
- <blockquote>
- <para>To remove <filename>/tmp/foo</filename> use &man.rm.1;.</para>
-
- <screen>&prompt.user; <userinput>rm /tmp/foo</userinput></screen>
- </blockquote>
-
- and easily see which parts are filenames, which are commands to be typed
- in, which parts are references to manual pages, and so on. But the
- computer processing the document can not. For this we need
- markup.</para>
-
- <para>&ldquo;Markup&rdquo; is commonly used to describe &ldquo;adding
- value&rdquo; or &ldquo;increasing cost&rdquo;. The term takes on both
- these meanings when applied to text. Markup is additional text included
- in the document, distinguished from the document's content in some way,
- so that programs that process the document can read the markup and use
- it when making decisions about the document. Editors can hide the
- markup from the user, so the user is not distracted by it.</para>
-
- <para>The extra information stored in the markup <emphasis>adds
- value</emphasis> to the document. Adding the markup to the document
- must typically be done by a person&mdash;after all, if computers could
- recognise the text sufficiently well to add the markup then there would
- be no need to add it in the first place. This <emphasis>increases the
- cost</emphasis> (i.e., the effort required) to create the
- document.</para>
-
- <para>The previous example is actually represented in this document like
- this;</para>
-
- <programlisting><![ CDATA [
-<para>To remove <filename>/tmp/foo</filename> use &man.rm.1;.</para>
-
-<screen>&prompt.user; <userinput>rm /tmp/foo</userinput></screen>]]></programlisting>
-
- <para>As you can see, the markup is clearly separate from the
- content.</para>
-
- <para>Obviously, if you are going to use markup you need to define what
- your markup means, and how it should be interpreted. You will need a
- markup language that you can follow when marking up your
- documents.</para>
-
- <para>Of course, one markup language might not be enough. A markup
- language for technical documentation has very different requirements
- than a markup language that was to be used for cookery recipes. This,
- in turn, would be very different from a markup language used to describe
- poetry. What you really need is a first language that you use to write
- these other markup languages. A <emphasis>meta markup
- language</emphasis>.</para>
-
- <para>This is exactly what the Standard Generalised Markup Language (SGML)
- is. Many markup languages have been written in SGML, including the two
- most used by the FDP, HTML and DocBook.</para>
-
- <para>Each language definition is more properly called a Document Type
- Definition (DTD). The DTD specifies the name of the elements that can
- be used, what order they appear in (and whether some markup can be used
- inside other markup) and related information. A DTD is sometimes
- referred to as an <emphasis>application</emphasis> of SGML.</para>
-
- <para id="sgml-primer-validating">A DTD is a <emphasis>complete</emphasis>
- specification of all the elements that are allowed to appear, the order
- in which they should appear, which elements are mandatory, which are
- optional, and so forth. This makes it possible to write an SGML
- <emphasis>parser</emphasis> which reads in both the DTD and a document
- which claims to conform to the DTD. The parser can then confirm whether
- or not all the elements required by the DTD are in the document in the
- right order, and whether there are any errors in the markup. This is
- normally referred to as <quote>validating the document</quote>.</para>
-
- <note>
- <para>This processing simply confirms that the choice of elements, their
- ordering, and so on, conforms to that listed in the DTD. It does
- <emphasis>not</emphasis> check that you have used
- <emphasis>appropriate</emphasis> markup for the content. If you were
- to try and mark up all the filenames in your document as function
- names, the parser would not flag this as an error (assuming, of
- course, that your DTD defines elements for filenames and functions,
- and that they are allowed to appear in the same place).</para>
- </note>
-
- <para>It is likely that most of your contributions to the Documentation
- Project will consist of content marked up in either HTML or DocBook,
- rather than alterations to the DTDs. For this reason this book will
- not touch on how to write a DTD.</para>
- </sect1>
-
- <sect1 id="sgml-primer-elements">
- <title>Elements, tags, and attributes</title>
-
- <para>All the DTDs written in SGML share certain characteristics. This is
- hardly surprising, as the philosophy behind SGML will inevitably show
- through. One of the most obvious manifestations of this philisophy is
- that of <emphasis>content</emphasis> and
- <emphasis>elements</emphasis>.</para>
-
- <para>Your documentation (whether it is a single web page, or a lengthy
- book) is considered to consist of content. This content is then divided
- (and further subdivided) into elements. The purpose of adding markup is
- to name and identify the boundaries of these elements for further
- processing.</para>
-
- <para>For example, consider a typical book. At the very top level, the
- book is itself an element. This &ldquo;book&rdquo; element obviously
- contains chapters, which can be considered to be elements in their own
- right. Each chapter will contain more elements, such as paragraphs,
- quotations, and footnotes. Each paragraph might contain further
- elements, identifying content that was direct speech, or the name of a
- character in the story.</para>
-
- <para>You might like to think of this as &ldquo;chunking&rdquo; content.
- At the very top level you have one chunk, the book. Look a little
- deeper, and you have more chunks, the individual chapters. These are
- chunked further into paragraphs, footnotes, character names, and so
- on.</para>
-
- <para>Notice how you can make this differentation between different
- elements of the content without resorting to any SGML terms. It really
- is surprisingly straightforward. You could do this with a highlighter
- pen and a printout of the book, using different colours to indicate
- different chunks of content.</para>
-
- <para>Of course, we do not have an electronic highlighter pen, so we need
- some other way of indicating which element each piece of content belongs
- to. In languages written in SGML (HTML, DocBook, et al) this is done by
- means of <emphasis>tags</emphasis>.</para>
-
- <para>A tag is used to identify where a particular element starts, and
- where the element ends. <emphasis>The tag is not part of the element
- itself</emphasis>. Because each DTD was normally written to mark up
- specific types of information, each one will recognise different
- elements, and will therefore have different names for the tags.</para>
-
- <para>For an element called <replaceable>element-name</replaceable> the
- start tag will normally look like
- <literal>&lt;<replaceable>element-name</replaceable>&gt;</literal>. The
- corresponding closing tag for this element is
- <literal>&lt;/<replaceable>element-name</replaceable>&gt;</literal>.</para>
-
- <example>
- <title>Using an element (start and end tags)</title>
-
- <para>HTML has an element for indicating that the content enclosed by
- the element is a paragraph, called <literal>p</literal>. This
- element has both start and end tags.</para>
-
- <programlisting><![ CDATA [<p>This is a paragraph. It starts with the start tag for
- the 'p' element, and it will end with the end tag for the 'p'
- element.</p>
-
-<p>This is another paragraph. But this one is much shorter.</p>]]></programlisting>
- </example>
-
- <para>Not all elements require an end tag. Some elements have no content.
- For example, in HTML you can indicate that you want a horizontal line to
- appear in the document. Obviously, this line has no content, so just
- the start tag is required for this element.</para>
-
- <example>
- <title>Using an element (start tag only)</title>
-
- <para>HTML has an element for indicating a horizontal rule, called
- <literal>hr</literal>. This element does not wrap content, so only
- has a start tag.</para>
-
- <programlisting><![ CDATA [<p>This is a paragraph.</p>
-
-<hr>
-
-<p>This is another paragraph. A horizontal rule separates this
- from the previous paragraph.</p>]]></programlisting>
- </example>
-
- <para>If it is not obvious by now, elements can contain other elements.
- In the book example earlier, the book element contained all the chapter
- elements, which in turn contained all the paragraph elements, and so
- on.</para>
-
- <example>
- <title>Elements within elements; <sgmltag>em</sgmltag></title>
-
- <programlisting><![ CDATA [<p>This is a simple <em>paragraph</em> where some
- of the <em>words</em> have been <em>emphasised</em>.</p>]]></programlisting>
- </example>
-
- <para>The DTD will specify the rules detailing which elements can contain
- other elements, and exactly what they can contain.</para>
-
- <important>
- <para>People often confuse the terms tags and elements, and use the
- terms as if they were interchangeable. They are not.</para>
-
- <para>An element is a conceptual part of your document. An element has
- a defined start and end. The tags mark where the element starts and
- end.</para>
-
- <para>When this document (or anyone else knowledgable about SGML) refers
- to &ldquo;the &lt;p&gt; tag&rdquo; they mean the literal text
- consisting of the three characters <literal>&lt;</literal>,
- <literal>p</literal>, and <literal>&gt;</literal>. But the phrase
- &ldquo;the &lt;p&gt; element&rdquo; refers to the whole
- element.</para>
-
- <para>This distinction <emphasis>is</emphasis> very subtle. But keep it
- in mind.</para>
- </important>
-
- <para>Elements can have attributes. An attribute has a name and a value,
- and is used for adding extra information to the element. This might be
- information that indicates how the content should be rendered, or might
- be something that uniquely identifies that occurence of the element, or
- it might be something else.</para>
-
- <para>An element's attributes are written <emphasis>inside</emphasis> the
- start tag for that element, and take the form
- <literal><replaceable>attribute-name</replaceable>="<replaceable>attribute-value</replaceable>"</literal>.</para>
-
- <para>In sufficiently recent versions of HTML, the <sgmltag>p</sgmltag>
- element has an attribute called <literal>align</literal>, which suggests
- an alignment (justification) for the paragraph to the program displaying
- the HTML.</para>
-
- <para>The <literal>align</literal> attribute can take one of four defined
- values, <literal>left</literal>, <literal>center</literal>,
- <literal>right</literal> and <literal>justify</literal>. If the
- attribute is not specified then the default is
- <literal>left</literal>.</para>
-
- <example>
- <title>Using an element with an attribute</title>
-
- <programlisting><![ CDATA [<p align="left">The inclusion of the align attribute
- on this paragraph was superfluous, since the default is left.</p>
-
-<p align="center">This may appear in the center.</p>]]></programlisting>
- </example>
-
- <para>Some attributes will only take specific values, such as
- <literal>left</literal> or <literal>justify</literal>. Others will
- allow you to enter anything you want. If you need to include quotes
- (<literal>"</literal>) within an attribute then use single quotes around
- the attribute value.</para>
-
- <example>
- <title>Single quotes around attributes</title>
-
- <programlisting><![ CDATA [<p align='right'>I'm on the right!</p>]]></programlisting>
- </example>
-
- <para>Sometimes you do not need to use quotes around attribute values at
- all. However, the rules for doing this are subtle, and it is far
- simpler just to <emphasis>always</emphasis> quote your attribute
- values.</para>
-
- <sect2>
- <title>For you to do&hellip;</title>
-
- <para>In order to run the examples in this document you will need to
- install some software on your system and ensure that an environment
- variable is set correctly.</para>
-
- <procedure>
- <step>
- <para>Download and install <filename>textproc/docproj</filename>
- from the FreeBSD ports system. This is a
- <emphasis>meta-port</emphasis> that should download and install
- all of the programs and supporting files that are used by the
- Documentation Project.</para>
- </step>
-
- <step>
- <para>Add lines to your shell startup files to set
- <envar>SGML_CATALOG_FILES</envar>.</para>
-
- <example id="sgml-primer-envars">
- <title><filename>.profile</filename>, for &man.sh.1; and
- &man.bash.1; users</title>
-
- <programlisting>SGML_ROOT=/usr/local/share/sgml
-SGML_CATALOG_FILES=${SGML_ROOT}/jade/catalog
-SGML_CATALOG_FILES=${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES
-SGML_CATALOG_FILES=${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES
-SGML_CATALOG_FILES=${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES
-export SGML_CATALOG_FILES</programlisting>
- </example>
-
- <example>
- <title><filename>.login</filename>, for &man.csh.1; and
- &man.tcsh.1; users</title>
-
- <programlisting>setenv SGML_ROOT /usr/local/share/sgml
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/jade/catalog
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES</programlisting>
- </example>
-
- <para>Then either log out, and log back in again, or run those
- commands from the command line to set the variable values.</para>
- </step>
- </procedure>
-
- <procedure>
- <step>
- <para>Create <filename>example.sgml</filename>, and enter the
- following text;</para>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
- <head>
- <title>An example HTML file</title>
- </head>
-
- <body>
- <p>This is a paragraph containing some text.</p>
-
- <p>This paragraph contains some more text.</p>
-
- <p align="right">This paragraph might be right-justified.</p>
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>Try and validate this file using an SGML parser.</para>
-
- <para>Part of <filename>textproc/docproj</filename> is the
- &man.nsgmls.1; <link linkend="sgml-primer-validating">validating
- parser</link>. Normally, &man.nsgmls.1; reads in a document
- marked up according to an SGML DTD and returns a copy of the
- document's Element Structure Information Set (ESIS, but that is
- not important right now).</para>
-
- <para>However, when &man.nsgmls.1; is given the <option>-s</option>
- parameter, &man.nsgmls.1; will suppress its normal output, and
- just print error messages. This makes it a useful way to check to
- see if your document is valid or not.</para>
-
- <para>Use &man.nsgmls.1; to check that your document is
- valid;</para>
-
- <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput></screen>
-
- <para>As you will see, &man.nsgmls.1; returns without displaying any
- output. This means that your document validated
- successfully.</para>
- </step>
-
- <step>
- <para>See what happens when required elements are omitted. Try
- removing the <sgmltag>title</sgmltag> and
- <sgmltag>/title</sgmltag> tags, and re-run the validation.</para>
-
- <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput>
-nsgmls:example.sgml:5:4:E: character data is not allowed here
-nsgmls:example.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
-
- <para>The error output from &man.nsgmls.1; is organised into
- colon-separated groups, or columns.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Column</entry>
- <entry>Meaning</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>1</entry>
- <entry>The name of the program generating the error. This
- will always be <literal>nsgmls</literal>.</entry>
- </row>
-
- <row>
- <entry>2</entry>
- <entry>The name of the file that contains the error.</entry>
- </row>
-
- <row>
- <entry>3</entry>
- <entry>Line number where the error appears.</entry>
- </row>
-
- <row>
- <entry>4</entry>
- <entry>Column number where the error appears.</entry>
- </row>
-
- <row>
- <entry>5</entry>
- <entry>A one letter code indicating the nature of the
- message. <literal>I</literal> indicates an informational
- message, <literal>W</literal> is for warnings, and
- <literal>E</literal> is for errors<footnote>
- <para>It is not always the fifth column either.
- <command>nsgmls -sv</command> displays
- <literal>nsgmls:I: SP version "1.3"</literal>
- (depending on the installed version). As you can see,
- this is an informational message.</para>
- </footnote>, and <literal>X</literal> is for
- cross-references. As you can see, these messages are
- errors.</entry>
- </row>
-
- <row>
- <entry>6</entry>
- <entry>The text of the error message.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Simply omitting the <sgmltag>title</sgmltag> tags has
- generated 2 different errors.</para>
-
- <para>The first error indicates that content (in this case,
- characters, rather than the start tag for an element) has occured
- where the SGML parser was expecting something else. In this case,
- the parser was expecting to see one of the start tags for elements
- that are valid inside <sgmltag>head</sgmltag> (such as
- <sgmltag>title</sgmltag>).</para>
-
- <para>The second error is because <sgmltag>head</sgmltag> elements
- <emphasis>must</emphasis> contain a <sgmltag>title</sgmltag>
- element. Because it does not &man.nsgmls.1; considers that the
- element has not been properly finished. However, the closing tag
- indicates that the element has been closed before it has been
- finished.</para>
- </step>
-
- <step>
- <para>Put the <literal>title</literal> element back in.</para>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1 id="sgml-primer-doctype-declaration">
- <title>The DOCTYPE declaration</title>
-
- <para>The beginning of each document that you write must specify the name
- of the DTD that the document conforms to. This is so that SGML parsers
- can determine the DTD and ensure that the document does conform to
- it.</para>
-
- <para>This information is generally expressed on one line, in the DOCTYPE
- declaration.</para>
-
- <para>A typical declaration for a document written to conform with version
- 4.0 of the HTML DTD looks like this;</para>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">]]></programlisting>
-
- <para>That line contains a number of different components.</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>&lt;!</literal></term>
-
- <listitem>
- <para>Is the <emphasis>indicator</emphasis> that indicates that this
- is an SGML declaration. This line is declaring the document type.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>DOCTYPE</literal></term>
-
- <listitem>
- <para>Shows that this is an SGML declaration for the document
- type.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>html</literal></term>
-
- <listitem>
- <para>Names the first <link linkend="sgml-primer-elements">element</link> that
- will appear in the document.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>PUBLIC "-//W3C//DTD HTML 4.0//EN"</literal></term>
-
- <listitem>
- <para>Lists the Formal Public Identifier (FPI)<indexterm>
- <primary>Formal Public Identifier</primary>
- </indexterm>
- for the DTD that this
- document conforms to. Your SGML parser will use this to find the
- correct DTD when processing this document.</para>
-
- <para><literal>PUBLIC</literal> is not a part of the FPI, but
- indicates to the SGML processor how to find the DTD referenced in
- the FPI. Other ways of telling the SGML parser how to find the
- DTD are shown <link
- linkend="sgml-primer-fpi-alternatives">later</link>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>&gt;</literal></term>
-
- <listitem>
- <para>Returns to the document.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <sect2>
- <title>Formal Public Identifiers (FPIs)<indexterm significance="preferred">
- <primary>Formal Public Identifier</primary>
- </indexterm>
-</title>
-
- <note>
- <para>You don't need to know this, but it's useful background, and
- might help you debug problems when your SGML processor can't locate
- the DTD you are using.</para>
- </note>
-
- <para>FPIs must follow a specific syntax. This syntax is as
- follows;</para>
-
- <programlisting>"<replaceable>Owner</replaceable>//<replaceable>Keyword</replaceable> <replaceable>Description</replaceable>//<replaceable>Language</replaceable>"</programlisting>
-
- <variablelist>
- <varlistentry>
- <term><replaceable>Owner</replaceable></term>
-
- <listitem>
- <para>This indicates the owner of the FPI.</para>
-
- <para>If this string starts with &ldquo;ISO&rdquo; then this is an
- ISO owned FPI. For example, the FPI <literal>"ISO
- 8879:1986//ENTITIES Greek Symbols//EN"</literal> lists
- <literal>ISO 8879:1986</literal> as being the owner for the set
- of entities for greek symbols. ISO 8879:1986 is the ISO number
- for the SGML standard.</para>
-
- <para>Otherwise, this string will either look like
- <literal>-//<replaceable>Owner</replaceable></literal> or
- <literal>+//<replaceable>Owner</replaceable></literal> (notice
- the only difference is the leading <literal>+</literal> or
- <literal>-</literal>).</para>
-
- <para>If the string starts with <literal>-</literal> then the
- owner information is unregistered, with a <literal>+</literal>
- it identifies it as being registered.</para>
-
- <para>ISO 9070:1991 defines how registered names are generated; it
- might be derived from the number of an ISO publication, an ISBN
- code, or an organisation code assigned according to ISO 6523.
- In addition, a registration authority could be created in order
- to assign registered names. The ISO council delegated this to
- the American National Standards Institute (ANSI).</para>
-
- <para>Because the FreeBSD Project hasn't been registered the
- owner string is <literal>-//FreeBSD</literal>. And as you can
- see, the W3C are not a registered owner either.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>Keyword</replaceable></term>
-
- <listitem>
- <para>There are several keywords that indicate the type of
- information in the file. Some of the most common keywords are
- <literal>DTD</literal>, <literal>ELEMENT</literal>,
- <literal>ENTITIES</literal>, and <literal>TEXT</literal>.
- <literal>DTD</literal> is used only for DTD files,
- <literal>ELEMENT</literal> is usually used for DTD fragments
- that contain only entity or element declarations.
- <literal>TEXT</literal> is used for SGML content (text and
- tags).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>Description</replaceable></term>
-
- <listitem>
- <para>Any description you want to supply for the contents of this
- file. This may include version numbers or any short text that
- is meaningful to you and unique for the SGML system.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>Language</replaceable></term>
-
- <listitem>
- <para>This is an ISO two-character code that identifies the native
- language for the file. <literal>EN</literal> is used for
- English.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <sect3>
- <title><filename>catalog</filename> files</title>
-
- <para>If you use the syntax above and try and process this document
- using an SGML processor, the processor will need to have some way of
- turning the FPI into the name of the file on your computer that
- contains the DTD.</para>
-
- <para>In order to do this it can use a catalog file. A catalog file
- (typically called <filename>catalog</filename>) contains lines that
- map FPIs to filenames. For example, if the catalog file contained
- the line;</para>
-
- <programlisting>PUBLIC "-//W3C//DTD HTML 4.0//EN" "4.0/strict.dtd"</programlisting>
-
- <para>The SGML processor would know to look up the DTD from
- <filename>strict.dtd</filename> in the <filename>4.0</filename>
- subdirectory of whichever directory held the
- <filename>catalog</filename> file that contained that line.</para>
-
- <para>Look at the contents of
- <filename>/usr/local/share/sgml/html/catalog</filename>. This is
- the catalog file for the HTML DTDs that will have been installed as
- part of the <filename>textproc/docproj</filename> port.</para>
- </sect3>
-
- <sect3>
- <title><envar>SGML_CATALOG_FILES</envar></title>
-
- <para>In order to locate a <filename>catalog</filename> file, your
- SGML processor will need to know where to look. Many of them
- feature command line parameters for specifying the path to one or
- more catalogs.</para>
-
- <para>In addition, you can set <envar>SGML_CATALOG_FILES</envar> to
- point to the files. This environment variable should consist of a
- colon-separated list of catalog files (including their full
- path).</para>
-
- <para>Typically, you will want to include the following files;</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>/usr/local/share/sgml/docbook/catalog</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>/usr/local/share/sgml/html/catalog</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>/usr/local/share/sgml/iso8879/catalog</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>/usr/local/share/sgml/jade/catalog</filename></para>
- </listitem>
- </itemizedlist>
-
- <para>You should <link linkend="sgml-primer-envars">already have done
- this</link>.</para>
- </sect3>
- </sect2>
-
- <sect2 id="sgml-primer-fpi-alternatives">
- <title>Alternatives to FPIs</title>
-
- <para>Instead of using an FPI to indicate the DTD that the document
- conforms to (and therefore, which file on the system contains the DTD)
- you can explicitly specify the name of the file.</para>
-
- <para>The syntax for this is slightly different:</para>
-
- <programlisting><![ CDATA [<!DOCTYPE html SYSTEM "/path/to/file.dtd">]]></programlisting>
-
- <para>The <literal>SYSTEM</literal> keyword indicates that the SGML
- processor should locate the DTD in a system specific fashion. This
- typically (but not always) means the DTD will be provided as a
- filename.</para>
-
- <para>Using FPIs is preferred for reasons of portability. You don't
- want to have to ship a copy of the DTD around with your document, and
- if you used the <literal>SYSTEM</literal> identifier then everyone
- would need to keep their DTDs in the same place.</para>
- </sect2>
- </sect1>
-
- <sect1 id="sgml-primer-sgml-escape">
- <title>Escaping back to SGML</title>
-
- <para>Earlier in this primer I said that SGML is only used when writing a
- DTD. This is not strictly true. There is certain SGML syntax that you
- will want to be able to use within your documents. For example,
- comments can be included in your document, and will be ignored by the
- parser. Comments are entered using SGML syntax. Other uses for SGML
- syntax in your document will be shown later too.</para>
-
- <para>Obviously, you need some way of indicating to the SGML processor
- that the following content is not elements within the document, but is
- SGML that the parser should act upon.</para>
-
- <para>These sections are marked by <literal>&lt;! ... &gt;</literal> in
- your document. Everything between these delimiters is SGML syntax as
- you might find within a DTD.</para>
-
- <para>As you may just have realised, the <link
- linkend="sgml-primer-doctype-declaration">DOCTYPE declaration</link>
- is an example of SGML syntax that you need to include in your
- document&hellip;</para>
- </sect1>
-
- <sect1>
- <title>Comments</title>
-
- <para>Comments are an SGML construction, and are normally only valid
- inside a DTD. However, as <xref linkend="sgml-primer-sgml-escape">
- shows, it is possible to use SGML syntax within your document.</para>
-
- <para>The delimiter for SGML comments is the string
- &ldquo;<literal>--</literal>&rdquo;. The first occurence of this string
- opens a comment, and the second closes it.</para>
-
- <example>
- <title>SGML generic comment</title>
-
- <programlisting>&lt;!-- test comment --></programlisting>
-
- <programlisting><![ CDATA [
-<!-- This is inside the comment -->
-
-<!-- This is another comment -->
-
-<!-- This is one way
- of doing multiline comments -->
-
-<!-- This is another way of --
- -- doing multiline comments -->]]></programlisting>
- </example>
-
- <![ %output.print; [
- <important>
- <title>Use 2 dashes</title>
-
- <para>There is a problem with producing the Postscript and PDF versions
- of this document. The above example probably shows just one hyphen
- symbol, <literal>-</literal> after the <literal>&lt;!</literal> and
- before the <literal>&gt;</literal>.</para>
-
- <para>You <emphasis>must</emphasis> use two <literal>-</literal>,
- <emphasis>not</emphasis> one. The Postscript and PDF versions have
- translated the two <literal>-</literal> in the original to a longer,
- more professional <emphasis>em-dash</emphasis>, and broken this
- example in the process.</para>
-
- <para>The HTML, plain text, and RTF versions of this document are not
- affected.</para>
- </important>
- ]]>
-
- <para>If you have used HTML before you may have been shown different rules
- for comments. In particular, you may think that the string
- <literal>&lt!--</literal> opens a comment, and it is only closed by
- <literal>--&gt;</literal>.</para>
-
- <para>This is <emphasis>not</emphasis> the case. A lot of web browsers
- have broken HTML parsers, and will accept that as valid. However, the
- SGML parsers used by the Documentation Project are much stricter, and
- will reject documents that make that error.</para>
-
- <example>
- <title>Errorneous SGML comments</title>
-
- <programlisting><![ CDATA [
-<!-- This is in the comment --
-
- THIS IS OUTSIDE THE COMMENT!
-
- -- back inside the comment -->]]></programlisting>
-
- <para>The SGML parser will treat this as though it were actually;</para>
-
- <programlisting>&lt;!THIS IS OUTSIDE THE COMMENT&gt;</programlisting>
-
- <para>This is not valid SGML, and may give confusing error
- messages.</para>
-
- <programlisting><![ CDATA [<!--------------- This is a very bad idea --------------->]]></programlisting>
-
- <para>As the example suggests, <emphasis>do not</emphasis> write
- comments like that.</para>
-
- <programlisting><![ CDATA [<!--===================================================-->]]></programlisting>
-
- <para>That is a (slightly) better approach, but it still potentially
- confusing to people new to SGML.</para>
- </example>
-
- <sect2>
- <title>For you to do&hellip;</title>
-
- <procedure>
- <step>
- <para>Add some comments to <filename>example.sgml</filename>, and
- check that the file still validates using &man.nsgmls.1;</para>
- </step>
-
- <step>
- <para>Add some invalid comments to
- <filename>example.sgml</filename>, and see the error messages that
- &man.nsgmls.1; gives when it encounters an invalid comment.</para>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Entities</title>
-
- <para>Entities are a mechanism for assigning names to chunks of content.
- As an SGML parser processes your document, any entities it finds are
- replaced by the content of the entity.</para>
-
- <para>This is a good way to have re-usable, easily changeable chunks of
- content in your SGML documents. It is also the only way to include one
- marked up file inside another using SGML.</para>
-
- <para>There are two types of entities which can be used in two different
- situations; <emphasis>general entities</emphasis> and
- <emphasis>parameter entities</emphasis>.</para>
-
- <sect2 id="sgml-primer-general-entities">
- <title>General Entities</title>
-
- <para>You can not use general entities in an SGML context (although you
- define them in one). They can only be used in your document.
- Contrast this with <link
- linkend="sgml-primer-parameter-entities">parameter
- entities</link>.</para>
-
- <para>Each general entity has a name. When you want to reference a
- general entity (and therefore include whatever text it represents in
- your document), you write
- <literal>&amp;<replaceable>entity-name</replaceable>;</literal>. For
- example, suppose you had an entity called
- <literal>current.version</literal> which expanded to the current
- version number of your product. You could write;</para>
-
- <programlisting><![ CDATA [<para>The current version of our product is
- &current.version;.</para>]]></programlisting>
-
- <para>When the version number changes you can simply change the
- definition of the value of the general entity and reprocess your
- document.</para>
-
- <para>You can also use general entities to enter characters that you
- could not otherwise include in an SGML document. For example, &lt;
- and &amp; can not normally appear in an SGML document. When the SGML
- parser sees the &lt; symbol it assumes that a tag (either a start tag
- or an end tag) is about to appear, and when it sees the &amp; symbol
- it assumes the next text will be the name of an entity.</para>
-
- <para>Fortunately, you can use the two general entities &amp;lt; and
- &amp;amp; whenever you need to include one or other of these </para>
-
- <para>A general entity can only be defined within an SGML context.
- Typically, this is done immediately after the DOCTYPE
- declaration.</para>
-
- <example>
- <title>Defining general entities</title>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY current.version "3.0-RELEASE">
-<!ENTITY last.version "2.2.7-RELEASE">
-]>]]></programlisting>
-
- <para>Notice how the DOCTYPE declaration has been extended by adding a
- square bracket at the end of the first line. The two entities are
- then defined over the next two lines, before the square bracket is
- closed, and then the DOCTYPE declaration is closed.</para>
-
- <para>The square brackets are necessary to indicate that we are
- extending the DTD indicated by the DOCTYPE declaration.</para>
- </example>
- </sect2>
-
- <sect2 id="sgml-primer-parameter-entities">
- <title>Parameter entities</title>
-
- <para>Like <link linkend="sgml-primer-general-entities">general
- entities</link>, parameter entities are used to assign names to
- reusable chunks of text. However, where as general entities can only
- be used within your document, parameter entities can only be used
- within an <link linkend="sgml-primer-sgml-escape">SGML
- context</link>.</para>
-
- <para>Parameter entities are defined in a similar way to general
- entities. However, instead of using
- <literal>&amp;<replaceable>entity-name</replaceable>;</literal> to
- refer to them, use
- <literal>%<replaceable>entity-name</replaceable>;</literal><footnote>
- <para><emphasis>P</emphasis>arameter entities use the
- <emphasis>P</emphasis>ercent symbol.</para>
- </footnote>. The definition also includes the <literal>%</literal>
- between the <literal>ENTITY</literal> keyword and the name of the
- entity.</para>
-
- <example>
- <title>Defining parameter entities</title>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY % param.some "some">
-<!ENTITY % param.text "text">
-<!ENTITY % param.new "%param.some more %param.text">
-
-<!-- %param.new now contains "some more text" -->
-]>]]></programlisting>
- </example>
-
- <para>This may not seem particularly useful. It will be.</para>
- </sect2>
-
- <sect2>
- <title>For you to do&hellip;</title>
-
- <procedure>
- <step>
- <para>Add a general entity to
- <filename>example.sgml</filename>.</para>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
-<!ENTITY version "1.1">
-]>
-
-<html>
- <head>
- <title>An example HTML file</title>
- </head>
-
- <!-- You might well have some comments in here as well -->
-
- <body>
- <p>This is a paragraph containing some text.</p>
-
- <p>This paragraph contains some more text.</p>
-
- <p align="right">This paragraph might be right-justified.</p>
-
- <p>The current version of this document is: &version;</p>
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>Validate the document using &man.nsgmls.1;</para>
- </step>
-
- <step>
- <para>Load <filename>example.sgml</filename> into your web browser
- (you may need to copy it to <filename>example.html</filename>
- before your browser recognises it as an HTML document).</para>
-
- <para>Unless your browser is very advanced, you won't see the entity
- reference <literal>&amp;version;</literal> replaced with the
- version number. Most web browsers have very simplistic parsers
- which do not handle proper SGML<footnote>
- <para>This is a shame. Imagine all the problems and hacks (such
- as Server Side Includes) that could be avoided if they
- did.</para>
- </footnote>.</para>
- </step>
-
- <step>
- <para>The solution is to <emphasis>normalise</emphasis> your
- document using an SGML normaliser. The normaliser reads in valid
- SGML and outputs equally valid SGML which has been transformed in
- some way. One of the ways in which the normaliser transforms the
- SGML is to expand all the entity references in the document,
- replacing the entities with the text that they represent.</para>
-
- <para>You can use &man.sgmlnorm.1; to do this.</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm example.sgml > example.html</userinput></screen>
-
- <para>You should find a normalised (i.e., entity references
- expanded) copy of your document in
- <filename>example.html</filename>, ready to load into your web
- browser.</para>
- </step>
-
- <step>
- <para>If you look at the output from &man.sgmlnorm.1; you will see
- that it does not include a DOCTYPE declaration at the start. To
- include this you need to use the <option>-d</option>
- option;</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm -d example.sgml > example.html</userinput></screen>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Using entities to include files</title>
-
- <para>Entities (both <link
- linkend="sgml-primer-general-entities">general</link> and <link
- linkend="sgml-primer-parameter-entities">parameter</link>) are
- particularly useful when used to include one file inside another.</para>
-
- <sect2 id="sgml-primer-include-using-gen-entities">
- <title>Using general entities to include files</title>
-
- <para>Suppose you have some content for an SGML book organised into
- files, one file per chapter, called
- <filename>chapter1.sgml</filename>,
- <filename>chapter2.sgml</filename>, and so forth, with a
- <filename>book.sgml</filename> file that will contain these
- chapters.</para>
-
- <para>In order to use the contents of these files as the values for your
- entities, you declare them with the <literal>SYSTEM</literal> keyword.
- This directs the SGML parser to use the contents of the named file as
- the value of the entity.</para>
-
- <example>
- <title>Using general entities to include files</title>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY chapter.1 SYSTEM "chapter1.sgml">
-<!ENTITY chapter.2 SYSTEM "chapter2.sgml">
-<!ENTITY chapter.3 SYSTEM "chapter3.sgml">
-<!-- And so forth -->
-]>
-
-<html>
- <!-- Use the entities to load in the chapters -->
-
- &chapter.1;
- &chapter.2;
- &chapter.3;
-</html>]]></programlisting>
- </example>
-
- <warning>
- <para>When using general entities to include other files within a
- document, the files being included
- (<filename>chapter1.sgml</filename>,
- <filename>chapter2.sgml</filename>, and so on) <emphasis>must
- not</emphasis> start with a DOCTYPE declaration. This is a syntax
- error.</para>
- </warning>
- </sect2>
-
- <sect2>
- <title>Using parameter entities to include files</title>
-
- <para>Recall that parameter entities can only be used inside an SGML
- context. Why then would you want to include a file within an SGML
- context?</para>
-
- <para>You can use this to ensure that you can reuse your general
- entities.</para>
-
- <para>Suppose that you had many chapters in your document, and you
- reused these chapters in two different books, each book organising the
- chapters in a different fashion.</para>
-
- <para>You could list the entities at the top of each book, but this
- quickly becomes cumbersome to manage.</para>
-
- <para>Instead, place the general entity definitions inside one file,
- and use a parameter entity to include that file within your
- document.</para>
-
- <example>
- <title>Using parameter entities to include files</title>
-
- <para>First, place your entity definitions in a separate file, called
- <filename>chapters.ent</filename>. This file contains the
- following;</para>
-
- <programlisting><![ CDATA [<!ENTITY chapter.1 SYSTEM "chapter1.sgml">
-<!ENTITY chapter.2 SYSTEM "chapter2.sgml">
-<!ENTITY chapter.3 SYSTEM "chapter3.sgml">]]></programlisting>
-
- <para>Now create a parameter entity to refer to the contents of the
- file. Then use the parameter entity to load the file into the
- document, which will then make all the general entities available
- for use. Then use the general entities as before;</para>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!-- Define a parameter entity to load in the chapter general entities -->
-<!ENTITY % chapters SYSTEM "chapters.ent">
-
-<!-- Now use the parameter entity to load in this file -->
-%chapters;
-]>
-
-<html>
- &chapter.1;
- &chapter.2;
- &chapter.3;
-</html>]]></programlisting>
- </example>
- </sect2>
-
- <sect2>
- <title>For you to do&hellip;</title>
-
- <sect3>
- <title>Use general entities to include files</title>
-
- <procedure>
- <step>
- <para>Create three files, <filename>para1.sgml</filename>,
- <filename>para2.sgml</filename>, and
- <filename>para3.sgml</filename>.</para>
-
- <para>Put content similar to the following in each file;</para>
-
- <programlisting><![ CDATA [<p>This is the first paragraph.</p>]]></programlisting>
- </step>
-
- <step>
- <para>Edit <filename>example.sgml</filename> so that it looks like
- this;</para>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY version "1.1">
-<!ENTITY para1 SYSTEM "para1.sgml">
-<!ENTITY para2 SYSTEM "para2.sgml">
-<!ENTITY para3 SYSTEM "para3.sgml">
-]>
-
-<html>
- <head>
- <title>An example HTML file</title>
- </head>
-
- <body>
- <p>The current version of this document is: &version;</p>
-
- &para1;
- &para2;
- &para3;
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>Produce <filename>example.html</filename> by normalising
- <filename>example.sgml</filename>.</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm -d example.sgml > example.html</userinput></screen>
- </step>
-
- <step>
- <para>Load <filename>example.html</filename> in to your web
- browser, and confirm that the
- <filename>para<replaceable>n</replaceable>.sgml</filename> files
- have been included in <filename>example.html</filename>.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>Use parameter entities to include files</title>
-
- <note>
- <para>You must have taken the previous steps first.</para>
- </note>
-
- <procedure>
- <step>
- <para>Edit <filename>example.sgml</filename> so that it looks like
- this;</para>
-
- <programlisting><![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY % entities SYSTEM "entities.sgml"> %entities;
-]>
-
-<html>
- <head>
- <title>An example HTML file</title>
- </head>
-
- <body>
- <p>The current version of this document is: &version;</p>
-
- &para1;
- &para2;
- &para3;
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>Create a new file, <filename>entities.sgml</filename>, with
- this content:</para>
-
- <programlisting><![ CDATA [<!ENTITY version "1.1">
-<!ENTITY para1 SYSTEM "para1.sgml">
-<!ENTITY para2 SYSTEM "para2.sgml">
-<!ENTITY para3 SYSTEM "para3.sgml">]]></programlisting>
- </step>
-
- <step>
- <para>Produce <filename>example.html</filename> by normalising
- <filename>example.sgml</filename>.</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm -d example.sgml > example.html</userinput></screen>
- </step>
-
- <step>
- <para>Load <filename>example.html</filename> in to your web
- browser, and confirm that the
- <filename>para<replaceable>n</replaceable>.sgml</filename> files
- have been included in <filename>example.html</filename>.</para>
- </step>
- </procedure>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="sgml-primer-marked-sections">
- <title>Marked sections</title>
-
- <para>SGML provides a mechanism to indicate that particular pieces of the
- document should be processed in a special way. These are termed
- &ldquo;marked sections&rdquo;.</para>
-
- <example>
- <title>Structure of a marked section</title>
-
- <programlisting>&lt;![ <replaceable>KEYWORD</replaceable> [
- Contents of marked section
-]]&gt;</programlisting>
- </example>
-
- <para>As you would expect, being an SGML construct, a marked section
- starts with <literal>&lt!</literal>.</para>
-
- <para>The first square bracket begins to delimit the marked
- section.</para>
-
- <para><replaceable>KEYWORD</replaceable> describes how this marked
- section should be processed by the parser.</para>
-
- <para>The second square bracket indicates that the content of the marked
- section starts here.</para>
-
- <para>The marked section is finished by closing the two square brackets,
- and then returning to the document context from the SGML context with
- <literal>&gt;</literal></para>
-
- <sect2>
- <title>Marked section keywords</title>
-
- <sect3>
- <title><literal>CDATA</literal>, <literal>RCDATA</literal></title>
-
- <para>These keywords denote the marked sections <emphasis>content
- model</emphasis>, and allow you to change it from the
- default.</para>
-
- <para>When an SGML parser is processing a document it keeps track
- of what is called the &ldquo;content model&rdquo;.</para>
-
- <para>Briefly, the content model describes what sort of content the
- parser is expecting to see, and what it will do with it when it
- finds it.</para>
-
- <para>The two content models you will probably find most useful are
- <literal>CDATA</literal> and <literal>RCDATA</literal>.</para>
-
- <para><literal>CDATA</literal> is for &ldquo;Character Data&rdquo;.
- If the parser is in this content model then it is expecting to see
- characters, and characters only. In this model the &lt; and &amp;
- symbols lose their special status, and will be treated as ordinary
- characters.</para>
-
- <para><literal>RCDATA</literal> is for &ldquo;Entity references and
- character data&rdquo; If the parser is in this content model then it
- is expecting to see characters <emphasis>and</emphasis> entities.
- &lt; loses its special status, but &amp; will still be treated as
- starting the beginning of a general entity.</para>
-
- <para>This is particularly useful if you are including some verbatim
- text that contains lots of &lt; and &amp; characters. While you
- could go through the text ensuring that every &lt; is converted to a
- &amp;lt; and every &amp; is converted to a &amp;amp;, it can be
- easier to mark the section as only containing CDATA. When the SGML
- parser encounters this it will ignore the &lt; and &amp; symbols
- embedded in the content.</para>
-
- <!-- The nesting of CDATA within the next example is disgusting -->
-
- <example>
- <title>Using a CDATA marked section</title>
-
- <programlisting>&lt;para>Here is an example of how you would include some text
- that contained many &amp;lt; and &amp;amp; symbols. The sample
- text is a fragment of HTML. The surrounding text (&lt;para> and
- &lt;programlisting>) are from DocBook.&lt;/para>
-
-&lt;programlisting>
- &lt![ CDATA [ <![ CDATA [
- <p>This is a sample that shows you some of the elements within
- HTML. Since the angle brackets are used so many times, it's
- simpler to say the whole example is a CDATA marked section
- than to use the entity names for the left and right angle
- brackets throughout.</p>
-
- <ul>
- <li>This is a listitem</li>
- <li>This is a second listitem</li>
- <li>This is a third listitem</li>
- </ul>
-
- <p>This is the end of the example.</p>]]>
- ]]&gt;
-&lt/programlisting></programlisting>
-
- <para>If you look at the source for this document you will see this
- technique used throughout.</para>
- </example>
- </sect3>
-
- <sect3>
- <title><literal>INCLUDE</literal> and
- <literal>IGNORE</literal></title>
-
- <para>If the keyword is <literal>INCLUDE</literal> then the contents
- of the marked section will be processed. If the keyword is
- <literal>IGNORE</literal> then the marked section is ignored and
- will not be processed. It will not appear in the output.</para>
-
- <example>
- <title>Using <literal>INCLUDE</literal> and
- <literal>IGNORE</literal> in marked sections</title>
-
- <programlisting>&lt;![ INCLUDE [
- This text will be processed and included.
-]]&gt;
-
-&lt;![ IGNORE [
- This text will not be processed or included.
-]]&gt;</programlisting>
- </example>
-
- <para>By itself, this isn't too useful. If you wanted to remove text
- from your document you could cut it out, or wrap it in
- comments.</para>
-
- <para>It becomes more useful when you realise you can use <link
- linkend="sgml-primer-parameter-entities">parameter entities</link>
- to control this. Remember that parameter entities can only be used
- in SGML contexts, and the keyword of a marked section
- <emphasis>is</emphasis> an SGML context.</para>
-
- <para>For example, suppose that you produced a hard-copy version of
- some documentation and an electronic version. In the electronic
- version you wanted to include some extra content that wasn't to
- appear in the hard-copy.</para>
-
- <para>Create a parameter entity, and set it's value to
- <literal>INCLUDE</literal>. Write your document, using marked
- sections to delimit content that should only appear in the
- electronic version. In these marked sections use the parameter
- entity in place of the keyword.</para>
-
- <para>When you want to produce the hard-copy version of the document,
- change the parameter entity's value to <literal>IGNORE</literal> and
- reprocess the document.</para>
-
- <example>
- <title>Using a parameter entity to control a marked
- section</title>
-
- <programlisting>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-&lt;!ENTITY % electronic.copy "INCLUDE">
-]]&gt;
-
-...
-
-&lt;![ %electronic.copy [
- This content should only appear in the electronic
- version of the document.
-]]&gt;</programlisting>
-
- <para>When producing the hard-copy version, change the entity's
- definition to;</para>
-
- <programlisting>&lt!ENTITY % electronic.copy "IGNORE"></programlisting>
-
- <para>On reprocessing the document, the marked sections that use
- <literal>%electronic.copy</literal> as their keyword will be
- ignored.</para>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>For you to do&hellip;</title>
-
- <procedure>
- <step>
- <para>Create a new file, <filename>section.sgml</filename>, that
- contains the following;</para>
-
- <programlisting>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-&lt;!ENTITY % text.output "INCLUDE">
-]&gt;
-
-&lt;html>
- &lt;head>
- &lt;title>An example using marked sections&lt;/title>
- &lt;/head>
-
- &lt;body>
- &lt;p>This paragraph &lt;![ CDATA [contains many &lt;
- characters (&lt; &lt; &lt; &lt; &lt;) so it is easier
- to wrap it in a CDATA marked section ]]&gt;&lt/p>
-
- &lt;![ IGNORE [
- &lt;p>This paragraph will definitely not be included in the
- output.&lt;/p>
- ]]&gt;
-
- &lt;![ <![ CDATA [%text.output]]> [
- &lt;p>This paragraph might appear in the output, or it
- might not.&lt;/p>
-
- &lt;p>Its appearance is controlled by the <![CDATA[%text.output]]>
- parameter entity.&lt;/p>
- ]]&gt;
- &lt;/body>
-&lt;/html></programlisting>
- </step>
-
- <step>
- <para>Normalise this file using &man.sgmlnorm.1; and examine the
- output. Notice which paragraphs have appeared, which have
- disappeared, and what has happened to the content of the CDATA
- marked section.</para>
- </step>
-
- <step>
- <para>Change the definition of the <literal>text.output</literal>
- entity from <literal>INCLUDE</literal> to
- <literal>IGNORE</literal>. Re-normalise the file, and examine the
- output to see what has changed. </para>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Conclusion</title>
-
- <para>That is the conclusion of this SGML primer. For reasons of space
- and complexity several things have not been covered in depth (or at
- all). However, the previous sections cover enough SGML for you to be
- able to follow the organisation of the FDP documentation.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml
deleted file mode 100644
index 2de30fe013..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml
+++ /dev/null
@@ -1,295 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/structure/chapter.sgml,v 1.4 2000/07/07 18:38:38 dannyboy Exp $
--->
-
-<chapter id="structure">
- <title>Structuring documents under <filename>doc/</filename></title>
-
- <para>The <filename>doc/</filename> tree is organised in a particular
- fashion, and the documents that are part of the FDP are in turn organised
- in a particular fashion. The aim is to make it simple to add new
- documentation in to the tree and:</para>
-
- <orderedlist>
- <listitem>
- <para>make it easy to automate converting the document to other formats</para>
- </listitem>
-
- <listitem>
- <para>promote consistency between the different documentation
- organisations, to make it easier to switch between working on
- different documents</para>
- </listitem>
-
- <listitem>
- <para>make it easy to decide where in the tree new documentation should
- be placed</para>
- </listitem>
- </orderedlist>
-
- <para>In addition, the documentation tree has to accommodate documentation
- that could be in many different languages and in many different
- encodings. It is important that the structure of the documentation tree
- does not enforce any particular defaults or cultural preferences.</para>
-
- <sect1>
- <title>The top level, <filename>doc/</filename></title>
-
- <para>There are two types of directory under <filename>doc/</filename>,
- each with very specific directory names and meanings.</para>
-
- <segmentedlist>
- <segtitle>Directory</segtitle>
-
- <segtitle>Meaning</segtitle>
-
- <seglistitem>
- <seg><filename>share/</filename></seg>
-
- <seg>Contains files that are not specific to the various translations
- and encodings of the documentation. Contains subdirectories to
- further categorise the information. For example, the files that
- comprise the &man.make.1; infrastructure are in
- <filename>share/mk</filename>, while the additional SGML support
- files (such as the FreeBSD extended DocBook DTD) are in
- <filename>share/sgml</filename>.</seg>
- </seglistitem>
-
- <seglistitem>
- <seg><filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable>/</filename></seg>
-
- <seg>One directory exists for each available translation and encoding
- of the documentation, for example
- <filename>en_US.ISO_8859-1/</filename> and
- <filename>zh_TW.Big5/</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
- isolates us from any problems that might be caused by a switch to
- Unicode.</seg>
- </seglistitem>
- </segmentedlist>
- </sect1>
-
- <sect1>
- <title>The
- <filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable>/</filename> directories</title>
-
- <para>These directories contain the documents themselves. The
- documentation is split into up to three more categories at this
- level, indicated by the different directory names.</para>
-
- <segmentedlist>
- <segtitle>Directory</segtitle>
-
- <segtitle>Contents</segtitle>
-
- <seglistitem>
- <seg><filename>articles</filename></seg>
-
- <seg>Documentation marked up as a DocBook <sgmltag>article</sgmltag>
- (or equivalent). Reasonably short, and broken up into sections.
- Normally only available as one HTML file.</seg>
- </seglistitem>
-
- <seglistitem>
- <seg><filename>books</filename></seg>
-
- <seg>Documentation marked up as a DocBook <sgmltag>book</sgmltag> (or
- equivalent). Book length, and broken up in to chapters. Normally
- available as both one large HTML file (for people with fast
- connections, or who want to print it easily from a browser) and
- as a collection of linked, smaller files.</seg>
- </seglistitem>
-
- <seglistitem>
- <seg><filename>man</filename></seg>
-
- <seg>For translations of the system manual pages. This directory will
- contain one or more
- <filename>man<replaceable>n</replaceable></filename> directories,
- corresponding to the sections that have been translated.</seg>
- </seglistitem>
- </segmentedlist>
-
- <para>Not every
- <filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable></filename> directory will contain all of these directories. It depends
- on how much translation has been accomplished by that translation
- team.</para>
- </sect1>
-
- <sect1>
- <title>Document specific information</title>
-
- <para>This section contains specific notes about particular documents
- managed by the FDP.</para>
-
- <sect2>
- <title>The Handbook</title>
-
- <subtitle><filename>books/handbook/</filename></subtitle>
-
- <para>The Handbook is written to comply with the FreeBSD DocBook
- extended DTD.</para>
-
- <para>The Handbook is organised as a DocBook <sgmltag>book</sgmltag>.
- It is then divided into <sgmltag>part</sgmltag>s, each of which may
- contain several <sgmltag>chapter</sgmltag>s.
- <sgmltag>chapter</sgmltag>s are further subdivided into sections
- (<sgmltag>sect1</sgmltag>) and subsections (<sgmltag>sect2</sgmltag>,
- <sgmltag>sect3</sgmltag>) and so on.</para>
-
- <sect3>
- <title>Physical organisation</title>
-
- <para>There are a number of files and directories within the
- <filename>handbook</filename> directory.</para>
-
- <note>
- <para>The Handbook's organisation may change over time, and this
- document may lag in detailing the organisational changes. If you
- have any questions about how the Handbook is organised, please
- contact the FreeBSD Documentation Project,
- <email>freebsd-doc@FreeBSD.org</email>.</para>
- </note>
-
- <sect4>
- <title><filename>Makefile</filename></title>
-
- <para>The <filename>Makefile</filename> defines some variables that
- affect how the SGML source is converted to other formats, and
- lists the various source files that make up the Handbook. It then
- includes the standard <filename>doc.project.mk</filename> file, to
- bring in the rest of the code that handles converting documents
- from one format to another.</para>
- </sect4>
-
- <sect4>
- <title><filename>book.sgml</filename></title>
-
- <para>This is the top level document in the Handbook. It contains
- the Handbook's <link
- linkend="sgml-primer-doctype-declaration">DOCTYPE
- declaration</link>, as well as the elements that describe the
- Handbook's structure.</para>
-
- <para><filename>book.sgml</filename> uses <link
- linkend="sgml-primer-parameter-entities">parameter
- entities</link> to load in the files with the
- <filename>.ent</filename> extension. These files (described later)
- then define <link linkend="sgml-primer-general-entities">general
- entities</link> that are used throughout the rest of the
- Handbook.</para>
- </sect4>
-
- <sect4>
- <title><filename><replaceable>directory</replaceable>/chapter.sgml</filename></title>
-
- <para>Each chapter in the Handbook is stored in a file called
- <filename>chapter.sgml</filename> in a separate directory from the
- other chapters. Each directory is named after the value of the
- <literal>id</literal> attribute on the <sgmltag>chapter</sgmltag>
- element.</para>
-
- <para>For example, if one of the chapter files contains:</para>
-
- <programlisting><![ CDATA [
-<chapter id="kernelconfiguration">
-...
-</chapter>]]></programlisting>
-
- <para>then it will be called <filename>chapter.sgml</filename> in
- the <filename>kernelconfiguration</filename> directory. In
- general, the entire contents of the chapter will be held in this
- file.</para>
-
- <para>When the HTML version of the Handbook is produced, this will
- yield <filename>kernelconfiguration.html</filename>. This is
- because of the <literal>id</literal> value, and is not related to
- the name of the directory.</para>
-
- <para>In earlier versions of the Handbook the files were stored in
- the same directory as <filename>book.sgml</filename>, and named
- after the value of the <literal>id</literal> attribute on the
- file's <sgmltag>chapter</sgmltag> element. Moving them in to
- separate directories prepares for future plans for the Handbook.
- Specifically, it will soon be possible to include images in each
- chapter. It makes more sense for each image to be stored in a
- directory with the text for the chapter than to try and keep the
- text for all the chapters, and all the images, in one large
- directory. Namespace collisions would be inevitable, and it is
- easier to work with several directories with a few files in them
- than it is to work with one directory that has many files in
- it.</para>
-
- <para>A brief look will show that there are many directories with
- individual <filename>chapter.sgml</filename> files, including
- <filename>basics/chapter.sgml</filename>,
- <filename>introduction/chapter.sgml</filename>, and
- <filename>printing/chapter.sgml</filename>.</para>
-
- <important>
- <para>Chapters and/or directories should not be named in a fashion
- that reflects their ordering within the Handbook. This ordering
- might change as the content within the Handbook is reorganised;
- this sort of reorganistion should not (generally) include the
- need to rename files (unless entire chapters are being promoted
- or demoted within the hierarchy).</para>
- </important>
-
- <para>Each <filename>chapter.sgml</filename> file will not be a
- complete SGML document. In particular, they will not have their
- own DOCTYPE lines at the start of the files.</para>
-
- <para>This is unfortunate as
- it makes it impossible to treat these as generic SGML
- files and simply convert them to HTML, RTF, PS, and other
- formats in the same way the main Handbook is generated. This
- <emphasis>would</emphasis> force you to rebuild the Handbook
- every time you want to see the effect a change has had on just
- one chapter.</para>
- </sect4>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml
deleted file mode 100644
index 8a014549cd..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml
+++ /dev/null
@@ -1,81 +0,0 @@
-<!-- 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$
--->
-
-<chapter id="stylesheets">
- <title>* Stylesheets</title>
-
- <para>SGML says nothing about how a document should be displayed to the
- user, or rendered on paper. To do that, various languages have been
- developed to describe stylesheets, including DynaText, Panorama, SPICE,
- JSSS, FOSI, CSS, and DSSSL.</para>
-
- <para>For DocBook, we are using stylesheets written in DSSSL. For HTML we
- are using CSS.</para>
-
- <sect1>
- <title>* DSSSL</title>
-
- <para>The Documentation Project uses a slightly customised version of
- Norm Walsh's modular DocBook stylesheets.</para>
-
- <para>These can be found in
- <filename>textproc/dsssl-docbook-modular</filename>.</para>
-
- <para>The modified stylesheets are not in the ports system. Instead they
- are part of the Documentation Project source repository, and can be
- found in <filename>doc/share/sgml/freebsd.dsl</filename>. It is well
- commented, and pending completion of this section you are encouraged to
- examine that file to see how some of the available options in the
- standard stylesheets have been configured in order to customise the
- output for the FreeBSD Documentation Project. That file also contains
- examples showing how to extend the elements that the stylesheet
- understands, which is how the FreeBSD specific elements have been
- formatted.</para>
- </sect1>
-
- <sect1>
- <title>* CSS</title>
-
- <para></para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml
deleted file mode 100644
index 92502c7550..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml
+++ /dev/null
@@ -1,217 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/the-website/chapter.sgml,v 1.3 1999/09/06 06:52:43 peter Exp $
--->
-
-<chapter id="the-website">
- <title>The Website</title>
-
- <sect1>
- <title>Preparation</title>
-
- <para>Get 200MB free disk space. You will need the disk space for the
- SGML tools, a subset of the CVS tree, temporary build space and the
- installed web pages. If you aready have installed the SGML tools and
- the CVS tree, you need only ~100MB free disk space.</para>
-
- <note>
- <para>Make sure your documentation ports are up to date! When in
- doubt, remove the old ports using &man.pkg.delete.1; command before
- installing the port. For example, we currently depend on
- jade-1.2 and if you have installed jade-1.1, please do</para>
-
- <screen>&prompt.root; <userinput>pkg_delete jade-1.1</userinput></screen>
- </note>
-
- <para>Setup a CVS repository. You need the directories www, doc and
- ports in the CVS tree (plus the CVSROOT of course). Please read the
- CVSup introduction <ulink
- url="http://www.freebsd.org/handbook/synching.html#CVSUP">
- http://www.freebsd.org/handbook/synching.html#CVSUP</ulink> how to
- mirror a CVS tree or parts of a CVS tree.</para>
-
- <para>The essential cvsup collections are: <literal>www</literal>,
- <literal>doc-all</literal>, <literal>cvs-base</literal>, and
- <literal>ports-base</literal>.</para>
-
- <para>These collections require ~100MB free disk space.</para>
-
- <para>A full CVS tree - including <literal>src</literal>,
- <literal>doc</literal>, <literal>www</literal>, and
- <literal>ports</literal> - is currently 650MB large.</para>
- </sect1>
-
- <sect1>
- <title>Build the web pages from scratch</title>
-
- <procedure>
- <step>
- <para>Go to into a build directory with at least 60MB of free
- space.</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/tmp/webbuild</userinput>
-&prompt.root; <userinput>cd /var/tmp/webuild</userinput></screen>
- </step>
-
- <step>
- <para>Checkout the SGML files from the CVS tree.</para>
-
- <screen>&prompt.root; <userinput>cvs -R co www doc</userinput></screen>
- </step>
-
- <step><para>Change in to the <filename>www</filename> directory, and
- run the &man.make.1; <maketarget>links</maketarget> target, to
- create the necessary symbolic links.</para>
-
- <screen>&prompt.root; <userinput>cd www</userinput>
-&prompt.root; <userinput>make links</userinput></screen>
- </step>
-
- <step>
- <para>Change in to the <filename>en</filename> directory, and run
- the &man.make.1; <maketarget>all</maketarget> target, to create
- the web pages.</para>
-
- <screen>&prompt.root; <userinput>cd en</userinput>
-&prompt.root; <userinput>make all</userinput></screen>
- </step>
- </procedure>
- </sect1>
-
- <sect1>
- <title>Install the web pages into your web server</title>
-
- <procedure>
- <step>
- <para>If you have moved out of the <filename>en</filename>
- directory, change back to it.</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>path</replaceable>/www/en</userinput></screen>
- </step>
-
- <step>
- <para>Run the &man.make.1; <maketarget>install</maketarget> target,
- setting the <makevar>DESTDIR</makevar> variable to the name of the
- directory you want to install the files to.</para>
-
- <screen>&prompt.root; <userinput>make DESTDIR=<replaceable>/usr/local/www</replaceable> install</userinput></screen>
- </step>
-
- <step>
- <para>If you have previously installed the web pages in to the same
- directory the install process will not have deleted any old or
- outdated pages. For example, if you build and install a new copy
- of the site every day, this command will find and delete all
- files that have not been updated in three days.</para>
-
- <screen>&prompt.root; <userinput>find <replaceable>/usr/local/www</replaceable> -ctime 3 -print0 | xargs -0 rm</userinput></screen>
- </step>
- </procedure>
- </sect1>
-
- <sect1>
- <title>Environment variables</title>
-
- <variablelist>
- <varlistentry>
- <term><envar>CVSROOT</envar></term>
-
- <listitem>
- <para>Location of the CVS tree. Essential.</para>
-
- <screen><userinput>&prompt.root; CVSROOT=/home/ncvs; export CVSROOT</userinput></screen>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><makevar>ENGLISH_ONLY</makevar></term>
-
- <listitem>
- <para>If set and not empty, the makefiles will build and
- install only the English documents. All translations will be
- ignored. E.g.:</para>
-
- <screen>&prompt.root; <userinput>make ENGLISH_ONLY=YES all install</userinput></screen>
-
- <para>If you want unset the variable
- <makevar>ENGLISH_ONLY</makevar> and build all pages, including
- translations, set the variable <makevar>ENGLISH_ONLY</makevar>
- to an empty value</para>
-
- <screen>&prompt.root; <userinput>make ENGLISH_ONLY="" all install clean</userinput></screen>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><makevar>WEB_ONLY</makevar></term>
-
- <listitem>
- <para>If set and not empty, the makefiles wil build and install
- only the HTML pages from the www directory. All documents from
- the doc directory (Handbook, FAQ, Tutorials) will be ignored.
- E.g.:</para>
-
- <screen>&prompt.root; <userinput>make WEB_ONLY=YES all install</userinput></screen>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><makevar>NOPORTSCVS</makevar></term>
-
- <listitem>
- <para>If set, the makefiles will not checkout files from the ports
- cvs repository. Instead, it will copy the files from
- <filename>/usr/ports</filename> (or where the variable
- <envar>PORTSBASE</envar> points to).</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para><envar>CVSROOT</envar> is an environment variable. You must set it
- on the commandline or in your dot files (~/.profile).</para>
-
- <para><makevar>WEB_ONLY</makevar>, <makevar>ENGLISH_ONLY</makevar> and
- <makevar>NOPORTSCVS</makevar> are makefile variables. You can set the
- variables in <filename>/etc/make.conf</filename>,
- <filename>Makefile.inc</filename> or as environment variables on the
- commandline or in your dot files.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml
deleted file mode 100644
index e676431422..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml
+++ /dev/null
@@ -1,284 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/tools/chapter.sgml,v 1.11 2001/03/13 23:11:25 dd Exp $
--->
-
-<chapter id="tools">
- <title>Tools</title>
-
- <para>The FDP uses a number of different software tools to help
- manage the FreeBSD documentation, convert it to different output
- formats, and so on. You will need to use these tools yourself if
- you are to work with the FreeBSD documentation.</para>
-
- <para>All these tools are available as FreeBSD Ports and Packages,
- greatly simplifying the work you have to do to install
- them.</para>
-
- <para>You will need to install these tools before you work through
- any of the examples in later chapters. The actual usage of these
- tools is covered in later chapters.</para>
-
- <important>
- <title>Use <filename>textproc/docproj</filename> if possible</title>
-
- <para>You can save yourself a lot of time if you install the
- <filename>textproc/docproj</filename> port. This is a
- <emphasis>meta-port</emphasis> which does not contain any software
- itself. Instead, it depends on various other ports being installed
- correctly. Installing this port <emphasis>should</emphasis>
- automatically download and install all of the packages listed in this
- chapter that you need.</para>
-
- <para>One of the packages that you might need is the JadeTeX macro set.
- In turn, this macro set requires that TeX is installed. TeX is a large
- package, and you only need it if you want to produce Postscript or PDF
- output.</para>
-
- <para>To save yourself time and space you must specify whether or not you
- want JadeTeX (and therefore TeX) installed when you install this port.
- Either do;
-
- <screen>&prompt.root; <userinput>make JADETEX=yes install</userinput></screen>
-
- or
-
- <screen>&prompt.root; <userinput>make JADETEX=no install</userinput></screen>
-
- as necessary.</para>
- </important>
-
- <sect1>
- <title>Mandatory tools</title>
-
- <sect2>
- <title>Software</title>
-
- <para>These programs are required before you can usefully work with
- the FreeBSD documentation. They are all included in
- <filename>textproc/docproj</filename>.</para>
-
- <variablelist>
- <varlistentry>
- <term><application>SP</application>
- (<filename>textproc/sp</filename>)</term>
-
- <listitem>
- <para>A suite of applications, including a validating SGML parser,
- and an SGML normaliser.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Jade</application>
- (<filename>textproc/jade</filename>)</term>
-
- <listitem>
- <para>A DSSSL implementation. Used for converting marked up
- documents to other formats, including HTML and TeX.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Tidy</application>
- (<filename>www/tidy</filename>)</term>
-
- <listitem>
- <para>An HTML 'pretty printer', used to reformat some of the
- automatically generated HTML so that it is easier to
- follow.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Links</application>
- (<filename>www/links</filename>)</term>
-
- <listitem>
- <para>A text-mode WWW browser, &man.links.1; can also convert
- HTML files to plain text.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>DTDs and Entities</title>
-
- <para>These are the DTDs and entity sets used by the FDP. They need to
- be installed before you can work with any of the documentation.</para>
-
- <variablelist>
- <varlistentry>
- <term>HTML DTD (<filename>textproc/html</filename>)</term>
-
- <listitem>
- <para>HTML is the markup language of choice for the World Wide
- Web, and is used throughout the FreeBSD web site.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>LinuxDoc DTD (<filename>textproc/linuxdoc</filename>)</term>
-
- <listitem>
- <para>Some FreeBSD documentation is marked up in LinuxDoc. The
- FDP is actively migrating from LinuxDoc to DocBook.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>DocBook DTD (<filename>textproc/docbook</filename>)</term>
-
- <listitem>
- <para>DocBook is designed for marking up technical documentation,
- and the FDP is migrating from LinuxDoc to DocBook. At the time
- of writing, this document and the FreeBSD Handbook are marked
- up in DocBook.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ISO 8879 entities
- (<filename>textproc/iso8879</filename>)</term>
-
- <listitem>
- <para>19 of the ISO 8879:1986 character entity sets used by many
- DTDs. Includes named mathematical symbols, additional
- characters in the 'latin' character set (accents, diacriticals,
- and so on), and greek symbols.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Stylesheets</title>
-
- <para>The stylesheets are used when converting and formatting the
- documentation for display on screen, printing, and so on.</para>
-
- <variablelist>
- <varlistentry>
- <term>Modular DocBook Stylesheets
- (<filename>textproc/dsssl-docbook-modular</filename>)</term>
-
- <listitem>
- <para>The Modular DocBook Stylesheets are used when converting
- documentation marked up in DocBook to other formats, such as
- HTML or RTF.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Optional tools</title>
-
- <para>You do not need to have any of the following installed. However,
- you may find it easier to work with the documentation if you do, and
- they may give you more flexibility in the output formats that can be
- generated.</para>
-
- <sect2>
- <title>Software</title>
-
- <variablelist>
- <varlistentry>
- <term><application>JadeTeX</application> and
- <application>teTeX</application>
- (<filename>print/jadetex</filename> and
- <filename>print/teTeX</filename>)</term>
-
- <listitem>
- <para><application>Jade</application> and
- <application>teTeX</application> are used to convert DocBook
- documents to DVI, Postscript, and PDF formats. The
- <application>JadeTeX</application> macros are needed in order to
- do this.</para>
-
- <para>If you do not intend to convert your documentation to one of
- these formats (i.e., HTML, plain text, and RTF are sufficient)
- then you do not need to install
- <application>JadeTeX</application> and
- <application>teTeX</application>. This can be a significant
- space and time saver, as <application>teTeX</application> is
- over 30MB in size.</para>
-
- <important>
- <para>If you decide to install
- <application>JadeTeX</application> and
- <application>teTeX</application> then you will need to
- configure <application>teTeX</application> after
- <application>JadeTeX</application> has been installed.
- <filename>print/jadetex/pkg-message</filename> contains
- detailed instructions explaining what you need to do.</para>
- </important>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Emacs</application> or
- <application>xemacs</application>
- (<filename>editors/emacs</filename> or
- <filename>editors/xemacs</filename>)</term>
-
- <listitem>
- <para>Both these editors include a special mode for editing
- documents marked up according to an SGML DTD. This mode
- includes commands to reduce the amount of typing you need, and
- help reduce the possibility of errors.</para>
-
- <para>You do not need to use them; any text editor can be used to
- edit marked up documents. You may find they make you more
- efficient.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>If anyone has recommendations for other software that is useful
- when manipulating SGML documents, please let Nik Clayton
- (<email>nik@FreeBSD.org</email>) know, so they can be added to this
- list.</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml
deleted file mode 100644
index 80b6315ef9..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml
+++ /dev/null
@@ -1,480 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/translations/chapter.sgml,v 1.6 2000/08/03 23:20:48 ben Exp $
--->
-
-<chapter id="translations">
- <title>Translations</title>
-
- <para>This is the FAQ for people translating the FreeBSD documentation
- (FAQ, Handbook, tutorials, man pages, and others) to different
- languages.</para>
-
- <para>It is <emphasis>very</emphasis> heavily based on the translation FAQ
- from the FreeBSD German Documentation Project, originally written by Frank
- Gr&uuml;nder <email>elwood@mc5sys.in-berlin.de</email> and translated back to
- English by Bernd Warken <email>bwarken@mayn.de</email>.</para>
-
- <para>The FAQ maintainer is Nik Clayton
- <email>nik@FreeBSD.org</email>.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Why a FAQ?</para>
- </question>
-
- <answer>
- <para>More and more people are approaching the freebsd-doc mailing
- list and volunteering to translate FreeBSD documentation to other
- languages. This FAQ aims to answer their questions so they can start
- translating documentation as quickly as possible.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What do <phrase>i18n</phrase> and <phrase>l10n</phrase>
- mean?</para>
- </question>
-
- <answer>
- <para><phrase>i18n</phrase> means
- <phrase>internationalisation</phrase> and <phrase>l10n</phrase>
- means <phrase>localisation</phrase>. They are just a convenient
- shorthand.</para>
-
- <para><phrase>i18n</phrase> can be read as &ldquo;i&rdquo; followed by
- 18 letters, followed by &ldquo;n&rdquo;. Similarly,
- <phrase>l10n</phrase> is &ldquo;l&rdquo; followed by 10 letters,
- followed by &ldquo;n&rdquo;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Is there a mailing list for translators?</para>
- </question>
-
- <answer>
- <para>Yes, <email>freebsd-translate@ngo.org.uk</email>. Subscribe by
- sending a message to
- <email>freebsd-translate-request@ngo.org.uk</email> with the word
- <literal>subscribe</literal> in the body of the message.</para>
-
- <para>You will receive a reply asking you to confirm your subscription
- (in exactly the same manner as the the FreeBSD lists at <hostid
- role="domainname">FreeBSD.org</hostid>).</para>
-
- <para>The primary language of the mailing list is English. However,
- posts in other languages will be accepted. The mailing list is not
- moderated, but you need to be a member of the list before you can
- post to it.</para>
-
- <para>The mailing list is archived, but they are not currently
- searchable. Sending the message <literal>help</literal> to
- <email>majordomo@ngo.org.uk</email> will send back instructions on
- how to access the archive.</para>
-
- <para>It is expected that the mailing list will transfer to <hostid
- role="domainname">FreeBSD.org</hostid> and therefore become
- <emphasis>official</emphasis> in the near future.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Are more translators needed?</para>
- </question>
-
- <answer>
- <para>Yes. The more people work on translation the faster it gets
- done, and the faster changes to the English documentation are
- mirrored in the translated documents.</para>
-
- <para>You do not have to be a professional translator to be able to
- help.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What languages do I need to know?</para>
- </question>
-
- <answer>
- <para>Ideally, you will have a good knowledge of written English, and
- obviously you will need to be fluent in the language you are
- translating to.</para>
-
- <para>English is not strictly necessary. For example, you could do a
- Hungarian translation of the FAQ from the Spanish
- translation.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What software do I need to know?</para>
- </question>
-
- <answer>
- <para>It is strongly recommended that you maintain a local copy of the
- FreeBSD CVS repository (at least the documentation part) either
- using <application>CTM</application> or
- <application>CVSup</application>. The "Staying current with FreeBSD"
- chapter in the Handbook explains how to use these
- applications.</para>
-
- <para>You should be comfortable using <application>CVS</application>.
- This will allow you to see what has changed between different
- versions of the files that make up the documentation.</para>
-
- <para>[XXX To Do -- write a tutorial that shows how to use CVSup to
- get just the documentation, check it out, and see what's changed
- between two arbitrary revisions]</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How do I find out who else might be translating to the same
- language?</para>
- </question>
-
- <answer>
- <para>The <ulink
- url="http://www.FreeBSD.org/docproj/translations.html">Documentation
- Project translations page</ulink> lists the translation efforts
- that are currently known about. If others are already working
- on translating documentation to your language, please don't
- duplicate their efforts. Instead, contact them to see how you can
- help.</para>
-
- <para>If no one is listed on that page as translating for your
- language, then send a message to
- <email>freebsd-doc@FreeBSD.org</email> in case someone else is
- thinking of doing a translation, but hasn't announced it yet.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>No one else is translating to my language. What do I do?</para>
- </question>
-
- <answer>
- <para>Congratulations, you have just started the &ldquo;FreeBSD
- <replaceable>your-language-here</replaceable> Documentation
- Translation Project&rdquo;. Welcome aboard.</para>
-
- <para>First, decide whether or not you've got the time to spare. Since
- you are the only person working on your language at the moment it is
- going to be your responsibility to publicise your work and
- coordinate any volunteers that might want to help you.</para>
-
- <para>Write an e-mail to the Documentation Project mailing list,
- announcing that you are going to translate the documentation, so the
- Documentation Project translations page can be maintained.</para>
-
- <para>You should subscribe to the
- <email>freebsd-translate@ngo.org.uk</email> mailing list (as
- described earlier).</para>
-
- <para>If there is already someone in your country providing FreeBSD
- mirroring services you should contact them and ask if you can
- have some webspace for your project, and possibly an e-mail
- address or mailing list services.</para>
-
- <para>Then pick a document and start translating. It is best to start
- with something fairly small&mdash;either the FAQ, or one of the
- tutorials.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I've translated some documentation, where do I send it?</para>
- </question>
-
- <answer>
- <para>That depends. If you are already working with a translation team
- (such as the Japanese team, or the German team) then they will have
- their own procedures for handling submitted documentation, and these
- will be outlined on their web pages.</para>
-
- <para>If you are the only person working on a particular language (or
- you are responsible for a translation project and want to submit
- your changes back to the FreeBSD project) then you should send your
- translation to the FreeBSD project (see the next question).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I'm the only person working on translating to this language, how
- do I submit my translation?</para>
-
- <para>or</para>
-
- <para>We're a translation team, and want to submit documentation that
- our members have translated for us?</para>
- </question>
-
- <answer>
- <para>First, make sure your translation is organised properly. This
- means that it should drop in to the existing documentation tree and
- build straight away.</para>
-
- <para>Currently, the FreeBSD documentation is stored in a top level
- directory called <filename>doc/</filename>. Directories below this
- are named according to the language code they are written in, as
- defined in ISO639 (<filename>/usr/share/misc/iso639</filename> on a
- version of FreeBSD newer than 20th January 1999).</para>
-
- <para>If your language can be encoded in different ways (for example,
- Chinese) then there should be directories below this, one for each
- encoding format you have provided.</para>
-
- <para>Finally, you should have directories for each document.</para>
-
- <para>For example, a hypothetical Swedish translation might look
- like</para>
-
- <programlisting>doc/
- sv_SE.ISO_8859-1/
- Makefile
- books/
- faq/
- Makefile
- book.sgml</programlisting>
-
- <para><literal>sv_SE.ISO_8859-1</literal> is the name of the
- translation, in
- <filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable></filename>
- form. Note the
- two Makefiles, which will be used to build the documentation.</para>
-
- <para>Use &man.tar.1; and &man.gzip.1; to compress up your
- documentation, and send it to the project.</para>
-
- <screen>&prompt.user; <userinput>cd doc</userinput>
-&prompt.user; <userinput>tar cf swedish-docs.tar sv</userinput>
-&prompt.user; <userinput>gzip -9 swedish-docs.tar</userinput></screen>
-
- <para>Put <filename>swedish-docs.tar.gz</filename> somewhere. If you
- do not have access to your own webspace (perhaps your ISP does not
- let you have any) then you can e-mail Nik Clayton
- <email>nik@FreeBSD.org</email>, and arrange to e-mail the files
- when it is convenient.</para>
-
- <para>Either way, you should use &man.send-pr.1; to submit a report
- indicating that you have submitted the documentation. It would be
- very helpful if you could get other people to look over your
- translation and double check it first, since it is unlikely that the
- person committing it will be fluent in the language.</para>
-
- <para>Someone (probably the Documentation Project Manager, currently
- Nik Clayton <email>nik@FreeBSD.org</email>) will then take your
- translation and confirm that it builds. In particular, the
- following things will be looked at:</para>
-
- <orderedlist>
- <listitem>
- <para>Do all your files use RCS strings (such as "ID")?</para>
- </listitem>
-
- <listitem>
- <para>Does <command>make all</command> in the
- <filename>sv_SE.ISO_8859-1</filename> directory work correctly?</para>
- </listitem>
-
- <listitem>
- <para>Does <command>make install</command> work correctly?</para>
- </listitem>
- </orderedlist>
-
- <para>If there are any problems then whoever is looking at the
- submission will get back to you to try and work them out.</para>
-
- <para>If there are no problems your translation will be committed
- as soon as possible.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I include language or country specific text in my
- translation?</para>
- </question>
-
- <answer>
- <para>We would prefer that you did not.</para>
-
- <para>For example, suppose that you are translating the Handbook to
- Korean, and want to include a section about retailers in Korea in
- your Handbook.</para>
-
- <para>There's no real reason why that information should not be in the
- English (or German, or Spanish, or Japanese, or &hellip;) versions
- as well. It is feasible that an English speaker in Korea might try
- and pick up a copy of FreeBSD whilst over there. It also helps
- increase FreeBSD's perceived presence around the globe, which is not
- a bad thing.</para>
-
- <para>If you have country specific information, please submit it as a
- change to the English Handbook (using &man.send-pr.1;) and then
- translate the change back to your language in the translated
- Handbook.</para>
-
- <para>Thanks.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How should language specific characters be included?</para>
-
- <para>Non-ASCII characters in the documentation should be included
- using SGML entities.</para>
-
- <para>Briefly, these look like an ampersand (&amp;), the name of the
- entity, and a semi-colon (;).</para>
-
- <para>The entity names are defined in ISO8879, which is in the ports
- tree as <filename>textproc/iso8879</filename>.</para>
-
- <para>A few examples include</para>
-
- <segmentedlist>
- <segtitle>Entity</segtitle>
-
- <segtitle>Appearance</segtitle>
-
- <segtitle>Description</segtitle>
-
- <seglistitem>
- <seg>&amp;eacute;</seg>
- <seg>&eacute;</seg>
- <seg>Small &ldquo;e&rdquo; with an acute accent</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>&amp;Eacute;</seg>
- <seg>&Eacute;</seg>
- <seg>Large &ldquo;E&rdquo; with an acute accent</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>&amp;uuml;</seg>
- <seg>&uuml;</seg>
- <seg>Small &ldquo;u&rdquo; with an umlaut</seg>
- </seglistitem>
- </segmentedlist>
-
- <para>After you have installed the iso8879 port, the files in
- <filename>/usr/local/share/sgml/iso8879</filename> contain the
- complete list.</para>
- </question>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Addressing the reader</para>
- </question>
-
- <answer>
- <para>In the English documents, the reader is addressed as
- &ldquo;you&rdquo;, there is no formal/informal distinction as there
- is in some languages.</para>
-
- <para>If you are translating to a language which does distinguish, use
- whichever form is typically used in other technical documentation in
- your language. If in doubt, use a mildly polite form.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Do I need to include any additional information in my
- translations?</para>
- </question>
-
- <answer>
- <para>Yes.</para>
-
- <para>The header of the English version of each document will look
- something like this;</para>
-
- <programlisting>&lt;!--
- The FreeBSD Documentation Project
-
- &dollar;FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/translations/chapter.sgml,v 1.5 2000/07/07 18:38:38 dannyboy Exp &dollar;
---&gt;</programlisting>
-
- <para>The exact boilerplate may change, but it will always include a
- &dollar;FreeBSD&dollar; line and the phrase <literal>The FreeBSD Documentation
- Project</literal>.
- Note that the &dollar;FreeBSD part is expanded automatically by
- CVS, so it should be empty (just
- <literal>&dollar;FreeBSD&dollar;</literal>) for new files.</para>
-
- <para>Your translated documents should include their own
- &dollar;FreeBSD&dollar; line, and change the
- <literal>FreeBSD Documentation Project</literal> line to
- <literal>The FreeBSD <replaceable>language</replaceable>
- Documentation Project</literal>.</para>
-
- <para>In addition, you should add a third line which indicates which
- revision of the English text this is based on.</para>
-
- <para>So, the Spanish version of this file might start</para>
-
- <programlisting>&lt;!--
- The FreeBSD Spanish Documentation Project
-
- &dollar;FreeBSD: doc/es_ES.ISO_8859-1/books/fdp-primer/translations/chapter.sgml,v 1.3 1999/06/24 19:12:32 jesusr Exp &dollar;
- Original revision: 1.11
---&gt;</programlisting>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml
deleted file mode 100644
index 21f3836844..0000000000
--- a/en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml
+++ /dev/null
@@ -1,318 +0,0 @@
-<!-- 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: doc/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml,v 1.10 2001/04/05 01:47:13 dd Exp $
--->
-
-<chapter id="writing-style">
- <title>Writing style</title>
-
- <para>In order to promote consistency between the myriad authors of the
- FreeBSD documentation, some guidelines have been drawn up for authors to
- follow.</para>
-
- <variablelist>
- <varlistentry>
- <term>Do not use contractions</term>
-
- <listitem>
- <para>Do not use contractions. Always spell the phrase out in full.
- &ldquo;Don't use contractions&rdquo; would be wrong.</para>
-
- <para>Avoiding contractions makes for a more formal tone, is more
- precise, and is slightly easier for translators.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Use the serial comma</term>
-
- <listitem>
- <para>In a list of items within a paragraph, separate each item from
- the others with a comma. Seperate the last item from the others with
- a comma and the word &ldquo;and&rdquo;.</para>
-
- <para>For example, look at the following:</para>
-
- <blockquote>
- <para>This is a list of one, two and three items.</para>
- </blockquote>
-
- <para>Is this a list of three items, &ldquo;one&rdquo;,
- &ldquo;two&rdquo;, and &ldquo;three&rdquo;, or a list of two items,
- &ldquo;one&rdquo; and &ldquo;two and three&rdquo;?</para>
-
- <para>It is better to be explicit and include a serial comma:</para>
-
- <blockquote>
- <para>This is a list of one, two, and three items.</para>
- </blockquote>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Avoid redundant phrases</term>
-
- <listitem>
- <para>Try not to use redundant phrases. In particular, &ldquo;the
- command&rdquo;, &ldquo;the file&rdquo;, and &ldquo;man
- command&rdquo; are probably redundant.</para>
-
- <para>These two examples show this for commands. The second example
- is preferred.</para>
-
- <informalexample>
- <para>Use the command <command>cvsup</command> to update your
- sources</para>
- </informalexample>
-
- <informalexample>
- <para>Use <command>cvsup</command> to update your sources</para>
- </informalexample>
-
- <para>These two examples show this for filenames. The second example
- is preferred.</para>
-
- <informalexample>
- <para>&hellip; in the filename
- <filename>/etc/rc.local</filename>&hellip;</para>
- </informalexample>
-
- <informalexample>
- <para>&hellip; in
- <filename>/etc/rc.local</filename>&hellip;</para>
- </informalexample>
-
- <para>These two examples show this for manual references. The second
- example is preferred (the second example uses
- <sgmltag>citerefentry</sgmltag>).</para>
-
- <informalexample>
- <para>See <command>man csh</command> for more
- information.</para>
- </informalexample>
-
- <informalexample>
- <para>See &man.csh.1;</para>
- </informalexample>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Two spaces at the end of sentences</term>
-
- <listitem>
- <para>Always use two spaces at the end of sentences, as this
- improves readability, and eases use of tools such as
- <application>emacs</application>.</para>
-
- <para>While it may be argued that a capital letter following
- a period denotes a new sentence, this is not the case, especially
- in name usage. <quote>Jordan K. Hubbard</quote> is a good
- example; it has a capital <literal>H</literal> following a
- period and a space, and there certainly isn't a new sentence
- there.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>For more information about writing style, see <ulink
- url="http://www.bartleby.com/141/index.html">Elements of
- Style</ulink>, by William Strunk.</para>
-
- <sect1>
- <title>Style guide</title>
-
- <para>To keep the source for the Handbook consistent when many different
- people are editing it, please follow these style conventions.</para>
-
- <sect2>
- <title>Letter case</title>
-
- <para>Tags are entered in lower case, <literal>&lt;para&gt;</literal>,
- <emphasis>not</emphasis> <literal>&lt;PARA&gt;</literal>.</para>
-
- <para>Text that appears in SGML contexts is generally written in upper
- case, <literal>&lt!ENTITY&hellip;&gt;</literal>, and
- <literal>&lt;!DOCTYPE&hellip;&gt;</literal>, <emphasis>not</emphasis>
- <literal>&lt;!entity&hellip;&gt;</literal> and
- <literal>&lt;!doctype&hellip;&gt;</literal>.</para>
- </sect2>
-
- <sect2>
- <title>Indentation</title>
-
- <para>Each file starts with indentation set at column 0,
- <emphasis>regardless</emphasis> of the indentation level of the file
- which might contain this one.</para>
-
- <para>Every start tag increases the indentation level by 2 spaces, and
- every end tag decreases the indentation level by 2 spaces. Replace
- as many leading spaces with tabs as appropriate. Do not use
- spaces in front of tabs, and do not add extraneous whitespace at the
- end of a line. Content
- within elements should be indented by two spaces if the content runs
- over more than one line.</para>
-
- <para>For example, the source for this section looks something
- like:</para>
-
- <programlisting><![ CDATA [+--- This is column 0
-V
-<chapter>
- <title>...</title>
-
- <sect1>
- <title>...</title>
-
- <sect2>
- <title>Indentation</title>
-
- <para>Each file starts with indentation set at column 0,
- <emphasis>regardless</emphasis> of the indentation level of the file
- which might contain this one.</para>
-
- <para>Every start tag increases the indentation level by 2 spaces, and
- every end tag decreases the indentation level by 2 spaces. Content
- within elements should be indented by two spaces if the content runs
- over more than one line.</para>
-
- ...
- </sect2>
- </sect1>
-</chapter>]]></programlisting>
-
- <para>If you use <application>Emacs</application> or
- <application>Xemacs</application> to edit the files then
- <literal>sgml-mode</literal> should be loaded automatically, and the
- Emacs local variables at the bottom of each file should enforce these
- styles.</para>
- </sect2>
-
- <sect2>
- <title>Tag style</title>
-
- <sect3>
- <title>Tag spacing</title>
-
- <para>Tags that start at the same indent as a previous tag
- should be separated by a blank line, and those that are not
- at the same indent as a previous tag should not:</para>
-
- <informalexample>
- <programlisting><![ CDATA [<article>
- <artheader>
- <title>NIS</title>
-
- <pubdate>October 1999</pubdata>
-
- <abstract>
- <para>...
- ...
- ...</para>
- </abstract>
- </artheader>
-
- <sect1>
- <title>...</title>
-
- <para>...</para>
- </sect1>
-
- <sect1>
- <title>...</title>
-
- <para>...</para>
- </sect1>
-</article>]]></programlisting>
- </informalexample>
- </sect3>
-
- <sect3>
- <title>Separating tags</title>
-
- <para>Tags like <sgmltag>itemizedlist</sgmltag> which will
- always have further tags inside them, and in fact don't take
- character data themselves, are always on a line by
- themselves.</para>
-
- <para>Tags like <sgmltag>para</sgmltag> and
- <sgmltag>term</sgmltag> don't need other tags to contain
- normal character data, and their contents begin immediately
- after the tag, <emphasis>on the same line</emphasis>.</para>
-
- <para>The same applies to when these two types of tags
- close.</para>
-
- <para>This leads to an obvious problem when mixing these
- tags.</para>
-
- <para>When a starting tag which cannot contain character data
- directly follows a tag of the type that requires other tags
- within it to use character data, they are on separate lines.
- The second tag should be properly indented.</para>
-
- <para>When a tag which can contain character data closes
- directly after a tag which cannot contain character data
- closes, they co-exist on the same line.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>White space changes</title>
-
- <para>When committing changes, <emphasis>do not commit changes to the
- content at the same time as changes to the
- formatting</emphasis>.</para>
-
- <para>This is so that the teams that convert the Handbook to other
- languages can quickly see what content has actually changed in your
- commit, without having to decide whether a line has changed because of
- the content, or just because it has been refilled.</para>
-
- <para>For example, if you have added two sentences to a paragraph, such
- that the line lengths on the paragraph now go over 80 columns, first
- commit your change with the too-long line lengths. Then fix the line
- wrapping, and commit this second change. In the commit message for
- the second change, be sure to indicate that this is a whitespace-only
- change, and that the translation team can ignore it.</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/Makefile b/en_US.ISO8859-1/books/handbook/Makefile
deleted file mode 100644
index ab5f06952d..0000000000
--- a/en_US.ISO8859-1/books/handbook/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/Makefile,v 1.30 2000/12/01 00:58:11 jim Exp $
-#
-# Build the FreeBSD Handbook.
-#
-
-MAINTAINER=nik@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-SRCS+= advanced-networking/chapter.sgml
-SRCS+= backups/chapter.sgml
-SRCS+= basics/chapter.sgml
-SRCS+= bibliography/chapter.sgml
-SRCS+= boot/chapter.sgml
-SRCS+= contrib/chapter.sgml
-SRCS+= cutting-edge/chapter.sgml
-SRCS+= disks/chapter.sgml
-SRCS+= eresources/chapter.sgml
-SRCS+= hw/chapter.sgml
-SRCS+= install/chapter.sgml
-SRCS+= internals/chapter.sgml
-SRCS+= introduction/chapter.sgml
-SRCS+= kernelconfig/chapter.sgml
-SRCS+= kerneldebug/chapter.sgml
-SRCS+= kernelopts/chapter.sgml
-SRCS+= l10n/chapter.sgml
-SRCS+= linuxemu/chapter.sgml
-SRCS+= mail/chapter.sgml
-SRCS+= mirrors/chapter.sgml
-SRCS+= pgpkeys/chapter.sgml
-SRCS+= policies/chapter.sgml
-SRCS+= ppp-and-slip/chapter.sgml
-SRCS+= printing/chapter.sgml
-SRCS+= security/chapter.sgml
-SRCS+= serialcomms/chapter.sgml
-SRCS+= sound/chapter.sgml
-SRCS+= staff/chapter.sgml
-SRCS+= users/chapter.sgml
-SRCS+= x11/chapter.sgml
-SRCS+= ports/chapter.sgml
-
-# Entities
-SRCS+= authors.ent
-SRCS+= chapters.ent
-SRCS+= mailing-lists.ent
-
-SYMLINKS= ${DESTDIR} index.html handbook.html
-
-# XXX The Handbook build currently overflows some internal, hardcoded
-# limits in pdftex. Until we split the Handbook up, build the PDF
-# version using ps2pdf instead of pdftex.
-
-book.tex-pdf:
- touch book.tex-pdf
-
-book.pdf: book.ps
- ps2pdf book.ps book.pdf
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
deleted file mode 100644
index 6ee7fe4a78..0000000000
--- a/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ /dev/null
@@ -1,3366 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.37 2001/04/14 00:58:57 murray Exp $
--->
-
-<chapter id="advanced-networking">
- <title>Advanced Networking</title>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>The following chapter will cover some of the more frequently
- used network services on UNIX systems. This, of course, will
- pertain to configuring said services on your FreeBSD system.</para>
- </sect1>
-
- <sect1 id="routing">
- <title>Gateways and Routes</title>
-
- <para><emphasis>Contributed by &a.gryphon;. 6 October
- 1995.</emphasis></para>
-
- <para>For one machine to be able to find another, there must be a
- mechanism in place to describe how to get from one to the other. This is
- called Routing. A <quote>route</quote> is a defined pair of addresses: a
- <quote>destination</quote> and a <quote>gateway</quote>. The pair
- indicates that if you are trying to get to this
- <emphasis>destination</emphasis>, send along through this
- <emphasis>gateway</emphasis>. There are three types of destinations:
- individual hosts, subnets, and <quote>default</quote>. The
- <quote>default route</quote> is used if none of the other routes apply.
- We will talk a little bit more about default routes later on. There are
- also three types of gateways: individual hosts, interfaces (also called
- <quote>links</quote>), and ethernet hardware addresses.</para>
-
- <sect2>
- <title>An example</title>
-
- <para>To illustrate different aspects of routing, we will use the
- following example which is the output of the command <command>netstat
- -r</command>:</para>
-
- <screen>Destination Gateway Flags Refs Use Netif Expire
-
-default outside-gw UGSc 37 418 ppp0
-localhost localhost UH 0 181 lo0
-test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
-10.20.30.255 link#1 UHLW 1 2421
-foobar.com link#1 UC 0 0
-host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
-host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
-host2.foobar.com link#1 UC 0 0
-224 link#1 UC 0 0</screen>
-
- <para>The first two lines specify the default route (which we will cover
- in the next section) and the <hostid>localhost</hostid> route.</para>
-
- <para>The interface (<literal>Netif</literal> column) that it specifies
- to use for <literal>localhost</literal> is
- <devicename>lo0</devicename>, also known as the loopback device. This
- says to keep all traffic for this destination internal, rather than
- sending it out over the LAN, since it will only end up back where it
- started anyway.</para>
-
- <para>The next thing that stands out are the <hostid
- role="mac">0:e0:...</hostid> addresses. These are ethernet hardware
- addresses. FreeBSD will automatically identify any hosts
- (<hostid>test0</hostid> in the example) on the local ethernet and add
- a route for that host, directly to it over the ethernet interface,
- <devicename>ed0</devicename>. There is also a timeout
- (<literal>Expire</literal> column) associated with this type of route,
- which is used if we fail to hear from the host in a specific amount of
- time. In this case the route will be automatically deleted. These
- hosts are identified using a mechanism known as RIP (Routing
- Information Protocol), which figures out routes to local hosts based
- upon a shortest path determination.</para>
-
- <para>FreeBSD will also add subnet routes for the local subnet (<hostid
- role="ipaddr">10.20.30.255</hostid> is the broadcast address for the
- subnet <hostid role="ipaddr">10.20.30</hostid>, and <hostid
- role="domainname">foobar.com</hostid> is the domain name associated
- with that subnet). The designation <literal>link#1</literal> refers
- to the first ethernet card in the machine. You will notice no
- additional interface is specified for those.</para>
-
- <para>Both of these groups (local network hosts and local subnets) have
- their routes automatically configured by a daemon called
- <command>routed</command>. If this is not run, then only routes which
- are statically defined (ie. entered explicitly) will exist.</para>
-
- <para>The <literal>host1</literal> line refers to our host, which it
- knows by ethernet address. Since we are the sending host, FreeBSD
- knows to use the loopback interface (<devicename>lo0</devicename>)
- rather than sending it out over the ethernet interface.</para>
-
- <para>The two <literal>host2</literal> lines are an example of what
- happens when we use an ifconfig alias (see the section of ethernet for
- reasons why we would do this). The <literal>=&gt;</literal> symbol
- after the <devicename>lo0</devicename> interface says that not only
- are we using the loopback (since this is address also refers to the
- local host), but specifically it is an alias. Such routes only show
- up on the host that supports the alias; all other hosts on the local
- network will simply have a <literal>link#1</literal> line for
- such.</para>
-
- <para>The final line (destination subnet <literal>224</literal>) deals
- with MultiCasting, which will be covered in a another section.</para>
-
- <para>The other column that we should talk about are the
- <literal>Flags</literal>. Each route has different attributes that
- are described in the column. Below is a short table of some of these
- flags and their meanings:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>U</entry>
- <entry>Up: The route is active.</entry>
- </row>
-
- <row>
- <entry>H</entry>
- <entry>Host: The route destination is a single host.</entry>
- </row>
-
- <row>
- <entry>G</entry>
- <entry>Gateway: Send anything for this destination on to this
- remote system, which will figure out from there where to send
- it.</entry>
- </row>
-
- <row>
- <entry>S</entry>
- <entry>Static: This route was configured manually, not
- automatically generated by the system.</entry>
- </row>
-
- <row>
- <entry>C</entry>
- <entry>Clone: Generates a new route based upon this route for
- machines we connect to. This type of route is normally used
- for local networks.</entry>
- </row>
-
- <row>
- <entry>W</entry>
- <entry>WasCloned: Indicated a route that was auto-configured
- based upon a local area network (Clone) route.</entry>
- </row>
-
- <row>
- <entry>L</entry>
- <entry>Link: Route involves references to ethernet
- hardware.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
- <title>Default routes</title>
-
- <para>When the local system needs to make a connection to remote host,
- it checks the routing table to determine if a known path exists. If
- the remote host falls into a subnet that we know how to reach (Cloned
- routes), then the system checks to see if it can connect along that
- interface.</para>
-
- <para>If all known paths fail, the system has one last option: the
- <quote>default</quote> route. This route is a special type of gateway
- route (usually the only one present in the system), and is always
- marked with a <literal>c</literal> in the flags field. For hosts on a
- local area network, this gateway is set to whatever machine has a
- direct connection to the outside world (whether via PPP link, or your
- hardware device attached to a dedicated data line).</para>
-
- <para>If you are configuring the default route for a machine which
- itself is functioning as the gateway to the outside world, then the
- default route will be the gateway machine at your Internet Service
- Provider's (ISP) site.</para>
-
- <para>Let us look at an example of default routes. This is a common
- configuration:</para>
-
- <literallayout>
-[Local2] &lt;--ether--&gt; [Local1] &lt;--PPP--&gt; [ISP-Serv] &lt;--ether--&gt; [T1-GW]
- </literallayout>
-
- <para>The hosts <hostid>Local1</hostid> and <hostid>Local2</hostid> are
- at your site, with the formed being your PPP connection to your ISP's
- Terminal Server. Your ISP has a local network at their site, which
- has, among other things, the server where you connect and a hardware
- device (T1-GW) attached to the ISP's Internet feed.</para>
-
- <para>The default routes for each of your machines will be:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>host</entry>
- <entry>default gateway</entry>
- <entry>interface</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Local2</entry>
- <entry>Local1</entry>
- <entry>ethernet</entry>
- </row>
-
- <row>
- <entry>Local1</entry>
- <entry>T1-GW</entry>
- <entry>PPP</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>A common question is <quote>Why (or how) would we set the T1-GW to
- be the default gateway for Local1, rather than the ISP server it is
- connected to?</quote>.</para>
-
- <para>Remember, since the PPP interface is using an address on the ISP's
- local network for your side of the connection, routes for any other
- machines on the ISP's local network will be automatically generated.
- Hence, you will already know how to reach the T1-GW machine, so there
- is no need for the intermediate step of sending traffic to the ISP
- server.</para>
-
- <para>As a final note, it is common to use the address <hostid
- role="ipaddr">...1</hostid> as the gateway address for your local
- network. So (using the same example), if your local class-C address
- space was <hostid role="ipaddr">10.20.30</hostid> and your ISP was
- using <hostid role="ipaddr">10.9.9</hostid> then the default routes
- would be:</para>
-
- <literallayout>
-Local2 (10.20.30.2) --&gt; Local1 (10.20.30.1)
-Local1 (10.20.30.1, 10.9.9.30) --&gt; T1-GW (10.9.9.1)
- </literallayout>
- </sect2>
-
- <sect2>
- <title>Dual homed hosts</title>
-
- <para>There is one other type of configuration that we should cover, and
- that is a host that sits on two different networks. Technically, any
- machine functioning as a gateway (in the example above, using a PPP
- connection) counts as a dual-homed host. But the term is really only
- used to refer to a machine that sits on two local-area
- networks.</para>
-
- <para>In one case, the machine as two ethernet cards, each having an
- address on the separate subnets. Alternately, the machine may only
- have one ethernet card, and be using ifconfig aliasing. The former is
- used if two physically separate ethernet networks are in use, the
- latter if there is one physical network segment, but two logically
- separate subnets.</para>
-
- <para>Either way, routing tables are set up so that each subnet knows
- that this machine is the defined gateway (inbound route) to the other
- subnet. This configuration, with the machine acting as a Bridge
- between the two subnets, is often used when we need to implement
- packet filtering or firewall security in either or both
- directions.</para>
- </sect2>
-
- <sect2>
- <title>Routing propagation</title>
-
- <para>We have already talked about how we define our routes to the
- outside world, but not about how the outside world finds us.</para>
-
- <para>We already know that routing tables can be set up so that all
- traffic for a particular address space (in our examples, a class-C
- subnet) can be sent to a particular host on that network, which will
- forward the packets inbound.</para>
-
- <para>When you get an address space assigned to your site, your service
- provider will set up their routing tables so that all traffic for your
- subnet will be sent down your PPP link to your site. But how do sites
- across the country know to send to your ISP?</para>
-
- <para>There is a system (much like the distributed DNS information) that
- keeps track of all assigned address-spaces, and defines their point of
- connection to the Internet Backbone. The <quote>Backbone</quote> are
- the main trunk lines that carry Internet traffic across the country,
- and around the world. Each backbone machine has a copy of a master
- set of tables, which direct traffic for a particular network to a
- specific backbone carrier, and from there down the chain of service
- providers until it reaches your network.</para>
-
- <para>It is the task of your service provider to advertise to the
- backbone sites that they are the point of connection (and thus the
- path inward) for your site. This is known as route
- propagation.</para>
- </sect2>
-
- <sect2>
- <title>Troubleshooting</title>
-
- <para>Sometimes, there is a problem with routing propagation, and some
- sites are unable to connect to you. Perhaps the most useful command
- for trying to figure out where a routing is breaking down is the
- &man.traceroute.8; command. It is equally useful if you cannot seem
- to make a connection to a remote machine (i.e. &man.ping.8;
- fails).</para>
-
- <para>The &man.traceroute.8; command is run with the name of the remote
- host you are trying to connect to. It will show the gateway hosts
- along the path of the attempt, eventually either reaching the target
- host, or terminating because of a lack of connection.</para>
-
- <para>For more information, see the manual page for
- &man.traceroute.8;.</para>
- </sect2>
- </sect1>
-
- <sect1 id="bridging">
- <title>Bridging</title>
-
- <para><emphasis>Written by Steve Peterson
- <email>steve@zpfe.com</email></emphasis>.</para>
-
- <sect2>
- <title>Introduction</title>
-
- <para>It is sometimes useful to divide one physical network (i.e., an
- Ethernet segment) into two separate network segments, without having
- to create IP subnets and use a router to connect the segments
- together. A device that connects two networks together in this
- fashion is called a bridge. and a FreeBSD system with two network
- interface cards can act as a bridge.</para>
-
- <para>The bridge works by learning the MAC layer addresses (i.e.,
- Ethernet addresses) of the devices on each of its network interfaces.
- It forwards traffic between two networks only when its source and
- destination are on different networks.</para>
-
- <para>In many respects, a bridge is like an Ethernet switch with very
- few ports.</para>
- </sect2>
-
- <sect2>
- <title>Situations where bridging is appropriate</title>
-
- <para>There are two common situations in which a bridge is used
- today.</para>
-
- <sect3>
- <title>High traffic on a segment</title>
-
- <para>Situation one is where your physical network segment is
- overloaded with traffic, but you don't want for whatever reason to
- subnet the network and interconnect the subnets with a
- router.</para>
-
- <para>Let's consider an example of a newspaper where the Editorial and
- Production departments are on the same subnetwork. The Editorial
- users all use server A for file service, and the Production users
- are on server B. An Ethernet is used to connect all users together,
- and high loads on the network are slowing things down.</para>
-
- <para>If the Editorial users could be segregated on one network
- segment and the Production users on another, the two network
- segments could be connected with a bridge. Only the network traffic
- destined for interfaces on the "other" side of the bridge would be
- sent to the other network, reducing congestion on each network
- segment.</para>
- </sect3>
-
- <sect3>
- <title>Filtering/traffic shaping firewall</title>
-
- <para>The second common situation is where firewall functionality is
- needed without IP Masquerading (NAT).</para>
-
- <para>An example is a small company that is connected via DSL or ISDN
- to their ISP. They have a 13 address global IP allocation for their
- ISP and have 10 PCs on their network. In this situation, using a
- router-based firewall is difficult because of subnetting
- issues.</para>
-
- <para>A bridge-based firewall can be configured and dropped into the
- path just downstream of their DSL/ISDN router without any IP
- numbering issues.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Configuring a bridge</title>
-
- <sect3>
- <title>Network interface card selection</title>
-
- <para>A bridge requires at least two network cards to function.
- Unfortunately, not all network interface cards as of FreeBSD 4.0
- support bridging. Read &man.bridge.4; for details on the cards that
- are supported.</para>
-
- <para>Install and test the two network cards before continuing.</para>
- </sect3>
-
- <sect3>
- <title>Kernel configuration changes</title>
-
- <para>To enable kernel support for bridging, add the</para>
-
- <programlisting>options BRIDGE</programlisting>
-
- <para>statement to your kernel configuration file, and rebuild your
- kernel.</para>
- </sect3>
-
- <sect3>
- <title>Firewall support</title>
-
- <para>If you are planning to use the bridge as a firewall, you will
- need to add the IPFIREWALL option as well. Read <xref
- linkend="firewalls"> for general information on configuring the
- bridge as a firewall.</para>
-
- <para>If you need to allow non-IP packets (such as ARP) to flow
- through the bridge, there is an undocumented firewall option that
- must be set. This option is
- <literal>IPFIREWALL_DEFAULT_TO_ACCEPT</literal>. Note that this
- changes the default rule for the firewall to accept any packet.
- Make sure you know how this changes the meaning of your ruleset
- before you set it.</para>
- </sect3>
-
- <sect3>
- <title>Traffic shaping support</title>
-
- <para>If you want to use the bridge as a traffic shaper, you will need
- to add the <literal>DUMMYNET</literal> option to your kernel
- configuration. Read &man.dummynet.4; for further
- information.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Enabling the bridge</title>
-
- <para>Add the line</para>
-
- <programlisting>net.link.ether.bridge=1</programlisting>
-
- <para>to <filename>/etc/sysctl.conf</filename> to enable the bridge at
- runtime. If you want the bridged packets to be filtered by ipfw, you
- should also add</para>
-
- <programlisting>net.link.ether.bridge_ipfw=1</programlisting>
-
- <para>as well.</para>
- </sect2>
-
- <sect2>
- <title>Performance</title>
-
- <para>My bridge/firewall is a Pentium 90 with one 3Com 3C900B and one
- 3C905B. The protected side of the network runs at 10mbps half duplex
- and the connection between the bridge and my router (a Cisco 675) runs
- at 100mbps full duplex. With no filtering enabled, I've found that
- the bridge adds about 0.4 milliseconds of latency to pings from the
- protected 10mbps network to the Cisco 675.</para>
- </sect2>
-
- <sect2>
- <title>Other information</title>
-
- <para>If you want to be able to telnet into the bridge from the network,
- it is OK to assign one of the network cards an IP address. The
- consensus is that assigning both cards an address is a bad
- idea.</para>
-
- <para>If you have multiple bridges on your network, there cannot be more
- than one path between any two workstations. Technically, this means
- that there is no support for spanning tree link management.</para>
- </sect2>
- </sect1>
-
- <sect1 id="nfs">
- <title>NFS</title>
-
- <para><emphasis>Written by &a.unfurl;, 4 March 2000.</emphasis></para>
-
- <para>Among the many different file systems that FreeBSD supports is
- a very unique type, the Network File System or NFS. NFS allows you
- to share directories and files on one machine with one or more other
- machines via the network they are attached to. Using NFS, users and
- programs can access files on remote systems as if they were local
- files.</para>
-
- <para>NFS has several benefits:</para>
-
- <itemizedlist>
- <listitem>
- <para>Local workstations dont need as much disk space because
- commonly used data can be stored on a single machine and still
- remain accessible to everyone on the network.</para>
- </listitem>
-
- <listitem>
- <para>There is no need for users to have unique home directories
- on every machine on your network. Once they have an established
- directory that is available via NFS it can be accessed from
- anywhere.</para>
- </listitem>
-
- <listitem>
- <para>Storage devices such as floppies and CD-ROM drives can be
- used by other machines on the network eliminating the need for
- extra hardware.</para>
- </listitem>
- </itemizedlist>
-
- <sect2>
- <title>How It Works</title>
-
- <para> NFS is composed of two sides &ndash; a client side and a
- server side. Think of it as a want/have relationship. The client
- <emphasis>wants</emphasis> the data that the server side
- <emphasis>has</emphasis>. The server shares its data with the
- client. In order for this system to function properly a few
- processes have to be configured and running properly.</para>
-
- <para>The server has to be running the following daemons:</para>
-
- <itemizedlist>
- <listitem>
- <para><command>nfsd</command> - The NFS Daemon which services
- requests from NFS clients.</para>
- </listitem>
-
- <listitem>
- <para><command>mountd</command> - The NFS Mount Daemon which
- actually carries out requests that nfsd passes on to
- it.</para>
- </listitem>
-
- <listitem>
- <para><command>portmap</command> - The portmapper daemon which
- allows NFS clients to find out which port the NFS server is
- using.</para>
- </listitem>
- </itemizedlist>
-
- <para>The client side only needs to run a single daemon:</para>
-
- <itemizedlist>
- <listitem>
- <para><command>nfsiod</command> - The NFS async I/O Daemon which
- services requests from its NFS server.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Configuring NFS</title>
-
- <para>Luckily for us, on a FreeBSD system this setup is a snap. The
- processes that need to be running can all be run at boot time with
- a few modifications to your <filename>/etc/rc.conf</filename>
- file.</para>
-
- <para>On the NFS server make sure you have:</para>
-
- <programlisting>portmap_enable="YES"
-nfs_server_enable="YES"
-nfs_server_flags="-u -t -n 4"
-mountd_flags="-r"</programlisting>
-
- <para><command>mountd</command> is automatically run whenever the
- NFS server is enabled. The <option>-u</option> and
- <option>-t</option> flags to <command>nfsd</command> tell it to
- serve UDP and TCP clients. The <option>-n 4</option> flag tells
- <command>nfsd</command> to start 4 copies of itself.</para>
-
- <para>On the client, make sure you have:</para>
-
- <programlisting>nfs_client_enable="YES"
-nfs_client_flags="-n 4"</programlisting>
-
- <para>Like <command>nfsd</command>, the <option>-n 4</option> tells
- <command>nfsiod</command> to start 4 copies of itself.</para>
-
- <para>The last configuration step requires that you create a file
- called <filename>/etc/exports</filename>. The exports file
- specifies which file systems on your server will be shared
- (a.k.a., <quote>exported</quote>) and with what clients they will
- be shared. Each line in the file specifies a file system to be
- shared. There are a handful of options that can be used in this
- file but only a few will be mentioned here. You can find out
- about the rest in the &man.exports.5; man page.</para>
-
- <para>Here are a few example <filename>/etc/exports</filename>
- entries:</para>
-
- <para>The following line exports <filename>/cdrom</filename> to
- three silly machines that have the same domain name as the server
- (hence the lack of a domain name for each) or have entries in your
- <filename>/etc/hosts</filename> file. The <option>-ro</option>
- flag makes the shared file system read-only. With this flag, the
- remote system will not be able to make any changes to the the
- shared file system.</para>
-
- <programlisting>/cdrom -ro moe larry curly</programlisting>
-
- <para>The following line exports <filename>/home</filename> to three
- hosts by IP address. This is a useful setup if you have a
- private network but do not have DNS running. The
- <option>-alldirs</option> flag allows all the directories below
- the specified file system to be exported as well.</para>
-
- <programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
-
- <para>The following line exports <filename>/a</filename> to two
- machines that have different domain names than the server. The
- <option>-maproot=0</option> flag allows
- the root user on the remote system to write to the shared
- file system as root. Without the -maproot=0 flag even if
- someone has root access on the remote system they won't
- be able to modify files on the shared file system.</para>
-
- <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting>
-
- <para>In order for a client to share an exported file system it must
- have permission to do so. Make sure your client is listed in your
- <filename>/etc/exports</filename> file.</para>
-
- <para>Now that you have made all these changes you can just reboot
- and let FreeBSD start everything for you at boot time or you can
- run the following commands as root:</para>
-
- <para>On the NFS server:</para>
-
- <screen>&prompt.root; <userinput>portmap</userinput>
-&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
-&prompt.root; <userinput>mountd -r</userinput></screen>
-
- <para>On the NFS client:</para>
-
- <screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
-
- <para>Now you should be ready to actually mount a remote file
- system. This can be done one of two ways. In these examples the
- server's name will be <literal>server</literal> and the client's
- name will be <literal>client</literal>. If you just want to
- temporarily mount a remote file system or just want to test out
- your config you can run a command like this as root on the
- client:</para>
-
- <screen>&prompt.root; <userinput>mount server:/home /mnt</userinput></screen>
-
- <para>This will mount <filename>/home</filename> on the server on
- <filename>/mnt</filename> on the client. If everything is setup
- correctly you should be able to go into /mnt on the client and see
- all the files that are on the server.</para>
-
- <para>If you want to permanently (each time you reboot) mount a
- remote file system you need to add it to your
- <filename>/etc/fstab</filename> file. Here is an example
- line:</para>
-
- <programlisting>server:/home /mnt nfs rw 0 0</programlisting>
-
- <para>Read the &man.fstab.5; man page for more options.</para>
- </sect2>
-
- <sect2>
- <title>Practical Uses</title>
-
- <para>There are many very cool uses for NFS. Some of the more common
- ones are listed below.</para>
-
- <itemizedlist>
- <listitem>
- <para>Have several machines on a network and share a CD-ROM or
- floppy drive among them. This is cheaper and often more
- convenient.</para>
- </listitem>
-
- <listitem>
- <para>With so many machines on a network, it gets old having your
- personal files strewn all over the place. You can have a
- central NFS server that houses all user home directories and
- shares them with the rest of the machines on the LAN, so no
- matter where you log in you will have the same home
- directory.</para>
- </listitem>
-
- <listitem>
- <para>When you get to reinstalling FreeBSD on one of your
- machines, NFS is the way to go! Just pop your distribution
- CD-ROM into your file server and away you go!</para>
- </listitem>
-
- <listitem>
- <para>Have a common <filename>/usr/ports/distfiles</filename>
- directory that all your machines share. That way, when you go
- to install a port that you've already installed on a different
- machine, you do not have to download the source all over
- again!</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Problems integrating with other systems</title>
-
- <para><emphasis>Contributed by &a.jlind;.</emphasis></para>
-
- <para>Certain Ethernet adapters for ISA PC systems have limitations
- which can lead to serious network problems, particularly with NFS.
- This difficulty is not specific to FreeBSD, but FreeBSD systems
- are affected by it.</para>
-
- <para>The problem nearly always occurs when (FreeBSD) PC systems are
- networked with high-performance workstations, such as those made
- by Silicon Graphics, Inc., and Sun Microsystems, Inc. The NFS
- mount will work fine, and some operations may succeed, but
- suddenly the server will seem to become unresponsive to the
- client, even though requests to and from other systems continue to
- be processed. This happens to the client system, whether the
- client is the FreeBSD system or the workstation. On many systems,
- there is no way to shut down the client gracefully once this
- problem has manifested itself. The only solution is often to
- reset the client, because the NFS situation cannot be
- resolved.</para>
-
- <para>Though the <quote>correct</quote> solution is to get a higher
- performance and capacity Ethernet adapter for the FreeBSD system,
- there is a simple workaround that will allow satisfactory
- operation. If the FreeBSD system is the
- <emphasis>server</emphasis>, include the option
- <option>-w=1024</option> on the mount from the client. If the
- FreeBSD system is the <emphasis>client</emphasis>, then mount the
- NFS file system with the option <option>-r=1024</option>. These
- options may be specified using the fourth field of the
- <filename>fstab</filename> entry on the client for automatic
- mounts, or by using the <option>-o</option> parameter of the mount
- command for manual mounts.</para>
-
- <para>It should be noted that there is a different problem,
- sometimes mistaken for this one, when the NFS servers and clients
- are on different networks. If that is the case, make
- <emphasis>certain</emphasis> that your routers are routing the
- necessary UDP information, or you will not get anywhere, no matter
- what else you are doing.</para>
-
- <para>In the following examples, <hostid>fastws</hostid> is the host
- (interface) name of a high-performance workstation, and
- <hostid>freebox</hostid> is the host (interface) name of a FreeBSD
- system with a lower-performance Ethernet adapter. Also,
- <filename>/sharedfs</filename> will be the exported NFS
- filesystem (see <command>man exports</command>), and
- <filename>/project</filename> will be the mount point on the
- client for the exported file system. In all cases, note that
- additional options, such as <option>hard</option> or
- <option>soft</option> and <option>bg</option> may be desirable in
- your application.</para>
-
- <para>Examples for the FreeBSD system (<hostid>freebox</hostid>) as
- the client: in <filename>/etc/fstab</filename> on freebox:</para>
-
- <programlisting>fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting>
-
- <para>As a manual mount command on <hostid>freebox</hostid>:</para>
-
- <screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen>
-
- <para>Examples for the FreeBSD system as the server: in
- <filename>/etc/fstab</filename> on <hostid>fastws</hostid>:</para>
-
- <programlisting>freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting>
-
- <para>As a manual mount command on <hostid>fastws</hostid>:</para>
-
- <screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen>
-
- <para>Nearly any 16-bit Ethernet adapter will allow operation
- without the above restrictions on the read or write size.</para>
-
- <para>For anyone who cares, here is what happens when the failure
- occurs, which also explains why it is unrecoverable. NFS
- typically works with a <quote>block</quote> size of 8k (though it
- may do fragments of smaller sizes). Since the maximum Ethernet
- packet is around 1500 bytes, the NFS <quote>block</quote> gets
- split into multiple Ethernet packets, even though it is still a
- single unit to the upper-level code, and must be received,
- assembled, and <emphasis>acknowledged</emphasis> as a unit. The
- high-performance workstations can pump out the packets which
- comprise the NFS unit one right after the other, just as close
- together as the standard allows. On the smaller, lower capacity
- cards, the later packets overrun the earlier packets of the same
- unit before they can be transferred to the host and the unit as a
- whole cannot be reconstructed or acknowledged. As a result, the
- workstation will time out and try again, but it will try again
- with the entire 8K unit, and the process will be repeated, ad
- infinitum.</para>
-
- <para>By keeping the unit size below the Ethernet packet size
- limitation, we ensure that any complete Ethernet packet received
- can be acknowledged individually, avoiding the deadlock
- situation.</para>
-
- <para>Overruns may still occur when a high-performance workstations
- is slamming data out to a PC system, but with the better cards,
- such overruns are not guaranteed on NFS <quote>units</quote>. When
- an overrun occurs, the units affected will be retransmitted, and
- there will be a fair chance that they will be received, assembled,
- and acknowledged.</para>
- </sect2>
- </sect1>
-
- <sect1 id="diskless">
- <title>Diskless Operation</title>
-
- <para><emphasis>Contributed by &a.martin;.</emphasis></para>
-
- <para><filename>netboot.com</filename>/<filename>netboot.rom</filename>
- allow you to boot your FreeBSD machine over the network and run FreeBSD
- without having a disk on your client. Under 2.0 it is now possible to
- have local swap. Swapping over NFS is also still supported.</para>
-
- <para>Supported Ethernet cards include: Western Digital/SMC 8003, 8013,
- 8216 and compatibles; NE1000/NE2000 and compatibles (requires
- recompile)</para>
-
- <sect2>
- <title>Setup Instructions</title>
-
- <procedure>
- <step>
- <para>Find a machine that will be your server. This machine will
- require enough disk space to hold the FreeBSD 2.0 binaries and
- have bootp, tftp and NFS services available. Tested
- machines:</para>
-
- <itemizedlist>
- <listitem>
- <para>HP9000/8xx running HP-UX 9.04 or later (pre 9.04 doesn't
- work)</para>
- </listitem>
-
- <listitem>
- <para>Sun/Solaris 2.3. (you may need to get bootp)</para>
- </listitem>
- </itemizedlist>
- </step>
-
- <step>
- <para>Set up a bootp server to provide the client with IP, gateway,
- netmask.</para>
-
- <programlisting>diskless:\
- :ht=ether:\
- :ha=0000c01f848a:\
- :sm=255.255.255.0:\
- :hn:\
- :ds=192.1.2.3:\
- :ip=192.1.2.4:\
- :gw=192.1.2.5:\
- :vm=rfc1048:</programlisting>
- </step>
-
- <step>
- <para>Set up a TFTP server (on same machine as bootp server) to
- provide booting information to client. The name of this file is
- <filename>cfg.<replaceable>X.X.X.X</replaceable></filename> (or
- <filename>/tftpboot/cfg.<replaceable>X.X.X.X</replaceable></filename>,
- it will try both) where <replaceable>X.X.X.X</replaceable> is the
- IP address of the client. The contents of this file can be any
- valid netboot commands. Under 2.0, netboot has the following
- commands:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>help</entry>
- <entry>print help list</entry>
- </row>
-
- <row>
- <entry>ip
- <option><replaceable>X.X.X.X</replaceable></option></entry>
- <entry>print/set client's IP address</entry>
- </row>
-
- <row>
- <entry>server
- <option><replaceable>X.X.X.X</replaceable></option></entry>
- <entry>print/set bootp/tftp server address</entry>
- </row>
-
- <row>
- <entry>netmask
- <option><replaceable>X.X.X.X</replaceable></option></entry>
- <entry>print/set netmask</entry>
- </row>
-
- <row>
- <entry>hostname <replaceable>name</replaceable></entry>
- <entry>print/set hostname</entry>
- </row>
-
- <row>
- <entry>kernel
- <option><replaceable>name</replaceable></option></entry>
- <entry>print/set kernel name</entry>
- </row>
-
- <row>
- <entry>rootfs
- <option><replaceable>ip:/fs</replaceable></option></entry>
- <entry>print/set root filesystem</entry>
- </row>
-
- <row>
- <entry>swapfs
- <option><replaceable>ip:/fs</replaceable></option></entry>
- <entry>print/set swap filesystem</entry>
- </row>
-
- <row>
- <entry>swapsize
- <option><replaceable>size</replaceable></option></entry>
- <entry>set diskless swapsize in KBytes</entry>
- </row>
-
- <row>
- <entry>diskboot</entry>
- <entry>boot from disk</entry>
- </row>
-
- <row>
- <entry>autoboot</entry>
- <entry>continue boot process</entry>
- </row>
-
- <row>
- <entry>trans
- <option>on</option>|<option>off</option></entry>
- <entry>turn transceiver on|off</entry>
- </row>
-
- <row>
- <entry>flags
- <option>b</option><option>c</option><option>d</option><option>h</option><option>s</option><option>v</option></entry>
- <entry>set boot flags</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>A typical completely diskless cfg file might contain:</para>
-
- <programlisting>rootfs 192.1.2.3:/rootfs/myclient
-swapfs 192.1.2.3:/swapfs
-swapsize 20000
-hostname myclient.mydomain</programlisting>
-
- <para>A cfg file for a machine with local swap might contain:</para>
-
- <programlisting>rootfs 192.1.2.3:/rootfs/myclient
-hostname myclient.mydomain</programlisting>
- </step>
-
- <step>
- <para>Ensure that your NFS server has exported the root (and swap if
- applicable) filesystems to your client, and that the client has
- root access to these filesystems A typical
- <filename>/etc/exports</filename> file on FreeBSD might look
- like:</para>
-
- <programlisting>/rootfs/myclient -maproot=0:0 myclient.mydomain
-/swapfs -maproot=0:0 myclient.mydomain</programlisting>
-
- <para>And on HP-UX:</para>
-
- <programlisting>/rootfs/myclient -root=myclient.mydomain
-/swapfs -root=myclient.mydomain</programlisting>
- </step>
-
- <step>
- <para>If you are swapping over NFS (completely diskless
- configuration) create a swap file for your client using
- <command>dd</command>. If your <command>swapfs</command> command
- has the arguments <filename>/swapfs</filename> and the size 20000
- as in the example above, the swapfile for myclient will be called
- <filename>/swapfs/swap.<replaceable>X.X.X.X</replaceable></filename>
- where <replaceable>X.X.X.X</replaceable> is the client's IP addr,
- e.g.:</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000</userinput></screen>
-
- <para>Also, the client's swap space might contain sensitive
- information once swapping starts, so make sure to restrict read
- and write access to this file to prevent unauthorized
- access:</para>
-
- <screen>&prompt.root; <userinput>chmod 0600 /swapfs/swap.192.1.2.4</userinput></screen>
- </step>
-
- <step>
- <para>Unpack the root filesystem in the directory the client will
- use for its root filesystem (<filename>/rootfs/myclient</filename>
- in the example above).</para>
-
- <itemizedlist>
- <listitem>
- <para>On HP-UX systems: The server should be running HP-UX 9.04
- or later for HP9000/800 series machines. Prior versions do not
- allow the creation of device files over NFS.</para>
- </listitem>
-
- <listitem>
- <para>When extracting <filename>/dev</filename> in
- <filename>/rootfs/myclient</filename>, beware that some
- systems (HPUX) will not create device files that FreeBSD is
- happy with. You may have to go to single user mode on the
- first bootup (press control-c during the bootup phase), cd
- <filename>/dev</filename> and do a <command>sh ./MAKEDEV
- all</command> from the client to fix this.</para>
- </listitem>
- </itemizedlist>
- </step>
-
- <step>
- <para>Run <command>netboot.com</command> on the client or make an
- EPROM from the <filename>netboot.rom</filename> file</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Using Shared <filename>/</filename> and <filename>/usr</filename>
- filesystems</title>
-
- <para>Although this is not an officially sanctioned or supported way
- of doing this, some people report that it works quite well. If
- anyone has any suggestions on how to do this cleanly, please tell
- &a.doc;.</para>
- </sect2>
-
- <sect2>
- <title>Compiling netboot for specific setups</title>
-
- <para>Netboot can be compiled to support NE1000/2000 cards by changing
- the configuration in
- <filename>/sys/i386/boot/netboot/Makefile</filename>. See the
- comments at the top of this file.</para>
- </sect2>
- </sect1>
-
- <sect1 id="isdn">
- <title>ISDN</title>
-
- <para><emphasis>Last modified by &a.wlloyd;</emphasis>.</para>
-
- <para>A good resource for information on ISDN technology and hardware is
- <ulink url="http://alumni.caltech.edu/~dank/isdn/">Dan Kegel's ISDN
- Page</ulink>.</para>
-
- <para>A quick simple road map to ISDN follows:</para>
-
- <itemizedlist>
- <listitem>
- <para>If you live in Europe you might want to investigate the ISDN card
- section.</para>
- </listitem>
-
- <listitem>
- <para>If you are planning to use ISDN primarily to connect to the
- Internet with an Internet Provider on a dial-up non-dedicated basis,
- you might look into Terminal Adapters. This will give you the
- most flexibility, with the fewest problems, if you change
- providers.</para>
- </listitem>
-
- <listitem>
- <para>If you are connecting two LANs together, or connecting to the
- Internet with a dedicated ISDN connection, you might consider
- the stand alone router/bridge option.</para>
- </listitem>
- </itemizedlist>
-
- <para>Cost is a significant factor in determining what solution you will
- choose. The following options are listed from least expensive to most
- expensive.</para>
-
- <sect2>
- <title>ISDN Cards</title>
-
- <para><emphasis>Contributed by &a.hm;.</emphasis></para>
-
- <para>This section is really only relevant to ISDN users in countries
- where the DSS1/Q.931 ISDN standard is supported.</para>
-
- <para>Some growing number of PC ISDN cards are supported under FreeBSD
- 2.2.x and up by the isdn4bsd driver package. It is still under
- development but the reports show that it is successfully used all over
- Europe.</para>
-
- <para>The latest isdn4bsd version is available from <ulink
- url="ftp://isdn4bsd@ftp.consol.de/pub/">ftp://isdn4bsd@ftp.consol.de/pub/</ulink>,
- the main isdn4bsd ftp site (you have to log in as user
- <username>isdn4bsd</username> , give your mail address as the password
- and change to the <filename>pub</filename> directory. Anonymous ftp
- as user <username>ftp</username> or <username>anonymous</username>
- will <emphasis>not</emphasis> give the desired result).</para>
-
- <para>Isdn4bsd allows you to connect to other ISDN routers using either
- IP over raw HDLC or by using synchronous PPP. A telephone answering
- machine application is also available.</para>
-
- <para>Many ISDN PC cards are supported, mostly the ones with a Siemens
- ISDN chipset (ISAC/HSCX), support for other chipsets (from Motorola,
- Cologne Chip Designs) is currently under development. For an
- up-to-date list of supported cards, please have a look at the <ulink
- url="ftp://isdn4bsd@ftp.consol.de/pub/README">README</ulink>
- file.</para>
-
- <para>In case you are interested in adding support for a different ISDN
- protocol, a currently unsupported ISDN PC card or otherwise enhancing
- isdn4bsd, please get in touch with <email>hm@kts.org</email>.</para>
-
- <para>A majordomo maintained mailing list is available. To join the
- list, send mail to &a.majordomo; and
- specify:</para>
-
- <programlisting>subscribe freebsd-isdn</programlisting>
-
- <para>in the body of your message.</para>
- </sect2>
-
- <sect2>
- <title>ISDN Terminal Adapters</title>
-
- <para>Terminal adapters(TA), are to ISDN what modems are to regular
- phone lines.</para>
-
- <para>Most TA's use the standard hayes modem AT command set, and can be
- used as a drop in replacement for a modem.</para>
-
- <para>A TA will operate basically the same as a modem except connection
- and throughput speeds will be much faster than your old modem. You
- will need to configure <link linkend="ppp">PPP</link> exactly the same
- as for a modem setup. Make sure you set your serial speed as high as
- possible.</para>
-
- <para>The main advantage of using a TA to connect to an Internet
- Provider is that you can do Dynamic PPP. As IP address space becomes
- more and more scarce, most providers are not willing to provide you
- with a static IP anymore. Most stand-alone routers are not able to
- accommodate dynamic IP allocation.</para>
-
- <para>TA's completely rely on the PPP daemon that you are running for
- their features and stability of connection. This allows you to
- upgrade easily from using a modem to ISDN on a FreeBSD machine, if you
- already have PPP setup. However, at the same time any problems you
- experienced with the PPP program and are going to persist.</para>
-
- <para>If you want maximum stability, use the kernel <link
- linkend="ppp">PPP</link> option, not the user-land <link
- linkend="userppp">iijPPP</link>.</para>
-
- <para>The following TA's are know to work with FreeBSD.</para>
-
- <itemizedlist>
- <listitem>
- <para>Motorola BitSurfer and Bitsurfer Pro</para>
- </listitem>
-
- <listitem>
- <para>Adtran</para>
- </listitem>
- </itemizedlist>
-
- <para>Most other TA's will probably work as well, TA vendors try to make
- sure their product can accept most of the standard modem AT command
- set.</para>
-
- <para>The real problem with external TA's is like modems you need a good
- serial card in your computer.</para>
-
- <para>You should read the <link linkend="uart">serial ports</link>
- section in the handbook for a detailed understanding of serial
- devices, and the differences between asynchronous and synchronous
- serial ports.</para>
-
- <para>A TA running off a standard PC serial port (asynchronous) limits
- you to 115.2Kbs, even though you have a 128Kbs connection. To fully
- utilize the 128Kbs that ISDN is capable of, you must move the TA to a
- synchronous serial card.</para>
-
- <para>Do not be fooled into buying an internal TA and thinking you have
- avoided the synchronous/asynchronous issue. Internal TA's simply have
- a standard PC serial port chip built into them. All this will do, is
- save you having to buy another serial cable, and find another empty
- electrical socket.</para>
-
- <para>A synchronous card with a TA is at least as fast as a stand-alone
- router, and with a simple 386 FreeBSD box driving it, probably more
- flexible.</para>
-
- <para>The choice of sync/TA v.s. stand-alone router is largely a religious
- issue. There has been some discussion of this in the mailing lists.
- I suggest you search the <ulink
- url="http://www.FreeBSD.org/search.html">archives</ulink> for the
- complete discussion.</para>
- </sect2>
-
- <sect2>
- <title>Stand-alone ISDN Bridges/Routers</title>
-
- <para>ISDN bridges or routers are not at all specific to FreeBSD or any
- other operating system. For a more complete description of routing
- and bridging technology, please refer to a Networking reference
- book.</para>
-
- <para>In the context of this page, the terms router and bridge will
- be used interchangeably.</para>
-
- <para>As the cost of low end ISDN routers/bridges comes down, it will
- likely become a more and more popular choice. An ISDN router is a
- small box that plugs directly into your local Ethernet network(or
- card), and manages its own connection to the other bridge/router. It
- has all the software to do PPP and other protocols built in.</para>
-
- <para>A router will allow you much faster throughput that a standard TA,
- since it will be using a full synchronous ISDN connection.</para>
-
- <para>The main problem with ISDN routers and bridges is that
- interoperability between manufacturers can still be a problem. If you
- are planning to connect to an Internet provider, you should
- discuss your needs with them.</para>
-
- <para>If you are planning to connect two lan segments together, ie: home
- lan to the office lan, this is the simplest lowest maintenance
- solution. Since you are buying the equipment for both sides of the
- connection you can be assured that the link will work.</para>
-
- <para>For example to connect a home computer or branch office network to
- a head office network the following setup could be used.</para>
-
- <example>
- <title>Branch office or Home network</title>
-
- <para>Network is 10 Base T Ethernet. Connect router to network cable
- with AUI/10BT transceiver, if necessary.</para>
-
- <!-- This should be a graphic -->
- <programlisting>---Sun workstation
-|
----FreeBSD box
-|
----Windows 95 (Do not admit to owning it)
-|
-Stand-alone router
- |
-ISDN BRI line</programlisting>
-
- <para>If your home/branch office is only one computer you can use a
- twisted pair crossover cable to connect to the stand-alone router
- directly.</para>
- </example>
-
- <example>
- <title>Head office or other lan</title>
-
- <para>Network is Twisted Pair Ethernet.</para>
-
- <!-- This should be a graphic -->
- <programlisting> -------Novell Server
- | H |
- | ---Sun
- | |
- | U ---FreeBSD
- | |
- | ---Windows 95
- | B |
- |___---Stand-alone router
- |
- ISDN BRI line</programlisting>
- </example>
-
- <para>One large advantage of most routers/bridges is that they allow you
- to have 2 <emphasis>separate independent</emphasis> PPP connections to
- 2 separate sites at the <emphasis>same</emphasis> time. This is not
- supported on most TA's, except for specific(expensive) models that
- have two serial ports. Do not confuse this with channel bonding, MPP
- etc.</para>
-
- <para>This can be very useful feature, for example if you have an
- dedicated ISDN connection at your office and would like to
- tap into it, but don't want to get another ISDN line at work. A router
- at the office location can manage a dedicated B channel connection
- (64Kbs) to the internet, as well as a use the other B channel for a
- separate data connection. The second B channel can be used for
- dial-in, dial-out or dynamically bond(MPP etc.) with the first B channel
- for more bandwidth.</para>
-
- <para>An Ethernet bridge will also allow you to transmit more than just
- IP traffic, you can also send IPX/SPX or whatever other protocols you
- use.</para>
- </sect2>
- </sect1>
-
- <sect1 id="nis">
- <title>NIS/YP</title>
-
- <para><emphasis>Written by &a.unfurl;, 21 January 2000, enhanced
- with parts and comments from Eric Ogren
- <email>eogren@earthlink.net</email> and Udo Erdelhoff
- <email>ue@nathan.ruhr.de</email> in June 2000.</emphasis></para>
-
- <sect2>
- <title>What is it?</title>
-
- <para>NIS, which stands for Network Information Services, was
- developed by Sun Microsystems to centralize administration of Unix
- (originally SunOS) systems. It has now essentially become an
- industry standard; all major Unices (Solaris, HP-UX, AIX, Linux,
- NetBSD, OpenBSD, FreeBSD, etc) support NIS.</para>
-
- <para>NIS was formerly known as Yellow Pages (or yp), but due to
- copyright violations, Sun was forced to change the name.</para>
-
- <para>It is a RPC-based client/server system that allows a group
- of machines within an NIS domain to share a common set of
- configuration files. This permits a system administrator to set
- up NIS client systems with only minimal configuration data and
- add, remove or modify configuration data from a single
- location.</para>
-
- <para>It is similar to Windows NT's domain system; although the
- internal implementation of the two aren't at all similar,
- the basic functionality can be compared.</para>
- </sect2>
-
- <sect2>
- <title>Terms/processes you should know</title>
-
- <para>There are several terms and several important user processes
- that you will come across when
- attempting to implement NIS on FreeBSD, whether you are trying to
- create an NIS server or act an NIS client:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>The NIS domainname</emphasis>. An NIS master
- server and all of its clients (including its slave servers) have
- a NIS domainname. Similar to an NT domain name, the NIS
- domainname does not have anything to do with DNS.</para>
- </listitem>
- <listitem>
- <para><emphasis>portmap</emphasis>. <command>portmap</command>
- must be running in order to enable RPC (Remote Procedure Call, a
- network protocol used by NIS). If <command>portmap</command> is
- not running, it will be impossible to run an NIS server, or to
- act as an NIS client.</para>
- </listitem>
- <listitem>
- <para><emphasis>ypbind</emphasis>. <command>ypbind</command>
- &ldquo;binds&rdquo; an NIS client to its NIS server.
- It will take the NIS domainname from the system, and
- using RPC, connect to the server. <command>ypbind</command> is
- the core of client-server communication in an NIS environment; if
- <command>ypbind</command> dies on a client machine, it will not
- be able to access the NIS server.</para>
- </listitem>
- <listitem>
- <para><emphasis>ypserv</emphasis>. <command>ypserv</command>,
- which should only be running on NIS servers, is the NIS server
- process itself. If ypserv dies, then the server will no longer be
- able to respond to NIS requests (hopefully, there is a slave
- server to take over for it).</para>
-
- <note><para>There are some implementations of NIS (but not the
- FreeBSD one), that don't try to reconnect to another server
- if the server it used before dies. Often, the only thing
- that helps in this case is to restart the server process (or
- even the whole server) or the <command>ypbind</command> process
- on the client.</para></note>
- </listitem>
- <listitem>
- <para><emphasis>rpc.yppasswdd</emphasis>.
- <command>rpc.yppasswdd</command>, another process that should
- only be running on NIS master servers, is a daemon that will
- allow NIS clients to change their NIS passwords.
- If this daemon is not running, users will have to login to the
- NIS master server and change their passwords there.</para>
- </listitem>
-
- <!-- XXX Missing: rpc.ypxfrd (not important, though) May only run
- on the master -->
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>How does it work?</title>
-
- <para>There are three types of hosts in an NIS environment; master
- servers, slave servers, and clients. Servers act as a central
- repository for host configuration information. Master servers
- hold the authoritative copy of this information, while slave
- servers mirror this information for redundancy. Clients rely on
- the servers to provide this information to them.</para>
-
- <para>Information in many files can be shared in this manner. The
- <filename>master.passwd</filename>, <filename>group</filename>,
- and <filename>hosts</filename> files are commonly shared via NIS.
- Whenever a process on a client needs information that would
- normally be found in these files locally, it makes a query to the
- server it is bound to, to get this information.</para>
-
- <sect3>
- <title>Machine types</title>
-
- <itemizedlist>
- <listitem>
- <para>A <emphasis>NIS master server</emphasis>.
- This server, analogous to a Windows
- NT primary domain controller, maintains the files used by all
- of the NIS clients. The <filename>passwd</filename>,
- <filename>group</filename>, and other various files used by the
- NIS clients live on the master server.</para>
-
- <note><para>It is possible for one machine to be an NIS
- master server for more than one NIS domain. However, this will
- not be covered in this introduction, which assumes a relatively
- small-scale NIS environment.</para></note>
- </listitem>
- <listitem>
- <para><emphasis>NIS slave servers</emphasis>.
- Similar to NT's backup domain
- controllers, NIS slave servers maintain copies of the NIS
- master's data files. NIS slave servers provide the redundancy,
- which is needed in important environments. They also help
- to balance the load of the master server: NIS Clients always
- attach to the NIS server, whose response they get first, and
- this includes slave-server-replies.</para>
- </listitem>
- <listitem>
- <para><emphasis>NIS clients</emphasis>. NIS clients, like most
- NT workstations, authenticate against the NIS server (or the NT
- domain controller in the NT Workstation case) to log on.</para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Using NIS/YP</title>
-
- <para>This section will deal with setting up a sample NIS
- environment.</para>
-
- <note><para>This section assumes that you are running FreeBSD 3.3
- or later. The instructions given here will
- <emphasis>probably</emphasis> work for any version of FreeBSD greater
- than 3.0, but there are no guarantees that this is
- true.</para></note>
-
-
- <sect3>
- <title>Planning</title>
-
- <para>Let's assume that you are the administrator of a small
- university lab. This lab, which consists of 15 FreeBSD machines,
- currently has no centralized point of administration; each machine
- has its own <filename>/etc/passwd</filename> and
- <filename>/etc/master.passwd</filename>. These files are kept in
- sync with each other only through manual intervention;
- currently, when you add a user to the lab, you must run
- <command>adduser</command> on all 15 machines.
- Clearly, this has to change, so you have decided to convert the
- lab to use NIS, using two of the machines as servers.</para>
-
- <para>Therefore, the configuration of the lab now looks something
- like:</para>
-
- <informaltable>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Machine name</entry>
- <entry>IP address</entry>
- <entry>Machine role</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><hostid>ellington</hostid></entry>
- <entry><hostid role="ipaddr">10.0.0.2</hostid></entry>
- <entry>NIS master</entry>
- </row>
- <row>
- <entry><hostid>coltrane</hostid></entry>
- <entry><hostid role="ipaddr">10.0.0.3</hostid></entry>
- <entry>NIS slave</entry>
- </row>
- <row>
- <entry><hostid>basie</hostid></entry>
- <entry><hostid role="ipaddr">10.0.0.4</hostid></entry>
- <entry>Faculty workstation</entry>
- </row>
- <row>
- <entry><hostid>bird</hostid></entry>
- <entry><hostid role="ipaddr">10.0.0.5</hostid></entry>
- <entry>Client machine</entry>
- </row>
- <row>
- <entry><hostid>cli[1-11]</hostid></entry>
- <entry><hostid role="ipaddr">10.0.0.[6-17]</hostid></entry>
- <entry>Other client machines</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If you are setting up a NIS scheme for the first time, it
- is a good idea to think through how you want to go about it. No
- matter what the size of your network, there are a few decisions
- that need to be made.</para>
-
- <sect4>
- <title>Choosing a NIS Domain Name</title>
-
- <para>This might not be the <quote>domainname</quote> that you
- are used to. It is more accurately called the
- <quote>NIS domainname</quote>. When a client broadcasts its
- requests for info, it includes the name of the NIS domain
- that it is part of. This is how multiple servers on one
- network can tell which server should answer which request.
- Think of the NIS domainname as the name for a group of hosts
- that are related in someway way.</para>
-
- <para>Some organizations choose to use their Internet domainname
- for their NIS domainname. This is not recommended as it can
- cause confusion when trying to debug network problems. The
- NIS domainname should be unique within your network and it is
- helpful if it describes the group of machines it represents.
- For example, the Art department at Acme Inc. might be in the
- "acme-art" NIS domain. For this example, assume you have
- chosen the name <emphasis>test-domain</emphasis>.</para>
-
- <para>However, some operating systems (notably SunOS) use their
- NIS domain name as their Internet domain name.
- If one or more machines on your network have this restriction,
- you <emphasis>must</emphasis> use the Internet domain name as
- your NIS domain name.</para>
- </sect4>
-
- <sect4>
- <title>Physical Server Requirements</title>
-
- <para>There are several things to keep in mind when choosing a
- machine to use as a NIS server. One of the unfortunate things
- about NIS is the level of dependency the clients have on the
- server. If a client cannot contact the server for its NIS
- domain, very often the machine becomes unusable. The lack of
- user and group information causes most systems to temporarily
- freeze up. With this in mind you should make sure to choose a
- machine that won't be prone to being rebooted regularly, or
- one that might be used for development. The NIS server should
- ideally be a stand alone machine whose sole purpose in life is
- to be an NIS server. If you have a network that is not very
- heavily used, it is acceptable to put the NIS server on a
- machine running other services, just keep in mind that if the
- NIS server becomes unavailable, it will affect
- <emphasis>all</emphasis> of your NIS clients adversely.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>NIS Servers</title>
-
- <para> The canonical copies of all NIS information are stored on
- a single machine called the NIS master server. The databases
- used to store the information are called NIS maps. In FreeBSD,
- these maps are stored in
- <filename>/var/yp/[domainname]</filename> where
- <filename>[domainname]</filename> is the name of the NIS domain
- being served. A single NIS server can support several domains
- at once, therefore it is possible to have several such
- directories, one for each supported domain. Each domain will
- have its own independent set of maps.</para>
-
- <para>NIS master and slave servers handle all NIS requests with
- the <command>ypserv</command> daemon. <command>Ypserv</command>
- is responsible for receiving incoming requests from NIS clients,
- translating the requested domain and map name to a path to the
- corresponding database file and transmitting data from the
- database back to the client.</para>
-
- <sect4>
- <title>Setting up a NIS master server</title>
-
- <para>Setting up a master NIS server can be relatively straight
- forward, depending on your needs. FreeBSD comes with support
- for NIS out-of-the-box. All you need is to add the following
- lines to <filename>/etc/rc.conf</filename>, and FreeBSD will
- do the rest for you.</para>
-
- <itemizedlist>
- <listitem>
- <para><programlisting>nisdomainname="test-domain"</programlisting>
- This line will set the NIS domainname to
- <emphasis>test-domain</emphasis>
- upon network setup (e.g. after reboot).</para>
- </listitem>
- <listitem>
- <para><programlisting>nis_server_enable="YES"</programlisting>
- This will tell FreeBSD to start up the NIS server processes
- when the networking is next brought up.</para>
- </listitem>
- <listitem>
- <para><programlisting>nis_yppasswdd_enable="YES"</programlisting>
- This will enable the <command>rpc.yppasswdd</command>
- daemon, which, as mentioned above, will allow users to
- change their NIS password from a client machine.</para>
- </listitem>
- </itemizedlist>
-
- <para>Now, everything you have to do is to run the command
- <command>/etc/netstart</command> as superuser. It will
- setup everything for you, using the values you defined in
- <filename>/etc/rc.conf</filename>.</para>
- </sect4>
-
- <sect4>
- <title>Initializing the NIS maps</title>
-
- <para>The <emphasis>NIS maps</emphasis> are database files,
- that are kept in the <filename>/var/yp</filename> directory.
- They are generated from configuration files in the
- <filename>/etc</filename> directory of the NIS master, with one
- exception: the <filename>/etc/master.passwd</filename> file.
- This is for a good reason; you don't want to propagate
- passwords to your root and other administrative accounts to
- all the servers in the NIS domain. Therefore, before we
- initialize the NIS maps, you should:</para>
-
- <screen>
-&prompt.root; <userinput>cp /etc/master.passwd /var/yp/master.passwd</userinput>
-&prompt.root; <userinput>cd /var/yp</userinput>
-&prompt.root; <userinput>vi master.passwd</userinput>
- </screen>
-
- <para>You should remove all entries regarding system accounts
- (bin, tty, kmem, games, etc), as well as any accounts that you
- don't want to be propagated to the NIS clients (for example
- root and any other UID 0 (superuser) accounts).</para>
-
- <note><para>Make sure the
- <filename>/var/yp/master.passwd</filename> is neither group
- nor world readable (mode 600)! Use the
- <command>chmod</command> command, if appropriate.</para></note>
-
- <para>When you have finished, it's time to initialize the NIS
- maps! FreeBSD includes a script named
- <command>ypinit</command> to do this for you
- (see its man page for more information). Note that this
- script is available on most UNIX OSs, but not on all.
- On Digital Unix/Compaq Tru64 Unix it is called
- <command>ypsetup</command>.
- Because we are generating maps for an NIS master, we are
- going to pass the <option>-m</option> option to
- <command>ypinit</command>.
- To generate the NIS maps, assuming you already performed
- the steps above, run:</para>
-
- <screen>
-ellington&prompt.root; <userinput>ypinit -m test-domain</userinput>
-Server Type: MASTER Domain: test-domain
-Creating an YP server will require that you answer a few questions.
-Questions will all be asked at the beginning of the procedure.
-Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
-Ok, please remember to go back and redo manually whatever fails.
-If you don't, something might not work.
-At this point, we have to construct a list of this domains YP servers.
-rod.darktech.org is already known as master server.
-Please continue to add any slave servers, one per line. When you are
-done with the list, type a &lt;control D&gt;.
-master server : ellington
-next host to add: <userinput>coltrane</userinput>
-next host to add: <userinput>^D</userinput>
-The current list of NIS servers looks like this:
-ellington
-coltrane
-Is this correct? [y/n: y] <userinput>y</userinput>
-
-[..output from map generation..]
-
-NIS Map update completed.
-ellington has been setup as an YP master server without any errors.
- </screen>
-
- <para><command>ypinit</command> should have created
- <filename>/var/yp/Makefile</filename> from
- <filename>/var/yp/Makefile.dist</filename>.
- When created, this file assumes that you are operating
- in a single server NIS environment with only FreeBSD
- machines. Since <emphasis>test-domain</emphasis> has
- a slave server as well, you must edit
- <filename>/var/yp/Makefile</filename>:</para>
-
- <screen>
-ellington&prompt.root; <userinput>vi /var/yp/Makefile</userinput>
- </screen>
-
- <para>You should comment out the line that says `NOPUSH =
- "True"' (if it is not commented out already).</para>
- </sect4>
-
- <sect4>
- <title>Setting up a NIS slave server</title>
-
- <para>Setting up an NIS slave server is even more simple than
- setting up the master. Log on to the slave server and edit the
- file <filename>/etc/rc.conf</filename> as you did before.
- The only difference is that we now must use the
- <option>-s</option> option when running <command>ypinit</command>.
- The <option>-s</option> option requires the name of the NIS
- master be passed to it as well, so our command line looks
- like:</para>
-
- <screen>
-coltrane&prompt.root; <userinput>ypinit -s ellington test-domain</userinput>
-
-Server Type: SLAVE Domain: test-domain Master: ellington
-
-Creating an YP server will require that you answer a few questions.
-Questions will all be asked at the beginning of the procedure.
-
-Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
-
-Ok, please remember to go back and redo manually whatever fails.
-If you don't, something might not work.
-There will be no further questions. The remainder of the procedure
-should take a few minutes, to copy the databases from ellington.
-Transferring netgroup...
-ypxfr: Exiting: Map successfully transferred
-Transferring netgroup.byuser...
-ypxfr: Exiting: Map successfully transferred
-Transferring netgroup.byhost...
-ypxfr: Exiting: Map successfully transferred
-Transferring master.passwd.byuid...
-ypxfr: Exiting: Map successfully transferred
-Transferring passwd.byuid...
-ypxfr: Exiting: Map successfully transferred
-Transferring passwd.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring group.bygid...
-ypxfr: Exiting: Map successfully transferred
-Transferring group.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring services.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring rpc.bynumber...
-ypxfr: Exiting: Map successfully transferred
-Transferring rpc.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring protocols.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring master.passwd.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring networks.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring networks.byaddr...
-ypxfr: Exiting: Map successfully transferred
-Transferring netid.byname...
-ypxfr: Exiting: Map successfully transferred
-Transferring hosts.byaddr...
-ypxfr: Exiting: Map successfully transferred
-Transferring protocols.bynumber...
-ypxfr: Exiting: Map successfully transferred
-Transferring ypservers...
-ypxfr: Exiting: Map successfully transferred
-Transferring hosts.byname...
-ypxfr: Exiting: Map successfully transferred
-
-coltrane has been setup as an YP slave server without any errors.
-Don't forget to update map ypservers on ellington.</screen>
-
- <para>You should now have a directory called
- <filename>/var/yp/test-domain</filename>. Copies of the NIS
- master server's maps should be in this directory. You will
- need to make sure that these stay updated. The following
- <filename>/etc/crontab</filename> entries on your slave
- servers should do the job:</para>
-
- <programlisting>20 * * * * root /usr/libexec/ypxfr passwd.byname
-21 * * * * root /usr/libexec/ypxfr passwd.byuid</programlisting>
-
- <para>These two lines force the slave to sync its maps with
- the maps on the master server. Although this is
- not mandatory, because the master server
- tries to make sure any changes to it's NIS maps are
- communicated to it's slaves, the password
- information is so vital to systems that depend on the server,
- that it is a good idea to force the updates. This is more
- important on busy networks where map updates might not always
- complete.</para>
-
- <para>Now, run the command <command>/etc/netstart</command> on the
- slave server as well, which again starts the NIS server.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>NIS Clients</title>
-
- <para> An NIS client establishes what is called a binding to a
- particular NIS server using the
- <command>ypbind</command> daemon.
- <command>ypbind</command> checks the system's default
- domain (as set by the <command>domainname</command> command),
- and begins broadcasting RPC requests on the local network.
- These requests specify the name of the domain for which
- <command>ypbind</command> is attempting to establish a binding.
- If a server that has been configured to serve the requested
- domain receives one of the broadcasts, it will respond to
- <command>ypbind</command>, which will record the server's
- address. If there are several servers available (a master and
- several slaves, for example), <command>ypbind</command> will
- use the address of the first one to respond. From that point
- on, the client system will direct all of its NIS requests to
- that server. <command>Ypbind</command> will
- occasionally <quote>ping</quote> the server to make sure it is
- still up and running. If it fails to receive a reply to one of
- its pings within a reasonable amount of time,
- <command>ypbind</command> will mark the domain as unbound and
- begin broadcasting again in the hopes of locating another
- server.</para>
-
- <sect4>
- <title>Setting up an NIS client</title>
-
- <para>Setting up a FreeBSD machine to be a NIS client is fairly
- straight forward.</para>
-
- <itemizedlist>
- <listitem>
- <para>Edit the file <filename>/etc/rc.conf</filename> and
- add the following lines in order to set the NIS domainname
- and start <command>ypbind</command> upon network
- startup:</para>
-
- <programlisting>nisdomainname="test-domain"
-nis_client_enable="YES"</programlisting>
- </listitem>
-
- <listitem>
- <para>To import all possible password entries from the NIS
- server, add this line to your
- <filename>/etc/master.passwd</filename> file, using
- <command>vipw</command>:</para>
-
- <programlisting>+:::::::::</programlisting>
-
- <note>
- <para>This line will afford anyone with a valid account in
- the NIS server's password maps an account. There are
- many ways to configure your NIS client by changing this
- line. See the <link linkend="netgroups">netgroups
- part</link> below for more information.
- For more detailed reading see O'Reilly's book on
- <literal>Managing NFS and NIS</literal>.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>To import all possible group entries from the NIS
- server, add this line to your
- <filename>/etc/group</filename> file:</para>
-
- <programlisting>+:*::</programlisting>
- </listitem>
- </itemizedlist>
-
- <para>After completing these steps, you should be able to run
- <command>ypcat passwd</command> and see the NIS server's
- passwd map.</para>
- </sect4>
- </sect3>
- </sect2>
-
- <sect2>
- <title>NIS Security</title>
-
- <para>In general, any remote user can issue an RPC to ypserv and
- retrieve the contents of your NIS maps, provided the remote user
- knows your domainname. To prevent such unauthorized transactions,
- ypserv supports a feature called securenets which can be used to
- restrict access to a given set of hosts. At startup, ypserv will
- attempt to load the securenets information from a file called
- <filename>/var/yp/securenets</filename>.</para>
-
- <note>
- <para>This path varies depending on the path specified with the
- <option>-p</option> option. This file contains entries that
- consist of a network specification and a network mask separated
- by white space. Lines starting with <quote>#</quote> are
- considered to be comments. A sample securenets file might look
- like this:</para>
- </note>
-
- <programlisting># allow connections from local host -- mandatory
-127.0.0.1 255.255.255.255
-# allow connections from any host
-# on the 192.168.128.0 network
-192.168.128.0 255.255.255.0
-# allow connections from any host
-# between 10.0.0.0 to 10.0.15.255
-# this includes the machines in the testlab
-10.0.0.0 255.255.240.0</programlisting>
-
- <para>If ypserv receives a request from an address that matches one
- of these rules, it will process the request normally. If the
- address fails to match a rule, the request will be ignored and a
- warning message will be logged. If the
- <filename>/var/yp/securenets</filename> file does not exist,
- ypserv will allow connections from any host.</para>
-
- <para>The ypserv program also has support for Wietse Venema's
- <application>tcpwrapper</application> package. This allows the
- administrator to use the tcpwrapper configuration files for access
- control instead of <filename>/var/yp/securenets</filename>.</para>
-
- <note>
- <para>While both of these access control mechanisms provide some
- security, they, like the privileged port test, are
- vulnerable to <quote>IP spoofing</quote> attacks. All
- NIS-related traffic should be blocked at your firewall.</para>
-
- <para>Servers using <filename>/var/yp/securenets</filename>
- may fail to serve legitimate NIS clients with archaic TCP/IP
- implementations. Some of these implementations set all
- host bits to zero when doing broadcasts and/or fail to
- observe the subnet mask when calculating the broadcast
- address. While some of these problems can be fixed by
- changing the client configuration, other problems may force
- the retirement of the client systems in question or the
- abandonment of <filename>/var/yp/securenets</filename>.</para>
-
- <para>Using <filename>/var/yp/securenets</filename> on a
- server with such an archaic implementation of TCP/IP is a
- really bad idea and will lead to loss of NIS functionality
- for large parts of your network.</para>
-
- <para>The use of the <application>tcpwrapper</application>
- package increases the latency of your NIS server. The
- additional delay may be long enough to cause timeouts in
- client programs, especially in busy networks or with slow
- NIS servers. If one or more of your client systems
- suffers from these symptoms, you should convert the client
- systems in question into NIS slave servers and force them
- to bind to themselves.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Barring some users from logging on</title>
-
- <para>In our lab, there is a machine <hostid>basie</hostid> that is
- supposed to be a faculty only workstation. We don't want to take this
- machine out of the NIS domain, yet the <filename>passwd</filename>
- file on the master NIS server contains accounts for both faculty and
- students. What can we do?</para>
-
- <para>There is a way to bar specific users from logging on to a
- machine, even if they are present in the NIS database. To do this,
- all you must do is add
- <emphasis>-<replaceable>username</replaceable></emphasis> to the end of
- the <filename>/etc/master.passwd</filename> file on the client
- machine, where <replaceable>username</replaceable> is the username of
- the user you wish to bar from logging in. This should preferably be
- done using <command>vipw</command>, since <command>vipw</command>
- will sanity check your changes to
- <filename>/etc/master.passwd</filename>, as well as
- automatically rebuild the password database when you
- finish editing. For example, if we wanted to bar user
- <emphasis>bill</emphasis> from logging on to <hostid>basie</hostid>
- we would:</para>
-
- <screen>
-basie&prompt.root; <userinput>vipw</userinput>
-<userinput>[add -bill to the end, exit]</userinput>
-vipw: rebuilding the database...
-vipw: done
-
-basie&prompt.root; <userinput>cat /etc/master.passwd</userinput>
-
-root:[password]:0:0::0:0:The super-user:/root:/bin/csh
-toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
-daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
-operator:*:2:5::0:0:System &:/:/sbin/nologin
-bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
-tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
-kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
-games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
-news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
-man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
-bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
-uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
-xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
-pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
-nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
-+:::::::::
--bill
-
-basie&prompt.root;</screen>
- </sect2>
-
- <sect2 id="netgroups">
- <title>Using netgroups</title>
-
- <para><emphasis>The netgroups part was contributed by
- Udo Erdelhoff <email>ue@nathan.ruhr.de</email> in July
- 2000.</emphasis></para>
-
- <para>The method shown in the previous chapter works reasonably
- well if you need special rules for a very small number of
- users and/or machines. On larger networks, you
- <emphasis>will</emphasis> forget to bar some users from logging
- onto sensitive machines, or you may even have to modify each
- machine separately, thus loosing the main benefit of NIS,
- <emphasis>centralized</emphasis> administration.</para>
-
- <para>The NIS developers' solution for this problem is called
- <emphasis>netgroups</emphasis>. Their purpose and semantics
- can be compared to the normal groups used by Unix file
- systems. The main differences are the lack of a numeric id
- and the ability to define a netgroup by including both user
- accounts and other netgroups.</para>
-
- <para>Netgroups were developed to handle large, complex networks
- with hundreds of users and machines. On one hand, this is
- a Good Thing if you are forced to deal with such a situation.
- On the other hand, this complexity makes it almost impossible to
- explain netgroups with really simple examples. The example
- used in the remainder of this chapter demonstrates this
- problem.</para>
-
- <para>Let us assume that your successful introduction of NIS in
- your laboratory caught your superiors' interest. Your next
- job is to extend your NIS domain to cover some of the other
- machines on campus. The two tables contain the names of the
- new users and new machines as well as brief descriptions of
- them.</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>User Name(s)</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>alpha, beta</entry>
- <entry>Normal employees of the IT department</entry>
- </row>
-
- <row>
- <entry>charlie, delta</entry>
- <entry>The new apprentices of the IT department</entry>
- </row>
-
- <row>
- <entry>echo, foxtrott, golf, ...</entry>
- <entry>Ordinary employees</entry>
- </row>
-
- <row>
- <entry>able, baker, ...</entry>
- <entry>The current interns</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Machine Name(s)</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <!-- Names taken from "Good Omens" by Neil Gaiman and Terry
- Pratchett. Many thanks for a brilliant book. -->
- <entry>war, death, famine, pollution</entry>
- <entry>Your most important servers. Only the IT
- employees are allowed to log onto these
- machines.</entry>
- </row>
- <row>
- <!-- gluttony was omitted because it was too fat ;-) -->
- <entry>pride, greed, envy, wraith, lust, sloth</entry>
- <entry>Less important servers. All members of the IT
- department are allowed to login onto these machines.</entry>
- </row>
-
- <row>
- <entry>one, two, three, four, ...</entry>
- <entry>Ordinary workstations. Only the
- <emphasis>real</emphasis> employees are allowed to use
- these machines.</entry>
- </row>
-
- <row>
- <entry>trashcan</entry>
- <entry>A very old machine without any critical data.
- Even the intern is allowed to use this box.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If you tried to implement these restrictions by separately
- blocking each user, you would have to add one
- -<replaceable>user</replaceable> line to each system's passwd
- for each user who is not allowed to login onto that system.
- If you forget just one entry, you could be in trouble. It may
- feasible to do this correctly during the initial setup,
- however you <emphasis>will</emphasis> eventually forget to add
- the lines for new users during day-to-day operations. After
- all, Murphy was an optimist.</para>
-
- <para>Handling this situation with netgroups offers several
- advantages. Each user need not be handled separately;
- you assign a user to one or netgroup and allow or forbid
- logins for all members of the netgroup. If you add a new
- machine, you will only have to define login restrictions for
- netgroups. If a new user is added, you will only have to add
- the user to one or more netgroups. Those changes are
- independent of each other; no more <quote>for each combination
- of user and machine do...</quote> If your NIS setup is planned
- carefully, you will only have to modify exactly one central
- configuration file to grant or deny access to machines.</para>
-
- <para>The first step is the initialization of the NIS map
- netgroup. FreeBSD's ypinit does not create this map by
- default, but its NIS implementation will support it once it has
- been created. To create an empty map, simply type</para>
-
- <screen>
-ellington&prompt.root; <userinput>vi /var/yp/netgroup</userinput>
- </screen>
-
- <para>and start adding content. For our example, we need at
- least four netgroups: IT employees, IT apprentices, normal
- employees and interns.</para>
-
- <programlisting>IT_EMP (,alpha,test-domain) (,beta,test-domain)
-IT_APP (,charlie,test-domain) (,delta,test-domain)
-USERS (,echo,test-domain) (,foxtrott,test-domain) \
- (,golf,test-domain)
-INTERNS (,able,test-domain) (,baker,test-domain)</programlisting>
-
- <para><literal>IT_EMP</literal>, <literal>IT_APP</literal> etc.
- are the names of the netgroups. Each bracketed group adds
- one or more user accounts to it. The three fields inside a
- group are:</para>
-
- <orderedlist>
- <listitem>
- <para>The name of the host(s) where the following items are
- valid. If you do not specify a hostname, the entry is
- valid on all hosts. If you do specify a hostname, you
- will a realm of darkness, horror and utter confusion.</para>
- </listitem>
-
- <listitem>
- <para>The name of the account that belongs to this
- netgroup.</para>
- </listitem>
-
- <listitem>
- <para>The NIS domain for the account. You can import
- accounts from other NIS domains into your netgroup if you
- are one of unlucky fellows with more than one NIS
- domain.</para>
- </listitem>
- </orderedlist>
-
- <para>Each of these fields can contain wildcards. See
- &man.netgroup.5; for details.</para>
-
- <note>
- <para>Netgroup names longer than 8 characters should not be
- used, especially if you have machines running other
- operating systems within your NIS domain. The names are
- case sensitive; using capital letters for your netgroup
- names is an easy way to distinguish between user, machine
- and netgroup names.</para>
-
- <para>Some NIS clients (other than FreeBSD) cannot handle
- netgroups with a large number of entries. For example, some
- older versions of SunOS start to cause trouble if a netgroup
- contains more than 15 <emphasis>entries</emphasis>. You can
- circumvent this limit by creating several sub-netgroups with
- 15 users or less and a real netgroup that consists of the
- sub-netgroups:</para>
-
- <programlisting>BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
-BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
-BIGGRP3 (,joe32,domain) (,joe33,domain)
-BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3</programlisting>
-
- <para>You can repeat this process if you need more than 225
- users within a single netgroup.</para>
- </note>
-
- <para>Activating and distributing your new NIS map is
- easy:</para>
-
- <screen>
-ellington&prompt.root; <userinput>cd /var/yp</userinput>
-ellington&prompt.root; <userinput>make</userinput>
- </screen>
-
- <para>This will generate the three NIS maps
- <filename>netgroup</filename>,
- <filename>netgroup.byhost</filename> and
- <filename>netgroup.byuser</filename>. Use &man.ypcat.1; to
- check if your new NIS map are available:</para>
-
- <screen>
-ellington&prompt.user; <userinput>ypcat -k netgroup</userinput>
-ellington&prompt.user; <userinput>ypcat -k netgroup.byhost</userinput>
-ellington&prompt.user; <userinput>ypcat -k netgroup.byuser</userinput>
- </screen>
-
- <para>The output of the first command should resemble the
- contents of <filename>/var/yp/netgroup</filename>. The second
- command will not produce output if you have not specified
- host-specific netgroups. The third command can be used to
- get the list of netgroups for a user.</para>
-
- <para>The client setup is quite simple. To configure the server
- <replaceable>war</replaceable>, you only have to start
- &man.vipw.8; and replace the line</para>
-
- <programlisting>+:::::::::</programlisting>
-
- <para>with</para>
-
- <programlisting>+@IT_EMP:::::::::</programlisting>
-
- <para>Now, only the data for the users defined in the netgroup
- <replaceable>IT_EMP</replaceable> is imported into
- <replaceable>war</replaceable>'s password database and only
- these users are allowed to login.</para>
-
- <para>Unfortunately, this limitation also applies to the ~
- function of the shell and all routines converting between user
- names and numerical user ids. In other words, cd
- ~<replaceable>user</replaceable> will not work, <command>ls
- -l</command> will show the numerical id instead of the
- username and <command>find . -user joe -print</command> will
- fail with <quote>No such user</quote>. To fix this, you will
- have to import all user entries <emphasis>without
- allowing them to login onto your servers</emphasis>.</para>
-
- <para>This can be achieved by adding another line to
- <filename>/etc/master.passwd</filename>. This line should
- contain <literal>+:::::::::/sbin/nologin</literal>, meaning
- <quote>Import all entries but replace the shell with
- <filename>/sbin/nologin</filename> in the imported
- entries</quote>. You can replace any field
- in the passwd entry by placing a default value in your
- <filename>/etc/master.passwd</filename>.</para>
-
- <!-- Been there, done that, got the scars to prove it - ue -->
- <warning>
- <para>Make sure that the line
- <literal>+:::::::::/sbin/nologin</literal> is placed after
- <literal>+@IT_EMP:::::::::</literal>. Otherwise, all user
- accounts imported from NIS will have /sbin/nologin as their
- login shell.</para>
- </warning>
-
- <para>After this change, you will only have to change one NIS
- map if a new employee joins the IT department. You could use
- a similar approach for the less important servers by replacing
- the old <literal>+:::::::::</literal> in their local version
- of <filename>/etc/master.passwd</filename> with something like
- this:</para>
-
- <programlisting>+@IT_EMP:::::::::
-+@IT_APP:::::::::
-+:::::::::/sbin/nologin</programlisting>
-
- <para>The corresponding lines for the normal workstations
- could be:</para>
-
- <programlisting>+@IT_EMP:::::::::
-+@USERS:::::::::
-+:::::::::/sbin/nologin</programlisting>
-
- <para>And everything would be fine until there is a policy
- change a few weeks later: The IT department starts hiring
- interns. The IT interns are allowed to use the normal
- workstations and the less important servers; and the IT
- apprentices are allowed to login onto the main servers. You
- add a new netgroup IT_INTERN, add the new IT interns to this
- netgroup and start to change the config on each and every
- machine... As the old saying goes: <quote>Errors in
- centralized planning lead to global mess</quote>.</para>
-
- <para>NIS' ability to create netgroups from other netgroups can
- be used to prevent situations like these. One possibility
- is the creation of role-based netgroups. For example, you
- could create a netgroup called
- <replaceable>BIGSRV</replaceable> to define the login
- restrictions for the important servers, another netgroup
- called <replaceable>SMALLSRV</replaceable> for the less
- important servers and a third netgroup called
- <replaceable>USERBOX</replaceable> for the normal
- workstations. Each of these netgroups contains the netgroups
- that are allowed to login onto these machines. The new
- entries for your NIS map netgroup should look like this:</para>
-
- <programlisting>BIGSRV IT_EMP IT_APP
-SMALLSRV IT_EMP IT_APP ITINTERN
-USERBOX IT_EMP ITINTERN USERS</programlisting>
-
- <para>This method of defining login restrictions works
- reasonably well if you can define groups of machines with
- identical restrictions. Unfortunately, this is the exception
- and not the rule. Most of the time, you will need the ability
- to define login restrictions on a per-machine basis.</para>
-
- <para>Machine-specific netgroup definitions are the other
- possibility to deal with the policy change outlined above. In
- this scenario, the <filename>/etc/master.passwd</filename> of
- each box contains two lines starting with ``+''. The first of
- them adds a netgroup with the accounts allowed to login onto
- this machine, the second one adds all other accounts with
- <filename>/sbin/nologin</filename> as shell. It is a good
- idea to use the ALL-CAPS version of the machine name as the
- name of the netgroup. In other words, the lines should look
- like this:</para>
-
- <programlisting>+@<replaceable>BOXNAME</replaceable>:::::::::
-+:::::::::/sbin/nologin</programlisting>
-
- <para>Once you have completed this task for all your machines,
- you will not have to modify the local versions of
- <filename>/etc/master.passwd</filename> ever again. All
- further changes can be handled by modifying the NIS map. Here
- is an example of a possible netgroup map for this
- scenario with some additional goodies.</para>
-
- <programlisting># Define groups of users first
-IT_EMP (,alpha,test-domain) (,beta,test-domain)
-IT_APP (,charlie,test-domain) (,delta,test-domain)
-DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
-DEPT2 (,golf,test-domain) (,hotel,test-domain)
-DEPT3 (,india,test-domain) (,juliet,test-domain)
-ITINTERN (,kilo,test-domain) (,lima,test-domain)
-D_INTERNS (,able,test-domain) (,baker,test-domain)
-#
-# Now, define some groups based on roles
-USERS DEPT1 DEPT2 DEPT3
-BIGSRV IT_EMP IT_APP
-SMALLSRV IT_EMP IT_APP ITINTERN
-USERBOX IT_EMP ITINTERN USERS
-#
-# And a groups for a special tasks
-# Allow echo and golf to access our anti-virus-machine
-SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
-#
-# machine-based netgroups
-# Our main servers
-WAR BIGSRV
-FAMINE BIGSRV
-# User india needs access to this server
-POLLUTION BIGSRV (,india,test-domain)
-#
-# This one is really important and needs more access restrictions
-DEATH IT_EMP
-#
-# The anti-virus-machine mentioned above
-ONE SECURITY
-#
-# Restrict a machine to a single user
-TWO (,hotel,test-domain)
-# [...more groups to follow]</programlisting>
-
- <para>If you are using some kind of database to manage your user
- accounts, you should be able to create the first part of the
- map with your database's report tools. This way, new users
- will automatically have access to the boxes.</para>
-
- <para>One last word of caution: It may not always be advisable
- to use machine-based netgroups. If you are deploying a couple
- dozen or even hundreds of identical machines for student labs,
- you should use role-based netgroups instead of machine-based
- netgroups to keep the size of the NIS map within reasonable
- limits.</para>
- </sect2>
-
- <sect2>
- <title>Important things to remember</title>
-
- <para>There are still a couple of things that you will need to do
- differently now that you are in an NIS environment.</para>
-
- <itemizedlist>
- <listitem>
- <para>Every time you wish to add a user to the lab, you
- must add it to the master NIS server <emphasis>only</emphasis>,
- and <emphasis>you must remember to rebuild the NIS
- maps</emphasis>. If you forget to do this, the new user will
- not be able to login anywhere except on the NIS master.
- For example, if we needed to add a new user
- &ldquo;jsmith&rdquo; to the lab, we would:</para>
-
- <screen>
-&prompt.root; <userinput>pw useradd jsmith</userinput>
-&prompt.root; <userinput>cd /var/yp</userinput>
-&prompt.root; <userinput>make test-domain</userinput></screen>
-
- <para>You could also run <command>adduser jsmith</command> instead
- of <command>pw useradd jsmith</command>.</para>
- </listitem>
- <listitem>
- <para><emphasis>Keep the administration accounts out of the NIS
- maps</emphasis>. You don't want to be propagating administrative
- accounts and passwords to machines that will have users that
- shouldn't have access to those accounts.</para>
- </listitem>
- <listitem>
- <para><emphasis>Keep the NIS master and slave
- secure, and minimize their downtime</emphasis>.
- If somebody either hacks or simply turns off
- these machines, they have effectively rendered many people without
- the ability to login to the lab.</para>
-
- <para>This is the chief weakness of any centralized administration
- system, and it is probably the most important weakness. If you do
- not protect your NIS servers, you will have a lot of angry
- users!</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>NIS v1 compatibility</title>
-
- <para> FreeBSD's <application>ypserv</application> has some support
- for serving NIS v1 clients. FreeBSD's NIS implementation only
- uses the NIS v2 protocol, however other implementations include
- support for the v1 protocol for backwards compatibility with older
- systems. The <application>ypbind</application> daemons supplied
- with these systems will try to establish a binding to an NIS v1
- server even though they may never actually need it (and they may
- persist in broadcasting in search of one even after they receive a
- response from a v2 server). Note that while support for normal
- client calls is provided, this version of ypserv does not handle
- v1 map transfer requests; consequently, it can not be used as a
- master or slave in conjunction with older NIS servers that only
- support the v1 protocol. Fortunately, there probably are not any
- such servers still in use today.</para>
- </sect2>
-
- <sect2>
- <title>NIS servers that are also NIS clients</title>
-
- <para> Care must be taken when running ypserv in a multi-server
- domain where the server machines are also NIS clients. It is
- generally a good idea to force the servers to bind to themselves
- rather than allowing them to broadcast bind requests and possibly
- become bound to each other. Strange failure modes can result if
- one server goes down and others are dependent upon on it.
- Eventually all the clients will time out and attempt to bind to
- other servers, but the delay involved can be considerable and the
- failure mode is still present since the servers might bind to each
- other all over again.</para>
-
- <para>You can force a host to bind to a particular server by running
- <command>ypbind</command> with the <option>-S</option>
- flag.</para>
- </sect2>
-
- <sect2>
- <title>libscrypt v.s. libdescrypt</title>
-
- <para>One of the most common issues that people run into when trying
- to implement NIS is crypt library compatibility. If your NIS
- server is using the DES crypt libraries, it will only support
- clients that are using DES as well. To check which one your server
- and clients are using look at the symlinks in
- <filename>/usr/lib</filename>. If the machine is configured to
- use the DES libraries, it will look something like this:</para>
-
- <screen>
-&prompt.user; <userinput>ls -l /usr/lib/*crypt*</userinput>
-lrwxrwxrwx 1 root wheel 13 Jul 15 08:55 /usr/lib/libcrypt.a@ -> libdescrypt.a
-lrwxrwxrwx 1 root wheel 14 Jul 15 08:55 /usr/lib/libcrypt.so@ -> libdescrypt.so
-lrwxrwxrwx 1 root wheel 16 Jul 15 08:55 /usr/lib/libcrypt.so.2@ -> libdescrypt.so.2
-lrwxrwxrwx 1 root wheel 15 Jul 15 08:55 /usr/lib/libcrypt_p.a@ -> libdescrypt_p.a
--r--r--r-- 1 root wheel 13018 Nov 8 14:27 /usr/lib/libdescrypt.a
-lrwxr-xr-x 1 root wheel 16 Nov 8 14:27 /usr/lib/libdescrypt.so@ -> libdescrypt.so.2
--r--r--r-- 1 root wheel 12965 Nov 8 14:27 /usr/lib/libdescrypt.so.2
--r--r--r-- 1 root wheel 14750 Nov 8 14:27 /usr/lib/libdescrypt_p.a</screen>
-
- <para>If the machine is configured to use the standard FreeBSD MD5
- crypt libraries they will look something like this:</para>
-
- <screen>
-&prompt.user; <userinput>ls -l /usr/lib/*crypt*</userinput>
-lrwxrwxrwx 1 root wheel 13 Jul 15 08:55 /usr/lib/libcrypt.a@ -> libscrypt.a
-lrwxrwxrwx 1 root wheel 14 Jul 15 08:55 /usr/lib/libcrypt.so@ -> libscrypt.so
-lrwxrwxrwx 1 root wheel 16 Jul 15 08:55 /usr/lib/libcrypt.so.2@ -> libscrypt.so.2
-lrwxrwxrwx 1 root wheel 15 Jul 15 08:55 /usr/lib/libcrypt_p.a@ -> libscrypt_p.a
--r--r--r-- 1 root wheel 6194 Nov 8 14:27 /usr/lib/libscrypt.a
-lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscrypt.so.2
--r--r--r-- 1 root wheel 7579 Nov 8 14:27 /usr/lib/libscrypt.so.2
--r--r--r-- 1 root wheel 6684 Nov 8 14:27 /usr/lib/libscrypt_p.a</screen>
-
- <para>If you have trouble authenticating on an NIS client, this
- is a pretty good place to start looking for possible problems.
- If you want to deploy an NIS server for a heterogenous
- network, you will probably have to use DES on all systems
- because it is the lowest common standard.</para>
- </sect2>
- </sect1>
-
- <sect1 id="dhcp">
- <title>DHCP</title>
-
- <para><emphasis>Written by &a.gsutter;, March 2000.</emphasis></para>
-
- <sect2>
- <title>What is DHCP?</title>
-
- <para>DHCP, the Dynamic Host Configuration Protocol, describes
- the means by which a system can connect to a network and obtain the
- necessary information for communication upon that network. FreeBSD
- uses the ISC (Internet Software Consortium) DHCP implementation, so
- all implementation-specific information here is for use with the ISC
- distribution.</para>
- </sect2>
-
- <sect2>
- <title>What This Section Covers</title>
-
- <para>This handbook section attempts to describe only the parts
- of the DHCP system that are integrated with FreeBSD;
- consequently, the server portions are not described. The DHCP
- manual pages, in addition to the references below, are useful
- resources.</para>
- </sect2>
-
- <sect2>
- <title>How it Works</title>
-
- <para>When dhclient, the DHCP client, is executed on the client
- machine, it begins broadcasting requests for configuration
- information. By default, these requests are on UDP port 68. The
- server replies on UDP 67, giving the client an IP address and
- other relevant network information such as netmask, router, and
- DNS servers. All of this information comes in the form of a DHCP
- "lease" and is only valid for a certain time (configured by the
- DHCP server maintainer). In this manner, stale IP addresses for
- clients no longer connected to the network can be automatically
- reclaimed.</para>
-
- <para>DHCP clients can obtain a great deal of information from
- the server. An exhaustive list may be found in
- &man.dhcp-options.5;.</para>
- </sect2>
-
- <sect2>
- <title>FreeBSD Integration</title>
-
- <para>FreeBSD fully integrates the ISC DHCP client,
- <command>dhclient</command>. DHCP client support is provided
- within both the installer and the base system, obviating the need
- for detailed knowledge of network configurations on any network
- that runs a DHCP server. <command>dhclient</command> has been
- included in all FreeBSD distributions since 3.2.</para>
-
- <para>DHCP is supported by <application>sysinstall</application>.
- When configuring a network interface within sysinstall,
- the first question asked is, "Do you want to try dhcp
- configuration of this interface?" Answering affirmatively will
- execute dhclient, and if successful, will fill in the network
- configuration information automatically.</para>
-
- <para>There are two things you must do to have your system use
- DHCP upon startup:</para>
-
- <itemizedlist>
- <listitem>
- <para>Make sure that the <devicename>bpf</devicename>
- device is compiled into your kernel. To do this, add
- <literal>pseudo-device bpf</literal> to your kernel
- configuration file, and rebuild the kernel. For more
- information about building kernels, see <xref
- linkend="kernelconfig">.</para>
- <para>The <devicename>bpf</devicename> device is already
- part of the <filename>GENERIC</filename> kernel that is
- supplied with FreeBSD, so if you don't have a custom
- kernel, you shouldn't need to create one in order to get
- DHCP working.</para>
- <note>
- <para>For those who are particularly security conscious,
- you should be warned that <devicename>bpf</devicename>
- is also the device that allows packet sniffers to work
- correctly (although they still have to be run as
- root). <devicename>bpf</devicename>
- <emphasis>is</emphasis> required to use DHCP, but if
- you are very sensitive about security, you probably
- shouldn't add <devicename>bpf</devicename> to your
- kernel in the expectation that at some point in the
- future you will be using DHCP.</para>
- </note>
- </listitem>
- <listitem>
- <para>Edit your <filename>/etc/rc.conf</filename> to
- include the following:</para>
-
- <programlisting>ifconfig_fxp0="DHCP"</programlisting>
-
- <note>
- <para>Be sure to replace <literal>fxp0</literal> with the
- designation for the interface that you wish to dynamically
- configure.</para>
- </note>
-
- <para>If you are using a different location for
- <command>dhclient</command>, or if you wish to pass additional
- flags to <command>dhclient</command>, also include the
- following (editing as necessary):</para>
-
- <programlisting>dhcp_program="/sbin/dhclient"
-dhcp_flags=""</programlisting>
- </listitem>
- </itemizedlist>
-
- <para>The DHCP server, <command>dhcpd</command>, is included
- as part of the <literal>isc-dhcp2</literal> port in the ports
- collection. This port contains the full ISC DHCP distribution,
- consisting of client, server, relay agent and documentation.
- </para>
- </sect2>
-
- <sect2>
- <title>Files</title>
-
- <itemizedlist>
- <listitem><para><filename>/etc/dhclient.conf</filename></para>
- <para><command>dhclient</command> requires a configuration file,
- <filename>/etc/dhclient.conf</filename>. Typically the file
- contains only comments, the defaults being reasonably sane. This
- configuration file is described by the &man.dhclient.conf.5;
- man page.</para>
- </listitem>
-
- <listitem><para><filename>/sbin/dhclient</filename></para>
- <para><command>dhclient</command> is statically linked and
- resides in <filename>/sbin</filename>. The &man.dhclient.8;
- manual page gives more information about
- <command>dhclient</command>.</para>
- </listitem>
-
- <listitem><para><filename>/sbin/dhclient-script</filename></para>
- <para><command>dhclient-script</command> is the FreeBSD-specific
- DHCP client configuration script. It is described in
- &man.dhclient-script.8;, but should not need any user
- modification to function properly.</para>
- </listitem>
-
- <listitem><para><filename>/var/db/dhclient.leases</filename></para>
- <para>The DHCP client keeps a database of valid leases in this
- file, which is written as a log. &man.dhclient.leases.5;
- gives a slightly longer description.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Further Reading</title>
-
- <para>The DHCP protocol is fully described in
- <ulink url="http://www.freesoft.org/CIE/RFC/2131/">RFC 2131</ulink>.
- An informational resource has also been set up at
- <ulink url="http://www.dhcp.org/">dhcp.org</ulink>.</para>
- </sect2>
- </sect1>
-
-<sect1 id="dns">
-<title>DNS</title>
-<para><emphasis>Written by Chern Lee <email>clee@serenivision.com</email>, April 12, 2001.
- </emphasis>
-</para>
-
-<sect2>
- <title>Overview</title>
- <para>FreeBSD utilizes, by default, a version of BIND (Berkeley Internet Name
- Domain), which is the most common implementation of the DNS protocol. DNS
- is the protocol through which names are mapped to ips, and vice
- versa. For example, a query for www.freebsd.org will send back a reply
- for the IP address of The FreeBSD Project's webpage, whereas, a query for
- ftp.freebsd.org will return the IP of the corresponding ftp
- machine. Likewise, the opposite can happen. A query for an ip address
- can resolve its hostname.
- </para>
-
- <para>DNS is coordinated across the Internet through a somewhat complex system
- of authoritative root name servers, and other smaller-scale nameservers
- who host and relay individual domain information.
- </para>
-
- <para>
- This document refers to BIND 8.x, as it is the most current, stable
- version used in FreeBSD.
- </para>
-
- <para>
- RFC1034 and RFC1035 dictates the DNS protocol.
- </para>
-
- <para>
- Currently, BIND is maintained by the <ulink url="http://www.isc.org">
- Internet Software Consortium (www.isc.org)</ulink>
- </para>
-</sect2>
-
-<sect2>
- <title>Terminology Used</title>
-
- <para><emphasis>zone</emphasis> - Each individual domain, subdomain,
- or 'area' dictated by DNS is considered a zone.
- </para>
-
- <para>Examples of zones:
- </para>
- <itemizedlist>
- <listitem>
- <para>. is the root zone</para>
- </listitem>
- <listitem>
- <para>org. is a zone under the root zone</para>
- </listitem>
- <listitem>
- <para>foobardomain.org is a zone under the org. zone</para>
- </listitem>
- <listitem>
- <para>foo.foobardomain.org. is a subdomain, a zone under the
- foobardomain.org. zone
- </para>
- </listitem>
- <listitem>
- <para>
- 1.2.3.in-addr.arpa is a zone referencing all ips which fall under
- the 3.2.1.* ip space.
- </para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>named, bind, name server</emphasis> - these are all common
- names for the BIND name server package within FreeBSD.
- </para>
-
- <para><emphasis>resolver</emphasis> - a network process by which a system
- queries a nameserver for answers
- </para>
-
- <para><emphasis>root zone</emphasis> - literally, a '.', refers to the root,
- or beginning zone. All zones fall under this, as do all files in fall
- under the root directory. It is the beginning of the Internet zone
- hierarchy
- </para>
-
- <para><emphasis>origin</emphasis> - refers to the point of start for the
- particular zone
- </para>
-
- <para><emphasis>forward dns</emphasis> - mapping of hostnames to ip addresses
- </para>
-
- <para><emphasis>reverse dns</emphasis> - the opposite, mapping of ip
- addresses to hostnames
- </para>
-</sect2>
-
-<sect2>
- <title>Reasons to run a name server</title>
- <itemizedlist>
- <listitem>
- <para>
- You need your machine to host DNS information to the world
- </para>
- <itemizedlist>
- <listitem>
- <para>An authoritative nameserver replies exclusively
- to requests.
- </para>
- </listitem>
- <listitem>
- <para>For example, you register foobardomain.org and wish to assign
- hostnames to its proper ip addresses.
- </para>
- </listitem>
- <listitem>
- <para>A slave nameserver, which replies to queries for a
- domain when the primary is down or inaccessible.
- </para>
- </listitem>
- <listitem>
- <para>The above two can also be done with in-addr.arpa, ip to
- hostname entries
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- You wish your machine to act as a local relay of DNS
- information
- </para>
- <itemizedlist>
- <listitem>
- <para>DNS traffic has been measured to be about 5% or more of
- the total Internet traffic.
- </para>
- </listitem>
- <listitem>
- <para>A local DNS server may have some added benefit by
- providing a local cache of DNS information.
- </para>
- </listitem>
- <listitem>
- <para>
- For example, when one queries for www.freebsd.org, their
- resolver goes out to (usually) your ISP's name server, and
- retreives the query.
- </para>
- </listitem>
- <listitem>
- <para>
- With a local, caching DNS server, the query only has to be
- made once to the outside world. Every additional query will
- not have to go outside of the local network, since the
- information is cached.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-</sect2>
-
-<sect2>
-<title>How it works</title>
- <para>
- A DNS server in FreeBSD relies on the BIND daemon. This daemon is
- called 'named' for obvious reasons.
- </para>
-
- <para><command>named</command> - the bind daemon</para>
- <para><command>ndc</command> - name daemon control program</para>
-
- <para>
- <filename>/etc/namedb</filename> - directory where all the bind information
- resides
- </para>
- <para>
- <filename>/etc/namedb/named.conf</filename> - daemon configuration file
- </para>
-
- <para>
- zone files are usually contained within the <filename>/etc/namedb</filename>
- directory, and contain the information (query answers from your site)
- served by your name server.
- </para>
-</sect2>
-
-<sect2>
- <title>Starting BIND</title>
- <para>
- Since bind is installed by default, configuring it all is relatively
- simple.
- </para>
- <para>
- To ensure the named daemon is started at boot, put the following
- modifications in your <filename>/etc/rc.conf</filename>
- </para>
- <programlisting>named_enable="YES"</programlisting>
- <para>To start the daemon manually (after configuring it)</para>
- <screen>&prompt.root; <userinput>ndc start</userinput></screen>
-</sect2>
-
-<sect2>
- <title>Configuration files</title>
- <sect3>
- <title>make-localhost</title>
- <para>Be sure to
- </para>
- <screen>
- &prompt.root; <userinput>cd /etc/namedb
- &prompt.root; sh make-localhost</userinput>
- </screen>
- <para>to properly create your local reverse dns zone file in
- <filename>/etc/namedb/localhost.rev</filename>.
- </para>
- </sect3>
-
- <sect3>
- <title><filename>/etc/namedb/named.conf</filename></title>
-
- <programlisting>
-// $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.37 2001/04/14 00:58:57 murray Exp $
-//
-// Refer to the named(8) man page for details. If you are ever going
-// to setup a primary server, make sure you've understood the hairy
-// details of how DNS is working. Even with simple mistakes, you can
-// break connectivity for affected parties, or cause huge amount of
-// useless Internet traffic.
-
-options {
- directory "/etc/namedb";
-
-// In addition to the "forwarders" clause, you can force your name
-// server to never initiate queries of its own, but always ask its
-// forwarders only, by enabling the following line:
-//
-// forward only;
-
-// If you've got a DNS server around at your upstream provider, enter
-// its IP address here, and enable the line below. This will make you
-// benefit from its cache, thus reduce overall DNS traffic in the
-Internet.
-/*
- forwarders {
- 127.0.0.1;
- };
-*/
- </programlisting>
-
- <para>
- Just as the comment says, if you want to benefit from your uplink's
- cache, you can enable this section of the config file.
-
- Normally, your nameserver will recursively query different nameservers
- until it finds the answer it is looking for. Having this enabled will
- have it automatically see if your uplink's (or whatever provided) ns
- has the requested query.
-
- If your uplink has a heavily trafficked, fast nameserver, enabling
- this properly could work to your advantage.
-
- 127.0.0.1 will *NOT* work here; change this to the ip of a nameserver
- at your uplink.
- </para>
-
- <programlisting>
- /*
- * If there is a firewall between you and nameservers you want
- * to talk to, you might need to uncomment the query-source
- * directive below. Previous versions of BIND always asked
- * questions using port 53, but BIND 8.1 uses an unprivileged
- * port by default.
- */
- // query-source address * port 53;
-
- /*
- * If running in a sandbox, you may have to specify a different
- * location for the dumpfile.
- */
- // dump-file "s/named_dump.db";
-};
-
-// Note: the following will be supported in a future release.
-/*
-host { any; } {
- topology {
- 127.0.0.0/8;
- };
-};
-*/
-
-// Setting up secondaries is way easier and the rough picture for this
-// is explained below.
-//
-// If you enable a local name server, don't forget to enter 127.0.0.1
-// into your /etc/resolv.conf so this server will be queried first.
-// Also, make sure to enable it in /etc/rc.conf.
-
-zone "." {
- type hint;
- file "named.root";
-};
-
-zone "0.0.127.IN-ADDR.ARPA" {
- type master;
- file "localhost.rev";
-};
-
-zone
-"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
- type master;
- file "localhost.rev";
-};
-
-// NB: Do not use the IP addresses below, they are faked, and only
-// serve demonstration/documentation purposes!
-//
-// Example secondary config entries. It can be convenient to become
-// a secondary at least for the zone where your own domain is in. Ask
-// your network administrator for the IP address of the responsible
-// primary.
-//
-// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
-// (This is the first bytes of the respective IP address, in reverse
-// order, with ".IN-ADDR.ARPA" appended.)
-//
-// Before starting to setup a primary zone, better make sure you fully
-// understand how DNS and BIND works, however. There are sometimes
-// unobvious pitfalls. Setting up a secondary is comparably simpler.
-//
-// NB: Don't blindly enable the examples below. :-) Use actual names
-// and addresses instead.
-//
-// NOTE!!! FreeBSD runs bind in a sandbox (see named_flags in rc.conf).
-// The directory containing the secondary zones must be write accessible
-// to bind. The following sequence is suggested:
-//
-// mkdir /etc/namedb/s
-// chown bind.bind /etc/namedb/s
-// chmod 750 /etc/namedb/s
-
-/*
-zone "domain.com" {
- type slave;
- file "s/domain.com.bak";
- masters {
- 192.168.1.1;
- };
-};
-
-zone "0.168.192.in-addr.arpa" {
- type slave;
- file "s/0.168.192.in-addr.arpa.bak";
- masters {
- 192.168.1.1;
- };
-};
-*/
- </programlisting>
- <para>
- These are example slave entries, read below to see more.
- </para>
- <para>
- For each new domain added to your nameserver, you must add one of
- these entries to your <filename>named.conf</filename>
- </para>
- <para>
- The simplest zone entry, can look like
- </para>
- <programlisting>
-zone "foobardomain.org" {
- type master;
- file "foorbardomain.org";
-};
- </programlisting>
-
- <para>For a master entry with the zone information within
- foobardomain.org, or
- </para>
-
- <programlisting>
-zone "foobardomain.org" {
- type slave;
- file "foobardomain.org";
-};
- </programlisting>
-
- <para>
- for a slave. Note that slave zones automatically query the listed
- master (authoritative) name servers for the zone file.
- </para>
- </sect3>
-
- <sect3>
- <title>Zone files</title>
- <para>
- An example master 'foobardomain.org' (existing within
- /etc/namedb/foobardomain.org) is as follows:
- </para>
-
- <programlisting>
-$TTL 3600
-
-foobardomain.org. IN SOA ns1.foobardomain.org. admin.foobardomain.org. (
- 5 ; Serial
- 10800 ; Refresh
- 3600 ; Retry
- 604800 ; Expire
- 86400 ) ; Minimum TTL
-
-; DNS Servers
-@ IN NS ns1.foobardomain.org.
-@ IN NS ns2.foobardomain.org.
-
-; Machine Names
-localhost IN A 127.0.0.1
-ns1 IN A 3.2.1.2
-ns2 IN A 3.2.1.3
-mail IN A 3.2.1.10
-@ IN A 3.2.1.30
-
-; Aliases
-www IN CNAME @
-
-; MX Record
-@ IN MX 10 mail.foobardomain.org.
- </programlisting>
-
- <para>
- Note that every hostname ending in a '.' is an exact hostname, whereas
- everything without a trailing '.' is referenced to the origin. For
- example, www is transalated into www + origin. In our ficitious zone
- file, our origin is foobardomain.org, so www would be
- www.foobardomain.org.
- </para>
-
- <para>
- The format of this file follows:
- </para>
- <programlisting>recordname IN recordtype value</programlisting>
-
- <para>
- The most commonly used DNS records:
- </para>
- <para><emphasis>SOA</emphasis> - start of zone authority</para>
- <para><emphasis>NS</emphasis> - an authoritative nameserver</para>
- <para><emphasis>A</emphasis> - A host address</para>
- <para><emphasis>CNAME</emphasis> - the canonical name for an alias</para>
- <para><emphasis>MX</emphasis> - mail exchange</para>
- <para><emphasis>PTR</emphasis> - a domain name pointer (used in reverse
- dns)</para>
- <programlisting>
-foobardomain.org. IN SOA ns1.foobardomain.org. admin.foobardomain.org. (
- 5 ; Serial
- 10800 ; Refresh after 3 hours
- 3600 ; Retry after 1 hour
- 604800 ; Expire after 1 week
- 86400 ) ; Minimum TTL of 1 day
- </programlisting>
- <para>
- <emphasis>foobardomain.org.</emphasis> - the domain name, also the
- origin for this zone file.
- </para>
- <para><emphasis>ns1.foobardomain.org.</emphasis> - the
- primary/authoritative nameserver for this zone
- </para>
- <para><emphasis>admin.foobardomain.org.</emphasis> - the responsible
- person for this zone, e-mail address with @ replaced.
- (admin@foobardomain.org becomes admin.foobardomain.org)
- </para>
- <para>
- <emphasis>5</emphasis> - the serial number of the file. this must be
- incremented each time the zone file is modified. Nowadays, many
- admins prefer a yyyymmddrr format for the serial number. 2001041002
- would mean last modified 04/10/2001, the latter 02 being the second
- time the zone file has been modified this day. The serial number is
- important as it alerts slave nameservers for a zone when it is updated.
- </para>
-
- <programlisting>
-@ IN NS ns1.foobardomain.org.
- </programlisting>
- <para>
- This is an NS entry. Every nameserver that is going to reply
- authoritatively for the zone must have one of these entries. The @
- is seen here could have been 'foobardomain.org.' The @ transalates to
- the origin.
- </para>
-
- <programlisting>
-localhost IN A 127.0.0.1
-ns1 IN A 3.2.1.2
-ns2 IN A 3.2.1.3
-mail IN A 3.2.1.10
-@ IN A 3.2.1.30
- </programlisting>
- <para>
- The A record indicates machine names. As seen above,
- ns1.foobardomain.org would resolve to 3.2.1.2. Again, the origin
- symbol, @, is used here, thus meaning foobardomain.org would resolve
- to 3.2.1.30.
- </para>
-
- <programlisting>
-www IN CNAME @
- </programlisting>
- <para>
- The canonical name record is usually used for giving aliases to a
- machine. In the example, www is aliased to the machine addressed to
- the origin, or foobardomain.org (3.2.1.30). CNAMEs can be used to
- provide alias hostnames, or round robin one hostname among multiple
- machines.
- </para>
-
- <programlisting>
-@ IN MX 10 mail.foobardomain.org.
- </programlisting>
-
- <para>
- The MX record indictes which mail servers are responsible for handling
- incoming mail for the zone. mail.foobardomain.org is the hostname of
- the mail server, and 10 being the priority of that mailserver.
- </para>
-
- <para>
- One can have several mailservers, with priorities of 3, 2, 1. A mail
- server attempting to deliver to foobardomain.org would first try the
- highest priority MX, then the second highest, etc, until the mail can
- be properly delivered.
- </para>
-
- <para>
- For in-addr.arpa zone files (reverse dns), the same format is used,
- except with PTR entries instead of A or CNAME.
- </para>
-
- <programlisting>
-$TTL 3600
-
-1.2.3.in-addr.arpa. IN SOA ns1.foobardomain.org. admin.foobardomain.org. (
- 5 ; Serial
- 10800 ; Refresh
- 3600 ; Retry
- 604800 ; Expire
- 3600 ) ; Minimum
-
-@ IN NS ns1.foobardomain.org.
-@ IN NS ns2.foobardomain.org.
-
-2 IN PTR ns1.foobardomain.org.
-3 IN PTR ns2.foobardomain.org.
-10 IN PTR mail.foobardomain.org.
-30 IN PTR foobardomain.org.
- </programlisting>
- <para>
- This file gives the proper ip to hostname mappings of our above
- ficticious domain.
- </para>
- </sect3>
-</sect2>
-
-<sect2>
- <title>Caching Name Server</title>
- <para>
- A caching nameserver is simply a nameserver that is not authoritative for
- any zones. It simply asks queries of its own, and remembers them for
- later use. To set one up, just configure the name server as usual, omitting any inclusions of zones.
- </para>
-</sect2>
-
-<sect2>
- <title>How to use the nameserver</title>
-
- <para>If setup properly, the nameserver should be accessible through the
- network and locally. <filename>/etc/resolv.conf</filename> must contain
- a nameserver entry with the local ip so it will query the local name
- server first.
- </para>
-
- <para>
- To access it over the network, the machine must have the nameserver's ip
- set properly in its own nameserver configuration options.
- </para>
-</sect2>
-
-<sect2>
- <title>Security</title>
-
- <para>Although BIND is the most common implementation of DNS, there is
- always the issue of security. Possible and exploitable security holes
- are sometimes found.
- </para>
-
- <para>
- It is a good idea to subscribe to <ulink url="http://www.cert.org">CERT</ulink>
- and
- <ulink url="http://www.freebsd.org/handbook/eresources.html#ERESOURCES-MAIL">freebsd-announce</ulink>
- to stay up to date with the current Internet and FreeBSD security issues.
- </para>
-
- <para>
- If a problem arises, keeping your sources up to date and having a fresh
- build of named can't hurt.
- </para>
-</sect2>
-
-<sect2>
- <title>Further Reading</title>
- <para>
- &man.ndc.8; &man.named.8; &man.named.conf.5;
- </para>
-
- <para>
- Official ISC BIND Page
- <ulink url="http://www.isc.org/products/BIND/">http://www.isc.org/products/BIND/</ulink>
- </para>
-
- <para>
- BIND FAQ
- <ulink url="http://www.nominum.com/resources/faqs/bind-faqs.html">
- http://www.nominum.com/resources/faqs/bind-faqs.html</ulink>
- </para>
-
- <para>
- <ulink url="http://www.oreilly.com/catalog/dns4/">O'Reilly DNS and BIND 4th Edition</ulink>
- </para>
-
- <para>
- <ulink url="http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1034.txt">RFC1034 - Domain Names -
- Concepts and Facilities</ulink>
- </para>
-
- <para>
- <ulink url="http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1035.txt">RFC1035 - Domain Names -
- Implementation and Specification</ulink>
- </para>
-</sect2>
-
-</sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/appendix.decl b/en_US.ISO8859-1/books/handbook/appendix.decl
deleted file mode 100644
index 5b0425623d..0000000000
--- a/en_US.ISO8859-1/books/handbook/appendix.decl
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE appendix PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
diff --git a/en_US.ISO8859-1/books/handbook/authors.ent b/en_US.ISO8859-1/books/handbook/authors.ent
deleted file mode 100644
index 4e51510bdf..0000000000
--- a/en_US.ISO8859-1/books/handbook/authors.ent
+++ /dev/null
@@ -1,616 +0,0 @@
-<!--
- 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.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.154 2001/04/07 02:40:10 kuriyama Exp $
--->
-
-<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>">
-
-<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>">
-
-<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>">
-
-<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>">
-
-<!ENTITY a.adrian "Adrian Chadd <email>adrian@FreeBSD.org</email>">
-
-<!ENTITY a.akiyama "Shunsuke Akiyama <email>akiyama@FreeBSD.org</email>">
-
-<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>">
-
-<!ENTITY a.alex "Alexander Langer <email>alex@FreeBSD.org</email>">
-
-<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>">
-
-<!ENTITY a.amurai "Atsushi Murai <email>amurai@FreeBSD.org</email>">
-
-<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>">
-
-<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>">
-
-<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>">
-
-<!ENTITY a.asami "Satoshi Asami <email>asami@FreeBSD.org</email>">
-
-<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>">
-
-<!ENTITY a.assar "Assar Westerlund <email>assar@FreeBSD.org</email>">
-
-<!ENTITY a.ats "Andreas Schulz <email>ats@FreeBSD.org</email>">
-
-<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>">
-
-<!ENTITY a.babkin "Sergey Babkin <email>babkin@FreeBSD.org</email>">
-
-<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>">
-
-<!ENTITY a.ben "Ben Smithurst <email>ben@FreeBSD.org</email>">
-
-<!ENTITY a.bean "Rebecca Visger <email>bean@FreeBSD.org</email>">
-
-<!ENTITY a.benno "Benno Rice <email>benno@FreeBSD.org</email>">
-
-<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>">
-
-<!ENTITY a.bmah "Bruce A. Mah <email>bmah@FreeBSD.org</email>">
-
-<!ENTITY a.bmilekic "Bosko Milekic <email>bmilekic@FreeBSD.org</email>">
-
-<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>">
-
-<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>">
-
-<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>">
-
-<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>">
-
-<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>">
-
-<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>">
-
-<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>">
-
-<!ENTITY a.chm "Christoph Herrmann <email>chm@FreeBSD.org</email>">
-
-<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>">
-
-<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>">
-
-<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>">
-
-<!ENTITY a.cjh "Junho CHOI <email>cjh@FreeBSD.org</email>">
-
-<!ENTITY a.clive "Clive Lin <email>clive@FreeBSD.org</email>">
-
-<!ENTITY a.cp "Chuck Paterson <email>cp@FreeBSD.org</email>">
-
-<!ENTITY a.cokane "Coleman Kane <email>cokane@FreeBSD.org</email>">
-
-<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>">
-
-<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>">
-
-<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>">
-
-<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>">
-
-<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>">
-
-<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>">
-
-<!ENTITY a.dannyboy "Daniel Harris <email>dannyboy@FreeBSD.org</email>">
-
-<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>">
-
-<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>">
-
-<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>">
-
-<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>">
-
-<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>">
-
-<!ENTITY a.dd "Dima Dorfman <email>dd@FreeBSD.org</email>">
-
-<!ENTITY a.dec "David E. Cross <email>dec@FreeBSD.org</email>">
-
-<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>">
-
-<!ENTITY a.demon "Dmitry Sivachenko <email>demon@FreeBSD.org</email>">
-
-<!ENTITY a.des "Dag-Erling C. Sm&oslash;rgrav <email>des@FreeBSD.org</email>">
-
-<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>">
-
-<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>">
-
-<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>">
-
-<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>">
-
-<!ENTITY a.dinoex "Dirk Meyer <email>dinoex@FreeBSD.org</email>">
-
-<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>">
-
-<!ENTITY a.dirk "Dirk Fr&ouml;mberg <email>dirk@FreeBSD.org</email>">
-
-<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>">
-
-<!ENTITY a.dmlb "Duncan Barclay <email>dmlb@FreeBSD.org</email>">
-
-<!ENTITY a.dougb "Doug Barton <email>DougB@FreeBSD.org</email>">
-
-<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>">
-
-<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>">
-
-<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>">
-
-<!ENTITY a.dwmalone "David Malone <email>dwmalone@FreeBSD.org</email>">
-
-<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>">
-
-<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>">
-
-<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>">
-
-<!ENTITY a.eric "Eric Melville <email>eric@FreeBSD.org</email>">
-
-<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>">
-
-<!ENTITY a.faq "FAQ Maintainer <email>faq@FreeBSD.org</email>">
-
-<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>">
-
-<!ENTITY a.flathill "Seiichirou Hiraoka <email>flathill@FreeBSD.org</email>">
-
-<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>">
-
-<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>">
-
-<!ENTITY a.furuta "Atsushi Furuta <email>furuta@FreeBSD.org</email>">
-
-<!ENTITY a.gad "Garance A Drosehn <email>gad@FreeBSD.org</email>">
-
-<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>">
-
-<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>">
-
-<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>">
-
-<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>">
-
-<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>">
-
-<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>">
-
-<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>">
-
-<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>">
-
-<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>">
-
-<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>">
-
-<!ENTITY a.greid "George C. A. Reid <email>greid@FreeBSD.org</email>">
-
-<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>">
-
-<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>">
-
-<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>">
-
-<!ENTITY a.gshapiro "Gregory Neil Shapiro <email>gshapiro@FreeBSD.org</email>">
-
-<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>">
-
-<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>">
-
-<!ENTITY a.hanai "Hiroyuki HANAI <email>hanai@FreeBSD.org</email>">
-
-<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>">
-
-<!ENTITY a.hrs "Hiroki Sato <email>hrs@FreeBSD.org</email>">
-
-<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>">
-
-<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>">
-
-<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>">
-
-<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>">
-
-<!ENTITY a.horikawa "Kazuo Horikawa <email>horikawa@FreeBSD.org</email>">
-
-<!ENTITY a.hosokawa "Tatsumi Hosokawa <email>hosokawa@FreeBSD.org</email>">
-
-<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>">
-
-<!ENTITY a.iedowse "Ian Dowse <email>iedowse@FreeBSD.org</email>">
-
-<!ENTITY a.ijliao "Ying-Chieh Liao <email>ijliao@FreeBSD.org</email>">
-
-<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>">
-
-<!ENTITY a.imura "R. Imura <email>imura@FreeBSD.org</email>">
-
-<!ENTITY a.issei "Issei Suzuki <email>issei@FreeBSD.org</email>">
-
-<!ENTITY a.itojun "Jun-ichiro Itoh <email>itojun@itojun.org</email>">
-
-<!ENTITY a.iwasaki "Mitsuru IWASAKI <email>iwasaki@FreeBSD.org</email>">
-
-<!ENTITY a.jake "Jake Burkholder <email>jake@FreeBSD.org</email>">
-
-<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>">
-
-<!ENTITY a.jayanth "Jayanth Vijayaraghavan <email>jayanth@FreeBSD.org</email>">
-
-<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>">
-
-<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>">
-
-<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>">
-
-<!ENTITY a.jeh "James Housley <email>jeh@FreeBSD.org</email>">
-
-<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>">
-
-<!ENTITY a.jesper "Jesper Skriver <email>jesper@FreeBSD.org</email>">
-
-<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>">
-
-<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>">
-
-<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>">
-
-<!ENTITY a.jgreco "Joe Greco <email>jgreco@FreeBSD.org</email>">
-
-<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>">
-
-<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>">
-
-<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>">
-
-<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>">
-
-<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>">
-
-<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>">
-
-<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>">
-
-<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>">
-
-<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>">
-
-<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>">
-
-<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>">
-
-<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>">
-
-<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>">
-
-<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>">
-
-<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>">
-
-<!ENTITY a.keichii "Michael C. Wu <email>keichii@FreeBSD.org</email>">
-
-<!ENTITY a.joerg "J&ouml;rg Wunsch <email>joerg@FreeBSD.org</email>">
-
-<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>">
-
-<!ENTITY a.jon "Jonathan Chen <email>jon@FreeBSD.org</email>">
-
-<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>">
-
-<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>">
-
-<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>">
-
-<!ENTITY a.jwd "John W. DeBoskey <email>jwd@FreeBSD.org</email>">
-
-<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>">
-
-<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>">
-
-<!ENTITY a.kato "Takenori KATO <email>kato@FreeBSD.org</email>">
-
-<!ENTITY a.kbyanc "Kelly Yancey <email>kbyanc@FreeBSD.org</email>">
-
-<!ENTITY a.keith "Jing-Tang Keith Jang <email>keith@FreeBSD.org</email>">
-
-<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>">
-
-<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>">
-
-<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>">
-
-<!ENTITY a.kiri "Kazuhiko Kiriyama <email>kiri@FreeBSD.org</email>">
-
-<!ENTITY a.kjc "Kenjiro Cho <email>kjc@FreeBSD.org</email>">
-
-<!ENTITY a.knu "Akinori MUSHA <email>knu@FreeBSD.org</email>">
-
-<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>">
-
-<!ENTITY a.kuriyama "Jun Kuriyama <email>kuriyama@FreeBSD.org</email>">
-
-<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>">
-
-<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>">
-
-<!ENTITY a.lioux "M&aacute;rio S&eacute;rgio Fujikawa Ferreira<email>lioux@FreeBSD.org</email>">
-
-<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>">
-
-<!ENTITY a.lkoeller "Lars Koeller <email>lkoeller@FreeBSD.org</email>">
-
-<!ENTITY a.luigi "Luigi Rizzo <email>luigi@FreeBSD.org</email>">
-
-<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>">
-
-<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>">
-
-<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>">
-
-<!ENTITY a.marko "Mark Ovens <email>marko@FreeBSD.org</email>">
-
-<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>">
-
-<!ENTITY a.max "Masafumi NAKANE <email>max@FreeBSD.org</email>">
-
-<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>">
-
-<!ENTITY a.mb "Maxim Bolotin <email>mb@FreeBSD.org</email>">
-
-<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>">
-
-<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>">
-
-<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>">
-
-<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>">
-
-<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>">
-
-<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>">
-
-<!ENTITY a.mi "Mikhail Teterin <email>mi@FreeBSD.org</email>">
-
-<!ENTITY a.mikeh "Mike Heffner <email>mikeh@FreeBSD.org</email>">
-
-<!ENTITY a.mita "Yoshio MITA <email>mita@FreeBSD.org</email>">
-
-<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>">
-
-<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>">
-
-<!ENTITY a.motoyuki "Motoyuki Konno <email>motoyuki@FreeBSD.org</email>">
-
-<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>">
-
-<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>">
-
-<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>">
-
-<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>">
-
-<!ENTITY a.murray "Murray Stokely <email>murray@FreeBSD.org</email>">
-
-<!ENTITY a.nakai "Yukihiro Nakai <email>nakai@FreeBSD.org</email>">
-
-<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>">
-
-<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>">
-
-<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>">
-
-<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>">
-
-<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>">
-
-<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>">
-
-<!ENTITY a.non "Noriaki Mitsunaga <email>non@FreeBSD.org</email>">
-
-<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>">
-
-<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>">
-
-<!ENTITY a.nsouch "Nicolas Souchu <email>nsouch@FreeBSD.org</email>">
-
-<!ENTITY a.nyan "Yoshihiro Takahashi <email>nyan@FreeBSD.org</email>">
-
-<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>">
-
-<!ENTITY a.okazaki "OKAZAKI Tetsurou <email>okazaki@FreeBSD.org</email>">
-
-<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>">
-
-<!ENTITY a.olgeni "Jimmy Olgeni <email>olgeni@FreeBSD.org</email>">
-
-<!ENTITY a.onoe "Atsushi Onoe <email>onoe@FreeBSD.org</email>">
-
-<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>">
-
-<!ENTITY a.orion "Orion Hodson <email>orion@FreeBSD.org</email>">
-
-<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>">
-
-<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>">
-
-<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>">
-
-<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>">
-
-<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>">
-
-<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>">
-
-<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>">
-
-<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>">
-
-<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>">
-
-<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>">
-
-<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>">
-
-<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>">
-
-<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>">
-
-<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>">
-
-<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>">
-
-<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>">
-
-<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>">
-
-<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>">
-
-<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>">
-
-<!ENTITY a.roam "Peter Pentchev <email>roam@FreeBSD.org</email>">
-
-<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>">
-
-<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>">
-
-<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>">
-
-<!ENTITY a.rv "Rajesh Vaidheeswarran <email>rv@FreeBSD.org</email>">
-
-<!ENTITY a.rvb "Robert V. Baron <email>rvb@FreeBSD.org</email>">
-
-<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>">
-
-<!ENTITY a.sada "SADA Kenji <email>sada@FreeBSD.org</email>">
-
-<!ENTITY a.sanpei "Yoshiro Sanpei MIHIRA <email>sanpei@FreeBSD.org</email>">
-
-<!ENTITY a.schweikh "Jens Schweikhardt <email>schweikh@FreeBSD.org</email>">
-
-<!ENTITY a.scottl "Scott Long <email>scottl@FreeBSD.org</email>">
-
-<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>">
-
-<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>">
-
-<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>">
-
-<!ENTITY a.semenu "Ustimenko Semen <email>semenu@FreeBSD.org</email>">
-
-<!ENTITY a.sf "FUJISHIMA Satsuki <email>sf@FreeBSD.org</email>">
-
-<!ENTITY a.shafeeq "Shafeeq Sinnamohideen <email>shafeeq@FreeBSD.org</email>">
-
-<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>">
-
-<!ENTITY a.shiba "Takeshi Shibagaki <email>shiba@FreeBSD.org</email>">
-
-<!ENTITY a.shige "Shigeyuki Fukushima <email>shige@FreeBSD.org</email>">
-
-<!ENTITY a.shin "Yoshinobu Inoue <email>shin@FreeBSD.org</email>">
-
-<!ENTITY a.simokawa "Hidetoshi Shimokawa <email>simokawa@FreeBSD.org</email>">
-
-<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>">
-
-<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>">
-
-<!ENTITY a.sobomax "Maxim Sobolev <email>sobomax@FreeBSD.org</email>">
-
-<!ENTITY a.sos "S&oslash;ren Schmidt <email>sos@FreeBSD.org</email>">
-
-<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>">
-
-<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>">
-
-<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>">
-
-<!ENTITY a.sumikawa "Munechika Sumikawa <email>sumikawa@FreeBSD.org</email>">
-
-<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>">
-
-<!ENTITY a.tanimura "Seigo Tanimura <email>tanimura@FreeBSD.org</email>">
-
-<!ENTITY a.taoka "Satoshi Taoka <email>taoka@FreeBSD.org</email>">
-
-<!ENTITY a.takawata "Takanori Watanabe <email>takawata@FreeBSD.org</email>">
-
-<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>">
-
-<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>">
-
-<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>">
-
-<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>">
-
-<!ENTITY a.tmm "Thomas M&ouml;stl <email>tmm@FreeBSD.org</email>">
-
-<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>">
-
-<!ENTITY a.tomsoft "Thomas-Henning von Kamptz <email>tomsoft@FreeBSD.org</email>">
-
-<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>">
-
-<!ENTITY a.toshi "Toshihiko Arai <email>toshi@FreeBSD.org</email>">
-
-<!ENTITY a.trevor "Trevor Johnson <email>trevor@FreeBSD.org</email>">
-
-<!ENTITY a.truckman "Don &ldquo;Truck&rdquo; Lewis <email>truckman@FreeBSD.org</email>">
-
-<!ENTITY a.uch "UCHIYAMA Yasushi <email>uch@FreeBSD.org</email>">
-
-<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>">
-
-<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>">
-
-<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>">
-
-<!ENTITY a.ume "Hajimu UMEMOTO <email>ume@FreeBSD.org</email>">
-
-<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>">
-
-<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>">
-
-<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>">
-
-<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>">
-
-<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>">
-
-<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>">
-
-<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>">
-
-<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>">
-
-<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>">
-
-<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>">
-
-<!ENTITY a.wsanchez "Wilfredo S&aacute;nchez <email>wsanchez@FreeBSD.org</email>">
-
-<!ENTITY a.yar "Yar Tikhiy <email>yar@FreeBSD.org</email>">
-
-<!ENTITY a.yokota "Kazutaka YOKOTA <email>yokota@FreeBSD.org</email>">
-
diff --git a/en_US.ISO8859-1/books/handbook/backups/chapter.sgml b/en_US.ISO8859-1/books/handbook/backups/chapter.sgml
deleted file mode 100644
index d0a4ffbaa3..0000000000
--- a/en_US.ISO8859-1/books/handbook/backups/chapter.sgml
+++ /dev/null
@@ -1,731 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/backups/chapter.sgml,v 1.27 2000/12/15 21:52:33 jim Exp $
--->
-
-<chapter id="backups">
- <title>Backups</title>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>The following chapter will cover methods of backing up data, and
- the programs used to create those backups. If you would like to
- contribute something to this section, send it to the &a.doc;.</para>
- </sect1>
-
- <sect1 id="backups-tapebackups">
- <title>Tape Media</title>
-
- <para>The major tape media are the 4mm, 8mm, QIC, mini-cartridge and
- DLT.</para>
-
- <sect2 id="backups-tapebackups-4mm">
- <title>4mm (DDS: Digital Data Storage)</title>
-
- <para>4mm tapes are replacing QIC as the workstation backup media of
- choice. This trend accelerated greatly when Conner purchased Archive,
- a leading manufacturer of QIC drives, and then stopped production of
- QIC drives. 4mm drives are small and quiet but do not have the
- reputation for reliability that is enjoyed by 8mm drives. The
- cartridges are less expensive and smaller (3 x 2 x 0.5 inches, 76 x 51
- x 12 mm) than 8mm cartridges. 4mm, like 8mm, has comparatively short
- head life for the same reason, both use helical scan.</para>
-
- <para>Data throughput on these drives starts ~150kB/s, peaking at ~500kB/s.
- Data capacity starts at 1.3 GB and ends at 2.0 GB. Hardware
- compression, available with most of these drives, approximately
- doubles the capacity. Multi-drive tape library units can have 6
- drives in a single cabinet with automatic tape changing. Library
- capacities reach 240 GB.</para>
-
- <para>The DDS-3 standard now supports tape capacities up to 12GB (or
- 24GB compressed).</para>
-
- <para>4mm drives, like 8mm drives, use helical-scan. All the benefits
- and drawbacks of helical-scan apply to both 4mm and 8mm drives.</para>
-
- <para>Tapes should be retired from use after 2,000 passes or 100 full
- backups.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-8mm">
- <title>8mm (Exabyte)</title>
-
- <para>8mm tapes are the most common SCSI tape drives; they are the best
- choice of exchanging tapes. Nearly every site has an exabyte 2 GB 8mm
- tape drive. 8mm drives are reliable, convenient and quiet. Cartridges
- are inexpensive and small (4.8 x 3.3 x 0.6 inches; 122 x 84 x 15 mm).
- One downside of 8mm tape is relatively short head and tape life due to
- the high rate of relative motion of the tape across the heads.</para>
-
- <para>Data throughput ranges from ~250kB/s to ~500kB/s. Data sizes start
- at 300 MB and go up to 7 GB. Hardware compression, available with
- most of these drives, approximately doubles the capacity. These
- drives are available as single units or multi-drive tape libraries
- with 6 drives and 120 tapes in a single cabinet. Tapes are changed
- automatically by the unit. Library capacities reach 840+ GB.</para>
-
- <para>The Exabyte <quote>Mammoth</quote> model supports 12GB on one tape
- (24GB with compression) and costs approximately twice as much as
- conventional tape drives.</para>
-
- <para>Data is recorded onto the tape using helical-scan, the heads are
- positioned at an angle to the media (approximately 6 degrees). The
- tape wraps around 270 degrees of the spool that holds the heads. The
- spool spins while the tape slides over the spool. The result is a
- high density of data and closely packed tracks that angle across the
- tape from one edge to the other.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-qic">
- <title>QIC</title>
-
- <para>QIC-150 tapes and drives are, perhaps, the most common tape drive
- and media around. QIC tape drives are the least expensive "serious"
- backup drives. The downside is the cost of media. QIC tapes are
- expensive compared to 8mm or 4mm tapes, up to 5 times the price per GB
- data storage. But, if your needs can be satisfied with a half-dozen
- tapes, QIC may be the correct choice. QIC is the
- <emphasis>most</emphasis> common tape drive. Every site has a QIC
- drive of some density or another. Therein lies the rub, QIC has a
- large number of densities on physically similar (sometimes identical)
- tapes. QIC drives are not quiet. These drives audibly seek before
- they begin to record data and are clearly audible whenever reading,
- writing or seeking. QIC tapes measure (6 x 4 x 0.7 inches; 15.2 x
- 10.2 x 1.7 mm). <link
- linkend="backups-tapebackups-mini">Mini-cartridges</link>, which
- also use 1/4" wide tape are discussed separately. Tape libraries and
- changers are not available.</para>
-
- <para>Data throughput ranges from ~150kB/s to ~500kB/s. Data capacity
- ranges from 40 MB to 15 GB. Hardware compression is available on many
- of the newer QIC drives. QIC drives are less frequently installed;
- they are being supplanted by DAT drives.</para>
-
- <para>Data is recorded onto the tape in tracks. The tracks run along
- the long axis of the tape media from one end to the other. The number
- of tracks, and therefore the width of a track, varies with the tape's
- capacity. Most if not all newer drives provide backward-compatibility
- at least for reading (but often also for writing). QIC has a good
- reputation regarding the safety of the data (the mechanics are simpler
- and more robust than for helical scan drives).</para>
-
- <para>Tapes should be retired from use after 5,000 backups.</para>
- </sect2>
-
-<![ %not.published; [
-
- <sect2 id="backups-tapebackups-mini">
- <title>* Mini-Cartridge</title>
-
- <para></para>
- </sect2>
-
-]]>
-
- <sect2 id="backups-tapebackups-dlt">
- <title>DLT</title>
-
- <para>DLT has the fastest data transfer rate of all the drive types
- listed here. The 1/2" (12.5mm) tape is contained in a single spool
- cartridge (4 x 4 x 1 inches; 100 x 100 x 25 mm). The cartridge has a
- swinging gate along one entire side of the cartridge. The drive
- mechanism opens this gate to extract the tape leader. The tape leader
- has an oval hole in it which the drive uses to "hook" the tape. The
- take-up spool is located inside the tape drive. All the other tape
- cartridges listed here (9 track tapes are the only exception) have
- both the supply and take-up spools located inside the tape cartridge
- itself.</para>
-
- <para>Data throughput is approximately 1.5MB/s, three times the throughput of
- 4mm, 8mm, or QIC tape drives. Data capacities range from 10GB to 20GB
- for a single drive. Drives are available in both multi-tape changers
- and multi-tape, multi-drive tape libraries containing from 5 to 900
- tapes over 1 to 20 drives, providing from 50GB to 9TB of
- storage.</para>
-
- <para>With compression, DLT Type IV format supports up to 70GB
- capacity.</para>
-
- <para>Data is recorded onto the tape in tracks parallel to the direction
- of travel (just like QIC tapes). Two tracks are written at once.
- Read/write head lifetimes are relatively long; once the tape stops
- moving, there is no relative motion between the heads and the
- tape.</para>
- </sect2>
-
- <sect2>
- <title id="backups-tapebackups-ait">AIT</title>
-
- <para>AIT is a new format from Sony, and can hold up to 50GB (with
- compression) per tape. The tapes contain memory chips which retain an
- index of the tape's contents. This index can be rapidly read by the
- tape drive to determine the position of files on the tape, instead of
- the several minutes that would be required for other tapes. Software
- such as SAMS:Alexandria can operate forty or more AIT tape libraries,
- communicating directly with the tape's memory chip to display the
- contents on screen, determine what files where backed up to which
- tape, locate the correct tape, load it, and restore the data from the
- tape.</para>
-
- <para>Libraries like this cost in the region of $20,000, pricing them a
- little out of the hobbyist market.</para>
- </sect2>
-
- <sect2>
- <title>Using a New Tape for the First Time</title>
-
- <para>The first time that you try to read or write a new, completely
- blank tape, the operation will fail. The console messages should be
- similar to:</para>
-
- <screen>sa0(ncr1:4:0): NOT READY asc:4,1
-sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
-
- <para>The tape does not contain an Identifier Block (block number 0).
- All QIC tape drives since the adoption of QIC-525 standard write an
- Identifier Block to the tape. There are two solutions:</para>
-
- <para><command>mt fsf 1</command> causes the tape drive to write an
- Identifier Block to the tape.</para>
-
- <para>Use the front panel button to eject the tape.</para>
-
- <para>Re-insert the tape and &man.dump.8; data to the tape.</para>
-
- <para>&man.dump.8; will report <literal>DUMP: End of tape
- detected</literal> and the console will show: <literal>HARDWARE
- FAILURE info:280 asc:80,96</literal></para>
-
- <para>rewind the tape using: <command>mt rewind</command></para>
-
- <para>Subsequent tape operations are successful.</para>
- </sect2>
- </sect1>
-
- <sect1 id="backup-programs">
- <title>Backup Programs</title>
-
- <para>The three major programs are
- &man.dump.8;,
- &man.tar.1;,
- and
- &man.cpio.1;.</para>
-
- <sect2>
- <title>Dump and Restore</title>
-
- <para>&man.dump.8; and &man.restore.8; are the traditional Unix backup
- programs. They operate on the drive as a collection of disk blocks,
- below the abstractions of files, links and directories that are
- created by the filesystems. &man.dump.8; backs up devices, entire
- filesystems, not parts of a filesystem and not directory trees that
- span more than one filesystem, using either soft links &man.ln.1; or
- mounting one filesystem onto another. &man.dump.8; does not write
- files and directories to tape, but rather writes the data blocks that
- are the building blocks of files and directories. &man.dump.8; has
- quirks that remain from its early days in Version 6 of ATT Unix (circa
- 1975). The default parameters are suitable for 9-track tapes (6250
- bpi), not the high-density media available today (up to 62,182 ftpi).
- These defaults must be overridden on the command line to utilize the
- capacity of current tape drives.</para>
-
- <para>&man.rdump.8; and &man.rrestore.8; backup data across the network
- to a tape drive attached to another computer. Both programs rely upon
- &man.rcmd.3; and &man.ruserok.3; to access the remote tape drive.
- Therefore, the user performing the backup must have
- <literal>rhosts</literal> access to the remote computer. The
- arguments to &man.rdump.8; and &man.rrestore.8; must suitable to use
- on the remote computer. (e.g. When <command>rdump</command>ing from
- a FreeBSD computer to an Exabyte tape drive connected to a Sun called
- <hostid>komodo</hostid>, use: <command>/sbin/rdump 0dsbfu 54000 13000
- 126 komodo:/dev/nrsa8 /dev/rda0a 2>&amp;1</command>) Beware: there
- are security implications to allowing <literal>rhosts</literal>
- commands. Evaluate your situation carefully.</para>
- </sect2>
-
- <sect2>
- <title>Tar</title>
-
- <para>&man.tar.1; also dates back to Version 6 of ATT Unix (circa 1975).
- &man.tar.1; operates in cooperation with the filesystem; &man.tar.1;
- writes files and directories to tape. &man.tar.1; does not support the
- full range of options that are available from &man.cpio.1;, but
- &man.tar.1; does not require the unusual command pipeline that
- &man.cpio.1; uses.</para>
-
- <para>Most versions of &man.tar.1; do not support backups across the
- network. The GNU version of &man.tar.1;, which FreeBSD utilizes,
- supports remote devices using the same syntax as &man.rdump.8;. To
- &man.tar.1; to an Exabyte tape drive connected to a Sun called
- <hostid>komodo</hostid>, use: <command>/usr/bin/tar cf
- komodo:/dev/nrsa8 . 2>&amp;1</command>. For versions without remote
- device support, you can use a pipeline and &man.rsh.1; to send the
- data to a remote tape drive.</para>
-
- <screen>&prompt.root; <userinput>tar cf - . | rsh <replaceable>hostname</replaceable> dd of=<replaceable>tape-device</replaceable> obs=20b</userinput></screen>
-
- <para>If you're worried about the security of backing over a network
- you should use the &man.ssh.1; command instead of &man.rsh.1;.</para>
- </sect2>
-
- <sect2>
- <title>Cpio</title>
-
- <para>&man.cpio.1; is the original Unix file interchange tape program
- for magnetic media. &man.cpio.1; has options (among many others) to
- perform byte-swapping, write a number of different archives format,
- and pipe the data to other programs. This last feature makes
- &man.cpio.1; and excellent choice for installation media.
- &man.cpio.1; does not know how to walk the directory tree and a list
- of files must be provided through <filename>stdin</filename>.</para>
-
- <para>&man.cpio.1; does not support backups across the network. You can
- use a pipeline and &man.rsh.1; to send the data to a remote tape
- drive. (XXX add an example command)</para>
- </sect2>
-
- <sect2>
- <title>Pax</title>
-
- <para>&man.pax.1; is IEEE/POSIX's answer to &man.tar.1; and
- &man.cpio.1;. Over the years the various versions of &man.tar.1;
- and &man.cpio.1; have gotten slightly incompatible. So rather than
- fight it out to fully standardize them, POSIX created a new archive
- utility. &man.pax.1; attempts to read and write many of the various
- &man.cpio.1; and &man.tar.1; formats, plus new formats of its own.
- Its command set more resembles &man.cpio.1; than &man.tar.1;.</para>
- </sect2>
-
- <sect2 id="backups-programs-amanda">
- <title>Amanda</title>
-
- <para><ulink url="../ports/misc.html#amanda-2.4.0">Amanda</ulink>
- (Advanced Maryland Network Disk Archiver) is a client/server backup
- system, rather than a single program. An Amanda server will backup to
- a single tape drive any number of computers that have Amanda clients
- and network communications with the Amanda server. A common problem
- at locations with a number of large disks is the length of time
- required to backup to data directly to tape exceeds the amount of time
- available for the task. Amanda solves this problem. Amanda can use a
- "holding disk" to backup several filesystems at the same time. Amanda
- creates "archive sets": a group of tapes used over a period of time to
- create full backups of all the filesystems listed in Amanda's
- configuration file. The "archive set" also contains nightly
- incremental (or differential) backups of all the filesystems.
- Restoring a damaged filesystem requires the most recent full backup
- and the incremental backups.</para>
-
- <para>The configuration file provides fine control backups and the
- network traffic that Amanda generates. Amanda will use any of the
- above backup programs to write the data to tape. Amanda is available
- as either a port or a package, it is not installed by default.</para>
- </sect2>
-
- <sect2>
- <title>Do Nothing</title>
-
- <para><quote>Do nothing</quote> is not a computer program, but it is the
- most widely used backup strategy. There are no initial costs. There
- is no backup schedule to follow. Just say no. If something happens
- to your data, grin and bear it!</para>
-
- <para>If your time and your data is worth little to nothing, then
- <quote>Do nothing</quote> is the most suitable backup program for your
- computer. But beware, Unix is a useful tool, you may find that within
- six months you have a collection of files that are valuable to
- you.</para>
-
- <para><quote>Do nothing</quote> is the correct backup method for
- <filename>/usr/obj</filename> and other directory trees that can be
- exactly recreated by your computer. An example is the files that
- comprise these handbook pages-they have been generated from
- <acronym>SGML</acronym> input files. Creating backups of these
- <acronym>HTML</acronym> files is not necessary. The
- <acronym>SGML</acronym> source files are backed up regularly.</para>
- </sect2>
-
- <sect2>
- <title>Which Backup Program is Best?</title>
-
- <para>&man.dump.8; <emphasis>Period.</emphasis> Elizabeth D. Zwicky
- torture tested all the backup programs discussed here. The clear
- choice for preserving all your data and all the peculiarities of Unix
- filesystems is &man.dump.8;. Elizabeth created filesystems containing
- a large variety of unusual conditions (and some not so unusual ones)
- and tested each program by doing a backup and restore of that
- filesystems. The peculiarities included: files with holes, files with
- holes and a block of nulls, files with funny characters in their
- names, unreadable and unwritable files, devices, files that change
- size during the backup, files that are created/deleted during the
- backup and more. She presented the results at LISA V in Oct. 1991.
- See <ulink
- url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">torture-testing
- Backup and Archive Programs</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Emergency Restore Procedure</title>
-
- <sect3>
- <title>Before the Disaster</title>
-
- <para>There are only four steps that you need to perform in
- preparation for any disaster that may occur.</para>
-
- <para>First, print the disklabel from each of your disks
- (<command>e.g. disklabel da0 | lpr</command>), your filesystem table
- (<filename>/etc/fstab</filename>) and all boot messages,
- two copies of
- each.</para>
-
- <para>Second, determine that the boot and fix-it floppies
- (<filename>boot.flp</filename> and <filename>fixit.flp</filename>)
- have all your devices. The easiest way to check is to reboot your
- machine with the boot floppy in the floppy drive and check the boot
- messages. If all your devices are listed and functional, skip on to
- step three.</para>
-
- <para>Otherwise, you have to create two custom bootable floppies which
- has a kernel that can mount your all of your disks and access your
- tape drive. These floppies must contain:
- &man.fdisk.8;, &man.disklabel.8;, &man.newfs.8;, &man.mount.8;, and
- whichever backup program you use. These programs must be statically
- linked. If you use &man.dump.8;, the floppy must contain
- &man.restore.8;.</para>
-
- <para>Third, create backup tapes regularly. Any changes that you make
- after your last backup may be irretrievably lost. Write-protect the
- backup tapes.</para>
-
- <para>Fourth, test the floppies (either <filename>boot.flp</filename>
- and <filename>fixit.flp</filename> or the two custom bootable
- floppies you made in step two.) and backup tapes. Make notes of the
- procedure. Store these notes with the bootable floppy, the
- printouts and the backup tapes. You will be so distraught when
- restoring that the notes may prevent you from destroying your backup
- tapes (How? In place of <command>tar xvf /dev/rsa0</command>, you
- might accidently type <command>tar cvf /dev/rsa0</command> and
- over-write your backup tape).</para>
-
- <para>For an added measure of security, make bootable floppies and two
- backup tapes each time. Store one of each at a remote location. A
- remote location is NOT the basement of the same office building. A
- number of firms in the World Trade Center learned this lesson the
- hard way. A remote location should be physically separated from
- your computers and disk drives by a significant distance.</para>
-
- <para>An example script for creating a bootable floppy:</para>
-
- <programlisting><![ CDATA [#!/bin/sh
-#
-# create a restore floppy
-#
-# format the floppy
-#
-PATH=/bin:/sbin:/usr/sbin:/usr/bin
-
-fdformat -q fd0
-if [ $? -ne 0 ]
-then
- echo "Bad floppy, please use a new one"
- exit 1
-fi
-
-# place boot blocks on the floppy
-#
-disklabel -w -B /dev/rfd0c fd1440
-
-#
-# newfs the one and only partition
-#
-newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a
-
-#
-# mount the new floppy
-#
-mount /dev/fd0a /mnt
-
-#
-# create required directories
-#
-mkdir /mnt/dev
-mkdir /mnt/bin
-mkdir /mnt/sbin
-mkdir /mnt/etc
-mkdir /mnt/root
-mkdir /mnt/mnt # for the root partition
-mkdir /mnt/tmp
-mkdir /mnt/var
-
-#
-# populate the directories
-#
-if [ ! -x /sys/compile/MINI/kernel ]
-then
- cat << EOM
-The MINI kernel does not exist, please create one.
-Here is an example config file:
-#
-# MINI -- A kernel to get FreeBSD on onto a disk.
-#
-machine "i386"
-cpu "I486_CPU"
-ident MINI
-maxusers 5
-
-options INET # needed for _tcp _icmpstat _ipstat
- # _udpstat _tcpstat _udb
-options FFS #Berkeley Fast File System
-options FAT_CURSOR #block cursor in syscons or pccons
-options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device
-options NCONS=2 #1 virtual consoles
-options USERCONFIG #Allow user configuration with -c XXX
-
-config kernel root on da0 swap on da0 and da1 dumps on da0
-
-controller isa0
-controller pci0
-
-controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
-disk fd0 at fdc0 drive 0
-
-controller ncr0
-
-controller scbus0
-
-device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
-device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
-
-device da0
-device da1
-device da2
-
-device sa0
-
-pseudo-device loop # required by INET
-pseudo-device gzip # Exec gzipped a.out's
-EOM
- exit 1
-fi
-
-cp -f /sys/compile/MINI/kernel /mnt
-
-gzip -c -best /sbin/init > /mnt/sbin/init
-gzip -c -best /sbin/fsck > /mnt/sbin/fsck
-gzip -c -best /sbin/mount > /mnt/sbin/mount
-gzip -c -best /sbin/halt > /mnt/sbin/halt
-gzip -c -best /sbin/restore > /mnt/sbin/restore
-
-gzip -c -best /bin/sh > /mnt/bin/sh
-gzip -c -best /bin/sync > /mnt/bin/sync
-
-cp /root/.profile /mnt/root
-
-cp -f /dev/MAKEDEV /mnt/dev
-chmod 755 /mnt/dev/MAKEDEV
-
-chmod 500 /mnt/sbin/init
-chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
-chmod 555 /mnt/bin/sh /mnt/bin/sync
-chmod 6555 /mnt/sbin/restore
-
-#
-# create the devices nodes
-#
-cd /mnt/dev
-./MAKEDEV std
-./MAKEDEV da0
-./MAKEDEV da1
-./MAKEDEV da2
-./MAKEDEV sa0
-./MAKEDEV pty0
-cd /
-
-#
-# create minimum filesystem table
-#
-cat > /mnt/etc/fstab <<EOM
-/dev/fd0a / ufs rw 1 1
-EOM
-
-#
-# create minimum passwd file
-#
-cat > /mnt/etc/passwd <<EOM
-root:*:0:0:Charlie &:/root:/bin/sh
-EOM
-
-cat > /mnt/etc/master.passwd <<EOM
-root::0:0::0:0:Charlie &:/root:/bin/sh
-EOM
-
-chmod 600 /mnt/etc/master.passwd
-chmod 644 /mnt/etc/passwd
-/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
-
-#
-# umount the floppy and inform the user
-#
-/sbin/umount /mnt
-echo "The floppy has been unmounted and is now ready."]]></programlisting>
- </sect3>
-
- <sect3>
- <title>After the Disaster</title>
-
- <para>The key question is: did your hardware survive? You have been
- doing regular backups so there is no need to worry about the
- software.</para>
-
- <para>If the hardware has been damaged. First, replace those parts
- that have been damaged.</para>
-
- <para>If your hardware is okay, check your floppies. If you are using
- a custom boot floppy, boot single-user (type <literal>-s</literal>
- at the <prompt>boot:</prompt> prompt). Skip the following
- paragraph.</para>
-
- <para>If you are using the <filename>boot.flp</filename> and
- <filename>fixit.flp</filename> floppies, keep reading. Insert the
- <filename>boot.flp</filename> floppy in the first floppy drive and
- boot the computer. The original install menu will be displayed on
- the screen. Select the <literal>Fixit--Repair mode with CDROM or
- floppy.</literal> option. Insert the
- <filename>fixit.flp</filename> when prompted.
- <command>restore</command> and the other programs that you need are
- located in <filename>/mnt2/stand</filename>.</para>
-
- <para>Recover each filesystem separately.</para>
-
- <para>Try to &man.mount.8; (e.g. <command>mount /dev/da0a
- /mnt</command>) the root partition of your first disk. If the
- disklabel was damaged, use &man.disklabel.8; to re-partition and
- label the disk to match the label that your printed and saved. Use
- &man.newfs.8; to re-create the filesystems. Re-mount the root
- partition of the floppy read-write (<command>mount -u -o rw
- /mnt</command>). Use your backup program and backup tapes to
- recover the data for this filesystem (e.g. <command>restore vrf
- /dev/sa0</command>). Unmount the filesystem (e.g. <command>umount
- /mnt</command>) Repeat for each filesystem that was
- damaged.</para>
-
- <para>Once your system is running, backup your data onto new tapes.
- Whatever caused the crash or data loss may strike again. An another
- hour spent now, may save you from further distress later.</para>
- </sect3>
-
-<![ %not.published; [
-
- <sect3>
- <title>* I did not prepare for the Disaster, What Now?</title>
-
- <para></para>
- </sect3>
-]]>
-
- </sect2>
- </sect1>
-
- <sect1 id="backups-floppybackups">
- <title>What about Backups to Floppies?</title>
-
- <sect2 id="floppies-using">
- <title>Can I use floppies for backing up my data?</title>
-
- <para>Floppy disks are not really a suitable media for
- making backups as:</para>
-
- <itemizedlist>
- <listitem>
- <para>The media is unreliable, especially over long periods of
- time</para>
- </listitem>
-
- <listitem>
- <para>Backing up and restoring is very slow</para>
- </listitem>
-
- <listitem>
- <para>They have a very limited capacity (the days of backing up
- an entire hard disk onto a dozen or so floppies has long since
- passed).</para>
- </listitem>
- </itemizedlist>
-
- <para>However, if you have no other method of backing up your data then
- floppy disks are better than no backup at all.</para>
-
- <para>If you do have to use floppy disks then ensure that you use good
- quality ones. Floppies that have been lying around the office for a
- couple of years are a bad choice. Ideally use new ones from a
- reputable manufacturer.</para>
- </sect2>
-
- <sect2 id="floppies-creating">
- <title>So how do I backup my data to floppies?</title>
-
- <para>The best way to backup to floppy disk is to use
- &man.tar.1; with the <option>-M</option> (multi volume) option, which
- allows backups to span multiple floppies.</para>
-
- <para>To backup all the files in the current directory and sub-directory
- use this (as root):</para>
-
- <screen>&prompt.root; <userinput>tar Mcvf /dev/rfd0 *</userinput></screen>
-
- <para>When the first floppy is full &man.tar.1; will prompt you to
- insert the next volume (because &man.tar.1; is media independent it
- refers to volumes. In this context it means floppy disk)</para>
-
- <screen>Prepare volume #2 for /dev/rfd0 and hit return:</screen>
-
- <para>This is repeated (with the volume number incrementing) until all
- the specified files have been archived.</para>
- </sect2>
-
- <sect2 id="floppies-compress">
- <title>Can I compress my backups?</title>
-
- <para>Unfortunately, &man.tar.1; will not allow the
- <option>-z</option> option to be used for multi-volume archives.
- You could, of course, &man.gzip.1; all the files, &man.tar.1; them to
- the floppies, then &man.gunzip.1; the files again!</para>
- </sect2>
-
- <sect2 id="floppies-restoring">
- <title>How do I restore my backups?</title>
-
- <para>To restore the entire archive use:</para>
-
- <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0</userinput></screen>
-
- <para>To restore only specific files you can either start with the first
- floppy and use:</para>
-
- <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0 <replaceable>filename</replaceable></userinput></screen>
-
- <para>&man.tar.1; will prompt you to insert subsequent floppies until it
- finds the required file.</para>
-
- <para>Alternatively, if you know which floppy the file is on then you
- can simply insert that floppy and use the same command as above. Note
- that if the first file on the floppy is a continuation from the
- previous one then &man.tar.1; will warn you that it cannot restore it,
- even if you have not asked it to!</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/basics/chapter.sgml b/en_US.ISO8859-1/books/handbook/basics/chapter.sgml
deleted file mode 100644
index a2632f6562..0000000000
--- a/en_US.ISO8859-1/books/handbook/basics/chapter.sgml
+++ /dev/null
@@ -1,543 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/basics/chapter.sgml,v 1.23 2000/12/15 21:52:34 jim Exp $
--->
-
-<chapter id="basics">
- <title>Unix Basics</title>
-
- <sect1>
- <title>Synopsis</title>
-
- <para><emphasis>Rewritten by Chris Shumway
- <email>cshumway@osd.bsdi.com</email>, 10 Mar 2000.</emphasis></para>
-
- <para>The following chapter will cover the basic commands and
- functionality of the FreeBSD operating system. If you are new to
- FreeBSD, you will definitely want to read through this chapter before
- asking for help.</para>
- </sect1>
-
- <sect1 id="permissions">
- <title>Permissions</title>
-
- <para>FreeBSD, having its history rooted in BSD UNIX, has its
- fundamentals based on several key UNIX concepts. The first, and
- most pronounced, is that FreeBSD is a multi-user operating system.
- The system can handle several users all working simultaneously on
- completely unrelated tasks. The system is responsible for properly
- sharing and managing requests for hardware devices, peripherals,
- memory, and CPU time evenly to each user.</para>
-
- <para>Because the system is capable of supporting multiple users,
- everything the system manages has a set of permissions governing who
- can read, write, and execute the resource. These permissions are
- stored as an octet broken into three pieces, one for the owner of
- the file, one for the group that the file belongs to, and one for
- everyone else. This numerical representation works like
- this:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Value</entry>
- <entry>Permission</entry>
- <entry>Directory Listing</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>0</entry>
- <entry>No read, no write, no execute</entry>
- <entry><literal>---</literal></entry>
- </row>
-
- <row>
- <entry>1</entry>
- <entry>No read, no write, execute</entry>
- <entry><literal>--x</literal></entry>
- </row>
-
- <row>
- <entry>2</entry>
- <entry>No read, write, no execute</entry>
- <entry><literal>-w-</literal></entry>
- </row>
-
- <row>
- <entry>3</entry>
- <entry>No read, write, execute</entry>
- <entry><literal>-wx</literal></entry>
- </row>
-
- <row>
- <entry>4</entry>
- <entry>Read, no write, no execute</entry>
- <entry><literal>r--</literal></entry>
- </row>
-
- <row>
- <entry>5</entry>
- <entry>Read, no write, execute</entry>
- <entry><literal>r-x</literal></entry>
- </row>
-
- <row>
- <entry>6</entry>
- <entry>Read, write, no execute</entry>
- <entry><literal>rw-</literal></entry>
- </row>
-
- <row>
- <entry>7</entry>
- <entry>Read, write, execute</entry>
- <entry><literal>rwx</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>For the long directory listing by <command>ls -l</command>, a
- column will show a file's permissions for the owner, group, and
- everyone else. Here's how it is broken up:</para>
-
- <screen>-rw-r--r--</screen>
-
- <para>The first character, from left to right, is a special character
- that tells if this is a regular file, a directory, a special
- character or block device, a socket, or any other special
- pseudo-file device. The next three characters, designated as
- <literal>rw-</literal> gives the permissions for the owner of the
- file. The next three characters, <literal>r--</literal> gives the
- permissions for the group that the file belongs to. The final three
- characters, <literal>r--</literal>, gives the permissions for the
- rest of the world. A dash means that the permission is turned off.
- In the case of this file, the permissions are set so the owner can
- read and write to the file, the group can read the file, and the
- rest of the world can only read the file. According to the table
- above, the permissions for this file would be
- <literal>644</literal>, where each digit represents the three parts
- of the file's permission.</para>
-
- <para>This is all well and good, but how does the system control
- permissions on devices? FreeBSD actually treats most hardware
- devices as a file that programs can open, read, and write data to
- just like any other file. These special device files are stored on
- the <filename>/dev</filename> directory.</para>
-
- <para>Directories are also treated as files. They have read, write,
- and execute permissions. The executable bit for a directory has a
- slightly different meaning than that of files. When a directory is
- marked executable, it means it can be searched into, for example, a
- directory listing can be done in that directory.</para>
-
- <para>There are more to permissions, but they are primarily used in
- special circumstances such as setuid binaries and sticky
- directories. If you want more information on file permissions and
- how to set them, be sure to look at the &man.chmod.1; man
- page.</para>
- </sect1>
-
- <sect1 id="dirstructure">
- <title>Directory Structures</title>
-
- <para>Since FreeBSD uses its file systems to determine many
- fundamental system operations, the hierarchy of the file system is
- extremely important. Due to the fact that the &man.hier.7; man page
- provides a complete description of the directory structure, it will
- not be duplicated here. Please read &man.hier.7; for more
- information.</para>
-
- <para>Of significant importance is the root of all directories, the /
- directory. This directory is the first directory mounted at boot
- time and it contains the base system necessary at boot time. The
- root directory also contains mount points for every other file
- system that you want to mount.</para>
-
- <para>A mount point is a directory where additional file systems can
- be grafted onto the root file system. Standard mount points include
- <filename>/usr</filename>, <filename>/var</filename>,
- <filename>/mnt</filename>, and <filename>/cdrom</filename>. These
- directories are usually referenced to entries in the file
- <filename>/etc/fstab</filename>. <filename>/etc/fstab</filename> is
- a table of various file systems and mount points for reference by the
- system. Most of the file systems in <filename>/etc/fstab</filename>
- are mounted automatically at boot time from the script &man.rc.8;
- unless they contain the <option>noauto</option> option. Consult the
- &man.fstab.5; manual page for more information on the format of the
- <filename>/etc/fstab</filename> file and the options it
- contains.</para>
- </sect1>
-
- <sect1 id="shells">
- <title>Shells</title>
-
- <para>In FreeBSD, a lot of everyday work is done in a command line
- interface called a shell. A shell's main job is to take commands
- from the input channel and execute them. A lot of shells also have
- built in functions to help everyday tasks such a file management,
- file globing, command line editing, command macros, and environment
- variables. FreeBSD comes with a set of shells, such as sh, the
- Bourne Shell, and csh, the C-shell. Many other shells are available
- from the FreeBSD Ports Collection that have much more power, such as
- tcsh and bash.</para>
-
- <para>Which shell do you use? It is really a matter of taste. If you
- are a C programmer you might feel more comfortable with a C-like shell
- such as tcsh. If you've come from Linux or are new to a UNIX
- command line interface you might try bash. The point is that each
- shell has unique properties that may or may not work with your
- preferred working environment, and that you have a choice of what
- shell to use.</para>
-
- <para>One common feature in a shell is file-name completion. Given
- the typing of the first few letters of a command or filename, you
- can usually have the shell automatically complete the rest of the
- command or filename by hitting the TAB key on the keyboard. Here is
- an example. Suppose you have two files called
- <filename>foobar</filename> and <filename>foo.bar</filename>. You
- want to delete <filename>foo.bar</filename>. So what you would type
- on the keyboard is: <command>rm fo[TAB].[TAB]</command>.</para>
-
- <para>The shell would print out <command>rm
- foo[BEEP].bar</command>.</para>
-
- <para>The [BEEP] is the console bell, which is the shell telling me it
- was unable to totally complete the filename because there is more
- than one match. Both <filename>foobar</filename> and
- <filename>foo.bar</filename> start with <literal>fo</literal>, but
- it was able to complete to <literal>foo</literal>. If you type in
- <literal>.</literal>, then hit TAB again, the shell would be able to
- fill in the rest of the filename for you.</para>
-
- <para>Another function of the shell is environment variables.
- Environment variables are a variable key pair stored in the shell's
- environment space. This space can be read by any program invoked by
- the shell, and thus contains a lot of program configuration. Here
- is a list of common environment variables and what they mean:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><envar>USER</envar></entry>
- <entry>Current logged in user's name.</entry>
- </row>
-
- <row>
- <entry><envar>PATH</envar></entry>
- <entry>Colon separated list of directories to search for
- binaries.</entry>
- </row>
-
- <row>
- <entry><envar>DISPLAY</envar></entry>
- <entry>Network name of the X11 display to connect to, if
- available.</entry>
- </row>
-
- <row>
- <entry><envar>SHELL</envar></entry>
- <entry>The current shell.</entry>
- </row>
-
- <row>
- <entry><envar>TERM</envar></entry>
- <entry>The name of the user's terminal. Used to determine the
- capabilities of the terminal.</entry>
- </row>
-
- <row>
- <entry><envar>TERMCAP</envar></entry>
- <entry>Database entry of the terminal escape codes to perform
- various terminal functions.</entry>
- </row>
-
- <row>
- <entry><envar>OSTYPE</envar></entry>
- <entry>Type of operating system. E.g., FreeBSD.</entry>
- </row>
-
- <row>
- <entry><envar>MACHTYPE</envar></entry>
- <entry>The CPU architecture that the system is running
- on.</entry>
- </row>
-
- <row>
- <entry><envar>EDITOR</envar></entry>
- <entry>The user's preferred text editor.</entry>
- </row>
-
- <row>
- <entry><envar>PAGER</envar></entry>
- <entry>The user's preferred text pager.</entry>
- </row>
-
- <row>
- <entry><envar>MANPATH</envar></entry>
- <entry>Colon separated list of directories to search for
- manual pages.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>To view or set an environment variable differs somewhat from
- shell to shell. For example, in the C-Style shells such as tcsh
- and csh, you would use <command>setenv</command> to set and view
- environment variables. Under Bourne shells such as sh and bash, you
- would use <command>set</command> and <command>export</command> to
- view and set your current environment variables. For example, to
- set or modify the <envar>EDITOR</envar> environment variable, under
- csh or tcsh a command like this would set <envar>EDITOR</envar> to
- <filename>/usr/local/bin/emacs</filename>:</para>
-
- <screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen>
-
- <para>Under Bourne shells:</para>
-
- <screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen>
-
- <para>You can also make most shells expand the environment variable by
- placing a <literal>$</literal> character in front of it on the
- command line. For example, <command>echo $TERM</command> would
- print out whatever <envar>$TERM</envar> is set to, because the shell
- expands <envar>$TERM</envar> and passes it on to echo.</para>
-
- <para>Shells treat a lot of special characters, called meta-characters
- as special representations of data. The most common one is the
- <literal>*</literal> character, which represents any number of
- characters in a filename. These special meta-characters can be used
- to do file name globing. For example, typing in
- <command>echo *</command> is almost the same as typing in
- <command>ls</command> because the shell takes all the files that
- match <command>*</command> and puts them on the command line for
- echo to see.</para>
-
- <para>To prevent the shell from interpreting these special characters,
- they can be escaped from the shell by putting a backslash
- (<literal>\</literal>) character in front of them. <command>echo
- $TERM</command> prints whatever your terminal is set to.
- <command>echo \$TERM</command> prints <envar>$TERM</envar> as
- is.</para>
-
- <sect2 id="changing-shells">
- <title>Changing your shell</title>
-
- <para>The easiest way to change your shell is to use the
- <command>chsh</command> command. Running <command>chsh</command> will
- place you into the editor that is in your <envar>EDITOR</envar>
- environment variable; if it is not set, you will be placed in
- <command>vi</command>. Change the <quote>Shell:</quote> line
- accordingly.</para>
-
- <para>You can also give <command>chsh</command> the
- <option>-s</option> option; this will set your shell for you,
- without requiring you to enter an editor.
- For example, if you wanted to
- change your shell to bash, the following should do the
- trick:</para>
-
- <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen>
-
- <para>Running <command>chsh</command> with no parameters and editing
- the shell from there would work also.</para>
-
- <note>
- <para>The shell that you wish to use <emphasis>must</emphasis> be
- present in the <filename>/etc/shells</filename> file. If you
- have installed a shell from the <link linkend="ports">ports
- collection</link>, then this should have been done for you
- already. If you installed the shell by hand, you must do
- this.</para>
-
- <para>For example, if you installed <command>bash</command> by hand
- and placed it into <filename>/usr/local/bin</filename>, you would
- want to:</para>
-
- <screen>&prompt.root; <userinput>echo &quot;/usr/local/bin/bash&quot; &gt;&gt; /etc/shells</userinput></screen>
-
- <para>Then rerun <command>chsh</command>.</para>
- </note>
- </sect2>
- </sect1>
-
- <sect1 id="editors">
- <title>Text Editors</title>
-
- <para>A lot of configuration in FreeBSD is done by editing a text
- file. Because of this, it would be a good idea to become familiar
- with a text editor. FreeBSD comes with a few as part of the base
- system, and many more are available in the ports collection.</para>
-
- <para>The easiest and simplest editor to learn is an editor called
- <application>ee</application>, which stands for easy editor. To
- start <application>ee</application>, one would type at the command
- line <command>ee filename</command> where
- <literal>filename</literal> is the name of the file to be edited.
- For example, to edit <filename>/etc/rc.conf</filename>, type in
- <command>ee /etc/rc.conf</command>. Once inside of ee, all of the
- commands for manipulating the editor's functions are listed at the
- top of the display. The caret <literal>^</literal> character means
- the control key on the keyboard, so ^e expands to pressing the
- control key plus the letter <literal>e</literal>. To leave
- <application>ee</application>, hit the escape key, then choose leave
- editor. The editor will prompt you to save any changes if the file
- has been modified.</para>
-
- <para>FreeBSD also comes with more powerful text editors such as
- <application>vi</application> as part of the base system, and
- <application>emacs</application> and <application>vim</application>
- as part of the FreeBSD ports collection. These editors offer much
- more functionality and power at the expense of being a little more
- complicated to learn. However if you plan on doing a lot of text
- editing, learning a more powerful editor such as
- <application>vim</application> or <application>emacs</application>
- will save you much more time in the long run.</para>
- </sect1>
-
- <sect1>
- <title>For More Information...</title>
-
- <sect2 id="basics-man">
- <title>Manual pages</title>
-
- <para>The most comprehensive documentation on FreeBSD is in the form
- of man pages. Nearly every program on the system comes with a
- short reference manual explaining the basic operation and various
- arguments. These manuals can be viewed with the man command. Use
- of the man command is simple:</para>
-
- <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen>
-
- <para><literal>command</literal> is the name of the command you
- wish to learn about. For example, to learn more about
- <command>ls</command> command type:</para>
-
- <screen>&prompt.user; <userinput>man ls</userinput></screen>
-
- <para>The online manual is divided up into numbered sections:</para>
-
- <orderedlist>
- <listitem>
- <para>User commands.</para>
- </listitem>
-
- <listitem>
- <para>System calls and error numbers.</para>
- </listitem>
-
- <listitem>
- <para>Functions in the C libraries.</para>
- </listitem>
-
- <listitem>
- <para>Device drivers.</para>
- </listitem>
-
- <listitem>
- <para>File formats.</para>
- </listitem>
-
- <listitem>
- <para>Games and other diversions.</para>
- </listitem>
-
- <listitem>
- <para>Miscellaneous information.</para>
- </listitem>
-
- <listitem>
- <para>System maintenance and operation commands.</para>
- </listitem>
-
- <listitem>
- <para>Kernel developers.</para>
- </listitem>
- </orderedlist>
-
- <para>In some cases, the same topic may appear in more than one
- section of the online manual. For example, there is a chmod user
- command and a <literal>chmod()</literal> system call. In this
- case, you can tell the man command which one you want by
- specifying the section:</para>
-
- <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
-
- <para>This will display the manual page for the user command
- <command>chmod</command>. References to a particular section of
- the online manual are traditionally placed in parenthesis in
- written documentation, so &man.chmod.1; refers to the
- <command>chmod</command> user command and &man.chmod.2; refers to
- the system call.</para>
-
- <para>This is fine if you know the name of the command and simply
- wish to know how to use it, but what if you cannot recall the
- command name? You can use man to search for keywords in the
- command descriptions by using the <option>-k</option>
- switch:</para>
-
- <screen>&prompt.user; <userinput>man -k mail</userinput></screen>
-
- <para>With this command you will be presented with a list of
- commands that have the keyword <quote>mail</quote> in their
- descriptions. This is actually functionally equivalent to using
- the apropos command.</para>
-
- <para>So, you are looking at all those fancy commands in
- <filename>/usr/bin</filename> but do not have the faintest idea
- what most of them actually do? Simply do:</para>
-
- <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
-&prompt.user; <userinput>man -f *</userinput></screen>
-
- <para>or</para>
-
- <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
-&prompt.user; <userinput>whatis *</userinput></screen>
-
- <para>which does the same thing.</para>
- </sect2>
-
- <sect2 id="basics-info">
- <title>GNU Info Files</title>
-
- <para>FreeBSD includes many applications and utilities produced by
- the Free Software Foundation (FSF). In addition to man pages,
- these programs come with more extensive hypertext documents called
- <literal>info</literal> files which can be viewed with the
- <command>info</command> command or, if you installed
- <application>emacs</application>, the info mode of
- <application>emacs</application>.</para>
-
- <para>To use the &man.info.1; command, simply type:</para>
-
- <screen>&prompt.user; <userinput>info</userinput></screen>
-
- <para>For a brief introduction, type <literal>h</literal>. For a
- quick command reference, type <literal>?</literal>.</para>
- </sect2>
- </sect1>
-</chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml b/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml
deleted file mode 100644
index 81f1deeeec..0000000000
--- a/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml
+++ /dev/null
@@ -1,499 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/bibliography/chapter.sgml,v 1.30 2000/12/31 10:35:20 wosch Exp $
--->
-
-<appendix id="bibliography">
- <title>Bibliography</title>
-
- <para>While the manual pages provide the definitive reference for individual
- pieces of the FreeBSD operating system, they are notorious for not
- illustrating how to put the pieces together to make the whole operating
- system run smoothly. For this, there is no substitute for a good book on
- UNIX system administration and a good users' manual.</para>
-
- <sect1 id="bibliography-freebsd">
- <title>Books &amp; Magazines Specific to FreeBSD</title>
-
- <para><emphasis>International books &amp;
- Magazines:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://jdli.tw.freebsd.org/publication/book/freebsd2/index.htm">Using FreeBSD</ulink> (in Chinese).</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD for PC 98'ers (in Japanese), published by SHUWA System
- Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD (in Japanese), published by CUTT. ISBN 4-906391-22-2
- C3055 P2400E.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.shoeisha.co.jp/pc/index/shinkan/97_05_06.htm">Complete Introduction to FreeBSD</ulink> (in Japanese), published by <ulink url="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</ulink>. ISBN 4-88135-473-6 P3600E.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Personal UNIX Starter Kit FreeBSD</ulink> (in Japanese), published by <ulink url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN 4-7561-1733-3 P3000E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD Handbook (Japanese translation), published by <ulink
- url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN 4-7561-1580-2
- P3800E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD mit Methode (in German), published by Computer und
- Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/install-manual.html">FreeBSD Install and Utilization Manual</ulink> (in Japanese), published by <ulink url="http://www.pc.mycom.co.jp/">Mainichi Communications Inc.</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
- <emphasis><ulink url="http://maxwell.itb.ac.id/">
- Building Internet Server with
- FreeBSD</ulink></emphasis> (in Indonesia Language), published
- by <ulink url="http://www.elexmedia.co.id/">Elex Media Komputindo</ulink>.</para>
- </listitem>
-
- </itemizedlist>
-
- <para><emphasis>English language books &amp; Magazines:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.wccdrom.com/titles/freebsd/bsdcomp_bkx.phtml">
- The Complete FreeBSD</ulink>, published by <ulink
- url="http://www.bsdi.com/">BSDi</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.freebsd-corp-net-guide.com">The
- FreeBSD Corporate Networker's Guide</ulink>, published by
- <ulink url="http://www.awl.com/aw/">Addison-Wesley</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-userguides">
- <title>Users' Guides</title>
-
- <itemizedlist>
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Reference Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-075-9</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-076-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>UNIX in a Nutshell</emphasis>. O'Reilly &amp;
- Associates, Inc., 1990. ISBN 093717520X</para>
- </listitem>
-
- <listitem>
- <para>Mui, Linda. <emphasis>What You Need To Know When You Can't Find
- Your UNIX System Administrator</emphasis>. O'Reilly &amp;
- Associates, Inc., 1995. ISBN 1-56592-104-6</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www-wks.acs.ohio-state.edu/">Ohio State
- University</ulink> has written a <ulink
- url="http://www-wks.acs.ohio-state.edu/unix_course/unix.html">UNIX
- Introductory Course</ulink> which is available online in HTML and
- postscript format.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</ulink>. <ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/urm.html">FreeBSD User's
- Reference Manual</ulink> (Japanese translation). <ulink
- url="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</ulink>, 1998. ISBN4-8399-0088-4 P3800E.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.ed.ac.uk/">Edinburgh
- University</ulink> has written an <ulink
- url="http://unixhelp.ed.ac.uk/">Online Guide</ulink> for
- newcomers to the UNIX environment.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-adminguides">
- <title>Administrators' Guides</title>
-
- <itemizedlist>
- <listitem>
- <para>Albitz, Paul and Liu, Cricket. <emphasis>DNS and
- BIND</emphasis>, 3rd Ed. O'Reilly &amp; Associates, Inc., 1998.
- ISBN 1-56592-512-2</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- System Manager's Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-080-5</para>
- </listitem>
-
- <listitem>
- <para>Costales, Brian, et al. <emphasis>Sendmail</emphasis>, 2nd Ed.
- O'Reilly &amp; Associates, Inc., 1997. ISBN 1-56592-222-0</para>
- </listitem>
-
- <listitem>
- <para>Frisch, &AElig;leen. <emphasis>Essential System
- Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates,
- Inc., 1995. ISBN 1-56592-127-5</para>
- </listitem>
-
- <listitem>
- <para>Hunt, Craig. <emphasis>TCP/IP Network
- Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates, Inc., 1997.
- ISBN 1-56592-322-7</para>
- </listitem>
-
- <listitem>
- <para>Nemeth, Evi. <emphasis>UNIX System Administration
- Handbook</emphasis>. 3rd Ed. Prentice Hall, 2000. ISBN
- 0-13-020601-6</para>
- </listitem>
-
- <listitem>
- <para>Stern, Hal <emphasis>Managing NFS and NIS</emphasis> O'Reilly
- &amp; Associates, Inc., 1991. ISBN 0-937175-75-7</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</ulink>. <ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/sam.html">FreeBSD System
- Administrator's Manual</ulink> (Japanese translation). <ulink
- url="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</ulink>, 1998. ISBN4-8399-0109-0 P3300E.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-programmers">
- <title>Programmers' Guides</title>
-
- <itemizedlist>
- <listitem>
- <para>Asente, Paul. <emphasis>X Window System Toolkit</emphasis>.
- Digital Press. ISBN 1-55558-051-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Reference Manual</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-078-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-079-1</para>
- </listitem>
-
- <listitem>
- <para>Harbison, Samuel P. and Steele, Guy L. Jr. <emphasis>C: A
- Reference Manual</emphasis>. 4rd ed. Prentice Hall, 1995.
- ISBN 0-13-326224-3</para>
- </listitem>
-
- <listitem>
- <para>Kernighan, Brian and Dennis M. Ritchie. <emphasis>The C
- Programming Language.</emphasis>. PTR Prentice Hall, 1988.
- ISBN 0-13-110362-9</para>
- </listitem>
-
- <listitem>
- <para>Lehey, Greg. <emphasis>Porting UNIX Software</emphasis>.
- O'Reilly &amp; Associates, Inc., 1995. ISBN 1-56592-126-7</para>
- </listitem>
-
- <listitem>
- <para>Plauger, P. J. <emphasis>The Standard C Library</emphasis>.
- Prentice Hall, 1992. ISBN 0-13-131509-9</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>Advanced Programming in the UNIX
- Environment</emphasis>. Reading, Mass. : Addison-Wesley, 1992
- ISBN 0-201-56317-7</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>UNIX Network
- Programming</emphasis>. 2nd Ed, PTR Prentice Hall, 1998. ISBN
- 0-13-490012-X</para>
- </listitem>
-
- <listitem>
- <para>Wells, Bill. <quote>Writing Serial Drivers for UNIX</quote>.
- <emphasis>Dr. Dobb's Journal</emphasis>. 19(15), December 1994.
- pp68-71, 97-99.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-osinternals">
- <title>Operating System Internals</title>
-
- <itemizedlist>
- <listitem>
- <para>Andleigh, Prabhat K. <emphasis>UNIX System
- Architecture</emphasis>. Prentice-Hall, Inc., 1990. ISBN
- 0-13-949843-5</para>
- </listitem>
-
- <listitem>
- <para>Jolitz, William. <quote>Porting UNIX to the 386</quote>.
- <emphasis>Dr. Dobb's Journal</emphasis>. January 1991-July
- 1992.</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
- John Quarterman <emphasis>The Design and Implementation of the
- 4.3BSD UNIX Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1989. ISBN 0-201-06196-1</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, <emphasis>The Design
- and Implementation of the 4.3BSD UNIX Operating System: Answer
- Book</emphasis>. Reading, Mass. : Addison-Wesley, 1991. ISBN
- 0-201-54629-9</para>
- </listitem>
-
- <listitem>
- <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
- John Quarterman. <emphasis>The Design and Implementation of the
- 4.4BSD Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1996. ISBN 0-201-54979-4</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 1:
- The Protocols</emphasis>. Reading, Mass. : Addison-Wesley,
- 1996. ISBN 0-201-63346-9</para>
- </listitem>
-
- <listitem>
- <para>Schimmel, Curt. <emphasis>Unix Systems for Modern
- Architectures</emphasis>. Reading, Mass. : Addison-Wesley, 1994.
- ISBN 0-201-63338-8</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 3:
- TCP for Transactions, HTTP, NNTP and the UNIX Domain
- Protocols</emphasis>. Reading, Mass. : Addison-Wesley, 1996.
- ISBN 0-201-63495-3</para>
- </listitem>
-
- <listitem>
- <para>Vahalia, Uresh. <emphasis>UNIX Internals -- The New
- Frontiers</emphasis>. Prentice Hall, 1996. ISBN
- 0-13-101908-2</para>
- </listitem>
-
- <listitem>
- <para>Wright, Gary R. and W. Richard Stevens. <emphasis>TCP/IP
- Illustrated, Volume 2: The Implementation</emphasis>. Reading,
- Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-security">
- <title>Security Reference</title>
-
- <itemizedlist>
- <listitem>
- <para>Cheswick, William R. and Steven M. Bellovin. <emphasis>Firewalls
- and Internet Security: Repelling the Wily Hacker</emphasis>.
- Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-63357-4</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson and Gene Spafford. <emphasis>Practical UNIX
- Security</emphasis>. 2nd Ed. O'Reilly &amp; Associates, Inc.,
- 1996. ISBN 1-56592-148-8</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson. <emphasis>PGP Pretty Good
- Privacy</emphasis> O'Reilly &amp; Associates, Inc., 1995. ISBN
- 1-56592-098-8</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-hardware">
- <title>Hardware Reference</title>
-
- <itemizedlist>
- <listitem>
- <para>Anderson, Don and Tom Shanley. <emphasis>Pentium Processor
- System Architecture</emphasis>. 2nd Ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-40992-5</para>
- </listitem>
-
- <listitem>
- <para>Ferraro, Richard F. <emphasis>Programmer's Guide to the EGA,
- VGA, and Super VGA Cards</emphasis>. 3rd ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-62490-7</para>
- </listitem>
-
- <listitem>
- <para>Intel Corporation publishes documentation on their CPUs,
- chipsets and standards on their <ulink
- url="http://developer.intel.com/">developer web site</ulink>,
- usually as PDF files.</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>80486 System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40994-1</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>ISA System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40996-8</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>PCI System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40993-3</para>
- </listitem>
-
- <listitem>
- <para>Van Gilluwe, Frank. <emphasis>The Undocumented PC</emphasis>.
- Reading, Mass: Addison-Wesley Pub. Co., 1994. ISBN
- 0-201-62277-7</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-history">
- <title>UNIX History</title>
-
- <itemizedlist>
- <listitem>
- <para>Lion, John <emphasis>Lion's Commentary on UNIX, 6th Ed. With
- Source Code</emphasis>. ITP Media Group, 1996. ISBN
- 1573980137</para>
- </listitem>
-
- <listitem>
- <para>Raymond, Eric S. <emphasis>The New Hacker's Dictionary, 3rd
- edition</emphasis>. MIT Press, 1996. ISBN
- 0-262-68092-0. Also known as the <ulink
- url="http://www.ccil.org/jargon/jargon.html">Jargon
- File</ulink></para>
- </listitem>
-
- <listitem>
- <para>Salus, Peter H. <emphasis>A quarter century of UNIX</emphasis>.
- Addison-Wesley Publishing Company, Inc., 1994. ISBN
- 0-201-54777-5</para>
- </listitem>
-
- <listitem>
- <para>Simon Garfinkel, Daniel Weise, Steven Strassmann. <emphasis>The
- UNIX-HATERS Handbook</emphasis>. IDG Books Worldwide, Inc.,
- 1994. ISBN 1-56884-203-1</para>
- </listitem>
-
- <listitem>
- <para>Don Libes, Sandy Ressler <emphasis>Life with UNIX</emphasis>
- &mdash; special edition. Prentice-Hall, Inc., 1989. ISBN
- 0-13-536657-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD family tree</emphasis>. 1997. <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree</ulink> or <ulink url="file:/usr/share/misc/bsd-family-tree">local</ulink> on a FreeBSD-current machine.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD Release Announcements collection</emphasis>.
- 1997. <ulink
- url="http://www.de.FreeBSD.org/de/ftp/releases/">http://www.de.FreeBSD.org/de/ftp/releases/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Networked Computer Science Technical Reports
- Library</emphasis>. <ulink
- url="http://www.ncstrl.org/">http://www.ncstrl.org/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Old BSD releases from the Computer Systems Research
- group (CSRG)</emphasis>. <ulink
- url="http://www.mckusick.com/csrg/">http://www.mckusick.com/csrg/</ulink>:
- The 4CD set covers all BSD versions from 1BSD to 4.4BSD and
- 4.4BSD-Lite2 (but not 2.11BSD, unfortunately). As well, the last
- disk holds the final sources plus the SCCS files.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="bibliography-journals">
- <title>Magazines and Journals</title>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>The C/C++ Users Journal</emphasis>. R&amp;D
- Publications Inc. ISSN 1075-2838</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Sys Admin &mdash; The Journal for UNIX System
- Administrators</emphasis> Miller Freeman, Inc., ISSN
- 1061-2688</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/book.sgml b/en_US.ISO8859-1/books/handbook/book.sgml
deleted file mode 100644
index 394cd63d3e..0000000000
--- a/en_US.ISO8859-1/books/handbook/book.sgml
+++ /dev/null
@@ -1,135 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/book.sgml,v 1.95 2001/01/19 00:01:46 dannyboy Exp $
--->
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN">
-%bookinfo;
-
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
-%authors;
-<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists;
-<!ENTITY % newsgroups SYSTEM "newsgroups.ent"> %newsgroups;
-<!ENTITY % not.published "INCLUDE">
-
-<!-- The currently released version of FreeBSD. This value is used to
- create some links on web sites and such, so do NOT change it until
- it's really release time -->
-<!ENTITY rel.current CDATA "4.2">
-]>
-
-<book>
- <bookinfo>
- <title>FreeBSD Handbook</title>
-
- <corpauthor>The FreeBSD Documentation Project</corpauthor>
-
- <pubdate>February 1999</pubdate>
-
- <copyright>
- <year>1995</year>
- <year>1996</year>
- <year>1997</year>
- <year>1998</year>
- <year>1999</year>
- <year>2000</year>
- <year>2001</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- &bookinfo.legalnotice;
-
- <abstract>
- <para>Welcome to FreeBSD! This handbook covers the installation and day
- to day use of <emphasis>FreeBSD Release &rel.current;</emphasis>.
- This manual is a <emphasis>work in progress</emphasis> and is the work
- of many individuals. Many sections do not yet exist and some of those
- that do exist need to be updated. If you are interested in helping
- with this project, send email to the &a.doc;. The latest version of
- this document is always available from the <ulink
- URL="http://www.FreeBSD.org/">FreeBSD World Wide Web server</ulink>.
- It may also be downloaded in a variety of formats and compression
- options from the <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">FreeBSD FTP
- server</ulink> or one of the numerous <link
- linkend="mirrors-ftp">mirror sites</link>. If you would prefer
- to have a hard copy of the handbook, you can purchase one at the
- <ulink
- url="http://www.freebsdmall.com/books/">FreeBSD Mall</ulink>. You
- may also want to <ulink
- URL="http://www.FreeBSD.org/search.html">Search the
- Handbook</ulink>.</para>
- </abstract>
- </bookinfo>
-
- <part>
- <title>Getting Started</title>
-
- &chap.introduction;
- &chap.install;
- &chap.basics;
- &chap.ports;
- </part>
-
- <part>
- <title>System Administration</title>
-
- &chap.boot;
- &chap.users;
- &chap.kernelconfig;
- &chap.security;
- &chap.printing;
- &chap.disks;
- &chap.backups;
- &chap.x11;
- &chap.l10n;
- &chap.sound;
- </part>
-
- <part>
- <title>Network Communications</title>
-
- &chap.serialcomms;
- &chap.ppp-and-slip;
- &chap.advanced-networking;
- &chap.mail;
- </part>
-
- <part>
- <title>Advanced topics</title>
-
- &chap.cutting-edge;
- &chap.contrib;
- &chap.policies;
- &chap.kernelopts;
- &chap.kerneldebug;
- &chap.linuxemu;
- &chap.internals;
- </part>
-
- <part>
- <title>Appendices</title>
-
- &chap.mirrors;
- &chap.bibliography;
- &chap.eresources;
- &chap.staff;
- &chap.pgpkeys;
- &chap.hw;
- </part>
-</book>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/boot/chapter.sgml b/en_US.ISO8859-1/books/handbook/boot/chapter.sgml
deleted file mode 100644
index d1c2c988c8..0000000000
--- a/en_US.ISO8859-1/books/handbook/boot/chapter.sgml
+++ /dev/null
@@ -1,549 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/boot/chapter.sgml,v 1.9 2000/11/26 05:16:52 dannyboy Exp $
--->
-
-<chapter id="boot">
- <title>The FreeBSD Booting Process</title>
-
- <sect1 id="boot-synopsis">
- <title>Synopsis</title>
-
- <para>FreeBSD uses a three-stage bootstrap by default, which
- basically entails three programs which call each
- other in order (two <link linkend="boot-blocks">boot
- blocks</link>, and the <link
- linkend="boot-loader">loader</link>). Each of these three build on the
- previous program's understanding and provide increasing amounts
- of sophistication.</para>
-
- <para>The kernel is then started, which will then probe for devices
- and initialize them for use. Once the kernel boot
- process is finished, the kernel passes control to the user process
- &man.init.8;, which then makes sure the disks are in a usable state.
- &man.init.8; then starts the user-level resource configuration which
- then mounts filesystems, sets up network cards to act on the
- network, and generally starts all the processes that usually
- are run on a FreeBSD system at startup.</para>
- </sect1>
-
- <sect1 id="boot-blocks">
- <title>The Boot Blocks: Bootstrap Stages 1 and 2</title>
-
- <para><firstterm>Bootstrapping</firstterm> is the process
- whereby a computer probes and initializes its devices, and
- works out what programs it is supposed to run.</para>
-
- <para>This involves the use of special Read Only Memory chips,
- which determine what further operations to do, and these
- usually pass control to other chips that do consistency and
- memory tests, configure devices, and provide a mechanism for
- programs to determine what configuration details were
- determined.</para>
-
- <para>In standard personal computers, this involves the BIOS
- (which oversees the bootstrap), and CMOS (which stores
- configuration). BIOS and CMOS understand disks, and also
- understand where on the disk to find a program that will know
- how to load up an operating system.</para>
-
- <para>This chapter will not deal with this first part of the
- bootstrap process. Instead it will focus on what happens after control
- is passed to the program on the disk.</para>
-
- <para>The boot blocks are responsible for finding (usually) the
- loader, and running it, and thus need to understand how to
- find that program on the filesystem, how to run the program,
- and also allow minor configuration of how they work.</para>
-
- <sect2 id="boot-boot0">
- <title>boot0</title>
-
- <para>There is actually a preceding bootblock, named boot0,
- which lives on the <firstterm>Master Boot
- Record</firstterm>, the special part of the disk that the
- system bootstrap looks for and runs, and it simply shows a
- list of possible slices to boot from.</para>
-
- <para>boot0 is very simple, since the program in the
- <abbrev>MBR</abbrev> can only be 512 bytes in size.</para>
-
- <para>It displays something like this:</para>
-
- <example id="boot-boot0-example">
- <title>boot0 screenshot</title>
-
- <screen>
-F1 DOS
-F2 FreeBSD
-F3 Linux
-F4 ??
-F5 Drive 1
-
-Default: F2</screen>
- </example>
- </sect2>
-
- <sect2 id="boot-boot1">
- <title>boot1</title>
-
- <para>boot1 is found on the boot sector of the boot slice,
- which is where <link linkend="boot-boot0">boot0</link>, or
- any other program on the <abbrev>MBR</abbrev> expects to
- find the program to run to continue the boot process.</para>
-
- <para>boot1 is very simple, since it too can only be 512 bytes
- in size, and knows just enough about the FreeBSD
- <firstterm>disklabel</firstterm>, which stores information
- about the slice, to find and execute <link
- linkend="boot-boot2">boot2</link>.</para>
- </sect2>
-
- <sect2 id="boot-boot2">
- <title>boot2</title>
-
- <para>boot2 is slightly more sophisticated, and understands
- the FreeBSD filesystem enough to find files on it, and can
- provide a simple interface to choose the kernel or loader to
- run.</para>
-
- <para>Since the <link linkend="boot-loader">loader</link> is
- much more sophisticated, and provides a nice easy-to-use
- boot configuration, boot2 usually runs it, but previously it
- was tasked to run the kernel directly.</para>
-
- <example id="boot-boot2-example">
- <title>boot2 screenshot</title>
-
- <screen>&gt;&gt; FreeBSD/i386 BOOT
-Default: 0:wd(0,a)/kernel
-boot:</screen>
- </example>
- </sect2>
- </sect1>
-
- <sect1 id="boot-loader">
- <title>Loader: Bootstrap Stage Three</title>
-
- <para>The loader is the final stage of the three-stage
- bootstrap, and is located on the filesystem, usually as
- <filename>/boot/loader</filename>.</para>
-
- <note>
- <para>While <filename>/boot/boot0</filename>,
- <filename>/boot/boot1</filename>, and
- <filename>/boot/boot2</filename> are files there, they are
- not the actual copies in the <abbrev>MBR</abbrev>, the boot
- sector, or the disklabel respectively.</para>
- </note>
-
- <para>The loader is intended as a user-friendly method for
- configuration, using an easy-to-use built-in command set,
- backed up by a more powerful interpreter, with a more complex
- command set.</para>
-
- <sect2 id="boot-loader-flow">
- <title>Loader Program Flow</title>
-
- <para>During initialization, the loader will probe for a
- console and for disks, and figure out what disk it is
- booting from. It will set variables accordingly, and then
- the interpreter is started, and the easy-to-use commands are
- explained to it.</para>
-
- <para>loader will then read
- <filename>/boot/loader.rc</filename>, which by default reads
- in <filename>/boot/defaults/loader.conf</filename> which
- sets reasonable defaults for variables and reads
- <filename>/boot/loader.conf</filename> for local changes to
- those variables. <filename>loader.rc</filename> then acts
- on these variables, loading whichever modules and kernel are
- selected.</para>
-
- <para>Finally, by default, the loader issues a 10 second wait
- for key presses, and boots the kernel if it is not interrupted.
- If interrupted, the user is presented with a prompt which
- understands the easy-to-use command set, where the user may
- adjust variables, unload all modules, load modules, and then
- finally boot or reboot.</para>
-
- <para>A more technical discussion of the process is available
- in &man.loader.8;</para>
- </sect2>
-
- <sect2 id="boot-loader-commands">
- <title>Loader Built-In Commands</title>
-
- <para>The easy-to-use command set comprises of:</para>
-
- <variablelist>
- <varlistentry>
- <term>autoboot <replaceable>seconds</replaceable></term>
-
- <listitem>
- <para>Proceeds to boot the kernel if not interrupted
- within the time span given, in seconds. It displays a
- countdown, and the default timespan is 10
- seconds.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>boot
- <optional><replaceable>-options</replaceable></optional>
- <optional><replaceable>kernelname</replaceable></optional></term>
-
- <listitem>
- <para>Immediately proceeds to boot the kernel, with the
- given options, if any, and with the kernel name given,
- if it is.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>boot-conf</term>
-
- <listitem>
- <para>Goes through the same automatic configuration of
- modules based on variables as what happens at boot.
- This only makes sense if you use
- <command>unload</command> first, and change some
- variables, most commonly <envar>kernel</envar>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>help
- <optional><replaceable>topic</replaceable></optional></term>
-
- <listitem>
- <para>Shows help messages read from
- <filename>/boot/loader.help</filename>. If the topic
- given is <literal>index</literal>, then the list of
- available topics is given.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>include <replaceable>filename</replaceable>
- &hellip;</term>
-
- <listitem>
- <para>Processes the file with the given filename. The
- file is read in, and interpreted line by line. An
- error immediately stops the include command.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>load <optional><option>-t</option>
- <replaceable>type</replaceable></optional>
- <replaceable>filename</replaceable></term>
-
- <listitem>
- <para>Loads the kernel, kernel module, or file of the
- type given, with the filename given. Any arguments
- after filename are passed to the file.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>ls <optional><option>-l</option></optional>
- <optional><replaceable>path</replaceable></optional></term>
-
- <listitem>
- <para>Displays a listing of files in the given path, or
- the root directory, if the path is not specified. If
- <option>-l</option> is specified, file sizes will be
- shown too.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>lsdev <optional><option>-v</option></optional></term>
-
- <listitem>
- <para>Lists all of the devices from which it may be
- possible to load modules. If <option>-v</option> is
- specified, more details are printed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>lsmod <optional><option>-v</option></optional></term>
-
- <listitem>
- <para>Displays loaded modules. If <option>-v</option> is
- specified, more details are shown.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>more <replaceable>filename</replaceable></term>
-
- <listitem>
- <para>Display the files specified, with a pause at each
- <varname>LINES</varname> displayed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>reboot</term>
-
- <listitem>
- <para>Immediately reboots the system.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>set <replaceable>variable</replaceable></term>
- <term>set
- <replaceable>variable</replaceable>=<replaceable>value</replaceable></term>
-
- <listitem>
- <para>Set loader's environment variables.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>unload</term>
-
- <listitem>
- <para>Removes all loaded modules.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2 id="boot-loader-examples">
- <title>Loader Examples</title>
-
- <para>Here are some practical examples of loader usage.</para>
-
- <itemizedlist>
- <listitem>
- <para>To simply boot your usual kernel, but in single-user
- mode:</para>
-
- <screen><userinput>boot -s</userinput></screen>
- </listitem>
-
- <listitem>
- <para>To unload your usual kernel and modules, and then
- load just your old (or another) kernel:</para>
-
- <screen><userinput>unload</userinput>
- <userinput>load <replaceable>kernel.old</replaceable></userinput></screen>
-
- <para>You can use <filename>kernel.GENERIC</filename> to
- refer to the generic kernel that comes on the install
- disk, or <filename>kernel.old</filename> to refer to
- your previously installed kernel (when you've upgraded
- or configured your own kernel, for example).</para>
-
- <note>
- <para>Use the following to load your usual modules with
- another kernel:</para>
-
- <screen><userinput>unload</userinput>
-<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput>
-<userinput>boot-conf</userinput></screen>
- </note>
- </listitem>
-
- <listitem>
- <para>To load a kernel configuration script (an automated
- script which does the things you'd normally do in the
- kernel boot-time configurator):</para>
-
- <screen><userinput>load -t userconfig_script
- <replaceable>/boot/kernel.conf</replaceable></userinput></screen>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="boot-kernel">
- <title>Kernel Interaction During Boot</title>
-
- <para>Once the kernel is loaded by either <link
- linkend="boot-loader">loader</link> (as usual) or <link
- linkend="boot-boot2">boot2</link> (bypassing the loader), it
- examines its boot flags, if any, and adjusts its behavior as
- necessary.</para>
-
- <sect2 id="boot-kernel-bootflags">
- <title>Kernel Boot Flags</title>
-
- <para>Here are the more common boot flags:</para>
-
- <variablelist id="boot-kernel-bootflags-list">
- <varlistentry>
- <term><option>-a</option></term>
-
- <listitem>
- <para>during kernel initialization, ask for the device
- to mount as as the root file system.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-C</option></term>
-
- <listitem>
- <para>boot from CDROM.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>run UserConfig, the boot-time kernel
- configurator</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-s</option></term>
-
- <listitem>
- <para>boot into single-user mode</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-v</option></term>
-
- <listitem>
- <para>be more verbose during kernel startup</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <note>
- <para>There are other boot flags, read &man.boot.8; for more
- information on them.</para>
- </note>
- </sect2>
-
-<!-- <sect2 id="boot-kernel-userconfig">
- <title>UserConfig: The boot-time kernel configurator</title>
-
- <para> </para>
- </sect2> -->
- </sect1>
-
- <sect1 id="boot-init">
- <title>Init: Process Control Initialization</title>
-
- <para>Once the kernel has finished booting, it passes control to
- the user process <command>init</command>, which is located at
- <filename>/sbin/init</filename>, or the program path specified
- in the <envar>init_path</envar> variable in
- <command>loader</command>.</para>
-
- <sect2 id="boot-autoreboot">
- <title>Automatic Reboot Sequence</title>
-
- <para>The automatic reboot sequence makes sure that the
- filesystems available on the system are consistent. If they
- are not, and <command>fsck</command> can not fix the
- inconsistencies, <command>init</command> drops the system
- into <link linkend="boot-singleuser">single-user mode</link>
- for the system administrator to take care of the problems
- directly.</para>
- </sect2>
-
- <sect2 id="boot-singleuser">
- <title>Single-User Mode</title>
-
- <para>This mode can be reached through the <link
- linkend="boot-autoreboot">automatic reboot
- sequence</link>, or by the user booting with the
- <option>-s</option> or setting the
- <envar>boot_single</envar> variable in
- <command>loader</command>.</para>
-
- <para>It can also be reached by calling
- <command>shutdown</command> without the reboot
- (<option>-r</option>) or halt (<option>-h</option>) options,
- from <link linkend="boot-multiuser">multi-user
- mode</link>.</para>
-
- <para>If the system console <literal>console</literal> is set
- to <literal>insecure</literal> in
- <filename>/etc/ttys</filename>, then the system prompts for
- the root password before initiating single-user mode.</para>
-
- <example id="boot-insecure-console">
- <title>An insecure console in /etc/ttys</title>
-
- <programlisting># name getty type status comments
-#
-# This entry needed for asking password when init goes to single-user mode
-# If you want to be asked for password, change "secure" to "insecure" here
-console none unknown off insecure</programlisting>
- </example>
-
- <note>
- <para>An <literal>insecure</literal> console means that you
- consider your physical security to the console to be
- insecure, and want to make sure only someone who knows the
- root password may use single-user mode, and it does not
- mean that you want to run your console insecurely. Thus,
- if you want security, choose <literal>insecure</literal>,
- not <literal>secure</literal>.</para>
- </note>
- </sect2>
-
- <sect2 id="boot-multiuser">
- <title>Multi-User Mode</title>
-
- <para>If <command>init</command> finds your filesystems to be
- in order, or once the user has finished in <link
- linkend="boot-singleuser">single-user mode</link>, the
- system enters multi-user mode, in which it starts the
- resource configuration of the system.</para>
-
- <sect3 id="boot-rc">
- <title>Resource Configuration (rc)</title>
-
- <para>The resource configuration system reads in
- configuration defaults from
- <filename>/etc/defaults/rc.conf</filename>, and
- system-specific details from
- <filename>/etc/rc.conf</filename>, and then proceeds to
- mount the system filesystems mentioned in
- <filename>/etc/fstab</filename>, start up networking
- services, starts up miscellaneous system daemons, and
- finally runs the startup scripts of locally installed
- packages.</para>
-
- <para>&man.rc.8; is a good reference to the resource
- configuration system, as is examining the scripts
- themselves.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="boot-shutdown">
- <title>Shutdown Sequence</title>
-
- <para>Upon controlled shutdown, via <command>shutdown</command>,
- <command>init</command> will attempt to run the script
- <filename>/etc/rc.shutdown</filename>, and then proceed to send
- all processes the terminate signal, and subsequently the kill
- signal to any that don't terminate timely.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/chapter.decl b/en_US.ISO8859-1/books/handbook/chapter.decl
deleted file mode 100644
index ce0a7ed16a..0000000000
--- a/en_US.ISO8859-1/books/handbook/chapter.decl
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
diff --git a/en_US.ISO8859-1/books/handbook/chapters.ent b/en_US.ISO8859-1/books/handbook/chapters.ent
deleted file mode 100644
index 45d2854904..0000000000
--- a/en_US.ISO8859-1/books/handbook/chapters.ent
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
- 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
- chapter, and corresponds to the name of the directory in which that
- chapter's .sgml file is stored.
-
- Chapters should be listed in the order in which they are referenced.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/chapters.ent,v 1.8 2000/03/20 20:59:32 jim Exp $
--->
-
-<!-- Part one -->
-<!ENTITY chap.introduction SYSTEM "introduction/chapter.sgml">
-<!ENTITY chap.install SYSTEM "install/chapter.sgml">
-<!ENTITY chap.basics SYSTEM "basics/chapter.sgml">
-<!ENTITY chap.ports SYSTEM "ports/chapter.sgml">
-
-<!-- Part two -->
-<!ENTITY chap.boot SYSTEM "boot/chapter.sgml">
-<!ENTITY chap.users SYSTEM "users/chapter.sgml">
-<!ENTITY chap.kernelconfig SYSTEM "kernelconfig/chapter.sgml">
-<!ENTITY chap.security SYSTEM "security/chapter.sgml">
-<!ENTITY chap.printing SYSTEM "printing/chapter.sgml">
-<!ENTITY chap.disks SYSTEM "disks/chapter.sgml">
-<!ENTITY chap.backups SYSTEM "backups/chapter.sgml">
-<!ENTITY chap.x11 SYSTEM "x11/chapter.sgml">
-<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml">
-<!ENTITY chap.sound SYSTEM "sound/chapter.sgml">
-
-<!-- Part three -->
-<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml">
-<!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.sgml">
-<!ENTITY chap.advanced-networking SYSTEM "advanced-networking/chapter.sgml">
-<!ENTITY chap.mail SYSTEM "mail/chapter.sgml">
-
-<!-- Part four -->
-<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">
-<!ENTITY chap.contrib SYSTEM "contrib/chapter.sgml">
-<!ENTITY chap.policies SYSTEM "policies/chapter.sgml">
-<!ENTITY chap.kernelopts SYSTEM "kernelopts/chapter.sgml">
-<!ENTITY chap.kerneldebug SYSTEM "kerneldebug/chapter.sgml">
-<!ENTITY chap.linuxemu SYSTEM "linuxemu/chapter.sgml">
-<!ENTITY chap.internals SYSTEM "internals/chapter.sgml">
-
-<!-- Part five (appendices) -->
-<!ENTITY chap.mirrors SYSTEM "mirrors/chapter.sgml">
-<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml">
-<!ENTITY chap.eresources SYSTEM "eresources/chapter.sgml">
-<!ENTITY chap.staff SYSTEM "staff/chapter.sgml">
-<!ENTITY chap.pgpkeys SYSTEM "pgpkeys/chapter.sgml">
-<!ENTITY chap.hw SYSTEM "hw/chapter.sgml">
diff --git a/en_US.ISO8859-1/books/handbook/contrib/chapter.sgml b/en_US.ISO8859-1/books/handbook/contrib/chapter.sgml
deleted file mode 100644
index d3efa591b6..0000000000
--- a/en_US.ISO8859-1/books/handbook/contrib/chapter.sgml
+++ /dev/null
@@ -1,6292 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/contrib/chapter.sgml,v 1.406 2001/04/09 00:33:48 dd Exp $
--->
-
-<chapter id="contrib">
- <title>Contributing to FreeBSD</title>
-
- <para><emphasis>Contributed by &a.jkh;.</emphasis></para>
-
- <para>So you want to contribute something to FreeBSD? That is great! We can
- always use the help, and FreeBSD is one of those systems that
- <emphasis>relies</emphasis> on the contributions of its user base in order
- to survive. Your contributions are not only appreciated, they are vital
- to FreeBSD's continued growth!</para>
-
- <para>Contrary to what some people might also have you believe, you do not
- need to be a hot-shot programmer or a close personal friend of the FreeBSD
- core team in order to have your contributions accepted. The FreeBSD
- Project's development is done by a large and growing number of
- international contributors whose ages and areas of technical expertise
- vary greatly, and there is always more work to be done than there are
- people available to do it.</para>
-
- <para>Since the FreeBSD project is responsible for an entire operating
- system environment (and its installation) rather than just a kernel or a
- few scattered utilities, our <filename>TODO</filename> list also spans a
- very wide range of tasks, from documentation, beta testing and
- presentation to highly specialized types of kernel development. No matter
- what your skill level, there is almost certainly something you can do to
- help the project!</para>
-
- <para>Commercial entities engaged in FreeBSD-related enterprises are also
- encouraged to contact us. Need a special extension to make your product
- work? You will find us receptive to your requests, given that they are not
- too outlandish. Working on a value-added product? Please let us know! We
- may be able to work cooperatively on some aspect of it. The free software
- world is challenging a lot of existing assumptions about how software is
- developed, sold, and maintained throughout its life cycle, and we urge you
- to at least give it a second look.</para>
-
- <sect1 id="contrib-what">
- <title>What is Needed</title>
-
- <para>The following list of tasks and sub-projects represents something of
- an amalgam of the various core team <filename>TODO</filename> lists and
- user requests we have collected over the last couple of months. Where
- possible, tasks have been ranked by degree of urgency. If you are
- interested in working on one of the tasks you see here, send mail to the
- coordinator listed by clicking on their names. If no coordinator has
- been appointed, maybe you would like to volunteer?</para>
-
- <sect2>
- <title>High priority tasks</title>
-
- <para>The following tasks are considered to be urgent, usually because
- they represent something that is badly broken or sorely needed:</para>
-
- <orderedlist>
- <listitem>
- <para>3-stage boot issues. Overall coordination: &a.hackers;</para>
-
- <itemizedlist>
- <listitem>
- <para>Do WinNT compatible drive tagging so that the 3rd stage
- can provide an accurate mapping of BIOS geometries for
- disks.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Filesystem problems. Overall coordination: &a.fs;</para>
-
- <itemizedlist>
- <listitem>
- <para>Clean up and document the nullfs filesystem code.
- Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Fix the union file system. Coordinator: &a.dg;</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Implement Int13 vm86 disk driver. Coordinator:
- &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>New bus architecture. Coordinator: &a.newbus;</para>
-
- <itemizedlist>
- <listitem>
- <para>Port existing ISA drivers to new architecture.</para>
- </listitem>
-
- <listitem>
- <para>Move all interrupt-management code to appropriate parts of
- the bus drivers.</para>
- </listitem>
-
- <listitem>
- <para>Port PCI subsystem to new architecture. Coordinator:
- &a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>Figure out the right way to handle removable devices and
- then use that as a substrate on which PC-Card and CardBus
- support can be implemented.</para>
- </listitem>
-
- <listitem>
- <para>Resolve the probe/attach priority issue once and for
- all.</para>
- </listitem>
-
- <listitem>
- <para>Move any remaining buses over to the new
- architecture.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Kernel issues. Overall coordination: &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>Add more pro-active security infrastructure. Overall
- coordination: &a.security;</para>
-
- <itemizedlist>
- <listitem>
- <para>Build something like Tripwire(TM) into the kernel, with a
- remote and local part. There are a number of cryptographic
- issues to getting this right; contact the coordinator for
- details. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Make the entire kernel use <literal>suser()</literal>
- instead of comparing to 0. It is presently using about half
- of each. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Split securelevels into different parts, to allow an
- administrator to throw away those privileges he can throw
- away. Setting the overall securelevel needs to have the same
- effect as now, obviously. Coordinator: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Make it possible to upload a list of <quote>allowed
- program</quote> to BPF, and then block BPF from accepting other
- programs. This would allow BPF to be used e.g. for DHCP,
- without allowing an attacker to start snooping the local
- network.</para>
- </listitem>
-
- <listitem>
- <para>Update the security checker script. We should at least
- grab all the checks from the other BSD derivatives, and add
- checks that a system with securelevel increased also have
- reasonable flags on the relevant parts. Coordinator:
- &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Add authorization infrastructure to the kernel, to allow
- different authorization policies. Part of this could be done
- by modifying <literal>suser()</literal>. Coordinator:
- &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Add code to the NFS layer so that you cannot
- <literal>chdir("..")</literal> out of an NFS partition. E.g.,
- <filename>/usr</filename> is a UFS partition with
- <filename>/usr/src</filename> NFS exported. Now it is
- possible to use the NFS filehandle for
- <filename>/usr/src</filename> to get access to
- <filename>/usr</filename>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Medium priority tasks</title>
-
- <para>The following tasks need to be done, but not with any particular
- urgency:</para>
-
- <orderedlist>
- <listitem>
- <para>Full KLD based driver support/Configuration Manager.</para>
-
- <itemizedlist>
- <listitem>
- <para>Write a configuration manager (in the 3rd stage boot?)
- that probes your hardware in a sane manner, keeps only the
- KLDs required for your hardware, etc.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>PCMCIA/PCCARD. Coordinators: &a.msmith; and &a.imp;</para>
-
- <itemizedlist>
- <listitem>
- <para>Documentation!</para>
- </listitem>
-
- <listitem>
- <para>Reliable operation of the pcic driver (needs
- testing).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>sio.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>ed.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>Recognizer and handler for <filename>ep.c</filename>
- (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>User-mode recognizer and handler (partially done).</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Advanced Power Management. Coordinators: &a.msmith; and
- &a.phk;</para>
-
- <itemizedlist>
- <listitem>
- <para>APM sub-driver (mostly done).</para>
- </listitem>
-
- <listitem>
- <para>IDE/ATA disk sub-driver (partially done).</para>
- </listitem>
-
- <listitem>
- <para>syscons/pcvt sub-driver.</para>
- </listitem>
-
- <listitem>
- <para>Integration with the PCMCIA/PCCARD drivers
- (suspend/resume).</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Low priority tasks</title>
-
- <para>The following tasks are purely cosmetic or represent such an
- investment of work that it is not likely that anyone will get them
- done anytime soon:</para>
-
- <para>The first N items are from Terry Lambert
- <email>terry@lambert.org</email></para>
-
- <orderedlist>
- <listitem>
- <para>NetWare Server (protected mode ODI driver) loader and
- sub-services to allow the use of ODI card drivers supplied with
- network cards. The same thing for NDIS drivers and NetWare SCSI
- drivers.</para>
- </listitem>
-
- <listitem>
- <para>An "upgrade system" option that works on Linux boxes instead
- of just previous rev FreeBSD boxes.</para>
- </listitem>
-
- <listitem>
- <para>Symmetric Multiprocessing with kernel preemption (requires
- kernel preemption).</para>
- </listitem>
-
- <listitem>
- <para>A concerted effort at support for portable computers. This is
- somewhat handled by changing PCMCIA bridging rules and power
- management event handling. But there are things like detecting
- internal v.s.. external display and picking a different screen
- resolution based on that fact, not spinning down the disk if the
- machine is in dock, and allowing dock-based cards to disappear
- without affecting the machines ability to boot (same issue for
- PCMCIA).</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Smaller tasks</title>
-
- <para>Most of the tasks listed in the previous sections require either a
- considerable investment of time or an in-depth knowledge of the
- FreeBSD kernel (or both). However, there are also many useful tasks
- which are suitable for &quot;weekend hackers&quot;, or people without
- programming skills.</para>
-
- <orderedlist>
- <listitem>
- <para>If you run FreeBSD-current and have a good Internet
- connection, there is a machine <hostid
- role="fqdn">current.FreeBSD.org</hostid> which builds a full
- release once a day &mdash; every now and again, try and install
- the latest release from it and report any failures in the
- process.</para>
- </listitem>
-
- <listitem>
- <para>Read the freebsd-bugs mailing list. There might be a
- problem you can comment constructively on or with patches you
- can test. Or you could even try to fix one of the problems
- yourself.</para>
- </listitem>
-
- <listitem>
- <para>Read through the FAQ and Handbook periodically. If anything
- is badly explained, out of date or even just completely wrong, let
- us know. Even better, send us a fix (SGML is not difficult to
- learn, but there is no objection to ASCII submissions).</para>
- </listitem>
-
- <listitem>
- <para>Help translate FreeBSD documentation into your native language
- (if not already available) &mdash; just send an email to &a.doc;
- asking if anyone is working on it. Note that you are not
- committing yourself to translating every single FreeBSD document
- by doing this &mdash; in fact, the documentation most in need of
- translation is the installation instructions.</para>
- </listitem>
-
- <listitem>
- <para>Read the freebsd-questions mailing list and &ng.misc
- occasionally (or even regularly). It can be very satisfying to
- share your expertise and help people solve their problems;
- sometimes you may even learn something new yourself! These forums
- can also be a source of ideas for things to work on.</para>
- </listitem>
-
- <listitem>
- <para>If you know of any bug fixes which have been successfully
- applied to -current but have not been merged into -stable after a
- decent interval (normally a couple of weeks), send the committer a
- polite reminder.</para>
- </listitem>
-
- <listitem>
- <para>Move contributed software to <filename>src/contrib</filename>
- in the source tree.</para>
- </listitem>
-
- <listitem>
- <para>Make sure code in <filename>src/contrib</filename> is up to
- date.</para>
- </listitem>
-
- <listitem>
- <para>Look for year 2000 bugs (and fix any you find!)</para>
- </listitem>
-
- <listitem>
- <para>Build the source tree (or just part of it) with extra warnings
- enabled and clean up the warnings.</para>
- </listitem>
-
- <listitem>
- <para>Fix warnings for ports which do deprecated things like using
- gets() or including malloc.h.</para>
- </listitem>
-
- <listitem>
- <para>If you have contributed any ports, send your patches back to
- the original author (this will make your life easier when they
- bring out the next version)</para>
- </listitem>
-
- <listitem>
- <para>Suggest further tasks for this list!</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Work through the PR database</title>
-
- <para>The <ulink
- url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD PR
- list</ulink> shows all the current active problem reports and
- requests for enhancement that have been submitted by FreeBSD users.
- Look through the open PRs, and see if anything there takes your
- interest. Some of these might be very simple tasks, that just need an
- extra pair of eyes to look over them and confirm that the fix in the
- PR is a good one. Others might be much more complex.</para>
-
- <para>Start with the PRs that have not been assigned to anyone else, but
- if one them is assigned to someone else, but it looks like something
- you can handle, e-mail the person it is assigned to and ask if you can
- work on it&mdash;they might already have a patch ready to be tested,
- or further ideas that you can discuss with them.</para>
- </sect2>
- </sect1>
-
- <sect1 id="contrib-how">
- <title>How to Contribute</title>
-
- <para>Contributions to the system generally fall into one or more of the
- following 6 categories:</para>
-
- <sect2 id="contrib-general">
- <title>Bug reports and general commentary</title>
-
- <para>An idea or suggestion of <emphasis>general</emphasis> technical
- interest should be mailed to the &a.hackers;. Likewise, people with
- an interest in such things (and a tolerance for a
- <emphasis>high</emphasis> volume of mail!) may subscribe to the
- hackers mailing list by sending mail to &a.majordomo;. See <link
- linkend="eresources-mail">mailing lists</link> for more information
- about this and other mailing lists.</para>
-
- <para>If you find a bug or are submitting a specific change, please
- report it using the &man.send-pr.1; program or its <ulink
- url="http://www.FreeBSD.org/send-pr.html">WEB-based
- equivalent</ulink>. Try to fill-in each field of the bug report.
- Unless they exceed 65KB, include any patches directly in the report.
- When including patches, <emphasis>do not</emphasis> use cut-and-paste
- because cut-and-paste turns tabs into spaces and makes them unusable.
- Consider compressing patches and using &man.uuencode.1; if they exceed
- 20KB. Upload very large submissions to <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink>.</para>
-
- <para>After filing a report, you should receive confirmation along with
- a tracking number. Keep this tracking number so that you can update
- us with details about the problem by sending mail to
- <email>bug-followup@FreeBSD.org</email>. Use the number as the
- message subject, e.g. <literal>"Re: kern/3377"</literal>. Additional
- information for any bug report should be submitted this way.</para>
-
- <para>If you do not receive confirmation in a timely fashion (3 days to
- a week, depending on your email connection) or are, for some reason,
- unable to use the &man.send-pr.1; command, then you may ask
- someone to file it for you by sending mail to the &a.bugs;.</para>
- </sect2>
-
- <sect2>
- <title>Changes to the documentation</title>
-
- <para>Changes to the documentation are overseen by the &a.doc;. Send
- submissions and changes (even small ones are welcome!) using
- <command>send-pr</command> as described in <link
- linkend="contrib-general">Bug Reports and General
- Commentary</link>.</para>
- </sect2>
-
- <sect2>
- <title>Changes to existing source code</title>
-
- <para>An addition or change to the existing source code is a somewhat
- trickier affair and depends a lot on how far out of date you are with
- the current state of the core FreeBSD development. There is a special
- on-going release of FreeBSD known as <quote>FreeBSD-current</quote>
- which is made available in a variety of ways for the convenience of
- developers working actively on the system. See <link
- linkend="current">Staying current with FreeBSD</link> for more
- information about getting and using FreeBSD-current.</para>
-
- <para>Working from older sources unfortunately means that your changes
- may sometimes be too obsolete or too divergent for easy re-integration
- into FreeBSD. Chances of this can be minimized somewhat by
- subscribing to the &a.announce; and the &a.current; lists, where
- discussions on the current state of the system take place.</para>
-
- <para>Assuming that you can manage to secure fairly up-to-date sources
- to base your changes on, the next step is to produce a set of diffs to
- send to the FreeBSD maintainers. This is done with the &man.diff.1;
- command, with the <quote>context diff</quote> form
- being preferred. For example:</para>
-
- <para>
- <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
-
- or
-
- <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
-
- would generate such a set of context diffs for the given source file
- or directory hierarchy. See the man page for &man.diff.1; for more
- details.</para>
-
- <para>Once you have a set of diffs (which you may test with the
- &man.patch.1; command), you should submit them for inclusion with
- FreeBSD. Use the &man.send-pr.1; program as described in <link
- linkend="contrib-general">Bug Reports and General Commentary</link>.
- <emphasis>Do not</emphasis> just send the diffs to the &a.hackers; or
- they will get lost! We greatly appreciate your submission (this is a
- volunteer project!); because we are busy, we may not be able to
- address it immediately, but it will remain in the pr database until we
- do.</para>
-
- <para>If you feel it appropriate (e.g. you have added, deleted, or
- renamed files), bundle your changes into a <command>tar</command> file
- and run the &man.uuencode.1; program on it. Shar archives are also
- welcome.</para>
-
- <para>If your change is of a potentially sensitive nature, e.g. you are
- unsure of copyright issues governing its further distribution or you
- are simply not ready to release it without a tighter review first,
- then you should send it to &a.core; directly rather than submitting it
- with &man.send-pr.1;. The core mailing list reaches a much smaller
- group of people who do much of the day-to-day work on FreeBSD. Note
- that this group is also <emphasis>very busy</emphasis> and so you
- should only send mail to them where it is truly necessary.</para>
-
- <para>Please refer to <command>man 9 intro</command> and <command>man 9
- style</command> for some information on coding style. We would
- appreciate it if you were at least aware of this information before
- submitting code.</para>
- </sect2>
-
- <sect2>
- <title>New code or major value-added packages</title>
-
- <para>In the case of a significant contribution of a large body
- work, or the addition of an important new feature to FreeBSD, it
- becomes almost always necessary to either send changes as uuencoded
- tar files or upload them to a web or FTP site for other people to
- access. If you do not have access to a web or FTP site, ask on an
- appropriate FreeBSD mailing list for someone to host the changes for
- you.</para>
-
- <para>When working with large amounts of code, the touchy subject of
- copyrights also invariably comes up. Acceptable copyrights for code
- included in FreeBSD are:</para>
-
- <orderedlist>
- <listitem>
- <para>The BSD copyright. This copyright is most preferred due to
- its <quote>no strings attached</quote> nature and general
- attractiveness to commercial enterprises. Far from discouraging
- such commercial use, the FreeBSD Project actively encourages such
- participation by commercial interests who might eventually be
- inclined to invest something of their own into FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>The GNU Public License, or <quote>GPL</quote>. This license is
- not quite as popular with us due to the amount of extra effort
- demanded of anyone using the code for commercial purposes, but
- given the sheer quantity of GPL'd code we currently require
- (compiler, assembler, text formatter, etc) it would be silly to
- refuse additional contributions under this license. Code under
- the GPL also goes into a different part of the tree, that being
- <filename>/sys/gnu</filename> or
- <filename>/usr/src/gnu</filename>, and is therefore easily
- identifiable to anyone for whom the GPL presents a problem.</para>
- </listitem>
- </orderedlist>
-
- <para>Contributions coming under any other type of copyright must be
- carefully reviewed before their inclusion into FreeBSD will be
- considered. Contributions for which particularly restrictive
- commercial copyrights apply are generally rejected, though the authors
- are always encouraged to make such changes available through their own
- channels.</para>
-
- <para>To place a <quote>BSD-style</quote> copyright on your work, include
- the following text at the very beginning of every source code file you
- wish to protect, replacing the text between the <literal>%%</literal>
- with the appropriate information.</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>For your convenience, a copy of this text can be found in
- <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para>
- </sect2>
-
- <sect2>
- <title>Money, Hardware or Internet access</title>
-
- <para>We are always very happy to accept donations to further the cause
- of the FreeBSD Project and, in a volunteer effort like ours, a little
- can go a long way! Donations of hardware are also very important to
- expanding our list of supported peripherals since we generally lack
- the funds to buy such items ourselves.</para>
-
- <sect3>
- <title><anchor id="donations">Donating funds</title>
-
- <para>While the FreeBSD Project is not a 501(c)(3) (charitable)
- corporation and hence cannot offer special tax incentives for any
- donations made, any such donations will be gratefully accepted on
- behalf of the project by FreeBSD, Inc.</para>
-
- <para>FreeBSD, Inc. was founded in early 1995 by &a.jkh; and &a.dg;
- with the goal of furthering the aims of the FreeBSD Project and
- giving it a minimal corporate presence. Any and all funds donated
- (as well as any profits that may eventually be realized by FreeBSD,
- Inc.) will be used exclusively to further the project's
- goals.</para>
-
- <para>Please make any checks payable to FreeBSD, Inc., sent in care of
- the following address:</para>
-
- <address>
- <otheraddr>FreeBSD, Inc.</otheraddr>
- <otheraddr>c/o Jordan Hubbard</otheraddr>
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>
- <state>CA</state>, <postcode>94520</postcode>
- </address>
-
- <para>(currently using the BSDi address until a PO box
- can be opened)</para>
-
- <para>Wire transfers may also be sent directly to:</para>
-
- <address>
- <otheraddr>Bank Of America</otheraddr>
- <otheraddr>Concord Main Office</otheraddr>
- <pob>P.O. Box 37176</pob>
- <city>San Francisco</city>
- <state>CA</state>, <postcode>94137-5176</postcode>
-
- <otheraddr>Routing #: 121-000-358</otheraddr>
- <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr>
- </address>
-
- <para>Any correspondence related to donations should be sent to &a.jkh,
- either via email or to the FreeBSD, Inc. postal address given above.
- </para>
-
- <para>If you do not wish to be listed in our <link
- linkend="donors">donors</link> section, please specify this when
- making your donation. Thanks!</para>
- </sect3>
-
- <sect3>
- <title>Donating hardware</title>
-
- <para>Donations of hardware in any of the 3 following categories are
- also gladly accepted by the FreeBSD Project:</para>
-
- <itemizedlist>
- <listitem>
- <para>General purpose hardware such as disk drives, memory or
- complete systems should be sent to the FreeBSD, Inc. address
- listed in the <emphasis>donating funds</emphasis>
- section.</para>
- </listitem>
-
- <listitem>
- <para>Hardware for which ongoing compliance testing is desired.
- We are currently trying to put together a testing lab of all
- components that FreeBSD supports so that proper regression
- testing can be done with each new release. We are still lacking
- many important pieces (network cards, motherboards, etc) and if
- you would like to make such a donation, please contact &a.dg;
- for information on which items are still required.</para>
- </listitem>
-
- <listitem>
- <para>Hardware currently unsupported by FreeBSD for which you
- would like to see such support added. Please contact the
- &a.core; before sending such items as we will need to find a
- developer willing to take on the task before we can accept
- delivery of new hardware.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Donating Internet access</title>
-
- <para>We can always use new mirror sites for FTP, WWW or
- <command>cvsup</command>. If you would like to be such a mirror,
- please contact the FreeBSD project administrators
- <email>hubs@FreeBSD.org</email> for more information.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="donors">
- <title>Donors Gallery</title>
-
- <para>The FreeBSD Project is indebted to the following donors and would
- like to publicly thank them here!</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Contributors to the central server
- project:</emphasis></para>
-
- <para>The following individuals and businesses made it possible for
- the FreeBSD Project to build a new central server machine to
- eventually replace <hostid role="fqdn">freefall.FreeBSD.org</hostid>
- by donating the following items:</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.mbarkah and his employer, <ulink url="http://www.hemi.com/">
- Hemisphere Online</ulink>, donated a <emphasis>Pentium Pro
- (P6) 200Mhz CPU</emphasis></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.asacomputers.com/">ASA
- Computers</ulink> donated a <emphasis>Tyan 1662
- motherboard</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Joe McGuckin <email>joe@via.net</email> of <ulink
- url="http://www.via.net/">ViaNet Communications</ulink> donated
- a <emphasis>Kingston ethernet controller.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email>
- donated an <emphasis>NCR 53C875 SCSI controller
- card</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Ulf Zimmermann <email>ulf@Alameda.net</email> of <ulink
- url="http://www.Alameda.net/">Alameda Networks</ulink> donated
- <emphasis>128MB of memory</emphasis>, a <emphasis>4 Gb disk
- drive and the case.</emphasis></para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Direct funding:</emphasis></para>
-
- <para>The following individuals and businesses have generously
- contributed direct funding to the project:</para>
-
- <itemizedlist>
- <listitem>
- <para>Annelise Anderson
- <email>ANDRSN@HOOVER.STANFORD.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>&a.dillon</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.bluemountain.com/">Blue Mountain
- Arts</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.epilogue.com/">Epilogue Technology
- Corporation</ulink></para>
- </listitem>
-
- <listitem>
- <para>&a.sef</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.gta.com/">Global Technology
- Associates, Inc</ulink></para>
- </listitem>
-
- <listitem>
- <para>Don Scott Wilde</para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@masternet.it</email></para>
- </listitem>
-
- <listitem>
- <para>Josef C. Grosch <email>joeg@truenorth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Robert T. Morris</para>
- </listitem>
-
- <listitem>
- <para>&a.chuckr</para>
- </listitem>
-
- <listitem>
- <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> of
- <ulink url="http://www.imagescape.com/">Imaginary Landscape,
- LLC.</ulink></para>
- </listitem>
-
- <listitem>
- <para>Dmitry S. Kohmanyuk <email>dk@dog.farm.org</email></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.cdrom.co.jp/">Laser5</ulink> of Japan
- (a portion of the profits from sales of their various FreeBSD
- CDROMs).</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.mmjp.or.jp/fuki/">Fuki Shuppan
- Publishing Co.</ulink> donated a portion of their profits from
- <emphasis>Hajimete no FreeBSD</emphasis> (FreeBSD, Getting
- started) to the FreeBSD and XFree86 projects.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.ascii.co.jp/">ASCII Corp.</ulink>
- donated a portion of their profits from several FreeBSD-related
- books to the FreeBSD project.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.yokogawa.co.jp/">Yokogawa Electric
- Corp</ulink> has generously donated significant funding to the
- FreeBSD project.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.buffnet.net/">BuffNET</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.pacificsolutions.com/">Pacific
- Solutions</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.siemens.de/">Siemens AG</ulink>
- via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre
- Albsmeier</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink>
- </para>
- </listitem>
-
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Hardware contributors:</emphasis></para>
-
- <para>The following individuals and businesses have generously
- contributed hardware for testing and device driver
- development/support:</para>
-
- <itemizedlist>
- <listitem>
- <para>BSDi for providing the Pentium P5-90 and
- 486/DX2-66 EISA/VL systems that are being used for our
- development work, to say nothing of the network access and other
- donations of hardware resources.</para>
- </listitem>
-
- <listitem>
- <para>TRW Financial Systems, Inc. provided 130 PCs, three 68 GB
- file servers, twelve Ethernets, two routers and an ATM switch for
- debugging the diskless code.</para>
- </listitem>
-
- <listitem>
- <para>Dermot McDonnell donated the Toshiba XM3401B CDROM drive
- currently used in freefall.</para>
- </listitem>
-
- <listitem>
- <para>&a.chuck; contributed his floppy tape streamer for
- experimental work.</para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email>, and &a.wilko;,
- provided Wangtek and Archive QIC-02 tape drives in order to
- improve the <devicename>wt</devicename> driver.</para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email> contributed
- a 2.88 MB floppy drive to the project. This will hopefully
- increase the pressure for rewriting the floppy disk driver.
- <!-- smiley -->;-)</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.tekram.com/">Tekram
- Technologies</ulink> sent one each of their DC-390, DC-390U
- and DC-390F FAST and ULTRA SCSI host adapter cards for
- regression testing of the NCR and AMD drivers with their cards.
- They are also to be applauded for making driver sources for free
- operating systems available from their FTP server <ulink
- url="ftp://ftp.tekram.com/scsi/FreeBSD/">ftp://ftp.tekram.com/scsi/FreeBSD/</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>Larry M. Augustin contributed not only a
- Symbios Sym8751S SCSI card, but also a set of data books,
- including one about the forthcoming Sym53c895 chip with Ultra-2
- and LVD support, and the latest programming manual with
- information on how to safely use the advanced features of the
- latest Symbios SCSI chips. Thanks a lot!</para>
- </listitem>
-
- <listitem>
- <para>Christoph Kukulies <email>kuku@FreeBSD.org</email> donated
- an FX120 12 speed Mitsumi CDROM drive for IDE CDROM driver
- development.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Special contributors:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.osd.bsdi.com/">BSDi</ulink> (formerly Walnut Creek CDROM)
- has donated almost more than we can say (see the <link
- linkend="history">history</link> document for more details).
- In particular, we would like to thank them for the original
- hardware used for <hostid
- role="fqdn">freefall.FreeBSD.org</hostid>, our primary
- development machine, and for <hostid
- role="fqdn">thud.FreeBSD.org</hostid>, a testing and build
- box. We are also indebted to them for funding various
- contributors over the years and providing us with unrestricted
- use of their T1 connection to the Internet.</para>
- </listitem>
-
- <listitem>
- <para>The <ulink url="http://www.interface-business.de/">interface
- business GmbH, Dresden</ulink> has been patiently supporting
- &a.joerg; who has often preferred FreeBSD work over paid work, and
- used to fall back to their (quite expensive) EUnet Internet
- connection whenever his private connection became too slow or
- flaky to work with it...</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.bsdi.com/">Berkeley Software Design,
- Inc.</ulink> has contributed their DOS emulator code to the
- remaining BSD world, which is used in the
- <emphasis>doscmd</emphasis> command.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-corealumni">
- <title>Core Team Alumni</title>
-
- <para>The following people were members of the FreeBSD core team during
- the periods indicated. We thank them for their past efforts in the
- service of the FreeBSD project.</para>
-
- <para><emphasis>In rough chronological order:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>&a.ache (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.jmb (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.bde (1992 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.gibbs (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.rich (1994 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.phk (1992 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.gpalmer (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.sos (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.wollman (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.joerg (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.jdp (1997 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.guido (1995 - 1999)</para>
- </listitem>
-
- <listitem>
- <para>&a.dyson (1993 - 1998)</para>
- </listitem>
-
- <listitem>
- <para>&a.nate (1992 - 1996)</para>
- </listitem>
-
- <listitem>
- <para>&a.rgrimes (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.csgr (1993 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.paul (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.smace (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>J. T. Conklin (1992 - 1993)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-develalumni">
- <title>Development Team Alumni</title>
-
- <para>The following people were members of the FreeBSD development team
- during the periods indicated. We thank them for their past efforts
- in the service of the FreeBSD project.</para>
-
- <para><emphasis>In rough chronological order:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>&a.tedm (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.karl (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.gclarkii (1993 - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.jraynard (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.jgreco (???? - 1999)</para>
- </listitem>
- <listitem>
- <para>&a.ats (???? - 1999)</para>
- </listitem>
- <listitem>
- <para>Jamil Weatherby (1997 - 1999)</para>
- </listitem>
- <listitem>
- <para>meganm (???? - 1998)</para>
- </listitem>
- <listitem>
- <para>&a.dyson (???? - 1998)</para>
- </listitem>
- <listitem>
- <para>Amancio Hasty (1997 - 1998)</para>
- </listitem>
- <listitem>
- <para>Drew Derbyshire (1997 - 1998)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-derived">
- <title>Derived Software Contributors</title>
-
- <para>This software was originally derived from William F. Jolitz's 386BSD
- release 0.1, though almost none of the original 386BSD specific code
- remains. This software has been essentially re-implemented from the
- 4.4BSD-Lite release provided by the Computer Science Research Group
- (CSRG) at the University of California, Berkeley and associated academic
- contributors.</para>
-
- <para>There are also portions of NetBSD and OpenBSD that have been
- integrated into FreeBSD as well, and we would therefore like to thank
- all the contributors to NetBSD and OpenBSD for their work.</para>
- </sect1>
-
- <sect1 id="contrib-additional">
- <title>Additional FreeBSD Contributors</title>
-
- <para>(in alphabetical order by first name):</para>
-
- <itemizedlist>
- <listitem>
- <para>ABURAYA Ryushirou <email>rewsirow@ff.iij4u.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>AMAGAI Yoshiji <email>amagai@nue.org</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Bornstein <email>aaronb@j51.com</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Smith <email>aaron@mutex.org</email></para>
- </listitem>
-
- <listitem>
- <para>Achim Patzner <email>ap@noses.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ada T Lim <email>ada@bsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Baran <email>badam@mw.mil.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Herzog <email>adam@herzogdesigns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adam McDougall <email>mcdouga9@egr.msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Strohl <email>troll@digitalspark.net</email></para>
- </listitem>
-
- <listitem>
- <para>Adoal Xu <email>adoal@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Colley <email>aecolley@ois.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>ahall@mirapoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Mariano <email>adrian@cam.cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Steinmann <email>ast@marabu.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian T. Filipi-Martin
- <email>atf3r@agate.cs.virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ajit Thyagarajan <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akio Morita
- <email>amorita@meadow.scphys.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akira SAWADA <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akira Watanabe
- <email>akira@myaw.ei.meisei-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akito Fujita <email>fujita@zoo.ncl.omron.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Alain Kalker
- <email>A.C.P.M.Kalker@student.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Alan Bawden <email>alan@curry.epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alec Wolman <email>wolman@cs.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Aled Morris <email>aledm@routers.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Aleksandr A Babaylov <email>.@babolo.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alex G. Bulushev <email>bag@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Alex D. Chen
- <email>dhchen@Canvas.dorm7.nccu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Le Heux <email>alexlh@funk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Kapranoff <email>kappa@zombie.antar.bryansk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Perel <email>veers@disturbed.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Varju <email>varju@webct.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Zepeda <email>garbanzo@hooked.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Gelfenbain <email>mail@gelf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Leidinger
- <email>netchild@wurzelausix.CS.Uni-SB.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Alexandre Snarskii <email>snar@paranoia.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alistair G. Crooks <email>agc@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Bowhill <email>bowhill@bowhill.vservers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Saddi <email>asaddi@philosophysw.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allen Campbell <email>allenc@verinet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amakawa Shuhei <email>amakawa@hoh.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Amancio Hasty <email>hasty@star-gate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amir Farah <email>amir@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amy Baron <email>amee@beer.org</email></para>
- </listitem>
-
- <listitem>
- <para>The Anarcat <email>beaupran@iro.umontreal.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly A. Orehovsky <email>tolik@mpeks.tomsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly Vorobey <email>mellon@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Andersson <email>anders@codefactory.se</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Nordby <email>anders@fix.no</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Thulin <email>Anders.X.Thulin@telia.se</email></para>
- </listitem>
-
- <listitem>
- <para>Andras Olah <email>olah@cs.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Albsmeier
- <email>Andre.Albsmeier@mchp.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Goeree <email>abgoeree@uwnet.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Oppermann <email>andre@pipeline.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Haakh <email>ah@alman.robin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Kohout <email>shanee@rabbit.augusta.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Lohr <email>andreas@marvin.RoBIN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wetzel <email>mickey@deadline.snafu.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wrede <email>andreas@planix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andres Vega Garcia <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Atrens <email>atreand@statcan.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Boothman <email>andrew@cream.org</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gillham <email>gillham@andrews.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gordon <email>andrew.gordon@net-tel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew J. Korty <email>ajk@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Moore <email>alm@mclink.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Neporada <email>andrew@chg.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew McRae <email>amcrae@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Stevenson <email>andrew@ugh.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Timonin <email>tim@pool1.convey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew V. Stesin <email>stesin@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Webster <email>awebster@dataradio.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Novikov <email>andrey@novikov.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Simonenko <email>simon@comsys.ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Tchoritch <email>andy@venus.sympad.net</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Farkas <email>andyf@speednet.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Whitcroft <email>andy@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Angelo Turetta <email>ATuretta@stylo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony C. Chavez <email>magus@xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony Yee-Hang Chan <email>yeehang@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Berezin <email>tobez@plab.ku.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Anton N. Bruesov <email>antonz@library.ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Voronin <email>anton@urc.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Antti Kaipila <email>anttik@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>arci <email>vega@sophia.inria.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Are Bryne <email>are.bryne@communique.no</email></para>
- </listitem>
-
- <listitem>
- <para>Ari Suutari <email>ari@suutari.iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Arindum Mukerji <email>rmukerji@execpc.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arjan de Vet <email>devet@IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Arun Sharma <email>adsharma@sharmas.dhs.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ask Bjoern Hansen <email>ask@valueclick.com</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Furuta <email>furuta@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Murai <email>amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Bierbauch <email>pivrnec@vszbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Hutchinson <email>benhutch@xfiles.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Jackson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Walter <email>bwalter@itachi.swcp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Benjamin Lewis <email>bhlewis@gte.net</email></para>
- </listitem>
-
- <listitem>
- <para>Berend de Boer <email>berend@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bernd Rosauer <email>br@schiele-ct.de</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Kish <email>kish@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Trost <email>trost@cloud.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Blaz Zupan <email>blaz@amis.net</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Van Valzah <email>Bob@whitebarn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Willcox <email>bob@luke.pmr.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boris Staeblow <email>balu@dva.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd Faulkner <email>faulkner@mpd.tandem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Chapman <email>chapmanb@arches.uga.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Hendrickse <email>bradh@uunet.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Karp <email>karp@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Bradley Dunn <email>bradley@dunn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Jones <email>brad@kazrak.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Fosdick <email>bfoz@glue.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para>
- </listitem>
-
- <listitem>
- <para>&a.wlloyd</para>
- </listitem>
-
- <listitem>
- <para>Brent J. Nordquist <email>bjn@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Taylor
- <email>brett@peloton.runet.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Campbell <email>brianc@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Clapper <email>bmc@willscreek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Cully <email>shmit@kublai.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Handy
- <email>handy@lambic.space.lockheed.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Litzinger <email>brian@MediaCity.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian McGovern <email>bmcgover@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Moore <email>ziff@houdini.eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian R. Haug <email>haug@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Tao <email>taob@risc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brion Moss <email>brion@queeg.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Albrecht <email>bruce@zuhause.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Gingery <email>bgingery@gtcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce J. Keeler <email>loodvrij@gridpoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Murphy <email>packrat@iinet.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Walter <email>walter@fortean.com</email></para>
- </listitem>
-
- <listitem>
- <para>Carey Jones <email>mcj@acquiesce.org</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Fongheiser <email>cmf@netins.net</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Mascott <email>cmascott@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Casper <email>casper@acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Castor Fu <email>castor@geocast.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chain Lee <email>chain@110.net</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Henrich <email>henrich@msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Mott <email>cmott@scientech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Owens <email>owensc@enc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chet Ramey <email>chet@odin.INS.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chia-liang Kao <email>clkao@CirX.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Chiharu Shibata <email>chi@bd.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Chip Norkus <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Csanady <email>cc@tarsier.ca.sandia.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dabrowski <email>chris@vader.org</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dillon <email>cdillon@wolves.k12.mo.us</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Shenton
- <email>cshenton@angst.it.hq.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Stenton <email>jacs@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Timmons <email>skynyrd@opus.cts.cwu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Gusenbauer
- <email>cg@fimp01.fim.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Haury <email>Christian.Haury@sagem.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Weisgerber
- <email>naddy@mips.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph P. Kukulies <email>kuku@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Weber-Fahr
- <email>wefa@callcenter.systemhaus.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher N. Harrell <email>cnh@ivmg.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher T. Johnson
- <email>cjohnson@neunacht.netgsi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chrisy Luke <email>chrisy@flix.net</email></para>
- </listitem>
-
- <listitem>
- <para>Chuck Hein <email>chein@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cliff Rowley <email>dozprompt@onsea.com</email></para>
- </listitem>
-
- <listitem>
- <para>Colman Reilly <email>careilly@tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Conrad Sabatier <email>conrads@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>Coranth Gryphon <email>gryphon@healer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cornelis van der Laan
- <email>nils@guru.ims.uni-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Cove Schneider <email>cove@brazil.nbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Leres <email>leres@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Loomis <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Metz <email>cmetz@inner.net</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Spannring <email>cts@internetcds.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Struble <email>cstruble@vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Cristian Ferretti <email>cfs@riemann.mat.puc.cl</email></para>
- </listitem>
-
- <listitem>
- <para>Curt Mayer <email>curt@toad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cy Schubert <email>cschuber@uumail.gov.bc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Cyrille Lefevre <email>clefevre@citeweb.net</email></para>
- </listitem>
-
- <listitem>
- <para>Cyrus Rahman <email>cr@jcmax.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Daisuke Watanabe <email>NU7D-WTNB@asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Damian Hamill <email>damian@cablenet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Cross <email>tenser@spitfire.ecsel.psu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Langille <email>dan@freebsddiary.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Lukes <email>dan@obluda.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Nelson <email>dnelson@emsphone.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Papasian <email>bugg@bugg.strangled.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Piponi <email>wmtop@tanelorn.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Walters <email>hannibal@cyberstation.net</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Hagan
- <email>dhagan@cs.vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel O'Connor <email>doconnor@gsoft.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Rock <email>rock@cs.uni-sb.de</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel W. McRobb <email>dwm@caimis.com</email></para>
- </listitem>
-
- <listitem>
- <para>Danny Egen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Danny J. Zerkel <email>dzerkel@phofarm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Andersen <email>angio@aros.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Blizzard <email>dblizzar@sprynet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Bodenstab <email>imdave@synet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Chapeskie <email>dchapes@ddm.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Cornejo <email>dave@dogwood.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Edmondson <email>davided@sco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Glowacki <email>dglo@ssec.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Marquardt <email>marquard@austin.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Tweten <email>tweten@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Bader <email>dbader@eece.unm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Borman <email>dab@bsdi.com</email></para>
- </listitem>
-
- <listitem>
- <para>David W. Chapman Jr. <email>dwcjr@inethouston.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@XFree86.org</email></para>
- </listitem>
-
- <listitem>
- <para>David Filo <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>David Holland <email>dholland@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Holloway <email>daveh@gwythaint.tamis.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Horwitt <email>dhorwitt@ucsd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Hovemeyer <email>daveho@infocom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Jones <email>dej@qpoint.torfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Kelly <email>dkelly@tomcat1.tbe.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Kulp <email>dkulp@neomorphic.com</email></para>
- </listitem>
-
- <listitem>
- <para>David L. Nugent <email>davidn@blaze.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Leonard <email>d@scry.dstc.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Muir Sharnoff <email>muir@idiom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David S. Miller <email>davem@jenolan.rutgers.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Sugar <email>dyfet@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>David Wolfskill <email>dhw@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Gaudet <email>dgaudet@arctic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Huxley <email>dean@fsa.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Fortin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Shaposhnikov <email>dsh@vlink.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dennis Glatting
- <email>dennis.glatting@software-munitions.com</email></para>
- </listitem>
-
- <listitem>
- <para>Denton Gentry <email>denny1@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Derek Inksetter <email>derek@saidev.com</email></para>
- </listitem>
-
- <listitem>
- <para>DI. Christian Gusenbauer
- <email>cg@scotty.edvz.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Keunecke <email>dk@panda.rhein-main.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Nehrling <email>nerle@pdv.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dishanker Rajakulendren <email>draj@oceanfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Khrustalev <email>dima@xyzzy.machaon.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Kohmanyuk <email>dk@farm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dom Mitchell <email>dom@myrddin.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Domas Mituzas <email>midom@dammit.lt</email></para>
- </listitem>
-
- <listitem>
- <para>Dominik Brettnacher <email>domi@saargate.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dominik Rothert <email>dr@domix.de</email></para>
- </listitem>
-
- <listitem>
- <para>Don Croyle <email>croyle@gelemna.ft-wayne.in.us</email></para>
- </listitem>
-
- <listitem>
- <para>Donn Miller <email>dmmiller@cvzoom.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Pelleg <email>dpelleg+unison@cs.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>&a.whiteside;</para>
- </listitem>
-
- <listitem>
- <para>Don Morrison <email>dmorrisn@u.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Don Yuniskis <email>dgy@rtd.com</email></para>
- </listitem>
-
- <listitem>
- <para>Donald Maddox <email>dmaddox@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Ambrisko <email>ambrisko@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Carmichael <email>dcarmich@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Crosher <email>dtc@scrooge.ee.swin.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Drew Derbyshire <email>ahd@kew.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dustin Sallings <email>dustin@spy.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eckart "Isegrim" Hofmann
- <email>Isegrim@Wunder-Nett.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Gold
- <email>vegold01@starbase.spd.louisville.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Hudson <email>elh@p5.spnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Chuang <email>edwardc@firebird.org.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Wang <email>edward@edcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Groothus <email>edwin@nwm.wan.philips.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Mons <email>e@ik.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Ege Rekk <email>aagero@aage.priv.no</email></para>
- </listitem>
-
- <listitem>
- <para>Eiji-usagi-MATSUmoto <email>usagi@clave.gr.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Eike Bernhardt <email>eike.bernhardt@gmx.de</email></para>
- </listitem>
-
- <listitem>
- <para>ELISA Font Project</para>
- </listitem>
-
- <listitem>
- <para>Elmar Bartel
- <email>bartel@informatik.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eoin Lawless <email>eoin@maths.tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Eric A. Griff <email>eagriff@global2000.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Blood <email>eblood@cs.unr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric D. Futch <email>efutch@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Schwertfeger <email>eric@cybernut.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric L. Hernes <email>erich@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric P. Scott <email>eps@sirius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Sprinkle <email>eric@ennovatenetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Stefan Boleyn <email>erich@uruk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Zigler <email>erich@tacni.net</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Bakke <email>erikhb@bgnett.no</email></para>
- </listitem>
-
- <listitem>
- <para>Erik E. Rantapaa <email>rantapaa@math.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Moe <email>ehm@cris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst de Haan <email>ernst@heinz.jollem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email></para>
- </listitem>
-
- <listitem>
- <para>Espen Skoglund <email>esk@ira.uka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene M. Kim <email>astralblue@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene Radchenko <email>genie@qsar.chem.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Eugeny Kuzakov <email>CoreDumped@coredumped.null.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Evan Champion <email>evanc@synapse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Faried Nawaz <email>fn@Hungry.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Flemming Jacobsen <email>fj@tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fong-Ching Liaw <email>fong@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Francis M J Hsieh <email>mjshieh@life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Francisco Reyes <email>fjrm@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Bartels <email>knarf@camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Chen Hsiung Chan
- <email>frankch@waru.life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Durda IV <email>uhclem@nemesis.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Frank MacLachlan <email>fpm@n2.net</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Nobis <email>fn@Radio-do.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank ten Wolde <email>franky@pinewood.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank van der Linden <email>frank@fwi.uva.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Volf <email>volf@oasis.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Cawthorne <email>fcawth@jjarray.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Gilham <email>gilham@csl.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Templin <email>templin@erg.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frederick Earl Gray <email>fgray@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>FUJIMOTO Kensaku
- <email>fujimoto@oscar.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>FURUSAWA Kazuhisa
- <email>furusawa@com.cs.osakafu-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>G. Adam Stanislav<email>adam@whizkidtech.net</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Kincses <email>gabor@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Zahemszky <email>zgabor@CoDe.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Gareth McCaughan <email>gjm11@dpmms.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary J. <email>garyj@rks32.pcs.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Kline <email>kline@thought.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gaspar Chilingarov <email>nightmar@lemming.acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Gea-Suan Lin <email>gsl@tpts4.seed.net.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Gene Raytsin <email>pal@paladin7.net</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Georg Wagner <email>georg.wagner@ubs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gianlorenzo Masini <email>masini@uniroma3.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@giovannelli.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gil Kloepfer Jr. <email>gil@limbic.ssdl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gilad Rom <email>rom_glsa@ein-hashofet.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>Giles Lean <email>giles@nemeton.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ginga Kawaguti
- <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Giorgos Keramidas <email>keramida@ceid.upatras.gr</email></para>
- </listitem>
-
- <listitem>
- <para>Glen Foster <email>gfoster@gfoster.com</email></para>
- </listitem>
-
- <listitem>
- <para>Glenn Johnson <email>gljohns@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>Godmar Back <email>gback@facility.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Gord Matzigkeit <email>gord@enci.ucalgary.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Gordon Greeff <email>gvg@uunet.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Graham Wheeler <email>gram@cdsec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg A. Woods <email>woods@zeus.leitch.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ansley <email>gja@ansley.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Robinson <email>greg@rosevale.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Troxel <email>gdt@ir.bbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ungerer <email>gerg@stallion.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory Bond <email>gnb@itga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory D. Moncreaff
- <email>moncrg@bt340707.res.ray.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@netapp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Helmer <email>ghelmer@cs.iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>HAMADA Naoki <email>hamada@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hannu Savolainen <email>hannu@voxware.pp.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Huebner <email>hans@artcom.de</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Petter Bieker <email>zerium@webindex.no</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Zuidam <email>hans@brandinnovators.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harlan Stenn <email>Harlan.Stenn@pfcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harold Barker <email>hbarker@dsms.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harry Newton <email>harry_newton@telinco.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Heikki Suonsivu <email>hsu@cs.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Heiko W. Rupp <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Helmut F. Wirth <email>hfwirth@ping.at</email></para>
- </listitem>
-
- <listitem>
- <para>Henrik Vestergaard Draboel
- <email>hvd@terry.ping.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideaki Ohmon <email>ohmon@tom.sfc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hidekazu Kuroki <email>hidekazu@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hideki Yamamoto <email>hyama@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideyuki Suzuki
- <email>hideyuki@sat.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hirayama Issei <email>iss@mail.wbs.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroaki Sakai <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroharu Tamaru <email>tamaru@ap.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hironori Ikura <email>hikura@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroshi Nishikawa <email>nis@pluto.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroya Tsubakimoto <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Lamm <email>holger@eit.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holm Tiffe <email>holm@geophysik.tu-freiberg.de</email></para>
- </listitem>
-
- <listitem>
- <para>HONDA Yasuhiro
- <email>honda@kashio.info.mie-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Horance Chou
- <email>horance@freedom.ie.cycu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Horihiro Kumagai <email>kuma@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>HOTARU-YA <email>hotaru@tail.net</email></para>
- </listitem>
-
- <listitem>
- <para>Hr.Ladavac <email>lada@ws2301.gud.siemens.co.at</email></para>
- </listitem>
-
- <listitem>
- <para>Hubert Feyrer <email>hubertf@NetBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh F. Mahon <email>hugh@nsmdserv.cnd.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh Mahon <email>h_mahon@fc.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hung-Chi Chu <email>hcchu@r350.ee.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Holland <email>ianh@tortuga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Struble <email>ian@broken.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Vaudrey <email>i.vaudrey@bigfoot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Khasilev <email>igor@jabber.paco.odessa.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Roshchin <email>str@giganda.komkon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Sviridov <email>siac@ua.net</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Vinokurov <email>igor@zynaps.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Ikuo Nakagawa <email>ikuo@isl.intec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ilia Chipitsine <email>ilia@jane.cgu.chel.su</email></para>
- </listitem>
-
- <listitem>
- <para>Ilya V. Komarov <email>mur@lynx.ru</email></para>
- </listitem>
-
- <listitem>
- <para>IMAI Takeshi <email>take-i@ceres.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IMAMURA Tomoaki
- <email>tomoak-i@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Itsuro Saito <email>saito@miv.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IWASHITA Yoji <email>shuna@pop16.odn.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>J. Bryant <email>jbryant@argus.flash.net</email></para>
- </listitem>
-
- <listitem>
- <para>J. David Lowe <email>lowe@saturn5.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Han <email>hjh@photino.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Hawk <email>jhawk@MIT.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jack <email>jack@zeus.xtalwind.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jacob Bohn Lorensen <email>jacob@jblhome.ping.mk</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jake Hamby <email>jehamby@lightside.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James D. Stewart <email>jds@c4systm.com</email></para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Raynard
- <email>fhackers@jraynard.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>James T. Liu <email>jtliu@phlebas.rockefeller.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jamie Heckford <email>jamie@jamiesdomain.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Conard
- <email>charly@fachschaften.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Koum <email>jkb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Janick Taillandier
- <email>Janick.Taillandier@ratp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Janusz Kokot <email>janek@gaja.ipan.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Jarle Greipsland <email>jarle@idt.unit.no</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Garman <email>init@risen.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason R. Mastaler
- <email>jason-freebsd@mastaler.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Thorpe <email>thorpej@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Wright <email>jason@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Young
- <email>doogie@forbidden-donut.anet-stl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Javier Martin Rueda <email>jmrueda@diatel.upm.es</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Krell <email>jay.krell@cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jaye Mathisen <email>mrcpu@cdsnet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Bartig <email>jeffb@doit.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Brown <email>jabrown@caida.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Forys <email>jeff@forys.cranbury.nj.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Kletsky <email>Jeff@Wagsky.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Palmer <email>jeff@isni.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Evans <email>evans@scnc.k12.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Wheat <email>jeff@cetlink.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Allison <email>jallison@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chadwick <email>yoshi@parodius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chatfield <email>jdc@xinside.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Karlson <email>karlj000@unbc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Prior <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Shaffner <email>jeremy@external.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse McConnell <email>jesse@cylant.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse Rosenstock <email>jmr@ugcs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jian-Da Li <email>jdli@csie.nctu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Babb <email>babb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Binkley <email>jrb@cs.pdx.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Bloom <email>bloom@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Carroll <email>jim@carroll.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Flowers <email>jflowers@ezo.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Leppek <email>jleppek@harris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Lowe <email>james@cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mattson <email>jmattson@sonic.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mercer <email>jim@komodo.reptiles.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Sloan <email>odinn@atlantabiker.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jimbo Bahooli
- <email>griffin@blackhole.iceworld.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jin Guojun <email>jin@george.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Joachim Kuebart <email>kuebart@mathematik.uni-ulm.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joao Carlos Mendes Luis <email>jonny@jonny.eng.br</email></para>
- </listitem>
-
- <listitem>
- <para>Jochen Pohl <email>jpo.drs@sni.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joe "Marcus" Clarke <email>marcus@miami.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Abley <email>jabley@automagic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Jih-Shian Lu <email>jslu@dns.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Orthoefer <email>j_orthoefer@tia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Traister <email>traister@mojozone.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Faedi <email>Joel.Faedi@esial.u-nancy.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Ray Holveck <email>joelh@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Sutton <email>jsutton@bbcon.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Scott <email>joseph@randomnetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Granlund <email>johan@granlund.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Karlsson <email>k@numeri.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Larsson <email>johan@moon.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johann Tonsing <email>jtonsing@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Helander <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Stille <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Beckett <email>jbeckett@southern.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Beukema <email>jbeukema@hk.super.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Brezak <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Capo <email>jc@irbs.com</email></para>
- </listitem>
-
- <listitem>
- <para>John F. Woods <email>jfw@jfwhome.funhouse.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Goerzen
- <email>jgoerzen@alexanderwohl.complete.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Heidemann <email>johnh@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Hood <email>cgull@owl.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Kohl <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Lind <email>john@starfire.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Mackin <email>john@physiol.su.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>John P <email>johnp@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Perry <email>perry@vishnu.alias.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Preisler <email>john@vapornet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Reynolds <email>jjreynold@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Rochester <email>jr@cs.mun.ca</email></para>
- </listitem>
-
- <listitem>
- <para>John Sadler <email>john_sadler@alum.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Saunders <email>john@pacer.nlc.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>John Wehle <email>john@feith.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Johny Mattsson <email>lonewolf@flame.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jon Morgan <email>morgan@terminus.trailblazer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan H N Chin <email>jc254@newton.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Hanna
- <email>jh@pc-21490.bc.rogers.wave.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Pennington <email>john@coastalgeology.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge Goncalves <email>j@bug.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge M. Goncalves <email>ee96199@tom.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jos Backus <email>jbackus@plex.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Jose Marques <email>jose@nobody.org</email></para>
- </listitem>
-
- <listitem>
- <para>Josef Grosch
- <email>jgrosch@superior.mooseriver.com</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Stein <email>joes@wstein.com</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Gilliam <email>josh@quick.net</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Tiefenbach <email>josh@ican.net</email></para>
- </listitem>
-
- <listitem>
- <para>Juergen Lock <email>nox@jelal.hb.north.de</email></para>
- </listitem>
-
- <listitem>
- <para>Juha Inkari <email>inkari@cc.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Jukka A. Ukkonen <email>jau@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Assange <email>proff@suburbia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Coleman <email>j.d.coleman@ncl.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>&a.jhs</para>
- </listitem>
-
- <listitem>
- <para>Julian Jenkins <email>kaveman@magna.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Junichi Satoh <email>junichi@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junji SAKAI <email>sakai@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junya WATANABE <email>junya-w@remus.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Justas <email>justas@mbank.lv</email></para>
- </listitem>
-
- <listitem>
- <para>Justin Stanford <email>jus@security.za.net</email></para>
- </listitem>
-
- <listitem>
- <para>K.Higashino <email>a00303@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kai Vorma <email>vode@snakemail.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Kaleb S. Keithley <email>kaleb@ics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kaneda Hiloshi <email>vanitas@ma3.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kang-ming Liu <email>gugod@gugod.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kapil Chowksey <email>kchowksey@hss.hns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Denninger <email>karl@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>KATO Tsuguru <email>tkato@prontomail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kawanobe Koh <email>kawanobe@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kees Jan Koster <email>kjk1@ukc.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@bostic.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith E. Walker <email>kew@icehouse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Moore <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Sklower <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hornstein <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Key <email>key@cs.utk.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Mayer <email>kmayer@freegate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Saito <email>marukun@mx2.nisiq.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Tomita <email>tommyk@da2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Furge <email>kenneth.furge@us.endress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Monville <email>desmo@bandwidth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth R. Westerback <email>krw@tcn.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Stailey <email>kstailey@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Vander Velden <email>graphix@iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kentaro Inagaki <email>JBD01226@niftyserve.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Bracey <email>kbracey@art.acorn.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Day <email>toasty@dragondata.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml@nas.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Meltzer <email>perlguy@perlguy.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Street <email>street@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Van Maren <email>vanmaren@fast.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kim Scarborough <email>sluggo@unknown.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Kiril Mitev <email>kiril@ideaglobal.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kiroh HARADA <email>kiroh@kh.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Herrmann <email>klaus.herrmann@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Klein <email>kleink@layla.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus-J. Wolf <email>Yanestra@t-online.de</email></para>
- </listitem>
-
- <listitem>
- <para>Koichi Sato <email>copan@ppp.fastnet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Konrad Heuer <email>kheuer@gwdu60.gwdg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Konstantin Chuguev <email>Konstantin.Chuguev@dante.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kostya Lukin <email>lukin@okbmei.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Kouichi Hirabayashi <email>kh@mogami-wire.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kris Dow <email>kris@vilnya.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt D. Zeilenga <email>Kurt@Boolean.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt Olsen <email>kurto@tiny.mcs.usu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>L. Jonas Olsson
- <email>ljo@ljo-slip.DIALIN.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Lars Bernhardsson <email>lab@fnurt.net</email></para>
- </listitem>
-
- <listitem>
- <para>Lars K&ouml;ller
- <email>Lars.Koeller@Uni-Bielefeld.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Laurence Lopez <email>lopez@mv.mv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lee Cremeans <email>lcremean@tidalwave.net</email></para>
- </listitem>
-
- <listitem>
- <para>Leo Kim <email>leo@florida.sarang.net</email></para>
- </listitem>
-
- <listitem>
- <para>Liang Tai-hwa
- <email>avatar@www.mmlab.cse.yzu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Lon Willett <email>lon%softt.uucp@math.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Louis A. Mamakos <email>louie@TransSys.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Louis Mamakos <email>loiue@TransSys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lowell Gilbert <email>lowell@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lucas James <email>Lucas.James@ldjpc.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Lyndon Nerenberg <email>lyndon@orthanc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>M. L. Dodson <email>bdodson@scms.utmb.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>M.C. Wong <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Magnus Enbom <email>dot@tinto.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mahesh Neelakanta <email>mahesh@gcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto MATSUSHITA <email>matusita@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto WATANABE
- <email>watanabe@zlab.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto YAMAKURA <email>makoto@pinpott.spnet.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Malte Lance <email>malte.lance@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>MANTANI Nobutaka <email>nobutaka@nobutaka.com</email></para>
- </listitem>
-
- <listitem>
- <para>Manu Iyengar
- <email>iyengar@grunthos.pscwa.psca.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Ramirez <email>mrami@mramirez.sy.yale.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Slemko <email>marcs@znep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Kempen <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Woerkom <email>van.woerkom@netcologne.de</email></para>
- </listitem>
-
- <listitem>
- <para>Marcin Cieslak <email>saper@system.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Andrews <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Cammidge <email>mark@gmtunx.ee.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Diekhans <email>markd@grizzly.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Huizer <email>xaa@stack.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark J. Taylor <email>mtaylor@cybernet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Knight <email>markk@knigma.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Krentel <email>krentel@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Mayo <email>markm@vmunix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Pulford <email>mark@kyne.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Thompson <email>thompson@tgsoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Treacy <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Valentine <email>mark@linus.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Markus Holmberg <email>saska@acc.umu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Birgmeier <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Blapp <email>blapp@attic.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Hinner <email>mhi@linux.gyarab.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Ibert <email>mib@ppe.bb-data.de</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Kammerhofer <email>dada@sbox.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Minkus <email>diskiller@cnbinc.com</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Martti Kuparinen
- <email>martti.kuparinen@ericsson.com</email></para>
- </listitem>
-
- <listitem>
- <para>Masachika ISHIZUKA
- <email>ishizuka@isis.min.ntt.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro Sekiguchi
- <email>seki@sysrap.cs.fujitsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro TAKEMURA
- <email>mastake@msel.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanobu Saitoh <email>msaitoh@spa.is.uec.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kanaoka <email>kana@saijo.mke.mei.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kiriake <email>seiken@ARGV.AC</email></para>
- </listitem>
-
- <listitem>
- <para>Masatoshi TAMURA
- <email>tamrin@shinzan.kuee.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mats Lofkvist <email>mal@algonet.se</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Bartley <email>mbartley@lear35.cytex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Heckaman <email>matt@LUCIDA.QC.CA</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Thomas <email>matt@3am-software.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt White <email>mwhite+@CMU.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew C. Mead <email>mmead@Glock.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Cashdollar <email>mattc@rfcnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Emmerton <email>root@gabby.gsicomp.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Flatt <email>mflatt@cs.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Fuller <email>fullermd@futuresouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Stein <email>matt@bdd.net</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew West <email>mwest@uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Pfaller <email>leo@dachau.marco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Scheler <email>tron@netbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Gronlund
- <email>Mattias.Gronlund@sa.erisoft.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Pantzare <email>pantzer@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Maurice Castro
- <email>maurice@planet.serc.rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Max Euston <email>meuston@jmrodgers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Max Khon <email>fjoe@husky.iclub.nsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxim Bolotin <email>max@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxime Henrion <email>mhenrion@cybercable.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Micha Class
- <email>michael_class@hpbbse.bbn.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Alyn Miller <email>malyn@strangeGizmo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Lucas <email>mwlucas@blackhelicopters.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Lyngbøl <email>michael@lyngbol.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butler <email>imb@scgt.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butschky <email>butsch@computi.erols.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hancock <email>michaelh@cet.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hohmuth <email>hohmuth@inf.tu-dresden.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Perlman <email>canuck@caam.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Petry <email>petry@netwolf.NetMasters.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Reifenberger <email>root@totum.plaut.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Sardo <email>jaeger16@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Urban <email>murban@tznet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Vasilenko <email>acid@stu.cn.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Michal Listos <email>mcl@Amnesiac.123.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michio Karl Jinbo
- <email>karl@marcer.nagaokaut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Miguel Angel Sagreras
- <email>msagre@cactus.fi.uba.ar</email></para>
- </listitem>
-
- <listitem>
- <para>Mihoko Tanaka <email>m_tonaka@pa.yokogawa.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mika Nystrom <email>mika@cs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Hybsch <email>micke@dynas.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Karpberg
- <email>karpen@ocean.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Barcroft <email>mike@q9media.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Bristow <email>mike@urgle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Del <email>repenting@hotmail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durian <email>durian@plutotech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike E. Matsnev <email>mike@azog.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Evans <email>mevans@candle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Grupenhoff <email>kashmir@umiacs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Harding <email>mvh@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Hibler <email>mike@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Karels <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mike McGaughey <email>mmcg@cs.monash.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Meyer <email>mwm@mired.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Mitchell <email>mitchell@ref.tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Murphy <email>mrm@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Peck <email>mike@binghamton.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Sherwood <email>mike@fate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Spengler <email>mks@msc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikhail A. Sokolov <email>mishania@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Ming-I Hseh <email>PA@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Mitsuru Yoshida <email>mitsuru@riken.go.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Monte Mitzelfelt <email>monte@gonefishing.org</email></para>
- </listitem>
-
- <listitem>
- <para>Morgan Davis <email>root@io.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mostyn Lewis <email>mostyn@mrl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nadav Eiron <email>nadav@barcode.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAJI Hiroyuki
- <email>nakaji@tutrp.tut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Kazushi <email>nkazushi@highway.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Motonori
- <email>motonori@econ.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKATA, Maho <email>chat95@mbox.kyoto-inet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nanbor Wang <email>nw1@cs.wustl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Naofumi Honda
- <email>honda@Kururu.math.sci.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Narvi <email>narvi@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Nathan Dorfman <email>nathan@rtfm.net</email></para>
- </listitem>
-
- <listitem>
- <para>Neal Fachan <email>kneel@ishiboo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Niall Smart <email>rotel@indigo.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Nicholas Esborn <email>nick@netdot.net</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Barnes <email>Nick.Barnes@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Hilliard <email>nick@foobar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Johnson <email>freebsd@spatula.net</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Williams <email>njw@cs.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nickolay N. Dudorov <email>nnd@itfs.nsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>NIIMI Satoshi <email>sa2c@and.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Niklas Hallqvist <email>niklas@filippa.appli.se</email></para>
- </listitem>
-
- <listitem>
- <para>Nils M. Holm <email>nmh@t3x.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nisha Talagala <email>nisha@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>adrian@virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>alex@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>anto@netscape.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bobson@egg.ics.nitch.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bovynf@awe.be</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>burg@is.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>chris@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>colsen@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>coredump@nervosa.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dannyman@arh0300.urh.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>davids@SECNET.COM</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>derek@free.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>devet@adv.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>djv@bedford.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dvv@sprint.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>enami@ba2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@eru.tubank.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@hway.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>fn@pain.csrv.uidaho.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>frf@xocolatl.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gclarkii@netport.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gordon@sheaky.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>graaf@iae.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>greg@greg.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>grossman@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gusw@fub46.zedat.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hfir@math.rochester.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hnokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iaint@css.tuu.utas.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>invis@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ishisone@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iverson@lionheart.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>jpt@magic.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>junker@jazz.snu.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>k-sugyou@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kenji@reseau.toyonaka.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kfurge@worldnet.att.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lh@aus.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lhecking@nmrc.ucc.ie</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>mrgreen@mame.mu.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>nakagawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ohki@gssm.otsuka.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>owaki@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pechter@shell.monmouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pete@pelican.pelican.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pritc003@maroon.tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>risner@stdio.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>roman@rpd.univ.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@ns2.redline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@uglabgw.ug.cs.sunysb.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>stephen.ma@jtec.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>sumii@is.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>takas-su@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tamone@eig.unige.ch</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tjevans@raleigh.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tony-o@iij.ad.jp amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>torii@tcd.hitachi.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uenami@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uhlar@netlab.sk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>vode@hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlloyd@mpd.ca</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlr@furball.wellsfargo.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>yamagata@nwgpc.kek.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ziggy@ryan.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ZW6T-KND@j.asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuhiro Yasutomi <email>nobu@psrc.isac.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuyuki Koganemaru
- <email>kogane@koganemaru.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NOKUBI Hirotaka <email>h-nokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Norio Suzuki <email>nosuzuki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Noritaka Ishizumi <email>graphite@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Noriyuki Soda <email>soda@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Oddbjorn Steffenson <email>oddbjorn@tricknology.org</email</para>
- </listitem>
-
- <listitem>
- <para>Oh Junseon <email>hollywar@mail.holywar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Semyonov <email>os@altavista.net</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Sharoiko <email>os@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg V. Volkov <email>rover@lglobus.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Olexander Kunytsa <email>kunia@wolf.istc.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Breuninger <email>ob@seicom.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Friedrichs <email>oliver@secnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Fromme
- <email>oliver.fromme@heim3.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Helmling
- <email>oliver.helmling@stud.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Laumann
- <email>net@informatik.uni-bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Lehmann
- <email>Kai_Allard_Liao@gmx.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Oberdorf <email>oly@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Olof Johansson <email>offe@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Osokin Sergey aka oZZ <email>ozz@FreeBSD.org.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paco Rosich <email>rosich@modico.eleinf.uv.es</email></para>
- </listitem>
-
- <listitem>
- <para>Palle Girgensohn <email>girgen@partitur.se</email></para>
- </listitem>
-
- <listitem>
- <para>Parag Patel <email>parag@cgt.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pascal Pederiva <email>pascal@zuo.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pasvorn Boonmark <email>boonmark@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Bihan-Faou <email>patrick@mindstep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Hausen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Seal <email>patseal@hyperhost.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Antonov <email>apg@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Paul F. Werkowski <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Fox <email>pgf@foxharp.boston.ma.us</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Koch <email>koch@thehub.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Paul M. Lambert <email>plambert@plambert.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul S. LaFollette, Jr. <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Sandys <email>myj@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul T. Root <email>proot@horton.iaces.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Vixie <email>paul@vix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>paulo@isr.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>pm@dee.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro A M Vazquez <email>vazquez@IQM.Unicamp.BR</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro Giffuni <email>giffunip@asme.org</email></para>
- </listitem>
-
- <listitem>
- <para>Per Wigren <email>wigren@home.se</email></para>
- </listitem>
-
- <listitem>
- <para>Pete Bentley <email>pete@demon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Childs <email>pjchilds@imforei.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Cornelius <email>pc@inr.fzk.de</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Haight <email>peterh@prognet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Jeremy <email>perer.jeremy@alcatel.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter M. Chen <email>pmchen@eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Much <email>peter@citylink.dinoex.sub.org</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Olsson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Philipp <email>pjp@bsd-daemon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Stubbs <email>PETERS@staidan.qld.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter van Heusden <email>pvh@egenetics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Maker <email>pjm@cs.ntu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Taylor <email>phil@zipmail.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Philip Musumeci <email>philip@rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Philippe Lefebvre <email>nemesis@balistik.net</email></para>
- </listitem>
-
- <listitem>
- <para>Pierre Y. Dampure <email>pierre.dampure@k2c.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Pius Fischer <email>pius@ienet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pomegranate <email>daver@flag.blackened.net</email></para>
- </listitem>
-
- <listitem>
- <para>Powerdog Industries
- <email>kevin.ruddy@powerdog.com</email></para>
- </listitem>
-
- <listitem>
- <para>Priit J&auml;rv <email>priit@cc.ttu.ee</email></para>
- </listitem>
-
- <listitem>
- <para>R Joseph Wright <email>rjoseph@mammalia.org</email></para>
- </listitem>
-
- <listitem>
- <para>R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Randal S. Masutani <email>randal@comtest.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall Hopper <email>rhh@ct.picker.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall W. Dean <email>rwd@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Randy Bush <email>rbush@bainbridge.verio.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rasmus Kaj <email>kaj@Raditex.se</email></para>
- </listitem>
-
- <listitem>
- <para>Reinier Bezuidenhout
- <email>rbezuide@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Remy Card <email>Remy.Card@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Ricardas Cepas <email>rch@richard.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Riccardo Veraldi <email>veraldi@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Rich Wood <email>rich@FreeBSD.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Henderson <email>richard@atheist.tamu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Hwang <email>rhwang@bigpanda.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Kiss <email>richard@homemail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard J Kuhns <email>rjk@watson.grauel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard M. Neswold
- <email>rneswold@enteract.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Seaman, Jr. <email>dick@tar.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Stallman <email>rms@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Straka <email>straka@user1.inficad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Tobin <email>richard@cogsci.ed.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wackerbarth <email>rkw@Dataplex.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Winkel <email>rich@math.missouri.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wiwatowski <email>rjwiwat@adelaide.on.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>rick@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Austein <email>sra@epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Mallory <email>rmallory@qualcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Snow <email>rsnow@txdirect.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Crowe <email>bob@speakez.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Eckardt
- <email>roberte@MEP.Ruhr-Uni-Bochum.de</email></para>
- </listitem>
-
- <listitem>
- <para>Robert P Ricci <email>ricci@cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sanders <email>rsanders@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sexton <email>robert@kudra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Shady <email>rls@id.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Swindells <email>swindellsr@genrad.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Withrow <email>witr@rwwa.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Yoder <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Robin Carey
- <email>robin@mailgate.dtc.rankxerox.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Rod Taylor <email>rod@idiotswitch.org</email></para>
- </listitem>
-
- <listitem>
- <para>Roger Hardiman <email>roger@cs.strath.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Roland Jesse <email>jesse@cs.uni-magdeburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Roman Shterenzon <email>roman@xpert.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Bickers <email>rbickers@intercenter.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Lenk <email>rlenk@widget.xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ronald Kuehn <email>kuehn@rz.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rudolf Cejka <email>cejkar@dcse.fee.vutbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Belkin <email>rus@home2.UA.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Shevchenko <email>rssh@cam.grad.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Russell L. Carter <email>rcarter@pinyon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Russell Vincent <email>rv@groa.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Ryan Younce <email>ryany@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ryuichiro IMURA <email>imura@af.airnet.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakari Jalovaara <email>sja@tekla.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Sam Hartman <email>hartmans@mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Lam <email>skl@ScalableNetwork.com</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Tardieu <email>sam@inf.enst.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Samuele Zannoli <email>zannoli@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Janssen <email>janssen@rendo.dekooi.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Vesik <email>sander@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Sandro Sigala <email>ssigala@globalnet.it</email></para>
- </listitem>
-
- <listitem>
- <para>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SASAKI Shunsuke <email>ele@pop17.odn.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Blank <email>blank@fox.uni-trier.de</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Satoh Junichi <email>junichi@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SAWADA Mizuki <email>miz@qb3.so-net.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Scot Elliott <email>scot@poptart.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scot W. Hetzel <email>hetzels@westbend.net</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Kenney <email>saken@rmta.ml.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Moberly <email>smoberly@xavier.dyndns.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Blachowicz
- <email>scott.blachowicz@seaslug.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Hazen Mueller <email>scott@zorch.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Michel <email>scottm@cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Mitchel <email>scott@uk.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sebastian Strollo <email>seb@erix.ericsson.se</email></para>
- </listitem>
-
- <listitem>
- <para>Serge V. Vakulenko <email>vak@zebub.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei Chechetkin <email>csl@whale.sunbay.crimea.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei S. Laskavy <email>laskavy@pc759.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Gershtein <email>sg@mplik.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Kosyakov <email>ks@itp.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Potapov <email>sp@alkor.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Samoyloff <email>gonza@techline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Shkonda <email>serg@bcs.zp.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Skvortsov <email>skv@protey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey V.Dorokhov <email>svd@kbtelecom.nalnet.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergio Lenzi <email>lenzi@bsi.com.br</email></para>
- </listitem>
-
- <listitem>
- <para>Shaun Courtney <email>shaun@emma.eng.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Shawn M. Carey <email>smcarey@mailbox.syr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Shigio Yamaguchi <email>shigio@tamacom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shinya FUJIE <email>fujie@tk.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Simon <email>simon@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Burge <email>simonb@telstra.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Dick <email>simond@irrelevant.org</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Marlow <email>simonm@dcs.gla.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Shapiro <email>shimon@simon-shapiro.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sin'ichiro MIYATANI <email>siu@phaseone.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Soochon Radee <email>slr@mitre.org</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dayton <email>csdayton@midway.uchicago.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dossing <email>sauber@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Soren S. Jorvang <email>soren@wheel.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Bethke <email>stb@hanse.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Eggers <email>seggers@semyam.dinoco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Moeding <email>s.moeding@ndh.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Petri <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan `Sec` Zehl <email>sec@42.org</email></para>
- </listitem>
-
- <listitem>
- <para>Steinar Haug <email>sthaug@nethelp.no</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane E. Potvin <email>sepotvin@videotron.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane Legrand <email>stephane@lituus.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Clawson
- <email>sclawson@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen F. Combs <email>combssf@salem.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Farrell <email>stephen@farrell.org</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Hocking <email>sysseh@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen J. Roznowski <email>sjr@home.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Melvin <email>melvin@zytek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Bauer <email>sbauer@rock.sdsmt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Coltrin <email>spcoltri@unm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Deering <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gerakines <email>steve2@genesis.tiac.net</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gericke <email>steveg@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Piette <email>steve@simon.chi.il.US</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Schwarz <email>schwarz@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Enderle <email>panic@subphase.de</email></para>
- </listitem>
-
- <listitem>
- <para>Steven G. Kargl
- <email>kargl@troutmask.apl.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven H. Samorodin <email>samorodi@NUXI.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven McCanne <email>mccanne@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Plite <email>splite@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Wallace <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stijn Hoop <email>stijn@win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Stuart Henderson
- <email>stuart@internationalschool.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Sue Blake <email>sue@welearn.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sugiura Shiro <email>ssugiura@duo.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sujal Patel <email>smpatel@wam.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Sungman Cho <email>smcho@tsp.korea.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>Sune Stjerneby <email>stjerneby@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>SURANYI Peter
- <email>suranyip@jks.is.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Suzuki Yoshiaki
- <email>zensyo@ann.tama.kawasaki.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Svein Skogen
- <email>tds@nsn.no</email></para>
- </listitem>
-
- <listitem>
- <para>Sybolt de Boer <email>bolt@xs4all.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Tadashi Kumano <email>kumano@strl.nhk.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Taguchi Takeshi <email>taguchi@tohoku.iij.ad.jp</email></para>
- </listitem>
-
- <listitem>
- <para>TAKAHASHI Kaoru <email>kaoru@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takahiro Yugawa <email>yugawa@orleans.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Mega <email>mega@minz.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Uozu <email>j1594016@ed.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takayuki Ariga <email>a00821@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeru NAIKI <email>naiki@bfd.es.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Amaike <email>amaike@iri.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi MUTOH <email>mutoh@info.nara-k.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Ohashi
- <email>ohashi@mickey.ai.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi WATANABE
- <email>watanabe@crayon.earth.s.kobe-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takuya SHIOZAKI
- <email>tshiozak@makino.ise.chuo-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tatoku Ogaito <email>tacha@tera.fukui-med.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Buswell <email>tbuswell@mediaone.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Faber <email>faber@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Lemon <email>mellon@isc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@lambert.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tetsuya Furukawa <email>tetsuya@secom-sis.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Theo de Raadt <email>deraadt@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas <email>thomas@mathematik.uni-Bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas D. Dean <email>tomdean@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas David Rivers <email>rivers@dignus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas G. McWilliams <email>tgm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Graichen
- <email>graichen@omega.physik.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas K&ouml;nig
- <email>Thomas.Koenig@ciw.uni-karlsruhe.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Ptacek <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Quinot <email>thomas@cuivre.fr.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas A. Stephens <email>tas@stephens.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Stromberg <email>tstrombe@rtci.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Valentino Crimi
- <email>tcrimi+@andrew.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Wintergerst <email>thomas@lemur.nord.de</email></para>
- </listitem>
-
- <listitem>
- <para>&THORN;&oacute;r&eth;ur &Iacute;varsson
- <email>totii@est.is</email></para>
- </listitem>
-
- <listitem>
- <para>Thierry Thomas <email>tthomas@mail.dotcom.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Timothy Jensen <email>toast@blackened.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Kientzle <email>kientzle@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Singletary
- <email>tsingle@sunland.gsfc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Wilkinson <email>tim@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Timo J. Rinne <email>tri@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Tobias Reifenberger <email>treif@mayn.de</email></para>
- </listitem>
-
- <listitem>
- <para>Todd Miller <email>millert@openbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>root@majestix.cmr.no</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>tom@sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Gray - DCA <email>dcasba@rain.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Jobbins <email>tom@tom.tj</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Pusateri <email>pusateri@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Rush <email>tarush@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Samplonius <email>tom@misery.sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tomohiko Kurahashi
- <email>kura@melchior.q.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Kimball <email>alk@Think.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Li <email>tli@jnx.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Lynn <email>wing@cc.nsysu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Maher <email>Tony.Maher@eBioinformatics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Torbjorn Granlund <email>tege@matematik.su.se</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiko SHIMOKAWA <email>toshi@tea.forus.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiro Kanda <email>candy@kgc.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshiomi Moriki
- <email>Toshiomi.Moriki@ma1.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Trefor S. <email>trefor@flevel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Trenton Schulz <email>twschulz@cord.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Trevor Blackwell <email>tlb@viaweb.com</email></para>
- </listitem>
-
- <listitem>
- <para>Udo Schweigert <email>ust@cert.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ugo Paternostro <email>paterno@dsi.unifi.it</email></para>
- </listitem>
-
- <listitem>
- <para>Ulf Kieber <email>kieber@sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ulli Linzen <email>ulli@perceval.camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Uwe Arndt <email>arndt@mailhost.uni-koblenz.de</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Belman <email>vab@lflat.vas.mobilix.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Chekan <email>vadim@gc.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Kolontsov <email>vadim@tversu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Mikhailov <email>mvp@braz.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Valentin Nechayev <email>netch@lucky.net</email></para>
- </listitem>
-
- <listitem>
- <para>Valentino Vaschetto <email>logo@blackened.com</email></para>
- </listitem>
-
- <listitem>
- <para>Van Jacobson <email>van@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Vasily V. Grechishnikov
- <email>bazilio@ns1.ied-vorstu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vasim Valejev <email>vasim@uddias.diaspro.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vernon J. Schryver <email>vjs@mica.denver.sgi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Veselin Slavov <email>vess@btc.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vic Abell <email>abe@cc.purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ville Eerola <email>ve@sci.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Vince Valenti <email>vince@blue-box.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincent Poy <email>vince@venus.gaianet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincenzo Capuano
- <email>VCAPUANO@vmprofs.esoc.esa.de</email></para>
- </listitem>
-
- <listitem>
- <para>Virgil Champlin <email>champlin@pa.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir A. Jakovenko
- <email>vovik@ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir Kushnir <email>kushn@mail.kar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vsevolod Lobko <email>seva@alex-ua.com</email></para>
- </listitem>
-
- <listitem>
- <para>W. Gerald Hicks <email>wghicks@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens <email>rstevens@noao.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt Howard <email>howard@ee.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt M. Shandruk <email>walt@erudition.net</email</para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wayne Scott <email>wscott@ichips.intel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Werner Griessl
- <email>werner@btp1da.phy.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wes Santee <email>wsantee@wsantee.oz.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wietse Venema <email>wietse@wzv.win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>Willem Jan Withagen <email>wjw@surf.IAE.nl</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>William Liao <email>william@tale.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wojtek Pilorz
- <email>wpilorz@celebris.bdk.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Helbig <email>helbig@ba-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Wu Ching-hong <email>woju@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Yarema <email>yds@ingress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Yaroslav Terletsky <email>ts@polynet.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhiro Fukama <email>yasuf@big.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Ming Lee <email>leeym@bsd.ce.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yin-Jieh Chen <email>yinjieh@Crazyman.Dorm13.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yixin Jin <email>yjin@rain.cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yoichi Asai <email>yatt@msc.biglobe.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoichi Nakayama <email>yoichi@eken.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshiaki Uchikawa <email>yoshiaki@kt.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihiko SARUMRU <email>mistral@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihisa NAKAGAWA
- <email>y-nakaga@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshikazu Goto <email>gotoh@ae.anritsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshimasa Ohnishi
- <email>ohnishi@isc.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshishige Arai <email>ryo2@on.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuichi MATSUTAKA <email>matutaka@osa.att.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yujiro MIYATA
- <email>miyata@bioele.nuee.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yu-Shun Wang <email>yushunwa@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yusuke Nawano <email>azuki@azkey.org</email></para>
- </listitem>
-
- <listitem>
- <para>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuuki SAWADA <email>mami@whale.cc.muroran-it.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuuichi Narahara <email>aconitum@po.teleway.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@cpcoup5.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@dutncp8.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Heilig <email>zach@gaffaneys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Zurflu <email>zach@pabst.bendnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zahemszhky Gabor <email>zgabor@code.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Zhong Ming-Xun <email>zmx@mail.CDPA.nsysu.edu.tw</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-386bsd">
- <title>386BSD Patch Kit Patch Contributors</title>
-
- <para>(in alphabetical order by first name):</para>
-
- <itemizedlist>
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>ahall@mirapoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey A. Chernov <email>ache@astral.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore <email>alm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email>
- <email>jtk@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Branko Lankester</para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Rivers <email>rivers@ponds.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@physics.su.OZ.AU</email></para>
- </listitem>
-
- <listitem>
- <para>David Greenman <email>dg@Root.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Felix Gaehtgens
- <email>felix@escape.vsse.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Maclachlan <email>fpm@crash.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Guido van Rooij <email>guido@gvr.org</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Antony Halse <email>guy@rucus.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@auspex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@novatel.cuc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ishii Masahiro, R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James W. Dolter</para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email> et al</para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Lohse
- <email>lohse@tech7.informatik.uni-hamburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Wunsch
- <email>joerg_wunsch@uriah.heep.sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>John Dyson</para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jordan K. Hubbard <email>jkh@whisker.hubbard.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Elischer <email>julian@dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Stacey <email>jhs@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email>
- <email>karl@one.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@toe.CS.Berkeley.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hughes</para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml%rokkaku.UUCP@mathcs.emory.edu</email>
- <email>kml@mosquito.cis.ufl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Konstantinos Konstantinidis <email>kkonstan@duth.gr</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email>
- <email>tinguely@hookie.cs.ndsu.NoDak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nate Williams <email>nate@bsd.coe.montana.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email>
- <email>nick@madhouse.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@cs.few.eur.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter da Silva <email>peter@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Poul-Henning Kamp<email>phk@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>root@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rodney W. Grimes <email>rgrimes@cdrom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sean Eric Fagan <email>sef@kithrup.com</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email>
- <email>sjg@zen.void.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@icarus.weber.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tor Egge <email>Tor.Egge@idi.ntnu.no</email></para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@dentaro.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
deleted file mode 100644
index ddd05c5b35..0000000000
--- a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ /dev/null
@@ -1,1576 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/cutting-edge/chapter.sgml,v 1.62 2001/04/12 07:34:04 nik Exp $
--->
-
-<chapter id="cutting-edge">
- <title>The Cutting Edge</title>
-
- <para><emphasis>Restructured, reorganized, and parts updated by &a.jim;
- March 2000. Original work by &a.jkh;, &a.phk;, &a.jdp;, and &a.nik;
- with feedback from various others.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>FreeBSD is under constant development between releases. For
- people who want to be on the cutting edge, there are several easy
- mechanisms for keeping your system in sync with the latest
- developments. Be warned&mdash;the cutting edge is not for everyone!
- This chapter will help you decide if you want to track the
- development system, or stick with one of the released
- versions.</para>
- </sect1>
-
- <sect1 id="current-stable">
- <title>-CURRENT vs. -STABLE</title>
-
- <para>There are two development branches to FreeBSD; -CURRENT and
- -STABLE. This section will explain a bit about each and describe
- how to keep your system up-to-date with each respective tree.
- -CURRENT will be discussed first, then -STABLE.</para>
-
- <sect2 id="current">
- <title>Staying Current with FreeBSD</title>
-
- <para>As you are reading this, keep in mind that -CURRENT is the
- <quote>bleeding edge</quote> of FreeBSD development and that if you
- are new to FreeBSD, you are most likely going to want to think
- twice about running it.</para>
-
- <sect3>
- <title>What is FreeBSD-CURRENT?</title>
-
- <para>FreeBSD-CURRENT is, quite literally, nothing more than a
- daily snapshot of the working sources for FreeBSD. These
- include work in progress, experimental changes and transitional
- mechanisms that may or may not be present in the next official
- release of the software. While many of us compile almost daily
- from FreeBSD-CURRENT sources, there are periods of time when the
- sources are literally un-compilable. These problems are
- generally resolved as expeditiously as possible, but whether or
- not FreeBSD-CURRENT sources bring disaster or greatly desired
- functionality can literally be a matter of which part of any
- given 24 hour period you grabbed them in!</para>
- </sect3>
-
- <sect3>
- <title>Who needs FreeBSD-CURRENT?</title>
-
- <para>FreeBSD-CURRENT is made generally available for 3 primary
- interest groups:</para>
-
- <orderedlist>
- <listitem>
- <para>Members of the FreeBSD group who are actively working on
- some part of the source tree and for whom keeping
- <quote>current</quote> is an absolute requirement.</para>
- </listitem>
-
- <listitem>
- <para>Members of the FreeBSD group who are active testers,
- willing to spend time working through problems in order to
- ensure that FreeBSD-CURRENT remains as sane as possible.
- These are also people who wish to make topical suggestions
- on changes and the general direction of FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>Peripheral members of the FreeBSD (or some other) group
- who merely wish to keep an eye on things and use the current
- sources for reference purposes (e.g. for
- <emphasis>reading</emphasis>, not running). These people
- also make the occasional comment or contribute code.</para>
- </listitem>
- </orderedlist>
- </sect3>
-
- <sect3>
- <title>What is FreeBSD-CURRENT <emphasis>not</emphasis>?</title>
-
- <orderedlist>
- <listitem>
- <para>A fast-track to getting pre-release bits because you
- heard there is some cool new feature in there and you want
- to be the first on your block to have it.</para>
- </listitem>
-
- <listitem>
- <para>A quick way of getting bug fixes.</para>
- </listitem>
-
- <listitem>
- <para>In any way <quote>officially supported</quote> by us.
- We do our best to help people genuinely in one of the 3
- <quote>legitimate</quote> FreeBSD-CURRENT categories, but we
- simply <emphasis>do not have the time</emphasis> to provide
- tech support for it. This is not because we are mean and
- nasty people who do not like helping people out (we would
- not even be doing FreeBSD if we were), it is literally
- because we cannot answer 400 messages a day
- <emphasis>and</emphasis> actually work on FreeBSD! Given the
- choice between improving FreeBSD and answering lots of
- questions, most developers, and users, would probably opt for
- the former.</para>
- </listitem>
- </orderedlist>
- </sect3>
-
- <sect3>
- <title>Using FreeBSD-CURRENT</title>
-
- <orderedlist>
- <listitem>
- <para>Join the &a.current; and the &a.cvsall; . This is not
- just a good idea, it is <emphasis>essential</emphasis>. If
- you are not on the <emphasis>FreeBSD-CURRENT</emphasis>
- mailing list, you will not see the comments that people are
- making about the current state of the system and thus will
- probably end up stumbling over a lot of problems that others
- have already found and solved. Even more importantly, you
- will miss out on important bulletins which may be critical
- to your system's continued health.</para>
-
- <para>The &a.cvsall; mailing list will allow you to see the
- commit log entry for each change as it is made along with
- any pertinent information on possible side-effects.</para>
-
- <para>To join these lists, send mail to &a.majordomo; and
- specify the following in the body of your message:</para>
-
- <programlisting>subscribe freebsd-current
-subscribe cvs-all</programlisting>
-
- <para>Optionally, you can also say <literal>help</literal>
- and Majordomo will send you full help on how to subscribe
- and unsubscribe to the various other mailing lists we
- support.</para>
- </listitem>
-
- <listitem>
- <para>Grab the sources from <hostid
- role="fqdn">ftp.FreeBSD.org</hostid>. You can do this in
- one of three ways:</para>
-
- <orderedlist>
- <listitem>
- <para>Use the <link linkend="cvsup">cvsup</link> program
- with <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/standard-supfile">this
- supfile</ulink>. This is the second most recommended
- method, since it allows you to grab the entire
- collection once and then only what has changed from then
- on. Many people run cvsup from cron and keep their
- sources up-to-date automatically. For a fairly easy
- interface to this, simply type:</para>
-
- <blockquote><screen>&prompt.root; <userinput>pkg_add -f \
-ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz</userinput></screen></blockquote>
- </listitem>
-
- <listitem>
- <para>Use <command>ftp</command>. The source tree for
- FreeBSD-CURRENT is always <quote>exported</quote> on:
- <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/</ulink>.
- We also use <command>wu-ftpd</command> which allows
- compressed/tarred grabbing of whole trees. e.g. you
- see:</para>
-
- <screen>usr.bin/lex</screen>
-
- <para>You can do the following to get the whole directory
- as a tar file:</para>
-
- <screen><prompt>ftp&gt;</prompt> <userinput>cd usr.bin</userinput>
-<prompt>ftp&gt;</prompt> <userinput>get lex.tar</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Use the <application><link
- linkend="ctm">CTM</link></application> facility. If you
- have very bad connectivity (high price connections or
- only e-mail access) <application>CTM</application> is an option.
- However, it is a lot of hassle and can give you broken files.
- This leads to it being rarely used, which again increases
- the chance of it not working for fairly long periods of
- time. We recommend using
- <application><link linkend="cvsup">CVSup</link></application>
- for anybody with a 9600bps modem or faster connection.
- </para>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>If you are grabbing the sources to run, and not just
- look at, then grab <emphasis>all</emphasis> of current, not
- just selected portions. The reason for this is that various
- parts of the source depend on updates elsewhere, and trying
- to compile just a subset is almost guaranteed to get you
- into trouble.</para>
-
- <para>Before compiling current, read the
- <filename>Makefile</filename>in <filename>/usr/src</filename>
- carefully. You should at least run a <link
- linkend="makeworld">make world</link> the first time through
- as part of the upgrading process. Reading the &a.current;
- will keep you up-to-date on other bootstrapping procedures
- that sometimes become necessary as we move towards the next
- release.</para>
- </listitem>
-
- <listitem>
- <para>Be active! If you are running FreeBSD-CURRENT, we want
- to know what you have to say about it, especially if you
- have suggestions for enhancements or bug fixes. Suggestions
- with accompanying code are received most
- enthusiastically!</para>
- </listitem>
- </orderedlist>
- </sect3>
- </sect2>
-
- <sect2 id="stable">
- <title>Staying Stable with FreeBSD</title>
-
- <para>If you are using FreeBSD in a production environment and want
- to make sure you have the latest fixes from the -CURRENT branch,
- you want to be running -STABLE. This is the tree that -RELEASEs
- are branched from when we are putting together a new release. For
- example, if you have a copy of 3.4-RELEASE, that is really just a
- <quote>snapshot</quote> from the -STABLE branch that we put on
- CDROM. In order to get any changes merged into -STABLE after the
- -RELEASE, you need to <quote>track</quote> the -STABLE
- branch.</para>
-
- <sect3>
- <title>What is FreeBSD-STABLE?</title>
-
- <para>FreeBSD-STABLE is our development branch for a more low-key
- and conservative set of changes intended for our next mainstream
- release. Changes of an experimental or untested nature do not
- go into this branch (see <link
- linkend="current">FreeBSD-CURRENT</link>).</para>
- </sect3>
-
- <sect3>
- <title>Who needs FreeBSD-STABLE?</title>
-
- <para>If you are a commercial user or someone who puts maximum
- stability of their FreeBSD system before all other concerns, you
- should consider tracking <emphasis>stable</emphasis>. This is
- especially true if you have installed the most recent release
- (<ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;-RELEASE</ulink>
- at the time of this writing) since the
- <emphasis>stable</emphasis> branch is effectively a bug-fix
- stream relative to the previous release.</para>
-
- <warning>
- <para>The <emphasis>stable</emphasis> tree endeavors, above all,
- to be fully compilable and stable at all times, but we do
- occasionally make mistakes (these are still active sources
- with quickly-transmitted updates, after all). We also do our
- best to thoroughly test fixes in <emphasis>current</emphasis>
- before bringing them into <emphasis>stable</emphasis>, but
- sometimes our tests fail to catch every case. If something
- breaks for you in <emphasis>stable</emphasis>, please let us
- know <emphasis>immediately!</emphasis> (see next
- section).</para>
- </warning>
- </sect3>
-
- <sect3>
- <title>Using FreeBSD-STABLE</title>
-
- <orderedlist>
- <listitem>
- <para>Join the &a.stable;. This will keep you informed of
- build-dependencies that may appear in
- <emphasis>stable</emphasis> or any other issues requiring
- special attention. Developers will also make announcements
- in this mailing list when they are contemplating some
- controversial fix or update, giving the users a chance to
- respond if they have any issues to raise concerning the
- proposed change.</para>
-
- <para>The &a.cvsall; mailing list will allow you to see the
- commit log entry for each change as it is made along with
- any pertinent information on possible side-effects.</para>
-
- <para>To join these lists, send mail to &a.majordomo; and
- specify the following in the body of your message:</para>
-
- <programlisting>subscribe freebsd-stable
-subscribe cvs-all</programlisting>
-
- <para>Optionally, you can also say <literal>help</literal>
- and Majordomo will send you full help on how to subscribe
- and unsubscribe to the various other mailing lists we
- support.</para>
- </listitem>
-
- <listitem>
- <para>If you are installing a new system and want it to be as
- stable as possible, you can simply grab the latest dated
- branch snapshot from <ulink
- url="ftp://releng4.FreeBSD.org/pub/FreeBSD/">ftp://releng4.FreeBSD.org/pub/FreeBSD/</ulink>
- and install it like any other release.</para>
-
- <para>If you are already running a previous release of FreeBSD
- and wish to upgrade via sources then you can easily do so
- from <hostid role="fqdn">ftp.FreeBSD.org</hostid>. This can
- be done in one of three ways:</para>
-
- <orderedlist>
- <listitem>
- <para>Use the <application><link
- linkend="ctm">CTM</link></application> facility. Unless
- you have a good TCP/IP connection at a flat rate, this
- is the way to do it.</para>
- </listitem>
-
- <listitem>
- <para>Use the <link linkend="cvsup">cvsup</link> program
- with <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/stable-supfile">this
- supfile</ulink>. This is the second most recommended
- method, since it allows you to grab the entire
- collection once and then only what has changed from then
- on. Many people run cvsup from cron to keep their
- sources up-to-date automatically. For a fairly easy
- interface to this, simply type:</para>
-
- <blockquote><screen>&prompt.root; <userinput>pkg_add -f \
-ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz</userinput></screen></blockquote>
- </listitem>
-
- <listitem>
- <para>Use <command>ftp</command>. The source tree for
- FreeBSD-STABLE is always <quote>exported</quote> on:
- <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/</ulink></para>
-
- <para>We also use <command>wu-ftpd</command> which allows
- compressed/tarred grabbing of whole trees. e.g. you
- see:</para>
-
- <screen>usr.bin/lex</screen>
-
- <para>You can do the following to get the whole directory
- for you as a tar file:</para>
-
- <screen><prompt>ftp&gt;</prompt> <userinput>cd usr.bin</userinput>
-<prompt>ftp&gt;</prompt> <userinput>get lex.tar</userinput></screen>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>Essentially, if you need rapid on-demand access to the
- source and communications bandwidth is not a consideration,
- use <command>cvsup</command> or <command>ftp</command>.
- Otherwise, use <application>CTM</application>.</para>
- </listitem>
-
- <listitem>
- <para>Before compiling stable, read the
- <filename>Makefile</filename> in <filename>/usr/src</filename>
- carefully. You should at least run a <link
- linkend="makeworld">make world</link> the first time through
- as part of the upgrading process. Reading the &a.stable; will
- keep you up-to-date on other bootstrapping procedures that
- sometimes become necessary as we move towards the next
- release.</para>
- </listitem>
- </orderedlist>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="synching">
- <title>Synchronizing Your Source</title>
-
- <para>There are various ways of using an Internet (or email)
- connection to stay up-to-date with any given area of the FreeBSD
- project sources, or all areas, depending on what interests you. The
- primary services we offer are <link linkend="anoncvs">Anonymous
- CVS</link>, <link linkend="cvsup">CVSup</link>, and <link
- linkend="ctm">CTM</link>.</para>
-
- <warning>
- <para>While it is possible to update only parts of your source tree,
- the only supported update procedure is to update the entire tree
- and recompile both userland (i.e., all the programs that run in
- user space, such as those in <filename>/bin</filename> and
- <filename>/sbin</filename>) and kernel sources. Updating only part
- of your source tree, only the kernel, or only userland will often
- result in problems. These problems may range from compile errors
- to kernel panics or data corruption.</para>
- </warning>
-
- <para><application>Anonymous CVS</application> and
- <application>CVSup</application> use the <emphasis>pull</emphasis>
- model of updating sources. In the case of
- <application>CVSup</application> the user (or a cron script) invokes
- the <command>cvsup</command> program, and it interacts with a
- <command>cvsupd</command> server somewhere to bring your files
- up-to-date. The updates you receive are up-to-the-minute and you
- get them when, and only when, you want them. You can easily
- restrict your updates to the specific files or directories that are
- of interest to you. Updates are generated on the fly by the server,
- according to what you have and what you want to have.
- <application>Anonymous CVS</application> is quite a bit more
- simplistic than CVSup in that it's just an extension to
- <application>CVS</application> which allows it to pull changes
- directly from a remote CVS repository.
- <application>CVSup</application> can do this far more efficiently,
- but <application>Anonymous CVS</application> is easier to
- use.</para>
-
- <para><application>CTM</application>, on the other hand, does not
- interactively compare the sources you have with those on the master
- archive or otherwise pull them across.. Instead, a script which
- identifies changes in files since its previous run is executed
- several times a day on the master CTM machine, any detected changes
- being compressed, stamped with a sequence-number and encoded for
- transmission over email (in printable ASCII only). Once received,
- these <quote>CTM deltas</quote> can then be handed to the
- &man.ctm.rmail.1; utility which will automatically decode, verify
- and apply the changes to the user's copy of the sources. This
- process is far more efficient than <application>CVSup</application>,
- and places less strain on our server resources since it is a
- <emphasis>push</emphasis> rather than a <emphasis>pull</emphasis>
- model.</para>
-
- <para>There are other trade-offs, of course. If you inadvertently
- wipe out portions of your archive, <application>CVSup</application>
- will detect and rebuild the damaged portions for you.
- <application>CTM</application> won't do this, and if you wipe some
- portion of your source tree out (and don't have it backed up) then
- you will have to start from scratch (from the most recent CVS
- <quote>base delta</quote>) and rebuild it all with CTM or, with
- anoncvs, simply delete the bad bits and resync.</para>
-
- <para>More information about <application>Anonymous CVS</application>,
- <application>CTM</application>, and
- <application>CVSup</application> is available further down in this
- section.</para>
- </sect1>
-
- <sect1 id="makeworld">
- <title>Using <command>make world</command></title>
-
- <para>Once you have synchronized your local source tree against a
- particular version of FreeBSD (<literal>stable</literal>,
- <literal>current</literal> and so on) you must then use the source
- tree to rebuild the system.</para>
-
- <warning>
- <title>Take a backup</title>
-
- <para>It cannot be stressed enough how important it is to take a
- backup of your system <emphasis>before</emphasis> you do this.
- While remaking the world is (as long as you follow these
- instructions) an easy task to do, there will inevitably be times
- when you make mistakes, or when mistakes made by others in the
- source tree render your system unbootable.</para>
-
- <para>Make sure you have taken a backup. And have a fix-it floppy to
- hand. You will probably never have to use it, but it is better to be
- safe than sorry!</para>
- </warning>
-
- <warning>
- <title>Subscribe to the right mailing list</title>
-
- <para>The -STABLE and -CURRENT FreeBSD code branches are, by their
- nature, <emphasis>in development</emphasis>. People that
- contribute to FreeBSD are human, and mistakes occasionally
- happen.</para>
-
- <para>Sometimes these mistakes can be quite harmless, just causing
- your system to print a new diagnostic warning. Or the change may
- be catastrophic, and render your system unbootable or destroy your
- filesystems (or worse).</para>
-
- <para>If problems like these occur, a <quote>heads up</quote> is
- posted to the appropriate mailing list, explaining the nature of
- the problem and which systems it affects. And an <quote>all
- clear</quote> announcement is posted when the problem has been
- solved.</para>
-
- <para>If you try and track -STABLE or -CURRENT and do not read the
- <email>stable@FreeBSD.org</email> or
- <email>current@FreeBSD.org</email> mailing lists then you are
- asking for trouble.</para>
- </warning>
-
- <sect2>
- <title>Read <filename>/usr/src/UPDATING</filename></title>
-
- <para>Before you do anything else, read
- <filename>/usr/src/UPDATING</filename> (or the equivalent file
- wherever you have a copy of the source code). This file should
- contain important information about problems you might encounter, or
- specify the order in which you might have to run certain commands.
- If <filename>UPDATING</filename> contradicts something you read here,
- <filename>UPDATING</filename> takes precedence.</para>
-
- <important>
- <para>Reading <filename>UPDATING</filename> is not an acceptable
- substitute for subscribing to the correct mailing list, as described
- previously. The two requirements are complementary, not
- exclusive.</para>
- </important>
- </sect2>
-
- <sect2>
- <title>Check <filename>/etc/make.conf</filename></title>
-
- <para>Examine the files
- <filename>/etc/defaults/make.conf</filename> and
- <filename>/etc/make.conf</filename>. The first contains some
- default defines &ndash; most of which are commented out. To
- make use of them when you rebuild your system from source, add
- them to <filename>/etc/make.conf</filename>. Keep in mind that
- anything you add to <filename>/etc/make.conf</filename> is also
- used every time you run <command>make</command>, so it is a good
- idea to set them to something sensible for your system.</para>
-
- <para>As a typical user (not a FreeBSD developer), you will
- probably want to copy the <makevar>CFLAGS</makevar> and
- <makevar>NOPROFILE</makevar> lines found in
- <filename>/etc/defaults/make.conf</filename> to
- <filename>/etc/make.conf</filename> and uncomment them.</para>
-
- <note>
- <title/Version 2.1.7 and below/
-
- <para>If your machine has a floating point unit (386DX, 486DX,
- Pentium and up class machines) then you can also uncomment the
- HAVE_FPU line.</para>
-
- <para>This definition was removed for version 2.2.2 and up of
- FreeBSD.</para>
- </note>
-
- <para>Examine the other definitions (COPTFLAGS, NOPORTDOCS and so
- on) and decide if they are relevant to you.</para>
- </sect2>
-
- <sect2>
- <title>Update <filename>/etc/group</filename></title>
-
- <para>The <filename>/etc</filename> directory contains a large part
- of your system's configuration information, as well as scripts
- that are run at system startup. Some of these scripts change from
- version to version of FreeBSD.</para>
-
- <para>Some of the configuration files are also used in the day to
- day running of the system. In particular,
- <filename>/etc/group</filename>.</para>
-
- <para>There have been occasions when the installation part of
- <quote>make world</quote> has expected certain usernames or groups
- to exist. When performing an upgrade it is likely that these
- groups did not exist. This caused problems when upgrading.</para>
-
- <para>The most recent example of this is when the <quote/ppp/ group
- (later renamed <quote/network/) was added. Users had the
- installation process fail for them when parts of the
- <filename>ppp</filename> subsystem were installed using a
- non-existent (for them) group name.</para>
-
- <para>The solution is to examine
- <filename>/usr/src/etc/group</filename> and compare its list of
- groups with your own. If they are any groups in the new file that
- are not in your file then copy them over. Similarly, you should
- rename any groups in <filename>/etc/group</filename> which have
- the same GID but a different name to those in
- <filename>/usr/src/etc/group</filename>.</para>
-
- <tip>
- <para>If you are feeling particularly paranoid, you can check your
- system to see which files are owned by the group you are
- renaming or deleting.</para>
-
- <screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen>
-
- <para>will show all files owned by group
- <replaceable>GID</replaceable> (which can be either a group name
- or a numeric group ID).</para>
- </tip>
- </sect2>
-
- <sect2 id="makeworld-singleuser">
- <title>Drop to single user mode</title>
-
- <para>You may want to compile the system in single user mode. Apart
- from the obvious benefit of making things go slightly faster,
- reinstalling the system will touch a lot of important system
- files, all the standard system binaries, libraries, include files
- and so on. Changing these on a running system (particularly if
- you have active users on their at the time) is asking for
- trouble.</para>
-
- <para>That said, if you are confident, you can omit this
- step.</para>
-
- <note>
- <title>Version 2.2.5 and above</title>
-
- <para>As described in more detail below, versions 2.2.5 and above
- of FreeBSD have separated the building process from the
- installing process. You can therefore
- <emphasis>build</emphasis> the new system in multi-user mode,
- and then drop to single user mode to do the installation.</para>
- </note>
-
- <para>As the superuser, you can execute</para>
-
- <screen>&prompt.root; <userinput/shutdown now/</screen>
-
- <para>from a running system, which will drop it to single user
- mode.</para>
-
- <para>Alternatively, reboot the system, and at the boot prompt,
- enter the <option>-s</option> flag. The system will then boot
- single user. At the shell prompt you should then run:</para>
-
- <screen>&prompt.root; <userinput>fsck -p</userinput>
-&prompt.root; <userinput>mount -u /</userinput>
-&prompt.root; <userinput>mount -a -t ufs</userinput>
-&prompt.root; <userinput>swapon -a</userinput></screen>
-
- <para>This checks the filesystems, remounts <filename>/</filename>
- read/write, mounts all the other UFS filesystems referenced in
- <filename>/etc/fstab</filename> and then turns swapping on.</para>
- </sect2>
-
- <sect2>
- <title>Remove <filename>/usr/obj</filename></title>
-
- <para>As parts of the system are rebuilt they are placed in
- directories which (by default) go under
- <filename>/usr/obj</filename>. The directories shadow those under
- <filename>/usr/src</filename>.</para>
-
- <para>You can speed up the <quote>make world</quote> process, and
- possibly save yourself some dependency headaches by removing this
- directory as well.</para>
-
- <para>Some files below <filename>/usr/obj</filename> may have the
- immutable flag set (see &man.chflags.1; for more information)
- which must be removed first.</para>
-
- <screen>&prompt.root; <userinput>cd /usr/obj</userinput>
-&prompt.root; <userinput>chflags -R noschg *</userinput>
-&prompt.root; <userinput>rm -rf *</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Recompile the source</title>
-
- <sect3>
- <title>All versions</title>
-
- <para>You must be in the <filename>/usr/src</filename>
- directory...</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
-
- <para>(unless, of course, your source code is elsewhere, in which
- case change to that directory instead).</para>
-
- <para>To rebuild the world you use the &man.make.1; command. This
- command reads instructions from the
- <filename>Makefile</filename> which describes how the programs
- that comprise FreeBSD should be rebuilt, the order they should
- be built in, and so on.</para>
-
- <para>The general format of the command line you will type is as
- follows:</para>
-
- <screen>&prompt.root; <userinput>make <option>-<replaceable/x/</option> <option>-D<replaceable>VARIABLE</replaceable></option> <replaceable>target</replaceable></userinput></screen>
-
- <para>In this example, <option>-<replaceable>x</replaceable></option>
- is an option that you would pass to &man.make.1;. See the
- &man.make.1; manual page for an example of the options you can
- pass.</para>
-
- <para><option>-D<replaceable>VARIABLE</replaceable></option>
- passes a variable to the <filename>Makefile</filename>. The
- behavior of the <filename>Makefile</filename> is controlled by
- these variables. These are the same variables as are set in
- <filename>/etc/make.conf</filename>, and this provides another
- way of setting them.</para>
-
- <screen>&prompt.root; <userinput>make -DNOPROFILE=true <replaceable>target</replaceable></userinput></screen>
-
- <para>is another way of specifying that profiled libraries should
- not be built, and corresponds with the</para>
-
- <programlisting>NOPROFILE= true
-# Avoid compiling profiled libraries</programlisting>
-
- <para>lines in <filename>/etc/make.conf</filename>.</para>
-
- <para><replaceable>target</replaceable> tells &man.make.1; what
- you want to do. Each <filename>Makefile</filename> defines a
- number of different <quote>targets</quote>, and your choice of
- target determines what happens.</para>
-
- <para>Some targets are listed in the
- <filename>Makefile</filename>, but are not meant for you to run.
- Instead, they are used by the build process to break out the
- steps necessary to rebuild the system into a number of
- sub-steps.</para>
-
- <para>Most of the time you won't need to pass any parameters to
- &man.make.1;, and so your command like will look like
- this:</para>
-
- <screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen>
- </sect3>
-
- <sect3>
- <title>Saving the output</title>
-
- <para>It's a good idea to save the output you get from running
- &man.make.1; to another file. If something goes wrong you will
- have a copy of the error message, and a complete list of where
- the process had got to. While this might not help you in
- diagnosing what has gone wrong, it can help others if you post
- your problem to one of the FreeBSD mailing lists.</para>
-
- <para>The easiest way to do this is to use the &man.script.1;
- command, with a parameter that specifies the name of the file to
- save all output to. You would do this immediately before
- remaking the world, and then type <userinput>exit</userinput>
- when the process has finished.</para>
-
- <screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
-Script started, output file is /var/tmp/mw.out
-&prompt.root; <userinput>make world</userinput>
-<emphasis>&hellip; compile, compile, compile &hellip;</emphasis>
-&prompt.root; <userinput>exit</userinput>
-Script done, &hellip;</screen>
-
- <para>If you do this, <emphasis>do not</emphasis> save the output
- in <filename>/tmp</filename>. This directory may be cleared
- next time you reboot. A better place to store it is in
- <filename>/var/tmp</filename> (as in the previous example) or
- in <username>root</username>'s home directory.</para>
- </sect3>
-
- <sect3>
- <title>Version 2.2.2 and below</title>
-
- <para><filename>/usr/src/Makefile</filename> contains the
- <maketarget>world</maketarget> target, which will rebuild the
- entire system and then install it.</para>
-
- <para>Use it like this:</para>
-
- <screen>&prompt.root; <userinput>make world</userinput></screen>
-
- <para>This will also install the new system binaries.</para>
- </sect3>
-
- <sect3>
- <title>Version 2.2.5 and above</title>
-
- <para>Beginning with version 2.2.5 of FreeBSD (actually, it was
- first created on the -CURRENT branch, and then retrofitted to
- -STABLE midway between 2.2.2 and 2.2.5) the
- <maketarget>world</maketarget> target has been split in
- two. <maketarget>buildworld</maketarget> and
- <maketarget>installworld</maketarget>.</para>
-
- <para>As the names imply, <maketarget>buildworld</maketarget>
- builds a complete new tree under <filename>/usr/obj</filename>,
- and <maketarget>installworld</maketarget> installs this tree on
- the current machine.</para>
-
- <para>This is very useful for 2 reasons. First, it allows you
- to do the build safe in the knowledge that no components of
- your running system will be affected. The build is
- <quote>self hosted</quote>. Because of this, you can safely
- run <maketarget>buildworld</maketarget> on a machine running
- in multi-user mode with no fear of ill-effects. It is still
- recommended that you run the
- <maketarget>installworld</maketarget> part in single user
- mode, though.</para>
-
- <para>Secondly, it allows you to use NFS mounts to upgrade
- multiple machines on your network. If you have three machines,
- A, B and C that you want to upgrade, run <command>make
- buildworld</command> and <command>make installworld</command> on
- A. B and C should then NFS mount <filename>/usr/src</filename>
- and <filename>/usr/obj</filename> from A, and you can then run
- <command>make installworld</command> to install the results of
- the build on B and C.</para>
-
- <para>Although the <maketarget>world</maketarget> target still exists,
- you are strongly encouraged not to use it.</para>
-
- <para>Run</para>
-
- <screen>&prompt.root; <userinput>make buildworld</userinput></screen>
- </sect3>
-
- <sect3>
- <title>-CURRENT and above</title>
-
- <para>If you are tracking -CURRENT you can also pass the
- <option>-j</option> option to <command>make</command>. This lets
- <command>make</command> spawn several simultaneous processes.</para>
-
- <para>This is most useful on true multi-CPU machines. However, since
- much of the compiling process is IO bound rather than CPU bound it is
- also useful on single CPU machines.</para>
-
- <para>On a typical single-CPU machine you would run:</para>
-
- <screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen>
-
- <para>&man.make.1; will then have up to 4 processes running at any one
- time. Empirical evidence posted to the mailing lists shows this
- generally gives the best performance benefit.</para>
-
- <para>If you have a multi-CPU machine and you are using an SMP
- configured kernel try values between 6 and 10 and see how they speed
- things up.</para>
-
- <para>Be aware that (at the time of writing) this is still
- experimental, and commits to the source tree may occasionally break
- this feature. If the world fails to compile using this parameter
- try again without it before you report any problems.</para>
- </sect3>
-
- <sect3>
- <title>Timings</title>
-
- <para>As a general rule of thumb, a 200MHz P6 with more than 32MB of
- RAM and reasonable SCSI disks will complete <command>make
- world</command> in about an hour and a half. A 32MB P133 will
- take 5 or 6 hours. Revise these figures down if your machines are
- slower&hellip;</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Compile and install a new kernel</title>
-
- <para>To take full advantage of your new system you should recompile the
- kernel. This is practically a necessity, as certain memory structures
- may have changed, and programs like &man.ps.1; and &man.top.1; will
- fail to work until the kernel and source code versions are the
- same.</para>
-
- <para>The simplest, safest way to do this is to build and install a
- kernel based on <filename>GENERIC</filename>. While
- <filename>GENERIC</filename> may not have all the necessary devices
- for your system, it should contain everything necessary to boot your
- system back to single user mode. This is a good test that the new
- system works properly. After booting from
- <filename>GENERIC</filename> and verifying that your system works you
- can then build a new kernel based on your normal kernel config
- file.</para>
-
- <para>If you are upgrading to FreeBSD 4.0 or above then the standard
- kernel build procedure (as described in <xref linkend="kernelconfig">)
- is deprecated. Instead, you should run these commands.</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make buildkernel</userinput>
-&prompt.root; <userinput>make installkernel</userinput></screen>
-
- <para>If you are upgrading to a version of FreeBSD below 4.0 you should
- use the standard kernel build procedure. However, it is recommended
- that you use the new version of &man.config.8;, using a command line
- like this.</para>
-
- <screen>&prompt.root; <userinput>/usr/obj/usr/src/usr.sbin/config/config <replaceable>KERNELNAME</replaceable></userinput></screen>
- </sect2>
-
- <sect2>
- <title>Reboot in to single user mode</title>
-
- <para>You should reboot in to single user mode to test the new kernel
- works. Do this by following the instructions in
- <xref linkend="makeworld-singleuser">.</para>
- </sect2>
-
- <sect2>
- <title>Install the new system binaries</title>
-
- <para>If you were building a version of FreeBSD recent enough to have
- used <command>make buildworld</command> then you should now use the
- <maketarget>installworld</maketarget> to install the new system
- binaries.</para>
-
- <para>Run</para>
-
- <screen>&prompt.root; <userinput>make installworld</userinput></screen>
-
- <note>
- <para>If you specified variables on the <command>make
- buildworld</command> command line, you must specify the same
- variables in the <command>make installworld</command> command
- line.</para>
-
- <para>For example, if you ran:</para>
-
- <screen>&prompt.root; <userinput>make -DNOPROFILE=true buildworld</userinput></screen>
-
- <para>you must install the results with:</para>
-
- <screen>&prompt.root; <userinput>make -DNOPROFILE=true installworld</userinput></screen>
-
- <para>otherwise it would try and install profiled libraries that
- had not been built during the <command>make buildworld</command>
- phase.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Update files not updated by <command>make world</command></title>
-
- <para>Remaking the world will not update certain directories (in
- particular, <filename>/etc</filename>, <filename>/var</filename> and
- <filename>/usr</filename>) with new or changed configuration files.</para>
-
- <para>The simplest way to update these files is to use
- &man.mergemaster.8;, though it is possible to do it manually
- if you would prefer to do that. We strongly recommend you
- use &man.mergemaster.8;, however, and if you do then you
- can skip forward to the <link linkend="update-dev">next
- section</link>, since &man.mergemaster.8; is very simple to use.
- You should read the manual page first, and make a backup of
- <filename>/etc</filename> in case anything goes wrong.</para>
-
- <para>If you wish to do the update manually,
- you cannot just copy over the files from
- <filename>/usr/src/etc</filename> to <filename>/etc</filename> and
- have it work. Some of these files must be <quote>installed</quote>
- first. This is because the <filename>/usr/src/etc</filename>
- directory <emphasis>is not</emphasis> a copy of what your
- <filename>/etc</filename> directory should look like. In addition,
- there are files that should be in <filename>/etc</filename> that are
- not in <filename>/usr/src/etc</filename>.</para>
-
- <para>The simplest way to do this by hand is to install the files into a new
- directory, and then work through them looking for differences.</para>
-
- <warning>
- <title>Backup your existing <filename>/etc</filename></title>
-
- <para>Although, in theory, nothing is going to touch this directory
- automatically, it is always better to be sure. So copy your
- existing <filename>/etc</filename> directory somewhere safe.
- Something like:</para>
-
- <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen>
-
- <para><option>-R</option> does a recursive copy, <option>-p</option>
- preserves times, ownerships on files and suchlike.</para>
- </warning>
-
- <para>You need to build a dummy set of directories to install the new
- <filename>/etc</filename> and other files into.
- <filename>/var/tmp/root</filename> is a reasonable choice, and
- there are a number of subdirectories required under this as
- well.</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput>
-&prompt.root; <userinput>cd /usr/src/etc</userinput>
-&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen>
-
- <para>This will build the necessary directory structure and install the
- files. A lot of the subdirectories that have been created under
- <filename>/var/tmp/root</filename> are empty and should be deleted.
- The simplest way to do this is to:</para>
-
- <screen>&prompt.root; <userinput>cd /var/tmp/root</userinput>
-&prompt.root; <userinput>find -d . -type d | xargs rmdir 2&gt;/dev/null</userinput></screen>
-
- <para>This will remove all empty directories. (Standard error is
- redirected to <filename>/dev/null</filename> to prevent the warnings
- about the directories that are not empty.)</para>
-
- <para><filename>/var/tmp/root</filename> now contains all the files that
- should be placed in appropriate locations below
- <filename>/</filename>. You now have to go through each of these
- files, determining how they differ with your existing files.</para>
-
- <para>Note that some of the files that will have been installed in
- <filename>/var/tmp/root</filename> have a leading <quote/./. At the
- time of writing the only files like this are shell startup files in
- <filename>/var/tmp/root/</filename> and
- <filename>/var/tmp/root/root/</filename>, although there may be others
- (depending on when you are reading this. Make sure you use
- <command/ls -a/ to catch them.</para>
-
- <para>The simplest way to do this is to use &man.diff.1; to compare the
- two files.</para>
-
- <screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
-
- <para>This will show you the differences between your
- <filename>/etc/shells</filename> file and the new
- <filename>/etc/shells</filename> file. Use these to decide whether to
- merge in changes that you have made or whether to copy over your old
- file.</para>
-
- <tip>
- <title>Name the new root directory
- (<filename>/var/tmp/root</filename>)with a time stamp, so you can
- easily compare differences between versions</title>
-
- <para>Frequently remaking the world means that you have to update
- <filename>/etc</filename> frequently as well, which can be a bit of
- a chore.</para>
-
- <para>You can speed this process up by keeping a copy of the last set
- of changed files that you merged into <filename>/etc</filename>.
- The following procedure gives one idea of how to do this.</para>
-
- <procedure>
- <step>
- <para>Make the world as normal. When you want to update
- <filename>/etc</filename> and the other directories, give the
- target directory a name based on the current date. If you were
- doing this on the 14th of February 1998 you could do the
- following.</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput>
-&prompt.root; <userinput>cd /usr/src/etc</userinput>
-&prompt.root; <userinput>make DESTDIR=/var/tmp/root-19980214 \
- distrib-dirs distribution</userinput></screen>
- </step>
-
- <step>
- <para>Merge in the changes from this directory as outlined
- above.</para>
-
- <para><emphasis>Do not</emphasis> remove the
- <filename>/var/tmp/root-19980214</filename> directory when you
- have finished.</para>
- </step>
-
- <step>
- <para>When you have downloaded the latest version of the source
- and remade it, follow step 1. This will give you a new
- directory, which might be called
- <filename>/var/tmp/root-19980221</filename> (if you wait a week
- between doing updates).</para>
- </step>
-
- <step>
- <para>You can now see the differences that have been made in the
- intervening week using &man.diff.1; to create a recursive diff
- between the two directories.</para>
-
- <screen>&prompt.root; <userinput>cd /var/tmp</userinput>
-&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen>
-
- <para>Typically, this will be a much smaller set of differences
- than those between
- <filename>/var/tmp/root-19980221/etc</filename> and
- <filename>/etc</filename>. Because the set of differences is
- smaller, it is easier to migrate those changes across into your
- <filename>/etc</filename> directory.</para>
- </step>
-
- <step>
- <para>You can now remove the older of the two
- <filename>/var/tmp/root-*</filename> directories.</para>
-
- <screen>&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput></screen>
- </step>
-
- <step>
- <para>Repeat this process every time you need to merge in changes
- to <filename>/etc</filename>.</para>
- </step>
- </procedure>
-
- <para>You can use &man.date.1; to automate the generation of the
- directory names.</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput></screen>
- </tip>
- </sect2>
-
- <sect2 id="update-dev">
- <title>Update <filename>/dev</filename></title>
-
- <note>
- <title>DEVFS</title>
-
- <para>If you are using DEVFS then this is probably unnecessary.</para>
- </note>
-
- <para>For safety's sake, this is a multi-step process.</para>
-
- <procedure>
- <step>
- <para>Copy <filename>/var/tmp/root/dev/MAKEDEV</filename> to
- <filename>/dev</filename>.</para>
-
- <screen>&prompt.root; <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen>
-
- <para>If you used &man.mergemaster.8; to
- update <filename>/etc</filename>, then your
- <filename>MAKEDEV</filename> script should have been updated
- already, though it can't hurt to check (with &man.diff.1;)
- and copy it manually if necessary.</para>
- </step>
-
- <step>
- <para>Now, take a snapshot of your current
- <filename>/dev</filename>. This snapshot needs to contain the
- permissions, ownerships, major and minor numbers of each filename,
- but it should not contain the time stamps. The easiest way to do
- this is to use &man.awk.1; to strip out some of the
- information.</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen>
- </step>
-
- <step>
- <para>Remake all the devices.</para>
-
- <screen>&prompt.root; <userinput/sh MAKEDEV all/</screen>
- </step>
-
- <step>
- <para>Write another snapshot of the directory, this time to
- <filename>/var/tmp/dev2.out</filename>. Now look through these
- two files for any devices that you missed creating. There should
- not be any, but it is better to be safe than sorry.</para>
-
- <screen>&prompt.root; <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen>
-
- <para>You are most likely to notice disk slice discrepancies which
- will involve commands such as
-
- <screen>&prompt.root; <userinput>sh MAKEDEV sd0s1</userinput></screen>
-
- to recreate the slice entries. Your precise circumstances may
- vary.</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Update <filename>/stand</filename></title>
-
- <note>
- <para>This step is included only for completeness. It can safely be
- omitted.</para>
- </note>
-
- <para>For the sake of completeness, you may want to update the files in
- <filename>/stand</filename> as well. These files consist of hard
- links to the <filename>/stand/sysinstall</filename> binary. This
- binary should be statically linked, so that it can work when no other
- filesystems (and in particular <filename>/usr</filename>) have been
- mounted.</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput>
-&prompt.root; <userinput>make all install</userinput></screen>
-
- <note>
- <title>Source older than 2 April 1998</title>
-
- <para>If your source code is older than 2nd April 1998, or the
- <filename>Makefile</filename> version is not 1.68 or higher (for
- FreeBSD current and 3.X systems) or 1.48.2.21 or higher (for 2.2.X
- systems) you will need to add the
- <userinput>NOSHARED=yes</userinput> option, like so;</para>
-
- <screen>&prompt.root; <userinput>make NOSHARED=yes all install</userinput></screen>
- </note>
- </sect2>
-
- <sect2>
- <title/Rebooting/
-
- <para>You are now done. After you have verified that everything appears
- to be in the right place you can reboot the system. A simple
- &man.fastboot.8; should do it.</para>
-
- <screen>&prompt.root; <userinput>fastboot</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Finished</title>
-
- <para>You should now have successfully upgraded your FreeBSD system.
- Congratulations.</para>
-
- <para>You may notice small problems due to things that you have
- missed. For example, if you accidently deleted
- <filename>/etc/magic</filename> as part of the upgrade or merge of
- <filename>/etc</filename>, the &man.file.1; command will stop
- working. In this case, the fix would be to run:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
-&prompt.root; <userinput/make all install/</screen>
- </sect2>
-
- <sect2>
- <title/Questions?/
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Do I need to re-make the world for every change?</para>
- </question>
-
- <answer>
- <para>There is no easy answer to this one, as it depends on the
- nature of the change. For example, if you just ran CVSup, and
- it has shown the following files as being updated,</para>
-
- <screen><filename>src/games/cribbage/instr.c</filename>
-<filename>src/games/sail/pl_main.c</filename>
-<filename>src/release/sysinstall/config.c</filename>
-<filename>src/release/sysinstall/media.c</filename>
-<filename>src/share/mk/bsd.port.mk</filename></screen>
-
- <para>it probably is not worth rebuilding the entire world.
- You could just go to the appropriate sub-directories and
- <command>make all install</command>, and that's about it. But
- if something major changed, for example
- <filename>src/lib/libc/stdlib</filename> then you should either
- re-make the world, or at least those parts of it that are
- statically linked (as well as anything else you might have added
- that is statically linked).</para>
-
- <para>At the end of the day, it is your call. You might be happy
- re-making the world every fortnight say, and let changes
- accumulate over that fortnight. Or you might want to re-make
- just those things that have changed, and are confident you can
- spot all the dependencies.</para>
-
- <para>And, of course, this all depends on how often you want to
- upgrade, and whether you are tracking -STABLE or
- -CURRENT.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>My compile failed with lots of signal 11 (or other signal
- number) errors. What has happened?</para>
- </question>
-
- <answer>
- <para>This is normally indicative of hardware problems.
- (Re)making the world is an effective way to stress test your
- hardware, and will frequently throw up memory problems. These
- normally manifest themselves as the compiler mysteriously dying
- on receipt of strange signals.</para>
-
- <para>A sure indicator of this is if you can restart the make and
- it dies at a different point in the process.</para>
-
- <para>In this instance there is little you can do except start
- swapping around the components in your machine to determine
- which one is failing.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I remove <filename>/usr/obj</filename> when I have
- finished?</para>
- </question>
-
- <answer>
- <para>That depends on how you want to make the world on future
- occasions.</para>
-
- <para><filename>/usr/obj</filename> contains all the object files
- that were produced during the compilation phase. Normally, one
- of the first steps in the <quote/make world/ process is to
- remove this directory and start afresh. In this case, keeping
- <filename>/usr/obj</filename> around after you have finished
- makes little sense, and will free up a large chunk of disk space
- (currently about 150MB).</para>
-
- <para>However, if you know what you are doing you can have
- <quote/make world/ skip this step. This will make subsequent
- builds run much faster, since most of sources will not need to
- be recompiled. The flip side of this is that subtle dependency
- problems can creep in, causing your build to fail in odd ways.
- This frequently generates noise on the FreeBSD mailing lists,
- when one person complains that their build has failed, not
- realising that it is because they have tried to cut
- corners.</para>
-
- <para>If you want to live dangerously then make the world, passing
- the <makevar>NOCLEAN</makevar> definition to make, like
- this:</para>
-
- <screen>&prompt.root; <userinput>make -DNOCLEAN world</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can interrupted builds be resumed?</para>
- </question>
-
- <answer>
- <para>This depends on how far through the process you got before
- you found a problem.</para>
-
- <para><emphasis>In general</emphasis> (and this is not a hard and
- fast rule) the <quote>make world</quote> process builds new
- copies of essential tools (such as &man.gcc.1;, and
- &man.make.1;>) and the system libraries. These tools and
- libraries are then installed. The new tools and libraries are
- then used to rebuild themselves, and are installed again. The
- entire system (now including regular user programs, such as
- &man.ls.1; or &man.grep.1;) is then rebuilt with the new
- system files.</para>
-
- <para>If you are at the last state, and you know it (because you
- have looked through the output that you were storing) then you
- can (fairly safely) do</para>
-
- <screen><emphasis>&hellip; fix the problem &hellip;</emphasis>
-&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make -DNOCLEAN all</userinput></screen>
-
- <para>This will not undo the work of the previous
- <quote>make world</quote>.</para>
-
- <para>If you see the message
-
- <screen>--------------------------------------------------------------
-Building everything..
---------------------------------------------------------------</screen>
-
- in the <quote>make world</quote> output then it is
- probably fairly safe to do so.</para>
-
- <para>If you do not see that message, or you are not sure, then it
- is always better to be safe than sorry, and restart the build
- from scratch.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I use one machine as a <emphasis/master/ to upgrade lots
- of machines (NFS)?</para>
- </question>
-
- <answer>
- <para>People often ask on the FreeBSD mailing lists whether they
- can do all the compiling on one machine, and then use the
- results of that compile to <command>make install</command> on to
- other machines around the network.</para>
-
- <para>
- <warning>
- <para>The following suggestions are not well tested or
- officially supported; they were derived either from
- posts on a mailing list or from the Makefiles. Use
- them at your own risk.</para>
- </warning>
- </para>
-
- <para>The precise approach to take depends on your version of
- FreeBSD.</para>
-
- <para>You must still upgrade <filename>/etc</filename> and
- <filename>/dev</filename> on the target machines after doing
- this.</para>
-
- <para>For 2.1.7 and below, Antonio Bemfica
- suggested the following approach:</para>
-
- <screen>Date: Thu, 20 Feb 1997 14:05:01 -0400 (AST)
-From: Antonio Bemfica &lt;bemfica@militzer.me.tuns.ca&gt;
-To: freebsd-questions@FreeBSD.org
-Message-ID: &lt;Pine.BSI.3.94.970220135725.245C-100000@militzer.me.tuns.ca&gt;
-
-Josef Karthauser asked:
-
-&gt; Has anybody got a good method for upgrading machines on a network
-
-First make world, etc. on your main machine
-Second, mount / and /usr from the remote machine:
-
-main_machine% mount remote_machine:/ /mnt
-main_machine% mount remote_machine:/usr /mnt/usr
-
-Third, do a 'make install' with /mnt as the destination:
-
-main_machine% make install DESTDIR=/mnt
-
-Repeat for every other remote machine on your network. It works fine
-for me.
-
-Antonio</screen>
-
- <para>This mechanism will only work (to the best of my knowledge)
- if you can write to <filename>/usr/src</filename> on the NFS
- server, as the <maketarget>install</maketarget> target in 2.1.7
- and below needed to do this.</para>
-
- <para>Midway between 2.1.7 and 2.2.0 the <quote>reinstall</quote>
- target was committed. You can use the approach exactly as
- outlined above for 2.1.7, but use <quote>reinstall</quote>
- instead of <quote>install</quote>.</para>
-
- <para>This approach <emphasis>does not</emphasis> require write
- access to the <filename>/usr/src</filename> directory on the NFS
- server.</para>
-
- <para>There was a bug introduced in this target between versions
- 1.68 and 1.107 of the Makefile, which meant that write access to
- the NFS server <emphasis>was</emphasis> required. This bug was
- fixed before version 2.2.0 of FreeBSD was released, but may be an
- issue of you have an old server still running -STABLE from this
- era.</para>
-
- <para>For version 2.2.5 and above, you can use the
- <quote>buildworld</quote> and <quote>installworld</quote>
- targets. Use them to build a source tree on one machine, and
- then NFS mount <filename>/usr/src</filename> and
- <filename>/usr/obj</filename> on the remote machine and install
- it there.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How can I speed up making the world?</para>
-
- <itemizedlist>
- <listitem>
- <para>Run in single user mode.</para>
- </listitem>
-
- <listitem>
- <para>Put the <filename>/usr/src</filename> and
- <filename>/usr/obj</filename> directories on separate
- filesystems held on separate disks. If possible, put these
- disks on separate disk controllers.</para>
- </listitem>
-
- <listitem>
- <para>Better still, put these filesystems across separate
- disks using the <quote>ccd</quote> (concatenated disk
- driver) device.</para>
- </listitem>
-
- <listitem>
- <para>Turn off profiling (set <quote>NOPROFILE=true</quote> in
- <filename>/etc/make.conf</filename>). You almost certainly
- do not need it.</para>
- </listitem>
-
- <listitem>
- <para>Also in <filename>/etc/make.conf</filename>, set
- <quote>CFLAGS</quote> to something like <quote>-O
- -pipe</quote>. The optimization <quote>-O2</quote> is much
- slower, and the optimization difference between
- <quote>-O</quote> and <quote>-O2</quote> is normally
- negligible. <quote>-pipe</quote> lets the compiler use
- pipes rather than temporary files for communication, which
- saves disk access (at the expense of memory).</para>
- </listitem>
-
- <listitem>
- <para>Pass the <option>-j&lt;n&gt;</option> option to make (if
- you are running a sufficiently recent version of FreeBSD) to
- run multiple processes in parallel. This helps regardless
- of whether you have a single or a multi processor
- machine.</para>
- </listitem>
-
- <listitem><para>The filesystem holding
- <filename>/usr/src</filename> can be mounted (or remounted)
- with the <quote>noatime</quote> option. This stops the time
- files in the filesystem were last accessed from being
- written to the disk. You probably do not need this
- information anyway.
-
- <note>
- <para><quote>noatime</quote> is in version 2.2.0 and
- above.</para>
- </note>
-
- <screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
-
- <warning>
- <para>The example assumes <filename>/usr/src</filename> is
- on its own filesystem. If it is not (if it is a part of
- <filename>/usr</filename> for example) then you will
- need to use that filesystem mount point, and not
- <filename>/usr/src</filename>.</para>
- </warning>
- </para>
- </listitem>
-
- <listitem>
- <para>The filesystem holding <filename>/usr/obj</filename> can
- be mounted (or remounted) with the <quote>async</quote>
- option. This causes disk writes to happen asynchronously.
- In other words, the write completes immediately, and the
- data is written to the disk a few seconds later. This
- allows writes to be clustered together, and can be a
- dramatic performance boost.</para>
-
- <warning>
- <para>Keep in mind that this option makes your filesystem
- more fragile. With this option there is an increased
- chance that, should power fail, the filesystem will be in
- an unrecoverable state when the machine restarts.</para>
-
- <para>If <filename>/usr/obj</filename> is the only thing on
- this filesystem then it is not a problem. If you have
- other, valuable data on the same filesystem then ensure
- your backups are fresh before you enable this
- option.</para>
- </warning>
-
- <screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen>
-
- <warning>
- <para>As above, if <filename>/usr/obj</filename> is not on
- its own filesystem, replace it in the example with the
- name of the appropriate mount point.</para>
- </warning>
- </listitem>
- </itemizedlist>
- </question>
- </qandaentry>
- </qandaset>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/disks/chapter.sgml b/en_US.ISO8859-1/books/handbook/disks/chapter.sgml
deleted file mode 100644
index 41d745a7ed..0000000000
--- a/en_US.ISO8859-1/books/handbook/disks/chapter.sgml
+++ /dev/null
@@ -1,892 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/disks/chapter.sgml,v 1.25 2000/12/15 21:52:35 jim Exp $
--->
-
-<chapter id="disks">
- <title>Disks</title>
-
- <sect1 id="disks-synopsis">
- <title>Synopsis</title>
-
- <para>This chapter covers how to use disks, whether physical,
- memory, or networked, on FreeBSD.</para>
- </sect1>
-
- <sect1 id="disks-bios-numbering">
- <title>BIOS Drive Numbering</title>
-
- <para>Before you install and configure FreeBSD on your system, there is an
- important subject that you should be aware of if, especially if you have
- multiple hard drives.</para>
-
- <para>In a PC running DOS or any of the BIOS-dependent operating systems
- (WINxxx), the BIOS is able to abstract the normal disk drive order, and
- the operating system goes along with the change. This allows the user
- to boot from a disk drive other than the so-called <quote>primary
- master</quote>. This is especially convenient for some users who have
- found that the simplest and cheapest way to keep a system backup is to
- buy an identical second hard drive, and perform routine copies of the
- first drive to the second drive using Ghost or XCOPY. Then, if the
- first drive fails, or is attacked by a virus, or is scribbled upon by an
- operating system defect, he can easily recover by instructing the BIOS
- to logically swap the drives. It's like switching the cables on the
- drives, but without having to open the case.</para>
-
- <para>More expensive systems with SCSI controllers often include BIOS
- extensions which allow the SCSI drives to be re-ordered in a similar
- fashion for up to seven drives.</para>
-
- <para>A user who is accustomed to taking advantage of these features may
- become surprised when the results with FreeBSD are not as expected.
- FreeBSD does not use the BIOS, and does not know the <quote>logical BIOS
- drive mapping</quote>. This can lead to very perplexing situations,
- especially when drives are physically identical in geometry, and have
- also been made as data clones of one another.</para>
-
- <para>When using FreeBSD, always restore the BIOS to natural drive
- numbering before installing FreeBSD, and then leave it that way. If you
- need to switch drives around, then do so, but do it the hard way, and
- open the case and move the jumpers and cables.</para>
-
- <sidebar>
- <title>An illustration from the files of Bill and Fred's Exceptional
- Adventures:</title>
-
- <para>Bill breaks-down an older Wintel box to make another FreeBSD box
- for Fred. Bill installs a single SCSI drive as SCSI unit zero, and
- installs FreeBSD on it.</para>
-
- <para>Fred begins using the system, but after several days notices that
- the older SCSI drive is reporting numerous soft errors, and reports
- this fact to Bill.</para>
-
- <para>After several more days, Bill decides it's time to address the
- situation, so he grabs an identical SCSI drive from the disk drive
- "archive" in the back room. An initial surface scan indicates that
- this drive is functioning well, so Bill installs this drive as SCSI
- unit four, and makes an image copy from drive zero to drive four. Now
- that the new drive is installed and functioning nicely, Bill decides
- that it's a good idea to start using it, so he uses features in the
- SCSI BIOS to re-order the disk drives so that the system boots from
- SCSI unit four. FreeBSD boots and runs just fine.</para>
-
- <para>Fred continues his work for several days, and soon Bill and Fred
- decide that it's time for a new adventure -- time to upgrade to a
- newer version of FreeBSD. Bill removes SCSI unit zero because it was
- a bit flaky, and replaces it with another identical disk drive from
- the "archive." Bill then installs the new version of FreeBSD onto the
- new SCSI unit zero using Fred's magic internet FTP floppies. The
- installation goes well.</para>
-
- <para>Fred uses the new version of FreeBSD for a few days, and certifies
- that it is good enough for use in the engineering department...it's
- time to copy all of his work from the old version. So Fred mounts
- SCSI unit four (the latest copy of the older FreeBSD version). Fred
- is dismayed to find that none of his precious work is present on SCSI
- unit four.</para>
-
- <para>Where did the data go?</para>
-
- <para>When Bill made an image copy of the original SCSI unit zero onto
- SCSI unit four, unit four became the "new clone," When Bill
- re-ordered the SCSI BIOS so that he could boot from SCSI unit four, he
- was only fooling himself. FreeBSD was still running on SCSI unit zero.
- Making this kind of BIOS change will cause some or all of the Boot and
- Loader code to be fetched from the selected BIOS drive, but when the
- FreeBSD kernel drivers take-over, the BIOS drive numbering will be
- ignored, and FreeBSD will transition back to normal drive numbering.
- In the illustration at hand, the system continued to operate on the
- original SCSI unit zero, and all of Fred's data was there, not on SCSI
- unit four. The fact that the system appeared to be running on SCSI
- unit four was simply an artifact of human expectations.</para>
-
- <para>We are delighted to mention that no data bytes were killed or
- harmed in any way by our discovery of this phenomenon. The older SCSI
- unit zero was retrieved from the bone pile, and all of Fred's work was
- returned to him, (and now Bill knows that he can count as high as
- zero).</para>
-
- <para>Although SCSI drives were used in this illustration, the concepts
- apply equally to IDE drives.</para>
- </sidebar>
- </sect1>
-
- <sect1 id="disks-naming">
- <title>Disk Naming</title>
-
- <para>Physical drives come in two main flavors,
- <acronym>IDE</acronym>, or <acronym>SCSI</acronym>; but there
- are also drives backed by RAID controllers, flash memory, and so
- forth. Since these behave quite differently, they have their
- own drivers and devices.</para>
-
- <table id="disk-naming-physical-table">
- <title>Physical Disk Naming Conventions</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Drive type</entry>
- <entry>Drive device name</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>IDE hard drives</entry>
- <entry><literal>ad</literal> in 4.0-RELEASE,
- <literal>wd</literal> before 4.0-RELEASE.</entry>
- </row>
- <row>
- <entry>IDE CDROM drives</entry>
- <entry><literal>acd</literal> from 3.1-RELEASE,
- <literal>wcd</literal> before 4.0-RELEASE.</entry>
- </row>
- <row>
- <entry>SCSI hard drives</entry>
- <entry><literal>da</literal> from 3.0-RELEASE,
- <literal>sd</literal> before 3.0-RELEASE.</entry>
- </row>
- <row>
- <entry>SCSI CDROM drives</entry>
- <entry><literal>cd</literal></entry>
- </row>
- <row>
- <entry>Assorted non-standard CDROM drives</entry>
- <entry><literal>mcd</literal> for Mitsumi CD-ROM,
- <literal>scd</literal> for Sony CD-ROM,
- <literal>matcd</literal> for Matsushita/Panasonic CD-ROM
- </entry>
- </row>
- <row>
- <entry>Floppy drives</entry>
- <entry><literal>fd</literal></entry>
- </row>
- <row>
- <entry>SCSI tape drives</entry>
- <entry><literal>sa</literal> from 3.0-RELEASE,
- <literal>st</literal> before 3.0-RELEASE.</entry>
- </row>
- <row>
- <entry>IDE tape drives</entry>
- <entry><literal>ast</literal> from 4.0-RELEASE,
- <literal>wst</literal> before 4.0-RELEASE.</entry>
- </row>
- <row>
- <entry>Flash drives</entry>
- <entry><literal>fla</literal> for DiskOnChip Flash device
- from 3.3-RELEASE.</entry>
- </row>
- <row>
- <entry>RAID drives</entry>
- <entry><literal>myxd</literal> for Mylex, and
- <literal>amrd</literal> for AMI MegaRAID,
- <literal>idad</literal> for Compaq Smart RAID.
- from 4.0-RELEASE. <literal>id</literal> between
- 3.2-RELEASE and 4.0-RELEASE.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <sect2>
- <title>Slices and Partitions</title>
-
- <para>Physical disks usually contain
- <firstterm>slices</firstterm>, unless they are
- <quote>dangerously dedicated</quote>. Slice numbers follow
- the device name, prefixed with an <literal>s</literal>:
- <quote>da0<emphasis>s1</emphasis></quote>.</para>
-
- <para>Slices, <quote>dangerously dedicated</quote> physical
- drives, and other drives contain
- <firstterm>partitions</firstterm>, which represented as
- letters from <literal>a</literal> to <literal>h</literal>.
- <literal>b</literal> is reserved for swap partitions, and
- <literal>c</literal> is an unused partition the size of the
- entire slice or drive. This is explained in <xref
- linkend="disks-adding" />.</para>
- </sect2>
- </sect1>
-
- <sect1 id="disks-mounting">
- <title>Mounting and Unmounting Filesystems</title>
-
- <para>The filesystem is best visualized as a tree,
- rooted, as it were, at <filename>/</filename>.
- <filename>/dev</filename>, <filename>/usr</filename>, and the
- other directories in the root directory are branches, which may
- have their own branches, such as
- <filename>/usr/local</filename>, and so on.</para>
-
- <para>There are various reasons to house certain of these
- directories on separate filesystems. <filename>/var</filename>
- contains log, spool, and various types of temporary files, and
- as such, may get filled up. Filling up the root filesystem
- isn't a good idea, so splitting <filename>/var</filename> from
- <filename>/</filename> is often a good idea.</para>
-
- <para>Another common reason to contain certain directory trees on
- other filesystems is if they are to be housed on separate
- physical disks, or are separate virtual disks, such as <link
- linkend="nfs">Network File System</link> mounts, or CDROM
- drives.</para>
-
- <sect2 id="disks-fstab">
- <title>The fstab File</title>
-
- <para>During the <link linkend="boot">boot process</link>,
- filesystems listed in <filename>/etc/fstab</filename> are
- automatically mounted (unless they are listed with
- <option>noauto</option>).</para>
-
- <para>The <filename>/etc/fstab</filename> file contains a list
- of lines of the following format:</para>
-
- <programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting>
-
- <para><literal>device</literal> is a device name (which should
- exist), as explained in the <link linkend="disks-naming">Disk
- naming conventions</link> above.</para>
-
- <para><literal>mount-point</literal> is a directory (which
- should exist), on which to mount the filesystem.</para>
-
- <para><literal>fstype</literal> is the filesystem type to pass
- to &man.mount.8;. The default FreeBSD filesystem is
- <literal>ufs</literal>.</para>
-
- <para><literal>options</literal> is either <option>rw</option>
- for read-write filesystems, or <option>ro</option> for
- read-only filesystems, followed by any other options that may
- be needed. A common option is <option>noauto</option> for
- filesystems not normally mounted during the boot sequence.
- Other options in the &man.mount.8; manual page.</para>
-
- <para><literal>dumpfreq</literal> is the number of days the
- filesystem should be dumped, and <literal>passno</literal> is
- the pass number during which the filesystem is mounted during
- the boot sequence.</para>
- </sect2>
-
- <sect2 id="disks-mount">
- <title>The mount Command</title>
-
- <para>The &man.mount.8; command is what is ultimately used to
- mount filesystems.</para>
-
- <para>In its most basic form, you use:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput></screen>
- </informalexample>
-
- <para>There are plenty of options, as mentioned in the
- &man.mount.8; manual page, but the most common are:</para>
-
- <variablelist>
- <title>mount options</title>
-
- <varlistentry>
- <term><option>-a</option></term>
-
- <listitem>
- <para>Mount all filesystems in
- <filename>/etc/fstab</filename>, as modified by
- <option>-t</option>, if given.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-d</option></term>
-
- <listitem>
- <para>Do everything but actually mount the
- filesystem.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-f</option></term>
-
- <listitem>
- <para>Force the mounting the filesystem.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-r</option></term>
-
- <listitem>
- <para>Mount the filesystem read-only.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-t</option>
- <replaceable>fstype</replaceable></term>
-
- <listitem>
- <para>Mount the given filesystem as the given filesystem
- type, or mount only filesystems of the given type, if
- given the <option>-a</option> option.</para>
-
- <para><quote>ufs</quote> is the default filesystem
- type.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-u</option></term>
-
- <listitem>
- <para>Update mount options on the filesystem.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-v</option></term>
-
- <listitem>
- <para>Be verbose.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-w</option></term>
-
- <listitem>
- <para>Mount the filesystem read-write.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The <option>-o</option> takes a comma-separated list of
- the options, including the following:</para>
-
- <variablelist>
- <varlistentry>
- <term>nodev</term>
-
- <listitem>
- <para>Do not interpret special devices on the
- filesystem. Useful security option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>noexec</term>
-
- <listitem>
- <para>Do not allow execution of binaries on this
- filesystem. Useful security option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>nosuid</term>
-
- <listitem>
- <para>Do not interpret setuid or setgid flags on the
- filesystem. Useful security option.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2 id="disks-umount">
- <title>The umount Command</title>
-
- <para>The umount command takes, as a parameter, one of a
- mountpoint, a device name, or the <option>-a</option> or
- <option>-A</option> option.</para>
-
- <para>All forms take <option>-f</option> to force unmounting,
- and <option>-v</option> for verbosity.</para>
-
- <para><option>-a</option> and <option>-A</option> are used to
- unmount all mounted filesystems, possibly modified by the
- filesystem types listed after <option>-t</option>.
- <option>-A</option>, however, doesn't attempt to unmount the
- root filesystem.</para>
- </sect2>
- </sect1>
-
- <sect1 id="disks-adding">
- <title>Adding Disks</title>
-
- <para><emphasis>Originally contributed by &a.obrien; 26 April
- 1998</emphasis></para>
-
- <para>Lets say we want to add a new SCSI disk to a machine that currently
- only has a single drive. First turn off the computer and install the
- drive in the computer following the instructions of the computer,
- controller, and drive manufacturer. Due the wide variations of procedures
- to do this, the details are beyond the scope of this document.</para>
-
- <para>Login as user <username>root</username>. After you've installed the
- drive, inspect <filename>/var/run/dmesg.boot</filename> to ensure the new
- disk was found. Continuing with our example, the newly added drive will
- be <filename>da1</filename> and we want to mount it on
- <filename>/1</filename> (if you are adding an IDE drive, it will
- be <filename>wd1</filename> in pre-4.0 systems, or
- <filename>ad1</filename> in most 4.X systems).</para>
-
- <para>Because FreeBSD runs on IBM-PC compatible computers, it must take into
- account the PC BIOS partitions. These are different from the traditional
- BSD partitions. A PC disk has up to four BIOS partition entries. If the
- disk is going to be truly dedicated to FreeBSD, you can use the
- <emphasis>dedicated</emphasis> mode. Otherwise, FreeBSD will have to live
- with in one of the PC BIOS partitions. FreeBSD calls the PC BIOS
- partitions, <emphasis>slices</emphasis> so as not to confuse them with
- traditional BSD partitions. You may also use slices on a disk that is
- dedicated to FreeBSD, but used in a computer that also has another
- operating system installed. This is to not confuse the
- <command>fdisk</command> utility of the other operating system.</para>
-
- <para>In the slice case the drive will be added as
- <filename>/dev/da1s1e</filename>. This is read as: SCSI disk, unit number
- 1 (second SCSI disk), slice 1 (PC BIOS partition 1), and
- <filename>e</filename> BSD partition. In the dedicated case, the drive
- will be added simply as <filename>/dev/da1e</filename>.</para>
-
- <sect2>
- <title>Using sysinstall</title>
-
- <para>You may use <command>/stand/sysinstall</command> to partition and
- label a new disk using its easy to use menus. Either login as user
- <username>root</username> or use the <command>su</command> command. Run
- <command>/stand/sysinstall</command> and enter the
- <literal>Configure</literal> menu. With in the <literal>FreeBSD
- Configuration Menu</literal>, scroll down and select the
- <literal>Partition</literal> item. Next you should be presented with a
- list of hard drives installed in your system. If you do not see
- <literal>da1</literal> listed, you need to recheck your physical
- installation and <command>dmesg</command> output in the file
- <filename>/var/run/dmesg.boot</filename>.</para>
-
- <para>Select <literal>da1</literal> to enter the <literal>FDISK Partition
- Editor</literal>. Choose <literal>A</literal> to use the entire disk
- for FreeBSD. When asked if you want to <quote>remain cooperative with
- any future possible operating systems</quote>, answer
- <literal>YES</literal>. Write the changes to the disk using
- <command>W</command>. Now exit the FDISK editor using
- <command>q</command>. Next you will be asked about the Master Boot
- Record. Since you are adding a disk to an already running system,
- choose <literal>None</literal>.</para>
-
- <para>Next enter the <literal>Disk Label Editor</literal>. This is where
- you will create the traditional BSD partitions. A disk can have up to
- eight partitions, labeled a-h. A few of the partition labels have
- special uses. The <literal>a</literal> partition is used for the root
- partition (<filename>/</filename>). Thus only your system disk (e.g,
- the disk you boot from) should have an <literal>a</literal> partition.
- The <literal>b</literal> partition is used for swap partitions, and you
- may have many disks with swap partitions. The <literal>c</literal>
- partition addresses the entire disk in dedicated mode, or the entire
- FreeBSD slice in slice mode. The other partitions are for general
- use.</para>
-
- <para>Sysinstall's Label editor favors the <literal>e</literal> partition
- for non-root, non-swap partitions. With in the Label editor, create a
- single file system using <command>C</command>. When prompted if this
- will be a FS (file system) or swap, choose <literal>FS</literal> and
- give a mount point (e.g, <filename>/mnt</filename>). When adding a disk
- in post-install mode, Sysinstall will not create entries in
- <filename>/etc/fstab</filename> for you, so the mount point you specify
- isn't important.</para>
-
- <para>You are now ready to write the new label to the disk and create a
- file system on it. Do this by hitting <command>W</command>. Ignore any
- errors from Sysinstall that it could not mount the new partition. Exit
- the Label Editor and Sysinstall completely.</para>
-
- <para>The last step is to edit <filename>/etc/fstab</filename> to add an
- entry for your new disk.</para>
- </sect2>
-
- <sect2>
- <title>Using Command Line Utilities</title>
-
- <sect3>
- <title>Using Slices</title>
-
- <para>This setup will allow your disk to work correctly with
- other operating systems that might be installed on your
- computer and will not confuse other operating systems' fdisk
- utilities. It is recommended to use this method for new disk
- installs. Only use <literal>dedicated</literal> mode if you
- have a good reason to do so!</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 bs=1k count=1</userinput>
-&prompt.root; <userinput>fdisk -BI da1</userinput> #Initialize your new disk
-&prompt.root; <userinput>disklabel -B -w -r da1s1 auto</userinput> #Label it.
-&prompt.root; <userinput>disklabel -e da1s1</userinput> # Now edit the disklabel you just created and add any partitions.
-&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>newfs /dev/da1s1e</userinput> # Repeat this for every partition you created.
-&prompt.root; <userinput>mount -t ufs /dev/da1s1e /1</userinput> # Mount the partition(s)
-&prompt.root; <userinput>vi /etc/fstab</userinput> # When satisfied, add the appropriate entry/entries to your <filename>/etc/fstab</filename>.</screen>
-
- <para>If you have an IDE disk, substitute <filename>ad</filename>
- for <filename>da</filename>. On pre-4.x systems use
- <filename>wd</filename>.</para>
- </sect3>
-
- <sect3>
- <title>Dedicated</title>
-
- <para>If you will not be sharing the new drive with another operating
- system, you may use the <literal>dedicated</literal> mode. Remember
- this mode can confuse Microsoft operating systems; however, no damage
- will be done by them. IBM's OS/2 however, will
- <quote>appropriate</quote> any partition it finds which it doesn't
- understand.</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 bs=1k count=1</userinput>
-&prompt.root; <userinput>disklabel -Brw da1 auto</userinput>
-&prompt.root; <userinput>disklabel -e da1</userinput> # create the `e' partition
-&prompt.root; <userinput>newfs -d0 /dev/rda1e</userinput>
-&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e
-&prompt.root; <userinput>mount /1</userinput></screen>
-
- <para>An alternate method is:</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 count=2</userinput>
-&prompt.root; <userinput>disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin</userinput>
-&prompt.root; <userinput>newfs /dev/rda1e</userinput>
-&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e
-&prompt.root; <userinput>mount /1</userinput></screen>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="disks-virtual">
- <title>Virtual Disks: Network, Memory, and File-Based Filesystems</title>
-
- <para>Besides the disks you physically insert into your computer;
- floppies, CDs, hard drives, and so forth, other forms of disks
- are understood by FreeBSD - the <firstterm>virtual
- disks</firstterm>.</para>
-
- <para>These include network filesystems such as the <link
- linkend="nfs">Network Filesystem</link> and Coda, memory-based
- filesystems such as <link linkend="disks-md">md</link> and
- file-backed filesystems created by <link
- linkend="disks-vnconfig">vnconfig</link>.</para>
-
- <sect2 id="disks-vnconfig">
- <title>vnconfig: file-backed filesystem</title>
-
- <para>&man.vnconfig.8; configures and enables vnode pseudo disk
- devices. A <firstterm>vnode</firstterm> is a representation
- of a file, and is the focus of file activity. This means that
- &man.vnconfig.8; uses files to create and operate a
- filesystem. One possible use is the mounting of floppy or CD
- images kept in files.</para>
-
- <para>To mount an existing filesystem image:</para>
-
- <example>
- <title>Using vnconfig to mount an existing filesystem
- image</title>
-
- <screen>&prompt.root; <userinput>vnconfig vn<replaceable>0</replaceable> <replaceable>diskimage</replaceable></userinput>
-&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput></screen>
- </example>
-
- <para>To create a new filesystem image with vnconfig:</para>
-
- <example>
- <title>Creating a New File-Backed Disk with vnconfig</title>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>
-5120+0 records in
-5120+0 records out
-&prompt.root; <userinput>vnconfig -s labels -c vn<replaceable>0</replaceable> <replaceable>newimage</replaceable></userinput>
-&prompt.root; <userinput>disklabel -r -w vn<replaceable>0</replaceable> auto</userinput>
-&prompt.root; <userinput>newfs vn<replaceable>0</replaceable>c</userinput>
-Warning: 2048 sector(s) in last cylinder unallocated
-/dev/rvn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
- 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
-super-block backups (for fsck -b #) at:
- 32
-&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput>
-&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
-Filesystem 1K-blocks Used Avail Capacity Mounted on
-/dev/vn0c 4927 1 4532 0% /mnt</screen>
- </example>
- </sect2>
-
- <sect2 id="disks-md">
- <title>md: Memory Filesystem</title>
-
- <para>md is a simple, efficient means to do memory
- filesystems.</para>
-
- <para>Simply take a filesystem you've prepared with, for
- example, &man.vnconfig.8;, and:</para>
-
- <example>
- <title>md memory disk</title>
-
- <screen>&prompt.root; <userinput>dd if=<replaceable>newimage</replaceable> of=/dev/md<replaceable>0</replaceable></userinput>
-5120+0 records in
-5120+0 records out
-&prompt.root; <userinput>mount /dev/md<replaceable>0c</replaceable> <replaceable>/mnt</replaceable></userinput>
-&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
-Filesystem 1K-blocks Used Avail Capacity Mounted on
-/dev/md0c 4927 1 4532 0% /mnt</screen>
- </example>
- </sect2>
- </sect1>
-
- <sect1 id="quotas">
- <title>Disk Quotas</title>
-
- <para>Quotas are an optional feature of the operating system that
- allow you to limit the amount of disk space and/or the number of
- files a user, or members of a group, may allocate on a per-file
- system basis. This is used most often on timesharing systems where
- it is desirable to limit the amount of resources any one user or
- group of users may allocate. This will prevent one user from
- consuming all of the available disk space.</para>
-
- <sect2>
- <title>Configuring Your System to Enable Disk Quotas</title>
-
- <para>Before attempting to use disk quotas it is necessary to make
- sure that quotas are configured in your kernel. This is done by
- adding the following line to your kernel configuration
- file:</para>
-
- <programlisting>options QUOTA</programlisting>
-
- <para>The stock <filename>GENERIC</filename> kernel does not have
- this enabled by default, so you will have to configure, build and
- install a custom kernel in order to use disk quotas. Please refer
- to the <link linkend="kernelconfig">Configuring the FreeBSD
- Kernel</link> section for more information on kernel
- configuration.</para>
-
- <para>Next you will need to enable disk quotas in
- <filename>/etc/rc.conf</filename>. This is done by adding the
- line:</para>
-
- <programlisting>enable_quotas=<quote>YES</quote></programlisting>
-
- <para>For finer control over your quota startup, there is an
- additional configuration variable available. Normally on bootup,
- the quota integrity of each file system is checked by the
- <command>quotacheck</command> program. The
- <command>quotacheck</command> facility insures that the data in
- the quota database properly reflects the data on the file system.
- This is a very time consuming process that will significantly
- affect the time your system takes to boot. If you would like to
- skip this step, a variable is made available for the
- purpose:</para>
-
- <programlisting>check_quotas=<quote>NO</quote></programlisting>
-
- <para>If you are running FreeBSD prior to 3.2-RELEASE, the
- configuration is simpler, and consists of only one variable. Set
- the following in your <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>check_quotas=<quote>YES</quote></programlisting>
-
- <para>Finally you will need to edit <filename>/etc/fstab</filename>
- to enable disk quotas on a per-file system basis. This is where
- you can either enable user or group quotas or both for all of your
- file systems.</para>
-
- <para>To enable per-user quotas on a file system, add the
- <literal>userquota</literal> option to the options field in the
- <filename>/etc/fstab</filename> entry for the file system you want
- to to enable quotas on. For example:</para>
-
- <programlisting>/dev/da1s2g /home ufs rw,userquota 1 2</programlisting>
-
- <para>Similarly, to enable group quotas, use the
- <literal>groupquota</literal> option instead of the
- <literal>userquota</literal> keyword. To enable both user and
- group quotas, change the entry as follows:</para>
-
- <programlisting>/dev/da1s2g /home ufs rw,userquota,groupquota 1 2</programlisting>
-
- <para>By default the quota files are stored in the root directory of
- the file system with the names <filename>quota.user</filename> and
- <filename>quota.group</filename> for user and group quotas
- respectively. See <command>man fstab</command> for more
- information. Even though that man page says that you can specify
- an alternate location for the quota files, this is not recommended
- because the various quota utilities do not seem to handle this
- properly.</para>
-
- <para>At this point you should reboot your system with your new
- kernel. <filename>/etc/rc</filename> will automatically run the
- appropriate commands to create the initial quota files for all of
- the quotas you enabled in <filename>/etc/fstab</filename>, so
- there is no need to manually create any zero length quota
- files.</para>
-
- <para>In the normal course of operations you should not be required
- to run the <command>quotacheck</command>,
- <command>quotaon</command>, or <command>quotaoff</command>
- commands manually. However, you may want to read their man pages
- just to be familiar with their operation.</para>
- </sect2>
-
- <sect2>
- <title>Setting Quota Limits</title>
-
- <para>Once you have configured your system to enable quotas, verify
- that they really are enabled. An easy way to do this is to
- run:</para>
-
- <screen>&prompt.root; <userinput>quota -v</userinput></screen>
-
- <para>You should see a one line summary of disk usage and current
- quota limits for each file system that quotas are enabled
- on.</para>
-
- <para>You are now ready to start assigning quota limits with the
- <command>edquota</command> command.</para>
-
- <para>You have several options on how to enforce limits on the
- amount of disk space a user or group may allocate, and how many
- files they may create. You may limit allocations based on disk
- space (block quotas) or number of files (inode quotas) or a
- combination of both. Each of these limits are further broken down
- into two categories; hard and soft limits.</para>
-
- <para>A hard limit may not be exceeded. Once a user reaches their
- hard limit they may not make any further allocations on the file
- system in question. For example, if the user has a hard limit of
- 500 blocks on a file system and is currently using 490 blocks, the
- user can only allocate an additional 10 blocks. Attempting to
- allocate an additional 11 blocks will fail.</para>
-
- <para>Soft limits on the other hand can be exceeded for a limited
- amount of time. This period of time is known as the grace period,
- which is one week by default. If a user stays over his or her
- soft limit longer than their grace period, the soft limit will
- turn into a hard limit and no further allocations will be allowed.
- When the user drops back below the soft limit, the grace period
- will be reset.</para>
-
- <para>The following is an example of what you might see when you run
- the <command>edquota</command> command. When the
- <command>edquota</command> command is invoked, you are placed into
- the editor specified by the <envar>EDITOR</envar> environment
- variable, or in the <command>vi</command> editor if the
- <envar>EDITOR</envar> variable is not set, to allow you to edit
- the quota limits.</para>
-
- <screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
-
- <programlisting>Quotas for user test:
-/usr: blocks in use: 65, limits (soft = 50, hard = 75)
- inodes in use: 7, limits (soft = 50, hard = 60)
-/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
- inodes in use: 0, limits (soft = 50, hard = 60)</programlisting>
-
- <para>You will normally see two lines for each file system that has
- quotas enabled. One line for the block limits, and one line for
- inode limits. Simply change the value you want updated to modify
- the quota limit. For example, to raise this users block limit
- from a soft limit of 50 and a hard limit of 75 to a soft limit of
- 500 and a hard limit of 600, change:</para>
-
- <programlisting>/usr: blocks in use: 65, limits (soft = 50, hard = 75)</programlisting>
-
- <para>to:</para>
-
- <programlisting> /usr: blocks in use: 65, limits (soft = 500, hard = 600)</programlisting>
-
- <para>The new quota limits will be in place when you exit the
- editor.</para>
-
- <para>Sometimes it is desirable to set quota limits on a range of
- uids. This can be done by use of the <option>-p</option> option
- on the <command>edquota</command> command. First, assign the
- desired quota limit to a user, and then run
- <command>edquota -p protouser startuid-enduid</command>. For
- example, if user <username>test</username> has the desired quota
- limits, the following command can be used to duplicate those quota
- limits for uids 10,000 through 19,999:</para>
-
- <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
-
- <para>See <command>man edquota</command> for more detailed
- information.</para>
- </sect2>
-
- <sect2>
- <title>Checking Quota Limits and Disk Usage</title>
-
- <para>You can use either the <command>quota</command> or the
- <command>repquota</command> commands to check quota limits and
- disk usage. The <command>quota</command> command can be used to
- check individual user and group quotas and disk usage. Only the
- super-user may examine quotas and usage for other users, or for
- groups that they are not a member of. The
- <command>repquota</command> command can be used to get a summary
- of all quotas and disk usage for file systems with quotas
- enabled.</para>
-
- <para>The following is some sample output from the
- <command>quota -v</command> command for a user that has quota
- limits on two file systems.</para>
-
- <programlisting>Disk quotas for user test (uid 1002):
- Filesystem blocks quota limit grace files quota limit grace
- /usr 65* 50 75 5days 7 50 60
- /usr/var 0 50 75 0 50 60</programlisting>
-
- <para>On the <filename>/usr</filename> file system in the above
- example this user is currently 15 blocks over their soft limit of
- 50 blocks and has 5 days of their grace period left. Note the
- asterisk <literal>*</literal> which indicates that the user is
- currently over their quota limit.</para>
-
- <para>Normally file systems that the user is not using any disk
- space on will not show up in the output from the
- <command>quota</command> command, even if they have a quota limit
- assigned for that file system. The <option>-v</option> option
- will display those file systems, such as the
- <filename>/usr/var</filename> file system in the above
- example.</para>
- </sect2>
-
- <sect2>
- <title>Quotas over NFS</title>
-
- <para>Quotas are enforced by the quota subsystem on the NFS server.
- The &man.rpc.rquotad.8; daemon makes quota information available
- to the &man.quota.1; command on NFS clients, allowing users on
- those machines to see their quota statistics.</para>
-
- <para>Enable <command>rpc.rquotad</command> in
- <filename>/etc/inetd.conf</filename> like so:</para>
-
- <programlisting>rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad</programlisting>
-
- <para>Now restart <command>inetd</command>:</para>
-
- <screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml b/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml
deleted file mode 100644
index b4f8dd0c0e..0000000000
--- a/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml
+++ /dev/null
@@ -1,1617 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/eresources/chapter.sgml,v 1.56 2001/04/12 01:49:55 dd Exp $
--->
-
-<appendix id="eresources">
- <title>Resources on the Internet</title>
-
- <para>The rapid pace of FreeBSD progress makes print media impractical as a
- means of following the latest developments. Electronic resources are the
- best, if not often the only, way stay informed of the latest advances.
- Since FreeBSD is a volunteer effort, the user community itself also
- generally serves as a <quote>technical support department</quote> of sorts,
- with electronic mail and USENET news being the most effective way of
- reaching that community.</para>
-
- <para>The most important points of contact with the FreeBSD user community
- are outlined below. If you are aware of other resources not mentioned
- here, please send them to the &a.doc;so that they may also be
- included.</para>
-
- <sect1 id="eresources-mail">
- <title>Mailing Lists</title>
-
- <para>Though many of the FreeBSD development members read USENET, we
- cannot always guarantee that we will get to your questions in a timely
- fashion (or at all) if you post them only to one of the
- <literal>comp.unix.bsd.freebsd.*</literal> groups. By addressing your
- questions to the appropriate mailing list you will reach both us and a
- concentrated FreeBSD audience, invariably assuring a better (or at least
- faster) response.</para>
-
- <para>The charters for the various lists are given at the bottom of this
- document. <emphasis>Please read the charter before joining or sending
- mail to any list</emphasis>. Most of our list subscribers now receive
- many hundreds of FreeBSD related messages every day, and by setting down
- charters and rules for proper use we are striving to keep the
- signal-to-noise ratio of the lists high. To do less would see the
- mailing lists ultimately fail as an effective communications medium for
- the project.</para>
-
- <para>Archives are kept for all of the mailing lists and can be searched
- using the <ulink url="http://www.FreeBSD.org/search.html">FreeBSD World
- Wide Web server</ulink>. The keyword searchable archive offers an
- excellent way of finding answers to frequently asked questions and
- should be consulted before posting a question.</para>
-
- <sect2 id="eresources-summary">
- <title>List Summary</title>
-
- <para><emphasis>General lists:</emphasis> The following are general
- lists which anyone is free (and encouraged) to join:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>List</entry>
- <entry>Purpose</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>freebsd-advocacy</entry>
- <entry>FreeBSD Evangelism</entry>
- </row>
-
- <row>
- <entry>freebsd-announce</entry>
- <entry>Important events and project milestones</entry>
- </row>
-
- <row>
- <entry>freebsd-arch</entry>
- <entry>Architecture and design discussions</entry>
- </row>
-
- <row>
- <entry>freebsd-bugs</entry>
- <entry>Bug reports</entry>
- </row>
-
- <row>
- <entry>freebsd-chat</entry>
- <entry>Non-technical items related to the FreeBSD
- community</entry>
- </row>
-
- <row>
- <entry>freebsd-commit</entry>
- <entry>Changes made to the FreeBSD source tree</entry>
- </row>
-
- <row>
- <entry>freebsd-config</entry>
- <entry>Development of FreeBSD installation and configuration tools</entry>
- </row>
-
- <row>
- <entry>freebsd-current</entry>
- <entry>Discussion concerning the use of
- FreeBSD-current</entry>
- </row>
-
- <row>
- <entry>freebsd-isp</entry>
- <entry>Issues for Internet Service Providers using
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-jobs</entry>
- <entry>FreeBSD employment and consulting
- opportunities</entry>
- </row>
-
- <row>
- <entry>freebsd-newbies</entry>
- <entry>New FreeBSD users activities and discussions</entry>
- </row>
-
- <row>
- <entry>freebsd-policy</entry>
- <entry>FreeBSD Core team policy decisions. Low volume, and
- read-only</entry>
- </row>
-
- <row>
- <entry>freebsd-questions</entry>
- <entry>User questions and technical support</entry>
- </row>
-
- <row>
- <entry>freebsd-stable</entry>
- <entry>Discussion concerning the use of
- FreeBSD-stable</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>Technical lists:</emphasis> The following lists are for
- technical discussion. You should read the charter for each list
- carefully before joining or sending mail to one as there are firm
- guidelines for their use and content.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>List</entry>
- <entry>Purpose</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>freebsd-afs</entry>
- <entry>Porting AFS to FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-alpha</entry>
- <entry>Porting FreeBSD to the Alpha</entry>
- </row>
-
- <row>
- <entry>freebsd-atm</entry>
- <entry>Using ATM networking with FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-audit</entry>
- <entry>Source code audit project</entry>
- </row>
-
- <row>
- <entry>freebsd-database</entry>
- <entry>Discussing database use and development under
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-doc</entry>
- <entry>Creating FreeBSD related documents</entry>
- </row>
-
- <row>
- <entry>freebsd-emulation</entry>
- <entry>Emulation of other systems such as
- Linux/DOS/Windows</entry>
- </row>
-
- <row>
- <entry>freebsd-fs</entry>
- <entry>Filesystems</entry>
- </row>
-
- <row>
- <entry>freebsd-hackers</entry>
- <entry>General technical discussion</entry>
- </row>
-
- <row>
- <entry>freebsd-hardware</entry>
- <entry>General discussion of hardware for running
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-i18n</entry>
- <entry>FreeBSD Internationalization</entry>
- </row>
-
- <row>
- <entry>freebsd-ia64</entry>
- <entry>Porting FreeBSD to Intel's upcoming IA64 systems</entry>
- </row>
-
- <row>
- <entry>freebsd-ipfw</entry>
- <entry>Technical discussion concerning the redesign of the IP
- firewall code</entry>
- </row>
-
- <row>
- <entry>freebsd-isdn</entry>
- <entry>ISDN developers</entry>
- </row>
-
- <row>
- <entry>freebsd-java</entry>
- <entry>Java developers and people porting JDKs to
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-libh</entry>
- <entry>The second generation installation and package
- system</entry>
- </row>
-
- <row>
- <entry>freebsd-mobile</entry>
- <entry>Discussions about mobile computing</entry>
- </row>
-
- <row>
- <entry>freebsd-mozilla</entry>
- <entry>Porting mozilla to FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-multimedia</entry>
- <entry>Multimedia applications</entry>
- </row>
-
- <row>
- <entry>freebsd-new-bus</entry>
- <entry>Technical discussions about bus architecture</entry>
- </row>
-
- <row>
- <entry>freebsd-net</entry>
- <entry>Networking discussion and TCP/IP source code</entry>
- </row>
-
- <row>
- <entry>freebsd-platforms</entry>
- <entry>Concerning ports to non-Intel architecture
- platforms</entry>
- </row>
-
- <row>
- <entry>freebsd-ports</entry>
- <entry>Discussion of the ports collection</entry>
- </row>
-
- <row>
- <entry>freebsd-ppc</entry>
- <entry>Porting FreeBSD to the PowerPC</entry>
- </row>
-
- <row>
- <entry>freebsd-realtime</entry>
- <entry>Development of realtime extensions to FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-scsi</entry>
- <entry>The SCSI subsystem</entry>
- </row>
-
- <row>
- <entry>freebsd-security</entry>
- <entry>Security issues</entry>
- </row>
-
- <row>
- <entry>freebsd-security-notifications</entry>
- <entry>Security notifications</entry>
- </row>
-
- <row>
- <entry>freebsd-small</entry>
- <entry>Using FreeBSD in embedded applications</entry>
- </row>
-
- <row>
- <entry>freebsd-smp</entry>
- <entry>Design discussions for [A]Symmetric
- MultiProcessing</entry>
- </row>
-
- <row>
- <entry>freebsd-sparc</entry>
- <entry>Porting FreeBSD to Sparc systems</entry>
- </row>
-
- <row>
- <entry>freebsd-tokenring</entry>
- <entry>Support Token Ring in FreeBSD</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>Limited lists:</emphasis> The following lists are for
- more specialized (and demanding) audiences and are probably not of
- interest to the general public. It is also a good idea to establish a
- presence in the technical lists before joining one of these limited
- lists so that you'll understand the communications etiquette involved.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>List</entry>
- <entry>Purpose</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>freebsd-core</entry>
- <entry>FreeBSD core team</entry>
- </row>
-
- <row>
- <entry>freebsd-hubs</entry>
- <entry>People running mirror sites (infrastructural
- support)</entry>
- </row>
-
- <row>
- <entry>freebsd-install</entry>
- <entry>Installation development</entry>
- </row>
-
- <row>
- <entry>freebsd-user-groups</entry>
- <entry>User group coordination</entry>
- </row>
-
- <row>
- <entry>freebsd-www</entry>
- <entry>Maintainers of <ulink url="http://www.FreeBSD.org">www.freebsd.org</ulink></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>Digest lists:</emphasis> Many of the above lists are
- also available as digests. New messages posted to the list are
- collected and sent out as a single e-mail when the sizes goes
- over 100KB. The lists available in digest form are:</para>
-
- <informaltable frame="none">
- <tgroup cols="1">
- <thead>
- <row>
- <entry>List</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>freebsd-afs-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-alpha-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-chat-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-current-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-cvs-all-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-database-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-hackers-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-ia64-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-isdn-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-java-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-questions-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-security-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-sparc-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-stable-digest</entry>
- </row>
-
- <row>
- <entry>freebsd-test-digest</entry>
- </row>
-
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>CVS lists:</emphasis> The following lists are for people
- interested in seeing the log messages for changes to various areas of
- the source tree. They are <emphasis>Read-Only</emphasis> lists and
- should not have mail sent to them.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>List</entry>
- <entry>Source area</entry>
- <entry>Area Description (source for)</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>cvs-all</entry>
- <entry>/usr/src</entry>
- <entry>All changes to the tree (superset)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2 id="eresources-subscribe">
- <title>How to Subscribe</title>
-
- <para>All mailing lists live on <hostid
- role="fqdn">FreeBSD.org</hostid>, so to post to a given list you
- simply mail to
- &lt;<replaceable>listname</replaceable>@FreeBSD.org&gt;. It will then
- be redistributed to mailing list members world-wide.</para>
-
- <para>To subscribe to a list, send mail to &a.majordomo; and include
-
- <programlisting>subscribe &lt;listname&gt; [&lt;optional address&gt;]</programlisting>
-
- in the body of your message. For example, to subscribe yourself to
- <literal>freebsd-announce</literal>, you'd do:</para>
-
- <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.org</userinput>
-subscribe freebsd-announce
-^D</screen>
-
- <para>If you want to subscribe yourself under a different name, or
- submit a subscription request for a local mailing list (this is more
- efficient if you have several interested parties at one site, and
- highly appreciated by us!), you would do something like:</para>
-
- <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.org</userinput>
-subscribe freebsd-announce local-announce@somesite.com
-^D</screen>
-
- <para>Finally, it is also possible to unsubscribe yourself from a list,
- get a list of other list members or see the list of mailing lists
- again by sending other types of control messages to majordomo. For a
- complete list of available commands, do this:</para>
-
- <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.org</userinput>
-help
-^D</screen>
-
- <para>Again, we would like to request that you keep discussion in the
- technical mailing lists on a technical track. If you are only
- interested in important announcements then it is suggested that
- you join freebsd-announce, which is intended only for infrequent
- traffic.</para>
- </sect2>
-
- <sect2 id="eresources-charters">
- <title>List Charters</title>
-
- <para><emphasis>All</emphasis> FreeBSD mailing lists have certain basic
- rules which must be adhered to by anyone using them. Failure to comply
- with these guidelines will result in two (2) written warnings from the
- FreeBSD Postmaster <email>postmaster@FreeBSD.org</email>, after which,
- on a third offense, the poster will removed from all FreeBSD mailing
- lists and filtered from further posting to them. We regret that such
- rules and measures are necessary at all, but today's Internet is a
- pretty harsh environment, it would seem, and many fail to appreciate
- just how fragile some of its mechanisms are.</para>
-
- <para>Rules of the road:</para>
-
- <itemizedlist>
- <listitem>
- <para>The topic of any posting should adhere to the basic charter of
- the list it is posted to, e.g. if the list is about technical
- issues then your posting should contain technical discussion.
- Ongoing irrelevant chatter or flaming only detracts from the value
- of the mailing list for everyone on it and will not be tolerated.
- For free-form discussion on no particular topic, the freebsd-chat
- <email>freebsd-chat@FreeBSD.org</email> mailing list is freely
- available and should be used instead.</para>
- </listitem>
-
- <listitem>
- <para>No posting should be made to more than 2 mailing lists, and
- only to 2 when a clear and obvious need to post to both lists
- exists. For most lists, there is already a great deal of
- subscriber overlap and except for the most esoteric mixes (say
- "-stable &amp; -scsi"), there really is no reason to post to more
- than one list at a time. If a message is sent to you in such a
- way that multiple mailing lists appear on the Cc line then the Cc
- line should also be trimmed before sending it out again.
- <emphasis>You are <emphasis>still</emphasis> responsible for your
- own cross-postings, no matter who the originator might have
- been.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Personal attacks and profanity (in the context of an argument)
- are not allowed, and that includes users and developers alike.
- Gross breaches of netiquette, like excerpting or reposting private
- mail when permission to do so was not and would not be
- forthcoming, are frowned upon but not specifically enforced.
- <emphasis>However</emphasis>, there are also very few cases where
- such content would fit within the charter of a list and it would
- therefore probably rate a warning (or ban) on that basis
- alone.</para>
- </listitem>
-
- <listitem>
- <para>Advertising of non-FreeBSD related products or services is
- strictly prohibited and will result in an immediate ban if it is
- clear that the offender is advertising by spam.</para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>Individual list charters:</emphasis></para>
-
- <variablelist>
- <varlistentry>
- <term>FREEBSD-AFS</term>
-
- <listitem>
- <para><emphasis>Andrew File System</emphasis></para>
-
- <para>This list is for discussion on porting and using AFS from
- CMU/Transarc</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ANNOUNCE</term>
-
- <listitem>
- <para><emphasis>Important events / milestones</emphasis></para>
-
- <para>This is the mailing list for people interested only in
- occasional announcements of significant FreeBSD events. This
- includes announcements about snapshots and other releases. It
- contains announcements of new FreeBSD capabilities. It may
- contain calls for volunteers etc. This is a low volume, strictly
- moderated mailing list.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ARCH</term>
-
- <listitem>
- <para><emphasis>Architecture and design
- discussions</emphasis></para>
-
- <para>This list is for discussion of the FreeBSD
- architecture. Messages will mostly be kept strictly
- technical in nature. Examples of suitable topics
- are:</para>
-
- <itemizedlist>
- <listitem>
- <para>How to re-vamp the build system to have several
- customized builds running at the same time.</para>
- </listitem>
-
- <listitem>
- <para>What needs to be fixed with VFS to make Heidemann layers
- work.</para>
- </listitem>
-
- <listitem>
- <para>How do we change the device driver interface to be able
- to use the same drivers cleanly on many buses and
- architectures.</para>
- </listitem>
-
- <listitem>
- <para>How to write a network driver.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-AUDIT</term>
-
- <listitem>
- <para><emphasis>Source code audit project</emphasis></para>
-
- <para>This is the mailing list for the FreeBSD source code
- audit project. Although this was originally intended for
- security-related changes, its charter has been expanded to
- review any code changes.</para>
-
- <para>This list is very heavy on patches, and is probably of no
- intrest to the average FreeBSD user. Security discussions
- not related to a particular code change are held on
- freebsd-security. Conversely, all developers are encouraged
- to send their patches here for review, especially if they
- touch a part of the system where a bug may adversely affect
- the integrity of the system.</para>
-
-<!-- I can't actually find a charter for this, but there's this e-mail: http://www.freebsd.org/cgi/getmsg.cgi?fetch=223347+225804+/usr/local/www/db/text/2000/cvs-all/20001210.cvs-all -->
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-BUGS</term>
-
- <listitem>
- <para><emphasis>Bug reports</emphasis></para>
-
- <para>This is the mailing list for reporting bugs in FreeBSD
- Whenever possible, bugs should be submitted using the
- &man.send-pr.1;
- command or the <ulink
- url="http://www.FreeBSD.org/send-pr.html">WEB
- interface</ulink> to it.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CHAT</term>
-
- <listitem>
- <para><emphasis>Non technical items related to the FreeBSD
- community</emphasis></para>
-
- <para>This list contains the overflow from the other lists about
- non-technical, social information. It includes discussion about
- whether Jordan looks like a toon ferret or not, whether or not
- to type in capitals, who is drinking too much coffee, where the
- best beer is brewed, who is brewing beer in their basement, and
- so on. Occasional announcements of important events (such as
- upcoming parties, weddings, births, new jobs, etc) can be made
- to the technical lists, but the follow ups should be directed to
- this -chat list.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CORE</term>
-
- <listitem>
- <para><emphasis>FreeBSD core team</emphasis></para>
-
- <para>This is an internal mailing list for use by the core
- members. Messages can be sent to it when a serious
- FreeBSD-related matter requires arbitration or high-level
- scrutiny.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CURRENT</term>
-
- <listitem>
- <para><emphasis>Discussions about the use of
- FreeBSD-current</emphasis></para>
-
- <para>This is the mailing list for users of freebsd-current. It
- includes warnings about new features coming out in -current that
- will affect the users, and instructions on steps that must be
- taken to remain -current. Anyone running <quote>current</quote>
- must subscribe to this list. This is a technical mailing list
- for which strictly technical content is expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CURRENT-DIGEST</term>
-
- <listitem>
- <para><emphasis>Discussions about the use of
- FreeBSD-current</emphasis></para>
-
- <para>This is the digest version of the freebsd-current mailing
- list. The digest consists of all messages sent to
- freebsd-current bundled together and mailed out as a single
- message. This list is <emphasis>Read-Only</emphasis> and
- should not be posted to.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-DOC</term>
-
- <listitem>
- <para><emphasis>Documentation project</emphasis></para>
-
- <para>This mailing list is for the discussion of issues and
- projects related to the creation of documentation for FreeBSD.
- The members of this mailing list are collectively referred to as
- <quote>The FreeBSD Documentation Project</quote>. It is an open
- list; feel free to join and contribute!</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-FS</term>
-
- <listitem>
- <para><emphasis>Filesystems</emphasis></para>
-
- <para>Discussions concerning FreeBSD filesystems. This is a
- technical mailing list for which strictly technical content is
- expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-IPFW</term>
-
- <listitem>
- <para><emphasis>IP Firewall</emphasis></para>
-
- <para>This is the forum for technical discussions concerning the
- redesign of the IP firewall code in FreeBSD. This is a
- technical mailing list for which strictly technical content is
- expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-IA64</term>
-
- <listitem>
- <para><emphasis>Porting FreeBSD to IA64</emphasis></para>
-
- <para>This is a technical mailing list for individuals
- actively working on porting FreeBSD to the IA-64 platform
- from Intel, to bring up problems or discuss alternative
- solutions. Individuals interested in following the
- technical discussion are also welcome.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ISDN</term>
-
- <listitem>
- <para><emphasis>ISDN Communications</emphasis></para>
-
- <para>This is the mailing list for people discussing the
- development of ISDN support for FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-JAVA</term>
-
- <listitem>
- <para><emphasis>Java Development</emphasis></para>
-
- <para>This is the mailing list for people discussing the
- development of significant Java applications for FreeBSD and the
- porting and maintenance of JDKs.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-HACKERS</term>
-
- <listitem>
- <para><emphasis>Technical discussions</emphasis></para>
-
- <para>This is a forum for technical discussions related to
- FreeBSD. This is the primary technical mailing list. It is for
- individuals actively working on FreeBSD, to bring up problems or
- discuss alternative solutions. Individuals interested in
- following the technical discussion are also welcome. This is a
- technical mailing list for which strictly technical content is
- expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-HACKERS-DIGEST</term>
-
- <listitem>
- <para><emphasis>Technical discussions</emphasis></para>
-
- <para>This is the digest version of the freebsd-hackers mailing
- list. The digest consists of all messages sent to
- freebsd-hackers bundled together and mailed out as a single
- message. This list is <emphasis>Read-Only</emphasis>
- and should not be posted to.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-HARDWARE</term>
-
- <listitem>
- <para><emphasis>General discussion of FreeBSD
- hardware</emphasis></para>
-
- <para>General discussion about the types of hardware that FreeBSD
- runs on, various problems and suggestions concerning what to buy
- or avoid.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-HUBS</term>
-
- <listitem>
- <para><emphasis>Mirror sites</emphasis></para>
-
- <para>Announcements and discussion for people who run FreeBSD
- mirror sites.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-INSTALL</term>
-
- <listitem>
- <para><emphasis>Installation discussion</emphasis></para>
-
- <para>This mailing list is for discussing FreeBSD installation
- development for the future releases.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ISP</term>
-
- <listitem>
- <para><emphasis>Issues for Internet Service
- Providers</emphasis></para>
-
- <para>This mailing list is for discussing topics relevant to
- Internet Service Providers (ISPs) using FreeBSD. This is a
- technical mailing list for which strictly technical content is
- expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-NEWBIES</term>
-
- <listitem>
- <para><emphasis>Newbies activities discussion</emphasis></para>
-
- <para>We cover any of the activities of newbies that are not
- already dealt with elsewhere, including: independent learning
- and problem solving techniques, finding and using resources and
- asking for help elsewhere, how to use mailing lists and which
- lists to use, general chat, making mistakes, boasting, sharing
- ideas, stories, moral (but not technical) support, and taking an
- active part in the FreeBSD community. We take our problems and
- support questions to freebsd-questions, and use freebsd-newbies
- to meet others who are doing the same things that we do as
- newbies.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-PLATFORMS</term>
-
- <listitem>
- <para><emphasis>Porting to Non-Intel platforms</emphasis></para>
-
- <para>Cross-platform FreeBSD issues, general discussion and
- proposals for non-Intel FreeBSD ports. This is a technical
- mailing list for which strictly technical content is
- expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-POLICY</term>
-
- <listitem>
- <para><emphasis>Core team policy decisions</emphasis></para>
-
- <para>This is a low volume, read-only mailing list for FreeBSD
- Core Team Policy decisions.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-PORTS</term>
-
- <listitem>
- <para><emphasis>Discussion of
- <quote>ports</quote></emphasis></para>
-
- <para>Discussions concerning FreeBSD's <quote>ports
- collection</quote> (<filename>/usr/ports</filename>), proposed
- ports, modifications to ports collection infrastructure and
- general coordination efforts. This is a technical mailing list
- for which strictly technical content is expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-QUESTIONS</term>
-
- <listitem>
- <para><emphasis>User questions</emphasis></para>
-
- <para>This is the mailing list for questions about FreeBSD. You
- should not send <quote>how to</quote> questions to the technical
- lists unless you consider the question to be pretty
- technical.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-QUESTIONS-DIGEST</term>
-
- <listitem>
- <para><emphasis>User questions</emphasis></para>
-
- <para>This is the digest version of the freebsd-questions mailing
- list. The digest consists of all messages sent to
- freebsd-questions bundled together and mailed out as a single
- message.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SCSI</term>
-
- <listitem>
- <para><emphasis>SCSI subsystem</emphasis></para>
-
- <para>This is the mailing list for people working on the scsi
- subsystem for FreeBSD. This is a technical mailing list for
- which strictly technical content is expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SECURITY</term>
-
- <listitem>
- <para><emphasis>Security issues</emphasis></para>
-
- <para>FreeBSD computer security issues (DES, Kerberos, known
- security holes and fixes, etc). This is a technical mailing
- list for which strictly technical content is expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SECURITY-NOTIFICATIONS</term>
-
- <listitem>
- <para><emphasis>Security Notifications</emphasis></para>
-
- <para>Notifications of FreeBSD security problems and
- fixes. This is not a discussion list. The discussion
- list is FreeBSD-security.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SMALL</term>
-
- <listitem>
- <para><emphasis>Using FreeBSD in embedded
- applications</emphasis></para>
-
- <para>This list discusses topics related to unusually small and
- embedded FreeBSD installations. This is a technical mailing
- list for which strictly technical content is expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-STABLE</term>
-
- <listitem>
- <para><emphasis>Discussions about the use of
- FreeBSD-stable</emphasis></para>
-
- <para>This is the mailing list for users of freebsd-stable. It
- includes warnings about new features coming out in -stable that
- will affect the users, and instructions on steps that must be
- taken to remain -stable. Anyone running <quote>stable</quote>
- should subscribe to this list. This is a technical mailing list
- for which strictly technical content is expected.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-USER-GROUPS</term>
-
- <listitem>
- <para><emphasis>User Group Coordination List</emphasis></para>
-
- <para>This is the mailing list for the coordinators from each of
- the local area Users Groups to discuss matters with each other
- and a designated individual from the Core Team. This mail list
- should be limited to meeting synopsis and coordination of
- projects that span User Groups.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1 id="eresources-news">
- <title>Usenet Newsgroups</title>
-
- <para>In addition to two FreeBSD specific newsgroups, there are many
- others in which FreeBSD is discussed or are otherwise relevant to
- FreeBSD users. <ulink
- url="http://minnie.cs.adfa.edu.au/BSD-info/bsdnews_search.html">Keyword
- searchable archives</ulink> are available for some of these newsgroups
- from courtesy of Warren Toomey <email>wkt@cs.adfa.edu.au</email>.</para>
-
- <sect2>
- <title>BSD Specific Newsgroups</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Other Unix Newsgroups of Interest</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="news:comp.unix">comp.unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.questions">comp.unix.questions</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.admin">comp.unix.admin</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.programmer">comp.unix.programmer</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.shell">comp.unix.shell</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.user-friendly">comp.unix.user-friendly</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.security.unix">comp.security.unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.sources.unix">comp.sources.unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.advocacy">comp.unix.advocacy</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.misc">comp.unix.misc</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.bugs.4bsd">comp.bugs.4bsd</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.bugs.4bsd.ucb-fixes">comp.bugs.4bsd.ucb-fixes</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.unix.bsd">comp.unix.bsd</ulink></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>X Window System</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="news:comp.windows.x.i386unix">comp.windows.x.i386unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.windows.x">comp.windows.x</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.windows.x.apps">comp.windows.x.apps</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.windows.x.announce">comp.windows.x.announce</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.windows.x.intrinsics">comp.windows.x.intrinsics</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.windows.x.motif">comp.windows.x.motif</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.windows.x.pex">comp.windows.x.pex</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="news:comp.emulators.ms-windows.wine">comp.emulators.ms-windows.wine</ulink></para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="eresources-web">
- <title>World Wide Web Servers</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink>
- &mdash; Central Server.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.au.FreeBSD.org/">http://www.au.FreeBSD.org/</ulink> &mdash; Australia/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.au.FreeBSD.org/">http://www2.au.FreeBSD.org/</ulink> &mdash; Australia/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www3.au.FreeBSD.org/">http://www3.au.FreeBSD.org/</ulink> &mdash; Australia/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://freebsd.itworks.com.au/">http://freebsd.itworks.com.au/</ulink> &mdash; Australia/4.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.br.FreeBSD.org/www.freebsd.org/">http://www.br.FreeBSD.org/www.freebsd.org/</ulink> &mdash; Brazil/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.br.FreeBSD.org/www.freebsd.org/">http://www2.br.FreeBSD.org/www.freebsd.org/</ulink> &mdash; Brazil/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www3.br.FreeBSD.org/">http://www3.br.FreeBSD.org/</ulink> &mdash; Brazil/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.bg.FreeBSD.org/">http://www.bg.FreeBSD.org/</ulink> &mdash; Bulgaria.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ca.FreeBSD.org/">http://www.ca.FreeBSD.org/</ulink> &mdash; Canada/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.ca.FreeBSD.org/">http://www2.ca.FreeBSD.org/</ulink> &mdash; Canada/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www3.ca.FreeBSD.org/">http://www3.ca.FreeBSD.org/</ulink> &mdash; Canada/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.cn.FreeBSD.org/">http://www.cn.FreeBSD.org/</ulink> &mdash; China.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.cz.FreeBSD.org/">http://www.cz.FreeBSD.org/</ulink> &mdash; Czech Republic/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.cz.FreeBSD.org/">http://www2.cz.FreeBSD.org/</ulink> &mdash; Czech Republic/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.dk.FreeBSD.org/">http://www.dk.FreeBSD.org/</ulink> &mdash; Denmark.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ee.FreeBSD.org/">http://www.ee.FreeBSD.org/</ulink> &mdash; Estonia.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.fi.FreeBSD.org/">http://www.fi.FreeBSD.org/</ulink> &mdash; Finland.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.fr.FreeBSD.org/">http://www.fr.FreeBSD.org/</ulink> &mdash; France.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.de.FreeBSD.org/">http://www.de.FreeBSD.org/</ulink> &mdash; Germany/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www1.de.FreeBSD.org/">http://www1.de.FreeBSD.org/</ulink> &mdash; Germany/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.de.FreeBSD.org/">http://www2.de.FreeBSD.org/</ulink> &mdash; Germany/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.gr.FreeBSD.org/">http://www.gr.FreeBSD.org/</ulink> &mdash; Greece.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.hu.FreeBSD.org/">http://www.hu.FreeBSD.org/</ulink> &mdash; Hungary.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.is.FreeBSD.org/">http://www.is.FreeBSD.org/</ulink> &mdash; Iceland.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ie.FreeBSD.org/">http://www.ie.FreeBSD.org/</ulink> &mdash; Ireland.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.jp.FreeBSD.org/www.FreeBSD.org/">http://www.jp.FreeBSD.org/www.FreeBSD.org/</ulink> &mdash; Japan.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.kr.FreeBSD.org/">http://www.kr.FreeBSD.org/</ulink> &mdash; Korea/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.kr.FreeBSD.org/">http://www2.kr.FreeBSD.org/</ulink> &mdash; Korea/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.lv.FreeBSD.org/">http://www.lv.FreeBSD.org/</ulink> &mdash; Latvia.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://rama.asiapac.net/freebsd/">http://rama.asiapac.net/freebsd/</ulink> &mdash; Malaysia.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.nl.FreeBSD.org/">http://www.nl.FreeBSD.org/</ulink> &mdash; Netherlands/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.nl.FreeBSD.org/">http://www2.nl.FreeBSD.org/</ulink> &mdash; Netherlands/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.no.FreeBSD.org/">http://www.no.FreeBSD.org/</ulink> &mdash; Norway.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.nz.FreeBSD.org/">http://www.nz.FreeBSD.org/</ulink> &mdash; New Zealand.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.pl.FreeBSD.org/">http://www.pl.FreeBSD.org/</ulink> &mdash; Poland/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.pl.FreeBSD.org/">http://www2.pl.FreeBSD.org/</ulink> &mdash; Poland/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.pt.FreeBSD.org/">http://www.pt.FreeBSD.org/</ulink> &mdash; Portugal/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.pt.FreeBSD.org/">http://www2.pt.FreeBSD.org/</ulink> &mdash; Portugal/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www3.pt.FreeBSD.org/">http://www3.pt.FreeBSD.org/</ulink> &mdash; Portugal/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ro.FreeBSD.org/">http://www.ro.FreeBSD.org/</ulink> &mdash; Romania.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ru.FreeBSD.org/">http://www.ru.FreeBSD.org/</ulink> &mdash; Russia/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.ru.FreeBSD.org/">http://www2.ru.FreeBSD.org/</ulink> &mdash; Russia/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www3.ru.FreeBSD.org/">http://www3.ru.FreeBSD.org/</ulink> &mdash; Russia/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www4.ru.FreeBSD.org/">http://www4.ru.FreeBSD.org/</ulink> &mdash; Russia/4.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://freebsd.s1web.com/">http://freebsd.s1web.com/</ulink> &mdash; Singapore.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.sk.FreeBSD.org/">http://www.sk.FreeBSD.org/</ulink> &mdash; Slovak Republic.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.si.FreeBSD.org/">http://www.si.FreeBSD.org/</ulink> &mdash; Slovenia.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.es.FreeBSD.org/">http://www.es.FreeBSD.org/</ulink> &mdash; Spain.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.za.FreeBSD.org/">http://www.za.FreeBSD.org/</ulink> &mdash; South Africa/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.za.FreeBSD.org/">http://www2.za.FreeBSD.org/</ulink> &mdash; South Africa/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.se.FreeBSD.org/">http://www.se.FreeBSD.org/</ulink> &mdash; Sweden.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ch.FreeBSD.org/">http://www.ch.FreeBSD.org/</ulink> &mdash; Switzerland.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.tw.FreeBSD.org/www.freebsd.org/data/">http://www.tw.FreeBSD.org/www.freebsd.org/data/</ulink> &mdash; Taiwan.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.tr.FreeBSD.org/">http://www.tr.FreeBSD.org/</ulink> &mdash; Turkey.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ua.FreeBSD.org/www.freebsd.org/">http://www.ua.FreeBSD.org/www.freebsd.org/</ulink> &mdash; Ukraine/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.ua.FreeBSD.org/">http://www2.ua.FreeBSD.org/</ulink> &mdash; Ukraine/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www4.ua.FreeBSD.org/">http://www4.ua.FreeBSD.org/</ulink> &mdash; Ukraine/Crimea.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.uk.FreeBSD.org/">http://www.uk.FreeBSD.org/</ulink> &mdash; United Kingdom/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.uk.FreeBSD.org/">http://www2.uk.FreeBSD.org/</ulink> &mdash; United Kingdom/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www3.uk.FreeBSD.org/">http://www3.uk.FreeBSD.org/</ulink> &mdash; United Kingdom/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www6.FreeBSD.org/">http://www6.FreeBSD.org/</ulink> &mdash; USA/Oregon.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www2.FreeBSD.org/">http://www2.FreeBSD.org/</ulink> &mdash; USA/Texas.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="eresources-email">
- <title>Email Addresses</title>
-
- <para>The following user groups provide FreeBSD related email addresses
- for their members. The listed administrator reserves the right to
- revoke the address if it is abused in any way.</para>
-
- <informaltable>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Domain</entry>
- <entry>Facilities</entry>
- <entry>User Group</entry>
- <entry>Administrator</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>ukug.uk.FreeBSD.org</entry>
- <entry>Forwarding only</entry>
- <entry><email>freebsd-users@uk.FreeBSD.org</email></entry>
- <entry>Lee Johnston
- <email>lee@uk.FreeBSD.org</email></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-
- <sect1 id="eresources-shell">
- <title>Shell Accounts</title>
-
- <para>The following user groups provide shell accounts for people who are
- actively supporting the FreeBSD project. The listed administrator
- reserves the right to cancel the account if it is abused in any
- way.</para>
-
- <informaltable>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Host</entry>
- <entry>Access</entry>
- <entry>Facilities</entry>
- <entry>Administrator</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>storm.uk.FreeBSD.org</entry>
- <entry>SSH only</entry>
- <entry>Read-only cvs, personal web space, email</entry>
- <entry>&a.brian</entry>
- </row>
-
- <row>
- <entry>dogma.freebsd-uk.eu.org</entry>
- <entry>Telnet/FTP/SSH</entry>
- <entry>E-Mail, Web space, Anonymous FTP</entry>
- <entry>Lee Johnston
- <email>lee@uk.FreeBSD.org</email></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/hw/chapter.sgml b/en_US.ISO8859-1/books/handbook/hw/chapter.sgml
deleted file mode 100644
index cf890d86b3..0000000000
--- a/en_US.ISO8859-1/books/handbook/hw/chapter.sgml
+++ /dev/null
@@ -1,5854 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/hw/chapter.sgml,v 1.35 2000/07/24 09:37:46 alex Exp $
--->
-
-<appendix id="hw">
- <title>PC Hardware compatibility</title>
-
- <para>Issues of hardware compatibility are among the most troublesome in the
- computer industry today and FreeBSD is by no means immune to trouble. In
- this respect, FreeBSD's advantage of being able to run on inexpensive
- commodity PC hardware is also its liability when it comes to support for
- the amazing variety of components on the market. While it would be
- impossible to provide a exhaustive listing of hardware that FreeBSD
- supports, this section serves as a catalog of the device drivers included
- with FreeBSD and the hardware each drivers supports. Where possible and
- appropriate, notes about specific products are included. You may also
- want to refer to <link linkend="kernelconfig-config">the kernel
- configuration file</link> section in this handbook for a list of
- supported devices.</para>
-
- <para>As FreeBSD is a volunteer project without a funded testing department,
- we depend on you, the user, for much of the information contained in this
- catalog. If you have direct experience of hardware that does or does not
- work with FreeBSD, please let us know by sending e-mail to the &a.doc;.
- Questions about supported hardware should be directed to the &a.questions;
- (see <link linkend="eresources-mail">Mailing Lists</link> for more
- information). When submitting information or asking a question, please
- remember to specify exactly what version of FreeBSD you are using and
- include as many details of your hardware as possible.</para>
-
- <sect1>
- <title>Resources on the Internet</title>
-
- <para>The following links have proven useful in selecting hardware. Though
- some of what you see won't necessarily be specific (or even applicable)
- to FreeBSD, most of the hardware information out there is OS
- independent. Please check with the FreeBSD hardware guide to make sure
- that your chosen configuration is supported before making any
- purchases.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.tomshardware.com/">The Pentium Systems
- Hardware Performance Guide</ulink></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="hw-configs">
- <title>Sample Configurations</title>
-
- <para>The following list of sample hardware configurations by no means
- constitutes an endorsement of a given hardware vendor or product by
- <emphasis>The FreeBSD Project</emphasis>. This information is provided
- only as a public service and merely catalogs some of the experiences
- that various individuals have had with different hardware combinations.
- Your mileage may vary. Slippery when wet. Beware of dog.</para>
-
- <sect2 id="hw-jordans-picks">
- <title>Jordan's Picks</title>
-
- <para>I have had fairly good luck building workstation and server
- configurations with the following components. I can't guarantee that
- you will too, nor that any of the companies here will remain
- <quote>best buys</quote> forever. I will try, when I can, to keep this
- list up-to-date but cannot obviously guarantee that it will be at any
- given time.</para>
-
- <sect3 id="hw-mb">
- <title>Motherboards</title>
-
- <para>For Pentium Pro (P6) systems, I'm quite fond of the <ulink
- url="http://www.tyan.com/html/products.html">Tyan</ulink> S1668
- dual-processor motherboard as well as the Intel PR440FX motherboard
- with on-board SCSI WIDE and 100/10MB Intel EtherExpress NIC. You
- can build a dandy little single or dual processor system (which is
- supported in FreeBSD 3.0) for very little cost now that the Pentium
- Pro 180/256K chips have fallen so greatly in price, but no telling
- how much longer this will last.</para>
-
- <para>For the Pentium II, I'm rather partial to the <ulink
- url="http://www.asus.com.tw/">ASUS</ulink> <ulink
- url="http://www.asus.com.tw/Products/Motherboard/Pentiumpro/P2l97-s/index.html">P2l97-S</ulink>
- motherboard with the on-board Adaptec SCSI WIDE controller.</para>
-
- <para>For Pentium machines, the ASUS <ulink
- url="http://www.asus.com.tw/Products/Motherboard/Pentium/P55tp4/index.html">P55T2P4</ulink>
- motherboard appears to be a good choice for mid-to-high range
- Pentium server and workstation systems.</para>
-
- <para>Those wishing to build more fault-tolerant systems should also
- be sure to use Parity memory or, for truly 24/7 applications, ECC
- memory.</para>
-
- <note>
- <para>ECC memory does involve a slight performance trade-off (which
- may or may not be noticeable depending on your application) but
- buys you significantly increased fault-tolerance to memory
- errors.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Disk Controllers</title>
-
- <para>This one is a bit trickier, and while I used to recommend the
- <ulink url="http://www.buslogic.com/">Buslogic</ulink> controllers
- unilaterally for everything from ISA to PCI, now I tend to lean
- towards the <ulink url="http://www.adaptec.com/">Adaptec</ulink>
- 1542CF for ISA, Buslogic Bt747c for EISA and Adaptec 2940UW for
- PCI.</para>
-
- <para>The NCR/Symbios cards for PCI have also worked well for me,
- though you need to make sure that your motherboard supports the
- BIOS-less model if you're using one of those (if your card has
- nothing which looks even vaguely like a ROM chip on it, you've
- probably got one which expects its BIOS to be on your
- motherboard).</para>
-
- <para>If you should find that you need more than one SCSI controller
- in a PCI machine, you may wish to consider conserving your scarce
- PCI bus resources by buying the Adaptec 3940 card, which puts two
- SCSI controllers (and internal busses) in a single slot.</para>
-
- <note>
- <para>There are two types of 3940 on the market&mdash;the older
- model with AIC 7880 chips on it, and the newer one with AIC 7895
- chips. The newer model requires <ulink
- url="http://www.FreeBSD.org/pub/FreeBSD/development/cam/">CAM</ulink>
- support which is not yet part of FreeBSD&mdash;you have to add it,
- or install from one of the CAM binary snapshot release.</para>
- </note>
- </sect3>
-
- <sect3 id="hw-disks">
- <title>Disk drives</title>
-
- <para>In this particular game of Russian roulette, I'll make few
- specific recommendations except to say <quote>SCSI over IDE whenever
- you can afford it.</quote> Even in small desktop configurations, SCSI
- often makes more sense since it allows you to easily migrate drives
- from server to desktop as falling drive prices make it economical to
- do so. If you have more than one machine to administer then think
- of it not simply as storage, think of it as a food chain! For a
- serious server configuration, there's not even any
- argument&mdash;use SCSI equipment and good cables.</para>
- </sect3>
-
- <sect3 id="hw-jordans-picks-cdrom">
- <title>CDROM drives</title>
-
- <para>My SCSI preferences extend to SCSI CDROM drives as well, and
- while the <ulink url="http://www.toshiba.com/">Toshiba</ulink> drives
- have always been favorites of mine (in whatever speed is hot that
- week), I'm still fond of my good old <ulink
- url="http://www.plextor.com/">Plextor</ulink> PX-12CS drive. It's
- only a 12 speed, but it's offered excellent performance and
- reliability.</para>
-
- <para>Generally speaking, most SCSI CDROM drives I've seen have been
- of pretty solid construction and you probably won't go wrong with an
- HP or NEC SCSI CDROM drive either. SCSI CDROM prices also appear to
- have dropped considerably in the last few months and are now quite
- competitive with IDE CDROMs while remaining a technically superior
- solution. I now see no reason whatsoever to settle for an IDE CDROM
- drive if given a choice between the two.</para>
- </sect3>
-
- <sect3 id="hw-worm">
- <title>CD Recordable (WORM) drives</title>
-
- <para>At the time of this writing, FreeBSD supports 3 types of CDR
- drives (though I believe they all ultimately come from Phillips
- anyway): The Phillips CDD 522 (Acts like a Plasmon), the PLASMON
- RF4100 and the HP 6020i. I myself use the HP 6020i for burning
- CDROMs (in 2.2 and later releases&mdash;it does not work with
- earlier releases of the SCSI code) and it works very well. See
- <ulink
- url="file:/usr/share/examples/worm">/usr/share/examples/worm</ulink>
- on your 2.2 system for example scripts used to created ISO9660
- filesystem images (with RockRidge extensions) and burn them onto an
- HP6020i CDR.</para>
- </sect3>
-
- <sect3 id="hw-tape">
- <title>Tape drives</title>
-
- <para>I've had pretty good luck with both <ulink
- url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">8mm
- drives</ulink> from <ulink
- url="http://www.exabyte.com/">Exabyte</ulink> and <ulink
- url="http://www-dmo.external.hp.com:80/tape/_cpb0001.htm">4mm
- (DAT)</ulink> drives from <ulink
- url="http://www.hp.com/">HP</ulink>.</para>
-
- <para>For backup purposes, I'd have to give the higher recommendation
- to the Exabyte due to the more robust nature (and higher storage
- capacity) of 8mm tape.</para>
- </sect3>
-
- <sect3 id="hw-video">
- <title>Video Cards</title>
-
- <para>If you can also afford to buy a commercial X server for
- US&#36;99 from <ulink url="http://www.xig.com/">Xi Graphics, Inc.
- (formerly X Inside, Inc)</ulink> then I can heartily recommend the
- <ulink url="http://www.matrox.com/">Matrox</ulink> <ulink
- url="http://www.matrox.com/mgaweb/brochure.htm">Millenium
- II</ulink> card. Note that support for this card is also
- excellent with the <ulink
- url="http://www.xfree86.org/">XFree86</ulink> server, which is now
- at version 3.3.2.</para>
-
- <para>You also certainly can't go wrong with one of <ulink
- url="http://www.nine.com/">Number 9's</ulink> cards &mdash; their
- S3 Vision 868 and 968 based cards (the 9FX series) also being quite
- fast and very well supported by XFree86's S3 server. You can also
- pick up their Revolution 3D cards very cheaply these days,
- especially if you require a lot of video memory.</para>
- </sect3>
-
- <sect3 id="hw-monitors">
- <title>Monitors</title>
-
- <para>I have had very good luck with the <ulink
- url="http://cons3.sel.sony.com/SEL/ccpg/display/ms17se2.html">Sony
- Multiscan 17seII monitors</ulink>, as have I with the Viewsonic
- offering in the same (Trinitron) tube. For larger than 17", all I
- can recommend at the time of this writing is to not spend any less
- than U.S. &#36;2,000 for a 21" monitor or &#36;1,700 for a 20"
- monitor if that's what you really need. There are good monitors
- available in the &gt;=20" range and there are also cheap monitors in
- the &gt;=20" range. Unfortunately, very few are both cheap and
- good!</para>
- </sect3>
-
- <sect3 id="hw-networking">
- <title>Networking</title>
-
- <para>I can recommend the Intel EtherExpress Pro/100B card first and
- foremost, followed by the <ulink
- url="http://www.smc.com/">SMC</ulink> Ultra 16 controller for any
- ISA application and the SMC EtherPower or Compex ENET32 cards for
- slightly cheaper PCI based networking. In general, any PCI NIC
- based around DEC's DC21041 Ethernet controller chip, such as the
- Znyx ZX342 or DEC DE435/450, will generally work quite well and can
- frequently be found in 2-port and 4-port version (useful for
- firewalls and routers), though the Pro/100MB card has the edge when
- it comes to providing the best performance with lower
- overhead.</para>
-
- <para>If what you're looking for is the cheapest possible solution
- then almost any NE2000 clone will do a fine job for very little
- cost.</para>
- </sect3>
-
- <sect3 id="hw-serial">
- <title>Serial</title>
-
- <para>If you're looking for high-speed serial networking solutions,
- then <ulink url="http://www.dgii.com/">Digi International</ulink>
- makes the <ulink
- url="http://www.dgii.com/prodprofiles/profiles-prices/digiprofiles/digispecs/sync570.html">SYNC/570</ulink>
- series, with drivers now in FreeBSD-CURRENT. <ulink
- url="http://www.etinc.com/">Emerging Technologies</ulink> also
- manufactures a board with T1/E1 capabilities, using software they
- provide. I have no direct experience using either product,
- however.</para>
-
- <para>multiport card options are somewhat more numerous, though it has
- to be said that FreeBSD's support for <ulink
- url="http://www.cyclades.com/">Cyclades</ulink>'s products is
- probably the tightest, primarily as a result of that company's
- commitment to making sure that we are adequately supplied with
- evaluation boards and technical specs. I've heard that the
- Cyclom-16Ye offers the best price/performance, though I've not
- checked the prices lately. Other multiport cards I've heard good
- things about are the BOCA and AST cards, and <ulink
- url="http://www.stallion.com/">Stallion Technologies</ulink>
- apparently offers an unofficial driver for their cards at <ulink
- url="ftp://ftp.stallion.com/drivers/unsupported/freebsd/stalbsd-0.0.4.tar.gz">this</ulink>
- location.</para>
- </sect3>
-
- <sect3 id="hw-audio">
- <title>Audio</title>
-
- <para>I currently use a <ulink url="http://www.creaf.com/">Creative
- Labs</ulink> AWE32 though just about anything from Creative Labs
- will generally work these days. This is not to say that other types
- of sound cards don't also work, simply that I have little experience
- with them (I was a former GUS fan, but Gravis's sound card situation
- has been dire for some time).</para>
- </sect3>
-
- <sect3 id="hw-vgrabbers">
- <title>Video</title>
-
- <para>For video capture, there are two good choices &mdash; any card
- based on the Brooktree BT848 chip, such as the Hauppage or WinTV
- boards, will work very nicely with FreeBSD. Another board which
- works for me is the <ulink
- url="http://www.matrox.com/">Matrox</ulink> <ulink
- url="http://www.matrox.com/imgweb/meteor.htm">Meteor</ulink> card.
- FreeBSD also supports the older video spigot card from Creative
- Labs, but those are getting somewhat difficult to find. Note that
- the Meteor frame grabber card <emphasis>will not work</emphasis>
- with motherboards based on the 440FX chipset! See the <link
- linkend="hw-mb">motherboard reference</link> section for details.
- In such cases, it's better to go with a BT848 based board.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="hw-core">
- <title>Core/Processing</title>
-
- <sect2>
- <title>Motherboards, busses, and chipsets</title>
-
- <sect3>
- <title>* ISA</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>* EISA</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>* VLB</title>
-
- <para></para>
- </sect3>
-
- <sect3 id="hw-mb-pci">
- <title>PCI</title>
-
- <para><emphasis>Contributed by &a.obrien; from postings by
- &a.rgrimes;. 25 April 1995.</emphasis></para>
-
- <para><emphasis>Continuing updates by &a.jkh;.</emphasis> Last
- update on <emphasis>26 August 1996.</emphasis></para>
-
- <para>Of the Intel PCI chip sets, the following list describes various
- types of known-brokenness and the degree of breakage, listed from
- worst to best.</para>
-
- <variablelist>
- <varlistentry>
- <term>Mercury:</term>
-
- <listitem>
- <para>Cache coherency problems, especially if there are ISA bus
- masters behind the ISA to PCI bridge chip. Hardware flaw, only
- known work around is to turn the cache off.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Saturn-I <emphasis>(ie, 82424ZX at rev 0, 1 or
- 2)</emphasis>:</term>
-
- <listitem>
- <para>Write back cache coherency problems. Hardware flaw, only
- known work around is to set the external cache to
- write-through mode. Upgrade to Saturn-II.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Saturn-II <emphasis>(ie, 82424ZX at rev 3 or
- 4)</emphasis>:</term>
-
- <listitem>
- <para>Works fine, but many MB manufactures leave out the
- external dirty bit SRAM needed for write back operation.
- You can work around this either by running it in write
- through mode, or get the dirty bit SRAM installed (I
- have these for the ASUS PCI/I-486SP3G rev 1.6 and later
- boards).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Neptune:</term>
-
- <listitem>
- <para>Can not run more than 2 bus master devices. Admitted Intel
- design flaw. Workarounds include do not run more than 2 bus
- masters, special hardware design to replace the PCI bus
- arbiter (appears on Intel Altair board and several other Intel
- server group MB's). And of course Intel's official answer,
- move to the Triton chip set, we <quote>fixed it
- there</quote>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Triton <emphasis>(ie, 430FX)</emphasis>:</term>
-
- <listitem>
- <para>No known cache coherency or bus master problems, chip set
- does not implement parity checking. Workaround for parity
- issue. Use Triton-II based motherboards if you have the
- choice.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Triton-II <emphasis>(ie, 430HX)</emphasis>:</term>
-
- <listitem>
- <para>All reports on motherboards using this chipset have been
- favorable so far. No known problems.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Orion:</term>
-
- <listitem>
- <para>Early versions of this chipset suffered from a PCI
- write-posting bug which can cause noticeable performance
- degradation in applications where large amounts of PCI bus
- traffic is involved. B0 stepping or later revisions of the
- chipset fixed this problem.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink
- url="http://developer.intel.com/design/pcisets/desktop.htm#440FX">440FX</ulink>:</term>
-
- <listitem>
- <para>This <ulink
- url="http://www.intel.com/procs/ppro/index.htm">Pentium
- Pro</ulink> support chipset seems to work well, and does not
- suffer from any of the early Orion chipset problems. It also
- supports a wider variety of memory, including ECC and parity.
- The only known problem with it is that the Matrox Meteor frame
- grabber card doesn't like it.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
- </sect2>
-
- <sect2>
- <title>CPUs/FPUs</title>
-
- <para><emphasis>Contributed by &a.asami;. 26 December
- 1997.</emphasis></para>
-
- <sect3>
- <title>P6 class (Pentium Pro/Pentium II)</title>
-
- <para>Both the Pentium Pro and Pentium II work fine with FreeBSD. In
- fact, our main FTP site <ulink
- url="ftp://ftp.FreeBSD.org/">ftp.FreeBSD.org</ulink> (also known
- as "<filename>ftp.cdrom.com</filename>", world's largest ftp site)
- runs FreeBSD on a Pentium Pro. <ulink
- url="ftp://ftp.cdrom.com/archive-info/wcarchive.txt">Configurations
- details</ulink> are available for interested parties.</para>
- </sect3>
-
- <sect3>
- <title>Pentium class</title>
-
- <para>The Intel Pentium (P54C), Pentium MMX (P55C), AMD K6 and
- Cyrix/IBM 6x86MX processors are all reported to work with FreeBSD.
- I will not go into details of which processor is faster than what,
- there are millions of web sites on the Internet that tells you one
- way or another. <!-- smiley --><emphasis>:)</emphasis></para>
-
- <note>
- <para>Various CPUs have different voltage/cooling requirements. Make
- sure your motherboard can supply the exact voltage needed by the
- CPU. For instance, many recent MMX chips require split voltage
- (e.g., 2.9V core, 3.3V I/O). Also, some AMD and Cyrix/IBM chips
- run hotter than Intel chips. In that case, make sure you have
- good heatsink/fans (you can get the list of certified parts from
- their web pages).</para>
- </note>
-
- <sect4>
- <title>Clock speeds</title>
-
- <para><emphasis>Contributed by &a.rgrimes;. 1 October
- 1996.</emphasis></para>
-
- <para><emphasis>Updated by &a.asami;. 27 December
- 1997.</emphasis></para>
-
- <para>Pentium class machines use different clock speeds for the
- various parts of the system. These being the speed of the CPU,
- external memory bus, and the PCI bus. It is not always true that
- a <quote>faster</quote> processor will make a system faster than a
- <quote>slower</quote> one, due to the various clock speeds used.
- Below is a table showing the differences:</para>
-
- <informaltable frame="none">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Rated CPU MHz</entry>
- <entry>External Clock and Memory Bus MHz</entry>
- <entry>External to Internal Clock Multiplier</entry>
- <entry>PCI Bus Clock MHz</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>60</entry>
- <entry>60</entry>
- <entry>1.0</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>66</entry>
- <entry>66</entry>
- <entry>1.0</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>75</entry>
- <entry>50</entry>
- <entry>1.5</entry>
- <entry>25</entry>
- </row>
-
- <row>
- <entry>90</entry>
- <entry>60</entry>
- <entry>1.5</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>100</entry>
- <entry>50</entry>
- <entry>2</entry>
- <entry>25</entry>
- </row>
-
- <row>
- <entry>100</entry>
- <entry>66</entry>
- <entry>1.5</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>120</entry>
- <entry>60</entry>
- <entry>2</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>133</entry>
- <entry>66</entry>
- <entry>2</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>150</entry>
- <entry>60</entry>
- <entry>2.5</entry>
- <entry>30 (Intel, AMD)</entry>
- </row>
-
- <row>
- <entry>150</entry>
- <entry>75</entry>
- <entry>2</entry>
- <entry>37.5 (Cyrix/IBM 6x86MX)</entry>
- </row>
-
- <row>
- <entry>166</entry>
- <entry>66</entry>
- <entry>2.5</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>180</entry>
- <entry>60</entry>
- <entry>3</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>200</entry>
- <entry>66</entry>
- <entry>3</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>233</entry>
- <entry>66</entry>
- <entry>3.5</entry>
- <entry>33</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>66MHz may actually be 66.667MHz, but don't assume so.</para>
-
- <para>The Pentium 100 can be run at either 50MHz external clock
- with a multiplier of 2 or at 66MHz and a multiplier of
- 1.5.</para>
- </note>
-
- <para>As can be seen the best parts to be using are the 100, 133,
- 166, 200 and 233, with the exception that at a multiplier of 3 or
- more the CPU starves for memory.</para>
- </sect4>
-
- <sect4>
- <title>The AMD K6 Bug</title>
-
- <para>In 1997, there have been reports of the AMD K6 seg faulting
- during heavy compilation. That problem has been fixed in 3Q '97.
- According to reports, K6 chips with date mark <quote>9733</quote>
- or larger (i.e., manufactured in the 33rd week of '97 or later) do
- not have this bug.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>* 486 class</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>* 386 class</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>286 class</title>
-
- <para>Sorry, FreeBSD does not run on 80286 machines. It is nearly
- impossible to run today's large full-featured unices on such
- hardware.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>* Memory</title>
-
- <para>The minimum amount of memory you must have to install FreeBSD is 5
- MB. Once your system is up and running you can <link
- linkend="kernelconfig-building">build a custom kernel</link> that
- will use less memory. If you use the <filename>boot4.flp</filename>
- you can get away with having only 4 MB.</para>
- </sect2>
-
- <sect2>
- <title>* BIOS</title>
-
- <para></para>
- </sect2>
- </sect1>
-
- <sect1 id="hw-io">
- <title>Input/Output Devices</title>
-
- <sect2>
- <title>* Video cards</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Sound cards</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>Serial ports and multiport cards</title>
-
- <sect3 id="uart">
- <title>The UART: What it is and how it works</title>
-
- <para><emphasis>Copyright &copy; 1996 &a.uhclem;, All Rights
- Reserved. 13 January 1996.</emphasis></para>
-
- <para>The Universal Asynchronous Receiver/Transmitter (UART)
- controller is the key component of the serial communications
- subsystem of a computer. The UART takes bytes of data and transmits
- the individual bits in a sequential fashion. At the destination, a
- second UART re-assembles the bits into complete bytes.</para>
-
- <para>Serial transmission is commonly used with modems and for
- non-networked communication between computers, terminals and other
- devices.</para>
-
- <para>There are two primary forms of serial transmission: Synchronous
- and Asynchronous. Depending on the modes that are supported by the
- hardware, the name of the communication sub-system will usually
- include a <literal>A</literal> if it supports Asynchronous
- communications, and a <literal>S</literal> if it supports
- Synchronous communications. Both forms are described below.</para>
-
- <para>Some common acronyms are:
-
- <blockquote>
- <para>UART Universal Asynchronous
- Receiver/Transmitter</para>
- </blockquote>
-
- <blockquote>
- <para>USART Universal Synchronous-Asynchronous
- Receiver/Transmitter</para>
- </blockquote></para>
-
- <sect4>
- <title>Synchronous Serial Transmission</title>
-
- <para>Synchronous serial transmission requires that the sender and
- receiver share a clock with one another, or that the sender
- provide a strobe or other timing signal so that the receiver knows
- when to <quote>read</quote> the next bit of the data. In most
- forms of serial Synchronous communication, if there is no data
- available at a given instant to transmit, a fill character must be
- sent instead so that data is always being transmitted.
- Synchronous communication is usually more efficient because only
- data bits are transmitted between sender and receiver, and
- synchronous communication can be more more costly if extra wiring
- and circuits are required to share a clock signal between the
- sender and receiver.</para>
-
- <para>A form of Synchronous transmission is used with printers and
- fixed disk devices in that the data is sent on one set of wires
- while a clock or strobe is sent on a different wire. Printers and
- fixed disk devices are not normally serial devices because most
- fixed disk interface standards send an entire word of data for
- each clock or strobe signal by using a separate wire for each bit
- of the word. In the PC industry, these are known as Parallel
- devices.</para>
-
- <para>The standard serial communications hardware in the PC does not
- support Synchronous operations. This mode is described here for
- comparison purposes only.</para>
- </sect4>
-
- <sect4>
- <title>Asynchronous Serial Transmission</title>
-
- <para>Asynchronous transmission allows data to be transmitted
- without the sender having to send a clock signal to the receiver.
- Instead, the sender and receiver must agree on timing parameters
- in advance and special bits are added to each word which are used
- to synchronize the sending and receiving units.</para>
-
- <para>When a word is given to the UART for Asynchronous
- transmissions, a bit called the "Start Bit" is added to the
- beginning of each word that is to be transmitted. The Start Bit
- is used to alert the receiver that a word of data is about to be
- sent, and to force the clock in the receiver into synchronization
- with the clock in the transmitter. These two clocks must be
- accurate enough to not have the frequency drift by more than 10%
- during the transmission of the remaining bits in the word. (This
- requirement was set in the days of mechanical teleprinters and is
- easily met by modern electronic equipment.)</para>
-
- <para>After the Start Bit, the individual bits of the word of data
- are sent, with the Least Significant Bit (LSB) being sent first.
- Each bit in the transmission is transmitted for exactly the same
- amount of time as all of the other bits, and the receiver
- <quote>looks</quote> at the wire at approximately halfway through
- the period assigned to each bit to determine if the bit is a
- <literal>1</literal> or a <literal>0</literal>. For example, if
- it takes two seconds to send each bit, the receiver will examine
- the signal to determine if it is a <literal>1</literal> or a
- <literal>0</literal> after one second has passed, then it will
- wait two seconds and then examine the value of the next bit, and
- so on.</para>
-
- <para>The sender does not know when the receiver has
- <quote>looked</quote> at the value of the bit. The sender only
- knows when the clock says to begin transmitting the next bit of
- the word.</para>
-
- <para>When the entire data word has been sent, the transmitter may
- add a Parity Bit that the transmitter generates. The Parity Bit
- may be used by the receiver to perform simple error checking.
- Then at least one Stop Bit is sent by the transmitter.</para>
-
- <para>When the receiver has received all of the bits in the data
- word, it may check for the Parity Bits (both sender and receiver
- must agree on whether a Parity Bit is to be used), and then the
- receiver looks for a Stop Bit. If the Stop Bit does not appear
- when it is supposed to, the UART considers the entire word to be
- garbled and will report a Framing Error to the host processor when
- the data word is read. The usual cause of a Framing Error is that
- the sender and receiver clocks were not running at the same speed,
- or that the signal was interrupted.</para>
-
- <para>Regardless of whether the data was received correctly or not,
- the UART automatically discards the Start, Parity and Stop bits.
- If the sender and receiver are configured identically, these bits
- are not passed to the host.</para>
-
- <para>If another word is ready for transmission, the Start Bit for
- the new word can be sent as soon as the Stop Bit for the previous
- word has been sent.</para>
-
- <para>Because asynchronous data is <quote>self synchronizing</quote>,
- if there is no data to transmit, the transmission line can be
- idle.</para>
- </sect4>
-
- <sect4>
- <title>Other UART Functions</title>
-
- <para>In addition to the basic job of converting data from parallel
- to serial for transmission and from serial to parallel on
- reception, a UART will usually provide additional circuits for
- signals that can be used to indicate the state of the transmission
- media, and to regulate the flow of data in the event that the
- remote device is not prepared to accept more data. For example,
- when the device connected to the UART is a modem, the modem may
- report the presence of a carrier on the phone line while the
- computer may be able to instruct the modem to reset itself or to
- not take calls by asserting or disasserting one more more of these
- extra signals. The function of each of these additional signals is
- defined in the EIA RS232-C standard.</para>
- </sect4>
-
- <sect4>
- <title>The RS232-C and V.24 Standards</title>
-
- <para>In most computer systems, the UART is connected to circuitry
- that generates signals that comply with the EIA RS232-C
- specification. There is also a CCITT standard named V.24 that
- mirrors the specifications included in RS232-C.</para>
-
- <sect5>
- <title>RS232-C Bit Assignments (Marks and Spaces)</title>
-
- <para>In RS232-C, a value of <literal>1</literal> is called a
- <literal>Mark</literal> and a value of <literal>0</literal> is
- called a <literal>Space</literal>. When a communication line is
- idle, the line is said to be <quote>Marking</quote>, or
- transmitting continuous <literal>1</literal> values.</para>
-
- <para>The Start bit always has a value of <literal>0</literal> (a
- Space). The Stop Bit always has a value of <literal>1</literal>
- (a Mark). This means that there will always be a Mark (1) to
- Space (0) transition on the line at the start of every word,
- even when multiple word are transmitted back to back. This
- guarantees that sender and receiver can resynchronize their
- clocks regardless of the content of the data bits that are being
- transmitted.</para>
-
- <para>The idle time between Stop and Start bits does not have to
- be an exact multiple (including zero) of the bit rate of the
- communication link, but most UARTs are designed this way for
- simplicity.</para>
-
- <para>In RS232-C, the "Marking" signal (a <literal>1</literal>) is
- represented by a voltage between -2 VDC and -12 VDC, and a
- "Spacing" signal (a <literal>0</literal>) is represented by a
- voltage between 0 and +12 VDC. The transmitter is supposed to
- send +12 VDC or -12 VDC, and the receiver is supposed to allow
- for some voltage loss in long cables. Some transmitters in low
- power devices (like portable computers) sometimes use only +5
- VDC and -5 VDC, but these values are still acceptable to a
- RS232-C receiver, provided that the cable lengths are
- short.</para>
- </sect5>
-
- <sect5>
- <title>RS232-C Break Signal</title>
-
- <para>RS232-C also specifies a signal called a
- <literal>Break</literal>, which is caused by sending continuous
- Spacing values (no Start or Stop bits). When there is no
- electricity present on the data circuit, the line is considered
- to be sending <literal>Break</literal>.</para>
-
- <para>The <literal>Break</literal> signal must be of a duration
- longer than the time it takes to send a complete byte plus
- Start, Stop and Parity bits. Most UARTs can distinguish between
- a Framing Error and a Break, but if the UART cannot do this, the
- Framing Error detection can be used to identify Breaks.</para>
-
- <para>In the days of teleprinters, when numerous printers around
- the country were wired in series (such as news services), any
- unit could cause a <literal>Break</literal> by temporarily
- opening the entire circuit so that no current flowed. This was
- used to allow a location with urgent news to interrupt some
- other location that was currently sending information.</para>
-
- <para>In modern systems there are two types of Break signals. If
- the Break is longer than 1.6 seconds, it is considered a "Modem
- Break", and some modems can be programmed to terminate the
- conversation and go on-hook or enter the modems' command mode
- when the modem detects this signal. If the Break is smaller
- than 1.6 seconds, it signifies a Data Break and it is up to the
- remote computer to respond to this signal. Sometimes this form
- of Break is used as an Attention or Interrupt signal and
- sometimes is accepted as a substitute for the ASCII CONTROL-C
- character.</para>
-
- <para>Marks and Spaces are also equivalent to <quote>Holes</quote>
- and <quote>No Holes</quote> in paper tape systems.</para>
-
- <note>
- <para>Breaks cannot be generated from paper tape or from any
- other byte value, since bytes are always sent with Start and
- Stop bit. The UART is usually capable of generating the
- continuous Spacing signal in response to a special command
- from the host processor.</para>
- </note>
- </sect5>
-
- <sect5>
- <title>RS232-C DTE and DCE Devices</title>
-
- <para>The RS232-C specification defines two types of equipment:
- the Data Terminal Equipment (DTE) and the Data Carrier Equipment
- (DCE). Usually, the DTE device is the terminal (or computer),
- and the DCE is a modem. Across the phone line at the other end
- of a conversation, the receiving modem is also a DCE device and
- the computer that is connected to that modem is a DTE device.
- The DCE device receives signals on the pins that the DTE device
- transmits on, and vice versa.</para>
-
- <para>When two devices that are both DTE or both DCE must be
- connected together without a modem or a similar media translater
- between them, a NULL modem must be used. The NULL modem
- electrically re-arranges the cabling so that the transmitter
- output is connected to the receiver input on the other device,
- and vice versa. Similar translations are performed on all of
- the control signals so that each device will see what it thinks
- are DCE (or DTE) signals from the other device.</para>
-
- <para>The number of signals generated by the DTE and DCE devices
- are not symmetrical. The DTE device generates fewer signals for
- the DCE device than the DTE device receives from the DCE.</para>
- </sect5>
-
- <sect5>
- <title>RS232-C Pin Assignments</title>
-
- <para>The EIA RS232-C specification (and the ITU equivalent, V.24)
- calls for a twenty-five pin connector (usually a DB25) and
- defines the purpose of most of the pins in that
- connector.</para>
-
- <para>In the IBM Personal Computer and similar systems, a subset
- of RS232-C signals are provided via nine pin connectors (DB9).
- The signals that are not included on the PC connector deal
- mainly with synchronous operation, and this transmission mode is
- not supported by the UART that IBM selected for use in the IBM
- PC.</para>
-
- <para>Depending on the computer manufacturer, a DB25, a DB9, or
- both types of connector may be used for RS232-C communications.
- (The IBM PC also uses a DB25 connector for the parallel printer
- interface which causes some confusion.)</para>
-
- <para>Below is a table of the RS232-C signal assignments in the
- DB25 and DB9 connectors.</para>
-
- <informaltable frame="none">
- <tgroup cols="7">
- <thead>
- <row>
- <entry>DB25 RS232-C Pin</entry>
- <entry>DB9 IBM PC Pin</entry>
- <entry>EIA Circuit Symbol</entry>
- <entry>CCITT Circuit Symbol</entry>
- <entry>Common Name</entry>
- <entry>Signal Source</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>1</entry>
- <entry>-</entry>
- <entry>AA</entry>
- <entry>101</entry>
- <entry>PG/FG</entry>
- <entry>-</entry>
- <entry>Frame/Protective Ground</entry>
- </row>
-
- <row>
- <entry>2</entry>
- <entry>3</entry>
- <entry>BA</entry>
- <entry>103</entry>
- <entry>TD</entry>
- <entry>DTE</entry>
- <entry>Transmit Data</entry>
- </row>
-
- <row>
- <entry>3</entry>
- <entry>2</entry>
- <entry>BB</entry>
- <entry>104</entry>
- <entry>RD</entry>
- <entry>DCE</entry>
- <entry>Receive Data</entry>
- </row>
-
- <row>
- <entry>4</entry>
- <entry>7</entry>
- <entry>CA</entry>
- <entry>105</entry>
- <entry>RTS</entry>
- <entry>DTE</entry>
- <entry>Request to Send</entry>
- </row>
-
- <row>
- <entry>5</entry>
- <entry>8</entry>
- <entry>CB</entry>
- <entry>106</entry>
- <entry>CTS</entry>
- <entry>DCE</entry>
- <entry>Clear to Send</entry>
- </row>
-
- <row>
- <entry>6</entry>
- <entry>6</entry>
- <entry>CC</entry>
- <entry>107</entry>
- <entry>DSR</entry>
- <entry>DCE</entry>
- <entry>Data Set Ready</entry>
- </row>
-
- <row>
- <entry>7</entry>
- <entry>5</entry>
- <entry>AV</entry>
- <entry>102</entry>
- <entry>SG/GND</entry>
- <entry>-</entry>
- <entry>Signal Ground</entry>
- </row>
-
- <row>
- <entry>8</entry>
- <entry>1</entry>
- <entry>CF</entry>
- <entry>109</entry>
- <entry>DCD/CD</entry>
- <entry>DCE</entry>
- <entry>Data Carrier Detect</entry>
- </row>
-
- <row>
- <entry>9</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>Reserved for Test</entry>
- </row>
-
- <row>
- <entry>10</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>Reserved for Test</entry>
- </row>
-
- <row>
- <entry>11</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>Reserved for Test</entry>
- </row>
-
- <row>
- <entry>12</entry>
- <entry>-</entry>
- <entry>CI</entry>
- <entry>122</entry>
- <entry>SRLSD</entry>
- <entry>DCE</entry>
- <entry>Sec. Recv. Line Signal Detector</entry>
- </row>
-
- <row>
- <entry>13</entry>
- <entry>-</entry>
- <entry>SCB</entry>
- <entry>121</entry>
- <entry>SCTS</entry>
- <entry>DCE</entry>
- <entry>Secondary Clear to Send</entry>
- </row>
-
- <row>
- <entry>14</entry>
- <entry>-</entry>
- <entry>SBA</entry>
- <entry>118</entry>
- <entry>STD</entry>
- <entry>DTE</entry>
- <entry>Secondary Transmit Data</entry>
- </row>
-
- <row>
- <entry>15</entry>
- <entry>-</entry>
- <entry>DB</entry>
- <entry>114</entry>
- <entry>TSET</entry>
- <entry>DCE</entry>
- <entry>Trans. Sig. Element Timing</entry>
- </row>
-
- <row>
- <entry>16</entry>
- <entry>-</entry>
- <entry>SBB</entry>
- <entry>119</entry>
- <entry>SRD</entry>
- <entry>DCE</entry>
- <entry>Secondary Received Data</entry>
- </row>
-
- <row>
- <entry>17</entry>
- <entry>-</entry>
- <entry>DD</entry>
- <entry>115</entry>
- <entry>RSET</entry>
- <entry>DCE</entry>
- <entry>Receiver Signal Element Timing</entry>
- </row>
-
- <row>
- <entry>18</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>141</entry>
- <entry>LOOP</entry>
- <entry>DTE</entry>
- <entry>Local Loopback</entry>
- </row>
-
- <row>
- <entry>19</entry>
- <entry>-</entry>
- <entry>SCA</entry>
- <entry>120</entry>
- <entry>SRS</entry>
- <entry>DTE</entry>
- <entry>Secondary Request to Send</entry>
- </row>
-
- <row>
- <entry>20</entry>
- <entry>4</entry>
- <entry>CD</entry>
- <entry>108.2</entry>
- <entry>DTR</entry>
- <entry>DTE</entry>
- <entry>Data Terminal Ready</entry>
- </row>
-
- <row>
- <entry>21</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>RDL</entry>
- <entry>DTE</entry>
- <entry>Remote Digital Loopback</entry>
- </row>
-
- <row>
- <entry>22</entry>
- <entry>9</entry>
- <entry>CE</entry>
- <entry>125</entry>
- <entry>RI</entry>
- <entry>DCE</entry>
- <entry>Ring Indicator</entry>
- </row>
-
- <row>
- <entry>23</entry>
- <entry>-</entry>
- <entry>CH</entry>
- <entry>111</entry>
- <entry>DSRS</entry>
- <entry>DTE</entry>
- <entry>Data Signal Rate Selector</entry>
- </row>
-
- <row>
- <entry>24</entry>
- <entry>-</entry>
- <entry>DA</entry>
- <entry>113</entry>
- <entry>TSET</entry>
- <entry>DTE</entry>
- <entry>Trans. Sig. Element Timing</entry>
- </row>
-
- <row>
- <entry>25</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>142</entry>
- <entry>-</entry>
- <entry>DCE</entry>
- <entry>Test Mode</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect5>
- </sect4>
-
- <sect4>
- <title>Bits, Baud and Symbols</title>
-
- <para>Baud is a measurement of transmission speed in asynchronous
- communication. Because of advances in modem communication
- technology, this term is frequently misused when describing the
- data rates in newer devices.</para>
-
- <para>Traditionally, a Baud Rate represents the number of bits that
- are actually being sent over the media, not the amount of data
- that is actually moved from one DTE device to the other. The Baud
- count includes the overhead bits Start, Stop and Parity that are
- generated by the sending UART and removed by the receiving UART.
- This means that seven-bit words of data actually take 10 bits to
- be completely transmitted. Therefore, a modem capable of moving
- 300 bits per second from one place to another can normally only
- move 30 7-bit words if Parity is used and one Start and Stop bit
- are present.</para>
-
- <para>If 8-bit data words are used and Parity bits are also used,
- the data rate falls to 27.27 words per second, because it now
- takes 11 bits to send the eight-bit words, and the modem still
- only sends 300 bits per second.</para>
-
- <para>The formula for converting bytes per second into a baud rate
- and vice versa was simple until error-correcting modems came
- along. These modems receive the serial stream of bits from the
- UART in the host computer (even when internal modems are used the
- data is still frequently serialized) and converts the bits back
- into bytes. These bytes are then combined into packets and sent
- over the phone line using a Synchronous transmission method. This
- means that the Stop, Start, and Parity bits added by the UART in
- the DTE (the computer) were removed by the modem before
- transmission by the sending modem. When these bytes are received
- by the remote modem, the remote modem adds Start, Stop and Parity
- bits to the words, converts them to a serial format and then sends
- them to the receiving UART in the remote computer, who then strips
- the Start, Stop and Parity bits.</para>
-
- <para>The reason all these extra conversions are done is so that the
- two modems can perform error correction, which means that the
- receiving modem is able to ask the sending modem to resend a block
- of data that was not received with the correct checksum. This
- checking is handled by the modems, and the DTE devices are usually
- unaware that the process is occurring.</para>
-
- <para>By striping the Start, Stop and Parity bits, the additional
- bits of data that the two modems must share between themselves to
- perform error-correction are mostly concealed from the effective
- transmission rate seen by the sending and receiving DTE equipment.
- For example, if a modem sends ten 7-bit words to another modem
- without including the Start, Stop and Parity bits, the sending
- modem will be able to add 30 bits of its own information that the
- receiving modem can use to do error-correction without impacting
- the transmission speed of the real data.</para>
-
- <para>The use of the term Baud is further confused by modems that
- perform compression. A single 8-bit word passed over the
- telephone line might represent a dozen words that were transmitted
- to the sending modem. The receiving modem will expand the data
- back to its original content and pass that data to the receiving
- DTE.</para>
-
- <para>Modern modems also include buffers that allow the rate that
- bits move across the phone line (DCE to DCE) to be a different
- speed than the speed that the bits move between the DTE and DCE on
- both ends of the conversation. Normally the speed between the DTE
- and DCE is higher than the DCE to DCE speed because of the use of
- compression by the modems.</para>
-
- <para>Because the number of bits needed to describe a byte varied
- during the trip between the two machines plus the differing
- bits-per-seconds speeds that are used present on the DTE-DCE and
- DCE-DCE links, the usage of the term Baud to describe the overall
- communication speed causes problems and can misrepresent the true
- transmission speed. So Bits Per Second (bps) is the correct term
- to use to describe the transmission rate seen at the DCE to DCE
- interface and Baud or Bits Per Second are acceptable terms to use
- when a connection is made between two systems with a wired
- connection, or if a modem is in use that is not performing
- error-correction or compression.</para>
-
- <para>Modern high speed modems (2400, 9600, 14,400, and 19,200bps)
- in reality still operate at or below 2400 baud, or more
- accurately, 2400 Symbols per second. High speed modem are able to
- encode more bits of data into each Symbol using a technique called
- Constellation Stuffing, which is why the effective bits per second
- rate of the modem is higher, but the modem continues to operate
- within the limited audio bandwidth that the telephone system
- provides. Modems operating at 28,800 and higher speeds have
- variable Symbol rates, but the technique is the same.</para>
- </sect4>
-
- <sect4>
- <title>The IBM Personal Computer UART</title>
-
- <para>Starting with the original IBM Personal Computer, IBM selected
- the National Semiconductor INS8250 UART for use in the IBM PC
- Parallel/Serial Adapter. Subsequent generations of compatible
- computers from IBM and other vendors continued to use the INS8250
- or improved versions of the National Semiconductor UART
- family.</para>
-
- <sect5>
- <title>National Semiconductor UART Family Tree</title>
-
- <para>There have been several versions and subsequent generations
- of the INS8250 UART. Each major version is described
- below.</para>
-
- <!-- This should really be a graphic -->
- <programlisting>INS8250 -&gt; INS8250B
- \
- \
- \-&gt; INS8250A -&gt; INS82C50A
- \
- \
- \-&gt; NS16450 -&gt; NS16C450
- \
- \
- \-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D</programlisting>
-
- <variablelist>
- <varlistentry>
- <term>INS8250</term>
-
- <listitem>
- <para>This part was used in the original IBM PC and IBM
- PC/XT. The original name for this part was the INS8250
- ACE (Asynchronous Communications Element) and it is made
- from NMOS technology.</para>
-
- <para>The 8250 uses eight I/O ports and has a one-byte send
- and a one-byte receive buffer. This original UART has
- several race conditions and other flaws. The original IBM
- BIOS includes code to work around these flaws, but this
- made the BIOS dependent on the flaws being present, so
- subsequent parts like the 8250A, 16450 or 16550 could not
- be used in the original IBM PC or IBM PC/XT.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>INS8250-B</term>
-
- <listitem>
- <para>This is the slower speed of the INS8250 made from NMOS
- technology. It contains the same problems as the original
- INS8250.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>INS8250A</term>
-
- <listitem>
- <para>An improved version of the INS8250 using XMOS
- technology with various functional flaws corrected. The
- INS8250A was used initially in PC clone computers by
- vendors who used <quote>clean</quote> BIOS designs. Because
- of the corrections in the chip, this part could not be
- used with a BIOS compatible with the INS8250 or
- INS8250B.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>INS82C50A</term>
-
- <listitem>
- <para>This is a CMOS version (low power consumption) of the
- INS8250A and has similar functional
- characteristics.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16450</term>
-
- <listitem>
- <para>Same as NS8250A with improvements so it can be used
- with faster CPU bus designs. IBM used this part in the
- IBM AT and updated the IBM BIOS to no longer rely on the
- bugs in the INS8250.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16C450</term>
-
- <listitem>
- <para>This is a CMOS version (low power consumption) of the
- NS16450.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16550</term>
-
- <listitem>
- <para>Same as NS16450 with a 16-byte send and receive buffer
- but the buffer design was flawed and could not be reliably
- be used.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16550A</term>
-
- <listitem>
- <para>Same as NS16550 with the buffer flaws corrected. The
- 16550A and its successors have become the most popular
- UART design in the PC industry, mainly due it its ability
- to reliably handle higher data rates on operating systems
- with sluggish interrupt response times.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16C552</term>
-
- <listitem>
- <para>This component consists of two NS16C550A CMOS UARTs in
- a single package.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>PC16550D</term>
-
- <listitem>
- <para>Same as NS16550A with subtle flaws corrected. This is
- revision D of the 16550 family and is the latest design
- available from National Semiconductor.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect5>
-
- <sect5>
- <title>The NS16550AF and the PC16550D are the same thing</title>
-
- <para>National reorganized their part numbering system a few years
- ago, and the NS16550AFN no longer exists by that name. (If you
- have a NS16550AFN, look at the date code on the part, which is a
- four digit number that usually starts with a nine. The first
- two digits of the number are the year, and the last two digits
- are the week in that year when the part was packaged. If you
- have a NS16550AFN, it is probably a few years old.)</para>
-
- <para>The new numbers are like PC16550DV, with minor differences
- in the suffix letters depending on the package material and its
- shape. (A description of the numbering system can be found
- below.)</para>
-
- <para>It is important to understand that in some stores, you may
- pay &#36;15(US) for a NS16550AFN made in 1990 and in the next
- bin are the new PC16550DN parts with minor fixes that National
- has made since the AFN part was in production, the PC16550DN was
- probably made in the past six months and it costs half (as low
- as &#36;5(US) in volume) as much as the NS16550AFN because they
- are readily available.</para>
-
- <para>As the supply of NS16550AFN chips continues to shrink, the
- price will probably continue to increase until more people
- discover and accept that the PC16550DN really has the same
- function as the old part number.</para>
- </sect5>
-
- <sect5>
- <title>National Semiconductor Part Numbering System</title>
-
- <para>The older NS<replaceable>nnnnnrqp</replaceable> part
- numbers are now of the format
- PC<replaceable>nnnnnrgp</replaceable>.</para>
-
- <para>The <replaceable>r</replaceable> is the revision field. The
- current revision of the 16550 from National Semiconductor is
- <literal>D</literal>.</para>
-
- <para>The <replaceable>p</replaceable> is the package-type field.
- The types are:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>"F"</entry>
- <entry>QFP</entry>
- <entry>(quad flat pack) L lead type</entry>
- </row>
-
- <row>
- <entry>"N"</entry>
- <entry>DIP</entry>
- <entry>(dual inline package) through hole straight lead
- type</entry>
- </row>
-
- <row>
- <entry>"V"</entry>
- <entry>LPCC</entry>
- <entry>(lead plastic chip carrier) J lead type</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>The <replaceable>g</replaceable> is the product grade field.
- If an <literal>I</literal> precedes the package-type letter, it
- indicates an <quote>industrial</quote> grade part, which has
- higher specs than a standard part but not as high as Military
- Specification (Milspec) component. This is an optional
- field.</para>
-
- <para>So what we used to call a NS16550AFN (DIP Package) is now
- called a PC16550DN or PC16550DIN.</para>
- </sect5>
- </sect4>
-
- <sect4>
- <title>Other Vendors and Similar UARTs</title>
-
- <para>Over the years, the 8250, 8250A, 16450 and 16550 have been
- licensed or copied by other chip vendors. In the case of the
- 8250, 8250A and 16450, the exact circuit (the
- <quote>megacell</quote>) was licensed to many vendors, including
- Western Digital and Intel. Other vendors reverse-engineered the
- part or produced emulations that had similar behavior.</para>
-
- <para>In internal modems, the modem designer will frequently emulate
- the 8250A/16450 with the modem microprocessor, and the emulated
- UART will frequently have a hidden buffer consisting of several
- hundred bytes. Because of the size of the buffer, these
- emulations can be as reliable as a 16550A in their ability to
- handle high speed data. However, most operating systems will
- still report that the UART is only a 8250A or 16450, and may not
- make effective use of the extra buffering present in the emulated
- UART unless special drivers are used.</para>
-
- <para>Some modem makers are driven by market forces to abandon a
- design that has hundreds of bytes of buffer and instead use a
- 16550A UART so that the product will compare favorably in market
- comparisons even though the effective performance may be lowered
- by this action.</para>
-
- <para>A common misconception is that all parts with
- <quote>16550A</quote> written on them are identical in performance.
- There are differences, and in some cases, outright flaws in most
- of these 16550A clones.</para>
-
- <para>When the NS16550 was developed, the National Semiconductor
- obtained several patents on the design and they also limited
- licensing, making it harder for other vendors to provide a chip
- with similar features. Because of the patents, reverse-engineered
- designs and emulations had to avoid infringing the claims covered
- by the patents. Subsequently, these copies almost never perform
- exactly the same as the NS16550A or PC16550D, which are the parts
- most computer and modem makers want to buy but are sometimes
- unwilling to pay the price required to get the genuine
- part.</para>
-
- <para>Some of the differences in the clone 16550A parts are
- unimportant, while others can prevent the device from being used
- at all with a given operating system or driver. These differences
- may show up when using other drivers, or when particular
- combinations of events occur that were not well tested or
- considered in the Windows driver. This is because most modem
- vendors and 16550-clone makers use the Microsoft drivers from
- Windows for Workgroups 3.11 and the Microsoft MS-DOS utility as the
- primary tests for compatibility with the NS16550A. This
- over-simplistic criteria means that if a different operating
- system is used, problems could appear due to subtle differences
- between the clones and genuine components.</para>
-
- <para>National Semiconductor has made available a program named
- <application>COMTEST</application> that performs compatibility
- tests independent of any OS drivers. It should be remembered that
- the purpose of this type of program is to demonstrate the flaws in
- the products of the competition, so the program will report major
- as well as extremely subtle differences in behavior in the part
- being tested.</para>
-
- <para>In a series of tests performed by the author of this document
- in 1994, components made by National Semiconductor, TI, StarTech,
- and CMD as well as megacells and emulations embedded in internal
- modems were tested with COMTEST. A difference count for some of
- these components is listed below. Because these tests were
- performed in 1994, they may not reflect the current performance of
- the given product from a vendor.</para>
-
- <para>It should be noted that COMTEST normally aborts when an
- excessive number or certain types of problems have been detected.
- As part of this testing, COMTEST was modified so that it would not
- abort no matter how many differences were encountered.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Vendor</entry>
- <entry>Part Number</entry>
- <entry>Errors (aka "differences" reported)</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>National</entry>
- <entry>(PC16550DV)</entry>
- <entry>0</entry>
- </row>
-
- <row>
- <entry>National</entry>
- <entry>(NS16550AFN)</entry>
- <entry>0</entry>
- </row>
-
- <row>
- <entry>National</entry>
- <entry>(NS16C552V)</entry>
- <entry>0</entry>
- </row>
-
- <row>
- <entry>TI</entry>
- <entry>(TL16550AFN)</entry>
- <entry>3</entry>
- </row>
-
- <row>
- <entry>CMD</entry>
- <entry>(16C550PE)</entry>
- <entry>19</entry>
- </row>
-
- <row>
- <entry>StarTech</entry>
- <entry>(ST16C550J)</entry>
- <entry>23</entry>
- </row>
-
- <row>
- <entry>Rockwell</entry>
- <entry>Reference modem with internal 16550 or an
- emulation (RC144DPi/C3000-25)</entry>
- <entry>117</entry>
- </row>
-
- <row>
- <entry>Sierra</entry>
- <entry>Modem with an internal 16550
- (SC11951/SC11351)</entry>
- <entry>91</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>To date, the author of this document has not found any
- non-National parts that report zero differences using the
- COMTEST program. It should also be noted that National has had
- five versions of the 16550 over the years and the newest parts
- behave a bit differently than the classic NS16550AFN that is
- considered the benchmark for functionality. COMTEST appears to
- turn a blind eye to the differences within the National product
- line and reports no errors on the National parts (except for the
- original 16550) even when there are official erratas that
- describe bugs in the A, B and C revisions of the parts, so this
- bias in COMTEST must be taken into account.</para>
- </note>
-
- <para>It is important to understand that a simple count of
- differences from COMTEST does not reveal a lot about what
- differences are important and which are not. For example, about
- half of the differences reported in the two modems listed above
- that have internal UARTs were caused by the clone UARTs not
- supporting five- and six-bit character modes. The real 16550,
- 16450, and 8250 UARTs all support these modes and COMTEST checks
- the functionality of these modes so over fifty differences are
- reported. However, almost no modern modem supports five- or
- six-bit characters, particularly those with error-correction and
- compression capabilities. This means that the differences related
- to five- and six-bit character modes can be discounted.</para>
-
- <para>Many of the differences COMTEST reports have to do with
- timing. In many of the clone designs, when the host reads from
- one port, the status bits in some other port may not update in the
- same amount of time (some faster, some slower) as a
- <emphasis>real</emphasis> NS16550AFN and COMTEST looks for these
- differences. This means that the number of differences can be
- misleading in that one device may only have one or two differences
- but they are extremely serious, and some other device that updates
- the status registers faster or slower than the reference part
- (that would probably never affect the operation of a properly
- written driver) could have dozens of differences reported.</para>
-
- <para>COMTEST can be used as a screening tool to alert the
- administrator to the presence of potentially incompatible
- components that might cause problems or have to be handled as a
- special case.</para>
-
- <para>If you run COMTEST on a 16550 that is in a modem or a modem is
- attached to the serial port, you need to first issue a ATE0&amp;W
- command to the modem so that the modem will not echo any of the
- test characters. If you forget to do this, COMTEST will report at
- least this one difference:</para>
-
- <screen>Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61</screen>
- </sect4>
-
- <sect4>
- <title>8250/16450/16550 Registers</title>
-
- <para>The 8250/16450/16550 UART occupies eight contiguous I/O port
- addresses. In the IBM PC, there are two defined locations for
- these eight ports and they are known collectively as COM1 and
- COM2. The makers of PC-clones and add-on cards have created two
- additional areas known as COM3 and COM4, but these extra COM ports
- conflict with other hardware on some systems. The most common
- conflict is with video adapters that provide IBM 8514
- emulation.</para>
-
- <para>COM1 is located from 0x3f8 to 0x3ff and normally uses IRQ 4
- COM2 is located from 0x2f8 to 0x2ff and normally uses IRQ 3 COM3
- is located from 0x3e8 to 0x3ef and has no standardized IRQ COM4 is
- located from 0x2e8 to 0x2ef and has no standardized IRQ.</para>
-
- <para>A description of the I/O ports of the 8250/16450/16550 UART is
- provided below.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>I/O Port</entry>
- <entry>Access Allowed</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>+0x00</entry>
- <entry>write (DLAB==0)</entry>
- <entry><para>Transmit Holding Register
- (THR).</para><para>Information written to this port are
- treated as data words and will be transmitted by the
- UART.</para></entry>
- </row>
-
- <row>
- <entry>+0x00</entry>
- <entry>read (DLAB==0)</entry>
- <entry><para>Receive Buffer Register (RBR).</para><para>Any
- data words received by the UART form the serial link are
- accessed by the host by reading this
- port.</para></entry>
- </row>
-
- <row>
- <entry>+0x00</entry>
- <entry>write/read (DLAB==1)</entry>
- <entry><para>Divisor Latch LSB (DLL)</para><para>This value
- will be divided from the master input clock (in the IBM
- PC, the master clock is 1.8432MHz) and the resulting
- clock will determine the baud rate of the UART. This
- register holds bits 0 thru 7 of the
- divisor.</para></entry>
- </row>
-
- <row>
- <entry>+0x01</entry>
- <entry>write/read (DLAB==1)</entry>
- <entry><para>Divisor Latch MSB (DLH)</para><para>This value
- will be divided from the master input clock (in the IBM
- PC, the master clock is 1.8432MHz) and the resulting
- clock will determine the baud rate of the UART. This
- register holds bits 8 thru 15 of the
- divisor.</para></entry>
- </row>
-
- <row>
- <entry>+0x01</entry>
- <entry>write/read (DLAB==0)</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2"><para>Interrupt Enable Register
- (IER)</para><para>The 8250/16450/16550 UART
- classifies events into one of four categories.
- Each category can be configured to generate an
- interrupt when any of the events occurs. The
- 8250/16450/16550 UART generates a single external
- interrupt signal regardless of how many events in
- the enabled categories have occurred. It is up to
- the host processor to respond to the interrupt and
- then poll the enabled interrupt categories
- (usually all categories have interrupts enabled)
- to determine the true cause(s) of the
- interrupt.</para></entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>Enable Modem Status Interrupt (EDSSI). Setting
- this bit to "1" allows the UART to generate an
- interrupt when a change occurs on one or more of the
- status lines.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>Enable Receiver Line Status Interrupt (ELSI)
- Setting this bit to "1" causes the UART to generate
- an interrupt when the an error (or a BREAK signal)
- has been detected in the incoming data.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Enable Transmitter Holding Register Empty
- Interrupt (ETBEI) Setting this bit to "1" causes the
- UART to generate an interrupt when the UART has room
- for one or more additional characters that are to be
- transmitted.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Enable Received Data Available Interrupt
- (ERBFI) Setting this bit to "1" causes the UART to
- generate an interrupt when the UART has received
- enough characters to exceed the trigger level of the
- FIFO, or the FIFO timer has expired (stale data), or
- a single character has been received when the FIFO
- is disabled.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x02</entry>
- <entry>write</entry>
- <entrytbl cols="4">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <colspec colnum="3" colname="col3">
- <colspec colnum="4" colname="col4">
- <spanspec namest="col1" nameend="col4" spanname="1to4">
- <spanspec namest="col2" nameend="col4" spanname="2to4">
-
- <tbody>
- <row>
- <entry spanname="1to4">FIFO Control Register (FCR)
- (This port does not exist on the 8250 and 16450
- UART.)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry spanname="2to4">Receiver Trigger Bit #1</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry spanname="2to4"><para>Receiver Trigger Bit
- #0</para><para>These two bits control at what
- point the receiver is to generate an interrupt
- when the FIFO is active.</para></entry>
- </row>
-
- <row>
- <entry colname="col2">7</entry>
- <entry colname="col3">6</entry>
- <entry colname="col4">How many words are received
- before an interrupt is generated</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">1</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">4</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">8</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">14</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry spanname="2to4">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry spanname="2to4">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry spanname="2to4">DMA Mode Select. If Bit 0 is
- set to "1" (FIFOs enabled), setting this bit changes
- the operation of the -RXRDY and -TXRDY signals from
- Mode 0 to Mode 1.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry spanname="2to4">Transmit FIFO Reset. When a
- "1" is written to this bit, the contents of the FIFO
- are discarded. Any word currently being transmitted
- will be sent intact. This function is useful in
- aborting transfers.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry spanname="2to4">Receiver FIFO Reset. When a
- "1" is written to this bit, the contents of the FIFO
- are discarded. Any word currently being assembled
- in the shift register will be received
- intact.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry spanname="2to4">16550 FIFO Enable. When set,
- both the transmit and receive FIFOs are enabled.
- Any contents in the holding register, shift
- registers or FIFOs are lost when FIFOs are enabled
- or disabled.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x02</entry>
- <entry>read</entry>
- <entrytbl cols="6">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <colspec colnum="3" colname="col3">
- <colspec colnum="4" colname="col4">
- <colspec colnum="5" colname="col5">
- <colspec colnum="6" colname="col6">
- <spanspec namest="col1" nameend="col6" spanname="1to6">
- <spanspec namest="col2" nameend="col6" spanname="2to6">
-
- <tbody>
- <row>
- <entry spanname="1to6">Interrupt Identification
- Register</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry spanname="2to6">FIFOs enabled. On the
- 8250/16450 UART, this bit is zero.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry spanname="2to6">FIFOs enabled. On the
- 8250/16450 UART, this bit is zero.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry spanname="2to6">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry spanname="2to6">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry spanname="2to6">Interrupt ID Bit #2. On the
- 8250/16450 UART, this bit is zero.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry spanname="2to6">Interrupt ID Bit #1</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry spanname="2to6">Interrupt ID Bit #0.These three
- bits combine to report the category of event that
- caused the interrupt that is in progress. These
- categories have priorities, so if multiple
- categories of events occur at the same time, the
- UART will report the more important events first and
- the host must resolve the events in the order they
- are reported. All events that caused the current
- interrupt must be resolved before any new interrupts
- will be generated. (This is a limitation of the PC
- architecture.)</entry>
- </row>
-
- <row>
- <entry colname="col2">2</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Priority</entry>
- <entry colname="col6">Description</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">1</entry>
- <entry colname="col5">First</entry>
- <entry colname="col6">Received Error (OE, PE, BI, or
- FE)</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Second</entry>
- <entry colname="col6">Received Data Available</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Second</entry>
- <entry colname="col6">Trigger level identification
- (Stale data in receive buffer)</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">1</entry>
- <entry colname="col5">Third</entry>
- <entry colname="col6">Transmitter has room for more
- words (THRE)</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Fourth</entry>
- <entry colname="col6">Modem Status Change (-CTS, -DSR,
- -RI, or -DCD)</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry spanname="2to6">Interrupt Pending Bit. If this
- bit is set to "0", then at least one interrupt is
- pending.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x03</entry>
- <entry>write/read</entry>
- <entrytbl cols="5">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <colspec colnum="3" colname="col3">
- <colspec colnum="4" colname="col4">
- <colspec colnum="5" colname="col5">
- <spanspec namest="col1" nameend="col5" spanname="1to5">
- <spanspec namest="col2" nameend="col5" spanname="2to5">
- <spanspec namest="col4" nameend="col5" spanname="4to5">
-
- <tbody>
- <row>
- <entry spanname="1to5">Line Control Register
- (LCR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry spanname="2to5">Divisor Latch Access Bit
- (DLAB). When set, access to the data
- transmit/receive register (THR/RBR) and the
- Interrupt Enable Register (IER) is disabled. Any
- access to these ports is now redirected to the
- Divisor Latch Registers. Setting this bit, loading
- the Divisor Registers, and clearing DLAB should be
- done with interrupts disabled.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry spanname="2to5">Set Break. When set to "1",
- the transmitter begins to transmit continuous
- Spacing until this bit is set to "0". This
- overrides any bits of characters that are being
- transmitted.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry spanname="2to5">Stick Parity. When parity is
- enabled, setting this bit causes parity to always be
- "1" or "0", based on the value of Bit 4.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry spanname="2to5">Even Parity Select (EPS). When
- parity is enabled and Bit 5 is "0", setting this bit
- causes even parity to be transmitted and expected.
- Otherwise, odd parity is used.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry spanname="2to5">Parity Enable (PEN). When set
- to "1", a parity bit is inserted between the last
- bit of the data and the Stop Bit. The UART will
- also expect parity to be present in the received
- data.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry spanname="2to5">Number of Stop Bits (STB). If
- set to "1" and using 5-bit data words, 1.5 Stop Bits
- are transmitted and expected in each data word. For
- 6, 7 and 8-bit data words, 2 Stop Bits are
- transmitted and expected. When this bit is set to
- "0", one Stop Bit is used on each data word.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry spanname="2to5">Word Length Select Bit #1
- (WLSB1)</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry spanname="2to5">Word Length Select Bit #0
- (WLSB0)</entry>
- </row>
-
- <row>
- <entry colname="col2" spanname="2to5">Together these
- bits specify the number of bits in each data
- word.</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4" spanname="4to5">Word
- Length</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4" spanname="4to5">5 Data
- Bits</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4" spanname="4to5">6 Data
- Bits</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4" spanname="4to5">7 Data
- Bits</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4" spanname="4to5">8 Data
- Bits</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x04</entry>
- <entry>write/read</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2">Modem Control Register
- (MCR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Loop-Back Enable. When set to "1", the UART
- transmitter and receiver are internally connected
- together to allow diagnostic operations. In
- addition, the UART modem control outputs are
- connected to the UART modem control inputs. CTS is
- connected to RTS, DTR is connected to DSR, OUT1 is
- connected to RI, and OUT 2 is connected to
- DCD.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>OUT 2. An auxiliary output that the host
- processor may set high or low. In the IBM PC serial
- adapter (and most clones), OUT 2 is used to
- tri-state (disable) the interrupt signal from the
- 8250/16450/16550 UART.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>OUT 1. An auxiliary output that the host
- processor may set high or low. This output is not
- used on the IBM PC serial adapter.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Request to Send (RTS). When set to "1", the
- output of the UART -RTS line is Low
- (Active).</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Data Terminal Ready (DTR). When set to "1",
- the output of the UART -DTR line is Low
- (Active).</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x05</entry>
- <entry>write/read</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2">Line Status Register
- (LSR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Error in Receiver FIFO. On the 8250/16450
- UART, this bit is zero. This bit is set to "1" when
- any of the bytes in the FIFO have one or more of the
- following error conditions: PE, FE, or BI.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Transmitter Empty (TEMT). When set to "1",
- there are no words remaining in the transmit FIFO
- or the transmit shift register. The transmitter is
- completely idle.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Transmitter Holding Register Empty (THRE).
- When set to "1", the FIFO (or holding register) now
- has room for at least one additional word to
- transmit. The transmitter may still be transmitting
- when this bit is set to "1".</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Break Interrupt (BI). The receiver has
- detected a Break signal.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>Framing Error (FE). A Start Bit was detected
- but the Stop Bit did not appear at the expected
- time. The received word is probably
- garbled.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>Parity Error (PE). The parity bit was
- incorrect for the word received.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Overrun Error (OE). A new word was received
- and there was no room in the receive buffer. The
- newly-arrived word in the shift register is
- discarded. On 8250/16450 UARTs, the word in the
- holding register is discarded and the newly- arrived
- word is put in the holding register.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Data Ready (DR) One or more words are in the
- receive FIFO that the host may read. A word must be
- completely received and moved from the shift
- register into the FIFO (or holding register for
- 8250/16450 designs) before this bit is set.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x06</entry>
- <entry>write/read</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2">Modem Status Register
- (MSR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Data Carrier Detect (DCD). Reflects the state
- of the DCD line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Ring Indicator (RI). Reflects the state of the
- RI line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Data Set Ready (DSR). Reflects the state of
- the DSR line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Clear To Send (CTS). Reflects the state of the
- CTS line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>Delta Data Carrier Detect (DDCD). Set to "1"
- if the -DCD line has changed state one more more
- times since the last time the MSR was read by the
- host.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>Trailing Edge Ring Indicator (TERI). Set to
- "1" if the -RI line has had a low to high transition
- since the last time the MSR was read by the
- host.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Delta Data Set Ready (DDSR). Set to "1" if the
- -DSR line has changed state one more more times
- since the last time the MSR was read by the
- host.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Delta Clear To Send (DCTS). Set to "1" if the
- -CTS line has changed state one more more times
- since the last time the MSR was read by the
- host.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x07</entry>
- <entry>write/read</entry>
- <entry>Scratch Register (SCR). This register performs no
- function in the UART. Any value can be written by the
- host to this location and read by the host later
- on.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect4>
-
- <sect4>
- <title>Beyond the 16550A UART</title>
-
- <para>Although National Semiconductor has not offered any components
- compatible with the 16550 that provide additional features,
- various other vendors have. Some of these components are
- described below. It should be understood that to effectively
- utilize these improvements, drivers may have to be provided by the
- chip vendor since most of the popular operating systems do not
- support features beyond those provided by the 16550.</para>
-
- <variablelist>
- <varlistentry>
- <term>ST16650</term>
-
- <listitem>
- <para>By default this part is similar to the NS16550A, but an
- extended 32-byte send and receive buffer can be optionally
- enabled. Made by StarTech.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>TIL16660</term>
-
- <listitem>
- <para>By default this part behaves similar to the NS16550A,
- but an extended 64-byte send and receive buffer can be
- optionally enabled. Made by Texas Instruments.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Hayes ESP</term>
-
- <listitem>
- <para>This proprietary plug-in card contains a 2048-byte send
- and receive buffer, and supports data rates to
- 230.4Kbit/sec. Made by Hayes.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>In addition to these <quote>dumb</quote> UARTs, many vendors
- produce intelligent serial communication boards. This type of
- design usually provides a microprocessor that interfaces with
- several UARTs, processes and buffers the data, and then alerts the
- main PC processor when necessary. Because the UARTs are not
- directly accessed by the PC processor in this type of
- communication system, it is not necessary for the vendor to use
- UARTs that are compatible with the 8250, 16450, or the 16550 UART.
- This leaves the designer free to components that may have better
- performance characteristics.</para>
- </sect4>
- </sect3>
-
- <sect3 id="sio">
- <title>Configuring the <devicename>sio</devicename> driver</title>
-
- <para>The <devicename>sio</devicename> driver provides support for
- NS8250-, NS16450-, NS16550 and NS16550A-based EIA RS-232C (CCITT
- V.24) communications interfaces. Several multiport cards are
- supported as well. See the &man.sio.4;
- manual page for detailed technical documentation.</para>
-
- <sect4>
- <title>Digi International (DigiBoard) PC/8</title>
-
- <para><emphasis>Contributed by &a.awebster;. 26 August
- 1995.</emphasis></para>
-
- <para>Here is a config snippet from a machine with a Digi
- International PC/8 with 16550. It has 8 modems connected to these
- 8 lines, and they work just great. Do not forget to add
- <literal>options COM_MULTIPORT</literal> or it will not work very
- well!</para>
-
- <programlisting>device sio4 at isa? port 0x100 tty flags 0xb05
-device sio5 at isa? port 0x108 tty flags 0xb05
-device sio6 at isa? port 0x110 tty flags 0xb05
-device sio7 at isa? port 0x118 tty flags 0xb05
-device sio8 at isa? port 0x120 tty flags 0xb05
-device sio9 at isa? port 0x128 tty flags 0xb05
-device sio10 at isa? port 0x130 tty flags 0xb05
-device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr</programlisting>
-
- <para>The trick in setting this up is that the MSB of the flags
- represent the last SIO port, in this case 11 so flags are
- 0xb05.</para>
- </sect4>
-
- <sect4>
- <title>Boca 16</title>
-
- <para><emphasis>Contributed by &a.whiteside;. 26 August
- 1995.</emphasis></para>
-
- <para>The procedures to make a Boca 16 port board with FreeBSD are
- pretty straightforward, but you will need a couple things to make
- it work:</para>
-
- <orderedlist>
- <listitem>
- <para>You either need the kernel sources installed so you can
- recompile the necessary options or you will need someone else
- to compile it for you. The 2.0.5 default kernel does
- <emphasis>not</emphasis> come with multiport support enabled
- and you will need to add a device entry for each port
- anyways.</para>
- </listitem>
-
- <listitem>
- <para>Two, you will need to know the interrupt and IO setting
- for your Boca Board so you can set these options properly in
- the kernel.</para>
- </listitem>
- </orderedlist>
-
- <para>One important note &mdash; the actual UART chips for the Boca
- 16 are in the connector box, not on the internal board itself. So
- if you have it unplugged, probes of those ports will fail. I have
- never tested booting with the box unplugged and plugging it back
- in, and I suggest you do not either.</para>
-
- <para>If you do not already have a custom kernel configuration file
- set up, refer to <link linkend="kernelconfig">Kernel
- Configuration</link> for general procedures. The following are
- the specifics for the Boca 16 board and assume you are using the
- kernel name MYKERNEL and editing with vi.</para>
-
- <procedure>
- <step>
- <para>Add the line
-
- <programlisting>options COM_MULTIPORT</programlisting>
-
- to the config file.</para>
- </step>
-
- <step>
- <para>Where the current <literal>device
- sio<replaceable>n</replaceable></literal> lines are, you
- will need to add 16 more devices. Only the last device
- includes the interrupt vector for the board. (See the
- &man.sio.4; manual page for detail as
- to why.) The following example is for a Boca Board with an
- interrupt of 3, and a base IO address 100h. The IO address
- for Each port is +8 hexadecimal from the previous port, thus
- the 100h, 108h, 110h... addresses.</para>
-
- <programlisting>device sio1 at isa? port 0x100 tty flags 0x1005
-device sio2 at isa? port 0x108 tty flags 0x1005
-device sio3 at isa? port 0x110 tty flags 0x1005
-device sio4 at isa? port 0x118 tty flags 0x1005
-&hellip;
-device sio15 at isa? port 0x170 tty flags 0x1005
-device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr</programlisting>
-
- <para>The flags entry <emphasis>must</emphasis> be changed from
- this example unless you are using the exact same sio
- assignments. Flags are set according to
- 0x<replaceable>M</replaceable><replaceable>YY</replaceable>
- where <replaceable>M</replaceable> indicates the minor number
- of the master port (the last port on a Boca 16) and
- <replaceable>YY</replaceable> indicates if FIFO is enabled or
- disabled(enabled), IRQ sharing is used(yes) and if there is an
- AST/4 compatible IRQ control register(no). In this example,
- <programlisting> flags 0x1005</programlisting> indicates that
- the master port is sio16. If I added another board and
- assigned sio17 through sio28, the flags for all 16 ports on
- <emphasis>that</emphasis> board would be 0x1C05, where 1C
- indicates the minor number of the master port. Do not change
- the 05 setting.</para>
- </step>
-
- <step>
- <para>Save and complete the kernel configuration, recompile,
- install and reboot. Presuming you have successfully installed
- the recompiled kernel and have it set to the correct address
- and IRQ, your boot message should indicate the successful
- probe of the Boca ports as follows: (obviously the sio
- numbers, IO and IRQ could be different)</para>
-
- <screen>sio1 at 0x100-0x107 flags 0x1005 on isa
-sio1: type 16550A (multiport)
-sio2 at 0x108-0x10f flags 0x1005 on isa
-sio2: type 16550A (multiport)
-sio3 at 0x110-0x117 flags 0x1005 on isa
-sio3: type 16550A (multiport)
-sio4 at 0x118-0x11f flags 0x1005 on isa
-sio4: type 16550A (multiport)
-sio5 at 0x120-0x127 flags 0x1005 on isa
-sio5: type 16550A (multiport)
-sio6 at 0x128-0x12f flags 0x1005 on isa
-sio6: type 16550A (multiport)
-sio7 at 0x130-0x137 flags 0x1005 on isa
-sio7: type 16550A (multiport)
-sio8 at 0x138-0x13f flags 0x1005 on isa
-sio8: type 16550A (multiport)
-sio9 at 0x140-0x147 flags 0x1005 on isa
-sio9: type 16550A (multiport)
-sio10 at 0x148-0x14f flags 0x1005 on isa
-sio10: type 16550A (multiport)
-sio11 at 0x150-0x157 flags 0x1005 on isa
-sio11: type 16550A (multiport)
-sio12 at 0x158-0x15f flags 0x1005 on isa
-sio12: type 16550A (multiport)
-sio13 at 0x160-0x167 flags 0x1005 on isa
-sio13: type 16550A (multiport)
-sio14 at 0x168-0x16f flags 0x1005 on isa
-sio14: type 16550A (multiport)
-sio15 at 0x170-0x177 flags 0x1005 on isa
-sio15: type 16550A (multiport)
-sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa
-sio16: type 16550A (multiport master)</screen>
-
- <para>If the messages go by too fast to see,
-
- <screen>&prompt.root; <userinput>dmesg | more</userinput></screen>
- will show you the boot messages.</para>
- </step>
-
- <step>
- <para>Next, appropriate entries in <filename>/dev</filename> for
- the devices must be made using the
- <filename>/dev/MAKEDEV</filename> script. After becoming
- root:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV tty1</userinput>
-&prompt.root; <userinput>./MAKEDEV cua1</userinput>
-<emphasis>(everything in between)</emphasis>
-&prompt.root; <userinput>./MAKEDEV ttyg</userinput>
-&prompt.root; <userinput>./MAKEDEV cuag</userinput></screen>
-
- <para>If you do not want or need call-out devices for some
- reason, you can dispense with making the
- <filename>cua*</filename> devices.</para>
- </step>
-
- <step>
- <para>If you want a quick and sloppy way to make sure the
- devices are working, you can simply plug a modem into each
- port and (as root)
-
- <screen>&prompt.root; <userinput>echo at &gt; ttyd*</userinput></screen>
- for each device you have made. You
- <emphasis>should</emphasis> see the RX lights flash for each
- working port.</para>
- </step>
- </procedure>
- </sect4>
-
- <sect4>
- <title>Support for Cheap Multi-UART Cards</title>
-
- <para><emphasis>Contributed by Helge Oldach
- <email>hmo@sep.hamburg.com</email>, September
- 1999</emphasis></para>
-
- <para>Ever wondered about FreeBSD support for your 20$ multi-I/O
- card with two (or more) COM ports, sharing IRQs? Here's
- how:</para>
-
- <para>Usually the only option to support these kind of boards is to
- use a distinct IRQ for each port. For example, if your CPU board
- has an on-board <devicename>COM1</devicename> port (aka
- <devicename>sio0</devicename>&ndash;I/O address 0x3F8 and IRQ 4)
- and you have an extension board with two UARTs, you will commonly
- need to configure them as <devicename>COM2</devicename> (aka
- <devicename>sio1</devicename>&ndash;I/O address 0x2F8 and IRQ 3),
- and the third port (aka <devicename>sio2</devicename>) as I/O
- 0x3E8 and IRQ 5. Obviously this is a waste of IRQ resources, as
- it should be basically possible to run both extension board ports
- using a single IRQ with the <literal>COM_MULTIPORT</literal>
- configuration described in the previous sections.</para>
-
- <para>Such cheap I/O boards commonly have a 4 by 3 jumper matrix for
- the COM ports, similar to the following:</para>
-
-<programlisting> o o o *
-Port A |
- o * o *
-Port B |
- o * o o
-IRQ 2 3 4 5</programlisting>
-
- <para>Shown here is port A wired for IRQ 5 and port B wired for IRQ
- 3. The IRQ columns on your specific board may vary&mdash;other
- boards may supply jumpers for IRQs 3, 4, 5, and 7 instead.</para>
-
- <para>One could conclude that wiring both ports for IRQ 3 using a
- handcrafted wire-made jumper covering all three connection points
- in the IRQ 3 column would solve the issue, but no. You cannot
- duplicate IRQ 3 because the output drivers of each UART are wired
- in a <quote>totem pole</quote> fashion, so if one of the UARTs
- drives IRQ 3, the output signal will not be what you would expect.
- Depending on the implementation of the extension board or your
- motherboard, the IRQ 3 line will continuously stay up, or always
- stay low.</para>
-
- <para>You need to decouple the IRQ drivers for the two UARTs, so
- that the IRQ line of the board only goes up if (and only if) one
- of the UARTs asserts a IRQ, and stays low otherwise. The solution
- was proposed by Joerg Wunsch
- <email>j@ida.interface-business.de</email>: To solder up a
- wired-or consisting of two diodes (Germanium or Schottky-types
- strongly preferred) and a 1 kOhm resistor. Here is the schematic,
- starting from the 4 by 3 jumper field above:</para>
-
-<programlisting> Diode
- +---------->|-------+
- / |
- o * o o | 1 kOhm
-Port A +----|######|-------+
- o * o o | |
-Port B `-------------------+ ==+==
- o * o o | Ground
- \ |
- +--------->|-------+
-IRQ 2 3 4 5 Diode</programlisting>
-
- <para>The cathodes of the diodes are connected to a common point,
- together with a 1 kOhm pull-down resistor. It is essential to
- connect the resistor to ground to avoid floating of the IRQ line
- on the bus.</para>
-
- <para>Now we are ready to configure a kernel. Staying with this
- example, we would configure:</para>
-
- <programlisting># standard on-board COM1 port
-device sio0 at isa? port "IO_COM1" tty flags 0x10
-# patched-up multi-I/O extension board
-options COM_MULTIPORT
-device sio1 at isa? port "IO_COM2" tty flags 0x205
-device sio2 at isa? port "IO_COM3" tty flags 0x205 irq 3</programlisting>
-
- <para>Note that the <literal>flags</literal> setting for
- <devicename>sio1</devicename> and <devicename>sio2</devicename> is
- truly essential; refer to
- &man.sio.4; for details. (Generally, the <literal>2</literal> in
- the "flags" attribute refers to <devicename>sio</devicename>2
- which holds the IRQ, and you surely want a <literal>5</literal>
- low nibble.) With kernel verbose mode turned on this should yield
- something similar to this:</para>
-
- <screen>sio0: irq maps: 0x1 0x11 0x1 0x1
-sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
-sio0: type 16550A
-sio1: irq maps: 0x1 0x9 0x1 0x1
-sio1 at 0x2f8-0x2ff flags 0x205 on isa
-sio1: type 16550A (multiport)
-sio2: irq maps: 0x1 0x9 0x1 0x1
-sio2 at 0x3e8-0x3ef irq 3 flags 0x205 on isa
-sio2: type 16550A (multiport master)</screen>
-
- <para>Though <filename>/sys/i386/isa/sio.c</filename> is somewhat
- cryptic with its use of the <quote>irq maps</quote> array above,
- the basic idea is that you observe <literal>0x1</literal> in the
- first, third, and fourth place. This means that the corresponding
- IRQ was set upon output and cleared after, which is just what we
- would expect. If your kernel does not display this behavior, most
- likely there is something wrong with your wiring.</para>
- </sect4>
- </sect3>
-
- <sect3 id="cy">
- <title>Configuring the <devicename>cy</devicename> driver</title>
-
- <para><emphasis>Contributed by Alex Nash. 6 June
- 1996.</emphasis></para>
-
- <para>The Cyclades multiport cards are based on the
- <devicename>cy</devicename> driver instead of the usual
- <devicename>sio</devicename> driver used by other multiport cards.
- Configuration is a simple matter of:</para>
-
- <procedure>
- <step>
- <para>Add the <devicename>cy</devicename> device to your <link
- linkend="kernelconfig-config">kernel configuration</link>
- (note that your irq and iomem settings may differ).</para>
-
- <programlisting>device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr</programlisting>
- </step>
-
- <step>
- <para><link linkend="kernelconfig-building">Rebuild and
- install</link> the new kernel.</para>
- </step>
-
- <step>
- <para>Make the <link linkend="kernelconfig-nodes">device
- nodes</link> by typing (the following example assumes an
- 8-port board):</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done</userinput></screen>
- </step>
-
- <step>
- <para>If appropriate, add <link linkend="dialup">dialup</link>
- entries to <link linkend="dialup-ttys">/etc/ttys</link> by
- duplicating serial device (<literal>ttyd</literal>) entries and
- using <literal>ttyc</literal> in place of
- <literal>ttyd</literal>. For example:</para>
-
- <programlisting>ttyc0 "/usr/libexec/getty std.38400" unknown on insecure
-ttyc1 "/usr/libexec/getty std.38400" unknown on insecure
-ttyc2 "/usr/libexec/getty std.38400" unknown on insecure
-&hellip;
-ttyc7 "/usr/libexec/getty std.38400" unknown on insecure</programlisting>
- </step>
-
- <step>
- <para>Reboot with the new kernel.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>Configuring the <devicename>si</devicename> driver</title>
-
- <para><emphasis>Contributed by &a.nsayer;. 25 March
- 1998.</emphasis></para>
-
- <para>The Specialix SI/XIO and SX multiport cards use the
- <devicename>si</devicename> driver. A single machine can
- have up to 4 host cards. The following host cards
- are supported:</para>
-
- <itemizedlist>
- <listitem><para>ISA SI/XIO host card (2 versions)</para></listitem>
- <listitem><para>EISA SI/XIO host card</para></listitem>
- <listitem><para>PCI SI/XIO host card</para></listitem>
- <listitem><para>ISA SX host card</para></listitem>
- <listitem><para>PCI SX host card</para></listitem>
- </itemizedlist>
-
- <para>Although the SX and SI/XIO host cards look markedly different,
- their functionality are basically the same. The host cards do not
- use I/O locations, but instead require a 32K chunk of memory. The
- factory configuration for ISA cards places this at
- <literal>0xd0000-0xd7fff</literal>.
- They also require an IRQ. PCI cards will, of course, auto-configure
- themselves.</para>
-
- <para>You can attach up to 4 external modules to each host card. The
- external modules contain either 4 or 8 serial ports. They come in
- the following varieties:</para>
-
- <itemizedlist>
- <listitem><para>SI 4 or 8 port modules. Up to 57600 bps on each port
- supported.</para></listitem>
-
- <listitem><para>XIO 8 port modules. Up to 115200 bps on each port
- supported. One type of XIO module has 7 serial and 1 parallel
- port.</para></listitem>
-
- <listitem><para>SXDC 8 port modules. Up to 921600 bps on each port
- supported. Like XIO, a module is available with one parallel
- port as well.</para></listitem>
- </itemizedlist>
-
- <para>To configure an ISA host card, add the following line to your
- <link linkend="kernelconfig-config">kernel configuration
- file</link>, changing the numbers as appropriate:</para>
-
- <programlisting>device si0 at isa? tty iomem 0xd0000 irq 11</programlisting>
-
- <para>Valid IRQ numbers are 9, 10, 11, 12 and 15 for SX ISA host cards
- and 11, 12 and 15 for SI/XIO ISA host cards.</para>
-
- <para>To configure an EISA or PCI host card, use this line:</para>
-
- <programlisting>device si0</programlisting>
-
- <para>After adding the configuration entry, <link
- linkend="kernelconfig-building"> rebuild and install</link> your
- new kernel.</para>
-
- <para>After rebooting with the new kernel, you need to make the <link
- linkend="kernelconfig-nodes"> device nodes</link> in /dev. The
- <filename>MAKEDEV</filename> script will take care of this for you.
- Count how many total ports you have and type:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV ttyA<replaceable>nn</replaceable> cuaA<replaceable>nn</replaceable></userinput></screen>
-
- <para>(where <replaceable>nn</replaceable> is the number of
- ports)</para>
-
- <para>If you want login prompts to appear on these ports, you will
- need to add lines like this to <link
- linkend="dialup"><filename>/etc/ttys</filename></link>:</para>
-
- <programlisting>ttyA01 "/usr/libexec/getty std.9600" vt100 on insecure
- </programlisting>
-
- <para>Change the terminal type as appropriate. For modems,
- <userinput>dialup</userinput> or <userinput>unknown</userinput> is
- fine.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>* Parallel ports</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Modems</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Network cards</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Keyboards</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>Mice</title>
-
- <para><emphasis>Contributed by Joel Sutton
- <email>jsutton@bbcon.com.au</email> January 2000</emphasis></para>
-
- <para>FreeBSD supports a variety of different mice via the PS/2, serial
- and USB ports. Most users choose to use the mouse daemon to handle
- their mouse because it allows interaction in both X and on the system
- console. For more information on the mouse daemon refer to
- &man.moused.8;. The examples throughout this section assume that
- the mouse daemon is being used.</para>
-
- <note>
- <para>This section contains the names of specific products that the
- author has confirmed will work with FreeBSD. Other similar devices
- not listed may also be supported.</para>
- </note>
-
- <sect3>
- <title>PS/2</title>
-
- <sect4>
- <title>System Configuration</title>
-
- <para>To ensure that your PS/2 mouse functions correctly with the
- mouse daemon you will need to include the following text in
- <filename>/etc/rc.conf</filename></para>
-
- <programlisting>moused_enable="YES"
-moused_type="ps/2"
-moused_port="/dev/psm0"</programlisting>
- </sect4>
-
- <sect4>
- <title>Known Compatible Devices</title>
-
- <itemizedlist>
- <listitem>
- <para>Logitech First Mouse - Three Button</para>
- </listitem>
-
- <listitem>
- <para>Microsoft Serial - PS/2 Compatible Mouse</para>
- </listitem>
- </itemizedlist>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Serial</title>
-
- <sect4>
- <title>System Configuration</title>
-
- <para>To ensure that your serial mouse functions correctly with the
- mouse daemon you will need to include the following text in
- <filename>/etc/rc.conf</filename>. This example assumes that the
- mouse is connected to <devicename>COM1:</devicename> and can be
- automatically recognized by the mouse daemon.</para>
-
- <programlisting>moused_enable="YES"
-moused_type="auto"
-moused_port="/dev/cuaa0"</programlisting>
-
- <para>See the &man.moused.8; manual page for a detailed description
- of how to configure the mouse daemon to work with specific types
- of serial mice.</para>
- </sect4>
-
- <sect4>
- <title>Known Compatible Devices</title>
-
- <itemizedlist>
- <listitem>
- <para>Generic Microsoft Compatible Mice</para>
- </listitem>
-
- <listitem>
- <para>Logitech First Mouse - Three Button</para>
- </listitem>
-
- <listitem>
- <para>Microsoft Serial - PS/2 Compatible Mouse</para>
- </listitem>
- </itemizedlist>
- </sect4>
- </sect3>
-
- <sect3>
- <title>USB</title>
-
- <sect4>
- <title>System Configuration</title>
-
- <para>The USB device drivers are a relatively new addition to
- FreeBSD and have not yet been included in the GENERIC kernel. The
- following procedure is an example of how to setup the relevant
- drivers on a typical system.</para>
-
- <procedure>
- <step>
- <para>Add the <devicename>ums</devicename> device to the usb
- section of your <link linkend="kernelconfig-config">kernel
- configuration</link>. For example:
- </para>
-
- <programlisting>controller usb0 controller uhci0 device ums0</programlisting>
- </step>
-
- <step>
- <para><link linkend="kernelconfig-building">Rebuild and
- install</link> the new kernel.</para>
- </step>
-
- <step>
- <para>Make the <link linkend="kernelconfig-nodes">device
- node</link> by typing:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV ums0</userinput></screen>
- </step>
-
- <step>
- <para>Include the following text in
- <filename>/etc/rc.conf</filename> to ensure correct operation
- of the mouse daemon:</para>
-
- <programlisting>moused_enable="YES"
-moused_type="auto"
-moused_port="/dev/ums0"</programlisting>
- </step>
-
- <step>
- <para>Reboot the system.</para>
- <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
- </step>
- </procedure>
- </sect4>
-
- <sect4>
- <title>Known Compatible Devices</title>
-
- <itemizedlist>
- <listitem>
- <para>Logitech TrackMan - Marble Wheel</para>
- </listitem>
- </itemizedlist>
- </sect4>
- </sect3>
- </sect2>
-
-<![ %not.published; [
-
- <sect2>
- <title>* Other</title>
-
- <para></para>
- </sect2>
- </sect1>
-
-]]>
-
- <sect1 id="hw-storage">
- <title>Storage Devices</title>
-
- <sect2 id="esdi">
- <title>Using ESDI hard disks</title>
-
- <para><emphasis>Copyright &copy; 1995, &a.wilko;. 24
- September 1995.</emphasis></para>
-
- <para>ESDI is an acronym that means Enhanced Small Device Interface. It
- is loosely based on the good old ST506/412 interface originally
- devised by Seagate Technology, the makers of the first affordable
- 5.25" winchester disk.</para>
-
- <para>The acronym says Enhanced, and rightly so. In the first place the
- speed of the interface is higher, 10 or 15 Mbits/second instead of the
- 5 Mbits/second of ST412 interfaced drives. Secondly some higher level
- commands are added, making the ESDI interface somewhat 'smarter' to
- the operating system driver writers. It is by no means as smart as
- SCSI by the way. ESDI is standardized by ANSI.</para>
-
- <para>Capacities of the drives are boosted by putting more sectors on
- each track. Typical is 35 sectors per track, high capacity drives I
- have seen were up to 54 sectors/track.</para>
-
- <para>Although ESDI has been largely obsoleted by IDE and SCSI
- interfaces, the availability of free or cheap surplus drives makes
- them ideal for low (or now) budget systems.</para>
-
- <sect3>
- <title>Concepts of ESDI</title>
-
- <sect4>
- <title>Physical connections</title>
-
- <para>The ESDI interface uses two cables connected to each drive.
- One cable is a 34 pin flat cable edge connector that carries the
- command and status signals from the controller to the drive and
- vice-versa. The command cable is daisy chained between all the
- drives. So, it forms a bus onto which all drives are
- connected.</para>
-
- <para>The second cable is a 20 pin flat cable edge connector that
- carries the data to and from the drive. This cable is radially
- connected, so each drive has its own direct connection to the
- controller.</para>
-
- <para>To the best of my knowledge PC ESDI controllers are limited to
- using a maximum of 2 drives per controller. This is compatibility
- feature(?) left over from the WD1003 standard that reserves only a
- single bit for device addressing.</para>
- </sect4>
-
- <sect4>
- <title>Device addressing</title>
-
- <para>On each command cable a maximum of 7 devices and 1 controller
- can be present. To enable the controller to uniquely identify
- which drive it addresses, each ESDI device is equipped with
- jumpers or switches to select the devices address.</para>
-
- <para>On PC type controllers the first drive is set to address 0,
- the second disk to address 1. <emphasis>Always make
- sure</emphasis> you set each disk to an unique address! So, on a
- PC with its two drives/controller maximum the first drive is drive
- 0, the second is drive 1.</para>
- </sect4>
-
- <sect4>
- <title>Termination</title>
-
- <para>The daisy chained command cable (the 34 pin cable remember?)
- needs to be terminated at the last drive on the chain. For this
- purpose ESDI drives come with a termination resistor network that
- can be removed or disabled by a jumper when it is not used.</para>
-
- <para>So, one and <emphasis>only</emphasis> one drive, the one at
- the farthest end of the command cable has its terminator
- installed/enabled. The controller automatically terminates the
- other end of the cable. Please note that this implies that the
- controller must be at one end of the cable and
- <emphasis>not</emphasis> in the middle.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Using ESDI disks with FreeBSD</title>
-
- <para>Why is ESDI such a pain to get working in the first
- place?</para>
-
- <para>People who tried ESDI disks with FreeBSD are known to have
- developed a profound sense of frustration. A combination of factors
- works against you to produce effects that are hard to understand
- when you have never seen them before.</para>
-
- <para>This has also led to the popular legend ESDI and FreeBSD is a
- plain NO-GO. The following sections try to list all the pitfalls
- and solutions.</para>
-
- <sect4>
- <title>ESDI speed variants</title>
-
- <para>As briefly mentioned before, ESDI comes in two speed flavors.
- The older drives and controllers use a 10 Mbits/second data
- transfer rate. Newer stuff uses 15 Mbits/second.</para>
-
- <para>It is not hard to imagine that 15 Mbits/second drive cause
- problems on controllers laid out for 10 Mbits/second. As always,
- consult your controller <emphasis>and</emphasis> drive
- documentation to see if things match.</para>
- </sect4>
-
- <sect4>
- <title>Stay on track</title>
-
- <para>Mainstream ESDI drives use 34 to 36 sectors per track. Most
- (older) controllers cannot handle more than this number of
- sectors. Newer, higher capacity, drives use higher numbers of
- sectors per track. For instance, I own a 670 MB drive that has 54
- sectors per track.</para>
-
- <para>In my case, the controller could not handle this number of
- sectors. It proved to work well except that it only used 35
- sectors on each track. This meant losing a lot of disk
- space.</para>
-
- <para>Once again, check the documentation of your hardware for more
- info. Going out-of-spec like in the example might or might not
- work. Give it a try or get another more capable
- controller.</para>
- </sect4>
-
- <sect4>
- <title>Hard or soft sectoring</title>
-
- <para>Most ESDI drives allow hard or soft sectoring to be selected
- using a jumper. Hard sectoring means that the drive will produce
- a sector pulse on the start of each new sector. The controller
- uses this pulse to tell when it should start to write or
- read.</para>
-
- <para>Hard sectoring allows a selection of sector size (normally
- 256, 512 or 1024 bytes per formatted sector). FreeBSD uses 512
- byte sectors. The number of sectors per track also varies while
- still using the same number of bytes per formatted sector. The
- number of <emphasis>unformatted</emphasis> bytes per sector
- varies, dependent on your controller it needs more or less
- overhead bytes to work correctly. Pushing more sectors on a
- track of course gives you more usable space, but might give
- problems if your controller needs more bytes than the drive
- offers.</para>
-
- <para>In case of soft sectoring, the controller itself determines
- where to start/stop reading or writing. For ESDI hard sectoring
- is the default (at least on everything I came across). I never
- felt the urge to try soft sectoring.</para>
-
- <para>In general, experiment with sector settings before you install
- FreeBSD because you need to re-run the low-level format after each
- change.</para>
- </sect4>
-
- <sect4>
- <title>Low level formatting</title>
-
- <para>ESDI drives need to be low level formatted before they are
- usable. A reformat is needed whenever you figgle with the number
- of sectors/track jumpers or the physical orientation of the drive
- (horizontal, vertical). So, first think, then format. The format
- time must not be underestimated, for big disks it can take
- hours.</para>
-
- <para>After a low level format, a surface scan is done to find and
- flag bad sectors. Most disks have a manufacturer bad block list
- listed on a piece of paper or adhesive sticker. In addition, on
- most disks the list is also written onto the disk. Please use the
- manufacturer's list. It is much easier to remap a defect now than
- after FreeBSD is installed.</para>
-
- <para>Stay away from low-level formatters that mark all sectors of a
- track as bad as soon as they find one bad sector. Not only does
- this waste space, it also and more importantly causes you grief
- with bad144 (see the section on bad144).</para>
- </sect4>
-
- <sect4>
- <title>Translations</title>
-
- <para>Translations, although not exclusively a ESDI-only problem,
- might give you real trouble. Translations come in multiple
- flavors. Most of them have in common that they attempt to work
- around the limitations posed upon disk geometries by the original
- IBM PC/AT design (thanks IBM!).</para>
-
- <para>First of all there is the (in)famous 1024 cylinder limit. For
- a system to be able to boot, the stuff (whatever operating system)
- must be in the first 1024 cylinders of a disk. Only 10 bits are
- available to encode the cylinder number. For the number of
- sectors the limit is 64 (0-63). When you combine the 1024
- cylinder limit with the 16 head limit (also a design feature) you
- max out at fairly limited disk sizes.</para>
-
- <para>To work around this problem, the manufacturers of ESDI PC
- controllers added a BIOS prom extension on their boards. This
- BIOS extension handles disk I/O for booting (and for some
- operating systems <emphasis>all</emphasis> disk I/O) by using
- translation. For instance, a big drive might be presented to the
- system as having 32 heads and 64 sectors/track. The result is
- that the number of cylinders is reduced to something below 1024
- and is therefore usable by the system without problems. It is
- noteworthy to know that FreeBSD does not use the BIOS after its
- kernel has started. More on this later.</para>
-
- <para>A second reason for translations is the fact that most older
- system BIOSes could only handle drives with 17 sectors per track
- (the old ST412 standard). Newer system BIOSes usually have a
- user-defined drive type (in most cases this is drive type
- 47).</para>
-
- <warning>
- <para>Whatever you do to translations after reading this document,
- keep in mind that if you have multiple operating systems on the
- same disk, all must use the same translation</para>
- </warning>
-
- <para>While on the subject of translations, I have seen one
- controller type (but there are probably more like this) offer the
- option to logically split a drive in multiple partitions as a BIOS
- option. I had select 1 drive == 1 partition because this
- controller wrote this info onto the disk. On power-up it read the
- info and presented itself to the system based on the info from the
- disk.</para>
- </sect4>
-
- <sect4>
- <title>Spare sectoring</title>
-
- <para>Most ESDI controllers offer the possibility to remap bad
- sectors. During/after the low-level format of the disk bad
- sectors are marked as such, and a replacement sector is put in
- place (logically of course) of the bad one.</para>
-
- <para>In most cases the remapping is done by using N-1 sectors on
- each track for actual data storage, and sector N itself is the
- spare sector. N is the total number of sectors physically
- available on the track. The idea behind this is that the
- operating system sees a 'perfect' disk without bad sectors. In
- the case of FreeBSD this concept is not usable.</para>
-
- <para>The problem is that the translation from
- <emphasis>bad</emphasis> to <emphasis>good</emphasis> is performed
- by the BIOS of the ESDI controller. FreeBSD, being a true 32 bit
- operating system, does not use the BIOS after it has been booted.
- Instead, it has device drivers that talk directly to the
- hardware.</para>
-
- <para><emphasis>So: don't use spare sectoring, bad block remapping
- or whatever it may be called by the controller manufacturer when
- you want to use the disk for FreeBSD.</emphasis></para>
- </sect4>
-
- <sect4>
- <title>Bad block handling</title>
-
- <para>The preceding section leaves us with a problem. The
- controller's bad block handling is not usable and still FreeBSD's
- filesystems assume perfect media without any flaws. To solve this
- problem, FreeBSD use the <command>bad144</command> tool. Bad144
- (named after a Digital Equipment standard for bad block handling)
- scans a FreeBSD slice for bad blocks. Having found these bad
- blocks, it writes a table with the offending block numbers to the
- end of the FreeBSD slice.</para>
-
- <para>When the disk is in operation, the disk accesses are checked
- against the table read from the disk. Whenever a block number is
- requested that is in the <command>bad144</command> list, a
- replacement block (also from the end of the FreeBSD slice) is
- used. In this way, the <command>bad144</command> replacement
- scheme presents 'perfect' media to the FreeBSD filesystems.</para>
-
- <para>There are a number of potential pitfalls associated with the
- use of <command>bad144</command>. First of all, the slice cannot
- have more than 126 bad sectors. If your drive has a high number
- of bad sectors, you might need to divide it into multiple FreeBSD
- slices each containing less than 126 bad sectors. Stay away from
- low-level format programs that mark <emphasis>every</emphasis>
- sector of a track as bad when they find a flaw on the track. As
- you can imagine, the 126 limit is quickly reached when the
- low-level format is done this way.</para>
-
- <para>Second, if the slice contains the root filesystem, the slice
- should be within the 1024 cylinder BIOS limit. During the boot
- process the bad144 list is read using the BIOS and this only
- succeeds when the list is within the 1024 cylinder limit.</para>
-
- <note>
- <para>The restriction is not that only the root
- <emphasis>filesystem</emphasis> must be within the 1024 cylinder
- limit, but rather the entire <emphasis>slice</emphasis> that
- contains the root filesystem.</para>
- </note>
- </sect4>
-
- <sect4>
- <title>Kernel configuration</title>
-
- <para>ESDI disks are handled by the same <literal>wd</literal>driver
- as IDE and ST412 MFM disks. The <literal>wd</literal> driver
- should work for all WD1003 compatible interfaces.</para>
-
- <para>Most hardware is jumperable for one of two different I/O
- address ranges and IRQ lines. This allows you to have two wd
- type controllers in one system.</para>
-
- <para>When your hardware allows non-standard strappings, you can use
- these with FreeBSD as long as you enter the correct info into the
- kernel config file. An example from the kernel config file (they
- live in <filename>/sys/i386/conf</filename> BTW).</para>
-
- <programlisting># First WD compatible controller
-controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
-disk wd0 at wdc0 drive 0
-disk wd1 at wdc0 drive 1
-# Second WD compatible controller
-controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
-disk wd2 at wdc1 drive 0
-disk wd3 at wdc1 drive 1</programlisting>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Particulars on ESDI hardware</title>
-
- <sect4>
- <title>Adaptec 2320 controllers</title>
-
- <para>I successfully installed FreeBSD onto a ESDI disk controlled
- by a ACB-2320. No other operating system was present on the
- disk.</para>
-
- <para>To do so I low level formatted the disk using
- <command>NEFMT.EXE</command> (<command>ftp</command>able from
- <hostid role="fqdn">www.adaptec.com</hostid>) and answered NO to
- the question whether the disk should be formatted with a spare
- sector on each track. The BIOS on the ACD-2320 was disabled. I
- used the <literal>free configurable</literal> option in the system
- BIOS to allow the BIOS to boot it.</para>
-
- <para>Before using <command>NEFMT.EXE</command> I tried to format
- the disk using the ACB-2320 BIOS built-in formatter. This proved
- to be a show stopper, because it did not give me an option to
- disable spare sectoring. With spare sectoring enabled the FreeBSD
- installation process broke down on the <command>bad144</command>
- run.</para>
-
- <para>Please check carefully which
- ACB-232<replaceable>xy</replaceable> variant you have. The
- <replaceable>x</replaceable> is either <literal>0</literal> or
- <literal>2</literal>, indicating a controller without or with a
- floppy controller on board.</para>
-
- <para>The <literal>y</literal> is more interesting. It can either
- be a blank, a <literal>A-8</literal> or a <literal>D</literal>. A
- blank indicates a plain 10 Mbits/second controller. An
- <literal>A-8</literal> indicates a 15 Mbits/second controller
- capable of handling 52 sectors/track. A <literal>D</literal>
- means a 15 Mbits/second controller that can also handle drives
- with &gt; 36 sectors/track (also 52 ?).</para>
-
- <para>All variations should be capable of using 1:1 interleaving.
- Use 1:1, FreeBSD is fast enough to handle it.</para>
- </sect4>
-
- <sect4>
- <title>Western Digital WD1007 controllers</title>
-
- <para>I successfully installed FreeBSD onto a ESDI disk controlled
- by a WD1007 controller. To be precise, it was a WD1007-WA2.
- Other variations of the WD1007 do exist.</para>
-
- <para>To get it to work, I had to disable the sector translation and
- the WD1007's onboard BIOS. This implied I could not use the
- low-level formatter built into this BIOS. Instead, I grabbed
- <command>WDFMT.EXE</command> from <hostid
- role="fqdn">www.wdc.com</hostid> Running this formatted my drive
- just fine.</para>
- </sect4>
-
- <sect4>
- <title>Ultrastor U14F controllers</title>
-
- <para>According to multiple reports from the net, Ultrastor ESDI
- boards work OK with FreeBSD. I lack any further info on
- particular settings.</para>
- </sect4>
- </sect3>
-
- <sect3 id="esdi-further-reading">
- <title>Further reading</title>
-
- <para>If you intend to do some serious ESDI hacking, you might want to
- have the official standard at hand:</para>
-
- <para>The latest ANSI X3T10 committee document is: Enhanced Small
- Device Interface (ESDI) [X3.170-1990/X3.170a-1991] [X3T10/792D
- Rev 11]</para>
-
- <para>On Usenet the newsgroup <ulink
- url="news:comp.periphs">comp.periphs</ulink> is a noteworthy place
- to look for more info.</para>
-
- <para>The World Wide Web (WWW) also proves to be a very handy info
- source: For info on Adaptec ESDI controllers see <ulink
- url="http://www.adaptec.com/">http://www.adaptec.com/</ulink>. For
- info on Western Digital controllers see <ulink
- url="http://www.wdc.com/">http://www.wdc.com/</ulink>.</para>
- </sect3>
-
- <sect3>
- <title>Thanks to...</title>
-
- <para>Andrew Gordon for sending me an Adaptec 2320 controller and ESDI
- disk for testing.</para>
- </sect3>
- </sect2>
-
- <sect2 id="scsi">
- <title>What is SCSI?</title>
-
- <para><emphasis>Copyright &copy; 1995, &a.wilko;. July 6,
- 1996.</emphasis></para>
-
- <para>SCSI is an acronym for Small Computer Systems Interface. It is an
- ANSI standard that has become one of the leading I/O buses in the
- computer industry. The foundation of the SCSI standard was laid by
- Shugart Associates (the same guys that gave the world the first mini
- floppy disks) when they introduced the SASI bus (Shugart Associates
- Standard Interface).</para>
-
- <para>After some time an industry effort was started to come to a more
- strict standard allowing devices from different vendors to work
- together. This effort was recognized in the ANSI SCSI-1 standard.
- The SCSI-1 standard (approximately 1985) is rapidly becoming obsolete. The
- current standard is SCSI-2 (see <link
- linkend="scsi-further-reading">Further reading</link>), with SCSI-3
- on the drawing boards.</para>
-
- <para>In addition to a physical interconnection standard, SCSI defines a
- logical (command set) standard to which disk devices must adhere.
- This standard is called the Common Command Set (CCS) and was developed
- more or less in parallel with ANSI SCSI-1. SCSI-2 includes the
- (revised) CCS as part of the standard itself. The commands are
- dependent on the type of device at hand. It does not make much sense
- of course to define a Write command for a scanner.</para>
-
- <para>The SCSI bus is a parallel bus, which comes in a number of
- variants. The oldest and most used is an 8 bit wide bus, with
- single-ended signals, carried on 50 wires. (If you do not know what
- single-ended means, do not worry, that is what this document is all
- about.) Modern designs also use 16 bit wide buses, with differential
- signals. This allows transfer speeds of 20Mbytes/second, on cables
- lengths of up to 25 meters. SCSI-2 allows a maximum bus width of 32
- bits, using an additional cable. Quickly emerging are Ultra SCSI (also
- called Fast-20) and Ultra2 (also called Fast-40). Fast-20 is 20
- million transfers per second (20 Mbytes/sec on a 8 bit bus), Fast-40
- is 40 million transfers per second (40 Mbytes/sec on a 8 bit bus).
- Most hard drives sold today are single-ended Ultra SCSI (8 or 16
- bits).</para>
-
- <para>Of course the SCSI bus not only has data lines, but also a number
- of control signals. A very elaborate protocol is part of the standard
- to allow multiple devices to share the bus in an efficient manner. In
- SCSI-2, the data is always checked using a separate parity line. In
- pre-SCSI-2 designs parity was optional.</para>
-
- <para>In SCSI-3 even faster bus types are introduced, along with a
- serial SCSI busses that reduces the cabling overhead and allows a
- higher maximum bus length. You might see names like SSA and
- fibre channel in this context. None of the serial buses are currently
- in widespread use (especially not in the typical FreeBSD environment).
- For this reason the serial bus types are not discussed any
- further.</para>
-
- <para>As you could have guessed from the description above, SCSI devices
- are intelligent. They have to be to adhere to the SCSI standard
- (which is over 2 inches thick BTW). So, for a hard disk drive for
- instance you do not specify a head/cylinder/sector to address a
- particular block, but simply the number of the block you want.
- Elaborate caching schemes, automatic bad block replacement etc are all
- made possible by this 'intelligent device' approach.</para>
-
- <para>On a SCSI bus, each possible pair of devices can communicate.
- Whether their function allows this is another matter, but the standard
- does not restrict it. To avoid signal contention, the 2 devices have
- to arbitrate for the bus before using it.</para>
-
- <para>The philosophy of SCSI is to have a standard that allows
- older-standard devices to work with newer-standard ones. So, an old
- SCSI-1 device should normally work on a SCSI-2 bus. I say Normally,
- because it is not absolutely sure that the implementation of an old
- device follows the (old) standard closely enough to be acceptable on a
- new bus. Modern devices are usually more well-behaved, because the
- standardization has become more strict and is better adhered to by the
- device manufacturers.</para>
-
- <para>Generally speaking, the chances of getting a working set of
- devices on a single bus is better when all the devices are SCSI-2 or
- newer. This implies that you do not have to dump all your old stuff
- when you get that shiny 2GB disk: I own a system on which a pre-SCSI-1
- disk, a SCSI-2 QIC tape unit, a SCSI-1 helical scan tape unit and 2
- SCSI-1 disks work together quite happily. From a performance
- standpoint you might want to separate your older and newer (=faster)
- devices however.</para>
-
- <sect3>
- <title>Components of SCSI</title>
-
- <para>As said before, SCSI devices are smart. The idea is to put the
- knowledge about intimate hardware details onto the SCSI device
- itself. In this way, the host system does not have to worry about
- things like how many heads are hard disks has, or how many tracks
- there are on a specific tape device. If you are curious, the
- standard specifies commands with which you can query your devices on
- their hardware particulars. FreeBSD uses this capability during
- boot to check out what devices are connected and whether they need
- any special treatment.</para>
-
- <para>The advantage of intelligent devices is obvious: the device
- drivers on the host can be made in a much more generic fashion,
- there is no longer a need to change (and qualify!) drivers for every
- odd new device that is introduced.</para>
-
- <para>For cabling and connectors there is a golden rule: get good
- stuff. With bus speeds going up all the time you will save yourself
- a lot of grief by using good material.</para>
-
- <para>So, gold plated connectors, shielded cabling, sturdy connector
- hoods with strain reliefs etc are the way to go. Second golden rule:
- do no use cables longer than necessary. I once spent 3 days hunting
- down a problem with a flaky machine only to discover that shortening
- the SCSI bus by 1 meter solved the problem. And the original bus
- length was well within the SCSI specification.</para>
- </sect3>
-
- <sect3>
- <title>SCSI bus types</title>
-
- <para>From an electrical point of view, there are two incompatible bus
- types: single-ended and differential. This means that there are two
- different main groups of SCSI devices and controllers, which cannot
- be mixed on the same bus. It is possible however to use special
- converter hardware to transform a single-ended bus into a
- differential one (and vice versa). The differences between the bus
- types are explained in the next sections.</para>
-
- <para>In lots of SCSI related documentation there is a sort of jargon
- in use to abbreviate the different bus types. A small list:</para>
-
- <itemizedlist>
- <listitem>
- <para>FWD: Fast Wide Differential</para>
- </listitem>
-
- <listitem>
- <para>FND: Fast Narrow Differential</para>
- </listitem>
-
- <listitem>
- <para>SE: Single Ended</para>
- </listitem>
-
- <listitem>
- <para>FN: Fast Narrow</para>
- </listitem>
-
- <listitem>
- <para>etc.</para>
- </listitem>
- </itemizedlist>
-
-
- <para>With a minor amount of imagination one can usually imagine what
- is meant.</para>
-
- <para>Wide is a bit ambiguous, it can indicate 16 or 32 bit buses. As
- far as I know, the 32 bit variant is not (yet) in use, so wide
- normally means 16 bit.</para>
-
- <para>Fast means that the timing on the bus is somewhat different, so
- that on a narrow (8 bit) bus 10 Mbytes/sec are possible instead of 5
- Mbytes/sec for 'slow' SCSI. As discussed before, bus speeds of 20
- and 40 million transfers/second are also emerging (Fast-20 == Ultra
- SCSI and Fast-40 == Ultra2 SCSI).</para>
-
- <note>
- <para>The data lines &gt; 8 are only used for data transfers and
- device addressing. The transfers of commands and status messages
- etc are only performed on the lowest 8 data lines. The standard
- allows narrow devices to operate on a wide bus. The usable bus
- width is negotiated between the devices. You have to watch your
- device addressing closely when mixing wide and narrow.</para>
- </note>
-
- <sect4>
- <title>Single ended buses</title>
-
- <para>A single-ended SCSI bus uses signals that are either 5 Volts
- or 0 Volts (indeed, TTL levels) and are relative to a COMMON
- ground reference. A singled ended 8 bit SCSI bus has
- approximately 25 ground lines, who are all tied to a single `rail'
- on all devices. A standard single ended bus has a maximum length
- of 6 meters. If the same bus is used with fast-SCSI devices, the
- maximum length allowed drops to 3 meters. Fast-SCSI means that
- instead of 5Mbytes/sec the bus allows 10Mbytes/sec
- transfers.</para>
-
- <para>Fast-20 (Ultra SCSI) and Fast-40 allow for 20 and 40 million
- transfers/second respectively. So, F20 is 20 Mbytes/second on a 8
- bit bus, 40 Mbytes/second on a 16 bit bus etc. For F20 the max
- bus length is 1.5 meters, for F40 it becomes 0.75 meters. Be
- aware that F20 is pushing the limits quite a bit, so you will
- quickly find out if your SCSI bus is electrically sound.</para>
-
- <note>
- <para>If some devices on your bus use 'fast' to communicate your
- bus must adhere to the length restrictions for fast
- buses!</para>
- </note>
-
- <para>It is obvious that with the newer fast-SCSI devices the bus
- length can become a real bottleneck. This is why the differential
- SCSI bus was introduced in the SCSI-2 standard.</para>
-
- <para>For connector pinning and connector types please refer to the
- SCSI-2 standard (see <link linkend="scsi-further-reading">Further
- reading</link>) itself, connectors etc are listed there in
- painstaking detail.</para>
-
- <para>Beware of devices using non-standard cabling. For instance
- Apple uses a 25pin D-type connecter (like the one on serial ports
- and parallel printers). Considering that the official SCSI bus
- needs 50 pins you can imagine the use of this connector needs some
- 'creative cabling'. The reduction of the number of ground wires
- they used is a bad idea, you better stick to 50 pins cabling in
- accordance with the SCSI standard. For Fast-20 and 40 do not even
- think about buses like this.</para>
- </sect4>
-
- <sect4>
- <title>Differential buses</title>
-
- <para>A differential SCSI bus has a maximum length of 25 meters.
- Quite a difference from the 3 meters for a single-ended fast-SCSI
- bus. The idea behind differential signals is that each bus signal
- has its own return wire. So, each signal is carried on a
- (preferably twisted) pair of wires. The voltage difference
- between these two wires determines whether the signal is asserted
- or de-asserted. To a certain extent the voltage difference
- between ground and the signal wire pair is not relevant (do not
- try 10 kVolts though).</para>
-
- <para>It is beyond the scope of this document to explain why this
- differential idea is so much better. Just accept that
- electrically seen the use of differential signals gives a much
- better noise margin. You will normally find differential buses in
- use for inter-cabinet connections. Because of the lower cost
- single ended is mostly used for shorter buses like inside
- cabinets.</para>
-
- <para>There is nothing that stops you from using differential stuff
- with FreeBSD, as long as you use a controller that has device
- driver support in FreeBSD. As an example, Adaptec marketed the
- AHA1740 as a single ended board, whereas the AHA1744 was
- differential. The software interface to the host is identical for
- both.</para>
- </sect4>
-
- <sect4>
- <title>Terminators</title>
-
- <para>Terminators in SCSI terminology are resistor networks that are
- used to get a correct impedance matching. Impedance matching is
- important to get clean signals on the bus, without reflections or
- ringing. If you once made a long distance telephone call on a bad
- line you probably know what reflections are. With 20Mbytes/sec
- traveling over your SCSI bus, you do not want signals echoing
- back.</para>
-
- <para>Terminators come in various incarnations, with more or less
- sophisticated designs. Of course, there are internal and external
- variants. Many SCSI devices come with a number of sockets in
- which a number of resistor networks can (must be!) installed. If
- you remove terminators from a device, carefully store them. You
- will need them when you ever decide to reconfigure your SCSI bus.
- There is enough variation in even these simple tiny things to make
- finding the exact replacement a frustrating business. There are
- also SCSI devices that have a single jumper to enable or disable a
- built-in terminator. There are special terminators you can stick
- onto a flat cable bus. Others look like external connectors, or a
- connector hood without a cable. So, lots of choice as you can
- see.</para>
-
- <para>There is much debate going on if and when you should switch
- from simple resistor (passive) terminators to active terminators.
- Active terminators contain slightly more elaborate circuit to give
- cleaner bus signals. The general consensus seems to be that the
- usefulness of active termination increases when you have long
- buses and/or fast devices. If you ever have problems with your
- SCSI buses you might consider trying an active terminator. Try to
- borrow one first, they reputedly are quite expensive.</para>
-
- <para>Please keep in mind that terminators for differential and
- single-ended buses are not identical. You should <emphasis>not
- mix</emphasis> the two variants.</para>
-
- <para>OK, and now where should you install your terminators? This is
- by far the most misunderstood part of SCSI. And it is by far the
- simplest. The rule is: <emphasis>every single line on the SCSI
- bus has 2 (two) terminators, one at each end of the
- bus.</emphasis> So, two and not one or three or whatever. Do
- yourself a favor and stick to this rule. It will save you endless
- grief, because wrong termination has the potential to introduce
- highly mysterious bugs. (Note the <quote>potential</quote> here;
- the nastiest part is that it may or may not work.)</para>
-
- <para>A common pitfall is to have an internal (flat) cable in a
- machine and also an external cable attached to the controller. It
- seems almost everybody forgets to remove the terminators from the
- controller. The terminator must now be on the last external
- device, and not on the controller! In general, every
- reconfiguration of a SCSI bus must pay attention to this.</para>
-
- <note>
- <para>Termination is to be done on a per-line basis. This means
- if you have both narrow and wide buses connected to the same
- host adapter, you need to enable termination on the higher 8
- bits of the bus on the adapter (as well as the last devices on
- each bus, of course).</para>
- </note>
-
- <para>What I did myself is remove all terminators from my SCSI
- devices and controllers. I own a couple of external terminators,
- for both the Centronics-type external cabling and for the internal
- flat cable connectors. This makes reconfiguration much
- easier.</para>
-
- <para>On modern devices, sometimes integrated terminators are used.
- These things are special purpose integrated circuits that can be
- enabled or disabled with a control pin. It is not necessary to
- physically remove them from a device. You may find them on newer
- host adapters, sometimes they are software configurable, using
- some sort of setup tool. Some will even auto-detect the cables
- attached to the connectors and automatically set up the
- termination as necessary. At any rate, consult your
- documentation!</para>
- </sect4>
-
- <sect4>
- <title>Terminator power</title>
-
- <para>The terminators discussed in the previous chapter need power
- to operate properly. On the SCSI bus, a line is dedicated to this
- purpose. So, simple huh?</para>
-
- <para>Not so. Each device can provide its own terminator power to
- the terminator sockets it has on-device. But if you have external
- terminators, or when the device supplying the terminator power to
- the SCSI bus line is switched off you are in trouble.</para>
-
- <para>The idea is that initiators (these are devices that initiate
- actions on the bus, a discussion follows) must supply terminator
- power. All SCSI devices are allowed (but not required) to supply
- terminator power.</para>
-
- <para>To allow for un-powered devices on a bus, the terminator power
- must be supplied to the bus via a diode. This prevents the
- backflow of current to un-powered devices.</para>
-
- <para>To prevent all kinds of nastiness, the terminator power is
- usually fused. As you can imagine, fuses might blow. This can,
- but does not have to, lead to a non functional bus. If multiple
- devices supply terminator power, a single blown fuse will not put
- you out of business. A single supplier with a blown fuse
- certainly will. Clever external terminators sometimes have a LED
- indication that shows whether terminator power is present.</para>
-
- <para>In newer designs auto-restoring fuses that 'reset' themselves
- after some time are sometimes used.</para>
- </sect4>
-
- <sect4>
- <title>Device addressing</title>
-
- <para>Because the SCSI bus is, ehh, a bus there must be a way to
- distinguish or address the different devices connected to
- it.</para>
-
- <para>This is done by means of the SCSI or target ID. Each device
- has a unique target ID. You can select the ID to which a device
- must respond using a set of jumpers, or a dip switch, or something
- similar. Some SCSI host adapters let you change the target ID
- from the boot menu. (Yet some others will not let you change the
- ID from 7.) Consult the documentation of your device for more
- information.</para>
-
- <para>Beware of multiple devices configured to use the same ID.
- Chaos normally reigns in this case. A pitfall is that one of the
- devices sharing the same ID sometimes even manages to answer to
- I/O requests!</para>
-
- <para>For an 8 bit bus, a maximum of 8 targets is possible. The
- maximum is 8 because the selection is done bitwise using the 8
- data lines on the bus. For wide buses this increases to the
- number of data lines (usually 16).</para>
-
- <note>
- <para>A narrow SCSI device can not communicate with a SCSI device
- with a target ID larger than 7. This means it is generally not
- a good idea to move your SCSI host adapter's target ID to
- something higher than 7 (or your CDROM will stop
- working).</para>
- </note>
-
- <para>The higher the SCSI target ID, the higher the priority the
- devices has. When it comes to arbitration between devices that
- want to use the bus at the same time, the device that has the
- highest SCSI ID will win. This also means that the SCSI host
- adapter usually uses target ID 7. Note however that the lower 8
- IDs have higher priorities than the higher 8 IDs on a wide-SCSI
- bus. Thus, the order of target IDs is: [7 6 .. 1 0 15 14 .. 9 8]
- on a wide-SCSI system. (If you you are wondering why the lower 8
- have higher priority, read the previous paragraph for a
- hint.)</para>
-
- <para>For a further subdivision, the standard allows for Logical
- Units or LUNs for short. A single target ID may have multiple
- LUNs. For example, a tape device including a tape changer may
- have LUN 0 for the tape device itself, and LUN 1 for the tape
- changer. In this way, the host system can address each of the
- functional units of the tape changer as desired.</para>
- </sect4>
-
- <sect4>
- <title>Bus layout</title>
-
- <para>SCSI buses are linear. So, not shaped like Y-junctions, star
- topologies, rings, cobwebs or whatever else people might want to
- invent. One of the most common mistakes is for people with
- wide-SCSI host adapters to connect devices on all three connecters
- (external connector, internal wide connector, internal narrow
- connector). Don't do that. It may appear to work if you are
- really lucky, but I can almost guarantee that your system will
- stop functioning at the most unfortunate moment (this is also
- known as <quote>Murphy's law</quote>).</para>
-
- <para>You might notice that the terminator issue discussed earlier
- becomes rather hairy if your bus is not linear. Also, if you have
- more connectors than devices on your internal SCSI cable, make
- sure you attach devices on connectors on both ends instead of
- using the connectors in the middle and let one or both ends
- dangle. This will screw up the termination of the bus.</para>
-
- <para>The electrical characteristics, its noise margins and
- ultimately the reliability of it all are tightly related to linear
- bus rule.</para>
-
- <para><emphasis>Stick to the linear bus rule!</emphasis></para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Using SCSI with FreeBSD</title>
-
- <sect4>
- <title>About translations, BIOSes and magic...</title>
-
- <para>As stated before, you should first make sure that you have a
- electrically sound bus.</para>
-
- <para>When you want to use a SCSI disk on your PC as boot disk, you
- must aware of some quirks related to PC BIOSes. The PC BIOS in
- its first incarnation used a low level physical interface to the
- hard disk. So, you had to tell the BIOS (using a setup tool or a
- BIOS built-in setup) how your disk physically looked like. This
- involved stating number of heads, number of cylinders, number of
- sectors per track, obscure things like precompensation and reduced
- write current cylinder etc.</para>
-
- <para>One might be inclined to think that since SCSI disks are smart
- you can forget about this. Alas, the arcane setup issue is still
- present today. The system BIOS needs to know how to access your
- SCSI disk with the head/cyl/sector method in order to load the
- FreeBSD kernel during boot.</para>
-
- <para>The SCSI host adapter or SCSI controller you have put in your
- AT/EISA/PCI/whatever bus to connect your disk therefore has its
- own on-board BIOS. During system startup, the SCSI BIOS takes
- over the hard disk interface routines from the system BIOS. To
- fool the system BIOS, the system setup is normally set to No hard
- disk present. Obvious, isn't it?</para>
-
- <para>The SCSI BIOS itself presents to the system a so called
- <emphasis>translated</emphasis> drive. This means that a fake
- drive table is constructed that allows the PC to boot the drive.
- This translation is often (but not always) done using a pseudo
- drive with 64 heads and 32 sectors per track. By varying the
- number of cylinders, the SCSI BIOS adapts to the actual drive
- size. It is useful to note that 32 * 64 / 2 = the size of your
- drive in megabytes. The division by 2 is to get from disk blocks
- that are normally 512 bytes in size to Kbytes.</para>
-
- <para>Right. All is well now?! No, it is not. The system BIOS has
- another quirk you might run into. The number of cylinders of a
- bootable hard disk cannot be greater than 1024. Using the
- translation above, this is a show-stopper for disks greater than 1
- GB. With disk capacities going up all the time this is causing
- problems.</para>
-
- <para>Fortunately, the solution is simple: just use another
- translation, e.g. with 128 heads instead of 32. In most cases new
- SCSI BIOS versions are available to upgrade older SCSI host
- adapters. Some newer adapters have an option, in the form of a
- jumper or software setup selection, to switch the translation the
- SCSI BIOS uses.</para>
-
- <para>It is very important that <emphasis>all</emphasis> operating
- systems on the disk use the <emphasis>same translation</emphasis>
- to get the right idea about where to find the relevant partitions.
- So, when installing FreeBSD you must answer any questions about
- heads/cylinders etc using the translated values your host adapter
- uses.</para>
-
- <para>Failing to observe the translation issue might lead to
- un-bootable systems or operating systems overwriting each others
- partitions. Using fdisk you should be able to see all
- partitions.</para>
-
- <para>You might have heard some talk of <quote>lying</quote> devices?
- Older FreeBSD kernels used to report the geometry of SCSI disks
- when booting. An example from one of my systems:</para>
-
- <screen>aha0 targ 0 lun 0: &lt;MICROP 1588-15MB1057404HSP4&gt;
-sd0: 636MB (1303250 total sec), 1632 cyl, 15 head, 53 sec, bytes/sec 512</screen>
-
- <para>Newer kernels usually do not report this information.
- e.g.</para>
-
- <screen>(bt0:0:0): "SEAGATE ST41651 7574" type 0 fixed SCSI 2
-sd0(bt0:0:0): Direct-Access 1350MB (2766300 512 byte sectors)</screen>
-
- <para>Why has this changed?</para>
-
- <para>This info is retrieved from the SCSI disk itself. Newer disks
- often use a technique called zone bit recording. The idea is that
- on the outer cylinders of the drive there is more space so more
- sectors per track can be put on them. This results in disks that
- have more tracks on outer cylinders than on the inner cylinders
- and, last but not least, have more capacity. You can imagine that
- the value reported by the drive when inquiring about the geometry
- now becomes suspect at best, and nearly always misleading. When
- asked for a geometry , it is nearly always better to supply the
- geometry used by the BIOS, or <emphasis>if the BIOS is never going
- to know about this disk</emphasis>, (e.g. it is not a booting
- disk) to supply a fictitious geometry that is convenient.</para>
- </sect4>
-
- <sect4>
- <title>SCSI subsystem design</title>
-
- <para>FreeBSD uses a layered SCSI subsystem. For each different
- controller card a device driver is written. This driver knows all
- the intimate details about the hardware it controls. The driver
- has a interface to the upper layers of the SCSI subsystem through
- which it receives its commands and reports back any status.</para>
-
- <para>On top of the card drivers there are a number of more generic
- drivers for a class of devices. More specific: a driver for tape
- devices (abbreviation: st), magnetic disks (sd), CDROMs (cd) etc.
- In case you are wondering where you can find this stuff, it all
- lives in <filename>/sys/scsi</filename>. See the man pages in
- section 4 for more details.</para>
-
- <para>The multi level design allows a decoupling of low-level bit
- banging and more high level stuff. Adding support for another
- piece of hardware is a much more manageable problem.</para>
- </sect4>
-
- <sect4>
- <title>Kernel configuration</title>
-
- <para>Dependent on your hardware, the kernel configuration file must
- contain one or more lines describing your host adapter(s). This
- includes I/O addresses, interrupts etc. Consult the man page for
- your adapter driver to get more info. Apart from that, check out
- <filename>/sys/i386/conf/LINT</filename> for an overview of a
- kernel config file. <filename>LINT</filename> contains every
- possible option you can dream of. It does
- <emphasis>not</emphasis> imply <filename>LINT</filename> will
- actually get you to a working kernel at all.</para>
-
- <para>Although it is probably stating the obvious: the kernel config
- file should reflect your actual hardware setup. So, interrupts,
- I/O addresses etc must match the kernel config file. During
- system boot messages will be displayed to indicate whether the
- configured hardware was actually found.</para>
-
- <note>
- <para>Note that most of the EISA/PCI drivers (namely
- <devicename>ahb</devicename>, <devicename>ahc</devicename>,
- <devicename>ncr</devicename> and <devicename>amd</devicename>
- will automatically obtain the correct parameters from the host
- adapters themselves at boot time; thus, you just need to write,
- for instance, <literal>controller ahc0</literal>.</para>
- </note>
-
- <para>An example loosely based on the FreeBSD 2.2.5-Release kernel
- config file <filename>LINT</filename> with some added comments
- (between []):</para>
-
- <programlisting># SCSI host adapters: `aha', `ahb', `aic', `bt', `nca'
-#
-# aha: Adaptec 154x
-# ahb: Adaptec 174x
-# ahc: Adaptec 274x/284x/294x
-# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!)
-# amd: AMD 53c974 based SCSI cards (e.g., Tekram DC-390 and 390T)
-# bt: Most Buslogic controllers
-# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130
-# ncr: NCR/Symbios 53c810/815/825/875 etc based SCSI cards
-# uha: UltraStore 14F and 34F
-# sea: Seagate ST01/02 8 bit controller (slow!)
-# wds: Western Digital WD7000 controller (no scatter/gather!).
-#
-
-[For an Adaptec AHA274x/284x/294x/394x etc controller]
-controller ahc0
-
-[For an NCR/Symbios 53c875 based controller]
-controller ncr0
-
-[For an Ultrastor adapter]
-controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
-
-# Map SCSI buses to specific SCSI adapters
-controller scbus0 at ahc0
-controller scbus2 at ncr0
-controller scbus1 at uha0
-
-# The actual SCSI devices
-disk sd0 at scbus0 target 0 unit 0 [SCSI disk 0 is at scbus 0, LUN 0]
-disk sd1 at scbus0 target 1 [implicit LUN 0 if omitted]
-disk sd2 at scbus1 target 3 [SCSI disk on the uha0]
-disk sd3 at scbus2 target 4 [SCSI disk on the ncr0]
-tape st1 at scbus0 target 6 [SCSI tape at target 6]
-device cd0 at scbus? [the first ever CDROM found, no wiring]</programlisting>
-
- <para>The example above tells the kernel to look for a ahc (Adaptec
- 274x) controller, then for an NCR/Symbios board, and so on. The
- lines following the controller specifications tell the kernel to
- configure specific devices but <emphasis>only</emphasis> attach
- them when they match the target ID and LUN specified on the
- corresponding bus.</para>
-
- <para>Wired down devices get <quote>first shot</quote> at the unit
- numbers so the first non <quote>wired down</quote> device, is
- allocated the unit number one greater than the highest
- <quote>wired down</quote> unit number for that kind of device. So,
- if you had a SCSI tape at target ID 2 it would be configured as
- st2, as the tape at target ID 6 is wired down to unit number
- 1.</para>
-
- <note>
- <para>Wired down devices need not be found to get their unit
- number. The unit number for a wired down device is reserved for
- that device, even if it is turned off at boot time. This allows
- the device to be turned on and brought on-line at a later time,
- without rebooting. Notice that a device's unit number has
- <emphasis>no</emphasis> relationship with its target ID on the
- SCSI bus.</para>
- </note>
-
- <para>Below is another example of a kernel config file as used by
- FreeBSD version &lt; 2.0.5. The difference with the first example
- is that devices are not <quote>wired down</quote>. <quote>Wired
- down</quote> means that you specify which SCSI target belongs to
- which device.</para>
-
- <para>A kernel built to the config file below will attach the first
- SCSI disk it finds to sd0, the second disk to sd1 etc. If you ever
- removed or added a disk, all other devices of the same type (disk
- in this case) would 'move around'. This implies you have to
- change <filename>/etc/fstab</filename> each time.</para>
-
- <para>Although the old style still works, you are
- <emphasis>strongly</emphasis> recommended to use this new feature.
- It will save you a lot of grief whenever you shift your hardware
- around on the SCSI buses. So, when you re-use your old trusty
- config file after upgrading from a pre-FreeBSD2.0.5.R system check
- this out.</para>
-
- <programlisting>[driver for Adaptec 174x]
-controller ahb0 at isa? bio irq 11 vector ahbintr
-
-[for Adaptec 154x]
-controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr
-
-[for Seagate ST01/02]
-controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr
-
-controller scbus0
-
-device sd0 [support for 4 SCSI harddisks, sd0 up sd3]
-device st0 [support for 2 SCSI tapes]
-
-[for the CDROM]
-device cd0 #Only need one of these, the code dynamically grows</programlisting>
-
- <para>Both examples support SCSI disks. If during boot more devices
- of a specific type (e.g. sd disks) are found than are configured
- in the booting kernel, the system will simply allocate more
- devices, incrementing the unit number starting at the last number
- <quote>wired down</quote>. If there are no <quote>wired
- down</quote> devices then counting starts at unit 0.</para>
-
- <para>Use <command>man 4 scsi</command> to check for the latest info
- on the SCSI subsystem. For more detailed info on host adapter
- drivers use e.g., <command>man 4 ahc</command> for info on the
- Adaptec 294x driver.</para>
- </sect4>
-
- <sect4>
- <title>Tuning your SCSI kernel setup</title>
-
- <para>Experience has shown that some devices are slow to respond to
- INQUIRY commands after a SCSI bus reset (which happens at boot
- time). An INQUIRY command is sent by the kernel on boot to see
- what kind of device (disk, tape, CDROM etc.) is connected to a
- specific target ID. This process is called device probing by the
- way.</para>
-
- <para>To work around the 'slow response' problem, FreeBSD allows a
- tunable delay time before the SCSI devices are probed following a
- SCSI bus reset. You can set this delay time in your kernel
- configuration file using a line like:</para>
-
- <programlisting>options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device</programlisting>
-
- <para>This line sets the delay time to 15 seconds. On my own system
- I had to use 3 seconds minimum to get my trusty old CDROM drive
- to be recognized. Start with a high value (say 30 seconds or so)
- when you have problems with device recognition. If this helps,
- tune it back until it just stays working.</para>
- </sect4>
-
- <sect4 id="scsi-rogue-devices">
- <title>Rogue SCSI devices</title>
-
- <para>Although the SCSI standard tries to be complete and concise,
- it is a complex standard and implementing things correctly is no
- easy task. Some vendors do a better job then others.</para>
-
- <para>This is exactly where the <quote>rogue</quote> devices come
- into view. Rogues are devices that are recognized by the FreeBSD
- kernel as behaving slightly (...) non-standard. Rogue devices are
- reported by the kernel when booting. An example for two of my
- cartridge tape units:</para>
-
- <screen>Feb 25 21:03:34 yedi /kernel: ahb0 targ 5 lun 0: &lt;TANDBERG TDC 3600 -06:&gt;
-Feb 25 21:03:34 yedi /kernel: st0: Tandberg tdc3600 is a known rogue
-
-Mar 29 21:16:37 yedi /kernel: aha0 targ 5 lun 0: &lt;ARCHIVE VIPER 150 21247-005&gt;
-Mar 29 21:16:37 yedi /kernel: st1: Archive Viper 150 is a known rogue </screen>
-
- <para>For instance, there are devices that respond to all LUNs on a
- certain target ID, even if they are actually only one device. It
- is easy to see that the kernel might be fooled into believing that
- there are 8 LUNs at that particular target ID. The confusion this
- causes is left as an exercise to the reader.</para>
-
- <para>The SCSI subsystem of FreeBSD recognizes devices with bad
- habits by looking at the INQUIRY response they send when probed.
- Because the INQUIRY response also includes the version number of
- the device firmware, it is even possible that for different
- firmware versions different workarounds are used. See e.g.
- <filename>/sys/scsi/st.c</filename> and
- <filename>/sys/scsi/scsiconf.c</filename> for more info on how
- this is done.</para>
-
- <para>This scheme works fine, but keep in mind that it of course
- only works for devices that are known to be weird. If you are the
- first to connect your bogus Mumbletech SCSI CDROM you might be
- the one that has to define which workaround is needed.</para>
-
- <para>After you got your Mumbletech working, please send the
- required workaround to the FreeBSD development team for inclusion
- in the next release of FreeBSD. Other Mumbletech owners will be
- grateful to you.</para>
- </sect4>
-
- <sect4>
- <title>Multiple LUN devices</title>
-
- <para>In some cases you come across devices that use multiple
- logical units (LUNs) on a single SCSI ID. In most cases FreeBSD
- only probes devices for LUN 0. An example are so called bridge
- boards that connect 2 non-SCSI harddisks to a SCSI bus (e.g. an
- Emulex MD21 found in old Sun systems).</para>
-
- <para>This means that any devices with LUNs != 0 are not normally
- found during device probe on system boot. To work around this
- problem you must add an appropriate entry in /sys/scsi/scsiconf.c
- and rebuild your kernel.</para>
-
- <para>Look for a struct that is initialized like below:</para>
-
- <programlisting>{
- T_DIRECT, T_FIXED, "MAXTOR", "XT-4170S", "B5A",
- "mx1", SC_ONE_LU
-}</programlisting>
-
- <para>For you Mumbletech BRIDGE2000 that has more than one LUN, acts
- as a SCSI disk and has firmware revision 123 you would add
- something like:</para>
-
- <programlisting>{
- T_DIRECT, T_FIXED, "MUMBLETECH", "BRIDGE2000", "123",
- "sd", SC_MORE_LUS
-}</programlisting>
-
- <para>The kernel on boot scans the inquiry data it receives against
- the table and acts accordingly. See the source for more
- info.</para>
- </sect4>
-
- <sect4>
- <title>Tagged command queuing</title>
-
- <para>Modern SCSI devices, particularly magnetic disks,
- support what is called tagged command queuing (TCQ).</para>
-
- <para>In a nutshell, TCQ allows the device to have multiple I/O
- requests outstanding at the same time. Because the device is
- intelligent, it can optimize its operations (like head
- positioning) based on its own request queue. On SCSI devices
- like RAID (Redundant Array of Independent Disks) arrays the TCQ
- function is indispensable to take advantage of the device's
- inherent parallelism.</para>
-
- <para>Each I/O request is uniquely identified by a <quote>tag</quote>
- (hence the name tagged command queuing) and this tag is used by
- FreeBSD to see which I/O in the device drivers queue is reported
- as complete by the device.</para>
-
- <para>It should be noted however that TCQ requires device driver
- support and that some devices implemented it <quote>not quite
- right</quote> in their firmware. This problem bit me once, and it
- leads to highly mysterious problems. In such cases, try to
- disable TCQ.</para>
- </sect4>
-
- <sect4>
- <title>Busmaster host adapters</title>
-
- <para>Most, but not all, SCSI host adapters are bus mastering
- controllers. This means that they can do I/O on their own without
- putting load onto the host CPU for data movement.</para>
-
- <para>This is of course an advantage for a multitasking operating
- system like FreeBSD. It must be noted however that there might be
- some rough edges.</para>
-
- <para>For instance an Adaptec 1542 controller can be set to use
- different transfer speeds on the host bus (ISA or AT in this
- case). The controller is settable to different rates because not
- all motherboards can handle the higher speeds. Problems like
- hang-ups, bad data etc might be the result of using a higher data
- transfer rate then your motherboard can stomach.</para>
-
- <para>The solution is of course obvious: switch to a lower data
- transfer rate and try if that works better.</para>
-
- <para>In the case of a Adaptec 1542, there is an option that can be
- put into the kernel config file to allow dynamic determination of
- the right, read: fastest feasible, transfer rate. This option is
- disabled by default:</para>
-
- <programlisting>options "TUNE_1542" #dynamic tune of bus DMA speed</programlisting>
-
- <para>Check the man pages for the host adapter that you use. Or
- better still, use the ultimate documentation (read: driver
- source).</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Tracking down problems</title>
-
- <para>The following list is an attempt to give a guideline for the
- most common SCSI problems and their solutions. It is by no means
- complete.</para>
-
- <itemizedlist>
- <listitem>
- <para>Check for loose connectors and cables.</para>
- </listitem>
-
- <listitem>
- <para>Check and double check the location and number of your
- terminators.</para>
- </listitem>
-
- <listitem>
- <para>Check if your bus has at least one supplier of terminator
- power (especially with external terminators.</para>
- </listitem>
-
- <listitem>
- <para>Check if no double target IDs are used.</para>
- </listitem>
-
- <listitem>
- <para>Check if all devices to be used are powered up.</para>
- </listitem>
-
- <listitem>
- <para>Make a minimal bus config with as little devices as
- possible.</para>
- </listitem>
-
- <listitem>
- <para>If possible, configure your host adapter to use slow bus
- speeds.</para>
- </listitem>
-
- <listitem>
- <para>Disable tagged command queuing to make things as simple as
- possible (for a NCR host adapter based system see man
- ncrcontrol)</para>
- </listitem>
-
- <listitem>
- <para>If you can compile a kernel, make one with the
- <literal>SCSIDEBUG</literal> option, and try accessing the
- device with debugging turned on for that device. If your device
- does not even probe at startup, you may have to define the
- address of the device that is failing, and the desired debug
- level in <filename>/sys/scsi/scsidebug.h</filename>. If it
- probes but just does not work, you can use the
- &man.scsi.8; command to dynamically set a debug level to
- it in a running kernel (if <literal>SCSIDEBUG</literal> is
- defined). This will give you <emphasis>copious</emphasis>
- debugging output with which to confuse the gurus. See
- <command>man 4 scsi</command> for more exact information. Also
- look at <command>man 8 scsi</command>.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3 id="scsi-further-reading">
- <title>Further reading</title>
-
- <para>If you intend to do some serious SCSI hacking, you might want to
- have the official standard at hand:</para>
-
- <para>Approved American National Standards can be purchased from
- ANSI at
-
- <address>
- <otheraddr>13th Floor</otheraddr>
- <street>11 West 42nd Street</street>
- <city>New York</city>
- <state>NY</state> <postcode>10036</postcode>
- Sales Dept: <phone>(212) 642-4900</phone>
- </address>
- </para>
-
- <para>You can also buy many ANSI
- standards and most committee draft documents from Global
- Engineering Documents,
-
- <address>
- <street>15 Inverness Way East</street>
- <city>Englewood</city>
- <state>CO</state>, <postcode>80112-5704</postcode>
- Phone: <phone>(800) 854-7179</phone>
- Outside USA and Canada: <phone>(303) 792-2181</phone>
- Fax: <fax>(303) 792- 2192</fax>
- </address>
- </para>
-
- <para>Many X3T10 draft documents are available electronically on the
- SCSI BBS (719-574-0424) and on the <hostid
- role="fqdn">ncrinfo.ncr.com</hostid> anonymous ftp site.</para>
-
- <para>Latest X3T10 committee documents are:</para>
-
- <itemizedlist>
- <listitem>
- <para>AT Attachment (ATA or IDE) [X3.221-1994]
- (<emphasis>Approved</emphasis>)</para>
- </listitem>
-
- <listitem>
- <para>ATA Extensions (ATA-2) [X3T10/948D Rev 2i]</para>
- </listitem>
-
- <listitem>
- <para>Enhanced Small Device Interface (ESDI)
- [X3.170-1990/X3.170a-1991]
- (<emphasis>Approved</emphasis>)</para>
- </listitem>
-
- <listitem>
- <para>Small Computer System Interface &mdash; 2 (SCSI-2)
- [X3.131-1994] (<emphasis>Approved</emphasis>)</para>
- </listitem>
-
- <listitem>
- <para>SCSI-2 Common Access Method Transport and SCSI Interface
- Module (CAM) [X3T10/792D Rev 11]</para>
- </listitem>
- </itemizedlist>
-
- <para>Other publications that might provide you with additional
- information are:</para>
-
- <itemizedlist>
- <listitem>
- <para><quote>SCSI: Understanding the Small Computer System
- Interface</quote>, written by NCR Corporation. Available from:
- Prentice Hall, Englewood Cliffs, NJ, 07632 Phone: (201) 767-5937
- ISBN 0-13-796855-8</para>
- </listitem>
-
- <listitem>
- <para><quote>Basics of SCSI</quote>, a SCSI tutorial written by
- Ancot Corporation Contact Ancot for availability information at:
- Phone: (415) 322-5322 Fax: (415) 322-0455</para>
- </listitem>
-
- <listitem>
- <para><quote>SCSI Interconnection Guide Book</quote>, an AMP
- publication (dated 4/93, Catalog 65237) that lists the various
- SCSI connectors and suggests cabling schemes. Available from
- AMP at (800) 522-6752 or (717) 564-0100</para>
- </listitem>
-
- <listitem>
- <para><quote>Fast Track to SCSI</quote>, A Product Guide written by
- Fujitsu. Available from: Prentice Hall, Englewood Cliffs, NJ,
- 07632 Phone: (201) 767-5937 ISBN 0-13-307000-X</para>
- </listitem>
-
- <listitem>
- <para><quote>The SCSI Bench Reference</quote>, <quote>The SCSI
- Encyclopedia</quote>, and the <quote>SCSI Tutor</quote>, ENDL
- Publications, 14426 Black Walnut Court, Saratoga CA, 95070
- Phone: (408) 867-6642</para>
- </listitem>
-
- <listitem>
- <para><quote>Zadian SCSI Navigator</quote> (quick ref. book) and
- <quote>Discover the Power of SCSI</quote> (First book along with
- a one-hour video and tutorial book), Zadian Software, Suite 214,
- 1210 S. Bascom Ave., San Jose, CA 92128, (408) 293-0800</para>
- </listitem>
- </itemizedlist>
-
- <para>On Usenet the newsgroups <ulink
- url="news:comp.periphs.scsi">comp.periphs.scsi</ulink> and <ulink
- url="news:comp.periphs">comp.periphs</ulink> are noteworthy places
- to look for more info. You can also find the SCSI-Faq there, which
- is posted periodically.</para>
-
- <para>Most major SCSI device and host adapter suppliers operate ftp
- sites and/or BBS systems. They may be valuable sources of
- information about the devices you own.</para>
- </sect3>
- </sect2>
-
- <sect2 id="hw-storage-controllers">
- <title>* Disk/tape controllers</title>
-
- <sect3>
- <title>* SCSI</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>* IDE</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>* Floppy</title>
-
- <para></para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Hard drives</title>
-
- <sect3>
- <title>SCSI hard drives</title>
-
- <para><emphasis>Contributed by &a.asami;. 17 February
- 1998.</emphasis></para>
-
- <para>As mentioned in the <link linkend="scsi">SCSI</link> section,
- virtually all SCSI hard drives sold today are SCSI-2 compliant and
- thus will work fine as long as you connect them to a supported SCSI
- host adapter. Most problems people encounter are either due to
- badly designed cabling (cable too long, star topology, etc.),
- insufficient termination, or defective parts. Please refer to the
- <link linkend="scsi">SCSI</link> section first if your SCSI hard
- drive is not working. However, there are a couple of things you may
- want to take into account before you purchase SCSI hard drives for
- your system.</para>
-
- <sect4>
- <title>Rotational speed</title>
-
- <para>Rotational speeds of SCSI drives sold today range from around
- 4,500RPM to 10,000RPM. Most of them are either 5,400RPM or
- 7,200RPM. Even though the 7,200RPM drives can generally transfer
- data faster, they run considerably hotter than their 5,400RPM
- counterparts. A large fraction of today's disk drive malfunctions
- are heat-related. If you do not have very good cooling in your PC
- case, you may want to stick with 5,400RPM or slower drives.</para>
-
- <para>Note that newer drives, with higher areal recording densities,
- can deliver much more bits per rotation than older ones. Today's
- top-of-line 5,400RPM drives can sustain a throughput comparable to
- 7,200RPM drives of one or two model generations ago. The number
- to find on the spec sheet for bandwidth is <quote>internal data
- (or transfer) rate</quote>. It is usually in megabits/sec so
- divide it by 8 and you'll get the rough approximation of how much
- megabytes/sec you can get out of the drive.</para>
-
- <para>(If you are a speed maniac and want a 10,000RPM drive for your
- cute little PC, be my guest; however, those drives become
- extremely hot. Don't even think about it if you don't have a fan
- blowing air <emphasis>directly at</emphasis> the drive or a
- properly ventilated disk enclosure.)</para>
-
- <para>Obviously, the latest 10,000RPM drives and 7,200RPM drives can
- deliver more data than the latest 5,400RPM drives, so if absolute
- bandwidth is the necessity for your applications, you have little
- choice but to get the faster drives. Also, if you need low
- latency, faster drives are better; not only do they usually have
- lower average seek times, but also the rotational delay is one
- place where slow-spinning drives can never beat a faster one.
- (The average rotational latency is half the time it takes to
- rotate the drive once; thus, it's 3 milliseconds for 10,000RPM
- drives, 4.2ms for 7,200RPM drives and 5.6ms for 5,400RPM drives.)
- Latency is seek time plus rotational delay. Make sure you
- understand whether you need low latency or more accesses per
- second, though; in the latter case (e.g., news servers), it may
- not be optimal to purchase one big fast drive. You can achieve
- similar or even better results by using the ccd (concatenated
- disk) driver to create a striped disk array out of multiple slower
- drives for comparable overall cost.</para>
-
- <para>Make sure you have adequate air flow around the drive,
- especially if you are going to use a fast-spinning drive. You
- generally need at least 1/2" (1.25cm) of spacing above and below a
- drive. Understand how the air flows through your PC case. Most
- cases have the power supply suck the air out of the back. See
- where the air flows in, and put the drive where it will have the
- largest volume of cool air flowing around it. You may need to seal
- some unwanted holes or add a new fan for effective cooling.</para>
-
- <para>Another consideration is noise. Many 7,200 or faster drives
- generate a high-pitched whine which is quite unpleasant to most
- people. That, plus the extra fans often required for cooling, may
- make 7,200 or faster drives unsuitable for some office and home
- environments.</para>
- </sect4>
-
- <sect4>
- <title>Form factor</title>
-
- <para>Most SCSI drives sold today are of 3.5" form factor. They
- come in two different heights; 1.6" (<quote>half-height</quote>) or
- 1" (<quote>low-profile</quote>). The half-height drive is the same
- height as a CDROM drive. However, don't forget the spacing rule
- mentioned in the previous section. If you have three standard
- 3.5" drive bays, you will not be able to put three half-height
- drives in there (without frying them, that is).</para>
- </sect4>
-
- <sect4>
- <title>Interface</title>
-
- <para>The majority of SCSI hard drives sold today are Ultra or
- Ultra-wide SCSI. The maximum bandwidth of Ultra SCSI is 20MB/sec,
- and Ultra-wide SCSI is 40MB/sec. There is no difference in max
- cable length between Ultra and Ultra-wide; however, the more
- devices you have on the same bus, the sooner you will start having
- bus integrity problems. Unless you have a well-designed disk
- enclosure, it is not easy to make more than 5 or 6 Ultra SCSI
- drives work on a single bus.</para>
-
- <para>On the other hand, if you need to connect many drives, going
- for Fast-wide SCSI may not be a bad idea. That will have the same
- max bandwidth as Ultra (narrow) SCSI, while electronically it's
- much easier to get it <quote>right</quote>. My advice would be: if
- you want to connect many disks, get wide SCSI drives; they usually
- cost a little more but it may save you down the road. (Besides,
- if you can't afford the cost difference, you shouldn't be building
- a disk array.)</para>
-
- <para>There are two variant of wide SCSI drives; 68-pin and 80-pin
- SCA (Single Connector Attach). The SCA drives don't have a
- separate 4-pin power connector, and also read the SCSI ID settings
- through the 80-pin connector. If you are really serious about
- building a large storage system, get SCA drives and a good SCA
- enclosure (dual power supply with at least one extra fan). They
- are more electronically sound than 68-pin counterparts because
- there is no <quote>stub</quote> of the SCSI bus inside the disk
- canister as in arrays built from 68-pin drives. They are easier
- to install too (you just need to screw the drive in the canister,
- instead of trying to squeeze in your fingers in a tight place to
- hook up all the little cables (like the SCSI ID and disk activity
- LED lines).</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>* IDE hard drives</title>
-
- <para></para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Tape drives</title>
-
- <para><emphasis>Contributed by &a.jmb;. 2 July
- 1996.</emphasis></para>
-
- <sect3>
- <title>General tape access commands</title>
-
- <para>&man.mt.1; provides generic access to the tape drives. Some of
- the more common commands are <command>rewind</command>,
- <command>erase</command>, and <command>status</command>. See the
- &man.mt.1; manual page for a detailed description.</para>
- </sect3>
-
- <sect3>
- <title>Controller Interfaces</title>
-
- <para>There are several different interfaces that support tape drives.
- The interfaces are SCSI, IDE, Floppy and Parallel Port. A wide
- variety of tape drives are available for these interfaces.
- Controllers are discussed in <link
- linkend="hw-storage-controllers">Disk/tape
- controllers</link>.</para>
- </sect3>
-
- <sect3>
- <title>SCSI drives</title>
-
- <para>The &man.st.4; driver provides support for 8mm (Exabyte), 4mm
- (DAT: Digital Audio Tape), QIC (Quarter-Inch Cartridge), DLT
- (Digital Linear Tape), QIC Mini cartridge and 9-track (remember the
- big reels that you see spinning in Hollywood computer rooms) tape
- drives. See the &man.st.4; manual page for a detailed
- description.</para>
-
- <para>The drives listed below are currently being used by members of
- the FreeBSD community. They are not the only drives that will work
- with FreeBSD. They just happen to be the ones that we use.</para>
-
- <sect4>
- <title>4mm (DAT: Digital Audio Tape)</title>
-
- <para><link linkend="hw-storage-python-28454">Archive Python
- 28454</link></para>
-
- <para><link linkend="hw-storage-python-04687">Archive Python
- 04687</link></para>
-
- <para><link linkend="hw-storage-hp1533a">HP C1533A</link></para>
-
- <para><link linkend="hw-storage-hp1534a">HP C1534A</link></para>
-
- <para><link linkend="hw-storage-hp35450a">HP 35450A</link></para>
-
- <para><link linkend="hw-storage-hp35470a">HP 35470A</link></para>
-
- <para><link linkend="hw-storage-hp35480a">HP 35480A</link></para>
-
- <para><link linkend="hw-storage-sdt5000">SDT-5000</link></para>
-
- <para><link linkend="hw-storage-wangtek6200">Wangtek
- 6200</link></para>
- </sect4>
-
- <sect4>
- <title>8mm (Exabyte)</title>
-
- <para><link linkend="hw-storage-exb8200">EXB-8200</link></para>
-
- <para><link linkend="hw-storage-exb8500">EXB-8500</link></para>
-
- <para><link linkend="hw-storage-exb8505">EXB-8505</link></para>
- </sect4>
-
- <sect4>
- <title>QIC (Quarter-Inch Cartridge)</title>
-
- <para><link linkend="hw-storage-anaconda">Archive Anaconda
- 2750</link></para>
-
- <para><link linkend="hw-storage-viper60">Archive Viper
- 60</link></para>
-
- <para><link linkend="hw-storage-viper150">Archive Viper
- 150</link></para>
-
- <para><link linkend="hw-storage-viper2525">Archive Viper
- 2525</link></para>
-
- <para><link linkend="hw-storage-tandberg3600">Tandberg TDC
- 3600</link></para>
-
- <para><link linkend="hw-storage-tandberg3620">Tandberg TDC
- 3620</link></para>
-
- <para><link linkend="hw-storage-tandberg3800">Tandberg TDC
- 3800</link></para>
-
- <para><link linkend="hw-storage-tandberg4222">Tandberg TDC
- 4222</link></para>
-
- <para><link linkend="hw-storage-wangtek5525es">Wangtek
- 5525ES</link></para>
- </sect4>
-
- <sect4>
- <title>DLT (Digital Linear Tape)</title>
-
- <para><link linkend="hw-storage-dectz87">Digital TZ87</link></para>
- </sect4>
-
- <sect4>
- <title>Mini-Cartridge</title>
-
- <para><link linkend="hw-storage-ctms3200">Conner CTMS
- 3200</link></para>
-
- <para><link linkend="hw-storage-exb2501">Exabyte 2501</link></para>
- </sect4>
-
- <sect4>
- <title>Autoloaders/Changers</title>
-
- <para><link linkend="hw-storage-hp1553a">Hewlett-Packard HP C1553A
- Autoloading DDS2</link></para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>* IDE drives</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>Floppy drives</title>
-
- <para><link linkend="hw-storage-conner420r">Conner 420R</link></para>
- </sect3>
-
- <sect3>
- <title>* Parallel port drives</title>
-
- <para></para>
- </sect3>
-
- <sect3>
- <title>Detailed Information</title>
-
- <sect4 id="hw-storage-anaconda">
- <title>Archive Anaconda 2750</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- ANCDA 2750 28077 -003 type 1 removable SCSI 2</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 1.35GB when using QIC-1350 tapes. This
- drive will read and write QIC-150 (DC6150), QIC-250 (DC6250), and
- QIC-525 (DC6525) tapes as well.</para>
-
- <para>Data transfer rate is 350kB/s using
- &man.dump.8;. Rates of 530kB/s have been reported when using
- <link linkend="backups-programs-amanda">Amanda</link></para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>The SCSI bus connector on this tape drive is reversed from
- that on most other SCSI devices. Make sure that you have enough
- SCSI cable to twist the cable one-half turn before and after the
- Archive Anaconda tape drive, or turn your other SCSI devices
- upside-down.</para>
-
- <para>Two kernel code changes are required to use this drive. This
- drive will not work as delivered.</para>
-
- <para>If you have a SCSI-2 controller, short jumper 6. Otherwise,
- the drive behaves are a SCSI-1 device. When operating as a SCSI-1
- device, this drive, <quote>locks</quote> the SCSI bus during some
- tape operations, including: fsf, rewind, and rewoffl.</para>
-
- <para>If you are using the NCR SCSI controllers, patch the file
- <filename>/usr/src/sys/pci/ncr.c</filename> (as shown below).
- Build and install a new kernel.</para>
-
- <programlisting>*** 4831,4835 ****
- };
-
-! if (np-&gt;latetime&gt;4) {
- /*
- ** Although we tried to wake it up,
---- 4831,4836 ----
- };
-
-! if (np-&gt;latetime&gt;1200) {
- /*
- ** Although we tried to wake it up,</programlisting>
-
- <para>Reported by: &a.jmb;</para>
- </sect4>
-
- <sect4 id="hw-storage-python-28454">
- <title>Archive Python 28454</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- Python 28454-XXX4ASB</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>density code 0x8c, 512-byte
- blocks</literal></para>
-
- <para>This is a DDS-1 tape drive.</para>
-
- <para>Native capacity is 2.5GB on 90m tapes.</para>
-
- <para>Data transfer rate is XXX.</para>
-
- <para>This drive was repackaged by Sun Microsystems as model
- 595-3067.</para>
-
- <para>Reported by: Bob Bishop <email>rb@gid.co.uk</email></para>
-
- <para>Throughput is in the 1.5 MByte/sec range, however this will
- drop if the disks and tape drive are on the same SCSI
- controller.</para>
-
- <para>Reported by: Robert E. Seastrom
- <email>rs@seastrom.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-python-04687">
- <title>Archive Python 04687</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- Python 04687-XXX 6580</literal> <literal>Removable Sequential
- Access SCSI-2 device</literal></para>
-
- <para>This is a DAT-DDS-2 drive.</para>
-
- <para>Native capacity is 4GB when using 120m tapes.</para>
-
- <para>This drive supports hardware data compression. Switch 4
- controls MRS (Media Recognition System). MRS tapes have stripes
- on the transparent leader. Switch 4 <emphasis>off</emphasis>
- enables MRS, <emphasis>on</emphasis> disables MRS.</para>
-
- <para>Parity is controlled by switch 5. Switch 5
- <emphasis>on</emphasis> to enable parity control. Compression is
- enabled with Switch 6 <emphasis>off</emphasis>. It is possible to
- override compression with the <literal>SCSI MODE SELECT</literal>
- command (see &man.mt.1;).</para>
-
- <para>Data transfer rate is 800kB/s.</para>
- </sect4>
-
- <sect4 id="hw-storage-viper60">
- <title>Archive Viper 60</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- VIPER 60 21116 -007</literal> <literal>type 1 removable SCSI
- 1</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 60MB.</para>
-
- <para>Data transfer rate is XXX.</para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>Reported by: Philippe Regnauld
- <email>regnauld@hsc.fr</email></para>
- </sect4>
-
- <sect4 id="hw-storage-viper150">
- <title>Archive Viper 150</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- VIPER 150 21531 -004</literal> <literal>Archive Viper 150 is a
- known rogue</literal> <literal>type 1 removable SCSI
- 1</literal>. A multitude of firmware revisions exist for this
- drive. Your drive may report different numbers (e.g
- <literal>21247 -005</literal>.</para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 150/250MB. Both 150MB (DC6150) and 250MB
- (DC6250) tapes have the recording format. The 250MB tapes are
- approximately 67% longer than the 150MB tapes. This drive can
- read 120MB tapes as well. It can not write 120MB tapes.</para>
-
- <para>Data transfer rate is 100kB/s</para>
-
- <para>This drive reads and writes DC6150 (150MB) and DC6250 (250MB)
- tapes.</para>
-
- <para>This drives quirks are known and pre-compiled into the scsi
- tape device driver (&man.st.4;).</para>
-
- <para>Under FreeBSD 2.2-CURRENT, use <command>mt blocksize
- 512</command> to set the blocksize. (The particular drive had
- firmware revision 21247 -005. Other firmware revisions may behave
- differently) Previous versions of FreeBSD did not have this
- problem.</para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>Reported by: Pedro A M Vazquez
- <email>vazquez@IQM.Unicamp.BR</email></para>
-
- <para>&a.msmith;</para>
- </sect4>
-
- <sect4 id="hw-storage-viper2525">
- <title>Archive Viper 2525</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- VIPER 2525 25462 -011</literal> <literal>type 1 removable SCSI
- 1</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 525MB.</para>
-
- <para>Data transfer rate is 180kB/s at 90 inches/sec.</para>
-
- <para>The drive reads QIC-525, QIC-150, QIC-120 and QIC-24 tapes.
- Writes QIC-525, QIC-150, and QIC-120.</para>
-
- <para>Firmware revisions prior to <literal>25462 -011</literal> are
- bug ridden and will not function properly.</para>
-
- <para>Production of this drive has been discontinued.</para>
- </sect4>
-
- <sect4 id="hw-storage-conner420r">
- <title>Conner 420R</title>
-
- <para>The boot message identifier for this drive is <literal>Conner
- tape</literal>.</para>
-
- <para>This is a floppy controller, mini cartridge tape drive.</para>
-
- <para>Native capacity is XXXX</para>
-
- <para>Data transfer rate is XXX</para>
-
- <para>The drive uses QIC-80 tape cartridges.</para>
-
- <para>Reported by: Mark Hannon
- <email>mark@seeware.DIALix.oz.au</email></para>
- </sect4>
-
- <sect4 id="hw-storage-ctms3200">
- <title>Conner CTMS 3200</title>
-
- <para>The boot message identifier for this drive is <literal>CONNER
- CTMS 3200 7.00</literal> <literal>type 1 removable SCSI
- 2</literal>.</para>
-
- <para>This is a mini cartridge tape drive.</para>
-
- <para>Native capacity is XXXX</para>
-
- <para>Data transfer rate is XXX</para>
-
- <para>The drive uses QIC-3080 tape cartridges.</para>
-
- <para>Reported by: Thomas S. Traylor
- <email>tst@titan.cs.mci.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-dectz87">
- <title><ulink
- url="http://www.digital.com/info/Customer-Update/931206004.txt.html">DEC TZ87</ulink></title>
-
- <para>The boot message identifier for this drive is <literal>DEC
- TZ87 (C) DEC 9206</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>density code 0x19</literal></para>
-
- <para>This is a DLT tape drive.</para>
-
- <para>Native capacity is 10GB.</para>
-
- <para>This drive supports hardware data compression.</para>
-
- <para>Data transfer rate is 1.2MB/s.</para>
-
- <para>This drive is identical to the Quantum DLT2000. The drive
- firmware can be set to emulate several well-known drives,
- including an Exabyte 8mm drive.</para>
-
- <para>Reported by: &a.wilko;</para>
- </sect4>
-
- <sect4 id="hw-storage-exb2501">
- <title><ulink
- url="http://www.Exabyte.COM:80/Products/Minicartridge/2501/Rfeatures.html">Exabyte EXB-2501</ulink></title>
-
- <para>The boot message identifier for this drive is <literal>EXABYTE
- EXB-2501</literal></para>
-
- <para>This is a mini-cartridge tape drive.</para>
-
- <para>Native capacity is 1GB when using MC3000XL
- mini cartridges.</para>
-
- <para>Data transfer rate is XXX</para>
-
- <para>This drive can read and write DC2300 (550MB), DC2750 (750MB),
- MC3000 (750MB), and MC3000XL (1GB) mini cartridges.</para>
-
- <para>WARNING: This drive does not meet the SCSI-2 specifications.
- The drive locks up completely in response to a SCSI MODE_SELECT
- command unless there is a formatted tape in the drive. Before
- using this drive, set the tape blocksize with</para>
-
- <screen>&prompt.root; <userinput>mt -f /dev/st0ctl.0 blocksize 1024</userinput></screen>
-
- <para>Before using a mini cartridge for the first time, the
- mini cartridge must be formated. FreeBSD 2.1.0-RELEASE and
- earlier:</para>
-
- <screen>&prompt.root; <userinput>/sbin/scsi -f /dev/rst0.ctl -s 600 -c "4 0 0 0 0 0"</userinput></screen>
-
- <para>(Alternatively, fetch a copy of the
- <command>scsiformat</command> shell script from FreeBSD
- 2.1.5/2.2.) FreeBSD 2.1.5 and later:</para>
-
- <screen>&prompt.root; <userinput>/sbin/scsiformat -q -w /dev/rst0.ctl</userinput></screen>
-
- <para>Right now, this drive cannot really be recommended for
- FreeBSD.</para>
-
- <para>Reported by: Bob Beaulieu
- <email>ez@eztravel.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-exb8200">
- <title>Exabyte EXB-8200</title>
-
- <para>The boot message identifier for this drive is <literal>EXABYTE
- EXB-8200 252X</literal> <literal>type 1 removable SCSI
- 1</literal></para>
-
- <para>This is an 8mm tape drive.</para>
-
- <para>Native capacity is 2.3GB.</para>
-
- <para>Data transfer rate is 270kB/s.</para>
-
- <para>This drive is fairly slow in responding to the SCSI bus during
- boot. A custom kernel may be required (set SCSI_DELAY to 10
- seconds).</para>
-
- <para>There are a large number of firmware configurations for this
- drive, some have been customized to a particular vendor's
- hardware. The firmware can be changed via EPROM
- replacement.</para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>Reported by: &a.msmith;</para>
- </sect4>
-
- <sect4 id="hw-storage-exb8500">
- <title>Exabyte EXB-8500</title>
-
- <para>The boot message identifier for this drive is <literal>EXABYTE
- EXB-8500-85Qanx0 0415</literal> <literal>type 1 removable SCSI
- 2</literal></para>
-
- <para>This is an 8mm tape drive.</para>
-
- <para>Native capacity is 5GB.</para>
-
- <para>Data transfer rate is 300kB/s.</para>
-
- <para>Reported by: Greg Lehey <email>grog@lemis.de</email></para>
- </sect4>
-
- <sect4 id="hw-storage-exb8505">
- <title><ulink
- url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">Exabyte EXB-8505</ulink></title>
-
- <para>The boot message identifier for this drive is
- <literal>EXABYTE EXB-85058SQANXR1 05B0</literal> <literal>type 1
- removable SCSI 2</literal></para>
-
- <para>This is an 8mm tape drive which supports compression, and is
- upward compatible with the EXB-5200 and EXB-8500.</para>
-
- <para>Native capacity is 5GB.</para>
-
- <para>The drive supports hardware data compression.</para>
-
- <para>Data transfer rate is 300kB/s.</para>
-
- <para>Reported by: Glen Foster
- <email>gfoster@gfoster.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-hp1533a">
- <title>Hewlett-Packard HP C1533A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- C1533A 9503</literal> <literal>type 1 removable SCSI
- 2</literal>.</para>
-
- <para>This is a DDS-2 tape drive. DDS-2 means hardware data
- compression and narrower tracks for increased data
- capacity.</para>
-
- <para>Native capacity is 4GB when using 120m tapes. This drive
- supports hardware data compression.</para>
-
- <para>Data transfer rate is 510kB/s.</para>
-
- <para>This drive is used in Hewlett-Packard's SureStore 6000eU and
- 6000i tape drives and C1533A DDS-2 DAT drive.</para>
-
- <para>The drive has a block of 8 dip switches. The proper settings
- for FreeBSD are: 1 ON; 2 ON; 3 OFF; 4 ON; 5 ON; 6 ON; 7 ON; 8
- ON.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>switch 1</entry>
- <entry>switch 2</entry>
- <entry>Result</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>On</entry>
- <entry>On</entry>
- <entry>Compression enabled at power-on, with host
- control</entry>
- </row>
-
- <row>
- <entry>On</entry>
- <entry>Off</entry>
- <entry>Compression enabled at power-on, no host
- control</entry>
- </row>
-
- <row>
- <entry>Off</entry>
- <entry>On</entry>
- <entry>Compression disabled at power-on, with host
- control</entry>
- </row>
-
- <row>
- <entry>Off</entry>
- <entry>Off</entry>
- <entry>Compression disabled at power-on, no host
- control</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Switch 3 controls MRS (Media Recognition System). MRS tapes
- have stripes on the transparent leader. These identify the tape
- as DDS (Digital Data Storage) grade media. Tapes that do not have
- the stripes will be treated as write-protected. Switch 3 OFF
- enables MRS. Switch 3 ON disables MRS.</para>
-
- <para>See <ulink url="http://www.hp.com/tape/c_intro.html">HP
- SureStore Tape Products</ulink> and <ulink
- url="http://www.impediment.com/hp/hp_technical.html">Hewlett-Packard
- Disk and Tape Technical Information</ulink> for more information
- on configuring this drive.</para>
-
- <para><emphasis>Warning:</emphasis> Quality control on these drives
- varies greatly. One FreeBSD core-team member has returned 2 of
- these drives. Neither lasted more than 5 months.</para>
-
- <para>Reported by: &a.se;</para>
- </sect4>
-
- <sect4 id="hw-storage-hp1534a">
- <title>Hewlett-Packard HP 1534A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35470A T503</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code 0x13,
- variable blocks</literal>.</para>
-
- <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape
- format.</para>
-
- <para>Native capacity is 2GB when using 90m tapes.</para>
-
- <para>Data transfer rate is 183kB/s.</para>
-
- <para>The same mechanism is used in Hewlett-Packard's SureStore
- <ulink url="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink>
- tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT
- drive and HP C1536A DDS format DAT drive.</para>
-
- <para>The HP C1534A DDS format DAT drive has two indicator lights,
- one green and one amber. The green one indicates tape action:
- slow flash during load, steady when loaded, fast flash during
- read/write operations. The amber one indicates warnings: slow
- flash when cleaning is required or tape is nearing the end of its
- useful life, steady indicates an hard fault. (factory service
- required?)</para>
-
- <para>Reported by Gary Crutcher
- <email>gcrutchr@nightflight.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-hp1553a">
- <title>Hewlett-Packard HP C1553A Autoloading DDS2</title>
-
- <para>The boot message identifier for this drive is "".</para>
-
- <para>This is a DDS-2 tape drive with a tape changer. DDS-2 means
- hardware data compression and narrower tracks for increased data
- capacity.</para>
-
- <para>Native capacity is 24GB when using 120m tapes. This drive
- supports hardware data compression.</para>
-
- <para>Data transfer rate is 510kB/s (native).</para>
-
- <para>This drive is used in Hewlett-Packard's SureStore <ulink
- url="http://www.dmo.hp.com/tape/sst12000.htm">12000e</ulink>
- tape drive.</para>
-
- <para>The drive has two selectors on the rear panel. The selector
- closer to the fan is SCSI id. The other selector should be set to
- 7.</para>
-
- <para>There are four internal switches. These should be set: 1 ON;
- 2 ON; 3 ON; 4 OFF.</para>
-
- <para>At present the kernel drivers do not automatically change
- tapes at the end of a volume. This shell script can be used to
- change tapes:</para>
-
- <programlisting>#!/bin/sh
-PATH="/sbin:/usr/sbin:/bin:/usr/bin"; export PATH
-
-usage()
-{
- echo "Usage: dds_changer [123456ne] raw-device-name
- echo "1..6 = Select cartridge"
- echo "next cartridge"
- echo "eject magazine"
- exit 2
-}
-
-if [ $# -ne 2 ] ; then
- usage
-fi
-
-cdb3=0
-cdb4=0
-cdb5=0
-
-case $1 in
- [123456])
- cdb3=$1
- cdb4=1
- ;;
- n)
- ;;
- e)
- cdb5=0x80
- ;;
- ?)
- usage
- ;;
-esac
-
-scsi -f $2 -s 100 -c "1b 0 0 $cdb3 $cdb4 $cdb5"</programlisting>
- </sect4>
-
- <sect4 id="hw-storage-hp35450a">
- <title>Hewlett-Packard HP 35450A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35450A -A C620</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal></para>
-
- <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape
- format.</para>
-
- <para>Native capacity is 1.2GB.</para>
-
- <para>Data transfer rate is 160kB/s.</para>
-
- <para>Reported by: Mark Thompson
- <email>mark.a.thompson@pobox.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-hp35470a">
- <title>Hewlett-Packard HP 35470A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35470A 9 09</literal> <literal>type 1 removable SCSI
- 2</literal></para>
-
- <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape
- format.</para>
-
- <para>Native capacity is 2GB when using 90m tapes.</para>
-
- <para>Data transfer rate is 183kB/s.</para>
-
- <para>The same mechanism is used in Hewlett-Packard's SureStore
- <ulink url="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink>
- tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT
- drive, and HP C1536A DDS format DAT drive.</para>
-
- <para><emphasis>Warning:</emphasis> Quality control on these drives
- varies greatly. One FreeBSD core-team member has returned 5 of
- these drives. None lasted more than 9 months.</para>
-
- <para>Reported by: David Dawes
- <email>dawes@rf900.physics.usyd.edu.au</email> (9 09)</para>
-
- </sect4>
-
- <sect4 id="hw-storage-hp35480a">
- <title>Hewlett-Packard HP 35480A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35480A 1009</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal>.</para>
-
- <para>This is a DDS-DC tape drive. DDS-DC is DDS-1 with hardware
- data compression. DDS-1 is the original DAT tape format.</para>
-
- <para>Native capacity is 2GB when using 90m tapes. It cannot handle
- 120m tapes. This drive supports hardware data compression.
- Please refer to the section on <link
- linkend="hw-storage-hp1533a">HP C1533A</link> for the proper
- switch settings.</para>
-
- <para>Data transfer rate is 183kB/s.</para>
-
- <para>This drive is used in Hewlett-Packard's SureStore <ulink
- url="http://www.dmo.hp.com/tape/sst5000.htm">5000eU</ulink> and
- <ulink url="http://www.dmo.hp.com/tape/sst5000.htm">5000i</ulink>
- tape drives and C35480A DDS format DAT drive..</para>
-
- <para>This drive will occasionally hang during a tape eject
- operation (<command>mt offline</command>). Pressing the front
- panel button will eject the tape and bring the tape drive back to
- life.</para>
-
- <para>WARNING: HP 35480-03110 only. On at least two occasions this
- tape drive when used with FreeBSD 2.1.0, an IBM Server 320 and an
- 2940W SCSI controller resulted in all SCSI disk partitions being
- lost. The problem has not be analyzed or resolved at this
- time.</para>
- </sect4>
-
- <sect4 id="hw-storage-sdt5000">
- <title><ulink
- url="http://www.sel.sony.com/SEL/ccpg/storage/tape/t5000.html">Sony SDT-5000</ulink></title>
-
- <para>There are at least two significantly different models: one is
- a DDS-1 and the other DDS-2. The DDS-1 version is
- <literal>SDT-5000 3.02</literal>. The DDS-2 version is
- <literal>SONY SDT-5000 327M</literal>. The DDS-2 version has a 1MB
- cache. This cache is able to keep the tape streaming in almost
- any circumstances.</para>
-
- <para>The boot message identifier for this drive is <literal>SONY
- SDT-5000 3.02</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal></para>
-
- <para>Native capacity is 4GB when using 120m tapes. This drive
- supports hardware data compression.</para>
-
- <para>Data transfer rate is depends upon the model or the drive. The
- rate is 630kB/s for the <literal>SONY SDT-5000 327M</literal>
- while compressing the data. For the <literal>SONY SDT-5000
- 3.02</literal>, the data transfer rate is 225kB/s.</para>
-
- <para>In order to get this drive to stream, set the blocksize to 512
- bytes (<command>mt blocksize 512</command>) reported by Kenneth
- Merry <email>ken@ulc199.residence.gatech.edu</email>.</para>
-
- <para><literal>SONY SDT-5000 327M</literal> information reported by
- Charles Henrich <email>henrich@msu.edu</email>.</para>
-
- <para>Reported by: &a.jmz;</para>
- </sect4>
-
- <sect4 id="hw-storage-tandberg3600">
- <title>Tandberg TDC 3600</title>
-
- <para>The boot message identifier for this drive is
- <literal>TANDBERG TDC 3600 =08:</literal> <literal>type 1
- removable SCSI 2</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 150/250MB.</para>
-
- <para>This drive has quirks which are known and work around code is
- present in the scsi tape device driver (&man.st.4;).
- Upgrading the firmware to XXX version will fix the quirks and
- provide SCSI 2 capabilities.</para>
-
- <para>Data transfer rate is 80kB/s.</para>
-
- <para>IBM and Emerald units will not work. Replacing the firmware
- EPROM of these units will solve the problem.</para>
-
- <para>Reported by: &a.msmith;</para>
- </sect4>
-
- <sect4 id="hw-storage-tandberg3620">
- <title>Tandberg TDC 3620</title>
-
- <para>This is very similar to the <link
- linkend="hw-storage-tandberg3600">Tandberg TDC 3600</link>
- drive.</para>
-
- <para>Reported by: &a.joerg;</para>
- </sect4>
-
- <sect4 id="hw-storage-tandberg3800">
- <title>Tandberg TDC 3800</title>
-
- <para>The boot message identifier for this drive is
- <literal>TANDBERG TDC 3800 =04Y</literal> <literal>Removable
- Sequential Access SCSI-2 device</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 525MB.</para>
-
- <para>Reported by: &a.jhs;</para>
- </sect4>
-
- <sect4 id="hw-storage-tandberg4222">
- <title>Tandberg TDC 4222</title>
-
- <para>The boot message identifier for this drive is
- <literal>TANDBERG TDC 4222 =07</literal> <literal>type 1 removable
- SCSI 2</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 2.5GB. The drive will read all cartridges
- from the 60 MB (DC600A) upwards, and write 150 MB (DC6150)
- upwards. Hardware compression is optionally supported for the 2.5
- GB cartridges.</para>
-
- <para>This drives quirks are known and pre-compiled into the scsi
- tape device driver (&man.st.4;) beginning with FreeBSD
- 2.2-CURRENT. For previous versions of FreeBSD, use
- <command>mt</command> to read one block from the tape, rewind the
- tape, and then execute the backup program (<command>mt fsr 1; mt
- rewind; dump ...</command>)</para>
-
- <para>Data transfer rate is 600kB/s (vendor claim with compression),
- 350 KB/s can even be reached in start/stop mode. The rate
- decreases for smaller cartridges.</para>
-
- <para>Reported by: &a.joerg;</para>
- </sect4>
-
- <sect4 id="hw-storage-wangtek5525es">
- <title>Wangtek 5525ES</title>
-
- <para>The boot message identifier for this drive is <literal>WANGTEK
- 5525ES SCSI REV7 3R1</literal> <literal>type 1 removable SCSI
- 1</literal> <literal>density code 0x11, 1024-byte
- blocks</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 525MB.</para>
-
- <para>Data transfer rate is 180kB/s.</para>
-
- <para>The drive reads 60, 120, 150, and 525MB tapes. The drive will
- not write 60MB (DC600 cartridge) tapes. In order to overwrite 120
- and 150 tapes reliably, first erase (<command>mt erase</command>)
- the tape. 120 and 150 tapes used a wider track (fewer tracks per
- tape) than 525MB tapes. The <quote>extra</quote> width of the
- previous tracks is not overwritten, as a result the new data lies
- in a band surrounded on both sides by the previous data unless the
- tape have been erased.</para>
-
- <para>This drives quirks are known and pre-compiled into the scsi
- tape device driver (&man.st.4;).</para>
-
- <para>Other firmware revisions that are known to work are:
- M75D</para>
-
- <para>Reported by: Marc van Kempen <email>marc@bowtie.nl</email>
- <literal>REV73R1</literal> Andrew Gordon
- <email>Andrew.Gordon@net-tel.co.uk</email>
- <literal>M75D</literal></para>
- </sect4>
-
- <sect4 id="hw-storage-wangtek6200">
- <title>Wangtek 6200</title>
-
- <para>The boot message identifier for this drive is <literal>WANGTEK
- 6200-HS 4B18</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal></para>
-
- <para>This is a DDS-1 tape drive.</para>
-
- <para>Native capacity is 2GB using 90m tapes.</para>
-
- <para>Data transfer rate is 150kB/s.</para>
-
- <para>Reported by: Tony Kimball <email>alk@Think.COM</email></para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>* Problem drives</title>
-
- <para></para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>CDROM drives</title>
-
- <para><emphasis>Contributed by &a.obrien;. 23 November
- 1997.</emphasis></para>
-
- <para>As mentioned in <link linkend="hw-jordans-picks-cdrom">Jordan's
- Picks</link> Generally speaking those in <emphasis>The FreeBSD
- Project</emphasis> prefer SCSI CDROM drives over IDE CDROM drives.
- However not all SCSI CDROM drives are equal. Some feel the quality of
- some SCSI CDROM drives have been deteriorating to that of IDE CDROM
- drives. Toshiba used to be the favored stand-by, but many on the SCSI
- mailing list have found displeasure with the 12x speed XM-5701TA as
- its volume (when playing audio CDROMs) is not controllable by the
- various audio player software.</para>
-
- <para>Another area where SCSI CDROM manufacturers are cutting corners is
- adherence to the <link linkend="scsi-further-reading">SCSI
- specification</link>. Many SCSI CDROMs will respond to <link
- linkend="scsi-rogue-devices">multiple LUNs</link> for its target
- address. Known violators include the 6x Teac CD-56S 1.0D.</para>
- </sect2>
-
- <sect2>
- <title>* Other</title>
-
- <para></para>
- </sect2>
- </sect1>
-
- <sect1 id="hw-other">
- <title>* Other</title>
-
-
- <sect2>
- <title>* PCMCIA</title>
-
- <para></para>
- </sect2>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/install/chapter.sgml b/en_US.ISO8859-1/books/handbook/install/chapter.sgml
deleted file mode 100644
index 8271a70b21..0000000000
--- a/en_US.ISO8859-1/books/handbook/install/chapter.sgml
+++ /dev/null
@@ -1,1831 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/install/chapter.sgml,v 1.64 2000/12/15 21:52:35 jim Exp $
--->
-
-<chapter id="install">
- <title>Installing FreeBSD</title>
-
- <para><emphasis>Restructured, updated, and parts rewritten by &a.jim;,
- January 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>The following chapter will attempt to guide you through the
- installation of FreeBSD on your system. It can be installed through a
- variety of methods, including anonymous FTP (assuming you have
- network connectivity via modem or local network), CDROM, floppy
- disk, tape, an MS-DOS partition, or even NFS.</para>
-
- <para>No matter which method you choose, you will need to get started
- by creating the <emphasis>installation disks</emphasis> as described
- in the <link linkend="install-floppies">next section</link>.
- Booting into the FreeBSD installer, even if you are not planning on
- installing FreeBSD right away, will provide important information
- about compatibility with your hardware. This information may
- dictate which installation options are even possible for you. It
- can also provide clues early-on in the process to potential problems
- you may come across later.</para>
-
- <para>If you plan to install FreeBSD via anonymous FTP, the only
- things you will need are the <link
- linkend="install-floppies">installation floppies</link>. The
- installation program itself will handle anything else that is
- required.</para>
-
- <para>For more information about obtaining FreeBSD, see the <link
- linkend="mirrors">Obtaining FreeBSD</link> section of the
- Appendix.</para>
-
- <para>By now, you are probably wondering what exactly it is you need
- to do. Continue on to the installation guide.</para>
- </sect1>
-
- <sect1 id="install-guide">
- <title>Installation Guide</title>
-
- <para>The following sections will guide you through preparing for and
- actually installing FreeBSD. If you find something missing, please
- let us know about it by sending email to the &a.doc;.</para>
-
- <sect2 id="install-prepare">
- <title>Preparing for the Installation</title>
-
- <para>There are various things you should do in preparation for the
- installation. The following describes what needs to be done prior to
- each type of installation.</para>
-
- <para>The first thing to do is to make sure your hardware is
- supported by FreeBSD. The list of <link
- linkend="install-hw">supported hardware</link> should
- come in handy here. ;-) It would also be a good idea to make a
- list of any <quote>special</quote> cards you have installed,
- such as SCSI controllers, ethernet cards, sound cards, etc..
- The list should include their IRQs and IO port addresses.</para>
-
- <sect3 id="install-floppies">
- <title>Creating the Installation Floppies</title>
-
- <para>You may need to prepare some floppy disks. These disks will
- be used to boot your computer in to the FreeBSD install process.
- This step is not necessary <emphasis>if</emphasis> you are
- installing from CD-ROM, <emphasis>and</emphasis> your computer
- supports booting from the CD-ROM. If you do not meet these
- requirements then you will need to create some floppies to boot
- from.</para>
-
- <note>
- <para>If you are not sure whether your computer can boot from the
- CD-ROM it does not hurt to try. Just insert the CD-ROM as
- normal and restart your computer. You might need to adjust some
- options in your BIOS so that your computer will try and boot
- from the CD-ROM drive before the hard disk.</para>
- </note>
-
- <tip>
- <para>Even if you have the CD-ROM it might make sense for you to
- download the files. There have been occasions where bugs in the
- FreeBSD installer have been discovered after the CDs have been
- released. When this happens the copies of the images on the FTP
- site will be fixed as soon as possible. Obviously, it is not
- possible to update the CDs after they have been pressed.</para>
- </tip>
-
- <procedure>
- <step>
- <title>Acquire the boot floppy images</title>
-
- <para>These are files with a <filename>.flp</filename>
- extension. If you have a CD-ROM release of FreeBSD then you
- will find the files in the <filename>floppies</filename>
- subdirectory. Alternatively, you can download the images from
- the <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/">floppies directory</ulink> of the FreeBSD FTP site or your local mirror.</para>
-
- <para>The names of the files you will need varies between
- FreeBSD releases (sometimes) and the architecture you will be
- installing on. The <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/README.TXT">installation
- boot image information</ulink> on the FTP site provides
- up-to-the-minute information about the specific files you will
- need.</para>
- </step>
-
- <step>
- <title>Prepare the floppy disks</title>
-
- <para>You must prepare one floppy disk per image file you had to
- download. It is imperative that these disks are free from
- defects. The easiest way to test this is to format the disks
- for yourself. Do not trust pre-formatted floppies.</para>
-
- <important>
- <para>If you try to install FreeBSD and the installation
- program crashes, freezes, or otherwise misbehaves one of
- the first things to suspect is the floppies. Try writing
- the floppy image files to some other disks, and try
- again.</para>
- </important>
- </step>
-
- <step>
- <title>Write the image files to the floppy disks.</title>
-
- <para>The image files, such as <filename>kern.flp</filename>,
- are <emphasis>not</emphasis> regular files you copy to the
- disk. Instead, they are images of the complete contents of
- the disk.</para>
-
- <para>This means that you can <emphasis>not</emphasis> use
- commands like DOS' <command>copy</command> to write the
- files. Instead, you must use specific tools to write the
- images directly to the disk.</para>
-
- <para>If you are creating the floppies on a computer running DOS
- then we provide a tool to do this called
- <command>fdimage</command>.</para>
-
- <para>If you are using the floppies from the CD-ROM, and your
- CD-ROM is the <devicename>E:</devicename> drive then you would
- run this:</para>
-
- <screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\kern.flp A:</userinput></screen>
-
- <para>Repeat this command for each <filename>.flp</filename>
- file, replacing the floppy disk each time. Adjust the command
- line as necessary, depending on where you have placed the
- <filename>.flp</filename> files. If you do not have the
- CD-ROM then <command>fdimage</command> can be downloaded from
- the <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/"><filename>tools</filename> directory</ulink> on the FreeBSD FTP site.</para>
-
- <para>If you are writing the floppies on a Unix system (such as
- another FreeBSD system) you can use the &man.dd.1; command to
- write the image files directly to disk. On FreeBSD you would
- run:</para>
-
- <screen>&prompt.root; <userinput>dd if=kern.flp of=/dev/rfd0</userinput></screen>
-
- <para>On FreeBSD <filename>/dev/rfd0</filename> refers to the
- first floppy disk (the <devicename>A:</devicename> drive).
- <filename>/dev/rfd1</filename> would be the
- <devicename>B:</devicename> drive, and so on. Other Unix
- variants might have different names for the floppy disk
- devices, and you will need to check the documentation for the
- system as necessary.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3 id="install-cdrom">
- <title>Before Installing from CDROM</title>
-
- <para>If your CDROM is of an unsupported type, please skip ahead
- to the <link linkend="install-msdos">MS-DOS Preparation</link>
- section.</para>
-
- <para>There is not a whole lot of preparation needed if you are
- installing from one of <ulink
- url="http://www.osd.bsdi.com/">BSDi's</ulink>
- FreeBSD CDROMs (other CDROM distributions may work as well,
- though we cannot say for certain as we have no hand or say in
- how they created). You can either boot into the CD installation
- directly from DOS using the <filename>install.bat</filename> or
- you can make floppies with the <filename>makeflp.bat</filename>
- command.</para>
-
- <para>If the CD has El Torito boot support and your system
- supports booting directly from the CDROM drive (many older
- systems do <emphasis>NOT</emphasis>), simply insert the first
- CD of the set into the drive and reboot your system. You
- will be put into the installation menu directly from the CD.</para>
-
- <para>If you are installing from an MS-DOS partition and have
- the proper drivers to access your CD, run the
- <filename>install.bat</filename> script provided on the CDROM.
- This will attempt to boot the FreeBSD installation directly
- from DOS.</para>
-
- <note>
- <para>You must do this from actual DOS (i.e., boot in DOS
- mode) and not from a DOS window under Windows.</para>
- </note>
-
- <para>For the easiest interface of all (from DOS), type
- <command>view</command>. This will bring up a DOS menu utility
- that leads you through all of the available options.</para>
-
- <para>If you are creating the boot floppies from a UNIX machine,
- see the <link linkend="install-floppies">Creating the Boot
- Floppies</link> section of this guide for examples.</para>
-
- <para>Once you have booted from DOS or floppy, you should then be
- able to select CDROM as the media type during the install
- process and load the entire distribution from CDROM. No other
- types of installation media should be required.</para>
-
- <para>After your system is fully installed and you have rebooted
- (from the hard disk), you can mount the CDROM at any time by
- typing:</para>
-
- <screen>&prompt.root; <userinput>mount /cdrom</userinput></screen>
-
- <para>Before removing the CD from the drive again, you must first
- unmount it. This is done with the following command:</para>
-
- <screen>&prompt.root; <userinput>umount /cdrom</userinput></screen>
-
- <para>Do not just remove it from the drive!</para>
-
- <note>
- <para>Before invoking the installation, be sure that the CDROM
- is in the drive so that the install probe can find it. This
- is also true if you wish the CDROM to be added to the default
- system configuration automatically during the installation (whether
- or not you actually use it as the installation media).</para>
- </note>
-
- <para>Finally, if you would like people to be able to FTP install
- FreeBSD directly from the CDROM in your machine, you will find
- it quite easy. After the machine is fully installed, you simply
- need to add the following line to the password file (using the
- <command>vipw</command> command):</para>
-
- <programlisting>ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting>
-
- <para>Anyone with network connectivity to your machine can now
- chose a media type of FTP and type in
- <userinput>ftp://<replaceable>your machine</replaceable></userinput>
- after picking <quote>Other</quote> in the FTP sites menu during
- the install.</para>
-
- <note><para>If you choose to enable anonymous FTP during the
- installation of your system, the installation program will do
- the above for you.</para></note>
-
- </sect3>
-
- <sect3>
- <title>Before installing from Floppies</title>
-
- <para>If you must install from floppy disk (which we suggest you
- do <emphasis>NOT</emphasis> do), either due to unsupported
- hardware or simply because you insist on doing things the hard
- way, you must first prepare some floppies for the installation.</para>
-
- <para>At a minimum, you will need as many 1.44MB or 1.2MB floppies
- as it takes to hold all the files in the
- <filename>bin</filename> (binary distribution) directory. If
- you are preparing the floppies from DOS, then they
- <emphasis>MUST</emphasis> be formatted using the MS-DOS
- <command>FORMAT</command> command. If you are using Windows,
- use Explorer to format the disks (right-click on the
- <devicename>A:</devicename> drive, and select &quot;Format&quot;.</para>
-
- <para>Do <emphasis>NOT</emphasis> trust factory pre-formatted
- floppies! Format them again yourself, just to be sure. Many
- problems reported by our users in the past have resulted from
- the use of improperly formatted media, which is why we are
- making a point of it now.</para>
-
- <para>If you are creating the floppies on another FreeBSD machine,
- a format is still not a bad idea, though you do not need to put
- a DOS filesystem on each floppy. You can use the
- <command>disklabel</command> and <command>newfs</command>
- commands to put a UFS filesystem on them instead, as the
- following sequence of commands (for a 3.5" 1.44MB floppy)
- illustrates:</para>
-
- <screen>&prompt.root; <userinput>fdformat -f 1440 fd0.1440</userinput>
-&prompt.root; <userinput>disklabel -w -r fd0.1440 floppy3</userinput>
-&prompt.root; <userinput>newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0</userinput></screen>
-
- <note>
- <para>Use <literal>fd0.1200</literal> and
- <literal>floppy5</literal> for 5.25" 1.2MB disks.</para>
- </note>
-
- <para>Then you can mount and write to them like any other
- filesystem.</para>
-
- <para>After you have formatted the floppies, you will need to copy
- the files to them. The distribution files are split into chunks
- conveniently sized so that 5 of them will fit on a conventional
- 1.44MB floppy. Go through all your floppies, packing as many
- files as will fit on each one, until you have all of the
- distributions you want packed up in this fashion. Each
- distribution should go into a subdirectory on the floppy, e.g.:
- <filename>a:\bin\bin.aa</filename>,
- <filename>a:\bin\bin.ab</filename>, and so on.</para>
-
- <para>Once you come to the Media screen during the install
- process, select <quote>Floppy</quote> and you will be prompted
- for the rest.</para>
- </sect3>
-
- <sect3 id="install-msdos">
- <title>Before Installing from MS-DOS</title>
-
- <para>To prepare for an installation from an MS-DOS partition,
- copy the files from the distribution into a directory named,
- for example, <filename>c:\FreeBSD</filename>. The directory
- structure of the CDROM or FTP site must be partially reproduced
- within this directory, so we suggest using the DOS
- <command>xcopy</command> command if you are copying it from a
- CD. For example, to prepare for a minimal installation of
- FreeBSD:</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>Assuming that <devicename>C:</devicename> is where you have
- free space and <devicename>E:</devicename> is where your CDROM
- is mounted.</para>
-
- <para>If you do not have a CDROM drive, you can download the
- distribution from <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">
- ftp.FreeBSD.org</ulink>. Each distribution is in its own directory;
- for example, the <emphasis>bin</emphasis> distribution can be
- found in the <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/bin">&rel.current;/bin</ulink> directory.</para>
-
- <para>For as many distributions you wish to install from an MS-DOS
- partition (and you have the free space for), install each one
- under <filename>c:\FreeBSD</filename> &mdash; the
- <literal>BIN</literal> distribution is the only one required for
- a minimum installation.</para>
- </sect3>
-
- <sect3>
- <title>Before Installing from QIC/SCSI Tape</title>
-
- <para>Installing from tape is probably the easiest method, short
- of an online FTP install or CDROM install. The installation
- program expects the files to be simply tarred onto the tape, so
- after getting all of the distribution files you are interested
- in, simply tar them onto the tape like so:</para>
-
- <screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput>
-&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen>
-
- <para>When you go to do the installation, you should also make
- sure that you leave enough room in some temporary directory
- (which you will be allowed to choose) to accommodate the
- <emphasis>full</emphasis> contents of the tape you have created.
- Due to the non-random access nature of tapes, this method of
- installation requires quite a bit of temporary storage. You
- should expect to require as much temporary storage as you have
- stuff written on tape.</para>
-
- <note>
- <para>When starting the installation, the tape must be in the
- drive <emphasis>before</emphasis> booting from the boot
- floppy. The installation probe may otherwise fail to find
- it.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Before Installing over a Network</title>
-
- <para>There are three types of network installations you can do.
- Serial port (SLIP or PPP), Parallel port (PLIP (laplink cable)),
- or Ethernet (a standard ethernet controller (includes some
- PCMCIA)).</para>
-
- <para>The SLIP support is rather primitive, and limited primarily
- to hard-wired links, such as a serial cable running between a
- laptop computer and another computer. The link should be
- hard-wired as the SLIP installation does not currently offer a
- dialing capability; that facility is provided with the PPP
- utility, which should be used in preference to SLIP whenever
- possible.</para>
-
- <para>If you are using a modem, then PPP is almost certainly
- your only choice. Make sure that you have your service
- provider's information handy as you will need to know it fairly
- early in the installation process.</para>
- <para>If you use PAP or CHAP to connect your ISP (in other
- words, if you can connect to the ISP in Windows without
- using a script), then all you will need to do is type in
- <command>dial</command> at the
- <application>ppp</application> prompt. Otherwise,
- you will need to know
- how to dial your ISP using the <quote>AT commands</quote>
- specific to your modem, as the PPP dialer provides only a very
- simple terminal emulator. Please
- to the user-ppp <link linkend="userppp">handbook</link> and <ulink
- url="../FAQ/ppp.html">FAQ</ulink> entries for further
- information. If you have problems, logging can be directed to
- the screen using the command <command>set log local
- ...</command>.</para>
-
- <para>If a hard-wired connection to another FreeBSD (2.0-R or
- later) machine is available, you might also consider installing
- over a <quote>laplink</quote> parallel port cable. The data rate
- over the parallel port is much higher than what is typically
- possible over a serial line (up to 50kbytes/sec), thus resulting
- in a quicker installation.</para>
-
- <para>Finally, for the fastest possible network installation, an
- ethernet adapter is always a good choice! FreeBSD supports most
- common PC ethernet cards; a table of supported cards (and their
- required settings) is provided in the <link
- linkend="install-hw">Supported Hardware</link> list. If you are
- using one of the supported PCMCIA ethernet cards, also be sure
- that it is plugged in <emphasis>before</emphasis> the laptop is
- powered on! FreeBSD does not, unfortunately, currently support
- hot insertion of PCMCIA cards during installation.</para>
-
- <para>You will also need to know your IP address on the network,
- the netmask value for your address class, and the name of your
- machine. If you are installing over a PPP connection and do not
- have a static IP, fear not, the IP address can be dynamically
- assigned by your ISP. Your system administrator can tell you
- which values to use for your particular network setup. If you
- will be referring to other hosts by name rather than IP address,
- you will also need a name server and possibly the address of a
- gateway (if you are using PPP, it is your provider's IP address)
- to use in talking to it. If you want to install by FTP via a
- HTTP proxy (see below), you will also need the proxy's address.
- If you do not know the answers to all or most of these questions,
- then you should really probably talk to your system administrator
- or ISP <emphasis>before</emphasis> trying this type of
- installation.</para>
-
- <sect4>
- <title>Before Installing via NFS</title>
-
- <para>The NFS installation is fairly straight-forward. Simply
- copy the FreeBSD distribution files you want onto a server
- somewhere and then point the NFS media selection at it.</para>
-
- <para>If this server supports only <quote>privileged port</quote>
- (as is generally the default for Sun workstations), you will
- need to set this option in the Options menu before
- installation can proceed.</para>
-
- <para>If you have a poor quality ethernet card which suffers
- from very slow transfer rates, you may also wish to toggle the
- appropriate Options flag.</para>
-
- <para>In order for NFS installation to work, the server must
- support subdir mounts, e.g., if your FreeBSD 3.4 distribution
- directory lives
- on:<filename>ziggy:/usr/archive/stuff/FreeBSD</filename>, then
- <hostid>ziggy</hostid> will have to allow the direct mounting
- of <filename>/usr/archive/stuff/FreeBSD</filename>, not just
- <filename>/usr</filename> or
- <filename>/usr/archive/stuff</filename>.</para>
-
- <para>In FreeBSD's <filename>/etc/exports</filename> file, this
- is controlled by the <option>-alldirs</option>. Other NFS
- servers may have different conventions. If you are getting
- <quote>permission denied</quote> messages from the server, then
- it is likely that you do not have this enabled
- properly.</para>
- </sect4>
-
- <sect4>
- <title>Before Installing via FTP</title>
-
- <para>FTP installation may be done from any FreeBSD mirror site
- containing a reasonably up-to-date version of FreeBSD. A full
- list of FTP mirrors located all over the world is provided
- during the install process.</para>
-
- <para>If you are installing from an FTP site not listed in this
- menu, or are having trouble getting your name server
- configured properly, you can also specify a URL to use by
- selecting the choice labeled <quote>Other</quote> in that menu.
- You can also use the IP address of a machine you wish to
- install from, so the following would work in the absence of a
- name server:</para>
-
- <screen><userinput>ftp://209.55.82.20/pub/FreeBSD/&rel.current;-RELEASE</userinput></screen>
-
- <para>There are three FTP installation modes you can choose from:
- active or passive FTP or via a HTTP proxy.</para>
-
- <variablelist>
- <varlistentry>
- <term>FTP Active</term>
-
- <listitem>
- <para>This option will make all FTP transfers
- use <quote>Active</quote>
- mode. This will not work through firewalls, but will
- often work with older FTP servers that do not support
- passive mode. If your connection hangs with passive
- mode (the default), try active!</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FTP Passive</term>
-
- <listitem>
- <para>This option instructs FreeBSD to use
- <quote>Passive</quote> mode for all FTP operations.
- This allows the user to pass through firewalls
- that do not allow incoming connections on random port
- addresses.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FTP via a HTTP proxy</term>
-
- <listitem>
- <para>This option instructs FreeBSD to use the HTTP
- protocol (like a web browser) to connect to a proxy
- for all FTP operations. The proxy will translate
- the requests and send them to the FTP server.
- This allows the user to pass through firewalls
- that do not allow FTP at all, but offer a HTTP
- proxy.
- In this case, you have to specify the proxy in
- addition to the FTP server.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <note>
- <para>There is another type of FTP proxy other tha HTTP
- proxies. This type is very uncommon, though. If you
- are not absolutely certain, you can assume that you
- have a HTTP proxy as described above.</para>
- </note>
-
- <para>For a proxy FTP server, you should usually give the name
- of the server you really want as a part of the username, after
- an <quote>@</quote> sign. The proxy server then
- <quote>fakes</quote> the real server. For example, assuming
- you want to install from <hostid
- role="fqdn">ftp.FreeBSD.org</hostid>, using the proxy FTP
- server <hostid role="fqdn">foo.bar.com</hostid>, listening on
- port 1024.</para>
-
- <para>In this case, you go to the options menu, set the FTP
- username to ftp@ftp.FreeBSD.org, and the password to your
- email address. As your installation media, you specify FTP
- (or passive FTP, if the proxy supports it), and the URL
- <literal>ftp://foo.bar.com:1234/pub/FreeBSD</literal>.</para>
-
- <para>Since <filename>/pub/FreeBSD</filename> from <hostid
- role="fqdn">ftp.FreeBSD.org</hostid> is proxied under <hostid
- role="fqdn">foo.bar.com</hostid>, you are able to install from
- <emphasis>that</emphasis> machine (which will fetch the files
- from <hostid role="fqdn">ftp.FreeBSD.org</hostid> as your
- installation requests them.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Check your BIOS drive numbering</title>
-
- <para>If you have used features in your BIOS to renumber your disk
- drives without re-cabling them then you should read <xref
- linkend="disks-bios-numbering"> first to avoid confusion.</para>
- </sect3>
- </sect2>
-
- <sect2 id="install-freebsd">
- <title>Installing FreeBSD</title>
-
- <para>Once you have completed the pre-installation step relevant to
- your situation, you are ready to install FreeBSD!</para>
-
- <para>Although you should not experience any difficulty, there is
- always the chance that you may, no matter how slight it is. If this
- is the case in your situation, then you may wish to go back and
- re-read the relevant preparation section or sections. Perhaps you
- will come across something you missed the first time. If you are
- having hardware problems, or FreeBSD refuses to boot at all, read
- the <ulink url="../FAQ/hardware.html">Hardware Guide</ulink> for a
- list of possible solutions.</para>
-
- <para>The FreeBSD boot floppies contain all of the online
- documentation you should need to be able to navigate through an
- installation. If it does not, please let us know what you found
- to be the most confusing or most lacking. Send your comments to
- the &a.doc;. It is the objective of the installation program
- (sysinstall) to be self-documenting enough that painful
- <quote>step-by-step</quote> guides are no longer necessary. It may
- take us a little while to reach that objective, but nonetheless,
- it is still our objective :-)</para>
-
- <para>Meanwhile, you may also find the following <quote>typical
- installation sequence</quote> to be helpful:</para>
-
- <orderedlist>
- <listitem>
- <para>Boot the <filename>kern.flp</filename> floppy and when
- asked, remove it and insert the
- <filename>mfsroot.flp</filename> and hit return. After a
- boot sequence which can take anywhere from 30 seconds to 3
- minutes, depending on your hardware, you should be presented
- with a menu of initial choices. If the
- <filename>kern.flp</filename> floppy does not boot at all or
- the boot hangs at some stage, read the Q&amp;A section of the
- <ulink url="../FAQ/hardware.html">Hardware Guide</ulink> for
- possible causes.</para>
- </listitem>
-
- <listitem>
- <para>Press F1. You should see some basic usage instructions on
- the menu screen and general navigation. If you have not used
- this menu system before then <emphasis>please</emphasis> read
- this thoroughly.</para>
- </listitem>
-
- <listitem>
- <para>Select the Options item and set any special preferences
- you may have.</para>
- </listitem>
-
- <listitem>
- <para>Select a Standard, Express, or Custom install, depending on
- whether or not you would like the installation to help you
- through a typical installation, give you a high degree of
- control over each step, or simply whiz through it (using
- reasonable defaults when possible) as fast as possible. If
- you have never used FreeBSD before, the Standard installation
- method is most recommended.</para>
- </listitem>
-
- <listitem>
- <para>The final configuration menu choice allows you to further
- configure your FreeBSD installation by giving you menu-driven
- access to various system defaults. Some items, like
- networking, may be especially important if you did a CDROM,
- tape, or floppy install and have not yet configured your
- network interfaces (assuming you have any). Properly
- configuring such interfaces here will allow FreeBSD to come up
- on the network when you first reboot from the hard
- disk.</para>
- </listitem>
- </orderedlist>
- </sect2>
- </sect1>
-
- <sect1 id="install-hw">
- <title>Supported Hardware</title>
-
- <para>FreeBSD currently runs on a wide variety of ISA, VLB, EISA, and
- PCI bus based PCs, ranging from the 386SX to Pentium class machines
- (though the 386SX is not recommended). Support for generic IDE or
- ESDI drive configurations, various SCSI controllers, and network and
- serial cards is also provided. FreeBSD also supports IBM's
- microchannel (MCA) bus.</para>
-
- <para>In order to run FreeBSD, a recommended minimum of eight
- megabytes of RAM is suggested. Sixteen megabytes is the preferred
- amount of RAM as you may have some trouble with anything less than
- sixteen depending on your hardware.</para>
-
- <para>What follows is a list of hardware currently known to work with
- FreeBSD. There may be other hardware that works as well, but we
- have simply not received any confirmation of it.</para>
-
- <sect2>
- <title>Disk Controllers</title>
-
- <itemizedlist>
- <listitem>
- <para>WD1003 (any generic MFM/RLL)</para>
- </listitem>
-
- <listitem>
- <para>WD1007 (any generic IDE/ESDI)</para>
- </listitem>
-
- <listitem>
- <para>IDE</para>
- </listitem>
-
- <listitem>
- <para>ATA</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 1535 ISA SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 154X series ISA SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 174X series EISA SCSI controllers in standard and
- enhanced mode</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 274X/284X/2920C/294X/2950/3940/3950
- (Narrow/Wide/Twin) series EISA/VLB/PCI SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec AIC-7850, AIC-7860, AIC-7880, AIC-789X on-board SCSI
- controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 1510 series ISA SCSI controllers (not for bootable
- devices)</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 152X series ISA SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec AIC-6260 and AIC-6360 based boards, which include
- the AHA-152X and SoundBlaster SCSI cards</para>
- </listitem>
-
- <listitem>
- <para>AdvanSys SCSI controllers (all models)</para>
- </listitem>
-
- <listitem>
- <para>BusLogic MultiMaster <quote>W</quote> Series Host Adapters
- including BT-948, BT-958, BT-9580</para>
- </listitem>
-
- <listitem>
- <para>BusLogic MultiMaster <quote>C</quote> Series Host Adapters
- including BT-946C, BT-956C, BT-956CD, BT-445C, BT-747C,
- BT-757C, BT-757CD, BT-545C, BT-540CF</para>
- </listitem>
-
- <listitem>
- <para>BusLogic MultiMaster <quote>S</quote> Series Host Adapters
- including BT-445S, BT-747S, BT-747D, BT-757S, BT-757D,
- BT-545S, BT-542D, BT-742A, BT-542B</para>
- </listitem>
-
- <listitem>
- <para>BusLogic MultiMaster <quote>A</quote> Series Host Adapters
- including BT-742A, BT-542B</para>
- </listitem>
-
- <listitem>
- <para>AMI FastDisk controllers that are true BusLogic
- MultiMaster clones are also supported.</para>
-
- <note>
- <para>BusLogic/Mylex <quote>Flashpoint</quote> adapters are NOT
- yet supported.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III,
- SmartCACHE IV, and SmartRAID IV SCSI/RAID are supported. The
- DPT SmartRAID/CACHE V is not yet supported. The DPT PM3754U2-16M
- SCSI RAID Controller is also supported.</para>
- </listitem>
-
- <listitem>
- <para>Compaq Intelligent Disk Array Controllers: IDA, IDA-2, IAES,
- SMART, SMART-2/E, Smart-2/P, SMART-2SL, Integrated Array, and
- Smart Arrays 3200, 3100ES, 221, 4200, 4200, 4250ES.</para>
- </listitem>
-
- <listitem>
- <para>SymBios (formerly NCR) 53C810, 53C810a, 53C815, 53C820,
- 53C825a, 53C860, 53C875, 53C875j, 53C885, and 53C896 PCI SCSI
- controllers including ASUS SC-200, Data Technology DTC3130
- (all variants), Diamond FirePort (all), NCR cards (all),
- SymBios cards (all), Tekram DC390W, 390U, and 390F, and Tyan
- S1365</para>
- </listitem>
-
- <listitem>
- <para>QLogic 1020, 1040, 1040B, and 2100 SCSI and Fibre
- Channel Adapters</para>
- </listitem>
-
- <listitem>
- <para>DTC 3290 EISA SCSI controller in 1542 evaluation
- mode</para>
- </listitem>
- </itemizedlist>
-
- <para>With all supported SCSI controllers, full support is provided
- for SCSI-I and SCSI-II peripherals, including hard disks, optical
- disks, tape drives (including DAT and 8mm Exabyte), medium
- changers, processor target devices, and CDROM drives. WORM
- devices that support CDROM commands are supported for read-only
- access by the CDROM driver. WORM/CD-R/CD-RW writing support is
- provided by cdrecord, which is in the ports tree.</para>
-
- <para>The following CD-ROM type systems are supported at this
- time:</para>
-
- <itemizedlist>
- <listitem>
- <para><devicename>cd</devicename> - SCSI interface (includes
- ProAudio Spectrum and SoundBlaster SCSI)</para>
- </listitem>
-
- <listitem>
- <para><devicename>matcd</devicename> - Matsushita/Panasonic
- (Creative SoundBlaster) proprietary interface (562/563
- models)</para>
- </listitem>
-
- <listitem>
- <para><devicename>scd</devicename> - Sony proprietary interface
- (all models)</para>
- </listitem>
-
- <listitem>
- <para><devicename>acd</devicename> - ATAPI IDE interface</para>
- </listitem>
- </itemizedlist>
-
- <para>The following drivers were supported under the old SCSI
- subsystem, but are NOT YET supported under the new CAM SCSI
- subsystem:</para>
-
- <itemizedlist>
- <listitem>
- <para>NCR5380/NCR53400 (<quote>ProAudio Spectrum</quote>) SCSI
- controller</para>
- </listitem>
-
- <listitem>
- <para>UltraStor 14F, 24F, and 34F SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Seagate ST01/02 SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Future Domain 8XX/950 series SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>WD7000 SCSI controller</para>
-
- <note>
- <para>There is work-in-progress to port the UltraStor driver
- to the new CAM framework, but no estimates on when or if it
- will be completed.</para>
- </note>
- </listitem>
- </itemizedlist>
-
- <para>Unmaintained drivers, which might or might not work for your
- hardware:</para>
-
- <itemizedlist>
- <listitem>
- <para>Floppy tape interface (Colorado/Mountain/Insight)</para>
- </listitem>
-
- <listitem>
- <para><devicename>mcd</devicename> - Mitsumi proprietary CD-ROM
- interface (all models)</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 id="install-nics">
- <title>Network Cards</title>
-
- <itemizedlist>
- <listitem>
- <para>Adaptec Duralink PCI fast ethernet adapters based on the
- Adaptec AIC-6195 fast ethernet controller chip, including the
- following:</para>
-
- <itemizedlist>
- <listitem>
- <para>ANA-62011 64-bit single port 10/100baseTX
- adapter</para>
- </listitem>
-
- <listitem>
- <para>ANA-62022 64-bit dual port 10/100baseTX adapter</para>
- </listitem>
-
- <listitem>
- <para>ANA-62044 64-bit quad port 10/100baseTX adapter</para>
- </listitem>
-
- <listitem>
- <para>ANA-69011 32-bit single port 10/100baseTX
- adapter</para>
- </listitem>
-
- <listitem>
- <para>ANA-62020 64-bit single port 100baseFX adapter</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Allied-Telesyn AT1700 and RE2000 cards</para>
- </listitem>
-
- <listitem>
- <para>Alteon Networks PCI gigabit ethernet NICs based on the
- Tigon 1 and Tigon 2 chipsets including the Alteon AceNIC
- (Tigon 1 and 2), 3Com 3c985-SX (Tigon 1 and 2), Netgear GA620
- (Tigon 2), Silicon Graphics Gigabit Ethernet, DEC/Compaq
- EtherWORKS 1000, NEC Gigabit Ethernet</para>
- </listitem>
-
- <listitem>
- <para>AMD PCnet/PCI (79c970 and 53c974 or 79c974)</para>
- </listitem>
-
- <listitem>
- <para>RealTek 8129/8139 fast ethernet NICs including the
- following:</para>
-
- <itemizedlist>
- <listitem>
- <para>Allied-Telesyn AT2550</para>
- </listitem>
-
- <listitem>
- <para>Allied-Telesyn AT2500TX</para>
- </listitem>
-
- <listitem>
- <para>Genius GF100TXR (RTL8139)</para>
- </listitem>
-
- <listitem>
- <para>NDC Communications NE100TX-E</para>
- </listitem>
-
- <listitem>
- <para>OvisLink LEF-8129TX</para>
- </listitem>
-
- <listitem>
- <para>OvisLink LEF-8139TX</para>
- </listitem>
-
- <listitem>
- <para>Netronix Inc. EA-1210 NetEther 10/100</para>
- </listitem>
-
- <listitem>
- <para>KTX-9130TX 10/100 Fast Ethernet</para>
- </listitem>
-
- <listitem>
- <para>Accton <quote>Cheetah</quote> EN1207D (MPX 5030/5038;
- RealTek 8139 clone)</para>
- </listitem>
-
- <listitem>
- <para>SMC EZ Card 10/100 PCI 1211-TX</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Lite-On 98713, 98713A, 98715, and 98725 fast ethernet
- NICs, including the LinkSys EtherFast LNE100TX, NetGear
- FA310-TX Rev. D1, Matrox FastNIC 10/100, Kingston
- KNE110TX</para>
- </listitem>
-
- <listitem>
- <para>Macronix 98713, 98713A, 98715, 98715A, and 98725 fast
- ethernet NICs including the NDC Communications SFA100A
- (98713A), CNet Pro120A (98713 or 98713A), CNet Pro120B
- (98715), SVEC PN102TX (98713)</para>
- </listitem>
-
- <listitem>
- <para>Macronix/Lite-On PNIC II LC82C115 fast ethernet NICs
- including the LinkSys EtherFast LNE100TX version 2</para>
- </listitem>
-
- <listitem>
- <para>Winbond W89C840F fast ethernet NICs including the
- Trendware TE100-PCIE</para>
- </listitem>
-
- <listitem>
- <para>VIA Technologies VT3043 <quote>Rhine I</quote> and
- VT86C100A <quote>Rhine II</quote> fast ethernet NICs including
- the Hawking Technologies PN102TX and D-Link DFE-530TX</para>
- </listitem>
-
- <listitem>
- <para>Silicon Integrated Systems SiS 900 and SiS 7016 PCI fast
- ethernet NICs</para>
- </listitem>
-
- <listitem>
- <para>Sundance Technologies ST201 PCI fast ethernet NICs
- including the D-Link DFE-550TX</para>
- </listitem>
-
- <listitem>
- <para>SysKonnect SK-984x PCI gigabit ethernet cards including
- the SK-9841 1000baseLX (single mode fiber, single port),
- the SK-9842 1000baseSX (multimode fiber, single port), the
- SK-9843 1000baseLX (single mode fiber, dual port), and the
- SK-9844 1000baseSX (multimode fiber, dual port).</para>
- </listitem>
-
- <listitem>
- <para>Texas Instruments ThunderLAN PCI NICs, including the
- Compaq Netelligent 10, 10/100, 10/100 Proliant, 10/100
- Dual-Port, 10/100 TX Embedded UTP, 10 T PCI UTP/Coax, and
- 10/100 TX UTP, the Compaq NetFlex 3P, 3P Integrated, and 3P
- w/BNC, the Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX
- UTP, and the Racore 8165 10/100baseTX and 8148
- 10baseT/100baseTX/100baseFX multi-personality cards</para>
- </listitem>
-
- <listitem>
- <para>ADMtek AL981-based and AN985-based PCI fast ethernet
- NICs</para>
- </listitem>
-
- <listitem>
- <para>ASIX Electronics AX88140A PCI NICs including the Alfa Inc.
- GFC2204 and CNet Pro110B</para>
- </listitem>
-
- <listitem>
- <para>DEC EtherWORKS III NICs (DE203, DE204, and DE205)</para>
- </listitem>
-
- <listitem>
- <para>DEC EtherWORKS II NICs (DE200, DE201, DE202, and
- DE422)</para>
- </listitem>
-
- <listitem>
- <para>DEC DC21040, DC21041, or DC21140 based NICs (SMC
- Etherpower 8432T, DE245, etc.)</para>
- </listitem>
-
- <listitem>
- <para>DEC FDDI (DEFPA/DEFEA) NICs</para>
- </listitem>
-
- <listitem>
- <para>Efficient ENI-155p ATM PCI</para>
- </listitem>
-
- <listitem>
- <para>FORE PCA-200E ATM PCI</para>
- </listitem>
-
- <listitem>
- <para>Fujitsu MB86960A/MB86965A</para>
- </listitem>
-
- <listitem>
- <para>HP PC Lan+ cards (model numbers: 27247B and 27252A)</para>
- </listitem>
-
- <listitem>
- <para>Intel EtherExpress ISA (not recommended due to driver
- instability)</para>
- </listitem>
-
- <listitem>
- <para>Intel EtherExpress Pro/10</para>
- </listitem>
-
- <listitem>
- <para>Intel EtherExpress Pro/100B PCI Fast Ethernet</para>
- </listitem>
-
- <listitem>
- <para>Isolan AT 4141-0 (16 bit)</para>
- </listitem>
-
- <listitem>
- <para>Isolink 4110 (8 bit)</para>
- </listitem>
-
- <listitem>
- <para>Novell NE1000, NE2000, and NE2100 Ethernet
- interfaces</para>
- </listitem>
-
- <listitem>
- <para>PCI network cards emulating the NE2000, including the
- RealTek 8029, NetVin 5000, Winbond W89C940, Surecom NE-34, VIA
- VT86C926</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C501, 3C503 Etherlink II, 3C505 Etherlink/+, 3C507
- Etherlink 16/TP, 3C509, 3C579, 3C589 (PCMCIA),
- 3C590/592/595/900/905/905B/905C PCI and EISA (Fast) Etherlink
- III / (Fast) Etherlink XL, 3C980/3C980B Fast Etherlink XL
- server adapter, 3CSOHO100-TX OfficeConnect adapter</para>
- </listitem>
-
- <listitem>
- <para>Toshiba ethernet cards</para>
- </listitem>
-
- <listitem>
- <para>PCMCIA ethernet cards from IBM and National Semiconductor
- are also supported</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 id="install-usb">
- <title>USB Peripherals</title>
-
- <para>A wide range of USB peripherals are supported. Owing to the
- generic nature of most USB devices, with some exceptions any
- device of a given class will be supported even if not explicitly
- listed here.</para>
-
- <itemizedlist>
- <listitem>
- <para>USB keyboards</para>
- </listitem>
-
- <listitem>
- <para>USB mice</para>
- </listitem>
-
- <listitem>
- <para>USB printers and USB to parallel printer conversion
- cables</para>
- </listitem>
-
- <listitem>
- <para>USB hubs</para>
- </listitem>
- </itemizedlist>
-
- <para>Motherboard chipsets:</para>
-
- <itemizedlist>
- <listitem>
- <para>ALi Aladdin-V</para>
- </listitem>
-
- <listitem>
- <para>Intel 82371SB (PIIX3) and 82371AB and EB (PIIX4)
- chipsets</para>
- </listitem>
-
- <listitem>
- <para>NEC uPD 9210 Host Controller</para>
- </listitem>
-
- <listitem>
- <para>VIA 83C572 USB Host Controller</para>
-
- <para>and any other UHCI or OHCI compliant motherboard chipset
- (no exceptions known).</para>
- </listitem>
- </itemizedlist>
-
- <para>PCI plug-in USB host controllers</para>
-
- <itemizedlist>
- <listitem>
- <para>ADS Electronics PCI plug-in card (2 ports)</para>
- </listitem>
-
- <listitem>
- <para>Entrega PCI plug-in card (4 ports)</para>
- </listitem>
- </itemizedlist>
-
- <para>Specific USB devices reported to be working:</para>
-
- <itemizedlist>
- <listitem>
- <para>Agiler Mouse 29UO</para>
- </listitem>
-
- <listitem>
- <para>Andromeda hub</para>
- </listitem>
-
- <listitem>
- <para>Apple iMac mouse and keyboard</para>
- </listitem>
-
- <listitem>
- <para>ATen parallel printer adapter</para>
- </listitem>
-
- <listitem>
- <para>Belkin F4U002 parallel printer adapter and Belkin
- mouse</para>
- </listitem>
-
- <listitem>
- <para>BTC BTC7935 keyboard with mouse port</para>
- </listitem>
-
- <listitem>
- <para>Cherry G81-3504</para>
- </listitem>
-
- <listitem>
- <para>Chic mouse</para>
- </listitem>
-
- <listitem>
- <para>Cypress mouse</para>
- </listitem>
-
- <listitem>
- <para>Entrega USB-to-parallel printer adapter</para>
- </listitem>
-
- <listitem>
- <para>Genius Niche mouse</para>
- </listitem>
-
- <listitem>
- <para>Iomega USB Zip 100 MB</para>
- </listitem>
-
- <listitem>
- <para>Kensington Mouse-in-a-Box</para>
- </listitem>
-
- <listitem>
- <para>Logitech M2452 keyboard</para>
- </listitem>
-
- <listitem>
- <para>Logictech wheel mouse (3 buttons)</para>
- </listitem>
-
- <listitem>
- <para>Logitech PS/2 / USB mouse (3 buttons)</para>
- </listitem>
-
- <listitem>
- <para>MacAlly mouse (3 buttons)</para>
- </listitem>
-
- <listitem>
- <para>MacAlly self-powered hub (4 ports)</para>
- </listitem>
-
- <listitem>
- <para>Microsoft Intellimouse (3 buttons)</para>
- </listitem>
-
- <listitem>
- <para>Microsoft keyboard</para>
- </listitem>
-
- <listitem>
- <para>NEC hub</para>
- </listitem>
-
- <listitem>
- <para>Trust Ami Mouse (3 buttons)</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 id="install-isdn">
- <title>ISDN (European DSS1 [Q.921/Q.931] protocol)</title>
-
- <itemizedlist>
- <listitem>
- <para>Asuscom I-IN100-ST-DV (experimental, may work)</para>
- </listitem>
-
- <listitem>
- <para>Asuscom ISDNlink 128K</para>
- </listitem>
-
- <listitem>
- <para>AVM A1</para>
- </listitem>
-
- <listitem>
- <para>AVM Fritz!Card classic</para>
- </listitem>
-
- <listitem>
- <para>AVM Fritz!Card PCI</para>
- </listitem>
-
- <listitem>
- <para>AVM Fritz!Card PCMCIA (currently FreeBSD 3.x only)</para>
- </listitem>
-
- <listitem>
- <para>AVM Fritz!Card PnP (currently FreeBSD 3.x only)</para>
- </listitem>
-
- <listitem>
- <para>Creatix ISDN-S0/8</para>
- </listitem>
-
- <listitem>
- <para>Creatix ISDN-S0/16</para>
- </listitem>
-
- <listitem>
- <para>Creatix ISDN-S0 PnP</para>
- </listitem>
-
- <listitem>
- <para>Dr.Neuhaus Niccy 1008</para>
- </listitem>
-
- <listitem>
- <para>Dr.Neuhaus Niccy 1016</para>
- </listitem>
-
- <listitem>
- <para>Dr.Neuhaus Niccy GO@ (ISA PnP)</para>
- </listitem>
-
- <listitem>
- <para>Dynalink IS64PH (no longer maintained)</para>
- </listitem>
-
- <listitem>
- <para>ELSA 1000pro ISA</para>
- </listitem>
-
- <listitem>
- <para>ELSA 1000pro PCI</para>
- </listitem>
-
- <listitem>
- <para>ELSA PCC-16</para>
- </listitem>
-
- <listitem>
- <para>ITK ix1 micro (currently FreeBSD 3.x only)</para>
- </listitem>
-
- <listitem>
- <para>ITK ix1 micro V.3 (currently FreeBSD 3.x only)</para>
- </listitem>
-
- <listitem>
- <para>Sagem Cybermod (ISA PnP, may work)</para>
- </listitem>
-
- <listitem>
- <para>Sedlbauer Win Speed</para>
- </listitem>
-
- <listitem>
- <para>Siemens I-Surf 2.0</para>
- </listitem>
-
- <listitem>
- <para>Stollman Tina-pp (under development)</para>
- </listitem>
-
- <listitem>
- <para>Teles S0/8</para>
- </listitem>
-
- <listitem>
- <para>Teles S0/16</para>
- </listitem>
-
- <listitem>
- <para>Teles S0/16.3 (the <quote>c</quote> Versions - like 16.3c
- - are unsupported!)</para>
- </listitem>
-
- <listitem>
- <para>Teles S0 PnP (experimental, may work)</para>
- </listitem>
-
- <listitem>
- <para>3Com/USRobotics Sportster ISDN TA intern (non-PnP
- version)</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 id="install-sound">
- <title>Sound Devices</title>
-
- <para>The following soundcards or codecs are supported (devices marked
- 'experimental' are only supported in FreeBSD-CURRENT and might
- work only unstably):</para>
-
- <itemizedlist>
- <listitem>
- <para>16550 UART (Midi) (experimental, needs a trick in the hints
- file)</para>
- </listitem>
-
- <listitem>
- <para>Advance Asound 100, 110 and Logic ALS120</para>
- </listitem>
-
- <listitem>
- <para>Aureal Vortex1/Vortex2 and Vortex Advantage based soundcards
- by a
- <ulink url="http://www.cis.ohio-state.edu/~matey/au88x0/">third
- party driver</ulink></para>
- </listitem>
-
- <listitem>
- <para>Creative Labs SB16, SB32, SB AWE64 (including Gold),
- Vibra16, SB PCI (experimental), SB Live! (experimental)
- and most SoundBlaster compatible cards</para>
- </listitem>
-
- <listitem>
- <para>Creative Labs SB Midi Port (experimental), SB OPL3
- Synthesizer (experimental)</para>
- </listitem>
-
- <listitem>
- <para>Crystal Semiconductor CS461x/462x Audio Accelerator,
- the support for the CS461x Midi port is experimental</para>
- </listitem>
-
- <listitem>
- <para>Crystal Semiconductor CS428x Audio Controller</para>
- </listitem>
-
- <listitem>
- <para>CS4237, CS4236, CS4232, CS4231 (ISA)</para>
- </listitem>
-
- <listitem>
- <para>ENSONIQ AudioPCI ES1370/1371</para>
- </listitem>
-
- <listitem>
- <para>ESS ES1868, ES1869, ES1879, ES1888</para>
- </listitem>
-
- <listitem>
- <para>Gravis UltraSound PnP, MAX</para>
- </listitem>
-
- <listitem>
- <para>NeoMagic 256AV/ZX (PCI)</para>
- </listitem>
-
- <listitem>
- <para>OPTi931 (ISA)</para>
- </listitem>
-
- <listitem>
- <para>OSS-compatible sequencer (Midi) (experimental)</para>
- </listitem>
-
- <listitem>
- <para>Trident 4DWave DX/NX (PCI)</para>
- </listitem>
-
- <listitem>
- <para>Yahama OPL-SAx (ISA)</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 id="install-misc">
- <title>Miscellaneous Devices</title>
-
- <itemizedlist>
- <listitem>
- <para>AST 4 port serial card using shared IRQ</para>
- </listitem>
-
- <listitem>
- <para>ARNET 8 port serial card using shared IRQ</para>
- </listitem>
-
- <listitem>
- <para>ARNET (now Digiboard) Sync 570/i high-speed serial</para>
- </listitem>
-
- <listitem>
- <para>Boca BB1004 4-Port serial card (Modems NOT
- supported)</para>
- </listitem>
-
- <listitem>
- <para>Boca IOAT66 6-Port serial card (Modems supported)</para>
- </listitem>
-
- <listitem>
- <para>Boca BB1008 8-Port serial card (Modems NOT
- supported)</para>
- </listitem>
-
- <listitem>
- <para>Boca BB2016 16-Port serial card (Modems supported)</para>
- </listitem>
-
- <listitem>
- <para>Cyclades Cyclom-y Serial Board</para>
- </listitem>
-
- <listitem>
- <para>Moxa SmartIO CI-104J 4-Port serial card</para>
- </listitem>
-
- <listitem>
- <para>STB 4 port card using shared IRQ</para>
- </listitem>
-
- <listitem>
- <para>SDL Communications RISCom/8 Serial Board</para>
- </listitem>
-
- <listitem>
- <para>SDL Communications RISCom/N2 and N2pci high-speed sync
- serial boards</para>
- </listitem>
-
- <listitem>
- <para>Specialix SI/XIO/SX multiport serial cards, with both the
- older SIHOST2.x and the new <quote>enhanced</quote>
- (transputer based, aka JET) host cards; ISA, EISA and PCI are
- supported</para>
- </listitem>
-
- <listitem>
- <para>Stallion multiport serial boards: EasyIO, EasyConnection
- 8/32 & 8/64, ONboard 4/16 and Brumby</para>
- </listitem>
-
- <listitem>
- <para>Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum,
- Gravis UltraSound, and Roland MPU-401 sound cards</para>
- </listitem>
-
- <listitem>
- <para>Connectix QuickCam</para>
- </listitem>
-
- <listitem>
- <para>Matrox Meteor Video frame grabber</para>
- </listitem>
-
- <listitem>
- <para>Creative Labs Video Spigot frame grabber</para>
- </listitem>
-
- <listitem>
- <para>Cortex1 frame grabber</para>
- </listitem>
-
- <listitem>
- <para>Various frame grabbers based on the Brooktree Bt848
- and Bt878 chip</para>
- </listitem>
-
- <listitem>
- <para>HP4020, HP6020, Philips CDD2000/CDD2660 and Plasmon CD-R
- drives</para>
- </listitem>
-
- <listitem>
- <para>Bus mice</para>
- </listitem>
-
- <listitem>
- <para>PS/2 mice</para>
- </listitem>
-
- <listitem>
- <para>Standard PC Joystick</para>
- </listitem>
-
- <listitem>
- <para>X-10 power controllers</para>
- </listitem>
-
- <listitem>
- <para>GPIB and Transputer drives</para>
- </listitem>
-
- <listitem>
- <para>Genius and Mustek hand scanners</para>
- </listitem>
-
- <listitem>
- <para>Floppy tape drives (some rather old models only, driver is
- rather stale)</para>
- </listitem>
-
- <listitem>
- <para>Lucent Technologies WaveLAN/IEEE 802.11 PCMCIA and ISA
- standard speed (2Mbps) and turbo speed (6Mbps) wireless
- network adapters and workalikes (NCR WaveLAN/IEEE 802.11,
- Cabletron RoamAbout 802.11 DS)</para>
-
- <note>
- <para>The ISA versions of these adapters are actually PCMCIA
- cards combined with an ISA to PCMCIA bridge card, so both
- kinds of devices work with the same driver.</para>
- </note>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="install-trouble">
- <title>Troubleshooting</title>
-
- <para>The following section covers basic installation troubleshooting,
- such as common problems people have reported. There are also a few
- questions and answers for people wishing to dual-boot FreeBSD with
- MS-DOS.</para>
-
- <sect2>
- <title>What to do if something goes wrong...</title>
-
- <para>Due to various limitations of the PC architecture, it is
- impossible for probing to be 100% reliable, however, there are a
- few things you can do if it fails.</para>
-
- <para>Check the <link linkend="install-hw">supported
- hardware</link> list to make sure your hardware is
- supported.</para>
-
- <para>If your hardware is supported and you still experience
- lock-ups or other problems, reset your computer, and when the
- visual kernel configuration option is given, choose it. This will
- allow you to go through your hardware and supply information to the
- system about it. 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
- your hardware has been reconfigured, you will most likely need to
- use the configuration editor to tell FreeBSD where to find
- things.</para>
-
- <para>It is also possible that a probe for a device not present will
- cause a later probe for another device that is present to fail. In
- that case, the probes for the conflicting driver(s) should be
- disabled.</para>
-
- <warning>
- <para>Do not disable any drivers you will need during the
- installation, such as your screen (<devicename>sc0</devicename>).
- If the installation wedges or fails mysteriously after leaving
- the configuration editor, you have probably removed or changed
- something you should not have. Reboot and try again.</para>
- </warning>
-
- <para>In configuration mode, you can:</para>
-
- <itemizedlist>
- <listitem>
- <para>List the device drivers installed in the kernel.</para>
- </listitem>
-
- <listitem>
- <para>Change device drivers for hardware that is not present in
- your system.</para>
- </listitem>
-
- <listitem>
- <para>Change IRQs, DRQs, and IO port addresses used by a device
- driver.</para>
- </listitem>
- </itemizedlist>
-
- <para>After adjusting the kernel to match your hardware
- configuration, type <command>Q</command> to boot with the new
- settings. Once the installation has completed, any changes you
- made in the configuration mode will be permanent so you do not have
- to reconfigure every time you boot. It is still highly likely that
- you will eventually want to build a <link
- linkend="kernelconfig">custom kernel</link>.</para>
- </sect2>
-
- <sect2>
- <title>MS-DOS User's Questions and Answers</title>
-
- <para>Many users wish to install FreeBSD on PCs inhabited by MS-DOS.
- Here are some commonly asked questions about installing FreeBSD on
- such systems.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Help, I have no space! Do I need to delete everything
- first?</para>
- </question>
-
- <answer>
- <para>If your machine is already running MS-DOS and has little
- or no free space available for the FreeBSD installation, all
- hope is not lost! You may find the FIPS utility, provided
- in the <filename>tools</filename> directory on the FreeBSD
- CDROM or various FreeBSD FTP sites to be quite
- useful.</para>
-
- <para>FIPS allows you to split an existing MS-DOS partition
- into two pieces, preserving the original partition and
- allowing you to install onto the second free piece. You
- first defragment your MS-DOS partition using the Windows
- DEFRAG utility (go into Explorer, right-click on the
- hard drive, and choose to defrag your
- hard drive), or Norton Disk Tools. You then must run FIPS. It
- will prompt you for the rest of the information it needs.
- Afterwards, you can reboot and install FreeBSD on the new
- free slice. See the <emphasis>Distributions</emphasis> menu
- for an estimate of how much free space you will need for the
- kind of installation you want.</para>
-
- <para>There is also a <emphasis>very</emphasis> useful
- product from <ulink
- url="http://www.powerquest.com/">PowerQuest</ulink>
- called <application>Partition Magic</application>. This
- application has far more functionality than FIPS, and is
- highly recommended if you plan to often add/remove
- operating systems (like me). However, it does cost
- money, and if you plan to install FreeBSD once and then
- leave it there, FIPS will probably be fine for you.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I use compressed MS-DOS filesystems from
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>No. If you are using a utility such as Stacker(tm) or
- DoubleSpace(tm), FreeBSD will only be able to use whatever
- portion of the filesystem you leave uncompressed. The rest
- of the filesystem will show up as one large file (the
- stacked/double spaced file!). <emphasis>Do not remove that
- file or you will probably regret it
- greatly!</emphasis></para>
-
- <para>It is probably better to create another uncompressed
- primary MS-DOS partition and use this for communications
- between MS-DOS and FreeBSD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I mount my extended MS-DOS partition?</para>
- </question>
-
- <answer>
- <para>Yes. DOS extended partitions are mapped in at the end
- of the other <quote>slices</quote> in FreeBSD, e.g., your
- <devicename>D:</devicename> drive might be
- <filename>/dev/da0s5</filename>, your
- <devicename>E:</devicename> drive,
- <filename>/dev/da0s6</filename>, and so on. This example
- assumes, of course, that your extended partition is on SCSI
- drive 0. For IDE drives, substitute <filename>ad</filename>
- for <filename>da</filename> appropriately if installing
- 4.0-RELEASE or later, and substitute
- <filename>wd</filename> for <filename>da</filename> if you
- are installing a version of FreeBSD prior to 4.0. You otherwise
- mount extended partitions exactly like you would any other
- DOS drive, for example:</para>
-
- <screen>&prompt.root; <userinput>mount -t msdos /dev/ad0s5 /dos_d</userinput></screen>
- </answer>
- </qandaentry>
- </qandaset>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml b/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml
deleted file mode 100644
index aa3e999542..0000000000
--- a/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml
+++ /dev/null
@@ -1,709 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/introduction/chapter.sgml,v 1.35 2000/11/16 07:41:52 jkh Exp $
--->
-
-<chapter id="introduction">
- <title>Introduction</title>
-
- <para><emphasis>Restructured, reorganized, and parts rewritten by
- &a.jim;, 17 January 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>Thank you for your interest in FreeBSD! The following chapter
- covers various items about the FreeBSD Project, such as its history,
- goals, development model, and so on.</para>
-
- <para>FreeBSD is a 4.4BSD-Lite based operating system for the Intel
- architecture (x86) and DEC Alpha based systems. Ports to other
- architectures are also underway. For a brief overview of FreeBSD,
- see the <link linkend="nutshell">next section</link>. You can also
- read about <link linkend="history">the history of FreeBSD</link>,
- or the <link linkend="relnotes">current release</link>. If you
- are interested in contributing something to the Project (code,
- hardware, unmarked bills), see the <link
- linkend="contrib">contributing to FreeBSD</link> section.</para>
- </sect1>
-
- <sect1 id="nutshell">
- <title>Welcome to FreeBSD!</title>
-
- <para>Since you are still here reading this, you most likely have some
- idea as to what FreeBSD is and what it can do for you. If you are
- new to FreeBSD, read on for more information.</para>
-
- <sect2>
- <title>What is FreeBSD?</title>
-
- <para>In general, FreeBSD is a state-of-the-art operating system
- based on 4.4BSD-Lite. It runs on computer systems based on the
- Intel architecture (x86), and also the DEC Alpha
- architecture.</para>
-
- <para>FreeBSD is used to power some of the biggest sites on the
- Internet, including:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.yahoo.com/">Yahoo!</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.hotmail.com/">Hotmail</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.apache.org/">Apache</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.be.com/">Be, Inc.</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.bluemountain.com/">Blue Mountain
- Arts</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.pair.com/">Pair
- Networks</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.whistle.com/">Whistle
- Communications</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.osd.bsdi.com/">BSDi</ulink></para>
- </listitem>
- </itemizedlist>
-
- <para>and many more.</para>
- </sect2>
-
- <sect2>
- <title>What can FreeBSD do?</title>
-
- <para>FreeBSD has many noteworthy features. Some of these
- are:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Preemptive multitasking</emphasis> with
- dynamic priority adjustment to ensure smooth and fair
- sharing of the computer between applications and users, even
- under the heaviest of loads.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Multi-user facilities</emphasis> which allow many
- people to use a FreeBSD system simultaneously for a variety
- of things. This means, for example, that system peripherals
- such as printers and tape drives are properly shared between
- all users on the system or the network and that individual
- resource limits can be placed on users or groups of users,
- protecting critical system resources from over-use.</para>
- </listitem>
-
- <listitem>
- <para>Strong <emphasis>TCP/IP networking</emphasis> with
- support for industry standards such as SLIP, PPP, NFS, DHCP,
- and NIS. This means that your FreeBSD machine can
- inter-operate easily with other systems as well as act as an
- enterprise server, providing vital functions such as NFS
- (remote file access) and e-mail services or putting your
- organization on the Internet with WWW, FTP, routing and
- firewall (security) services.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Memory protection</emphasis> ensures that
- applications (or users) cannot interfere with each other. One
- application crashing will not affect others in any way.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD is a <emphasis>32-bit</emphasis> operating
- system (<emphasis>64-bit</emphasis> on the Alpha) and was
- designed as such from the ground up.</para>
- </listitem>
-
- <listitem>
- <para>The industry standard <emphasis>X Window System</emphasis>
- (X11R6) provides a graphical user interface (GUI) for the cost
- of a common VGA card and monitor and comes with full
- sources.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Binary compatibility</emphasis> with many
- programs built for Linux, SCO, SVR4, BSDI and NetBSD.</para>
- </listitem>
-
- <listitem>
- <para>Thousands of <emphasis>ready-to-run</emphasis>
- applications are available from the FreeBSD
- <emphasis>ports</emphasis> and <emphasis>packages</emphasis>
- collection. Why search the net when you can find it all right
- here?</para>
- </listitem>
-
- <listitem>
- <para>Thousands of additional and
- <emphasis>easy-to-port</emphasis> applications are available
- on the Internet. FreeBSD is source code compatible with most
- popular commercial Unix systems and thus most applications
- require few, if any, changes to compile.</para>
- </listitem>
-
- <listitem>
- <para>Demand paged <emphasis>virtual memory</emphasis> and
- <quote>merged VM/buffer cache</quote> design efficiently
- satisfies applications with large appetites for memory while
- still maintaining interactive response to other users.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>SMP</emphasis> support for machines with
- multiple CPUs (Intel only).</para>
- </listitem>
-
- <listitem>
- <para>A full complement of <emphasis>C</emphasis>,
- <emphasis>C++</emphasis>, <emphasis>Fortran</emphasis>, and
- <emphasis>Perl</emphasis> development tools.
- Many additional languages for advanced research
- and development are also available in the ports and packages
- collection.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Source code</emphasis> for the entire system
- means you have the greatest degree of control over your
- environment. Why be locked into a proprietary solution
- at the mercy of your vendor when you can have a truly Open
- System?</para>
- </listitem>
-
- <listitem>
- <para>Extensive <emphasis>on-line
- documentation</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>And many more!</emphasis></para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD is based on the 4.4BSD-Lite release from Computer
- Systems Research Group (CSRG) at the University of California at
- Berkeley, and carries on the distinguished tradition of BSD
- systems development. In addition to the fine work provided by
- CSRG, the FreeBSD Project has put in many thousands of hours in
- fine tuning the system for maximum performance and reliability in
- real-life load situations. As many of the commercial giants
- struggle to field PC operating systems with such features,
- performance and reliability, FreeBSD can offer them
- <emphasis>now</emphasis>!</para>
-
- <para>The applications to which FreeBSD can be put are truly
- limited only by your own imagination. From software development
- to factory automation, inventory control to azimuth correction of
- remote satellite antennae; if it can be done with a commercial
- UNIX product then it is more than likely that you can do it with
- FreeBSD, too! FreeBSD also benefits significantly from the
- literally thousands of high quality applications developed by
- research centers and universities around the world, often
- available at little to no cost. Commercial applications are also
- available and appearing in greater numbers every day.</para>
-
- <para>Because the source code for FreeBSD itself is generally
- available, the system can also be customized to an almost unheard
- of degree for special applications or projects, and in ways not
- generally possible with operating systems from most major
- commercial vendors. Here is just a sampling of some of the
- applications in which people are currently using FreeBSD:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Internet Services:</emphasis> The robust TCP/IP
- networking built into FreeBSD makes it an ideal platform for a
- variety of Internet services such as:</para>
-
- <itemizedlist>
- <listitem>
- <para>FTP servers</para>
- </listitem>
-
- <listitem>
- <para>World Wide Web servers (standard or secure
- [SSL])</para>
- </listitem>
-
- <listitem>
- <para>Firewalls and NAT (<quote>IP masquerading</quote>)
- gateways.</para>
- </listitem>
-
- <listitem>
- <para>Electronic Mail servers</para>
- </listitem>
-
- <listitem>
- <para>USENET News or Bulletin Board Systems</para>
- </listitem>
-
- <listitem>
- <para>And more...</para>
- </listitem>
- </itemizedlist>
-
- <para>With FreeBSD, you can easily start out small with an
- inexpensive 386 class PC and upgrade all the way up to a
- quad-processor Xeon with RAID storage as your enterprise
- grows.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Education:</emphasis> Are you a student of
- computer science or a related engineering field? There is no
- better way of learning about operating systems, computer
- architecture and networking than the hands on, under the hood
- experience that FreeBSD can provide. A number of freely
- available CAD, mathematical and graphic design packages also
- make it highly useful to those whose primary interest in a
- computer is to get <emphasis>other</emphasis> work
- done!</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Research:</emphasis> With source code for the
- entire system available, FreeBSD is an excellent platform for
- research in operating systems as well as other branches of
- computer science. FreeBSD's freely available nature also makes
- it possible for remote groups to collaborate on ideas or
- shared development without having to worry about special
- licensing agreements or limitations on what may be discussed
- in open forums.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Networking:</emphasis> Need a new router? A
- name server (DNS)? A firewall to keep people out of your
- internal network? FreeBSD can easily turn that unused 386 or
- 486 PC sitting in the corner into an advanced router with
- sophisticated packet-filtering capabilities.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>X Window workstation:</emphasis> FreeBSD is a
- fine choice for an inexpensive X terminal solution, either
- using the freely available XFree86 server or one of the
- excellent commercial servers provided by X Inside. Unlike an
- X terminal, FreeBSD allows many applications to be run
- locally, if desired, thus relieving the burden on a central
- server. FreeBSD can even boot <quote>diskless</quote>, making
- individual workstations even cheaper and easier to
- administer.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Software Development:</emphasis> The basic
- FreeBSD system comes with a full complement of development
- tools including the renowned GNU C/C++ compiler and
- debugger.</para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD is available in both source and binary form on CDROM
- and via anonymous FTP. See <link linkend="mirrors">Obtaining
- FreeBSD</link> for more details.</para>
- </sect2>
- </sect1>
-
- <sect1 id="history">
- <title>About the FreeBSD Project</title>
-
- <para>The following section provides some background information on
- the project, including a brief history, project goals, and the
- development model of the project.</para>
-
- <sect2>
- <title>A Brief History of FreeBSD</title>
-
- <para><emphasis>Contributed by &a.jkh;</emphasis>.</para>
-
- <para>The FreeBSD project had its genesis in the early part of 1993,
- partially as an outgrowth of the <quote>Unofficial 386BSD
- Patchkit</quote> by the patchkit's last 3 coordinators: Nate
- Williams, Rod Grimes and myself.</para>
-
- <para>Our original goal was to produce an intermediate snapshot of
- 386BSD in order to fix a number of problems with it that the
- patchkit mechanism just was not capable of solving. Some of you
- may remember the early working title for the project being
- <quote>386BSD 0.5</quote> or <quote>386BSD Interim</quote> in
- reference to that fact.</para>
-
- <para>386BSD was Bill Jolitz's operating system, which had been up
- to that point suffering rather severely from almost a year's worth
- of neglect. As the patchkit swelled ever more uncomfortably with
- each passing day, we were in unanimous agreement that something
- had to be done and decided to try and assist Bill by providing
- this interim <quote>cleanup</quote> snapshot. Those plans came to
- a rude halt when Bill Jolitz suddenly decided to withdraw his
- sanction from the project without any clear indication of what
- would be done instead.</para>
-
- <para>It did not take us long to decide that the goal remained
- worthwhile, even without Bill's support, and so we adopted the
- name <quote>FreeBSD</quote>, coined by David Greenman. Our initial
- objectives were set after consulting with the system's current
- users and, once it became clear that the project was on the road
- to perhaps even becoming a reality, I contacted Walnut Creek CDROM
- with an eye towards improving FreeBSD's distribution channels for
- those many unfortunates without easy access to the Internet.
- Walnut Creek CDROM not only supported the idea of distributing
- FreeBSD on CD but also went so far as to provide the project with a
- machine to work on and a fast Internet connection. Without Walnut
- Creek CDROM's almost unprecedented degree of faith in what was, at
- the time, a completely unknown project, it is quite unlikely that
- FreeBSD would have gotten as far, as fast, as it has today.</para>
-
- <para>The first CDROM (and general net-wide) distribution was
- FreeBSD 1.0, released in December of 1993. This was based on the
- 4.3BSD-Lite (<quote>Net/2</quote>) tape from U.C. Berkeley, with
- many components also provided by 386BSD and the Free Software
- Foundation. It was a fairly reasonable success for a first
- offering, and we followed it with the highly successful FreeBSD
- 1.1 release in May of 1994.</para>
-
- <para>Around this time, some rather unexpected storm clouds formed
- on the horizon as Novell and U.C. Berkeley settled their
- long-running lawsuit over the legal status of the Berkeley Net/2
- tape. A condition of that settlement was U.C. Berkeley's
- concession that large parts of Net/2 were <quote>encumbered</quote>
- code and the property of Novell, who had in turn acquired it from
- AT&amp;T some time previously. What Berkeley got in return was
- Novell's <quote>blessing</quote> that the 4.4BSD-Lite release, when
- it was finally released, would be declared unencumbered and all
- existing Net/2 users would be strongly encouraged to switch. This
- included FreeBSD, and the project was given until the end of July
- 1994 to stop shipping its own Net/2 based product. Under the
- terms of that agreement, the project was allowed one last release
- before the deadline, that release being FreeBSD 1.1.5.1.</para>
-
- <para>FreeBSD then set about the arduous task of literally
- re-inventing itself from a completely new and rather incomplete
- set of 4.4BSD-Lite bits. The <quote>Lite</quote> releases were
- light in part because Berkeley's CSRG had removed large chunks of
- code required for actually constructing a bootable running system
- (due to various legal requirements) and the fact that the Intel
- port of 4.4 was highly incomplete. It took the project until
- November of 1994 to make this transition, at which point it
- released FreeBSD 2.0 to the net and on CDROM (in late December).
- Despite being still more than a little rough around the edges,
- the release was a significant success and was followed by the
- more robust and easier to install FreeBSD 2.0.5 release in June of
- 1995.</para>
-
- <para>We released FreeBSD 2.1.5 in August of 1996, and it appeared
- to be popular enough among the ISP and commercial communities that
- another release along the 2.1-STABLE branch was merited. This was
- FreeBSD 2.1.7.1, released in February 1997 and capping the end of
- mainstream development on 2.1-STABLE. Now in maintenance mode,
- only security enhancements and other critical bug fixes will be
- done on this branch (RELENG_2_1_0).</para>
-
- <para>FreeBSD 2.2 was branched from the development mainline
- (<quote>-CURRENT</quote>) in November 1996 as the RELENG_2_2
- branch, and the first full release (2.2.1) was released in April
- 1997. Further releases along the 2.2 branch were done in the
- summer and fall of '97, the last of which (2.2.8) appeared in
- November 1998. The first official 3.0 release appeared in
- October 1998 and spelled the beginning of the end for the 2.2
- branch.</para>
-
- <para>The tree branched again on Jan 20, 1999, leading to the
- 4.0-CURRENT and 3.X-STABLE branches. From 3.X-STABLE, 3.1 was
- released on February 15, 1999, 3.2 on May 15, 1999, 3.3 on
- September 16, 1999, 3.4 on December 20, 1999, and 3.5 on
- June 24, 2000, which was followed a few days later by a minor
- point release update to 3.5.1, to incorporate some last-minute
- security fixes to Kerberos. This will be the final release in the
- 3.X branch.</para>
-
- <para>There was another branch on March 13, 2000, which saw the
- emergence of the 4.x-STABLE branch, now considered to be the
- "current -stable branch". There have been several releases
- from it so far: 4.0-RELEASE came out in March 2000, 4.1 was
- released in July 2000 and 4.2 in November 2000. There will be
- more releases along the 4.x-stable (RELENG_4) branch well into
- 2001.</para>
-
- <para>Long-term development projects continue to take place in the
- 5.0-CURRENT (trunk) branch, and SNAPshot releases of 5.0 on
- CDROM (and, of course, on the net) are continually made available
- from <ulink url="ftp://current.freebsd.org/pub/FreeBSD/snapshots">
- the snapshot server</ulink> as work progresses.</para>
- </sect2>
-
- <sect2 id="goals">
- <title>FreeBSD Project Goals</title>
-
- <para><emphasis>Contributed by &a.jkh;</emphasis>.</para>
-
- <para>The goals of the FreeBSD Project are to provide software that
- may be used for any purpose and without strings attached. Many of
- us have a significant investment in the code (and project) and
- would certainly not mind a little financial compensation now and
- then, but we are definitely not prepared to insist on it. We
- believe that our first and foremost <quote>mission</quote> is to
- provide code to any and all comers, and for whatever purpose, so
- that the code gets the widest possible use and provides the widest
- possible benefit. This is, I believe, one of the most fundamental
- goals of Free Software and one that we enthusiastically
- support.</para>
-
- <para>That code in our source tree which falls under the GNU General
- Public License (GPL) or Library General Public License (LGPL)
- comes with slightly more strings attached, though at least on the
- side of enforced access rather than the usual opposite. Due to
- the additional complexities that can evolve in the commercial use
- of GPL software we do, however, prefer software submitted under
- the more relaxed BSD copyright when it's a reasonable option to
- do so.</para>
- </sect2>
-
- <sect2 id="development">
- <title>The FreeBSD Development Model</title>
-
- <para><emphasis>Contributed by &a.asami;</emphasis>.</para>
-
- <para>The development of FreeBSD is a very open and flexible
- process, FreeBSD being literally built from the contributions of
- hundreds of people around the world, as can be seen from our
- <link linkend="staff">list of contributors</link>. We are
- constantly on the lookout for new developers and ideas, and those
- interested in becoming more closely involved with the project
- need simply contact us at the &a.hackers;. The &a.announce; is
- also available to those wishing to make other FreeBSD users aware
- of major areas of work.</para>
-
- <para>Useful things to know about the FreeBSD project and its
- development process, whether working independently or in close
- cooperation:</para>
-
- <variablelist>
- <varlistentry>
- <term>The CVS repository<anchor
- id="development-cvs-repository"></term>
-
- <listitem>
- <para>The central source tree for FreeBSD is maintained by
- <ulink url="http://www.cyclic.com/CVS/index_html">CVS</ulink>
- (Concurrent Version System), a freely available source code
- control tool that comes bundled with FreeBSD. The primary
- <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS
- repository</ulink> resides on a machine in Concord CA, USA
- from where it is replicated to numerous mirror machines
- throughout the world. The CVS tree, as well as the <link
- linkend="current">-CURRENT</link> and <link
- linkend="stable">-STABLE</link> trees which are checked out
- of it, can be easily replicated to your own machine as well.
- Please refer to the <link linkend="synching">Synchronizing
- your source tree</link> section for more information on
- doing this.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The committers list<anchor
- id="development-committers"></term>
-
- <listitem>
- <para>The <link linkend="staff-committers">committers</link>
- are the people who have <emphasis>write</emphasis> access to
- the CVS tree, and are thus authorized to make modifications
- to the FreeBSD source (the term <quote>committer</quote>
- comes from the &man.cvs.1; <command>commit</command>
- command, which is used to bring new changes into the CVS
- repository). The best way of making submissions for review
- by the committers list is to use the &man.send-pr.1;
- command, though if something appears to be jammed in the
- system then you may also reach them by sending mail to
- <email>cvs-committers@FreeBSD.org</email>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The FreeBSD core team<anchor id="development-core"></term>
-
- <listitem>
- <para>The <link linkend="staff-core">FreeBSD core team</link>
- would be equivalent to the board of directors if the FreeBSD
- Project were a company. The primary task of the core team
- is to make sure the project, as a whole, is in good shape
- and is heading in the right directions. Inviting dedicated
- and responsible developers to join our group of committers
- is one of the functions of the core team, as is the
- recruitment of new core team members as others move on.
- The current core team was elected from a pool of committer
- candidates in October 2000. Elections are held every 2 years.
- </para>
-
- <para>Some core team members also have specific <link
- linkend="staff-who">areas of responsibility</link>, meaning
- that they are committed to ensuring that some large portion
- of the system works as advertised.</para>
-
- <note>
- <para>Most members of the core team are volunteers when it
- comes to FreeBSD development and do not benefit from the
- project financially, so <quote>commitment</quote> should
- also not be misconstrued as meaning <quote>guaranteed
- support.</quote> The <quote>board of directors</quote>
- analogy above is not actually very accurate, and it may be
- more suitable to say that these are the people who gave up
- their lives in favor of FreeBSD against their better
- judgment! <!-- smiley --><emphasis>;-)</emphasis></para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Outside contributors</term>
-
- <listitem>
- <para>Last, but definitely not least, the largest group of
- developers are the users themselves who provide feedback and
- bug fixes to us on an almost constant basis. The primary
- way of keeping in touch with FreeBSD's more non-centralized
- development is to subscribe to the &a.hackers; (see <link
- linkend="eresources-mail">mailing list info</link>) where
- such things are discussed.</para>
-
- <para><link linkend="contrib-additional">The list</link> of
- those who have contributed something, which made its way into
- our source tree, is a long and growing one, so why not join
- it by contributing something back to FreeBSD today?
- <!-- smiley --><emphasis>:-)</emphasis></para>
-
- <para>Providing code is not the only way of contributing to
- the project; for a more complete list of things that need
- doing, please refer to the <link linkend="contrib">how to
- contribute</link> section in this handbook.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>In summary, our development model is organized as a loose set
- of concentric circles. The centralized model is designed for the
- convenience of the <emphasis>users</emphasis> of FreeBSD, who are
- thereby provided with an easy way of tracking one central code
- base, not to keep potential contributors out! Our desire is to
- present a stable operating system with a large set of coherent
- <link linkend="ports">application programs</link> that the users
- can easily install and use, and this model works very well in
- accomplishing that.</para>
-
- <para>All we ask of those who would join us as FreeBSD developers is
- some of the same dedication its current people have to its
- continued success!</para>
- </sect2>
-
- <sect2 id="relnotes">
- <title>The Current FreeBSD Release</title>
-
- <para>FreeBSD is a freely available, full source 4.4BSD-Lite based
- release for Intel i386, i486, Pentium, Pentium Pro, Celeron,
- Pentium II, Pentium III (or compatible) and DEC Alpha based computer
- systems. It is based primarily on software from U.C. Berkeley's
- CSRG group, with some enhancements from NetBSD, OpenBSD, 386BSD, and
- the Free Software Foundation.</para>
-
- <para>Since our release of FreeBSD 2.0 in late 94, the performance,
- feature set, and stability of FreeBSD has improved dramatically.
- The largest change is a revamped virtual memory system with a merged
- VM/file buffer cache that not only increases performance, but also
- reduces FreeBSD's memory footprint, making a 5MB configuration a
- more acceptable minimum. Other enhancements include full NIS client
- and server support, transaction TCP support, dial-on-demand PPP,
- integrated DHCP support, an improved SCSI subsystem, ISDN support,
- support for ATM, FDDI, Fast and Gigabit Ethernet (1000Mbit)
- adapters, improved support for the latest Adaptec controllers, and
- many hundreds of bug fixes.</para>
-
- <para>We have also taken the comments and suggestions of many of our
- users to heart and have attempted to provide what we hope is a more
- sane and easily understood installation process. Your feedback on
- this (constantly evolving) process is especially welcome!</para>
-
- <para>In addition to the base distributions, FreeBSD offers a
- ported software collection with thousands of commonly sought-after
- programs. By mid-November 2000, there were over 4000 ports! The
- list of ports ranges from http (WWW) servers, to games, languages,
- editors, and almost everything in between. The entire ports
- collection requires approximately 100MB of storage, all ports being
- expressed as <quote>deltas</quote> to their original sources. This
- makes it much easier for us to update ports, and greatly reduces
- the disk space demands made by the older 1.0 ports collection. To
- compile a port, you simply change to the directory of the program
- you wish to install, type <command>make install</command>, and let
- the system do the rest. The full original distribution for each
- port you build is retrieved dynamically off the CDROM or a local FTP
- site, so you need only enough disk space to build the ports you
- want. Almost every port is also provided as a pre-compiled
- <quote>package</quote>, which can be installed with a simple command
- (pkg_add) by those who do not wish to compile their own ports from
- source.</para>
-
- <para>A number of additional documents which you may find very helpful
- in the process of installing and using FreeBSD may now also be found
- in the <filename>/usr/share/doc</filename> directory on any machine
- running FreeBSD 2.1 or later. You may view the locally installed
- manuals with any HTML capable browser using the following
- URLs:</para>
-
- <variablelist>
- <varlistentry>
- <term>The FreeBSD Handbook</term>
-
- <listitem>
- <para><ulink
- url="file:/usr/share/doc/handbook/index.html">file:/usr/share/doc/handbook/index.html</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The FreeBSD FAQ</term>
-
- <listitem>
- <para><ulink
- url="file:/usr/share/doc/faq/index.html">file:/usr/share/doc/faq/index.html</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>You can also view the master (and most frequently updated)
- copies at <ulink
- url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink>.</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
deleted file mode 100644
index e29f1d1fc7..0000000000
--- a/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ /dev/null
@@ -1,1118 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kernelconfig/chapter.sgml,v 1.39 2001/04/09 00:33:51 dd Exp $
--->
-
-<chapter id="kernelconfig">
- <title>Configuring the FreeBSD Kernel</title>
-
- <sect1>
- <title>Synopsis</title>
-
- <para><emphasis>Updated and restructured by &a.jim;, March 2000.
- Originally contributed by &a.jehamby;, 6 October
- 1995.</emphasis></para>
-
- <para>The following chapter of the handbook covers everything you will
- need to know in order to build a custom kernel. If you are
- wondering what the benefits of a custom kernel are, or would like to
- know how to configure, compile, and install a custom kernel, this
- chapter is for you.</para>
- </sect1>
-
- <sect1>
- <title>Why Build a Custom Kernel?</title>
-
- <para>Building a custom kernel is one of the most important rites of
- passage nearly every UNIX user must endure. This process, while
- time consuming, will provide many benefits to your FreeBSD system.
- Unlike the <filename>GENERIC</filename> kernel, which must support a
- wide range of hardware, a custom kernel only contains support for
- <emphasis>your</emphasis> PC's hardware. This has a number of
- benefits, such as:</para>
-
- <itemizedlist>
- <listitem>
- <para>Faster boot time. Since the kernel will only probe the
- hardware you have on your system, the time it takes your system to
- boot will decrease dramatically.</para>
- </listitem>
-
- <listitem>
- <para>Less memory use. A custom kernel often uses less memory
- than the <literal>GENERIC</literal> kernel, which is important
- because the kernel is one process that must always be present in
- memory. For this reason, a custom kernel is especially useful
- on a system with a small amount of RAM.</para>
- </listitem>
-
- <listitem>
- <para>Additional hardware support. A custom kernel allows you to
- add in support for devices such as sound cards, which are not
- present in the <literal>GENERIC</literal> kernel.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="kernelconfig-building">
- <title>Building and Installing a Custom Kernel</title>
-
- <para>First, let us take a quick tour of the kernel build directory.
- All directories mentioned will be relative to the main
- <filename>/usr/src/sys</filename> directory, which is also
- accessible through <filename>/sys</filename>. There are a number of
- subdirectories here representing different parts of the kernel, but
- the most important, for our purposes, are
- <filename><replaceable>arch</replaceable>/conf</filename>, where you
- will edit your custom kernel configuration, and
- <filename>compile</filename>, which is the staging area where your
- kernel will be built. <replaceable>arch</replaceable> represents
- either <filename>i386</filename>, <filename>alpha</filename>, or
- <filename>pc98</filename> (an alternative development branch of PC
- hardware, popular in Japan). Everything inside a particular
- architecture's directory deals with that architecture only; the rest
- of the code is common to all platforms to which FreeBSD could
- potentially be ported. Notice the logical organization of the
- directory structure, with each supported device, filesystem, and
- option in its own subdirectory.</para>
-
- <note>
- <para>If there is <emphasis>not</emphasis> a
- <filename>/usr/src/sys</filename> directory on your system, then
- the kernel source has not been been installed. The easiest way to
- do this is by running <command>/stand/sysinstall</command> as
- <username>root</username>, choosing <literal>Configure</literal>,
- then <literal>Distributions</literal>, then
- <literal>src</literal>, then <literal>sys</literal>.</para>
- </note>
-
- <para>Next, move to the
- <filename><replaceable>arch</replaceable>/conf</filename> directory
- and copy the <filename>GENERIC</filename> configuration file to the
- name you want to give your kernel. For example:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
-&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen>
-
- <para>Traditionally, this name is in all capital letters and, if you
- are maintaining multiple FreeBSD machines with different hardware,
- it is a good idea to name it after your machine's hostname. We will
- call it <filename>MYKERNEL</filename> for the purpose of this
- example.</para>
-
- <note>
- <para>You must execute these and all of the following commands under
- the root account or you will get <errortype>permission
- denied</errortype> errors.</para>
- </note>
-
- <para>Now, edit <filename>MYKERNEL</filename> with your favorite text
- editor. If you are just starting out, the only editor available
- will probably be <command>vi</command>, which is too complex to
- explain here, but is covered well in many books in the <link
- linkend="bibliography">bibliography</link>. However, FreeBSD does
- offer an easier editor called <quote>ee</quote> which, if you are a
- beginner, should be your editor of choice. Feel free to change the
- comment lines at the top to reflect your configuration or the
- changes you have made to differentiate it from
- <filename>GENERIC</filename>.</para>
-
- <para>If you have built a kernel under SunOS or some other BSD
- operating system, much of this file will be very familiar to you.
- If you are coming from some other operating system such as DOS, on
- the other hand, the <filename>GENERIC</filename> configuration file
- might seem overwhelming to you, so follow the descriptions in the
- <link linkend="kernelconfig-config">Configuration File</link>
- section slowly and carefully.</para>
-
- <note>
- <para>Be sure to always check the file
- <filename>/usr/src/UPDATING</filename>, before you perform any update
- steps, in the case you <link
- linkend="cutting-edge">sync your source-tree</link> with the
- latest sources of the FreeBSD project.
- In this file all important issues with updating FreeBSD
- are written down. <filename>/usr/src/UPDATING</filename> always fits
- to your version of the FreeBSD source, and is therefore more accurate
- for those information than the handbook.</para>
- </note>
-
- <para>When you are finished, type the following to compile and install
- your kernel if you are using FreeBSD prior FreeBSD 4.0 and don't
- want to upgrade to FreeBSD 4.0 or higher with this step,
- or if you are using a release-version of FreeBSD and your
- <filename>/usr/src/</filename> directory only contains the
- <filename>sys/</filename> sub-directory.</para>
-
- <note>
- <para>If you are trying to upgrade your kernel from an older version
- of FreeBSD, you will probably have to get a new version of
- &man.config.8; from the same place you got the new kernel sources.
- It is located in <filename>/usr/src/usr.sbin</filename>, so you
- will need to download those sources as well. Re-build and install
- it before running the next commands.</para>
- </note>
-
- <screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput>
-&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput>
-&prompt.root; <userinput>make depend</userinput>
-&prompt.root; <userinput>make</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
-
- <para>If you have just upgraded to a newer version of 4.X or
- higher (ie from 3.X to 4-STABLE, or even from 4-STABLE to a
- later version of 4-STABLE), make sure you have <link
- linkend="cutting-edge">built the world</link>, and then run the
- following commands:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make buildkernel KERNCONF=MYKERNEL</userinput>
-&prompt.root; <userinput>make installkernel KERNCONF=MYKERNEL</userinput></screen>
-
- <note>
- <para>In FreeBSD 4.2 and older you must replace
- <literal>KERCONF=</literal> with <literal>KERNEL=</literal>.
- 4.2-STABLE that was fetched after Feb 2nd, 2001 does
- recognize KERNCONF=</para>
- </note>
-
- <para>If you have <emphasis>not</emphasis> upgraded your source
- tree in any way (you have not run <application>CVSup</application>,
- <application>CTM</application>, or used
- <application>anoncvs</application>), then you should use the
- <command>config</command>, <command>make depend</command>,
- <command>make</command>, <command>make install</command> sequence.</para>
-
- <warning>
- <para>If you have upgraded your sources since your last kernel
- build, you <emphasis>must</emphasis> use the <command>make
- buildkernel</command> method to build your kernel. Otherwise,
- old utilities will be used to build the kernel, which will
- probably fail. <emphasis>Do not use the
- <command>config</command>/<command>make</command> sequence to
- build your kernel if you have updated the
- sources!</emphasis></para>
- </warning>
-
- <para>The new kernel will be copied to the root directory as
- <filename>/kernel</filename> and the old kernel will be moved to
- <filename>/kernel.old</filename>. Now, shutdown the system and
- reboot to use your kernel. In case something goes wrong, there are
- some <link linkend="kernelconfig-trouble">troubleshooting</link>
- instructions at the end of this document. Be sure to read the
- section which explains how to recover in case your new kernel <link
- linkend="kernelconfig-noboot">does not boot</link>.</para>
-
- <note>
- <para>If you have added any new devices (such as sound cards) you
- may have to add some <link linkend="kernelconfig-nodes">device
- nodes</link> to your <filename>/dev</filename> directory before
- you can use them.</para>
- </note>
- </sect1>
-
- <sect1 id="kernelconfig-config">
- <title>The Configuration File</title>
-
- <para>The general format of a configuration file is quite simple.
- Each line contains a keyword and one or more arguments. For
- simplicity, most lines only contain one argument. Anything
- following a <literal>#</literal> is considered a comment and
- ignored. The following sections describe each keyword, generally in
- the order they are listed in <filename>GENERIC</filename>, although
- some related keywords have been grouped together in a single section
- (such as Networking) even though they are actually scattered
- throughout the <filename>GENERIC</filename> file. <anchor
- id="kernelconfig-options"> An exhaustive list of options and more
- detailed explanations of the device lines is present in the
- <filename>LINT</filename> configuration file, located in the same
- directory as <filename>GENERIC</filename>. If you are in doubt as
- to the purpose or necessity of a line, check first in
- <filename>LINT</filename>.</para>
-
- <important>
- <title>Quoting numbers</title>
-
- <para>In all versions of FreeBSD up to and including 3.X,
- &man.config.8; required that any strings in the configuration file
- that contained numbers used as text had to be enclosed in double
- quotes.</para>
-
- <para>This requirement was removed in the 4.X branch, which this
- book covers, so if you are on a pre-4.X system, see the
- <filename>/usr/src/sys/i386/conf/LINT</filename> and
- <filename>/usr/src/sys/i386/conf/GENERIC</filename>
- files on your system for examples.</para>
- </important>
-
- <para>The following is an example <filename>GENERIC</filename> kernel
- configuration file with various additional comments where needed for
- clarity. This example should match your copy in
- <filename>/usr/src/sys/i386/conf/GENERIC</filename> fairly
- closely. For details of all the possible kernel options, see
- <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
-
- <programlisting>#
-# GENERIC -- Generic kernel configuration file for FreeBSD/i386
-#
-# For more information on this file, please read the handbook section on
-# Kernel Configuration Files:
-#
-# http://www.freebsd.org/handbook/kernelconfig-config.html
-#
-# The handbook is also available locally in /usr/share/doc/handbook
-# if you've installed the doc distribution, otherwise always see the
-# FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
-# latest information.
-#
-# An exhaustive list of options and more detailed explanations of the
-# device lines is also present in the ./LINT configuration file. If you are
-# in doubt as to the purpose or necessity of a line, check first in LINT.
-#
-# &dollar;FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp &dollar;</programlisting>
-
- <para>The following are the mandatory keywords required in
- <emphasis>every</emphasis> kernel you build:</para>
-
- <programlisting>machine i386</programlisting>
-
- <para>This is the machine architecture. It must be either
- <literal>i386</literal>, <literal>alpha</literal>, or
- <literal>pc98</literal>.</para>
-
- <programlisting>cpu I386_CPU
-cpu I486_CPU
-cpu I586_CPU
-cpu I686_CPU</programlisting>
-
- <para>The above specifies the type of CPU you have in your system.
- You may have multiple instances of the CPU line (i.e., you are not
- sure whether you should use <literal>I586_CPU</literal> or
- <literal>I686_CPU</literal>), however, for a custom kernel, it is
- best to specify only the CPU you have. If you are unsure which type
- your CPU use, you can use the <command>dmesg</command> command to
- view your boot up messages.</para>
-
- <para>The Alpha architecture has different values for
- <literal>cpu_type</literal>. They include:</para>
-
- <programlisting>cpu EV4
-cpu EV5</programlisting>
-
- <para>If you are using an Alpha machine, you should be using one of
- the above CPU types.</para>
-
- <programlisting>ident GENERIC</programlisting>
-
- <para>This is the identification of the kernel. You should change
- this to whatever you named your kernel, in our previous example,
- <literal>MYKERNEL</literal>. The value you put in the
- <literal>ident</literal> string will print when you boot up the
- kernel, so it is useful to give a kernel a different name if you
- want to keep it separate from your usual kernel (i.e., you want to
- build an experimental kernel).</para>
-
- <programlisting>maxusers 32</programlisting>
-
- <para>The <literal>maxusers</literal> option sets the size of a number
- of important system tables. This number is supposed to be roughly
- equal to the number of simultaneous users you expect to have on your
- machine. However, under normal circumstances, you will want to set
- <literal>maxusers</literal> to at least 4, especially if you are
- using the X Window System or compiling software. The reason is that
- the most important table set by <literal>maxusers</literal> is the
- maximum number of processes, which is set to <literal>20 + 16 *
- maxusers</literal>, so if you set <literal>maxusers</literal> to 1,
- then you can only have 36 simultaneous processes, including the 18
- or so that the system starts up at boot time, and the 15 or so you
- will probably create when you start the X Window System. Even a
- simple task like reading a man page will start up nine processes to
- filter, decompress, and view it. Setting
- <literal>maxusers</literal> to 64 will allow you to have up to 1044
- simultaneous processes, which should be enough for nearly all uses.
- If, however, you see the dreaded <errortype>proc table
- full</errortype> error when trying to start another program, or are
- running a server with a large number of simultaneous users (like
- <hostid role="fqdn">ftp.FreeBSD.org</hostid>), you can always
- increase the number and rebuild.</para>
-
- <note>
- <para><literal>maxusers</literal> does <emphasis>not</emphasis>
- limit the number of users which can log into your machine. It
- simply sets various table sizes to reasonable values considering
- the maximum number of users you will likely have on your system
- and how many processes each of them will be running. One keyword
- which <emphasis>does</emphasis> limit the number of simultaneous
- <emphasis>remote logins</emphasis> is <link
- linkend="kernelconfig-ptys"><literal>pseudo-device pty
- 16</literal></link>.</para>
- </note>
-
- <para>Everything that follows is more or less optional. See the notes
- underneath or next to each option for more information.</para>
-
- <programlisting>#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-options MATH_EMULATE #Support for x87 emulation</programlisting>
-
- <para>This line allows the kernel to simulate a math co-processor if
- your computer does not have one (386 or 486SX). If you have a
- 486DX, or a 386 or 486SX (with a separate 387 or 487 chip), or
- higher (Pentium, Pentium II, etc.), you can comment this line
- out.</para>
-
- <note>
- <para>The normal math co-processor emulation routines that come with
- FreeBSD are <emphasis>not</emphasis> very accurate. If you do not
- have a math co-processor, and you need the best accuracy, it is
- recommended that you change this option to
- <literal>GPL_MATH_EMULATION</literal> to use the GNU math support,
- which is not included by default for licensing reasons.</para>
- </note>
-
- <programlisting>options INET #InterNETworking</programlisting>
-
- <para>Networking support. Leave this in, even if you do not plan to
- be connected to a network. Most programs require at least loopback
- networking (i.e., making network connections within your PC), so
- this is essentially mandatory.</para>
-
- <programlisting>options INET6 #IPv6 communications protocols</programlisting>
-
- <para>This enables the IPv6 communication protocols.</para>
-
- <programlisting>options FFS #Berkeley Fast Filesystem
-options FFS_ROOT #FFS usable as root device [keep this!]</programlisting>
-
- <para>This is the basic hard drive filesystem. Leave it in if you
- boot from the hard disk.</para>
-
- <programlisting>options MFS #Memory Filesystem
-options MD_ROOT #MD is a potential root device</programlisting>
-
- <para>This is the memory-mapped filesystem. This is basically a RAM
- disk for fast storage of temporary files, useful if you have a lot
- of swap space that you want to take advantage of. A perfect place
- to mount an MFS partition is on the <filename>/tmp</filename>
- directory, since many programs store temporary data here. To mount
- an MFS RAM disk on <filename>/tmp</filename>, add the following line
- to <filename>/etc/fstab</filename>:</para>
-
- <informalexample>
- <programlisting>/dev/ad1s2b /tmp mfs rw 0 0</programlisting>
- </informalexample>
-
- <para>Now you simply need to either reboot, or run the command
- <command>mount /tmp</command>.</para>
-
- <programlisting>options NFS #Network Filesystem
-options NFS_ROOT #NFS usable as root device, NFS required</programlisting>
-
- <para>The network filesystem. Unless you plan to mount partitions
- from a UNIX file server over TCP/IP, you can comment these
- out.</para>
-
- <programlisting>options MSDOSFS #MSDOS Filesystem</programlisting>
-
- <para>The MS-DOS filesystem. Unless you plan to mount a DOS formatted
- hard drive partition at boot time, you can safely comment this out.
- It will be automatically loaded the first time you mount a DOS
- partition, as described above. Also, the excellent
- <application>mtools</application> software (in the ports collection)
- allows you to access DOS floppies without having to mount and
- unmount them (and does not require <literal>MSDOSFS</literal> at
- all).</para>
-
- <programlisting>options CD9660 #ISO 9660 Filesystem
-options CD9660_ROOT #CD-ROM usable as root, CD9660 required</programlisting>
-
- <para>The ISO 9660 filesystem for CDROMs. Comment it out if you do
- not have a CDROM drive or only mount data CDs occasionally (since it
- will be dynamically loaded the first time you mount a data CD).
- Audio CDs do not need this filesystem.</para>
-
- <programlisting>options PROCFS #Process filesystem</programlisting>
-
- <para>The process filesystem. This is a <quote>pretend</quote>
- filesystem mounted on <filename>/proc</filename> which allows
- programs like &man.ps.1; to give you more information on what
- processes are running.</para>
-
- <programlisting>options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]</programlisting>
-
- <para>Compatibility with 4.3BSD. Leave this in; some programs will
- act strangely if you comment this out.</para>
-
- <programlisting>options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI</programlisting>
-
- <para>This causes the kernel to pause for 15 seconds before probing
- each SCSI device in your system. If you only have IDE hard drives,
- you can ignore this, otherwise you will probably want to lower this
- number, perhaps to 5 seconds, to speed up booting. Of course, if
- you do this, and FreeBSD has trouble recognizing your SCSI devices,
- you will have to raise it back up.</para>
-
- <programlisting>options UCONSOLE #Allow users to grab the console</programlisting>
-
- <para>Allow users to grab the console, which is useful for X users.
- For example, you can create a console xterm by typing <command>xterm
- -C</command>, which will display any <command>write</command>,
- <command>talk</command>, and any other messages you receive, as well
- as any console messages sent by the kernel.</para>
-
- <programlisting>options USERCONFIG #boot -c editor</programlisting>
-
- <para>This option allows you to boot the configuration editor from the
- boot menu.</para>
-
- <programlisting>options VISUAL_USERCONFIG #visual boot -c editor</programlisting>
-
- <para>This option allows you to boot the visual configuration editor
- from the boot menu.</para>
-
- <programlisting>options KTRACE #ktrace(1) support</programlisting>
-
- <para>This enables kernel process tracing, which is useful in
- debugging.</para>
-
- <programlisting>options SYSVSHM #SYSV-style shared memory</programlisting>
-
- <para>This option provides for System V shared memory. The most
- common use of this is the XSHM extension in X, which many
- graphics-intensive programs will automatically take advantage of for
- extra speed. If you use X, you'll definitely want to include
- this.</para>
-
- <programlisting>options SYSVSEM #SYSV-style semaphores</programlisting>
-
- <para>Support for System V semaphores. Less commonly used but only
- adds a few hundred bytes to the kernel.</para>
-
- <programlisting>options SYSVMSG #SYSV-style message queues</programlisting>
-
- <para>Support for System V messages. Again, only adds a few hundred
- bytes to the kernel.</para>
-
- <note>
- <para>The &man.ipcs.1; command will list any processes using each of
- these System V facilities.</para>
- </note>
-
- <programlisting>options P1003_1B #Posix P1003_1B real-time extentions
-options _KPOSIX_PRIORITY_SCHEDULING</programlisting>
-
- <para>Real-time extensions added in the 1993 POSIX. Certain
- applications in the ports collection use these (such as Star
- Office).</para>
-
- <programlisting>options ICMP_BANDLIM #Rate limit bad replies</programlisting>
-
- <para>This option enables ICMP error response bandwidth limiting. You
- typically want this option as it will help protect the machine from
- denial of service packet attacks.</para>
-
- <programlisting># To make an SMP kernel, the next two are needed
-#options SMP # Symmetric MultiProcessor Kernel
-#options APIC_IO # Symmetric (APIC) I/O</programlisting>
-
- <para>The above are both required for SMP support.</para>
-
- <programlisting># Optionally these may need tweaked, (defaults shown):
-#options NCPU=2 # number of CPUs
-#options NBUS=4 # number of busses
-#options NAPIC=1 # number of IO APICs
-#options NINTR=24 # number of INTs</programlisting>
-
- <para>These are some additional SMP knobs.</para>
-
- <programlisting>device isa</programlisting>
-
- <para>All PCs supported by FreeBSD have one of these. If you have an
- IBM PS/2 (Micro Channel Architecture), you cannot run FreeBSD at
- this time (support is being worked on).</para>
-
- <programlisting>device eisa</programlisting>
-
- <para>Include this if you have an EISA motherboard. This enables
- auto-detection and configuration support for all devices on the EISA
- bus.</para>
-
- <programlisting>device pci</programlisting>
-
- <para>Include this if you have a PCI motherboard. This enables
- auto-detection of PCI cards and gatewaying from the PCI to ISA
- bus.</para>
-
- <programlisting># Floppy drives
-device fdc0 at isa? port IO_FD1 irq 6 drq 2
-device fd0 at fdc0 drive 0
-device fd1 at fdc0 drive 1</programlisting>
-
- <para>This is the floppy drive controller. <literal>fd0</literal> is
- the <devicename>A:</devicename> floppy drive, and
- <literal>fd1</literal> is the <devicename>B:</devicename>
- drive.</para>
-
- <programlisting>device ata</programlisting>
-
- <para>This driver supports all ATA and ATAPI devices. You only need
- one <literal>device ata</literal> line for the kernel to detect all
- PCI ATA/ATAPI devices on modern machines.</para>
-
- <programlisting>device atadisk # ATA disk drives</programlisting>
-
- <para>This is needed along with <literal>device ata</literal> for
- ATAPI disk drives.</para>
-
- <programlisting><anchor id="kernelconfig-atapi">
-device atapicd # ATAPI CDROM drives</programlisting>
-
- <para>This is needed along with <literal>device ata</literal> for
- ATAPI CDROM drives.</para>
-
- <programlisting>device atapifd # ATAPI floppy drives</programlisting>
-
- <para>This is needed along with <literal>device ata</literal> for
- ATAPI floppy drives.</para>
-
- <programlisting>device atapist # ATAPI tape drives</programlisting>
-
- <para>This is needed along with <literal>device ata</literal> for
- ATAPI tape drives.</para>
-
- <programlisting>options ATA_STATIC_ID #Static device numbering</programlisting>
-
- <para>This makes the controller number static (like the old driver) or
- else the device numbers are dynamically allocated.</para>
-
- <programlisting>#options ATA_ENABLE_ATAPI_DMA #Enable DMA on ATAPI devices</programlisting>
-
- <para>This enables DMA on the ATAPI device. Since many ATAPI devices
- claim to support DMA, but it does not actually work, this is turned
- off by default.</para>
-
- <programlisting># ATA and ATAPI devices
-device ata0 at isa? port IO_WD1 irq 14
-device ata1 at isa? port IO_WD2 irq 15</programlisting>
-
- <para>Use the above for older, non-PCI systems.</para>
-
- <programlisting># SCSI Controllers
-device ahb # EISA AHA1742 family
-device ahc # AHA2940 and onboard AIC7xxx devices
-device amd # AMD 53C974 (Teckram DC-390(T))
-device dpt # DPT Smartcache - See LINT for options!
-device isp # Qlogic family
-device ncr # NCR/Symbios Logic
-device sym # NCR/Symbios Logic (newer chipsets)
-
-device adv0 at isa?
-device adw
-device bt0 at isa?
-device aha0 at isa?
-device aic0 at isa?</programlisting>
-
- <para>SCSI controllers. Comment out any you do not have in your
- system. If you have an IDE only system, you can remove these
- altogether.</para>
-
- <programlisting># SCSI peripherals
-device scbus # SCSI bus (required)
-device da # Direct Access (disks)
-device sa # Sequential Access (tape etc)
-device cd # CD
-device pass # Passthrough device (direct SCSI
-access)</programlisting>
-
- <para>SCSI peripherals. Again, comment out any you do not have, or if
- you have only IDE hardware, you can remove them completely.</para>
-
- <programlisting># RAID controllers
-device ida # Compaq Smart RAID
-device amr # AMI MegaRAID
-device mlx # Mylex DAC960 family</programlisting>
-
- <para>Supported RAID controllers. If you do not have any of these,
- you can comment them out or remove them.</para>
-
- <programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse
-device atkbdc0 at isa? port IO_KBD</programlisting>
-
- <para>The keyboard controller (<literal>atkbdc</literal>) provides I/O
- services for the AT keyboard and PS/2 style pointing devices. This
- controller is required by the keyboard driver
- (<literal>atkbd</literal>) and the PS/2 pointing device driver
- (<literal>psm</literal>).</para>
-
- <programlisting>device atkbd0 at atkbdc? irq 1</programlisting>
-
- <para>The <literal>atkbd</literal> driver, together with
- <literal>atkbdc</literal> controller, provides access to the AT 84
- keyboard or the AT enhanced keyboard which is connected to the AT
- keyboard controller.</para>
-
- <programlisting>device psm0 at atkbdc? irq 12</programlisting>
-
- <para>Use this device if your mouse plugs into the PS/2 mouse
- port.</para>
-
- <programlisting>device vga0 at isa?</programlisting>
-
- <para>The video card driver.</para>
-
- <programlisting># splash screen/screen saver
-pseudo-device splash</programlisting>
-
- <para>Splash screen at start up! Screen savers require this
- too.</para>
-
- <programlisting># syscons is the default console driver, resembling an SCO console
-device sc0 at isa?</programlisting>
-
- <para><literal>sc0</literal> is the default console driver, which
- resembles a SCO console. Since most full-screen programs access the
- console through a terminal database library like
- <filename>termcap</filename>, it should not matter whether you use
- this or <literal>vt0</literal>, the <literal>VT220</literal>
- compatible console driver. When you log in, set your
- <envar>TERM</envar> variable to <literal>scoansi</literal> if
- full-screen programs have trouble running under this console.</para>
-
- <programlisting># Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
-#device vt0 at isa?
-#options XSERVER # support for X server on a vt console
-#options FAT_CURSOR # start with block cursor
-# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
-#options PCVT_SCANSET=2 # IBM keyboards are non-std</programlisting>
-
- <para>This is a VT220-compatible console driver, backward compatible to
- VT100/102. It works well on some laptops which have hardware
- incompatibilities with <literal>sc0</literal>. Also set your
- <envar>TERM</envar> variable to <literal>vt100</literal> or
- <literal>vt220</literal> when you log in. This driver might also
- prove useful when connecting to a large number of different machines
- over the network, where <filename>termcap</filename> or
- <filename>terminfo</filename> entries for the <literal>sc0</literal>
- device are often not available &mdash; <literal>vt100</literal>
- should be available on virtually any platform.</para>
-
- <programlisting># Floating point support - do not disable.
-device npx0 at nexus? port IO_NPX irq 13</programlisting>
-
- <para><literal>npx0</literal> is the interface to the floating point
- math unit in FreeBSD, which is either the hardware co-processor or
- the software math emulator. This is <emphasis>not</emphasis>
- optional.</para>
-
- <programlisting># Power management support (see LINT for more options)
-device apm0 at nexus? disable flags 0x20 # Advanced Power Management</programlisting>
-
- <para>Advanced Power Management support. Useful for laptops.</para>
-
- <programlisting># PCCARD (PCMCIA) support
-device card
-device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
-device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable</programlisting>
-
- <para>PCMCIA support. You need this if you are installing on a
- laptop.</para>
-
- <programlisting># Serial (COM) ports
-device sio0 at isa? port IO_COM1 flags 0x10 irq 4
-device sio1 at isa? port IO_COM2 irq 3
-device sio2 at isa? disable port IO_COM3 irq 5
-device sio3 at isa? disable port IO_COM4 irq 9</programlisting>
-
- <para>These are the four serial ports referred to as COM1 through COM4
- in the MS-DOS/Windows world.</para>
-
- <note>
- <para>If you have an internal modem on COM4 and a serial port at
- COM2, you will have to change the IRQ of the modem to 2 (for
- obscure technical reasons, IRQ2 = IRQ 9) in order to access it
- from FreeBSD. If you have a multiport serial card, check the
- manual page for &man.sio.4; for more information on the proper
- values for these lines. Some video cards (notably those based on
- S3 chips) use IO addresses in the form of
- <literal>0x*2e8</literal>, and since many cheap serial cards do
- not fully decode the 16-bit IO address space, they clash with
- these cards making the COM4 port practically unavailable.</para>
-
- <para>Each serial port is required to have a unique IRQ (unless you
- are using one of the multiport cards where shared interrupts are
- supported), so the default IRQs for COM3 and COM4 cannot be
- used.</para>
- </note>
-
- <programlisting># Parallel port
-device ppc0 at isa? irq 7</programlisting>
-
- <para>This is the ISA-bus parallel port interface.</para>
-
- <programlisting>device ppbus # Parallel port bus (required)</programlisting>
-
- <para>Provides support for the parallel port bus.</para>
-
- <programlisting>device lpt # Printer</programlisting>
-
- <para>Support for parallel port printers.</para>
-
- <note>
- <para>All three of the above are required to enable parallel printer
- support.</para>
- </note>
-
- <programlisting>device plip # TCP/IP over parallel</programlisting>
-
- <para>This is the driver for the parallel network interface.</para>
-
- <programlisting>device ppi # Parallel port interface device</programlisting>
-
- <para>The general-purpose I/O (<quote>geek port</quote>) + IEEE1284
- I/O.</para>
-
- <programlisting>#device vpo # Requires scbus and da</programlisting>
-
- <para>This is for an Iomega Zip drive. It requires
- <literal>scbus</literal> and <literal>da</literal> support. Best
- performance is achieved with ports in EPP 1.9 mode.</para>
-
- <programlisting># PCI Ethernet NICs.
-device de # DEC/Intel DC21x4x (<quote>Tulip</quote>)
-device fxp # Intel EtherExpress PRO/100B (82557, 82558)
-device tx # SMC 9432TX (83c170 <quote>EPIC</quote>)
-device vx # 3Com 3c590, 3c595 (<quote>Vortex</quote>)
-device wx # Intel Gigabit Ethernet Card (<quote>Wiseman</quote>)</programlisting>
-
- <para>Various PCI network card drivers. Comment out or remove any of
- these not present in your system.</para>
-
- <programlisting># PCI Ethernet NICs that use the common MII bus controller code.
-device miibus # MII bus support</programlisting>
-
- <para>MII bus support is required for some PCI 10/100 ethernet NICs,
- namely those which use MII-compliant transceivers or implement
- transceiver control interfaces that operate like an MII. Adding
- <literal>device miibus</literal> to the kernel config pulls in
- support for the generic miibus API and all of the PHY drivers,
- including a generic one for PHYs that are not specifically handled
- by an individual driver</para>
-
- <programlisting>device dc # DEC/Intel 21143 and various workalikes
-device rl # RealTek 8129/8139
-device sf # Adaptec AIC-6915 (<quote>Starfire</quote>)
-device sis # Silicon Integrated Systems SiS 900/SiS 7016
-device ste # Sundance ST201 (D-Link DFE-550TX)
-device tl # Texas Instruments ThunderLAN
-device vr # VIA Rhine, Rhine II
-device wb # Winbond W89C840F
-device xl # 3Com 3c90x (<quote>Boomerang</quote>, <quote>Cyclone</quote>)</programlisting>
-
- <para>Drivers that use the MII bus controller code.</para>
-
- <programlisting># ISA Ethernet NICs.
-device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
-device ex
-device ep
-# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
-# exists only as a PCMCIA device, so there is no ISA attachment needed
-# and resources will always be dynamically assigned by the pccard code.
-device wi
-# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
-# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
-# mode (the factory default). If you set the switches on your ISA
-# card for a manually chosen I/O address and IRQ, you must specify
-# those parameters here.
-device an
-# The probe order of these is presently determined by i386/isa/isa_compat.c.
-device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
-device fe0 at isa? port 0x300
-device le0 at isa? port 0x300 irq 5 iomem 0xd0000
-device lnc0 at isa? port 0x280 irq 10 drq 0
-device cs0 at isa? port 0x300
-device sn0 at isa? port 0x300 irq 10
-# requires PCCARD (PCMCIA) support to be activated
-#device xe0 at isa?</programlisting>
-
- <para>ISA ethernet drivers. See
- <filename>/usr/src/sys/i386/conf/LINT</filename> for which cards are
- supported by which driver.</para>
-
- <programlisting># Pseudo devices - the number indicates how many units to allocated.
-pseudo-device loop # Network loopback</programlisting>
-
- <para>This is the generic loopback device for TCP/IP. If you telnet
- or FTP to <hostid>localhost</hostid> (a.k.a., <hostid
- role="ipaddr">127.0.0.1</hostid>) it will come back at you through
- this pseudo-device. This is <emphasis>mandatory</emphasis>.</para>
-
- <programlisting>pseudo-device ether # Ethernet support</programlisting>
-
- <para><literal>ether</literal> is only needed if you have an Ethernet
- card. It includes generic Ethernet protocol code.</para>
-
- <programlisting>pseudo-device sl 1 # Kernel SLIP</programlisting>
-
- <para><literal>sl</literal> is for SLIP support. This has been almost
- entirely supplanted by PPP, which is easier to set up, better suited
- for modem-to-modem connection, and more powerful. The
- <replaceable>number</replaceable> after <literal>sl</literal>
- specifies how many simultaneous SLIP sessions to support.</para>
-
- <programlisting>pseudo-device ppp 1 # Kernel PPP</programlisting>
-
- <para>This is for kernel PPP support for dial-up connections. There
- is also a version of PPP implemented as a userland application that
- uses <literal>tun</literal> and offers more flexibility and features
- such as demand dialing. The <replaceable>number</replaceable> after
- <literal>ppp</literal> specifies how many simultaneous PPP
- connections to support.</para>
-
- <programlisting>pseudo-device tun # Packet tunnel.</programlisting>
-
- <para>This is used by the userland PPP software. The
- <replaceable>number</replaceable> after <literal>tun</literal>
- specifies the number of simultaneous PPP sessions to support. See
- the <link linkend="userppp">PPP</link> section of this book for more
- information.</para>
-
- <programlisting><anchor id="kernelconfig-ptys">
-pseudo-device pty # Pseudo-ttys (telnet etc)</programlisting>
-
- <para>This is a <quote>pseudo-terminal</quote> or simulated login port.
- It is used by incoming <command>telnet</command> and
- <command>rlogin</command> sessions,
- <application>xterm</application>, and some other applications such
- as <application>emacs</application>. The
- <replaceable>number</replaceable> indicates the number of
- <literal>pty</literal>s to create. If you need more than the
- default of 16 simultaneous <application>xterm</application> windows
- and/or remote logins, be sure to increase this number accordingly,
- up to a maximum of 256.</para>
-
- <programlisting>pseudo-device md # Memory <quote>disks</quote></programlisting>
-
- <para>Memory disk pseudo-devices.</para>
-
- <programlisting>pseudo-device gif 4 # IPv6 and IPv4 tunneling</programlisting>
-
- <para>This implements IPv6 over IPv4 tunneling, IPv4 over IPv6
- tunneling, IPv4 over IPv4 tunneling, and IPv6 over IPv6
- tunneling.</para>
-
- <programlisting>pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)</programlisting>
-
- <para>This pseudo-device captures packets that are sent to it and
- diverts them to the IPv4/IPv6 translation daemon.</para>
-
- <programlisting># The `bpf' pseudo-device enables the Berkeley Packet Filter.
-# Be aware of the administrative consequences of enabling this!
-pseudo-device bpf # Berkeley packet filter</programlisting>
-
- <para>This is the Berkeley Packet Filter. This pseudo-device allows
- network interfaces to be placed in promiscuous mode, capturing every
- packet on a broadcast network (e.g., an ethernet). These packets
- can be captured to disk and or examined with the &man.tcpdump.1;
- program.</para>
-
- <programlisting># USB support
-#device uhci # UHCI PCI-&gt;USB interface
-#device ohci # OHCI PCI-&gt;USB interface
-#device usb # USB Bus (required)
-#device ugen # Generic
-#device uhid # <quote>Human Interface Devices</quote>
-#device ukbd # Keyboard
-#device ulpt # Printer
-#device umass # Disks/Mass storage - Requires scbus and da
-#device ums # Mouse
-# USB Ethernet, requires mii
-#device aue # ADMtek USB ethernet
-#device cue # CATC USB ethernet
-#device kue # Kawasaki LSI USB ethernet</programlisting>
-
- <para>Support for various USB devices.</para>
-
- <para>For more information and additional devices supported by
- FreeBSD, see
- <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
- </sect1>
-
- <sect1 id="kernelconfig-nodes">
- <title>Making Device Nodes</title>
-
- <para>Almost every device in the kernel has a corresponding
- <quote>node</quote> entry in the <filename>/dev</filename> directory.
- These nodes look like regular files, but are actually special
- entries into the kernel which programs use to access the device.
- The shell script <filename>/dev/MAKEDEV</filename>, which is
- executed when you first install the operating system, creates
- nearly all of the device nodes supported. However, it does not
- create <emphasis>all</emphasis> of them, so when you add support for
- a new device, it pays to make sure that the appropriate entries are
- in this directory, and if not, add them. Here is a simple
- example:</para>
-
- <para>Suppose you add the IDE CD-ROM support to the kernel. The line
- to add is:</para>
-
- <programlisting>device acd0</programlisting>
-
- <para>This means that you should look for some entries that start with
- <filename>acd0</filename> in the <filename>/dev</filename>
- directory, possibly followed by a letter, such as
- <literal>c</literal>, or preceded by the letter
- <literal>r</literal>, which means a <quote>raw</quote> device. It
- turns out that those files are not there, so you must change to the
- <filename>/dev</filename> directory and type:</para>
-
- <screen>&prompt.root; <userinput>sh MAKEDEV acd0</userinput></screen>
-
- <para>When this script finishes, you will find that there are now
- <filename>acd0c</filename> and <filename>racd0c</filename> entries
- in <filename>/dev</filename> so you know that it executed
- correctly.</para>
-
- <para>For sound cards, the following command creates the appropriate
- entries:</para>
-
- <screen>&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
-
- <note>
- <para>When creating device nodes for devices such as sound cards, if
- other people have access to your machine, it may be desirable to
- protect the devices from outside access by adding them to the
- <filename>/etc/fbtab</filename> file. See &man.fbtab.5; for more
- information.</para>
- </note>
-
- <para>Follow this simple procedure for any other
- non-<filename>GENERIC</filename> devices which do not have
- entries.</para>
-
- <note>
- <para>All SCSI controllers use the same set of
- <filename>/dev</filename> entries, so you do not need to create
- these. Also, network cards and SLIP/PPP pseudo-devices do not
- have entries in <filename>/dev</filename> at all, so you do not
- have to worry about these either.</para>
- </note>
- </sect1>
-
- <sect1 id="kernelconfig-trouble">
- <title>If Something Goes Wrong</title>
-
- <para>There are four categories of trouble that can occur when
- building a custom kernel. They are:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>config</command> fails</term>
-
- <listitem>
- <para>If the <command>config</command> command fails when you
- give it your kernel description, you have probably made a
- simple error somewhere. Fortunately,
- <command>config</command> will print the line number that it
- had trouble with, so you can quickly skip to it with
- <command>vi</command>. For example, if you see:</para>
-
- <screen>config: line 17: syntax error</screen>
-
- <para>You can skip to the problem in <command>vi</command> by
- typing <command>17G</command> in command mode. Make sure the
- keyword is typed correctly, by comparing it to the
- <filename>GENERIC</filename> kernel or another
- reference.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>make</command> fails</term>
-
- <listitem>
- <para>If the <command>make</command> command fails, it usually
- signals an error in your kernel description, but not severe
- enough for <command>config</command> to catch it. Again, look
- over your configuration, and if you still cannot resolve the
- problem, send mail to the &a.questions; with your kernel
- configuration, and it should be diagnosed very quickly.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The kernel will not boot<anchor
- id="kernelconfig-noboot"></term>
-
- <listitem>
- <para>If your new kernel does not boot, or fails to recognize
- your devices, do not panic! Fortunately, BSD has an excellent
- mechanism for recovering from incompatible kernels. Simply
- choose the kernel you want to boot from at the FreeBSD boot
- loader (i.e.,
- <command>boot <filename>kernel.old</filename></command>).
- When reconfiguring a kernel, it is always a good idea to keep
- a kernel that is known to work on hand.</para>
-
- <para>After booting with a good kernel you can check over your
- configuration file and try to build it again. One helpful
- resource is the <filename>/var/log/messages</filename> file
- which records, among other things, all of the kernel messages
- from every successful boot. Also, the &man.dmesg.8; command
- will print the kernel messages from the current boot.</para>
-
- <note>
- <para>If you are having trouble building a kernel, make sure
- to keep a <filename>GENERIC</filename>, or some other kernel
- that is known to work on hand as a different name that will
- not get erased on the next build. You cannot rely on
- <filename>kernel.old</filename> because when installing a
- new kernel, <filename>kernel.old</filename> is overwritten
- with the last installed kernel which may be non-functional.
- Also, as soon as possible, move the working kernel to the
- proper <filename>kernel</filename> location or commands such
- as &man.ps.1; will not work properly. The proper command to
- <quote>unlock</quote> the kernel file that
- <command>make</command> installs (in order to move another
- kernel back permanently) is:</para>
-
- <screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen>
-
- <para>And, if you want to <quote>lock</quote> your new kernel
- into place, or any file for that matter, so that it cannot
- be moved or tampered with:</para>
-
- <screen>&prompt.root; <userinput>chflags schg /kernel</userinput></screen>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The kernel works, but <command>ps</command> does not work
- any more!</term>
-
- <listitem>
- <para>If you have installed a different version of the kernel
- from the one that the system utilities have been built with,
- for example, a 4.X kernel on a 3.X system, many system-status
- commands like &man.ps.1; and &man.vmstat.8; will not work any
- more. You must recompile the <filename>libkvm</filename>
- library as well as these utilities. This is one reason it is
- not normally a good idea to use a different version of the
- kernel from the rest of the operating system.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/kerneldebug/chapter.sgml b/en_US.ISO8859-1/books/handbook/kerneldebug/chapter.sgml
deleted file mode 100644
index a9a70d52f7..0000000000
--- a/en_US.ISO8859-1/books/handbook/kerneldebug/chapter.sgml
+++ /dev/null
@@ -1,639 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kerneldebug/chapter.sgml,v 1.30 2001/04/09 00:33:52 dd Exp $
--->
-
-<chapter id="kerneldebug">
- <title>Kernel Debugging</title>
-
- <para><emphasis>Contributed by &a.paul; and &a.joerg;</emphasis></para>
-
- <sect1>
- <title>Debugging a Kernel Crash Dump with <command>gdb</command></title>
-
- <para>Here are some instructions for getting kernel debugging working on a
- crash dump. They assume that you have enough swap space for a crash
- dump. If you have multiple swap partitions and the first one is too
- small to hold the dump, you can configure your kernel to use an
- alternate dump device (in the <literal>config kernel</literal> line), or
- you can specify an alternate using the
- &man.dumpon.8; command. The best way to use &man.dumpon.8; is to set
- the <literal>dumpdev</literal> variable in
- <filename>/etc/rc.conf</filename>. Typically you want to specify one of
- the swap devices specified in <filename>/etc/fstab</filename>. Dumps to
- non-swap devices, tapes for example, are currently not supported. Config
- your kernel using <command>config <option>-g</option></command>. See <link
- linkend="kernelconfig">Kernel Configuration</link> for details on
- configuring the FreeBSD kernel.</para>
-
- <para>Use the &man.dumpon.8; command to tell the kernel where to dump to
- (note that this will have to be done after configuring the partition in
- question as swap space via &man.swapon.8;). This is normally arranged
- via <filename>/etc/rc.conf</filename> and <filename>/etc/rc</filename>.
- Alternatively, you can hard-code the dump device via the
- <literal>dump</literal> clause in the <literal>config</literal> line of
- your kernel config file. This is deprecated and should be used only if
- you want a crash dump from a kernel that crashes during booting.</para>
-
- <note>
- <para>In the following, the term <command>gdb</command> refers to
- the debugger <command>gdb</command> run in <quote>kernel debug
- mode</quote>. This can be accomplished by starting the
- <command>gdb</command> with the option <option>-k</option>. In
- kernel debug mode, <command>gdb</command> changes its prompt to
- <prompt>(kgdb)</prompt>.</para>
- </note>
-
- <tip>
- <para>If you are using FreeBSD 3 or earlier, you should make a stripped
- copy of the debug kernel, rather than installing the large debug
- kernel itself:</para>
-
- <screen>&prompt.root; <userinput>cp kernel kernel.debug</userinput>
-&prompt.root; <userinput>strip -g kernel</userinput></screen>
-
- <para>This stage isn't necessary, but it is recommended. (In
- FreeBSD 4 and later releases this step is performed automatically
- at the end of the kernel <command>make</command> process.)
- When the kernel has been stripped, either automatically or by
- using the commands above, you may install it as usual by typing
- <command>make install</command>.</para>
-
- <para>Note that older releases of FreeBSD (up to but not including
- 3.1) used a.out kernels by default, which must have their symbol
- tables permanently resident in physical memory. With the larger
- symbol table in an unstripped debug kernel, this is wasteful.
- Recent FreeBSD releases use ELF kernels where this is no longer a
- problem.</para>
- </tip>
-
- <para>If you are testing a new kernel, for example by typing the new
- kernel's name at the boot prompt, but need to boot a different one in
- order to get your system up and running again, boot it only into single
- user state using the <option>-s</option> flag at the boot prompt, and
- then perform the following steps:</para>
-
- <screen>&prompt.root; <userinput>fsck -p</userinput>
-&prompt.root; <userinput>mount -a -t ufs</userinput> # so your file system for /var/crash is writable
-&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput>
-&prompt.root; <userinput>exit</userinput> # ...to multi-user</screen>
-
- <para>This instructs &man.savecore.8; to use another kernel for symbol
- name extraction. It would otherwise default to the currently running
- kernel and most likely not do anything at all since the crash dump and
- the kernel symbols differ.</para>
-
- <para>Now, after a crash dump, go to
- <filename>/sys/compile/WHATEVER</filename> and run
- <command>gdb <option>-k</option></command>. From <command>gdb</command> do:
-
- <screen><userinput>symbol-file kernel.debug</userinput>
-<userinput>exec-file /var/crash/kernel.0</userinput>
-<userinput>core-file /var/crash/vmcore.0</userinput></screen>
-
- and voila, you can debug the crash dump using the kernel sources just
- like you can for any other program.</para>
-
- <para>Here is a script log of a <command>gdb</command> session
- illustrating the procedure. Long lines have been folded to improve
- readability, and the lines are numbered for reference. Despite this, it
- is a real-world error trace taken during the development of the pcvt
- console driver.</para>
-
-<screen> 1:Script started on Fri Dec 30 23:15:22 1994
- 2:&prompt.root; <userinput>cd /sys/compile/URIAH</userinput>
- 3:&prompt.root; <userinput>gdb -k kernel /var/crash/vmcore.1</userinput>
- 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel
-...done.
- 5:IdlePTD 1f3000
- 6:panic: because you said to!
- 7:current pcb at 1e3f70
- 8:Reading in symbols for ../../i386/i386/machdep.c...done.
- 9:<prompt>(kgdb)</prompt> <userinput>where</userinput>
-10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767)
-11:#1 0xf0115159 in panic ()
-12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698)
-13:#3 0xf010185e in db_fncall ()
-14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073)
-15:#5 0xf0101711 in db_command_loop ()
-16:#6 0xf01040a0 in db_trap ()
-17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723)
-18:#8 0xf019d2eb in trap_fatal (...)
-19:#9 0xf019ce60 in trap_pfault (...)
-20:#10 0xf019cb2f in trap (...)
-21:#11 0xf01932a1 in exception:calltrap ()
-22:#12 0xf0191503 in cnopen (...)
-23:#13 0xf0132c34 in spec_open ()
-24:#14 0xf012d014 in vn_open ()
-25:#15 0xf012a183 in open ()
-26:#16 0xf019d4eb in syscall (...)
-27:<prompt>(kgdb)</prompt> <userinput>up 10</userinput>
-28:Reading in symbols for ../../i386/i386/trap.c...done.
-29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\
-30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\
-31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\
-32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\
-33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\
-34:ss = -266427884}) (../../i386/i386/trap.c line 283)
-35:283 (void) trap_pfault(&amp;frame, FALSE);
-36:<prompt>(kgdb)</prompt> <userinput>frame frame-&gt;tf_ebp frame-&gt;tf_eip</userinput>
-37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done.
-38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\
-39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403)
-40:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-41:<prompt>(kgdb)</prompt> <userinput>list</userinput>
-42:398
-43:399 tp-&gt;t_state |= TS_CARR_ON;
-44:400 tp-&gt;t_cflag |= CLOCAL; /* cannot be a modem (:-) */
-45:401
-46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200)
-47:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-48:404 #else
-49:405 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp, flag));
-50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */
-51:407 }
-52:<prompt>(kgdb)</prompt> <userinput>print tp</userinput>
-53:Reading in symbols for ../../i386/i386/cons.c...done.
-54:$1 = (struct tty *) 0x1bae
-55:<prompt>(kgdb)</prompt> <userinput>print tp-&gt;t_line</userinput>
-56:$2 = 1767990816
-57:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\
-59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126)
-60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p));
-61:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-62:#2 0xf0132c34 in spec_open ()
-63:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-64:#3 0xf012d014 in vn_open ()
-65:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-66:#4 0xf012a183 in open ()
-67:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\
-69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\
-70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \
-71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \
-72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673)
-73:673 error = (*callp-&gt;sy_call)(p, args, rval);
-74:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-75:Initial frame selected; you cannot go up.
-76:<prompt>(kgdb)</prompt> <userinput>quit</userinput>
-77:&prompt.root; <userinput>exit</userinput>
-78:exit
-79:
-80:Script done on Fri Dec 30 23:18:04 1994</screen>
- <para>Comments to the above script:</para>
-
- <variablelist>
- <varlistentry>
- <term>line 6:</term>
-
- <listitem>
- <para>This is a dump taken from within DDB (see below), hence the
- panic comment <quote>because you said to!</quote>, and a rather
- long stack trace; the initial reason for going into DDB has been a
- page fault trap though.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 20:</term>
-
- <listitem>
- <para>This is the location of function <function>trap()</function>
- in the stack trace.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 36:</term>
-
- <listitem>
- <para>Force usage of a new stack frame; this is no longer necessary
- now. The stack frames are supposed to point to the right
- locations now, even in case of a trap.
- From looking at the code in source line 403, there is a
- high probability that either the pointer access for
- <quote>tp</quote> was messed up, or the array access was out of
- bounds.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 52:</term>
-
- <listitem>
- <para>The pointer looks suspicious, but happens to be a valid
- address.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>line 56:</term>
-
- <listitem>
- <para>However, it obviously points to garbage, so we have found our
- error! (For those unfamiliar with that particular piece of code:
- <literal>tp-&gt;t_line</literal> refers to the line discipline of
- the console device here, which must be a rather small integer
- number.)</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1>
- <title>Debugging a Crash Dump with DDD</title>
-
- <para>Examining a kernel crash dump with a graphical debugger like
- <command>ddd</command> is also possible. Add the <option>-k</option>
- option to the <command>ddd</command> command line you would use
- normally. For example;</para>
-
- <screen>&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput></screen>
-
- <para>You should then be able to go about looking at the crash dump using
- <command>ddd</command>'s graphical interface.</para>
- </sect1>
-
- <sect1>
- <title>Post-Mortem Analysis of a Dump</title>
-
- <para>What do you do if a kernel dumped core but you did not expect it,
- and it is therefore not compiled using <command>config -g</command>? Not
- everything is lost here. Do not panic!</para>
-
- <para>Of course, you still need to enable crash dumps. See above on the
- options you have to specify in order to do this.</para>
-
- <para>Go to your kernel config directory
- (<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>)
- and edit your configuration file. Uncomment (or add, if it does not
- exist) the following line</para>
-
- <programlisting>makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols</programlisting>
-
- <para>Rebuild the kernel. Due to the time stamp change on the Makefile,
- there will be some other object files rebuild, for example
- <filename>trap.o</filename>. With a bit of luck, the added
- <option>-g</option> option will not change anything for the generated
- code, so you will finally get a new kernel with similar code to the
- faulting one but some debugging symbols. You should at least verify the
- old and new sizes with the &man.size.1; command. If there is a
- mismatch, you probably need to give up here.</para>
-
- <para>Go and examine the dump as described above. The debugging symbols
- might be incomplete for some places, as can be seen in the stack trace
- in the example above where some functions are displayed without line
- numbers and argument lists. If you need more debugging symbols, remove
- the appropriate object files and repeat the <command>gdb <option>-k</option></command>
- session until you know enough.</para>
-
- <para>All this is not guaranteed to work, but it will do it fine in most
- cases.</para>
- </sect1>
-
- <sect1>
- <title>On-Line Kernel Debugging Using DDB</title>
-
- <para>While <command>gdb <option>-k</option></command> as an off-line debugger provides a very
- high level of user interface, there are some things it cannot do. The
- most important ones being breakpointing and single-stepping kernel
- code.</para>
-
- <para>If you need to do low-level debugging on your kernel, there is an
- on-line debugger available called DDB. It allows to setting
- breakpoints, single-stepping kernel functions, examining and changing
- kernel variables, etc. However, it cannot access kernel source files,
- and only has access to the global and static symbols, not to the full
- debug information like <command>gdb</command>.</para>
-
- <para>To configure your kernel to include DDB, add the option line
-
- <programlisting>options DDB</programlisting>
-
- to your config file, and rebuild. (See <link
- linkend="kernelconfig">Kernel Configuration</link> for details on
- configuring the FreeBSD kernel.</para>
-
- <note>
- <para>Note that if you have an older version of the boot blocks, your
- debugger symbols might not be loaded at all. Update the boot blocks;
- the recent ones load the DDB symbols automagically.)</para>
- </note>
-
- <para>Once your DDB kernel is running, there are several ways to enter
- DDB. The first, and earliest way is to type the boot flag
- <option>-d</option> right at the boot prompt. The kernel will start up
- in debug mode and enter DDB prior to any device probing. Hence you can
- even debug the device probe/attach functions.</para>
-
- <para>The second scenario is a hot-key on the keyboard, usually
- Ctrl-Alt-ESC. For syscons, this can be remapped; some of the
- distributed maps do this, so watch out. There is an option available
- for serial consoles that allows the use of a serial line BREAK on the
- console line to enter DDB (<literal>options BREAK_TO_DEBUGGER</literal>
- in the kernel config file). It is not the default since there are a lot
- of crappy serial adapters around that gratuitously generate a BREAK
- condition, for example when pulling the cable.</para>
-
- <para>The third way is that any panic condition will branch to DDB if the
- kernel is configured to use it. For this reason, it is not wise to
- configure a kernel with DDB for a machine running unattended.</para>
-
- <para>The DDB commands roughly resemble some <command>gdb</command>
- commands. The first thing you probably need to do is to set a
- breakpoint:</para>
-
- <screen><userinput>b function-name</userinput>
-<userinput>b address</userinput></screen>
-
- <para>Numbers are taken hexadecimal by default, but to make them distinct
- from symbol names; hexadecimal numbers starting with the letters
- <literal>a-f</literal> need to be preceded with <literal>0x</literal>
- (this is optional for other numbers). Simple expressions are allowed,
- for example: <literal>function-name + 0x103</literal>.</para>
-
- <para>To continue the operation of an interrupted kernel, simply
- type:</para>
-
- <screen><userinput>c</userinput></screen>
-
- <para>To get a stack trace, use:</para>
-
- <screen><userinput>trace</userinput></screen>
-
- <note>
- <para>Note that when entering DDB via a hot-key, the kernel is currently
- servicing an interrupt, so the stack trace might be not of much use
- for you.</para>
- </note>
-
- <para>If you want to remove a breakpoint, use</para>
-
-
- <screen><userinput>del</userinput>
-<userinput>del address-expression</userinput></screen>
-
- <para>The first form will be accepted immediately after a breakpoint hit,
- and deletes the current breakpoint. The second form can remove any
- breakpoint, but you need to specify the exact address; this can be
- obtained from:</para>
-
- <screen><userinput>show b</userinput></screen>
-
- <para>To single-step the kernel, try:</para>
-
- <screen><userinput>s</userinput></screen>
-
- <para>This will step into functions, but you can make DDB trace them until
- the matching return statement is reached by:</para>
-
- <screen><userinput>n</userinput></screen>
-
- <note>
- <para>This is different from <command>gdb</command>'s
- <command>next</command> statement; it is like <command>gdb</command>'s
- <command>finish</command>.</para>
- </note>
-
- <para>To examine data from memory, use (for example):
-
- <screen><userinput>x/wx 0xf0133fe0,40</userinput>
-<userinput>x/hd db_symtab_space</userinput>
-<userinput>x/bc termbuf,10</userinput>
-<userinput>x/s stringbuf</userinput></screen>
-
- for word/halfword/byte access, and hexadecimal/decimal/character/ string
- display. The number after the comma is the object count. To display
- the next 0x10 items, simply use:</para>
-
- <screen><userinput>x ,10</userinput></screen>
-
- <para>Similarly, use
-
- <screen><userinput>x/ia foofunc,10</userinput></screen>
-
- to disassemble the first 0x10 instructions of
- <function>foofunc</function>, and display them along with their offset
- from the beginning of <function>foofunc</function>.</para>
-
- <para>To modify memory, use the write command:</para>
-
- <screen><userinput>w/b termbuf 0xa 0xb 0</userinput>
-<userinput>w/w 0xf0010030 0 0</userinput></screen>
-
- <para>The command modifier
- (<literal>b</literal>/<literal>h</literal>/<literal>w</literal>)
- specifies the size of the data to be written, the first following
- expression is the address to write to and the remainder is interpreted
- as data to write to successive memory locations.</para>
-
- <para>If you need to know the current registers, use:</para>
-
- <screen><userinput>show reg</userinput></screen>
-
- <para>Alternatively, you can display a single register value by e.g.
-
- <screen><userinput>p $eax</userinput></screen>
-
- and modify it by:</para>
-
- <screen><userinput>set $eax new-value</userinput></screen>
-
- <para>Should you need to call some kernel functions from DDB, simply
- say:</para>
-
- <screen><userinput>call func(arg1, arg2, ...)</userinput></screen>
-
- <para>The return value will be printed.</para>
-
- <para>For a &man.ps.1; style summary of all running processes, use:</para>
-
- <screen><userinput>ps</userinput></screen>
-
- <para>Now you have now examined why your kernel failed, and you wish to
- reboot. Remember that, depending on the severity of previous
- malfunctioning, not all parts of the kernel might still be working as
- expected. Perform one of the following actions to shut down and reboot
- your system:</para>
-
- <screen><userinput>panic</userinput></screen>
-
- <para>This will cause your kernel to dump core and reboot, so you can
- later analyze the core on a higher level with <command>gdb</command>. This command
- usually must be followed by another <command>continue</command>
- statement.</para>
-
- <screen><userinput>call boot(0)</userinput></screen>
-
- <para>Which might be a good way to cleanly shut down the running system,
- <function>sync()</function> all disks, and finally reboot. As long as
- the disk and file system interfaces of the kernel are not damaged, this
- might be a good way for an almost clean shutdown.</para>
-
- <screen><userinput>call cpu_reset()</userinput></screen>
-
- <para>is the final way out of disaster and almost the same as hitting the
- Big Red Button.</para>
-
- <para>If you need a short command summary, simply type:</para>
-
- <screen><userinput>help</userinput></screen>
-
- <para>However, it is highly recommended to have a printed copy of the
- &man.ddb.4; manual page ready for a debugging
- session. Remember that it is hard to read the on-line manual while
- single-stepping the kernel.</para>
- </sect1>
-
- <sect1>
- <title>On-Line Kernel Debugging Using Remote GDB</title>
-
- <para>This feature has been supported since FreeBSD 2.2, and it is
- actually a very neat one.</para>
-
- <para>GDB has already supported <emphasis>remote debugging</emphasis> for
- a long time. This is done using a very simple protocol along a serial
- line. Unlike the other methods described above, you will need two
- machines for doing this. One is the host providing the debugging
- environment, including all the sources, and a copy of the kernel binary
- with all the symbols in it, and the other one is the target machine that
- simply runs a similar copy of the very same kernel (but stripped of the
- debugging information).</para>
-
- <para>You should configure the kernel in question with <command>config
- -g</command>, include <option>DDB</option> into the configuration, and
- compile it as usual. This gives a large blurb of a binary, due to the
- debugging information. Copy this kernel to the target machine, strip
- the debugging symbols off with <command>strip -x</command>, and boot it
- using the <option>-d</option> boot option. Connect the serial line
- of the target machine that has "flags 080" set on its sio device
- to any serial line of the debugging host.
- Now, on the debugging machine, go to the compile directory of the target
- kernel, and start <command>gdb</command>:</para>
-
- <screen>&prompt.user; <userinput>gdb -k kernel</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.16 (i386-unknown-freebsd),
-Copyright 1996 Free Software Foundation, Inc...
-<prompt>(kgdb)</prompt> </screen>
-
- <para>Initialize the remote debugging session (assuming the first serial
- port is being used) by:</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen>
-
- <para>Now, on the target host (the one that entered DDB right before even
- starting the device probe), type:</para>
-
- <screen>Debugger("Boot flags requested debugger")
-Stopped at Debugger+0x35: movb $0, edata+0x51bc
-<prompt>db&gt;</prompt> <userinput>gdb</userinput></screen>
-
- <para>DDB will respond with:</para>
-
- <screen>Next trap will enter GDB remote protocol mode</screen>
-
- <para>Every time you type <command>gdb</command>, the mode will be toggled
- between remote GDB and local DDB. In order to force a next trap
- immediately, simply type <command>s</command> (step). Your hosting GDB
- will now gain control over the target kernel:</para>
-
- <screen>Remote debugging using /dev/cuaa0
-Debugger (msg=0xf01b0383 "Boot flags requested debugger")
- at ../../i386/i386/db_interface.c:257
-<prompt>(kgdb)</prompt></screen>
-
- <para>You can use this session almost as any other GDB session, including
- full access to the source, running it in gud-mode inside an Emacs window
- (which gives you an automatic source code display in another Emacs
- window) etc.</para>
- </sect1>
-
- <sect1>
- <title>Debugging Loadable Modules Using GDB</title>
-
- <para>When debugging a panic that occurred within a module, or
- using remote GDB against a machine that uses dynamic modules,
- you need to tell GDB how to obtain symbol information for those
- modules.</para>
-
- <para>First, you need to build the module(s) with debugging
- information:</para>
-
- <screen>&prompt.root; <userinput>cd /sys/modules/linux</userinput>
-&prompt.root; <userinput>make clean; make COPTS=-g</userinput></screen>
-
- <para>If you are using remote GDB, you can run
- <command>kldstat</command> on the target machine to find out
- where the module was loaded:</para>
-
- <screen>&prompt.root; <userinput>kldstat</userinput>
-Id Refs Address Size Name
- 1 4 0xc0100000 1c1678 kernel
- 2 1 0xc0a9e000 6000 linprocfs.ko
- 3 1 0xc0ad7000 2000 warp_saver.ko
- 4 1 0xc0adc000 11000 linux.ko
-</screen>
-
- <para>If you are debugging a crash dump, you'll need to walk the
- <literal>linker_files</literal> list, starting at
- <literal>linker_files->tqh_first</literal> and following the
- <literal>link.tqe_next</literal> pointers until you find the
- entry with the <literal>filename</literal> you are looking for.
- The <literal>address</literal> member of that entry is the load
- address of the module.</para>
-
- <para>Next, you need to find out the offset of the text section
- within the module:</para>
-
- <screen>&prompt.root; <userinput>objdump --section-headers /sys/modules/linux/linux.ko | grep text</userinput>
- 3 .rel.text 000016e0 000038e0 000038e0 000038e0 2**2
- 10 .text 00007f34 000062d0 000062d0 000062d0 2**2</screen>
-
- <para>The one you want is the <literal>.text</literal> section,
- section 10 in the above example. The fourth hexadecimal field
- (sixth field overall) is the offset of the text section within
- the file. Add this offset to the load address of the module to
- obtain the relocation address for the module's code. In our
- example, we get 0xc0adc000 + 0x62d0 = 0xc0ae22d0. Use the
- <command>add-symbol-file</command> command in GDB to tell the
- debugger about the module:</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>add-symbol-file /sys/modules/linux/linux.ko 0xc0ae22d0</userinput>
-add symbol table from file "/sys/modules/linux/linux.ko" at text_addr = 0xc0ae22d0?
-(y or n) <userinput>y</userinput>
-Reading symbols from /sys/modules/linux/linux.ko...done.
-<prompt>(kgdb)</prompt></screen>
-
- <para>You should now have access to all the symbols in the
- module.</para>
- </sect1>
-
- <sect1>
- <title>Debugging a Console Driver</title>
-
- <para>Since you need a console driver to run DDB on, things are more
- complicated if the console driver itself is failing. You might remember
- the use of a serial console (either with modified boot blocks, or by
- specifying <option>-h</option> at the <prompt>Boot:</prompt> prompt),
- and hook up a standard terminal onto your first serial port. DDB works
- on any configured console driver, of course also on a serial
- console.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/kernelopts/chapter.sgml b/en_US.ISO8859-1/books/handbook/kernelopts/chapter.sgml
deleted file mode 100644
index 1e91b5cae7..0000000000
--- a/en_US.ISO8859-1/books/handbook/kernelopts/chapter.sgml
+++ /dev/null
@@ -1,162 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kernelopts/chapter.sgml,v 1.16 2000/06/14 00:47:36 jim Exp $
--->
-
-<chapter id="kernelopts">
- <title>Adding New Kernel Configuration Options</title>
-
- <para><emphasis>Contributed by &a.joerg;</emphasis></para>
-
- <note>
- <para>You should be familiar with the section about <link
- linkend="kernelconfig">kernel configuration</link> before reading
- here.</para>
- </note>
-
- <sect1>
- <title>What's a <emphasis>Kernel Option</emphasis>, Anyway?</title>
-
- <para>The use of kernel options is basically described in the <link
- linkend="kernelconfig-options">kernel configuration</link> section.
- There's also an explanation of <quote>historic</quote> and
- <quote>new-style</quote> options. The ultimate goal is to eventually
- turn all the supported options in the kernel into new-style ones, so for
- people who correctly did a <command>make depend</command> in their
- kernel compile directory after running
- &man.config.8;, the build process will automatically pick up modified
- options, and only recompile those files where it is necessary. Wiping
- out the old compile directory on each run of &man.config.8; as it is
- still done now can then be eliminated again.</para>
-
- <para>Basically, a kernel option is nothing else than the definition of a
- C preprocessor macro for the kernel compilation process. To make the
- build truly optional, the corresponding part of the kernel source (or
- kernel <filename>.h</filename> file) must be written with the option
- concept in mind, i.e., the default can be overridden by the
- config option. This is usually done with something like:</para>
-
- <programlisting>#ifndef THIS_OPTION
-#define THIS_OPTION (some_default_value)
-#endif /* THIS_OPTION */</programlisting>
-
- <para>This way, an administrator mentioning another value for the option
- in his config file will take the default out of effect, and replace it
- with his new value. Clearly, the new value will be substituted into the
- source code during the preprocessor run, so it must be a valid C
- expression in whatever context the default value would have been
- used.</para>
-
- <para>It is also possible to create value-less options that simply enable
- or disable a particular piece of code by embracing it in</para>
-
- <programlisting>#ifdef THAT_OPTION
-
-[your code here]
-
-#endif</programlisting>
-
- <para>Simply mentioning <literal>THAT_OPTION</literal> in the config file
- (with or without any value) will then turn on the corresponding piece of
- code.</para>
-
- <para>People familiar with the C language will immediately recognize that
- everything could be counted as a <quote>config option</quote> where there
- is at least a single <literal>#ifdef</literal> referencing it...
- However, it's unlikely that many people would put</para>
-
- <programlisting>options notyet,notdef</programlisting>
-
- <para>in their config file, and then wonder why the kernel compilation
- falls over. <!-- smiley -->:-)</para>
-
- <para>Clearly, using arbitrary names for the options makes it very hard to
- track their usage throughout the kernel source tree. That is the
- rationale behind the <emphasis>new-style</emphasis> option scheme, where
- each option goes into a separate <filename>.h</filename> file in the
- kernel compile directory, which is by convention named
- <filename>opt_<replaceable>foo</replaceable>.h</filename>. This way,
- the usual Makefile dependencies could be applied, and
- <command>make</command> can determine what needs to be recompiled once
- an option has been changed.</para>
-
- <para>The old-style option mechanism still has one advantage for local
- options or maybe experimental options that have a short anticipated
- lifetime: since it is easy to add a new <literal>#ifdef</literal> to the
- kernel source, this has already made it a kernel config option. In this
- case, the administrator using such an option is responsible himself for
- knowing about its implications (and maybe manually forcing the
- recompilation of parts of his kernel). Once the transition of all
- supported options has been done, &man.config.8; will warn whenever an
- unsupported option appears in the config file, but it will nevertheless
- include it into the kernel Makefile.</para>
- </sect1>
-
- <sect1>
- <title>Now What Do I Have to Do for it?</title>
-
- <para>First, edit <filename>sys/conf/options</filename> (or
- <filename>sys/<replaceable>&lt;arch&gt;</replaceable>/conf/options.<replaceable>&lt;arch&gt;</replaceable></filename>,
- e. g. <filename>sys/i386/conf/options.i386</filename>), and select an
- <filename>opt_<replaceable>foo</replaceable>.h</filename> file where
- your new option would best go into.</para>
-
- <para>If there is already something that comes close to the purpose of the
- new option, pick this. For example, options modifying the overall
- behavior of the SCSI subsystem can go into
- <filename>opt_scsi.h</filename>. By default, simply mentioning an
- option in the appropriate option file, say <literal>FOO</literal>,
- implies its value will go into the corresponding file
- <filename>opt_foo.h</filename>. This can be overridden on the
- right-hand side of a rule by specifying another filename.</para>
-
- <para>If there is no
- <filename>opt_<replaceable>foo</replaceable>.h</filename> already
- available for the intended new option, invent a new name. Make it
- meaningful, and comment the new section in the
- <filename>options[<replaceable>.&lt;arch&gt;</replaceable>]</filename>
- file. &man.config.8; will automagically pick up the change, and create
- that file next time it is run. Most options should go in a header file
- by themselves..</para>
-
- <para>Packing too many options into a single
- <filename>opt_<replaceable>foo</replaceable>.h</filename> will cause too
- many kernel files to be rebuilt when one of the options has been changed
- in the config file.</para>
-
- <para>Finally, find out which kernel files depend on the new option.
- Unless you have just invented your option, and it does not exist
- anywhere yet, <screen>
-&prompt.user; <userinput>find /usr/src/sys -type f | xargs fgrep NEW_OPTION</userinput>
-</screen>
- is your friend in finding them. Go and edit all those files, and add
- <programlisting>#include "opt_foo.h"</programlisting> <emphasis>on
- top</emphasis> before all the <literal>#include &lt;xxx.h&gt;</literal> stuff.
- This sequence is most important as the options could override defaults
- from the regular include files, if the defaults are of the form
- <programlisting> #ifndef NEW_OPTION #define NEW_OPTION (something)
- #endif</programlisting> in the regular header.</para>
-
- <para>Adding an option that overrides something in a system header file
- (i.e., a file sitting in <filename>/usr/include/sys/</filename>) is
- almost always a mistake.
- <filename>opt_<replaceable>foo</replaceable>.h</filename> cannot be
- included into those files since it would break the headers more
- seriously, but if it is not included, then places that include it may
- get an inconsistent value for the option. Yes, there are precedents for
- this right now, but that does not make them more correct.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml b/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml
deleted file mode 100644
index 28d9c6dbf1..0000000000
--- a/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ /dev/null
@@ -1,935 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/l10n/chapter.sgml,v 1.43 2001/03/09 16:57:48 keichii Exp $
--->
-
-<chapter id="l10n">
- <title>Localization - I18N/L10N Usage and Setup</title>
-
- <para><emphasis>Contributed by &a.ache;</emphasis></para>
-
- <para><emphasis>Rewritten by &a.keichii;, 30 Nov 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>This section of the handbook discusses the internationalization
- and localization of FreeBSD to different countries and different
- settings. If the users wish to use languages other than the system
- default English, he/she will have to setup the system accordingly.
- Please note that language support for each language varies in level.
- Hence, the user should contact the respective FreeBSD local group
- that is responsible for each language.</para>
-
- <para>The author realizes that he may have been incomplete in the
- description of the I18N process in FreeBSD. Due to the various
- levels of I18N implementation in both the system and application
- levels, we advise you to refer to individual documentation, man
- pages, READMEs, and so forth.</para>
-
- <para>Should you have any questions or suggestions regarding this
- chapter, please email the author.</para>
- </sect1>
-
- <sect1>
- <title>The Basics</title>
-
- <sect2>
- <title>What is I18N/L10N?</title>
-
- <para>Developers shortened internationalization into the term I18N,
- counting the number of letters between the first and the last
- letters of internationalization. L10N uses the same naming
- scheme, coming from "localization". Combined
- together, I18N/L10N methods, protocols, and applications allow
- users to use languages of their choice.</para>
-
- <para>I18N applications are programmed using I18N kits under
- libraries. It allows for developers to write a simple file and
- translate displayed menus and texts to each language. We strongly
- encourage programmers to follow this convention.</para>
- </sect2>
-
- <sect2>
- <title>Why should I use I18N/L10N?</title>
-
- <para>I18N/L10N is used whenever you wish to either view, input, or
- process data in non-English languages.</para>
- </sect2>
-
- <sect2>
- <title>What languages are supported in the I18N effort?</title>
-
- <para>I18N and L10N are not FreeBSD specific. Currently, one can
- choose from most of the major languages of the World, including
- but not limited to: Chinese, German, Japanese, Korean, French,
- Russian, Vietnamese and others.</para>
- </sect2>
- </sect1>
-
- <sect1 id="using-localization">
- <title>Using Localization</title>
-
- <para>In all its splendor, I18N is not FreeBSD-specific and is a
- convention. We encourage you to help FreeBSD in following this
- convention.</para>
-
- <para>Localization settings are based on three main terms:
- Language Code, Country Code, and Encoding. Locale names are
- constructed from these parts as follows:</para>
-
- <programlisting><replaceable>LanguageCode</replaceable>_<replaceable>CountryCode</replaceable>.<replaceable>Encoding</replaceable></programlisting>
-
- <sect2>
- <title>Language and Country Codes</title>
-
- <para>In order to localize a FreeBSD system to a specific language
- (or any other I18N-supporting UNIX's), the user needs to find out
- the codes for the specify country and language (country
- codes tell applications what variation of given
- language to use). In addition, web
- browsers, SMTP/POP servers, web servers, etc. make decisions based on
- them. The following are examples of language/country codes:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Language/Country Code</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>en_US</entry>
- <entry>English - United States</entry>
- </row>
-
- <row>
- <entry>ru_RU</entry>
- <entry>Russian for Russia</entry>
- </row>
-
- <row>
- <entry>zh_TW</entry>
- <entry>Traditional Chinese for Taiwan</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- </sect2>
-
- <sect2>
- <title>Encodings</title>
-
- <para>Some languages use non-ASCII encodings that are 8-bit, wide
- or multibyte characters, see &man.multibyte.3; for more
- details. Older applications do not recognize them
- and mistake them for control characters. Newer applications
- usually do recognize 8-bit characters. Depending on the
- implementation, users may be required to compile an application
- with wide or multibyte characters support, or configure it correctly.
- To be able to input and process wide or multibyte characters, the <ulink
- url="../ports/">FreeBSD Ports collection</ulink> has provided
- each language with different programs. Refer to the I18N
- documentation in the respective FreeBSD Port.</para>
-
- <para>Specifically, the user needs to look at the application
- documentation to decide on how to configure it correctly or to
- pass correct values into the configure/Makefile/compiler.</para>
-
- <para>Some things to keep in mind are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Language specific single C chars character sets
- (see &man.multibyte.3;), i.e.,
- ISO_8859-1, ISO_8859-15, KOI8-R, CP437.</para>
- </listitem>
-
- <listitem>
- <para>Wide or multibyte encodings, f.e. EUC, Big5.</para>
- </listitem>
- </itemizedlist>
-
- <para>You can check the active list of character sets at the
- <ulink
- url="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">IANA Registry</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>I18N applications</title>
-
- <para>In the FreeBSD Ports and Package system, I18N applications
- have been named with <literal>I18N</literal> in their names for
- easy identification. However, they do not always support the
- language needed.</para>
- </sect2>
-
- <sect2 id="setting-locale">
- <title>Setting Locale</title>
-
- <para>Theoretically, one only needs to export the value of his/her
- locale name as <envar>LANG</envar> in the login shell and is
- usually done through the user's
- <filename>~/.login_conf</filename> or the user login shell
- configuration (<filename>~/.profile</filename>,
- <filename>~/.bashrc</filename>, <filename>~/.cshrc</filename>).
- This should set all of the locale subsets (such as
- <envar>LC_CTYPE</envar>, <envar>LC_CTIME</envar>, etc.). Please
- refer to language-specific FreeBSD documentation for more
- information.</para>
-
- <para>You should set the following two values in your configuration
- files:</para>
-
- <itemizedlist>
- <listitem>
- <para><envar>LANG</envar> for POSIX &man.setlocale.3; family
- functions</para>
- </listitem>
-
- <listitem>
- <para><envar>MM_CHARSET</envar> for applications' MIME character
- set</para>
- </listitem>
- </itemizedlist>
-
- <para>This includes the user shell config, the specific application
- config, and the X11 config.</para>
-
- <sect3>
- <title>Setting Locale Methods</title>
-
- <para>There are two methods for setting locale, and both are
- described below. The first (recommended one) is by assigning
- the environment variables in <link linkend="login-class">login
- class</link>, and the second is by adding the environment
- variable assignments to the system's shell <link
- linkend="startup-file">startup file</link>.</para>
-
- <sect4 id="login-class">
- <title>Login Classes Method</title>
-
- <para>This method allows environment variables needed for locale
- name and MIME character sets to be assigned once for every
- possible shell instead of adding specific shell assignments to
- each shell's startup file. <link linkend="usr-setup">User
- Level Setup</link> can be done by an user himself and <link
- linkend="adm-setup">Administrator Level Setup</link> require
- superuser privileges.</para>
-
- <sect5 id="usr-setup">
- <title>User Level Setup</title>
-
- <para>Here is a minimal example of a
- <filename>.login_conf</filename> file in user's home
- directory which has both variables set for Latin-1
- encoding:</para>
-
- <programlisting>german:German User:\
- :charset=ISO-8859-1:\
- :lang=de_DE.ISO_8859-1:</programlisting>
-
- <para>Here is an example of a
- <filename>.login_conf</filename> that sets the variables
- for Traditional Chinese in BIG-5 encoding. Notice the many
- more variables set because some software does not respect
- locale variables correctly for Chinese, Japanese, and Korean.</para>
-
- <programlisting>#Users who do not wish to use monetary units or time formats
-#of Taiwan can manually change each variable
-taiwan:Taiwanese User:\
- lang=zh_TW.Big5:\
- lc_all=zh_TW.Big:\
- lc_collate=zh_TW.Big5:\
- lc_ctype=zh_TW.Big5:\
- lc_messages=zh_TW.Big5:\
- lc_monetary=zh_TW.Big5:\
- lc_numeric=zh_TW.Big5:\
- lc_time=zh_TW.Big5:\
- charset=big5:\
- xmodifiers="@im=xcin": #Setting the XIM Input Server</programlisting>
-
- <para>See <link linkend="adm-setup">Administrator Level
- Setup</link> and &man.login.conf.5; for more details.</para>
- </sect5>
-
- <sect5 id="adm-setup">
- <title>Administrator Level Setup</title>
-
- <para>Check that <filename>/etc/login.conf</filename> have the
- correct language user's class. Make sure these settings
- appear in <filename>/etc/login.conf</filename>:</para>
-
- <programlisting><replaceable>language_name</replaceable>:<replaceable>accounts_title</replaceable>:\
- :charset=<replaceable>MIME_charset</replaceable>:\
- :lang=<replaceable>locale_name</replaceable>:\
- :tc=default:</programlisting>
-
- <para>So sticking with our previous example using Latin-1, it
- would look like this:</para>
-
- <programlisting>german:German Users Accounts:\
- :charset=ISO-8859-1:\
- :lang=de_DE.ISO_8859-1:\
- :tc=default:</programlisting>
-
- <para>Changing Login Classes with &man.vipw.8;</para>
-
- <para>Use <command>vipw</command> to add new users, and make
- the entry look like this:</para>
-
- <programlisting>user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh</programlisting>
-
- <para>Changing Login Classes with &man.adduser.8;</para>
-
- <para>Use <command>adduser</command> to add new users, and do
- the following:</para>
-
- <itemizedlist>
- <listitem>
- <para>Set <literal>defaultclass =
- <replaceable>language</replaceable></literal> in
- <filename>/etc/adduser.conf</filename>. Keep in mind
- you must enter a <literal>default</literal> class for
- all users of other languages in this case.</para>
- </listitem>
-
- <listitem>
- <para>An alternative variant is answering the specified
- language each time that
-<screen><prompt>Enter login class: default []: </prompt></screen>
- appears from &man.adduser.8;</para>
- </listitem>
-
- <listitem>
- <para>Another alternative is to use the following for each
- user of a different language that you wish to
- add:</para>
-
- <screen>&prompt.root; <userinput>adduser -class <replaceable>language</replaceable></userinput></screen>
- </listitem>
- </itemizedlist>
-
- <para>Changing Login Classes with &man.pw.8;</para>
-
- <para>If you use &man.pw.8; for adding new users, call it in
- this form:</para>
-
- <screen>&prompt.root; <userinput>pw useradd <replaceable>user_name</replaceable> -L <replaceable>language</replaceable></userinput></screen>
- </sect5>
- </sect4>
-
- <sect4 id="startup-file">
- <title>Shell Startup File Method</title>
-
- <note>
- <para>This method is not recommended because it requires a
- different setup for each possible login program chosen. Use
- the <link linkend="login-class">Login Class Method</link>
- instead.</para>
- </note>
-
- <para>To add the locale name and MIME character set, just set
- the two environment variables shown below in the
- <filename>/etc/profile</filename> and/or
- <filename>/etc/csh.login</filename> shell startup files. We
- will use the German language as an example below:</para>
-
- <para>In <filename>/etc/profile</filename>:</para>
-
- <programlisting><envar>LANG=de_DE.ISO_8859-1; export LANG</envar>
-<envar>MM_CHARSET=ISO-8859-1; export MM_CHARSET</envar></programlisting>
-
- <para>Or in <filename>/etc/csh.login</filename>:</para>
-
- <programlisting><envar>setenv LANG de_DE.ISO_8859-1</envar>
-<envar>setenv MM_CHARSET ISO-8859-1</envar></programlisting>
-
- <para>Alternatively, you can add the above instructions to
- <filename>/usr/share/skel/dot.profile</filename> (similar to
- what was used in <filename>/etc/profile</filename> above), or
- <filename>/usr/share/skel/dot.login</filename> (similar to
- what was used in <filename>/etc/csh.login</filename>
- above).</para>
-
- <para>For X11:</para>
-
- <para>In <filename>$HOME/.xinitrc</filename>:</para>
-
- <programlisting><envar>LANG=de_DE.ISO_8859-1; export LANG</envar></programlisting>
-
- <para>Or:</para>
-
- <programlisting><envar>setenv LANG de_DE.ISO_8859-1</envar></programlisting>
-
- <para>Depending on your shell (see above).</para>
- </sect4>
- </sect3>
- </sect2>
-
- <sect2 id="setting-console">
- <title>Console Setup</title>
-
- <para>For all single C chars character sets, set the correct
- console fonts in <filename>/etc/rc.conf</filename> for the
- language in question with:</para>
-
- <programlisting>font8x16=<replaceable>font_name</replaceable>
-font8x14=<replaceable>font_name</replaceable>
-font8x8=<replaceable>font_name</replaceable></programlisting>
-
- <para>The <replaceable>font_name</replaceable> here is taken from
- the <filename>/usr/share/syscons/fonts</filename> directory,
- without the <filename>.fnt</filename> suffix.</para>
-
- <para>Also be sure to set the correct keymap and screenmap for your
- single C chars character set through
- <filename>/stand/sysinstall</filename>.
- Once inside sysinstall, choose <literal>Configure</literal>, then
- <literal>Console</literal>. Alternatively, you can add the
- following to <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>scrnmap=<replaceable>screenmap_name</replaceable>
-keymap=<replaceable>keymap_name</replaceable>
-keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting>
-
- <para>The <replaceable>screenmap_name</replaceable> here is taken
- from the <filename>/usr/share/syscons/scrnmaps</filename>
- directory, without the <filename>.scm</filename> suffix. A
- screenmap with a corresponding mapped font is usually needed as a
- workaround for expanding bit 8 to bit 9 on a VGA adapter's font
- character matrix in pseudographics area, i.e., to move letters out
- of that area if screen font uses a bit 8 column.</para>
-
- <para>If you have the following settings, insert the
- kernel config specified in the paragraph after the list.</para>
-
- <itemizedlist>
- <listitem>
- <para>Console uses a screen font that utilizes 8-bit column font
- character.</para>
- </listitem>
-
- <listitem>
- <para>The moused daemon is enabled by setting the following in
- your <filename>/etc/rc.conf</filename>:</para>
-
-<programlisting>moused_enable="YES"</programlisting>
- </listitem>
- </itemizedlist>
-
- <para>A workaround for expanding 8-bit to 9-bit on a VGA adapter
- is usually needed for the above settings. This workaround
- disables 8-bit to 9-bit expansion of the font character with the
- mouse cursor the sc0 console driver. To enable the workaround,
- insert the following line into the kernel config.</para>
-
- <programlisting>options SC_MOUSE_CHAR=0x03</programlisting>
-
- <para>The <replaceable>keymap_name</replaceable> here is taken from
- the <filename>/usr/share/syscons/keymaps</filename> directory,
- without the <filename>.kbd</filename> suffix.</para>
-
- <para>The <literal>keychange</literal> is usually needed to program
- function keys to match the selected terminal type because
- function key sequences can not be defined in the key map.</para>
-
- <para>Also be sure to set the correct console terminal type in
- <filename>/etc/ttys</filename> for all <literal>ttyv*</literal>
- entries. Current pre-defined correspondences are:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Character Set</entry>
- <entry>Terminal Type</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>ISO-8859-1 or ISO-8859-15</entry>
- <entry><literal>cons25l1</literal></entry>
- </row>
-
- <row>
- <entry>ISO-8859-2</entry>
- <entry><literal>cons25l2</literal></entry>
- </row>
-
- <row>
- <entry>KOI8-R</entry>
- <entry><literal>cons25r</literal></entry>
- </row>
-
- <row>
- <entry>CP437 (hardware default)</entry>
- <entry><literal>cons25</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>For wide or multibyte characters languages, use the correct
- FreeBSD port in your
- <filename>/usr/ports/<replaceable>language</replaceable></filename>
- directory. Some ports appear as console while the system sees it
- as serial vtty's, hence you must reserve enough vtty's for both
- X11 and the pseudo-serial console. Here is a partial list of
- applications for using other languages in console:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Language</entry>
- <entry>Location</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Traditional Chinese (BIG-5)</entry>
- <entry><filename>/usr/ports/chinese/big5con</filename></entry>
- </row>
-
- <row>
- <entry>Japanese</entry>
- <entry><filename>/usr/ports/japanese/ja-kon2-*</filename> or
- <filename>/usr/ports/japanese/Mule_Wnn</filename></entry>
- </row>
-
- <row>
- <entry>Korean</entry>
- <entry><filename>/usr/ports/korean/ko-han</filename></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
- <title>X11 Setup</title>
-
- <para>Although X11 is not part of the FreeBSD Project, we have
- included some information here for FreeBSD users. For more
- details, refer to the <ulink url="http://www.xfree86.org/">XFree86
- web site</ulink> or whichever X11 Server you use.</para>
-
- <para>In <filename>~/.Xresources</filename>, you can additionally
- tune application specific I18N settings (e.g., fonts, menus,
- etc.).</para>
-
- <sect3>
- <title>Displaying Fonts</title>
-
- <para>Install the X11 True Type-Common server (XTT-common) and
- install the language truetype fonts. Setting the correct
- locale should allow you to view your selected language in menus
- and such.</para>
- </sect3>
-
- <sect3>
- <title>Inputting Non-English Characters</title>
-
- <para>The X11 Input Method (XIM) Protocol is a new standard for
- all X11 clients. All X11 applications should be written as XIM
- clients that take input from XIM Input servers. There are
- several XIM servers available for different languages.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Printer Setup</title>
-
- <para>Some single C chars character sets are usually hardware
- coded into printers. Wide or multibyte
- character sets require special setup and we recommend using
- <application>apsfilter</application>. You may also convert the
- document to Postscript or PDF formats using language specific
- converters.</para>
- </sect2>
-
- <sect2>
- <title>Kernel and File Systems</title>
-
- <para>The FreeBSD FFS filesystem is 8-bit clean, so it can be used
- with any single C chars character set (see &man.multibyte.3;),
- but there is no character set
- name stored in the filesystem; i.e., it is raw 8-bit and does not
- know anything about encoding order. Officially, FFS does not
- support any form of wide or multibyte character sets yet. However, some
- wide or multibyte character sets have independent patches for FFS
- enabling such support. They are only temporary unportable
- solutions or hacks and we have decided to not include them in the
- source tree. Refer to respective languages' web sites for more
- informations and the patch files.</para>
-
- <para>The FreeBSD MS-DOS filesystem has the configurable ability to
- convert between MS-DOS, Unicode character sets and chosen
- FreeBSD filesystem character sets. See &man.mount.msdos.8; for
- details.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Advanced Topics</title>
-
- <para>If you wish to compile I18N applications or program I18N
- compliant applications, please read this section.</para>
-
- <sect2>
- <title>Compiling I18N Programs</title>
-
- <para>Many FreeBSD Ports have been ported with I18N support. Some
- of them are marked with -I18N in the port name. These and many
- other programs have built in support for I18N and need no special
- consideration.</para>
-
- <para>However, some applications such as MySQL need to be have the
- <filename>Makefile</filename> configured with the specific
- charset. This is usually done in the
- <filename>Makefile</filename> or done by passing a value to
- configure in the source.</para>
- </sect2>
-
- <sect2>
- <title>Programming I18N Compliant Applications</title>
-
- <para>To make your application more useful for speakers of other
- languages, we hope that you will program I18N compliant. The GNU
- gcc compiler, GUI Libraries like QT and GTK support I18N through
- special handling of strings. Making a program I18N compliant is
- very easy. It allows contributors to port your application to
- other languages quickly. Refer to library specific I18N
- documentation for more details.</para>
-
- <para>To the contrary of common perception, I18N compliant code is
- easy to write. Usually, it only involves wrapping your strings
- with library specific functions. In addition, please be sure to
- allow for wide or multibyte characters support.</para>
-
- <sect3>
- <title>A Call to Unify the I18N effort</title>
-
- <para>It has come to our attention that the individual I18N/L10N
- efforts for each country has been repeating each others'
- efforts. Many of us have been reinventing the wheel repeatedly
- and inefficiently. We hope that the various major groups in
- I18N could congregate into a group effort similar to the Core
- Team's responsibility.</para>
-
- <para>Currently, we hope that, when you write or port I18N
- programs, you would send it out to each country's related
- FreeBSD mailing lists for testing. In the future, we hope to
- create applications that work in all the languages
- out-of-the-box without dirty hacks.</para>
-
- <para>The mailing list <email>FreeBSD-I18N@FreeBSD.org</email>
- has been established. If you are an I18N/L10N developer,
- please send your comments, ideas, questions, and anything
- you deem related to it. </para>
-
- <para> Michael C. Wu will be maintaining an I18N works in progress
- homepage at <ulink
- url="http://www.FreeBSD.org/~keichii/i18n/index.html">http://www.FreeBSD.org/~keichii/i18n/index.html</ulink>
- Please also read the BSDCon2000 I18N paper and presentations
- by Clive Lin, Chia-Liang Kao, and Michael C. Wu at <ulink
- url="http://www.FreeBSD.org/~keichii/papers/">http://www.FreeBSD.org/~keichii/papers/</ulink></para>
- </sect3>
-
- <sect3>
- <title>Perl and Python</title>
-
- <para>Perl and Python have I18N and wide characters handling
- libraries. Please use them for I18N compliance.</para>
-
- <para>In older FreeBSD versions,
- Perl may gives warning about not having a wide characters locale
- that is already installed in your system. You can set the
- environmental variable <envar>LD_PRELOAD</envar> to
- <filename>/usr/lib/libxpg4.so</filename> in your shell.</para>
-
- <para>In <literal>sh</literal>-based shells:</para>
-
- <programlisting><envar>LD_PRELOAD=/usr/lib/libxpg4.so</envar></programlisting>
-
- <para>In <literal>C</literal>-based shells:</para>
-
- <programlisting><envar>setenv LD_PRELOAD /usr/lib/libxpg4.so</envar></programlisting>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="lang-setup">
- <title>Localizing FreeBSD to Specific Languages</title>
-
- <sect2 id="ru-localize">
- <title>Russian Language (KOI8-R encoding)</title>
-
- <para><emphasis>Originally contributed by
- &a.ache;.</emphasis></para>
-
- <para>For more information about KOI8-R encoding, see the <ulink
- url="http://koi8.pp.ru/">KOI8-R References
- (Russian Net Character Set)</ulink>.</para>
-
- <sect3>
- <title>Locale Setup</title>
-
- <para>Put the following lines into your
- <filename>~/.login_conf</filename> file:</para>
-
- <programlisting>me:My Account:\
- :charset=KOI8-R:\
- :lang=ru_RU.KOI8-R:</programlisting>
-
- <para>See earlier in this chapter for examples of setting up the
- <link linkend="setting-locale">locale</link>.</para>
- </sect3>
-
- <sect3>
- <title>Console Setup</title>
-
- <itemizedlist>
- <listitem>
- <para>Add the following to your kernel configuration
- file:</para>
-
- <programlisting>options SC_MOUSE_CHAR=0x03</programlisting>
- </listitem>
-
- <listitem>
- <para>Use following settings in
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>keymap="ru.koi8-r"
-scrnmap="koi8-r2cp866"
-font8x16="cp866b-8x16"
-font8x14="cp866-8x14"
-font8x8="cp866-8x8"</programlisting>
-
- </listitem>
-
- <listitem>
- <para>For each <literal>ttyv*</literal> entry in
- <filename>/etc/ttys</filename>, use
- <literal>cons25r</literal> as the terminal type.</para>
- </listitem>
- </itemizedlist>
-
- <para>See earlier in this chapter for examples of setting up the
- <link linkend="setting-console">console</link>.</para>
- </sect3>
-
- <sect3>
- <title>Printer Setup</title>
-
- <para>Since most printers with Russian characters come with
- hardware code page CP866, a special output filter is needed for
- KOI8-R -&gt; CP866 conversion. Such a filter is installed by
- default as <filename>/usr/libexec/lpr/ru/koi2alt</filename>.
- A Russian printer <filename>/etc/printcap</filename> entry
- should look like:</para>
-
- <programlisting>lp|Russian local line printer:\
- :sh:of=/usr/libexec/lpr/ru/koi2alt:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting>
-
- <para>See &man.printcap.5; for a detailed description.</para>
- </sect3>
-
- <sect3>
- <title>MS-DOS FS and Russian Filenames</title>
-
- <para>The following example &man.fstab.5; entry enables support
- for Russian filenames in mounted MS-DOS filesystems:</para>
-
- <programlisting>/dev/ad0s2 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0</programlisting>
-
- <para>See &man.mount.msdos.8; for a detailed description of the
- <option>-W</option> and <option>-L</option> options.</para>
- </sect3>
-
- <sect3>
- <title>X11 Setup</title>
-
- <orderedlist>
- <listitem>
- <para>Do <link linkend="setting-locale">non-X locale
- setup</link> first as described.</para>
-
- <note>
- <para><anchor id="russian-note">The Russian KOI8-R locale
- may not work with old XFree86 releases (lower than 3.3).
- The XFree86 port from
- <filename>/usr/ports/x11/XFree86</filename> already is the
- most recent XFree86 version, so it will work if you
- install XFree86 from the port. This should not be an
- issue unless you are using an old version of
- FreeBSD.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Go to the
- <filename>/usr/ports/russian/X.language</filename> directory
- and issue the following command:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput></screen>
-
- <para>The above port installs the latest version of the KOI8-R
- fonts. XFree86 3.3 already has some KOI8-R fonts, but these
- are scaled better.</para>
-
- <para>Check the <literal>"Files"</literal> section
- in your <filename>/etc/XF86Config</filename> file.
- The following
- lines must be added <emphasis>before</emphasis> any other
- <literal>FontPath</literal> entries:</para>
-
- <programlisting>FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting>
-
- <para>If you use a high resolution video mode, swap the 75 dpi
- and 100 dpi lines.</para>
- </listitem>
-
- <listitem>
- <para>To activate a Russian keyboard, add the following to the
- <literal>"Keyboard"</literal> section of your
- <filename>XF86Config</filename> file.</para>
-
- <para>For XFree86 v3.*:</para>
-
- <programlisting>XkbLayout "ru"
-XkbOptions "grp:caps_toggle"</programlisting>
-
- <para>For XFree86 v4.*:</para>
-
- <programlisting>Option "XkbLayout" "ru"
-Option "XkbOptions" "grp:caps_toggle"</programlisting>
-
- <para>Also make sure that <literal>XkbDisable</literal> is
- turned off (commented out) there.</para>
-
- <para>The RUS/LAT switch will be <literal>CapsLock</literal>.
- The old <literal>CapsLock</literal> function is still
- available via <literal>Shift+CapsLock</literal> (in LAT mode
- only).</para>
-
- <para>If you have <quote>Windows</quote> keys on your keyboard,
- and notice that some non-alphabetical keys are mapped
- incorrectly in RUS mode, add the following line in your
- <filename>XF86Config</filename> file.</para>
-
- <para>For XFree86 v3.*:</para>
-
- <programlisting>XkbVariant "winkeys"</programlisting>
-
- <para>For XFree86 v4.*:</para>
-
- <programlisting>Option "XkbVariant" "winkeys"</programlisting>
-
- <note>
- <para>The Russian XKB keyboard may not work with old XFree86
- versions, see the <link linkend="russian-note">above
- note</link> for more information. The Russian XKB
- keyboard may also not work with non-localized
- applications as well. Minimally localized applications
- should call a <literal>XtSetLanguageProc (NULL, NULL,
- NULL);</literal> function early in the program.
- See <ulink
- url="http://koi8.pp.ru/xwin.html">
- KOI8-R for X-Window</ulink> for more instructions on
- localizing X11 applications.</para>
- </note>
- </listitem>
- </orderedlist>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Traditional Chinese Localization for Taiwan</title>
-
- <para>The FreeBSD-Taiwan Project has an I18N/L10N tutorial for
- FreeBSD at <ulink url="http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html">http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html</ulink>
- using many <filename>/usr/ports/chinese/*</filename> applications.
- The editor for the <literal>zh-L10N-tut</literal> is Clive Lin
- <email>Clive@CirX.org</email>. You can also cvsup the following
- collections at <hostid
- role="fqdn">freebsd.sinica.edu.tw</hostid>:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Collection</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>outta-port tag=.</entry>
- <entry>Beta-quality Ports Collection for Chinese</entry>
- </row>
-
- <row>
- <entry>zh-L10N-tut tag=.</entry>
- <entry>Localizing FreeBSD Tutorial in BIG-5 Traditional
- Chinese</entry>
- </row>
-
- <row>
- <entry>zh-doc tag=.</entry>
- <entry>FreeBSD Documentation Translation to BIG-5 Traditional
- Chinese</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Chuan-Hsing Shen <email>s874070@mail.yzu.edu.tw</email> has
- created the <ulink url="http://cnpa.yzu.edu.tw/~cfc/">Chinese
- FreeBSD Collection (CFC)</ulink> using FreeBSD-Taiwan's
- <literal>zh-L10N-tut</literal>. The packages and the script files
- are available at <ulink url="ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/">ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>German Language Localization (For All ISO 8859-1
- Languages)</title>
-
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email> wrote a
- tutorial how to use umlauts on a FreeBSD machine. The tutorial
- is written in German and available at <ulink
- url="http://www.de.FreeBSD.org/de/umlaute/">http://www.de.FreeBSD.org/de/umlaute/</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Japanese and Korean Language Localization</title>
-
- <para>For Japanese, refer to <ulink
- url="http://www.jp.FreeBSD.org/">http://www.jp.FreeBSD.org/</ulink>,
- and for Korean, refer to <ulink
- url="http://www.kr.FreeBSD.org/">http://www.kr.FreeBSD.org/</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Non-English FreeBSD Documentation</title>
-
- <para>Some FreeBSD contributors have translated parts of FreeBSD to
- other languages. They are available through links on the <ulink
- url="../">main site</ulink> or in
- <filename>/usr/share/doc</filename>.</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml
deleted file mode 100644
index 71154577c7..0000000000
--- a/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ /dev/null
@@ -1,795 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/linuxemu/chapter.sgml,v 1.34 2001/03/29 07:40:19 murray Exp $
--->
-
-<chapter id="linuxemu">
- <title>Linux Binary Compatibility</title>
-
- <para><emphasis>Restructured and parts updated by &a.jim;, 22 March
- 2000. Originally contributed by &a.handy; and
- &a.rich;</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>The following chapter will cover FreeBSD's Linux binary
- compatibility features, how to install it, and how it works.</para>
-
- <para>At this point, you may be asking yourself why exactly, does
- FreeBSD need to be able to run Linux binaries? The answer to that
- question is quite simple. Many companies and developers develop
- only for Linux, since it is the latest <quote>hot thing</quote> in
- the computing world. That leaves the rest of us FreeBSD users
- bugging these same companies and developers to put out native
- FreeBSD versions of their applications. The problem is, that most
- of these companies do not really realize how many people would use
- their product if there were FreeBSD versions too, and most continue
- to only develop for Linux. So what is a FreeBSD user to do? This
- is where the Linux binary compatibility of FreeBSD comes into
- play.</para>
-
- <para>In a nutshell, the compatibility allows FreeBSD users to run
- about 90% of all Linux applications without modification. This
- includes applications such as Star Office, the Linux version of
- Netscape, Adobe Acrobat, RealPlayer 5 and 7, VMWare, Oracle,
- WordPerfect, Doom, Quake, and more. It is also reported that in
- some situations, Linux binaries perform better on FreeBSD than they
- do under Linux.</para>
-
- <para>There are, however, some Linux-specific operating system
- features that are not supported under FreeBSD. Linux binaries will
- not work on FreeBSD if they overly use the Linux
- <filename>/proc</filename> filesystem (which is different from
- FreeBSD's <filename>/proc</filename> filesystem), or i386-specific
- calls, such as enabling virtual 8086 mode.</para>
-
- <para>For information on installing the Linux binary compatibility
- mode, see the <link linkend="linuxemu-lbc-install">next section</link>.</para>
- </sect1>
-
- <sect1 id="linuxemu-lbc-install">
- <title>Installation</title>
-
- <para>With the advent of 3.0-RELEASE, it is no longer necessary to
- specify <literal>options LINUX</literal> or
- <literal>options COMPAT_LINUX</literal> in your kernel
- configuration.</para>
-
- <para>The Linux binary compatibility is now done via a KLD object
- (<quote>Kernel LoaDable object</quote>), so it can be installed
- <quote>on-the-fly</quote> without having to reboot. You will,
- however, need to have the following in
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>linux_enable=<quote>YES</quote></programlisting>
-
- <para>This, in turn, triggers the following action in
- <filename>/etc/rc.i386</filename>:</para>
-
- <programlisting># Start the Linux binary compatibility if requested.
-#
-case ${linux_enable} in
-[Yy][Ee][Ss])
- echo -n ' linux'; linux &gt; /dev/null 2&gt;&amp;1
- ;;
-esac</programlisting>
-
- <para>If you wish to verify that the KLD is loaded,
- <command>kldstat</command> will do that:</para>
-
- <screen>&prompt.user; <userinput>kldstat</userinput>
-Id Refs Address Size Name
- 1 2 0xc0100000 16bdb8 kernel
- 7 1 0xc24db000 d000 linux.ko</screen>
-
- <para>If for some reason you do not want to or cannot load the KLD,
- then you may statically link the binary compatibility in the kernel
- by adding <literal>options LINUX</literal> to your kernel
- configuration file. Then install your new kernel as described in
- the <link linkend="kernelconfig">kernel configuration</link> section
- of this handbook.</para>
-
- <sect2>
- <title>Installing Linux Runtime Libraries</title>
-
- <para>This can be done one of two ways, either by using the <link
- linkend="linuxemu-libs-port">linux_base</link> port, or by installing them
- <link linkend="linuxemu-libs-manually">manually</link>.</para>
-
- <sect3 id="linuxemu-libs-port">
- <title>Installing using the linux_base port</title>
-
- <para>This is by far the easiest method to use when installing the
- runtime libraries. It is just like installing any other port
- from the <ulink url="../ports/">ports collection</ulink>.
- Simply do the following:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base</userinput>
-&prompt.root; <userinput>make install distclean</userinput></screen>
-
- <para>You should now have working Linux binary compatibility.
- Some programs may complain about incorrect minor versions of the
- system libraries. In general, however, this does not seem to be
- a problem.</para>
- </sect3>
-
- <sect3 id="linuxemu-libs-manually">
- <title>Installing libraries manually</title>
-
- <para>If you do not have the <quote>ports</quote> collection
- installed, you can install the libraries by hand instead. You
- will need the Linux shared libraries that the program depends on
- and the runtime linker. Also, you will need to create a
- <quote>shadow root</quote> directory,
- <filename>/compat/linux</filename>, for Linux libraries on your
- FreeBSD system. Any shared libraries opened by Linux programs
- run under FreeBSD will look in this tree first. So, if a Linux
- program loads, for example, <filename>/lib/libc.so</filename>,
- FreeBSD will first try to open
- <filename>/compat/linux/lib/libc.so</filename>, and if that does
- not exist, it will then try <filename>/lib/libc.so</filename>.
- Shared libraries should be installed in the shadow tree
- <filename>/compat/linux/lib</filename> rather than the paths
- that the Linux <command>ld.so</command> reports.</para>
-
- <para>Generally, you will need to look for the shared libraries
- that Linux binaries depend on only the first few times that you
- install a Linux program on your FreeBSD system. After a while,
- you will have a sufficient set of Linux shared libraries on your
- system to be able to run newly imported Linux binaries without
- any extra work.</para>
- </sect3>
-
- <sect3>
- <title>How to install additional shared libraries</title>
-
- <para>What if you install the <filename>linux_base</filename> port
- and your application still complains about missing shared
- libraries? How do you know which shared libraries Linux
- binaries need, and where to get them? Basically, there are 2
- possibilities (when following these instructions you will need
- to be root on your FreeBSD system).</para>
-
- <para>If you have access to a Linux system, see what shared
- libraries the application needs, and copy them to your FreeBSD
- system. Look at the following example:</para>
-
- <informalexample>
- <para>Let us assume you used FTP to get the Linux binary of
- Doom, and put it on a Linux system you have access to. You
- then can check which shared libraries it needs by running
- <command>ldd linuxdoom</command>, like so:</para>
-
- <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
-libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
-libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
-libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
-
- <para>You would need to get all the files from the last column,
- and put them under <filename>/compat/linux</filename>, with
- the names in the first column as symbolic links pointing to
- them. This means you eventually have these files on your
- FreeBSD system:</para>
-
- <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
-/compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
-/compat/linux/usr/X11/lib/libX11.so.3.1.0
-/compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
-/compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
-
- <blockquote>
- <note>
- <para>Note that if you already have a Linux shared library
- with a matching major revision number to the first column
- of the <command>ldd</command> output, you will not need to
- copy the file named in the last column to your system, the
- one you already have should work. It is advisable to copy
- the shared library anyway if it is a newer version,
- though. You can remove the old one, as long as you make
- the symbolic link point to the new one. So, if you have
- these libraries on your system:</para>
-
- <screen>/compat/linux/lib/libc.so.4.6.27
-/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
-
- <para>and you find a new binary that claims to require a
- later version according to the output of
- <command>ldd</command>:</para>
-
- <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
-
- <para>If it is only one or two versions out of date in the
- in the trailing digit then do not worry about copying
- <filename>/lib/libc.so.4.6.29</filename> too, because the
- program should work fine with the slightly older version.
- However, if you like, you can decide to replace the
- <filename>libc.so</filename> anyway, and that should leave
- you with:</para>
-
- <screen>/compat/linux/lib/libc.so.4.6.29
-/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
- </note>
- </blockquote>
-
- <blockquote>
- <note>
- <para>The symbolic link mechanism is
- <emphasis>only</emphasis> needed for Linux binaries. The
- FreeBSD runtime linker takes care of looking for matching
- major revision numbers itself and you do not need to worry
- about it.</para>
- </note>
- </blockquote>
- </informalexample>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Installing Linux ELF binaries</title>
-
- <para>ELF binaries sometimes require an extra step of
- <quote>branding</quote>. If you attempt to run an unbranded ELF
- binary, you will get an error message like the following;</para>
-
- <screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput>
-ELF binary type not known
-Abort</screen>
-
- <para>To help the FreeBSD kernel distinguish between a FreeBSD ELF
- binary from a Linux binary, use the &man.brandelf.1;
- utility.</para>
-
- <screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen>
-
- <para>The GNU toolchain now places the appropriate branding
- information into ELF binaries automatically, so you this step
- should become increasingly more rare in the future.</para>
- </sect2>
-
- <sect2>
- <title>Configuring the host name resolver</title>
-
- <para>If DNS does not work or you get this message:</para>
-
- <screen>resolv+: "bind" is an invalid keyword resolv+:
-"hosts" is an invalid keyword</screen>
-
- <para>You will need to configure a
- <filename>/compat/linux/etc/host.conf</filename> file
- containing:</para>
-
- <programlisting>order hosts, bind
-multi on</programlisting>
-
- <para>The order here specifies that <filename>/etc/hosts</filename>
- is searched first and DNS is searched second. When
- <filename>/compat/linux/etc/host.conf</filename> is not
- installed, linux applications find FreeBSD's
- <filename>/etc/host.conf</filename> and complain about the
- incompatible FreeBSD syntax. You should remove
- <literal>bind</literal> if you have not configured a name server
- using the <filename>/etc/resolv.conf</filename> file.</para>
- </sect2>
- </sect1>
-
- <sect1 id="linuxemu-mathematica">
- <title>Installing Mathematica</title>
-
- <para><emphasis>Updated for Mathematica version 4.x by &a.murray
- and merged with work by Bojan Bistrovic
- <email>bojanb@physics.odu.edu</email>.</emphasis></para>
-
- <para>This document describes the process of installing the Linux
- version of Mathematica 4.X onto a FreeBSD system.</para>
-
- <para>The Linux version of Mathematica runs perfectly under FreeBSD
- however the binaries shipped by Wolfram need to be branded so that
- FreeBSD knows to use the Linux ABI to execute them.</para>
-
- <para>The Linux version of Mathematica or Mathematica for Students can
- be ordered directly from Wolfram at <ulink
- url="http://www.wolfram.com/">http://www.wolfram.com/</ulink>.</para>
-
- <sect2>
- <title>Branding the Linux binaries</title>
-
- <para>The Linux binaries are located in the <filename>Unix</filename>
- directory of the Mathematica CDROM distributed by Wolfram. You
- need to copy this directory tree to your local hard drive so that
- you can brand the Linux binaries with &man.brandelf.1; before
- running the installer:</para>
-
- <screen>&prompt.root; <userinput>mount /cdrom</userinput>
-&prompt.root; <userinput>cp -rp /cdrom/Unix/ /localdir/</userinput>
-&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*</userinput>
-&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*</userinput>
-&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*</userinput>
-&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*</userinput>
-&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*</userinput>
-&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm</userinput>
-&prompt.root; <userinput>cd /localdir/Installers/Linux/</userinput>
-&prompt.root; <userinput>./MathInstaller</userinput></screen>
-
- <para>Alternatively, you can simply set the default ELF brand
- to Linux for all unbranded binaries with the command:</para>
- <screen>&prompt.root; <userinput>sysctl -w kern.fallback_elf_brand=3</userinput>
- </screen>
- <para>This will make FreeBSD assume that unbranded ELF binaries
- use the Linux ABI and so you should be able to run the
- installer straight from the CDROM.</para>
- </sect2>
-
- <sect2>
- <title>Obtaining your Mathematica Password</title>
-
- <para>Before you can run Mathematica you will have to obtain a
- password from Wolfram that corresponds to your <quote>machine
- ID</quote>.</para>
-
- <para>Once you have installed the Linux compatibility runtime
- libraries and unpacked Mathematica you can obtain the
- <quote>machine ID</quote> by running the program
- <command>mathinfo</command> in the Install directory. This
- machine ID is based solely on the MAC address of your first
- ethernet card.</para>
-
- <screen>&prompt.root; <userinput>cd /localdir/Files/SystemFiles/Installation/Binaries/Linux</userinput>
-&prompt.root; <userinput>mathinfo</userinput>
-disco.example.com 7115-70839-20412</screen>
-
- <para>When you register with Wolfram, either by email, phone or fax,
- you will give them the <quote>machine ID</quote> and they will
- respond with a corresponding password consisting of groups of
- numbers. You can then enter this information when you attempt to
- run Mathematica for the first time exactly as you would for any
- other Mathematica platform.</para>
- </sect2>
-
- <sect2>
- <title>Running the Mathematica front end over a network</title>
-
- <para>Mathematica uses some special fonts to display characters not
- present in any of the standard font sets (integrals, sums, greek
- letters, etc.). The X protocol requires these fonts to be install
- <emphasis>locally</emphasis>. This means you will have to copy
- these fonts from the CDROM or from a host with Mathematica
- installed to your local machine. These fonts are normally stored
- in <filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> on the
- CDROM, or
- <filename>/usr/local/mathematica/SystemFiles/Fonts</filename> on
- your hard drive. The actual fonts are in the subdirectories
- <filename>Type1</filename> and <filename>X</filename>. There are
- several ways to use them, as described below.</para>
-
- <para>The first way is to copy them into one of the existing font
- directories in <filename>/usr/X11R6/lib/X11/fonts</filename>.
- This will require editing the <filename>fonts.dir</filename> file,
- adding the font names to it, and changing the number of fonts on
- the first line. Alternatively, you should also just be able to
- run <command>mkfontdir</command> in the directory you have copied
- them to.</para>
-
- <para>The second way to do this is to copy the directories to
- <filename>/usr/X11R6/lib/X11/fonts</filename>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput>
-&prompt.root; <userinput>mkdir X</userinput>
-&prompt.root; <userinput>mkdir MathType1</userinput>
-&prompt.root; <userinput>cd /cdrom/Unix/Files/SystemFiles/Fonts</userinput>
-&prompt.root; <userinput>cp X/* /usr/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1</userinput>
-&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>mkfontdir</userinput>
-&prompt.root; <userinput>cd ../MathType1</userinput>
-&prompt.root; <userinput>mkfontdir</userinput</screen>
-
- <para>Now add the new font directories to your font path:</para>
-
- <screen>&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/MathType1</userinput>
-&prompt.root; <userinput>xset fp rehash</userinput></screen>
-
- <para>If you are using the XFree86 server, you can have these font
- directories loaded automatically by adding them to your
- <filename>XF86Config</filename> file.</para>
-
- <para>If you <emphasis>do not</emphasis> already have a directory
- called <filename>/usr/X11R6/lib/X11/fonts/Type1</filename>, you
- can change the name of the <filename>MathType1</filename>
- directory in the example above to
- <filename>Type1</filename>.</para>
- </sect2>
- </sect1>
-
- <sect1 id="linuxemu-oracle">
- <title>Installing Oracle</title>
-
- <para><emphasis>Contributed by Marcel Moolenaar
- <email>marcel@cup.hp.com</email></emphasis></para>
-
- <sect2>
- <title>Preface</title>
- <para>This document describes the process of installing Oracle 8.0.5 and
- Oracle 8.0.5.1 Enterprise Edition for Linux onto a FreeBSD
- machine</para>
- </sect2>
-
- <sect2>
- <title>Installing the Linux environment</title>
-
- <para>Make sure you have both <filename>linux_base</filename> and
- <filename>linux_devtools</filename> from the ports collection
- installed. These ports are added to the collection after the release
- of FreeBSD 3.2. If you are using FreeBSD 3.2 or an older version for
- that matter, update your ports collection. You may want to consider
- updating your FreeBSD version too. If you run into difficulties with
- <filename>linux_base-6.1</filename> or
- <filename>linux_devtools-6.1</filename> you may have to use version
- 5.2 of these packages.</para>
-
- <para>If you want to run the intelligent agent, you'll
- also need to install the Red Hat TCL package:
- <filename>tcl-8.0.3-20.i386.rpm</filename>. The general command
- for installing packages with the official RPM port is :</para>
-
- <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>package</replaceable></userinput></screen>
-
- <para>Installation of the package should not generate any errors.</para>
- </sect2>
-
- <sect2>
- <title>Creating the Oracle environment</title>
-
- <para>Before you can install Oracle, you need to set up a proper
- environment. This document only describes what to do
- <emphasis>specially</emphasis> to run Oracle for Linux on FreeBSD, not
- what has been described in the Oracle installation guide.</para>
-
- <sect3 id="linuxemu-kernel-tuning">
- <title>Kernel Tuning</title>
-
- <para>As described in the Oracle installation guide, you need to set
- the maximum size of shared memory. Don't use
- <literal>SHMMAX</literal> under FreeBSD. <literal>SHMMAX</literal>
- is merely calculated out of <literal>SHMMAXPGS</literal> and
- <literal>PGSIZE</literal>. Therefore define
- <literal>SHMMAXPGS</literal>. All other options can be used as
- described in the guide. For example:</para>
-
- <programlisting>options SHMMAXPGS=10000
-options SHMMNI=100
-options SHMSEG=10
-options SEMMNS=200
-options SEMMNI=70
-options SEMMSL=61</programlisting>
-
- <para>Set these options to suit your intended use of Oracle.</para>
-
- <para>Also, make sure you have the following options in your kernel
- config-file:</para>
-
-<programlisting>options SYSVSHM #SysV shared memory
-options SYSVSEM #SysV semaphores
-options SYSVMSG #SysV interprocess communication</programlisting>
- </sect3>
-
- <sect3 id="linuxemu-oracle-account">
-
- <title>Oracle account</title>
-
- <para>Create an Oracle account just as you would create any other
- account. The Oracle account is special only that you need to give
- it a Linux shell. Add <literal>/compat/linux/bin/bash</literal> to
- <filename>/etc/shells</filename> and set the shell for the Oracle
- account to <filename>/compat/linux/bin/bash</filename>.</para>
- </sect3>
-
- <sect3 id="linuxemu-environment">
- <title>Environment</title>
-
- <para>Besides the normal Oracle variables, such as
- <envar>ORACLE_HOME</envar> and <envar>ORACLE_SID</envar> you must
- set the following environment variables:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><envar>LD_LIBRARY_PATH</envar></entry>
-
- <entry><literal>$ORACLE_HOME/lib</literal></entry>
- </row>
-
- <row>
- <entry><envar>CLASSPATH</envar></entry>
-
- <entry><literal>$ORACLE_HOME/jdbc/lib/classes111.zip</literal></entry>
- </row>
-
- <row>
- <entry><envar>PATH</envar></entry>
-
- <entry><literal>/compat/linux/bin
-/compat/linux/sbin
-/compat/linux/usr/bin
-/compat/linux/usr/sbin
-/bin
-/sbin
-/usr/bin
-/usr/sbin
-/usr/local/bin
-$ORACLE_HOME/bin</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>It is advised to set all the environment variables in
- <filename>.profile</filename>. A complete example is:</para>
-
-<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
-ORACLE_HOME=/oracle; export ORACLE_HOME
-LD_LIBRARY_PATH=$ORACLE_HOME/lib
-export LD_LIBRARY_PATH
-ORACLE_SID=ORCL; export ORACLE_SID
-ORACLE_TERM=386x; export ORACLE_TERM
-CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
-export CLASSPATH
-PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
-export PATH</programlisting>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Installing Oracle</title>
-
- <para>Due to a slight inconsistency in the Linux emulator, you need to
- create a directory named <filename>.oracle</filename> in
- <filename>/var/tmp</filename> before you start the installer. Either
- make it world writable or let it be owner by the oracle user. You
- should be able to install Oracle without any problems. If you have
- problems, check your Oracle distribution and/or configuration first!
- After you have installed Oracle, apply the patches described in the
- next two subsections.</para>
-
- <para>A frequent problem is that the TCP protocol adapter is not
- installed right. As a consequence, you cannot start any TCP listeners.
- The following actions help solve this problem:</para>
-
- <screen>&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
-&prompt.root; <userinput>make -f ins_network.mk ntcontab.o</userinput>
-&prompt.root; <userinput>cd $ORACLE_HOME/lib</userinput>
-&prompt.root; <userinput>ar r libnetwork.a ntcontab.o</userinput>
-&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
-&prompt.root; <userinput>make -f ins_network.mk install</userinput></screen>
-
- <para>Don't forget to run <filename>root.sh</filename> again!</para>
-
- <sect3 id="linuxemu-patch-root">
- <title>Patching root.sh</title>
-
- <para>When installing Oracle, some actions, which need to be performed
- as <username>root</username>, are recorded in a shell script called
- <filename>root.sh</filename>. <filename>root.sh</filename> is
- written in the <filename>orainst</filename> directory. Apply the
- following patch to root.sh, to have it use to proper location of
- chown or alternatively run the script under a Linux native
- shell.</para>
-
- <programlisting>*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
---- orainst/root.sh Mon Dec 28 15:58:53 1998
-***************
-*** 31,37 ****
-# This is the default value for CHOWN
-# It will redefined later in this script for those ports
-# which have it conditionally defined in ss_install.h
-! CHOWN=/bin/chown
-#
-# Define variables to be used in this script
---- 31,37 ----
-# This is the default value for CHOWN
-# It will redefined later in this script for those ports
-# which have it conditionally defined in ss_install.h
-! CHOWN=/usr/sbin/chown
-#
-# Define variables to be used in this script</programlisting>
-
- <para>When you don't install Oracle from CD, you can patch the source
- for <filename>root.sh</filename>. It is called
- <filename>rthd.sh</filename> and is located in the
- <filename>orainst</filename> directory in the source tree.</para>
- </sect3>
-
- <sect3 id="linuxemu-patch-tcl">
- <title>Patching genclntsh</title>
-
- <para>The script genclntsh is used to create a single shared client
- library. It is used when building the demos. Apply the following
- patch to comment out the definition of PATH:</para>
-
- <programlisting>*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
---- bin/genclntsh Tue Dec 22 15:36:49 1998
-***************
-*** 32,38 ****
-#
-# Explicit path to ensure that we're using the correct commands
-#PATH=/usr/bin:/usr/ccs/bin export PATH
-! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
-#
-# each product MUST provide a $PRODUCT/admin/shrept.lst
---- 32,38 ----
-#
-# Explicit path to ensure that we're using the correct commands
-#PATH=/usr/bin:/usr/ccs/bin export PATH
-! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
-#
-# each product MUST provide a $PRODUCT/admin/shrept.lst</programlisting>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Running Oracle</title>
-
- <para>When you have followed the instructions, you should be able to run
- Oracle as if it was run on Linux itself.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Advanced Topics</title>
-
- <para>If you are curious as to how the Linux binary compatibility
- works, this is the section you want to read. Most of what follows
- is based heavily on an email written to &a.chat; by Terry Lambert
- <email>tlambert@primenet.com</email> (Message ID:
- <literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).</para>
-
- <sect2>
- <title>How Does It Work?</title>
-
- <para>FreeBSD has an abstraction called an <quote>execution class
- loader</quote>. This is a wedge into the &man.execve.2; system
- call.</para>
-
- <para>What happens is that FreeBSD has a list of loaders, instead of
- a single loader with a fallback to the <literal>#!</literal>
- loader for running any shell interpreters or shell scripts.</para>
-
- <para>Historically, the only loader on the UNIX platform examined
- the magic number (generally the first 4 or 8 bytes of the file) to
- see if it was a binary known to the system, and if so, invoked the
- binary loader.</para>
-
- <para>If it was not the binary type for the system, the
- &man.execve.2; call returned a failure, and the shell attempted to
- start executing it as shell commands.</para>
-
- <para>The assumption was a default of <quote>whatever the current
- shell is</quote>.</para>
-
- <para>Later, a hack was made for &man.sh.1; to examine the first two
- characters, and if they were <literal>:\n</literal>, then it
- invoked the &man.csh.1; shell instead (we believe SCO first made
- this hack).</para>
-
- <para>What FreeBSD does now is go through a list of loaders, with a
- generic <literal>#!</literal> loader that knows about interpreters
- as the characters which follow to the next whitespace next to
- last, followed by a fallback to
- <filename>/bin/sh</filename>.</para>
-
- <para>For the Linux ABI support, FreeBSD sees the magic number as an
- ELF binary (it makes no distinction between FreeBSD, Solaris,
- Linux, or any other OS which has an ELF image type, at this
- point).</para>
-
- <para>The ELF loader looks for a specialized
- <emphasis>brand</emphasis>, which is a comment section in the ELF
- image, and which is not present on SVR4/Solaris ELF
- binaries.</para>
-
- <para>For Linux binaries to function, they must be
- <emphasis>branded</emphasis> as type <literal>Linux</literal>;
- from &man.brandelf.1;:</para>
-
- <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen>
-
- <para>When this is done, the ELF loader will see the
- <literal>Linux</literal> brand on the file.</para>
-
- <para>When the ELF loader sees the <literal>Linux</literal> brand,
- the loader replaces a pointer in the <literal>proc</literal>
- structure. All system calls are indexed through this pointer (in
- a traditional UNIX system, this would be the
- <literal>sysent[]</literal> structure array, containing the system
- calls). In addition, the process flagged for special handling of
- the trap vector for the signal trampoline code, and sever other
- (minor) fix-ups that are handled by the Linux kernel
- module.</para>
-
- <para>The Linux system call vector contains, among other things, a
- list of <literal>sysent[]</literal> entries whose addresses reside
- in the kernel module.</para>
-
- <para>When a system call is called by the Linux binary, the trap
- code dereferences the system call function pointer off the
- <literal>proc</literal> structure, and gets the Linux, not the
- FreeBSD, system call entry points.</para>
-
- <para>In addition, the Linux mode dynamically
- <emphasis>reroots</emphasis> lookups; this is, in effect, what the
- <literal>union</literal> option to FS mounts
- (<emphasis>not</emphasis> the unionfs!) does. First, an attempt
- is made to lookup the file in the
- <filename>/compat/linux/<replaceable>original-path</replaceable></filename>
- directory, <emphasis>then</emphasis> only if that fails, the
- lookup is done in the
- <filename>/<replaceable>original-path</replaceable></filename>
- directory. This makes sure that binaries that require other
- binaries can run (e.g., the Linux toolchain can all run under
- Linux ABI support). It also means that the Linux binaries can
- load and exec FreeBSD binaries, if there are no corresponding
- Linux binaries present, and that you could place a &man.uname.1;
- command in the <filename>/compat/linux</filename> directory tree
- to ensure that the Linux binaries could not tell they were not
- running on Linux.</para>
-
- <para>In effect, there is a Linux kernel in the FreeBSD kernel; the
- various underlying functions that implement all of the services
- provided by the kernel are identical to both the FreeBSD system
- call table entries, and the Linux system call table entries: file
- system operations, virtual memory operations, signal delivery,
- System V IPC, etc&hellip; The only difference is that FreeBSD
- binaries get the FreeBSD <emphasis>glue</emphasis> functions, and
- Linux binaries get the Linux <emphasis>glue</emphasis> functions
- (most older OS's only had their own <emphasis>glue</emphasis>
- functions: addresses of functions in a static global
- <literal>sysent[]</literal> structure array, instead of addresses
- of functions dereferenced off a dynamically initialized pointer in
- the <literal>proc</literal> structure of the process making the
- call).</para>
-
- <para>Which one is the native FreeBSD ABI? It does not matter.
- Basically the only difference is that (currently; this could
- easily be changed in a future release, and probably will be after
- this) the FreeBSD <emphasis>glue</emphasis> functions are
- statically linked into the kernel, and the Linux glue functions
- can be statically linked, or they can be accessed via a kernel
- module.</para>
-
- <para>Yeah, but is this really emulation? No. It is an ABI
- implementation, not an emulation. There is no emulator (or
- simulator, to cut off the next question) involved.</para>
-
- <para>So why is it sometimes called <quote>Linux emulation</quote>?
- To make it hard to sell FreeBSD! <!-- smiley -->8-). Really, it
- is because the historical implementation was done at a time when
- there was really no word other than that to describe what was
- going on; saying that FreeBSD ran Linux binaries was not true, if
- you did not compile the code in or load a module, and there needed
- to be a word to describe what was being loaded&mdash;hence
- <quote>the Linux emulator</quote>.</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml b/en_US.ISO8859-1/books/handbook/mail/chapter.sgml
deleted file mode 100644
index a03c97a84a..0000000000
--- a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml
+++ /dev/null
@@ -1,486 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mail/chapter.sgml,v 1.20 2000/07/26 05:08:14 hanai Exp $
--->
-
-<chapter id="mail">
- <title>Electronic Mail</title>
-
- <para><emphasis>Rewritten by &a.jim;, 02 December 1999. Original work
- done by &a.wlloyd;.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>Electronic Mail, better known as email, is one of the most
- widely used forms of communication today. Millions of people use
- email every day, and chances are if you are reading this online,
- you fall into that category and probably even have more than one
- email address.</para>
-
- <para>Electronic Mail configuration is the subject of many <link
- linkend="bibliography">System Administration</link> books. If you
- plan on doing anything beyond setting up one mailhost for your
- network, you need industrial strength help.</para>
-
- <para>Some parts of email configuration are controlled in the Domain
- Name System (DNS). If you are going to run your own DNS server, be
- sure to read through the files in <filename>/etc/namedb</filename>
- and <command>man -k named</command>.</para>
- </sect1>
-
- <sect1 id="mail-using">
- <title>Using Electronic Mail</title>
-
- <para>There are five major parts involved in an email exchange. They
- are: <link linkend="mail-mua">the user program</link>, <link
- linkend="mail-mta">the server daemon</link>, <link
- linkend="mail-dns">DNS</link>, <link linkend="mail-receive">a pop or
- IMAP daemon</link>, and of course, <link linkend="mail-host">the
- mailhost itself</link>.</para>
-
- <sect2 id="mail-mua">
- <title>The User Program</title>
-
- <para>This includes command line programs such as
- <application>mutt</application>, <application>pine</application>,
- <application>elm</application>, and
- <application>mail</application>, and GUI programs such as
- <application>balsa</application>,
- <application>xfmail</application> to name a few, and something
- more <quote>sophisticated</quote> like a WWW browser. These
- programs simply pass off the email transactions to the local <link
- linkend="mail-host"><quote>mailhost</quote></link>, either by
- calling one of the <link linkend="mail-mta">server daemons</link>
- available or delivering it over TCP.</para>
- </sect2>
-
- <sect2 id="mail-mta">
- <title>Mailhost Server Daemon</title>
-
- <para>This is usually <application>sendmail</application> (by
- default with FreeBSD) or one of the other mail server daemons such
- as <application>qmail</application>,
- <application>postfix</application>, or
- <application>exim</application>. There are others, but those are
- the most widely used.</para>
-
- <para>The server daemon usually has two functions&mdash;it looks
- after receiving incoming mail and delivers outgoing mail. It does
- not allow you to connect to it via POP or IMAP to read your mail.
- You need an additional <link linkend="mail-receive">daemon</link>
- for that.</para>
-
- <para>Be aware that some older versions of
- <application>sendmail</application> have some serious security
- problems, however as long as you run a current version of it you
- should not have any problems. As always, it is a good idea to
- stay up-to-date with any software you run.</para>
- </sect2>
-
- <sect2 id="mail-dns">
- <title>Email and DNS</title>
-
- <para>The Domain Name System (DNS) and its daemon
- <command>named</command> play a large role in the delivery of
- email. In order to deliver mail from your site to another, the
- server daemon will look up the site in the DNS to determine the
- host that will receive mail for the destination.</para>
-
- <para>It works the same way when you have mail sent to you. The DNS
- contains the database mapping hostname to an IP address, and a
- hostname to mailhost. The IP address is specified in an A record.
- The MX (Mail eXchanger) record specifies the mailhost that will
- receive mail for you. If you do not have an MX record for your
- hostname, the mail will be delivered directly to your host.</para>
- </sect2>
-
- <sect2 id="mail-receive">
- <title>Receiving Mail</title>
-
- <para>Receiving mail for your domain is done by the mail host. It
- will collect mail sent to you and store it for reading or pickup.
- In order to pick the stored mail up, you will need to connect to
- the mail host. This is done by either using POP or IMAP. If you
- want to read mail directly on the mail host, then a POP or IMAP
- server is not needed.</para>
-
- <para>If you want to run a POP or IMAP server, there are two things
- you need to do:</para>
-
- <procedure>
- <step>
- <para>Get a POP or IMAP daemon from the <ulink
- url="../ports/mail.html">Ports Collection</ulink> and install
- it on your system.</para>
- </step>
-
- <step>
- <para>Modify <filename>/etc/inetd.conf</filename> to load the
- POP or IMAP server.</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2 id="mail-host">
- <title>The Mail Host</title>
-
- <para>The mail host is the name given to a server that is
- responsible for delivering and receiving mail for your host, and
- possibly your network.</para>
- </sect2>
- </sect1>
-
- <sect1 id="mail-trouble">
- <title>Troubleshooting</title>
-
- <para>Here are some frequently asked questions and answers. These
- have been migrated from the <ulink url="../FAQ/">FAQ</ulink>.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Why do I have to use the FQDN for hosts on my site?</para>
- </question>
-
- <answer>
- <para>You will probably find that the host is actually in a
- different domain; for example, if you are in
- <hostid role="fqdn">foo.bar.edu</hostid> and you wish to reach
- a host called <hostid>mumble</hostid> in the <hostid
- role="domainname">bar.edu</hostid> domain, you will have to
- refer to it by the fully-qualified domain name, <hostid
- role="fqdn">mumble.bar.edu</hostid>, instead of just
- <hostid>mumble</hostid>.</para>
-
- <para>Traditionally, this was allowed by BSD BIND resolvers.
- However the current version of <application>BIND</application>
- that ships with FreeBSD no longer provides default abbreviations
- for non-fully qualified domain names other than the domain you
- are in. So an unqualified host <hostid>mumble</hostid> must
- either be found as <hostid
- role="fqdn">mumble.foo.bar.edu</hostid>, or it will be searched
- for in the root domain.</para>
-
- <para>This is different from the previous behavior, where the
- search continued across <hostid
- role="domainname">mumble.bar.edu</hostid>, and <hostid
- role="domainname">mumble.edu</hostid>. Have a look at RFC 1535
- for why this was considered bad practice, or even a security
- hole.</para>
-
- <para>As a good workaround, you can place the line:
-
- <programlisting>search foo.bar.edu bar.edu</programlisting>
-
- instead of the previous:
-
- <programlisting>domain foo.bar.edu</programlisting>
-
- into your <filename>/etc/resolv.conf</filename>. However, make
- sure that the search order does not go beyond the
- <quote>boundary between local and public administration</quote>,
- as RFC 1535 calls it.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Sendmail says <errorname>mail loops back to
- myself</errorname></para>
- </question>
-
- <answer>
- <para>This is answered in the sendmail FAQ as follows:</para>
-
- <programlisting>* I am getting <quote>Local configuration error</quote> messages, such as:
-
-553 relay.domain.net config error: mail loops back to myself
-554 &lt;user@domain.net&gt;... Local configuration error
-
-How can I solve this problem?
-
-You have asked mail to the domain (e.g., domain.net) to be
-forwarded to a specific host (in this case, relay.domain.net)
-by using an MX record, but the relay machine does not recognize
-itself as domain.net. Add domain.net to /etc/sendmail.cw
-(if you are using FEATURE(use_cw_file)) or add <quote>Cw domain.net</quote>
-to /etc/sendmail.cf.</programlisting>
-
- <para>The sendmail FAQ is in
- <filename>/usr/src/usr.sbin/sendmail</filename> and is
- recommended reading if you want to do any
- <quote>tweaking</quote> of your mail setup.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How can I do email with a dial-up PPP host?</para>
- </question>
-
- <answer>
- <para>You want to connect a FreeBSD box on a lan, to the
- Internet. The FreeBSD box will be a mail gateway for the lan.
- The PPP connection is non-dedicated.</para>
-
- <para>There are at least two ways to do this.</para>
-
- <para>The other is to use UUCP.</para>
-
- <para>The key is to get a Internet site to provide secondary MX
- service for your domain. For example:</para>
-
- <programlisting>bigco.com. MX 10 bigco.com.
- MX 20 smalliap.com.</programlisting>
-
- <para>Only one host should be specified as the final recipient
- (add <literal>Cw bigco.com</literal> in
- <filename>/etc/sendmail.cf</filename> on bigco.com).</para>
-
- <para>When the senders' <command>sendmail</command> is trying to
- deliver the mail it will try to connect to you over the modem
- link. It will most likely time out because you are not online.
- <command>sendmail</command> will automatically deliver it to the
- secondary MX site, i.e., your Internet provider. The secondary MX
- site will try every
- (<literal>sendmail_flags = -bd -q15m</literal> in
- <filename>/etc/rc.conf</filename>) 15 minutes to connect to
- your host to deliver the mail to the primary MX site.</para>
-
- <para>You might want to use something like this as a login
- script.</para>
-
- <programlisting>#!/bin/sh
-# Put me in /usr/local/bin/pppbigco
-( sleep 60 ; /usr/sbin/sendmail -q ) &amp;
-/usr/sbin/ppp -direct pppbigco</programlisting>
-
- <para>If you are going to create a separate login script for a
- user you could use <command>sendmail -qRbigco.com</command>
- instead in the script above. This will force all mail in your
- queue for bigco.com to be processed immediately.</para>
-
- <para>A further refinement of the situation is as follows.</para>
-
- <para>Message stolen from the &a.isp;.</para>
-
- <programlisting>&gt; we provide the secondary MX for a customer. The customer connects to
-&gt; our services several times a day automatically to get the mails to
-&gt; his primary MX (We do not call his site when a mail for his domains
-&gt; arrived). Our sendmail sends the mailqueue every 30 minutes. At the
-&gt; moment he has to stay 30 minutes online to be sure that all mail is
-&gt; gone to the primary MX.
-&gt;
-&gt; Is there a command that would initiate sendmail to send all the mails
-&gt; now? The user has not root-privileges on our machine of course.
-
-In the <quote>privacy flags</quote> section of sendmail.cf, there is a
-definition Opgoaway,restrictqrun
-
-Remove restrictqrun to allow non-root users to start the queue processing.
-You might also like to rearrange the MXs. We are the 1st MX for our
-customers like this, and we have defined:
-
-# If we are the best MX for a host, try directly instead of generating
-# local config error.
-OwTrue
-
-That way a remote site will deliver straight to you, without trying
-the customer connection. You then send to your customer. Only works for
-<quote>hosts</quote>, so you need to get your customer to name their mail
-machine <quote>customer.com</quote> as well as
-<quote>hostname.customer.com</quote> in the DNS. Just put an A record in
-the DNS for <quote>customer.com</quote>.</programlisting>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 id="mail-advanced">
- <title>Advanced Topics</title>
-
- <para>The following section covers more involved topics such as mail
- configuration and setting up mail for your entire domain.</para>
-
- <sect2 id="mail-config">
- <title>Basic Configuration</title>
-
- <para>Out of the box, you should be able to send email to external
- hosts as long as you have set up
- <filename>/etc/resolv.conf</filename> or are running your own
- name server. If you would like to have mail for your host
- delivered to that specific host, there are two methods:</para>
-
- <itemizedlist>
- <listitem>
- <para>Run your own name server and have your own domain. For
- example, <hostid
- role="domainname">FreeBSD.org</hostid></para>
- </listitem>
-
- <listitem>
- <para>Get mail delivered directly to your host. This is done by
- delivering mail directly to the current DNS name for your
- machine. For example, <hostid
- role="fqdn">example.FreeBSD.org</hostid>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Regardless of which of the above you choose, in order to have
- mail delivered directly to your host, you must have a permanent
- (static) IP address (no dynamic PPP dial-up). If you are behind a
- firewall, it must pass SMTP traffic on to you. If you want to
- receive mail at your host itself, you need to be sure of one of two
- things:</para>
-
- <itemizedlist>
- <listitem>
- <para>Make sure that the MX record in your DNS points to your
- host's IP address.</para>
- </listitem>
-
- <listitem>
- <para>Make sure there is no MX entry in your DNS for your
- host.</para>
- </listitem>
- </itemizedlist>
-
- <para>Either of the above will allow you to receive mail directly at
- your host.</para>
-
- <para>Try this:</para>
-
- <screen>&prompt.root; <userinput>hostname</userinput>
-example.FreeBSD.org
-&prompt.root; <userinput>host example.FreeBSD.org</userinput>
-example.FreeBSD.org has address 204.216.27.XX</screen>
-
- <para>If that is what you see, mail directly to
- <email>yourlogin@example.FreeBSD.org</email> should work without
- problems.</para>
-
- <para>If instead you see something like this:</para>
-
- <screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput>
-example.FreeBSD.org has address 204.216.27.XX
-example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen>
-
- <para>All mail sent to your host (<hostid
- role="fqdn">example.FreeBSD.org</hostid>) will end up being
- collected on <hostid>hub</hostid> under the same username instead
- of being sent directly to your host.</para>
-
- <para>The above information is handled by your DNS server. The DNS
- record that carries mail routing information is the
- <emphasis>M</emphasis>ail e<emphasis>X</emphasis>change entry. If
- no MX record exists, mail will be delivered directly to the host by
- way of its IP address.</para>
-
- <para>The MX entry for <hostid
- role="fqdn">freefall.FreeBSD.org</hostid> at one time looked like
- this:</para>
-
- <programlisting>freefall MX 30 mail.crl.net
-freefall MX 40 agora.rdrop.com
-freefall MX 10 freefall.FreeBSD.org
-freefall MX 20 who.cdrom.com</programlisting>
-
- <para>As you can see, <hostid>freefall</hostid> had many MX entries.
- The lowest MX number is the host that ends up receiving the mail in
- the end while the others will queue mail temporarily if
- <hostid>freefall</hostid> is busy or down.</para>
-
- <para>Alternate MX sites should have separate Internet connections
- from your own in order to be the most useful. Your ISP or other
- friendly site should have no problem providing this service for
- you.</para>
- </sect2>
-
- <sect2 id="mail-domain">
- <title>Mail for your Domain</title>
-
- <para>In order to set up a <quote>mailhost</quote> (a.k.a., mail
- server) you need to have any mail sent to various workstations
- directed to it. Basically, you want to <quote>hijack</quote> any
- mail for your domain (in this case <hostid
- role="fqdn">*.FreeBSD.org</hostid>) and divert it to your mail
- server so your users can check their mail via POP or directly on
- the server.</para>
-
- <para>To make life easiest, a user account with the same
- <emphasis>username</emphasis> should exist on both machines. Use
- <command>adduser</command> to do this.</para>
-
- <para>The mailhost you will be using must be the designated mail
- exchange for each workstation on the network. This is done in
- your DNS configuration like so:</para>
-
- <programlisting>example.FreeBSD.org A 204.216.27.XX ; Workstation
- MX 10 hub.FreeBSD.org ; Mailhost</programlisting>
-
- <para>This will redirect mail for the workstation to the mailhost no
- matter where the A record points. The mail is sent to the MX
- host.</para>
-
- <para>You cannot do this yourself unless you are running a DNS
- server. If you are not, or cannot, run your own DNS server, talk
- to your ISP or whoever does your DNS for you.</para>
-
- <para>If you're doing virtual email hosting, the following
- information will come in handy. For the sake of an example, we
- will assume you have a customer with their own domain, in this
- case <hostid role="domainname">customer1.org</hostid> and you want
- all the mail for <hostid role="domainname">customer1.org</hostid>
- sent to your mailhost, which is named <hostid
- role="fqdn">mail.myhost.com</hostid>. The entry in your DNS
- should look like this:</para>
-
- <programlisting>customer1.org MX 10 mail.myhost.com</programlisting>
-
- <para>You do <emphasis>not</emphasis> need an A record if you only
- want to handle email for the domain.</para>
-
- <note>
- <para>Be aware that this means pinging <hostid
- role="domainname">customer1.org</hostid> will not work unless
- an A record exists for it.</para>
- </note>
-
- <para>The last thing that you must do is tell
- <application>sendmail</application> on your mailhost what domains
- and/or hostnames it should be accepting mail for. There are a few
- different ways this can be done. Either of the following will
- work:</para>
-
- <itemizedlist>
- <listitem>
- <para>Add the hosts to your
- <filename>/etc/sendmail.cw</filename> file if you are using the
- <literal>FEATURE(use_cw_file)</literal>. If you are using
- sendmail 8.10 or higher, the file is
- <filename>/etc/mail/local-host-names</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Add a <literal>Cwyour.host.com</literal> line to your
- <filename>/etc/sendmail.cf</filename> or
- <filename>/etc/mail/sendmail.cf</filename> if you are using
- sendmail 8.10 or higher.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/mailing-lists.ent b/en_US.ISO8859-1/books/handbook/mailing-lists.ent
deleted file mode 100644
index 24b61d9225..0000000000
--- a/en_US.ISO8859-1/books/handbook/mailing-lists.ent
+++ /dev/null
@@ -1,113 +0,0 @@
-<!--
- Names of FreeBSD mailing lists and related software.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mailing-lists.ent,v 1.5 2000/04/17 17:28:47 phantom Exp $
--->
-
-<!ENTITY a.advocacy "FreeBSD advocacy mailing list
- <email>freebsd-advocacy@FreeBSD.org</email>">
-
-<!ENTITY a.announce "FreeBSD announcements mailing list
- <email>freebsd-announce@FreeBSD.org</email>">
-
-<!ENTITY a.bugs "FreeBSD problem reports mailing list
- <email>freebsd-bugs@FreeBSD.org</email>">
-
-<!ENTITY a.chat "FreeBSD chat mailing list
- <email>freebsd-chat@FreeBSD.org</email>">
-
-<!ENTITY a.committers "FreeBSD committer's mailing list
- <email>cvs-committers@FreeBSD.org</email>">
-
-<!ENTITY a.core "FreeBSD core team
- <email>freebsd-core@FreeBSD.org</email>">
-
-<!ENTITY a.current "FreeBSD-current mailing list
- <email>freebsd-current@FreeBSD.org</email>">
-
-<!ENTITY a.cvsall "FreeBSD CVS commit message mailing list
- <email>cvs-all@FreeBSD.org</email>">
-
-<!ENTITY a.database "FreeBSD based Databases mailing list
- <email>freebsd-database@FreeBSD.org</email>">
-
-<!ENTITY a.developers "FreeBSD developers mailing list
- <email>freebsd-developers@FreeBSD.org</email>">
-
-<!ENTITY a.doc "FreeBSD documentation project mailing list
- <email>freebsd-doc@FreeBSD.org</email>">
-
-<!ENTITY a.emulation "FreeBSD-emulation mailing list
- <email>freebsd-emulation@FreeBSD.org</email>">
-
-<!ENTITY a.fs "FreeBSD filesystem project mailing list
- <email>freebsd-fs@FreeBSD.org</email>">
-
-<!ENTITY a.hackers "FreeBSD technical discussions mailing list
- <email>freebsd-hackers@FreeBSD.org</email>">
-
-<!ENTITY a.hardware "FreeBSD hardware and equipment mailing list
- <email>freebsd-hardware@FreeBSD.org</email>">
-
-<!ENTITY a.isdn "FreeBSD ISDN mailing list
- <email>freebsd-isdn@FreeBSD.org</email>">
-
-<!ENTITY a.isp "FreeBSD Internet service provider's mailing list
- <email>freebsd-isp@FreeBSD.org</email>">
-
-<!ENTITY a.java "FreeBSD Java Language mailing list
- <email>freebsd-java@FreeBSD.org</email>">
-
-<!ENTITY a.jobs "FreeBSD related employment mailing list
- <email>freebsd-jobs@FreeBSD.org</email>">
-
-<!ENTITY a.mobile "FreeBSD laptop computer mailing list
- <email>freebsd-mobile@FreeBSD.org</email>">
-
-<!ENTITY a.mozilla "FreeBSD port of the Mozilla browser mailing list
- <email>freebsd-mozilla@FreeBSD.org</email>">
-
-<!ENTITY a.multimedia "FreeBSD multimedia mailing list
- <email>freebsd-multimedia@FreeBSD.org</email>">
-
-<!ENTITY a.net "FreeBSD networking mailing list
- <email>freebsd-net@FreeBSD.org</email>">
-
-<!ENTITY a.newbies "FreeBSD new users mailing list
- <email>freebsd-newbies@FreeBSD.org</email>">
-
-<!ENTITY a.newbus "New Bus Architecture mailing list
- <email>new-bus-arch@bostonradio.org</email>">
-
-<!ENTITY a.ports "FreeBSD ports mailing list
- <email>freebsd-ports@FreeBSD.org</email>">
-
-<!ENTITY a.questions "FreeBSD general questions mailing list
- <email>freebsd-questions@FreeBSD.org</email>">
-
-<!ENTITY a.scsi "FreeBSD SCSI subsystem mailing list
- <email>freebsd-scsi@FreeBSD.org</email>">
-
-<!ENTITY a.security "FreeBSD security mailing list
- <email>freebsd-security@FreeBSD.org</email>">
-
-<!ENTITY a.security-notifications "FreeBSD security notifications mailing list
- <email>freebsd-security-notifications@FreeBSD.org</email>">
-
-<!ENTITY a.small "FreeBSD-small mailing list
- <email>freebsd-small@FreeBSD.org</email>">
-
-<!ENTITY a.smp "FreeBSD symmetric multiprocessing mailing list
- <email>freebsd-smp@FreeBSD.org</email>">
-
-<!ENTITY a.stable "FreeBSD-stable mailing list
- <email>freebsd-stable@FreeBSD.org</email>">
-
-<!ENTITY a.tokenring "FreeBSD tokenring mailing list
- <email>freebsd-tokenring@FreeBSD.org</email>">
-
-<!ENTITY a.www "FreeBSD Webmaster mailing list
- <email>freebsd-www@FreeBSD.org</email>">
-
-<!ENTITY a.majordomo "<email>majordomo@FreeBSD.org</email>">
-
diff --git a/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml b/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml
deleted file mode 100644
index 3fae92387e..0000000000
--- a/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ /dev/null
@@ -1,3785 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml,v 1.114 2001/04/17 01:37:31 dd Exp $
--->
-
-<appendix id="mirrors">
- <title>Obtaining FreeBSD</title>
-
- <sect1>
- <title>CDROM Publishers</title>
-
- <para>FreeBSD is available on CDROM from BSDi:
-
- <address>
- <otheraddr>BSDi</otheraddr>
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>, <state>CA</state> <postcode>94520</postcode>
- <country>USA</country>
- Phone: <phone>+1 925 691-2800</phone>
- Fax: <fax>+1 925 674-0821</fax>
- Email: <email>info@osd.bsdi.com</email>
- WWW: <otheraddr><ulink url="http://www.osd.bsdi.com/">http://www.osd.bsdi.com/</ulink></otheraddr>
- </address></para>
- </sect1>
-
- <sect1 id="mirrors-ftp">
- <title>FTP Sites</title>
-
- <para>The official sources for FreeBSD are available via anonymous FTP
- from:
-
- <blockquote>
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.FreeBSD.org/pub/FreeBSD/</ulink>.</para>
- </blockquote></para>
-
- <para>The <ulink
- url="http://www.freebsdmirrors.org/">FreeBSD mirror
- sites database</ulink> is more accurate than the mirror listing in the
- handbook, as it gets its information from the DNS rather than relying on
- static lists of hosts.</para>
-
- <para>Additionally, FreeBSD is available via anonymous FTP from the
- following mirror sites. If you choose to obtain FreeBSD via anonymous
- FTP, please try to use a site near you.</para>
-
- <para><link linkend="mirrors-ar">Argentina</link>,
- <link linkend="mirrors-au">Australia</link>,
- <link linkend="mirrors-br">Brazil</link>,
- <link linkend="mirrors-ca">Canada</link>,
- <link linkend="mirrors-cn">China</link>,
- <link linkend="mirrors-cz">Czech Republic</link>,
- <link linkend="mirrors-dk">Denmark</link>,
- <link linkend="mirrors-ee">Estonia</link>,
- <link linkend="mirrors-fi">Finland</link>,
- <link linkend="mirrors-fr">France</link>,
- <link linkend="mirrors-de">Germany</link>,
- <link linkend="mirrors-hk">Hong Kong</link>,
- <link linkend="mirrors-hu">Hungary</link>,
- <link linkend="mirrors-ie">Ireland</link>,
- <link linkend="mirrors-il">Israel</link>,
- <link linkend="mirrors-jp">Japan</link>,
- <link linkend="mirrors-kr">Korea</link>,
- <link linkend="mirrors-lt">Lithuania</link>,
- <link linkend="mirrors-nl">Netherlands</link>,
- <link linkend="mirrors-nz">New Zealand</link>,
- <link linkend="mirrors-pl">Poland</link>,
- <link linkend="mirrors-pt">Portugal</link>,
- <link linkend="mirrors-ru">Russia</link>,
- <link linkend="mirrors-sa">Saudi Arabia</link>,
- <link linkend="mirrors-za">South Africa</link>,
- <link linkend="mirrors-es">Spain</link>,
- <link linkend="mirrors-sk">Slovak Republic</link>,
- <link linkend="mirrors-si">Slovenia</link>,
- <link linkend="mirrors-se">Sweden</link>,
- <link linkend="mirrors-tw">Taiwan</link>,
- <link linkend="mirrors-th">Thailand</link>,
- <link linkend="mirrors-uk">UK</link>,
- <link linkend="mirrors-ua">Ukraine</link>,
- <link linkend="mirrors-us">USA</link>.</para>
-
- <variablelist>
- <varlistentry>
- <term><anchor id="mirrors-ar">Argentina</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@ar.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-au">Australia</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@au.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.au.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.au.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-br">Brazil</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@br.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp5.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/">ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ca">Canada</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@ca.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-cn">China</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>phj@cn.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/">ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-cz">Czech Republic</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@cz.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/">ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/</ulink> Contact: <email>calda@dzungle.ms.mff.cuni.cz</email></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-dk">Denmark</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@dk.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/">ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ee">Estonia</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@ee.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-fi">Finland</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@fi.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/">ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-fr">France</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@fr.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-de">Germany</term>
-
- <listitem>
- <para>In case of problems, please contact the mirror admins
- <email>de-bsd-hubs@de.FreeBSD.org </email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/">ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-hk">Hong Kong</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.hk.super.net/pub/FreeBSD/">ftp://ftp.hk.super.net/pub/FreeBSD/</ulink> Contact: <email>ftp-admin@HK.Super.NET</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-hu">Hungary</term>
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>mohacsi@ik.bme.hu</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/">ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
-
- <varlistentry>
- <term><anchor id="mirrors-ie">Ireland</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@ie.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-il">Israel</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@il.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.il.FreeBSD.org/pub/FreeBSD/">ftp://ftp.il.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.il.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.il.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-jp">Japan</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@jp.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-kr">Korea</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@kr.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp3.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp4.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp5.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp6.kr.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.kr.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-lt">Lithuania</term>
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@lt.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/">ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-nl">Netherlands</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@nl.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/">ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-nz">New Zealand</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@nz.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/">ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-pl">Poland</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@pl.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/">ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-pt">Portugal</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@pt.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.pt.FreeBSD.org/pub/FreeBSD/">ftp://ftp.pt.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.pt.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.pt.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ru">Russia</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@ru.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-sa">Saudi Arabia</term>
- <listitem>
- <para>In case of problems, please contact
- <email>ftpadmin@isu.net.sa</email></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/">ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
-
- <varlistentry>
- <term><anchor id="mirrors-za">South Africa</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@za.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/">ftp://ftp.za.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.za.FreeBSD.org/FreeBSD/">ftp://ftp3.za.FreeBSD.org/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-sk">Slovak Republic</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@sk.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/">ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><anchor id="mirrors-si">Slovenia</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@si.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.si.FreeBSD.org/pub/FreeBSD/">ftp://ftp.si.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-es">Spain</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@es.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="ftp://ftp.es.FreeBSD.org/pub/FreeBSD/">ftp://ftp.es.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-se">Sweden</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@se.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.se.FreeBSD.org/pub/FreeBSD/">ftp://ftp.se.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-tw">Taiwan</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@tw.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-th">Thailand</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.nectec.or.th/pub/FreeBSD/">ftp://ftp.nectec.or.th/pub/FreeBSD/</ulink> Contact: <email>ftpadmin@ftp.nectec.or.th</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ua">Ukraine</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/">ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/</ulink> Contact: <email>freebsd-mnt@lucky.net</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-uk">UK</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@uk.FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-us">USA</term>
-
- <listitem>
- <para>In case of problems, please contact the hostmaster
- <email>hostmaster@FreeBSD.org</email> for this domain.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp2.FreeBSD.org/pub/FreeBSD/">ftp://ftp2.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp3.FreeBSD.org/pub/FreeBSD/">ftp://ftp3.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp4.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp5.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp6.FreeBSD.org/pub/FreeBSD/">ftp://ftp6.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp7.FreeBSD.org/pub/FreeBSD/">ftp://ftp7.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp8.FreeBSD.org/pub/FreeBSD/">ftp://ftp8.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp9.FreeBSD.org/pub/os/FreeBSD/">ftp://ftp9.FreeBSD.org/pub/os/FreeBSD/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp10.FreeBSD.org/pub/FreeBSD/">ftp://ftp10.FreeBSD.org/pub/FreeBSD/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="anoncvs">
- <title>Anonymous CVS</title>
-
- <sect2>
- <title><anchor id="anoncvs-intro">Introduction</title>
-
- <para>Anonymous CVS (or, as it is otherwise known,
- <emphasis>anoncvs</emphasis>) is a feature provided by the CVS
- utilities bundled with FreeBSD for synchronizing with a remote
- CVS repository. Among other things, it allows users of FreeBSD
- to perform, with no special privileges, read-only CVS operations
- against one of the FreeBSD project's official anoncvs servers.
- To use it, one simply sets the <envar>CVSROOT</envar>
- environment variable to point at the appropriate anoncvs server,
- provides the well-known password <quote>anoncvs</quote> with the
- <command>cvs login</command> command, and then uses the
- &man.cvs.1; command to access it like any local
- repository.</para>
-
- <para>While it can also be said that the <link
- linkend="cvsup">CVSup</link> and <emphasis>anoncvs</emphasis>
- services both perform essentially the same function, there are
- various trade-offs which can influence the user's choice of
- synchronization methods. In a nutshell,
- <application>CVSup</application> is much more efficient in its
- usage of network resources and is by far the most technically
- sophisticated of the two, but at a price. To use
- <application>CVSup</application>, a special client must first be
- installed and configured before any bits can be grabbed, and
- then only in the fairly large chunks which
- <application>CVSup</application> calls
- <emphasis>collections</emphasis>.</para>
-
- <para><application>Anoncvs</application>, by contrast, can be used
- to examine anything from an individual file to a specific
- program (like <command>ls</command> or <command>grep</command>)
- by referencing the CVS module name. Of course,
- <application>anoncvs</application> is also only good for
- read-only operations on the CVS repository, so if it's your
- intention to support local development in one repository shared
- with the FreeBSD project bits then
- <application>CVSup</application> is really your only
- option.</para>
- </sect2>
-
- <sect2>
- <title><anchor id="anoncvs-usage">Using Anonymous CVS</title>
-
- <para>Configuring &man.cvs.1; to use an Anonymous CVS repository
- is a simple matter of setting the <envar>CVSROOT</envar>
- environment variable to point to one of the FreeBSD project's
- <emphasis>anoncvs</emphasis> servers. At the time of this
- writing, the following servers are available:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>USA</emphasis>:
- :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
- (Use <command>cvs login</command> and enter the password
- <quote>anoncvs</quote> when prompted.)</para>
- </listitem>
- </itemizedlist>
-
- <para>Since CVS allows one to <quote>check out</quote> virtually
- any version of the FreeBSD sources that ever existed (or, in
- some cases, will exist <!-- smiley -->:-), you need to be
- familiar with the revision (<option>-r</option>) flag to
- &man.cvs.1; and what some of the permissible values for it in
- the FreeBSD Project repository are.</para>
-
- <para>There are two kinds of tags, revision tags and branch tags.
- A revision tag refers to a specific revision. Its meaning stays
- the same from day to day. A branch tag, on the other hand,
- refers to the latest revision on a given line of development, at
- any given time. Because a branch tag does not refer to a
- specific revision, it may mean something different tomorrow than
- it means today.</para>
-
- <para>Here are the branch tags that users might be interested
- in (keep in mind that the only tags valid for the <link
- linkend="ports">ports collection</link> is
- <literal>HEAD</literal>).</para>
-
- <variablelist>
- <varlistentry>
- <term>HEAD</term>
-
- <listitem>
- <para>Symbolic name for the main line, or FreeBSD-CURRENT.
- Also the default when no revision is specified.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_4</term>
-
- <listitem>
- <para>The line of development for FreeBSD-4.X, also known
- as FreeBSD-STABLE.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_3</term>
-
- <listitem>
- <para>The line of development for FreeBSD-3.X, also known
- as 3.X-STABLE.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2</term>
-
- <listitem>
- <para>The line of development for FreeBSD-2.2.X, also known
- as 2.2-STABLE. This branch is mostly obsolete.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Here are the revision tags that users might be interested
- in. Again, none of these are valid for the ports collection
- since the ports collection does not have multiple
- revisions.</para>
-
- <variablelist>
- <varlistentry>
- <term>RELENG_4_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD 4.2.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_4_1_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD 4.1.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_4_1_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD 4.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_4_0_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD 4.0.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_3_5_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.5.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_3_4_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.4.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_3_3_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.3.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_3_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.2.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_3_1_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_3_0_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.0.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_8_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.8.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_7_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.7.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_6_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.6.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_5_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.5.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_2_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.2.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.0.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>When you specify a branch tag, you normally receive the
- latest versions of the files on that line of development. If
- you wish to receive some past version, you can do so by
- specifying a date with the <option>-D date</option> flag.
- See the &man.cvs.1; man page for more details.</para>
- </sect2>
-
- <sect2>
- <title>Examples</title>
-
- <para>While it really is recommended that you read the manual page
- for &man.cvs.1; thoroughly before doing anything, here are some
- quick examples which essentially show how to use Anonymous
- CVS:</para>
-
- <example>
- <title>Checking out something from -CURRENT (&man.ls.1;) and
- deleting it again:</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
-&prompt.user; <userinput>cvs login</userinput>
-<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
-&prompt.user; <userinput>cvs co ls</userinput>
-&prompt.user; <userinput>cvs release -d ls</userinput>
-&prompt.user; <userinput>cvs logout</userinput>
- </screen>
- </example>
-
- <example>
- <title>Checking out the version of &man.ls.1; in the 3.X-STABLE
- branch:</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
-&prompt.user; <userinput>cvs login</userinput>
-<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
-&prompt.user; <userinput>cvs co -rRELENG_3 ls</userinput>
-&prompt.user; <userinput>cvs release -d ls</userinput>
-&prompt.user; <userinput>cvs logout</userinput>
- </screen>
- </example>
-
- <example>
- <title>Creating a list of changes (as unified diffs) to &man.ls.1;</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
-&prompt.user; <userinput>cvs login</userinput>
-<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
-&prompt.user; <userinput>cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls</userinput>
-&prompt.user; <userinput>cvs logout</userinput>
- </screen>
- </example>
-
- <example>
- <title>Finding out what other module names can be used:</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
-&prompt.user; <userinput>cvs login</userinput>
-<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
-&prompt.user; <userinput>cvs co modules</userinput>
-&prompt.user; <userinput>more modules/modules</userinput>
-&prompt.user; <userinput>cvs release -d modules</userinput>
-&prompt.user; <userinput>cvs logout</userinput>
- </screen>
- </example>
- </sect2>
-
- <sect2>
- <title>Other Resources</title>
-
- <para>The following additional resources may be helpful in learning
- CVS:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">CVS Tutorial</ulink> from Cal Poly.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.cyclic.com/">Cyclic Software</ulink>,
- commercial maintainers of CVS.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSWeb</ulink> is
- the FreeBSD Project web interface for CVS.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
-
- <sect1 id="ctm">
- <title>Using CTM</title>
-
- <para><application>CTM</application> is a method for keeping a
- remote directory tree in sync with a central one. It has been
- developed for usage with FreeBSD's source trees, though other
- people may find it useful for other purposes as time goes by.
- Little, if any, documentation currently exists at this time on the
- process of creating deltas, so talk to &a.phk; for more
- information should you wish to use <application>CTM</application>
- for other things.</para>
-
- <sect2>
- <title>Why should I use <application>CTM</application>?</title>
-
- <para><application>CTM</application> will give you a local copy of
- the FreeBSD source trees. There are a number of
- &ldquo;flavors&rdquo; of the tree available. Whether you wish
- to track the entire CVS tree or just one of the branches,
- <application>CTM</application> can provide you the information.
- If you are an active developer on FreeBSD, but have lousy or
- non-existent TCP/IP connectivity, or simply wish to have the
- changes automatically sent to you,
- <application>CTM</application> was made for you. You will need
- to obtain up to three deltas per day for the most active
- branches. However, you should consider having them sent by
- automatic email. The sizes of the updates are always kept as
- small as possible. This is typically less than 5K, with an
- occasional (one in ten) being 10-50K and every now and then a
- biggie of 100K+ or more coming around.</para>
-
- <para>You will also need to make yourself aware of the various
- caveats related to working directly from the development sources
- rather than a pre-packaged release. This is particularly true
- if you choose the &ldquo;current&rdquo; sources. It is
- recommended that you read <link linkend="current">Staying
- current with FreeBSD</link>.</para>
- </sect2>
-
- <sect2>
- <title>What do I need to use
- <application>CTM</application>?</title>
-
- <para>You will need two things: The <application>CTM</application>
- program, and the initial deltas to feed it (to get up to
- &ldquo;current&rdquo; levels).</para>
-
- <para>The <application>CTM</application> program has been part of
- FreeBSD ever since version 2.0 was released, and lives in
- <filename>/usr/src/usr.sbin/CTM</filename> if you have a copy
- of the source available.</para>
-
- <para>If you are running a pre-2.0 version of FreeBSD, you can
- fetch the current <application>CTM</application> sources
- directly from:</para>
-
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm/">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm/</ulink></para>
-
- <para>The &ldquo;deltas&rdquo; you feed
- <application>CTM</application> can be had two ways, FTP or
- email. If you have general FTP access to the Internet then the
- following FTP sites support access to
- <application>CTM</application>:</para>
-
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para>
-
- <para>or see section <link
- linkend="mirrors-ctm">mirrors</link>.</para>
-
- <para>FTP the relevant directory and fetch the
- <filename>README</filename> file, starting from there.</para>
-
- <para>If you wish to get your deltas via email:</para>
-
- <para>Send email to &a.majordomo; to subscribe to one of the
- <application>CTM</application> distribution lists.
- &ldquo;ctm-cvs-cur&rdquo; supports the entire cvs tree.
- &ldquo;ctm-src-cur&rdquo; supports the head of the development
- branch. &ldquo;ctm-src-2_2&rdquo; supports the 2.2 release
- branch, etc.. (If you do not know how to subscribe yourself
- using majordomo, send a message first containing the word
- <literal>help</literal> &mdash; it will send you back usage
- instructions.)</para>
-
- <para>When you begin receiving your <application>CTM</application>
- updates in the mail, you may use the
- <command>ctm_rmail</command> program to unpack and apply them.
- You can actually use the <command>ctm_rmail</command> program
- directly from a entry in <filename>/etc/aliases</filename> if
- you want to have the process run in a fully automated fashion.
- Check the <command>ctm_rmail</command> man page for more
- details.</para>
-
- <note>
- <para>No matter what method you use to get the
- <application>CTM</application> deltas, you should subscribe to
- the <email>ctm-announce@FreeBSD.org</email> mailing list. In
- the future, this will be the only place where announcements
- concerning the operations of the
- <application>CTM</application> system will be posted. Send an
- email to &a.majordomo; with a single line of
- <literal>subscribe ctm-announce</literal> to get added to the
- list.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Using <application>CTM</application> for the first
- time</title>
-
- <para>Before you can start using <application>CTM</application>
- deltas, you will need to get to a starting point for the deltas
- produced subsequently to it.</para>
-
- <para>First you should determine what you already have. Everyone
- can start from an &ldquo;empty&rdquo; directory. You must use
- an initial &ldquo;Empty&rdquo; delta to start off your
- <application>CTM</application> supported tree. At some point it
- is intended that one of these &ldquo;started&rdquo; deltas be
- distributed on the CD for your convenience, however, this does
- not currently happen.</para>
-
- <para>Since the trees are many tens of megabytes, you should
- prefer to start from something already at hand. If you have a
- -RELEASE CD, you can copy or extract an initial source from it.
- This will save a significant transfer of data.</para>
-
- <para>You can recognize these &ldquo;starter&rdquo; deltas by the
- <literal>X</literal> appended to the number
- (<filename>src-cur.3210XEmpty.gz</filename> for instance). The
- designation following the <filename>X</filename> corresponds to
- the origin of your initial &ldquo;seed&rdquo;.
- <filename>Empty</filename> is an empty directory. As a rule a
- base transition from <filename>Empty</filename> is produced
- every 100 deltas. By the way, they are large! 25 to 30
- Megabytes of <command>gzip</command>'d data is common for the
- <filename>XEmpty</filename> deltas.</para>
-
- <para>Once you've picked a base delta to start from, you will also
- need all deltas with higher numbers following it.</para>
- </sect2>
-
- <sect2>
- <title>Using <application>CTM</application> in your daily
- life</title>
-
- <para>To apply the deltas, simply say:</para>
-
- <screen>&prompt.root; <userinput>cd /where/ever/you/want/the/stuff</userinput>
-&prompt.root; <userinput>ctm -v -v /where/you/store/your/deltas/src-xxx.*</userinput></screen>
-
- <para><application>CTM</application> understands deltas which have
- been put through <command>gzip</command>, so you do not need to
- gunzip them first, this saves disk space.</para>
-
- <para>Unless it feels very secure about the entire process,
- <application>CTM</application> will not touch your tree. To
- verify a delta you can also use the <option>-c</option> flag and
- <application>CTM</application> will not actually touch your
- tree; it will merely verify the integrity of the delta and see
- if it would apply cleanly to your current tree.</para>
-
- <para>There are other options to <application>CTM</application>
- as well, see the manual pages or look in the sources for more
- information.</para>
-
- <para>That is really all there is to it. Every time you get a new
- delta, just run it through <application>CTM</application> to
- keep your sources up to date.</para>
-
- <para>Do not remove the deltas if they are hard to download again.
- You just might want to keep them around in case something bad
- happens. Even if you only have floppy disks, consider using
- <command>fdwrite</command> to make a copy.</para>
- </sect2>
-
- <sect2>
- <title>Keeping your local changes</title>
-
- <para>As a developer one would like to experiment with and change
- files in the source tree. <application>CTM</application>
- supports local modifications in a limited way: before checking
- for the presence of a file <filename>foo</filename>, it first
- looks for <filename>foo.ctm</filename>. If this file exists,
- CTM will operate on it instead of
- <filename>foo</filename>.</para>
-
- <para>This behavior gives us a simple way to maintain local
- changes: simply copy the files you plan to modify to the
- corresponding file names with a <filename>.ctm</filename>
- suffix. Then you can freely hack the code, while CTM keeps the
- <filename>.ctm</filename> file up-to-date.</para>
- </sect2>
-
- <sect2>
- <title>Other interesting <application>CTM</application> options</title>
-
- <sect3>
- <title>Finding out exactly what would be touched by an
- update</title>
-
- <para>You can determine the list of changes that
- <application>CTM</application> will make on your source
- repository using the <option>-l</option> option to
- <application>CTM</application>.</para>
-
- <para>This is useful if you would like to keep logs of the
- changes, pre- or post- process the modified files in any
- manner, or just are feeling a tad paranoid
- <!-- smiley -->:-).</para>
- </sect3>
-
- <sect3>
- <title>Making backups before updating</title>
-
- <para>Sometimes you may want to backup all the files that would
- be changed by a <application>CTM</application> update.</para>
-
- <para>Specifying the <option>-B backup-file</option> option
- causes <application>CTM</application> to backup all files that
- would be touched by a given <application>CTM</application>
- delta to <filename>backup-file</filename>.</para>
- </sect3>
-
- <sect3>
- <title>Restricting the files touched by an update</title>
-
- <para>Sometimes you would be interested in restricting the scope
- of a given <application>CTM</application> update, or may be
- interested in extracting just a few files from a sequence of
- deltas.</para>
-
- <para>You can control the list of files that
- <application>CTM</application> would operate on by specifying
- filtering regular expressions using the <option>-e</option>
- and <option>-x</option> options.</para>
-
- <para>For example, to extract an up-to-date copy of
- <filename>lib/libc/Makefile</filename> from your collection of
- saved CTM deltas, run the commands:</para>
-
- <screen>&prompt.root; <userinput>cd /where/ever/you/want/to/extract/it/</userinput>
-&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen>
-
- <para>For every file specified in a
- <application>CTM</application> delta, the <option>-e</option>
- and <option>-x</option> options are applied in the order given
- on the command line. The file is processed by
- <application>CTM</application> only if it is marked as
- eligible after all the <option>-e</option> and
- <option>-x</option> options are applied to it.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Future plans for <application>CTM</application></title>
-
- <para>Tons of them:</para>
-
- <itemizedlist>
- <listitem>
- <para>Use some kind of authentication into the CTM system, so
- as to allow detection of spoofed CTM updates.</para>
- </listitem>
-
- <listitem>
- <para>Clean up the options to <application>CTM</application>,
- they became confusing and counter intuitive.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Miscellaneous stuff</title>
-
- <para>There is a sequence of deltas for the
- <literal>ports</literal> collection too, but interest has not
- been all that high yet. Tell me if you want an email list for
- that too and we will consider setting it up.</para>
- </sect2>
-
- <sect2 id="mirrors-ctm">
- <title>CTM mirrors</title>
-
- <para><link linkend="ctm">CTM</link>/FreeBSD is available via anonymous
- FTP from the following mirror sites. If you choose to obtain CTM via
- anonymous FTP, please try to use a site near you.</para>
-
- <para>In case of problems, please contact &a.phk;.</para>
-
- <variablelist>
- <varlistentry>
- <term>California, Bay Area, official source</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Germany, Trier</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/CTM/">ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/CTM/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>South Africa, backup server for old deltas</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Taiwan/R.O.C, Chiayi</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- url="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ctm3.tw.FreeBSD.org/pub/freebsd/CTM/</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>If you did not find a mirror near to you or the mirror is
- incomplete, try <ulink url="http://ftpsearch.ntnu.no/">FTP
- search</ulink> at <ulink
- url="http://ftpsearch.ntnu.no/ftpsearch/">http://ftpsearch.ntnu.no/ftpsearch</ulink>.
- FTP search is a great free archie server in Trondheim, Norway.</para>
- </sect2></sect1>
-
- <sect1 id="cvsup">
- <title>Using CVSup</title>
-
- <sect2 id="cvsup-intro">
- <title>Introduction</title>
-
- <para><application>CVSup</application> is a software package for
- distributing and updating source trees from a master CVS
- repository on a remote server host. The FreeBSD sources are
- maintained in a CVS repository on a central development machine
- in California. With <application>CVSup</application>, FreeBSD
- users can easily keep their own source trees up to date.</para>
-
- <para><application>CVSup</application> uses the so-called
- <emphasis>pull</emphasis> model of updating. Under the pull
- model, each client asks the server for updates, if and when they
- are wanted. The server waits passively for update requests from
- its clients. Thus all updates are instigated by the client.
- The server never sends unsolicited updates. Users must either
- run the <application>CVSup</application> client manually to get
- an update, or they must set up a <command>cron</command> job to
- run it automatically on a regular basis.</para>
-
- <para>The term <application>CVSup</application>, capitalized just
- so, refers to the entire software package. Its main components
- are the client <command>cvsup</command> which runs on each
- user's machine, and the server <command>cvsupd</command> which
- runs at each of the FreeBSD mirror sites.</para>
-
- <para>As you read the FreeBSD documentation and mailing lists, you
- may see references to <application>sup</application>.
- <application>Sup</application> was the predecessor of
- <application>CVSup</application>, and it served a similar
- purpose.<application>CVSup</application> is in used in much the
- same way as sup and, in fact, uses configuration files which are
- backward-compatible with <command>sup</command>'s.
- <application>Sup</application> is no longer used in the FreeBSD
- project, because <application>CVSup</application> is both faster
- and more flexible.</para>
- </sect2>
-
- <sect2 id="cvsup-install">
- <title>Installation</title>
-
- <para>The easiest way to install <application>CVSup</application>
- is to use the <filename>net/cvsup-bin</filename> port
- from the FreeBSD <link linkend="ports">ports collection</link>.
- If you prefer to build <application>CVSup</application> from
- source, you can use the <filename>net/cvsup</filename>
- port instead. But be forewarned: the
- <filename>net/cvsup</filename> port depends on the Modula-3
- system, which takes a substantial amount of time, memory, and
- disk space to build.</para>
-
- <para>If you do not know anything about cvsup at all and want a
- single package which will install it, set up the configuration
- file and start the transfer via a pointy-clicky type of
- interface, then get the <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz">cvsupit</ulink>
- package. Just hand it to &man.pkg.add.1; and it will lead you
- through the configuration process in a menu-oriented
- fashion.</para>
- </sect2>
-
- <sect2 id="cvsup-config">
- <title>CVSup Configuration</title>
-
- <para><application>CVSup</application>'s operation is controlled
- by a configuration file called the <filename>supfile</filename>.
- There are some sample <filename>supfiles</filename> in the
- directory <ulink
- url="file:/usr/share/examples/cvsup/">/usr/share/examples/cvsup/</ulink>.</para>
-
- <para>The information in a <filename>supfile</filename> answers
- the following questions for cvsup:</para>
-
- <itemizedlist>
- <listitem>
- <para><link linkend="cvsup-config-files">Which files do you
- want to receive?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-vers">Which versions of them
- do you want?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-where">Where do you want to
- get them from?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-dest">Where do you want to
- put them on your own machine?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-status">Where do you want to
- put your status files?</link></para>
- </listitem>
- </itemizedlist>
-
- <para>In the following sections, we will construct a typical
- <filename>supfile</filename> by answering each of these
- questions in turn. First, we describe the overall structure of
- a <filename>supfile</filename>.</para>
-
- <para>A <filename>supfile</filename> is a text file. Comments
- begin with <literal>#</literal> and extend to the end of the
- line. Lines that are blank and lines that contain only
- comments are ignored.</para>
-
- <para>Each remaining line describes a set of files that the user
- wishes to receive. The line begins with the name of a
- <quote>collection</quote>, a logical grouping of files defined by
- the server. The name of the collection tells the server which
- files you want. After the collection name come zero or more
- fields, separated by white space. These fields answer the
- questions listed above. There are two types of fields: flag
- fields and value fields. A flag field consists of a keyword
- standing alone, e.g., <literal>delete</literal> or
- <literal>compress</literal>. A value field also begins with a
- keyword, but the keyword is followed without intervening white
- space by <literal>=</literal> and a second word. For example,
- <literal>release=cvs</literal> is a value field.</para>
-
- <para>A <filename>supfile</filename> typically specifies more than
- one collection to receive. One way to structure a
- <filename>supfile</filename> is to specify all of the relevant
- fields explicitly for each collection. However, that tends to
- make the <filename>supfile</filename> lines quite long, and it
- is inconvenient because most fields are the same for all of the
- collections in a <filename>supfile</filename>.
- <application>CVSup</application> provides a defaulting mechanism
- to avoid these problems. Lines beginning with the special
- pseudo-collection name <literal>*default</literal> can be used
- to set flags and values which will be used as defaults for the
- subsequent collections in the <filename>supfile</filename>. A
- default value can be overridden for an individual collection, by
- specifying a different value with the collection itself.
- Defaults can also be changed or augmented in mid-supfile by
- additional <literal>*default</literal> lines.</para>
-
- <para>With this background, we will now proceed to construct a
- <filename>supfile</filename> for receiving and updating the main
- source tree of <link
- linkend="current">FreeBSD-CURRENT</link>.</para>
-
- <itemizedlist>
- <listitem>
- <para><anchor id="cvsup-config-files">Which files do you want
- to receive?</para>
-
- <para>The files available via <application>CVSup</application>
- are organized into named groups called
- <quote>collections</quote>. The collections that are
- available are described <link
- linkend="cvsup-collec">here</link>. In this example, we
- wish to receive the entire main source tree for the FreeBSD
- system. There is a single large collection
- <literal>src-all</literal> which will give us all of that.
- As a first step toward constructing our
- <filename>supfile</filename>, we
- simply list the collections, one per line (in this case,
- only one line):</para>
-
- <programlisting>src-all</programlisting>
- </listitem>
-
- <listitem>
- <para><anchor id="cvsup-config-vers">Which version(s) of them
- do you want?</para>
-
- <para>With <application>CVSup</application>, you can receive
- virtually any version of the sources that ever existed.
- That is possible because the cvsupd server works directly
- from the CVS repository, which contains all of the versions.
- You specify which one of them you want using the
- <literal>tag=</literal> and <option>date=</option> value
- fields.</para>
-
- <warning>
- <para>Be very careful to specify any <literal>tag=</literal>
- fields correctly. Some tags are valid only for certain
- collections of files. If you specify an incorrect or
- misspelled tag, CVSup will delete files which you probably
- do not want deleted. In particular, use <emphasis>only
- </emphasis> <literal>tag=.</literal> for the
- <literal>ports-*</literal> collections.</para>
- </warning>
-
- <para>The <literal>tag=</literal> field names a symbolic tag
- in the repository. There are two kinds of tags, revision
- tags and branch tags. A revision tag refers to a specific
- revision. Its meaning stays the same from day to day. A
- branch tag, on the other hand, refers to the latest revision
- on a given line of development, at any given time. Because
- a branch tag does not refer to a specific revision, it may
- mean something different tomorrow than it means
- today.</para>
-
- <para>Here are the branch tags that users might be interested
- in. Keep in mind that only the <literal>tag=.</literal> is
- relevant for the ports collection.</para>
-
- <variablelist>
- <varlistentry>
- <term>tag=.</term>
-
- <listitem>
- <para>The main line of development, also known as
- FreeBSD-CURRENT.</para>
-
- <note>
- <para>The <literal>.</literal> is not punctuation; it
- is the name of the tag. Valid for all
- collections.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_4</term>
-
- <listitem>
- <para>The line of development for FreeBSD-4.X, also known as
- FreeBSD-STABLE.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_3</term>
-
- <listitem>
- <para>The line of development for FreeBSD-3.X</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2</term>
-
- <listitem>
- <para>The line of development for FreeBSD-2.2.X, also
- known as 2.2-STABLE.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Here are the revision tags that users might be interested
- in. Again, these are not valid for the ports
- collection.</para>
-
- <variablelist>
- <varlistentry>
- <term>tag=RELENG_4_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-4.2.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_4_1_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-4.1.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_4_1_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-4.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_4_0_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-4.0.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_3_5_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.5.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_3_4_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.4.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_3_3_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.3.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_3_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.2.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_3_1_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_3_0_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-3.0.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2_8_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.8.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2_7_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.7.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2_6_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.6.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2_5_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.5.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2_2_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.2.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.1.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tag=RELENG_2_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.0.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <warning>
- <para>Be very careful to type the tag name exactly as shown.
- <application>CVSup</application> cannot distinguish
- between valid and invalid tags. If you misspell the tag,
- <application>CVSup</application> will behave as though you
- had specified a valid tag which happens to refer to no
- files at all. It will delete your existing sources in
- that case.</para>
- </warning>
-
- <para>When you specify a branch tag, you normally receive the
- latest versions of the files on that line of development.
- If you wish to receive some past version, you can do so by
- specifying a date with the <option>date=</option> value
- field. The &man.cvsup.1; manual page explains how to do
- that.</para>
-
- <para>For our example, we wish to receive FreeBSD-CURRENT. We
- add this line at the beginning of our
- <filename>supfile</filename>:</para>
-
- <programlisting>*default tag=.</programlisting>
-
- <para>There is an important special case that comes into play
- if you specify neither a <literal>tag=</literal> field nor a
- <literal>date=</literal> field. In that case, you receive
- the actual RCS files directly from the server's CVS
- repository, rather than receiving a particular version.
- Developers generally prefer this mode of operation. By
- maintaining a copy of the repository itself on their
- systems, they gain the ability to browse the revision
- histories and examine past versions of files. This gain is
- achieved at a large cost in terms of disk space,
- however.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="cvsup-config-where">Where do you want to get
- them from?</para>
-
- <para>We use the <literal>host=</literal> field to tell
- <command>cvsup</command> where to obtain its updates. Any
- of the <link linkend="cvsup-mirrors">CVSup mirror
- sites</link> will do, though you should try to select one
- that is close to you in cyberspace. In this example we will
- use a fictional FreeBSD distribution site,
- <hostid role="fqdn">cvsup666.FreeBSD.org</hostid>:</para>
-
- <programlisting>*default host=cvsup666.FreeBSD.org</programlisting>
-
- <para>You will need to change the host to one that actually
- exists before running CVSup. On any particular run of
- <command>cvsup</command>, you can override the host setting
- on the command line, with <option>-h
- <replaceable>hostname</replaceable></option>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="cvsup-config-dest">Where do you want to put
- them on your own machine?</para>
-
- <para>The <literal>prefix=</literal> field tells
- <command>cvsup</command> where to put the files it receives.
- In this example, we will put the source files directly into
- our main source tree, <filename>/usr/src</filename>. The
- <filename>src</filename> directory is already implicit in
- the collections we have chosen to receive, so this is the
- correct specification:</para>
-
- <programlisting>*default prefix=/usr</programlisting>
- </listitem>
-
- <listitem>
- <para><anchor id="cvsup-config-status">Where should
- <command>cvsup</command> maintain its status files?</para>
-
- <para>The cvsup client maintains certain status files in what
- is called the <quote>base</quote> directory. These files
- help <application>CVSup</application> to work more
- efficiently, by keeping track of which updates you have
- already received. We will use the standard base directory,
- <filename>/usr/local/etc/cvsup</filename>:</para>
-
- <programlisting>*default base=/usr/local/etc/cvsup</programlisting>
-
- <para>This setting is used by default if it is not specified
- in the <filename>supfile</filename>, so we actually do not
- need the above line.</para>
-
- <para>If your base directory does not already exist, now would
- be a good time to create it. The <command>cvsup</command>
- client will refuse to run if the base directory does not
- exist.</para>
- </listitem>
-
- <listitem>
- <para>Miscellaneous <filename>supfile</filename>
- settings:</para>
-
- <para>There is one more line of boiler plate that normally
- needs to be present in the
- <filename>supfile</filename>:</para>
-
- <programlisting>*default release=cvs delete use-rel-suffix compress</programlisting>
-
- <para><literal>release=cvs</literal> indicates that the server
- should get its information out of the main FreeBSD CVS
- repository. This is virtually always the case, but there
- are other possibilities which are beyond the scope of this
- discussion.</para>
-
- <para><literal>delete</literal> gives
- <application>CVSup</application> permission to delete files.
- You should always specify this, so that
- <application>CVSup</application> can keep your source tree
- fully up-to-date. <application>CVSup</application> is
- careful to delete only those files for which it is
- responsible. Any extra files you happen to have will be
- left strictly alone.</para>
-
- <para><literal>use-rel-suffix</literal> is ... arcane. If you
- really want to know about it, see the &man.cvsup.1; manual
- page. Otherwise, just specify it and do not worry about
- it.</para>
-
- <para><literal>compress</literal> enables the use of
- gzip-style compression on the communication channel. If
- your network link is T1 speed or faster, you probably should
- not use compression. Otherwise, it helps
- substantially.</para>
- </listitem>
-
- <listitem>
- <para>Putting it all together:</para>
-
- <para>Here is the entire <filename>supfile</filename> for our
- example:</para>
-
- <programlisting>*default tag=.
-*default host=cvsup666.FreeBSD.org
-*default prefix=/usr
-*default base=/usr/local/etc/cvsup
-*default release=cvs delete use-rel-suffix compress
-
-src-all</programlisting>
- </listitem>
- </itemizedlist>
- <sect3>
- <title>The refuse file</title>
-
- <para>As mentioned above, <application>CVSup</application> uses
- a <emphasis>pull method</emphasis>. Basically, this means that
- you connect to the <application>CVSup</application> server, and
- it says, <quote>Here's what you can download from
- me...</quote>, and your client responds <quote>OK, I'll take
- this, this, this, and this.</quote> In the default
- configuration, the <application>CVSup</application> client will
- take every file associated with the collection and tag you
- chose in the configuration file. However, this is not always
- what you want, especially if you are synching the doc, ports, or
- www trees &mdash; most people can't read four or five
- languages, and therefore they don't need to download the
- language-specific files. If you are
- <application>CVSup</application>ing the ports collection, you
- can get around this by specifying each collection individually
- (e.g., <emphasis>ports-astrology</emphasis>,
- <emphasis>ports-biology</emphasis>, etc instead of simply
- saying <emphasis>ports-all</emphasis>). However, since the doc
- and www trees do not have language-specific collections, you
- must use one of <application>CVSup</application>'s many nifty
- features; the <emphasis>refuse file</emphasis>.</para>
-
- <para>The <emphasis>refuse file</emphasis> essentially tells
- <application>CVSup</application> that it should not take every
- single file from a collection; in other words, it tells the
- client to <emphasis>refuse</emphasis> certain files from the
- server. The refuse file can be found (or, if you do not yet
- have one, should be placed) in
- <filename><replaceable>base</replaceable>/sup/refuse</filename>.
- <replaceable>base</replaceable> is defined in your supfile; by
- default, <replaceable>base</replaceable> is
- <filename>/usr/local/etc/cvsup</filename>,
- which means that by default the refuse file is in
- <filename>/usr/local/etc/cvsup/sup/refuse</filename>.</para>
-
- <para>The refuse file has a very simple format; it simply
- contains the names of files or directories that you do not wish
- to download. For example, if you cannot speak any languages other
- than English and some German, and you do not feel the need to use
- the German applications, you can put the following in your
- <emphasis>refuse file</emphasis>:</para>
-
- <screen>
- ports/chinese
- ports/german
- ports/japanese
- ports/korean
- ports/russian
- ports/vietnamese
- doc/es_ES.ISO_8859-1
- doc/ja_JP.eucJP</screen>
-
- <para>and so forth for the other languages. Note that the name
- of the repository is the first <quote>directory</quote> in the
- <emphasis>refuse file</emphasis>.</para>
-
- <para>With this very useful feature, those users who are on
- slow links or pay by the minute for their Internet connection
- will be able to save valuable time as they will no longer need
- to download files that they will never use. For more
- information on <emphasis>refuse files</emphasis> and other neat
- features of <application>CVSup</application>, please view its
- man page.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Running <application>CVSup</application></title>
-
- <para>You are now ready to try an update. The command line for
- doing this is quite simple:</para>
-
- <screen>&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable></userinput></screen>
-
- <para>where <filename><replaceable>supfile</replaceable></filename>
- is of course the name of the supfile you have just created.
- Assuming you are running under X11, <command>cvsup</command>
- will display a GUI window with some buttons to do the usual
- things. Press the <quote>go</quote> button, and watch it
- run.</para>
-
- <para>Since you are updating your actual
- <filename>/usr/src</filename> tree in this example, you will
- need to run the program as <username>root</username> so that
- <command>cvsup</command> has the permissions it needs to update
- your files. Having just created your configuration file, and
- having never used this program before, that might
- understandably make you nervous. There is an easy way to do a
- trial run without touching your precious files. Just create an
- empty directory somewhere convenient, and name it as an extra
- argument on the command line:</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/tmp/dest</userinput>
-&prompt.root; <userinput>cvsup supfile /var/tmp/dest</userinput></screen>
-
- <para>The directory you specify will be used as the destination
- directory for all file updates.
- <application>CVSup</application> will examine your usual files
- in <filename>/usr/src</filename>, but it will not modify or
- delete any of them. Any file updates will instead land in
- <filename>/var/tmp/dest/usr/src</filename>.
- <application>CVSup</application> will also leave its base
- directory status files untouched when run this way. The new
- versions of those files will be written into the specified
- directory. As long as you have read access to
- <filename>/usr/src</filename>, you do not even need to be root
- to perform this kind of trial run.</para>
-
- <para>If you are not running X11 or if you just do not like GUIs,
- you should add a couple of options to the command line when you
- run cvsup:</para>
-
- <screen>&prompt.root; <userinput>cvsup -g -L 2 supfile</userinput></screen>
-
- <para>The <option>-g</option> tells cvsup not to use its GUI.
- This is automatic if you are not running X11, but otherwise you
- have to specify it.</para>
-
- <para>The <option>-L 2</option> tells cvsup to print out the
- details of all the file updates it is doing. There are three
- levels of verbosity, from <option>-L 0</option> to
- <option>-L 2</option>. The default is 0, which means total
- silence except for error messages.</para>
-
- <para>There are plenty of other options available. For a brief
- list of them, type <command>cvsup -H</command>. For more
- detailed descriptions, see the manual page.</para>
-
- <para>Once you are satisfied with the way updates are working, you
- can arrange for regular runs of cvsup using &man.cron.8;.
- Obviously, you should not let cvsup use its GUI when running it
- from cron.</para>
- </sect2>
-
- <sect2 id="cvsup-collec">
- <title><application>CVSup</application> File Collections</title>
-
- <para>The file collections available via
- <application>CVSup</application> are organized hierarchically.
- There are a few large collections, and they are divided into
- smaller sub-collections. Receiving a large collection is
- equivalent to receiving each of its sub-collections. The
- hierarchical relationships among collections are reflected by
- the use of indentation in the list below.</para>
-
- <para>The most commonly used collections are
- <literal>src-all</literal>, and
- <literal>ports-all</literal>. The other collections are used
- only by small groups of people for specialized purposes, and
- some mirror sites may not carry all of them.</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>cvs-all release=cvs</literal></term>
-
- <listitem>
- <para>The main FreeBSD CVS repository, including the
- cryptography code.</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>distrib release=cvs</literal></term>
-
- <listitem>
- <para>Files related to the distribution and mirroring
- of FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>doc-all release=cvs</literal></term>
-
- <listitem>
- <para>Sources for the FreeBSD handbook and other
- documentation.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-all release=cvs</literal></term>
-
- <listitem>
- <para>The FreeBSD ports collection.</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>ports-archivers
- release=cvs</literal></term>
-
- <listitem>
- <para>Archiving tools.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-astro
- release=cvs</literal></term>
-
- <listitem>
- <para>Astronomical ports.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-audio
- release=cvs</literal></term>
-
- <listitem>
- <para>Sound support.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-base
- release=cvs</literal></term>
-
- <listitem>
- <para>Miscellaneous files at the top of
- /usr/ports.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-benchmarks
- release=cvs</literal></term>
-
- <listitem>
- <para>Benchmarks.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-biology
- release=cvs</literal></term>
-
- <listitem>
- <para>Biology.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-cad
- release=cvs</literal></term>
-
- <listitem>
- <para>Computer aided design tools.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-chinese
- release=cvs</literal></term>
-
- <listitem>
- <para>Chinese language support.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-comms
- release=cvs</literal></term>
-
- <listitem>
- <para>Communication software.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-converters
- release=cvs</literal></term>
-
- <listitem>
- <para>character code converters.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-databases
- release=cvs</literal></term>
-
- <listitem>
- <para>Databases.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-deskutils
- release=cvs</literal></term>
-
- <listitem>
- <para>Things that used to be on the desktop
- before computers were invented.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-devel
- release=cvs</literal></term>
-
- <listitem>
- <para>Development utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-editors
- release=cvs</literal></term>
-
- <listitem>
- <para>Editors.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-emulators
- release=cvs</literal></term>
-
- <listitem>
- <para>Emulators for other operating
- systems.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-ftp
- release=cvs</literal></term>
-
- <listitem>
- <para>FTP client and server utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-games
- release=cvs</literal></term>
-
- <listitem>
- <para>Games.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-german
- release=cvs</literal></term>
-
- <listitem>
- <para>German language support.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-graphics
- release=cvs</literal></term>
-
- <listitem>
- <para>Graphics utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-irc
- release=cvs</literal></term>
-
- <listitem>
- <para>Internet Relay Chat utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-japanese
- release=cvs</literal></term>
-
- <listitem>
- <para>Japanese language support.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-java
- release=cvs</literal></term>
-
- <listitem>
- <para>Java utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-korean
- release=cvs</literal></term>
-
- <listitem>
- <para>Korean language support.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-lang
- release=cvs</literal></term>
-
- <listitem>
- <para>Programming languages.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-mail
- release=cvs</literal></term>
-
- <listitem>
- <para>Mail software.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-math
- release=cvs</literal></term>
-
- <listitem>
- <para>Numerical computation software.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-mbone
- release=cvs</literal></term>
-
- <listitem>
- <para>MBone applications.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-misc
- release=cvs</literal></term>
-
- <listitem>
- <para>Miscellaneous utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-net
- release=cvs</literal></term>
-
- <listitem>
- <para>Networking software.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-news
- release=cvs</literal></term>
-
- <listitem>
- <para>USENET news software.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-palm
- release=cvs</literal></term>
-
- <listitem>
- <para>Software support for 3Com Palm(tm)
- series.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-print
- release=cvs</literal></term>
-
- <listitem>
- <para>Printing software.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-russian
- release=cvs</literal></term>
-
- <listitem>
- <para>Russian language support.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-security
- release=cvs</literal></term>
-
- <listitem>
- <para>Security utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-shells
- release=cvs</literal></term>
-
- <listitem>
- <para>Command line shells.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-sysutils
- release=cvs</literal></term>
-
- <listitem>
- <para>System utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-textproc
- release=cvs</literal></term>
-
- <listitem>
- <para>text processing utilities (does not
- include desktop publishing).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-vietnamese
- release=cvs</literal></term>
-
- <listitem>
- <para>Vietnamese language support.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-www
- release=cvs</literal></term>
-
- <listitem>
- <para>Software related to the World Wide
- Web.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-x11
- release=cvs</literal></term>
-
- <listitem>
- <para>Ports to support the X window
- system.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-x11-clocks
- release=cvs</literal></term>
-
- <listitem>
- <para>X11 clocks.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-x11-fm
- release=cvs</literal></term>
-
- <listitem>
- <para>X11 file managers.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-x11-fonts
- release=cvs</literal></term>
-
- <listitem>
- <para>X11 fonts and font utilities.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-x11-toolkits
- release=cvs</literal></term>
-
- <listitem>
- <para>X11 toolkits.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-x11-servers</literal></term>
-
- <listitem>
- <para>X11 servers.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ports-x11-wm</literal></term>
-
- <listitem>
- <para>X11 window managers.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-all release=cvs</literal></term>
-
- <listitem>
- <para>The main FreeBSD sources, including the
- cryptography code.</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>src-base
- release=cvs</literal></term>
-
- <listitem>
- <para>Miscellaneous files at the top of
- <filename>/usr/src</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-bin
- release=cvs</literal></term>
-
- <listitem>
- <para>User utilities that may be needed in
- single-user mode
- (<filename>/usr/src/bin</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-contrib
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilities and libraries from outside the
- FreeBSD project, used relatively unmodified
- (<filename>/usr/src/contrib</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-crypto release=cvs</literal></term>
-
- <listitem>
- <para>Cryptography utilities and libraries from
- outside the FreeBSD project, used relatively
- unmodified
- (<filename>/usr/src/crypto</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-eBones release=cvs</literal></term>
-
- <listitem>
- <para>Kerberos and DES
- (<filename>/usr/src/eBones</filename>). Not
- used in current releases of FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-etc
- release=cvs</literal></term>
-
- <listitem>
- <para>System configuration files
- (<filename>/usr/src/etc</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-games
- release=cvs</literal></term>
-
- <listitem>
- <para>Games
- (<filename>/usr/src/games</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-gnu
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilities covered by the GNU Public
- License (<filename>/usr/src/gnu</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-include
- release=cvs</literal></term>
-
- <listitem>
- <para>Header files
- (<filename>/usr/src/include</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-kerberos5
- release=cvs</literal></term>
-
- <listitem>
- <para>Kerberos5 security package
- (<filename>/usr/src/kerberos5</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-kerberosIV
- release=cvs</literal></term>
-
- <listitem>
- <para>KerberosIV security package
- (<filename>/usr/src/kerberosIV</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-lib
- release=cvs</literal></term>
-
- <listitem>
- <para>Libraries
- (<filename>/usr/src/lib</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-libexec
- release=cvs</literal></term>
-
- <listitem>
- <para>System programs normally executed by other
- programs
- (<filename>/usr/src/libexec</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-release
- release=cvs</literal></term>
-
- <listitem>
- <para>Files required to produce a FreeBSD
- release
- (<filename>/usr/src/release</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-secure release=cvs</literal></term>
-
- <listitem>
- <para>DES (<filename>/usr/src/secure</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-sbin
- release=cvs</literal></term>
-
- <listitem>
- <para>System utilities for single-user mode
- (<filename>/usr/src/sbin</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-share
- release=cvs</literal></term>
-
- <listitem>
- <para>Files that can be shared across multiple
- systems
- (<filename>/usr/src/share</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-sys
- release=cvs</literal></term>
-
- <listitem>
- <para>The kernel
- (<filename>/usr/src/sys</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-sys-crypto
- release=cvs</literal></term>
-
- <listitem>
- <para>Kernel cryptography code
- (<filename>/usr/src/sys/crypto</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-tools
- release=cvs</literal></term>
-
- <listitem>
- <para>Various tools for the maintenance of
- FreeBSD
- (<filename>/usr/src/tools</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-usrbin
- release=cvs</literal></term>
-
- <listitem>
- <para>User utilities
- (<filename>/usr/src/usr.bin</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>src-usrsbin
- release=cvs</literal></term>
-
- <listitem>
- <para>System utilities
- (<filename>/usr/src/usr.sbin</filename>).</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>www release=cvs</literal></term>
-
- <listitem>
- <para>The sources for the World Wide Web data.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>distrib release=self</literal></term>
-
- <listitem>
- <para>The CVSup server's own configuration files. Used by
- CVSup mirror sites.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>gnats release=current</literal></term>
-
- <listitem>
- <para>The GNATS bug-tracking database.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>mail-archive release=current</literal></term>
-
- <listitem>
- <para>FreeBSD mailing list archive.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>www release=current</literal></term>
-
- <listitem>
- <para>The installed World Wide Web data. Used by WWW mirror
- sites.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>For more information</title>
-
- <para>For the CVSup FAQ and other information about CVSup, see
- <ulink url="http://www.polstra.com/projects/freeware/CVSup/">The
- CVSup Home Page</ulink>.</para>
-
- <para>Most FreeBSD-related discussion of
- <application>CVSup</application> takes place on the
- &a.hackers;. New versions of the software are announced there,
- as well as on the &a.announce;.</para>
-
- <para>Questions and bug reports should be addressed to the author
- of the program at <email>cvsup-bugs@polstra.com</email>.</para>
- </sect2>
-
- <sect2 id="cvsup-mirrors">
- <title>CVSup Sites</title>
-
- <para><link linkend="cvsup">CVSup</link> servers for FreeBSD are running
- at the following sites:</para>
-
- <variablelist>
- <varlistentry>
- <term>Argentina</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para>cvsup.ar.FreeBSD.org (maintainer
- <email>msagre@cactus.fi.uba.ar</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Australia</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.au.FreeBSD.org (maintainer
- <email>dawes@xfree86.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.au.FreeBSD.org (maintainer
- <email>FreeBSD@admin.gil.com.au</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Austria</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.at.FreeBSD.org (maintainer
- <email>postmaster@wu-wien.ac.at</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Brazil</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.br.FreeBSD.org (maintainer
- <email>cvsup@cvsup.br.FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.br.FreeBSD.org (maintainer
- <email>tps@ti.sk</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.br.FreeBSD.org (maintainer
- <email>camposr@matrix.com.br</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Canada</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.ca.FreeBSD.org (maintainer
- <email>dan@jaded.net</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.ca.FreeBSD.org (maintainer
- <email>hostmaster@ca.freebsd.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>China</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.cn.FreeBSD.org (maintainer
- <email>phj@cn.FreeBSD.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Czech Republic</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.cz.FreeBSD.org (maintainer
- <email>cejkar@dcse.fee.vutbr.cz</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Denmark</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.dk.FreeBSD.org (maintainer
- <email>jesper@skriver.dk</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Estonia</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.ee.FreeBSD.org (maintainer
- <email>taavi@uninet.ee</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Finland</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.fi.FreeBSD.org (maintainer
- <email>count@key.sms.fi</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.fi.FreeBSD.org (maintainer
- <email>count@key.sms.fi</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>France</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.fr.FreeBSD.org (maintainer
- <email>hostmaster@fr.FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.fr.FreeBSD.org (maintainer
- <email>ftpmaint@uvsq.fr</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Germany</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.de.FreeBSD.org (maintainer
- <email>wosch@FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.de.FreeBSD.org (maintainer
- <email>cvsup@nikoma.de</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.de.FreeBSD.org (maintainer
- <email>ag@leo.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup4.de.FreeBSD.org (maintainer
- <email>cvsup@cosmo-project.de</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup5.de.FreeBSD.org (maintainer
- <email>rse@freebsd.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Iceland</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.is.FreeBSD.org (maintainer
- <email>adam@veda.is</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ireland</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.ie.FreeBSD.org (maintainer
- <email>dwmalone@maths.tcd.ie</email>),
- Trinity College, Dublin.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Japan</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para>cvsup.jp.FreeBSD.org (maintainer
- <email>cvsupadm@jp.FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.jp.FreeBSD.org (maintainer
- <email>max@FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.jp.FreeBSD.org (maintainer
- <email>shige@cin.nihon-u.ac.jp</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup4.jp.FreeBSD.org (maintainer
- <email>cvsup-admin@ftp.media.kyoto-u.ac.jp</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup5.jp.FreeBSD.org (maintainer
- <email>cvsup@imasy.or.jp</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup6.jp.FreeBSD.org (maintainer
- <email>cvsupadm@jp.FreeBSD.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Korea</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.kr.FreeBSD.org (maintainer
- <email>cjh@kr.FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.kr.FreeBSD.org (maintainer
- <email>holywar@mail.holywar.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Lithuania</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.lt.FreeBSD.org (maintainer
- <email>domas.mituzas@delfi.lt</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Netherlands</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.nl.FreeBSD.org (maintainer
- <email>xaa@xaa.iae.nl</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.nl.FreeBSD.org (maintainer
- <email>cvsup@nl.uu.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Norway</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.no.FreeBSD.org (maintainer
- <email>Per.Hove@math.ntnu.no</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Poland</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.pl.FreeBSD.org (maintainer
- <email>Mariusz@kam.pl</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Portugal</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.pt.FreeBSD.org (maintainer
- <email>jpedras@webvolution.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Russia</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.ru.FreeBSD.org (maintainer
- <email>ache@nagual.pp.ru</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.ru.FreeBSD.org (maintainer
- <email>dv@dv.ru</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.ru.FreeBSD.org (maintainer
- <email>fjoe@iclub.nsu.ru</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup4.ru.FreeBSD.org (maintainer
- <email>zhecka@klondike.ru</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup5.ru.FreeBSD.org (maintainer
- <email>maxim@macomnet.ru</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup6.ru.FreeBSD.org (maintainer
- <email>pvr@corbina.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Slovak Republic</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.sk.FreeBSD.org (maintainer
- <email>tps@tps.sk</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.sk.FreeBSD.org (maintainer
- <email>tps@tps.sk</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Slovenia</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.si.FreeBSD.org (maintainer
- <email>blaz@si.FreeBSD.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>South Africa</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.za.FreeBSD.org (maintainer
- <email>markm@FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.za.FreeBSD.org (maintainer
- <email>markm@FreeBSD.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Spain</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.es.FreeBSD.org (maintainer
- <email>jesusr@FreeBSD.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Sweden</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.se.FreeBSD.org (maintainer
- <email>pantzer@ludd.luth.se</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.se.FreeBSD.org (maintainer
- <email>cvsup@dataphone.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Taiwan</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.tw.FreeBSD.org (maintainer
- <email>jdli@freebsd.csie.nctu.edu.tw</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.tw.FreeBSD.org (maintainer
- <email>ycheng@sinica.edu.tw</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.tw.FreeBSD.org (maintainer
- <email>foxfair@FreeBSD.org</email>)</para>
- </listitem>
-
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ukraine</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para>cvsup2.ua.FreeBSD.org (maintainer
- <email>freebsd-mnt@lucky.net</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.ua.FreeBSD.org (maintainer
- <email>ftpmaster@ukr.net</email>), Kiev</para>
- </listitem>
-
- <listitem>
- <para>cvsup4.ua.FreeBSD.org (maintainer
- <email>phantom@cris.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>United Kingdom</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.uk.FreeBSD.org (maintainer
- <email>joe@pavilion.net</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.uk.FreeBSD.org (maintainer
- <email>brian@FreeBSD.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.uk.FreeBSD.org (maintainer
- <email>ftp-admin@plig.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>USA</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup1.FreeBSD.org (maintainer
- <email>skynyrd@opus.cts.cwu.edu</email>), Washington
- state</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.FreeBSD.org (maintainer
- <email>jdp@FreeBSD.org</email>), California</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.FreeBSD.org (maintainer
- <email>wollman@FreeBSD.org</email>), Massachusetts</para>
- </listitem>
-
- <listitem>
- <para>cvsup4.FreeBSD.org (maintainer
- <email>rgrimes@FreeBSD.org</email>), Oregon</para>
- </listitem>
-
- <listitem>
- <para>cvsup5.FreeBSD.org (maintainer
- <email>mjr@blackened.com</email>), Arizona</para>
- </listitem>
-
- <listitem>
- <para>cvsup6.FreeBSD.org (maintainer
- <email>jdp@FreeBSD.org</email>), Florida</para>
- </listitem>
-
- <listitem>
- <para>cvsup7.FreeBSD.org (maintainer
- <email>jdp@FreeBSD.org</email>), Washington state</para>
- </listitem>
-
- <listitem>
- <para>cvsup8.FreeBSD.org (maintainer
- <email>hostmaster@bigmirror.com</email>), Washington
- state</para>
- </listitem>
-
- <listitem>
- <para>cvsup9.FreeBSD.org (maintainer
- <email>qbsd@uswest.net</email>), Minnesota</para>
- </listitem>
-
- <listitem>
- <para>cvsup10.FreeBSD.org (maintainer
- <email>jdp@FreeBSD.org</email>), California</para>
- </listitem>
-
- <listitem>
- <para>cvsup11.FreeBSD.org (maintainer
- <email>cvsup@research.uu.net</email>), Virginia</para>
- </listitem>
-
- <listitem>
- <para>cvsup12.FreeBSD.org (maintainer
- <email>will@FreeBSD.org</email>), Indiana</para>
- </listitem>
-
- <listitem>
- <para>cvsup13.FreeBSD.org (maintainer
- <email>dima@valueclick.com</email>), California</para>
- </listitem>
-
- <listitem>
- <para>cvsup14.FreeBSD.org (maintainer
- <email>freebsd-cvsup@mfnx.net</email>), California</para>
- </listitem>
-
- <listitem>
- <para>cvsup15.FreeBSD.org (maintainer
- <email>cvsup@math.uic.edu</email>), Illinois</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The following <application>CVSup</application> site is especially
- designed for <link linkend="ctm">CTM</link> users. Unlike the other
- CVSup mirrors, it is kept up-to-date by <application>CTM</application>.
- That means if you <application>CVSup</application>
- <literal>cvs-all</literal> with <literal>release=cvs</literal> from this
- site, you get a version of the repository (including the inevitable
- <filename>.ctm_status</filename> file) which is suitable for being
- updated using the <application>CTM</application>
- <literal>cvs-cur</literal> deltas. This allows users who track the
- entire <literal>cvs-all</literal> tree to go from
- <application>CVSup</application> to <application>CTM</application>
- without having to rebuild their repository from scratch using a fresh
- <application>CTM</application> base delta.</para>
-
- <note>
- <para>This special feature only works for the <literal>cvs-all</literal>
- distribution with <command>cvs</command> as the release tag.
- CVSupping any other distribution and/or release will get you the
- specified distribution, but it will not be suitable for
- <application>CTM</application> updating.</para>
- </note>
-
- <note>
- <para>Because the current version of <application>CTM</application> does
- not preserve the time stamps of files, the time stamps at this mirror
- site are not the same as those at other mirror sites. Switching
- between this site and other sites is not recommended. It will work
- correctly, but will be somewhat inefficient.</para>
- </note>
-
- <variablelist>
- <varlistentry>
- <term>Germany</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>ctm.FreeBSD.org (maintainer
- <email>blank@fox.uni-trier.de</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1 id="mirrors-afs">
- <title>AFS Sites</title>
-
- <para>AFS servers for FreeBSD are running at the following sites;</para>
-
- <variablelist>
- <varlistentry>
- <term>Sweden</term>
-
- <listitem>
- <para>The path to the files are:
- <filename>/afs/stacken.kth.se/ftp/pub/FreeBSD/</filename></para>
-
- <programlisting>stacken.kth.se # Stacken Computer Club, KTH, Sweden
-130.237.234.43 #hot.stacken.kth.se
-130.237.237.230 #fishburger.stacken.kth.se
-130.237.234.3 #milko.stacken.kth.se</programlisting>
-
- <para>Maintainer <email>ftp@stacken.kth.se</email></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml b/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml
deleted file mode 100644
index 60b7ad1b7d..0000000000
--- a/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml
+++ /dev/null
@@ -1,326 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/sound/chapter.sgml,v 1.4 2000/12/06 21:27:12 dannyboy Exp $
--->
-
-<chapter id="sound">
- <title>Sound</title>
-
- <para><emphasis>Contributed by Moses Moore
- <email>jm-moses@home.com</email>, 20 November 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>This chapter of the handbook deals with setting up sound on a
- FreeBSD system.</para>
- </sect1>
-
- <sect1>
- <title>Locating the Correct Device</title>
-
- <para>Before you begin, you should know the model of the card you
- have, the chip it uses, and whether it is a PCI or ISA card.
- FreeBSD supports a wide variety of both PCI and ISA cards. If you
- do not see your card in the following list, check the &man.pcm.4;
- manual page. This is not a complete list; however, it does list
- some of the most common cards.</para>
-
- <itemizedlist>
- <listitem>
- <para>Crystal 4237, 4236, 4232, 4231</para>
- </listitem>
-
- <listitem>
- <para>Yamaha OPL-SAx</para>
- </listitem>
-
- <listitem>
- <para>OPTi931</para>
- </listitem>
-
- <listitem>
- <para>Ensoniq AudioPCI 1370/1371</para>
- </listitem>
-
- <listitem>
- <para>ESS Solo-1/1E</para>
- </listitem>
-
- <listitem>
- <para>NeoMagic 256AV/ZX</para>
- </listitem>
-
- <listitem>
- <para>Sound Blaster Pro, 16, 32, AWE64, AWE128, Live</para>
- </listitem>
-
- <listitem>
- <para>Creative ViBRA16</para>
- </listitem>
-
- <listitem>
- <para>Advanced Asound 100, 110, and Logic ALS120</para>
- </listitem>
-
- <listitem>
- <para>ES 1868, 1869, 1879, 1888</para>
- </listitem>
-
- <listitem>
- <para>Gravis UltraSound</para>
- </listitem>
-
- <listitem>
- <para>Aureal Vortex 1 or 2</para>
- </listitem>
- </itemizedlist>
-
- <para>The driver you use in your kernel depends on the kind of card
- you have. The sections below provide more information and what
- you will need to add to your <link linkend="kernelconfig">kernel
- configuration</link>.</para>
-
- <sect2>
- <title>Creative, Advance, and ESS Sound Cards</title>
-
- <para>If you have one of the above cards, you will need to
- add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>to your kernel. If you have a PnP ISA card, you will also
- need to add</para>
-
- <programlisting>device sbc</programlisting>
-
- <para>to your kernel. For a non-PnP ISA card, add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15</programlisting>
-
- <para>to your kernel. Those are the default settings. You may
- need to change the IRQ, etc. See the &man.sbc.4; man page for
- more information.</para>
-
- <note>
- <para>The Sound Blaster Live is not supported under FreeBSD 4.0
- without a patch, which this document will not cover. It is
- recommended that you update to the latest -STABLE before
- trying to use this card.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Gravis UltraSound Cards</title>
-
- <para>For a PnP ISA card, you will need to add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device gusc</programlisting>
-
- <para>to your kernel. If you have a non-PnP ISA card, you will
- need to add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13</programlisting>
-
- <para>to your kernel. You may need to change the IRQ, etc. See
- the &man.gusc.4; man page for more information.</para>
- </sect2>
-
- <sect2>
- <title>Crystal Sound Cards</title>
-
- <para>For Crystal cards, you will need both</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device csa</programlisting>
-
- <para>in your kernel.</para>
- </sect2>
-
- <sect2>
- <title>Generic Support</title>
-
- <para>For PnP ISA or PCI cards, you will need to add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>to your kernel configuration. If you have a non-PnP ISA
- sound card that does not have a bridge driver, you will need
- to add</para>
-
- <programlisting>device pcm0 at isa? irq 10 drq 1 flags 0x0</programlisting>
-
- <para>to your kernel configuration. You may need to change the
- IRQ, etc., to match your hardware configuration.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Recompiling the Kernel</title>
-
- <para>After adding the driver(s) you need to your kernel
- configuration, you will need to recompile your kernel. Please see
- <xref linkend="kernelconfig-building"> of the handbook for
- more information.</para>
- </sect1>
-
- <sect1>
- <title>Creating and Testing the Device Nodes</title>
-
- <para>After you reboot, log in and run <command>cat
- /dev/sndstat</command>. You should see output similar to the
- following:</para>
-
- <programlisting>FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53
-Installed devices:
-pcm0: &lt;Aureal Vortex 8830&gt; at memory 0xfeb40000 irq 5 (4p/1r +channels duplex)</programlisting>
-
- <para>If you see an error message, something went wrong earlier. If
- that happens, go through your kernel configuration file again and
- make sure you chose the correct device.</para>
-
- <para>If it reported no errors and returned
- <devicename>pcm0</devicename>, <command>su</command> to
- <username>root</username> and do the following:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
-
- <para>If it reported no errors and returned
- <devicename>pcm1</devicename>, <command>su</command> to
- <username>root</username> and do the following:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd1</userinput></screen>
-
- <para>Please note that either of the above commands will
- <emphasis>not</emphasis> create a
- <devicename>/dev/snd</devicename> device! Instead it creates a
- group of device nodes including:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Device</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><devicename>/dev/audio</devicename></entry>
- <entry>SPARC-compatible audio device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/dsp</devicename></entry>
- <entry>Digitized voice device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/dspW</devicename></entry>
- <entry>Like <devicename>/dev/dsp</devicename>, but 16 bits
- per sample</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/midi</devicename></entry>
- <entry>Raw midi access device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/mixer</devicename></entry>
- <entry>Control port mixer device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/music</devicename></entry>
- <entry>Level 2 sequencer interface</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/sequencer</devicename></entry>
- <entry>Sequencer device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/pss</devicename></entry>
- <entry>Programmable device interface</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If all goes well, you should now have a functioning sound
- card. If you do not, see the next section.</para>
- </sect1>
-
- <sect1>
- <title>Common Problems</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>I get an unsupported subdevice XX error!</para>
- </question>
-
- <answer>
- <para>One or more of the device nodes wasn't created
- correctly. Repeat the steps above.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I get a sb_dspwr(XX) timed out error!</para>
- </question>
-
- <answer>
- <para>The I/O port is not set correctly.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I get a bad irq XX error!</para>
- </question>
-
- <answer>
- <para>The IRQ is set incorrectly. Make sure that the set IRQ
- and the sound IRQ are the same.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I get a "xxx: gus pcm not attached, out of memory"
- error. What causes that?</para>
- </question>
-
- <answer>
- <para>If this happens, it is because there is not enough
- available memory to use the device.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-</chapter>
diff --git a/en_US.ISO8859-1/books/handbook/newsgroups.ent b/en_US.ISO8859-1/books/handbook/newsgroups.ent
deleted file mode 100644
index db6585344a..0000000000
--- a/en_US.ISO8859-1/books/handbook/newsgroups.ent
+++ /dev/null
@@ -1,10 +0,0 @@
-<!--
- Names of FreeBSD newsgroups
-
- $FreeBSD$
--->
-
-<!ENTITY ng.misc "the
- <ulink url='news:comp.unix.bsd.freebsd.misc'>comp.unix.bsd.freebsd.misc</ulink>
- newsgroup">
-
diff --git a/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
deleted file mode 100644
index 32572203e2..0000000000
--- a/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ /dev/null
@@ -1,2154 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/pgpkeys/chapter.sgml,v 1.66 2001/03/29 15:46:56 will Exp $
--->
-
-<appendix id="pgpkeys">
- <title>PGP Keys</title>
-
- <para>In case you need to verify a signature or send encrypted email
- to one of the officers or developers a number of keys are provided
- here for your convenience. &a.wollman; maintains <ulink
- url="http://people.FreeBSD.org/~wollman/freebsd.keyring">a
- complete keyring of FreeBSD.org users</ulink> for easy
- download.</para>
-
- <sect1 id="pgpkeys-officers">
- <title>Officers</title>
-
- <sect2>
- <title>FreeBSD Security Officer
- <email>security-officer@FreeBSD.org</email></title>
-
- <programlisting>FreeBSD Security Officer &lt;security-officer@FreeBSD.org&gt;
-Fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3i
-
-mQCNAzF7MY4AAAEEAK7qBgPuBejER5HQbQlsOldk3ZVWXlRj54raz3IbuAUrDrQL
-h3g57T9QY++f3Mot2LAf5lDJbsMfWrtwPrPwCCFRYQd6XH778a+l4ju5axyjrt/L
-Ciw9RrOC+WaPv3lIdLuqYge2QRC1LvKACIPNbIcgbnLeRGLovFUuHi5z0oilAAUR
-tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAZnJl
-ZWJzZC5vcmc+iQCVAwUQMX6yrOJgpPLZnQjrAQHyowQA1Nv2AY8vJIrdp2ttV6RU
-tZBYnI7gTO3sFC2bhIHsCvfVU3JphfqWQ7AnTXcD2yPjGcchUfc/EcL1tSlqW4y7
-PMP4GHZp9vHog1NAsgLC9Y1P/1cOeuhZ0pDpZZ5zxTo6TQcCBjQA6KhiBFP4TJql
-3olFfPBh3B/Tu3dqmEbSWpuJAJUDBRAxez3C9RVb+45ULV0BAak8A/9JIG/jRJaz
-QbKom6wMw852C/Z0qBLJy7KdN30099zMjQYeC9PnlkZ0USjQ4TSpC8UerYv6IfhV
-nNY6gyF2Hx4CbEFlopnfA1c4yxtXKti1kSN6wBy/ki3SmqtfDhPQ4Q31p63cSe5A
-3aoHcjvWuqPLpW4ba2uHVKGP3g7SSt6AOYkAlQMFEDF8mz0ff6kIA1j8vQEBmZcD
-/REaUPDRx6qr1XRQlMs6pfgNKEwnKmcUzQLCvKBnYYGmD5ydPLxCPSFnPcPthaUb
-5zVgMTjfjS2fkEiRrua4duGRgqN4xY7VRAsIQeMSITBOZeBZZf2oa9Ntidr5PumS
-9uQ9bvdfWMpsemk2MaRG9BSoy5Wvy8VxROYYUwpT8Cf2iQCVAwUQMXsyqWtaZ42B
-sqd5AQHKjAQAvolI30Nyu3IyTfNeCb/DvOe9tlOn/o+VUDNJiE/PuBe1s2Y94a/P
-BfcohpKC2kza3NiW6lLTp00OWQsuu0QAPc02vYOyseZWy4y3Phnw60pWzLcFdemT
-0GiYS5Xm1o9nAhPFciybn9j1q8UadIlIq0wbqWgdInBT8YI/l4f5sf6JAJUDBRAx
-ezKXVS4eLnPSiKUBAc5OBACIXTlKqQC3B53qt7bNMV46m81fuw1PhKaJEI033mCD
-ovzyEFFQeOyRXeu25Jg9Bq0Sn37ynISucHSmt2tUD5W0+p1MUGyTqnfqejMUWBzO
-v4Xhp6a8RtDdUMBOTtro16iulGiRrCKxzVgEl4i+9Z0ZiE6BWlg5AetoF5n3mGk1
-lw==
-=ipyA
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- </sect1>
-
- <sect1 id="pgpkeys-core">
- <title>Core Team Members</title>
-
- <sect2>
- <title>&a.asami;</title>
-
- <programlisting>Satoshi Asami &lt;asami@cs.berkeley.edu&gt;
- aka &lt;asami@FreeBSD.org&gt;
-Fingerprint = EB 3C 68 9E FB 6C EB 3F DB 2E 0F 10 8F CE 79 CA
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzPVyoQAAAEEAL7W+kipxB171Z4SVyyL9skaA7hG3eRsSOWk7lfvfUBLtPog
-f3OKwrApoc/jwLf4+Qpdzv5DLEt/6Hd/clskhJ+q1gMNHyZ5ABmUxrTRRNvJMTrb
-3fPU3oZj7sL/MyiFaT1zF8EaMP/iS2ZtcFsbYOqGeA8E/58uk4NA0SoeCNiJAAUR
-tCVTYXRvc2hpIEFzYW1pIDxhc2FtaUBjcy5iZXJrZWxleS5lZHU+iQCVAwUQM/AT
-+EqGN2HYnOMZAQF11QP/eSXb2FuTb1yX5yoo1Im8YnIk1SEgCGbyEbOMMBznVNDy
-5g2TAD0ofLxPxy5Vodjg8rf+lfMVtO5amUH6aNcORXRncE83T10JmeM6JEp0T6jw
-zOHKz8jRzygYLBayGsNIJ4BGxa4LeaGxJpO1ZEvRlNkPH/YEXK5oQmq9/DlrtYOJ
-AEUDBRAz42JT8ng6GBbVvu0BAU8nAYCsJ8PiJpRUGlrz6rxjX8hqM1v3vqFHLcG+
-G52nVMBSy+RZBgzsYIPwI5EZtWAKb22JAJUDBRAz4QBWdbtuOHaj97EBAaQPA/46
-+NLUp+Wubl90JoonoXocwAg88tvAUVSzsxPXj0lvypAiSI2AJKsmn+5PuQ+/IoQy
-lywRsxiQ5GD7C72SZ1yw2WI9DWFeAi+qa4b8n9fcLYrnHpyCY+zxEpu4pam8FJ7H
-JocEUZz5HRoKKOLHErzXDiuTkkm72b1glmCqAQvnB4kAlQMFEDPZ3gyDQNEqHgjY
-iQEBFfUEALu2C0uo+1Z7C5+xshWRYY5xNCzK20O6bANVJ+CO2fih96KhwsMof3lw
-fDso5HJSwgFd8WT/sR+Wwzz6BAE5UtgsQq5GcsdYQuGI1yIlCYUpDp5sgswNm+OA
-bX5a+r4F/ZJqrqT1J56Mer0VVsNfe5nIRsjd/rnFAFVfjcQtaQmjiQCVAwUQM9uV
-mcdm8Q+/vPRJAQELHgP9GqNiMpLQlZig17fDnCJ73P0e5t/hRLFehZDlmEI2TK7j
-Yeqbw078nZgyyuljZ7YsbstRIsWVCxobX5eH1kX+hIxuUqCAkCsWUY4abG89kHJr
-XGQn6X1CX7xbZ+b6b9jLK+bJKFcLSfyqR3M2eCyscSiZYkWKQ5l3FYvbUzkeb6K0
-IVNhdG9zaGkgQXNhbWkgPGFzYW1pQEZyZWVCU0QuT1JHPg==
-=39SC
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jkh;</title>
-
- <programlisting>Jordan K. Hubbard &lt;jkh@FreeBSD.org&gt;
-Fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzFjX0IAAAEEAML+nm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ
-jvX+fyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk
-tyFeRJFqnkCuqBj6D+H8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR
-tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPokBFQMFEDXCTXQM
-j46yp4IfPQEBwO8IAIN0J09AXBf86dFUTFGcAMrEQqOF5IL+KGorAjzuYxERhKfD
-ZV7jA+sCQqxkWfcVcE20kVyVYqzZIkio9a5zXP6TwA247JkPt54S1PmMDYHNlRIY
-laXlNoji+4q3HP2DfHqXRT2859rYpm/fG/v6pWkos5voPKcZ2OFEp9W+Ap88oqw+
-5rx4VetZNJq1Epmis4INj6XqNqj85+MOOIYE+f445ohDM6B/Mxazd6cHFGGIR+az
-VjZ6lCDMLjzhB5+FqfrDLYuMjqkMTR5z9DL+psUvPlCkYbQ11NEWtEmiIWjUcNJN
-GCxGzv5bXk0XPu3ADwbPkFE2usW1cSM7AQFiwuyJAJUDBRAxe+Q9a1pnjYGyp3kB
-AV7XA/oCSL/Cc2USpQ2ckwkGpyvIkYBPszIcabSNJAzm2hsU9Qa6WOPxD8olDddB
-uJNiW/gznPC4NsQ0N8Zr4IqRX/TTDVf04WhLmd8AN9SOrVv2q0BKgU6fLuk979tJ
-utrewH6PR2qBOjAaR0FJNk4pcYAHeT+e7KaKy96YFvWKIyDvc4kAlQMFEDF8ldof
-f6kIA1j8vQEBDH4D/0Zm0oNlpXrAE1EOFrmp43HURHbij8n0Gra1w9sbfo4PV+/H
-U8ojTdWLy6r0+prH7NODCkgtIQNpqLuqM8PF2pPtUJj9HwTmSqfaT/LMztfPA6PQ
-csyT7xxdXl0+4xTDl1avGSJfYsI8XCAy85cTs+PQwuyzugE/iykJO1Bnj/paiQCV
-AwUQMXvlBvUVW/uOVC1dAQF2fQP/RfYC6RrpFTZHjo2qsUHSRk0vmsYfwG5NHP5y
-oQBMsaQJeSckN4n2JOgR4T75U4vS62aFxgPLJP3lOHkU2Vc7xhAuBvsbGr5RP8c5
-LvPOeUEyz6ZArp1KUHrtcM2iK1FBOmY4dOYphWyWMkDgYExabqlrAq7FKZftpq/C
-BiMRuaw=
-=C/Jw
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.imp;</title>
-
- <programlisting>Warner Losh &lt;imp@village.org&gt;
- aka &lt;imp@FreeBSD.org&gt;
-Fingerprint = D4 31 FD B9 F7 90 17 E8 37 C5 E7 7F CF A6 C1 B9
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzDzTiAAAAEEAK8D7KWEbVFUrmlqhUEnAvphNIqHEbqqT8s+c5f5c2uHtlcH
-V4mV2TlUaDSVBN4+/D70oHmZc4IgiQwMPCWRrSezg9z/MaKlWhaslc8YT6Xc1q+o
-EP/fAdKUrq49H0QQbkQk6Ks5wKW6v9AOvdmsS6ZJEcet6d9G4dxynu/2qPVhAAUR
-tCBNLiBXYXJuZXIgTG9zaCA8aW1wQHZpbGxhZ2Uub3JnPokAlQMFEDM/SK1VLh4u
-c9KIpQEBFPsD/1n0YuuUPvD4CismZ9bx9M84y5sxLolgFEfP9Ux196ZSeaPpkA0g
-C9YX/IyIy5VHh3372SDWN5iVSDYPwtCmZziwIV2YxzPtZw0nUu82P/Fn8ynlCSWB
-5povLZmgrWijTJdnUWI0ApVBUTQoiW5MyrNN51H3HLWXGoXMgQFZXKWYiQCVAwUQ
-MzmhkfUVW/uOVC1dAQG3+AP/T1HL/5EYF0ij0yQmNTzt1cLt0b1e3N3zN/wPFFWs
-BfrQ+nsv1zw7cEgxLtktk73wBGM9jUIdJu8phgLtl5a0m9UjBq5oxrJaNJr6UTxN
-a+sFkapTLT1g84UFUO/+8qRB12v+hZr2WeXMYjHAFUT18mp3xwjW9DUV+2fW1Wag
-YDKJAJUDBRAzOYK1s1pi61mfMj0BARBbA/930CHswOF0HIr+4YYUs1ejDnZ2J3zn
-icTZhl9uAfEQq++Xor1x476j67Z9fESxyHltUxCmwxsJ1uOJRwzjyEoMlyFrIN4C
-dE0C8g8BF+sRTt7VLURLERvlBvFrVZueXSnXvmMoWFnqpSpt3EmN6TNaLe8Cm87a
-k6EvQy0dpnkPKokAlQMFEDD9Lorccp7v9qj1YQEBrRUD/3N4cCMWjzsIFp2Vh9y+
-RzUrblyF84tJyA7Rr1p+A7dxf7je3Zx5QMEXosWL1WGnS5vC9YH2WZwv6sCU61gU
-rSy9z8KHlBEHh+Z6fdRMrjd9byPf+n3cktT0NhS23oXB1ZhNZcB2KKhVPlNctMqO
-3gTYx+Nlo6xqjR+J2NnBYU8p
-=7fQV
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.peter;</title>
-
- <programlisting>Peter Wemm &lt;peter@FreeBSD.org&gt;
- aka &lt;peter@spinner.dialix.com&gt;
- aka &lt;peter@haywire.dialix.com&gt;
- aka &lt;peter@perth.dialix.oz.au&gt;
-Key fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAy9/FJwAAAEEALxs9dE9tFd0Ru1TXdq301KfEoe5uYKKuldHRBOacG2Wny6/
-W3Ill57hOi2+xmq5X/mHkapywxvy4cyLdt31i4GEKDvxpDvEzAYcy2n9dIup/eg2
-kEhRBX9G5k/LKM4NQsRIieaIEGGgCZRm0lINqw495aZYrPpO4EqGN2HYnOMZAAUT
-tCVQZXRlciBXZW1tIDxwZXRlckBoYXl3aXJlLmRpYWxpeC5jb20+iQCVAwUQMwWT
-cXW7bjh2o/exAQEFkQP+LIx5zKlYp1uR24xGApMFNrNtjh+iDIWnxxb2M2Kb6x4G
-9z6OmbUCoDTGrX9SSL2Usm2RD0BZfyv9D9QRWC2TSOPkPRqQgIycc11vgbLolJJN
-eixqsxlFeKLGEx9eRQCCbo3dQIUjc2yaOe484QamhsK1nL5xpoNWI1P9zIOpDiGJ
-AJUDBRAxsRPqSoY3Ydic4xkBAbWLA/9q1Fdnnk4unpGQsG31Qbtr4AzaQD5m/JHI
-4gRmSmbj6luJMgNG3fpO06Gd/Z7uxyCJB8pTst2a8C/ljOYZxWT+5uSzkQXeMi5c
-YcI1sZbUpkHtmqPW623hr1PB3ZLA1TIcTbQW+NzJsxQ1Pc6XG9fGkT9WXQW3Xhet
-AP+juVTAhLQlUGV0ZXIgV2VtbSA8cGV0ZXJAcGVydGguZGlhbGl4Lm96LmF1PokA
-lQMFEDGxFCFKhjdh2JzjGQEB6XkD/2HOwfuFrnQUtdwFPUkgtEqNeSr64jQ3Maz8
-xgEtbaw/ym1PbhbCk311UWQq4+izZE2xktHTFClJfaMnxVIfboPyuiSF99KHiWnf
-/Gspet0S7m/+RXIwZi1qSqvAanxMiA7kKgFSCmchzas8TQcyyXHtn/gl9v0khJkb
-/fv3R20btB5QZXRlciBXZW1tIDxwZXRlckBGcmVlQlNELm9yZz6JAJUDBRAxsRJd
-SoY3Ydic4xkBAZJUA/4i/NWHz5LIH/R4IF/3V3LleFyMFr5EPFY0/4mcv2v+ju9g
-brOEM/xd4LlPrx1XqPeZ74JQ6K9mHR64RhKR7ZJJ9A+12yr5dVqihe911KyLKab9
-4qZUHYi36WQu2VtLGnw/t8Jg44fQSzbBF5q9iTzcfNOYhRkSD3BdDrC3llywO7Ql
-UGV0ZXIgV2VtbSA8cGV0ZXJAc3Bpbm5lci5kaWFsaXguY29tPokAlQMFEDGxEi1K
-hjdh2JzjGQEBdA4EAKmNFlj8RF9HQsoI3UabnvYqAWN5wCwEB4u+Zf8zq6OHic23
-TzoK1SPlmSdBE1dXXQGS6aiDkLT+xOdeewNs7nfUIcH/DBjSuklAOJzKliXPQW7E
-kuKNwy4eq5bl+j3HB27i+WBXhn6OaNNQY674LGaR41EGq44Wo5ATcIicig/z
-=gv+h
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- </sect1>
-
- <sect1 id="pgpkeys-developers">
- <title>Developers</title>
-
- <sect2>
- <title>&a.will;</title>
-
- <programlisting>pub 1024D/F81672C5 2000-05-22 Will Andrews (Key for official matters) &lt;will@FreeBSD.org&gt;
- Key fingerprint = 661F BBF7 9F5D 3D02 C862 5F6C 178E E274 F816 72C5
-uid Will Andrews &lt;will@physics.purdue.edu&gt;
-uid Will Andrews &lt;will@puck.firepipe.net&gt;
-uid Will Andrews &lt;will@c-60.org&gt;
-uid Will Andrews &lt;will@csociety.org&gt;
-uid Will Andrews &lt;will@csociety.ecn.purdue.edu&gt;
-uid Will Andrews &lt;will@telperion.openpackages.org&gt;
-sub 1024g/55472804 2000-05-22
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDkpEQ4RBAC9OidsAMYXkcTy2/Vb0/YO4X06+pwtKVPbYRHt0wSvmoeUhr8k
-W7YIZpORNycc4v/0p4U/vD3fNL4bb07gnkijJWC+RrLVsxp/HkAy+XPy1TlBg/g9
-rgT+eNnmIudIbIFGgfNYR9pcjdBvDYYzn0rKCxZ3bUqQv1iY1Szd6XBVYwCgmRt/
-TtV14iuuWTXcCB9ZM118W/sEAKxMqiMnqr4VZ43Dr2EPOjmWTU+rqWhLQsfPj0MO
-r1Fm3kCr2kf+k5o8o/Ry6a9bNaufrO9LsR7yvPEia/J8ofAAonWM5VHywK5V/+D2
-ZSXqscdpGN74cRu33vAs8V5Wcnc2EaRk7t3yBk8Cdek2If9pOTVWD7Jjhmaqxp59
-rCh6A/9NNpxhBQkCRaixGrqNae9ASQdtZAe32+ZxQ3cvhfNb8y11dHVWG6ft3vZi
-lUgBKCwWJ8y7rcpmUg0mQEGgGLpA0pdtOn0r20Re+WgeBiO1afi80JYbpICjtToN
-+9bK1GWwkyoXcHDCoCyGkk3ZJx486YjlZ+g8CqbYjqclisBRALQ6V2lsbCBBbmRy
-ZXdzIChLZXkgZm9yIG9mZmljaWFsIG1hdHRlcnMpIDx3aWxsQEZyZWVCU0Qub3Jn
-PohWBBMRAgAWBQI5KREOBAsKBAMDFQMCAxYCAQIXgAAKCRAXjuJ0+BZyxXK9AJ98
-8qcbCXD8dbu5UElIXyVgtCpSxQCePH23d1468zNXLosSjAM/9h0liSyJAJUDBRA5
-74f6TVYoIXkFDBEBAUkXA/4vTZbVHINxXv8ibNOwc8zRT08qo/+Iw9bk+VZT1Xjn
-A87pDJyH1k5TlikkMcTZvuKgssosymef60Nmn2/De+PBO8zvKHcTVu05aNVa73tg
-trwTl7ENt+W1DapWy13F/tX+STmZJpwJyNnc9LXe/purKQeNvcm5tOg4F/YG8d2e
-fohGBBARAgAGBQI5+H4QAAoJEK9FHtaSnhLg6gsAniX8LUlfBDyl91aWd2NRUzbg
-N5WhAKCCLiFZq9VNOkWvvDgjZzgAXj76W4hGBBARAgAGBQI6ouoFAAoJEFfKvVMG
-TqYaWVkAnAmGUup4WCbHu8c4wXvGswYDyYNXAJ0XIIJCKOFyKlof+v2Rm/J5IbP0
-NYhGBBARAgAGBQI6omaOAAoJEH5rTE5yo9FXsNcAoJHYIQi/k1v0FlYAZnYikG94
-LV67AJ9bb+qeiYkHgnAYqMLuk8pv1So6e4hGBBARAgAGBQI6oZ+kAAoJEFZ+so+o
-kYHJj8MAnAz2IpK9Bt3Kf+5tMZZar8GyciAnAJ4nbeQGuBXTZd1dtAAHCsHPvDpo
-TYhGBBARAgAGBQI6oY8UAAoJENuTRJDtZOBHC3UAoKJGpnx5MKT07nrg/tLcHDIr
-RILoAJ9WNsiSA+a4Pk8RXN7TT8NMXR1PDYhGBBARAgAGBQI6oYMLAAoJEGThPMPL
-m56Bj9EAn06SAivn1Ll5AOjpHcv+lyHu3Y2LAKCVY9ejgWzNsAXkyk1zzr/w65m6
-2IhGBBARAgAGBQI6oVEPAAoJENHLaIZZSoFYtqEAn1fiWA5C6foEV71UnZ9jAslP
-zFulAKCmyH5S32XA2oZiXOO2dh87tD3ku4hGBBARAgAGBQI6oVWbAAoJEH2lYKC2
-NiUF8WIAn2ov1kKivbanjlmkhqUfhJ4UgnmaAKCKbDev7w9A/x165BOa0gY4lsuo
-jYhGBBARAgAGBQI6YhEMAAoJEH7GRFHr0ksD+6EAn3xlIX9koN/aZmgzghEn01dV
-L5QVAJ9vHUwP4LTEYVe+oYPzFNW9Dx9fm4hGBBARAgAGBQI6YhIuAAoJEKU/65aE
-ev7dTGQAnRFFYj6VafoBDbi7cuuNddL4viwTAJ9Auv+fan1RWaUIVZzq5qgXsrcQ
-B4hGBBARAgAGBQI6oV6FAAoJEMPcgjWRkSGbbHgAnjXsGyCZ3Lf0MAq7ZzWZYQP9
-YjeqAJwKtrO440YlW1IyuYXQ6Ysgj76MF4hGBBARAgAGBQI6tTL5AAoJEIiAJody
-7R5edJ8An3LrnEhtPiweCq2cVStw0PSJb/brAJ45SNjE11cqZSYlPMd3z2S8UtEH
-OIhGBBARAgAGBQI6wMZ3AAoJEMiQcw+j+eMOCOMAnjkJqTQn42X9UHkPkTj/eGCk
-5qzbAJ9nPnHucrIC+M88X15gKCatzhgJTohGBBARAgAGBQI6wLzDAAoJENyUJSW9
-K5HzWmEAn1Xgz5P2xkoKTi/ng+UQHNPuhKIuAJ0VF4FFlwV7lEm0a/JiXObAJ64L
-x7QmV2lsbCBBbmRyZXdzIDx3aWxsQHBoeXNpY3MucHVyZHVlLmVkdT6IVwQTEQIA
-FwUCOmFc1AULBwoDBAMVAwIDFgIBAheAAAoJEBeO4nT4FnLFUjoAn0Ks6AlwN8H1
-i8imyQ1UDEFpxe3aAJ44hhl/Ta/Z5KgiKoNUUg8oRNQFFYhGBBARAgAGBQI6ouoW
-AAoJEFfKvVMGTqYayQkAoISw+fWv05EiYQ9xkwJu5XtTokjWAJ42ZCjgrXATuX9c
-SVzTMZY/FLKolohGBBARAgAGBQI6omaUAAoJEH5rTE5yo9FXnNAAoMg3JWMIB2ut
-++mWLBlAuEIOIihLAKC7E0ST0zeH5NnsYb36+WArLT5CjYhGBBARAgAGBQI6oZ+n
-AAoJEFZ+so+okYHJ3qwAn3G9EK1LlPeNoaODc4svKocgCSaPAJwID4VnVmt1fy7f
-VwEmJtESEFe0e4hGBBARAgAGBQI6oY8jAAoJENuTRJDtZOBH/QYAoLgGSFEQ4KKN
-Fo2oB1rtMXj/2wVFAKCT5DscciHxrEsnMXfvi4Hgyqgdb4hGBBARAgAGBQI6oYMQ
-AAoJEGThPMPLm56BN9MAn2//so0qo5P67lP2nlSmhUmU/ak3AJ9j1P74ZRFCIwy6
-z0na+KpxbEEgkIhGBBARAgAGBQI6oVEeAAoJENHLaIZZSoFY8l0AoKkG8dRzB8FE
-EPgv7FMT+M5PiuUXAKDs0G3bfbJOToLFO4HwB423NeCY2ohGBBARAgAGBQI6oV6J
-AAoJEMPcgjWRkSGb5J0AoJvPVCSA82Sng0c/5CL90eB/9Us6AJ9MZVTutJi90A4d
-Ej2Ju1HojNfArYhGBBARAgAGBQI6tTMHAAoJEIiAJody7R5edPkAoIynoLSyLyZ2
-3VSx4whOWHHAnPMJAJ0UArDeP+hl3pF5jiOo3Q6mgSGfLIhGBBARAgAGBQI6wMZ/
-AAoJEMiQcw+j+eMO2OUAnjLKCBmwGHJmOY4shJD1uEvARSrQAJ0XeOy8ksaL9F6U
-Gaye9Ane2/Gmz4hGBBARAgAGBQI6wLzLAAoJENyUJSW9K5HzTJYAnArbbEZByEsk
-DTu6xv9w6EeWv/qsAJ4yZ6Xa8m+Om14k980SljIr179sGbQlV2lsbCBBbmRyZXdz
-IDx3aWxsQHB1Y2suZmlyZXBpcGUubmV0PohXBBMRAgAXBQI6Ye2+BQsHCgMEAxUD
-AgMWAgECF4AACgkQF47idPgWcsWkmQCeOt47//ErUkurExhyXnhQmjI47D8An0tV
-6jn4feMbYbmyV7vSVVy4oa/BiEYEEBECAAYFAjqi6hYACgkQV8q9UwZOphqZ8gCd
-GiL7pKZGl8V+PmG3ps2bS9+XvKIAn1w5+AHxx9qXFIpOdRyc7QD+LjI1iEYEEBEC
-AAYFAjqiZpMACgkQfmtMTnKj0Ve9HQCeOEo9OTFkV3o5qVJwg3070mAzpdQAoMQQ
-qo+R1Pavd8Alkpu45MkAncqliEYEEBECAAYFAjqhn6cACgkQVn6yj6iRgclZrACg
-kkerLWeOrb+hx/E+FG1WdQ92oSsAn3MNG2fYsFptd1yh4LD4IOqE0pFiiEYEEBEC
-AAYFAjqhjyMACgkQ25NEkO1k4EcukQCgoUn1SWSVJK4kj0GMrzMiM7/HLv8AnRSV
-RolejSRG6pt84KgWVOn5mW/GiEYEEBECAAYFAjqhgxAACgkQZOE8w8ubnoE+ZgCg
-jmIluke/eHJunoLuO2txdU4Rb0gAoNK02FeLlJUb4czG6fMv/N5oktsHiEYEEBEC
-AAYFAjqhUR4ACgkQ0ctohllKgVi1iQCgqfW0k9L53kONj8SmGOSJtV6FJxkAn21T
-HKGEOPSyc8aKMRGUUsKVJ1vWiEYEEBECAAYFAjqhXokACgkQw9yCNZGRIZvX6gCe
-LYPUxWQlFUyOz8XYJHY5zLYPc+8AoLHS1+OzaNeUOF7zazhebwFhVbEMiEYEEBEC
-AAYFAjq1MwcACgkQiIAmh3LtHl7uuACbBilA1sA2P2JifE6AZPiHiIs9XLUAoJoY
-RVE9UP2snL9TpSx7lpzsSIowiEYEEBECAAYFAjrAxn8ACgkQyJBzD6P54w7cnACf
-VjZQnExXAv4sAW1GuKwzYtvGEPkAn2TRbIFW+C2LGDJNl/1zQeSlDLWkiEYEEBEC
-AAYFAjrAvMsACgkQ3JQlJb0rkfNMUwCgt8J4pw8qwiWVNUDRWAGshv/vRJUAn3MU
-29x88keUJM4S9oWvw41YI85PtBxXaWxsIEFuZHJld3MgPHdpbGxAYy02MC5vcmc+
-iFcEExECABcFAjph7wsFCwcKAwQDFQMCAxYCAQIXgAAKCRAXjuJ0+BZyxWirAJoD
-39/0AZK6FltXjv1oLpJmslLdLQCeKm28Uyv4HysxhC0zufVBST9hK9yIRgQQEQIA
-BgUCOqGfpwAKCRBWfrKPqJGBye6oAJ9Jvu+ro1c8MA/7vROD4WhH5A5kAACdHZFV
-ILpqZKY5PX6airLJkFNyRSSIRgQQEQIABgUCOqLqFgAKCRBXyr1TBk6mGqUwAJ4w
-l2pFeL0BkLLQGErwIyAgS8puowCfVXp68uMriB/F56Fd4iHF3O8+ZuKIRgQQEQIA
-BgUCOqGDEAAKCRBk4TzDy5uegZv4AJ0bElzl89dUg0ONgUO7qOu7xiCmfQCfRFH7
-7CcMiX9uxTswP3F9C7nDS3qIRgQQEQIABgUCOqJmkwAKCRB+a0xOcqPRV2/5AJ9Z
-njjHsDi8uhGg2lyGHsGg41NIbwCfS9qKfHJjFFszID1T4ja4nHsMtmmIRgQQEQIA
-BgUCOrUzBwAKCRCIgCaHcu0eXjIKAJsHv49nIBSfOcGLIRePTGMiOLFI6wCfXDzp
-KFyX+dxOZt3qT6jujiQpZTeIRgQQEQIABgUCOqFeiQAKCRDD3II1kZEhm4I4AKC5
-vwsD8Rslq2HhgbOmlS3rvV9mQQCgjbd+fsO91t+F+3Q0LuaUbzEaoBWIRgQQEQIA
-BgUCOsDGfwAKCRDIkHMPo/njDkp5AJ42DzStyPGD7eEMaS+RW6IeNDWeswCfSaSv
-XA2PvSex7qMyzVe6xJNwDwSIRgQQEQIABgUCOqFRHgAKCRDRy2iGWUqBWIuNAKDX
-SqkEFxqdZWv4NU48hUB+D8d5nwCgvKsz1yfRxvCyIFkbGxHV3zNJEqWIRgQQEQIA
-BgUCOqGPIwAKCRDbk0SQ7WTgRz9NAJ94uuOt9pDheNfbnFIJLQemikkrzACfWAEn
-Qjhw6hHNX7dioOuR+UgshySIRgQQEQIABgUCOsC8ywAKCRDclCUlvSuR868/AJ4t
-/KSyTGzZUVjwSrRQYByuKnrBNgCeMwVMvH879zborpgXUqBkls3YOR20IFdpbGwg
-QW5kcmV3cyA8d2lsbEBjc29jaWV0eS5vcmc+iFcEExECABcFAjphXO4FCwcKAwQD
-FQMCAxYCAQIXgAAKCRAXjuJ0+BZyxXjSAJ9IyTcfYDh5Dwlyebnhq9Foii4gBACd
-HTejVdDfIrOrUjtQ4TWDypthyhaIRgQQEQIABgUCOqGfpwAKCRBWfrKPqJGBydgV
-AJ0cL6kMOTpWk2SQlkb5mU/sJgX5MgCfWHKN/RMVHwak8wdA09AEgCQDT4KIRgQQ
-EQIABgUCOqLqFgAKCRBXyr1TBk6mGijFAJ45/wZpCwYv6tFs+oledFz6pUwLtQCc
-DHSSS5B788CdK4pkNL5BfrbOA7eIRgQQEQIABgUCOqGDEAAKCRBk4TzDy5uegR+t
-AKDaHO7QfYb1Hldb/5Ny9+fxqLUo0ACgy9hXkubFNKqpRBWhyEBi+PCAAluIRgQQ
-EQIABgUCOqJmkwAKCRB+a0xOcqPRV40BAKDhSfcFe9CM/ZUnxdoHOfQzD9+/qACf
-UHqi/zOctYWg7+x76h5SXcV7qkqIRgQQEQIABgUCOrUzBwAKCRCIgCaHcu0eXgrg
-AKCja81EXntgHgJhk/8sSgIUTvb7gACgtj4xIH6eQSUcHzq0Xd8GlEg27n+IRgQQ
-EQIABgUCOqFeiQAKCRDD3II1kZEhmx9WAJsHViFyGDuznrh3aVMfyD7qF6DFMgCd
-GL6jYdNNlUNrP5POrqdCQI/uataIRgQQEQIABgUCOsDGfwAKCRDIkHMPo/njDtub
-AJ0V3ien/jICNywJ2RpkAXTDNS21RwCfWViO3UdFDqsYzKCpkAzr7utJdiqIRgQQ
-EQIABgUCOqFRHgAKCRDRy2iGWUqBWBV8AKCVcRIJPlNrbMYKiFLK/igUBesvCgCg
-4poS9VzusjkShWAqVNn90ayxItmIRgQQEQIABgUCOqGPIwAKCRDbk0SQ7WTgR4If
-AJ9RFT/GIyOZOOEIpZAgYoBMcnQgzgCgvP355PPYTreqWo0FDgSxOafDWZaIRgQQ
-EQIABgUCOsC8ywAKCRDclCUlvSuR80GZAJwMNAGH8ZLsAybMJ/k9xloazYdsKwCf
-R6b15VcnFyBBtWIZid0wUJPF/5y0K1dpbGwgQW5kcmV3cyA8d2lsbEBjc29jaWV0
-eS5lY24ucHVyZHVlLmVkdT6IVwQTEQIAFwUCOmFc4AULBwoDBAMVAwIDFgIBAheA
-AAoJEBeO4nT4FnLFfHkAni2QwMJx3osqrD6/ddlfdPVZovExAJ9gynzqLFzL/++6
-lCfdj0AAT8VYRohGBBARAgAGBQI6oZ+nAAoJEFZ+so+okYHJWSIAnA0EYSkjZpeZ
-DkBupkg2l8gVczCIAJ4jCf9OiS+woV6cBwqVoErEaHP9O4hGBBARAgAGBQI6ouoW
-AAoJEFfKvVMGTqYa7moAoKdyRHHvvnZ8AXtTJtizwmwwUM0/AKCi7xFpCUkIVlBb
-rXI4+H//SFdhnYhGBBARAgAGBQI6oYMQAAoJEGThPMPLm56BLowAoLzZockq/5aG
-XtoZd9ZbeXIf7nr2AJ0d/NhM2SEBC7HGlSN/jiXQL5cRWYhGBBARAgAGBQI6omaU
-AAoJEH5rTE5yo9FXwooAoNs2pxp0JyNzg8W7llbKm3hZT919AKDU11wL2U/c3jEB
-Tzds8BgYOV9vcIhGBBARAgAGBQI6tTMHAAoJEIiAJody7R5enHcAn2Xg1Z1vijU/
-epXSkPFGdUzUSP1RAJ9K7CwtvmCU2IeM21Ofxc21N4aSBYhGBBARAgAGBQI6oV6J
-AAoJEMPcgjWRkSGbKg0AoJ8K0/6hiwW4zPmDEEyWz/FdDFV9AJ0dTktCn5BFsc/G
-EtFoAT8ZY41UnohGBBARAgAGBQI6wMZ/AAoJEMiQcw+j+eMORu0An2yd5W7PB6zc
-qJnDUnZS7r4xx/rNAJwJIbhyn8rYF+gFR5APXuBIaSJnTYhGBBARAgAGBQI6oVEf
-AAoJENHLaIZZSoFYNskAniPrRzO3Cn7kvOFp+vr1cGoc41AbAJ0YdM3n0zlXLgL+
-EJDZoZXa+FXHnIhGBBARAgAGBQI6oY8jAAoJENuTRJDtZOBHwloAoJ6MwsDbFmFZ
-bOEXMR6aA6iS1uvsAJoCRsDOad2mvV7uKGm8WWg9uw4lsIhGBBARAgAGBQI6wLzL
-AAoJENyUJSW9K5HzkXAAoLQmrReQZOBZOJIdYIL7ns8DHRz/AJ9PYQQTr/yojLNA
-oxnMpITtqNML7bQuV2lsbCBBbmRyZXdzIDx3aWxsQHRlbHBlcmlvbi5vcGVucGFj
-a2FnZXMub3JnPohWBBMRAgAXBQI6YV0CBQsHCgMEAxUDAgMWAgECF4AACgkQF47i
-dPgWcsUZ+QCfcXuWqcLIMugVU+hNb4ksM7Wh0swAmKZdOHxGuPnEzZLxANd1mh+o
-ZUGIRgQQEQIABgUCOqGfqAAKCRBWfrKPqJGByatIAJ4kOWmxRB8Gp0Qt5CuAqICX
-h+b6bgCfePafenjj4MlNnA9XL/33Lr7YIvWIRgQQEQIABgUCOqLqFgAKCRBXyr1T
-Bk6mGmZ3AJ9bP3hyoiJg2FKZj67d+QJEXtbvxwCfbIxRLs0QPtGcWGNp1a9hRsjL
-Xj+IRgQQEQIABgUCOqGDEAAKCRBk4TzDy5uegbLoAJ0Y6fVacc5uTXGC2A8Ldwu2
-qF0SvACgmGT5HX3LRXfKSYiXnPHeiCOwf62IRgQQEQIABgUCOqJmlAAKCRB+a0xO
-cqPRV+DhAKCXj3DwhUwir1Mo05ZcN4rQmm4AsACgpIxLZILww0P1ikrzVC4QcT5r
-QxaIRgQQEQIABgUCOrUzCAAKCRCIgCaHcu0eXjLzAKDPBxBKmmwFYa00EzqUkONo
-0k39OwCeOgHBWuaixXaXkxeuEcxZ7c/HrqqIRgQQEQIABgUCOqFeiQAKCRDD3II1
-kZEhm8pmAJ9viHoD2kioajxmUz/mYUFeJsFnDQCgqF8FSS5u/Snz5e78tMkQ6QB4
-1bqIRgQQEQIABgUCOsDGfwAKCRDIkHMPo/njDt9uAJ9VBB6VTOV6UANVTH7m/nll
-Fl8/ZACfZoFfRRQ2+UUnxypk5HD2Qd8Cu22IRgQQEQIABgUCOqFRHwAKCRDRy2iG
-WUqBWGW6AJ9mplLKda7e/wiuaL8jz9/4jwb5yQCdFIJBPw6T22iRHZsQ3K3t7s2O
-xeGIRgQQEQIABgUCOqGPIwAKCRDbk0SQ7WTgRw8IAKCs/k4pzfAwcmgsSWQFG1jl
-njBzDwCgi8CWjy9BOEwoUGgMiNQMd7BFYVCIRgQQEQIABgUCOsC8ywAKCRDclCUl
-vSuR81sqAJ9vSIXHYAFeG0HzIQhFKnxgHHOADgCgl3X+eogcl7NS50eG6sZP+Rkt
-H5a5AQ0EOSkRJRAEAJ/nHATDNyJ5pwfA+uPMCIAnVfTipoSZVKAYAq4wZNwkOTmz
-3JSGVG5YGLNX7CZPHchjH453Yzw/OE3wKTHVYByyEgHcjyhuXHX6yOh58Pxwi4S2
-aSx2mcuvl82QRqbG87xHIfwLOK/KLeTrLf/GpkVK6N1yhWsc9j6SEGTZtzNjAAMF
-BACJQ93VNUgh18NHQVr6P9qZb5b6BttsreL3SwMEQPEo5MGvTSKHfLY6c4nvQAZP
-fJpPbO7nzTSL6RmFoDfQ+bjcI28/a/U54CXvzFLqyS078pYeGtZfaxGtf2aBvDTg
-iecM0HlA6PYm70Ug7nDDVzARux8ZF+DZEz6U32o1oIrMxIhGBBgRAgAGBQI5KREl
-AAoJEBeO4nT4FnLF7HoAni1zeGac98aWo2Y6ksjrBUePH4d0AJ9aJkE+JhnF5kg3
-uthgTmRk5Dtxfw==
-=DJY7
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jmb;</title>
-
- <programlisting>Jonathan M. Bresler &lt;jmb@FreeBSD.org&gt;
-f16 Fingerprint16 = 31 57 41 56 06 C1 40 13 C5 1C E3 E5 DC 62 0E FB
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQCNAzG2GToAAAEEANI6+4SJAAgBpl53XcfEr1M9wZyBqC0tzpie7Zm4vhv3hO8s
-o5BizSbcJheQimQiZAY4OnlrCpPxijMFSaihshs/VMAz1qbisUYAMqwGEO/T4QIB
-nWNo0Q/qOniLMxUrxS1RpeW5vbghErHBKUX9GVhxbiVfbwc4wAHbXdKX5jjdAAUR
-tCVKb25hdGhhbiBNLiBCcmVzbGVyIDxqbWJARnJlZUJTRC5PUkc+iQCVAwUQNbtI
-gAHbXdKX5jjdAQHamQP+OQr10QRknamIPmuHmFYJZ0jU9XPIvTTMuOiUYLcXlTdn
-GyTUuzhbEywgtOldW2V5iA8platXThtqC68NsnN/xQfHA5xmFXVbayNKn8H5stDY
-2s/4+CZ06mmJfqYmONF1RCbUk/M84rVT3Gn2tydsxFh4Pm32lf4WREZWRiLqmw+J
-AJUDBRA0DfF99RVb+45ULV0BAcZ0BACCydiSUG1VR0a5DBcHdtin2iZMPsJUPRqJ
-tWvP6VeI8OFpNWQ4LW6ETAvn35HxV2kCcQMyht1kMD+KEJz7r8Vb94TS7KtZnNvk
-2D1XUx8Locj6xel5c/Lnzlnnp7Bp1XbJj2u/NzCaZQ0eYBdP/k7RLYBYHQQln5x7
-BOuiRJNVU4kAlQMFEDQLcShVLh4uc9KIpQEBJv4D/3mDrD0MM9EYOVuyXik3UGVI
-8quYNA9ErVcLdt10NjYc16VI2HOnYVgPRag3Wt7W8wlXShpokfC/vCNt7f5JgRf8
-h2a1/MjQxtlD+4/Js8k7GLa53oLon6YQYk32IEKexoLPwIRO4L2BHWa3GzHJJSP2
-aTR/Ep90/pLdAOu/oJDUiQCVAwUQMqyL0LNaYutZnzI9AQF25QP9GFXhBrz2tiWz
-2+0gWbpcGNnyZbfsVjF6ojGDdmsjJMyWCGw49XR/vPKYIJY9EYo4t49GIajRkISQ
-NNiIz22fBAjT2uY9YlvnTJ9NJleMfHr4dybo7oEKYMWWijQzGjqf2m8wf9OaaofE
-KwBX6nxcRbKsxm/BVLKczGYl3XtjkcuJAJUDBRA1ol5TZWCprDT5+dUBATzXA/9h
-/ZUuhoRKTWViaistGJfWi26FB/Km5nDQBr/Erw3XksQCMwTLyEugg6dahQ1u9Y5E
-5tKPxbB69eF+7JXVHE/z3zizR6VL3sdRx74TPacPsdhZRjChEQc0htLLYAPkJrFP
-VAzAlSlm7qd+MXf8fJovQs6xPtZJXukQukPNlhqZ94kAPwMFEDSH/kF4tXKgazlt
-bxECfk4AoO+VaFVfguUkWX10pPSSfvPyPKqiAJ4xn8RSIe1ttmnqkkDMhLh00mKj
-lLQuSm9uYXRoYW4gTS4gQnJlc2xlciA8Sm9uYXRoYW4uQnJlc2xlckBVU2kubmV0
-PokAlQMFEDXbdSkB213Sl+Y43QEBV/4D/RLJNTrtAqJ1ATxXWv9g8Cr3/YF0GTmx
-5dIrJOpBup7eSSmiM/BL9Is4YMsoVbXCI/8TqA67TMICvq35PZU4wboQB8DqBAr+
-gQ8578M7Ekw1OAF6JXY6AF2P8k7hMcVBcVOACELPT/NyPNByG5QRDoNmlsokJaWU
-/2ls4QSBZZlb
-=zbCw
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.ache;</title>
-
- <programlisting>Andrey A. Chernov &lt;ache@FreeBSD.org&gt;
- aka &lt;ache@nagual.pp.ru&gt;
-Key fingerprint = 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAiqUMGQAAAEEAPGhcD6A2Buey5LYz0sphDLpVgOZc/bb9UHAbaGKUAGXmafs
-Dcb2HnsuYGgX/zrQXuCi/wIGtXcZWB97APtKOhFsZnPinDR5n/dde/mw9FnuhwqD
-m+rKSL1HlN0z/Msa5y7g16760wHhSR6NoBSEG5wQAHIMMq7Q0uJgpPLZnQjrAAUT
-tCVBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucHAucnU+iQCVAwUQM2Ez
-u+JgpPLZnQjrAQEyugP8DPnS8ixJ5OeuYgPFQf5sy6l+LrB6hyaS+lgsUPahWjNY
-cnaDmfda/q/BV5d4+y5rlQe/pjnYG7/yQuAR3jhlXz8XDrqlBOnW9AtYjDt5rMfJ
-aGFTGXAPGZ6k6zQZE0/YurT8ia3qjvuZm3Fw4NJrHRx7ETHRvVJDvxA6Ggsvmr20
-JEFuZHJleSBBLiBDaGVybm92IDxhY2hlQEZyZWVCU0Qub3JnPokAlQMFEDR5uVbi
-YKTy2Z0I6wEBLgED/2mn+hw4/3peLx0Sb9LNx//NfCCkVefSf2G9Qwhx6dvwbX7h
-mFca97h7BQN4GubU1Z5Ffs6TeamSBrotBYGmOCwvJ6S9WigF9YHQIQ3B4LEjskAt
-pcjU583y42zM11kkvEuQU2Gde61daIylJyOxsgpjSWpkxq50fgY2kLMfgl/ftCZB
-bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuaWV0enNjaGUubmV0PokAlQMFEDR5svDi
-YKTy2Z0I6wEBOTQD/0OTCAXIjuak363mjERvzSkVsNtIH9hA1l0w6Z95+iH0fHrW
-xXKT0vBZE0y0Em+S3cotLL0bMmVE3F3D3GyxhBVmgzjyx0NYNoiQjYdi+6g/PV30
-Cn4vOO6hBBpSyI6vY6qGNqcsawuRtHNvK/53MpOfKwSlICEBYQimcZhkci+EtCJB
-bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucnU+iQCVAwUQMcm5HeJgpPLZ
-nQjrAQHwvQP9GdmAf1gdcuayHEgNkc11macPH11cwWjYjzA2YoecFMGV7iqKK8QY
-rr1MjbGXf8DAG8Ubfm0QbI8Lj8iG3NgqIru0c72UuHGSn/APfGGG0AtPX5UK/k7B
-gI0Ca2po6NA5nrSp8tDsdEz/4gyea84RXl2prtTf5Jj07hflbRstGXK0MkFuZHJl
-eSBBLiBDaGVybm92LCBCbGFjayBNYWdlIDxhY2hlQGFzdHJhbC5tc2suc3U+iQCV
-AwUQMCsAo5/rGryoL8h3AQHq1QQAidyNFqA9hvrmMcjpY7csJVFlGvj574Wj4GPa
-o3pZeuQaMBmsWqaXLYnWU/Aldb6kTz6+nRcQX50zFH0THSPfApwEW7yybSTI5apJ
-mWT3qhKN2vmLNg2yNzhqLTzHLD1lH3i1pfQq8WevrNfjLUco5S/VuekTma/osnzC
-Cw7fQzCJAJUDBRAwKvwoa1pnjYGyp3kBARihBACoXr3qfG65hFCyKJISmjOvaoGr
-anxUIkeDS0yQdTHzhQ+dwB1OhhK15E0Nwr0MKajLMm90n6+Zdb5y/FIjpPriu8dI
-rlHrWZlewa88eEDM+Q/NxT1iYg+HaKDAE171jmLpSpCL0MiJtO0i36L3ekVD7Hv8
-vffOZHPSHirIzJOZTYkAlQMFEDAau6zFLUdtDb+QbQEBQX8D/AxwkYeFaYxZYMFO
-DHIvSk23hAsjCmUA2Uil1FeWAusb+o8xRfPDc7TnosrIifJqbF5+fcHCG5VSTGlh
-Bhd18YWUeabf/h9O2BsQX55yWRuB2x3diJ1xI/VVdG+rxlMCmE4ZR1Tl9x+Mtun9
-KqKVpB39VlkCBYQ3hlgNt/TJUY4riQCVAwUQMBHMmyJRltlmbQBRAQFQkwP/YC3a
-hs3ZMMoriOlt3ZxGNUUPTF7rIER3j+c7mqGG46dEnDB5sUrkzacpoLX5sj1tGR3b
-vz9a4vmk1Av3KFNNvrZZ3/BZFGpq3mCTiAC9zsyNYQ8L0AfGIUO5goCIjqwOTNQI
-AOpNsJ5S+nMAkQB4YmmNlI6GTb3D18zfhPZ6uciJAJUCBRAwD0sl4uW74fteFRkB
-AWsAA/9NYqBRBKbmltQDpyK4+jBAYjkXBJmARFXKJYTlnTgOHMpZqoVyW96xnaa5
-MzxEiu7ZWm5oL10QDIp1krkBP2KcmvfSMMHb5aGCCQc2/P8NlfXAuHtNGzYiI0UA
-Iwi8ih/S1liVfvnqF9uV3d3koE7VsQ9OA4Qo0ZL2ggW+/gEaYIkAlQMFEDAOz6qx
-/IyHe3rl4QEBIvYD/jIr8Xqo/2I5gncghSeFR01n0vELFIvaF4cHofGzyzBpYsfA
-+6pgFI1IM+LUF3kbUkAY/2uSf9U5ECcaMCTWCwVgJVO+oG075SHEM4buhrzutZiM
-1dTyTaepaPpTyRMUUx9ZMMYJs7sbqLId1eDwrJxUPhrBNvf/w2W2sYHSY8cdiQCV
-AwUQMAzqgHcdkq6JcsfBAQGTxwQAtgeLFi2rhSOdllpDXUwz+SS6bEjFTWgRsWFM
-y9QnOcqryw7LyuFmWein4jasjY033JsODfWQPiPVNA3UEnXVg9+n8AvNMPO8JkRv
-Cn1eNg0VaJy9J368uArio93agd2Yf/R5r+QEuPjIssVk8hdcy/luEhSiXWf6bLMV
-HEA0J+OJAJUDBRAwDUi+4mCk8tmdCOsBAatBBACHB+qtW880seRCDZLjl/bT1b14
-5po60U7u6a3PEBkY0NA72tWDQuRPF/Cn/0+VdFNxQUsgkrbwaJWOoi0KQsvlOm3R
-rsxKbn9uvEKLxExyKH3pxp76kvz/lEWwEeKvBK+84Pb1lzpG3W7u2XDfi3VQPTi3
-5SZMAHc6C0Ct/mjNlYkAlQMFEDAMrPD7wj+NsTMUOQEBJckD/ik4WsZzm2qOx9Fw
-erGq7Zwchc+Jq1YeN5PxpzqSf4AG7+7dFIn+oe6X2FcIzgbYY+IfmgJIHEVjDHH5
-+uAXyb6l4iKc89eQawO3t88pfHLJWbTzmnvgz2cMrxt94HRvgkHfvcpGEgbyldq6
-EB33OunazFcfZFRIcXk1sfyLDvYE
-=1ahV
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.nik;</title>
-
- <programlisting>pub 1024D/2C37E375 2000-11-09 Nik Clayton &lt;nik@slashdot.org>
- Key fingerprint = 15B8 3FFC DDB4 34B0 AA5F 94B7 93A8 0764 2C37 E375
-uid Nik Clayton &lt;nik@freebsd.org>
-uid Nik Clayton &lt;nik@bsdi.com>
-uid Nik Clayton &lt;nik@crf-consulting.co.uk>
-uid Nik Clayton &lt;nik@ngo.org.uk>
-sub 1024g/769E298A 2000-11-09 [expires: 2000-11-10]
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDoKphMRBACXqpAlgcW54cNw4RBJvlbX5GZ4+VGpV8AyFnkkrKelwH+qgViL
-L96W7iXCEQqciAAQ2Jw6AMskSdVbb24Y70foITKGo1VEXBKJci3sdKvuPWkHNlJq
-zGKIrikVHLrD5Yixt1b6SVntWiRJaddiUaI21Zcuechaap3isOAdYrNR8wCgluEV
-qGB0ng92wVENiIaooHiib28EAIzfn+czzPm19gtAM03W/otZJqsHsIGWuuoIC+Wn
-Gr9aGVFGB9NcYXHz+jdwSe3o8oE84ohWBI/JVX4K+xCt1gXBqRax4F1QdDse3np3
-o49bV79VFbaec8htk88NTp6Xwd8b1GaUFXFbtqAN7DbZEz8oB+57E+2q+ajFQTx1
-X6NgA/99QvNMD+SWc73a5SbicKPw0DDktkhHlE4re255nfvgnqjpmxWYyT80Ra+2
-rqABKUrgGgegv1I8/w5zbGBd8h3lO9opMQ1qtt4oAKv/incBh0OouMGyQRINQIMQ
-YQHcUmOu1ds5ijS9B5QCfn89TO4aCoJiS17FRxpJmoNrx30/LrQeTmlrIENsYXl0
-b24gPG5pa0BzbGFzaGRvdC5vcmc+iFcEExECABcFAjpkjbsFCwcKAwQDFQMCAxYC
-AQIXgAAKCRCTqAdkLDfjdVVfAKCA2kYL9EcgyqldY5J1VnyWUKWzAgCdEe2xcNjY
-PILcvlRE+WtAwZ4oHYyIRgQQEQIABgUCOm67jAAKCRBdUhyM5rFQFmTqAKCZAG/9
-xzh3ZhbTk/vD1RFDFhEjtACfY5oFGV5jon4sJHsZRQ/+fv5F+JC0HU5payBDbGF5
-dG9uIDxuaWtAZnJlZWJzZC5vcmc+iFcEExECABcFAjpkjdcFCwcKAwQDFQMCAxYC
-AQIXgAAKCRCTqAdkLDfjdZ9DAJ9LCLBIGCffBCRwI3YQzHM8UPECCwCeKe5kOASp
-LvEMrRp9SVhX+7ZKqU6IRgQQEQIABgUCOm67kQAKCRBdUhyM5rFQFttwAKDF/r0c
-YGsIGOgImbTy4zNK1MV2TgCgjBNGGZkp0XXoYrFwJq+/D1odHPW0Gk5payBDbGF5
-dG9uIDxuaWtAYnNkaS5jb20+iFcEExECABcFAjpkjeYFCwcKAwQDFQMCAxYCAQIX
-gAAKCRCTqAdkLDfjdcmaAJwMbnDu0EHyFcba1los+qIu6fhligCghvGQ7yw/laW/
-udQ78rpE4ojsEc6IRgQQEQIABgUCOm67kQAKCRBdUhyM5rFQFoyQAKDq4xwjv8vg
-OF2brzuAMi4YCFwEewCffzvTLzYI/rj602axggnIrjFtegG0Jk5payBDbGF5dG9u
-IDxuaWtAY3JmLWNvbnN1bHRpbmcuY28udWs+iFcEExECABcFAjpkjfUFCwcKAwQD
-FQMCAxYCAQIXgAAKCRCTqAdkLDfjda4OAJ46HgEmTnz87tjh822xVxqDlSogSgCf
-RvBphjblryO40RfamhgL+X87xOaIRgQQEQIABgUCOm67kQAKCRBdUhyM5rFQFg6x
-AJ9ACILE1XLtBRYb9dLMryacFaqpuwCgwSdjGQLdRHk+1kfCSnweO4OtEra0HE5p
-ayBDbGF5dG9uIDxuaWtAbmdvLm9yZy51az6IVwQTEQIAFwUCOmSOAwULBwoDBAMV
-AwIDFgIBAheAAAoJEJOoB2QsN+N1X+0AoIJWL+1WWJ+/17RsrdxuETbthv4wAJ9g
-n95Juu368QnIvSHDxgnyxxSOxohGBBARAgAGBQI6bruRAAoJEF1SHIzmsVAWpPkA
-nRq+OwehLht3RdZ0eEMaBovxgre6AKDU2u+ORxySutpVAXqt1nbxg2wJobkBDQQ6
-CqYXEAQAkEkfRicoO8I42BfA1Tgaut/HeUdWWLO/nGx6hL2FNkQ/vBhjinsvi3vd
-6+4eUE/O/3deTSGi9GtgXplCGxaDuF/nr9JjAobOQ0f5TFLiILdy8OL2SZE6VHO6
-VfCoGy1N7Eg3jvzJ8pFNxTdVww8HIlArnNn8Kqww57uustQYISsAAwYEAIFghSt+
-tj3C5koFh7IXPLNHrux5XsDMaCUcDTsXjpEQ7WywzHUVgL2QHxeTbZ6ZMp6BkPkl
-sgPdNpFEOCCaUFzJ/z/1/dTGXPMuWgGInuy0bFA5mHdiisjLYP+tvRY170mVSjB+
-qVRErM/fzrO9eQtKkaYLozWXPTZCN5XKk4sGiEwEGBECAAwFAjoKphcFCQABUYAA
-CgkQk6gHZCw343XOsQCglQkSx/QqgZSCpsy4TqaR/vY/lZsAnjFYk/Nm+oFkvCrS
-YdG7pt2qPWQo
-=Ay+O
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.dd;</title>
-
- <programlisting>pub 1024D/9F6669F6 2001-02-04 Dima Dorfman &lt;dima@unixfreak.org&gt;
- Key fingerprint = 0F07 CC6F 305A 698A CEAD 8ED9 1D98 247E 9F66 69F6
-uid Dima Dorfman &lt;dd@freebsd.org&gt;
-sub 2048g/1CA759CB 2001-02-04 [expires: 2006-02-03]
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-
-mQGiBDp9u7sRBAClzDBv2LhLDcndJePLW7j7kJ7gQZdm5E6zH7pqldANjz1hNYiD
-t0vhrmsCLJriV+LKPKJvVHXe52NmzZJStryb6P8kIk6/Ynmul1l3nOwkT0504xEW
-XMByYYcfXCx5thE9WPHi5h/bIIyTroRWI8P51MB6MQxFU/yENecmtVukhwCgkpyM
-WNF+eU2wJcHjiT3lWc2/EWcD/1zruxa3UwBI4+gckUjaMQynpOdsHdqfNEbKPpXn
-gmeIte+O46yIXVfrq1OKavQXL55ogXmgHesn4a93wIa9wK7JDmH0lvM0Tse9D9dH
-iii+SPqwQvt3Xo+kwsphYtJsDqg3HPWGOvZzZlNiRjoKklJoQTe7lY3WmPxcObvB
-b6k/A/4gCues7IVIHCqey+2IYYhQxTV/tfvd3ztNokjMTgnINfeyDBafsU1hqgbX
-vXzvGGwPeUB9wvtZjkpcqkpIWzVqDorwXdAXhVw2b8eNx4gUeUZz7vB+qeB1uylA
-sGCT8jJg8w/a9oc1rhPEzyc2NaHr5QrUoMm7nrOw6EZwIzIa5bQhRGltYSBEb3Jm
-bWFuIDxkaW1hQHVuaXhmcmVhay5vcmc+iF0EExECAB0FAjp9u7sFCQlmAYAFCwcK
-AwQDFQMCAxYCAQIXgAAKCRAdmCR+n2Zp9iJUAJ9idv1N6Uon1m627EmfPqPTCITA
-QgCeLhsvzcDxBipq8rIUYwyk+laBnbK0HURpbWEgRG9yZm1hbiA8ZGRAZnJlZWJz
-ZC5vcmc+iF0EExECAB0FAjqpbr4FCQlmAYAFCwcKAwQDFQMCAxYCAQIXgAAKCRAd
-mCR+n2Zp9n3KAJ9sfOFqqRMQNTZwt3D1dNs2NeI/YwCggw8670QZvlfNmwu5PJbu
-giV4ZW+5Ag0EOn28QBAIAJisB3SGQZyFeJ26p2tn65Lpm0OscvYc+tXtzCBI5lu+
-WQ37f4s+oS9yy4AlnDL5jY+h+jY+IFSKig8vNZiti7YQpTAKA3A6su6iHs2E0mj4
-ZRpnHodpc3WCDvKV81Vx+TGwdVSnbnvr342x4/WTJSXjrWK+hPsvYE4Xy0csfUX7
-j3bApTQj9HkJIcaOZs772SclVY0hWq+Y/D4Gz/XQfNB1Ih+q7ncQ8BibVbBVd3U7
-1HpHC7pMi7OWaJ+8RZEpdcfa1UAHvWFqT9cy0W+SvhAH+xw9gydmF0LAS3XDCxGe
-sgBK0jZUD6y8jK8KofL5UpH0jZB3B5KjqI2++i9nhSMAAwUH/ReNyaenJJTjFbmy
-yPahw0iTwZIeXwbK+crB/o040ZPDRccXic2MWi9EdLZExq9KixSD8ZI62UUUnk7j
-NECpugIS61ZXdMIxlsDUafslO0U/d9mqKm9sqeAFeS7jBNf2rpEnmvKKjbV/X8bj
-IZzdJMIK3CdAhODWJSw/rH2wl7UdYZsvjrZI1QJTyZ0HitrYqQpINcKAhCi+qNiv
-lSic4CkBZPJKxGYj1ttX1jd39K4vONxoq5qbVFvjrSjOvaNHXT5r82dPyCm55ji2
-QTBjxac7hIXz1zQU4mhqxv4gFL/x11XHpJcCWVnUiFGYhwDGfv+c98bx2gywqdfX
-0Wh2N/qITAQYEQIADAUCOn28QAUJCWYBgAAKCRAdmCR+n2Zp9hdRAJ9BQl/kY1Fz
-4WemnjUFhRiqc0Nc/QCePLGBbvmC9fzbRY1BxEKlxgqC/5s=
-=oZZ3
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.green;</title>
-
- <programlisting>pub 1024D/773905D6 2000-09-02 Brian Fundakowski Feldman &lt;green@FreeBSD.org&gt;
-sig 773905D6 2000-09-02 Brian Fundakowski Feldman &lt;green@FreeBSD.org&gt;
-sub 2048g/D2009B98 2000-09-02
-sig 773905D6 2000-09-02 Brian Fundakowski Feldman &lt;green@FreeBSD.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.2 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDmwog8RBAC+zE0IpGNV1naZh9os6S//ct1MfEMBoHH2TQhajIfLVraWA1I9
-AbOTuYYsPgxqK44ZnPUnNLmgIRBeVJXklXsdvjtMrh7QMj7evAGneT4vVdVj/9aY
-7mEBuQephgvE4bUM7RPvOc/paiY08+HANljrvxcmMhygDTP5SEp/QJn7zwCghB66
-YVHI5u4xBAcHiHbyJWShmekEAIUWEIL4I33C9/yuenYogKLLS2/wmMYMCM5uMTkF
-jls9KtfW/TQz8M8ZU6xdVBQjvDpw9G96l78amjiMN9Gm32C8m3HJaN0V+4SGJjiQ
-fL07gu60LG0phnk1CtWLVQnH0LuIyB8jJeoaeYmS2Xv0rLLeMQ/hgUcQB8xu61Z4
-n1shBACf1w7B9ivEhBGWBsjuX2gTfW2eS4Mprs7FD1/8f/wbdvhitMdjZOFjOIO8
-yi/2W6B6T3suTcUgdC2qFmXkiWUun5kpGp/KRvrYm2eKpfveOL0HgD7juEZtBJcT
-zV4oMel8TlZidIjIgLUeTbGfxbYPm0gONEGZHsymlZg9/7sDS7QtQnJpYW4gRnVu
-ZGFrb3dza2kgRmVsZG1hbiA8Z3JlZW5ARnJlZUJTRC5vcmc+iFYEExECABYFAjmw
-og8ECwoEAwMVAwIDFgIBAheAAAoJELVSsEN3OQXWVdUAnR13DerFrFdS3xufFox/
-m9T+VKs6AJ0Y7mgJalqPTTalJB3fbWUeIsZBsLkCDQQ5sKJfEAgA5LI3C4rGWWbG
-cGZMLDhuBhjcoSFeWnrVVVZAPEm92+LcrfoT1Slp/2+KcKTJN/uQA0EpNmgUFBYr
-3vSoVoVm10xBxBIX0zP7uPQNYKoJX3gLBiRZ3xOo4A6VqEpRbo5yjj3rshN4IO9B
-T9zqx0ZoHSSsCds0Ax/m+0eSTghl+Shle1tbJstgcoxf6peKa6XcOAJWtQ+r6hZB
-Z1tpjmIrfaeG/26da858C4TcogNhi1cpbyfQTZA7070JBnpRjhcQpELT4hRsJV2G
-BX0dZn2hJOb5J5zl2M0N0Yx2BHM6mVT+oUc4EvfRn6fuhVRwIuckxwXaA31vWNPh
-v+S9VD5BqwADBQgAjOXR9HNAh/teG0p4ynOlWx5G+tBWSfqWAKOSpi9SKb2Zipjg
-bVNjmO4zNYhdAK6YbyQgrDrwUVPWoc8OieUACujklkY11eg8QFGr+tJow7iCMOPL
-ES5vW1sBUl7dN+4tf5QTg5q9EGHL2rTndEVeutFbcKPR8YQXdu/U5hdO9zha5fd0
-RWjG7zLTaukO4mT2bTuojgCrnsvZ4D0XRW+SUcfXZrbKcsoFiU3q+EvlOuWg0W5b
-FcFfAXSAzC2CpZlQV3hhSDkgeM3cbnb0hv7feSIizFpqFbNyOgarqymZIU07HcX5
-c44etbO++GQ/tMI7oCPUb9a5jIt/YqPvIvmPDohGBBgRAgAGBQI5sKJfAAoJELVS
-sEN3OQXWr4MAnjpZdSq11IEN34VjwhD+eBMcxjqaAJ4yDvFd8u5ehurCY+KjWSXo
-uPPUsA==
-=EiNZ
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jmg;</title>
-
- <programlisting>Type bits/keyID Date User ID
-pub 1024/3F9951F5 1997/02/11 John-Mark Gurney &lt;gurney_j@efn.org&gt;
- Key fingerprint = B7 EC EF F8 AE ED A7 31 96 7A 22 B3 D8 56 36 F4
- John-Mark Gurney &lt;johnmark@gladstone.uoregon.edu&gt;
- John-Mark Gurney &lt;jmg@cs.uoregon.edu&gt;
- John-Mark Gurney &lt;gurney_j@resnet.uoregon.edu&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzL/8IwAAAEEANuX7fcIa0S5fVATYQCGwgBJo9DxRr0m/QjrP4dJh/JEIjmv
-h37FMs9qsMPtyAZWlRSnbVFyQiz5ptFuL1irClW2UHzlLvd5s+pKMfIkJWDTnrvp
-0jFebYQt0chZeLcKT9s5sSo9ua+fUumOfaWyubUZPIqmDYqy98Em7wI/mVH1AAUR
-tCNKb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakBlZm4ub3JnPokAlQMFEDMBDfTB
-Ju8CP5lR9QEBmnsEALAS5dZyQXxsDAROz+yHizsbgV1Ok9vFwE5en7QnOGcSkQX9
-pE7MzzlbpP63toF9zWLF75dbXE5X0yYLoB0pvNi1NXhXqA0YbDeAi1Ed6uBXbomW
-MDdm0s+O0Y1NfuS0uKiFiJUDOjdBrgEbnmPZM/77dhr5UbmAtQUHFftaQfY6tDFK
-b2huLU1hcmsgR3VybmV5IDxqb2hubWFya0BnbGFkc3RvbmUudW9yZWdvbi5lZHU+
-iQCVAwUQMwF753W7bjh2o/exAQGjjwP+MKiFH9EfOGS7yr5NQ4+vWXuHe1N6fi9N
-jJsFfzT/RCM/wo/dNG/xhTgdCoCWRt0gKkv3SLEPYGDPDtC3Nf7HV/66wOiYYnxD
-3cmjgpLn5u/Ju0oS5xxNb5Ly8EZnfz967lIHjp/qhbZ9o7kO7Nkb7bUgozNqBaRy
-9Yo81fVAtrOJAJUDBRAzARCXwSbvAj+ZUfUBAeUyBACKoIXfYBpsKqmmnTg944Tw
-5t8lAFZ8qJz42Fjw+hswC6c+7b87imwaH3AjPnFmsA6f1ES7xDHG8RQleDtKsyik
-gHc9Yos/neVqwfrr4zSV1PdNPPpG5uNT/jI1k1M3pH8kwYdKiwaIHQb5+sGUQsO1
-ZoxCdzT7HJq4jJtBGVIRULQlSm9obi1NYXJrIEd1cm5leSA8am1nQGNzLnVvcmVn
-b24uZWR1PokAlQMFEDMBEHfBJu8CP5lR9QEBak8D/2V+1pP6zA1dvhRLcO2pGldn
-Q/dcVAAtZIZ7AUUap1pKXZF/Tt4gWKMtAHj01xUbwU1fmI6DF1p4AVjDqOxJDnoZ
-RD9gv0RiZXdUesXL2UBNHc/7f+amAJgmXNrP/m70ejgzPluniR5hQm76fKYjkxV1
-opRhhchTjhrFndoQ9nvQtC5Kb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakByZXNu
-ZXQudW9yZWdvbi5lZHU+iQCVAwUQMwEQWsEm7wI/mVH1AQHxMgP8D7VM+qUo0qGM
-uFUKqxoQcDPVKt2W1X6wWTHdj9cxo3oW1tlLEZ24Y2v5v1pzonvseaTjsse134dP
-a9qjcwXjs/zxXzHoQs3B9BZB2qXaR4T3YeuCjq2qIXGwsrrY5fkoch4OLg0/FOui
-dmNbFjVQkIma2rIRPa8GhXZJtGl+UEk=
-=bUtb
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.trevor;</title>
-
- <programlisting>pub 1024D/3A3EA137 2000-04-20 Trevor Johnson &lt;trevor@jpj.net&gt;
- Key fingerprint = 7ED1 5A92 76C1 FFCB E5E3 A998 F037 5A0B 3A3E A137
-sub 1024g/46C24F1E 2000-04-20
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.1 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDj+agARBAC1AfvgGQEVdLwS0dirwaN+pDDWWiaSWBNRNo4T4KKG2vyhhnUi
-f2PcjPx8rYLvbokJFltoTWos3lS8hD8PZGBDlImOPzffdm/GYEmr1mE8fQvzjdKD
-iOTqQi5IYYhLZIMmUpBTK7XN2zrM8VrkgCpb5TYtBrQUPheWs/SZ31EvLwCglUPA
-T54Joolfvk0Y8I6dSGYctpUD/3teZiYwem99CE3b1tsqavQ1MUfjwSPZQq8wjVe8
-GZUtwaeExugAxNjXIJeXiaCij7S6JSTS0ytyxZ5/O1QFmBhuD/7zjNFD8yB8nu8x
-slma7mVhMuhqkwU06hTkp6MNNJ7kRItoVETtLqR5mW+0UUSZyePQFIH9U7TKPG3W
-vYMIA/9btsMQD/7QA9p/m5OP4sfdVdNCZ32tJ534bMjDYyf/P8k7QzvDWU8f7lbk
-3vX5pSmHplws0PwSZITmRarMdEH9ucP+24m06MQ7YmDYyLlUCestT2gAxnB5/X1h
-fJnmdCLi/Vt19WrVM79ebddbCqCaoz0xv+1qOQmPue/vKXIH87QfVHJldm9yIEpv
-aG5zb24gPHRyZXZvckBqcGoubmV0PohWBBMRAgAWBQI4/moABAsKBAMDFQMCAxYC
-AQIXgAAKCRDwN1oLOj6hN4YuAJwOTOURcLpgAx4HT43jNxDYCsT7DACdFdGCwsi4
-w5ZiCeoizmoBMFvYTa65AQ0EOP5qIhAEAMAerdyvcs7DOxpsli24gkKJxCwHSq9U
-23k283XpZHOp/0eS6WEJMHMyQ7BRrx3X6mkSgBEnHdO6MetBQjOHdjSb8ycotrJa
-H9eMkZ/Iky6dbiWpPLI4ytS4Q8Z4oEGjUTm7pJiE/pgmaCX/kv0WMs/35En+42sY
-VoVU9bDI+X+3AAMFA/435RbM6ywO/kL8D3lhwINGEIqmxWpJDlXPPJf2pLiWZZVK
-MLGkHOTe2kUdd+E6WcoRZdGblOKxLACrlKpJa91aw1ftQT6rt0k8GDCGLT/33FWx
-2IRSf5sHmz8IOm6L8TcZU31hdWqpDLmiIj+IjUCx8+eAUjZcVRoj6BYnWc1Z64hG
-BBgRAgAGBQI4/moiAAoJEPA3Wgs6PqE3PKYAnikfYo//UA7/jrDuTXzqPmi/Un5f
-AKCFsfcXDbLGfWaAqe2YzeDR2Z55/A==
-=N4HT
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.phk;</title>
-
- <programlisting>Poul-Henning Kamp &lt;phk@FreeBSD.org&gt;
-Fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E
-RSA 1024 0x0358FCBD 1995/08/01 Poul-Henning Kamp &lt;phk@FreeBSD.org&gt;
-
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGP 6.5.1i
-
-mQCNAzAdpMIAAAEEALHDgrFUwhZtb7PbXg3upELoDVEUPFRwnmpJH1rRqyROUGcI
-ooVe7u+FQlIs5OsXK8ECs/5Wpe2UrZSzHvjwBYOND5H42YtI5UULZLRCo5bFfTVA
-K9Rpo5icfTsYihrzU2nmnycwFMk+jYXyT/ZDYWDP/BM9iLjj0x9/qQgDWPy9AAUR
-tCNQb3VsLUhlbm5pbmcgS2FtcCA8cGhrQEZyZWVCU0Qub3JnPokAPwMFEDV/uZj8
-RhrUfjKrKxECNmkAoJkszkn0MRLSjLIQdFSQoAIvXsaoAKDaLAvAv9JBTIhiPHYw
-a8YkNTtr6YkAPwMFEDQ+7sYIrLG2o9cqlBECGFIAn1n9YKcO0hJfgVT1sX/lAoS+
-a+0aAKCwrJjWaTvSjDbZtSZ2887P3MnFA4kAdQMFEDAghiMKfXRy8QybzQEBWsQC
-/37UbJxWsNURURdw1NDcJf4eJko1ew1au41ytTb792O1HiXTr1nKxa/HXg0+2d59
-HGynOVQfoKtEw2BHakYlNQNk1mznxGxi/4F0cThX+hmJ8/V8wjtm5bQ0hGMeFQjB
-4YkAlQMFEDjGXEvKbyuD/AwC1QEBMcwD+wWwOmzXE7wpIEZ1p5KsRiVBQ4F1VEo4
-LviQkE0jUx8/i0/Y+kRpb3sZc+yh84qYA9vrRe8IDqc1a66ZvGUPZOsfiICpJoH4
-ftPz8xMLgyfHZrSR+wICStXNAKok8Oq6a56+Vxjh7wpNDoObN5XfYyAr23yNoPh0
-7pP7dXNRfGKiiQCVAwUQNBDRpnW7bjh2o/exAQG7ggP+NcUV4mCzYx1MM05kz8Vt
-8OEjirEBthSypLf5FrXrJ3xZ38CNX4gckTY2iYVaXxStSMIaKdeLDM+ArU58UmtL
-06DXBAu8CXRfzgEDwxM/0FCvjDvoj9FuSyBRKtUIg7wwnCXJ2NI+hxYYF5eVWNtn
-FfPK4mTsf5Mb7O4jkG4Fw0iJAJUDBRAzBivas1pi61mfMj0BAeIhA/9fG0FYVdoF
-GBUsSFE2lLTth1T4uxkaUs5l6E30vhSckUdBA806kx7LaAXtj3loE7Dn/XFLm+VC
-nCZEUKe1ayb+Cp3Mrqu6V+vWvkDL3gs7lMALq5w27f3pji+jVPIPVJOdELjroqW+
-a1C0C0UaBeU5FYsv1REvNxEV3WEPTJd31okAlQMFEDF+jX1rWmeNgbKneQEBCrID
-/i/ri8/eXUXRJp2fqJqzvrWGTP9Ix1O4vMguah9IILijgpYyOJYkezZKijjVCVmL
-X7EwfNXfYkqLAWUa08eov4QfJfJDgfe+Z/3/UoX7RcJoy2AjTBZQzOI9JMkrzFdt
-FGYwMr/QXhOdVVpSGeZ/6Hkrs7pd2Z6MNNrRf81ZyJyYiQCVAwUQMXyV5/UVW/uO
-VC1dAQFyfAP/SujU+lS2WQuat4O2wZOQ1rswUt6CthG8MOsc7A9kfXnZbaM9Sdxj
-54CtAlqR4eJMOYk2kVqAtmCWETRuonJxr5TAJdf7q6kByVYcQEyDZvKJYwyrI9UQ
-SelSgczWwiSB01aV9ACaKlEF9iHYvIKBa9HwJu3A9ggW9SYaAHcxHzuJAJUDBRAx
-Sx5cH3+pCANY/L0BAY+TA/9YQPISXYaS+5r0I60wCJ+i3a9PC69Zak2ikgTHQi97
-LhpVtEsP3SAYInDw4YMS2oU9w1XxoiLLd9hUpcZlmO8Ip3vNF+E2ZCfR4sNzKarY
-5fdo+sxzatGWRPgnHjbm6RHWCw6qJACDD3VpaFjx2XD8QrOTyiObnbHhWBdoEAIy
-NokAlQMFEDE5Q6DvYbnpEdWO1QEBsvgD/0c6flBrSWr20oj8eRJ1zl8ZAP/rpV0I
-EBvb3ZFsHsJL8QzTsx1typFFghrT7SDBDc52xY90JWAflEiGn9aIL5Q+RHVxjw30
-yDaRPAl9ll82o34GBaWBEw83bsI6Fg2XxDfc2X0KkEutlYAEXjiM95PQS+9PM//l
-lDtPvkSxgpiJiQCVAwUQMOavJADy2QnruxtBAQE92wQAsKPq/U4G4ksslOXGaauS
-oBk9XO3lB147cSpra1w9ZxTSeo+8dgzNlxnugWDnw1mxauFJBAMgHl74rrlD+Hp0
-Ltb9oOyRl3riPG0TOdfaS3T8w6vw52wOKzUrZ/0pB+2sDHzUqZXBbhOq3OXs1ZMN
-e3jh8w62JsLBWry/YMWRMnKJAJUDBRA5r4KrpZDsojuazKUBAWpxA/97mQ6bH6q7
-32rASSvClNbOl+mAaXUG4SwoMhGTpU6ajuh6C13yTNGMv5LY5SBRYD2XqLi5RexM
-lYgPOo85zyLa8j8596Wcoga7+5Nn8DYDPxXv7qGE+Ehn4kdnd6nmtN377j5LIIUt
-daIKXw2ZDB2GYmmxZS0dq8SwLc0GBb7msw==
-=GFOn
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.joe;</title>
-
- <programlisting>pub 1024D/E6B15016 2000-10-19 Josef Karthauser &lt;joe@tao.org.uk&gt;
-uid Josef Karthauser &lt;joe@FreeBSD.org&gt;
-uid Josef Karthauser &lt;joe@uk.FreeBSD.org&gt;
-uid Josef Karthauser &lt;joe@pavilion.net&gt;
-sub 2048g/1178B692 2000-10-19
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.3 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDnuWJERBAChyOg7jb+Cj5UDqGfChHZDAN5GqF28W0GwrvV0RVWqlGx3pn+S
-XzDur7ijNQfj3jAAGgFErCptXWcDz7CLzS2GxddaMAaQcPWP9hDjJtUJ633xwjU6
-H0U0VPdLcWtJJCva1LvKp67ICkM4Wx8OdVHhCQN4akvNkYzdt4AG+s9vFwCg8Ddq
-naF901g4VlK1IUqWTxPUtocEAJROiv4o3aIWrXvD9YBxkwIrrvtR8V+QaB6drOer
-AU9NC3T2Vkm90lgmUpP+HCmpZt/T2v1t5a4HHjyf2ljD5ANeznAZORA6SowuWRhv
-ObmYoN9B+vzHCitVTXLNksJCK9kpEvbS5shzbU6UsecCUTohjCU4po2RrsSSILqE
-oXYjA/4/j3Qg/w0RabnS6RJyGDls3FBqS4gyVByaJpH81snvZUbw/y9aT9xdo1YW
-gUaLcEW09whi00M50vaMzXJ0KYcWHZzk7LrhOqcIiCAUm5Dfve3dwk0DbgVD6iCb
-LRI7NuB1Tm8YyvZRRqG2ZcfYVPZgVm3zj748sRaRSPWfb4wGgbQhSm9zZWYgS2Fy
-dGhhdXNlciA8am9lQHRhby5vcmcudWs+iFYEExECABYFAjnuWJEECwoDBAMVAwID
-FgIBAheAAAoJEF1SHIzmsVAWQIwAn0w8RM1V3LItIBHR8eshFGY2JEWYAKCEyE24
-oYKcuicRF1rIjYE/2rQiVYinBBABAQARBQI57mETCgZhZHBwcnRtcwAACgkQMaY9
-luwUC4HbZQP8Cb0k/oQeiWFQ8fi9xw8yhpnu7yeDTqelVddiOcsZsLxSwqVCygvE
-ywLtzUDeK6ZDiB4gXb9HwiGPiOk5dhtzHqiQOOFkjKoHWC/5GKCGxb27CGxUXt+G
-TW5FzdqyzA1mCL2wEao2d8KowXfnVQxO98FceerMMny88w5K2xYPMJiIRgQQEQIA
-BgUCOe6GJQAKCRBzh+KSrRDGxHRpAJ9kXxEpFoqpHh6ZCO5vzt8BVig+TgCePRZp
-I7ALUJffhFQ3hvHM2LnvFF6IRgQQEQIABgUCOe6GYgAKCRC2JAbmW8FSodhuAKDw
-AWzaNDrGEojOI7/GG6kRdP1llQCfcimMK6b+ghk4ZQQsmhqMAbcZySOIRgQQEQIA
-BgUCOe6G6wAKCRAgFTHVhF3+3XVKAKCApTk05imwb/TgvUuQJxXaVPlXtQCfd3QR
-0Ahvy0y8KAvWekNJimGhLN2JAJUDBRA57onQTVYoIXkFDBEBAbowA/9gwtRKJ34c
-Em00fkCO5mVfnZnQ6HUAiepfqKAetBi61IbuPZJ3xymTePq9P1XTeuZt7YgArcJF
-2eQhFC3mcfRpyKOCOcDJSon6rlZhNSSwWHlvuLepuE2Pt/D/oPDcDk50aWGBPMxK
-k9JJe7F56iCeqQ0pSZbD3KOuvarQaLdQr4hGBBARAgAGBQI57pf1AAoJEIjhex38
-5WVhPMMAnRFflWfwqE/7N0UHF2U1Bw7X+83LAJ46XAcPuhjfrKiDjpGJWPJNX6zY
-SYhGBBARAgAGBQI57yLsAAoJEBj1A4AkwngCL0kAn3isV53v+0kmBub2o44wBd0L
-0xb4AJ4ktFbTjFNbjfRj0bTn7iZzNx9RubQiSm9zZWYgS2FydGhhdXNlciA8am9l
-QEZyZWVCU0Qub3JnPohWBBMRAgAWBQI57l2WBAsKAwQDFQMCAxYCAQIXgAAKCRBd
-UhyM5rFQFrqZAKDlnAKtVcJbEhn8IMQaweOMFOtGvACg0CXGhrdEnSf3CIdXIAka
-IxXMD4iIRgQQEQIABgUCOe6GJwAKCRBzh+KSrRDGxFrNAJoDGBDBAdgtPu8el+wU
-n2+PXPDW4wCg3Gy/gd+64vyV7YdqzFhlAB4wG/6InAQQAQEABgUCOe6H3AAKCRAf
-f6kIA1j8vR8hA/9q3WGuLUuMF3H8dzNfqJDGWREa1mjvK7WDkS3762WO9hCfdIIg
-em88OZLlCXnlmaGbCVZ3eyEwbV6JQVqzrfrNQeEnVeILdNhuC/5SeNqJNbDpUC1Y
-dFA2YBsXO1lGoM/ZfBdDrFRS8Y5RBSPjQ6IG7/pM9Gtm0zI4liywLteIsYhGBBAR
-AgAGBQI57obuAAoJECAVMdWEXf7dvXQAniU1sn29A3+Xz5tVz7LMMHmC4xg0AJ46
-TA1BzhXOX5zTFaiaKfY6vwBeSYkAlQMFEDnuidxNVigheQUMEQEBYboD/ikGELEC
-nmAfoD6EiNnoChMp2TACRtGIiOXAOQqOIcjWOWCGyDHqOBosR78EHJ0x/9z82RXJ
-g815ttqHOueKaPoa8i8fF+3WZwjfEZr6MjGiX8dOuuD11qucy532iZ694FfyL1R4
-9LlWw2os1lMiu3Sy3vZyxN5z+tPPwCrnNOnRiQCVAwUQOe6GCgHbXdKX5jjdAQFO
-2wQAl15HhtwPGwzC7RtkJZhdu/Rm3kNGQRtx6I8k81G5NCOp5TOcnkvf0gZFlnls
-ZFmYCA4TehVrkThfVYdYyK52dMIoVorSFbMrR3cBE+DJX2IdLB/uxltc1IvLMosh
-jwnfPcwS9xFbNvKSbPm7Sv5A9gxkJEVh2TewbjS29MjN/0eIRgQQEQIABgUCOe6X
-+QAKCRCI4Xsd/OVlYcOuAKDWloqHTKm80hgbNV6f+pg6+67IjwCeOmwJnY3s5Mkw
-wts+n2ugc4faOHaIRgQQEQIABgUCOe8i7wAKCRAY9QOAJMJ4ArajAKDHV0d9rtFi
-HwBO5nt/grnF9BjQEACfXWhAVozW0/lZUUPyXNYiHcUgcR60JUpvc2VmIEthcnRo
-YXVzZXIgPGpvZUB1ay5GcmVlQlNELm9yZz6IVgQTEQIAFgUCOe5dsAQLCgMEAxUD
-AgMWAgECF4AACgkQXVIcjOaxUBaVvACeL56tzrJ95N3oJ64sQVgyo18bEX0An3Gd
-CM9mg6dAunhroSuY+73Y6ZGriEYEEBECAAYFAjnuhicACgkQc4fikq0QxsSzVACg
-nCcE565FTv9LhGJmmxjNZi4jNzUAnAkJn9QVDkwFp54Vtl921duYZQX5iQCVAwUQ
-Oe6KFU1WKCF5BQwRAQEUagQAiJqlq1zf+IrjiffxGzKP1vcCkeaXRiPyBHkS0yCS
-y6OBxPhdUsvOzT93qgRUqPGBB4Q7jM7abSuM99gZW9uQN59nwbBFzWRKK/Cz8xHM
-lEWIdMZHUXupWUTDBHdHERaj4NaZvE6RXgAdk4saIRT1IFLeWejpaBvLMN8XQXHL
-3XGIRgQQEQIABgUCOe6X+QAKCRCI4Xsd/OVlYY8eAJ40vquX/AaE+KslwUBVTBmN
-pQo/UwCgvAbcnU4rzYZ+TCBB4ZRUW+MpdhOIRgQQEQIABgUCOe8i7wAKCRAY9QOA
-JMJ4ApoRAKC5Wcxx1y8Dr9u4ePt0SA9IhZ22sgCfTOrGFzNJcy5nI2qDz1VoZPVJ
-QOu0I0pvc2VmIEthcnRoYXVzZXIgPGpvZUBwYXZpbGlvbi5uZXQ+iFYEExECABYF
-AjnuXcMECwoDBAMVAwIDFgIBAheAAAoJEF1SHIzmsVAWrvEAnA25W9/TOnsEaoTm
-teZSGg2KAIFvAJ0V7c6OGojBe8ctGclnLH7ICP8lKYhGBBARAgAGBQI57oYnAAoJ
-EHOH4pKtEMbEcBIAoMOq/6CtvThjqojHvSEGavUE3sgKAKDUmArUdbawnzF8Q74V
-KZ/CmrCmfIhGBBARAgAGBQI57pf5AAoJEIjhex385WVhUPIAoILrCWnWobHn9O7b
-zn54Aui/GG6aAJ9W7fRe+mAOsUEmKfT04zKSQmQK84hGBBARAgAGBQI57yLvAAoJ
-EBj1A4AkwngCYkoAoOdHEQmEnl5pwQj0f6/boXE/YprVAJ99rpmTV5i/8l3H14O2
-185LvwykibkCDQQ57li6EAgAy6eLPS6a6scj08nvURMX5xkuzKRgMExOdSKtSgGT
-95Ekvad+Pg0FsKVMsNPbEJQ4fJpsMS0xh25vON+z3Y3rIJEri/7fXxtPt3pcwcbo
-Hm8EcJwyFLs7SW41fT31LrTk1ZEX4bbkHe/SimYnqnmGycJ+wQ6pd7mDxiiqqXjK
-Ns4VUzcveB/GD0vS0ZLrXRWrH9mccXWt3kEGWYQ763RTcUxYeJ2cQwEQTjZ4oDjd
-TUOqY5Q8d4ijjpSKkZUBE7uxbxQ3R1EpJ/EvBlASJi+YxMAERHUdSL4f/QzU3Qhg
-UypDyGl+OhyxlQ1h9wKhuVugJq5eTJsH+AsBRFNqlhnSRwADBQgAjDFwDsZTWbFg
-hjW4DhZGOkZ9PjDSpFJuic7lb6kln9OYz7Vy6p7hB60B77ann31MtySKwO/PXtnE
-Gcxmzdp3GvXwLyg8OVOBF6p5VjRQD+vvYAv6LQ9dKuIW6wPcAfdjCxKY18Xjypnh
-Fql1lRY8Y7wv1M3Lt5PPTusPZaunSQOeD28YF4ww0YZvJOelgd1I1bmZ/f7ZVPvQ
-cDNHXTm/xwECfjDHjrJA8Qg15NZeew1tjLoR8naJUDI0CetBbvs0mEUGwjySDzov
-1Lz+jZQUJJcQcCx3u4RcE8sneb4jADy2F7LpzMKbmLym59FEK95MlQE+wnkixZcu
-ta1JwVq7zIhGBBgRAgAGBQI57li6AAoJEF1SHIzmsVAWGx4AoN0XDe6xdktWsoej
-fSw+/aM108z5AJ9GqM/+F/Exr5OnknWCPjFbKSBO4A==
-=BvSg
------END PGP PUBLIC KEY BLOCK-----
-
-
-pub 768R/7EBDECB1 1996-12-19 Josef L. Karthauser &lt;joe@pavilion.net&gt;
-uid Josef L. Karthauser &lt;joe@tao.org.uk&gt;
-uid Josef L. Karthauser &lt;joe@uk.FreeBSD.org&gt;
-uid Josef L. Karthauser &lt;joe@FreeBSD.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.3 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQBtAzK5TJQAAAEDAKlRtbnhuBNWwq+hkYyubUzCYZu60ZFtwdkCgyBurSzTmfMG
-1ylVOdwzpgFL8JHRAGhzugRvZqRiCrCl+CvYaeW2+ee3Yw+brl6YEqLMxy0ap2kD
-NbpZ7LIO7AMffr3ssQAFEbQmSm9zZWYgTC4gS2FydGhhdXNlciA8am9lQHBhdmls
-aW9uLm5ldD6JAJUDBRA3DNxYDu2852ZqdCEBAXrwBACTRn6uz+uFHxi9nj8qdg14
-m3SvBJ58i82IdyhuD5m04/Rgc3Bwk1VDY2eKHuILcgDInd94EePpHTxMvjblfImn
-No9yqKYQw+V2zbsa8idTVDb5eNWGdRmVndjY95ZVKuhhIlwqLJELvKKbYZjjSabl
-ijn+lvEEl+gO4avcQZnOjIkAlQMFEDRSgYdv0qcS0gZ4vQEBq/cD+gJsogBSFwYl
-otle1JGgq1lkIq46uJWS8h61QL9+wnKQ3l19VElXK3/s/HUqBZagKyrF7QSs1dhg
-T/RKSr/kdG0dPhLhqESgzii9CS6MgHM8CnmP7oDP78i1yAkVL9bJ/a22Il+YZNlt
-r+XOn9EivaFojjHFQy5a+7e/HEXbgtwMiQD2AwUQMxRrf6ZKZnTBjNYdAQENIgcH
-RcYYGiOYT0FAqSvAlHPunpPhO+9TBKD5FP307YtUTHdI19Y+LgFT599ond3wfArR
-K3ue6D1G6//kbemfLZVxOJ+PRpJ0jIqZQ//7mKAI3VGu4vGO0EGQLkzIfwiVaCwa
-8jZh5406CaqE7DkXVypvcVkL3hdqD8o16qht8Y23rjrEUgRYIIWUGftCAHWMZEq3
-NqU/nqzgIv72PMEC3jBjdPld84GOiX9e3XjOSur6uLMRj87e9qce73sYUsGb2/cf
-ypx8Hy/FN/FVUKbW4/ddHOeW75vBGgtIwY0R+eDW1wWXiQB1AwUQMrlMlA7sAx9+
-veyxAQFftQL/T64Xc63YXllDIVGw0ZQtM0cdolYzP5OAu2Pvb0iWiJia6SkxePJo
-FyNuWEO0obBpeP/QuapnceYUBNiheT4gRccEO1+VjFRuAiZb7+Huwh4FXrRbhJte
-3FmOE07jacQ9iEYEEBECAAYFAjnuWWYACgkQXVIcjOaxUBY54QCgi3rAVInCyy/4
-/8BPhXAnQGc/BgYAoOopcjB7kpP5JRgkh+Zfa62GgNuYiQCVAwUQOe5hBzGmPZbs
-FAuBAQFf/gP5ARTyrfk36GelJTBPaNFe1oYt6bI5dC/iD7Kaw+GOvOYMSTTOh+iE
-2uYefAC5bhjq6e5Z+DoU+TRubEMSHdeS+cR7/skXN3d6E33aDVRXmdKJI9Ek8iO/
-DTOq49Raxv7Uw9Er1OxktMkPiDi6EPgJwt6hKDqQ4Y+g3q0mWMEYlmqJAJUDBRA5
-7mN23EnUDlCYIW8BAfb2BADNmVAV6VW2nGYEod9sgMgxBjByV4Xdkh/eLk5J/fpq
-rknIFLD5msy9BEc1a1FjK0VZtCoUy/RPlCk8/bYYTthb9Xg6tNjcoLoYNRW6r6In
-o8JkpffH4jccaaXSAzcX91h4Xo/a7sqjCy0FSVl/EpAt8cSw4yAGqFU4yyYgkgii
-7IkAlQMFEDnueXIff6kIA1j8vQEBzvoEAJDyZ/zlKtINFF8Lyl3KV1ORYuauJGua
-IB0Dv1loZD/cDkQz2gpfL7Jkn+RLXZAzhhgJOeKxUefe/umr1S58fYUc4PKluvu7
-eZxTMZyK0w7wT3fUb5wwubDC2M8OytiyJyaKc7qYEMeJ7YrK1cBbT0mw1o8YMRtr
-98K6ZA7TAEfNiQCVAwUQOe8hK9bgof5PvirdAQFwXQP/V+1l21r51eR6lnmU69r9
-nuNhuAn1eQKKKWrFHOkJ7c3UhIItwHYUsO1ytWnbaLsQMBuVaiqe5ZPE+dZefc+L
-qXZ40O5WhU73x3BTPDtH4lbe97oTzOUMl7wZdu1U4rzR8tWU2GY6mC3Gh+1Rewxv
-NnwXUxvBg2zAzWo1PcfNyaaJAJUDBRA57yFBfEtnbaAOFWMBAfxqBACIZ+hnf7St
-MSCPRN1o5uGCnq+Saj5qD5edL3KGIvn3KwzpgYJraZtkQFz44SgzsFM720dLzG72
-Ck5uq2N7Ayu5eUi1/JgcgMnYTNA4wdTeSOC1ZrkOIXXyYgzEc88rs3TIRNJFarwt
-sqBJBvT7IBo+Zqk4OzHrnw1Qvla2pVtuKrQkSm9zZWYgTC4gS2FydGhhdXNlciA8
-am9lQHRhby5vcmcudWs+iQB1AwUQOYTMTw7sAx9+veyxAQFJwAL/Xk/6bm1NsXcv
-NKgClM3rVeF+Zl5M+hffa/JL4GXSrwCRTrAcRzDFEmT2hEdKVdsq4WsFTQFxpAgT
-qc6J00W3WiZwBZPD1hMzE3/PJiB1ZvTuNdyAxckvpwoAHA1BmciaiEYEEBECAAYF
-AjnuWXEACgkQXVIcjOaxUBZsxgCg2eyZMcbTrO39+2p+KN1XQAFlKvwAoJUuBkZ5
-7DTARF/YVKlyDo0kiZ0ViQCVAwUQOe6KnE1WKCF5BQwRAQGp+AQAqFXMM9pamu4Y
-f3GzaKWZe9vKzswWu2P1H+5I9+trNTZv/xNO2V6BbKaMw0nCrBiLja3M84KfVGBs
-85nu8AuV5tDDaj/elGpWzEkm2LzmzHLh8FqmatUr0po2UFc+JohX69dqFyXXYBa0
-wK5fic6rW7U2BFS/tbwx0lmUhMnHG/eJAJUDBRA57yEw1uCh/k++Kt0BAaRnA/92
-x+Ew+zeCaS2tTDMEYDTw9VkburcR2S/zXBzFh12oHb+1WjhTcDajhCumgof+ZKwf
-onQU9nN0nFy8YOGpmTsBs9TNOFq9XyJg1Lf1HGQ2KV7GqIas2OGtcnOLwyrQwET5
-kNHE3Y/OlekXBMBbUQzB9bUoX+OY/izKP/aWAxe+0okAlQMFEDnvIUR8S2dtoA4V
-YwEBNnMD/0B0sW3i3Obs4QOqoTxvoRYulGRtxpvEntdWycgHgnY0qPHhNZ4s1Hhw
-vYG/1Tx6YDWjEQyptdKQxZq5xZt/Yw/gD9gY6Y3x4PRlqp4kTcQg7YMDd/c7OdQ+
-4aBpQvkQ37Ib7catx5THnW4/mxxpvj4Rn3sR4zytHVTk2Frl2eg0tChKb3NlZiBM
-LiBLYXJ0aGF1c2VyIDxqb2VAdWsuRnJlZUJTRC5vcmc+iQB1AwUQOYTMHQ7sAx9+
-veyxAQHwdAL8DbjMvucetIb+3yjrRhG/EfzxQKRqKzu5isvGckc9K4AA0Xwl9TYg
-9v1QKsCqf8q8GOxyhEhGob5O+4USTcETgkerUjsMYK5uCEHQuGRZ9pYCH4A2qL3n
-8/rhcX6qxhgMiEYEEBECAAYFAjnuWXEACgkQXVIcjOaxUBZZGgCgqIsXrbcFqkyf
-Gn3Nw57oTwFflZwAnRGZwnHMFUJocLcSpAp76a8+QQc4iQCVAwUQOe6Kvk1WKCF5
-BQwRAQG/JgP+NbjceEgGYm89CE/FiPuq/EWD6m+gzJCWvVqmfPmX8PTlbaA+Jlzl
-cI7vUVKkvDEqnvVbnNgtpLMC6L2tonrB2vx47odmCLm7H8L24XpHOKyNiimm6fKB
-6r9z9mEWf2WRueMnjAGouNJUh0oGaS8RxT+MKzEFIDKShcMgaWkvlfGJAJUDBRA5
-7yEw1uCh/k++Kt0BAQ+TBACfZQI5vWUQ2S8dZBauOqvuF+k4VMl3bvr2bXAMm7Th
-uBJc50BloTirtBo2dt+zozgm5oELP3jHXwGXIJ3ODGPIBGVLdQLU4Aer35ziKUO1
-DL/GdE2yCdHX6UABL6De/nz3vILhjf1HcATcaUl+Wl3579Qax4zYU0KTccJVQND3
-MokAlQMFEDnvIUR8S2dtoA4VYwEB290EAJDiYx4ODYvElwbsS72OBzRkGTkbs8pU
-Cd+LHI4REUR63R0FpOdnjPPAesX4DeeoRhQ/Wwhp5Yaakvba3VPNRxIM+qOskPnN
-iVhBY/7EOZYcjWsnvhdwZQfrfOfBLQyVpXLFWmy9rzihYegOHXNyUrqX0CGu9ido
-8tkOscMHQ8Y/tCVKb3NlZiBMLiBLYXJ0aGF1c2VyIDxqb2VARnJlZUJTRC5vcmc+
-iQB1AwUQOYTL+w7sAx9+veyxAQHCygMAkQ1Itu9AEwmlYXbxEi9HCbgkZbBp73jc
-/qFyWmxa2D9F+a0hYksmN6RTYAmayenD4K88rnWM4OI4L3F3O1B92W5vCmKD4MvG
-ZyWGXxz8xk6SLNFC7NBIz74C/fB/QrgDiEYEEBECAAYFAjnuWXEACgkQXVIcjOax
-UBbA+QCgvWou6z02+Va9nlYsHgxjrHp6T9kAoMF95mQhMNA+uq9F/BAHa52MJIgg
-iQCVAwUQOe6Ktk1WKCF5BQwRAQFEFQP+Ke1kFqP7obQs4s3w2SZAhGTfUROcOISu
-QJ7s2kpkjQkA5pZOhJiCHAyDFYTQv6LKtjosIIb84oKE228QJ+C8ow/ds8fSlh/F
-G2GYFLvwwluZhCN6yOeshF034v1OiUD73K01m/O5QD/MqPVj8/SATHhCCZw+lC2o
-nTxxPnRdnvyJAJUDBRA57yEw1uCh/k++Kt0BAUkSA/9bXfJrcrjjkjra8ohCZ4qa
-nL2LjlMfcOEcpO36zdugmQU1+53/iw4FtKHgrZgZPNZjlx5jWldKrBEbFM3fa9E4
-03MWe9vNFLagKjSzFQlZojqLtHCO4pasGomBAn4kDM/W2cZJvkpl8JA+qLif7SU8
-HaFdlUg1fbF/9VeYXuhh/IkAlQMFEDnvIUR8S2dtoA4VYwEB3hED/0j1PKQNfRlV
-rPioEGF0uX95ZUEkjklKRehITBbXBkq1cQ3b1s/dIunzvs/BUbQdHpkLB1P57Xfa
-e6JcokvLH3ufk37d9ubmBkJHgdxSv64y58lp9YqUPe9gMbctN1SeBCOdQufz5sJ7
-XDiq/TqRPR2PHPLESCPhc4j5XoShg37+tA5qb2VAdGFvLm9yZy51a4kAdQMFEDgP
-y5gO7AMffr3ssQEBYGsC/iIslOxLXMgz9BSw1ndflqYOImPtn4OQJAG+eyZInVKf
-ZDhyEHtO6ID7zRNx+0whfAgEU760e8V5rEFea9U0/qY7QneanDRGI+rP81V/fnP3
-wdZBCGXDNMCM6ofcuTP6MYkAlQMFEDnuimtNVigheQUMEQEBgLIEALr7UlhPKziB
-hml1nZ3PuovK5B8OuO655YTpAiOD8JwHEUTXsVl46rX0YBDZB7EpvuaNfzbA7d5Y
-4RwrVGiF1xwLMkekPxa5j1XswmlXCDfpVfNfPYaRNobhMnXaPeGI9unkJBp1BsJS
-RPI0J3A3W/u/g2wUl+7B+ykInMOgG1m5iQCVAwUQOe8hMNbgof5PvirdAQF5egP7
-B76wggcC7IMvmTFEtt7f1v9W0XaA2fP2gmznSlh8FUkq6k0TgOx0uk1lM2DaQXWB
-7quXzwzpBKnesniCg/Ve4gyCvWOCQKtYR47y+lSzHvXrIW+7xRX6n1CjvpCdChlo
-3PrwUdWi4Z2gq5GElu22NvvHfssnB13UnBNAmhSIB1KJAJUDBRA57yFEfEtnbaAO
-FWMBAaivA/95fj5ScpPKEUEpwIwgX8g0Gx7BEYO6r+atQhf2pGbPHTKq1IcGqioD
-YD0ac2Sn4eBqsjxzTArnZViG0lITyoxegfYS3Tz6MADdpX5vGzWaa5Rs1IXjtjuv
-4hINpCySWRxAlJPZXdz7rwFB+oCy1IzBFf4PujCGbWb2f2v6qKOIkbQSam9lQHVr
-LmZyZWVic2Qub3JniQB1AwUQOA/Lgg7sAx9+veyxAQHeXgL8DJQ1xeeFLQOrg4vI
-5nfQOjPJqaZ4xpPv1k5wIjPRElGj7QACZVX5L/bEzhK+7fggSXxBb4cmEhiDOIFO
-BR6HWL/RnMimoGtC53OHKRrA43/eqB/saCbTfN4+KAypw1WaiQCVAwUQOe6KjE1W
-KCF5BQwRAQEmMwQApmdAtX/o4jD+RqGr3YgzI8HiGt3GCrDjvZUnC4zKG6YvEvbH
-Xel57TmiIQ6Fi3WhOupGa/jcosB+XJ7vchrsCvB/LfLY4c6DtlFdXnQn0loU+WjL
-PjAUI4ZSSy2Wvgsck/9fofJJyUw/QWG+LlbCmBbGXed7Y8CwxLS6HvthNGWJAJUD
-BRA57yEw1uCh/k++Kt0BAYGdA/4jp6QvLYigWfH+ZQQ07oZoa1bIRksCbiZBNTKH
-315qV26M8FGj7+7G1lqlcbqdLqRUeNLFBiTHuycOUD+zN48dxTkspT89+XfajMFY
-yEkdND4C+NUAaBdspjiCsA2Pywhg5K2Nb2mGbqhRyafdl/lDx+IoJ7tL9u62GsdK
-+wpMrYkAlQMFEDnvIUR8S2dtoA4VYwEBvpYD/02+ANOeYrF3nRr32KOxxsJkXZQ6
-7bjQLaOHqubnWbG1+OSOcJ6+it+l/uotFghzsvKk/qYG57n23yB526ePyTF27eYP
-mE30qUt/msLiJ2C8OoWs7UUqWp9GyZBKNt0ETc9qD9Ns2Qd8a4AEePJfsSC5v2rs
-SpVIsgagGHpZqMKqtA9qb2VARnJlZUJTRC5vcmeJAHUDBRA4D8tRDuwDH3697LEB
-AZU6Av0e8n+hesovDEknox3JKhC1L33jXu0nOQZ/2Yz6jY1icghgy/L2KO57+T2Y
-BV6DGpk4IlY9jZJRRKtiKCHSMahng7whIHNSugWqzLNanK+YPfXC2CsUI02w1srj
-FcDurBiJAJUDBRA57ofYH3+pCANY/L0BAR+mBACPZUQxKJbjtlMSbJ5+Ox09fD3+
-oUR4k5mBMyFb0lQhTJ7DW+O7h//xyYyPZA3AEe356zb94J9OPjRW4qxWSzgMlckF
-CVFa8Ru0/TivE0ArHJbhQnMtrFYbQar5t2RNrlq+B8UqhmA5D00qfdM9/62oxBmA
-f0g8rbiWGEL5XmbssIkAlQMFEDnuinhNVigheQUMEQEBOPIEAKGnDr7tgz3kuRaU
-8IAglUDXaRPqIpsr1UFEwfg9n6PXXbU/vRn2549zaApsHTTJnYZ2ENH4hv9Og5c1
-t9Qr+DEV7ht+8Z0ykoxyFJb9YDEO9W2Y0WTglYMaqBD3NDdo4Mamuj+RtsVxGh0Z
-Gm/G7Wu+cTtnwCoSbQ/XEpX2Re5kiQCVAwUQOe8hMNbgof5PvirdAQEUwQQAlMnI
-YZPTtjsl+IUGHj/Faay52iUxRxeyWenCp7VYKj6SBgnKO4STveUhIlqVM1iRuf6h
-tmSTXF1kztXzPGdTqZig6x7WOLAYSqsEY5DdM1W90+UYTnf0pbkQ1pAJ/2kfd1uo
-4W3zpzgQZK9FFsW938C4VqzxBS8bneYmq4JAa1OJAJUDBRA57yFEfEtnbaAOFWMB
-AVcxA/4i5j7aqDIkboVaD473bQKYs8GB4riBx3VGEHHfASe7Bracv0jawdPwIUhA
-VpOT5hbtJH69tsPUUXphtspcqCrJ8xObA5RuWdBTMxq12+dYYKBoop/0F6PaOSh1
-4KVX8m0J9/iGHV+J5QZSKPpBEAAwwK1fJQzBw5DHW8cxxE3OdQ==
-=dREe
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.andreas;</title>
-
- <programlisting>pub 1024D/6C6F6CBA 2001-01-06 Andreas Klemm &lt;andreas@klemm.gtn.com&gt;
- Key fingerprint = F028 D51A 0D42 DD67 4109 19A3 777A 3E94 6C6F 6CBA
-uid Andreas Klemm &lt;andreas@FreeBSD.org&gt;
-uid Andreas Klemm &lt;andreas@apsfilter.org&gt;
-uid Andreas Klemm &lt;andreas.klemm@eu.didata.com&gt;
-sub 2048g/FE23F866 2001-01-06
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: Weitere Infos: siehe http://www.gnupg.org
-
-mQGiBDpXnNsRBACosqQnFwHgBcl+H2TXLWG/uAAdcZ3d4vlC9tKIPif/WovfOTuA
-CM5KMb1Of2uAQm5S6KpSCDSudZIZw2az3ka5ESQt82kgd/1Ue8FJDdPkGY1RZrEp
-Zq7VDPfENAM8NuYCXIdVYpd860tIfongUbpgHq9dA/bgoDDHXlaBQzUMNwCgurYO
-XH1FSx7vApyBFqaE9ZKglRED/jbd0UeQ8E2Y8jvoHgn9kDGjqgTxNerLK2g7gRgx
-o0U2do7kjKKWoUfij/x3RRpGUDzkB9xhibyoPQKuVim4NVNdoUoqjuSDnoDT+XtL
-B8bYGXAAROPXu1AT1r/P5k3kSHDExu1qfLEk9Sch7CKrVdNaZHsrknbmFPPmhdsf
-zz17A/oCfA5tXthQ4YOlmyjJXiMmiD/aX1fQovjayQDD/diNYQ/z3JUuaA01Nhw4
-02LDFCk0xO2T8wWIC8Ox9J7twKKBT9Ep1MpZw/mY7XlpTFP82ls15pNIshogjlX8
-23aBC+xrRda6SqTAnqsneyxGujSkS4sNubUWaQf0UUfcxZpA77QlQW5kcmVhcyBL
-bGVtbSA8YW5kcmVhc0BrbGVtbS5ndG4uY29tPohXBBMRAgAXBQI6V5zbBQsHCgME
-AxUDAgMWAgECF4AACgkQd3o+lGxvbLqQrwCbBNMKCTamyfzbL+69hya4MTApyOgA
-oIBKu//LaM9gC+rfYUSFRaVY5PJetCNBbmRyZWFzIEtsZW1tIDxhbmRyZWFzQEZy
-ZWVCU0Qub3JnPohXBBMRAgAXBQI6V51BBQsHCgMEAxUDAgMWAgECF4AACgkQd3o+
-lGxvbLpvuACeJLJc2HBP42h8lVDWTZwV3qstGXUAn3yIgz/FK7+//Ax2ceO115u9
-T76ptCVBbmRyZWFzIEtsZW1tIDxhbmRyZWFzQGFwc2ZpbHRlci5vcmc+iFcEExEC
-ABcFAjpXnVgFCwcKAwQDFQMCAxYCAQIXgAAKCRB3ej6UbG9suq2VAJ9TDD3a6fsP
-E79VBmop25fpGRsmAACgobOH43x4KJJxNSFM+sOY2QCv+rS0K0FuZHJlYXMgS2xl
-bW0gPGFuZHJlYXMua2xlbW1AZXUuZGlkYXRhLmNvbT6IVwQTEQIAFwUCOledhAUL
-BwoDBAMVAwIDFgIBAheAAAoJEHd6PpRsb2y6vC8AoIPWrHd+jYEXzo838pxFoJ+x
-v0N5AJ9kyfJz4y0UjGdwMrfLCRL1+h/OwLkCDQQ6V50XEAgA7nyqQb43D5Nl+4bd
-pwt+JqTn9/MnmG1Cw0h3++JAMijW/WTGGrpgpuFhtvfjs0nJ3FZMlDjdRfJ2LKa4
-xR4J/2gIkYzvuI+JaiojvyaKnO/VZC10zH+kQmEfAZTSONucKPOPPrOX87fJ/SLC
-RRPJdjR/kcub/yR7lZ9jI+5fKmv06Vgdx5agvL92eY14FdEhg4BiN99CKyOIdTPF
-xgj2bCultqldQ0FhB5Iw+IYwqV6BJsRewrNJNoXcYLeHkOyf3ULxYwYmu/wh24jW
-ibfotTy/hvRO6CBG1+r+Svqxj161T8vtFWEDdlMW9Efog3O7zjI8lXWF2pOgGWt3
-7g99GwADBQf7BlcqJ8R4BrI/Z8cJbvWWBftMC/dx8F63ISjq65PKc5izq4fSlJWb
-AEDyTv59Gv7qDSQ+ECnjivw+FBu//BY993kXLIE2KB0AY6jgMz7F4JsBhYofGMSE
-uCFgvh9c3EO326RtkgsQKM4pOC6LFZRAedjo6LZzm9k2JZK2Xv8fsLZIW9dSEtqG
-ch32Uu9AfThrFnZ6cApeRnxWZe3btBXbgxK2w3jT16j+CtIbeJGWdF8NN7IZ4+4v
-PzdDAVBwAR2iUz9vn/d0fGhVYLHBFekfB0jyl9gfgPLkXyMorDOhJ1nhdAI9Jm6g
-7FThPfNDzfgEPEgSyVuMqEoti01u0dw7AIhGBBgRAgAGBQI6V50XAAoJEHd6PpRs
-b2y6l8wAmQHMTVyf5sddE7j9+RCEC9L3VluJAJsFafICjeu6dBMwi4QQaB0zqja4
-7A==
-=E/l3
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.bmah;</title>
-
- <programlisting>Type Bits/KeyID Date User ID
-pub 1024/23EC263D 1997/03/12 Bruce A. Mah &lt;bmah@cisco.com&gt;
- Bruce A. Mah &lt;bmah@freebsd.org&gt;
- Bruce A. Mah &lt;bmah@employees.org&gt;
- Bruce A. Mah &lt;bmah@ca.sandia.gov&gt;
- Bruce A. Mah &lt;bmah@ieee.org&gt;
- Bruce A. Mah &lt;bmah@acm.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQCNAzMl/sEAAAEEAJbQArJB1mbsGAc0eiv6XmoBPdjXDy9wWYbFdTSKcR88iZUB
-o/lie1eIyfqOFp/bbOVuCuhuCB1L/y9iS1x+rcmQgMbzelF9EbyyAoIvD3kPy5wa
-/dgE7L8fAHzHzmLP8uHccXu1eGMmY93of2s7BKvrboWjVCUbaqjOOi0j7CY9AAUR
-tCFCcnVjZSBBLiBNYWggPGJtYWhAY2Euc2FuZGlhLmdvdj6JAJUDBRAzJf79qM46
-LSPsJj0BAbKLA/9ei7MJSASsyBm8AyC4xLSYI/ftiYBPeuHH3f4t6Hb4Uu99iZRx
-+TG88DMg3ZHQZNMrvn+iMojWlvPlExFbpb0FRDX1JksB1gaadsEH6b22Tv2Uc6bd
-6iYe4rav6JR5ZnDtgCAzNiaeTEZc/Tn47vM3KDqnz6gUl+zTN+8/ujHp6YkAVQMF
-EDMl/4Q8L1TZGfd8EQEB9YoB/36khd19cZLdhLcaGDnbbPqRIjXC+Ha0LD9QEiK8
-p4TzPhQu/QIQTlKMOm+dMUZfabiJG07QUM7/aoDFF6VoJHyJANUDBRAzJf9iWGPT
-gxP/0IkBAR89BgDSitVdHQvjjV5UtbaJ34CYNz+KB2r7/08U5yeN5ZSQiqAW6PiS
-SXujzHnB/kxUlG93bCq75ljwvozSomSE/n+1QKM5j+WNB8judbIuesAlKVlnej05
-X2hLXfsAcJuGmG9jwlchd5uhSEBnrhpQEQh+44BKdSc5Jp/rtUeHwuu+rqvNECR8
-MSIpY3IFREANAv8TVqVBxbEHGjyKR1f3iwo+KGFgcNcE9w7eWCW9FOTOe1iI550/
-r/CounwRTVarkVWJAJUDBRA0BgS1YDZyE/6Ll60BAUY3A/9bVICm3lamaA/hkvL9
-mMfIlgqJVG1iv6ghiTgJJN9eRSNStPB8ho4sfekYmsJOj8Dsnmgw3Z876TiAeeG8
-KBDYrB2CeirciqgEvki1tof36NVrTlNfyjMe7DuRdIGwlMsysCTGQ91sjdTvQ1gW
-qCOCMPq2hbUiy3O1H2lSAFWZN4kAlQMFEDNqQB+G+HorH0Oa6QEB6xsD/jlw33WI
-8LNxVgySQ9IEX7F0+cFsto1iTnxc5xRTKqcNfD3h1N89noVJHZa+4Y0/EqgexPda
-ADARba+e0bomsOKaGuK4thiO/UVKf+que9JmNwIW+bmvbfwQhRwaT5tXHGJDbP8U
-DOhIIbfd3N6VpxmcH6azvvCBAhRpb5vW8VXxiQCVAwUQNRn9lvRZcafORvxJAQF5
-bgQAmpEu9wcVqJa+P1I6iSivnY0nJJDBiXTHnGep9zwdCODRa7rZwgZptqn4naXr
-rK/jAr6Vdj73b5TbwLtLiWR/MwortPFp80M+6Ff15lsO6viynMWgLFSBli2WcxIU
-pnjlnt8sLs1opDV+nwoSlFCeXGMbPSal3FOA7oIdmDBbG1CJAJUDBRA57prdfEtn
-baAOFWMBAc8zBACltXDpn23WLpy6jp37uZuijhGt2B8wksTv8J9ZRaUbEbpRwNe8
-v0RsxqQ7NbwFUIMeVdswnF6smXPpp55SOHOa+TKOnjdJwk6jZWewRTRV43ZQ+F5I
-Vt1rGWB4zXu9/umAWXvVy4cVcfvOLoYYvMucNHgawWby3qiEwsWMuukmY4kAlQMF
-EDnumuHW4KH+T74q3QEBcQ4D+gK7LMHp/gktEuOFhqKHdLxbocqyKL6Nm/R1lKP/
-5iJ60IWCBhz4OV4xU6Vm6T+JcMYnewdfsxuxbQndN5lhzQCFwEVrkj5/ibsCqAiD
-v3Z4IOIVWOwESCM5nJVleieNZ8D8Y33UICCh/kqLzDF97PpD+kGROWi1sSNXlQIr
-VdQttBxCcnVjZSBBLiBNYWggPGJtYWhAaWVlZS5vcmc+iQCVAwUQNTUXEKjOOi0j
-7CY9AQGGuQP/fDgRCZ0Nq7P+IkNq1cxxHEjYJoIXbiESK5gtdWelJuxVDaZ3XbL4
-/yoSIN5ZnVHZMi04P3Khgqequjwr3/rae/a4MmVQdtNrCFMSY+8d/l8bXkG8tuky
-5b+Qd9ZOBVw8zbq3xB1o89qf0D07bTX2EC1glvrU3g6VV300BaHpvimJAJUDBRA5
-7prdfEtnbaAOFWMBAZnhBADMxh5KVEBKn5L5ZOuXJdi1EIAk0L8bq7xbxUZ1MKTD
-oWlfc1xxBxs3xfMIJFjAv5CRzrGg8y3EUBRLgaN6KzMbvmA8FQ77PIM3x/lc3jHa
-nIQPlWWdCSq6WZEFtq/rOFi8WhATlCBPehwMV7gNEDh4bIhG/5jY0cA2kmfJqo06
-TokAlQMFEDnumuHW4KH+T74q3QEBTj8D/i5VjPmPkOz7cKEaK2NbUnTM7bKvyKWX
-7qprmjkmeunVA4LY3M68SG1NcMmEWbM4p4yl5xDvR3r7WChPKZE/5Kzvvzo76V6L
-CSqy4L9pwFlAw9xZOjhRtJTrEE2HsoDeN2nvWrPpeXJtGCpZ+d9WTg4I6mxfyrp9
-qK9Mj6XJKc0FtBtCcnVjZSBBLiBNYWggPGJtYWhAYWNtLm9yZz6JAJUDBRA1NRbM
-qM46LSPsJj0BAQ3oA/9Bxqn1Kll1R6+bRbz2VKOCijC8iooYriFF1MBC38PsvBXN
-epnXsbAkRrvwzAiY7f+aaxYOLbyG3VOTtEwGlQ8WSfc4BcHBmC8CK3G+jXn8Hk4Z
-iZQ0s+khhAlIbr0Wpxvk5Prazzv417dBCIHzk0dxaDJ5dolvxA9NK2po/oTDzYkA
-lQMFEDnumt58S2dtoA4VYwEBgtoD/jAqZt89XHmtWtMzJIOft9z8dXyvXXwmkuOx
-91P2egetX69Ru3XzqPays/uvdFkaVgo09nHRLPGXPQ0GbgUuc8mPa0H3jn/OA+Tn
-KxeB9rKY2fPr6vccP6OSeOk4nbHqPqfz7/U/edbHZ88kNu4iqiH+dDB0L7QNGK9p
-l8Zpd5TOiQCVAwUQOe6a4dbgof5PvirdAQGDDgP/SdujS5XMRbqKMe41f5P0TMAm
-VeGplK1mdX4WRmB+wvdV0ddIiEgSQIklmNM5nIwYzRGNLZrRBQNDArOO4826Amvu
-lntP6+LmN+vl+lmOA6kEbVYFnADkNGP3jVmwJ/ni4luKDWevMHpxfHTGoKKaKA9P
-A4WaT+49RRX1RSGkWU+0HUJydWNlIEEuIE1haCA8Ym1haEBjaXNjby5jb20+iQCV
-AwUQOUVroKjOOi0j7CY9AQHdzAQAiq+kDC2WEAG3gglnEIG0oIp292a2qhrDIu1P
-d+xUxXoPs8OzqHe1D4RaJiEhDMmQ1t6kJbUdzTKENzjyT84KbaHBgYujgcLsGqmx
-nVDxkVC6YlTXOngI4y96sw9k2HRELWTEGfAUFCPmAQOWH/ftDEPCvAZHXrTJaRSr
-nkK80NuJAJUDBRA57prdfEtnbaAOFWMBASUzA/47C9vbfPB4sqLpT+PSZ6cOkPXp
-Wn4ddvYC7iTCE8Jn9E4V4v86wUqWScXK00OO6suFERj8b8gFsWhR+ud1a8lTMuKt
-lmdJw6S2XWFadTQCDUPoOul4WlUwEbhWSohSoTu/FFJ8AMgI6q2Umeo/MANga69L
-SXnYuG31GxEZPEknkokAlQMFEDnumuDW4KH+T74q3QEBXw8D/j4k+AzvQg9rY3Pm
-R2qUtjPm2JBw1206J3XCf7CYwmhuMKiLC3EMqfwu7U43+sD1xgIjOV5Y5VFz6zQ/
-cZ/DkRexCIJYe6hXhqx+VVBRCRUsQnCDkrCr/sX14EsgQoFluIKfuCstxtLe6F/g
-OCAoHM0QG34Z2IrThLWSo/oIhNBstCFCcnVjZSBBLiBNYWggPGJtYWhAZW1wbG95
-ZWVzLm9yZz6JAJUDBRA5RWu3qM46LSPsJj0BAQrYBACUnUQn0t6tnxAJMQxgje/L
-kNGkZOzGNMazfrFPe8+iDCq9nnJ7zkh2OtSNTiS/VJqJjT/2iDjCxWG4Cqn4eBUD
-1d8GW1klKeK3yUIFlfAsMAfQshhPQ47865UlHWvuePLS/0L2rLofu/++7reTzYW+
-4mnzeXfj+UKAqr5LlzlFxIkAlQMFEDnumt18S2dtoA4VYwEBnGYEAMc2YVJk8YsW
-RJjU9zKtsbfMabifvNUYvvkIi42du1t+brnCXf5aFnFjAAO3sGbEoTRCEbT8SRPU
-hbk76R++bG02XmCYepWX5iS3I0LUzVpqas1t0H/luc4mUgOYDUhsPWuBtNmYuuxD
-uMSCgL1ZUPb+S5ZLmYMk5hxpKQEEO94FiQCVAwUQOe6a4dbgof5PvirdAQHZXwP+
-INhyMrT6qLG6+fjYWZ3hu9nvXO11MtPtNObo7VqIERSRqccvhQO1ut04VXb5Na+h
-AO8kTnqS6+43TZUWtAkKLmcZakgb7juFXxnM/BJP+UmMr08LMkB5Yf3VNfrdthbt
-GyFh4tY7kYJFa+1K7CngPvRoBbd1iHO419O6MiLusoa0H0JydWNlIEEuIE1haCA8
-Ym1haEBmcmVlYnNkLm9yZz6JAJUDBRA5sD/kqM46LSPsJj0BAaWJA/9kzr2n26NW
-NE2PscqmABhyXXDZptY7t6NRAc6yXgPnbXs5AlAkiL+P0FLs1P9MMnw7PCd2TAXd
-MYLhPecx1dWJAiaRNmoJBaPknnr4rqNKM45XbPfkJAvvSVGNi52VHcmrnmFdSX6L
-hUwJzVha6TT4Vel5y1DEPYIUK3FJllTBQYkAlQMFEDnumt18S2dtoA4VYwEBNh8D
-/Rdov1S+koATxQAb/8uLK8rYnmDL3PfoAhogrpQgz+9G8O5mwJtzoHJVYGGVEzTV
-3L/okFn6UlX4Hms0RR2JYlcwaL+D4aZKV6vhgVh23yh3xaV+wPwzHqtjPxyWKapO
-g153Fn/UquFaX62DzzWcRxtd3Fi9tiGtdyOVmQQlaV4qiQCVAwUQOe6a4dbgof5P
-virdAQH7XQP+JI0HzuV4ycNw2rnLU4iNrINsC4ur5hTW48CQcX8/HFkTuygzFKVn
-AlrKEytdfJPaFMt6UAqUPB+NPJ6fwtJkU0cNsjCsZIGBh8AumyT560BWYm3iIac4
-Zn/9dKslg+SRJZU0T/A+Iip+3oFz8cl7BrkPgI1mLvUTOuBj4Kre/7k=
-=aSn9
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits KeyID Created Expires Algorithm Use
-sec+ 1024 0x5BA052C3 1997-12-08 ---------- DSS Sign & Encrypt
-f20 Fingerprint20 = F829 B805 207D 14C7 7197 7832 D8CA 3171 5BA0 52C3
-sub 2048 0xB4E60EA1 1997-12-08 ---------- Diffie-Hellman
-f20 Fingerprint20 = EF87 710B A12A 93F0 3529 E578 173D A3CD B4E6 0EA1
-uid Bruce A. Mah &lt;bmah@ca.sandia.gov&gt;
-uid Bruce A. Mah &lt;bmah@acm.org&gt;
-uid Bruce A. Mah &lt;bmah@ieee.org&gt;
-uid Bruce A. Mah &lt;bmah@cisco.com&gt;
-uid Bruce A. Mah &lt;bmah@employees.org&gt;
-uid Bruce A. Mah &lt;bmah@freebsd.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQGiBDSMdS0RBADQE42S0MDRcjiuM4mPH4NL2m60OMHgq3mYuIzrNkRE4jSzZJiG
-8jBMl5VysnTkdvL61gH4aihIqioULOUq3L9XEtlrLbx1HDXEEdAdhARzqPapD4x2
-FbHpjb0wjxQ7RmXXvLHDlPa8x8K48BJjZ+9WhPs6TKu78+I+9cqZ0u1KKQCg/2ls
-GAGht29FiOtHrHFVMKl3WXMD/R6wl33Xsb7mwFROBWoYxExqSAZ9xeI5KUtQ5f2U
-eYSbUfxCTkcBIImjf6UhtjLTs6Rc0ouYLHOHu7wxVVzA0x3UpcEWUkNXWsy4PO+S
-j7PdzKi52BzR2LY62DoBTUARAaIsvp3fV126NPBHR2Isflo2OlEvwKGJ40IJMLGN
-d3xBA/43QdXUcxa/FFAeCroYr/BkWPYz7Oh1HFBTa9xxrKL5sLDJChp/yLFoVhsG
-0t4w595cbD8L1n1PckcaKVK2Y8vjafJKL5k5Ea/CnF0kO7+Q3RaydqzOcS2yP0n2
-ZLQ+sorNz1huY6hrJemH9SjWnYKg4xbxfQzRBcfRxGQv3usvC7QhQnJ1Y2UgQS4g
-TWFoIDxibWFoQGNhLnNhbmRpYS5nb3Y+iQBLBBARAgALBQI0jHUtBAsDAQIACgkQ
-2MoxcVugUsPDfwCdE4eVXsgKeXGph2UjRJ08bcm07KoAn3wjzXJ3OAugV3xd/P16
-L6EvLE6QiQCVAwUQNI10l6jOOi0j7CY9AQHawAP9Hv0fwpPbQC90t8sreFT+ObRl
-zYSQnOHV+XYcqi0DJ+nbZYB+60CzPxHkchhfqLi0zsNYbqlfyTCJabMS8d3n4aVR
-ke+eMpD8UwsBGcfOg+3H9aFfsNDF9qC46eaN2ZEbMpsMaPzEMvdvzIWY5pF1uziJ
-s+hqPNpndOv9bg9mr+qJAEYEEBECAAYFAjeDt00ACgkQITxeNPGCC1UxUgCg1lWZ
-vk7ci99tGLN8YwlkmNHWfGQAoOvmztFkBb4Joy4KcMOM3/QPedw0iQA/AwUQN4US
-PK+iAUnWOX+nEQK/RQCg/Q34D+y74SwbsDKq1PFzRKRIbUwAniLwxuIjOT4+Jx/6
-GbUf6BfFafUqiQA/AwUQN9n/OWlM93/mX/l7EQLDZQCfaV51kpxPgnf6Phq5748s
-gmarZroAn3NskDMAtcSHqTyYfFu7SNOxgWIdiQBGBBARAgAGBQI57ofmAAoJECAV
-MdWEXf7doVsAnR6nzyVm9sFceFaDLaHeUUbUPbRdAJ9nnNWEsxbnqeAwenSNtyz9
-OL6EOIkAPwMFEDnzsYN3zinFj6EuIBECrjMAnRIxFEDvi0bBwYtYbADEFulWY8zn
-AKCwfvI7YsVOkMDtk4nEuWwK6bKCzIkARgQQEQIABgUCOe6NVQAKCRCI4Xsd/OVl
-YfzcAJ90xj1zsCx/77XSTRhjOth7YuT55ACfQJZMfNge3GcyXVSRAKsP4TQ9zYqJ
-AEYEEBECAAYFAjnujVoACgkQGPUDgCTCeAL1GQCdH87/riGhtvgx0QqEmCOmoTn7
-46MAoIYOCTUpM3bHKXjC2+ategzNcCPftBtCcnVjZSBBLiBNYWggPGJtYWhAYWNt
-Lm9yZz6JAEsEEBECAAsFAjd7oEIECwMBAgAKCRDYyjFxW6BSw7j+AJ9+VDcZ4K6n
-Ic+Ap8WKSTMXXKFvAwCfQOokhn2SUd1xYY/PZxYcDs9I8YKJAEYEEBECAAYFAjnu
-jVYACgkQiOF7HfzlZWFVvwCg1TprYy84hGQ0cYsnopjkMtnENKQAn32dSqKRg4zo
-tR8It3Yh+XUpjjsDiQBGBBARAgAGBQI57o1dAAoJEBj1A4AkwngCSKcAoMilohdk
-KkIrvKxf09b7f+0vuc1rAKCeDKdjlNY/AR1nVp5096/oz/f4ebQcQnJ1Y2UgQS4g
-TWFoIDxibWFoQGllZWUub3JnPokASwQQEQIACwUCN3ugVwQLAwECAAoJENjKMXFb
-oFLD2YsAn2OXLa+VlHLnWVraRVjB4vdjUMPoAJ0emVwKCho+tJ4DueuSTSx35kr6
-RYkARgQQEQIABgUCOe6NVgAKCRCI4Xsd/OVlYYxFAKCf6zxIGbP2FJ3w55jBiyMX
-RYc9pgCfRCnEPNt967dKXbeMb0V84i7yxumJAEYEEBECAAYFAjnujV0ACgkQGPUD
-gCTCeALFVgCeOGHzQYS8qwb2R1Rv92gkTynYEhsAoPVrNmjEyL6kgfaGzimUvujK
-p/j3tB1CcnVjZSBBLiBNYWggPGJtYWhAY2lzY28uY29tPokAVgQTEQIAFgUCOUVo
-NwQLCgQDAxUDAgMWAgECF4AACgkQ2MoxcVugUsMScgCg0OaBootiOUwm8MtGV2lf
-Pjbq+WAAoPVcDuDNno9T5lkBIj/Ko7crIwjViQBGBBARAgAGBQI57o1WAAoJEIjh
-ex385WVhuYEAn0KTZ+sr6nbvOM8wQbLfpeoYWWjkAJ9kiU8uESWXramTTKYKEHyR
-fjEVG4kARgQQEQIABgUCOe6NXQAKCRAY9QOAJMJ4AjlXAKCZLs8uBMTSG3Dnpw7p
-ZLVPD8yhdgCeIFoHT6HrRiq3b715bc5GZhhFlhC0IUJydWNlIEEuIE1haCA8Ym1h
-aEBlbXBsb3llZXMub3JnPokAVgQTEQIAFgUCOUVoWgQLCgQDAxUDAgMWAgECF4AA
-CgkQ2MoxcVugUsMR9ACffGTZ5+6qgLC0RFqatxkJ5YwqwgIAoKgsCGMJsAIpxhNb
-XG5pelXhrQA9iQBGBBARAgAGBQI57o1WAAoJEIjhex385WVhNHUAn1SHRpqXn1uq
-q/EzqxDVzN/R6JaHAJoC+Q3Rv52FH1FD+i60ubtPwNgbxIkARgQQEQIABgUCOe6N
-XQAKCRAY9QOAJMJ4AqaaAJ49VuRD0CycI76yqRns1hx0rktP1QCg1TdP2OAy+dbm
-AMpNokTLzjvuroW0H0JydWNlIEEuIE1haCA8Ym1haEBmcmVlYnNkLm9yZz6JAEoE
-EBECAAsFAjmwMzUECwoEAwAKCRDYyjFxW6BSw5rBAJi1vpq8RU0pn43HT4VJWybp
-BuTdAKDXv2O9eGilbPVRjmEgOclE3B09JokARgQQEQIABgUCOe6H6AAKCRAgFTHV
-hF3+3TefAJ4qgtByxD6QehEnn8kCqUVZaU3AvgCgiMtlhatZQJLGAdf3WDFOfsM8
-YpGJAEYEEBECAAYFAjnujVYACgkQiOF7HfzlZWH2gQCgqZAhZ/6HGYl/siyRgDNd
-QRSLXBEAnjMVjCjTh4pXuxsMdc8dHXel9lbRiQBGBBARAgAGBQI57o1dAAoJEBj1
-A4AkwngCtb4AoKY5S5sCQCbn19SraaSTPVBmImyfAJ9fG/FSYHCMNt194t9uixew
-oBCLrLkCDQQ0jHUuEAgA9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadW
-oxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeS
-Wc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0
-iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF04
-0zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQ
-ClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAgf6A0oIHx7GA/Wg+7Xy
-+rZVKyrOQ+bxzDQbpNNwDBP5mZ4NoG6tgX9LLpLkihRlmL76JsNHhQxaSHOU9mjm
-uAZgNVlYRE+O/fTIlLkRrBkgn0colEMy0EFx8/UsTPu8j/RBURcrAD+ony+vXyl9
-cb2HEfpeUWhGQC/WdIhPwRKCK2fIZ75Szjkd4tgD9+yYUEfGCbpw7bRwqHRDEdVy
-7qx7nHcTH5Xq+vdqJ7ZlsaNMNhDukS3RunILkTW5q9WeW9eabSSyY4uCY81YP2bR
-F/U/FPM/mYbWNUELgSmN/YkSwWLGgfjcCObTwgd0FOW7XZuJ71R7ytBEn5kDt3bc
-vULsB4kAPwMFGDSMdS7YyjFxW6BSwxECd5YAoKUcWpHjSL1KbOH3Ud52avzESk7C
-AKCOQUeC622jsKntTOR5R9Vv4wyyKQ==
-=L8Lf
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.tmm;</title>
-
- <programlisting>pub 1024D/419C776C 2000-11-28 Thomas Moestl &lt;tmoestl@gmx.net&gt;
- Key fingerprint = 1C97 A604 2BD0 E492 51D0 9C0F 1FE6 4F1D 419C 776C
-uid Thomas Moestl &lt;t.moestl@tu-bs.de&gt;
-uid Thomas Moestl &lt;tmm@FreeBSD.org&gt;
-sub 2048g/ECE63CE6 2000-11-28
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDoj/ekRBACnO84k2i5lLHZKscyV8tjQSkkr26hasdbc/uyV7HTiPhMUjEAz
-Pamk+bDmy/Ls8k0SJ1l0vILBBd31G5VYtKonIrgp4vZ9gV0fBdCyFDXb8bh11Pk3
-pEZiG9vJevq40OPvsThLKHCLNhZ5zLPp6gd0IHwRJ0LU94pouFXd33MzrwCg4gTJ
-K00Dw0w1hFtUsq6WjNC+1B8D/2WiEuzBMnO6gz0p/eJ1eZ7mvrBXLQZ0u5vJ3eg2
-CCPrtS1ZITq3ICPDN6biEiMgtRmlYn/VYvDQqxwNE0X2yMfB/9sdah45zma9EeVn
-Iy8meaCFDLhm4aIYc1foUuz3WbCNlJFY5xYPXCMXLkC65xdybHKng5TXh6NOOWf3
-PfCWBACPMotTRKttAuw5YcZE5VDrSXPYHu/jm2CpIVmrac7+kDj9pGH9sB7BdUxw
-vczqtAT0jk7MrT+u3FH9wBtEFTXl7ksGTmDOFWJgYn3ZOEaVaX/OqD89UNhrOA2v
-ZOaaoKMYxK/pszPdr1Ghd6BQCmYKtLBlFYiTDRM5UMVHTqN7VrQfVGhvbWFzIE1v
-ZXN0bCA8dG1vZXN0bEBnbXgubmV0PohXBBMRAgAXBQI6I/3pBQsHCgMEAxUDAgMW
-AgECF4AACgkQH+ZPHUGcd2xMLwCfdEkPZVBgEmYnlyOKfyTSslMhud0AoKDKZNXA
-huNslb4KF8yKWBNRwfPStCFUaG9tYXMgTW9lc3RsIDx0Lm1vZXN0bEB0dS1icy5k
-ZT6IVwQTEQIAFwUCOo01FgULBwoDBAMVAwIDFgIBAheAAAoJEB/mTx1BnHdsOfMA
-n1xd4f7iAe6id42DLg4W3fibsCwsAJ0cT2lf08RhHkT+zLVoubyIDoY6ILQfVGhv
-bWFzIE1vZXN0bCA8dG1tQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI6pO9pBQsHCgME
-AxUDAgMWAgECF4AACgkQH+ZPHUGcd2z+7gCdF5fq/lebn3/gp40O8xP/J0XFbiIA
-oKJP186L04qpSNamc/qG3gs7h3DGuQINBDoj/wkQCACl8M8ObSTJaOY4SgoQkKgB
-CkJJP5ScUpfYV9w3dxKL/77cyfghfYsnAWuA9yXJcjA0F+u+jRf8gS7OaHD9H9Mm
-pMGq54Aa0KUQaDbL/Jzf5zrKS/RASHzl1vYXuZB1OIzPfeAIx9u3UaziVEGXJha3
-1KgTur+TU+F94ZFTi8uApq2VoNT6sFi/V2x79bxlLFr9M9yD/0+kMZKovWRODy6T
-gWJzzcdd//dkvKp22tNf6C2wq8Bu60cWR81+awgG2otgZjCPUs2Bwhqa5opeUqGn
-J+f+PXo6+m2UF21m1vLARENuumu6SXf3XqGIUiQbT6jCdJORzwaxeCiMfu0qNnUX
-AAQLB/9u9gZN0N0r21ZjM6ZRmDC/REouCdYHEj49+f9g/xLXCfacpWVcrK9lIrcg
-hxRE2mQ/nlQLeHroC3Dp1AfThKSPFX3PRD/9CcRu480imT84ljf+6vonAZ20Edm5
-vVO+UoJMZQ2G+rWRRf4bDfwFoyDw3DsNmUL4yH8m2RpTxXn0pQtD2riJD8CBCXEP
-K95TYT4MomJ7Szg7O5/QLngfw0q6QdKRm1vEIP7r6t+UbVNp9+5g9qvz4aqm3beY
-pw1QCDHcqpDITnlTxTdV2SgNpF8JPg7joaOa36AxWwRzfLFyzyw/JGQE8RwJa8BN
-iTu0IrKuiF1biRxqiYO887GBA/8QiEYEGBECAAYFAjoj/wkACgkQH+ZPHUGcd2xN
-TACgkS0AGqqd2nLtWhpbE72tD660tv8AoI24cRkUa2op32mti5zfLLMsM4AZ
-=76WN
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.rich;</title>
-
- <programlisting>Rich Murphey &lt;rich@FreeBSD.org&gt;
-fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAy97V+MAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1
-FBF2Gd5Lbj0y8SLMno5yJ6P4F4r+x3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs
-wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR
-tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W
-vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g
-Sb97WRLEYDi686osaGfsuKNA87Rm+q5F+jxeUV4w4szoqp60gGvCbD0KCB2hWraP
-/2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw==
-=QoiM
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.obrien;</title>
-
- <programlisting>Type Bits KeyID Created Expires Algorithm Use
-sec+ 1024 0x34F9F9D5 1995-04-23 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = B7 4D 3E E9 11 39 5F A3 90 76 5D 69 58 D9 98 7A
- David E. O'Brien &lt;obrien@NUXI.com&gt;
- David E. O'Brien &lt;obrien@FreeBSD.org&gt;
- David E. O'Brien &lt;obrien@cs.ucdavis.edu&gt;
- David E. O'Brien &lt;dobrien@seas.gwu.edu&gt;
- David E. O'Brien &lt;obrien@elsewhere.roanoke.va.us&gt;
- David E. O'Brien &lt;whois Do38&gt;
-
-sec+ 1024 0x7F9A9BA2 1998-06-10 ---------- DSS Sign & Encrypt
-f20 Fingerprint20 = 02FD 495F D03C 9AF2 5DB7 F496 6FC8 DABD 7F9A 9BA2
-sub 3072 0xBA32C20D 1998-06-10 ---------- Diffie-Hellman
-f20 Fingerprint20 = 0700 6058 CE6C 1C51 D0A3 45E6 26E1 A405 BA32 C20D
- "David E. O'Brien" &lt;obrien@NUXI.com&gt;
- "David E. O'Brien" &lt;obrien@FreeBSD.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQGiBDV+M04RBADXKeFCmXsTfVxqwiVHv7MWoP9uzUuILtt7QIDGLyEWdhDkqUXq
-Ux9yrH6B1y4q38XI7Z2OFh6KEXDDZyOR9ntsA0RF9+h+e92RfN6Co6F3SOyTuBuA
-Q+jV+Hl0mbh7Sqjl5SjTMjT3AvHnKM21Zac0zmjhhXFprSSILcMp1HBchwCg/7hP
-kuoubQUxdH5SjVKrsystWf0D+wWQ5PxKzz4lLDG2TZAgCD5C+a/IaXnGYvXjOfc2
-ktLChwVIxf7Z9cEARDOWEHPfwkjn0OEhtX7teUiOx34h3/wIVPN5IfqhHVCcEUQT
-R+ZwYAYACqfihfyYdzttVDGvHMmUwUgu2zr19N2olREqPA25hls7w7F6UlN4d+PF
-zljWA/wMHDG25k9UnDibKbCXQOhDARusL6YoFN3JneA4y/TM3rgoUQpBkk99218v
-LlaSz2TXH7ne+nxldX8IigN/SG9u6K6eWJ/LKSUuLyeo1r4oxGafCzteQSaBBOuQ
-hXbpX2xEK3wQ64NdnXlBZfBy5JEa+3SWpTO2iQC7JNtI0nLjm7QkIkRhdmlkIEUu
-IE8nQnJpZW4iIDxvYnJpZW5ATlVYSS5jb20+iQBLBBARAgALBQI1fjNOBAsDAQIA
-CgkQb8javX+am6LP8gCfXYmb3/0O/9viAhq4mXOMRM7GEygAoJCRiRmhfz84yCC7
-GSY/Li2Bi63TiQCVAwUQNX4zzWVgqaw0+fnVAQF21wP+PK9MlfIcaOAuQVMgQhsD
-Wqlj/DdxtsxT1GOnlHp3JGxdThyxdBDrxmiU22a6216s01fN5Ac25USeKRCcSVyG
-0+G/Xd3VfWDCEQCLNBwblAGKW9BEZfJhS1xOuTEYxgbmuvrlLTdvWm+MwPetv8ka
-yhD1LM4rVovMxenaPYUub2S0JyJEYXZpZCBFLiBPJ0JyaWVuIiA8b2JyaWVuQEZy
-ZWVCU0Qub3JnPokASwQQEQIACwUCNmOeXQQLAwECAAoJEG/I2r1/mpuiv3oAoOBm
-ZIDRolksEb0iNP46X96pRsU8AJ9nTPnCjxfj9oP0wQBslElAS8awfIkAlQMFEDZj
-ny5lYKmsNPn51QEBkUcEALYsZckj5fs7uUzjSgyzF/2RrHJ5gGrpNBwikiy1+wdZ
-6bz8CQ6kcYC3Dap3iHSc9KWTn6sK5ZvYXcYD9k7is8V8zuitUrrSGWpY96qmNsCT
-vPSwfwIcyhYSIJYjdqmv4EnKo2mwkY3zqOV9DT1ABFLSI9Eyy8ILeuhrm9jWEXs0
-tCoiRGF2aWQgRS4gTydCcmllbiIgPG9icmllbkBjcy51Y2RhdmlzLmVkdT6JAEsE
-EBECAAsFAjZjnroECwMBAgAKCRBvyNq9f5qbopXDAJ9VboPXKbLDYCS2jYZg+X7Z
-or1ZOQCfV+u96L4zxj10Z5bHhpJXaXsq1Aq5Aw0ENX4zUBAMAMwdd1ckOErixPDo
-jhNnl06SE2H22+slDhf99pj3yHx5sHIdOHX79sFzxIMRJitDYMPj6NYK/aEoJguu
-qa6zZQ+iAFMBoHzWq6MSHvoPKs4fdIRPyvMX86RA6dfSd7ZCLQI2wSbLaF6dfJgJ
-Co1+Le3kXXn11JJPmxiO/CqnS3wy9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlL
-OCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N
-286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/
-RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2O
-u1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqV
-DNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6UwybwACAgwAm1JzkDnM
-N7PqTh/hWMfxpsl1WzwQ0LecB/15UEKvqUZeRFcTCPh/6lVvJL64K2O4mVwTUnX4
-9EYDjccK/DQQEpEJ3XfOt/vMGFQXXO8frj4ulxeSQAaodmrJsfBexeLIatFidkHy
-5pN+5dpnQZhcoRrjpbK+mdu9gW4oImUKInFV7mIpVFK2sYQlkP52WZuPwXtkWjoa
-l+43oD7vGZpIdT6iqCI/hwF64bP6NtbVRaI3mbXOn+S2qdLf5YRROBavVa7yvBrZ
-7lOp71aGb9TjpOpxPWoISvKj9uzhFtuzh+k8ABv0hPNyF3iKaBWaeNEVpYlR3hOu
-ojcLG+6+X/GTbFbcFxeybbajkcksIs1oNSpRaNqHVpgBsbN59w7Tmva62bLz2R5U
-XhbmRuqvQujAwT2+6PcD1Ra/QG1QNyoM/leLhLjOjQGZ+SvlxDhDsgX+W3Y1QXX3
-e2Ual4c1K6itgvR02hKOR+IOl+IFB6dsd47cjyh0xuhKpjsEsE36aFk1iQA/AwUY
-NX4zUG/I2r1/mpuiEQIDyQCeOvK/V0VRBNZNAYknb2GfVTKVJWYAoMXeTJABkMDL
-P7bUxAmeYnY7l0UmmQCNAy+ZtI0AAAEEAMPph+5fYQ4pUXUCgsXGqWi1LuxtqSP3
-WC/20zlqOUq35T2e/3dEqFXB1Rbzz7rhI8hraDyGybexiO9OcQMbxSKBha+BnMyq
-hoTM7bmzSZCRSWtIQ3ugC5Q0O6RUkrHL3k88h/Q/9IrqCXIesMaeeWOIit7tJ9dY
-gWVgqaw0+fnVAAURtChEYXZpZCBFLiBPJ0JyaWVuIDxvYnJpZW5AY3MudWNkYXZp
-cy5lZHU+iQCVAwUQNHYnL6v/B7RG8yEtAQE2QwP/blDA0lFO0AH1/Dhvlc1ylPEG
-mQw0FDldz40N4ni5e3gRPdTy03AWrCDQMX7xLJ5Zd9HOA+IiPkDkj8OQkA9WUrPh
-HhAUMy2yh2PSnt2mIJ8dv4M5eH4H6IJPjMu6z08UvkKdXlpd9Ku2aRgyshV9dHFV
-ikMCMLTdk/i3RIApY0iJAJUDBRAykexbym8rg/wMAtUBAQSRA/9zHA9hUeLO2nVm
-d37pndP40JYiklLyw9mapz4xHQ8bsEVdERXQ6MdVNPa46j1RM1VdZMI7fBlK9aX+
-c7GW6swzEFC1eWtVnzeMMh46MEQLkAoYVOFRWkXH9hzGdEVcaJn9sSuoQ+KiFu72
-LVNg7KJI6v48CuWKep0H47nhuKPwbokAlQMFEDH/SvU/2TrIQc4JiQEBl88D/1d/
-WSV3W6RwZQUnbSp1GELg5knB87imzxf3t328/vzRRFUgAeB9qcW9fYRwdhZDs4ff
-UASm2fXSbXocnRdGDJMKaFZooJpYK95vZFc0irLhI92w2RjLH1tF/W0TCopWMLN4
-KuqYX3PLMzQEcj08w3BcwWXwD0UuVD91d4WeljRZiQCVAwUQMZSmW2Vgqaw0+fnV
-AQEkAwP8Dre9osgnIJLvVQlPLbuSExdrG8+m9mae8vaZVuFJFgo1x372oaZok0Vx
-ZHOkulspC6Mo0B8cPCI7BkfyfthHHZwh83Fr+MNfwjiG/JQEobvaTok+aU3cwQjz
-anQkBQZX/f0tYxTx7/tTWxMeR35CW7sIYgAsutBhKSPGC4VAe82JAJUDBRAx9B35
-V0EEo6SepNkBAT6YBACwTyfKQ019/Qgg04I0gEtJCiV2xa1ms7xpOVQj0TF/rzfN
-Z45BzbOKOtolsSGP72ddjqpgjsZ/7g3Z4VG83c+QDJVwEBpUe1D9DX8cEKMTBjZO
-JTTmGS0FIRrszddnLLf5gqNCWPYlImq8DR8Mjsy/vGsotkSLfKs7sdnzE7o0k7Qy
-RGF2aWQgRS4gTydCcmllbiA8ZGVmdW5jdCAtIG9icmllbkBTZWEuTGVnZW50LmNv
-bT6JAJUDBRAzZsMkZWCprDT5+dUBAcE/BACFUS0dN3dp6+sYxhTav9QfqOpWb/ay
-hwcUKoxuo/4c1IUDZ8sCkANIRLnFUjC8irF0oND67KNU2vZWRaqwJ6ghQIkrfRHf
-wUHRWAcoE1AFypHgOnE/KXuwmqkqHFmE4xpn0Ozpdcwc+KOSUFjToBgpAIwcZfIG
-3e8o1e0dj4PJD7QnRGF2aWQgRS4gTydCcmllbiA8ZG9icmllbkBzZWFzLmd3dS5l
-ZHU+iQCVAwUQMPa62j/ZOshBzgmJAQGY5gP/ZXM8VadFIywFzN43xK0L9nc6SwwI
-k0FaddKYvmvJgMz1Qp5gn3DcuH0CWyJwH3uRQvIMQXvQ57Iy3x4eb5WcwxwDaW6u
-TzC1uQtooAaAINCJuEaXrw4Q+uuGYGIAeh1x4TwUgdxmmq56cfkeiaXwwaJUoOga
-IiDd6vpM37ZU2gyJAHUDBRAv5F+Q0/I/Qidq6hEBAThXAwCnHV6THDI8Prkg8DXN
-KYzhGJH56WlujCpzqNKm8AC5rkp/5dtfiXsqadZK/VXlip/bXFB7nAR8k87MMXrt
-tYyPylFCEc7kLLqYJ6KeS8jTa6Q48W0LzbogSF/owFUL8bGJAJUDBRAvpRUNx4uq
-hJJkHpkBAWiSA/0b3F9ZwqMLFsSv1MAQOwoiw2QpAoQWV+oa4CNJVY4GoQjIbRZv
-WlkRAocjfv1oQr2dU1KxDmZCT8TolG9gQ232rm4n2anr7A9RVi3zdgvu6/VgklLL
-vzy12vV6y62CIB4s2Y0yY6BHDe/PyIpgmjOZLINIr8fAdLvNnZD0rmGkMIkAlQMF
-EC+ga/DKbyuD/AwC1QEBMWMD/2HyNJHmnL3A/LpaSOxhBuaXwHZ9WOwvOhBswj5v
-kgVh4ORFgtOdIskrO4rzMefVoV5ciEPQJFjk8L2MwC7zgjn2IT3TH3m4s8AfTStI
-lqbaASo+i9FhyKcAOW6K85NcYCfmo31sqWZ2wU0swgWz+uiGcgVpvvAbf636L7xh
-hjZgiQCVAwUQL5rlIWVgqaw0+fnVAQH+0QQAspRF9vtjuZ60MfHmhXkvJtbJXxxM
-kog1SWVfwcOfPrNlDtsxiVDSqypGoQgMykyTW2iNP78cji17bW5bRP8UJ6Z2buV5
-kzqDfw17fnwvyNj/fiLPRsgV5mMPMug4pbkLzC0b83zy+iITSCtVHd6IUSa3BZPm
-VFpX4OYphDiRfEC0MURhdmlkIEUuIE8nQnJpZW4gPG9icmllbkBlbHNld2hlcmUu
-cm9hbm9rZS52YS51cz6JAJUDBRAyZskiZWCprDT5+dUBAQ1RA/4ml0nJM5iZkpYu
-BJd/kUMLCsv3k+ApsMxB/ZBZWCfqmGBN7SBu6FTIgZCjC4/eUJPcLdMTF6NTbA+D
-7BQziV38lHCfo5d48Bq2hq6Fb7ti2/9FIgvalz5jSnmKKUAq7MHceRFJAJi1wOJY
-Hz0tYBHhD0EFSmzHNgwV4VA7m6m3c7QxRGF2aWQgRS4gTydCcmllbiA8ZGVmdW5j
-dCAtIG9icmllbkBtZWRpYS5zcmEuY29tPokAlQMFEDNmwwtlYKmsNPn51QEBphkE
-AK70I7FWzJfGMmtej7gN1rMliBxsfxxmy1DZVSVP0T7xkniIvgfmoiq+2Sn14iJl
-2Lb+i+/3ADS5XQxl09LciSq6YqvPhQZvAuRj5UxMO0nC4zO1+Jr6pxXH8cu5kx+5
-MAH9/K4ktbmL2RvtffJRJuv/0nyn7h1rRHVgyP+Yq6x6tB1EYXZpZCBFLiBPJ0Jy
-aWVuIDx3aG9pcyBEbzM4PokAlQMFEDHR+5BlYKmsNPn51QEBzMAD/R+ridxhjUWo
-JKpAfecs7rSTPq+ajwiVMjtykv97nbVOpFM4roctdiudUEjj0P6g331MsZOVST6M
-6sdztj+OzQhEtmQpw1SyXclUgaK2HsA9opIWQxU0XsGsiOochbPI+4ezXDvPeHgG
-YVRNDuFzb1BiVbauATXaq/HB6xDsHagdiQCVAwUQNmQ33T/ZOshBzgmJAQGrCwP+
-NNVRnjjcNo41qkTsRW8bhqhbHrHBOlAfq+3kT/gM1xUAcYsQOKurgBGNMAr3wew8
-ApsUz7QgatFLTgxBNX/vS6/7hUuqNJhBAwpCG6i4lUFmJKONY9YND9tP6VhNMdBL
-F76yUhxORPu4vcxPOqchN/Jgkevjf9ONnIYDeV/hySm0IkRhdmlkIEUuIE8nQnJp
-ZW4gPG9icmllbkBOVVhJLmNvbT6JAJUDBRA0didEq/8HtEbzIS0BAf5oA/43tqeI
-pgkuyKvCg28bX0YtQBSJo64ohFsSgQN2FANfpghH8dhfQt3/AXH3jOisHA7ESTNx
-ZT8yxPl3T4ZhZ3VILlldeuAM4g1U/ZDS+IPJMu7Rzwt4XYy725X+fLVeWoPIuIgp
-vX8+8hc7v6NkV2nwBMgbRGoblAzas2K79skXvIkAlQMFEDMWkrZD7IadE0shMQEB
-PbAD/06rmYrMb/Q/arblxzZ9DOpwuksv9ColF/vheexCLPzBcqtqxQ2li6f02CWA
-RH34P23gC5m2wUj7I5+5LvMOg1SFimSrlmvg8ZhgfKIvFjwbPG/g5rVq0/lcyNGQ
-/lTPJAsREBwcnBhkr9oT/BeRS7uoWykN4NM01dnx12upXvX0iQCVAwUQMpEBMWVg
-qaw0+fnVAQHeawP+M7BdBFis4zNe7H51+BA0i35yRoy1efj7bS7QBqPes+oxTpAi
-hO+wxwbXjurdNjCruldi926NCls+MLcSsGczWCHhe+o+Gp/xppjN9QX7SvHBVtSH
-nlUucwLpgdj4rOMcPjVIwLkH95JwaiDW2iO876rGuLbcn7oGT+3Ww1psEDGJAJUD
-BRA2ZDeVP9k6yEHOCYkBAfVdBACNSHeqQjRkeX2pP1woHSW4AD77buMHma5bno2F
-yChsCN7ZPdAlGixiscnwd41+nxuxiK2x/EyIuzs+9EYVtiikWeQCkR8ajGH0xXOK
-H+W8Mun1RtN9S8HtJWxX5Pfz8LHOziT6Y+HwJmncAIIbY3N+Yhbvd9XAl2l6OQ8c
-uSrrBIkAlQMFEDa+UHHKbyuD/AwC1QEBULYD/RgnK84Wf37e+5WGQbHgzUkrXXxz
-fFpRTEV0owBSK5KA7+qlGVQVFZJ/Qz4dEwU0EAHj72uaxVuYAa+fCaOzD/G6VOv+
-4r9zout8dxPYfK1RLPMg/5hn0Jqf2Ce733ibK8NUYtjMY5z0F5wjEdiieSsLIsT9
-J4dB2ZODT2Hfe7brtCVEYXZpZCBFLiBPJ0JyaWVuIDxvYnJpZW5ARnJlZUJTRC5v
-cmc+iQCVAwUQNHYnV6v/B7RG8yEtAQEkHgP7BSvndsqWiSDosBrnuD0R94ItlJKU
-sCt/vu/AuhosrOx2hYtD3TxU2ZBlBtS3mS3c7Qe13H/NFM+SrNXa0pbRoDsPlcNY
-nK/WV8G6/WDwLXrazm+iIwrPpbILKc/yfnWdGVdpIe3FaqUsEFDcgjMlcZ3gB6RA
-YGdzHyjZdJh1DIuJAJUDBRAyxHKdZWCprDT5+dUBAenWA/93EfJZx5fuarjQ7AnQ
-iPAjAi95v3Rlh13+N9vC34+C7RMi9pIj6B6PnWTNbVhg8RY8S6hB91J6GrN0KVLD
-8yDpY6+U08Yc47fOfSWhPopNDfqgviGw7ONmc2QCWEKpcH4c1VD2jJIr7iewfVgJ
-AiKdEB8kQhrutuQNDNNX1dCSCYkAlQMFEDWRdmGzWmLrWZ8yPQEBwswEAIRV9oAL
-x9Ow9ZDtG/TLfae29TBSYEinPj/6n8d+hQDiX41rQ4nLGCLcdgBtINKfeQ6WUcBW
-tWB9KqxdaV105QUhcEUpqMwK5U6DZBDipjuy4i6w7Ml0BLWtl/fANc33IPlnFAdD
-oP6s3oHtoRLNW0ryDk4g5bfFnMzF/X9hZdTLiQCVAwUQNmQ4Kj/ZOshBzgmJAQHb
-ZQP/Qs/Zefw9qxqrUihncZRIQbbnLsor4a0n2lH9cNTsSKU0H4a8rDlqYva+PFA1
-umFvVOon90dqoq8C6cykts4xRRKrPNnfiis+otwHgsKrzDIONyHWxnM9Ic/EjbOs
-AHcBCBtLwxczFegWNgWbEy0FIVlzcmquRxO+7woxeW5MEHiJAJUDBRAzaSRDV0EE
-o6SepNkBAfCOA/9e2DhVo6geSpWjdIXiv0yQC2Abv2TunPt2UiUxpgYkHzt+Ubk+
-k8cj2j723FZAfi+R7FobNSx7P4mCdrf2WEzaHdWLt6REr61rvqUc5ir/oHgUP1Ok
-tgAUhy6TJUMklyzENkPRZG2hiQbfPQYVEh5m1Xmcp3Gel0eiinWui2Iv/okAlQMF
-EDa+UHnKbyuD/AwC1QEB8CAD/2gYTjkPFcktVKkTX7w2O0Q3o7yLzbo9Y/USRsm+
-gVMMZjZ7QiiO1LGl6IIiKRtJIXi45PcHtYgSZlXKflqPHhEIrOhFwpV+C7uL5jnv
-ATGhlLHxWuNLTlPAVD5FsdJdOHI7UdkJh19JpphV+usu/mihMFEfM/kOVJeTXed1
-0E4T
-=Qwmg
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jdp;</title>
-
- <programlisting>John D. Polstra &lt;jdp@polstra.com&gt;
-Fingerprint = 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzMElMEAAAEEALizp6ZW9QifQgWoFmG3cXhzQ1+Gt+a4S1adC/TdHdBvw1M/
-I6Ok7TC0dKF8blW3VRgeHo4F3XhGn+n9MqIdboh4HJC5Iiy63m98sVLJSwyGO4oM
-dkEGyyCLxqP6h/DU/tzNBdqFzetGtYvU4ftt3RO0a506cr2CHcdm8Q+/vPRJAAUR
-tCFKb2huIEQuIFBvbHN0cmEgPGpkcEBwb2xzdHJhLmNvbT6JAJUDBRAzBNBE9RVb
-+45ULV0BAWgiA/0WWO3+c3qlptPCHJ3DFm6gG/qNKsY94agL/mHOr0fxMP5l2qKX
-O6a1bWkvGoYq0EwoKGFfn0QeHiCl6jVi3CdBX+W7bObMcoi+foqZ6zluOWBC1Jdk
-WQ5/DeqQGYXqbYjqO8voCScTAPge3XlMwVpMZTv24u+nYxtLkE0ZcwtY9IkAlQMF
-EDMEt/DHZvEPv7z0SQEBXh8D/2egM5ckIRpGz9kcFTDClgdWWtlgwC1iI2p9gEhq
-aufy+FUJlZS4GSQLWB0BlrTmDC9HuyQ+KZqKFRbVZLyzkH7WFs4zDmwQryLV5wkN
-C4BRRBXZfWy8s4+zT2WQD1aPO+ZsgRauYLkJgTvXTPU2JCN62Nsd8R7bJS5tuHEm
-7HGmiQCVAwUQMwSvHB9/qQgDWPy9AQFAhAQAgJ1AlbKITrEoJ0+pLIsov3eQ348m
-SVHEBGIkU3Xznjr8NzT9aYtq4TIzt8jplqP3QoV1ka1yYpZf0NjvfZ+ffYp/sIaU
-wPbEpgtmHnVWJAebMbNs/Ad1w8GDvxEt9IaCbMJGZnHmfnEqOBIxF7VBDPHHoJxM
-V31K/PIoYsHAy5w=
-=cHFa
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.benno;</title>
-
- <programlisting>pub 1024D/15BE120E 2001-01-15 Benno Rice &lt;benno@FreeBSD.org&gt;
- Key fingerprint = E786 5BF6 A296 5F77 E3DA 7493 6D0C 7BC6 15BE 120E
-sub 1024g/313F3AF2 2001-01-15 [expires: 2002-01-15]
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDpikIcRBADDVeCRQ1aPvgIjJy6CTmDXjzSS5J5cxWaGhbA/UGj5NPj48cqa
-FTR3A8/ez+Ui01RIRStEMaGrpkDNSGkllaZnyTAIW6ozIp1j1UD27mCEA/I2PB5I
-B81jrkUkQOa0SVyXfx5livFQ8qup7p/g2Onej99iQwaHYk4XMTDMhZvk7wCg5QuS
-rNR071oflpT+Ysxie3R8Kn0D/0o3d0TsACLEKDKHZcsKT4OhrbIPfQp1cWh7+XC4
-wqItBjXHWIdXMCeS/N/DYzPWAFZha0e8NHxqCCQwbdpHdX+6Sn3YwVEPMlPA3i6r
-5pYuDPj8m9QpLWYu/AXwEF/KMwKYPz460IT9YHukeiOzB1q2VX3glsEr1DnRzckD
-WAxyBAC28HVDH/7XS6L5bGeZouPhY7uX4XoHeZdpcWI3jS9dBwcKjmXieVQMIh13
-ZdO5zXrxCXoX6sS80kpxa1WfTs+VMlMuEYUP2H0bp6XjDHHvhOKEj4CO2ysPTRzR
-TQKyso4TO3zxg/yjDT4QLCtbmHvTvVj9I/duP15FmRRUQMxnMLQeQmVubm8gUmlj
-ZSA8YmVubm9ARnJlZUJTRC5vcmc+iF0EExECAB0FAjpikIcFCQHhM4AFCwcKAwQD
-FQMCAxYCAQIXgAAKCRBtDHvGFb4SDo+TAKDgTB5nUSx/3me0QKSw6pinfvGGLgCd
-FoGtOhnXL25I0HgEGBDS+tqHkxq5AQ0EOmKQqRAEALWN6zMxyIlkNHiagyWfc/qg
-EgjfbD2yiXIvR/CRZqWPKE5LbtAeCNc6tnfYeQSIZz5cCZs5iImafHKf4r5CvzZd
-Rxrl/2FngjAAMCi99wCuOBZX2h1ruqrI3mDqaWBRiGWEeu58+CllZdH0fpfAnI3r
-cJowZeBj8Ss1QZsVzeyfAAQLA/0ZwjK242AXkXjibtzEfZqK7l22D9xIT+ajc6zP
-34F//PlyRVijEbWII/wy6k5wNLXSVUoDhEMucdsc1AXJ2CQN0nJPyETlhvTpJidh
-/gwDrNVtvPCOt/VleX+C2lI4xGW8Dx5pJkoULhgmsdjxvo2blRpreLuGhsU7oU9Y
-7d/fJohMBBgRAgAMBQI6YpCpBQkB4TOAAAoJEG0Me8YVvhIOT9EAoKloqPBTtp9p
-JAEew3wXXri0oNIvAKDP6fbrVo2vbD2iZXw2m3Y2E/z5qA==
-=rQiL
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.guido;</title>
-
- <programlisting>Guido van Rooij &lt;guido@gvr.win.tue.nl&gt;
-Fingerprint = 16 79 09 F3 C0 E4 28 A7 32 62 FA F6 60 31 C0 ED
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzGeO84AAAEEAKKAY91Na//DXwlUusr9GVESSlVwVP6DyH1wcZXhfN1fyZHq
-SwhMCEdHYoojQds+VqD1iiZQvv1RLByBgj622PDAPN4+Z49HjGs7YbZsUNuQqPPU
-wRPpP6ty69x1hPKq1sQIB5MS4radpCM+4wbZbhxv7l4rP3RWUbNaYutZnzI9AAUR
-tCZHdWlkbyB2YW4gUm9vaWogPGd1aWRvQGd2ci53aW4udHVlLm5sPokAlQMFEDMG
-Hcgff6kIA1j8vQEBbYgD/jm9xHuUuY+iXDkOzpCXBYACYEZDV913MjtyBAmaVqYo
-Rh5HFimkGXe+rCo78Aau0hc57fFMTsJqnuWEqVt3GRq28hSK1FOZ7ni9/XibHcmN
-rt2yugl3hYpClijo4nrDL1NxibbamkGW/vFGcljS0jqXz6NDVbGx5Oo7HBByxByz
-iQCVAwUQMhmtVjt/x7zOdmsfAQFuVQQApsVUTigT5YWjQA9Nd5Z0+a/oVtZpyw5Z
-OljLJP3vqJdMa6TidhfcatjHbFTve5x1dmjFgMX/MQTd8zf/+Xccy/PX4+lnKNpP
-eSf1Y4aK+E8KHmBGd6GzX6CIboyGYLS9e3kGnN06F2AQtaLyJFgQ71wRaGuyKmQG
-FwTn7jiKb1aJAJUDBRAyEOLXPt3iN6QQUSEBATwQA/9jqu0Nbk154+Pn+9mJX/YT
-fYR2UqK/5FKCqgL5Nt/Deg2re0zMD1f8F9Dj6vuAAxq8hnOkIHKlWolMjkRKkzJi
-mSPEWl3AuHJ31k948J8it4f8kq/o44usIA2KKVMlI63Q/rmNdfWCyiYQEVGcRbTm
-GTdZIHYCOgV5dOo4ebFqgYkAlQMFEDIE1nMEJn15jgpJ0QEBW6kEAKqN8XSgzTqf
-CrxFXT07MlHhfdbKUTNUoboxCGCLNW05vf1A8F5fdE5i14LiwkldWIzPxWD+Sa3L
-fNPCfCZTaCiyGcLyTzVfBHA18MBAOOX6JiTpdcm22jLGUWBf/aJK3yz/nfbWntd/
-LRHysIdVp29lP5BF+J9/Lzbb/9LxP1taiQCVAwUQMgRXZ44CzbsJWQz9AQFf7gP/
-Qa2FS5S6RYKG3rYanWADVe/ikFV2lxuM1azlWbsmljXvKVWGe6cV693nS5lGGAjx
-lbd2ADwXjlkNhv45HLWFm9PEveO9Jjr6tMuXVt8N2pxiX+1PLUN9CtphTIU7Yfjn
-s6ryZZfwGHSfIxNGi5ua2SoXhg0svaYnxHxXmOtH24iJAJUDBRAyAkpV8qaAEa3W
-TBkBARfQBAC+S3kbulEAN3SI7/A+A/dtl9DfZezT9C4SRBGsl2clQFMGIXmMQ/7v
-7lLXrKQ7U2zVbgNfU8smw5h2vBIL6f1PyexSmc3mz9JY4er8KeZpcf6H0rSkHl+i
-d7TF0GvuTdNPFO8hc9En+GG6QHOqbkB4NRZ6cwtfwUMhk2FHXBnjF4kAlQMFEDH5
-FFukUJAsCdPmTQEBe74EAMBsxDnbD9cuI5MfF/QeTNEG4BIVUZtAkDme4Eg7zvsP
-d3DeJKCGeNjiCWYrRTCGwaCWzMQk+/+MOmdkI6Oml+AIurJLoHceHS9jP1izdP7f
-N2jkdeJSBsixunbQWtUElSgOQQ4iF5kqwBhxtOfEP/L9QsoydRMR1yB6WPD75H7V
-iQCVAwUQMZ9YNGtaZ42Bsqd5AQH0PAQAhpVlAc3ZM/KOTywBSh8zWKVlSk3q/zGn
-k7hJmFThnlhH1723+WmXE8aAPJi+VXOWJUFQgwELJ6R8jSU2qvk2m1VWyYSqRKvc
-VRQMqT2wjss0GE1Ngg7tMrkRHT0il7E2xxIb8vMrIwmdkbTfYqBUhhGnsWPHZHq7
-MoA1/b+rK7CJAJUDBRAxnvXh3IDyptUyfLkBAYTDA/4mEKlIP/EUX2Zmxgrd/JQB
-hqcQlkTrBAaDOnOqe/4oewMKR7yaMpztYhJs97i03Vu3fgoLhDspE55ooEeHj0r4
-cOdiWfYDsjSFUYSPNVhW4OSruMA3c29ynMqNHD7hpr3rcCPUi7J2RncocOcCjjK2
-BQb/9IAUNeK4C9gPxMEZLokAlQMFEDGeO86zWmLrWZ8yPQEBEEID/2fPEUrSX3Yk
-j5TJPFZ9MNX0lEo7AHYjnJgEbNI4pYm6C3PnMlsYfCSQDHuXmRQHAOWSdwOLvCkN
-F8eDaF3M6u0urgeVJ+KVUnTz2+LZoZs12XSZKCte0HxjbvPpWMTTrYyimGezH79C
-mgDVjsHaYOx3EXF0nnDmtXurGioEmW1J
-=mSvM
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.wosch;</title>
-
- <programlisting>Type Bits/KeyID Date User ID
-pub 1024/2B7181AD 1997/08/09 Wolfram Schneider &lt;wosch@FreeBSD.org&gt;
- Key fingerprint = CA 16 91 D9 75 33 F1 07 1B F0 B4 9F 3E 95 B6 09
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzPs+aEAAAEEAJqqMm2I9CxWMuHDvuVO/uh0QT0az5ByOktwYLxGXQmqPG1G
-Q3hVuHWYs5Vfm/ARU9CRcVHFyqGQ3LepoRhDHk+JcASHan7ptdFsz7xk1iNNEoe0
-vE2rns38HIbiyQ/2OZd4XsyhFOFtExNoBuyDyNoe3HbHVBQT7TmN/mkrcYGtAAUR
-tCVXb2xmcmFtIFNjaG5laWRlciA8d29zY2hARnJlZUJTRC5vcmc+iQCVAwUQNxnH
-AzmN/mkrcYGtAQF5vgP/SLOiI4AwuPHGwUFkwWPRtRzYSySXqwaPCop5mVak27wk
-pCxGdzoJO2UgcE812Jt92Qas91yTT0gsSvOVNATaf0TM3KnKg5ZXT1QIzYevWtuv
-2ovAG4au3lwiFPDJstnNAPcgLF3OPni5RCUqBjpZFhb/8YDfWYsMcyn4IEaJKre0
-JFdvbGZyYW0gU2NobmVpZGVyIDxzY2huZWlkZXJAemliLmRlPokAlQMFEDcZxu85
-jf5pK3GBrQEBCRgD/jPj1Ogx4O769soiguL1XEHcxhqtrpKZkKwxmDLRa0kJFwLp
-bBJ3Qz3vwaB7n5gQU0JiL1B2M7IxVeHbiIV5pKp7FD248sm+HZvBg6aSnCg2JPUh
-sHd1tK5X4SB5cjFt3Cj0LIN9/c9EUxm3SoML9bovmze60DckErrRNOuTk1IntCJX
-b2xmcmFtIFNjaG5laWRlciA8d29zY2hAYXBmZWwuZGU+iQEVAwUQNmfWXAjJLLJO
-sC7dAQEASAgAnE4g2fwMmFkQy17ATivljEaDZN/m0GdXHctdZ8CaPrWk/9/PTNK+
-U6xCewqIKVwtqxVBMU1VpXUhWXfANWCB7a07D+2GrlB9JwO5NMFJ6g0WI/GCUXjC
-xb3NTkNsvppL8Rdgc8wc4f23GG4CXVggdTD2oUjUH5Bl7afgOT4xLPAqePhS7hFB
-UnMsbA94OfxPtHe5oqyaXt6cXH/SgphRhzPPZq0yjg0Ef+zfHVamvZ6Xl2aLZmSv
-Cc/rb0ShYDYi39ly9OPPiBPGbSVw2Gg804qx3XAKiTFkLsbYQnRt7WuCPsOVjFkf
-CbQS31TaclOyzenZdCAezubGIcrJAKZjMIkAlQMFEDPs+aE5jf5pK3GBrQEBlIAD
-/3CRq6P0m1fi9fbPxnptuipnoFB/m3yF6IdhM8kSe4XlXcm7tS60gxQKZgBO3bDA
-5QANcHdl41Vg95yBAZepPie6iQeAAoylRrONeIy6XShjx3S0WKmA4+C8kBTL+vwa
-UqF9YJ1qesZQtsXlkWp/Z7N12RkueVAVQ7wRPwfnz6E3tC5Xb2xmcmFtIFNjaG5l
-aWRlciA8d29zY2hAcGFua2UuZGUuZnJlZWJzZC5vcmc+iQCVAwUQNxnEqTmN/mkr
-cYGtAQFnpQP9EpRZdG6oYN7d5abvIMN82Z9x71a4QBER+R62mU47wqdRG2b6jMMh
-3k07b2oiprVuPhRw/GEPPQevb6RRT6SD9CPYAGfK3MDE8ZkMj4d+7cZDRJQ35sxv
-gAzQwuA9l7kS0mt5jFRPcEg5/KpuyehRLckjx8jpEM7cEJDHXhBIuVg=
-=3V1R
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.gshapiro;</title>
-
- <programlisting>Type Bits KeyID Created Expires Algorithm Use
-sec+ 1024 0x4FBE2ADD 2000-10-13 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = 56 D5 FF A7 A6 54 A6 B5 59 10 00 B9 5F 5F 20 09
-uid Gregory Neil Shapiro &lt;gshapiro@gshapiro.net&gt;
-uid Gregory Neil Shapiro &lt;gshapiro@FreeBSD.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQCNAznnjPsAAAEEAL5gfaY7RP5vm89lqmjGAJRBFLM/qzHJKrYkRVDASeLZ0/JI
-Bfypd8N1vQz80tnqzOh7aLgAskgluyx0O9EuZXTJUwm+ew6wA8vh8JA0kpI5g3N5
-wjXQNWPxSCeNIz1hbgAPtRunVLXXoaxxCQziU38bd2RvzlvgQdbgof5PvirdAAUR
-tCxHcmVnb3J5IE5laWwgU2hhcGlybyA8Z3NoYXBpcm9AZ3NoYXBpcm8ubmV0PokA
-lQMFEDnnjRPW4KH+T74q3QEBKlED/1F8UjkufYD0G9eV7X5ujAVffIBl6nvHVw4+
-/m+lXxnUmOInk8AUmHIxK62BJ9CPWHegf91BsGNMVA7cQiF+atdz8Yy4h1Snt7FB
-OsL2Ak0g2WUrIDfB+N5SB/EjdK0BdURsccYbORGVIveveUNmxuW4jUZWcInCkDx4
-FTGRxzAFiQCVAwUQOeevO3xLZ22gDhVjAQHAVAP+NWdTbxipCQANnRf4BNl492mG
-VN51MBZnlsy/lyMu2yckR3eacaXmp3zKardwex7Ajle5XC6sJ1H3twYv8g63eqJ4
-XuxC9Uxmer2mj7wibcO2srtwv2hgLMNVjJrClALolQ6WT7/6L1YENP0Ef26eJXnw
-pwXdfaXurbwnv4tyOOGJAJUDBRA556+fvdqP1j/qff0BAVUtA/94+oMC9pJgXi+0
-tbwUsAu/pJqHByjCjO+LscH+gtqb4VhfxdEllHTVj5Cju7o+HcYZdtTRdggx2FqV
-zaCp2kq1kbEGuQCJzwNHkG10I8C5YlyXUaYGwX1gEPImzTpOI0C3Any0UvK4KQsl
-Crj0UmRARVwzulGYE7hxknivvkdbw7QrR3JlZ29yeSBOZWlsIFNoYXBpcm8gPGdz
-aGFwaXJvQEZyZWVCU0Qub3JnPokAlQMFEDnnjPvW4KH+T74q3QEBMeYD/03sPgJ0
-QKQXzSRGyiVZBkZ4frsFj6nH2IP9+zCTRUlX0uyo6f1Z2RC3a++MbaKFR/LUmdZ8
-DkOfOTcvsoIQJ6BOQO1/XpOkppvhrYRUU7a6C9wM7ptWEJvx5IcmWk5oWxmx373e
-cPb5MkhiXK85/NRxhlS5PG5kcz2ajJ7imYnuiQCVAwUQOeevZnxLZ22gDhVjAQGn
-2AQAta7mxgLMyGKhq9msyQ2rITAhEvhoYM47OeOgyq5FKx0b0rEmIjC+sDx3YOsb
-auw/Z5bAYzZnUmhe65KKA76eITqlnMt1ykaDu0jQLGKczXjuLCMCDT/JCZStoyt6
-XhG9R+R8PnXk80PtZlTJjHuJyghBq5fzrIKs0k2G7eVchnKJAJUDBRA556+nvdqP
-1j/qff0BAWVdA/9m5bMpkhnxDcfApaDp6mF2hEdacuHXrMXOzsrTuFiFoJhByXfM
-bMDM1T8Hq3FU8TJ3BQ/ydgoeiuvWJ5j0clBegCbxS7tH/FvlnZBikNeARFTD0m5H
-hmG+vzIwhe2sjh7/0dqaj1RMwLPxrQVyukHGnzyFodjcDJy1jWEl1Onytw==
-=i+mc
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.gshapiro;</title>
-
- <programlisting>Type Bits KeyID Created Expires Algorithm Use
-sec+ 1024 0xFCE56561 2000-10-14 2001-10-14 DSS Sign & Encrypt
-f20 Fingerprint20 = 42C4 A87A FD85 C34F E77F 5EA1 88E1 7B1D FCE5 6561
-sub 1024 0x285DC8A0 2000-10-14 2001-10-14 Diffie-Hellman
-f20 Fingerprint20 = 69AB 26D1 A244 51E3 2B6C 7091 BD19 FA76 285D C8A0
-uid Gregory Neil Shapiro &lt;gshapiro@gshapiro.net&gt;
-uid Gregory Neil Shapiro &lt;gshapiro@FreeBSD.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQGiBDnnrJwRBACXxbriCa+0S4JY8rFJe9U160xXZ0hqJsvfIZtokLGDjC21G83K
-4pTJRhdWlWa04HrehUtMIdT/EXKfUJCFl7vk/WGWT3/1H3xxEUQzxKu3xAJWQXJs
-8t2r+Dkj0csrpLJvRyuZ5+mzzFbzFSIaWohlY8Q1Ou+39jORfyVPkGjizwCg5Czr
-VDcXH2oTF3vMHsw/Bhfz3bMD/AhY8q/jmUiV09hCKb7XG6f0C+qpmBeByk5G/JFm
-TRv5T34MkWQJodaUOhJtzoOsOjKQSect3c+XncIMADAGCnGPGP/6sxfuyLOgsuV6
-TXSxUvxi+E99zKTmKPFRTBuJCVATrTmHHAiLEqTZzE8DeJ6wK9kT1fRVnCKs4ycz
-I7diA/44Ay2OW4PAuri2lJm7yXsiP54lNCP0eMXOQ8RSWBZhHKQl66o/pm+FsT9G
-K5XloJrFa7+2XuiVoyNiva18dZkCFJzychda9pwfkkHjtidMRI97ACdUCPPQFVMB
-7Dqr4wXp+qQ+tXScnZT3LMeotFwuiSfDl4VeNOswEw+F9ObCUbQsR3JlZ29yeSBO
-ZWlsIFNoYXBpcm8gPGdzaGFwaXJvQGdzaGFwaXJvLm5ldD6JAFwEExECABwFAjnn
-rJwFCQHhM4AECwoDBAMVAwIDFgIBAheAAAoJEIjhex385WVhDocAnjzccU2v9ekk
-oUZZHoV7Bugs1npLAKDAmgzpoU3sU6zXwEQVEVq+wPpZD4kARgQQEQIABgUCOeet
-DgAKCRAY9QOAJMJ4AkNKAJ93IfPLKQoBCm3TEkoQQeJWYNcRwwCdEzokbdvw/ZJw
-xivyMefPJ3br/2+0K0dyZWdvcnkgTmVpbCBTaGFwaXJvIDxnc2hhcGlyb0BGcmVl
-QlNELm9yZz6JAFwEExECABwFAjnnrPwFCQHhM4AECwoDBAMVAwIDFgIBAheAAAoJ
-EIjhex385WVhktIAoMvD+IjOrWx+dJ3xmV+dVm+Bnu0aAJ0bSPAcx4cPpR/peHQF
-JNrZgswER4kARgQQEQIABgUCOeetEgAKCRAY9QOAJMJ4AoxaAJ9OZYEXRzSmnbDo
-Vukf+j5LB/fA2gCgpOQ8p/cw15Dmd27gDJ58DkTpyRi5AQ0EOeesnhAEAO9L5G1l
-A3oDYFq62bifXtKS/zM2aiKND8yONxRaEuhcSqroNY5FrRy1wd4t14SA4/LzZ34D
-siuNZ2+h2HD/3KTMDQ/qE/FBblNwE5ZH9cQ44a9WwGsWFDRgtuHV/7dHlZClPpwD
-+tFVI7UGufhv+PPKAG3tTfRvWY2lReqVwsc3AAMFBADlrsLDoQFnE2ieS5pn3pB/
-aiMF2Z09U6fVTY+mdAdAU43xifQFGMi9vuzHNzwFGtJosK35BhfSshHTER3cT0yN
-79HifRAAwKP+KIoxFhfgudZafG6BaaIOUlhPW8s9k+FtN04x6/jgRq9pz/E6MwVx
-W0Rf6V5XAIFWWN3xd2JH5okATAQYEQIADAUCOeesngUJAeEzgAAKCRCI4Xsd/OVl
-YeFIAKC//WKobq3b9vGn1zkBTuomGMPa3QCgm71DX+8oALnjNzj5f4+wH0CtV/iJ
-AEwEGBECAAwFAjnnrJ4FCQHhM4AACgkQiOF7HfzlZWHhSACg1QVuMlj4R1DH6avL
-pqMjQ7U7OMcAn2uyl3bEe476vV8RnKf83qQuw4uZ
-=PgGN
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jesper;</title>
-
- <programlisting>pub 1024D/F9561C31 2001-03-09 Jesper Skriver &lt;jesper@skriver.dk&gt;
- Key fingerprint = 6B88 9CE8 66E9 E631 C9C5 5EB4 22AB F0EC F956 1C31
-uid Jesper Skriver &lt;jesper@wheel.dk&gt;
-uid Jesper Skriver &lt;jesper@FreeBSD.org&gt;
-sub 1024g/777C378C 2001-03-09
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDqpHqIRBACDazER4MfiNd6QrTZ925IKM0HuYP1YN6uodGYhCuBGb1a4cFnt
-0Xuw1fuaGqahBnNmBg7Rsetaf7b7/w90Of286mRBgIJIr33VxaKd+lW8l6ORQK9K
-bDR8/IpgHxjt8LXNdBr0/Eddj6mOPojooIDOmoGyj0XOlRb5bq+xWlDtAwCgnjQa
-KG01en2qMUwrvPPZzyWg/qkD/3q+NyOVyi0MAgXdYNxI0tMrDPsRzmbvG8wxZQ1S
-fGHGJEvlKhksePCteX3cLicrxRZazfIteiBXL+0iEvSauF7JZzhG5OfbLTQS2MKr
-d0rFCSmez4VAJfx8nqJoA4C+yTphxAlyP53JKF2BmRbfSuz4vIbi0e+zsc+kZehS
-7Tw+A/9tanL63z5D8qmPZAE1JqRJfyDnTthzUPPY9h1CEZN4jtcdL/FLME2TmKva
-5kcgp0WTAGK0tHsyHvij7KZDAp8Z2R8/456DpS0Rk5vTBy+WKMWV+j+RlRlSAr1U
-bkg6cEtMKCImXsprST8UImfJH0DFUXt15gQ4ogog2xPnuvk3/LQiSmVzcGVyIFNr
-cml2ZXIgPGplc3BlckBza3JpdmVyLmRrPohXBBMRAgAXBQI6qR6iBQsHCgMEAxUD
-AgMWAgECF4AACgkQIqvw7PlWHDE3ugCfa3zgBbxwCmIGGlSrwWPP0q+IGsAAnjuy
-GZPJgHaWjAn+SrRftnZu9M0biJwEEAEBAAYFAjqpRasACgkQH3+pCANY/L0+bwP/
-YrW19JdTDG7fDCYbwgn1ngA1y+nRT25G+ozBUJt5q0H8VL6nrWwcbfk9Yg6jWkIx
-Qs2SF1A9yv0YXFqN1ihGYk0iTU/peZ17wP/TIvd+zkcrzXpdHrfrOy+xgalbi7+c
-v52W/49xYvqBsmk0CDRSkdkYt3VgvK4Bo7xoBF4IEl6IRgQQEQIABgUCOqoEkQAK
-CRBHg9f1XdH7jORAAKCxXIkp49PFrGbiM+JBIsMS+Ig2bwCfXeekX2maFMz4I8pf
-AorI1IepXYa0IEplc3BlciBTa3JpdmVyIDxqZXNwZXJAd2hlZWwuZGs+iFcEExEC
-ABcFAjqpKJgFCwcKAwQDFQMCAxYCAQIXgAAKCRAiq/Ds+VYcMazBAKCMqcWbk7gC
-hYm53EL6HVDoxaeDOQCfa6bEjXrcxW/EST0FlCMcs2LKoXSInAQQAQEABgUCOqlF
-vwAKCRAff6kIA1j8vQA+A/4+e1LpjSu8NFfeky2GG2Mjk1xqzb1nzVDQlKmaPXY3
-dLtqw5tVHA1FLNaSFXDg05NowqQj6OIfavs26orerWyRrD3OJZQBBde5gf/IZBVO
-bk4WzE0hZmHQvchrWR/gDiHJRYnSw+4Sx5MnKBlgccZbIPxabHudUnx12iuNtTl6
-O4hGBBARAgAGBQI6qgSmAAoJEEeD1/Vd0fuMdi0AoJdRZoDG9YwxVyp3wb+e/e0r
-UPwdAJ9fFipa2TGSkCjO61unpDtawmJCLbQjSmVzcGVyIFNrcml2ZXIgPGplc3Bl
-ckBGcmVlQlNELm9yZz6IVwQTEQIAFwUCOqkorQULBwoDBAMVAwIDFgIBAheAAAoJ
-ECKr8Oz5VhwxEjUAn1QJFvqeDJ8gU8rtgz3CmnjlsAAmAJ9BqfYvV5zxGvgkOKRy
-Mu6i2Qa5m4icBBABAQAGBQI6qUWXAAoJEB9/qQgDWPy9FkYEAKwpmiuxudlg5EK/
-ZJ4ClDDdL+Nr9TXY0sKLSwJdDWpgqBAjjovInON6rEeqa7CSvSlDozqzf97IdKRj
-BQFkogPbVSfvgamz0zJZtWkfE7Hvw52X8U7PyWthoTwECIvzYKH35+NiecJQqXf+
-AfGRLF0pCSBLSXR2zi3Bqee3nZ3BiEYEEBECAAYFAjqqBKYACgkQR4PX9V3R+4wB
-dgCfdPlMBWMvvNAcseruEfvAoRpkVGwAoOGKx9zFdxeJMh1g+y7S5/9fRbf3uQEN
-BDqpHqoQBAD69+DjZ00uDr48npfWtrVxuDmZb2jzS3Tdt0p6V2gVuengjobHNb1T
-6o4BIjPu/yQ8qDlDOb+OF63wfowMCIU+qNBBtmoSDKmQu0M9hREHA9PeHjIsN2dk
-wpIAnM7kXHAE0T00QlBCLzjvef/xooKGdcaA4Zse+wLMixgwJbto0wADBQP9Hlh+
-SI7YcYZV+nOhNnPdBG98UHNhDiheklrZ5BQMLzPEn+qHkaZTeX0SrEbPmm4D7nRk
-UGTh1H2CIL/YaffqVYVKw/8HTIJeXZMgJwdq+j3S5P/Vnc/g83uZpuzdW8PNp6A2
-u1JHPq9M1haoszxtTirQXxo4Ht4/DWaY1DtDkZWIRgQYEQIABgUCOqkeqgAKCRAi
-q/Ds+VYcMQbsAJ9J+QGEzdNcvYY0lAXZAnLBnW7lDwCeNJmcu4gVYPvBDLe2Xu7Q
-Crfzumk=
-=A3JF
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.ben;</title>
-
- <programlisting>Type Bits KeyID Created Expires Algorithm Use
-sec+ 1024 0x99392F7D 1998-08-23 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = 3D 89 87 42 CE CA 93 4C 68 32 0E D5 36 05 3D 16
-uid Ben Smithurst &lt;ben@scientia.demon.co.uk&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQCNAzXffuQAAAEEAKXLh1Z3Bg5yrHVrmm9bFUKcg5VwwWyiY0M2LznqHOhhKSPd
-yXkyWWaRZBSSZEa/KneVEYcUVM6CIwGrnO9h8drkxdZgPukrWqzkgwiI+zsOs8tS
-XAMnnoukIrfcSq8Vcclb6YW6/nduakPLTuHvHpJXhNwP+ITp1CsPVtiZOS99AAUR
-tChCZW4gU21pdGh1cnN0IDxiZW5Ac2NpZW50aWEuZGVtb24uY28udWs+iQCVAwUQ
-Nd9+5CsPVtiZOS99AQGVFAP9G0tcrm8PK1MP57xbztNzPoWnP6h5MJmVH3nor7wE
-dJwEHPXwGwqR92RptH4G+dHipbGSqsqWh65WyeTrzgm4pyX32Zb6AM2+Bbv+2NP0
-HdcY+qhlEYZyPsryuqySAWwUKSDxx22JD0cxQp1CDkeSdB8VBVCix5ZsPPMOm9/I
-ZO0=
-=IcyI
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.dcs;</title>
-
- <programlisting>Type Bits/KeyID Date User ID
-pub 1024/488A2DD5 2000/06/07 Daniel C. Sobral &lt;dcs@freebsd.org&gt;
- Key fingerprint = AF 90 A6 A2 B5 8D 6C 28 37 F3 F4 47 8B 31 47 DF
- Daniel C. Sobral &lt;dcs@newsguy.com&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzk+tBAAAAEEAK5EJZPGnimL5cl9lFRpl3mYboOuN6K/ne/2oHt5CNlhBTuU
-64VDPcBsM6ha+KJwSCdiO191AHnbpJSmIzNmL1VLHZunbZhJms2rf388pXO6nyu3
-GW7x2nmqg5qTTkVZAILcuqb8DF4ODF8FEwwCzDJ4ikhSxgXbsTN8YkBIii3VAAUR
-tCJEYW5pZWwgQy4gU29icmFsIDxkY3NAZnJlZWJzZC5vcmc+iQCVAwUQOUVdXVUu
-Hi5z0oilAQGl2gQAgWztCfCITJ7AF2e32Cq0FQkBSuh0jEIyEpZuGPJA9WbShDFL
-gZW2xxLezaCHLx+tIwyT5I0oMDEY1GG5bk0Hv3X7YUZBWvdlmHMtBgW4BM/iIm9b
-NHXhRecC9MEiwvUSCEXjpP6RDoP3GO3n3rraBDl/C1X89fDJMYB9gNwr+oCJAJUD
-BRA5PrQQM3xiQEiKLdUBAfUBA/4vbs1IsfssAbgzoYxoxVojgaQuuipZW6bCCBgj
-RSysFrNJiEi3Z9QsNKduFcZhSeYxhzwZxLb6bsoinqB60FJdZc9ivjho7ALaveYH
-haZSniBayp3zQLllzfmbrbGmSD/Jvn1Qwj85ZMZ1T21VVLVhN1pqssaX7InoRYzu
-oQKJVLQiRGFuaWVsIEMuIFNvYnJhbCA8ZGNzQG5ld3NndXkuY29tPokAlQMFEDk+
-vYUzfGJASIot1QEBPjAEAJMooQYQUef1jKBsYC9xh9WcvtQ45Hku+BKwU6tBlhLT
-JMIn9n0guzXey4gsVcpgJcjmZEXAq+dbgL/ps63CXQAahomlszpdea9aumbak1aU
-51eIEftheyZaqmM4stDvoC+pdQxWP5K3n2d/7itwFde19xQNuK9UD9iPjJnz2L47
-=oxOV
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.brian;</title>
-
- <programlisting>pub 1024R/666A7421 1997-04-30 Brian Somers &lt;brian@awfulhak.org&gt;
- Key fingerprint = 2D 91 BD C2 94 2C 46 8F 8F 09 C4 FC AD 12 3B 21
-uid Brian Somers &lt;brian@uk.OpenBSD.org&gt;
-uid Brian Somers &lt;brian@uk.FreeBSD.org&gt;
-uid Brian Somers &lt;brian@OpenBSD.org&gt;
-uid Brian Somers &lt;brian@FreeBSD.org&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQCNAzNmogUAAAEEALdsjVsV2dzO8UU4EEo7z3nYuvB2Q6YJ8sBUYjB8/vfR5oZ9
-7aEQjgY5//pXvS30rHUB9ghk4kIFSljzeMudE0K2zH5n2sxpLbBKWZRDLS7xnrDC
-I3j9CNKwQBzMPs0fUT46gp96nf1X8wPiJXkDUEia/c0bRbXlLw7tvOdmanQhAAUR
-tCFCcmlhbiBTb21lcnMgPGJyaWFuQGF3ZnVsaGFrLm9yZz6JAJUDBRA4qXaPfU3G
-z8mTvFkBASJ1A/4gAN3XvKJchXeH+mt/acNiA7+jxtAjmMfSjJiaIldYdaA9ESYi
-XDamPbwQzuaMOslA3uhH+W0tNN8AbcaQ7wqWeKN1WZ7HFPzLUuaQTJhoiNTdWmaK
-ZkhxiDNGA5ycJBXI5FwUb22QaB8Sj7u7vEXBpMo++zEcN+s6haSbAB8w6IkAlQMF
-EDgdNQU/ZTB66ZtiFQEBBL0D/3PZ1au27HPVMN/69P3mstJLzO/a95w6koavXQph
-3aRbtR7G/Gw5qRQMjwGrQ4derIcWPuONoOPXWFu2Hy7/7fYgEAsQ004MskEUImJ7
-gjCZbmASV/8CoJHtBtNTHC+63MRfD++YU0XXsN832u5+90pq1n/5c7d7jdKn/zRK
-niQQiQCVAwUQNxY7OB9/qQgDWPy9AQGTsQQAk2dcz3WicxHU+AH63m0G2lOMrRHq
-HZ1V2SJHPCJfiw5QzlACHpOT4Jx00TOMosHGbmEKwg0RYHTqH3BX0aNDw+5hhc3d
-tqjxpm7x4gwQmAsoZZD11iA3qANXF++yZVNTRXctHWcLl+3LGjJaYwpDj3O/vOep
-q+qUIuPM4+8mba2JAJUDBRA3FKmdnWdBAAxuEhUBARJtBAC9mwTXOL6cT64NwE3W
-fz3pKS+pWI97PaQX/H+3mC16uN/AP8sIlpKy++IF8XGdhMvQB2Vvq2yT81G63zAI
-D97lqG3krw8ikaNcLSp02B8vjhCGwSBw5iFLity+yrqQX+1gCOOkO358s9Lcb7Ua
-7g4736Mpff00kXyCnGsNmiDYe4kAlQMFEDcMlqZnSj3xVLFxuQEBCKwEAJrpL9rv
-YoXJztmWmpNuuSPoGKM7vm4gJ4HVzX4UxjHhMRc3c0PEHuxCboDKSAxJCatoKGN+
-bBorQ/qIElVhAo3FWxyADzNrvWsRRpSu3wzpppB9mVgzLcMdiOXWabN6toPZmNjv
-QM+WKJKexlu74kqVlx00R8TrLmOms3u9VO0ViQB1AwUQNwwBLw7sAx9+veyxAQFk
-RwL/V15Lm+poq/wwscyiNgBN7XpONJUX1OiLpI5f7s0/Rl3C97hIyHsIj08DfpOC
-C/qnAhHb/FmYL/7TuOa+fSGULInDWkgLCl/+gsYWuh6LINY8OK43cs9d64GEYv56
-3quZiQCVAwUQNq9AjPafnz58Zbu1AQGDmwP+NLOUsBKV063jzu/AKFBRGuWeG4Ms
-ZKU+wVW6upv6ELSudPV3tjNstF0y5HfOqF6Y8isxs1qvE+mUyjXRffuS4UtspScr
-XT6tQIw5NgaHH31l+PqV50T4gul3DXWBokC/Dkx72REmEA4h3jH8APFnTMxStUfN
-JyTMADWF4ySay82JAJUDBRAzbedc77OxBWZTbW0BAVtFA/42QelA3RBXYUtIcYGo
-b+QsWkA1kGyBKQGPSS9coHdUVjClBRl3UZFmZhxAODb7cBRXmpvx2ZuMrhn/MpXT
-MqPOJaE3FYm+5SoeArphsRU+T8XofxfLvRHkM3JURUjIVZdAQNvxxBso8NJG5Kay
-P0Q96Vw+3sEwFK49jt14RCJy4IkAlQMFEDNzvb1sq+iWcxFJBQEBfZwD/R3KNFf9
-ype9Dea8j1YIeNZ1E3e03en1I8fMj6EmS1/L1WfFzMnfFCxZs7JgPtkBuB3CqP8f
-+LOdDt6PHPqNakmI9E6fiuGfJZ3jFZYATXa0XKuIoxIJNKhqkpbF8ixJZFTxFwAA
-wVYM3+sqr4qQ8FzVc5entxjyxPFNkwJwRWV+iQCVAwUQM2aiBQ7tvOdmanQhAQE7
-LgQAiN6Hz+zd8bh0nO6VizbJxWFRHPbrQWnJXGoMYyy88DyszAXC4zRshlyGUDQd
-HeP/1DFCXDEu78GfDCLaJ1bm25yVR7kLxDZaEUQEbWqxfiwuzizAjkaxrW7dBbWI
-LwWqrYF5TXClw+oUU/oIUW4t6t+GpAO18PLYhSMXVYErrACIRgQQEQIABgUCNWos
-4QAKCRD1ePRkNTwCBjXyAJ9kGY+v3SwYhfPcdmgcx/JjdB8tJQCfZpymmdb82Mhk
-GcJgKzsQj+XV22CIPwMFEDU6fsFITYPUB5ReLhECRvsAnjZKzoJNqeHiEbIJThvv
-/X8Ldg3iAJ4yv+V5R2RZQ4y19nDj+g9fDfACELQjQnJpYW4gU29tZXJzIDxicmlh
-bkB1ay5PcGVuQlNELm9yZz6JAJUDBRA4t89HDu2852ZqdCEBAXM7A/9YBm+45S+G
-xfCMjVkYxWBAlNIGS6n6TBlRTNQ0B+f3RhUvCAksSRZnGnTm6PcUP8Lc1bzvrDj9
-s8auGjT1OvQ6ypC1jR7D71nsjRIaKvgLAbsPGjFSMKTwZFx+LbHCzBEvRcSb7tYn
-Jg+gtjXbVcztlSzCbWtv4qRnVhrotirh9IhGBBARAgAGBQI5/Mj1AAoJEFq8tAVo
-6EClHQYAn0WVMv1mf/ybg8Q570StT1Bveu6BAKDWIeCnyERzTB2sAToRo4F4EXkx
-p7QjQnJpYW4gU29tZXJzIDxicmlhbkB1ay5GcmVlQlNELm9yZz6JAJUDBRA3FLWc
-nWdBAAxuEhUBAcYYBACos9nKETuaH+z2h0Ws+IIYmN9FEm8wpPUcQmX5GFhfBUQ+
-rJbflzv0jJ/f2ac9qJHgIIAlJ3pMkfMpU8UYHEuoVCe4ZTU5sr4ZdBaF9kpm2Ori
-FgZwIv4QAi7dCMu9ZwGRtZ3+z3DQsVSagucjZTIeyTUR6K+7E3YXANQjOdqFZYkA
-lQMFEDcUpeQO7bznZmp0IQEB4HED/Ru3NjwWO1glxEiLTzRpU31Rh1Izw1lhVMVJ
-kLAGBw9ieSkjvdIkuhqV1i+W4wKBClT0UOE28KjpWbBKPFIASRYzN4ySwpprsG5H
-45EFQosovYG/HPcMzXU2GMj0iwVTxnMq7I8oH588ExHqfEN2ARD3ngmB2499ruyG
-l26pW/BfiEYEEBECAAYFAjn8yPMACgkQWry0BWjoQKUuQQCfVQcZ7EMyP+5n2gej
-K7gYlbQ+QqsAn1hEsflg+7Hu3E7KaS28hhZ0AKDttCBCcmlhbiBTb21lcnMgPGJy
-aWFuQE9wZW5CU0Qub3JnPokAlQMFEDcUtW6dZ0EADG4SFQEBQwsD/j9B/lkltIdn
-QdjOqR/bdOBgJCtUf905y6kD+k4kbxeT1YAaA65KJ2o/Zj+i+69F2+BUJ/3kYB7p
-rKwut2h0ek1ZtncGxoAsQdFJ5JSeMkwUZ5qtGeCmVPb59+KPq3nU6p3RI8Bn77Fz
-K//Qy+IW/WFVJbf/6NCNCbyRiRjPbGl/iQCVAwUQNxSlyA7tvOdmanQhAQFzMAP/
-dvtsj3yBC+seiy6fB/nS+NnKBoff3Ekv57FsZraGt4z9n4sW61eywaiRzuKlhHqr
-DE17STKafBOaV1Ntl7js7og5IFPWNlVh1cK+spDmd655D8pyshziDF6fSAsqGfTn
-35xl23XjO20MMK44j4I5V6rEyUDBDrmX49J56OFkfwa0IEJyaWFuIFNvbWVycyA8
-YnJpYW5ARnJlZUJTRC5vcmc+iQCVAwUQNxS1Y51nQQAMbhIVAQHPBQP+IMUlE4Dt
-EvSZFtG4YK9usfHSkStIafh/F/JzSsqdceLZgwcuifbemw79Rhvqhp0Cyp7kuI2k
-HO3a19kZ3ZXlDl3VDg41SV/Z5LzNw9vaZKuF/vtGaktOjac5E5aznWGIA5czwsRg
-ydEOcd8OVPMUMrdNWRI6XROtnbZaRSwmD8aJAJUDBRA3FKWuDu2852ZqdCEBAWVJ
-A/4x3MjeQKV+KQoO6mOyoIcD4GK1DjWDvNHGujJbFGBmARjr/PCm2cq42cPzBxnf
-RhCfyEvNaesNB0NjLjRU/m7ziyVn92flAzHqqmU36aEdqooXUY2T3vOYzo+bM7Vt
-InarG1iUqw1G19GgXUwUkPvy9+dNIM/aYoI/e0Iv3P9uuohGBBARAgAGBQI587ih
-AAoJECPnhum+7ZRu38oAn1qfuHdFzBdoeWd3RdjR0UGeXCreAJ9i4oZdvVV7KNjm
-Pm1ebPSUYkznkw==
-=WHRH
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.murray;</title>
- <programlisting>pub 1024/0E451F7D 2001/02/12 Murray Stokely &lt;murray@freebsd.org&gt;
- Key fingerprint = E2CA 411D DD44 53FD BB4B 3CB5 B4D7 10A2 0E45 1F7D
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDqHuqsRBACMfFOo/NFWEADUNcCq/6yvGLAZL1V4okeB+zTlIf/NJCiA/AT2
-AKiFNd4T3lYLlUjm44/OcPhelAqFSrtgmBLovWJibt7nva0dlOIXStQQSikzMOzV
-4tgtiQF2ONXIqFlGcEfKo5/fcxrsJ2EpQqNX7ujGtsKHpsZpkqrcL74GowCgzuwK
-PxnD+AHoa6YiX6LIhZA3ciMEAIS1vMlXFQJD1m7831ej8gBtdRVqYVHS3RohJmyY
-91eGsVdDnDtywmWUA3sg/LTRRU77zx36MbAp40XZJJeSfLUp3UeKrcxSoxpI3L/V
-C/V6BBnOLDQ5GcUiRwQTSClh8Ck2Hyi1msA00FZJxTdgPpa+CJANwAM5M+y3DJ6+
-uZSpA/9/CNa8aRcI/OPfs5SeTA/m9SSV+ITSAIfcaVYflquqQwnNh+c7SJ+3Poys
-BUahaTVcFHRrRmrVGUytek18i77cNe4ZItlUn1qu/yZwbVyTdGek8Zbv3pGIzP8r
-8r57HwL8Gi252Yv5ovCRThzsshEfN5yQizbKgHiWWmr/1FEyUbQjTXVycmF5IFN0
-b2tlbHkgPG11cnJheUBmcmVlYnNkLm9yZz6IVwQTEQIAFwUCOoe6qwULBwoDBAMV
-AwIDFgIBAheAAAoJELTXEKIORR995IcAniQ+bgl1JAocyhGbknOzz55c9i+XAJ0Q
-4/tU3vPZ3TkrU8xK8Zct2qvkNIkAlQMFEDqdf131FVv7jlQtXQEBYWQD/jEXwixB
-kuVVuLboFETpUCdMeVc6BpPzrHdfa52aPFKHqt416fAeeeXRly6lAxMDdJPxU2ZG
-3abR4iiaqDKWwiluFkEwLBL0AE2Qx2R/nNZqEYNB0BSUQNPH/Q//kG6mLOAVVvRL
-AL5R3MEeK/Y0ErH/7JXn8JPrl/rKqwCbIsL1iQCVAwUQOp4Lm2Vgqaw0+fnVAQH5
-wwQApzQwxOj8k7tBFASoFOJVZEtd8KM9oDRcJe3Dz+hzU5jbCkQJGDxtp6Y1kqel
-fLXLqJB1R8kZdTxR+IrRO+B7XRGvu/sB0u6CuKCBwSWSwstiGB8AvLwLp2vnIJxP
-+BxA3qoInj/Xjh4EivLwRpkxh3Gogzv/kTFvwTvAraBjbC+IRgQQEQIABgUCOq/2
-ZwAKCRAgFTHVhF3+3bZ6AJ49+954CXOAFFifgekFxoS5gSffPACePqswwNhSUKg1
-K/rvoludMtEAGAC5AQ0EOoe6rRAEAPF15Mz5Kg25Az3g+7OB37QfZukClm8gdjR9
-ziTS+rkjYxeP+j+BmrQNyqdyM+dNGiEk+TgJiBy6otjE3RSQHuVwxin9yMIuTxa6
-xh0PX+sV5aW03YUViglWkevdMDLTAaEUwc0y2fZv1as6Huk4k5LKNanNMRnU2giy
-tGuCTyq7AAMFA/wMMI9Px5Q0/p3iNDXZ5YQ6zbDR/aC/q2lxN38FUJOEnMaSpZvD
-/EE/gpmI2naHQuGS5C3RrCrX3/7IGGEVE9U0dl+krreVDDxz/yXYhX2D+5Zvriek
-JZHPmek20gT9i9gm3xLl2e0zS1zQ6BcYCtX5kVwIW5PTs09/MVvwscShNohGBBgR
-AgAGBQI6h7qtAAoJELTXEKIORR99rLsAn2+OxqxPJK8ZmYPKX1JKqN+IdvKuAKC6
-p9c3lJBbYHFlhxPDhBvgBaSOKw==
-=zaaW
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.gsutter;</title>
-
- <programlisting>pub 1024D/845DFEDD 2000-10-10 Gregory S. Sutter &lt;gsutter@zer0.org&gt;
- Key fingerprint = D161 E4EA 4BFA 2427 F3F9 5B1F 2015 31D5 845D FEDD
-uid Gregory S. Sutter &lt;gsutter@freebsd.org&gt;
-uid Gregory S. Sutter &lt;gsutter@daemonnews.org&gt;
-uid Gregory S. Sutter &lt;gsutter@pobox.com&gt;
-sub 2048g/0A37BBCE 2000-10-10
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Comment: ''
-
-mQGiBDnjW8sRBACtLAIsIja7+4PNGeKl3CWK1BDt8mJrNTU7yIpIFyU7kbGFzNDc
-nKuTGXwFlI/1N964p17uvwVBq49dFTGFOzw2AEvgwl5Mb75Wsf5ztYVSir8ng0b7
-123nb09ZExWCQTMMbD6RXEVfTrIUEHazYMDIhuIU+/WkYVhNWuiaACvpJwCgjuEx
-/8BANLXa9UkQt5ztgWwUUdkD/RvGakaQr4gAhVcm2mfDYjxLtm1+BxbzsDV9U2Nv
-2nlXSfCyxvbTjwX+Bq4/bwR1a0KDIPvjqYAm2tQY+bsPGkjwBL0DUrHVTRK2PpPc
-K/9avIFk+PYkpakPQx3saE9b67UbGk5rUCnbHU99mvqET3MtU5yRn9B8hu7owROi
-EXFPA/92vhsPhcPsvTq9Wi4FlWF8MeDyZsEKA/lLUTl1A4QnbiRtC3bBvxOeoPPu
-jQP25DskCdtWWcOuvHRZ6kE/WncID38oc00dqaB9xR+pi/ltnXZpOCjvU1Q0yMd5
-QcoD9Im6fLN8zo4gr2f2cwWC7TQ6TLxTYpifGK6sbC0ATdnFkbQkR3JlZ29yeSBT
-LiBTdXR0ZXIgPGdzdXR0ZXJAemVyMC5vcmc+iFYEExECABYFAjnjW8sECwoDBAMV
-AwIDFgIBAheAAAoJECAVMdWEXf7djlEAn2xtSRV2lRFi0H7zG9gL55Ud+NSKAJ4q
-48/IHLPlbE2hXoesDXTvwBvYwIhGBBARAgAGBQI57nu4AAoJEF1SHIzmsVAWxCYA
-ni+wfeykRrWXDjx6LEbwY3/tJ+vFAKDkDFVK859XVpmHin5cwYESpiWEuIhGBBAR
-AgAGBQI57ovLAAoJELYkBuZbwVKhP9cAoJbEJSB3b7Gs4fhkohykCTdN6ofKAKCG
-SbPBOt9GK7r+XVOPBVJBpZwHYYkAlQMFEDnujg5NVigheQUMEQEBxocEAJOVMLs6
-IKMMeWX6OiegkmdMaox86gHOOOS/94n78ClwTJ8kf4MVPF/qz9oLvCNYcSP0Ievl
-MAAMgPQx4amUwwrdqO3lUWx01jrxO3L7r7PKLCT61gIfoVhjJSRvA4wVdGRBOhDF
-Z18qzTkqUORDbjohknDSt6Ydxh6RwEKQM8EtiJwEEAEBAAYFAjnugY4ACgkQH3+p
-CANY/L34TQP/e6VCd8sZhz8pqlaxk2zHmyCKR9gKHn1P34Fjd/wt+mMz16T7aJbr
-6V0qpdvZdCkcmoQ9Q9btX9uu+GAQLUHPHLCn8bg7icw20d46LUmm1b3x3N1vOdBk
-0AykVGei+TuSs7QLFQXWqwQCOfBWVk62Kw0fL1hMBVPKS0uHPotRqBOIRgQQEQIA
-BgUCOe6NMAAKCRCI4Xsd/OVlYdj1AKCjZ04lHm8Dk56adtZkzdzBCx8C5gCgq3Qs
-F46O590E55SsokQd7YD8kASIRgQQEQIABgUCOe6NOgAKCRAY9QOAJMJ4AlwIAJ98
-qRCL2U3KnYKrbPc+p8bzZxbTZQCglbkX8ciJVvy5oHzJO/5f+HIg0k6IRgQQEQIA
-BgUCOe6TegAKCRDC/IaqJTlGi2/FAJ9l+bY/2GWpmUxtZYs0hdnejFC4IwCgivx3
-tjij0SfNTP79mbYFX3oJxo6IRgQQEQIABgUCOe6OpAAKCRBzh+KSrRDGxCeIAKDM
-83nigOH0/v8H6M//+bS1LV/A0wCaAqGb5Nl+D8pnYK/hEER/YUCgVMKIRgQQEQIA
-BgUCOe9ejAAKCRCTVeV2USQDllNdAJ9gmpeLdhkr5u0pWuO+o9GdUppyywCfQWuT
-bYI1gUKl1z+19+YUo9+kJzWIPwMFEDnvZ0rjHjI9QK4wUhECp7YAnApxxvTZVLi4
-bsBqM+VDVnbPyVHfAJ9vj8pXkv400Zm7Mq8warkniGN45YhGBBARAgAGBQI59Hwc
-AAoJEBoX/tg15TvDXCUAnR3ymarKUUkgdFBMzq/H9paGWz6xAKCOLwiMYhtecwGD
-JX6s65DkkK1V6og/AwUQOfzDgnfOKcWPoS4gEQJPAQCgnvIv2HFf1nX7KoolPVvV
-NYS7y+IAnA073e5i5N1HQ6+ZdDPMCm4G1wPgtCdHcmVnb3J5IFMuIFN1dHRlciA8
-Z3N1dHRlckBmcmVlYnNkLm9yZz6IVgQTEQIAFgUCOeOQigQLCgMEAxUDAgMWAgEC
-F4AACgkQIBUx1YRd/t2vGACcC0MEXV6Nf9EStxuBBZJRuk112ZYAnjTE5LdyWOtg
-jA6n7VgQAoYk4Ij9iEYEEBECAAYFAjnue8EACgkQXVIcjOaxUBZpNwCg7U9oUOaV
-/ukWedDkV5UsUNQTfxQAn35HJBPhpAj7eszjGuAEdA9qLjuEiQCVAwUQOe6OKU1W
-KCF5BQwRAQEkNAP+MszkQDMM+mcTaGzeVC5rQ9IlZ13OEWouY6vhr6W6OhhPYVtE
-2KjBnpbypiUzcvlIPrjzwhM0/0M50EQX112kfNVnhq6ahBLLUwHOqAZLCw0atPJI
-QrbRpvmNNduEo/xAi6VLZkhuF1VM7fdrwCx8NmHuelwQobFAORXIE+W+FbGInAQQ
-AQEABgUCOe6BqAAKCRAff6kIA1j8vQc4BACOrAl4hvIfMp5aV8lkG5U+4BQVpGf6
-Ypv9X5SML382/TQ4s3ioSv+0NsiigItFphFbuGjzvCkrXucNEa3C/zzdJ7Sn8ByL
-ciZuJIbUcC3/cYwi3yJ0WwqIF6ls95dJUu3Ohm6FTGYPfHJDTB5ASM9FpAHOSGOZ
-J8zd9vkNpTGIDYhGBBARAgAGBQI57o0yAAoJEIjhex385WVh4cAAniRnFP7j8R0s
-xXJwb+0sl5es8e6MAJ0WlFl0JlAHj7+ga56zKFPR/utduohGBBARAgAGBQI57o07
-AAoJEBj1A4AkwngC4E4An05K3XNo7BuRqdS89NeZg1A1eRq3AKCNAnLdP3ygeiLO
-dtm+Em5VP8EuNohGBBARAgAGBQI57pN8AAoJEML8hqolOUaLnRQAni7rAcmZ18IN
-m9t8VMarix/8LFWnAKC3RTTr8BN44zGQ/uiQ+XBtw2BmBIhGBBARAgAGBQI57o6n
-AAoJEHOH4pKtEMbEensAnijhR0pU2R+DT2NR7LF0oUWn3J0GAJ0dnQ3dBIXCgnvY
-DXc60qg3DFboeohGBBARAgAGBQI5716OAAoJEJNV5XZRJAOWUu8AnRVGIrjcoQyu
-xTHYUPOYLPTHkSUfAJ466skILtnWEzBUYio/0PvjfSU+DIg/AwUQOe9ndOMeMj1A
-rjBSEQJA3gCdFXWJQSVryXATTDQaFaWbaQZXarIAoILPRXC1iCa1d52o0zlDgPle
-FwqYiQCVAwUQOe6BSgHbXdKX5jjdAQHpDQP+P3f9no+rtJeuAbQCLkDpvjBlgUiO
-SpXAhF8uolfyjI9UKK63t2nov5wVc1+W2N6CPaH2f6p//xmZMu76iCX5vIbSJ9uL
-sK0kaJgKRJv46PPsw6Jh+M4mtVCb4b7ad5jFF0Q2un0PZkdtBtTS7fsK51eW4/s8
-K5/94ONR6yFCSH6IPwMFEDn12AvYyjFxW6BSwxECfHQAoNf0o/mySHhQx5ipk9me
-lpxpaiYrAJ402bEDRhC98dVqFR/fFpy9PD09eIg/AwUQOfO0aXfOKcWPoS4gEQL+
-KACgvfXBNMIEJWjvBlhM7VD/qE7O160AoL58uYfWHbKvVJB6ggZjip2mSFEhtCpH
-cmVnb3J5IFMuIFN1dHRlciA8Z3N1dHRlckBkYWVtb25uZXdzLm9yZz6IVgQTEQIA
-FgUCOeOQqQQLCgMEAxUDAgMWAgECF4AACgkQIBUx1YRd/t2fQACeLMOY1776b2k1
-PCnkkXabN+WBN5IAnjs6+dKbAq6ehSLKr7fFQYcpFOi7iEYEEBECAAYFAjnue8EA
-CgkQXVIcjOaxUBY9mACgsoodTyhdveG2hFhyy5oewjYr1AYAn3dZ79qupRRZRW3q
-bUO+3dRwOn/NiQCVAwUQOe6OPE1WKCF5BQwRAQFUmQP+IyI5OaPkuQx+E7KrwaM6
-LBOm6Hf5cpXqpKBZ7pVHwFajIg0g7Vg2H4p9ZkpgvqcvI3EX0cN2M59GDX92lqTF
-ltqXUHkpTRwcR5HB97Yl34mlqV1L/LJGCV+QIxkpajnLkjisp2ixi7Cbd5UlYcfI
-2gV+kPtjQ+yyIq1wyDFnux6InAQQAQEABgUCOe6BvAAKCRAff6kIA1j8vQ6rA/oD
-ZzzfPvpnlqSxRMLVZVIX/gJgoEp3NE0TjPa4MLY7BMywS7j5l4ACOv9BTsH4/JMB
-bmeSVEjH3UZtUDPqB5Kn4yot0bAokoV9JRxeRT24TIKMRbr0wp31J+QIMUZM8zJh
-/VTCcfyJ2zfR9wpqDdnqocqs5WkJWp3OBoin8PvzX4hGBBARAgAGBQI57o0yAAoJ
-EIjhex385WVhDSIAoM2eAx19zMc6FTzyogakO6JXxqGUAKCj2Y7nATGonAm6YJPU
-KZ2Q3tjhuohGBBARAgAGBQI57o07AAoJEBj1A4AkwngCHqgAoKD+m2dlbkEG18Ej
-SleHKzS6ptwVAJ9pfVOb2dyua2pkibU/3ZT6SN4dFIhGBBARAgAGBQI57pN8AAoJ
-EML8hqolOUaL2HQAoI9MENn2chRdajyy+JQwbDgM0rjiAKDkviAQqwBZ+lftyr8p
-R7ojLYpO2YhGBBARAgAGBQI57o6nAAoJEHOH4pKtEMbEtnoAmgMt8rPmEp2b7kI0
-yWMcqlKT1TopAKCWmeWrmJPC1/Kk/FV0P4vEbrGjx4hGBBARAgAGBQI5716OAAoJ
-EJNV5XZRJAOWLpsAn1aUNLR42oidEr8QSkkq2D5vV4MuAJ9K2xS9Ye++PGcT+QIH
-mITcRvGSkog/AwUQOe9nfuMeMj1ArjBSEQIa8QCeNgevIAW0INNQOKFXRXzmvUV9
-RoAAn3c4Ndwr18WojLPlG3C5faqjcOO7iD8DBRA5/MOxd84pxY+hLiARAq5wAJ95
-PeVc1G2UkrgPrCAJBxhg1cOvEQCgj5xB8X6Cm+tGWt1MppCDZ/2gXX60JUdyZWdv
-cnkgUy4gU3V0dGVyIDxnc3V0dGVyQHBvYm94LmNvbT6IVgQTEQIAFgUCOeOjaQQL
-CgMEAxUDAgMWAgECF4AACgkQIBUx1YRd/t2u0ACeOCvSo2zRds0L9Mika4NYlaSH
-HHAAnj5OSdkKUEqUpk2OfwCybAg+lYDriEYEEBECAAYFAjnue8EACgkQXVIcjOax
-UBbyaQCg7HZBHWJeCBAiScd3bgE0a1eUWnQAn1vL1vQioH2NjY2rbKX0bfEowSUK
-iJwEEAEBAAYFAjnugc8ACgkQH3+pCANY/L282AP9GEpsdVGY5FQoQavTn1B7GmA3
-dhnFwT6TtP675ziDqfe7ob6qVgBq922/ERqAGAaKVhPdlCTk+3/ayzb6EJgkkQKH
-X4SjfbTA8GuPE4KU7CLs3D6UgrlpxO0C3rTPEect8inwwmWtA9sgnndkAK2Wr6Fm
-MZH8N3MW7W+qhRD71c2IRgQQEQIABgUCOe6NMgAKCRCI4Xsd/OVlYX+yAKCsDnbA
-RHnXWJ+0URuk2+W1PV3ENwCgieqC11QPLwUWSpwsOQnQuwE1maCIRgQQEQIABgUC
-Oe6NOwAKCRAY9QOAJMJ4AhgXAKCICWzasbpdixCKuH3ZHgjG/m4GIACeJEQb3+Q8
-hGMWO7DWb4Cqd79aNt+IRgQQEQIABgUCOe6TfAAKCRDC/IaqJTlGi3r9AKDhuCEr
-DqwZ5ffHhS9YSCXDWKftqgCeJq9g4r01/JE0+XVVilkaPgaTsI2IRgQQEQIABgUC
-Oe6OpwAKCRBzh+KSrRDGxIzzAKDaDR4685TLyRf4rdgUUpBv9XSnaQCfRWJk8Ix2
-t0qw/rLGGvbcc1fnLqmIPwMFEDnvZ1bjHjI9QK4wUhECso0AoIc66qQPaScOMZZ3
-kk1CjhpAWFxYAKDHmcPFKqZeTpFMYzBlhuagDnfTK4g/AwUQOfzDiXfOKcWPoS4g
-EQI8qwCglgCDUoo6HeIzY7giTJjufcIr+p4AoKpx+vsJn+6V3kKUXMjEkZkjNP30
-uQINBDnjXC4QCAD0UBPSOUsYU8KA9uFCN/RNUtKzx/W16jjpYxqvCdKxbjb3pI7c
-bmMQtwLHgIcwTC/jSHGxcJB8JcVHQeaf87XvHt06Gb4aOZAX+oAELe3T+nzSdQ1H
-ttSplWPqzkH0AvoMdCf+ZmM738cTLrUHTIkgc/yGzUyXiV+m0bCsUBYgDSLgUwS2
-hCl96r8ELxPqAVVHrDJa6GPVH+zfywkWaQUknn1TiVnM8JjQiC9x7V+tix9xisys
-GAG+XPH+jYn9c4q781NcpsD/hLG8IKd1AjlfSnxS9TD+WOg3g2VdzfcTy64e1z4o
-6XC/XJssQQlPQYmsnVvx3LnfIZjlJSO+aTQ7AAMFCADKSxl7M4TC9nEkt3xzx9Wl
-4qc73J1RqF3+tCNlj2EtzcbKBxynifjY/m3FJdJcDvbsaJUubBE3Kze+SZih9gU3
-5yZU81++Wq0KhqcpDK9LqnK3/+3YKqiXV64+Vq43dQXu1C2nsgzQ4vPZ15dgeRLb
-K+4ez/Gt1fm/YJ86EA6tUGiZZo37N7wodPoBLfrL+8xRimC2kFK5vOCdsU50HZv4
-v55t2oHRi5FRWJN6GGUHeDORcCvzkeulvNxomKaAOyRMMLwzch/kF2eQs36veVwz
-ENiKDub28PCuhrFXP7keq/Ybz19GIsJFSd7lemnzuTSkMoQhPjXmlshsLXhi3Km6
-iEYEGBECAAYFAjnjXC4ACgkQIBUx1YRd/t15/wCeK53sTVsgjbjDv984yiaHxGzK
-z9sAn1jpwcaKsxGC0aycsTEQABKrEX0m
-=Osmp
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.wollman;</title>
-
- <programlisting>pub 1024D/0B92FAEA 2000-01-20 Garrett Wollman &lt;wollman@FreeBSD.org&gt;
- Key fingerprint = 4627 19AF 4649 31BF DE2E 3C66 3ECF 741B 0B92 FAEA
-sub 1024g/90D5EBC2 2000-01-20
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.4 (FreeBSD)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDiHU3wRBADX+GS3fClPc0K3s2RePf2YeV+w7X3cmnWb0FLhAekfIzjLSHl8
-PWxXXQRtFyjR4KpsiwpGusX/nIJmaEoAdyqROKvpqYZPa3CjI2ldq1t1mj8lUOLo
-+ktQvgR/fZoveOl+HT1yIRZDsLrQWYE96lC8Xx2Iiip/16whzhE4rJfWvwCgyb+G
-a2jW0JaqmVRmyEqwzudoeqEEAKNUV5lmGRcs/GxwAJ7JRcxMI5QtoUBTfDKYyJZi
-t6pudVC9STIpMoEw9m4c5KRFixdiHno/dbkECvSzpTA1qAHiC2WxeTXAz91ySTfk
-iGNVlc670A+eC7Qi3ZGYhWKgKAvm0hOlYxOrU83u9naHKA+l4dOIGCQoZ7ElcfdO
-77T8BADQG/nzZcaoS0o9za11YcYMAWDiEHX2JyWF7+O+qJc7UmAGMZ4YHeYOBTkT
-6ybzjn5JhQtSr9YQglweYFjFYdeOmQAYow1MJxJvh0e0eoXwzOgdwJ8fzbxpHeAQ
-W9uuI754sm3U80ag7RvzgeWRX7HdETCtbFF8ZCWHSE7sj29ZB7QlR2FycmV0dCBX
-b2xsbWFuIDx3b2xsbWFuQEZyZWVCU0Qub3JnPohWBBMRAgAWBQI4h1N9BAsKBAMD
-FQMCAxYCAQIXgAAKCRA+z3QbC5L66jfWAJ9QRUBS9u2D9s861txzAAGDur0x/gCd
-ELqxcKVno9Q/l0DFb6c2ZIlkTT2IRgQQEQIABgUCOIdUpAAKCRAj54bpvu2UbtDT
-AJ9anhNRzF+bPhzGsoVJG1M0+aqsWgCfV6grZerQHY0jrzh7AcGCMNNDNYaInAQQ
-AQEABgUCOe58UwAKCRAff6kIA1j8vYq/BACbNYb6vCIi7/qEYF6dcBrEKf3sQ9mR
-U+ign91BqI1XR6KWREzMb7C/j/8ClreLp+UYpzf2dGiMtg6wo05VM9/wNTgQ9XGQ
-lm8VHRuMG6nKMxzMmugVhoKM16g4ongkLwV2GP7i/UULLl/YtBY0HHeZrvX5dFTI
-e0I71GmWy38WDIkAlQMFEDnug1NNVigheQUMEQEBX6EEAKTQbXGBs5XC1NuI3UdO
-DRvpRnzwY1KXlcJNWEUBFnwKqNdu23XyWT9VoMSHQwntTH1LkdYrrZJDQIlCchHS
-bRoobiveoUEqqHtWx9enhADBbSyl+SeDanOd1rx3jieplg8rseeqS7j2k5EUCaus
-wsk2W7zn4mpRNR25WuO8JOhjiD8DBRA57ojmGPUDgCTCeAIRAvbfAJ9SwgJaBMEF
-FYpRIoNsgvnHRaBmvACfVf1DdCW4EiCwtstuphmkZU9uv0aIPwMFEDnuiMGI4Xsd
-/OVlYRECVBkAnRJA6imAt+d9i2csxiReRI2xCrC/AKDjL3Wlp0ustkS1SkXiEZmX
-OcGfk4hGBBARAgAGBQI57oOaAAoJECAVMdWEXf7dfowAn3es+GZFfAzNl1BY3IdA
-kHBkpybbAJ0SghHeM67I6UvsD3OY4aKDu7D/g4hGBBARAgAGBQI57pd1AAoJEML8
-hqolOUaLhLEAoOj8APJHlYELhru0tPRZSfZYovDmAKD9rBzlJZzxeN36SfwkYiNW
-nnl0A4g/AwUQOfXFQNjKMXFboFLDEQK0OQCg2TuAY5h0Q7dgZgDe3dW/1zlLjskA
-oOFLVMM9s8oA8sTCTGAMqnca/3GduQENBDiHU6IQBACjT3ldbYOk2zYwEcaYhxom
-HuhAht9WhqRkBstdrJbmHw04zMNdRyodfbZk/DunKPnYPjSXVL2m3aXXdzPLXmMJ
-WTA7WykvMxBZX9A7GONMwWKOoZcEJheNagfgOa+be4rZ/S19AnUDBXQGDCgbXlYa
-BCrSRuAmfOVQ4VLW+3OovwAECwP/Z1P1kKWACm9Ual6GAlk+R1pASGOJS2kOyYkt
-0VvV9BBfYaxD+4E1xp6T4FEkdQk2Lz+91q/b6z7CA0Ed/2yNtm1HmVGyMc5yFRoj
-U38i0Lrxf0fo06g+ewwIXXEEuZrdGEFaxQpWTZ/uCFiGe1wtnGT91B4FDENxuIQ/
-IbrSxgOIRgQYEQIABgUCOIdTogAKCRA+z3QbC5L66mpDAKC1YD/4KeNybL31f9B9
-iq7OH/kskwCfeEvJINcMBk0UEdjpgO85woB6QKI=
-=stB+
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.joerg;</title>
-
- <programlisting>Type Bits/KeyID Date User ID
-pub 1024/76A3F7B1 1996/04/27 Joerg Wunsch &lt;joerg_wunsch@uriah.heep.sax.de&gt;
- Key fingerprint = DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E
- Joerg Wunsch &lt;joerg_wunsch@interface-business.de&gt;
- Joerg Wunsch &lt;j@uriah.heep.sax.de&gt;
- Joerg Wunsch &lt;j@interface-business.de&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQCNAzGCFeAAAAEEAKmRBU2Nvc7nZy1Ouid61HunA/5hF4O91cXm71/KPaT7dskz
-q5sFXvPJPpawwvqHPHfEbAK42ZaywyFp59L1GaYj87Pda+PlAYRJyY2DJl5/7JPe
-ziq+7B8MdvbX6D526sdmcR+jPXPbHznASjkx9DPmK+7TgFujyXW7bjh2o/exAAUR
-tCZKb2VyZyBXdW5zY2ggPGpAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokAlQMFEDHi
-oSdlYKmsNPn51QEByz8D/10uMrwP7MdaXnptd1XNFhpaAPYTVAOcaKlYOGI/LLR9
-PiU3FbqXO+7INhaxFjBxa0Tw/p4au5Lq1+Mx81edHniJZNS8tz3I3goijIC3+jn2
-gnVAWnK5UZUTUVUn/JLVk/oSaIJNIMMDaw4J9xPVVkb+Fh1A+XqtPsVaYESrNp0+
-iQCVAwUQMwXkzcdm8Q+/vPRJAQEA4QQAgNNX1HFgXrMetDb+w6yEGQDkJCDAY9b6
-mA2HNeKLQAhsoZl4HwA1+iuQaCgo3lyFC+1Sf097OUTs74z5X1vCedqVoFw9CxI3
-xuctt3pJCbbN68flOlnq0WdYouWWGlFwLlh5PEy//VtwX9lqgsizlhzit+fX6BT4
-BgKi5baDhrWJAJUDBRAyCKveD9eCJxX4hUkBAebMA/9mRPy6K6i7TX2RjUKSl2p5
-oYrXPk12Zsw4ijuktslxzQhOCyMSCGK2UEC4UM9MXp1H1JZQxN/DcfnM7VaUt+Ve
-0wZ6DC9gBSHJ1hKVxHe5XTj26mIr4rcXNy2XEDMK9QsnBxIAZnBVTjSOLdhqqSMp
-3ULLOpBlRL2RYrqi27IXr4kAlQMFEDGpbnd1u244dqP3sQEBJnQD/RVSAzgf4uor
-v3fpbosI0LE3LUufAYGBSJNJnskeKyudZkNkI5zGGDwVneH/cSkKT4ORooeqcTBx
-KeMaMuXPVl30QahgNwWjfuTvl5OZ8orsQGGWIn5FhqYXsKkjEGxIOBOfvvlVQ0Ub
-cR0N2+5F6Mb5GqrXZpIesn7jFJpkQKPUiQCVAwUQNRkF14HR8QVbfEftAQHb6wQA
-uXzEE+LHIk1kSINIgXX0+UcFpPc1rctiBkzZZhgzFvGC/kYrsI/GVYE4erL4sVXA
-NJqZxaMC/AAaGfaduALRFXNidKinMJBrZg3NCtq7cqrc/3aDmZJ2IaHvxoS+XC/i
-RVoeTk+jb6wcliqMkf41UlHsijyALtVK2Dd78T8GhJq0LUpvZXJnIFd1bnNjaCA8
-am9lcmdfd3Vuc2NoQHVyaWFoLmhlZXAuc2F4LmRlPokAlQMFEDQUWQGzWmLrWZ8y
-PQEB8MID+gJ+SOuG9HBEKlIvySUnVgOhQl2bD6/iclynDc6lhdvAo48sKWwTsrco
-JCxwd6Xtq5/3Wet6QDBute/0KWnRN6Bh4BA2PDm9n18vpRnmXd8fwTYYYDv6SqA1
-azUrECcbkZ1S8n2+LKtabx2pZEaj6WgNaVnXYvY6AAN+nuNVlMjWiQCVAwUQNA+s
-uh9/qQgDWPy9AQHZdAQAr/5KxA8JP9fhEH88FvFSvbwakYkyfcBp8BoDemVjDedv
-g41uoTD20m2h8CfhR4atqJbDycdhHYMDOgCNHo7O5fdO1RX7nsEjOtM8dw2RvqHx
-8+4dT50XNH4s2g9oYmwV6i/rD5SDqpL3BrkUYMCBpGgsdLIHFxFWgJs4RpLlLkSJ
-AJUDBRAzkGS1ZWCprDT5+dUBAYo/A/46JaGjdmbYYqmUSOJnnPHfLy6nNv6vVC61
-vTyOvYTCNrTiEuDR8Ku3oB3cOhWrF7g86CEimYczg7i1xb3ZMdCKXvQIvN8LG19R
-zp4POg/eSsPX8bCmbaEauZgD1v97P36va8oFudSE+YKCXHml/UjMdT1HZfJDP1e7
-sUjZto5JmokAlQMFEDIIhZl1u244dqP3sQEBUzMD/jVUimHfqX7I71YYqQQH41ht
-g7PZb+TKLviRcu8t1NdxFgVoJJk5FKxAo8Y0ys9lSgugArETbkCgKCXm2jCqv+wJ
-y7QDQwy8l11S+VDZP7KVKkaZZyGqhcI3sV0bLGtnnPPHMsi+1yKjqRod3vpfHImm
-W0IBK6l0PnecS3Ge7yxGiQCVAwUQNRkFNoHR8QVbfEftAQH59wP6Ar3emiJ3gseU
-ayKAjx2SH9lDVMsvIJW8cZoeEsDfoHlTEbz448KLKuh5rKOBAU++WBFtXQoIbroi
-4y+zVpJ7z2xJ6sHU/xo6M72QCvieahT4y3C6f1mPsZyjlMRpFoCpBddU+U8kbkqT
-TBVjNF5DNyhj1keIR35DJNpevpCCE6q0MUpvZXJnIFd1bnNjaCA8am9lcmdfd3Vu
-c2NoQGludGVyZmFjZS1idXNpbmVzcy5kZT6JAJUDBRAyCIX0dbtuOHaj97EBAVqC
-A/0YQZvqrVvobtn6gI/XfAlYBCiboK8WSKV7gihbzvmwoELaILfRF/kyYeLPFFHX
-BZMhCLvAk9gt0a69YK73JH8b604M0s77WMr9dO9l9xpFWPkpVDATAK3ZdajVtt6E
-+0OefGo57Gi9OuVyeZux2nIE04pIqH2BvItbO067BHquj4kAlQMFEDWRxZdlYKms
-NPn51QEBzt4D/RALkWpNJNTtlyKE0NBeSyRoci9OCfcYI42R+39HoJnLPAgT+aFc
-EqinmEcsBvwECjJVrrwBN3f6/rESGp+JaYNiw5bz17lmouh27FEvWETy8QfcQl1+
-Ck7HJqkMs1rpcLwhWvMmWlx49gBPJAJwcVSmhsuSVQKp5iSFDn5pbZCTiQCVAwUQ
-NRkFU4HR8QVbfEftAQH2vQP+PzI1rHZq4Q6/E9RS3zW/HDuzByASi3A9iM5MARqi
-ACLug+plFatfHfEaWII8nKytqY+kC3gaDESZ8+PFvGRZvMCRBrD5nv9YUC7LJIAX
-NFGklsyIEvDAtlO/Q94LjgCct3ta6ypA45ZxaMkRdCkZer1EPjSloLrUBRpDhMeA
-otu0IkpvZXJnIFd1bnNjaCA8akB1cmlhaC5oZWVwLnNheC5kZT6JAJUDBRAxpL3U
-PiAdBSUb0JkBAZg7BACE+mKhsrd39/P6NattCCOSg76Pf2CVgZdvbb7qK4SmsVGz
-+58pi2OWM1M0rcHgNZKTIg9rBy47gui2KOnqOR7ZuyMVJJqyEZZywmWmfCy/sR4U
-i1PehZNNNBAi09u03ItbozrEH6Msa1oC8mp86XOA70Et8e4DYtj5a9tVbjjtJYkA
-lQMFEDGpZGx1u244dqP3sQEBcMED/j2vNkHlqSRNJu3+A13fw4mAL4fw3l1rbm9X
-10PcqgC9d9Z/Ds7EizG9D8Bv6sma6SutbE92wL7VZTX7WsZrg+8mn9UlEN6zZrAa
-uf6I7v9xChIhXOILbsmlxu+Mu8tVwEiLLXJP9G8n7ztreM9Ee3dUUZykWHgrKTHF
-I2LIbKCXiQCVAwUQMYJQHfUVW/uOVC1dAQHkqAP+Igll7mUWQ+vYH8KvsEoxUGi3
-X8lK7Tk2weAlne4rXnDiZW009lwWL90puf6pEzosoMV78YXQdkP9kPUUm3zJCPMX
-bDfjQH4XYYYQ7CcKWpkO0QCqcgHMz8QJBCof7oGLyCmQVmsWCDl443uKSqa6wOc6
-VhK0z8IF+ClJtHyQOYWJAD8DBRA0Pun7CKyxtqPXKpQRAlWJAKC+2KEpwmX/f5rO
-+QXv4ldCIKQ+JgCgqcjGveuHvlv8ehkHrucnz8VrHjqJAJUDBRA1kcVlZWCprDT5
-+dUBAeX7A/0aZkBJdd0EKhje2rhXdoE99fr5jeg9utB0pACqgMb1hBcnVRi3SVZ4
-ZBQIfqY26LeZP+WLUqGfTx6BSsBys13WlBT9PZuicuWkDHUtGX9zUl4qMsxGQkGj
-NXdmn0/eCnheZP5ROvYXD15A0kjd626PxxftbyQKTuhKTWCT2jSnsYkAlQMFEDGF
-mgWB0fEFW3xH7QEBhr8D/2kclzpVUU2wvwMT+POA8M9iDKNcZAUBQI8/j+QVZ1VB
-3laHKKkpdvGrTUl/PVLvt6tSHIdDQrAOuPq9M4DMLIqS1jZr16+BhZ+7ffZJ2JpO
-bFVOK5wmzVSixigPB1ytIkKqhJ9JQpMZOUKJ24n2E6Mr79fLJK1a4EMWuHZ5uXNk
-=grTK
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/policies/chapter.sgml b/en_US.ISO8859-1/books/handbook/policies/chapter.sgml
deleted file mode 100644
index 4144cf20f2..0000000000
--- a/en_US.ISO8859-1/books/handbook/policies/chapter.sgml
+++ /dev/null
@@ -1,396 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/policies/chapter.sgml,v 1.18 2000/08/20 17:18:43 chris Exp $
--->
-
-<chapter id="policies">
- <title>Source Tree Guidelines and Policies</title>
-
- <para><emphasis>Contributed by &a.phk;.</emphasis></para>
-
- <para>This chapter documents various guidelines and policies in force for
- the FreeBSD source tree.</para>
-
- <sect1 id="policies-maintainer">
- <title><makevar>MAINTAINER</makevar> on Makefiles</title>
-
- <para>June 1996.</para>
-
- <para>If a particular portion of the FreeBSD distribution is being
- maintained by a person or group of persons, they can communicate this
- fact to the world by adding a
-
- <programlisting>MAINTAINER= email-addresses</programlisting>
-
- line to the <filename>Makefile</filename>s covering this portion of the
- source tree.</para>
-
- <para>The semantics of this are as follows:</para>
-
- <para>The maintainer owns and is responsible for that code. This means
- that he is responsible for fixing bugs and answer problem reports
- pertaining to that piece of the code, and in the case of contributed
- software, for tracking new versions, as appropriate.</para>
-
- <para>Changes to directories which have a maintainer defined shall be sent
- to the maintainer for review before being committed. Only if the
- maintainer does not respond for an unacceptable period of time, to
- several emails, will it be acceptable to commit changes without review
- by the maintainer. However, it is suggested that you try and have the
- changes reviewed by someone else if at all possible.</para>
-
- <para>It is of course not acceptable to add a person or group as
- maintainer unless they agree to assume this duty. On the other hand it
- doesn't have to be a committer and it can easily be a group of
- people.</para>
- </sect1>
-
- <sect1 id="policies-contributed">
- <title>Contributed Software</title>
-
- <para><emphasis>Contributed by &a.phk; and &a.obrien;. </emphasis></para>
-
- <para>June 1996.</para>
-
- <para>Some parts of the FreeBSD distribution consist of software that is
- actively being maintained outside the FreeBSD project. For historical
- reasons, we call this <emphasis>contributed</emphasis> software. Some
- examples are perl, gcc and patch.</para>
-
- <para>Over the last couple of years, various methods have been used in
- dealing with this type of software and all have some number of
- advantages and drawbacks. No clear winner has emerged.</para>
-
- <para>Since this is the case, after some debate one of these methods has
- been selected as the <quote>official</quote> method and will be required
- for future imports of software of this kind. Furthermore, it is
- strongly suggested that existing contributed software converge on this
- model over time, as it has significant advantages over the old method,
- including the ability to easily obtain diffs relative to the
- <quote>official</quote> versions of the source by everyone (even without
- cvs access). This will make it significantly easier to return changes
- to the primary developers of the contributed software.</para>
-
- <para>Ultimately, however, it comes down to the people actually doing the
- work. If using this model is particularly unsuited to the package being
- dealt with, exceptions to these rules may be granted only with the
- approval of the core team and with the general consensus of the other
- developers. The ability to maintain the package in the future will be a
- key issue in the decisions.</para>
-
- <note>
- <para>Because of some unfortunate design limitations with the RCS file
- format and CVS's use of vendor branches, minor, trivial and/or
- cosmetic changes are <emphasis>strongly discouraged</emphasis> on
- files that are still tracking the vendor branch. <quote>Spelling
- fixes</quote> are explicitly included here under the
- <quote>cosmetic</quote> category and are to be avoided for files with
- revision 1.1.x.x. The repository bloat impact from a single character
- change can be rather dramatic.</para>
- </note>
-
- <para>The <application>TCL</application> embedded programming
- language will be used as example of how this model works:</para>
-
- <para><filename>src/contrib/tcl</filename> contains the source as
- distributed by the maintainers of this package. Parts that are entirely
- not applicable for FreeBSD can be removed. In the case of Tcl, the
- <filename>mac</filename>, <filename>win</filename> and
- <filename>compat</filename> subdirectories were eliminated before the
- import</para>
-
- <para><filename>src/lib/libtcl</filename> contains only a "bmake style"
- <filename>Makefile</filename> that uses the standard
- <filename>bsd.lib.mk</filename> makefile rules to produce the library
- and install the documentation.</para>
-
- <para><filename>src/usr.bin/tclsh</filename> contains only a bmake style
- <filename>Makefile</filename> which will produce and install the
- <command>tclsh</command> program and its associated man-pages using the
- standard <filename>bsd.prog.mk</filename> rules.</para>
-
- <para><filename>src/tools/tools/tcl_bmake</filename> contains a couple of
- shell-scripts that can be of help when the tcl software needs updating.
- These are not part of the built or installed software.</para>
-
- <para>The important thing here is that the
- <filename>src/contrib/tcl</filename> directory is created according to
- the rules: It is supposed to contain the sources as distributed (on a
- proper CVS vendor-branch and without RCS keyword expansion) with as few
- FreeBSD-specific changes as possible. The 'easy-import' tool on
- freefall will assist in doing the import, but if there are any doubts on
- how to go about it, it is imperative that you ask first and not blunder
- ahead and hope it <quote>works out</quote>. CVS is not forgiving of
- import accidents and a fair amount of effort is required to back out
- major mistakes.</para>
-
- <para>Because of the previously mentioned design limitations with CVS's
- vendor branches, it is required that <quote>official</quote> patches from
- the vendor be applied to the original distributed sources and the result
- re-imported onto the vendor branch again. Official patches should never
- be patched into the FreeBSD checked out version and "committed", as this
- destroys the vendor branch coherency and makes importing future versions
- rather difficult as there will be conflicts.</para>
-
- <para>Since many packages contain files that are meant for compatibility
- with other architectures and environments that FreeBSD, it is
- permissible to remove parts of the distribution tree that are of no
- interest to FreeBSD in order to save space. Files containing copyright
- notices and release-note kind of information applicable to the remaining
- files shall <emphasis>not</emphasis> be removed.</para>
-
- <para>If it seems easier, the <command>bmake</command>
- <filename>Makefile</filename>s can be produced from the dist tree
- automatically by some utility, something which would hopefully make it
- even easier to upgrade to a new version. If this is done, be sure to
- check in such utilities (as necessary) in the
- <filename>src/tools</filename> directory along with the port itself so
- that it is available to future maintainers.</para>
-
- <para>In the <filename>src/contrib/tcl</filename> level directory, a file
- called <filename>FREEBSD-upgrade</filename> should be added and it
- should states things like:</para>
-
- <itemizedlist>
- <listitem>
- <para>Which files have been left out</para>
- </listitem>
-
- <listitem>
- <para>Where the original distribution was obtained from and/or the
- official master site.</para>
- </listitem>
-
- <listitem>
- <para>Where to send patches back to the original authors</para>
- </listitem>
-
- <listitem>
- <para>Perhaps an overview of the FreeBSD-specific changes that have
- been made.</para>
- </listitem>
- </itemizedlist>
-
- <para>However, please do not import <filename>FREEBSD-upgrade</filename>
- with the contributed source. Rather you should <command>cvs add
- FREEBSD-upgrade ; cvs ci</command> after the initial import. Example
- wording from <filename>src/contrib/cpio</filename> is below:</para>
-
- <programlisting>This directory contains virgin sources of the original distribution files
-on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
-the files in this directory via patches and a cvs commit. New versions or
-official-patch versions must be imported. Please remember to import with
-"-ko" to prevent CVS from corrupting any vendor RCS Ids.
-
-For the import of GNU cpio 2.4.2, the following files were removed:
-
- INSTALL cpio.info mkdir.c
- Makefile.in cpio.texi mkinstalldirs
-
-To upgrade to a newer version of cpio, when it is available:
- 1. Unpack the new version into an empty directory.
- [Do not make ANY changes to the files.]
-
- 2. Remove the files listed above and any others that don't apply to
- FreeBSD.
-
- 3. Use the command:
- cvs import -ko -m 'Virgin import of GNU cpio v&lt;version&gt;' \
- src/contrib/cpio GNU cpio_&lt;version&gt;
-
- For example, to do the import of version 2.4.2, I typed:
- cvs import -ko -m 'Virgin import of GNU v2.4.2' \
- src/contrib/cpio GNU cpio_2_4_2
-
- 4. Follow the instructions printed out in step 3 to resolve any
- conflicts between local FreeBSD changes and the newer version.
-
-Do not, under any circumstances, deviate from this procedure.
-
-To make local changes to cpio, simply patch and commit to the main
-branch (aka HEAD). Never make local changes on the GNU branch.
-
-All local changes should be submitted to "cpio@gnu.ai.mit.edu" for
-inclusion in the next vendor release.
-
-obrien@FreeBSD.org - 30 March 1997</programlisting>
- </sect1>
-
- <sect1 id="policies-encumbered">
- <title>Encumbered Files</title>
-
- <para>It might occasionally be necessary to include an encumbered file in
- the FreeBSD source tree. For example, if a device requires a small
- piece of binary code to be loaded to it before the device will operate,
- and we do not have the source to that code, then the binary file is said
- to be encumbered. The following policies apply to including encumbered
- files in the FreeBSD source tree.</para>
-
- <orderedlist>
- <listitem>
- <para>Any file which is interpreted or executed by the system CPU(s)
- and not in source format is encumbered.</para>
- </listitem>
-
- <listitem>
- <para>Any file with a license more restrictive than BSD or GNU is
- encumbered.</para>
- </listitem>
-
- <listitem>
- <para>A file which contains downloadable binary data for use by the
- hardware is not encumbered, unless (1) or (2) apply to it. It must
- be stored in an architecture neutral ASCII format (file2c or
- uuencoding is recommended).</para>
- </listitem>
-
- <listitem>
- <para>Any encumbered file requires specific approval from the <link
- linkend="staff-core">Core team</link> before it is added to the
- CVS repository.</para>
- </listitem>
-
- <listitem>
- <para>Encumbered files go in <filename>src/contrib</filename> or
- <filename>src/sys/contrib</filename>.</para>
- </listitem>
-
- <listitem>
- <para>The entire module should be kept together. There is no point in
- splitting it, unless there is code-sharing with non-encumbered
- code.</para>
- </listitem>
-
- <listitem>
- <para>Object files are named
- <filename><replaceable>arch</replaceable>/<replaceable>filename</replaceable>.o.uu></filename>.</para>
- </listitem>
-
- <listitem>
- <para>Kernel files;</para>
-
- <orderedlist>
- <listitem>
- <para>Should always be referenced in
- <filename>conf/files.*</filename> (for build simplicity).</para>
- </listitem>
-
- <listitem>
- <para>Should always be in <filename>LINT</filename>, but the <link
- linkend="staff-core">Core team</link> decides per case if it
- should be commented out or not. The <link
- linkend="staff-core">Core team</link> can, of course, change
- their minds later on.</para>
- </listitem>
-
- <listitem>
- <para>The <link linkend="staff-who">Release Engineer</link>
- decides whether or not it goes in to the release.</para>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>User-land files;</para>
-
- <orderedlist>
- <listitem>
- <para>The <link linkend="staff-core">Core team</link> decides if
- the code should be part of <command>make world</command>.</para>
- </listitem>
-
- <listitem>
- <para>The <link linkend="staff-who">Release Engineer</link>
- decides if it goes in to the release.</para>
- </listitem>
- </orderedlist>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1 id="policies-shlib">
- <title>Shared Libraries</title>
-
- <para><emphasis>Contributed by &a.asami;, &a.peter;, and &a.obrien; 9
- December 1996.</emphasis></para>
-
- <para>If you are adding shared library support to a port or other piece of
- software that doesn't have one, the version numbers should follow these
- rules. Generally, the resulting numbers will have nothing to do with
- the release version of the software.</para>
-
- <para>The three principles of shared library building are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Start from <literal>1.0</literal></para>
- </listitem>
-
- <listitem>
- <para>If there is a change that is backwards compatible, bump minor
- number (note that ELF systems ignore the minor number)</para>
- </listitem>
-
- <listitem>
- <para>If there is an incompatible change, bump major number</para>
- </listitem>
- </itemizedlist>
-
- <para>For instance, added functions and bugfixes result in the minor
- version number being bumped, while deleted functions, changed function
- call syntax etc. will force the major version number to change.</para>
-
- <para>Stick to version numbers of the form major.minor
- (<replaceable>x</replaceable>.<replaceable>y</replaceable>). Our a.out
- dynamic linker does not handle version numbers of the form
- <replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>
- well. Any version number after the <replaceable>y</replaceable>
- (ie. the third digit) is totally ignored when comparing shared lib
- version numbers to decide which library to link with. Given two shared
- libraries that differ only in the <quote>micro</quote> revision,
- <command>ld.so</command> will link with the higher one. Ie: if you link
- with <filename>libfoo.so.3.3.3</filename>, the linker only records
- <literal>3.3</literal> in the headers, and will link with anything
- starting with
- <replaceable>libfoo.so.3</replaceable>.<replaceable>(anything &gt;=
- 3)</replaceable>.<replaceable>(highest
- available)</replaceable>.</para>
-
- <note>
- <para><command>ld.so</command> will always use the highest
- <quote>minor</quote> revision. Ie: it will use
- <filename>libc.so.2.2</filename> in preference to
- <filename>libc.so.2.0</filename>, even if the program was initially
- linked with <filename>libc.so.2.0</filename>.</para>
- </note>
-
- <para>In addition, our ELF dynamic linker does not handle minor version
- numbers at all. However, one should still specify a major and minor
- version number as our <filename>Makefile</filename>s "do the right thing"
- based on the type of system.</para>
-
- <para>For non-port libraries, it is also our policy to change the shared
- library version number only once between releases. In addition, it is
- our policy to change the major shared library version number only once
- between major OS releases. Ie: X.0 to (X+1).0. When you make a
- change to a system library that requires the version number to be
- bumped, check the <filename>Makefile</filename>'s commit logs. It is the
- responsibility of the committer to ensure that the first such change
- since the release will result in the shared library version number in
- the <filename>Makefile</filename> to be updated, and any subsequent
- changes will not.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/ports/chapter.sgml b/en_US.ISO8859-1/books/handbook/ports/chapter.sgml
deleted file mode 100644
index 9fa0995c28..0000000000
--- a/en_US.ISO8859-1/books/handbook/ports/chapter.sgml
+++ /dev/null
@@ -1,1138 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ports/chapter.sgml,v 1.114 2001/04/12 07:36:08 nik Exp $
--->
-
-<chapter id="ports">
- <title>Installing Applications: Packages and Ports</title>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>There is only so much you can do with FreeBSD. If you are an
- operating systems developer then the base system likely contains
- everything you need. If that is not what you are planning to do with
- FreeBSD then you will probably want to install additional
- software&mdash;perhaps a web server, or a mail reader, or a graphical
- environment such as KDE or GNOME.</para>
-
- <para>If you have used a Unix system before you will know that the typical
- procedure for installing third party software goes something like
- this:</para>
-
- <procedure>
- <step>
- <para>Download the software, which might be distributed in source code
- format, or as a binary.</para>
- </step>
-
- <step>
- <para>Unpack the software from its distribution format (typically a
- tarball compressed with either &man.compress.1; or &man.gzip.1;).</para>
- </step>
-
- <step>
- <para>Locate the documentation (perhaps a <filename>README</filename>
- file, or some files in a <filename>doc/</filename> subdirectory) and
- read up on how to install the software.</para>
- </step>
-
- <step>
- <para>If the software was distributed in source format, compile it.
- This may involve editing a <filename>Makefile</filename>, or
- running a <command>configure</command> script, and other work.</para>
- </step>
-
- <step>
- <para>Test and install the software.</para>
- </step>
- </procedure>
-
- <para>And that is only if everything goes well. If you are installing a
- software package that was not deliberately ported to FreeBSD you may
- even have to go in and edit the code to make it work properly.</para>
-
- <para>Should you want to, you can continue to install software the
- <quote>traditional</quote> way with FreeBSD. However, FreeBSD provides
- two technologies which can save you a lot of effort; packages and
- ports. At the time of writing, over 4,000 third party applications have
- been made available in this way.</para>
-
- <para>For any given application, the FreeBSD package for that application
- is a single file which you must download. The package contains
- pre-compiled copies of all the commands for the application, as well as
- any configuration files or documentation. A downloaded package file can
- be manipulated with FreeBSD <literal>pkg_*</literal> commands, such as
- &man.pkg.add.1; &man.pkg.delete.1;, &man.pkg.info.1;, and so on.</para>
-
- <para>Installing a new application can be carried out with a single
- command.</para>
-
- <para>A FreeBSD port for an application is a collection of files designed
- to automate the process of compiling an application from source
- code.</para>
-
- <para>Remember that there are a number of steps you would normally carry
- out if you compiled a program yourself (unpacking, patching, compiling,
- installing). The files that make up a port contain all the necessary
- information to alllow the system to do this for you. You run a handful
- of simple commands and the source code for the application is
- automatically downloaded, extracted, patched, compiled, and installed
- for you.</para>
-
- <para>In fact, the ports system can also be used to generate packages
- which can later be manipulated with the <literal>pkg_*</literal>
- commands.</para>
-
- <para>Both packages and ports understand
- <emphasis>dependencies</emphasis>. Suppose you want to install an
- application that depends on a specific library being installed. Both
- the application and the library have been made available as FreeBSD
- ports and packages. If you use the <command>pkg_add</command> command
- or the ports system to add the application, both will notice that the
- library has not been installed, and the commands will install the
- library first.</para>
-
- <para>Given that the two technologies are quite similar, you might be
- wondering why FreeBSD bothers with both. Packages and ports both have
- their own strengths, and which one you use will depend on your own
- preference.</para>
-
- <itemizedlist>
- <title>Package benefits</title>
-
- <listitem>
- <para>A compressed package tarball is typically smaller than the
- compressed tarball containing the source code for the application.</para>
- </listitem>
-
- <listitem>
- <para>Packages do not require any additional compilation. For large
- applications, such as <application>Mozilla</application>,
- <application>KDE</application>, or <application>GNOME</application>
- this can be important, particularly if you are on a slow system.</para>
- </listitem>
-
- <listitem>
- <para>Packages do not require you to understand any of the process
- involved in compiling software on FreeBSD.</para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <title>Ports benefits</title>
-
- <listitem>
- <para>Packages are normally compiled with conservative options,
- because they have to run on the maximum number of systems. By
- installing from the port, you can tweak the compilation options to
- (for example) generate code that is specific to a 686 processor.</para>
- </listitem>
-
- <listitem>
- <para>Some packages have compile time options relating to what they
- can and can't do. For example, <application>Apache</application>
- can be configured with a wide variety of different builtin options.
- By building from the port you do not have to accept the default
- options, and can set them yourself.</para>
-
- <para>In some cases, multiple packages will exist for the same
- application to specify certain settings. For example,
- <application>Ghostscript</application> is available as a
- <filename>ghostscript</filename> package and a
- <filename>ghostscript-nox11</filename> package, depending on whether
- or not you have installed an X11 server. This sort of rough
- tweaking is possible with packages, but rapidly becomes impossible
- if an application has more than one or two different compile time
- options.</para>
- </listitem>
-
- <listitem>
- <para>The licensing conditions of some software distributions forbid
- binary distribution. They must be distributed as source
- code.</para>
- </listitem>
-
- <listitem>
- <para>Some people do not trust binary distributions. At least with
- source code, you can (in theory) read through it and look for
- potential problems yourself.</para>
- </listitem>
-
- <listitem>
- <para>If you have local patches, you will need the source in order to
- apply them.</para>
- </listitem>
-
- <listitem>
- <para>Some people like having code around, so they can read it if they
- get bored, hack it, borrow from it (license permitting, of course),
- and so on.</para>
- </listitem>
- </itemizedlist>
-
- <para>The remainder of this chapter will explain how to use packages and
- ports to install and manage third party software on FreeBSD.</para>
- </sect1>
-
- <sect1>
- <title>Finding your application</title>
-
- <para>Before you can install any applications you need to know what you
- want, and what the application is called.</para>
-
- <para>FreeBSD's list of available applications is growing all the time.
- Currently there are over 4,000 applications available as packages or
- ports. There are a number of ways to find what you want.</para>
-
- <itemizedlist>
- <listitem>
- <para>The FreeBSD web site maintains an up-to-date searchable list of
- all the available applications, at
- <ulink url="http://www.FreeBSD.org/ports/">http://www.FreeBSD.org/ports/</ulink>.
- The name space is divided in to categories, and you may either
- search for an application by name (if you know it), or you can list
- all the applications available in a category.</para>
- </listitem>
-
- <listitem>
- <para>Dan Langille maintains FreshPorts, at
- <ulink url="http://www.freshports.org/">http://www.freshports.org/</ulink>.
- FreshPorts tracks changes to the applications in the ports tree as
- they happen, and allows you to <quote>watch</quote> one or more
- ports, and will send you an e-mail when they are updated.</para>
- </listitem>
-
- <listitem>
- <para>If you do not know the name of the application you want, try
- using a site like FreshMeat
- (<ulink url="http://www.freshmeat.net/">http://www.freshmeat.net/</ulink>)
- or AppWatch
- (<ulink url="http://www.appwatch.com/">http://www.appwatch.com/</ulink>)
- to find an application, then check back at the FreeBSD site to see
- if the application has been ported yet.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>* Using the Packages System</title>
-
- <sect2>
- <title>Installing a Package</title>
-
- <para>After you have decided which application you want to install you
- need to download the package file and install it.</para>
-
- <para>There are several ways you can do this.</para>
-
- <example>
- <title>Downloading and installing in multiple steps</title>
-
- <para></para>
- </example>
- </sect2>
-
- <sect2>
- <title>Deleting a Package</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>Updating a Package</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title></title>
-
- <para></para>
- </sect2>
- </sect1>
-
- <sect1 id="ports-using">
- <title>Using the Ports Collection</title>
-
- <para>The following sections provide basic instructions on using the
- ports collection to install or remove programs from your
- system.</para>
-
- <sect2 id="ports-skeleton">
- <title>Installing Ports</title>
-
- <para>The first thing that should be explained
- when it comes to the Ports collection is what is actually meant
- by a <quote>skeleton</quote>. In a nutshell, a port skeleton is a
- minimal set of files that are needed for a program to compile and
- install cleanly on FreeBSD. Each port skeleton includes:</para>
-
- <itemizedlist>
- <listitem>
- <para>A <filename>Makefile</filename>. The
- <filename>Makefile</filename> contains various statements that
- specify how the application should be compiled and where it
- should be installed on your system</para>
- </listitem>
-
- <listitem>
- <para>A <filename>distinfo</filename> file. This file contains
- information about the files that must be downloaded to build the
- port, and checksums, to ensure that that files have not been
- corrupted during the download.</para>
- </listitem>
-
- <listitem>
- <para>A <filename>files</filename> directory. This directory
- contains patches to make the program compile and install on
- your FreeBSD system. Patches are basically small files that
- specify changes to particular files. They are in plain text
- format, and basically say <quote>Remove line 10</quote> or
- <quote>Change line 26 to this ...</quote>. Patches are also
- known as <quote>diffs</quote> because they are generated by the
- <application>diff</application> program.</para>
-
- <para>This directory may also contain other files used in building
- the port.</para>
- </listitem>
-
- <listitem>
- <para>A <filename>pkg-comment</filename> file. This is a one-line
- description of the program.</para>
- </listitem>
-
- <listitem>
- <para>A <filename>pkg-descr</filename> file. This is a more
- detailed, often multiple-line, description of the program.</para>
- </listitem>
-
- <listitem>
- <para>A <filename>pkg-plist</filename> file. This is a list of all
- the files that will be installed by the port. It also tells the
- ports system what files to remove upon deinstallation.</para>
- </listitem>
- </itemizedlist>
-
- <para>Now that you have enough background information to know what
- the Ports collection is used for, you are ready to install your
- first port. There are two ways this can be done, and each is
- explained below.</para>
-
- <para>Before we get into that however, you will need to choose a
- port to install. There are a few ways to do this, with the
- easiest method being the <ulink
- url="http://www.freebsd.org/ports/">ports listing on the FreeBSD
- web site</ulink>. You can browse through the ports listed there
- or use the search function on the site. Each port also includes
- a description so you can read a bit about each port before
- deciding to install it.</para>
-
- <para>Another method is to use the <command>whereis</command>
- command. To use <command>whereis</command>, simply type
- <quote><command>whereis &lt;program you want to
- install&gt;</command></quote> at the prompt, and if it is found on
- your system, you will be told where it is, like so:</para>
-
- <screen>&prompt.root; <userinput>whereis xchat</userinput>
-xchat: /usr/ports/irc/xchat
-&prompt.root;</screen>
-
- <para>This tells us that xchat (an irc client) can be found in the
- <filename>/usr/ports/irc/xchat</filename> directory.</para>
-
- <para>Yet another way of finding a particular port is by using the
- Ports collection's built-in search mechanism. To use the search
- feature, you will need to be in the
- <filename>/usr/ports</filename> directory. Once in that
- directory, run <command>make search key=program-name</command>
- where <quote>program-name</quote> is the name of the program you
- want to find. For example, if you were looking for xchat:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make search key=xchat</userinput>
-Port: xchat-1.3.8
-Path: /usr/ports/irc/xchat
-Info: An X11 IRC client using the GTK+ toolkit, and optionally, GNOME
-Maint: jim@FreeBSD.org
-Index: irc
-B-deps: XFree86-3.3.5 bzip2-0.9.5d gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gmake-3.77 gtk-1.2.6
- imlib-1.9.8 jpeg-6b png-1.0.3 tiff-3.5.1
-R-deps: XFree86-3.3.5 gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gtk-1.2.6 imlib-1.9.8 jpeg-6b
- png-1.0.3 tiff-3.5.1</screen>
-
- <para>The part of the output you want to pay particular attention
- to is the <quote>Path:</quote> line, since that tells you where to
- find it. The other information provided is not needed in order
- to install the port directly, so it will not be covered
- here.</para>
-
- <note>
- <para>You must be the <username>root</username> user to install
- ports.</para>
- </note>
-
- <para>Now that you have found a port you would like to install, you
- are ready to do the actual installation.</para>
-
- <sect3 id="ports-cd">
- <title>Installing ports from a CDROM</title>
-
- <para>As you may have guessed from the title, everything
- described in this section assumes you have a FreeBSD CDROM set.
- If you do not, you can order one from the <ulink
- url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>.</para>
-
- <para>Assuming that your FreeBSD CDROM is in the drive and is
- mounted on <filename>/cdrom</filename> (and the mount point
- <emphasis>must</emphasis> be <filename>/cdrom</filename>),
- you are ready to install the port. To begin, change directories
- to the directory where the port you want to install lives:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput></screen>
-
- <para>Once inside the xchat directory, you will see the port
- skeleton. The next step is to compile (also called build) the
- port. This is done by simply typing <command>make</command> at
- the prompt. Once you have done so, you should see something
- like this:</para>
-
- <screen>&prompt.root; <userinput>make</userinput>
-&gt;&gt; xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from file:/cdrom/ports/distfiles/.
-===&gt; Extracting for xchat-1.3.8
-&gt;&gt; Checksum OK for xchat-1.3.8.tar.bz2.
-===&gt; xchat-1.3.8 depends on executable: bzip2 - found
-===&gt; xchat-1.3.8 depends on executable: gmake - found
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-===&gt; Patching for xchat-1.3.8
-===&gt; Applying FreeBSD patches for xchat-1.3.8
-===&gt; Configuring for xchat-1.3.8
-...
-[configure output snipped]
-...
-===&gt; Building for xchat-1.3.8
-...
-[compilation snipped]
-...
-&prompt.root;</screen>
-
- <para>Take notice that once the compile is complete you are
- returned to your prompt. The next step is to install the
- port. In order to install it, you simply need to tack one word
- onto the <command>make</command> command, and that word is
- <command>install</command>:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-===&gt; Installing for xchat-1.3.8
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-...
-[install routines snipped]
-...
-===&gt; Generating temporary packing list
-===&gt; Installing xchat docs in /usr/X11R6/share/doc/xchat
-===&gt; Registering installation for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>Once you are returned to your prompt, you should be able to
- run the application you just installed.</para>
-
- <note>
- <para>You can save an extra step by just running <command>make
- install</command> instead of <command>make</command> and
- <command>make install</command> as two separate steps.</para>
- </note>
-
- <note>
- <para>Please be aware that the licenses of a few ports do not
- allow for inclusion on the CDROM. This could be for various
- reasons, including things such as as registration form needs
- to be filled out before downloading, if redistribution is not
- allowed, and so on. If you wish to install a port not
- included on the CDROM, you will need to be online in order to
- do so (see the <link linkend="ports-inet">next
- section</link>).</para>
- </note>
- </sect3>
-
- <sect3 id="ports-inet">
- <title>Installing ports from the Internet</title>
-
- <para>As with the last section, this section makes an assumption
- that you have a working Internet connection. If you do not,
- you will need to do the <link linkend="ports-cd">CDROM
- installation</link>.</para>
-
- <para>Installing a port from the Internet is done exactly the same
- way as it would be if you were installing from a CDROM. The
- only difference between the two is that the program's source
- code is downloaded from the Internet instead of pulled from the
- CDROM.</para>
-
- <para>The steps involved are identical:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from http://xchat.org/files/v1.3/.
-Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100%
-305543 bytes transferred in 2.9 seconds (102.81 Kbytes/s)
-===&gt; Extracting for xchat-1.3.8
-&gt;&gt; Checksum OK for xchat-1.3.8.tar.bz2.
-===&gt; xchat-1.3.8 depends on executable: bzip2 - found
-===&gt; xchat-1.3.8 depends on executable: gmake - found
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-===&gt; Patching for xchat-1.3.8
-===&gt; Applying FreeBSD patches for xchat-1.3.8
-===&gt; Configuring for xchat-1.3.8
-...
-[configure output snipped]
-...
-===&gt; Building for xchat-1.3.8
-...
-[compilation snipped]
-...
-===&gt; Installing for xchat-1.3.8
-===&gt; xchat-1.3.8 depends on shared library: gtk12.2 - found
-===&gt; xchat-1.3.8 depends on shared library: Imlib.5 - found
-===&gt; xchat-1.3.8 depends on shared library: X11.6 - found
-...
-[install routines snipped]
-...
-===&gt; Generating temporary packing list
-===&gt; Installing xchat docs in /usr/X11R6/share/doc/xchat
-===&gt; Registering installation for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>As you can see, the only difference is the line that tells
- you where the system is fetching the port from.</para>
-
- <para>That about does it for installing ports onto your system.
- In the section you will learn how to remove a port from your
- system.</para>
- </sect3>
- </sect2>
-
- <sect2 id="ports-removing">
- <title>Removing Installed Ports</title>
-
- <para>Now that you know how to install ports, you are probably
- wondering how to remove them, just in case you install one and
- later on you decide that you installed the wrong port. The next
- few paragraphs will cover just that.</para>
-
- <para>Now we will remove our previous example (which was xchat for
- those of you not paying attention). As with installing ports,
- the first thing you must do is change to the port directory,
- which if you remember was
- <filename>/usr/ports/irc/xchat</filename>. After you change
- directories, you are ready to uninstall xchat. This is done with
- the <command>make deinstall</command> command (makes sense
- right?):</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput>
-&prompt.root; <userinput>make deinstall</userinput>
-===&gt; Deinstalling for xchat-1.3.8
-&prompt.root;</screen>
-
- <para>That was easy enough. You have now managed to remove xchat
- from your system. If you would like to reinstall it, you can do
- so by running <command>make reinstall</command> from the
- <filename>/usr/ports/irc/xchat</filename> directory.</para>
- </sect2>
- </sect1>
-
- <sect1 id="ports-trouble">
- <title>Troubleshooting</title>
-
- <para>The following sections cover some of the more frequently asked
- questions about the Ports collection and some basic troubleshooting
- techniques, and what do to if a <link
- linkend="ports-broken">port is broken.</link></para>
-
- <sect2 id="ports-questions">
- <title>Some Questions and Answers</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>I thought this was going to be a discussion about
- modems??!</para>
- </question>
-
- <answer>
- <para>Ah, you must be thinking of the serial ports on the back
- of your computer. We are using <quote>port</quote> here to
- mean the result of <quote>porting</quote> a program from one
- version of UNIX to another.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-patch">What is a patch?</para>
- </question>
-
- <answer>
- <para>A patch is a small file that specifies how to go from
- one version of a file to another. It contains plain text,
- and basically says things like <quote>delete line 23</quote>,
- <quote>add these two lines after line 468</quote>, or
- <quote>change line 197 to this</quote>. They are also known
- as diffs because they are generated by the
- <application>diff</application> program.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-tarball">What is all this about
- tarballs?</para>
- </question>
-
- <answer>
- <para>It is a file ending in <filename>.tar</filename>, or
- with variations such as <filename>.tar.gz</filename>,
- <filename>.tar.Z</filename>, <filename>.tar.bz2</filename>,
- and even <filename>.tgz</filename>.</para>
-
- <para>Basically, it is a directory tree that has been archived
- into a single file (<filename>.tar</filename>) and
- optionally compressed (<filename>.gz</filename>). This
- technique was originally used for <emphasis>T</emphasis>ape
- <emphasis>AR</emphasis>chives (hence the name
- <command>tar</command>), but it is a widely used way of
- distributing program source code around the Internet.</para>
-
- <para>You can see what files are in them, or even extract them
- yourself by using the standard UNIX tar program, which comes
- with the base FreeBSD system, like this:</para>
-
- <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput>
-&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput>
-&prompt.user; <userinput>tar tvf foobar.tar</userinput>
-&prompt.user; <userinput>tar xvf foobar.tar</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-checksum">And a checksum?</para>
- </question>
-
- <answer>
- <para>It is a number generated by adding up all the data in
- the file you want to check. If any of the characters
- change, the checksum will no longer be equal to the total,
- so a simple comparison will allow you to spot the
- difference.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I did what you said for compiling ports from a CDROM and
- it worked great until I tried to install the kermit
- port.</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; cku190.tar.gz doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.</screen>
-
- <para>Why can it not be found? Have I got a dud CDROM?</para>
- </question>
-
- <answer>
- <para>As was explained in the <link
- linkend="ports-cd">compiling ports from CDROM</link>
- section, some ports cannot be put on the CDROM set
- due to licensing restrictions. Kermit is an example of
- that. The licensing terms for kermit do not allow us to put
- the tarball for it on the CDROM, so you will have to fetch
- it by hand&mdash;sorry!</para>
-
- <para>The reason why you got all those error messages was
- because you were not connected to the Internet at the time.
- Once you have downloaded it from any of the MASTER_SITES
- (listed in the Makefile), you can restart the install
- process.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I did that, but when I tried to put it into
- <filename>/usr/ports/distfiles</filename> I got some error
- about not having permission.</para>
- </question>
-
- <answer>
- <para>The ports mechanism looks for the tarball in
- <filename>/usr/ports/distfiles</filename>, but you will not
- be able to copy anything there because it is symlinked to
- the CDROM, which is read-only. You can tell it to look
- somewhere else by doing:</para>
-
- <screen>&prompt.root; <userinput>make DISTDIR=<replaceable>/where/you/put/it</replaceable> install</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does the ports scheme only work if you have everything
- in <filename>/usr/ports</filename>? My system administrator
- says I must put everything under
- <filename>/u/people/guests/wurzburger</filename>, but it
- does not seem to work.</para>
- </question>
-
- <answer>
- <para>You can use the <makevar>PORTSDIR</makevar> and
- <makevar>PREFIX</makevar> variables to tell the ports
- mechanism to use different directories. For
- instance,</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen>
-
- <para>will compile the port in
- <filename>/u/people/guests/wurzburger/ports</filename> and
- install everything under
- <filename>/usr/local</filename>.</para>
-
- <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen>
-
- <para>will compile it in <filename>/usr/ports</filename> and
- install it in
- <filename>/u/people/guests/wurzburger/local</filename>.</para>
-
- <para>And of course,</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>
-
- <para>will combine the two (it is too long to write fully on
- the page, but it should give you the general idea).</para>
-
- <para>Some ports that use &man.imake.1; (a part of the X Windows
- System) don't work well with <makevar>PREFIX</makevar>, and will insist on
- installing under <filename>/usr/X11R6</filename>. Similarly, some Perl ports
- ignore <makevar>PREFIX</makevar> and install in the Perl tree. Making these
- ports respect <makevar>PREFIX</makevar> is a difficult or impossible
- job.</para>
-
- <para>If you do not fancy typing all that in every time you
- install a port, it is a good idea to put these variables
- into your environment. Read the man page for your shell for
- instructions on doing so.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I do not have a FreeBSD CDROM, but I would like to have
- all the tarballs handy on my system so I do not have to wait
- for a download every time I install a port. Is there any
- way to get them all at once?</para>
- </question>
-
- <answer>
- <para>To get every single tarball for the Ports collection,
- do:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>For all the tarballs for a single ports directory,
- do:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>and for just one port&mdash;well, you have probably
- guessed already.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I know it is probably faster to fetch the tarballs from
- one of the FreeBSD mirror sites close by. Is there any way
- to tell the port to fetch them from servers other than the
- ones listed in the MASTER_SITES?</para>
- </question>
-
- <answer>
- <para>Yes. If you know, for example, that <hostid
- role="fqdn">ftp.FreeBSD.org</hostid> is much closer to you
- than the sites listed in <makevar>MASTER_SITES</makevar>,
- do as follows:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
-&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
-ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I want to know what files <command>make</command> is
- going to need before it tries to pull them down.</para>
- </question>
-
- <answer>
- <para><command>make fetch-list</command> will display a list
- of the files needed for a port.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Is there any way to stop the port from compiling? I
- want to do some hacking on the source before I install it,
- but it is a bit tiresome to watch it and hit control-C every
- time.</para>
- </question>
-
- <answer>
- <para>Doing <command>make extract</command> will stop it
- after it has fetched and extracted the source code.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I am trying to make my own port and I want to be able
- to stop it compiling until I have had a chance to see if my
- patches worked properly. Is there something like
- <command>make extract</command>, but for patches?</para>
- </question>
-
- <answer>
- <para>Yep, <command>make patch</command> is what you want.
- You will probably find the <makevar>PATCH_DEBUG</makevar>
- option useful as well. And by the way, thank you for your
- efforts!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I have heard that some compiler options can cause bugs.
- Is this true? How can I make sure that I compile ports
- with the right settings?</para>
- </question>
-
- <answer>
- <para>Yes, with version 2.6.3 of <command>gcc</command> (the
- version shipped with FreeBSD 2.1.0 and 2.1.5), the
- <option>-O2</option> option could result in buggy code
- unless you used the <option>-fno-strength-reduce</option>
- option as well. (Most of the ports do not use
- <option>-O2</option>). You <emphasis>should</emphasis> be
- able to specify the compiler options used by something
- like:</para>
-
- <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen>
-
- <para>or by editing <filename>/etc/make.conf</filename>, but
- unfortunately not all ports respect this. The surest way
- is to do <command>make configure</command>, then go into
- the source directory and inspect the Makefiles by hand, but
- this can get tedious if the source has lots of
- sub-directories, each with their own Makefiles.</para>
-
- <para>The default FreeBSD compiler options are quite conservative,
- so if you have not changed them you should not have any
- problems.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>There are so many ports it is hard to find the one I
- want. Is there a list anywhere of what ports are
- available?</para>
- </question>
-
- <answer>
- <para>Look in the <filename>INDEX</filename> file in
- <filename>/usr/ports</filename>. If you would like to
- search the ports collection for a keyword, you can do that
- too. For example, you can find ports relevant to the LISP
- programming language using:</para>
-
- <screen>&prompt.user; <userinput>cd /usr/ports</userinput>
-&prompt.user; <userinput>make search key=lisp</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I went to install the <literal>foo</literal> port but
- the system suddenly stopped compiling it and starting
- compiling the <literal>bar</literal> port. What is going
- on?</para>
- </question>
-
- <answer>
- <para>The <literal>foo</literal> port needs something that is
- supplied with <literal>bar</literal> &mdash; for instance,
- if <literal>foo</literal> uses graphics,
- <literal>bar</literal> might have a library with useful
- graphics processing routines. Or <literal>bar</literal>
- might be a tool that is needed to compile the
- <literal>foo</literal> port.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para id="ports-remove"> I installed the
- <literal>grizzle</literal> program from the ports and
- frankly it is a complete waste of disk space. I want to
- delete it but I do not know where it put all the files.
- Any clues?</para>
- </question>
-
- <answer>
- <para>No problem, just do:</para>
-
- <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen>
-
- <para>Alternatively, you can do:</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/grizzle</replaceable></userinput>
-&prompt.root; <userinput>make deinstall</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Hang on a minute, you have to know the version number
- to use that command. You do not seriously expect me to
- remember that, do you??</para>
- </question>
-
- <answer>
- <para>Not at all, you can find it out by doing:</para>
-
- <screen>&prompt.root; <userinput>pkg_info -a | grep grizzle</userinput>
-Information for grizzle-6.5:
-grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up
-arcade game.</screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Talking of disk space, the ports directory seems to be
- taking up an awful lot of room. Is it safe to go in there
- and delete things?</para>
- </question>
-
- <answer>
- <para>Yes, if you have installed the program and are fairly
- certain you will not need the source again, there is no
- point in keeping it hanging around. The best way to do
- this is:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>which will go through all the ports subdirectories and
- delete everything except the skeletons for each
- port.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I tried that and it still left all those tarballs or
- whatever you called them in the
- <filename>distfiles</filename> directory. Can I delete
- those as well?</para>
- </question>
-
- <answer>
- <para>Yes, if you are sure you have finished with them,
- those can go as well. They can be removed manually, or by
- using <command>make distclean</command>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I like having lots and lots of programs to play with.
- Is there any way of installing all the ports in one
- go?</para>
- </question>
-
- <answer>
- <para>Just do:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
-
- <para>Be careful, as some ports may install files with the same
- name. If you install two graphics ports and they both install
- <filename>/usr/local/bin/plot</filename> then you will obviously
- have problems.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>OK, I tried that, but I thought it would take a very
- long time so I went to bed and left it to get on with it.
- When I looked at the computer this morning, it had only
- done three and a half ports. Did something go
- wrong?</para>
- </question>
-
- <answer>
- <para>No, the problem is that some of the ports need to ask
- you questions that we cannot answer for you (e.g., <quote>Do
- you want to print on A4 or US letter sized paper?</quote>)
- and they need to have someone on hand to answer
- them.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I really do not want to spend all day staring at the
- monitor. Any better ideas?</para>
- </question>
-
- <answer>
- <para>OK, do this before you go to bed/work/the local
- park:</para>
-
- <screen>&prompt.root <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DBATCH install</userinput></screen>
-
- <para>This will install every port that does
- <emphasis>not</emphasis> require user input. Then, when
- you come back, do:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DIS_INTERACTIVE install</userinput></screen>
-
- <para>to finish the job.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>At work, we are using <literal>frobble</literal>, which
- is in your Ports collection, but we have altered it quite a
- bit to get it to do what we need. Is there any way of making
- our own packages, so we can distribute it more easily around
- our sites?</para>
- </question>
-
- <answer>
- <para>No problem, assuming you know how to make patches for
- your changes:</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/frobble</replaceable></userinput>
-&prompt.root; <userinput>make extract</userinput>
-&prompt.root; <userinput>cd work/frobble-2.8</userinput>
-[Apply your patches]
-&prompt.root; <userinput>cd ../..</userinput>
-&prompt.root; <userinput>make package</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>This ports stuff is really clever. I am desperate to
- find out how you did it. What is the secret?</para>
- </question>
-
- <answer>
- <para>Nothing secret about it at all, just look at the
- <filename>bsd.port.mk</filename> and
- <filename>bsd.port.subdir.mk</filename> files in your
- <ulink url="file://localhost/usr/ports/Mk/">makefiles
- directory.</ulink></para>
-
- <para>(Readers with an aversion to intricate shell-scripts are
- advised not to follow this link...)</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect2>
-
- <sect2 id="ports-broken">
- <title>Help! This port is broken!</title>
-
- <para>If you come across a port that doesn't work for you, there are
- a few things you can do, including:</para>
-
- <orderedlist>
- <listitem>
- <para>Fix it! The <link linkend="porting"><quote>how to make a
- port</quote></link> section should help you do this.</para>
- </listitem>
-
- <listitem>
- <para>Gripe&mdash;<emphasis>by email only!</emphasis> Send
- email to the maintainer of the port first. Type <command>make
- maintainer</command> or read the <filename>Makefile</filename>
- to find the maintainer's email address. Remember to include
- the name and version of the port (send the
- <literal>$FreeBSD:</literal> line from the
- <filename>Makefile</filename>) and the output leading up to the
- error when you email the maintainer. If you do not get a
- response from the maintainer, you can use
- <command>send-pr</command> to submit a bug report.</para>
- </listitem>
-
- <listitem>
- <para>Forget about it. This is the easiest route&mdash;very
- few ports can be classified as <quote>essential</quote>. There's
- also a good chance any problems will be fixed in the next
- version when the port is updated.</para>
- </listitem>
-
- <listitem>
- <para>Grab the package from an ftp site near you. The
- <quote>master</quote> package collection is on <hostid
- role="fqdn">ftp.FreeBSD.org</hostid> in the <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">packages
- directory</ulink>, but be sure to check your local mirror
- <emphasis>first!</emphasis> These are more likely to work
- than trying to compile from source and are a lot faster as
- well. Use the &man.pkg.add.1; program to install the package
- on your system.</para>
- </listitem>
- </orderedlist>
- </sect2>
- </sect1>
-
- <sect1 id="porting">
- <title>Advanced Topics</title>
-
- <para>The documentation that was here has been moved to its own <ulink
- url="../porters-handbook/index.html">Porter's Handbook</ulink> for ease of
- reference. Please go there if you wish to create and submit your own
- ports.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
deleted file mode 100644
index 2a25c9ca47..0000000000
--- a/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
+++ /dev/null
@@ -1,2778 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.33 2001/04/13 19:55:39 jim Exp $
--->
-
-<chapter id="ppp-and-slip">
- <title>PPP and SLIP</title>
-
- <para><emphasis>Restructured, reorganized, and updated by &a.jim;,
- 1 March 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>If you are connecting to the Internet via modem, or wish to
- provide dial-up connections to the Internet for others using FreeBSD,
- you have the option of using PPP or SLIP.</para>
-
- <para>This chapter covers three varieties of PPP;
- <emphasis>user</emphasis>, <emphasis>kernel</emphasis>, and
- <emphasis>PPPoE</emphasis> (PPP over Ethernet). It also covers
- setting up a SLIP client and server.</para>
-
- <para>The first variety of PPP that will be covered is User PPP. User
- PPP was introduced into FreeBSD in 2.0.5-RELEASE as an addition to
- the already existing kernel implementation of PPP.</para>
-
- <para>You may be wondering what the main difference is between User
- PPP and kernel PPP. The answer is simple; user PPP does not run as
- a daemon, and can run as and when desired. No PPP interface needs
- to be compiled into their kernel; it runs as a user process, and uses
- the tunnel device driver (<devicename>tun</devicename>) to get data
- into and out of the kernel.</para>
-
- <para>From here on out in this chapter, user ppp will simply be
- referred to as ppp unless a distinction needs to be made between it
- and and any other PPP software such as <command>pppd</command>.
- Unless otherwise stated, all of the commands explained in this
- section should be executed as root.</para>
- </sect1>
-
- <sect1 id="userppp">
- <title>Using User PPP</title>
-
- <para><emphasis>Originally contributed by &a.brian;, with input
- from &a.nik;, &a.dirkvangulik;, and &a.pjc;.</emphasis></para>
-
- <sect2>
- <title>User PPP</title>
-
- <sect3>
- <title>Assumptions</title>
-
- <para>This document assumes you have the following:</para>
-
- <itemizedlist>
- <listitem>
- <para>An account with an Internet Service Provider (ISP) which
- you connect to using PPP. Further, you have a modem or
- other device connected to your system and configured
- correctly, which allows you to connect to your ISP.</para>
- </listitem>
-
- <listitem>
- <para>The dial-up number(s) of your ISP.</para>
- </listitem>
-
- <listitem>
- <para>Your login name and password. This can be either a
- regular UNIX-style login and password pair, or a PAP or CHAP
- login and password pair.</para>
- </listitem>
-
- <listitem>
- <para>The IP address(es) of one or more name servers.
- Normally, you will be given two IP addresses by your ISP to
- use for this. If they have not given you at least one, then
- you can use the <command>enable dns</command> command in
- your <filename>ppp.conf</filename> file to tell
- <application>ppp</application> to set the name servers for
- you.</para>
- </listitem>
- </itemizedlist>
-
- <para>The following information may be supplied by your ISP, but
- is not completely necessary:</para>
-
- <itemizedlist>
- <listitem>
- <para>The IP address of your ISP's gateway. The gateway is
- the machine to which you will connect and will be set up as
- your <emphasis>default route</emphasis>. If you do not have
- this information, we can make one up and your ISP's PPP
- server will tell us the correct value when we connect.</para>
-
- <para>This IP number is referred to as
- <literal>HISADDR</literal> by
- <application>ppp</application>.</para>
- </listitem>
-
- <listitem>
- <para>The netmask you should use. If your ISP has not
- provided you with one, you can safely use <hostid
- role="netmask">255.255.255.0</hostid>.</para>
- </listitem>
-
- <listitem>
- <para>If your ISP provides you with a static IP address and
- hostname, you can enter it. Otherwise, we simply let the
- peer assign whatever IP address it sees fit.</para>
- </listitem>
- </itemizedlist>
-
- <para>If you do not have any of the required information, contact
- your ISP and make sure they provide it to you.</para>
- </sect3>
-
- <sect3>
- <title>Preparing the Kernel</title>
-
- <para>As previously mentioned, <application>ppp</application>
- uses the <devicename>tun</devicename> device, and whichever kernel
- you are using must have <devicename>tun</devicename> configured.
- The <devicename>tun</devicename> device is preconfigured
- for the default <filename>GENERIC</filename> kernel that ships
- with FreeBSD. However, if you have installed a custom kernel,
- you must make sure your kernel is configured for ppp.</para>
-
- <para>To check, go to your kernel compile directory
- (<filename>/sys/i386/conf</filename> or
- <filename>/sys/pc98/conf</filename>) and examine your
- configuration file. It should have the following line somewhere
- in it:</para>
-
- <programlisting>pseudo-device tun 1</programlisting>
-
- <para>If this line is not present, you will need to add it to the
- configuration file and recompile your kernel. The stock
- <filename>GENERIC</filename> kernel has this included, so if you
- have not installed a custom kernel or do not have a
- <filename>/sys</filename> directory, you do not have to change
- anything. If you do need to recompile your kernel, please refer
- to the <link linkend="kernelconfig">kernel configuration</link>
- section for more information.</para>
-
- <para>You can check how many tunnel devices your current kernel
- has by typing the following:</para>
-
- <screen>&prompt.root; <userinput>ifconfig -a</userinput>
-tun0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
- inet 200.10.100.1 --&gt; 203.10.100.24 netmask 0xffffffff
-tun1: flags=8050&lt;POINTOPOINT,RUNNING,MULTICAST&gt; mtu 576
-tun2: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
- inet 203.10.100.1 --&gt; 203.10.100.20 netmask 0xffffffff
-tun3: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500</screen>
-
- <note>
- <para>In FreeBSD 4.0 and later releases, you will only see any
- <devicename>tun</devicename> devices which have already been
- used. This means you might not see <emphasis>any</emphasis>
- <devicename>tun</devicename> devices. If this is the case, do
- not worry; the device should be created dynamically when
- <command>ppp</command> attempts to use it.</para>
- </note>
-
- <para>This case shows four tunnel devices, two of which are
- currently configured and being used. It should be noted that
- the <literal>RUNNING</literal> flag above indicates that the
- interface has been used at some point&mdash;it is not an error
- if your interface does not show up as
- <literal>RUNNING</literal>.</para>
-
- <para>If for some reason you have a kernel that does not have the
- <devicename>tun</devicename> device in it and cannot recompile
- the kernel, all is not lost. You should be able to dynamically
- load the code. Please refer to the appropriate
- &man.modload.8; and &man.lkm.4; man pages for further
- details.</para>
- </sect3>
-
- <sect3>
- <title>Check the <devicename>tun</devicename> device</title>
-
- <para>Under normal circumstances, most users will only require one
- <devicename>tun</devicename> device
- (<filename>/dev/tun0</filename>). If you have specified more
- than one on the <literal>pseudo-device</literal> line for
- <devicename>tun</devicename> in your kernel configuration file,
- then alter all references to <devicename>tun0</devicename> below
- to reflect whichever device number you are using (e.g.,
- <devicename>tun2</devicename>).</para>
-
- <para>The easiest way to make sure that the
- <devicename>tun0</devicename> device is configured correctly,
- is to remake the device. This process is quite easy. To remake
- the device, do the following:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV tun0</userinput></screen>
-
- <para>If you need 16 tunnel devices in your kernel, you will need
- to create them. This can be done by executing the following
- commands:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV tun15</userinput></screen>
-
- <para>To confirm that the kernel is configured correctly, issue
- the follow command and compare the results:</para>
-
- <screen>&prompt.root; <userinput>ifconfig tun0</userinput>
-tun0: flags=8050&lt;POINTOPOINT,RUNNING,MULTICAST&gt; mut 1500</screen>
-
- <para>The <literal>RUNNING</literal> flag may not yet be set, in
- which case you will see:</para>
-
- <screen>&prompt.root; <userinput>ifconfig tun0</userinput>
-tun0: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500</screen>
-
- <para>Remember from earlier that you might not see the device if it
- has not been used yet, as <devicename>tun</devicename> devices are
- created on demand in FreeBSD 4.0 and later releases.</para>
- </sect3>
-
- <sect3>
- <title>Name Resolution Configuration</title>
-
- <para>The resolver is the part of the system that turns IP
- addresses into hostnames and vice versa. It can be configured
- to look for maps that describe IP to hostname mappings in one of
- two places. The first is a file called
- <filename>/etc/hosts</filename>. Read &man.hosts.5; for more
- information. The second is the Internet Domain Name Service
- (DNS), a distributed data base, the discussion of which is
- beyond the scope of this document.</para>
-
- <para>The resolver is a set of system calls that do the name
- mappings, but you have to tell them where to find their
- information. You do this by first editing the file
- <filename>/etc/host.conf</filename>. Do <emphasis>not</emphasis>
- call this file <filename>/etc/hosts.conf</filename> (note the
- extra <literal>s</literal>) as the results can be
- confusing.</para>
-
- <sect4>
- <title>Edit <filename>/etc/host.conf</filename></title>
-
- <para>This file should contain the following two lines (in this
- order):</para>
-
- <programlisting>hosts
-bind</programlisting>
-
- <para>These instruct the resolver to first look in the file
- <filename>/etc/hosts</filename>, and then to consult the DNS
- if the name was not found.</para>
- </sect4>
-
- <sect4>
- <title>Edit <filename>/etc/hosts</filename></title>
-
- <para>This file should contain the IP addresses and names of
- machines on your network. At a bare minimum it should contain
- entries for the machine which will be running ppp. Assuming
- that your machine is called <hostid
- role="fqdn">foo.bar.com</hostid> with the IP address <hostid
- role="ipaddr">10.0.0.1</hostid>,
- <filename>/etc/hosts</filename> should contain:</para>
-
- <programlisting>127.0.0.1 localhost.bar.com localhost
-127.0.0.1 localhost.bar.com.
-10.0.0.1 foo.bar.com foo
-10.0.0.1 foo.bar.com.</programlisting>
-
- <para>The first two lines define the alias
- <hostid>localhost</hostid> as a synonym for the current
- machine. Regardless of your own IP address, the IP address
- for this line should always be <hostid
- role="ipaddr">127.0.0.1</hostid>. The second two lines map
- the name <hostid role="fqdn">foo.bar.com</hostid> (and the
- shorthand <hostid>foo</hostid>) to the IP address <hostid
- role="ipaddr">10.0.0.1</hostid>.</para>
-
- <para>If your provider allocates you a static IP address and
- name, use them in place of the <hostid
- role="ipaddr">10.0.0.1</hostid> entry.</para>
- </sect4>
-
- <sect4>
- <title>Edit <filename>/etc/resolv.conf</filename></title>
-
- <para>The <filename>/etc/resolv.conf</filename> file tells the
- resolver how to behave. If you are running your own DNS, you
- may leave this file empty. Normally, you will need to enter
- the following line(s):</para>
-
- <programlisting>domain <replaceable>bar.com</replaceable>
-nameserver <replaceable>x.x.x.x</replaceable>
-nameserver <replaceable>y.y.y.y</replaceable></programlisting>
-
- <para>The <hostid
- role="ipaddr"><replaceable>x.x.x.x</replaceable></hostid> and
- <hostid role="ipaddr"><replaceable>y.y.y.y</replaceable></hostid>
- addresses are those given to you by your ISP. Add as many
- <literal>nameserver</literal> lines as your ISP provides. The
- <literal>domain</literal> line defaults to your hostname's
- domain, and is probably unnecessary. Refer to the
- &man.resolv.conf.5; manual page for details of other possible
- entries in this file.</para>
-
- <para>If you are running PPP version 2 or greater, the
- <command>enable dns</command> command will tell PPP to request
- that your ISP confirms the nameserver values. If your ISP
- supplies different addresses (or if there are no nameserver
- lines in <filename>/etc/resolv.conf</filename>), PPP will
- rewrite the file with the ISP-supplied values.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title><application>PPP</application> Configuration</title>
-
- <para>Both <command>ppp</command> and <command>pppd</command>
- (the kernel level implementation of PPP) use the configuration
- files located in the <filename>/usr/share/examples/ppp</filename> directory.
- The sample configuration files provided are a good reference,
- so do not delete them.</para>
-
- <para>Configuring <command>ppp</command> requires that you edit a
- number of files, depending on your requirements. What you put
- in them depends to some extent on whether your ISP allocates IP
- addresses statically (i.e., you get given one IP address, and
- always use that one) or dynamically (i.e., your IP address
- changes each time you connect to your ISP).</para>
-
- <sect4 id="userppp-staticIP">
- <title>PPP and Static IP Addresses</title>
-
- <para>You will need to create a configuration file called
- <filename>/etc/ppp/ppp.conf</filename>. It should look
- similar to the example below.</para>
-
- <note>
- <para>Lines that end in a <literal>:</literal> start in the
- first column, all other lines should be indented as shown
- using spaces or tabs.</para>
- </note>
-
- <programlisting>1 default:
-2 set device /dev/cuaa0
-3 set speed 115200
-4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK \\dATDT\\TTIMEOUT 40 CONNECT"
-5 provider:
-6 set phone "(123) 456 7890"
-7 set login "TIMEOUT 10 \"\" \"\" gin:--gin: foo word: bar col: ppp"
-8 set timeout 300
-9 set ifaddr <replaceable>x.x.x.x</replaceable> <replaceable>y.y.y.y</replaceable> 255.255.255.0 0.0.0.0
-10 add default HISADDR
-11 enable dns</programlisting>
-
- <para>Do not include the line numbers, they are just for
- reference in this discussion.</para>
-
- <variablelist>
- <varlistentry>
- <term>Line 1:</term>
-
- <listitem>
- <para>Identifies the default entry. Commands in this
- entry are executed automatically when ppp is run.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 2:</term>
-
- <listitem>
- <para>Identifies the device to which the modem is
- connected. <devicename>COM1</devicename> is
- <filename>/dev/cuaa0</filename> and
- <devicename>COM2</devicename> is
- <filename>/dev/cuaa1</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 3:</term>
-
- <listitem>
- <para>Sets the speed you want to connect at. If 115200
- does not work (it should with any reasonably new modem),
- try 38400 instead.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 4:</term>
-
- <listitem>
- <para>The dial string. User PPP uses an expect-send
- syntax similar to the &man.chat.8; program. Refer to
- the manual page for information on the features of this
- language.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 5:</term>
-
- <listitem>
- <para>Identifies an entry for a provider called
- <quote>provider</quote>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 6:</term>
-
- <listitem>
- <para>Sets the phone number for this provider. Multiple
- phone numbers may be specified using the colon
- (<literal>:</literal>) or pipe character
- (<literal>|</literal>)as a separator. The difference
- between the two separators is described in &man.ppp.8;.
- To summarize, if you want to rotate through the numbers,
- use a colon. If you want to always attempt to dial the
- first number first and only use the other numbers if the
- first number fails, use the pipe character. Always
- quote the entire set of phone numbers as shown.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 7:</term>
-
- <listitem>
- <para>The login string is of the same chat-like syntax as
- the dial string. In this example, the string works for
- a service whose login session looks like this:</para>
-
- <screen>J. Random Provider
-login: <replaceable>foo</replaceable>
-password: <replaceable>bar</replaceable>
-protocol: ppp</screen>
-
- <para>You will need to alter this script to suit your own
- needs. When you write this script for the first time,
- you should enable <quote>chat</quote> logging to ensure
- that the conversation is going as expected.</para>
-
- <para>If you are using PAP or CHAP, there will be no login
- at this point, so your login string can be left blank.
- See <link linkend="userppp-PAPnCHAP">PAP and CHAP
- authentication</link> for further details.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 8:</term>
-
- <listitem>
- <para>Sets the default timeout (in seconds) for the
- connection. Here, the connection will be closed
- automatically after 300 seconds of inactivity. If you
- never want to timeout, set this value to zero.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 9:</term>
-
- <listitem>
- <para>Sets the interface addresses. The string
- <replaceable>x.x.x.x</replaceable> should be replaced by
- the IP address that your provider has allocated to you.
- The string <replaceable>y.y.y.y</replaceable> should be
- replaced by the IP address that your ISP indicated for
- their gateway (the machine to which you connect). If
- your ISP hasn't given you a gateway address, use <hostid
- role="netmask">10.0.0.2/0</hostid>. If you need to use
- a <quote>guessed</quote> address, make sure that you
- create an entry in
- <filename>/etc/ppp/ppp.linkup</filename> as per the
- instructions for <link linkend="userppp-dynamicIP">PPP
- and Dynamic IP addresses</link>. If this line is
- omitted, <command>ppp</command> cannot run in
- <option>-auto</option> or <option>-dynamic</option>
- mode.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 10:</term>
-
- <listitem>
- <para>Adds a default route to your ISP's gateway. The
- special word <literal>HISADDR</literal> is replaced with
- the gateway address specified on line 9. It is
- important that this line appears after line 9,
- otherwise <literal>HISADDR</literal> will not yet be
- initialized.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 11:</term>
-
- <listitem>
- <para>This line tells PPP to ask your ISP to confirm that
- your nameserver addresses are correct. If your ISP
- supports this facility, PPP can then update
- <filename>/etc/resolv.conf</filename> with the correct
- nameserver entries.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>It is not necessary to add an entry to
- <filename>ppp.linkup</filename> when you have a static IP
- address as your routing table entries are already correct
- before you connect. You may however wish to create an entry
- to invoke programs after connection. This is explained later
- with the sendmail example.</para>
-
- <para>Example configuration files can be found in the
- <filename>/usr/share/examples/ppp</filename> directory.</para>
- </sect4>
-
- <sect4 id="userppp-dynamicIP">
- <title>PPP and Dynamic IP Addresses</title>
-
- <para>If your service provider does not assign static IP
- addresses, <command>ppp</command> can be configured to
- negotiate the local and remote addresses. This is done by
- <quote>guessing</quote> an IP address and allowing
- <command>ppp</command> to set it up correctly using the IP
- Configuration Protocol (IPCP) after connecting. The
- <filename>ppp.conf</filename> configuration is the same as
- <link linkend="userppp-staticIP">PPP and Static IP
- Addresses</link>, with the following change:</para>
-
- <programlisting>9 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0</programlisting>
-
- <para>Again, do not include the line numbers, they are just for
- reference. Indentation of at least one space is
- required.</para>
-
- <variablelist>
- <varlistentry>
- <term>Line 9:</term>
-
- <listitem>
- <para>The number after the <literal>/</literal> character
- is the number of bits of the address that ppp will
- insist on. You may wish to use IP numbers more
- appropriate to your circumstances, but the above example
- will always work.</para>
-
- <para>The last argument (<literal>0.0.0.0</literal>) tells
- PPP to negotiate using address <hostid
- role="ipaddr">0.0.0.0</hostid> rather than <hostid
- role="ipaddr">10.0.0.1</hostid>. Do not use
- <literal>0.0.0.0</literal> as the first argument to
- <command>set ifaddr</command> as it prevents PPP from
- setting up an initial route in <option>-auto</option>
- mode.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>If you are running version 1.x of PPP, you will also need
- to create an entry in <filename>/etc/ppp/ppp.linkup</filename>.
- <filename>ppp.linkup</filename> is used after a connection has
- been established. At this point, <command>ppp</command> will
- know what IP addresses should <emphasis>really</emphasis> be
- used. The following entry will delete the existing bogus
- routes, and create correct ones:</para>
-
- <programlisting>1 provider:
-2 delete ALL
-3 add 0 0 HISADDR</programlisting>
-
- <variablelist>
- <varlistentry>
- <term>Line 1:</term>
-
- <listitem>
- <para>On establishing a connection, <command>ppp</command>
- will look for an entry in <filename>ppp.linkup</filename>
- according to the following rules: First, try to match
- the same label as we used in
- <filename>ppp.conf</filename>. If that fails, look for
- an entry for the IP address of our gateway. This entry
- is a four-octet IP style label. If we still have not
- found an entry, look for the <literal>MYADDR</literal>
- entry.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 2:</term>
-
- <listitem>
- <para>This line tells <command>ppp</command> to delete all
- of the existing routes for the acquired
- <devicename>tun</devicename> interface (except the
- direct route entry).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 3:</term>
-
- <listitem>
- <para>This line tells <command>ppp</command> to add a
- default route that points to <literal>HISADDR</literal>.
- <literal>HISADDR</literal> will be replaced with the IP
- number of the gateway as negotiated in the IPCP.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>See the pmdemand entry in the files
- <filename>/usr/share/examples/ppp/ppp.conf.sample</filename> and
- <filename>/usr/share/examples/ppp/ppp.linkup.sample</filename> for a
- detailed example.</para>
-
- <para>Version 2 of PPP introduces <quote>sticky routes</quote>.
- Any <literal>add</literal> or <literal>delete</literal> lines
- that contain <literal>MYADDR</literal> or
- <literal>HISADDR</literal> will be remembered, and any time
- the actual values of <literal>MYADDR</literal> or
- <literal>HISADDR</literal> change, the routes will be
- reapplied. This removes the necessity of repeating these
- lines in <filename>ppp.linkup</filename>.</para>
- </sect4>
-
- <sect4>
- <title>Receiving Incoming Calls</title>
-
- <para>When you configure <application>ppp</application> to
- receive incoming calls on a machine connected to a LAN, you
- must decide if you wish to forward packets to the LAN. If you
- do, you should allocate the peer an IP number from your LAN's
- subnet, and use the command <command>enable proxy</command> in
- your <filename>/etc/ppp/ppp.conf</filename> file. You should
- also confirm that the <filename>/etc/rc.conf</filename> file
- contains the following:</para>
-
- <programlisting>gateway="YES"</programlisting>
-
- <sect5>
- <title>Which getty?</title>
-
- <para><link linkend="dialup">Configuring FreeBSD for Dial-up
- Services</link> provides a good description on enabling
- dial-up services using getty.</para>
-
- <para>An alternative to <command>getty</command> is <ulink
- url="http://www.leo.org/~doering/mgetty/index.html">mgetty</ulink>,
- a smarter version of <command>getty</command> designed with
- dial-up lines in mind.</para>
-
- <para>The advantages of using <command>mgetty</command> is
- that it actively <emphasis>talks</emphasis> to modems,
- meaning if port is turned off in
- <filename>/etc/ttys</filename> then your modem will not answer
- the phone.</para>
-
- <para>Later versions of <command>mgetty</command> (from
- 0.99beta onwards) also support the automatic detection of
- PPP streams, allowing your clients script-less access to
- your server.</para>
-
- <para>Refer to <link linkend="userppp-mgetty">Mgetty and
- AutoPPP</link> for more information on
- <command>mgetty</command>.</para>
- </sect5>
-
- <sect5>
- <title><application>PPP</application> Permissions</title>
-
- <para>The <command>ppp</command> command must normally be run
- as user id 0. If however, you wish to allow
- <command>ppp</command> to run in server mode as a normal
- user by executing <command>ppp</command> as described below,
- that user must be given permission to run
- <command>ppp</command> by adding them to the
- <username>network</username> group in
- <filename>/etc/group</filename>.</para>
-
- <para>You will also need to give them access to one or more
- sections of the configuration file using the
- <command>allow</command> command:</para>
-
- <programlisting>allow users fred mary</programlisting>
-
- <para>If this command is used in the <literal>default</literal>
- section, it gives the specified users access to
- everything.</para>
- </sect5>
-
- <sect5>
- <title>PPP Shells for Dynamic-IP Users</title>
-
- <para>Create a file called
- <filename>/etc/ppp/ppp-shell</filename> containing the
- following:</para>
-
- <programlisting>#!/bin/sh
-IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
-CALLEDAS="$IDENT"
-TTY=`tty`
-
-if [ x$IDENT = xdialup ]; then
- IDENT=`basename $TTY`
-fi
-
-echo "PPP for $CALLEDAS on $TTY"
-echo "Starting PPP for $IDENT"
-
-exec /usr/sbin/ppp -direct $IDENT</programlisting>
-
- <para>This script should be executable. Now make a symbolic
- link called <filename>ppp-dialup</filename> to this script
- using the following commands:</para>
-
- <screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen>
-
- <para>You should use this script as the
- <emphasis>shell</emphasis> for all of your dialup users.
- This is an example from <filename>/etc/password</filename>
- for a dialup PPP user with username
- <username>pchilds</username> (remember don't directly edit
- the password file, use <command>vipw</command>).</para>
-
- <programlisting>pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting>
-
- <para>Create a <filename>/home/ppp</filename> directory that
- is world readable containing the following 0 byte
- files:</para>
-
- <screen>-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
--r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts</screen>
-
- <para>which prevents <filename>/etc/motd</filename> from being
- displayed.</para>
- </sect5>
-
- <sect5>
- <title>PPP shells for Static-IP Users</title>
-
- <para>Create the <filename>ppp-shell</filename> file as above
- and for each account with statically assigned IPs create a
- symbolic link to <filename>ppp-shell</filename>.</para>
-
- <para>For example, if you have three dialup customers
- <username>fred</username>, <username>sam</username>, and
- <username>mary</username>, that you route class C networks
- for, you would type the following:</para>
-
- <screen>&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred</userinput>
-&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam</userinput>
-&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary</userinput></screen>
-
- <para>Each of these users dialup accounts should have their
- shell set to the symbolic link created above (i.e.,
- <username>mary</username>'s shell should be
- <filename>/etc/ppp/ppp-mary</filename>).</para>
- </sect5>
-
- <sect5>
- <title>Setting up ppp.conf for dynamic-IP users</title>
-
- <para>The <filename>/etc/ppp/ppp.conf</filename> file should
- contain something along the lines of:</para>
-
- <programlisting>default:
- set debug phase lcp chat
- set timeout 0
-
-ttyd0:
- set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
- enable proxy
-
-ttyd1:
- set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
- enable proxy</programlisting>
-
- <note>
- <para>The indenting is important.</para>
- </note>
-
- <para>The <literal>default:</literal> section is loaded for
- each session. For each dialup line enabled in
- <filename>/etc/ttys</filename> create an entry similar to
- the one for <literal>ttyd0:</literal> above. Each line
- should get a unique IP address from your pool of IP
- addresses for dynamic users.</para>
- </sect5>
-
- <sect5>
- <title>Setting up <filename>ppp.conf</filename> for static-IP
- users</title>
-
- <para>Along with the contents of the sample
- <filename>/usr/share/examples/ppp/ppp.conf</filename> above you should add
- a section for each of the statically assigned dialup users.
- We will continue with our <username>fred</username>,
- <username>sam</username>, and <username>mary</username>
- example.</para>
-
- <programlisting>fred:
- set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
-
-sam:
- set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
-
-mary:
- set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255</programlisting>
-
- <para>The file <filename>/etc/ppp/ppp.linkup</filename> should
- also contain routing information for each static IP user if
- required. The line below would add a route for the <hostid
- role="ipaddr">203.14.101.0</hostid> class C via the
- client's ppp link.</para>
-
- <programlisting>fred:
- add 203.14.101.0 netmask 255.255.255.0 HISADDR
-
-sam:
- add 203.14.102.0 netmask 255.255.255.0 HISADDR
-
-mary:
- add 203.14.103.0 netmask 255.255.255.0 HISADDR</programlisting>
- </sect5>
- </sect4>
-
- <sect4>
- <title>More on <command>mgetty</command>, AutoPPP, and MS
- extensions</title>
-
- <sect5 id="userppp-mgetty">
- <title><command>mgetty</command> and AutoPPP</title>
-
- <para>Configuring and compiling <command>mgetty</command> with
- the <literal>AUTO_PPP</literal> option enabled allows
- <command>mgetty</command> to detect the LCP phase of PPP
- connections and automatically spawn off a ppp shell.
- However, since the default login/password sequence does not
- occur it is necessary to authenticate users using either PAP
- or CHAP.</para>
-
- <para>This section assumes the user has successfully
- configured, compiled, and installed a version of
- <command>mgetty</command> with the
- <literal>AUTO_PPP</literal> option (v0.99beta or
- later).</para>
-
- <para>Make sure your
- <filename>/usr/local/etc/mgetty+sendfax/login.config</filename>
- file has the following in it:</para>
-
- <programlisting>/AutoPPP/ - - /etc/ppp/ppp-pap-dialup</programlisting>
-
- <para>This will tell <command>mgetty</command> to run the
- <filename>ppp-pap-dialup</filename> script for detected PPP
- connections.</para>
-
- <para>Create a file called
- <filename>/etc/ppp/ppp-pap-dialup</filename> containing the
- following (the file should be executable):</para>
-
- <programlisting>#!/bin/sh
-exec /usr/sbin/ppp -direct pap$IDENT</programlisting>
-
- <para>For each dialup line enabled in
- <filename>/etc/ttys</filename>, create a corresponding entry
- in <filename>/etc/ppp/ppp.conf</filename>. This will
- happily co-exist with the definitions we created
- above.</para>
-
- <programlisting>pap:
- enable pap
- set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
- enable proxy</programlisting>
-
- <para>Each user logging in with this method will need to have
- a username/password in
- <filename>/etc/ppp/ppp.secret</filename> file, or
- alternatively add the following option to authenticate users
- via PAP from <filename>/etc/password</filename> file.</para>
-
- <programlisting>enable passwdauth</programlisting>
-
- <para>If you wish to assign some users a static IP number, you
- can specify the number as the third argument in
- <filename>/etc/ppp/ppp.secret</filename>. See
- <filename>/usr/share/examples/ppp/ppp.secret.sample</filename> for
- examples.</para>
- </sect5>
-
- <sect5>
- <title>MS extensions</title>
-
- <para>It is possible to configure PPP to supply DNS and
- NetBIOS nameserver addresses on demand.</para>
-
- <para>To enable these extensions with PPP version 1.x, the
- following lines might be added to the relevant section of
- <filename>/etc/ppp/ppp.conf</filename>.</para>
-
- <programlisting>enable msext
-set ns 203.14.100.1 203.14.100.2
-set nbns 203.14.100.5</programlisting>
-
- <para>And for PPP version 2 and above:</para>
-
- <programlisting>accept dns
-set dns 203.14.100.1 203.14.100.2
-set nbns 203.14.100.5</programlisting>
-
- <para>This will tell the clients the primary and secondary
- name server addresses, and a netbios nameserver host.</para>
-
- <para>In version 2 and above, if the
- <literal>set dns</literal> line is omitted, PPP will use the
- values found in <filename>/etc/resolv.conf</filename>.</para>
- </sect5>
- </sect4>
-
- <sect4 id="userppp-PAPnCHAP">
- <title>PAP and CHAP authentication</title>
-
- <para>Some ISPs set their system up so that the authentication
- part of your connection is done using either of the PAP or
- CHAP authentication mechanisms. If this is the case, your ISP
- will not give a <prompt>login:</prompt> prompt when you
- connect, but will start talking PPP immediately.</para>
-
- <para>PAP is less secure than CHAP, but security is not normally
- an issue here as passwords, although being sent as plain text
- with PAP, are being transmitted down a serial line only.
- There's not much room for crackers to
- <quote>eavesdrop</quote>.</para>
-
- <para>Referring back to the <link linkend="userppp-staticIP">PPP
- and Static IP addresses</link> or <link
- linkend="userppp-dynamicIP">PPP and Dynamic IP addresses</link>
- sections, the following alterations must be made:</para>
-
- <programlisting>7 set login
-&hellip;
-12 set authname <replaceable>MyUserName</replaceable>
-13 set authkey <replaceable>MyPassword</replaceable></programlisting>
-
- <para>As always, do not include the line numbers, they are just
- for reference in this discussion. Indentation of at least one
- space is required.</para>
-
- <variablelist>
- <varlistentry>
- <term>Line 7:</term>
-
- <listitem>
- <para>Your ISP will not normally require that you log into
- the server if you're using PAP or CHAP. You must
- therefore disable your <quote>set login</quote>
- string.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 12:</term>
-
- <listitem>
- <para>This line specifies your PAP/CHAP user name. You
- will need to insert the correct value for
- <replaceable>MyUserName</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Line 13:</term>
-
- <listitem>
- <para>This line specifies your PAP/CHAP password. You
- will need to insert the correct value for
- <replaceable>MyPassword</replaceable>. You may want to
- add an additional line, such as:</para>
-
- <programlisting>15 accept PAP</programlisting>
-
- <para>or</para>
-
- <programlisting>15 accept CHAP</programlisting>
-
- <para>to make it obvious that this is the intention, but
- PAP and CHAP are both accepted by default.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect4>
-
- <sect4>
- <title>Changing your <command>ppp</command> configuration on the
- fly</title>
-
- <para>It is possible to talk to the <command>ppp</command>
- program while it is running in the background, but only if a
- suitable diagnostic port has been set up. To do this, add the
- following line to your configuration:</para>
-
- <programlisting>set server /var/run/ppp-tun%d DiagnosticPassword 0177</programlisting>
-
- <para>This will tell PPP to listen to the specified unix-domain
- socket, asking clients for the specified password before
- allowing access. The <literal>%d</literal> in the name is
- replaced with the <devicename>tun</devicename> device number
- that is in use.</para>
-
- <para>Once a socket has been set up, the &man.pppctl.8; program
- may be used in scripts that wish to manipulate the running
- program.</para>
- </sect4>
- </sect3>
-
- <sect3 id="userppp-final">
- <title>Final system configuration</title>
-
- <para>You now have <command>ppp</command> configured, but there
- are a few more things to do before it is ready to work. They
- all involve editing the <filename>/etc/rc.conf</filename>
- file.</para>
-
- <para>Working from the top down in this file, make sure the
- <literal>hostname=</literal> line is set, e.g.:</para>
-
- <programlisting>hostname="foo.bar.com"</programlisting>
-
- <para>If your ISP has supplied you with a static IP address and
- name, it's probably best that you use this name as your host
- name.</para>
-
- <para>Look for the <literal>network_interfaces</literal> variable.
- If you want to configure your system to dial your ISP on demand,
- make sure the <devicename>tun0</devicename> device is added to
- the list, otherwise remove it.</para>
-
- <programlisting>network_interfaces="lo0 tun0" ifconfig_tun0=</programlisting>
-
- <note>
- <para>The <literal>ifconfig_tun0</literal> variable should be
- empty, and a file called
- <filename>/etc/start_if.tun0</filename> should be created.
- This file should contain the line:</para>
-
- <programlisting>ppp -auto mysystem</programlisting>
-
- <para>This script is executed at network configuration time,
- starting your ppp daemon in automatic mode. If you have a LAN
- for which this machine is a gateway, you may also wish to use
- the <option>-alias</option> switch. Refer to the manual page
- for further details.</para>
- </note>
-
- <para>Set the router program to <literal>NO</literal> with
- following line in your <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>router_enable="NO"</programlisting>
-
- <para>It is important that the <command>routed</command> daemon is
- not started (it is started by default), as it
- <command>routed</command> tends to delete the default routing
- table entries created by <command>ppp</command>.</para>
-
- <para>It is probably worth your while ensuring that the
- <literal>sendmail_flags</literal> line does not include the
- <option>-q</option> option, otherwise
- <command>sendmail</command> will attempt to do a network lookup
- every now and then, possibly causing your machine to dial out.
- You may try:</para>
-
- <programlisting>sendmail_flags="-bd"</programlisting>
-
- <para>The downside of this is that you must force
- <command>sendmail</command> to re-examine the mail queue
- whenever the ppp link is up by typing:</para>
-
- <screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen>
-
- <para>You may wish to use the <command>!bg</command> command in
- <filename>ppp.linkup</filename> to do this automatically:</para>
-
- <programlisting>1 provider:
-2 delete ALL
-3 add 0 0 HISADDR
-4 !bg sendmail -bd -q30m</programlisting>
-
- <para>If you don't like this, it is possible to set up a
- <quote>dfilter</quote> to block SMTP traffic. Refer to the
- sample files for further details.</para>
-
- <para>Now the only thing left to do is reboot the machine.</para>
-
- <para>All that is left is to reboot the machine. After rebooting,
- you can now either type:</para>
-
- <screen>&prompt.root; <userinput>ppp</userinput></screen>
-
- <para>and then <command>dial provider</command> to start the PPP
- session, or, if you want <command>ppp</command> to establish
- sessions automatically when there is outbound traffic (and
- you have not created the <filename>start_if.tun0</filename>
- script), type:</para>
-
- <screen>&prompt.root; <userinput>ppp -auto provider</userinput></screen>
- </sect3>
-
- <sect3>
- <title>Summary</title>
-
- <para>To recap, the following steps are necessary when setting up
- ppp for the first time:</para>
-
- <para>Client side:</para>
-
- <procedure>
- <step>
- <para>Ensure that the <devicename>tun</devicename> device is
- built into your kernel.</para>
- </step>
-
- <step>
- <para>Ensure that the
- <filename>tun<replaceable>X</replaceable></filename> device
- file is available in the <filename>/dev</filename>
- directory.</para>
- </step>
-
- <step>
- <para>Create an entry in
- <filename>/etc/ppp/ppp.conf</filename>. The
- <filename>pmdemand</filename> example should suffice for
- most ISPs.</para>
- </step>
-
- <step>
- <para>If you have a dynamic IP address, create an entry in
- <filename>/etc/ppp/ppp.linkup</filename>.</para>
- </step>
-
- <step>
- <para>Update your <filename>/etc/rc.conf</filename>
- file.</para>
- </step>
-
- <step>
- <para>Create a <filename>start_if.tun0</filename> script if
- you require demand dialing.</para>
- </step>
- </procedure>
-
- <para>Server side:</para>
-
- <procedure>
- <step>
- <para>Ensure that the <devicename>tun</devicename> device is
- built into your kernel.</para>
- </step>
-
- <step>
- <para>Ensure that the
- <filename>tun<replaceable>X</replaceable></filename> device
- file is available in the <filename>/dev</filename>
- directory.</para>
- </step>
-
- <step>
- <para>Create an entry in <filename>/etc/passwd</filename>
- (using the &man.vipw.8; program).</para>
- </step>
-
- <step>
- <para>Create a profile in this users home directory that runs
- <command>ppp -direct direct-server</command> or
- similar.</para>
- </step>
-
- <step>
- <para>Create an entry in
- <filename>/etc/ppp/ppp.conf</filename>. The
- <filename>direct-server</filename> example should
- suffice.</para>
- </step>
-
- <step>
- <para>Create an entry in
- <filename>/etc/ppp/ppp.linkup</filename>.</para>
- </step>
-
- <step>
- <para>Update your <filename>/etc/rc.conf</filename>
- file.</para>
- </step>
- </procedure>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="ppp">
- <title>Using Kernel PPP</title>
-
- <para><emphasis>Parts originally contributed by &a.gena; and
- &a.rhuff;.</emphasis></para>
-
- <sect2>
- <title>Setting up Kernel PPP</title>
-
- <para>Before you start setting up PPP on your machine make sure
- that <command>pppd</command> is located in
- <filename>/usr/sbin</filename> and the directory
- <filename>/etc/ppp</filename> exists.</para>
-
- <para><command>pppd</command> can work in two modes:</para>
-
- <orderedlist>
- <listitem>
- <para>As a <quote>client</quote>, i.e., you want to connect your
- machine to the outside world via a PPP serial connection or
- modem line.</para>
- </listitem>
-
- <listitem>
- <para>as a <quote>server</quote>, i.e. your machine is located on
- the network and used to connect other computers using
- PPP.</para>
- </listitem>
- </orderedlist>
-
- <para>In both cases you will need to set up an options file
- (<filename>/etc/ppp/options</filename> or
- <filename>~/.ppprc</filename> if you have more than one user on
- your machine that uses PPP).</para>
-
- <para>You also will need some modem/serial software (preferably
- kermit) so you can dial and establish a connection with the
- remote host.</para>
- </sect2>
-
- <sect2>
- <title>Using <command>pppd</command> as a client</title>
-
- <para>The following <filename>/etc/ppp/options</filename> might be
- used to connect to a CISCO terminal server PPP line.</para>
-
- <programlisting>crtscts # enable hardware flow control
-modem # modem control line
-noipdefault # remote PPP server must supply your IP address.
- # if the remote host doesn't send your IP during IPCP
- # negotiation , remove this option
-passive # wait for LCP packets
-domain ppp.foo.com # put your domain name here
-
-:&lt;remote_ip&gt; # put the IP of remote PPP host here
- # it will be used to route packets via PPP link
- # if you didn't specified the noipdefault option
- # change this line to &lt;local_ip&gt;:&lt;remote_ip&gt;
-
-defaultroute # put this if you want that PPP server will be your
- # default router</programlisting>
-
- <para>To connect:</para>
-
- <procedure>
- <step>
- <para>Dial to the remote host using kermit (or some other modem
- program), and enter your user name and password (or whatever
- is needed to enable PPP on the remote host).</para>
- </step>
-
- <step>
- <para>Exit kermit (without hanging up the line).</para>
- </step>
-
- <step>
- <para>Enter the following:</para>
-
- <screen>&prompt.root; <userinput>/usr/src/usr.sbin/pppd.new/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen>
-
- <para>Be sure to use the appropriate speed and device name.</para>
- </step>
- </procedure>
-
- <para>Now your computer is connected with PPP. If the connection
- fails, you can add the <option>debug</option> option to the
- <filename>/etc/ppp/options</filename> file and check messages on
- the console to track the problem.</para>
-
- <para>Following <filename>/etc/ppp/pppup</filename> script will make
- all 3 stages automatically:</para>
-
- <programlisting>#!/bin/sh
-ps ax |grep pppd |grep -v grep
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'killing pppd, PID=' ${pid}
- kill ${pid}
-fi
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'killing kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-
-ifconfig ppp0 down
-ifconfig ppp0 delete
-
-kermit -y /etc/ppp/kermit.dial
-pppd /dev/tty01 19200</programlisting>
-
- <para><filename>/etc/ppp/kermit.dial</filename> is a kermit script
- that dials and makes all necessary authorization on the remote
- host (an example of such a script is attached to the end of this
- document).</para>
-
- <para>Use the following <filename>/etc/ppp/pppdown</filename> script
- to disconnect the PPP line:</para>
-
- <programlisting>#!/bin/sh
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ X${pid} != "X" ] ; then
- echo 'killing pppd, PID=' ${pid}
- kill -TERM ${pid}
-fi
-
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'killing kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-
-/sbin/ifconfig ppp0 down
-/sbin/ifconfig ppp0 delete
-kermit -y /etc/ppp/kermit.hup
-/etc/ppp/ppptest</programlisting>
-
- <para>Check to see if PPP is still running by executing
- <filename>/usr/etc/ppp/ppptest</filename>, which should look like
- this:</para>
-
- <programlisting>#!/bin/sh
-pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
-if [ X${pid} != "X" ] ; then
- echo 'pppd running: PID=' ${pid-NONE}
-else
- echo 'No pppd running.'
-fi
-set -x
-netstat -n -I ppp0
-ifconfig ppp0</programlisting>
-
- <para>To hang up the modem, execute
- <filename>/etc/ppp/kermit.hup</filename>, which should
- contain:</para>
-
- <programlisting>set line /dev/tty01 ; put your modem device here
-set speed 19200
-set file type binary
-set file names literal
-set win 8
-set rec pack 1024
-set send pack 1024
-set block 3
-set term bytesize 8
-set command bytesize 8
-set flow none
-
-pau 1
-out +++
-inp 5 OK
-out ATH0\13
-echo \13
-exit</programlisting>
-
- <para>Here is an alternate method using <command>chat</command>
- instead of <command>kermit</command>.</para>
-
- <para>The following two files are sufficient to accomplish a pppd
- connection.</para>
-
- <para><filename>/etc/ppp/options</filename>:</para>
-
- <programlisting>/dev/cuaa1 115200
-
-crtscts # enable hardware flow control
-modem # modem control line
-connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
-noipdefault # remote PPP serve must supply your IP address.
- # if the remote host doesn't send your IP during
- # IPCP negotiation, remove this option
-passive # wait for LCP packets
-domain &lt;your.domain&gt; # put your domain name here
-
-: # put the IP of remote PPP host here
- # it will be used to route packets via PPP link
- # if you didn't specified the noipdefault option
- # change this line to &lt;local_ip&gt;:&lt;remote_ip&gt;
-
-defaultroute # put this if you want that PPP server will be
- # your default router</programlisting>
-
- <para><filename>/etc/ppp/login.chat.script</filename>:</para>
-
- <note>
- <para>The following should go on a single line.</para>
- </note>
-
- <programlisting>ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT&lt;phone.number&gt;
- CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: &lt;login-id&gt;
- TIMEOUT 5 sword: &lt;password&gt;</programlisting>
-
- <para>Once these are installed and modified correctly, all you need
- to do is run <command>pppd</command>, like so:</para>
-
- <screen>&prompt.root; <userinput>pppd</userinput></screen>
-
- <para>This sample is based primarily on information provided by:
- Trev Roydhouse &lt;Trev.Roydhouse@f401.n711.z3.fidonet.org&gt;
- and used with permission.</para>
- </sect2>
-
- <sect2>
- <title>Using <command>pppd</command> as a server</title>
-
- <para><filename>/etc/ppp/options</filename> should contain something
- similar to the following:</para>
-
- <programlisting>crtscts # Hardware flow control
-netmask 255.255.255.0 # netmask ( not required )
-192.114.208.20:192.114.208.165 # ip's of local and remote hosts
- # local ip must be different from one
- # you assigned to the ethernet ( or other )
- # interface on your machine.
- # remote IP is ip address that will be
- # assigned to the remote machine
-domain ppp.foo.com # your domain
-passive # wait for LCP
-modem # modem line</programlisting>
-
- <para>The following <filename>/etc/ppp/pppserv</filename> script
- will enable tell <application>pppd</application> to behave as a
- server:</para>
-
- <programlisting>#!/bin/sh
-ps ax |grep pppd |grep -v grep
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'killing pppd, PID=' ${pid}
- kill ${pid}
-fi
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'killing kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-
-# reset ppp interface
-ifconfig ppp0 down
-ifconfig ppp0 delete
-
-# enable autoanswer mode
-kermit -y /etc/ppp/kermit.ans
-
-# run ppp
-pppd /dev/tty01 19200</programlisting>
-
- <para>Use this <filename>/etc/ppp/pppservdown</filename> script to
- stop the server:</para>
-
- <programlisting>#!/bin/sh
-ps ax |grep pppd |grep -v grep
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'killing pppd, PID=' ${pid}
- kill ${pid}
-fi
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'killing kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-ifconfig ppp0 down
-ifconfig ppp0 delete
-
-kermit -y /etc/ppp/kermit.noans</programlisting>
-
- <para>The following kermit script
- (<filename>/etc/ppp/kermit.ans</filename>) will enable/disable
- autoanswer mode on your modem. It should look like this:</para>
-
- <programlisting>set line /dev/tty01
-set speed 19200
-set file type binary
-set file names literal
-set win 8
-set rec pack 1024
-set send pack 1024
-set block 3
-set term bytesize 8
-set command bytesize 8
-set flow none
-
-pau 1
-out +++
-inp 5 OK
-out ATH0\13
-inp 5 OK
-echo \13
-out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
- ; autoanswer mod
-inp 5 OK
-echo \13
-exit</programlisting>
-
- <para>A script named <filename>/etc/ppp/kermit.dial</filename> is
- used for dialing and authenticating on the remote host. You will
- need to customize it for your needs. Put your login and password
- in this script; you will also need to change the input statement
- depending on responses from your modem and remote host.</para>
-
- <programlisting>;
-; put the com line attached to the modem here:
-;
-set line /dev/tty01
-;
-; put the modem speed here:
-;
-set speed 19200
-set file type binary ; full 8 bit file xfer
-set file names literal
-set win 8
-set rec pack 1024
-set send pack 1024
-set block 3
-set term bytesize 8
-set command bytesize 8
-set flow none
-set modem hayes
-set dial hangup off
-set carrier auto ; Then SET CARRIER if necessary,
-set dial display on ; Then SET DIAL if necessary,
-set input echo on
-set input timeout proceed
-set input case ignore
-def \%x 0 ; login prompt counter
-goto slhup
-
-:slcmd ; put the modem in command mode
-echo Put the modem in command mode.
-clear ; Clear unread characters from input buffer
-pause 1
-output +++ ; hayes escape sequence
-input 1 OK\13\10 ; wait for OK
-if success goto slhup
-output \13
-pause 1
-output at\13
-input 1 OK\13\10
-if fail goto slcmd ; if modem doesn't answer OK, try again
-
-:slhup ; hang up the phone
-clear ; Clear unread characters from input buffer
-pause 1
-echo Hanging up the phone.
-output ath0\13 ; hayes command for on hook
-input 2 OK\13\10
-if fail goto slcmd ; if no OK answer, put modem in command mode
-
-:sldial ; dial the number
-pause 1
-echo Dialing.
-output atdt9,550311\13\10 ; put phone number here
-assign \%x 0 ; zero the time counter
-
-:look
-clear ; Clear unread characters from input buffer
-increment \%x ; Count the seconds
-input 1 {CONNECT }
-if success goto sllogin
-reinput 1 {NO CARRIER\13\10}
-if success goto sldial
-reinput 1 {NO DIALTONE\13\10}
-if success goto slnodial
-reinput 1 {\255}
-if success goto slhup
-reinput 1 {\127}
-if success goto slhup
-if < \%x 60 goto look
-else goto slhup
-
-:sllogin ; login
-assign \%x 0 ; zero the time counter
-pause 1
-echo Looking for login prompt.
-
-:slloop
-increment \%x ; Count the seconds
-clear ; Clear unread characters from input buffer
-output \13
-;
-; put your expected login prompt here:
-;
-input 1 {Username: }
-if success goto sluid
-reinput 1 {\255}
-if success goto slhup
-reinput 1 {\127}
-if success goto slhup
-if < \%x 10 goto slloop ; try 10 times to get a login prompt
-else goto slhup ; hang up and start again if 10 failures
-
-:sluid
-;
-; put your userid here:
-;
-output ppp-login\13
-input 1 {Password: }
-;
-; put your password here:
-;
-output ppp-password\13
-input 1 {Entering SLIP mode.}
-echo
-quit
-
-:slnodial
-echo \7No dialtone. Check the telephone line!\7
-exit 1
-
-; local variables:
-; mode: csh
-; comment-start: "; "
-; comment-start-skip: "; "
-; end:</programlisting>
- </sect2>
- </sect1>
-
- <sect1 id="pppoe">
- <title>Using <application>PPP</application> over Ethernet (PPPoE)</title>
-
- <para><emphasis>Contributed by &a.jim; (from <ulink
- url="http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html">node.to</ulink>) 10 Jan 2000.</emphasis></para>
-
- <para>The following describes how to set up PPP over Ethernet, a.k.a,
- PPPoE.</para>
-
- <sect2>
- <title>Prerequisites</title>
-
- <para>There are a few requirements that your system will need to meet
- in order for PPPoE to function properly. They are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Kernel source for FreeBSD 3.4 or later</para>
- </listitem>
-
- <listitem>
- <para><application>ppp</application> from FreeBSD 3.4 or later</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Kernel Configuration</title>
-
- <para>You will need to set the following options in your kernel
- configuration file and then <link linkend="kernelconfig">compile a new
- kernel</link>.</para>
-
- <itemizedlist>
- <listitem>
- <para>options NETGRAPH</para>
- </listitem>
- </itemizedlist>
-
- <para>Optionally, you can add</para>
-
- <itemizedlist>
- <listitem>
- <para>options NETGRAPH_PPPOE</para>
- </listitem>
- <listitem>
- <para>options NETGRAPH_SOCKET</para>
- </listitem>
- </itemizedlist>
-
- <para>
- although if this functionality is not available at runtime,
- <application>ppp</application> will load the relevant modules
- on demand
- </para>
- </sect2>
-
- <sect2>
- <title>Setting up <filename>ppp.conf</filename></title>
-
- <para>Here is an example of a working
- <filename>ppp.conf</filename>:</para>
-
- <programlisting>default: # or name_of_service_provider
- set device PPPoE:<replaceable>xl1</replaceable> # replace xl1 with your ethernet device
- set mru 1492
- set mtu 1492
- set authname YOURLOGINNAME
- set authkey YOURPASSWORD
- set log Phase tun command # you can add more detailed logging if you wish
- set dial
- set login
- set ifaddr 10.0.0.1/0 10.0.0.2/0
- add default HISADDR
- nat enable yes # if you want to enable nat for your local net
-
-papchap:
- set authname YOURLOGINNAME
- set authkey YOURPASSWORD</programlisting>
-
- <para>
- Care should be taken when running <ulink
- url="../FAQ/ppp.html#PPPoEwithNAT">PPPoE with the
- <option>-nat</option> option</ulink>.
- </para>
-
- </sect2>
-
- <sect2>
- <title>Running <application>PPP</application></title>
-
- <para>As root, you can run:</para>
-
- <screen>&prompt.root; <userinput>ppp -ddial name_of_service_provider</userinput></screen>
-
- </sect2>
-
- <sect2>
- <title>Starting <application>PPP</application> at Boot</title>
-
- <para>Add the following to your <filename>/etc/rc.conf</filename>
- file:</para>
-
- <programlisting>ppp_enable="YES"
-ppp_mode="ddial"
-ppp_nat="YES"
-ppp_profile="default" # or your provider</programlisting>
- </sect2>
-
- <sect2>
- <title>PPPoE with a 3Com HomeConnect ADSL Modem Dual Link</title>
-
- <para><emphasis>Contributed by &a.lioux;, 07 Apr
- 2001.</emphasis></para>
-
- <para>In short, it does not work. It should, but unfortunately,
- that is not the case. For whatever reason, this modem does not
- follow <ulink url="http://www.faqs.org/rfcs/rfc2516.html">RFC
- 2516</ulink> (<emphasis>A Method for transmitting PPP over
- Ethernet (PPPoE)</emphasis>, written by L. Mamakos, K. Lidl,
- J. Evarts, D. Carrel, D. Simone, and R. Wheeler).</para>
-
- <para>Since it does not follow the specification, FreeBSD's PPPoE
- implementation will not talk to it. It is very likely that it will
- not work under other unixes for that same reason. Complain to <ulink
- url="http://www.3com.com/">3Com</ulink> if you think it should
- comply with the PPPoE specification.</para>
-
- <para>If you absolutely want to use your ADSL connection with
- FreeBSD and are stuck with this modem, you can either:</para>
-
- <itemizedlist>
- <listitem>
- <para>Try replacing the modem with a different brand or model
- if your DSL provider permits you to do so. If you are not
- sure which brand(s) will work, the &a.questions; is a good
- place to ask.</para>
- </listitem>
-
- <listitem>
- <para>Try to get it working. Keep in mind that there is no
- guarantee it will work, your mileage may vary.</para>
- </listitem>
- </itemizedlist>
-
- <para>If you want to try to make it work, you can do the
- following, but please keep in mind that you do this <emphasis>at
- your own risk</emphasis>! Just because it worked for me does
- not mean it will work for you.</para>
-
- <para>There are three steps to the process. They are:</para>
-
- <procedure>
- <step>
- <para>Make sure you already have <filename>ppp.conf</filename>
- set up. See the beginning of this chapter for more details
- on doing so.</para>
- </step>
-
- <step>
- <para>Since the modem does not speak the correct protocol, we
- need to learn how to speak its variant of the protocol.
- This information was obtained from a <ulink
- url="http://www.dslreports.com/forum/remark,367540;root=equip,16;mode=flat">DSLreports
- forum message</ulink>.</para>
-
- <para>The modem speaks <literal>0x3c12</literal> for
- <literal>DISCOVERY</literal>, and <literal>0x3c13</literal>
- for <literal>PAYLOAD</literal> identifiers instead of
- <literal>0x8863</literal> and <literal>0x8864</literal>
- respectively, as mandated by the PPPoE specification.</para>
-
- <informaltable>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Code</entry>
- <entry>RFC's Code</entry>
- <entry>Dual Link Modem's Code</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>PAYLOAD</entry>
- <entry>0x8863</entry>
- <entry>0x3c12</entry>
- </row>
- <row>
- <entry>PAYLOAD</entry>
- <entry>0x8864</entry>
- <entry>0x3c13</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>So, now what? You need to recompile the
- <literal>NETGRAPH_PPPOE</literal> code with the modem's
- codes. For this, you should have installed the full kernel
- sources.</para>
-
- <para>Find the
- <filename>/usr/src/sys/netgraph/ng_pppoe.h</filename> file.
- Be careful while editing this file. You have to modify both
- the little and the big endian entries.</para>
-
- <itemizedlist>
- <listitem>
- <para>For big endian, find the line with
- <literal>0x8863</literal> in it, and replace the number
- with <literal>0x3c12</literal>. Do the same with
- <literal>0x8864</literal>, replacing it with
- <literal>0x3c13</literal>.</para>
- </listitem>
-
- <listitem>
- <para>For little endian, find the line with
- <literal>0x6388</literal>in it, and replace the number
- with <literal>0x123c</literal>. Do the same with
- <literal>0x6488</literal>, replacing it with
- <literal>0x133c</literal>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Here is a <command>diff</command> of how the new file
- should look:</para>
-
- <screen>&prompt.user; <userinput>diff -u ng_pppoe.h.orig ng_pppoe.h</userinput></screen>
-
- <programlisting>
---- ng_pppoe.h.orig Thu Apr 12 13:42:46 2001
-+++ ng_pppoe.h Thu Apr 12 13:44:47 2001
-@@ -148,8 +148,8 @@
- #define PTT_SYS_ERR (0x0202)
- #define PTT_GEN_ERR (0x0203)
-
--#define ETHERTYPE_PPPOE_DISC 0x8863 /* pppoe discovery packets */
--#define ETHERTYPE_PPPOE_SESS 0x8864 /* pppoe session packets */
-+#define ETHERTYPE_PPPOE_DISC 0x3c12 /* pppoe discovery packets */
-+#define ETHERTYPE_PPPOE_SESS 0x3c13 /* pppoe session packets */
- #else
- #define PTT_EOL (0x0000)
- #define PTT_SRV_NAME (0x0101)
-@@ -162,8 +162,8 @@
- #define PTT_SYS_ERR (0x0202)
- #define PTT_GEN_ERR (0x0302)
-
--#define ETHERTYPE_PPPOE_DISC 0x6388 /* pppoe discovery packets */
--#define ETHERTYPE_PPPOE_SESS 0x6488 /* pppoe session packets */
-+#define ETHERTYPE_PPPOE_DISC 0x123c /* pppoe discovery packets */
-+#define ETHERTYPE_PPPOE_SESS 0x133c /* pppoe session packets */
- #endif
-
- struct pppoe_tag {</programlisting>
-
- <para>Then do the following as
- <username>root</username>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/sys/modules/netgraph/pppoe</userinput>
-&prompt.root; <userinput>make clean depend all install</userinput>
-&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>Now you can speak the modem's variant of the PPPoE
- specification.</para>
-
- <para>The third step is to figure out the name of the profile
- your ISP assigned to the modem. The information for this
- step was obtained from the <ulink
- url="http://www.roaringpenguin.com/pppoe/">Roaring Penguin
- PPPoE</ulink> program which can be found in the <link
- linkend="ports">ports collection</link>. If you still are
- not able to find it, ask your ISP's tech support.</para>
-
- <para>If they do not know it either, and you are feeling bold
- (this may de-program your modem and render it useless, so
- think twice about doing it).</para>
-
- <para>Install the program shipped with the modem by your
- provider. Then, access the <literal>System</literal> menu
- from the program. The name of your profile should be
- listed there. It is usually <emphasis>ISP</emphasis>.</para>
-
- <para>The profile name will be used in the PPPoE configuration
- inside <filename>ppp.conf</filename> as the provider
- parameter. See the &man.ppp.8; manual page for more
- information.</para>
-
- <para>The PPPoE line in your <filename>ppp.conf</filename>
- should look like this:</para>
-
- <programlisting>set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable></programlisting>
-
- <para>Do not forget to change <replaceable>xl1</replaceable>
- to the proper device for your ethernet card.</para>
- <para>Do not forget to change <replaceable>ISP</replaceable>
- to the profile you have just found above.</para>
- </step>
- </procedure>
-
- <para>For additional information, you can try:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.daemonnews.org/200101/pppoe.html">Cheaper
- Broadband with FreeBSD on DSL</ulink> by <ulink
- url="http://www.daemonnews.org/200101/pppoe.html#author">Renauld
- Waldura</ulink> in <ulink url="http://www.daemonnews.org/">Daemon
- News</ulink>.</para>
- </listitem>
-
- <listitem>
- <para>Another PPPoE tutorial by <ulink
- url="http://www.sympaticousers.org/faq/freebsd_howto.htm">Sympatico
- Users Group</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="slip">
- <title>Using SLIP</title>
-
- <para><emphasis>Originally contributed by &a.asami; and
- &a.ghelmer;, with input from &a.wilko; and
- &a.piero;.</emphasis></para>
-
- <sect2 id="slipc">
- <title>Setting up a SLIP Client</title>
-
- <para>The following is one way to set up a FreeBSD machine for SLIP
- on a static host network. For dynamic hostname assignments (i.e.,
- your address changes each time you dial up), you probably need to
- do something much fancier.</para>
-
- <para>First, determine which serial port your modem is connected to.
- I have a symbolic link to <filename>/dev/modem</filename> from
- <filename>/dev/cuaa1</filename>, and only use the modem name in
- my configuration files. It can become quite cumbersome when you
- need to fix a bunch of files in <filename>/etc</filename> and
- <filename>.kermrc</filename>'s all over the system!</para>
-
- <note>
- <para><filename>/dev/cuaa0</filename> is
- <devicename>COM1</devicename>, <filename>cuaa1</filename> is
- <devicename>COM2</devicename>, etc.</para>
- </note>
-
- <para>Make sure you have the following in your kernel configuration
- file:</para>
-
- <programlisting>pseudo-device sl 1</programlisting>
-
- <para>It is included in the <filename>GENERIC</filename> kernel, so
- this should not be a problem unless you have deleted it.</para>
-
- <sect3>
- <title>Things you have to do only once</title>
-
- <procedure>
- <step>
- <para>Add your home machine, the gateway and nameservers to
- your <filename>/etc/hosts</filename> file. Mine looks like
- this:</para>
-
- <programlisting>127.0.0.1 localhost loghost
-136.152.64.181 silvia.HIP.Berkeley.EDU silvia.HIP silvia
-136.152.64.1 inr-3.Berkeley.EDU inr-3 slip-gateway
-128.32.136.9 ns1.Berkeley.edu ns1
-128.32.136.12 ns2.Berkeley.edu ns2</programlisting>
- </step>
-
- <step>
- <para>Make sure you have <option>hosts</option> before
- <option>bind</option> in your
- <filename>/etc/host.conf</filename>. Otherwise, funny
- things may happen.</para>
- </step>
-
- <step>
- <para>Edit the <filename>/etc/rc.conf</filename> file.</para>
-
- <orderedlist>
- <listitem>
- <para>Set your hostname by editing the line that
- says:</para>
-
- <programlisting>hostname=<quote>myname.my.domain</quote></programlisting>
-
- <para>You should give it your full Internet
- hostname.</para>
- </listitem>
-
- <listitem>
- <para>Add sl0 to the list of network interfaces by
- changing the line that says:</para>
-
- <programlisting>network_interfaces="lo0"</programlisting>
-
- <para>to:</para>
-
- <programlisting>network_interfaces=<quote>lo0 sl0</quote></programlisting>
- </listitem>
-
- <listitem>
- <para>Set the startup flags of sl0 by adding a
- line:</para>
-
- <programlisting>ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"</programlisting>
- </listitem>
-
- <listitem>
- <para>Designate the default router by changing the
- line:</para>
-
- <programlisting>defaultrouter=<quote>NO</quote></programlisting>
-
- <para>to:</para>
-
- <programlisting>defaultrouter=<quote>slip-gateway</quote></programlisting>
- </listitem>
- </orderedlist>
- </step>
-
- <step>
- <para>Make a file <filename>/etc/resolv.conf</filename> which
- contains:</para>
-
- <programlisting>domain HIP.Berkeley.EDU
-nameserver 128.32.136.9
-nameserver 128.32.136.12</programlisting>
-
- <para>As you can see, these set up the nameserver hosts. Of
- course, the actual domain names and addresses depend on your
- environment.</para>
- </step>
-
- <step>
- <para>Set the password for root and toor (and any other
- accounts that do not have a password). Use passwd or
- &man.vipw.8;, do not edit the
- <filename>/etc/passwd</filename> or
- <filename>/etc/master.passwd</filename> files!</para>
- </step>
-
- <step>
- <para>Reboot your machine and make sure it comes up with the
- correct hostname.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>Making a SLIP connection</title>
-
- <procedure>
- <step>
- <para>Dial up, type <command>slip</command> at the prompt,
- enter your machine name and password. The things you need
- to enter depends on your environment. If you use kermit, you
- can try a script like this:</para>
-
- <programlisting># kermit setup
-set modem hayes
-set line /dev/modem
-set speed 115200
-set parity none
-set flow rts/cts
-set terminal bytesize 8
-set file type binary
-# The next macro will dial up and login
-define slip dial 643-9600, input 10 =&gt;, if failure stop, -
-output slip\x0d, input 10 Username:, if failure stop, -
-output silvia\x0d, input 10 Password:, if failure stop, -
-output ***\x0d, echo \x0aCONNECTED\x0a</programlisting>
-
- <para>Of course, you have to change the hostname and password
- to fit yours. After doing so, you can just type
- <command>slip</command> from the kermit prompt to get
- connected.</para>
-
- <note>
- <para>Leaving your password in plain text anywhere in the
- filesystem is generally a BAD idea. Do it at your own
- risk.</para>
- </note>
- </step>
-
- <step>
- <para>Leave the kermit there (you can suspend it by
- <command>z</command>) and as root, type:</para>
-
- <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen>
-
- <para>If you are able to <command>ping</command> hosts on the
- other side of the router, you are connected! If it does not
- work, you might want to try <option>-a</option> instead of
- <option>-c</option> as an argument to slattach.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>How to shutdown the connection</title>
-
- <para>Do the following:</para>
-
- <screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen>
-
- <para>to kill slattach. Keep in mind you must be
- <username>root</username> to do the above. Then go back to
- kermit (<command>fg</command> if you suspended it) and exit from
- it (<command>q</command>).</para>
-
- <para>The slattach man page says you have to use <command>ifconfig
- sl0 down</command> to mark the interface down, but this does not
- seem to make any difference for me.
- (<command>ifconfig sl0</command> reports the same thing.)</para>
-
- <para>Some times, your modem might refuse to drop the carrier
- (mine often does). In that case, simply start kermit and quit
- it again. It usually goes out on the second try.</para>
- </sect3>
-
- <sect3>
- <title>Troubleshooting</title>
-
- <para>If it does not work, feel free to ask me. The things that
- people tripped over so far:</para>
-
- <itemizedlist>
- <listitem>
- <para>Not using <option>-c</option> or <option>-a</option> in
- slattach (I have no idea why this can be fatal, but adding
- this flag solved the problem for at least one
- person).</para>
- </listitem>
-
- <listitem>
- <para>Using <option>s10</option> instead of
- <option>sl0</option> (might be hard to see the difference on
- some fonts).</para>
- </listitem>
-
- <listitem>
- <para>Try <command>ifconfig sl0</command> to see your
- interface status. For example, you might get:</para>
-
- <screen>&prompt.root; <userinput>ifconfig sl0</userinput>
-sl0: flags=10&lt;POINTOPOINT&gt;
- inet 136.152.64.181 --&gt; 136.152.64.1 netmask ffffff00</screen>
- </listitem>
-
- <listitem>
- <para>Also, <command>netstat -r</command> will give the
- routing table, in case you get the <quote>no route to
- host</quote> messages from ping. Mine looks like:</para>
-
- <screen>&prompt.root; <userinput>netstat -r</userinput>
-Routing tables
-Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
-
-(root node)
-(root node)
-
-Route Tree for Protocol Family inet:
-(root node) =&gt;
-default inr-3.Berkeley.EDU UG 8 224515 sl0 - -
-localhost.Berkel localhost.Berkeley UH 5 42127 lo0 - 0.438
-inr-3.Berkeley.E silvia.HIP.Berkele UH 1 0 sl0 - -
-silvia.HIP.Berke localhost.Berkeley UGH 34 47641234 lo0 - 0.438
-(root node)</screen>
-
- <para>This is after transferring a bunch of files, your
- numbers should be smaller).</para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
-
- <sect2 id="slips">
- <title>Setting up a SLIP Server</title>
-
- <para>This document provides suggestions for setting up SLIP Server
- services on a FreeBSD system, which typically means configuring
- your system to automatically startup connections upon login for
- remote SLIP clients. The author has written this document based
- on his experience; however, as your system and needs may be
- different, this document may not answer all of your questions, and
- the author cannot be responsible if you damage your system or lose
- data due to attempting to follow the suggestions here.</para>
-
- <sect3 id="slips-prereqs">
- <title>Prerequisites</title>
-
- <para>This document is very technical in nature, so background
- knowledge is required. It is assumed that you are familiar with
- the TCP/IP network protocol, and in particular, network and node
- addressing, network address masks, subnetting, routing, and
- routing protocols, such as RIP. Configuring SLIP services on a
- dial-up server requires a knowledge of these concepts, and if
- you are not familiar with them, please read a copy of either
- Craig Hunt's <emphasis>TCP/IP Network Administration</emphasis>
- published by O'Reilly &amp; Associates, Inc. (ISBN Number
- 0-937175-82-X), or Douglas Comer's books on the TCP/IP
- protocol.</para>
-
- <para>It is further assumed that you have already setup your
- modem(s) and configured the appropriate system files to allow
- logins through your modems. If you have not prepared your
- system for this yet, please see the tutorial for configuring
- dialup services; if you have a World-Wide Web browser available,
- browse the list of tutorials at <ulink
- url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink>.
- You may also want to check the manual pages for &man.sio.4; for
- information on the serial port device driver and &man.ttys.5;,
- &man.gettytab.5;, &man.getty.8;, &amp; &man.init.8; for
- information relevant to configuring the system to accept logins
- on modems, and perhaps &man.stty.1; for information on setting
- serial port parameters (such as <literal>clocal</literal> for
- directly-connected serial interfaces).</para>
- </sect3>
-
- <sect3>
- <title>Quick Overview</title>
-
- <para>In its typical configuration, using FreeBSD as a SLIP server
- works as follows: a SLIP user dials up your FreeBSD SLIP Server
- system and logs in with a special SLIP login ID that uses
- <filename>/usr/sbin/sliplogin</filename> as the special user's
- shell. The <command>sliplogin</command> program browses the
- file <filename>/etc/sliphome/slip.hosts</filename> to find a
- matching line for the special user, and if it finds a match,
- connects the serial line to an available SLIP interface and then
- runs the shell script
- <filename>/etc/sliphome/slip.login</filename> to configure the
- SLIP interface.</para>
-
- <sect4>
- <title>An Example of a SLIP Server Login</title>
-
- <para>For example, if a SLIP user ID were
- <username>Shelmerg</username>, <username>Shelmerg</username>'s
- entry in <filename>/etc/master.passwd</filename> would look
- something like this (except it would be all on one
- line):</para>
-
- <programlisting>Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting>
-
- <para>When <username>Shelmerg</username> logs in,
- <command>sliplogin</command> will search
- <filename>/etc/sliphome/slip.hosts</filename> for a line that
- had a matching user ID; for example, there may be a line in
- <filename>/etc/sliphome/slip.hosts</filename> that
- reads:</para>
-
- <programlisting>Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
-
- <para><command>sliplogin</command> will find that matching line,
- hook the serial line into the next available SLIP interface,
- and then execute <filename>/etc/sliphome/slip.login</filename>
- like this:</para>
-
- <programlisting>/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
-
- <para>If all goes well,
- <filename>/etc/sliphome/slip.login</filename> will issue an
- <command>ifconfig</command> for the SLIP interface to which
- <command>sliplogin</command> attached itself (slip interface
- 0,in the above example, which was the first parameter in the
- list given to <filename>slip.login</filename>) to set the
- local IP address (<hostid>dc-slip</hostid>), remote IP address
- (<hostid>sl-helmer</hostid>), network mask for the SLIP
- interface (<hostid role="netmask">0xfffffc00</hostid>), and
- any additional flags (<literal>autocomp</literal>). If
- something goes wrong, <command>sliplogin</command> usually
- logs good informational messages via the
- <literal>daemon</literal> syslog facility, which usually goes
- into <filename>/var/log/messages</filename> (see the manual
- pages for &man.syslogd.8; and &man.syslog.conf.5; and perhaps
- check <filename>/etc/syslog.conf</filename> to see to which
- files <command>syslogd</command> is logging).</para>
-
- <para>OK, enough of the examples &mdash; let us dive into
- setting up the system.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Kernel Configuration</title>
-
- <para>FreeBSD's default kernels usually come with two SLIP
- interfaces defined (<devicename>sl0</devicename> and
- <devicename>sl1</devicename>); you can use <command>netstat
- -i</command> to see whether these interfaces are defined in your
- kernel.</para>
-
- <para>Sample output from <command>netstat -i</command>:</para>
-
- <screen>Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
-ed0 1500 &lt;Link&gt;0.0.c0.2c.5f.4a 291311 0 174209 0 133
-ed0 1500 138.247.224 ivory 291311 0 174209 0 133
-lo0 65535 &lt;Link&gt; 79 0 79 0 0
-lo0 65535 loop localhost 79 0 79 0 0
-sl0* 296 &lt;Link&gt; 0 0 0 0 0
-sl1* 296 &lt;Link&gt; 0 0 0 0 0</screen>
-
- <para>The <devicename>sl0</devicename> and
- <devicename>sl1</devicename> interfaces shown in
- <command>netstat -i</command>'s output indicate that there are
- two SLIP interfaces built into the kernel. (The asterisks after
- the <literal>sl0</literal> and <literal>sl1</literal> indicate
- that the interfaces are <quote>down</quote>.)</para>
-
- <para>However, FreeBSD's default kernels do not come configured
- to forward packets (ie, your FreeBSD machine will not act as a
- router) due to Internet RFC requirements for Internet hosts (see
- RFCs 1009 [Requirements for Internet Gateways], 1122
- [Requirements for Internet Hosts &mdash; Communication Layers],
- and perhaps 1127 [A Perspective on the Host Requirements RFCs]),
- so if you want your FreeBSD SLIP Server to act as a router, you
- will have to edit the <filename>/etc/rc.conf</filename> file and
- change the setting of the <literal>gateway_enable</literal> variable to
- <option>YES</option>.</para>
-
- <para>You will then need to reboot for the new settings to take
- effect.</para>
-
- <para>You will notice that near the end of the default kernel
- configuration file (<filename>/sys/i386/conf/GENERIC</filename>)
- is a line that reads:</para>
-
- <programlisting>pseudo-device sl 2</programlisting>
-
- <para>This is the line that defines the number of SLIP devices
- available in the kernel; the number at the end of the line is
- the maximum number of SLIP connections that may be operating
- simultaneously.</para>
-
- <para>Please refer to <link linkend="kernelconfig">Configuring the
- FreeBSD Kernel</link> for help in reconfiguring your
- kernel.</para>
- </sect3>
-
- <sect3>
- <title>Sliplogin Configuration</title>
-
- <para>As mentioned earlier, there are three files in the
- <filename>/etc/sliphome</filename> directory that are part of
- the configuration for <filename>/usr/sbin/sliplogin</filename>
- (see &man.sliplogin.8; for the actual manual page for
- <command>sliplogin</command>): <filename>slip.hosts</filename>,
- which defines the SLIP users &amp; their associated IP
- addresses; <filename>slip.login</filename>, which usually just
- configures the SLIP interface; and (optionally)
- <filename>slip.logout</filename>, which undoes
- <filename>slip.login</filename>'s effects when the serial
- connection is terminated.</para>
-
- <sect4>
- <title><filename>slip.hosts</filename> Configuration</title>
-
- <para><filename>/etc/sliphome/slip.hosts</filename> contains
- lines which have at least four items, separated by
- whitespace:</para>
-
- <itemizedlist>
- <listitem>
- <para>SLIP user's login ID</para>
- </listitem>
-
- <listitem>
- <para>Local address (local to the SLIP server) of the SLIP
- link</para>
- </listitem>
-
- <listitem>
- <para>Remote address of the SLIP link</para>
- </listitem>
-
- <listitem>
- <para>Network mask</para>
- </listitem>
- </itemizedlist>
-
- <para>The local and remote addresses may be host names (resolved
- to IP addresses by <filename>/etc/hosts</filename> or by the
- domain name service, depending on your specifications in
- <filename>/etc/host.conf</filename>), and the
- network mask may be a name that can be resolved by a lookup
- into <filename>/etc/networks</filename>. On a sample system,
- <filename>/etc/sliphome/slip.hosts</filename> looks like
- this:</para>
-
- <programlisting>#
-# login local-addr remote-addr mask opt1 opt2
-# (normal,compress,noicmp)
-#
-Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting>
-
- <para>At the end of the line is one or more of the
- options.</para>
-
- <itemizedlist>
- <listitem>
- <para><option>normal</option> &mdash; no header
- compression</para>
- </listitem>
-
- <listitem>
- <para><option>compress</option> &mdash; compress
- headers</para>
- </listitem>
-
- <listitem>
- <para><option>autocomp</option> &mdash; compress headers if
- the remote end allows it</para>
- </listitem>
-
- <listitem>
- <para><option>noicmp</option> &mdash; disable ICMP packets
- (so any <quote>ping</quote> packets will be dropped instead
- of using up your bandwidth)</para>
- </listitem>
- </itemizedlist>
-
- <para>Note that <command>sliplogin</command> under early releases
- of FreeBSD 2 ignored the options that FreeBSD 1.x recognized,
- so the options <option>normal</option>,
- <option>compress</option>, <option>autocomp</option>, and
- <option>noicmp</option> had no effect until support was added
- in FreeBSD 2.2 (unless your <filename>slip.login</filename>
- script included code to make use of the flags).</para>
-
- <para>Your choice of local and remote addresses for your SLIP
- links depends on whether you are going to dedicate a TCP/IP
- subnet or if you are going to use <quote>proxy ARP</quote> on
- your SLIP server (it is not <quote>true</quote> proxy ARP, but
- that is the terminology used in this document to describe it).
- If you are not sure which method to select or how to assign IP
- addresses, please refer to the TCP/IP books referenced in the
- <link linkend="slips-prereqs">slips-prereqs</link> section
- and/or consult your IP network manager.</para>
-
- <para>If you are going to use a separate subnet for your SLIP
- clients, you will need to allocate the subnet number out of
- your assigned IP network number and assign each of your SLIP
- client's IP numbers out of that subnet. Then, you will
- probably either need to configure a static route to the SLIP
- subnet via your SLIP server on your nearest IP router, or
- install <command>gated</command> on your FreeBSD SLIP server
- and configure it to talk the appropriate routing protocols to
- your other routers to inform them about your SLIP server's
- route to the SLIP subnet.</para>
-
- <para>Otherwise, if you will use the <quote>proxy ARP</quote>
- method, you will need to assign your SLIP client's IP
- addresses out of your SLIP server's Ethernet subnet, and you
- will also need to adjust your
- <filename>/etc/sliphome/slip.login</filename> and
- <filename>/etc/sliphome/slip.logout</filename> scripts to use
- &man.arp.8; to manage the proxy-ARP entries in the SLIP
- server's ARP table.</para>
- </sect4>
-
- <sect4>
- <title><filename>slip.login</filename> Configuration</title>
-
- <para>The typical <filename>/etc/sliphome/slip.login</filename>
- file looks like this:</para>
-
- <programlisting>#!/bin/sh -
-#
-# @(#)slip.login 5.1 (Berkeley) 7/1/90
-
-#
-# generic login file for a slip line. sliplogin invokes this with
-# the parameters:
-# 1 2 3 4 5 6 7-n
-# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
-#
-/sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting>
-
- <para>This <filename>slip.login</filename> file merely
- <command>ifconfig</command>'s the appropriate SLIP interface
- with the local and remote addresses and network mask of the
- SLIP interface.</para>
-
- <para>If you have decided to use the <quote>proxy ARP</quote>
- method (instead of using a separate subnet for your SLIP
- clients), your <filename>/etc/sliphome/slip.login</filename>
- file will need to look something like this:</para>
-
- <programlisting>#!/bin/sh -
-#
-# @(#)slip.login 5.1 (Berkeley) 7/1/90
-
-#
-# generic login file for a slip line. sliplogin invokes this with
-# the parameters:
-# 1 2 3 4 5 6 7-n
-# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
-#
-/sbin/ifconfig sl$1 inet $4 $5 netmask $6
-# Answer ARP requests for the SLIP client with our Ethernet addr
-/usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting>
-
- <para>The additional line in this
- <filename>slip.login</filename>, <command>arp -s
- &#36;5 00:11:22:33:44:55 pub</command>, creates an ARP entry
- in the SLIP server's ARP table. This ARP entry causes the
- SLIP server to respond with the SLIP server's Ethernet MAC
- address whenever a another IP node on the Ethernet asks to
- speak to the SLIP client's IP address.</para>
-
- <para>When using the example above, be sure to replace the
- Ethernet MAC address (<hostid
- role="mac">00:11:22:33:44:55</hostid>) with the MAC address of
- your system's Ethernet card, or your <quote>proxy ARP</quote>
- will definitely not work! You can discover your SLIP server's
- Ethernet MAC address by looking at the results of running
- <command>netstat -i</command>; the second line of the output
- should look something like:</para>
-
- <screen>ed0 1500 &lt;Link&gt;0.2.c1.28.5f.4a 191923 0 129457 0 116</screen>
-
- <para>This indicates that this particular system's Ethernet MAC
- address is <hostid role="mac">00:02:c1:28:5f:4a</hostid>
- &mdash; the periods in the Ethernet MAC address given by
- <command>netstat -i</command> must be changed to colons and
- leading zeros should be added to each single-digit hexadecimal
- number to convert the address into the form that &man.arp.8;
- desires; see the manual page on &man.arp.8; for complete
- information on usage.</para>
-
- <note>
- <para>When you create
- <filename>/etc/sliphome/slip.login</filename> and
- <filename>/etc/sliphome/slip.logout</filename>, the
- <quote>execute</quote> bit (ie, <command>chmod 755
- /etc/sliphome/slip.login /etc/sliphome/slip.logout</command>)
- must be set, or <command>sliplogin</command> will be unable
- to execute it.</para>
- </note>
- </sect4>
-
- <sect4>
- <title><filename>slip.logout</filename> Configuration</title>
-
- <para><filename>/etc/sliphome/slip.logout</filename> is not
- strictly needed (unless you are implementing <quote>proxy
- ARP</quote>), but if you decide to create it, this is an
- example of a basic
- <filename>slip.logout</filename> script:</para>
-
- <programlisting>#!/bin/sh -
-#
-# slip.logout
-
-#
-# logout file for a slip line. sliplogin invokes this with
-# the parameters:
-# 1 2 3 4 5 6 7-n
-# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
-#
-/sbin/ifconfig sl$1 down</programlisting>
-
- <para>If you are using <quote>proxy ARP</quote>, you will want to
- have <filename>/etc/sliphome/slip.logout</filename> remove the
- ARP entry for the SLIP client:</para>
-
- <programlisting>#!/bin/sh -
-#
-# @(#)slip.logout
-
-#
-# logout file for a slip line. sliplogin invokes this with
-# the parameters:
-# 1 2 3 4 5 6 7-n
-# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
-#
-/sbin/ifconfig sl$1 down
-# Quit answering ARP requests for the SLIP client
-/usr/sbin/arp -d $5</programlisting>
-
- <para>The <command>arp -d &#36;5</command> removes the ARP entry
- that the <quote>proxy ARP</quote>
- <filename>slip.login</filename> added when the SLIP client
- logged in.</para>
-
- <para>It bears repeating: make sure
- <filename>/etc/sliphome/slip.logout</filename> has the execute
- bit set for after you create it (ie, <command>chmod 755
- /etc/sliphome/slip.logout</command>).</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Routing Considerations</title>
-
- <para>If you are not using the <quote>proxy ARP</quote> method for
- routing packets between your SLIP clients and the rest of your
- network (and perhaps the Internet), you will probably either
- have to add static routes to your closest default router(s) to
- route your SLIP client subnet via your SLIP server, or you will
- probably need to install and configure <command>gated</command>
- on your FreeBSD SLIP server so that it will tell your routers
- via appropriate routing protocols about your SLIP subnet.</para>
-
- <sect4>
- <title>Static Routes</title>
-
- <para>Adding static routes to your nearest default routers can
- be troublesome (or impossible, if you do not have authority to
- do so...). If you have a multiple-router network in your
- organization, some routers, such as Cisco and Proteon, may
- not only need to be configured with the static route to the
- SLIP subnet, but also need to be told which static routes to
- tell other routers about, so some expertise and
- troubleshooting/tweaking may be necessary to get
- static-route-based routing to work.</para>
- </sect4>
-
- <sect4>
- <title>Running <command>gated</command></title>
-
- <para>An alternative to the headaches of static routes is to
- install <command>gated</command> on your FreeBSD SLIP server
- and configure it to use the appropriate routing protocols
- (RIP/OSPF/BGP/EGP) to tell other routers about your SLIP
- subnet. You can use <command>gated</command> from the <link
- linkend="ports">ports collection</link> or retrieve and build
- it yourself from <ulink
- url="ftp://ftp.gated.merit.edu/research.and.development/gated/">the
- GateD anonymous ftp site</ulink>; the current version
- as of this writing is
- <filename>gated-R3_5Alpha_8.tar.Z</filename>, which includes
- support for FreeBSD <quote>out-of-the-box</quote>. Complete
- information and documentation on <command>gated</command> is
- available on the Web starting at <ulink
- url="http://www.gated.merit.edu/">the Merit GateD
- Consortium</ulink>. Compile and install it, and then write a
- <filename>/etc/gated.conf</filename> file to configure your
- gated; here is a sample, similar to what the author used on a
- FreeBSD SLIP server:</para>
-
- <programlisting>#
-# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5
-# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface
-#
-#
-# tracing options
-#
-traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;
-
-rip yes {
- interface sl noripout noripin ;
- interface ed ripin ripout version 1 ;
- traceoptions route ;
-} ;
-
-#
-# Turn on a bunch of tracing info for the interface to the kernel:
-kernel {
- traceoptions remnants request routes info interface ;
-} ;
-
-#
-# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
-#
-
-export proto rip interface ed {
- proto direct {
- <replaceable>xxx.xxx.yy</replaceable> mask 255.255.252.0 metric 1; # SLIP connections
- } ;
-} ;
-
-#
-# Accept routes from RIP via ed Ethernet interfaces
-
-import proto rip interface ed {
- all ;
-} ;</programlisting>
-
- <para>The above sample <filename>gated.conf</filename> file
- broadcasts routing information regarding the SLIP subnet
- <replaceable>xxx.xxx.yy</replaceable> via RIP onto the
- Ethernet; if you are using a different Ethernet driver than
- the <devicename>ed</devicename> driver, you will need to
- change the references to the <devicename>ed</devicename>
- interface appropriately. This sample file also sets up
- tracing to <filename>/var/tmp/gated.output</filename> for
- debugging <command>gated</command>'s activity; you can
- certainly turn off the tracing options if
- <command>gated</command> works OK for you. You will need to
- change the <replaceable>xxx.xxx.yy</replaceable>'s into the
- network address of your own SLIP subnet (be sure to change the
- net mask in the <literal>proto direct</literal> clause as
- well).</para>
-
- <para>When you get <command>gated</command> built and installed
- and create a configuration file for it, you will need to run
- <command>gated</command> in place of <command>routed</command>
- on your FreeBSD system; change the
- <filename>routed/gated</filename> startup parameters in
- <filename>/etc/netstart</filename> as appropriate for your
- system. Please see the manual page for
- <command>gated</command> for information on
- <command>gated</command>'s command-line parameters.</para>
- </sect4>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/printing/chapter.sgml b/en_US.ISO8859-1/books/handbook/printing/chapter.sgml
deleted file mode 100644
index 7a03a82791..0000000000
--- a/en_US.ISO8859-1/books/handbook/printing/chapter.sgml
+++ /dev/null
@@ -1,4561 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/printing/chapter.sgml,v 1.31 2001/04/09 00:33:55 dd Exp $
--->
-
-<chapter id="printing">
- <title>Printing</title>
-
- <para><emphasis>Contributed by &a.kelly;, 30 September 1995.
- Restructured and updated by &a.jim;, March 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>In order to use printers with FreeBSD, you will need to set them
- up to work with the Berkeley line printer spooling system, also
- known as the LPD spooling system. It is the standard printer
- control system in FreeBSD. This chapter introduces the LPD spooling
- system, often simply called LPD, and will guide you through its
- configuration.</para>
-
- <para>If you are already familiar with LPD or another printer spooling
- system, you may wish to skip to section <link
- linkend="printing-intro-setup">Setting up the spooling
- system</link>.</para>
- </sect1>
-
- <sect1 id="printing-intro-spooler">
- <title>Introduction</title>
-
- <para>LPD controls everything about a host's printers. It is
- responsible for a number of things:</para>
-
- <itemizedlist>
- <listitem>
- <para>It controls access to attached printers and printers
- attached to other hosts on the network.</para>
- </listitem>
-
- <listitem>
- <para>It enables users to submit files to be printed; these
- submissions are known as <emphasis>jobs</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>It prevents multiple users from accessing a printer at the
- same time by maintaining a <emphasis>queue</emphasis> for each
- printer.</para>
- </listitem>
-
- <listitem>
- <para>It can print <emphasis>header pages</emphasis> (also known
- as <emphasis>banner</emphasis> or <emphasis>burst</emphasis>
- pages) so users can easily find jobs they have printed in a
- stack of printouts.</para>
- </listitem>
-
- <listitem>
- <para>It takes care of communications parameters for printers
- connected on serial ports.</para>
- </listitem>
-
- <listitem>
- <para>It can send jobs over the network to a LPD spooler on
- another host.</para>
- </listitem>
-
- <listitem>
- <para>It can run special filters to format jobs to be printed for
- various printer languages or printer capabilities.</para>
- </listitem>
-
- <listitem>
- <para>It can account for printer usage.</para>
- </listitem>
- </itemizedlist>
-
- <para>Through a configuration file
- (<filename>/etc/printcap</filename>), and by providing the special
- filter programs, you can enable the LPD system to do all or some
- subset of the above for a great variety of printer hardware.</para>
-
- <sect2 id="printing-intro-why">
- <title>Why You Should Use the Spooler</title>
-
- <para>If you are the sole user of your system, you may be wondering
- why you should bother with the spooler when you do not need access
- control, header pages, or printer accounting. While it is
- possible to enable direct access to a printer, you should use the
- spooler anyway since:</para>
-
- <itemizedlist>
- <listitem>
- <para>LPD prints jobs in the background; you do not have to wait
- for data to be copied to the printer.</para>
- </listitem>
-
- <listitem>
- <para>LPD can conveniently run a job to be printed through
- filters to add date/time headers or convert a special file
- format (such as a TeX DVI file) into a format the printer will
- understand. You will not have to do these steps
- manually.</para>
- </listitem>
-
- <listitem>
- <para>Many free and commercial programs that provide a print
- feature usually expect to talk to the spooler on your system.
- By setting up the spooling system, you will more easily
- support other software you may later add or already
- have.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="printing-intro-setup">
- <title>Basic Setup</title>
-
- <para>To use printers with the LPD spooling system, you will need to
- set up both your printer hardware and the LPD software. This
- document describes two levels of setup:</para>
-
- <itemizedlist>
- <listitem>
- <para>See section <link linkend="printing-simple">Simple Printer
- Setup</link> to learn how to connect a printer, tell LPD how to
- communicate with it, and print plain text files to the
- printer.</para>
- </listitem>
-
- <listitem>
- <para>See section <link linkend="printing-advanced">Advanced
- Printer Setup</link> to find out how to print a variety of
- special file formats, to print header pages, to print across a
- network, to control access to printers, and to do printer
- accounting.</para>
- </listitem>
- </itemizedlist>
-
- <sect2 id="printing-simple">
- <title>Simple Printer Setup</title>
-
- <para>This section tells how to configure printer hardware and the
- LPD software to use the printer. It teaches the basics:</para>
-
- <itemizedlist>
- <listitem>
- <para>Section <link linkend="printing-hardware">Hardware
- Setup</link> gives some hints on connecting the printer to a
- port on your computer.</para>
- </listitem>
-
- <listitem>
- <para>Section <link linkend="printing-software">Software
- Setup</link> shows how to setup the LPD spooler configuration
- file (<filename>/etc/printcap</filename>).</para>
- </listitem>
- </itemizedlist>
-
- <para>If you are setting up a printer that uses a network protocol
- to accept data to print instead of a serial or parallel interface,
- see <link linkend="printing-advanced-network-net-if">Printers With
- Networked Data Stream Interfaces</link>.</para>
-
- <para>Although this section is called <quote>Simple Printer
- Setup</quote>, it is actually fairly complex. Getting the printer
- to work with your computer and the LPD spooler is the hardest
- part. The advanced options like header pages and accounting are
- fairly easy once you get the printer working.</para>
-
- <sect3 id="printing-hardware">
- <title>Hardware Setup</title>
-
- <para>This section tells about the various ways you can connect a
- printer to your PC. It talks about the kinds of ports and
- cables, and also the kernel configuration you may need to enable
- FreeBSD to speak to the printer.</para>
-
- <para>If you have already connected your printer and have
- successfully printed with it under another operating system, you
- can probably skip to section <link
- linkend="printing-software">Software Setup</link>.</para>
-
- <sect4 id="printing-ports">
- <title>Ports and Cables</title>
-
- <para>Nearly all printers you can get for a PC today support one
- or both of the following interfaces:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Serial</emphasis> interfaces use a serial
- port on your computer to send data to the printer. Serial
- interfaces are common in the computer industry and cables
- are readily available and also easy to construct. Serial
- interfaces sometimes need special cables and might require
- you to configure somewhat complex communications
- options.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Parallel</emphasis> interfaces use a
- parallel port on your computer to send data to the
- printer. Parallel interfaces are common in the PC market.
- Cables are readily available but more difficult to
- construct by hand. There are usually no communications
- options with parallel interfaces, making their
- configuration exceedingly simple.</para>
-
- <para>Parallel interfaces are sometimes known as
- <quote>Centronics</quote> interfaces, named after the
- connector type on the printer.</para>
- </listitem>
- </itemizedlist>
-
- <para>In general, serial interfaces are slower than parallel
- interfaces. Parallel interfaces usually offer just
- one-way communication (computer to printer) while serial
- gives you two-way. Many newer parallel ports and printers
- can communicate in both directions under FreeBSD when a
- IEEE1284 compliant cable is used.</para>
-
- <para>Usually, the only time you need two-way communication with
- the printer is if the printer speaks PostScript. PostScript
- printers can be very verbose. In fact, PostScript jobs are
- actually programs sent to the printer; they need not produce
- paper at all and may return results directly to the computer.
- PostScript also uses two-way communication to tell the
- computer about problems, such as errors in the PostScript
- program or paper jams. Your users may be appreciative of such
- information. Furthermore, the best way to do effective
- accounting with a PostScript printer requires two-way
- communication: you ask the printer for its page count (how
- many pages it has printed in its lifetime), then send the
- user's job, then ask again for its page count. Subtract the
- two values and you know how much paper to charge the
- user.</para>
- </sect4>
-
- <sect4 id="printing-parallel">
- <title>Parallel Ports</title>
-
- <para>To hook up a printer using a parallel interface, connect
- the Centronics cable between the printer and the computer.
- The instructions that came with the printer, the computer, or
- both should give you complete guidance.</para>
-
- <para>Remember which parallel port you used on the computer.
- The first parallel port is <filename>/dev/lpt0</filename> to
- FreeBSD; the second is <filename>/dev/lpt1</filename>, and so
- on.</para>
- </sect4>
-
- <sect4 id="printing-serial">
- <title>Serial Ports</title>
-
- <para>To hook up a printer using a serial interface, connect the
- proper serial cable between the printer and the computer. The
- instructions that came with the printer, the computer, or both
- should give you complete guidance.</para>
-
- <para>If you are unsure what the <quote>proper serial
- cable</quote> is, you may wish to try one of the following
- alternatives:</para>
-
- <itemizedlist>
- <listitem>
- <para>A <emphasis>modem</emphasis> cable connects each pin
- of the connector on one end of the cable straight through
- to its corresponding pin of the connector on the other
- end. This type of cable is also known as a
- <quote>DTE-to-DCE</quote> cable.</para>
- </listitem>
-
- <listitem>
- <para>A <emphasis>null-modem</emphasis> cable connects some
- pins straight through, swaps others (send data to receive
- data, for example), and shorts some internally in each
- connector hood. This type of cable is also known as a
- <quote>DTE-to-DTE</quote> cable.</para>
- </listitem>
-
- <listitem>
- <para>A <emphasis>serial printer</emphasis> cable, required
- for some unusual printers, is like the null modem cable,
- but sends some signals to their counterparts instead of
- being internally shorted.</para>
- </listitem>
- </itemizedlist>
-
- <para>You should also set up the communications parameters for
- the printer, usually through front-panel controls or DIP
- switches on the printer. Choose the highest
- <literal>bps</literal> (bits per second, sometimes
- <emphasis>baud rate</emphasis>) rate that both your computer
- and the printer can support. Choose 7 or 8 data bits; none,
- even, or odd parity; and 1 or 2 stop bits. Also choose a flow
- control protocol: either none, or XON/XOFF (also known as
- <quote>in-band</quote> or <quote>software</quote>) flow control.
- Remember these settings for the software configuration that
- follows.</para>
- </sect4>
- </sect3>
-
- <sect3 id="printing-software">
- <title>Software Setup</title>
-
- <para>This section describes the software setup necessary to print
- with the LPD spooling system in FreeBSD.</para>
-
- <para>Here is an outline of the steps involved:</para>
-
- <procedure>
- <step>
- <para>Configure your kernel, if necessary, for the port you
- are using for the printer; section <link
- linkend="printing-kernel">Kernel Configuration</link> tells
- you what you need to do.</para>
- </step>
-
- <step>
- <para>Set the communications mode for the parallel port, if
- you are using a parallel port; section <link
- linkend="printing-parallel-port-mode">Setting the
- Communication Mode for the Parallel Port</link> gives
- details.</para>
- </step>
-
- <step>
- <para>Test if the operating system can send data to the printer.
- Section <link linkend="printing-testing">Checking Printer
- Communications</link> gives some suggestions on how to do
- this.</para>
- </step>
-
- <step>
- <para>Set up LPD for the printer by modifying the file
- <filename>/etc/printcap</filename>. You will find out how
- to do this later in this chapter.</para>
- </step>
- </procedure>
-
- <sect4 id="printing-kernel">
- <title>Kernel Configuration</title>
-
- <para>The operating system kernel is compiled to work with a
- specific set of devices. The serial or parallel interface for
- your printer is a part of that set. Therefore, it might be
- necessary to add support for an additional serial or parallel
- port if your kernel is not already configured for one.</para>
-
- <para>To find out if the kernel you are currently using supports
- a serial interface, type:</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep sio<replaceable>N</replaceable></userinput></screen>
-
- <para>Where <replaceable>N</replaceable> is the number of the
- serial port, starting from zero. If you see output similar to
- the following:</para>
-
- <screen>sio2 at 0x3e8-0x3ef irq 5 on isa
-sio2: type 16550A</screen>
-
- <para>then the kernel supports the port.</para>
-
- <para>To find out if the kernel supports a parallel interface,
- type:</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Where <replaceable>N</replaceable> is the number of the
- parallel port, starting from zero. If you see output similar
- to the following <screen>lpt0 at 0x378-0x37f on isa</screen>
- then the kernel supports the port.</para>
-
- <para>You might have to reconfigure your kernel in order for the
- operating system to recognize and use the parallel or serial
- port you are using for the printer.</para>
-
- <para>To add support for a serial port, see the section on
- kernel configuration. To add support for a parallel port, see
- that section <emphasis>and</emphasis> the section that
- follows.</para>
- </sect4>
- </sect3>
-
- <sect3 id="printing-dev-ports">
- <title>Adding <filename>/dev</filename> Entries for the
- Ports</title>
-
- <para>Even though the kernel may support communication along a
- serial or parallel port, you will still need a software
- interface through which programs running on the system can
- send and receive data. That is what entries in the
- <filename>/dev</filename> directory are for.</para>
-
- <para><emphasis>To add a <filename>/dev</filename> entry for a
- port:</emphasis></para>
-
- <procedure>
- <step>
- <para>Become root with the &man.su.1; command. Enter the
- root password when prompted.</para>
- </step>
-
- <step>
- <para>Change to the <filename>/dev</filename>
- directory:</para>
-
- <screen>&prompt.root; cd <filename>/dev</filename></screen>
- </step>
-
- <step>
- <para>Type:</para>
-
- <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>port</replaceable></userinput></screen>
-
- <para>Where <replaceable>port</replaceable> is the device
- entry for the port you want to make. Use
- <literal>lpt0</literal> for the first parallel port,
- <literal>lpt1</literal> for the second, and so on; use
- <literal>ttyd0</literal> for the first serial port,
- <literal>ttyd1</literal> for the second, and so on.</para>
- </step>
-
- <step>
- <para>Type:</para>
-
- <screen>&prompt.root; <userinput>ls -l <replaceable>port</replaceable></userinput></screen>
-
- <para>to make sure the device entry got created.</para>
- </step>
- </procedure>
-
- <sect4 id="printing-parallel-port-mode">
- <title>Setting the Communication Mode for the Parallel
- Port</title>
-
- <para>When you are using the parallel interface, you can choose
- whether FreeBSD should use interrupt-driven or polled
- communication with the printer.</para>
-
- <itemizedlist>
- <listitem>
- <para>The <emphasis>interrupt-driven</emphasis> method is
- the default with the GENERIC kernel. With this method,
- the operating system uses an IRQ line to determine when
- the printer is ready for data.</para>
- </listitem>
-
- <listitem>
- <para>The <emphasis>polled</emphasis> method directs the
- operating system to repeatedly ask the printer if it is
- ready for more data. When it responds ready, the kernel
- sends more data.</para>
- </listitem>
- </itemizedlist>
-
- <para>The interrupt-driven method is somewhat faster but uses up
- a precious IRQ line. You should use whichever one
- works.</para>
-
- <para>You can set the communications mode in two ways: by
- configuring the kernel or by using the &man.lptcontrol.8;
- program.</para>
-
- <para><emphasis>To set the communications mode by configuring
- the kernel:</emphasis></para>
-
- <procedure>
- <step>
- <para>Edit your kernel configuration file. Look for or add
- an <literal>lpt0</literal> entry. If you are setting up
- the second parallel port, use <literal>lpt1</literal>
- instead. Use <literal>lpt2</literal> for the third port,
- and so on.</para>
-
- <itemizedlist>
- <listitem>
- <para>If you want interrupt-driven mode, add the
- <literal>irq</literal> specifier:</para>
-
- <programlisting>device lpt0 at isa? port? tty irq <replaceable>N</replaceable> vector lptintr</programlisting>
-
- <para>Where <replaceable>N</replaceable> is the IRQ
- number for your computer's parallel port.</para>
- </listitem>
-
- <listitem>
- <para>If you want polled mode, do not add the
- <literal>irq</literal> specifier:</para>
-
- <programlisting>device lpt0 at isa? port? tty vector lptintr</programlisting>
- </listitem>
- </itemizedlist>
- </step>
-
- <step>
- <para>Save the file. Then configure, build, and install the
- kernel, then reboot. See <link
- linkend="kernelconfig">kernel configuration</link> for
- more details.</para>
- </step>
- </procedure>
-
- <para><emphasis>To set the communications mode with</emphasis>
- &man.lptcontrol.8;:</para>
-
- <procedure>
- <step>
- <para>Type:</para>
-
- <screen>&prompt.root; <userinput>lptcontrol -i -u <replaceable>N</replaceable></userinput></screen>
-
- <para>to set interrupt-driven mode for
- <literal>lpt<replaceable>N</replaceable></literal>.</para>
- </step>
-
- <step>
- <para>Type:</para>
-
- <screen>&prompt.root; <userinput>lptcontrol -p -u <replaceable>N</replaceable></userinput></screen>
-
- <para>to set polled-mode for
- <literal>lpt<replaceable>N</replaceable></literal>.</para>
- </step>
- </procedure>
-
- <para>You could put these commands in your
- <filename>/etc/rc.local</filename> file to set the mode each
- time your system boots. See &man.lptcontrol.8; for more
- information.</para>
- </sect4>
-
- <sect4 id="printing-testing">
- <title>Checking Printer Communications</title>
-
- <para>Before proceeding to configure the spooling system, you
- should make sure the operating system can successfully send
- data to your printer. It is a lot easier to debug printer
- communication and the spooling system separately.</para>
-
- <para>To test the printer, we will send some text to it. For
- printers that can immediately print characters sent to them,
- the program &man.lptest.1; is perfect: it generates all 96
- printable ASCII characters in 96 lines.</para>
-
- <para>For a PostScript (or other language-based) printer, we
- will need a more sophisticated test. A small PostScript
- program, such as the following, will suffice:</para>
-
- <programlisting>%!PS
-100 100 moveto 300 300 lineto stroke
-310 310 moveto /Helvetica findfont 12 scalefont setfont
-(Is this thing working?) show
-showpage</programlisting>
-
- <note>
- <para>When this document refers to a printer language, it is
- assuming a language like PostScript, and not Hewlett
- Packard's PCL. Although PCL has great functionality, you
- can intermingle plain text with its escape sequences.
- PostScript cannot directly print plain text, and that is the
- kind of printer language for which we must make special
- accommodations.</para>
- </note>
-
- <sect5 id="printing-checking-parallel">
- <title>Checking a Parallel Printer</title>
-
- <para>This section tells you how to check if FreeBSD can
- communicate with a printer connected to a parallel
- port.</para>
-
- <para><emphasis>To test a printer on a parallel
- port:</emphasis></para>
-
- <procedure>
- <step>
- <para>Become root with &man.su.1;.</para>
- </step>
-
- <step>
- <para>Send data to the printer.</para>
-
- <itemizedlist>
- <listitem>
- <para>If the printer can print plain text, then use
- &man.lptest.1;. Type:</para>
-
- <screen>&prompt.root; <userinput>lptest &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Where <replaceable>N</replaceable> is the number
- of the parallel port, starting from zero.</para>
- </listitem>
-
- <listitem>
- <para>If the printer understands PostScript or other
- printer language, then send a small program to the
- printer. Type:</para>
-
- <screen>&prompt.root; <userinput>cat &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Then, line by line, type the program
- <emphasis>carefully</emphasis> as you cannot edit a
- line once you have pressed <literal>RETURN</literal>
- or <literal>ENTER</literal>. When you have finished
- entering the program, press
- <literal>CONTROL+D</literal>, or whatever your end
- of file key is.</para>
-
- <para>Alternatively, you can put the program in a file
- and type:</para>
-
- <screen>&prompt.root; <userinput>cat <replaceable>file</replaceable> &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Where <replaceable>file</replaceable> is the
- name of the file containing the program you want to
- send to the printer.</para>
- </listitem>
- </itemizedlist>
- </step>
- </procedure>
-
- <para>You should see something print. Do not worry if the
- text does not look right; we will fix such things
- later.</para>
- </sect5>
-
- <sect5 id="printing-checking-serial">
- <title>Checking a Serial Printer</title>
-
- <para>This section tells you how to check if FreeBSD can
- communicate with a printer on a serial port.</para>
-
- <para><emphasis>To test a printer on a serial
- port:</emphasis></para>
-
- <procedure>
- <step>
- <para>Become root with &man.su.1;.</para>
- </step>
-
- <step>
- <para>Edit the file <filename>/etc/remote</filename>. Add
- the following entry:</para>
-
- <programlisting>printer:dv=/dev/<replaceable>port</replaceable>:br#<replaceable>bps-rate</replaceable>:pa=<replaceable>parity</replaceable></programlisting>
-
- <para>Where <replaceable>port</replaceable> is the device
- entry for the serial port (<literal>ttyd0</literal>,
- <literal>ttyd1</literal>, etc.),
- <replaceable>bps-rate</replaceable> is the
- bits-per-second rate at which the printer communicates,
- and <replaceable>parity</replaceable> is the parity
- required by the printer (either <literal>even</literal>,
- <literal>odd</literal>, <literal>none</literal>, or
- <literal>zero</literal>).</para>
-
- <para>Here is a sample entry for a printer connected via
- a serial line to the third serial port at 19200 bps with
- no parity:</para>
-
- <programlisting>printer:dv=/dev/ttyd2:br#19200:pa=none</programlisting>
- </step>
-
- <step>
- <para>Connect to the printer with &man.tip.1;.
- Type:</para>
-
- <screen>&prompt.root; <userinput>tip printer</userinput></screen>
-
- <para>If this step does not work, edit the file
- <filename>/etc/remote</filename> again and try using
- <filename>/dev/cuaa<replaceable>N</replaceable></filename>
- instead of
- <filename>/dev/ttyd<replaceable>N</replaceable></filename>.</para>
- </step>
-
- <step>
- <para>Send data to the printer.</para>
-
- <itemizedlist>
- <listitem>
- <para>If the printer can print plain text, then use
- &man.lptest.1;. Type:</para>
-
- <screen><prompt>~</prompt><userinput>$lptest</userinput></screen>
- </listitem>
-
- <listitem>
- <para>If the printer understands PostScript or other
- printer language, then send a small program to the
- printer. Type the program, line by line,
- <emphasis>very carefully</emphasis> as backspacing
- or other editing keys may be significant to the
- printer. You may also need to type a special
- end-of-file key for the printer so it knows it
- received the whole program. For PostScript
- printers, press <literal>CONTROL+D</literal>.</para>
-
- <para>Alternatively, you can put the program in a file
- and type:</para>
-
- <screen><prompt>~</prompt><userinput>&gt;<replaceable>file</replaceable></userinput></screen>
-
- <para>Where <replaceable>file</replaceable> is the
- name of the file containing the program. After
- &man.tip.1; sends the file, press any required
- end-of-file key.</para>
- </listitem>
- </itemizedlist>
- </step>
- </procedure>
-
- <para>You should see something print. Do not worry if the
- text does not look right; we will fix that later.</para>
- </sect5>
- </sect4>
- </sect3>
-
- <sect3 id="printing-printcap">
- <title>Enabling the Spooler: The <filename>/etc/printcap</filename>
- File</title>
-
- <para>At this point, your printer should be hooked up, your kernel
- configured to communicate with it (if necessary), and you have
- been able to send some simple data to the printer. Now, we are
- ready to configure LPD to control access to your printer.</para>
-
- <para>You configure LPD by editing the file
- <filename>/etc/printcap</filename>. The LPD spooling system
- reads this file each time the spooler is used, so updates to the
- file take immediate effect.</para>
-
- <para>The format of the &man.printcap.5; file is straightforward.
- Use your favorite text editor to make changes to
- <filename>/etc/printcap</filename>. The format is identical to
- other capability files like
- <filename>/usr/share/misc/termcap</filename> and
- <filename>/etc/remote</filename>. For complete information
- about the format, see the &man.cgetent.3;.</para>
-
- <para>The simple spooler configuration consists of the following
- steps:</para>
-
- <procedure>
- <step>
- <para>Pick a name (and a few convenient aliases) for the
- printer, and put them in the
- <filename>/etc/printcap</filename> file; see the
- <link linkend="printing-naming">Naming the Printer</link>
- section for more information on naming.</para>
- </step>
-
- <step>
- <para>Turn off header pages (which are on by default) by
- inserting the <literal>sh</literal> capability; see the
- <link linkend="printing-no-header-pages">Suppressing Header
- Pages</link> section for more information.</para>
- </step>
-
- <step>
- <para>Make a spooling directory, and specify its location with
- the <literal>sd</literal> capability; see the <link
- linkend="printing-spooldir">Making the Spooling
- Directory</link> section for more information.</para>
- </step>
-
- <step>
- <para>Set the <filename>/dev</filename> entry to use for the
- printer, and note it in <filename>/etc/printcap</filename>
- with the <literal>lp</literal> capability; see the <link
- linkend="printing-device">Identifying the Printer
- Device</link> for more information. Also, if the printer is
- on a serial port, set up the communication parameters with
- the <literal>fs</literal>, <literal>fc</literal>,
- <literal>xs</literal>, and <literal>xc</literal>
- capabilities; which is discussed in the <link
- linkend="printing-commparam">Configuring Spooler
- Communications Parameters</link> section.</para>
- </step>
-
- <step>
- <para>Install a plain text input filter; see the <link
- linkend="printing-textfilter">Installing the Text
- Filter</link> section for details.</para>
- </step>
-
- <step>
- <para>Test the setup by printing something with the
- &man.lpr.1; command. More details are available in the
- <link linkend="printing-trying">Trying It Out</link> and
- <link
- linkend="printing-troubleshooting">Troubleshooting</link>
- sections.</para>
- </step>
- </procedure>
-
- <note>
- <para>Language-based printers, such as PostScript printers,
- cannot directly print plain text. The simple setup outlined
- above and described in the following sections assumes that if
- you are installing such a printer you will print only files
- that the printer can understand.</para>
- </note>
-
- <para>Users often expect that they can print plain text to any of
- the printers installed on your system. Programs that interface
- to LPD to do their printing usually make the same assumption.
- If you are installing such a printer and want to be able to
- print jobs in the printer language <emphasis>and</emphasis>
- print plain text jobs, you are strongly urged to add an
- additional step to the simple setup outlined above: install an
- automatic plain-text-to-PostScript (or other printer language)
- conversion program. The section entitled <link
- linkend="printing-advanced-if-conversion">Accommodating Plain
- Text Jobs on PostScript Printers</link> tells how to do
- this.</para>
-
- <sect4 id="printing-naming">
- <title>Naming the Printer</title>
-
- <para>The first (easy) step is to pick a name for your printer
- It really does not matter whether you choose functional or
- whimsical names since you can also provide a number of aliases
- for the printer.</para>
-
- <para>At least one of the printers specified in the
- <filename>/etc/printcap</filename> should have the alias
- <literal>lp</literal>. This is the default printer's name.
- If users do not have the <envar>PRINTER</envar> environment
- variable nor specify a printer name on the command line of any
- of the LPD commands, then <literal>lp</literal> will be the
- default printer they get to use.</para>
-
- <para>Also, it is common practice to make the last alias for a
- printer be a full description of the printer, including make
- and model.</para>
-
- <para>Once you have picked a name and some common aliases, put
- them in the <filename>/etc/printcap</filename> file. The name
- of the printer should start in the leftmost column. Separate
- each alias with a vertical bar and put a colon after the last
- alias.</para>
-
- <para>In the following example, we start with a skeletal
- <filename>/etc/printcap</filename> that defines two printers
- (a Diablo 630 line printer and a Panasonic KX-P4455 PostScript
- laser printer):</para>
-
- <programlisting>#
-# /etc/printcap for host rose
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:</programlisting>
-
- <para>In this example, the first printer is named
- <literal>rattan</literal> and has as aliases
- <literal>line</literal>, <literal>diablo</literal>,
- <literal>lp</literal>, and <literal>Diablo 630 Line
- Printer</literal>. Since it has the alias
- <literal>lp</literal>, it is also the default printer. The
- second is named <literal>bamboo</literal>, and has as aliases
- <literal>ps</literal>, <literal>PS</literal>,
- <literal>S</literal>, <literal>panasonic</literal>, and
- <literal>Panasonic KX-P4455 PostScript v51.4</literal>.</para>
- </sect4>
-
- <sect4 id="printing-no-header-pages">
- <title>Suppressing Header Pages</title>
-
- <para>The LPD spooling system will by default print a
- <emphasis>header page</emphasis> for each job. The header
- page contains the user name who requested the job, the host
- from which the job came, and the name of the job, in nice
- large letters. Unfortunately, all this extra text gets in the
- way of debugging the simple printer setup, so we will suppress
- header pages.</para>
-
- <para>To suppress header pages, add the <literal>sh</literal>
- capability to the entry for the printer in
- <filename>/etc/printcap</filename>. Here is an example
- <filename>/etc/printcap</filename> with <literal>sh</literal>
- added:</para>
-
- <programlisting>#
-# /etc/printcap for host rose - no header pages anywhere
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:</programlisting>
-
- <para>Note how we used the correct format: the first line starts
- in the leftmost column, and subsequent lines are indented with
- a single TAB. Every line in an entry except the last ends in
- a backslash character.</para>
- </sect4>
-
- <sect4 id="printing-spooldir">
- <title>Making the Spooling Directory</title>
-
- <para>The next step in the simple spooler setup is to make a
- <emphasis>spooling directory</emphasis>, a directory where
- print jobs reside until they are printed, and where a number
- of other spooler support files live.</para>
-
- <para>Because of the variable nature of spooling directories, it
- is customary to put these directories under
- <filename>/var/spool</filename>. It is not necessary to
- backup the contents of spooling directories, either.
- Recreating them is as simple as running &man.mkdir.1;.</para>
-
- <para>It is also customary to make the directory with a name
- that is identical to the name of the printer, as shown
- below:</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>printer-name</replaceable></userinput></screen>
-
- <para>However, if you have a lot of printers on your network,
- you might want to put the spooling directories under a single
- directory that you reserve just for printing with LPD. We
- will do this for our two example printers
- <literal>rattan</literal> and
- <literal>bamboo</literal>:</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/spool/lpd</userinput>
-&prompt.root; <userinput>mkdir /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>mkdir /var/spool/lpd/bamboo</userinput></screen>
-
- <note>
- <para>If you are concerned about the privacy of jobs that
- users print, you might want to protect the spooling
- directory so it is not publicly accessible. Spooling
- directories should be owned and be readable, writable, and
- searchable by user daemon and group daemon, and no one else.
- We will do this for our example printers:</para>
-
- <screen>&prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/bamboo</userinput></screen>
- </note>
-
- <para>Finally, you need to tell LPD about these directories
- using the <filename>/etc/printcap</filename> file. You
- specify the pathname of the spooling directory with the
- <literal>sd</literal> capability:</para>
-
- <programlisting>#
-# /etc/printcap for host rose - added spooling directories
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:</programlisting>
-
- <para>Note that the name of the printer starts in the first
- column but all other entries describing the printer should be
- indented with a tab and each line escaped with a
- backslash.</para>
-
- <para>If you do not specify a spooling directory with
- <literal>sd</literal>, the spooling system will use
- <filename>/var/spool/lpd</filename> as a default.</para>
- </sect4>
-
- <sect4 id="printing-device">
- <title>Identifying the Printer Device</title>
-
- <para>In the <link linkend="printing-dev-ports">Adding
- <filename>/dev</filename> Entries for the Ports</link>
- section, we identified which entry in the
- <filename>/dev</filename> directory FreeBSD will use to
- communicate with the printer. Now, we tell LPD that
- information. When the spooling system has a job to print, it
- will open the specified device on behalf of the filter program
- (which is responsible for passing data to the printer).</para>
-
- <para>List the <filename>/dev</filename> entry pathname in the
- <filename>/etc/printcap</filename> file using the
- <literal>lp</literal> capability.</para>
-
- <para>In our running example, let us assume that
- <hostid>rattan</hostid> is on the first parallel port, and
- <hostid>bamboo</hostid> is on a sixth serial port; here are
- the additions to <filename>/etc/printcap</filename>:</para>
-
- <programlisting>#
-# /etc/printcap for host rose - identified what devices to use
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:</programlisting>
-
- <para>If you do not specify the <literal>lp</literal> capability
- for a printer in your <filename>/etc/printcap</filename> file,
- LPD uses <filename>/dev/lp</filename> as a default.
- <filename>/dev/lp</filename> currently does not exist in
- FreeBSD.</para>
-
- <para>If the printer you are installing is connected to a
- parallel port, skip to the section entitled, <link
- linkend="printing-textfilter">Installing the Text
- Filter</link>. Otherwise, be sure to follow the instructions
- in the next section.</para>
- </sect4>
-
- <sect4 id="printing-commparam">
- <title>Configuring Spooler Communication Parameters</title>
-
- <para>For printers on serial ports, LPD can set up the bps rate,
- parity, and other serial communication parameters on behalf of
- the filter program that sends data to the printer. This is
- advantageous since:</para>
-
- <itemizedlist>
- <listitem>
- <para>It lets you try different communication parameters by
- simply editing the <filename>/etc/printcap</filename>
- file; you do not have to recompile the filter
- program.</para>
- </listitem>
-
- <listitem>
- <para>It enables the spooling system to use the same filter
- program for multiple printers which may have different
- serial communication settings.</para>
- </listitem>
- </itemizedlist>
-
- <para>The following <filename>/etc/printcap</filename>
- capabilities control serial communication parameters of the
- device listed in the <literal>lp</literal> capability:</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>br#<replaceable>bps-rate</replaceable></literal></term>
-
- <listitem>
- <para>Sets the communications speed of the device to
- <replaceable>bps-rate</replaceable>, where
- <replaceable>bps-rate</replaceable> can be 50, 75, 110,
- 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600,
- 19200, or 38400 bits-per-second.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>fc#<replaceable>clear-bits</replaceable></literal></term>
-
- <listitem>
- <para>Clears the flag bits
- <replaceable>clear-bits</replaceable> in the
- <replaceable>sgttyb</replaceable> structure after
- opening the device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>fs#<replaceable>set-bits</replaceable></literal></term>
-
- <listitem>
- <para>Sets the flag bits
- <replaceable>set-bits</replaceable> in the
- <replaceable>sgttyb</replaceable> structure.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>xc#<replaceable>clear-bits</replaceable></literal></term>
-
- <listitem>
- <para>Clears local mode bits
- <replaceable>clear-bits</replaceable> after opening the
- device.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>xs#<replaceable>set-bits</replaceable></literal></term>
-
- <listitem>
- <para>Sets local mode bits
- <replaceable>set-bits</replaceable>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>For more information on the bits for the
- <literal>fc</literal>, <literal>fs</literal>,
- <literal>xc</literal>, and <literal>xs</literal> capabilities,
- see the file
- <filename>/usr/include/sys/ioctl_compat.h</filename>.</para>
-
- <para>When LPD opens the device specified by the
- <literal>lp</literal> capability, it reads the flag bits in
- the <literal>sgttyb</literal> structure; it clears any bits in
- the <literal>fc</literal> capability, then sets bits in the
- <literal>fs</literal> capability, then applies the resultant
- setting. It does the same for the local mode bits as
- well.</para>
-
- <para>Let us add to our example printer on the sixth serial
- port. We will set the bps rate to 38400. For the flag bits,
- we will set the <literal>TANDEM</literal>,
- <literal>ANYP</literal>, <literal>LITOUT</literal>,
- <literal>FLUSHO</literal>, and <literal>PASS8</literal> flags.
- For the local mode bits, we will set the
- <literal>LITOUT</literal> and <literal>PASS8</literal>
- flags:</para>
-
- <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820:</programlisting>
- </sect4>
-
- <sect4 id="printing-textfilter">
- <title>Installing the Text Filter</title>
-
- <para>We are now ready to tell LPD what text filter to use to
- send jobs to the printer. A <emphasis>text filter</emphasis>,
- also known as an <emphasis>input filter</emphasis>, is a
- program that LPD runs when it has a job to print. When LPD
- runs the text filter for a printer, it sets the filter's
- standard input to the job to print, and its standard output to
- the printer device specified with the <literal>lp</literal>
- capability. The filter is expected to read the job from
- standard input, perform any necessary translation for the
- printer, and write the results to standard output, which will
- get printed. For more information on the text filter, see
- the <link linkend="printing-advanced-filters">Filters</link>
- section.</para>
-
- <para>For our simple printer setup, the text filter can be a
- small shell script that just executes
- <command>/bin/cat</command> to send the job to the printer.
- FreeBSD comes with another filter called
- <filename>lpf</filename> that handles backspacing and
- underlining for printers that might not deal with such
- character streams well. And, of course, you can use any other
- filter program you want. The filter <command>lpf</command> is
- described in detail in section entitled <link
- linkend="printing-advanced-lpf">lpf: a Text
- Filter</link>.</para>
-
- <para>First, let us make the shell script
- <filename>/usr/local/libexec/if-simple</filename> be a simple
- text filter. Put the following text into that file with your
- favorite text editor:</para>
-
- <programlisting>#!/bin/sh
-#
-# if-simple - Simple text input filter for lpd
-# Installed in /usr/local/libexec/if-simple
-#
-# Simply copies stdin to stdout. Ignores all filter arguments.
-
-/bin/cat &amp;&amp; exit 0
-exit 2</programlisting>
-
- <para>Make the file executable:</para>
-
- <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen>
-
- <para>And then tell LPD to use it by specifying it with the
- <literal>if</literal> capability in
- <filename>/etc/printcap</filename>. We will add it to the two
- printers we have so far in the example
- <filename>/etc/printcap</filename>:</para>
-
- <programlisting>#
-# /etc/printcap for host rose - added text filter
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\
- :if=/usr/local/libexec/if-simple:</programlisting>
- </sect4>
-
- <sect4>
- <title>Turn on LPD</title>
-
- <para>&man.lpd.8; is run from <filename>/etc/rc</filename>,
- controlled by the <literal>lpd_enable</literal> variable. This
- variable defaults to <literal>NO</literal>. If you have not done
- so already, add the line:</para>
-
- <programlisting>lpd_enable="YES"</programlisting>
-
- <para>to <filename>/etc/rc.conf</filename>, and then either restart
- your machine, or just run &man.lpd.8;.</para>
-
- <screen>&prompt.root; <userinput>lpd</userinput></screen>
- </sect4>
-
- <sect4 id="printing-trying">
- <title>Trying It Out</title>
-
- <para>You have reached the end of the simple LPD setup.
- Unfortunately, congratulations are not quite yet in order,
- since we still have to test the setup and correct any
- problems. To test the setup, try printing something. To
- print with the LPD system, you use the command &man.lpr.1;,
- which submits a job for printing.</para>
-
- <para>You can combine &man.lpr.1; with the &man.lptest.1;
- program, introduced in section <link
- linkend="printing-testing">Checking Printer
- Communications</link> to generate some test text.</para>
-
- <para><emphasis>To test the simple LPD setup:</emphasis></para>
-
- <para>Type:</para>
-
- <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>printer-name</replaceable></userinput></screen>
-
- <para>Where <replaceable>printer-name</replaceable> is a the
- name of a printer (or an alias) specified in
- <filename>/etc/printcap</filename>. To test the default
- printer, type &man.lpr.1; without any <option>-P</option>
- argument. Again, if you are testing a printer that expects
- PostScript, send a PostScript program in that language instead
- of using &man.lptest.1;. You can do so by putting the program
- in a file and typing <command>lpr
- <replaceable>file</replaceable></command>.</para>
-
- <para>For a PostScript printer, you should get the results of
- the program. If you are using &man.lptest.1;, then your
- results should look like the following:</para>
-
- <programlisting>!"#$%&amp;'()*+,-./01234
-"#$%&amp;'()*+,-./012345
-#$%&amp;'()*+,-./0123456
-$%&amp;'()*+,-./01234567
-%&amp;'()*+,-./012345678</programlisting>
-
- <para>To further test the printer, try downloading larger
- programs (for language-based printers) or running
- &man.lptest.1; with different arguments. For example,
- <command>lptest 80 60</command> will produce 60 lines of 80
- characters each.</para>
-
- <para>If the printer did not work, see the <link
- linkend="printing-troubleshooting">Troubleshooting</link>
- section.</para>
- </sect4>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="printing-advanced">
- <title>Advanced Printer Setup</title>
-
- <para>This section describes filters for printing specially formatted
- files, header pages, printing across networks, and restricting and
- accounting for printer usage.</para>
-
- <sect2 id="printing-advanced-filter-intro">
- <title>Filters</title>
-
- <para>Although LPD handles network protocols, queuing, access control,
- and other aspects of printing, most of the <emphasis>real</emphasis>
- work happens in the <emphasis>filters</emphasis>. Filters are
- programs that communicate with the printer and handle its device
- dependencies and special requirements. In the simple printer setup,
- we installed a plain text filter&mdash;an extremely simple one that
- should work with most printers (section <link
- linkend="printing-textfilter">Installing the Text
- Filter</link>).</para>
-
- <para>However, in order to take advantage of format conversion, printer
- accounting, specific printer quirks, and so on, you should understand
- how filters work. It will ultimately be the filter's responsibility
- to handle these aspects. And the bad news is that most of the time
- <emphasis>you</emphasis> have to provide filters yourself. The good
- news is that many are generally available; when they are not, they are
- usually easy to write.</para>
-
- <para>Also, FreeBSD comes with one,
- <filename>/usr/libexec/lpr/lpf</filename>, that works with many
- printers that can print plain text. (It handles backspacing and tabs
- in the file, and does accounting, but that is about all it does.)
- There are also several filters and filter components in the FreeBSD
- ports collection.</para>
-
- <para>Here is what you will find in this section:</para>
-
- <itemizedlist>
- <listitem>
- <para>Section <link linkend="printing-advanced-filters">How Filters
- Work</link>, tries to give an overview of a filter's role in the
- printing process. You should read this section to get an
- understanding of what is happening <quote>under the hood</quote>
- when LPD uses filters. This knowledge could help you anticipate
- and debug problems you might encounter as you install more and
- more filters on each of your printers.</para>
- </listitem>
-
- <listitem>
- <para>LPD expects every printer to be able to print plain text by
- default. This presents a problem for PostScript (or other
- language-based printers) which cannot directly print plain text.
- Section <link
- linkend="printing-advanced-if-conversion">Accommodating
- Plain Text Jobs on PostScript Printers</link> tells you what you
- should do to overcome this problem. You should read this
- section if you have a PostScript printer.</para>
- </listitem>
-
- <listitem>
- <para>PostScript is a popular output format for many programs. Even
- some people (myself included) write PostScript code directly. But
- PostScript printers are expensive. Section <link
- linkend="printing-advanced-ps">Simulating PostScript on
- Non-PostScript Printers</link> tells how you can further modify
- a printer's text filter to accept and print PostScript data on a
- <emphasis>non-PostScript</emphasis> printer. You should read
- this section if you do not have a PostScript printer.</para>
- </listitem>
-
- <listitem>
- <para>Section <link
- linkend="printing-advanced-convfilters">Conversion
- Filters</link> tells about a way you can automate the conversion
- of specific file formats, such as graphic or typesetting data,
- into formats your printer can understand. After reading this
- section, you should be able to set up your printers such that
- users can type <command>lpr -t</command> to print troff data, or
- <command>lpr -d</command> to print TeX DVI data, or <command>lpr
- -v</command> to print raster image data, and so forth. I
- recommend reading this section.</para>
- </listitem>
-
- <listitem>
- <para>Section <link linkend="printing-advanced-of">Output
- Filters</link> tells all about a not often used feature of LPD:
- output filters. Unless you are printing header pages (see <link
- linkend="printing-advanced-header-pages">Header Pages</link>),
- you can probably skip that section altogether.</para>
- </listitem>
-
- <listitem>
- <para>Section <link linkend="printing-advanced-lpf">lpf: a Text
- Filter</link> describes <command>lpf</command>, a fairly
- complete if simple text filter for line printers (and laser
- printers that act like line printers) that comes with FreeBSD. If
- you need a quick way to get printer accounting working for plain
- text, or if you have a printer which emits smoke when it sees
- backspace characters, you should definitely consider
- <command>lpf</command>.</para>
- </listitem>
- </itemizedlist>
-
- <sect3 id="printing-advanced-filters">
- <title>How Filters Work</title>
-
- <para>As mentioned before, a filter is an executable program started
- by LPD to handle the device-dependent part of communicating with the
- printer.</para>
-
- <para>When LPD wants to print a file in a job, it starts a filter
- program. It sets the filter's standard input to the file to print,
- its standard output to the printer, and its standard error to the
- error logging file (specified in the <literal>lf</literal>
- capability in <filename>/etc/printcap</filename>, or
- <filename>/dev/console</filename> by default).</para>
-
- <para>Which filter LPD starts and the filter's arguments depend on
- what is listed in the <filename>/etc/printcap</filename> file and
- what arguments the user specified for the job on the
- &man.lpr.1; command line. For example, if the user typed
- <command>lpr -t</command>, LPD would start the troff filter, listed
- in the <literal>tf</literal> capability for the destination printer.
- If the user wanted to print plain text, it would start the
- <literal>if</literal> filter (this is mostly true: see <link
- linkend="printing-advanced-of">Output Filters</link> for
- details).</para>
-
- <para>There are three kinds of filters you can specify in
- <filename>/etc/printcap</filename>:</para>
-
- <itemizedlist>
- <listitem>
- <para>The <emphasis>text filter</emphasis>, confusingly called the
- <emphasis>input filter</emphasis> in LPD documentation, handles
- regular text printing. Think of it as the default filter. LPD
- expects every printer to be able to print plain text by default,
- and it is the text filter's job to make sure backspaces, tabs,
- or other special characters do not confuse the printer. If you
- are in an environment where you have to account for printer
- usage, the text filter must also account for pages printed,
- usually by counting the number of lines printed and comparing
- that to the number of lines per page the printer supports. The
- text filter is started with the following argument list:
-
- <cmdsynopsis>
- <command>filter-name</command>
- <arg>-c</arg>
- <arg choice="plain">-w<replaceable>width</replaceable></arg>
- <arg choice="plain">-l<replaceable>length</replaceable></arg>
- <arg choice="plain">-i<replaceable>indent</replaceable></arg>
- <arg choice="plain">-n <replaceable>login</replaceable></arg>
- <arg choice="plain">-h <replaceable>host</replaceable></arg>
- <arg choice="plain"><replaceable>acct-file</replaceable></arg>
- </cmdsynopsis>
-
- where
-
- <variablelist>
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>appears if the job's submitted with <command>lpr
- -l</command></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>width</replaceable></term>
-
- <listitem>
- <para>is the value from the <literal>pw</literal> (page
- width) capability specified in
- <filename>/etc/printcap</filename>, default 132</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>length</replaceable></term>
-
- <listitem>
- <para>is the value from the <literal>pl</literal> (page
- length) capability, default 66</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>indent</replaceable></term>
-
- <listitem>
- <para>is the amount of the indentation from <command>lpr
- -i</command>, default 0</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>login</replaceable></term>
-
- <listitem>
- <para>is the account name of the user printing the
- file</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>host</replaceable></term>
-
- <listitem>
- <para>is the host name from which the job was
- submitted</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>acct-file</replaceable></term>
-
- <listitem>
- <para>is the name of the accounting file from the
- <literal>af</literal> capability.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </listitem>
-
- <listitem>
- <para>A <emphasis>conversion filter</emphasis> converts a specific
- file format into one the printer can render onto paper. For
- example, ditroff typesetting data cannot be directly printed,
- but you can install a conversion filter for ditroff files to
- convert the ditroff data into a form the printer can digest and
- print. Section <link
- linkend="printing-advanced-convfilters">Conversion
- Filters</link> tells all about them. Conversion filters also
- need to do accounting, if you need printer accounting.
- Conversion filters are started with the following arguments:
-
- <cmdsynopsis>
- <command>filter-name</command>
- <arg
- choice="plain">-x<replaceable>pixel-width</replaceable></arg>
- <arg choice="plain">-y<replaceable>pixel-height</replaceable></arg>
- <arg choice="plain">-n <replaceable>login</replaceable></arg>
- <arg choice="plain">-h <replaceable>host</replaceable></arg>
- <arg choice="plain"><replaceable>acct-file</replaceable></arg>
- </cmdsynopsis>
-
- where <replaceable>pixel-width</replaceable> is the value
- from the <literal>px</literal> capability (default 0) and
- <replaceable>pixel-height</replaceable> is the value from the
- <literal>py</literal> capability (default 0).</para>
- </listitem>
-
- <listitem>
- <para>The <emphasis>output filter</emphasis> is used only if there
- is no text filter, or if header pages are enabled. In my
- experience, output filters are rarely used. Section <link
- linkend="printing-advanced-of">Output Filters</link> describe
- them. There are only two arguments to an output filter:
-
- <cmdsynopsis>
- <command>filter-name</command>
- <arg choice="plain">-w<replaceable>width</replaceable></arg>
- <arg choice="plain">-l<replaceable>length</replaceable></arg>
- </cmdsynopsis>
-
- which are identical to the text filters <option>-w</option> and
- <option>-l</option> arguments.</para>
- </listitem>
- </itemizedlist>
-
- <para>Filters should also <emphasis>exit</emphasis> with the
- following exit status:</para>
-
- <variablelist>
- <varlistentry>
- <term>exit 0</term>
-
- <listitem>
- <para>If the filter printed the file successfully.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>exit 1</term>
-
- <listitem>
- <para>If the filter failed to print the file but wants LPD to
- try to print the file again. LPD will restart a filter if it
- exits with this status.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>exit 2</term>
-
- <listitem>
- <para>If the filter failed to print the file and does not want
- LPD to try again. LPD will throw out the file.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The text filter that comes with the FreeBSD release,
- <filename>/usr/libexec/lpr/lpf</filename>, takes advantage of the
- page width and length arguments to determine when to send a form
- feed and how to account for printer usage. It uses the login, host,
- and accounting file arguments to make the accounting entries.</para>
-
- <para>If you are shopping for filters, see if they are LPD-compatible.
- If they are, they must support the argument lists described above.
- If you plan on writing filters for general use, then have them
- support the same argument lists and exit codes.</para>
- </sect3>
-
- <sect3 id="printing-advanced-if-conversion">
- <title>Accommodating Plain Text Jobs on PostScript Printers</title>
-
- <para>If you are the only user of your computer and PostScript (or
- other language-based) printer, and you promise to never send plain
- text to your printer and to never use features of various programs
- that will want to send plain text to your printer, then you do not
- need to worry about this section at all.</para>
-
- <para>But, if you would like to send both PostScript and plain text
- jobs to the printer, then you are urged to augment your printer
- setup. To do so, we have the text filter detect if the arriving job
- is plain text or PostScript. All PostScript jobs must start with
- <literal>%!</literal> (for other printer languages, see your printer
- documentation). If those are the first two characters in the job,
- we have PostScript, and can pass the rest of the job directly. If
- those are not the first two characters in the file, then the filter
- will convert the text into PostScript and print the result.</para>
-
- <para>How do we do this?</para>
-
- <para>If you have got a serial printer, a great way to do it is to
- install <command>lprps</command>. <command>lprps</command> is a
- PostScript printer filter which performs two-way communication with
- the printer. It updates the printer's status file with verbose
- information from the printer, so users and administrators can see
- exactly what the state of the printer is (such as <errorname>toner
- low</errorname> or <errorname>paper jam</errorname>). But more
- importantly, it includes a program called <command>psif</command>
- which detects whether the incoming job is plain text and calls
- <command>textps</command> (another program that comes with
- <command>lprps</command>) to convert it to PostScript. It then uses
- <command>lprps</command> to send the job to the printer.</para>
-
- <para><command>lprps</command> is part of the FreeBSD ports collection
- (see <link linkend="ports">The Ports Collection</link>). You can
- fetch, build and install it yourself, of course. After installing
- <command>lprps</command>, just specify the pathname to the
- <command>psif</command> program that is part of
- <command>lprps</command>. If you installed <command>lprps</command>
- from the ports collection, use the following in the serial
- PostScript printer's entry in
- <filename>/etc/printcap</filename>:</para>
-
- <programlisting>:if=/usr/local/libexec/psif:</programlisting>
-
- <para>You should also specify the <literal>rw</literal> capability;
- that tells LPD to open the printer in read-write mode.</para>
-
- <para>If you have a parallel PostScript printer (and therefore cannot
- use two-way communication with the printer, which
- <command>lprps</command> needs), you can use the following shell
- script as the text filter:</para>
-
- <programlisting>#!/bin/sh
-#
-# psif - Print PostScript or plain text on a PostScript printer
-# Script version; NOT the version that comes with lprps
-# Installed in /usr/local/libexec/psif
-#
-
-read first_line
-first_two_chars=`expr "$first_line" : '\(..\)'`
-
-if [ "$first_two_chars" = "%!" ]; then
- #
- # PostScript job, print it.
- #
- echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\004" &amp;&amp; exit 0
- exit 2
-else
- #
- # Plain text, convert it, then print it.
- #
- ( echo "$first_line"; cat ) | /usr/local/bin/textps &amp;&amp; printf "\004" &amp;&amp; exit 0
- exit 2
-fi</programlisting>
-
- <para>In the above script, <command>textps</command> is a program we
- installed separately to convert plain text to PostScript. You can
- use any text-to-PostScript program you wish. The FreeBSD ports
- collection (see <link linkend="ports">The Ports Collection</link>)
- includes a full featured text-to-PostScript program called
- <literal>a2ps</literal> that you might want to investigate.</para>
- </sect3>
-
- <sect3 id="printing-advanced-ps">
- <title>Simulating PostScript on Non-PostScript Printers</title>
-
- <para>PostScript is the <emphasis>de facto</emphasis> standard for
- high quality typesetting and printing. PostScript is, however, an
- <emphasis>expensive</emphasis> standard. Thankfully, Alladin
- Enterprises has a free PostScript work-alike called
- <application>Ghostscript</application> that runs with FreeBSD.
- Ghostscript can read most PostScript files and can render their
- pages onto a variety of devices, including many brands of
- non-PostScript printers. By installing Ghostscript and using a
- special text filter for your printer, you can make your
- non-PostScript printer act like a real PostScript printer.</para>
-
- <para>Ghostscript is in the FreeBSD ports collection, if you
- would like to install it from there. You can fetch, build, and
- install it quite easily yourself, as well.</para>
-
- <para>To simulate PostScript, we have the text filter detect if it is
- printing a PostScript file. If it is not, then the filter will pass
- the file directly to the printer; otherwise, it will use Ghostscript
- to first convert the file into a format the printer will
- understand.</para>
-
- <para>Here is an example: the following script is a text filter
- for Hewlett Packard DeskJet 500 printers. For other printers,
- substitute the <option>-sDEVICE</option> argument to the
- <command>gs</command> (Ghostscript) command. (Type <command>gs
- -h</command> to get a list of devices the current installation of
- Ghostscript supports.)</para>
-
- <programlisting>#!/bin/sh
-#
-# ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500
-# Installed in /usr/local/libexec/hpif
-
-#
-# Treat LF as CR+LF:
-#
-printf "\033&amp;k2G" || exit 2
-
-#
-# Read first two characters of the file
-#
-read first_line
-first_two_chars=`expr "$first_line" : '\(..\)'`
-
-if [ "$first_two_chars" = "%!" ]; then
- #
- # It is PostScript; use Ghostscript to scan-convert and print it.
- #
- # Note that PostScript files are actually interpreted programs,
- # and those programs are allowed to write to stdout, which will
- # mess up the printed output. So, we redirect stdout to stderr
- # and then make descriptor 3 go to stdout, and have Ghostscript
- # write its output there. Exercise for the clever reader:
- # capture the stderr output from Ghostscript and mail it back to
- # the user originating the print job.
- #
- exec 3&gt;&amp;1 1&gt;&amp;2
- /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
- -sOutputFile=/dev/fd/3 - &amp;&amp; exit 0
-
- #
- /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \
- &amp;&amp; exit 0
-else
- #
- # Plain text or HP/PCL, so just print it directly; print a form
- # at the end to eject the last page.
- #
- echo $first_line &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
-exit 0
-fi
-
-exit 2</programlisting>
-
- <para>Finally, you need to notify LPD of the filter via the
- <literal>if</literal> capability:</para>
-
- <programlisting>:if=/usr/local/libexec/hpif:</programlisting>
-
- <para>That is it. You can type <command>lpr plain.text</command> and
- <filename>lpr whatever.ps</filename> and both should print
- successfully.</para>
- </sect3>
-
- <sect3 id="printing-advanced-convfilters">
- <title>Conversion Filters</title>
-
- <para>After completing the simple setup described in <link
- linkend="printing-simple">Simple Printer Setup</link>, the first
- thing you will probably want to do is install conversion filters for
- your favorite file formats (besides plain ASCII text).</para>
-
- <sect4>
- <title>Why Install Conversion Filters?</title>
-
- <para>Conversion filters make printing various kinds of files easy.
- As an example, suppose we do a lot of work with the TeX
- typesetting system, and we have a PostScript printer. Every time
- we generate a DVI file from TeX, we cannot print it directly until
- we convert the DVI file into PostScript. The command sequence
- goes like this:</para>
-
- <screen>&prompt.user; <userinput>dvips seaweed-analysis.dvi</userinput>
-&prompt.user; <userinput>lpr seaweed-analysis.ps</userinput></screen>
-
- <para>By installing a conversion filter for DVI files, we can skip
- the hand conversion step each time by having LPD do it for us.
- Now, each time we get a DVI file, we are just one step away from
- printing it:</para>
-
- <screen>&prompt.user; <userinput>lpr -d seaweed-analysis.dvi</userinput></screen>
-
- <para>We got LPD to do the DVI file conversion for us by specifying
- the <option>-d</option> option. Section <link
- linkend="printing-lpr-options-format">Formatting and Conversion
- Options</link> lists the conversion options.</para>
-
- <para>For each of the conversion options you want a printer to
- support, install a <emphasis>conversion filter</emphasis> and
- specify its pathname in <filename>/etc/printcap</filename>. A
- conversion filter is like the text filter for the simple printer
- setup (see section <link linkend="printing-textfilter">Installing
- the Text Filter</link>) except that instead of printing plain
- text, the filter converts the file into a format the printer can
- understand.</para>
- </sect4>
-
- <sect4>
- <title>Which Conversions Filters Should I Install?</title>
-
- <para>You should install the conversion filters you expect to use.
- If you print a lot of DVI data, then a DVI conversion filter is in
- order. If you have got plenty of troff to print out, then you
- probably want a troff filter.</para>
-
- <para>The following table summarizes the filters that LPD works
- with, their capability entries for the
- <filename>/etc/printcap</filename> file, and how to invoke them
- with the <command>lpr</command> command:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>File type</entry>
- <entry><filename>/etc/printcap</filename> capability</entry>
- <entry><command>lpr</command> option</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>cifplot</entry>
- <entry><literal>cf</literal></entry>
- <entry><option>-c</option></entry>
- </row>
-
- <row>
- <entry>DVI</entry>
- <entry><literal>df</literal></entry>
- <entry><option>-d</option></entry>
- </row>
-
- <row>
- <entry>plot</entry>
- <entry><literal>gf</literal></entry>
- <entry><option>-g</option></entry>
- </row>
-
- <row>
- <entry>ditroff</entry>
- <entry><literal>nf</literal></entry>
- <entry><option>-n</option></entry>
- </row>
-
- <row>
- <entry>FORTRAN text</entry>
- <entry><literal>rf</literal></entry>
- <entry><option>-f</option></entry>
- </row>
-
- <row>
- <entry>troff</entry>
- <entry><literal>rf</literal></entry>
- <entry><option>-f</option></entry>
- </row>
-
- <row>
- <entry>raster</entry>
- <entry><literal>vf</literal></entry>
- <entry><option>-v</option></entry>
- </row>
-
- <row>
- <entry>plain text</entry>
- <entry><literal>if</literal></entry>
- <entry>none, <option>-p</option>, or
- <option>-l</option></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>In our example, using <command>lpr -d</command> means the
- printer needs a <literal>df</literal> capability in its entry in
- <filename>/etc/printcap</filename>.</para>
-
- <para>Despite what others might contend, formats like FORTRAN text
- and plot are probably obsolete. At your site, you can give new
- meanings to these or any of the formatting options just by
- installing custom filters. For example, suppose you would like to
- directly print Printerleaf files (files from the Interleaf desktop
- publishing program), but will never print plot files. You could
- install a Printerleaf conversion filter under the
- <literal>gf</literal> capability and then educate your users that
- <command>lpr -g</command> mean <quote>print Printerleaf
- files.</quote></para>
- </sect4>
-
- <sect4>
- <title>Installing Conversion Filters</title>
-
- <para>Since conversion filters are programs you install outside of
- the base FreeBSD installation, they should probably go under
- <filename>/usr/local</filename>. The directory
- <filename>/usr/local/libexec</filename> is a popular location,
- since they are specialized programs that only LPD will run;
- regular users should not ever need to run them.</para>
-
- <para>To enable a conversion filter, specify its pathname under the
- appropriate capability for the destination printer in
- <filename>/etc/printcap</filename>.</para>
-
- <para>In our example, we will add the DVI conversion filter to the
- entry for the printer named <literal>bamboo</literal>. Here is
- the example <filename>/etc/printcap</filename> file again, with
- the new <literal>df</literal> capability for the printer
- <literal>bamboo</literal>.</para>
-
- <programlisting>#
-# /etc/printcap for host rose - added df filter for bamboo
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:</programlisting>
-
- <para>The DVI filter is a shell script named
- <filename>/usr/local/libexec/psdf</filename>. Here is that
- script:</para>
-
- <programlisting>#!bin/sh
-#
-# psdf - DVI to PostScript printer filter
-# Installed in /usr/local/libexec/psdf
-#
-# Invoked by lpd when user runs lpr -d
-#
-exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"</programlisting>
-
- <para>This script runs <command>dvips</command> in filter mode (the
- <option>-f</option> argument) on standard input, which is the job
- to print. It then starts the PostScript printer filter
- <command>lprps</command> (see section <link
- linkend="printing-advanced-if-conversion">Accommodating Plain
- Text Jobs on PostScript Printers</link>) with the arguments LPD
- passed to this script. <command>lprps</command> will use those
- arguments to account for the pages printed.</para>
- </sect4>
-
- <sect4>
- <title>More Conversion Filter Examples</title>
-
- <para>Since there is no fixed set of steps to install conversion
- filters, let me instead provide more examples. Use these as
- guidance to making your own filters. Use them directly, if
- appropriate.</para>
-
- <para>This example script is a raster (well, GIF file, actually)
- conversion filter for a Hewlett Packard LaserJet III-Si
- printer:</para>
-
- <programlisting>#!/bin/sh
-#
-# hpvf - Convert GIF files into HP/PCL, then print
-# Installed in /usr/local/libexec/hpvf
-
-PATH=/usr/X11R6/bin:$PATH; export PATH
-giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
- &amp;&amp; exit 0 \
- || exit 2</programlisting>
-
- <para>It works by converting the GIF file into a portable anymap,
- converting that into a portable graymap, converting that into a
- portable bitmap, and converting that into LaserJet/PCL-compatible
- data.</para>
-
- <para>Here is the <filename>/etc/printcap</filename> file with an
- entry for a printer using the above filter:</para>
-
- <programlisting>#
-# /etc/printcap for host orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:\
- :vf=/usr/local/libexec/hpvf:</programlisting>
-
- <para>The following script is a conversion filter for troff data
- from the groff typesetting system for the PostScript printer named
- <literal>bamboo</literal>:</para>
-
- <programlisting>#!/bin/sh
-#
-# pstf - Convert groff's troff data into PS, then print.
-# Installed in /usr/local/libexec/pstf
-#
-exec grops | /usr/local/libexec/lprps "$@"</programlisting>
-
- <para>The above script makes use of <command>lprps</command> again
- to handle the communication with the printer. If the printer were
- on a parallel port, we would use this script instead:</para>
-
- <programlisting>#!/bin/sh
-#
-# pstf - Convert groff's troff data into PS, then print.
-# Installed in /usr/local/libexec/pstf
-#
-exec grops</programlisting>
-
- <para>That is it. Here is the entry we need to add to
- <filename>/etc/printcap</filename> to enable the filter:</para>
-
- <programlisting>:tf=/usr/local/libexec/pstf:</programlisting>
-
- <para>Here is an example that might make old hands at FORTRAN blush.
- It is a FORTRAN-text filter for any printer that can directly
- print plain text. We will install it for the printer
- <literal>teak</literal>:</para>
-
- <programlisting>#!/bin/sh
-#
-# hprf - FORTRAN text filter for LaserJet 3si:
-# Installed in /usr/local/libexec/hprf
-#
-
-printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
- exit 0
-exit 2</programlisting>
-
- <para>And we will add this line to the
- <filename>/etc/printcap</filename> for the printer
- <literal>teak</literal> to enable this filter:</para>
-
- <programlisting>:rf=/usr/local/libexec/hprf:</programlisting>
-
- <para>Here is one final, somewhat complex example. We will add a
- DVI filter to the LaserJet printer <literal>teak</literal>
- introduced earlier. First, the easy part: updating
- <filename>/etc/printcap</filename> with the location of the DVI
- filter:</para>
-
- <programlisting>:df=/usr/local/libexec/hpdf:</programlisting>
-
- <para>Now, for the hard part: making the filter. For that, we need
- a DVI-to-LaserJet/PCL conversion program. The FreeBSD ports
- collection (see <link linkend="ports">The Ports Collection</link>)
- has one: <command>dvi2xx</command> is the name of the package.
- Installing this package gives us the program we need,
- <command>dvilj2p</command>, which converts DVI into LaserJet IIp,
- LaserJet III, and LaserJet 2000 compatible codes.</para>
-
- <para><command>dvilj2p</command> makes the filter
- <command>hpdf</command> quite complex since
- <command>dvilj2p</command> cannot read from standard input. It
- wants to work with a filename. What is worse, the filename has to
- end in <filename>.dvi</filename> so using
- <filename>/dev/fd/0</filename> for standard input is problematic.
- We can get around that problem by linking (symbolically) a
- temporary file name (one that ends in <filename>.dvi</filename>)
- to <filename>/dev/fd/0</filename>, thereby forcing
- <command>dvilj2p</command> to read from standard input.</para>
-
- <para>The only other fly in the ointment is the fact that we cannot
- use <filename>/tmp</filename> for the temporary link. Symbolic
- links are owned by user and group <username>bin</username>. The
- filter runs as user <username>daemon</username>. And the
- <filename>/tmp</filename> directory has the sticky bit set. The
- filter can create the link, but it will not be able clean up when
- done and remove it since the link will belong to a different
- user.</para>
-
- <para>Instead, the filter will make the symbolic link in the current
- working directory, which is the spooling directory (specified by
- the <literal>sd</literal> capability in
- <filename>/etc/printcap</filename>). This is a perfect place for
- filters to do their work, especially since there is (sometimes)
- more free disk space in the spooling directory than under
- <filename>/tmp</filename>.</para>
-
- <para>Here, finally, is the filter:</para>
-
- <programlisting>#!/bin/sh
-#
-# hpdf - Print DVI data on HP/PCL printer
-# Installed in /usr/local/libexec/hpdf
-
-PATH=/usr/local/bin:$PATH; export PATH
-
-#
-# Define a function to clean up our temporary files. These exist
-# in the current directory, which will be the spooling directory
-# for the printer.
-#
-cleanup() {
- rm -f hpdf$$.dvi
-}
-
-#
-# Define a function to handle fatal errors: print the given message
-# and exit 2. Exiting with 2 tells LPD to do not try to reprint the
-# job.
-#
-fatal() {
- echo "$@" 1&gt;&amp;2
- cleanup
- exit 2
-}
-
-#
-# If user removes the job, LPD will send SIGINT, so trap SIGINT
-# (and a few other signals) to clean up after ourselves.
-#
-trap cleanup 1 2 15
-
-#
-# Make sure we are not colliding with any existing files.
-#
-cleanup
-
-#
-# Link the DVI input file to standard input (the file to print).
-#
-ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
-
-#
-# Make LF = CR+LF
-#
-printf "\033&amp;k2G" || fatal "Cannot initialize printer"
-
-#
-# Convert and print. Return value from dvilj2p does not seem to be
-# reliable, so we ignore it.
-#
-dvilj2p -M1 -q -e- dfhp$$.dvi
-
-#
-# Clean up and exit
-#
-cleanup
-exit 0</programlisting>
- </sect4>
-
- <sect4 id="printing-advanced-autoconv">
- <title>Automated Conversion: An Alternative To Conversion
- Filters</title>
-
- <para>All these conversion filters accomplish a lot for your
- printing environment, but at the cost forcing the user to specify
- (on the &man.lpr.1; command line) which one to use.
- If your users are not particularly computer literate, having to
- specify a filter option will become annoying. What is worse,
- though, is that an incorrectly specified filter option may run a
- filter on the wrong type of file and cause your printer to spew
- out hundreds of sheets of paper.</para>
-
- <para>Rather than install conversion filters at all, you might want
- to try having the text filter (since it is the default filter)
- detect the type of file it has been asked to print and then
- automatically run the right conversion filter. Tools such as
- <command>file</command> can be of help here. Of course, it will
- be hard to determine the differences between
- <emphasis>some</emphasis> file types&mdash;and, of course, you can
- still provide conversion filters just for them.</para>
-
- <para>The FreeBSD ports collection has a text filter that performs
- automatic conversion called <command>apsfilter</command>. It can
- detect plain text, PostScript, and DVI files, run the proper
- conversions, and print.</para>
- </sect4>
- </sect3>
-
- <sect3 id="printing-advanced-of">
- <title>Output Filters</title>
-
- <para>The LPD spooling system supports one other type of filter that
- we have not yet explored: an output filter. An output filter is
- intended for printing plain text only, like the text filter, but
- with many simplifications. If you are using an output filter but no
- text filter, then:</para>
-
- <itemizedlist>
- <listitem>
- <para>LPD starts an output filter once for the entire job instead
- of once for each file in the job.</para>
- </listitem>
-
- <listitem>
- <para>LPD does not make any provision to identify the start or the
- end of files within the job for the output filter.</para>
- </listitem>
-
- <listitem>
- <para>LPD does not pass the user's login or host to the filter, so
- it is not intended to do accounting. In fact, it gets only two
- arguments:</para>
-
- <cmdsynopsis>
- <command>filter-name</command>
- <arg choice="plain">-w<replaceable>width</replaceable></arg>
- <arg choice="plain">-l<replaceable>length</replaceable></arg>
- </cmdsynopsis>
-
- <para>Where <replaceable>width</replaceable> is from the
- <literal>pw</literal> capability and
- <replaceable>length</replaceable> is from the
- <literal>pl</literal> capability for the printer in
- question.</para>
- </listitem>
- </itemizedlist>
-
- <para>Do not be seduced by an output filter's simplicity. If you
- would like each file in a job to start on a different page an output
- filter <emphasis>will not work</emphasis>. Use a text filter (also
- known as an input filter); see section <link
- linkend="printing-textfilter">Installing the Text Filter</link>.
- Furthermore, an output filter is actually <emphasis>more
- complex</emphasis> in that it has to examine the byte stream being
- sent to it for special flag characters and must send signals to
- itself on behalf of LPD.</para>
-
- <para>However, an output filter is <emphasis>necessary</emphasis> if
- you want header pages and need to send escape sequences or other
- initialization strings to be able to print the header page. (But it
- is also <emphasis>futile</emphasis> if you want to charge header
- pages to the requesting user's account, since LPD does not give any
- user or host information to the output filter.)</para>
-
- <para>On a single printer, LPD allows both an output filter and text
- or other filters. In such cases, LPD will start the output filter
- to print the header page (see section <link
- linkend="printing-advanced-header-pages">Header Pages</link>)
- only. LPD then expects the output filter to <emphasis>stop
- itself</emphasis> by sending two bytes to the filter: ASCII 031
- followed by ASCII 001. When an output filter sees these two bytes
- (031, 001), it should stop by sending SIGSTOP to itself. When LPD's
- done running other filters, it will restart the output filter by
- sending SIGCONT to it.</para>
-
- <para>If there is an output filter but <emphasis>no</emphasis> text
- filter and LPD is working on a plain text job, LPD uses the output
- filter to do the job. As stated before, the output filter will
- print each file of the job in sequence with no intervening form
- feeds or other paper advancement, and this is probably
- <emphasis>not</emphasis> what you want. In almost all cases, you
- need a text filter.</para>
-
- <para>The program <command>lpf</command>, which we introduced earlier
- as a text filter, can also run as an output filter. If you need a
- quick-and-dirty output filter but do not want to write the byte
- detection and signal sending code, try <command>lpf</command>. You
- can also wrap <command>lpf</command> in a shell script to handle any
- initialization codes the printer might require.</para>
- </sect3>
-
- <sect3 id="printing-advanced-lpf">
- <title><command>lpf</command>: a Text Filter</title>
-
- <para>The program <filename>/usr/libexec/lpr/lpf</filename> that comes
- with FreeBSD binary distribution is a text filter (input filter)
- that can indent output (job submitted with <command>lpr
- -i</command>), allow literal characters to pass (job submitted
- with <command>lpr -l</command>), adjust the printing position for
- backspaces and tabs in the job, and account for pages printed. It
- can also act like an output filter.</para>
-
- <para><command>lpf</command> is suitable for many printing
- environments. And although it has no capability to send
- initialization sequences to a printer, it is easy to write a shell
- script to do the needed initialization and then execute
- <command>lpf</command>.</para>
-
- <para>In order for <command>lpf</command> to do page accounting
- correctly, it needs correct values filled in for the
- <literal>pw</literal> and <literal>pl</literal> capabilities in the
- <filename>/etc/printcap</filename> file. It uses these values to
- determine how much text can fit on a page and how many pages were in
- a user's job. For more information on printer accounting, see <link
- linkend="printing-advanced-acct">Accounting for Printer
- Usage</link>.</para>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-header-pages">
- <title>Header Pages</title>
-
- <para>If you have <emphasis>lots</emphasis> of users, all of them using
- various printers, then you probably want to consider <emphasis>header
- pages</emphasis> as a necessary evil.</para>
-
- <para>Header pages, also known as <emphasis>banner</emphasis> or
- <emphasis>burst pages</emphasis> identify to whom jobs belong after
- they are printed. They are usually printed in large, bold letters,
- perhaps with decorative borders, so that in a stack of printouts they
- stand out from the real documents that comprise users' jobs. They
- enable users to locate their jobs quickly. The obvious drawback to a
- header page is that it is yet one more sheet that has to be printed
- for every job, their ephemeral usefulness lasting not more than a few
- minutes, ultimately finding themselves in a recycling bin or rubbish
- heap. (Note that header pages go with each job, not each file in a
- job, so the paper waste might not be that bad.)</para>
-
- <para>The LPD system can provide header pages automatically for your
- printouts <emphasis>if</emphasis> your printer can directly print
- plain text. If you have a PostScript printer, you will need an
- external program to generate the header page; see <link
- linkend="printing-advanced-header-pages-ps">Header Pages on
- PostScript Printers</link>.</para>
-
- <sect3 id="printing-advanced-header-pages-enabling">
- <title>Enabling Header Pages</title>
-
- <para>In the <link linkend="printing-simple">Simple Printer
- Setup</link>, we turned off header pages by specifying
- <literal>sh</literal> (meaning <quote>suppress header</quote>) in the
- <filename>/etc/printcap</filename> file. To enable header pages for
- a printer, just remove the <literal>sh</literal> capability.</para>
-
- <para>Sounds too easy, right?</para>
-
- <para>You are right. You <emphasis>might</emphasis> have to provide
- an output filter to send initialization strings to the printer.
- Here is an example output filter for Hewlett Packard PCL-compatible
- printers:</para>
-
- <programlisting>#!/bin/sh
-#
-# hpof - Output filter for Hewlett Packard PCL-compatible printers
-# Installed in /usr/local/libexec/hpof
-
-printf "\033&amp;k2G" || exit 2
-exec /usr/libexec/lpr/lpf</programlisting>
-
- <para>Specify the path to the output filter in the
- <literal>of</literal> capability. See <link
- linkend="printing-advanced-of">Output Filters</link> for more
- information.</para>
-
- <para>Here is an example <filename>/etc/printcap</filename> file for
- the printer <literal>teak</literal> that we introduced earlier; we
- enabled header pages and added the above output filter:</para>
-
- <programlisting>#
-# /etc/printcap for host orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:\
- :vf=/usr/local/libexec/hpvf:\
- :of=/usr/local/libexec/hpof:</programlisting>
-
- <para>Now, when users print jobs to <literal>teak</literal>, they get
- a header page with each job. If users want to spend time searching
- for their printouts, they can suppress header pages by submitting
- the job with <command>lpr -h</command>; see <link
- linkend="printing-lpr-options-misc">Header Page Options</link> for
- more &man.lpr.1; options.</para>
-
- <note>
- <para>LPD prints a form feed character after the header page. If
- your printer uses a different character or sequence of characters
- to eject a page, specify them with the <literal>ff</literal>
- capability in <filename>/etc/printcap</filename>.</para>
- </note>
- </sect3>
-
- <sect3 id="printing-advanced-header-pages-controlling">
- <title>Controlling Header Pages</title>
-
- <para>By enabling header pages, LPD will produce a <emphasis>long
- header</emphasis>, a full page of large letters identifying the
- user, host, and job. Here is an example (kelly printed the job
- named outline from host rose):</para>
-
- <programlisting> k ll ll
- k l l
- k l l
- k k eeee l l y y
- k k e e l l y y
- k k eeeeee l l y y
- kk k e l l y y
- k k e e l l y yy
- k k eeee lll lll yyy y
- y
- y y
- yyyy
-
-
- ll
- t l i
- t l
- oooo u u ttttt l ii n nnn eeee
- o o u u t l i nn n e e
- o o u u t l i n n eeeeee
- o o u u t l i n n e
- o o u uu t t l i n n e e
- oooo uuu u tt lll iii n n eeee
-
-
-
-
-
-
-
-
-
- r rrr oooo ssss eeee
- rr r o o s s e e
- r o o ss eeeeee
- r o o ss e
- r o o s s e e
- r oooo ssss eeee
-
-
-
-
-
-
-
- Job: outline
- Date: Sun Sep 17 11:04:58 1995</programlisting>
-
- <para>LPD appends a form feed after this text so the job starts on a
- new page (unless you have <literal>sf</literal> (suppress form
- feeds) in the destination printer's entry in
- <filename>/etc/printcap</filename>).</para>
-
- <para>If you prefer, LPD can make a <emphasis>short header</emphasis>;
- specify <literal>sb</literal> (short banner) in the
- <filename>/etc/printcap</filename> file. The header page will look
- like this:</para>
-
- <programlisting>rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995</programlisting>
-
- <para>Also by default, LPD prints the header page first, then the job.
- To reverse that, specify <literal>hl</literal> (header last) in
- <filename>/etc/printcap</filename>.</para>
- </sect3>
-
- <sect3 id="printing-advanced-header-pages-accounting">
- <title>Accounting for Header Pages</title>
-
- <para>Using LPD's built-in header pages enforces a particular paradigm
- when it comes to printer accounting: header pages must be
- <emphasis>free of charge</emphasis>.</para>
-
- <para>Why?</para>
-
- <para>Because the output filter is the only external program that will
- have control when the header page is printed that could do
- accounting, and it is not provided with any <emphasis>user or
- host</emphasis> information or an accounting file, so it has no
- idea whom to charge for printer use. It is also not enough to just
- <quote>add one page</quote> to the text filter or any of the
- conversion filters (which do have user and host information) since
- users can suppress header pages with <command>lpr -h</command>.
- They could still be charged for header pages they did not print.
- Basically, <command>lpr -h</command> will be the preferred option of
- environmentally-minded users, but you cannot offer any incentive to
- use it.</para>
-
- <para>It is <emphasis>still not enough</emphasis> to have each of the
- filters generate their own header pages (thereby being able to
- charge for them). If users wanted the option of suppressing the
- header pages with <command>lpr -h</command>, they will still get
- them and be charged for them since LPD does not pass any knowledge
- of the <option>-h</option> option to any of the filters.</para>
-
- <para>So, what are your options?</para>
-
- <para>You can:</para>
-
- <itemizedlist>
- <listitem>
- <para>Accept LPD's paradigm and make header pages free.</para>
- </listitem>
-
- <listitem>
- <para>Install an alternative to LPD, such as LPRng. Section
- <link linkend="printing-lpd-alternatives">Alternatives to the
- Standard Spooler</link> tells more about other spooling
- software you can substitute for LPD.</para>
- </listitem>
-
- <listitem>
- <para>Write a <emphasis>smart</emphasis> output filter. Normally,
- an output filter is not meant to do anything more than
- initialize a printer or do some simple character conversion. It
- is suited for header pages and plain text jobs (when there is no
- text (input) filter). But, if there is a text filter for the
- plain text jobs, then LPD will start the output filter only for
- the header pages. And the output filter can parse the header
- page text that LPD generates to determine what user and host to
- charge for the header page. The only other problem with this
- method is that the output filter still does not know what
- accounting file to use (it is not passed the name of the file
- from the <literal>af</literal> capability), but if you have a
- well-known accounting file, you can hard-code that into the
- output filter. To facilitate the parsing step, use the
- <literal>sh</literal> (short header) capability in
- <filename>/etc/printcap</filename>. Then again, all that might
- be too much trouble, and users will certainly appreciate the
- more generous system administrator who makes header pages
- free.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3 id="printing-advanced-header-pages-ps">
- <title>Header Pages on PostScript Printers</title>
-
- <para>As described above, LPD can generate a plain text header page
- suitable for many printers. Of course, PostScript cannot directly
- print plain text, so the header page feature of LPD is
- useless&mdash;or mostly so.</para>
-
- <para>One obvious way to get header pages is to have every conversion
- filter and the text filter generate the header page. The filters
- should should use the user and host arguments to generate a suitable
- header page. The drawback of this method is that users will always
- get a header page, even if they submit jobs with <command>lpr
- -h</command>.</para>
-
- <para>Let us explore this method. The following script takes three
- arguments (user login name, host name, and job name) and makes a
- simple PostScript header page:</para>
-
- <programlisting>#!/bin/sh
-#
-# make-ps-header - make a PostScript header page on stdout
-# Installed in /usr/local/libexec/make-ps-header
-#
-
-#
-# These are PostScript units (72 to the inch). Modify for A4 or
-# whatever size paper you are using:
-#
-page_width=612
-page_height=792
-border=72
-
-#
-# Check arguments
-#
-if [ $# -ne 3 ]; then
- echo "Usage: `basename $0` &lt;user&gt; &lt;host&gt; &lt;job&gt;" 1&gt;&amp;2
- exit 1
-fi
-
-#
-# Save these, mostly for readability in the PostScript, below.
-#
-user=$1
-host=$2
-job=$3
-date=`date`
-
-#
-# Send the PostScript code to stdout.
-#
-exec cat &lt;&lt;EOF
-%!PS
-
-%
-% Make sure we do not interfere with user's job that will follow
-%
-save
-
-%
-% Make a thick, unpleasant border around the edge of the paper.
-%
-$border $border moveto
-$page_width $border 2 mul sub 0 rlineto
-0 $page_height $border 2 mul sub rlineto
-currentscreen 3 -1 roll pop 100 3 1 roll setscreen
-$border 2 mul $page_width sub 0 rlineto closepath
-0.8 setgray 10 setlinewidth stroke 0 setgray
-
-%
-% Display user's login name, nice and large and prominent
-%
-/Helvetica-Bold findfont 64 scalefont setfont
-$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
-($user) show
-
-%
-% Now show the boring particulars
-%
-/Helvetica findfont 14 scalefont setfont
-/y 200 def
-[ (Job:) (Host:) (Date:) ] {
-200 y moveto show /y y 18 sub def }
-forall
-
-/Helvetica-Bold findfont 14 scalefont setfont
-/y 200 def
-[ ($job) ($host) ($date) ] {
- 270 y moveto show /y y 18 sub def
-} forall
-
-%
-% That is it
-%
-restore
-showpage
-EOF</programlisting>
-
- <para>Now, each of the conversion filters and the text filter can call
- this script to first generate the header page, and then print the
- user's job. Here is the DVI conversion filter from earlier in this
- document, modified to make a header page:</para>
-
- <programlisting>#!/bin/sh
-#
-# psdf - DVI to PostScript printer filter
-# Installed in /usr/local/libexec/psdf
-#
-# Invoked by lpd when user runs lpr -d
-#
-
-orig_args="$@"
-
-fail() {
- echo "$@" 1&gt;&amp;2
- exit 2
-}
-
-while getopts "x:y:n:h:" option; do
- case $option in
- x|y) ;; # Ignore
- n) login=$OPTARG ;;
- h) host=$OPTARG ;;
- *) echo "LPD started `basename $0` wrong." 1&gt;&amp;2
- exit 2
- ;;
- esac
-done
-
-[ "$login" ] || fail "No login name"
-[ "$host" ] || fail "No host name"
-
-( /usr/local/libexec/make-ps-header $login $host "DVI File"
- /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args</programlisting>
-
- <para>Notice how the filter has to parse the argument list in order to
- determine the user and host name. The parsing for the other
- conversion filters is identical. The text filter takes a slightly
- different set of arguments, though (see section <link
- linkend="printing-advanced-filters">How Filters
- Work</link>).</para>
-
- <para>As we have mentioned before, the above scheme, though fairly
- simple, disables the <quote>suppress header page</quote> option (the
- <option>-h</option> option) to <command>lpr</command>. If users
- wanted to save a tree (or a few pennies, if you charge for header
- pages), they would not be able to do so, since every filter's going
- to print a header page with every job.</para>
-
- <para>To allow users to shut off header pages on a per-job basis, you
- will need to use the trick introduced in section <link
- linkend="printing-advanced-header-pages-accounting">Accounting for
- Header Pages</link>: write an output filter that parses the
- LPD-generated header page and produces a PostScript version. If the
- user submits the job with <command>lpr -h</command>, then LPD will
- not generate a header page, and neither will your output filter.
- Otherwise, your output filter will read the text from LPD and send
- the appropriate header page PostScript code to the printer.</para>
-
- <para>If you have a PostScript printer on a serial line, you can make
- use of <command>lprps</command>, which comes with an output filter,
- <command>psof</command>, which does the above. Note that
- <command>psof</command> does not charge for header pages.</para>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-network-printers">
- <title>Networked Printing</title>
-
- <para>FreeBSD supports networked printing: sending jobs to remote
- printers. Networked printing generally refers to two different
- things:</para>
-
- <itemizedlist>
- <listitem>
- <para>Accessing a printer attached to a remote host. You install a
- printer that has a conventional serial or parallel interface on
- one host. Then, you set up LPD to enable access to the printer
- from other hosts on the network. Section <link
- linkend="printing-advanced-network-rm">Printers Installed on
- Remote Hosts</link> tells how to do this.</para>
- </listitem>
-
- <listitem>
- <para>Accessing a printer attached directly to a network. The
- printer has a network interface in addition (or in place of) a
- more conventional serial or parallel interface. Such a printer
- might work as follows:</para>
-
- <itemizedlist>
- <listitem>
- <para>It might understand the LPD protocol and can even queue
- jobs from remote hosts. In this case, it acts just like a
- regular host running LPD. Follow the same procedure in
- section <link linkend="printing-advanced-network-rm">Printers
- Installed on Remote Hosts</link> to set up such a
- printer.</para>
- </listitem>
-
- <listitem>
- <para>It might support a data stream network connection. In this
- case, you <quote>attach</quote> the printer to one host on the
- network by making that host responsible for spooling jobs and
- sending them to the printer. Section <link
- linkend="printing-advanced-network-net-if">Printers with
- Networked Data Stream Interfaces</link> gives some
- suggestions on installing such printers.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-
- <sect3 id="printing-advanced-network-rm">
- <title>Printers Installed on Remote Hosts</title>
-
- <para>The LPD spooling system has built-in support for sending jobs to
- other hosts also running LPD (or are compatible with LPD). This
- feature enables you to install a printer on one host and make it
- accessible from other hosts. It also works with printers that have
- network interfaces that understand the LPD protocol.</para>
-
- <para>To enable this kind of remote printing, first install a printer
- on one host, the <emphasis>printer host</emphasis>, using the simple
- printer setup described in <link linkend="printing-simple">Simple
- Printer Setup</link>. Do any advanced setup in <link
- linkend="printing-advanced">Advanced Printer Setup</link> that you
- need. Make sure to test the printer and see if it works with the
- features of LPD you have enabled. Also ensure that the
- <emphasis>local host</emphasis> has authorization to use the LPD
- service in the <emphasis>remote host</emphasis> (see <link
- linkend="printing-advanced-restricting-remote">Restricting Jobs
- from Remote Printers</link>).</para>
-
- <para>If you are using a printer with a network interface that is
- compatible with LPD, then the <emphasis>printer host</emphasis> in
- the discussion below is the printer itself, and the
- <emphasis>printer name</emphasis> is the name you configured for the
- printer. See the documentation that accompanied your printer and/or
- printer-network interface.</para>
-
- <tip>
- <para>If you are using a Hewlett Packard Laserjet then the printer
- name <literal>text</literal> will automatically perform the LF to
- CRLF conversion for you, so you will not require the
- <filename>hpif</filename> script.</para>
- </tip>
-
- <para>Then, on the other hosts you want to have access to the printer,
- make an entry in their <filename>/etc/printcap</filename> files with
- the following:</para>
-
- <orderedlist>
- <listitem>
- <para>Name the entry anything you want. For simplicity, though,
- you probably want to use the same name and aliases as on the
- printer host.</para>
- </listitem>
-
- <listitem>
- <para>Leave the <literal>lp</literal> capability blank, explicitly
- (<literal>:lp=:</literal>).</para>
- </listitem>
-
- <listitem>
- <para>Make a spooling directory and specify its location in the
- <literal>sd</literal> capability. LPD will store jobs here
- before they get sent to the printer host.</para>
- </listitem>
-
- <listitem>
- <para>Place the name of the printer host in the
- <literal>rm</literal> capability.</para>
- </listitem>
-
- <listitem>
- <para>Place the printer name on the <emphasis>printer
- host</emphasis> in the <literal>rp</literal>
- capability.</para>
- </listitem>
- </orderedlist>
-
- <para>That is it. You do not need to list conversion filters, page
- dimensions, or anything else in the
- <filename>/etc/printcap</filename> file.</para>
-
- <para>Here is an example. The host <hostid>rose</hostid> has two
- printers, <literal>bamboo</literal> and <literal>rattan</literal>.
- We will enable users on the host orchid to print to those printers.
- Here is the <filename>/etc/printcap</filename> file for
- <hostid>orchid</hostid> (back from section <link
- linkend="printing-advanced-header-pages-enabling">Enabling Header
- Pages</link>). It already had the entry for the printer
- <literal>teak</literal>; we have added entries for the two printers
- on the host rose:</para>
-
- <programlisting>#
-# /etc/printcap for host orchid - added (remote) printers on rose
-#
-
-#
-# teak is local; it is connected directly to orchid:
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/ifhp:\
- :vf=/usr/local/libexec/vfhp:\
- :of=/usr/local/libexec/ofhp:
-
-#
-# rattan is connected to rose; send jobs for rattan to rose:
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
-
-#
-# bamboo is connected to rose as well:
-#
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:</programlisting>
-
- <para>Then, we just need to make spooling directories on
- <hostid>orchid</hostid>:</para>
-
- <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput></screen>
-
- <para>Now, users on <hostid>orchid</hostid> can print to
- <literal>rattan</literal> and <literal>bamboo</literal>. If, for
- example, a user on orchid typed
-
- <screen>&prompt.user; <userinput>lpr -P bamboo -d sushi-review.dvi</userinput></screen>
-
- the LPD system on orchid would copy the job to the spooling
- directory <filename>/var/spool/lpd/bamboo</filename> and note that
- it was a DVI job. As soon as the host rose has room in its
- <hostid>bamboo</hostid> spooling directory, the two LPDs would
- transfer the file to rose. The file would wait in rose's queue
- until it was finally printed. It would be converted from DVI to
- PostScript (since bamboo is a PostScript printer) on rose.</para>
- </sect3>
-
- <sect3 id="printing-advanced-network-net-if">
- <title>Printers with Networked Data Stream Interfaces</title>
-
- <para>Often, when you buy a network interface card for a printer, you
- can get two versions: one which emulates a spooler (the more
- expensive version), or one which just lets you send data to it as if
- you were using a serial or parallel port (the cheaper version).
- This section tells how to use the cheaper version. For the more
- expensive one, see the previous section <link
- linkend="printing-advanced-network-rm">Printers Installed on
- Remote Hosts</link>.</para>
-
- <para>The format of the <filename>/etc/printcap</filename> file lets
- you specify what serial or parallel interface to use, and (if you
- are using a serial interface), what baud rate, whether to use flow
- control, delays for tabs, conversion of newlines, and more. But
- there is no way to specify a connection to a printer that is
- listening on a TCP/IP or other network port.</para>
-
- <para>To send data to a networked printer, you need to develop a
- communications program that can be called by the text and conversion
- filters. Here is one such example: the script
- <command>netprint</command> takes all data on standard input and
- sends it to a network-attached printer. We specify the hostname of
- the printer as the first argument and the port number to which to
- connect as the second argument to <command>netprint</command>. Note
- that this supports one-way communication only (FreeBSD to printer);
- many network printers support two-way communication, and you might
- want to take advantage of that (to get printer status, perform
- accounting, etc.).</para>
-
- <programlisting>#!/usr/bin/perl
-#
-# netprint - Text filter for printer attached to network
-# Installed in /usr/local/libexec/netprint
-#
-$#ARGV eq 1 || die "Usage: $0 &lt;printer-hostname&gt; &lt;port-number&gt;";
-
-$printer_host = $ARGV[0];
-$printer_port = $ARGV[1];
-
-require 'sys/socket.ph';
-
-($ignore, $ignore, $protocol) = getprotobyname('tcp');
-($ignore, $ignore, $ignore, $ignore, $address)
- = gethostbyname($printer_host);
-
-$sockaddr = pack('S n a4 x8', &amp;AF_INET, $printer_port, $address);
-
-socket(PRINTER, &amp;PF_INET, &amp;SOCK_STREAM, $protocol)
- || die "Can't create TCP/IP stream socket: $!";
-connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
-while (&lt;STDIN&gt;) { print PRINTER; }
-exit 0;</programlisting>
-
- <para>We can then use this script in various filters. Suppose we had
- a Diablo 750-N line printer connected to the network. The printer
- accepts data to print on port number 5100. The host name of the
- printer is scrivener. Here is the text filter for the
- printer:</para>
-
- <programlisting>#!/bin/sh
-#
-# diablo-if-net - Text filter for Diablo printer `scrivener' listening
-# on port 5100. Installed in /usr/local/libexec/diablo-if-net
-#
-exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100</programlisting>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-restricting">
- <title>Restricting Printer Usage</title>
-
- <para>This section gives information on restricting printer usage. The
- LPD system lets you control who can access a printer, both locally or
- remotely, whether they can print multiple copies, how large their jobs
- can be, and how large the printer queues can get.</para>
-
- <sect3 id="printing-advanced-restricting-copies">
- <title>Restricting Multiple Copies</title>
-
- <para>The LPD system makes it easy for users to print multiple copies
- of a file. Users can print jobs with <command>lpr -#5</command>
- (for example) and get five copies of each file in the job. Whether
- this is a good thing is up to you.</para>
-
- <para>If you feel multiple copies cause unnecessary wear and tear on
- your printers, you can disable the <option>-#</option> option to
- &man.lpr.1; by adding the <literal>sc</literal> capability to the
- <filename>/etc/printcap</filename> file. When users submit jobs
- with the <option>-#</option> option, they will see:</para>
-
- <screen>lpr: multiple copies are not allowed</screen>
-
-
- <para>Note that if you have set up access to a printer remotely (see
- section <link linkend="printing-advanced-network-rm">Printers
- Installed on Remote Hosts</link>), you need the
- <literal>sc</literal> capability on the remote
- <filename>/etc/printcap</filename> files as well, or else users will
- still be able to submit multiple-copy jobs by using another
- host.</para>
-
- <para>Here is an example. This is the
- <filename>/etc/printcap</filename> file for the host
- <hostid>rose</hostid>. The printer <literal>rattan</literal> is
- quite hearty, so we will allow multiple copies, but the laser
- printer <literal>bamboo</literal>'s a bit more delicate, so we will
- disable multiple copies by adding the <literal>sc</literal>
- capability:</para>
-
- <programlisting>#
-# /etc/printcap for host rose - restrict multiple copies on bamboo
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:</programlisting>
-
- <para>Now, we also need to add the <literal>sc</literal> capability on
- the host <hostid>orchid</hostid>'s
- <filename>/etc/printcap</filename> (and while we are at it, let us
- disable multiple copies for the printer
- <literal>teak</literal>):</para>
-
- <programlisting>#
-# /etc/printcap for host orchid - no multiple copies for local
-# printer teak or remote printer bamboo
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
- :if=/usr/local/libexec/ifhp:\
- :vf=/usr/local/libexec/vfhp:\
- :of=/usr/local/libexec/ofhp:
-
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:</programlisting>
-
- <para>By using the <literal>sc</literal> capability, we prevent the
- use of <command>lpr -#</command>, but that still does not prevent
- users from running &man.lpr.1;
- multiple times, or from submitting the same file multiple times in
- one job like this:</para>
-
- <screen>&prompt.user; <userinput>lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign</userinput></screen>
-
- <para>There are many ways to prevent this abuse (including ignoring
- it) which you are free to explore.</para>
- </sect3>
-
- <sect3 id="printing-advanced-restricting-access">
- <title>Restricting Access To Printers</title>
-
- <para>You can control who can print to what printers by using the UNIX
- group mechanism and the <literal>rg</literal> capability in
- <filename>/etc/printcap</filename>. Just place the users you want
- to have access to a printer in a certain group, and then name that
- group in the <literal>rg</literal> capability.</para>
-
- <para>Users outside the group (including root) will be greeted with
-
- <errorname>lpr: Not a member of the restricted group</errorname>
-
- if they try to print to the controlled printer.</para>
-
- <para>As with the <literal>sc</literal> (suppress multiple copies)
- capability, you need to specify <literal>rg</literal> on remote
- hosts that also have access to your printers, if you feel it is
- appropriate (see section <link
- linkend="printing-advanced-network-rm">Printers Installed on
- Remote Hosts</link>).</para>
-
- <para>For example, we will let anyone access the printer
- <literal>rattan</literal>, but only those in group
- <literal>artists</literal> can use <literal>bamboo</literal>. Here
- is the familiar <filename>/etc/printcap</filename> for host
- <hostid>rose</hostid>:</para>
-
- <programlisting>#
-# /etc/printcap for host rose - restricted group for bamboo
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:</programlisting>
-
- <para>Let us leave the other example
- <filename>/etc/printcap</filename> file (for the host
- <hostid>orchid</hostid>) alone. Of course, anyone on
- <hostid>orchid</hostid> can print to <literal>bamboo</literal>. It
- might be the case that we only allow certain logins on
- <hostid>orchid</hostid> anyway, and want them to have access to the
- printer. Or not.</para>
-
- <note>
- <para>There can be only one restricted group per printer.</para>
- </note>
- </sect3>
-
- <sect3 id="printing-advanced-restricting-sizes">
- <title>Controlling Sizes of Jobs Submitted</title>
-
- <para>If you have many users accessing the printers, you probably need
- to put an upper limit on the sizes of the files users can submit to
- print. After all, there is only so much free space on the
- filesystem that houses the spooling directories, and you also need
- to make sure there is room for the jobs of other users.</para>
-
- <para>LPD enables you to limit the maximum byte size a file in a job
- can be with the <literal>mx</literal> capability. The units are in
- BUFSIZ blocks, which are 1024 bytes. If you put a zero for this
- capability, there will be no limit on file size; however, if no
- <literal>mx</literal> capability is specified, then a default limit
- of 1000 blocks will be used.</para>
-
- <note>
- <para>The limit applies to <emphasis>files</emphasis> in a job, and
- <emphasis>not</emphasis> the total job size.</para>
- </note>
-
- <para>LPD will not refuse a file that is larger than the limit you
- place on a printer. Instead, it will queue as much of the file up
- to the limit, which will then get printed. The rest will be
- discarded. Whether this is correct behavior is up for
- debate.</para>
-
- <para>Let us add limits to our example printers
- <literal>rattan</literal> and <literal>bamboo</literal>. Since
- those artists' PostScript files tend to be large, we will limit them
- to five megabytes. We will put no limit on the plain text line
- printer:</para>
-
- <programlisting>#
-# /etc/printcap for host rose
-#
-
-#
-# No limit on job size:
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:mx#0:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-#
-# Limit of five megabytes:
-#
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:</programlisting>
-
- <para>Again, the limits apply to the local users only. If you have
- set up access to your printers remotely, remote users will not get
- those limits. You will need to specify the <literal>mx</literal>
- capability in the remote <filename>/etc/printcap</filename> files as
- well. See section <link
- linkend="printing-advanced-network-rm">Printers Installed on
- Remote Hosts</link> for more information on remote
- printing.</para>
-
- <para>There is another specialized way to limit job sizes from remote
- printers; see section <link
- linkend="printing-advanced-restricting-remote">Restricting Jobs
- from Remote Printers</link>.</para>
- </sect3>
-
- <sect3 id="printing-advanced-restricting-remote">
- <title>Restricting Jobs from Remote Printers</title>
-
- <para>The LPD spooling system provides several ways to restrict print
- jobs submitted from remote hosts:</para>
-
- <variablelist>
- <varlistentry>
- <term>Host restrictions</term>
-
- <listitem>
- <para>You can control from which remote hosts a local LPD
- accepts requests with the files
- <filename>/etc/hosts.equiv</filename> and
- <filename>/etc/hosts.lpd</filename>. LPD checks to see if an
- incoming request is from a host listed in either one of these
- files. If not, LPD refuses the request.</para>
-
- <para>The format of these files is simple: one host name per
- line. Note that the file
- <filename>/etc/hosts.equiv</filename> is also used by the
- &man.ruserok.3; protocol, and affects programs like
- &man.rsh.1; and &man.rcp.1;, so be careful.</para>
-
- <para>For example, here is the
- <filename>/etc/hosts.lpd</filename> file on the host
- <hostid>rose</hostid>:</para>
-
- <programlisting>orchid
-violet
-madrigal.fishbaum.de</programlisting>
-
- <para>This means <hostid>rose</hostid> will accept requests from
- the hosts <hostid>orchid</hostid>, <hostid>violet</hostid>,
- and <hostid role="fqdn">madrigal.fishbaum.de</hostid>. If any
- other host tries to access <hostid>rose</hostid>'s
- LPD, the job will be refused.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Size restrictions</term>
-
- <listitem>
- <para>You can control how much free space there needs to remain
- on the filesystem where a spooling directory resides. Make a
- file called <filename>minfree</filename> in the spooling
- directory for the local printer. Insert in that file a number
- representing how many disk blocks (512 bytes) of free space
- there has to be for a remote job to be accepted.</para>
-
- <para>This lets you insure that remote users will not fill your
- filesystem. You can also use it to give a certain priority to
- local users: they will be able to queue jobs long after the
- free disk space has fallen below the amount specified in the
- <filename>minfree</filename> file.</para>
-
- <para>For example, let us add a <filename>minfree</filename>
- file for the printer <hostid>bamboo</hostid>. We examine
- <filename>/etc/printcap</filename> to find the spooling
- directory for this printer; here is <hostid>bamboo</hostid>'s
- entry:</para>
-
- <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:mx#5000:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:</programlisting>
-
- <para>The spooling directory is the given in the
- <literal>sd</literal> capability. We will make three
- megabytes (which is 6144 disk blocks) the amount of free disk
- space that must exist on the filesystem for LPD to accept
- remote jobs:</para>
-
- <screen>&prompt.root; <userinput>echo 6144 &gt; /var/spool/lpd/bam
-boo/minfree</userinput></screen>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>User restrictions</term>
-
- <listitem>
- <para>You can control which remote users can print to local
- printers by specifying the <literal>rs</literal> capability in
- <filename>/etc/printcap</filename>. When
- <literal>rs</literal> appears in the entry for a
- locally-attached printer, LPD will accept jobs from remote
- hosts <emphasis>if</emphasis> the user submitting the job also
- has an account of the same login name on the local host.
- Otherwise, LPD refuses the job.</para>
-
- <para>This capability is particularly useful in an environment
- where there are (for example) different departments sharing a
- network, and some users transcend departmental boundaries. By
- giving them accounts on your systems, they can use your
- printers from their own departmental systems. If you would
- rather allow them to use <emphasis>only</emphasis> your
- printers and not your compute resources, you can give them
- <quote>token</quote> accounts, with no home directory and a
- useless shell like <filename>/usr/bin/false</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-acct">
- <title>Accounting for Printer Usage</title>
-
- <para>So, you need to charge for printouts. And why not? Paper and ink
- cost money. And then there are maintenance costs&mdash;printers are
- loaded with moving parts and tend to break down. You have examined
- your printers, usage patterns, and maintenance fees and have come up
- with a per-page (or per-foot, per-meter, or per-whatever) cost. Now,
- how do you actually start accounting for printouts?</para>
-
- <para>Well, the bad news is the LPD spooling system does not provide
- much help in this department. Accounting is highly dependent on the
- kind of printer in use, the formats being printed, and
- <emphasis>your</emphasis> requirements in charging for printer
- usage.</para>
-
- <para>To implement accounting, you have to modify a printer's text
- filter (to charge for plain text jobs) and the conversion filters (to
- charge for other file formats), to count pages or query the printer
- for pages printed. You cannot get away with using the simple output
- filter, since it cannot do accounting. See section <link
- linkend="printing-advanced-filter-intro">Filters</link>.</para>
-
- <para>Generally, there are two ways to do accounting:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Periodic accounting</emphasis> is the more common
- way, possibly because it is easier. Whenever someone prints a
- job, the filter logs the user, host, and number of pages to an
- accounting file. Every month, semester, year, or whatever time
- period you prefer, you collect the accounting files for the
- various printers, tally up the pages printed by users, and charge
- for usage. Then you truncate all the logging files, starting with
- a clean slate for the next period.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Timely accounting</emphasis> is less common,
- probably because it is more difficult. This method has the
- filters charge users for printouts as soon as they use the
- printers. Like disk quotas, the accounting is immediate. You can
- prevent users from printing when their account goes in the red,
- and might provide a way for users to check and adjust their
- <quote>print quotas.</quote> But this method requires some database
- code to track users and their quotas.</para>
- </listitem>
- </itemizedlist>
-
- <para>The LPD spooling system supports both methods easily: since you
- have to provide the filters (well, most of the time), you also have to
- provide the accounting code. But there is a bright side: you have
- enormous flexibility in your accounting methods. For example, you
- choose whether to use periodic or timely accounting. You choose what
- information to log: user names, host names, job types, pages printed,
- square footage of paper used, how long the job took to print, and so
- forth. And you do so by modifying the filters to save this
- information.</para>
-
- <sect3>
- <title>Quick and Dirty Printer Accounting</title>
-
- <para>FreeBSD comes with two programs that can get you set up with
- simple periodic accounting right away. They are the text filter
- <command>lpf</command>, described in section <link
- linkend="printing-advanced-lpf">lpf: a Text Filter</link>, and
- &man.pac.8;, a program to gather and total
- entries from printer accounting files.</para>
-
- <para>As mentioned in the section on filters (<link
- linkend="printing-advanced-filters">Filters</link>), LPD starts
- the text and the conversion filters with the name of the accounting
- file to use on the filter command line. The filters can use this
- argument to know where to write an accounting file entry. The name
- of this file comes from the <literal>af</literal> capability in
- <filename>/etc/printcap</filename>, and if not specified as an
- absolute path, is relative to the spooling directory.</para>
-
- <para>LPD starts <command>lpf</command> with page width and length
- arguments (from the <literal>pw</literal> and <literal>pl</literal>
- capabilities). <command>lpf</command> uses these arguments to
- determine how much paper will be used. After sending the file to
- the printer, it then writes an accounting entry in the accounting
- file. The entries look like this:</para>
-
- <programlisting>2.00 rose:andy
-3.00 rose:kelly
-3.00 orchid:mary
-5.00 orchid:mary
-2.00 orchid:zhang</programlisting>
-
- <para>You should use a separate accounting file for each printer, as
- <command>lpf</command> has no file locking logic built into it, and
- two <command>lpf</command>s might corrupt each other's entries if
- they were to write to the same file at the same time. A easy way to
- insure a separate accounting file for each printer is to use
- <literal>af=acct</literal> in <filename>/etc/printcap</filename>.
- Then, each accounting file will be in the spooling directory for a
- printer, in a file named <filename>acct</filename>.</para>
-
- <para>When you are ready to charge users for printouts, run the
- &man.pac.8; program. Just change to the spooling directory for
- the printer you want to collect on and type <literal>pac</literal>.
- You will get a dollar-centric summary like the following:</para>
-
- <screen> Login pages/feet runs price
-orchid:kelly 5.00 1 $ 0.10
-orchid:mary 31.00 3 $ 0.62
-orchid:zhang 9.00 1 $ 0.18
-rose:andy 2.00 1 $ 0.04
-rose:kelly 177.00 104 $ 3.54
-rose:mary 87.00 32 $ 1.74
-rose:root 26.00 12 $ 0.52
-
-total 337.00 154 $ 6.74</screen>
-
- <para>These are the arguments &man.pac.8; expects:</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-P<replaceable>printer</replaceable></option></term>
-
- <listitem>
- <para>Which <replaceable>printer</replaceable> to summarize.
- This option works only if there is an absolute path in the
- <literal>af</literal> capability in
- <filename>/etc/printcap</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>Sort the output by cost instead of alphabetically by user
- name.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-m</option></term>
-
- <listitem>
- <para>Ignore host name in the accounting files. With this
- option, user <username>smith</username> on host
- <hostid>alpha</hostid> is the same user
- <username>smith</username> on host <hostid>gamma</hostid>.
- Without, they are different users.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-p<replaceable>price</replaceable></option></term>
-
- <listitem>
- <para>Compute charges with <replaceable>price</replaceable>
- dollars per page or per foot instead of the price from the
- <literal>pc</literal> capability in
- <filename>/etc/printcap</filename>, or two cents (the
- default). You can specify <replaceable>price</replaceable> as
- a floating point number.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-r</option></term>
-
- <listitem>
- <para>Reverse the sort order.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-s</option></term>
-
- <listitem>
- <para>Make an accounting summary file and truncate the
- accounting file.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>name</replaceable>
- <replaceable>&hellip;</replaceable></term>
-
- <listitem>
- <para>Print accounting information for the given user
- <replaceable>names</replaceable> only.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>In the default summary that &man.pac.8; produces, you see the
- number of pages printed by each user from various hosts. If, at
- your site, host does not matter (because users can use any host),
- run <command>pac -m</command>, to produce the following
- summary:</para>
-
- <screen> Login pages/feet runs price
-andy 2.00 1 $ 0.04
-kelly 182.00 105 $ 3.64
-mary 118.00 35 $ 2.36
-root 26.00 12 $ 0.52
-zhang 9.00 1 $ 0.18
-
-total 337.00 154 $ 6.74</screen>
-
-
- <para>To compute the dollar amount due,
- &man.pac.8; uses the <literal>pc</literal> capability in the
- <filename>/etc/printcap</filename> file (default of 200, or 2 cents
- per page). Specify, in hundredths of cents, the price per page or
- per foot you want to charge for printouts in this capability. You
- can override this value when you run &man.pac.8; with the
- <option>-p</option> option. The units for the <option>-p</option>
- option are in dollars, though, not hundredths of cents. For
- example,
-
- <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen>
-
- makes each page cost one dollar and fifty cents. You can really
- rake in the profits by using this option.</para>
-
- <para>Finally, running <command>pac -s</command> will save the summary
- information in a summary accounting file, which is named the same as
- the printer's accounting file, but with <literal>_sum</literal>
- appended to the name. It then truncates the accounting file. When
- you run &man.pac.8; again, it rereads the
- summary file to get starting totals, then adds information from the
- regular accounting file.</para>
- </sect3>
-
- <sect3>
- <title>How Can You Count Pages Printed?</title>
-
- <para>In order to perform even remotely accurate accounting, you need
- to be able to determine how much paper a job uses. This is the
- essential problem of printer accounting.</para>
-
- <para>For plain text jobs, the problem is not that hard to solve: you
- count how many lines are in a job and compare it to how many lines
- per page your printer supports. Do not forget to take into account
- backspaces in the file which overprint lines, or long logical lines
- that wrap onto one or more additional physical lines.</para>
-
- <para>The text filter <command>lpf</command> (introduced in <link
- linkend="printing-advanced-lpf">lpf: a Text Filter</link>) takes
- into account these things when it does accounting. If you are
- writing a text filter which needs to do accounting, you might want
- to examine <command>lpf</command>'s source code.</para>
-
- <para>How do you handle other file formats, though?</para>
-
- <para>Well, for DVI-to-LaserJet or DVI-to-PostScript conversion, you
- can have your filter parse the diagnostic output of
- <command>dvilj</command> or <command>dvips</command> and look to see
- how many pages were converted. You might be able to do similar
- things with other file formats and conversion programs.</para>
-
- <para>But these methods suffer from the fact that the printer may not
- actually print all those pages. For example, it could jam, run out
- of toner, or explode&mdash;and the user would still get
- charged.</para>
-
- <para>So, what can you do?</para>
-
- <para>There is only one <emphasis>sure</emphasis> way to do
- <emphasis>accurate</emphasis> accounting. Get a printer that can
- tell you how much paper it uses, and attach it via a serial line or
- a network connection. Nearly all PostScript printers support this
- notion. Other makes and models do as well (networked Imagen laser
- printers, for example). Modify the filters for these printers to
- get the page usage after they print each job and have them log
- accounting information based on that value
- <emphasis>only</emphasis>. There is no line counting nor
- error-prone file examination required.</para>
-
- <para>Of course, you can always be generous and make all printouts
- free.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="printing-using">
- <title>Using Printers</title>
-
- <para>This section tells you how to use printers you have setup with
- FreeBSD. Here is an overview of the user-level commands:</para>
-
- <variablelist>
- <varlistentry>
- <term>&man.lpr.1;</term>
-
- <listitem>
- <para>Print jobs</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&man.lpq.1;</term>
-
- <listitem>
- <para>Check printer queues</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&man.lprm.1;</term>
-
- <listitem>
- <para>Remove jobs from a printer's queue</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>There is also an administrative command, &man.lpc.8;, described in
- the section <link linkend="printing-lpc">Administrating the LPD
- Spooler</link>, used to control printers and their queues.</para>
-
- <para>All three of the commands &man.lpr.1;, &man.lprm.1;, and &man.lpq.1;
- accept an option <option>-P
- <replaceable>printer-name</replaceable></option> to specify on which
- printer/queue to operate, as listed in the
- <filename>/etc/printcap</filename> file. This enables you to submit,
- remove, and check on jobs for various printers. If you do not use the
- <option>-P</option> option, then these commands use the printer
- specified in the <envar>PRINTER</envar> environment variable. Finally,
- if you do not have a <envar>PRINTER</envar> environment variable, these
- commands default to the printer named <literal>lp</literal>.</para>
-
- <para>Hereafter, the terminology <emphasis>default printer</emphasis>
- means the printer named in the <envar>PRINTER</envar> environment
- variable, or the printer named <literal>lp</literal> when there is no
- <envar>PRINTER</envar> environment variable.</para>
-
- <sect2 id="printing-lpr">
- <title>Printing Jobs</title>
-
- <para>To print files, type:</para>
-
- <screen>&prompt.user; <userinput>lpr <replaceable>filename</replaceable> <replaceable>...</replaceable></userinput></screen>
-
- <para>This prints each of the listed files to the default printer. If
- you list no files, &man.lpr.1; reads data to
- print from standard input. For example, this command prints some
- important system files:</para>
-
- <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen>
-
- <para>To select a specific printer, type:</para>
-
- <screen>&prompt.user; <userinput>lpr -P <replaceable>printer-name</replaceable> <replaceable>filename</replaceable> <replaceable>...</replaceable></userinput></screen>
-
- <para>This example prints a long listing of the current directory to the
- printer named <literal>rattan</literal>:</para>
-
- <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen>
-
- <para>Because no files were listed for the
- &man.lpr.1; command, <command>lpr</command> read the data to print
- from standard input, which was the output of the <command>ls
- -l</command> command.</para>
-
- <para>The &man.lpr.1; command can also accept a wide variety of options
- to control formatting, apply file conversions, generate multiple
- copies, and so forth. For more information, see the section <link
- linkend="printing-lpr-options">Printing Options</link>.</para>
- </sect2>
-
- <sect2 id="printing-lpq">
- <title>Checking Jobs</title>
-
- <para>When you print with &man.lpr.1;, the data you wish to print is put
- together in a package called a <quote>print job</quote>, which is sent
- to the LPD spooling system. Each printer has a queue of jobs, and
- your job waits in that queue along with other jobs from yourself and
- from other users. The printer prints those jobs in a first-come,
- first-served order.</para>
-
- <para>To display the queue for the default printer, type &man.lpq.1;.
- For a specific printer, use the <option>-P</option> option. For
- example, the command
-
- <screen>&prompt.user; <userinput>lpq -P bamboo</userinput></screen>
-
- shows the queue for the printer named <hostid>bamboo</hostid>. Here
- is an example of the output of the <command>lpq</command>
- command:</para>
-
- <screen>bamboo is ready and printing
-Rank Owner Job Files Total Size
-active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes
-2nd kelly 10 (standard input) 1635 bytes
-3rd mary 11 ... 78519 bytes</screen>
-
- <para>This shows three jobs in the queue for <literal>bamboo</literal>.
- The first job, submitted by user kelly, got assigned <quote>job
- number</quote> 9. Every job for a printer gets a unique job number.
- Most of the time you can ignore the job number, but you will need it
- if you want to cancel the job; see section <link
- linkend="printing-lprm">Removing Jobs</link> for details.</para>
-
- <para>Job number nine consists of two files; multiple files given on the
- &man.lpr.1; command line are treated as part of a single job. It
- is the currently active job (note the word <literal>active</literal>
- under the <quote>Rank</quote> column), which means the printer should
- be currently printing that job. The second job consists of data
- passed as the standard input to the &man.lpr.1; command. The third
- job came from user <username>mary</username>; it is a much larger
- job. The pathname of the files she's trying to print is too long to
- fit, so the &man.lpq.1; command just shows three dots.</para>
-
- <para>The very first line of the output from &man.lpq.1; is also useful:
- it tells what the printer is currently doing (or at least what LPD
- thinks the printer is doing).</para>
-
- <para>The &man.lpq.1; command also support a <option>-l</option> option
- to generate a detailed long listing. Here is an example of
- <command>lpq -l</command>:</para>
-
- <screen>waiting for bamboo to become ready (offline ?)
-kelly: 1st [job 009rose]
- /etc/host.conf 73 bytes
- /etc/hosts.equiv 15 bytes
-
-kelly: 2nd [job 010rose]
- (standard input) 1635 bytes
-
-mary: 3rd [job 011rose]
- /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes</screen>
- </sect2>
-
- <sect2 id="printing-lprm">
- <title>Removing Jobs</title>
-
- <para>If you change your mind about printing a job, you can remove the
- job from the queue with the &man.lprm.1; command. Often, you can
- even use &man.lprm.1; to remove an active job, but some or all of the
- job might still get printed.</para>
-
- <para>To remove a job from the default printer, first use
- &man.lpq.1; to find the job number. Then type:</para>
-
- <screen>&prompt.user; <userinput>lprm <replaceable>job-number</replaceable></userinput></screen>
-
- <para>To remove the job from a specific printer, add the
- <option>-P</option> option. The following command removes job number
- 10 from the queue for the printer <hostid>bamboo</hostid>:</para>
-
- <screen>&prompt.user; <userinput>lprm -P bamboo 10</userinput></screen>
-
- <para>The &man.lprm.1; command has a few shortcuts:</para>
-
- <variablelist>
- <varlistentry>
- <term>lprm -</term>
-
- <listitem>
- <para>Removes all jobs (for the default printer) belonging to
- you.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>lprm <replaceable>user</replaceable></term>
-
- <listitem>
- <para>Removes all jobs (for the default printer) belonging to
- <replaceable>user</replaceable>. The superuser can remove other
- users' jobs; you can remove only your own jobs.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>lprm</term>
-
- <listitem>
- <para>With no job number, user name, or <option>-</option>
- appearing on the command line,
- &man.lprm.1; removes the currently active job on the
- default printer, if it belongs to you. The superuser can remove
- any active job.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Just use the <option>-P</option> option with the above shortcuts
- to operate on a specific printer instead of the default. For example,
- the following command removes all jobs for the current user in the
- queue for the printer named <literal>rattan</literal>:</para>
-
- <screen>&prompt.user; <userinput>lprm -P rattan -</userinput></screen>
-
- <note>
- <para>If you are working in a networked environment, &man.lprm.1; will
- let you remove jobs only from the
- host from which the jobs were submitted, even if the same printer is
- available from other hosts. The following command sequence
- demonstrates this:</para>
-
- <screen>&prompt.user; <userinput>lpr -P rattan myfile</userinput>
-&prompt.user; <userinput>rlogin orchid</userinput>
-&prompt.user; <userinput>lpq -P rattan</userinput>
-Rank Owner Job Files Total Size
-active seeyan 12 ... 49123 bytes
-2nd kelly 13 myfile 12 bytes
-&prompt.user; <userinput>lprm -P rattan 13</userinput>
-rose: Permission denied
-&prompt.user; <userinput>logout</userinput>
-&prompt.user; <userinput>lprm -P rattan 13</userinput>
-dfA013rose dequeued
-cfA013rose dequeued
- </screen>
- </note>
- </sect2>
-
- <sect2 id="printing-lpr-options">
- <title>Beyond Plain Text: Printing Options</title>
-
- <para>The &man.lpr.1; command supports a number of options that control
- formatting text, converting graphic and other file formats, producing
- multiple copies, handling of the job, and more. This section
- describes the options.</para>
-
- <sect3 id="printing-lpr-options-format">
- <title>Formatting and Conversion Options</title>
-
- <para>The following &man.lpr.1; options control formatting of the
- files in the job. Use these options if the job does not contain
- plain text or if you want plain text formatted through the
- &man.pr.1; utility.</para>
-
- <para>For example, the following command prints a DVI file (from the
- TeX typesetting system) named <filename>fish-report.dvi</filename>
- to the printer named <literal>bamboo</literal>:</para>
-
- <screen>&prompt.user; <userinput>lpr -P bamboo -d fish-report.dvi</userinput></screen>
-
- <para>These options apply to every file in the job, so you cannot mix
- (say) DVI and ditroff files together in a job. Instead, submit the
- files as separate jobs, using a different conversion option for each
- job.</para>
-
- <note>
- <para>All of these options except <option>-p</option> and
- <option>-T</option> require conversion filters installed for the
- destination printer. For example, the <option>-d</option> option
- requires the DVI conversion filter. Section <link
- linkend="printing-advanced-convfilters">Conversion
- Filters</link> gives details.</para>
- </note>
-
- <variablelist>
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>Print cifplot files.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-d</option></term>
-
- <listitem>
- <para>Print DVI files.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-f</option></term>
-
- <listitem>
- <para>Print FORTRAN text files.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-g</option></term>
-
- <listitem>
- <para>Print plot data.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-i <replaceable>number</replaceable></option></term>
-
- <listitem>
- <para>Indent the output by <replaceable>number</replaceable>
- columns; if you omit <replaceable>number</replaceable>, indent
- by 8 columns. This option works only with certain conversion
- filters.</para>
-
- <note>
- <para>Do not put any space between the <option>-i</option> and
- the number.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-l</option></term>
-
- <listitem>
- <para>Print literal text data, including control
- characters.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-n</option></term>
-
- <listitem>
- <para>Print ditroff (device independent troff) data.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-p</term>
-
- <listitem>
- <para>Format plain text with &man.pr.1; before printing. See
- &man.pr.1; for more information.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-T <replaceable>title</replaceable></option></term>
-
- <listitem>
- <para>Use <replaceable>title</replaceable> on the
- &man.pr.1; header instead of the file name. This option has
- effect only when used with the <option>-p</option>
- option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-t</option></term>
-
- <listitem>
- <para>Print troff data.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-v</option></term>
-
- <listitem>
- <para>Print raster data.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Here is an example: this command prints a nicely formatted
- version of the &man.ls.1; manual page on the default printer:</para>
-
- <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen>
-
- <para>The &man.zcat.1; command uncompresses the source of the
- &man.ls.1; manual page and passes it to the &man.troff.1;
- command, which formats that source and makes GNU troff
- output and passes it to &man.lpr.1;, which submits the job
- to the LPD spooler. Because we used the <option>-t</option>
- option to &man.lpr.1;, the spooler will convert the GNU
- troff output into a format the default printer can
- understand when it prints the job.</para>
- </sect3>
-
- <sect3 id="printing-lpr-options-job-handling">
- <title>Job Handling Options</title>
-
- <para>The following options to &man.lpr.1; tell LPD to handle the job
- specially:</para>
-
- <variablelist>
- <varlistentry>
- <term>-# <replaceable>copies</replaceable></term>
-
- <listitem>
- <para>Produce a number of <replaceable>copies</replaceable> of
- each file in the job instead of just one copy. An
- administrator may disable this option to reduce printer
- wear-and-tear and encourage photocopier usage. See section
- <link
- linkend="printing-advanced-restricting-copies">Restricting
- Multiple Copies</link>.</para>
-
- <para>This example prints three copies of
- <filename>parser.c</filename> followed by three copies of
- <filename>parser.h</filename> to the default printer:</para>
-
- <screen>&prompt.user; <userinput>lpr -#3 parser.c parser.h</userinput></screen>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-m</term>
-
- <listitem>
- <para>Send mail after completing the print job. With this
- option, the LPD system will send mail to your account when it
- finishes handling your job. In its message, it will tell you
- if the job completed successfully or if there was an error,
- and (often) what the error was.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-s</term>
-
- <listitem>
- <para>Do not copy the files to the spooling directory, but make
- symbolic links to them instead.</para>
-
- <para>If you are printing a large job, you probably want to use
- this option. It saves space in the spooling directory (your
- job might overflow the free space on the filesystem where the
- spooling directory resides). It saves time as well since LPD
- will not have to copy each and every byte of your job to the
- spooling directory.</para>
-
- <para>There is a drawback, though: since LPD will refer to the
- original files directly, you cannot modify or remove them
- until they have been printed.</para>
-
- <note>
- <para>If you are printing to a remote printer, LPD will
- eventually have to copy files from the local host to the
- remote host, so the <option>-s</option> option will save
- space only on the local spooling directory, not the remote.
- It is still useful, though.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-r</term>
-
- <listitem>
- <para>Remove the files in the job after copying them to the
- spooling directory, or after printing them with the
- <option>-s</option> option. Be careful with this
- option!</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
-
- <sect3 id="printing-lpr-options-misc">
- <title>Header Page Options</title>
-
- <para>These options to &man.lpr.1; adjust the text that normally
- appears on a job's header page. If header pages are suppressed for
- the destination printer, these options have no effect. See section
- <link linkend="printing-advanced-header-pages">Header Pages</link>
- for information about setting up header pages.</para>
-
- <variablelist>
- <varlistentry>
- <term>-C <replaceable>text</replaceable></term>
-
- <listitem>
- <para>Replace the hostname on the header page with
- <replaceable>text</replaceable>. The hostname is normally the
- name of the host from which the job was submitted.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-J <replaceable>text</replaceable></term>
-
- <listitem>
- <para>Replace the job name on the header page with
- <replaceable>text</replaceable>. The job name is normally the
- name of the first file of the job, or
- <filename>stdin</filename> if you are printing standard
- input.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-h</term>
-
- <listitem>
- <para>Do not print any header page.</para>
-
- <note>
- <para>At some sites, this option may have no effect due to the
- way header pages are generated. See <link
- linkend="printing-advanced-header-pages">Header
- Pages</link> for details.</para>
- </note>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
- </sect2>
-
- <sect2 id="printing-lpc">
- <title>Administrating Printers</title>
-
- <para>As an administrator for your printers, you have had to install,
- set up, and test them. Using the &man.lpc.8; command, you
- can interact with your printers in yet more ways. With &man.lpc.8;,
- you can</para>
-
- <itemizedlist>
- <listitem>
- <para>Start and stop the printers</para>
- </listitem>
-
- <listitem>
- <para>Enable and disable their queues</para>
- </listitem>
-
- <listitem>
- <para>Rearrange the order of the jobs in each queue.</para>
- </listitem>
- </itemizedlist>
-
- <para>First, a note about terminology: if a printer is
- <emphasis>stopped</emphasis>, it will not print anything in its queue.
- Users can still submit jobs, which will wait in the queue until the
- printer is <emphasis>started</emphasis> or the queue is
- cleared.</para>
-
- <para>If a queue is <emphasis>disabled</emphasis>, no user (except root)
- can submit jobs for the printer. An <emphasis>enabled</emphasis>
- queue allows jobs to be submitted. A printer can be
- <emphasis>started</emphasis> for a disabled queue, in which case it
- will continue to print jobs in the queue until the queue is
- empty.</para>
-
- <para>In general, you have to have root privileges to use the
- &man.lpc.8; command. Ordinary users can use the &man.lpc.8; command
- to get printer status and to restart a hung printer only.</para>
-
- <para>Here is a summary of the &man.lpc.8; commands. Most of the
- commands takes a <replaceable>printer-name</replaceable> argument to
- tell on which printer to operate. You can use <literal>all</literal>
- for the <replaceable>printer-name</replaceable> to mean all printers
- listed in <filename>/etc/printcap</filename>.</para>
-
- <variablelist>
- <varlistentry>
- <term><command>abort
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Cancel the current job and stop the printer. Users can
- still submit jobs if the queue's enabled.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>clean
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Remove old files from the printer's spooling directory.
- Occasionally, the files that make up a job are not properly
- removed by LPD, particularly if there have been errors during
- printing or a lot of administrative activity. This command
- finds files that do not belong in the spooling directory and
- removes them.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>disable
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Disable queuing of new jobs. If the printer's started, it
- will continue to print any jobs remaining in the queue. The
- superuser (root) can always submit jobs, even to a disabled
- queue.</para>
-
- <para>This command is useful while you are testing a new printer
- or filter installation: disable the queue and submit jobs as
- root. Other users will not be able to submit jobs until you
- complete your testing and re-enable the queue with the
- <command>enable</command> command.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>down <replaceable>printer-name</replaceable>
- <replaceable>message</replaceable></command></term>
-
- <listitem>
- <para>Take a printer down. Equivalent to
- <command>disable</command> followed by <command>stop</command>.
- The <replaceable>message</replaceable> appears as the printer's
- status whenever a user checks the printer's queue with
- &man.lpq.1; or status with <command>lpc
- status</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>enable
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Enable the queue for a printer. Users can submit jobs but
- the printer will not print anything until it is started.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>help
- <replaceable>command-name</replaceable></command></term>
-
- <listitem>
- <para>Print help on the command
- <replaceable>command-name</replaceable>. With no
- <replaceable>command-name</replaceable>, print a summary of the
- commands available.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>restart
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Start the printer. Ordinary users can use this command if
- some extraordinary circumstance hangs LPD, but they cannot start
- a printer stopped with either the <command>stop</command> or
- <command>down</command> commands. The
- <command>restart</command> command is equivalent to
- <command>abort</command> followed by
- <command>start</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>start
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Start the printer. The printer will print jobs in its
- queue.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>stop
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Stop the printer. The printer will finish the current job
- and will not print anything else in its queue. Even though the
- printer is stopped, users can still submit jobs to an enabled
- queue.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>topq <replaceable>printer-name</replaceable>
- <replaceable>job-or-username</replaceable></command></term>
-
- <listitem>
- <para>Rearrange the queue for
- <replaceable>printer-name</replaceable> by placing the jobs with
- the listed <replaceable>job</replaceable> numbers or the jobs
- belonging to <replaceable>username</replaceable> at the top of
- the queue. For this command, you cannot use
- <literal>all</literal> as the
- <replaceable>printer-name</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>up
- <replaceable>printer-name</replaceable></command></term>
-
- <listitem>
- <para>Bring a printer up; the opposite of the
- <command>down</command> command. Equivalent to
- <command>start</command> followed by
- <command>enable</command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>&man.lpc.8; accepts the above commands on the command line. If
- you do not enter any commands, &man.lpc.8; enters an interactive mode,
- where you can enter commands until you type <command>exit</command>,
- <command>quit</command>, or end-of-file.</para>
- </sect2>
- </sect1>
-
- <sect1 id="printing-lpd-alternatives">
- <title>Alternatives to the Standard Spooler</title>
-
- <para>If you have been reading straight through this manual, by now you
- have learned just about everything there is to know about the LPD
- spooling system that comes with FreeBSD. You can probably appreciate
- many of its shortcomings, which naturally leads to the question:
- <quote>What other spooling systems are out there (and work with
- FreeBSD)?</quote></para>
-
- <variablelist>
- <varlistentry>
- <term>LPRng</term>
-
- <listitem>
- <para>LPRng, which purportedly means <quote>LPR: the Next
- Generation</quote> is a complete rewrite of PLP. Patrick Powell
- and Justin Mason (the principal maintainer of PLP) collaborated to
- make LPRng. The main site for LPRng is <ulink
- url="http://www.astart.com/lprng/LPRng.html">http://www.astart.com/lprng/LPRng.html</ulink>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="printing-troubleshooting">
- <title>Troubleshooting</title>
-
- <para>After performing the simple test with &man.lptest.1;, you might
- have gotten one of the following results instead of the correct
- printout:</para>
-
- <variablelist>
- <varlistentry>
- <term>It worked, after awhile; or, it did not eject a full
- sheet.</term>
-
- <listitem>
- <para>The printer printed the above, but it sat for awhile and
- did nothing. In fact, you might have needed to press a
- PRINT REMAINING or FORM FEED button on the printer to get any
- results to appear.</para>
-
- <para>If this is the case, the printer was probably waiting to
- see if there was any more data for your job before it printed
- anything. To fix this problem, you can have the text filter
- send a FORM FEED character (or whatever is necessary) to the
- printer. This is usually sufficient to have the printer
- immediately print any text remaining in its internal buffer.
- It is also useful to make sure each print job ends on a full
- sheet, so the next job does not start somewhere on the middle
- of the last page of the previous job.</para>
-
- <para>The following replacement for the shell script
- <filename>/usr/local/libexec/if-simple</filename> prints a
- form feed after it sends the job to the printer:</para>
-
- <programlisting>#!/bin/sh
-#
-# if-simple - Simple text input filter for lpd
-# Installed in /usr/local/libexec/if-simple
-#
-# Simply copies stdin to stdout. Ignores all filter arguments.
-# Writes a form feed character (\f) after printing job.
-
-/bin/cat &amp;&amp; printf "\f" &amp;&amp; exit 0
-exit 2</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>It produced the <quote>staircase effect.</quote></term>
-
- <listitem>
- <para>You got the following on paper:</para>
-
- <programlisting>!"#$%&amp;'()*+,-./01234
- "#$%&amp;'()*+,-./012345
- #$%&amp;'()*+,-./0123456</programlisting>
-
- <para>You have become another victim of the <emphasis>staircase
- effect</emphasis>, caused by conflicting interpretations of
- what characters should indicate a new line. UNIX-style
- operating systems use a single character: ASCII code 10, the
- line feed (LF). MS-DOS, OS/2, and others uses a pair of
- characters, ASCII code 10 <emphasis>and</emphasis> ASCII code
- 13 (the carriage return or CR). Many printers use the MS-DOS
- convention for representing new-lines.</para>
-
- <para>When you print with FreeBSD, your text used just the line
- feed character. The printer, upon seeing a line feed
- character, advanced the paper one line, but maintained the
- same horizontal position on the page for the next character
- to print. That is what the carriage return is for: to move
- the location of the next character to print to the left edge
- of the paper.</para>
-
- <para>Here is what FreeBSD wants your printer to do:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>Printer received CR</entry>
- <entry>Printer prints CR</entry>
- </row>
-
- <row>
- <entry>Printer received LF</entry>
- <entry>Printer prints CR + LF</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Here are some ways to achieve this:</para>
-
- <itemizedlist>
- <listitem>
- <para>Use the printer's configuration switches or control
- panel to alter its interpretation of these characters.
- Check your printer's manual to find out how to do
- this.</para>
-
- <note>
- <para>If you boot your system into other operating systems
- besides FreeBSD, you may have to
- <emphasis>reconfigure</emphasis> the printer to use a an
- interpretation for CR and LF characters that those other
- operating systems use. You might prefer one of the other
- solutions, below.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Have FreeBSD's serial line driver automatically
- convert LF to CR+LF. Of course, this works with printers
- on serial ports <emphasis>only</emphasis>. To enable this
- feature, set the CRMOD bit in <literal>fs</literal>
- capability in the <filename>/etc/printcap</filename> file
- for the printer.</para>
- </listitem>
-
- <listitem>
- <para>Send an <emphasis>escape code</emphasis> to the
- printer to have it temporarily treat LF characters
- differently. Consult your printer's manual for escape
- codes that your printer might support. When you find the
- proper escape code, modify the text filter to send the
- code first, then send the print job.</para>
-
- <para>Here is an example text filter for printers that
- understand the Hewlett-Packard PCL escape codes. This
- filter makes the printer treat LF characters as a LF and
- CR; then it sends the job; then it sends a form feed to
- eject the last page of the job. It should work with
- nearly all Hewlett Packard printers.</para>
-
- <programlisting>#!/bin/sh
-#
-# hpif - Simple text input filter for lpd for HP-PCL based printers
-# Installed in /usr/local/libexec/hpif
-#
-# Simply copies stdin to stdout. Ignores all filter arguments.
-# Tells printer to treat LF as CR+LF. Ejects the page when done.
-
-printf "\033&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp; exit 0
-exit 2</programlisting>
-
- <para>Here is an example <filename>/etc/printcap</filename>
- from a host called orchid. It has a single printer
- attached to its first parallel port, a Hewlett Packard
- LaserJet 3Si named <hostid>teak</hostid>. It is using the
- above script as its text filter:</para>
-
- <programlisting>#
-# /etc/printcap for host orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>It overprinted each line.</term>
-
- <listitem>
- <para>The printer never advanced a line. All of the lines of
- text were printed on top of each other on one line.</para>
-
- <para>This problem is the <quote>opposite</quote> of the
- staircase effect, described above, and is much rarer.
- Somewhere, the LF characters that FreeBSD uses to end a line
- are being treated as CR characters to return the print
- location to the left edge of the paper, but not also down a
- line.</para>
-
- <para>Use the printer's configuration switches or control panel
- to enforce the following interpretation of LF and CR
- characters:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Printer receives</entry>
- <entry>Printer prints</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>CR</entry>
- <entry>CR</entry>
- </row>
-
- <row>
- <entry>LF</entry>
- <entry>CR + LF</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The printer lost characters.</term>
-
- <listitem>
- <para>While printing, the printer did not print a few characters
- in each line. The problem might have gotten worse as the
- printer ran, losing more and more characters.</para>
-
- <para>The problem is that the printer cannot keep up with the
- speed at which the computer sends data over a serial line
- (this problem should not occur with printers on parallel
- ports). There are two ways to overcome the problem:</para>
-
- <itemizedlist>
- <listitem>
- <para>If the printer supports XON/XOFF flow control, have
- FreeBSD use it by specifying the TANDEM bit in the
- <literal>fs</literal> capability.</para>
- </listitem>
-
- <listitem>
- <para>If the printer supports carrier flow control, specify
- the MDMBUF bit in the <literal>fs</literal> capability.
- Make sure the cable connecting the printer to the computer
- is correctly wired for carrier flow control.</para>
- </listitem>
-
- <listitem>
- <para>If the printer does not support any flow control, use
- some combination of the NLDELAY, TBDELAY, CRDELAY, VTDELAY,
- and BSDELAY bits in the <literal>fs</literal> capability
- to add appropriate delays to the stream of data sent to
- the printer.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>It printed garbage.</term>
-
- <listitem>
- <para>The printer printed what appeared to be random garbage,
- but not the desired text.</para>
-
- <para>This is usually another symptom of incorrect
- communications parameters with a serial printer. Double-check
- the bps rate in the <literal>br</literal> capability, and the
- parity bits in the <literal>fs</literal> and
- <literal>fc</literal> capabilities; make sure the printer is
- using the same settings as specified in the
- <filename>/etc/printcap</filename> file.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Nothing happened.</term>
-
- <listitem>
- <para>If nothing happened, the problem is probably within
- FreeBSD and not the hardware. Add the log file
- (<literal>lf</literal>) capability to the entry for the
- printer you are debugging in the
- <filename>/etc/printcap</filename> file. For example, here is
- the entry for <literal>rattan</literal>, with the
- <literal>lf</literal> capability:</para>
-
- <programlisting>rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:\
- :lf=/var/log/rattan.log</programlisting>
-
- <para>Then, try printing again. Check the log file (in our
- example, <filename>/var/log/rattan.log</filename>) to see any
- error messages that might appear. Based on the messages you
- see, try to correct the problem.</para>
-
- <para>If you do not specify a <literal>lf</literal> capability,
- LPD uses <filename>/dev/console</filename> as a
- default.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
-
diff --git a/en_US.ISO8859-1/books/handbook/security/chapter.sgml b/en_US.ISO8859-1/books/handbook/security/chapter.sgml
deleted file mode 100644
index 1c9edfc918..0000000000
--- a/en_US.ISO8859-1/books/handbook/security/chapter.sgml
+++ /dev/null
@@ -1,2689 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/security/chapter.sgml,v 1.41 2001/04/09 00:33:56 dd Exp $
--->
-
-<chapter id="security">
- <title>Security</title>
-
- <para><emphasis>Much of this chapter has been taken from the
- &man.security.7; man page, originally written by
- &a.dillon;.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>The following chapter will provide a basic introduction to
- system security concepts, some general good rules of thumb, and some
- advanced topics such as S/Key, OpenSSL, Kerberos, and others.</para>
- </sect1>
-
- <sect1 id="security-intro">
- <title>Introduction</title>
-
- <para>Security is a function that begins and ends with the system
- administrator. While all BSD UNIX multi-user systems have some
- inherent security, the job of building and maintaining additional
- security mechanisms to keep those users <quote>honest</quote> is
- probably one of the single largest undertakings of the sysadmin.
- Machines are only as secure as you make them, and security concerns
- are ever competing with the human necessity for convenience. UNIX
- systems, in general, are capable of running a huge number of
- simultaneous processes and many of these processes operate as
- servers &ndash; meaning that external entities can connect and talk
- to them. As yesterday's mini-computers and mainframes become
- today's desktops, and as computers become networked and
- internetworked, security becomes an ever bigger issue.</para>
-
- <para>Security is best implemented through a layered
- <quote>onion</quote> approach. In a nutshell, what you want to do is
- to create as many layers of security as are convenient and then
- carefully monitor the system for intrusions. 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
- any security mechanism. For example, it makes little sense to set
- the schg flags (see &man.chflags.1;) on every system binary because
- while this may temporarily protect the binaries, it prevents an
- attacker who has broken in from making an easily detectable change
- that may result in your security mechanisms not detecting the attacker
- at all.</para>
-
- <para>System security also pertains to dealing with various forms of
- attack, including attacks that attempt to crash or otherwise make a
- system unusable but do not attempt to break root. Security concerns
- can be split up into several categories:</para>
-
- <orderedlist>
- <listitem>
- <para>Denial of service attacks.</para>
- </listitem>
-
- <listitem>
- <para>User account compromises.</para>
- </listitem>
-
- <listitem>
- <para>Root compromise through accessible servers.</para>
- </listitem>
-
- <listitem>
- <para>Root compromise via user accounts.</para>
- </listitem>
-
- <listitem>
- <para>Backdoor creation.</para>
- </listitem>
- </orderedlist>
-
- <para>A denial of service attack is an action that deprives the
- machine of needed resources. Typically, D.O.S. attacks are
- brute-force mechanisms that attempt to crash or otherwise make a
- machine unusable by overwhelming its servers or network stack. Some
- D.O.S. attacks try to take advantages of bugs in the networking
- stack to crash a machine with a single packet. The latter can only
- be fixed by applying a bug fix to the kernel. Attacks on servers
- can often be fixed by properly specifying options to limit the load
- the servers incur on the system under adverse conditions.
- Brute-force network attacks are harder to deal with. A
- spoofed-packet attack, for example, is nearly impossible to stop
- short of cutting your system off from the internet. It may not be
- able to take your machine down, but it can fill up internet
- pipe.</para>
-
- <para>A user account compromise is even more common then a D.O.S.
- attack. Many sysadmins still run standard telnetd, rlogind, rshd,
- and ftpd servers on their machines. These servers, by default, do
- not operate over encrypted connections. The result is that if you
- have any moderate-sized user base, one or more of your users logging
- into your system from a remote location (which is the most common
- and convenient way to login to a system) will have his or her
- password sniffed. The attentive system admin will analyze his
- remote access logs looking for suspicious source addresses even for
- successful logins.</para>
-
- <para>One must always assume that once an attacker has access to a
- user account, the attacker can break root. However, the reality is
- that in a well secured and maintained system, access to a user
- account does not necessarily give the attacker access to root. The
- distinction is important because without access to root the attacker
- cannot generally hide his tracks and may, at best, be able to do
- nothing more then mess with the user's files or crash the machine.
- User account compromises are very common because users tend not to
- take the precautions that sysadmins take.</para>
-
- <para>System administrators must keep in mind that there are
- potentially many ways to break root on a machine. The attacker
- may know the root password, the attacker may find a bug in a
- root-run server and be able to break root over a network
- connection to that server, or the attacker may know of a bug in
- an suid-root program that allows the attacker to break root once
- he has broken into a user's account. If an attacker has found a
- a way to break root on a machine, the attacker may not have a need
- to install a backdoor. Many of the root holes
- found and closed to date involve a considerable amount of work
- by the attacker to cleanup after himself, so most attackers install
- backdoors. Backdoors provide the attacker with a way to easily
- regain root access to the system, but it also gives the smart
- system administrator a convenient way to detect the intrusion.
- Making it impossible for an attacker to install a backdoor may
- actually be detrimental to your security because it will not
- close off the hole the attacker found to break in the first
- place.</para>
-
- <para>Security remedies should always be implemented with a
- multi-layered <quote>onion peel</quote> approach and can be
- categorized as follows:</para>
-
- <orderedlist>
- <listitem>
- <para>Securing root and staff accounts.</para>
- </listitem>
-
- <listitem>
- <para>Securing root &ndash; root-run servers and suid/sgid
- binaries.</para>
- </listitem>
-
- <listitem>
- <para>Securing user accounts.</para>
- </listitem>
-
- <listitem>
- <para>Securing the password file.</para>
- </listitem>
-
- <listitem>
- <para>Securing the kernel core, raw devices, and
- filesystems.</para>
- </listitem>
-
- <listitem>
- <para>Quick detection of inappropriate changes made to the
- system.</para>
- </listitem>
-
- <listitem>
- <para>Paranoia.</para>
- </listitem>
- </orderedlist>
-
- <para>The next section of this chapter will cover the above bullet
- items in greater depth.</para>
- </sect1>
-
- <sect1 id="securing-freebsd">
- <title>Securing FreeBSD</title>
-
- <para>The sections that follow will cover the methods of securing your
- FreeBSD system that were mentioned in the <link
- linkend="security-intro">last section</link> of this chapter.</para>
-
- <sect2 id="securing-root-and-staff">
- <title>Securing the root account and staff accounts</title>
-
- <para>First off, do not bother securing staff accounts if you have
- not secured the root account. Most systems have a password
- assigned to the root account. The first thing you do is assume
- that the password is <emphasis>always</emphasis> compromised.
- This does not mean that you should remove the password. The
- password is almost always necessary for console access to the
- machine. What it does mean is that you should not make it
- possible to use the password outside of the console or possibly
- even with the &man.su.1; command. For example, make sure that
- your pty's are specified as being unsecure in the
- <filename>/etc/ttys</filename> file so that direct root logins
- via <command>telnet</command> or <command>rlogin</command> are
- disallowed. If using other login services such as
- <application>sshd</application>, make sure that direct root logins
- are disabled there as well. Consider every access method &ndash;
- services such as FTP often fall through the cracks. Direct root
- logins should only be allowed via the system console.</para>
-
- <para>Of course, as a sysadmin you have to be able to get to root,
- so we open up a few holes. But we make sure these holes require
- additional password verification to operate. One way to make root
- accessible is to add appropriate staff accounts to the
- <literal>wheel</literal> group (in
- <filename>/etc/group</filename>). The staff members placed in the
- <literal>wheel</literal> group are allowed to
- <literal>su</literal> to root. You should never give staff
- members native wheel access by putting them in the
- <literal>wheel</literal> group in their password entry. Staff
- accounts should be placed in a <literal>staff</literal> group, and
- then added to the <literal>wheel</literal> group via the
- <filename>/etc/group</filename> file. Only those staff members
- who actually need to have root access should be placed in the
- <literal>wheel</literal> group. It is also possible, when using
- an authentication method such as kerberos, to use kerberos'
- <filename>.k5login</filename> file in the root account to allow a
- &man.ksu.1; to root without having to place anyone at all in the
- <literal>wheel</literal> group. This may be the better solution
- since the <literal>wheel</literal> mechanism still allows an
- intruder to break root if the intruder has gotten hold of your
- password file and can break into a staff account. While having
- the <literal>wheel</literal> mechanism is better then having
- nothing at all, it is not necessarily the safest option.</para>
-
- <para>An indirect way to secure the root account is to secure your
- staff accounts by using an alternative login access method and
- <literal>*</literal>'ing out the crypted password for the staff
- accounts. This way an intruder may be able to steal the password
- file but will not be able to break into any staff accounts (or,
- indirectly, root, even if root has a crypted password associated
- with it). Staff members get into their staff accounts through a
- secure login mechanism such as &man.kerberos.1; or &man.ssh.1;
- using a private/public key pair. When you use something like
- kerberos, you generally must secure the machines which run the
- kerberos servers and your desktop workstation. When you use a
- public/private key pair with <application>ssh</application>, you
- must generally secure the machine you are logging in
- <emphasis>from</emphasis> (typically your workstation), but you
- can also add an additional layer of protection to the key pair by
- password protecting the keypair when you create it with
- &man.ssh-keygen.1;. Being able to <literal>*</literal> out the
- passwords for staff accounts also guarantees that staff members can
- only login through secure access methods that you have setup. You
- can thus force all staff members to use secure, encrypted
- connections for all of their sessions which closes an important
- hole used by many intruders: That of sniffing the network from an
- unrelated, less secure machine.</para>
-
- <para>The more indirect security mechanisms also assume that you are
- logging in from a more restrictive server to a less restrictive
- server. For example, if your main box is running all sorts of
- servers, your workstation should not be running any. In order for
- your workstation to be reasonably secure you should run as few
- servers as possible, up to and including no servers at all, and
- you should run a password-protected screen blanker. Of course,
- given physical access to a workstation an attacker can break any
- sort of security you put on it. This is definitely a problem that
- you should consider but you should also consider the fact that the
- vast majority of break-ins occur remotely, over a network, from
- people who do not have physical access to your workstation or
- servers.</para>
-
- <para>Using something like kerberos also gives you the ability to
- disable or change the password for a staff account in one place
- and have it immediately effect all the machine the staff member
- may have an account on. If a staff member's account gets
- compromised, the ability to instantly change his password on all
- machines should not be underrated. With discrete passwords,
- changing a password on N machines can be a mess. You can also
- impose re-passwording restrictions with kerberos: not only can a
- kerberos ticket be made to timeout after a while, but the kerberos
- system can require that the user choose a new password after a
- certain period of time (say, once a month).</para>
- </sect2>
-
- <sect2>
- <title>Securing Root-run Servers and SUID/SGID Binaries</title>
-
- <para>The prudent sysadmin only runs the servers he needs to, no
- more, no less. Be aware that third party servers are often the
- most bug-prone. For example, running an old version of imapd or
- popper is like giving a universal root ticket out to the entire
- world. Never run a server that you have not checked out
- carefully. Many servers do not need to be run as root. For
- example, the <application>ntalk</application>,
- <application>comsat</application>, and
- <application>finger</application> daemons can be run in special
- user <literal>sandboxes</literal>. A sandbox isn't perfect unless
- you go to a large amount of trouble, but the onion approach to
- security still stands: If someone is able to break in through
- a server running in a sandbox, they still have to break out of the
- sandbox. The more layers the attacker must break through, the
- lower the likelihood of his success. Root holes have historically
- been found in virtually every server ever run as root, including
- basic system servers. If you are running a machine through which
- people only login via <application>sshd</application> and never
- login via <application>telnetd</application> or
- <application>rshd</application> or
- <application>rlogind</application>, then turn off those
- services!</para>
-
- <para>FreeBSD now defaults to running
- <application>ntalkd</application>,
- <application>comsat</application>, and
- <application>finger</application> in a sandbox. Another program
- which may be a candidate for running in a sandbox is &man.named.8;.
- <filename>/etc/defaults/rc.conf</filename> includes the arguments
- necessary to run <application>named</application> in a sandbox in a
- commented-out form. Depending on whether you are installing a new
- system or upgrading an existing system, the special user accounts
- used by these sandboxes may not be installed. The prudent
- sysadmin would research and implement sandboxes for servers
- whenever possible.</para>
-
- <para>There are a number of other servers that typically do not run
- in sandboxes: <application>sendmail</application>,
- <application>popper</application>,
- <application>imapd</application>, <application>ftpd</application>,
- and others. There are alternatives to some of these, but
- installing them may require more work then you are willing to
- perform (the convenience factor strikes again). You may have to
- run these servers as root and rely on other mechanisms to detect
- break-ins that might occur through them.</para>
-
- <para>The other big potential root hole in a system are the
- suid-root and sgid binaries installed on the system. Most of
- these binaries, such as <application>rlogin</application>, reside
- in <filename>/bin</filename>, <filename>/sbin</filename>,
- <filename>/usr/bin</filename>, or <filename>/usr/sbin</filename>.
- While nothing is 100% safe, the system-default suid and sgid
- binaries can be considered reasonably safe. Still, root holes are
- occasionally found in these binaries. A root hole was found in
- <literal>Xlib</literal> in 1998 that made
- <application>xterm</application> (which is typically suid)
- vulnerable. It is better to be safe then sorry and the prudent
- sysadmin will restrict suid binaries that only staff should run to
- a special group that only staff can access, and get rid of
- (<command>chmod 000</command>) any suid binaries that nobody uses.
- A server with no display generally does not need an
- <application>xterm</application> binary. Sgid binaries can be
- almost as dangerous. If an intruder can break an sgid-kmem binary
- the intruder might be able to read <filename>/dev/kmem</filename>
- and thus read the crypted password file, potentially compromising
- any passworded account. Alternatively an intruder who breaks
- group <literal>kmem</literal> can monitor keystrokes sent through
- pty's, including pty's used by users who login through secure
- methods. An intruder that breaks the tty group can write to
- almost any user's tty. If a user is running a terminal program or
- emulator with a keyboard-simulation feature, the intruder can
- potentially generate a data stream that causes the user's terminal
- to echo a command, which is then run as that user.</para>
- </sect2>
-
- <sect2 id="secure-users">
- <title>Securing User Accounts</title>
-
- <para>User accounts are usually the most difficult to secure. While
- you can impose Draconian access restrictions on your staff and
- <literal>*</literal> out their passwords, you may not be able to
- do so with any general user accounts you might have. If you do
- have sufficient control then you may win out and be able to secure
- the user accounts properly. If not, you simply have to be more
- vigilant in your monitoring of those accounts. Use of
- <application>ssh</application> and kerberos for user accounts is
- more problematic due to the extra administration and technical
- support required, but still a very good solution compared to a
- crypted password file.</para>
- </sect2>
-
- <sect2>
- <title>Securing the Password File</title>
-
- <para>The only sure fire way is to <literal>*</literal> out as many
- passwords as you can and use <application>ssh</application> or
- kerberos for access to those accounts. Even though the crypted
- password file (<filename>/etc/spwd.db</filename>) can only be read
- by root, it may be possible for an intruder to obtain read access
- to that file even if the attacker cannot obtain root-write
- access.</para>
-
- <para>Your security scripts should always check for and report
- changes to the password file (see <link
- linkend="security-integrity">Checking file integrity</link>
- below).</para>
- </sect2>
-
- <sect2>
- <title>Securing the Kernel Core, Raw Devices, and
- Filesystems</title>
-
- <para>If an attacker breaks root he can do just about anything, but
- there are certain conveniences. For example, most modern kernels
- have a packet sniffing device driver built in. Under FreeBSD it
- is called the <devicename>bpf</devicename> device. An intruder
- will commonly attempt to run a packet sniffer on a compromised
- machine. You do not need to give the intruder the capability and
- most systems should not have the bpf device compiled in.</para>
-
- <para>But even if you turn off the bpf device, you still have
- <filename>/dev/mem</filename> and <filename>/dev/kmem</filename>
- to worry about. For that matter, the intruder can still write to
- raw disk devices. Also, there is another kernel feature called
- the module loader, &man.kldload.8;. An enterprising intruder can
- use a KLD module to install his own bpf device or other sniffing
- device on a running kernel. To avoid these problems you have to
- run the kernel at a higher secure level, at least securelevel 1.
- The securelevel can be set with a <command>sysctl</command> on
- the <literal>kern.securelevel</literal> variable. Once you have
- set the securelevel to 1, write access to raw devices will be
- denied and special chflags flags, such as <literal>schg</literal>,
- will be enforced. You must also ensure that the
- <literal>schg</literal> flag is set on critical startup binaries,
- directories, and script files &ndash; everything that gets run up
- to the point where the securelevel is set. This might be overdoing
- it, and upgrading the system is much more difficult when you
- operate at a higher secure level. You may compromise and run the
- system at a higher secure level but not set the
- <literal>schg</literal> flag for every system file and directory
- under the sun. Another possibility is to simply mount
- <filename>/</filename> and <filename>/usr</filename> read-only.
- It should be noted that being too draconian in what you attempt to
- protect may prevent the all-important detection of an
- intrusion.</para>
- </sect2>
-
- <sect2 id="security-integrity">
- <title>Checking File Integrity: Binaries, Configuration Files,
- Etc.</title>
-
- <para>When it comes right down to it, you can only protect your core
- system configuration and control files so much before the
- convenience factor rears its ugly head. For example, using
- <command>chflags</command> to set the <literal>schg</literal> bit
- on most of the files in <filename>/</filename> and
- <filename>/usr</filename> is probably counterproductive because
- while it may protect the files, it also closes a detection window.
- The last layer of your security onion is perhaps the most
- important &ndash; detection. The rest of your security is pretty
- much useless (or, worse, presents you with a false sense of
- safety) if you cannot detect potential incursions. Half the job
- of the onion is to slow down the attacker rather then stop him in
- order to give the detection side of the equation a chance to catch
- him in the act.</para>
-
- <para>The best way to detect an incursion is to look for modified,
- missing, or unexpected files. The best way to look for modified
- files is from another (often centralized) limited-access system.
- Writing your security scripts on the extra-secure limited-access
- system makes them mostly invisible to potential attackers, and this
- is important. In order to take maximum advantage you generally
- have to give the limited-access box significant access to the
- other machines in the business, usually either by doing a
- read-only NFS export of the other machines to the limited-access
- box, or by setting up <application>ssh</application> keypairs to
- allow the limit-access box to <application>ssh</application> to
- the other machines. Except for its network traffic, NFS is the
- least visible method &ndash; allowing you to monitor the
- filesystems on each client box virtually undetected. If your
- limited-access server is connected to the client boxes through a
- switch, the NFS method is often the better choice. If your
- limited-access server is connected to the client boxes through a
- hub or through several layers of routing, the NFS method may be
- too insecure (network-wise) and using
- <application>ssh</application> may be the better choice even with
- the audit-trail tracks that <application>ssh</application>
- lays.</para>
-
- <para>Once you give a limit-access box at least read access to the
- client systems it is supposed to monitor, you must write scripts
- to do the actual monitoring. Given an NFS mount, you can write
- scripts out of simple system utilities such as &man.find.1; and
- &man.md5.1;. It is best to physically md5 the client-box files
- boxes at least once a day, and to test control files such as those
- found in <filename>/etc</filename> and
- <filename>/usr/local/etc</filename> even more often. When
- mismatches are found relative to the base md5 information the
- limited-access machine knows is valid, it should scream at a
- sysadmin to go check it out. A good security script will also
- check for inappropriate suid binaries and for new or deleted files
- on system partitions such as <filename>/</filename> and
- <filename>/usr</filename>.</para>
-
- <para>When using <application>ssh</application> rather then NFS,
- writing the security script is much more difficult. You
- essentially have to scp the scripts to the client box in order to
- run them, making them visible, and for safety you also need to
- <command>scp</command> the binaries (such as find) that those
- scripts use. The <application>ssh</application> daemon on the
- client box may already be compromised. All in all, using
- <application>ssh</application> may be necessary when running over
- unsecure links, but it's also a lot harder to deal with.</para>
-
- <para>A good security script will also check for changes to user and
- staff members access configuration files:
- <filename>.rhosts</filename>, <filename>.shosts</filename>,
- <filename>.ssh/authorized_keys</filename> and so forth&hellip;
- files that might fall outside the purview of the
- <literal>MD5</literal> check.</para>
-
- <para>If you have a huge amount of user disk space it may take too
- long to run through every file on those partitions. In this case,
- setting mount flags to disallow suid binaries and devices on those
- partitions is a good idea. The <literal>nodev</literal> and
- <literal>nosuid</literal> options (see &man.mount.8;) are what you
- want to look into. You should probably scan them anyway at least
- once a week, since the object of this layer is to detect a break-in
- whether or not the break-in is effective.</para>
-
- <para>Process accounting (see &man.accton.8;) is a relatively
- low-overhead feature of the operating system which might help
- as a post-break-in evaluation mechanism. It is especially
- useful in tracking down how an intruder has actually broken into
- a system, assuming the file is still intact after the break-in
- occurs.</para>
-
- <para>Finally, security scripts should process the log files and the
- logs themselves should be generated in as secure a manner as
- possible &ndash; remote syslog can be very useful. An intruder
- tries to cover his tracks, and log files are critical to the
- sysadmin trying to track down the time and method of the initial
- break-in. One way to keep a permanent record of the log files is
- to run the system console to a serial port and collect the
- information on a continuing basis through a secure machine
- monitoring the consoles.</para>
- </sect2>
-
- <sect2>
- <title>Paranoia</title>
-
- <para>A little paranoia never hurts. As a rule, a sysadmin can add
- any number of security features as long as they do not effect
- convenience, and can add security features that do effect
- convenience with some added thought. Even more importantly, a
- security administrator should mix it up a bit &ndash; if you use
- recommendations such as those given by this document verbatim, you
- give away your methodologies to the prospective attacker who also
- has access to this document.</para>
- </sect2>
-
- <sect2>
- <title>Denial of Service Attacks</title>
-
- <para>This section covers Denial of Service attacks. A DOS attack
- is typically a packet attack. While there is not much you can do
- about modern spoofed packet attacks that saturate your network,
- you can generally limit the damage by ensuring that the attacks
- cannot take down your servers.</para>
-
- <orderedlist>
- <listitem>
- <para>Limiting server forks.</para>
- </listitem>
-
- <listitem>
- <para>Limiting springboard attacks (ICMP response attacks, ping
- broadcast, etc.).</para>
- </listitem>
-
- <listitem>
- <para>Kernel Route Cache.</para>
- </listitem>
- </orderedlist>
-
- <para>A common DOS attack is against a forking server that attempts
- to cause the server to eat processes, file descriptors, and memory
- until the machine dies. Inetd (see &man.inetd.8;) has several
- options to limit this sort of attack. It should be noted that
- while it is possible to prevent a machine from going down it is
- not generally possible to prevent a service from being disrupted
- by the attack. Read the inetd manual page carefully and pay
- specific attention to the <option>-c</option>, <option>-C</option>,
- and <option>-R</option> options. Note that spoofed-IP attacks
- will circumvent the <option>-C</option> option to inetd, so
- typically a combination of options must be used. Some standalone
- servers have self-fork-limitation parameters.</para>
-
- <para><application>Sendmail</application> has its
- <option>-OMaxDaemonChildren</option> option which tends to work
- much better than trying to use sendmail's load limiting options
- due to the load lag. You should specify a
- <literal>MaxDaemonChildren</literal> parameter when you start
- <application>sendmail</application> high enough to handle your
- expected load but no so high that the computer cannot handle that
- number of <application>sendmails</application> without falling on
- its face. It is also prudent to run sendmail in queued mode
- (<option>-ODeliveryMode=queued</option>) and to run the daemon
- (<command>sendmail -bd</command>) separate from the queue-runs
- (<command>sendmail -q15m</command>). If you still want real-time
- delivery you can run the queue at a much lower interval, such as
- <option>-q1m</option>, but be sure to specify a reasonable
- <literal>MaxDaemonChildren</literal> option for that sendmail to
- prevent cascade failures.</para>
-
- <para><application>Syslogd</application> can be attacked directly
- and it is strongly recommended that you use the <option>-s</option>
- option whenever possible, and the <option>-a</option> option
- otherwise.</para>
-
- <para>You should also be fairly careful with connect-back services
- such as <application>tcpwrapper</application>'s reverse-identd,
- which can be attacked directly. You generally do not want to use
- the reverse-ident feature of
- <application>tcpwrappers</application> for this reason.</para>
-
- <para>It is a very good idea to protect internal services from
- external access by firewalling them off at your border routers.
- The idea here is to prevent saturation attacks from outside your
- LAN, not so much to protect internal services from network-based
- root compromise. Always configure an exclusive firewall, i.e.,
- <quote>firewall everything <emphasis>except</emphasis> ports A, B,
- C, D, and M-Z</quote>. This way you can firewall off all of your
- low ports except for certain specific services such as
- <application>named</application> (if you are primary for a zone),
- <application>ntalkd</application>,
- <application>sendmail</application>, and other internet-accessible
- services. If you try to configure the firewall the other way
- &ndash; as an inclusive or permissive firewall, there is a good
- chance that you will forget to <quote>close</quote> a couple of
- services or that you will add a new internal service and forget
- to update the firewall. You can still open up the high-numbered
- port range on the firewall to allow permissive-like operation
- without compromising your low ports. Also take note that FreeBSD
- allows you to control the range of port numbers used for dynamic
- binding via the various <literal>net.inet.ip.portrange</literal>
- <command>sysctl</command>'s (<command>sysctl -a | fgrep
- portrange</command>), which can also ease the complexity of your
- firewall's configuration. For example, you might use a normal
- first/last range of 4000 to 5000, and a hiport range of 49152 to
- 65535, then block everything under 4000 off in your firewall
- (except for certain specific internet-accessible ports, of
- course).</para>
-
- <para>Another common DOS attack is called a springboard attack
- &ndash; to attack a server in a manner that causes the server to
- generate responses which then overload the server, the local
- network, or some other machine. The most common attack of this
- nature is the <emphasis>ICMP ping broadcast attack</emphasis>.
- The attacker spoofs ping packets sent to your LAN's broadcast
- address with the source IP address set to the actual machine they
- wish to attack. If your border routers are not configured to
- stomp on ping's to broadcast addresses, your LAN winds up
- generating sufficient responses to the spoofed source address to
- saturate the victim, especially when the attacker uses the same
- trick on several dozen broadcast addresses over several dozen
- different networks at once. Broadcast attacks of over a hundred
- and twenty megabits have been measured. A second common
- springboard attack is against the ICMP error reporting system.
- By constructing packets that generate ICMP error responses, an
- attacker can saturate a server's incoming network and cause the
- server to saturate its outgoing network with ICMP responses. This
- type of attack can also crash the server by running it out of
- mbuf's, especially if the server cannot drain the ICMP responses
- it generates fast enough. The FreeBSD kernel has a new kernel
- compile option called ICMP_BANDLIM which limits the effectiveness
- of these sorts of attacks. The last major class of springboard
- attacks is related to certain internal inetd services such as the
- udp echo service. An attacker simply spoofs a UDP packet with the
- source address being server A's echo port, and the destination
- address being server B's echo port, where server A and B are both
- on your LAN. The two servers then bounce this one packet back and
- forth between each other. The attacker can overload both servers
- and their LANs simply by injecting a few packets in this manner.
- Similar problems exist with the internal chargen port. A
- competent sysadmin will turn off all of these inetd-internal test
- services.</para>
-
- <para>Spoofed packet attacks may also be used to overload the kernel
- route cache. Refer to the <literal>net.inet.ip.rtexpire</literal>,
- <literal>rtminexpire</literal>, and <literal>rtmaxcache</literal>
- <command>sysctl</command> parameters. A spoofed packet attack
- that uses a random source IP will cause the kernel to generate a
- temporary cached route in the route table, viewable with
- <command>netstat -rna | fgrep W3</command>. These routes
- typically timeout in 1600 seconds or so. If the kernel detects
- that the cached route table has gotten too big it will dynamically
- reduce the rtexpire but will never decrease it to less then
- rtminexpire. There are two problems:</para>
-
- <orderedlist>
- <listitem>
- <para>The kernel does not react quickly enough when a lightly
- loaded server is suddenly attacked.</para>
- </listitem>
-
- <listitem>
- <para>The <literal>rtminexpire</literal> is not low enough for
- the kernel to survive a sustained attack.</para>
- </listitem>
- </orderedlist>
-
- <para>If your servers are connected to the internet via a T3 or
- better it may be prudent to manually override both
- <literal>rtexpire</literal> and <literal>rtminexpire</literal>
- via &man.sysctl.8;. Never set either parameter to zero (unless
- you want to crash the machine <!-- smiley -->:-). Setting both
- parameters to 2 seconds should be sufficient to protect the route
- table from attack.</para>
- </sect2>
-
- <sect2>
- <title>Access Issues with Kerberos and SSH</title>
-
- <para>There are a few issues with both kerberos and
- <application>ssh</application> that need to be addressed if
- you intend to use them. Kerberos V is an excellent
- authentication protocol but there are bugs in the kerberized
- <application>telnet</application> and
- <application>rlogin</application> applications that make them
- unsuitable for dealing with binary streams. Also, by default
- kerberos does not encrypt a session unless you use the
- <option>-x</option> option. <application>ssh</application>
- encrypts everything by default.</para>
-
- <para><application>ssh</application> works quite well in every
- respect except that it forwards encryption keys by default. What
- this means is that if you have a secure workstation holding keys
- that give you access to the rest of the system, and you
- <application>ssh</application> to an unsecure machine, your keys
- becomes exposed. The actual keys themselves are not exposed, but
- <application>ssh</application> installs a forwarding port for the
- duration of your login and if a attacker has broken root on the
- unsecure machine he can utilize that port to use your keys to gain
- access to any other machine that your keys unlock.</para>
-
- <para>We recommend that you use <application>ssh</application> in
- combination with kerberos whenever possible for staff logins.
- <application>ssh</application> can be compiled with kerberos
- support. This reduces your reliance on potentially exposable
- <application>ssh</application> keys while at the same time
- protecting passwords via kerberos. <application>ssh</application>
- keys should only be used for automated tasks from secure machines
- (something that kerberos is unsuited to). We also recommend that
- you either turn off key-forwarding in the
- <application>ssh</application> configuration, or that you make use
- of the <literal>from=IP/DOMAIN</literal> option that
- <application>ssh</application> allows in its
- <filename>authorized_keys</filename> file to make the key only
- usable to entities logging in from specific machines.</para>
- </sect2>
- </sect1>
-
- <sect1 id="crypt">
- <title>DES, MD5, and Crypt</title>
-
- <para><emphasis>Parts rewritten and updated by &a.unfurl;, 21 March
- 2000.</emphasis></para>
-
- <para>Every user on a UNIX system has a password associated with
- their account. It seems obvious that these passwords need to be
- known only to the user and the actual operating system. In
- order to keep these passwords secret, they are encrypted with
- what is known as a <quote>one-way hash</quote>, that is, they can
- only be easily encrypted but not decrypted. In other words, what
- we told you a moment ago was obvious is not even true: the
- operating system itself does not <emphasis>really</emphasis> know
- the password. It only knows the <emphasis>encrypted</emphasis>
- form of the password. The only way to get the
- <quote>plain-text</quote> password is by a brute force search of the
- space of possible passwords.</para>
-
- <para>Unfortunately the only secure way to encrypt passwords when
- UNIX came into being was based on DES, the Data Encryption
- Standard. This is not such a problem for users that live in
- the US, but since the source code for DES could not be exported
- outside the US, FreeBSD had to find a way to both comply with
- US law and retain compatibility with all the other UNIX
- variants that still use DES.</para>
-
- <para>The solution was to divide up the encryption libraries
- so that US users could install the DES libraries and use
- DES but international users still had an encryption method
- that could be exported abroad. This is how FreeBSD came to
- use MD5 as its default encryption method. MD5 is believed to
- be more secure than DES, so installing DES is offered primarily
- for compatibility reasons.</para>
-
- <sect2>
- <title>Recognizing your crypt mechanism</title>
-
- <para>It is pretty easy to identify which encryption method
- FreeBSD is set up to use. Examining the encrypted passwords in
- the <filename>/etc/master.passwd</filename> file is one way.
- Passwords encrypted with the MD5 hash are longer than those with
- encrypted with the DES hash and also begin with the characters
- <literal>&dollar;1&dollar;</literal>. DES password strings do not
- have any particular identifying characteristics, but they are
- shorter than MD5 passwords, and are coded in a 64-character
- alphabet which does not include the <literal>&dollar;</literal>
- character, so a relatively short string which does not begin with
- a dollar sign is very likely a DES password.</para>
-
- <para>The libraries can identify the passwords this way as well.
- As a result, the DES libraries are able to identify MD5
- passwords, and use MD5 to check passwords that were encrypted
- that way, and DES for the rest. They are able to do this
- because the DES libraries also contain MD5. Unfortunately, the
- reverse is not true, so the MD5 libraries cannot authenticate
- passwords that were encrypted with DES.</para>
-
- <para>Identifying which library is being used by the programs on
- your system is easy as well. Any program that uses crypt is linked
- against libcrypt which for each type of library is a symbolic link
- to the appropriate implementation. For example, on a system using
- the DES versions:</para>
-
- <screen>&prompt.user; <userinput>ls -l /usr/lib/libcrypt*</userinput>
-lrwxr-xr-x 1 root wheel 13 Mar 19 06:56 libcrypt.a -&gt; libdescrypt.a
-lrwxr-xr-x 1 root wheel 18 Mar 19 06:56 libcrypt.so.2.0 -&gt; libdescrypt.so.2.0
-lrwxr-xr-x 1 root wheel 15 Mar 19 06:56 libcrypt_p.a -&gt; libdescrypt_p.a</screen>
-
- <para>On a system using the MD5-based libraries, the same links will
- be present, but the target will be <filename>libscrypt</filename>
- rather than <filename>libdescrypt</filename>.</para>
-
- <para>If you have installed the DES-capable crypt library
- <filename>libdescrypt</filename> (e.g. by installing the
- "crypto" distribution), then which password format will be used
- for new passwords is controlled by the
- <quote>passwd_format</quote> login capability in
- <filename>/etc/login.conf</filename>, which takes values of
- either <quote>des</quote> or <quote>md5</quote>. See the
- login.conf(5) manpage for more information about login
- capabilities.</para>
- </sect2>
- </sect1>
-
- <sect1 id="skey">
- <title>S/Key</title>
-
- <para>S/Key is a one-time password scheme based on a one-way hash
- function. FreeBSD uses the MD4 hash for compatibility but other
- systems have used MD5 and DES-MAC. S/Key has been part of the
- FreeBSD base system since version 1.1.5 and is also used on a
- growing number of other operating systems. S/Key is a registered
- trademark of Bell Communications Research, Inc.</para>
-
- <para>There are three different sorts of passwords which we will talk
- about in the discussion below. The first is your usual UNIX-style or
- Kerberos password; we will call this a <quote>UNIX password</quote>.
- The second sort is the one-time password which is generated by the
- S/Key <command>key</command> program and accepted by the
- <command>keyinit</command> program and the login prompt; we will
- call this a <quote>one-time password</quote>. The final sort of
- password is the secret password which you give to the
- <command>key</command> program (and sometimes the
- <command>keyinit</command> program) which it uses to generate
- one-time passwords; we will call it a <quote>secret password</quote>
- or just unqualified <quote>password</quote>.</para>
-
- <para>The secret password does not have anything to do with your UNIX
- password; they can be the same but this is not recommended. S/Key
- secret passwords are not limited to 8 characters like UNIX passwords,
- they can be as long as you like. Passwords of six or seven word
- long phrases are fairly common. For the most part, the S/Key system
- operates completely independently of the UNIX password
- system.</para>
-
- <para>Besides the password, there are two other pieces of data that
- are important to S/Key. One is what is known as the
- <quote>seed</quote> or <quote>key</quote> and consists of two letters
- and five digits. The other is what is called the <quote>iteration
- count</quote> and is a number between 1 and 100. S/Key creates the
- one-time password by concatenating the seed and the secret password,
- then applying the MD4 hash as many times as specified by the
- iteration count and turning the result into six short English words.
- These six English words are your one-time password. The
- <command>login</command> and <command>su</command> programs keep
- track of the last one-time password used, and the user is
- authenticated if the hash of the user-provided password is equal to
- the previous password. Because a one-way hash is used it is
- impossible to generate future one-time passwords if a successfully
- used password is captured; the iteration count is decremented after
- each successful login to keep the user and the login program in
- sync. When the iteration count gets down to 1 S/Key must be
- reinitialized.</para>
-
- <para>There are four programs involved in the S/Key system which we
- will discuss below. The <command>key</command> program accepts an
- iteration count, a seed, and a secret password, and generates a
- one-time password. The <command>keyinit</command> program is used
- to initialized S/Key, and to change passwords, iteration counts, or
- seeds; it takes either a secret password, or an iteration count,
- seed, and one-time password. The <command>keyinfo</command> program
- examines the <filename>/etc/skeykeys</filename> file and prints out
- the invoking user's current iteration count and seed. Finally, the
- <command>login</command> and <command>su</command> programs contain
- the necessary logic to accept S/Key one-time passwords for
- authentication. The <command>login</command> program is also
- capable of disallowing the use of UNIX passwords on connections
- coming from specified addresses.</para>
-
- <para>There are four different sorts of operations we will cover. The
- first is using the <command>keyinit</command> program over a secure
- connection to set up S/Key for the first time, or to change your
- password or seed. The second operation is using the
- <command>keyinit</command> program over an insecure connection, in
- conjunction with the <command>key</command> program over a secure
- connection, to do the same. The third is using the
- <command>key</command> program to log in over an insecure
- connection. The fourth is using the <command>key</command> program
- to generate a number of keys which can be written down or printed
- out to carry with you when going to some location without secure
- connections to anywhere.</para>
-
- <sect2>
- <title>Secure connection initialization</title>
-
- <para>To initialize S/Key for the first time, change your password,
- or change your seed while logged in over a secure connection
- (e.g., on the console of a machine or via ssh), use the
- <command>keyinit</command> command without any parameters while
- logged in as yourself:</para>
-
- <screen>&prompt.user; <userinput>keyinit</userinput>
-Adding unfurl:
-Reminder - Only use this method if you are directly connected.
-If you are using telnet or rlogin exit with no password and use keyinit -s.
-Enter secret password:
-Again secret password:
-
-ID unfurl s/key is 99 to17757
-DEFY CLUB PRO NASH LACE SOFT</screen>
-
- <para>At the <prompt>Enter secret password:</prompt> prompt you
- should enter a password or phrase. Remember, this is not the
- password that you will use to login with, this is used to generate
- your one-time login keys. The <quote>ID</quote> line gives the
- parameters of your particular S/Key instance; your login name, the
- iteration count, and seed. When logging in with S/Key, the system
- will remember these parameters and present them back to you so you
- do not have to remember them. The last line gives the particular
- one-time password which corresponds to those parameters and your
- secret password; if you were to re-login immediately, this
- one-time password is the one you would use.</para>
- </sect2>
-
- <sect2>
- <title>Insecure connection initialization</title>
-
- <para>To initialize S/Key or change your secret password over an
- insecure connection, you will need to already have a secure
- connection to some place where you can run the
- <command>key</command> program; this might be in the form of a
- desk accessory on a Macintosh, or a shell prompt on a machine you
- trust. You will also need to make up an iteration count (100 is
- probably a good value), and you may make up your own seed or use a
- randomly-generated one. Over on the insecure connection (to the
- machine you are initializing), use the <command>keyinit
- -s</command> command:</para>
-
- <screen>&prompt.user; <userinput>keyinit -s</userinput>
-Updating unfurl:
-Old key: to17758
-Reminder you need the 6 English words from the key command.
-Enter sequence count from 1 to 9999: <userinput>100</userinput>
-Enter new key [default to17759]:
-s/key 100 to 17759
-s/key access password:</screen>
-
- <para>To accept the default seed (which the
- <command>keyinit</command> program confusingly calls a
- <literal>key</literal>), press return. Then before entering an
- access password, move over to your secure connection or S/Key desk
- accessory, and give it the same parameters:</para>
-
- <screen>&prompt.user; <userinput>key 100 to17759</userinput>
-Reminder - Do not use this program while logged in via telnet or rlogin.
-Enter secret password: <userinput>&lt;secret password&gt;</userinput>
-CURE MIKE BANE HIM RACY GORE</screen>
-
- <para>Now switch back over to the insecure connection, and copy the
- one-time password generated by <command>key</command> over to the
- <command>keyinit</command> program:</para>
-
- <screen>s/key access password:<userinput>CURE MIKE BANE HIM RACY GORE</userinput>
-ID unfurl s/key is 100 to17759
-CURE MIKE BANE HIM RACY GORE</screen>
-
- <para>The rest of the description from the previous section applies
- here as well.</para>
- </sect2>
-
- <sect2>
- <title>Generating a single one-time password</title>
-
- <para>Once you've initialized S/Key, when you login you will be
- presented with a prompt like this:</para>
-
-<screen>&prompt.user; <userinput>telnet example.com</userinput>
-Trying 10.0.0.1...
-Connected to example.com
-Escape character is '^]'.
-
-FreeBSD/i386 (example.com) (ttypa)
-
-login: <userinput>&lt;username&gt;</userinput>
-s/key 97 fw13894
-Password: </screen>
-
- <para>As a side note, the S/Key prompt has a useful feature
- (not shown here): if you press return at the password prompt, the
- login program will turn echo on, so you can see what you are
- typing. This can be extremely useful if you are attempting to
- type in an S/Key by hand, such as from a printout. Also, if this
- machine were configured to disallow UNIX passwords over a
- connection from the source machine, the prompt would have also included
- the annotation <literal>(s/key required)</literal>, indicating
- that only S/Key one-time passwords will be accepted.</para>
-
- <para>At this point you need to generate your one-time password to
- answer this login prompt. This must be done on a trusted system
- that you can run the <command>key</command> command on. (There
- are versions of the <command>key</command> program from DOS,
- Windows and MacOS as well.) The <command>key</command> program
- needs both the iteration count and the seed as command line
- options. You can cut-and-paste these right from the login prompt
- on the machine that you are logging in to.</para>
-
- <para>On the trusted system:</para>
-
- <screen>&prompt.user; <userinput>key 97 fw13894</userinput>
-Reminder - Do not use this program while logged in via telnet or rlogin.
-Enter secret password:
-WELD LIP ACTS ENDS ME HAAG</screen>
-
- <para>Now that you have your one-time password you can continue
- logging in:</para>
-
- <screen>login: <userinput>&lt;username&gt;</userinput>
-s/key 97 fw13894
-Password: <userinput>&lt;return to enable echo&gt;</userinput>
-s/key 97 fw13894
-Password [echo on]: WELD LIP ACTS ENDS ME HAAG
-Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... </screen>
-
- <para>This is the easiest mechanism <emphasis>if</emphasis> you have
- a trusted machine. There is a Java S/Key <command>key</command>
- applet, <ulink
- url="http://www.cs.umd.edu/~harry/jotp/src.html">The Java OTP
- Calculator</ulink>, that you can download and run locally on any
- Java supporting browser.</para>
- </sect2>
-
- <sect2>
- <title>Generating multiple one-time passwords</title>
-
- <para>Sometimes you have have to go places where you do not have
- access to a trusted machine or secure connection. In this case,
- it is possible to use the <command>key</command> command to
- generate a number of one-time passwords before hand to be printed
- out and taken with you. For example:</para>
-
- <screen>&prompt.user; <userinput>key -n 5 30 zz99999</userinput>
-Reminder - Do not use this program while logged in via telnet or rlogin.
-Enter secret password: <userinput>&lt;secret password&gt;</userinput>
-26: SODA RUDE LEA LIND BUDD SILT
-27: JILT SPY DUTY GLOW COWL ROT
-28: THEM OW COLA RUNT BONG SCOT
-29: COT MASH BARR BRIM NAN FLAG
-30: CAN KNEE CAST NAME FOLK BILK</screen>
-
- <para>The <option>-n 5</option> requests five keys in sequence, the
- <option>30</option> specifies what the last iteration number
- should be. Note that these are printed out in
- <emphasis>reverse</emphasis> order of eventual use. If you are
- really paranoid, you might want to write the results down by hand;
- otherwise you can cut-and-paste into <command>lpr</command>. Note
- that each line shows both the iteration count and the one-time
- password; you may still find it handy to scratch off passwords as
- you use them.</para>
- </sect2>
-
- <sect2>
- <title>Restricting use of UNIX passwords</title>
-
- <para>Restrictions can be placed on the use of UNIX passwords based
- on the host name, user name, terminal port, or IP address of a
- login session. These restrictions can be found in the
- configuration file <filename>/etc/skey.access</filename>. The
- &man.skey.access.5; manual page has more info on the complete
- format of the file and also details some security cautions to be
- aware of before depending on this file for security.</para>
-
- <para>If there is no <filename>/etc/skey.access</filename> file
- (this is the FreeBSD default), then all users will be allowed to
- use UNIX passwords. If the file exists, however, then all users
- will be required to use S/Key unless explicitly permitted to do
- otherwise by configuration statements in the
- <filename>skey.access</filename> file. In all cases, UNIX
- passwords are permitted on the console.</para>
-
- <para>Here is a sample configuration file which illustrates the
- three most common sorts of configuration statements:</para>
-
- <programlisting>permit internet 192.168.0.0 255.255.0.0
-permit user fnord
-permit port ttyd0</programlisting>
-
- <para>The first line (<literal>permit internet</literal>) allows
- users whose IP source address (which is vulnerable to spoofing)
- matches the specified value and mask, to use UNIX passwords. This
- should not be considered a security mechanism, but rather, a means
- to remind authorized users that they are using an insecure network
- and need to use S/Key for authentication.</para>
-
- <para>The second line (<literal>permit user</literal>) allows the
- specified username, in this case <literal>fnord</literal>, to use
- UNIX passwords at any time. Generally speaking, this should only
- be used for people who are either unable to use the
- <command>key</command> program, like those with dumb terminals, or
- those who are uneducable.</para>
-
- <para>The third line (<literal>permit port</literal>) allows all
- users logging in on the specified terminal line to use UNIX
- passwords; this would be used for dial-ups.</para>
- </sect2>
- </sect1>
-
- <sect1 id="kerberos">
- <title>Kerberos</title>
-
- <para><emphasis>Contributed by &a.markm; (based on contribution by
- &a.md;).</emphasis></para>
-
- <para>Kerberos is a network add-on system/protocol that allows users to
- authenticate themselves through the services of a secure server.
- Services such as remote login, remote copy, secure inter-system file
- copying and other high-risk tasks are made considerably safer and more
- controllable.</para>
-
- <para>The following instructions can be used as a guide on how to set up
- Kerberos as distributed for FreeBSD. However, you should refer to the
- relevant manual pages for a complete description.</para>
-
- <para>In FreeBSD, the Kerberos is not that from the original 4.4BSD-Lite,
- distribution, but eBones, which had been previously ported to FreeBSD
- 1.1.5.1, and was sourced from outside the USA/Canada, and was thus
- available to system owners outside those countries during the era
- of restrictive export controls on cryptographic code from the USA.</para>
-
- <sect2>
- <title>Creating the initial database</title>
-
- <para>This is done on the Kerberos server only. First make sure that
- you do not have any old Kerberos databases around. You should change
- to the directory <filename>/etc/kerberosIV</filename> and check that
- only the following files are present:</para>
-
- <screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput>
-&prompt.root; <userinput>ls</userinput>
-README krb.conf krb.realms</screen>
-
- <para>If any additional files (such as <filename>principal.*</filename>
- or <filename>master_key</filename>) exist, then use the
- <command>kdb_destroy</command> command to destroy the old Kerberos
- database, of if Kerberos is not running, simply delete the extra
- files.</para>
-
- <para>You should now edit the <filename>krb.conf</filename> and
- <filename>krb.realms</filename> files to define your Kerberos realm.
- In this case the realm will be <filename>GRONDAR.ZA</filename> and the
- server is <filename>grunt.grondar.za</filename>. We edit or create
- the <filename>krb.conf</filename> file:</para>
-
- <screen>&prompt.root; <userinput>cat krb.conf</userinput>
-GRONDAR.ZA
-GRONDAR.ZA grunt.grondar.za admin server
-CS.BERKELEY.EDU okeeffe.berkeley.edu
-ATHENA.MIT.EDU kerberos.mit.edu
-ATHENA.MIT.EDU kerberos-1.mit.edu
-ATHENA.MIT.EDU kerberos-2.mit.edu
-ATHENA.MIT.EDU kerberos-3.mit.edu
-LCS.MIT.EDU kerberos.lcs.mit.edu
-TELECOM.MIT.EDU bitsy.mit.edu
-ARC.NASA.GOV trident.arc.nasa.gov</screen>
-
- <para>In this case, the other realms do not need to be there. They are
- here as an example of how a machine may be made aware of multiple
- realms. You may wish to not include them for simplicity.</para>
-
- <para>The first line names the realm in which this system works. The
- other lines contain realm/host entries. The first item on a line is a
- realm, and the second is a host in that realm that is acting as a
- <quote>key distribution center</quote>. The words <literal>admin
- server</literal> following a hosts name means that host also
- provides an administrative database server. For further explanation
- of these terms, please consult the Kerberos man pages.</para>
-
- <para>Now we have to add <hostid role="fqdn">grunt.grondar.za</hostid>
- to the <filename>GRONDAR.ZA</filename> realm and also add an entry to
- put all hosts in the <hostid role="domainname">.grondar.za</hostid>
- domain in the <filename>GRONDAR.ZA</filename> realm. The
- <filename>krb.realms</filename> file would be updated as
- follows:</para>
-
- <screen>&prompt.root; <userinput>cat krb.realms</userinput>
-grunt.grondar.za GRONDAR.ZA
-.grondar.za GRONDAR.ZA
-.berkeley.edu CS.BERKELEY.EDU
-.MIT.EDU ATHENA.MIT.EDU
-.mit.edu ATHENA.MIT.EDU</screen>
-
- <para>Again, the other realms do not need to be there. They are here as
- an example of how a machine may be made aware of multiple realms. You
- may wish to remove them to simplify things.</para>
-
- <para>The first line puts the <emphasis>specific</emphasis> system into
- the named realm. The rest of the lines show how to default systems of
- a particular subdomain to a named realm.</para>
-
- <para>Now we are ready to create the database. This only needs to run
- on the Kerberos server (or Key Distribution Center). Issue the
- <command>kdb_init</command> command to do this:</para>
-
- <screen>&prompt.root; <userinput>kdb_init</userinput>
-<prompt>Realm name [default ATHENA.MIT.EDU ]:</prompt> <userinput>GRONDAR.ZA</userinput>
-You will be prompted for the database Master Password.
-It is important that you NOT FORGET this password.
-
-<prompt>Enter Kerberos master key:</prompt> </screen>
-
- <para>Now we have to save the key so that servers on the local machine
- can pick it up. Use the <command>kstash</command> command to do
- this.</para>
-
- <screen>&prompt.root; <userinput>kstash</userinput>
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!</screen>
-
- <para>This saves the encrypted master password in
- <filename>/etc/kerberosIV/master_key</filename>.</para>
- </sect2>
-
- <sect2>
- <title>Making it all run</title>
-
- <para>Two principals need to be added to the database for
- <emphasis>each</emphasis> system that will be secured with Kerberos.
- Their names are <literal>kpasswd</literal> and <literal>rcmd</literal>
- These two principals are made for each system, with the instance being
- the name of the individual system.</para>
-
- <para>These daemons, <command>kpasswd</command> and
- <command>rcmd</command> allow other systems to change Kerberos
- passwords and run commands like <command>rcp</command>,
- <command>rlogin</command> and <command>rsh</command>.</para>
-
- <para>Now let's add these entries:</para>
-
- <screen>&prompt.root; <userinput>kdb_edit</userinput>
-Opening database...
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Previous or default values are in [brackets] ,
-enter return to leave the same, or new value.
-
-<prompt>Principal name:</prompt> <userinput>passwd</userinput>
-<prompt>Instance:</prompt> <userinput>grunt</userinput>
-
-&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
-
-Principal: passwd, Instance: grunt, kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- enter RANDOM here
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- enter RANDOM here
-
-<prompt>Random password [y] ?</prompt> <userinput>y</userinput>
-
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> <userinput>rcmd</userinput>
-<prompt>Instance:</prompt> <userinput>grunt</userinput>
-
-&lt;Not found&gt;, <prompt>Create [y] ?</prompt>
-
-Principal: rcmd, Instance: grunt, kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- enter RANDOM here
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- enter RANDOM here
-
-<prompt>Random password [y] ?</prompt>
-
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> &lt;---- null entry here will cause an exit</screen>
- </sect2>
-
- <sect2>
- <title>Creating the server file</title>
-
- <para>We now have to extract all the instances which define the services
- on each machine. For this we use the <command>ext_srvtab</command>
- command. This will create a file which must be copied or moved
- <emphasis>by secure means</emphasis> to each Kerberos client's
- /etc/kerberosIV directory. This file must be present on each server
- and client, and is crucial to the operation of Kerberos.</para>
-
-
- <screen>&prompt.root; <userinput>ext_srvtab grunt</userinput>
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Generating 'grunt-new-srvtab'....</screen>
-
- <para>Now, this command only generates a temporary file which must be
- renamed to <filename>srvtab</filename> so that all the server can pick
- it up. Use the <command>mv</command> command to move it into place on
- the original system:</para>
-
- <screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen>
-
- <para>If the file is for a client system, and the network is not deemed
- safe, then copy the
- <filename><replaceable>client</replaceable>-new-srvtab</filename> to
- removable media and transport it by secure physical means. Be sure to
- rename it to <filename>srvtab</filename> in the client's
- <filename>/etc/kerberosIV</filename> directory, and make sure it is
- mode 600:</para>
-
- <screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput>
-&prompt.root; <userinput>chmod 600 srvtab</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Populating the database</title>
-
- <para>We now have to add some user entries into the database. First
- let's create an entry for the user <username>jane</username>. Use the
- <command>kdb_edit</command> command to do this:</para>
-
- <screen>&prompt.root; <userinput>kdb_edit</userinput>
-Opening database...
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Previous or default values are in [brackets] ,
-enter return to leave the same, or new value.
-
-<prompt>Principal name:</prompt> <userinput>jane</userinput>
-<prompt>Instance:</prompt>
-
-&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
-
-Principal: jane, Instance: , kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- enter a secure password here
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- re-enter the password here
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> &lt;---- null entry here will cause an exit</screen>
- </sect2>
-
- <sect2>
- <title>Testing it all out</title>
-
- <para>First we have to start the Kerberos daemons. NOTE that if you
- have correctly edited your <filename>/etc/rc.conf</filename> then this
- will happen automatically when you reboot. This is only necessary on
- the Kerberos server. Kerberos clients will automagically get what
- they need from the <filename>/etc/kerberosIV</filename>
- directory.</para>
-
- <screen>&prompt.root; <userinput>kerberos &amp;</userinput>
-Kerberos server starting
-Sleep forever on error
-Log file is /var/log/kerberos.log
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-
-Current Kerberos master key version is 1
-Local realm: GRONDAR.ZA
-&prompt.root; <userinput>kadmind -n &amp;</userinput>
-KADM Server KADM0.0A initializing
-Please do not use 'kill -9' to kill this job, use a
-regular kill instead
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!</screen>
-
- <para>Now we can try using the <command>kinit</command> command to get a
- ticket for the id <username>jane</username> that we created
- above:</para>
-
- <screen>&prompt.user; <userinput>kinit jane</userinput>
-MIT Project Athena (grunt.grondar.za)
-Kerberos Initialization for "jane"
-<prompt>Password:</prompt> </screen>
-
- <para>Try listing the tokens using <command>klist</command> to see if we
- really have them:</para>
-
- <screen>&prompt.user; <userinput>klist</userinput>
-Ticket file: /tmp/tkt245
-Principal: jane@GRONDAR.ZA
-
- Issued Expires Principal
-Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen>
-
- <para>Now try changing the password using <command>passwd</command> to
- check if the kpasswd daemon can get authorization to the Kerberos
- database:</para>
-
- <screen>&prompt.user; <userinput>passwd</userinput>
-realm GRONDAR.ZA
-<prompt>Old password for jane:</prompt>
-<prompt>New Password for jane:</prompt>
-Verifying password
-<prompt>New Password for jane:</prompt>
-Password changed.</screen>
- </sect2>
-
- <sect2>
- <title>Adding <command>su</command> privileges</title>
-
- <para>Kerberos allows us to give <emphasis>each</emphasis> user who
- needs root privileges their own <emphasis>separate</emphasis>
- <command>su</command>password. We could now add an id which is
- authorized to <command>su</command> to <username>root</username>.
- This is controlled by having an instance of <username>root</username>
- associated with a principal. Using <command>kdb_edit</command> we can
- create the entry <literal>jane.root</literal> in the Kerberos
- database:</para>
-
- <screen>&prompt.root; <userinput>kdb_edit</userinput>
-Opening database...
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Previous or default values are in [brackets] ,
-enter return to leave the same, or new value.
-
-<prompt>Principal name:</prompt> <userinput>jane</userinput>
-<prompt>Instance:</prompt> <userinput>root</userinput>
-
-&lt;Not found&gt;, Create [y] ? y
-
-Principal: jane, Instance: root, kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- enter a SECURE password here
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- re-enter the password here
-
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> <userinput>12</userinput> &lt;--- Keep this short!
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> &lt;---- null entry here will cause an exit</screen>
-
- <para>Now try getting tokens for it to make sure it works:</para>
-
- <screen>&prompt.root; <userinput>kinit jane.root</userinput>
-MIT Project Athena (grunt.grondar.za)
-Kerberos Initialization for "jane.root"
-<prompt>Password:</prompt></screen>
-
- <para>Now we need to add the user to root's <filename>.klogin</filename>
- file:</para>
-
- <screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
-jane.root@GRONDAR.ZA</screen>
-
- <para>Now try doing the <command>su</command>:</para>
-
- <screen>&prompt.user; <prompt>su</prompt>
-<prompt>Password:</prompt></screen>
-
- <para>and take a look at what tokens we have:</para>
-
- <screen>&prompt.root; klist
-Ticket file: /tmp/tkt_root_245
-Principal: jane.root@GRONDAR.ZA
-
- Issued Expires Principal
-May 2 20:43:12 May 3 04:43:12 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen>
- </sect2>
-
- <sect2>
- <title>Using other commands</title>
-
- <para>In an earlier example, we created a principal called
- <literal>jane</literal> with an instance <literal>root</literal>.
- This was based on a user with the same name as the principal, and this
- is a Kerberos default; that a
- <literal>&lt;principal&gt;.&lt;instance&gt;</literal> of the form
- <literal>&lt;username&gt;.</literal><literal>root</literal> will allow
- that <literal>&lt;username&gt;</literal> to <command>su</command> to
- root if the necessary entries are in the <filename>.klogin</filename>
- file in <username>root</username>'s home directory:</para>
-
- <screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
-jane.root@GRONDAR.ZA</screen>
-
- <para>Likewise, if a user has in their own home directory lines of the
- form:</para>
-
- <screen>&prompt.user; <userinput>cat ~/.klogin</userinput>
-jane@GRONDAR.ZA
-jack@GRONDAR.ZA</screen>
-
- <para>This allows anyone in the <filename>GRONDAR.ZA</filename> realm
- who has authenticated themselves to <username>jane</username> or
- <username>jack</username> (via <command>kinit</command>, see above)
- access to <command>rlogin</command> to <username>jane</username>'s
- account or files on this system (<hostid>grunt</hostid>) via
- <command>rlogin</command>, <command>rsh</command> or
- <command>rcp</command>.</para>
-
- <para>For example, Jane now logs into another system, using
- Kerberos:</para>
-
- <screen>&prompt.user; <userinput>kinit</userinput>
-MIT Project Athena (grunt.grondar.za)
-<prompt>Password:</prompt>
-%prompt.user; <userinput>rlogin grunt</userinput>
-Last login: Mon May 1 21:14:47 from grumble
-Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
- The Regents of the University of California. All rights reserved.
-
-FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
-
- <para>Or Jack logs into Jane's account on the same machine (Jane having
- set up the <filename>.klogin</filename> file as above, and the person
- in charge of Kerberos having set up principal
- <emphasis>jack</emphasis> with a null instance:</para>
-
- <screen>&prompt.user; <userinput>kinit</userinput>
-&prompt.user; <userinput>rlogin grunt -l jane</userinput>
-MIT Project Athena (grunt.grondar.za)
-<prompt>Password:</prompt>
-Last login: Mon May 1 21:16:55 from grumble
-Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
- The Regents of the University of California. All rights reserved.
-FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
- </sect2>
- </sect1>
-
- <sect1 id="firewalls">
- <title>Firewalls</title>
-
- <para><emphasis>Contributed by &a.gpalmer; and Alex Nash.</emphasis></para>
-
- <para>Firewalls are an area of increasing interest for people who are
- connected to the Internet, and are even finding applications on private
- networks to provide enhanced security. This section will hopefully
- explain what firewalls are, how to use them, and how to use the
- facilities provided in the FreeBSD kernel to implement them.</para>
-
- <note>
- <para>People often think that having a firewall between your
- internal network and the <quote>Big Bad Internet</quote> will solve all
- your security problems. It may help, but a poorly setup firewall
- system is more of a security risk than not having one at all. A
- firewall can add another layer of security to your systems, but it
- cannot stop a really determined cracker from penetrating your internal
- network. If you let internal security lapse because you believe your
- firewall to be impenetrable, you have just made the crackers job that
- much easier.</para>
- </note>
-
- <sect2>
- <title>What is a firewall?</title>
-
- <para>There are currently two distinct types of firewalls in common use
- on the Internet today. The first type is more properly called a
- <emphasis>packet filtering router</emphasis>, where the kernel on a
- multi-homed machine chooses whether to forward or block packets based
- on a set of rules. The second type, known as a <emphasis>proxy
- server</emphasis>, relies on daemons to provide authentication and to
- forward packets, possibly on a multi-homed machine which has kernel
- packet forwarding disabled.</para>
-
- <para>Sometimes sites combine the two types of firewalls, so that only a
- certain machine (known as a <emphasis>bastion host</emphasis>) is
- allowed to send packets through a packet filtering router onto an
- internal network. Proxy services are run on the bastion host, which
- are generally more secure than normal authentication
- mechanisms.</para>
-
- <para>FreeBSD comes with a kernel packet filter (known as
- <application>IPFW</application>), which is what the rest of this
- section will concentrate on. Proxy servers can be built on FreeBSD
- from third party software, but there is such a variety of proxy
- servers available that it would be impossible to cover them in this
- document.</para>
-
- <sect3 id="firewalls-packet-filters">
- <title>Packet filtering routers</title>
-
- <para>A router is a machine which forwards packets between two or more
- networks. A packet filtering router has an extra piece of code in
- its kernel which compares each packet to a list of rules before
- deciding if it should be forwarded or not. Most modern IP routing
- software has packet filtering code within it that defaults to
- forwarding all packets. To enable the filters, you need to define a
- set of rules for the filtering code so it can decide if the
- packet should be allowed to pass or not.</para>
-
- <para>To decide whether a packet should be passed on, the code looks
- through its set of rules for a rule which matches the contents of
- this packets headers. Once a match is found, the rule action is
- obeyed. The rule action could be to drop the packet, to forward the
- packet, or even to send an ICMP message back to the originator.
- Only the first match counts, as the rules are searched in order.
- Hence, the list of rules can be referred to as a <quote>rule
- chain</quote>.</para>
-
- <para>The packet matching criteria varies depending on the software
- used, but typically you can specify rules which depend on the source
- IP address of the packet, the destination IP address, the source
- port number, the destination port number (for protocols which
- support ports), or even the packet type (UDP, TCP, ICMP,
- etc).</para>
- </sect3>
-
- <sect3 id="firewalls-proxy-servers">
- <title>Proxy servers</title>
-
- <para>Proxy servers are machines which have had the normal system
- daemons (telnetd, ftpd, etc) replaced with special servers. These
- servers are called <emphasis>proxy servers</emphasis> as they
- normally only allow onward connections to be made. This enables you
- to run (for example) a proxy telnet server on your firewall host,
- and people can telnet in to your firewall from the outside, go
- through some authentication mechanism, and then gain access to the
- internal network (alternatively, proxy servers can be used for
- signals coming from the internal network and heading out).</para>
-
- <para>Proxy servers are normally more secure than normal servers, and
- often have a wider variety of authentication mechanisms available,
- including <quote>one-shot</quote> password systems so that even if
- someone manages to discover what password you used, they will not be
- able to use it to gain access to your systems as the password
- instantly expires. As they do not actually give users access to the
- host machine, it becomes a lot more difficult for someone to install
- backdoors around your security system.</para>
-
- <para>Proxy servers often have ways of restricting access further, so
- that only certain hosts can gain access to the servers, and often
- they can be set up so that you can limit which users can talk to
- which destination machine. Again, what facilities are available
- depends largely on what proxy software you choose.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>What does IPFW allow me to do?</title>
-
- <para><application>IPFW</application>, the software supplied with
- FreeBSD, is a packet filtering and accounting system which resides in
- the kernel, and has a user-land control utility,
- &man.ipfw.8;. Together, they allow you to define and query the
- rules currently used by the kernel in its routing decisions.</para>
-
- <para>There are two related parts to <application>IPFW</application>.
- The firewall section allows you to perform packet filtering. There is
- also an IP accounting section which allows you to track usage of your
- router, based on similar rules to the firewall section. This allows
- you to see (for example) how much traffic your router is getting from
- a certain machine, or how much WWW (World Wide Web) traffic it is
- forwarding.</para>
-
- <para>As a result of the way that <application>IPFW</application> is
- designed, you can use <application>IPFW</application> on non-router
- machines to perform packet filtering on incoming and outgoing
- connections. This is a special case of the more general use of
- <application>IPFW</application>, and the same commands and techniques
- should be used in this situation.</para>
- </sect2>
-
- <sect2>
- <title>Enabling IPFW on FreeBSD</title>
-
- <para>As the main part of the <application>IPFW</application> system
- lives in the kernel, you will need to add one or more options to your
- kernel configuration file, depending on what facilities you want, and
- recompile your kernel. See <link linkend="kernelconfig">reconfiguring
- the kernel</link> for more details on how to recompile your
- kernel.</para>
-
- <para>There are currently three kernel configuration options relevant to
- IPFW:</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>options IPFIREWALL</literal></term>
-
- <listitem>
- <para>Compiles into the kernel the code for packet
- filtering.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>options IPFIREWALL_VERBOSE</literal></term>
-
- <listitem>
- <para>Enables code to allow logging of packets through
- &man.syslogd.8;. Without this option, even if you specify
- that packets should be logged in the filter rules, nothing will
- happen.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>options IPFIREWALL_VERBOSE_LIMIT=10</literal></term>
-
- <listitem>
- <para>Limits the number of packets logged through
- &man.syslogd.8; on a per entry basis. You may wish to use
- this option in hostile environments in which you want to log
- firewall activity, but do not want to be open to a denial of
- service attack via syslog flooding.</para>
-
- <para>When a chain entry reaches the packet limit specified,
- logging is turned off for that particular entry. To resume
- logging, you will need to reset the associated counter using the
- &man.ipfw.8; utility:</para>
-
- <screen>&prompt.root; <userinput>ipfw zero 4500</userinput></screen>
- <para>Where 4500 is the chain entry you wish to continue
- logging.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Previous versions of FreeBSD contained an
- <literal>IPFIREWALL_ACCT</literal> option. This is now obsolete as
- the firewall code automatically includes accounting
- facilities.</para>
- </sect2>
-
- <sect2>
- <title>Configuring IPFW</title>
-
- <para>The configuration of the <application>IPFW</application> software
- is done through the &man.ipfw.8; utility. The syntax for this
- command looks quite complicated, but it is relatively simple once you
- understand its structure.</para>
-
- <para>There are currently four different command categories used by the
- utility: addition/deletion, listing, flushing, and clearing.
- Addition/deletion is used to build the rules that control how packets
- are accepted, rejected, and logged. Listing is used to examine the
- contents of your rule set (otherwise known as the chain) and packet
- counters (accounting). Flushing is used to remove all entries from
- the chain. Clearing is used to zero out one or more accounting
- entries.</para>
-
- <sect3>
- <title>Altering the IPFW rules</title>
-
- <para>The syntax for this form of the command is:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg>-N</arg>
- <arg choice="plain">command</arg>
- <arg>index</arg>
- <arg choice="plain">action</arg>
- <arg>log</arg>
- <arg choice="plain">protocol</arg>
- <arg choice="plain">addresses</arg>
- <arg>options</arg>
- </cmdsynopsis></para>
-
- <para>There is one valid flag when using this form of the
- command:</para>
-
- <variablelist>
- <varlistentry>
- <term>-N</term>
-
- <listitem>
- <para>Resolve addresses and service names in output.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The <emphasis>command</emphasis> given can be shortened to the
- shortest unique form. The valid <emphasis>commands</emphasis>
- are:</para>
-
- <variablelist>
- <varlistentry>
- <term>add</term>
-
- <listitem>
- <para>Add an entry to the firewall/accounting rule list</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>delete</term>
-
- <listitem>
- <para>Delete an entry from the firewall/accounting rule
- list</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Previous versions of <application>IPFW</application> used
- separate firewall and accounting entries. The present version
- provides packet accounting with each firewall entry.</para>
-
- <para>If an <emphasis>index</emphasis> value is supplied, it used to
- place the entry at a specific point in the chain. Otherwise, the
- entry is placed at the end of the chain at an index 100 greater than
- the last chain entry (this does not include the default policy, rule
- 65535, deny).</para>
-
- <para>The <literal>log</literal> option causes matching rules to be
- output to the system console if the kernel was compiled with
- <literal>IPFIREWALL_VERBOSE</literal>.</para>
-
- <para>Valid <emphasis>actions</emphasis> are:</para>
-
- <variablelist>
- <varlistentry>
- <term>reject</term>
-
- <listitem>
- <para>Drop the packet, and send an ICMP host or port unreachable
- (as appropriate) packet to the source.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>allow</term>
-
- <listitem>
- <para>Pass the packet on as normal. (aliases:
- <literal>pass</literal> and
- <literal>accept</literal>)</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>deny</term>
-
- <listitem>
- <para>Drop the packet. The source is not notified via an
- ICMP message (thus it appears that the packet never
- arrived at the destination).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>count</term>
-
- <listitem>
- <para>Update packet counters but do not allow/deny the packet
- based on this rule. The search continues with the next chain
- entry.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Each <emphasis>action</emphasis> will be recognized by the
- shortest unambiguous prefix.</para>
-
- <para>The <emphasis>protocols</emphasis> which can be specified
- are:</para>
-
- <variablelist>
- <varlistentry>
- <term>all</term>
-
- <listitem>
- <para>Matches any IP packet</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>icmp</term>
-
- <listitem>
- <para>Matches ICMP packets</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tcp</term>
-
- <listitem>
- <para>Matches TCP packets</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>udp</term>
-
- <listitem>
- <para>Matches UDP packets</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>The <emphasis>address</emphasis> specification is:</para>
-
- <cmdsynopsis>
- <arg choice="plain">from</arg>
- <arg choice="plain"><replaceable>address/mask</replaceable></arg><arg><replaceable>port</replaceable></arg>
- <arg choice="plain">to</arg>
- <arg choice="plain"><replaceable>address/mask</replaceable></arg><arg><replaceable>port</replaceable></arg>
- <arg>via <replaceable>interface</replaceable></arg>
- </cmdsynopsis>
-
- <para>You can only specify <replaceable>port</replaceable> in
- conjunction with <emphasis>protocols</emphasis> which support ports
- (UDP and TCP).</para>
-
- <para>The <option>via</option> is optional and may specify the IP
- address or domain name of a local IP interface, or an interface name
- (e.g. <devicename>ed0</devicename>) to match only packets coming
- through this interface. Interface unit numbers can be specified
- with an optional wildcard. For example, <literal>ppp*</literal>
- would match all kernel PPP interfaces.</para>
-
- <para>The syntax used to specify an
- <replaceable>address/mask</replaceable> is:
-
- <screen><replaceable>address</replaceable></screen>
-
- or
-
- <screen><replaceable>address</replaceable>/<replaceable>mask-bits</replaceable></screen>
-
- or
-
- <screen><replaceable>address</replaceable>:<replaceable>mask-pattern</replaceable></screen>
- </para>
-
- <para>A valid hostname may be specified in place of the IP address.
- <option><replaceable>mask-bits</replaceable></option> is a decimal
- number representing how many bits in the address mask should be set.
- e.g. specifying <literal>192.216.222.1/24</literal> will create a
- mask which will allow any address in a class C subnet (in this case,
- 192.216.222) to be matched.
- <option><replaceable>mask-pattern</replaceable></option> is an IP
- address which will be logically AND'ed with the address given. The
- keyword <literal>any</literal> may be used to specify <quote>any IP
- address</quote>.</para>
-
- <para>The port numbers to be blocked are specified as:
-
- <cmdsynopsis>
- <arg choice="plain"><replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>&hellip;</arg></arg></arg></arg>
- </cmdsynopsis>
-
- to specify either a single port or a list of ports, or
-
- <cmdsynopsis>
- <arg choice="plain"><replaceable>port</replaceable>-<replaceable>port</replaceable></arg>
- </cmdsynopsis>
-
- to specify a range of ports. You may also combine a single range
- with a list, but the range must always be specified first.</para>
-
- <para>The <emphasis>options</emphasis> available are:</para>
-
- <variablelist>
- <varlistentry>
- <term>frag</term>
-
- <listitem>
- <para>Matches if the packet is not the first fragment of the
- datagram.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>in</term>
-
- <listitem>
- <para>Matches if the packet is on the way in.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>out</term>
-
- <listitem>
- <para>Matches if the packet is on the way out.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ipoptions <replaceable>spec</replaceable></term>
-
- <listitem>
- <para>Matches if the IP header contains the comma separated list
- of options specified in <replaceable>spec</replaceable>. The
- supported list of IP options are: <literal>ssrr</literal>
- (strict source route), <literal>lsrr</literal> (loose source
- route), <literal>rr</literal> (record packet route), and
- <literal>ts</literal> (time stamp). The absence of a
- particular option may be denoted with a leading
- <literal>!</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>established</term>
-
- <listitem>
- <para>Matches if the packet is part of an already established
- TCP connection (i.e. it has the RST or ACK bits set). You can
- optimize the performance of the firewall by placing
- <emphasis>established</emphasis> rules early in the
- chain.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>setup</term>
-
- <listitem>
- <para>Matches if the packet is an attempt to establish a TCP
- connection (the SYN bit set is set but the ACK bit is
- not).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>tcpflags <replaceable>flags</replaceable></term>
-
- <listitem>
- <para>Matches if the TCP header contains the comma separated
- list of <replaceable>flags</replaceable>. The supported flags
- are <literal>fin</literal>, <literal>syn</literal>,
- <literal>rst</literal>, <literal>psh</literal>,
- <literal>ack</literal>, and <literal>urg</literal>. The
- absence of a particular flag may be indicated by a leading
- <literal>!</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>icmptypes <replaceable>types</replaceable></term>
-
- <listitem>
- <para>Matches if the ICMP type is present in the list
- <replaceable>types</replaceable>. The list may be specified
- as any combination of ranges and/or individual types separated
- by commas. Commonly used ICMP types are: <literal>0</literal>
- echo reply (ping reply), <literal>3</literal> destination
- unreachable, <literal>5</literal> redirect,
- <literal>8</literal> echo request (ping request), and
- <literal>11</literal> time exceeded (used to indicate TTL
- expiration as with &man.traceroute.8;).</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
-
- <sect3>
- <title>Listing the IPFW rules</title>
-
- <para>The syntax for this form of the command is:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg>-a</arg>
- <arg>-t</arg>
- <arg>-N</arg>
- <arg choice="plain">l</arg>
- </cmdsynopsis></para>
-
- <para>There are three valid flags when using this form of the
- command:</para>
-
- <variablelist>
- <varlistentry>
- <term>-a</term>
-
- <listitem>
- <para>While listing, show counter values. This option is the
- only way to see accounting counters.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-t</term>
-
- <listitem>
- <para>Display the last match times for each chain entry. The
- time listing is incompatible with the input syntax used by the
- &man.ipfw.8; utility.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-N</term>
-
- <listitem>
- <para>Attempt to resolve given addresses and service
- names.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
-
- <sect3>
- <title>Flushing the IPFW rules</title>
-
- <para>The syntax for flushing the chain is:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg choice="plain">flush</arg>
- </cmdsynopsis></para>
-
- <para>This causes all entries in the firewall chain to be removed
- except the fixed default policy enforced by the kernel (index
- 65535). Use caution when flushing rules, the default deny policy
- will leave your system cut off from the network until allow entries
- are added to the chain.</para>
- </sect3>
-
- <sect3>
- <title>Clearing the IPFW packet counters</title>
-
- <para>The syntax for clearing one or more packet counters is:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg choice="plain">zero</arg>
- <arg choice="opt"><replaceable>index</replaceable></arg>
- </cmdsynopsis></para>
-
- <para>When used without an <replaceable>index</replaceable> argument,
- all packet counters are cleared. If an
- <replaceable>index</replaceable> is supplied, the clearing operation
- only affects a specific chain entry.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Example commands for ipfw</title>
-
- <para>This command will deny all packets from the host <hostid
- role="fqdn">evil.crackers.org</hostid> to the telnet port of the
- host <hostid role="fqdn">nice.people.org</hostid>:</para>
-
- <screen>&prompt.root <userinput>ipfw add deny tcp from evil.crackers.org to nice.people.org 23</userinput></screen>
-
- <para>The next example denies and logs any TCP traffic from the entire
- <hostid role="domainname">crackers.org</hostid> network (a class C) to
- the <hostid role="fqdn">nice.people.org</hostid> machine (any
- port).</para>
-
- <screen>&prompt.root; <userinput>ipfw add deny log tcp from evil.crackers.org/24 to nice.people.org</userinput></screen>
-
- <para>If you do not want people sending X sessions to your internal
- network (a subnet of a class C), the following command will do the
- necessary filtering:</para>
-
- <screen>&prompt.root; <userinput>ipfw add deny tcp from any to my.org/28 6000 setup</userinput></screen>
-
- <para>To see the accounting records:
-
- <screen>&prompt.root; <userinput>ipfw -a list</userinput></screen>
-
- or in the short form
-
- <screen>&prompt.root; <userinput>ipfw -a l</userinput></screen>
- </para>
-
- <para>You can also see the last time a chain entry was matched
- with:</para>
-
- <screen>&prompt.root; <userinput>ipfw -at l</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Building a packet filtering firewall</title>
-
- <note>
- <para>The following suggestions are just that: suggestions. The
- requirements of each firewall are different and we cannot tell you
- how to build a firewall to meet your particular requirements.</para>
- </note>
-
- <para>When initially setting up your firewall, unless you have a test
- bench setup where you can configure your firewall host in a controlled
- environment, it is strongly recommend you use the logging version of the
- commands and enable logging in the kernel. This will allow you to
- quickly identify problem areas and cure them without too much
- disruption. Even after the initial setup phase is complete, I
- recommend using the logging for `deny' as it allows tracing of
- possible attacks and also modification of the firewall rules if your
- requirements alter.</para>
-
- <note>
- <para>If you use the logging versions of the <command>accept</command>
- command, it can generate <emphasis>large</emphasis> amounts of log
- data as one log line will be generated for every packet that passes
- through the firewall, so large ftp/http transfers, etc, will really
- slow the system down. It also increases the latencies on those
- packets as it requires more work to be done by the kernel before the
- packet can be passed on. syslogd with also start using up a lot
- more processor time as it logs all the extra data to disk, and it
- could quite easily fill the partition <filename>/var/log</filename>
- is located on.</para>
- </note>
-
- <para>You should enable your firewall from
- <filename>/etc/rc.conf.local</filename> or
- <filename>/etc/rc.conf</filename>. The associated man page explains
- which knobs to fiddle and lists some preset firewall configurations.
- If you do not use a preset configuration, <command>ipfw list</command>
- will output the current ruleset into a file that you can
- pass to <filename>rc.conf</filename>. If you do not use
- <filename>/etc/rc.conf.local</filename> or
- <filename>/etc/rc.conf</filename> to enable your firewall,
- it is important to make sure your firewall is enabled before
- any IP interfaces are configured.
- </para>
-
- <para>The next problem is what your firewall should actually
- <emphasis>do</emphasis>! This is largely dependent on what access to
- your network you want to allow from the outside, and how much access
- to the outside world you want to allow from the inside. Some general
- rules are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Block all incoming access to ports below 1024 for TCP. This is
- where most of the security sensitive services are, like finger,
- SMTP (mail) and telnet.</para>
- </listitem>
-
- <listitem>
- <para>Block <emphasis>all</emphasis> incoming UDP traffic. There
- are very few useful services that travel over UDP, and what useful
- traffic there is is normally a security threat (e.g. Suns RPC and
- NFS protocols). This has its disadvantages also, since UDP is a
- connectionless protocol, denying incoming UDP traffic also blocks
- the replies to outgoing UDP traffic. This can cause a problem for
- people (on the inside) using external archie (prospero) servers.
- If you want to allow access to archie, you'll have to allow
- packets coming from ports 191 and 1525 to any internal UDP port
- through the firewall. ntp is another service you may consider
- allowing through, which comes from port 123.</para>
- </listitem>
-
- <listitem>
- <para>Block traffic to port 6000 from the outside. Port 6000 is the
- port used for access to X11 servers, and can be a security threat
- (especially if people are in the habit of doing <command>xhost
- +</command> on their workstations). X11 can actually use a
- range of ports starting at 6000, the upper limit being how many X
- displays you can run on the machine. The upper limit as defined
- by RFC 1700 (Assigned Numbers) is 6063.</para>
- </listitem>
-
- <listitem>
- <para>Check what ports any internal servers use (e.g. SQL servers,
- etc). It is probably a good idea to block those as well, as they
- normally fall outside the 1-1024 range specified above.</para>
- </listitem>
- </itemizedlist>
-
- <para>Another checklist for firewall configuration is available from
- CERT at <ulink
- url="http://www.cert.org/tech_tips/packet_filtering.html">http://www.cert.org/tech_tips/packet_filtering.html</ulink></para>
-
- <para>As stated above, these are only <emphasis>guidelines</emphasis>.
- You will have to decide what filter rules you want to use on your
- firewall yourself. We cannot accept ANY responsibility if someone
- breaks into your network, even if you follow the advice given
- above.</para>
- </sect2>
- </sect1>
-
- <sect1 id="openssl">
- <title>OpenSSL</title>
-
- <para>As of FreeBSD 4.0, the OpenSSL toolkit is a part of the base
- system. <ulink url="http://www.openssl.org/">OpenSSL</ulink>
- provides a general-purpose cryptography library, as well as the
- Secure Sockets Layer v2/v3 (SSLv2/SSLv3) and Transport Layer
- Security v1 (TLSv1) network security protocols.</para>
-
- <para>However, one of the algorithms (specifically IDEA)
- included in OpenSSL is protected by patents in the USA and
- elsewhere, and is not available for unrestricted use.
- IDEA is included in the OpenSSL sources in FreeBSD, but it is not
- built by default. If you wish to use it, and you comply with the
- license terms, enable the MAKE_IDEA switch in /etc/make.conf and
- rebuild your sources using 'make world'.</para>
-
- <para>Today, the RSA algorithm is free for use in USA and other
- countries. In the past it was protected by a patent.</para>
-
- <sect2>
- <title>Source Code Installations</title>
-
- <para>OpenSSL is part of the <literal>src-crypto</literal> and
- <literal>src-secure</literal> cvsup collections. See the <link
- linkend="mirrors">Obtaining FreeBSD</link> section for more
- information about obtaining and updating FreeBSD source
- code.</para>
- </sect2>
- </sect1>
-
- <sect1 id="ipsec">
- <title>IPsec</title>
- <para><emphasis>Contributed by &a.shin;, 5 March
- 2000.</emphasis></para>
-
- <para>IPsec mechanism provides secure communication either for IP
- layer and socket layer communication. This section should
- explain how to use them. About IPsec implementation, please
- refer <link linkend="ipsec-implementation">section 23.5.4</link>.</para>
-
- <para>The current IPsec implementation supports both transport mode
- and tunnel mode. However, tunnel mode comes with some restrictions.
- <ulink url="http://www.kame.net/newsletter/">http://www.kame.net/newsletter/
- </ulink> has more comprehensive examples.</para>
-
- <para>Please be aware that in order to use this functionality, you
- must have the following options compiled into your kernel:</para>
-
- <programlisting>options IPSEC #IP security
-options IPSEC_ESP #IP security (crypto; define w/IPSEC)</programlisting>
-
- <sect2>
- <title>Transport mode example with IPv4</title>
-
- <para>Let's setup security association to deploy a secure channel
- between HOST A (10.2.3.4) and HOST B (10.6.7.8). Here we show a little
- complicated example. From HOST A to HOST B, only old AH is used.
- From HOST B to HOST A, new AH and new ESP are combined.</para>
-
- <para>Now we should choose algorithm to be used corresponding to
- "AH"/"new AH"/"ESP"/"new ESP". Please refer to the &man.setkey.8; man
- page to know algorithm names. Our choice is MD5 for AH, new-HMAC-SHA1
- for new AH, and new-DES-expIV with 8 byte IV for new ESP.</para>
-
- <para>Key length highly depends on each algorithm. For example, key
- length must be equal to 16 bytes for MD5, 20 for new-HMAC-SHA1,
- and 8 for new-DES-expIV. Now we choose "MYSECRETMYSECRET",
- "KAMEKAMEKAMEKAMEKAME", "PASSWORD", respectively.</para>
-
- <para>OK, let's assign SPI (Security Parameter Index) for each protocol.
- Please note that we need 3 SPIs for this secure channel since three
- security headers are produced (one for from HOST A to HOST B, two for
- from HOST B to HOST A). Please also note that SPI MUST be greater
- than or equal to 256. We choose, 1000, 2000, and 3000, respectively.
- </para>
-
- <screen>
-
- (1)
- HOST A ------> HOST B
-
- (1)PROTO=AH
- ALG=MD5(RFC1826)
- KEY=MYSECRETMYSECRET
- SPI=1000
-
- (2.1)
- HOST A <------ HOST B
- <------
- (2.2)
-
- (2.1)
- PROTO=AH
- ALG=new-HMAC-SHA1(new AH)
- KEY=KAMEKAMEKAMEKAMEKAME
- SPI=2000
-
- (2.2)
- PROTO=ESP
- ALG=new-DES-expIV(new ESP)
- IV length = 8
- KEY=PASSWORD
- SPI=3000
-
- </screen>
-
- <para>Now, let's setup security association. Execute &man.setkey.8;
- on both HOST A and B:</para>
-
- <screen>
-
-&prompt.root; <command>setkey -c</command>
-add 10.2.3.4 10.6.7.8 ah-old 1000 -m transport -A keyed-md5 "MYSECRETMYSECRET" ;
-add 10.6.7.8 10.2.3.4 ah 2000 -m transport -A hmac-sha1 "KAMEKAMEKAMEKAMEKAME" ;
-add 10.6.7.8 10.2.3.4 esp 3000 -m transport -E des-cbc "PASSWORD" ;
-^D
-
- </screen>
-
- <para>Actually, IPsec communication doesn't process until security policy
- entries will be defined. In this case, you must setup each host.</para>
-
- <screen>
-
-At A:
-
-&prompt.root; <command>setkey -c</command>
-spdadd 10.2.3.4 10.6.7.8 any -P out ipsec
- ah/transport/10.2.3.4-10.6.7.8/require ;
-^D
-
-At B:
-
-&prompt.root; <command>setkey -c</command>
-spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
- esp/transport/10.6.7.8-10.2.3.4/require ;
-spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
- ah/transport/10.6.7.8-10.2.3.4/require ;
-^D
-
-
- HOST A --------------------------------------> HOST E
- 10.2.3.4 10.6.7.8
- | |
- ========== old AH keyed-md5 ==========>
-
- <========= new AH hmac-sha1 ===========
- <========= new ESP des-cbc ============
-
- </screen>
- </sect2>
-
- <sect2>
- <title>Transport mode example with IPv6</title>
-
- <para>Another example using IPv6.</para>
-
- <para>ESP transport mode is recommended for TCP port number 110 between
- Host-A and Host-B.</para>
-
- <screen>
-
- ============ ESP ============
- | |
- Host-A Host-B
- fec0::10 -------------------- fec0::11
-
- </screen>
-
- <para>Encryption algorithm is blowfish-cbc whose key is "kamekame", and
- authentication algorithm is hmac-sha1 whose key is "this is the test
- key". Configuration at Host-A:</para>
-
- <screen>
-
- &prompt.root; <command>setkey -c</command> &lt;&lt;<filename>EOF</filename>
- spdadd fec0::10[any] fec0::11[110] tcp -P out ipsec
- esp/transport/fec0::10-fec0::11/use ;
- spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec
- esp/transport/fec0::11-fec0::10/use ;
- add fec0::10 fec0::11 esp 0x10001
- -m transport
- -E blowfish-cbc "kamekame"
- -A hmac-sha1 "this is the test key" ;
- add fec0::11 fec0::10 esp 0x10002
- -m transport
- -E blowfish-cbc "kamekame"
- -A hmac-sha1 "this is the test key" ;
- EOF
-
- </screen>
-
- <para>and at Host-B:</para>
-
- <screen>
- &prompt.root; <command>setkey -c</command> &lt;&lt;<filename>EOF</filename>
- spdadd fec0::11[110] fec0::10[any] tcp -P out ipsec
- esp/transport/fec0::11-fec0::10/use ;
- spdadd fec0::10[any] fec0::11[110] tcp -P in ipsec
- esp/transport/fec0::10-fec0::11/use ;
- add fec0::10 fec0::11 esp 0x10001 -m transport
- -E blowfish-cbc "kamekame"
- -A hmac-sha1 "this is the test key" ;
- add fec0::11 fec0::10 esp 0x10002 -m transport
- -E blowfish-cbc "kamekame"
- -A hmac-sha1 "this is the test key" ;
- EOF
-
- </screen>
-
- <para>Note the direction of SP.</para>
- </sect2>
-
- <sect2>
- <title>Tunnel mode example with IPv4</title>
-
- <para>Tunnel mode between two security gateways</para>
-
- <para>Security protocol is old AH tunnel mode, i.e. specified by
- RFC1826, with keyed-md5 whose key is "this is the test" as
- authentication algorithm.</para>
-
- <screen>
-
- ======= AH =======
- | |
- Network-A Gateway-A Gateway-B Network-B
- 10.0.1.0/24 ---- 172.16.0.1 ----- 172.16.0.2 ---- 10.0.2.0/24
-
- </screen>
-
- <para>Configuration at Gateway-A:</para>
-
- <screen>
-
- &prompt.root; <command>setkey -c</command> &lt;&lt;<filename>EOF</filename>
- spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec
- ah/tunnel/172.16.0.1-172.16.0.2/require ;
- spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec
- ah/tunnel/172.16.0.2-172.16.0.1/require ;
- add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
- -A keyed-md5 "this is the test" ;
- add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
- -A keyed-md5 "this is the test" ;
-
- EOF
-
- </screen>
-
- <para>If port number field is omitted such above then "[any]" is
- employed. `-m' specifies the mode of SA to be used. "-m any" means
- wild-card of mode of security protocol. You can use this SA for both
- tunnel and transport mode.</para>
-
- <para>and at Gateway-B:</para>
-
- <screen>
-
- &prompt.root; <command>setkey -c</command> &lt;&lt;<filename>EOF</filename>
- spdadd 10.0.2.0/24 10.0.1.0/24 any -P out ipsec
- ah/tunnel/172.16.0.2-172.16.0.1/require ;
- spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec
- ah/tunnel/172.16.0.1-172.16.0.2/require ;
- add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
- -A keyed-md5 "this is the test" ;
- add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
- -A keyed-md5 "this is the test" ;
-
- EOF
-
- </screen>
-
- <para>Making SA bundle between two security gateways</para>
-
- <para>AH transport mode and ESP tunnel mode is required between
- Gateway-A and Gateway-B. In this case, ESP tunnel mode is applied first,
- and AH transport mode is next.</para>
-
- <screen>
-
- ========== AH =========
- | ======= ESP ===== |
- | | | |
- Network-A Gateway-A Gateway-B Network-B
- fec0:0:0:1::/64 --- fec0:0:0:1::1 ---- fec0:0:0:2::1 --- fec0:0:0:2::/64
-
- </screen>
- </sect2>
-
- <sect2>
- <title>Tunnel mode example with IPv6</title>
-
- <para>Encryption algorithm is 3des-cbc, and authentication algorithm
- for ESP is hmac-sha1. Authentication algorithm for AH is hmac-md5.
- Configuration at Gateway-A:</para>
-
- <screen>
-
- &prompt.root; <command>setkey -c</command> &lt;&lt;<filename>EOF</filename>
- spdadd fec0:0:0:1::/64 fec0:0:0:2::/64 any -P out ipsec
- esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require
- ah/transport/fec0:0:0:1::1-fec0:0:0:2::1/require ;
- spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec
- esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require
- ah/transport/fec0:0:0:2::1-fec0:0:0:1::1/require ;
- add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel
- -E 3des-cbc "kamekame12341234kame1234"
- -A hmac-sha1 "this is the test key" ;
- add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport
- -A hmac-md5 "this is the test" ;
- add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel
- -E 3des-cbc "kamekame12341234kame1234"
- -A hmac-sha1 "this is the test key" ;
- add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport
- -A hmac-md5 "this is the test" ;
-
- EOF
-
- </screen>
-
- <para>Making SAs with the different end</para>
-
- <para>ESP tunnel mode is required between Host-A and Gateway-A. Encryption
- algorithm is cast128-cbc, and authentication algorithm for ESP is
- hmac-sha1. ESP transport mode is recommended between Host-A and Host-B.
- Encryption algorithm is rc5-cbc, and authentication algorithm for ESP is
- hmac-md5.</para>
-
- <screen>
-
- ================== ESP =================
- | ======= ESP ======= |
- | | | |
- Host-A Gateway-A Host-B
- fec0:0:0:1::1 ---- fec0:0:0:2::1 ---- fec0:0:0:2::2
-
- </screen>
-
- <para>Configuration at Host-A:</para>
-
- <screen>
-
- &prompt.root; <command>setkey -c</command> &lt;&lt;<filename>EOF</filename>
- spdadd fec0:0:0:1::1[any] fec0:0:0:2::2[80] tcp -P out ipsec
- esp/transport/fec0:0:0:1::1-fec0:0:0:2::2/use
- esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ;
- spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in ipsec
- esp/transport/fec0:0:0:2::2-fec0:0:0:l::1/use
- esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ;
- add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001
- -m transport
- -E cast128-cbc "12341234"
- -A hmac-sha1 "this is the test key" ;
- add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002
- -E rc5-cbc "kamekame"
- -A hmac-md5 "this is the test" ;
- add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003
- -m transport
- -E cast128-cbc "12341234"
- -A hmac-sha1 "this is the test key" ;
- add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004
- -E rc5-cbc "kamekame"
- -A hmac-md5 "this is the test" ;
-
- EOF
-
- </screen>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml
deleted file mode 100644
index d9c687d849..0000000000
--- a/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ /dev/null
@@ -1,2721 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/serialcomms/chapter.sgml,v 1.23 2001/04/09 00:33:57 dd Exp $
--->
-
-<chapter id="serialcomms">
- <title>Serial Communications</title>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>UNIX has always had support for serial communications. In fact,
- the very first UNIX machines relied on serial lines for user input
- and output. Things have changed a lot from the days when the average
- <quote>terminal</quote> consisted of a 10-character-per-second serial
- printer and a keyboard. This chapter will cover some of the ways in
- which FreeBSD uses serial communications.</para>
- </sect1>
-
- <sect1 id="serial">
- <title>Serial Basics</title>
-
- <para><emphasis>Assembled from FAQ.</emphasis></para>
-
- <para>This section should give you some general information about serial
- ports. If you do not find what you want here, check into the Terminal
- and Dial-up sections of the handbook.</para>
-
- <para>The <filename>ttyd<replaceable>X</replaceable></filename> (or
- <filename>cuaa<replaceable>X</replaceable></filename>) 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
- <emphasis>XON/XOFF</emphasis> 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 <filename>ttyd5</filename> to
- 57600 bps, do</para>
-
- <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
-
- <para>Now, an application that opens <filename>ttyd5</filename> 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
- <filename>MAKEDEV</filename> script does <emphasis>not</emphasis> do
- this when it creates the device entries.</para>
- </sect1>
-
- <sect1 id="term">
- <title>Terminals</title>
-
- <para><emphasis>Contributed by &a.kelly; 28 July 1996</emphasis></para>
-
- <para>Terminals provide a convenient and low-cost way to access the power
- of your FreeBSD system when you are not at the computer's console or on
- a connected network. This section describes how to use terminals with
- FreeBSD.</para>
-
- <sect2 id="term-uses">
- <title>Uses and Types of Terminals</title>
-
- <para>The original Unix systems did not have consoles. Instead, people
- logged in and ran programs through terminals that were connected to
- the computer's serial ports. It is quite similar to using a modem and
- some terminal software to dial into a remote system to do text-only
- work.</para>
-
- <para>Today's PCs have consoles capable of high quality graphics, but
- the ability to establish a login session on a serial port still exists
- in nearly every Unix-style operating system today; FreeBSD is no
- exception. By using a terminal attached to a unused serial port, you
- can log in and run any text program that you would normally run on the
- console or in an <command>xterm</command> window in the X Window
- System.</para>
-
- <para>For the business user, you can attach many terminals to a FreeBSD
- system and place them on your employees' desktops. For a home user, a
- spare computer such as an older IBM PC or a Macintosh can be a
- terminal wired into a more powerful computer running FreeBSD. You can
- turn what might otherwise be a single-user computer into a powerful
- multiple user system.</para>
-
- <para>For FreeBSD, there are three kinds of terminals:</para>
-
- <itemizedlist>
- <listitem>
- <para><link linkend="term-dumb">Dumb terminals</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="term-pcs">PCs acting as terminals</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="term-x">X terminals</link></para>
- </listitem>
- </itemizedlist>
-
- <para>The remaining subsections describe each kind.</para>
-
- <sect3 id="term-dumb">
- <title>Dumb Terminals</title>
-
- <para>Dumb terminals are specialized pieces of hardware that let you
- connect to computers over serial lines. They are called
- <quote>dumb</quote> because they have only enough computational power
- to display, send, and receive text. You cannot run any programs on
- them. It is the computer to which you connect them that has all the
- power to run text editors, compilers, email, games, and so
- forth.</para>
-
- <para>There are hundreds of kinds of dumb terminals made by many
- manufacturers, including Digital Equipment Corporation's VT-100 and
- Wyse's WY-75. Just about any kind will work with FreeBSD. Some
- high-end terminals can even display graphics, but only certain
- software packages can take advantage of these advanced
- features.</para>
-
- <para>Dumb terminals are popular in work environments where workers do
- not need access to graphic applications such as those provided by
- the X Window System.</para>
- </sect3>
-
- <sect3 id="term-pcs">
- <title>PCs Acting As Terminals</title>
-
- <para>If a <link linkend="term-dumb">dumb terminal</link> has just
- enough ability to display, send, and receive text, then certainly
- any spare personal computer can be a dumb terminal. All you need is
- the proper cable and some <emphasis>terminal emulation</emphasis>
- software to run on the computer.</para>
-
- <para>Such a configuration is popular in homes. For example, if your
- spouse is busy working on your FreeBSD system's console, you can do
- some text-only work at the same time from a less powerful personal
- computer hooked up as a terminal to the FreeBSD system.</para>
- </sect3>
-
- <sect3 id="term-x">
- <title>X Terminals</title>
-
- <para>X terminals are the most sophisticated kind of terminal
- available. Instead of connecting to a serial port, they usually
- connect to a network like Ethernet. Instead of being relegated to
- text-only applications, they can display any X application.</para>
-
- <para>We introduce X terminals just for the sake of completeness.
- However, this chapter does <emphasis>not</emphasis> cover setup,
- configuration, or use of X terminals.</para>
- </sect3>
- </sect2>
-
- <sect2 id="term-cables-ports">
- <title>Cables and Ports</title>
-
- <para>To connect a terminal to your FreeBSD system, you need the right
- kind of cable and a serial port to which to connect it. This section
- tells you what to do. If you are already familiar with your terminal
- and the cable it requires, skip to <link
- linkend="term-config">Configuration</link>.</para>
-
- <sect3 id="term-cables">
- <title>Cables</title>
-
- <para>Because terminals use serial ports, you need to use
- serial&mdash;also known as RS-232C&mdash;cables to connect the
- terminal to the FreeBSD system.</para>
-
- <para>There are a couple of kinds of serial cables. Which one
- you'll use depends on the terminal you want to connect:</para>
-
- <itemizedlist>
- <listitem>
- <para>If you are connecting a personal computer to act as a
- terminal, use a <link linkend="term-null">null-modem</link>
- cable. A null-modem cable connects two computers or terminals
- together.</para>
- </listitem>
-
- <listitem>
- <para>If you have an actual terminal, your best source of
- information on what cable to use is the documentation that
- accompanied the terminal. If you do not have the documentation,
- then try a <link linkend="term-null">null-modem</link> cable.
- If that does not work, then try a <link
- linkend="term-std">standard</link> cable.</para>
- </listitem>
- </itemizedlist>
-
- <para>Also, the serial port on <emphasis>both</emphasis> the terminal
- and your FreeBSD system must have connectors that will fit the cable
- you are using.</para>
-
- <sect4 id="term-null">
- <title>Null-modem cables</title>
-
- <para>A null-modem cable passes some signals straight through, like
- <quote>signal ground,</quote> but switches other signals. For
- example, the <quote>send data</quote> pin on one end goes to the
- <quote>receive data</quote> pin on the other end.</para>
-
- <para>If you like making your own cables, here is a table showing a
- recommended way to construct a null-modem cable for use with
- terminals. This table shows the RS-232C signal names and the pin
- numbers on a DB-25 connector.</para>
-
- <informaltable frame="none">
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Signal</entry>
- <entry>Pin #</entry>
- <entry></entry>
- <entry>Pin #</entry>
- <entry>Signal</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>TxD</entry>
- <entry>2</entry>
- <entry>connects to</entry>
- <entry>3</entry>
- <entry>RxD</entry>
- </row>
-
- <row>
- <entry>RxD</entry>
- <entry>3</entry>
- <entry>connects to</entry>
- <entry>2</entry>
- <entry>TxD</entry>
- </row>
-
- <row>
- <entry>DTR</entry>
- <entry>20</entry>
- <entry>connects to</entry>
- <entry>6</entry>
- <entry>DSR</entry>
- </row>
-
- <row>
- <entry>DSR</entry>
- <entry>6</entry>
- <entry>connects to</entry>
- <entry>20</entry>
- <entry>DTR</entry>
- </row>
-
- <row>
- <entry>SG</entry>
- <entry>7</entry>
- <entry>connects to</entry>
- <entry>7</entry>
- <entry>SG</entry>
- </row>
-
- <row>
- <entry>DCD</entry>
- <entry>8</entry>
- <entry>connects to</entry>
- <entry>4</entry>
- <entry>RTS</entry>
- </row>
-
- <row>
- <entry>RTS</entry>
- <entry>4</entry>
- <entry></entry>
- <entry>5</entry>
- <entry>CTS</entry>
- </row>
-
- <row>
- <entry>CTS</entry>
- <entry>5</entry>
- <entry>connects to</entry>
- <entry>8</entry>
- <entry>DCD</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>For DCD to RTS, connect pins 4 to 5 internally in the
- connector hood, and then to pin 8 in the remote
- hood.</para>
- </note>
- </sect4>
-
- <sect4 id="term-std">
- <title>Standard RS-232C Cables</title>
-
- <para>A standard serial cable passes all the RS-232C signals
- straight-through. That is, the <quote>send data</quote> pin on one
- end of the cable goes to the <quote>send data</quote> pin on the
- other end. This is the type of cable to connect a modem to your
- FreeBSD system, and the type of cable needed for some
- terminals.</para>
- </sect4>
- </sect3>
-
- <sect3 id="term-ports">
- <title>Ports</title>
-
- <para>Serial ports are the devices through which data is transferred
- between the FreeBSD host computer and the terminal. This section
- describes the kinds of ports that exist and how they are addressed
- in FreeBSD.</para>
-
- <sect4 id="term-portkinds">
- <title>Kinds of Ports</title>
-
- <para>Several kinds of serial ports exist. Before you purchase or
- construct a cable, you need to make sure it will fit the ports on
- your terminal and on the FreeBSD system.</para>
-
- <para>Most terminals will have DB25 ports. Personal computers,
- including PCs running FreeBSD, will have DB25 or DB9 ports. If you
- have a multiport serial card for your PC, you may have RJ-12 or
- RJ-45 ports.</para>
-
- <para>See the documentation that accompanied the hardware for
- specifications on the kind of port in use. A visual inspection of
- the port often works, too.</para>
- </sect4>
-
- <sect4 id="term-portnames">
- <title>Port Names</title>
-
- <para>In FreeBSD, you access each serial port through an entry in
- the <filename>/dev</filename> directory. There are two different
- kinds of entries:</para>
-
- <itemizedlist>
- <listitem>
- <para>Call-in ports are named
- <filename>/dev/ttyd<replaceable>X</replaceable></filename>
- where <replaceable>X</replaceable> is the port number,
- starting from zero. Generally, you use the call-in port for
- terminals. Call-in ports require that the serial line assert
- the data carrier detect (DCD) signal to work.</para>
- </listitem>
-
- <listitem>
- <para>Call-out ports are named
- <filename>/dev/cuaa<replaceable>X</replaceable></filename>.
- You usually do not use the call-out port for terminals, just
- for modems. You may use the call-out port if the serial cable
- or the terminal does not support the carrier detect
- signal.</para>
- </listitem>
- </itemizedlist>
-
- <para>See the &man.sio.4; manual page for more information.</para>
-
- <para>If you have connected a terminal to the first serial port
- (<devicename>COM1</devicename> in DOS parlance), then you want to
- use <filename>/dev/ttyd0</filename> to refer to the terminal. If
- it is on the second serial port (also known as
- <devicename>COM2</devicename>), it is
- <filename>/dev/ttyd1</filename>, and so forth.</para>
-
- <para>Note that you may have to configure your kernel to support
- each serial port, especially if you have a multiport serial card.
- See <link linkend="kernelconfig">Configuring the FreeBSD
- Kernel</link> for more information.</para>
- </sect4>
- </sect3>
- </sect2>
-
- <sect2 id="term-config">
- <title>Configuration</title>
-
- <para>This section describes what you need to configure on your FreeBSD
- system to enable a login session on a terminal. It assumes you have
- already configured your kernel to support the serial port to which the
- terminal is connected&mdash;and that you have connected it.</para>
-
- <para>In a nutshell, you need to tell the <command>init</command>
- process, which is responsible for process control and initialization,
- to start a <command>getty</command> process, which is responsible for
- reading a login name and starting the <command>login</command>
- program.</para>
-
- <para>To do so, you have to edit the <filename>/etc/ttys</filename>
- file. First, use the <command>su</command> command to become root.
- Then, make the following changes to
- <filename>/etc/ttys</filename>:</para>
-
- <procedure>
- <step>
- <para>Add an line to <filename>/etc/ttys</filename> for the entry in
- the <filename>/dev</filename> directory for the serial port if it
- is not already there.</para>
- </step>
-
- <step>
- <para>Specify that <filename>/usr/libexec/getty</filename> be run on
- the port, and specify the appropriate
- <replaceable>getty</replaceable> type from the
- <filename>/etc/gettytab</filename> file.</para>
- </step>
-
- <step>
- <para>Specify the default terminal type.</para>
- </step>
-
- <step>
- <para>Set the port to <quote>on.</quote></para>
- </step>
-
- <step>
- <para>Specify whether the port should be
- <quote>secure.</quote></para>
- </step>
-
- <step>
- <para>Force <command>init</command> to reread the
- <filename>/etc/ttys</filename> file.</para>
- </step>
- </procedure>
-
- <para>As an optional step, you may wish to create a custom
- <replaceable>getty</replaceable> type for use in step 2 by making an
- entry in <filename>/etc/gettytab</filename>. This document does
- not explain how to do so; you are encouraged to see the
- &man.gettytab.5; and the &man.getty.8; manual pages for more
- information.</para>
-
- <para>The remaining sections detail how to do these steps. We will use
- a running example throughout these sections to illustrate what we need
- to do. In our example, we will connect two terminals to the system: a
- Wyse-50 and a old 286 IBM PC running Procomm terminal software
- emulating a VT-100 terminal. We connect the Wyse to the second serial
- port and the 286 to the sixth serial port (a port on a multiport
- serial card).</para>
-
- <para>For more information on the <filename>/etc/ttys</filename>
- file, see the &man.ttys.5; manual page.</para>
-
- <sect3 id="term-etcttys">
- <title>Adding an Entry to <filename>/etc/ttys</filename></title>
-
- <para>First, you need to add an entry to the
- <filename>/etc/ttys</filename> file, unless one is already
- there.</para>
-
- <para>The <filename>/etc/ttys</filename> file lists all of the ports
- on your FreeBSD system where you want to allow logins. For example,
- the first virtual console <filename>ttyv0</filename> has an entry in
- this file. You can log in on the console using this entry. This
- file contains entries for the other virtual consoles, serial ports,
- and pseudo-ttys. For a hardwired terminal, just list the serial
- port's <filename>/dev</filename> entry without the
- <filename>/dev</filename> part.</para>
-
- <para>When you installed your FreeBSD system, the
- <filename>/etc/ttys</filename> file included entries for the first
- four serial ports: <filename>ttyd0</filename> through
- <filename>ttyd3</filename>. If you are attaching a terminal on one
- of those ports, you do not need to add an entry.</para>
-
- <para>In our example, we attached a Wyse-50 to the second serial port,
- <filename>ttyd1</filename>, which is already in the file. We need
- to add an entry for the 286 PC connected to the sixth serial port.
- Here is an excerpt of the <filename>/etc/ttys</filename> file after
- we add the new entry:</para>
-
- <programlisting>ttyd1 "/usr/libexec/getty std.9600" unknown off secure
-ttyd5</programlisting>
- </sect3>
-
- <sect3 id="term-getty">
- <title>Specifying the <replaceable>getty</replaceable> Type</title>
-
- <para>Next, we need to specify what program will be run to handle the
- logins on a terminal. For FreeBSD, the standard program to do that
- is <filename>/usr/libexec/getty</filename>. It is what provides the
- <prompt>login:</prompt> prompt.</para>
-
- <para>The program <command>getty</command> takes one (optional)
- parameter on its command line, the <replaceable>getty</replaceable>
- type. A <replaceable>getty</replaceable> type tells about
- characteristics on the terminal line, like bps rate and parity. The
- <command>getty</command> program reads these characteristics from
- the file <filename>/etc/gettytab</filename>.</para>
-
- <para>The file <filename>/etc/gettytab</filename> contains lots of
- entries for terminal lines both old and new. In almost all cases,
- the entries that start with the text <literal>std</literal> will
- work for hardwired terminals. These entries ignore parity. There is
- a <literal>std</literal> entry for each bps rate from 110 to 115200.
- Of course, you can add your own entries to this file. The manual
- page &man.gettytab.5; provides more
- information.</para>
-
- <para>When setting the <replaceable>getty</replaceable> type in the
- <filename>/etc/ttys</filename> file, make sure that the
- communications settings on the terminal match.</para>
-
- <para>For our example, the Wyse-50 uses no parity and connects at
- 38400 bps. The 286 PC uses no parity and connects at 19200 bps.
- Here is the <filename>/etc/ttys</filename> file so far (showing just
- the two terminals in which we are interested):</para>
-
- <programlisting>ttyd1 "/usr/libexec/getty std.38400" unknown off secure
-ttyd5 "/usr/libexec/getty std.19200"</programlisting>
-
- <para>Note that the second field&mdash;where we specify what program
- to run&mdash;appears in quotes. This is important, otherwise the
- type argument to <command>getty</command> might be interpreted as
- the next field.</para>
- </sect3>
-
- <sect3 id="term-deftermtype">
- <title>Specifying the Default Terminal Type</title>
-
- <para>The third field in the <filename>/etc/ttys</filename> file lists
- the default terminal type for the port. For dial-up ports, you
- typically put <literal>unknown</literal> or
- <literal>dialup</literal> in this field because users may dial up
- with practically any kind of terminal or software. For hardwired
- terminals, the terminal type does not change, so you can put a real
- terminal type in this field.</para>
-
- <para>Users will usually use the <command>tset</command> program in
- their <filename>.login</filename> or <filename>.profile</filename>
- files to check the terminal type and prompt for one if necessary.
- By setting a terminal type in the <filename>/etc/ttys</filename>
- file, users can forego such prompting.</para>
-
- <para>To find out what terminal types FreeBSD supports, see the
- file <filename>/usr/share/misc/termcap</filename>. It lists
- about 600 terminal types. You can add more if you wish. See
- the &man.termcap.5; manual page for information.</para>
-
- <para>In our example, the Wyse-50 is a Wyse-50 type of terminal
- (although it can emulate others, we will leave it in Wyse-50 mode).
- The 286 PC is running Procomm which will be set to emulate a VT-100.
- Here are the pertinent yet unfinished entries from the
- <filename>/etc/ttys</filename> file:</para>
-
- <programlisting>ttyd1 "/usr/libexec/getty std.38400" wy50 off secure
-ttyd5 "/usr/libexec/getty std.19200" vt100</programlisting>
- </sect3>
-
- <sect3 id="term-enable">
- <title>Enabling the Port</title>
-
- <para>The next field in <filename>/etc/ttys</filename>, the fourth
- field, tells whether to enable the port. Putting
- <literal>on</literal> here will have the <command>init</command>
- process start the program in the second field,
- <command>getty</command>, which will prompt for a login. If you put
- <literal>off</literal> in the fourth field, there will be no
- <command>getty</command>, and hence no logins on the port.</para>
-
- <para>So, naturally, you want an <literal>on</literal> in this field.
- Here again is the <filename>/etc/ttys</filename> file. We have
- turned each port <literal>on</literal>.</para>
-
- <programlisting>ttyd1 "/usr/libexec/getty std.38400" wy50 on secure
-ttyd5 "/usr/libexec/getty std.19200" vt100 on</programlisting>
- </sect3>
-
- <sect3 id="term-secure">
- <title>Specifying Secure Ports</title>
-
- <para>We have arrived at the last field (well, almost: there is an
- optional <literal>window</literal> specifier, but we will ignore
- that). The last field tells whether the port is secure.</para>
-
- <para>What does <quote>secure</quote> mean?</para>
-
- <para>It means that the root account (or any account with a user ID of
- 0) may login on the port. Insecure ports do not allow root to
- login.</para>
-
- <para>How do you use secure and insecure ports?</para>
-
- <para>By marking a port as insecure, the terminal to which it is
- connected will not allow root to login. People who know the root
- password to your FreeBSD system will first have to login using a
- regular user account. To gain superuser privileges, they will then
- have to use the <command>su</command> command.</para>
-
- <para>Because of this, you will have two records to help track down
- possible compromises of root privileges: both the
- <command>login</command> and the <command>su</command> command make
- records in the system log (and logins are also recorded in the
- <filename>wtmp</filename> file).</para>
-
- <para>By marking a port as secure, the terminal will allow root in.
- People who know the root password will just login as root. You will
- not have the potentially useful login and <command>su</command>
- command records.</para>
-
- <para>Which should you use?</para>
-
- <para>Just use <quote>insecure.</quote> Use <quote>insecure</quote>
- <emphasis>even</emphasis> for terminals <emphasis>not</emphasis> in
- public user areas or behind locked doors. It is quite easy to login
- and use <command>su</command> if you need superuser
- privileges.</para>
-
- <para>Here finally are the completed entries in the
- <filename>/etc/ttys</filename> file, with comments added to describe
- where the terminals are:</para>
-
- <programlisting>ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure # Kitchen
-ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Guest bathroom</programlisting>
- </sect3>
-
- <sect3 id="term-hup">
- <title>Force <command>init</command> to Reread
- <filename>/etc/ttys</filename></title>
-
- <para>When you boot FreeBSD, the first process,
- <command>init</command>, will read the
- <filename>/etc/ttys</filename> file and start the programs listed
- for each enabled port to prompt for logins.</para>
-
- <para>After you edit <filename>/etc/ttys</filename>, you do not want
- to have to reboot your system to get <command>init</command> to see
- the changes. So, <command>init</command> will reread
- <filename>/etc/ttys</filename> if it receives a SIGHUP (hangup)
- signal.</para>
-
- <para>So, after you have saved your changes to
- <filename>/etc/ttys</filename>, send <literal>SIGHUP</literal> to
- <command>init</command> by typing:</para>
-
- <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
-
- <para>(The <command>init</command> process <emphasis>always</emphasis>
- has process ID 1.)</para>
-
- <para>If everything is set up correctly, all cables are in place, and
- the terminals are powered up, you should see login prompts. Your
- terminals are ready for their first logins!</para>
- </sect3>
- </sect2>
-
- <sect2 id="term-debug">
- <title>Debugging your connection</title>
-
- <para>Even with the most meticulous attention to detail, something could
- still go wrong while setting up a terminal. Here is a list of
- symptoms and some suggested fixes.</para>
-
- <variablelist>
- <varlistentry>
- <term>No login prompt appears</term>
-
- <listitem>
- <para>Make sure the terminal is plugged in and powered up. If it
- is a personal computer acting as a terminal, make sure it is
- running terminal emulation software on the correct serial
- port.</para>
-
- <para>Make sure the cable is connected firmly to both the terminal
- and the FreeBSD computer. Make sure it is the right kind of
- cable.</para>
-
- <para>Make sure the terminal and FreeBSD agree on the bps rate and
- parity settings. If you have a video display terminal, make
- sure the contrast and brightness controls are turned up. If it
- is a printing terminal, make sure paper and ink are in good
- supply.</para>
-
- <para>Make sure that a <command>getty</command> process is running
- and serving the terminal. Type</para>
-
- <screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen>
-
- <para>to get a
- list of running <command>getty</command> processes. You should
- see an entry for the terminal. For example, the display
-
- <screen>22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1</screen>
-
- shows that a <command>getty</command> is running on the second
- serial port <literal>ttyd1</literal> and is using the
- <literal>std.38400</literal> entry in
- <filename>/etc/gettytab</filename>.</para>
-
- <para>If no <command>getty</command> process is running, make sure
- you have enabled the port in <filename>/etc/ttys</filename>.
- Make sure you have run <command>kill -HUP 1</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Garbage appears instead of a login prompt</term>
-
- <listitem>
- <para>Make sure the terminal and FreeBSD agree on the bps rate and
- parity settings. Check the getty processes to make sure the
- correct <replaceable>getty</replaceable> type is in use. If
- not, edit <filename>/etc/ttys</filename> and run <command>kill
- -HUP 1</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Characters appear doubled; the password appears when
- typed</term>
-
- <listitem>
- <para>Switch the terminal (or the terminal emulation software)
- from <quote>half duplex</quote> or <quote>local echo</quote> to
- <quote>full duplex.</quote></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1 id="dialup">
- <title>Dial-in Service</title>
-
- <para><emphasis>Contributed by &a.ghelmer;.</emphasis></para>
-
- <para>This document provides suggestions for configuring a FreeBSD system
- to handle dial-up modems. This document is written based on the author's
- experience with FreeBSD versions 1.0, 1.1, and 1.1.5.1 (and experience
- with dial-up modems on other UNIX-like operating systems); however, this
- document may not answer all of your questions or provide examples
- specific enough to your environment. The author cannot be responsible if
- you damage your system or lose data due to attempting to follow the
- suggestions here.</para>
-
- <sect2 id="dialup-prereqs">
- <title>Prerequisites</title>
-
- <para>To begin with, the author assumes you have some basic knowledge of
- FreeBSD. You need to have FreeBSD installed, know how to edit files
- in a UNIX-like environment, and how to look up manual pages on the
- system. As discussed below, you will need certain versions of
- FreeBSD, and knowledge of some terminology &amp; modem and
- cabling.</para>
-
- <sect3>
- <title>FreeBSD Version</title>
-
- <para>First, it is assumed that you are using FreeBSD version 1.1 or
- higher (including versions 2.x). FreeBSD version 1.0 included two
- different serial drivers, which complicates the situation. Also,
- the serial device driver (<devicename>sio</devicename>) has improved
- in every release of FreeBSD, so more recent versions of FreeBSD are
- assumed to have better and more efficient drivers than earlier
- versions.</para>
- </sect3>
-
- <sect3>
- <title>Terminology</title>
-
- <para>A quick rundown of terminology:</para>
-
- <variablelist>
- <varlistentry>
- <term>bps</term>
-
- <listitem>
- <para>Bits per Second &mdash; the rate at which data is
- transmitted</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>DTE</term>
-
- <listitem>
- <para>Data Terminal Equipment &mdash; for example, your
- computer</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>DCE</term>
-
- <listitem>
- <para>Data Communications Equipment &mdash; your modem</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RS-232</term>
-
- <listitem>
- <para>EIA standard for serial communications via hardware</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>If you need more information about these terms and data
- communications in general, the author remembers reading that
- <emphasis>The RS-232 Bible</emphasis> (anybody have an ISBN?) is a
- good reference.</para>
-
- <para>When talking about communications data rates, the author does
- not use the term <quote>baud</quote>. Baud refers to the number of
- electrical state transitions that may be made in a period of time,
- while <quote>bps</quote> (bits per second) is the
- <quote>correct</quote> term to use (at least it does not seem to
- bother the curmudgeons quite a much).</para>
- </sect3>
-
- <sect3>
- <title>External v.s. Internal Modems</title>
-
- <para>External modems seem to be more convenient for dial-up, because
- external modems often can be semi-permanently configured via
- parameters stored in non-volatile RAM and they usually provide
- lighted indicators that display the state of important RS-232
- signals. Blinking lights impress visitors, but lights are also very
- useful to see whether a modem is operating properly.</para>
-
- <para>Internal modems usually lack non-volatile RAM, so their
- configuration may be limited only to setting DIP switches. If your
- internal modem has any signal indicator lights, it is probably
- difficult to view the lights when the system's cover is in
- place.</para>
- </sect3>
-
- <sect3>
- <title>Modems and Cables</title>
-
- <para>A background knowledge of these items is assumed</para>
-
- <itemizedlist>
- <listitem>
- <para>You know how to connect your modem to your computer so that
- the two can communicate (unless you have an internal modem,
- which does not need such a cable)</para>
- </listitem>
-
- <listitem>
- <para>You are familiar with your modem's command set, or know
- where to look up needed commands</para>
- </listitem>
-
- <listitem>
- <para>You know how to configure your modem (probably via a
- terminal communications program) so you can set the non-volatile
- RAM parameters</para>
- </listitem>
- </itemizedlist>
-
- <para>The first, connecting your modem, is usually simple &mdash; most
- straight-through serial cables work without any problems. You need
- to have a cable with appropriate connectors (DB-25 or DB-9, male or
- female) on each end, and the cable must be a DCE-to-DTE cable with
- these signals wired:</para>
-
- <itemizedlist>
- <listitem>
- <para>Transmitted Data (<acronym>SD</acronym>)</para>
- </listitem>
-
- <listitem>
- <para>Received Data (<acronym>RD</acronym>)</para>
- </listitem>
-
- <listitem>
- <para>Request to Send (<acronym>RTS</acronym>)</para>
- </listitem>
-
- <listitem>
- <para>Clear to Send (<acronym>CTS</acronym>)</para>
- </listitem>
-
- <listitem>
- <para>Data Set Ready (<acronym>DSR</acronym>)</para>
- </listitem>
-
- <listitem>
- <para>Data Terminal Ready (<acronym>DTR</acronym>)</para>
- </listitem>
-
- <listitem>
- <para>Carrier Detect (<acronym>CD</acronym>)</para>
- </listitem>
-
- <listitem>
- <para>Signal Ground (<acronym>SG</acronym>)</para>
- </listitem>
- </itemizedlist>
-
- <para>FreeBSD needs the <acronym>RTS</acronym> and
- <acronym>CTS</acronym> signals for flow-control at speeds above
- 2400bps, the <acronym>CD</acronym> signal to detect when a call has
- been answered or the line has been hung up, and the
- <acronym>DTR</acronym> signal to reset the modem after a session is
- complete. Some cables are wired without all of the needed signals,
- so if you have problems, such as a login session not going away when
- the line hangs up, you may have a problem with your cable.</para>
-
- <para>The second prerequisite depends on the modem(s) you use. If you
- do not know your modem's command set by heart, you will need to have
- the modem's reference book or user's guide handy. Sample commands
- for USR Sportster 14,400 external modems will be given, which you
- may be able to use as a reference for your own modem's
- commands.</para>
-
- <para>Lastly, you will need to know how to setup your modem so that it
- will work well with FreeBSD. Like other UNIX-like operating
- systems, FreeBSD uses the hardware signals to find out when a call
- has been answered or a line has been hung up and to hangup and reset
- the modem after a call. FreeBSD avoids sending commands to the
- modem or watching for status reports from the modem. If you are
- familiar with connecting modems to PC-based bulletin board systems,
- this may seem awkward.</para>
- </sect3>
-
- <sect3>
- <title>Serial Interface Considerations</title>
-
- <para>FreeBSD supports NS8250-, NS16450-, NS16550-, and NS16550A-based
- EIA RS-232C (CCITT V.24) communications interfaces. The 8250 and
- 16450 devices have single-character buffers. The 16550 device
- provides a 16-character buffer, which allows for better system
- performance. (Bugs in plain 16550's prevent the use of the
- 16-character buffer, so use 16550A's if possible). Because
- single-character-buffer devices require more work by the operating
- system than the 16-character-buffer devices, 16550A-based serial
- interface cards are much preferred. If the system has many active
- serial ports or will have a heavy load, 16550A-based cards are
- better for low-error-rate communications.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Quick Overview</title>
-
- <para>Here is the process that FreeBSD follows to accept dial-up logins.
- A <command>getty</command> process, spawned by
- <command>init</command>, patiently waits to open the assigned serial
- port (<filename>/dev/ttyd0</filename>, for our example). The command
- <command>ps ax</command> might show this:</para>
-
- <screen> 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0</screen>
-
- <para>When a user dials the modem's line and the modems connect, the
- <acronym>CD</acronym> line is asserted by the modem. The kernel
- notices that carrier has been detected and completes
- <command>getty</command>'s open of the port. <command>getty</command>
- sends a <prompt>login:</prompt> prompt at the specified initial line
- speed. <command>getty</command> watches to see if legitimate
- characters are received, and, in a typical configuration, if it finds
- junk (probably due to the modem's connection speed being different
- than <command>getty</command>'s speed), <command>getty</command> tries
- adjusting the line speeds until it receives reasonable
- characters.</para>
-
- <para>We hope <command>getty</command> finds the correct speed and the
- user sees a <prompt>login:</prompt> prompt. After the user enters
- his/her login name, <command>getty</command> executes
- <filename>/usr/bin/login</filename>, which completes the login by
- asking for the user's password and then starting the user's
- shell.</para>
-
- <para>Let's dive into the configuration...</para>
- </sect2>
-
- <sect2>
- <title>Kernel Configuration</title>
-
- <para>FreeBSD kernels typically come prepared to search for four serial
- ports, known in the PC-DOS world as <devicename>COM1:</devicename>,
- <devicename>COM2:</devicename>, <devicename>COM3:</devicename>, and
- <devicename>COM4:</devicename>. FreeBSD can presently also handle
- <quote>dumb</quote> multiport serial interface cards, such as the Boca
- Board 1008 and 2016 (please see the manual page &man.sio.4; for kernel
- configuration information if you have a multiport serial card). The
- default kernel only looks for the standard COM ports, though.</para>
-
- <para>To see if your kernel recognizes any of your serial ports, watch
- for messages while the kernel is booting, or use the
- <command>/sbin/dmesg</command> command to replay the kernel's boot
- messages. In particular, look for messages that start with the
- characters <literal>sio</literal>. Hint: to view just the messages
- that have the word <literal>sio</literal>, use the command:</para>
-
- <screen>&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen>
-
- <para>For example, on a system with four serial ports, these are the
- serial-port specific kernel boot messages:</para>
-
- <screen>sio0 at 0x3f8-0x3ff irq 4 on isa
-sio0: type 16550A
-sio1 at 0x2f8-0x2ff irq 3 on isa
-sio1: type 16550A
-sio2 at 0x3e8-0x3ef irq 5 on isa
-sio2: type 16550A
-sio3 at 0x2e8-0x2ef irq 9 on isa
-sio3: type 16550A</screen>
-
- <para>If your kernel does not recognize all of your serial ports, you
- will probably need to configure a custom FreeBSD kernel for your
- system.</para>
-
- <para>Please see the BSD System Manager's Manual chapter on
- <quote>Building Berkeley Kernels with Config</quote> [the source for
- which is in <filename>/usr/src/share/doc/smm</filename>] and
- <quote>FreeBSD Configuration Options</quote> [in
- <filename>/sys/conf/options</filename> and in
- <filename>/sys/<replaceable>arch</replaceable>/conf/options.<replaceable>arch</replaceable></filename>,
- with <emphasis>arch</emphasis> for example being
- <filename>i386</filename>] for more information on configuring and
- building kernels. You may have to unpack the kernel source
- distribution if have not installed the system sources already
- (<filename>srcdist/srcsys.??</filename> in FreeBSD 1.1,
- <filename>srcdist/sys.??</filename> in FreeBSD 1.1.5.1, or the entire
- source distribution in FreeBSD 2.0) to be able to configure and build
- kernels.</para>
-
- <para>Create a kernel configuration file for your system (if you have
- not already) by <command>cd</command>ing to
- <filename>/sys/i386/conf</filename>. Then, if you are creating a new
- custom configuration file, copy the file
- <filename>GENERICAH</filename> (or <filename>GENERICBT</filename>, if
- you have a BusTek SCSI controller on FreeBSD 1.x) to
- <filename>YOURSYS</filename>, where <filename>YOURSYS</filename> is
- the name of your system, but in upper-case letters. Edit the file,
- and change the device lines:</para>
-
- <programlisting>device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
-device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
-device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
-device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr</programlisting>
-
- <para>You can comment-out or completely remove lines for devices you do
- not have. If you have a multiport serial board, such as the Boca
- Board BB2016, please see the &man.sio.4; man page for complete
- information on how to write configuration lines for multiport boards.
- Be careful if you are using a configuration file that was previously
- used for a different version of FreeBSD because the device flags have
- changed between versions.</para>
-
- <note>
- <para><literal>port "IO_COM1"</literal> is a substitution for
- <literal>port 0x3f8</literal>, <literal>IO_COM2</literal> is
- <literal>0x2f8</literal>, <literal>IO_COM3</literal> is
- <literal>0x3e8</literal>, and <literal>IO_COM4</literal> is
- <literal>0x2e8</literal>, which are fairly common port addresses for
- their respective serial ports; interrupts 4, 3, 5, and 9 are fairly
- common interrupt request lines. Also note that regular serial ports
- <emphasis>cannot</emphasis> share interrupts on ISA-bus PCs
- (multiport boards have on-board electronics that allow all the
- 16550A's on the board to share one or two interrupt request
- lines).</para>
- </note>
-
- <para>When you are finished adjusting the kernel configuration file, use
- the program <command>config</command> as documented in <quote>Building
- Berkeley Kernels with Config</quote> and the
- &man.config.8; manual page to prepare a kernel building directory,
- then build, install, and test the new kernel.</para>
- </sect2>
-
- <sect2>
- <title>Device Special Files</title>
-
- <para>Most devices in the kernel are accessed through <quote>device
- special files</quote>, which are located in the
- <filename>/dev</filename> directory. The <devicename>sio</devicename>
- devices are accessed through the
- <filename>/dev/ttyd<replaceable>?</replaceable></filename> (dial-in)
- and <filename>/dev/cuaa<replaceable>?</replaceable></filename>
- (call-out) devices. On FreeBSD version 1.1.5 and higher, there are
- also initialization devices
- (<filename>/dev/ttyid<replaceable>?</replaceable></filename> and
- <filename>/dev/cuai0<replaceable>?</replaceable></filename>) and
- locking devices
- (<filename>/dev/ttyld<replaceable>?</replaceable></filename> and
- <filename>/dev/cual0<replaceable>?</replaceable></filename>). The
- initialization devices are used to initialize communications port
- parameters each time a port is opened, such as
- <literal>crtscts</literal> for modems which use
- <literal>CTS/RTS</literal> signaling for flow control. The locking
- devices are used to lock flags on ports to prevent users or programs
- changing certain parameters; see the manual pages &man.termios.4;,
- &man.sio.4;, and &man.stty.1; for
- information on the terminal settings, locking &amp; initializing
- devices, and setting terminal options, respectively.</para>
-
- <sect3>
- <title>Making Device Special Files</title>
-
- <para>A shell script called <command>MAKEDEV</command> in the
- <filename>/dev</filename> directory manages the device special
- files. (The manual page for &man.MAKEDEV.8; on FreeBSD 1.1.5 is
- fairly bogus in its discussion of <acronym>COM</acronym> ports, so
- ignore it.) To use <command>MAKEDEV</command> to make dial-up device
- special files for <devicename>COM1:</devicename> (port 0),
- <command>cd</command> to <filename>/dev</filename> and issue the
- command <command>MAKEDEV ttyd0</command>. Likewise, to make dial-up
- device special files for <devicename>COM2:</devicename> (port 1),
- use <command>MAKEDEV ttyd1</command>.</para>
-
- <para><command>MAKEDEV</command> not only creates the
- <filename>/dev/ttyd<replaceable>?</replaceable></filename> device
- special files, but also creates the
- <filename>/dev/cuaa<replaceable>?</replaceable></filename> (and all
- of the initializing and locking special files under FreeBSD 1.1.5
- and up) and removes the hardwired terminal special file
- <filename>/dev/tty0<replaceable>?</replaceable></filename>, if it
- exists.</para>
-
- <para>After making new device special files, be sure to check the
- permissions on the files (especially the
- <filename>/dev/cua*</filename> files) to make sure that only users
- who should have access to those device special files can read &amp;
- write on them &mdash; you probably do not want to allow your average
- user to use your modems to dial-out. The default permissions on the
- <filename>/dev/cua*</filename> files should be sufficient:</para>
-
- <screen>crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
-crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
-crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1</screen>
-
- <para>These permissions allow the user <username>uucp</username> and
- users in the group <username>dialer</username> to use the call-out
- devices.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Configuration Files</title>
-
- <para>There are three system configuration files in the
- <filename>/etc</filename> directory that you will probably need to
- edit to allow dial-up access to your FreeBSD system. The first,
- <filename>/etc/gettytab</filename>, contains configuration information
- for the <filename>/usr/libexec/getty</filename> daemon. Second,
- <filename>/etc/ttys</filename> holds information that tells
- <filename>/sbin/init</filename> what <filename>tty</filename> devices
- should have <command>getty</command> processes running on them.
- Lastly, you can place port initialization commands in the
- <filename>/etc/rc.serial</filename> script if you have FreeBSD 1.1.5.1
- or higher; otherwise, you can initialize ports in the
- <filename>/etc/rc.local</filename> script.</para>
-
- <para>There are two schools of thought regarding dial-up modems on UNIX.
- One group likes to configure their modems and system so that no matter
- at what speed a remote user dials in, the local computer-to-modem
- RS-232 interface runs at a locked speed. The benefit of this
- configuration is that the remote user always sees a system login
- prompt immediately. The downside is that the system does not know
- what a user's true data rate is, so full-screen programs like Emacs
- will not adjust their screen-painting methods to make their response
- better for slower connections.</para>
-
- <para>The other school configures their modems' RS-232 interface to vary
- its speed based on the remote user's connection speed. For example,
- V.32bis (14.4 Kbps) connections to the modem might make the modem run
- its RS-232 interface at 19.2 Kbps, while 2400 bps connections make the
- modem's RS-232 interface run at 2400 bps. Because
- <command>getty</command> does not understand any particular modem's
- connection speed reporting, <command>getty</command> gives a
- <prompt>login:</prompt> message at an initial speed and watches the
- characters that come back in response. If the user sees junk, it is
- assumed that they know they should press the
- <literal>&lt;Enter&gt;</literal> key until they see a recognizable
- prompt. If the data rates do not match, <command>getty</command> sees
- anything the user types as <quote>junk</quote>, tries going to the next
- speed and gives the <prompt>login:</prompt> prompt again. This
- procedure can continue ad nauseum, but normally only takes a keystroke
- or two before the user sees a good prompt. Obviously, this login
- sequence does not look as clean as the former
- <quote>locked-speed</quote> method, but a user on a low-speed
- connection should receive better interactive response from full-screen
- programs.</para>
-
- <para>The author will try to give balanced configuration information,
- but is biased towards having the modem's data rate follow the
- connection rate.</para>
-
- <sect3>
- <title><filename>/etc/gettytab</filename></title>
-
- <para><filename>/etc/gettytab</filename> is a &man.termcap.5;-style
- file of configuration information for &man.getty.8;. Please see the
- &man.gettytab.5; manual page for complete information on the
- format of the file and the list of capabilities.</para>
-
- <sect4>
- <title>Locked-Speed Config</title>
-
- <para>If you are locking your modem's data communications rate at a
- particular speed, you probably will not need to make any changes
- to <filename>/etc/gettytab</filename>.</para>
- </sect4>
-
- <sect4>
- <title>Matching-Speed Config</title>
-
- <para>You will need to setup an entry in
- <filename>/etc/gettytab</filename> to give
- <command>getty</command> information about the speeds you wish to
- use for your modem. If you have a 2400 bps modem, you can
- probably use the existing <literal>D2400</literal> entry. This
- entry already exists in the FreeBSD 1.1.5.1
- <filename>gettytab</filename> file, so you do not need to add it
- unless it is missing under your version of FreeBSD:</para>
-
- <programlisting>#
-# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
-#
-D2400|d2400|Fast-Dial-2400:\
- :nx=D1200:tc=2400-baud:
-3|D1200|Fast-Dial-1200:\
- :nx=D300:tc=1200-baud:
-5|D300|Fast-Dial-300:\
- :nx=D2400:tc=300-baud:</programlisting>
-
- <para>If you have a higher speed modem, you will probably need to
- add an entry in <filename>/etc/gettytab</filename>; here is an
- entry you could use for a 14.4 Kbps modem with a top interface
- speed of 19.2 Kbps:</para>
-
- <programlisting>#
-# Additions for a V.32bis Modem
-#
-um|V300|High Speed Modem at 300,8-bit:\
- :nx=V19200:tc=std.300:
-un|V1200|High Speed Modem at 1200,8-bit:\
- :nx=V300:tc=std.1200:
-uo|V2400|High Speed Modem at 2400,8-bit:\
- :nx=V1200:tc=std.2400:
-up|V9600|High Speed Modem at 9600,8-bit:\
- :nx=V2400:tc=std.9600:
-uq|V19200|High Speed Modem at 19200,8-bit:\
- :nx=V9600:tc=std.19200:</programlisting>
-
- <para>On FreeBSD 1.1.5 and later, this will result in 8-bit, no
- parity connections. Under FreeBSD 1.1, add
- <literal>:np:</literal> parameters to the
- <literal>std.<replaceable>xxx</replaceable></literal> entries at
- the top of the file for 8 bits, no parity; otherwise, the default
- is 7 bits, even parity.</para>
-
- <para>The example above starts the communications rate at 19.2 Kbps
- (for a V.32bis connection), then cycles through 9600 bps (for
- V.32), 2400 bps, 1200 bps, 300 bps, and back to 19.2 Kbps.
- Communications rate cycling is implemented with the
- <literal>nx=</literal> (<quote>next table</quote>) capability.
- Each of the lines uses a <literal>tc=</literal> (<quote>table
- continuation</quote>) entry to pick up the rest of the
- <quote>standard</quote> settings for a particular data rate.</para>
-
- <para>If you have a 28.8 Kbps modem and/or you want to take
- advantage of compression on a 14.4 Kbps modem, you need to use a
- higher communications rate than 19.2 Kbps. Here is an example of
- a <filename>gettytab</filename> entry starting a 57.6 Kbps:</para>
-
- <programlisting>#
-# Additions for a V.32bis or V.34 Modem
-# Starting at 57.6 Kbps
-#
-vm|VH300|Very High Speed Modem at 300,8-bit:\
- :nx=VH57600:tc=std.300:
-vn|VH1200|Very High Speed Modem at 1200,8-bit:\
- :nx=VH300:tc=std.1200:
-vo|VH2400|Very High Speed Modem at 2400,8-bit:\
- :nx=VH1200:tc=std.2400:
-vp|VH9600|Very High Speed Modem at 9600,8-bit:\
- :nx=VH2400:tc=std.9600:
-vq|VH57600|Very High Speed Modem at 57600,8-bit:\
- :nx=VH9600:tc=std.57600:</programlisting>
-
- <para>If you have a slow CPU or a heavily loaded system and you do
- not have 16550A-based serial ports, you may receive sio
- <quote>silo</quote> errors at 57.6 Kbps.</para>
- </sect4>
- </sect3>
-
- <sect3 id="dialup-ttys">
- <title><filename>/etc/ttys</filename></title>
-
- <para><filename>/etc/ttys</filename> is the list of
- <filename>ttys</filename> for <command>init</command> to monitor.
- <filename>/etc/ttys</filename> also provides security information to
- <command>login</command> (user <username>root</username> may only
- login on ttys marked <literal>secure</literal>). See the manual
- page for
- &man.ttys.5; for more information.</para>
-
- <para>You will need to either modify existing lines in
- <filename>/etc/ttys</filename> or add new lines to make
- <command>init</command> run <command>getty</command> processes
- automatically on your new dial-up ports. The general format of the
- line will be the same, whether you are using a locked-speed or
- matching-speed configuration:</para>
-
- <programlisting>ttyd0 "/usr/libexec/getty xxx" dialup on</programlisting>
-
- <para>The first item in the above line is the device special file for
- this entry &mdash; <literal>ttyd0</literal> means
- <filename>/dev/ttyd0</filename> is the file that this
- <command>getty</command> will be watching. The second item,
- <literal>"/usr/libexec/getty
- <replaceable>xxx</replaceable>"</literal>
- (<replaceable>xxx</replaceable> will be replaced by the initial
- <filename>gettytab</filename> capability) is the process
- <command>init</command> will run on the device. The third item,
- <literal>dialup</literal>, is the default terminal type. The fourth
- parameter, <literal>on</literal>, indicates to
- <command>init</command> that the line is operational. There can be
- a fifth parameter, <literal>secure</literal>, but it should only be
- used for terminals which are physically secure (such as the system
- console).</para>
-
- <para>The default terminal type (<literal>dialup</literal> in the
- example above) may depend on local preferences.
- <literal>dialup</literal> is the traditional default terminal type
- on dial-up lines so that users may customize their login scripts to
- notice when the terminal is <literal>dialup</literal> and
- automatically adjust their terminal type. However, the author finds
- it easier at his site to specify <literal>vt102</literal> as the
- default terminal type, since the users just use VT102 emulation on
- their remote systems.</para>
-
- <para>After you have made changes to <filename>/etc/ttys</filename>,
- you may send the <command>init</command> process a
- <acronym>HUP</acronym> signal to re-read the file. You can use the
- command
-
- <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
-
- to send the signal. If this is your first time setting up the
- system, though, you may want to wait until your modem(s) are properly
- configured and connected before signaling <command>init</command>.
- </para>
-
- <sect4>
- <title>Locked-Speed Config</title>
-
- <para>For a locked-speed configuration, your
- <filename>ttys</filename> entry needs to have a fixed-speed entry
- provided to <command>getty</command>. For a modem whose port
- speed is locked at 19.2 Kbps, the <filename>ttys</filename> entry
- might look like this:</para>
-
- <programlisting>ttyd0 "/usr/libexec/getty std.19200" dialup on</programlisting>
-
- <para>If your modem is locked at a different data rate, substitute
- the appropriate name for the
- <literal>std.<replaceable>speed</replaceable></literal> entry for
- <literal>std.19200</literal> from
- <filename>/etc/gettytab</filename> for your modem's data
- rate.</para>
- </sect4>
-
- <sect4>
- <title>Matching-Speed Config</title>
-
- <para>In a matching-speed configuration, your
- <filename>ttys</filename> entry needs to reference the appropriate
- beginning <quote>auto-baud</quote> (sic) entry in
- <filename>/etc/gettytab</filename>. For example, if you added the
- above suggested entry for a matching-speed modem that starts at
- 19.2 Kbps (the <filename>gettytab</filename> entry containing the
- <literal>V19200</literal> starting point), your
- <filename>ttys</filename> entry might look like this:</para>
-
- <programlisting>ttyd0 "/usr/libexec/getty V19200" dialup on</programlisting>
- </sect4>
- </sect3>
-
- <sect3>
- <title><filename>/etc/rc.serial</filename> or
- <filename>/etc/rc.local</filename></title>
-
- <para>High-speed modems, like V.32, V.32bis, and V.34 modems, need to
- use hardware (<filename>RTS/CTS</filename>) flow control. You can
- add <command>stty</command> commands to
- <filename>/etc/rc.serial</filename> on FreeBSD 1.1.5.1 and up, or
- <filename>/etc/rc.local</filename> on FreeBSD 1.1, to set the
- hardware flow control flag in the FreeBSD kernel for the modem
- ports.</para>
-
- <para>For example, on a sample FreeBSD 1.1.5.1 system,
- <filename>/etc/rc.serial</filename> reads:</para>
-
- <programlisting>#!/bin/sh
-#
-# Serial port initial configuration
-
-stty -f /dev/ttyid1 crtscts
-stty -f /dev/cuai01 crtscts</programlisting>
-
- <para>This sets the <literal>termios</literal> flag
- <literal>crtscts</literal> on serial port #1's
- (<devicename>COM2:</devicename>) dial-in and dial-out initialization
- devices.</para>
-
- <para>On an old FreeBSD 1.1 system, these entries were added to
- <filename>/etc/rc.local</filename> to set the
- <literal>crtscts</literal> flag on the devices:</para>
-
- <programlisting># Set serial ports to use RTS/CTS flow control
-stty -f /dev/ttyd0 crtscts
-stty -f /dev/ttyd1 crtscts
-stty -f /dev/ttyd2 crtscts
-stty -f /dev/ttyd3 crtscts</programlisting>
-
- <para>Since there is no initialization device special file on FreeBSD
- 1.1, one has to just set the flags on the sole device special file
- and hope the flags are not cleared by a miscreant.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Modem Settings</title>
-
- <para>If you have a modem whose parameters may be permanently set in
- non-volatile RAM, you will need to use a terminal program (such as
- Telix under PC-DOS or <command>tip</command> under FreeBSD) to set the
- parameters. Connect to the modem using the same communications speed
- as the initial speed <command>getty</command> will use and configure
- the modem's non-volatile RAM to match these requirements:</para>
-
- <itemizedlist>
- <listitem>
- <para><acronym>CD</acronym> asserted when connected</para>
- </listitem>
-
- <listitem>
- <para><acronym>DTR</acronym> asserted for operation; dropping DTR
- hangs up line &amp; resets modem</para>
- </listitem>
-
- <listitem>
- <para><acronym>CTS</acronym> transmitted data flow control</para>
- </listitem>
-
- <listitem>
- <para>Disable <acronym>XON/XOFF</acronym> flow control</para>
- </listitem>
-
- <listitem>
- <para><acronym>RTS</acronym> received data flow control</para>
- </listitem>
-
- <listitem>
- <para>Quiet mode (no result codes)</para>
- </listitem>
-
- <listitem>
- <para>No command echo</para>
- </listitem>
- </itemizedlist>
-
- <para>Please read the documentation for your modem to find out what
- commands and/or DIP switch settings you need to give it.</para>
-
- <para>For example, to set the above parameters on a USRobotics
- Sportster 14,400 external modem, one could give these commands to
- the modem:</para>
-
- <programlisting>ATZ
-AT&amp;C1&amp;D2&amp;H1&amp;I0&amp;R2&amp;W</programlisting>
-
- <para>You might also want to take this opportunity to adjust other
- settings in the modem, such as whether it will use V.42bis and/or MNP5
- compression.</para>
-
- <para>The USR Sportster 14,400 external modem also has some DIP switches
- that need to be set; for other modems, perhaps you can use these
- settings as an example:</para>
-
- <itemizedlist>
- <listitem>
- <para>Switch 1: UP &mdash; DTR Normal</para>
- </listitem>
-
- <listitem>
- <para>Switch 2: Do not care (Verbal Result Codes/Numeric Result
- Codes)</para>
- </listitem>
-
- <listitem>
- <para>Switch 3: UP &mdash; Suppress Result Codes</para>
- </listitem>
-
- <listitem>
- <para>Switch 4: DOWN &mdash; No echo, offline commands</para>
- </listitem>
-
- <listitem>
- <para>Switch 5: UP &mdash; Auto Answer</para>
- </listitem>
-
- <listitem>
- <para>Switch 6: UP &mdash; Carrier Detect Normal</para>
- </listitem>
-
- <listitem>
- <para>Switch 7: UP &mdash; Load NVRAM Defaults</para>
- </listitem>
-
- <listitem>
- <para>Switch 8: Do not care (Smart Mode/Dumb Mode)</para>
- </listitem>
- </itemizedlist>
-
- <para>Result codes should be disabled/suppressed for dial-up modems to
- avoid problems that can occur if <command>getty</command> mistakenly
- gives a <prompt>login:</prompt> prompt to a modem that is in command
- mode and the modem echoes the command or returns a result code. I
- have heard this sequence can result in a extended, silly conversation
- between <command>getty</command> and the modem.</para>
-
- <sect3>
- <title>Locked-speed Config</title>
-
- <para>For a locked-speed configuration, you will need to configure the
- modem to maintain a constant modem-to-computer data rate independent
- of the communications rate. On a USR Sportster 14,400 external
- modem, these commands will lock the modem-to-computer data rate at
- the speed used to issue the commands:</para>
-
- <programlisting>ATZ
-AT&amp;B1&amp;W</programlisting>
- </sect3>
-
- <sect3>
- <title>Matching-speed Config</title>
-
- <para>For a variable-speed configuration, you will need to configure
- your modem to adjust its serial port data rate to match the incoming
- call rate. On a USR Sportster 14,400 external modem, these commands
- will lock the modem's error-corrected data rate to the speed used to
- issue the commands, but allow the serial port rate to vary for
- non-error-corrected connections:</para>
-
- <programlisting>ATZ
-AT&amp;B2&amp;W</programlisting>
- </sect3>
-
- <sect3>
- <title>Checking the Modem's Configuration</title>
-
- <para>Most high-speed modems provide commands to view the modem's
- current operating parameters in a somewhat human-readable fashion.
- On the USR Sportster 14,400 external modems, the command
- <command>ATI5</command> displays the settings that are stored in the
- non-volatile RAM. To see the true operating parameters of the modem
- (as influenced by the USR's DIP switch settings), use the commands
- <command>ATZ</command> and then <command>ATI4</command>.</para>
-
- <para>If you have a different brand of modem, check your modem's
- manual to see how to double-check your modem's configuration
- parameters.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Troubleshooting</title>
-
- <para>Here are a few steps you can follow to check out the dial-up modem
- on your system.</para>
-
- <sect3>
- <title>Checking out the FreeBSD system</title>
-
- <para>Hook up your modem to your FreeBSD system, boot the system, and,
- if your modem has status indication lights, watch to see whether the
- modem's <acronym>DTR</acronym> indicator lights when the
- <prompt>login:</prompt> prompt appears on the system's console
- &mdash; if it lights up, that should mean that FreeBSD has started a
- <command>getty</command> process on the appropriate communications
- port and is waiting for the modem to accept a call.</para>
-
- <para>If the <acronym>DTR</acronym> indicator doesn't light, login to
- the FreeBSD system through the console and issue a <command>ps
- ax</command> to see if FreeBSD is trying to run a
- <command>getty</command> process on the correct port. You should see
- a lines like this among the processes displayed:</para>
-
- <screen> 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
- 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1</screen>
-
- <para>If you see something different, like this:</para>
-
- <screen> 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0</screen>
-
- <para>and the modem has not accepted a call yet, this means that
- <command>getty</command> has completed its open on the
- communications port. This could indicate a problem with the cabling
- or a mis-configured modem, because <command>getty</command> should
- not be able to open the communications port until
- <acronym>CD</acronym> (carrier detect) has been asserted by the
- modem.</para>
-
- <para>If you do not see any <command>getty</command> processes waiting
- to open the desired
- <filename>ttyd<replaceable>?</replaceable></filename> port,
- double-check your entries in <filename>/etc/ttys</filename> to see
- if there are any mistakes there. Also, check the log file
- <filename>/var/log/messages</filename> to see if there are any log
- messages from <command>init</command> or <command>getty</command>
- regarding any problems. If there are any messages, triple-check the
- configuration files <filename>/etc/ttys</filename> and
- <filename>/etc/gettytab</filename>, as well as the appropriate
- device special files <filename>/dev/ttyd?</filename>, for any
- mistakes, missing entries, or missing device special files.</para>
- </sect3>
-
- <sect3>
- <title>Try Dialing In</title>
-
- <para>Try dialing into the system; be sure to use 8 bits, no parity, 1
- stop bit on the remote system. If you do not get a prompt right
- away, or get garbage, try pressing <literal>&lt;Enter&gt;</literal>
- about once per second. If you still do not see a
- <prompt>login:</prompt> prompt after a while, try sending a
- <command>BREAK</command>. If you are using a high-speed modem to do
- the dialing, try dialing again after locking the dialing modem's
- interface speed (via <command>AT&amp;B1</command> on a USR
- Sportster, for example).</para>
-
- <para>If you still cannot get a <prompt>login:</prompt> prompt, check
- <filename>/etc/gettytab</filename> again and double-check
- that</para>
-
- <itemizedlist>
- <listitem>
- <para>The initial capability name specified in
- <filename>/etc/ttys</filename> for the line matches a name of a
- capability in <filename>/etc/gettytab</filename></para>
- </listitem>
-
- <listitem>
- <para>Each <literal>nx=</literal> entry matches another
- <filename>gettytab</filename> capability name</para>
- </listitem>
-
- <listitem>
- <para>Each <literal>tc=</literal> entry matches another
- <filename>gettytab</filename> capability name</para>
- </listitem>
- </itemizedlist>
-
- <para>If you dial but the modem on the FreeBSD system will not answer,
- make sure that the modem is configured to answer the phone when
- <acronym>DTR</acronym> is asserted. If the modem seems to be
- configured correctly, verify that the <acronym>DTR</acronym> line is
- asserted by checking the modem's indicator lights (if it has
- any).</para>
-
- <para>If you have gone over everything several times and it still does
- not work, take a break and come back to it later. If it still does
- not work, perhaps you can send an electronic mail message to the
- &a.questions;describing your modem and your problem, and the good
- folks on the list will try to help.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Acknowledgments</title>
-
- <para>Thanks to these people for comments and advice:</para>
-
- <variablelist>
- <varlistentry>
- <term>&a.kelly;</term>
-
- <listitem>
- <para>for a number of good suggestions</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1 id="dialout">
- <title>Dial-out Service</title>
-
- <para><emphasis>Information integrated from FAQ.</emphasis></para>
-
- <para>The following are tips to getting your host to be able to connect
- over the modem to another computer. This is appropriate for
- establishing a terminal session with a remote host.</para>
-
- <para>This is useful to log onto a BBS.</para>
-
- <para>This kind of connection can be extremely helpful to get a file on
- the Internet if you have problems with PPP. If you need to FTP
- something and PPP is broken, use the terminal session to FTP it. Then
- use zmodem to transfer it to your machine.</para>
-
- <sect2>
- <title>Why cannot I run <command>tip</command> or
- <command>cu</command>?</title>
-
- <para>On your system, the programs <command>tip</command> and
- <command>cu</command> are probably executable only by
- <username>uucp</username> and group <username>dialer</username>. You
- can use the group <username>dialer</username> 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
- <command>tip</command> and <command>cu</command> by typing:</para>
-
- <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
-
- <para>You do not have to run this command for <command>cu</command>,
- since <command>cu</command> is just a hard link to
- <command>tip</command>.</para>
- </sect2>
-
- <sect2>
- <title>My stock Hayes modem is not supported, what can I do?</title>
-
- <para>Actually, the man page for <command>tip</command> 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>
- file.</para>
-
- <para>The Hayes driver is not smart enough to recognize some of the
- advanced features of newer modems&mdash;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 <command>tip</command> (using
- <command>ATX0&amp;W</command>).</para>
-
- <para>Also, the dial timeout for <command>tip</command> is 60 seconds.
- Your modem should use something less, or else tip will think there is
- a communication problem. Try <command>ATS7=45&amp;W</command>.</para>
-
- <para>Actually, as shipped <command>tip</command> 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>
- </sect2>
-
- <sect2 id="direct-at">
- <title>How am I expected to enter these AT commands?</title>
-
- <para>Make what is called a <quote>direct</quote> entry in your
- <filename>/etc/remote</filename> file. For example, if your modem is
- hooked up to the first serial port, <filename>/dev/cuaa0</filename>,
- 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 cuaa0</command> and you will be connected to
- your modem.</para>
-
- <para>If there is no <filename>/dev/cuaa0</filename> on your system, do
- this:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>MAKEDEV cuaa0</userinput></screen>
-
- <para>Or use cu as root with the following command:</para>
-
- <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
-
- <para><replaceable>line</replaceable> is the serial port
- (e.g.<filename>/dev/cuaa0</filename>) and
- <replaceable>speed</replaceable> is the speed
- (e.g.<literal>57600</literal>). When you are done entering the AT
- commands hit <command>~.</command> to exit.</para>
- </sect2>
-
- <sect2>
- <title>The <literal>@</literal> sign for the pn capability does not
- work!</title>
-
- <para>The <literal>@</literal> sign in the phone number capability tells
- tip to look in <filename>/etc/phones</filename> for a phone number.
- But the <literal>@</literal> sign is also a special character in
- capability files like <filename>/etc/remote</filename>. Escape it
- with a backslash:</para>
-
- <programlisting>pn=\@</programlisting>
- </sect2>
-
- <sect2>
- <title>How can I dial a phone number on the command line?</title>
-
- <para>Put what is called a <quote>generic</quote> entry in your
- <filename>/etc/remote</filename> file. 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 things like:</para>
-
- <screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen>
-
- <para>If you prefer <command>cu</command> over <command>tip</command>,
- 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:</para>
-
- <screen>&prompt.root; <userinput>cu 5551234 -s 115200</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Do I have to type in the bps rate every time I do that?</title>
-
- <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. <command>tip</command> 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>
- </sect2>
-
- <sect2>
- <title>I access a number of hosts through a terminal server.</title>
-
- <para>Rather than waiting until you are connected and typing
- <command>CONNECT &lt;host&gt;</command> each time, use tip's
- <literal>cm</literal> capability. For example, these entries in
- <filename>/etc/remote</filename>:</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 pain or muffin; and
- <command>tip deep13</command> to get to the terminal server.</para>
- </sect2>
-
- <sect2>
- <title>Can tip try more than one line for each site?</title>
-
- <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> and use <literal>@</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>:</para>
-
- <programlisting>big-university 5551111
-big-university 5551112
-big-university 5551113
-big-university 5551114</programlisting>
-
- <para><command>tip</command> will try each one in the listed order, then
- give up. If you want to keep retrying, run <command>tip</command> in
- a while loop.</para>
- </sect2>
-
- <sect2>
- <title>Why do I have to hit CTRL+P twice to send CTRL+P once?</title>
-
- <para>CTRL+P is the default <quote>force</quote> character, used to tell
- <command>tip</command> that the next character is literal data. You
- can set the force character to any other character with the
- <command>~s</command> escape, which means <quote>set a
- variable.</quote></para>
-
- <para>Type
- <command>~sforce=<replaceable>single-char</replaceable></command>
- 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 is 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>&#36;HOME/.tiprc</filename>
- file:</para>
-
- <programlisting>force=&lt;single-char&gt;</programlisting>
- </sect2>
-
- <sect2>
- <title>Suddenly everything I type is in UPPER CASE??</title>
-
- <para>You must have pressed CTRL+A, <command>tip</command>'s
- <quote>raise character,</quote> specially designed for people with
- broken caps-lock keys. Use <command>~s</command> as above and set the
- variable <literal>raisechar</literal> 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>
- </sect2>
-
- <sect2>
- <title>How can I do file transfers with <command>tip</command>?</title>
-
- <para>If you are talking to another UNIX system, you can send and
- receive files with <command>~p</command> (put) and
- <command>~t</command> (take). These commands run
- <command>cat</command> and <command>echo</command> on the remote
- system to accept and send files. The syntax is:</para>
-
- <cmdsynopsis>
- <command>~p</command>
- <arg choice="plain">local-file</arg>
- <arg choice="opt">remote-file</arg>
- </cmdsynopsis>
-
- <cmdsynopsis>
- <command>~t</command>
- <arg choice="plain">remote-file</arg>
- <arg choice="opt">local-file</arg>
- </cmdsynopsis>
-
- <para>There is no error checking, so you probably should use another
- protocol, like zmodem.</para>
- </sect2>
-
- <sect2>
- <title>How can I run zmodem with <command>tip</command>?</title>
-
- <para>To receive files, start the sending program on the remote end.
- Then, type <command>~C rz</command> to begin receiving them
- locally.</para>
-
- <para>To send files, start the receiving program on the remote end.
- Then, type <command>~C sz <replaceable>files</replaceable></command>
- to send them to the remote system.</para>
- </sect2>
- </sect1>
-
- <sect1 id="serialconsole-setup">
- <title>Setting Up the Serial Console</title>
-
- <para><emphasis>&a.yokota; and &a.wpaul;:</emphasis></para>
-
- <para><emphasis>The text is heavily based on
- <filename>/sys/i386/boot/biosboot/README.serial</filename> written by
- &a.wpaul;.</emphasis></para>
-
- <sect2 id="serialconsole-intro">
- <title>Introduction</title>
-
- <para>The FreeBSD/i386 operating system can boot on a system with only
- a dumb terminal on a serial port as a console. Such a configuration
- should be useful for two classes of people; system administrators who
- wish to install FreeBSD on a dedicated file/compute/terminal server
- machines that have no keyboard or monitor attached, and developers who
- want to debug the kernel or device drivers.</para>
-
- <para>Starting from version 3.1, FreeBSD/i386 employs a three stage
- bootstrap. The first two stages are in the boot block code which is
- stored at the beginning of the FreeBSD slice on the boot disk. The
- boot block will then load and run the boot loader
- (<filename>/boot/loader</filename>) as the third stage code. (See
- &man.boot.8; and &man.loader.8; for more details on the boot
- process.)</para>
-
- <para>In order to set up the serial console you must configure the boot
- block code, the boot loader code and the kernel.</para>
-
- <para>In FreeBSD version 3.0, the boot loader does not exist and there
- are only two stages in the bootstrap; the boot blocks directly load
- the kernel into memory. If you are using FreeBSD 3.0, then you should
- disregard any reference to the boot loader in this section. You can
- still use the serial port as a console.</para>
-
- <para>FreeBSD versions 2.X are quite different from 3.X, in that the
- serial port driver, &man.sio.4;, must be configured in a different
- way. This chapter will not describe the settings for version 2.X
- systems. If you are using these older versions of FreeBSD, please
- consult <filename>/sys/i386/boot/biosboot/README.serial</filename>
- instead.</para>
- </sect2>
-
- <sect2 id="serialconsole-howto">
- <title>6 Steps to Set up the Serial Console</title>
-
- <procedure>
- <step>
- <para>Prepare a serial cable.</para>
-
- <para>You will need either a null-modem cable or a standard serial
- cable and a null-modem adapter. See <xref linkend="term"> for
- a discussion on serial cables.</para>
- </step>
-
- <step>
- <para>Unplug your keyboard.</para>
-
- <para>Most PC systems probe for the keyboard during the Power-On
- Self-Test (POST) and will generate an error if the keyboard is not
- detected. Some machines complain loudly about the lack of a
- keyboard and will not continue to boot until it is plugged
- in.</para>
-
- <para>If your computer complains about the error, but boots anyway,
- then you do not have to do anything special. (Some machines with
- Phoenix BIOS installed merely say <errorname>Keyboard
- failed</errorname> and continue to boot normally.)</para>
-
- <para>If your computer refuses to boot without a keyboard attached
- then you will have to configure the BIOS so that it ignores this
- error (if it can). Consult your motherboard's manual for details
- on how to do this.</para>
-
- <tip>
- <para>Setting the keyboard to <quote>Not installed</quote> in the
- BIOS setup does <emphasis>not</emphasis> mean that you will not
- be able to use your keyboard. All this does is tell the BIOS
- not to probe for a keyboard at power-on so that it will not
- complain if the keyboard is not plugged in. You can leave the
- keyboard plugged in even with this flag set to <quote>Not
- installed</quote> and the keyboard will still work.</para>
- </tip>
-
- <note>
- <para>If your system has a PS/2 mouse, chances are very good that
- you may have to unplug your mouse as well as your keyboard.
- This is because PS/2 mice share some hardware with the keyboard,
- and leaving the mouse plugged in can fool the keyboard probe
- into thinking the keyboard is still there. It is said that a
- Gateway 2000 Pentium 90Mhz system with an AMI BIOS that behaves
- this way. In general this is not a problem since the mouse is
- not much good without the keyboard anyway.</para>
- </note>
- </step>
-
- <step>
- <para>Plug a dumb terminal into <devicename>COM1:</devicename>
- (<devicename>sio0</devicename>).</para>
-
- <para>If you do not have a dumb terminal, you can use an old PC/XT
- with a modem program, or the serial port on another UNIX box. If
- you do not have a <devicename>COM1:</devicename>
- (<devicename>sio0</devicename>), get one. At this time, there is
- no way to select a port other than <devicename>COM1:</devicename>
- for the boot blocks without recompiling the boot blocks. If you
- are already using <devicename>COM1:</devicename> for another
- device, you will have to temporarily remove that device and
- install a new boot block and kernel once you get FreeBSD up and
- running. (It is assumed that <devicename>COM1:</devicename> will
- be available on a file/compute/terminal server anyway; if you
- really need <devicename>COM1:</devicename> for something else
- (and you can not switch that something else to
- <devicename>COM2:</devicename> (<devicename>sio1</devicename>)),
- then you probably should not even be bothering with all this in
- the first place.)</para>
- </step>
-
- <step>
- <para>Make sure the configuration file of your kernel has
- appropriate flags set for <devicename>COM1:</devicename>
- (<devicename>sio0</devicename>).</para>
-
- <para>Relevant flags are:</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>0x10</literal></term>
-
- <listitem>
- <para>Enables console support for this unit. The other
- console flags are ignored unless this is set. Currently, at
- most one unit can have console support; the first one (in
- config file order) with this flag set is preferred. This
- option alone will not make the serial port the console. Set
- the following flag or use the <option>-h</option> option
- described below, together with this flag.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>0x20</literal></term>
-
- <listitem>
- <para>Forces this unit to be the console (unless there is
- another higher priority console), regardless of the
- <option>-h</option> option discussed below. This flag
- replaces the <literal>COMCONSOLE</literal> option in FreeBSD
- versions 2.X. The flag <literal>0x20</literal> must be used
- together with the <option>0x10</option> flag.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>0x40</literal></term>
-
- <listitem>
- <para>Reserves this unit (in conjunction with
- <literal>0x10</literal>) and makes the unit unavailable for
- normal access. You should not set this flag to the serial
- port unit which you want to use as the serial console. The
- only use of this flag is to designate the unit for kernel
- remote debugging. See <xref linkend="kerneldebug"> for more
- information on remote debugging.</para>
-
- <note>
- <para>In FreeBSD 4.0-CURRENT or later the semantics of the
- flag <literal>0x40</literal> are slightly different and
- there is another flag to specify a serial port for remote
- debugging.</para>
- </note>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Example:</para>
-
- <programlisting>device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4</programlisting>
-
- <para>See &man.sio.4; for more details.</para>
-
- <para>If the flags were not set, you need to run UserConfig (on a
- different console) or recompile the kernel.</para>
- </step>
-
- <step>
- <para>Create <filename>boot.config</filename> in the root directory
- of the <literal>a</literal> partition on the boot drive.</para>
-
- <para>This file will instruct the boot block code how you would like
- to boot the system. In order to activate the serial console, you
- need one or more of the following options&mdash;if you want
- multiple options, include them all on the same line:</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-h</option></term>
-
- <listitem>
- <para>Toggles internal and serial consoles. You can use this
- to switch console devices. For instance, if you boot from
- the internal (video) console, you can use
- <option>-h</option> to direct the boot loader and the kernel
- to use the serial port as its console device. Alternatively,
- if you boot from the serial port, you can use the
- <option>-h</option> to tell the boot loader and the kernel
- to use the video display as the console instead.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-D</option></term>
-
- <listitem>
- <para>Toggles single and dual console configurations. In the
- single configuration the console will be either the internal
- console (video display) or the serial port, depending on the
- state of the <option>-h</option> option above. In the dual
- console configuration, both the video display and the
- serial port will become the console at the same time,
- regardless of the state of the <option>-h</option> option.
- However, that the dual console configuration takes effect
- only during the boot block is running. Once the boot loader
- gets control, the console specified by the
- <option>-h</option> option becomes the only console.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-P</option></term>
-
- <listitem>
- <para>Makes the boot block probe the keyboard. If no keyboard
- is found, the <option>-D</option> and <option>-h</option>
- options are automatically set.</para>
-
- <note>
- <para>Due to space constraints in the current version of the
- boot blocks, the <option>-P</option> option is capable of
- detecting extended keyboards only. Keyboards with less
- than 101 keys (and without F11 and F12 keys) may not be
- detected. Keyboards on some laptop computers may not be
- properly found because of this limitation. If this is to
- be the case with your system, you have to abandon using
- the <option>-P</option> option. Unfortunately there is no
- workaround for this problem.</para>
- </note>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Use either the <option>-P</option> option to select the
- console automatically, or the <option>-h</option> option to
- activate the serial console.</para>
-
- <para>You may include other options described in &man.boot.8; as
- well.</para>
-
- <para>The options, except for <option>-P</option>, will be passed to
- the boot loader (<filename>/boot/loader</filename>). The boot
- loader will determine which of the internal video or the serial
- port should become the console by examining the state of the
- <option>-h</option> option alone. This means that if you specify
- the <option>-D</option> option but not the <option>-h</option>
- option in <filename>/boot.config</filename>, you can use the
- serial port as the console only during the boot block; the boot
- loader will use the internal video display as the console.</para>
- </step>
-
- <step>
- <para>Boot the machine.</para>
-
- <para>When you start your FreeBSD box, the boot blocks will echo the
- contents of <filename>/boot.config</filename> to the console. For
- example;</para>
-
- <screen>/boot.config: -P
-Keyboard: no</screen>
-
- <para>The second line appears only if you put <option>-P</option> in
- <filename>/boot.config</filename> and indicates presence/absence
- of the keyboard. These messages go to either serial or internal
- console, or both, depending on the option in
- <filename>/boot.config</filename>.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Options</entry>
- <entry>Message goes to</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>none</entry>
- <entry>internal console</entry>
- </row>
-
- <row>
- <entry><option>-h</option></entry>
- <entry>serial console</entry>
- </row>
-
- <row>
- <entry><option>-D</option></entry>
- <entry>serial and internal consoles</entry>
- </row>
-
- <row>
- <entry><option>-Dh</option></entry>
- <entry>serial and internal consoles</entry>
- </row>
-
- <row>
- <entry><option>-P</option>, keyboard present</entry>
- <entry>internal console</entry>
- </row>
-
- <row>
- <entry><option>-P</option>, keyboard absent</entry>
- <entry>serial console</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>After the above messages, there will be a small pause before
- the boot blocks continue loading the boot loader and before any
- further messages printed to the console. Under normal
- circumstances, you do not need to interrupt the boot blocks, but
- you may want to do so in order to make sure things are set up
- correctly.</para>
-
- <para>Hit any key, other than Enter/Return, at the console to
- interrupt the boot process. The boot blocks will then prompt you
- for further action. You should now see something like:</para>
-
- <screen>>> FreeBSD/i386 BOOT
-Default: 0:wd(0,a)/boot/loader
-boot:</screen>
-
- <para>Verify the above message appears on either the serial or
- internal console or both, according to the options you put in
- <filename>/boot.config</filename>. If the message appears in the
- correct console, hit Enter/Return to continue the boot
- process.</para>
-
- <para>If you want the serial console but you do not see the prompt
- on the serial terminal, something is wrong with your settings. In
- the meantime, you enter <option>-h</option> and hit Enter/Return
- (if possible) to tell the boot block (and then the boot loader and
- the kernel) to choose the serial port for the console. Once the
- system is up, go back and check what went wrong.</para>
- </step>
- </procedure>
-
- <para>After the boot loader is loaded and you are in the third stage of
- the boot process you can still switch between the internal console and
- the serial console by setting appropriate environment variables in the
- boot loader. See <xref linkend="serialconsole-loader">.</para>
- </sect2>
-
- <sect2 id="serialconsole-summary">
- <title>Summary</title>
-
- <para>Here is the summary of various settings discussed in this section
- and the console eventually selected.</para>
-
- <sect3>
- <title>Case 1: You set the flags to 0x10 for sio0</title>
-
- <programlisting>device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4</programlisting>
-
- <informaltable frame="none">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Options in /boot.config</entry>
- <entry>Console during boot blocks</entry>
- <entry>Console during boot loader</entry>
- <entry>Console in kernel</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>nothing</entry>
- <entry>internal</entry>
- <entry>internal</entry>
- <entry>internal</entry>
- </row>
-
- <row>
- <entry><option>-h</option></entry>
- <entry>serial</entry>
- <entry>serial</entry>
- <entry>serial</entry>
- </row>
-
- <row>
- <entry><option>-D</option></entry>
- <entry>serial and internal</entry>
- <entry>internal</entry>
- <entry>internal</entry>
- </row>
-
- <row>
- <entry><option>-Dh</option></entry>
- <entry>serial and internal</entry>
- <entry>serial</entry>
- <entry>serial</entry>
- </row>
-
- <row>
- <entry><option>-P</option>, keyboard present</entry>
- <entry>internal</entry>
- <entry>internal</entry>
- <entry>internal</entry>
- </row>
-
- <row>
- <entry><option>-P</option>, keyboard absent</entry>
- <entry>serial and internal</entry>
- <entry>serial</entry>
- <entry>serial</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
-
- <sect3>
- <title>Case 2: You set the flags to 0x30 for sio0</title>
-
- <programlisting>device sio0 at isa? port "IO_COM1" tty flags 0x30 irq 4</programlisting>
-
- <informaltable frame="none">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Options in /boot.config</entry>
- <entry>Console during boot blocks</entry>
- <entry>Console during boot loader</entry>
- <entry>Console in kernel</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>nothing</entry>
- <entry>internal</entry>
- <entry>internal</entry>
- <entry>serial</entry>
- </row>
-
- <row>
- <entry><option>-h</option></entry>
- <entry>serial</entry>
- <entry>serial</entry>
- <entry>serial</entry>
- </row>
-
- <row>
- <entry><option>-D</option></entry>
- <entry>serial and internal</entry>
- <entry>internal</entry>
- <entry>serial</entry>
- </row>
-
- <row>
- <entry><option>-Dh</option></entry>
- <entry>serial and internal</entry>
- <entry>serial</entry>
- <entry>serial</entry>
- </row>
-
- <row>
- <entry><option>-P</option>, keyboard present</entry>
- <entry>internal</entry>
- <entry>internal</entry>
- <entry>serial</entry>
- </row>
-
- <row>
- <entry><option>-P</option>, keyboard absent</entry>
- <entry>serial and internal</entry>
- <entry>serial</entry>
- <entry>serial</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
- </sect2>
-
- <sect2 id="serialconsole-tips">
- <title>Tips for the Serial Console</title>
-
- <sect3>
- <title>Setting A Faster Serial Port Speed</title>
-
- <para>By default the serial port settings are set to 9600 baud, 8
- bits, no parity, 1 stop bit. If you wish to change the speed, you
- need to recompile at least the boot blocks. Add the following line
- to <filename>/etc/make.conf</filename> and compile new boot
- blocks:</para>
-
- <programlisting>BOOT_COMCONSOLE_SPEED=19200</programlisting>
-
- <para>If the serial console is configured in some other way than by
- booting with <option>-h</option>, or if the serial console used by
- the kernel is different from the one used by the boot blocks, then
- you must also add the following option to the kernel configuration
- file and compile a new kernel:</para>
-
- <programlisting>options CONSPEED=19200</programlisting>
- </sect3>
-
- <sect3 id="serialconsole-com2">
- <title>Using Serial Port Other Than <devicename>sio0</devicename> For
- The Console</title>
-
- <para>Using a port other than <devicename>sio0</devicename> as the
- console requires some recompiling. If you want to use another
- serial port for whatever reasons, recompile the boot blocks, the
- boot loader and the kernel as follows.</para>
-
- <procedure>
- <step>
- <para>Get the kernel source.</para>
- </step>
-
- <step>
- <para>Edit <filename>/etc/make.conf</filename> and set
- <literal>BOOT_COMCONSOLE_PORT</literal> to the address of the
- port you want to use (0x3F8, 0x2F8, 0x3E8 or 0x2E8). Only
- <devicename>sio0</devicename> through
- <devicename>sio3</devicename> (<devicename>COM1:</devicename>
- through <devicename>COM4:</devicename>) can be used; multiport
- serial cards will not work. No interrupt setting is
- needed.</para>
- </step>
-
- <step>
- <para>Create a custom kernel configuration file and add
- appropriate flags for the serial port you want to use. For
- example, if you want to make <devicename>sio1</devicename>
- (<devicename>COM2:</devicename>) the console:</para>
-
- <programlisting>device sio1 at isa? port "IO_COM2" tty flags 0x10 irq 3</programlisting>
-
- <para>or</para>
-
- <programlisting>device sio1 at isa? port "IO_COM2" tty flags 0x30 irq 3</programlisting>
-
- <para>The console flags for the other serial ports should not be
- set.</para>
- </step>
-
- <step>
- <para>Recompile and install the boot blocks:</para>
-
- <screen>&prompt.root; <userinput>cd /sys/boot/i386/boot2</userinput>
-&prompt.root; <userinput>make</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
- </step>
-
- <step>
- <para>Recompile and install the boot loader:</para>
-
- <screen>&prompt.root; <userinput>cd /sys/boot/i386/loader</userinput>
-&prompt.root; <userinput>make</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
- </step>
-
- <step>
- <para>Rebuild and install the kernel.</para>
- </step>
-
- <step>
- <para>Write the boot blocks to the boot disk with
- &man.disklabel.8; and boot from the new kernel.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>Entering the DDB Debugger from the Serial Line</title>
-
- <para>If you wish to drop into the kernel debugger from the serial
- console (useful for remote diagnostics, but also dangerous if you
- generate a spurious BREAK on the serial port!) then you should
- compile your kernel with the following options:</para>
-
- <programlisting>options BREAK_TO_DEBUGGER
-options DDB</programlisting>
- </sect3>
-
- <sect3>
- <title>Getting a Login Prompt on the Serial Console</title>
-
- <para>While this is not required, you may wish to get a
- <emphasis>login</emphasis> prompt over the serial line, now that you
- can see boot messages and can enter the kernel debugging session
- through the serial console. Here is how to do it.</para>
-
- <para>Open the file <filename>/etc/ttys</filename> with an editor
- and locate the lines:</para>
-
- <programlisting>ttyd0 "/usr/libexec/getty std.9600" unknown off secure
-ttyd1 "/usr/libexec/getty std.9600" unknown off secure
-ttyd2 "/usr/libexec/getty std.9600" unknown off secure
-ttyd3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
-
- <para><literal>ttyd0</literal> through <literal>ttyd3</literal>
- corresponds to <devicename>COM1</devicename> through
- <devicename>COM4</devicename>. Change <literal>off</literal> to
- <literal>on</literal> for the desired port. If you have changed the
- speed of the serial port, you need to change
- <literal>std.9600</literal> to match the current setting, e.g.
- <literal>std.19200</literal>.</para>
-
- <para>You may also want to change the terminal type from
- <literal>unknown</literal> to the actual type of your serial
- terminal.</para>
-
- <para>After editing the file, you must <command>kill -HUP 1</command>
- to make this change take effect.</para>
- </sect3>
- </sect2>
-
- <sect2 id="serialconsole-loader">
- <title>Changing Console from the Boot Loader</title>
-
- <para>Previous sections described how to set up the serial console by
- tweaking the boot block. This section shows that you can specify the
- console by entering some commands and environment variables in the
- boot loader. As the boot loader is invoked as the third stage of the
- boot process, after the boot block, the settings in the boot loader
- will override the settings in the boot block.</para>
-
- <sect3>
- <title>Setting Up the Serial Console</title>
-
- <para>You can easily specify the boot loader and the kernel to use the
- serial console by writing just one line in
- <filename>/boot/loader.rc</filename>:</para>
-
- <programlisting>set console=comconsole</programlisting>
-
- <para>This will take effect regardless of the settings in the boot
- block discussed in the previous section.</para>
-
- <para>You had better put the above line as the first line of
- <filename>/boot/loader.rc</filename> so as to see boot messages on
- the serial console as early as possible.</para>
-
- <para>Likewise, you can specify the internal console as:</para>
-
- <programlisting>set console=vidconsole</programlisting>
-
- <para>If you do not set the boot loader environment variable
- <envar>console</envar>, the boot loader, and subsequently the
- kernel, will use whichever console indicated by the
- <option>-h</option> option in the boot block.</para>
-
- <para>In versions 3.2 or later, you may specify the console in
- <filename>/boot/loader.conf.local</filename> or
- <filename>/boot/loader.conf</filename>, rather than in
- <filename>/boot/loader.rc</filename>. In this method your
- <filename>/boot/loader.rc</filename> should look like:</para>
-
- <programlisting>include /boot/loader.4th
-start</programlisting>
-
- <para>Then, create <filename>/boot/loader.conf.local</filename> and
- put the following line there.</para>
-
- <programlisting>console=comconsole</programlisting>
-
- <para>or</para>
-
- <programlisting>console=vidconsole</programlisting>
-
- <para>See &man.loader.conf.5; for more information.</para>
-
- <note>
- <para>At the moment, the boot loader has no option equivalent to the
- <option>-P</option> option in the boot block, and there is no
- provision to automatically select the internal console and the
- serial console based on the presence of the keyboard.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Using Serial Port Other than <devicename>sio0</devicename> for
- the Console</title>
-
- <para>You need to recompile the boot loader to use a serial port other
- than <devicename>sio0</devicename> for the serial console. Follow the
- procedure described in <xref linkend="serialconsole-com2">.</para>
- </sect3>
- </sect2>
-
- <sect2 id="serialconsole-caveats">
- <title>Caveats</title>
-
- <para>The idea here is to allow people to set up dedicated servers that
- require no graphics hardware or attached keyboards. Unfortunately,
- while (most?) every system will let you boot without a keyboard, there
- are quite a few that will not let you boot without a graphics adapter.
- Machines with AMI BIOSes can be configured to boot with no graphics
- adapter installed simply by changing the `graphics adapter' setting in
- the CMOS configuration to `Not installed.'</para>
-
- <para>However, many machines do not support this option and will refuse
- to boot if you have no display hardware in the system. With these
- machines, you'll have to leave some kind of graphics card plugged in,
- (even if it's just a junky mono board) although you will not have to
- attach a monitor into it. You might also try installing an AMI
- BIOS.</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/sound/chapter.sgml b/en_US.ISO8859-1/books/handbook/sound/chapter.sgml
deleted file mode 100644
index 60b7ad1b7d..0000000000
--- a/en_US.ISO8859-1/books/handbook/sound/chapter.sgml
+++ /dev/null
@@ -1,326 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/sound/chapter.sgml,v 1.4 2000/12/06 21:27:12 dannyboy Exp $
--->
-
-<chapter id="sound">
- <title>Sound</title>
-
- <para><emphasis>Contributed by Moses Moore
- <email>jm-moses@home.com</email>, 20 November 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>This chapter of the handbook deals with setting up sound on a
- FreeBSD system.</para>
- </sect1>
-
- <sect1>
- <title>Locating the Correct Device</title>
-
- <para>Before you begin, you should know the model of the card you
- have, the chip it uses, and whether it is a PCI or ISA card.
- FreeBSD supports a wide variety of both PCI and ISA cards. If you
- do not see your card in the following list, check the &man.pcm.4;
- manual page. This is not a complete list; however, it does list
- some of the most common cards.</para>
-
- <itemizedlist>
- <listitem>
- <para>Crystal 4237, 4236, 4232, 4231</para>
- </listitem>
-
- <listitem>
- <para>Yamaha OPL-SAx</para>
- </listitem>
-
- <listitem>
- <para>OPTi931</para>
- </listitem>
-
- <listitem>
- <para>Ensoniq AudioPCI 1370/1371</para>
- </listitem>
-
- <listitem>
- <para>ESS Solo-1/1E</para>
- </listitem>
-
- <listitem>
- <para>NeoMagic 256AV/ZX</para>
- </listitem>
-
- <listitem>
- <para>Sound Blaster Pro, 16, 32, AWE64, AWE128, Live</para>
- </listitem>
-
- <listitem>
- <para>Creative ViBRA16</para>
- </listitem>
-
- <listitem>
- <para>Advanced Asound 100, 110, and Logic ALS120</para>
- </listitem>
-
- <listitem>
- <para>ES 1868, 1869, 1879, 1888</para>
- </listitem>
-
- <listitem>
- <para>Gravis UltraSound</para>
- </listitem>
-
- <listitem>
- <para>Aureal Vortex 1 or 2</para>
- </listitem>
- </itemizedlist>
-
- <para>The driver you use in your kernel depends on the kind of card
- you have. The sections below provide more information and what
- you will need to add to your <link linkend="kernelconfig">kernel
- configuration</link>.</para>
-
- <sect2>
- <title>Creative, Advance, and ESS Sound Cards</title>
-
- <para>If you have one of the above cards, you will need to
- add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>to your kernel. If you have a PnP ISA card, you will also
- need to add</para>
-
- <programlisting>device sbc</programlisting>
-
- <para>to your kernel. For a non-PnP ISA card, add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15</programlisting>
-
- <para>to your kernel. Those are the default settings. You may
- need to change the IRQ, etc. See the &man.sbc.4; man page for
- more information.</para>
-
- <note>
- <para>The Sound Blaster Live is not supported under FreeBSD 4.0
- without a patch, which this document will not cover. It is
- recommended that you update to the latest -STABLE before
- trying to use this card.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Gravis UltraSound Cards</title>
-
- <para>For a PnP ISA card, you will need to add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device gusc</programlisting>
-
- <para>to your kernel. If you have a non-PnP ISA card, you will
- need to add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13</programlisting>
-
- <para>to your kernel. You may need to change the IRQ, etc. See
- the &man.gusc.4; man page for more information.</para>
- </sect2>
-
- <sect2>
- <title>Crystal Sound Cards</title>
-
- <para>For Crystal cards, you will need both</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>and</para>
-
- <programlisting>device csa</programlisting>
-
- <para>in your kernel.</para>
- </sect2>
-
- <sect2>
- <title>Generic Support</title>
-
- <para>For PnP ISA or PCI cards, you will need to add</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>to your kernel configuration. If you have a non-PnP ISA
- sound card that does not have a bridge driver, you will need
- to add</para>
-
- <programlisting>device pcm0 at isa? irq 10 drq 1 flags 0x0</programlisting>
-
- <para>to your kernel configuration. You may need to change the
- IRQ, etc., to match your hardware configuration.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Recompiling the Kernel</title>
-
- <para>After adding the driver(s) you need to your kernel
- configuration, you will need to recompile your kernel. Please see
- <xref linkend="kernelconfig-building"> of the handbook for
- more information.</para>
- </sect1>
-
- <sect1>
- <title>Creating and Testing the Device Nodes</title>
-
- <para>After you reboot, log in and run <command>cat
- /dev/sndstat</command>. You should see output similar to the
- following:</para>
-
- <programlisting>FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53
-Installed devices:
-pcm0: &lt;Aureal Vortex 8830&gt; at memory 0xfeb40000 irq 5 (4p/1r +channels duplex)</programlisting>
-
- <para>If you see an error message, something went wrong earlier. If
- that happens, go through your kernel configuration file again and
- make sure you chose the correct device.</para>
-
- <para>If it reported no errors and returned
- <devicename>pcm0</devicename>, <command>su</command> to
- <username>root</username> and do the following:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
-
- <para>If it reported no errors and returned
- <devicename>pcm1</devicename>, <command>su</command> to
- <username>root</username> and do the following:</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd1</userinput></screen>
-
- <para>Please note that either of the above commands will
- <emphasis>not</emphasis> create a
- <devicename>/dev/snd</devicename> device! Instead it creates a
- group of device nodes including:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Device</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><devicename>/dev/audio</devicename></entry>
- <entry>SPARC-compatible audio device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/dsp</devicename></entry>
- <entry>Digitized voice device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/dspW</devicename></entry>
- <entry>Like <devicename>/dev/dsp</devicename>, but 16 bits
- per sample</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/midi</devicename></entry>
- <entry>Raw midi access device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/mixer</devicename></entry>
- <entry>Control port mixer device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/music</devicename></entry>
- <entry>Level 2 sequencer interface</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/sequencer</devicename></entry>
- <entry>Sequencer device</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/pss</devicename></entry>
- <entry>Programmable device interface</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If all goes well, you should now have a functioning sound
- card. If you do not, see the next section.</para>
- </sect1>
-
- <sect1>
- <title>Common Problems</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>I get an unsupported subdevice XX error!</para>
- </question>
-
- <answer>
- <para>One or more of the device nodes wasn't created
- correctly. Repeat the steps above.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I get a sb_dspwr(XX) timed out error!</para>
- </question>
-
- <answer>
- <para>The I/O port is not set correctly.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I get a bad irq XX error!</para>
- </question>
-
- <answer>
- <para>The IRQ is set incorrectly. Make sure that the set IRQ
- and the sound IRQ are the same.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I get a "xxx: gus pcm not attached, out of memory"
- error. What causes that?</para>
- </question>
-
- <answer>
- <para>If this happens, it is because there is not enough
- available memory to use the device.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-</chapter>
diff --git a/en_US.ISO8859-1/books/handbook/staff/chapter.sgml b/en_US.ISO8859-1/books/handbook/staff/chapter.sgml
deleted file mode 100644
index d88988ce6c..0000000000
--- a/en_US.ISO8859-1/books/handbook/staff/chapter.sgml
+++ /dev/null
@@ -1,1367 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/staff/chapter.sgml,v 1.208 2001/04/08 18:54:02 dd Exp $
--->
-
-<!--
- Please try to keep the CVSROOT/access file in sync with the list of
- FreeBSD developers.
--->
-
-<appendix id="staff">
- <title>FreeBSD Project Staff</title>
-
- <para>The FreeBSD Project is managed and operated by the following groups of
- people:</para>
-
- <sect1 id="staff-core">
- <title>The FreeBSD Core Team</title>
-
- <para>The FreeBSD core team constitutes the project's <quote>Board of
- Directors</quote>, responsible for deciding the project's overall goals
- and direction as well as managing <link linkend="staff-who">specific
- areas</link> of the FreeBSD project landscape.</para>
-
- <para>(in alphabetical order by last name):</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.asami;</para>
- </listitem>
-
- <listitem>
- <para>&a.dg;</para>
- </listitem>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
-
- <listitem>
- <para>&a.grog;</para>
- </listitem>
-
- <listitem>
- <para>&a.imp;</para>
- </listitem>
-
- <listitem>
- <para>&a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>&a.msmith;</para>
- </listitem>
-
- <listitem>
- <para>&a.rwatson;</para>
- </listitem>
-
- <listitem>
- <para>&a.peter;</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
-<!--
- This list is sorted by last name, not by entity or tenure.
--->
-
- <sect1 id="staff-committers">
- <title>The FreeBSD Developers</title>
-
- <para>These are the people who have commit privileges and do the
- engineering work on the FreeBSD source tree. All core team members are
- also developers.</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.akiyama;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmas;</para>
- </listitem>
-
- <listitem>
- <para>&a.will;</para>
- </listitem>
-
- <listitem>
- <para>&a.ugen;</para>
- </listitem>
-
- <listitem>
- <para>&a.toshi;</para>
- </listitem>
-
- <listitem>
- <para>&a.babkin;</para>
- </listitem>
-
- <listitem>
- <para>&a.dbaker;</para>
- </listitem>
-
- <listitem>
- <para>&a.jhb;</para>
- </listitem>
-
- <listitem>
- <para>&a.dmlb;</para>
- </listitem>
-
- <listitem>
- <para>&a.mbarkah;</para>
- </listitem>
-
- <listitem>
- <para>&a.rvb;</para>
- </listitem>
-
- <listitem>
- <para>&a.dougb;</para>
- </listitem>
-
- <listitem>
- <para>&a.stb;</para>
- </listitem>
-
- <listitem>
- <para>&a.pb;</para>
- </listitem>
-
- <listitem>
- <para>&a.abial;</para>
- </listitem>
-
- <listitem>
- <para>&a.jb;</para>
- </listitem>
-
- <listitem>
- <para>&a.nbm;</para>
- </listitem>
-
- <listitem>
- <para>&a.mb;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmb;</para>
- </listitem>
-
- <listitem>
- <para>&a.torstenb;</para>
- </listitem>
-
- <listitem>
- <para>&a.wilko;</para>
- </listitem>
-
- <listitem>
- <para>&a.jake;</para>
- </listitem>
-
- <listitem>
- <para>&a.dburr;</para>
- </listitem>
-
- <listitem>
- <para>&a.adrian;</para>
- </listitem>
-
- <listitem>
- <para>&a.charnier;</para>
- </listitem>
-
- <listitem>
- <para>&a.jon;</para>
- </listitem>
-
- <listitem>
- <para>&a.luoqi;</para>
- </listitem>
-
- <listitem>
- <para>&a.ache;</para>
- </listitem>
-
- <listitem>
- <para>&a.ejc;</para>
- </listitem>
-
- <listitem>
- <para>&a.kjc;</para>
- </listitem>
-
- <listitem>
- <para>&a.cjh;</para>
- </listitem>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
-
- <listitem>
- <para>&a.archie;</para>
- </listitem>
-
- <listitem>
- <para>&a.chris;</para>
- </listitem>
-
- <listitem>
- <para>&a.alc;</para>
- </listitem>
-
- <listitem>
- <para>&a.cracauer;</para>
- </listitem>
-
- <listitem>
- <para>&a.dec;</para>
- </listitem>
-
- <listitem>
- <para>&a.pds;</para>
- </listitem>
-
- <listitem>
- <para>&a.adam;</para>
- </listitem>
-
- <listitem>
- <para>&a.bsd;</para>
- </listitem>
-
- <listitem>
- <para>&a.jwd;</para>
- </listitem>
-
- <listitem>
- <para>&a.dillon;</para>
- </listitem>
-
- <listitem>
- <para>&a.mdodd;</para>
- </listitem>
-
- <listitem>
- <para>&a.dd;</para>
- </listitem>
-
- <listitem>
- <para>&a.iedowse;</para>
- </listitem>
-
- <listitem>
- <para>&a.gad;</para>
- </listitem>
-
- <listitem>
- <para>&a.dufault;</para>
- </listitem>
-
- <listitem>
- <para>&a.uhclem;</para>
- </listitem>
-
- <listitem>
- <para>&a.tegge;</para>
- </listitem>
-
- <listitem>
- <para>&a.deischen;</para>
- </listitem>
-
- <listitem>
- <para>&a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>&a.julian;</para>
- </listitem>
-
- <listitem>
- <para>&a.rse;</para>
- </listitem>
-
- <listitem>
- <para>&a.ru;</para>
- </listitem>
-
- <listitem>
- <para>&a.se;</para>
- </listitem>
-
- <listitem>
- <para>&a.bde;</para>
- </listitem>
-
- <listitem>
- <para>&a.jasone;</para>
- </listitem>
-
- <listitem>
- <para>&a.sef;</para>
- </listitem>
-
- <listitem>
- <para>&a.jedgar;</para>
- </listitem>
-
- <listitem>
- <para>&a.green;</para>
- </listitem>
-
- <listitem>
- <para>&a.fenner;</para>
- </listitem>
-
- <listitem>
- <para>&a.lioux;</para>
- </listitem>
-
- <listitem>
- <para>&a.jfieber;</para>
- </listitem>
-
- <listitem>
- <para>&a.jfitz;</para>
- </listitem>
-
- <listitem>
- <para>&a.scrappy;</para>
- </listitem>
-
- <listitem>
- <para>&a.lars;</para>
- </listitem>
-
- <listitem>
- <para>&a.dirk;</para>
- </listitem>
-
- <listitem>
- <para>&a.sf;</para>
- </listitem>
-
- <listitem>
- <para>&a.shige;</para>
- </listitem>
-
- <listitem>
- <para>&a.billf;</para>
- </listitem>
-
- <listitem>
- <para>&a.furuta;</para>
- </listitem>
-
- <listitem>
- <para>&a.gallatin;</para>
- </listitem>
-
- <listitem>
- <para>&a.patrick;</para>
- </listitem>
-
- <listitem>
- <para>&a.tg;</para>
- </listitem>
-
- <listitem>
- <para>&a.gibbs;</para>
- </listitem>
-
- <listitem>
- <para>&a.brandon;</para>
- </listitem>
-
- <listitem>
- <para>&a.gioria;</para>
- </listitem>
-
- <listitem>
- <para>&a.graichen;</para>
- </listitem>
-
- <listitem>
- <para>&a.cg;</para>
- </listitem>
-
- <listitem>
- <para>&a.rgrimes;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmg;</para>
- </listitem>
-
- <listitem>
- <para>&a.hanai;</para>
- </listitem>
-
- <listitem>
- <para>&a.roger;</para>
- </listitem>
-
- <listitem>
- <para>&a.mharo;</para>
- </listitem>
-
- <listitem>
- <para>&a.dannyboy;</para>
- </listitem>
-
- <listitem>
- <para>&a.thepish;</para>
- </listitem>
-
- <listitem>
- <para>&a.jhay;</para>
- </listitem>
-
- <listitem>
- <para>&a.sheldonh;</para>
- </listitem>
-
- <listitem>
- <para>&a.mikeh;</para>
- </listitem>
-
- <listitem>
- <para>&a.helbig;</para>
- </listitem>
-
- <listitem>
- <para>&a.ghelmer;</para>
- </listitem>
-
- <listitem>
- <para>&a.erich;</para>
- </listitem>
-
- <listitem>
- <para>&a.chm;</para>
- </listitem>
-
- <listitem>
- <para>&a.nhibma;</para>
- </listitem>
-
- <listitem>
- <para>&a.flathill;</para>
- </listitem>
-
- <listitem>
- <para>&a.orion;</para>
- </listitem>
-
- <listitem>
- <para>&a.pho;</para>
- </listitem>
-
- <listitem>
- <para>&a.horikawa;</para>
- </listitem>
-
- <listitem>
- <para>&a.hosokawa;</para>
- </listitem>
-
- <listitem>
- <para>&a.jeh;</para>
- </listitem>
-
- <listitem>
- <para>&a.hsu;</para>
- </listitem>
-
- <listitem>
- <para>&a.foxfair;</para>
- </listitem>
-
- <listitem>
- <para>&a.tom;</para>
- </listitem>
-
- <listitem>
- <para>&a.mph;</para>
- </listitem>
-
- <listitem>
- <para>&a.imura;</para>
- </listitem>
-
- <listitem>
- <para>&a.shin;</para>
- </listitem>
-
- <listitem>
- <para>&a.itojun;</para>
- </listitem>
-
- <listitem>
- <para>&a.iwasaki;</para>
- </listitem>
-
- <listitem>
- <para>&a.mjacob;</para>
- </listitem>
-
- <listitem>
- <para>&a.keith;</para>
- </listitem>
-
- <listitem>
- <para>&a.gj;</para>
- </listitem>
-
- <listitem>
- <para>&a.trevor;</para>
- </listitem>
-
- <listitem>
- <para>&a.phk;</para>
- </listitem>
-
- <listitem>
- <para>&a.tomsoft;</para>
- </listitem>
-
- <listitem>
- <para>&a.joe;</para>
- </listitem>
-
- <listitem>
- <para>&a.cokane;</para>
- </listitem>
-
- <listitem>
- <para>&a.kato;</para>
- </listitem>
-
- <listitem>
- <para>&a.kris;</para>
- </listitem>
-
- <listitem>
- <para>&a.kiri;</para>
- </listitem>
-
- <listitem>
- <para>&a.andreas;</para>
- </listitem>
-
- <listitem>
- <para>&a.lkoeller;</para>
- </listitem>
-
- <listitem>
- <para>&a.motoyuki;</para>
- </listitem>
-
- <listitem>
- <para>&a.jkoshy;</para>
- </listitem>
-
- <listitem>
- <para>&a.kuriyama;</para>
- </listitem>
-
- <listitem>
- <para>&a.alex;</para>
- </listitem>
-
- <listitem>
- <para>&a.reg;</para>
- </listitem>
-
- <listitem>
- <para>&a.jlemon;</para>
- </listitem>
-
- <listitem>
- <para>&a.truckman;</para>
- </listitem>
-
- <listitem>
- <para>&a.ijliao;</para>
- </listitem>
-
- <listitem>
- <para>&a.lile;</para>
- </listitem>
-
- <listitem>
- <para>&a.clive;</para>
- </listitem>
-
- <listitem>
- <para>&a.kevlo;</para>
- </listitem>
-
- <listitem>
- <para>&a.scottl;</para>
- </listitem>
-
- <listitem>
- <para>&a.ade;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmacd;</para>
- </listitem>
-
- <listitem>
- <para>&a.smace;</para>
- </listitem>
-
- <listitem>
- <para>&a.bmah;</para>
- </listitem>
-
- <listitem>
- <para>&a.dwmalone;</para>
- </listitem>
-
- <listitem>
- <para>&a.mckay;</para>
- </listitem>
-
- <listitem>
- <para>&a.mckusick;</para>
- </listitem>
-
- <listitem>
- <para>&a.eric;</para>
- </listitem>
-
- <listitem>
- <para>&a.ken;</para>
- </listitem>
-
- <listitem>
- <para>&a.dinoex;</para>
- </listitem>
-
- <listitem>
- <para>&a.hm;</para>
- </listitem>
-
- <listitem>
- <para>&a.sanpei;</para>
- </listitem>
-
- <listitem>
- <para>&a.bmilekic;</para>
- </listitem>
-
- <listitem>
- <para>&a.mita;</para>
- </listitem>
-
- <listitem>
- <para>&a.non;</para>
- </listitem>
-
- <listitem>
- <para>&a.jim;</para>
- </listitem>
-
- <listitem>
- <para>&a.marcel;</para>
- </listitem>
-
- <listitem>
- <para>&a.dan;</para>
- </listitem>
-
- <listitem>
- <para>&a.tmm;</para>
- </listitem>
-
- <listitem>
- <para>&a.amurai;</para>
- </listitem>
-
- <listitem>
- <para>&a.markm;</para>
- </listitem>
-
- <listitem>
- <para>&a.rich;</para>
- </listitem>
-
- <listitem>
- <para>&a.knu;</para>
- </listitem>
-
- <listitem>
- <para>&a.nakai;</para>
- </listitem>
-
- <listitem>
- <para>&a.max;</para>
- </listitem>
-
- <listitem>
- <para>&a.newton;</para>
- </listitem>
-
- <listitem>
- <para>&a.rnordier;</para>
- </listitem>
-
- <listitem>
- <para>&a.davidn;</para>
- </listitem>
-
- <listitem>
- <para>&a.obrien;</para>
- </listitem>
-
- <listitem>
- <para>&a.danny;</para>
- </listitem>
-
- <listitem>
- <para>&a.okazaki;</para>
- </listitem>
-
- <listitem>
- <para>&a.olgeni;</para>
- </listitem>
-
- <listitem>
- <para>&a.ljo;</para>
- </listitem>
-
- <listitem>
- <para>&a.onoe;</para>
- </listitem>
-
- <listitem>
- <para>&a.marko;</para>
- </listitem>
-
- <listitem>
- <para>&a.gpalmer;</para>
- </listitem>
-
- <listitem>
- <para>&a.fsmp;</para>
- </listitem>
-
- <listitem>
- <para>&a.smpatel;</para>
- </listitem>
-
- <listitem>
- <para>&a.cp;</para>
- </listitem>
-
- <listitem>
- <para>&a.wpaul;</para>
- </listitem>
-
- <listitem>
- <para>&a.alfred;</para>
- </listitem>
-
- <listitem>
- <para>&a.roam;</para>
- </listitem>
-
- <listitem>
- <para>&a.wes;</para>
- </listitem>
-
- <listitem>
- <para>&a.cpiazza;</para>
- </listitem>
-
- <listitem>
- <para>&a.jdp;</para>
- </listitem>
-
- <listitem>
- <para>&a.bp;</para>
- </listitem>
-
- <listitem>
- <para>&a.steve;</para>
- </listitem>
-
- <listitem>
- <para>&a.mpp;</para>
- </listitem>
-
- <listitem>
- <para>&a.darrenr;</para>
- </listitem>
-
- <listitem>
- <para>&a.csgr;</para>
- </listitem>
-
- <listitem>
- <para>&a.greid;</para>
- </listitem>
-
- <listitem>
- <para>&a.martin;</para>
- </listitem>
-
- <listitem>
- <para>&a.benno;</para>
- </listitem>
-
- <listitem>
- <para>&a.luigi;</para>
- </listitem>
-
- <listitem>
- <para>&a.paul;</para>
- </listitem>
-
- <listitem>
- <para>&a.roberto;</para>
- </listitem>
-
- <listitem>
- <para>&a.chuckr;</para>
- </listitem>
-
- <listitem>
- <para>&a.jesusr;</para>
- </listitem>
-
- <listitem>
- <para>&a.guido;</para>
- </listitem>
-
- <listitem>
- <para>&a.groudier;</para>
- </listitem>
-
- <listitem>
- <para>&a.dima;</para>
- </listitem>
-
- <listitem>
- <para>&a.asmodai;</para>
- </listitem>
-
- <listitem>
- <para>&a.ps;</para>
- </listitem>
-
- <listitem>
- <para>&a.sada;</para>
- </listitem>
-
- <listitem>
- <para>&a.hrs;</para>
- </listitem>
-
- <listitem>
- <para>&a.wsanchez;</para>
- </listitem>
-
- <listitem>
- <para>&a.nsayer;</para>
- </listitem>
-
- <listitem>
- <para>&a.sos;</para>
- </listitem>
-
- <listitem>
- <para>&a.wosch;</para>
- </listitem>
-
- <listitem>
- <para>&a.schweikh;</para>
- </listitem>
-
- <listitem>
- <para>&a.dick;</para>
- </listitem>
-
- <listitem>
- <para>&a.jseger;</para>
- </listitem>
-
- <listitem>
- <para>&a.semenu;</para>
- </listitem>
-
- <listitem>
- <para>&a.gshapiro;</para>
- </listitem>
-
- <listitem>
- <para>&a.shiba;</para>
- </listitem>
-
- <listitem>
- <para>&a.simokawa;</para>
- </listitem>
-
- <listitem>
- <para>&a.vanilla;</para>
- </listitem>
-
- <listitem>
- <para>&a.shafeeq;</para>
- </listitem>
-
- <listitem>
- <para>&a.demon;</para>
- </listitem>
-
- <listitem>
- <para>&a.jesper;</para>
- </listitem>
-
- <listitem>
- <para>&a.msmith;</para>
- </listitem>
-
- <listitem>
- <para>&a.ben;</para>
- </listitem>
-
- <listitem>
- <para>&a.nsouch;</para>
- </listitem>
-
- <listitem>
- <para>&a.issei;</para>
- </listitem>
-
- <listitem>
- <para>&a.des;</para>
- </listitem>
-
- <listitem>
- <para>&a.sobomax;</para>
- </listitem>
-
- <listitem>
- <para>&a.dcs;</para>
- </listitem>
-
- <listitem>
- <para>&a.brian;</para>
- </listitem>
-
- <listitem>
- <para>&a.mks;</para>
- </listitem>
-
- <listitem>
- <para>&a.stark;</para>
- </listitem>
-
- <listitem>
- <para>&a.murray;</para>
- </listitem>
-
- <listitem>
- <para>&a.sumikawa;</para>
- </listitem>
-
- <listitem>
- <para>&a.gsutter;</para>
- </listitem>
-
- <listitem>
- <para>&a.unfurl;</para>
- </listitem>
-
- <listitem>
- <para>&a.nyan;</para>
- </listitem>
-
- <listitem>
- <para>&a.tanimura;</para>
- </listitem>
-
- <listitem>
- <para>&a.taoka;</para>
- </listitem>
-
- <listitem>
- <para>&a.mtaylor;</para>
- </listitem>
-
- <listitem>
- <para>&a.dt;</para>
- </listitem>
-
- <listitem>
- <para>&a.mi;</para>
- </listitem>
-
- <listitem>
- <para>&a.yar;</para>
- </listitem>
-
- <listitem>
- <para>&a.cwt;</para>
- </listitem>
-
- <listitem>
- <para>&a.pst;</para>
- </listitem>
-
- <listitem>
- <para>&a.ume;</para>
- </listitem>
-
- <listitem>
- <para>&a.rv;</para>
- </listitem>
-
- <listitem>
- <para>&a.hoek;</para>
- </listitem>
-
- <listitem>
- <para>&a.nectar;</para>
- </listitem>
-
- <listitem>
- <para>&a.jayanth;</para>
- </listitem>
-
- <listitem>
- <para>&a.bean;</para>
- </listitem>
-
- <listitem>
- <para>&a.swallace;</para>
- </listitem>
-
- <listitem>
- <para>&a.takawata;</para>
- </listitem>
-
- <listitem>
- <para>&a.assar;</para>
- </listitem>
-
- <listitem>
- <para>&a.dwhite;</para>
- </listitem>
-
- <listitem>
- <para>&a.nate;</para>
- </listitem>
-
- <listitem>
- <para>&a.wollman;</para>
- </listitem>
-
- <listitem>
- <para>&a.keichii;</para>
- </listitem>
-
- <listitem>
- <para>&a.joerg;</para>
- </listitem>
-
- <listitem>
- <para>&a.kbyanc;</para>
- </listitem>
-
- <listitem>
- <para>&a.uch;</para>
- </listitem>
-
- <listitem>
- <para>&a.yokota;</para>
- </listitem>
-
- <listitem>
- <para>&a.andy;</para>
- </listitem>
-
- <listitem>
- <para>&a.phantom;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmz;</para>
- </listitem>
-
- </itemizedlist>
- </sect1>
-
- <sect1 id="staff-doc">
-
-
- <title>The FreeBSD Documentation Project</title>
-
- <para>The <ulink url="http://www.FreeBSD.org/docproj/docproj.html">FreeBSD
- Documentation Project</ulink> is responsible for a number of different
- services, each service being run by an individual and his
- <emphasis>deputies</emphasis> (if any):</para>
-
- <variablelist>
- <varlistentry>
- <term>Documentation Project Architect</term>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Handbook Editor</term>
-
- <listitem>
- <para>&a.jim;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FAQ Editor</term>
-
- <listitem>
- <para>&a.faq;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>News Editor</term>
-
- <listitem>
- <para>&a.jim;</para>
- </listitem>
- </varlistentry>
-
-
- <varlistentry>
- <term>In the Press Editor</term>
-
- <listitem>
- <para>&a.jkoshy;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FreeBSD Really-Quick NewsLetter Editor</term>
-
- <listitem>
- <para>Chris Coleman <email>chrisc@vmunix.com</email></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Gallery Editor</term>
-
- <listitem>
- <para>&a.phantom;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Commercial Editor</term>
-
- <listitem>
- <para>&a.phantom;</para>
- </listitem>
- </varlistentry>
-
-<![ %not.published; [
-
- <varlistentry>
- <term>Web Changes Editor</term>
-
- <listitem>
- <para>&a.www;</para>
- </listitem>
- </varlistentry>
-
-]]>
-
- <varlistentry>
- <term>User Groups Editor</term>
-
- <listitem>
- <para>&a.grog;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FreeBSD Projects and Tasklist Editor</term>
-
- <listitem>
- <para>&a.asmodai;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FreeBSD Java Project</term>
-
- <listitem>
- <para>&a.patrick;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>LinuxDoc to DocBook conversion</term>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="staff-who">
- <title>Who is Responsible for What</title>
-
- <variablelist>
- <varlistentry>
- <term><ulink
- url="http://www.FreeBSD.org/docproj/docproj.html">Documentation
- Project Manager</ulink></term>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="boot-blocks">Boot blocks</link></term>
-
- <listitem>
- <para>&a.rnordier;, &a.jhb;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="boot-loader">Boot loader</link></term>
-
- <listitem>
- <para>&a.dcs;</para>
- <para>&a.jhb;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="l10n">Internationalization</link></term>
-
- <listitem>
- <para>&a.ache;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="eresources-mail">Postmaster</link></term>
-
- <listitem>
- <para>&a.jmb;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Release Coordinator</term>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Public Relations &amp; Corporate Liaison</term>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.FreeBSD.org/security/">Security
- Officer</ulink></term>
-
- <listitem>
- <para>&a.kris;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.FreeBSD.org/support.html#cvs">Source
- Repository Managers</ulink></term>
-
- <listitem>
- <para>Principal: &a.peter;</para>
-
- <para>Assistant: &a.jdp;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.FreeBSD.org/ports/">Ports
- Manager</ulink></term>
-
- <listitem>
- <para>&a.asami;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Standards</term>
-
- <listitem>
- <para>&a.wollman;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>XFree86 Project, Inc. Liaison</term>
-
- <listitem>
- <para>&a.rich;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="eresources-news">Usenet Support</link></term>
-
- <listitem>
- <para>&a.joerg;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.FreeBSD.org/support.html#gnats">GNATS
- Administrator</ulink></term>
-
- <listitem>
- <para>&a.steve;</para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </sect1>
-</appendix>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../appendix.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "appendix")
- End:
--->
-
diff --git a/en_US.ISO8859-1/books/handbook/users/chapter.sgml b/en_US.ISO8859-1/books/handbook/users/chapter.sgml
deleted file mode 100644
index b91dbf7464..0000000000
--- a/en_US.ISO8859-1/books/handbook/users/chapter.sgml
+++ /dev/null
@@ -1,634 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/users/chapter.sgml,v 1.5 2001/01/20 03:35:19 dannyboy Exp $
--->
-
-<chapter id="users">
- <title>Users and Basic Account Management</title>
-
- <sect1 id="users-synopsis">
- <title>Synopsis</title>
-
- <para><emphasis>Contributed by &a.nbm; February 2000</emphasis>.</para>
-
- <para>All access to the system is achieved via accounts, and all
- processes are run by users, so user and account management are
- of integral importance on FreeBSD systems.</para>
-
- <para>There are three main types of accounts; the <link
- linkend="users-superuser">Superuser</link>, <link
- linkend="users-system">system users</link>, and <link
- linkend="users-user">user accounts</link>. The Superuser
- account, usually called <username>root</username>, is used to
- manage the system with no limitations on privileges. System
- users run services. Finally, user accounts are used by real
- people, who log on, read mail, and so forth.</para>
- </sect1>
-
- <sect1 id="users-superuser">
- <title>The Superuser Account</title>
-
- <para>The superuser account, usually called
- <username>root</username>, comes preconfigured, and facilitates
- system administration, and should not be used for day-to-day
- tasks like sending and receiving mail, general exploration of
- the system, or programming.</para>
-
- <para>This is because the superuser, unlike normal user accounts,
- can operate without limits, and misuse of the superuser account
- may result in spectacular disasters. User accounts are unable
- to destroy the system by mistake, so it is generally best to use
- normal user accounts whenever possible, unless you especially
- need the extra privilege.</para>
-
- <para>In addition, always double and triple-check commands you
- issue as the superuser, since an extra space or missing
- character can mean irreparable data loss. Those extra
- privileges you needed when you decided to change to the
- superuser mean that the safeguards of your normal user account
- no longer apply.</para>
-
- <para>So, the first thing you should do after reading this
- chapter, is to create an unprivileged user account for yourself
- for general usage, if you haven't already. This applies equally
- whether you're running a multi-user or single-user machine.
- Later in this chapter, we discuss how to create additional
- accounts, and how to change between the normal user and
- superuser.</para>
- </sect1>
-
- <sect1 id="users-system">
- <title>System Accounts</title>
-
- <para>System users are those used to run services such as DNS,
- mail, web servers, and so forth. The reason for this is
- security; if all services ran as the superuser, they could
- act without restriction.</para>
-
- <para>Examples of system users are <username>daemon</username>,
- <username>operator</username>, <username>bind</username> (for
- the Domain Name Service), and <username>news</username>. Often
- sysadmins create <username>httpd</username> to run web servers
- they install.</para>
-
- <para><username>nobody</username> is the generic unprivileged
- system user, but the more services that use
- <username>nobody</username>, the more privileged it
- becomes.</para>
- </sect1>
-
- <sect1 id="users-user">
- <title>User Accounts</title>
-
- <para>User accounts are the primary means of access for real
- people to the system, and these accounts insulate the user and
- the environment, preventing the users from damaging the system
- or other users, and allowing users to customize their
- environment without affecting others.</para>
-
- <para>Every person accessing your system should have their own
- unique user account. This allows you to find out who is doing
- what, and prevent people from clobbering each others' settings,
- and reading mail meant for the other, and so forth.</para>
-
- <para>Each user can set up their own environment to accommodate
- their use of the system, by using alternate shells, editors, key
- bindings, and language.</para>
- </sect1>
-
- <sect1 id="users-modifying">
- <title>Modifying Accounts</title>
-
- <para><application>pw</application> is a powerful and flexible
- means to modify accounts, but <application>adduser</application>
- is recommended for creating new accounts, and
- <application>rmuser</application> for deleting accounts.</para>
-
- <para><application>chpass</application> allows both the system
- administrator and normal users to adjust passwords, shells, and
- personal information. <application>passwd</application> is the
- more common means to change passwords specifically,
- however.</para>
-
-
- <sect2 id="users-adduser">
- <title>adduser</title>
-
- <para><application>adduser</application> is a simple program for
- adding new users. It creates <filename>passwd</filename> and
- <filename>group</filename> entries for the user, as well as
- creating their home directory, copy in some default dotfiles
- from <filename>/usr/share/skel</filename>, and can optionally
- mail the user a welcome message.</para>
-
- <para>To create the initial configuration file, use
- <command>adduser -s -config_create</command>.
- <footnote>
- <para>The <option>-s</option> makes adduser default to
- quiet. We use <option>-v</option> later when we want to
- change defaults.</para>
- </footnote>Next, we configure adduser defaults, and create our
- first user account, since using root for normal usage is evil
- and nasty.</para>
-
- <example>
- <title>Changing the configuration for adduser</title>
-
- <screen>&prompt.root; <userinput>adduser -v</userinput>
-Use option ``-silent'' if you don't want to see all warnings and questions.
-Check /etc/shells
-Check /etc/master.passwd
-Check /etc/group
-Enter your default shell: csh date no sh tcsh [sh]: <userinput>tcsh</userinput>
-Your default shell is: tcsh -> /usr/local/bin/tcsh
-Enter your default HOME partition: [/home]:
-Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
-Send message from file: /etc/adduser.message no
-[/etc/adduser.message]: <userinput>no</userinput>
-Do not send message
-Use passwords (y/n) [y]: <userinput>y</userinput>
-
-Write your changes to /etc/adduser.conf? (y/n) [n]: <userinput>y</userinput>
-
-Ok, let's go.
-Don't worry about mistakes. I will give you the chance later to correct any input.
-Enter username [a-z0-9_-]: <userinput>jru</userinput>
-Enter full name []: <userinput>J. Random User</userinput>
-Enter shell csh date no sh tcsh [tcsh]:
-Enter home directory (full path) [/home/jru]:
-Uid [1001]:
-Enter login class: default []:
-Login group jru [jru]:
-Login group is ``jru''. Invite jru into other groups: guest no
-[no]: <userinput>wheel</userinput>
-Enter password []:
-Enter password again []:
-
-Name: jru
-Password: ****
-Fullname: J. Random User
-Uid: 1007
-Gid: 1007 (jru)
-Class:
-Groups: jru wheel
-HOME: /home/jru
-Shell: /usr/local/bin/tcsh
-OK? (y/n) [y]: <userinput>y</userinput>
-Added user ``jru''
-Copy files from /usr/share/skel to /home/jru
-Add another user? (y/n) [y]: <userinput>n</userinput>
-Goodbye!
-&prompt.root;</screen>
- </example>
-
- <para>In summary, we changed the default shell to
- <application>tcsh</application> (an additional shell found in
- packages), and turned off the sending of a welcome mail to
- added users. We then saved the configuration, and then
- created an account for <username>jru</username>, and we made
- sure <username>jru</username> is in <username>wheel</username>
- group (which we'll see is important later).</para>
-
- <note>
- <para>The password you type in isn't echoed, nor are asterisks
- displayed. Make sure you don't mistype the password twice
- :-)</para>
- </note>
-
- <note>
- <para>Just use <command>adduser</command> without arguments
- from now on, and you won't have to go through changing the
- defaults. If the program asks you to change the defaults,
- exit the program, and try the <option>-s</option>
- option.</para>
- </note>
- </sect2>
-
- <sect2 id="users-rmuser">
- <title>rmuser</title>
-
- <para><application>rmuser</application> removes users from the
- system, including any traces beyond the user database.</para>
-
- <para><application>rmuser</application> performs the following
- steps:</para>
-
- <procedure>
- <step>
- <para>Removes the user's &man.crontab.1; entry (if
- any).</para>
- </step>
- <step>
- <para>Removes any &man.at.1; jobs belonging to the
- user.</para>
- </step>
- <step>
- <para>Kills all processes owned by the user</para>
- </step>
- <step>
- <para>Removes the user from the system's local password
- file.</para>
- </step>
- <step>
- <para>Removes the user's home directory (if it is owned by
- the user)</para>
- </step>
- <step>
- <para>Removes the incoming mail files belonging to the user
- from <filename>/var/mail</filename>.</para>
- </step>
- <step>
- <para>Removes all files owned by the user from temporary
- file storage areas such as <filename>/tmp</filename>.</para>
- </step>
- <step>
- <para>Finally, removes the username from all groups to which
- it belongs in <filename>/etc/group</filename>.
-
- <note>
- <para>If a group becomes empty and the group name is the
- same as the username, the group is removed; this
- complements the per-user unique groups created by
- &man.adduser.8;.</para>
- </note>
- </para>
- </step>
- </procedure>
-
- <para><application>rmuser</application> can't be used to remove
- superuser accounts, since that is almost always an indication
- of massive destruction.</para>
-
- <para>By default, an interactive mode is used, which attempts to
- make sure you know what you're doing.</para>
-
- <example>
- <title>rmuser interactive account removal</title>
-
- <screen>&prompt.root; <userinput>rmuser jru</userinput>
-Matching password entry:
-jru:*:1000:1000::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh
-Is this the entry you wish to remove? <userinput>y</userinput>
-Remove user's home directory (/home/jru)? <userinput>y</userinput>
-Updating password file, updating databases, done.
-Updating group file: trusted (removing group jru -- personal group is empty) done.
-Removing user's incoming mail file /var/mail/jru: done.
-Removing files belonging to jru from /tmp: done.
-Removing files belonging to jru from /var/tmp: done.
-Removing files belonging to jru from /var/tmp/vi.recover: done.
-&prompt.root;</screen>
- </example>
- </sect2>
-
- <sect2 id="users-pw">
- <title>pw</title>
-
- <para><application>pw</application> is a command line utility to
- create, remove, modify, and display users and groups, and
- functions as an editor of the system user and group
- files.</para>
-
- <para>It is designed to be useful both as a directly executed
- command and for use from shell scripts.</para>
-
- <para>&man.pw.8; has all the information.</para>
- </sect2>
-
- <sect2 id="users-chpass">
- <title>chpass</title>
-
- <para><application>chpass</application> changes user database
- information such as passwords, shells, and personal
- information.</para>
-
- <para>Only system administrators, as the superuser, may change
- other users' information and passwords with chpass.</para>
-
- <para>Passed no options, besides the optional username,
- <application>chpass</application> displays an editor
- containing user information, and upon exit from the editor,
- attempts to change the information in the user
- database.</para>
-
- <example>
- <title>Interactive chpass by Superuser</title>
-
- <screen>#Changing user database information for jru.
-Login: jru
-Password: *
-Uid [#]: 1000
-Gid [# or name]: 1000
-Change [month day year]:
-Expire [month day year]:
-Class:
-Home directory: /home/jru
-Shell: /usr/local/bin/tcsh
-Full Name: J. Random User
-Office Location:
-Office Phone:
-Home Phone:
-Other information:</screen>
- </example>
-
- <para>The normal user can change only a small subsection of this
- information, and only for themselves.</para>
-
- <example>
- <title>Interactive chpass by Normal User</title>
-
- <screen>#Changing user database information for jru.
-Shell: /usr/local/bin/tcsh
-Full Name: J. Random User
-Office Location:
-Office Phone:
-Home Phone:
-Other information:</screen>
- </example>
-
- <note>
- <para><command>chfn</command> and <command>chsh</command> are
- just links to chpass, as are <command>ypchpass</command>,
- <command>ypchfn</command>, and
- <command>ypchsh</command>. NIS support is automatic, so
- specifying the <literal>yp</literal> before the command is
- not necessary.</para>
- </note>
- </sect2>
- <sect2 id="users-passwd">
- <title>passwd</title>
-
- <para><application>passwd</application> is the usual way to
- change your own password as a user, or another user's password
- as the superuser.</para>
-
- <note>
- <para>Users must type in their original password before
- changing their password, to prevent an unauthorized person
- from changing their password when the user is away from
- their console.</para>
- </note>
-
- <example>
- <title>passwd</title>
-
- <screen>&prompt.user; <userinput>passwd</userinput>
-Changing local password for jru.
-Old password:
-New password:
-Retype new password:
-passwd: updating the database...
-passwd: done
-
-&prompt.root; <userinput>passwd jru</userinput>
-Changing local password for jru.
-New password:
-Retype new password:
-passwd: updating the database...
-passwd: done</screen>
- </example>
-
- <note>
- <para><command>yppasswd</command> is just a link to
- <command>passwd</command>. NIS support is automatic, so
- specifying the <literal>yp</literal> before the command is
- not necessary.</para>
- </note>
- </sect2>
- </sect1>
-
- <sect1 id="users-limiting">
- <title>Limiting Users</title>
-
- <para>If you run a multi-user system, chances are that you do not trust
- all of your users not to damage your system. FreeBSD provides a
- number of ways a system administrator can limit the amount of system
- resources an individual user can use. These limits are generally
- divided into two sections: disk quotas, and other resources
- limits.</para>
-
- <para>Disk quotas are a way for the system administrator to tell the
- filesystem the amount of disk space a user may use; moreover, they
- provide a way to quickly check on the disk usage of a user without
- having to calculate it every time. Quotas are discussed in <xref
- linkend="quotas">.</para>
-
- <para>The other resource limits include ways to limit the amount of
- CPU, memory, and other resources a user may consume. These are
- defined using login classes and are discussed here.</para>
-
- <para>Login classes are defined in
- <filename>/etc/login.conf</filename>. The precise semantics are
- beyond the scope of this section, but are described in detail in the
- &man.login.conf.5; manual page. It is sufficient to say that each
- user can is assigned to a login class (<literal>default</literal> by
- default), and that each login class has a set of login capabilities
- associated with it. A login capability is a
- <literal><replaceable>name</replaceable>=<replaceable>value</replaceable></literal>
- pair, where <replaceable>name</replaceable> is a well-known
- identifier and <replaceable>value</replaceable> is an arbitrary
- string processed accordingly depending on the name. Setting up login
- classes and capabilities is rather straight-forward, and is also
- described in &man.login.conf.5;.</para>
-
- <para>Resource limits are different from plain vanilla login
- capabilities in two ways. First, for every limit, there is a soft
- (current) and hard limit. A soft limit may be adjusted by the user
- or application, but may be no higher than the hard limit. The latter
- may be lowered by the user, but never raised. Second, most resource
- limits apply per process to a specific user, not the user as a whole.
- Note, however, that these differences are mandated by the specific
- handling of the limits, not by the implementation of the login
- capability framework (i.e., they are not <emphasis>really</emphasis>
- a special case of login capabilities).</para>
-
- <para>And so, without further ado, below are the most commonly used
- resource limits (the rest, along with all the other login
- capabilities, may be found in &man.login.conf.5;).</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>coredumpsize</literal></term>
-
- <listitem>
- <para>The limit on the size of a core file generated by a program
- is, for obvious reasons, subordinate to other limits on disk
- usage (e.g., <literal>filesize</literal>, or disk quotas).
- Nevertheless, it is often used as a less-severe method of
- controlling disk space consumption: since users do not generate
- core files themselves, and often do not delete them, setting this
- may save them from running out of disk space should a large
- program (e.g., Emacs) crash.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>cputime</literal></term>
-
- <listitem>
- <para>This is the maximum amount of CPU time a user's process may
- consume. Offending processes will be killed by the kernel.
-
- <note>
- <para>This is a limit on CPU <emphasis>time</emphasis>
- consumed, not percentage of the CPU as displayed in some
- fields by &man.top.1; and &man.ps.1;. A limit on the
- latter is, at the time of this writing, not possible, and
- would be rather useless: a compiler&mdash;probably a
- legitimate task&mdash;can easily use almost 100% of a CPU
- for some time.</para>
- </note>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>filesize</literal></term>
-
- <listitem>
- <para>This is the maximum size of a file the user may possess.
- Unlike <link linkend="quotas">disk quotas</link>, this limit is
- enforced on individual files, not the set of all files a user
- owns.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>maxproc</literal></term>
-
- <listitem>
- <para>This is the maximum number of processes a user may be
- running. This includes foreground and background processes
- alike. For obvious reasons, this may not be larger than the
- system limit specified by the <literal>kern.maxproc</literal>
- sysctl. Also note that setting this too small may hinder a
- user's productivity: it is often useful to be logged in
- multiple times or execute pipelines. Some tasks, such as
- compiling a large program, also spawn multiple processes (e.g.,
- &man.make.1;, &man.cc.1;, and other intermediate
- preproccesors).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>memorylocked</literal></term>
-
- <listitem>
- <para>This is the maximum amount a memory a process may have
- requested to be locked into main memory (e.g., see
- &man.mlock.2;). Some system-critical programs, such as
- &man.amd.8;, do this so that their getting swapped out does not
- contribute to a system's thrashing in time of trouble.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>memoryuse</literal></term>
-
- <listitem>
- <para>This is the maximum amount of memory a process may consume
- at any given time. It includes both core memory and swap
- usage. This is not a catch-all limit for restricting memory
- consumption, but it is a good start.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>openfiles</literal></term>
-
- <listitem>
- <para>This is the maximum amount of files a process may have
- open. In FreeBSD, files are also used to represent sockets and
- IPC channels; thus, be careful not to set this too low. The
- system-wide limit for this is defined by the
- <literal>kern.maxfiles</literal> sysctl.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>sbsize</literal></term>
-
- <listitem>
- <para>This is the limit on the amount of network memory, and thus
- mbufs, a user may consume. This originated as a response to an
- old DoS attack by creating a lot of sockets, but can be
- generally used to limit network communications.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>stacksize</literal></term>
-
- <listitem>
- <para>This is the maximum size a process' stack may grow to.
- This alone is not sufficient to limit the amount of memory a
- program may use; consequently, it should be used in conjunction
- with other limits.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>There are a few other things to remember when setting resource
- limits. Following are some general tips, suggestions, and
- miscellaneous comments.</para>
-
- <itemizedlist>
- <listitem>
- <para>Processes started at system startup by
- <filename>/etc/rc</filename> are assigned to the
- <literal>daemon</literal> login class.</para>
- </listitem>
-
- <listitem>
- <para>Although the <filename>/etc/login.conf</filename> that comes
- with the system is a good source of reasonable values for most
- limits, only you, the administrator, can know what is appropriate
- for your system. Setting a limit too high may open your system
- up to abuse, while setting it too low may put a strain on
- productivity.</para>
- </listitem>
-
- <listitem>
- <para>Users of the X Window System (X11) should probably be granted
- more resources than other users. X11 by itself takes a lot of
- resources, but it also encourages users to run more programs
- simultaneously.</para>
- </listitem>
-
- <listitem>
- <para>Remember that many limits apply to individual processes, not
- the user as a whole. For example, setting openfiles to 50 means
- that each process the user runs may open up to 50 files. Thus,
- the gross amount of files a user may open is the value of
- <literal>openfiles</literal> multiplied by the value of
- <literal>maxproc</literal>. This also applies to memory
- consumption.</para>
- </listitem>
- </itemizedlist>
-
- <para>For further information on resource limits and login classes and
- capabilities in general, please consult the relevant manual pages:
- &man.cap.mkdb.1;, &man.getrlimit.2;, &man.login.conf.5;.</para>
- </sect1>
-
- <sect1 id="users-personalizing">
- <title>Personalizing Users</title>
-
- <para>Localization is an environment set up by the system
- administrator or user to accommodate different languages,
- character sets, date and time standards, and so on. This is
- discussed in the <link linkend="l10n">localization</link>
- chapter.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/handbook/x11/chapter.sgml b/en_US.ISO8859-1/books/handbook/x11/chapter.sgml
deleted file mode 100644
index 03aef28e75..0000000000
--- a/en_US.ISO8859-1/books/handbook/x11/chapter.sgml
+++ /dev/null
@@ -1,1400 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/x11/chapter.sgml,v 1.13 2000/10/25 03:02:20 murray Exp $
--->
-
-<chapter id="x11">
- <title>The X Window System</title>
-
- <para><emphasis>This chapter has been graciously donated by &a.grog;
- from his book, <ulink
- url="http://www.wccdrom.com/titles/freebsd/bsdcomp_bkx.phtml">The
- Complete FreeBSD</ulink>, and remains copyright of him.
- Modifications for the handbook made by &a.jim;. The section on
- fonts in XFree86 was contributed by &a.murray;.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
- <para>The following chapter will cover installing and configuring X11
- on your system. For more information on X11 and to see whether your
- video card is supported, check the <ulink
- url="http://www.xfree86.org/">XFree86</ulink> web site.</para>
- </sect1>
-
- <sect1 id="x-overview">
- <title>Overview</title>
-
- <para>FreeBSD comes with XFree86, a port of X11R6 that supports
- several versions of Intel-based UNIX. This chapter describes how
- to set up your XFree86 server. It is based on material supplied
- with the FreeBSD release, specifically the files README.FreeBSD
- and README.Config in the directory
- <filename>/usr/X11R6/lib/X11/doc</filename>. If you find any
- discrepancy, the material in those files will be more up-to-date
- than this description. In addition, the file
- <filename>/usr/X11R6/lib/X11/doc/RELNOTES</filename> contains
- OS-independent information about the current release.</para>
-
- <para>X uses a lot of memory. In order to run X, your system should
- have an absolute minimum of 8 MB of memory, but performance will be
- painful with so little memory. A more practical minimum is 16 MB,
- and you can improve performance by adding more memory. If you use
- X intensively, you will continue seeing performance improvement by
- increasing to as much as 128 MB of RAM.</para>
-
- <para>There is lots of useful information in the rest of this chapter,
- but maybe you are not interested in information right now. You just
- want to get your X server up and running. However, be warned:</para>
-
- <warning>
- <para>An incorrect installation can burn out your monitor or your
- video board.</para>
- </warning>
-
- <para>However, if you know you are in spec, and you have a standard
- Super VGA board and a good multi-frequency monitor, then you can
- probably get things up and running without reading this
- chapter.</para>
- </sect1>
-
- <sect1 id="x-install">
- <title>Installing XFree86</title>
-
- <para>The easiest way to install XFree86 is with the sysinstall
- program, either when you are installing the system, or later by
- starting the program <command>/stand/sysinstall</command>. In the
- rest of this chapter, we will look at what makes up the
- distribution, and we will also take a look at manually installing
- X11.</para>
-
- <sect2>
- <title>The XFree86 Distribution</title>
-
- <para>XFree86 is distributed as a bewildering number of archives.
- In the following section, we will take a look at what you should
- install. Do not worry too much, though; if you cannot decide
- what to pick and you have 200MB of disk space free, it's safe to
- unpack everything.</para>
-
- <para>At a minimum you need to unpack the archives in the
- following table and at least one server that matches your VGA
- board. You will need 10Mb for the minimum required run-time
- binaries only, and between 1.7 and 3 MB for the server.</para>
-
- <para>Below is a table of the required components.</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Archive</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>Xbin.tgz</filename></entry>
- <entry>All the executable X client applications and shared
- libraries.</entry>
- </row>
-
- <row>
- <entry><filename>Xfnts.tgz</filename></entry>
- <entry>The misc and 75 dpi fonts.</entry>
- </row>
-
- <row>
- <entry><filename>Xlib.tgz</filename></entry>
- <entry>Data files and libraries needed at runtime.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
- <title>The X Server</title>
-
- <para>In addition to the archives above, you need at least one
- server, which will take up about 3 MB of disk. The choice
- depends primarily on what kind of display board you have. The
- default server name is <filename>/usr/X11R6/bin/X</filename>, and
- it is a link to a specific server binary
- <filename>/usr/X11R6/bin/XF86_xxxx</filename>. You will find the
- server archives for the standard PC architecture in
- <filename>/cdrom/XF86336/Servers</filename>, and the servers for
- the Japanese PC98 architecture in
- <filename>/cdrom/XF86336/PC98-Servers</filename> if you have the
- CD set. Alternatively, they are available on our FTP site at
- <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/Servers/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/Servers/</ulink> or <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/PC98-Servers/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/PC98-Servers/</ulink></para>
-
- <para>Available X servers for the standard PC architecture:</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Archive</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>X8514.tgz</filename></entry>
- <entry>8-bit color for IBM 8514 and true
- compatibles.</entry>
- </row>
-
- <row>
- <entry><filename>XAGX.tgz</filename></entry>
- <entry>8 and 16-bit color for AGX and XGA boards.</entry>
- </row>
-
- <row>
- <entry><filename>XI128.tgz</filename></entry>
- <entry>8 and 16-bit color for I128 boards.</entry>
- </row>
-
- <row>
- <entry><filename>XMa32.tgz</filename></entry>
- <entry>8 and 16-bit color for ATI Mach32 boards.</entry>
- </row>
-
- <row>
- <entry><filename>XMa64.tgz</filename></entry>
- <entry>8, 16, and 32-bit color fot ATI Mach64
- boards.</entry>
- </row>
-
- <row>
- <entry><filename>XMa8.tgz</filename></entry>
- <entry>8-bit color for ATI Mach8 boards.</entry>
- </row>
-
- <row>
- <entry><filename>XMono.tgz</filename></entry>
- <entry>1-bit monochrome for VGA, Super-VGA, Hercules, and
- others.</entry>
- </row>
-
- <row>
- <entry><filename>XP9K.tgz</filename></entry>
- <entry>8, 16, and 32-bit color for Weitek P9000 boards
- (Diamond Viper).</entry>
- </row>
-
- <row>
- <entry><filename>XS3.tgz</filename></entry>
- <entry>8, 16, and 32-bit color for S3 boards.</entry>
- </row>
-
- <row>
- <entry><filename>XS3V.tgz</filename></entry>
- <entry>8 and 16-bit color for S3 ViRGE boards.</entry>
- </row>
-
- <row>
- <entry><filename>XSVGA.tgz</filename></entry>
- <entry>&gt;=8-bit color for Super-VGA cards.</entry>
- </row>
-
- <row>
- <entry><filename>XVG16.tgz</filename></entry>
- <entry>4-bit color for VGA and Super-VGA cards.</entry>
- </row>
-
- <row>
- <entry><filename>XW32.tgz</filename></entry>
- <entry>8-bit color for ET4000/W32, /W32i, /W32p, and
- ET6000 cards.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Available X servers for the Japanese PC98 architecture:</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Archive</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>X9GAN.tgz</filename></entry>
- <entry>8-bit color for PC98 GA-98NB/WAP boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9GA9.tgz</filename></entry>
- <entry>8, 16, and 32-bit color for PC98 S3 GA-968
- boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9480.tgz</filename></entry>
- <entry>8-bit color for PC98 PEGC</entry>
- </row>
-
- <row>
- <entry><filename>X9NKV.tgz</filename></entry>
- <entry>8-bit color for PC98 NEC-CIRRUS/EPSON NKV/NKV2
- boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9WBS.tgz</filename></entry>
- <entry>8-bit color for PC98 WAB-S boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9WEP.tgz</filename></entry>
- <entry>8-bit color for PC98 WAB-EP boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9WSN.tgz</filename></entry>
- <entry>8-bit color for PC98 WSN-A2F boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9EGC.tgz</filename></entry>
- <entry>4-bit color for PC98 EGC.</entry>
- </row>
-
- <row>
- <entry><filename>X9TGU.tgz</filename></entry>
- <entry>8 and 16-bit color for PC98 Trident Cyber9320/9680
- boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9NS3.tgz</filename></entry>
- <entry>8 and 16-bit color for PC98 NEC S3 boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9SPW.tgz</filename></entry>
- <entry>8 and 16-bit color for PC98 S3 PW/PCSKB
- boards.</entry>
- </row>
-
- <row>
- <entry><filename>X9LPW.tgz</filename></entry>
- <entry>8 and 16-bit color for PC98 S3 PW/LB boards.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Each of these servers includes a manual page which contains
- details of supported chipsets and server-specific configuration
- options.</para>
-
- <para>There are also a number of archives are provided for X
- programmers:</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Archive</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>Xprog.tgz</filename></entry>
- <entry>Config, <filename>lib*.a</filename>, and
- <filename>*.h</filename> files needed for compiling
- clients.</entry>
- </row>
-
- <row>
- <entry><filename>Xctrb.tgz</filename></entry>
- <entry>Contributed sources.</entry>
- </row>
-
- <row>
- <entry><filename>Xlk98.tgz</filename></entry>
- <entry>The <quote>link kit</quote> for building servers,
- Japanese PC98 version.</entry>
- </row>
-
- <row>
- <entry><filename>Xlkit.tgz</filename></entry>
- <entry>The <quote>link kit</quote> for building servers,
- normal PC architecture.</entry>
- </row>
-
- <row>
- <entry><filename>Xsrc-1.tgz</filename></entry>
- <entry>Part 1 of the complete sources.</entry>
- </row>
-
- <row>
- <entry><filename>Xsrc-2.tgz</filename></entry>
- <entry>Part 2 of the complete sources.</entry>
- </row>
-
- <row>
- <entry><filename>Xsrc-3.tgz</filename></entry>
- <entry>Part 3 of the complete sources.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>You will need <filename>Xprog.tgz</filename> if you intend
- to install ports of X software.</para>
- </note>
-
- <para>XFree86 also includes a number of optional parts, such as
- documentation, and setup programs.</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Archive</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>Xdoc.tgz</filename></entry>
- <entry>READMEs</entry>
- </row>
-
- <row>
- <entry><filename>Xjdoc.tgz</filename></entry>
- <entry>READMEs in Japanese.</entry>
- </row>
-
- <row>
- <entry><filename>Xps.tgz</filename></entry>
- <entry>READMEs in PostScript.</entry>
- </row>
-
- <row>
- <entry><filename>Xhtml.tgz</filename></entry>
- <entry>READMEs in HTML.</entry>
- </row>
-
- <row>
- <entry><filename>Xman.tgz</filename></entry>
- <entry>Manual pages.</entry>
- </row>
-
- <row>
- <entry><filename>Xcfg.tgz</filename></entry>
- <entry>Customizable <command>xinit</command> and
- <command>xdm</command> runtime configuration
- files.</entry>
- </row>
-
- <row>
- <entry><filename>Xset.tgz</filename></entry>
- <entry>The <filename>X86Setup</filename> utility; a
- graphical version of the <filename>xf86config</filename>
- utility.</entry>
- </row>
-
- <row>
- <entry><filename>Xjset.tgz</filename></entry>
- <entry>The <filename>XF86Setup</filename> utility,
- Japanese version, for the normal PC architecture.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><filename>XF86Setup</filename> is a graphical mode setup
- program for XFree86, and you may prefer it to the standard setup
- program <filename>xf86config</filename>. You do not need any
- special archives for <filename>xf86config</filename>; it is
- included in <filename>Xbin.tgz</filename>.</para>
-
- <para>The first time you install, you will need
- <filename>Xcfg.tgz</filename> to create your initial configuration
- files. Do not use it when upgrading; it overwrites your
- configuration files.</para>
-
- <para>There are also additional fonts that are available with
- XFree86:</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Archive</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>Xf100.tgz</filename></entry>
- <entry>100 dpi fonts.</entry>
- </row>
-
- <row>
- <entry><filename>Xfscl.tgz</filename></entry>
- <entry>Speedo and Type1 fonts.</entry>
- </row>
-
- <row>
- <entry><filename>Xfnon.tgz</filename></entry>
- <entry>Japanese, Chinese, and other non-english
- fonts.</entry>
- </row>
-
- <row>
- <entry><filename>Xfcyr.tgz</filename></entry>
- <entry>Cyrillic fonts.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Unlike the X servers described above, the archives for the
- following servers are all in the main directory.</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Archive</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>Xfsrv.tgz</filename></entry>
- <entry>The font server.</entry>
- </row>
-
- <row>
- <entry><filename>Xnest.tgz</filename></entry>
- <entry>A nested server running as a client window on
- another display.</entry>
- </row>
-
- <row>
- <entry><filename>Xprt.tgz</filename></entry>
- <entry>The print server.</entry>
- </row>
-
- <row>
- <entry><filename>Xvfb.tgz</filename></entry>
- <entry>The Virtual Framebuffer X server, which renders
- into memory or an mmapped file.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
- <title>Installing XFree86 Manually</title>
-
- <para>If you do not use sysinstall to install X, you need to perform
- a number of steps:</para>
-
- <procedure>
- <step>
- <para>Create the directories and unpack the required
- archives.</para>
- </step>
-
- <step>
- <para>Choose and install an X server.</para>
- </step>
-
- <step>
- <para>Set up the environment to be able to access X.</para>
- </step>
-
- <step>
- <para>Find a virtual terminal in which to run X.</para>
- </step>
-
- <step>
- <para>Configure X for your hardware.</para>
- </step>
- </procedure>
-
- <para>This sounds like a lot of work, but if you approach it
- methodically, it is not too bad. In the rest of this section,
- we will look at each step in turn.</para>
-
- <sect3>
- <title>Unpacking the Archives</title>
-
- <para>You must unpack the archives as root, since a number of
- the executables are set-user-id (they run as root even when
- started by other users). If you unpack the server as an
- ordinary user, it may abort when you try to run it. You must
- also use a umask value of 022 (permissions rwxr-xr-x), because
- the X server requires special permissions.</para>
-
- <screen>&prompt.user; <userinput>su</userinput>
-Password:
-&prompt.root; <userinput>umask 022</userinput></screen>
-
- <para>If you do not have enough space in the
- <filename>/usr</filename> file system, create a directory on
- another partition and symlink it to /usr. For example, if you
- have a file system <filename>/home</filename> with adequate
- space, you could do:</para>
-
- <screen>&prompt.root; <userinput>cd /home</userinput>
-&prompt.root; <userinput>mkdir X11R6</userinput>
-&prompt.root; <userinput>ln -s /home/X11R6 /usr/X11R6</userinput></screen>
-
- <para>Next, decide which archives you want to install. For a
- minimal installation, choose <filename>Xbin.tgz</filename>,
- <filename>Xfnts.tgz</filename>, <filename>Xlib.tgz</filename>,
- and <filename>Xcfg.tgz</filename>. If you have already
- configured X for your hardware, you can omit
- <filename>Xcfg.tgz</filename>.</para>
-
- <para>If you are using sh, unpack like this:</para>
-
- <screen>&prompt.root; <userinput>mkdir -p /usr/X11R6</userinput>
-&prompt.root; <userinput>cd /usr/X11R6</userinput>
-&prompt.root; <userinput>for i in bin fnts lib cfg; do</userinput>
-&prompt.root; <userinput> tar xzf X$i.tgz</userinput>
-&prompt.root; <userinput>done</userinput></screen>
-
- <para>If you are using csh, enter:</para>
-
- <screen>&prompt.root; <userinput>mkdir -p /usr/X11R6</userinput>
-&prompt.root; <userinput>cd /usr/X11R6</userinput>
-&prompt.root; <userinput>foreach i (bin fnts lib cfg)</userinput>
-<prompt>?</prompt> <userinput> tar xzf X$i.tgz</userinput>
-<prompt>?</prompt> <userinput>end</userinput></screen>
- </sect3>
-
- <sect3>
- <title>Installing the Server</title>
-
- <para>Choose a server archive corresponding to your VGA board.
- If the table in the section above does not give you enough
- information, check the server man pages,
- <filename>/usr/X11R6/man/man1/XF86_*</filename>, which list
- the VGA chipsets supported by each server. For example, if
- you have an ET4000 based board you will use the
- <filename>XF86_SVGA</filename> server. In this case you
- would enter:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/X11R6</userinput>
-&prompt.root; <userinput>tar xzf XSVGA.tgz [substitute your server name here]</userinput></screen>
- </sect3>
-
- <sect3>
- <title>Setting up the environment</title>
-
- <para>Next, you may wish to create a symbolic link
- <filename>/usr/X11/bin/X</filename> that points to the server
- that matches your video board. In this example, it is the
- <filename>XF86_SVGA</filename> server:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/X11R6/bin</userinput>
-&prompt.root; <userinput>rm X</userinput>
-&prompt.root; <userinput>ln -s XF86_SVGA X</userinput></screen>
-
- <para>X needs this symbolic link in order to be able to work
- correctly, but you have the option of setting it when you run
- <filename>xf86config</filename> &ndash; see below.</para>
-
- <para>Next, check that the directory
- <filename>/usr/X11R6/bin</filename> is in the default path for
- sh in <filename>/etc/profile</filename> and for csh in
- <filename>/etc/csh.login</filename>, and add it if it is not.
- It is best to do this with an editor, but if you want to take
- a shortcut, you can enter:</para>
-
- <screen>&prompt.root; <userinput>echo 'PATH=$PATH:/usr/X11R6/bin' &gt;&gt;/etc/profile</userinput></screen>
-
- <para>or:</para>
-
- <screen>&prompt.root; <userinput>echo 'set path = ($path /usr/X11R6/bin)' &gt;&gt;/etc/csh.login</userinput></screen>
-
- <para>Alternatively, make sure everybody who uses X puts
- <filename>/usr/X11R6/bin</filename> in their shell's
- <envar>PATH</envar> variable.</para>
-
- <para>Next, invoke ldconfig to put the shared libraries in
- <filename>ld.so</filename>'s cache:</para>
-
- <screen>&prompt.root; <userinput>ldconfig -m /usr/X11R6/lib</userinput></screen>
-
- <para>You can omit invoking <command>ldconfig</command> if you
- plan to reboot before using X.</para>
-
- <para>You do not need to uncompress the font files, but if you
- do, you must run <command>mkfontdir</command> in the
- corresponding font directory, otherwise your server will abort
- with the message <quote>could not open default font
- `fixed'</quote>.</para>
- </sect3>
-
- <sect3>
- <title>Assigning a virtual terminal to X</title>
-
- <para>Next, make sure you have a spare virtual console which is
- running a getty. First check how many virtual consoles you
- have:</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep virtual</userinput>
-sc0: VGA color &lt;16 virtual consoles, flags=0x0&gt;</screen>
-
- <para>Then check <filename>/etc/ttys</filename> to make sure
- there is at least one virtual terminal (ttyvxx device) which
- does not have a getty enabled. Look for the keyword
- <literal>off</literal>:</para>
-
- <screen>&prompt.root; <userinput>grep ttyv /etc/ttys</userinput>
-ttyv0 "/usr/libexec/getty Pc" cons25 on secure
-ttyv1 "/usr/libexec/getty Pc" cons25 on secure
-ttyv2 "/usr/libexec/getty Pc" cons25 on secure
-ttyv3 "/usr/libexec/getty Pc" cons25 off secure</screen>
-
- <para>In this case, <filename>/dev/ttyv3</filename> is
- available, if your kernel has least 4 VTs. If not, either
- disable a getty in <filename>/etc/ttys</filename> by
- changing on to off, or build another kernel with more virtual
- terminals.</para>
- </sect3>
-
- <sect3>
- <title>Configuring X for Your Hardware</title>
-
- <para>After installing the X software, you will need to
- customize the file <filename>XF86Config</filename>, which
- tells the X server about your hardware and how you want to
- run it.</para>
-
- <para>In order to set up <filename>XF86Config</filename>, you
- will need the following hardware information:</para>
-
- <itemizedlist>
- <listitem>
- <para>Your mouse type, the bit rate if it is a serial mouse,
- and the name of the device to which it is connected. This
- will typically be <filename>/dev/ttyd0</filename> or
- <filename>/dev/ttyd1</filename> for a serial mouse,
- <filename>/dev/psm0</filename> for a PS/2 mouse, or
- <filename>/dev/mse0</filename> for a bus mouse.</para>
- </listitem>
-
- <listitem>
- <para>The type of the video board and the amount of display
- memory. If it is a no-name board, establish what VGA chip
- set it uses.</para>
- </listitem>
-
- <listitem>
- <para>The parameters of your monitor; vertical and
- horizontal frequency.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Identifying the hardware</title>
-
- <para>How do you decide what your hardware is? The manufacturer
- should tell you, but very often the information you get about
- your display board and monitor is pitiful; <quote>Super VGA
- board with 76 Hz refresh rate and 16,777,216 colors</quote>.
- This tells you the maximum pixel depth (24 bits &ndash; - the
- number of colors is 2(pixel depth)), but it doesn't tell you
- anything else about the display board.</para>
-
- <para>As we will see later, the real parameters you need to know
- are the maximum horizontal frequency, the dot clock range, the
- chipset and the amount of display memory.</para>
-
- <para>You could be unlucky trying to get some of this
- information, but you can get some with the
- <command>SuperProbe</command> program. It should always be
- able to tell you the chipset and the amount of memory on
- board.</para>
-
- <para>Occasionally <command>SuperProbe</command> can crash your
- system. Make sure you are not doing anything important when
- you run it. Running SuperProbe looks like this:</para>
-
- <screen>&prompt.root; <userinput>SuperProbe</userinput>
-(warnings and acknowledgments omitted)
-First video: Super-VGA
- Chipset: Tseng ET4000 (Port Probed)
- Memory: 1024 Kbytes
- RAMDAC: Generic 8-bit pseudo-color DAC
- (with 6-bit wide lookup tables (or in 6-bit mode))</screen>
-
- <para><command>SuperProbe</command> is very finicky about
- running at all, and you will often get messages like:</para>
-
- <screen>SuperProbe: Cannot be run while an X server is running
-SuperProbe: If an X server is not running, unset $DISPLAY and try again
-SuperProbe: Cannot open video</screen>
-
- <para>In other words, even if no X server is running,
- <command>SuperProbe</command> will not work if you have the
- environment variable <envar>DISPLAY</envar> set. How do you
- unset it? With Bourne-style shells, you enter:</para>
-
- <screen>&prompt.root; <userinput>unset DISPLAY</userinput></screen>
-
- <para>In the C shell, you enter:</para>
-
- <screen>&prompt.root; <userinput>unsetenv DISPLAY</userinput></screen>
- </sect3>
-
- <sect3>
- <title>Running <command>xf86config</command></title>
-
- <para>The easy way to create your configuration file is with one
- of the utilities <command>xf86config</command> (note the lower
- case name) or <command>XF86Setup</command>. Both lead you
- through the configuration step by step.
- <command>xf86config</command> runs in character mode, while
- <command>XF86Setup</command> runs in a graphical mode.
- <command>XF86Setup</command> can have problems with unusual
- hardware, so I personally prefer
- <command>xf86config</command>.</para>
-
- <para>You can also use sysinstall, but this does not change
- much; <application>sysinstall</application> just starts
- <command>xf86config</command> for you, and it is easier to
- start it directly. In this section, we will use an example to
- illustrate configuration via <command>xf86config</command>.
- We are installing X for an ancient Diamond SpeedStar with 1 MB
- of display memory, a Logitech MouseMan mouse, and an ADI
- MicroScan 5AP monitor. The mouse is connected to the system
- via the first serial port,
- <filename>/dev/ttyd0</filename>.</para>
-
- <para>To run <command>xf86config</command>, type in the name. If
- <filename>/usr/X11R6/bin</filename> is included in your
- <envar>PATH</envar> environment variable, you just need to type
- <command>xf86config</command>. If it is not, you need to type
- out the full path to <command>xf86config</command>, like
- so:</para>
-
- <screen>&prompt.root; <userinput>/usr/X11R6/bin/xf86config</userinput></screen>
-
- <para>This program will create a basic
- <filename>XF86Config</filename>file, based on menu selections
- you make.</para>
-
- <para>The <filename>XF86Config</filename> file usually resides
- in <filename>/usr/X11R6/lib/X11</filename> or
- <filename>/etc</filename>. A sample
- <filename>XF86Config</filename> file is supplied with XFree86;
- it is configured for a standard VGA card and monitor with
- 640x480 resolution. This program will ask for a pathname when
- it is ready to write the file.</para>
-
- <para>You can either take the sample
- <filename>XF86Config</filename> as a base and edit it for your
- configuration, or let this program produce a base
- <filename>XF86Config</filename> file for your configuration
- and fine-tune it. Refer to
- <filename>/usr/X11R6/lib/X11/doc/README.Config</filename> for
- a detailed overview of the configuration process.</para>
-
- <para>For accelerated servers (including accelerated drivers in
- the SVGA server), there are many chipset and card-specific
- options and settings. This program does not know about these.
- On some configurations some of these settings must be
- specified. Refer to the server man pages and chipset-specific
- READMEs.</para>
-
- <para>Before continuing with this program, make sure you know
- the chipset and amount of video memory on your video card.
- <command>SuperProbe</command> can help with this. It is also
- helpful if you know what server you want to run.</para>
-
- <screen>Press enter to continue, or ctrl-c to abort. ENTER
-
-First specify a mouse protocol type. Choose one from the following list:
-
- 1. Microsoft compatible (2-button protocol)
- 2. Mouse Systems (3-button protocol)
- 3. Bus Mouse
- 4. PS/2 Mouse
- 5. Logitech Mouse (serial, old type, Logitech protocol)
- 6. Logitech MouseMan (Microsoft compatible)
- 7. MM Series
- 8. MM HitTablet
- 9. Microsoft IntelliMouse</screen>
-
- <para>If you have a two-button mouse, it is most likely of type
- 1, and if you have a three-button mouse, it can probably
- support both protocol 1 and 2. There are two main varieties
- of the latter type; mice with a switch to select the protocol,
- and mice that default to 1 and require a button to be held at
- boot-time to select protocol 2. Some mice can be convinced to
- do 2 by sending a special sequence to the serial port (see the
- ClearDTR/ClearRTS options).</para>
-
- <screen>Enter a protocol number: 6 Logitech MouseMan
-
-You have selected a Logitech MouseMan type mouse. You might want to enable
-ChordMiddle which could cause the third button to work.
-
-Please answer the following question with either 'y' or 'n'.
-Do you want to enable ChordMiddle? n</screen>
-
- <para>You definitely want to enable the third button on your
- mouse, since many X clients use it. With a genuine Logitech
- mouse, however, you don't need to enable
- <literal>ChordMiddle</literal> in order to use the button. If
- you find that the third button does not work when you start X,
- you can enable <literal>ChordMiddle</literal> by editing the
- configuration file &ndash; it is much easier and less
- error-prone than re-running <command>XF86Setup</command>.</para>
-
- <para>Continuing through the setup:</para>
-
- <screen>If your mouse has only two buttons, it is recommended that you enable Emulate3Buttons.
-
-Please answer the following question with either 'y' or 'n'.
-Do you want to enable Emulate3Buttons? n
-
-Now give the full device name that the mouse is connected to, for example
-/dev/tty00. Just pressing enter will use the default, /dev/mouse.
-
-Mouse device: /dev/ttyd1</screen>
-
- <para>Be very careful about this entry. You must specify the
- correct name for the device to which the mouse is connected.
- <command>xf86config</command> is not specific to FreeBSD, and
- the suggested example is just plain wrong for FreeBSD. Use
- the names <filename>/dev/ttyd0</filename> through
- <filename>/dev/ttyd3</filename> for serial mice,
- <filename>/dev/psm0</filename> for PS/2 mice or
- <filename>/dev/mse0</filename> for a bus mouse.</para>
-
- <para>Continuing, we see:</para>
-
- <screen>Beginning with XFree86 3.1.2D, you can use the new X11R6.1
-XKEYBOARD extension to manage the keyboard layout. If you answer 'n' to the
-following question, the server will use the old method, and you have to
-adjust your keyboard layout with xmodmap.
-
-Please answer the following question with either 'y' or 'n'.
-Do you want to use XKB? y
-
-The following dialogue will allow you to select from a list of already
-preconfigured keymaps. If you don't find a suitable keymap in the list,
-the program will try to combine a keymap from additional information you
-are asked then. Such a keymap is by default untested and may require
-manual tuning. Please report success or required changes for such a
-keymap to XFREE86@XFREE86.ORG for addition to the list of preconfigured
-keymaps in the future.
-
-Press enter to continue, or ctrl-c to abort.
-
-List of preconfigured keymaps:
-
- 1 Standard 101-key, US encoding
- 2 Microsoft Natural, US encoding
- 3 KeyTronic FlexPro, US encoding
- 4 Standard 101-key, US encoding with ISO9995-3 extensions
- 5 Standard 101-key, German encoding
- 6 Standard 101-key, French encoding
- 7 Standard 101-key, Thai encoding
- 8 Standard 101-key, Swiss/German encoding
- 9 Standard 101-key, Swiss/French encoding
- 10 None of the above
-
-Enter a number to choose the keymap.
-
-1 Choose the standard US keyboard</screen>
-
- <para>Now we want to set the specifications of the monitor. The
- two critical parameters are the vertical refresh rate, which
- is the rate at which the the whole screen is refreshed, and
- most importantly the horizontal sync rate, which is the rate
- at which scanlines are displayed.</para>
-
- <para>The valid range for horizontal sync and vertical sync
- should be documented in the manual of your monitor. If in
- doubt, check the monitor database
- <filename>/usr/X11R6/lib/X11/doc/Monitors</filename> to see if
- your monitor is there.</para>
-
- <screen>Press enter to continue, or ctrl-c to abort. ENTER
-
-You must indicate the horizontal sync range of your monitor. You can either
-select one of the predefined ranges below that correspond to industry-
-standard monitor types, or give a specific range.
-
-It is VERY IMPORTANT that you do not specify a monitor type with a horizontal
-sync range that is beyond the capabilities of your monitor. If in doubt,
-choose a conservative setting.
-
- hsync in kHz; monitor type with characteristic modes
- 1 31.5; Standard VGA, 640x480 @@ 60 Hz
- 2 31.5 - 35.1; Super VGA, 800x600 @@ 56 Hz
- 3 31.5, 35.5; 8514 Compatible, 1024x768 @@ 87 Hz interlaced (no 800x600)
- 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @@ 87 Hz interlaced, 800x600 @@ 56 Hz
- 5 31.5 - 37.9; Extended Super VGA, 800x600 @@ 60 Hz, 640x480 @@ 72 Hz
- 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @@ 60 Hz, 800x600 @@ 72 Hz
- 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @@ 70 Hz
- 8 31.5 - 64.3; Monitor that can do 1280x1024 @@ 60 Hz
- 9 31.5 - 79.0; Monitor that can do 1280x1024 @@ 74 Hz
-10 31.5 - 82.0; Monitor that can do 1280x1024 @@ 76 Hz
-11 Enter your own horizontal sync range
-
-Enter your choice (1-11):</screen>
-
- <para>Unfortunately, our monitor is not mentioned in the file
- <filename>/usr/X11R6/lib/X11/doc/Monitors</filename>, but by
- chance the manual does specify the frequency range in the
- Technical Data section. The horizontal frequency range is
- from 30 to 64 kHz, and the vertical frequency range is from
- 50 to 100 Hz. The horizontal frequency range is almost
- exactly covered by choice 8, but that setting threatens to go
- 0.3 kHz higher in frequency than the technical data state. Do
- you want to risk it? Doing so will most likely not be a
- problem, since it is unlikely that the monitor will die at
- such a small deviation from the specs, and it is also unlikely
- that your <filename>XF86Config</filename> will actually
- generate a horizontal frequency between 64.0 and 64.3 kHz.
- However, there is no need to take even this slight risk. Just
- specify the real values:</para>
-
- <screen>Enter your choice (1-11): 11
-
-Please enter the horizontal sync range of your monitor, in the format used
-in the table of monitor types above. You can either specify one or more
-continuous ranges (e.g. 15-25, 30-50), or one or more fixed sync
-frequencies.
-
-Horizontal sync range: 30-64</screen>
-
- <para>Next, we select the vertical frequency range:</para>
-
- <screen>You must indicate the vertical sync range of your monitor.
-You can either select one of the predefined ranges below that correspond
-to industry-standard monitor types, or give a specific range. For
-interlaced modes, the number that counts is the high one (e.g., 87 Hz
-rather than 43 Hz).
-
- 1 50-70
- 2 50-90
- 3 50-100
- 4 40-150
- 5 Enter your own vertical sync range
-
-Enter your choice: 3 exactly the range of the monitor</screen>
-
- <para>The next step is to specify identification strings. You
- can think out names if you want, but unless you are juggling a
- lot of different hardware, you can let
- <command>xf86config</command> do it for you:</para>
-
- <screen>You must now enter a few identification/description strings,
-namely an identifier, a vendor name, and a model name. Just pressing enter
-will fill in default names.
-
-The strings are free-form, spaces are allowed.
-Enter an identifier for your monitor definition: ENTER
-Enter the vendor name of your monitor: ENTER
-Enter the model name of your monitor: ENTER</screen>
-
- <para>Next comes the choice of the video board. We have an
- elderly Diamond SpeedStar Plus with an ET4000 chip, and
- unknown Ramdac and Clock Chip. Let's see how we fare:</para>
-
- <screen>Now we must configure video card specific settings. At
-this point you can choose to make a selection out of a database of video
-card definitions. Because there can be variation in Ramdacs and clock
-generators even between cards of the same model, it is not sensible to
-blindly copy the settings (e.g., a Device section). For this reason,
-after you make a selection, you will still be asked about the components
-of the card, with the settings from the chosen database entry presented as
-a strong hint.
-
-The database entries include information about the chipset, what server to
-run, the Ramdac and ClockChip, and comments that will be included in the
-Device section. However, a lot of definitions only hint about what server
-to run (based on the chipset the card uses) and are untested.
-
-If you can't find your card in the database, there's nothing to worry about.
-You should only choose a database entry that is exactly the same model as
-your card; choosing one that looks similar is just a bad idea (e.g. a
-GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of
-hardware as can be).
-
-Do you want to look at the card database? y
- 0 2 the Max MAXColor S3 Trio64V+ S3 Trio64V+
- 1 928Movie S3 928
- 2 AGX (generic) AGX-014/15/16
- 3 ALG-5434(E) CL-GD5434
- 4 ASUS 3Dexplorer RIVA128
- 5 ASUS PCI-AV264CT ATI-Mach64
- 6 ASUS PCI-V264CT ATI-Mach64
- 7 ASUS Video Magic PCI V864 S3 864
- 8 ASUS Video Magic PCI VT64 S3 Trio64
- 9 AT25 Alliance AT3D
- 10 AT3D Alliance AT3D
- 11 ATI 3D Pro Turbo ATI-Mach64
- 12 ATI 3D Xpression ATI-Mach64
- 13 ATI 3D Xpression+ PC2TV ATI-Mach64
- 14 ATI 8514 Ultra (no VGA) ATI-Mach8
- 15 ATI All-in-Wonder ATI-Mach64
- 16 ATI Graphics Pro Turbo ATI-Mach64
- 17 ATI Graphics Pro Turbo 1600 ATI-Mach64
-
-Enter a number to choose the corresponding card definition.
-Press enter for the next page, q to continue configuration.
-ENTER</screen>
-
- <para>Dozens of board definitions come in alphabetic order.
- Finally we see:</para>
-
- <screen>108 DSV3325 S3 ViRGE
-109 DSV3326 S3 Trio64V+
-110 DataExpert DSV3325 S3 ViRGE
-111 DataExpert DSV3365 S3 Trio64V+
-112 Dell S3 805 S3 801/805
-113 Dell onboard ET4000 ET4000
-114 Diamond Edge 3D nv1
-115 Diamond Multimedia Stealth 3D 2000 S3 ViRGE
-116 Diamond Multimedia Stealth 3D 2000 PRO S3 ViRGE/DX
-117 Diamond SpeedStar (Plus) ET4000
-118 Diamond SpeedStar 24 ET4000
-119 Diamond SpeedStar 24X (not fully supported) WD90C31
-120 Diamond SpeedStar 64 CL-GD5434
-121 Diamond SpeedStar HiColor ET4000
-122 Diamond SpeedStar Pro (not SE) CL-GD5426/28
-123 Diamond SpeedStar Pro 1100 CL-GD5420/2/4/6/8/9
-124 Diamond SpeedStar Pro SE (CL-GD5430/5434) CL-GD5430/5434
-125 Diamond SpeedStar64 Graphics 2000/2200 CL-GD5434
-
-Enter a number to choose the corresponding card definition.
-Press enter for the next page, q to continue configuration.
-
-117
-
-Your selected card definition:
-
-Identifier: Diamond SpeedStar (Plus)
-Chipset: ET4000
-Server: XF86_SVGA
-
-Press enter to continue, or ctrl-c to abort.ENTER
-
-Now you must determine which server to run. Refer to the man pages and
-other documentation. The following servers are available (they may not
-all be installed on your system):
-
- 1 The XF86_Mono server. This a monochrome server that should work on any
- VGA-compatible card, in 640x480 (more on some SVGA chipsets).
- 2 The XF86_VGA16 server. This is a 16-color VGA server that should work on
- any VGA-compatible card.
- 3 The XF86_SVGA server. This is a 256 color SVGA server that supports
- a number of SVGA chipsets. On some chipsets it is accelerated or
- supports higher color depths.
- 4 The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8,
- XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 and
- XF86_S3V.
-
-These four server types correspond to the four different "Screen" sections in
-XF86Config (vga2, vga16, svga, accel).
-
- 5 Choose the server from the card definition, XF86_SVGA.
-
-Which one of these screen types do you intend to run by default (1-5)?</screen>
-
- <para>The system already chose XF86_SVGA for us. Do we want to
- change? We would need a good reason. In this case, we do not
- have a reason, so we will keep the server from the card
- definition:</para>
-
- <screen>Which one of these screen types do you intend to run by default (1-5)? 5
-
-The server to run is selected by changing the symbolic link 'X'. For example,
-the SVGA server.
-
-Please answer the following question with either 'y' or 'n'.
-Do you want me to set the symbolic link? y</screen>
-
- <para>All the programs that start X (xinit, startx, and xdm)
- start a program <filename>/usr/X11R6/bin/X</filename>. This
- symbolic link makes <filename>/usr/X11R6/bin/X</filename>
- point to your X server. If you don't have a link, you will
- not be able to start X.</para>
-
- <screen>Now you must give information about your video card. This
-will be used for the "Device" section of your video card in XF86Config.
-
-You must indicate how much video memory you have. It is probably a good
-idea to use the same approximate amount as that detected by the server you
-intend to use. If you encounter problems that are due to the used server
-not supporting the amount memory you have (e.g. ATI Mach64 is limited to
-1024K with the SVGA server), specify the maximum amount supported by the
-server.
-
-How much video memory do you have on your video card:
-
- 1 256K
- 2 512K
- 3 1024K
- 4 2048K
- 5 4096K
- 6 Other
-
-Enter your choice: 3
-
-You must now enter a few identification/description strings, namely an
-identifier, a vendor name, and a model name. Just pressing enter will fill
-in default names (possibly from a card definition).
-
-Your card definition is Diamond SpeedStar (Plus).
-
-The strings are free-form, spaces are allowed.
-Enter an identifier for your video card definition: ENTER
-You can simply press enter here if you have a generic card, or want to
-describe your card with one string.
-Enter the vendor name of your video card: ENTER
-Enter the model (board) name of your video card: ENTER
-
-Especially for accelerated servers, Ramdac, Dacspeed and ClockChip settings
-or special options may be required in the Device section.
-
-The RAMDAC setting only applies to the S3, AGX, W32 servers, and some
-drivers in the SVGA servers. Some RAMDAC's are auto-detected by the server.
-The detection of a RAMDAC is forced by using a Ramdac "identifier" line in
-the Device section. The identifiers are shown at the right of the following
-table of RAMDAC types:
-
- 1 AT&amp;T 20C490 (S3 and AGX servers, ARK driver) att20c490
- 2 AT&amp;T 20C498/21C498/22C498 (S3, autodetected) att20c498
- 3 AT&amp;T 20C409/20C499 (S3, autodetected) att20c409
- 4 AT&amp;T 20C505 (S3) att20c505
- 5 BrookTree BT481 (AGX) bt481
- 6 BrookTree BT482 (AGX) bt482
- 7 BrookTree BT485/9485 (S3) bt485
- 8 Sierra SC15025 (S3, AGX) sc15025
- 9 S3 GenDAC (86C708) (autodetected) s3gendac
- 10 S3 SDAC (86C716) (autodetected) s3_sdac
- 11 STG-1700 (S3, autodetected) stg1700
- 12 STG-1703 (S3, autodetected) stg1703
-
-
-Enter a number to choose the corresponding RAMDAC.
-Press enter for the next page, q to quit without selection of a RAMDAC.
-
-
-q We don't need this
-
-
-A Clockchip line in the Device section forces the detection of a
-programmable clock device. With a clockchip enabled, any required
-clock can be programmed without requiring probing of clocks or a
-Clocks line. Most cards don't have a programmable clock chip.
-Choose from the following list:
-
- 1 Chrontel 8391 ch8391
- 2 ICD2061A and compatibles (ICS9161A, DCS2824) icd2061a
- 3 ICS2595 ics2595
- 4 ICS5342 (similar to SDAC, but not completely compatible) ics5342
- 5 ICS5341 ics5341
- 6 S3 GenDAC (86C708) and ICS5300 (autodetected) s3gendac
- 7 S3 SDAC (86C716) s3_sdac
- 8 STG 1703 (autodetected) stg1703
- 9 Sierra SC11412 sc11412
-10 TI 3025 (autodetected) ti3025
-11 TI 3026 (autodetected) ti3026
-12 IBM RGB 51x/52x (autodetected) ibm_rgb5xx
-
-Just press enter if you don't want a Clockchip setting.
-What Clockchip setting do you want (1-12)? ENTER
-
-For most configurations, a Clocks line is useful since it prevents the slow
-and nasty sounding clock probing at server start-up. Probed clocks are
-displayed at server startup, along with other server and hardware
-configuration info. You can save this information in a file by running
-imprecise; some clocks may be slightly too high (varies per run).
-
-At this point I can run X -probeonly, and try to extract the clock information
-from the output. It is recommended that you do this yourself and add a clocks
-line (note that the list of clocks may be split over multiple Clocks lines) to
-your Device section afterwards. Be aware that a clocks line is not
-appropriate for drivers that have a fixed set of clocks and don't probe by
-default (e.g. Cirrus). Also, for the P9000 server you must simply specify
-clocks line that matches the modes you want to use. For the S3 server with
-a programmable clock chip you need a 'ClockChip' line and no Clocks line.
-
-You must be root to be able to run X -probeonly now.
-
-Do you want me to run 'X -probeonly' now?</screen>
-
- <para>This last question is worth thinking about. You should
- run X -probeonly at some point, but it requires some extra
- work. We'll take the recommendation and try it later.</para>
-
- <screen>Do you want me to run 'X -probeonly' now? n
-
-For each depth, a list of modes (resolutions) is defined. The default
-resolution that the server will start-up with will be the first listed
-mode that can be supported by the monitor and card.
-Currently it is set to:
-
-"640x480" "800x600" "1024x768" for 8bpp
-"640x480" "800x600" for 16bpp
-"640x480" for 24bpp
-"640x400" for 32bpp
-
-Note that 16, 24 and 32bpp are only supported on a few configurations.
-Modes that cannot be supported due to monitor or clock constraints will
-be automatically skipped by the server.
-
- 1 Change the modes for 8pp (256 colors)
- 2 Change the modes for 16bpp (32K/64K colors)
- 3 Change the modes for 24bpp (24-bit color, packed pixel)
- 4 Change the modes for 32bpp (24-bit color)
- 5 The modes are OK, continue.
-
-Enter your choice: 5 accept the defaults
-
-You can have a virtual screen (desktop), which is screen area that is larger
-than the physical screen and which is panned by moving the mouse to the edge
-of the screen. If you don't want virtual desktop at a certain resolution,
-you cannot have modes listed that are larger. Each color depth can have a
-differently-sized virtual screen
-
-Please answer the following question with either 'y' or 'n'.
-Do you want a virtual screen that is larger than the physical screen? n</screen>
-
- <para>It is difficult to decide whether you want a virtual
- screen larger than the physical screen. I find it extremely
- disturbing, so I suggest you answer n. You might find it
- useful, especially if your highest resolution is small.</para>
-
- <para>Now the configuration is complete, and
- <application>sysinstall</application> just need to write the
- configuration file:</para>
-
- <screen>I am going to write the XF86Config file now. Make sure
-you don't accidently overwrite a previously configured one.
-
-Shall I write it to /etc/XF86Config? y
-
-File has been written. Take a look at it before running 'startx'. Note that
-the XF86Config file must be in one of the directories searched by the server
-(e.g. /usr/X11R6/lib/X11) in order to be used. Within the server press
-ctrl, alt and '+' simultaneously to cycle video resolutions. Pressing ctrl,
-alt and backspace simultaneously immediately exits the server (use if
-the monitor doesn't sync for a particular mode).
-
-For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config.</screen>
-
- <para>Once you have completed this configuration, you are ready to
- start X.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="x-fonts">
- <title>Using Fonts in XFree86</title>
-
- <sect2 id="truetype">
- <title>TrueType Fonts</title>
-
- <para>The default fonts that ship with
- <application>XFree86</application> are less than ideal for typical
- desktop publishing applications. Large presentation fonts show up
- jagged and unprofessional looking and small fonts in Netscape are
- almost completely unintelligable. Fortunately,
- <application>XFree86</application> can be configured to use
- TrueType fonts with a minimum of effort.</para>
-
- <para><application>XFree86</application> 4.0 has built in support
- for rendering TrueType fonts. There are two different modules
- that can enable this functionality. The "freetype" module is used
- in this example because it is more consistent with the other font
- rendering backends. To enable the freetype module just add the
- following line to the module section of your
- <filename>/etc/X11/XF86Config</filename> file.
-<screen>
- Load "freetype"
-</screen>
- </para>
-
- <para>For <application>XFree86</application> 3.3.X you will need
- to run a seperate TrueType font
- server. <application>Xfstt</application> is commonly used for this
- purpose. To install <application>Xfstt</application> on your
- FreeBSD system simply install the port from
- <filename>/usr/ports/x11-servers/Xfstt</filename></para>
-
- <para>You should now make a directory for your TrueType fonts
- (e.g. <filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>) and
- copy all of your TrueType fonts into this directory. Keep in mind
- that you can not take TrueType fonts directly from a Macintosh;
- they must be in Unix/DOS/Windows format for use by
- <application>XFree86</application>. Once you have copied the files
- into this directory you need to use
- <application>ttmkfdir</application> to create a
- <filename>fonts.dir</filename> file so that the X font renderer
- knows that you've installed these new files. There is a FreeBSD
- port for <application>ttmkfdir</application> in
- <filename>/usr/ports/x11-fonts/ttmkfdir</filename>.</para>
-<screen>
- &prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/TrueType</userinput>
- &prompt.root; <userinput>ttmkfdir > fonts.dir</userinput>
-</screen>
-
- <para>Now you need to add your TrueType directory to your fonts
- path. The easiest way to do this is to add the following entries
- into your <filename>~/.xinitrc</filename> file.</para>
-<screen>
- &prompt.user; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/TrueType</userinput>
- &prompt.user; <userinput>xset fp rehash</userinput>
-</screen>
-
- <para>That's it. Now Netscape, Gimp, StarOffice, and all of your
- other X applications should now recognize your installed TrueType
- fonts. Extremely small fonts (as with text in a high resolution
- display on a web page) and extremely large fonts (within
- StarOffice) will look much better now.</para>
-
- <para>One Caveat : XFree86 does not currently support anti-aliased
- font rendering. This is less of an issue at higher screen resolutions
- but the output is still less than optimal when compared with MacOS or
- Microsoft Windows.</para>
-
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/en_US.ISO8859-1/books/porters-handbook/Makefile b/en_US.ISO8859-1/books/porters-handbook/Makefile
deleted file mode 100644
index 4557e616bf..0000000000
--- a/en_US.ISO8859-1/books/porters-handbook/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# $FreeBSD: doc/en_US.ISO_8859-1/books/porter-handbook/Makefile,v 1.1 2000/04/22 23:47:57 nik Exp $
-#
-# Build the FreeBSD Porter's Handbook.
-#
-
-MAINTAINER=nik@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-
-# Use the local DSSSL file
-DSLHTML?= ${.CURDIR}/freebsd.dsl
-DSLPRINT?= ${.CURDIR}/freebsd.dsl
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/porters-handbook/book.sgml b/en_US.ISO8859-1/books/porters-handbook/book.sgml
deleted file mode 100644
index a6e27859bc..0000000000
--- a/en_US.ISO8859-1/books/porters-handbook/book.sgml
+++ /dev/null
@@ -1,4439 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/porters-handbook/book.sgml,v 1.143 2001/04/17 01:39:30 dd Exp $
--->
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN">
-%bookinfo;
-
-<!ENTITY % authors SYSTEM "../handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../handbook/mailing-lists.ent">
-%mailing-lists;
-
-]>
-
-<book>
- <bookinfo>
- <title>FreeBSD Porter's Handbook</title>
-
- <authorgroup>
- <corpauthor>The FreeBSD Documentation Project</corpauthor>
- </authorgroup>
-
- <pubdate>April 2000</pubdate>
-
- <copyright>
- <year>2000</year>
- <holder role="mailto:doc@FreeBSD.org">The FreeBSD Documentation
- Project</holder>
- </copyright>
-
- &bookinfo.legalnotice;
- </bookinfo>
-
-
- <chapter>
- <title>Making a port yourself</title>
-
- <para>So, now you are interested in making your own port or
- upgrading an existing one? Great!</para>
-
- <para>What follows are some guidelines for creating a new port for
- FreeBSD. If you want to upgrade an existing port, you should
- read this and then read <xref linkend="port-upgrading">.</para>
-
- <para>When this document is not sufficiently detailed, you should
- refer to <filename>/usr/ports/Mk/bsd.port.mk</filename>, which
- all port Makefiles include. Even if you do not hack Makefiles
- daily, it is well commented, and you will still gain much
- knowledge from it. Additionally, you may send specific questions
- to the &a.ports;.</para>
-
- <note>
- <para>Only a fraction of the variables
- (<makevar><replaceable>VAR</replaceable></makevar>) that can be
- overridden are mentioned in this document. Most (if not all)
- are documented at the start of <filename>bsd.port.mk</filename>.
- This file uses a non-standard tab setting.
- <application>Emacs</application> and
- <application>Vim</application> should recognize the setting on
- loading the file. Both <command>vi</command> and
- <command>ex</command> can be set to use the correct value by
- typing <command>:set tabstop=4</command> once the file has been
- loaded.</para>
- </note>
- </chapter>
-
- <chapter id="quick-porting">
- <title>Quick Porting</title>
-
- <para>This section tells you how to do a quick port. In many cases, it
- is not enough, but we will see.</para>
-
- <para>First, get the original tarball and put it into
- <makevar>DISTDIR</makevar>, which defaults to
- <filename>/usr/ports/distfiles</filename>.</para>
-
- <note>
- <para>The following assumes that the software compiled out-of-the-box,
- i.e., there was absolutely no change required for the port to work
- on your FreeBSD box. If you needed to change something, you will
- have to refer to the next section too.</para>
- </note>
-
- <sect1>
- <title>Writing the <filename>Makefile</filename></title>
-
- <para>The minimal <filename>Makefile</filename> would look something
- like this:</para>
-
- <programlisting># New ports collection makefile for: oneko
-# Date created: 5 December 1994
-# Whom: asami
-#
-# &dollar;FreeBSD&dollar;
-#
-
-PORTNAME= oneko
-PORTVERSION= 1.1b
-CATEGORIES= games
-MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
-
-MAINTAINER= asami@FreeBSD.org
-
-MAN1= oneko.1
-MANCOMPRESSED= yes
-USE_IMAKE= yes
-
-.include &lt;bsd.port.mk&gt;</programlisting>
-
- <para>See if you can figure it out. Do not worry about the contents
- of the <literal>&dollar;FreeBSD&dollar;</literal> line, it will be
- filled in automatically by CVS when the port is imported to our main
- ports tree. You can find a more detailed example in the <link
- linkend="porting-samplem">sample Makefile</link> section.</para>
- </sect1>
-
- <sect1>
- <title>Writing the description files</title>
-
- <para>There are three description files that are required for
- any port, whether they actually package or not. They are
- <filename>pkg-comment</filename>,
- <filename>pkg-descr</filename>, and
- <filename>pkg-plist</filename>, and their
- <filename>pkg-</filename> prefix distinguishes them from
- other files.</para>
-
- <sect2>
- <title><filename>pkg-comment</filename></title>
-
- <para>This is the one-line description of the port.
- <emphasis>Please</emphasis> do not include the package name (or
- version number of the software) in the comment. The comment
- should begin with a capital, and end without a period. Here
- is an example:</para>
-
- <programlisting>A cat chasing a mouse all over the screen</programlisting>
- </sect2>
-
- <sect2>
- <title><filename>pkg-descr</filename></title>
-
- <para>This is a longer description of the port. One to a few
- paragraphs concisely explaining what the port does is
- sufficient.</para>
-
- <note>
- <para>This is <emphasis>not</emphasis> a manual or an in-depth
- description on how to use or compile the port! <emphasis>Please
- be careful if you are copying from the
- <filename>README</filename> or manpage</emphasis>; too often
- they are not a concise description of the port or are in an
- awkward format (e.g., manpages have justified spacing). If the
- ported software has an official WWW homepage, you should list it
- here. Prefix <emphasis>one</emphasis> of the websites with
- <literal>WWW:</literal> so that automated tools will work
- correctly.</para>
- </note>
-
- <para>It is recommended that you sign your name at the end of this
- file, as in:</para>
-
- <programlisting>This is a port of oneko, in which a cat chases a poor mouse all over
-the screen.
- :
-(etc.)
-
-WWW: http://www.oneko.org/
-
-- Satoshi
-asami@cs.berkeley.edu</programlisting>
- </sect2>
-
- <sect2>
- <title><filename>pkg-plist</filename></title>
-
- <para>This file lists all the files installed by the port. It is
- also called the &ldquo;packing list&rdquo; because the package is
- generated by packing the files listed here. The pathnames are
- relative to the installation prefix (usually
- <filename>/usr/local</filename> or
- <filename>/usr/X11R6</filename>). If you are using the
- <makevar>MAN<replaceable>n</replaceable></makevar> variables (as
- you should be), do not list any manpages here.</para>
-
- <para>Here is a small example:</para>
-
- <programlisting>bin/oneko
-lib/X11/app-defaults/Oneko
-lib/X11/oneko/cat1.xpm
-lib/X11/oneko/cat2.xpm
-lib/X11/oneko/mouse.xpm
-@dirrm lib/X11/oneko</programlisting>
-
- <para>Refer to the &man.pkg.create.1; man page for details on the
- packing list.</para>
-
- <note>
- <para>You should list all the files, but not the name directories,
- in the list. Also, if the port creates directories for itself
- during installation, make sure to add <literal>@dirrm</literal>
- lines as necessary to remove them when the port is
- deleted.</para>
-
- <para>It is recommended that you keep all the filenames in this
- file sorted alphabetically. It will make verifying the changes
- when you upgrade the port much easier.</para>
-
- <para>Creating a packing list manually can be a very tedious
- task. If the port installs a large numbers of files, <link
- linkend="porting-autoplist">creating the packing list
- automatically</link> might save time.</para>
- </note>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Creating the checksum file</title>
-
- <para>Just type <command>make makesum</command>. The ports make rules
- will automatically generate the file
- <filename>distinfo</filename>.</para>
- </sect1>
-
- <sect1 id="porting-testing">
- <title>Testing the port</title>
-
- <para>You should make sure that the port rules do exactly what you
- want them to do, including packaging up the port. These are the
- important points you need to verify.</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>pkg-plist</filename> does not contain anything not
- installed by your port</para>
- </listitem>
-
- <listitem>
- <para><filename>pkg-plist</filename> contains everything that is
- installed by your port</para>
- </listitem>
-
- <listitem>
- <para>Your port can be installed multiple times using the
- <maketarget>reinstall</maketarget> target</para>
- </listitem>
-
- <listitem>
- <para>Your port <link linkend="porting-cleaning">cleans up</link>
- after itself upon deinstall</para>
- </listitem>
- </itemizedlist>
-
- <procedure>
- <title>Recommended test ordering</title>
-
- <step>
- <para><command>make install</command></para>
- </step>
-
- <step>
- <para><command>make package</command></para>
- </step>
-
- <step>
- <para><command>make deinstall</command></para>
- </step>
-
- <step>
- <para><command>pkg_add <replaceable>package-name</replaceable>
- </command></para>
- </step>
-
- <step>
- <para><command>make deinstall</command></para>
- </step>
-
- <step>
- <para><command>make reinstall</command></para>
- </step>
-
- <step>
- <para><command>make package</command></para>
- </step>
- </procedure>
-
- <para>Make sure that there are not any warnings issued in any of the
- <maketarget>package</maketarget> and
- <maketarget>deinstall</maketarget> stages. After step 3, check to
- see if all the new directories are correctly deleted. Also, try
- using the software after step 4, to ensure that it works correctly
- when installed from a package.</para>
- </sect1>
-
- <sect1 id="porting-portlint">
- <title>Checking your port with <command>portlint</command></title>
-
- <para>Please use <command>portlint</command> to see if your port
- conforms to our guidelines. The <command>portlint</command> program
- is part of the ports collection. In particular, you may want to
- check if the <link linkend="porting-samplem">Makefile</link> is in
- the right shape and the <link
- linkend="porting-pkgname">package</link> is named
- appropriately.</para>
- </sect1>
-
- <sect1 id="porting-submitting">
- <title>Submitting the port</title>
-
- <para>First, make sure you have read the <link
- linkend="porting-dads">DOs and DON'Ts</link> section.</para>
-
- <para>Now that you are happy with your port, the only thing remaining
- is to put it in the main FreeBSD ports tree and make everybody else
- happy about it too. We do not need your <filename>work</filename>
- directory or the <filename>pkgname.tgz</filename> package, so delete
- them now. Next, simply include the output of <command>shar `find
- port_dir`</command> in a bug report and send it with the
- &man.send-pr.1; program (see <ulink url="../handbook/contrib-how.html#CONTRIB-GENERAL">Bug
- Reports and General Commentary</ulink> for more information about
- &man.send-pr.1;. If the uncompressed port is larger than 20KB,
- you should compress it into a tarfile and use &man.uuencode.1;
- before including it in the bug report (uuencoded tarfiles are
- acceptable even if the bug report is smaller than 20KB but are not
- preferred). Be sure to classify the bug report as category
- <literal>ports</literal> and class
- <literal>change-request</literal> (Do not mark the report
- <literal>confidential</literal>!).
- Also add a short description of the program you ported
- to the <quote>Description</quote> field of the PR and
- the shar or uuencoded tarfile to the
- <quote>Fix</quote> field. The latter one helps the committers
- a lot, who use scripts for the ports-work.</para>
-
- <para>One more time, <emphasis>do not include the original source
- distfile, the <filename>work</filename> directory, or the package
- you built with <command>make package</command></emphasis>.</para>
-
- <note>
- <para>In the past, we asked you to upload new port submissions in
- our ftp site (<hostid role="fqdn">ftp.FreeBSD.org</hostid>). This
- is no longer recommended as read access is turned off on the
- <filename>incoming/</filename> directory of that site due to the
- large amount of pirated software showing up there.</para>
- </note>
-
- <para>We will look at your port, get back to you if necessary, and put
- it in the tree. Your name will also appear in the list of
- &ldquo;Additional FreeBSD contributors&rdquo; in the FreeBSD
- Handbook and other files. Isn't that great?!? <!-- smiley
- -->:-)</para>
-
- <note>
- <para>You can make our work a lot easier, if you use a good
- description in the synopsis of the problem report.
- We prefer something like
- &ldquo;New port: &lt;short description of the port&gt;&rdquo; for
- new ports and
- &ldquo;Update port: &lt;category&gt;/&lt;port&gt; &lt;short description
- of the update&gt;&rdquo; for port updates.
- If you stick to this scheme, the chance that one takes a look at
- your PR soon is much bigger.</para>
- </note>
- </sect1>
- </chapter>
-
- <chapter>
- <title>Slow Porting</title>
-
- <para>Ok, so it was not that simple, and the port required some
- modifications to get it to work. In this section, we will explain,
- step by step, how to modify it to get it to work with the ports
- paradigm.</para>
-
- <sect1>
- <title>How things work</title>
-
- <para>First, this is the sequence of events which occurs when the user
- first types <command>make</command> in your port's directory.
- You may find that having <filename>bsd.port.mk</filename> in another
- window while you read this really helps to understand it.</para>
-
- <para>But do not worry if you do not really understand what
- <filename>bsd.port.mk</filename> is doing, not many people do...
- <!-- smiley --><emphasis>:-&gt;</emphasis></para>
-
- <procedure>
-
- <step>
- <para>The <maketarget>fetch</maketarget> target is run. The
- <maketarget>fetch</maketarget> target is responsible for making
- sure that the tarball exists locally in
- <makevar>DISTDIR</makevar>. If <maketarget>fetch</maketarget>
- cannot find the required files in <makevar>DISTDIR</makevar> it
- will look up the URL <makevar>MASTER_SITES</makevar>, which is
- set in the Makefile, as well as our main ftp site at <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</ulink>,
- where we put sanctioned distfiles as backup. It will then
- attempt to fetch the named distribution file with
- <makevar>FETCH</makevar>, assuming that the requesting site has
- direct access to the Internet. If that succeeds, it will save
- the file in <makevar>DISTDIR</makevar> for future use and
- proceed.</para>
- </step>
-
- <step>
- <para>The <maketarget>extract</maketarget> target is run. It
- looks for your port's distribution file (typically a gzip'd
- tarball) in <makevar>DISTDIR</makevar> and unpacks it into a
- temporary subdirectory specified by <makevar>WRKDIR</makevar>
- (defaults to <filename>work</filename>).</para>
- </step>
-
- <step>
- <para>The <maketarget>patch</maketarget> target is run. First,
- any patches defined in <makevar>PATCHFILES</makevar> are
- applied. Second, if any patch files named
- <filename>patch-<replaceable>*</replaceable></filename> are found in
- <makevar>PATCHDIR</makevar> (defaults to the
- <filename>files</filename> subdirectory), they are applied at
- this time in alphabetical order.</para>
- </step>
-
- <step>
- <para>The <maketarget>configure</maketarget> target is run. This
- can do any one of many different things.</para>
-
- <orderedlist>
- <listitem>
- <para>If it exists, <filename>scripts/configure</filename> is
- run.</para>
- </listitem>
-
- <listitem>
- <para>If <makevar>HAS_CONFIGURE</makevar> or
- <makevar>GNU_CONFIGURE</makevar> is set,
- <filename><makevar>WRKSRC</makevar>/configure</filename> is
- run.</para>
- </listitem>
-
- <listitem>
- <para>If <makevar>USE_IMAKE</makevar> is set,
- <makevar>XMKMF</makevar> (default: <command>xmkmf
- -a</command>) is run.</para>
- </listitem>
- </orderedlist>
- </step>
-
- <step>
- <para>The <maketarget>build</maketarget> target is run. This is
- responsible for descending into the port's private working
- directory (<makevar>WRKSRC</makevar>) and building it. If
- <makevar>USE_GMAKE</makevar> is set, GNU <command>make</command>
- will be used, otherwise the system <command>make</command> will
- be used.</para>
- </step>
- </procedure>
-
- <para>The above are the default actions. In addition, you can define
- targets
- <maketarget>pre-<replaceable>something</replaceable></maketarget> or
- <maketarget>post-<replaceable>something</replaceable></maketarget>,
- or put scripts with those names, in the <filename>scripts</filename>
- subdirectory, and they will be run before or after the default
- actions are done.</para>
-
- <para>For example, if you have a <maketarget>post-extract</maketarget>
- target defined in your Makefile, and a file
- <filename>pre-build</filename> in the <filename>scripts</filename>
- subdirectory, the <maketarget>post-extract</maketarget> target will
- be called after the regular extraction actions, and the
- <filename>pre-build</filename> script will be executed before the
- default build rules are done. It is recommended that you use
- <filename>Makefile</filename> targets if the actions are simple
- enough, because it will be easier for someone to figure out what
- kind of non-default action the port requires.</para>
-
- <para>The default actions are done by the
- <filename>bsd.port.mk</filename> targets
- <maketarget>do-<replaceable>something</replaceable></maketarget>.
- For example, the commands to extract a port are in the target
- <maketarget>do-extract</maketarget>. If you are not happy with the
- default target, you can fix it by redefining the
- <maketarget>do-<replaceable>something</replaceable></maketarget>
- target in your <filename>Makefile</filename>.</para>
-
- <note>
- <para>The &ldquo;main&rdquo; targets (e.g.,
- <maketarget>extract</maketarget>,
- <maketarget>configure</maketarget>, etc.) do nothing more than
- make sure all the stages up to that one are completed and call
- the real targets or scripts, and they are not intended to be
- changed. If you want to fix the extraction, fix
- <maketarget>do-extract</maketarget>, but never ever touch
- <maketarget>extract</maketarget>!</para>
- </note>
-
- <para>Now that you understand what goes on when the user types
- <command>make</command>, let us go through the recommended steps to
- create the perfect port.</para>
- </sect1>
-
- <sect1>
- <title>Getting the original sources</title>
-
- <para>Get the original sources (normally) as a compressed tarball
- (<filename><replaceable>foo</replaceable>.tar.gz</filename> or
- <filename><replaceable>foo</replaceable>.tar.Z</filename>) and copy
- it into <makevar>DISTDIR</makevar>. Always use
- <emphasis>mainstream</emphasis> sources when and where you
- can.</para>
-
- <para>If you cannot find a ftp/http site that is well-connected to the
- net, or can only find sites that have irritatingly non-standard
- formats, you might want to put a copy on a reliable ftp or http
- server that you control (e.g., your home page). Make sure you set
- <makevar>MASTER_SITES</makevar> to reflect your choice.</para>
-
- <para>If you cannot find somewhere convenient and reliable to put the
- distfile
- we can &ldquo;house&rdquo; it ourselves
- on <hostid>ftp.FreeBSD.org</hostid>.
- The distfile must be placed into
- <filename>~/public_distfiles/</filename> of someone's
- <hostid>freefall</hostid> account.
- Ask the person who commits your port to do this.
- This person will also set <makevar>MASTER_SITES</makevar> to
- <makevar>MASTER_SITE_LOCAL</makevar> and
- <makevar>MASTER_SITE_SUBDIR</makevar> to their
- <hostid>freefall</hostid> username.</para>
-
- <para>If your port's distfile changes all the time for no good reason,
- consider putting the distfile in your home page and listing it as
- the first <makevar>MASTER_SITES</makevar>. This will prevent users
- from getting <errorname>checksum mismatch</errorname> errors, and
- also reduce the workload of maintainers of our ftp site. Also, if
- there is only one master site for the port, it is recommended that
- you house a backup at your site and list it as the second
- <makevar>MASTER_SITES</makevar>.</para>
-
- <para>If your port requires some additional `patches' that are
- available on the Internet, fetch them too and put them in
- <makevar>DISTDIR</makevar>. Do not worry if they come from a site
- other than where you got the main source tarball, we have a way to
- handle these situations (see the description of <link
- linkend="porting-patchfiles">PATCHFILES</link> below).</para>
- </sect1>
-
- <sect1>
- <title>Modifying the port</title>
-
- <para>Unpack a copy of the tarball in a private directory and make
- whatever changes are necessary to get the port to compile properly
- under the current version of FreeBSD. Keep <emphasis>careful
- track</emphasis> of everything you do, as you will be automating
- the process shortly. Everything, including the deletion, addition,
- or modification of files should be doable using an automated script
- or patch file when your port is finished.</para>
-
- <para>If your port requires significant user interaction/customization
- to compile or install, you should take a look at one of Larry Wall's
- classic <application>Configure</application> scripts and perhaps do
- something similar yourself. The goal of the new ports collection is
- to make each port as &ldquo;plug-and-play&rdquo; as possible for the
- end-user while using a minimum of disk space.</para>
-
- <note>
- <para>Unless explicitly stated, patch files, scripts, and other
- files you have created and contributed to the FreeBSD ports
- collection are assumed to be covered by the standard BSD copyright
- conditions.</para>
- </note>
- </sect1>
-
- <sect1>
- <title>Patching</title>
-
- <para>In the preparation of the port, files that have been added or
- changed can be picked up with a recursive diff for later feeding to
- patch. Each set of patches you wish to apply should be collected
- into a file named
- <filename>patch-<replaceable>*</replaceable></filename> where
- <replaceable>*</replaceable> denotes the sequence in which the
- patches will be applied &mdash; these are done in
- <emphasis>alphabetical order</emphasis>, thus <literal>aa</literal>
- first, <literal>ab</literal> second and so on. If you wish,
- you can use names that indicate the pathnames of the files that
- are patched, such as <filename>patch-Imakefile</filename> or
- <filename>patch-src-config.h</filename>. These files should
- be stored in <makevar>PATCHDIR</makevar>, from where they will be
- automatically applied. All patches should be relative to
- <makevar>WRKSRC</makevar> (generally the directory your port's
- tarball unpacks itself into, that being where the build is done).
- To make fixes and upgrades easier, you should avoid having more than
- one patch fix the same file (e.g., <filename>patch-aa</filename> and
- <filename>patch-ab</filename> both changing
- <filename><makevar>WRKSRC</makevar>/foobar.c</filename>).</para>
- </sect1>
-
- <sect1>
- <title>Configuring</title>
-
- <para>Include any additional customization commands in your
- <filename>configure</filename> script and save it in the
- <filename>scripts</filename> subdirectory. As mentioned above, you
- can also do this with <filename>Makefile</filename> targets and/or
- scripts with the name <filename>pre-configure</filename> or
- <filename>post-configure</filename>.</para>
- </sect1>
-
- <sect1>
- <title>Handling user input</title>
-
- <para>If your port requires user input to build, configure, or install,
- then set <makevar>IS_INTERACTIVE</makevar> in your Makefile. This
- will allow &ldquo;overnight builds&rdquo; to skip your port if the
- user sets the variable <envar>BATCH</envar> in his environment (and
- if the user sets the variable <envar>INTERACTIVE</envar>, then
- <emphasis>only</emphasis> those ports requiring interaction are
- built).</para>
-
- <para>It is also recommended that if there are reasonable default
- answers to the questions, you check the
- <makevar>PACKAGE_BUILDING</makevar> variable and turn off the
- interactive script when it is set. This will allow us to build the
- packages for CD-ROMs and ftp.</para>
- </sect1>
- </chapter>
-
- <chapter>
- <title>Configuring the Makefile</title>
-
- <para>Configuring the Makefile is pretty simple, and again we suggest
- that you look at existing examples before starting. 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
- read.</para>
-
- <para>Now, consider the following problems in sequence as you design
- your new Makefile:</para>
-
- <sect1>
- <title>The original source</title>
-
- <para>Does it live in <makevar>DISTDIR</makevar> as a standard
- gzip'd tarball named something like
- <filename>foozolix-1.2.tar.gz</filename>? If so, you can go on
- to the next step. If not, you should look at overriding any of
- the <makevar>DISTNAME</makevar>, <makevar>EXTRACT_CMD</makevar>,
- <makevar>EXTRACT_BEFORE_ARGS</makevar>,
- <makevar>EXTRACT_AFTER_ARGS</makevar>,
- <makevar>EXTRACT_SUFX</makevar>, or <makevar>DISTFILES</makevar>
- variables, depending on how alien a format your port's
- distribution file is. (The most common case is
- <literal>EXTRACT_SUFX=.tar.Z</literal>, when the tarball is
- condensed by regular <command>compress</command>, not
- <command>gzip</command>.)</para>
-
- <para>In the worst case, you can simply create your own
- <maketarget>do-extract</maketarget> target to override the
- default, though this should be rarely, if ever,
- necessary.</para>
- </sect1>
-
- <sect1>
- <title><makevar>PORTNAME</makevar> and <makevar>PORTVERSION</makevar></title>
-
- <para>You should set <makevar>PORTNAME</makevar> to the
- base name of your port, and <makevar>PORTVERSION</makevar>
- to the version number of the port.</para>
- </sect1>
-
- <sect1>
- <title><makevar>PORTREVISION</makevar> and
- <makevar>PORTEPOCH</makevar></title>
-
- <sect2>
- <title><makevar>PORTREVISION</makevar></title>
-
- <para>The <makevar>PORTREVISION</makevar> variable is a
- monotonically increasing value which is reset to 0 with
- every increase of <makevar>PORTVERSION</makevar> (i.e.
- every time a new official vendor release is made), and
- appended to the package name if non-zero.
- <makevar>PORTREVISION</makevar> is increased each time a
- change is made to the FreeBSD port which significantly
- affects the content or stucture of the derived
- package.</para>
-
- <para>Examples of when PORTREVISION should be bumped:</para>
-
- <itemizedlist>
- <listitem>
- <para>Addition of patches to correct security
- vulnerabilities, bugs, or to add new functionality to
- the FreeBSD port.</para>
- </listitem>
-
- <listitem>
- <para>Changes to the port makefile to enable or disable
- compile-time options in the package.</para>
- </listitem>
-
- <listitem>
- <para>Changes in the packing list or the install-time
- behaviour of the package (e.g. change to a script
- which generates initial data for the package, like ssh
- host keys).</para>
- </listitem>
-
- <listitem>
- <para>Version bump of a port's shared library dependency
- (in this case, someone trying to install the old
- package after installing a newer version of the
- dependency will fail since it will look for the old
- libfoo.x instead of libfoo.(x+1)).</para>
- </listitem>
-
- <listitem>
- <para>Silent changes to the port distfile which have
- significant functional differences, i.e. changes to
- the distfile requiring a correction to
- <filename>distinfo</filename> with no corresponding change to
- <makevar>PORTVERSION</makevar>, where a <command>diff
- -ru</command> of the old and new versions shows
- non-trivial changes to the code.</para>
- </listitem>
- </itemizedlist>
-
- <para>Examples of changes which do not require a
- <makevar>PORTREVISION</makevar> bump:</para>
-
- <itemizedlist>
- <listitem>
- <para>Style changes to the port skeleton with no
- functional change to what appears in the resulting
- package.</para>
- </listitem>
-
- <listitem>
- <para>Changes to <makevar>MASTER_SITES</makevar> or
- other functional changes to the port which do not
- effect the resulting package.</para>
- </listitem>
-
- <listitem>
- <para>Trivial patches to the distfile such as correction
- of typos, which are not important enough that users of
- the package should go to the trouble of
- upgrading.</para>
- </listitem>
-
- <listitem>
- <para>Build fixes which cause a package to become
- compilable where it was previously failing (as long as
- the changes do not introduce any functional change on
- any other platforms on which the port did previously
- build). Since <makevar>PORTREVISION</makevar> reflects
- the content of the package, if no package was
- previously buildable then there is no need to increase
- <makevar>PORTREVISION</makevar> to mark a
- change.</para>
- </listitem>
- </itemizedlist>
-
- <para>A rule of thumb is to ask yourself whether a change
- committed to a port is something which someone, somewhere,
- would benefit from having (either because of an
- enhancement, fix, or by virtue that the new package will
- actually work for them). If yes, the
- <makevar>PORTREVISION</makevar> should be bumped so that
- automated tools (e.g. <command>pkg_version</command>)
- will highlight the fact that a new package is
- available.</para>
- </sect2>
-
- <sect2>
- <title><makevar>PORTEPOCH</makevar></title>
-
- <para>From time to time a software vendor or FreeBSD porter
- will do something silly and release a version of their
- software which is actually numerically less than the
- previous version. An example of this is a port which goes
- from foo-20000801 to foo-1.0 (the former will be
- incorrectly treated as a newer version since 20000801 is a
- numerically greater value than 1).</para>
-
- <para>In situations such as this, the
- <makevar>PORTEPOCH</makevar> version should be increased.
- If <makevar>PORTEPOCH</makevar> is nonzero it is appended
- to the package name as described in section 0 above.
- <makevar>PORTEPOCH</makevar> is never decreased or reset
- to zero, because that would cause comparison to a package
- from an earlier epoch to fail (i.e. the package would not
- be detected as out of date): the new version number (e.g.
- <literal>1.0,1</literal> in the above example) is still
- numerically less than the previous version (2000801), but
- the <literal>,1</literal> suffix is treated specially by
- automated tools and found to be greater than the implied
- suffix ",0" on the earlier package)</para>
-
- <para>It is expected that <makevar>PORTEPOCH</makevar> will
- not be used for the majority of ports, and that sensible
- use of <makevar>PORTVERSION</makevar> can often pre-empt
- it becoming necessary if a future release of the software
- should change the version structure. However, care is
- needed by FreeBSD porters when a vendor release is made
- without an official version number - such as a code
- "snapshot" release. The temptation is to label the
- release with the release date, which will cause problems
- as in the example above when a new "official" release is
- made.</para>
-
- <para>For example, if a snapshot release is made on the date
- 20000917, and the previous version of the software was
- version 1.2, the snapshot release should be given a
- <makevar>PORTVERSION</makevar> of 1.2.20000917 or similar,
- not 20000917, so that the succeeding release, say 1.3, is
- still a numerically greater value.</para>
- </sect2>
-
- <sect2>
- <title>Example of <makevar>PORTREVISION</makevar> and
- <makevar>PORTEPOCH</makevar> usage</title>
-
- <para>The gtkmumble port, version 0.10, is committed to the
- ports collection.</para>
-
- <programlisting>PORTNAME= gtkmumble
-PORTVERSION= 0.10</programlisting>
-
- <para><makevar>PKGNAME</makevar> becomes
- <literal>gtkmumble-0.10</literal>.</para>
-
- <para>A security hole is discovered which requires a local
- FreeBSD patch. <makevar>PORTREVISION</makevar> is bumped
- accordingly.</para>
-
- <programlisting>PORTNAME= gtkmumble
-PORTVERSIOn= 0.10
-PORTREVISION= 1</programlisting>
-
- <para><makevar>PKGNAME</makevar> becomes
- <literal>gtkmumble-0.10_1</literal></para>
-
- <para>A new version is released by the vendor, numbered 0.2
- (it turns out the author actually intended
- <literal>0.10</literal> to actually mean
- <literal>0.1.0</literal>, not <quote>what comes after
- 0.9</quote> - oops, too late now). Since the new minor
- version <literal>2</literal> is numerically less than the
- previous version <literal>10</literal> the
- <makevar>PORTEPOCH</makevar> must be bumped to manually
- force the new package to be detected as "newer". Since it
- is a new vendor release of the code,
- <makevar>PORTREVISION</makevar> is reset to 0 (or removed
- from the makefile).</para>
-
- <programlisting>PORTNAME= gtkmumble
-PORTVERSION= 0.2
-PORTEPOCH= 1</programlisting>
-
- <para><makevar>PKGNAME</makevar> becomes
- <literal>gtkmumble-0.2,1</literal></para>
-
- <para>The next release is 0.3. Since
- <makevar>PORTEPOCH</makevar> never decreases, the version
- variables are now:</para>
-
- <programlisting>PORTNAME= gtkmumble
-PORTVERSION= 0.3
-PORTEPOCH= 1</programlisting>
-
- <para><makevar>PKGNAME</makevar> becomes
- <literal>gtkmumble-0.3,1</literal></para>
-
- <note>
- <para>If <makevar>PORTEPOCH</makevar> were reset
- to <literal>0</literal> with this upgrade, someone who had
- installed the gtkmumble-0.10_1 package would not detect
- the gtkmumble-0.3 package as newer, since
- <literal>3</literal> is still numerically less than
- <literal>10</literal>.</para>
- </note>
- </sect2>
- </sect1>
-
- <sect1>
- <title><makevar>PKGNAMEPREFIX</makevar> and <makevar>PKGNAMESUFFIX</makevar></title>
-
- <para>Two optional variables, <makevar>PKGNAMEPREFIX</makevar> and
- <makevar>PKGNAMESUFFIX</makevar>, are combined with
- <makevar>PORTNAME</makevar> and
- <makevar>PORTVERSION</makevar> to
- form <makevar>PKGNAME</makevar> as
- <literal>${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}</literal>.
- Make sure this conforms to our <link
- linkend="porting-pkgname">guidelines for a good package
- name</link>. In particular, you are not allowed to use a
- hyphen (<literal>-</literal>) in
- <makevar>PORTVERSION</makevar>. Also, if the package name
- has the <replaceable>language-</replaceable> or the
- <replaceable>compiled.specifics</replaceable> part, use
- <makevar>PKGNAMEPREFIX</makevar> and
- <makevar>PKGNAMESUFFIX</makevar>, respectively. Do not make
- them part of <makevar>PORTNAME</makevar>.</para>
- </sect1>
-
- <sect1>
- <title><makevar>DISTNAME</makevar></title>
-
- <para><makevar>DISTNAME</makevar> is the name of the port as
- called by the authors of the software.
- <makevar>DISTNAME</makevar> defaults to
- <literal>${PORTNAME}-${PORTVERSION}</literal>, so override it if necessary.
- <makevar>DISTNAME</makevar> is only used in two places.
- First, the distribution file list
- (<makevar>DISTFILES</makevar>) defaults to
- <makevar>${DISTNAME}</makevar><makevar>${EXTRACT_SUFX}</makevar>.
- Second, the distribution file is expected to extract into a
- subdirectory named <makevar>WRKSRC</makevar>, which defaults
- to <filename>work/<makevar>${DISTNAME}</makevar></filename>.</para>
-
- <note>
- <para><makevar>PKGNAMEPREFIX</makevar> and
- <makevar>PKGNAMESUFFIX</makevar> do not affect
- <makevar>DISTNAME</makevar>. Also note that when
- <makevar>WRKSRC</makevar> is equal to
- <filename>work/<makevar>${PORTNAME}-${PORTVERSION}</makevar></filename>
- while the original source archive is named something other than
- <makevar>${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}</makevar>,
- you should probably leave <makevar>DISTNAME</makevar>
- alone&mdash; you are better off defining
- <makevar>DISTFILES</makevar> than having to set both
- <makevar>DISTNAME</makevar> and <makevar>WRKSRC</makevar>
- (and possibly <makevar>EXTRACT_SUFX</makevar>).</para>
- </note>
- </sect1>
-
- <sect1>
- <title><makevar>CATEGORIES</makevar></title>
-
- <para>When a package is created, it is put under
- <filename>/usr/ports/packages/All</filename> and links are made from
- one or more subdirectories of
- <filename>/usr/ports/packages</filename>. The names of these
- subdirectories are specified by the variable
- <makevar>CATEGORIES</makevar>. It is intended to make life easier
- for the user when he is wading through the pile of packages on the
- ftp site or the CD-ROM. Please take a look at the existing <link
- linkend="porting-categories">categories</link> and pick the ones
- that are suitable for your port.</para>
-
- <para>This list also determines where in the ports tree the port is
- imported. If you put more than one category here, it is assumed
- that the port files will be put in the subdirectory with the name in
- the first category. See the <link
- linkend="porting-categories">categories</link> section for more
- discussion about how to pick the right categories.</para>
-
- <para>If your port truly belongs to something that is different from
- all the existing ones, you can even create a new category name. In
- that case, please send mail to the &a.ports; to propose a new
- category.</para>
- </sect1>
-
- <sect1>
- <title><makevar>MASTER_SITES</makevar></title>
-
- <para>Record the directory part of the ftp/http-URL pointing at the
- original tarball in <makevar>MASTER_SITES</makevar>. Do not forget
- the trailing slash (<filename>/</filename>)!</para>
-
- <para>The <command>make</command> macros will try to use this
- specification for grabbing the distribution file with
- <makevar>FETCH</makevar> if they cannot find it already on the
- system.</para>
-
- <para>It is recommended that you put multiple sites on this list,
- preferably from different continents. This will safeguard against
- wide-area network problems, and we are even planning to add support
- for automatically determining the closest master site and fetching
- from there!</para>
-
- <para>If the original tarball is part of one of the popular
- archives such as X-contrib, GNU, or Perl CPAN, you may be able
- refer to those sites in an easy compact form using
- <makevar>MASTER_SITE_<replaceable>*</replaceable></makevar>
- (e.g., <makevar>MASTER_SITE_XCONTRIB</makevar> and
- <makevar>MASTER_SITE_PERL_GNU</makevar>). Simply set
- <makevar>MASTER_SITES</makevar> to one of these variables and
- <makevar>MASTER_SITE_SUBDIR</makevar> to the path within the
- archive. Here is an example:</para>
-
- <programlisting>MASTER_SITES= ${MASTER_SITE_XCONTRIB}
-MASTER_SITE_SUBDIR= applications</programlisting>
-
- <para>These variables are defined in
- <filename>/usr/ports/Mk/bsd.sites.mk</filename>. There are
- new archives added all the time, so make sure to check the
- latest version of this file before submitting a port.</para>
-
- <para>The user can also set the <makevar>MASTER_SITE_*</makevar>
- variables in <filename>/etc/make.conf</filename> to override our
- choices, and use their favorite mirrors of these popular archives
- instead.</para>
- </sect1>
-
- <sect1 id="porting-patchfiles">
- <title><makevar>PATCHFILES</makevar></title>
-
- <para>If your port requires some additional patches that are available
- by ftp or http, set <makevar>PATCHFILES</makevar> to the names of
- the files and <makevar>PATCH_SITES</makevar> to the URL of the
- directory that contains them (the format is the same as
- <makevar>MASTER_SITES</makevar>).</para>
-
- <para>If the patch is not relative to the top of the source tree
- (i.e., <makevar>WRKSRC</makevar>) because it contains some extra
- pathnames, set <makevar>PATCH_DIST_STRIP</makevar> accordingly. For
- instance, if all the pathnames in the patch have an extra
- <literal>foozolix-1.0/</literal> in front of the filenames, then set
- <literal>PATCH_DIST_STRIP=-p1</literal>.</para>
-
- <para>Do not worry if the patches are compressed; they will be
- decompressed automatically if the filenames end with
- <filename>.gz</filename> or <filename>.Z</filename>.</para>
-
- <para>If the patch is distributed with some other files, such as
- documentation, in a gzip'd tarball, you cannot just use
- <makevar>PATCHFILES</makevar>. If that is the case, add the name
- and the location of the patch tarball to
- <makevar>DISTFILES</makevar> and <makevar>MASTER_SITES</makevar>.
- Then, use the <makevar>EXTRA_PATCHES</makevar> variable to
- point to those files and <filename>bsd.port.mk</filename>
- will automatically apply them for you. In particular, do
- <emphasis>not</emphasis> copy patch files into the
- <makevar>PATCHDIR</makevar> directory&mdash;that directory may
- not be writable.</para>
-
- <note>
- <para>Note that the tarball will have been extracted alongside the
- regular source by then, so there is no need to explicitly extract
- it if it is a regular gzip'd or compress'd tarball. If you do the
- latter, take extra care not to overwrite something that already
- exists in that directory. Also, do not forget to add a command to
- remove the copied patch in the <maketarget>pre-clean</maketarget>
- target.</para>
- </note>
- </sect1>
-
- <sect1>
- <title><makevar>MAINTAINER</makevar></title>
-
- <para>Set your mail-address here. Please. <!-- smiley
- --><emphasis>:-)</emphasis></para>
-
- <para>For a detailed description of the responsibilities of maintainers,
- refer to the <ulink url="../handbook/policies.html#POLICIES-MAINTAINER">MAINTAINER on
- Makefiles</ulink> section.</para>
- </sect1>
-
- <sect1>
- <title>Dependencies</title>
-
- <para>Many ports depend on other ports. There are five variables that
- you can use to ensure that all the required bits will be on the
- user's machine. There are also some pre-supported dependency
- variables for common cases, plus a few more to control the behaviour
- of dependencies.</para>
-
- <sect2>
- <title><makevar>LIB_DEPENDS</makevar></title>
-
- <para>This variable specifies the shared libraries this port depends
- on. It is a list of
- <replaceable>lib</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>
- tuples where <replaceable>lib</replaceable> is the name of the
- shared library, <replaceable>dir</replaceable> is the
- directory in which to find it in case it is not available, and
- <replaceable>target</replaceable> is the target to call in that
- directory. For example, <programlisting> LIB_DEPENDS=
- jpeg.9:${PORTSDIR}/graphics/jpeg:install</programlisting>
- will check for a shared jpeg library with major version 9, and
- descend into the <filename>graphics/jpeg</filename> subdirectory
- of your ports tree to build and install it if it is not found.
- The <replaceable>target</replaceable> part can be omitted if it is
- equal to <makevar>DEPENDS_TARGET</makevar> (which defaults to
- <literal>install</literal>).</para>
-
- <note>
- <para>The <replaceable>lib</replaceable> part is an argument given
- to <command>ldconfig -r | grep -wF</command>. There shall be no
- regular expressions in this variable.</para>
- </note>
-
- <para>The dependency is checked twice, once from within the
- <maketarget>extract</maketarget> target and then from within the
- <maketarget>install</maketarget> target. Also, the name of the
- dependency is put into the package so that
- <command>pkg_add</command> will automatically install it if it is
- not on the user's system.</para>
- </sect2>
-
- <sect2>
- <title><makevar>RUN_DEPENDS</makevar></title>
-
- <para>This variable specifies executables or files this port depends
- on during run-time. It is a list of
- <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>
- tuples where <replaceable>path</replaceable> is the name of the
- executable or file, <replaceable>dir</replaceable> is the
- directory in which to find it in case it is not available, and
- <replaceable>target</replaceable> is the target to call in that
- directory. If <replaceable>path</replaceable> starts with a slash
- (<literal>/</literal>), it is treated as a file and its existence
- is tested with <command>test -e</command>; otherwise, it is
- assumed to be an executable, and <command>which -s</command> is
- used to determine if the program exists in the user's search
- path.</para>
-
- <para>For example,</para>
-
- <programlisting>RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \
- wish8.0:${PORTSDIR}/x11-toolkits/tk80</programlisting>
-
- <para>will check if the file or directory
- <filename>/usr/local/etc/innd</filename> exists, and build and
- install it from the <filename>news/inn</filename> subdirectory of
- the ports tree if it is not found. It will also see if an
- executable called <command>wish8.0</command> is in your search
- path, and descend into the <filename>x11-toolkits/tk80</filename>
- subdirectory of your ports tree to build and install it if it is
- not found.</para>
-
- <note>
- <para>In this case, <command>innd</command> is actually an
- executable; if an executable is in a place that is not expected
- to be in a normal user's search path, you should use the full
- pathname.</para>
- </note>
-
- <para>The dependency is checked from within the
- <maketarget>install</maketarget> target. Also, the name of the
- dependency is put in to the package so that
- <command>pkg_add</command> will automatically install it if it is
- not on the user's system. The <replaceable>target</replaceable>
- part can be omitted if it is the same as
- <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect2>
-
- <sect2>
- <title><makevar>BUILD_DEPENDS</makevar></title>
-
- <para>This variable specifies executables or files this port
- requires to build. Like <makevar>RUN_DEPENDS</makevar>, it is a
- list of
- <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>
- tuples. For example, <programlisting> BUILD_DEPENDS=
- unzip:${PORTSDIR}/archivers/unzip</programlisting> will check
- for an executable called <command>unzip</command>, and descend
- into the <filename>archivers/unzip</filename> subdirectory of your
- ports tree to build and install it if it is not found.</para>
-
- <note>
- <para>&ldquo;build&rdquo; here means everything from extraction to
- compilation. The dependency is checked from within the
- <maketarget>extract</maketarget> target. The
- <replaceable>target</replaceable> part can be omitted if it is
- the same as <makevar>DEPENDS_TARGET</makevar></para>
- </note>
- </sect2>
-
- <sect2>
- <title><makevar>FETCH_DEPENDS</makevar></title>
-
- <para>This variable specifies executables or files this port
- requires to fetch. Like the previous two, it is a list of
- <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>
- tuples. For example, <programlisting> FETCH_DEPENDS=
- ncftp2:${PORTSDIR}/net/ncftp2</programlisting> will check for an
- executable called <command>ncftp2</command>, and descend into the
- <filename>net/ncftp2</filename> subdirectory of your ports tree to
- build and install it if it is not found.</para>
-
- <para>The dependency is checked from within the
- <maketarget>fetch</maketarget> target. The
- <replaceable>target</replaceable> part can be omitted if it is the
- same as <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect2>
-
- <sect2>
- <title><makevar>DEPENDS</makevar></title>
-
- <para>If there is a dependency that does not fall into either of the
- above four categories, or your port requires having the source of
- the other port extracted in addition to having it installed,
- then use this variable. This is a list of
- <replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>,
- as there is nothing to check, unlike the previous four. The
- <replaceable>target</replaceable> part can be omitted if it is the
- same as <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect2>
-
- <sect2>
- <title>Common dependency variables</title>
-
- <para>Define <literal>USE_XLIB=yes</literal> if your port requires
- the X Window System to be installed (it is implied by
- <makevar>USE_IMAKE</makevar>). Define
- <literal>USE_GMAKE=yes</literal> if your port requires GNU
- <command>make</command> instead of BSD <command>make</command>.
- Define <literal>USE_AUTOCONF=yes</literal> if your port requires
- GNU autoconf to be run. Define <literal>USE_QT=yes</literal> if
- your port uses the latest qt toolkit. Use
- <literal>USE_PERL5=yes</literal> if your port requires version 5
- of the perl language. (The last is especially important since
- some versions of FreeBSD have perl5 as part of the base system
- while others do not.)</para>
- </sect2>
-
- <sect2>
- <title>Notes on dependencies</title>
-
- <para>As mentioned above, the default target to call when a
- dependency is required is <maketarget>DEPENDS_TARGET</maketarget>.
- It defaults to <literal>install</literal>. This is a user
- variable; it is never defined in a port's
- <filename>Makefile</filename>. If your port needs a special way
- to handle a dependency, use the <literal>:target</literal> part of
- the <makevar>*_DEPENDS</makevar> variables instead of redefining
- <makevar>DEPENDS_TARGET</makevar>.</para>
-
- <para>When you type <command>make clean</command>, its dependencies
- are automatically cleaned too. If you do not wish this to happen,
- define the variable <makevar>NOCLEANDEPENDS</makevar> in your
- environment.</para>
-
- <para>To depend on another port unconditionally, use the
- variable <makevar>${NONEXISTENT}</makevar> as the first field
- of <makevar>BUILD_DEPENDS</makevar> or
- <makevar>RUN_DEPENDS</makevar>. Use this only when you need to
- the to get to the source of the other port. You can often save
- compilation time by specifying the target too. For
- instance
-
- <programlisting>BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/graphics/jpeg:extract</programlisting>
-
- will always descend to the JPEG port and extract it.</para>
-
- <para>Do not use <makevar>DEPENDS</makevar> unless there is no other
- way the behaviour you want can be accomplished. It will cause the
- other port to always be built (and installed, by default), and the
- dependency will go into the packages as well. If this is really
- what you need, you should probably write it as
- <literal>BUILD_DEPENDS</literal> and
- <literal>RUN_DEPENDS</literal> instead&mdash;at least the
- intention will be clear.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Building mechanisms</title>
-
- <para>If your package uses GNU <command>make</command>, set
- <literal>USE_GMAKE=yes</literal>. If your package uses
- <command>configure</command>, set
- <literal>HAS_CONFIGURE=yes</literal>. If your package uses GNU
- <command>configure</command>, set
- <literal>GNU_CONFIGURE=yes</literal> (this implies
- <literal>HAS_CONFIGURE</literal>). If you want to give some extra
- arguments to <command>configure</command> (the default argument list
- <literal>--prefix=&dollar;{PREFIX}</literal> for GNU
- <command>configure</command> and empty for non-GNU
- <command>configure</command>), set those extra arguments in
- <makevar>CONFIGURE_ARGS</makevar>. If your package uses GNU
- <command>autoconf</command>, set
- <literal>USE_AUTOCONF=yes</literal>. This implies
- <makevar>GNU_CONFIGURE</makevar>, and will cause
- <command>autoconf</command> to be run before
- <command>configure</command>.</para>
-
- <para>If your package is an X application that creates
- <filename>Makefile</filename>s from <filename>Imakefile</filename>s
- using <command>imake</command>, then set
- <literal>USE_IMAKE=yes</literal>. This will cause the configure
- stage to automatically do an <command>xmkmf -a</command>. If the
- <option>-a</option> flag is a problem for your port, set
- <literal>XMKMF=xmkmf</literal>. If the port uses
- <command>imake</command> but does not understand the
- <maketarget>install.man</maketarget> target,
- <literal>NO_INSTALL_MANPAGES=yes</literal> should be set. In
- addition, the author of the original port should be shot. <!--
- smiley --><emphasis>:-&gt;</emphasis></para>
-
- <para>If your port's source <filename>Makefile</filename> has
- something else than <maketarget>all</maketarget> as the main build
- target, set <makevar>ALL_TARGET</makevar> accordingly. Same goes
- for <maketarget>install</maketarget> and
- <makevar>INSTALL_TARGET</makevar>.</para>
- </sect1>
- </chapter>
-
- <chapter>
- <title>Special considerations</title>
-
- <para>There are some more things you have to take into account when you
- create a port. This section explains the most common of those.</para>
-
- <sect1 id="porting-shlibs">
- <title>Shared Libraries</title>
-
- <para>If your port installs one or more shared libraries, define a
- <makevar>INSTALLS_SHLIB</makevar> make variable, which will instruct
- a <filename>bsd.port.mk</filename> to run
- <literal>&dollar;{LDCONFIG} -m</literal> on the directory where the
- new library is installed (usually
- <filename><makevar>PREFIX</makevar>/lib</filename>) during
- <maketarget>post-install</maketarget> target to register it into the
- shared library cache. This variable, when defined, will also
- facilitate addition of an appropriate
- <literal>@exec /sbin/ldconfig -m</literal> and
- <literal>@unexec /sbin/ldconfig -R</literal> pair into your
- <filename>pkg-plist</filename> file, so that a user who installed
- the package can start using the shared library immediately and
- deinstallation will not cause the system to still believe the
- library is there.</para>
-
- <para>If you need, you can override default location where the new
- library is installed by defining <makevar>LDCONFIG_DIRS</makevar>
- make variable, which should contain a list of directories into which
- shared libraries are to be installed. For example if your port
- installs shared libraries into
- <filename><makevar>PREFIX</makevar>/lib/foo</filename> and
- <filename><makevar>PREFIX</makevar>/lib/bar</filename> directories
- you could use the following in your
- <filename>Makefile</filename>:</para>
-
- <programlisting>INSTALLS_SHLIB= yes
-LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar</programlisting>
-
- <para>Note that content of <makevar>LDCONFIG_DIRS</makevar> is passed
- through &man.sed.1; just like the rest of <filename>pkg-plist</filename>,
- so <makevar>PLIST_SUB</makevar> substitutions also apply here. It is
- recommended that you use <literal>%%PREFIX%%</literal> for
- <makevar>PREFIX</makevar>, <literal>%%LOCALBASE%%</literal> for
- <makevar>LOCALBASE</makevar> and <literal>%%X11BASE%%</literal> for
- <makevar>X11BASE</makevar>.</para>
- </sect1>
- </chapter>
-
-<!--
-
- <chapter>
- <title>ELF support</title>
-
- <para>Since FreeBSD changed to an ELF binary format shortly after
- 3.0-RELEASE, we need to convert many ports that build shared
- libraries to support ELF. Complicating this task is that a 3.0
- system can run as both ELF and a.out, and we wish to unofficially
- support the 2.2 branch as long as possible. Below are the guidelines on
- how to convert a.out only ports to support both a.out and ELF
- compilation.</para>
-
- <para>Some part of this list is only applicable during the conversion,
- but will be left here for a while for reference in case you have come
- across some old port you wish to upgrade.</para>
-
- <sect1>
- <title>Moving a.out libraries out of the way</title>
-
- <para>Any a.out libraries should be moved out of
- <filename>/usr/local/lib</filename> and similar to an
- <filename>aout</filename> subdirectory. (If you do not move them out
- of the way, ELF ports will happily overwrite a.out libraries.) The
- <maketarget>move-aout-libs</maketarget> target in the 3.0-CURRENT
- <filename>src/Makefile</filename> (called from
- <maketarget>aout-to-elf</maketarget>) will do this for you. It will
- only move a.out libs so it is safe to call it on a system with both
- ELF and a.out libs in the standard directories.</para>
- </sect1>
-
- <sect1>
- <title>Format</title>
-
- <para>The ports tree will build packages in the format the machine is
- in. This means a.out for 2.2 and a.out or ELF for 3.0 depending on
- what <command>`objformat`</command> returns. Also, once users move
- a.out libraries to a subdirectory, building a.out libraries will be
- unsupported. (I.e., it may still work if you know what you are
- doing, but you are on your own.)</para>
-
- <note>
- <para>If a port only works for a.out, set
- <makevar>BROKEN_ELF</makevar> to a string describing the reason
- why. Such ports will be skipped during a build on an ELF
- system.</para>
- </note>
- </sect1>
-
- <sect1>
- <title><makevar>PORTOBJFORMAT</makevar></title>
-
- <para><filename>bsd.port.mk</filename> will set
- <makevar>PORTOBJFORMAT</makevar> to <literal>aout</literal> or
- <literal>elf</literal> and export it in the environments
- <envar>CONFIGURE_ENV</envar>, <envar>SCRIPTS_ENV</envar> and
- <envar>MAKE_ENV</envar>. (It's always going to be
- <literal>aout</literal> in 2.2-STABLE). It is also passed to
- <maketarget>PLIST_SUB</maketarget> as
- <literal>PORTOBJFORMAT=${PORTOBJFORMAT}</literal>. (See comment on
- <literal>ldconfig</literal> lines below.)</para>
-
- <para>The variable is set using this line in
- <filename>bsd.port.mk</filename>:</para>
-
- <programlisting>PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout</programlisting>
-
- <para>Ports' make processes should use this variable to decide what to
- do. However, if the port's <filename>configure</filename> script
- already automatically detects an ELF system, it is not necessary to
- refer to <makevar>PORTOBJFORMAT</makevar>.</para>
- </sect1>
-
- <sect1>
- <title>Building shared libraries</title>
-
- <para>The following are differences in handling shared libraries for
- a.out and ELF.</para>
-
- <itemizedlist>
- <listitem>
- <para>Shared library versions</para>
-
- <para>An ELF shared library should be called
- <filename>libfoo.so.<replaceable>M</replaceable></filename>
- where <replaceable>M</replaceable> is the single version number,
- and an a.out library should be called
- <filename>libfoo.so.<replaceable>M</replaceable>.<replaceable>N</replaceable></filename>
- where <replaceable>M</replaceable> is the major version and
- <replaceable>N</replaceable> is the the minor version number.
- Do not mix those; <emphasis>never</emphasis> install an ELF
- shared library called
- <filename>libfoo.so.<replaceable>N</replaceable>.<replaceable>M</replaceable></filename>
- or an a.out shared library (or symlink) called
- <filename>libfoo.so.<replaceable>N</replaceable></filename>.</para>
- </listitem>
-
- <listitem>
- <para>Linker command lines</para>
-
- <para>Assuming <command>cc -shared</command> is used rather than
- <command>ld</command> directly, the only difference is that you
- need to add
- <option>-Wl,-<replaceable>soname,libfoo.so.M</replaceable></option
->
- on the command line for ELF.</para>
- </listitem>
- </itemizedlist>
-
- <para>You need to install a symlink from
- <filename>libfoo.so</filename> to
- <filename>libfoo.so.<replaceable>N</replaceable></filename> to make
- ELF linkers happy. Since it should be listed in
- <filename>pkg-plist</filename> too, and it won't hurt in the a.out case
- (some ports even require the link for dynamic loading), you should
- just make this link regardless of the setting of
- <makevar>PORTOBJFORMAT</makevar>.</para>
- </sect1>
-
- <sect1>
- <title><makevar>LIB_DEPENDS</makevar></title>
-
- <para>All port Makefiles are edited to remove minor numbers from
- <makevar>LIB_DEPENDS</makevar>, and also to have the regexp support
- removed. (E.g., <literal>foo\\.1\\.\\(33|40\\)</literal> becomes
- <literal>foo.2</literal>.) They will be matched using <command>grep
- -wF</command>.</para>
- </sect1>
-
- <sect1>
- <title><filename>pkg-plist</filename></title>
-
- <para><filename>pkg-plist</filename> should contain the short (ELF) shlib
- names if the a.out minor number is zero, and the long (a.out) names
- otherwise. <filename>bsd.port.mk</filename> will automatically add
- <literal>.0</literal> to the end of short shlib lines if
- <makevar>PORTOBJFORMAT</makevar> equals <literal>aout</literal>, and
- will delete the minor number from long shlib names if
- <makevar>PORTOBJFORMAT</makevar> equals
- <literal>elf</literal>.</para>
-
- <para>In cases where you really need to install shlibs with two
- versions on an ELF system or those with one version on an a.out
- system (for instance, ports that install compatibility libraries for
- other operating systems), define the variable
- <makevar>NO_FILTER_SHLIBS</makevar>. This will turn off the editing
- of <filename>pkg-plist</filename> mentioned in the previous
- paragraph.</para>
- </sect1>
-
- <sect1>
- <title><literal>ldconfig</literal></title>
-
- <para>The <literal>ldconfig</literal> line in Makefiles should
- read:</para>
-
- <programlisting>${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ....</programlisting>
-
- <para>In <filename>pkg-plist</filename> it should read;</para>
-
- <programlisting>@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m ...
-@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R</programlisting>
-
- <para>This is to ensure that the correct <command>ldconfig</command>
- will be called depending on the format of the package, not the
- default format of the system.</para>
- </sect1>
- </chapter>
-
--->
-
- <chapter id="porting-masterdir">
- <title><makevar>MASTERDIR</makevar></title>
-
- <para>If your port needs to build slightly different versions of
- packages by having a variable (for instance, resolution, or paper
- size) take different values, create one subdirectory per package to
- make it easier for users to see what to do, but try to share as many
- files as possible between ports. Typically you only need a very short
- <filename>Makefile</filename> in all but one of the directories if you
- use variables cleverly. In the sole <filename>Makefiles</filename>,
- you can use <makevar>MASTERDIR</makevar> to specify the directory
- where the rest of the files are. Also, use a variable as part of
- <link linkend="porting-pkgname"><makevar>PKGNAMESUFFIX</makevar></link> so
- the packages will have different names.</para>
-
- <para>This will be best demonstrated by an example. This is part of
- <filename>japanese/xdvi300/Makefile</filename>;</para>
-
- <programlisting>PORTNAME= xdvi
-PORTVERSION= 17
-PKGNAMEPREFIX= ja-
-PKGNAMESUFFIX= ${RESOLUTION}
- :
-# default
-RESOLUTION?= 300
-.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \
- ${RESOLUTION} != 300 && ${RESOLUTION} != 400
- @${ECHO} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\""
- @${ECHO} "Possible values are: 118, 240, 300 (default) and 400."
- @${FALSE}
-.endif</programlisting>
-
- <para><filename>japanese/xdvi300</filename> also has all the regular
- patches, package files, etc. If you type <command>make</command>
- there, it will take the default value for the resolution (300) and
- build the port normally.</para>
-
- <para>As for other resolutions, this is the <emphasis>entire</emphasis>
- <filename>xdvi118/Makefile</filename>:</para>
-
- <programlisting>RESOLUTION= 118
-MASTERDIR= ${.CURDIR}/../xdvi300
-
-.include ${MASTERDIR}/Makefile</programlisting>
-
- <para>(<filename>xdvi240/Makefile</filename> and
- <filename>xdvi400/Makefile</filename> are similar). The
- <makevar>MASTERDIR</makevar> definition tells
- <filename>bsd.port.mk</filename> that the regular set of
- subdirectories like <makevar>FILESDIR</makevar> and
- <makevar>SCRIPTDIR</makevar> are to be found under
- <filename>xdvi300</filename>. The <literal>RESOLUTION=118</literal>
- line will override the <literal>RESOLUTION=300</literal> line in
- <filename>xdvi300/Makefile</filename> and the port will be built with
- resolution set to 118.</para>
- </chapter>
-
- <chapter>
- <title>Shared library versions</title>
-
- <para>Please read our <ulink url="../handbook/policies-shlib.html">policy on
- shared library versioning</ulink> to understand what to do with
- shared library versions in general. Do not blindly assume software
- authors know what they are doing; many of them do not. It is very
- important that these details are carefully considered, as we have
- quite a unique situation where we are trying to have dozens of
- potentially incompatible software pairs co-exist. Careless port
- imports have caused great trouble regarding shared libraries in the
- past (ever wondered why the port <filename>jpeg-6b</filename> has a
- shared library version of 9?). If in doubt, send a message to the
- &a.ports;. Most of the time, your job ends by determining the right
- shared library version and making appropriate patches to implement
- it.</para>
-
-<!--
- <para>However, if there is a port which is a different version of the
- same software already in the tree, the situation is much more complex.
- In short, the FreeBSD implementation does not allow the user to
- specify to the linker which version of shared library to link against
- (the linker will always pick the highest numbered version). This
- means, if there is a <filename>libfoo.so.3.2</filename> and
- <filename>libfoo.so.4.0</filename> in the system, there is no way to
- tell the linker to link a particular application to
- <filename>libfoo.so.3.2</filename>. It is essentially completely
- overshadowed in terms of compilation-time linkage. In this case, the
- only solution is to rename the <emphasis>base</emphasis> part of the
- shared library. For instance, change
- <filename>libfoo.so.4.0</filename> to
- <filename>libfoo4.so.1.0</filename> so both version 3.2 and 4.0 can be
- linked from other ports.</para>
--->
- </chapter>
-
- <chapter id="porting-manpages">
- <title>Manpages</title>
-
- <para>The <makevar>MAN[1-9LN]</makevar> variables will automatically add
- any manpages to <filename>pkg-plist</filename> (this means you must
- <emphasis>not</emphasis> list manpages in the
- <filename>pkg-plist</filename>&mdash;see <link
- linkend="porting-plist">generating PLIST</link> for more). It also
- makes the install stage automatically compress or uncompress manpages
- depending on the setting of <makevar>NOMANCOMPRESS</makevar> in
- <filename>/etc/make.conf</filename>.</para>
-
- <para>If your port tries to install multiple names for manpages using
- symlinks or hardlinks, you must use the <makevar>MLINKS</makevar>
- variable to identify these. The link installed by your port will
- be destroyed and recreated by <filename>bsd.port.mk</filename>
- to make sure it points to the correct file. Any manpages
- listed in MLINKS must not be listed in the
- <filename>pkg-plist</filename>.</para>
-
- <para>To specify whether the manpages are compressed upon installation,
- use the <makevar>MANCOMPRESSED</makevar> variable. This variable can
- take three values, <literal>yes</literal>, <literal>no</literal> and
- <literal>maybe</literal>. <literal>yes</literal> means manpages are
- already installed compressed, <literal>no</literal> means they are
- not, and <literal>maybe</literal> means the software already respects
- the value of <makevar>NOMANCOMPRESS</makevar> so
- <filename>bsd.port.mk</filename> does not have to do anything
- special.</para>
-
- <para><makevar>MANCOMPRESSED</makevar> is automatically set to
- <literal>yes</literal> if <makevar>USE_IMAKE</makevar> is set and
- <makevar>NO_INSTALL_MANPAGES</makevar> is not set, and to
- <literal>no</literal> otherwise. You do not have to explicitly define
- it unless the default is not suitable for your port.</para>
-
- <para>If your port anchors its man tree somewhere other than
- <makevar>PREFIX</makevar>, you can use the
- <makevar>MANPREFIX</makevar> to set it. Also, if only manpages in
- certain sections go in a non-standard place, such as some Perl modules
- ports, you can set individual man paths using
- <makevar>MAN<replaceable>sect</replaceable>PREFIX</makevar> (where
- <replaceable>sect</replaceable> is one of <literal>1-9</literal>,
- <literal>L</literal> or <literal>N</literal>).</para>
-
- <para>If your manpages go to language-specific subdirectories, set the
- name of the languages to <makevar>MANLANG</makevar>. The value of
- this variable defaults to <literal>""</literal> (i.e., English
- only).</para>
-
- <para>Here is an example that puts it all together.</para>
-
- <programlisting>MAN1= foo.1
-MAN3= bar.3
-MAN4= baz.4
-MLINKS= foo.1 alt-name.8
-MANLANG= "" ja
-MAN3PREFIX= ${PREFIX}/share/foobar
-MANCOMPRESSED= yes</programlisting>
-
- <para>This states that six files are installed by this port;</para>
-
- <programlisting>${PREFIX}/man/man1/foo.1.gz
-${PREFIX}/man/ja/man1/foo.1.gz
-${PREFIX}/share/foobar/man/man3/bar.3.gz
-${PREFIX}/share/foobar/man/ja/man3/bar.3.gz
-${PREFIX}/man/man4/baz.4.gz
-${PREFIX}/man/ja/man4/baz.4.gz</programlisting>
-
- <para>Additionally <filename>${PREFIX}/man/man8/alt-name.8.gz</filename>
- may or may not be installed by your port. Regardless, a
- symlink will be made to join the foo(1) manpage and
- alt-name(8) manpage.</para>
-
- </chapter>
-
- <chapter id="porting-motif">
- <title>Ports that require Motif</title>
-
- <para>There are many programs that require a Motif library (available
- from several commercial vendors, while there is a free clone reported
- to be able to run many applications in
- <filename>x11-toolkits/lesstif</filename>) to compile. Since it is a
- popular toolkit and their licenses usually permit redistribution of
- statically linked binaries, we have made special provisions for
- handling ports that require Motif in a way that we can easily compile
- binaries linked either dynamically (for people who are compiling from
- the port) or statically (for people who distribute packages).</para>
-
- <sect1>
- <title><makevar>REQUIRES_MOTIF</makevar></title>
-
- <para>If your port requires Motif, define this variable in the
- Makefile. This will prevent people who do not own a copy of Motif
- from even attempting to build it.</para>
- </sect1>
-
- <sect1>
- <title><makevar>MOTIFLIB</makevar></title>
-
- <para>This variable will be set by <filename>bsd.port.mk</filename> to
- be the appropriate reference to the Motif library. Please patch the
- source to use this wherever the Motif library is referenced in the
- <filename>Makefile</filename> or
- <filename>Imakefile</filename>.</para>
-
- <para>There are two common cases:</para>
-
- <itemizedlist>
- <listitem>
- <para>If the port refers to the Motif library as
- <literal>-lXm</literal> in its <filename>Makefile</filename> or
- <filename>Imakefile</filename>, simply substitute
- <literal>&dollar;{MOTIFLIB}</literal> for it.</para>
- </listitem>
-
- <listitem>
- <para>If the port uses <literal>XmClientLibs</literal> in its
- <filename>Imakefile</filename>, change it to
- <literal>&dollar;{MOTIFLIB} &dollar;{XTOOLLIB}
- &dollar;{XLIB}</literal>.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Note that <makevar>MOTIFLIB</makevar> (usually) expands to
- <literal>-L/usr/X11R6/lib -lXm</literal> or
- <literal>/usr/X11R6/lib/libXm.a</literal>, so there is no need to
- add <literal>-L</literal> or <literal>-l</literal> in front.</para>
- </sect1>
- </chapter>
-
- <chapter>
- <title>X11 fonts</title>
-
- <para>If your port installs fonts for the X Window system, put them in
- <filename><makevar>X11BASE</makevar>/lib/X11/fonts/local</filename>.
- This directory is new to XFree86 release 3.3.3. If it does not exist,
- please create it, and print out a message urging the user to update
- their XFree86 to 3.3.3 or newer, or at least add this directory to the
- font path in <filename>/etc/XF86Config</filename>.</para>
- </chapter>
-
- <chapter id="porting-info">
- <title>Info files</title>
-
- <para>The new version of texinfo (included in 2.2.2-RELEASE and onwards)
- contains a utility called <command>install-info</command> to add and
- delete entries to the <filename>dir</filename> file. If your port
- installs any info documents, please follow these instructions so your
- port/package will correctly update the user's
- <filename><makevar>PREFIX</makevar>/info/dir</filename> file. (Sorry
- for the length of this section, but is it imperative to weave all the
- info files together. If done correctly, it will produce a
- <emphasis>beautiful</emphasis> listing, so please bear with me!</para>
-
- <para>First, this is what you (as a porter) need to know</para>
-
- <screen>&prompt.user; <userinput>install-info --help</userinput>
-install-info [OPTION]... [INFO-FILE [DIR-FILE]]
- Install INFO-FILE in the Info directory file DIR-FILE.
-
-Options:
---delete Delete existing entries in INFO-FILE;
- don't insert any new entries.
- :
---entry=TEXT Insert TEXT as an Info directory entry.
- :
---section=SEC Put this file's entries in section SEC of the directory. :</screen>
-
- <note>
- <para>This program will not actually <emphasis>install</emphasis> info
- files; it merely inserts or deletes entries in the
- <filename>dir</filename> file.</para>
- </note>
-
- <para>Here's a seven-step procedure to convert ports to use
- <command>install-info</command>.
- <filename>editors/emacs</filename> will be used as an
- example.</para>
-
- <procedure>
- <step>
- <para>Look at the texinfo sources and make a patch to insert
- <literal>@dircategory</literal> and <literal>@direntry</literal>
- statements to files that do not have them. This is part of my
- patch:</para>
-
- <programlisting>--- ./man/vip.texi.org Fri Jun 16 15:31:11 1995
-+++ ./man/vip.texi Tue May 20 01:28:33 1997
-@@ -2,6 +2,10 @@
-
- @setfilename ../info/vip
- @settitle VIP
-+@dircategory The Emacs editor and associated tools
-+@direntry
-+* VIP: (vip). A VI-emulation for Emacs.
-+@end direntry
-
- @iftex
- @finalout
- :</programlisting>
-
- <para>The format should be self-explanatory. Many authors leave a
- <filename>dir</filename> file in the source tree that contains all
- the entries you need, so look around before you try to write your
- own. Also, make sure you look into related ports and make the
- section names and entry indentations consistent (we recommend that
- all entry text start at the 4th tab stop).</para>
-
- <note>
- <para>Note that you can put only one info entry per file because
- of a bug in <command>install-info --delete</command> that
- deletes only the first entry if you specify multiple entries in
- the <email>@direntry</email> section.</para>
- </note>
-
- <para>You can give the <literal>dir</literal> entries to
- <command>install-info</command> as arguments
- (<option>--section</option> and <option>--entry</option>) instead
- of patching the texinfo sources. This probably is not a good
- idea for ports because you need to duplicate the same information
- in <emphasis>three</emphasis> places
- (<filename>Makefile</filename> and
- <literal>@exec</literal>/<literal>@unexec</literal> of
- <filename>pkg-plist</filename>; see below). However, if you have
- Japanese (or other multibyte encoding) info files, you will have
- to use the extra arguments to <command>install-info</command>
- because <command>makeinfo</command> cannot handle those texinfo
- sources. (See <filename>Makefile</filename> and
- <filename>pkg-plist</filename> of <filename>japanese/skk</filename>
- for examples on how to do this).</para>
- </step>
-
- <step>
- <para>Go back to the port directory and do a <command>make clean;
- make</command> and verify that the info files are regenerated
- from the texinfo sources. Since the texinfo sources are newer than
- the info files, they should be rebuilt when you type
- <command>make</command>; but many <filename>Makefile</filename>s
- do not include correct dependencies for info files. In
- <command>emacs</command>' case, it was necessary to patch the main
- <filename>Makefile.in</filename> so it would descend into the
- <filename>man</filename> subdirectory to rebuild the info
- pages.</para>
-
- <programlisting>--- ./Makefile.in.org Mon Aug 19 21:12:19 1996
-+++ ./Makefile.in Tue Apr 15 00:15:28 1997
-@@ -184,7 +184,7 @@
- # Subdirectories to make recursively. `lisp' is not included
- # because the compiled lisp files are part of the distribution
- # and you cannot remake them without installing Emacs first.
--SUBDIR = lib-src src
-+SUBDIR = lib-src src man
-
- # The makefiles of the directories in $SUBDIR.
- SUBDIR_MAKEFILES = lib-src/Makefile man/Makefile src/Makefile oldXMenu/Makefile
- lwlib/Makefile
---- ./man/Makefile.in.org Thu Jun 27 15:27:19 1996
-+++ ./man/Makefile.in Tue Apr 15 00:29:52 1997
-@@ -66,6 +66,7 @@
- ${srcdir}/gnu1.texi \
- ${srcdir}/glossary.texi
-
-+all: info
- info: $(INFO_TARGETS)
-
- dvi: $(DVI_TARGETS)</programlisting>
-
- <para>The second hunk was necessary because the default target in
- the <filename>man</filename> subdir is called
- <maketarget>info</maketarget>, while the main
- <filename>Makefile</filename> wants to call
- <maketarget>all</maketarget>. The installation of the
- <filename>info</filename> info file was also removed because we
- already have one with the same name in
- <filename>/usr/share/info</filename> (that patch is not shown
- here).</para>
- </step>
-
- <step>
- <para>If there is a place in the <filename>Makefile</filename> that
- is installing the <filename>dir</filename> file, delete it. Your
- port may not be doing it. Also, remove any commands that are
- otherwise mucking around with the <filename>dir</filename>
- file.</para>
-
- <programlisting>--- ./Makefile.in.org Mon Aug 19 21:12:19 1996
-+++ ./Makefile.in Mon Apr 14 23:38:07 1997
-@@ -368,14 +368,8 @@
- if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
- then \
- (cd ${infodir}; \
-- if [ -f dir ]; then \
-- if [ ! -f dir.old ]; then mv -f dir dir.old; \
-- else mv -f dir dir.bak; fi; \
-- fi; \
- cd ${srcdir}/info ; \
-- (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir);
-\
-- (cd $${thisdir}; chmod a+r ${infodir}/dir); \
- for f in ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* sc* vip*; do \
- (cd $${thisdir}; \
- ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \
- chmod a+r ${infodir}/$$f); \</programlisting>
- </step>
-
- <step>
- <para>(This step is only necessary if you are modifying an existing
- port.) Take a look at <filename>pkg-plist</filename> and delete
- anything that is trying to patch up <filename>info/dir</filename>.
- They may be in <filename>pkg-install</filename> or some other
- file, so search extensively.</para>
-
- <programlisting>Index: pkg-plist
-===================================================================
-RCS file: /usr/cvs/ports/editors/emacs/pkg-plist,v
-retrieving revision 1.15
-diff -u -r1.15 pkg-plist
---- pkg-plist 1997/03/04 08:04:00 1.15
-+++ pkg-plist 1997/04/15 06:32:12
-@@ -15,9 +15,6 @@
- man/man1/emacs.1.gz
- man/man1/etags.1.gz
- man/man1/ctags.1.gz
--@unexec cp %D/info/dir %D/info/dir.bak
--info/dir
--@unexec cp %D/info/dir.bak %D/info/dir
- info/cl
- info/cl-1
- info/cl-2</programlisting>
- </step>
-
- <step>
- <para>Add a <maketarget>post-install</maketarget> target to the
- <filename>Makefile</filename> to call
- <maketarget>install-info</maketarget> with the installed
- info files. (It is no longer necessary to create the
- <filename>dir</filename> file yourself;
- <command>install-info</command> automatically creates this
- file if it does not exist.)</para>
-
- <programlisting>Index: Makefile
-===================================================================
-RCS file: /usr/cvs/ports/editors/emacs/Makefile,v
-retrieving revision 1.26
-diff -u -r1.26 Makefile
---- Makefile 1996/11/19 13:14:40 1.26
-+++ Makefile 1997/05/20 10:25:09 1.28
-@@ -20,5 +20,8 @@
- post-install:
- .for file in emacs-19.34 emacsclient etags ctags b2m
- strip ${PREFIX}/bin/${file}
- .endfor
-+.for info in emacs vip viper forms gnus mh-e cl sc dired-x ediff ccmode
-+ install-info ${PREFIX}/info/${info} ${PREFIX}/info/dir
-+.endfor
-
- .include &lt;bsd.port.mk&gt;</programlisting>
- </step>
-
- <step>
- <para>Edit <filename>pkg-plist</filename> and add equivalent
- <literal>@exec</literal> statements and also
- <literal>@unexec</literal> for
- <command>pkg_delete</command>.</para>
-
- <programlisting>Index: pkg-plist
-===================================================================
-RCS file: /usr/cvs/ports/editors/emacs/pkg-plist,v
-retrieving revision 1.15
-diff -u -r1.15 pkg-plist
---- pkg-plist 1997/03/04 08:04:00 1.15
-+++ pkg-plist 1997/05/20 10:25:12 1.17
-@@ -16,7 +14,14 @@
- man/man1/etags.1.gz
- man/man1/ctags.1.gz
-+@unexec install-info --delete %D/info/emacs %D/info/dir
- :
-+@unexec install-info --delete %D/info/ccmode %D/info/dir
- info/cl
- info/cl-1
-@@ -87,6 +94,18 @@
- info/viper-3
- info/viper-4
-+@exec install-info %D/info/emacs %D/info/dir
- :
-+@exec install-info %D/info/ccmode %D/info/dir
- libexec/emacs/19.34/i386--freebsd/cvtmail
- libexec/emacs/19.34/i386--freebsd/digest-doc</programlisting>
-
- <note>
- <para>The <literal>@unexec install-info --delete</literal>
- commands have to be listed before the info files themselves so
- they can read the files. Also, the <literal>@exec
- install-info</literal> commands have to be after the info
- files and the <literal>@exec</literal> command that creates the
- the <filename>dir</filename> file.</para>
- </note>
- </step>
-
- <step>
- <para><link linkend="porting-testing">Test</link> and admire your
- work. <!-- smiley --><emphasis>:-)</emphasis>. Check the
- <filename>dir</filename> file before and after each step.</para>
- </step>
- </procedure>
- </chapter>
-
- <chapter>
- <title>The <filename>pkg-<replaceable>*</replaceable></filename> files</title>
-
- <para>There are some tricks we have not mentioned yet about the
- <filename>pkg-<replaceable>*</replaceable></filename> files
- that come in handy sometimes.</para>
-
- <sect1 id="porting-message">
- <title><filename>pkg-message</filename></title>
-
- <para>If you need to display a message to the installer, you may place
- the message in <filename>pkg-message</filename>. This capability is
- often useful to display additional installation steps to be taken
- after a <command>pkg_add</command> or to display licensing
- information.</para>
-
- <note>
- <para>The <filename>pkg-message</filename> file does not need to be
- added to <filename>pkg-plist</filename>. Also, it will not get
- automatically printed if the user is using the port, not the
- package, so you should probably display it from the
- <maketarget>post-install</maketarget> target yourself.</para>
- </note>
- </sect1>
-
- <sect1>
- <title><filename>pkg-install</filename></title>
-
- <para>If your port needs to execute commands when the binary package
- is installed with <command>pkg_add</command> you can do this via the
- <filename>pkg-install</filename> script. This script will
- automatically be added to the package, and will be run twice by
- <command>pkg_add</command>. The first time as
- <literal>&dollar;{SH} pkg-install &dollar;{PKGNAME}
- PRE-INSTALL</literal> and the second time as
- <literal>&dollar;{SH} pkg-install &dollar;{PKGNAME} POST-INSTALL</literal>.
- <literal>&dollar;2</literal> can be tested to determine which mode
- the script is being run in. The <envar>PKG_PREFIX</envar>
- environmental variable will be set to the package installation
- directory. See &man.pkg.add.1; for
- additional information.</para>
-
- <note>
- <para>This script is not run automatically if you install the port
- with <command>make install</command>. If you are depending on it
- being run, you will have to explicitly call it from your port's
- <filename>Makefile</filename>.</para>
- </note>
- </sect1>
-
- <sect1>
- <title><filename>pkg-req</filename></title>
-
- <para>If your port needs to determine if it should install or not, you
- can create a <filename>pkg-req</filename> &ldquo;requirements&rdquo;
- script. It will be invoked automatically at
- installation/deinstallation time to determine whether or not
- installation/deinstallation should proceed.</para>
- </sect1>
-
- <sect1 id="porting-plist">
- <title>Changing <filename>pkg-plist</filename> based on make
- variables</title>
-
- <para>Some ports, particularly the p5- ports, need to change their
- <filename>pkg-plist</filename> depending on what options they are
- configured with (or version of perl, in the case of p5- ports). To
- make this easy, any instances in the <filename>pkg-plist</filename> of
- <literal>%%OSREL%%</literal>, <literal>%%PERL_VER%%</literal>, and
- <literal>%%PERL_VERSION%%</literal> will be substituted for
- appropriately. The value of <literal>%%OSREL%%</literal> is the
- numeric revision of the operating system (e.g.,
- <literal>2.2.7</literal>). <literal>%%PERL_VERSION%%</literal> is
- the full version number of perl (e.g., <literal>5.00502</literal>)
- and <literal>%%PERL_VER%%</literal> is the perl version number minus
- the patchlevel (e.g., <literal>5.005</literal>).</para>
-
- <para>If you need to make other substitutions, you can set the
- <makevar>PLIST_SUB</makevar> variable with a list of
- <literal><replaceable>VAR</replaceable>=<replaceable>VALUE</replaceable></literal>
- pairs and instances of
- <literal>%%<replaceable>VAR</replaceable>%%</literal>' will be
- substituted with <replaceable>VALUE</replaceable> in the
- <filename>pkg-plist</filename>.</para>
-
- <para>For instance, if you have a port that installs many files in a
- version-specific subdirectory, you can put something like
-
- <programlisting>OCTAVE_VERSION= 2.0.13
-PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
-
- in the <filename>Makefile</filename> and use
- <literal>%%OCTAVE_VERSION%%</literal> wherever the version shows up
- in <filename>pkg-plist</filename>. That way, when you upgrade the port,
- you will not have to change dozens (or in some cases, hundreds) of
- lines in the <filename>pkg-plist</filename>.</para>
-
- <para>This substitution (as well as addition of any <link
- linkend="porting-manpages">man pages</link>) will be done between
- the <maketarget>do-install</maketarget> and
- <maketarget>post-install</maketarget> targets, by reading from
- <makevar>PLIST</makevar> and writing to <makevar>TMPPLIST</makevar>
- (default:
- <filename><makevar>WRKDIR</makevar>/.PLIST.mktmp</filename>). So if
- your port builds <makevar>PLIST</makevar> on the fly, do so in or
- before <maketarget>do-install</maketarget>. Also, if your port
- needs to edit the resulting file, do so in
- <maketarget>post-install</maketarget> to a file named
- <makevar>TMPPLIST</makevar>.</para>
- </sect1>
-
- <sect1>
- <title id="porting-pkgfiles">Changing the names of
- <filename>pkg-<replaceable>*</replaceable></filename> files</title>
-
- <para>All the names of <filename>pkg-<replaceable>*</replaceable></filename> files
- are defined using variables so you can change them in your
- <filename>Makefile</filename> if need be. This is especially useful
- when you are sharing the same <filename>pkg-<replaceable>*</replaceable></filename> files
- among several ports or have to write to one of the above files (see
- <link linkend="porting-wrkdir">writing to places other than
- <makevar>WRKDIR</makevar></link> for why it is a bad idea to write
- directly in to the <filename>pkg-<replaceable>*</replaceable></filename> subdirectory).</para>
-
- <para>Here is a list of variable names and their default
- values. (<makevar>PKGDIR</makevar> defaults to
- <makevar>${MASTERDIR}</makevar>.)</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable</entry>
- <entry>Default value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><makevar>COMMENT</makevar></entry>
- <entry><literal>${PKGDIR}/pkg-comment</literal></entry>
- </row>
-
- <row>
- <entry><makevar>DESCR</makevar></entry>
- <entry><literal>${PKGDIR}/pkg-descr</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PLIST</makevar></entry>
- <entry><literal>${PKGDIR}/pkg-plist</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGINSTALL</makevar></entry>
- <entry><literal>${PKGDIR}/pkg-install</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGDEINSTALL</makevar></entry>
- <entry><literal>${PKGDIR}/pkg-deinstall</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGREQ</makevar></entry>
- <entry><literal>${PKGDIR}/pkg-req</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGMESSAGE</makevar></entry>
- <entry><literal>${PKGDIR}/pkg-message</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Please change these variables rather than overriding
- <makevar>PKG_ARGS</makevar>. If you change
- <makevar>PKG_ARGS</makevar>, those files will not correctly be
- installed in <filename>/var/db/pkg</filename> upon install from a
- port.</para>
- </sect1>
- </chapter>
-
- <chapter>
- <title>Licensing Problems</title>
-
- <para>Some software packages have restrictive licenses or can be in
- violation of the law in some countries (such as violating a patent).
- What we can do with
- them varies a lot, depending on the exact wordings of the respective
- licenses.</para>
-
- <note>
- <para>It is your responsibility as a porter to read the licensing
- terms of the software and make sure that the FreeBSD project will
- not be held accountable for violating them by redistributing the
- source or compiled binaries either via ftp or CD-ROM. If in doubt,
- please contact the &a.ports;.</para>
- </note>
-
- <para>There are two variables you can set in the Makefile to handle the
- situations that arise frequently:</para>
-
- <orderedlist>
- <listitem>
- <para>If the port has a &ldquo;do not sell for profit&rdquo; type of
- license, set the variable <makevar>NO_CDROM</makevar> to a string
- describing the reason why. We will make sure such ports will not go
- into the CD-ROM come release time. The distfile and package will
- still be available via ftp.</para>
- </listitem>
-
- <listitem>
- <para>If the resulting package needs to be built uniquely for each
- site, or the resulting binary package cannot be distributed due to
- licensing; set the variable <makevar>NO_PACKAGE</makevar> to a
- string describing the reason why. We will make sure such packages
- will not go on the ftp site, nor into the CD-ROM come release time.
- The distfile will still be included on both however.</para>
- </listitem>
-
- <listitem>
- <para>If the port has legal restrictions on who can use it (e.g.,
- patented stuff) or has a &ldquo;no commercial use&rdquo; license,
- set the variable <makevar>RESTRICTED</makevar> to be the string
- describing the reason why. For such ports, the distfiles/packages
- will not be available even from our ftp sites.</para>
- </listitem>
- </orderedlist>
-
- <note>
- <para>The GNU General Public License (GPL), both version 1 and 2,
- should not be a problem for ports.</para>
- </note>
-
- <note>
- <para>If you are a committer, make sure you update the
- <filename>ports/LEGAL</filename> file too.</para>
- </note>
- </chapter>
-
- <chapter id="port-upgrading">
- <title>Upgrading</title>
-
- <para>When you notice that a port is out of date compared to the latest
- version from the original authors, first make sure you have the latest
- port. You can find them in the
- <filename>ports/ports-current</filename> directory of the ftp mirror
- sites. You may also use CVSup to keep your whole ports collection
- up-to-date, as described in <ulink url="../handbook/synching.html#CVSUP-CONFIG">the Handbook</ulink>.</para>
-
- <para>The next step is to send a mail to the maintainer, if one is
- listed in the port's <filename>Makefile</filename>. That person may
- already be working on an upgrade, or have a reason to not upgrade the
- port right now (because of, for example, stability problems of the new
- version).</para>
-
- <para>If the maintainer asks you to do the upgrade or there is not any
- such person to begin with, please make the upgrade and send the
- recursive diff (either unified or context diff is fine, but port
- committers appear to prefer unified diff more) of the new and old
- ports directories to us (e.g., if your modified port directory is
- called <filename>superedit</filename> and the original as in our tree
- is <filename>superedit.bak</filename>, then send us the result of
- <command>diff -ruN superedit.bak superedit</command>). Please examine
- the output to make sure all the changes make sense. The best way to
- send us the diff is by including it via &man.send-pr.1; (category
- <literal>ports</literal>). Please mention any added or deleted files
- in the message, as they have to be explicitly specified to CVS when
- doing a commit. If the diff is more than about 20KB, please compress
- and uuencode it; otherwise, just include it in the PR as is.</para>
-
- <note>
- <para>Once again, please use &man.diff.1; and not &man.shar.1; to send
- updates to existing ports!</para>
- </note>
- </chapter>
-
- <chapter>
- <title><anchor id="porting-dads">Dos and Don'ts</title>
-
- <para>Here is a list of common dos and don'ts that you encounter during
- the porting process.You should check your own port against this list,
- but you can also check ports in the PR database that others have
- submitted. Submit any comments on ports you check as described in
- <ulink url="../handbook/contrib-how.html#CONTRIB-GENERAL">Bug Reports and General
- Commentary</ulink>. Checking ports in the PR database will both make
- it faster for us to commit them, and prove that you know what you are
- doing.</para>
-
- <sect1>
- <title>Strip Binaries</title>
-
- <para>Do strip binaries. If the original source already strips the
- binaries, fine; otherwise you should add a
- <literal>post-install</literal> rule to to it yourself. Here is an
- example:</para>
-
- <programlisting>post-install:
- strip ${PREFIX}/bin/xdl</programlisting>
-
- <para>Use the &man.file.1; command on the installed executable to
- check whether the binary is stripped or not. If it does not say
- <literal>not stripped</literal>, it is stripped.</para>
- </sect1>
-
- <sect1>
- <title>INSTALL_* macros</title>
-
- <para>Do use the macros provided in <filename>bsd.port.mk</filename>
- to ensure correct modes and ownership of files in your own
- <maketarget>*-install</maketarget> targets.</para>
-
- <itemizedlist>
- <listitem>
- <para><makevar>INSTALL_PROGRAM</makevar> is a command to install
- binary executables.</para>
- </listitem>
-
- <listitem>
- <para><makevar>INSTALL_SCRIPT</makevar> is a command to install
- executable scripts.</para>
- </listitem>
-
- <listitem>
- <para><makevar>INSTALL_DATA</makevar> is a command to install
- sharable data.</para>
- </listitem>
-
- <listitem>
- <para><makevar>INSTALL_MAN</makevar> is a command to install
- manpages and other documentation (it does not compress
- anything).</para>
- </listitem>
- </itemizedlist>
-
- <para>These are basically the <command>install</command> command with
- all the appropriate flags. See below for an example on how to use
- them.</para>
- </sect1>
-
- <sect1 id="porting-wrkdir">
- <title><makevar>WRKDIR</makevar></title>
-
- <para>Do not write anything to files outside
- <makevar>WRKDIR</makevar>. <makevar>WRKDIR</makevar> is the only
- place that is guaranteed to be writable during the port build (see
- <ulink url="../handbook/ports-using.html#PORTS-CD">compiling ports from CDROM</ulink> for an
- example of building ports from a read-only tree). If you need to
- modify one of the <filename>pkg-<replaceable>*</replaceable></filename>
- files, do so by <link
- linkend="porting-pkgfiles">redefining a variable</link>, not by
- writing over it.</para>
- </sect1>
-
- <sect1 id="porting-wrkdirprefix">
- <title><makevar>WRKDIRPREFIX</makevar></title>
-
- <para>Make sure your port honors <makevar>WRKDIRPREFIX</makevar>.
- Most ports do not have to worry about this. In particular, if you
- are referring to a <makevar>WRKDIR</makevar> of another port, note
- that the correct location is
- <filename><makevar>WRKDIRPREFIX</makevar><makevar>PORTSDIR</makevar>/<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> not <filename><makevar>PORTSDIR</makevar>/<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> or <filename><makevar>.CURDIR</makevar>/../../<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> or some such.</para>
-
- <para>Also, if you are defining <makevar>WRKDIR</makevar> yourself,
- make sure you prepend
- <literal>&dollar;{WRKDIRPREFIX}&dollar;{.CURDIR}</literal> in the
- front.</para>
- </sect1>
-
- <sect1 id="porting-versions">
- <title>Differentiating operating systems and OS versions</title>
-
- <para>You may come across code that needs modifications or conditional
- compilation based upon what version of UNIX it is running under. If
- you need to make such changes to the code for conditional
- compilation, make sure you make the changes as general as possible
- so that we can back-port code to FreeBSD 1.x systems and cross-port
- to other BSD systems such as 4.4BSD from CSRG, BSD/386, 386BSD,
- NetBSD, and OpenBSD.</para>
-
- <para>The preferred way to tell 4.3BSD/Reno (1990) and newer versions
- of the BSD code apart is by using the <literal>BSD</literal> macro
- defined in <filename>&lt;sys/param.h&gt;</filename>. Hopefully that
- file is already included; if not, add the code:</para>
-
- <programlisting>#if (defined(__unix__) || defined(unix)) &amp;&amp; !defined(USG)
-#include &lt;sys/param.h&gt;
-#endif</programlisting>
-
- <para>to the proper place in the <filename>.c</filename> file. We
- believe that every system that defines these two symbols has
- <filename>sys/param.h</filename>. If you find a system that
- does not, we would like to know. Please send mail to the
- &a.ports;.</para>
-
- <para>Another way is to use the GNU Autoconf style of doing
- this:</para>
-
- <programlisting>#ifdef HAVE_SYS_PARAM_H
-#include &lt;sys/param.h&gt;
-#endif</programlisting>
-
- <para>Do not forget to add <literal>-DHAVE_SYS_PARAM_H</literal> to the
- <makevar>CFLAGS</makevar> in the <filename>Makefile</filename> for
- this method.</para>
-
- <para>Once you have <filename>sys/param.h</filename> included, you may
- use:</para>
-
- <programlisting>#if (defined(BSD) &amp;&amp; (BSD &gt;= 199103))</programlisting>
-
- <para>to detect if the code is being compiled on a 4.3 Net2 code base
- or newer (e.g. FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, BSD/386
- 1.1 and below).</para>
-
- <para>Use:</para>
-
- <programlisting>#if (defined(BSD) &amp;&amp; (BSD &gt;= 199306))</programlisting>
-
- <para>to detect if the code is being compiled on a 4.4 code base or
- newer (e.g. FreeBSD 2.x, 4.4, NetBSD 1.0, BSD/386 2.0 or
- above).</para>
-
- <para>The value of the <literal>BSD</literal> macro is
- <literal>199506</literal> for the 4.4BSD-Lite2 code base. This is
- stated for informational purposes only. It should not be used to
- distinguish between versions of FreeBSD based only on 4.4-Lite vs.
- versions that have merged in changes from 4.4-Lite2. The
- <literal>__FreeBSD__</literal> macro should be used instead.</para>
-
- <para>Use sparingly:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>__FreeBSD__</literal> is defined in all versions of
- FreeBSD. Use it if the change you are making
- <emphasis>only</emphasis> affects FreeBSD. Porting gotchas like
- the use of <literal>sys_errlist[]</literal> vs
- <function>strerror()</function> are Berkeleyisms, not FreeBSD
- changes.</para>
- </listitem>
-
- <listitem>
- <para>In FreeBSD 2.x, <literal>__FreeBSD__</literal> is defined to
- be <literal>2</literal>. In earlier versions, it is
- <literal>1</literal>. Later versions will bump it to match
- their major version number.</para>
- </listitem>
-
- <listitem>
- <para>If you need to tell the difference between a FreeBSD 1.x
- system and a FreeBSD 2.x or 3.x system, usually the right answer
- is to use the <literal>BSD</literal> macros described above. If
- there actually is a FreeBSD specific change (such as special
- shared library options when using <command>ld</command>) then it
- is OK to use <literal>__FreeBSD__</literal> and <literal>#if
- __FreeBSD__ &gt; 1</literal> to detect a FreeBSD 2.x and later
- system. If you need more granularity in detecting FreeBSD
- systems since 2.0-RELEASE you can use the following:</para>
-
- <programlisting>#if __FreeBSD__ &gt;= 2
-#include &lt;osreldate.h&gt;
-# if __FreeBSD_version &gt;= 199504
- /* 2.0.5+ release specific code here */
-# endif
-#endif</programlisting>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Release</entry>
- <entry><literal>__FreeBSD_version</literal></entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>2.0-RELEASE</entry>
- <entry>119411</entry>
- </row>
-
- <row>
- <entry>2.1-CURRENT</entry>
- <entry>199501, 199503</entry>
- </row>
-
- <row>
- <entry>2.0.5-RELEASE</entry>
- <entry>199504</entry>
- </row>
-
- <row>
- <entry>2.2-CURRENT before 2.1</entry>
- <entry>199508</entry>
- </row>
-
- <row>
- <entry>2.1.0-RELEASE</entry>
- <entry>199511</entry>
- </row>
-
- <row>
- <entry>2.2-CURRENT before 2.1.5</entry>
- <entry>199512</entry>
- </row>
-
- <row>
- <entry>2.1.5-RELEASE</entry>
- <entry>199607</entry>
- </row>
-
- <row>
- <entry>2.2-CURRENT before 2.1.6</entry>
- <entry>199608</entry>
- </row>
-
- <row>
- <entry>2.1.6-RELEASE</entry>
- <entry>199612</entry>
- </row>
-
- <row>
- <entry>2.1.7-RELEASE</entry>
- <entry>199612</entry>
- </row>
-
- <row>
- <entry>2.2-RELEASE</entry>
- <entry>220000</entry>
- </row>
-
- <row>
- <entry>2.2.1-RELEASE</entry>
- <entry>220000 (no change)</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after 2.2.1-RELEASE</entry>
- <entry>220000 (no change)</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after texinfo-3.9</entry>
- <entry>221001</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after top</entry>
- <entry>221002</entry>
- </row>
-
- <row>
- <entry>2.2.2-RELEASE</entry>
- <entry>222000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after 2.2.2-RELEASE</entry>
- <entry>222001</entry>
- </row>
-
- <row>
- <entry>2.2.5-RELEASE</entry>
- <entry>225000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after 2.2.5-RELEASE</entry>
- <entry>225001</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after ldconfig -R merge</entry>
- <entry>225002</entry>
- </row>
-
- <row>
- <entry>2.2.6-RELEASE</entry>
- <entry>226000</entry>
- </row>
-
- <row>
- <entry>2.2.7-RELEASE</entry>
- <entry>227000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after 2.2.7-RELEASE</entry>
- <entry>227001</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after semctl(2) change</entry>
- <entry>227002</entry>
- </row>
-
- <row>
- <entry>2.2.8-RELEASE</entry>
- <entry>228000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after 2.2.8-RELEASE</entry>
- <entry>228001</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT before mount(2) change</entry>
- <entry>300000</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT after mount(2) change</entry>
- <entry>300001</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT after semctl(2) change</entry>
- <entry>300002</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT after ioctl arg changes</entry>
- <entry>300003</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT after ELF conversion</entry>
- <entry>300004</entry>
- </row>
-
- <row>
- <entry>3.0-RELEASE</entry>
- <entry>300005</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT after 3.0-RELEASE</entry>
- <entry>300006</entry>
- </row>
-
- <row>
- <entry>3.0-STABLE after 3/4 branch</entry>
- <entry>300007</entry>
- </row>
-
- <row>
- <entry>3.1-RELEASE</entry>
- <entry>310000</entry>
- </row>
-
- <row>
- <entry>3.1-STABLE after 3.1-RELEASE</entry>
- <entry>310001</entry>
- </row>
-
- <row>
- <entry>3.1-STABLE after C++ constructor/destructor order
- change</entry>
- <entry>310002</entry>
- </row>
-
- <row>
- <entry>3.2-RELEASE</entry>
- <entry>320000</entry>
- </row>
-
- <row>
- <entry>3.2-STABLE</entry>
- <entry>320001</entry>
- </row>
-
- <row>
- <entry>3.2-STABLE after binary-incompatible IPFW and
- socket changes</entry>
- <entry>320002</entry>
- </row>
-
- <row>
- <entry>3.3-RELEASE</entry>
- <entry>330000</entry>
- </row>
-
- <row>
- <entry>3.3-STABLE</entry>
- <entry>330001</entry>
- </row>
-
- <row>
- <entry>3.3-STABLE after adding mkstemps() to libc</entry>
- <entry>330002</entry>
- </row>
-
- <row>
- <entry>3.4-RELEASE</entry>
- <entry>340000</entry>
- </row>
-
- <row>
- <entry>3.4-STABLE</entry>
- <entry>340001</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after 3.4 branch</entry>
- <entry>400000</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after change in dynamic linker
- handling</entry>
- <entry>400001</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after C++ constructor/destructor
- order change</entry>
- <entry>400002</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after functioning dladdr(3)</entry>
- <entry>400003</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after __deregister_frame_info dynamic
- linker bug fix (also 4.0-CURRENT after EGCS 1.1.2
- integration)
- </entry>
- <entry>400004</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after suser(9) API change
- (also 4.0-CURRENT after newbus)</entry>
- <entry>400005</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after cdevsw registration change</entry>
- <entry>400006</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after the addition of so_cred for
- socket level credentials</entry>
- <entry>400007</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after the addition of a poll syscall
- wrapper to libc_r</entry>
- <entry>400008</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after the change of the kernel's
- <literal>dev_t</literal> type to <literal>struct
- specinfo</literal> pointer</entry>
- <entry>400009</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after fixing a hole in jail(2)</entry>
- <entry>400010</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after the <literal>sigset_t</literal>
- datatype change</entry>
- <entry>400011</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after the cutover to the GCC 2.95.2
- compiler</entry>
- <entry>400012</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after adding pluggable linux-mode
- ioctl handlers</entry>
- <entry>400013</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after importing OpenSSL</entry>
- <entry>400014</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after the C++ ABI change in GCC 2.95.2
- from -fvtable-thunks to -fno-vtable-thunks by
- default</entry>
- <entry>400015</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT after importing OpenSSH</entry>
- <entry>400016</entry>
- </row>
-
- <row>
- <entry>4.0-RELEASE</entry>
- <entry>400017</entry>
- </row>
-
- <row>
- <entry>4.0-STABLE after 4.0-RELEASE</entry>
- <entry>400018</entry>
- </row>
-
- <row>
- <entry>4.0-STABLE after merging libxpg4 code into
- libc.</entry>
- <entry>400020</entry>
- </row>
-
- <row>
- <entry>4.0-STABLE after upgrading Binutils to 2.10.0, ELF
- branding changes, and tcsh in the base system.</entry>
- <entry>400021</entry>
- </row>
-
- <row>
- <entry>4.1-RELEASE</entry>
- <entry>410000</entry>
- </row>
-
- <row>
- <entry>4.1-STABLE after 4.1-RELEASE</entry>
- <entry>410001</entry>
- </row>
-
- <row>
- <entry>4.1-STABLE after setproctitle() moved from
- libutil to libc.</entry>
- <entry>410002</entry>
- </row>
-
- <row>
- <entry>4.1.1-RELEASE</entry>
- <entry>411000</entry>
- </row>
-
- <row>
- <entry>4.1.1-STABLE after 4.1.1-RELEASE</entry>
- <entry>411001</entry>
- </row>
-
- <row>
- <entry>4.2-RELEASE</entry>
- <entry>420000</entry>
- </row>
-
- <row>
- <entry>4.2-STABLE after combining libgcc.a and
- libgcc_r.a, and associated GCC linkage changes.</entry>
- <entry>420001</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT</entry>
- <entry>500000</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after adding addition ELF header fields,
- and changing our ELF binary branding method.</entry>
- <entry>500001</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after kld metadata changes.</entry>
- <entry>500002</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after buf/bio changes.</entry>
- <entry>500003</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after binutils upgrade.</entry>
- <entry>500004</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after merging libxpg4 code into
- libc and after TASKQ interface introduction.</entry>
- <entry>500005</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after the addition of AGP
- interfaces.</entry>
- <entry>500006</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after Perl upgrade to 5.6.0</entry>
- <entry>500007</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after the update of KAME code to
- 2000/07 sources.</entry>
- <entry>500008</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after ether_ifattach() and
- ether_ifdetach() changes.</entry>
- <entry>500009</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after changing mtree defaults
- back to original variant, adding -L to follow
- symlinks.</entry>
- <entry>500010</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after kqueue API changed.</entry>
- <entry>500011</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after setproctitle() moved from
- libutil to libc.</entry>
- <entry>500012</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after the first SMPng commit.</entry>
- <entry>500013</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after &lt;sys/select.h&gt; moved to
- &lt;sys/selinfo.h&gt;.</entry>
- <entry>500014</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after combining libgcc.a and
- libgcc_r.a, and associated GCC linkage changes.</entry>
- <entry>500015</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after change allowing libc and libc_r
- to be linked together, deprecating -pthread option.</entry>
- <entry>500016</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after switch from struct ucred to
- struct xucred to stabilize kernel-exported API for
- mountd et al.</entry>
- <entry>500017</entry>
- </row>
-
- <row>
- <entry>5.0-CURRENT after addition of CPUTYPE make variable
- for controlling CPU-specific optimizations.</entry>
- <entry>500018</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>Note that 2.2-STABLE sometimes identifies itself as
- &ldquo;2.2.5-STABLE&rdquo; after the 2.2.5-RELEASE. The pattern
- used to be year followed by the month, but we decided to change it
- to a more straightforward major/minor system starting from 2.2.
- This is because the parallel development on several branches made
- it infeasible to classify the releases simply by their real
- release dates. If you are making a port now, you do not have to
- worry about old -CURRENTs; they are listed here just for your
- reference.</para>
- </note>
-
- <para>In the hundreds of ports that have been done, there have only
- been one or two cases where <literal>__FreeBSD__</literal> should
- have been used. Just because an earlier port screwed up and used it
- in the wrong place does not mean you should do so too.</para>
- </sect1>
-
- <sect1>
- <title>Writing something after
- <filename>bsd.port.mk</filename></title>
-
- <para>Do not write anything after the <literal>.include
- &lt;bsd.port.mk&gt;</literal> line. It usually can be avoided by
- including <filename>bsd.port.pre.mk</filename> somewhere in the
- middle of your <filename>Makefile</filename> and
- <filename>bsd.port.post.mk</filename> at the end.</para>
-
- <note>
- <para>You need to include either the
- <filename>pre.mk</filename>/<filename>post.mk</filename> pair or
- <filename>bsd.port.mk</filename> only; do not mix these two.</para>
- </note>
-
- <para><filename>bsd.port.pre.mk</filename> only defines a few
- variables, which can be used in tests in the
- <filename>Makefile</filename>, <filename>bsd.port.post.mk</filename>
- defines the rest.</para>
-
- <para>Here are some important variables defined in
- <filename>bsd.port.pre.mk</filename> (this is not the complete list,
- please read <filename>bsd.port.mk</filename> for the complete
- list).</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><makevar>ARCH</makevar></entry>
- <entry>The architecture as returned by <command>uname
- -m</command> (e.g., <literal>i386</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>OPSYS</makevar></entry>
- <entry>The operating system type, as returned by
- <command>uname -s</command> (e.g.,
- <literal>FreeBSD</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>OSREL</makevar></entry>
- <entry>The release version of the operating system (e.g.,
- <literal>2.1.5</literal> or
- <literal>2.2.7</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>OSVERSION</makevar></entry>
- <entry>The numeric version of the operating system, same as
- <link
- linkend="porting-versions"><literal>__FreeBSD_version</literal></link>.</entry>
- </row>
-
- <row>
- <entry><makevar>PORTOBJFORMAT</makevar></entry>
- <entry>The object format of the system
- (<literal>aout</literal> or <literal>elf</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>LOCALBASE</makevar></entry>
- <entry>The base of the &ldquo;local&rdquo; tree (e.g.,
- <literal>/usr/local/</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>X11BASE</makevar></entry>
- <entry>The base of the &ldquo;X11&rdquo; tree (e.g.,
- <literal>/usr/X11R6</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>PREFIX</makevar></entry>
- <entry>Where the port installs itself (see <link
- linkend="porting-prefix">more on
- <makevar>PREFIX</makevar></link>).</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>If you have to define the variables
- <makevar>USE_IMAKE</makevar>, <makevar>USE_X_PREFIX</makevar>, or
- <makevar>MASTERDIR</makevar>, do so before including
- <filename>bsd.port.pre.mk</filename>.</para>
- </note>
-
- <para>Here are some examples of things you can write after
- <filename>bsd.port.pre.mk</filename>:</para>
-
- <programlisting># no need to compile lang/perl5 if perl5 is already in system
-.if ${OSVERSION} > 300003
-BROKEN= perl is in system
-.endif
-
-# only one shlib version number for ELF
-.if ${PORTOBJFORMAT} == "elf"
-TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}
-.else
-TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR}
-.endif
-
-# software already makes link for ELF, but not for a.out
-post-install:
-.if ${PORTOBJFORMAT} == "aout"
- ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so
-.endif</programlisting>
- </sect1>
-
- <sect1>
- <title>Install additional documentation</title>
-
- <para>If your software has some documentation other than the standard
- man and info pages that you think is useful for the user, install it
- under <filename><makevar>PREFIX</makevar>/share/doc</filename>.
- This can be done, like the previous item, in the
- <maketarget>post-install</maketarget> target.</para>
-
- <para>Create a new directory for your port. The directory name should
- reflect what the port is. This usually means
- <makevar>PORTNAME</makevar>. However, if you
- think the user might want different versions of the port to be
- installed at the same time, you can use the whole
- <makevar>PKGNAME</makevar>.</para>
-
- <para>Make the installation dependent to the variable
- <makevar>NOPORTDOCS</makevar> so that users can disable it in
- <filename>/etc/make.conf</filename>, like this:</para>
-
- <programlisting>post-install:
-.if !defined(NOPORTDOCS)
- ${MKDIR} ${PREFIX}/share/doc/xv
- ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${PREFIX}/share/doc/xv
-.endif</programlisting>
-
- <para>Do not forget to add them to <filename>pkg-plist</filename> too.
- (Do not worry about <makevar>NOPORTDOCS</makevar> here; there is
- currently no way for the packages to read variables from
- <filename>/etc/make.conf</filename>.)</para>
-
- <para>You can also use the <filename>pkg-message</filename> file to
- display messages upon installation. See the <link
- linkend="porting-message">using
- <filename>pkg-message</filename></link> section for
- details.</para>
-
- <note>
- <para><filename>pkg-message</filename> does not need to be added to
- <filename>pkg-plist</filename>.</para>
- </note>
- </sect1>
-
- <sect1>
- <title><makevar>DIST_SUBDIR</makevar></title>
-
- <para>Do not let your port clutter
- <filename>/usr/ports/distfiles</filename>. If your port requires a
- lot of files to be fetched, or contains a file that has a name that
- might conflict with other ports (e.g.,
- <filename>Makefile</filename>), set <makevar>DIST_SUBDIR</makevar>
- to the name of the port (<literal>${PORTNAME}</literal> or
- <literal>${PKGNAMEPREFIX}${PORTNAME}</literal>
- should work fine). This will change
- <makevar>DISTDIR</makevar> from the default
- <filename>/usr/ports/distfiles</filename> to
- <filename>/usr/ports/distfiles/<makevar>DIST_SUBDIR</makevar></filename>,
- and in effect puts everything that is required for your port into
- that subdirectory.</para>
-
- <para>It will also look at the subdirectory with the same name on the
- backup master site at <filename>ftp.FreeBSD.org</filename>.
- (Setting <makevar>DISTDIR</makevar> explicitly in your
- <makevar>Makefile</makevar> will not accomplish this, so please use
- <makevar>DIST_SUBDIR</makevar>.)</para>
-
- <note>
- <para>This does not affect the <makevar>MASTER_SITES</makevar> you
- define in your Makefile.</para>
- </note>
- </sect1>
-
- <sect1>
- <title>Package information</title>
-
- <para>Do include package information, i.e.
- <filename>pkg-comment</filename>, <filename>pkg-descr</filename>, and
- <filename>pkg-plist</filename>.</para>
-
- <note>
- <para>Note that these files are not used only for packaging anymore,
- and are <emphasis>mandatory</emphasis> now, even if
- <makevar>NO_PACKAGE</makevar> is set.</para>
- </note>
- </sect1>
-
- <sect1>
- <title>RCS strings</title>
-
- <para>Do not put RCS strings in patches. CVS will mangle them when we
- put the files into the ports tree, and when we check them out again,
- they will come out different and the patch will fail. RCS strings
- are surrounded by dollar (<literal>&dollar;</literal>) signs, and
- typically start with <literal>&dollar;Id</literal> or
- <literal>&dollar;RCS</literal>.</para>
- </sect1>
-
- <sect1>
- <title>Recursive diff</title>
-
- <para>Using the recurse (<option>-r</option>) option to
- <command>diff</command> to generate patches is fine, but please take
- a look at the resulting patches to make sure you do not have any
- unnecessary junk in there. In particular, diffs between two backup
- files, <filename>Makefiles</filename> when the port uses
- <command>Imake</command> or GNU <command>configure</command>, etc.,
- are unnecessary and should be deleted. If you had to edit
- <filename>configure.in</filename> and run
- <command>autoconf</command> to regenerate
- <command>configure</command>, do not take the diffs of
- <command>configure</command> (it often grows to a few thousand
- lines!); define <literal>USE_AUTOCONF=yes</literal> and take the
- diffs of <filename>configure.in</filename>.</para>
-
- <para>Also, if you had to delete a file, then you can do it in the
- <maketarget>post-extract</maketarget> target rather than as part of
- the patch. Once you are happy with the resulting diff, please split
- it up into one source file per patch file.</para>
- </sect1>
-
- <sect1 id="porting-prefix">
- <title><makevar>PREFIX</makevar></title>
-
- <para>Do try to make your port install relative to
- <makevar>PREFIX</makevar>. (The value of this variable will be set
- to <makevar>LOCALBASE</makevar> (default
- <filename>/usr/local</filename>), unless
- <makevar>USE_X_PREFIX</makevar> or <makevar>USE_IMAKE</makevar> is
- set, in which case it will be <makevar>X11BASE</makevar> (default
- <filename>/usr/X11R6</filename>).)</para>
-
- <para>Not hard-coding <filename>/usr/local</filename> or
- <filename>/usr/X11R6</filename> anywhere in the source will make the
- port much more flexible and able to cater to the needs of other
- sites. For X ports that use <command>imake</command>, this is
- automatic; otherwise, this can often be done by simply replacing the
- occurrences of <filename>/usr/local</filename> (or
- <filename>/usr/X11R6</filename> for X ports that do not use imake)
- in the various scripts/Makefiles in the port to read
- <makevar>PREFIX</makevar>, as this variable is automatically passed
- down to every stage of the build and install processes.</para>
-
- <para>Make sure your application isn't installing things in
- <filename>/usr/local</filename> instead of <makevar>PREFIX</makevar>.
- A quick test for this is to do this is:</para>
-
- <screen>&prompt.root; <userinput>make clean; make package PREFIX=/var/tmp/<replaceable>port-name</replaceable></userinput></screen>
-
- <para>If anything is installed outside of <makevar>PREFIX</makevar>,
- making the package creation process will complain that it
- can't find the files.</para>
-
- <para>This does not test for the existence of internal references,
- or correct use of <makevar>LOCALBASE</makevar> for references to
- files from other ports. Testing the installation in
- <filename>/var/tmp/<replaceable>port-name</replaceable></filename>
- to do that that while you have it installed would do that.</para>
-
- <para>Do not set <makevar>USE_X_PREFIX</makevar> unless your port
- truly requires it (i.e., it links against X libs or it needs to
- reference files in <makevar>X11BASE</makevar>).</para>
-
- <para>The variable <makevar>PREFIX</makevar> can be reassigned in your
- <filename>Makefile</filename> or in the user's environment.
- However, it is strongly discouraged for individual ports to set this
- variable explicitly in the <filename>Makefiles</filename>.</para>
-
- <para>Also, refer to programs/files from other ports with the
- variables mentioned above, not explicit pathnames. For instance, if
- your port requires a macro <literal>PAGER</literal> to be the full
- pathname of <command>less</command>, use the compiler flag:
-
- <programlisting>-DPAGER=\"&dollar;{PREFIX}/bin/less\"</programlisting>
-
- or
-
- <programlisting>-DPAGER=\"&dollar;{LOCALBASE}/bin/less\"</programlisting>
-
- if this is an X port, instead of
- <literal>-DPAGER=\"/usr/local/bin/less\".</literal> This way it will
- have a better chance of working if the system administrator has
- moved the whole `/usr/local' tree somewhere else.</para>
- </sect1>
-
- <sect1>
- <title>Subdirectories</title>
-
- <para>Try to let the port put things in the right subdirectories of
- <makevar>PREFIX</makevar>. Some ports lump everything and put it in
- the subdirectory with the port's name, which is incorrect. Also,
- many ports put everything except binaries, header files and manual
- pages in the a subdirectory of <filename>lib</filename>, which does
- not bode well with the BSD paradigm. Many of the files should be
- moved to one of the following: <filename>etc</filename>
- (setup/configuration files), <filename>libexec</filename>
- (executables started internally), <filename>sbin</filename>
- (executables for superusers/managers), <filename>info</filename>
- (documentation for info browser) or <filename>share</filename>
- (architecture independent files). See man &man.hier.7; for details,
- the rules governing
- <filename>/usr</filename> pretty much apply to
- <filename>/usr/local</filename> too. The exception are ports
- dealing with USENET &ldquo;news&rdquo;. They may use
- <filename><makevar>PREFIX</makevar>/news</filename> as a destination
- for their files.</para>
- </sect1>
-
- <sect1 id="porting-cleaning">
- <title>Cleaning up empty directories</title>
-
- <para>Do make your ports clean up after themselves when they are
- deinstalled. This is usually accomplished by adding
- <literal>@dirrm</literal> lines for all directories that are
- specifically created by the port. You need to delete subdirectories
- before you can delete parent directories.</para>
-
- <programlisting> :
-lib/X11/oneko/pixmaps/cat.xpm
-lib/X11/oneko/sounds/cat.au
- :
-@dirrm lib/X11/oneko/pixmaps
-@dirrm lib/X11/oneko/sounds
-@dirrm lib/X11/oneko</programlisting>
-
- <para>However, sometimes <literal>@dirrm</literal> will give you
- errors because other ports also share the same subdirectory. You
- can call <command>rmdir</command> from <literal>@unexec</literal> to
- remove only empty directories without warning.</para>
-
- <programlisting>@unexec rmdir %D/share/doc/gimp 2>/dev/null || true</programlisting>
-
- <para>This will neither print any error messages nor cause
- <command>pkg_delete</command> to exit abnormally even if
- <filename><makevar>PREFIX</makevar>/share/doc/gimp</filename> is not
- empty due to other ports installing some files in there.</para>
- </sect1>
-
- <sect1>
- <title>UIDs</title>
-
- <para>If your port requires a certain user to be on the installed
- system, let the <filename>pkg-install</filename> script call
- <command>pw</command> to create it automatically. Look at
- <filename>net/cvsup-mirror</filename> for an example.</para>
-
- <para>If your port must use the same user/group ID number when it is
- installed as a binary package as when it was compiled, then you must
- choose a free UID from 50 to 99 and register it below. Look at
- <filename>japanese/Wnn</filename> for an example.</para>
-
- <para>Make sure you do not use a UID already used by the system or
- other ports. This is the current list of UIDs between 50 and
- 99.</para>
-
- <programlisting>majordom:*:54:54:Majordomo Pseudo User:/usr/local/majordomo:/nonexistent
-cyrus:*:60:60:the cyrus mail server:/nonexistent:/nonexistent
-gnats:*:61:1:GNATS database owner:/usr/local/share/gnats/gnats-db:/bin/sh
-uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
-xten:*:67:67:X-10 daemon:/usr/local/xten:/nonexistent
-pop:*:68:6:Post Office Owner (popper):/nonexistent:/nonexistent
-wnn:*:69:7:Wnn:/nonexistent:/nonexistent
-ifmail:*:70:66:Ifmail user:/nonexistent:/nonexistent
-pgsql:*:70:70:PostgreSQL pseudo-user:/usr/local/pgsql:/bin/sh
-ircd:*:72:72:IRCd hybrid:/nonexistent:/nonexistent
-alias:*:81:81:QMail user:/var/qmail/alias:/nonexistent
-qmaill:*:83:81:QMail user:/var/qmail:/nonexistent
-qmaild:*:82:81:QMail user:/var/qmail:/nonexistent
-qmailq:*:85:82:QMail user:/var/qmail:/nonexistent
-qmails:*:87:82:QMail user:/var/qmail:/nonexistent
-qmailp:*:84:81:QMail user:/var/qmail:/nonexistent
-qmailr:*:86:82:QMail user:/var/qmail:/nonexistent
-msql:*:87:87:mSQL-2 pseudo-user:/var/db/msqldb:/bin/sh
-mysql:*:88:88:MySQL Daemon:/var/db/mysql:/sbin/nologin
-vpopmail:*:89:89::0:0:User &:/usr/local/vpopmail:/nonexistent</programlisting>
-
- <para>Please include a notice when you submit a port (or an upgrade)
- that reserves a new UID or GID in this range. This allows us to
- keep the list of reserved IDs up to date.</para>
- </sect1>
-
- <sect1>
- <title>Do things rationally</title>
-
- <para>The <filename>Makefile</filename> should do things simply and
- reasonably. If you can make it a couple of lines shorter or more
- readable, then do so. Examples include using a make
- <literal>.if</literal> construct instead of a shell
- <literal>if</literal> construct, not redefining
- <maketarget>do-extract</maketarget> if you can redefine
- <makevar>EXTRACT*</makevar> instead, and using
- <makevar>GNU_CONFIGURE</makevar> instead of <literal>CONFIGURE_ARGS
- += --prefix=&dollar;{PREFIX}</literal>.</para>
- </sect1>
-
- <sect1>
- <title>Respect <makevar>CFLAGS</makevar></title>
-
- <para>The port should respect the <makevar>CFLAGS</makevar> variable.
- If it does not, please add <literal>NO_PACKAGE=ignores
- cflags</literal> to the <filename>Makefile</filename>.</para>
-
- <para>An example of a <filename>Makefile</filename> respecting
- the <makevar>CFLAGS</makevar> variable follows. Note the
- <makevar>+=</makevar>:</para>
-
- <programlisting>CFLAGS += -Wall -Werror</programlisting>
-
- <para>Here is an example which does not respect the
- <makevar>CFLAGS</makevar> variable:</para>
-
- <programlisting>CFLAGS = -Wall -Werror</programlisting>
-
- <para>The <makevar>CFLAGS</makevar> variable is defined on
- FreeBSD systems in <filename>/etc/make.conf</filename>. The
- first example appends additional flags to the
- <makevar>CFLAGS</makevar> variable, preserving any system-wide
- definitions. The second example clobbers anything previously
- defined.</para>
- </sect1>
-
- <sect1>
- <title>Configuration files</title>
-
- <para>If your port requires some configuration files in
- <filename><makevar>PREFIX</makevar>/etc</filename>, do
- <emphasis>not</emphasis> just install them and list them in
- <filename>pkg-plist</filename>. That will cause
- <command>pkg_delete</command> to delete files carefully edited by
- the user and a new installation to wipe them out.</para>
-
- <para>Instead, install sample files with a suffix
- (<filename><replaceable>filename</replaceable>.sample</filename>
- will work well) and print out a <link
- linkend="porting-message">message</link> pointing out that the
- user has to copy and edit the file before the software can be made
- to work.</para>
- </sect1>
-
- <sect1>
- <title>Portlint</title>
-
- <para>Do check your work with <link
- linkend="porting-portlint"><command>portlint</command></link>
- before you submit or commit it.</para>
- </sect1>
-
- <sect1>
- <title>Feedback</title>
-
- <para>Do send applicable changes/patches to the original
- author/maintainer for inclusion in next release of the code. This
- will only make your job that much easier for the next
- release.</para>
- </sect1>
-
- <sect1>
- <title><filename>README.html</filename></title>
-
- <para>Do not include the <filename>README.html</filename> file. This
- file is not part of the cvs collection but is generated using the
- <command>make readme</command> command.
- </para>
- </sect1>
-
- <sect1>
- <title>Miscellanea</title>
-
- <para>The files <filename>pkg-comment</filename>,
- <filename>pkg-descr</filename>, and <filename>pkg-plist</filename>
- should each be double-checked. If you are reviewing a port and feel
- they can be worded better, do so.</para>
-
- <para>Do not copy more copies of the GNU General Public License into
- our system, please.</para>
-
- <para>Please be careful to note any legal issues! Do not let us
- illegally distribute software!</para>
- </sect1>
-
- <sect1>
- <title>If you are stuck&hellip;</title>
-
- <para>Do look at existing examples and the
- <filename>bsd.port.mk</filename> file before asking us questions!
- <!-- smiley --><emphasis>;-)</emphasis></para>
-
- <para>Do ask us questions if you have any trouble! Do not just beat
- your head against a wall! <!-- smiley
- --><emphasis>:-)</emphasis></para>
- </sect1>
- </chapter>
-
- <chapter id="porting-samplem">
- <title>A Sample <filename>Makefile</filename></title>
-
- <para>Here is a sample <filename>Makefile</filename> that you can use to
- create a new port. Make sure you remove all the extra comments (ones
- between brackets)!</para>
-
- <para>It is recommended that you follow this format (ordering of
- variables, empty lines between sections, etc.). This format is
- designed so that the most important information is easy to locate. We
- recommend that you use <link
- linkend="porting-portlint">portlint</link> to check the
- <filename>Makefile</filename>.</para>
-
- <programlisting>[the header...just to make it easier for us to identify the ports.]
-# New ports collection makefile for: xdvi
-[the "version required" line is only needed when the PORTVERSION
- variable is not specific enough to describe the port.]
-# Date created: 26 May 1995
-[this is the person who did the original port to FreeBSD, in particular, the
-person who wrote the first version of this Makefile. Remember, this should
-not be changed when upgrading the port later.]
-# Whom: Satoshi Asami &lt;asami@FreeBSD.org&gt;
-#
-# &dollar;FreeBSD&dollar;
-[ ^^^^^^^^^ This will be automatically replaced with RCS ID string by CVS
-when it is committed to our repository. If upgrading a port, do not alter
-this line back to "&dollar;FreeBSD&dollar;". CVS deals with it automatically.]
-#
-
-[section to describe the port itself and the master site - PORTNAME
- and PORTVERSION are always first, followed by CATEGORIES,
- and then MASTER_SITES, which can be followed by MASTER_SITE_SUBDIR.
- PKGNAMEPREFIX and PKGNAMESUFFIX, if needed, will be after that.
- Then comes DISTNAME, EXTRACT_SUFX and/or DISTFILES, and then
- EXTRACT_ONLY, as necessary.]
-PORTNAME= xdvi
-PORTVERSION= 18.2
-CATEGORIES= print
-[do not forget the trailing slash ("/")!
- if you are not using MASTER_SITE_* macros]
-MASTER_SITES= ${MASTER_SITE_XCONTRIB}
-MASTER_SITE_SUBDIR= applications
-PKGNAMEPREFIX= ja-
-DISTNAME= xdvi-pl18
-[set this if the source is not in the standard ".tar.gz" form]
-EXTRACT_SUFX= .tar.Z
-
-[section for distributed patches -- can be empty]
-PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/
-PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz
-
-[maintainer; *mandatory*! This is the person (preferably with commit
- privileges) whom a user can contact for questions and bug reports - this
- person should be the porter or someone who can forward questions to the
- original porter reasonably promptly. If you really do not want to have
- your address here, set it to "ports@FreeBSD.org".]
-MAINTAINER= asami@FreeBSD.org
-
-[dependencies -- can be empty]
-RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript
-LIB_DEPENDS= Xpm.5:${PORTSDIR}/graphics/xpm
-
-[this section is for other standard bsd.port.mk variables that do not
- belong to any of the above]
-[If it asks questions during configure, build, install...]
-IS_INTERACTIVE= yes
-[If it extracts to a directory other than ${DISTNAME}...]
-WRKSRC= ${WRKDIR}/xdvi-new
-[If the distributed patches were not made relative to ${WRKSRC}, you
- may need to tweak this]
-PATCH_DIST_STRIP= -p1
-[If it requires a "configure" script generated by GNU autoconf to be run]
-GNU_CONFIGURE= yes
-[If it requires GNU make, not /usr/bin/make, to build...]
-USE_GMAKE= yes
-[If it is an X application and requires "xmkmf -a" to be run...]
-USE_IMAKE= yes
-[et cetera.]
-
-[non-standard variables to be used in the rules below]
-MY_FAVORITE_RESPONSE= "yeah, right"
-
-[then the special rules, in the order they are called]
-pre-fetch:
- i go fetch something, yeah
-
-post-patch:
- i need to do something after patch, great
-
-pre-install:
- and then some more stuff before installing, wow
-
-[and then the epilogue]
-.include &lt;bsd.port.mk&gt;</programlisting>
- </chapter>
-
- <chapter id="porting-autoplist">
- <title>Automated package list creation</title>
-
- <para>First, make sure your port is almost complete, with only
- <filename>pkg-plist</filename> missing. Create an empty
- <filename>pkg-plist</filename>.</para>
-
- <screen>&prompt.root; <userinput>touch pkg-plist</userinput></screen>
-
- <para>Next, create a new set of directories which your port can be
- installed, and install any dependencies.</para>
-
- <screen>&prompt.root; <userinput>mtree -U -f /etc/mtree/BSD.local.dist -d -e -p /var/tmp/<replaceable>port-name</replaceable></userinput>
-&prompt.root; <userinput>make depends PREFIX=/var/tmp/<replaceable>port-name</replaceable></userinput></screen>
-
- <para>Store the directory structure in a new file.</para>
-
- <screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find * -type d) &gt; OLD-DIRS</userinput></screen>
-
- <para>If your port honors <makevar>PREFIX</makevar> (which it should)
- you can then install the port and create the package list.</para>
-
- <screen>&prompt.root; <userinput>make install PREFIX=/var/tmp/<replaceable>port-name</replaceable></userinput>
-&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find * \! -type d) &gt; pkg-plist</userinput></screen>
-
- <para>You must also add any newly created directories to the packing
- list.</para>
-
- <screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name && find * -type d) | comm -13 OLD-DIRS - | sed -e 's#^#@dirrm #' &gt;&gt; pkg-plist</replaceable></userinput></screen>
-
- <para>Finally, you need to tidy up the packing list by hand; it isn't
- <emphasis>all</emphasis> automated. Manual pages should be listed in
- the port's <filename>Makefile</filename> under
- <makevar>MAN<replaceable>n</replaceable></makevar>, and not in the
- package list. User configuration files should be removed, or
- installed as
- <filename><replaceable>filename</replaceable>.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="porting-info">info
- files</link> section. Any
- libraries installed by the port should be listed as specified in the
- <link linkend="porting-shlibs">shared libraries</link> section.</para>
- </chapter>
-
- <chapter id="porting-pkgname">
- <title>Package Names</title>
-
- <para>The following are the conventions you should follow in naming your
- packages. This is to have our package directory easy to scan, as
- there are already lots and lots of packages and users are going to
- turn away if they hurt their eyes!</para>
-
- <para>The package name should look like
- <filename><replaceable><optional>language<optional>_region</optional></optional>-name<optional><optional>-</optional>compiled.specifics</optional>-version.numbers</replaceable></filename>.</para>
-
- <para>The package name is defined as
- <literal>${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}</literal>.
- Make sure to set the variables to conform to that format.</para>
-
- <orderedlist>
- <listitem>
- <para>FreeBSD strives to support the native language of its users.
- The <replaceable>language-</replaceable> part should be a two
- letter abbreviation of the natural language defined by ISO-639 if
- the port is specific to a certain language. Examples are
- <literal>ja</literal> for Japanese, <literal>ru</literal> for
- Russian, <literal>vi</literal> for Vietnamese,
- <literal>zh</literal> for Chinese, <literal>ko</literal> for
- Korean and <literal>de</literal> for German.</para>
-
- <para>If the port is specific to a certain region within the
- language area, add the two letter country code as well.
- Examples are <literal>en_US</literal> for US English and
- <literal>fr_CH</literal> for Swiss French.</para>
-
- <para>The <replaceable>language-</replaceable> part should
- be set in the <makevar>PKGNAMEPREFIX</makevar> variable.</para>
- </listitem>
-
- <listitem>
- <para>The first letter of <filename>name</filename> part
- should be lowercase. (The rest of the name can contain
- capital letters, so use your own discretion when you are
- converting a software name that has some capital letters in it.)
- There is a tradition of naming Perl 5 modules by
- prepending <literal>p5-</literal> and converting the double-colon
- separator to a hyphen; for example, the
- <literal>Data::Dumper</literal> module becomes
- <literal>p5-Data-Dumper</literal>. If the software in question
- has numbers, hyphens, or underscores in its name, you may include
- them as well (like <literal>kinput2</literal>).</para>
- </listitem>
-
- <listitem>
- <para>If the port can be built with different <link
- linkend="porting-masterdir">hardcoded defaults</link> (usually
- part of the directory name in a family of ports), the
- <replaceable>-compiled.specifics</replaceable> part should state
- the compiled-in defaults (the hyphen is optional). Examples are
- papersize and font units.</para>
-
- <para>The <replaceable>compiled.specifics</replaceable> part
- should be set in the <makevar>PKGNAMESUFFIX</makevar>
- variable.</para>
- </listitem>
-
- <listitem>
- <para>The version string should follow a dash
- (<literal>-</literal>) and be a period-separated list of
- integers and single lowercase alphabetics. In particular,
- it is not permissible to have another dash inside the
- version string. The only exception is the string
- <literal>pl</literal> (meaning `patchlevel'), which can be
- used <emphasis>only</emphasis> when there are no major and
- minor version numbers in the software. If the software
- version has strings like "alpha", "beta", "rc", or "pre", take
- the first letter and put it immediately after a period.
- If the version string continues after those names, the
- numbers should follow the single alphabet without an extra
- period between them.</para>
-
- <para>The idea is to make it easier to sort ports by looking
- at the version string. In particular, make sure version
- number components are always delimited by a period, and
- if the date is part of the string, use the
- <literal><replaceable>yyyy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal>
- format, not
- <literal><replaceable>dd</replaceable>.<replaceable>mm</replaceable>.<replaceable>yyyy</replaceable></literal>
- or the non-Y2K compliant
- <literal><replaceable>yy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal>
- format.</para>
- </listitem>
- </orderedlist>
-
- <para>Here are some (real) examples on how to convert the name
- as called by the software authors to a suitable package
- name:</para>
-
- <informaltable frame="none">
- <tgroup cols="6">
- <thead>
- <row>
- <entry>Distribution Name</entry>
- <entry><makevar>PKGNAMEPREFIX</makevar></entry>
- <entry><makevar>PORTNAME</makevar></entry>
- <entry><makevar>PKGNAMESUFFIX</makevar></entry>
- <entry><makevar>PORTVERSION</makevar></entry>
- <entry>Reason</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>mule-2.2.2</entry>
- <entry>(empty)</entry>
- <entry>mule</entry>
- <entry>(empty)</entry>
- <entry>2.2.2</entry>
- <entry>No changes required</entry>
- </row>
-
- <row>
- <entry>XFree86-3.3.6</entry>
- <entry>(empty)</entry>
- <entry>XFree86</entry>
- <entry>(empty)</entry>
- <entry>3.3.6</entry>
- <entry>No changes required</entry>
- </row>
-
- <row>
- <entry>EmiClock-1.0.2</entry>
- <entry>(empty)</entry>
- <entry>emiclock</entry>
- <entry>(empty)</entry>
- <entry>1.0.2</entry>
- <entry>No uppercase names for single programs</entry>
- </row>
-
- <row>
- <entry>rdist-1.3alpha</entry>
- <entry>(empty)</entry>
- <entry>rdist</entry>
- <entry>(empty)</entry>
- <entry>1.3.a</entry>
- <entry>No strings like <literal>alpha</literal>
- allowed</entry>
- </row>
-
- <row>
- <entry>es-0.9-beta1</entry>
- <entry>(empty)</entry>
- <entry>es</entry>
- <entry>(empty)</entry>
- <entry>0.9.b1</entry>
- <entry>No strings like <literal>beta</literal>
- allowed</entry>
- </row>
-
- <row>
- <entry>mailman-2.0rc3</entry>
- <entry>(empty)</entry>
- <entry>mailman</entry>
- <entry>(empty)</entry>
- <entry>2.0.r3</entry>
- <entry>No strings like <literal>rc</literal>
- allowed</entry>
- </row>
-
- <row>
- <entry>v3.3beta021.src</entry>
- <entry>(empty)</entry>
- <entry>tiff</entry>
- <entry>(empty)</entry>
- <entry>3.3</entry>
- <entry>What the heck was that anyway?</entry>
- </row>
-
- <row>
- <entry>tvtwm</entry>
- <entry>(empty)</entry>
- <entry>tvtwm</entry>
- <entry>(empty)</entry>
- <entry>pl11</entry>
- <entry>Version string always required</entry>
- </row>
-
- <row>
- <entry>piewm</entry>
- <entry>(empty)</entry>
- <entry>piewm</entry>
- <entry>(empty)</entry>
- <entry>1.0</entry>
- <entry>Version string always required</entry>
- </row>
-
- <row>
- <entry>xvgr-2.10pl1</entry>
- <entry>(empty)</entry>
- <entry>xvgr</entry>
- <entry>(empty)</entry>
- <entry>2.10.1</entry>
- <entry><literal>pl</literal> allowed only when no
- major/minor version numbers</entry>
- </row>
-
- <row>
- <entry>gawk-2.15.6</entry>
- <entry>ja-</entry>
- <entry>gawk</entry>
- <entry>(empty)</entry>
- <entry>2.15.6</entry>
- <entry>Japanese language version</entry>
- </row>
-
- <row>
- <entry>psutils-1.13</entry>
- <entry>(empty)</entry>
- <entry>psutils</entry>
- <entry>-letter</entry>
- <entry>1.13</entry>
- <entry>Papersize hardcoded at package build time</entry>
- </row>
-
- <row>
- <entry>pkfonts</entry>
- <entry>(empty)</entry>
- <entry>pkfonts</entry>
- <entry>300</entry>
- <entry>1.0</entry>
- <entry>Package for 300dpi fonts</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If there is absolutely no trace of version information in the
- original source and it is unlikely that the original author will ever
- release another version, just set the version string to
- <literal>1.0</literal> (like the piewm example above). Otherwise, ask
- the original author or use the date string
- (<literal><replaceable>yyyy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal>)
- as the version.</para>
- </chapter>
-
- <chapter id="porting-categories">
- <title>Categories</title>
-
- <para>As you already know, ports are classified in several categories.
- But for this to work, it is important that porters and users understand
- what each category is for and how we decide what to put in each
- category.</para>
-
- <sect1>
- <title>Current list of categories</title>
-
- <para>First, this is the current list of port categories. Those
- marked with an asterisk (<literal>*</literal>) are
- <emphasis>virtual</emphasis> categories&mdash;those that do not have
- a corresponding subdirectory in the ports tree.</para>
-
- <note>
- <para>For non-virtual categories, you will find a one-line
- description in the <filename>pkg/COMMENT</filename> file in that
- subdirectory (e.g.,
- <filename>archivers/pkg/COMMENT</filename>).</para>
- </note>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Category</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>afterstep*</filename></entry>
- <entry>Ports to support the AfterStep window manager.</entry>
- </row>
-
- <row>
- <entry><filename>archivers</filename></entry>
- <entry>Archiving tools.</entry>
- </row>
-
- <row>
- <entry><filename>astro</filename></entry>
- <entry>Astronomical ports.</entry>
- </row>
-
- <row>
- <entry><filename>audio</filename></entry>
- <entry>Sound support.</entry>
- </row>
-
- <row>
- <entry><filename>benchmarks</filename></entry>
- <entry>Benchmarking utilities.</entry>
- </row>
-
- <row>
- <entry><filename>biology</filename></entry>
- <entry>Biology-related software.</entry>
- </row>
-
- <row>
- <entry><filename>cad</filename></entry>
- <entry>Computer aided design tools.</entry>
- </row>
-
- <row>
- <entry><filename>chinese</filename></entry>
- <entry>Chinese language support.</entry>
- </row>
-
- <row>
- <entry><filename>comms</filename></entry>
- <entry>Communication software. Mostly software to talk to
- your serial port.</entry>
- </row>
-
- <row>
- <entry><filename>converters</filename></entry>
- <entry>Character code converters.</entry>
- </row>
-
- <row>
- <entry><filename>databases</filename></entry>
- <entry>Databases.</entry>
- </row>
-
- <row>
- <entry><filename>deskutils</filename></entry>
- <entry>Things that used to be on the desktop before
- computers were invented.</entry>
- </row>
-
- <row>
- <entry><filename>devel</filename></entry>
- <entry>Development utilities. Do not put libraries here just
- because they are libraries&mdash;unless they truly do not
- belong anywhere else, they should not be in this
- category.</entry>
- </row>
-
- <row>
- <entry><filename>editors</filename></entry>
- <entry>General editors. Specialized editors go in the section
- for those tools (e.g., a mathematical-formula editor will go
- in <filename>math</filename>).</entry>
- </row>
-
- <row>
- <entry><filename>elisp*</filename></entry>
- <entry>Emacs-lisp ports.</entry>
- </row>
-
- <row>
- <entry><filename>emulators</filename></entry>
- <entry>Emulators for other operating systems. Terminal
- emulators do <emphasis>not</emphasis> belong
- here&mdash;X-based ones should go to
- <filename>x11</filename> and text-based ones to either
- <filename>comms</filename> or <filename>misc</filename>,
- depending on the exact functionality.</entry>
- </row>
-
- <row>
- <entry><filename>french</filename></entry>
- <entry>French language support.</entry>
- </row>
-
- <row>
- <entry><filename>ftp</filename></entry>
- <entry>FTP client and server utilities. If your
- port speaks both FTP and HTTP, put it in
- <filename>ftp</filename> with a secondary
- category of <filename>www</filename>.</entry>
- </row>
-
- <row>
- <entry><filename>games</filename></entry>
- <entry>Games.</entry>
- </row>
-
- <row>
- <entry><filename>german</filename></entry>
- <entry>German language support.</entry>
- </row>
-
- <row>
- <entry><filename>gnome*</filename></entry>
- <entry>Ports from the GNU Object Model Environment (GNOME)
- Project.</entry>
- </row>
-
- <row>
- <entry><filename>graphics</filename></entry>
- <entry>Graphics utilities.</entry>
- </row>
-
- <row>
- <entry><filename>hebrew</filename></entry>
- <entry>Hebrew language support.</entry>
- </row>
-
- <row>
- <entry><filename>irc</filename></entry>
- <entry>Internet Relay Chat utilities.</entry>
- </row>
-
- <row>
- <entry><filename>ipv6*</filename></entry>
- <entry>IPv6 related software.</entry>
- </row>
-
- <row>
- <entry><filename>japanese</filename></entry>
- <entry>Japanese language support.</entry>
- </row>
-
- <row>
- <entry><filename>java</filename></entry>
- <entry>Java language support.</entry>
- </row>
-
- <row>
- <entry><filename>kde*</filename></entry>
- <entry>Ports from the K Desktop Environment (KDE)
- Project.</entry>
- </row>
-
- <row>
- <entry><filename>korean</filename></entry>
- <entry>Korean language support.</entry>
- </row>
-
- <row>
- <entry><filename>lang</filename></entry>
- <entry>Programming languages.</entry>
- </row>
-
- <row>
- <entry><filename>linux*</filename></entry>
- <entry>Linux applications and support utilities.</entry>
- </row>
-
- <row>
- <entry><filename>mail</filename></entry>
- <entry>Mail software.</entry>
- </row>
-
- <row>
- <entry><filename>math</filename></entry>
- <entry>Numerical computation software and other utilities
- for mathematics.</entry>
- </row>
-
- <row>
- <entry><filename>mbone</filename></entry>
- <entry>MBone applications.</entry>
- </row>
-
- <row>
- <entry><filename>misc</filename></entry>
- <entry>Miscellaneous utilities&mdash;basically things that
- do not belong anywhere else. This is the only category
- that should not appear with any other non-virtual category.
- If you have <literal>misc</literal> with something else in
- your <makevar>CATEGORIES</makevar> line, that means you can
- safely delete <literal>misc</literal> and just put the port
- in that other subdirectory!</entry>
- </row>
-
- <row>
- <entry><filename>net</filename></entry>
- <entry>Miscellaneous networking software.</entry>
- </row>
-
- <row>
- <entry><filename>news</filename></entry>
- <entry>USENET news software.</entry>
- </row>
-
- <row>
- <entry><filename>offix*</filename></entry>
- <entry>Ports from the OffiX suite.</entry>
- </row>
-
- <row>
- <entry><filename>palm</filename></entry>
- <entry>Software support for the 3Com Palm(tm) series.</entry>
- </row>
-
- <row>
- <entry><filename>perl5*</filename></entry>
- <entry>Ports that require perl version 5 to run.</entry>
- </row>
-
- <row>
- <entry><filename>plan9*</filename></entry>
- <entry>Various programs from Plan9.</entry>
- </row>
-
- <row>
- <entry><filename>print</filename></entry>
- <entry>Printing software. Desktop publishing tools
- (previewers, etc.) belong here too.</entry>
- </row>
-
- <row>
- <entry><filename>python*</filename></entry>
- <entry>Software written in python.</entry>
- </row>
-
- <row>
- <entry><filename>ruby*</filename></entry>
- <entry>Software written in ruby.</entry>
- </row>
-
- <row>
- <entry><filename>russian</filename></entry>
- <entry>Russian language support.</entry>
- </row>
-
- <row>
- <entry><filename>science</filename></entry>
- <entry>Scientific ports that don't fit into other
- categories such as <filename>astro</filename>,
- <filename>biology</filename> and
- <filename>math</filename>.</entry>
- </row>
-
- <row>
- <entry><filename>security</filename></entry>
- <entry>Security utilities.</entry>
- </row>
-
- <row>
- <entry><filename>shells</filename></entry>
- <entry>Command line shells.</entry>
- </row>
-
- <row>
- <entry><filename>sysutils</filename></entry>
- <entry>System utilities.</entry>
- </row>
-
- <row>
- <entry><filename>tcl76*</filename></entry>
- <entry>Ports that use Tcl version 7.6 to run.</entry>
- </row>
-
- <row>
- <entry><filename>tcl80*</filename></entry>
- <entry>Ports that use Tcl version 8.0 to run.</entry>
- </row>
-
- <row>
- <entry><filename>tcl81*</filename></entry>
- <entry>Ports that use Tcl version 8.1 to run.</entry>
- </row>
-
- <row>
- <entry><filename>tcl82*</filename></entry>
- <entry>Ports that use Tcl version 8.2 to run.</entry>
- </row>
-
- <row>
- <entry><filename>textproc</filename></entry>
- <entry>Text processing utilities. It does not include
- desktop publishing tools, which go to print/.</entry>
- </row>
-
- <row>
- <entry><filename>tk42*</filename></entry>
- <entry>Ports that use Tk version 4.2 to run.</entry>
- </row>
-
- <row>
- <entry><filename>tk80*</filename></entry>
- <entry>Ports that use Tk version 8.0 to run.</entry>
- </row>
-
- <row>
- <entry><filename>tk81*</filename></entry>
- <entry>Ports that use Tk version 8.1 to run.</entry>
- </row>
-
- <row>
- <entry><filename>tk82*</filename></entry>
- <entry>Ports that use Tk version 8.2 to run.</entry>
- </row>
-
- <row>
- <entry><filename>tkstep80*</filename></entry>
- <entry>Ports that use TkSTEP version 8.0 to run.</entry>
- </row>
-
- <row>
- <entry><filename>ukrainian</filename></entry>
- <entry>Ukrainian language support.</entry>
- </row>
-
- <row>
- <entry><filename>vietnamese</filename></entry>
- <entry>Vietnamese language support.</entry>
- </row>
-
- <row>
- <entry><filename>windowmaker*</filename></entry>
- <entry>Ports to support the WindowMaker window
- manager</entry>
- </row>
-
- <row>
- <entry><filename>www</filename></entry>
- <entry>Software related to the World Wide Web. HTML language
- support belongs here too.</entry>
- </row>
-
- <row>
- <entry>x11</entry>
- <entry>The X window system and friends. This category is only
- for software that directly supports the window system. Do not
- put regular X applications here. If your port is an X
- application, define <makevar>USE_XLIB</makevar> (implied by
- <makevar>USE_IMAKE</makevar>) and put it in the appropriate
- categories. Also, many of them go into other
- <filename>x11-*</filename> categories (see below).</entry>
- </row>
-
- <row>
- <entry><filename>x11-clocks</filename></entry>
- <entry>X11 clocks.</entry>
- </row>
-
- <row>
- <entry><filename>x11-fm</filename></entry>
- <entry>X11 file managers.</entry>
- </row>
-
- <row>
- <entry><filename>x11-fonts</filename></entry>
- <entry>X11 fonts and font utilities.</entry>
- </row>
-
- <row>
- <entry><filename>x11-servers</filename></entry>
- <entry>X11 servers.</entry>
- </row>
-
- <row>
- <entry><filename>x11-toolkits</filename></entry>
- <entry>X11 toolkits.</entry>
- </row>
-
- <row>
- <entry><filename>x11-wm</filename></entry>
- <entry>X11 window managers.</entry>
- </row>
-
- <row>
- <entry><filename>zope*</filename></entry>
- <entry>Zope support.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-
- <sect1>
- <title>Choosing the right category</title>
-
- <para>As many of the categories overlap, you often have to choose
- which of the categories should be the primary category of your port.
- There are several rules that govern this issue. Here is the list of
- priorities, in decreasing order of precedence.</para>
-
- <itemizedlist>
- <listitem>
- <para>Language specific categories always come first. For
- example, if your port installs Japanese X11 fonts, then your
- <makevar>CATEGORIES</makevar> line would read <literal>japanese
- x11-fonts</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Specific categories win over less-specific ones. For
- instance, an HTML editor should be listed as <literal>www
- editors</literal>, not the other way around. Also, you do not
- need to list <literal>net</literal> when the port belongs to
- any of <literal>irc</literal>, <literal>mail</literal>,
- <literal>mbone</literal>, <literal>news</literal>,
- <literal>security</literal>, or <literal>www</literal>.</para>
- </listitem>
-
- <listitem>
- <para><literal>x11</literal> is used as a secondary category only
- when the primary category is a natural language. In particular,
- you should not put <literal>x11</literal> in the category line
- for X applications.</para>
- </listitem>
-
- <listitem>
- <para><application>Emacs</application> modes should be
- placed in the same ports category as the application
- supported by the mode, not in
- <filename>editors</filename>. For example, an
- <application>Emacs</application> mode to edit source
- files of some programming language should go into
- <filename>lang</filename>.
- </para>
- </listitem>
-
- <listitem>
- <para>If your port truly does not belong anywhere else, put it in
- <literal>misc</literal>.</para>
- </listitem>
- </itemizedlist>
-
- <para>If you are not sure about the category, please put a comment to
- that effect in your <command>send-pr</command> submission so we can
- discuss it before we import it. If you are a committer, send a note
- to the &a.ports; so we can discuss it first&mdash;too often new ports are
- imported to the wrong category only to be moved right away.</para>
- </sect1>
- </chapter>
-
- <chapter>
- <title>Changes to this document and the ports system</title>
-
- <para>If you maintain a lot of ports, you should consider following the
- &a.ports;. Important changes to the way ports work will be announced
- there. You can always find more detailed information on the latest
- changes by looking at <ulink
- url="http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk"> the
- bsd.port.mk CVS log</ulink>.</para>
- </chapter>
-
- <chapter>
- <title>That is It, Folks!</title>
-
- <para>Boy, this sure was a long tutorial, wasn't it? Thanks for
- following us to here, really. Now that you know how to do a port,
- have at it and convert everything in the world into ports! That
- is the easiest way to start contributing to the FreeBSD Project!
- <!-- smiley --><emphasis>:-)</emphasis></para>
- </chapter>
-</book>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/en_US.ISO8859-1/books/porters-handbook/freebsd.dsl b/en_US.ISO8859-1/books/porters-handbook/freebsd.dsl
deleted file mode 100644
index 015ec7d482..0000000000
--- a/en_US.ISO8859-1/books/porters-handbook/freebsd.dsl
+++ /dev/null
@@ -1,41 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/books/porters-handbook/freebsd.dsl,v 1.1 2000/05/09 00:30:11 nik Exp $ -->
-
-<!-- Local DSSSL file for the Porter's Handbook. This is so we can include
- a link to the -ports mailing list at the bottom of the HTML files,
- rather than the -questions mailing list. -->
-
-<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
-<!ENTITY freebsd.dsl SYSTEM "../../share/sgml/freebsd.dsl" CDATA DSSSL>
-]>
-
-<style-sheet>
- <style-specification use="docbook">
- <style-specification-body>
-
- <![ %output.html; [
- (define ($email-footer$)
- (make sequence
- (literal "For questions about the FreeBSD ports system, e-mail <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:ports@freebsd.org"))
- (literal "ports@freebsd.org"))
- (literal ">.")
- (make empty-element gi: "br")
- (literal "For questions about this documentation, e-mail <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:doc@freebsd.org"))
- (literal "doc@freebsd.org"))
- (literal ">.")))
-
- <!-- Convert " ... " to `` ... '' in the HTML output. -->
- (element quote
- (make sequence
- (literal "``")
- (process-children)
- (literal "''")))
- ]]>
- </style-specification-body>
- </style-specification>
-
- <external-specification id="docbook" document="freebsd.dsl">
-</style-sheet>
diff --git a/en_US.ISO8859-1/books/ppp-primer/Makefile b/en_US.ISO8859-1/books/ppp-primer/Makefile
deleted file mode 100644
index 769be1a879..0000000000
--- a/en_US.ISO8859-1/books/ppp-primer/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# $FreeBSD: doc/en_US.ISO_8859-1/books/faq/Makefile,v 1.6 1999/09/06 06:52:39 peter Exp $
-#
-# Build the PPP PrimerQ
-#
-
-MAINTAINER=nik@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/books/ppp-primer/book.sgml b/en_US.ISO8859-1/books/ppp-primer/book.sgml
deleted file mode 100644
index 59cf194479..0000000000
--- a/en_US.ISO8859-1/books/ppp-primer/book.sgml
+++ /dev/null
@@ -1,2372 +0,0 @@
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-]>
-
-<book>
-
-<bookinfo>
-<title>PPP - Pedantic PPP Primer</title>
-
-<authorgroup>
-<author>
-<firstname>Steve</firstname>
-<surname>Sims</surname>
-<affiliation>
-<address><email>SimsS@IBM.net</email></address>
-</affiliation>
-</author>
-</authorgroup>
-
-<pubdate>$FreeBSD: doc/en_US.ISO_8859-1/books/ppp-primer/book.sgml,v 1.9 2001/04/17 01:39:30 dd Exp $</pubdate>
-
-<abstract><para>This is a step-by-step guide for configuring FreeBSD systems to act as
-a dial-up router/gateway in a Local Area Environment. All entries may
-be assumed to be relevant to FreeBSD 2.2+, unless otherwise noted.</para></abstract>
-
-</bookinfo>
-
-<preface>
-<title>Overview:</title>
-
-<para>The User-Mode PPP dialer in FreeBSD Version 2.2 (also known as:
-<emphasis remap=it>"IIJ-PPP"</emphasis> ) now supports Packet Aliasing for dial up
-connections to the Internet. This feature, also known as
-"<emphasis remap=it>Masquerading</emphasis>", "<emphasis remap=it>IP Aliasing</emphasis>", or "<emphasis remap=it>Network Address
-Translation</emphasis>", allows a FreeBSD system to act as a dial- on-demand
-router between an Ethernet-based Local Area Network and an Internet
-Service Provider. Systems on the LAN can use the FreeBSD system to
-forward information between the Internet by means of a single
-dial-connection.</para>
-
-<para>This guide explains how to:
-<itemizedlist>
-
-<listitem>
-<para>Configure the FreeBSD system to support dial-out connections,</para>
-</listitem>
-
-<listitem>
-<para>Share a dial-out connection with other systems in a network,</para>
-</listitem>
-
-<listitem>
-<para>Configure Windows platforms to use the FreeBSD system as a gateway to the Internet.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>While the focus of this guide is to assist in configuring IP Aliasing,
-it also includes specific examples of the configuration steps necessary
-to configure and install each individual component; each section stands
-alone and may be used to assist in the configuration of various aspects
-of FreeBSD internetworking.</para>
-
-</preface>
-
-<chapter>
-<title>Building the Local Area Network</title>
-
-<para> While the ppp program can, and usually is, be configured to provide
-services to <emphasis>only</emphasis> the local FreeBSD box it can also be used to serve as a
-"Gateway" (or "router") between other LAN-connected resources and the Internet or
-other Dial-Up service.</para>
-
-
-<sect1>
-<title>Typical Network Topology</title>
-
-<para>This guide assumes a typical Local Area Network lashed together as
-follows:
-<programlisting>
-+---------+ ----&gt; Dial-Up Internet Connection
-| FreeBSD | \ (i.e.: NetCom, AOL, AT&amp;T, EarthLink,
-etc)
-| |--------
-| "Curly" |
-| |
-+----+----+
- |
-|----+-------------+-------------+----| &lt;-- Ethernet Network
- | | |
- | | |
-+----+----+ +----+----+ +----+----+
-| | | | | |
-| Win95 | | WFW | | WinNT |
-| "Larry" | | "Moe" | | "Shemp" |
-| | | | | |
-+---------+ +---------+ +---------+</programlisting>
-</para>
-
-</sect1>
-
-<sect1>
-<title>Assumptions about the Local Area Network</title>
-
-<para>Some specific assumptions about this sample network are:</para>
-
-<para>Three workstations and a Server are connected with Ethernet
-cabling:
-<itemizedlist>
-
-<listitem>
-<para>a FreeBSD Server ("Curly") with an NE-2000 adapter configured as
-'ed0'</para>
-</listitem>
-
-<listitem>
-<para>a Windows-95 workstation ("Larry") with Microsoft's "native"
-32-bit TCP/IP drivers</para>
-</listitem>
-
-<listitem>
-<para>a Windows for Workgroups workstation ("Moe") with Microsoft's
-16-bit TCP/IP extensions</para>
-</listitem>
-
-<listitem>
-<para>a Windows NT workstation ("Shemp") with Microsoft's "native"
-32-bit TCP/IP drivers</para>
-</listitem>
-
-</itemizedlist>
- </para>
-
-<para>The IP addresses on the Ethernet side of this sample LAN have been
-taken from a pool addresses proposed reserved by RFC 1918 for use on
-private LANs, so you are free to use these actual IP addresses on your
-own LAN if you want. IP addresses are assigned as follows:</para>
-
-<informaltable>
- <tgroup cols=3>
- <thead>
- <row>
- <entry>Name</entry>
- <entry>IP Address</entry>
- <entry>Comment</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><hostid>Curly</hostid></entry>
- <entry><hostid role="ipaddr">192.168.1.1</hostid></entry>
- <entry>The FreeBSD box</entry>
- </row>
-
- <row>
- <entry><hostid>Larry</hostid></entry>
- <entry><hostid role="ipaddr">192.168.1.2</hostid></entry>
- <entry>The Win'95 box</entry>
- </row>
-
- <row>
- <entry><hostid>Moe</hostid></entry>
- <entry><hostid role="ipaddr">192.168.1.3</hostid></entry>
- <entry>The WfW box</entry>
- </row>
-
- <row>
- <entry><hostid>Shemp</hostid></entry>
- <entry><hostid role="ipaddr">192.168.1.4</hostid></entry>
- <entry>The Windows NT box</entry>
- </row>
- </tbody>
- </tgroup>
-</informaltable>
-
-<para>This guide assumes that the modem on the FreeBSD box is connected
-to the first serial port ('<filename>/dev/cuaa0</filename>' or '<emphasis remap=tt>COM1:</emphasis>' in
-DOS-terms).</para>
-
-<para>Finally, we'll also assume that your Internet Service Provider (ISP)
-automatically provides the IP addresses of both your PPP/FreeBSD side
-as well as the ISP's side. (i.e.: Dynamic IP Addresses on both ends
-of the link.) Specific details for configuring the Dial-Out side of
-PPP will be addressed in Section 2, "Configuring the FreeBSD System".</para>
-
-</sect1>
-</chapter>
-
-<chapter id="system-config">
-<title>FreeBSD System Configuration</title>
-
-<para>There are three basic pieces of information that must be known to
-the FreeBSD box before you can proceed with integrating the sample
-Local Area Network:</para>
-
-<para>
-<itemizedlist>
-
-<listitem>
-<para>The Host Name of the FreeBSD system; in our example it's "Curly",</para>
-</listitem>
-
-<listitem>
-<para>The Network configuration,</para>
-</listitem>
-
-<listitem>
-<para>The <filename>/etc/hosts</filename> file (which lists the names and IP addresses of
-the other systems in your network)</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>If you performed the installation of FreeBSD over a network
-connection some of this information may already be configured into
-your FreeBSD system.</para>
-
-<para>Even if you believe that the FreeBSD system was properly configured
-when it was installed you should at least verify each of these bits of
-information to prevent trouble in subsequent steps.</para>
-
-
-<sect1>
-<title>Verifying the FreeBSD Host Name</title>
-
-<para>It's possible that the FreeBSD host name was specified and saved
-when the system was initially installed. To verify that it was, enter
-the following command at a prompt:</para>
-
-<para>
-<informalexample>
-<screen># hostname</screen>
-</informalexample>
-</para>
-
-<para>The name of the host FreeBSD system will be displayed on a single
-line. If the name looks correct (this is very subjective :-) skip
-ahead to <xref linkend="verify-ether-if-config">.</para>
-
-<para>For example, in our sample network, we would see 'curly.my.domain'
-as a result of the `hostname` command if the name had been set
-correctly during, or after, installation. (At this point, don't worry
-too much about the ".my.domain" part, we'll sort this out later. The
-important part is the name up to the first dot.)</para>
-
-<para>If a host name wasn't specified when FreeBSD was installed you'll
-probably see 'myname.my.domain` as a response. You'll need to edit
-<filename>/etc/rc.conf</filename> to set the name of the machine.</para>
-
-
-<sect2>
-<title>Configuring the FreeBSD Host Name</title>
-
-<para><emphasis><emphasis remap=bf>Reminder: You must be logged in as 'root' to edit the
-system configuration files!</emphasis></emphasis></para>
-
-<para><emphasis><emphasis remap=bf>CAUTION: If you mangle the system configuration files,
-chances are your system WILL NOT BOOT correctly! Be careful!</emphasis></emphasis></para>
-
-<para>The configuration file that specifies the FreeBSD system's host
-name when the system boots is in <filename>/etc/rc.conf</filename>. Use the
-default text editor ('<emphasis remap=tt>ee</emphasis>') to edit this file.</para>
-
-<para>Logged in as user 'root' load <filename>/etc/rc.conf</filename> into the
-editor with the following command:
-<informalexample>
-<screen># ee /etc/rc.conf</screen>
-</informalexample>
-</para>
-
-<para>Using the arrow keys, scroll down until you find the line that
-specifies the host name of the FreeBSD system. By default, this
-section says:
-<informalexample>
-<screen>---
-### Basic network options: ###
-hostname="myname.my.domain" # Set this!
----</screen>
-</informalexample>
-
-Change this section to say (in our example):
-<informalexample>
-<screen>---
-### Basic network options: ###
-hostname="curly.my.domain" # Set this!
----</screen>
-</informalexample>
-</para>
-
-<para>Once the change to the host name has been made, press the 'Esc' key to
-access the command menu. Select "leave editor" and make sure to
-specify "save changes" when prompted.</para>
-
-</sect2>
-</sect1>
-
-<sect1 id="verify-ether-if-config">
-<title>Verifying the Ethernet Interface Configuration</title>
-
-<para>To reiterate our basic assumption, this guide assumes that the
-Ethernet Interface in the FreeBSD system is named '<emphasis remap=tt>ed0</emphasis>'. This is
-the default for NE-1000, NE-2000, WD/SMC models 8003, 8013 and Elite
-Ultra (8216) network adapters.</para>
-
-<para>Other models of network adapters may have different device names in
-FreeBSD. Check the FAQ for specifics about your network adapter. If
-you're not sure of the device name of your adapter, check the FreeBSD
-FAQ to determine the device name for the card you have and substitute
-that name (i.e.: '<emphasis remap=tt>de0</emphasis>', '<emphasis remap=tt>zp0</emphasis>', or similar) in the following
-steps.</para>
-
-<para>As was the case with the host name, the configuration for the
-FreeBSD system's Ethernet Interface may have been specified when the
-system was installed.</para>
-
-<para>To display the configuration for the interfaces in your
-FreeBSD system (Ethernet and others), enter the following command:
-<informalexample>
-<screen># ifconfig -a</screen>
-</informalexample>
-
-(In layman's terms: "Show me the <emphasis remap=bf>I</emphasis>nter<emphasis remap=bf>F</emphasis>ace <acronym>CONFIG</acronym>uration
-for my network devices.") </para>
-
-<para>An example:
-<informalexample>
-<screen># ifconfig -a
- ed0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu
-1500
- inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
- ether 01:02:03:04:05:06
- lp0: flags=8810&lt;POINTOPOINT,SIMPLEX,MULTICAST&gt; mtu 1500
- tun0: flags=8050&lt;POINTOPOINT,RUNNING, MULTICAST&gt; mtu 1500
- sl0: flags=c010&lt;POINTOPOINT,LINK2,MULTICAST&gt; mtu 552
- ppp0: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500
- lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; mtu 16384
- inet 127.0.0.1 netmask 0xff000000
-# _</screen>
-</informalexample>
-</para>
-
-<para>In this example, the following devices were displayed:</para>
-
-<para><emphasis remap=tt>ed0:</emphasis> The Ethernet Interface</para>
-
-<para><emphasis remap=tt>lp0:</emphasis> The Parallel Port Interface (ignored in this guide)</para>
-
-<para><emphasis remap=tt>tun0:</emphasis> The "tunnel" device; <emphasis>This is the one user-mode ppp uses!</emphasis></para>
-
-<para><emphasis remap=tt>sl0:</emphasis> The SL/IP device (ignored in this guide)</para>
-
-<para><emphasis remap=tt>ppp0:</emphasis> Another PPP device (for kernel ppp; ignored in this guide)</para>
-
-<para><emphasis remap=tt>lo0:</emphasis> The "Loopback" device (ignored in this guide)</para>
-
-<para>In this example, the 'ed0' device is up and running. The key
-indicators are:
-<orderedlist>
-
-<listitem>
-<para>Its status is "<acronym>UP</acronym>",</para>
-</listitem>
-
-<listitem>
-<para>It has an Internet ("<emphasis remap=tt>inet</emphasis>") address, (in this case, 192.168.1.1)</para>
-</listitem>
-
-<listitem>
-<para>It has a valid Subnet Mask ("netmask"; 0xffffff00 is the same as
-255.255.255.0), and</para>
-</listitem>
-
-<listitem>
-<para>It has a valid broadcast address (in this case, 192.168.1.255).</para>
-</listitem>
-
-</orderedlist>
-</para>
-
-<para>If the line for the Ethernet card had shown something similar to:
-<informalexample>
-<screen>ed0: flags=8802&lt;BROADCAST,SIMPLEX,MULTICAST&gt; mtu 1500
- ether 01:02:03:04:05:06</screen>
-</informalexample>
-
-then the Ethernet card hasn't been configured yet.</para>
-
-<para>If the configuration for the Ethernet interface is correct you can
-skip forward to <xref linkend="list-lan-hosts">.</para>
-
-<sect2 >
-<title>Configuring your Ethernet Interface</title>
-
-<para><emphasis><emphasis remap=bf>Reminder: You must be logged in as 'root' to edit the
-system configuration files!</emphasis></emphasis></para>
-
-<para><emphasis><emphasis remap=bf>CAUTION: If you mangle the system configuration files,
-chances are your system WILL NOT BOOT correctly! Be careful!</emphasis></emphasis></para>
-
-<para>The configuration file that specifies settings for the network
-interfaces when the system boots is in <filename>/etc/rc.conf</filename>. Use
-the default text editor ('ee') to edit this file.</para>
-
-<para>Logged in as user 'root' load <filename>/etc/rc.conf</filename> into the
-editor with the following command:</para>
-
-<para><command> # ee /etc/rc.conf</command></para>
-
-<para>About 20 lines from the top of <filename>/etc/rc.conf</filename> is the section
-that describes which network interfaces should be activated when the
-system boots. In the default configuration file the specific line
-that controls this is:</para>
-
-<para>
-<informalexample>
-<screen>network_interfaces="lo0" # List of network interfaces (lo0 is loopback).</screen>
-</informalexample>
-</para>
-
-<para>You'll need to amend this line to tell FreeBSD that you want to add
-another device, namely the '<emphasis remap=tt>ed0</emphasis>' device. Change this line to
-read:</para>
-
-<para>
-<informalexample>
-<screen>network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback).</screen>
-</informalexample>
-</para>
-
-<para>(Note the space between the definition for the loopback device
-("<emphasis remap=tt>lo0</emphasis>")
-and the Ethernet device ("<emphasis remap=tt>ed0</emphasis>")! </para>
-
-<para><emphasis><emphasis remap=bf> Reminder: If your Ethernet card isn't named '<emphasis remap=tt>ed0</emphasis>', specify
-the correct device name here instead.</emphasis></emphasis></para>
-
-<para>If you performed the installation of FreeBSD over a network
-connection then the '<literal>network_interfaces=</literal>' line may already
-include a reference to your Ethernet adapter. If it is, verify that
-it is the correct device name.</para>
-
-<para>Specify the Interface Settings for the Ethernet device
-('<emphasis remap=tt>ed0</emphasis>'):</para>
-
-<para>Beneath the line that specifies which interfaces should be
-activated are the lines that specify the actual settings for each
-interface. In the default <filename>/etc/rc.conf</filename> file is a single
-line that says:</para>
-
-<para>
-<informalexample>
-<screen>ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.</screen>
-</informalexample>
-</para>
-
-<para>You'll need to add another line after that to specify the settings
-for your '<emphasis remap=tt>ed0</emphasis>' device.</para>
-
-<para>If you performed the installation of FreeBSD over a network
-connection then there may already be an '<literal>ifconfig_ed0=</literal>' line
-after the loopback definition. If so, verify that it has the correct
-values.</para>
-
-<para>For our sample configuration we'll insert a line immediately after
-the loopback device definition that says:</para>
-
-<para>
-<informalexample>
-<screen>ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0"</screen>
-</informalexample>
-</para>
-
-<para>When you've finished editing <filename>/etc/rc.conf</filename> to specify and
-configure the network interfaces the section should look really close
-to:</para>
-
-<para>
-<informalexample>
-<screen>---
-network_interfaces="ed1 lo0" # List of network interfaces (lo0 is loopback).
-ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.
-ifconfig_ed1="inet 192.168.1.1 netmask 255.255.255.0"
----</screen>
-</informalexample>
-</para>
-
-<para>Once all of the necessary changes to <filename>/etc/rc.conf</filename> have
-been made, press the 'Esc' key to invoke the control menu. Select
-"leave editor" and be sure to select "save changes" when prompted.</para>
-
-</sect2>
-</sect1>
-
-<sect1>
-<title>Enabling Packet Forwarding</title>
-
-<para>By default the FreeBSD system will not forward IP packets between
-various network interfaces. In other words, routing functions (also
-known as gateway functions) are disabled.</para>
-
-<para>If your intent is to use a FreeBSD system as stand-alone Internet
-workstation and not as a gateway between LAN nodes and your ISP you
-should skip forward to <xref linkend="list-lan-hosts">.</para>
-
-<para>If you intend for the PPP program to service the local FreeBSD box
-as well as LAN workstations (as a router) you'll need to enable IP
-forwarding.</para>
-
-<para>To enable IP Packet forwarding you'll need to edit the
-<filename>/etc/rc.conf</filename> file.</para>
-
- <para>This file contains overrides of the defaults in
- <filename>/etc/defaults/rc.conf</filename>. The default gateway
- setting is controlled by the line</para>
-
- <programlisting>gateway_enable="NO"</programlisting>
-
- <para>in that file. To override it, add a line like</para>
-
- <programlisting>gateway_enable="YES"</programlisting>
-
- <para><filename>/etc/rc.conf</filename>.</para>
-
-<para><emphasis><emphasis remap=bf>NOTE: This line may already be set to
-'<literal>gateway_enable="YES"</literal>' if IP forwarding was enabled when the
-FreeBSD system was installed.</emphasis></emphasis></para>
-
-</sect1>
-
-<sect1 id="list-lan-hosts">
-<title>Creating the List of other LAN Hosts(<filename>/etc/hosts</filename>)</title>
-
-<para>The final step in configuring the LAN side of the FreeBSD system is
-to create a list of the names and TCP/IP addresses of the various
-systems that are connected to the Local Area Network. This list is
-stored in the '<filename>/etc/hosts</filename>' file.</para>
-
-<para>The default version of this file has only a single host name
-listing in it: the name and address of the loopback device ('lo0').
-By networking convention, this device is always named "localhost" and
-always has an IP address of 127.0.0.1. <xref
- linkend="verify-ether-if-config">.</para>
-
-
-<para>To edit the <filename>/etc/hosts</filename> file enter the following command:
-<informalexample>
-<screen> # ee /etc/hosts </screen>
-</informalexample>
-</para>
-
-<para>Scroll all the way to the bottom of the file (paying attention to
-the comments along the way; there's some good information there!) and
-enter (assuming our sample network) the following IP addresses and
-host names:
-<informalexample>
-<screen>192.168.1.1 curly curly.my.domain # FreeBSD System
-192.168.1.2 larry larry.my.domain # Windows '95 System
-192.168.1.3 moe moe.my.domain # Windows for Workgroups
-System
-192.168.1.4 shemp shemp.my.domain # Windows NT System</screen>
-</informalexample>
-</para>
-
-<para>(No changes are needed to the line for the '<emphasis remap=tt>127.0.0.1
-localhost</emphasis>' entry.)</para>
-
-<para>Once you've entered these lines, press the 'Esc' key to invoke the
-control menu. Select "leave editor" and be sure to select "save
-changes" when prompted.</para>
-
-</sect1>
-
-<sect1>
-<title>Testing the FreeBSD system</title>
-
-<para>Congratulations! Once you've made it to this point, the FreeBSD
-system is configured as a network-connected UNIX system! If you made
-any changes to the <filename>/etc/rc.conf</filename> file you should probably
-re-boot your FreeBSD system. This will accomplish two important
-objectives:
-<itemizedlist>
-
-<listitem>
-<para>Allow the changes to the interface configurations to be applied, and</para>
-</listitem>
-
-<listitem>
-<para>Verify that the system restarts without any glaring configuration errors.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>Once the system has been rebooted you should test the network
-interfaces.</para>
-
-
-<sect2>
-<title>Verifying the operation of the loopback device</title>
-
-<para>To verify that the loopback device is configured correctly, log in as
-'root' and enter:
-<informalexample>
-<screen># ping localhost</screen>
-</informalexample>
-</para>
-
-<para>You should see:
-<informalexample>
-<screen># ping localhost
-PING localhost.my.domain. (127.0.0.1): 56 data bytes
-64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.219 ms
-64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.287 ms
-64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.214 m
-[...]</screen>
-</informalexample>
-
-messages scroll by until you hit Ctrl-C to stop the madness.</para>
-
-</sect2>
-
-<sect2>
-<title>Verifying the operation of the Ethernet Device</title>
-
-<para>To verify that the Ethernet device is configured correctly, enter:</para>
-
-<para>
-<informalexample>
-<screen># ping curly</screen>
-</informalexample>
-</para>
-
-<para>You should see:
-<informalexample>
-<screen># ping curly
-PING curly.my.domain. (192.168.1.1): 56 data bytes
-64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.219 ms
-64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.200 ms
-64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.187 ms
-[...]</screen>
-</informalexample>
-
-messages.</para>
-
-<para>One important thing to look at in these two examples is that the
-names (loopback and curly) correctly correlate to their IP addresses
-(127.0.0.1 and 192.168.1.1). This verifies that the
-<filename>/etc/hosts</filename> files is correct.</para>
-
-<para>If the IP address for "curly" isn't 192.168.1.1 or the address for
-"localhost" isn't 127.0.0.1, return to <xref linkend="list-lan-hosts"> and review your
-entries in '<filename>/etc/hosts</filename>'.</para>
-
-<para>If the names and addresses are indicated correctly in the result of
-the ping command but there are errors displayed then something is
-amiss with the interface configuration(s). Return to <xref linkend="system-config"> and
-verify everything again.</para>
-
-<para>If everything here checks out, proceed with the next section.</para>
-
-</sect2>
-</sect1>
-</chapter>
-
-<chapter>
-<title>Configuring the PPP Dial-Out Connection</title>
-
-<para>There are two basic modes of operation of the ppp driver:
-"Interactive" and "Automatic".</para>
-
-<para>In Interactive mode you:</para>
-
-<para>
-<itemizedlist>
-
-<listitem>
-<para>Manually establish a connection to your ISP,</para>
-</listitem>
-
-<listitem>
-<para>Browse, surf, transfer files and mail, etc...,</para>
-</listitem>
-
-<listitem>
-<para>Manually disconnect from your ISP.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>In Automatic mode, the PPP program silently watches what goes on
-inside the FreeBSD system and automagically connects and disconnects
-with your ISP as required to make the Internet a seamless element of
-your network.</para>
-
-<para>In this section we'll address the configuration(s) for both modes
-with emphasis on configuring your `ppp` environment to operate in
-"Automatic" mode.</para>
-
-
-<sect1>
-<title>Backing up the original PPP configuration files</title>
-
- <note>
- <para>More recent versions of FreeBSD have the examples files in
- <filename>/usr/share/examples/ppp</filename>, so this step may not
- be necessary.</para>
- </note>
-
-<para>Before making any changes to the files which are used by PPP you
-should make a copy of the default files that were created when the
-FreeBSD system was installed.</para>
-
-<para>Log in as the 'root' user and perform the following steps:</para>
-
-<para>Change to the '<filename>/etc</filename> directory:</para>
-
-<para><emphasis remap=tt># cd /etc</emphasis></para>
-
-<para>Make a backup copy the original files in the 'ppp' directory:</para>
-
-<para><emphasis remap=tt># cp -R ppp ppp.ORIGINAL</emphasis></para>
-
-<para>You should now be able to see both a '<emphasis remap=tt>ppp</emphasis>' and a
-'<filename>ppp.ORIGINAL</filename>' subdirectory
-in the '<filename>/etc</filename>' directory.</para>
-
-</sect1>
-
-<sect1>
-<title>Create your own PPP configuration files</title>
-
-<para>By default, the FreeBSD installation process creates a number of
-sample configuration files in the <filename>/etc/ppp</filename>
-and <filename>/usr/share/examples/ppp</filename> directories. Please take
-some time to review these files; they were derived from working
-systems and represent the features and capabilities of the PPP
-program.</para>
-
-<para>You are <emphasis>strongly</emphasis> encouraged to learn from
-these sample files and apply them to your own configuration as
-necessary.</para>
-
-<para>For detailed information about the `ppp` program, read the ppp
-manpage:
-<informalexample>
-<screen># man ppp</screen>
-</informalexample>
-</para>
-
-<para>For detailed information about the `chat` scripting language used by
-the PPP dialer, read the chat manpage:
-<informalexample>
-<screen># man chat</screen>
-</informalexample>
-</para>
-
-<para>The remainder of this section describes the recommended contents of
-the PPP configuration files.</para>
-
-
-<sect2>
-<title>The '<filename>/etc/ppp/ppp.conf</filename>' file</title>
-
-<para>The '<filename>/etc/ppp/ppp.conf</filename>' file contains the information and
-settings required to set up a dial-out PPP connection. More than one
-configuration may be contained in this file. The FreeBSD handbook
-(XXX URL? XXX) describes the contents and syntax of this file in
-detail.</para>
-
-<para>This section will describe only the minimal configuration to get a
-dial-out connection working.</para>
-
-<para>Below is the /etc/ppp/ppp.conf file that we'll be using to provide a
-dial-out Internet gateway for our example LAN:
-
-<note>
- <para>The full syntax for <filename>ppp.conf</filename> is described in
- &man.ppp.8;. Particuarly, note that any line that isn't a label that
- ends with a colon (e.g., <literal>default:</literal>,
- <literal>interactive:</literal>), a command that begins with
- <quote>!</quote> (e.g., <literal>!include</literal>), or a comment
- <emphasis>must</emphasis> be indented!</para>
-</note>
-
-<programlisting>################################################################
-# PPP Configuration File ('/etc/ppp/ppp.conf')
-#
-# Default settings; These are always executed always when PPP
-# is invoked and apply to all system configurations.
-################################################################
-default:
- set device /dev/cuaa0
- set speed 57600
- disable pred1
- deny pred1
- disable lqr
- deny lqr
- set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"
- set redial 3 10
-#
-#
-################################################################
-#
-# For interactive mode use this configuration:
-#
-# Invoke with `ppp -alias interactive`
-#
-################################################################
-interactive:
- set authname Your_User_ID_On_Remote_System
- set authkey Your_Password_On_Remote_System
- set phone 1-800-123-4567
- set timeout 300
- set openmode active
- accept chap
-#
-################################################################
-#
-# For demand-dial (automatic) mode we'll use this configuration:
-#
-# Invoke with: 'ppp -auto -alias demand'
-#
-################################################################
-demand:
- set authname Your_User_ID_On_Remote_System
- set authkey Your_Password_On_Remote_System
- set phone 1-800-123-4567
- set timeout 300
- set openmode active
- accept chap
- set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0
- add 0 0 127.2.2.2
-################################################################
-# End of /etc/ppp/ppp.conf</programlisting>
-
-This file, taken verbatim from a working system, has three relevant
-configuration sections:</para>
-
-
-<sect3>
-<title>The "<emphasis remap=tt>default</emphasis>" Section</title>
-
-<para>The '<emphasis remap=tt>default:</emphasis>' section contains the values and settings
-used by every other section in the file. Essentially, this section is
-implicitly added to the configuration lines to each other section.</para>
-
-<para>This is a good place to put "global defaults" applicable to all
-dial-up sessions; especially modem settings and dialing prefixes which
-typically don't change based on which destination system you're
-connecting to.</para>
-
-<para>Following are the descriptions of each line in the "default" section
-of the sample '<filename>/etc/ppp/ppp.conf</filename>' file:
-<informalexample>
-<screen>set device /dev/cuaa0</screen>
-</informalexample>
-
-This statement informs the PPP program that it should use the first
-serial port.
-Under FreeBSD the '<filename>/dev/cuaa0</filename>' device is the same port that's
-known as "<emphasis remap=tt>COM1:</emphasis>" under DOS, Windows, Windows 95, etc....</para>
-
-<para>If your modem is on <emphasis remap=tt>COM2:</emphasis> you should specify
-'<filename>/dev/cuaa1</filename>; <emphasis remap=tt>COM3:</emphasis> would be '<filename>/dev/cuaa2</filename>'.</para>
-
-<para>
-<informalexample>
-<screen>set speed 57600 </screen>
-</informalexample>
-</para>
-
-<para>This line sets the transmit and receive speed for the connection
-between the serial port and the modem. While the modem used for this
-configuration is only a 28.8 device, setting this value to 57600 lets
-the serial link run at a higher rate to accommodate higher throughput
-as a result of the data compression built into late-model modems.</para>
-
-<para>If you have trouble communicating with your modem, try setting this
-value to 38400 or even as low as 19200.</para>
-
-<para>
-<informalexample>
-<screen>disable pred1
-deny pred1</screen>
-</informalexample>
-</para>
-
-<para>These two lines disable the "CCP/Predictor type 1" compression
-features of the PPP program. The current version of `ppp` supports
-data compression in accordance with draft Internet standards.
-Unfortunately many ISPs use equipment that does not support this
-capability. Since most modems try to perform on-the-fly compression
-anyway you're probably not losing much performance by disabling this
-feature on the FreeBSD side and denying the remote side from forcing
-it on you.</para>
-
-<para>
-<informalexample>
-<screen>disable lqr
-deny lqr</screen>
-</informalexample>
-</para>
-
-<para>These two lines control the "Line Quality Reporting" functions which
-are part of the complete Point-to-Point (PPP) protocol specification.
-(See RFC-1989 for details.)</para>
-
-<para>The first line, "disable lqr", instructs the PPP program to not
-attempt to report line quality status to the device on the remote end.</para>
-
-<para>The second line, "deny lqr", instructs the PPP program to deny any
-attempts by the remote end to reports line quality.</para>
-
-<para>As most modern dial-up modems have automatic error correction and
-detection and LQR reporting is not fully implemented in many vendor's
-products it's generally a safe bet to include these two lines in the
-default configuration.</para>
-
-<para>
-<informalexample>
-<screen>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0
-OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"</screen>
-</informalexample>
-</para>
-
-<para><emphasis>NOTE: (This statement should appear on a single line; ignore any
-line wrapping that may appear in this document.)</emphasis></para>
-
-<para>This line instructs the PPP program how to dial the modem and
-specifies some rudimentary guidelines for doing so:
-<itemizedlist>
-
-<listitem>
-<para>Attempts to dial should fail if the modem returns a "BUSY" result code,</para>
-</listitem>
-
-<listitem>
-<para>Attempts to dial should also fail if the modem returns a "NO CARRIER" result code,</para>
-</listitem>
-
-<listitem>
-<para>The PPP program should expect each of the following events to complete within a
-5-second timeout period:
-<itemizedlist>
-
-<listitem>
-<para>The PPP program will initially expect nothing (specified above
-by the \"\" portion of the statement) from the modem </para>
-</listitem>
-
-<listitem>
-<para>The program
-will send the modem initialization string "ATE1Q0M0" to the modem and
-await a response of "OK". If a response is not received, the program
-should send an attention command to the modem ("AT") and look again
-for a response of "OK", </para>
-</listitem>
-
-<listitem>
-<para>The program should delay for one second
-(specified by the "\\d" part of the statement, and send the dialing
-string to the modem. The "ATDT" portion of the statement is the
-standard modem prefix to dial using tone-dialing; if you do not have
-touch-tone service on your local phone line, replace the "ATDT" with
-"ATDP". The "\\T" string is a placeholder for the actual phone number
-(which will be automatically inserted as specified by the "set dial
-123-4567").</para>
-</listitem>
-
-</itemizedlist>
-</para>
-</listitem>
-
-<listitem>
-<para>Finally, before a (maximum) timeout of 40 seconds, the PPP
-program should expect to see a "CONNECT" result code returned from the
-modem.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>A failure at any point in this dialog will be interpreted as a dialing
-failure and the PPP program will fail to connect.</para>
-
-<para>(For a detailed description of the mini-scripting language used by the
-PPP dialer, refer to the "chat" manpage.)</para>
-
-<para>
-<informalexample>
-<screen>set redial 3 10</screen>
-</informalexample>
-
-This line specifies that if a dial connection cannot immediately be made
-the PPP program should retry (up to 3 times if necessary) with a delay of 10 seconds
-between redialing attempts.</para>
-
-</sect3>
-
-<sect3>
-<title>The "<emphasis remap=tt>interactive</emphasis>" Section</title>
-
-<para>The '<emphasis remap=tt>interactive:</emphasis>' section contains the values and
-settings used to set up an "interactive" PPP session with a specific
-remote system. Settings in this section will have the lines included
-in the "default" section included automatically.</para>
-
-<para>The example cited in this section of the guide presumes that you'll
-be connecting to a remote system that understands how to authenticate
-a user without any fancy scripting language. That is, this sample
-uses the CHAP protocol to set up the connection.</para>
-
-<para>A good rule of thumb is that if the Windows '95 dialer can set up a
-connection by just clicking the "Connect" button this sample
-configuration should work OK.</para>
-
-<para>If, on the other hand, when you connect to your ISP using Microsoft
-Windows '95 Dial-Up Networking you need to resort to using the "Dial
-Up Scripting Tool" from the Microsoft Plus! pack or you have to select
-"Bring up a terminal windows after dialing" in the Windows '95
-connection options then you'll need to look at the sample PPP
-configuration files and the ppp manpage for examples of "expect /
-response" scripting to make your ISP connection. The "set login"
-command is used for this purpose.</para>
-
-<para>Or even better, find an ISP who knows how to provide PAP or CHAP
-authentication!</para>
-
-<para>The configuration examples shown here have been successfully used to
-connect to:
-<itemizedlist>
-
-<listitem>
-<para>Various Shiva LanRovers</para>
-</listitem>
-
-<listitem>
-<para>The IBM Network (<ulink URL="http://www.ibm.net">http://www.ibm.net</ulink>)</para>
-</listitem>
-
-<listitem>
-<para>AT&amp;T WorldNet (<ulink URL="http://att.com/worldnet">http://att.com/worldnet</ulink>)</para>
-</listitem>
-
-<listitem>
-<para>Erol's (<ulink URL="http://www.erols.com">http://www.erols.com</ulink>)</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>Following are descriptions for each line in the "interactive" section
-of the sample '<filename>/etc/ppp/ppp.conf</filename>' file:</para>
-
-<para>
-<informalexample>
-<screen>set authname Your_User_ID_On_Remote_System</screen>
-</informalexample>
-
-This line specifies the name you would use to log in to the remote
-system. </para>
-
-<para>
-<informalexample>
-<screen>set authkey Your_Password_On_Remote_System</screen>
-</informalexample>
-
-This is the password you'd use to log in to the remote system.</para>
-
-<para>
-<informalexample>
-<screen>set phone 1-800-123-4567</screen>
-</informalexample>
-
-This is the phone number of the remote system. If you're inside a PBX
-you can
-prepend '<emphasis remap=tt>9, </emphasis>' to the number here.</para>
-
-<para>
-<informalexample>
-<screen>set timeout 300</screen>
-</informalexample>
-
-This tells the PPP program that it should automatically hang up the
-phone if no data has
-be exchanged for 300 seconds (5 minutes). You may wish to tailor this
-number to your
-specific requirements.</para>
-
-<para>
-<informalexample>
-<screen>set openmode active</screen>
-</informalexample>
-
-This tells the PPP program that once the modems are connected it
-should immediately attempt to negotiate the connection. Some remote
-sites do this automatically, some don't. This instructs your side of
-the link to take the initiative and try to set up the connection.</para>
-
-
-
-<screen>accept chap</screen>
-
-
-<para>This tells the PPP program to use the "Challenge-Handshake
-Authentication Protocol" to authenticate you. The values exchanged
-between the local and remote side for UserID and password are taken
-from the 'authname' and 'authkey' entries above.</para>
-
-</sect3>
-
-<sect3>
-<title>The "<emphasis remap=tt>demand</emphasis>" Section</title>
-
-<para>The "<emphasis remap=tt>demand</emphasis>" section contains the values and settings used
-to set up a "Dial-on-demand" PPP session with a specific remote
-system. Settings in this section will also have the lines included in
-the "default" section included automatically.</para>
-
-<para>Except for the last two lines in this section it is identical to
-the configuration section which defines the "interactive"
-configuration.</para>
-
-<para>As noted earlier, the examples cited in this section of
-the guide presume that you'll be connecting to a remote system that
-understands how to use the CHAP protocol to set up the connection.</para>
-
-<para>Following are descriptions for each line in the "demand" section of
-the sample '<filename>/etc/ppp/ppp.conf</filename>' file:</para>
-
-<para>
-<informalexample>
-<screen>set authname Your_User_ID_On_Remote_System</screen>
-</informalexample>
-
-This line specifies the name you would use to log in to the remote
-system. </para>
-
-<para>
-<informalexample>
-<screen>set authkey Your_Password_On_Remote_System</screen>
-</informalexample>
-
-This is the password you'd use to log in to the remote system.</para>
-
-<para>
-<informalexample>
-<screen>set phone 1-800-123-4567</screen>
-</informalexample>
-
-This is the phone number of the remote system.</para>
-
-<para>
-<informalexample>
-<screen>set timeout 300</screen>
-</informalexample>
-</para>
-
-<para>This tells the PPP program that it should automatically hang up the
-phone if no data has be exchanged for 300 seconds (5 minutes). You
-may wish to tailor this number to your specific requirements.</para>
-
-<para>
-<informalexample>
-<screen>set openmode active</screen>
-</informalexample>
-</para>
-
-<para>This tells the PPP program that once the modems are connected it
-should immediately attempt to negotiate the connection. Some remote
-sites do this automatically, some don't. This instructs your side of
-the link to take the initiative and try to set up the connection.</para>
-
-<para>
-<informalexample>
-<screen>accept chap</screen>
-</informalexample>
-</para>
-
-<para>This tells the PPP program to use the "Challenge-Handshake
-Authentication Protocol" to authenticate you. The values exchanged
-between the local and remote side for UserID and password are taken
-from the 'authname' and 'authkey' entries above.</para>
-
-<para>
-<informalexample>
-<screen>set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0</screen>
-</informalexample>
-</para>
-
-<para>This command sets up a pair of "fake" IP addresses for the local and
-remote sides of the PPP link. It instructs the PPP program to create
-an IP address of 127.1.1.1 for the local side of the '<emphasis remap=tt>tun0</emphasis>'
-(tunnel) device
-and 127.2.2.2 for the remote side. Appending '<filename>/0</filename>' to
-each address tells the PPP program that zero of the bits that make up
-these addresses are significant and can (in fact, must!) be negotiated
-between the local and remote systems when the link is established.
-The 255.255.255.0 string tells the PPP program what Subnet mask to
-apply to these pseudo-interfaces.</para>
-
-<para>Remember, we've assumed that your ISP provides the IP addresses for
-both ends of the link! If your ISP assigned you a specific IP address
-that you should use on your side when configuring your system, enter
-that IP address here <emphasis>instead</emphasis> of <emphasis remap=tt>127.1.1.1</emphasis>.</para>
-
-<para>Conversly, if your ISP gave you a specific IP address that he uses on
-his end you should enter that IP address here <emphasis>instead</emphasis> of
-<emphasis remap=tt>127.2.2.2</emphasis>.</para>
-
-<para>In both cases, it's probably a good idea to leave the '<filename>/0</filename>' on
-the end of each address. This gives the PPP program the opportunity
-to change the address(es) of the link if it <emphasis>has</emphasis> to.</para>
-
-<para>
-<informalexample>
-<screen>add 0 0 127.2.2.2</screen>
-</informalexample>
-</para>
-
-<para>This last line tells the PPP program that it should add a default
-route for IP traffic that points to the (fake) IP address of the ISP's
-system.</para>
-
-<para><emphasis><emphasis remap=bf>Note: If you used an ISP-specified address instead of
-<emphasis remap=tt>127.2.2.2</emphasis> on the preceeding line, use the same number here
-instead of <emphasis remap=tt>127.2.2.2</emphasis></emphasis></emphasis>.</para>
-
-<para>By adding this "fake" route for IP traffic, the PPP program can,
-while idle:
-<itemizedlist>
-
-<listitem>
-<para>Accept packets that FreeBSD doesn't already know how to forward,</para>
-</listitem>
-
-<listitem>
-<para>Establish a connection to the ISP "<emphasis>on-the-fly</emphasis>",</para>
-</listitem>
-
-<listitem>
-<para>Reconfigure the IP addresses of the local and remote side of the link,</para>
-</listitem>
-
-<listitem>
-<para>Forward packets between your workstation and the ISP.</para>
-</listitem>
-
-</itemizedlist>
-
-automatically!</para>
-
-<para>Once the number of seconds specified by the timeout value in the
-"default" section have elapsed without any TCP/IP traffic the PPP
-program will automatically close the dial-up connection and the
-process will begin again.</para>
-
-</sect3>
-</sect2>
-
-<sect2>
-<title>The '<filename>/etc/ppp/ppp.linkup</filename>' file</title>
-
-<para>The other file needed to complete the PPP configuration is found in
-'<filename>/etc/ppp/ppp.linkup</filename>'. This file contains instructions for
-the PPP program on what actions to take after a dial-up link is
-established.</para>
-
-<para>In the case of dial-on-demand configurations the PPP program will need
-to delete the default route that was created to the fake IP address of
-the remote side (127.2.2.2 in our example in the previous section) and
-install a new default route that points the actual IP address of the
-remote end (discovered during the dial-up connection setup).</para>
-
-<para>A representative '<filename>/etc/ppp/ppp.linkup</filename>' file:
-<informalexample>
-<screen>#########################################################################=
-
-# PPP Link Up File ('/etc/ppp/ppp.linkup')
-#
-# This file is checked after PPP establishes a network connection.
-#
-# This file is searched in the following order.
-#
-# 1) First, the IP address assigned to us is searched and
-# the associated command(s) are executed.
-#
-# 2) If the IP Address is not found, then the label name specified at
-
-# PPP startup time is searched and the associated command(s)
-# are executed.
-#
-# 3) If neither of the above are found then commands under the label
-# 'MYADDR:' are executed.
-#
-#########################################################################=
-
-#
-# This section is used for the "demand" configuration in
-# /etc/ppp/ppp.conf:
-demand:
- delete ALL
- add 0 0 HISADDR
-#
-# All other configurations in /etc/ppp/ppp.conf use this:
-#
-MYADDR:
- add 0 0 HISADDR
-########################################################################
-# End of /etc/ppp/ppp.linkup</screen>
-</informalexample>
-
-Notice that there is a section in this file named "demand:", identical
-to the configuration name used in the '<filename>/etc/ppp/ppp.conf</filename>'
-file. This section instructs the PPP program that once a link is
-established using this configuration, it must:
-<orderedlist>
-
-<listitem>
-<para>Remove any IP routing information that the PPP program has created</para>
-</listitem>
-
-<listitem>
-<para>Add a default route the remote end's actual address.</para>
-</listitem>
-
-</orderedlist>
-</para>
-
-<para>It's critical that those configurations in
-'<filename>/etc/ppp/ppp.conf</filename>' which include the '<emphasis remap=tt>set ifaddr</emphasis>' and
-'<emphasis remap=tt>add 0 0</emphasis>' statements (i.e.: those configurations used for
-Dial-on-Demand configurations) execute the "delete ALL" and "add 0 0
-HISADDR" commands in <filename>/etc/ppp/ppp.linkup</filename>.</para>
-
-<para><emphasis><emphasis remap=bf>This is the mechanism that controls the actual on-demand
-configuration of the link.</emphasis></emphasis></para>
-
-<para>All configurations not explicitly named in
-<filename>/etc/ppp/ppp.linkup</filename> will use whatever commands are in the
-"MYADDR:" section of the file. This is where non-Demand-Dial
-configurations (such as our "interactive:" sample) will fall through
-to. This section simply adds a default route to the ISP's IP address
-(at the remote end).</para>
-
-</sect2>
-</sect1>
-
-<sect1>
-<title>IP Aliasing</title>
-
-<para>All of the configuration steps described thus far are relevant to
-any FreeBSD system which will be used to connect to an ISP via dial-up
-connection.</para>
-
-<para>If your sole objective in reading this guide is to connect your
-FreeBSD box to the Internet using dial-out ppp you can proceed to
-<xref linkend="testing-the-network">.</para>
-
-<para>One very attractive feature of the PPP program in on-demand mode is
-its ability to route IP traffic between other systems on the Local
-Area Network automatically. This feature is known by various names,
-"<emphasis>IP Aliasing</emphasis>", "<emphasis>Network Address Translation</emphasis>", "<emphasis>Address
-Masquerading</emphasis>" or "<emphasis>Transparent Proxying</emphasis>".</para>
-
-<para>Regardless of the terminology used, this mode is not, however,
-automatic. If the PPP program is started normally then the program
-will not forward packets between LAN interface(s) and the dial-out
-connection. In effect, only the FreeBSD system is connected to the
-ISP; other workstations cannot "share" the same connection.</para>
-
-<para>For example, if the program is started with either of the following
-command lines:</para>
-
-<para><emphasis remap=tt># ppp interactive (Interactive mode)</emphasis></para>
-
-<para> or</para>
-
-<para><emphasis remap=tt># ppp -auto demand (Dial-on-Demand mode)</emphasis></para>
-
-<para>then the system will function as an Internet-connected workstation
-<emphasis>only</emphasis> for the
-FreeBSD box.</para>
-
-<para>To start the PPP program as a gateway between LAN resources and the
-Internet, one of the following command lines would be used instead:</para>
-
-<para><emphasis remap=tt># ppp -alias interactive (Interactive mode)</emphasis></para>
-
-<para> or</para>
-
-<para><emphasis remap=tt># ppp -auto -alias demand (Dial-on-Demand mode)</emphasis></para>
-
-<para>You can alternatively use the command <emphasis remap=tt>``alias enable yes''</emphasis>
-in your ppp configuration file (refer to the man page for details).</para>
-
-<para>Keep this in mind if you intend to proceed with <xref
- linkend="config-window-system">.</para>
-
-</sect1>
-</chapter>
-
-<chapter id="config-window-system">
-<title>Configuring Windows Systems</title>
-
-<para>As indicated in Section 1, our example network consists of a
-FreeBSD system ("Curly") which acts as a gateway (or router) between a
-Local Area Network consisting of two different flavors of Windows
-Workstations. In order for the LAN nodes to use Curly as a router
-they need to be properly configured. Note that this section does not
-explain how to configure the Windows workstations for Dial-Up
-networking. If you need a good explanation of that procedure, I
-recommend <ulink URL="http://www.aladdin.co.uk/techweb">http://www.aladdin.co.uk/techweb</ulink>.</para>
-
-
-<sect1>
-<title> Configuring Windows 95</title>
-
-<para>Configuring Windows 95 to act as an attached resource on your LAN
-is relatively simple. The Windows 95 network configuration must be
-slightly modified to use the FreeBSD system as the default gateway to
-the ISP. Perform the following steps:</para>
-
-<para><emphasis remap=bf>Create the Windows 95 "hosts" file:</emphasis></para>
-
-<para>In order to connect to the other TCP/IP systems on the LAN you'll
-need to create an identical copy of the "hosts" file that you
-installed on the FreeBSD system in <xref linkend="list-lan-hosts">.
-<itemizedlist>
-
-<listitem>
-<para>Click the "Start" button; select "Run..."; enter "notepad
-\WINDOWS\HOSTS" (without the quotes) and click "OK"</para>
-</listitem>
-
-<listitem>
-<para>In the editor, enter the addresses and system names from the hosts
-file shown in <xref linkend="list-lan-hosts">.</para>
-</listitem>
-
-<listitem>
-<para>When finished editing, close the notepad application (making sure
-that you save the file!).</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the Windows 95 TCP/IP Network Configuation
-settings</emphasis>:
-<itemizedlist>
-
-<listitem>
-<para>Click the "Start" button on the taskbar; select "Settings" and
-"Control Panel". </para>
-</listitem>
-
-<listitem>
-<para>Double-click the "Network" icon to open it.</para>
-
-<para>
-The settings for all Network Elements are displayed.</para>
-</listitem>
-
-<listitem>
-<para>With the "Configuration" tab selected, scroll down the list of
-installed components and highlight the "TCP/IP-&gt;<emphasis>YourInterfaceType</emphasis>" line
-(where "<emphasis>YourInterfaceType</emphasis>" is the name or type of Ethernet adapter in your system).
-</para>
-
-<para>If TCP/IP is not listed in the list of installed network
-components, click the "Add" button and install it before proceeding.</para>
-
-<para>(Hint: "Add | Protocol | Microsoft | TCP/IP | OK")</para>
-</listitem>
-
-<listitem>
-<para>Click on the "Properties" button to display a list of the
-settings associated with the TCP component.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the IP Address Information:</emphasis>
-<itemizedlist>
-
-<listitem>
-<para>Click the "IP Address" tab</para>
-</listitem>
-
-<listitem>
-<para>Click the "Specify an IP address" radio button.
-</para>
-
-<para>(In our example LAN the Windows 95 system is the one we've called "Larry".)</para>
-</listitem>
-
-<listitem>
-<para>In the "IP Address" field enter "192.168.1.2".</para>
-</listitem>
-
-<listitem>
-<para>Enter 255.255.255.0 in the "Subnet Mask" field.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the Gateway information:</emphasis>
-<itemizedlist>
-
-<listitem>
-<para>Click on the "Gateway" tab
-</para>
-
-<para>For our example network the FreeBSD box will be acting as our
-gateway to the Internet (routing packets between the Ethernet LAN and
-the PPP dial-up connection. Enter the IP address of the FreeBSD
-Ethernet interface, 192.168.1.1, in the "New gateway" field and click
-the "Add" button. If any other gateways are defined in the "Installed
-gateways" list you may wish to consider removing them.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the DNS Information:</emphasis></para>
-
-<para>This guide assumes that your Internet Service Provider has given
-you a list of Domain Name Servers (or "DNS Servers") that you should
-use. If you wish to run a DNS server on your local FreeBSD system,
-refer to Section 6, "Exercise for the Interested Student" for tips on
-setting up DNS on your FreeBSD system.</para>
-
-<para>
-<itemizedlist>
-
-<listitem>
-<para>Click the "DNS Configuration" tab</para>
-</listitem>
-
-<listitem>
-<para>Make sure that the "Enable DNS" radio button is selected.
-</para>
-
-<para>(If this button is not selected only the entries that
-we put in the host file(s) will be available and your Net-Surfing
-will not work as you expect!)</para>
-</listitem>
-
-<listitem>
-<para>In the "Host" field enter the name of the Windows 95 box, in this
-case: "Larry".</para>
-</listitem>
-
-<listitem>
-<para>In the "Domain" field enter the name of our local network, in this
-case: "my.domain"</para>
-</listitem>
-
-<listitem>
-<para>In the "DNS Server Search Order" section, enter the IP address
-of the DNS server(s) that your ISP provided, clicking the "Add" button
-after every address is entered. Repeat this step as many times as
-necessary to add all of the addresses that your ISP provided.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Other Windows 95 TCP/IP options:</emphasis></para>
-
-<para>For our purposes the settings under the "Advanced", "WINS
-Configuration" and "Bindings" tabs are not necessary.</para>
-
-<para>If you wish to use the Windows Internet Naming Service ("WINS")
-your attention is invited to <ulink URL="http://www.localnet.org">http://www.localnet.org</ulink> for
-more information about WINS settings, specifically regarding sharing
-files transparently across the Internet.</para>
-
-<para><emphasis remap=bf>Mopping up:</emphasis>
-<itemizedlist>
-
-<listitem>
-<para>Click on the "OK" button to close the TCP/IP Properties window.</para>
-</listitem>
-
-<listitem>
-<para>Click on the "OK" button to close the Network Control Panel. </para>
-</listitem>
-
-<listitem>
-<para>Reboot your computer if prompted to do so. </para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para> That's it!</para>
-
-</sect1>
-
-<sect1>
-<title>Configuring Windows NT</title>
-
-<para>Configuring Windows NT to act as a LAN resource is also relatively
-straightforward. The procedures for configuring Windows NT are
-similar to Windows 95 with minor exceptions in the user interface.</para>
-
-<para>The steps shown here are appropriate for a Windows NT 4.0
-Workstation, but the principles are the same for NT 3.5x. You may
-wish to refer to the "Configuring Windows for Workgroups" section if
-you're configuring Windows NT 3.5<emphasis remap=it>x</emphasis>, since the user interface is
-the same for NT 3.5 and WfW.</para>
-
-<para>Perform the following steps: </para>
-
-<para><emphasis remap=bf>Create the Windows NT "hosts" file:</emphasis></para>
-
-<para>In order to connect to the other TCP/IP systems on the LAN you'll
-need to create an identical copy of the "hosts" file that you
-installed on the FreeBSD system in Section 3.4
-<itemizedlist>
-
-<listitem>
-<para>Click the "Start" button; select "Run..."; enter "notepad
-\WINNT\SYSTEM32\DRIVERS\ETC\HOSTS" (without the quotes) and click
-"OK"</para>
-</listitem>
-
-<listitem>
-<para>In the editor, enter the addresses and system names from Section
-3.4.</para>
-</listitem>
-
-<listitem>
-<para>When finished editing, close the notepad application (making sure
-that you save the file!).</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the Windows NT TCP/IP Network Configuation
-settings</emphasis>:
-<itemizedlist>
-
-<listitem>
-<para>Click the "Start" button on the taskbar; select "Settings" and
-"Control Panel". </para>
-</listitem>
-
-<listitem>
-<para>Double-click the "Network" icon to open it. </para>
-</listitem>
-
-<listitem>
-<para>With the "Identification" tab selected, verify the "Computer Name"
-and "Workgroup" fields. In this example we'll use "Shemp" for the name
-and "Stooges" for the workgroup. Click the "Change" button and amend
-these entries as necessary.</para>
-</listitem>
-
-<listitem>
-<para>Select the "Protocols" tab.
-
-</para>
-
-<para>The installed Network Protocols will be displayed. There may be a
-number of protocols listed but the one of interest to this guide is
-the "TCP/IP Protocol". If "TCP/IP Protocol" is not listed, click the
-"Add" button to load it.</para>
-
-<para>(Hint: "Add | TCP/IP Protocol | OK") </para>
-</listitem>
-
-<listitem>
-<para>Highlight "TCP/IP
-Protocol" and click the "Properties" button.
-</para>
-
-<para>Tabs for specifying various settings for TCP/IP will be displayed.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configuring the IP Address:</emphasis></para>
-
-<para>Make sure that the Ethernet Interface is shown in the "Adapter"
-box; if not, scroll through the list of adapters until the correct
-interface is shown.
-<itemizedlist>
-
-<listitem>
-<para>Click the "Specify an IP address" radio button to enable the three
-text boxes.
-</para>
-
-<para>In our example LAN the Windows NT system is the one we've called
-"Shemp"</para>
-</listitem>
-
-<listitem>
-<para>In the "IP Address" field enter "192.168.1.4".</para>
-</listitem>
-
-<listitem>
-<para>Enter 255.255.255.0 in the "Subnet Mask" field.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the Gateway information:</emphasis></para>
-
-<para>For our example network the FreeBSD box will be acting as our gateway
-to the Internet (routing packets between the Ethernet LAN and the PPP dial-up
-connection.
-<itemizedlist>
-
-<listitem>
-<para>Enter the IP address of the FreeBSD Ethernet interface,
-192.168.1.1, in the "New gateway" field and click the "Add" button.
-</para>
-
-<para>If any other gateways are defined in the "Installed gateways" list
-you may wish to consider removing them.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configuring DNS:</emphasis></para>
-
-<para>Again, this guide assumes that your Internet Service Provider has
-given you a list of Domain Name Servers (or "DNS Servers") that you
-should use.</para>
-
-<para>If you wish to run a DNS server on your local FreeBSD system, refer to
-Section 6, "Exercise for the Interested Student" for tips on setting
-up DNS on your FreeBSD system.
-<itemizedlist>
-
-<listitem>
-<para>Click the "DNS" tab</para>
-</listitem>
-
-<listitem>
-<para>In the "Host Name" field enter the name of the Windows NT box, in
-this case: "Shemp".</para>
-</listitem>
-
-<listitem>
-<para>In the "Domain" field enter the name of our local network, in this
-case: "my.domain"</para>
-</listitem>
-
-<listitem>
-<para>In the "DNS Server Search Order" section, enter the IP address of
-the DNS server that your ISP provided, clicking the "Add" button after
-every address is entered. Repeat this step as many times as necessary
-to add all of the addresses that your ISP provided.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Other Windows NT TCP/IP options:</emphasis></para>
-
-<para>For our purposes the settings under the "WINS Address" and
-"Routing" tabs are not used.</para>
-
-<para>If you wish to use the Windows Internet Naming Service ("WINS")
-your attention is invited to <ulink URL="http://www.localnet.org">http://www.localnet.org</ulink> for
-more information about WINS settings, specifically regarding sharing
-files transparently across the Internet.</para>
-
-<para><emphasis remap=bf>Mopping up:</emphasis>
-<itemizedlist>
-
-<listitem>
-<para>Click on the "OK" button to close the TCP/IP Properties section.
-</para>
-</listitem>
-
-<listitem>
-<para>Click on the "Close" button to close the Network Control Panel.
-</para>
-</listitem>
-
-<listitem>
-<para>Restart your computer if prompted to do so.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>That's it!</para>
-
-</sect1>
-
-<sect1>
-<title>Configuring Windows for Workgroups</title>
-
-<para>Configuring Windows for Workgroups to act as a network client
-requires that the Microsoft TCP/IP-32 driver diskette has been
-installed on the workstation. The TCP/IP drivers are not included
-with the WfW CD or diskettes; if you need a copy they're available at
-<ulink URL="ftp://ftp.microsoft.com:/peropsys/windows/public/tcpip">ftp://ftp.microsoft.com:/peropsys/windows/public/tcpip</ulink>.</para>
-
-<para>Once the TCP/IP drivers have been loaded, perform the following
-steps:</para>
-
-<para><emphasis remap=bf>Create the Windows for Workgroups "hosts" file:</emphasis></para>
-
-<para>In order to connect to the other TCP/IP systems on the LAN you'll
-need to create an identical copy of the "hosts" file that you
-installed on the FreeBSD system in Section 3.4.
-<itemizedlist>
-
-<listitem>
-<para>In Program Manager, click the "File" button; select "Run"; and
-enter: "notepad \WINDOWS\HOSTS" (without the quotes) and click "OK"</para>
-</listitem>
-
-<listitem>
-<para>In the editor, enter the addresses and system names from the hosts
-file shown in Section 3.4.</para>
-</listitem>
-
-<listitem>
-<para>When finished editing, close the notepad application (making sure
-that you save the file!).</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the Windows 95 TCP/IP Network Configuation
-settings</emphasis>
-<itemizedlist>
-
-<listitem>
-<para>In the main window of Program Manager, open the "Network" group by
-double-clicking the icon. </para>
-</listitem>
-
-<listitem>
-<para>Double click on the "Network Setup" icon. </para>
-</listitem>
-
-<listitem>
-<para>In the "Network Drivers Box" double-click the "Microsoft
-TCP/IP-32" entry. </para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the Windows for Workgroups IP Address:</emphasis> </para>
-
-<para>Ensure
-the correct Ethernet Interface is selected in the "Adapter" list. If
-not, scroll down until it is displayed and select it by clicking on
-it.
-<itemizedlist>
-
-<listitem>
-<para>Ensure that the "Enable Automatic DHCP Configuration" check box is
-blank. If it is checked, click it to remove the "X".</para>
-</listitem>
-
-<listitem>
-<para>In our example LAN the Windows for Workgroups system is the one
-we've called "Moe"; in the "IP Address" field enter "192.168.1.3".</para>
-</listitem>
-
-<listitem>
-<para>Enter 255.255.255.0 in the "Subnet Mask" field.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configure the Gateway information:</emphasis></para>
-
-<para>For our example network the FreeBSD box will be acting as our
-gateway to the Internet (routing packets between the Ethernet LAN and
-the PPP dial-up connection).
-<itemizedlist>
-
-<listitem>
-<para>Enter the IP address of the FreeBSD system, 192.168.1.1, in the
-"Default Gateway" field.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Configuring DNS:</emphasis></para>
-
-<para>Again, this guide assumes that your Internet Service Provider has
-given you a list of Domain Name Servers (or "DNS Servers") that you
-should use. If you wish to run a DNS server on your local FreeBSD
-system, refer to Section 6, "Exercise for the Interested Student" for
-tips on setting up DNS on your FreeBSD system.
-<itemizedlist>
-
-<listitem>
-<para>Click the "DNS" button.</para>
-</listitem>
-
-<listitem>
-<para>In the "Host Name" field enter the name of the Windows for
-Workgroups box, in this case: "Moe".</para>
-</listitem>
-
-<listitem>
-<para>In the "Domain" field enter the name of our local network, in this
-case: "my.domain"</para>
-</listitem>
-
-<listitem>
-<para>In the "Domain Name Service (DNS) Search Order" section, enter the
-IP address of the DNS server that your ISP provided, clicking the "Add"
-button after each address is entered. Repeat this step as many times as
-necessary to add all of the addresses that your ISP provided.</para>
-</listitem>
-
-<listitem>
-<para>Click on the "OK" button to close the DNS Configuration window.
-</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para><emphasis remap=bf>Mopping up:</emphasis>
-<itemizedlist>
-
-<listitem>
-<para>Click on the "OK" button to close the TCP/IP Configuration window.
-</para>
-</listitem>
-
-<listitem>
-<para>Click on the "OK" button to close the Network Setup window.</para>
-</listitem>
-
-<listitem>
-<para>Reboot your computer if prompted. </para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>That's it!</para>
-
-</sect1>
-</chapter>
-
-<chapter id="testing-the-network">
-<title>Testing the Network</title>
-
-<para> Once you've completed that appropriate tasks above you should have
-a functioning PPP gateway to the Internet.</para>
-
-
-<sect1>
-<title>Testing the Dial-Up link:</title>
-
-<para> The first thing to test is that the connection is being made
-between your modem and the ISP.</para>
-
-</sect1>
-
-<sect1>
-<title>Testing the Ethernet LAN</title>
-
-<para> *** TBD ***</para>
-
-</sect1>
-</chapter>
-
-<chapter>
-<title>Exercises for the Interested Student</title>
-
-
-<sect1>
-<title>Creating a mini-DNS system</title>
-
-<para>While managing a Domain Name Service (DNS) hierarchy can be a black
-art, it is possible to set up a Mini-DNS server on the FreeBSD system
-that also acts as your gateway to your ISP.</para>
-
-<para>Building on the files in <filename>/etc/namedb</filename> when the FreeBSD
-system was installed it's possible to create a name server that is
-both authoritative for the example network shown here as well as a
-front-door to the Internet DNS architecture.</para>
-
-<para>In this minimal DNS configuration, only three files are necessary:
-<informalexample>
-<screen>/etc/namedb/named.boot
-/etc/namedb/named.root
-/etc/namedb/mydomain.db</screen>
-</informalexample>
-</para>
-
-<para>The <filename>/etc/namedb/named.root</filename> file is automatically installed
-as part of the FreeBSD base installation; the other two files must be
-created manually.</para>
-
-
-<sect2>
-<title>The <filename>/etc/namedb/named.boot</filename> file</title>
-
-<para>The <filename>/etc/namedb/named.boot</filename> file controls the startup
-settings of the DNS server.
-Esentially, it tells the Name Server:
-<orderedlist>
-
-<listitem>
-<para>Where to find configuration files,</para>
-</listitem>
-
-<listitem>
-<para>What "domain names" it's responsible for, and</para>
-</listitem>
-
-<listitem>
-<para>Where to find other DNS servers.</para>
-</listitem>
-
-</orderedlist>
-</para>
-
-<para>Using the '<emphasis remap=tt>ee</emphasis>' editor, create a
-<filename>/etc/namedb/named.boot</filename> with the following contents:
-<informalexample>
-<screen>; boot file for mini-name server
-
-directory /etc/namedb
-
-; type domain source host/file backup file
-
-cache . named.root
-primary my.domain. mydomain.db</screen>
-</informalexample>
-</para>
-
-<para>Lines that begin with a semi-colon are comments. The significant
-lines in this file are:
-<itemizedlist>
-
-<listitem>
-<para><command>directory /etc/namedb</command>
-</para>
-
-<para>Tells the Name Server where to find the configuration files
-referenced in the remaining sections of the
-'<filename>/etc/namedb/named.boot</filename>' file.</para>
-</listitem>
-
-<listitem>
-<para><emphasis remap=tt>cache . named.root</emphasis>
-</para>
-
-<para>Tells the Name Server that the list of "Top-Level" DNS servers for
-the Internet can be found in a file called '<filename>named.root</filename>'.
-(This file is included in the base installation and its
-contents are not described in this document.)</para>
-</listitem>
-
-<listitem>
-<para><emphasis remap=tt>primary my.domain. mydomain.db</emphasis>
-</para>
-
-<para>Tells the Name Server that it will be "authoritative" for a DNS
-domain called "my.domain" and that a list of names and IP addresses
-for the systems in "my.domain" (the local network)
-can be found in a file named '<filename>mydomain.db</filename>'.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>Once the <filename>/etc/namedb/named.boot</filename> file has been created and
-saved, proceed to the next section to create the
-<filename>/etc/namedb/mydomain.db</filename> file.</para>
-
-</sect2>
-
-<sect2>
-<title>The <filename>/etc/namedb/mydomain.db</filename> file</title>
-
-<para>The <filename>/etc/namedb/mydomain.db</filename> file lists the names and IP
-addresses of <emphasis>every</emphasis> system in the Local Area Network.</para>
-
-<para><emphasis>For a detailed description of the statements used in this file,
-refer to the <emphasis remap=tt>named</emphasis> manpage.</emphasis></para>
-
-<para>The <filename>/etc/namedb/mydomain.db</filename> file for our minimal DNS
-server has the following contents:
-<informalexample>
-<screen>@ IN SOA my.domain. root.my.domain. (
- 961230 ; Serial
- 3600 ; Refresh
- 300 ; Retry
- 3600000 ; Expire
- 3600 ) ; Minimum
- IN NS curly.my.domain.
-
-curly.my.domain. IN A 192.168.1.1 # The FreeBSD box
-larry.my.domain. IN A 192.168.1.2 # The Win'95 box
-moe.my.domain. IN A 192.168.1.3 # The WfW box
-shemp.my.domain. IN A 192.168.1.4 # The Windows NT box
-
-$ORIGIN 1.168.192.IN-ADDR.ARPA
- IN NS curly.my.domain.
-1 IN PTR curly.my.domain.
-2 IN PTR larry.my.domain.
-3 IN PTR moe.my.domain.
-4 IN PTR shemp.my.domain.
-
-$ORIGIN 0.0.127.IN-ADDR.ARPA
- IN NS curly.my.domain.
-1 IN PTR localhost.my.domain.</screen>
-</informalexample>
-</para>
-
-<para>In simple terms, this file declares that the local DNS server is:
-<itemizedlist>
-
-<listitem>
-<para>The Start of Authority for ("SOA") for a domain called
-'my.domain',</para>
-</listitem>
-
-<listitem>
-<para>The Name Server ("NS") for 'my.domain',</para>
-</listitem>
-
-<listitem>
-<para>Responsible for the reverse-mapping for all IP addresses that
-start with '192.168.1.' and
-'127.0.0.' ("$ORIGIN ...")</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>To add workstation entries to this file you'll need to add two
-lines for each system; one in the top section where the name(s) are
-mapped into Internet Addresses ("IN A"), and another line that maps
-the addresses back into names in the <filename>$ORIGIN
-1.168.192.IN-ADDR.ARPA</filename> section.</para>
-
-</sect2>
-
-<sect2>
-<title>Starting the DNS Server</title>
-
-<para>By default the DNS server ('<filename>/usr/sbin/named</filename>') is not
-started when the system boots. You can modify this behavior by
-changing a single line in '<filename>/etc/rc.conf</filename>' as follows:</para>
-
-<para> Using the '<emphasis remap=tt>ee</emphasis>' editor, load <filename>/etc/rc.conf</filename>. Scroll
-down approximately 40 lines until you come to the section that says:
-<informalexample>
-<screen>---
-named_enable="NO" # Run named, the DNS server (or NO).
-named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled).
----</screen>
-</informalexample>
-
-Change this section to read:
-<informalexample>
-<screen>---
-named_enable="YES" # Run named, the DNS server (or NO).
-named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled).
----</screen>
-</informalexample>
-
-Save the file and reboot.</para>
-
-<para>Alternatively, start the Name Server daemon by entering the following
-command:
-<informalexample>
-<screen># named -b /etc/namedb/named.boot</screen>
-</informalexample>
-</para>
-
-<para>Whenever you modify any of the files in <filename>/etc/namedb</filename> you'll
-need to kick-start the Name Server process to make it pick up the
-modifications. This is performed with the following system command:
-<informalexample>
-<screen># kill -HUP `cat /var/run/named.pid`</screen>
-</informalexample>
-</para>
-
-</sect2>
-</sect1>
-
-<sect1>
-<title>Playing with PPP filters</title>
-
-<para>The PPP program has the ability to apply selected filtering rules
-to the traffic it routes. While this is not nearly as secure as a
-formal firewall it does provide some access control as to how the link
-is used.</para>
-
-<para>('<emphasis remap=tt>man ipfw</emphasis>' for information on setting up a more secure
-FreeBSD system.)</para>
-
-<para>The complete documentation for the various filters and rules under
-PPP are availabe in the PPP manpage.</para>
-
-<para>There are four distinct classes of rules which may be applied to
-the PPP program:
-<itemizedlist>
-
-<listitem>
-<para><emphasis>alive</emphasis> filter - Access Counter (or "Keep Alive") filters
-</para>
-
-<para>These control which events are ignored by the <literal>set timeout=</literal>
-statement in the configuration file.</para>
-</listitem>
-
-<listitem>
-<para><emphasis>dial</emphasis> filter - Dialing filters
-</para>
-
-<para>These filtering rules control which events are ignored by the
-demand-dial mode of PPP.</para>
-</listitem>
-
-<listitem>
-<para><emphasis>in</emphasis> filter - Input filters
-</para>
-
-<para>Control whether incoming packets should be discarded or passed into
-the system.</para>
-</listitem>
-
-<listitem>
-<para><emphasis>out</emphasis> filter - Output filters
-</para>
-
-<para>Control whether outgoing packets should be discarded or passed into
-the system.</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<para>What follows is a snippet from an operating system which provides a
-good foundation for "normal" Internet operations while preventing PPP
-from pumping <emphasis>all</emphasis> data over the dial-up connection. Comments
-briefly describe the logic of each rule set:
-<informalexample>
-<screen>#
-# KeepAlive filters
-# Don't keep Alive with ICMP,DNS and RIP packet
-#
- set filter alive 0 deny icmp
- set filter alive 1 deny udp src eq 53
- set filter alive 2 deny udp dst eq 53
- set filter alive 3 deny udp src eq 520
- set filter alive 4 deny udp dst eq 520
- set filter alive 5 permit 0/0 0/0
-#
-# Dial Filters:
-# Note: ICMP will trigger a dial-out in this configuration!
-#
- set filter dial 0 permit 0/0 0/0
-#
-# Allow ident packet pass through
-#
- set filter in 0 permit tcp dst eq 113
- set filter out 0 permit tcp src eq 113
-#
-# Allow telnet connection to the Internet
-#
- set filter in 1 permit tcp src eq 23 estab
- set filter out 1 permit tcp dst eq 23
-#
-# Allow ftp access to the Internet
-#
- set filter in 2 permit tcp src eq 21 estab
- set filter out 2 permit tcp dst eq 21
- set filter in 3 permit tcp src eq 20 dst gt 1023
- set filter out 3 permit tcp dst eq 20
-#
-# Allow access to DNS lookups
-#
- set filter in 4 permit udp src eq 53
- set filter out 4 permit udp dst eq 53
-#
-# Allow DNS Zone Transfers
-#
- set filter in 5 permit tcp src eq 53
- set filter out 5 permit tcp dst eq 53
-#
-# Allow access from/to local network
-#
- set filter in 6 permit 0/0 192.168.1.0/24
- set filter out 6 permit 192.168.1.0/24 0/0
-#
-# Allow ping and traceroute response
-#
- set filter in 7 permit icmp
- set filter out 7 permit icmp
- set filter in 8 permit udp dst gt 33433
- set filter out 9 permit udp dst gt 33433
-#
-# Allow cvsup
-#
- set filter in 9 permit tcp src eq 5998
- set filter out 9 permit tcp dst eq 5998
- set filter in 10 permit tcp src eq 5999
- set filter out 10 permit tcp dst eq 5999
-#
-# Allow NTP for Time Synchronization
-#
- set filter in 11 permit tcp src eq 123 dst eq 123
- set filter out 11 permit tcp src eq 123 dst eq 123
- set filter in 12 permit udp src eq 123 dst eq 123
- set filter out 12 permit udp src eq 123 dst eq 123
-#
-# SMTP'd be a good idea!
-#
- set filter in 13 permit tcp src eq 25
- set filter out 13 permit tcp dst eq 25
-#
-#
-# We use a lot of `whois`, let's pass that
-#
- set filter in 14 permit tcp src eq 43
- set filter out 14 permit tcp dst eq 43
- set filter in 15 permit udp src eq 43
- set filter out 15 permit udp dst eq 43
-#
-# If none of above rules matches, then packet is blocked.
-#-------</screen>
-</informalexample>
-</para>
-
-<para>Up to 20 distinct filtering rules can be applied to each class of
-filter. Rules in each class are number sequentially from 0 to 20
-<emphasis>but none of the rules for a particular filter class take affect
-until ruleset '0' is defined!</emphasis></para>
-
-<para>If you choose <emphasis>not</emphasis> to use Filtering Rules in the PPP
-configuration then <acronym>ALL</acronym> traffic will be permitted both into and
-out of your system while it's connected to your ISP.</para>
-
-<para>If you decide that you want to implement filtering rules, add the
-above lines to your <filename>/etc/ppp/ppp.conf</filename> file in either the
-"default:", "demand:", or "interactive:" section (or all of them - the
-choice is yours).</para>
-
-</sect1>
-</chapter>
-</book>
diff --git a/en_US.ISO8859-1/share/images/callouts/1.png b/en_US.ISO8859-1/share/images/callouts/1.png
deleted file mode 100644
index 0ad37cdc31..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/1.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/10.png b/en_US.ISO8859-1/share/images/callouts/10.png
deleted file mode 100644
index 470a5cf922..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/10.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/2.png b/en_US.ISO8859-1/share/images/callouts/2.png
deleted file mode 100644
index 1b4d5d4751..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/2.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/3.png b/en_US.ISO8859-1/share/images/callouts/3.png
deleted file mode 100644
index 436e7443d8..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/3.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/4.png b/en_US.ISO8859-1/share/images/callouts/4.png
deleted file mode 100644
index 676b80f5ea..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/4.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/5.png b/en_US.ISO8859-1/share/images/callouts/5.png
deleted file mode 100644
index 97aacaca20..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/5.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/6.png b/en_US.ISO8859-1/share/images/callouts/6.png
deleted file mode 100644
index a6a58f4b1a..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/6.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/7.png b/en_US.ISO8859-1/share/images/callouts/7.png
deleted file mode 100644
index 79b81a9f30..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/7.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/8.png b/en_US.ISO8859-1/share/images/callouts/8.png
deleted file mode 100644
index 5cec3a26d4..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/8.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/images/callouts/9.png b/en_US.ISO8859-1/share/images/callouts/9.png
deleted file mode 100644
index e8f75901b8..0000000000
--- a/en_US.ISO8859-1/share/images/callouts/9.png
+++ /dev/null
Binary files differ
diff --git a/en_US.ISO8859-1/share/sgml/authors.ent b/en_US.ISO8859-1/share/sgml/authors.ent
deleted file mode 100644
index 4e51510bdf..0000000000
--- a/en_US.ISO8859-1/share/sgml/authors.ent
+++ /dev/null
@@ -1,616 +0,0 @@
-<!--
- 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.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.154 2001/04/07 02:40:10 kuriyama Exp $
--->
-
-<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>">
-
-<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>">
-
-<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>">
-
-<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>">
-
-<!ENTITY a.adrian "Adrian Chadd <email>adrian@FreeBSD.org</email>">
-
-<!ENTITY a.akiyama "Shunsuke Akiyama <email>akiyama@FreeBSD.org</email>">
-
-<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>">
-
-<!ENTITY a.alex "Alexander Langer <email>alex@FreeBSD.org</email>">
-
-<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>">
-
-<!ENTITY a.amurai "Atsushi Murai <email>amurai@FreeBSD.org</email>">
-
-<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>">
-
-<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>">
-
-<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>">
-
-<!ENTITY a.asami "Satoshi Asami <email>asami@FreeBSD.org</email>">
-
-<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>">
-
-<!ENTITY a.assar "Assar Westerlund <email>assar@FreeBSD.org</email>">
-
-<!ENTITY a.ats "Andreas Schulz <email>ats@FreeBSD.org</email>">
-
-<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>">
-
-<!ENTITY a.babkin "Sergey Babkin <email>babkin@FreeBSD.org</email>">
-
-<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>">
-
-<!ENTITY a.ben "Ben Smithurst <email>ben@FreeBSD.org</email>">
-
-<!ENTITY a.bean "Rebecca Visger <email>bean@FreeBSD.org</email>">
-
-<!ENTITY a.benno "Benno Rice <email>benno@FreeBSD.org</email>">
-
-<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>">
-
-<!ENTITY a.bmah "Bruce A. Mah <email>bmah@FreeBSD.org</email>">
-
-<!ENTITY a.bmilekic "Bosko Milekic <email>bmilekic@FreeBSD.org</email>">
-
-<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>">
-
-<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>">
-
-<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>">
-
-<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>">
-
-<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>">
-
-<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>">
-
-<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>">
-
-<!ENTITY a.chm "Christoph Herrmann <email>chm@FreeBSD.org</email>">
-
-<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>">
-
-<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>">
-
-<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>">
-
-<!ENTITY a.cjh "Junho CHOI <email>cjh@FreeBSD.org</email>">
-
-<!ENTITY a.clive "Clive Lin <email>clive@FreeBSD.org</email>">
-
-<!ENTITY a.cp "Chuck Paterson <email>cp@FreeBSD.org</email>">
-
-<!ENTITY a.cokane "Coleman Kane <email>cokane@FreeBSD.org</email>">
-
-<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>">
-
-<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>">
-
-<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>">
-
-<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>">
-
-<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>">
-
-<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>">
-
-<!ENTITY a.dannyboy "Daniel Harris <email>dannyboy@FreeBSD.org</email>">
-
-<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>">
-
-<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>">
-
-<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>">
-
-<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>">
-
-<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>">
-
-<!ENTITY a.dd "Dima Dorfman <email>dd@FreeBSD.org</email>">
-
-<!ENTITY a.dec "David E. Cross <email>dec@FreeBSD.org</email>">
-
-<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>">
-
-<!ENTITY a.demon "Dmitry Sivachenko <email>demon@FreeBSD.org</email>">
-
-<!ENTITY a.des "Dag-Erling C. Sm&oslash;rgrav <email>des@FreeBSD.org</email>">
-
-<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>">
-
-<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>">
-
-<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>">
-
-<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>">
-
-<!ENTITY a.dinoex "Dirk Meyer <email>dinoex@FreeBSD.org</email>">
-
-<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>">
-
-<!ENTITY a.dirk "Dirk Fr&ouml;mberg <email>dirk@FreeBSD.org</email>">
-
-<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>">
-
-<!ENTITY a.dmlb "Duncan Barclay <email>dmlb@FreeBSD.org</email>">
-
-<!ENTITY a.dougb "Doug Barton <email>DougB@FreeBSD.org</email>">
-
-<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>">
-
-<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>">
-
-<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>">
-
-<!ENTITY a.dwmalone "David Malone <email>dwmalone@FreeBSD.org</email>">
-
-<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>">
-
-<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>">
-
-<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>">
-
-<!ENTITY a.eric "Eric Melville <email>eric@FreeBSD.org</email>">
-
-<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>">
-
-<!ENTITY a.faq "FAQ Maintainer <email>faq@FreeBSD.org</email>">
-
-<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>">
-
-<!ENTITY a.flathill "Seiichirou Hiraoka <email>flathill@FreeBSD.org</email>">
-
-<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>">
-
-<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>">
-
-<!ENTITY a.furuta "Atsushi Furuta <email>furuta@FreeBSD.org</email>">
-
-<!ENTITY a.gad "Garance A Drosehn <email>gad@FreeBSD.org</email>">
-
-<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>">
-
-<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>">
-
-<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>">
-
-<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>">
-
-<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>">
-
-<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>">
-
-<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>">
-
-<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>">
-
-<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>">
-
-<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>">
-
-<!ENTITY a.greid "George C. A. Reid <email>greid@FreeBSD.org</email>">
-
-<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>">
-
-<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>">
-
-<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>">
-
-<!ENTITY a.gshapiro "Gregory Neil Shapiro <email>gshapiro@FreeBSD.org</email>">
-
-<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>">
-
-<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>">
-
-<!ENTITY a.hanai "Hiroyuki HANAI <email>hanai@FreeBSD.org</email>">
-
-<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>">
-
-<!ENTITY a.hrs "Hiroki Sato <email>hrs@FreeBSD.org</email>">
-
-<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>">
-
-<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>">
-
-<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>">
-
-<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>">
-
-<!ENTITY a.horikawa "Kazuo Horikawa <email>horikawa@FreeBSD.org</email>">
-
-<!ENTITY a.hosokawa "Tatsumi Hosokawa <email>hosokawa@FreeBSD.org</email>">
-
-<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>">
-
-<!ENTITY a.iedowse "Ian Dowse <email>iedowse@FreeBSD.org</email>">
-
-<!ENTITY a.ijliao "Ying-Chieh Liao <email>ijliao@FreeBSD.org</email>">
-
-<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>">
-
-<!ENTITY a.imura "R. Imura <email>imura@FreeBSD.org</email>">
-
-<!ENTITY a.issei "Issei Suzuki <email>issei@FreeBSD.org</email>">
-
-<!ENTITY a.itojun "Jun-ichiro Itoh <email>itojun@itojun.org</email>">
-
-<!ENTITY a.iwasaki "Mitsuru IWASAKI <email>iwasaki@FreeBSD.org</email>">
-
-<!ENTITY a.jake "Jake Burkholder <email>jake@FreeBSD.org</email>">
-
-<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>">
-
-<!ENTITY a.jayanth "Jayanth Vijayaraghavan <email>jayanth@FreeBSD.org</email>">
-
-<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>">
-
-<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>">
-
-<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>">
-
-<!ENTITY a.jeh "James Housley <email>jeh@FreeBSD.org</email>">
-
-<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>">
-
-<!ENTITY a.jesper "Jesper Skriver <email>jesper@FreeBSD.org</email>">
-
-<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>">
-
-<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>">
-
-<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>">
-
-<!ENTITY a.jgreco "Joe Greco <email>jgreco@FreeBSD.org</email>">
-
-<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>">
-
-<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>">
-
-<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>">
-
-<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>">
-
-<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>">
-
-<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>">
-
-<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>">
-
-<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>">
-
-<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>">
-
-<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>">
-
-<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>">
-
-<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>">
-
-<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>">
-
-<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>">
-
-<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>">
-
-<!ENTITY a.keichii "Michael C. Wu <email>keichii@FreeBSD.org</email>">
-
-<!ENTITY a.joerg "J&ouml;rg Wunsch <email>joerg@FreeBSD.org</email>">
-
-<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>">
-
-<!ENTITY a.jon "Jonathan Chen <email>jon@FreeBSD.org</email>">
-
-<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>">
-
-<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>">
-
-<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>">
-
-<!ENTITY a.jwd "John W. DeBoskey <email>jwd@FreeBSD.org</email>">
-
-<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>">
-
-<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>">
-
-<!ENTITY a.kato "Takenori KATO <email>kato@FreeBSD.org</email>">
-
-<!ENTITY a.kbyanc "Kelly Yancey <email>kbyanc@FreeBSD.org</email>">
-
-<!ENTITY a.keith "Jing-Tang Keith Jang <email>keith@FreeBSD.org</email>">
-
-<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>">
-
-<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>">
-
-<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>">
-
-<!ENTITY a.kiri "Kazuhiko Kiriyama <email>kiri@FreeBSD.org</email>">
-
-<!ENTITY a.kjc "Kenjiro Cho <email>kjc@FreeBSD.org</email>">
-
-<!ENTITY a.knu "Akinori MUSHA <email>knu@FreeBSD.org</email>">
-
-<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>">
-
-<!ENTITY a.kuriyama "Jun Kuriyama <email>kuriyama@FreeBSD.org</email>">
-
-<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>">
-
-<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>">
-
-<!ENTITY a.lioux "M&aacute;rio S&eacute;rgio Fujikawa Ferreira<email>lioux@FreeBSD.org</email>">
-
-<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>">
-
-<!ENTITY a.lkoeller "Lars Koeller <email>lkoeller@FreeBSD.org</email>">
-
-<!ENTITY a.luigi "Luigi Rizzo <email>luigi@FreeBSD.org</email>">
-
-<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>">
-
-<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>">
-
-<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>">
-
-<!ENTITY a.marko "Mark Ovens <email>marko@FreeBSD.org</email>">
-
-<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>">
-
-<!ENTITY a.max "Masafumi NAKANE <email>max@FreeBSD.org</email>">
-
-<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>">
-
-<!ENTITY a.mb "Maxim Bolotin <email>mb@FreeBSD.org</email>">
-
-<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>">
-
-<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>">
-
-<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>">
-
-<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>">
-
-<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>">
-
-<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>">
-
-<!ENTITY a.mi "Mikhail Teterin <email>mi@FreeBSD.org</email>">
-
-<!ENTITY a.mikeh "Mike Heffner <email>mikeh@FreeBSD.org</email>">
-
-<!ENTITY a.mita "Yoshio MITA <email>mita@FreeBSD.org</email>">
-
-<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>">
-
-<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>">
-
-<!ENTITY a.motoyuki "Motoyuki Konno <email>motoyuki@FreeBSD.org</email>">
-
-<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>">
-
-<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>">
-
-<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>">
-
-<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>">
-
-<!ENTITY a.murray "Murray Stokely <email>murray@FreeBSD.org</email>">
-
-<!ENTITY a.nakai "Yukihiro Nakai <email>nakai@FreeBSD.org</email>">
-
-<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>">
-
-<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>">
-
-<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>">
-
-<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>">
-
-<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>">
-
-<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>">
-
-<!ENTITY a.non "Noriaki Mitsunaga <email>non@FreeBSD.org</email>">
-
-<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>">
-
-<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>">
-
-<!ENTITY a.nsouch "Nicolas Souchu <email>nsouch@FreeBSD.org</email>">
-
-<!ENTITY a.nyan "Yoshihiro Takahashi <email>nyan@FreeBSD.org</email>">
-
-<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>">
-
-<!ENTITY a.okazaki "OKAZAKI Tetsurou <email>okazaki@FreeBSD.org</email>">
-
-<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>">
-
-<!ENTITY a.olgeni "Jimmy Olgeni <email>olgeni@FreeBSD.org</email>">
-
-<!ENTITY a.onoe "Atsushi Onoe <email>onoe@FreeBSD.org</email>">
-
-<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>">
-
-<!ENTITY a.orion "Orion Hodson <email>orion@FreeBSD.org</email>">
-
-<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>">
-
-<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>">
-
-<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>">
-
-<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>">
-
-<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>">
-
-<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>">
-
-<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>">
-
-<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>">
-
-<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>">
-
-<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>">
-
-<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>">
-
-<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>">
-
-<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>">
-
-<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>">
-
-<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>">
-
-<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>">
-
-<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>">
-
-<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>">
-
-<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>">
-
-<!ENTITY a.roam "Peter Pentchev <email>roam@FreeBSD.org</email>">
-
-<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>">
-
-<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>">
-
-<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>">
-
-<!ENTITY a.rv "Rajesh Vaidheeswarran <email>rv@FreeBSD.org</email>">
-
-<!ENTITY a.rvb "Robert V. Baron <email>rvb@FreeBSD.org</email>">
-
-<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>">
-
-<!ENTITY a.sada "SADA Kenji <email>sada@FreeBSD.org</email>">
-
-<!ENTITY a.sanpei "Yoshiro Sanpei MIHIRA <email>sanpei@FreeBSD.org</email>">
-
-<!ENTITY a.schweikh "Jens Schweikhardt <email>schweikh@FreeBSD.org</email>">
-
-<!ENTITY a.scottl "Scott Long <email>scottl@FreeBSD.org</email>">
-
-<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>">
-
-<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>">
-
-<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>">
-
-<!ENTITY a.semenu "Ustimenko Semen <email>semenu@FreeBSD.org</email>">
-
-<!ENTITY a.sf "FUJISHIMA Satsuki <email>sf@FreeBSD.org</email>">
-
-<!ENTITY a.shafeeq "Shafeeq Sinnamohideen <email>shafeeq@FreeBSD.org</email>">
-
-<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>">
-
-<!ENTITY a.shiba "Takeshi Shibagaki <email>shiba@FreeBSD.org</email>">
-
-<!ENTITY a.shige "Shigeyuki Fukushima <email>shige@FreeBSD.org</email>">
-
-<!ENTITY a.shin "Yoshinobu Inoue <email>shin@FreeBSD.org</email>">
-
-<!ENTITY a.simokawa "Hidetoshi Shimokawa <email>simokawa@FreeBSD.org</email>">
-
-<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>">
-
-<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>">
-
-<!ENTITY a.sobomax "Maxim Sobolev <email>sobomax@FreeBSD.org</email>">
-
-<!ENTITY a.sos "S&oslash;ren Schmidt <email>sos@FreeBSD.org</email>">
-
-<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>">
-
-<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>">
-
-<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>">
-
-<!ENTITY a.sumikawa "Munechika Sumikawa <email>sumikawa@FreeBSD.org</email>">
-
-<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>">
-
-<!ENTITY a.tanimura "Seigo Tanimura <email>tanimura@FreeBSD.org</email>">
-
-<!ENTITY a.taoka "Satoshi Taoka <email>taoka@FreeBSD.org</email>">
-
-<!ENTITY a.takawata "Takanori Watanabe <email>takawata@FreeBSD.org</email>">
-
-<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>">
-
-<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>">
-
-<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>">
-
-<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>">
-
-<!ENTITY a.tmm "Thomas M&ouml;stl <email>tmm@FreeBSD.org</email>">
-
-<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>">
-
-<!ENTITY a.tomsoft "Thomas-Henning von Kamptz <email>tomsoft@FreeBSD.org</email>">
-
-<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>">
-
-<!ENTITY a.toshi "Toshihiko Arai <email>toshi@FreeBSD.org</email>">
-
-<!ENTITY a.trevor "Trevor Johnson <email>trevor@FreeBSD.org</email>">
-
-<!ENTITY a.truckman "Don &ldquo;Truck&rdquo; Lewis <email>truckman@FreeBSD.org</email>">
-
-<!ENTITY a.uch "UCHIYAMA Yasushi <email>uch@FreeBSD.org</email>">
-
-<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>">
-
-<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>">
-
-<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>">
-
-<!ENTITY a.ume "Hajimu UMEMOTO <email>ume@FreeBSD.org</email>">
-
-<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>">
-
-<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>">
-
-<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>">
-
-<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>">
-
-<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>">
-
-<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>">
-
-<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>">
-
-<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>">
-
-<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>">
-
-<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>">
-
-<!ENTITY a.wsanchez "Wilfredo S&aacute;nchez <email>wsanchez@FreeBSD.org</email>">
-
-<!ENTITY a.yar "Yar Tikhiy <email>yar@FreeBSD.org</email>">
-
-<!ENTITY a.yokota "Kazutaka YOKOTA <email>yokota@FreeBSD.org</email>">
-
diff --git a/en_US.ISO8859-1/share/sgml/bookinfo.ent b/en_US.ISO8859-1/share/sgml/bookinfo.ent
deleted file mode 100644
index 5587c3bebd..0000000000
--- a/en_US.ISO8859-1/share/sgml/bookinfo.ent
+++ /dev/null
@@ -1,12 +0,0 @@
-<!--
- References to other files that can be included within a DocBook
- BookInfo element.
-
- Entity names take the form "bookinfo.<element>", where <element> is
- the name of the outermost element in the entity. Examples would
- be "bookinfo.legalnotice", and "bookinfo.preface".
-
- $FreeBSD$
--->
-
-<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml">
diff --git a/en_US.ISO8859-1/share/sgml/catalog b/en_US.ISO8859-1/share/sgml/catalog
deleted file mode 100644
index 5ebe8768fc..0000000000
--- a/en_US.ISO8859-1/share/sgml/catalog
+++ /dev/null
@@ -1,9 +0,0 @@
- -- ...................................................................... --
- -- FreeBSD SGML Public Identifiers ...................................... --
-
- -- $FreeBSD: doc/share/sgml/catalog,v 1.9 2000/07/08 16:31:28 phantom Exp $
- --
-
-PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
- "freebsd.dsl"
-
diff --git a/en_US.ISO8859-1/share/sgml/freebsd.dsl b/en_US.ISO8859-1/share/sgml/freebsd.dsl
deleted file mode 100644
index 4f75914656..0000000000
--- a/en_US.ISO8859-1/share/sgml/freebsd.dsl
+++ /dev/null
@@ -1,63 +0,0 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/share/sgml/freebsd.dsl,v 1.6 2001/03/24 09:42:02 nik Exp $ -->
-
-<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
-<!ENTITY freebsd.dsl PUBLIC "-//FreeBSD//DOCUMENT DocBook Language Neutral Stylesheet//EN" CDATA DSSSL>
-<!ENTITY % output.html "IGNORE">
-<!ENTITY % output.print "IGNORE">
-]>
-
-<style-sheet>
- <style-specification use="docbook">
- <style-specification-body>
-
- <![ %output.html; [
- (define ($email-footer$)
- (make sequence
- (make element gi: "p"
- attributes: (list (list "align" "center"))
- (make element gi: "small"
- (literal "This, and other documents, can be downloaded from ")
- (make element gi: "a"
- attributes: (list (list "href" "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc"))
- (literal "ftp.FreeBSD.org/pub/FreeBSD/doc/"))
- (literal ".")))
- (make element gi: "p"
- attributes: (list (list "align" "center"))
- (make element gi: "small"
- (literal "For questions about FreeBSD, read the ")
- (make element gi: "a"
- attributes: (list (list "href" "http://www.freebsd.org/docs.html"))
- (literal "documentation"))
- (literal " before contacting <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:questions@FreeBSD.org"))
- (literal "questions@FreeBSD.org"))
- (literal ">.")
- (make empty-element gi: "br")
- (literal "For questions about this documentation, e-mail <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:doc@FreeBSD.org"))
- (literal "doc@FreeBSD.org"))
- (literal ">.")))))
-
-
- <!-- Convert " ... " to `` ... '' in the HTML output. -->
- (element quote
- (make sequence
- (literal "``")
- (process-children)
- (literal "''")))
-
- <!-- Generate links to HTML man pages -->
- (define %refentry-xref-link% #t)
-
- <!-- Specify how to generate the man page link HREF -->
- (define ($create-refentry-xref-link$ refentrytitle manvolnum)
- (string-append "http://www.FreeBSD.org/cgi/man.cgi?query="
- refentrytitle "&" "sektion=" manvolnum))
- ]]>
- </style-specification-body>
- </style-specification>
-
- <external-specification id="docbook" document="freebsd.dsl">
-</style-sheet>
diff --git a/en_US.ISO8859-1/share/sgml/legalnotice.sgml b/en_US.ISO8859-1/share/sgml/legalnotice.sgml
deleted file mode 100644
index ecb8ba6cee..0000000000
--- a/en_US.ISO8859-1/share/sgml/legalnotice.sgml
+++ /dev/null
@@ -1,44 +0,0 @@
-<!--
- Standard FreeBSD Documentation Project Legal Notice.
-
- $FreeBSD$
--->
-
-<legalnotice>
- <para>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:</para>
-
- <orderedlist>
- <listitem>
- <para>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.</para>
- </listitem>
-
- <listitem>
- <para>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.</para>
- </listitem>
- </orderedlist>
-
- <important>
- <para>THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION
- PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
- BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- THE FREEBSD DOCUMENTATION PROJECT 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.</para>
- </important>
-</legalnotice>
-
diff --git a/en_US.ISO_8859-1/books/corp-net-guide/book.sgml b/en_US.ISO_8859-1/books/corp-net-guide/book.sgml
index 05fcec7efc..720aab9c75 100644
--- a/en_US.ISO_8859-1/books/corp-net-guide/book.sgml
+++ b/en_US.ISO_8859-1/books/corp-net-guide/book.sgml
@@ -1,4 +1,4 @@
-<!-- $FreeBSD: doc/en_US.ISO_8859-1/books/corp-net-guide/book.sgml,v 1.1 2001/04/09 20:39:28 nik Exp $ -->
+<!-- $FreeBSD$ -->
<!-- FreeBSD Documentation Project -->
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
@@ -35,7 +35,7 @@
code, working examples,
<ulink url="http://www.freebsd-corp-net-guide.com/errata.html">errata</ulink>
and a Q&amp;A forum, and is available at
- <ulink url="http://www.freebsd-corp-net-guide.com/">http://www.freebsd-corp-net-guide.com/</ulink>.</para>
+ <ulink url="http://wwww.freebsd-corp-net-guide.com/">http://www.freebsd-corp-net-guide.com/</ulink>.</para>
</legalnotice>
</bookinfo>
diff --git a/en_US.ISO_8859-1/books/faq/book.sgml b/en_US.ISO_8859-1/books/faq/book.sgml
index f1bbd05a9e..dafe6f6a44 100644
--- a/en_US.ISO_8859-1/books/faq/book.sgml
+++ b/en_US.ISO_8859-1/books/faq/book.sgml
@@ -14,7 +14,7 @@
<corpauthor>The FreeBSD Documentation Project</corpauthor>
- <pubdate>$FreeBSD: doc/en_US.ISO_8859-1/books/faq/book.sgml,v 1.174 2001/04/15 19:17:27 jim Exp $</pubdate>
+ <pubdate>$FreeBSD: doc/en_US.ISO_8859-1/books/faq/book.sgml,v 1.175 2001/04/16 23:55:49 dd Exp $</pubdate>
<copyright>
<year>1995</year>
@@ -167,9 +167,9 @@
<answer>
<para>Version <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/">4.2</ulink>
+ URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.3-RELEASE/">4.3</ulink>
is the latest <emphasis>STABLE</emphasis> version; it was
- released in November, 2000. This is also the latest
+ released in April, 2001. This is also the latest
<emphasis>RELEASE</emphasis> version.</para>
<para>Briefly explained, <emphasis>-STABLE</emphasis> is aimed
@@ -315,7 +315,7 @@
| (May 1999) (Sep 1999) (Dec 1999) (June 2000) (July 2000)
|
| [4.0-STABLE]
- *BRANCH* 4.0 (Mar 2000) -&gt; 4.1 -&gt; 4.1.1 -&gt; 4.2 -&gt; ... future 4.x releases ...
+ *BRANCH* 4.0 (Mar 2000) -&gt; 4.1 -&gt; 4.1.1 -&gt; 4.2 -&gt; 4.3 -&gt; ... future 4.x releases ...
|
| (July 2000) (Sep 2000) (Nov 2000)
\|/
@@ -327,8 +327,8 @@
the release of 2.2.8. 3-STABLE replaced it, with 3.5.1 (the
final 3.X release) being released in July 2000. In May 2000
(even though 3.5 came after that), the 3-STABLE branch was more
- or less replaced by the 4-STABLE branch. 4.2-RELEASE was
- released in November 2000. 4-STABLE is the actively developed
+ or less replaced by the 4-STABLE branch. 4.3-RELEASE was
+ released in April 2001. 4-STABLE is the actively developed
-STABLE branch, although some bugfixes (mostly
security-related) are still being committed to 3-STABLE. It is
expected that the 3.X branch will be officially obsoleted some
@@ -419,9 +419,9 @@
</listitem>
<listitem>
- <para>The current 4-STABLE release, 4.2-RELEASE can be
+ <para>The current 4-STABLE release, 4.3-RELEASE can be
found in the <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.2-RELEASE/">4.2-RELEASE directory</ulink>.</para>
+ URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.3-RELEASE/">4.3-RELEASE directory</ulink>.</para>
</listitem>
<listitem>
@@ -5299,7 +5299,7 @@ device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr</programlisting>
buildkernel</command> and <command>make
installkernel</command> targets, and your source tree is
different from the one used to build the currently running
- system (e.g., you're compiling 4.2-RELEASE on a 4.0-RELEASE
+ system (e.g., you're compiling 4.3-RELEASE on a 4.0-RELEASE
system). If you're attempting an upgrade, please read the
<filename>/usr/src/UPDATING</filename> file, paying
particular attention to the <quote>COMMON ITEMS</quote>
@@ -7126,8 +7126,11 @@ define(`confDELIVERY_MODE',`deferred')dnl</programlisting>
3.0-RELEASE and 4.0-RELEASE, are branched from the head of
the development stream, commonly referred to as <link
linkend="current">-CURRENT</link>. Minor releases, such
- as 3.1-RELEASE or 4.2-RELEASE, are snapshots of the active
- <link linkend="stable">-STABLE</link> branch.</para>
+ as 3.1-RELEASE or 4.2-RELEASE, have been snapshots of the active
+ <link linkend="stable">-STABLE</link> branch. Starting with
+ 4.3-RELEASE, each release also now has its own branch which can be
+ tracked by people requiring an extremely conservative rate
+ of development (typically only security advisories).</para>
<para>When a release is about to be made, the branch from
which it will be derived from has to undergo a certain
diff --git a/en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml b/en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml
index 6c5cc89d7f..e093732098 100644
--- a/en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml
+++ b/en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml
@@ -27,7 +27,7 @@
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
- $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml,v 1.1 2000/07/16 16:35:41 nik Exp $
+ $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/examples/appendix.sgml,v 1.2 2001/04/17 16:02:19 nik Exp $
-->
<appendix id="examples">
@@ -113,7 +113,7 @@
<programlisting><![ CDATA [<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<article>
- <artheader>
+ <articleinfo>
<title>An example article</title>
<author>
@@ -132,7 +132,7 @@
<abstract>
<para>If your article has an abstract then it should go here.</para>
</abstract>
- </artheader>
+ </articleinfo>
<sect1>
<title>My first section</title>
diff --git a/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml b/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml
index a5d16c1126..d497523e7b 100644
--- a/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml
+++ b/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml
@@ -27,7 +27,7 @@
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
- $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.18 2001/01/03 11:12:41 nik Exp $
+ $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.19 2001/04/17 16:02:54 nik Exp $
-->
<chapter id="sgml-markup">
@@ -820,16 +820,16 @@
used to produce a title page.</para>
<para>This additional information should be contained within
- <sgmltag>artheader</sgmltag>.</para>
+ <sgmltag>articleinfo</sgmltag>.</para>
<example>
<title>Boilerplate <sgmltag>article</sgmltag> with
- <sgmltag>artheader</sgmltag></title>
+ <sgmltag>articleinfo</sgmltag></title>
<!-- Can't put this in a marked section because of the
replaceable elements -->
<programlisting>&lt;article>
- &lt;artheader>
+ &lt;articleinfo>
&lt;title><replaceable>Your title here</replaceable>&lt;/title>
&lt;author>
@@ -852,7 +852,7 @@
&lt;abstract>
&lt;para><replaceable>Include an abstract of the article's contents here.</replaceable>&lt;/para>
&lt;/abstract>
- &lt;/artheader>
+ &lt;/articleinfo>
&hellip;
diff --git a/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml b/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml
index 21f3836844..3e78167d13 100644
--- a/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml
+++ b/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml
@@ -27,7 +27,7 @@
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
- $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml,v 1.10 2001/04/05 01:47:13 dd Exp $
+ $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml,v 1.11 2001/04/09 00:33:47 dd Exp $
-->
<chapter id="writing-style">
@@ -226,7 +226,7 @@ V
<informalexample>
<programlisting><![ CDATA [<article>
- <artheader>
+ <articleinfo>
<title>NIS</title>
<pubdate>October 1999</pubdata>
@@ -236,7 +236,7 @@ V
...
...</para>
</abstract>
- </artheader>
+ </articleinfo>
<sect1>
<title>...</title>
diff --git a/en_US.ISO_8859-1/books/handbook/book.sgml b/en_US.ISO_8859-1/books/handbook/book.sgml
index 394cd63d3e..66230e5424 100644
--- a/en_US.ISO_8859-1/books/handbook/book.sgml
+++ b/en_US.ISO_8859-1/books/handbook/book.sgml
@@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/book.sgml,v 1.95 2001/01/19 00:01:46 dannyboy Exp $
+ $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/book.sgml,v 1.96 2001/04/12 07:33:12 nik Exp $
-->
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@@ -21,7 +21,7 @@
<!-- The currently released version of FreeBSD. This value is used to
create some links on web sites and such, so do NOT change it until
it's really release time -->
-<!ENTITY rel.current CDATA "4.2">
+<!ENTITY rel.current CDATA "4.3">
]>
<book>
diff --git a/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml b/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml
index 3fae92387e..bf51f0a7d7 100644
--- a/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml
+++ b/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml
@@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml,v 1.114 2001/04/17 01:37:31 dd Exp $
+ $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml,v 1.115 2001/04/18 08:48:31 nik Exp $
-->
<appendix id="mirrors">
@@ -989,6 +989,15 @@
</varlistentry>
<varlistentry>
+ <term>RELENG_4_3</term>
+
+ <listitem>
+ <para>The release branch for FreeBSD-4.3, used only
+ for security advisories and other seriously critical fixes.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>RELENG_3</term>
<listitem>
@@ -1014,6 +1023,14 @@
<variablelist>
<varlistentry>
+ <term>RELENG_4_3_0_RELEASE</term>
+
+ <listitem>
+ <para>FreeBSD 4.3.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>RELENG_4_2_0_RELEASE</term>
<listitem>
diff --git a/es_ES.ISO8859-1/FAQ/FAQ.sgml b/es_ES.ISO8859-1/FAQ/FAQ.sgml
deleted file mode 100644
index b6b24a3e2d..0000000000
--- a/es_ES.ISO8859-1/FAQ/FAQ.sgml
+++ /dev/null
@@ -1,64 +0,0 @@
-<!-- $FreeBSD: doc/es_ES.ISO_8859-1/FAQ/FAQ.sgml,v 1.7 1999/09/06 06:53:13 peter Exp $ -->
-<!-- The FreeBSD Documentation Spanish Project -->
-
-<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
-<!ENTITY preface SYSTEM "preface.sgml">
-<!ENTITY install SYSTEM "install.sgml">
-<!ENTITY hardware SYSTEM "hardware.sgml">
-<!ENTITY troubleshoot SYSTEM "troubleshoot.sgml">
-<!ENTITY commercial SYSTEM "commercial.sgml">
-<!ENTITY applications SYSTEM "applications.sgml">
-<!ENTITY kernelconfig SYSTEM "kernelconfig.sgml">
-<!ENTITY admin SYSTEM "admin.sgml">
-<!ENTITY x SYSTEM "x.sgml">
-<!ENTITY network SYSTEM "network.sgml">
-<!ENTITY serial SYSTEM "serial.sgml">
-<!ENTITY misc SYSTEM "misc.sgml">
-<!ENTITY hackers SYSTEM "hackers.sgml">
-<!ENTITY acknowledgments SYSTEM "acknowledgments.sgml">
-]>
-
-<article>
-
- <title>Frequently Asked Questions para FreeBSD 2.X</title>
- <author>
- <name>Proyecto de documentaci&oacute;n de FreeBSD</name>
- </author>
-
- <date>$FreeBSD$</date>
-
- <abstract>
- Esta es la FAQ para sistemas FreeBSD versi&oacute;n 2.X. Todas las secciones
- est&aacute;n dirigidas a FreeBSD 2.0.5 y superiores. Los cap&iacute;tulos
- con &lt;XXX&gt; est&aacute;n bajo construcci&oacute;n.
- Si est&aacute;s interesado en colaborar en este proyecto, env&iacute;a un
- e-mail a la lista de distribuci&oacute;n del proyecto de
- documentaci&oacute;n de FreeBSD <htmlurl
- url="mailto:freebsd-doc@FreeBSD.org" name="<freebsd-doc@FreeBSD.org>"> o
- a la direcci&oacute;n <htmlurl url="mailto:faq-es@es.FreeBSD.org"
- name="faq-es@es.FreeBSD.org">. La &uacute;ltima versi&oacute;n de este
- documento est&aacute; siempre disponible en el <url
- url="http://www.es.FreeBSD.org/es" name="Mirror espa&ntilde;ol de FreeBSD">
- . Puede ser "bajada" en <url url="FAQ.latin1" name="formato texto">,
- o <url url="FAQ-html.tar.gz" name="formato HTML"> mediante HTTP.
- </abstract>
-
-
- <toc>
-
-&preface;
-&install;
-&hardware;
-&troubleshoot;
-&commercial;
-&applications;
-&kernelconfig;
-&admin;
-&x;
-&network;
-&serial;
-&misc;
-&hackers;
-&acknowledgments;
-
-</article>
diff --git a/es_ES.ISO8859-1/FAQ/Makefile b/es_ES.ISO8859-1/FAQ/Makefile
deleted file mode 100644
index 16b06f05c3..0000000000
--- a/es_ES.ISO8859-1/FAQ/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# $FreeBSD$
-
-.NOTPARALLEL:
-
-DOC= FAQ
-VOLUME= faq
-DOCDIR= /usr/local/share/doc/fdp/es_ES.ISO_8859-1/books
-FORMATS?= html roff
-SGMLOPTS+=-links
-
-SRCS= FAQ.sgml acknowledgments.sgml admin.sgml applications.sgml
-SRCS+= commercial.sgml hackers.sgml hardware.sgml install.sgml
-SRCS+= kernelconfig.sgml misc.sgml network.sgml preface.sgml
-SRCS+= serial.sgml troubleshoot.sgml x.sgml
-
-.include <bsd.sgml.mk>
diff --git a/es_ES.ISO8859-1/FAQ/acknowledgments.sgml b/es_ES.ISO8859-1/FAQ/acknowledgments.sgml
deleted file mode 100644
index b23578273d..0000000000
--- a/es_ES.ISO8859-1/FAQ/acknowledgments.sgml
+++ /dev/null
@@ -1,61 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>AGRADECIMIENTOS<label id="acknowledgments"></heading>
-
- <p>
- <verb>
- Si ves alg&uacute;n problema o error en esta FAQ, o quieres enviar
- informaci&oacute;n para que sea a&ntilde;adida, por favor, env&iacute;a
- un mail a la direcci&oacute;n faq-es@es.FreeBSD.org. Apreciamos tu
- informaci&oacute;n e inter&eacute;s, y no podemos hacer una FAQ mejor
- sin tu ayuda.
-
-
- FreeBSD Spanish Documentation Project.
- </verb>
-
- <descrip>
- <tag/Cristobal Talavera (cristobal@es.FreeBSD.org)/
- Por ser uno de los mejores t&eacute;cnicos de Internet en Espa&ntilde;a :)
-
- <tag/David Casademunt (david@es.FreeBSD.org)/
- No hay hardware que se le resista.
-
- <tag/Nick Clayton (nick@FreeBSD.org)/
- Gracias a su ayuda todo esto ha sido posible.
-
- <tag/Nexus Comunicacaciones (www.ncsa.es)/
- Por mantener el mirror y darme las facilidades para hacer todo esto.
-
- <tag/Oscar Colet (oscarc@abaforum.es)/
- Por aguantar lo que tiene que aguantar.
-
- <tag/Jordan Hubbard/
- Actualizaciones y entradas ocasionales.
-
- <tag/Doug White/
- Recopilaciones y respuestas en FreeBSD-questions.
-
- <tag/Joerg Wunsch/
- Recopilaciones y respuestas en las news.
-
- <tag/Garrett Wollman/
- Redes.
-
- <tag/Jim Lowe/
- Informaci&oacute;n sobre multicast.
-
- <tag/Peter da Silva/
- "Machaca de las teclas" de FreeBSD FAQ
-
- <tag/The FreeBSD Team/
- De todo.
- </descrip>
-
- <p>y para todos los que hemos olvidado, disculpas y muchas gracias por
- todo!.
-
- <p>Jes&uacute;s Rodr&iacute;guez <htmlurl url="mailto:jesusr@FreeBSD.org"
- name="jesusr@FreeBSD.org">
- </sect>
diff --git a/es_ES.ISO8859-1/FAQ/admin.sgml b/es_ES.ISO8859-1/FAQ/admin.sgml
deleted file mode 100644
index 54e7822944..0000000000
--- a/es_ES.ISO8859-1/FAQ/admin.sgml
+++ /dev/null
@@ -1,1163 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Administraci&oacute;n de sistema<label id="admin"></heading>
-
- <sect1>
- <heading>&iquest;D&oacute;nde est&aacute;n los ficheros de configuraci&oacute;n de arranque del sistema?</heading>
-
- <p>De la versi&oacute;n 2.0.5R a la 2.2.1R, el fichero principal de
- configuraci&oacute;n es <tt>/etc/sysconfig</tt>. Todas las opciones son
- especificadas en este fichero y otros como <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?rc" name="/etc/rc"> y
- <tt>/etc/netstart</tt>.
-
- <p>Mira en el fichero <tt>/etc/sysconfig</tt> y cambia los valores
- para tu sistema. Este fichero est&aacute; comentado para ayudar en la
- configuraci&oacute;n
-
- <p>En versiones posteriores a la 2.2.1 y 3.0 el fichero
- <tt>/etc/sysconfig</tt> fue renombrado como <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">.
- La sintaxis tambi&eacute;n fue retocada para ser mas descriptiva. El
- fichero <tt>/etc/netstart</tt> tambi&eacute;n fue renombrado como
- <tt>/etc/rc.network</tt> para que todos los ficheros de
- configuraci&oacute;n puedan ser copiados con el comando <tt>
- <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?cp" name="cp"> /usr/src/etc/rc*
- /etc</tt>.
-
- <p><tt>/etc/rc.local</tt> existe como siempre y deber&iacute;a ser usado
- para arrancar servicios locales adicionales como <htmlurl
- url="http://www.FreeBSD.org/cgi/ports.cgi?^inn" name="INN"> o
- programas propios.
-
- <p>El fichero <tt>/etc/rc.serial</tt> es para la inicializaci&oacute;n
- de puertos serie.
-
- <p>El fichero <tt>/etc/rc.i386</tt> es para especificaciones propias
- de Intel, como la emulaci&oacute;n iBCS2 o la configuraci&oacute;n de la
- c&oacute;nsola del sistema.
-
- <p>A partir de la versi&oacute;n 2.1.0R, tambi&eacute;n puedes tener un
- directorio en el que instalar ficheros de arranque locales especificado en
- <tt>/etc/sysconfig</tt> (o <tt>/etc/rc.conf</tt>):
-
- <verb>
- # Localizaci&oacute;n de los ficheros de arranque locales.
- local_startup=/usr/local/etc/rc.local.d
- </verb>
-
- <p>Cada fichero acabado en <tt/.sh/ ser&aacute; ejecutado en orden
- alfab&eacute;tico.
-
- <p>Si quieres asegurarte de un cierto orden en la ejecuci&oacute;n sin
- tener que cambiar todos los nombres de los ficheros, puedes usar un
- esquema similar al siguiente con d&iacute;gitos al principio del nombre
- de cada fichero:
-
- <verb>
- 10news.sh
- 15httpd.sh
- 20ssh.sh
- </verb>
-
- <p>Puede ser visto como "malo" (o SysV :-)) pero nos provee de un
- esquema regular para programas a&ntilde;adidos localmente sin tener que
- hacer ediciones complicadas del fichero <tt>/etc/rc.local</tt>.
- Muchos de los ports/packages asumen que <tt>/usr/local/etc/rc.d</tt>
- es un directorio de arranque local.
-
- <sect1>
- <heading>&iquest;C&oacute;mo a&ntilde;ado un usuario facilmente?</heading>
-
- <p>Usa el comando <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?adduser" name="adduser">. Para
- opciones m&aacute;s avanzadas, usa el comando <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?pw" name="pw">
-
- <p>Para borrar a un usuario, usa el comando <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?rmuser" name="rmuser">.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo a&ntilde;adir mi nuevo disco a FreeBSD?</heading>
-
- <p>La manera m&aacute;s f&aacute;cil de hacer esto es desde el programa de
- instalaci&oacute;n. Puedes arrancar el programa de instalaci&aacute;n
- ejecutando <tt>/stand/sysinstall</tt> como root.
-
- <p>Alternativamente, si todav&iacute;a tienes el floppy de
- instalaci&oacute;n, puedes arrancar desde &eacute;l y usar el editor de
- etiquetas y particiones.
-
- <p><label id="2_1-disklabel-fix">Si lo anterior no te funciona o
- si eres masoquista total a quien le gustan los interfaces arcanos
- as&iacute; es como usar el programa
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?disklabel"
- name="disklabel"> manualmente:
-
- <p><em>CUIDADO: Debes leer y entender perfectamente lo que est&aacute;s
- haciendo!. Los comandos aqu&iacute; descritos pueden BORRAR tu sistema.
- Procede con precauci&oacute;n!. Recuerda, un BACKUP es tu amigo</em>.
-
- <p><tt/sysinstall/ insistir&aacute; en montar algo en / en el editor de
- etiquetas de disco. Tendr&aacute;s que ejecutar manualmente
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?disklabel"
- name="disklabel"> antes de poder ejecutar
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?newfs" name="newfs">/.
- Esto significa que tendr&aacute;s que hacer tu mismo los c&aacute;lculos
- para las particiones. Mira si puedes obtener informaci&oacute;n del
- disco con <tt>disklabel -r &lt;diskname&gt;</tt> por ejemplo
- <tt>disklabel -r /dev/rwd0s2</tt> asumiendo que tu nuevo disco es
- wd0, el primer disco IDE, y FreeBSD es el segundo slice (s2).
- Deber&iacute;as ver algo como esto:-
-
-
- <verb>
- # /dev/rwd0s2:
- type: ESDI
- disk: wd0s2
- label:
- flags:
- bytes/sector: 512
- sectors/track: 63
- tracks/cylinder: 64
- sectors/cylinder: 4032
- cylinders: 610
- sectors/unit: 2459520
- rpm: 3600
- interleave: 1
- trackskew: 0
- cylinderskew: 0
- headswitch: 0 # milliseconds
- track-to-track seek: 0 # milliseconds
- drivedata: 0
-
- 8 partitions:
- # size offset fstype [fsize bsize bps/cpg]
- c: 2459520 0 unused 0 0 # (Cyl. 0 - 609)
- e: 2459520 0 4.2BSD 0 0 0 # (Cyl. 0 - 609)
- </verb>
-
- <p>Aegurate que el tama&ntilde;o es correcto, en este caso, 2459520
- sectores x 512 bytes/sector / 2**20 (1 Megabyte) = 1200 MB. El resto
- de datos (b/s, t/c, s/c, interleave, etc.) deber&iacute;an funcionar con
- los que salen por defecto con <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?disklabel"
- name="disklabel">, pero mira <ref id="ESDI" name="esta nota"> para
- discos antiguos. fsize es el <ref id="fsize" name="tama&ntilde;o de
- fragmento"> del sistema de ficheros y bsize es el
- <ref id="bsize" name="tama&ntilde;o de bloque">. 'c' es la
- partici&oacute;n que ocupa FreeBSD (o el disco completo en caso de una
- &uacute;nica partici&oacute;n para FreeBSD), y debe quedar como esta.
- <em>No deberia ser usada para un sistema de ficheros</em>. La
- partici&oacute;n 'c' es m&aacute;gica en que es reconocida y usada por
- el kernel aunque no exista ninguna etiqueta en ella.
-
- <p>En el caso trivial de querer usar todo el sistema de ficheros
- para FreeBSD, la entrada para el campo "e" tiene que ser corregida
- poniendo fsize a 1023 y bsize a 8192 (8 fragmentos/bloque), los
- cuales son razonables. La entrada correcta para "e" seria:
-
- <verb>
- e: 2459520 0 4.2BSD 1024 8192
- </verb>
-
- <p>Ahora el caso mas complicado, donde queremos 2 particiones para
- 2 sistemas de ficheros. Siguiendo la <ref id="fsname"
- name="convenci&oacute;n de nombres BSD">, las particiones ser&aacute;n
- <tt /wd0s2e/ y <tt /wd0s2f/. Sup&oacute;n que tenemos 1200MB y
- asignamos 300 para "e" y los restantes 900 para "f". Los datos de
- las particiones ser&iacute;an:
-
- <verb>
- 8 partitions:
- # size offset fstype [fsize bsize bps/cpg]
- c: 2459520 0 unused 0 0 # (Cyl. 0 - 609)
- e: 614400 0 4.2BSD 1024 8192
- f: 1843200 614400 4.2BSD 1024 8192
- </verb>
-
- <p><bf /Nota:/ Puedes editar directamente el "disklabel" con
- ''<tt>disklabel -e wd0s2</tt>''. Para m&aacute;s informaci&oacute;n mira
- en <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?disklabel"
- name="disklabel">.
-
- <p>Si tienes la versi&oacute;n 2.1.5 o superior, y quieres dedicar
- enteramente el disco para FreeBSD sin compartirlo con otros
- sistemas operativos, se pueden reducir las operaciones a
- realizar de la siguiente manera:
-
- <verb>
- # dd if=/dev/zero of=/dev/rwd0 count=100
- # disklabel -Brw wd0 auto
- # disklabel -e wd0
- </verb>
-
- <p>El primer comando <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?dd" name="dd"> asegura que
- no hay basura en el inicio del disco que pueda confundir al kernel.
- Lo siguiente a realizar es una generaci&oacute;n autom&aacute;tica de
- etiqueta usando los procesos por defecto ejecutados en el arranque del
- sistema. La edici&oacute;n de la etiqueta continua de la manera descrita
- anteriormente.
-
- <p>Has acabado!. Ahora debes inicializar el sistema de ficheros
- con algo como:
-
- <verb>
- newfs -d0 /dev/rwd0s2e
- newfs -d0 /dev/rwd0s2f
- </verb>
-
- <p>Dependiendo del nombre del disco y la partici&oacute;n, quiz&aacute;s
- sea requerida la ejecuci&oacute;n del script <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV" name="/dev/MAKEDEV">
- para la creaci&oacute;n de los dispositivos.
-
- <p>Y montar tus nuevos discos/particiones (mira el comando
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?mount" name="mount">)
-
- <verb>
- mount /dev/wd0s2e /mnt/foo
- mount /dev/wd0s2f /mnt/bar
- </verb>
-
- <p>Deber&iacute;as editar el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?fstab(5)" name="/etc/fstab">
- para montar automaticamente los discos/particiones al arrancar el
- sistema.
-
- <p><bf /Glosario:/
-
- <descrip>
- <tag><label id="fsize"><bf>Fragment Size (fsize)</bf></tag>
- Unidad b&aacute;sica de almacenamiento para <tt /ffs/.
- M. McKusick, W. Joy, S. Leffler, and R. Fabry,
- "A Fast File System for UNIX",
- ACM Transactions on Computer Systems 2, 3, pp 181-197, August
- 1984, (reprinted in the BSD System Manager's Manual, SMM:5) o
- <url url="file:/usr/share/doc/smm/05.fastfs/paper.ascii.gz"
- name="/usr/share/doc/smm/05.fastfs/paper.ascii.gz"> en tu sistema.
-
- <tag><label id="bsize"><bf>Block Size (bsize)</bf></tag>
- Un bloque se compone de uno o mas fragmentos. Mira la referencia
- correspondiente en:
- <url url="file:/usr/include/sys/disklabel.h"
- name="&lt;sys/disklabel.h&gt;">
-
- <tag><label id="ESDI">
- <bf>Disklabel Characteristics for Older Disks (ESDI)</bf></tag>
- Necesitar&aacute;s dar m&aacute;s informaci&oacute;n a<htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?disklabel"
- name="disklabel">
- si quieres usar un "disco verdadero". Necesitar&aacute;s saber la
- geometr&iacute;a uniforme, cabezales reales, sectores y cilindros, como
- en los discos ESDI antiguos. Toda esta informaci&oacute;n
- deber&iacute;a ser facilmente localizable en la cubierta del propio
- disco, manual, etc.
-
- <tag><label id="fsname">
- <bf>Nombres del sistema de ficheros BSD</bf></tag>
- La partici&oacute;n 'a', por convenci&oacute;n, est&aacute; reservada
- para particiones 'bootables' y la partici&oacute;n 'b' para swap. Las
- particiones regulares deben empezar en la 'd'. La partici&oacute;n 'e'
- corresponde a la primera partici&oacute;n no bootable y a usar como
- sistema de ficheros.
-
- <tag><label id="swap">
- <bf>Warning referente al espacio de swap</bf></tag>
- El espacio requerido por la tabla de partici&oacute;n de BSD est&aacute;
- permitido en el sistema de ficheros. No empieces la partici&oacute;n
- swap en el cilindro 0.
- </descrip>
-
- <sect1>
- <heading>Tengo un nuevo disco removible, &iquest;como lo uso?</heading>
-
- <p>Se trate de un disco removible como un ZIP o EA (o un floppy,
- si quieres usarlo de esta manera), o un nuevo disco duro, una vez
- instalado y reconocido por el sistema, y tengas tu
- cartridge/floppy/etc en su interior, las cosas son como para la
- mayor&iacute;a de dispositivos.
-
- <p><label id="disklabel">(esta secci&oacute;n esta basada en <url
- url="http://vinyl.quickweb.com/mark/FreeBSD/ZIP-FAQ.html"
- name="Mark Mayo's ZIP FAQ">)
-
- <p>Si es un disco ZIP o floppy, y est&aacute; formateado en DOS, puedes
- usar el comando:
-
- <verb>
- mount -t msdos /dev/fd0c /floppy
- </verb>
-
- <p>Si es un floppy, o este:
-
- <verb>
- mount -t msdos /dev/da2s4 /zip
- </verb>
-
- <p>para un disco ZIP con la configuraci&oacute;n de f&aacute;brica.
-
- <p>Para otros discos, mira como configurarlos usando <tt/fdisk/ o
- <tt>/stand/sysinstall</tt>.
-
- <p>El resto de ejemplos ser&aacute;n para un disco ZIP en da2, el tercer
- disco SCSI.
-
- <p>A no ser que se trate de un floppy o disco removible, lo que
- planeas compartir con otros usuarios, es aconsejable convertir
- el formato de ficheros a BSD. Obtendr&aacute;s nombre de ficheros largos,
- como m&iacute;nimo doblar&aacute;s la velocidad de acceso del disco, y
- mucha m&aacute;s estabilidad. Antes, necesitas rehacer las particiones.
- Puedes usar el comando
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fdisk"
- name="fdisk"> o la utilidad <tt>/stand/sysinstall</tt>. Si es un
- disco peque&ntilde;o que quieres dedicar enteramente a FreeBSD, solo
- tienes que eliminar la FAT y tabla de particiones, y usar el sistema
- de particiones de FreeBSD:
-
- <verb>
- dd if=/dev/zero of=/dev/rda2 count=2
- disklabel -Brw da2 auto
- </verb>
-
- <p>Puedes usar el comando disklabel (mas informaci&oacute;n en
- <ref id="2_1-disklabel-fix" name="esta nota">) o
- <tt>/stand/sysinstall</tt> para crear m&uacute;ltiples particiones BSD.
-
- <p>Finalmente, crea un nuevo sistema de ficheros:
-
- <verb>
- newfs /dev/rda2c
- </verb>
-
- <p>y montalo:
-
- <verb>
- mount /dev/da2c /zip
- </verb>
-
- <p>Ser&iacute;a una buena idea a&ntilde;adir una l&iacute;nea como esta
- en el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fstab"
- name="/etc/fstab"> para que solo tengas que teclear "mount /zip"
- las siguientes veces.
-
- <verb>
- /dev/da2c /zip ffs rw,noauto 0 0
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo monto una partici&oacute;n secundaria DOS?</heading>
-
- <p>Las particiones DOS secundarias se encuentran despu&eacute;s de TODAS
- las particiones primarias. Por ejemplo, si tienes una partici&oacute;n
- "E" como la segunda partici&oacute;n DOS en el segundo disco SCSI,
- necesitas crear los ficheros especiales para el dispositivo 5 en /dev, y
- despu&eacute;s montar /dev/da1s5:
-
- <verb>
- # cd /dev
- # ./MAKEDEV da1s5
- # mount -t msdos /dev/da1s5 /dos/e
- </verb>
-
- <sect1>
- <heading>&iquest;Puedo montar otros sistemas de ficheros bajo FreeBSD?</heading>
-
- <p><bf/Digital UNIX/ UFS CDROMs pueden ser montados directamente
- en FreeBSD. Montar particiones de disco de Digital UNIX y otros
- sistemas que soportan UFS puede ser mas complejo, dependiendo de los
- detalles de la partici&oacute;n de disco del sistema operativo en
- cuesti&oacute;n.
-
- <p><bf/ Linux/: 2.2 y posteriores soportan particiones <bf/ext2fs/.
- Mira <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?mount_ext2fs"
- name="mount_ext2fs"> para mas informaci&oacute;n.
-
- <p><bf/ NT/: Existe un driver de solo lectura de NTFS para FreeBSD. Para
- m&aacute;s informaci&oacute;n, mira este tutorial de Mark Ovens en
- <htmlurl url="http://www.users.globalnet.co.uk/~markov/ntfs_install.html"
- name="http://www.users.globalnet.co.uk/~markov/ntfs_install.html">.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo usar el "NT loader" para arrancar FreeBSD?</heading>
-
- <p>La idea general es que copies el primer sector de la partici&oacute;n
- root nativa de FreeBSD en un fichero en la partici&oacute;n DOS/NT.
- Asumiento que nombras a ese fichero como <tt>c:&bsol;bootsect.bsd</tt>
- puedes editar el fichero <tt>c:&bsol;boot.ini</tt> para conseguir
- algo como esto:
-
- <verb>
- [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"
- </verb>
-
- <p>Este proceso asume que DOS, NT, FreeBSD o cualquier otro sistema
- ha sido instalado en sus respectivas particiones en el mismo disco.
- En nuestro caso, DOS y NT est&aacute;n en la primera partici&oacute;n
- y FreeBSD en la segunda. Instalamos FreeBSD para arrancarlo desde su
- partici&oacute;n nativa y no desde el disco MBR.
-
- <p>Monta un floppy formateado en DOS bajo la partici&oacute;n <tt>/mnt</tt>.
-
- <verb>
- dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1
- </verb>
-
- <p>Rearranca en DOS o NT. Copia el fichero <tt/bootsect.bsd/ y/o el
- fichero <tt/bootsect.lnx/ del floppy a <tt/C:&bsol;/. Modifica los
- atributos a <tt/boot.ini/ con:
-
- <verb>
- attrib -s -r c:\boot.ini
- </verb>
-
- <p>Edita y a&ntilde;ade las l&iacute;neas apropiadas del boot.ini mostrado
- enteriormente de ejemplo, y vuelve a poner los atributos originales:
-
- <verb>
- attrib +s +r c:\boot.ini
- </verb>
-
- <p>Si FreeBSD est&aacute; arrancando desde el MBR, restauralo desde el
- comando <tt/fdisk/ despu&eacute;s de reconfigurarlos para arrancar desde
- sus particiones nativas.
-
- <sect1>
- <heading>
- &iquest;C&oacute;mo arranco FreeBSD y Linux desde LILO?
- </heading>
-
- <p>Si tienes FreeBSD y Linux en el mismo disco, solo tienes que seguir
- las instrucciones de instalaci&oacute;n de LILO para arrancar un sistema
- operativo no Linux. Brevemente, son estas:
-
- <p>Arranca Linux, y a&ntilde;ade las siguientes l&iacute;neas en el
- fichero
- <tt>/etc/lilo.conf</tt>:
- <verb>
- other=/dev/hda2
- table=/dev/hda
- label=FreeBSD
- </verb>
- (Asumiendo que tu partici&oacute;n FreeBSD es conocida por Linux como
- <tt>/dev/hda2</tt>). A continuaci&oacute;n, ejecuta <tt>lilo</tt> como
- root y ya deber&iacute;a estar.
-
- <p>Si FreeBSD est&aacute; en otro disco, necesitas a&ntilde;adir
- ``<tt>loader=/boot/chain.b</tt>'' al fichero <tt>lilo.conf</tt>. Por
- ejemplo:
- <verb>
- other=/dev/sdb4
- table=/dev/sdb
- loader=/boot/chain.b
- label=FreeBSD
- </verb>
-
- <p>En algunos casos necesitar&aacute;s especificar el n&uacute;mero de
- disco en BIOS para que el cargador del boot funcione correctamente desde
- el segundo disco. Por ejemplo, si tu disco SCSI con FreeBSD es visto por
- la BIOS como disco 1, en el prompt del cargador de arranque
- necesitar&aacute;s especificar:
- <verb>
- Boot: 1:da(0,a)/kernel
- </verb>
-
- <p>En FreeBSD 2.2.5 y posteriores, puedes configurar <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?boot(8)" name="boot(8)">
- para que haga esto automaticamente.
-
- <p>El <htmlurl
- url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html"
- name="Linux+FreeBSD mini-HOWTO"> es una buena referencia para
- las opciones de interoperabilidad entre FreeBSD y Linux.
-
- <sect1>
- <heading>
- &iquest;C&oacute;mo arranco FreeBSD y Linux usando BootEasy?
- </heading>
-
- <p>Instala el LILO al inicio de la partici&oacute;n de arranque del
- Linux en lugar de hacerlo en el "Master Boot Record". As&iacute;
- podr&aacute;s arrancar el LILO desde BootEasy.
-
- <p>Si estas usando Windows-95 y Linux, tambi&eacute;n es recomendable
- hacer esto para simplificar el arranque de Linux en caso de que sea
- necesaria una reinstalaci&oacute;n del Windows-95 (ya que no quiere
- convivir con otros sistemas operativos en el mismo Master Boot Record).
-
- <sect1>
- <heading>
- &iquest;Puede un disco "dedicado" provocar problemas?
- </heading>
-
- <p><label id="dedicate">El proceso de instalaci&oacute;n nos permite
- elegir dos m&eacute;todos diferentes de particionar un disco. El sistema
- por defecto hace que el disco sea compatible con otros sistemas
- operativos en la misma m&aacute;quina, usando las tablas de entrada de
- fdisk (llamadas "slices" en FreeBSD). Opcionalmente, podemos instalar un
- boot-selector que nos permite seleccionar el sistema operativo con
- el que queremos arrancar.
-
- <p>Mientras este es el caso m&aacute;s com&&uacute;n para gente
- proveniente del mundo de PC, para la gente proveniente del mundo Unix y
- quienes quieren instalar una m&aacute;quina para funcionar con FreeBSD y
- solo FreeBSD, es m&aacute;s habitual usar el sistema de reservar todo el
- espacio del disco para un solo sistema operativo.
- Si seleccionas "A)ll FreeBSD" en el editor de fdisk de la utilidad
- sysinstall, y respondes la siguiente pregunta con "No", usar&aacute;s
- este &uacute;ltimo sistema. Ten en cuenta que usando este sistema no te
- permitir&aacute; la instalaci&oacute;n de ning&uacute;n otro sistema
- operativo o selector de arranque (boot manager).
-
- <p>Entonces, por que se llama "peligroso"?. Un disco en este modo
- no contiene lo que las utilidades normales de un PC considerar&iacute;an
- una tabla de partici&oacute;n de ficheros v&aacute;lida. Dependiendo del
- dise&ntilde;o de estas aplicaciones, puede que da&ntilde;en el sector de
- arranque una vez entren en contacto con el disco. Por lo menos una
- BIOS Award usada por m&aacute;quinas HP Netservers (pero no s&oacute;lo
- por ellos) es concocida por ignorar los disco duros que no contengan lo
- que la BIOS entiende por una tabla de ficheros v&aacute;lida.
-
- <p>Para volver un disco "peligrosamente dedicado" a formato
- estandard de PC, hay b&aacute;sicamente dos opciones. La primera es,
- escribes suficientes bytes NULL sobre el MBR para hacer que
- las siguientes instalaciones crean que est&aacute;n en un disco s&iacute;n
- usar. Puedes hacer esto as&iacute;:
-
- <verb>
- dd if=/dev/zero of=/dev/rda0 count=15
- </verb>
-
- <p>Alternativamente, puedes hacer:
-
- <verb>
- fdisk /mbr
- </verb>
-
- <p>que instalar&aacute; un nuevo master boot record.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo a&ntilde;adir m&aacute;s espacio de swap?</heading>
-
- <p>La mejor manera es incrementar el tama&ntilde;o de tu partici&oacute;n
- de swap, o usar esta excusa para a&ntilde;adir un otro disco nuevo (mira
- <ref id="swap" name="esta nota"> si lo haces).
-
- <p>A&ntilde;adir swap en discos separados hace las cosas m&aacute;s
- r&aacute;pidas que simplemente a&ntilde;adir swap en el mismo disco.
- Como ejemplo, si est&aacute;s compilando c&oacute;digo fuente en un
- disco, y el swap est&aacute; en otro disco, es mucho m&aacute;s
- r&aacute;pido que si el swap y la compilaci&oacute;n se realizaran en el
- mismo disco. Esto es cierto espec&iacute;ficamente para discos SCSI.
-
- <p>Los discos IDE no son capaces de permitir el acceso a ambos discos
- en el mismo canal al mismo tiempo (FreeBSD no soporta el modo 4, ya
- que todas las I/O de discos IDE son "programadas").
-
- <p>Es realmente muy mala idea instalar el swap sobre NFS a no ser que
- trabajes en una red muy r&aacute;pida con un muy buen servidor.
-
- <p>Aqu&iacute; hay un ejemplo para un fichero de swap de 64Mb
- <tt>/usr/swap0</tt>, piensa que puedes usar el nombre que quieras).
-
- <p>Asegurate que el kernel est&aacute; compilado con la l&iacute;nea
-
- <verb>
- pseudo-device vn 1 #Vnode driver (turns a file into a device)
- </verb>
-
- <p>en tu fichero de configuraci&oacute;n. El kernel GENERIC la contiene.
-
- <enum>
- <item>crea un vn-device
-
- <verb>
- cd /dev
- sh ./MAKEDEV vn0
- </verb>
-
- <item>crea un swapfile (<tt>/usr/swap0</tt>)
-
- <verb>
- dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
- </verb>
-
- <item>activa el fichero de swap en <tt>/etc/rc.conf</tt>
-
- <verb>
- swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
- </verb>
-
- <item>rebota la m&aacute;quina.
- </enum>
-
- <p>Para activar el fichero de swap inmediatamente teclea
-
- <verb>
- vnconfig -ce /dev/vn0c /usr/swap0 swap
- </verb>
-
- <sect1>
- <heading>Tengo problemas para poner en marcha mi impresora.</heading>
-
- <p>Por favor, revisa la secci&oacute;n de impresoras del manual. Cubre la
- mayor&iacute;a de posibles problemas. P&aacute;sate por
- <url url="../../handbook/printing.html" name="esta secci&oacute;n.">
-
- <sect1>
- <heading>Mi teclado no coincide con los car&aacute;cteres de pantalla.</heading>
-
- <p>El programa de control de teclado tiene una opci&oacute;n para cargar
- el mapa de teclado. En el directorio <tt>/usr/share/syscons/keymaps</tt>
- hay diferentes ficheros de mapas de teclado. Selecciona el que
- corresponde a tu sistema y c&aacute;rgalo.
-
- <verb>
- kbdcontrol -l uk.iso
- </verb>
-
- <p>Tanto el directorio <tt>/usr/share/syscons/keymaps</tt> como la
- extensi&oacute;n <tt/.kbd/ son asumidas por la orden
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?kbdcontrol"
- name="kbdcontrol">.
-
- <p>Esto puede ser configurado en <tt>/etc/sysconfig</tt> (o <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">).
- Mira los comentarios correspondientes en el propio fichero.
-
- <p>En la versi&oacute;n 2.0.5R y posteriores, todo lo referente a fuentes,
- teclado, etc est&aacute; en <tt>/usr/share/examples/syscons</tt>.
-
- <p>Actualmente se soportan los siguientes mapas de teclado:
-
- <itemize>
- <!-- generate by `kbdmap -p' -->
- <item>Belgian ISO-8859-1
- <item>Brazilian 275 keyboard Codepage 850
- <item>Brazilian 275 keyboard ISO-8859-1
- <item>Danish Codepage 865
- <item>Danish ISO-8859-1
- <item>French ISO-8859-1
- <item>German Codepage 850
- <item>German ISO-8859-1
- <item>Italian ISO-8859-1
- <item>Japanese 106
- <item>Japanese 106x
- <item>Latin American
- <item>Norwegian ISO-8859-1
- <item>Polish ISO-8859-2 (programmer's)
- <item>Russian Codepage 866 (alternative)
- <item>Russian koi8-r (shift)
- <item>Russian koi8-r
- <item>Spanish ISO-8859-1
- <item>Swedish Codepage 850
- <item>Swedish ISO-8859-1
- <item>Swiss-German ISO-8859-1
- <item>United Kingdom Codepage 850
- <item>United Kingdom ISO-8859-1
- <item>United States of America ISO-8859-1
- <item>United States of America dvorak
- <item>United States of America dvorakx
- </itemize>
-
- <sect1>
- <heading>Las cuotas de usuario no funcionan correctamente.</heading>
-
- <p>
- <enum>
- <item>No actives las cuotas en '/',
-
- <item>Pon el fichero de cuotas en el sistema de ficheros en el que
- se vayan a forzar las cuotas de usuario:
-
- <verb>
- FS QUOTA FILE
- /usr /usr/admin/quotas
- /home /home/admin/quotas
- ...
- </verb>
- </enum>
-
- <sect1>
- <heading>Mi ccd no funciona correctamente</heading>
-
- <p>El s&iacute;ntoma es:
-
- <verb>
- # ccdconfig -C
- ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
- #
- </verb>
-
- <p>Esto actualmente ocurre cuando est&aacute;s intentando concatenar las
- particiones c'. El driver ccd requiere que la partici&oacute;n sea del
- tipo FS_BSDFFS. Edita la etiqueta del disco (disklabel) que est&aacute;s
- intentando concatenar y cambia el tipo de partici&oacute;n a '4.2BSD'.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; no puedo editar el disklabel en mi ccd?</heading>
-
- <p>El s&iacute;ntoma es:
-
- <verb>
- # disklabel ccd0
- (it prints something sensible here, so let's try to edit it)
- # disklabel -e ccd0
- (edit, save, quit)
- disklabel: ioctl DIOCWDINFO: No disk label on disk;
- use "disklabel -r" to install initial label
- #
- </verb>
-
- <p>Esto es porque el disklabel retornado por el ccd es actualmente
- uno que no corresponde con el real. Puedes resolver este problema
- escribiendo expl&iacute;citamente:
-
- <verb>
- # disklabel ccd0 > /tmp/disklabel.tmp
- # disklabel -Rr ccd0 /tmp/disklabel.tmp
- # disklabel -e ccd0
- (this will work now)
- </verb>
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD primitivas IPC System V?</heading>
-
- <p>S&iacute;, FreeBSD las soporta. Estas incluyen memoria compartida,
- mensajes y sem&aacute;foros. Necesitas a&ntilde;adir las siguientes
- l&iacute;neas en la configuraci&oacute;n de tu kernel para activarlas.
-
- <verb>
- options SYSVSHM
- options "SHMMAXPGS=64" # 256Kb of sharable memory
- options SYSVSEM # enable for semaphores
- options SYSVMSG # enable for messaging
- </verb>
-
- <p>Recompila e instala.
-
- <p><bf/NOTA:/ Quiz&aacute;s necesites incrementar SHMMAXPGS a un
- n&uacute;mero como 4096 (16M) si quieres usar GIMP. 256K es suficiente
- para la memoria compartida en X11R6.
-
- <sect1>
- <heading>
- &iquest;C&oacute;mo uso sendmail para envio de mail UUCP?<label id="uucpmail">
- </heading>
-
- <p>La configuraci&oacute;n de sendmail incluida en FreeBSD est&aacute;
- preparada para sistemas que conectan directamente con Internet. Los
- sistemas que quieran usar UUCP para el env&iacute;o de mail deben
- utilizar otro fichero de configuraci&oacute;n.
-
- <p>Retocar <tt>/etc/sendmail.cf</tt> manualmente est&aacute; considerado
- algo para puristas. La versi&oacute;n 8 de sendmail incluye un nuevo
- sistema de configuraci&oacute;n llamado
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?m4" name="m4">, en
- el cual la configuraci&oacute;n se realiza en un nivel m&aacute;s alto.
- Deber&iacute;as usar los ficheros de configuraci&oacute;n situados en
-
- <verb>
- /usr/src/usr.sbin/sendmail/cf
- </verb>
-
- <p>Si no instalaste tu sistema con el c&oacute;digo fuente completo, el
- paquete de configuraci&oacute;n de sendmail est&aacute; en una
- distribuci&oacute;n aparte. Asumiendo que tienes tu CD-ROM montado, haz:
-
- <verb>
- cd /usr/src
- tar -xvzf /cdrom/dists/src/ssmailcf.aa
- </verb>
-
- <p>No te preocupes, solo son unos cientos de kilobytes de tama&ntilde;o.
- El fichero <tt>README</tt> en el directorio <tt>cf</tt> puede
- servir como introducci&oacute;n a la configuraci&oacute;n del m4.
-
- <p>Para env&iacute;o y recepci&oacute;n va UUCP, te aconsejamos usar la
- opci&oacute;n <em>mailertable</em>. Se basa en una base de datos
- que sendmail puede usar como base para tomar las decisiones
- de enrutado del mail.
-
- <p>Primero tienes que crear tu fichero <tt>.mc</tt>. Estos ficheros
- se encuentran en el directorio
- <tt>/usr/src/usr.sbin/sendmail/cf/cf</tt>. Si miras, encontrar&aacute;s
- algunos ejemplos. Asumiendo que tu fichero se llama <tt>foo.com</tt>,
- todo lo que necesitas hacer para convertirlo en un fichero
- <tt>sendmail.cf</tt> v&aacute;lido es:
-
-
- <verb>
- cd /usr/src/usr.sbin/sendmail/cf/cf
- make foo.cf
- cp foo.cf /etc/sendmail.cf
- </verb>
-
- <p>Un fichero t&iacute;pico <tt>.mc</tt> ser&iacute;a algo como:
-
- <verb>
- include(`../m4/cf.m4')
- VERSIONID(`Your version number')
- OSTYPE(bsd4.4)
-
- FEATURE(nodns)
- FEATURE(nocanonify)
- FEATURE(mailertable)
-
- define(`UUCP_RELAY', your.uucp.relay)
- define(`UUCP_MAX_SIZE', 200000)
-
- MAILER(local)
- MAILER(smtp)
- MAILER(uucp)
-
- Cw your.alias.host.name
- Cw youruucpnodename.UUCP
- </verb>
-
- <p>Las opciones <em>nodns</em> y <em>nocanonify</em> previenen
- del uso del DNS durante el tr&aacute;fico de correo. La cl&aacute;usula
- <em>UUCP_RELAY</em> se necesita por razones imperiosas, no
- preguntes :). Simplemente pon un nombre de m&aacute;quina de Internet que
- sea capaz de gestionar pseudo-dominios .UUCP; m&aacute;s sencillo,
- entrar&aacute;s el mail relay de tu ISP.
-
- <p>Una vez hayas hecho esto, necesitas el fichero llamado
- <tt>/etc/mailtertable</tt>. Un ejemplo t&iacute;pico ser&iacute;a:
-
- <verb>
- #
- # makemap hash /etc/mailertable.db < /etc/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:sax
- </verb>
-
- <p>Como puedes ver, esto es parte de un fichero real. Las tres
- primeras l&iacute;neas manejan casos especiales donde el correo dirigido
- a un dominio no debe ser enviado a trav&eacute;s de la ruta por defecto,
- si no a trav&eacute;s de un UUCP vecino para acortar el path de
- env&iacute;o. La siguiente l&iacute;nea gestiona el mail del dominio
- local para que sea enviado v&iacute;a SMTP. Finalmente, los vecinos UUCP
- son anotados en la parte .UUCP pseudo-domains, para poder sobreescribir
- las reglas por defecto. La &uacute;ltima l&iacute;nea es siempre un
- punto, que indica el mail gateway hacia el resto del mundo. Todos los
- nombres de nodos detr&aacute;s de <tt>uucp-dom:</tt> deben ser vecinos
- v&aacute;lidos UUCP.
-
- <p>Como recordatorio de que este fichero debe ser convertido a
- una base de datos DBM antes de ser usada, la l&iacute;nea de comandos
- para realizar esta operaci&oacute;n esta puesta como un comentario al
- inicio del fichero. Siempre tienes que ejecutar este comando
- cada vez que realices alg&uacute;n cambio en tu mailtertable.
-
- <p>Si no tienes la seguridad de que una ruta de correo vaya a
- funcionar correctamente, recuerda la opci&oacute;n <tt>-bt</tt> de
- sendmail. Esta opci&oacute;n arranca el sendmail en <em>modo test</em>;
- simplemente entra 0, seguido por la direcci&oacute;n de mail sobre la que
- quieres testear la ruta. La &uacute;ltima l&iacute;nea te indica el agente
- interno, el host de destino y la direcci&oacute;n (posiblemente
- traducido). Sal de este modo tecleando Control-D.
-
- <verb>
- j@uriah 191% sendmail -bt
- ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
- Enter <ruleset> <address>
- > 0 foo@interface-business.de
- rewrite: ruleset 0 input: foo @ interface-business . de
- ...
- rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \
- < @ interface-business . de >
- > ^D
- j@uriah 192%
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo configuro el correo para conexiones NO permanentes a Internet?<label id="ispmail"></heading>
-
- <p>Si tienes una direcci&oacute;n IP fija en la conexi&oacute;n, no
- necesitar&aacute;s ajustar nada de lo que ya viene por defecto.
- Configura tu hostname como el nombre asignado a tu IP de Internet y
- sendmail har&aacute; el resto.
-
- <p>Si tienes direcciones IP asignadas dinamicamente y usas una
- conexi&oacute;n <bf/ppp/ a Internet, probablemente tendr&aacute;s un
- buz&oacute;n en el servidor de correo de tu proveedor. Supongamos que el
- dominio de tu proveedor es <tt/myisp.com/, y tu nombre de usuario es
- <tt/user/. Supongamos tambi&eacute;n que has llamado a tu m&aacute;quina
- <tt/bsd.home/ y que tu proveedor te ha indicado que uses la
- m&aacute;aquina <tt/relay.myISP.com/ como mail realy (gateway).
-
- <p>Para poder recoger el correo de tu buz&oacute;n necesitar&aacute;s
- instalar un agente de recogida de correo. <bf/Fetchmail/ es una buena
- opci&oacute;n ya que soporta diferentes protocolos. Normalmente se usa
- POP3. Puedes recoger automaticamente tu correo al realizar la
- conexi&oacute;n a&ntilde;adiendo la siguiente l&iacute;nea en el fichero
- <tt>/etc+ppp/ppp.linkup</tt>:
-
- <verb>
- MYADDR:
- !bg su user -c fetchmail
- </verb>
-
- <p>Asumimos que tienes una cuenta para <tt/user/ en <tt/bsd.home/.
- En el home directory de <tt/user/ en <tt/bsd.home/, crea el fichero
- <tt/.fetchmailrc/:
-
- <verb>
- poll myISP.com protocol pop3 fetchall pass MySecret;
- </verb>
-
- <p>No hace falta decir que este fichero no debe ser "leible" por nadie
- excepto <tt/user/ ya que contiene el password <tt/MySecret/.
-
- <p>Para enviar el correo con la cabecera <bf/from:/ correcta, debes
- decirle al sendmail que use <tt/user@myISP.com/ en lugar de
- <tt/user@bsd.home/. Tambi&eacute;n deber&iacute;as decirle al sendmail
- que envie todo el correo saliente a traves de <tt/relay.myISP.com/, para
- una transmisi&oacute;n mucho m&aacute;s r&aacute;pida.
-
- <p>El siguiente fichero <tt/.mc/ debe ser suficiente:
-
- <verb>
- VERSIONID(`bsd.home.mc version 1.0')
- OSTYPE(bsd4.4)dnl
- FEATURE(nouucp)dnl
- MAILER(local)dnl
- MAILER(smtp)dnl
- Cwlocalhost
- Cwbsd.home
- CwmyISP.com
- MASQUERADE_AS(`myISP.com')dnl
- FEATURE(allmasquerade)dnl
- FEATURE(masquerade_envelope)dnl
- FEATURE(nocanonify)dnl
- FEATURE(nodns)dnl
- define(SMART_HOST, `relay.myISP.com')
- DmmyISP.com
- define(`confDOMAIN_NAME',`myISP.com')dnl
- define(`confDELIVERY_MODE',`deferred')dnl
- </verb>
-
- <p>Mira en la secci&oacute;n anterior para los detalles de como convertir
- este fichero <tt/.mc/ en un <tt/sendmail.cf/. No te olvides de
- rearrancar sendmail despu&eacute;s de cada actualizaci&oacute;n del
- fichero sendmail.cf.
-
- <sect1>
- <heading>Olvid&eacute; el password de Root!!</heading>
-
- <p>Tranquilo!!!. Simplemenre rearranca tu sistema, teclea -s en el
- prompt de arranque para entrar en modo monousuario. En la pregunta
- sobre el shell a usar, pulsa ENTER. Aparecer&aacute; un prompt #. Teclea
- <tt>mount -u /</tt> para remontar tu sistema de ficheros en modo
- de lectura/escritura y a continuaci&oacute;n teclea <tt/mount -a/ para
- montar todos los sistemas de ficheros. Ejecura <tt/passwd root/
- para cambiar el password de root. Teclea <tt/exit/ para continuar
- normalmente con el arranque.
-
- <sect1>
- <heading>&iquest;C&oacute;mo mantengo el control sobre Control-Alt-Delete?</heading>
-
- <p>Edita el mapa de teclado que est&aacute;s usando para la
- c&oacute;nsola y reemplaza las palabras <tt/boot/ por <tt/nop/. El mapa
- de teclado por defecto es <tt>/usr/share/syscons/keymaps/us.iso.kbd</tt>
- . Por supuesto si usas otro mapa de teclado adecuado a tu pa&iacute;s,
- tendr&iacute;as que editarlo.
-
- <sect1>
- <heading>&iquest;C&oacute;mo reformateo ficheros de texto DOS a UNIX?</heading>
-
- <p>Simplemente usando este comando de perl:
-
-<verb>
-perl -i.bak -npe 's/\r\n/\n/g' file ...
-</verb>
-
- <p>file es el fichero a procesar. La modificaci&oacute;n se hace en el
- propio fichero dejando el original grabado con extensi&oacute;n .bak.
-
- Alternativamente puedes usar el comando <url
- url="http://www.FreeBSD.org/cgi/man.cgi?tr" name="tr(1)">
-
-<verb>
-tr -d '\r' &lt; dos-text-file &gt; unix-file
-</verb>
-
- dos-text-file es el fichero que contiene el texto DOS mientras que
- unix-file contendr&aacute; la salida convertida. Este sistema puede
- ser m&aacute;s r&aacute;pido que usar perl.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo hace "kill" de procesos por nombre?</heading>
-
- <p>Usa <url url="http://www.FreeBSD.org/cgi/man.cgi?killall" name="killall(1)">.
-
- <sect1>
- <heading>&iquest;Porque el su no me dejar ser root al no estar en el ACL?</heading>
-
- <p>El error proviene de sistema del autentificaci&oacute;n distribuida
- Kerberos. El problema no es fatal pero si molesto. Puedes ejecutar el
- comando su con la opcion -K, o desinstalar Kerberos como se describe en
- la siguiente secci&oacute;n.
-
- <sect1>
- <heading>&iquest;C&oacute;mo desinstalo Kerberos?</heading>
-
- <p>Para eliminar Kerberos del sistema, reinstala la distribuci&oacute;n
- bin de la release que est&eacute;s usando. Si tienes el CDROM, puedes
- montar el cd (asumiremos que esta en /cdrom) y ejecutar:
-
-<verb>
-cd /cdrom/bin
-./install.sh
-</verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo a&ntilde;ado pseudoterminales a mi sistema?</heading>
-
- <p>Si tienes muchos usuarios de telnet, ssh, X, o de c&oacute;nsola,
- probablemente terminar&aacute;s desbordando el n&uacute;mero de
- pseudoterminales del sistema. Aqu&iacute; tienes como a&ntilde;adir
- m&aacute;s:
-
- <enum>
- <item>Compila e instala un nuevo kernel com la l&iacute;nea
-
- <verb>
- pseudo-device pty 256
- </verb>
-
- <p>en el fichero de configuraci&oacute;n.
-
- <item>Ejecuta el comando
-
- <verb>
- # cd /dev
- # ./MAKEDEV pty{1,2,3,4,5,6,7}
- </verb>
-
- <p>para crear 256 nodos de dispositivo para los nuevos terminales.
-
- <item>Edita el fichero <tt>/etc/ttys</tt> y a&ntilde;ade una l&iacute;nea
- para cada uno de los 256 terminales. Estas l&iacute;neas deben seguir la
- estructura de las entradas existentes, algo como esto:
-
- <verb>
- ttyqc none network
- </verb>
-
- <p>El &oacute;rden de la designaci&oacute;n de letras es
- <tt>tty[pqrsPQRS][0-9a-v]</tt>, usando una expresi&oacute;n regular.
-
- <item>Rebota el sistema con el nuevo kernel, y lo tendr&aacute;s listo
- para funcionar.
- </enum>
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo releer el fichero /etc/rc.conf y
- relanzar /etc/rc sin tener que hacer un reboot?</heading>
-
- <p>Entra en modo monousuario y a continuaci&oacute;n vuelve a modo
- multiusuario.
-
- En la consola haz:
-<verb>
- # shutdown now
- (Nota: sin -r o -h)
-
- # return
- # exit
-</verb>
-
- <sect1>
- <heading>&iquest;Qu&eacute; es un sandbox?</heading>
-
- <p>Sandbox es un t&eacute;rmino de seguridad. Puede significar dos
- cosas:
-
- <itemize>
- <item>
- <p>Un proceso que es situado en el interior de una serie de muros
- virtuales dise&ntilde;ados como prevenci&oacute;n e imposibilitar
- el acceso al sistema principal en caso de que alguien comprometa
- la seguridad de ese proceso.
-
- <p>Se dice que el proceso es capaz de "jugar" entre los muros.
- Esto significa que se supone que nada de lo que haga el proceso
- referente a la ejecuci&oacute;n de c&oacute;digo, puede ser capaz
- de romper los muros, as&iacute; no es necesario hacer
- auditor&iacute;as detalladas de su c&oacute;digo para poder conocer
- todo lo referente a los riesgos de seguridad del proceso.
-
- <p>Los muros pueden, por ejemplo, un userid. Esta es la
- definici&oacute;n usada en las p&aacute;ginas man de seguridad y del
- programa named.
-
- <p>Veamos como ejemplo el servicio 'ntalk' (consultar /etc/inetd.conf).
- Este servicio sol&iacute;a ejecutarse con el userid de root. Ahora se
- ejecuta con el userid tty. El usuario tty esta dise&ntilde;ado para ser
- usado como usuario sandbox, dificultando as&iacute; la tarea de un
- intruso que haya conseguido penetrar en el sistema a trav&eacute;s del
- servicio ntalk. De esta manera, el intruso solo puede afectar a los
- servicios, programas o procesos propiedad del usuario tty.
- </item>
-
- <item>
- <p>Un proceso que se ha situado en el interior de una simulaci&oacute;n
- de la m&aacute;quina. Esto es m&aacute;s hard-core. B&aacute;sicamente,
- significa que alguien que sea capaz de penetrar en el proceso,
- creer&aacute; que ha penetrado en el sistema principal, pero de hecho,
- ha penetrado en una simulaci&oacute;n de esa m&aacute;quina y no puede
- modificar ning&uacute;n dato real.
-
- <p>El sistema m&aacute;s com&uacute;n de conseguir esto es crear un
- entorno simulado en un subdirectorio y ejecutar los procesos en ese
- subdirectorio mediante chroot (la raiz "/" para ese proceso es este
- directorio, no la raiz "/" real del sistema).
-
- <p>Otro sistema habitual es montar un sistema de ficheros de solo
- lectura y a continuaci&oacute,n crear un nivel de sistema de ficheros
- por encima del anterior que d&eacute; al proceso la sensaci&oacute;n
- de encontrarse en un sistema de ficheros de lectura/escritura. El
- proceso creer&aacute; que es capaz de escribir esos ficheros, pero
- s&oacute;lo el proceso ve los efectos; otros procesos del sistema
- no ven absolutamente nada.
-
- <p>Se intenta crear este tipo de sandbox totalmente transparentes para
- que el usuario (o intruso) no se de cuenta que est&aacute; en &eacute;l.
- </item>
- </itemize>
-
- <p>UNIX implementa dos tipos de sandboxes. Uno es a nivel de procesos,
- y el otro es a nivel de usuarios (userid).
-
- <P>Cada proceso UNIX es totalmente independiente de cualquier otro proceso
- UNIX. Un proceso no puede modificar el espacio de direcciones de otro. Es
- diferente a los sistemas Windows en los que un proceso puede sobreescribir
- facilmente el espacio de direcciones de otro proceso, probocando una caida
- de la m&aacute;quina.
-
- <p>Un proceso UNIX es propiedad de un userid determinado. Si el userid no
- es el usuario root, &eacute;ste solo podr&aacute; acceder a los procesos
- de su propiedad, evitando la intrusi&oacute;n en procesos ajenos. El
- userid tambi&eacute;n se usa como sistema de protecci&oacute;n para datos
- grabados en disco.
-
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/applications.sgml b/es_ES.ISO8859-1/FAQ/applications.sgml
deleted file mode 100644
index 01ee3e86b2..0000000000
--- a/es_ES.ISO8859-1/FAQ/applications.sgml
+++ /dev/null
@@ -1,170 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Aplicaciones de usuario<label id="applications"></heading>
-
- <sect1>
- <heading>&iquest;D&oacute;nde est&aacute;n las aplicaciones?</heading>
-
- <p>Por favor, mira en <url url="http://www.FreeBSD.org/ports/"
- name="la secci&oacute;n de ports"> para obtener informaci&oacute;n sobre
- programas y aplicaciones que han sido portados a FreeBSD. En estos
- momentos la lista llega a los 1800 creciendo d&iacute;a a d&iacute;a,
- por lo que te recomendamos que la visites habitualmente o te subscribas
- a la <ref id="mailing" name="lista de distribuci&oacute;n">
- <tt/FreeBSD-announce/ para las actualizaciones peri&oacute;dicas de nuevas
- aportaciones.
-
- <p>La mayor&iacute;a de programas est&aacute;n disponibles tanto para la
- rama 2.2 como para la 3.x y 4.0, y muchos de ellos deber&iacute;an
- funcionar en sistemas 2.1.x. Cada vez que se realiza una release de
- FreeBSD, se incluye un snapshot del arbol de aplicaciones en el
- directorio <tt>ports/</tt>.
-
- <p>Tambi&eacute;n trabajamos con el concepto de "package", que es,
- esencialmente una distribuci&oacute;n binaria "zipada" con una
- peque&ntilde;a informaci&oacute;n extra que realiza la instalaci&oacute;n
- del programa automaticamente. Un package puede ser instalado y
- desinstalado f&aacute;cilmente sin tener que saber los detalles de
- ficheros o configuraciones que esto conlleva.
-
- <p>Usa el men&uacute; de instalaci&oacute;n de "packages" en
- <tt>/stand/sysinstall</tt> (bajo la opci&oacute;n post-configuration del
- men&uacute; principal) o ejecuta el comando <em>pkg_add(1)</em> con el
- package que est&aacute;s interesado en instalar. Los package pueden ser
- identificados por su extensi&oacute;n <em>.tgz</em>. En la
- distribuci&oacute;n de CDROM existe un directorio <tt>packages/All</tt>
- en la que se encuentran todos los packages disponibles. Tambi&eacute;n
- pueden conseguirse en la red en los siguientes servidores:
-
- <descrip>
- <tag>para 2.2.8-RELEASE/2.2-stable</tag>
- <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/"
- name="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">
-
- <tag>for 3.2-release/3.2-stable</tag>
- <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/"
- name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/">
-
- <tag>para 4.0-current</tag>
- <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/"
- name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/">
- </descrip>
-
- <p>o en tu mirror m&aacute;s cercano.
-
- <p>Ten en cuenta que no todos los ports est&aacute;n disponibles como
- packages. Es siempre buena idea visitar periodicamente la
- direcci&oacute;n <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/"
- name="ftp.FreeBSD.org">.
- </sect1>
-
- <sect1>
- <heading>&iquest;D&oacute;nde encuentro la librer&iacute;a libc.so.3.0?</heading>
-
- <p>Est&aacute;s intentando ejecutar un package para versi&oacute;n
- 2.2/3.x/4.0 en un sistema de versi&oacute;n 2.1.x. Por favor, mira en la
- secci&oacute;n anterior y usa el package adecuado para tu sistema.
- </sect1>
-
- <sect1>
- <heading>Ghostscript tiene muchos errores con mi 386/486SX.<label id="emul"></heading>
-
- <p>No tienes coprocesador matem&aacute;tico, verdad?
- Necesitar&aacute;s a&ntilde;adir el emulador matem&aacute;tico en tu
- kernel; puedes hacerlo a&ntilde;adiendo lo siguiente en el fichero de
- configuraci&oacute;n del kernel:
-
- <verb>
- options GPL_MATH_EMULATE
- </verb>
-
- <p><bf/NOTA/ Necesitar&aacute;s eliminar la opci&oacute;n
- <tt/MATH&lowbar;EMULATE/.
-
- <sect1>
- <heading>Cuando ejecuto una aplicaci&oacute;n SCO/iBCS2, falla en
- <tt/socksys/.</heading>
-
- <p>Primero necesitas editar el fichero <tt>/etc/sysconfig</tt>
- (o <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)"
- name="/etc/rc.conf">) y en la &uacute;ltima secci&oacute;n cambiar la
- siguiente variable a <tt/YES/:
-
- <verb>
- # Set to YES if you want ibcs2 (SCO) emulation loaded at startup
- ibcs2=NO
- </verb>
-
- <p>El kernel caragar&aacute; el m&oacute;dulo <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ibcs2" name="ibcs2">
- al arrancar.
-
- <p>A continuaci&oacute;n necesitar&aacute;s configurar /compat/ibcs2/dev
- de la siguiente manera
-
- <verb>
-lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null
-lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> 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@ -> /dev/null
-crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx
- </verb>
-
- <p>Solo necesitas el socksys para ir a <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?null(4)" name="/dev/null">
- e imitar la apertura y cierre de ficheros. El c&oacute;digo en -current
- gestionar&aacute; el resto. Esto es mucho m&aacute;s limpio que la
- manera en la que se hac&iacute;a antes. Si quieres el driver
- <tt/spx/ para un conexi&oacute;n, define <tt/SPX&lowbar;HACK/ cuando
- compiles el kernel.
-
- <sect1>
- <heading>&iquest;C&oacute;mo configuro INN (Internet News) para mi m&aacute;quina?
- </heading>
-
- <p>Despu&eacute;s de la instalaci&oacute;n del package o port de inn,
- un excelente lugar para empezar es
- <url url="http://www.cis.ohio-state.edu/~barr/INN.html"
- name="Dave Barr's INN Page"> donde encontrar&aacute;s las FAQ de INN.
-
- <sect1>
- <heading>&iquest;Qu&eacute; versi&oacute;n de Microsoft FrontPage debo usar?</heading>
-
- <p>Usa el Port. Una versi&oacute;n pre-parcheada para Apache est&aacute;
- disponible en la colecci&oacute;n de ports.
-
- <sect1>
- <heading>&iquest;FreeBSD soporta Java?</heading>
-
- <p>S&iacute;. Por favor, mira en <url url="http://www.FreeBSD.org/java"
- name="http://www.FreeBSD.org/java">.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; no puedo compilar este port en mi m&aacute;quina
- 3.x-stable?</heading>
-
- <p>Si utilizas una versi&oacute;n de FreeBSD que ha quedado ligeramente anticuada
- con respecto a -stable o -current necesitar&aacute;s el kit de actualizaci&oacute;n
- de ports disponible en <url url="http://www.FreeBSD.org/ports"
- name="http://www.FreeBSD.org/ports">. Si tienes una versi&oacute;n actualizada, es
- posible que alguien haya modificado el port de manera que &eacute;ste compile en
- -current pero no en -stable. Por favor, env&iacute;a un informe de error con el
- comando <em>send-pr(1)</em> ya que la colecci&oacute;n de ports est&aacute;
- pensada para que funcione tanto en las ramas -stable como -current.
- </sect1>
-
- <sect1>
- <heading>&iquest;D&oacute;nde encuentro ld.so?</heading>
-
- <p>Si quieres ejecutar aplicaciones a.out como Netscape en sistemas con
- formato de ejecuci&oacute;n ELF como FreeBSD 3.1-RELEASE o posteriores,
- necesitar&aacute;s la librer&iacute;a /usr/libexec/ld.so y algunas otras
- en formato a.out. Estas librer&iacute;as est&aacute;n incluidas en la
- distribuci&oacute;n compat22. Usa /stand/sysinstall o el script install.sh
- en el subdirectorio compat22 e instalala. Tambi&eacute;n deber&iacute;an
- consultarse los ficheros ERRATA de FreeBSD 3.1-R y 3.2-R.
- </sect1>
-
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/commercial.sgml b/es_ES.ISO8859-1/FAQ/commercial.sgml
deleted file mode 100644
index d715cd2a73..0000000000
--- a/es_ES.ISO8859-1/FAQ/commercial.sgml
+++ /dev/null
@@ -1,186 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Aplicaciones Comerciales<label id="commercial"></heading>
-
- <p><bf/NOTA/ Esta secci&oacute;n est&aacute; todav&iacute;a poco
- desarrollada, por lo que esperamos que las compa&ntilde;&iacute;as nos
- ayuden a completarla :) . El grupo de FreeBSD no tiene ning&uacute;n
- inter&eacute;s financiero en ninguna de las empresas aqu&iacute; listadas,
- simplemente est&aacute;n como servicio p&uacute;blico (y creemos que el
- inter&eacute;s comercial por FreeBSD puede tener efectos
- muy positivos en la viabilidad a largo t&eacute;rmino). Animamos a las
- empresas desarrolladoras de software que nos env&iacute;en su
- informaci&oacute;n para ser incluidas en esta lista.
-
- <sect1>
- <heading>&iquest;D&oacute;nde puedo obtener Motif para FreeBSD?</heading>
-
- <p>Contacta con <ref id="apps2go" name="Apps2go"> para una
- distribuci&oacute;n de Motif ELF 2.1 para FreeBSD.<label id="apps2go">
-
- <p>Esta distribuci&oacute;n incluye:
- <itemize>
- <item>OSF/Motif manager, xmbind, panner, wsm.
-
- <item>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y
- ficheros Imake.
-
- <item>Librer&iacute;as ELF est&aacute;ticas y din&aacute;micas
- (para usar con FreeBSD 3.0 y posteriores).
-
- <item>Applets demostrativos.
- </itemize>
-
- <p>Aseg&uacute;rate de especificar que deseas la distribuci&oacute;n
- para FreeBSD cuando hagas el pedido. Tambi&eacute;n se distribuyen
- versiones para NetBSD y OpenBSD por <em>Apps2go</em>. La
- distribuci&oacute;n s&oacute;lo est&aacute; disponible por FTP.
-
- <descrip>
- <tag/M&aacute;s informaci&oacute;n/
- <url url="http://www.apps2go.com/" name="P&aacute;gina web de Apps2go">
- <tag/o/ <url url="mailto:sales@apps2go.com" name="Ventas"> o
- <url url="mailto:support@apps2go.com" name="Soporte">
-
- <tag/o/ tel&eacute;fono (817) 431 8775 o +1 817 431-8775
- </descrip>
-
- <p>Contacta con <ref id="metrox" name="Metro Link"> para obtener una
- distribuci&oacute;n de Motif 2.1 ELF o a.out para FreeBSD.
-
- <p>Esta distribuci&oacute;n incluye:
- <itemize>
- <item>OSF/Motif manager, xmbind, panner, wsm.
-
- <item>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y
- ficheros Imake.
-
- <item>Librer&iacute;as est&aacute;ticas y din&aacute;micas (especifica
- ELF para FreeBSD 3.0 y superior o a.out para FreeBSD 2.2.8 o
- anterior).
-
- <item>Applets demostrativos.
-
- <item>P&aacute;ginas man preformateadas.
- </itemize>
-
- <p>Aseg&uacute;rate de especificar que deseas la distribuci&oacute;n
- para FreeBSD cuando hagas el pedido. Tambi&eacute;n se distribuyen
- versiones para Linux por <em>Metro Link</em>. La distribuci&oacute;n
- est&aacute; disponible en CDROM o v&iacute;a FTP.
-
- <p>Contacta con <ref id="xig" name="Xi Graphics"> para una
- distribuci&oacute;n de Motif a.out 2.0 para FreeBSD.
-
- <p>Esta distribuci&oacute;n incluye:
- <itemize>
- <item>OSF/Motif manager, xmbind, panner, wsm.
-
- <item>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y
- ficheros Imake.
-
- <item>Librer&iacute;as est&aacute;ticas y din&aacute;micas
- (para usar con FreeBSD 2.2.8 y anteriores).
-
- <item>Applets demostrativos.
-
- <item>P&aacute;ginas man preformateadas.
- </itemize>
-
- <p>Aseg&uacute;rate de especificar que deseas la distribuci&oacute;n
- para FreeBSD cuando hagas el pedido. Tambi&eacute;n se distribuyen
- versiones para BSDI y Linux por <em>Xi Graphics</em>. La
- distribuci&oacute;n se hace en cuatro disquetes... en el futuro esto
- se cambiar&aacute; por una versi&oacute;n en CDROM unificada.
-
- <sect1>
- <heading>&iquest;D&oacute;nde puedo conseguir CDE para FreeBSD?</heading>
-
- <p>Contacta con <ref id="xig" name="Xi Graphics"> para la
- distribucion CDE 1.0.10 para FreeBSD. Incluye Motif 1.2.5,
- y puede ser usada con Motif 2.0.
-
- <p>Este es un CDROM unificado para FreeBSD y Linux.
-
- <p><ref id="xig" name="Xi Graphics"> ya no vende el CDE para FreeBSD.
-
- <p><url url="http://www.kde.org/" name="KDE"> es un entorno
- gr&aacute;fico "open source" similar a CDE en muchos aspectos.
-
- <sect1>
- <heading>&iquest;Hay alg&uacute;n servidor X comercial de altas prestaciones?
- <p>S&iacute;, <url url="http://www.xig.com" name="Xi Graphics"> y
- <url url="http://www.metrolink.com" name="Metro Link"> venden el
- producto Accelerated-X para FreeBSD y otros sistemas basados en Intel.
- <label id="xig">
-
- <p>La oferta de Metro Link es un servidor X de altas prestaciones que
- ofrece una f&aacute;cil configuraci&oacute;n usando el conjunto de
- herramientas "FreeBSD Package", soporte de m&uacute;ltiples tarjetas
- de v&iacute;deo concurrentes y s&oacute;lo se distribuye en formato
- binario desde su FTP. Mencionar que la oferta de Metro Link est&aacute;
- disponible por el razonable precio de $39.
- <label id="metrox">
-
- <p>Metro Link tambi&eacute;n vende el Motif ELF y a.out para
- FreeBSD.
-
- <descrip>
- <tag/M&aacute;s informaci&oacute;n/
- <url url="http://www.metrolink.com/" name="Web de Metro Link">
-
- <tag/o/ <url url="mailto:sales@metrolink.com" name="Ventas"> o
- <url url="mailto:tech@metrolink.com" name="Soporte">.
-
- <tag/o/ Tel&eacute;fono (954) 938-0283 o +1 954 938-0283
- </descrip>
-
- <p>La oferta de Xi Graphics es un servidor X de altas prestaciones que
- ofrece una f&aacute;cil configuraci&oacute;n, soporte para
- m&uacute;ltiples tarjetas de v&iacute;deo concurrentes, y s&oacute;lo
- se distribuye en formato binario, en una distribuci&oacute;n en
- disquetes unificada para FreeBSD y Linux. Xi Graphics tambi&eacute;n
- ofrece un servidor X de altas prestaciones para ordenadores
- port&aacute;tiles.
-
- <p>Hay una distribuci&oacute;n demo para testear (versi&oacute;n 5.0).
-
- <p>Xi Graphics tambi&eacute;n vende el Motif y CDE para FreeBSD.
-
- <descrip>
- <tag/Mas informaci&oacute;n/
- <url url="http://www.xig.com/" name="Web de Xi Graphics WWW">
-
- <tag/o/ <url url="mailto:sales@xig.com" name="ventas"> o
- <url url="mailto:support@xig.com" name="Soporte">
-
- <tag/o/ Tel&eacute;fono (800) 946 7433 o +1 303 298-7478.
- </descrip>
-
- <sect1>
- <heading>&iquest;Hay alg&uacute;n sistema de base de datos para FreeBSD?</heading>
-
- <p>S&iacute;!. Mira en la secci&oacute;n <url
- url="../commercial/software_bycat.html#CATEGORY_DATABASE"
- name="Productos Comerciales"> del web de FreeBSD.
-
- <p>Tambi&eacute;n te recomendamos que mires en la secci&oacute;n
- <url url="../ports/databases.html" name="Bases de Datos"> de la
- colecci&oacute;n de Ports.
-
- <sect1>
- <heading>&iquest;Puedo usar Oracle en FreeBSD?</heading>
-
- <p>S&iacute;. Las siguientes p&aacute;ginas te explican como configurar
- el Oracle de Linux en FreeBSD:
-
- <itemize>
- <item><url url="http://www.scc.nl/~marcel/howto-oracle.html"
- name="http://www.scc.nl/~marcel/howto-oracle.html">
-
- <item><url url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-FreeBSD" name="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-FreeBSD">
- </itemize>
-
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/hackers.sgml b/es_ES.ISO8859-1/FAQ/hackers.sgml
deleted file mode 100644
index 80dc17671e..0000000000
--- a/es_ES.ISO8859-1/FAQ/hackers.sgml
+++ /dev/null
@@ -1,556 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>S&oacute;lo para hackers serios de FreeBSD<label id="hackers">
- </heading>
-
- <sect1>
- <heading>
- &iquest;Qu&eacute; son SNAPs y RELEASEs?
- </heading>
-
- <p>Hay actualmente tres ramas activas/semi-activas en el desarrollo de
- FreeBSD y en su
- <url url="http://www.FreeBSD.org/cgi/cvsweb.cgi" name="CVS Repository">:
-
- <itemize>
- <item><bf/RELENG_2_2/ AKA <bf/2.2-stable/ AKA <bf/"2.2 branch"/
- <item><bf/RELENG_3/ AKA <bf/3.x-stable/ AKA <bf/"3.0 branch"/
- <item><bf/HEAD/ AKA <bf/-current/ AKA <bf/4.0-current/
- </itemize>
-
- <p><bf/HEAD/ no es una rama actual, como las otras dos, es
- simplemente una constante simb&oacute;lica para <em/la versi&oacute;n
- de desarrollo actual/ a la cual nos referimos simplemente como
- <bf/-current/.
-
- <p>Actualmente, <bf/-current/ es el desarrollo de la versi&oacute;n 4.0 y
- la rama <bf/3.0-stable/ es <bf/RELENG_3/, separada de -current en Enero
- de 1999.
-
- <sect1>
- <heading>
- &iquest;C&oacute;mo puedo hacerme mi propia release personalizada?<label id="custrel">
- </heading>
-
- <p>Para hacer una release necesitas hacer tres cosas: primero,
- necesitas usar un kernel con el driver <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?vn" name="vn"> configurado.
- A&ntilde;ade esto a tu fichero de configuraci&oacute;n del kernel y
- crea un nuevo kernel:
-
- <verb>
- pseudo-device vn #Vnode driver (turns a file into a device)
- </verb>
-
- <p>Segundo, debes tener las herramientas del CVS a mano. Para hacer
- esto, puedes usar
- <url url="../../handbook/synching.html#CVSUP" name="CVSUP">
- pero en tu supfile pon el nombre de la release a cvs y borra cualquier
- tag campo de fecha:
-
- <verb>
- *default prefix=/home/ncvs
- *default base=/a
- *default host=cvsup.FreeBSD.org
- *default release=cvs
- *default delete compress use-rel-suffix
-
- ## Main Source Tree
- src-all
- src-eBones
- src-secure
-
- # Other stuff
- ports-all
- www
- doc-all
- </verb>
-
- <p>A continuaci&oacute;n ejecuta <tt/cvsup -g supfile/ para tener todos
- los bits correctos en tu ordenador.
-
- <p>Finalmente, necesitas una buena cantidad de espacio vac&iacute;o para
- crear en el la release. Digamos que est&aacute; en
- <tt>/algun/disco/grande</tt> y en el ejemplo anterior has dejado los
- ficheros del CVS en <tt>/home/ncvs</tt>:
-
- <verb>
- setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs
- cd /usr/src/release
- make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/algun/disco/grande/release
- </verb>
-
- <p>Una release completa ser&aacute; creada en
- <tt>/algun/disco/grande/</tt> y tendr&aacute;s una instalaci&oacute;n
- completa de tipo FTP en <tt>/algun/disco/grande/R/ftp</tt> cuando acabes.
- Si quieres crear tu SNAP usando otra rama de desarrollo diferente de
- -current, puedes a&ntilde;adir <tt/RELEASETAG=SOMETAG/ a la l&iacute;nea
- de comando anterior de creaci&oacute;n de la release. Por ejemplo,
- <tt/RELEASETAG=RELENG_2_2/ crear&iacute;a un snapshot 2.2 GAMMA.
-
- <sect1>
- <heading>&iquest;C&oacute;mo creo discos de instalaci&oacute;n personalizados?</heading>
-
- <p>El proceso completo de creacaci&oacute;n de discos de
- instalaci&oacute;n y archivos fuentes y binarios esta automatizado por
- varios targets en <tt>/usr/src/release/Makefile</tt>. La
- informaci&oacute;n alli contenida deber&iacute;a ser suficiente para que
- puedas empezar. Falta decir que este proceso necesita la ejecuci&oacute;n
- del comando "make world" y quiz&aacute;s te use mucho tiempo y espacio
- en disco.
-
- <sect1>
- <heading>``make world'' destruye mis binarios instalados.</heading>
-
- <p>S&iacute;, esta es la idea general; como su nombre sugiere,
- "make world" rehace todos los binarios del sistema, de manera que puedas
- estar seguro de tener un entorno limpio y consistente al final (que es
- por lo que tarda tanto).
-
- <p>Si la variable de entorno <tt/DESTDIR/ est&aacute; definida mientras se
- ejecuta <tt/make world/ o <tt/make install/, los binarios creados
- nuevamente seran depositados en un &aacute;rbol de directorios
- id&eacute;ntico al instalado, y a partir de
- <tt>&dollar;&lcub;DESTDIR&rcub;</tt>. Algunas combinaciones aleatorias
- de modificaciones de librer&iacute;as compartidas y programas pueden
- causar que falle el <tt/make world/.
-
- <sect1>
- <heading>
- Cuando mi sistema arranca, dice (bus speed defaulted).
- </heading>
-
- <p>Las controladoras SCSI Adaptec 1542 permiten al usuario configurar
- su velocidad de acceso al bus en software. Versiones anteriores del
- driver de la 1542 intentaban determinar la velocidad m&aacute;s alta
- factible y configurar la Adaptec a esta. Nos hemos encontrado con que esto
- hace fallar el sistema de algunos usuarios, por lo que tienes que
- definir la opci&oacute;n de configuraci&oacute;n del kernel
- <tt/TUNE&lowbar;1542/ para que esto ocurra. En algunos sistemas puede
- que puede hacer que los discos vayan m&aacute;s r&aacute;pidos, pero en
- otros puede que los datos queden corrompidos.
-
-
- <sect1>
- <heading>
- &iquest;Puedo seguir la rama current con acceso limitado a Internet?<label id="ctm">
- </heading>
-
- <p>S&iacute;, puedes hacerlo <tt/sin/ bajarte todo el c&oacute;digo
- fuente usando la
- utilidad <url url="../../handbook/synching.html#CTM" name="CTM.">
-
- <sect1>
- <heading>&iquest;C&oacute;mo partir la distribuci&oacute;n en ficheros de 240k?</heading>
-
- <p>Los sistemas BSD m&aacute;s modernos tienen una opci&oacute;n
- <tt/-b/ para partir que les permite partir los ficheros en
- tama&ntilde;os arbitrarios.
-
- <p>Aqui hay un ejemplo de <tt>/usr/src/Makefile</tt>.
-
- <verb>
- bin-tarball:
- (cd $&lcub;DISTDIR&rcub;; \
- tar cf - . \
- gzip --no-name -9 -c | \
- split -b 240640 - \
- $&lcub;RELEASEDIR&rcub;/tarballs/bindist/bin_tgz.)
- </verb>
-
- <sect1>
- <heading>&iquest;He escrito una extensi&oacute;n del kernel, a quien la
- env&iacute;o?</heading>
-
- <p>Por favor, mira en <url url="../../handbook/contrib.html"
- name="como enviar c&oacute;digo.">
-
- <p>Y gracias por pensar en nosotros!
-
- <sect1>
- <heading>&iquest;C&oacute;mo se detectan e inicializan las tarjetas ISA y PnP?</heading>
-
- <p>Brevemente, hay unos cuantos puertos de entrada/salida a los que
- todas las tarjetas PnP responden cuando el ordenador pregunta si hay
- alguien ah&iacute;. As&iacute;, cuando comienza la rutina de prueba
- de PnP, pregunta si hay alguna tarjeta PnP presente y todas las
- tarjetas responden con su n&uacute;mero de modelo a una lectura I/O
- del mismo puerto. As&iacute; el c&oacute;digo de prueba puede conocer
- el ID de cada tarjeta (asignado por Microsoft/Intel).
-
- <p>Los ID's son dos campos de 32 bits (2&circ;64) + 8 bits de
- checksum. Los primeros 32 bits son el identificador del fabricante.
- No se ha dicho publicamente, pero parece estar asumido que diferentes
- tipos de tarjeta del mismo fabricante pueden tener diferentes id's de
- fabricante. La idea de necesitar 32 bits s&oacute;lo para los
- fabricantes parece un poco excesiva.
-
- <p>La parte baja de 32 bits son un n&uacute;mero de serie,
- direcci&oacute;n ethernet, algo que haga a la tarjeta &uacute;nica. El
- fabricante no debe producir nunca una segunda tarjeta que tenga los
- mismos 32 bits de la parte baja, aunque los 32 bits de la parte alta sean
- diferentes. As&iacute; puedes tener m&uacute;ltiples tarjetas del mismo
- tipo en la misma m&aacute;quina y los 64 bits ser&aacute;n &uacute;nicos
- para cada tarjeta.
-
- <p>Los grupos de 32 bits nunca pueden ser todos cero. Esto permite
- mostrar todos los bits no-cero durante la b&uacute;squeda binaria
- inicial.
-
- <p>Una vez el sistema ha identificado todos los ID's de las tarjetas
- presentes, reactivar&aacute;a cada tarjeta, una tras otra (a
- trav&eacute;s de los mismos puertos I/O), y encontrar&aacute; los
- recursos que cada tarjeta necesita, que opciones de interrupci&oacute;n
- est&aacute;n disponibles, etc. Se realiza un escaneo sobre todas y cada
- una de las tarjetas presentes para conocer esta informaci&oacute;n.
-
- <p>Esta informaci&oacute;n se combina con la informaci&oacute;n de los
- ficheros ECU del disco y con las BIOS MLB. El soporte PnP de ECU y las
- BIOS para hardware en el MLB usualmente es sint&eacute;tico, y los
- perif&eacute;ricos no hacen PnP genuino. De todas maneras, examinando
- la informaci&oacute;n de la BIOS m&aacute;s la informaci&oacute;n
- ECU, la rutina de prueba puede causar que los dispositivos que no son
- PnP puedan evitar a esos dispositivos que el c&oacute;digo de prueba
- no puede volver a posicionar.
-
- <p>As&iacute;, los dispositivos PnP son visitados una vez m&aacute;s
- y se les asigna su I/O, DMA, IRQ, direcciones del mapa de memoria. Los
- dispositivos aparecer&aacute;n en esas direcciones y permanecer&aacute;n
- en ellas hasta que se vuelva a reinicializar la m&aacute;quina.
-
- <p>Todo el proceso se ha simplificado mucho, pero espero que hayas podido
- hacerte una idea del proceso.
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD arquitecturas diferentes a x86?</heading>
-
- <p>Diferentes grupos de personas han expresado su inter&eacute;s en
- trabajar en un port multi-arquitectura de FreeBSD y FreeBSD/AXP
- (ALPHA) es un ejemplo de ese esfuerzo realizado, ahora disponible en
- forma de 3.0 SNAPshot release en <url
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha/"
- name="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha">. El port de ALPHA
- funciona actualmente en diferentes tipos de m&aacute;quinas ALPHA,
- entre ellas, AlphaStation, AXPpci, PC164, Miata y Multia. Este port
- todav&iacute;a no se considera una release completa y no lo ser&aacute;
- hasta que exista una colecci&oacute;n completa de herramientas de
- instalaci&oacute;n y una distribuci&oacute;n completa en cdrom para
- instalaci&oacute;, incluyendo un n&uacute;mero razonable de ports y
- packages funcionales. FreeBSD/AXP debe considerarse software de
- calidad BETA en estos momentos. Para m&aacute;s informaci&oacute;n del
- proyecto, subscr&iacute;bete a la
- <tt>&lt;FreeBSD-alpha@FreeBSD.org&gt;</tt><ref id="mailing"
- name="lista de correo">.
-
- Tambi&eacute;n se ha expresado inter&eacute;s en un port de FreeBSD para
- arquitectura SPARC. Subscr&iacute;bete a
- <tt>&lt;FreeBSD-sparc@FreeBSD.org&gt;</tt> <ref id="mailing"
- name="la lista"> si est&aacute;s interesado en participar en el proyecto.
- Para discusiones generales en nuevas arquitecturas, participa en
- <ref id="mailing" name="la lista">
- <tt>&lt;FreeBSD-platforms@FreeBSD.org&gt;</tt>.
-
- <sect1>
- <heading>Necesito un numero de dispositivo para un driver propio</heading>
-
- <p>Esto depende de si quieres hacer que el driver est&eacute;
- p&uacute;blicamente disponible. Si la respuesta es afirmativa, por favor,
- envianos una copia del c&oacute;digo fuente del driver y las
- modificaciones apropiadas del fichero <tt>files.i386</tt>, un ejemplo de
- configuraci&oacute;n y el c&oacute;digo apropiado de <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV" name="MAKEDEV"> para
- crear cualquier fichero especial que use tu dispositivo. Puedes enviar
- todo lo necesario a <tt>&lt;FreeBSD-hackers@FreeBSD.org&gt;</tt>.
-
- <sect1>
- <heading>Alternativas a la pol&iacute;tica de directorios</heading>
-
- <p>En respuesta a esta pregunta de pol&iacute;ticas alternativas
- para los directorios, el esquema que est&aacute; actualmente en uso
- no ha cambiado desde que lo escrib&iacute; en 1983. Escrib&iacute; esa
- pol&iacute;tica para el sistema de ficheros r&aacute;pido original, y
- nunca se ha revisado. Trabaja bi&eacute;n manteniendo los grupos de
- cilindros. Como muchos de vosotros habreis notado, el rendimiento es
- muy pobre con "find". Muchos sistemas de ficheros son creados desde
- archivos que fueron creados por una primera b&uacute;squeda en
- profundidad (tambi&eacute;n conocido como ftw). Estos directorios
- terminan esparcidos a trav&eacute;s de los grupos de cilindros. Si
- conociesemos el n&uacute;mero total de directorios a crear, la
- soluci&oacute;n ser&iacute;a crear (total / fs_ncg) por grupo de
- cilindros antes de moverlos. Obviamente, tendriamos que crear
- alg&uacute;n tipo de heur&iacute;stica para adivinar este n&uacute;mero.
- Usando un n&uacute;mero peque&ntilde;o fijo (como puede ser
- 10) har&iacute;a de orden de magnitud. Para diferencial restores de
- operaciones normales (cuando el algoritmo actual es probablemente
- m&aacute;s sensible), podr&iacute;s usar el clustering hasta 10 si
- fueran todos hechos dentro de una ventana de diez segundos. De cualquier
- manera, mi conclusi&oacute;n es que este es un &aacute;rea para la
- experimentaci&oacute;n.</p>
-
- <p>Kirk McKusick, Septiembre 1998</p>
-
- <sect1>
- <heading>Obtener todo lo posible de un "kernel panic"</heading>
-
- <p>
- <em>[Esta secci&oacute;n fue extraida de un mensaje escrito por <url
- url="mailto:wpaul@FreeBSD.org" name="Bill Paul"> en la
- <ref id="mailing" name="lista"> FreeBSD-current por <url
- url="mailto:des@FreeBSD.org" name="Dag-Erling Co&iuml;dan
- Sm&oslash;rgrav">, qui&eacute;n a fijado algunos errores y
- a&ntilde;adido algunos comentarios entre corchetes]</em>
-
- <p>
- <verb>
-From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
-Subject: Re: the fs fun never stops
-To: ben@rosengart.com
-Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
-Cc: current@FreeBSD.org
- </verb>
-
- <p>
- <em>[&lt;ben@rosengart.com&gt; envi&oacute; el siguiente panic]</em>
- <verb>
-> Fatal trap 12: page fault while in kernel mode
-> fault virtual address = 0x40
-> fault code = supervisor read, page not present
-> instruction pointer = 0x8:0xf014a7e5
- ^^^^^^^^^^
-> stack pointer = 0x10:0xf4ed6f24
-> frame pointer = 0x10:0xf4ed6f28
-> code segment = base 0x0, limit 0xfffff, type 0x1b
-> = DPL 0, pres 1, def32 1, gran 1
-> processor eflags = interrupt enabled, resume, IOPL = 0
-> current process = 80 (mount)
-> interrupt mask =
-> trap number = 12
-> panic: page fault
- </verb>
-
- <p>[Cuando] ves un mensaje como este, no es suficiente con solo
- reproducirlo y enviarlo. El valor del puntero de instrucciones que
- he marcado arriba es importante; desafortunadamente, depende de la
- configuraci&oacute;n. En otras palabras, el valor var&iacute;a
- dependiendo de la im&aacute;den de kernel exacta que se use. Si
- est&aacute;s usando el kernel GENERIC de uno de los snapshots, entonces
- es posible que alguien pueda seguir la funci&oacute;n
- problem&aacute;tica, pero si est&aacute;s usando un kernel
- personalizado, entonces solo <em>t&uacute;</em> puedes decirnos donde
- ha ocurrido el fallo.
-
- <p>Tendr&iacute;as que hacer lo siguiente:
-
- <itemize>
- <item>Anotar el valor del puntero de la instrucci&oacute;n. Ten en
- cuenta la parte <tt/0x8:/ al inicio no es significante en este caso:
- es la parte <tt/0xf0xxxxxx/ la que queremos.
- <item>Cuando el sistema rearranca, haz lo siguiente:
- <verb>
-% nm /kernel.that.caused.the.panic | grep f0xxxxxx
- </verb>
- donde <tt/f0xxxxxx/ es el valor del puntero de la instrucci&oacute;n.
- El problema es que no obtendr&aacute;s una b&uacute;squeda exacta ya
- que los s&iacute;mbolos en la tabla de s&iacute;mbolos del kernel
- son para los puntos de entrada de las funciones y la direcci&oacute;n
- del puntero de la instrucci&oacute;n estar&aacute; en alg&uacute;n
- lugar dentro de una funci&oacute;n, no al principio. Si no obtienes
- un resultado exacto, omite el &uacute;ltimo d&iacute;gito del valor
- del puntero de la instrucci&oacute;n e intentalo otra vez, por
- ejemplo:
- <verb>
-% nm /kernel.that.caused.the.panic | grep f0xxxxx
- </verb>
- Si esto no da ning&uacute;n resultado, elimina otro d&iacute;gito.
- Repite la operaci&oacute;n hasta que obtengas alg&uacute;n tipo de
- salida. El resultado ser&aacute; una lista de posibles funciones
- que causan el panic. Este no es un sistema muy exacto de
- b&uacute;squeda de errores, pero es mejor que nada.
- </itemize>
-
- <p>Veo gente que constantemente env&iacute;a mensajes de panics como
- este, pero raramente veo que alguien se tome el tiempo de buscar
- la coincidencia entre el puntero de instrucci&oacute;n y una
- funci&oacute;n en la tabla de s&iacute;mbolos del kernel.
-
- <p>La mejor manera de hacer el seguimiento de la causa de un panic es
- capturar un "crash dump", usando <tt/gdb(1)/ para hacer una traza del
- "crash dump". Por supuesto, esto depende de que <tt/gdb(1)/ funcione
- correctamente en -current, lo que no puedo garantizar (recuerdo que
- alguien ha comentado que el nuevo <tt/gdb(1)/ en formato ELF no
- manejaba bi&eacute;n los "dumps" de un crash del kernel; algui&eacute;n
- deber&iacute;a mirar esto antes de que la 3.0 salga del estado beta).
-
- <p>En cualquier caso, el m&eacute;todo que normalmente uso es este:
-
- <itemize>
- <item>Crear un fichero de configuraci&oacute;n de kernel, opcionalmente
- a&ntilde;adiendo 'options DDB' si piensas que necesitas el debugger
- del kernel por alg&uacute;n motivo. (Uso esto principalmente para
- configurar puntos de salida si sospecho que existe alguna
- condici&oacute;n que crea un loop infinito).
- <item>Usar <tt/config -g KERNELCONFIG/ para crear el directorio
- de configuraci&oacute;n del kernel.
- <item><tt>cd /sys/compile/KERNELCONFIG; make</tt>
- <item>Esperar a que el kernel termine de compilar.
- <item><tt/cp kernel kernel.debug/
- <item><tt/strip -d kernel/
- <item><tt/mv /kernel /kernel.orig/
- <item><tt>cp kernel /</tt>
- <item>reboot
- </itemize>
-
- <p><em>[Nota: ahora que los kernels de FreeBSD 3.x son ELF por defecto
- debes usar <tt/strip -g/ en lugar de <tt/strip -d/. Si por alg&uacute;n
- motivo tu kernel es a&uacute;n a.out, usa <tt/strip -aout -d/.]</em>
-
- <p>Ten en cuenta que TU <em/NO/ QUIERES ARRANCAR CON UN KERNEL QUE TIENE
- TODOS LOS SIMBOLOS DE DEBUG EN EL. Un kernel compilado con <tt/-g/
- puede llegar facilmente a los 10MB de tama&ntilde;o. No tienes que
- arrancar esta im&aacute;n masiva, solo lo necesitas para poder usar
- despu&eacute;s <tt/gdb(1)/ (<tt/gdb(1)/ quiere la tabla de
- s&iacute;mbolos). Al contrario, quieres mantener una copia de la
- im&aacute;gen completa y crear una segunda im&aacute;gen con los
- s&iacute;mbolos de debug desactivados usando <tt/strip -d/. Es esta
- segunda im&aacute;gen la que quieres arrancar.
-
- <p>Para asegurarte de capturar un "crash dump", necesitas editar el
- fichero <tt>/etc/rc.conf</tt> y apuntar <tt/dumpdev/ a tu
- partici&oacute;n de swap. Esto har&aacute; que el script <tt/rc(8)/ use
- el comando <tt/dumpon(8)/ para activar los "crash dumps". Tambi&eacute;n
- puedes ejecutar manualmente <tt/dumpon(8)/. Despu&eacute;s de un panic,
- el "crash dump" puede ser recuperado usando <tt/savecore(8)/; si
- <tt/dumpdev/ est&aacute; en <tt>/etc/rc.conf</tt>, el script
- <tt/rc(8)/ ejecutar&aacute; <tt/savecore(8)/ automaticamente y
- pondr&aacute; el "crash dump" en <tt>/var/crash</tt>.
-
- <p>NOTA: los "crash dumps" de FreeBSD suelen tener el mismo
- tama&ntilde;o que la cantidad total de memoria f&iacute;sica del
- sistema. Esto significa que si tienes 64MB de RAM, obtendr&aacute;s
- un "crash dump" de 64MB. Debido a esto, tienes que asegurarte de tener
- suficiente espacio libre en <tt>/var/crash</tt>. Alternativamente puedes
- ejecutar <tt/savecore(8)/ manualmente y hacer la recuparaci&oacute;n en
- otro directorio donde tengas m&aacute;s espacio libre. Es posible
- limitar el tama&ntilde;o del "crash dump" usando <tt/options MAXMEM=(foo)/
- para indicar la cantidad de memoria que el kernel puede ocupar. Por
- ejemplo, si tienes 128MB de RAM, puedes limitar el uso de memoria del
- kernel a 16MB para que el "crash dump" sea de 16MB y no de 128MB.
-
- <p>Una vez hayas recuperado el "crash dump", puedes obtener una traza
- del stack con <tt/gdb(1)/ de la manera siguiente:
-
- <p>
- <verb>
-% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0
-(gdb) where
- </verb>
-
- <p>Es posible que aparezcan muchas l&iacute;neas de informaci&oacute;n:
- es una buena idea usar el comando <tt/script(1)/ para capturarlas
- todas. Usando la im&aacute;gen del kernel con todos los s&iacute;mbolos
- de debug deber&iacute; mostrar la l&iacute;nea exacta de c&oacute;digo
- fuente del kernel donde ha ocurrido el panic. Normalmente, tienes que
- leer la traza del stack de abajo hacia arriba para poder conocer la
- secuencia exacta de eventos que han provocado el crash. Tambi&eacute;n
- puedes usar <tt/gdb(1)/ para mostrar los contenidos de las diferentes
- variables o estructuras para examinar el estado del sistema en el
- momento del crash.
-
- <p>Ahora, si eres realmente curioso y tienes un segundo ordenador,
- puedes configurar <tt/gdb(1)/ para hacer un debug remoto de manera
- que puedes usar <tt/gdb(1)/ en un sistema para revisar el kernel
- de otro sistema, de la misma manera que lo har&iacute;as en la
- m&aacute;quina local.
-
- <p><em>[Bill a&ntilde;ade: "Olvid&eacute; mencionar una cosa: si tienes
- DDB activado, puedes forzar un panic (y un crash dump) tecleando
- "panic" en el prompt del ddb. Es posible que el debugger se pare
- durante la fase del panic. Si esto ocurre, teclea "continue" y el
- crash dump finalizar&aacute;"]</em>
-
- <sect1>
- <heading>dlsym() no funciona con ejecutables ELF!</heading>
-
- <p>Las herramientas ELF no hacen por defecto que los s&iacute;mbolos
- definidos en un ejecutable sean visibles por el linker din&aacute;mico.
- Consecuentemente, <tt/dlsym()/ buscar&aacute; en datos obtenidos desde
- llamadas a <tt>dlopen(NULL, flags)</tt>, lo que provoca que no se
- encuentren esos s&iacute;mbolos.
-
- <p>Si quieres buscar, usando <tt/dlsym()/ s&iacute;mbolos presentes
- en el ejecutable principal de un proceso, necesitas linkar el
- ejecutable usando la opci&oacute;n <tt>-export-dynamic</tt> en el
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ld"
- name="linkador ELF">.
-
- <sect1>
- <heading>Incrementando o reduciendo el espacio de direcciones del
- kernel</heading>
-
- <p>Por defecto, el espacio de direcciones del kernel es de 256MB en
- FreeBSD 3.x y 1GB en FreeBSD 4.x. Si gestionas un servidor de red
- muy cargado (por ejemplo, servidores FTP o HTTP con mucho
- tr&aacute;fico), es posible que notes que 256MB no es
- suficiente.
-
- <p>As&iacute; que... como incremento el espacio de direcciones?. Hay
- dos aspectos a tener en cuenta. Primero, necesitas indicarle al kernel
- que reserve una mayor parte del espacio de direcciones para &eacute;l
- mismo. Segundo, ya que el kernel se carga al inicio del espacio de
- direcciones, necesitas disminuir la direcci&oacute;n de carga.
-
- <p>El primer aspecto lo solucionamos incrementando el valor de
- <tt/NKPDE/ en <tt>src/sys/i386/include/pmap.h</tt>. Esta es una entrada
- de ejemplo para 1GB de espacio de direcciones:
-
- <verb>
-#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
- </verb>
-
- <p>Para encontrar el valor correcto de <tt/NKPDE/, divide el espacio de
- direcciones deseado (en megabytes) por cuatro, despu&eacute;s resta uno
- por UP y dos por SMP.
-
- <p>Para solucionar el segundo aspecto, necesitas calcular la
- direcci&oacute;n correcta de carga: simplemente resta el tama&ntilde;o
- del espacio de direcciones (en bytes) de 0x100100000; el resultado
- es 0xc0100000 para 1GB de espacio de direcciones. Ajusta
- <tt/LOAD_ADDRESS/ en <tt>src/sys/i386/conf/Makefile.i386</tt> a ese
- valor; a continuaci&oacute;n pon el contador al inicio de la
- secci&oacute;n listado en <tt>src/sys/i386/conf/kernel.script</tt>
- al mismo valor, como sigue:
-
- <verb>
-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) }
- </verb>
-
- <p>Reconfigura y compila el kernel. Probablemente tengas problemas con
- <tt/top(1)/, <tt/ps(1)/ y programas as&iacute;; haciendo un
- <tt/make world/ deber&iacute;n solucionarse esos problemas (o una
- recompilaci&oacute;n manual de <tt/libkvm/, <tt/ps/ y <tt/top/
- despu&eacute;s de copiar el <tt/pmap.h/ parcheado a
- <tt>/usr/include/vm/</tt>.
-
- <p>NOTA: el tama&ntilde;o del espacio de direcciones debe ser un
- m&uacute;ltiplo de cuatro megabytes.
-
- <p><em>[<url url="mailto:dg@FreeBSD.org" name="David Greenman">
- a&ntilde;ade: </em>Pienso que el espacio de direcciones del kernel
- necesita ser una potencia de 2, pero no estoy totalmente seguro.]
-
-</sect>
diff --git a/es_ES.ISO8859-1/FAQ/hardware.sgml b/es_ES.ISO8859-1/FAQ/hardware.sgml
deleted file mode 100644
index 5e38e8eff1..0000000000
--- a/es_ES.ISO8859-1/FAQ/hardware.sgml
+++ /dev/null
@@ -1,560 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Compatibilidad hardware <label id="hardware"></heading>
-
- <sect1>
- <heading>&iquest;Qu&eacute; tipo de discos duros soporta FreeBSD?</heading>
-
- <p>FreeBSD soporta discos duros EIDE y SCSI (con controladoras
- compatibles; mira en la siguiente secci&oacute;n), y todos los discos
- usando el interface original "Western Digital" (MFM, RLL, ESDI y
- por supuesto IDE). Algunas controladoras ESDI que usan interfaces
- propietarios quiz&aacute;s no funcionen correctamente.
-
- <sect1>
- <heading>&iquest;Qu&eacute; controladoras SCSI est&aacute;n soportadas?</heading>
-
- <p>FreeBSD soporta las siguientes controladoras SCSI:
-
- <descrip>
- <tag/Adaptec/
- AH-1505 &lt;ISA&gt; <newline>
- AH-152x Series &lt;ISA&gt; <newline>
- AH-154x Series &lt;ISA&gt; <newline>
- AH-174x Series &lt;EISA&gt; <newline>
- Sound Blaster SCSI (AH-152x compat) &lt;ISA&gt; <newline>
- AH-2742/2842 Series &lt;ISA/EISA&gt; <newline>
- AH-2820/2822/2825 Series (Narrow/Twin/Wide) &lt;VLB&gt; <newline>
- AH-294x and aic7870 MB controllers (Narrow/Twin/Wide) &lt;PCI&gt;
- <newline>
- AH-394x (Narrow/Twin/Wide)
-
- <tag/Buslogic/
- BT-445 Series &lt;VLB&gt; <newline>
- BT-545 Series &lt;ISA&gt; <newline>
- BT-742 Series &lt;EISA&gt;<newline>
- BT-747 Series &lt;EISA&gt;<newline>
- BT-946 Series &lt;PCI&gt; <newline>
- BT-956 Series &lt;PCI&gt; <newline>
-
- <tag/Future Domain/
- TMC-950 Series &lt;ISA&gt; <newline>
-
- <tag/PCI Generic/
- NCR 53C81x based controllers &lt;PCI&gt; <newline>
- NCR 53C82x based controllers &lt;PCI&gt; <newline>
- NCR 53C860/75 based controllers &lt;PCI&gt; <newline>
-
- <tag/ProAudioSpectrum/
- Zilog 5380 based controllers &lt;ISA&gt; <newline>
- Trantor 130 based controllers &lt;ISA&gt; <newline>
-
- <tag/DTC/
- DTC 3290 EISA SCSI in AHA-154x emulation.<newline>
-
- <tag/Seagate/
- ST-01/02 Series &lt;ISA&gt;<newline>
-
- <tag/UltraStor/
- UH-14f Series &lt;ISA&gt;<newline>
- UH-24f Series &lt;EISA&gt; <newline>
- UH-34f Series &lt;VLB&gt;<newline>
-
- <tag/Western Digital/
- WD7000 &lt;ISA&gt; &lt;No scatter/gather&gt;
- </descrip>
-
- <sect1>
- <heading>&iquest;Qu&eacute; lectores CD-ROM soporta FreeBSD?</heading>
-
- <p>Cualquier disco SCSI conectado a una controladora soportada es
- soportado.
-
- <p>Los siguientes interfaces de CD-ROM propietarios son tambi&eacute;n
- soportados:
-
- <itemize>
- <item>Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit 2x Speed).
- <item>Sony CDU 31/33A<newline>
- <item>Sound Blaster Non-SCSI CD-ROM<newline>
- <item>Matsushita/Panasonic CD-ROM<newline>
- <item>ATAPI compatible IDE CD-ROMs<newline>
- </itemize>
-
- <p>Todas las tarjetas no SCSI son conocidas por ser extremadamente
- lentas comparadas con los discos SCSI, y algunos CDROM ATAPI quiz&aacute;s
- no funcionen correctamente.
-
- <p>A partir de la versi&oacute;n 2.2 de FreeBSD en CDROM de Walnut Creek
- se soporta el arranque directo (boot) desde el propio CD.
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD discos ZIP?</heading>
-
- <p>FreeBSD soporta los ZIP SCSI externos. Las unidades ZIP solo pueden
- funcionar en los ID's SCSI 5 y 6, pero si la BIOS de tu controladora
- lo soporta, puedes arrancar desde &eacute;l. No sabemos que controladoras
- dejan arrancar desde ID's diferentes de la 0 o 1... mira en tu
- documentaci&oacute;n y hazmelo saber si te funciona.
-
- <p>Los discos Zip ATAPI (IDE) son soportados en FreeBSD 2.2.6 y
- releases posteriores.
-
- <p>FreeBSD ha incluido el soporte de discos ZIP por puerto paralelo
- desde la versi&oacute;n 3.0. Si est&aacute;s usando una versi&oacute;n
- actualizada, debes asegurarte de que tu configuraci&oacute;n del kernel
- incluye los drivers <tt>scbus0</tt>, <tt>da0</tt>, <tt>ppbus0</tt> y
- <tt>vp0</tt> (el kernel GENERIC los contiene todos excepto vp0).
- Con todos estos drivers presentes, el disco por puerto paralelo
- deber&iacute;a estar disponible como /dev/da0s4. Los discos se pueden
- montar usando <tt>mount /dev/da0s4 /mnt</tt> o (para discos dos)
- <tt>mount_msdos /dev/da0s4 /mnt</tt>.
-
- <p>Tambi&eacute;n mira <ref id="jaz" name="en disco removibles">,
- y <ref id="disklabel" name="esta nota en 'formatting'">.
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD JAZ, EZ y otros discos removibles?</heading>
-
- <p>Aparte de la versi&oacute;n IDE de EZ, todos estos son dispositivos
- SCSI, por lo que deber&iacute;an funcionar sin problemas ya que FreeBSD
- los toma como discos SCSI y el IDE EZ tambi&eacute;n deber&iacute;a
- funcionar sin problemas ya que se toma como un disco IDE estandard.
-
- <p><label id="jaz">No estoy seguro de como soporta FreeBSD el cambio
- de soporte mientras est&aacute; funcionando. Deber&aacute;s, desde
- luego, desmontar la unidad antes de poder cambiar el soporte, y estar
- seguro de que todas las unidades externas est&aacute;n encendidas antes
- de arrancar el ordenador con FreeBSD para que este pueda reconocerlas.
-
- <p>Mira <ref id="disklabel" name="esta nota en 'formatting'">.
-
- <sect1>
- <heading>&iquest;Qu&eacute; tarjetas serie multipuerto son soportadas por FreeBSD?</heading>
-
- <p>Hay una lista de ellas en la secci&oacute;n <htmlurl
- url="../../handbook/install.html#INSTALL-HW" name="dispositivos varios">
- del manual (handbook).
-
- <p>Algunas tarjetas "sin nombre" tambi&eacute;n han funcionado,
- especialmente las que dicen ser compatibles AST.
-
- <p>Mira la p&aacute;gina
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sio"
- name="sio"> para obtener m&aacute;s informaci&oacute;n sobre la
- configuraci&oacute;n de estas tarjetas.
-
- <sect1>
- <heading>Tengo un tipo de rat&oacute;n no habitual. &iquest;C&oacute;mo lo configuro?<label id="busmouse"></heading>
-
- <p>FreeBSD soporta el "bus mouse" y el "InPort bus mouse" de
- fabricantes como Microsoft, Logitech y ATI. El driver de mouse
- esti&aacute; compilado en el GENERIC kernel (kernel por defecto que
- carga el sistema). Si est&aacute;s haciendote un kernel a medida que
- incluya el driver de rat&oacute;n, asegurate de a&ntilde;adir la
- siguiente l&iacute;nea en el fichero de configuraci&oacute;n del kernel:
-
- <verb>
- device mse0 at isa? port 0x23c tty irq5 vector mseintr
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo uso mi PS/2 (``mouse port'' o ``teclado'')?<label id="ps2mouse"></heading>
-
- <p>Si est&aacute;s usando una versi&oacute;n reciente de FreeBSD, el
- driver necesario, psm, est&aacute; incluido y activado en el kernel. El
- propio kernel deber&iacute;a detectar tu rat&oacute;n PS/2 en el momento
- de arrancar.
-
- <p>Si est&aacute;s usando una versi&oacute;n antigua, solo tienes que
- activarlo en la configuraci&oacute;n del kernel en el momento de la
- instalaci&oacute;n del sistema. Si este ya est&aacute; instalado,
- escribe -c en el prompt boot: y act&iacute;valo. Por defecto, este
- driver est&aacute; desactivado.
-
- <p>Si est&aacute;s usando alguna de las versiones mas antiguas, tendras
- que a&ntilde;adir la siguiente l&iacute;nea en el fichero de
- configuraci&oacute;n del kernel y compilar uno nuevo:
-
- <verb>
- device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
- </verb>
-
- <p>Mira la secci&oacute;n <url url="../../handbook/kernelconfig.html"
- name="configuracion del kernel"> si no tienes experiencia en la
- creaci&oacute;n de nuevos kernel.
-
- <p>Una vez el kernel detecta correctamente el dispositivo psm0 al
- arrancar, aseg&uacute;rate de que existe una entrada en /dev para este
- dispositivo. Puedes hacerlo tecleando:
-
- <verb>
- cd /dev; sh MAKEDEV psm0
- </verb>
-
- <sect1>
- <heading>&iquest;Es posible hacer uso del rat&oacute;n fuera de X Windows?<label id="moused"></heading>
-
- <p>Si est&aacute;s usando el driver por defecto de la c&oacute;nsola,
- syscons, puedes usar el rat&oacute;n en las c&oacute;nsolas de texto
- para realizar cut & paste. Ejecuta el demonio (daemon) de rat&oacute;n
- moused y arranca el rat&oacute;n en la c&oacute;nsola virtual:
-
- <verb>
- moused -p /dev/xxxx -t yyyy
- vidcontrol -m on
- </verb>
-
- <p>Donde <tt>xxxx</tt> es el nombre del dispositivo del rat&oacute;n y
- <tt>yyyy</tt> es un tipo de protocolo para el rat&oacute;n. Mira en
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?moused" name="moused">
- para saber los tipos de protocolo soportados.
-
- <p>Si quieres ejecutar el demonio moused automaticamente al arrancar
- el sistema, fija las siguientes variables en <tt>/etc/sysconfig</tt>
- (para versi&oacute;n 2.2.1).
-
- <verb>
- mousedtype="yyyy"
- mousedport="xxxx"
- mousedflags=""
- </verb>
-
- En versiones 2.2.2 o superiores, fija las siguientes variables en
- <tt>/etc/rc.conf</tt>.
-
- <verb>
- moused_type="yyyy"
- moused_port="xxxx"
- moused_flags=""
- </verb>
-
- <p>A partir de la versi&oacute;n 2.2.6, el demonio del rat&oacute;n es
- capaz de determinar automaticamente el protocolo correcto a utilizar. Solo
- tienes que especificar <tt>auto</tt> como el protocolo a usar.
-
- <p>Cuando el demonio de rat&oacute;n est&aacute; funcionando, el acceso
- al rat&oacute;n necesita ser coordinado con otros programas como
- X Window. Mira en <ref id="x-and-moused" name="esta secci&oacute;n">
- para mas informaci&oacute;n.
-
- <sect1>
- <heading>&iquest;C&oacute;mo hago un cut & paste con el rat&oacute;n en una c&oacute;nsola de texto?</heading>
-
- <p>Una vez tienes el demonio del rat&oacute;n funcionando (mira
- <ref id="moused" name="la secci&oacute;n anterior">, pulsa el
- bot&oacute;n 1 (izquierdo) y mueve el rat&oacute;n para seleccionar la
- regi&oacute;n de texto.
- A continuaci&oacute;n, pulsa el bot&oacute;n 2 (medio) o 3 (derecho)
- para hacer un paste (pegar) de la regi&oacute;n seleccionada en el lugar
- en el que tengamos situado el cursor.
-
- <p>En versiones 2.2.6 o superiores, pulsando el bot&oacute;n 2 hara un
- paste del texto seleccionado. Pulsando el bot&oacute;n 3 extenderemos
- la regi&oacute;n seleccionada de texto. Si tu rat&oacute;n no tiene el
- bot&oacute;n medio, puedes emularlo o "remapear" (reconfigurar) los
- botones de tu rat&oacute;n con las opciones del demonio moused. MIra en
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?moused" name="moused">
- para mas informaci&oacute;n.
-
- <sect1>
- <heading>Mi rat&oacute;n tiene una rueda de desplazamiento y botones. &iquest;Puedo usarlo?</heading>
-
- <p>La respuesta es, desafortunadamente, "depende". Estos ratones con
- caracter&iacute;sticas adicionales requieren en muchos casos drivers
- propios y especializados. A no ser que el driver de dispositivo o el
- programa de usuario tenga soporte espec&iacute;fico, el rat&oacute;n
- se comportar&aacute; como un rat&oacute;n normal y corriente.
-
- <sect1>
- <heading>&iquest;C&oacute;mo uso el mouse/trackball/touchpad en mi port&aacute;til?</heading>
-
- <p>Por favor, <ref id="ps2mouse" name="mira en la respuesta
- anterior">. Mira tambi&eacute;n <ref id="pao" name="esta nota"> en la
- secci&oacute;n de ordenadores port&aacute;tiles.
-
- <sect1>
- <heading>&iquest;Qu&eacute; tipo de dispositivos de cinta son soportados?</heading>
-
- <p>FreeBSD soporta SCSI, QIC-36 (con controladora QIC-02) y
- QIC-40/80. Esto inclye dispositivos de 8mm (conocidos como Exabyte)
- y dispositivos DAT. Los QIC-40/80 son conocidos por ser lentos.
-
- <p>Algunos de los primeros dispositivos de 8mm no son totalmente
- compatibles con SCSI2 por lo que pueden no trabajar correctamente
- en FreeBSD.
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD "tape changers"?</heading>
-
- <p>FreeBSD 2.2 soporta SCSI changers usando el dispositivo <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ch(4)" name="ch"> y el comando
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?chio" name="chio">
- . Los comandos de como controlar el "changer" estan en el man
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?chio"
- name="chio">.
-
- <sect1>
- <heading>&iquest;Qu&eacute; tarjetas de sonido son soportadas por FreeBSD?</heading>
-
- <p>FreeBSD soporta las tarjetas SoundBlaster, SoundBlaster Pro,
- SoundBlaster 16, Pro Audio Spectrum 16, AdLib y Gravis Ultrasound.
- Hay tambi&eacute;n soporte limitado para la tarjeta MPU-401 y compatibles
- midi. Las tarjetas SoundBlaster 16 ASP todav&iacute;a no son soportadas.
- El Microsoft Sound System s&iacute; est&aacute; soportado.
-
- <p><bf/NOTA/ Esto es solo para sonido!. Este driver no soporta
- CD-ROMs, SCSI o joysticks en estas tarjetas, a excepci&oacute;n de la
- SoundBlaster. El interface SCSI de SoundBlaster y algunos CD-ROMs
- no SCSI son soportados, pero no podr&aacute;s arrancar el sistema desde
- ellos.
-
- <sect1>
- <heading>No obtengo sonido de la tarjeta es1370 con driver pcm</heading>
-
- <p>Puedes ejecutar el siguiente mandato cada vez que arranques el
- sistema:
-
- <p>mixer pcm 100 vol 100 cd 100
-
- <sect1>
- <heading>&iquest;Qu&eacute; tarjetas de red soporta FreeBSD?</heading>
-
- <p>Mira la secci&oacute;n de
- <htmlurl url="../../handbook/install:nics.html"
- name="tarjetas Ethernet"> en el manual para una lista m&aacute;s completa.
-
- <descrip>
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?de(4)"
- name="de"> driver/
- DEC DC21x40 and compatible PCI controllers<newline>
- (including 21140 100bT cards) <newline>
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ed(4)"
- name="ed"> driver/ NE2000 and 1000<newline>
- WD/SMC 8003, 8013 and Elite Ultra (8216)<newline>
- 3Com 3c503 <newline>
- HP 27247B and 27252A <newline>
- And clones of the above <newline>
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?le(4)"
- name="le"> driver/
- DEC EtherWORKS II and EtherWORKS III controllers. <newline>
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ie(4)"
- name="ie"> driver/
- AT&amp;T EN100/StarLAN 10 <newline>
- 3COM 3c507 Etherlink 16/TP<newline>
- NI5210 <newline>
- Intel EtherExpress <newline>
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?is(4)"
- name="is"> driver/
- Isolan AT 4141-0 <newline>
- Isolink 4110 <newline>
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?el(4)"
- name="el"> driver/
- 3com 3c501 (does not support Multicast or DMA)
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?eg(4)"
- name="eg"> driver/
- 3com 3c505 Etherlink/+
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ze(4)"
- name="ze"> driver/
- IBM PCMCIA credit card adapter
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?lnc(4)"
- name="lnc"> drive/
- Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL)(*)
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ep(4)"
- name="ep"> driver/
- 3com 3c509 (Must disable PNP support on card)
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cx(4)"
- name="cx"> driver/
- Cronyx/Sigma multiport Sync/Async (Cisco and PPP framing)
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?zp(4)"
- name="zp"> driver/
- 3Com PCMCIA Etherlink III (aka 3c589)(A-C only)
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fea(4)"
- name="fea"> driver/
- DEC DEFEA EISA FDDI controller
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fpa(4)"
- name="fpa"> driver/
- DEC DEFPA PCI FDDI controller
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fe(4)"
- name="fe"> driver/
- Fujitsu MB86960A/MB86965A Ethernet cards
- </descrip>
-
- <p><bf/NOTA/ Los drivers marcados con (*) pueden tener problemas.
-
- <p><bf/NOTA/ 3C598D NO esta soportada todav&iacute;a.
-
- <p><bf/NOTA/ FreeBSD tambi&eacute;n soporta TCP/IP sobre l&iacute;neas
- paralelo. En estos momentos, no somos compatibles con otras versiones,
- pero esperamos corregirlo en un futuro cercano. Encontrar&aacute;s
- m&aacute;s informaci&oacute;n sobre este tema en la p&aacute;gina man
- de lp(4).
-
- <p><bf/NOTA/ Algunas de estas tarjetas requieren una partici&oacute;n DOS
- en el disco duro para ejecutar el programa de configuraci&oacute;n.
-
- <sect1>
- <heading>No tengo coprocesador matem&aacute;tico - &iquest;es malo?</heading>
-
- <p><tt /NOTA/ Esto solo afectar&aacute; a los ordenadores
- 386/486SX/486SLC. El resto de los microprocesadores tienen un
- coprocesador integrado.
-
- <p>En general, esto no causar&aacute; problemas, pero hay ciscunstancias
- en las que podr&aacute;s echarlo de menos. Especialmente si trabajas en
- entorno X Window. Si puedes, te recomendamos que compres uno y lo
- instales en tu ordenador.
-
- <sect1>
- <heading>&iquest;Qu&eacute; otros dispositivos soporta FreeBSD 2.X?</heading>
-
- <p>Aqu&iacute; hay una lista de drivers que no se han podido catalogar en
- las categor&iacute;as anteriores.
-
- <descrip>
- <tag><tt/b004.c/</tag>
- Driver for B004 compatible Transputer boards <newline>
-
- <tag>``ctx'' driver</tag>
- Driver for CORTEX-I Frame grabber <newline>
-
- <tag>``gp'' driver</tag>
- Driver for National Instruments AT-GPIB and<newline>
- AT-GPIB/TNT boards
-
- <tag>``pca'' driver</tag>
- Driver for PC speakers to allow the playing of audio files
-
- <tag>``spigot'' driver</tag>
- Driver for the Creative Labs Video Spigot
-
- <tag><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?gsc(4)"
- name="gsc"> driver</tag>
- Driver for the Genuis GS-4500 Hand scanner
-
- <tag><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?joy(4)"
- name="joy"> driver</tag>
- Driver for a joystick
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?labpc(4)"
- name="labpc"> driver/
- Driver for National Instrument's Lab-PC and Lab-PC+
-
- <tag/``uart'' driver/
- Stand-alone 6850 UART for MIDI
-
- <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?psm(4)"
- name="psm"> driver/ PS/2 mouse port
-
- <tag><tt/tw.c/</tag>
- Driver for the X-10 POWERHOUSE <newline>
- </descrip>
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD el "power management" en mi port&aacute;til?</heading>
-
- <p>FreeBSD soporta APM en algunas m&aacute;quinas. Por favor, mira en
- el fichero de configuraci&oacute;n del kernel <tt/LINT/ y busca la parabra
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?apm" name="APM">
-
- <sect1>
- <heading>Soluciones para problemas espec&iacute;ficos de hardware</heading>
- <p>Esta secci&oacute;n contiene soluiones para problemas especificos
- encontrados por otros usuarios.
- <sect2>
- <heading>Sistemas Micron se cuelgan al arrancar</heading>
- <p>Algunas placas base Micron tienen una implementaci&oacute;n de PCI
- en la BIOS que no es estandard, lo que provoca que FreeBSD no pueda
- encontrar los dispositivos PCI en las direcciones en las que
- deber&iacute;an estar.
- <p>Desactiva la opci&oacute;n "Plug and Play Operating System" en la BIOS
- para solucionar el problema. Puedes encontrar m&aacute;s
- informaci&oacute;n en:
- <htmlurl
- url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"
- name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
- </sect2>
- </sect1>
-
- <sect1>
- <heading>Tengo una de las controladoras Adaptec m&aacute;s nuevas y
- FreeBSD no puede encontrarla</heading>
-
- <p>Las nuevas controladoras Adaptec con chipset de la serie AIC789x son
- soportados bajo la nueva CAM SCSI que hace su debut en la version 3.0
- de FreeBSD. Los parches para las versiones 3.0-CURRENT y 2.2-STABLE
- est&aacute;n en:
- <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/"
- name="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">.
- Un disco de arranque con soporte CAM est&aacute; disponible en:
- <url url="http://www.FreeBSD.org/ ~abial/cam-boot/"
- name="http://www.FreeBSD.org/~abial/cam-boot/">. En ambos casos lee el
- fichero README antes de empezar.
-
- <sect1>
- <heading>Tengo un m&oacute;dem interno Plug & Play y FreeBSD no lo encuentra</heading>
-
- <p>Necesitar&aacute;s a&ntilde;adir el ID del modem PnP a la lista de ID
- PnP en el driver serie. Para activar el soporte PnP, compila un nuevo
- kernel con <tt/controller pnp0/ en el fichero de configuraci&oacute;n y
- rebota el sistema. El kernel mostrar&aacute; por pantalla los IDs de
- todos los dispositivos PnP que encuentre. Copia el ID del m&oacute;dem
- en la tabla del fichero <tt>/sys/i386/isa/sio.c</tt>, sobre la
- l&iacute;nea 2777. Busca la cadena "SUP1310" en la estructura
- "siopnp_ids[]" para encontrar la tabla. Genera un nuevo kernel,
- instalalo y rearranca. Tu m&oacute;dem deber&iacute;a ser encontrado.
-
- <p>Quiz&aacute;s tengas que configurar manualmente los dispositivos PnP
- usando el comando "pnp" en la configuraci&oacute;n de arranque usandolo
- de la siguiente manera:
- <verb>
- pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo obtengo el prompt "boot:" en una c&oacute;nsola serie?</heading>
-
- <p><enum>
- <item>Crea un nuevo kernel con <tt/options COMCONSOLE/.
- <item>Crea el fichero /boot.config y pon <tt/-P/ como &uacute;nico texto
- en el fichero.
- <item>Desconecta el teclado del ordenador.
- </enum></p>
-
- <p>Mira el fichero <tt>/usr/src/sys/i386/boot/biosboot/README.serial</tt>
- para mas informaci&oacute;n.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; no funciona mi tarjeta de red PCI 3Com con mi
- ordenador Micron?</heading>
- <p>>Algunas placas base Micron tienen una implementaci&oacute;n de PCI
- en la BIOS que no es estandard, lo que provoca que FreeBSD no pueda
- encontrar los dispositivos PCI en las direcciones en las que
- deber&iacute;an estar.
- <p>Para solucionar el problema, desactiva la opci&oacute;n
- "Plug and Play Operating System" en la BIOS.
- <p>Puedes encontrar m&aacute;s informaci&oacute;n sobre este problema en
- <htmlurl
- url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"
- name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD "Symmetric Multiproccessing (SMP)?</heading>
- <p>SMP est&aacute; soportado a partir de la versi&oacute;n 3.0-STABLE
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/includes.sgml b/es_ES.ISO8859-1/FAQ/includes.sgml
deleted file mode 100644
index 02595d6120..0000000000
--- a/es_ES.ISO8859-1/FAQ/includes.sgml
+++ /dev/null
@@ -1,7 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
-
-<!-- book stores -->
-<!ENTITY isbn.amazon 'http://www.amazon.com/exec/obidos/ASIN'>
-
-
diff --git a/es_ES.ISO8859-1/FAQ/install.sgml b/es_ES.ISO8859-1/FAQ/install.sgml
deleted file mode 100644
index 4f4fb3815a..0000000000
--- a/es_ES.ISO8859-1/FAQ/install.sgml
+++ /dev/null
@@ -1,698 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Instalaci&oacute;n<label id="install"></heading>
-
- <sect1>
- <heading>&iquest;Qu&eacute; fichero necesito para instalar FreeBSD?</heading>
-
- <p>Generalmente solo es necesario un disco de 1,44Mb con una im&aacute;gen
- del fichero <em>floppies/boot.flp</em>. Arranca con este disco para
- comenzar con el programa de instalaci&oacute;n, el cual se
- encargar&aacute; de realizar todas las operaciones necesarias
- (gesti&oacute;n de TCP/IP, cintas, CDROMs, floppies, particiones DOS
- y cualquier cosa necesaria para realizar la instalaci&oacute;n).
-
- <p>Si necesitas bajarte las distribuciones (para una instalaci&oacute;n
- desde una partici&oacute;n DOS por ejemplo), estas son las distribuciones
- m&iacute;nimas que necesitar&aacute;s:
-
- <itemize>
- <item> bin/<newline>
- <item> manpages/<newline>
- <item> compat*/<newline>
- <item> doc/ <newline>
- <item> src/ssys.* <newline>
- </itemize>
-
- <p>Todas las instrucciones sobre este procedimiento y una
- ampliaci&oacute;n de la documentaci&oacute;n se puede encontrar en <url
- url="../../handbook/install.html"
- name="Instalaci&oacute;n de FreeBSD.">
-
- <sect1>
- <heading>Ayuda!, La imagen del disco de arranque no cabe en un floppy</heading>
- <p>Un floppy de 1.44MB puede contener hasta 1474560 bytes de datos. La
- im&aacute;gen de arranque es exactamente de 1474560 bytes.
- <p>Los errores mas comunes en la preparaci&oacute;n de disco de arranque
- son:
- <itemize>
-
- <item>No bajarse la imagen en modo <tt>binario</tt> cuando se usa
- <tt>FTP</tt>.
- <p>Algunos clientes FTP intentan bajar por defecto los ficheros en modo
- <tt>ASCII</tt> e intentan cambiar los car&aacute;cteres de final de
- l&iacute;nea recibidos por el que utilice el sistema cliente.
- Esto corromper&aacute; inevitablemente la imagen de arranque. Revisa el
- tama&ntilde;o de la imagen: si no es <em>exactamente</em> el mismo
- tama&ntilde;o del fichero existente en el servidor, la imagen no
- servir&aacute;.
- <p>Soluci&oacute;n: teclea <tt>binary</tt> en la l&iacute;nea de
- comandos del FTP despu&eacute;s de conectar y antes de empezar a bajar
- la im&aacute;gen.
-
- <item>Usando el comando <tt>copy</tt> de DOS (o cualquier herramienta
- GUI equivalente) para transferir la imagen a un disquete.
- <p>Programas como <tt>copy</tt> no funcionar&aacute;n para la
- transferencia de la im&aacute;gen a un disco. La im&aacute;gen tiene el
- contenido completo del disco, pista por pista, y no est&aacute; pensada
- para ser trasladada a un disquete como un fichero normal. Tienes que
- hacer una transferencia "raw" usando herramientas de bajo nivel como
- <tt>fdimage</tt> o
- <tt>rawrite</tt>, descritas en <url url="../../handbook/install.html"
- name="la gu&iacute;a de instalaci&oacute;n de FreeBSD">.
- </itemize>
-
- <sect1>
- <heading>&iquest;D&oacute;nde puedo encontrar las instrucciones de instalaci&oacute;n de FreeBSD?</heading>
-
- <p>Las instrucciones de instalaci&oacute;n est&aacute;n en
- <url url="../../handbook/install.html"
- name="Instalaci&oacute;n de FreeBSD.">
-
- <sect1>
- <heading>&iquest;Qu&eacute; necesito para poder ejecutar FreeBSD?</heading>
-
- <p>Necesitar&aacute;s un PC con 386 o superior, 5 Mb o mas de memoria
- RAM y al menos 60 Mb de espacio en disco duro. Puede funcionar con
- tarjetas gr&aacute;ficas de bajo nivel (Hercules), pero para poder
- ejecutar X11R6 es necesario una tarjeta VGA o superior.
-
- <sect1>
- <heading>Solo tengo 4Mb de RAM. &iquest;Puedo instalar FreeBSD?</heading>
-
- <p>FreeBSD 2.1.7 fue la &uacute;ltima version de FreeBSD que pod&iacute;a
- ser instalada en un sistema de 4Mb. Las nuevas versiones de FreeBSD,
- como la 2.2, necesitan al menos 5Mb para poder ser instaladas.
-
- <p>Todas las versiones de FreeBSD, incluyendo la 3.0, funcionar&aacute;n
- en sistemas con 4Mb de RAM, lo que no pueden ejecutar es la
- instalaci&oacute;n en sistemas con 4Mb. Puedes a&ntilde;adir memoria
- extra para el proceso de instalaci&oacute;n, y una vez instalado, volver
- a los 4Mb. Tambien puedes instalar tu disco en una m&aacute;quina con
- m&aacute;s de 4Mb, realizar la instalaci&oacute;n y volver el disco a su
- m&aacute;quina con 4Mb.
-
- <p>Hay algunas situaciones en las que FreeBSD 2.1.7 no se instalar&aacute;
- en sistemas con 4Mb. Para ser exactos: no se instalar&aacute; con 640Kb de
- memoria base + 3Mb de memoria extendida. Si tu placa base puede
- remapear algo de la memoria "perdida" fuera de los 640Kb a la
- regi&oacute;n de 1Mb, entonces aun podr&aacute;s instalar FreeBSD 2.1.7.
-
- <p>Intenta entrar en el setup de tu BIOS y busca la opci&oacute;n "remap".
- Act&iacute;vala. Quiz&aacute;s tendr&aacute;s que desactivar la
- opci&oacute;n de ROM shadowing.
-
- <p>Es m&aacute;s f&aacute;cil a&ntilde;adir en la m&aacute;quina 4Mb de
- memoria para la instalaci&oacute;n. Crea un kernel unicamente con las
- opciones que necesites y vuelve a quitar los 4Mb a&ntilde;adidos.
-
- <p>Tambi&eacute;n puedes instalar la versi&oacute;n 2.0.5 y a
- continuaci&oacute;n actualizar tu sistema a la 2.1.7 con la opci&oacute;n
- "upgrade" del programa de instalaci&oacute;n de la versi&oacute;n 2.1.7.
-
- <p>Despu&eacute;s de la instalaci&oacute;n, si te creas un kernel
- personalizado, funcionar&aacute; en 4Mb. Algunos fueron capaces de
- arrancar con 2Mb (aunque despu&eacute;s el sistema era incapaz de hacer
- nada mas :-))
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo hacer mi propio disco de instalaci&oacute;n? </heading>
-
- <p>Actualmente, no hay una manera para *s&oacute;lo* hacer un disco de
- instalaci&oacute;n personalizado. Hay alg&uacute;n c&oacute;digo en
- <tt>/usr/src/release/floppies/Makefile</tt> que supuestamente es para
- hacer *s&oacute;lo* un disco de instalaci&oacute;n personalizado, pero
- no est&aacute; realmente testeado todav&iacute;a.
-
- <sect1>
- <heading>&iquest;Puedo tener m&aacute;s de un sistema operativo en mi PC?</heading>
-
- <p>Echa un vistazo en <url url="../tutorials/multios/multios.html"
- name="La p&aacute;gina multi-OS.">
-
- <sect1>
- <heading>&iquest;Puede Windows 95 coexistir con FreeBSD?</heading>
-
- <p>Instala primero Windows 95 y despu&eacute;s FreeBSD. El boot manager de
- FreeBSD se encargar&aacute; de darte la opci&oacute;n de arrancar con
- cualquiera de los dos sistemas. Si lo haces al reves, Windows 95
- borrar&aacute; el boot manager sin hacer ninguna pregunta previa. Si
- ocurre esto, pasa a la siguiente secci&oacute;n.
-
- <sect1>
- <heading>
- Windows 95 desinstal&oacute; mi boot manager! &iquest;C&oacute;mo lo recupero?
- </heading>
-
- <p>Puedes reinstalar el boot manager que viene con FreeBSD de dos
- maneras:
-
- <itemize>
- <item>Ejecutando el DOS, entra en el directorio tools/ de tu
- distribuci&oacute;n de FreeBSD y busca el archivo <bf>bootinst.exe</bf>.
- Ejec&uacute;talo de la siguiente manera:
-
- <p><bf>bootinst.exe boot.bin</bf>
-
- <p>Y el boot manager estar&aacute; reinstalado.
-
- Arranca con el disco de instalaci&oacute;n de FreeBSD y entra en la
- secci&oacute;n "Custom Installation". Selecciona "Partition". Escoge
- el disco en el cual debe estar instalado el boot manager, y cuando
- entres en &eacute;l editor de particiones, sin hacer ning&uacute;n
- cambio, selecciona (W)rite. Ser&aacute;s preguntado para confirmar la
- acci&oacute;n, responde "s&iacute;", y cuando est&eacute;s en la
- ventana de "Boot manager selection" aseg&uacute;rate de seleccionar
- "Boot Manager". Esto reescribir&aacute; el boot manager en el disco.
- Ahora, sal del programa de instalaci&oacute;n y rearranca el ordenador
- de la manera habitual.
- </itemize>
-
- <sect1>
- <heading>&iquest;Puedo instalar FreeBSD en un disco con sectores err&oacute;neos?</heading>
-
- <p>La gesti&oacute;n de sectores err&oacute;neos por parte de FreeBSD no
- est&aacute; desarrollada todav&iacute;a al 100% y desgraciadamente
- debemos decirte que si tienes discos IDE o ESDI con gran cantidad de
- sectores err&oacute;neos, FreeBSD no es para t&iacute;. De todas maneras,
- te aconsejamos que antes de descartar la instalaci&oacute;n, hagas un
- intento.
-
- <sect1>
- <heading>
- Ocurren cosas extra&ntilde;as cuando arranco con el disco de instalaci&oacute;n
- </heading>
-
- <p>Si observas cosas como que la maquina se "cuelga" o se resetea
- espontaneamente cuando intentas arrancar con el disco de
- instalaci&oacute;n, aqu&iacute; tienes tres preguntas que debes
- responder tu mismo:-
-
- <enum>
- <item>Est&aacute;s usando un disco nuevo, reci&eacute;n formateado y
- libre de errores, o est&aacute;s usando el disco de publicidad que
- ven&iacute;a con la revista que lleva guardada varios meses debajo de
- la cama?
-
- <item>"Bajaste" por ftp la im&aacute;gen del disco en modo binario?...
- (no te preocupes ya que hasta el mejor de nosotros, por lo menos una
- vez, ha bajado un fichero en modo ASCII)
-
- <item>Si est&aacute;s usando uno de esos nuevos sistemas operativos como
- Windows 95 o Windows NT, debes arrancar la m&aacute;quina en modo DOS
- puro, ya que parece ser que los Windows no se llevan bi&eacute;n con los
- programas que escriben directamente sobre los dispositivos hardware,
- como hace el programa de creaci&oacute;n de discos de
- instalaci&oacute;n de FreeBSD.
- </enum>
-
- <p>Han habido informaciones referentes a problemas al bajar el disco
- de instalaci&oacute;n con Netscape, por lo que te recomentados que uses
- un programa diferente como cliente de ftp.
-
- <sect1>
- <heading>Ayuda! No puedo instalar desde una cinta!</heading>
-
- <p>Si estas instalando la version 2.1.7R desde una cinta, debes crear
- esa cinta con un tama&ntilde;o de bloque de tar de 10 (5120 bytes). El
- tama&ntilde;o por defecto de los bloques tar es de 20 (10240 bytes), y las
- cintas creadas con este tama&ntilde;o por defecto no pueden ser usadas
- para instalar FreeBSD 2.1.7R; con estas cintas tendr&aacute;s un error
- referente a un tama&ntilde;o de registro demasiado grande.
-
- <sect1>
- <heading>
- Conexi&oacute;n de dos m&aacute;quinas FreeBSD v&iacute;a puerto paralelo (PLIP)
- </heading>
-
- <p>Coge un cable de laplink y asegurate que ambos ordenadores tienen un
- kernel que soporta el puerto paralelo.
-
- <verb>
- $ dmesg | grep lp
- lpt0 at 0x378-0x37f irq 7 on isa
- lpt0: Interrupt-driven port
- lp0: TCP/IP capable interface
- </verb>
-
- <p>Conecta el cable en los dos puertos paralelos.
-
- <p>Configura los par&aacute;metros de red para el interfaz lp0 (como
- root) en ambas m&aacute;quinas. Por ejemplo, si quieres conectar la
- m&aacute;quina max y moritz:
-
- <verb>
- max <-----> moritz
-Direccion IP 10.0.0.1 10.0.0.2
- </verb>
-
- En el arranque de max
- <verb>
- # ifconfig lp0 10.0.0.1 10.0.0.2
- </verb>
-
-En el arranque de moritz
-
- <verb>
- # ifconfig lp0 10.0.0.2 10.0.0.1
- </verb>
-
- <p>Esto es todo!!. Por favor, lee los man de lp(4) y lpt(4).
-
- <p>Tambi&eacute;n deber&iacute;as a&ntilde;adir las m&aacute;quinas en el
- fichero /etc/hosts:
-
- <verb>
- 127.0.0.1 localhost.my.domain localhost
- 10.0.0.1 max.my.domain max
- 10.0.0.2 moritz.my.domain moritz
- </verb>
-
- <P>Para asegurar que funciona haz:
-
- en max:
-
-<verb>
-$ ifconfig lp0
-lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
- inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
-</verb>
-
-<verb>
-$ netstat -r
-Routing tables
-
-Internet:
-Destination Gateway Flags Refs Use Netif Expire
-moritz max UH 4 127592 lp0
-</verb>
-
-<verb>
-$ ping -c 4 moritz
-PING moritz (10.0.0.2): 56 data bytes
-64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
-64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
-64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
-64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
-
---- moritz ping statistics ---
-4 packets transmitted, 4 packets received, 0% packet loss
-round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
-</verb>
-
- <sect1>
- <heading>
- &iquest;Puedo instalar FreeBSD en mi port&aacute;til sobre PLIP (Parallel Line IP)?
- </heading>
-
- <p>Conecta los dos ordenadores usando Laplink mediante el puerto
- paralelo y usa las siguientes caracter&iacute;sticas:
-
- <verb>
- +----------------------------------------+
- |A-name A-End B-End Descr. Port/Bit |
- +----------------------------------------+
- |DATA0 2 15 Data 0/0x01 |
- |-ERROR 15 2 1/0x08 |
- +----------------------------------------+
- |DATA1 3 13 Data 0/0x02 |
- |+SLCT 13 3 1/0x10 |
- +----------------------------------------+
- |DATA2 4 12 Data 0/0x04 |
- |+PE 12 4 1/0x20 |
- +----------------------------------------+
- |DATA3 5 10 Strobe 0/0x08 |
- |-ACK 10 5 1/0x40 |
- +----------------------------------------+
- |DATA4 6 11 Data 0/0x10 |
- |BUSY 11 6 1/0x80 |
- +----------------------------------------+
- |GND 18-25 18-25 GND - |
- +----------------------------------------+
- </verb>
-
- <p>Mira tambi&eacute;n <ref id="pao" name="esta nota"> en la
- p&aacute;gina de inform&aacute;tica m&oacute;vil.
-
- <sect1>
- <heading>
- &iquest;Que geometr&iacute;a debo usar para mis discos?<label id="geometry">
- </heading>
-
- <p>(Por geometr&iacute;a de un disco, entendemos el numero de cilindros,
- cabezales y sectores por pista en el disco - de ahora en adelante
- nos referiremos por conveniencia a estos par&aacute;metros como C/H/S.
- As&iacute; es como trabaja la BIOS de los PC's para gestionar la
- lectura/escritura.
-
- <p>Por alguna raz&oacute;n, esto parece crear mucha confusi&oacute;n.
- Ante todo, la geometr&iacute;a <tt /f&iacute;sica/ de un disco SCSI es
- totalmente irrelevante ya que FreeBSD trabaja en t&eacute;rminos de
- bloques de disco. Con discos IDE, FreeBSD trabaja en t&eacute;rminos de
- C/H/S, pero todos los discos modernos convierten estos datos en
- referencias internas de bloques.
-
- <p>Para discos SCSI, la geometr&iacute;a a usar depende de si tenemos
- activado en la controladora el soporte de translaci&oacute;n (comunmente
- conocido como "soporte para discos mayores de &gt;1GB" o algo
- similar). Si esta opci&oacute;n est&aacute; desactivada, entonces usa
- N cilindros, 64 cabezales y 32 sectores por pista, donde N es la
- capacidad del disco en MB. Por ejemplo, para un disco de 2GB, los
- par&aacute;metros correctos ser&iacute;an 2048 cilindros, 64 cabezales y
- 32 sectores.
-
- <p>Si el soporte de translaci&oacute;n est&aacute; activado y la
- capacidad del disco es mayor de 1GB, usa M cilindros, 63 cabezales
- (*no* 64), y 255 sectores, donde M es la capacidad del disco en MB
- dividida por 7.844238. Para nuestro ejemplo de un disco de 2GB, los
- par&aacute;metros ser&iacute;an 261 cilindros, 62 cabezales y 255
- sectores.
-
- <p>Si no est&aacute;s seguro sobre los par&aacute;metros a usar, o
- FreeBSD falla al detectar la geometr&iacute;a correcta del disco durante
- la instalaci&oacute;n, el m&eacute;todo mas simple para solucionar este
- problema es crear una peque&ntilde;a partici&oacute;n DOS en el disco.
- Entonces, la geometr&iacute;a deber&iacute;a ser detectada correctamente
- (y siempre puedes borrar esa partici&oacute;n desde el "editor de
- particiones" si no quieres mantenerla).
-
- <p>Alternativamente, existe una utilidad de libre distribuci&oacute;n
- incluida en FreeBSD llamada <tt/pfdisk.exe/ (situada en el directorio
- <tt>tools</tt> del cd-rom de distribuci&oacute;n o en cualquiera de los
- servidores ftp) que nos dice la geometr&iacute;a del disco usada por el
- sistema operativo DOS. Lo &uacute;nico que tenemos que hacer es introducir
- los datos obtenidos en el editor de particiones de FreeBSD.
-
- <sect1>
- <heading>&iquest;Existe alguna restricci&oacute;n en como dividir el disco?</heading>
-
- <p>Si. Debes asegurarte de que la partici&oacute;n raiz esta por debajo
- del cilindro 1024, para que la BIOS pueda arrancar el kernel desde ella.
- (Esta es una limitaci&oacute;n de las BIOS de PC's, no de FreeBSD).
-
- <p>Para discos SCSI, esto implica que la partici&oacute;n raiz debe estar
- instalada en los primeros 1024MB (o en los primeros 4096MB si la
- translaci&oacute;n extendida esta activada). Para discos IDE, la
- partici&oacute;n raiz debe estar en los primeros 504MB.
-
- <sect1>
- <heading>
- &iquest;Qu&eacute; hay sobre los "disk managers"?
- </heading>
-
- <p>FreeBSD reconoce el disk manager Ontrack. Otros disk managers no
- son soportados.
-
- <p>Si quieres usar el disco solo con FreeBSD no necesitas el
- disk manager. Solo configura el disco para el espacio m&aacute;ximo que
- pueda manejar la BIOS (usualmente 504MB), y FreeBSD se encargar&aacute;
- de averiguar cuanto espacio tienes realmente. Si est&aacute;s usando
- un disco antiguo con controladora MFM, necesitar&aacute;s decirle
- expl&iacute;citamente a FreeBSD cuantos cilindros puede usar.
-
- <p>Si quieres usar el disco con FreeBSD y otro sistema operativo,
- todav&iacute;a puedes hacerlo sin necesitar un disk manager; solo
- asegurate que la partici&oacute;n raiz de FreeBSD y la partici&oacute;n
- de arranque del otro sistema operativo est&aacute;n en los primeros 1024
- cilindros. Si eres cuidadoso, una partici&oacute;n raiz de 20MB
- deber&iacute;a ser suficiente.
-
- <sect1>
- <heading>
- Cuando arranco FreeBSD obtengo ``Missing Operating System''
- <label id="missing_os">
- </heading>
-
- <p>Esto es un cl&aacute;sico conflicto entre FreeBSD y DOS u otro sistema
- operativo sobre sus ideas de <ref id="geometry" name="geometr&iacute;a.">.
- Tendr&aacute;s que reinstalar FreeBSD, pero teniendo en cuenta la
- informaci&oacute;n que te damos m&aacute;s arriba sobre este tema.
-
- <sect1>
- <heading>No puedo pasar del prompt`F?'.</heading>
-
- <p>Este es otro problema descrito en el parrafo anterior. La
- geometr&iacute;a de tu BIOS y los datos de configuraci&oacute;n de
- FreeBSD no coinciden. Si tu controladora o BIOS soporta la
- translaci&oacute;n de cilindros (tambi&eacute;n conocido como "soporte
- para discos de m&aacute;s de 1GB"), intenta activar/desactivar esta
- opci&oacute;n y reinstala FreeBSD.
-
- <sect1>
- <heading>
- Tengo &gt;16MB de RAM. &iquest;Puede causar esto problemas?<label id="bigram">
- </heading>
-
- <p>Aparte del rendimiento, no. FreeBSD 2.X tiene buffers que permiten
- al "bus mastering controller" acceder a mas de 16MB. (Esto s&oacute;lo es
- aplicable si est&aacute;s usando dispositivos ISA).
-
- <p>Tambi&eacute;n mira la secci&oacute;n <ref id="reallybigram"
- name="maqu&iacute;nas con &gt;64M"> si tienes esta cantidad de memoria o
- si usas m&aacute;quinas Compaq u otra BIOS que no da correctamente la
- cantidad de memoria disponible.
-
- <sect1>
- <heading>&iquest;Necesito instalar las fuentes completas?</heading>
-
- <p>En general, no. De todas maneras, te recomendamos que instales,
- por lo menos, el kit de fuentes <tt/base/, el cual incluye muchos de
- de los ficheros aqu&iacute; mencionados, y el kit <tt/sys/, que incluye el
- c&oacute;digo fuente del kernel. No hay nada en el sistema que requiera el
- c&oacute;digo fuente para funcionar, a excepci&oacute;n del programa de
- configuraci&oacute;n de kernel
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?config"
- name="config">. Con la excepci&oacute;n de las fuentes del kernel, nuestra
- estructura esta dise&ntilde;ada para que puedas montar una unidad en solo
- lectura via NFS en la que exista el c&oacute;digo fuente, y aun
- as&iacute;, ser capaz de compilar los nuevos binarios. (Debido a las
- restriciones de los fuentes del kernel, recomendamos que no montes estos
- en <tt>/usr/src</tt> directamente, sino en cualquier otra parte del disco
- con los links simb&oacute;licos apropiados para duplicar la estructura
- principal del &aacute;rbol de directorios original),
-
- <p>Teniendo los fuentes on-line y sabiendo como crear un sistema con
- ellas (compilar), te haremos mucho mas f&aacute;cil la
- actualizaci&oacute;n a futuras versiones de FreeBSD.
-
- <p>Actualmente, para seleccionar una parte del c&oacute;digo fuente, usa
- la opci&oacute;n Custom del men&uacute; cuando est&aacute;s en el
- men&uacute; Distributions de la herramienta de instalaci&oacute;n. El
- script <tt>src/install.sh</tt> instalar&aacute; solo partes de la
- distribuci&oacute;n de fuentes dependiendo de los par&aacute;metros
- (argumentos) que se le pasen.
-
- <sect1>
- <heading>&iquest;Necesito crear un nuevo kernel?</heading>
-
- <p>La creaci&oacute;n de un nuevo kernel era, originariamente, un paso
- requerido en la instalaci&oacute;n de FreeBSD, pero en las versiones
- m&aacute;s recientes nos hemos beneficiado de la introducci&oacute;n de
- una herramienta de configuraci&oacute;n de kernel mucho m&aacute;s
- amigable. Cuando en el prompt de arranque de FreeBSD (boot:), usamos el
- par&aacute;metro "-c", llegamos a una pantalla de configuraci&oacute;n
- visual la cual permite configurar las opciones del kernel para la
- mayor&iacute;a de tarjetas ISA.
-
- <p>Todav&iacute;a es recomendable la creaci&oacute;n de un nuevo kernel
- conteniendo solo los drivers que nos sean necesarios para ahorrar un
- poco de RAM, pero no es estrictamente necesario para la mayor&iacute;a
- de sistemas.
-
- <sect1>
- <heading>Vivo fuera de USA. &iquest;Puedo usar la encriptaci&oacute;n DES?</heading>
-
- <p>Si no es absolutamente necesario que uses la encriptaci&oacute;n DES,
- puedes usar la encriptaci&oacute;n por defecto de FreeBSD para una
- <bf/mejor/ seguridad, y sin restricciones de importaci&oacute;n. La
- encriptaci&oacute;n por defecto de los passwords en FreeBSD est&aacute;
- basada en <bf/MD5/, y es necesario un mayor uso intensivo de CPU
- con programas de descubrimiento de passwords que en DES. La &uacute;nica
- raz&oacute;n para no usar hoy en d&iacute;a la encriptaci&oacute;n
- <bf/MD5/ ser&iacute;a usar un sistema de passwords compartidos entre
- sistemas FreeBSD y no FreeBSD.
-
- <p>Desde que el algoritmo de encriptaci&oacute;n DES no puede ser
- legalmente exportado fuera de USA, los usuarios externos a USA
- deber&iacute;an NO bajar este software desde los servidores FTP situados
- en USA.
-
- <p>Existe una alternativa para las librer&iacute;as de encriptaci&oacute;n
- basadas en el c&oacute;digo escrito en Australia por David Burren. Este
- c&oacute;digo est&aacute; disponible en algunos mirrors de FreeBSD fuera
- de USA. Las fuentes de las librer&iacute;as de encriptaci&oacute;n, y los
- binarios de los programas que las usan pueden encntrase en los siguientes
- servidores FTP:
-
- <descrip>
- <tag/South Africa/
- <tt>ftp://ftp.internat.FreeBSD.org/pub/FreeBSD</tt><newline>
- <tt>ftp://storm.sea.uct.ac.za/pub/FreeBSD</tt>
-
- <tag/Brazil/
- <tt>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</tt>
-
- <tag/Finland/
- <tt>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</tt>
- </descrip>
-
- <p>Los usuarios de fuera de los USA, no deben bajarse ning&uacute;n
- software de encriptaci&oacute;n de servidores situados en USA, ya que de
- no seguir esta norma, los responsables de esos servidores podr&iacute;an
- verse envueltos en importantes problemas legales.
-
- <p>Una distribuci&oacute;n no americana de Kerberos est&aacute; siendo
- desarrollada y las versiones actuales pueden obtenerse v&iacute;a ftp
- an&oacute;nimo en <tt>braae.ru.ac.za</tt>.
-
- <p>Existe tambi&eacute;n una <ref id="mailing"
- name="lista de distribuci&oacute;n"> para la discusi&oacute;n de software
- de encriptaci&oacute;n externo a USA. Para m&aacute;s informaci&oacute;n
- env&iacute;a un email con una simplre l&iacute;nea diciendo "<tt/help/
- en el cuerpo del mensaje a:
-
- <tt>&lt;majordomo@braae.ru.ac.za&gt;</tt>.
-
- <sect1>
- <heading>El "boot disc" arranca pero se cuelga en la pantalla "Probing Devices..."</heading>
-
- <p>Si tienes un ZIP ide o un JAZZ instalado, desinstalalo e intentalo
- de nuevo. El disco de arranque puede haberse confundido con los discos.
- Una vez el sistema est&eacute; instalado, puedes volver a
- instalar/conectar los dispositivos. Esperamos que esto sea fijado en las
- pr&oacute;ximas releases.
-
- <sect1>
- <heading>Aparece el siguiente error "panic: cant mount root" al
- reiniciar el ordenador despu&eacute;s de la instalaci&oacute;n</heading>
-
- <p>Este error proviene de la confusi&oacute;n entre los bloques de
- arranque y lo que ve el kernel en los discos. El error se suele
- manifestar en sistemas con dos discos IDE, con los discos duros
- dispuestos como master o "single" en controladoras diferentes, estando
- FreeBSD instalado en la controladora IDE secundaria. Los bloques de
- arranque piensan que el sistema est&aacute; instalado en wd1 (el segundo
- disco en la BIOS) mientras el kernel asigna el primer disco de la
- controladora secundaria wd2. Despu&eacute;s de la detecci&oacute;n de
- dispositivos, el kernel intenta montar lo que los bloques de arranque
- piensan que es el disco de arranque, wd1, cuando realmente es el wd2, y
- falla.
-
- <p>Para solucionar el problema, haz una de las siguientes cosas:
-
- <enum>
- <item>En el prompt de arranque (boot:), pon
- <tt>1:wd(2,a)kernel</tt> y presiona Enter. Si el sistema arranca,
- ejecuta el comando:
-<verb>
-echo "1:wd(2,a)kernel" > /boot.config
-</verb>
- para actualizar la cadena de arranque por defecto.
- <item>Mueve el disco de FreeBSD a la controladora IDE primaria para
- que los discos sean consecutivos.
- <item><url url="../../handbook/kernelconfig.html"
- name="Crea un nuevo kernel,"> modifica las l&iacute;neas de
- configuraci&oacute;n de wd de la siguiente manera:
-<verb>
-controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
-disk wd0 at wdc0 drive 0
-# disk wd1 at wdc0 drive 1 # comment out this line
-
-controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
-disk wd1 at wdc1 drive 0 # change from wd2 to wd1
-disk wd2 at wdc1 drive 1 # change from wd3 to wd2
-</verb>
- Instala el nuevo kernel:
- Si moviste los discos y quieres recuperar la configuraci&oacute;n
- previa, reemplaza los discos en la configuraci&oacute;n deseada y
- rearranca el sistema. Tu sistema deber&iacute;a arrancar sin problemas.
- </enum>
-
- <sect1>
- <heading>&iquest;Cu&aacute;l es el l&iacute;mite de memoria?.</heading>
-
- <p>Para memoria, el l&iacute;mite (te&oacute;rico) es de 4 gigabytes. Un
- gigabyte ha sido comprobado y funciona sin problemas: generalmente no se
- pueden comprar equipos i386 que soporten m&aacute;s cantidad de memoria.
-
- <sect1>
- <heading>&iquest;Cu&aacute;l es el l&iacute;mite del sistema de ficheros ffs?</heading>
-
- <p>Para sistemas de ficheros ffs, el m&aacute;ximo te&oacute;rico
- est&aacute; en 8 terabytes (bloques de 2G), o 16TB para el tama&ntilde;o
- de bloque por defecto de 8K. En la pr&aacute;ctica hay un l&iacute;mite
- por soft de 1 terabyte, pero con peque&aacute;as modificaciones es
- posible (y existen) sistemas de ficheros de 4 terabytes.
-
- <p>El tama&ntilde;o m&aacute;ximo de un ffs simple es aproximadamente de
- bloques de 1G (4TB) y el tama&ntilde;o del bloque es de 4K.
-
- <verb>
- maxfilesize
- ----------------------------------
- 2.2.7 3.0
-fs block size -stable -current works should-work
-------------- ------- -------- ----- -----------
-4K 4T-1 4T-1 4T-1 4+T
-8K 32+G 8T-1 32+G 16T-1
-16K 128+G 16T-1 128+G 32T-1
-32K 512+G 32T-1 512+G 64T-1
-64K 2048+G 64T-1 2048+G 128T-1
- </verb>
-
- <p>Cuando el tama&ntilde;o del bloque del sistema de ficheros es de 4K,
- los bloques triples funcionan y todo deber&iacute;a estar limitado por el
- n&uacute;mero m&aacute;ximo de bloques que puede ser representado usando
- los bloques triples indirectos (aproximadamente 1K^3 + 1K^2 + 1K), pero
- todo est&aacute; limitado por un (mal) l&iacute;mite de 1G-1 en el
- n&uacute;mero de bloques. El l&iacute;mite en el n&uacute;mero de bloques
- deber&iacute;a ser de 2G-1, pero estos n&uacute;meros de bloque son
- inalcancables cuando los bloques del sistema de ficheros son de 4K.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puede poner ficheros de 1TB en un disquete?</heading>
-
- <p>El tama&ntilde;o maximo de un fichero no depende directamente del
- tama&ntilde;o m&aacute;ximo del disco. El tama&ntilde;o m&aacute;ximo
- del disco es de 1TB. Es una ventaja que el tama&ntilde;o del fichero
- pueda ser mayor que el tama&ntilde;o del disco.
-
- <p>El siguiente ejemplo crea un fichero con un tama&ntilde;o de 1TB usando
- 32K de espacio de disco (3 bloques indirectos y 1 bloque de datos) en
- una peque&ntilde;a partici&oacute;n raiz.
-
-<verb>
-ttyv0:bde@alphplex:/tmp/q> cat foo
-df .
-dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
-ls -l z
-du z
-df .
-ttyv0:bde@alphplex:/tmp/q> sh foo
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/sd0a 64479 27702 31619 47% /
-1+0 records in
-1+0 records out
-1 bytes transferred in 0.000187 secs (5346 bytes/sec)
--rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
-32 z
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/sd0a 64479 27734 31587 47% /
-ttyv0:bde@alphplex:/tmp/q> exit
-</verb>
-
-<p>Bruce Evans, September 1998
-
- <sect1>
- <heading>He compilado un nuevo kernel y al arrancar aparece el error
- "archsw.readin.failed".</heading>
-
- <p>Puedes arrancar especificando el kernel directamente en el segundo
- estado del boot, pulsando cualquier tecla cuando veas el
- s&iacute;mbolo | justo antes de que se cargue el loader. M&aacute;s
- espec&iacute;ficamente, has actualizado los fuentes para tu kernel,
- y lo has creado y actualizado a partir de ellos <em>s&iacute;n hacer
- un "make world"</em>. As&iacute; no funciona. Haz un "make world".
-
-</sect>
diff --git a/es_ES.ISO8859-1/FAQ/kernelconfig.sgml b/es_ES.ISO8859-1/FAQ/kernelconfig.sgml
deleted file mode 100644
index 9369078c03..0000000000
--- a/es_ES.ISO8859-1/FAQ/kernelconfig.sgml
+++ /dev/null
@@ -1,156 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Configuraci&oacute;n del Kernel<label id="kernelconfig"></heading>
-
- <sect1>
- <heading>Me gustar&iacute;a personalizar mi kernel. &iquest;Es dif&iacute;cil?<label id="make-kernel"></heading>
-
- <p>No!, primero, necesitas la distribuci&oacute;n completa de fuentes o,
- por lo menos, la distribuci&oacute;n de fuentes del kernel. De esta manera
- tienes los fuentes necesarios para crearte un nuevo kernel. Al
- contrario que muchos Unix comerciales, nosotros tenemos la pol&iacute;tica
- de <bf/NO/ vender nuestro kernel en formato binario.
-
- <p>La instalaci&oacute;n de los fuentes ocupa un poco m&aacute;s de
- espacio, pero te permite consultar los fuentes del kernel en caso de
- dificultad o entender que est&aacute; ocurriendo realmente en la
- ejecuci&oacute;n del sistema.
-
- <p>Una vez tienes instalada la distribuci&oacute;n completa de fuentes, o
- por lo menos la del kernel, haz lo siguiente como root:
-
- <enum>
- <item> <tt>cd /usr/src/sys/i386/conf</tt>
- <item> <tt/cp GENERIC MYKERNEL/
- <item> <tt/vi MYKERNEL/
- <item> <tt/config MYKERNEL/
- <item> <tt>cd ../../compile/MYKERNEL</tt>
- <item> <tt/make depend/
- <item> <tt/make all/
- <item> <tt/make install/
- <item> <tt/reboot/
- </enum>
-
- <p>El paso 2 no es necesario si todav&iacute;a tienes un fichero de
- configuraci&oacute;n del kernel de una release anterior de FreeBSD
- 2.X. - simplemente, copia el fichero antiguo y exam&iacute;nalo
- cuidadosamente para asegurar que no haya cambiado la sintaxis
- da alg&uacute;n driver, o haya alguno anticuado.
-
- <p>Un buen fichero de configuraci&oacute;n para consultar es <tt/LINT/,
- el cual contiene ejemplos documentados para todas las posibles
- opciones del kernel. El fichero de configuraci&oacute;n <tt/GENERIC/ se
- usa para crear el kernel "por defacto" que es el que estar&aacute;s
- usando si no has creado ninguno nuevo.
-
- <p>Si no necesitas hacer ning&uacute;n cambio al fichero <tt/GENERIC/,
- puedes saltar al paso 3, donde personalizas el kernel para tu
- sistema. El paso 8 solo debe ejecutarse si los pasos 6 y 7 se
- han realizado de manera satisfactoria. Esto copiar&aacute; una
- im&aacute;gen del nuevo kernel a <tt>/kernel</tt> y <bf/realizar&aacute;
- una copia del antiguo kernel en/ <tt>/kernel.old</tt>. Es muy importante
- recordar esto por si el nuevo kernel falla en algun momento - puedes
- seleccionar <tt>kernel.old</tt> en el prompt de arranque. Al hacer
- un reboot, por defecto se cargar&aacute; el nuevo kernel.
-
- <p>Si la compilaci&oacute;n en el paso 7 falla por alguna raz&oacute;n, es
- recomendable que empieces desde el paso 4 substituyendo
- <tt/GENERIC/ por <tt/MYKERNEL/. Si puedes generar el kernel
- <tt/GENERIC/, significa que algo en tu fichero de configuraci&oacute;n
- es incorrecto (o has decubierto un bug). Si la compilaci&oacute;n del
- kernel <tt/GENERIC/ falla, posiblemente tengas los fuentes
- corruptos.
-
- <p>Finalmente, si necesitas ver los mensajes originales de arranque
- del sistema para compilar un nuevo kernel, ejecuta el comando
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?dmesg"
- name="dmesg">. Este comando debe imprimir en pantalla todos los
- mensajes producidos por el kernel al arrancar, los cuales te
- pueden servir en la configuraci&oacute;n de tu nuevo kernel.
-
- <p><bf/NOTA/ Recomendamos hacer un historial fechado de los kernel
- que vayas creando, de la manera <tt/kernel.YYMMDD/ una vez est&eacute;n
- funcionando correctamente. De esta manera, si la pr&oacute;xima vez que
- juegues con el kernel algo no funciona, puedes arrancar desde el
- &uacute;ltimo kernel correcto. Esto es especialmente importante si ahora
- est&aacute;s arrancando desde una controladora no soportada por el kernel
- GENERIC (si, experiencia personal).
-
- <sect1>
- <heading>La compilaci&oacute;n del kernel falla por "<tt/&lowbar;hw&lowbar;float/ is missing."</heading>
-
- <p>Dejame adivinar. Has borrado <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?npx(4)" name="npx0">
- de tu fichero de configuraci&oacute;n porque no tienes coprocesador
- matem&aacute;tico, no? Mal hecho :-) El dispositivo <tt/npx0/ es
- <bf/OBLIGATORIO/. Aunque no tengas coprocesador, debes incluir
- el dispositivo <tt/npx0/
-
- <sect1>
- <heading>Conflicto de interrupciones con tarjeta serie multi-port.</heading>
-
- <p>Cuando compilo el kernel con drivers para tarjetas serie
- multipuerto, el sistema me dice que s&oacute;lo el primer puerto es
- testeado y el resto son obviados debido a conflictos de
- interrupci&oacute;n. C&oacute;mo soluciono esto?
-
- <p>El problema en este caso es que FreeBSD tiene c&oacute;digo interno que
- evita caidas del sistema por conflictos de hardware o software. La
- manera de solucionar esto es dejar en blanco la entrada correspondiente
- a la irq en todos los puertos excepto en uno. Aqu&iacute; tienes un
- ejemplo:
-
- <verb>
- #
- # 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
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo activo el soporte para discos QIC-40/80?</heading>
-
- <p>Necesitas "descomentar" la siguiente l&iacute;nea en el fichero
- gen&eacute;rico de configuraci&oacute;n (o a&ntilde;adirla en tu propio
- fichero), a&ntilde;ade un <tt/flags 0x1/ en la l&iacute;nea
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)" name="fdc">
- y recompila.
-
- <verb>
-controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
-disk fd0 at fdc0 drive 0 ^^^^^^^^^
-disk fd1 at fdc0 drive 1
-#tape ft0 at fdc0 drive 2
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- </verb>
-
- <p>A continuaci&oacute;n, crea un nuevo dispositivo llamado
- <tt>/dev/ft0</tt> entrando en el directorio <tt>/dev</tt> y ejecutando
- el comando:
-
- <verb>
- sh ./MAKEDEV ft0
- </verb>
-
- <p>Para el primer dispositivo. <tt/ft1/ para el segundo y as&iacute; para
- todos los dispositivos de este tipo que tengas.
-
- <p>Tendr&aacute;s un dispositivo llamado <tt>/dev/ft0</tt>, al cual puedes
- escribir a trav&eacute;s de un programa especial de manejo llamado
- <tt/ft/ - mira el man en <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ft" name="ft"> para m&aacute;s
- detalles.
-
- <p>Versiones anteriores a la <tt/-current/ ten&iacute;an algunos problemas
- al encontrase con cintas en mal estado; si tienes problemas en los
- que parece que la cinta se rebovina siempre al llegar al mismo
- lugar, intenta utilizar la &uacute;ltima versi&oacute;n del programa
- <tt/ft/ que encontrar&aacute;s en <tt>/usr/src/sbin/ft</tt> en
- <tt/-current/.
-
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/misc.sgml b/es_ES.ISO8859-1/FAQ/misc.sgml
deleted file mode 100644
index 90d9c95dc9..0000000000
--- a/es_ES.ISO8859-1/FAQ/misc.sgml
+++ /dev/null
@@ -1,200 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Preguntas varias<label id="misc"></heading>
-
- <sect1>
- <heading>FreeBSD usa m&aacute;s espacio de swap que Linux. Porqu&eacute;?</heading>
-
- <p>No lo hace. Deber&iacute;as pensar "Porque mi swap parece lleno?". Si
- esto es lo que realmente quer&iacute;as decir, es por que poniendo los
- datos en swap en luar de descartarlos, hace que sea m&aacute;s
- r&aacute;pido recuperarlos que si el paginador tuviese que ir a
- trav&eacute;s del sistema de ficheros y usar bloques sin modificar desde
- un ejecutable.
-
- <p>La cantidad actual de p&aacute;ginas que puedes tener en el core en una
- sola vez no es reducida; las p&aacute;ginas sin usar son desplazadas como
- sea necesario.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; usar (que son) a.out y ELF como formatos ejecutables?</heading>
-
- <p>Para entender por que FreeBSD usa el formato <tt>a.out</tt>, debes
- saber primero un poco sobre los tres formatos dominantes actualmente
- en UNIX:
-
- <itemize>
- <item><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)"
- name="a.out">
-
- <p>El antiguo y cl&aacute;sico formato de objeto. Usa una corta y
- compacta cabecera con un n&uacute;mero m&aacute;gico en el inicio que
- es usado para caracterizar el formato (mira en
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)"
- name="a.out(5)"> para m&aacute;s detalles). Contiene tres segmentos
- cargados: .text, .data y .bss m&aacute;s una tabla de s&iacute;mbolos
- y una tabla de cadenas de car&aacute;cteres.</item>
-
-
- <item><bf>COFF</bf>
- <p>El formato de objeto SVR3. La cabecera comprime una secci&oacute;n de
- tablas, de manera que puedas tener m&aacute;s de una sola
- secci&oacute;n .test, .data y .bss</item>
-
- <item><bf>ELF</bf>
- <p>El sucesor de <tt/COFF/, ofreciendo m&uacute;ltiples secciones y
- valores posibles de 32 o 64 bits. Un problema importante: <tt/ELF/
- fue dise&ntilde;ado con la presunci&oacute;n de que solo
- existir&iacute;a un &uacute;nico ABI por arquitectura de sistema.
- Esta presunci&oacute;n actualmente es incorrecta, incluso en el
- mundo comercial (el cual tiene al menos tres ABIs: SVR4, Solaris y SCO).
-
- <p>FreeBSD intenta solucionar este problema de manera que provee
- de una utilidad para <em>marcar</em> un ejecutable <tt/ELF/ con
- informaci&oacute;n sobre el ABI con el que es compatible. Para m&aacute;s informaci&oacute;n, mira el man de <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?brandelf" name="brandelf">.
- </itemize>
-
- <p>FreeBSD viene del sistema cl&aacute;sico y tradicionalmente ha
- utilizado el formato
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)"
- name="a.out">, una tecnolog&iacute;a probada y testeada a trav&eacute;s
- de muchas generaciones de releases de BSD. Tambi&eacute;n es posible
- construir y ejecutar binarios nativos <tt/ELF/ (y kernels) en sistemas
- FreeBSD. FreeBSD inicialmente se resisti&oacute; al salto de cambiar a
- <tt/ELF/ como su formato por defecto. Porqu&eacute;?, bien, cuando el
- mundo Linux hizo su transici&oacute;n a <tt/ELF/ no era nada f&aacute;cil
- abandonar el formato ejecutable <tt/a.out/ debido a su inflexible
- mecanismo de tablas basadas en librer&iacute;as compartidas. Esto hizo
- muy dif&iacute;cil para los fabricantes y desarrolladores la
- creaci&oacute;n de librer&iacute;as compartidas. A partir del momento en
- el que se ofrecieron una serie de herramientas que ofrec&iacute;an la
- soluci&oacute;n al problema de las librer&iacute;as compartidas, el
- coste de la migraci&oacute;n fue aceptado como necesario y la
- transici&oacute;n se hizo.
-
- <p>En el caso de FreeBSD, el mecanismo de librer&iacute;as compartidas
- esta m&aacute;s basado en el estilo de SunOS, mucho m&aacute;s sencillo
- de usar. De todas maneras, empezando con la version 3.0, FreeBSD
- soportar&aacute; oficialmente binarios <tt/ELF/ como el formato por
- defecto. Aunque pensamos que el formato ejecutable <tt/a.out/ nos ha
- servidor muy bi&eacute;n, la gente de GNU, que hacen las herramientas de
- compilaci&oacute;n que usamos, ha dejado de dar soporte para el formato
- <tt/a.out/. Esto nos ha forzado a mantener dos versiones divergentes del
- compilador y lincador.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; chmod no puede cambiar los permisos de los links?</heading>
-
- <p>Tienes que usar <tt/-H/ o <tt/-L/ junto con la opci&oacute;n <tt/-R/
- para que funcione. Para m&aacute;s informaci&oacute;n, mira la
- p&aacute;gina de <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?chmod" name="chmod"> y de
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?symlink" name="symlink">.
-
- <p><bf/CUIDADO/ la opci&oacute;n <tt/-R/ hace un <tt/chmod/
- <bf/RECURSIVO/. Ten cuidado al especificar directorios o symlinks con
- <tt/chmod/. Si quieres cambiar los permisos de un directorio referenciado
- por un symlink, usa
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?chmod" name="chmod">
- sin ninguna opci&oacute;n y sigue el symlink con una barra <tt>/</tt>. Por
- ejemplo, si <tt/foo/ es un symlink al directorio <tt/bar/, y quieres
- cambiar los permisos de <tt/foo/ /actualmente <tt/bar/), deber&iacute;as
- hacer algo como esto:
-
- <verb>
- chmod 555 foo/
- </verb>
-
- <p>Con la barra, <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?chmod" name="chmod"> seguira
- el symlink, <tt/foo/, para cambiar los permisos del directorio
- <tt/bar/.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; est&aacute;n los nombres de usuario restringidos a 8 caracteres?</heading>
-
- <p>Pensar&aacute;s que es f&aacute;cil y suficiente con cambiar
- <bf/UT_NAMESIZE/ y reconstruir el kernel, y todo volver&aacute; a
- funcionar. Desafortunadamente hay aplicaciones y programas (incluyendo
- herramientas de sistema) que tienen en el propio c&oacute;digo (no
- siempre 8 o 9, pero si 15 o 20) en estructuras, buffers... y
- romper&iacute;a los clientes de NIS de Sun y sin duda existir&iacute;an
- otros problemas interactuando con otros sistemas UNIX.
-
- <p>En FreeBSD 3.0 y superiores, se ha incrementado el n&uacute;mero
- m&aacute;xmimo de car&aacute;cteres a 16 y todas esas utilidades con
- longitud de car&aacute;cteres prefijada han sido encontradas y
- arregladas. El hecho de que este cambio afectase a muchas &aacute;reas
- del sistema es el motivo por el que el cambio no se ha hecho hasta
- la versi&oacute;n 3.0.
-
- <p>Si eres absolutamente cuidadoso y quieres arreglas tu mismo este
- problema en versiones anteriores, edita el fichero
- /usr/include/utmp.h y cambia el par&aacute;metro UT_NAMESIZE a la
- longitud que desees. Tambi&eacute;n debes editar el fichero
- /usr/include/sys/param.h y poner el valor de MAXLOGNAME al mismo que
- UT_NAMESIZE. Finalmente, recompila los fuentes, no te olvides que
- el contenido de /usr/include es actualizado cada vez!. En su lugar,
- cambia los ficheros apropiados en /usr/src/..
-
- <sect1>
- <heading>&iquest;Puedo ejecutar binarios DOS bajo FreeBSD?</heading>
-
- <p>S&iacute;, empezando en la versi&oacute;n 3.0 puedes usar la
- emulaci&oacute;n DOS <tt/rundos/ de BSDI, la cual ha sido integrada y
- mejorada. Env&iacute;a un mail a la
- <url url="mailto:emulation@FreeBSD.org"
- name="Lista de discusi&oacute;n de emulaci&oacute;n en FreeBSD"> si
- est&aacute;s interesado en participar en la evoluci&oacute;n de esta
- caracter&iacute;stica.
-
- <p>Para sistemas pre-3.0 hay una peque&ntilde;a utilidad llamada
- <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^pcemu" name="pcemu">
- en la colecci&oacute;n de puertos que emula un 8088 y suficientes
- servicios de BIOS para ejecutar aplicaciones de modo texto. Requiere el
- sistema de X Window.
-
- <sect1>
- <heading>&iquest;Qu&eacute; es <tt/sup/, y como lo uso?</heading>
-
- <p><htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^sup" name="SUP">
- significa Software Update Protocol, y fue desarrollado por CMU para
- mantener sus &aacute;rboles de desarrollo sincronizados. Nosotros lo
- usabamos para manterner el servidor central sincronizado con otros
- servidores remotos.
-
- <p>SUP no es amigo del ancho de banda, y ha sido retirado. El
- m&eacute;todo actual recomendado para mantener tus fuentes actualizados
- es <url url="../../handbook/synching.html#CVSUP" name="CVSup">
-
- <sect1>
- <heading>&iquest;Existen herramientas de ahorro de energ&iacute;a en FreeBSD?</heading>
-
- <p>FreeBSD usa la instrucci&oacute;n <tt/HLT/ (halt) cuando el sistema
- est&aacute; (idle) para reducir el consumo de energ&iacute;a. Si tienes
- la opci&oacute;n APM (Automatic Power Management) configurado, FreeBSD
- puede poner la cpu en modo de baja energ&iacute;a.
-
- <sect1>
- <heading>&iquest;Qu&eacute; significa "MFC"?</heading>
-
- <p>MFC es un acr&oacute;nimo para "Merges From -CURRENT". Es usado en los
- logs de CVS para indicar que un cambio se ha migrado de la rama CURRENT
- a la rama STABLE.
-
- <sect1>
- <heading>&iquest;Qu&eacute; significa "BSD"?</heading>
-
- <p>Pertenece a un lenguaje secreto que solo sus miembros conoces. No tiene
- traducci&oacute;n literal, pero basta con decir que su traducci&oacute;n
- est&aacute; entre, "Equipo de F&oacute;rmula-1", "Los Pinguinos son un
- bu&eacute;n aperitivo", y "Tenermos mejor sentido del humor que Linux"
- :-)
-
- <p>Seriamente, BSD es un acr&oacute;nimo de "Berkeley Software
- Distribution", el cual es el nombre que el CSRG de Berkeley (Computer
- Systems Research Group) escogi&oacute; para sus distribuciones de Unix.
-
-</sect>
diff --git a/es_ES.ISO8859-1/FAQ/network.sgml b/es_ES.ISO8859-1/FAQ/network.sgml
deleted file mode 100644
index c64630abaf..0000000000
--- a/es_ES.ISO8859-1/FAQ/network.sgml
+++ /dev/null
@@ -1,1167 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Networking<label id="networking"></heading>
-
- <sect1>
- <heading>&iquest;D&oacute;nde puedo encontrar informaci&oacute;n sobre "diskless booting"?</heading>
-
- <p>"Diskless booting" significa que una m&aacute;quina FreeBSD sea
- arrancada sobre una red, y lea los ficheros necesarios de un servidor y no
- desde su disco duro. Para m&aacute;s detalles, por favor, lee la
- secci&oacute;n <url url="../../handbook/diskless.html"
- name="diskless booting del manual">
-
- <sect1>
- <heading>
- &iquest;Puede una m&aacute;quina FreeBSD ser usada como router dedicado?
- </heading>
-
- <p>Los estandards de Internet y las buenas pr&aacute;cticas de
- ingenier&iacute;a nos prohiben proveer el forward de paquetes en la
- distribuci&oacute;n estandard. Aun as&iacute;, puedes activar esta
- opci&oacute;n cambiando la siguiente variable a <tt/YES/ en el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf"
- name="rc.conf">:
-
- <verb>
- gateway_enable=YES # Set to YES if this host will be a gateway
- </verb>
-
- <p>Esta opci&oacute;n pondr&aacute; la variable <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?sysctl" name="sysctl">
- <tt/net.inet.ip.forwarding/ a <tt/1/.
-
- <p>En muchos casos tambi&eacute;n necesitar&aacute;s ejecutar un proceso
- de rutado para indicar la existencia en la red de tu router; FreeBSD
- incluye el daemon estandard de rutado BSD
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?routed" name="routed">
- , aunque en situaciones m&aacute;s complejas quiz&aacute;s quieras usar
- <em/GaTeD/ disponible por ftp en <tt/ftp.gated.Merit.EDU/.
-
- <p>Es nuestro deber advertirte que estando FreeBSD configurado de esta
- manera, no cumple completamente con todos los estandares de routers
- de Internet, pero es suficiente para uso ordinario.
-
- <sect1>
- <heading>&iquest;Puedo conectar mi Win95 con Internet a trav&eacute;s de FreeBSD?</heading>
-
- <p>T&iacute;picamente, la gente que pregunta esto tiene dos pc's en casa,
- uno con FreeBSD y otro con Win95; la idea es usar FreeBSD para conectar
- a Internet y luego ser capaz de acceder a Internet desde el
- ordenador con Windows 95. Este es realmente un caso especial de la
- pregunta anterior.
-
- <p>Hay un &uacute;til documento disponible que explica como configurar
- FreeBSD como un
- <url url="http://www.ssimicro.com/~jeremyc/ppp.html"
- name="Router PPP">
-
- <p><bf/NOTA:/ Esto requiere, al menos, tener dos direcciones IP
- fijas disponibles, y posiblemente tres o m&aacute;s, dependiendo del
- n&uacute;mero de m&aacute;quinas que quieras conectar. Como alternativa,
- si no tienes una direcci&oacute;n IP fija, puedes usar una de las subredes
- privadas e instalar un proxy como
- <url url="http://squid.nlanr.net/Squid/" name="SQUID">
- y <url url="http://www.tis.com/" name="The TIS firewall toolkit">
- en tu FreeBSD.
-
- <p>Mira tambi&eacute;n la secci&oacute;n <ref id="direct-at" name="natd">.
-
- <sect1>
- <heading>
- &iquest;Por que falla la compilaci&oacute;n del &uacute;ltimo BIND del ISC?
- </heading>
-
- <p>Hay un conflicto entre el fichero <tt/cdefs.h/ incluido en la
- distribuci&oacute;n de BIND y el distribuido con FreeBSD. Solo tienes que
- borrar <tt>compat/include/sys/cdefs.h</tt>.
-
- <sect1>
- <heading>&iquest;Soporta FreeBSD SLIP y PPP?</heading>
-
- <p>S&iacute;. Mira las paginas man de
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?slattach"
- name="slattach">, <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?sliplogin" name="sliplogin">,
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?pppd" name="pppd"> y
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp">.
- <tt/pppd/ y <tt/ppp/ soportan conexiones entrantes y salientes.
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sliplogin"
- name="Sliplogin"> trabaja exclusivamente con conexiones entrantes y
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?slattach"
- name="slattach"> con conexiones salientes.
-
- <p>Estos programas son descritos en las siguientes secciones del
- <url url="../../handbook/index.html" name="manual">:
-
- <itemize>
- <item><url url="../../handbook/slips.html"
- name="Handbook entry on SLIP (server side)">
-
- <item><url url="../../handbook/slipc.html"
- name="Handbook entry on SLIP (client side)">
-
- <item><url url="../../handbook/ppp.html"
- name="Handbook entry on PPP (kernel version)">
-
- <item><url url="../../handbook/ppp-and-slip.html#USERPPP"
- name="Handbook entry on PPP (user-mode version)">
- </itemize>
-
- <p>Si solo tienes acceso a Internet a traves de un "shell
- account", quiz&aacute;s quieras mirar el package <htmlurl
- url="http://www.FreeBSD.org/cgi/ports.cgi?^slirp" name="slirp">.
- Puede darte un (limitado) acceso a servicios como ftp y http.
-
- <sect1>
- <heading>
- &iquest;Soporta FreeBSD NAT o Masquerading?<label id="natd">
- </heading>
-
- <p>Si tienes una red local (una o m&aacute;s m&aacute;quinas), pero solo
- se te ha asignado una &uacute;nica direcci&oacute;n IP desde tu proveedor
- de Internet (o si recibes las direcciones de manera din&aacute;mica), te
- interesa mirar el programa
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?natd" name="natd">.
- <tt/Natd/ te permite conectar una red entera a Internet usando
- solamente una direcci&oacute;n IP.
-
- <p>El programa
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp">
- tiene una funcionalidad similar incluida, a trav&eacute;s del
- par&aacute;metro -alias. La <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?libalias" name="librer&iacute;a
- alias"> es usada en ambos casos.
-
-
- <sect1>
- <heading>
- El ppp no funciona. &iquest;Qu&eacute; estoy haciendo mal?<label id="userppp">
- </heading>
-
- <p>Primero deber&iacute;as leer el <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="man de ppp"> y
- la <url url="../../handbook/ppp-and-slip.html#USERPPP"
- name="secci&oacute;n de PPP del handbook">. Activa los logs con el
- comando
-
- <verb>
- set log Phase Chat Connect Carrier lcp ipcp ccp command
- </verb>
-
- <p>Este comando deber&iacute;a ser tecleado en el prompt del <bf/ppp/ o
- incluirse en el fichero de configuraci&oacute;n <tt>/etc/ppp/ppp.conf</tt>
- (al inicio de la secci&oacute;n <bf>default</bf> es el mejor lugar).
- Asegurate que el fichero
- url="http://www.FreeBSD.org/cgi/man.cgi?syslog.conf"
- name="/etc/syslog.conf"> contiene las siguientes l&iacute;neas:
-
- <verb>
- !ppp
- *.* /var/log/ppp.log
- </verb>
-
- <p>y que el fichero <tt>/var/log/ppp.log</tt> existe. Puedes
- encontrar mucha informaci&oacute;n sobre lo que est&aacute; pasando en las
- conexiones con el fichero de log.
-
- <p>Si tu versi&oacute;n de ppp no entiende el comando "set log"
- deber&iacute;as bajarte la
- <url url="http://www.FreeBSD.org/~brian" name="&uacute;ltima
- versi&oacute;n">. Esta compilar&aacute; sin problemas en FreeBSD 2.1.5 y
- superiores.
-
- <sect2>
- <heading>PPP no quiere marcar en modo -auto</heading>
-
- <p>Primero, aseg&uacute;rate de tener una ruta por defecto. Ejecutando
- el comando url="http://www.FreeBSD.org/cgi/man.cgi?netstat">
- name="netstat -rn"> deber&iacute;as ver dos entradas como estas:
-
- <verb>
-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
- </verb>
-
- <p>Esto es asumiendo que hayas usado las direcciones del manual,
- la p&aacute;gina man o del fichero de ejemplo ppp.conf.sample. Si no
- tienes una ruta por defecto, puede ser por que est&eacute;s usando una
- versi&oacute;n antigua de <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp"> que no
- entiende la palabra <tt/HISADDR/ en el fichero ppp.conf. Si
- tu versi&oacute;n de <bf/ppp/ es de antes de FreeBSD 2.2.5, cambia la
- l&iacute;nea
-
- <verb>
- add 0 0 HISADDR
- </verb>
-
- <p>por otra diciendo
-
- <verb>
- add 0 0 10.0.0.2
- </verb>
-
- <p>Otra raz&oacute;n para la inexistencia de la ruta por defecto es que
- sin darte cuenta hayas creado un default router en el fichero
- /etc/rc.conf (anteriormente llamado <tt>/etc/sysconfig</tt>) y
- hayas omitido la l&iacute;nea
-
- <verb>
- delete ALL
- </verb>
-
- <p>en el fichero <tt>ppp.conf</tt>. Si es este el caso vuelve a la
- secci&oacute;n
- <url url="../../handbook/ppp-and-slip.html#USERPPP-FINAL.html"
- name="configuraci&oacute;n final del sistema"> en el handbook.
-
- <sect2>
- <heading>&iquest;Qu&eacute; significa "No route to host"?</heading>
-
- <p>Este error se debe normalmente a la falta de la secci&oacute;n
-
- <verb>
- MYADDR:
- delete ALL
- add 0 0 HISADDR
- </verb>
-
- <p>en el fichero <tt>/etc/ppp/ppp.linkup</tt>. Esto es solo
- necesario si tienes una direccion IP din&aacute;mica o no sabes la
- direcci&oacute;n de tu gateway. Si est&aacute;s usando el modo
- interactivo, puedes teclear lo siguiente despues de entrar en
- <tt/packet mode/:
-
- <verb>
- delete ALL
- add 0 0 HISADDR
- </verb>
-
- <p>P&aacute;sate por la secci&oacute;n
- <url url="../../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP"
- name="PPP y direcciones IP din&aacute;micas"> del handbook para
- m&aacute;s informaci&oacute;n.
-
- <sect2>
- <heading>Mi conexi&oacute;n se corta pasados 3 minutos</heading>
-
- <p>El timeout de ppp por defecto es de 3 minutos. Se puede ajustar
- con la l&iacute;nea:
-
- <verb>
- set timeout NNN
- </verb>
-
- <p>Donde <bf/NNN/ es el n&uacute;mero de segundos de inactividad antes
- de cerrar la conexi&oacute;n. Si <bf/NNN/ es 0, la conexi&oacute;n no
- se cerrar&aacute; nunca por timeout. Es posible poner este comando en
- el fichero <tt>ppp.conf</tt>, o teclearla en el prompt del modo
- interactivo.
- Tambi&eacute;n es posible ajustarla en cualquier momento mientras la
- conexi&oacute;n est&eacute; activa conectando al socket del servidor
- <bf/ppp/ usando
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?telnet" name="telnet">
- o <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?pppctl"
- name="pppctl">. Leete el man de
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp">
- para m&aacute;s detalles.
-
- <sect2>
- <heading>Mi conexi&oacute;n se corta en situaciones de carga</heading>
-
- <p>Si tienes la opci&oacute;n Link Quality Reporting (LQR) configurada
- es posible que demasiados paquetes LQR se pierdan entre tu
- m&aacute;quina y el remoto. PPP deduce que la l&iacute;nea es mala y
- corta la conexi&oacute;n. En versiones anteriores a la 2.2.5 de
- FreeBSD, LQR estaba activado por defecto. Ahora est&aacute; desactivado
- por defecto. LQR puede ser activado con la l&iacute;nea
-
- <verb>
- disable lqr
- </verb>
-
- <sect2>
- <heading>Mi conexi&oacute;n se corta en periodos aleatorios</heading>
-
- <p>Algunas veces, en l&iacute;neas telef&oacute;nicas de baja calidad
- o con mucho ruido, o l&iacute;neas con la opci&oacute;n de llamada en
- espera activada, el m&oacute;dem corta la conexi&oacute;n por que
- piensa (err&oacute;neamente) que ha perdido la portadora.
-
- <p>Hay una opci&oacute;n en muchos modems para determiar la tolerancia
- a p&eacute;rdidas temporales de portadora. En un USR Sportster por
- ejemplo, esta es medida por el registro S10 en d&eacute;cimas de
- segundo. Para hacer que tu m&oacute;dem sea m&aacute;s resistente,
- puedes a&ntilde;adir la siguiente secuencia "send-expect" a la cadena
- de llamada:
-
- <verb>
- set dial "...... ATS10=10 OK ......"
- </verb>
-
- <p>Mira en el manual de tu m&oacute;dem para m&aacute;s detalles.
-
- <sect2>
- <heading>No ocurre nada despu&eacute;s del mensaje Login OK</heading>
-
- <p>En versiones anteriores a FreeBSD 2.2.5, una vez estaba la
- conexi&oacute;n establecida,
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp"
- name="ppp"> espera a que el remoto inicie la negociaci&oacute;n LCP
- (Line Control Protocol). Muchos proveedores de Internet no
- iniciar&aacute;n la negociaci&oacute;n esperando que sea el cliente el
- que lo haga. Para forzar al <bf/ppp/ a iniciar el LCP, usa la
- siguiente l&iacute;nea:
-
- <verb>
- set openmode active
- </verb>
-
- <p><bf/Nota:/ Normalmente no hay problemas si las dos partes
- inician la negocioacion LCP, ya que el modo abierto (open mode)
- est&aacute; activo por defecto. De todas maneras, la siguiente
- secci&oacute;n explica cuando pueden haber problemas.
-
- <sect2>
- <heading>Sigo teniendo errores sobre el par&aacute;metro magic</heading>
-
- <p>Ocasionalmente, justo despu&eacute;s de la conexi&oacute;n, puedes
- ver mensajes en el log referentes a "magic number is the same".
- Algunas veces, estos mensajes son inofensivos, y otras veces
- uno de los dos extremos finaliza la conexi&oacute;n. Algunas
- implementaciones de ppp no pueden solucionar este problema, y,
- aunque parezca que la conexi&oacute;n est&aacute; establecida,
- ver&aacute;s repetidas peticiones y aceptaciones de
- configuraci&oacute;n en el fichero de log hasta que una de las dos
- partes cierra la conexi&oacute;n.
-
- <p>Esto ocurre normalmente en servidores con disco lentos que
- tienen problemas para gestionar eficientemente los puertos
- serie. Tambi&eacute;n existen informes de problemas en conexiones
- mediante slip. La raz&oacute;n es que en el tiempo que tarda el
- servidor en salir del getty y ejecutar el ppp, el cliente
- manda los paquetes de inicio LCP. Al estar el ECHO todav&iacute;a
- activo en el puerto del servidor, el cliente ppp lo &uacute;nico que
- ve son sus propios paquetes "reflejados" por el servidor.
-
- <p>Una parte de la negociaci&oacute;n LCP es establecer un n&uacute;mero
- m&aacute;gico para cada una de los dos extremos de las conexiones para
- que los "reflejos" puedan ser detectados. El protocolo dice que
- cuando el remoto intenta negociar el mismo "magic number", se debe
- enviar un NAK para seleccionar un nuevo "magic number". Durante el
- periodo de tiempo que el servidor tiene el ECHO activado en el
- puerto, el cliente ppp env&iacute;a paquetes LCP, ve que el mismo
- "magic" vuelve en el paquete reflejado y lo da como no v&aacute;lido
- (envia NAK).
- Este todav&iacute;a ve el paquete reflajado con NAK (lo que significa
- que el ppp debe cambiar su "magic"). Esto produce un enorme
- n&uacute;mero de cambios de "magic number" que son introducidos en el
- buffer tty del servidor. Tan pronto como el ppp arranca en el servidor,
- es bombardeado con cambios de "magic numbers" e inmediatamente decide
- que ya ha realizado el n&uacute;mero suficiente de negociaciones LCP y
- corta la conexi&oacute;n. Mientras tanto, el cliente, que ya no ve los
- paquetes reflejados, recibe sin problemas la desconexi&oacute;n del
- servidor y tambi&eacute;n cierra la conexi&oacute;n.
-
- <p>Esto puede ser resuelto permitiendo que el remoto inicie la
- negociaci&oacute;n, poniendo la siguiente l&iacute;nea en el fichero
- ppp.conf:
-
- <verb>
- set openmode passive
- </verb>
-
- <p>Esto indica al ppp que espere a que el servidor comience la
- negociaci&oacute;n LCP. Es posible que algunos servidores nunca inicien
- la negociaci&oacute;n. Si este es el caso, puedes hacer algo como:
-
- <verb>
- set openmode active 3
- </verb>
-
- <p>Esto le indica al ppp que sea pasivo durante 3 segundos, y
- despues comience a enviar peticiones LCP. Si el remoto env&iacute;a
- peticiones durante este periodo, ppp responder&aacute; inmediatamente
- sin esperar los 3 segundos establecidos.
-
- <sect2>
- <heading>
- Las negociaciones LCP continuan hasta que se cierra la conexi&oacute;n</heading>
-
- <p>Existe actualmente un problema de implementaci&oacute;n en <bf/ppp/
- en la que no asocia las respuestas LCP, CCP &amp; IPCP con sus
- peticiones originales. Como resultado, si una implementaci&oacute;n
- <bf/ppp/ es mas lenta durante 6 segundos que la remota, la remota
- enviar&aacute; dos peticiones de configuraci&oacute;n LCP adicionales.
- Esto es fatal.
-
- <p>Considera dos implementaciones, <bf/A/ y <bf/B/. <bf/A/ empieza
- a enviar peticiones LCP inmediatamente despu&eacute;s de conectar y
- <bf/B/ tarda 7 segundos en arrancar. Cuando <bf/B/ arranca, <bf/A/ ha
- enviado 3 peticiones LCP. Estamos asumiendo que la l&iacute;nea tiene el
- ECHO desactivado, si no, veriamos los problemas de "magic number"
- descritos en el apartado anterior. <bf/B/ env&iacute;a un REQ, y a
- continuaci&oacute;n env&iacute;a un ACK al primer REQ de <bf/A/. Esto
- resulta en que <bf/A/ entra en modo <bf/OPENED/ y env&iacute;a un ACK
- (el primero) a <bf/B/. Mientras, <bf/B/ devuelve dos ACKs mas en
- respuesta a los dos REQs adicionales enviados por <bf/A/ antes de que
- <bf/B/ arrancase .<bf/B/ recibe el primer ACK de <bf/A/ y entra en modo
- <bf/OPENED/.
- <bf/A/ recibe el segundo ACK de <bf/B/ y vuelve al estado
- <bf/REQ-SENT/, enviando otro (el cuarto) REQ. Entonces recibe el
- tercer ACK y entra en modo <bf/OPENED/. Mientras, <bf/B/ recibe el
- cuarto REQ de <bf/A/, produciendo que vuelva de nuevo al estado
- <bf/ACK-SENT/ y enviando otro (el segundo) REQ y (cuarto) ACK. <bf/A/
- recibe el REQ, entra en modo <bf/REQ-SENT/ y env&iacute;a otro REQ.
- Inmediatamente recibe el siguiente ACK y entra en <bf/OPENED/.
-
- <p>Esto pasa hasta que una de las partes piensa que ya ha realizado
- suficientes reintentos y corta la conexi&oacute;n.
-
- <p>La mejor manera de evitar esto es configurar una de las partes
- de manera <bf/pasiva/ - que es, hacer que una de las partes espere
- a que la otra comience la negociaci&oacute;n. Esto puede realizarse
- con el comando:
-
- <verb>
- set openmode passive
- </verb>
-
- Se debe tener cuidado con esta opci&oacute;n. Tambi&eacute;n se puede
- usar:
-
- <verb>
- set stopped N
- </verb>
-
- para limitar el n&uacute;mero de veces que <bf/ppp/ espera a que el
- remoto comience la negociaci&oacute;n. Alternativamente, puedes user
- el comando:
-
- <verb>
- set openmode active N
- </verb>
-
- donde <bf/N/ es el n&uacute;mero de segundos que espera antes de empezar
- la negociaci&oacute;n. Mira en el manual para m&aacute;s detalles.
-
- <sect2>
- <heading>Ppp se bloquea al conectar</heading>
-
- <p>Antes de la versi&oacute;n 2.2.5 era posible que la conexi&oacute;n
- se corte nada m&aacute;s iniciarse debido a un problema en la
- negociaci&oacute;n de compresi&oacute;n Predictor1. Esto solo pasa si
- las dos partes intentan negociar con diferentes protocolos de control
- de compresi&oacute;n (CCP).
- Este problema ya est&aacute; corregido, pero si est&aacute;s usando
- una versi&oacute;n antigua de <bf/ppp/, el problema puede solucionarse
- con la l&iacute;nea
-
- <verb>
- disable pred1
- </verb>
-
- <sect2>
- <heading>Ppp se bloqua al abrir un shell de test</heading>
-
- <p>Cuando ejecutas el comando <tt/shell/ o <tt/!/, <bf/ppp/ ejecuta
- un shell (o si has pasado argumentos, <bf/ppp/ ejecutar&aacute; esos
- argumentos). Ppp esperar&aacute; a que se complete el comando antes de
- continuar. Si intentas usar la conexi&oacute;n ppp mientras se ejecuta
- el comando, parecer&aacute; que la conexi&oacute;n se ha colgado. Esto
- es por que <bf/ppp/ est&aacute; esperando a que se complete la
- ejecuci&oacute;n del comando.
-
- <p>Si quieres ejecutar comandos como este, usa el comando <tt/!bg/ en
- su lugar. Esto ejecutar&aacute; el comando en background, y ppp
- contin&uacute;a sin problemas con la conexi&oacute;n.
-
- <sect2>
- <heading>Ppp sobre un cable null-modem no funciona</heading>
-
- <p>No hay manera que <bf/ppp/ detecte autom&aacute;ticamente que una
- conexi&oacute;n directa se ha cortado. Es debido a las l&iacute;neas
- que se usan en un cable serie null-modem. Cuando usamos este tipo de
- conexi&oacute;n, LQR deber&iacute;a estar siempre activada con el
- comando
-
- <verb>
- enable lqr
- </verb>
-
- <p>LQR es aceptado por defecto si es negociado por el remoto.
-
- <sect2>
- <heading>&iquest;Por que llama sin motivo el ppp en modo -auto?</heading>
-
- <p>Si <bf/ppp/ llama inesperadamente, debes determinar la causa, y
- poner filtros (dfilters) para prevenir esas llamadas.
-
- <p>Para determinar la causa, usa la siguiente l&iacute;nea:
-
- <verb>
- set log +tcp/ip
- </verb>
-
- <p>Esto guardara todo el tr&aacute;fico que pase a trav&eacute;s de la
- conexi&oacute;n.
- La pr&oacute;xima vez que se realice una llamada no deseada,
- podr&aacute;s ver la causa convenientemente guardada.
-
- <p>Ahora puedes desactivar las llamadas producidas por esa causa.
- Usualmente, este tipo de problemas se debe a consultas de DNS. Para
- prevenir que las consultas de DNS puedan establecer conexiones usa
- la siguiente l&iacute;nea (esto no har&aacute; que los paquetes de DNS
- queden parados cuando la conexi&oacute;n est&aacute; establecida):
-
- <verb>
- set dfilter 1 deny udp src eq 53
- set dfilter 2 deny udp dst eq 53
- set dfilter 3 permit 0/0 0/0
- </verb>
-
- <p>Esto no siempre es aconsejable, ya que puede afectar a la
- capacidad de realizar conexiones bajo demanda - muchos programas
- necesitan hacer una consulta al DNS antes de poder realizar
- cualquier operaci&oacute;n.
-
- <p>En el caso del DNS, deber&iacute;as determinar que es lo que
- est&aacute; intentando realizar esas consultas de DNS. Muchas veces,
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sendmail"
- name="sendmail"> es el culpable. Debes asegurarte configurar el
- sendmail de manera que no realice ninguna consulta al DNS. Mira la
- secci&oacute;n <ref id="ispmail" name="Configuracion de correo"> para
- tener m&aacute;s detalles acerca de como crear una fichero propio de
- configuraci&oacute;n de sendmail. Tambi&eacute;n deber&iacute;as
- a&ntilde;adir la siguiente l&iacute;nea en tu fichero <bf/.mc/:
-
- <verb>
- define(`confDELIVERY_MODE', `d')dnl
- </verb>
-
- <p>Esto hara que sendmail encole todo el correo hasta que no se
- procese la cola (usualmente, sendmail es invocado con
- "-bd -q30m", indicandole que procese la cola cada 30 minutos) o
- hasta que se ejecuta el comando "sendmail -q" (por ejemplo, desde
- el fichero ppp.linup).
-
- <sect2>
- <heading>&iquest;Qu&eacute; significan estos errores CCP?</heading>
-
- <p>Sigo viendo los siguientes errores en el fichero de log:
-
- <verb>
- CCP: CcpSendConfigReq
- CCP: Received Terminate Ack (1) state = Req-Sent (6)
- </verb>
-
- <p>Esto es porque ppp est&aacute; intentando negociar compresi&oacute;n
- Predictor1, y el remoto no quiere negociar ning&uacute;n tipo de
- compresi&oacute;n. Estos mensajes son sin importancia, pero si quieres
- eliminarlos, puedes desactivar la compresi&oacute;n Predictor1
- localmente:
-
- <verb>
- disable pred1
- </verb>
-
- <sect2>
- <heading>PPP se cuelga durante transferencia de ficheros con errores I/OP</heading>
-
- <p>En la versi&oacute;n FreeBSD 2.2.2 y anteriores, hab&iacute;a un
- problema en el driver tun que no permit&iacute;a paquetes entrantes con
- un tama&ntilde;o mayor que el MTU del interface. La recepci&oacute;n de
- un paquete mayor que el MTU resulta en un error IO que es logueado
- v&iacute;a syslogd.
-
- <p>La especificaci&oacute;n PPP dice que un MRU de 1500 <bf>siempre</bf>
- deber&iacute;a ser aceptada como m&iacute;nimo, a pesar de lo que se
- negocie mediante LCP, de todas maneras, es posible que hayas disminuido
- el MTU por debajo de 1500 y tu proveedor te est&eacute; enviando
- paquetes de 1500, haciendo que tu conexi&oacute;n se bloquee.
-
- <p>El problema puede solucionarse haciendo que el tama&ntilde;o del
- MTU nunca sea inferior a 1500 bajo FreeBSD 2.2.2 y anteriores.
-
- <sect2>
- <heading>&iquest;Por que ppp no loguea la velocidad de la conexi&oacute;n?</heading>
-
- <p>Para loguear todas las l&iacute;neas de "conversaci&oacute;n" de tu
- m&oacute;dem, debes activar la siguiente opci&oacute;n:
-
- <verb>
- set log +connect
- </verb>
-
- <p>Esto har&aacute; que
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp">
- loguee todo hasta la &uacute;ltima cadena "expect" pedida.
-
- <p>Si quieres ver la velocidad de tu conexi&oacute;n y usas PAP o CHAP
- (y por lo tanto no tienes nada que "chatear" despu&eacute;s del CONNECT
- en el script de marcado), debes estar seguro de indicarle al ppp que
- espera la l&iacute;nea "CONNECT con algo como esto:
-
- <verb>
- set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"
- </verb>
-
- <p>Aqu&iacute;, tenemos nuestro CONNECT, enviamos nada, y esperamos un
- salto de l&iacute;nea, forzando al <bf/ppp/ que lea la respuesta del
- CONNECT.
-
- <sect2>
- <heading>Ppp ignora el car&aacute;cter `\' en mi chat script</heading>
-
- <p>PPP lee cada l&iacute;nea de los ficheros de configuraci&oacute;n
- para poder interpretar cadenas como <tt/set phone "123 456 789"/
- correctamente.
- Para especificar un car&aacute;cter ``"'', debes usar la contrabarra
- (``\'').
-
- <p>Cuando el int&eacute;rprete lee cada argumento, reinterpreta el
- argumento para buscar alguna secuencia especial de escape como ``\P''
- o ``\T''.
- Como resultado de esta doble lectura, recuerda que has de usar el
- n&uacute;mero correcto de escapes (contrabarras).
-
- <p>Si quieres enviar un caracter ``\'' a tu m&oacute;dem, necesitas
- hacer algo como:
-
- <verb>
- set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"
- </verb>
-
- <p>resultando en la siguiente secuencia:
-
- <verb>
- ATZ
- OK
- AT\X
- OK
- </verb>
-
- <p>o
-
- <verb>
- set phone 1234567
- set dial "\"\" ATZ OK ATDT\\T"
- </verb>
-
- <p>resultando en la siguiente secuencia:
-
- <verb>
- ATZ
- OK
- ATDT1234567
- </verb>
-
- <sect2>
- <heading>Ppp produce un seg-fault, pero no veo el fichero <tt/ppp.core/</heading>
-
- <p>Ppp (o cualquier otro programa de este tipo), nunca deber&iacute;an
- hacer un core dump. Por que ppp funciona con un id de usuario 0,
- el sistema operativo no escribir&aacute; la imagen del core en disco.
- Si ppp termina con errores de "segmentation violation" o cualquier
- otra se&ntilde;al que normalmente causa un core dumped, y quieres poder
- hacer un debug de ese core, aseg&uacute;rate de usar la &uacute;ltima
- versi&oacute;n de ppp, y haz lo siguiente:
-
- <verb>
- $ tar xfz ppp-*.src.tar.gz
- $ cd ppp*/ppp
- $ echo STRIP= >>Makefile
- $ echo CFLAGS+=-g >>Makefile
- $ make clean all
- $ su
- # make install
- # chmod 555 /usr/sbin/ppp
- </verb>
-
- <p>Ahora tendr&aacute;s instalada una versi&oacute;n "debuggable" de
- ppp. Tendr&aacute;s que ser root para poder ejecutar ppp ya que todos
- sus privilegios han sido revocados. Cuando arranques ppp, acuerdate del
- directorio en el que te encuentras.
-
- <p>Ahora, cuando ppp recibe una violaci&oacute;n de segmentaci&oacute;n
- , crear&aacute; un fichero core llamado ppp.core. A continuaci&oacute;n
- , deber&iacute;as hacer lo siguiente:
-
- <verb>
- $ su
- # gdb /usr/sbin/ppp ppp.core
- (gdb) bt
- .....
- (gdb) f 0
- .....
- (gdb) i args
- .....
- (gdb) l
- .....
- </verb>
-
- <p>Toda esta informaci&oacute;n puede hacer posible diagnosticar el
- problema. Si est&aacute;s familiarizado con gdb, puedes encontrar otras
- pistas como que caus&oacute; el dump y las direcciones y valores de las
- variables m&aacute;s relevantes.
-
- <sect2>
- <heading>
- El proceso que fuerza una llamada en modo auto nunca funciona
- </heading>
-
- <p>Este es un problema conocido cuando <bf/ppp/ est&aacute; configurado
- para negociar una IP din&aacute;mica local con el remoto. Este
- problema ha sido solucionado en la &uacute;ltima versi&oacute;n -
- busca en el man la palabra <bf/iface/.
-
-
- <p>El problema era que cuando el programa inicial llama a
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?connect"
- name="connect(2)">, el IP del interface tun es asignado al punto
- final del socket. El kernel crea el primer paquete saliente y
- establece la conexi&oacute;n. Si, como resultado de la
- asignaci&oacute;n din&aacute;mica de IP, la direcci&oacute;n del
- interface es cambiada, el punto final del socket original ser&aacute;
- invalido. Los siguientes paquetes enviados al remoto normalmente
- ser&aacute;n descartados. Aun si no lo son, cualquier respuesta no
- ser&aacute; enrutada hacia la m&aacute;quina de origen por que la
- direcci&oacute;n IP de la m&aacute;quina de origen ha cambiado.
-
- <p>Hay varias maneras te&oacute;ricas de solucionar este problema. Lo
- mejor ser&iacute;a que el remoto reasignase la misma IP si fuese
- posible <tt/:-)/ La versi&oacute;n actual de <bf/ppp/ hace esto,
- pero otras muchas implementaciones no.
-
- <p>El m&eacute;todo m&aacute;s sencillo desde nuestra parte,
- ser&iacute;a no cambiar nunca la IP del interface tun, pero por el
- contrario, cambiar todos los paquetes salientes de manera que la ip de
- origen es cambiada del IP del interface a la IP negociada,
- instantaneamente.
- Esto es, esencialmente, lo que hacen
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?libalias"
- name="libalias(3)"> y el par&aacute;metro <bf/-alias/ de ppp.
-
- <p>Otra alternativa (y probablemente la mas eficaz) es implementar
- una llamada al sistema que cambie todos los sockets de una IP a
- otra. <bf/Ppp/ deber&iacute;a usar esta llamada para modificar los
- sockets de todos los programas existentes cuando una nueva
- direcci&oacute;n IP es negociada. La misma llamada de sistema
- podr&iacute;a ser usada para clientes dhcp cuando son forzados
- a rehacer sus sockets.
-
- <p>Una tercera opci&oacute;n es permitir que un interface se active sin
- IP. Los paquetes salientes tendr&iacute;an un IP de 255.255.255.255
- hasta que el primer SIOCAIFADDR ioctl este hecho. Esto
- permitir&iacute;a que ppp cambiase el IP de origen, pero solo si el
- socket es 255.255.255.255 y solo el IP y el checksum necesitan cambiar. Esto, de todas maneras, requiere tocar el kernel para que puede enviar
- paquetes incorrectos a un interface mal configurado.
-
- <sect2>
- <heading>&iquest;Porqu&eacute; muchos juegos no funcionan con el
- par&aacute;metro -alias?</heading>
-
- <p>La raz&oacute;n por la que muchos de los juegos no funcionan es
- por que la m&aacute;quina externa intentar&aacute; abrir una
- conexi&oacute;n o enviar paquetes UDP (no solicitados) a la
- m&aacute;quina interna. El software "alias" no sabe que esos paquetes
- debr&iacute;n enviarse a la m&aacute;quina interna.
-
- <p>Para que las cosas funcionen, aseg&uacute;rate que la &uacute;nica
- cosa que est&aacute; funcionando es el software con el que tienes
- problemas, entonces ejecuta tcpdump en el interface tun del
- gateway o ejecuta el log tcp/ip del ppp ("set log +tcp/ip" en el
- gateway.
-
- <p>Cuando arrancas el software que no funciona, deber&iacute;s ver
- paquetes que pasan a trav&eacute;s del gateway. Cuando algo
- vuelve del exterior, ser&aacute; rechazado (ese es el problema).
- Apunta el n&uacute;mero de puerto de esos paquetes y cierra el
- software que no funciona. Haz esto varias veces para comprobar si
- el n&uacute;mero de puerto se repite. Si es as&iacute;, la siguiente
- l&iacute;nea en el fichero de configuraci&oacute;n del ppp
- /etc/ppp/ppp.conf har&aacute; que las cosas funcionen:
-
- <verb>
- alias port proto internalmachine:port port
- </verb>
-
- <p>donde "proto" puede ser "tcp" o "udp", "internalmachine" es la
- m&aacute;quina a la que quieres que los paquetes sean enviados y
- "port" es el n&uacute;mero de puerto de destino de los paquetes.
-
- <p>No podr&aacute;s usar ese software en otras m&aacute;quinas sin
- modificar el comando anterior, y ejecutar el software
- simultaneamente en dos m&aacute;quinas internas no ser&aacute;
- posible - despu&eacute;s de todo, el mundo exterior est&aacute;
- viendo a toda tu red como una sola m&aacute;quina.
-
- <p>Si los n&uacute;meros de puertos no se repiten, hay tres opciones
- m&aacute;s:
-
- <p><bf>1)</bf> Desarrollar el soporte en libalias. Ejemplos de estos
- "casos especiales" los puedes encontrar en
- /usr/src/lib/libalias/alias_*.c (alias_ftp.c es un bu&eacute;n
- prototipo). Esto usualmente supone leer ciertos paquetes salientes
- conocidos, identificando la instrucci&oacute;n que le indica a la
- m&aacute;quina exterior que inicie una conexi&oacute;n con la
- m&aacute;quina interna en un puerto espec&iacute;fico (aleatorio)
- y configurar un "ruta" en la tabla de alias para que los paquetes
- siguientes sepan donde ir.
-
- <p>Esta es la soluci&oacute;n m&aacute;s dif&iacute;cil, pero es la
- mejor y har&aacute; que el software funcione con m&uacute;ltiples
- m&aacute;quinas.
-
- <p><bf>2)</bf> Usar un proxy. La aplicaci&oacute;n debe soportar
- socks5 por ejemplo, o (como en el caso del "cvsup") deber&iacute;a
- tener una opci&oacute;n "pasiva" que evita que el remoto intente abrir
- conexiones con la maquina local.
-
- <p><bf>3)</bf> Redireccionar todo el tr&aacute;fico a la m&aacute;quina
- interna usando "alias addr". Esta es la soluci&oacute;n m&aacute;s
- sencilla.
-
- <sect3>
- <heading>&iquest;Ha hecho alguien una lista de puertos &uacute;tiles?</heading>
-
- <p>Todav&iacute;a no, pero se podr&iacute;a hacer, si hay
- inter&eacute;s. En cada ejemplo, <tt>internal</tt> debe ser
- reemplazado por la direcci&oacute;n IP de la m&aacute;quina que
- va a estar jugando.
-
- <itemize>
- <item><bf>Quake</bf>
- <p><tt>alias port udp internal:6112 6112</tt>
- <p>Alternativamente, quiz&aacute;s est&eacute;s interesado en
- mirar en el
- <htmlurl url="http://www.battle.net/support/proxy/"
- name="www.battle.net">soporte de Quake a trav&eacute;s de proxy">.
- </itemize>
-
- <itemize>
- <item><bf>Quake 2</bf>
- <p><tt>alias port udp internal:27901 27910</tt>
- </itemize>
-
- <itemize>
- <item><bf>Red Alert</bf>
- <p><tt>alias port udp internal:8675 8675</tt>
- <p><tt>alias port udp internal:5009 5009</tt>
- </itemize>
-
- <itemize>
- <item><bf>Half Life</bf>
- <p><tt>alias port udp internal:27005 27015</tt>
- </itemize>
-
- <itemize>
- <item><bf>PCAnywhere 8.0</bf>
- <p><tt>alias port udp internal:5632 5632</tt>
- <p><tt>alias port tcp internal:5631 5631</tt>
- </itemize>
-
-
- <sect2>
- <heading>&iquest;Qu&eacute; son los errores FCS?</heading>
-
- <p>FCS significa <bf/F/rame <bf/C/heck <bf/S/equence. Cada paquete
- ppp tiene un checksum a&ntilde;adido para asegurar que los datos
- que se reciben son los datos que han sido enviados. Si el FCS de un
- paquete entrante es incorrecto, el paquete es rechazado y se
- incremente el contador HDLC FCS. Los valores de error HDLC se
- pueden visualizar usando el comando <tt>show hdlc</tt>.
-
- <p>Si tu conexi&oacute;n es mala (o si tu driver serie est&aacute;
- rechazando paquetes), ver&aacute;s errores FCS ocasionales. En general
- no tienes porque preocuparte de ellos. Si tienes un m&oacute;dem
- externo, aseg&uacute;rate que el cable est&aacute; correctamente
- aislado de interferencias - esto deber&iacute;a erradicar el problema.
-
- <p>Si tu conexi&oacute;n se corta tan pronto como has conectado y ves
- gran cantidad de errores FCS, puede ser por que ti conexi&oacute;n no
- es de 8 bits. Aseg&uacute;rate de que tu m&oacute;dem no est&aacute;
- usando control de flujo (XON/XOFF) por software. Si tu conexi&oacute;n
- de datos <bf>debe</bf> usar control de flujo por software, usa el
- comando <tt>set accmap 0x000a0000</tt> para indicar al <bf>ppp</bf>
- que "escape" los car&aacute;cteres ^Q y ^S.
-
- <p>Otra raz&oacute;n para ver muchos errores FCS puede ser que el
- remoto haya dejado de "hablar" <bf/PPP/. Deber&iacute;s activar el
- log as&iacute;ncrono para determinar si los datos entrantes son de
- un login o un prompt de shell. Si tienes un prompt de shell en el
- extremo de la conexi&oacute;n, es posible terminar el ppp sin
- cortar la conexi&oacute;n usando el comando <tt>close clp</tt> (usando
- el comando <tt>term</tt> podr&aacute;s conectar de nuevo con el shell
- de la m&aacute;quina remota.
-
- <p>Si no hay nada en el log que indique por que se ha terminado la
- conexi&oacute;n, deber&iacute;s preguntar al administrador del
- sistema remoto porqu&eacute; ha terminado la sesi&oacute;n.
-
- <sect2>
- <heading>Nada de esto me ayuda - Estoy desesperado !</heading>
-
- <p>Si todo falla, env&iacute;a toda la informaci&oacute;n que puedas,
- incluyendo los ficheros de configuraci&oacute;n, como arrancas el ppp,
- las partes relevantes del fichero de log y la salida del comando
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?netstat"
- name="netstat -rn"> (antes y despues de la conexi&oacute;n) a la lista
- de distribuci&oacute;n <url url="mailto:FreeBSD-questions@FreeBSD.org"
- name="FreeBSD-questions@FreeBSD.org">, a la lista de
- <url url="mailto:FreeBSD@es.FreeBSD.org" name="FreeBSD en
- castellano"> o al grupo de news
- <url url="news:comp.unix.bsd.FreeBSD.misc"
- name="comp.unix.bsd.FreeBSD.misc"> y alguien te ayudar&aacute; a
- solucionar los problemas.
-
- <sect1>
- <heading>No puedo crear el dispositivo <tt>/dev/ed0</tt>!</heading>
-
- <p>En el sistema de trabajo de red de Berkeley, los interfaces de
- red solo son directamente accesibles por el c&oacute;digo del kernel. Por
- favor, mira el fichero <tt>/etc/rc.network</tt> y los man de los
- programas de red all&iacute; mencionados. Si esto te deja totalmente
- confundido, entonces tendr&iacute;as que conseguir algun libro de
- administraci&oacute;n de red de cualquier sistema operativo basado en BSD;
- con algunas excepciones significativas, administrar el sistema de red
- en FreeBSD es b&aacute;sicamente igual que en SunOS 4.0 o Ultrix.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo configurar alias de ethernets?</heading>
-
- <p>A&ntilde;ade ``<tt/netmask 0xffffffff/'' en el comando <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ifconfig" name="ifconfig">
- como el siguiente:
-
- <verb>
- ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo hago para usar el otro puerto de una 3C503?</heading>
-
- <p>Si quieres usar los otros puertos, tendr&aacute;s que especificar
- par&aacute;metros adicionales en el comando
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ifconfig"
- name="ifconfig">. El puerto por defecto es <tt/link0/. Para usar el
- puerto AUI en lugar del BSN, usa <tt/link2/. Estos flags tendr&iacute;an
- que ser especificados usando las variable ifconfig_* en el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf"
- name="/etc/rc.conf">.
-
- <sect1>
- <heading>Tengo problemas con NFS desde/hacia FreeBSD.</heading>
-
- <p>Algunas tarjetas de red son mejores que otras y algunas veces
- pueden causar problemas con aplicaciones de uso intensivo de red
- como NFS
-
- <p>Mira la <url url="../../handbook/nfs.html" name="entrada en el manual
- de NFS"> para mas informaci&oacute;n sobre este tema.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; no puedo hacer NFS-mount desde Linux?</heading>
-
- <p>Algunas versiones de NFS para Linux solo aceptan peticiones
- para montar unidades hechas desde un puerto privilegiado; intenta:
-
- <verb>
- mount -o -P linuxbox:/blah /mnt
- </verb>
-
- <sect1>
- <heading>&iquest;Porqu&eacute; no puedo hacer NFS-mount desde una Sun?</heading>
-
- <p>Las estaciones de trabajo Sun con SunOS 4.x solo aceptan peticiones
- de montar unidades hechas desde puertos privilegiados; intenta
-
- <verb>
- mount -o -P sunbox:/blah /mnt
- </verb>
-
- <sect1>
- <heading>Tengo problemas usando ppp contra m&aacute;quinas NeXTStep.</heading>
-
- <p>Intenta desactivar las extensiones TCP en
- url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf" name="/etc/rc.conf">
- cambiando la siguiente variable a NO:
-
- <verb>
- tcp_extensions=NO
- </verb>
-
- <p>Las m&aacute;quinas Xylogic's Annex tambi&eacute;n tienen este
- problema, por lo que tienes que hacer el mismo cambio para conectar con
- ellas.
-
- <sect1>
- <heading>&iquest;C&oacute;mo activo soporte de IP multicast?</heading>
-
- <p>Las operaciones multicast est&aacute;n totalmente soportadas en FreeBSD
- 2.0 y superiores. Si quieres usar tu m&aacute;quina como router multicast,
- necesitar&aacute;s cargar el m&oacute;dulo de kernel <tt/ip_mrouted_mod/ y
- ejecutar el programa <tt/mrouted/.
-
- <p>Para mas informaci&oacute;n:
-
- <verb>
-Producto Descripcion Donde
---------------- ----------------------- ---------------------------------------
-faq.txt Mbone FAQ ftp.isi.edu:/mbone/faq.txt
-imm/immserv IMage Multicast ftp.hawaii.edu:/paccom/imm.src.tar.Z
- for jpg/gif images.
-nv Network Video. ftp.parc.xerox.com:
- /pub/net-reseach/exp/nv3.3alpha.tar.Z
-vat LBL Visual Audio Tool. ftp.ee.lbl.gov:
- /conferencing/vat/i386-vat.tar.Z
-wb LBL White Board. ftp.ee.lbl.gov:
- /conferencing/wb/i386-wb.tar.Z
-mmcc MultiMedia Conference ftp.isi.edu:
- Control program /confctrl/mmcc/mmcc-intel.tar.Z
-rtpqual Tools for testing the ftp.psc.edu:/pub/net_tools/rtpqual.c
- quality of RTP packets.
-vat_nv_record Recording tools for vat ftp.sics.se:archive/vat_nv_record.tar.Z
- and nv.
- </verb>
-
- <sect1>
- <heading>&iquest;Qu&eacute; tarjetas de red est&aacute;n basadas en el chipset DEC PCI?</heading>
-
- <p>Aqu&iacute; tienes una lista hecha por <url url="mailto:gfoster@driver.nsta.org"
- name="Glen Foster">:
-
- <verb>
- Fabricante Modelo
- ----------------------------------------------
- ASUS PCI-L101-TB
- Accton ENI1203
- Cogent EM960PCI
- Compex ENET32-PCI
- D-Link DE-530
- Dayna DP1203, DP2100
- DEC DE435, DE450
- Danpex EN-9400P3
- JCIS Condor JC1260
- Linksys EtherPCI
- Mylex LNP101
- SMC EtherPower 10/100 (Model 9332)
- SMC EtherPower (Model 8432)
- TopWare TE-3500P
- Zynx ZX342
- </verb>
-
- <sect1>
- <heading>&iquest;Porqu&eacute; tengo que usar el FQDN para hosts en mi servidor?</heading>
-
- <p>Probablemente el host estar&aacute; en un dominio diferente; por
- ejemplo, si est&aacute;s en el dominio foo.bar.edu y quieres encontrar
- un host llamado "mumble" en el dominio bar.edu, tendr&aacute;s que
- llamarlo por su nombre de dominio, "mumble.bar.edu", en vez de solo
- "mumble".
-
- <p>Tradicionalmente, esto era permitido por los resolvers BIND BSD.
- La versi&oacute;n actual de <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?named" name="bind"> que
- se incluye en FreeBSD no resuelve abreviaciones de nombres para
- hosts fuera de nuestro dominio.
-
- <sect1>
- <heading>``Permission denied'' para todas las operaciones de red.
- </heading>
-
- <p>Si tienes el kernel compilado con la opci&oacute;n <tt/IPFIREWALL/
- . debes tener en cuenta que la pol&iacute;tica por defecto es denegar
- expl&iacute;citamente todos los paquetes que no est&aacute;n
- expl&iacute;citamente permitidos.
-
- <p>Si involuntariamente has desconfigurado el firewall de tu sistema,
- puedes restaurar la operatibilidad de la red tecleando el siguiente
- comando como usuario root:
-
- <verb>
- ipfw add 65534 allow all from any to any
- </verb>
-
- <p>Para mas informaci&oacute;n en la configuraci&oacute;n del firewall
- de FreeBSD, mira la secci&oacute;n
- <url url="../../handbook/firewalls.html" name="del manual">.
-
- <sect1>
- <heading>&iquest;Cuanto tiempo retrasa IPFW el tr&aacute;fico?</heading>
-
- <p>Esta respuesta depende mucho en las reglas definidas y en la
- versi&oacute;n del procesador. Para la mayor&iacute;a de aplicaciones
- que tienen que ver con la ethernet y peque&ntilde;as reglas, la
- respuesta es, pr&aacute;cticamente nada.
-
- Aqu&iacute; tienes una lista de cosas a tener en cuenta para crear reglas
- de filtrado eficientes:
-
- <itemize>
-
- <item>Poner una regla "established" al inicio para manejar la
- mayor&iacute;a de trafico TCP. No pongas ninguna regla
- <tt>allow tcp</tt> antes de esta.
-
- <item>Pon las reglas m&aacute;s usadas antes de las menos usadas
- (<bf>sin modificar la permisividad del firewall</bf>). Puedes ver cuales
- son las reglas m&aacute;s usadas examinando los contadores de paquetes
- con la orden <tt>ipfw -a l</tt>.
-
- </itemize>
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo redirigir peticiones de una m&aacute;quina
- a otra?<(/heading>
-
- <p>Puedes redirigir peticiones FTP (y otros servicios) con el package
- "socket", disponible en la colecci&oacute;n de ports categor&iacute;a
- "sysutils".
- Simplemente tienes que reemplazar la l&iacute;nea del servicio
- correspondiente en el fichero /etc/services de la siguiente manera:
-
-<verb>
-ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp
-</verb>
-
- <p>donde "ftp.foo.com" y "ftp" son la m&aacute;quina y puerto
- de destino.
-
- <sect1>
- <heading>&iquest;D&oacute;nde puedo conseguir una herramienta de control de ancho de banda?.</heading>
-
- <p>Existen dos herramientas de control de ancho de banda para FreeBSD.
- <url url="http://www.csl.sony.co.jp/person/kjc/programs.html"
- name="ALTQ"> es gratis; Bandwidth Manager de
- <url url="http://www.etinc.com" name="Emerging Technologies"> es un
- producto comercial.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; aparece "/dev/bpf0: device not configured"?
- </heading>
-
- <p>El driver Berkeley Packet Filter <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?bpf" name="(bpf)"> necesita ser
- activado para ejecutar programas que lo utilizan. A&ntilde;ade esto al
- fichero de configuraci&oacute;n de tu kernel y crea uno nuevo:
-
- <verb>
- pseudo-device bpfilter # Berkeley Packet Filter
- </verb>
-
- <p>A continuaci&oacute;n, despu&eacute;s de rebotar tendr&aacute;s el
- dispositivo. Esto puede hacerse entrando en el directorio <tt>/dev</tt>
- y ejecutando el siguiente comando:
-
- <tscreen><verb>
- # sh MAKEDEV bpf0
- </verb></tscreen>
-
- <p>Por favor, mira la <htmlurl url="../../handbook/kernelconfig-nodes.html"
- name="entrada correspondiente en el handbook"> para m&aacute;s
- informaci&oacute;n sobre la creaci&oacute;n de dispositivos.
-
diff --git a/es_ES.ISO8859-1/FAQ/preface.sgml b/es_ES.ISO8859-1/FAQ/preface.sgml
deleted file mode 100644
index d6062f010a..0000000000
--- a/es_ES.ISO8859-1/FAQ/preface.sgml
+++ /dev/null
@@ -1,635 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Introducci&oacute;n<label id="preface"></heading>
-
- <p>Bienvenido a la FAQ de FreeBSD 2.X!
-
- <sect1>
- <heading>&iquest;Cu&aacute;l es el objetivo de esta FAQ?</heading>
-
- <p>Como es habitual con las FAQ de los grupos de noticias (USENET), este
- documento pretende abarcar las preguntas m&aacute;s frecuentes
- referentes al sistema operativo FreeBSD (y por supuesto contestarlas!).
- Pensadas en un principio para reducir el tr&aacute;fico y evitar que se
- hagan las mismas preguntas una y otra vez, las FAQ se han convertido en
- un valorado recurso de obtenci&oacute;n de informaci&oacute;n.
-
- <p>Todo el esfuerzo se ha hecho en intentar que esta FAQ sea lo m&aacute;s
- informativa posible; si tienes cualquier comentario o sugerencia, por
- favor, env&iacute;a un mail a <url url="mailto:jesusr@FreeBSD.org"
- name="FAQ maintainer">.
-
- <sect1>
- <heading>&iquest;Qu&eacute; es FreeBSD?</heading>
-
- <p>De manera resumida, FreeBSD 2.X es un sistema operativo UNIX
- indirectamente basado en el port de Net/2 para i386 de Berkeley
- (conocido como 386BSD) realizado por William Jolitz's. Una
- descripci&oacute;n m&aacute;s detallada de FreeBSD y de como puede
- trabajar, se encuentra en
- <url url="http://www.FreeBSD.org" name="FreeBSD home page">.****
-
- <p>FreeBSD es usado por compa&ntilde;&iacute;s, proveedores de Internet,
- profesionales de la inform&aacute;tica, estudiantes y usuarios
- particulares de todo el mundo en su trabajo, educaci&oacute;n y ocio.
- Puedes ver a algunos de ellos en
- <url url="http://www.FreeBSD.org/gallery.html" name="FreeBSD Gallery.">
-
- <p>Para informaci&oacute;n m&aacute;s detallada sobre FreeBSD, por
- favor mira en
- <url url="../../handbook/index.html" name="FreeBSD Handbook.">
-
- <sect1>
- <heading>&iquest;Cu&aacute;l es el objetivo de FreeBSD?</heading>
-
- <p>El objetivo del Proyecto FreeBSD es proveer software que pueda ser
- usado en todos los &aacute;mbitos sin ning&uacute;n tipo de atadura.
- Muchos de nosotros estamos significativamente involucrados en el
- desarrollo del c&oacute;digo (y del proyecto) y no ser&iacute;a cierto
- decir que no esperabamos o esperamos alg&uacute;n tipo de
- financiaci&oacute;n, pero definitivamente no estamos preparados para
- insistir en ello. Creemos que nuestra primera y principal
- "misi&oacute;n" es proveer el c&oacute;digo libremente, y en cualquier
- &aacute;mbito, para que el c&oacute;digo sea lo m&aacute;s expandido
- posible y produzca los mayores beneficios. Esto es, creemos en uno de
- los objetivos fundamentales del Software Libre y lo apoyamos de manera
- incondicional.
-
- <p>El c&oacute;digo fuente de los programas registrados bajo GNU
- General Public License (GPL) o GNU Library General Public License (LGPL),
- se provee bajo las condiciones fijadas por esas licencias. Debido a
- complicaciones adicionales en el uso comercial de Software GPL,
- intentamos reemplazar ese software por otros registrados bajo el
- copyright BSD, menos estricto y m&aacute;s permisivo.
-
-
- <sect1>
- <heading>&iquest;Porqu&eacute; se llama FreeBSD?</heading>
-
- <p>
- <itemize>
- <item>Este sistema debe ser usado libremente, sin coste alguno
- incluso para fines comerciales.
-
- <item>El c&oacute;digo fuente completo del sistema operativo es de
- libre distribuci&oacute;n, y se han marcado el menor numero posible
- de restricciones para su uso, distribuci&oacute;n e
- incorporaci&oacute;n a otros trabajos (comerciales o no).
-
- <item>Cualquier persona que tenga alguna sugerencia de mejora y/o
- "parche" de algun "bug", es libre de enviar el c&oacute;digo y que
- este sea a&ntilde;adido al c&oacute;digo fuente de la
- distribuci&oacute;n original (sujeto a una o dos condiciones obvias).
- </itemize>
-
- <p>Para todos nuestros lectores que su primer lenguaje no sea el
- ingl&eacute;s, decir que la palabra "free" es usada en dos sentidos,
- uno significando "sin coste" y el otro "puedes hacer lo que quieras".
- Aparte de una o dos cosas que no puedes hacer con el c&oacute;digo de
- FreeBSD, por ejemplo decir que lo has escrito, realmente puedes hacer lo
- que quieras con &eacute;l.
-
- <sect1>
- <heading>&iquest;Cu&aacute;l es la &uacute;ltima versi&oacute;n de FreeBSD?
- </heading>
-
- <p>La versi&oacute;n
- <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.2-RELEASE"
- name="3.2R"> es la &uacute;ltima <em>-stable</em>; fue declarada
- definitiva (a partir de ahora "release") en Mayo de 1999.
-
- <p>Brevemente explicado, <bf>-stable</bf> est&aacute; dirigido a
- proveedores de Internet y otros usuarios corporativos que quieren
- estabilidad y una sucesi&oacute;n tranquila en los cambios y
- actualizaciones a las nuevas versiones y sus mejoras. S&oacute;lo debes
- usar la rama <em/current/ si est&aacute;s seguro de estar preparado para
- su mayor "volatilidad" (relativa a <em/-stable/).
-
- <p>Las versiones Release se hacen cada <ref id="release_freq"
- name="varios meses">. Mientras mucha gente mantiene m&aacute;s al
- d&iacute;a los fuentes de FreeBSD (lee las preguntas en
- <ref id="current" name="FreeBSD-current"> y <ref id="stable"
- name="FreeBSD-stable">, hacerlo est&aacute; pensado para gente que
- se considere preparada para seguir el desarrollo continuo del
- c&oacute;digo fuente.
-
-
- <sect1>
- <heading>&iquest;Qu&eacute; es FreeBSD-current?<label id="current"></heading>
-
- <p><url url="../../handbook/cutting-edge.html#CURRENT" name="FreeBSD-current">
- es la versi&oacute;n de desarrollo del sistema operativo, la cual
- acabar&aacute; siendo la versi&oacute;n 4.0-RELEASE. Como es de suponer,
- esta versi&oacute;n es de inter&eacute;s solo para los desarrolladores
- que trabajan en el sistema y "masoquistas" de la programaci&oacute;n.
- Mira la
- <url url="../../handbook/cutting-edge.html#CURRENT" name="secci&oacute;n
- correspondiente"> en el <url url="../../handbook/index.html"
- name="handbook"> para saber como funciona esta opci&oacute;n.
-
- <p>Si no est&aacute;s familiarizado con el sistema operativo o no eres
- capaz de identificar la diferencia entre un problema real y un problema
- temporal, no deber&iacute;as usar FreeBSD-current. Esta rama a veces
- avanza muy rapidamente y puede no ser compilable durante unos d&iacute;as. La gente que usa FreeBSD-current es capaz de analizar los problemas y
- solo comunicarlos si son motivo de errores. Preguntas como "al ejecutar
- make world obtengo un error referente a grupos" en la lista de
- distribuci&oacute;n -current pueden quedar fuera de lugar.
-
- <p>Una release <url url="../releases/snapshots.html" name="snapshot">
- corresponde al desarrollo de la rama -current; distribuciones en
- CDROM de esta versi&oacute;n est&aacute;n disponibles. Los objetivos
- de cada release snapshot son:
-
- <itemize>
- <item>Testear la &uacute;ltima versi&oacute;n del software de
- instalaci&oacute;n.
-
- <item>Dar a la gente que le gustar&iacute;a usar la versi&oacute;n
- -current pero que no tiene el tiempo suficiente para seguir el ritmo
- diario de actualizaciones, una manera f&aacute;cil de poder instalarla
- en su sistema.
-
- <item>Preservar un punto de referencia fijado en el c&oacute;digo en
- cuesti&oacute;n, s&oacute;lo en caso de que "rompamos" algo realmente
- importante. (De todas maneras, el CVS normalmente previene de que cosas
- tan horribles como estas puedean suceder :)
-
- <item>Asegurar que las nuevas caracter&iacute;sticas desarrolladas
- puedan ser suficientemente testeadas por el mayor n&uacute;mero de
- gente.
- </itemize>
-
- <p>No se garantiza que ning&uacute;n snapshot pueda ser considerado
- "calidad de producci&oacute;n". Para conseguir estabilidad y un sistema
- garantizado, tendr&aacute;s que usar las versiones release.
-
- <p>Las release snapshot est&aacute;n directamente disponibles en
- <url url="ftp://current.FreeBSD.org/pub/FreeBSD/"> y son generadas
- un promedio de una vez por d&iacute;a para las ramas 4.0-current y
- 3.0-stable.
-
- <sect1>
- <heading>&iquest;Qu&eacute; significa FreeBSD-stable?<label id="stable"></heading>
-
- <p>Cuando la versi&oacute;n de FreeBSD 2.0.5 fue declarada release,
- decidimos dividir el desarrollo de FreeBSD en dos ramas. Una rama fue
- llamada <url url="../../handbook/stable.html" name="-stable"> con la
- intenci&oacute;n de que solo los parches bien testeados y peque&ntilde;as
- actualizaciones de determinadas partes del sistema fuesen incluidas en
- ella (para proveedores de Internet y otras empresas para los que no
- resultan deseables cambios repentinos o experimentales). La otra rama fue
- <url url="../../handbook/cutting-edge.html#CURRENT" name="-current">,
- la cual ha sido, esencialmente, una l&iacute;nea com&uacute;n para el
- desarrollo de la versi&oacute;n 4.0-RELEASE. Aqu&iacute; hay un
- peque&ntilde;o gr&aacute;fico ASCII para ayudar a entender este
- sistema de desarrollo:
-
-
-<verb>
- 2.0
- |
- |
- | [2.1-stable]
-*BRANCH* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [2.1-stable ends]
- | (Mar 1997)
- |
- |
- | [2.2-stable]
-*BRANCH* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5-RELEASE -> ...
- | (Mar 1997) (Oct 1997)
- |
- |
- 3.0-SNAPs (started Q1 1997)
- |
- |
- 3.0.0-RELEASE (Oct 1998)
- |
- | [3.0-stable]
-*BRANCH* 3.1 (Feb 1999) -> 3.2-RELEASE -> ... future 3.x releases ...
- | (Mayo 1999)
- |
- \|/
- +
- [4.0-current continues]
-</verb>
-
- <p>La rama -current progresa lentamente hacia la 4.0 y superiores,
- de la misma manera la anterior 2.2-estable fue sustituida por la
- release 3.0, la nueva "rama estable" tambi&eacute;n conocida como
- 3.0-stable. 4.0-current continuar&aacute; hasta donde los desarrollos
- activos lleguen cuando se convierta en release 4.0. En ese punto, 4.0 se
- convertir&aacute; en 4.0-stable y se abrir&aacute; la nueva 4.1-current.
-
- <sect1>
- <heading>&iquest;Cuando se realizan las releases de FreeBSD?<label id="release_freq"></heading>
-
- <p>Como principio general, el equipo de FreeBSD solo hace una nueva
- versi&oacute;n release de FreeBSD cuando cree que hay suficientes
- caracter&iacute;sticas nuevas y/o parches que la justifiquen y esten
- seguros de que con los cambios realizados no se compromete la estabilidad
- de la release. Muchos usuarios creen que esta precauci&oacute;n es una
- de las mejores caracter&iacute;sticas de FreeBSD.
-
- <p>Las versiones release son hechas cada 6 meses aproximadamente.
-
- <p>Para los usuarios que necesiten (o quieran) un poco m&aacute;s de
- excitaci&oacute;n, hay SNAP-release m&aacute;s frecuentemente,
- particularmente durante el mes anterior a una release completa.
-
- <sect1>
- <heading>&iquest;Est&aacute; FreeBSD disponible solo para PCs?</heading>
-
- <p>En estos momentos, s&iacute;, aunque se est&aacute; trabajando en
- portarlo a la arquitectura DEC Alpha. Si tu m&aacute;quina tiene una
- arquitectura diferente y necesitas un sistema de este tipo, te
- aconsejamos que mires en <url url="http://www.netbsd.org/" name="NetBSD">
- o en <url url="http://www.openbsd.org/" name="OpenBSD">.
-
- <sect1>
- <heading> &iquest;Qui&eacute;n es responsable de FreeBSD?</heading>
-
- <p>Las decisiones clave concernientes al proyecto FreeBSD como la
- direcci&oacute;n a seguir y qui&eacute;n est&aacute; autorizado a
- a&ntilde;adir c&oacute;digo a la distribuci&oacute;n original, se hace a
- trav&eacute;s de un grupo de unas 17 personas llamado
- <url url="../../handbook/staff.html#STAFF-CORE" name="core team">.
- Existe tambi&eacute;n un grupo de unas 150 personas o
- <url url="../../handbook/staff-committers.html" name="committers"> que
- tambi&eacute;n est&aacute;n autorizadas a realizar cambios directamente
- sobre la distribuci&oacute;n original.
-
- <p>De todas maneras, la cambios importantes son discutidos en
- las <ref id="mailing" name="listas de distribuci&oacute;n"> en las que no
- existen restricciones en quien participa en las discusiones.
-
- <sect1>
- <heading>&iquest;D&oacute;nde puedo conseguir FreeBSD?<label id="where-get"></heading>
-
- <p>Todas las versiones release de FreeBSD est&aacute;n disponibles via ftp
- an&oacute;nimo en <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/"
- name="el servidor FTP de FreeBSD">:
-
- <itemize>
- <item>Para la actual 3.2-stable release, 3.2R mira en
- <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.2-RELEASE/"
- name="3.2-RELEASE">.
-
- <item>Para la actual 4.0-current release, 4.0-SNAP, mira en
- <url url="ftp://current.FreeBSD.org/pub/FreeBSD/" name="4.0">.
-
- <item><url url="ftp://releng22.FreeBSD.org/pub/FreeBSD/"
- name="2.2 Snapshot"> releases son hechas v&iacute;a
- RELENG_2_2 rama (2.2.5 -> 2.2.x). Con la ocasional excepci&oacute;n de
- peque&ntilde;as variaciones, la rama RELENG_2_2 esta siendo
- cuidadosamente mantenida (no hay cambios experimentales y los parches
- son a&ntilde;adidos solo despu&eacute;s de ser testeados en -current).
-
- <item><url url="ftp://current.FreeBSD.org/pub/FreeBSD/"
- name="4.0 Snapshot"> releases son hechas una vez al d&iacute;a para la
- rama <ref id="current" name="-current">, siendo este un servicio
- puramente para testeadores y desarrolladores.
-
- <p>FreeBSD esta tambi&eacute;n disponible via CDROM, en los siguientes
- lugares:
-
- <p>Walnut Creek CDROM<newline>
- 4041 Pike Lane, Suite F<newline>
- Concord, CA 94520 USA<newline>
- Orders: +1 800 786-9907<newline>
- Questions: +1 925 674-0783<newline>
- FAX: +1 925 674-0821<newline>
- email: <url url="mailto:orders@cdrom.com" name="WC Orders address">
- <newline>
- WWW: <url url="http://www.cdrom.com/" name="WC Home page">
- <newline>
-
- <p>En Australia:
-
- <p>Advanced Multimedia Distributors<newline>
- Factory 1/1 Ovata Drive<newline>
- Tullamarine, Melbourne<newline>
- Victoria<newline>
- Australia<newline>
- Voice: +61 3 9338 6777<newline>
-
- CDROM Support BBS<newline>
- 17 Irvine St<newline>
- Peppermint Grove WA 6011<newline>
- Voice: +61 9 385-3793<newline>
- Fax: +61 9 385-2360<newline>
-
- Y en el Reino Unido:
-
- The Public Domain &amp; Shareware Library<newline>
- Winscombe House, Beacon Rd<newline>
- Crowborough<newline>
- Sussex. TN6 1UL<newline>
- Voice: +44 1892 663-298<newline>
- Fax: +44 1892 667-473<newline>
- </itemize>
-
- <sect1>
- <heading>&iquest;D&oacute;nde encuentro informaci&oacute;n sobre las listas de distribuci&oacute;n de FreeBSD?<label id="mailing"></heading>
-
- <p>Puedes encontrar toda la informaci&oacute;n en <url
- url="../../handbook/eresources.html#ERESOURCES-MAIL"
- name="la secci&oacute;n de listas del Handbook.">
-
- <sect1>
- <heading>&iquest;D&oacute;nde encuentro informaci&oacute;n sobre el
- a&ntilde;o 2000 (Y2K) en FreeBSD?</heading>
-
- <p>Tienes toda la informaci&oacute;n disponible en la <url
- url="http://www.freebsd.org/y2kbug.html" name="p&aacute;gina Y2K de
- FreeBSD">.
-
- <sect1>
- <heading>&iquest;Qu&eacute; grupos de noticias est&aacute;n disponibles sobre
- FreeBSD?</heading>
-
- <p>Puedes encontrar toda la informaci&oacute;n en <url
- url="../../handbook/eresources-news.html"
- name="la secci&oacute;n de news del Handbook.">
-
- <sect1>
- <heading>
- &iquest;Hay algun canal IRC (Internet Relay Chat) sobre FreeBSD?
- </heading>
-
- <p>S&iacute;, muchas de las grandes redes de IRC tienen canales de
- chat de FreeBSD.
-
- <itemize>
- <item>El canal <tt>&num;FreeBSD</tt> en EFNet es un f&oacute;rum de
- FreeBSD, pero no acudas all&iacute; para obtener soporte t&eacute;cnico
- o contar tus penas sobre como leer las p&aacute;ginas man ;). Es un canal
- de chat, de principio a f&iacute;n, y los temas que se tratan suelen ser
- cosas como sexo, deportes o armas nucleares.
- Est&aacute;s Avisado!.
- Disponible en el servidor <tt>irc.chat.org</tt>.
-
- <item>El canal <tt>&num;FreeBSD</tt> en DALNET est&aacute; disponible
- en el servidor <tt>irc.dal.net</tt> en USA y <tt>irc.eu.dal.net</tt>
- en Europa.
-
- <item>El canal <tt>&num;FreeBSD</tt> en UNDERNET est&aacute; disponible
- en <tt>us.undernet.org</tt> en USA y <tt>eu.undernet.org</tt> en Europa.
- Igual que en EFNET, no hagas preguntas t&eacute;cnicas. Es un canal de
- chat, no de soporte.
-
- <item>Finalmente, puedes usar el canal <tt>&num;FreeBSD</tt> en BSDNET,
- una peque&ntilde;a red de chat, en el servidor <tt>irc.FreeBSD.org</tt>.
- Esta red intenta ofrecer m&aacute;s soporte t&eacute;cnico y no ser tan
- an&aacute;rquica como EFNET, UNDERNET o DALNET. Porqu&eacute; no ofrecer
- respuestas de manera voluntaria hoy en BSDNET?.
- </itemize>
-
- <p>Cada uno de estos canales es diferente y no est&aacute;n conectados
- entre ellos. Sus estilos de chat difieren, por lo que podr&iacute;s
- probarlos todos para ver cual te gusta m&aacute;s.
-
- <sect1>
- <heading>Libros sobre FreeBSD</heading>
-
- <p>El libro de Greg Lehey's ``Installing and Running FreeBSD''
- est&aacute; disponible en Walnut Creek y se vende con el CDROM 2.2.5.
- Hay tambi&eacute;n un libro
- m&aacute;s completo titulado ``The Complete FreeBSD'', el cual tiene
- manuales adicionales e incluye el CDROM 2.2.6. Deber&iacute;a estar
- disponible en las mejores librer&iacute;as.
-
- <p>Hay un proyecto de documentaci&oacute;n de FreeBSD al que puedes
- contactar (o mejor, participar), en la lista de distribuci&oacute;n
- <tt>doc</tt>:
- <url url="mailto:doc@FreeBSD.org" name="&lt;doc@FreeBSD.org&gt;">.
- En esta lista se tratan todos los temas referentes a la
- documentaci&oacute;n de FreeBSD. Para preguntas actuales sobre FreeBSD,
- existe la lista <tt>question</tt>: <url url="mailto:questions@FreeBSD.org"
- name="&lt;questions@FreeBSD.org&gt;">.
-
- <p>Est&aacute; disponible un "manual" (handbook a patir de ahora) de
- FreeBSD, y se puede encontrar en:
- <url url="../../handbook/index.html" name="El Handbook de FreeBSD">.
- Ten en cuenta que este es un trabajo en constante desarrollo y
- actualizaci&oacute;n, por lo que algunas secciones podr&iacute;an estar
- incompletas.
-
- <p>Teniendo en cuenta que FreeBSD 2.2.x est&aacute; basado en la
- versi&oacute;n Berkeley 4.4BSD-Lite2, la mayor&iacute;a de manuales de
- 4.4BSD con aplicables a FreeBSD 2.2.x. O'Reilly y Asociados publican
- estos manuales:
-
- <itemize>
- <item>4.4BSD System Manager's Manual <newline>
- By Computer Systems Research Group, UC Berkeley <newline>
- 1st Edition June 1994, 804 pages <newline>
- ISBN: 1-56592-080-5 <newline>
-
- <item>4.4BSD User's Reference Manual <newline>
- By Computer Systems Research Group, UC Berkeley <newline>
- 1st Edition June 1994, 905 pages <newline>
- ISBN: 1-56592-075-9 <newline>
-
- <item>4.4BSD User's Supplementary Documents <newline>
- By Computer Systems Research Group, UC Berkeley <newline>
- 1st Edition July 1994, 712 pages <newline>
- ISBN: 1-56592-076-7 <newline>
-
- <item>4.4BSD Programmer's Reference Manual <newline>
- By Computer Systems Research Group, UC Berkeley <newline>
- 1st Edition June 1994, 886 pages <newline>
- ISBN: 1-56592-078-3 <newline>
-
- <item>4.4BSD Programmer's Supplementary Documents <newline>
- By Computer Systems Research Group, UC Berkeley <newline>
- 1st Edition July 1994, 596 pages <newline>
- ISBN: 1-56592-079-1 <newline>
- </itemize>
-
- <p>Una descripci&oacute;n de estos puede ser encontrada v&iacute;a WWW en:
-
- <url url="http://gnn.com/gnn/bus/ora/category/bsd.html"
- name="Descripci&oacute;n de libros sobre 4.4BSD">
-
- <p>Para profundizar m&aacute;s en la organizacion del kernel de 4.4BSD, no
- puedes ir mal con los siguientes:
-
- <p>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels,
- and John Quarterman.<newline>
-
- <p><em>The Design and Implementation of the 4.4BSD Operating
- System</em>. Reading, Mass. : Addison-Wesley, 1996.<newline>
- ISBN 0-201-54979-4<newline>
-
- <p>Un buen libro en administraci&oacute;n de sistemas es:
-
- <p>Evi Nemeth, Garth Snyder, Scott Seebass &amp; Trent R. Hein,<newline>
- ``Unix System Administration Handbook'', Prentice-Hall, 1995<newline>
- ISBN: 0-13-151051-7<newline>
-
- <p><bf/NOTE/ Asegurate de conseguir la segunda edici&oacute;n, con
- cubierta roja y no la primera.
-
- <p>Este libro cubre las necesidades b&aacute;sicas, as&iacute; como
- TCP/IP, DNS, NFS,SLIP/PPP, sendmail, INN/NNTP, impresi&oacute;n, etc,.
- Es caro, (aproximadamente unos US&dollar;45-&dollar;55), pero vale la
- pena.
- Tambi&eacute;n incluye un cd-rom con las fuentes de varias herramientas,
- muchas de las cuales est&aacute;n incluidas, tambi&eacute;n, en la
- versi&oacute;n 2.2.6R (cdrom) de FreeBSD, incluso incluyendo versiones
- m&aacute;s modernas.
-
- <sect1>
- <heading>&iquest;C&oacute;mo accedo a la base de datos de Problem Report?</heading>
-
- <p>La base de datos de Problem Report puede ser consultada v&iacute;a
- web a traves de la direcci&oacute;n
- <url url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi"
- name="query">. Tambi&eacute;n pueden ser enviados v&iacute;a web a
- trav&eacute;s de la direcci&oacute;n
- <url url="http://www.FreeBSD.org/send-pr.html"
- name="envio">. El comando <em>send-pr(1)</em> tambi&eacute;n puede ser
- usado para el env&iacute;o de reporte de problemas.
-
- <sect1>
- <heading>
- &iquest;D&oacute;nde puedo obtener versiones ASCII/PstScript de la FAQ?
- </heading>
-
- <p>La FAQ actualizada est&aacute; disponible en el servidor Web de
- FreeBSD o en cualquiera de los mirrors en formato PostScript y texto
- (7 bits ASCII y 8 bits Latin-1).
-
- <p>Formato PostScript (unos 370KB):
- <itemize>
- <item><url url="http://www.FreeBSD.org/FAQ/FAQ.ps"
- name="http://www.FreeBSD.org/FAQ/FAQ.ps">
- </itemize>
-
- <p>Formato ASCII (unos 220KB):
- <itemize>
- <item><url url="http://www.FreeBSD.org/FAQ/FAQ.ascii"
- name="http://www.FreeBSD.org/FAQ/FAQ.ascii">
- </itemize>
-
- <p>Formato texto ISO 8859-1 (unos 220KB):
- <itemize>
- <item><url url="http://www.FreeBSD.org/FAQ/FAQ.latin1"
- name="http://www.FreeBSD.org/FAQ/FAQ.latin1">
- </itemize>
-
- <sect1>
- <heading>&iquest;D&oacute;nde puedo obtener versiones ASCII/PostScript del Handbook?
- </heading>
-
- <p>El Hansbook actualizado est&aacute; disponible en el servidor Web de
- FreeBSD o en cualquiera de los mirrors en formato PostScript y texto
- (7 bits ASCII y 8 bits Latin-1).
-
- <p>Formato PostScript (unos 1.7MB):
- <itemize>
- <item><url url="http://www.FreeBSD.org/handbook/handbook.ps"
- name="http://www.FreeBSD.org/handbook/handbook.ps">
- </itemize>
-
- <p>Formato ASCII (unos 1080KB):
- <itemize>
- <item><url url="http://www.FreeBSD.org/handbook/handbook.ascii"
- name="http://www.FreeBSD.org/handbook/handbook.ascii">
- </itemize>
-
- <p>Formato texto ISO 8859-1 (unos 1080KB):
- <itemize>
- <item><url url="http://www.FreeBSD.org/handbook/handbook.latin1"
- name="http://www.FreeBSD.org/handbook/handbook.latin1">
- </itemize>
-
- <sect1>
- <heading>El Handbook en ASCII no est&aacute; en texto plano!</heading>
-
- <p>Cierto, las versiones ASCII y Latin1 del Handbook no est&aacute;n
- estrictamente en formato de texto plano; contienen car&aacute;cteres de
- control de impresi&oacute;n asumiendo que el documento ser&aacute;
- enviado a una impresora. Si necesitas tenerlos en un formato leible,
- pasa el fichero por el programa col:
-
- <verb>
- $ col -b < inputfile > outputfile
- </verb>
-
- <sect1>
- <heading>Me gustar&iacute;a ser Mirror del web de FreeBSD!</heading>
-
- <p>Hay m&uacute;ltiples maneras de hacer mirror de las p&aacute;ginas web.
-
- <itemize>
- <item>Usando CVSUP: Puedes obtener todo el contenido del web usando
- el programa CVSUP desde el servidor cvsup.FreeBSD.org. A&ntilde;ade
- esta l&iacute;nea a tu fichero de configuraci&oacute;n de cvsup:
-
-<verb>
-www release=current hostname=/home base=/usr/local/etc/cvsup
-prefix=/usr/local/www/data/www.FreeBSD.org delete old use-rel-suffix
-
-</verb>
-
- <item>Usando rsync: Mira en <url url="http://www.FreeBSD.org/internal/mirror.html"
- name="la p&aacute;gina de mirrors"> para m&aacute;s informaci&oacute;n.
- <item>Usando mirror de FTP: Puedes bajarte la copia de los contenidos
- del web usando tu herramienta favorita de mirror de FTP. Simplemente
- empieza en ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.
- </itemize>
-
- <sect1>
- <heading>Me gustar&iacute;a traducir la documentaci&oacute;n.</heading>
- <p>Bueno, no podemos pagar, pero quiz&aacute;s te enviemos un cd-rom o
- una camiseta y a&ntilde;adiremos tu nombre en la secci&oacute;n
- "Contributors" del Handbook si nos env&iacute;as una traducci&oacute;n
- de la documentaci&oacute;n.
-
- <sect1>
- <heading>Otras fuentes de informaci&oacute;n.</heading>
-
- <p>Los siguientes grupos de news contienen temas relacionados con
- FreeBSD y sus usuarios:
-
- <itemize>
- <item><url url="news:comp.unix.bsd.FreeBSD.announce"
- name="comp.unix.bsd.FreeBSD.announce"> (moderada)
-
- <item><url url="news:comp.unix.bsd.FreeBSD.misc"
- name="comp.unix.bsd.FreeBSD.misc">
-
- <item><url url="comp.unix.bsd.misc" name="comp.unix.bsd.misc">
- </itemize>
-
- <p>Recursos Web:
-
- <itemize>
- <item>The <url url="http://www.FreeBSD.org/" name="FreeBSD Home Page">.
-
- <item><label id="pao">Si tienes un port&aacute;til asegurate de pasar
- por <url url="http://www.jp.FreeBSD.org/PAO/"
- name="Tatsumi Hosokawa's Mobile Computing page"> .
-
- <item><label id="smp">Informaci&oacute;n sobre SMP (Symmetric
- MultiProcessing), <url
- url="http://www.FreeBSD.org/~fsmp/SMP/SMP.html"
- name="soporte de SMP">.
-
- <item><label id="multimedia">Informaci&oacute;n sobre aplicaciones <url
- url="http://www.FreeBSD.org/~faulkner/multimedia/mm.html"
- name="multimedia">. Si est&aacute;s interesado espec&iacute;ficamente
- en el chip <url url="http://www.FreeBSD.org/~ahasty/Bt848.html"
- name="Bt848"> de v&iacute;deo captura, entonces sigue este link
- </itemize>
-
- <p>El FreeBSD handbook tiene una completa bibliograf&iacute;a en la
- secci&oacute;n <url url="../../handbook/bibliography.html"
- name="bibliograf&iacute;a">
- la cual recomendamos leer si est&aacute;s interesado en comprar libros
- actuales relacionados con estos temas.
-
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/serial.sgml b/es_ES.ISO8859-1/FAQ/serial.sgml
deleted file mode 100644
index 35f6b3cb71..0000000000
--- a/es_ES.ISO8859-1/FAQ/serial.sgml
+++ /dev/null
@@ -1,538 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Comunicaciones serie<label id="serial"></heading>
-
- <p>Esta secci&oacute;n responde las preguntas mas frecuentes sobre las
- comunicaciones serie con FreeBSD. PPP y SLIP se tratan en la
- secci&oacute;n <ref id="networking" name="Networking">.
-
- <sect1>
- <heading>&iquest;C&oacute;mo se si FreeBSD ha encontrado mis puertos serie?</heading>
-
- <p>Cuando el kernel de FreeBSD arranca, testear&aacute; los puertos serie
- del sistema que est&eacute;n configurados en el kernel. Puedes estar
- atento a los mensajes de la c&oacute;nsola o ejecutar el comando:
-
- <verb>
- dmesg | grep sio
- </verb>
-
- <p>una vez el sistema est&eacute; en funcionamiento.
-
- <p>Aqu&iacute; tienes un ejemplo del resultado de la ejecuci&oacute;n
- del comando:
-
- <verb>
- sio0 at 0x3f8-0x3ff irq 4 on isa
- sio0: type 16550A
- sio1 at 0x2f8-0x2ff irq 3 on isa
- sio1: type 16550A
- </verb>
-
- <p>Esto muestra dos puertos serie. El primero en la irq 4 usando
- la direcci&oacute;n <tt/0x3f8/, y tiene una UART 16550A. El segundo usa
- el mismo tipo de chip pero est&aacute; en la irq 3 y usa la
- direcci&oacute;n <tt/0x2f8/. Los m&oacute;dems internos son tratados
- como puertos serie, exceptuando que siempre tienen un m&oacute;dem
- adjuntado al puerto.
-
- <p>El kernel <tt/GENERIC/ incluye soporte para dos puertos serie
- usando la misma irq y direcci&oacute;n que en el ejemplo anterior. Si
- estas opciones no son correctar para tu sistema, o si has a&ntilde;adido
- m&oacute;dems internos o tienes m&aacute;s puertos serie de los que
- est&aacute;n configurados en el kernel, solo tienes que reconfigurar el
- kernel. Mira en la secci&oacute;n
- <ref id="make-kernel" name="about building a kernel"> para m&aacute;s
- detalles.
-
- <sect1>
- <heading>&iquest;C&oacute;mo se si FreeBSD ha encontrado mi m&oacute;dem interno?</heading>
-
- <p>Respondido en la secci&oacute;n anterior.
-
- <sect1>
- <heading>He actualizado a 2.0.5 y mi <tt/tty0X/ no existen!</heading>
-
- <p>No te preocupes, han sido integrados en los dispositivos <tt/ttydX/.
- Tendr&aacute;s que modificar algunos ficheros antiguos de
- configuraci&oacute;n.
-
- <sect1>
- <heading>&iquest;C&oacute;mo accedo a los puertos serie en FreeBSD?</heading>
-
- <p>El tercer puerto serie, <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?sio" name="sio2"> (conocido
- como COM3 en DOS), est&aacute; en <tt>/dev/cuaa2</tt> para dispositivos de
- salida (dial-out) y en <tt>/dev/ttyd2</tt> para dispositivos de
- entrada (dial-in). Cu&aacute;l es la diferencia entre estas dos clases de
- dispositivos?.
-
- <p>Usas los <tt/ttydX/ para los entrantes. Al abrir <tt>/dev/ttydX</tt>
- en "blocking mode", un proceso esperar&aacute; para que el dispositivo
- <tt/cuaaX/ correspondiente se vuelva inactivo. Cuando abres un
- dispositivo <tt/cuaaX/, se asegura de que el puerto serie no est&aacute;
- en uso por un dispositivo <tt/ttydX/. Si el puerto est&aacute; disponible,
- se lo "roba" al dispositivo <tt/ttydX/. Al mismo tiempo, el dispositivo
- <tt/cuaaXX/ no se preocupa de la detecci&oacute;n de portadora. Con este
- esquema, y un m&oacute;dem en respuesta autom&aacute;tica, puedes
- recibir usuarios remotos y puedes hacer conexiones externas con el mismo
- m&oacute;dem, mientras el sistema se preocupa de evitar los posible
- conflictos.
-
- <sect1>
- <heading>&iquest;C&oacute;mo activo el soporte de tarjetas serie multipuerto?</heading>
-
- <p>Otra vez, en la secci&oacute;n de configuraci&oacute;n del kernel
- tienes la informaci&oacute;n. Para una tarjeta multipuerto, pon una
- l&iacute;nea <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sio"
- name="sio"> para cada puerto serie de la tarjeta en el fichero de
- configuraci&oacute;n del kernel. Especifica la irq y vector solo en una
- de las l&iacute;neas.
- Todos los puertos de la tarjeta compartir&aacute;n la misma irq. Por
- consistencia, usa el &uacute;ltimo puerto serie para especificar la irq.
- De la misma manera, especifica la opci&oacute;n <tt/COM&lowbar;MULTIPORT/.
-
- <p>El siguiente ejemplo es para una tarjeta AST 4-port en la irq 7:
-
- <verb>
- 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
- </verb>
-
- <p>Los flags indican que el puerto master tiene un n&uacute;mero menor
- de 7 (<tt/0x700/), los diagn&oacute;sticos est&aacute;n activados durante
- el testeo (<tt/0x080/), y los puertos comparten una irq (<tt/0x001/).
-
- <sect1>
- <heading>&iquest;Puede manejar FreeBSD tarjetas multipuerto compartiendo irq?</heading>
-
- <p>Todav&iacute;a no. Tendr&aacute;s que usar una irq diferente para cada
- tarjeta.
-
- <sect1>
- <heading>&iquest;Puedo cambiar los par&aacute;metros serie por defecto para un puerto?</heading>
-
- <p>El dispositivo <tt/ttydX/ (o <tt/cuaaX/) es el que querr&aacute;s abrir
- para tus aplicaciones. Cuando un proceso abre el dispositivo,
- tendr&aacute; una serie de configuraciones I/O por defecto. Puedes ver
- estas configuraciones con el comando:
-
- <verb>
- stty -a -f /dev/ttyd1
- </verb>
-
- Cuando le cambias la configuraci&oacute;n a este dispositivo, este cambio
- se mantiene hasta que el dispositivo se cierra. Cuando se reabre,
- vuelve a la configuraci&oacute;n por defecto. Para hacer cambios sobre la
- configuraci&oacute;n por defecto, puedes abrir y ajustar las opciones del
- "estado inicial" del dispositivo. Por ejemplo, para poner el
- dispositivo tty5 en modo <tt/CLOCAL/, 8 bits, y contro del flujo
- <tt>XON/XOFF</tt>, haz
-
- <verb>
- stty -f /dev/ttyid5 clocal cs8 ixon ixoff
- </verb>
-
- <p>Un buen lugar para hacer esto es en <tt>/etc/rc.serial</tt>. Ahora,
- una aplicaci&oacute;n tendr&aacute; esta configuraci&oacute;n por
- defecto cuando abra el puerto <tt/ttyd5/.
-
- <p>Tambi&eacute;n puedes prevenir o limitar ciertos cambios que pretenda
- hacer una aplicaci&oacute;n. Para ello, ajusta el "lock state" del
- dispostivo. Por ejemplo, para bloquear la velocidad del puerto
- <tt/ttyd5/ a 57600 bps, haz:
-
- <verb>
- stty -f /dev/ttyld5 57600
- </verb>
-
- <p>Ahora, una aplicaci&oacute;n que abre <tt/ttyd5/ e intenta cambiar la
- velocidad del puerto no podr&aacute; hacerlo.
-
- <p>Naturalmente, deber&iacute;as hacer que el estado inicial y el estado
- de bloqueo sean solo de escritura para el usuario <tt/root/. El script
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV"
- name="MAKEDEV"> <bf/NO/ hace esto cuando crea el dispositivo.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo activar logins de entrada en mi m&oacute;dem?</heading>
-
- <p>Quieres hacerte proveedor de Internet, eh?. Primero,
- necesitar&aacute;s uno o mas m&oacute;dems que puedan responder
- autom&aacute;ticamente. Tu m&oacute;dem necesitar&aacute; activar el
- carrier-detect s&oacute;lo cuando detecte una portadora y no tenerla
- activada continuamente. Necesitar&aacute; cortar la comunicaci&oacute;n
- y resetearse &eacute;l mismo cuando la l&iacute;nea <tt/DTR/ pase de on
- a off.
- Probablemente usar&iacute;a <tt>RTS/CTS</tt> para el control de flujo.
- Finalmente, debe usar una velocidad constante entre el ordenador y
- &eacute;l mismo, pero deber&iacute;a negociar la velocidad entre
- &eacute;l mismo y el m&oacute;dem remoto.
-
- <p>Para muchos m&oacute;dems compatibles Hayes, este comando
- crear&aacute; estas configuraciones y las grabar&aacute; en la memoria no
- vol&aacute;til:
-
- <verb>
- AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W
- </verb>
-
- <p>Mira la secci&oacute;n <ref id="direct-at" name="enviar comandos AT">
- para saber como enviar estas configuraciones al m&oacute;dem sin
- necesidad de un programa terminal de DOS.
-
- <p>A continuaci&oacute;n, a&ntilde;ade una l&iacute;nea en el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">
- para el m&oacute;dem. Este fichero lista todos los puertos en los que el
- sistema operativo esperar&aacute; los logins. La l&iacute;nea
- ser&iacute;a como esta:
-
- <verb>
- ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
- </verb>
-
- <p>Esta l&iacute;nea indica que el segundo puerto serie
- <tt>/dev/ttyd1</tt> tiene un m&oacute;dem conectado, la velocidad es de
- 57600 bps y sin paridad (<tt/std.57600/. El tipo de terminal para este
- puerto es "dialup".
- El puerto est&aacute; "on" y es inseguro (lo que significa que los logins
- como root no son permitidos).
-
- <p>Muchos usuarios, ponen un sus ficheros .profile o .login un
- prompt para el tipo de terminal. El ejemplo muestra el puerto como
- inseguro. Para ser root en ese puerto, hacer el login como un usuario
- normal, y ejecutar el comando su. Si en lugar de inseguro, el terminal
- es seguro (secure), puedes hacer login como root directamente.
-
- <p>Despues de modificar el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">,
- necesitas lanzar una se&ntilde;al <tt/HUP/ al proceso <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?init" name="init">:
-
- <verb>
- kill -HUP 1
- </verb>
-
- <p>Esto fuerza al proceso init a releer el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">.
- El proceso init arrancar&aacute; los procesos getty en todos los puertos
- configurados como "on". Puedes ver si los logins est&aacute;n disponibles
- en los puertos tecleando:
-
- <verb>
- ps -ax | grep '[t]tyd1'
- </verb>
-
- <p>deber&iacute;as ver algo como:
-
- <verb>
- 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo conectar un dumb terminal a un FreeBSD?</heading>
-
- <p>Si est&aacute;s usando otro ordenador como terminal en tu sistema
- FreeBSD, usa un cable null m&oacute;dem entre los dos puertos serie. Si
- ya est&aacute;s usando un terminal, mira en las instrucciones del mismo.
-
- <p>A continuaci&oacute;n, modifica el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">
- Por ejemplo, si est&aacute;s instalando un terminal WYSE-50 en el quinto
- puerto serie, usa una l&iacute;nea como esta:
-
- <verb>
- ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
- </verb>
-
- <p>Este ejemplo muestra que el puerto <tt>/dev/ttyd4</tt> tiene un
- terminal Wyse50 conectado a 38400 bps sin paridad y los logins de
- root son permitidos.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; no puedo ejecutar <tt/tip/ o <tt/cu/?</heading>
-
- <p>En tu sistema, los programas <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> y <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?cu" name="cu"> son probablemente
- ejecutables solo por <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?uucp"
- name="uucp"> y el grupo <tt/dialer/. Puedes usar el grupo <tt/dialer/
- para controlar quien tiene acceso al m&oacute;dem o sistemas remotos.
- S&oacute;lo tienes que a&ntilde;adirte tu mismo al grupo dialer.
-
- <p>Alternativamente, puedes dejar que todos los usuarios de tu sistema
- ejecuten <tt/tip/ y <tt/cu/ tecleando:
-
- <verb>
- # chmod 4511 /usr/bin/cu
- # chmod 4511 /usr/bin/tip
- </verb>
-
- <sect1>
- <heading>Mi m&oacute;dem hayes no est&aacute; soportado. &iquest;Que puedo hacer?</heading>
-
- <p>Actualmente, el man de <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> est&aacute;
- anticuado. Hay un dialer Hayes gen&eacute;rico. Solo usa
- ``<tt/at=hayes/'' en tu fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote">.
-
- <p>El driver Hayes no es tan desarrollado como para reconocer algunas
- de las caracter&iacute;sticas avanzadas de los m&oacute;dems modernos,
- mensajes como <tt/BUSY/, <tt/NO DIALTONE/ o <tt/CONNECT 115200/ lo
- pueden confundir.
- Deber&iacute;as anular estos mensajes cuando uses <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> (utilizando
- la cadena <tt/ATX0&amp;W/).
-
- <p>Tambi&eacute;n, el timeout de llamada para <tt/tip/ est&aacute; en 60
- segundos. Tu m&oacute;dem deber&iacute;a usar algo menor, o tip puede
- pensar que hay un problema de comunicaci&oacute;n. Intenta con
- <tt/ATS7=45&amp;W/.
-
- <sect1>
- <heading>
- &iquest;C&oacute;mo puedo introducir estos comandos AT?<label id="direct-at">
- </heading>
-
- <p>Haz lo que se llama una entrada <tt/directa/ en el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote"
- name="/etc/remote">. Por ejemplo, si tu m&oacute;dem est&aacute;
- conectado al primer puerto serie, <tt>/dev/cuaa0</tt>, escribe la
- siguiente l&iacute;nea:
-
- <verb>
- cuaa0:dv=/dev/cuaa0:br#19200:pa=none
- </verb>
-
- <p>Usa la velocidad m&aacute;s alta que soporte tu m&oacute;dem en la
- secci&oacute;n br.
- A continuaci&oacute;n teclea <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip cuaa0">
- y estar&aacute;s conectado al m&oacute;dem.
-
- <p>Si no existe el dispositivo <tt>/dev/cuaa0</tt> en tu sistema
- , teclea lo siguiente:
-
- <verb>
- # cd /dev
- # ./MAKEDEV cuaa0
- </verb>
-
- <p>O usa el comando cu como root con los siguientes par&aacute;metros:
-
- <verb>
- # cu -l``line'' -s``speed''
- </verb>
-
- <p>con line siendo el puerto serie (por ejemplo <tt>/dev/cuaa0</tt>>)
- y speed siendo la velocidad (por ejemplo <tt>57600</tt>. Cuando
- termines de entrar los comandos AT, pulsa la tecla <tt>.</tt> para
- salir.
-
- <sect1>
- <heading>El s&iacute;mbolo <tt/@/ no funciona correctamente!</heading>
-
- <p>El s&iacute;mbolo <tt/@/ en la opci&oacute;n de n&uacute;meros de
- tel&eacute;fono indica a tip que busque en el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?phones(5)" name="phone(5)"> un
- n&uacute;mero de tel&eacute;fono determinado. Pero el s&iacute;mbolo
- <tt/@/ es tambi&eacute;n un car&aacute;cter especial en otros ficheros y
- opciones como <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote"
- name="/etc/remote">. Pon una contrabarra junto al car&aacute;cter:
-
- <verb>
- pn=\@
- </verb>
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo llamar desde la l&iacute;nea de comandos?</heading>
-
- <p>Pon lo que se llama una entrada <tt/gen&eacute;rica/ en el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote"
- name="/etc/remote">. Por ejemplo:
-
- <verb>
- 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:
- </verb>
-
- <p>Entonces puedes hacer cosas como <tt/tip -115200 5551234/. Si
- prefieres usar <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cu"
- name="cu"> antes que <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip">, usa una
- entrada gen&eacute;rica de cu:
-
- <verb>
- cu115200|Use cu to dial any number at 115200bps:\
- :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
- </verb>
-
- <p>y teclea ``<tt/cu 5551234 -s 115200/''.
-
- <sect1>
- <heading>&iquest;Tengo que teclear la velocidad cada vez que hago esto?</heading>
-
- <p>Pon una entrada para <tt/tip1200/ o <tt/cu1200/, pero puedes usar
- la velocidad que mejor se amolde a tus necesidades. <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> piensa que
- una buena velocidad por defecto es 1200 bps ya que busca una entrada
- <tt/tip1200/. No tienes por que usar 1200 bps.
-
- <sect1>
- <heading>Accedo a diferentes hosts a trav&eacute;s de un servidor de terminales.</heading>
-
- <p>En lugar de esperar a que est&eacute;s conectado y teclear
- <tt/CONNECT &lt;host&gt;/ cada vez, usa la opci&oacute;n <tt/cm/ de tip.
- Por ejemplo, estas entradas en el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote">:
-
- <verb>
- 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/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
- </verb>
-
- <p>Esto har&aacute; que puedas teclear <tt/tip pain/ o <tt/tip muffin/
- para conectarte a las m&aacute;quinas pain o muffin.
-
- <sect1>
- <heading>&iquest;Puede tip intentar m&aacute;s de una l&iacute;nea para cada lugar?</heading>
-
- <p>Este es un problema habitual en universidades con diferentes
- l&iacute;neas de m&oacute;dem y unos cientos de usuarios intentado
- usarlas...
-
- <p>Haz una entrada para tu universidad en el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote">
- y usa <tt>\@</tt> para la opci&oacute;n <tt/pn/:
-
- <verb>
- big-university:\
- :pn=\@:tc=dialout
- dialout:\
- :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
- </verb>
-
- <p>Entonces, lista los n&uacute;meros de tel&eacute;fono de la
- universidad en el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?phones" name="/etc/phones">:
-
- <verb>
- big-university 5551111
- big-university 5551112
- big-university 5551113
- big-university 5551114
- </verb>
-
- <p><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?tip"
- name="tip"> intentar&aacute; cada uno de estos n&uacute;meros en el
- orden en el que est&eacute;n listados. Si quieres que se realicen
- reintentos, ejecuta <tt/tip/ en una bucle while.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; tengo que teclea CTRL+P dos veces para enviar CTRL+P una vez?</heading>
-
- <p>CTRL+P es el car&aacute;cter por defecto de "forzar", usado para
- indicarle al programa
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip">
- que el pr&oacute;ximo car&aacute;cter es un dato literal. Puedes
- configurar el car&aacute;cter "forzar" a cualquier otro car&aacute;cter
- con el escape <tt/~s/, el cual significa "poner una variable".
-
- <p>Teclea <tt/~sforce=&lt;single-char&gt;/ seguido de una nueva
- l&iacute;nea. <tt/&lt;single-char&gt;/ es cualquier car&aacute;cter
- simple. Si dejas libre <tt/&lt;single-char&gt;/ entonces el
- car&aacute;cter de forzar es el caracter nul, al cual puedes acceder
- tecleando CTRL+2 o CTRL+SPACE. Un valor m&aacute;s adecuado para
- <tt/&lt;single-char&gt;/ es SHIFT+CTRL+6, el cual solo es usado en
- algunos servidores de terminales.
-
- <p>Puedes tener el car&aacute;cter de forzar donde quieras, especificando
- lo siguiente en tu fichero <tt>&dollar;HOME/.tiprc</tt>
-
- <verb>
- force=<single-char>
- </verb>
-
- <sect1>
- <heading>De repente, todo lo que tecleo es en may&uacute;sculas</heading>
-
- <p>Has debido pulsar CTRL+A, <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> tiene este
- car&aacute;cter especial para gente que tenga la tecla caps-lock
- estropeada. Usa <tt/~s/ como en la secci&oacute;n anterior y pon la
- variable "raisechar" a un valor razonable. De hecho, puedes ponerla al
- mismo valor que que el car&aacute;cter de forzar, si no esperas usar
- estas caracter&iacute;sticas.
-
- <p>Aqui hay un ejemplo del fichero .tiprc perfecto para usuarios de
- Emacs que necesiten teclear CTRL+2 y CTRL+A muchas veces:
-
- <verb>
- force=^^
- raisechar=^^
- </verb>
-
- <p>El simbolo ^^ es SHIFT+CTRL+6.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo hacer transferecia de ficheros con <tt/tip/?</heading>
-
- <p>Si est&aacute;s conectado con otro sistema UNIX, puedes enviar y
- recibir ficheros con <tt/~p/ (put) y <tt/~t/ (take). Estos comandos
- ejecutan
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cat" name="cat"> y
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?echo" name="echo">
- en el sistema remoto para aceptar y enviar ficheros. La sintaxis es:
-
- <verb>
- ~p <local-file> [<remote-file>]
- ~t <remote-file> [<local-file>]
- </verb>
-
- <p>No hay chequeo de errores, por lo que es mejor usar otro protocolo
- como zmodem.
-
- <sect1>
- <heading>&iquest;C&oacute;mo puedo usar zmodem con <tt/tip/?</heading>
-
- <p>Primero, instala uno de los programas zmodem de la colecci&oacute;n de
- ports (por ejemplo
- <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^lrzsz" name="lrzsz">
- y <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^rzsz"
- name="rzsz">).
-
- <p>Para recibir ficheros, inicia el programa de env&iacute;o en la parte
- remota. A continuaci&oacute;n, pulsa enter y teclea
- <tt/~C rz/'' (or ``<tt/~C lrz/'' si instalaste lrzsz) para empezar
- a recibir localmente.
-
- <p>Para enviar ficheros, inicia el programa de recepci&oacute;n en la
- parte remota. A continuaci&oacute;n pulsa enter y teclea
- <tt/~C sz &lt;files&gt;/'' (o <tt/~C lsz &lt;files&gt;/) para enviarlos
- al sistema remoto.
-
- <sect1>
- <heading>FreeBSD parece que no puede encontrar mis puertos series
- a&uacute;n cuando la configuraci&oacute;n es correcta.</heading>
-
- <p>Las placas bases y tarjetas con UARTs de Acer no son detectadas
- correctamente por FreeBSD durante la fase de detecci&oacute;n serie.
- Obten un parche de
- <url url="http://www.lemis.com/serial-port-patch.html"
- name="www.lemis.com"> para solucionar el problema.
-
-
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/troubleshoot.sgml b/es_ES.ISO8859-1/FAQ/troubleshoot.sgml
deleted file mode 100644
index 4a9ce011cf..0000000000
--- a/es_ES.ISO8859-1/FAQ/troubleshoot.sgml
+++ /dev/null
@@ -1,418 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>Problemas<label id="troubleshoot"></heading>
-
- <sect1>
- <heading>Tengo bloques err&oacute;neos en mi disco duro!<label id="awre"></heading>
-
- <p>Los discos SCSI deber&iacute;an ser capaces de marcar estos bloques
- err&oacute;neos automaticamente para que no presenten problemas. Algunos
- discos, por alguna raz&oacute;n desconocida, se venden con esta
- caracter&iacute;stica desactivada.
-
- <p>Para activar esta opci&oacute;n, tendr&aacute;s que editar una de las
- opciones del dispositivo, lo que puede ser hecho con FreeBSD tecleando el
- siguiente comando (como root):
-
- <verb>
- scsi -f /dev/rsd0c -m 1 -e -P 3
- </verb>
-
- <p>y cambiando los valores de AWRE y ARRE de 0 a 1:-
-
- <verb>
- AWRE (Auto Write Reallocation Enbld): 1
- ARRE (Auto Read Reallocation Enbld): 1
- </verb>
-
- <p>Para otros tipos de discos, dependes de las caracter&iacute;sticas de
- los sistemas operativos. Desafortunadamente, el comando "bad144"
- que se incluye en FreeBSD, necesita ser desarrollado m&aacute;s en
- profundidad.
-
- <p>Se <em/supone/ que los discos IDE incluyen de serie la posibilidad
- de "remapear" los bloques da&ntilde;ados; si tienes documentaci&oacute;n
- de tu disco, podr&aacute;s ver si esta opci&oacute;n est&aacute; activada
- o desactivada.
-
-
- <sect1>
- <heading>FreeBSD no reconoce mi Bustek 742a EISA SCSI!</heading>
-
- <p>Esta informaci&oacute;n es espec&iacute;fica para la tarjeta 742a,
- pero puede ser aplicable a otras tarjetas Buslogic. (Bustek = Buslogic)
-
- <p>Existen dos versiones de la tarjeta 742a. Son revisiones de
- hardware A-G y H. La letra de revisi&oacute;n est&aacute; situada
- despu&eacute;s del n&uacute;mero de ensamblaje. La 742a tiene 2 ROMs,
- una es la BIOS y la otra es el Firmware. FreeBSD no se fija en la
- versi&oacute;n de BIOS de la tarjeta, pero si en la de Firmware.
- Buslogic te enviar&aacute; una actualizaci&oacute;n de de las ROMs si te
- pones en contacto con su departamento t&eacute;cnico. La BIOS y el
- Firmware son distribuidas de manera inseparable. Deber&iacute;as tener
- la versi&oacute;n de Firmware m&aacute;s actualizada para la
- revisi&oacute;n de hardware de tu tarjeta.
-
- <p>Las tarjetas con revisi&oacute;n A-G solo pueden aceptar BIOS/Firmware
- 2.41/2.21. La revisi&oacute;n H y superiores pueden aceptar las versiones
- m&aacute;s actuales 4.70/3.37. La diferencia entre las versiones de
- Firmware es que la 3.38 soporta "round robin".
-
- <p>Las tarjetas Buslogic tienen un n&uacute;mero de serie serigrafiado
- en ellas. Si tienes una revisi&oacute;n de hardware antigua, puedes llamar
- al departamento de RMA de Buslogic y darles el n&uacute;mero de serie de
- la tarjeta para intentar cambiarla por una revisi&oacute;n superior del
- hardware.
-
- <p>FreeBSD 2.1 solo soporta revisiones de Firmware 2.21 o superiores.
- Si tienes una versi&oacute;n inferior, tu tarjeta no ser&aacute;
- reconocida como Buslogic. Quiz&aacute;s sea reconocida como una Adaptec
- 1540. Las primeras versiones de Firmware de Buslogic contienen una modo
- de emulaci&oacute;n de la AHA1540.
-
- <p>Si tienes una revisi&oacute;n de hardware antigua y consigues una
- m&aacute;s actual (2.21), necesitar&aacute;s chequear la posici&oacute;n
- del jumper W1 y asegurarte que est&aacute; en la posici&oacute;n B-C
- (por defecto esta en B-C).
-
-
- <sect1>
- <heading>
- Mi controladora SCSI HP Netserver's no es detectada!
- </heading>
-
- <p>Este es un problema ya conocido. Las controladoras SCSI EISA
- integradas en la placa base en las m&aacute;quinas HP Netserver, ocupan
- el slot numero 11. El espacio de direcciones para los slots
- EISA >=10 colisionan con los espacios de direcciones asignados
- para los dispositivos PCI, y la autoconfiguraci&oacute;n de FreeBSD no
- maneja esta situaci&oacute;n demasiado bien.
-
- <p>Lo mejor que puedes hacer es pretender que no existan clases
- de rangos de direcciones :), cambiando el valor de la opci&oacute;n del
- kernel <tt/EISA_SLOTS/ a un valor de 12.
- Configura y compila un nuevo kernel como se describe en la
- <url url="../../handbook/kernelconfig.html"
- name="entrada correspondiente del manual">.
-
- <p>Por supuesto, esto presenta un peque&ntilde;o problema. Para poder
- solucionarlo, es necesario un truco en la utilidad de
- configuraci&oacute;n. No uses el interface "visual", simplemente teclea
- lo siguiente en la l&iacute;nea de comando de la utilidad
-
- <verb>
- eisa 12
- quit
- </verb>
-
- <p>Esperamos que en las pr&oacute;ximas versiones tengamos solucionados
- estos temas.
-
- <sect1>
- <heading>&iquest;Qu&eacute; ocurre con la controladora IDE CMD640?</heading>
-
- <p>No funciona. No puede manejar comandos en los dos canales
- simult&aacute;neamente.
-
- <p>Hay una soluci&oacute;n posible y se activa autom&aacute;ticamente si
- tu sistema usa este chip. Para m&aacute;s detalles, referirse al man del
- driver de discos (man 4 wd).
-
- <p>Si todav&iacute;a est&aacute;s usando FreeBSD 2.2.1 o 2.2.2 con una
- controladora IDE CMD640 y quieres usar el segundo canal, crea un nuevo
- kernel con <tt/options "CMD640"/ activada. Esta es la opci&oacute;n por
- defecto en la versi&oacute;n 2.2.5 y superiores.
-
- <sect1>
- <heading>Tengo mensajes como ``<tt/ed1: timeout/''.</heading>
-
- <p>Esto, normalmente es causado por conflictos de interrupciones (por
- ejemplo, dos tarjetas usando la misma IRQ). Las versiones
- anteriores a la 2.0.5R eran tolerantes con los problemas de
- conflictos de IRQ. A partir de esa versi&oacute;n, los conflictos de IRQ
- ya no son tolerados. Arranca con la opci&oacute;n -c y cambia la entrada
- correspondiente a tu tarjeta.
-
- <p>Si est&aacute;s usando conectores BCN en tu tarjeta de red, el mensaje
- de error puede ser debido a una mala terminaci&oacute;n de la red. Para
- chequear esto, conecta un terminador directamente a la salida BNC de la
- tarjeta (sin cable) y mira si el mensaje desaparece.
-
- <sect1>
- <heading>Cuando monto el CDROM, obtengo ``Incorrect super block''.</heading>
-
- <p>Tienes que indicar el tipo de dispositivo que quieres montar. Por
- defecto <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?mount"
- name="mount"> asumir&aacute; que el dispositivo que quieres montar es
- ``<tt/ufs/''.
- Si quieres montar un CDROM, tienes que especificar <tt/-t cd9660/.
- Esto hace que el sistema asuma que tiene que montar un sistema de
- ficheros con formato ISO 9660 que es lo que los CDROM deben tener.
-
- <p>Como ejemplo, si quieres montar una unidad CDROM,
- <tt>/dev/cd0c</tt>, bajo <tt>/mnt</tt>, tienes que ejecutar
-
- <verb>
- mount -t cd9660 /dev/cd0c /mnt
- </verb>
-
- <p>Ten en cuenta que el nombre de tu dispositivo
- (<tt>/dev/cd0c</tt> en este ejemplo) puede ser diferente dependiendo
- del interface que est&eacute;s usando. El comando anterior puede ser
- acortado tecleando:
-
- <verb>
- mount_cd9660 /dev/cd0c /mnt
- </verb>
-
- <sect1>
- <heading>Cuando monto un CDROM, obtengo ``Device not configured''.</heading>
-
- <p>Esto, generalmente, significa que no hay ning&uacute;n disco en el
- lector de CDROM. Tambi&eacute;n puede significar que el lector no es
- visible para el bus. Chequea que est&aacute; bi&eacute;n configurado en
- lo referente a master/slave si es IDE (ATAPI).
-
- <p>Algunas veces un CDROM SCSI puede "desaparecer" por que no ha tenido
- tiempo suficiente para responder a un reset del bus. Si tienes un
- CDROM SCSI, a&ntilde;ade la siguiente l&iacute;nea en el fichero de
- configuraci&oacute;n del kernel y recomp&iacute;lalo.
-
- <verb>
- options "SCSI_DELAY=15"
- </verb>
-
- <sect1>
- <heading>Mi impresora es ridiculamente lenta. &iquest;Qu&eacute; puedo hacer?</heading>
-
- <p>Si es paralelo, y el &uacute;nico problema es la lentitud, intenta
- configurar el puero de impresora en modo "polled":
-
- <verb>
- lptcontrol -p
- </verb>
-
- <p>Algunas impresoras nuevas de HP son conocidas por no trabajar
- correctamente en modo de interrupci&oacute;n, aparentemente debido (y
- todav&iacute;a no exactamente entendido), a un problema de "timing".
-
- <sect1>
- <heading>Mis programas ocasionalmente mueren con errores ``Signal 11''.</heading>
-
- <p>Esto puede ser por hardware err&oacute;neo (memoria, placa base, etc).
- Intenta ejecutar alg&uacute;n programa de test de memoria. Ten en cuenta
- que es posible que tu memoria pase el test del programa que uses,
- pero que falle en algunas condiciones de uso, como en compilaci&oacute;n
- de kernel.
-
- <p>La FAQ SIG11 (listada m&aacute;s abajo) apunta a problemas de
- lentitud de memoria. Incrementa el n&uacute;mero de "wait states" en tu
- BIOS o instala una memoria m&aacute;s r&aacute;pida.
-
- <p>Tambi&eacute;n puedes intentar desactivar el cach&eacute; de placa
- base en la BIOS y comprueba si se resuelve el problema.
-
- <p>Hay una extensa FAQ en
- <url url="http://www.bitwizard.nl/sig11/" name="the SIG11 problem FAQ">
-
- <sect1>
- <heading>Cuando arranco, la pantalla queda negra!</heading>
-
- <p>Este es un problema conocido con las tarjetas de v&iacute;deo ATI
- Mach 64. El problema es que esta tarjeta usa la direcci&oacute;n
- <tt/2e8/, tambi&eacute;n usada por el puerto serie 4. Debido a un bug
- (feature?) en el driver <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?sio" name="sio.c">
- , &eacute;ste "tocar&aacute;" este puerto aunque no est&eacute; instalado
- o est&eacute; desactivado.
-
- <p>Hasta que el problema sea fijado, puedes hacer esto:
-
- <enum>
- <item>Teclea <tt/-c/ en el prompt de arranque. Esto te llevar&aacute;
- a la secci&oacute;n de configuraci&oacute;n del kernel.
-
- <item>Desactiva <tt/sio0/, <tt/sio1/, <tt/sio2/ y <tt/sio3/
- (todos ellos). De esta manera, el driver sio no se activa.
-
- <item>Teclea exit para seguir arrancando.
- </enum>
-
- <p>Si quieres ser capaz de usar tus puertos serie, tendr&aacute;s que
- compilar un nuevo kernel con la siguiente modificaci&oacute;n:
- <tt>/usr/src/sys/i386/isa/sio.c</tt>. Busca la cadena <tt/0x2e8/
- y borra esta cadena y la coma anterior (mant&eacute;n la coma siguiente).
- Ahora, compila un nuevo kernel de la manera habitual.
-
- <p>Despu&eacute;s de realizar estos cambios, puedes encontrarte aun que
- las X Window no funcionan correctamente. Algunas tarjetas de
- v&iacute;deo modernas ATI Mach 64 (especialmente la ATI Mach Xpression)
- no funcionan con la versi&oacute;n actual de <tt/XFree86/; la pantalla
- se queda negra cuando arrancas las X o ocurren cosas extra&ntilde;as en
- su funcionamiento. Puedes instalar una versi&oacute;n beta del nuevo
- servidor X que trabaja mejor, situada en
- <url url="http://www.xfree86.org" name="el servidor XFree86">
- y seguir los links hasta el download. Coge los siguientes ficheros:
-
-
- <p><tt>AccelCards, BetaReport, Cards, Devices, FILES, README.ati,
- README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc,
- X312BMa64.tgz</tt>
-
- <p>Reemplaza los viejos ficheros por las nuevas versiones y
- aseg&uacute;rate de ejecutar de nuevo<htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"
- name="xf86config">.
-
- <sect1>
- <heading>
- Tengo 128MB de RAM pero el sistema solo usa 64MB.
- <label id="reallybigram">
- </heading>
-
- <p>Debido a la forma que tiene FreeBSD de "ver" el tama&ntilde;o de
- memoria en la BIOS, solo puede detectar 16 bits
- (65535 Kbytes = 64MB) (o menos... algunas BIOS fijan el tama&ntilde;o de
- la memoria a 16MB).
-
- <p>Para solucionar este problema, tienes que usar la opci&oacute;n del
- kernel indicada m&aacute;s adelante. Hay una manera de ver la
- informaci&oacute;n completa sobre memoria en la BIOS, pero no tenemos
- espacio en los bloques de arranque (bootblocks) para hacerlo. Por ahora,
- tenemos que trabajar con la opci&oacute;n del kernel.
-
- <tt>
- options "MAXMEM=&lt;n>"
- </tt>
-
- <p>Donde <tt/n/ es tu memoria en Kilobytes. Para 128MB,
- tendr&iacute;as que usar <tt/131072/.
-
- <sect1>
- <heading>FreeBSD 2.0 aborta con ``kmem_map too small!''</heading>
-
- <p><tt /Nota/ El mensaje deber&iacute;a ser ``mb_map too small!''
-
- <p>La parada indica que el sistema no tiene memoria virtual
- suficiente para los buffers de red (espec&iacute;ficamente,
- clusters mbuf).
- Puedes incrementar la cantidad de memoria virtual disponible para
- los clusters mbuf a&ntilde;adiendo:
-
- <p><tt>options "NMBCLUSTERS=&lt;n>"</tt>
-
- <p>al fichero de configuraci&oacute;n del kernel, donde &lt;n&gt; es un
- n&uacute;mero en el rango 512-4096, dependiendo del n&uacute;mero de
- conexiones tcp simult&aacute;neas que necesites soportar. Te recomendamos
- intentar con 2048. Puedes monitorizar el n&uacute;mero de clusters mbuf
- en uso con la orden
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?netstat"
- name="netstat -m">.
-
-
- <sect1>
- <heading>``CMAP busy panic'' al arrancar con un nuevo kernel.</heading>
-
- <p>El programa que intenta detectar ficheros <tt>/var/db/kvm_*.db</tt>
- puede fallar y provocar el "panic" en el arranque.
-
- <p>Si esto ocurre, arranca en mono-usuario y haz:
-
- <verb>
- rm /var/db/kvm_*.db
- </verb>
-
- <sect1>
- <heading>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</heading>
-
- <p>Esto significa un conflicto con una controladora Ultrastor SCSI.
-
- <p>Durante el proceso de arranque, entra en el men&uacute; de
- configuraci&oacute;n del kernel y desactiva el dispositivo
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?uha(4)" name="uha0">.
-
- <sect1>
- <heading>Sendmail dice ``mail loops back to myself''</heading>
-
- <p>Esto est&aacute; contestado en la FAQ de sendmail de la siguiente
- manera:
-
- <verb>
- * Tengo el error "Local configuration error" :
-
- 553 relay.domain.net config error: mail loops back to myself
- 554 <user@domain.net>... Local configuration error
-
- C&oacute;mo puedo solventar el problema?
-
- Has intentado enviar un mail al dominio domain.net y que sea
- reenviado a un host espec&iacute;fico (en este caso relay.domain.net)
- usando un registro MX, pero la m&aacute;quina que tiene que aceptar
- ese mail, no reconoce el domimio como propio. A&ntilde;ade
- domain.net al fichero /etc/sendmail.cw (si est&aacute;s usando
- FEATURE(use_cw_file) o a&ntilde;ade "Cw domain.net" al fichero
- sendmail.cf
- </verb>
-
- <p>La versi&oacute;n actual de la <url
- url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq"
- name="FAQ de sendmail"> puede ser encontrada en
- <url url="news:comp.mail.sendmail" name="comp.mail.sendmail">,
- <url url="news:comp.mail.misc" name="comp.mail.misc">,
- <url url="news:comp.mail.smail" name="comp.mail.smail">,
- <url url="news:comp.answers" name="comp.answers">, y
- <url url="news:news.answers" name="news.answers">.
- Tambien puedes recibir una copia enviando un mail a
- <url url="mailto:mail-server@rtfm.mit.edu"
- name="mail-server@rtfm.mit.edu"> con el comando "send
- usenet/news.answers/mail/sendmail-faq" en el cuerpo del mensaje.
-
-
- <sect1>
- <heading>No funcionan correctamente las aplicaciones a pantalla completa
- en m&aacute;quinas remotas</heading>
- <p>Quiz&aacute;s la m&aacute;quina remota tiene el tipo de terminal
- diferente de <tt>cons25</tt> que es el usado por la c&oacute;nsola de
- FreeBSD.
- <p>Hay diferentes maneras de solucionar este problema:
- <itemize>
- <item>Despu&eacute;s de hacer el login en la m&aacute;quina remota,
- configura la variable SHELL como <tt>ANSI</tt> o <tt>sco</tt>.
- <item>Usa el emulador VT100 como <htmlurl
- url="http://www.FreeBSD.org/cgi/ports.cgi?screen-" name="screen">
- local. <tt>screen</tt> te permite la posibilidad de ejecutar
- m&uacute;ltiples y concurrentes sesiones desde un terminal.
- <item>Instala la base de datos del terminal <tt>cons25</tt> en la
- m&aacute;quina remota.
- <item>Lanza las X y haz el login en la m&aacute;quina remota desde
- <tt>xterm</tt>.
- </itemize>
-
- <sect1>
- <heading>Aparece el mensaje de error "calcru: negative time..."</heading>
- <p>Esto puede ser causado por varios problemas de hardware o software
- relacionados con las interrupciones. Utilizar TCP/IP sobre el puerto
- paralelo con un MTU muy grande es una buena manera de provocar este error.
- Las tarjetas gr&aacute;ficas aceleradoras tambi&eacute;n lo pueden
- provocar, teniendo que revisar la interrupci&oacute;n utilizada
- por la tarjeta.
-
- <p>El efecto de este error es que los procesos mueren con el mensaje
- "SIGXCPU exceeded cpu time limit".
-
- <p>Para FreeBSD 3.0 y posteriores desde el 29 de Noviembre de 1998: si
- el problema no puede fijarse de otra manera, la soluci&oacute;n es
- poner la variable sysctl a:
-<verb>
- sysctl -w kern.timecounter.method=1
-</verb>
- <p>Esto puede significar un impacto en el rendimiento del sistema, pero
- considerando la causa del problema, probablemente no lo notar&aacute;s. Si
- el problema persiste, mant&eacute;n la variable sysctl a uno y
- a&ntilde;ade la opci&oacute;n "NTIMECOUNTER" en tu kernel para aumentar
- su valor. Si finalmente llegas a un valor de "NTIMECOUNTER=20" el problema
- no est&aacute; resuelto, y las interrupciones est&aacute;n demasiado
- saturadas para ofrecer un bu&eacute;n rendimiento.
- </sect>
-
diff --git a/es_ES.ISO8859-1/FAQ/x.sgml b/es_ES.ISO8859-1/FAQ/x.sgml
deleted file mode 100644
index de85a03c7a..0000000000
--- a/es_ES.ISO8859-1/FAQ/x.sgml
+++ /dev/null
@@ -1,442 +0,0 @@
-<!-- $FreeBSD$ -->
-<!-- The FreeBSD Documentation Spanish Project -->
- <sect>
- <heading>El sistema X Windows y las c&oacute;nsolas virtuales<label id="x"></heading>
-
- <sect1>
- <heading>Quiero ejecutar las X, &iquest;c&oacute;mo lo hago?</heading>
-
- <p>La manera m&aacute;s f&aacute;cil es, simplemente, especificar que
- quieres usar las X durante el proceso de instalaci&oacute;n.
-
- <p>Entonces, lee y sigue la documentaci&oacute;n de la herramienta
- <htmlurl url=
- "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"
- name="xf86config">, la cual te ayuda a configurar el sistema XFree86 sobre
- las caracter&iacute;sticas propias de tu sistema (tarjeta de v&iacute;deo
- , rat&oacute;n, etc).
-
- <p>Quiz&aacute;s te interesar&iacute;a investigar y probar el servidor
- Xaccel, disponible a un precio muy razonable. Mira en la secci&oacute;n
- <ref id="xig" name="Xi Graphics"> o
- <ref id="metrox" name="Metro Link"> para m&aacute;s detalles.
-
- <sect1>
- <heading>&iquest;Porqu&eacute; no funciona mi rat&oacute;n con las X?<label id="x-and-moused"></heading>
-
- <p>Si est&aacute;s usando syscons (el driver de c&oacute;nsola por
- defecto), puedes configurar FreeBSD para soportar un rat&oacute;n en cada
- c&oacute;nsola virtual.
- Para evitar conflictos con las X, syscons soporta un dispositivo
- virtual llamado <tt>/dev/sysmouse</tt>. Todos los eventos recibidos
- desde el mouse real son escritos en el dispositivo sysmouse, usando
- el protocolo MouseSystems. Si quieres usar el rat&oacute;n en una o
- m&aacute;s c&oacute;nsolas virtuales <bf/y/ usar las X, te recomendamos
- la siguiente configuraci&oacute;n:
-
- <verb>
- /etc/rc.conf:
- moused_type=ps/2 # or whatever your actual type is
- moused_port=/dev/psm0 # or whatever your real port is
- moused_flags=
-
- /etc/XF86Config
- Section Pointer
- Protocol "MouseSystems"
- Device "/dev/sysmouse"
- .....
- </verb>
-
- <p>Hay gente que prefiere usar <tt>/dev/mouse</tt> bajo X. Para que
- esto funcione, <tt>/dev/mouse</tt> debe estar lincado a
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sysmouse"
- name="/dev/sysmouse">:
-
- <verb>
- # cd /dev
- # rm -f mouse
- # ln -s sysmouse mouse
- </verb>
-
- <sect1>
- <heading>Los menus de X Window y cajas de di&aacute;logo no funcionan bien.</heading>
-
- <p>Intenta desactivar la tecla Num Lock.
-
- <p>Si tu tecla Num Lock est&aacute; activada por defecto al arrancar el
- sistema, deber&iacute;as a&ntilde;adir la siguiente l&iacute;nea en la
- secci&oacute;n <tt/Keyboard/ del fichero <tt/XF86Config/.
-
- <verb>
- # Let the server do the NumLock processing. This should only be
- # required when using pre-R6 clients
- ServerNumLock
- </verb>
-
- <sect1>
- <heading>&iquest;Qu&eacute; es una c&oacute;nsola virtual y como creo m&aacute;s?</heading>
-
- <p>Las c&oacute;nsolas virtuales te permiten tener sesiones
- simult&aacute;neas en la misma m&aacute;quina sin necesidad de tener
- montajes complicados como una red o ejecuci&oacute;n de X.
-
- <p>Cuando el sistema arranca, mostrar&aacute; el prompt de login en el
- monitor una vez finalizado el mismo. Puedes entonces teclear
- tu login y password y empezar a trabajar (o jugar), en la primera
- c&oacute;nsola virtual.
-
- <p>En algun momento, es probablemente querras iniciar otra sesion
- , por ejemplo, para mirar la documentaci&oacute;n de un programa que
- est&aacute;s ejecutando, o para leer el correo mientras esperas que
- termine una sesi&oacute;n ftp que tienes establecida. Solo haz Alt-F2 y
- encontrar&aacute;s un prompt un prompt de login esperandote en la segunda
- "c&oacute;nsola virtual". Cuando quieras volver a la sesi&oacute;n
- original, s&oacute;lo tienes que pulsar Alt-F1.
-
- <p>La instalaci&oacute;n por defecto de FreeBSD tiene tres c&oacute;nsolas
- virtuales activadas, y Alt-F1, Alt-F2 y Alt-F3 cambian entre ellas.
-
- Para activar mas c&oacute;nsolas virtuales, edita <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">
- y a&ntilde;ade tantas entradas como c&oacute;nsolas virtuales quieras a
- partir de <tt/ttyv4/, despu&eacute;s del comentario "Virtual Terminals":
-
- <verb>
- # 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
- </verb>
-
- <p>Utiliza tantas c&oacute;nsolas como quieras o necesites. Cuantas
- m&aacute;s c&oacute;nsolas tengas, m&aacute;s recursos utilizas; esto
- puede ser importante si tienes 8MB de RAM o menos. Tambi&eacute;n te
- puede interesar cambiar el modo <tt/secure/ a <tt/insecure/.
-
- <p><bf/NOTA IMPORTANTE/ si quieres usar un servidor X <bf/DEBES/
- dejar, al menos, un terminal virtual sin usar (o desactivado).
-
- <p>La manera m&aacute;s f&aacute;cil de desactivar una c&oacute;nsola
- es "apagarla". Por ejemplo, para desactivar el terminal 12, cambia esto:
-
- <verb>
- ttyvb "/usr/libexec/getty Pc" cons25 on secure
- </verb>
-
- <p>por esto:
-
- <verb>
- ttyvb "/usr/libexec/getty Pc" cons25 off secure
- </verb>
-
- <p>Si tu teclado solo tiene 10 teclas de funci&oacute;n, tendras que
- acabar con:
-
- <verb>
- ttyv9 "/usr/libexec/getty Pc" cons25 off secure
- ttyva "/usr/libexec/getty Pc" cons25 off secure
- ttyvb "/usr/libexec/getty Pc" cons25 off secure
- </verb>
-
- <p>(Tambi&eacute;n puedes, simplemente, borrar estas l&iacute;neas.)
-
- <p>Una vez has editado el fichero <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">,
- el siguiente paso es asegurarte de que tienes suficientes
- dispositivos de terminales virtuales. La manera m&aacute;s f&aacute;cil
- de hacerlo es:
-
- <verb>
- # cd /dev
- # ./MAKEDEV vty12 # For 12 devices
- </verb>
-
- <p>A continuaci&oacute;n, la manera m&aacute;s f&aacute;cil de activar
- las c&oacute;nsolas virtuales es rearrancar el sistema. Si, realmente no
- quieres rearrancarlo, puedes para el servidor de X Window y ejecutar
- (como <tt/root/):
-
- <verb>
- kill -HUP 1
- </verb>
-
- <p>Es imperativo que pares el servidor de X Window si est&aacute;
- funcionando, antes de ejecutar este comando. Si no lo haces,
- parecer&aacute; que tu sistema est&aacute; parado/colgado despu&eacute;s
- de ejecutar el comando kill.
-
- <sect1>
- <heading>&iquest;C&oacute;mo accedo a las c&oacute;nsolas virtuales desde X?</heading>
-
- <p>Si la c&oacute;nsola est&aacute; actualmente mostrando X Window,
- puedes usar Ctrl-Alt-F1, etc, para cambiar entre las c&oacute;nsolas
- virtuales. Ten en cuenta que una vez pases de una c&oacute;nsola X Window
- a un terminal virtual, solo tienes que usar la tecla Alf- para volver a
- conmutar entre terminales virtuales o volver a las X. No necesitas pulsar
- la tecla Ctrl. Si usas la tecla Ctrl para volver a las X en alguna
- de las releases antiguas, puedes encontrarte que la c&oacute;nsola de
- texto est&aacute; bloqueada. Pulsa la tecla Ctrl de nuevo para
- desbloquearla.
-
- <sect1>
- <heading>&iquest;C&oacute;mo arranco XDM desde el fichero <tt>/etc/ttys</tt>?</heading>
-
- <p>Existen dos escuelas sobre como arrancar el <htmlurl url=
- "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm"
- name="xdm">. Una escuela arranca el xdm desde el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys"
- name="/etc/ttys"> usando el ejemplo dado, mientras que la otra
- simplemente arranca el xdm desde el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc" name="rc.local"> o
- desde un script <tt/X.sh/ en <tt>/usr/local/etc/rc.d</tt>.
- Ambos m&eacute;todos son igualmente v&aacute;lidos, y uno puede funcionar
- en situaciones que el otro no. En ambos casos el resultado es el mismo:
- el sistema X Window lanzar&aacute; un prompt de login gr&aacute;fico.
-
- <p>El m&eacute;todo ttys tiene la ventaja de documentar en que vty se
- lanzar&aacute;n las X pasando la responsabilidad de rearrancar el
- servidor X al hacer el logout al proceso init. El m&eacute;todo
- rc.local hace m&aacute;s f&aacute;cil terminar con el proceso xdm
- en caso de problemas con el servidor X.
-
- <p>Si arrancamos desde rc.local, <tt/xdm/ debe ser arrancado sin
- argumentos (como un daemon). xdm debe arrancar DESPUES del proceso
- getty, o ambos entrar&aacute;n en conflicto bloqueando la
- c&oacute;nsola. La mejor manera de evitar este problema es tener un
- script que retrase el arranque de xdm durante 10 segundos.
-
- <p>Una versi&oacute;n previa de esta FAQ dec&iacute;a que deb&iacute;as
- a&ntilde;adir el <tt/terminal virtual/ usado por las X al fichero
- <tt>/usr/X11R6/lib/X11/xdm/Xservers</tt>. Esto no es necesario: las X
- usar&aacute;n el primer <tt/terminal virtual/ que encuentre libre.
-
- <sect1>
- <heading>Cuando arranco xconsole obtengo "Couldn't open console".</heading>
-
- <p>Si arrancas las <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=X"
- name="X"> con <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=startx"
- name="startx">, los permisos en /dev/console no ser&aacute;n cambiados,
- resultando en cosas como que <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xterm"
- name="xterm -C"> y <htmlurl url=
- "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xconsole"
- name="xconsole"> no funcionen.
-
- <p>Esto se debe a la manera en que son fijados los permisos de la
- c&oacute;nsola. En un sistema multiusuario, podemos no querer que
- cualquier usuario pueda escribir en la c&oacute;nsola de sistema. Para
- usuarios que realizan logins directamente desde una m&aacute;quina con
- un VTY, existe el fichero
- <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fbtab" name="fbtab">
- para resolver estos problemas.
-
- <p>Aseg&uacute;rate de que existe al menos una l&iacute;nea como esta
- sin comentar:
-
- <verb>
- /dev/ttyv0 0600 /dev/console
- </verb>
-
- <p>Est&aacute; en <htmlurl
- url="http://www.FreeBSD.org/cgi/man.cgi?fbtab(5)"
- name="/etc/fbtab"> y asegurar&aacute; que cualquiera que realice un login
- en <tt>/dev/ttyv0</tt> ser&aacute; el propietario de la c&oacute;nsola.
-
- <sect1>
- <heading>Mi rat&oacute;n PS/2 no funciona bien en X.</heading>
-
- <p>Tu rat&oacute;n y el driver de rat&oacute;n quiz&aacute;s est&eacute;n
- fuera de sincronizaci&oacute;n.
-
- <p>En versiones 2.2.5 y anteriores, conmutando entre sesiones X y
- sesiones de terminales virtuales, pod&iacute;a provocar una
- desincronizaci&oacute;n. Si el problema ocurre muy amenudo,
- deber&iacute;as a&ntilde;adir la siguiente opci&oacute;n en el fichero
- de configuraci&oacute;n de tu kernel y recompilarlo.
-
- <verb>
- options PSM_CHECKSYNC
- </verb>
-
- <p>Mira la secci&oacute;n <ref id="make-kernel" name="creando un kernel">
- si no tienes experiencia en compilar nuevos kernels.
-
- <p>En versiones 2.2.6 y posteriores, el chequeo de sincronizaci&oacute;n
- es realizado de otra manera, y es estandard en el driver de rat&oacute;n
- PS/2. Aun as&iacute;, en casos extra&ntilde;os puedes llegar a ver
- mensajes de error de sincronizaci&oacute;n como este:
-
- <verb>
- psmintr: out of sync (xxxx != yyyy)
- </verb>
-
- y parecer que tu rat&oacute;n no funciona adecuadamente.
-
- <p>Si esto ocurre, desactiva el c&oacute;digo de chequeo de
- sincronizaci&oacute;n poniendo los flags del driver PS/2 a 0x100. Entra
- en <em>UserConfig</em> poniendo la opci&oacute;n <tt>-c</tt> en el prompt
- de arranque:
-
- <verb>
- boot: -c
- </verb>
-
- Entonces, en la l&iacute;nea de comando de <em>UserConfig</em>, teclea:
-
- <verb>
- UserConfig> flags psm0 0x100
- UserConfig> quit
- </verb>
-
- <sect1>
- <heading>Mi rat&oacute;n PS/2 de MouseSystems no funciona.</heading>
-
- <p>Hemos recibido reportes de que algunos modelos de ratones PS/2 de
- MouseSystems solo trabajan si est&aacute;n configurados en modo "alta
- resoluci&oacute;n".
-
- <p>Desafortunadamente no hay soluci&oacute;n para versiones 2.0.x y 2.1.x.
- En versiones 2.2.x, aplica el siguiente parche en
- <tt>/sys/i386/isa/psm.c</tt> y compila un nuevo kernel.
-
- <verb>
-diff -u psm.c.orig psm.c
-@@ -766,6 +766,8 @@
- if (verbose >= 2)
- log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
- unit, i);
-+ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
-+
- #if 0
- set_mouse_scaling(sc->kbdc); /* 1:1 scaling */
- set_mouse_mode(sc->kbdc); /* stream mode */
- </verb>
-
- <p>En versiones 2.2.6 o posteriores, especifica el flag 0x04 al
- driver PS/2 para poner el rat&oacute;n en modo de alta resoluci&oacute;n.
- Entra en <em>UserConfig</em>:
-
- <verb>
- boot: -c
- </verb>
-
- y en la l&iacute;nea de comandos teclea:
-
- <verb>
- UserConfig> flags psm0 0x04
- UserConfig> quit
- </verb>
-
- <p>Mira en la secci&oacute;n anterior para posibles causas de problemas
- con los ratones.
-
- <sect1>
- <heading>Cuando compilo una aplicaci&oacute;n X. <tt/imake/ no puede
- encontrar el fichero <tt/imake.tmpl/. &iquest;D&oacute;nde est&aacute;?</heading>
-
- <p>Imake.tmpl es parte del package Imake, una aplicaci&oacute;n
- estandard de compilaci&oacute;n de X. Tanto Imake como headers y otros
- ficheros necesarios para compilar aplicaciones X est&aacute;n en la
- distribuci&oacute;n de programaci&oacute;n X. Puedes instalarla desde
- el sysinstall o manualmente desde los ficheros de la distribuci&oacute;n
- X.
-
- <sect1>
- <heading>&iquest;C&oacute;mo invierto los botones del rat&oacute;n?</heading>
-
- <p>Ejecuta el comando <tt/ xmodmap -e "pointer = 3 2 1"/ desde el
- fichero .xinitrc o .xsession.
-
- <sect1>
- <heading>&iquest;C&oacute;mo instalo un "splash screen" y donde los consigo?</heading>
-
- <p>Justo antes de la publicaci&oacute;n de FreeBSD 3.1 se a&ntilde;adi&oacute;
- una nueva caracter&iacute;stica que permite mostrar "splash screens" durante los
- mensajes de arranque del sistema. Los "splash screen" deben ser un bitmap de
- 256 colores (<tt>*.BMP</tt>) o ZSoft PCX (<tt>*.PCX</tt>). Adem&aacute;s, deben tener
- una resoluci&oacute;n de 320x200 o inferior para poder trabajar en controladoras
- VGA est&aacute;ndars. Si se compila el soporte VESA en el kernel, se pueden usar
- bitmaps de hasta 1024x768. Recordar que el soporte de VESA requiere que la
- opci&oacute;n <tt>VM86</tt> sea compilada en el kernel. El soporte actual
- de VESA puede ser compilado directamente en el kernel con la opci&oacute;n de
- configuraci&oacute;n <tt>VESA</tt> o cargando el m&oacute;dulo kld VESA
- durante el arranque.</p>
-
- <p>Para usar un "splash screen" necesitas modificar los archivos de
- inicio que controlan el proceso de arranque de FreeBSD. Estos archivos cambiaron
- con FreeBSD 3.2, as&iacute; que ahora existen dos maneras de cargar un
- "splash screen":
-
- <itemize>
- <item>FreeBSD 3.1
-
- <p>El primer paso es encontrar una versi&oacute;n bitmap de tu "splash
- screen". La release 3.1 s&oacute;lo soporta bitmaps de Windows. Una
- vez hayas elegido tu "splash screen" copiala en
- <tt>/boot/splash.bmp</tt>. A continuaci&oacute;n necesitas tener
- un archivo <tt>/boot/loader.rc</tt> que contenga las siguientes
- l&iacute;neas:
-
- <verb>
- load kernel
- load -t splash_image_data /boot/splash.bmp
- load splash_bmp
- autoboot
- </verb>
- </item>
-
- <item>FreeBSD 3.2+
-
- <p>Adem&aacute;s de soportar los "splash screens" en formato PCX,
- FreeBSD 3.2 incluye un mejor sistema de configuraci&oacute;n
- del proceso de arranque. Si quieres, puedes usar el m&eacute;todo
- se&ntilde;alado para FreeBSD 3.1. Si lo haces, y quieres usar PCX,
- reemplaza <tt>splash_bmp</tt> con <tt>splash_pcx</tt>. Si por el
- contrario quieres usar la nueva configuraci&oacute;n de arranque,
- necesitas crear un archivo <tt>/boot/loader.rc</tt> que contenga
- las siguientes l&iacute;neas:
-
- <verb>
- include /boot/loader.4th
- start
- </verb>
-
- <p>y otro archivo <tt>/boot/loader.conf</tt> que contenga lo
- siguiente:
-
- <verb>
- splash_bmp_load="YES"
- bitmap_load="YES"
- </verb>
-
- <p>Esto asume que est&aacute;s usando <tt>/boot/splash.bmp</tt>
- como tu "splash screen". Si quieres usar un archivo PCX,
- copialo a <tt>/boot/splash.pcx</tt>, crea un archivo
- <tt>/boot/loader.rc</tt> como se ha indicado anteriormente, y
- crea un <tt>/boot/loader.conf</tt> que contenga:
-
- <verb>
- splash_pcx_load="YES"
- bitmap_load="YES"
- bitmap_name="/boot/splash.pcx"
- </verb>
- </item>
- </itemize>
-
- <p>Ahora todo lo que necesitas es un "splash screen". Puedes navegar
- por una inmejorable galer&iacute;a en <htmlurl
- url="http://www.cslab.vt.edu/~jobaldwi/splash/"
- name="http://www.cslab.vt.edu/~jobaldwi/splash/">.</p>
-
- </sect1>
- </sect>
-
diff --git a/es_ES.ISO8859-1/Makefile b/es_ES.ISO8859-1/Makefile
deleted file mode 100644
index a952234439..0000000000
--- a/es_ES.ISO8859-1/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# $FreeBSD$
-
-SUBDIR = books
-
-COMPAT_SYMLINK = es
-
-DOC_PREFIX = ${.CURDIR}/..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/es_ES.ISO8859-1/books/Makefile b/es_ES.ISO8859-1/books/Makefile
deleted file mode 100644
index 2b396a470c..0000000000
--- a/es_ES.ISO8859-1/books/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# $FreeBSD$
-
-SUBDIR = faq
-
-ROOT_SYMLINKS = faq
-
-DOC_PREFIX?= ${.CURDIR}/../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/es_ES.ISO8859-1/books/Makefile.inc b/es_ES.ISO8859-1/books/Makefile.inc
deleted file mode 100644
index 3e055f5b8f..0000000000
--- a/es_ES.ISO8859-1/books/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# $FreeBSD$
-#
-
-DESTDIR?= ${DOCDIR}/es_ES.ISO_8859-1/books/${.CURDIR:T}
diff --git a/es_ES.ISO8859-1/books/faq/Makefile b/es_ES.ISO8859-1/books/faq/Makefile
deleted file mode 100644
index fce771d155..0000000000
--- a/es_ES.ISO8859-1/books/faq/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# $FreeBSD$
-#
-# Build the FreeBSD FAQ
-#
-
-MAINTAINER=jesusr@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/es_ES.ISO8859-1/books/faq/book.sgml b/es_ES.ISO8859-1/books/faq/book.sgml
deleted file mode 100644
index 027cab1cbd..0000000000
--- a/es_ES.ISO8859-1/books/faq/book.sgml
+++ /dev/null
@@ -1,9343 +0,0 @@
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
-<book lang=es>
-
- <bookinfo>
- <title>Preguntas m&aacute;s frecuentes de FreeBSD 2.X, 3.X y 4.X</title>
-
- <authorgroup>
- <author>
- <surname>Proyecto de documentaci&oacute;n de FreeBSD</surname>
- </author>
- </authorgroup>
-
- <pubdate>$FreeBSD: doc/es_ES.ISO_8859-1/books/faq/book.sgml,v 1.13 2001/03/05 15:33:38 jesusr Exp $</pubdate>
-
- <abstract>
- <para>&Eacute;sta es la FAQ para sistemas FreeBSD versi&oacute;n 2.X.
- Todas las secciones est&aacute;n dirigidas a FreeBSD 2.0.5 y superiores.
- Los cap&iacute;tulos con &lt;XXX&gt; est&aacute;n bajo
- construcci&oacute;n. Si est&aacute;s interesado en colaborar en este
- proyecto, env&iacute;a un e-mail a la lista de distribuci&oacute;n del
- proyecto de documentaci&oacute;n de FreeBSD
- <ulink URL="mailto:freebsd-doc@FreeBSD.org">&lt;freebsd-doc@FreeBSD.org&gt;</ulink> o
- a la direcci&oacute;n
- <ulink URL="mailto:faq-es@es.FreeBSD.org">faq-es@es.FreeBSD.org</ulink>.
- La &uacute;ltima versi&oacute;n de este documento est&aacute; siempre disponible en el
- <ulink URL="http://www.es.FreeBSD.org/es/">Mirror espa&ntilde;ol de FreeBSD</ulink>.
- Puede obtenerse como un &uacute;nico archivo en formato
- <ulink URL="book.html">HTML</ulink> v&iacute;a HTTP o en formato texto, postscript o
- PDF desde el
- <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">servidor FTP de FreeBSD</ulink>.
- Tambi&eacute;n se pueden hacer
- <ulink URL="http://www.FreeBSD.org/search/search.html">b&uacute;squedas en las FAQ</ulink>.
- </para>
- </abstract>
- </bookinfo>
-
- <preface id=preface>
- <title>Introducci&oacute;n</title>
-
- <para>&iexcl;Bienvenido a la FAQ de FreeBSD 4.X!</para>
-
- <para>Como es habitual con las FAQ de los grupos de noticias (USENET), este
- documento pretende abarcar las preguntas m&aacute;s frecuentes referentes
- al sistema operativo FreeBSD (&iexcl;y por supuesto contestarlas!).
- Pensadas en un principio para reducir el tr&aacute;fico y evitar que se
- hagan las mismas preguntas una y otra vez, las FAQ se han convertido en un
- valorado recurso de obtenci&oacute;n de informaci&oacute;n.</para>
-
- <para>Todo el esfuerzo se ha hecho en intentar que esta FAQ sea lo
- m&aacute;s informativa posible; si tienes cualquier comentario o
- sugerencia, por favor, env&iacute;a un mail a
- <ulink URL="mailto:jesusr@FreeBSD.org">FAQ maintainer</ulink>.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; es FreeBSD?</para>
- </question>
-
- <answer>
- <para>De manera resumida, FreeBSD 2.X es un sistema operativo UNIX
- indirectamente basado en el port de Net/2 para i386 de Berkeley
- (conocido como 386BSD) realizado por William Jolitz's. Una
- descripci&oacute;n m&aacute;s detallada de FreeBSD y de c&oacute;mo
- puede trabajar, se encuentra en
- <ulink URL="http://www.FreeBSD.org/">FreeBSD home page</ulink>.****
- </para>
-
- <para>FreeBSD es usado por compa&ntilde;&iacute;as, proveedores de
- Internet, profesionales de la inform&aacute;tica, estudiantes y
- usuarios particulares de todo el mundo en su trabajo,
- educaci&oacute;n y ocio. Puedes ver a algunos de ellos en
- <ulink URL="http://www.FreeBSD.org/gallery.html">FreeBSD Gallery.</ulink></para>
-
- <para>Para informaci&oacute;n m&aacute;s detallada sobre FreeBSD, por
- favor mira en
- <ulink URL="../../handbook/index.html">FreeBSD Handbook.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Cu&aacute;l es el objetivo de FreeBSD?</para>
- </question>
-
- <answer>
- <para>El objetivo del Proyecto FreeBSD es proveer software que pueda
- ser usado en todos los &aacute;mbitos sin ning&uacute;n tipo de
- atadura. Muchos de nosotros estamos significativamente involucrados
- en el desarrollo del c&oacute;digo (y del proyecto) y no ser&iacute;a
- cierto decir que no esper&aacute;bamos o esperamos alg&uacute;n tipo
- de financiaci&oacute;n, pero definitivamente no estamos preparados
- para insistir en ello. Creemos que nuestra primera y principal
- ``misi&oacute;n'' es proporcionar el c&oacute;digo libremente, y en
- cualquier &aacute;mbito, para que el c&oacute;digo se difunda lo
- m&aacute;s posible y genere los mayores beneficios. Esto es,
- creemos en uno de los objetivos fundamentales del Software Libre y lo
- apoyamos de manera incondicional.</para>
-
- <para>El c&oacute;digo fuente de los programas registrados bajo la
- GNU General Public License (GPL) o la GNU Library General Public
- License (LGPL), se proporciona bajo las condiciones fijadas por esas
- licencias. Debido a complicaciones adicionales en el uso comercial de
- Software GPL, intentamos reemplazar ese software por otros
- registrados bajo el copyright BSD, menos estricto y m&aacute;s
- permisivo.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Por qu&eacute; se llama FreeBSD?</para>
- </question>
-
- <answer>
- <para>
- <itemizedlist>
-
- <listitem>
- <para>Este sistema debe ser usado libremente, sin coste alguno
- incluso para fines comerciales.</para>
- </listitem>
-
- <listitem>
- <para>El c&oacute;digo fuente completo del sistema operativo es
- de libre distribuci&oacute;n, y se han establecido el menor
- n&uacute;mero posible de restricciones para su uso,
- distribuci&oacute;n e incorporaci&oacute;n a otras aplicaciones
- (comerciales o no).</para>
- </listitem>
-
- <listitem>
- <para>Cualquier persona que tenga alguna sugerencia de mejora
- y/o ``parche'' de alg&uacute;n ``bug'', es libre de enviar el
- c&oacute;digo y que &eacute;ste sea a&ntilde;adido al
- c&oacute;digo fuente de la distribuci&oacute;n original (sujeto
- a una o dos condiciones obvias). </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Para todos nuestros lectores cuyo primer lenguaje no sea el
- ingl&eacute;s, aclaremos que la palabra ``free'' es usada en dos
- sentidos, uno significando ``sin coste'' y el otro ``puedes hacer lo
- que quieras''. Aparte de una o dos cosas que no puedes hacer con el
- c&oacute;digo de FreeBSD, por ejemplo decir que lo has escrito,
- realmente puedes hacer lo que quieras con &eacute;l.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Cu&aacute;l es la &uacute;ltima versi&oacute;n de FreeBSD?</para>
- </question>
-
- <answer>
- <para>La versi&oacute;n
- <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.4-RELEASE">3.4R</ulink>
- es la &uacute;ltima <emphasis>-stable</emphasis>; fue declarada
- definitiva (a partir de ahora ``release'') en Diciembre de 1999.</para>
-
- <para>Brevemente explicado, <option>-stable</option> est&aacute;
- dirigido a proveedores de Internet y otros usuarios corporativos que
- quieren estabilidad y una sucesi&oacute;n tranquila en los cambios y
- actualizaciones a las nuevas versiones y sus mejoras. S&oacute;lo
- debes usar la rama <emphasis>-current</emphasis> si est&aacute;s
- seguro de estar preparado para su mayor ``volatilidad'' (relativa a
- <emphasis>-stable</emphasis>).</para>
-
- <para>Las versiones Release se hacen cada
- <link linkend="release-freq">varios meses</link>. Aunque mucha gente
- mantiene m&aacute;s al d&iacute;a los fuentes de FreeBSD (lee las
- preguntas en <link linkend="current">FreeBSD-current</link> y
- <link linkend="stable">FreeBSD-stable</link>, ello est&aacute;
- pensado para gente que se considere preparada para seguir el
- desarrollo continuo del c&oacute;digo fuente.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="current">
- <para>&iquest;Qu&eacute; es FreeBSD-current?</para>
- </question>
-
- <answer>
- <para><ulink URL="../../handbook/cutting-edge.html#CURRENT">FreeBSD-current</ulink>
- es la versi&oacute;n de desarrollo del sistema operativo, la cual
- acabar&aacute; siendo la versi&oacute;n 4.0-RELEASE. Como es de
- suponer, esta versi&oacute;n es de inter&eacute;s s&oacute;lo para
- los desarrolladores que trabajan en el sistema y ``masoquistas'' de la
- programaci&oacute;n. Mira la <ulink URL="../../handbook/cutting-edge.html#CURRENT">secci&oacute;n correspondiente</ulink> en el
- <ulink URL="../../handbook/index.html">handbook</ulink>
- para saber c&oacute;mo funciona esta opci&oacute;n.</para>
-
- <para>Si no est&aacute;s familiarizado con el sistema operativo o no
- eres capaz de identificar la diferencia entre un problema real y un
- problema temporal, no deber&iacute;as usar FreeBSD-current. Esta rama
- a veces avanza muy r&aacute;pidamente y puede no ser compilable
- durante unos d&iacute;as. La gente que usa FreeBSD-current es capaz
- de analizar los problemas y s&oacute;lo comunicarlos si son motivo de
- errores. Preguntas como ``al ejecutar make world obtengo un error
- referente a grupos'' en la lista de distribuci&oacute;n -current
- pueden quedar fuera de lugar.</para>
-
- <para>Una release
- <ulink URL="../releases/snapshots.html">snapshot</ulink> corresponde
- al desarrollo de la rama -current; distribuciones en CDROM de esta
- versi&oacute;n est&aacute;n disponibles. Los objetivos de cada
- release snapshot son:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Comprobar la &uacute;ltima versi&oacute;n del software de
- instalaci&oacute;n.</para>
- </listitem>
-
- <listitem>
- <para>Dar a la gente que le gustar&iacute;a usar la
- versi&oacute;n -current, pero que no tiene el tiempo suficiente
- para seguir el ritmo diario de actualizaciones, una manera
- f&aacute;cil de poder instalarla en su sistema.</para>
- </listitem>
-
- <listitem>
- <para>Preservar un punto de referencia fijado en el
- c&oacute;digo en cuesti&oacute;n, s&oacute;lo en caso de que
- ``rompamos'' algo realmente importante. (De todas maneras, el CVS
- normalmente previene de que cosas tan horribles como
- &eacute;stas puedean suceder :)</para>
- </listitem>
-
- <listitem>
- <para>Asegurar que las nuevas caracter&iacute;sticas
- desarrolladas puedan ser comprobadas suficientemente por el
- mayor n&uacute;mero de gente.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>No se garantiza que ning&uacute;n snapshot pueda ser
- considerado ``calidad de producci&oacute;n''. Para conseguir
- estabilidad y un sistema garantizado, tendr&aacute;s que usar las
- versiones release.</para>
-
- <para>Las release snapshot est&aacute;n directamente disponibles en
- <ulink URL="ftp://current.FreeBSD.org/pub/FreeBSD/">ftp://current.FreeBSD.org/pub/FreeBSD/</ulink>
- y son generadas un promedio de una vez por d&iacute;a para las ramas
- 4.0-current y 3.0-stable.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="stable">
- <para>&iquest;Qu&eacute; significa FreeBSD-stable?</para>
- </question>
-
- <answer>
- <para>Cuando la versi&oacute;n de FreeBSD 2.0.5 fue declarada
- release, decidimos dividir el desarrollo de FreeBSD en dos ramas. Una
- rama fue llamada
- <ulink URL="../../handbook/stable.html">-stable</ulink> con la
- intenci&oacute;n de que s&oacute;lo los parches bien comprobados y
- peque&ntilde;as actualizaciones de determinadas partes del sistema
- fuesen incluidas en ella (para proveedores de Internet y otras
- empresas para los que no resultan deseables cambios repentinos o
- experimentales). La otra rama fue
- <ulink URL="../../handbook/cutting-edge.html#CURRENT">-current</ulink>,
- la cual ha sido, esencialmente, una l&iacute;nea com&uacute;n para
- el desarrollo de la versi&oacute;n 4.0-RELEASE. Aqu&iacute; hay un
- peque&ntilde;o gr&aacute;fico ASCII para ayudar a entender este
- sistema de desarrollo:</para>
-
- <para>
-<literallayout> 2.0
- |
- |
- | [2.1-stable]
-*BRANCH* 2.0.5 -&gt; 2.1 -&gt; 2.1.5 -&gt; 2.1.6 -&gt; 2.1.7.1 [2.1-stable ends]
- | (Mar 1997)
- |
- |
- | [2.2-stable]
-*BRANCH* 2.2.1 -&gt; 2.2.2-RELEASE -&gt; 2.2.5-RELEASE -&gt; ...
- | (Mar 1997) (Oct 1997)
- |
- |
- 3.0-SNAPs (started Q1 1997)
- |
- |
- 3.0.0-RELEASE (Oct 1998)
- |
- | [3.0-stable]
-*BRANCH* 3.1 (Feb 1999) -&gt; 3.2-RELEASE -&gt; ... future 3.x releases ...
- | (Mayo 1999)
- |
- \|/
- +
- [4.0-current continues]</literallayout>
- </para>
-
- <para>La rama -current progresa lentamente hacia la 4.0 y superiores,
- de la misma manera la anterior 2.2-estable fue sustituida por la
- release 3.0: la nueva ``rama estable'' tambi&eacute;n conocida como
- 3.0-stable. 4.0-current continuar&aacute; hasta donde los desarrollos
- activos lleguen cuando se convierta en release 4.0. En ese punto, 4.0
- se convertir&aacute; en 4.0-stable y se abrir&aacute; la nueva
- 4.1-current.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="release-freq">
- <para>&iquest;Cuando se realizan las releases de FreeBSD?</para>
- </question>
-
- <answer>
- <para>Como principio general, el equipo de FreeBSD s&oacute;lo hace
- una nueva versi&oacute;n release de FreeBSD cuando cree que hay
- suficientes caracter&iacute;sticas nuevas y/o parches que la
- justifiquen y esten seguros de que con los cambios realizados no se
- compromete la estabilidad de la release. Muchos usuarios creen que
- esta precauci&oacute;n es una de las mejores caracter&iacute;sticas
- de FreeBSD.</para>
-
- <para>Las versiones release son hechas cada 6 meses
- aproximadamente.</para>
-
- <para>Para los usuarios que necesiten (o quieran) un poco m&aacute;s
- de excitaci&oacute;n, hay SNAP-release m&aacute;s frecuentemente,
- particularmente durante el mes anterior a una release
- completa.</para>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Est&aacute; FreeBSD disponible solo para PCs?</para>
- </question>
-
- <answer>
- <para>En estos momentos, s&iacute;, aunque se est&aacute; trabajando
- en portarlo a la arquitectura DEC Alpha. Si tu m&aacute;quina tiene
- una arquitectura diferente y necesitas un sistema de este tipo, te
- aconsejamos que mires en
- <ulink URL="http://www.netbsd.org/">NetBSD</ulink> o en
- <ulink URL="http://www.openbsd.org/">OpenBSD</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para> &iquest;Qui&eacute;n es responsable de FreeBSD?</para>
- </question>
-
- <answer>
- <para>Las decisiones clave concernientes al proyecto FreeBSD como la
- direcci&oacute;n a seguir y qui&eacute;n est&aacute; autorizado a
- a&ntilde;adir c&oacute;digo a la distribuci&oacute;n original, se
- hace a trav&eacute;s de un grupo de unas 17 personas llamado
- <ulink URL="../../handbook/staff.html#STAFF-CORE">core team</ulink>.
- Existe tambi&eacute;n un grupo de unas 150 personas o
- <ulink URL="../../handbook/staff-committers.html">committers</ulink>
- que tambi&eacute;n est&aacute;n autorizadas a realizar cambios
- directamente sobre la distribuci&oacute;n original.</para>
-
- <para>De todas maneras, la cambios importantes son discutidos en las
- <link linkend="mailing">listas de distribuci&oacute;n</link> en las
- que no existen restricciones sobre qui&eacute;n participa en las
- discusiones.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="where-get">
- <para>&iquest;D&oacute;nde puedo conseguir FreeBSD?</para>
- </question>
-
- <answer>
- <para>Todas las versiones release de FreeBSD est&aacute;n disponibles
- via ftp an&oacute;nimo en
- <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">el servidor FTP de
- FreeBSD</ulink>:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Para la actual 3.4-stable release, 3.4R mira en
- <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.4-RELEASE/">3.4-RELEASE</ulink>.
- </para>
- </listitem>
-
- <listitem>
- <para>Para la actual 4.0-current release, 4.0-SNAP, mira en
- <ulink URL="ftp://current.FreeBSD.org/pub/FreeBSD/">4.0</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="ftp://releng22.FreeBSD.org/pub/FreeBSD/">2.2
- Snapshot</ulink> releases son hechas a partir de la rama
- RELENG_2_2 (2.2.5 -&gt; 2.2.x). Con la ocasional
- excepci&oacute;n de peque&ntilde;as variaciones, la rama
- RELENG_2_2 est&aacute; siendo cuidadosamente mantenida (no hay
- cambios experimentales y los parches son a&ntilde;adidos
- s&oacute;lo despu&eacute;s de ser comprobados en
- -current).</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="ftp://current.FreeBSD.org/pub/FreeBSD/">4.0
- Snapshot</ulink> releases son hechas una vez al d&iacute;a a
- partir de la rama <link linkend="current">-current</link>,
- siendo &eacute;ste un servicio puramente para testeadores y
- desarrolladores.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>FreeBSD esta tambi&eacute;n disponible via CDROM, en los
- siguientes lugares:</para>
-
- <address>
- <otheraddr>Walnut Creek CDROM</otheraddr>
- <street> 4041 Pike Lane, Suite F</street>
- <city> Concord</city>, <state>CA</state> <postcode>94520</postcode>
- <country> USA</country>
- <phone> Orders: +1 800 786-9907</phone>
- <phone> Questions: +1 925 674-0783</phone>
- <fax> FAX: +1 925 674-0821</fax>
- <otheraddr>email: <ulink URL="mailto:orders@cdrom.com">WC Orders address</ulink></otheraddr>
- <otheraddr>WWW: <ulink URL="http://www.cdrom.com/">WC Home page</ulink></otheraddr>
- </address>
-
- <para>En Australia:</para>
-
- <address>
- <otheraddr>Advanced Multimedia Distributors</otheraddr>
- <street> Factory 1/1 Ovata Drive</street>
- <city> Tullamarine, Melbourne</city>
- <state> Victoria</state>
- <country> Australia</country>
- <phone> Voice: +61 3 9338 6777</phone>
- <fax> Fax: +61 9 385-2360</fax>
-
- <otheraddr>CDROM Support BBS</otheraddr>
- <street> 17 Irvine St</street>
- <city> Peppermint Grove</city> <state>WA</state> <postcode>6011</postcode>
- <phone> Voice: +61 9 385-3793</phone>
- <fax> Fax: +61 9 385-2360</fax>
- </address>
-
- <para>Y en el Reino Unido:</para>
-
- <address>
- <otheraddr>The Public Domain &amp; Shareware Library</otheraddr>
- <street> Winscombe House, Beacon Rd</street>
- <city> Crowborough</city>
- <state> Sussex. TN6 1UL</state>
- <phone> Voice: +44 1892 663-298</phone>
- <fax> Fax: +44 1892 667-473</fax>
- </address>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="mailing">
- <para>&iquest;D&oacute;nde encuentro informaci&oacute;n sobre las
- listas de distribuci&oacute;n de FreeBSD?</para>
- </question>
-
- <answer>
- <para>Puedes encontrar toda la informaci&oacute;n en
- <ulink URL="../../handbook/eresources.html#ERESOURCES-MAIL">la
- secci&oacute;n de listas del Handbook.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde encuentro informaci&oacute;n sobre el
- a&ntilde;o 2000 (Y2K) en FreeBSD?</para>
- </question>
-
- <answer>
- <para>Tienes toda la informaci&oacute;n disponible en la <ulink
- URL="http://www.freebsd.org/y2kbug.html">p&aacute;gina Y2K de
- FreeBSD</ulink> </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; grupos de noticias est&aacute;n disponibles
- sobre FreeBSD?</para>
- </question>
-
- <answer>
- <para>Puedes encontrar toda la informaci&oacute;n en <ulink
- URL="../../handbook/eresources-news.html">la secci&oacute;n de news
- del Handbook.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Hay algun canal IRC (Internet Relay Chat) sobre
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>S&iacute;, muchas de las grandes redes de IRC tienen canales de
- chat de FreeBSD.</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>El canal <emphasis remap=tt>#FreeBSD</emphasis> en EFNet
- es un f&oacute;rum de FreeBSD, pero no acudas all&iacute; para
- obtener soporte t&eacute;cnico o contar tus penas sobre como
- leer las p&aacute;ginas man ;). Es un canal de chat, de
- principio a f&iacute;n, y los temas que se tratan suelen ser
- cosas como sexo, deportes o armas nucleares.
- &iexcl;Est&aacute;s avisado!. Disponible en el servidor
- <filename>irc.chat.org</filename>.</para>
- </listitem>
-
- <listitem>
- <para>El canal <emphasis remap=tt>#FreeBSD</emphasis> en DALNET
- est&aacute; disponible en el servidor
- <filename>irc.dal.net</filename> en USA y
- <filename>irc.eu.dal.net</filename> en Europa.</para>
- </listitem>
-
- <listitem>
- <para>El canal <emphasis remap=tt>#FreeBSD</emphasis> en
- UNDERNET est&aacute; disponible en
- <filename>us.undernet.org</filename> en USA y
- <filename>eu.undernet.org</filename> en Europa. Igual que en
- EFNET, no hagas preguntas t&eacute;cnicas. Es un canal de chat,
- no de soporte.</para>
- </listitem>
-
- <listitem>
- <para>Finalmente, puedes usar el canal
- <emphasis remap=tt>#FreeBSD</emphasis> en BSDNET, una
- peque&ntilde;a red de chat, en el servidor
- <filename>irc.FreeBSD.org</filename>. Esta red intenta ofrecer
- m&aacute;s soporte t&eacute;cnico y no ser tan an&aacute;rquica
- como EFNET, UNDERNET o DALNET. &iquest;Por qu&eacute; no
- ofrecer respuestas de manera voluntaria hoy en BSDNET?.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>Cada uno de estos canales es diferente y no est&aacute;n
- conectados entre ellos. Sus estilos de chat difieren, por lo que
- podr&iacute;s probarlos todos para ver cu&aacute;l te gusta
- m&aacute;s.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Libros sobre FreeBSD</para>
- </question>
-
- <answer>
- <para>El libro de Greg Lehey's ``Installing and Running FreeBSD''
- est&aacute; disponible en Walnut Creek y se vende con el CDROM 2.2.5.
- Hay tambi&eacute;n un libro m&aacute;s completo titulado ``The
- Complete FreeBSD'', el cual tiene manuales adicionales e incluye el
- CDROM 2.2.6. Deber&iacute;a estar disponible en las mejores
- librer&iacute;as.</para>
-
- <para>Hay un proyecto de documentaci&oacute;n de FreeBSD con el que
- puedes contactar (o mejor, participar), en la lista de
- distribuci&oacute;n <emphasis remap=tt>doc</emphasis>:
- <ulink URL="mailto:doc@FreeBSD.org">&lt;doc@FreeBSD.org&gt;</ulink>.
- En esta lista se tratan todos los temas referentes a la
- documentaci&oacute;n de FreeBSD. Para verdaderas preguntas sobre
- FreeBSD, existe la lista <emphasis remap=tt>question</emphasis>:
- <ulink URL="mailto:questions@FreeBSD.org">&lt;questions@FreeBSD.org&gt;</ulink>.
- </para>
-
- <para>Est&aacute; disponible un ``manual'' (handbook a patir de ahora)
- de FreeBSD, y se puede encontrar en:
- <ulink URL="../../handbook/index.html">El Handbook de FreeBSD</ulink>.
- Ten en cuenta que &eacute;ste es un trabajo en constante desarrollo y
- actualizaci&oacute;n, por lo que algunas secciones podr&iacute;an
- estar incompletas.</para>
-
- <para>Teniendo en cuenta que FreeBSD 2.2.x est&aacute; basado en la
- versi&oacute;n Berkeley 4.4BSD-Lite2, la mayor&iacute;a de manuales
- de 4.4BSD con aplicables a FreeBSD 2.2.x. O'Reilly y Asociados
- publican estos manuales:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>4.4BSD System Manager's Manual <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition June 1994, 804 pages <!-- <br> -->
- ISBN: 1-56592-080-5 <!-- <br> -->
- </para>
- </listitem>
-
- <listitem>
- <para>4.4BSD User's Reference Manual <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition June 1994, 905 pages <!-- <br> -->
- ISBN: 1-56592-075-9 <!-- <br> -->
- </para>
- </listitem>
-
- <listitem>
- <para>4.4BSD User's Supplementary Documents <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition July 1994, 712 pages <!-- <br> -->
- ISBN: 1-56592-076-7 <!-- <br> -->
- </para>
- </listitem>
-
- <listitem>
- <para>4.4BSD Programmer's Reference Manual <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition June 1994, 886 pages <!-- <br> -->
- ISBN: 1-56592-078-3 <!-- <br> -->
- </para>
- </listitem>
-
- <listitem>
- <para>4.4BSD Programmer's Supplementary Documents <!-- <br> -->
- By Computer Systems Research Group, UC Berkeley <!-- <br> -->
- 1st Edition July 1994, 596 pages <!-- <br> -->
- ISBN: 1-56592-079-1 <!-- <br> --></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Una descripci&oacute;n de &eacute;stos puede ser encontrada
- v&iacute;a WWW en:</para>
-
- <para><ulink URL="http://gnn.com/gnn/bus/ora/category/bsd.html">Descripci&oacute;n de libros sobre 4.4BSD</ulink></para>
-
- <para>Para profundizar m&aacute;s en la organizacion del kernel de
- 4.4BSD, no puedes ir mal con los siguientes:</para>
-
- <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels,
- and John Quarterman.<!-- <br> --></para>
-
- <para><emphasis>The Design and Implementation of the 4.4BSD Operating
- System</emphasis>. Reading, Mass. : Addison-Wesley, 1996.<!-- <br> -->
- ISBN 0-201-54979-4<!-- <br> --></para>
-
- <para>Un buen libro en administraci&oacute;n de sistemas es:</para>
-
- <para>Evi Nemeth, Garth Snyder, Scott Seebass &amp; Trent R. Hein,<!-- <br> -->
- ``Unix System Administration Handbook'', Prentice-Hall, 1995<!-- <br> -->
- ISBN: 0-13-151051-7<!-- <br> --></para>
-
- <para><acronym>NOTA</acronym> Asegurate de conseguir la segunda edici&oacute;n, con
- cubierta roja y no la primera.</para>
-
- <para>Este libro cubre las necesidades b&aacute;sicas, as&iacute;
- como TCP/IP, DNS, NFS,SLIP/PPP, sendmail, INN/NNTP, impresi&oacute;n,
- etc,. Es caro, (aproximadamente unos US&#36;45-&#36;55), pero vale
- la pena. Tambi&eacute;n incluye un CD-ROM con los fuentes de varias
- herramientas, muchas de las cuales est&aacute;n incluidas,
- tambi&eacute;n, en la versi&oacute;n 2.2.6R (CDROM) de FreeBSD,
- incluso incluyendo versiones m&aacute;s modernas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo accedo a la base de datos de Problem
- Report?</para>
- </question>
-
- <answer>
- <para>La base de datos de Problem Report puede ser consultada
- v&iacute;a web a traves de la direcci&oacute;n
- <ulink URL="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">query</ulink>.
- Tambi&eacute;n pueden ser enviados v&iacute;a web a trav&eacute;s de
- la direcci&oacute;n <ulink URL="http://www.FreeBSD.org/send-pr.html">envio</ulink>.
- El comando <command>send-pr(1)</command> tambi&eacute;n puede ser
- usado para el env&iacute;o de reporte de problemas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde puedo obtener versiones ASCII/PostScript
- de la FAQ?</para>
- </question>
-
- <answer>
- <para>La FAQ actualizada est&aacute; disponible en el servidor Web de
- FreeBSD o en cualquiera de los mirrors en formato PostScript y texto
- (7 bits ASCII y 8 bits Latin-1).</para>
-
- <para>Formato PostScript (unos 370KB):
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.FreeBSD.org/FAQ/FAQ.ps">http://www.FreeBSD.org/FAQ/FAQ.ps</ulink></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Formato ASCII (unos 220KB):
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.FreeBSD.org/FAQ/FAQ.ascii">http://www.FreeBSD.org/FAQ/FAQ.ascii</ulink></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Formato texto ISO 8859-1 (unos 220KB):
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.FreeBSD.org/FAQ/FAQ.latin1">http://www.FreeBSD.org/FAQ/FAQ.latin1</ulink></para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde puedo obtener versiones ASCII/PostScript
- del Handbook?</para>
- </question>
-
- <answer>
- <para>El Hansbook actualizado est&aacute; disponible en el servidor Web
- de FreeBSD o en cualquiera de los mirrors en formato PostScript y texto
- (7 bits ASCII y 8 bits Latin-1).</para>
-
- <para>Formato PostScript (unos 1.7MB):
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.FreeBSD.org/handbook/handbook.ps">http://www.FreeBSD.org/handbook/handbook.ps</ulink></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Formato ASCII (unos 1080KB):
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.FreeBSD.org/handbook/handbook.ascii">http://www.FreeBSD.org/handbook/handbook.ascii</ulink></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Formato texto ISO 8859-1 (unos 1080KB):
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.FreeBSD.org/handbook/handbook.latin1">http://www.FreeBSD.org/handbook/handbook.latin1</ulink></para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>El Handbook en ASCII no est&aacute; en texto plano!</para>
- </question>
-
- <answer>
- <para>Cierto, las versiones ASCII y Latin1 del Handbook no est&aacute;n
- estrictamente en formato de texto plano; contienen car&aacute;cteres de
- control de impresi&oacute;n asumiendo que el documento ser&aacute;
- enviado a una impresora. Si necesitas tenerlos en un formato leible,
- pasa el archivo por el programa col:</para>
-
- <para>
- <literallayout>
-$ col -b &lt; inputfile &gt; outputfile
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Me gustar&iacute;a ser Mirror del web de FreeBSD!</para>
- </question>
-
- <answer>
- <para>Hay m&uacute;ltiples maneras de hacer mirror de las p&aacute;ginas web.</para>
- <para>
- <itemizedlist>
- <listitem>
- <para>Usando CVSUP: Puedes obtener todo el contenido del web
- usando el programa CVSUP desde el servidor cvsup.FreeBSD.org.
- A&ntilde;ade esta l&iacute;nea a tu archivo de
- configuraci&oacute;n de cvsup:
-
- <literallayout>
-www release=current hostname=/home base=/usr/local/etc/cvsup
-prefix=/usr/local/www/data/www.FreeBSD.org delete old use-rel-suffix
- </literallayout>
-
- </para>
- </listitem>
-
- <listitem>
- <para>Usando rsync: Mira en
- <ulink URL="http://www.FreeBSD.org/internal/mirror.html">la
- p&aacute;gina de mirrors</ulink> para m&aacute;s
- informaci&oacute;n.</para>
- </listitem>
-
- <listitem>
- <para>Usando mirror de FTP: Puedes bajarte la copia de los
- contenidos del web usando tu herramienta favorita de mirror de
- FTP. Simplemente empieza en
- ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.</para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Me gustar&iacute;a traducir la documentaci&oacute;n.</para>
- </question>
-
- <answer>
- <para>Bueno, no podemos pagar, pero quiz&aacute;s te enviemos un CD-ROM
- o una camiseta y a&ntilde;adiremos tu nombre en la secci&oacute;n
- ``Contributors'' del Handbook si nos env&iacute;as una traducci&oacute;n
- de la documentaci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Otras fuentes de informaci&oacute;n.</para>
- </question>
-
- <answer>
- <para>Los siguientes grupos de news contienen temas relacionados con
- FreeBSD y sus usuarios:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><ulink URL="news:comp.unix.bsd.FreeBSD.announce">comp.unix.bsd.FreeBSD.announce</ulink> (moderada)
- </para>
- </listitem>
-
- <listitem>
- <para><ulink URL="news:comp.unix.bsd.FreeBSD.misc">comp.unix.bsd.FreeBSD.misc</ulink>
- </para>
- </listitem>
-
- <listitem>
- <para><ulink URL="comp.unix.bsd.misc">comp.unix.bsd.misc</ulink></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Recursos Web:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>The <ulink URL="http://www.FreeBSD.org/">FreeBSD Home Page</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="pao">Si tienes un port&aacute;til asegurate de
- pasar por <ulink URL="http://www.jp.FreeBSD.org/PAO/">Tatsumi
- Hosokawa's Mobile Computing page</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="smp">Informaci&oacute;n sobre SMP (Symmetric
- MultiProcessing),
- <ulink URL="http://www.FreeBSD.org/~fsmp/SMP/SMP.html">soporte de
- SMP</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="multimedia">Informaci&oacute;n sobre
- aplicaciones <ulink URL="http://www.FreeBSD.org/~faulkner/multimedia/mm.html">multimedia</ulink>.
- Si est&aacute;s interesado espec&iacute;ficamente en el chip
- <ulink URL="http://www.FreeBSD.org/~ahasty/Bt848.html">Bt848</ulink>
- de v&iacute;deo captura, entonces sigue este link.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>El handbook de FreeBSD tiene una completa bibliograf&iacute;a en
- la secci&oacute;n <ulink URL="../../handbook/bibliography.html">bibliograf&iacute;a</ulink>
- la cual recomendamos leer si est&aacute;s interesado en comprar libros
- actuales relacionados con estos temas.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</preface>
-
-<chapter id="install">
- <title>Instalaci&oacute;n</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; archivo necesito para instalar FreeBSD?</para>
- </question>
-
- <answer>
- <para>Generalmente s&oacute;lo es necesario un disco de 1,44Mb con una
- imgen del archivo <filename>floppies/boot.flp</filename>. Arranca con
- este disco para comenzar con el programa de instalaci&oacute;n, el cual
- se encargar&aacute; de realizar todas las operaciones necesarias
- (gesti&oacute;n de TCP/IP, cintas, CDROMs, floppies, particiones DOS y
- cualquier cosa necesaria para realizar la instalaci&oacute;n).</para>
-
- <para>Si necesitas bajarte las distribuciones (para una
- instalaci&oacute;n desde una partici&oacute;n DOS por ejemplo), estas
- son las distribuciones m&iacute;nimas que necesitar&aacute;s:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para> bin/<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> manpages/<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> compat*/<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> doc/ <!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para> src/ssys.* <!-- <br> --></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Todas las instrucciones sobre este procedimiento y una
- ampliaci&oacute;n de la documentaci&oacute;n se puede encontrar en
- <ulink URL="../../handbook/install.html">Instalaci&oacute;n de FreeBSD.</ulink>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iexcl;Ayuda!, La imagen del disco de arranque no cabe en un
- floppy</para>
- </question>
-
- <answer>
- <para>Un floppy de 1.44MB puede contener hasta 1474560 bytes de datos.
- La imagen de arranque es exactamente de 1474560 bytes.</para>
-
- <para>Los errores m&aacute;s comunes en la preparaci&oacute;n de disco
- de arranque son:
- <itemizedlist>
- <listitem>
- <para>No bajarse la imagen en modo
- <emphasis remap=tt>binario</emphasis> cuando se usa
- <acronym>FTP</acronym>.</para>
-
- <para>Algunos clientes FTP intentan bajar por defecto los archivos
- en modo <acronym>ASCII</acronym> e intentan cambiar los caracteres
- de final de l&iacute;nea recibidos por el que utilice el sistema
- cliente. Esto corromper&aacute; inevitablemente la imagen de
- arranque. Revisa el tama&ntilde;o de la imagen: si no es
- <emphasis>exactamente</emphasis> el mismo tama&ntilde;o del archivo
- existente en el servidor, la imagen no servir&aacute;.</para>
-
- <para>Soluci&oacute;n: teclea <emphasis remap=tt>binary</emphasis>
- en la l&iacute;nea de comandos del FTP despu&eacute;s de conectar y
- antes de empezar a bajar la im&aacute;gen.</para>
-
- <para></para>
- </listitem>
-
- <listitem>
- <para>Usando el comando <emphasis remap=tt>copy</emphasis> de DOS
- (o cualquier herramienta GUI equivalente) para transferir la imagen
- a un disquete.</para>
-
- <para>Programas como <emphasis remap=tt>copy</emphasis> no
- funcionar&aacute;n para la transferencia de la imagen a un
- disco. La imagen tiene el contenido completo del disco,
- pista por pista, y no est&aacute; pensada para ser trasladada a un
- disquete como un archivo normal. Tienes que hacer una transferencia
- ``raw'' usando herramientas de bajo nivel como
- <emphasis remap=tt>fdimage</emphasis> o
- <emphasis remap=tt>rawrite</emphasis>, descritas en
- <ulink URL="../../handbook/install.html">la gu&iacute;a de
- instalaci&oacute;n de FreeBSD</ulink>.</para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde puedo encontrar las instrucciones de
- instalaci&oacute;n de FreeBSD?</para>
- </question>
-
- <answer>
- <para>Las instrucciones de instalaci&oacute;n est&aacute;n en
- <ulink URL="../../handbook/install.html">Instalaci&oacute;n de FreeBSD.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; necesito para poder ejecutar FreeBSD?</para>
- </question>
-
- <answer>
- <para>Necesitar&aacute;s un PC con 386 o superior, 5 Mb o m&aacute;s de
- memoria RAM y al menos 60 Mb de espacio en disco duro. Puede funcionar
- con tarjetas gr&aacute;ficas de bajo nivel (Hercules), pero para poder
- ejecutar X11R6 es necesario una tarjeta VGA o superior.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>S&oacute;lo tengo 4Mb de RAM. &iquest;Puedo instalar
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD 2.1.7 fue la &uacute;ltima version de FreeBSD que
- pod&iacute;a ser instalada en un sistema de 4Mb. Las nuevas versiones
- de FreeBSD, como la 2.2, necesitan al menos 5Mb para poder ser
- instaladas.</para>
-
- <para>Todas las versiones de FreeBSD, incluyendo la 3.0,
- funcionar&aacute;n en sistemas con 4Mb de RAM, lo que no puedes
- ejecutar es la instalaci&oacute;n en sistemas con 4Mb. Puedes
- a&ntilde;adir memoria extra para el proceso de instalaci&oacute;n, y
- una vez instalado, volver a los 4Mb. Tambien puedes instalar tu disco
- en una m&aacute;quina con m&aacute;s de 4Mb, realizar la
- instalaci&oacute;n y reponer el disco en su m&aacute;quina con
- 4Mb.</para>
-
- <para>Hay algunas situaciones en las que FreeBSD 2.1.7 no se
- instalar&aacute; en sistemas con 4Mb. Para ser exactos: no se
- instalar&aacute; con 640Kb de memoria base + 3Mb de memoria extendida.
- Si tu placa base puede remapear algo de la memoria ``perdida'' fuera de
- los 640Kb a la regi&oacute;n de 1Mb, entonces aun podr&aacute;s
- instalar FreeBSD 2.1.7.</para>
-
- <para>Intenta entrar en el setup de tu BIOS y busca la opci&oacute;n
- ``remap''. Act&iacute;vala. Quiz&aacute;s tendr&aacute;s que
- desactivar la opci&oacute;n de ROM shadowing.</para>
-
- <para>Es m&aacute;s f&aacute;cil a&ntilde;adir en la m&aacute;quina 4Mb
- de memoria para la instalaci&oacute;n. Crea un kernel unicamente con
- las opciones que necesites y vuelve a quitar los 4Mb
- a&ntilde;adidos.</para>
-
- <para>Tambi&eacute;n puedes instalar la versi&oacute;n 2.0.5 y a
- continuaci&oacute;n actualizar tu sistema a la 2.1.7 con la
- opci&oacute;n ``upgrade'' del programa de instalaci&oacute;n de la
- versi&oacute;n 2.1.7.</para>
-
- <para>Despu&eacute;s de la instalaci&oacute;n, si te creas un kernel
- personalizado, funcionar&aacute; en 4Mb. Algunos fueron capaces de
- arrancar con 2Mb (aunque despu&eacute;s el sistema era incapaz de hacer
- nada m&aacute;s :-)) </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo hacer mi propio disco de
- instalaci&oacute;n?</para>
- </question>
-
- <answer>
- <para>Realmente, no hay una manera para
- <emphasis>s&oacute;lo</emphasis> hacer un disco de instalaci&oacute;n
- personalizado. Hay alg&uacute;n c&oacute;digo en
- <filename>/usr/src/release/floppies/Makefile</filename> que
- supuestamente es para hacer <emphasis>s&oacute;lo</emphasis> un disco
- de instalaci&oacute;n personalizado, pero no est&aacute; realmente
- testeado todav&iacute;a.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo tener m&aacute;s de un sistema operativo en mi
- PC?</para>
- </question>
-
- <answer>
- <para>Echa un vistazo en
- <ulink URL="../tutorials/multios/multios.html">La p&aacute;gina
- multi-OS.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puede Windows 95 coexistir con FreeBSD?</para>
- </question>
-
- <answer>
- <para>Instala primero Windows 95 y despu&eacute;s FreeBSD. El boot
- manager de FreeBSD se encargar&aacute; de darte la opci&oacute;n de
- arrancar con cualquiera de los dos sistemas. Si lo haces al
- rev&eacute;s, Windows 95 borrar&aacute; el boot manager sin hacer
- ninguna pregunta previa. Si ocurre esto, pasa a la siguiente
- secci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Windows 95 desinstal&oacute; mi boot manager! &iquest;C&oacute;mo
- lo recupero?
- </para>
- </question>
-
- <answer>
- <para>Puedes reinstalar el boot manager que viene con FreeBSD de dos
- maneras:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Ejecutando el DOS, entra en el directorio
- <filename>tools/</filename> de tu distribuci&oacute;n de FreeBSD
- y busca el archivo <filename>bootinst.exe</filename>.
- Ejec&uacute;talo de la siguiente manera:</para>
-
- <para><emphasis remap=bf>bootinst.exe boot.bin</emphasis></para>
-
- <para></para>
-
- <para>Y el boot manager estar&aacute; reinstalado.</para>
-
- <para>Arranca con el disco de instalaci&oacute;n de FreeBSD y
- entra en la secci&oacute;n ``Custom Installation''. Selecciona
- ``Partition''. Escoge el disco en el cual debe estar instalado el
- boot manager, y cuando entres en el editor de particiones, sin
- hacer ning&uacute;n cambio, selecciona (W)rite. Ser&aacute;s
- preguntado para confirmar la acci&oacute;n, responde
- ``s&iacute;'', y cuando est&eacute;s en la ventana de ``Boot
- manager selection'' aseg&uacute;rate de seleccionar ``Boot
- Manager''. Esto reescribir&aacute; el boot manager en el disco.
- Ahora, sal del programa de instalaci&oacute;n y rearranca el
- computador de la manera habitual.</para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo instalar FreeBSD en un disco con sectores
- err&oacute;neos?</para>
- </question>
-
- <answer>
- <para>La gesti&oacute;n de sectores err&oacute;neos por parte de
- FreeBSD no est&aacute; desarrollada todav&iacute;a al 100% y
- desgraciadamente debemos decirte que si tienes discos IDE o ESDI con
- gran cantidad de sectores err&oacute;neos, FreeBSD no es para
- t&iacute;. De todas maneras, te aconsejamos que antes de descartar la
- instalaci&oacute;n, hagas un intento.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ocurren cosas extra&ntilde;as cuando arranco con el disco de
- instalaci&oacute;n
- </para>
- </question>
-
- <answer>
- <para>Si observas cosas como que la maquina se ``cuelga'' o se
- reinicializa espont&aacute;neamente cuando intentas arrancar con el
- disco de instalaci&oacute;n, aqu&iacute; tienes tres preguntas que
- debes responder tu mismo:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>&iquest;Est&aacute;s usando un disco nuevo, reci&eacute;n
- formateado y libre de errores, o est&aacute;s usando el disco de
- publicidad que ven&iacute;a con la revista que lleva guardada
- varios meses debajo de la cama?</para>
- </listitem>
-
- <listitem>
- <para>&iquest;Descargaste por ftp la imagen del disco en modo
- binario?... (no te preocupes ya que hasta el mejor de nosotros,
- por lo menos una vez, ha descargado un archivo en modo
- ASCII).</para>
- </listitem>
-
- <listitem>
- <para>Si est&aacute;s usando uno de esos nuevos sistemas
- operativos como Windows 95 o Windows NT, debes arrancar la
- m&aacute;quina en modo DOS puro, ya que parece ser que los
- Windows no se llevan bien con los programas que escriben
- directamente sobre los dispositivos hardware, como hace el
- programa de creaci&oacute;n de discos de instalaci&oacute;n de
- FreeBSD.</para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>Han habido informaciones referentes a problemas al bajar el disco
- de instalaci&oacute;n con Netscape, por lo que te recomentados que uses
- un programa diferente como cliente de ftp.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iexcl;Ayuda! &iexcl;No puedo instalar desde una cinta!</para>
- </question>
-
- <answer>
- <para>Si est&aacute;s instalando la versi&oacute;n 2.1.7R desde una
- cinta, debes crear esa cinta con un tama&ntilde;o de bloque de tar de
- 10 (5120 bytes). El tama&ntilde;o por defecto de los bloques tar es de
- 20 (10240 bytes), y las cintas creadas con este tama&ntilde;o por
- defecto no pueden ser usadas para instalar FreeBSD 2.1.7R; con estas
- cintas tendr&aacute;s un error referente a un tama&ntilde;o de registro
- demasiado grande.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Conexi&oacute;n de dos m&aacute;quinas FreeBSD v&iacute;a puerto
- paralelo (PLIP)
- </para>
- </question>
-
- <answer>
- <para>Coge un cable de laplink y asegurate que ambos computadores tienen
- un kernel que soporta el puerto paralelo.</para>
-
- <para>
- <literallayout>
-$ dmesg | grep lp
-lpt0 at 0x378-0x37f irq 7 on isa
-lpt0: Interrupt-driven port
-lp0: TCP/IP capable interface
- </literallayout>
- </para>
-
- <para>Conecta el cable en los dos puertos paralelos.</para>
-
- <para>Configura los par&aacute;metros de red para el interfaz lp0 (como
- root) en ambas m&aacute;quinas. Por ejemplo, si quieres conectar la
- m&aacute;quina max y moritz:</para>
-
- <para>
- <literallayout>
-max &lt;-----&gt; moritz
-Direccion IP 10.0.0.1 10.0.0.2
- </literallayout>
- </para>
-
- <para>En el arranque de max
- <literallayout>
-# ifconfig lp0 10.0.0.1 10.0.0.2
- </literallayout>
- </para>
-
- <para>En el arranque de moritz</para>
-
- <para>
- <literallayout>
-# ifconfig lp0 10.0.0.2 10.0.0.1
- </literallayout>
- </para>
-
- <para>Esto es todo!!. Por favor, lee los man de lp(4) y lpt(4).</para>
-
- <para>Tambi&eacute;n deber&iacute;as a&ntilde;adir las m&aacute;quinas
- en el archivo /etc/hosts:</para>
-
- <para>
- <literallayout>
-127.0.0.1 localhost.my.domain localhost
-10.0.0.1 max.my.domain max
-10.0.0.2 moritz.my.domain moritz
- </literallayout>
- </para>
-
- <para>Para asegurarte que funciona haz:</para>
-
- <para>en max:</para>
-
- <para>
- <literallayout>
-$ ifconfig lp0
-lp0: flags=8851&lt;UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
- inet 10.0.0.1 --&gt; 10.0.0.2 netmask 0xff000000
- </literallayout>
- </para>
-
- <para>
- <literallayout>
-$ netstat -r
-Routing tables
-
-Internet:
-Destination Gateway Flags Refs Use Netif Expire
-moritz max UH 4 127592 lp0
- </literallayout>
- </para>
-
- <para>
- <literallayout>
-$ ping -c 4 moritz
-PING moritz (10.0.0.2): 56 data bytes
-64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
-64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
-64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
-64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
-
---- moritz ping statistics ---
-4 packets transmitted, 4 packets received, 0% packet loss
-round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo instalar FreeBSD en mi port&aacute;til sobre PLIP
- (Parallel Line IP)?</para>
- </question>
-
- <answer>
- <para>Conecta los dos computadores usando Laplink mediante el puerto
- paralelo y usa las siguientes caracter&iacute;sticas:</para>
-
- <para>
- <literallayout>
-+----------------------------------------+
-|A-name A-End B-End Descr. Port/Bit |
-+----------------------------------------+
-|DATA0 2 15 Data 0/0x01 |
-|-ERROR 15 2 1/0x08 |
-+----------------------------------------+
-|DATA1 3 13 Data 0/0x02 |
-|+SLCT 13 3 1/0x10 |
-+----------------------------------------+
-|DATA2 4 12 Data 0/0x04 |
-|+PE 12 4 1/0x20 |
-+----------------------------------------+
-|DATA3 5 10 Strobe 0/0x08 |
-|-ACK 10 5 1/0x40 |
-+----------------------------------------+
-|DATA4 6 11 Data 0/0x10 |
-|BUSY 11 6 1/0x80 |
-+----------------------------------------+
-|GND 18-25 18-25 GND - |
-+----------------------------------------+
- </literallayout>
- </para>
-
- <para>Mira tambi&eacute;n <link linkend="pao">esta nota</link> en la
- p&aacute;gina de inform&aacute;tica m&oacute;vil.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="geometry">
- <para>&iquest;Que geometr&iacute;a debo usar para mis discos?</para>
- </question>
-
- <answer>
- <para>(Por geometr&iacute;a de un disco, entendemos el n&uacute;mero de
- cilindros, cabezales y sectores por pista en el disco - de ahora en
- adelante nos referiremos por conveniencia a estos par&aacute;metros
- como C/H/S. As&iacute; es como trabaja el BIOS de los PC's para
- gestionar la lectura/escritura.</para>
-
- <para>Por alguna raz&oacute;n, esto parece crear mucha
- confusi&oacute;n. Ante todo, la geometr&iacute;a
- <emphasis remap=tt>f&iacute;sica</emphasis> de un disco SCSI es
- totalmente irrelevante ya que FreeBSD trabaja en t&eacute;rminos de
- bloques de disco. Con discos IDE, FreeBSD trabaja en t&eacute;rminos de
- C/H/S, pero todos los discos modernos convierten estos datos en
- referencias internas de bloques.</para>
-
- <para>Para discos SCSI, la geometr&iacute;a a usar depende de si
- tenemos activado en la controladora el soporte de translaci&oacute;n
- (comunmente conocido como "soporte para discos mayores de 1GB" o
- algo similar). Si esta opci&oacute;n est&aacute; desactivada, entonces
- usa N cilindros, 64 cabezales y 32 sectores por pista, donde N es la
- capacidad del disco en MB. Por ejemplo, para un disco de 2GB, los
- par&aacute;metros correctos ser&iacute;an 2048 cilindros, 64 cabezales
- y 32 sectores.</para>
-
- <para>Si el soporte de translaci&oacute;n est&aacute; activado y la
- capacidad del disco es mayor de 1GB, usa M cilindros, 63 cabezales
- (*no* 64), y 255 sectores, donde M es la capacidad del disco en MB
- dividida por 7.844238. Para nuestro ejemplo de un disco de 2GB, los
- par&aacute;metros ser&iacute;an 261 cilindros, 62 cabezales y 255
- sectores.</para>
-
- <para>Si no est&aacute;s seguro sobre los par&aacute;metros a usar, o
- FreeBSD falla al detectar la geometr&iacute;a correcta del disco
- durante la instalaci&oacute;n, el m&eacute;todo m&aacute;s simple para
- solucionar este problema es crear una peque&ntilde;a partici&oacute;n
- DOS en el disco. Entonces, la geometr&iacute;a deber&iacute;a ser
- detectada correctamente (y siempre puedes borrar esa partici&oacute;n
- desde el ``editor de particiones'' si no quieres mantenerla).</para>
-
- <para>Alternativamente, existe una utilidad de libre
- distribuci&oacute;n incluida en FreeBSD llamada
- <filename>pfdisk.exe</filename> (situada en el directorio
- <emphasis remap=tt>tools</emphasis> del CD-ROM de distribuci&oacute;n o
- en cualquiera de los servidores ftp) que nos dice la geometr&iacute;a
- del disco usada por el sistema operativo DOS. Lo &uacute;nico que
- tenemos que hacer es introducir los datos obtenidos en el editor de
- particiones de FreeBSD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Existe alguna restricci&oacute;n en c&oacute;mo dividir
- el disco?</para>
- </question>
-
- <answer>
- <para>S&iacute;. Debes asegurarte de que la partici&oacute;n raiz esta
- por debajo del cilindro 1024, para que el BIOS pueda arrancar el kernel
- desde ella. (&Eacute;sta es una limitaci&oacute;n del BIOS de los PCs,
- no de FreeBSD).</para>
-
- <para>Para discos SCSI, esto implica que la partici&oacute;n
- ra&iacute;z debe estar instalada en los primeros 1024MB (o en los
- primeros 4096MB si la translaci&oacute;n extendida esta activada). Para
- discos IDE, la partici&oacute;n ra&iacute;z debe estar en los primeros
- 504MB.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; hay sobre los ``disk managers''?</para>
- </question>
-
- <answer>
- <para>FreeBSD reconoce el disk manager Ontrack. Otros disk managers no
- est&aacute;n soportados.</para>
-
- <para>Si quieres usar el disco solo con FreeBSD no necesitas el disk
- manager. Solo configura el disco para el espacio m&aacute;ximo que
- pueda manejar el BIOS (usualmente 504MB), y FreeBSD se encargar&aacute;
- de averiguar cu&aacute;nto espacio tienes realmente. Si est&aacute;s
- usando un disco antiguo con controladora MFM, necesitar&aacute;s
- decirle expl&iacute;citamente a FreeBSD cu&aacute;ntos cilindros puede
- usar.</para>
-
- <para>Si quieres usar el disco con FreeBSD y otro sistema operativo,
- todav&iacute;a puedes hacerlo sin necesitar un disk manager;
- s&oacute;lo aseg&uacute;rate de que la partici&oacute;n ra&iacute;z de
- FreeBSD y la partici&oacute;n de arranque del otro sistema operativo
- est&aacute;n en los primeros 1024 cilindros. Si eres cuidadoso, una
- partici&oacute;n raiz de 20MB deber&iacute;a ser suficiente.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="missing-os">
- <para>Cuando arranco FreeBSD obtengo ``Missing Operating System''</para>
- </question>
-
- <answer>
- <para>Esto es un cl&aacute;sico conflicto entre FreeBSD y DOS u otro
- sistema operativo sobre sus ideas de
- <link linkend="geometry">geometr&iacute;a.</link>. Tendr&aacute;s que
- reinstalar FreeBSD, pero teniendo en cuenta la informaci&oacute;n que
- te damos m&aacute;s arriba sobre este asunto.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>No puedo pasar del prompt `F?'.</para>
- </question>
-
- <answer>
- <para>&Eacute;ste es otro problema descrito en el p&aacute;rrafo
- anterior. La geometr&iacute;a de tu BIOS y los datos de
- configuraci&oacute;n de FreeBSD no coinciden. Si tu controladora o BIOS
- soporta la translaci&oacute;n de cilindros (tambi&eacute;n conocido
- como "soporte para discos de m&aacute;s de 1GB"), intenta
- activar/desactivar esta opci&oacute;n y reinstala FreeBSD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="bigram">
- <para>Tengo &gt;16MB de RAM. &iquest;Puede causar esto problemas?</para>
- </question>
-
- <answer>
- <para>Aparte del rendimiento, no. FreeBSD 2.X tiene buffers que
- permiten al ``bus mastering controller'' acceder a m&aacute;s de 16MB.
- (Esto s&oacute;lo es aplicable si est&aacute;s usando dispositivos
- ISA).</para>
-
- <para>Tambi&eacute;n mira la secci&oacute;n
- <link linkend="reallybigram">m&aacute;quinas con &gt;64M</link> si
- tienes esta cantidad de memoria o si usas m&aacute;quinas Compaq u otro
- BIOS que no da correctamente la cantidad de memoria disponible.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Necesito instalar todo el c&oacute;digo fuente?</para>
- </question>
-
- <answer>
- <para>En general, no. De todas maneras, te recomendamos que instales,
- por lo menos, el kit de c&oacute;digo fuente
- <emphasis remap=tt>base</emphasis>, el cual incluye muchos de los
- archivos aqu&iacute; mencionados, y el kit
- <emphasis remap=tt>sys</emphasis>, que incluye el c&oacute;digo fuente
- del kernel. No hay nada en el sistema que requiera el c&oacute;digo
- fuente para funcionar, a excepci&oacute;n del programa de
- configuraci&oacute;n de kernel
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?config">config</ulink>.
- Con la excepci&oacute;n de las fuentes del kernel, nuestra estructura
- esta dise&ntilde;ada para que puedas montar una unidad en solo lectura
- via NFS en la que exista el c&oacute;digo fuente, y aun as&iacute;, ser
- capaz de compilar los nuevos binarios. (Debido a las restriciones de
- los fuentes del kernel, recomendamos que no montes estos en
- <filename>/usr/src</filename> directamente, sino en cualquier otra
- parte del disco con los links simb&oacute;licos apropiados para
- duplicar la estructura principal del &aacute;rbol de directorios
- original),</para> <para>Teniendo los fuentes on-line y sabiendo como
- crear un sistema con ellas (compilar), te haremos mucho mas
- f&aacute;cil la actualizaci&oacute;n a futuras versiones de
- FreeBSD.</para>
-
- <para>Para seleccionar aut&eacute;nticamente un subconjunto del
- c&oacute;digo fuente, usa la opci&oacute;n Custom del men&uacute; desde
- el men&uacute; Distributions de la herramienta de instalaci&oacute;n.
- El script <filename>src/install.sh</filename> instalar&aacute;
- s&oacute;lo partes de la distribuci&oacute;n del c&oacute;digo fuente
- dependiendo de los par&aacute;metros (argumentos) que se le
- pasen.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Necesito crear un nuevo kernel?</para>
- </question>
-
- <answer>
- <para>La creaci&oacute;n de un nuevo kernel era, originariamente, un
- paso requerido en la instalaci&oacute;n de FreeBSD, pero en las
- versiones m&aacute;s recientes nos hemos beneficiado de la
- introducci&oacute;n de una herramienta de configuraci&oacute;n de
- kernel mucho m&aacute;s amigable. Cuando en el prompt de arranque de
- FreeBSD (boot:), usamos el par&aacute;metro "-c", llegamos a una
- pantalla de configuraci&oacute;n visual la cual permite configurar las
- opciones del kernel para la mayor&iacute;a de tarjetas ISA.</para>
-
- <para>Todav&iacute;a es recomendable la creaci&oacute;n de un nuevo
- kernel conteniendo s&oacute;lo los drivers que nos sean necesarios para
- ahorrar un poco de RAM, pero no es estrictamente necesario para la
- mayor&iacute;a de sistemas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Vivo fuera de USA. &iquest;Puedo usar la encriptaci&oacute;n
- DES?</para>
- </question>
-
- <answer>
- <para>Si no es absolutamente necesario que uses la encriptaci&oacute;n
- DES, puedes usar la encriptaci&oacute;n por defecto de FreeBSD para una
- <emphasis remap=bf>mejor</emphasis> seguridad, y sin restricciones de
- importaci&oacute;n. La encriptaci&oacute;n por defecto de los passwords
- en FreeBSD est&aacute; basada en <emphasis remap=bf>MD5</emphasis>, y
- es necesario un mayor uso intensivo de CPU con programas de
- descubrimiento de passwords que en DES. La &uacute;nica raz&oacute;n
- para no usar hoy en d&iacute;a la encriptaci&oacute;n <emphasis
- remap=bf>MD5</emphasis> ser&iacute;a usar un sistema de passwords
- compartidos entre sistemas FreeBSD y no FreeBSD.</para>
-
- <para>Puesto que el algoritmo de encriptaci&oacute;n DES no puede ser
- legalmente exportado fuera de USA, los usuarios externos a USA NO
- deber&iacute;an descargar este software desde los servidores FTP
- situados en USA.</para>
-
- <para>Existe una alternativa para la biblioteca de encriptaci&oacute;n,
- basada en el c&oacute;digo escrito en Australia por David Burren. Este
- c&oacute;digo est&aacute; disponible en algunos mirrors de FreeBSD
- fuera de USA. El c&oacute;digo fuente de la biblioteca de
- encriptaci&oacute;n, y los binarios de los programas que la usan pueden
- encontrarse en los siguientes servidores FTP:</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>
- South Africa
- </term>
- <listitem>
- <para><filename>ftp://ftp.internat.FreeBSD.org/pub/FreeBSD</filename>
- <filename>ftp://storm.sea.uct.ac.za/pub/FreeBSD</filename></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Brazil
- </term>
- <listitem>
- <para><filename>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</filename></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Finland
- </term>
- <listitem>
- <para><filename>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</filename></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>Los usuarios de fuera de USA no deben descargar ning&uacute;n
- software de encriptaci&oacute;n de servidores situados en USA, ya que
- de no seguir esta norma los responsables de esos servidores
- podr&iacute;an verse envueltos en importantes problemas legales.</para>
-
- <para>Se est&aacute; desarrollando una distribuci&oacute;n no
- estadounidense de Kerberos, cuyas versiones actuales pueden obtenerse
- v&iacute;a ftp an&oacute;nimo en
- <filename>braae.ru.ac.za</filename>.</para>
-
- <para>Existe tambi&eacute;n una <link linkend="mailing">lista de
- distribuci&oacute;n</link> para la discusi&oacute;n de software de
- encriptaci&oacute;n externo a USA. Para m&aacute;s informaci&oacute;n
- env&iacute;a un e-mail con una simple l&iacute;nea diciendo "<emphasis
- remap=tt>help</emphasis> en el cuerpo del mensaje a:</para>
-
- <para><email>majordomo@braae.ru.ac.za</email>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>El ``boot disc'' arranca pero se cuelga en la pantalla ``Probing
- Devices...''</para>
- </question>
-
- <answer>
- <para>Si tienes instalado un ZIP o un Jaz IDE, descon&eacute;ctalo e
- int&eacute;ntalo de nuevo. El disco de arranque puede haberse
- confundido con los discos. Una vez el sistema est&eacute; instalado,
- puedes volver a conectar los dispositivos. Esperamos que esto sea
- arreglado en las pr&oacute;ximas releases.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Aparece el siguiente error ``panic: can't mount root'' al
- reiniciar el computador despu&eacute;s de la instalaci&oacute;n</para>
- </question>
-
- <answer>
- <para>Este error proviene de la confusi&oacute;n entre los bloques de
- arranque y lo que ve el kernel en los discos. El error se suele
- manifestar en sistemas con dos discos IDE, con los discos duros
- dispuestos como m&aacute;ster o ''single'' en controladoras diferentes,
- estando FreeBSD instalado en la controladora IDE secundaria. Los
- bloques de arranque piensan que el sistema est&aacute; instalado en wd1
- (el segundo disco en el BIOS) mientras el kernel asigna el primer disco
- de la controladora secundaria wd2. Despu&eacute;s de la
- detecci&oacute;n de dispositivos, el kernel intenta montar lo que los
- bloques de arranque piensan que es el disco de arranque, wd1, cuando
- realmente es el wd2, y falla.</para>
-
- <para>Para solucionar el problema, haz una de las siguientes
- cosas:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>En el prompt de arranque (boot:), pon
- <emphasis remap=tt>1:wd(2,a)kernel</emphasis> y presiona Enter.
- Si el sistema arranca, ejecuta el comando:
- <literallayout>
-echo "1:wd(2,a)kernel" &gt; /boot.config
- </literallayout>
- para actualizar la cadena de arranque por defecto.</para>
- </listitem>
-
- <listitem>
- <para>Mueve el disco de FreeBSD a la controladora IDE primaria
- para que los discos sean consecutivos.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="../../handbook/kernelconfig.html">Crea un nuevo
- kernel,</ulink> modifica las l&iacute;neas de
- configuraci&oacute;n de wd de la siguiente manera:
- <literallayout>
-controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
-disk wd0 at wdc0 drive 0
-# disk wd1 at wdc0 drive 1 # comment out this line
-
-controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
-disk wd1 at wdc1 drive 0 # change from wd2 to wd1
-disk wd2 at wdc1 drive 1 # change from wd3 to wd2
- </literallayout>
- Instala el nuevo kernel: Si moviste los discos y quieres
- recuperar la configuraci&oacute;n previa, reemplaza los discos en
- la configuraci&oacute;n deseada y rearranca el sistema. Tu
- sistema deber&iacute;a arrancar sin problemas.</para>
- </listitem>
- </orderedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Cu&aacute;l es el l&iacute;mite de memoria?.</para>
- </question>
-
- <answer>
- <para>Para memoria, el l&iacute;mite (te&oacute;rico) es de 4
- gigabytes. Un gigabyte ha sido comprobado y funciona sin problemas:
- generalmente no se pueden comprar equipos i386 que soporten m&aacute;s
- cantidad de memoria.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Cu&aacute;l es el l&iacute;mite del sistema de archivos
- FFS?</para>
- </question>
-
- <answer>
- <para>Para sistemas de archivos FFS, el m&aacute;ximo te&oacute;rico
- est&aacute; en 8 terabytes (bloques de 2G), o 16TB para el
- tama&ntilde;o de bloque por defecto de 8K. En la pr&aacute;ctica hay un
- l&iacute;mite ``blando'' de 1 terabyte, pero con peque&aacute;as
- modificaciones son posibles (y existen) sistemas de archivos de 4
- terabytes.</para>
-
- <para>El tama&ntilde;o m&aacute;ximo de un &uacute;nico archivo FFS es
- aproximadamente de 1 Gbloque (4TB) si el tama&ntilde;o del bloque es
- de 4K.</para>
-
- <para>
- <literallayout>
-maxfilesize
-----------------------------------
- 2.2.7 3.0
-fs block size -stable -current works should-work
-------------- ------- -------- ----- -----------
-4K 4T-1 4T-1 4T-1 4+T
-8K 32+G 8T-1 32+G 16T-1
-16K 128+G 16T-1 128+G 32T-1
-32K 512+G 32T-1 512+G 64T-1
-64K 2048+G 64T-1 2048+G 128T-1
- </literallayout>
- </para>
-
- <para>Cuando el tama&ntilde;o del bloque del sistema de archivos es de
- 4K, los bloques triple-indirectos funcionan y el l&iacute;mite total
- deber&iacute;a venir determinado por el n&uacute;mero m&aacute;ximo de
- bloques que puede ser representado usando los bloques triple-indirectos
- (aproximadamente 1K^3 + 1K^2 + 1K), pero el l&iacute;mite total lo
- establece un l&iacute;mite (incorrecto) de 1G-1 en el n&uacute;mero de
- bloques. El l&iacute;mite en el n&uacute;mero de bloques deber&iacute;a
- ser de 2G-1, pero estos n&uacute;meros de bloque son inalcanzables
- cuando los bloques del sistema de archivos son de 4K.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo poner archivos de 1TB en un
- disquete?</para>
- </question>
-
- <answer>
- <para>El tama&ntilde;o m&aacute;ximo de un archivo no depende
- directamente del tama&ntilde;o m&aacute;ximo del disco. El
- tama&ntilde;o m&aacute;ximo del disco es de 1TB. Es una ventaja que el
- tama&ntilde;o del archivo pueda ser mayor que el tama&ntilde;o del
- disco.</para>
-
- <para>El siguiente ejemplo crea un archivo con un tama&ntilde;o de 1TB
- usando 32K de espacio de disco (3 bloques indirectos y 1 bloque de
- datos) en una peque&ntilde;a partici&oacute;n ra&iacute;z.</para>
-
- <para>
- <literallayout>
-ttyv0:bde@alphplex:/tmp/q&gt; cat foo
-df .
-dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
-ls -l z
-du z
-df .
-ttyv0:bde@alphplex:/tmp/q&gt; sh foo
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/sd0a 64479 27702 31619 47% /
-1+0 records in
-1+0 records out
-1 bytes transferred in 0.000187 secs (5346 bytes/sec)
--rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
-32 z
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/sd0a 64479 27734 31587 47% /
-ttyv0:bde@alphplex:/tmp/q&gt; exit
- </literallayout>
- </para>
-
- <para>Bruce Evans, septiembre de 1998</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>He compilado un nuevo kernel y al arrancar aparece el error
- "archsw.readin.failed".</para></question><answer>
-
- <para>Puedes arrancar especificando el kernel directamente en la
- segunda fase del boot, pulsando cualquier tecla cuando veas el
- s&iacute;mbolo | justo antes de que se arranque el cargador (loader).
- M&aacute;s espec&iacute;ficamente, has actualizado los fuentes para tu
- kernel, y lo has creado y actualizado a partir de ellos
- <emphasis>s&iacute;n hacer un ``make world''</emphasis>. As&iacute; no
- funciona. Haz un ``make world''.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="hardware">
- <title>Compatibilidad hardware </title>
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; tipo de discos duros soporta FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD soporta discos duros EIDE y SCSI (con controladoras
- compatibles; mira en la siguiente secci&oacute;n), y todos los discos
- que usen el interface original ``Western Digital'' (MFM, RLL, ESDI y
- por supuesto IDE). Algunas controladoras ESDI que usan interfaces
- propietarios quiz&aacute; no funcionen correctamente.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; controladoras SCSI est&aacute;n
- soportadas?</para>
- </question>
-
- <answer>
- <para>FreeBSD soporta las siguientes controladoras SCSI:</para>
- <para>
- <variablelist>
- <varlistentry>
- <term>
- Adaptec
- </term>
- <listitem>
- <para>
- AH-1505 &lt;ISA&gt;
- AH-152x Series &lt;ISA&gt;
- AH-154x Series &lt;ISA&gt;
- AH-174x Series &lt;EISA&gt;
- Sound Blaster SCSI (AH-152x compat) &lt;ISA&gt;
- AH-2742/2842 Series &lt;ISA/EISA&gt;
- AH-2820/2822/2825 Series (Narrow/Twin/Wide) &lt;VLB&gt;
- AH-294x and aic7870 MB controllers (Narrow/Twin/Wide) &lt;PCI&gt;
- AH-394x (Narrow/Twin/Wide)
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Buslogic</term>
- <listitem>
- <para>
- BT-445 Series &lt;VLB&gt;
- BT-545 Series &lt;ISA&gt;
- BT-742 Series &lt;EISA&gt;
- BT-747 Series &lt;EISA&gt;
- BT-946 Series &lt;PCI&gt;
- BT-956 Series &lt;PCI&gt;
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Future Domain
- </term>
- <listitem>
- <para>
- TMC-950 Series &lt;ISA&gt;
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- PCI Generic
- </term>
- <listitem>
- <para>
- NCR 53C81x based controllers &lt;PCI&gt;
- NCR 53C82x based controllers &lt;PCI&gt;
- NCR 53C860/75 based controllers &lt;PCI&gt;
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- ProAudioSpectrum
- </term>
- <listitem>
- <para>
- Zilog 5380 based controllers &lt;ISA&gt;
- Trantor 130 based controllers &lt;ISA&gt;
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- DTC
- </term>
- <listitem>
- <para>
- DTC 3290 EISA SCSI in AHA-154x emulation.
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Seagate
- </term>
- <listitem>
- <para>
- ST-01/02 Series &lt;ISA&gt;
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- UltraStor
- </term>
- <listitem>
- <para>
- UH-14f Series &lt;ISA&gt;
- UH-24f Series &lt;EISA&gt;
- UH-34f Series &lt;VLB&gt;
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Western Digital
- </term>
- <listitem>
- <para>
- WD7000 &lt;ISA&gt; &lt;No scatter/gather&gt;
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; lectores CD-ROM soporta FreeBSD?</para>
- </question>
-
- <answer>
- <para>Est&aacute; soportado cualquier disco SCSI conectado a una
- controladora soportada</para>
-
- <para>Los siguientes interfaces de CD-ROM propietarios tambi&eacute;n
- est&aacute;n soportados:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit 2x
- Speed).</para>
- </listitem>
-
- <listitem>
- <para>Sony CDU 31/33A<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>Sound Blaster Non-SCSI CD-ROM<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>Matsushita/Panasonic CD-ROM<!-- <br> --></para>
- </listitem>
-
- <listitem>
- <para>ATAPI compatible IDE CD-ROMs<!-- <br> --></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Todas las tarjetas no SCSI son conocidas por ser extremadamente
- lentas comparadas con los discos SCSI, y algunos CDROM ATAPI
- quiz&aacute; no funcionen correctamente.</para>
-
- <para>A partir de la versi&oacute;n 2.2 de FreeBSD en CDROM de Walnut
- Creek se soporta el arranque directo (boot) desde el propio CD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD discos ZIP?</para>
- </question>
-
- <answer>
- <para>FreeBSD soporta los ZIP SCSI externos. Las unidades ZIP
- s&oacute;lo pueden funcionar en los ID's SCSI 5 y 6, pero si el BIOS de
- tu controladora lo soporta, puedes arrancar desde &eacute;l. No sabemos
- qu&eacute; controladoras dejan arrancar desde ID's diferentes de la 0 o
- 1... mira en tu documentaci&oacute;n y h&aacute;zmelo saber si te
- funciona.</para>
-
- <para>Los discos Zip ATAPI (IDE) est&aacute;n soportados en FreeBSD
- 2.2.6 y releases posteriores.</para>
-
- <para>FreeBSD ha incluido el soporte de discos ZIP por puerto paralelo
- desde la versi&oacute;n 3.0. Si est&aacute;s usando una versi&oacute;n
- actualizada, debes asegurarte de que tu configuraci&oacute;n del kernel
- incluye los drivers <emphasis remap=tt>scbus0</emphasis>, <emphasis
- remap=tt>da0</emphasis>, <emphasis remap=tt>ppbus0</emphasis> y
- <emphasis remap=tt>vp0</emphasis> (el kernel GENERIC los contiene todos
- excepto vp0). Con todos estos drivers presentes, el disco por puerto
- paralelo deber&iacute;a estar disponible como /dev/da0s4. Los discos se
- pueden montar usando <command>mount /dev/da0s4 /mnt</command> o (para
- discos dos) <emphasis remap=tt>mount_msdos /dev/da0s4
- /mnt</emphasis>.</para>
-
- <para>Tambi&eacute;n mira en <link linkend="jaz">discos
- removibles</link>, y <link linkend="disklabel">esta nota en
- 'formatting'</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD JAZ, EZ y otros discos removibles?</para>
- </question>
-
- <answer>
- <para>Aparte de la versi&oacute;n IDE de EZ, todos estos son
- dispositivos SCSI, por lo que deber&iacute;an funcionar sin problemas
- ya que FreeBSD los toma como discos SCSI y el IDE EZ tambi&eacute;n
- deber&iacute;a funcionar sin problemas ya que se toma como un disco IDE
- est&aacute;ndar.</para>
-
- <para><anchor id="jaz">No estoy seguro de c&oacute;mo soporta FreeBSD
- el cambio de soporte mientras est&aacute; funcionando. Deber&aacute;s,
- desde luego, desmontar la unidad antes de poder cambiar el soporte, y
- estar seguro de que todas las unidades externas est&aacute;n encendidas
- antes de arrancar el computador con FreeBSD para que &eacute;ste pueda
- reconocerlas.</para>
-
- <para>Mira <link linkend="disklabel">esta nota en
- 'formatting'</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; tarjetas serie multipuerto est&aacute;n
- soportadas por FreeBSD?</para>
- </question>
-
- <answer>
- <para>Hay una lista de ellas en la secci&oacute;n
- <ulink URL="../../handbook/install.html#INSTALL-HW">dispositivos varios</ulink>
- del manual (handbook).</para>
-
- <para>Algunas tarjetas ``sin nombre'' tambi&eacute;n han funcionado,
- especialmente las que dicen ser compatibles AST.</para>
-
- <para>Mira la p&aacute;gina
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio</ulink>
- para obtener m&aacute;s informaci&oacute;n sobre la
- configuraci&oacute;n de estas tarjetas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="busmouse">
- <para>Tengo un tipo de rat&oacute;n no habitual. &iquest;C&oacute;mo lo configuro?</para>
- </question>
-
- <answer>
- <para>FreeBSD soporta el ``bus mouse'' y el ``InPort bus mouse'' de
- fabricantes como Microsoft, Logitech y ATI. El driver de mouse
- esti&aacute; compilado en el kernel GENERIC (kernel por defecto que
- carga el sistema). Si est&aacute;s haci&eacute;ndote un kernel a medida
- que incluya el driver de rat&oacute;n, aseg&uacute;rate de
- a&ntilde;adir la siguiente l&iacute;nea en el archivo de
- configuraci&oacute;n del kernel:</para>
-
- <para>
- <literallayout>
-device mse0 at isa? port 0x23c tty irq5 vector mseintr
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ps2mouse">
- <para>&iquest;C&oacute;mo uso mi rat&oacute;n PS/2 (``mouse port'' o
- ``teclado'')?</para>
- </question>
-
- <answer>
- <para>Si est&aacute;s usando una versi&oacute;n reciente de FreeBSD, el
- driver necesario, psm, est&aacute; incluido y activado en el kernel. El
- propio kernel deber&iacute;a detectar tu rat&oacute;n PS/2 en el
- momento de arrancar.</para>
-
- <para>Si est&aacute;s usando una versi&oacute;n antigua, s&oacute;lo
- tienes que activarlo en la configuraci&oacute;n del kernel en el
- momento de la instalaci&oacute;n del sistema. Si &eacute;ste ya
- est&aacute; instalado, escribe -c en el prompt boot: y act&iacute;valo.
- Por defecto, este driver est&aacute; desactivado.</para>
-
- <para>Si est&aacute;s usando alguna de las versiones m&aacute;s
- antiguas, tendras que a&ntilde;adir la siguiente l&iacute;nea en el
- archivo de configuraci&oacute;n del kernel y compilar uno nuevo:</para>
-
- <para>
- <literallayout>
-device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
- </literallayout>
- </para>
-
- <para>Mira la secci&oacute;n
- <ulink URL="../../handbook/kernelconfig.html">configuraci&oacute;n del kernel</ulink>
- si no tienes experiencia en la creaci&oacute;n de nuevos kernel.</para>
-
- <para>Una vez que el kernel detecta correctamente el dispositivo psm0
- al arrancar, aseg&uacute;rate de que existe una entrada en /dev para
- este dispositivo. Puedes hacerlo tecleando:</para>
-
- <para>
- <literallayout>
-cd /dev; sh MAKEDEV psm0
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="moused">
- <para>&iquest;Es posible hacer uso del rat&oacute;n fuera de X
- Windows?</para>
- </question>
-
- <answer>
- <para>Si est&aacute;s usando el driver por defecto de la consola,
- syscons, puedes usar el rat&oacute;n en las consolas de texto para
- realizar ``cut &amp; paste''. Ejecuta el demonio (daemon) de
- rat&oacute;n moused y arranca el rat&oacute;n en la consola
- virtual:</para>
-
- <para>
- <literallayout>
-moused -p /dev/xxxx -t yyyy
-vidcontrol -m on
- </literallayout>
- </para>
-
- <para>donde <emphasis remap=tt>xxxx</emphasis> es el nombre del
- dispositivo del rat&oacute;n e <emphasis remap=tt>yyyy</emphasis> es un
- tipo de protocolo para el rat&oacute;n. Mira en
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?moused">moused</ulink>
- para saber los tipos de protocolo soportados.</para>
-
- <para>Si quieres ejecutar el demonio moused autom&aacute;ticamente al
- arrancar el sistema, activa las siguientes variables en
- <filename>/etc/sysconfig</filename> (para versi&oacute;n 2.2.1).</para>
-
- <para>
- <literallayout>
-mousedtype="yyyy"
-mousedport="xxxx"
-mousedflags=""
- </literallayout>
- </para>
-
- <para>En versiones 2.2.2 o superiores, activa las siguientes variables
- en <filename>/etc/rc.conf</filename>.</para>
-
- <para>
- <literallayout>
-moused_type="yyyy"
-moused_port="xxxx"
-moused_flags=""
- </literallayout>
- </para>
-
- <para>A partir de la versi&oacute;n 2.2.6, el demonio del rat&oacute;n
- es capaz de determinar autom&aacute;ticamente el protocolo correcto a
- utilizar. S&oacute;lo tienes que especificar
- <emphasis remap=tt>auto</emphasis> como el protocolo a usar.</para>
-
- <para>Cuando el demonio de rat&oacute;n est&aacute; funcionando, el
- acceso al rat&oacute;n necesita coordinarse con otros programas como
- X Window. Mira en <link linkend="x-and-moused">esta
- secci&oacute;n</link> para m&aacute;s informaci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo hago un cut &amp; paste con el rat&oacute;n
- en una consola de texto?</para>
- </question>
-
- <answer>
- <para>Una vez que tengas el demonio del rat&oacute;n funcionando (mira
- <link linkend="moused">la secci&oacute;n anterior</link>, pulsa el
- bot&oacute;n 1 (izquierdo) y mueve el rat&oacute;n para seleccionar la
- regi&oacute;n de texto. A continuaci&oacute;n, pulsa el bot&oacute;n 2
- (medio) o 3 (derecho) para hacer un paste (pegar) de la regi&oacute;n
- seleccionada en el lugar en el que tengamos situado el cursor.</para>
-
- <para>En versiones 2.2.6 o superiores, pulsando el bot&oacute;n 2 hara
- un paste del texto seleccionado. Pulsando el bot&oacute;n 3
- extenderemos la regi&oacute;n seleccionada de texto. Si tu rat&oacute;n
- no tiene el bot&oacute;n medio, puedes emularlo o ``remapear''
- (reconfigurar) los botones de tu rat&oacute;n con las opciones del
- demonio moused. Mira en
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?moused">moused</ulink>
- para m&aacute;s informaci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi rat&oacute;n tiene una rueda de desplazamiento y botones.
- &iquest;Puedo usarlo?</para>
- </question>
-
- <answer>
- <para>La respuesta es, desafortunadamente, ``depende''. Estos ratones
- con caracter&iacute;sticas adicionales requieren en muchos casos
- drivers propios y especializados. A no ser que el driver de dispositivo
- o el programa de usuario tenga soporte espec&iacute;fico, el
- rat&oacute;n se comportar&aacute; como un rat&oacute;n normal y
- corriente.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo uso el mouse/trackball/touchpad en mi
- port&aacute;til?</para>
- </question>
-
- <answer>
- <para>Por favor, <link linkend="ps2mouse">mira en la respuesta
- anterior</link>. Mira tambi&eacute;n <link linkend="pao">esta
- nota</link> en la secci&oacute;n de computadores
- port&aacute;tiles.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; tipo de dispositivos de cinta est&aacute;n
- soportados?</para>
- </question>
-
- <answer>
- <para>FreeBSD soporta unidades SCSI, QIC-36 (con interfaz QIC-02) y
- QIC-40/80 (interfaz floppy). Esto inclye dispositivos de 8mm
- (conocidos como Exabyte) y dispositivos DAT. Los QIC-40/80 son
- conocidos por su lentitud.</para>
-
- <para>Algunos de los dispositivos de 8mm primitivos no son totalmente
- compatibles con SCSI2 por lo que puede que no funcionen correctamente
- en FreeBSD.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD ``tape changers''?</para>
- </question>
-
- <answer>
- <para>FreeBSD 2.2 soporta SCSI changers usando el dispositivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ch(4)">ch</ulink>
- y el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chio">chio</ulink>.
- Los detalles acerca de c&oacute;mo controlar realmente el changer se
- encuentran en
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chio">chio</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; tarjetas de sonido est&aacute;n soportadas por
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD soporta las tarjetas SoundBlaster, SoundBlaster Pro,
- SoundBlaster 16, Pro Audio Spectrum 16, AdLib y Gravis Ultrasound. Hay
- tambi&eacute;n soporte limitado para la tarjeta MPU-401 y compatibles
- midi. Las tarjetas SoundBlaster 16 ASP todav&iacute;a no son
- soportadas. El Microsoft Sound System s&iacute; est&aacute;
- soportado.</para>
-
- <para><acronym>NOTA</acronym>: &iexcl;Esto es solo para sonido! Este
- driver no soporta CD-ROMs, SCSI o joysticks en estas tarjetas, a
- excepci&oacute;n de la SoundBlaster. El interface SCSI de SoundBlaster
- y algunos CD-ROMs no SCSI est&aacute;n soportados, pero no
- podr&aacute;s arrancar el sistema desde ellos.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>No obtengo sonido de la tarjeta es1370 con driver pcm</para>
- </question>
-
- <answer>
- <para>Puedes ejecutar el siguiente mandato cada vez que arranques el
- sistema:</para>
-
- <para><literallayout>
-mixer pcm 100 vol 100 cd 100
- </literallayout></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; tarjetas de red soporta FreeBSD?</para>
- </question>
-
- <answer>
- <para>Mira la secci&oacute;n de
- <ulink URL="../../handbook/install:nics.html">tarjetas Ethernet</ulink>
- en el manual para una lista m&aacute;s completa.</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?de(4)">de</ulink> driver
- </term>
- <listitem>
- <para>DEC DC21x40 and compatible PCI controllers (including 21140 100bT cards)
- </para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ed(4)">ed</ulink> driver
- </term>
- <listitem>
- <para>NE2000 and 1000
- WD/SMC 8003, 8013 and Elite Ultra (8216)
- 3Com 3c503
- HP 27247B and 27252A
- And clones of the above</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?le(4)">le</ulink> driver
- </term>
- <listitem>
- <para>DEC EtherWORKS II and EtherWORKS III controllers</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ie(4)">ie</ulink> driver
- </term>
- <listitem>
- <para>AT&amp;T EN100/StarLAN 10
- 3COM 3c507 Etherlink 16/TP
- NI5210
- Intel EtherExpress</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?is(4)">is</ulink> driver
- </term>
- <listitem>
- <para>Isolan AT 4141-0
- Isolink 4110</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?el(4)">el</ulink> driver
- </term>
- <listitem>
- <para>3com 3c501 (does not support Multicast or DMA)</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?eg(4)">eg</ulink> driver
- </term>
- <listitem>
- <para>3com 3c505 Etherlink/+</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ze(4)">ze</ulink> driver
- </term>
- <listitem>
- <para>IBM PCMCIA credit card adapter</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?lnc(4)">lnc</ulink> drive
- </term>
- <listitem>
- <para>Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL)(*)</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ep(4)">ep</ulink> driver
- </term>
- <listitem>
- <para>3com 3c509 (Must disable PNP support on card)</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cx(4)">cx</ulink> driver
- </term>
- <listitem>
- <para>Cronyx/Sigma multiport Sync/Async (Cisco and PPP framing)</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?zp(4)">zp</ulink> driver
- </term>
- <listitem>
- <para>3Com PCMCIA Etherlink III (aka 3c589)(A-C only)</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fea(4)">fea</ulink> driver
- </term>
- <listitem>
- <para>DEC DEFEA EISA FDDI controller</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fpa(4)">fpa</ulink> driver
- </term>
- <listitem>
- <para>DEC DEFPA PCI FDDI controller</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fe(4)">fe</ulink> driver
- </term>
- <listitem>
- <para>Fujitsu MB86960A/MB86965A Ethernet cards</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para><acronym>NOTA</acronym> Los drivers marcados con (*) pueden tener
- problemas.</para>
-
- <para><acronym>NOTA</acronym>: 3C598D NO est&aacute; soportada
- todav&iacute;a.</para>
-
- <para><acronym>NOTA</acronym>: FreeBSD tambi&eacute;n soporta TCP/IP
- sobre l&iacute;neas paralelo. En estos momentos, no somos compatibles
- con otras versiones, pero esperamos corregirlo en un futuro cercano.
- Encontrar&aacute;s m&aacute;s informaci&oacute;n sobre este tema en la
- p&aacute;gina man de lp(4).</para>
-
- <para><acronym>NOTA</acronym>: Algunas de estas tarjetas requieren una
- partici&oacute;n DOS en el disco duro para ejecutar el programa de
- configuraci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>No tengo coprocesador matem&aacute;tico - &iquest;es malo?</para>
- </question>
-
- <answer>
- <para><acronym>NOTA</acronym>: Esto s&oacute;lo afectar&aacute; a los
- computadores 386/486SX/486SLC. El resto de los microprocesadores
- tienen un coprocesador integrado.</para>
-
- <para>En general, esto no causar&aacute; problemas, pero hay
- circunstancias en las que pudieras echarlo de menos, especialmente
- si trabajas en entorno X Window. Si puedes, te recomendamos que compres
- uno y lo instales en tu computador.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; otros dispositivos soporta FreeBSD 2.X?</para>
- </question>
-
- <answer>
- <para>Aqu&iacute; hay una lista de drivers que no se han podido
- catalogar en las categor&iacute;as anteriores.</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>
- <filename>b004.c</filename>
- </term>
- <listitem>
- <para>Driver for B004 compatible Transputer boards</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- ``ctx'' driver
- </term>
- <listitem>
- <para>Driver for CORTEX-I Frame grabber</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- ``gp'' driver
- </term>
- <listitem>
- <para>Driver for National Instruments AT-GPIB and
- AT-GPIB/TNT boards</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- ``pca'' driver
- </term>
- <listitem>
- <para>Driver for PC speakers to allow the playing of audio files</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- ``spigot'' driver
- </term>
- <listitem>
- <para>Driver for the Creative Labs Video Spigot</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?gsc(4)">gsc</ulink> driver
- </term>
- <listitem>
- <para>Driver for the Genuis GS-4500 Hand scanner</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?joy(4)">joy</ulink> driver
- </term>
- <listitem>
- <para>Driver for a joystick</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?labpc(4)">labpc</ulink> driver
- </term>
- <listitem>
- <para>Driver for National Instrument's Lab-PC and Lab-PC+</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- ``uart'' driver
- </term>
- <listitem>
- <para>Stand-alone 6850 UART for MIDI</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?psm(4)">psm</ulink> driver
- </term>
- <listitem>
- <para>PS/2 mouse port</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <filename>tw.c</filename>
- </term>
- <listitem>
- <para>Driver for the X-10 POWERHOUSE</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD la administraci&oacute;n de
- energ&iacute;a en mi port&aacute;til?</para>
- </question>
-
- <answer>
- <para>FreeBSD soporta APM en algunas m&aacute;quinas. Por favor, mira
- en el archivo de configuraci&oacute;n del kernel
- <acronym>LINT</acronym> y busca la parabra <ulink
- URL="http://www.FreeBSD.org/cgi/man.cgi?apm">APM</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Los sistemas Micron se bloquean al arrancar</para>
- </question>
-
- <answer>
- <para>Algunas placas base Micron tienen una implementaci&oacute;n de
- PCI en el BIOS que no es est&aacute;ndar, lo que provoca que FreeBSD no
- pueda encontrar los dispositivos PCI en las direcciones en las que
- deber&iacute;an estar.</para>
-
- <para>Desactiva la opci&oacute;n ``Plug and Play Operating System'' en
- el BIOS para solucionar el problema. Puedes encontrar m&aacute;s
- informaci&oacute;n en:
- <ulink URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Tengo una de las controladoras Adaptec m&aacute;s modernas y
- FreeBSD no puede encontrarla</para>
- </question>
-
- <answer>
- <para>Las nuevas controladoras Adaptec con chipset de la serie AIC789x
- est&aacute;n soportados bajo la nueva CAM SCSI que hace su debut en la
- version 3.0 de FreeBSD. Los parches para las versiones 3.0-CURRENT y
- 2.2-STABLE est&aacute;n en:
- <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/</ulink>.
- Un disco de arranque con soporte CAM est&aacute; disponible en:
- <ulink URL="http://www.FreeBSD.org/~abial/cam-boot/">http://www.FreeBSD.org/~abial/cam-boot/</ulink>.
- En ambos casos lee el archivo README antes de empezar.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Tengo un m&oacute;dem interno Plug &amp; Play y FreeBSD no lo
- encuentra</para>
- </question>
-
- <answer>
- <para>Necesitar&aacute;s a&ntilde;adir el ID del modem PnP a la lista
- de ID PnP en el driver serie. Para activar el soporte PnP, compila un
- nuevo kernel con <emphasis remap=tt>controller pnp0</emphasis> en el
- archivo de configuraci&oacute;n y rearranca el sistema. El kernel
- mostrar&aacute; en pantalla los IDs de todos los dispositivos PnP que
- encuentre. Copia el ID del m&oacute;dem en la tabla del archivo
- <filename>/sys/i386/isa/sio.c</filename>, sobre la l&iacute;nea 2777.
- Busca la cadena "SUP1310" en la estructura "siopnp_ids[]" para
- encontrar la tabla. Genera un nuevo kernel, inst&aacute;lalo y
- rearranca. Tu m&oacute;dem deber&iacute;a ser encontrado.</para>
-
- <para>Quiz&aacute; tengas que configurar manualmente los dispositivos
- PnP usando el comando ``pnp'' en la configuraci&oacute;n de arranque
- usandolo de la siguiente manera:
- <literallayout>
-pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo obtengo el prompt ``boot:'' en una consola
- serie?</para>
- </question>
-
- <answer>
- <para>
- <orderedlist>
- <listitem>
- <para>Crea un nuevo kernel con <emphasis remap=tt>options
- COMCONSOLE</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Crea el archivo /boot.config y pon <option>-P</option> como
- &uacute;nico texto en el archivo.</para>
- </listitem>
-
- <listitem>
- <para>Desconecta el teclado del computador.</para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>Mira el archivo
- <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename> para
- m&aacute;s informaci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Por qu&eacute; no funciona mi tarjeta de red PCI 3Com con
- mi computador Micron?</para>
- </question>
-
- <answer>
- <para>Algunas placas base Micron tienen una implementaci&oacute;n de
- PCI en el BIOS que no es est&aacute;ndar, lo que provoca que FreeBSD no
- pueda encontrar los dispositivos PCI en las direcciones en las que
- debieran estar.</para>
-
- <para>Para solucionar el problema, desactiva la opci&oacute;n
- ``Plug and Play Operating System'' en el BIOS.</para>
-
- <para>Puedes encontrar m&aacute;s informaci&oacute;n sobre este
- problema en
- <ulink URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD el multiprocesamiento sim&eacute;trico
- (SMP)?</para>
- </question>
-
- <answer>
- <para>SMP s&oacute;lo est&aacute; soportado a partir de la
- versi&oacute;n 3.0-STABLE</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter
-id="troubleshoot">
-
-<title>Problemas</title>
-
- <qandaset>
- <qandaentry>
- <question id="awre">
- <para>Tengo bloques err&oacute;neos en mi disco duro!</para>
- </question>
-
- <answer>
- <para>Los discos SCSI deber&iacute;an ser capaces de marcar estos bloques
- err&oacute;neos automaticamente para que no presenten problemas. Algunos
- discos, por alguna raz&oacute;n desconocida, se venden con esta
- caracter&iacute;stica desactivada.</para>
-
- <para>Para activar esta opci&oacute;n, tendr&aacute;s que editar una de las
- opciones del dispositivo, lo que puede ser hecho con FreeBSD tecleando el
- siguiente comando (como root):</para>
-
- <para>
- <literallayout>
-scsi -f /dev/rsd0c -m 1 -e -P 3
- </literallayout>
- </para>
-
- <para>y cambiando los valores de AWRE y ARRE de 0 a 1:-</para>
-
- <para>
- <literallayout>
-AWRE (Auto Write Reallocation Enbld): 1
-ARRE (Auto Read Reallocation Enbld): 1
- </literallayout>
- </para>
-
- <para>Para otros tipos de discos, dependes de las caracter&iacute;sticas
- de los sistemas operativos. Desafortunadamente, el comando "bad144"
- que se incluye en FreeBSD, necesita ser desarrollado m&aacute;s en
- profundidad. </para>
-
- <para>Se <emphasis>supone</emphasis> que los discos IDE incluyen de serie
- la posibilidad de "remapear" los bloques da&ntilde;ados; si tienes
- documentaci&oacute;n de tu disco, podr&aacute;s ver si esta opci&oacute;n
- est&aacute; activada o desactivada.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>FreeBSD no reconoce mi Bustek 742a EISA SCSI!</para>
- </question>
-
- <answer>
- <para>Esta informaci&oacute;n es espec&iacute;fica para la tarjeta 742a,
- pero puede ser aplicable a otras tarjetas Buslogic. (Bustek = Buslogic)</para>
-
- <para>Existen dos versiones de la tarjeta 742a. Son revisiones de
- hardware A-G y H. La letra de revisi&oacute;n est&aacute; situada
- despu&eacute;s del n&uacute;mero de ensamblaje. La 742a tiene 2 ROMs,
- una es el BIOS y la otra es el Firmware. FreeBSD no se fija en la
- versi&oacute;n de BIOS de la tarjeta, pero si en la de Firmware.
- Buslogic te enviar&aacute; una actualizaci&oacute;n de de las ROMs si te
- pones en contacto con su departamento t&eacute;cnico. La BIOS y el
- Firmware son distribuidas de manera inseparable. Deber&iacute;as tener
- la versi&oacute;n de Firmware m&aacute;s actualizada para la
- revisi&oacute;n de hardware de tu tarjeta.</para>
-
- <para>Las tarjetas con revisi&oacute;n A-G solo pueden aceptar BIOS/Firmware
- 2.41/2.21. La revisi&oacute;n H y superiores pueden aceptar las versiones
- m&aacute;s actuales 4.70/3.37. La diferencia entre las versiones de
- Firmware es que la 3.38 soporta "round robin".</para>
-
- <para>Las tarjetas Buslogic tienen un n&uacute;mero de serie serigrafiado
- en ellas. Si tienes una revisi&oacute;n de hardware antigua, puedes llamar
- al departamento de RMA de Buslogic y darles el n&uacute;mero de serie de
- la tarjeta para intentar cambiarla por una revisi&oacute;n superior del
- hardware.</para>
-
- <para>FreeBSD 2.1 solo soporta revisiones de Firmware 2.21 o superiores.
- Si tienes una versi&oacute;n inferior, tu tarjeta no ser&aacute;
- reconocida como Buslogic. Quiz&aacute;s sea reconocida como una Adaptec
- 1540. Las primeras versiones de Firmware de Buslogic contienen una modo
- de emulaci&oacute;n de la AHA1540.</para>
-
- <para>Si tienes una revisi&oacute;n de hardware antigua y consigues una
- m&aacute;s actual (2.21), necesitar&aacute;s chequear la posici&oacute;n
- del jumper W1 y asegurarte que est&aacute; en la posici&oacute;n B-C
- (por defecto esta en B-C).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi controladora SCSI HP Netserver's no es detectada!</para>
- </question>
-
- <answer>
- <para>Este es un problema ya conocido. Las controladoras SCSI EISA
- integradas en la placa base en las m&aacute;quinas HP Netserver, ocupan
- el slot numero 11. El espacio de direcciones para los slots
- EISA &gt;=10 colisionan con los espacios de direcciones asignados
- para los dispositivos PCI, y la autoconfiguraci&oacute;n de FreeBSD no
- maneja esta situaci&oacute;n demasiado bien.</para>
-
- <para>Lo mejor que puedes hacer es pretender que no existan clases
- de rangos de direcciones :), cambiando el valor de la opci&oacute;n del
- kernel <symbol>EISA_SLOTS</symbol> a un valor de 12.
- Configura y compila un nuevo kernel como se describe en la
- <ulink URL="../../handbook/kernelconfig.html">entrada correspondiente del manual</ulink>.
- </para>
-
- <para>Por supuesto, esto presenta un peque&ntilde;o problema. Para poder
- solucionarlo, es necesario un truco en la utilidad de
- configuraci&oacute;n. No uses el interface "visual", simplemente teclea
- lo siguiente en la l&iacute;nea de comando de la utilidad</para>
-
- <para>
- <literallayout>
-eisa 12
-quit
- </literallayout>
- </para>
-
- <para>Esperamos que en las pr&oacute;ximas versiones tengamos solucionados
- estos temas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; ocurre con la controladora IDE CMD640?</para>
- </question>
-
- <answer>
- <para>No funciona. No puede manejar comandos en los dos canales
- simult&aacute;neamente.</para>
-
- <para>Hay una soluci&oacute;n posible y se activa autom&aacute;ticamente si
- tu sistema usa este chip. Para m&aacute;s detalles, referirse al man del
- driver de discos (man 4 wd).</para>
-
- <para>Si todav&iacute;a est&aacute;s usando FreeBSD 2.2.1 o 2.2.2 con una
- controladora IDE CMD640 y quieres usar el segundo canal, crea un nuevo
- kernel con <emphasis remap=tt>options "CMD640"</emphasis> activada. Esta es
- la opci&oacute;n por defecto en la versi&oacute;n 2.2.5 y superiores.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Tengo mensajes como ``<emphasis remap=tt>ed1: timeout</emphasis>''.</para>
- </question>
-
- <answer>
- <para>Esto, normalmente es causado por conflictos de interrupciones (por
- ejemplo, dos tarjetas usando la misma IRQ). Las versiones
- anteriores a la 2.0.5R eran tolerantes con los problemas de
- conflictos de IRQ. A partir de esa versi&oacute;n, los conflictos de IRQ
- ya no son tolerados. Arranca con la opci&oacute;n -c y cambia la entrada
- correspondiente a tu tarjeta.</para>
-
- <para>Si est&aacute;s usando conectores BCN en tu tarjeta de red, el mensaje
- de error puede ser debido a una mala terminaci&oacute;n de la red. Para
- chequear esto, conecta un terminador directamente a la salida BNC de la
- tarjeta (sin cable) y mira si el mensaje desaparece.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Cuando monto el CDROM, obtengo ``Incorrect super block''.</para>
- </question>
-
- <answer>
- <para>Tienes que indicar el tipo de dispositivo que quieres montar. Por
- defecto <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?mount">mount</ulink>
- asumir&aacute; que el dispositivo que quieres montar es
- ``<emphasis remap=tt>ufs</emphasis>''. Si quieres montar un CDROM, tienes
- que especificar <option>-t cd9660</option>. Esto hace que el sistema asuma
- que tiene que montar un sistema de archivos con formato ISO 9660 que es lo
- que los CDROM deben tener.</para>
-
- <para>Como ejemplo, si quieres montar una unidad CDROM,
- <filename>/dev/cd0c</filename>, bajo <filename>/mnt</filename>, tienes que
- ejecutar</para>
-
- <para>
- <literallayout>
-mount -t cd9660 /dev/cd0c /mnt
- </literallayout>
- </para>
-
- <para>Ten en cuenta que el nombre de tu dispositivo
- (<filename>/dev/cd0c</filename> en este ejemplo) puede ser diferente
- dependiendo del interface que est&eacute;s usando. El comando anterior
- puede ser acortado tecleando:</para>
-
- <para>
- <literallayout>
-mount_cd9660 /dev/cd0c /mnt
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Cuando monto un CDROM, obtengo ``Device not configured''.</para>
- </question>
-
- <answer>
- <para>Esto, generalmente, significa que no hay ning&uacute;n disco en el
- lector de CDROM. Tambi&eacute;n puede significar que el lector no es
- visible para el bus. Chequea que est&aacute; bi&eacute;n configurado en
- lo referente a master/slave si es IDE (ATAPI).</para>
-
- <para>Algunas veces un CDROM SCSI puede "desaparecer" por que no ha tenido
- tiempo suficiente para responder a un reset del bus. Si tienes un
- CDROM SCSI, a&ntilde;ade la siguiente l&iacute;nea en el archivo de
- configuraci&oacute;n del kernel y recomp&iacute;lalo.</para>
-
- <para>
- <literallayout>
-options "SCSI_DELAY=15"
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi impresora es ridiculamente lenta. &iquest;Qu&eacute; puedo hacer?</para>
- </question>
-
- <answer>
- <para>Si es paralelo, y el &uacute;nico problema es la lentitud, intenta
- configurar el puero de impresora en modo "polled":</para>
-
- <para>
- <literallayout>
-lptcontrol -p
- </literallayout>
- </para>
-
- <para>Algunas impresoras nuevas de HP son conocidas por no trabajar
- correctamente en modo de interrupci&oacute;n, aparentemente debido (y
- todav&iacute;a no exactamente entendido), a un problema de "timing".</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mis programas ocasionalmente mueren con errores ``Signal 11''.</para>
- </question>
-
- <answer>
- <para>Esto puede ser por hardware err&oacute;neo (memoria, placa base, etc).
- Intenta ejecutar alg&uacute;n programa de test de memoria. Ten en cuenta
- que es posible que tu memoria pase el test del programa que uses,
- pero que falle en algunas condiciones de uso, como en compilaci&oacute;n
- de kernel.</para>
-
- <para>La FAQ SIG11 (listada m&aacute;s abajo) apunta a problemas de
- lentitud de memoria. Incrementa el n&uacute;mero de "wait states" en tu
- BIOS o instala una memoria m&aacute;s r&aacute;pida.</para>
-
- <para>Tambi&eacute;n puedes intentar desactivar el cach&eacute; de placa
- base en el BIOS y comprueba si se resuelve el problema.</para>
-
- <para>Hay una extensa FAQ en
- <ulink URL="http://www.bitwizard.nl/sig11/">the SIG11 problem FAQ</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Cuando arranco, la pantalla queda negra!</para>
- </question>
-
- <answer>
- <para>Este es un problema conocido con las tarjetas de v&iacute;deo ATI
- Mach 64. El problema es que esta tarjeta usa la direcci&oacute;n
- <emphasis remap=tt>2e8</emphasis>, tambi&eacute;n usada por el puerto
- serie 4. Debido a un bug (feature?) en el driver
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio.c</ulink>
- , &eacute;ste "tocar&aacute;" este puerto aunque no est&eacute; instalado
- o est&eacute; desactivado.</para>
-
- <para>Hasta que el problema sea fijado, puedes hacer esto:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>Teclea <option>-c</option> en el prompt de arranque. Esto te
- llevar&aacute; a la secci&oacute;n de configuraci&oacute;n del kernel.
- </para>
- </listitem>
-
- <listitem>
- <para>Desactiva <emphasis remap=tt>sio0</emphasis>,
- <emphasis remap=tt>sio1</emphasis>, <emphasis remap=tt>sio2</emphasis> y
- <emphasis remap=tt>sio3</emphasis> (todos ellos). De esta manera, el
- driver sio no se activa.</para>
- </listitem>
-
- <listitem>
- <para>Teclea exit para seguir arrancando.</para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>Si quieres ser capaz de usar tus puertos serie, tendr&aacute;s que
- compilar un nuevo kernel con la siguiente modificaci&oacute;n:
- <filename>/usr/src/sys/i386/isa/sio.c</filename>. Busca la cadena
- <literal>0x2e8</literal> y borra esta cadena y la coma anterior
- (mant&eacute;n la coma siguiente). Ahora, compila un nuevo kernel de
- la manera habitual.</para>
-
- <para>Despu&eacute;s de realizar estos cambios, puedes encontrarte aun que
- las X Window no funcionan correctamente. Algunas tarjetas de
- v&iacute;deo modernas ATI Mach 64 (especialmente la ATI Mach Xpression)
- no funcionan con la versi&oacute;n actual de <emphasis remap=tt>XFree86</emphasis>;
- la pantalla se queda negra cuando arrancas las X o ocurren cosas extra&ntilde;as en
- su funcionamiento. Puedes instalar una versi&oacute;n beta del nuevo
- servidor X que trabaja mejor, situada en
- <ulink URL="http://www.xfree86.org/">el servidor XFree86</ulink>
- y seguir los links hasta el download. Coge los siguientes archivos:</para>
-
- <para><emphasis remap=tt>AccelCards, BetaReport, Cards, Devices, FILES, README.ati,
- README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc,
- X312BMa64.tgz</emphasis></para>
-
- <para>Reemplaza los viejos archivos por las nuevas versiones y
- aseg&uacute;rate de ejecutar de nuevo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config">xf86config</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="reallybigram">
- <para>Tengo 128MB de RAM pero el sistema solo usa 64MB.</para>
- </question>
-
- <answer>
- <para>Debido a la forma que tiene FreeBSD de "ver" el tama&ntilde;o de
- memoria en el BIOS, solo puede detectar 16 bits
- (65535 Kbytes = 64MB) (o menos... algunas BIOS fijan el tama&ntilde;o de
- la memoria a 16MB).</para>
-
- <para>Para solucionar este problema, tienes que usar la opci&oacute;n del
- kernel indicada m&aacute;s adelante. Hay una manera de ver la
- informaci&oacute;n completa sobre memoria en el BIOS, pero no tenemos
- espacio en los bloques de arranque (bootblocks) para hacerlo. Por ahora,
- tenemos que trabajar con la opci&oacute;n del kernel.</para>
-
- <para><literal>options "MAXMEM=&lt;n&gt;"</literal></para>
-
- <para>Donde <emphasis remap=tt>n</emphasis> es tu memoria en Kilobytes.
- Para 128MB, tendr&iacute;as que usar <emphasis remap=tt>131072</emphasis>.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>FreeBSD 2.0 aborta con ``kmem_map too small!''</para>
- </question>
-
- <answer>
- <para><emphasis remap=tt>Nota</emphasis> El mensaje deber&iacute;a ser
- ``mb_map too small!''</para>
-
- <para>La parada indica que el sistema no tiene memoria virtual
- suficiente para los buffers de red (espec&iacute;ficamente,
- clusters mbuf). Puedes incrementar la cantidad de memoria virtual
- disponible para los clusters mbuf a&ntilde;adiendo:</para>
-
- <para><literal>options "NMBCLUSTERS=&lt;n&gt;"</literal></para>
-
- <para>al archivo de configuraci&oacute;n del kernel, donde &lt;n&gt; es un
- n&uacute;mero en el rango 512-4096, dependiendo del n&uacute;mero de
- conexiones tcp simult&aacute;neas que necesites soportar. Te recomendamos
- intentar con 2048. Puedes monitorizar el n&uacute;mero de clusters mbuf
- en uso con la orden
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">netstat -m</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>``CMAP busy panic'' al arrancar con un nuevo kernel.</para>
- </question>
-
- <answer>
- <para>El programa que intenta detectar archivos
- <filename>/var/db/kvm_*.db</filename> puede fallar y provocar el "panic"
- en el arranque.</para>
-
- <para>Si esto ocurre, arranca en mono-usuario y haz:</para>
-
- <para>
- <literallayout>
-rm /var/db/kvm_*.db
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</para>
- </question>
-
- <answer>
- <para>Esto significa un conflicto con una controladora Ultrastor SCSI.</para>
-
- <para>Durante el proceso de arranque, entra en el men&uacute; de
- configuraci&oacute;n del kernel y desactiva el dispositivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?uha(4)">uha0</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Sendmail dice ``mail loops back to myself''</para>
- </question>
-
- <answer>
- <para>Esto est&aacute; contestado en la FAQ de sendmail de la siguiente
- manera:</para>
-
- <para>
- <literallayout>
- * Tengo el error "Local configuration error" :
-
- 553 relay.domain.net config error: mail loops back to myself
- 554 &lt;user@domain.net&gt;... Local configuration error
-
- C&oacute;mo puedo solventar el problema?
-
- Has intentado enviar un mail al dominio domain.net y que sea
- reenviado a un host espec&iacute;fico (en este caso relay.domain.net)
- usando un registro MX, pero la m&aacute;quina que tiene que aceptar
- ese mail, no reconoce el domimio como propio. A&ntilde;ade
- domain.net al archivo /etc/sendmail.cw (si est&aacute;s usando
- FEATURE(use_cw_file) o a&ntilde;ade "Cw domain.net" al archivo
- sendmail.cf
- </literallayout>
- </para>
-
- <para>La versi&oacute;n actual de la
- <ulink URL="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">FAQ de sendmail</ulink>
- puede ser encontrada en
- <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>, y
- <ulink URL="news:news.answers">news.answers</ulink>.
- Tambien puedes recibir una copia enviando un mail a
- <ulink URL="mailto:mail-server@rtfm.mit.edu">mail-server@rtfm.mit.edu</ulink>
- con el comando "send usenet/news.answers/mail/sendmail-faq" en el
- cuerpo del mensaje.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>No funcionan correctamente las aplicaciones a pantalla completa
- en m&aacute;quinas remotas</para>
- </question>
-
- <answer>
- <para>Quiz&aacute;s la m&aacute;quina remota tiene el tipo de terminal
- diferente de <emphasis remap=tt>cons25</emphasis> que es el usado por la consola de
- FreeBSD.</para>
-
- <para>Hay diferentes maneras de solucionar este problema:
- <itemizedlist>
- <listitem>
- <para>Despu&eacute;s de hacer el login en la m&aacute;quina remota,
- configura la variable SHELL como <acronym>ANSI</acronym> o
- <emphasis remap=tt>sco</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Usa el emulador VT100 como
- <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?screen-">screen</ulink>
- local. <emphasis remap=tt>screen</emphasis> te permite la posibilidad de ejecutar
- m&uacute;ltiples y concurrentes sesiones desde un terminal.</para>
- </listitem>
-
- <listitem>
- <para>Instala la base de datos del terminal <emphasis remap=tt>cons25</emphasis>
- en la m&aacute;quina remota.</para>
- </listitem>
-
- <listitem>
- <para>Lanza las X y haz el login en la m&aacute;quina remota desde
- <emphasis remap=tt>xterm</emphasis>.</para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Aparece el mensaje de error "calcru: negative time..."</para>
- </question>
-
- <answer>
- <para>Esto puede ser causado por varios problemas de hardware o software
- relacionados con las interrupciones. Utilizar TCP/IP sobre el puerto
- paralelo con un MTU muy grande es una buena manera de provocar este error.
- Las tarjetas gr&aacute;ficas aceleradoras tambi&eacute;n lo pueden
- provocar, teniendo que revisar la interrupci&oacute;n utilizada
- por la tarjeta.</para>
-
- <para>El efecto de este error es que los procesos mueren con el mensaje
- "SIGXCPU exceeded cpu time limit".</para>
-
- <para>Para FreeBSD 3.0 y posteriores desde el 29 de Noviembre de 1998: si
- el problema no puede fijarse de otra manera, la soluci&oacute;n es
- poner la variable sysctl a:
- <literallayout>
-sysctl -w kern.timecounter.method=1
- </literallayout>
- </para>
-
- <para>Esto puede significar un impacto en el rendimiento del sistema, pero
- considerando la causa del problema, probablemente no lo notar&aacute;s. Si
- el problema persiste, mant&eacute;n la variable sysctl a uno y
- a&ntilde;ade la opci&oacute;n "NTIMECOUNTER" en tu kernel para aumentar
- su valor. Si finalmente llegas a un valor de "NTIMECOUNTER=20" el problema
- no est&aacute; resuelto, y las interrupciones est&aacute;n demasiado
- saturadas para ofrecer un bu&eacute;n rendimiento.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="commercial">
- <title>Aplicaciones Comerciales</title>
-
- <para><acronym>NOTA</acronym> Esta secci&oacute;n est&aacute; todav&iacute;a poco
- desarrollada, por lo que esperamos que las compa&ntilde;&iacute;as nos
- ayuden a completarla :) . El grupo de FreeBSD no tiene ning&uacute;n
- inter&eacute;s financiero en ninguna de las empresas aqu&iacute; listadas,
- simplemente est&aacute;n como servicio p&uacute;blico (y creemos que el
- inter&eacute;s comercial por FreeBSD puede tener efectos
- muy positivos en la viabilidad a largo t&eacute;rmino). Animamos a las
- empresas desarrolladoras de software que nos env&iacute;en su
- informaci&oacute;n para ser incluidas en esta lista.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde puedo obtener Motif para FreeBSD?</para>
- </question>
-
- <answer>
- <para>Contacta con <link linkend="apps2go">Apps2go</link> para una
- distribuci&oacute;n de Motif ELF 2.1 para FreeBSD.<anchor id="apps2go"></para>
-
- <para>Esta distribuci&oacute;n incluye:
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y
- archivos Imake.</para>
- </listitem>
-
- <listitem>
- <para>Librer&iacute;as ELF est&aacute;ticas y din&aacute;micas
- (para usar con FreeBSD 3.0 y posteriores).</para>
- </listitem>
-
- <listitem>
- <para>Applets demostrativos.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Aseg&uacute;rate de especificar que deseas la distribuci&oacute;n
- para FreeBSD cuando hagas el pedido. Tambi&eacute;n se distribuyen
- versiones para NetBSD y OpenBSD por <emphasis>Apps2go</emphasis>. La
- distribuci&oacute;n s&oacute;lo est&aacute; disponible por FTP.</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>
- M&aacute;s informaci&oacute;n
- </term>
- <listitem>
- <para><ulink URL="http://www.apps2go.com/">P&aacute;gina web de Apps2go</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- o
- </term>
- <listitem>
- <para><ulink URL="mailto:sales@apps2go.com">Ventas</ulink> o
- <ulink URL="mailto:support@apps2go.com">Soporte</ulink></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- o
- </term>
- <listitem>
- <para>tel&eacute;fono (817) 431 8775 o +1 817 431-8775</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>Contacta con <link linkend="metrox">Metro Link</link> para obtener una
- distribuci&oacute;n de Motif 2.1 ELF o a.out para FreeBSD.</para>
-
- <para>Esta distribuci&oacute;n incluye:
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y
- archivos Imake. </para>
- </listitem>
-
- <listitem>
- <para>Librer&iacute;as est&aacute;ticas y din&aacute;micas (especifica
- ELF para FreeBSD 3.0 y superior o a.out para FreeBSD 2.2.8 o
- anterior).</para>
- </listitem>
-
- <listitem>
- <para>Applets demostrativos.</para>
- </listitem>
-
- <listitem>
- <para>P&aacute;ginas man preformateadas.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Aseg&uacute;rate de especificar que deseas la distribuci&oacute;n
- para FreeBSD cuando hagas el pedido. Tambi&eacute;n se distribuyen
- versiones para Linux por <emphasis>Metro Link</emphasis>. La distribuci&oacute;n
- est&aacute; disponible en CDROM o v&iacute;a FTP.</para>
-
- <para>Contacta con <link linkend="xig">Xi Graphics</link> para una
- distribuci&oacute;n de Motif a.out 2.0 para FreeBSD.</para>
-
- <para>Esta distribuci&oacute;n incluye:
- <itemizedlist>
- <listitem>
- <para>OSF/Motif manager, xmbind, panner, wsm.</para>
- </listitem>
-
- <listitem>
- <para>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y
- archivos Imake.</para>
- </listitem>
-
- <listitem>
- <para>Librer&iacute;as est&aacute;ticas y din&aacute;micas
- (para usar con FreeBSD 2.2.8 y anteriores).</para>
- </listitem>
-
- <listitem>
- <para>Applets demostrativos.</para>
- </listitem>
-
- <listitem>
- <para>P&aacute;ginas man preformateadas.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Aseg&uacute;rate de especificar que deseas la distribuci&oacute;n
- para FreeBSD cuando hagas el pedido. Tambi&eacute;n se distribuyen
- versiones para BSDI y Linux por <emphasis>Xi Graphics</emphasis>. La
- distribuci&oacute;n se hace en cuatro disquetes... en el futuro esto
- se cambiar&aacute; por una versi&oacute;n en CDROM unificada.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde puedo conseguir CDE para FreeBSD?</para>
- </question>
-
- <answer>
- <para>Contacta con <link linkend="xig">Xi Graphics</link> para la
- distribucion CDE 1.0.10 para FreeBSD. Incluye Motif 1.2.5,
- y puede ser usada con Motif 2.0.</para>
-
- <para>Este es un CDROM unificado para FreeBSD y Linux.</para>
-
- <para><link linkend="xig">Xi Graphics</link> ya no vende el CDE
- para FreeBSD.</para>
-
- <para><ulink URL="http://www.kde.org/">KDE</ulink> es un entorno
- gr&aacute;fico "open source" similar a CDE en muchos aspectos.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Hay alg&uacute;n servidor X comercial de altas prestaciones?</para>
- </question>
-
- <answer>
- <para>S&iacute;, <ulink URL="http://www.xig.com/">Xi Graphics</ulink> y
- <ulink URL="http://www.metrolink.com/">Metro Link</ulink> venden el
- producto Accelerated-X para FreeBSD y otros sistemas basados en Intel.
- <anchor id="xig"></para>
-
- <para>La oferta de Metro Link es un servidor X de altas prestaciones que
- ofrece una f&aacute;cil configuraci&oacute;n usando el conjunto de
- herramientas "FreeBSD Package", soporte de m&uacute;ltiples tarjetas
- de v&iacute;deo concurrentes y s&oacute;lo se distribuye en formato
- binario desde su FTP. Mencionar que la oferta de Metro Link est&aacute;
- disponible por el razonable precio de $39.
- <anchor id="metrox"> </para>
-
- <para>Metro Link tambi&eacute;n vende el Motif ELF y a.out para
- FreeBSD.</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>
- M&aacute;s informaci&oacute;n
- </term>
- <listitem>
- <para><ulink URL="http://www.metrolink.com/">Web de Metro Link</ulink></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- o
- </term>
- <listitem>
- <para><ulink URL="mailto:sales@metrolink.com">Ventas</ulink> o
- <ulink URL="mailto:tech@metrolink.com">Soporte</ulink>.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- o
- </term>
- <listitem>
- <para>Tel&eacute;fono (954) 938-0283 o +1 954 938-0283</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>La oferta de Xi Graphics es un servidor X de altas prestaciones que
- ofrece una f&aacute;cil configuraci&oacute;n, soporte para
- m&uacute;ltiples tarjetas de v&iacute;deo concurrentes, y s&oacute;lo
- se distribuye en formato binario, en una distribuci&oacute;n en
- disquetes unificada para FreeBSD y Linux. Xi Graphics tambi&eacute;n
- ofrece un servidor X de altas prestaciones para computadores
- port&aacute;tiles.</para>
-
- <para>Hay una distribuci&oacute;n demo para testear (versi&oacute;n 5.0).</para>
-
- <para>Xi Graphics tambi&eacute;n vende el Motif y CDE para FreeBSD.</para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>
- M&aacute;ss informaci&oacute;n
- </term>
- <listitem>
- <para><ulink URL="http://www.xig.com/">Web de Xi Graphics WWW</ulink></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- o
- </term>
- <listitem>
- <para><ulink URL="mailto:sales@xig.com">ventas</ulink> o
- <ulink URL="mailto:support@xig.com">Soporte</ulink></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- o
- </term>
- <listitem>
- <para>Tel&eacute;fono (800) 946 7433 o +1 303 298-7478.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Hay alg&uacute;n sistema de base de datos para FreeBSD?</para>
- </question>
-
- <answer>
- <para>S&iacute;!. Mira en la secci&oacute;n
- <ulink URL="../commercial/software_bycat.html#CATEGORY_DATABASE">Productos Comerciales</ulink>
- del web de FreeBSD.</para>
-
- <para>Tambi&eacute;n te recomendamos que mires en la secci&oacute;n
- <ulink URL="../ports/databases.html">Bases de Datos</ulink> de la
- colecci&oacute;n de Ports.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo usar Oracle en FreeBSD?</para>
- </question>
-
- <answer>
- <para>S&iacute;. Las siguientes p&aacute;ginas te explican como configurar
- el Oracle de Linux en FreeBSD:</para>
-
- <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>
- </para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="applications">
-<title>Aplicaciones de usuario</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde est&aacute;n las aplicaciones?</para>
- </question>
-
- <answer>
- <para>Por favor, mira en <ulink URL="http://www.FreeBSD.org/ports/">la secci&oacute;n
- de ports</ulink> para obtener informaci&oacute;n sobre
- programas y aplicaciones que han sido portados a FreeBSD. En estos
- momentos la lista llega a los 1800 creciendo d&iacute;a a d&iacute;a,
- por lo que te recomendamos que la visites habitualmente o te subscribas
- a la <link linkend="mailing">lista de distribuci&oacute;n</link>
- <emphasis remap=tt>FreeBSD-announce</emphasis> para las actualizaciones
- peri&oacute;dicas de nuevas aportaciones.</para>
-
- <para>La mayor&iacute;a de programas est&aacute;n disponibles tanto para la
- rama 2.2 como para la 3.x y 4.0, y muchos de ellos deber&iacute;an
- funcionar en sistemas 2.1.x. Cada vez que se realiza una release de
- FreeBSD, se incluye un snapshot del arbol de aplicaciones en el
- directorio <filename>ports/</filename>.</para>
-
- <para>Tambi&eacute;n trabajamos con el concepto de "package", que es,
- esencialmente una distribuci&oacute;n binaria "zipada" con una
- peque&ntilde;a informaci&oacute;n extra que realiza la instalaci&oacute;n
- del programa automaticamente. Un package puede ser instalado y
- desinstalado f&aacute;cilmente sin tener que saber los detalles de
- archivos o configuraciones que esto conlleva.</para>
-
- <para>Usa el men&uacute; de instalaci&oacute;n de "packages" en
- <filename>/stand/sysinstall</filename> (bajo la opci&oacute;n post-configuration del
- men&uacute; principal) o ejecuta el comando <command>pkg_add(1)</command> con el
- package que est&aacute;s interesado en instalar. Los package pueden ser
- identificados por su extensi&oacute;n <filename>.tgz</filename>. En la
- distribuci&oacute;n de CDROM existe un directorio <filename>packages/All</filename>
- en la que se encuentran todos los packages disponibles. Tambi&eacute;n
- pueden conseguirse en la red en los siguientes servidores:</para>
-
- <para>
- <variablelist>
- <varlistentry><term>para 2.2.8-RELEASE/2.2-stable</term>
- <listitem>
- <para><ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</ulink></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>para 3.4-release/3.4-stable</term>
- <listitem>
- <para><ulink URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/</ulink></para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>para 4.0-current</term>
- <listitem>
- <para><ulink URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>o en tu mirror m&aacute;s cercano.</para>
-
- <para>Ten en cuenta que no todos los ports est&aacute;n disponibles como
- packages. Es siempre buena idea visitar periodicamente la
- direcci&oacute;n <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde encuentro la librer&iacute;a libc.so.3.0?</para>
- </question>
-
- <answer>
- <para>Est&aacute;s intentando ejecutar un package para versi&oacute;n
- 2.2/3.x/4.0 en un sistema de versi&oacute;n 2.1.x. Por favor, mira en la
- secci&oacute;n anterior y usa el package adecuado para tu sistema.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="emul">
- <para>Ghostscript tiene muchos errores con mi 386/486SX.</para>
- </question>
-
- <answer>
- <para>No tienes coprocesador matem&aacute;tico, verdad?
- Necesitar&aacute;s a&ntilde;adir el emulador matem&aacute;tico en tu
- kernel; puedes hacerlo a&ntilde;adiendo lo siguiente en el archivo de
- configuraci&oacute;n del kernel:</para>
-
- <para>
- <literallayout>
-options GPL_MATH_EMULATE
- </literallayout>
- </para>
-
- <para><acronym>NOTA</acronym> Necesitar&aacute;s eliminar la opci&oacute;n
- <symbol>MATH_EMULATE</symbol>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Cuando ejecuto una aplicaci&oacute;n SCO/iBCS2, falla en
- <emphasis remap=tt>socksys</emphasis>.</para>
- </question>
-
- <answer>
- <para>Primero necesitas editar el archivo <filename>/etc/sysconfig</filename>
- (o <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">/etc/rc.conf</ulink>)
- y en la &uacute;ltima secci&oacute;n cambiar la siguiente variable a
- <acronym>YES</acronym>:</para>
-
- <para>
- <literallayout>
-# Set to YES if you want ibcs2 (SCO) emulation loaded at startup
-ibcs2=NO
- </literallayout>
- </para>
-
- <para>El kernel caragar&aacute; el m&oacute;dulo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ibcs2">ibcs2</ulink>
- al arrancar.</para>
-
- <para>A continuaci&oacute;n necesitar&aacute;s configurar /compat/ibcs2/dev
- de la siguiente manera</para>
-
- <para>
- <literallayout>
-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
- </literallayout>
- </para>
-
- <para>Solo necesitas el socksys para ir a
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?null(4)">/dev/null</ulink>
- e imitar la apertura y cierre de archivos. El c&oacute;digo en -current
- gestionar&aacute; el resto. Esto es mucho m&aacute;s limpio que la
- manera en la que se hac&iacute;a antes. Si quieres el driver
- <emphasis remap=tt>spx</emphasis> para un conexi&oacute;n, define
- <symbol>SPX_HACK</symbol> cuando compiles el kernel.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo configuro INN (Internet News) para mi m&aacute;quina?</para>
- </question>
-
- <answer>
- <para>Despu&eacute;s de la instalaci&oacute;n del package o port de inn,
- un excelente lugar para empezar es
- <ulink URL="http://www.cis.ohio-state.edu/~barr/INN.html">Dave Barr's INN Page</ulink>
- donde encontrar&aacute;s las FAQ de INN.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; versi&oacute;n de Microsoft FrontPage debo usar?</para>
- </question>
-
- <answer>
- <para>Usa el Port. Una versi&oacute;n pre-parcheada para Apache est&aacute;
- disponible en la colecci&oacute;n de ports.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;FreeBSD soporta Java?</para>
- </question>
-
- <answer>
- <para>S&iacute;. Por favor, mira en
- <ulink URL="http://www.FreeBSD.org/java/">http://www.FreeBSD.org/java/</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; no puedo compilar este port en mi m&aacute;quina
- 3.x-stable?</para></question><answer>
-
- <para>Si utilizas una versi&oacute;n de FreeBSD que ha quedado ligeramente anticuada
- con respecto a -stable o -current necesitar&aacute;s el kit de actualizaci&oacute;n
- de ports disponible en
- <ulink URL="http://www.FreeBSD.org/ports/">http://www.FreeBSD.org/ports/</ulink>.
- Si tienes una versi&oacute;n actualizada, es posible que alguien haya modificado
- el port de manera que &eacute;ste compile en -current pero no en -stable. Por favor,
- env&iacute;a un informe de error con el comando <command>send-pr(1)</command> ya que
- la colecci&oacute;n de ports est&aacute; pensada para que funcione tanto en las ramas
- -stable como -current.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde encuentro ld.so?</para>
- </question>
-
- <answer>
- <para>Si quieres ejecutar aplicaciones a.out como Netscape en sistemas con
- formato de ejecuci&oacute;n ELF como FreeBSD 3.1-RELEASE o posteriores,
- necesitar&aacute;s la librer&iacute;a /usr/libexec/ld.so y algunas otras
- en formato a.out. Estas librer&iacute;as est&aacute;n incluidas en la
- distribuci&oacute;n compat22. Usa /stand/sysinstall o el script install.sh
- en el subdirectorio compat22 e instalala. Tambi&eacute;n deber&iacute;an
- consultarse los archivos ERRATA de FreeBSD 3.1-R y 3.2-R.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="kernelconfig">
- <title>Configuraci&oacute;n del Kernel</title>
-
- <qandaset>
- <qandaentry>
- <question id="make-kernel">
- <para>Me gustar&iacute;a personalizar mi kernel. &iquest;Es dif&iacute;cil?</para>
- </question>
-
- <answer>
- <para>No!, primero, necesitas la distribuci&oacute;n completa de fuentes o,
- por lo menos, la distribuci&oacute;n de fuentes del kernel. De esta manera
- tienes los fuentes necesarios para crearte un nuevo kernel. Al
- contrario que muchos Unix comerciales, nosotros tenemos la pol&iacute;tica
- de <acronym>NO</acronym> vender nuestro kernel en formato binario.</para>
-
- <para>La instalaci&oacute;n de los fuentes ocupa un poco m&aacute;s de
- espacio, pero te permite consultar los fuentes del kernel en caso de
- dificultad o entender que est&aacute; ocurriendo realmente en la
- ejecuci&oacute;n del sistema.</para>
-
- <para>Una vez tienes instalada la distribuci&oacute;n completa de fuentes, o
- por lo menos la del kernel, haz lo siguiente como root:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para> <command>cd /usr/src/sys/i386/conf</command></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>cp GENERIC MYKERNEL</emphasis></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>vi MYKERNEL</emphasis></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>config MYKERNEL</emphasis></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>cd ../../compile/MYKERNEL</emphasis></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>make depend</emphasis></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>make all</emphasis></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>make install</emphasis></para>
- </listitem>
-
- <listitem>
- <para> <emphasis remap=tt>reboot</emphasis></para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>El paso 2 no es necesario si todav&iacute;a tienes un archivo de
- configuraci&oacute;n del kernel de una release anterior de FreeBSD
- 2.X. - simplemente, copia el archivo antiguo y exam&iacute;nalo
- cuidadosamente para asegurar que no haya cambiado la sintaxis
- da alg&uacute;n driver, o haya alguno anticuado.</para>
-
- <para>Un buen archivo de configuraci&oacute;n para consultar es <acronym>LINT</acronym>,
- el cual contiene ejemplos documentados para todas las posibles
- opciones del kernel. El archivo de configuraci&oacute;n <acronym>GENERIC</acronym> se
- usa para crear el kernel "por defacto" que es el que estar&aacute;s
- usando si no has creado ninguno nuevo.</para>
-
- <para>Si no necesitas hacer ning&uacute;n cambio al archivo <acronym>GENERIC</acronym>,
- puedes saltar al paso 3, donde personalizas el kernel para tu
- sistema. El paso 8 solo debe ejecutarse si los pasos 6 y 7 se
- han realizado de manera satisfactoria. Esto copiar&aacute; una
- im&aacute;gen del nuevo kernel a <filename>/kernel</filename> y
- <emphasis remap=bf>realizar&aacute; una copia del antiguo kernel en</emphasis>
- <filename>/kernel.old</filename>. Es muy importante recordar esto por si el
- nuevo kernel falla en algun momento - puedes seleccionar <filename>kernel.old</filename>
- en el prompt de arranque. Al hacer un reboot, por defecto se cargar&aacute; el
- nuevo kernel.</para>
-
- <para>Si la compilaci&oacute;n en el paso 7 falla por alguna raz&oacute;n, es
- recomendable que empieces desde el paso 4 substituyendo
- <acronym>GENERIC</acronym> por <acronym>MYKERNEL</acronym>. Si puedes generar el kernel
- <acronym>GENERIC</acronym>, significa que algo en tu archivo de configuraci&oacute;n
- es incorrecto (o has decubierto un bug). Si la compilaci&oacute;n del
- kernel <acronym>GENERIC</acronym> falla, posiblemente tengas los fuentes
- corruptos.</para>
-
- <para>Finalmente, si necesitas ver los mensajes originales de arranque
- del sistema para compilar un nuevo kernel, ejecuta el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?dmesg">dmesg</ulink>. Este
- comando debe imprimir en pantalla todos los
- mensajes producidos por el kernel al arrancar, los cuales te
- pueden servir en la configuraci&oacute;n de tu nuevo kernel.</para>
-
- <para><acronym>NOTA</acronym> Recomendamos hacer un historial fechado de los kernel
- que vayas creando, de la manera <filename>kernel.YYMMDD</filename> una vez est&eacute;n
- funcionando correctamente. De esta manera, si la pr&oacute;xima vez que
- juegues con el kernel algo no funciona, puedes arrancar desde el
- &uacute;ltimo kernel correcto. Esto es especialmente importante si ahora
- est&aacute;s arrancando desde una controladora no soportada por el kernel
- GENERIC (si, experiencia personal).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>La compilaci&oacute;n del kernel falla por "<symbol>_hw_float</symbol> is
- missing."</para>
- </question>
-
- <answer>
- <para>Dejame adivinar. Has borrado
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?npx(4)">npx0</ulink>
- de tu archivo de configuraci&oacute;n porque no tienes coprocesador
- matem&aacute;tico, no? Mal hecho :-) El dispositivo <emphasis remap=tt>npx0</emphasis> es
- <acronym>OBLIGATORIO</acronym>. Aunque no tengas coprocesador, debes incluir
- el dispositivo <emphasis remap=tt>npx0</emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Conflicto de interrupciones con tarjeta serie multi-port.</para>
- </question>
-
- <answer>
- <para>Cuando compilo el kernel con drivers para tarjetas serie
- multipuerto, el sistema me dice que s&oacute;lo el primer puerto es
- testeado y el resto son obviados debido a conflictos de
- interrupci&oacute;n. C&oacute;mo soluciono esto?</para>
-
- <para>El problema en este caso es que FreeBSD tiene c&oacute;digo interno que
- evita caidas del sistema por conflictos de hardware o software. La
- manera de solucionar esto es dejar en blanco la entrada correspondiente
- a la irq en todos los puertos excepto en uno. Aqu&iacute; tienes un
- ejemplo:</para>
-
- <para>
- <literallayout> #
- # 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
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo activo el soporte para discos QIC-40/80?</para>
- </question>
-
- <answer>
- <para>Necesitas "descomentar" la siguiente l&iacute;nea en el archivo
- gen&eacute;rico de configuraci&oacute;n (o a&ntilde;adirla en tu propio
- archivo), a&ntilde;ade un <literal>flags 0x1</literal> en la l&iacute;nea
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)">fdc</ulink>
- y recompila.</para>
-
- <para>
- <literallayout>
-controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
-disk fd0 at fdc0 drive 0 ^^^^^^^^^
-disk fd1 at fdc0 drive 1
-#tape ft0 at fdc0 drive 2
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- </literallayout>
- </para>
-
- <para>A continuaci&oacute;n, crea un nuevo dispositivo llamado
- <filename>/dev/ft0</filename> entrando en el directorio <filename>/dev</filename>
- y ejecutando el comando:</para>
-
- <para>
- <literallayout> sh ./MAKEDEV ft0
- </literallayout>
- </para>
-
- <para>Para el primer dispositivo. <emphasis remap=tt>ft1</emphasis> para el
- segundo y as&iacute; para todos los dispositivos de este tipo que tengas.</para>
-
- <para>Tendr&aacute;s un dispositivo llamado <filename>/dev/ft0</filename>, al cual puedes
- escribir a trav&eacute;s de un programa especial de manejo llamado
- <emphasis remap=tt>ft</emphasis> - mira el man en
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ft">ft</ulink>
- para m&aacute;s detalles.</para>
-
- <para>Versiones anteriores a la <option>-current</option> ten&iacute;an algunos problemas
- al encontrase con cintas en mal estado; si tienes problemas en los
- que parece que la cinta se rebovina siempre al llegar al mismo
- lugar, intenta utilizar la &uacute;ltima versi&oacute;n del programa
- <emphasis remap=tt>ft</emphasis> que encontrar&aacute;s en
- <filename>/usr/src/sbin/ft</filename> en <option>-current</option>.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="admin">
- <title>Administraci&oacute;n de sistema</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde est&aacute;n los archivos de configuraci&oacute;n
- de arranque del sistema?</para>
- </question>
-
- <answer>
- <para>De la versi&oacute;n 2.0.5R a la 2.2.1R, el archivo principal de
- configuraci&oacute;n es <filename>/etc/sysconfig</filename>. Todas las opciones son
- especificadas en este archivo y otros como
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc">/etc/rc</ulink> y
- <filename>/etc/netstart</filename>.</para>
-
- <para>Mira en el archivo <filename>/etc/sysconfig</filename> y cambia los valores
- para tu sistema. Este archivo est&aacute; comentado para ayudar en la
- configuraci&oacute;n</para>
-
- <para>En versiones posteriores a la 2.2.1 y 3.0 el archivo
- <filename>/etc/sysconfig</filename> fue renombrado como
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>.
- La sintaxis tambi&eacute;n fue retocada para ser m&aacute;s descriptiva. El
- archivo <filename>/etc/netstart</filename> tambi&eacute;n fue renombrado como
- <filename>/etc/rc.network</filename> para que todos los archivos de
- configuraci&oacute;n puedan ser copiados con el comando
- <command><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cp">cp</ulink>
- /usr/src/etc/rc* /etc</command>.</para>
-
- <para><filename>/etc/rc.local</filename> existe como siempre y deber&iacute;a ser usado
- para arrancar servicios locales adicionales como
- <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^inn">INN</ulink> o
- programas propios.</para>
-
- <para>El archivo <filename>/etc/rc.serial</filename> es para la inicializaci&oacute;n
- de puertos serie.</para>
-
- <para>El archivo <filename>/etc/rc.i386</filename> es para especificaciones propias
- de Intel, como la emulaci&oacute;n iBCS2 o la configuraci&oacute;n de la
- consola del sistema.</para>
-
- <para>A partir de la versi&oacute;n 2.1.0R, tambi&eacute;n puedes tener un
- directorio en el que instalar archivos de arranque locales especificado en
- <filename>/etc/sysconfig</filename> (o <filename>/etc/rc.conf</filename>):</para>
-
- <para>
- <literallayout> # Localizaci&oacute;n de los archivos de arranque locales.
- local_startup=/usr/local/etc/rc.local.d
- </literallayout>
- </para>
-
- <para>Cada archivo acabado en <filename>.sh</filename> ser&aacute; ejecutado en orden
- alfab&eacute;tico.</para>
-
- <para>Si quieres asegurarte de un cierto orden en la ejecuci&oacute;n sin
- tener que cambiar todos los nombres de los archivos, puedes usar un
- esquema similar al siguiente con d&iacute;gitos al principio del nombre
- de cada archivo:</para>
-
- <para>
- <literallayout> 10news.sh
- 15httpd.sh
- 20ssh.sh
- </literallayout>
- </para>
-
- <para>Puede ser visto como "malo" (o SysV :-)) pero nos provee de un
- esquema regular para programas a&ntilde;adidos localmente sin tener que
- hacer ediciones complicadas del archivo <filename>/etc/rc.local</filename>.
- Muchos de los ports/packages asumen que <filename>/usr/local/etc/rc.d</filename>
- es un directorio de arranque local.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo a&ntilde;ado un usuario facilmente?</para>
- </question>
-
- <answer>
- <para>Usa el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?adduser">adduser</ulink>.
- Para opciones m&aacute;s avanzadas, usa el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?pw">pw</ulink></para>
-
- <para>Para borrar a un usuario, usa el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rmuser">rmuser</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo a&ntilde;adir mi nuevo disco a FreeBSD?</para>
- </question>
-
- <answer>
- <para>Consultar el Tutorial de Formateo de Discos en
- <ulink URL="../../tutorials/diskformat/">www.FreeBSD.org</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Tengo un nuevo disco removible, &iquest;como lo uso?</para>
- </question>
-
- <answer>
- <para>Se trate de un disco removible como un ZIP o EA (o un floppy,
- si quieres usarlo de esta manera), o un nuevo disco duro, una vez
- instalado y reconocido por el sistema, y tengas tu
- cartridge/floppy/etc en su interior, las cosas son como para la
- mayor&iacute;a de dispositivos.</para>
-
- <para><anchor id="disklabel">(esta secci&oacute;n esta basada en
- <ulink URL="http://vinyl.quickweb.com/mark/FreeBSD/ZIP-FAQ.html">Mark Mayo's ZIP FAQ</ulink>)</para>
-
- <para>Si es un disco ZIP o floppy, y est&aacute; formateado en DOS, puedes
- usar el comando:</para>
-
- <para>
- <literallayout>
-mount -t msdos /dev/fd0c /floppy
- </literallayout>
- </para>
-
- <para>Si es un floppy, o este:</para>
-
- <para>
- <literallayout>
-mount -t msdos /dev/da2s4 /zip
- </literallayout>
- </para>
-
- <para>para un disco ZIP con la configuraci&oacute;n de f&aacute;brica.</para>
-
- <para>Para otros discos, mira como configurarlos usando
- <emphasis remap=tt>fdisk</emphasis> o
- <filename>/stand/sysinstall</filename>.</para>
-
- <para>El resto de ejemplos ser&aacute;n para un disco ZIP en da2, el tercer
- disco SCSI.</para>
-
- <para>A no ser que se trate de un floppy o disco removible, lo que
- planeas compartir con otros usuarios, es aconsejable convertir
- el formato de archivos a BSD. Obtendr&aacute;s nombre de archivos largos,
- como m&iacute;nimo doblar&aacute;s la velocidad de acceso del disco, y
- mucha m&aacute;s estabilidad. Antes, necesitas rehacer las particiones.
- Puedes usar el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fdisk">fdisk</ulink>
- o la utilidad <filename>/stand/sysinstall</filename>. Si es un
- disco peque&ntilde;o que quieres dedicar enteramente a FreeBSD, solo
- tienes que eliminar la FAT y tabla de particiones, y usar el sistema
- de particiones de FreeBSD:</para>
-
- <para>
- <literallayout>
-dd if=/dev/zero of=/dev/rda2 count=2
-disklabel -Brw da2 auto
- </literallayout>
- </para>
-
- <para>Puedes usar el comando disklabel o
- <filename>/stand/sysinstall</filename> para crear m&uacute;ltiples
- particiones BSD.</para>
-
- <para>Finalmente, crea un nuevo sistema de archivos:</para>
-
- <para>
- <literallayout>
-newfs /dev/rda2c
- </literallayout>
- </para>
-
- <para>y montalo:</para>
-
- <para>
- <literallayout>
-mount /dev/da2c /zip
- </literallayout>
- </para>
-
- <para>Ser&iacute;a una buena idea a&ntilde;adir una l&iacute;nea como esta
- en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fstab">/etc/fstab</ulink>
- para que solo tengas que teclear "mount /zip" las siguientes veces.</para>
-
- <para>
- <literallayout>
-/dev/da2c /zip ffs rw,noauto 0 0
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo monto una partici&oacute;n secundaria DOS?</para>
- </question>
-
- <answer>
- <para>Las particiones DOS secundarias se encuentran despu&eacute;s de TODAS
- las particiones primarias. Por ejemplo, si tienes una partici&oacute;n
- "E" como la segunda partici&oacute;n DOS en el segundo disco SCSI,
- necesitas crear los archivos especiales para el dispositivo 5 en /dev, y
- despu&eacute;s montar /dev/da1s5:</para>
-
- <para>
- <literallayout>
-# cd /dev
-# ./MAKEDEV da1s5
-# mount -t msdos /dev/da1s5 /dos/e
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo montar otros sistemas de archivos bajo FreeBSD?</para>
- </question>
-
- <answer>
- <para><emphasis remap=bf>Digital UNIX</emphasis> UFS CDROMs pueden ser
- montados directamente en FreeBSD. Montar particiones de disco de
- Digital UNIX y otros sistemas que soportan UFS puede ser m&aacute;s complejo,
- dependiendo de los detalles de la partici&oacute;n de disco del sistema
- operativo en cuesti&oacute;n.</para>
-
- <para><emphasis remap=bf> Linux</emphasis>: 2.2 y posteriores soportan
- particiones <emphasis remap=bf>ext2fs</emphasis>. Mira
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?mount_ext2fs">mount_ext2fs</ulink>
- para m&aacute;s informaci&oacute;n.</para>
-
- <para><emphasis remap=bf> NT</emphasis>: Existe un driver de solo lectura
- de NTFS para FreeBSD. Para m&aacute;s informaci&oacute;n, mira este tutorial
- de Mark Ovens en
- <ulink URL="http://www.users.globalnet.co.uk/~markov/ntfs_install.html">http://www.users.globalnet.co.uk/~markov/ntfs_install.html</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo usar el "NT loader" para arrancar FreeBSD?</para>
- </question>
-
- <answer>
- <para>La idea general es que copies el primer sector de la partici&oacute;n
- root nativa de FreeBSD en un archivo en la partici&oacute;n DOS/NT.
- Asumiento que nombras a ese archivo como <filename>c:\bootsect.bsd</filename>
- puedes editar el archivo <filename>c:\boot.ini</filename> para conseguir
- algo como esto:</para>
-
- <para>
- <literallayout>
-[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"
- </literallayout>
- </para>
-
- <para>Este proceso asume que DOS, NT, FreeBSD o cualquier otro sistema
- ha sido instalado en sus respectivas particiones en el mismo disco.
- En nuestro caso, DOS y NT est&aacute;n en la primera partici&oacute;n
- y FreeBSD en la segunda. Instalamos FreeBSD para arrancarlo desde su
- partici&oacute;n nativa y no desde el disco MBR.</para>
-
- <para>Monta un floppy formateado en DOS bajo la partici&oacute;n
- <filename>/mnt</filename>.</para>
-
- <para>
- <literallayout>
-dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1
- </literallayout>
- </para>
-
- <para>Rearranca en DOS o NT. Copia el archivo
- <filename>bootsect.bsd</filename> y/o el archivo
- <filename>bootsect.lnx</filename> del floppy a
- <emphasis remap=tt>C:\</emphasis>. Modifica los atributos a
- <filename>boot.ini</filename> con:</para>
-
- <para>
- <literallayout>
-attrib -s -r c:\boot.ini
- </literallayout>
- </para>
-
- <para>Edita y a&ntilde;ade las l&iacute;neas apropiadas del boot.ini mostrado
- enteriormente de ejemplo, y vuelve a poner los atributos originales:</para>
-
- <para>
- <literallayout>
-attrib +s +r c:\boot.ini
- </literallayout>
- </para>
-
- <para>Si FreeBSD est&aacute; arrancando desde el MBR, restauralo desde el
- comando <emphasis remap=tt>fdisk</emphasis> despu&eacute;s de reconfigurarlos
- para arrancar desde sus particiones nativas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo arranco FreeBSD y Linux desde LILO?</para>
- </question>
-
- <answer>
- <para>Si tienes FreeBSD y Linux en el mismo disco, solo tienes que seguir
- las instrucciones de instalaci&oacute;n de LILO para arrancar un sistema
- operativo no Linux. Brevemente, son estas:</para>
-
- <para>Arranca Linux, y a&ntilde;ade las siguientes l&iacute;neas en el
- archivo <filename>/etc/lilo.conf</filename>:
- <literallayout>
-other=/dev/hda2
-table=/dev/hda
-label=FreeBSD
- </literallayout>
-
- (Asumiendo que tu partici&oacute;n FreeBSD es conocida por Linux como
- <filename>/dev/hda2</filename>). A continuaci&oacute;n, ejecuta
- <emphasis remap=tt>lilo</emphasis> como root y ya deber&iacute;a
- estar.</para>
-
- <para>Si FreeBSD est&aacute; en otro disco, necesitas a&ntilde;adir
- ``<literal>loader=/boot/chain.b</literal>'' al archivo
- <filename>lilo.conf</filename>. Por ejemplo:
- <literallayout>
-other=/dev/sdb4
-table=/dev/sdb
-loader=/boot/chain.b
-label=FreeBSD
- </literallayout>
- </para>
-
- <para>En algunos casos necesitar&aacute;s especificar el n&uacute;mero de
- disco en BIOS para que el cargador del boot funcione correctamente desde
- el segundo disco. Por ejemplo, si tu disco SCSI con FreeBSD es visto por
- el BIOS como disco 1, en el prompt del cargador de arranque
- necesitar&aacute;s especificar:
- <literallayout>
-Boot: 1:da(0,a)/kernel
- </literallayout>
- </para>
-
- <para>En FreeBSD 2.2.5 y posteriores, puedes configurar
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?boot(8)">boot(8)</ulink>
- para que haga esto automaticamente.</para>
-
- <para>El
- <ulink URL="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD mini-HOWTO</ulink>
- es una buena referencia para las opciones de interoperabilidad entre
- FreeBSD y Linux.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo arranco FreeBSD y Linux usando BootEasy?</para>
- </question>
-
- <answer>
- <para>Instala el LILO al inicio de la partici&oacute;n de arranque del
- Linux en lugar de hacerlo en el "Master Boot Record". As&iacute;
- podr&aacute;s arrancar el LILO desde BootEasy.</para>
-
- <para>Si estas usando Windows-95 y Linux, tambi&eacute;n es recomendable
- hacer esto para simplificar el arranque de Linux en caso de que sea
- necesaria una reinstalaci&oacute;n del Windows-95 (ya que no quiere
- convivir con otros sistemas operativos en el mismo Master Boot Record).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puede un disco "dedicado" provocar problemas?</para>
- </question>
-
- <answer>
- <para><anchor id="dedicate">El proceso de instalaci&oacute;n nos permite
- elegir dos m&eacute;todos diferentes de particionar un disco. El sistema
- por defecto hace que el disco sea compatible con otros sistemas
- operativos en la misma m&aacute;quina, usando las tablas de entrada de
- fdisk (llamadas "slices" en FreeBSD). Opcionalmente, podemos instalar un
- boot-selector que nos permite seleccionar el sistema operativo con
- el que queremos arrancar.</para>
-
- <para>Mientras este es el caso m&aacute;s com&amp;&uacute;n para gente
- proveniente del mundo de PC, para la gente proveniente del mundo Unix y
- quienes quieren instalar una m&aacute;quina para funcionar con FreeBSD y
- solo FreeBSD, es m&aacute;s habitual usar el sistema de reservar todo el
- espacio del disco para un solo sistema operativo.
- Si seleccionas "A)ll FreeBSD" en el editor de fdisk de la utilidad
- sysinstall, y respondes la siguiente pregunta con "No", usar&aacute;s
- este &uacute;ltimo sistema. Ten en cuenta que usando este sistema no te
- permitir&aacute; la instalaci&oacute;n de ning&uacute;n otro sistema
- operativo o selector de arranque (boot manager).</para>
-
- <para>Entonces, &iquest;por qu&eacute; se llama "peligroso"?. Un disco en
- este modo no contiene lo que las utilidades normales de un PC
- considerar&iacute;an una tabla de partici&oacute;n de archivos v&aacute;lida.
- Dependiendo del dise&ntilde;o de estas aplicaciones, puede que da&ntilde;en
- el sector de arranque una vez entren en contacto con el disco. Por lo menos una
- BIOS Award usada por m&aacute;quinas HP Netservers (pero no s&oacute;lo
- por ellos) es concocida por ignorar los disco duros que no contengan lo
- que el BIOS entiende por una tabla de archivos v&aacute;lida.</para>
-
- <para>Para volver un disco "peligrosamente dedicado" a formato
- est&aacute;ndar de PC, hay b&aacute;sicamente dos opciones. La primera es,
- escribes suficientes bytes NULL sobre el MBR para hacer que
- las siguientes instalaciones crean que est&aacute;n en un disco s&iacute;n
- usar. Puedes hacer esto as&iacute;:</para>
-
- <para>
- <literallayout>
-dd if=/dev/zero of=/dev/rda0 count=15
- </literallayout>
- </para>
-
- <para>Alternativamente, puedes hacer:</para>
-
- <para>
- <literallayout>
-fdisk /mbr
- </literallayout>
- </para>
-
- <para>que instalar&aacute; un nuevo master boot record.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo a&ntilde;adir m&aacute;s espacio de swap?</para>
- </question>
-
- <answer>
- <para>La mejor manera es incrementar el tama&ntilde;o de tu partici&oacute;n
- de swap, o usar esta excusa para a&ntilde;adir un otro disco nuevo.</para>
-
- <para>A&ntilde;adir swap en discos separados hace las cosas m&aacute;s
- r&aacute;pidas que simplemente a&ntilde;adir swap en el mismo disco.
- Como ejemplo, si est&aacute;s compilando c&oacute;digo fuente en un
- disco, y el swap est&aacute; en otro disco, es mucho m&aacute;s
- r&aacute;pido que si el swap y la compilaci&oacute;n se realizaran en el
- mismo disco. Esto es cierto espec&iacute;ficamente para discos SCSI.</para>
-
- <para>Los discos IDE no son capaces de permitir el acceso a ambos discos
- en el mismo canal al mismo tiempo (FreeBSD no soporta el modo 4, ya
- que todas las I/O de discos IDE son "programadas").</para>
-
- <para>Es realmente muy mala idea instalar el swap sobre NFS a no ser que
- trabajes en una red muy r&aacute;pida con un muy buen servidor.</para>
-
- <para>Aqu&iacute; hay un ejemplo para un archivo de swap de 64Mb
- <filename>/usr/swap0</filename>, piensa que puedes usar el nombre que quieras).</para>
-
- <para>Asegurate que el kernel est&aacute; compilado con la l&iacute;nea</para>
-
- <para>
- <literallayout>
-pseudo-device vn 1 #Vnode driver (turns a file into a device)
- </literallayout>
- </para>
-
- <para>en tu archivo de configuraci&oacute;n. El kernel GENERIC la contiene. </para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>crea un vn-device
- <literallayout>
-cd /dev
-sh ./MAKEDEV vn0
- </literallayout>
- </para>
- </listitem>
-
- <listitem>
- <para>crea un swapfile (<filename>/usr/swap0</filename>)
- <literallayout>
-dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
- </literallayout>
- </para>
- </listitem>
-
- <listitem>
- <para>activa el archivo de swap en <filename>/etc/rc.conf</filename>
- <literallayout>
-swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
- </literallayout>
- </para>
- </listitem>
-
- <listitem>
- <para>rearranca la m&aacute;quina.</para>
- </listitem>
- </orderedlist>
- </para>
-
- <para>Para activar el archivo de swap inmediatamente teclea</para>
-
- <para>
- <literallayout>
-vnconfig -ce /dev/vn0c /usr/swap0 swap
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Tengo problemas para poner en marcha mi impresora.</para>
- </question>
-
- <answer>
- <para>Por favor, revisa la secci&oacute;n de impresoras del manual. Cubre la
- mayor&iacute;a de posibles problemas. P&aacute;sate por
- <ulink URL="../../handbook/printing.html">esta secci&oacute;n.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi teclado no coincide con los car&aacute;cteres de pantalla.</para>
- </question>
-
- <answer>
- <para>El programa de control de teclado tiene una opci&oacute;n para cargar
- el mapa de teclado. En el directorio <filename>/usr/share/syscons/keymaps</filename>
- hay diferentes archivos de mapas de teclado. Selecciona el que
- corresponde a tu sistema y c&aacute;rgalo.</para>
-
- <para>
- <literallayout>
-kbdcontrol -l uk.iso
- </literallayout>
- </para>
-
- <para>Tanto el directorio <filename>/usr/share/syscons/keymaps</filename> como la
- extensi&oacute;n <filename>.kbd</filename> son asumidas por la orden
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?kbdcontrol">kbdcontrol</ulink>.</para>
-
- <para>Esto puede ser configurado en <filename>/etc/sysconfig</filename>
- (o <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>).
- Mira los comentarios correspondientes en el propio archivo.</para>
-
- <para>En la versi&oacute;n 2.0.5R y posteriores, todo lo referente a fuentes,
- teclado, etc est&aacute; en <filename>/usr/share/examples/syscons</filename>.</para>
-
- <para>Actualmente se soportan los siguientes mapas de teclado:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Belgian ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Brazilian 275 keyboard Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>Brazilian 275 keyboard ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Danish Codepage 865 </para>
- </listitem>
-
- <listitem>
- <para>Danish ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>French ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>German Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>German ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Italian ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Japanese 106 </para>
- </listitem>
-
- <listitem>
- <para>Japanese 106x </para>
- </listitem>
-
- <listitem>
- <para>Latin American </para>
- </listitem>
-
- <listitem>
- <para>Norwegian ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Polish ISO-8859-2 (programmer's) </para>
- </listitem>
-
- <listitem>
- <para>Russian Codepage 866 (alternative) </para>
- </listitem>
-
- <listitem>
- <para>Russian koi8-r (shift) </para>
- </listitem>
-
- <listitem>
- <para>Russian koi8-r </para>
- </listitem>
-
- <listitem>
- <para>Spanish ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Swedish Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>Swedish ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>Swiss-German ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>United Kingdom Codepage 850 </para>
- </listitem>
-
- <listitem>
- <para>United Kingdom ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>United States of America ISO-8859-1 </para>
- </listitem>
-
- <listitem>
- <para>United States of America dvorak </para>
- </listitem>
-
- <listitem>
- <para>United States of America dvorakx </para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Las cuotas de usuario no funcionan correctamente.</para>
- </question>
-
- <answer>
- <para>
- <orderedlist>
- <listitem>
- <para>No actives las cuotas en '/',</para>
- </listitem>
-
- <listitem>
- <para>Pon el archivo de cuotas en el sistema de archivos en el que
- se vayan a forzar las cuotas de usuario:
-
- <literallayout>
-FS QUOTA FILE
-/usr /usr/admin/quotas
-/home /home/admin/quotas
- ...
- </literallayout>
- </para>
- </listitem>
- </orderedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi ccd no funciona correctamente</para>
- </question>
-
- <answer>
- <para>El s&iacute;ntoma es:</para>
- <para>
- <literallayout>
-# ccdconfig -C
-ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
-#
- </literallayout>
- </para>
-
- <para>Esto actualmente ocurre cuando est&aacute;s intentando concatenar las
- particiones c'. El driver ccd requiere que la partici&oacute;n sea del
- tipo FS_BSDFFS. Edita la etiqueta del disco (disklabel) que est&aacute;s
- intentando concatenar y cambia el tipo de partici&oacute;n a '4.2BSD'.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; no puedo editar el disklabel en mi ccd?</para>
- </question>
-
- <answer>
- <para>El s&iacute;ntoma es:</para>
- <para>
- <literallayout>
-# disklabel ccd0
-(it prints something sensible here, so let's try to edit it)
-# disklabel -e ccd0
-(edit, save, quit)
-disklabel: ioctl DIOCWDINFO: No disk label on disk;
-use "disklabel -r" to install initial label
-#
- </literallayout>
- </para>
-
- <para>Esto es porque el disklabel retornado por el ccd es actualmente
- uno que no corresponde con el real. Puedes resolver este problema
- escribiendo expl&iacute;citamente:</para>
-
- <para>
- <literallayout>
-# disklabel ccd0 &gt; /tmp/disklabel.tmp
-# disklabel -Rr ccd0 /tmp/disklabel.tmp
-# disklabel -e ccd0
-(ahora funcionara)
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD primitivas IPC System V?</para>
- </question>
-
- <answer>
- <para>S&iacute;, FreeBSD las soporta. Estas incluyen memoria compartida,
- mensajes y sem&aacute;foros. Necesitas a&ntilde;adir las siguientes
- l&iacute;neas en la configuraci&oacute;n de tu kernel para activarlas.</para>
-
- <para>
- <literallayout>
-options SYSVSHM
-options "SHMMAXPGS=64" # 256Kb of sharable memory
-options SYSVSEM # enable for semaphores
-options SYSVMSG # enable for messaging
- </literallayout>
- </para>
-
- <para>Recompila e instala.</para>
-
- <para><emphasis remap=bf>NOTA:</emphasis> Quiz&aacute;s necesites incrementar
- SHMMAXPGS a un n&uacute;mero como 4096 (16M) si quieres usar GIMP. 256K es
- suficiente para la memoria compartida en X11R6.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="uucpmail">
- <para>&iquest;C&oacute;mo uso sendmail para envio de mail UUCP?</para>
- </question>
-
- <answer>
- <para>La configuraci&oacute;n de sendmail incluida en FreeBSD est&aacute;
- preparada para sistemas que conectan directamente con Internet. Los
- sistemas que quieran usar UUCP para el env&iacute;o de mail deben
- utilizar otro archivo de configuraci&oacute;n.</para>
-
- <para>Retocar <filename>/etc/sendmail.cf</filename> manualmente est&aacute; considerado
- algo para puristas. La versi&oacute;n 8 de sendmail incluye un nuevo
- sistema de configuraci&oacute;n llamado
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?m4">m4</ulink>, en
- el cual la configuraci&oacute;n se realiza en un nivel m&aacute;s alto.
- Deber&iacute;as usar los archivos de configuraci&oacute;n situados en</para>
-
- <para>
- <literallayout>
-/usr/src/usr.sbin/sendmail/cf
- </literallayout>
- </para>
-
- <para>Si no instalaste tu sistema con el c&oacute;digo fuente completo, el
- paquete de configuraci&oacute;n de sendmail est&aacute; en una
- distribuci&oacute;n aparte. Asumiendo que tienes tu CD-ROM montado, haz:</para>
-
- <para>
- <literallayout>
-cd /usr/src
-tar -xvzf /cdrom/dists/src/ssmailcf.aa
- </literallayout>
- </para>
-
- <para>No te preocupes, solo son unos cientos de kilobytes de tama&ntilde;o.
- El archivo <acronym>README</acronym> en el directorio
- <emphasis remap=tt>cf</emphasis> puede servir como introducci&oacute;n a
- la configuraci&oacute;n del m4.</para>
-
- <para>Para env&iacute;o y recepci&oacute;n va UUCP, te aconsejamos usar la
- opci&oacute;n <emphasis>mailertable</emphasis>. Se basa en una base de datos
- que sendmail puede usar como base para tomar las decisiones
- de enrutado del mail.</para>
-
- <para>Primero tienes que crear tu archivo <filename>.mc</filename>. Estos archivos
- se encuentran en el directorio
- <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename>. Si miras, encontrar&aacute;s
- algunos ejemplos. Asumiendo que tu archivo se llama <filename>foo.com</filename>,
- todo lo que necesitas hacer para convertirlo en un archivo
- <filename>sendmail.cf</filename> v&aacute;lido es:</para>
-
- <para>
- <literallayout>
-cd /usr/src/usr.sbin/sendmail/cf/cf
-make foo.cf
-cp foo.cf /etc/sendmail.cf
- </literallayout>
- </para>
-
- <para>Un archivo t&iacute;pico <filename>.mc</filename> ser&iacute;a algo como:</para>
-
- <para>
- <literallayout>
- include(`../m4/cf.m4')
- VERSIONID(`Your version number')
- OSTYPE(bsd4.4)
-
- FEATURE(nodns)
- FEATURE(nocanonify)
- FEATURE(mailertable)
-
- define(`UUCP_RELAY', your.uucp.relay)
- define(`UUCP_MAX_SIZE', 200000)
-
- MAILER(local)
- MAILER(smtp)
- MAILER(uucp)
-
- Cw your.alias.host.name
- Cw youruucpnodename.UUCP
- </literallayout>
- </para>
-
- <para>Las opciones <emphasis>nodns</emphasis> y <emphasis>nocanonify</emphasis> previenen
- del uso del DNS durante el tr&aacute;fico de correo. La cl&aacute;usula
- <symbol>UUCP_RELAY</symbol> se necesita por razones imperiosas, no
- preguntes :). Simplemente pon un nombre de m&aacute;quina de Internet que
- sea capaz de gestionar pseudo-dominios .UUCP; m&aacute;s sencillo,
- entrar&aacute;s el mail relay de tu ISP.</para>
-
- <para>Una vez hayas hecho esto, necesitas el archivo llamado
- <filename>/etc/mailtertable</filename>. Un ejemplo t&iacute;pico ser&iacute;a:</para>
-
- <para>
- <literallayout>
- #
- # makemap hash /etc/mailertable.db &lt; /etc/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:sax
- </literallayout>
- </para>
-
- <para>Como puedes ver, esto es parte de un archivo real. Las tres
- primeras l&iacute;neas manejan casos especiales donde el correo dirigido
- a un dominio no debe ser enviado a trav&eacute;s de la ruta por defecto,
- si no a trav&eacute;s de un UUCP vecino para acortar el path de
- env&iacute;o. La siguiente l&iacute;nea gestiona el mail del dominio
- local para que sea enviado v&iacute;a SMTP. Finalmente, los vecinos UUCP
- son anotados en la parte .UUCP pseudo-domains, para poder sobreescribir
- las reglas por defecto. La &uacute;ltima l&iacute;nea es siempre un
- punto, que indica el mail gateway hacia el resto del mundo. Todos los
- nombres de nodos detr&aacute;s de <emphasis remap=tt>uucp-dom:</emphasis>
- deben ser vecinos v&aacute;lidos UUCP.</para>
-
- <para>Como recordatorio de que este archivo debe ser convertido a
- una base de datos DBM antes de ser usada, la l&iacute;nea de comandos
- para realizar esta operaci&oacute;n esta puesta como un comentario al
- inicio del archivo. Siempre tienes que ejecutar este comando
- cada vez que realices alg&uacute;n cambio en tu mailtertable.</para>
-
- <para>Si no tienes la seguridad de que una ruta de correo vaya a
- funcionar correctamente, recuerda la opci&oacute;n <option>-bt</option> de
- sendmail. Esta opci&oacute;n arranca el sendmail en <emphasis>modo test</emphasis>;
- simplemente entra 0, seguido por la direcci&oacute;n de mail sobre la que
- quieres testear la ruta. La &uacute;ltima l&iacute;nea te indica el agente
- interno, el host de destino y la direcci&oacute;n (posiblemente
- traducido). Sal de este modo tecleando Control-D.</para>
-
- <para>
- <literallayout>
- j@uriah 191% sendmail -bt
- ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
- Enter &lt;ruleset&gt; &lt;address&gt;
- &gt; 0 foo@interface-business.de
- rewrite: ruleset 0 input: foo @ interface-business . de
- ...
- rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \
- &lt; @ interface-business . de &gt;
- &gt; ^D
- j@uriah 192%
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ispmail">
- <para>&iquest;C&oacute;mo configuro el correo para conexiones NO
- permanentes a Internet?</para>
- </question>
-
- <answer>
- <para>Si tienes una direcci&oacute;n IP fija en la conexi&oacute;n, no
- necesitar&aacute;s ajustar nada de lo que ya viene por defecto.
- Configura tu hostname como el nombre asignado a tu IP de Internet y
- sendmail har&aacute; el resto.</para>
-
- <para>Si tienes direcciones IP asignadas dinamicamente y usas una
- conexi&oacute;n <emphasis remap=bf>ppp</emphasis> a Internet, probablemente
- tendr&aacute;s un buz&oacute;n en el servidor de correo de tu proveedor.
- Supongamos que el dominio de tu proveedor es <filename>myisp.com</filename>,
- y tu nombre de usuario es <emphasis remap=tt>user</emphasis>. Supongamos
- tambi&eacute;n que has llamado a tu m&aacute;quina <filename>bsd.home</filename>
- y que tu proveedor te ha indicado que uses la m&aacute;aquina
- <filename>relay.myISP.com</filename> como mail realy (gateway).</para>
-
- <para>Para poder recoger el correo de tu buz&oacute;n necesitar&aacute;s
- instalar un agente de recogida de correo. <emphasis remap=bf>Fetchmail</emphasis>
- es una buena opci&oacute;n ya que soporta diferentes protocolos. Normalmente se usa
- POP3. Puedes recoger automaticamente tu correo al realizar la
- conexi&oacute;n a&ntilde;adiendo la siguiente l&iacute;nea en el archivo
- <filename>/etc+ppp/ppp.linkup</filename>:</para>
-
- <para>
- <literallayout>
- MYADDR:
- !bg su user -c fetchmail
- </literallayout>
- </para>
-
- <para>Asumimos que tienes una cuenta para <emphasis remap=tt>user</emphasis>
- en <filename>bsd.home</filename>. En el home directory de
- <emphasis remap=tt>user</emphasis> en <filename>bsd.home</filename>, crea el
- archivo <filename>.fetchmailrc</filename>:</para>
-
- <para>
- <literallayout>
- poll myISP.com protocol pop3 fetchall pass MySecret;
- </literallayout>
- </para>
-
- <para>No hace falta decir que este archivo no debe ser "leible" por nadie
- excepto <emphasis remap=tt>user</emphasis> ya que contiene el password
- <emphasis remap=tt>MySecret</emphasis>.</para>
-
- <para>Para enviar el correo con la cabecera <emphasis remap=bf>from:</emphasis>
- correcta, debes decirle al sendmail que use <email>user@myISP.com</email> en lugar de
- <email>user@bsd.home</email>. Tambi&eacute;n deber&iacute;as decirle al sendmail
- que envie todo el correo saliente a traves de <filename>relay.myISP.com</filename>, para
- una transmisi&oacute;n mucho m&aacute;s r&aacute;pida.</para>
-
- <para>El siguiente archivo <filename>.mc</filename> debe ser suficiente:</para>
-
- <para>
- <literallayout>
- VERSIONID(`bsd.home.mc version 1.0')
- OSTYPE(bsd4.4)dnl
- FEATURE(nouucp)dnl
- MAILER(local)dnl
- MAILER(smtp)dnl
- Cwlocalhost
- Cwbsd.home
- CwmyISP.com
- MASQUERADE_AS(`myISP.com')dnl
- FEATURE(allmasquerade)dnl
- FEATURE(masquerade_envelope)dnl
- FEATURE(nocanonify)dnl
- FEATURE(nodns)dnl
- define(SMART_HOST, `relay.myISP.com')
- DmmyISP.com
- define(`confDOMAIN_NAME',`myISP.com')dnl
- define(`confDELIVERY_MODE',`deferred')dnl
- </literallayout>
- </para>
-
- <para>Mira en la secci&oacute;n anterior para los detalles de como convertir
- este archivo <filename>.mc</filename> en un <filename>sendmail.cf</filename>.
- No te olvides de rearrancar sendmail despu&eacute;s de cada actualizaci&oacute;n del
- archivo sendmail.cf.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Olvid&eacute; el password de Root!!</para>
- </question>
-
- <answer>
- <para>Tranquilo!!!. Simplemenre rearranca tu sistema, teclea -s en el
- prompt de arranque para entrar en modo monousuario. En la pregunta
- sobre el shell a usar, pulsa ENTER. Aparecer&aacute; un prompt #. Teclea
- <command>mount -u /</command> para remontar tu sistema de archivos en modo
- de lectura/escritura y a continuaci&oacute;n teclea <command>mount -a</command> para
- montar todos los sistemas de archivos. Ejecura <emphasis remap=tt>passwd root</emphasis>
- para cambiar el password de root. Teclea <emphasis remap=tt>exit</emphasis> para continuar
- normalmente con el arranque.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo mantengo el control sobre Control-Alt-Delete?</para>
- </question>
-
- <answer>
- <para>Edita el mapa de teclado que est&aacute;s usando para la
- consola y reemplaza las palabras <emphasis remap=tt>boot</emphasis> por
- <emphasis remap=tt>nop</emphasis>. El mapa de teclado por defecto es
- <filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>. Por supuesto si
- usas otro mapa de teclado adecuado a tu pa&iacute;s, tendr&iacute;as que
- editarlo.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo reformateo archivos de texto DOS a UNIX?</para>
- </question>
-
- <answer>
- <para>Simplemente usando este comando de perl:</para>
-
- <para>
- <literallayout>
- perl -i.bak -npe 's/\r\n/\n/g' file ...
- </literallayout>
- </para>
-
- <para>file es el archivo a procesar. La modificaci&oacute;n se hace en el
- propio archivo dejando el original grabado con extensi&oacute;n .bak.</para>
-
- <para>Alternativamente puedes usar el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tr">tr(1)</ulink></para>
-
- <para>
- <literallayout>tr -d '\r' &lt; dos-text-file &gt; unix-file</literallayout>
- </para>
-
- <para>dos-text-file es el archivo que contiene el texto DOS mientras que
- unix-file contendr&aacute; la salida convertida. Este sistema puede
- ser m&aacute;s r&aacute;pido que usar perl.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo hace "kill" de procesos por nombre?</para>
- </question>
-
- <answer>
- <para>Usa <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?killall">killall(1)</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porque el su no me dejar ser root al no estar en el ACL?</para>
- </question>
-
- <answer>
- <para>El error proviene de sistema del autentificaci&oacute;n distribuida
- Kerberos. El problema no es fatal pero si molesto. Puedes ejecutar el
- comando su con la opcion -K, o desinstalar Kerberos como se describe en
- la siguiente secci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo desinstalo Kerberos?</para>
- </question>
-
- <answer>
- <para>Para eliminar Kerberos del sistema, reinstala la distribuci&oacute;n
- bin de la release que est&eacute;s usando. Si tienes el CDROM, puedes
- montar el cd (asumiremos que esta en /cdrom) y ejecutar:</para>
-
- <para>
- <literallayout>
- cd /cdrom/bin
- ./install.sh
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo a&ntilde;ado pseudoterminales a mi sistema?</para>
- </question>
-
- <answer>
- <para>Si tienes muchos usuarios de telnet, ssh, X, o de consola,
- probablemente terminar&aacute;s desbordando el n&uacute;mero de
- pseudoterminales del sistema. Aqu&iacute; tienes como a&ntilde;adir
- m&aacute;s:</para>
-
- <para>
- <orderedlist>
- <listitem>
- <para>Compila e instala un nuevo kernel com la l&iacute;nea
-
- <literallayout>
- pseudo-device pty 256
- </literallayout>
- </para>
- <para>en el archivo de configuraci&oacute;n.</para>
- <para></para>
- </listitem>
-
- <listitem>
- <para>Ejecuta el comando
-
- <literallayout>
- # cd /dev
- # ./MAKEDEV pty{1,2,3,4,5,6,7}
- </literallayout>
- </para>
- <para>para crear 256 nodos de dispositivo para los nuevos terminales.</para>
- <para></para>
- </listitem>
-
- <listitem>
- <para>Edita el archivo <filename>/etc/ttys</filename> y a&ntilde;ade una
- l&iacute;nea para cada uno de los 256 terminales. Estas l&iacute;neas deben
- seguir la estructura de las entradas existentes, algo como esto:
-
- <literallayout>
- ttyqc none network
- </literallayout>
- </para>
- <para>El &oacute;rden de la designaci&oacute;n de letras es
- <emphasis remap=tt>tty[pqrsPQRS][0-9a-v]</emphasis>, usando una
- expresi&oacute;n regular.</para>
- <para></para>
- </listitem>
-
- <listitem>
- <para>Rearranca el sistema con el nuevo kernel, y lo tendr&aacute;s listo
- para funcionar.</para>
- </listitem>
- </orderedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo releer el archivo /etc/rc.conf y relanzar /etc/rc
- sin tener que hacer un reboot?</para>
- </question>
-
- <answer>
- <para>Entra en modo monousuario y a continuaci&oacute;n vuelve a modo
- multiusuario.</para>
-
- <para>En la consola haz:
- <literallayout>
- # shutdown now
- (Nota: sin -r o -h)
-
- # return
- # exit
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; es un sandbox?</para>
- </question>
-
- <answer>
- <para>Sandbox es un t&eacute;rmino de seguridad. Puede significar dos
- cosas:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para></para>
-
- <para>Un proceso que es situado en el interior de una serie de muros
- virtuales dise&ntilde;ados como prevenci&oacute;n e imposibilitar
- el acceso al sistema principal en caso de que alguien comprometa
- la seguridad de ese proceso.</para>
-
- <para></para>
-
- <para>Se dice que el proceso es capaz de "jugar" entre los muros.
- Esto significa que se supone que nada de lo que haga el proceso
- referente a la ejecuci&oacute;n de c&oacute;digo, puede ser capaz
- de romper los muros, as&iacute; no es necesario hacer
- auditor&iacute;as detalladas de su c&oacute;digo para poder conocer
- todo lo referente a los riesgos de seguridad del proceso.</para>
-
- <para></para>
-
- <para>Los muros pueden, por ejemplo, un userid. Esta es la
- definici&oacute;n usada en las p&aacute;ginas man de seguridad y del
- programa named.</para>
-
- <para></para>
-
- <para>Veamos como ejemplo el servicio 'ntalk' (consultar /etc/inetd.conf).
- Este servicio sol&iacute;a ejecutarse con el userid de root. Ahora se
- ejecuta con el userid tty. El usuario tty esta dise&ntilde;ado para ser
- usado como usuario sandbox, dificultando as&iacute; la tarea de un
- intruso que haya conseguido penetrar en el sistema a trav&eacute;s del
- servicio ntalk. De esta manera, el intruso solo puede afectar a los
- servicios, programas o procesos propiedad del usuario tty.</para>
- </listitem>
-
- <listitem>
- <para></para>
-
- <para>Un proceso que se ha situado en el interior de una simulaci&oacute;n
- de la m&aacute;quina. Esto es m&aacute;s hard-core. B&aacute;sicamente,
- significa que alguien que sea capaz de penetrar en el proceso,
- creer&aacute; que ha penetrado en el sistema principal, pero de hecho,
- ha penetrado en una simulaci&oacute;n de esa m&aacute;quina y no puede
- modificar ning&uacute;n dato real.</para>
-
- <para></para>
-
- <para>El sistema m&aacute;s com&uacute;n de conseguir esto es crear un
- entorno simulado en un subdirectorio y ejecutar los procesos en ese
- subdirectorio mediante chroot (la raiz "/" para ese proceso es este
- directorio, no la raiz "/" real del sistema).</para>
-
- <para></para>
-
- <para>Otro sistema habitual es montar un sistema de archivos de solo
- lectura y a continuaci&oacute;,n crear un nivel de sistema de archivos
- por encima del anterior que d&eacute; al proceso la sensaci&oacute;n
- de encontrarse en un sistema de archivos de lectura/escritura. El
- proceso creer&aacute; que es capaz de escribir esos archivos, pero
- s&oacute;lo el proceso ve los efectos; otros procesos del sistema
- no ven absolutamente nada.</para>
-
- <para></para>
-
- <para>Se intenta crear este tipo de sandbox totalmente transparentes para
- que el usuario (o intruso) no se de cuenta que est&aacute; en &eacute;l.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>UNIX implementa dos tipos de sandboxes. Uno es a nivel de procesos,
- y el otro es a nivel de usuarios (userid).</para>
-
- <para>Cada proceso UNIX es totalmente independiente de cualquier otro proceso
- UNIX. Un proceso no puede modificar el espacio de direcciones de otro. Es
- diferente a los sistemas Windows en los que un proceso puede sobreescribir
- facilmente el espacio de direcciones de otro proceso, probocando una caida
- de la m&aacute;quina.</para>
-
- <para>Un proceso UNIX es propiedad de un userid determinado. Si el userid no
- es el usuario root, &eacute;ste solo podr&aacute; acceder a los procesos
- de su propiedad, evitando la intrusi&oacute;n en procesos ajenos. El
- userid tambi&eacute;n se usa como sistema de protecci&oacute;n para datos
- grabados en disco.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="x">
- <title>El sistema X Windows y las consolas virtuales</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Quiero ejecutar las X, &iquest;c&oacute;mo lo hago?</para>
- </question>
-
- <answer>
- <para>La manera m&aacute;s f&aacute;cil es, simplemente, especificar que
- quieres usar las X durante el proceso de instalaci&oacute;n.</para>
-
- <para>Entonces, lee y sigue la documentaci&oacute;n de la herramienta
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config">xf86config</ulink>,
- la cual te ayuda a configurar el sistema XFree86 sobre
- las caracter&iacute;sticas propias de tu sistema (tarjeta de v&iacute;deo
- , rat&oacute;n, etc).</para>
-
- <para>Quiz&aacute;s te interesar&iacute;a investigar y probar el servidor
- Xaccel, disponible a un precio muy razonable. Mira en la secci&oacute;n
- <link linkend="xig">Xi Graphics</link> o
- <link linkend="metrox">Metro Link</link> para m&aacute;s detalles.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="x-and-moused">
- <para>&iquest;Porqu&eacute; no funciona mi rat&oacute;n con las X?</para>
- </question>
-
- <answer>
- <para>Si est&aacute;s usando syscons (el driver de consola por
- defecto), puedes configurar FreeBSD para soportar un rat&oacute;n en cada
- consola virtual. Para evitar conflictos con las X, syscons soporta
- un dispositivo virtual llamado <filename>/dev/sysmouse</filename>. Todos los
- eventos recibidos desde el mouse real son escritos en el dispositivo sysmouse,
- usando el protocolo MouseSystems. Si quieres usar el rat&oacute;n en una o
- m&aacute;s consolas virtuales <emphasis remap=bf>y</emphasis> usar las X,
- te recomendamos la siguiente configuraci&oacute;n:</para>
-
- <para>
- <literallayout>
- /etc/rc.conf:
- moused_type=ps/2 # or whatever your actual type is
- moused_port=/dev/psm0 # or whatever your real port is
- moused_flags=
-
- /etc/XF86Config
- Section Pointer
- Protocol "MouseSystems"
- Device "/dev/sysmouse"
- .....
- </literallayout>
- </para>
-
- <para>Hay gente que prefiere usar <filename>/dev/mouse</filename> bajo X. Para que
- esto funcione, <filename>/dev/mouse</filename> debe estar lincado a
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sysmouse">/dev/sysmouse</ulink>:</para>
-
- <para>
- <literallayout>
- # cd /dev
- # rm -f mouse
- # ln -s sysmouse mouse
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Los menus de X Window y cajas de di&aacute;logo no funcionan bien.</para>
- </question>
-
- <answer>
- <para>Intenta desactivar la tecla Num Lock.</para>
-
- <para>Si tu tecla Num Lock est&aacute; activada por defecto al arrancar el
- sistema, deber&iacute;as a&ntilde;adir la siguiente l&iacute;nea en la
- secci&oacute;n <emphasis remap=tt>Keyboard</emphasis> del archivo
- <emphasis remap=tt>XF86Config</emphasis>.</para>
-
- <para>
- <literallayout>
- # Let the server do the NumLock processing. This should only be
- # required when using pre-R6 clients
- ServerNumLock
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; es una consola virtual y como creo m&aacute;s?</para>
- </question>
-
- <answer>
- <para>Las consolas virtuales te permiten tener sesiones
- simult&aacute;neas en la misma m&aacute;quina sin necesidad de tener
- montajes complicados como una red o ejecuci&oacute;n de X.</para>
-
- <para>Cuando el sistema arranca, mostrar&aacute; el prompt de login en el
- monitor una vez finalizado el mismo. Puedes entonces teclear
- tu login y password y empezar a trabajar (o jugar), en la primera
- consola virtual.</para>
-
- <para>En algun momento, es probablemente querras iniciar otra sesion
- , por ejemplo, para mirar la documentaci&oacute;n de un programa que
- est&aacute;s ejecutando, o para leer el correo mientras esperas que
- termine una sesi&oacute;n ftp que tienes establecida. Solo haz Alt-F2 y
- encontrar&aacute;s un prompt un prompt de login esperandote en la segunda
- "consola virtual". Cuando quieras volver a la sesi&oacute;n
- original, s&oacute;lo tienes que pulsar Alt-F1.</para>
-
- <para>La instalaci&oacute;n por defecto de FreeBSD tiene tres consolas
- virtuales activadas, y Alt-F1, Alt-F2 y Alt-F3 cambian entre ellas.</para>
-
- <para>Para activar m&aacute;s consolas virtuales, edita
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>
- y a&ntilde;ade tantas entradas como consolas virtuales quieras a
- partir de <emphasis remap=tt>ttyv4</emphasis>, despu&eacute;s del
- comentario "Virtual Terminals":</para>
-
- <para>
- <literallayout>
- # 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
- </literallayout>
- </para>
-
- <para>Utiliza tantas consolas como quieras o necesites. Cuantas
- m&aacute;s consolas tengas, m&aacute;s recursos utilizas; esto
- puede ser importante si tienes 8MB de RAM o menos. Tambi&eacute;n te
- puede interesar cambiar el modo <emphasis remap=tt>secure</emphasis> a
- <emphasis remap=tt>insecure</emphasis>.</para>
-
- <para><emphasis remap=bf>NOTA IMPORTANTE</emphasis> si quieres usar un
- servidor X <acronym>DEBES</acronym> dejar, al menos, un terminal virtual
- sin usar (o desactivado).</para>
-
- <para>La manera m&aacute;s f&aacute;cil de desactivar una consola
- es "apagarla". Por ejemplo, para desactivar el terminal 12, cambia esto:</para>
-
- <para>
- <literallayout>
- ttyvb "/usr/libexec/getty Pc" cons25 on secure
- </literallayout>
- </para>
-
- <para>por esto:</para>
-
- <para>
- <literallayout>
- ttyvb "/usr/libexec/getty Pc" cons25 off secure
- </literallayout>
- </para>
-
- <para>Si tu teclado solo tiene 10 teclas de funci&oacute;n, tendras que
- acabar con:</para>
-
- <para>
- <literallayout>
- ttyv9 "/usr/libexec/getty Pc" cons25 off secure
- ttyva "/usr/libexec/getty Pc" cons25 off secure
- ttyvb "/usr/libexec/getty Pc" cons25 off secure
- </literallayout>
- </para>
-
- <para>(Tambi&eacute;n puedes, simplemente, borrar estas l&iacute;neas.)</para>
-
- <para>Una vez has editado el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>,
- el siguiente paso es asegurarte de que tienes suficientes
- dispositivos de terminales virtuales. La manera m&aacute;s f&aacute;cil
- de hacerlo es:</para>
-
- <para>
- <literallayout>
- # cd /dev
- # ./MAKEDEV vty12 # For 12 devices
- </literallayout>
- </para>
-
- <para>A continuaci&oacute;n, la manera m&aacute;s f&aacute;cil de activar
- las consolas virtuales es rearrancar el sistema. Si, realmente no
- quieres rearrancarlo, puedes para el servidor de X Window y ejecutar
- (como <emphasis remap=tt>root</emphasis>):</para>
-
- <para>
- <literallayout>
- kill -HUP 1
- </literallayout>
- </para>
-
- <para>Es imperativo que pares el servidor de X Window si est&aacute;
- funcionando, antes de ejecutar este comando. Si no lo haces,
- parecer&aacute; que tu sistema est&aacute; parado/colgado despu&eacute;s
- de ejecutar el comando kill.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo accedo a las consolas virtuales desde X?</para>
- </question>
-
- <answer>
- <para>Si la consola est&aacute; actualmente mostrando X Window,
- puedes usar Ctrl-Alt-F1, etc, para cambiar entre las consolas
- virtuales. Ten en cuenta que una vez pases de una consola X Window
- a un terminal virtual, solo tienes que usar la tecla Alf- para volver a
- conmutar entre terminales virtuales o volver a las X. No necesitas pulsar
- la tecla Ctrl. Si usas la tecla Ctrl para volver a las X en alguna
- de las releases antiguas, puedes encontrarte que la consola de
- texto est&aacute; bloqueada. Pulsa la tecla Ctrl de nuevo para
- desbloquearla.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo arranco XDM desde el archivo
- <filename>/etc/ttys</filename>?</para>
- </question>
-
- <answer>
- <para>Existen dos escuelas sobre como arrancar el
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm">xdm</ulink>
- . Una escuela arranca el xdm desde el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>
- usando el ejemplo dado, mientras que la otra simplemente arranca el xdm
- desde el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc">rc.local</ulink> o
- desde un script <filename>X.sh</filename> en
- <filename>/usr/local/etc/rc.d</filename>.
- Ambos m&eacute;todos son igualmente v&aacute;lidos, y uno puede funcionar
- en situaciones que el otro no. En ambos casos el resultado es el mismo:
- el sistema X Window lanzar&aacute; un prompt de login gr&aacute;fico.</para>
-
- <para>El m&eacute;todo ttys tiene la ventaja de documentar en que vty se
- lanzar&aacute;n las X pasando la responsabilidad de rearrancar el
- servidor X al hacer el logout al proceso init. El m&eacute;todo
- rc.local hace m&aacute;s f&aacute;cil terminar con el proceso xdm
- en caso de problemas con el servidor X.</para>
-
- <para>Si arrancamos desde rc.local, <emphasis remap=tt>xdm</emphasis> debe ser
- arrancado sin argumentos (como un daemon). xdm debe arrancar DESPUES del proceso
- getty, o ambos entrar&aacute;n en conflicto bloqueando la
- consola. La mejor manera de evitar este problema es tener un
- script que retrase el arranque de xdm durante 10 segundos.</para>
-
- <para>Una versi&oacute;n previa de esta FAQ dec&iacute;a que deb&iacute;as
- a&ntilde;adir el <emphasis remap=tt>terminal virtual</emphasis> usado por las
- X al archivo <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>. Esto no
- es necesario: las X
- usar&aacute;n el primer <emphasis remap=tt>terminal virtual</emphasis> que
- encuentre libre.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Cuando arranco xconsole obtengo "Couldn't open console".</para>
- </question>
-
- <answer>
- <para>Si arrancas las
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=X">X</ulink>
- con
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=startx">startx</ulink>,
- los permisos en /dev/console no ser&aacute;n cambiados, resultando en cosas
- como que
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xterm">xterm -C</ulink>
- y <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xconsole">xconsole</ulink>
- no funcionen.</para>
-
- <para>Esto se debe a la manera en que son fijados los permisos de la
- consola. En un sistema multiusuario, podemos no querer que
- cualquier usuario pueda escribir en la consola de sistema. Para
- usuarios que realizan logins directamente desde una m&aacute;quina con
- un VTY, existe el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab">fbtab</ulink>
- para resolver estos problemas.</para>
-
- <para>Aseg&uacute;rate de que existe al menos una l&iacute;nea como esta
- sin comentar:</para>
-
- <para>
- <literallayout>
- /dev/ttyv0 0600 /dev/console
- </literallayout>
- </para>
-
- <para>Est&aacute; en
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab(5)">/etc/fbtab</ulink>
- y asegurar&aacute; que cualquiera que realice un login en
- <filename>/dev/ttyv0</filename> ser&aacute; el propietario de la
- consola.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi rat&oacute;n PS/2 no funciona bien en X.</para>
- </question>
-
- <answer>
- <para>Tu rat&oacute;n y el driver de rat&oacute;n quiz&aacute;s est&eacute;n
- fuera de sincronizaci&oacute;n.</para>
-
- <para>En versiones 2.2.5 y anteriores, conmutando entre sesiones X y
- sesiones de terminales virtuales, pod&iacute;a provocar una
- desincronizaci&oacute;n. Si el problema ocurre muy amenudo,
- deber&iacute;as a&ntilde;adir la siguiente opci&oacute;n en el archivo
- de configuraci&oacute;n de tu kernel y recompilarlo.</para>
-
- <para>
- <literallayout>
- options PSM_CHECKSYNC
- </literallayout>
- </para>
-
- <para>Mira la secci&oacute;n <link linkend="make-kernel">creando un kernel</link>
- si no tienes experiencia en compilar nuevos kernels.</para>
-
- <para>En versiones 2.2.6 y posteriores, el chequeo de sincronizaci&oacute;n
- es realizado de otra manera, y es est&aacute;ndar en el driver de rat&oacute;n
- PS/2. Aun as&iacute;, en casos extra&ntilde;os puedes llegar a ver
- mensajes de error de sincronizaci&oacute;n como este:</para>
-
- <para>
- <literallayout>
- psmintr: out of sync (xxxx != yyyy)
- </literallayout>
- </para>
-
- <para>y parecer que tu rat&oacute;n no funciona adecuadamente.</para>
-
- <para>Si esto ocurre, desactiva el c&oacute;digo de chequeo de
- sincronizaci&oacute;n poniendo los flags del driver PS/2 a 0x100. Entra
- en <emphasis>UserConfig</emphasis> poniendo la opci&oacute;n <option>-c</option>
- en el prompt de arranque:</para>
-
- <para>
- <literallayout>
- boot: -c
- </literallayout>
- </para>
-
- <para>Entonces, en la l&iacute;nea de comando de <emphasis>UserConfig</emphasis>,
- teclea:</para>
-
- <para>
- <literallayout>
- UserConfig&gt; flags psm0 0x100
- UserConfig&gt; quit
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi rat&oacute;n PS/2 de MouseSystems no funciona.</para>
- </question>
-
- <answer>
- <para>Hemos recibido reportes de que algunos modelos de ratones PS/2 de
- MouseSystems solo trabajan si est&aacute;n configurados en modo "alta
- resoluci&oacute;n".</para>
-
- <para>Desafortunadamente no hay soluci&oacute;n para versiones 2.0.x y 2.1.x.
- En versiones 2.2.x, aplica el siguiente parche en
- <filename>/sys/i386/isa/psm.c</filename> y compila un nuevo kernel.</para>
-
- <para>
- <literallayout>
-diff -u psm.c.orig psm.c
-@@ -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 */
- </literallayout>
- </para>
-
- <para>En versiones 2.2.6 o posteriores, especifica el flag 0x04 al
- driver PS/2 para poner el rat&oacute;n en modo de alta resoluci&oacute;n.
- Entra en <emphasis>UserConfig</emphasis>:</para>
-
- <para>
- <literallayout>
- boot: -c
- </literallayout>
- </para>
-
- <para>y en la l&iacute;nea de comandos teclea:</para>
-
- <para>
- <literallayout>
- UserConfig&gt; flags psm0 0x04
- UserConfig&gt; quit
- </literallayout>
- </para>
-
- <para>Mira en la secci&oacute;n anterior para posibles causas de problemas
- con los ratones.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Cuando compilo una aplicaci&oacute;n X. <emphasis remap=tt>imake</emphasis>
- no puede encontrar el archivo <filename>imake.tmpl</filename>. &iquest;D&oacute;nde
- est&aacute;?</para>
- </question>
-
- <answer>
- <para>Imake.tmpl es parte del package Imake, una aplicaci&oacute;n
- est&aacute;ndar de compilaci&oacute;n de X. Tanto Imake como headers y otros
- archivos necesarios para compilar aplicaciones X est&aacute;n en la
- distribuci&oacute;n de programaci&oacute;n X. Puedes instalarla desde
- el sysinstall o manualmente desde los archivos de la distribuci&oacute;n
- X.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo invierto los botones del rat&oacute;n?</para>
- </question>
-
- <answer>
- <para>Ejecuta el comando <literal> xmodmap -e "pointer = 3 2 1"</literal> desde el
- archivo .xinitrc o .xsession.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo instalo un "splash screen" y donde los consigo?</para>
- </question>
-
- <answer>
- <para>Justo antes de la publicaci&oacute;n de FreeBSD 3.1 se a&ntilde;adi&oacute;
- una nueva caracter&iacute;stica que permite mostrar "splash screens" durante los
- mensajes de arranque del sistema. Los "splash screen" deben ser un bitmap de
- 256 colores (<filename>*.BMP</filename>) o ZSoft PCX (<filename>*.PCX</filename>).
- Adem&aacute;s, deben tener una resoluci&oacute;n de 320x200 o inferior para poder
- trabajar en controladoras VGA est&aacute;ndares. Si se compila el soporte VESA
- en el kernel, se pueden usar bitmaps de hasta 1024x768. Recordar que el soporte
- de VESA requiere que la opci&oacute;n <emphasis remap=tt>VM86</emphasis> sea
- compilada en el kernel. El soporte actual de VESA puede ser compilado
- directamente en el kernel con la opci&oacute;n de configuraci&oacute;n
- <acronym>VESA</acronym> o cargando el m&oacute;dulo kld VESA durante el arranque.</para>
-
- <para>Para usar un "splash screen" necesitas modificar los archivos de
- inicio que controlan el proceso de arranque de FreeBSD. Estos archivos cambiaron
- con FreeBSD 3.2, as&iacute; que ahora existen dos maneras de cargar un
- "splash screen":</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>FreeBSD 3.1</para>
-
- <para>El primer paso es encontrar una versi&oacute;n bitmap de tu "splash
- screen". La release 3.1 s&oacute;lo soporta bitmaps de Windows. Una
- vez hayas elegido tu "splash screen" copiala en
- <filename>/boot/splash.bmp</filename>. A continuaci&oacute;n necesitas tener
- un archivo <filename>/boot/loader.rc</filename> que contenga las siguientes
- l&iacute;neas:</para>
-
- <para>
- <literallayout>
- load kernel
- load -t splash_image_data /boot/splash.bmp
- load splash_bmp
- autoboot
- </literallayout>
- </para>
- </listitem>
-
- <listitem>
- <para>FreeBSD 3.2+</para>
-
- <para>Adem&aacute;s de soportar los "splash screens" en formato PCX,
- FreeBSD 3.2 incluye un mejor sistema de configuraci&oacute;n
- del proceso de arranque. Si quieres, puedes usar el m&eacute;todo
- se&ntilde;alado para FreeBSD 3.1. Si lo haces, y quieres usar PCX,
- reemplaza <symbol>splash_bmp</symbol> con <symbol>splash_pcx</symbol>. Si por el
- contrario quieres usar la nueva configuraci&oacute;n de arranque,
- necesitas crear un archivo <filename>/boot/loader.rc</filename> que contenga
- las siguientes l&iacute;neas:</para>
-
- <para>
- <literallayout>
- include /boot/loader.4th
- start
- </literallayout>
- </para>
-
- <para></para>
-
- <para>y otro archivo <filename>/boot/loader.conf</filename> que contenga lo
- siguiente:</para>
-
- <para>
- <literallayout>
- splash_bmp_load="YES"
- bitmap_load="YES"
- </literallayout>
- </para>
-
- <para></para>
-
- <para>Esto asume que est&aacute;s usando <filename>/boot/splash.bmp</filename>
- como tu "splash screen". Si quieres usar un archivo PCX,
- copialo a <filename>/boot/splash.pcx</filename>, crea un archivo
- <filename>/boot/loader.rc</filename> como se ha indicado anteriormente, y
- crea un <filename>/boot/loader.conf</filename> que contenga:</para>
-
- <para>
- <literallayout>
- splash_pcx_load="YES"
- bitmap_load="YES"
- bitmap_name="/boot/splash.pcx"
- </literallayout>
- </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Ahora todo lo que necesitas es un "splash screen". Puedes navegar
- por una inmejorable galer&iacute;a en
- <ulink URL="http://www.cslab.vt.edu/~jobaldwi/splash/">http://www.cslab.vt.edu/~jobaldwi/splash/</ulink>.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="networking">
-<title>Networking</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde puedo encontrar informaci&oacute;n sobre
- "diskless booting"?</para>
- </question>
-
- <answer>
- <para>"Diskless booting" significa que una m&aacute;quina FreeBSD sea
- arrancada sobre una red, y lea los archivos necesarios de un servidor y no
- desde su disco duro. Para m&aacute;s detalles, por favor, lee la
- secci&oacute;n
- <ulink URL="../../handbook/diskless.html">diskless booting del manual</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puede una m&aacute;quina FreeBSD ser usada como router dedicado?</para>
- </question>
-
- <answer>
- <para>Los est&aacute;ndares de Internet y las buenas pr&aacute;cticas de
- ingenier&iacute;a nos prohiben proveer el forward de paquetes en la
- distribuci&oacute;n est&aacute;ndar. Aun as&iacute;, puedes activar esta
- opci&oacute;n cambiando la siguiente variable a <acronym>YES</acronym> en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">rc.conf</ulink>:</para>
-
- <para>
- <literallayout>
- gateway_enable=YES # Set to YES if this host will be a gateway
- </literallayout>
- </para>
-
- <para>Esta opci&oacute;n pondr&aacute; la variable
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sysctl">sysctl</ulink>
- <filename>net.inet.ip.forwarding</filename> a <emphasis remap=tt>1</emphasis>.</para>
-
- <para>En muchos casos tambi&eacute;n necesitar&aacute;s ejecutar un proceso
- de rutado para indicar la existencia en la red de tu router; FreeBSD
- incluye el daemon est&aacute;ndar de rutado BSD
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?routed">routed</ulink>,
- aunque en situaciones m&aacute;s complejas quiz&aacute;s quieras usar
- <emphasis>GaTeD</emphasis> disponible en
- <ulink URL="http://www.gated.org/">http://www.gated.org/</ulink></para>
-
- <para>Es nuestro deber advertirte que estando FreeBSD configurado de esta
- manera, no cumple completamente con todos los estandares de routers
- de Internet, pero es suficiente para uso ordinario.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo conectar mi Win95 con Internet a trav&eacute;s de
- FreeBSD?</para>
- </question>
-
- <answer>
- <para>T&iacute;picamente, la gente que pregunta esto tiene dos pc's en casa,
- uno con FreeBSD y otro con Win95; la idea es usar FreeBSD para conectar
- a Internet y luego ser capaz de acceder a Internet desde el
- computador con Windows 95. Este es realmente un caso especial de la
- pregunta anterior.</para>
-
- <para>Hay un &uacute;til documento disponible que explica como configurar
- FreeBSD como un
- <ulink URL="http://www.ssimicro.com/~jeremyc/ppp.html">Router PPP</ulink></para>
-
- <para><emphasis remap=bf>NOTA:</emphasis> Esto requiere, al menos, tener
- dos direcciones IP fijas disponibles, y posiblemente tres o m&aacute;s,
- dependiendo del n&uacute;mero de m&aacute;quinas que quieras conectar.
- Como alternativa, si no tienes una direcci&oacute;n IP fija, puedes usar
- una de las subredes privadas e instalar un proxy como
- <ulink URL="http://squid.nlanr.net/Squid/">SQUID</ulink>
- y <ulink URL="http://www.tis.com/">The TIS firewall toolkit</ulink>
- en tu FreeBSD.</para>
-
- <para>Mira tambi&eacute;n la secci&oacute;n <link linkend="direct-at">natd</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Por que falla la compilaci&oacute;n del &uacute;ltimo BIND del ISC?</para>
- </question>
-
- <answer>
- <para>Hay un conflicto entre el archivo <filename>cdefs.h</filename> incluido en la
- distribuci&oacute;n de BIND y el distribuido con FreeBSD. Solo tienes que
- borrar <filename>compat/include/sys/cdefs.h</filename>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD SLIP y PPP?</para>
- </question>
-
- <answer>
- <para>S&iacute;. Mira las paginas man de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?slattach">slattach</ulink>,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sliplogin">sliplogin</ulink>,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?pppd">pppd</ulink> y
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>.
- <emphasis remap=tt>pppd</emphasis> y <emphasis remap=tt>ppp</emphasis> soportan
- conexiones entrantes y salientes.
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sliplogin">Sliplogin</ulink>
- trabaja exclusivamente con conexiones entrantes y
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?slattach">slattach</ulink> con
- conexiones salientes.</para>
-
- <para>Estos programas son descritos en las siguientes secciones del
- <ulink URL="../../handbook/index.html">manual</ulink>:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink URL="../../handbook/slips.html">Handbook entry on SLIP (server side)</ulink>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink URL="../../handbook/slipc.html">Handbook entry on SLIP (client side)</ulink>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink URL="../../handbook/ppp.html">Handbook entry on PPP (kernel version)</ulink>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink URL="../../handbook/ppp-and-slip.html#USERPPP">Handbook entry on PPP (user-mode version)</ulink>
- </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Si solo tienes acceso a Internet a traves de un "shell
- account", quiz&aacute;s quieras mirar el package
- <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^slirp">slirp</ulink>.
- Puede darte un (limitado) acceso a servicios como ftp y http.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="natd">
- <para>&iquest;Soporta FreeBSD NAT o Masquerading?</para>
- </question>
-
- <answer>
- <para>Si tienes una red local (una o m&aacute;s m&aacute;quinas), pero solo
- se te ha asignado una &uacute;nica direcci&oacute;n IP desde tu proveedor
- de Internet (o si recibes las direcciones de manera din&aacute;mica), te
- interesa mirar el programa
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?natd">natd</ulink>.
- <emphasis remap=tt>Natd</emphasis> te permite conectar una red entera a Internet usando
- solamente una direcci&oacute;n IP.</para>
-
- <para>El programa
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>
- tiene una funcionalidad similar incluida, a trav&eacute;s del
- par&aacute;metro -alias. La
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">librer&iacute;a alias</ulink>
- es usada en ambos casos.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>No puedo crear el dispositivo <filename>/dev/ed0</filename>!</para>
- </question>
-
- <answer>
- <para>En el sistema de trabajo de red de Berkeley, los interfaces de
- red solo son directamente accesibles por el c&oacute;digo del kernel. Por
- favor, mira el archivo <filename>/etc/rc.network</filename> y los man de los
- programas de red all&iacute; mencionados. Si esto te deja totalmente
- confundido, entonces tendr&iacute;as que conseguir algun libro de
- administraci&oacute;n de red de cualquier sistema operativo basado en BSD;
- con algunas excepciones significativas, administrar el sistema de red
- en FreeBSD es b&aacute;sicamente igual que en SunOS 4.0 o Ultrix.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo configurar alias de ethernets?</para>
- </question>
-
- <answer>
- <para>A&ntilde;ade ``<literal>netmask 0xffffffff</literal>'' en el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">ifconfig</ulink>
- como el siguiente:</para>
-
- <para>
- <literallayout>
- ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo hago para usar el otro puerto de una 3C503?</para>
- </question>
-
- <answer>
- <para>Si quieres usar los otros puertos, tendr&aacute;s que especificar
- par&aacute;metros adicionales en el comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">ifconfig</ulink>.
- El puerto por defecto es <emphasis remap=tt>link0</emphasis>. Para usar el
- puerto AUI en lugar del BSN, usa <emphasis remap=tt>link2</emphasis>. Estos
- flags tendr&iacute;an que ser especificados usando las variable ifconfig_* en
- el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Tengo problemas con NFS desde/hacia FreeBSD.</para>
- </question>
-
- <answer>
- <para>Algunas tarjetas de red son mejores que otras y algunas veces
- pueden causar problemas con aplicaciones de uso intensivo de red
- como NFS</para>
-
- <para>Mira la <ulink URL="../../handbook/nfs.html">entrada en el manual de NFS</ulink>
- para m&aacute;s informaci&oacute;n sobre este tema.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; no puedo hacer NFS-mount desde Linux?</para>
- </question>
-
- <answer>
- <para>Algunas versiones de NFS para Linux solo aceptan peticiones
- para montar unidades hechas desde un puerto privilegiado; intenta:</para>
-
- <para>
- <literallayout>
- mount -o -P linuxbox:/blah /mnt
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; no puedo hacer NFS-mount desde una Sun?</para>
- </question>
-
- <answer>
- <para>Las estaciones de trabajo Sun con SunOS 4.x solo aceptan peticiones
- de montar unidades hechas desde puertos privilegiados; intenta</para>
-
- <para>
- <literallayout>
- mount -o -P sunbox:/blah /mnt
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Tengo problemas usando ppp contra m&aacute;quinas NeXTStep.</para>
- </question>
-
- <answer>
- <para>Intenta desactivar las extensiones TCP en
- url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf" name="/etc/rc.conf"&gt;
- cambiando la siguiente variable a NO:</para>
-
- <para>
- <literallayout>
- tcp_extensions=NO
- </literallayout>
- </para>
-
- <para>Las m&aacute;quinas Xylogic's Annex tambi&eacute;n tienen este
- problema, por lo que tienes que hacer el mismo cambio para conectar con
- ellas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo activo soporte de IP multicast?</para>
- </question>
-
- <answer>
- <para>Las operaciones multicast est&aacute;n totalmente soportadas en FreeBSD
- 2.0 y superiores. Si quieres usar tu m&aacute;quina como router multicast,
- necesitar&aacute;s cargar el m&oacute;dulo de kernel <symbol>ip_mrouted_mod</symbol> y
- ejecutar el programa <emphasis remap=tt>mrouted</emphasis>.</para>
-
- <para>Para m&aacute;s informaci&oacute;n:</para>
-
- <para>
- <literallayout>
-Producto Descripcion Donde
---------------- ----------------------- ---------------------------------------
-faq.txt Mbone FAQ ftp.isi.edu:/mbone/faq.txt
-imm/immserv IMage Multicast ftp.hawaii.edu:/paccom/imm.src.tar.Z
- for jpg/gif images.
-nv Network Video. ftp.parc.xerox.com:
- /pub/net-reseach/exp/nv3.3alpha.tar.Z
-vat LBL Visual Audio Tool. ftp.ee.lbl.gov:
- /conferencing/vat/i386-vat.tar.Z
-wb LBL White Board. ftp.ee.lbl.gov:
- /conferencing/wb/i386-wb.tar.Z
-mmcc MultiMedia Conference ftp.isi.edu:
- Control program /confctrl/mmcc/mmcc-intel.tar.Z
-rtpqual Tools for testing the ftp.psc.edu:/pub/net_tools/rtpqual.c
- quality of RTP packets.
-vat_nv_record Recording tools for vat ftp.sics.se:archive/vat_nv_record.tar.Z
- and nv.
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; tarjetas de red est&aacute;n basadas en el chipset DEC PCI?</para>
- </question>
-
- <answer>
- <para>Aqu&iacute; tienes una lista hecha por
- <ulink URL="mailto:gfoster@driver.nsta.org">Glen Foster</ulink>:</para>
-
- <para>
- <literallayout>
- Fabricante Modelo
- ----------------------------------------------
- ASUS PCI-L101-TB
- Accton ENI1203
- Cogent EM960PCI
- Compex ENET32-PCI
- D-Link DE-530
- Dayna DP1203, DP2100
- DEC DE435, DE450
- Danpex EN-9400P3
- JCIS Condor JC1260
- Linksys EtherPCI
- Mylex LNP101
- SMC EtherPower 10/100 (Model 9332)
- SMC EtherPower (Model 8432)
- TopWare TE-3500P
- Zynx ZX342
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; tengo que usar el FQDN para hosts en mi servidor?</para>
- </question>
-
- <answer>
- <para>Probablemente el host estar&aacute; en un dominio diferente; por
- ejemplo, si est&aacute;s en el dominio foo.bar.edu y quieres encontrar
- un host llamado "mumble" en el dominio bar.edu, tendr&aacute;s que
- llamarlo por su nombre de dominio, "mumble.bar.edu", en vez de solo
- "mumble".</para>
-
- <para>Tradicionalmente, esto era permitido por los resolvers BIND BSD.
- La versi&oacute;n actual de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?named">bind</ulink> que
- se incluye en FreeBSD no resuelve abreviaciones de nombres para
- hosts fuera de nuestro dominio.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>``Permission denied'' para todas las operaciones de red.</para>
- </question>
-
- <answer>
- <para>Si tienes el kernel compilado con la opci&oacute;n <acronym>IPFIREWALL</acronym>
- . debes tener en cuenta que la pol&iacute;tica por defecto es denegar
- expl&iacute;citamente todos los paquetes que no est&aacute;n
- expl&iacute;citamente permitidos.</para>
-
- <para>Si involuntariamente has desconfigurado el firewall de tu sistema,
- puedes restaurar la operatibilidad de la red tecleando el siguiente
- comando como usuario root:</para>
-
- <para>
- <literallayout>
- ipfw add 65534 allow all from any to any
- </literallayout>
- </para>
-
- <para>Para m&aacute;s informaci&oacute;n en la configuraci&oacute;n del firewall
- de FreeBSD, mira la secci&oacute;n
- <ulink URL="../../handbook/firewalls.html">del manual</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Cuanto tiempo retrasa IPFW el tr&aacute;fico?</para>
- </question>
-
- <answer>
- <para>Esta respuesta depende mucho en las reglas definidas y en la
- versi&oacute;n del procesador. Para la mayor&iacute;a de aplicaciones
- que tienen que ver con la ethernet y peque&ntilde;as reglas, la
- respuesta es, pr&aacute;cticamente nada.</para>
-
- <para>Aqu&iacute; tienes una lista de cosas a tener en cuenta para crear reglas
- de filtrado eficientes:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Poner una regla "established" al inicio para manejar la
- mayor&iacute;a de trafico TCP. No pongas ninguna regla
- <emphasis remap=tt>allow tcp</emphasis> antes de esta.
- </para>
- </listitem>
-
- <listitem>
- <para>Pon las reglas m&aacute;s usadas antes de las menos usadas
- (<emphasis remap=bf>sin modificar la permisividad del firewall</emphasis>).
- Puedes ver cuales son las reglas m&aacute;s usadas examinando los contadores
- de paquetes con la orden <command>ipfw -a l</command>.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo redirigir peticiones de una m&aacute;quina a
- otra?</para>
- </question>
-
- <answer>
- <para>Puedes redirigir peticiones FTP (y otros servicios) con el package
- "socket", disponible en la colecci&oacute;n de ports categor&iacute;a
- "sysutils". Simplemente tienes que reemplazar la l&iacute;nea del servicio
- correspondiente en el archivo /etc/services de la siguiente manera:</para>
-
- <para>
- <literallayout>ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp
- </literallayout>
- </para>
-
- <para>donde "ftp.foo.com" y "ftp" son la m&aacute;quina y puerto
- de destino.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;D&oacute;nde puedo conseguir una herramienta de control de ancho
- de banda?.</para>
- </question>
-
- <answer>
- <para>Existen dos herramientas de control de ancho de banda para FreeBSD.
- <ulink URL="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink> es
- gratis; Bandwidth Manager de
- <ulink URL="http://www.etinc.com/">Emerging Technologies</ulink> es un
- producto comercial.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; aparece "/dev/bpf0: device not configured"?</para>
- </question>
-
- <answer>
- <para>El driver Berkeley Packet Filter
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?bpf">(bpf)</ulink> necesita ser
- activado para ejecutar programas que lo utilizan. A&ntilde;ade esto al
- archivo de configuraci&oacute;n de tu kernel y crea uno nuevo:</para>
-
- <para>
- <literallayout>
- pseudo-device bpfilter # Berkeley Packet Filter
- </literallayout>
- </para>
-
- <para>A continuaci&oacute;n, despu&eacute;s de rearrancar tendr&aacute;s el
- dispositivo. Esto puede hacerse entrando en el directorio <filename>/dev</filename>
- y ejecutando el siguiente comando:</para>
-
- <para>
- <informalexample>
- <screen>
- # sh MAKEDEV bpf0
- </screen>
- </informalexample>
- </para>
-
- <para>Por favor, mira la <ulink URL="../../handbook/kernelconfig-nodes.html">entrada
- correspondiente en el handbook</ulink> para m&aacute;s
- informaci&oacute;n sobre la creaci&oacute;n de dispositivos.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="ppp">
-<title>PPP</title>
-
- <qandaset>
- <qandaentry>
- <question id="userppp">
- <para>El ppp no funciona. &iquest;Qu&eacute; estoy haciendo mal?</para>
- </question>
-
- <answer>
- <para>Primero deber&iacute;as leer el
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">man de ppp</ulink> y
- la <ulink URL="../../handbook/ppp-and-slip.html#USERPPP">secci&oacute;n de
- PPP del handbook</ulink>. Activa los logs con el comando</para>
-
- <para>
- <literallayout>
- set log Phase Chat Connect Carrier lcp ipcp ccp command
- </literallayout>
- </para>
-
- <para>Este comando deber&iacute;a ser tecleado en el prompt del
- <emphasis remap=bf>ppp</emphasis> o incluirse en el archivo de
- configuraci&oacute;n <filename>/etc/ppp/ppp.conf</filename>
- (al inicio de la secci&oacute;n <emphasis remap=bf>default</emphasis> es el mejor lugar).
- Asegurate que el archivo
- url="http://www.FreeBSD.org/cgi/man.cgi?syslog.conf"
- name="/etc/syslog.conf"&gt; contiene las siguientes l&iacute;neas:</para>
-
- <para>
- <literallayout> !ppp
- *.* /var/log/ppp.log
- </literallayout>
- </para>
-
- <para>y que el archivo <filename>/var/log/ppp.log</filename> existe. Puedes
- encontrar mucha informaci&oacute;n sobre lo que est&aacute; pasando en las
- conexiones con el archivo de log.</para>
-
- <para>Si tu versi&oacute;n de ppp no entiende el comando "set log"
- deber&iacute;as bajarte la
- <ulink URL="http://www.FreeBSD.org/~brian/">&uacute;ltima versi&oacute;n</ulink>.
- Esta compilar&aacute; sin problemas en FreeBSD 2.1.5 y superiores.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ppp se bloquea al ejecutarlo</para>
- </question>
-
- <answer>
-
- <para>Esto ocurre normalmente por que no se puede resolver el nombre
- de la m&aacute;quina. La mejor manera de solucionar este problema
- es asegurarse que el sistema use en primer lugar el archivo
- <filename>/etc/hosts</filename> para hacer la resoluci&oacute;n de
- nombres. Para ello, basta con editar el archivo
- <filename>/etc/host.conf</filename> y poner la l&iacute;nea
- <emphasis remap=tt>hosts</emphasis> en primer lugar. A
- continuaci&oacute;n, simplemente hay que a&ntilde;adir una
- l&iacute;nea para la m&aacute;quina local en el archivo
- <filename>/etc/hosts</filename>. Si no existe una red local, modificar
- la l&iacute;nea <emphasis remap=tt>localhost</emphasis>:</para>
-
- <para>
- <literallayout>127.0.0.1 foo.bar.com foo localhost
- </literallayout>
- </para>
-
- <para>A&ntilde;adir otra l&iacute;nea para la m&aacute;quina local.
- Consultar las p&aacute;ginas man relevantes para m&aacute;s detalles.</para>
-
- <para>Ahora se deber&iacute;a poder ejecutar el siguiente mandato de
- forma satisfactoria <command>ping -c1 `hostname`</command>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>PPP no quiere marcar en modo -auto</para>
- </question>
-
- <answer>
- <para>Primero, aseg&uacute;rate de tener una ruta por defecto. Ejecutando
- el comando url="http://www.FreeBSD.org/cgi/man.cgi?netstat"&gt;
- name="netstat -rn"&gt; deber&iacute;as ver dos entradas como estas:</para>
-
- <para>
- <literallayout>
-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
- </literallayout>
- </para>
-
- <para>Esto es asumiendo que hayas usado las direcciones del manual,
- la p&aacute;gina man o del archivo de ejemplo ppp.conf.sample. Si no
- tienes una ruta por defecto, puede ser por que est&eacute;s usando una
- versi&oacute;n antigua de <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>
- que no entiende la palabra <acronym>HISADDR</acronym> en el archivo ppp.conf. Si
- tu versi&oacute;n de <emphasis remap=bf>ppp</emphasis> es de antes de FreeBSD 2.2.5,
- cambia la l&iacute;nea</para>
-
- <para>
- <literallayout> add 0 0 HISADDR
- </literallayout>
- </para>
-
- <para>por otra diciendo</para>
-
- <para>
- <literallayout> add 0 0 10.0.0.2
- </literallayout>
- </para>
-
- <para>Otra raz&oacute;n para la inexistencia de la ruta por defecto es que
- sin darte cuenta hayas creado un default router en el archivo
- /etc/rc.conf (anteriormente llamado <filename>/etc/sysconfig</filename>) y
- hayas omitido la l&iacute;nea</para>
-
- <para>
- <literallayout> delete ALL
- </literallayout>
- </para>
-
- <para>en el archivo <filename>ppp.conf</filename>. Si es este el caso vuelve a la
- secci&oacute;n
- <ulink URL="../../handbook/ppp-and-slip.html#USERPPP-FINAL.html">configuraci&oacute;n final del sistema</ulink>
- en el handbook.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; significa "No route to host"?</para>
- </question>
-
- <answer>
- <para>Este error se debe normalmente a la falta de la secci&oacute;n</para>
-
- <para>
- <literallayout>
- MYADDR:
- delete ALL
- add 0 0 HISADDR
- </literallayout>
- </para>
-
- <para>en el archivo <filename>/etc/ppp/ppp.linkup</filename>. Esto es solo
- necesario si tienes una direccion IP din&aacute;mica o no sabes la
- direcci&oacute;n de tu gateway. Si est&aacute;s usando el modo
- interactivo, puedes teclear lo siguiente despues de entrar en
- <emphasis remap=tt>packet mode</emphasis>:</para>
-
- <para>
- <literallayout>
- delete ALL
- add 0 0 HISADDR
- </literallayout>
- </para>
-
- <para>P&aacute;sate por la secci&oacute;n
- <ulink URL="../../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">PPP y direcciones IP din&aacute;micas</ulink>
- del handbook para m&aacute;s informaci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi conexi&oacute;n se corta pasados 3 minutos</para>
- </question>
-
- <answer>
- <para>El timeout de ppp por defecto es de 3 minutos. Se puede ajustar
- con la l&iacute;nea:</para>
-
- <para>
- <literallayout> set timeout NNN
- </literallayout>
- </para>
-
- <para>Donde <acronym>NNN</acronym> es el n&uacute;mero de segundos de inactividad antes
- de cerrar la conexi&oacute;n. Si <acronym>NNN</acronym> es 0, la conexi&oacute;n no
- se cerrar&aacute; nunca por timeout. Es posible poner este comando en
- el archivo <filename>ppp.conf</filename>, o teclearla en el prompt del modo
- interactivo. Tambi&eacute;n es posible ajustarla en cualquier momento mientras la
- conexi&oacute;n est&eacute; activa conectando al socket del servidor
- <emphasis remap=bf>ppp</emphasis> usando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?telnet">telnet</ulink>
- o <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?pppctl">pppctl</ulink>. Leete el man de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>
- para m&aacute;s detalles.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi conexi&oacute;n se corta en situaciones de carga</para>
- </question>
-
- <answer>
- <para>Si tienes la opci&oacute;n Link Quality Reporting (LQR) configurada
- es posible que demasiados paquetes LQR se pierdan entre tu
- m&aacute;quina y el remoto. PPP deduce que la l&iacute;nea es mala y
- corta la conexi&oacute;n. En versiones anteriores a la 2.2.5 de
- FreeBSD, LQR estaba activado por defecto. Ahora est&aacute; desactivado
- por defecto. LQR puede ser activado con la l&iacute;nea</para>
-
- <para>
- <literallayout> disable lqr
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi conexi&oacute;n se corta en periodos aleatorios</para>
- </question>
-
- <answer>
- <para>Algunas veces, en l&iacute;neas telef&oacute;nicas de baja calidad
- o con mucho ruido, o l&iacute;neas con la opci&oacute;n de llamada en
- espera activada, el m&oacute;dem corta la conexi&oacute;n por que
- piensa (err&oacute;neamente) que ha perdido la portadora.</para>
-
- <para>Hay una opci&oacute;n en muchos modems para determiar la tolerancia
- a p&eacute;rdidas temporales de portadora. En un USR Sportster por
- ejemplo, esta es medida por el registro S10 en d&eacute;cimas de
- segundo. Para hacer que tu m&oacute;dem sea m&aacute;s resistente,
- puedes a&ntilde;adir la siguiente secuencia "send-expect" a la cadena
- de llamada:</para>
-
- <para>
- <literallayout> set dial "...... ATS10=10 OK ......"
- </literallayout>
- </para>
-
- <para>Mira en el manual de tu m&oacute;dem para m&aacute;s detalles.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>No ocurre nada despu&eacute;s del mensaje Login OK</para>
- </question>
-
- <answer>
- <para>En versiones anteriores a FreeBSD 2.2.5, una vez estaba la
- conexi&oacute;n establecida,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> espera a
- que el remoto inicie la negociaci&oacute;n LCP
- (Line Control Protocol). Muchos proveedores de Internet no
- iniciar&aacute;n la negociaci&oacute;n esperando que sea el cliente el
- que lo haga. Para forzar al <emphasis remap=bf>ppp</emphasis> a iniciar el LCP, usa la
- siguiente l&iacute;nea:</para>
-
- <para>
- <literallayout> set openmode active
- </literallayout>
- </para>
-
- <para><emphasis remap=bf>Nota:</emphasis> Normalmente no hay problemas si las dos partes
- inician la negocioacion LCP, ya que el modo abierto (open mode)
- est&aacute; activo por defecto. De todas maneras, la siguiente
- secci&oacute;n explica cuando pueden haber problemas.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Sigo teniendo errores sobre el par&aacute;metro magic</para>
- </question>
-
- <answer>
- <para>Ocasionalmente, justo despu&eacute;s de la conexi&oacute;n, puedes
- ver mensajes en el log referentes a "magic number is the same".
- Algunas veces, estos mensajes son inofensivos, y otras veces
- uno de los dos extremos finaliza la conexi&oacute;n. Algunas
- implementaciones de ppp no pueden solucionar este problema, y,
- aunque parezca que la conexi&oacute;n est&aacute; establecida,
- ver&aacute;s repetidas peticiones y aceptaciones de
- configuraci&oacute;n en el archivo de log hasta que una de las dos
- partes cierra la conexi&oacute;n.</para>
-
- <para>Esto ocurre normalmente en servidores con disco lentos que
- tienen problemas para gestionar eficientemente los puertos
- serie. Tambi&eacute;n existen informes de problemas en conexiones
- mediante slip. La raz&oacute;n es que en el tiempo que tarda el
- servidor en salir del getty y ejecutar el ppp, el cliente
- manda los paquetes de inicio LCP. Al estar el ECHO todav&iacute;a
- activo en el puerto del servidor, el cliente ppp lo &uacute;nico que
- ve son sus propios paquetes "reflejados" por el servidor.</para>
-
- <para>Una parte de la negociaci&oacute;n LCP es establecer un n&uacute;mero
- m&aacute;gico para cada una de los dos extremos de las conexiones para
- que los "reflejos" puedan ser detectados. El protocolo dice que
- cuando el remoto intenta negociar el mismo "magic number", se debe
- enviar un NAK para seleccionar un nuevo "magic number". Durante el
- periodo de tiempo que el servidor tiene el ECHO activado en el
- puerto, el cliente ppp env&iacute;a paquetes LCP, ve que el mismo
- "magic" vuelve en el paquete reflejado y lo da como no v&aacute;lido
- (envia NAK).
- Este todav&iacute;a ve el paquete reflajado con NAK (lo que significa
- que el ppp debe cambiar su "magic"). Esto produce un enorme
- n&uacute;mero de cambios de "magic number" que son introducidos en el
- buffer tty del servidor. Tan pronto como el ppp arranca en el servidor,
- es bombardeado con cambios de "magic numbers" e inmediatamente decide
- que ya ha realizado el n&uacute;mero suficiente de negociaciones LCP y
- corta la conexi&oacute;n. Mientras tanto, el cliente, que ya no ve los
- paquetes reflejados, recibe sin problemas la desconexi&oacute;n del
- servidor y tambi&eacute;n cierra la conexi&oacute;n.</para>
-
- <para>Esto puede ser resuelto permitiendo que el remoto inicie la
- negociaci&oacute;n, poniendo la siguiente l&iacute;nea en el archivo
- ppp.conf:</para>
-
- <para>
- <literallayout> set openmode passive
- </literallayout>
- </para>
-
- <para>Esto indica al ppp que espere a que el servidor comience la
- negociaci&oacute;n LCP. Es posible que algunos servidores nunca inicien
- la negociaci&oacute;n. Si este es el caso, puedes hacer algo como:</para>
-
- <para>
- <literallayout> set openmode active 3
- </literallayout>
- </para>
-
- <para>Esto le indica al ppp que sea pasivo durante 3 segundos, y
- despues comience a enviar peticiones LCP. Si el remoto env&iacute;a
- peticiones durante este periodo, ppp responder&aacute; inmediatamente
- sin esperar los 3 segundos establecidos.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Las negociaciones LCP continuan hasta que se cierra la conexi&oacute;n</para>
- </question>
-
- <answer>
- <para>Existe actualmente un problema de implementaci&oacute;n en
- <emphasis remap=bf>ppp</emphasis> en la que no asocia las respuestas LCP, CCP
- &amp; IPCP con sus peticiones originales. Como resultado, si una implementaci&oacute;n
- <emphasis remap=bf>ppp</emphasis> es m&aacute;s lenta durante 6 segundos que la remota, la remota
- enviar&aacute; dos peticiones de configuraci&oacute;n LCP adicionales.
- Esto es fatal.</para>
-
- <para>Considera dos implementaciones, <emphasis remap=bf>A</emphasis> y
- <emphasis remap=bf>B</emphasis>. <emphasis remap=bf>A</emphasis> empieza
- a enviar peticiones LCP inmediatamente despu&eacute;s de conectar y
- <emphasis remap=bf>B</emphasis> tarda 7 segundos en arrancar. Cuando
- <emphasis remap=bf>B</emphasis> arranca, <emphasis remap=bf>A</emphasis> ha
- enviado 3 peticiones LCP. Estamos asumiendo que la l&iacute;nea tiene el
- ECHO desactivado, si no, veriamos los problemas de "magic number"
- descritos en el apartado anterior. <emphasis remap=bf>B</emphasis> env&iacute;a un REQ, y a
- continuaci&oacute;n env&iacute;a un ACK al primer REQ de <emphasis remap=bf>A</emphasis>. Esto
- resulta en que <emphasis remap=bf>A</emphasis> entra en modo <acronym>OPENED</acronym>
- y env&iacute;a un ACK (el primero) a <emphasis remap=bf>B</emphasis>. Mientras,
- <emphasis remap=bf>B</emphasis> devuelve dos ACKs m&aacute;s en respuesta a los dos REQs
- adicionales enviados por <emphasis remap=bf>A</emphasis> antes de que
- <emphasis remap=bf>B</emphasis> arrancase .<emphasis remap=bf>B</emphasis> recibe
- el primer ACK de <emphasis remap=bf>A</emphasis> y entra en modo
- <acronym>OPENED</acronym>. <emphasis remap=bf>A</emphasis> recibe el segundo ACK
- de <emphasis remap=bf>B</emphasis> y vuelve al estado
- <emphasis remap=bf>REQ-SENT</emphasis>, enviando otro (el cuarto) REQ. Entonces recibe el
- tercer ACK y entra en modo <acronym>OPENED</acronym>. Mientras,
- <emphasis remap=bf>B</emphasis> recibe el cuarto REQ de <emphasis remap=bf>A</emphasis>,
- produciendo que vuelva de nuevo al estado <emphasis remap=bf>ACK-SENT</emphasis> y
- enviando otro (el segundo) REQ y (cuarto) ACK. <emphasis remap=bf>A</emphasis>
- recibe el REQ, entra en modo <emphasis remap=bf>REQ-SENT</emphasis> y env&iacute;a otro REQ.
- Inmediatamente recibe el siguiente ACK y entra en <acronym>OPENED</acronym>.</para>
-
- <para>Esto pasa hasta que una de las partes piensa que ya ha realizado
- suficientes reintentos y corta la conexi&oacute;n.</para>
-
- <para>La mejor manera de evitar esto es configurar una de las partes
- de manera <emphasis remap=bf>pasiva</emphasis> - que es, hacer que una de las partes espere
- a que la otra comience la negociaci&oacute;n. Esto puede realizarse
- con el comando:</para>
-
- <para>
- <literallayout>
- set openmode passive
- </literallayout>
- </para>
-
- <para>Se debe tener cuidado con esta opci&oacute;n. Tambi&eacute;n se puede
- usar:</para>
-
- <para>
- <literallayout>
- set stopped N
- </literallayout>
- </para>
-
- <para>para limitar el n&uacute;mero de veces que <emphasis remap=bf>ppp</emphasis>
- espera a que el remoto comience la negociaci&oacute;n. Alternativamente, puedes user
- el comando:</para>
-
- <para>
- <literallayout>
- set openmode active N
- </literallayout>
- </para>
-
- <para>donde <emphasis remap=bf>N</emphasis> es el n&uacute;mero de segundos que
- espera antes de empezar la negociaci&oacute;n. Mira en el manual para m&aacute;s
- detalles.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ppp se bloquea al conectar</para>
- </question>
-
- <answer>
- <para>Antes de la versi&oacute;n 2.2.5 era posible que la conexi&oacute;n
- se corte nada m&aacute;s iniciarse debido a un problema en la
- negociaci&oacute;n de compresi&oacute;n Predictor1. Esto solo pasa si
- las dos partes intentan negociar con diferentes protocolos de control
- de compresi&oacute;n (CCP). Este problema ya est&aacute; corregido, pero
- si est&aacute;s usando una versi&oacute;n antigua de
- <emphasis remap=bf>ppp</emphasis>, el problema puede solucionarse
- con la l&iacute;nea</para>
-
- <para>
- <literallayout>
- disable pred1
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ppp se bloqua al abrir un shell de test</para>
- </question>
-
- <answer>
- <para>Cuando ejecutas el comando <emphasis remap=tt>shell</emphasis> o
- <emphasis remap=tt>!</emphasis>, <emphasis remap=bf>ppp</emphasis> ejecuta
- un shell (o si has pasado argumentos, <emphasis remap=bf>ppp</emphasis> ejecutar&aacute; esos
- argumentos). Ppp esperar&aacute; a que se complete el comando antes de
- continuar. Si intentas usar la conexi&oacute;n ppp mientras se ejecuta
- el comando, parecer&aacute; que la conexi&oacute;n se ha colgado. Esto
- es por que <emphasis remap=bf>ppp</emphasis> est&aacute; esperando a que se complete la
- ejecuci&oacute;n del comando.</para>
-
- <para>Si quieres ejecutar comandos como este, usa el comando
- <emphasis remap=tt>!bg</emphasis> en su lugar. Esto ejecutar&aacute; el comando
- en background, y ppp contin&uacute;a sin problemas con la conexi&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ppp sobre un cable null-modem no funciona</para>
- </question>
-
- <answer>
- <para>No hay manera que <emphasis remap=bf>ppp</emphasis> detecte
- autom&aacute;ticamente que una conexi&oacute;n directa se ha cortado. Es debido
- a las l&iacute;neas que se usan en un cable serie null-modem. Cuando usamos este tipo de
- conexi&oacute;n, LQR deber&iacute;a estar siempre activada con el
- comando</para>
-
- <para>
- <literallayout> enable lqr
- </literallayout>
- </para>
-
- <para>LQR es aceptado por defecto si es negociado por el remoto.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Por que llama sin motivo el ppp en modo -auto?</para>
- </question>
-
- <answer>
- <para>Si <emphasis remap=bf>ppp</emphasis> llama inesperadamente, debes determinar la causa, y
- poner filtros (dfilters) para prevenir esas llamadas.</para>
-
- <para>Para determinar la causa, usa la siguiente l&iacute;nea:</para>
-
- <para>
- <literallayout> set log +tcp/ip
- </literallayout>
- </para>
-
- <para>Esto guardara todo el tr&aacute;fico que pase a trav&eacute;s de la
- conexi&oacute;n.
- La pr&oacute;xima vez que se realice una llamada no deseada,
- podr&aacute;s ver la causa convenientemente guardada.</para>
-
- <para>Ahora puedes desactivar las llamadas producidas por esa causa.
- Usualmente, este tipo de problemas se debe a consultas de DNS. Para
- prevenir que las consultas de DNS puedan establecer conexiones usa
- la siguiente l&iacute;nea (esto no har&aacute; que los paquetes de DNS
- queden parados cuando la conexi&oacute;n est&aacute; establecida):</para>
-
- <para>
- <literallayout> set dfilter 1 deny udp src eq 53
- set dfilter 2 deny udp dst eq 53
- set dfilter 3 permit 0/0 0/0
- </literallayout>
- </para>
-
- <para>Esto no siempre es aconsejable, ya que puede afectar a la
- capacidad de realizar conexiones bajo demanda - muchos programas
- necesitan hacer una consulta al DNS antes de poder realizar
- cualquier operaci&oacute;n.</para>
-
- <para>En el caso del DNS, deber&iacute;as determinar que es lo que
- est&aacute; intentando realizar esas consultas de DNS. Muchas veces,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sendmail">sendmail</ulink>
- es el culpable. Debes asegurarte configurar el
- sendmail de manera que no realice ninguna consulta al DNS. Mira la
- secci&oacute;n <link linkend="ispmail">Configuracion de correo</link> para
- tener m&aacute;s detalles acerca de como crear una archivo propio de
- configuraci&oacute;n de sendmail. Tambi&eacute;n deber&iacute;as
- a&ntilde;adir la siguiente l&iacute;nea en tu archivo <filename>.mc</filename>:</para>
-
- <para>
- <literallayout> define(`confDELIVERY_MODE', `d')dnl
- </literallayout>
- </para>
-
- <para>Esto hara que sendmail encole todo el correo hasta que no se
- procese la cola (usualmente, sendmail es invocado con
- "-bd -q30m", indicandole que procese la cola cada 30 minutos) o
- hasta que se ejecuta el comando "sendmail -q" (por ejemplo, desde
- el archivo ppp.linup).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; significan estos errores CCP?</para>
- </question>
-
- <answer>
- <para>Sigo viendo los siguientes errores en el archivo de log:</para>
-
- <para>
- <literallayout> CCP: CcpSendConfigReq
- CCP: Received Terminate Ack (1) state = Req-Sent (6)
- </literallayout>
- </para>
-
- <para>Esto es porque ppp est&aacute; intentando negociar compresi&oacute;n
- Predictor1, y el remoto no quiere negociar ning&uacute;n tipo de
- compresi&oacute;n. Estos mensajes son sin importancia, pero si quieres
- eliminarlos, puedes desactivar la compresi&oacute;n Predictor1
- localmente:</para>
-
- <para>
- <literallayout> disable pred1
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>PPP se cuelga durante transferencia de archivos con errores I/OP</para>
- </question>
-
- <answer>
- <para>En la versi&oacute;n FreeBSD 2.2.2 y anteriores, hab&iacute;a un
- problema en el driver tun que no permit&iacute;a paquetes entrantes con
- un tama&ntilde;o mayor que el MTU del interface. La recepci&oacute;n de
- un paquete mayor que el MTU resulta en un error IO que es logueado
- v&iacute;a syslogd.</para>
-
- <para>La especificaci&oacute;n PPP dice que un MRU de 1500
- <emphasis remap=bf>siempre</emphasis>
- deber&iacute;a ser aceptada como m&iacute;nimo, a pesar de lo que se
- negocie mediante LCP, de todas maneras, es posible que hayas disminuido
- el MTU por debajo de 1500 y tu proveedor te est&eacute; enviando
- paquetes de 1500, haciendo que tu conexi&oacute;n se bloquee.</para>
-
- <para>El problema puede solucionarse haciendo que el tama&ntilde;o del
- MTU nunca sea inferior a 1500 bajo FreeBSD 2.2.2 y anteriores.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Por que ppp no loguea la velocidad de la conexi&oacute;n?</para>
- </question>
-
- <answer>
- <para>Para loguear todas las l&iacute;neas de "conversaci&oacute;n" de tu
- m&oacute;dem, debes activar la siguiente opci&oacute;n:</para>
-
- <para>
- <literallayout> set log +connect
- </literallayout>
- </para>
-
- <para>Esto har&aacute; que
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>
- loguee todo hasta la &uacute;ltima cadena "expect" pedida.</para>
-
- <para>Si quieres ver la velocidad de tu conexi&oacute;n y usas PAP o CHAP
- (y por lo tanto no tienes nada que "chatear" despu&eacute;s del CONNECT
- en el script de marcado), debes estar seguro de indicarle al ppp que
- espera la l&iacute;nea "CONNECT con algo como esto:</para>
-
- <para>
- <literallayout> set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"
- </literallayout>
- </para>
-
- <para>Aqu&iacute;, tenemos nuestro CONNECT, enviamos nada, y esperamos un
- salto de l&iacute;nea, forzando al <emphasis remap=bf>ppp</emphasis> que lea
- la respuesta del CONNECT.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ppp ignora el car&aacute;cter `\' en mi chat script</para>
- </question>
-
- <answer>
- <para>PPP lee cada l&iacute;nea de los archivos de configuraci&oacute;n
- para poder interpretar cadenas como <emphasis remap=tt>set phone "123 456 789"</emphasis>
- correctamente.
- Para especificar un car&aacute;cter ``"'', debes usar la contrabarra
- (``\'').</para>
-
- <para>Cuando el int&eacute;rprete lee cada argumento, reinterpreta el
- argumento para buscar alguna secuencia especial de escape como ``\P''
- o ``\T''.
- Como resultado de esta doble lectura, recuerda que has de usar el
- n&uacute;mero correcto de escapes (contrabarras).</para>
-
- <para>Si quieres enviar un caracter ``\'' a tu m&oacute;dem, necesitas
- hacer algo como:</para>
-
- <para>
- <literallayout> set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"
- </literallayout>
- </para>
-
- <para>resultando en la siguiente secuencia:</para>
-
- <para>
- <literallayout> ATZ
- OK
- AT\X
- OK
- </literallayout>
- </para>
-
- <para>o</para>
-
- <para>
- <literallayout> set phone 1234567
- set dial "\"\" ATZ OK ATDT\\T"
- </literallayout>
- </para>
-
- <para>resultando en la siguiente secuencia:</para>
-
- <para>
- <literallayout> ATZ
- OK
- ATDT1234567
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Ppp produce un seg-fault, pero no veo el archivo
- <filename>ppp.core</filename></para>
- </question>
-
- <answer>
- <para>Ppp (o cualquier otro programa de este tipo), nunca deber&iacute;an
- hacer un core dump. Por que ppp funciona con un id de usuario 0,
- el sistema operativo no escribir&aacute; la imagen del core en disco.
- Si ppp termina con errores de "segmentation violation" o cualquier
- otra se&ntilde;al que normalmente causa un core dumped, y quieres poder
- hacer un debug de ese core, aseg&uacute;rate de usar la &uacute;ltima
- versi&oacute;n de ppp, y haz lo siguiente:</para>
-
- <para>
- <literallayout> $ tar xfz ppp-*.src.tar.gz
- $ cd ppp*/ppp
- $ echo STRIP= &gt;&gt;Makefile
- $ echo CFLAGS+=-g &gt;&gt;Makefile
- $ make clean all
- $ su
- # make install
- # chmod 555 /usr/sbin/ppp
- </literallayout>
- </para>
-
- <para>Ahora tendr&aacute;s instalada una versi&oacute;n "debuggable" de
- ppp. Tendr&aacute;s que ser root para poder ejecutar ppp ya que todos
- sus privilegios han sido revocados. Cuando arranques ppp, acuerdate del
- directorio en el que te encuentras.</para>
-
- <para>Ahora, cuando ppp recibe una violaci&oacute;n de segmentaci&oacute;n
- , crear&aacute; un archivo core llamado ppp.core. A continuaci&oacute;n
- , deber&iacute;as hacer lo siguiente:</para>
-
- <para>
- <literallayout> $ su
- # gdb /usr/sbin/ppp ppp.core
- (gdb) bt
- .....
- (gdb) f 0
- .....
- (gdb) i args
- .....
- (gdb) l
- .....
- </literallayout>
- </para>
-
- <para>Toda esta informaci&oacute;n puede hacer posible diagnosticar el
- problema. Si est&aacute;s familiarizado con gdb, puedes encontrar otras
- pistas como que caus&oacute; el dump y las direcciones y valores de las
- variables m&aacute;s relevantes.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>El proceso que fuerza una llamada en modo auto nunca funciona</para>
- </question>
-
- <answer>
- <para>Este es un problema conocido cuando <emphasis remap=bf>ppp</emphasis>
- est&aacute; configurado para negociar una IP din&aacute;mica local con el
- remoto. Este problema ha sido solucionado en la &uacute;ltima versi&oacute;n -
- busca en el man la palabra <emphasis remap=bf>iface</emphasis>.</para>
-
- <para>El problema era que cuando el programa inicial llama a
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?connect">connect(2)</ulink>,
- el IP del interface tun es asignado al punto
- final del socket. El kernel crea el primer paquete saliente y
- establece la conexi&oacute;n. Si, como resultado de la
- asignaci&oacute;n din&aacute;mica de IP, la direcci&oacute;n del
- interface es cambiada, el punto final del socket original ser&aacute;
- invalido. Los siguientes paquetes enviados al remoto normalmente
- ser&aacute;n descartados. Aun si no lo son, cualquier respuesta no
- ser&aacute; enrutada hacia la m&aacute;quina de origen por que la
- direcci&oacute;n IP de la m&aacute;quina de origen ha cambiado.</para>
-
- <para>Hay varias maneras te&oacute;ricas de solucionar este problema. Lo
- mejor ser&iacute;a que el remoto reasignase la misma IP si fuese
- posible <emphasis remap=tt>:-)</emphasis> La versi&oacute;n actual de
- <emphasis remap=bf>ppp</emphasis> hace esto,
- pero otras muchas implementaciones no.</para>
-
- <para>El m&eacute;todo m&aacute;s sencillo desde nuestra parte,
- ser&iacute;a no cambiar nunca la IP del interface tun, pero por el
- contrario, cambiar todos los paquetes salientes de manera que la ip de
- origen es cambiada del IP del interface a la IP negociada,
- instantaneamente.
- Esto es, esencialmente, lo que hacen
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">libalias(3)</ulink>
- y el par&aacute;metro <option>-alias</option> de ppp.</para>
-
- <para>Otra alternativa (y probablemente la m&aacute;s eficaz) es implementar
- una llamada al sistema que cambie todos los sockets de una IP a
- otra. <emphasis remap=bf>Ppp</emphasis> deber&iacute;a usar esta llamada para modificar los
- sockets de todos los programas existentes cuando una nueva
- direcci&oacute;n IP es negociada. La misma llamada de sistema
- podr&iacute;a ser usada para clientes dhcp cuando son forzados
- a rehacer sus sockets.</para>
-
- <para>Una tercera opci&oacute;n es permitir que un interface se active sin
- IP. Los paquetes salientes tendr&iacute;an un IP de 255.255.255.255
- hasta que el primer SIOCAIFADDR ioctl este hecho. Esto
- permitir&iacute;a que ppp cambiase el IP de origen, pero solo si el
- socket es 255.255.255.255 y solo el IP y el checksum necesitan cambiar. Esto, de
- todas maneras, requiere tocar el kernel para que puede enviar
- paquetes incorrectos a un interface mal configurado.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; muchos juegos no funcionan con el
- par&aacute;metro -alias?</para>
- </question>
-
- <answer>
- <para>La raz&oacute;n por la que muchos de los juegos no funcionan es
- por que la m&aacute;quina externa intentar&aacute; abrir una
- conexi&oacute;n o enviar paquetes UDP (no solicitados) a la
- m&aacute;quina interna. El software "alias" no sabe que esos paquetes
- debr&iacute;n enviarse a la m&aacute;quina interna.</para>
-
- <para>Para que las cosas funcionen, aseg&uacute;rate que la &uacute;nica
- cosa que est&aacute; funcionando es el software con el que tienes
- problemas, entonces ejecuta tcpdump en el interface tun del
- gateway o ejecuta el log tcp/ip del ppp ("set log +tcp/ip" en el
- gateway.</para>
-
- <para>Cuando arrancas el software que no funciona, deber&iacute;s ver
- paquetes que pasan a trav&eacute;s del gateway. Cuando algo
- vuelve del exterior, ser&aacute; rechazado (ese es el problema).
- Apunta el n&uacute;mero de puerto de esos paquetes y cierra el
- software que no funciona. Haz esto varias veces para comprobar si
- el n&uacute;mero de puerto se repite. Si es as&iacute;, la siguiente
- l&iacute;nea en el archivo de configuraci&oacute;n del ppp
- /etc/ppp/ppp.conf har&aacute; que las cosas funcionen:</para>
-
- <para>
- <literallayout> alias port proto internalmachine:port port
- </literallayout>
- </para>
-
- <para>donde "proto" puede ser "tcp" o "udp", "internalmachine" es la
- m&aacute;quina a la que quieres que los paquetes sean enviados y
- "port" es el n&uacute;mero de puerto de destino de los paquetes.</para>
-
- <para>No podr&aacute;s usar ese software en otras m&aacute;quinas sin
- modificar el comando anterior, y ejecutar el software
- simultaneamente en dos m&aacute;quinas internas no ser&aacute;
- posible - despu&eacute;s de todo, el mundo exterior est&aacute;
- viendo a toda tu red como una sola m&aacute;quina.</para>
-
- <para>Si los n&uacute;meros de puertos no se repiten, hay tres opciones
- m&aacute;s:</para>
-
- <para><emphasis remap=bf>1)</emphasis> Desarrollar el soporte en libalias. Ejemplos de estos
- "casos especiales" los puedes encontrar en
- /usr/src/lib/libalias/alias_*.c (alias_ftp.c es un bu&eacute;n
- prototipo). Esto usualmente supone leer ciertos paquetes salientes
- conocidos, identificando la instrucci&oacute;n que le indica a la
- m&aacute;quina exterior que inicie una conexi&oacute;n con la
- m&aacute;quina interna en un puerto espec&iacute;fico (aleatorio)
- y configurar un "ruta" en la tabla de alias para que los paquetes
- siguientes sepan donde ir.</para>
-
- <para>Esta es la soluci&oacute;n m&aacute;s dif&iacute;cil, pero es la
- mejor y har&aacute; que el software funcione con m&uacute;ltiples
- m&aacute;quinas.</para>
-
- <para><emphasis remap=bf>2)</emphasis> Usar un proxy. La aplicaci&oacute;n debe soportar
- socks5 por ejemplo, o (como en el caso del "cvsup") deber&iacute;a
- tener una opci&oacute;n "pasiva" que evita que el remoto intente abrir
- conexiones con la maquina local.</para>
-
- <para><emphasis remap=bf>3)</emphasis> Redireccionar todo el tr&aacute;fico
- a la m&aacute;quina interna usando "alias addr". Esta es la soluci&oacute;n m&aacute;s
- sencilla.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Ha hecho alguien una lista de puertos &uacute;tiles?</para>
- </question>
-
- <answer>
- <para>Todav&iacute;a no, pero se podr&iacute;a hacer, si hay
- inter&eacute;s. En cada ejemplo, <emphasis remap=tt>internal</emphasis> debe ser
- reemplazado por la direcci&oacute;n IP de la m&aacute;quina que
- va a estar jugando.</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><emphasis remap=bf>Quake</emphasis>
- </para>
-
- <para><emphasis remap=tt>alias port udp internal:6112 6112</emphasis></para>
-
- <para>Alternativamente, quiz&aacute;s est&eacute;s interesado en
- mirar en el
- <ulink URL="http://www.battle.net/support/proxy/">www.battle.net</ulink>soporte
- de Quake a trav&eacute;s de proxy"&gt;.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><emphasis remap=bf>Quake 2</emphasis></para>
-
- <para><emphasis remap=tt>alias port udp internal:27901 27910</emphasis></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><emphasis remap=bf>Red Alert</emphasis></para>
-
- <para><emphasis remap=tt>alias port udp internal:8675 8675</emphasis></para>
-
- <para><emphasis remap=tt>alias port udp internal:5009 5009</emphasis></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><emphasis remap=bf>Half Life</emphasis></para>
-
- <para><emphasis remap=tt>alias port udp internal:27005 27015</emphasis></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><emphasis remap=bf>PCAnywhere 8.0</emphasis></para>
-
- <para><emphasis remap=tt>alias port udp internal:5632 5632</emphasis></para>
-
- <para><emphasis remap=tt>alias port tcp internal:5631 5631</emphasis></para>
- </listitem>
- </itemizedlist>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; son los errores FCS?</para>
- </question>
-
- <answer>
- <para>FCS significa <emphasis remap=bf>F</emphasis>rame
- <emphasis remap=bf>C</emphasis>heck <emphasis remap=bf>S</emphasis>equence.
- Cada paquete ppp tiene un checksum a&ntilde;adido para asegurar que los datos
- que se reciben son los datos que han sido enviados. Si el FCS de un
- paquete entrante es incorrecto, el paquete es rechazado y se
- incremente el contador HDLC FCS. Los valores de error HDLC se
- pueden visualizar usando el comando <emphasis remap=tt>show hdlc</emphasis>.</para>
-
- <para>Si tu conexi&oacute;n es mala (o si tu driver serie est&aacute;
- rechazando paquetes), ver&aacute;s errores FCS ocasionales. En general
- no tienes porque preocuparte de ellos. Si tienes un m&oacute;dem
- externo, aseg&uacute;rate que el cable est&aacute; correctamente
- aislado de interferencias - esto deber&iacute;a erradicar el problema.</para>
-
- <para>Si tu conexi&oacute;n se corta tan pronto como has conectado y ves
- gran cantidad de errores FCS, puede ser por que ti conexi&oacute;n no
- es de 8 bits. Aseg&uacute;rate de que tu m&oacute;dem no est&aacute;
- usando control de flujo (XON/XOFF) por software. Si tu conexi&oacute;n
- de datos <emphasis remap=bf>debe</emphasis> usar control de flujo por software, usa el
- comando <literal>set accmap 0x000a0000</literal> para indicar al
- <emphasis remap=bf>ppp</emphasis> que "escape" los car&aacute;cteres ^Q y ^S.</para>
-
- <para>Otra raz&oacute;n para ver muchos errores FCS puede ser que el
- remoto haya dejado de "hablar" <acronym>PPP</acronym>. Deber&iacute;s activar el
- log as&iacute;ncrono para determinar si los datos entrantes son de
- un login o un prompt de shell. Si tienes un prompt de shell en el
- extremo de la conexi&oacute;n, es posible terminar el ppp sin
- cortar la conexi&oacute;n usando el comando <emphasis remap=tt>close clp</emphasis> (usando
- el comando <emphasis remap=tt>term</emphasis> podr&aacute;s conectar de nuevo con el shell
- de la m&aacute;quina remota.</para>
-
- <para>Si no hay nada en el log que indique por que se ha terminado la
- conexi&oacute;n, deber&iacute;s preguntar al administrador del
- sistema remoto porqu&eacute; ha terminado la sesi&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Nada de esto me ayuda - Estoy desesperado !</para>
- </question>
-
- <answer>
- <para>Si todo falla, env&iacute;a toda la informaci&oacute;n que puedas,
- incluyendo los archivos de configuraci&oacute;n, como arrancas el ppp,
- las partes relevantes del archivo de log y la salida del comando
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">netstat -rn</ulink>
- (antes y despues de la conexi&oacute;n) a la lista de distribuci&oacute;n
- <ulink URL="mailto:FreeBSD-questions@FreeBSD.org">FreeBSD-questions@FreeBSD.org</ulink>,
- a la lista de
- <ulink URL="mailto:FreeBSD@es.FreeBSD.org">FreeBSD en castellano</ulink> o
- al grupo de news
- <ulink URL="news:comp.unix.bsd.FreeBSD.misc">comp.unix.bsd.FreeBSD.misc</ulink>
- y alguien te ayudar&aacute; a solucionar los problemas.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="serial">
-<title>Comunicaciones serie</title>
-
- <para>Esta secci&oacute;n responde las preguntas m&aacute;s frecuentes sobre las
- comunicaciones serie con FreeBSD. PPP y SLIP se tratan en la
- secci&oacute;n <link linkend="networking">Networking</link>.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo se si FreeBSD ha encontrado mis puertos serie?</para>
- </question>
-
- <answer>
- <para>Cuando el kernel de FreeBSD arranca, testear&aacute; los puertos serie
- del sistema que est&eacute;n configurados en el kernel. Puedes estar
- atento a los mensajes de la consola o ejecutar el comando:</para>
-
- <para>
- <literallayout> dmesg | grep sio
- </literallayout>
- </para>
-
- <para>una vez el sistema est&eacute; en funcionamiento.</para>
-
- <para>Aqu&iacute; tienes un ejemplo del resultado de la ejecuci&oacute;n
- del comando:</para>
-
- <para>
- <literallayout> sio0 at 0x3f8-0x3ff irq 4 on isa
- sio0: type 16550A
- sio1 at 0x2f8-0x2ff irq 3 on isa
- sio1: type 16550A
- </literallayout>
- </para>
-
- <para>Esto muestra dos puertos serie. El primero en la irq 4 usando
- la direcci&oacute;n <literal>0x3f8</literal>, y tiene una UART 16550A. El segundo usa
- el mismo tipo de chip pero est&aacute; en la irq 3 y usa la
- direcci&oacute;n <literal>0x2f8</literal>. Los m&oacute;dems internos son tratados
- como puertos serie, exceptuando que siempre tienen un m&oacute;dem
- adjuntado al puerto.</para>
-
- <para>El kernel <acronym>GENERIC</acronym> incluye soporte para dos puertos serie
- usando la misma irq y direcci&oacute;n que en el ejemplo anterior. Si
- estas opciones no son correctar para tu sistema, o si has a&ntilde;adido
- m&oacute;dems internos o tienes m&aacute;s puertos serie de los que
- est&aacute;n configurados en el kernel, solo tienes que reconfigurar el
- kernel. Mira en la secci&oacute;n
- <link linkend="make-kernel">about building a kernel</link> para m&aacute;s
- detalles.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo se si FreeBSD ha encontrado mi m&oacute;dem interno?</para>
- </question>
-
- <answer>
- <para>Respondido en la secci&oacute;n anterior.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>He actualizado a 2.0.5 y mi <emphasis remap=tt>tty0X</emphasis> no
- existen!</para>
- </question>
-
- <answer>
- <para>No te preocupes, han sido integrados en los dispositivos
- <emphasis remap=tt>ttydX</emphasis>. Tendr&aacute;s que modificar algunos
- archivos antiguos de configuraci&oacute;n.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo accedo a los puertos serie en FreeBSD?</para>
- </question>
-
- <answer>
- <para>El tercer puerto serie,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio2</ulink> (conocido
- como COM3 en DOS), est&aacute; en <filename>/dev/cuaa2</filename> para dispositivos de
- salida (dial-out) y en <filename>/dev/ttyd2</filename> para dispositivos de
- entrada (dial-in). Cu&aacute;l es la diferencia entre estas dos clases de
- dispositivos?.</para>
-
- <para>Usas los <emphasis remap=tt>ttydX</emphasis> para los entrantes.
- Al abrir <filename>/dev/ttydX</filename>
- en "blocking mode", un proceso esperar&aacute; para que el dispositivo
- <emphasis remap=tt>cuaaX</emphasis> correspondiente se vuelva inactivo.
- Cuando abres un dispositivo <emphasis remap=tt>cuaaX</emphasis>, se asegura
- de que el puerto serie no est&aacute; en uso por un dispositivo
- <emphasis remap=tt>ttydX</emphasis>. Si el puerto est&aacute; disponible,
- se lo "roba" al dispositivo <emphasis remap=tt>ttydX</emphasis>. Al mismo tiempo,
- el dispositivo <emphasis remap=tt>cuaaXX</emphasis> no se preocupa de la
- detecci&oacute;n de portadora. Con este
- esquema, y un m&oacute;dem en respuesta autom&aacute;tica, puedes
- recibir usuarios remotos y puedes hacer conexiones externas con el mismo
- m&oacute;dem, mientras el sistema se preocupa de evitar los posible
- conflictos.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo activo el soporte de tarjetas serie multipuerto?</para>
- </question>
-
- <answer>
- <para>Otra vez, en la secci&oacute;n de configuraci&oacute;n del kernel
- tienes la informaci&oacute;n. Para una tarjeta multipuerto, pon una
- l&iacute;nea <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio</ulink>
- para cada puerto serie de la tarjeta en el archivo de
- configuraci&oacute;n del kernel. Especifica la irq y vector solo en una
- de las l&iacute;neas.
- Todos los puertos de la tarjeta compartir&aacute;n la misma irq. Por
- consistencia, usa el &uacute;ltimo puerto serie para especificar la irq.
- De la misma manera, especifica la opci&oacute;n <symbol>COM_MULTIPORT</symbol>.</para>
-
- <para>El siguiente ejemplo es para una tarjeta AST 4-port en la irq 7:</para>
-
- <para>
- <literallayout> 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
- </literallayout>
- </para>
-
- <para>Los flags indican que el puerto master tiene un n&uacute;mero menor
- de 7 (<literal>0x700</literal>), los diagn&oacute;sticos est&aacute;n activados durante
- el testeo (<literal>0x080</literal>), y los puertos comparten una irq
- (<literal>0x001</literal>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puede manejar FreeBSD tarjetas multipuerto compartiendo irq?</para>
- </question>
-
- <answer>
- <para>Todav&iacute;a no. Tendr&aacute;s que usar una irq diferente para cada
- tarjeta.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo cambiar los par&aacute;metros serie por defecto para
- un puerto?</para>
- </question>
-
- <answer>
- <para>El dispositivo <emphasis remap=tt>ttydX</emphasis> (o
- <emphasis remap=tt>cuaaX</emphasis>) es el que querr&aacute;s abrir
- para tus aplicaciones. Cuando un proceso abre el dispositivo,
- tendr&aacute; una serie de configuraciones I/O por defecto. Puedes ver
- estas configuraciones con el comando:</para>
-
- <para>
- <literallayout> stty -a -f /dev/ttyd1
- </literallayout>
- </para>
-
- <para>Cuando le cambias la configuraci&oacute;n a este dispositivo, este cambio
- se mantiene hasta que el dispositivo se cierra. Cuando se reabre,
- vuelve a la configuraci&oacute;n por defecto. Para hacer cambios sobre la
- configuraci&oacute;n por defecto, puedes abrir y ajustar las opciones del
- "estado inicial" del dispositivo. Por ejemplo, para poner el
- dispositivo tty5 en modo <acronym>CLOCAL</acronym>, 8 bits, y contro del flujo
- <filename>XON/XOFF</filename>, haz</para>
-
- <para>
- <literallayout> stty -f /dev/ttyid5 clocal cs8 ixon ixoff
- </literallayout>
- </para>
-
- <para>Un buen lugar para hacer esto es en <filename>/etc/rc.serial</filename>. Ahora,
- una aplicaci&oacute;n tendr&aacute; esta configuraci&oacute;n por
- defecto cuando abra el puerto <emphasis remap=tt>ttyd5</emphasis>.</para>
-
- <para>Tambi&eacute;n puedes prevenir o limitar ciertos cambios que pretenda
- hacer una aplicaci&oacute;n. Para ello, ajusta el "lock state" del
- dispostivo. Por ejemplo, para bloquear la velocidad del puerto
- <emphasis remap=tt>ttyd5</emphasis> a 57600 bps, haz:</para>
-
- <para>
- <literallayout> stty -f /dev/ttyld5 57600
- </literallayout>
- </para>
-
- <para>Ahora, una aplicaci&oacute;n que abre <emphasis remap=tt>ttyd5</emphasis>
- e intenta cambiar la velocidad del puerto no podr&aacute; hacerlo.</para>
-
- <para>Naturalmente, deber&iacute;as hacer que el estado inicial y el estado
- de bloqueo sean solo de escritura para el usuario <emphasis remap=tt>root</emphasis>.
- El script
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink>
- <acronym>NO</acronym> hace esto cuando crea el dispositivo.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo activar logins de entrada en mi m&oacute;dem?</para>
- </question>
-
- <answer>
- <para>Quieres hacerte proveedor de Internet, eh?. Primero,
- necesitar&aacute;s uno o m&aacute;s m&oacute;dems que puedan responder
- autom&aacute;ticamente. Tu m&oacute;dem necesitar&aacute; activar el
- carrier-detect s&oacute;lo cuando detecte una portadora y no tenerla
- activada continuamente. Necesitar&aacute; cortar la comunicaci&oacute;n
- y resetearse &eacute;l mismo cuando la l&iacute;nea <acronym>DTR</acronym> pase de on
- a off.
- Probablemente usar&iacute;a <filename>RTS/CTS</filename> para el control de flujo.
- Finalmente, debe usar una velocidad constante entre el computador y
- &eacute;l mismo, pero deber&iacute;a negociar la velocidad entre
- &eacute;l mismo y el m&oacute;dem remoto.</para>
-
- <para>Para muchos m&oacute;dems compatibles Hayes, este comando
- crear&aacute; estas configuraciones y las grabar&aacute; en la memoria no
- vol&aacute;til:</para>
-
- <para>
- <literallayout> AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W
- </literallayout>
- </para>
-
- <para>Mira la secci&oacute;n <link linkend="direct-at">enviar comandos AT</link>
- para saber como enviar estas configuraciones al m&oacute;dem sin
- necesidad de un programa terminal de DOS.</para>
-
- <para>A continuaci&oacute;n, a&ntilde;ade una l&iacute;nea en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>
- para el m&oacute;dem. Este archivo lista todos los puertos en los que el
- sistema operativo esperar&aacute; los logins. La l&iacute;nea
- ser&iacute;a como esta:</para>
-
- <para>
- <literallayout> ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
- </literallayout>
- </para>
-
- <para>Esta l&iacute;nea indica que el segundo puerto serie
- <filename>/dev/ttyd1</filename> tiene un m&oacute;dem conectado, la velocidad es de
- 57600 bps y sin paridad (<emphasis remap=tt>std.57600</emphasis>. El tipo de
- terminal para este puerto es "dialup".
- El puerto est&aacute; "on" y es inseguro (lo que significa que los logins
- como root no son permitidos).</para>
-
- <para>Muchos usuarios, ponen un sus archivos .profile o .login un
- prompt para el tipo de terminal. El ejemplo muestra el puerto como
- inseguro. Para ser root en ese puerto, hacer el login como un usuario
- normal, y ejecutar el comando su. Si en lugar de inseguro, el terminal
- es seguro (secure), puedes hacer login como root directamente.</para>
-
- <para>Despues de modificar el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>,
- necesitas lanzar una se&ntilde;al <acronym>HUP</acronym> al proceso
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?init">init</ulink>:</para>
-
- <para>
- <literallayout> kill -HUP 1
- </literallayout>
- </para>
-
- <para>Esto fuerza al proceso init a releer el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>.
- El proceso init arrancar&aacute; los procesos getty en todos los puertos
- configurados como "on". Puedes ver si los logins est&aacute;n disponibles
- en los puertos tecleando:</para>
-
- <para>
- <literallayout> ps -ax | grep '[t]tyd1'
- </literallayout>
- </para>
-
- <para>deber&iacute;as ver algo como:</para>
-
- <para>
- <literallayout> 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo conectar un dumb terminal a un FreeBSD?</para>
- </question>
-
- <answer>
- <para>Si est&aacute;s usando otro computador como terminal en tu sistema
- FreeBSD, usa un cable null m&oacute;dem entre los dos puertos serie. Si
- ya est&aacute;s usando un terminal, mira en las instrucciones del mismo.</para>
-
- <para>A continuaci&oacute;n, modifica el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>
- Por ejemplo, si est&aacute;s instalando un terminal WYSE-50 en el quinto
- puerto serie, usa una l&iacute;nea como esta:</para>
-
- <para>
- <literallayout> ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
- </literallayout>
- </para>
-
- <para>Este ejemplo muestra que el puerto <filename>/dev/ttyd4</filename> tiene un
- terminal Wyse50 conectado a 38400 bps sin paridad y los logins de
- root son permitidos.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; no puedo ejecutar <emphasis remap=tt>tip</emphasis> o
- <emphasis remap=tt>cu</emphasis>?</para>
- </question>
-
- <answer>
- <para>En tu sistema, los programas
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> y
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cu">cu</ulink> son probablemente
- ejecutables solo por <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?uucp">uucp</ulink>
- y el grupo <emphasis remap=tt>dialer</emphasis>. Puedes usar el grupo
- <emphasis remap=tt>dialer</emphasis>
- para controlar quien tiene acceso al m&oacute;dem o sistemas remotos.
- S&oacute;lo tienes que a&ntilde;adirte tu mismo al grupo dialer.</para>
-
- <para>Alternativamente, puedes dejar que todos los usuarios de tu sistema
- ejecuten <emphasis remap=tt>tip</emphasis> y
- <emphasis remap=tt>cu</emphasis> tecleando:</para>
-
- <para>
- <literallayout> # chmod 4511 /usr/bin/cu
- # chmod 4511 /usr/bin/tip
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Mi m&oacute;dem hayes no est&aacute; soportado. &iquest;Que puedo hacer?</para>
- </question>
-
- <answer>
- <para>Actualmente, el man de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> est&aacute;
- anticuado. Hay un dialer Hayes gen&eacute;rico. Solo usa
- ``<literal>at=hayes</literal>'' en tu archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>.</para>
-
- <para>El driver Hayes no es tan desarrollado como para reconocer algunas
- de las caracter&iacute;sticas avanzadas de los m&oacute;dems modernos,
- mensajes como <acronym>BUSY</acronym>, <emphasis remap=tt>NO DIALTONE</emphasis> o
- <emphasis remap=tt>CONNECT 115200</emphasis> lo pueden confundir.
- Deber&iacute;as anular estos mensajes cuando uses
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> (utilizando
- la cadena <emphasis remap=tt>ATX0&amp;W</emphasis>).</para>
-
- <para>Tambi&eacute;n, el timeout de llamada para <emphasis remap=tt>tip</emphasis>
- est&aacute; en 60 segundos. Tu m&oacute;dem deber&iacute;a usar algo menor, o tip puede
- pensar que hay un problema de comunicaci&oacute;n. Intenta con
- <literal>ATS7=45&amp;W</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="direct-at">
- <para>&iquest;C&oacute;mo puedo introducir estos comandos AT?</para>
- </question>
-
- <answer>
- <para>Haz lo que se llama una entrada <emphasis remap=tt>directa</emphasis> en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>.
- Por ejemplo, si tu m&oacute;dem est&aacute;
- conectado al primer puerto serie, <filename>/dev/cuaa0</filename>, escribe la
- siguiente l&iacute;nea:</para>
-
- <para>
- <literallayout> cuaa0:dv=/dev/cuaa0:br#19200:pa=none
- </literallayout>
- </para>
-
- <para>Usa la velocidad m&aacute;s alta que soporte tu m&oacute;dem en la
- secci&oacute;n br.
- A continuaci&oacute;n teclea
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip cuaa0</ulink>
- y estar&aacute;s conectado al m&oacute;dem.</para>
-
- <para>Si no existe el dispositivo <filename>/dev/cuaa0</filename> en tu sistema
- , teclea lo siguiente:</para>
-
- <para>
- <literallayout> # cd /dev
- # ./MAKEDEV cuaa0
- </literallayout>
- </para>
-
- <para>O usa el comando cu como root con los siguientes par&aacute;metros:</para>
-
- <para>
- <literallayout> # cu -l``line'' -s``speed''
- </literallayout>
- </para>
-
- <para>con line siendo el puerto serie (por ejemplo <filename>/dev/cuaa0</filename>&gt;)
- y speed siendo la velocidad (por ejemplo <emphasis remap=tt>57600</emphasis>. Cuando
- termines de entrar los comandos AT, pulsa la tecla <emphasis remap=tt>.</emphasis> para
- salir.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>El s&iacute;mbolo <emphasis remap=tt>@</emphasis> no funciona correctamente!</para>
- </question>
-
- <answer>
- <para>El s&iacute;mbolo <emphasis remap=tt>@</emphasis> en la opci&oacute;n de
- n&uacute;meros de tel&eacute;fono indica a tip que busque en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?phones(5)">phone(5)</ulink> un
- n&uacute;mero de tel&eacute;fono determinado. Pero el s&iacute;mbolo
- <email>@</email> es tambi&eacute;n un car&aacute;cter especial en otros archivos y
- opciones como <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>.
- Pon una contrabarra junto al car&aacute;cter:</para>
-
- <para>
- <literallayout> pn=\@
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo llamar desde la l&iacute;nea de comandos?</para>
- </question>
-
- <answer>
- <para>Pon lo que se llama una entrada <emphasis remap=tt>gen&eacute;rica</emphasis>
- en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>.
- Por ejemplo:</para>
-
- <para>
- <literallayout> 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:
- </literallayout>
- </para>
-
- <para>Entonces puedes hacer cosas como <command>tip -115200 5551234</command>. Si
- prefieres usar <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cu">cu</ulink>
- antes que <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>,
- usa una entrada gen&eacute;rica de cu:</para>
-
- <para>
- <literallayout> cu115200|Use cu to dial any number at 115200bps:\
- :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
- </literallayout>
- </para>
-
- <para>y teclea ``<command>cu 5551234 -s 115200</command>''.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Tengo que teclear la velocidad cada vez que hago esto?</para>
- </question>
-
- <answer>
- <para>Pon una entrada para <emphasis remap=tt>tip1200</emphasis> o
- <emphasis remap=tt>cu1200</emphasis>, pero puedes usar
- la velocidad que mejor se amolde a tus necesidades.
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> piensa que
- una buena velocidad por defecto es 1200 bps ya que busca una entrada
- <emphasis remap=tt>tip1200</emphasis>. No tienes por que usar 1200 bps.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Accedo a diferentes hosts a trav&eacute;s de un servidor de terminales.</para>
- </question>
-
- <answer>
- <para>En lugar de esperar a que est&eacute;s conectado y teclear
- <emphasis remap=tt>CONNECT &lt;host&gt;</emphasis> cada vez, usa la
- opci&oacute;n <emphasis remap=tt>cm</emphasis> de tip.
- Por ejemplo, estas entradas en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>:</para>
-
- <para>
- <literallayout> 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/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
- </literallayout>
- </para>
-
- <para>Esto har&aacute; que puedas teclear <emphasis remap=tt>tip pain</emphasis> o
- <emphasis remap=tt>tip muffin</emphasis>
- para conectarte a las m&aacute;quinas pain o muffin.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puede tip intentar m&aacute;s de una l&iacute;nea para cada lugar?</para>
- </question>
-
- <answer>
- <para>Este es un problema habitual en universidades con diferentes
- l&iacute;neas de m&oacute;dem y unos cientos de usuarios intentado
- usarlas...</para>
-
- <para>Haz una entrada para tu universidad en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>
- y usa <emphasis remap=tt><\@></emphasis> para la opci&oacute;n
- <emphasis remap=tt>pn</emphasis>:</para>
-
- <para>
- <literallayout> big-university:\
- :pn=\@:tc=dialout
- dialout:\
- :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
- </literallayout>
- </para>
-
- <para>Entonces, lista los n&uacute;meros de tel&eacute;fono de la
- universidad en el archivo
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?phones">/etc/phones</ulink>:</para>
-
- <para>
- <literallayout> big-university 5551111
- big-university 5551112
- big-university 5551113
- big-university 5551114
- </literallayout>
- </para>
-
- <para><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>
- intentar&aacute; cada uno de estos n&uacute;meros en el
- orden en el que est&eacute;n listados. Si quieres que se realicen
- reintentos, ejecuta <emphasis remap=tt>tip</emphasis> en una bucle while.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; tengo que teclea CTRL+P dos veces para enviar
- CTRL+P una vez?</para>
- </question>
-
- <answer>
- <para>CTRL+P es el car&aacute;cter por defecto de "forzar", usado para
- indicarle al programa
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>
- que el pr&oacute;ximo car&aacute;cter es un dato literal. Puedes
- configurar el car&aacute;cter "forzar" a cualquier otro car&aacute;cter
- con el escape <emphasis remap=tt>~s</emphasis>, el cual significa "poner una
- variable".</para>
-
- <para>Teclea <literal>~sforce=&lt;single-char&gt;</literal> seguido de una nueva
- l&iacute;nea. <emphasis remap=tt>&lt;single-char&gt;</emphasis> es cualquier
- car&aacute;cter simple. Si dejas libre <emphasis remap=tt>&lt;single-char&gt;</emphasis>
- entonces el car&aacute;cter de forzar es el caracter nul, al cual puedes acceder
- tecleando CTRL+2 o CTRL+SPACE. Un valor m&aacute;s adecuado para
- <emphasis remap=tt>&lt;single-char&gt;</emphasis> es SHIFT+CTRL+6, el cual solo es usado en
- algunos servidores de terminales.</para>
-
- <para>Puedes tener el car&aacute;cter de forzar donde quieras, especificando
- lo siguiente en tu archivo <filename>&#36;HOME/.tiprc</filename></para>
-
- <para>
- <literallayout> force=&lt;single-char&gt;
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>De repente, todo lo que tecleo es en may&uacute;sculas</para>
- </question>
-
- <answer>
- <para>Has debido pulsar CTRL+A,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> tiene este
- car&aacute;cter especial para gente que tenga la tecla caps-lock
- estropeada. Usa <emphasis remap=tt>~s</emphasis> como en la secci&oacute;n anterior
- y pon la variable "raisechar" a un valor razonable. De hecho, puedes ponerla al
- mismo valor que que el car&aacute;cter de forzar, si no esperas usar
- estas caracter&iacute;sticas.</para>
-
- <para>Aqui hay un ejemplo del archivo .tiprc perfecto para usuarios de
- Emacs que necesiten teclear CTRL+2 y CTRL+A muchas veces:</para>
-
- <para>
- <literallayout> force=^^
- raisechar=^^
- </literallayout>
- </para>
-
- <para>El simbolo ^^ es SHIFT+CTRL+6.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo hacer transferecia de archivos con
- <emphasis remap=tt>tip</emphasis>?</para>
- </question>
-
- <answer>
- <para>Si est&aacute;s conectado con otro sistema UNIX, puedes enviar y
- recibir archivos con <emphasis remap=tt>~p</emphasis> (put) y
- <emphasis remap=tt>~t</emphasis> (take). Estos comandos
- ejecutan
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cat">cat</ulink> y
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?echo">echo</ulink>
- en el sistema remoto para aceptar y enviar archivos. La sintaxis es:</para>
-
- <para>
- <literallayout> ~p &lt;local-file&gt; [&lt;remote-file&gt;]
- ~t &lt;remote-file&gt; [&lt;local-file&gt;]
- </literallayout>
- </para>
-
- <para>No hay chequeo de errores, por lo que es mejor usar otro protocolo
- como zmodem.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo puedo usar zmodem con <emphasis remap=tt>tip</emphasis>?</para>
- </question>
-
- <answer>
- <para>Primero, instala uno de los programas zmodem de la colecci&oacute;n de
- ports (por ejemplo
- <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^lrzsz">lrzsz</ulink>
- y <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^rzsz">rzsz</ulink>).</para>
-
- <para>Para recibir archivos, inicia el programa de env&iacute;o en la parte
- remota. A continuaci&oacute;n, pulsa enter y teclea
- <emphasis remap=tt>~C rz</emphasis>'' (or ``<emphasis remap=tt>~C lrz</emphasis>''
- si instalaste lrzsz) para empezar a recibir localmente.</para>
-
- <para>Para enviar archivos, inicia el programa de recepci&oacute;n en la
- parte remota. A continuaci&oacute;n pulsa enter y teclea
- <emphasis remap=tt>~C sz &lt;files&gt;</emphasis>''
- (o <emphasis remap=tt>~C lsz &lt;files&gt;</emphasis>) para enviarlos
- al sistema remoto.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>FreeBSD parece que no puede encontrar mis puertos series a&uacute;n
- cuando la configuraci&oacute;n es correcta.</para>
- </question>
-
- <answer>
- <para>Las placas bases y tarjetas con UARTs de Acer no son detectadas
- correctamente por FreeBSD durante la fase de detecci&oacute;n serie.
- Obten un parche de
- <ulink URL="http://www.lemis.com/serial-port-patch.html">www.lemis.com</ulink>
- para solucionar el problema.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="misc">
-<title>Preguntas varias</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>FreeBSD usa m&aacute;s espacio de swap que Linux. Porqu&eacute;?</para>
- </question>
-
- <answer>
- <para>No lo hace. Deber&iacute;as pensar "Porque mi swap parece lleno?". Si
- esto es lo que realmente quer&iacute;as decir, es por que poniendo los
- datos en swap en luar de descartarlos, hace que sea m&aacute;s
- r&aacute;pido recuperarlos que si el paginador tuviese que ir a
- trav&eacute;s del sistema de archivos y usar bloques sin modificar desde
- un ejecutable.</para>
-
- <para>La cantidad actual de p&aacute;ginas que puedes tener en el core en una
- sola vez no es reducida; las p&aacute;ginas sin usar son desplazadas como
- sea necesario.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; usar (que son) a.out y ELF como formatos
- ejecutables?</para>
- </question>
-
- <answer>
- <para>Para entender por que FreeBSD usa el formato <filename>a.out</filename>,
- debes saber primero un poco sobre los tres formatos dominantes actualmente
- en UNIX:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out</ulink>
- </para>
-
- <para>El antiguo y cl&aacute;sico formato de objeto. Usa una corta y
- compacta cabecera con un n&uacute;mero m&aacute;gico en el inicio que
- es usado para caracterizar el formato (mira en
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out(5)</ulink>
- para m&aacute;s detalles). Contiene tres segmentos
- cargados: .text, .data y .bss m&aacute;s una tabla de s&iacute;mbolos
- y una tabla de cadenas de car&aacute;cteres.</para>
- </listitem>
-
- <listitem>
- <para><acronym>COFF</acronym></para>
-
- <para>El formato de objeto SVR3. La cabecera comprime una secci&oacute;n de
- tablas, de manera que puedas tener m&aacute;s de una sola
- secci&oacute;n .test, .data y .bss</para>
- </listitem>
-
- <listitem>
- <para><acronym>ELF</acronym></para>
-
- <para>El sucesor de <acronym>COFF</acronym>, ofreciendo m&uacute;ltiples
- secciones y valores posibles de 32 o 64 bits. Un problema importante:
- <acronym>ELF</acronym> fue dise&ntilde;ado con la presunci&oacute;n de
- que solo existir&iacute;a un &uacute;nico ABI por arquitectura de sistema.
- Esta presunci&oacute;n actualmente es incorrecta, incluso en el
- mundo comercial (el cual tiene al menos tres ABIs: SVR4, Solaris y SCO).</para>
-
- <para></para>
-
- <para>FreeBSD intenta solucionar este problema de manera que provee
- de una utilidad para <emphasis>marcar</emphasis> un ejecutable
- <acronym>ELF</acronym> con informaci&oacute;n sobre el ABI con el que
- es compatible. Para m&aacute;s informaci&oacute;n, mira el man de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?brandelf">brandelf</ulink>.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>FreeBSD viene del sistema cl&aacute;sico y tradicionalmente ha
- utilizado el formato
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out</ulink>,
- una tecnolog&iacute;a probada y testeada a trav&eacute;s
- de muchas generaciones de releases de BSD. Tambi&eacute;n es posible
- construir y ejecutar binarios nativos <acronym>ELF</acronym> (y kernels)
- en sistemas FreeBSD. FreeBSD inicialmente se resisti&oacute; al salto de cambiar a
- <acronym>ELF</acronym> como su formato por defecto. Porqu&eacute;?, bien, cuando el
- mundo Linux hizo su transici&oacute;n a <acronym>ELF</acronym> no era nada
- f&aacute;cil abandonar el formato ejecutable <filename>a.out</filename>
- debido a su inflexible mecanismo de tablas basadas en librer&iacute;as
- compartidas. Esto hizo muy dif&iacute;cil para los fabricantes y desarrolladores la
- creaci&oacute;n de librer&iacute;as compartidas. A partir del momento en
- el que se ofrecieron una serie de herramientas que ofrec&iacute;an la
- soluci&oacute;n al problema de las librer&iacute;as compartidas, el
- coste de la migraci&oacute;n fue aceptado como necesario y la
- transici&oacute;n se hizo.</para>
-
- <para>En el caso de FreeBSD, el mecanismo de librer&iacute;as compartidas
- esta m&aacute;s basado en el estilo de SunOS, mucho m&aacute;s sencillo
- de usar. De todas maneras, empezando con la version 3.0, FreeBSD
- soportar&aacute; oficialmente binarios <acronym>ELF</acronym> como el formato por
- defecto. Aunque pensamos que el formato ejecutable <filename>a.out</filename>
- nos ha servidor muy bi&eacute;n, la gente de GNU, que hacen las herramientas de
- compilaci&oacute;n que usamos, ha dejado de dar soporte para el formato
- <filename>a.out</filename>. Esto nos ha forzado a mantener dos versiones
- divergentes del compilador y lincador.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; chmod no puede cambiar los permisos de
- los links?</para>
- </question>
-
- <answer>
- <para>Tienes que usar <option>-H</option> o <option>-L</option> junto
- con la opci&oacute;n <option>-R</option>
- para que funcione. Para m&aacute;s informaci&oacute;n, mira la
- p&aacute;gina de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> y de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?symlink">symlink</ulink>.</para>
-
- <para><acronym>CUIDADO</acronym> la opci&oacute;n <option>-R</option> hace un
- <emphasis remap=tt>chmod</emphasis> <acronym>RECURSIVO</acronym>. Ten cuidado
- aal especificar directorios o symlinks con
- <emphasis remap=tt>chmod</emphasis>. Si quieres cambiar los permisos de
- un directorio referenciado por un symlink, usa
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink>
- sin ninguna opci&oacute;n y sigue el symlink con una barra <filename>/</filename>.
- Por ejemplo, si <emphasis remap=tt>foo</emphasis> es un symlink al directorio
- <emphasis remap=tt>bar</emphasis>, y quieres
- cambiar los permisos de <emphasis remap=tt>foo</emphasis> /actualmente
- <emphasis remap=tt>bar</emphasis>), deber&iacute;as
- hacer algo como esto:</para>
-
- <para>
- <literallayout>
- chmod 555 foo/
- </literallayout>
- </para>
-
- <para>Con la barra,
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> seguira
- el symlink, <emphasis remap=tt>foo</emphasis>, para cambiar los permisos del
- directorio <emphasis remap=tt>bar</emphasis>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Porqu&eacute; est&aacute;n los nombres de usuario restringidos
- a 8 caracteres?</para>
- </question>
-
- <answer>
- <para>Pensar&aacute;s que es f&aacute;cil y suficiente con cambiar
- <symbol>UT_NAMESIZE</symbol> y reconstruir el kernel, y todo volver&aacute; a
- funcionar. Desafortunadamente hay aplicaciones y programas (incluyendo
- herramientas de sistema) que tienen en el propio c&oacute;digo (no
- siempre 8 o 9, pero si 15 o 20) en estructuras, buffers... y
- romper&iacute;a los clientes de NIS de Sun y sin duda existir&iacute;an
- otros problemas interactuando con otros sistemas UNIX.</para>
-
- <para>En FreeBSD 3.0 y superiores, se ha incrementado el n&uacute;mero
- m&aacute;xmimo de car&aacute;cteres a 16 y todas esas utilidades con
- longitud de car&aacute;cteres prefijada han sido encontradas y
- arregladas. El hecho de que este cambio afectase a muchas &aacute;reas
- del sistema es el motivo por el que el cambio no se ha hecho hasta
- la versi&oacute;n 3.0.</para>
-
- <para>Si eres absolutamente cuidadoso y quieres arreglas tu mismo este
- problema en versiones anteriores, edita el archivo
- /usr/include/utmp.h y cambia el par&aacute;metro UT_NAMESIZE a la
- longitud que desees. Tambi&eacute;n debes editar el archivo
- /usr/include/sys/param.h y poner el valor de MAXLOGNAME al mismo que
- UT_NAMESIZE. Finalmente, recompila los fuentes, no te olvides que
- el contenido de /usr/include es actualizado cada vez!. En su lugar,
- cambia los archivos apropiados en /usr/src/..</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Puedo ejecutar binarios DOS bajo FreeBSD?</para>
- </question>
-
- <answer>
- <para>S&iacute;, empezando en la versi&oacute;n 3.0 puedes usar la
- emulaci&oacute;n DOS <emphasis remap=tt>rundos</emphasis> de BSDI, la cual
- ha sido integrada y mejorada. Env&iacute;a un mail a la
- <ulink URL="mailto:emulation@FreeBSD.org">Lista de discusi&oacute;n de emulaci&oacute;n en FreeBSD</ulink>
- si est&aacute;s interesado en participar en la evoluci&oacute;n de esta
- caracter&iacute;stica.</para>
-
- <para>Para sistemas pre-3.0 hay una peque&ntilde;a utilidad llamada
- <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^pcemu">pcemu</ulink>
- en la colecci&oacute;n de puertos que emula un 8088 y suficientes
- servicios de BIOS para ejecutar aplicaciones de modo texto. Requiere el
- sistema de X Window.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; es <emphasis remap=tt>sup</emphasis>, y como
- lo uso?</para>
- </question>
-
- <answer>
- <para><ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^sup">SUP</ulink>
- significa Software Update Protocol, y fue desarrollado por CMU para
- mantener sus &aacute;rboles de desarrollo sincronizados. Nosotros lo
- usabamos para manterner el servidor central sincronizado con otros
- servidores remotos.</para>
-
- <para>SUP no es amigo del ancho de banda, y ha sido retirado. El
- m&eacute;todo actual recomendado para mantener tus fuentes actualizados
- es <ulink URL="../../handbook/synching.html#CVSUP">CVSup</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Existen herramientas de ahorro de energ&iacute;a
- en FreeBSD?</para>
- </question>
-
- <answer>
- <para>FreeBSD usa la instrucci&oacute;n <acronym>HLT</acronym> (halt)
- cuando el sistema est&aacute; (idle) para reducir el consumo de energ&iacute;a.
- Si tienes la opci&oacute;n APM (Automatic Power Management) configurado, FreeBSD
- puede poner la cpu en modo de baja energ&iacute;a.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; significa "MFC"?</para>
- </question>
-
- <answer>
- <para>MFC es un acr&oacute;nimo para "Merges From -CURRENT". Es usado en los
- logs de CVS para indicar que un cambio se ha migrado de la rama CURRENT
- a la rama STABLE.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; significa "BSD"?</para>
- </question>
-
- <answer>
- <para>Pertenece a un lenguaje secreto que solo sus miembros conoces. No tiene
- traducci&oacute;n literal, pero basta con decir que su traducci&oacute;n
- est&aacute; entre, "Equipo de F&oacute;rmula-1", "Los Pinguinos son un
- bu&eacute;n aperitivo", y "Tenermos mejor sentido del humor que Linux"
- :-)</para>
-
- <para>Seriamente, BSD es un acr&oacute;nimo de "Berkeley Software
- Distribution", el cual es el nombre que el CSRG de Berkeley (Computer
- Systems Research Group) escogi&oacute; para sus distribuciones de Unix.</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="hackers">
-<title>S&oacute;lo para hackers serios de FreeBSD</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>&iquest;Qu&eacute; son SNAPs y RELEASEs?</para>
- </question>
-
- <answer>
- <para>Hay actualmente tres ramas activas/semi-activas en el desarrollo de
- FreeBSD y en su
- <ulink URL="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS Repository</ulink>:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para><symbol>RELENG_2_2</symbol> AKA <emphasis remap=bf>2.2-stable</emphasis>
- AKA <emphasis remap=bf>"2.2 branch"</emphasis></para>
- </listitem>
-
- <listitem>
- <para><symbol>RELENG_3</symbol> AKA <emphasis remap=bf>3.x-stable</emphasis>
- AKA <emphasis remap=bf>"3.0 branch"</emphasis></para>
- </listitem>
-
- <listitem>
- <para><acronym>HEAD</acronym> AKA <option>-current</option> AKA
- <emphasis remap=bf>4.0-current</emphasis></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para><acronym>HEAD</acronym> no es una rama actual, como las otras dos, es
- simplemente una constante simb&oacute;lica para <emphasis>la versi&oacute;n
- de desarrollo actual</emphasis> a la cual nos referimos simplemente como
- <option>-current</option>.</para>
-
- <para>Actualmente, <option>-current</option> es el desarrollo de la
- versi&oacute;n 4.0 y la rama <emphasis remap=bf>3.0-stable</emphasis> es
- <symbol>RELENG_3</symbol>, separada de -current en Enero
- de 1999.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="custrel">
- <para>&iquest;C&oacute;mo puedo hacerme mi propia release personalizada?</para>
- </question>
-
- <answer>
- <para>Para hacer una release necesitas hacer tres cosas: primero,
- necesitas usar un kernel con el driver
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?vn">vn</ulink> configurado.
- A&ntilde;ade esto a tu archivo de configuraci&oacute;n del kernel y
- crea un nuevo kernel:</para>
-
- <para>
- <literallayout>
- pseudo-device vn #Vnode driver (turns a file into a device)
- </literallayout>
- </para>
-
- <para>Segundo, debes tener las herramientas del CVS a mano. Para hacer
- esto, puedes usar
- <ulink URL="../../handbook/synching.html#CVSUP">CVSUP</ulink>
- pero en tu supfile pon el nombre de la release a cvs y borra cualquier
- tag campo de fecha:</para>
-
- <para>
- <literallayout> *default prefix=/home/ncvs
- *default base=/a
- *default host=cvsup.FreeBSD.org
- *default release=cvs
- *default delete compress use-rel-suffix
-
- ## Main Source Tree
- src-all
- src-eBones
- src-secure
-
- # Other stuff
- ports-all
- www
- doc-all
- </literallayout>
- </para>
-
- <para>A continuaci&oacute;n ejecuta <command>cvsup -g supfile</command>
- para tener todos los bits correctos en tu computador.</para>
-
- <para>Finalmente, necesitas una buena cantidad de espacio vac&iacute;o para
- crear en el la release. Digamos que est&aacute; en
- <filename>/algun/disco/grande</filename> y en el ejemplo anterior has dejado los
- archivos del CVS en <filename>/home/ncvs</filename>:</para>
-
- <para>
- <literallayout>
- setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs
- cd /usr/src/release
- make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/algun/disco/grande/release
- </literallayout>
- </para>
-
- <para>Una release completa ser&aacute; creada en
- <filename>/algun/disco/grande/</filename> y tendr&aacute;s una
- instalaci&oacute;n completa de tipo FTP en
- <filename>/algun/disco/grande/R/ftp</filename> cuando acabes.
- Si quieres crear tu SNAP usando otra rama de desarrollo diferente de
- -current, puedes a&ntilde;adir <literal>RELEASETAG=SOMETAG</literal> a la
- l&iacute;nea de comando anterior de creaci&oacute;n de la release. Por ejemplo,
- <literal>RELEASETAG=RELENG_2_2</literal> crear&iacute;a un snapshot 2.2 GAMMA.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo creo discos de instalaci&oacute;n personalizados?</para>
- </question>
-
- <answer>
- <para>El proceso completo de creacaci&oacute;n de discos de
- instalaci&oacute;n y archivos fuentes y binarios esta automatizado por
- varios targets en <filename>/usr/src/release/Makefile</filename>. La
- informaci&oacute;n alli contenida deber&iacute;a ser suficiente para que
- puedas empezar. Falta decir que este proceso necesita la ejecuci&oacute;n
- del comando "make world" y quiz&aacute;s te use mucho tiempo y espacio
- en disco.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>``make world'' destruye mis binarios instalados.</para>
- </question>
-
- <answer>
- <para>S&iacute;, esta es la idea general; como su nombre sugiere,
- "make world" rehace todos los binarios del sistema, de manera que puedas
- estar seguro de tener un entorno limpio y consistente al final (que es
- por lo que tarda tanto).</para>
-
- <para>Si la variable de entorno <acronym>DESTDIR</acronym> est&aacute;
- definida mientras se ejecuta <emphasis remap=tt>make world</emphasis> o
- <emphasis remap=tt>make install</emphasis>, los binarios creados
- nuevamente seran depositados en un &aacute;rbol de directorios
- id&eacute;ntico al instalado, y a partir de
- <emphasis remap=tt>&#36;{DESTDIR}</emphasis>. Algunas combinaciones aleatorias
- de modificaciones de librer&iacute;as compartidas y programas pueden
- causar que falle el <emphasis remap=tt>make world</emphasis>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Cuando mi sistema arranca, dice (bus speed defaulted).</para>
- </question>
-
- <answer>
- <para>Las controladoras SCSI Adaptec 1542 permiten al usuario configurar
- su velocidad de acceso al bus en software. Versiones anteriores del
- driver de la 1542 intentaban determinar la velocidad m&aacute;s alta
- factible y configurar la Adaptec a esta. Nos hemos encontrado con que esto
- hace fallar el sistema de algunos usuarios, por lo que tienes que
- definir la opci&oacute;n de configuraci&oacute;n del kernel
- <symbol>TUNE_1542</symbol> para que esto ocurra. En algunos sistemas puede
- que puede hacer que los discos vayan m&aacute;s r&aacute;pidos, pero en
- otros puede que los datos queden corrompidos.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question id="ctm">
- <para>&iquest;Puedo seguir la rama current con acceso limitado a Internet?</para>
- </question>
-
- <answer>
- <para>S&iacute;, puedes hacerlo <emphasis remap=tt>sin</emphasis> bajarte
- todo el c&oacute;digo fuente usando la
- utilidad <ulink URL="../../handbook/synching.html#CTM">CTM.</ulink></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo partir la distribuci&oacute;n en archivos de 240k?</para>
- </question>
-
- <answer>
- <para>Los sistemas BSD m&aacute;s modernos tienen una opci&oacute;n
- <option>-b</option> para partir que les permite partir los archivos en
- tama&ntilde;os arbitrarios.</para>
-
- <para>Aqui hay un ejemplo de <filename>/usr/src/Makefile</filename>.</para>
-
- <para>
- <literallayout> bin-tarball:
- (cd ${DISTDIR}; \
- tar cf - . \
- gzip --no-name -9 -c | \
- split -b 240640 - \
- ${RELEASEDIR}/tarballs/bindist/bin_tgz.)
- </literallayout>
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;He escrito una extensi&oacute;n del kernel, a quien la
- env&iacute;o?</para>
- </question>
-
- <answer>
- <para>Por favor, mira en
- <ulink URL="../../handbook/contrib.html">como enviar c&oacute;digo.</ulink></para>
-
- <para>Y gracias por pensar en nosotros!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;C&oacute;mo se detectan e inicializan las tarjetas ISA y PnP?</para>
- </question>
-
- <answer>
- <para>Brevemente, hay unos cuantos puertos de entrada/salida a los que
- todas las tarjetas PnP responden cuando el computador pregunta si hay
- alguien ah&iacute;. As&iacute;, cuando comienza la rutina de prueba
- de PnP, pregunta si hay alguna tarjeta PnP presente y todas las
- tarjetas responden con su n&uacute;mero de modelo a una lectura I/O
- del mismo puerto. As&iacute; el c&oacute;digo de prueba puede conocer
- el ID de cada tarjeta (asignado por Microsoft/Intel).</para>
-
- <para>Los ID's son dos campos de 32 bits (2&circ;64) + 8 bits de
- checksum. Los primeros 32 bits son el identificador del fabricante.
- No se ha dicho publicamente, pero parece estar asumido que diferentes
- tipos de tarjeta del mismo fabricante pueden tener diferentes id's de
- fabricante. La idea de necesitar 32 bits s&oacute;lo para los
- fabricantes parece un poco excesiva.</para>
-
- <para>La parte baja de 32 bits son un n&uacute;mero de serie,
- direcci&oacute;n ethernet, algo que haga a la tarjeta &uacute;nica. El
- fabricante no debe producir nunca una segunda tarjeta que tenga los
- mismos 32 bits de la parte baja, aunque los 32 bits de la parte alta sean
- diferentes. As&iacute; puedes tener m&uacute;ltiples tarjetas del mismo
- tipo en la misma m&aacute;quina y los 64 bits ser&aacute;n &uacute;nicos
- para cada tarjeta.</para>
-
- <para>Los grupos de 32 bits nunca pueden ser todos cero. Esto permite
- mostrar todos los bits no-cero durante la b&uacute;squeda binaria
- inicial.</para>
-
- <para>Una vez el sistema ha identificado todos los ID's de las tarjetas
- presentes, reactivar&aacute;a cada tarjeta, una tras otra (a
- trav&eacute;s de los mismos puertos I/O), y encontrar&aacute; los
- recursos que cada tarjeta necesita, que opciones de interrupci&oacute;n
- est&aacute;n disponibles, etc. Se realiza un escaneo sobre todas y cada
- una de las tarjetas presentes para conocer esta informaci&oacute;n.</para>
-
- <para>Esta informaci&oacute;n se combina con la informaci&oacute;n de los
- archivos ECU del disco y con las BIOS MLB. El soporte PnP de ECU y las
- BIOS para hardware en el MLB usualmente es sint&eacute;tico, y los
- perif&eacute;ricos no hacen PnP genuino. De todas maneras, examinando
- la informaci&oacute;n del BIOS m&aacute;s la informaci&oacute;n
- ECU, la rutina de prueba puede causar que los dispositivos que no son
- PnP puedan evitar a esos dispositivos que el c&oacute;digo de prueba
- no puede volver a posicionar.</para>
-
- <para>As&iacute;, los dispositivos PnP son visitados una vez m&aacute;s
- y se les asigna su I/O, DMA, IRQ, direcciones del mapa de memoria. Los
- dispositivos aparecer&aacute;n en esas direcciones y permanecer&aacute;n
- en ellas hasta que se vuelva a reinicializar la m&aacute;quina.</para>
-
- <para>Todo el proceso se ha simplificado mucho, pero espero que hayas podido
- hacerte una idea del proceso.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>&iquest;Soporta FreeBSD arquitecturas diferentes a x86?</para>
- </question>
-
- <answer>
- <para>Diferentes grupos de personas han expresado su inter&eacute;s en
- trabajar en un port multi-arquitectura de FreeBSD y FreeBSD/AXP
- (ALPHA) es un ejemplo de ese esfuerzo realizado, ahora disponible en
- forma de 3.0 SNAPshot release en
- <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha/">ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha</ulink>.
- El port de ALPHA funciona actualmente en diferentes tipos de m&aacute;quinas ALPHA,
- entre ellas, AlphaStation, AXPpci, PC164, Miata y Multia. Este port
- todav&iacute;a no se considera una release completa y no lo ser&aacute;
- hasta que exista una colecci&oacute;n completa de herramientas de
- instalaci&oacute;n y una distribuci&oacute;n completa en cdrom para
- instalaci&oacute;, incluyendo un n&uacute;mero razonable de ports y
- packages funcionales. FreeBSD/AXP debe considerarse software de
- calidad BETA en estos momentos. Para m&aacute;s informaci&oacute;n del
- proyecto, subscr&iacute;bete a la
- <email>FreeBSD-alpha@FreeBSD.org</email>
- <link linkend="mailing">lista de correo</link>.</para>
-
- <para>Tambi&eacute;n se ha expresado inter&eacute;s en un port de FreeBSD para
- arquitectura SPARC. Subscr&iacute;bete a
- <email>FreeBSD-sparc@FreeBSD.org</email>
- <link linkend="mailing">la lista</link> si est&aacute;s interesado en
- participar en el proyecto. Para discusiones generales en nuevas
- arquitecturas, participa en
- <link linkend="mailing">la lista</link>
- <email>FreeBSD-platforms@FreeBSD.org</email>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Necesito un numero de dispositivo para un driver propio</para>
- </question>
-
- <answer>
- <para>Esto depende de si quieres hacer que el driver est&eacute;
- p&uacute;blicamente disponible. Si la respuesta es afirmativa, por favor,
- envianos una copia del c&oacute;digo fuente del driver y las
- modificaciones apropiadas del archivo <emphasis remap=tt>files.i386</emphasis>,
- un ejemplo de configuraci&oacute;n y el c&oacute;digo apropiado de
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink> para
- crear cualquier archivo especial que use tu dispositivo. Puedes enviar
- todo lo necesario a <email>FreeBSD-hackers@FreeBSD.org</email>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Alternativas a la pol&iacute;tica de directorios</para>
- </question>
-
- <answer>
- <para>En respuesta a esta pregunta de pol&iacute;ticas alternativas
- para los directorios, el esquema que est&aacute; actualmente en uso
- no ha cambiado desde que lo escrib&iacute; en 1983. Escrib&iacute; esa
- pol&iacute;tica para el sistema de archivos r&aacute;pido original, y
- nunca se ha revisado. Trabaja bi&eacute;n manteniendo los grupos de
- cilindros. Como muchos de vosotros habreis notado, el rendimiento es
- muy pobre con "find". Muchos sistemas de archivos son creados desde
- archivos que fueron creados por una primera b&uacute;squeda en
- profundidad (tambi&eacute;n conocido como ftw). Estos directorios
- terminan esparcidos a trav&eacute;s de los grupos de cilindros. Si
- conociesemos el n&uacute;mero total de directorios a crear, la
- soluci&oacute;n ser&iacute;a crear (total / fs_ncg) por grupo de
- cilindros antes de moverlos. Obviamente, tendriamos que crear
- alg&uacute;n tipo de heur&iacute;stica para adivinar este n&uacute;mero.
- Usando un n&uacute;mero peque&ntilde;o fijo (como puede ser
- 10) har&iacute;a de orden de magnitud. Para diferencial restores de
- operaciones normales (cuando el algoritmo actual es probablemente
- m&aacute;s sensible), podr&iacute;s usar el clustering hasta 10 si
- fueran todos hechos dentro de una ventana de diez segundos. De cualquier
- manera, mi conclusi&oacute;n es que este es un &aacute;rea para la
- experimentaci&oacute;n.</para>
-
- <para>Kirk McKusick, Septiembre 1998</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Obtener todo lo posible de un "kernel panic"</para>
- </question>
-
- <answer>
- <para><emphasis>[Esta secci&oacute;n fue extraida de un mensaje escrito
- por <ulink URL="mailto:wpaul@FreeBSD.org">Bill Paul</ulink> en la
- <link linkend="mailing">lista</link> FreeBSD-current por
- <ulink URL="mailto:des@FreeBSD.org">Dag-Erling Co&iuml;dan Sm&oslash;rgrav</ulink>,
- qui&eacute;n a fijado algunos errores y a&ntilde;adido algunos comentarios
- entre corchetes]</emphasis></para>
-
- <para>
- <literallayout>From: Bill Paul &lt;wpaul@skynet.ctr.columbia.edu&gt;
- Subject: Re: the fs fun never stops
- To: ben@rosengart.com
- Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
- Cc: current@FreeBSD.org
- </literallayout>
- </para>
-
- <para><emphasis>[&lt;ben@rosengart.com&gt; envi&oacute; el siguiente
- panic]</emphasis>
- <literallayout>&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
- </literallayout>
- </para>
-
- <para>[Cuando] ves un mensaje como este, no es suficiente con solo
- reproducirlo y enviarlo. El valor del puntero de instrucciones que
- he marcado arriba es importante; desafortunadamente, depende de la
- configuraci&oacute;n. En otras palabras, el valor var&iacute;a
- dependiendo de la im&aacute;den de kernel exacta que se use. Si
- est&aacute;s usando el kernel GENERIC de uno de los snapshots, entonces
- es posible que alguien pueda seguir la funci&oacute;n
- problem&aacute;tica, pero si est&aacute;s usando un kernel
- personalizado, entonces solo <emphasis>t&uacute;</emphasis> puedes decirnos donde
- ha ocurrido el fallo.</para>
-
- <para>Tendr&iacute;as que hacer lo siguiente:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Anotar el valor del puntero de la instrucci&oacute;n. Ten en
- cuenta la parte <literal>0x8:</literal> al inicio no es significante
- en este caso: es la parte <literal>0xf0xxxxxx</literal> la que queremos.</para>
- </listitem>
-
- <listitem>
- <para>Cuando el sistema rearranca, haz lo siguiente:
- <literallayout>
- % nm /kernel.that.caused.the.panic | grep f0xxxxxx
- </literallayout>
-
- donde <literal>f0xxxxxx</literal> es el valor del puntero de la
- instrucci&oacute;n. El problema es que no obtendr&aacute;s una
- b&uacute;squeda exacta ya que los s&iacute;mbolos en la tabla de
- s&iacute;mbolos del kernel son para los puntos de entrada de las
- funciones y la direcci&oacute;n
- del puntero de la instrucci&oacute;n estar&aacute; en alg&uacute;n
- lugar dentro de una funci&oacute;n, no al principio. Si no obtienes
- un resultado exacto, omite el &uacute;ltimo d&iacute;gito del valor
- del puntero de la instrucci&oacute;n e intentalo otra vez, por
- ejemplo:
- <literallayout>
- % nm /kernel.that.caused.the.panic | grep f0xxxxx
- </literallayout>
-
- Si esto no da ning&uacute;n resultado, elimina otro d&iacute;gito.
- Repite la operaci&oacute;n hasta que obtengas alg&uacute;n tipo de
- salida. El resultado ser&aacute; una lista de posibles funciones
- que causan el panic. Este no es un sistema muy exacto de
- b&uacute;squeda de errores, pero es mejor que nada.</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Veo gente que constantemente env&iacute;a mensajes de panics como
- este, pero raramente veo que alguien se tome el tiempo de buscar
- la coincidencia entre el puntero de instrucci&oacute;n y una
- funci&oacute;n en la tabla de s&iacute;mbolos del kernel.</para>
-
- <para>La mejor manera de hacer el seguimiento de la causa de un panic es
- capturar un "crash dump", usando <command>gdb(1)</command> para hacer una traza del
- "crash dump". Por supuesto, esto depende de que <command>gdb(1)</command> funcione
- correctamente en -current, lo que no puedo garantizar (recuerdo que
- alguien ha comentado que el nuevo <command>gdb(1)</command> en formato ELF no
- manejaba bi&eacute;n los "dumps" de un crash del kernel; algui&eacute;n
- deber&iacute;a mirar esto antes de que la 3.0 salga del estado beta).</para>
-
- <para>En cualquier caso, el m&eacute;todo que normalmente uso es este:</para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Crear un archivo de configuraci&oacute;n de kernel, opcionalmente
- a&ntilde;adiendo 'options DDB' si piensas que necesitas el debugger
- del kernel por alg&uacute;n motivo. (Uso esto principalmente para
- configurar puntos de salida si sospecho que existe alguna
- condici&oacute;n que crea un loop infinito).</para>
- </listitem>
-
- <listitem>
- <para>Usar <command>config -g KERNELCONFIG</command> para crear el directorio
- de configuraci&oacute;n del kernel.</para>
- </listitem>
-
- <listitem>
- <para><command>cd /sys/compile/KERNELCONFIG; make</command></para>
- </listitem>
-
- <listitem>
- <para>Esperar a que el kernel termine de compilar.</para>
- </listitem>
-
- <listitem>
- <para><emphasis remap=tt>cp kernel kernel.debug</emphasis></para>
- </listitem>
-
- <listitem>
- <para><command>strip -d kernel</command></para>
- </listitem>
-
- <listitem>
- <para><emphasis remap=tt>mv </emphasis>kernel /kernel.orig/</para>
- </listitem>
-
- <listitem>
- <para><command>cp kernel /</command></para>
- </listitem>
-
- <listitem>
- <para>reboot</para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para><emphasis>[Nota: ahora que los kernels de FreeBSD 3.x son ELF por defecto
- debes usar <command>strip -g</command> en lugar de <command>strip -d</command>.
- Si por alg&uacute;n motivo tu kernel es a&uacute;n a.out, usa
- <command>strip -aout -d</command>.]</emphasis></para>
-
- <para>Ten en cuenta que TU <acronym>NO</acronym> QUIERES ARRANCAR CON UN
- KERNEL QUE TIENE TODOS LOS SIMBOLOS DE DEBUG EN EL. Un kernel compilado
- con <option>-g</option> puede llegar facilmente a los 10MB de tama&ntilde;o.
- No tienes que arrancar esta im&aacute;n masiva, solo lo necesitas para poder usar
- despu&eacute;s <command>gdb(1)</command> (<command>gdb(1)</command> quiere
- la tabla de s&iacute;mbolos). Al contrario, quieres mantener una copia de la
- im&aacute;gen completa y crear una segunda im&aacute;gen con los
- s&iacute;mbolos de debug desactivados usando <command>strip -d</command>. Es esta
- segunda im&aacute;gen la que quieres arrancar.</para>
-
- <para>Para asegurarte de capturar un "crash dump", necesitas editar el
- archivo <filename>/etc/rc.conf</filename> y apuntar
- <emphasis remap=tt>dumpdev</emphasis> a tu
- partici&oacute;n de swap. Esto har&aacute; que el script <command>rc(8)</command>
- use el comando <command>dumpon(8)</command> para activar los "crash dumps".
- Tambi&eacute;n puedes ejecutar manualmente <command>dumpon(8)</command>.
- Despu&eacute;s de un panic, el "crash dump" puede ser recuperado usando
- <command>savecore(8)</command>; si <emphasis remap=tt>dumpdev</emphasis>
- est&aacute; en <filename>/etc/rc.conf</filename>, el script
- <command>rc(8)</command> ejecutar&aacute; <command>savecore(8)</command>
- automaticamente y pondr&aacute; el "crash dump" en
- <filename>/var/crash</filename>.</para>
-
- <para>NOTA: los "crash dumps" de FreeBSD suelen tener el mismo
- tama&ntilde;o que la cantidad total de memoria f&iacute;sica del
- sistema. Esto significa que si tienes 64MB de RAM, obtendr&aacute;s
- un "crash dump" de 64MB. Debido a esto, tienes que asegurarte de tener
- suficiente espacio libre en <filename>/var/crash</filename>.
- Alternativamente puedes ejecutar <command>savecore(8)</command>
- manualmente y hacer la recuparaci&oacute;n en otro directorio donde
- tengas m&aacute;s espacio libre. Es posible limitar el tama&ntilde;o
- del "crash dump" usando <literal>options MAXMEM=(foo)</literal>
- para indicar la cantidad de memoria que el kernel puede ocupar. Por
- ejemplo, si tienes 128MB de RAM, puedes limitar el uso de memoria del
- kernel a 16MB para que el "crash dump" sea de 16MB y no de 128MB.</para>
-
- <para>Una vez hayas recuperado el "crash dump", puedes obtener una traza
- del stack con <command>gdb(1)</command> de la manera siguiente:</para>
-
- <para>
- <literallayout>
- % gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0
- (gdb) where
- </literallayout>
- </para>
-
- <para>Es posible que aparezcan muchas l&iacute;neas de informaci&oacute;n:
- es una buena idea usar el comando <command>script(1)</command> para capturarlas
- todas. Usando la im&aacute;gen del kernel con todos los s&iacute;mbolos
- de debug deber&iacute; mostrar la l&iacute;nea exacta de c&oacute;digo
- fuente del kernel donde ha ocurrido el panic. Normalmente, tienes que
- leer la traza del stack de abajo hacia arriba para poder conocer la
- secuencia exacta de eventos que han provocado el crash. Tambi&eacute;n
- puedes usar <command>gdb(1)</command> para mostrar los contenidos de las diferentes
- variables o estructuras para examinar el estado del sistema en el
- momento del crash.</para>
-
- <para>Ahora, si eres realmente curioso y tienes un segundo computador,
- puedes configurar <command>gdb(1)</command> para hacer un debug remoto de manera
- que puedes usar <command>gdb(1)</command> en un sistema para revisar el kernel
- de otro sistema, de la misma manera que lo har&iacute;as en la
- m&aacute;quina local.</para>
-
- <para><emphasis>[Bill a&ntilde;ade: "Olvid&eacute; mencionar una cosa: si tienes
- DDB activado, puedes forzar un panic (y un crash dump) tecleando
- "panic" en el prompt del ddb. Es posible que el debugger se pare
- durante la fase del panic. Si esto ocurre, teclea "continue" y el
- crash dump finalizar&aacute;"]</emphasis></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>dlsym() no funciona con ejecutables ELF!</para>
- </question>
-
- <answer>
- <para>Las herramientas ELF no hacen por defecto que los s&iacute;mbolos
- definidos en un ejecutable sean visibles por el linker din&aacute;mico.
- Consecuentemente, <function>dlsym()</function> buscar&aacute; en datos
- obtenidos desde llamadas a <emphasis remap=tt>dlopen(NULL, flags)</emphasis>,
- lo que provoca que no se encuentren esos s&iacute;mbolos.</para>
-
- <para>Si quieres buscar, usando <function>dlsym()</function> s&iacute;mbolos
- presentes en el ejecutable principal de un proceso, necesitas linkar el
- ejecutable usando la opci&oacute;n <option>-export-dynamic</option> en el
- <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ld">linkador ELF</ulink>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Incrementando o reduciendo el espacio de direcciones del kernel</para>
- </question>
-
- <answer>
- <para>Por defecto, el espacio de direcciones del kernel es de 256MB en
- FreeBSD 3.x y 1GB en FreeBSD 4.x. Si gestionas un servidor de red
- muy cargado (por ejemplo, servidores FTP o HTTP con mucho
- tr&aacute;fico), es posible que notes que 256MB no es
- suficiente.</para>
-
- <para>As&iacute; que... como incremento el espacio de direcciones?. Hay
- dos aspectos a tener en cuenta. Primero, necesitas indicarle al kernel
- que reserve una mayor parte del espacio de direcciones para &eacute;l
- mismo. Segundo, ya que el kernel se carga al inicio del espacio de
- direcciones, necesitas disminuir la direcci&oacute;n de carga.</para>
-
- <para>El primer aspecto lo solucionamos incrementando el valor de
- <acronym>NKPDE</acronym> en <filename>src/sys/i386/include/pmap.h</filename>.
- Esta es una entrada de ejemplo para 1GB de espacio de direcciones:</para>
-
- <para>
- <literallayout>
- #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
- </literallayout>
- </para>
-
- <para>Para encontrar el valor correcto de <acronym>NKPDE</acronym>,
- divide el espacio de direcciones deseado (en megabytes) por cuatro,
- despu&eacute;s resta uno por UP y dos por SMP.</para>
-
- <para>Para solucionar el segundo aspecto, necesitas calcular la
- direcci&oacute;n correcta de carga: simplemente resta el tama&ntilde;o
- del espacio de direcciones (en bytes) de 0x100100000; el resultado
- es 0xc0100000 para 1GB de espacio de direcciones. Ajusta
- <symbol>LOAD_ADDRESS</symbol> en
- <filename>src/sys/i386/conf/Makefile.i386</filename> a ese
- valor; a continuaci&oacute;n pon el contador al inicio de la
- secci&oacute;n listado en <filename>src/sys/i386/conf/kernel.script</filename>
- al mismo valor, como sigue:</para>
-
- <para>
- <literallayout>
- 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) }
- </literallayout>
- </para>
-
- <para>Reconfigura y compila el kernel. Probablemente tengas problemas con
- <command>top(1)</command>, <command>ps(1)</command> y programas as&iacute;
- haciendo un <emphasis remap=tt>make world</emphasis> deber&iacute;n
- solucionarse esos problemas (o una recompilaci&oacute;n manual de
- <emphasis remap=tt>libkvm</emphasis>, <emphasis remap=tt>ps</emphasis> y
- <emphasis remap=tt>top</emphasis> despu&eacute;s de copiar el
- <filename>pmap.h</filename> parcheado a <filename>/usr/include/vm/</filename>.
- </para>
-
- <para>NOTA: el tama&ntilde;o del espacio de direcciones debe ser un
- m&uacute;ltiplo de cuatro megabytes.</para>
-
- <para><emphasis>[<ulink URL="mailto:dg@FreeBSD.org">David Greenman</ulink>
- a&ntilde;ade: </emphasis>Pienso que el espacio de direcciones del kernel
- necesita ser una potencia de 2, pero no estoy totalmente seguro.]</para>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<chapter id="acknowledgments">
-<title>AGRADECIMIENTOS</title>
-
- <para>
- <literallayout>
- Si ves alg&uacute;n problema o error en esta FAQ, o quieres enviar
- informaci&oacute;n para que sea a&ntilde;adida, por favor, env&iacute;a
- un mail a la direcci&oacute;n faq-es@es.FreeBSD.org. Apreciamos tu
- informaci&oacute;n e inter&eacute;s, y no podemos hacer una FAQ mejor
- sin tu ayuda.
-
-
- FreeBSD Spanish Documentation Project.
- </literallayout>
- </para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>Cristobal Talavera (cristobal@es.FreeBSD.org)</term>
- <listitem>
- <para>Por haber obtenido la libertad :)</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>David Casademunt (david@es.FreeBSD.org)</term>
- <listitem>
- <para>No hay hardware que se le resista.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Nick Clayton (nick@FreeBSD.org)</term>
- <listitem>
- <para>Gracias a su ayuda todo esto ha sido posible.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Nexus Comunicacaciones (www.ncsa.es)</term>
- <listitem>
- <para>Por mantener el mirror y darme las facilidades para hacer todo esto.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Oscar Colet (oscarc@abaforum.es)</term>
- <listitem>
- <para>Por aguantar lo que tiene que aguantar.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Jordan Hubbard</term>
- <listitem>
- <para>Actualizaciones y entradas ocasionales.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Doug White</term>
- <listitem>
- <para>Recopilaciones y respuestas en FreeBSD-questions.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Joerg Wunsch</term>
- <listitem>
- <para>Recopilaciones y respuestas en las news.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Garrett Wollman</term>
- <listitem>
- <para>Redes.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Jim Lowe</term>
- <listitem>
- <para>Informaci&oacute;n sobre multicast.</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Peter da Silva</term>
- <listitem>
- <para>"Machaca de las teclas" de FreeBSD FAQ</para>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The FreeBSD Team</term>
- <listitem>
- <para>De todo.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>y para todos los que hemos olvidado, disculpas y muchas gracias por
- todo!.</para>
-
- <para>Jes&uacute;s Rodr&iacute;guez
- <ulink URL="mailto:jesusr@FreeBSD.org">jesusr@FreeBSD.org</ulink></para>
-</chapter>
-</book>
diff --git a/es_ES.ISO8859-1/books/handbook/Makefile b/es_ES.ISO8859-1/books/handbook/Makefile
deleted file mode 100755
index ba06443285..0000000000
--- a/es_ES.ISO8859-1/books/handbook/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# $FreeBSD$
-#
-# Build the FreeBSD Handbook.
-#
-
-MAINTAINER=jesusr@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-SRCS+= advanced-networking/chapter.sgml
-SRCS+= backups/chapter.sgml
-SRCS+= basics/chapter.sgml
-SRCS+= bibliography/chapter.sgml
-SRCS+= contrib/chapter.sgml
-SRCS+= cutting-edge/chapter.sgml
-SRCS+= disks/chapter.sgml
-SRCS+= eresources/chapter.sgml
-SRCS+= hw/chapter.sgml
-SRCS+= install/chapter.sgml
-SRCS+= internals/chapter.sgml
-SRCS+= introduction/chapter.sgml
-SRCS+= kernelconfig/chapter.sgml
-SRCS+= kerneldebug/chapter.sgml
-SRCS+= kernelopts/chapter.sgml
-SRCS+= l10n/chapter.sgml
-SRCS+= linuxemu/chapter.sgml
-SRCS+= mail/chapter.sgml
-SRCS+= mirrors/chapter.sgml
-SRCS+= pgpkeys/chapter.sgml
-SRCS+= policies/chapter.sgml
-SRCS+= ppp-and-slip/chapter.sgml
-SRCS+= printing/chapter.sgml
-SRCS+= quotas/chapter.sgml
-SRCS+= security/chapter.sgml
-SRCS+= serialcomms/chapter.sgml
-SRCS+= staff/chapter.sgml
-SRCS+= x11/chapter.sgml
-SRCS+= ports/chapter.sgml
-
-# Entities
-SRCS+= authors.ent
-SRCS+= chapters.ent
-SRCS+= mailing-lists.ent
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/es_ES.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/es_ES.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
deleted file mode 100755
index ee8f901387..0000000000
--- a/es_ES.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="advanced-networking">
- <title>Networking Avanzado</title>
-
- <para>Networking Avanzado</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/appendix.decl b/es_ES.ISO8859-1/books/handbook/appendix.decl
deleted file mode 100644
index 5b0425623d..0000000000
--- a/es_ES.ISO8859-1/books/handbook/appendix.decl
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE appendix PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
diff --git a/es_ES.ISO8859-1/books/handbook/authors.ent b/es_ES.ISO8859-1/books/handbook/authors.ent
deleted file mode 100644
index 18e1c245e9..0000000000
--- a/es_ES.ISO8859-1/books/handbook/authors.ent
+++ /dev/null
@@ -1,477 +0,0 @@
-<!--
- Nombres y direcciones de email de los contribuyentes y committers.
- Los nombres de entidad deben ser los mismos que el login que tienen en
- freefall.FreeBSD.org.
-
- Usar estas entidades para hacer referencia a los autores.
-
- Por favor, mantener esta lista en orden alfab&eacute;tico por
- entidades.
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.88 2000/05/26 15:21:18 jwd Exp $
--->
-
-<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>">
-
-<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>">
-
-<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>">
-
-<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>">
-
-<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>">
-
-<!ENTITY a.alex "Alex Nash <email>alex@FreeBSD.org</email>">
-
-<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>">
-
-<!ENTITY a.amurai "Atsushi Murai <email>amurai@FreeBSD.org</email>">
-
-<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>">
-
-<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>">
-
-<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>">
-
-<!ENTITY a.asami "Satoshi Asami <email>asami@FreeBSD.org</email>">
-
-<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>">
-
-<!ENTITY a.ats "Andreas Schulz <email>ats@FreeBSD.org</email>">
-
-<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>">
-
-<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>">
-
-<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>">
-
-<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>">
-
-<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>">
-
-<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>">
-
-<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>">
-
-<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>">
-
-<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>">
-
-<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>">
-
-<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>">
-
-<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>">
-
-<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>">
-
-<!ENTITY a.cp "Chuck Paterson <email>cp@FreeBSD.org</email>">
-
-<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>">
-
-<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>">
-
-<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>">
-
-<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>">
-
-<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>">
-
-<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>">
-
-<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>">
-
-<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>">
-
-<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>">
-
-<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>">
-
-<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>">
-
-<!ENTITY a.dec "David E. Cross <email>dec@FreeBSD.org</email>">
-
-<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>">
-
-<!ENTITY a.des "Dag-Erling C. Sm&oslash;rgrav <email>des@FreeBSD.org</email>">
-
-<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>">
-
-<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>">
-
-<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>">
-
-<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>">
-
-<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>">
-
-<!ENTITY a.dirk "Dirk Fr&ouml;mberg <email>dirk@FreeBSD.org</email>">
-
-<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>">
-
-<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>">
-
-<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>">
-
-<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>">
-
-<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>">
-
-<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>">
-
-<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>">
-
-<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>">
-
-<!ENTITY a.faq "FAQ Maintainer <email>faq@FreeBSD.org</email>">
-
-<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>">
-
-<!ENTITY a.flathill "Seiichirou Hiraoka <email>flathill@FreeBSD.org</email>">
-
-<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>">
-
-<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>">
-
-<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>">
-
-<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>">
-
-<!ENTITY a.gehenna "Masahide MAEKAWA <email>gehenna@FreeBSD.org</email>">
-
-<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>">
-
-<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>">
-
-<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>">
-
-<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>">
-
-<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>">
-
-<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>">
-
-<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>">
-
-<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>">
-
-<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>">
-
-<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>">
-
-<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>">
-
-<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>">
-
-<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>">
-
-<!ENTITY a.hanai "Hiroyuki HANAI <email>hanai@FreeBSD.org</email>">
-
-<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>">
-
-<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>">
-
-<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>">
-
-<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>">
-
-<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>">
-
-<!ENTITY a.hosokawa "Tatsumi Hosokawa <email>hosokawa@FreeBSD.org</email>">
-
-<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>">
-
-<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>">
-
-<!ENTITY a.imura "Ryuichiro IMURA <email>imura@FreeBSD.org</email>">
-
-<!ENTITY a.itojun "Jun-ichiro Itoh <email>itojun@itojun.org</email>">
-
-<!ENTITY a.iwasaki "Mitsuru IWASAKI <email>iwasaki@FreeBSD.org</email>">
-
-<!ENTITY a.jake "Jake Burkholder <email>jake@FreeBSD.org</email>">
-
-<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>">
-
-<!ENTITY a.jayanth "Jayanth Vijayaraghavan <email>jayanth@FreeBSD.org</email>">
-
-<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>">
-
-<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>">
-
-<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>">
-
-<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>">
-
-<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>">
-
-<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>">
-
-<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>">
-
-<!ENTITY a.jgreco "Joe Greco <email>jgreco@FreeBSD.org</email>">
-
-<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>">
-
-<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>">
-
-<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>">
-
-<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>">
-
-<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>">
-
-<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>">
-
-<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>">
-
-<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>">
-
-<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>">
-
-<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>">
-
-<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>">
-
-<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>">
-
-<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>">
-
-<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>">
-
-<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>">
-
-<!ENTITY a.joerg "J&ouml;rg Wunsch <email>joerg@FreeBSD.org</email>">
-
-<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>">
-
-<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>">
-
-<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>">
-
-<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>">
-
-<!ENTITY a.jwd "John W. DeBoskey <email>jwd@FreeBSD.org</email>">
-
-<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>">
-
-<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>">
-
-<!ENTITY a.kato "Takenori KATO <email>kato@FreeBSD.org</email>">
-
-<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>">
-
-<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>">
-
-<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>">
-
-<!ENTITY a.kjc "Kenjiro Cho <email>kjc@FreeBSD.org</email>">
-
-<!ENTITY a.knu "Akinori MUSHA <email>knu@FreeBSD.org</email>">
-
-<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>">
-
-<!ENTITY a.kuriyama "Jun Kuriyama <email>kuriyama@FreeBSD.org</email>">
-
-<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>">
-
-<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>">
-
-<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>">
-
-<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>">
-
-<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>">
-
-<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>">
-
-<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>">
-
-<!ENTITY a.max "Masafumi NAKANE <email>max@FreeBSD.org</email>">
-
-<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>">
-
-<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>">
-
-<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>">
-
-<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>">
-
-<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>">
-
-<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>">
-
-<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>">
-
-<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>">
-
-<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>">
-
-<!ENTITY a.motoyuki "Motoyuki Konno <email>motoyuki@FreeBSD.org</email>">
-
-<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>">
-
-<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>">
-
-<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>">
-
-<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>">
-
-<!ENTITY a.murray "Murray Stokely <email>murray@FreeBSD.org</email>">
-
-<!ENTITY a.nakai "Yukihiro Nakai <email>nakai@FreeBSD.org</email>">
-
-<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>">
-
-<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>">
-
-<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>">
-
-<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>">
-
-<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>">
-
-<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>">
-
-<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>">
-
-<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>">
-
-<!ENTITY a.nyan "Yoshihiro Takahashi <email>nyan@FreeBSD.org</email>">
-
-<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>">
-
-<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>">
-
-<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>">
-
-<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>">
-
-<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>">
-
-<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>">
-
-<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>">
-
-<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>">
-
-<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>">
-
-<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>">
-
-<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>">
-
-<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>">
-
-<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>">
-
-<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>">
-
-<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>">
-
-<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>">
-
-<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>">
-
-<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>">
-
-<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>">
-
-<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>">
-
-<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>">
-
-<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>">
-
-<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>">
-
-<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>">
-
-<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>">
-
-<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>">
-
-<!ENTITY a.sada "Kenji SADA <email>sada@FreeBSD.org</email>">
-
-<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>">
-
-<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>">
-
-<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>">
-
-<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>">
-
-<!ENTITY a.shige "Shigeyuki Fukushima <email>shige@FreeBSD.org</email>">
-
-<!ENTITY a.shin "Yoshinobu Inoue <email>shin@FreeBSD.org</email>">
-
-<!ENTITY a.simokawa "Hidetoshi Shimokawa <email>simokawa@FreeBSD.org</email>">
-
-<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>">
-
-<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>">
-
-<!ENTITY a.sobomax "Maxim Sobolev <email>sobomax@FreeBSD.org</email>">
-
-<!ENTITY a.sos "S&oslash;ren Schmidt <email>sos@FreeBSD.org</email>">
-
-<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>">
-
-<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>">
-
-<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>">
-
-<!ENTITY a.sumikawa "Munechika Sumikawa <email>sumikawa@FreeBSD.org</email>">
-
-<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>">
-
-<!ENTITY a.tanimura "Seigo Tanimura <email>tanimura@FreeBSD.org</email>">
-
-<!ENTITY a.taoka "Satoshi Taoka <email>taoka@FreeBSD.org</email>">
-
-<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>">
-
-<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>">
-
-<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>">
-
-<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>">
-
-<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>">
-
-<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>">
-
-<!ENTITY a.truckman "Don &ldquo;Truck&rdquo; Lewis <email>truckman@FreeBSD.org</email>">
-
-<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>">
-
-<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>">
-
-<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>">
-
-<!ENTITY a.ume "Hajimu UMEMOTO <email>ume@FreeBSD.org</email>">
-
-<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>">
-
-<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>">
-
-<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>">
-
-<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>">
-
-<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>">
-
-<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>">
-
-<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>">
-
-<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>">
-
-<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>">
-
-<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>">
-
-<!ENTITY a.wsanchez "Wilfredo S&aacute;nchez <email>wsanchez@FreeBSD.org</email>">
-
-<!ENTITY a.yokota "Kazutaka YOKOTA <email>yokota@FreeBSD.org</email>">
-
diff --git a/es_ES.ISO8859-1/books/handbook/backups/chapter.sgml b/es_ES.ISO8859-1/books/handbook/backups/chapter.sgml
deleted file mode 100755
index ae8537ce91..0000000000
--- a/es_ES.ISO8859-1/books/handbook/backups/chapter.sgml
+++ /dev/null
@@ -1,675 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="backups">
- <title>Backups</title>
-
- <para>Las cuestiones de compatibilidad de hardware se encuentran entre las m&aacute;s
- problem&aacute;ticas hoy en d&iacute;a en la industria de los componentes de ordenador
- y FreeBSD no es, de ning&uacute;n modo, inmune a estos problemas. A este respecto, la
- ventaja de FreeBSD consistente en su capacidad para funcionar sobre componentes normales
- de PC supone una carga a la hora de soportar la sorprendente variedad de componentes que
- hay en el mercado. Si bien ser&iacute;a imposible suministrar una lista exhaustiva de
- componentes que FreeBSD soporta, esta secci&oacute;n sirve de cat&aacute;logo de los
- controladores de dispositivo incluidos con FreeBSD y de los componentes que cada
- controlador soporta. Donde resulta posible y adecuado, se incluye notas acerca de
- productos espec&iacute;ficos. Puede usted consultar la secci&oacute;n de
- <link linkend="kernelconfig-config">configuraci&oacute;n del n&uacute;cleo</link>, en
- este mismo manual, donde encontrar&aacute; una lista de los dispositivos soportados.
- </para>
-
- <para>Como FreeBSD es un proyecto realizado por voluntarios y carece de un departamento de
- pruebas financiado, dependemos de usted, el usuario, para gran parte de la informaci&oacute;n
- contenida en este cat&aacute;logo de dispositivos. Si tiene usted experiencia directa de
- componentes que funcionen o que no funcionen con FreeBSD, por favor notif&iacute;quenoslo
- mediante correo electr&oacute;nico a la lista &a.doc;. Las preguntas acerca de los
- dispositivos soportados pueden dirigirse a la lista &a.questions (consulte
- <link linkend="eresources-mail">Listas de Correo</link> para m&aacute;s informaci&oacute;n).
- Cuando env&iacute;e informaci&oacute;n o realice una pregunta, por favor recuerde especificar
- exactamente qu&eacute; versi&oacute;n de FreeBSD est&aacute; utilizando, as&iacute; como
- incluir tantos detalles de los componentes de su ordenador como sea posible.
- </para>
-
- <sect1 id="backups-tapebackups">
- <title>Soportes de cinta</title>
-
- <para>Los principales soportes de cinta son: 4 mm, 8 mm, QIC, mini-cartuchos y DLT.</para>
-
- <sect2 id="backups-tapebackups-4mm">
- <title>4 mm (DDS: Digital Data Storage, Almacenamiento digital de datos)</title>
-
- <para>Las cintas de 4 mm est&aacute;n sustituyendo a las QIC como el soporte de copias
- de seguridad m&aacute;s popular. Esta tendencia se aceler&oacute; considerablemente
- cuando Conner compr&oacute; Archive, un destacado fabricante de unidades QIC, y
- entonces detuvo la producci&oacute;n de unidades QIC. Las unidades de 4 mm son
- peque&ntilde;as y silenciosas, pero no tienen la reputaci&oacute;n de fiabilidad de
- las unidades de 8 mm. Los cartuchos son menos caros y m&aacute;s peque&ntilde;os
- (76 x 51 x 12 mm, 3 x 2 x 0.5 pulgadas) que los cartuchos de 8 mm. Las unidades de 4 mm,
- como las de 8 mm, presentan una vida comparativamente corta del cabezal por el mismo
- motivo, ambas emplean un barrido helicoidal.
- </para>
-
- <para>La tasa de transferencia de datos en estas unidades comienza en torno a 150 kB/s,
- alcanzando picos de 500 kB/s. La capacidad de almacenamiento comienza en 1.3 GB y llega
- hasta 2.0 GB. La compresi&oacute;n mediante hardware, disponible en la mayor&iacute;a
- de estas unidades, duplica aproximadamente la capacidad. Las unidades de cinta
- m&uacute;ltiples pueden constar de 6 unidades en un mismo chasis, con funciones de
- cambio autom&aacute;tico de cintas. La capacidad de las librer&iacute;as (de cintas)
- alcanzan 240 GB.
- </para>
-
- <para>Las unidades de 4 mm, como las de 8 mm, emplean un barrido helicoidal. Todas las
- ventajas e inconvenientes del barrido helicoidal son aplicables tanto a las unidades
- de 4 mm, como a las de 8 mm.
- </para>
-
- <para>Las cintas deber&iacute;an ser retiradas de uso tras 2000 lecturas o 100 copias
- de seguridad completas.
- </para>
- </sect2>
-
- <sect2 id="backups-tapebackups-8mm">
- <title>8 mm (Exabyte)</title>
-
- <para>Las unidades de 8 mm son las m&aacute;s comunes para controladoras SCSI; son la
- mejor elecci&oacute;n para intercambiar cintas. En casi cualquier sistema se puede
- encontrar una unidad Exabyte de 8 mm con 2 GB de capacidad. Las unidades de 8 mm son
- fiables, c&oacute;modas y silenciosas. Los cartuchos son baratos y peque&ntilde;os
- (122 x 84 x 15 mm; 4.8 x 3.3 x 0.6 pulgadas). Un inconveniente de las cintas de 8 mm
- es la vida relativamente corta de la cinta y de los cabezales, debido a la alta tasa
- de movimiento relativo entre ambos.
- </para>
-
- <para>La tasa de transferencia de datos oscila, aproximadamente, entre 250 kB/s y
- 500 kB/s. La capacidad de almacenamiento comienza en 300 MB y alcanza 7 GB. La
- compresi&oacute;n mediante hardware, disponible en la mayor&iacute;a de estas unidades,
- aproximadamente dobla la capacidad. Esta unidades est&aacute;n disponibles como unidades
- independientes y como unidades de cinta m&uacute;ltiples, con 6 unidades y 120 cintas
- en un mismo chasis. Las cintas son cambiadas autom&aacute;ticamente por la unidad. La
- capacidad de las librer&iacute;as alcanza m&aacute;s de 840 GB.
- </para>
-
- <para>La informaci&oacute;n se registra en la cinta empleando para ello un barrido
- helicoidal, los cabezales se sit&uacute;an formando un cierto &aacute;ngulo con la
- cinta (aproximadamente 6 grados). La cinta rodea 270 grados al soporte que sostiene
- los cabezales. El soporte gira mientras la cinta se desliza sobre ella. El resultado
- es una gran densidad de datos y las pistas dispuestas muy cerca entre s&iacute; y a
- trav&eacute;s de la cinta, formando un &aacute;ngulo, desde un extremo hasta el otro.
- </para>
- </sect2>
-
- <sect2 id="backups-tapebackups-qic">
- <title>QIC</title>
-
- <para>Las cintas y las unidades QIC-150 son, quiz&aacute;s, las m&aacute;s comunes. Las
- unidades QIC son las menos caras de entre las unidades de backup "serias". El
- inconveniente es el coste de las cintas. Las cintas QIC son caras comparadas con las
- de 8mm o las de 4mm, hasta 5 veces m&aacute;s caras por GB. Pero si sus necesidades se
- pueden satisfacer con media docena de cintas, QIC puede ser una elecci&oacute;n acertada.
- Las unidades QIC son las unidades de cinta <emphasis>m&aacute;s</emphasis> comunes. En
- todos los sistemas hay una unidad QIC de alguna densidad. Ahi reside el problema, QIC
- presenta un gran n&uacute;mero de densidades en cintas f&iacute;sicamente similares
- (en ocasiones, id&eacute;nticas). Las unidades QIC no son silenciosas. Estas unidades
- resultan audibles cuando se sit&uacute;an antes de comenzar a escribir y claramente
- audibles cuando leen, escriben o se sit&uacute;an (seek). Las dimensiones de las cintas
- QIC son: 15.2 x 10.2 x 1.7 mm (6 x 4 x 0.7 pulgadas). Los
- <link linkend="backups-tapebackups-mini">mini-cartuchos</link>, que tambi&eacute;n
- utilizan cinta de 1/4 de pulgada de anchura, se comentan en otro apartado. No
- est&aacute;n disponibles ni cambiadores, ni unidades m&uacute;ltiples de cintas.
- </para>
-
- <para>La tasa de transferencia de datos oscila entre, aproximadamente, 150k B/s y 500kB/s.
- La capacidad de almacenamiento oscila ente 40 MB y 15 GB. La compresi&oacute;n mediante
- hardware est&aacute; disponible en muchas de las nuevas unidades QIC. Las unidades QIC
- se instalan cada vez menos; est&aacute;n siendo desplazadas por las unidades DAT.
- </para>
-
- <para>La informaci&oacute;n se almacena en pistas. Las pistas est&aacute;n dispuestas
- longiudinalmente en la cinta, de un extremo al otro. El n&uacute;mero de pistas, y por
- tanto la anchura de las mismas, var&iacute;a en funci&oacute;n de la capacidad de la
- cinta. Si no todas, la mayor&iacute;a de las unidades nuevas presentan compatibilidad
- con las anteriores al menos para la lectura (frecuentemente, tambi&eacute;n para la
- escritura). QIC tiene una buena reputaci&oacute;n en relaci&oacute;n con la seguridad
- de los datos (el mecanismo es m&aacute;s simple y m&aacute;s robusto que el de las
- unidades con barrido helicoidal).
- </para>
-
- <para>Las cintas deber&iacute;n ser retiradas de uso tras 5000 copias de seguridad.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-mini">
- <title>* Mini-Cartuchos</title>
-
- <para></para>
- </sect2>
-
- <sect2 id="backups-tapebackups-dlt">
- <title>DLT</title>
-
- <para>Las unidades DLT presentan la tasa de transferencia de datos m&aacute;s elevada
- de todos los tipos de unidades comentados. La cinta de 12.5 mm (1/2 pulgada)
- est&aacute; contenida en un cartucho de una &uacute;nica bobina (100 x 100 x 25 mm;
- 4 x 4 x 1 pulgadas). El cartucho tiene una puerta que se abate a lo largo de un
- costado del mismo. El mecanismo de la unidad abre esta puerta para extraer la
- gu&iacute;a de la cinta. La gu&iacute;a de la cinta tiene un agujero oval que es
- usado por la unidad para "enganchar" la cinta. La bobina en la que se va a enrollar
- la cinta se localiza en el interior de la unidad. Los restantes cartuchos de cinta
- mencionados (con la &uacute;nica excepci&oacute;n de las cintas de 9 pistas) tienen
- situadas en el interior del propio cartucho ambas bobinas, tanto aquella en la que
- est&aacute; inicialmente enrollada la cinta, como la bobina en la que se va a enrollar.
- </para>
-
- <para>La tasa de transferencia de datos es aproximadamente 1.5 MB/s, tres veces la de
- las unidades de 4 mm, de 8 mm y QIC. La capacidad oscila entre 10 GB y 10 GB para una
- unidad sencilla. Las unidades se encuentran disponibles como unidades sencillas con
- cambiador de cintas y tambi&eacute;n como unidades m&uacute;ltiples con cambiador de
- cintas, conteniendo desde 5 hasta 900 cintas, desde 1 a 20 unidades y siendo capaces
- de almacenar entre 50 GB y 9 TB.
- </para>
-
- <para>La informaci&oacute;n se graba en la cinta en pistas paralelas a la direcci&oacute;n
- de desplazamiento (como en las cintas QIC). Se escriben dos pistas a la vez. La vida
- &uacute;til de los cabezales de lectura/escritura es relativamente larga; una vez la
- cinta se detiene, no hay movimiento relativo entre los cabezales y la cinta.
- </para>
- </sect2>
-
- <sect2>
- <title>Usando una cinta nueva por primera vez</title>
-
- <para>La primera vez que intente leer o escribir en una cinta nueva y completamente virgen,
- la operaci&oacute;n fracasar&aacute;. Los mensajes de la consola deber&iacute;an ser
- similares a los siguientes:
- </para>
-
- <screen>sa0(ncr1:4:0): NOT READY asc:4,1
-sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
-
- <para>La cinta no contiene un bloque de identificaci&oacute;n (bloque n&uacute;mero 0).
- Desde la adopci&oacute;n del standard QIC-525, todas las unidades QIC escriben en la
- cinta un bloque de identificaci&oacute;n. Caben dos soluciones:
- </para>
-
- <para><command>mt fsf 1</command> hace que la unidad escriba un bloque de
- identificaci&oacute;n en la cinta.
- </para>
-
- <para>Use el bot&oacute;n del panel frontal de la unidad para expulsar la cinta.</para>
-
- <para>Reinserte la cinta y transfiera mediante &man.dump.8; la informaci&oacute;n a
- la cinta.
- </para>
-
- <para>&man.dump.8; mostrar&aacute; el mensaje <literal>DUMP: End of tape
- detected</literal> y en la consola aparecer&aacute;: <literal>HARDWARE
- FAILURE info:280 asc:80,96</literal></para>
-
- <para>rebobine la cinta utilizando: <command>mt rewind</command></para>
-
- <para>Las siguientes operaciones sobre la cinta tendr&aacute;n &eacute;xito.</para>
- </sect2>
- </sect1>
-
- <sect1 id="backup-programs">
- <title>Programas para hacer copias de seguridad</title>
-
- <para>Los tres programas principales son
- &man.dump.8;,
- &man.tar.1;,
- y
- &man.cpio.1;.</para>
-
- <sect2>
- <title>Dump y Restore</title>
-
- <para>&man.dump.8; y &man.restore.8; son los programas tradicionales de Unix para
- realizar copias de seguridad. Operan sobre la unidad como si &eacute;sta fuese un
- conjunto de bloques de disco, a un nivel inferior a las abstracciones de archivos,
- enlaces y directorios, creadas por los sistemas de archivos. &man.dump.8; hace copias
- de seguridad de dispositivos, sistemas de archivos enteros, no de partes de un sistema
- de archivos ni de &aacute;rboles de directorios que se extienden por m&aacute;s de un
- sistema de archivos utilizando enlaces simb&oacute;licos, o bien montando un sistema
- bajo el otro. &man.dump.8; no escribe en la cinta archivos ni directorios, sino que
- m&aacute;s bien escribe bloques de datos que son las piezas con las que se construyen
- los archivos y directorios. &man.dump.8; presenta peculiaridades que provienen de su
- origen en la Versi&oacute;n 6 del Unix de ATT (en torno a 1975). Los par&aacute;metros
- por defecto resultan adecuados para las cintas de 9 pistas (6250 bpi), pero no para los
- soportes de alta densidad disponibles hoy en d&iacute;a (hasta 62,182 ftpi). Estos
- valores por defecto deben ser anulados mediante la l&iacute;nea de comandos para
- utilizar la capacidad de las unidades de cinta actuales.
- </para>
-
- <para>&man.rdump.8; y &man.rrestore.8; hacen copias de seguridad a trav&eacute;s de la
- red, en una unidad conectada a otro ordenador. Ambos programas se basan en &man.rcmd.3;
- y &man.ruserok.3; para acceder a la unidad de cinta remota. Por tanto, el usuario que
- realiza la copia de seguridad debe tener acceso al ordenador remoto mediante
- <literal>rhosts</literal>. Los argumentos suministrados a &man.rdump.8; y a
- &man.rrestore.8; deben ser adecuados para el ordenador remoto. (Por ejemplo, cuando
- est&eacute; volcando datos mediante <command>rdump</command> desde un ordenador con
- FreeBSD a una unidad Exabyte conectada a una estaci&oacute;n Sun, de nombre
- <hostid>komodo</hostid>, emplee:
- <command>/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nrsa8 /dev/rda0a 2>&amp;1</command>)
- Atenci&oacute;n: permitir comandos <literal>rhosts</literal> afecta a la seguridad.
- Eval&uacute;e su sitaci&oacute;n ciudadosamente.
- </para>
- </sect2>
-
- <sect2>
- <title>Tar</title>
-
- <para>&man.tar.1; tambi&eacute;n se remonta a la Versi&oacute;n 6 del Unix de ATT
- (hacia 1975). &man.tar.1; trabaja con el sistema de archivos; &man.tar.1; escribe
- archivos y directorios en la cinta. &man.tar.1; no soporta todas las opciones
- disponibles para &man.cpio.1;, pero &man.tar.1; no necesita la inusual tuber&iacute;a
- que &man.cpio.1; emplea.
- </para>
-
- <para>La mayor parte de las versiones de &man.tar.1; no soportan la realizaci&oacute;n
- de copias de seguridad a trav&eacute;s de la red. La versi&oacute;n GNU de &man.tar.1;,
- la que se usa en FreeBSD, soporta dispositivos remotos empleando la misma sintaxis que
- &man.rdump.8;. Para hacer una copia de seguridad mediante &man.tar.1; a una unidad
- Exabyte conectada a una estaci&oacute;n Sun de nombre <hostid>komodo</hostid>, se
- utilizar&iacute;a: <command>/usr/bin/tar cf komodo:/dev/nrsa8 . 2>&amp;1</command>.
- Para las versiones que no soportan dispositivos remotos, se puede utilizar una
- tuber&iacute;a y &man.rsh.1; para enviar los datos a la unidad remota.
- </para>
- </sect2>
-
- <sect2>
- <title>Cpio</title>
-
- <para>&man.cpio.1; es el programa original de Unix para intercambiar archivos mediante
- soportes magn&eacute;ticos. &man.cpio.1; tiene, entre muchas otras, opciones para
- realizar intercambio (swapping) de bytes, escribir en diferentes formatos de archivo y
- enviar mediante una tuber&iacute;a los datos a otros programas. Esta &uacute;ltima
- prestaci&oacute;n hace de &man.cpio.1; una excelente elecci&oacute;n para soportes de
- instalaci&oacute;n. &man.cpio.1; no sabe c&oacute;mo recorrer el &aacute;rbol de
- directorios, por lo que se le debe suministrar una lista de archivos a trav&eacute;s
- de <filename>stdin</filename>.
- </para>
-
- <para>&man.cpio.1; no soporta la realizaci&oacute;n de copias de seguridad a trav&eacute;s
- de la red. Puede utilizar una tuber&iacute;a junto con &man.rsh.1; para enviar los datos
- a una unidad de cinta remota.
- </para>
- </sect2>
-
- <sect2>
- <title>Pax</title>
-
- <para>&man.pax.1; es la respuesta de IEEE/POSIX a &man.tar.1; y a &man.cpio.1;. A lo
- largo de los a&ntilde;os, las distintas versiones de &man.tar.1; y de &man.cpio.1; se
- han vuelto ligeramente incompatibles. Por ello, m&aacute;s que luchar para estandarizarlas
- completamente, POSIX cre&oacute; un nuevo programa para realizar copias de seguridad.
- &man.pax.1; lee y escribe en varios de los diversos formatos de &man.cpio.1; y
- &man.tar.1;, adem&aacute;s de nuevos formatos propios. Su juego de comandos se parece
- m&aacute;s al de &man.cpio.1; que al de &man.tar.1;.
- </para>
- </sect2>
-
- <sect2 id="backups-programs-amanda">
- <title>Amanda</title>
-
- <para><ulink url="../ports/misc.html#amanda-2.4.0">Amanda</ulink> (Advanced Maryland
- Network Disk Archiver) constituye, m&aacute;s que un &uacute;nico programa, un
- sistema con estructura cliente/servidor. Un servidor de Amanda realizar&aacute;, en
- una &uacute;nica unidad de cinta, copias de seguridad de un n&uacute;mero indeterminado
- de ordenadores que tengan clientes de Amanda y comunicaci&oacute;n mediante red con
- el servidor de Amanda. Un problema habitual en aquellos lugares en los que hay muchos
- discos grandes consiste en que el tiempo necesario para realizar copias de seguridad
- directamente sobre la cinta excede el tiempo disponible para la tarea. Amanda soluciona
- este problema. Amanda puede utilizar un "disco contenedor" para realizar copias de
- seguridad de varios sistemas de archivos a la vez. Amanda crea "juegos de archivos": un
- grupo de cintas utilizadas por un determinado periodo de tiempo para hacer copias de
- seguridad completas (full backups) de todos los sistemas de archivos indicados en el
- archivo de configuraci&oacute;n de Amanda. El "juego de archivos" tambi&eacute;n
- contiene copias de seguridad incrementales (o diferenciales) de los sistemas de archivos,
- realizadas diariamente (normalmente por la noche). Restaurar un sistema de archivos
- da&ntilde;ado requiere la copia de seguridad completa m&aacute;s reciente y las copias
- de seguridad incrementales.
- </para>
-
- <para>El archivo de configuraci&oacute;n permite un control preciso de las copias de
- seguridad y del tr&aacute;fico que Amanda genera en la red. Amanda usar&aacute; cualquiera
- de los programas mencionados arriba para escribir los datos en la cinta. Amanda se
- encuentra disponible tanto en forma de port, como en forma de paquete (package). Amanda no
- se instala por defecto.
- </para>
- </sect2>
-
- <sect2>
- <title>No haga nada</title>
-
- <para>&ldquo;No haga nada&rdquo; no es un programa de ordenador, pero es la estrategia
- de copias de seguridad m&aacute;s ampliamente usada. No presenta costes iniciales. No
- hay que seguir ninguna planificaci&oacute;n. Simplemente diga no. Si algo le sucediese
- a sus datos, sonr&iacute;a y res&iacute;gnese!
- </para>
-
- <para>Si su tiempo y sus datos no tienen valor alguno, entonces &ldquo;No haga nada&rdquo;
- es el procedimiento de realizaci&oacute;n de copias de seguridad m&aacute;s adecuado
- para usted. Pero sepa que, como Unix es una herramienta &uacute;til, puede que en seis
- meses tenga usted una colecci&oacute;n de archivos que le resulte valiosa.
- </para>
-
- <para>&ldquo;No haga nada&rdquo; es el m&eacute;todo de realizaci&oacute;n de copias de
- seguridad apropiado para <filename>/usr/obj</filename> y otros &aacute;rboles de
- directorios que pueden ser exactamente reproducidos por su odenador. Un ejemplo de
- esto lo constituyen los archivos que contienen las p&aacute;ginas de este manual, que
- han sido generados a partir de archivos <acronym>SGML</acronym>. Hacer copias de seguridad
- de estos archivos <acronym>HTML</acronym> resulta innecesario. De los archivos fuente en
- formato <acronym>SGML</acronym> se realiza regularmente copias de seguridad.
- </para>
- </sect2>
-
- <sect2>
- <title>&iquest;Qu&eacute; programa es el mejor para realizar copias de seguridad?</title>
-
- <para>&man.dump.8; <emphasis>Punto.</emphasis> Elizabeth D. Zwicky prob&oacute;
- concienzudamente todos los programas para realizar copias de seguridad aqu&iacute;
- comentados. La mejor elecci&oacute;n para preservar todos los datos y las peculiaridades
- de los sistemas de archivos de Unix es &man.dump.8;. Elizabeth cre&oacute; sistemas de
- archivos que presentaban una gran variedad de condiciones inusuales (y algunas no tan
- inusuales) y prob&oacute; cada programa haciendo copias de seguridad de esos sistemas
- de archivos y restaur&aacute;ndolas. Estas condiciones inusuales inclu&iacute;an:
- archivos con huecos, archivos con huecos y con un bloque de caracteres NULL, archivos
- con caracteres extra&ntilde;os en el nombre, archivos sobre los que no se pod&iacute;a
- leer ni escribir, dispositivos, archivos que cambiaban de tama&ntilde;o durante la
- realizaci&oacute;n de la copia de seguridad, archivos que eran creados/borrados durante
- la realizaci&oacute;n de la copia de seguridad, etc. Elisabeth present&oacute; los
- resultados de su estudio en LISA V, en octubre de 1991. V&eacute;ase
- <ulink url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">Torture-testing Backup
- and Archive Programs</ulink>.
- </para>
- </sect2>
-
- <sect2>
- <title>Procedimiento de restauraci&oacute;n de emergencia</title>
-
- <sect3>
- <title>Antes del desastre</title>
-
- <para>Hay cuatro pasos que necesita realizar para prepararse para cualquier desastre que
- pudiera ocurrir.
- </para>
-
- <para>En primer lugar, imprima la tabla de particiones BSD (disklabel) de cada uno de
- sus discos (por ejemplo, <command>disklabel da0 | lpr</command>), su tabla de sistemas
- de archivos (<command>/etc/fstab</command>) y todos los mensajes que aparecen al
- iniciar el sistema operativo. Haga dos copias de cada uno.
- </para>
-
- <para>En segundo lugar, compruebe que los discos de inicio y de reparaci&oacute;n
- (<filename>boot.flp</filename> y <filename>fixit.flp</filename>) contienen controladores
- para todos sus dispositivos. El modo m&aacute;s sencillo de comprobarlo es reiniciar
- el ordenador con el disco de arranque en la disquetera y comprobar los mensajes que
- aparecen al iniciarse el sistema operativo. Si todos sus dispositivos aparecen
- mencionados y est&aacute;n operativos, pase al punto tercero.
- </para>
-
- <para>De no ser as&iacute;, deber&aacute; crear a medida dos discos de inicio que
- contengan un n&uacute;cleo que permita montar todos sus discos y acceder a su unidad
- de cinta. Estos discos deben contener: &man.fdisk.8;, &man.disklabel.8;, &man.newfs.8;,
- &man.mount.8;, y cualquier otro programa que utilice para realizar copias de seguridad.
- Estos programas deben estar enlazados est&aacute;ticamente. Si utiliza &man.dump.8;,
- el disquete deber&aacute; contener tambi&eacute;n &man.restore.8;.
- </para>
-
- <para>En tercer lugar, realice copias de seguridad regularmente. Cualquier cambio que
- haga tras su &uacute;ltima copia de seguridad puede resultar perdido sin posibilidad
- de recuperaci&oacute;n. Proteja contra escritura las cintas que contengan las copias
- de seguridad.
- </para>
-
- <para>En cuarto lugar, pruebe los discos (bien <filename>boot.flp</filename> y
- <filename>fixit.flp</filename> o bien los dos discos que cre&oacute; a medida en el
- segundo paso) y las cintas que contienen las copias de seguridad. Tome notas del
- proceso. Almacene esas notas junto con los discos de arranque, los datos que
- imprimi&oacute; y las cintas que contienen las copias de seguridad. Se encontrar&aacute;
- tan inquieto cuando proceda a la restauraci&oacute;n que las notas pueden impedir que
- destruya las cintas que contienen las copias de seguridad (&iquest;C&oacute;mo? En
- lugar de <command>tar xvf /dev/rsa0</command>, usted podr&iacute;a accidentalmente
- teclear <command>tar cvf /dev/rsa0</command> y sobreescribir las cintas que contienen
- las copias de seguridad).
- </para>
-
- <para>Como medida adicional de seguridad, haga discos de arranque y copias por duplicado
- cada vez. Guarde uno de cada en un lugar lejano. Un lugar lejano NO es el s&oacute;tano
- del mismo edificio. Varias compa&ntilde;&iacute;as aprendieron esta lecci&oacute;n por
- las malas en el Centro Mundial del Comercio (World Trade Center). Un lugar lejano
- deber&iacute;a estar f&iacute;sicamente separado de sus ordenadores y discos duros por
- una distancia considerable.
- </para>
-
- <para>Un ejemplo de script para crear un disco de arranque:</para>
-
- <programlisting>
-<![ CDATA [#!/bin/sh
-#
-# crear un disco de recuperacion
-#
-# formatear el disco
-#
-PATH=/bin:/sbin:/usr/sbin:/usr/bin
-
-fdformat -q fd0
-if [ $? -ne 0 ]
-then
- echo "Disco defectuoso, por favor utilice uno nuevo."
- exit 1
-fi
-
-# escribir bloques de arranque en el disco
-#
-disklabel -w -B /dev/rfd0c fd1440
-
-#
-# crear un nuevo sistema de archivos en la unica particion existente
-#
-newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a
-
-#
-# montar el nuevo disco
-#
-mount /dev/fd0a /mnt
-
-#
-# crear los directorios necesarios
-#
-mkdir /mnt/dev
-mkdir /mnt/bin
-mkdir /mnt/sbin
-mkdir /mnt/etc
-mkdir /mnt/root
-mkdir /mnt/mnt # para la particion raiz
-mkdir /mnt/tmp
-mkdir /mnt/var
-
-#
-# poblar los directorios
-#
-if [ ! -x /sys/compile/MINI/kernel ]
-then
- cat << EOM
-El nucleo MINI no existe, por favor cree uno.
-Aqui tiene un ejemplo de archivo de configuracion:
-#
-# MINI -- Un nucleo para poner FreeBSD en un disco
-#
-machine "i386"
-cpu "I486_CPU"
-ident MINI
-maxusers 5
-
-options INET # necesario para _tcp _icmpstat _ipstat
- # _udpstat _tcpstat _udb
-options FFS # sistema de archivos rapido (Fast
- # File System) de Berkeley
-options FAT_CURSOR # cursor en forma de bloque en syscons o
- # pccons
-options SCSI_DELAY=15 # ser pesimista acerca de dispositivos
- # SCSI genericos
-options NCONS=2 # 1 consola virtual
-options USERCONFIG # permitir la configuracion por el
- # usuario mediante -c XXX
-
-config kernel root on da0 swap on da0 and da1 dumps on da0
-
-controller isa0
-controller pci0
-
-controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
-disk fd0 at fdc0 drive 0
-
-controller ncr0
-
-controller scbus0
-
-device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
-device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
-
-device da0
-device da1
-device da2
-
-device sa0
-
-pseudo-device loop # requerido por INET
-pseudo-device gzip # ejecutar archivos en formato a.out que estan
- # comprimidos con gzip
-EOM
- exit 1
-fi
-
-cp -f /sys/compile/MINI/kernel /mnt
-
-gzip -c -best /sbin/init > /mnt/sbin/init
-gzip -c -best /sbin/fsck > /mnt/sbin/fsck
-gzip -c -best /sbin/mount > /mnt/sbin/mount
-gzip -c -best /sbin/halt > /mnt/sbin/halt
-gzip -c -best /sbin/restore > /mnt/sbin/restore
-
-gzip -c -best /bin/sh > /mnt/bin/sh
-gzip -c -best /bin/sync > /mnt/bin/sync
-
-cp /root/.profile /mnt/root
-
-cp -f /dev/MAKEDEV /mnt/dev
-chmod 755 /mnt/dev/MAKEDEV
-
-chmod 500 /mnt/sbin/init
-chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
-chmod 555 /mnt/bin/sh /mnt/bin/sync
-chmod 6555 /mnt/sbin/restore
-
-#
-# crear los nodos de los dispositivos
-#
-cd /mnt/dev
-./MAKEDEV std
-./MAKEDEV da0
-./MAKEDEV da1
-./MAKEDEV da2
-./MAKEDEV sa0
-./MAKEDEV pty0
-cd /
-
-#
-# crear una tabla minima de sistemas de archivos
-#
-cat > /mnt/etc/fstab <<EOM
-/dev/fd0a / ufs rw 1 1
-EOM
-
-#
-# crear un archivo de passwords minimo
-#
-cat > /mnt/etc/passwd <<EOM
-root:*:0:0:Charlie &:/root:/bin/sh
-EOM
-
-cat > /mnt/etc/master.passwd <<EOM
-root::0:0::0:0:Charlie &:/root:/bin/sh
-EOM
-
-chmod 600 /mnt/etc/master.passwd
-chmod 644 /mnt/etc/passwd
-/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
-
-#
-# desmontar el disco e informar al usuario
-#
-/sbin/umount /mnt]]></programlisting>
- </sect3>
-
- <sect3>
- <title>Tras el desastre</title>
-
- <para>La pregunta clave es: &iquest;ha sobrevivido su hardware? Como ha estado usted
- realizando copias de seguridad regularmente, no hace falta que se preocupe por sus
- datos.
- </para>
-
- <para>Si se ha da&ntilde;ado su hardware, comience por sustituir aquellos dispositivos
- que se hayan estropeado.
- </para>
-
- <para>Si su hardware se encuentra bien, compruebe sus discos. Si est&aacute; usando un
- disco de arranque creado a medida, arranque en modo monousuario (teclee
- <literal>-s</literal> cuando aparezca el prompt <prompt>boot:</prompt>). S&aacute;ltese
- el siguiente p&aacute;rrafo.
- </para>
-
- <para>Si est&aacute; usando los disquetes <filename>boot.flp</filename> y
- <filename>fixit.flp</filename>, contin&uacute;e leyendo. Introduzca el disquete
- <filename>boot.flp</filename> en la primera unidad e inicie el ordenador. En la
- pantalla aparecer&aacute; el men&uacute; original de instalaci&oacute;n. Seleccione
- la opci&oacute;n de reparaci&oacute;n,
- <literal>Fixit--Repair mode with CDROM or floppy</literal>. Cuando se le solicite,
- introduzca el disquete <filename>fixit.flp</filename>. <command>restore</command> y
- los otros programas que necesita se encuentran en <filename>/mnt2/stand</filename>.
- </para>
-
- <para>Recupere cada sistema de archivos por separado.</para>
-
- <para>Intente montar la partici&oacute;n ra&iacute;z de su primer disco mediante
- &man.mount.8; (por ejemplo, <command>mount /dev/da0a /mnt</command>). Si la tabla de
- particiones BSD (disklabel) se encuentra da&ntilde;ada, use &man.disklabel.8; para
- reparticionar y etiquetar el disco de modo que coincida con la etiqueta que usted
- imprimi&oacute; y guard&oacute;. Utilice &man.newfs.8; para volver a crear los sistemas
- de archivos. Vuelva a montar la partici&oacute;n ra&iacute;z del disquete en modo de
- lectura y escritura (<command>mount -u -o rw /mnt</command>). Use los programas
- apropiados y las cintas que contienen las copias de seguridad para recuperar los datos
- de este sistema de archivos (por ejemplo, <command>restore vrf /dev/sa0</command>).
- Desmonte el sistema de archivos (por ejemplo, <command>umount /mnt</command>). Repita
- este proceso para cada sistema de archivos que resultase da&ntilde;ado.
- </para>
-
- <para>Una vez que su sistema se encuentre funcionando, copie sus datos en cintas nuevas.
- Sea lo que fuere lo que caus&oacute; la p&eacute;rdida de datos, puede suceder
- nuevamente. Emplear una hora en esta tarea le puede salvar de problemas adicionales en
- el futuro.</para>
- </sect3>
-
- <sect3>
- <title>* No me prepar&eacute; para el desastre, &iquest;Qu&eacute; hago ahora?</title>
-
- <para></para>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml b/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml
deleted file mode 100755
index 4cdb12b120..0000000000
--- a/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml
+++ /dev/null
@@ -1,156 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="basics">
- <title>Unix b&aacute;sico</title>
-
- <sect1 id="basics-man">
- <title>El manual en l&iacute;nea</title>
-
- <para>La documentaci&oacute;n m&aacute;s completa en FreeBSD est&aacute;a
- en forma de <emphasis>p&aacute;ginas man</emphasis>. Pr&aacute;cticamente
- todos los programas del sistema incluyen un peque&ntilde;o manual de
- referencia explicando las operaciones b&aacute;sicas y los diferentes
- argumentos del programa. Estos manuales pueden verse con el comando
- <command>man</command>. El uso del comando <command>man</command> es
- simple:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput>
- </screen>
- </informalexample>
-
- <para><replaceable>command</replaceable> es el nombre del comando del que
- queremos aprender. Por ejemplo, para saber m&aacute;s sobre el comando
- <command>ls</command> teclea:</para>
- <informalexample>
- <screen>&prompt.user; <userinput>man ls</userinput></screen>
- </informalexample>
-
- <para>El manual en l&iacute;nea est&aacute; dividido en secciones
- numeradas:</para>
-
- <orderedlist>
-
- <listitem>
- <para>Comandos de usuario</para>
- </listitem>
-
- <listitem>
- <para>Llamadas de sistema y n&uacute;meros de error</para>
- </listitem>
-
- <listitem>
- <para>Funciones en las librer&iacute;as de C</para>
- </listitem>
-
- <listitem>
- <para>Drivers de dispositivos</para>
- </listitem>
-
- <listitem>
- <para>Formatos de fichero</para>
- </listitem>
-
- <listitem>
- <para>Juegos y otras diversiones</para>
- </listitem>
-
- <listitem>
- <para>Informaci&oacute;n varia</para>
- </listitem>
-
- <listitem>
- <para>Mantenimiento del sistema y comandos de sistema</para>
- </listitem>
-
- </orderedlist>
-
- <para>En algunos casos, el mismo concepto aparece en m&aacute;s de una
- secci&oacute;n del manual en l&iacute;nea. Por ejemplo, hay un comando
- de usuario <command>chmod</command> y una llamada de sistema
- <function>chmod()</function>. En este caso, puedes espicificar al comando
- <command>man</command> cual de ellos quieres ver, especificando la
- secci&oacute;n:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
- </informalexample>
-
- <para>Esto mostrar&aacute; la informaci&oacute;n del comando de usuario
- <command>chmod</command>. Las referencias a secciones particulares del
- manual en l&iacute;nea tradicionalmente se incluyen entre par&eacute;ntesis
- en la documentaci&oacute;n escrita, de manera que <citerefentry>
- <refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- se refiere al comando de usuario <command>chmod</command> y <citerefentry>
- <refentrytitle>chmod</refentrytitle><manvolnum>2</manvolnum>
- </citerefentry> se refiere a la llamada de sistema.</para>
-
- <para>Esto es correcto si sabes el nombre del comando y simplemente
- quieres saber como usarlo, pero &iquest;qu&eacute; pasa si no recuerdas
- el nombre del comando?. Puedes usar <command>man</command> para buscar
- palabras en las <emphasis>descripciones</emphasis> de los comandos usando
- el par&aacute;metro <option>-k</option>:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>man -k mail</userinput></screen>
- </informalexample>
-
- <para>Con este comando obtendr&aacute;s una lista de todos los comandos
- que contienen en su descripci&oacute;n la palabra &ldquo;mail&rdquo;.
- Actualmente, este comando realiza la misma funci&oacute;n que el comando
- <command>apropos</command>.</para>
-
- <para>&iquest;Quieres saber que hacen todos los comandos existentes en
- <filename>/usr/bin</filename>?. Simplemente haz:
-
- <informalexample>
- <screen>&prompt.user; <userinput>cd /usr/bin; man -f *</userinput></screen>
- </informalexample>
-
- o
-
- <informalexample>
- <screen>&prompt.user; <userinput>cd /usr/bin; whatis *</userinput></screen>
- </informalexample>ya que realizan la misma funci&oacute;n .</para>
-
- </sect1>
-
- <sect1 id="basics-info">
- <title>Fichero GNU Info</title>
-
- <para>FreeBSD incluye muchas aplicaciones y utilidades producidas por la
- Free Software Foundation (FSF). Como complemento a las p&aacute;ginas man,
- estos programas incluyen unos documentos hipertexto m&aacute;s extensos
- llamados ficheros &ldquo;info&rdquo; los cuales pueden visualizarse con el
- comando <command>info</command>, o, si tienes instalado
- <command>emacs</command>, con el modo info de <command>emacs</command>.
- </para>
-
- <para>Para usar el comando <citerefentry><refentrytitle>info</refentrytitle><manvolnum>1</manvolnum></citerefentry>, simplemente teclea:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>info</userinput></screen>
- </informalexample>
-
- <para>Para una breve descripci&oacute;n, teclea <userinput>h</userinput>.
- Para una referencia r&aacute;pida de comandos, teclea
- <userinput>?</userinput>.</para>
-
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/bibliography/chapter.sgml b/es_ES.ISO8859-1/books/handbook/bibliography/chapter.sgml
deleted file mode 100755
index daf87e72e8..0000000000
--- a/es_ES.ISO8859-1/books/handbook/bibliography/chapter.sgml
+++ /dev/null
@@ -1,488 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="bibliography">
- <title>Bibliograf&iacute;a</title>
-
- <para>Mientras que las p&aacute;ginas del manual proveen la referencia definitiva
- para partes individuales del sistema operativo FreeBSD, son notorias por
- no ilustrar como poner todas las piezas juntas para hacer que todo el
- sistema operativo funcione f&aacute;cilmente. Debido a esto, no hay
- substituto para un buen libro de administraci&oacute;n de sistemas UNIX y un
- buen manual del usuario.</para>
-
- <sect1>
- <title>Libros y revistas espec&iacute;ficas sobre FreeBSD</title>
-
- <para><emphasis>Libros y revistas internacionales:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://freebsd.csie.nctu.edu.tw/~jdli/book.html">Usando
- FreeBSD</ulink> (en Chino).</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD for PC 98'ers (en japon&eacute;s), publicado por SHUWA System
- Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD (en japon&eacute;s), publicado por CUTT. ISBN 4-906391-22-2
- C3055 P2400E.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.shoeisha.co.jp/pc/index/shinkan/97_05_06.htm">Introducci&oacute;n
- completa a FreeBSD</ulink> (en japon&eacute;s), publicado por
- <ulink url="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</ulink>.
- ISBN 4-88135-473-6 P3600E.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Kit personal del
- principiante UNIX FreeBSD</ulink> (en japon&eacute;s), publicado por
- <ulink url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN 4-7561-1733-3 P3000E.</para>
- </listitem>
-
- <listitem>
- <para>Manual FreeBSD (traducci&oacute;n del japon&eacute;s), publicado por <ulink
- url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN 4-7561-1580-2
- P3800E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD mit Methode (en alem&aacute;n), publicado por Computer und
- Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.pc.mycom.co.uk/FreeBSD/install-manual.html">Manual de
- instalaci&oacute;n y utilizaci&oacute;n de FreeBSD</ulink> (en japon&eacute;s),
- publicado por
- <ulink url="http://www.pc.mycom.co.jp/">Mainichi Communications Inc.</ulink>.</para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>Libros y revistas en ingl&eacute;s:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.cdrom.com/titles/freebsd/bsdcomp_bkx.phtml">
- The Complete FreeBSD</ulink>, publicado por <ulink
- url="http://www.cdrom.com/">Walnut Creek CDROM</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Gu&iacute;as de usuario</title>
-
- <itemizedlist>
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Reference Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-075-9</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-076-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>UNIX in a Nutshell</emphasis>. O'Reilly &amp;
- Associates, Inc., 1990. ISBN 093717520X</para>
- </listitem>
-
- <listitem>
- <para>Mui, Linda. <emphasis>What You Need To Know When You Can't Find Your
- UNIX System Administrator</emphasis>. O'Reilly &amp;
- Associates, Inc., 1995. ISBN 1-56592-104-6</para>
- </listitem>
-
- <listitem>
- <para>La <ulink url="http://www-wks.acs.ohio-state.edu/">Ohio State
- University</ulink> ha escrito un <ulink
- url="http://www-wks.acs.ohio-state.edu/unix_course/unix.html">Curso de
- introducci&oacute;n a UNIX</ulink> disponible en l&iacute;nea en
- formato HTML y postscript.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</ulink>. <ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/urm.html">FreeBSD User's
- Reference Manual</ulink> (traducci&oacute;n japonesa). <ulink
- url="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</ulink>, 1998. ISBN4-8399-0088-4 P3800E.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Gu&iacute;as de administrador</title>
-
- <itemizedlist>
- <listitem>
- <para>Albitz, Paul and Liu, Cricket. <emphasis>DNS and
- BIND</emphasis>, 2nd Ed. O'Reilly &amp; Associates, Inc., 1997.
- ISBN 1-56592-236-0</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- System Manager's Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-080-5</para>
- </listitem>
-
- <listitem>
- <para>Costales, Brian, et al. <emphasis>Sendmail</emphasis>, 2nd Ed.
- O'Reilly &amp; Associates, Inc., 1997. ISBN 1-56592-222-0</para>
- </listitem>
-
- <listitem>
- <para>Frisch, &AElig;leen. <emphasis>Essential System
- Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates,
- Inc., 1995. ISBN 1-56592-127-5</para>
- </listitem>
-
- <listitem>
- <para>Hunt, Craig. <emphasis>TCP/IP Network
- Administration</emphasis>. O'Reilly &amp; Associates, Inc., 1992.
- ISBN 0-937175-82-X</para>
- </listitem>
-
- <listitem>
- <para>Nemeth, Evi. <emphasis>UNIX System Administration
- Handbook</emphasis>. 2nd Ed. Prentice Hall, 1995. ISBN
- 0131510517</para>
- </listitem>
-
- <listitem>
- <para>Stern, Hal <emphasis>Managing NFS and NIS</emphasis> O'Reilly
- &amp; Associates, Inc., 1991. ISBN 0-937175-75-7</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</ulink>. <ulink
- url="http://www.pc.mycom.co.jp/FreeBSD/sam.html">FreeBSD System
- Administrator's Manual</ulink> (traducci&oacute;n japonesa). <ulink
- url="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</ulink>, 1998. ISBN4-8399-0109-0 P3300E.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Gu&iacute;as de programadores</title>
-
- <itemizedlist>
- <listitem>
- <para>Asente, Paul. <emphasis>X Window System Toolkit</emphasis>.
- Digital Press. ISBN 1-55558-051-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Reference Manual</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-078-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-079-1</para>
- </listitem>
-
- <listitem>
- <para>Harbison, Samuel P. and Steele, Guy L. Jr. <emphasis>C: A
- Reference Manual</emphasis>. 4rd ed. Prentice Hall, 1995.
- ISBN 0-13-326224-3</para>
- </listitem>
-
- <listitem>
- <para>Kernighan, Brian and Dennis M. Ritchie. <emphasis>The C
- Programming Language.</emphasis>. PTR Prentice Hall, 1988.
- ISBN 0-13-110362-9</para>
- </listitem>
-
- <listitem>
- <para>Lehey, Greg. <emphasis>Porting UNIX Software</emphasis>.
- O'Reilly &amp; Associates, Inc., 1995. ISBN 1-56592-126-7</para>
- </listitem>
-
- <listitem>
- <para>Plauger, P. J. <emphasis>The Standard C Library</emphasis>.
- Prentice Hall, 1992. ISBN 0-13-131509-9</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>Advanced Programming in the UNIX
- Environment</emphasis>. Reading, Mass. : Addison-Wesley, 1992
- ISBN 0-201-56317-7</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>UNIX Network
- Programming</emphasis>. 2nd Ed, PTR Prentice Hall, 1998. ISBN
- 0-13-490012-X</para>
- </listitem>
-
- <listitem>
- <para>Wells, Bill. &ldquo;Writing Serial Drivers for UNIX&rdquo;.
- <emphasis>Dr. Dobb's Journal</emphasis>. 19(15), December 1994.
- pp68-71, 97-99.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>El sistema operativo por dentro</title>
-
- <itemizedlist>
- <listitem>
- <para>Andleigh, Prabhat K. <emphasis>UNIX System
- Architecture</emphasis>. Prentice-Hall, Inc., 1990. ISBN
- 0-13-949843-5</para>
- </listitem>
-
- <listitem>
- <para>Jolitz, William. &ldquo;Porting UNIX to the 386&rdquo;.
- <emphasis>Dr. Dobb's Journal</emphasis>. January 1991-July
- 1992.</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
- John Quarterman <emphasis>The Design and Implementation of the
- 4.3BSD UNIX Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1989. ISBN 0-201-06196-1</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, <emphasis>The Design
- and Implementation of the 4.3BSD UNIX Operating System: Answer
- Book</emphasis>. Reading, Mass. : Addison-Wesley, 1991. ISBN
- 0-201-54629-9</para>
- </listitem>
-
- <listitem>
- <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
- John Quarterman. <emphasis>The Design and Implementation of the
- 4.4BSD Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1996. ISBN 0-201-54979-4</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 1:
- The Protocols</emphasis>. Reading, Mass. : Addison-Wesley,
- 1996. ISBN 0-201-63346-9</para>
- </listitem>
-
- <listitem>
- <para>Schimmel, Curt. <emphasis>Unix Systems for Modern
- Architectures</emphasis>. Reading, Mass. : Addison-Wesley, 1994.
- ISBN 0-201-63338-8</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 3:
- TCP for Transactions, HTTP, NNTP and the UNIX Domain
- Protocols</emphasis>. Reading, Mass. : Addison-Wesley, 1996.
- ISBN 0-201-63495-3</para>
- </listitem>
-
- <listitem>
- <para>Vahalia, Uresh. <emphasis>UNIX Internals -- The New
- Frontiers</emphasis>. Prentice Hall, 1996. ISBN
- 0-13-101908-2</para>
- </listitem>
-
- <listitem>
- <para>Wright, Gary R. and W. Richard Stevens. <emphasis>TCP/IP
- Illustrated, Volume 2: The Implementation</emphasis>. Reading,
- Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Referencia de seguridad</title>
-
- <itemizedlist>
- <listitem>
- <para>Cheswick, William R. and Steven M. Bellovin. <emphasis>Firewalls
- and Internet Security: Repelling the Wily Hacker</emphasis>.
- Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-63357-4</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson and Gene Spafford. <emphasis>Practical UNIX
- Security</emphasis>. 2nd Ed. O'Reilly &amp; Associates, Inc.,
- 1996. ISBN 1-56592-148-8</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson. <emphasis>PGP Pretty Good
- Privacy</emphasis> O'Reilly &amp; Associates, Inc., 1995. ISBN
- 1-56592-098-8</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Referencia de hardware</title>
-
- <itemizedlist>
- <listitem>
- <para>Anderson, Don and Tom Shanley. <emphasis>Pentium Processor
- System Architecture</emphasis>. 2nd Ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-40992-5</para>
- </listitem>
-
- <listitem>
- <para>Ferraro, Richard F. <emphasis>Programmer's Guide to the EGA,
- VGA, and Super VGA Cards</emphasis>. 3rd ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-62490-7</para>
- </listitem>
-
- <listitem>
- <para>La corporaci&oacute;n Intel publica documentaci&oacute;n sobre sus CPUs,
- chipsets y est&aacute;ndares en su <ulink
- url="http://developer.intel.com/">web para desarrolladores</ulink>,
- normalmente en archivos con formato PDF.</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>80486 System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40994-1</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>ISA System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40996-8</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>PCI System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40993-3</para>
- </listitem>
-
- <listitem>
- <para>Van Gilluwe, Frank. <emphasis>The Undocumented PC</emphasis>.
- Reading, Mass: Addison-Wesley Pub. Co., 1994. ISBN
- 0-201-62277-7</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Historia de UNIX</title>
-
- <itemizedlist>
- <listitem>
- <para>Lion, John <emphasis>Lion's Commentary on UNIX, 6th Ed. With
- Source Code</emphasis>. ITP Media Group, 1996. ISBN
- 1573980137</para>
- </listitem>
-
- <listitem>
- <para>Raymond, Eric S. <emphasis>The New Hacker's Dictionary, 3rd
- edition</emphasis>. MIT Press, 1996. ISBN
- 0-262-68092-0. Also known as the <ulink
- url="http://www.ccil.org/jargon/jargon.html">Jargon
- File</ulink></para>
- </listitem>
-
- <listitem>
- <para>Salus, Peter H. <emphasis>A quarter century of UNIX</emphasis>.
- Addison-Wesley Publishing Company, Inc., 1994. ISBN
- 0-201-54777-5</para>
- </listitem>
-
- <listitem>
- <para>Simon Garfinkel, Daniel Weise, Steven Strassmann. <emphasis>The
- UNIX-HATERS Handbook</emphasis>. IDG Books Worldwide, Inc.,
- 1994. ISBN 1-56884-203-1</para>
- </listitem>
-
- <listitem>
- <para>Don Libes, Sandy Ressler <emphasis>Life with UNIX</emphasis>
- &mdash; special edition. Prentice-Hall, Inc., 1989. ISBN
- 0-13-536657-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD family tree</emphasis>. 1997. <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree</ulink>
- o <ulink url="file:/usr/share/misc/bsd-family-tree">local</ulink> on a FreeBSD-current
- machine.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD Release Announcements collection</emphasis>.
- 1997. <ulink
- url="http://www.de.FreeBSD.org/de/ftp/releases/">http://www.de.FreeBSD.org/de/ftp/releases/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Networked Computer Science Technical Reports
- Library</emphasis>. <ulink
- url="http://www.ncstrl.org/">http://www.ncstrl.org/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Antiguas releases BSD procedentes del Computer Systems Research
- Group (CSRG)</emphasis>. <ulink
- url="http://www.mckusick.com/csrg/">http://www.mckusick.com/csrg/</ulink>:
- El paquete de 4 CDs cubre todas las versiones de BSD desde la 1BSD hasta la
- 4.4BSD y 4.4BSD-Lite2 (pero no la 2.11BSD, desafortunadamente). El &uacute;ltimo
- disco contiene el c&oacute;digo fuente final y los archivos SCCS.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Diarios y revistas</title>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>The C/C++ Users Journal</emphasis>. R&amp;D
- Publications Inc. ISSN 1075-2838</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Sys Admin &mdash; The Journal for UNIX System
- Administrators</emphasis> Miller Freeman, Inc., ISSN
- 1061-2688</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/es_ES.ISO8859-1/books/handbook/book.sgml b/es_ES.ISO8859-1/books/handbook/book.sgml
deleted file mode 100755
index 40744db275..0000000000
--- a/es_ES.ISO8859-1/books/handbook/book.sgml
+++ /dev/null
@@ -1,146 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/es_ES.ISO_8859-1/books/handbook/book.sgml,v 1.1 2000/05/28 19:51:44 jesusr Exp $
-
--->
-
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN">
-%bookinfo;
-
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % authors SYSTEM "authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists;
-<!ENTITY % newsgroups SYSTEM "newsgroups.ent"> %newsgroups;
-<!ENTITY % not.published "INCLUDE">
-
-<!-- La version release actual de FreeBSD. Este valor es usado para
- crear algunos links a webs, asi que NO cambiarlo hasta que exista
- una nueva release -->
-
-<!ENTITY rel.current CDATA "4.2">
-]>
-
-
-<!-- ***** COSAS POR HACER *****
- cambiar las descripciones de las listas de distribucion
- cambiar las descripciones de los grupos de news
--->
-
-<book lang=es>
- <bookinfo>
- <title>Manual de FreeBSD</title>
-
- <authorgroup>
- <author>
- <surname>Proyecto de Documentacion de FreeBSD</surname>
- <affiliation>
- <address>
- <email>doc@FreeBSD.org</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
-
- <pubdate>Febrero 1999</pubdate>
-
- <copyright>
- <year>1995</year>
- <year>1996</year>
- <year>1997</year>
- <year>1998</year>
- <year>1999</year>
- <year>2000</year>
- <year>2001</year>
- <holder>The FreeBSD Documentation Project</holder>
- </copyright>
-
- <abstract>
- <para>Bienvenido a FreeBSD!. Este manual cubre la instalaci&oacute;n y uso
- diario de <emphasis>FreeBSD Release &rel.current;</emphasis>. Este
- manual est&aacute; en <emphasis>constante evoluci&oacute;n</emphasis> y
- es el resultado del trabajo de muchas personas. Algunas secciones no
- est&aacute;n completas y otras no est&aacute;n actualizadas. Si
- est&aacute;s interesado en colaborar en este proyecto, env&iacute;a
- un mail a &a.doc;. La &uacute;ltima versi&oacute;n de este documento
- est&aacute; siempre disponible en el
- <ulink URL="http://www.FreeBSD.ORG/">
- servidor World Wide Web de FreeBSD</ulink>. Tambi&eacute;n est&aacute;
- disponible en <ulink url="handbook.latin1"> texto </ulink>,
- <ulink url="handbook.ps">postscript</ulink> o <ulink
- url="handbook-html.tar.gz">HTML</ulink> v&iacute;a HTTP o comprimido
- con gzip desde el <ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs/">
- servidor FTP de FreeBSD</ulink> o uno de sus numerosos
- <link linkend="mirrors-ftp">mirrors</link>.
- Tambi&eacute;n puedes <ulink URL="http://www.FreeBSD.ORG/search.html">
- realizar b&uacute;squedas en el manual</ulink>.</para>
- </abstract>
- </bookinfo>
-
- <part>
- <title>Empezamos</title>
-
- &chap.introduction;
- &chap.install;
- &chap.basics;
- &chap.ports;
- </part>
-
- <part>
- <title>Administraci&oacute;n del sistema</title>
-
- &chap.kernelconfig;
- &chap.security;
- &chap.printing;
- &chap.disks;
- &chap.backups;
- &chap.quotas;
- &chap.x11;
- &chap.hw;
- &chap.l10n;
- </part>
-
- <part>
- <title>Comunicaciones en Red</title>
-
- &chap.serialcomms;
- &chap.ppp-and-slip;
- &chap.advanced-networking;
- &chap.mail;
- </part>
-
- <part>
- <title>Conceptos Avanzados</title>
-
- &chap.cutting-edge;
- &chap.contrib;
- &chap.policies;
- &chap.kernelopts;
- &chap.kerneldebug;
- &chap.linuxemu;
- &chap.internals;
- </part>
-
- <part>
- <title>Ap&eacute;ndices</title>
-
- &chap.mirrors;
- &chap.bibliography;
- &chap.eresources;
- &chap.staff;
- &chap.pgpkeys;
- </part>
-</book>
-
-<!--
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/chapter.decl b/es_ES.ISO8859-1/books/handbook/chapter.decl
deleted file mode 100755
index 9021993901..0000000000
--- a/es_ES.ISO8859-1/books/handbook/chapter.decl
+++ /dev/null
@@ -1,5 +0,0 @@
-<!--
- $FreeBSD$
--->
-
-<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.0-Based Extension//EN">
diff --git a/es_ES.ISO8859-1/books/handbook/chapters.ent b/es_ES.ISO8859-1/books/handbook/chapters.ent
deleted file mode 100755
index f022a48532..0000000000
--- a/es_ES.ISO8859-1/books/handbook/chapters.ent
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
- Crea entidades para cada uno de los cap&iacute;tulos en el Manual de
- FreeBSD. Cada entidad es nombrada como chap.foo, donde foo es el
- atributo identificador en ese cap&iacute;tulo y corresponde al
- nombre del directorio en el que est&aacute; guardado el archivo
- .sgml que contiene la informaci&oacute;n.
-
- Chapters should be listed in the order in which they are referenced.
- Los cap&iacute;tulos deben listarse en el mismo orden en el que son
- referenciados.
-
- $FreeBSD$
--->
-
-<!-- Part one -->
-<!ENTITY chap.introduction SYSTEM "introduction/chapter.sgml">
-<!ENTITY chap.install SYSTEM "install/chapter.sgml">
-<!ENTITY chap.basics SYSTEM "basics/chapter.sgml">
-<!ENTITY chap.ports SYSTEM "ports/chapter.sgml">
-
-<!-- Part two -->
-<!ENTITY chap.kernelconfig SYSTEM "kernelconfig/chapter.sgml">
-<!ENTITY chap.security SYSTEM "security/chapter.sgml">
-<!ENTITY chap.printing SYSTEM "printing/chapter.sgml">
-<!ENTITY chap.disks SYSTEM "disks/chapter.sgml">
-<!ENTITY chap.backups SYSTEM "backups/chapter.sgml">
-<!ENTITY chap.quotas SYSTEM "quotas/chapter.sgml">
-<!ENTITY chap.x11 SYSTEM "x11/chapter.sgml">
-<!ENTITY chap.hw SYSTEM "hw/chapter.sgml">
-<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml">
-
-<!-- Part three -->
-<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml">
-<!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.sgml">
-<!ENTITY chap.advanced-networking SYSTEM "advanced-networking/chapter.sgml">
-<!ENTITY chap.mail SYSTEM "mail/chapter.sgml">
-
-<!-- Part four -->
-<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">
-<!ENTITY chap.contrib SYSTEM "contrib/chapter.sgml">
-<!ENTITY chap.policies SYSTEM "policies/chapter.sgml">
-<!ENTITY chap.kernelopts SYSTEM "kernelopts/chapter.sgml">
-<!ENTITY chap.kerneldebug SYSTEM "kerneldebug/chapter.sgml">
-<!ENTITY chap.linuxemu SYSTEM "linuxemu/chapter.sgml">
-<!ENTITY chap.internals SYSTEM "internals/chapter.sgml">
-
-<!-- Part five (appendices) -->
-<!ENTITY chap.mirrors SYSTEM "mirrors/chapter.sgml">
-<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml">
-<!ENTITY chap.eresources SYSTEM "eresources/chapter.sgml">
-<!ENTITY chap.staff SYSTEM "staff/chapter.sgml">
-<!ENTITY chap.pgpkeys SYSTEM "pgpkeys/chapter.sgml">
diff --git a/es_ES.ISO8859-1/books/handbook/contrib/chapter.sgml b/es_ES.ISO8859-1/books/handbook/contrib/chapter.sgml
deleted file mode 100755
index a200bee853..0000000000
--- a/es_ES.ISO8859-1/books/handbook/contrib/chapter.sgml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="contrib">
- <title>Contribuyendo a FreeBSD</title>
-
- <para>Contribuyendo a FreeBSD</para>
-
- <sect1 id="contrib-additional">
- <title>Contribuyentes adicionales de FreeBSD</title>
- <para>&nbsp;</para>
- </sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
deleted file mode 100755
index fb14c3710e..0000000000
--- a/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="cutting-edge">
- <title>FreBSD-current y FreeBSD-stable</title>
-
- <para>FreBSD-current y FreeBSD-stable</para>
-
- <sect1 id="current">
- <title>Mantenerse -current con FreeBSD</title>
- <para>&nbsp;</para>
- </sect1>
-
- <sect1 id="stable">
- <title>Mantenerse -stable con FreeBSD</title>
- <para>&nbsp;</para>
- </sect1>
-
- <sect1 id="synching">
- <title>Sincronizando el c&oacute;digo fuente a trav&eacute;s de Internet</title>
- <para>&nbsp;</para>
- </sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/disks/chapter.sgml b/es_ES.ISO8859-1/books/handbook/disks/chapter.sgml
deleted file mode 100644
index 3dd27f2959..0000000000
--- a/es_ES.ISO8859-1/books/handbook/disks/chapter.sgml
+++ /dev/null
@@ -1,186 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="disks">
- <title>Discos</title>
-
- <para><emphasis>Escrito por &a.obrien; 26 de Abril de 1998</emphasis></para>
-
- <para>Supongamos que queremos a&ntilde;adir un nuevo disco SCSI a una
- m&aacute;quina que en la actualidad s&oacute;lo tiene un &uacute;nico
- disco. En primer lugar, apague el ordenador e instale el disco siguiendo
- las instrucciones del fabricante del ordenador, de la controladora y del
- propio disco. A causa de la diversidad de procedimientos para hacer esto,
- los detalles exceden el &aacute;mbito de este documento.</para>
-
- <para>Entre en el sistema como el usuario <username>root</username>. Una
- vez que haya instalado el disco, inspeccione
- <filename>/var/run/dmesg.boot</filename> para asegurarse de que el nuevo
- disco ha sido encontrado. Continuando con nuestro ejemplo, el disco
- recientemente a&ntilde;adido ser&aacute; <filename>da1</filename> y lo
- montaremos en <filename>/1</filename> (si est&aacute; usted
- a&ntilde;adiendo un disco IDE, sustituya <filename>da</filename> por
- <filename>wd</filename>).</para>
-
- <para>Como FreeBSD funciona en ordenadores compatibles con el IBM-PC, debe
- tener en cuenta las particiones de la BIOS del PC. Estas son diferentes de
- las particiones tradicionales de tipo BSD. Un disco de PC puede tener
- hasta cuatro entradas para particiones de tipo BIOS. Si el disco va a ser
- realmente dedicado a FreeBSD, puede usted emplear el modo dedicado
- (<emphasis>dedicated</emphasis>). En otro caso, FreeBSD tendr&aacute; que
- alojarse en una de las particiones de la BIOS. FreeBSD llama a las
- particiones de la BIOS <emphasis>slices</emphasis>, para no confundirlas
- con las particiones tradicionales de tipo BSD. Tambi&eacute;n puede usted
- usar slices en un disco que est&eacute; dedicado a FreeBSD, pero en un
- ordenador que adem&aacute;s tenga otro sistema operativo instalado. Esto
- es as&iacute; para no confundir a la utilidad <command>fdisk</command> del
- otro sistema operativo.</para>
-
- <para>En el caso de utilizar slices, el disco ser&aacute; a&ntilde;adido
- como <filename>/dev/da1s1e</filename>. Esto se lee del siguiente modo:
- disco SCSI, unidad n&uacute;mero 1 (segundo disco SCSI), slice 1
- (partici&oacute;n 1 de la BIOS) y partici&oacute;n <filename>e</filename>
- de tipo BSD. En el caso de utilizar el modo dedicado, el disco ser&aacute;
- a&ntilde;adido, simplemente, como <filename>/dev/da1e</filename>.</para>
-
- <sect1>
- <title>Utilizando Sysinstall</title>
-
- <para>Puede utilizar <command>/stand/sysinstall</command> para crear y
- etiquetar particiones en un disco nuevo usando sus intuitivos
- men&uacute;s. Bien entre en el sistema como el usuario
- <username>root</username>, o bien utilice el comando
- <command>su</command>. Ejecute <command>/stand/sysinstall</command> y
- seleccione el men&uacute; <literal>Configure</literal>. Dentro del
- men&uacute; <literal>FreeBSD Configuration Menu</literal>, baje hasta
- seleccionar la opci&oacute;n <literal>Partition</literal>. A
- continuaci&oacute;n, se le deber&iacute;a mostrar una lista de los
- discos duros instalados en su sistema. Si no aparece
- <literal>da1</literal>, deber&aacute; usted comprobar la
- instalaci&oacute;n f&iacute;sica del disco y la salida del comando
- <command>dmesg</command> almacenada en el archivo
- <filename>/var/run/dmesg.boot</filename>.</para>
-
- <para>Seleccione <literal>da1</literal> para pasar al editor de
- particiones <literal>FDISK Partition Editor</literal>. Pulse
- <literal>A</literal> para usar el disco entero para FreeBSD. Cuando se
- le pregunte si quiere mantener el disco compatible con la
- instalaci&oacute;n de alg&uacute;n sistema operativo en el futuro
- (<quote>remain cooperative with any future possible operating systems</quote>)
- conteste afirmativamente (<literal>YES</literal>). Escriba los cambios en
- el disco pulsando <command>W</command>. Ahora salga del editor FDISK
- pulsando <command>q</command>. A continuaci&oacute;n se le
- preguntar&aacute; acerca del sector de inicio del disco (MBR, Master
- Boot Record). Como est&aacute; usted a&ntilde;adiendo un disco a un
- sistema que ya se encuentra en funcionamiento, seleccione la
- opci&oacute;n <literal>None</literal> (esta opci&oacute;n deja el MBR
- intacto).</para>
-
- <para>A continuaci&oacute;n llegar&aacute; al <literal>Disk Label Editor</literal>. Aqu&iacute; es donde crear&aacute; las particiones de estilo tradicional BSD. Un disco puede tener hasta ocho particiones, designadas a-h. Algunas de las etiquetas de las particiones tienen usos especiales. La etiqueta <literal>a</literal> se utiliza para la partici&oacute;n ra&iacute;z (<filename>/</filename>, root partition). Por tanto, s&oacute;lo su disco de sistema (es decir, aquel desde el cual arranca el sistema) deber&iacute;a tener una partici&oacute;n <literal>a</literal>. La etiqueta <literal>b</literal> se utiliza para particiones de swap (memoria virtual) y es posible tener varios discos con particiones de swap. La etiqueta <literal>c</literal> representa a todo el disco utilizado en modo dedicado, o a todo el slice de FreeBSD si es que utilizamos el modo slice. Las restantes etiquetas son para uso general.</para>
-
- <para>El editor de etiquetas (de particiones) de Sysinstall utiliza la etiqueta <literal>e</literal> para particiones que no son root ni swap. Dentro del editor de etiquetas de particiones, cree un &uacute;nico sistema de archivos pulsando <command>C</command>. Cuando se le pregunte si ser&aacute; un sistema de archivos (FS, file system) o swap, elija <literal>FS</literal> e indique un punto donde montarlo (por ejemplo, <filename>/mnt</filename>). Cuando a&ntilde;ada un disco una vez instalado FreeBSD, Sysinstall no crear&aacute; la entrada correspondiente en <filename>/etc/fstab</filename>, por lo que no resulta importante el punto que indique para montar el disco.</para>
-
- <para>En este momento, ya puede escribir en el disco la informaci&oacute;n de las particiones y sus etiquetas y crear un sistema de archivos. Para ello pulse <command>W</command>. Ignore cualquier error de Sysinstall que le informe de que no pudo montar la nueva partici&oacute;n. Ya puede salir del editor de etiquetas de particiones y de Sysinstall.</para>
-
- <para>El &uacute;ltimo paso consiste en editar <filename>/etc/fstab</filename> para a&ntilde;adir una entrada para el nuevo disco.</para>
- </sect1>
-
- <sect1>
- <title>Usando la l&iacute;nea de comandos</title>
-
- <sect2>
- <title>* Utilizando Slices</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>Modo Dedicado</title>
-
- <para>Si no va a compartir el nuevo disco con otro sistema operativo, puede usar el modo dedicado (<literal>dedicated</literal>). Recuerde que este modo puede confundir a los sistemas operativos de Microsoft; no obstante, estos no causar&aacute;n ning&uacute;n da&ntilde;o. En cambio, el OS/2 de IBM se &ldquo;apropiar&aacute;&rdquo; de cualquier partici&oacute;n que encuentre y que no reconozca.</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 bs=1k count=1</userinput>
-&prompt.root; <userinput>disklabel -Brw da1 auto</userinput>
-&prompt.root; <userinput>disklabel -e da1</userinput> # creamos la partici&oacute;n `e'
-&prompt.root; <userinput>newfs -d0 /dev/rda1e</userinput>
-&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # a&ntilde;adimos una entrada para /dev/da1e
-&prompt.root; <userinput>mount /1</userinput></screen>
-
- <para>Un m&eacute;todo alternativo resulta:</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 count=2</userinput>
-&prompt.root; <userinput>disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin</userinput>
-&prompt.root; <userinput>newfs /dev/rda1e</userinput>
-&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # a&ntilde;adimos una entrada para /dev/da1e
-&prompt.root; <userinput>mount /1</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1>
- <title>* Discos no tradicionales</title>
-
- <sect2>
- <title>* Discos Zip</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Discos Jaz</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Discos Sequest</title>
-
- <para></para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/es_ES.ISO8859-1/books/handbook/eresources/chapter.sgml b/es_ES.ISO8859-1/books/handbook/eresources/chapter.sgml
deleted file mode 100755
index 091d4441b4..0000000000
--- a/es_ES.ISO8859-1/books/handbook/eresources/chapter.sgml
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="eresources">
- <title>Recursos en Internet</title>
-
- <para>Recursos en Internet</para>
-
- <sect1 id="eresources-mail">
- <title>Listas de distribuci&oacute;n</title>
- <para>&nbsp;</para>
- </sect1>
-
- <sect1 id="eresources-news">
- <title>Grupos de News en USENET</title>
- <para>&nbsp;</para>
- </sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/hw/chapter.sgml b/es_ES.ISO8859-1/books/handbook/hw/chapter.sgml
deleted file mode 100755
index 228046ccc3..0000000000
--- a/es_ES.ISO8859-1/books/handbook/hw/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="hw">
- <title>Compatibilidad de Hardware</title>
-
- <para>Compatibilidad de Hardware</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/install/chapter.sgml b/es_ES.ISO8859-1/books/handbook/install/chapter.sgml
deleted file mode 100755
index dddb8d047b..0000000000
--- a/es_ES.ISO8859-1/books/handbook/install/chapter.sgml
+++ /dev/null
@@ -1,1297 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="install">
- <title>Instalando FreeBSD</title>
-
- <para>As&iacute; que te gustar&iacute;a probar FreeBSD en tu m&aacute;quina?.
- Esta secci&oacute;n es una gu&iacute;a r&aacute;pida sobre lo que necesitas
- hacer. FreeBSD puede ser instalado desde una gran cantidad de soportes
- incluyendo CDROM, floppies, cintas magn&eacute;ticas, una partici&oacute;n
- MS-DOS y, si tienes conexion de red, v&iacute;a FTP an&oacute;nimo
- o NFS.</para>
-
- <para>Sea cual sea el soporte de instalaci&oacute;n que elijas, puedes
- empezar por crear <emphasis>los discos de instalaci&oacute;n</emphasis>
- como se describe m&aacute;s abajo. Arranca tu ordenador con el instalador
- de FreeBSD, aunque no est&eacute;s pensando en realizar la
- instalaci&oacute;n, y podr&aacute;s obtener gran cantidad de
- informaci&oacute;n sobre la compatibilidad del hardware de tu ordenador y
- FreeBSD, adem&aacute;s de una descripci&oacute;n m&aacute;s exacta sobre
- las diferentes posibilidades de instalaci&oacute;n.</para>
-
- <para>Si tienes pensado hacer la instalaci&oacute;n v&iacute;a FTP,
- s&oacute;lo necesitas el disco de arranque, ya que &eacute;l solo se
- encarga de gestionar todo lo referente a la conexi&oacute;n, ya sea
- ethernet o PPP.</para>
-
- <para>Para m&aacute;s informaci&oacute;n sobre c&oacute;mo obtener la
- &uacute;ltima distribuci&oacute;n de FreeBSD, por favor, mira la
- secci&oacute;n <link linkend="mirrors">Obteniendo FreeBSD</link> en el
- Ap&eacute;ndice.</para>
-
- <para>Bi&eacute;n, para empezar a caminar, sigue los siguientes pasos:</para>
-
- <procedure>
-
- <step>
- <para>Revisa la secci&oacute;n
- <link linkend="install-hw">configuraciones soportadas</link> de esta
- gu&iacute;a de instalaci&oacute;n para asegurarte de que tu
- hardware es soportado por FreeBSD. Ser&iacute;a de gran ayuda que
- hicieses una lista de cualquier tarjeta especial que tengas
- instalada, como controladoras SCSI, tarjetas de red o tarjetas
- de sonido. Esta lista deber&iacute;a incluir par&aacute;matros
- relevantes de configuraci&oacute;n como interrupciones (IRQ) y
- direcciones de entrada/salida (IO ports).</para>
- </step>
-
- <step>
- <para>Si est&aacute;s instalando FreeBSD desde un CDROM tienes
- diferentes opciones de instalaci&oacute;n:</para>
- <itemizedlist>
-
- <listitem>
- <para>Si el CD ha sido grabado con el soporte de arranque
- El Torito, y tu sistema soporta arranque directo desde
- CDROM (muchos sistemas antiguos <emphasis>no</emphasis>),
- simplemente inserta el CD en el lector y arranque directamente
- desde &eacute;l.</para>
- </listitem>
-
- <listitem>
- <para>Si est&aacute;s ejecutando DOS y tienes los drivers
- adecuados para acceder al lector de CDROM, ejecuta el
- fichero install.bat incluido en el CD. Este intentar&aacute;
- arrancar la instalaci&oacute;n de FreeBSD desde DOS.</para>
-
- <note>
- <para>Debes hacer esto desde el DOS y no desde una
- m&aacute;quina Windows.</para>
- </note>
-
- <para>Si quieres instalar FreeBSD desde una partici&oacute;n
- DOS (por ejemplo, por que FreeBSD no soporta tu lector de
- CDROM), ejecuta primero el programa setup para copiar los
- ficheros adecuados del CD a la partici&oacute;n. A
- continuaci&oacute;n ejecuta el programa de instalaci&oacute;n.
- </para>
- </listitem>
-
- <listitem>
- <para>Si cualquiera de los dos m&eacute;todos anteriores
- funciona, puedes pasar por alto el resto de esta
- secci&oacute;n, en caso contrario, tu opci&oacute;n final es
- crear un disco de arranque con la im&aacute;gen
- <filename>floppies\boot.flp</filename>. Salta al paso 4
- para instrucciones sobre como hacerlo.</para>
- </listitem>
- </itemizedlist>
-
- </step>
-
- <step>
- <para>Si no tienes una distribuci&oacute;n en CDROM, simplemente
- b&aacute;jate los <ulink
- URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/&rel.current;-RELEASE/floppies/boot.flp">discos de instalaci&oacute;n y arranque</ulink> a tu disco duro,
- asegur&aacute;ndote de que tu navegador <emphasis>grabe</emphasis>
- el fichero en lugar de <emphasis>mostrarlo</emphasis>.</para>
-
- <note>
- <para>Estas im&aacute;genes solo se pueden usar con discos de
- 1,44Mb.</para>
- </note>
- </step>
-
- <step>
- <para>Haz el disco de instalaci&oacute;n a partir del fichero
- im&aacute;gen:</para>
- <itemizedlist>
-
- <listitem>
- <para>Si est&aacute;s usando MS-DOS o Windows b&aacute;jate el
- programa <ulink
- URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/tools/fdimage.exe">fdimage.exe</ulink> o c&oacute;gelo de <filename>tools\fdimage.exe</filename> en el
- CDROM y ejec&uacute;talo de la siguiente manera:</para>
-
- <informalexample>
- <screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage
-floppies\boot.flp a:</userinput></screen>
- </informalexample>
- <para>El programa <emphasis>fdimage</emphasis>
- formatear&aacute; el disco <devicename>A:</devicename> y
- copiar&aacute; la im&aacute;gen <filename>boot.flp</filename>
- en &eacute:l (asumiendo que est&aacute;s en el nivel superior
- de la distribuci&oacute de FreeBSD y que las im&aacute;genes
- est&aacute;n en el subdirectorio <filename>floppies</filename>
- , tal y como suele ser habitual).</para>
- </listitem>
-
- <listitem>
- <para>Si est&aacute;s instalando un sistema UNIX para crear las
- im&aacute;genes de disco:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dd if=boot.flp of=<replaceable>disk_device</replaceable></userinput></screen>
- </informalexample>
- <para><replaceable>disk_device</replaceable> es el dispositivo
- <filename>/dev</filename> para la disquetera. En sistemas
- FreeBSD, &eacute;ste es <filename>/dev/rfd0</filename> para el
- disco <devicename>A:</devicename> y <filename>/dev/rfd1</filename>
- para el disco <devicename>B:</devicename>.</para>
- </listitem>
-
- </itemizedlist>
- </step>
-
- <step>
-
- <para>Con el disco de instalaci&oacute;n en el disco
- <devicename>A:</devicename>, rearranca tu sistema. Deber&iacute;as
- obtener un prompt de arranque como este:</para>
- <informalexample>
- <screen>
-&gt;&gt; FreeBSD BOOT ...
-Usage: [[[0:][wd](0,a)]/kernel][-abcCdhrsv]
-Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1
-Use ? for file list or press Enter for defaults
-Boot:
- </screen>
- </informalexample>
- <para>Si <emphasis>no</emphasis> tecleas nada, FreeBSD
- arrancar&aacute; autom&aacute;ticamente con su configuraci&oacute;n
- por defecto, despu&eacute;s de una pausa de 5 segundos. Cuando
- FreeBSD arranca, comprueba tu ordenador para determinar el
- hardware instalado. El resultado de estas comprobaciones es mostrado
- en la pantalla.</para>
- </step>
-
- <step>
- <para>Cuando el proceso de arranque finaliza, el men&uacute;
- principal de instalaci&oacute;n de FreeBSD se muestra en
- pantalla.</para>
- </step>
-
- </procedure>
-
- <para><emphasis>Si algo va mal...</emphasis></para>
-
- <para>Debido a limitaciones en la arquitectura de los PC's, es imposible
- para el programa de prueba de hardware ser 100 por 100 fiable. En el caso
- de que tu hardware sea identificado incorrectamente, o que el proceso
- de prueba cuelgue la m&aacute;quina, primero mira la secci&oacute;n
- <link linkend="install-hw">configuraciones soportadas</link> en esta
- gu&iacute;a de instalaci&oacute;n para asegurar que tu hardware es
- soportado por FreeBSD.</para>
-
- <para>Si tu hardware est&aacute; soportado, resetea el ordenador y cuando
- aparece el prompt <prompt>Boot:</prompt> teclea <literal>-c</literal>.
- Esto har&aacute; que FreeBSD entre en modo de configuraci&oacute;n de
- hardware. El kernel de FreeBSD en el disco de intalaci&oacute;n
- est&aacute; configurado asumiendo que la mayor&iacute; de dispositivos
- hardware est&aacute;n configurados tal y como viene de f&aacute;brica en
- lo referente a IRQ's, direcciones de memoria, canales DMA, etc. Si tu
- hardware ha sido reconfigurado, necesitar&aacute;s usar la opci&oacute;n
- <option>-c</option> en el arranque para indicarle a FreeBSD donde se
- encuentra cada cosa.</para>
-
- <para>Tambi&eacute;n es posible que la prueba de un dispositivo no
- existente provoque una correcta detecci&oacute;n de un dispositivo que
- s&iacute; est&aacute; presente. En este caso, la prueba para este
- driver conflictivo deber&iacute; ser desactivada.</para>
-
- <warning>
- <para>No desactives ning&uacute;n dispositivo que necesitas durante la
- instalaci&oacute;n, como la pantalla (<devicename>sc0</devicename>).</para>
- </warning>
-
- <para>En el modo de configuraci&oacute;n puedes:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Listar los drivers de dispositivos presentes en el kernel.</para>
- </listitem>
-
- <listitem>
- <para>Desactivar los drivers de hardware no instalado en tu sistema.</para>
- </listitem>
-
- <listitem>
- <para>Cambiar la IRQ, DRQ y direcciones IO usadas por los drivers
- de dispositivo.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Mientras aparece el prompt <prompt>config&gt;</prompt>, teclea
- <command>help</command> para m&aacute;s informaci&oacute;n sobre los
- comandos disponibles. Despu&eacute;s de ajustar los par&aacute;metros
- del kernel con el hardware que tienes instalado, teclea
- <command>quit</command> en el prompt <prompt>config&gt;</prompt> para
- continuar el arranque con la nueva instalaci&oacute;n.</para>
-
- <para>Una vez FreeBSD est&aacute; instalado, los cambios hechos en el
- modo de configuraci&oacute;n ser&aacute;n guardados permanentemente
- para que no tengas que reconfigurar el sistema cada vez que
- arranques. A&uacute;n as&iacute;, es aconsejable que te crees un kernel
- personalizado para optimizar el sistema. Mira en
- <link linkend="kernelconfig">Configuraci&oacute;n del kernel</link>
- para crear un kernel personalizado.</para>
-
- <sect1 id="install-hw">
- <title>Configuraciones soportadas</title>
-
- <para>Actualmente FreeBSD se ejecuta en una variedad de buses
- ISA, VLB, EISA y PCI basados en PC's, cubriendo desde un 386sx
- hasta Pentiums (piensa que 386sx no es recomendado). Tambi&eacute;n
- se soportan configuraciones IDE o ESDI, diferentes controladoras
- SCSI, tarjetas de red y serie, etc.</para>
-
- <para>Un m&iacute;nimo de cuatro megabytes de RAM son requeridos para
- ejecutar FreeBSD. Para ejecutar el Sistema X Window, ocho
- megabytes de RAM es el m&iacute;nimo recomendado.</para>
-
- <para>A continuaci&oacute;n te presentamos una lista de todas las
- controladores de disco y tarjetas de red que actualmente
- funcionan en FreeBSD. Otras configuraciones posiblemente
- funcionen tambi&eacute;n, pero no hemos tenido noticias de ello.
- </para>
-
- <sect2>
- <title>Controladoras de disco</title>
-
- <itemizedlist>
-
- <listitem>
- <para>WD1003 (any generic MFM/RLL)</para>
- </listitem>
-
- <listitem>
- <para>WD1007 (any generic IDE/ESDI)</para>
- </listitem>
-
- <listitem>
- <para>IDE</para>
- </listitem>
-
- <listitem>
- <para>ATA</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 1505 ISA SCSI controller</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 152x series ISA SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 1535 ISA SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 154x series ISA SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 174x series EISA SCSI controller in standard and
- enhanced mode.</para>
- </listitem>
-
- <listitem>
- <para>Adaptec 274x/284x/2940/2940U/3940 (Narrow/Wide/Twin)
- series EISA/VLB/PCI SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec AIC7850 on-board SCSI controllers</para>
- </listitem>
-
- <listitem>
- <para>Adaptec AIC-6360 based boards, which includes the
- AHA-152x and SoundBlaster SCSI cards.</para>
- <note>
- <para>No puedes arrancar desde tarjeta SounBlaster ya que no
- tienen BIOS, la cual es necesaria para mapear el dispositivo
- de arranque en los vectores de Entrada/Salida. Son
- perfectamente usables para cintas externas, CDROM's, etc.
- Lo mismo se aplica a cualquier otra tarjeta basada en la
- AIC-6x60 sin ROM de arranque. Algunos sistemas tienen
- una ROM de arranque, la cual es mostrada de alguna manera
- cuando el sistema arranca. Revisa la configuraci&oacute;n
- de tu sistema/placa para m&aacute;s detalles.</para>
- </note>
- </listitem>
-
-<listitem>
- <para>Buslogic 545S &amp; 545c</para>
-
- <note>
- <para>Buslogic was formerly known as &ldquo;Bustek&rdquo;.
- </para>
- </note>
- </listitem>
-
- <listitem>
- <para>Buslogic 445S/445c VLB SCSI controller</para>
- </listitem>
-
- <listitem>
- <para>Buslogic 742A/747S/747c EISA SCSI controller.</para>
- </listitem>
-
- <listitem>
- <para>Buslogic 946c PCI SCSI controller</para>
- </listitem>
-
- <listitem>
- <para>Buslogic 956c PCI SCSI controller</para>
- </listitem>
-
- <listitem>
- <para>NCR 53C810/53C815/53C825/53C860/53C875 PCI SCSI
- controller.</para>
- </listitem>
-
- <listitem>
- <para>NCR5380/NCR53400 (&ldquo;ProAudio Spectrum&rdquo;) SCSI
- controller.</para>
- </listitem>
-
- <listitem>
- <para>DTC 3290 EISA SCSI controller in 1542 emulation mode.
- </para>
- </listitem>
-
- <listitem>
- <para>UltraStor 14F/24F/34F SCSI controllers.</para>
- </listitem>
-
- <listitem>
- <para>Seagate ST01/02 SCSI controllers.</para>
- </listitem>
-
- <listitem>
- <para>Future Domain 8xx/950 series SCSI controllers.</para>
- </listitem>
-
- <listitem>
- <para>WD7000 SCSI controllers.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Con todas las controladoras SCSI soportadas, se consigue
- ofrecer soporte completo para perif&eacute;ricos SCSI-I
- &amp; SCSI-II, incluyendo discos, cintas, DAT, y lectores de
- CDROM.</para>
-
- <para>Los siguientes tipos de CDROM son soportados actualmente:
- </para>
-
- <itemizedlist>
-
- <listitem>
- <para>SoundBlaster SCSI and ProAudio Spectrum SCSI
- (<literal>cd</literal>)</para>
-
- </listitem>
-
- <listitem>
- <para>Mitsumi (all models) proprietary interface
- (<literal>mcd</literal>)</para>
- </listitem>
-
- <listitem>
- <para>Matsushita/Panasonic (Creative) CR-562/CR-563
- proprietary interface (<literal>matcd</literal>)</para>
- </listitem>
-
- <listitem>
- <para>Sony proprietary interface (<literal>scd</literal>)</para>
- </listitem>
-
- <listitem>
- <para>ATAPI IDE interface (experimental and should be
- considered ALPHA quality!) (<literal>wcd</literal>)</para>
- </listitem>
-
- </itemizedlist>
-
-
- </sect2>
-
- <sect2 id="install-nics">
- <title>Tarjetas de red</title>
-
- <itemizedlist>
-
- <listitem>
- <para>Allied-Telesis AT1700 and RE2000 cards</para>
- </listitem>
-
- <listitem>
- <para>SMC Elite 16 WD8013 Ethernet interface, and most other
- WD8003E, WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and
- WD8013EBT based clones. SMC Elite Ultra and 9432TX based
- cards are also supported.</para>
- </listitem>
-
- <listitem>
- <para>DEC EtherWORKS III NICs (DE203, DE204, and DE205)</para>
- </listitem>
-
- <listitem>
- <para>DEC EtherWORKS II NICs (DE200, DE201, DE202, and
- DE422)</para>
- </listitem>
-
- <listitem>
- <para>DEC DC21040/DC21041/DC21140 based NICs:</para>
- <itemizedlist>
-
- <listitem>
- <para>ASUS PCI-L101-TB</para>
- </listitem>
-
- <listitem>
- <para>Accton ENI1203</para>
- </listitem>
-
- <listitem>
- <para>Cogent EM960PCI</para>
- </listitem>
-
- <listitem>
- <para>Compex CPXPCI/32C</para>
- </listitem>
-
- <listitem>
- <para>D-Link DE-530</para>
- </listitem>
-
- <listitem>
- <para>DEC DE435</para>
- </listitem>
-
- <listitem>
- <para>Danpex EN-9400P3</para>
- </listitem>
-
- <listitem>
- <para>JCIS Condor JC1260</para>
- </listitem>
-
- <listitem>
- <para>Kingston KNE100TX</para>
- </listitem>
-
- <listitem>
- <para>Linksys EtherPCI</para>
- </listitem>
-
- <listitem>
- <para>Mylex LNP101</para>
- </listitem>
-
- <listitem>
- <para>SMC EtherPower 10/100 (Model 9332)</para>
- </listitem>
-
- <listitem>
- <para>SMC EtherPower (Model 8432)</para>
- </listitem>
-
- <listitem>
- <para>SMC EtherPower (2)</para>
- </listitem>
-
- <listitem>
- <para>Zynx ZX314</para>
- </listitem>
-
- <listitem>
- <para>Zynx ZX342</para>
- </listitem>
-
- </itemizedlist>
-
- </listitem>
-
- <listitem>
- <para>DEC FDDI (DEFPA/DEFEA) NICs</para>
- </listitem>
-
- <listitem>
- <para>Fujitsu FMV-181 and FMV-182</para>
- </listitem>
-
- <listitem>
- <para>Fujitsu MB86960A/MB86965A</para>
- </listitem>
-
- <listitem>
- <para>Intel EtherExpress</para>
- </listitem>
-
- <listitem>
- <para>Intel EtherExpress Pro/100B 100Mbit.</para>
- </listitem>
-
- <listitem>
- <para>Isolan AT 4141-0 (16 bit)</para>
- </listitem>
-
- <listitem>
- <para>Isolink 4110 (8 bit)</para>
- </listitem>
-
- <listitem>
- <para>Lucent WaveLAN wireless networking interface.</para>
- </listitem>
-
- <listitem>
- <para>Novell NE1000, NE2000, and NE2100 ethernet interface.
- </para>
- </listitem>
-
- <listitem>
- <para>3Com 3C501 cards</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C503 Etherlink II</para>
- </listitem>
-
- <listitem>
- <para>3Com 3c505 Etherlink/+</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C507 Etherlink 16/TP</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C590, 3C595 Etherlink III</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C90x cards.</para>
- </listitem>
-
- <listitem>
- <para>HP PC Lan Plus (27247B and 27252A)</para>
- </listitem>
-
- <listitem>
- <para>Toshiba ethernet cards</para>
- </listitem>
-
- <listitem>
- <para>PCMCIA ethernet cards from IBM and National
- Semiconductor are also supported.</para>
- </listitem>
-
- </itemizedlist>
-
- <note>
- <para>Actualmente FreeBSD no soporta las caracter&iacute;sticas PnP
- (plug-n-play) de algunas tarjetas. Si tu tarjeta tiene Pnp y te
- est&aacute; dando problemas, intenta desactivarle el PnP.</para>
- </note>
- </sect2>
-
- <sect2 id="install-misc">
- <title>Dispositivos varios</title>
-
- <itemizedlist>
-
- <listitem>
- <para>AST 4 port serial card using shared IRQ.</para>
- </listitem>
-
- <listitem>
- <para>ARNET 8 port serial card using shared IRQ.</para>
- </listitem>
-
- <listitem>
- <para>BOCA IOAT66 6 port serial card using shared IRQ.</para>
- </listitem>
-
- <listitem>
- <para>BOCA 2016 16 port serial card using shared IRQ.</para>
- </listitem>
-
- <listitem>
- <para>Cyclades Cyclom-y Serial Board.</para>
- </listitem>
-
- <listitem>
- <para>STB 4 port card using shared IRQ.</para>
- </listitem>
-
- <listitem>
- <para>SDL Communications Riscom/8 Serial Board.</para>
- </listitem>
-
- <listitem>
- <para>SDL Communications RISCom/N2 and N2pci sync serial
- cards.</para>
- </listitem>
-
- <listitem>
- <para>Digiboard Sync/570i high-speed sync serial card.</para>
- </listitem>
-
- <listitem>
- <para>Decision-Computer Intl. &ldquo;Eight-Serial&rdquo; 8 port
-serial
- cards using shared IRQ.</para>
- </listitem>
-
- <listitem>
- <para>Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum,
- Gravis UltraSound, Gravis UltraSound MAX and Roland MPU-401
- sound cards.</para>
- </listitem>
-
- <listitem>
- <para>Matrox Meteor video frame grabber.</para>
- </listitem>
-
- <listitem>
- <para>Creative Labs Video spigot frame grabber.</para>
- </listitem>
-
- <listitem>
- <para>Omnimedia Talisman frame grabber.</para>
- </listitem>
-
- <listitem>
- <para>Brooktree BT848 chip based frame grabbers.</para>
- </listitem>
-
- <listitem>
- <para>X-10 power controllers.</para>
- </listitem>
-
- <listitem>
- <para>PC joystick and speaker.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>FreeBSD actualmente no soporta el bus microcanal de IBM (MCA).
- </para>
-
- </sect2>
- </sect1>
-
- <sect1>
- <title>Prepar&aacute;ndonos para la instalaci&oacute;n</title>
-
- <para>Existen diferentes m&eacute;todos de instalaci&oacute;n de
- FreeBSD. La siguiente secci&oacute;n describe la preparaci&oacute;n
- necesaria para cada tipo de instalaci&oacute;n.</para>
-
- <sect2>
- <title>Antes de instalar desde CDROM</title>
-
- <para>Si tu lector de CDROM no est&aacute; soportado, por favor,
- pasa a la secci&oacute;n <link linkend="install-msdos">
- Preparaci&oacute;n en MSDOS</link>.</para>
-
- <para>No hay mucho trabajo de preparaci&oacute;n previo para realizar
- una instalaci&oacute;n satisfactoria desde uno de los CDROM's de
- Walnut Creek (otras distribuciones en CDROM tambi&eacute;n es
- posible que funcionen pero no tenemos manera de asegurarlo ya que
- no hemos podido probar ninguno, y tampoco sabemos como est&aacute;n
- hechos). Puedes arrancar directamente el programa de
- instalaci&oacute;n desde DOS usando el fichero
- <filename>install.bat</filename> o puedes hacer los discos de
- arranque ejecutando el programa <filename>makeflp.bat</filename>.
- </para>
-
- <note>
- <para>Si est&aacute;s ejecutando FreeBSD 2.1-RELEASE y tienes un
- CDROM IDE, usa los ficheros <filename>inst_ide.bat</filename>
- o <filename>atapiflp.bat</filename>.</para>
-
- </note>
-
- <para>Para acceder al interface m&aacute;s sencillo de todos
- (desde DOS), ejecuta el comando <command>view</command>.
- Aparecer&aacute; una utilidad DOS con un men&uacute;
- a trav&eacute;s del cual puedes acceder a todas las opciones
- de instalaci&oacute;n disponibles.</para>
-
- <para>Si est&aacute;s creando el disco de arranque desde un sistema
- UNIX, mira <link linkend="install">el principio de esta gu&iacute;a
- </link>.</para>
-
- <para>Una vez hayas arrancado desde DOS o floppy, deber&iacute;s ser
- capaz de poder seleccionar el CDROM como el soporte de
- instalaci&oacute;n en el men&uacute; Media y cargar la
- distribuci&oacute;n completa desde el CDROM. No se requiere
- ning&uacute;s soporte adicional para la instalaci&oacute;n.</para>
-
- <para>Despu&eacute;s de instalar por completo el sistema y arrancar
- desde el disco duro, puedes montar el CDROM en cualquier momento
- tecleando: <command>mount /cdrom</command></para>
-
- <para>Antes de poder quitar el CDROM, es necesario teclear:
- <command>umount /cdrom</command>.</para>
-
- <note>
- <para>Antes de ejecutar el programa de instalaci&oacute;n
- aseg&uacute;rate de tener el CDROM en el lector para que
- &eacute;ste pueda ser detectado durante la fase de pruebas
- de hardware. Esto es necesario tambi&eacute;n si quieres que
- el CDROM sea a&ntilde;adido autom&aacute;ticamente a la
- configuraci&oacute;n inicial del sistema.</para>
- </note>
-
- <para>Finalmente, si quieres que tus usuarios puedan instalar FreeBSD
- v&iacute;a FTP directamente desde el CDROM de tu m&aacute;quina,
- lo puedes hacer de manera muy sencilla. Una vez tienes la
- m&aacute;quina completamente instalada, s&oacute;lo tienes que
- a&ntilde;dir la siguiente l&iacute;nea al fichero de passwords
- (usando el comando vipw):</para>
-
- <programlisting>
-ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting>
-
- <para>Cualquiera con conectividad en tu red (y permisos para
- acceder a ella) puede seleccionar ahora como soporte de la
- instalaci&oacute;n el tipo FTP y teclear:
- <userinput>ftp://<replaceable>tu_maquina</replaceable></userinput>
- despu&eacute;s de seleccionar &ldquo;Other&rdquo; en el men&uacute;
- de servidores FTP.</para>
-
- </sect2>
-
- <sect2>
- <title>Antes de instalar desde Floppy</title>
-
- <para>Si debes instalar desde disquettes, bi&eacute;n por problemas
- de compatibilidad de hardware o por que te guste hacer las cosas
- de la manera m&aacute;s complicada, antes debes preparar algunos
- disquettes.</para>
-
- <para>Necesitar&aacute;s, como m&iacute;nimo, tantos disquettes de
- 1.44MB o 1.2MB como espacio ocupe la distribuci&oacute;n en el
- directorio bin. Si est&aacute;s preparando estos disquettes bajo
- DOS, entonces ESTOS disquettes <emphasis>deben</emphasis> estar
- formateados con el comando FORMAT de MS-DOS. Si utilizas Windows,
- usa el comando format del administrador de ficheros.</para>
-
- <para><emphasis>NO</emphasis> te f&iacute;es de los discos
- preformateados. Format&eacute;alos t&uacute; mismo, s&oacute;lo
- para estar seguro. Muchos de los problemas reportados en el pasado
- por usuarios, han tenido que ver con disquettes mal formateados o
- defectuosos.</para>
-
- <para>Si est&aacute;s creando los disquettes desde una m&aacute;quina
- FreeBSD, formatear los discos tampoco es mala idea. Puedes usar el
- comando <command>disklabel</command> y <command>newfs</command>
- para formatearlos e incluir en ellos el sistema de ficheros UFS.
- Para hacerlo, puedes seguir la siguiente secuencia de comandos:
- </para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>fdformat -f 1440 fd0.1440
- </userinput>
-&prompt.root; <userinput>disklabel -w -r fd0.1440 floppy3</userinput>
-&prompt.root; <userinput>newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0</userinput>
- </screen>
- </informalexample>
-
- <note>
- <para>Usa <literal>fd0.1200</literal> y <literal>floppy5</literal>
- para discos de 5.25" (o 1.2MB).</para>
- </note>
-
- <para>Ahora puedes montar los disquettes y escribir en ellos como
- en cualquier otro sistema de ficheros.</para>
-
- <para>Despu&eacute;s de formatear los disquettes, necesitar&aacute;s
- copiar los ficheros en ellos. Los ficheros de la distribuci&oacute;n
- est&aacute;n convenientemente distribuidos para que quepan 5 de
- ellos en cada disquette de 1.44Mb. Utiliza todos los discos
- necesarios para incluir en ellos todas las distribuciones que
- quieras instalar. Cada distribuci&oacute;n debe estar en un
- subdirectorio del floppy, por ejemplo:
- <filename>a:\bin\bin.aa</filename>,
- <filename>a:\bin\bin.ab</filename>, y as&iacute; hasta completar
- la distribuci&oacute;n.</para>
-
- <para>Una vez llegues a la pantalla de selecci&oacute;n del
- soporte de la instalaci&oacute;n, selecciona &ldquo;Floppy&rdquo;
- , siendo preguntado por el resto de par&aacute;metros necesarios.
- </para>
-
- </sect2>
-
- <sect2 id="install-msdos">
- <title>Antes de instalar desde una partici&oacute;n MS-DOS</title>
-
- <para>Para realizar la instalaci&oacute;n desde una partici&oacute;n
- MS-DOS, copia los ficheros de la distribuci&oacute;n en un
- directorio llamado <filename>C:\FREEBSD</filename>. La estructura
- de directorios del CDROM tiene que ser parcialmente reproducida
- dentro de &eacute;ste directorio, por lo que te aconsejamos usar
- el comando <command>xcopy</command>. Por ejemplo, para preparar una
- instalaci&oacute;n m&iacute;nima de FreeBSD:</para>
-
- <informalexample>
- <screen><prompt>C:\&gt;</prompt> <userinput>MD C:\FREEBSD
- </userinput>
-<prompt>C:\&gt;</prompt> <userinput>XCOPY /S E:\BIN C:\FREEBSD\BIN\</userinput>
-<prompt>C:\&gt;</prompt> <userinput>XCOPY /S E:\MANPAGES C:\FREEBSD\MANPAGES\
-</userinput></screen>
- </informalexample>
-
- <para>Asumiendo que <devicename>C:</devicename> es donde tienes
- espacio libre y <devicename>E:</devicename> es la unidad de tu
- lector de CDROM.</para>
-
- <para>Tienes que copiar cada distribuci&oacute;n que quieras instalar
- desde MS-DOS, bajo <filename>C:\FREEBSD</filename> &mdash; la
- distribuci&oacute;n <abbrev>BIN</abbrev> es s&oacute;lo la
- m&iacute;nima requerida.</para>
-
- </sect2>
-
- <sect2>
- <title>Antes de instalar desde una cinta QIC/SCSI</title>
-
- <para>Instalar desde una cinta es probablemente el m&eacute;todo
- m&aacute;s sencillo, aparte de una instalaci&oacute;n on-line,
- v&iacute;a FTP o CDROM. El programa de instalaci&oacute;n espera
- que los ficheros est&eacute;n en formato tar en la cinta, por lo
- que s&oacute;lo tienes que seleccionar la distribuci&oacute;n a
- instalar y copiarla en una cinta en formato tar con un comando
- como:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput>
-&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen>
- </informalexample>
-
- <para>Cuando ejecutas la instalaci&oacute;n, deber&iacute;s
- asegurarte de dejar suficiente espacio libre en alg&uacute;n
- directorio temporal (el cual podr&aacute;s elegir), para
- que el programa de instalaci&oacute;n pueda recuperar
- <emphasis>todo</emphasis> el contenido de la cinta. Dado al acceso
- no aleatorio de las cintas, este m&eacute;todo exige un poco de
- espacio temporal. Necesitar&aacute;s tanto espacio temporal como
- contenidos hayan en la cinta.</para>
-
- <note>
- <para>Es imprescindible que la cinta est&eacute; en el lector
- <emphasis>antes</emphasis> de arrancar con el disco de
- instalaci&oacute;n.</para>
- </note>
-
- </sect2>
-
- <sect2>
- <title>Antes de instalar sobre una red</title>
-
- <para>Puedes hacer instalaciones de red mediante 3 tipos de
- conexi&oacute;n:</para>
-
- <variablelist>
- <varlistentry><term>Puerto serie</term>
-
- <listitem>
- <para>SLIP o PPP</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Puerto paralelo</term>
-
- <listitem>
- <para>PLIP (cable laplink)</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ethernet</term>
-
- <listitem>
- <para>Tarjeta ethernet estandar (incluye algunas PCMCIA).
- </para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>El soporte de SLIP es bastante primitivo, y limitado a
- conexiones punto a punto como una cable serie entre un
- port&aacute;til y otro ordenador. La conexi&oacute;n debe ser
- mediante un cable cruzado serie ya que la instalaci&oacute;n
- SLIP no ofrece posibilidad de marcado telef&oacute;nico; esta
- facilidad se ofrece mediante la utilidad PPP, la cual aconsejamos
- usar siempre que sea posible.</para>
-
- <para>Si est&aacute;s usando un m&oacute;dem, PPP es tu &uacute;nica
- opci&oacute;n. Aseg&uacute;rate de tener la informaci&oacute;n de
- tu proveedor a mano ya que el proceso de instalaci&oacute;n te
- la pedir&aacute; de manera inmediata. Necesitar&aacute;s saber
- como llamar a tu proveedor usando &ldquo;comando AT&rdquo;
- espec&iacute;ficos de tu m&oacute;dem por que el marcador PPP
- s&oacute;lo ofrece un simple emulador de terminal. Si usas
- PAP o CHAP, necesitar&aacute;s teclear los comandos
- <command>set authname</command> y <command>set authkey</command>
- antes de teclear el comando <command>term</command>.
- P&aacute;sate por el <link linkend="userppp">manual ppp</link>
- y las secciones de las <ulink URL="../FAQ/userppp.html">FAQ</ulink>
- para m&aacute;s informaci&oacute;n. Si tienes problemas, el log
- puede ser dirigido a la pantalla usando el comando
- <command>set log local ...</command>.</para>
-
- <para>Si puedes disponer de una conexi&oacute;n punto a punto a otro
- sistema FreeBSD (2.0R o superior), deber&iacute;as considerar la
- instalaci&oacute;n sobre el puerto paralelo con un cable
- &ldquo;laplink&rdquo;. La velocidad es mucho mayor que la que
- podemos conseguir sobre una conexi&oacute;n serie (por encima de
- los 50k/seg), obteniendo una instalaci&oacute;n m&aacute;s
- r&aacute;pida.</para>
-
- <para>Finalmente, para la instalaci&oacute;n de red m&aacute;s
- r&aacute;pida posible, una tarjeta ethernet es siempre una
- buena elecci&oacute;n. FreeBSD soporta muchas de las tarjetas
- ethernet del mercado, una tabla de las tarjetas soportadas
- (y sus caracter&iacute;sticas requeridas) est&aacute;
- disponible en la secci&oacute;n
- <link linkend="install-hw">Hardware soportado</link>. Si
- est&aacute;s usando una de las tarjeta PCMCIA soportadas,
- aseg&uacute;rate de tener la tarjeta insertada
- <emphasis>antes</emphasis> de encender el port&aacute;til.
- Desafortunadamente, actualmente FreeBSD no soporta la
- "inserci&oacute;n en caliente" de tarjetas PCMCIA durante el
- proceso de instalaci&oacute;n.</para>
-
- <para>Tambi&eacute;n necesitar&aacute;s saber tu direcci&oacute;n IP
- en la red, el valor de la m&aacute;scara de tu clase de
- direcciones y el nombre de tu m&aacute;quina. Tu administrador
- de sistemas puede darte todos los valores adecuados a la
- configuraci&oacute;n de tu red. Si vas a acceder a otras
- m&aacute;quinas por nombre en lugar de direcci&oacute;n IP,
- necesitar&aacute;s la direcci&oacute;n de un servidor de nombres
- y posiblemente la direcci&oacute;n de un gateway (si usas PPP es
- la direcci&oacute;n IP de tu proveedor). Si no conoces las
- respuestas a la mayor&iacute;a de estas preguntas, definitivamente
- debes hablar con tu administrador de sistemas
- <emphasis>antes</emphasis> de intentar &eacute;ste tipo de
- instalaci&oacute;n.</para>
-
- <para>Una vez tienes una conexi&oacute;n de red de cualquier tipo
- funcionando, la instalaci&oacute;n puede continuar sobre NFS o
- FTP.</para>
-
- <sect3>
- <title>Preparando la instalaci&oacute;n sobre NFS</title>
-
- <para>La instalaci&oacute;n sobre NFS es muy sencilla:
- simplemente copia los ficheros de las distribuciones de FreeBSD
- que necesites en alg&uacute;n lugar del servidor, y apunta
- el soporte de instalaci&oacute;n de NFS hacia &eacute;l.</para>
-
- <para>Si este servidor s&oacute;lo soporta accesos a
- &ldquo;puertos seleccionados&rdquo; (como ocurre generalmente
- con las estaciones de trabajo SUN), necesitar&aacute;s activar
- esta opci&oacute;n en el men&uacute; Options antes de proceder
- con la instalaci&oacute;n.</para>
-
- <para>Si tienes una conexi&oacute;n de red de poca calidad, con
- ratios de transferencia muy pobres, tambi&eacute;n deber&iacute;as
- activar el flag apropiado en el men&uacute; Options.</para>
-
- <para>Para que la instalaci&oacute;n por NFS funcione, el servidor
- debe soportar el acceso a subdirectorios exportados, por
- ejemplo, si el directorio de tu distribuci&oacute;n de FreeBSD
- &rel.current; reside en:
- <filename>ziggy:/usr/archive/stuff/FreeBSD</filename> Entonces
- <hostid>ziggy</hostid> debe permitir montar directamete
- <filename>/usr/archive/stuff/FreeBSD</filename>, y no s&oacute;lo
- <filename>/usr</filename> o
- <filename>/usr/archive/stuff</filename>.</para>
-
- <para>En fichero <filename>/etc/exports</filename> de FreeBSD,
- esto es controlado por la opci&oacute;n <option>-alldirs</option>
- . Otros servidores NFS pueden usar opciones diferentes. Si
- obtienes el mensaje <errortype>Permission Denied</errortype> por
- parte del servidor, significa que no tienes esta opci&oacute;n
- activada de manera adecuada.</para>
-
- </sect3>
-
- <sect3>
- <title>Preparando una instalaci&oacute;n por FTP</title>
-
- <para>La instalaci&oacute;n por FTP se puede realizar desde
- cualquiera de los servidores mirror que contengan una
- versi&oacute;n razonablemente actualizada de FreeBSD
- &rel.current;. Un completo men&uacute; de elecciones razonables
- para pr&aacute;cticamente cualquier parte del mundo est&aacute;
- disponible en el men&uacute; de instalaci&oacute;n FTP.</para>
-
- <para>Si est&aacute;s instalando desde cualquier otro servidor no
- listado en ese men&uacute;, o tienes problemas con la
- configuraci&oacute;n del servidor de nombres o la
- resoluci&oacute;n correcta, puedes especificar tu propia URL
- seleccionando la opci&oacute;n &ldquo;Other&rdquo; en el
- men&uacute;. Una URL tambi&eacute;n puede ser una direcci&oacute;n
- IP, de manera que lo siguiente funcionar&iacute;a en la ausencia
- de un servidor de nombres:</para>
-
- <informalexample>
- <screen><userinput>ftp://165.113.121.81/pub/FreeBSD/&rel.current
-;-RELEASE</userinput></screen>
- </informalexample>
-
- <para>Hay dos modos de instalaci&oacute;n FTP que puedes
- usar:</para>
-
- <variablelist>
- <varlistentry><term>FTP Activo</term>
- <listitem>
- <para>Para todas las transferencias FTP, usa el modo
- &ldquo;Activo&rdquo;. Esto no funcionar&aacute; a
- trav&eacute;s de firewalls, pero funcionar&aacute; sin
- problemas con servidores FTP antiguos que no soportan
- el modo pasivo. Si tu conexi&oacute;n se cuelga con el
- modo pasivo, intenta con el modo activo!.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>FTP Pasivo</term>
-
- <listitem>
- <para>Para todas las transferencias FTP usa el modo
- &ldquo;Pasivo&rdquo;. Esto permite al usuario conectar
- a trav&eacute;s de firewalls que no aceptan conexiones
- entrantes en direcciones de puertos aleatorias.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <note>
- <para>Los modos Activos y Pasivos no son lo mismo que una
- conexi&oacute;n a trav&eacute;s de &ldquo;proxy&rdquo;, donde
- un servidor proxy FTP est&aacute; escuchando y reenviando
- las peticiones FTP!.</para>
- </note>
-
- <para>Para un servidor proxy FTP, normalmente deber&iacute;as
- darle el nombre del servidor real al que quieres conectar como
- parte del nombre de usuario despu&eacute;s de una @-sign.
- El servidor proxy reenviar&aacute; la petici&oacute;n al servidor
- adecuado. Un ejemplo: digamos que quieres realizar la
- instalaci&oacute;n desde
- <hostid role="fqdn">ftp.freebsd.org</hostid> usando el servidor
- proxy FTP <hostid role="fqdn">foo.bar.com</hostid>, que
- est&aacute; escuchando en el puerto 1234.</para>
-
- <para>En este caso, tienes que ir al men&uacute; de opciones, y
- poner el nombre de usuario de FTP como ftp@ftp.freebsd.org, y
- tu direcci&oacute;n de correo como password. Como medio de
- instalaci&oacute;n , especifica FTP (o FTP pasivo, si el proxy
- lo soporta) y la URL
-
- <literal>
- ftp://foo.bar.com:1234/pub/FreeBSD
- </literal></para>
-
- <para><filename>/pub/FreeBSD</filename> de
- <hostid role="fqdn">ftp.freebsd.org</hostid> es "cacheado" bajo
- <hostid role="fqdn">foo.bar.com</hostid>, permitiendote realizar
- la instalaci&oacute;n desde <emphasis>esa</emphasis>
- m&aacute;quina (la cual coge los ficheros de
- <hostid role="fqdn">ftp.freebsd.org</hostid> a medida que la
- instalaci&oacute;n los necesita).</para>
-
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Instalando FreeBSD</title>
-
- <para>Una vez has tomado nota de los pasos apropiados en la
- preinstalaci&oacute;n, deber&iacute;s poder instalar FreeBSD sin
- ning&uacute;n tipo de problema.</para>
-
- <para>Si tienes alg&uacute;n problema, deber&iacute;as vover
- atr&aacute;s y releer la secci&oacute;n de preparaci&oacute;n
- aplicable a tu medio de instalaci&oacute;n. Si est&aacute;s teniendo
- problemas de hardware, o FreeBSD se niega a arrancar, lee la
- Gu&iacute;a de Hardware que puedes encontrar en el disco de arranque
- para posibles soluciones.</para>
-
- <para>El disco de arranque de FreeBSD contiene toda la
- documentaci&oacute;n on-line que deber&iacute;s necesitar para
- realizar la instalaci&oacute;n. Si no es as&iacute;, nos
- gustar&iacute;a saber que es lo que te ha confundido o d&oacute;nde
- has tenido m&aacute;s problemas. Env&iacute; tus comentarios a
- &a.doc;. El objetivo del programa de instalaci&oacute;n de FreeBSD
- (sysinstall) es estar suficientemente documentado para poder realizar
- una instalaci&oacute;n sin problemas.</para>
-
- <para>Mientras tanto, puedes encontrar &uacute;til esta
- &ldquo;t&iacute;pica secuencia de instalaci&oacute;n&rdquo;:
- </para>
-
- <orderedlist>
-
- <listitem>
- <para>Arranca con el disco de arranque. Despu&eacute;s de la
- secuencia de arranque que puede tardar entre 30 segundos y
- 3 minutos, dependiendo del hardware, deber&iacute;a aparecer
- un men&uacute; de opciones iniciales. Si el disco no arranca o
- el arranque se cuelga en alg&uacute;n momento, lee la
- secci&oacute;n Q&amp;A de la Gu&iacute;a de Hardware para
- conocer las posibles causas.</para>
- </listitem>
-
- <listitem>
- <para>Pulsa F1. Deber&iacute;as ver unas instrucciones
- b&aacute;sicas sobre el sistema de men&uacute;s y
- del programa en general. Si no has usado este sistema de
- men&uacute; anteriormente, <emphasis>por favor</emphasis>
- l&eacute;elo.</para>
- </listitem>
-
- <listitem>
- <para>Selecciona la opci&oacute;n Options y configura las
- preferencias que puedas tener o necesitas.</para>
- </listitem>
-
- <listitem>
- <para>Selecciona la instalaci&oacute;n Novice, Custom o Express,
- dependiendo de la ayuda que quieras recibir del programa de
- instalaci&oacute;n durante todo el proceso. Si nunca has usado
- FreeBSD anteriormente, la instalaci&oacute;n Novice es la
- m&aacute;s recomendada.</para>
- </listitem>
-
- <listitem>
- <para>El men&uacute; de configuraci&oacute;n final te permite
- configurar tu instalaci&oacute;n de FreeBSD a trav&eacute;s
- de un sistema guiado por men&uacute;s. Algunas secciones,
- como la de red, pueden ser importantes si has hecho la
- instalaci&oacute;n desde CDROM/Cinta/Floppy y no has configurado
- todav&iacute;a tus interfaces de red (asumiendo que exista
- alguno). Configurando adecuadamente en este momento los
- interfaces permitir&aacute;a que FreeBSD est&eacute; activo en
- la red cuando reinicies por primera vez desde el disco
- duro.</para>
- </listitem>
-
- </orderedlist>
-
- </sect1>
-
- <sect1>
- <title>Preguntas y Respuestas para usuarios de MS-DOS</title>
-
- <para>Muchos usuarios de FreeBSD querr&aacute;n instalar FreeBSD
- en PC's habitados por MS-DOS. Aqu&iacute; est&aacute;n algunas
- de las pregunas (y respuestas) m&aacute;s comunes sobre la
- instalaci&oacute;n de FreeBSD en estos sistemas.</para>
-
- <para><emphasis>Ayuda! No tengo espacio. Necesito borrarlo todo?
- </emphasis></para>
-
- <para>Si tu m&aacute;quina est&aacute; todav&iacute;a ejecutando
- MS-DOS y tienes poco o ning&uacute;n espacio libre disponible
- para la instalaci&oacute;n de FreeBSD, no todo est&aacute;
- perdido!. Quiz&aacute;s encuentres &uacute;til la utilidad FIPS,
- disponible en el directorio <filename>tools</filename> del CDROM
- de FreeBSD, o en cualquiera de los mirrors de FreeBSD.</para>
-
- <para>FIPS te permite repartir una partici&oacute;n MS-DOS en dos
- partes, preservando la partici&oacute;n original permitiendo la
- instalaci&oacute;n en la segunda. Primero debes defragmentar
- tu partici&oacute;n MS-DOS usando el programa DEFRAG de DOS 6.x o
- las utilidades Norton. Despu&eacute;s ejecuta FIPS. El propio
- programa te preguntar&aacute; todos los datos que necesite conocer.
- Finalmente puedes reiniciar la m&aacute;quina e instalar FreeBSD
- en la segunda partici&oacute;n. Mira el men&uacute;
- <emphasis>Distributions</emphasis> para hacer una estimaci&oacute;n
- de la cantidad de espacio necesario para el tipo de
- instalaci&oacute;n que deseas hacer.</para>
-
- <para><emphasis>Puedo usar sistemas de ficheros comprimidos desde
- FreeBSD?</emphasis></para>
-
- <para>No. Si est&aacute;s usando una utilidad como Stacker(tm) o
- DoubleSpace(tm), FreeBSD solo ser&aacute; capaz de usar la
- parte del sistema de ficheros no comprimida. El resto del
- sistema de ficheros se mostrar&aacute;s como un &uacute;nico
- fichero. <emphasis>No borres este fichero</emphasis>. Lo
- agradecer&aacute;s enormemente!.</para>
-
- <para>Es mejor soluci&oacute;n crear otra partici&oacute;n primaria
- de MS-DOS no comprimida y usarla para la comunicaci&oacute;n entre
- MS-DOS y FreeBSD.</para>
-
- <para><emphasis>Puedo montar mis particiones MS-DOS extendidad?
- </emphasis></para>
-
- <para>S&iacute;. Las particiones extendidas de DOS son mapeadas al
- final del otro &ldquo;slices&rdquo; en FreeBSD, por ejemplo, tu
- disco <devicename>D:</devicename> ser&aacute;
- <filename>/dev/sd0s5</filename>, tu disco
- <devicename>E:</devicename> ser&aacute;
- <filename>/dev/sd0s6</filename> y as&iacute; respectivamente. Este
- ejemplo asume, por supuesto, que tu partici&oacute;n extendida
- est&aacute; en el disco SCSI 0. Para discos IDE, sustituye
- <filename>wd</filename> por <filename>sd</filename>. Para montar
- las particiones extendidas tienes que hacerlo exactamente igual
- que cualquier otra partici&oacute;n o disco DOS:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mount -t msdos /dev/sd0s5 /dos_d
- </userinput></screen>
- </informalexample>
-
- <para><emphasis>Puedo ejecutar binarios MS-DOS bajo FreeBSD?
- </emphasis></para>
-
- <para>BSDI ha donado su emulador DOS al mundo BSD y &eacute;ste ha
- sido portado a FreeBSD.</para>
-
- <para>Hay tambi&eacute;n una (tecnicamente) buena aplicaci&oacute;n
- disponible en la <link linkend="ports">Colecci&oacute;n de Ports
- </link> llamada pcemu, la cual te permite ejecutar muchos binarios
- en modo texto emulando por completo una CPU 8088.</para>
-
- </sect1>
- </chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/es_ES.ISO8859-1/books/handbook/internals/chapter.sgml b/es_ES.ISO8859-1/books/handbook/internals/chapter.sgml
deleted file mode 100755
index c70b243f9d..0000000000
--- a/es_ES.ISO8859-1/books/handbook/internals/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="internals">
- <title>FreeBSD por Dentro</title>
-
- <para>FreeBSD por Dentro</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml b/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml
deleted file mode 100755
index f99577dd28..0000000000
--- a/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml
+++ /dev/null
@@ -1,639 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="introduction">
- <title>Introducci&oacute;n</title>
-
- <para>FreeBSD es un sistema operativo basado en 4.4BSD-Lite para
- arquitectura Intel (x86). Para una descripci&oacute;n de FreeBSD,
- mira <link linkend="nutshell"> FreeBSD en una palabra</link>. Para
- conocer la historia del proyecto, lee <link linkend="history"> una
- breve historia de FreeBSD</link>. Para ver la descripci&oacute;n de
- la &uacute;ltima release, lee <link linkend="relnotes"> sobre la
- release actual</link>. Si est&aacute;s interesado en contribuir de
- alguna manera al proyecto FreeBSD, (c&oacute;digo, equipamiento,
- donaciones, etc), por favor, lee la secci&oacute;n
- <link linkend="contrib"> contribuyendo a FreeBSD</link>.</para>
-
- <sect1 id="nutshell">
- <title>FreeBSD en una palabra</title>
-
- <para>FreeBSD es un sistema operativo para ordenadores personales basado
- en CPU's de arquitectura Intel, incluyendo procesadores 386, 486,
- y Pentium (versiones SX y DX). Tambi&eacute;n son soportados los
- procesadores compatibles Intel como AMD y Cyrix. FreeBSD te ofrece
- muchas caracter&iacute;sticas avanzadas antes solo disponibles en
- ordenadores mucho m&aacute;s caros. Estas caracter&iacute;sticas
- incluyen:</para>
-
- <itemizedlist>
-
- <listitem>
- <para><emphasis>Preemptive multitasking</emphasis> con
- ajuste din&aacute;mico de prioridades para asegurar
- la mejor compartici&oacute;n de recursos entre
- aplicaciones y usuarios.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Acceso Multiusuario</emphasis>
- significa que diferentes personas pueden usar un
- sistema FreeBSD simultaneamente para realizar
- diferentes trabajos. Los perif&eacute;ricos del sistema
- como impresoras y cintas tambi&eacute;n pueden ser
- compartidas entre todos los usuarios del sistema.
- </para>
- </listitem>
-
- <listitem>
- <para>Completa <emphasis>conectividad TCP/IP</emphasis>
- incluyendo soporte SLIP, PPP, NFS y NIS. Esto significa
- que tu m&aacute;quina FreeBSD puede comunicarse
- facilmente con otros sistemas, adem&aacute;s de actuar
- como servidor principal, proveyendo de funciones
- vitales como NFS (acceso a ficheros remotos), servicios
- de correo electr&oacute;nico o poner a tu
- organizaci&oacute;n en Internet con WWW, ftp, router,
- firewall (seguridad).</para>
- </listitem>
-
- <listitem>
- <para><emphasis>La protecci&oacute;n de memoria
- </emphasis> asegura que las aplicaciones (o usuarios)
- no puedan interferirse unos con los otros. En caso de
- que una aplicaci&oacute;n falle, no afectar&aacute; al
- resto de aplicaciones en funcionamiento.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD es un <emphasis>sistema operativo de 32
- bits</emphasis> y fue dise&ntilde;ado as&iacute;
- desde el primer momento.</para>
- </listitem>
-
- <listitem>
- <para>El sistema estandar en la industria <emphasis>X
- Window</emphasis> (X11R6) provee una interficie
- gr&aacute;fica de usuario (GUI) para las tarjetas VGA
- y monitores m&aacute;s comunes incluyendo todo el
- c&oacute;digo fuente.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Compatibilidad binaria</emphasis> con
- muchos programas nativos de SCO, BSDI, NetBSD, Linux
- y 386BSD.</para>
- </listitem>
-
- <listitem>
- <para>Cientos de aplicaciones <emphasis>
- ready-to-run</emphasis> est&aacute;n disponibles en
- las colecci&oacute;nes de <emphasis>ports</emphasis>
- y <emphasis>packages</emphasis>. Porqu&eacute; buscar
- en la red cuando puedes encontrarlo todo aqu&iacute;?.
- </para>
- </listitem>
-
- <listitem>
- <para>Miles de aplicaciones <emphasis>f&aacute;ciles
- de portar</emphasis> disponibles en Internet. FreeBSD
- es compatible con el c&oacute;digo fuente de los
- m&aacute;s populares y comerciales sistemas Unix, y
- las aplicaciones requieren unos m&iacute;nimos
- cambios (si es que lo requieren) para compilar.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Memoria virtual</emphasis> paginada
- bajo demanda satisface eficientemente a las
- aplicaciones con mucho consumo de memoria, manteniendo
- aun respuestas interactivas al resto de usuarios.
- </para>
- </listitem>
-
- <listitem>
- <para><emphasis>Librer&iacute;s compartidas</emphasis>
- (el equivalente en Unix a las DLLs de Windows) que
- ofrecen un uso eficiente del espacio en disco y memoria
- .</para>
- </listitem>
-
- <listitem>
- <para>Se incluye un completo conjunto de herramientas
- de desarrollo en <emphasis>C</emphasis>, <emphasis>
- C++</emphasis> y <emphasis>Fortran</emphasis>. Muchos
- lenguajes adicionales para investigaci&oacute;n
- avanzada y desarrollo est&aacute;n incluidos en las
- colecciones de ports y packages.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>C&oacute;digo fuente</emphasis>
- completo de todo el sistema, ofreciendote el
- m&aacute;ximo grado de control sobre tu entorno.
- Porqu&eacute; estar bloqueado en una soluci&oacute;n
- propietaria cuando puedes tener un verdadero sistema
- abierto?.</para>
- </listitem>
-
- <listitem>
- <para>Extensa <emphasis>documentaci&oacute;n on-line
- </emphasis>.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Y mucho m&aacute;s!</emphasis>
- </para>
- </listitem>
-
- </itemizedlist>
-
- <para>FreeBSD est&aacute; basado en la release 4.4BSD-Lite del Computer
- Systems Research Group (CSRG) de la Universidad de California en
- Berkeley, siguiendo la tradici&oacute;n que ha distinguido el
- desarrollo de los sistemas BSD. Adem&aacute;s del buen trabajo
- realizado por el CSRG, el proyecto FreeBSD ha invertido miles de horas
- en ajustar el sistema para ofrecer las m&aacute;ximas prestaciones en
- situaciones de carga real.</para>
-
- <para>Las aplicaciones a las que se puede someter FreeBSD est&aacute;n solo
- limitadas por tu imaginaci&oacute;n. Desde desarrollo de software
- hasta automatizaci&oacute;n o rob&oacute;tica, control de inventarios
- o correcciones de azimuts de antenas de sat&eacute;lite remotas; si
- puede hacerse con un producto Unix comercial, es m&aacute;s que seguro
- que puede hacerse con FreeBSD. FreeBSD se beneficia significantemente
- de las miles de aplicaciones de alta calidad desarrolladas por centros
- de investigaci&oacute;n y universidades de todo el mundo, disponibles
- a un coste m&iacute;nimo o sin coste alguno. Las aplicaciones
- comerciales tambi&eacute;n est&aacute;n disponibles apareciendo en
- mayor n&uacute;mero cada d&iacute;a.</para>
-
- <para>Gracias a que disponemos de todo el c&oacute;digo del sistema,
- &eacute;ste puede ser personalizado para aplicaciones o proyectos
- especiales de maneras que generalmente no son posibles con la
- mayor&iacute;a de los sistemas operativos comerciales. Aqu&iacute;
- tienes algunos ejemplos de aplicaciones de FreeBSD:</para>
-
- <itemizedlist>
-
- <listitem>
- <para><emphasis>Servicios Internet:</emphasis> El
- robusto stack TCP/IP integrado en FreeBSD lo hace una
- plataforma ideal para una gran cantidad de servicios
- Internet como:</para>
- <itemizedlist>
-
- <listitem>
- <para>Servidores FTP</para>
- </listitem>
-
- <listitem>
- <para>Servidores WWW</para>
- </listitem>
-
- <listitem>
- <para>Servidores Gopher</para>
- </listitem>
-
- <listitem>
- <para>Servidores de Correo
- electr&oacute;nico</para>
- </listitem>
-
- <listitem>
- <para>News USENET</para>
- </listitem>
-
- <listitem>
- <para>Sistema de BBS</para>
- </listitem>
-
- <listitem>
- <para>Y mucho m&aacute;s... </para>
- </listitem>
- </itemizedlist>
-
- <para>Puedes empezar facilmente con un ordenador PC
- 386 e ir actualizandolo a medida que crezcan tus
- necesidades.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Edicaci&oacute;n: </emphasis>Eres un
- estudiante de inform&aacute;tica o de algun campo
- relacionado con la ingenier&iacute;a?. No hay mejor
- manera de aprender sobre sistemas operativos,
- arquitectura de computadores y redes que poder "poner
- las manos" en el c&oacute;digo completo de un sistema
- operativo como FreeBSD. Cantidad de packages
- libremente disponibles sobre CAD, matem&aacute;ticas y
- dise&ntilde;o gr&aacute;fico hacen de este sistema la
- herramienta ideal para aquellos que usan los
- ordenadores para <emphasis>otras</emphasis> cosas.
- </para>
- </listitem>
-
- <listitem>
- <para><emphasis>Investigaci&oacute;n:</emphasis> Con
- todo el c&oacute;digo fuente disponible, FreeBSD es una
- excelente plataforma de investigaci&oacute;n en
- sistemas operativos. La naturaleza de libre
- distribuci&oacute;n de FreeBSD ha hecho posible que
- grupos remotos hayan podido trabajar y colaborar
- en desarrollos compartidos sin tener que preocuparse
- de licencias especiales o limitaciones de ning&uacute;n
- tipo.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Networking:</emphasis> Necesitas un
- nuevo router?. Un servidor de nombres (DNS)? Un
- firewall para mantener a la gente fuera de tu red
- interna?. FreeBSD puede convertir esos antiguos
- PC's 386 o 486 en routers avanzados con capacidades
- avanzadas de filtrado de paquetes.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Estaci&oacute;n de trabajo X Window:
- </emphasis> FreeBSD es una buena elecci&oacute;n para
- una soluci&oacute;n de terminales X baratos, usando
- el servidor libre XFree86 o uno de los excelentes
- servidores comerciales producidos por X Inside.
- FreeBSD te permite ejecutar localmente las aplicaciones
- adem&aacute;s de ejecutar las del servidor central.
- </para>
- </listitem>
-
- <listitem>
- <para><emphasis>Desarrollo de software:</emphasis> El
- sistema b&aacute;sico de FreeBSD incluye un
- complemento completo de herramientas de desarrollo
- incluyendo el compilador y debugger GNU C/C++.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>FreeBSD est&aacute; disponible en formato binario o
- c&oacute;digo fuente en CDROM y v&iacute;a ftp an&oacute;nimo. Mira
- <link linkend="mirrors"> Obteniendo FreeBSD</link> para m&aacute;s
- detalles.</para>
-
- </sect1>
-
- <sect1 id="history">
- <title>Una breve historia de FreeBSD</title>
-
- <para><emphasis>Contribuido por &a.jkh;</emphasis>.</para>
-
- <para>El proyecto FreeBSD tuvo naci&oacute; en los inicios de 1993 por
- una escisi&oacute;n parcial de los 3 coordinadores del
- &ldquo;Unofficial 386BSD Patchkit&rdquo;: Nate William, Rod Grimes y
- yo mismo.</para>
-
- <para>Nuestro objetivo original era producir una muestra intermedia de
- 386BSD para solucionar una serie de problemas que el mecanismo del
- patchkit no era capaz de solucionar. Alguno de vosotros quiz&aacute;s
- recuerde el nombre inicial del proyecto
- &ldquo;386BSD 0.5&rdquo; o &ldquo;386BSD Interim&rdquo;.</para>
-
- <para>386BSD era el sistema operativo de Bill Jolitz y hab&iacute;a estado
- muy desatendido durante todo un a&ntilde;o. Al sentirse todo el patchkit
- cada vez m&aacute;s desanimado, decidimos que hab&iacute;a que hacer algo
- e intentamos ayudar a Bill haciendo esta muestra sin fallos. Estos planes
- se vieron frenados cuando Bill decidi&oacute; de repente dejar de formar
- parte del proyecto.</para>
-
- <para>No nos cost&oacute; demasiado decidir seguir adelante, a&uacute;n sin
- el soporte de Bill, as&iacute; que adoptamos el nombre de
- &ldquo;FreeBSD&rdquo;, sugerido por David Greenman. Nuestro objetivo
- inicial era consultar con los usuarios actuales del sistema, y, una vez
- aclaradas las cosas, intentar que el proyecto se convirtiese en una
- realidad. Contact&eacute; con Walnut Creek CDROM con la intenci&oacute;n
- de disponer de un canal de distribuci&oacute;n para todos aquellos que
- no tuvisen un f&aacute;il acceso a Internet. Walnut Creek no s&oacute;lo
- apoy&oacute; la idea de distribuir FreeBSD en CDROM si no que
- aport&oacute; una m&aacute;quina sobre la que desarrollar los proyectos
- y una r&aacute;pida conexi&oacute;n a Internet. Sin el apoyo y la
- confianza que Walnut Creek deposit&oacute; en un proyecto desconocido
- y reci&eacute;n nacido, es seguro que FreeBSD no hubiese podido llegar
- t&aacute;n lejos y t&aacute;n r&aacute;pido como lo ha hecho.</para>
-
- <para>Durante esta &eacute;poca, aparecieron una serie de nubarrones
- inesperados en el horizonte ya que Novell y la U.C. Berkeley
- solucionaron su larga pugna legal sobre el estatus del Net/2 de
- Berkeley. Una de las condiciones del acuerdo fue la concesi&oacute;n
- por parte de la U.C. Berkeley de que Novell se hiciese cargo de
- gran parte del c&oacute;digo de Net/2, ya que de hecho la hab&iacute;a
- adquirido anteriormente a AT&amp;T. Lo que Berkeley recibi&oacute; a
- cambio fue el permiso de declarar libre la release de 4.4BSD-Lite, y
- que todos los usuarios existentes de Net/2 ser&iacute;n conminados
- a migrar de sistema. Esto incluy&oacute; a FreeBSD, y el proyecto
- obtuvo de plazo hasta Julio de 1994 para terminar de ofrecer su
- producto basado en Net/2. Bajo los t&eacute;rminos de este acuerdo,
- se le permiti&oacute; al proyecto una &uacute;ltima release,
- FreeBSD 1.1.5.1.</para>
-
- <para>A partir de ese momento, FreeBSD se dedic&oacute; a la &aacute;rdua
- tarea de, literalmente, reinventarse a si mismo, desde un nuevo
- e incompleto 4.4BSD-Lite. El proyect&oacute; termin&oacute; esta
- transici&oacute;n en Diciembre de 1994, y, en Enero de 1995 se
- public&oacute; la release FreeBSD 2.0 en Internet y en CDROM. Teniendo
- en cuenta todos los problemas, la release obtuvo un &eacute;xito
- importante, seguida de la m&aacute;s robusta y f&aacute;cil de
- instalar FreeBSD 2.0.5 en Junio de 1995.</para>
-
- <para>En Agosto de 1996 se public&oacute; la release 2.1.5, consiguiendo
- ser suficientemente conocida entre ISP y comunidades comerciales. La
- release 2.1.7.1 en Febrero de 1997 se convirti&oacute; en el final
- del desarrollo de la rama 2.1-stable. En estos momentos, &eacute;sta
- rama se encuentra en modo de mantenimiento, realizando s&oacute;lo
- trabajos de seguridad o soluci&oacute;n de problemas cr&iacute;ticos
- </para>
-
- <para>FreeBSD 2.2 naci&oacute; de la l&iacute;nea principal de desarrollo
- (&ldquo;-current&rdquo;) en Noviembre de 1996 como la rama
- RELENG_2_2, y la primera release completa se realiz&oacute; en Abril de
- 1997. Las siguientes releases de la rama 2.2 fueron en verano y
- oto&ntilde;o de 1997, apareciendo la &uacute;ltima en Julio de 1998.
- La primera release oficial de la rama 3.0 apareci&oacute; en Octubre de
- 1998, siendo publicada la &uacute;ltima release de la rama 2.2 (2.2.8)
- en Noviembre de 1998.</para>
-
- <para>Desarrollos a largo plazo como el soporte SMP o de la plataforma DEC
- de ALPHA continuar&aacute; en la rama 3.0-current (ya 4.0-current) y
- SNAPshots de la 3.0 en CDROM /y, por supuesto, en la red).</para>
-
- </sect1>
-
- <sect1 id="goals">
- <title>Objetivos del Proyecto FreeBSD</title>
-
- <para><emphasis>Contribuido por &a.jkh;</emphasis>.</para>
-
- <para>Los objetivos del Proyecto FreeBSD son proveer software que pueda
- ser usado para cualquier objetivo sin que &eacute;sto acarree una
- carga. Muchos de nosotros tenemos bastante que ver con el c&oacute;digo
- (y proyecto). Creemos que nuestra primera y m&aacute;s importante
- &ldquo;misi&oacute;n&rdquo; es proveer c&oacute;digo a cualquier persona
- de manera que el c&oacute;digo pueda ser muy distribuido y ofrezca el
- mayor n&uacute;mero posible de beneficios. Este es, creo, uno de los
- objetivos principales del Software Libre, al que apoyamos
- entusiastamente.</para>
-
- <para>El c&oacute;digo incluido en nuestra distribuci&oacute;n que se
- encuentra bajo licencia GPL, GNU o GLPL tiene algunas restricciones
- m&aacute;s. Debido a los problemas que puede acarrear el uso de
- software de licencia GPL de manera comercial, invitamos a reemplazar
- este software por otros bajo licencias mas relajadas como BSD,
- siempre y cuando sea posible.</para>
-
- </sect1>
-
- <sect1 id="development">
- <title>El modelo de desarrollo de FreeBSD</title>
-
- <para><emphasis>Contribuido por &a.asami;</emphasis>.</para>
-
- <para>El desarrollo de FreeBSD es un proceso muy abierto y flexible,
- siendo, literalmente, creado a partir de las contribuciones de cientos
- de personas de todo el mundo, como se puede ver en nuestra <link
- linkend="staff">lista de participantes</link>. Estamos constantemente
- en la b&uacute;squeda de nuevos desarrolladores e ideas, y aquellos
- interesados en estar m&aacute;s envueltos en el proyecto, s&oacute;lo
- necesitan ponerse en contacto con nosotros a trav&eacute;s de la lista
- &a.hackers;. Aquellos que prefieran trabajar m&aacute;s
- independientemente tambi&eacute;n son bienvenidos, pudiendo usar las
- facilidades de nuestro servidor FTP en <ulink
- URL="ftp://ftp.freebsd.org/pub/FreeBSD/incoming">ftp.freebsd.org</ulink>
- para distribuir sus propios parches o c&oacute;digo fuente de trabajos
- en progreso. La lista &a.announce; est&aacute; disponible para
- comunicar a otros usuarios de FreeBSD las &aacute;reas m&aacute;s
- importantes de trabajo.</para>
-
- <para>Cosas &uacute;tiles de conocer sobre el Proyecto FreeBSD y sus
- procesos de desarrollo, ya sea de manera independiente o
- cooperaci&oacute;n en grupos:</para>
-
- <variablelist>
- <varlistentry><term>El dep&oacute;sito
- CVS <anchor id="development-cvs-repository"></term>
- <listitem>
- <para>El &aacute;rbol de c&oacute;digo fuente principal es mantenido
- por <ulink
- URL="http://www.cyclic.com/cyclic-pages/CVS-sheet.html">CVS</ulink> (Concurrent Version System), una herramienta de libre disposici&oacute;n para
- el control de c&oacute;digo fuente que est&aacute; incluida en
- FreeBSD. El <ulink URL="http://www.freebsd.org/cgi/cvsweb.cgi">CVS
- principal</ulink> reside en un servidor de Concord, California,
- desde el que se replica a numerosos servidores mirror repartidos
- por todo el mundo. El &aacute;rbol CVS, as&iacute; como las ramas
- <link linkend="current">-current</link> y
- <link linkend="stable">-stable</link> pueden ser facilmente
- replicadas en tu propia m&aacute;quina. Por favor, mira en la
- secci&oacute;n <link linkend="synching">Sincronizando tu
- &aacute;rbol de c&oacute;digo fuente</link> para m&aacute;s
- informaci&oacute;n sobre este sistema.</para>
- </listitem>
- </varlistentry>
- <varlistentry><term>La lista de
- "committers"<anchor id="development-committers"></term>
-
- <listitem>
- <para>Los <link linkend="staff-committers">committers</link>
- son las personas que tienen acceso de
- <emphasis>escritura</emphasis> al CVS, y est&aacute;n autorizados
- para realizar modificaciones en el c&oacute;digo fuente (el
- t&eacute;rmino &ldquo;committer&rdquo; proviene del comando
- <citerefentry><refentrytitle>cvs</refentrytitle><manvolnum>1</manvolnum></citerefentry> <command>commit</command>, usado para incorporar los nuevos
- cambios en el CVS). La mejor manera de hacer env&iacute;os para que
- sean revisados por los committers es el comando
- <citerefentry><refentrytitle>send-pr</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Tambi&eacute;n puedes enviar un mail a la
- direcci&oacute;n <email>committers@freebsd.org</email>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>El core-team de
- FreeBSD<anchor id="development-core"></term>
-
- <listitem>
- <para>El <link linkend="staff-core">FreeBSD core team</link>
- ser&iacute; el equivalente al conjunto de directores si FreeBSD
- fuese una compa&ntilde;&iacute;a. La tarea principal del core team
- es asegurar que el proyecto, como una unidad, est&aacute; en el
- bu&eacute;n camino y apuntar hacia la direcci&oacute; correcta.
- Invitar a los desarrolladores dedicados y responsables a participar
- en el grupo de committers es otra de las funciones del core team,
- as&iacute; como incorporar nuevos miembros al mismo. Muchos de los
- miembros del core team empezaron como committers, y a los que la
- adicci&oacute;n al proyecto ha conseguido lo mejor de ellos.</para>
-
- <para>Algunos miembros del core team tambi&eacute;n tienen algunas
- <link linkend="staff-who">&aacute;reas de responsabilidad</link>
- espec&iacute;ficas, significando que se encargan de asegurar que
- partes importantes del sistema funcionen como se espera.</para>
-
- <note>
- <para>La mayor&iacute;a de miembros del core team son voluntarios
- y no se benefician del proyecto economicamente. La analog&iacute;a
- de &ldquo;equipo de directores&rdquo; actualmente no es demasiado
- acertada, y es m&aacute;s justo decir que estas personas son las
- personas que dan sus vidas en favor de FreeBSD y en contra de su
- sano juicio <!-- smiley --><emphasis>;)</emphasis></para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Contribuyentes externos</term>
-
- <listitem>
- <para>El m&aacute;s importante grupo de desarrolladores son los
- propios usuarios, ya que nos ofrecen sus idea, aportaciones, parches,
- c&oacute;digo, etc. La principal manera de participar en el desarrollo
- de FreeBSD es subscribirse en la lista &a.hackers; (mira en la
- <link linkend="eresources-mail">informaci&oacute;n de listas</link>)
- donde se discuten este tipo de cosas.</para>
-
- <para><link linkend="contrib-additional">La lista</link> de aquellos
- que han contribuido con alguna parte de c&oacute;digo es muy larga
- y creciendo cada d&iacute;a, as&iacute; que porqu&eacute; no
- participar en ella y contribuir con algo hoy mismo a FreeBSD?
- <!-- smiley --><emphasis>:-)</emphasis></para>
-
- <para>Enviar c&oacute;digo no es la &uacute;nica manera de contribuir
- al proyecto; para una lista m&aacute;s completa de cosas por hacer,
- por favor, mira en la secci&oacute;n <link linkend="contrib">
- c&oacute;omo contribuir</link> de este manual.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>En definitiva, nuestro modelo dedesarrollo est&aacute; organizado
- como una serie de c&iacute;rculos conc&eacute;ntricos. El modelo
- centralizdo est&aacute; dise&ntilde;ado para la conveniencia de los
- <emphasis>usuarios</emphasis> de FreeBSD, que tienen la posibilidad de
- seguir un c&oacute;digo fuente centralizado, sin dejar fuera a los
- potenciales participantes y contribuyentes de c&oacute;digo. Nuestro
- deseo es presentar un sistema operativo estable con una larga y
- coherente serie de <link linkend="ports">aplicaciones</link> que sean
- sencillos de instalar y usar, y este modelo funciona muy bien para
- conseguir estos objetivos.</para>
-
- <para>Todo lo que le pedimos a aquellos que quieran participar como
- desarrolladores de FreeBSD es la misma dedicaci&oacute;n que tienen
- los desarrolladores actuales para poder seguir trabajando de la misma
- manera que se ha hecho hasta ahora.</para>
-
- </sect1>
-
- <sect1 id="relnotes">
-
- <title>Sobre la Release Actual</title>
-
- <para>FreeBSD es un sistema de libre disponibilidad, con el c&oacute;digo
- fuente completo y basado en 4.4BSD-Lite para m&aacute;quinas
- Intel i386/i486/Pentium/PentiumPro/Pentium II (o compatibles).
- Est&aacute; basado en el software del grupo CSRG de la U.C.
- Berkeley, con algunas mejoras de NetBSD, OpenBSD, 286BSD y la Free
- Software Foundation.</para>
-
- <para>Desde nuestra release FreeBSD 2.0 en Enero de 1995, el rendimiento,
- caracter&iacute;sticas y estabilidad de FreeBSD ha aumentado
- considerablemente. El cambio m&aacute;s importante es el sistema de
- memoria virtual con un buffer de cache VM/file que no s&oacute;lo
- incrementa el rendimiento, si no que adem&aacute;s reduce el
- consumo de memoria, haciendo que el sistema s&oacute;lo necesite
- 5Mb de memoria en su configuraci&oacute;n m&iacute;nima. Otras mejoras
- incluyen soporte completo de cliente y servidor NIS, soporte de
- transacciones TCP, dial-on-demand PPP, un nuevo subsistema SCSI,
- soporte de RDSI, soporte de tarjetas FDDI y Fast Ethernet, soporte
- de la tarjeta ADAPTEC 2940, y cientos de soluciones en errores
- anteriores.</para>
-
- <para>Tambi&eacute;n hemos tomado muy en cuenta los comentarios y
- sugerencias de nuestros usuarios para hacer lo que creemos es un
- sistema de instalaci&oacute;n sencillo y eficiente. Tus comentarios
- sobre este proceso son bienvenidos, ya que es un trabajo en constante
- evoluci&oacute;n.</para>
-
- <para>Adem&aacute;s de las distribuciones base, FreeBSD ofrece una nueva
- colecci&oacute;n de software portado con cientos de programas. A
- finales de Agosto de 1998 estabamos en m&aacute;s de 1700 ports!. La
- lista de ports va desde servidores http, hasta juegos, lenguajes de
- programaci&oacute;n, editores y cualquier otra cosa que te puedas
- imaginar. La colecci&oacute;n de ports completa requiere alrededor de
- 26Mb de espacio, siendo todos los ports &ldquo;deltas&rdquo; a sus
- c&oacute;digos fuente originales. Esto hace que para nosotros sea mucho
- m&aacute;s sencillo actualizar los ports, y reduce considerablemente
- el espacio en disco requerido. Para compilar un port, simplemente
- necesitas cambiar al directorio del programa que quieres instalar,
- y teclear <command>make all</command> seguido de
- <command>make install</command> despu&eacute;s de la compilaci&oacute;n
- dejando al sistema que haga el resto. La distribuci&oacute;n original
- completa de cada port se obtiene din&aacute;micamente del CDROM o un
- servidor local FTP, de manera que s&oacute;lo necesitas el espacio de
- disco necesario para los ports que quieras instalar. La mayor&iacute;a
- de ports tambi&eacute;n se pueden obtener en formato precompilado,
- llamado &ldquo;package&rdquo;, que puede ser instalado con un simple
- comando (pkg_add) para aquellos que no quieran compilar sus propios
- ports a partir del c&oacute;digo fuente.</para>
-
- <para>Documentaci&oacute;n adicional sobre el proceso de instalaci&oacute;n
- y uso de FreeBSD la puedes encontrar en el directorio
- <filename>/usr/share/doc</filename> en cualquier m&aacute;quina con
- FreeBSD 2.1 o posterior. Tambi&eacute;n puedes ver los manuales
- instalados de manera local con cualquier navegador HTML usando las
- siguientes URLs:</para>
-
- <variablelist>
- <varlistentry><term>El Handbook de FreeBSD</term>
- <listitem>
- <para><ulink
- URL="file:/usr/share/doc/handbook/handbook.html">file:/usr/share/doc/handbook/handbook.html</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Las FAQ de FreeBSD</term>
- <listitem>
- <para><ulink
- URL="file:/usr/share/doc/FAQ/FAQ.html">file:/usr/share/doc/FAQ/FAQ.html</ulink></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Tambi&eacute;n puedes visital las copias centrales (y normalmente
- m&aacute;s actualizadas) en <ulink
- URL="http://www.freebsd.org">http://www.freebsd.org</ulink>.</para>
-
- <para>La distribuci&oacute;n principal de FreeBSD no contiene el
- c&oacute;digo DES, al estar prohibida su exportaci&oacute;n fuera de
- USA. Hay un package, para usar s&oacute;lo en USA, que contiene los
- programas que normalmente usa DES. Una distribuci&oacute;n DES europea
- y libremente distribuible fuera de USA, tambi&eacute;n est&aacute;
- disponible, c&oacute;omo se describe en las
- <ulink URL="../FAQ/FAQ.html">FAQ</ulink>.</para>
-
- <para>Si todo lo que necesitas es seguridad de passwords en FreeBSD, y no
- tienes necesidad de copiar passwords encriptados desde diferentes
- m&aacute;quinas (Sun, DEC, etc) al fichero de passwords de FreeBSD,
- entonces la seguridad basada en MD5 que te ofrece FreeBSD es lo que
- necesitas. Creemos que nuestro modelo de seguridad no tiene nada que
- perder con respecto a DES, y sin ning&uacute;n problema de
- restricci&oacute;n de exportaci&oacute;n. Si est&aacute;s fuera (o
- incluso dentro) de USA, pru&eacute;balo!.</para>
-
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/es_ES.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
deleted file mode 100755
index 4a79761ff3..0000000000
--- a/es_ES.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="kernelconfig">
- <title>Configurando el Kernel de FreeBSD</title>
-
- <para>Configuracion Kernel</para>
-
- <sect1 id="kernelconfig-config">
- <title>El archivo de configuraci&oacute;n</title>
-
- <para>a<anchor id="kernelconfig-options"></para>
- </sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/kerneldebug/chapter.sgml b/es_ES.ISO8859-1/books/handbook/kerneldebug/chapter.sgml
deleted file mode 100644
index 8c1f5e4181..0000000000
--- a/es_ES.ISO8859-1/books/handbook/kerneldebug/chapter.sgml
+++ /dev/null
@@ -1,618 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="kerneldebug">
- <title>Depurando el Kernel</title>
-
- <para><emphasis>Contribuci&oacute;n de &a.paul; y &a.joerg;</emphasis></para>
-
- <sect1>
- <title>Depuraci&oacute;n de un Kernel Crash Dump con <command>kgdb</command></title>
-
- <para>Aqu&iacute; se dan instrucciones para hacer funcionar la depuraci&oacute;n del
- kernel sobre un crash dump. En ellos se asume que usted tiene suficiente
- espacio de swap para un crash dump. Si usted tiene varias particiones
- de swap y la primera es demasiado peque&ntilde;a para albergar un dump, puede
- configurar su kernel para que use un dispositivo alternativo (en la l&iacute;nea
- <literal>config kernel</literal>=, o puede especificar una alternativa
- usando el comando &man.dumpon.8;. La mejor manera de usar &man.dumpon.8;
- es asignar la variable <literal>dumpdev</literal> en
- <filename>/etc/rc.conf</filename>. Generalmente usted va a querer
- especificar uno de los dispositivos de swap especificados en
- <filename>/etc/fstab</filename>. Actualmente no se soportan dumps a
- dispositivos que no sean de swap, como por ejemplo una unidad de cinta.
- Configure su kernel usando <command>config -g</command>. Vea <link
- linkend="kernelconfig">Configuraci&oacute;n del Kernel</link> para m&aacute;s detalles
- sobre la configuraci&oacute;n del kernel FreeBSD.</para>
-
- <para>Use el comando &man.dumpon.8; para decirle al kernel donde hacer
- el dump (Tenga en cuenta que esto debera hacerse luego de configurar
- la partici&oacute;n como dispositivo de swap usando &man.swapon.8;). Esto se
- hace normalmente usando los archivos <filename>/etc/rc.conf</filename>
- y <filename>/etc/rc</filename>. Como alternativa se puede fijar el
- dispositivo usando la cl&aacute;usula <literal>dump</literal> en la l&iacute;nea
- <literal>config</literal> de su archivo de configuraci&oacute;n del kernel.
- Esta pr&aacute;ctica esta en desuso y s&oacute;lo deber&iacute;a ser usada para obtener
- un dump de un kernel que falla durante el inicio.</para>
-
- <note>
- <para>En adelante, el t&eacute;rmino <command>kgdb</command> se referir&aacute; al
- <command>gdb</command> corriendo en &ldquo;kernel debug mode&rdquo;.
- Esto puede lograrse ya sea iniciando al <command>gdb</command> con
- la opci&oacute;n <option>-k</option>, o enlazandolo y arrancandolo con el
- nombre <command>kgdb</command>. Esto no se hace por default, y
- la idea est&aacute; basicamente en desuso ya que a la gente de GNU no le
- gusta que sus herramientas se comporten distinto cuando se las llama
- por otro nombre. Esta posibilidad podr&aacute; perfectamente ser descontinuada
- en futuras versiones.</para>
- </note>
-
- <para>Una vez que el kernel ha sido compilado haga una copia, digamos
- <filename>kernel.debug</filename>, y luego corra <command>strip
- -g</command> sobre el original. Instale el original normalmente. Usted
- tambien podr&iacute;a instalar el kernel sin hacer el <command>strip</command>,
- pero los tiempos de busqueda de algunos programas en la tabla de
- s&iacute;mbolos aumentar&aacute;n sensiblemente, y dado que el kernel se carga completo
- en memoria durante el inicio y no puede intercambiarse a disco luego,
- se desperdiciar&aacute;n varios megabytes de memoria.</para>
-
- <para>Si usted esta probando un nuevo kernel, por ejemplo tipeando el
- nombre del nuevo kernel en el prompt de inicio, pero necesita arrancar
- otro para tener su sistema funcionando de nuevo, arranquelo solo en modo
- monousuario usando la opci&oacute;n <option>-s</option> en el prompt de inicio
- , y luego siga los siguientes pasos:</para>
-
- <screen>&prompt.root; <userinput>fsck -p</userinput>
-&prompt.root; <userinput>mount -a -t ufs</userinput> # asi su file system para /var/crash se puede escribir
-&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput>
-&prompt.root; <userinput>exit</userinput> # ...a modo multiusuario</screen>
-
- <para>Esto instruye a &man.savecore.8; que use otro kernel para la
- extracci&oacute;n de nombres de s&iacute;mbolo. De otro modo usaria el kernel en uso
- y probablemente no haga nada ya que los s&iacute;mbolos del kernel y los del
- dump son diferentes.</para>
-
- <para>Ahora, luego de un crash dump, vaya a
- <filename>/sys/compile/WHATEVER</filename> y corra
- <command>kgdb</command>. desde <command>kgdb</command> haga:
-
- <screen><userinput>symbol-file kernel.debug</userinput>
-<userinput>exec-file /var/crash/kernel.0</userinput>
-<userinput>core-file /var/crash/vmcore.0</userinput></screen>
-
- y voila, ya puede depurar el crash dump usando las fuentes
- del kernel como lo hace con cualquier otro programa.</para>
-
- <para>A continuaci&oacute;n se muestra el log de una sesi&oacute;n de
- <command>kgdb</command> que ilustra el procedimiento. Las l&iacute;neas
- fueron numeradas para referencia, y las largas fueron cortadas para
- mejorar la legibilidad. Mas alla de esto es el registro de un error real
- tomado durante el desarrollo del driver pcvt de consola.</para>
-
-<screen> 1:Script started on Fri Dec 30 23:15:22 1994
- 2:&prompt.root; <userinput>cd /sys/compile/URIAH</userinput>
- 3:&prompt.root; <userinput>kgdb kernel /var/crash/vmcore.1</userinput>
- 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel
-...done.
- 5:IdlePTD 1f3000
- 6:panic: because you said to!
- 7:current pcb at 1e3f70
- 8:Reading in symbols for ../../i386/i386/machdep.c...done.
- 9:<prompt>(kgdb)</prompt> <userinput>where</userinput>
-10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767)
-11:#1 0xf0115159 in panic ()
-12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698)
-13:#3 0xf010185e in db_fncall ()
-14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073)
-15:#5 0xf0101711 in db_command_loop ()
-16:#6 0xf01040a0 in db_trap ()
-17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723)
-18:#8 0xf019d2eb in trap_fatal (...)
-19:#9 0xf019ce60 in trap_pfault (...)
-20:#10 0xf019cb2f in trap (...)
-21:#11 0xf01932a1 in exception:calltrap ()
-22:#12 0xf0191503 in cnopen (...)
-23:#13 0xf0132c34 in spec_open ()
-24:#14 0xf012d014 in vn_open ()
-25:#15 0xf012a183 in open ()
-26:#16 0xf019d4eb in syscall (...)
-27:<prompt>(kgdb)</prompt> <userinput>up 10</userinput>
-28:Reading in symbols for ../../i386/i386/trap.c...done.
-29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\
-30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\
-31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\
-32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\
-33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\
-34:ss = -266427884}) (../../i386/i386/trap.c line 283)
-35:283 (void) trap_pfault(&amp;frame, FALSE);
-36:<prompt>(kgdb)</prompt> <userinput>frame frame-&gt;tf_ebp frame-&gt;tf_eip</userinput>
-37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done.
-38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\
-39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403)
-40:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-41:<prompt>(kgdb)</prompt> <userinput>list</userinput>
-42:398
-43:399 tp-&gt;t_state |= TS_CARR_ON;
-44:400 tp-&gt;t_cflag |= CLOCAL; /* cannot be a modem (:-) */
-45:401
-46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200)
-47:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-48:404 #else
-49:405 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp, flag));
-50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */
-51:407 }
-52:<prompt>(kgdb)</prompt> <userinput>print tp</userinput>
-53:Reading in symbols for ../../i386/i386/cons.c...done.
-54:$1 = (struct tty *) 0x1bae
-55:<prompt>(kgdb)</prompt> <userinput>print tp-&gt;t_line</userinput>
-56:$2 = 1767990816
-57:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\
-59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126)
-60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p));
-61:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-62:#2 0xf0132c34 in spec_open ()
-63:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-64:#3 0xf012d014 in vn_open ()
-65:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-66:#4 0xf012a183 in open ()
-67:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\
-69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\
-70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \
-71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \
-72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673)
-73:673 error = (*callp-&gt;sy_call)(p, args, rval);
-74:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-75:Initial frame selected; you cannot go up.
-76:<prompt>(kgdb)</prompt> <userinput>quit</userinput>
-77:&prompt.root; <userinput>exit</userinput>
-78:exit
-79:
-80:Script done on Fri Dec 30 23:18:04 1994</screen>
- <para>Comentarios al listado anterior:</para>
-
- <variablelist>
- <varlistentry>
- <term>l&iacute;nea 6:</term>
-
- <listitem>
- <para>Este es un dump tomado desde el DDB (vea abajo), a partir del
- comentario del panic &ldquo;because you said to!&rdquo;, y un
- listado de la pila bastante largo; la raz&oacute;n incial para entrar al
- DDB fue un trap de falta de pagina.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>l&iacute;nea 20:</term>
-
- <listitem>
- <para>Esta es la ubicaci&oacute;n de la funci&oacute;n <function>trap()</function>
- en el listado de la pila.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>l&iacute;nea 36:</term>
-
- <listitem>
- <para>Se fuerza el uso de un nuevo marco de pila; esto ya no es
- necesario ahora. Actualmente se supone que los marcos de pila apuntan a
- las ubicaciones correctas, aun en caso de un trap. (No tengo un
- dump m&aacute;s nuevo a mano &lt;g&gt;, mi kernel no ha hecho un panic
- desde hace bastante tiempo.) Mirando al c&oacute;digo en la l&iacute;nea 403
- del c&oacute;digo fuente, hay una alta probabilidad de que la referencia
- al puntero &ldquo;tp&rdquo; sea erronea, o el acceso al arreglo
- estuviera fuera de sus l&iacute;mites.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>l&iacute;nea 52:</term>
-
- <listitem>
- <para>El puntero se ve sospechoso, pero contiene una direcci&oacute;n
- v&aacute;lida.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>l&iacute;nea 56:</term>
-
- <listitem>
- <para>De todos modos, obviamente apunta a basura, asi que encontramos
- nuestro error! (Para los que no esten familiarizados con esa pieza
- de c&oacute;digo en particular: <literal>tp-&gt;t_line</literal> hace
- referencia a la disciplina de l&iacute;nea de este dispositivo de consola,
- el cual debe ser un entero por dem&aacute;s peque&ntilde;o)</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1>
- <title>Depurando un crash dump con DDD</title>
-
- <para>Tambien es posible examinar un crash dump del kernel con un debugger
- gr&aacute;fico como <command>ddd</command>. Agregue la opci&oacute;n <option>-k
- </option> a la l&iacute;nea de comando del <command>ddd</command> que usar&iacute;a
- normalmente. Por ejemplo;</para>
-
- <screen>&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput></screen>
-
- <para>De esta manera usted deber&iacute;a poder analizar el crash dump usando
- la interfaz gr&aacute;fica del <command>ddd</command>.</para>
- </sect1>
-
- <sect1>
- <title>Analisis Post-mortem de un Dump</title>
-
- <para>Que sucede si un kernel hace un dump de su memoria que usted
- no esperaba, y por lo tanto no estaba compilado usando <command>
- config -g</command>? No todo esta perdido aqu&iacute;. Do not panic!</para>
-
- <note>
- <para>N.del T.: El autor hace un juego con la palabra panic! que
- prefiero dejar sin traducir.</para>
- </note>
-
- <para>Por supuesto, aun necesita habilitar los crash dumps. Vea m&aacute;s arriba
- las opciones que debe especificar para esto.</para>
-
- <para>Vaya a su directorio de configuraci&oacute;n del kernel
- (<filename>/usr/src/sys/<replaceable>arq</replaceable>/conf</filename>)
- y edite su archivo de configuraci&oacute;n. Quite las marcas de comentario
- (o agregue, si no existe) la siguiente l&iacute;nea</para>
-
- <programlisting>
-makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols</programlisting>
-
- <para>Recompile el kernel. Algunos otros archivos seran recompilados,
- por ejemplo <filename>trap.o</filename>, a causa del cambio de la fecha
- del archivo Makefile. Con un poco de suerte, la opci&oacute;n <option>-g
- </option> no cambiar&aacute; nada del c&oacute;digo generado, al final usted tendra
- un kernel con el mismo c&oacute;digo que tiene problemas ahora pero con ciertos
- s&iacute;mbolos para depuraci&oacute;n. Por lo menos usted deber&iacute;a verificar el tama&ntilde;o
- anterior y el nuevo con el comando &man.size.1;. Si hay diferencia
- probablemente sea el momento de darse por vencido.</para>
-
- <para>Ahora puede examinar el dump como se describi&oacute; anteriormente. Los
- s&iacute;mbolos pueden estar incompletos para algunas partes, como se puede ver
- en el listado de pila del ejemplo anterior donde algunas funciones
- se muestran sin numeros de l&iacute;nea ni listas de argumentos. Si necesita
- m&aacute;s s&iacute;mbolos borre los archivos objeto apropiados y repita la sesi&oacute;n de
- <command>kgdb</command> hasta que haya averiguado lo suficiente.</para>
-
- <para>No se garantiza que todo esto funcione, pero ir&aacute; bastante bien la
- en mayor&iacute;a de los casos.</para>
- </sect1>
-
- <sect1>
- <title>Depuraci&oacute;n En-l&iacute;nea del Kernel Usando DDB</title>
-
- <para>Si bien el <command>kgdb</command> provee un muy alto nivel de
- interfaz de usuario como depurador post-mortem, hay cosas que no puede
- hacer. Siendo las m&aacute;s importantes poder marcar puntos de interrupci&oacute;n
- y ejecutar c&oacute;digo del kernel paso a paso.</para>
-
- <para>Si usted necesita hacer una depuraci&oacute;n a bajo nivel de su kernel hay
- disponible un debugger en-l&iacute;nea llamado DDB. Permite poner puntos de
- interrupci&oacute;n, ejecutar paso a paso las funciones del kernel, examinar y
- cambiar variables, etc. Sin embargo, no puede acceder al c&oacute;digo fuente
- del kernel y s&oacute;lo tiene acceso a los s&iacute;mbolos globales y est&aacute;ticos, no
- a toda la informaci&oacute;n de depuraci&oacute;n como el <command>kgdb</command>.</para>
-
- <para>Para configurar su kernel para que incluya el DDB, agregue la opci&oacute;n
-
- <programlisting>
-options DDB</programlisting>
-
- a su archivo de configuraci&oacute;n, y recompile (vea <link
- linkend="kernelconfig">Configuraci&oacute;n del Kernel</link> para m&aacute;s
- detalles sobre como configurar el kernel de FreeBSD.)</para>
-
- <note>
- <para>Notese que si usted tiene una versi&oacute;n vieja del boot block,
- sus s&iacute;mbolos de debugger podr&iacute;an no ser cargados. Actualize su
- boot block; los mas recientes cargan los s&iacute;mbolos del DDB
- autom&aacute;gicamente.</para>
- </note>
-
- <para>Una vez que su kernel con DDB esta corriendo, hay varias maneras
- de entrar al DDB. La primera y m&aacute;s temprana es tipear la opci&oacute;n
- <option>-d</option> directamente en el prompt de inicio. El kernel
- se iniciar&aacute; en modo de depuraci&oacute;n e ingresar&aacute; al DDB antes de cualquier
- detecci&oacute;n de dispositivos. De aqu&iacute; en adelante usted podr&aacute;
- depurar hasta las funciones probe/attach de los dispositivos.</para>
-
- <para>El segundo escenario es una combinaci&oacute;n de teclas, generalmente
- Ctrl-Alt-Esc. En el caso de las syscons, esto puede modificarse,
- algunos mapas de teclado distribuidos lo hacen, por lo que hay que
- prestar atenci&oacute;n. Hay disponible una opci&oacute;n para consolas en puertos
- serie que permite el uso de la se&ntilde;al BREAK en la l&iacute;nea para entrar al
- DDB (<literal>options BREAK_TO_DEBUGGER</literal> en el archivo de
- configuraci&oacute;n del kernel). Esto no es el default ya que hay un mont&oacute;n
- de adaptadores serie dando vueltas que generan condiciones BREAK
- sin necesidad, por ejemplo cuando se desenchufa el cable.</para>
-
- <para>La tercera forma es que un panic salte al DDB si el kernel est&aacute;
- configurado para usarlo. Por este motivo, no es recomendable configurar
- un kernel con DDB para una m&aacute;quina funcionando sin atenci&oacute;n.</para>
-
- <para>Los comandos del DDB se asemejan remotamente a algunos de los
- del <command>gdb</command>. Lo primero que usted probablemente
- necesite hacer es poner un punto de interrupci&oacute;n:</para>
-
- <screen><userinput>b nombre-de-funci&oacute;n</userinput>
-<userinput>b direcci&oacute;n</userinput></screen>
-
- <para>Por default los n&uacute;meros se toman en hexadecimal, pero para
- distinguirlos de los nombres de s&iacute;mbolo los n&uacute;meros hexadecimales
- que empiezan con las letras <literal>a-f</literal> se deben preceder
- con <literal>0x</literal> (para los dem&aacute;s n&uacute;meros esto es opcional).
- Tambien se admiten expresiones sencillas, por ejemplo:
- <literal>nombre-de-funci&oacute;n + 0x103</literal>.</para>
-
- <para>Para que el kernel interrumpido continue ejecutandose, solo
- tipee:</para>
-
- <screen><userinput>c</userinput></screen>
-
- <para>Para ver un listado de la pila, use:</para>
-
- <screen><userinput>trace</userinput></screen>
-
- <note>
- <para>Notese que cuando se entra al DDB con una combinaci&oacute;n de teclas
- el kernel est&aacute; atendiendo una interrupci&oacute;n, por lo que el listado
- de la pila podr&iacute;a no serle de mucha utilidad.</para>
- </note>
-
- <para>Si quiere quitar un punto de interrupci&oacute;n, use</para>
-
-
- <screen><userinput>del</userinput>
-<userinput>del expresi&oacute;n-direcci&oacute;n-de-memoria</userinput></screen>
-
- <para>La primera forma se aceptar&aacute; inmediatamente despues de llegar
- a un punto de interrupci&oacute;n, y borra el punto actual. La segunda
- puede quitar cualquier punto de interrupci&oacute;n, pero se debe
- especificar la direcci&oacute;n exacta; esta se puede obtener de:</para>
-
- <screen><userinput>show b</userinput></screen>
-
- <para>Para ejecutar el kernel paso a paso, intente:</para>
-
- <screen><userinput>s</userinput></screen>
-
- <para>Esto entrar&aacute; dentro de las funciones, pero puede hacer
- que DDB las siga hasta llegar a la instrucci&oacute;n de retorno
- correspondiente usando:</para>
-
- <screen><userinput>n</userinput></screen>
-
- <note>
- <para>Esto es distinto de la instrucci&oacute;n <command>next</command>
- del <command>gdb</command>; es m&aacute;s parecido a la instrucci&oacute;n
- <command>finish</command>.</para>
- </note>
-
- <para>Para examinar los datos en la memoria use (por ejemplo):
-
- <screen><userinput>x/wx 0xf0133fe0,40</userinput>
-<userinput>x/hd db_symtab_space</userinput>
-<userinput>x/bc termbuf,10</userinput>
-<userinput>x/s stringbuf</userinput></screen>
-
- para acceder a palabras/medias palabras/bytes, y para mostrar
- en hexadecimal/decimal/caracteres/strings. El n&uacute;mero luego de la coma
- es la cantidad de objetos. Para mostrar los siguientes 0x10
- items, simplemente use:</para>
-
- <screen><userinput>x ,10</userinput></screen>
-
- <para>Del mismo modo, use
-
- <screen><userinput>x/ia foofunc,10</userinput></screen>
-
- para desensamblar las primeras 0x10 instrucciones de
- <function>foofunc</function>, y mostrarlas junto con su
- desplazamiento desde el comienzo de <function>foofunc</function>.</para>
-
- <para>Para modificar memoria, use el comando write:</para>
-
- <screen><userinput>w/b termbuf 0xa 0xb 0</userinput>
-<userinput>w/w 0xf0010030 0 0</userinput></screen>
-
- <para>El modificador
- (<literal>b</literal>/<literal>h</literal>/<literal>w</literal>)
- especifica el tama&ntilde;o de los datos a ser escritos, la primera expresi&oacute;n
- a continuaci&oacute;n es la direcci&oacute;n donde escribir y el resto es interpretado
- como datos para escribir en las direcciones de memoria sucesivas.</para>
-
- <para>Si quiere conocer el valor actual de los registros del
- procesador, use:</para>
-
- <screen><userinput>show reg</userinput></screen>
-
- <para>O, puede mostrar un solo registro usando:
-
- <screen><userinput>p $eax</userinput></screen>
-
- y modificarlo haciendo:</para>
-
- <screen><userinput>set $eax new-value</userinput></screen>
-
- <para>Si usted quisiera llamar alguna funci&oacute;n del kernel desde
- el DDB, solo debe decir:</para>
-
- <screen><userinput>call func(arg1, arg2, ...)</userinput></screen>
-
- <para>El valor devuelto ser&aacute; impreso en la pantalla.</para>
-
- <para>Para un resumen de los procesos corriendo al estilo &man.ps.1;
- use:</para>
-
- <screen><userinput>ps</userinput></screen>
-
- <para>Usted ya ha examinado la causa de que su kernel falle, y quiere
- reiniciar su equipo. Recuerde que, dependiendo de lo severo de las
- fallas que ocurrieron, algunas partes del kernel podr&iacute;an no funcionar
- como se espera. Siga una de las siguientes acciones para apagar y
- reiniciar su equipo:</para>
-
- <screen><userinput>call diediedie()</userinput></screen>
-
- <para>Esto causar&aacute; que su kernel haga un crash dump y reinicie, asi
- luego podr&aacute; analizar el dump a un nivel m&aacute;s alto con el kgdb. Este
- comando suele tener que acompa&ntilde;arse por otra instrucci&oacute;n <command>
- continue</command>. Para hacer esto hay un alias:
- <command>panic</command>.</para>
-
- <screen><userinput>call boot(0)</userinput></screen>
-
- <para>La cual podr&iacute;a ser una buena manera de apagar ordenadamente el
- sistema, hacer un <function>sync()</function> de todos los discos,
- y finalmente reiniciar. En tanto las interfaces de disco y de
- filesystem del kernel no esten da&ntilde;adas, esta podr&iacute;a ser una buena
- manera de hacer un apagado bastante prolijo.</para>
-
- <screen><userinput>call cpu_reset()</userinput></screen>
-
- <para>Es la ultima salida de los desastres y es practicamente lo
- mismo que presionar el Gran Boton Rojo.</para>
-
- <para>Si usted necesita un breve sumario de los comandos, tipee:</para>
-
- <screen><userinput>help</userinput></screen>
-
- <para>De todos modos, es altamente recomendable tener una copia impresa
- de la p&aacute;gina &man.ddb.4; del manual a mano antes de la sesi&oacute;n de
- depuraci&oacute;n. Recuerde que es bastante dif&iacute;cil leer el manual en l&iacute;nea
- mientras se est&aacute; ejecutando el kernel paso a paso.</para>
- </sect1>
-
- <sect1>
- <title>Depuraci&oacute;n En-L&iacute;nea Usando El GDB remoto</title>
-
- <para>Esta caracter&iacute;stica ha sido soportada desde FreeBSD 2.2, y ya est&aacute;
- en verdad muy bien pulida.</para>
-
- <para>El GDB ha soportado <emphasis>depuraci&oacute;n remota</emphasis> desde
- hace mucho tiempo. Esto se hace usando un protocolo muy simple a
- traves de una l&iacute;nea serie. A diferencia de los otros metodos descriptos
- anteriormente, hacen falta dos m&aacute;quinas para hacer esto. Una va a
- proveer el entorno de depuraci&oacute;n, incluyendo todos los archivos fuente,
- y una copia del ejecutable del kernel con todos los s&iacute;mbolos y la otra
- ser&aacute; la m&aacute;quina a depurar que simplemente corre una copia de exactamente
- el mismo kernel (pero sin los s&iacute;mbolos de depuraci&oacute;n).</para>
-
- <para>Usted deber&iacute;a configurar el kernel en cuesti&oacute;n con <command>config
- -g</command>, incluir <option>DDB</option> en la configuraci&oacute;n, y
- compilarla como siempre. Esto arrojar&aacute; un ejecutable enorme, debido a la
- informaci&oacute;n de depuraci&oacute;n. Copie este kernel a la m&aacute;quina a depurar,
- quitele los simbolos con <command>strip -x</command>, e inicielo usando
- la opci&oacute;n <option>-d</option> en el prompt de inicio. Conecte el primer
- puerto serie de la m&aacute;quina a cualquier puerto serie de la m&aacute;quina que
- correr&aacute; el debugger. Ahora en la m&aacute;quina que corre el debugger, vaya al
- directorio de compilaci&oacute;n del kernel a depurar, y arranque el gdb:</para>
-
- <screen>&prompt.user; <userinput>gdb -k kernel</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.16 (i386-unknown-freebsd),
-Copyright 1996 Free Software Foundation, Inc...
-<prompt>(kgdb)</prompt> </screen>
-
- <para>Inicie la sesi&oacute;n de depuraci&oacute;n remota haciendo
- (asumiendo que se usa el primer puerto serie):</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen>
-
- <para>Ahora en la m&aacute;quina a depurar (que entr&oacute; al DDB justo antes de
- empezar a detectar los dispositivos), tipee:</para>
-
- <screen>Debugger("Boot flags requested debugger")
-Stopped at Debugger+0x35: movb $0, edata+0x51bc
-<prompt>db&gt;</prompt> <userinput>gdb</userinput></screen>
-
- <para>El DDB responder&aacute; diciendo:</para>
-
- <screen>Next trap will enter GDB remote protocol mode</screen>
-
- <para>Cada vez que tipee <command>gdb</command>, el modo se alternar&aacute;
- entre el GDB remoto y el DDB local. Para forzar un siguiente trap
- inmediatamente, simplemente tipee <command>s</command> (avanza un paso).
- la m&aacute;quina del debugger ahora ganará control sobre el kernel a depurar:
- </para>
-
- <screen>Remote debugging using /dev/cuaa0
-Debugger (msg=0xf01b0383 "Boot flags requested debugger")
- at ../../i386/i386/db_interface.c:257
-<prompt>(kgdb)</prompt></screen>
-
- <para>Esta sesi&oacute;n puede usarse casi como cualquier otra sesi&oacute;n de GDB,
- incluyendo acceso completo al c&oacute;digo fuente, ejecutarlo en modo-gud
- dentro de una ventana de Emacs (lo cual brinda la posibilidad de
- mostrar autom&aacute;ticamente el c&oacute;digo fuente en otra ventana de Emacs)
- etc.</para>
-
- <para>El GDB remoto tambien puede usarse para depurar LKMs. Primero
- compile el LKM con los simbolos de depuraci&oacute;n:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput>
-&prompt.root; <userinput>make clean; make COPTS=-g</userinput></screen>
-
- <para>Luego instale esta versi&oacute;n del m&oacute;dulo en la m&aacute;quina a depurar,
- carguelo y use <command>modstat</command> para averiguar donde fue
- cargado:</para>
-
- <screen>&prompt.root; <userinput>linux</userinput>
-&prompt.root; <userinput>modstat</userinput>
-Type Id Off Loadaddr Size Info Rev Module Name
-EXEC 0 4 f5109000 001c f510f010 1 linux_mod</screen>
-
- <para>Tome la direcci&oacute;n de carga (loadaddr) del m&oacute;dulo y sumele
- 0x20 (probablemente para contar el encabezado a.out). Esta es la
- direcci&oacute;n donde el c&oacute;digo del m&oacute;dulo fue reubicado. Use el comando
- <command>add-symbol-file</command> en el GDB para informarle al
- debugger acerca del m&oacute;dulo:</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>add-symbol-file /usr/src/lkm/linux/linux_mod.o 0xf5109020</userinput>
-add symbol table from file "/usr/src/lkm/linux/linux_mod.o" at
-text_addr = 0xf5109020? (y or n) <userinput>y</userinput>
-<prompt>(kgdb)</prompt></screen>
-
- <para>Ahora tiene acceso a todos los s&iacute;mbolos en el LKM.</para>
- </sect1>
-
- <sect1>
- <title>Depurando Un Driver de Consola</title>
-
- <para>Dado que el DDB necesita un driver de consola sobre el que correr,
- las cosas son mas complicadas si lo que falla es el propio driver de
- consola. Usted podr&iacute;a entonces recordar el uso de una consola en puerto serie
- (ya sea con un sector de inicio modificado, o especificando <option>-h
- </option> en el prompt <prompt>Boot:</prompt>) y colgar una terminal
- est&aacute;ndar en su primer puerto serie. El DDB funciona en cualquier
- driver de consola configurado, por supuesto tambien en una consola de
- puerto serie.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/es_ES.ISO8859-1/books/handbook/kernelopts/chapter.sgml b/es_ES.ISO8859-1/books/handbook/kernelopts/chapter.sgml
deleted file mode 100644
index 6af9af0617..0000000000
--- a/es_ES.ISO8859-1/books/handbook/kernelopts/chapter.sgml
+++ /dev/null
@@ -1,165 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="kernelopts">
- <title>A&ntilde;adir nuevas opciones de configuraci&oacute;n al kernel</title>
-
- <para><emphasis>Contribuci&acute;n de &a.joerg;</emphasis></para>
-
- <note>
- <para>Antes de leer esta secci&oacute;n se debe estar familiarizado con
- la secci&oacute;n sobre <link linkend="kernelconfig">configuraci&oacute;n
- del kernel</link>.</para>
- </note>
-
- <sect1>
- <title>Ante todo &iquest;Qu&eacute; es una <emphasis>opci&oacute;n del
- kernel</emphasis>?</title>
-
- <para>El uso de opciones del kernel se describe b&aacute;sicamente en la secci&oacute;n
- <link linkend="kernelconfig-options">configuraci&oacute;n del kernel</link>.
- Tambi&eacute;n hay una discusi&oacute;n sobre opciones &ldquo;estilo historico&rdquo; y
- &ldquo;estilo moderno&rdquo;. El objetivo final es que en alg&uacute;n momento
- todas las opciones soportadas por el kernel se hayan convertido al estilo
- moderno, as&iacute; para la gente que hizo un <command>make depend</command> exitoso
- en su directorio de compilaci&oacute;n del kernel luego de correr &man.config.8;,
- el proceso de build automaticamente seleccionar&aacute; las opciones modificadas y
- solo recompilara los archivos donde se usan. El paso de eliminar el viejo
- directorio de compilaci&oacute;n cada vez que se corre &man.config.8; como a&uacute;n se
- hace podr&aacute; entonces ser eliminado nuevamente.</para>
-
- <para>B&aacute;sicamente una opci&oacute;n del kernel no es m&aacute;s que la definici&oacute;n de una
- macro del preprocesador C para el proceso de compilaci&oacute;n del kernel. Para
- hacer la compilaci&oacute;n verdaderamente opcional, la parte correspondiente del
- c&oacute;digo fuente del kernel (o archivo <filename>.h</filename> del kernel) debe estar
- escrita con el concepto de opci&oacute;n en mente, por ejemplo el default para la opci&oacute;n
- debe haber sido hecho modificable. Esto se hace generalmente con algo como:</para>
-
- <programlisting>
-#ifndef THIS_OPTION
-#define THIS_OPTION (valor_por_default)
-#endif /* THIS_OPTION */</programlisting>
-
- <para>De esta manera, un administrador seleccionando otro valor para la opci&oacute;n
- en su archivo de configuraci&oacute;n dejar&aacute; sin efecto el default, y lo reemplazar&aacute;
- con su nuevo valor. Como es claro, el nuevo valor ser&aacute; sustituido en el c&oacute;digo
- fuente durante la ejecuci&oacute;n del preprocesador, por lo que debe ser una
- expresi&oacute;n C v&aacute;lida en el contexto en el que habr&iacute;a sido usado el default.
- </para>
-
- <para>Tambi&eacute;n es posible crear opciones sin valor que simplemente activen o
- desactiven una parte del c&oacute;digo rodeandola con</para>
-
- <programlisting>
-#ifdef THAT_OPTION
-
-[c&oacute;digo fuente espec&iacute;fico]
-
-#endif</programlisting>
-
- <para>Con solo mencionar <literal>THAT_OPTION</literal> en el archivo de
- configuraci&oacute;n (con o sin valor) activar&aacute; la parte del c&oacute;digo correspondiente.</para>
-
- <para>Quien est&eacute; familiarizado con el lenguaje C se dar&aacute; cuenta de que todo
- podr&iacute;a ser tratado como una &ldquo;opci&oacute;n de configuraci&oacute;n&rdquo; si hay
- por lo menos un <literal>#ifdef</literal> referenciandolo...
- De todos modos, es poco probable que mucha gente ponga</para>
-
- <programlisting>
-options notyet,notdef</programlisting>
-
- <para>en su archivo de configuraci&oacute;n, y luego se pregunten por que la kernel
- compilation les da errores. <!-- smiley -->:-)</para>
-
- <para>Como es claro, usar nombres arbitrarios para las opciones hace que sea
- muy dif&iacute;cil rastrear su uso por todo el &aacute;rbol de c&oacute;digo fuente. Esa es la
- raz&oacute;n que impulsa el esquema de opciones <emphasis>estilo-moderno</emphasis>,
- donde cada opci&oacute;n va en un archivo <filename>.h</filename> separado en el
- directorio de compilaci&oacute;n del kernel, el cual por convenci&oacute;n se llamar&aacute;
- <filename>opt_<replaceable>foo</replaceable>.h</filename>. De esta forma
- las dependencias usuales del Makefile pueden aplicarse, y el <command>make
- </command> puede determinar que se necesita recompilar cuando una opci&oacute;n fue
- cambiada.</para>
-
- <para>El mecanismo de opciones estilo antiguo tiene a&uacute;n una ventaja para
- opciones locales o tal vez experimentales que tendr&aacute;n por anticipado poco
- tiempo de vida: ya que es facil agregar un nuevo <literal>#ifdef</literal>
- al c&oacute;digo fuente del kernel, esto ya lo ha convertido en una opci&oacute;n de
- configuraci&oacute;n. En este caso el administrador que use tal opci&oacute;n es responsable
- de conocer sus implicaciones ( y tal vez forzar la recompilaci&oacute;n de partes
- del kernel a mano). Una vez que la tansici&oacute;n de todas las opciones soportadas
- haya sido hecha, &man.config.8; advertir&aacute; cuando aparezca una opci&oacute;n no
- soportada en el archivo de configuraci&oacute;n, pero sin embargo la incluir&aacute; en
- el Makefile del kernel.</para>
- </sect1>
-
- <sect1>
- <title>Y ahora ¿Qu&eacute; debo hacer para eso?</title>
-
- <para>Primero, edite <filename>sys/conf/options</filename> (o
- <filename>sys/i386/conf/options.<replaceable>&lt;arq&gt;</replaceable></filename>,
- Ej: <filename>sys/i386/conf/options.i386</filename>), y seleccione un archivo
- <filename>opt_<replaceable>foo</replaceable>.h</filename> donde
- su nueva opci&oacute;n cabr&iacute;a mejor.</para>
-
- <para>Si ya hay algo que se acerque al proposito de la nueva opci&oacute;n, elijalo.
- Por ejemplo, las opciones que modifican la conducta general del subsistema
- SCSI pueden ir dentro de <filename>opt_scsi.h</filename>. Por default,
- con solo mencionar una opci&oacute;n en el archivo de opciones apropiado,
- digamos <literal>FOO</literal>, implica que su valor ir&aacute; dentro del
- archivo correspondiente <filename>opt_foo.h</filename>. Esto puede ser
- reemplazado en el lado derecho de una regla especificando otro nombre de
- archivo.</para>
-
- <para>Si no hay ning&uacute;n
- <filename>opt_<replaceable>foo</replaceable>.h</filename> ya
- disponible para la nueva opci&oacute;n, invente un nuevo nombre. H&aacute;galo
- significativo, y comente la nueva secci&oacute;n en el archivo
- <filename>options[<replaceable>.&lt;arq&gt;</replaceable>]</filename>.
- &man.config.8; automaticamente tomar&aacute; el cambio, y crear&aacute; el archivo
- la pr&oacute;xima vez que se corra. La mayor&iacute;a de las opciones deber&iacute;an ir en
- un archivo <filename>.h</filename> individual.</para>
-
- <para>Meter demasiadas opciones en un solo archivo
- <filename>opt_<replaceable>foo</replaceable>.h</filename> causar&aacute; que
- se tengan que recompilar demasiados archivos del kernel cuando se cambie
- una de las opciones en el archivo de configuraci&oacute;n.</para>
-
- <para>Por &uacute;ltimo, averigüe que archivos del kernel dependen de la nueva
- opci&oacute;n. A menos que usted haya inventado recientemente su opci&oacute;n, y
- a&uacute;n no existe en ning&uacute;n lado <screen>&prompt.user;
- <userinput>find /usr/src/sys -name
- type f | xargs fgrep NEW_OPTION</userinput></screen> le ser&aacute; de
- ayuda para encontrarlos. Edite todos esos archivos y agregue <programlisting>
- #include "opt_foo.h"</programlisting> <emphasis>al comienzo</emphasis>,
- antes de todos los <literal>#include &lt;xxx.h&gt;</literal>. Este
- orden es m&aacute;s importante en tanto las opciones podr&iacute;an reemplazar los
- defaults de los archivos <filename>.h</filename> regulares, si los defaults
- son de la forma <programlisting> #ifndef NEW_OPTION #define NEW_OPTION (something)
- #endif</programlisting> en el <filename>.h</filename> regular.</para>
-
- <para>Agregar una opci&oacute;n que reemplaza algo en un archivo header del sistema
- (un archivo ubicado en <filename>/usr/include/sys/</filename>) es
- casi siempre un error.
- <filename>opt_<replaceable>foo</replaceable>.h</filename> no puede ser
- incluido dentro de estos archivos dado que esto da&ntilde;ar&iacute;a al header
- muy seriamente, pero si no se incluye entonces otros lugares que lo
- incluyen podr&iacute;an tener valores inconsistentes para la opci&oacute;n. S&iacute;, hay
- precedentes de esto actualmente, pero eso no los hace m&aacute;s correctos.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/es_ES.ISO8859-1/books/handbook/l10n/chapter.sgml b/es_ES.ISO8859-1/books/handbook/l10n/chapter.sgml
deleted file mode 100755
index 9edbe5f9fc..0000000000
--- a/es_ES.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="l10n">
- <title>Localizacion</title>
-
- <para>Localizacion</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml
deleted file mode 100755
index 1a4b4a6ab8..0000000000
--- a/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="linuxemu">
- <title>Emulacion Linux</title>
-
- <para>Emulacion Linux</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/mail/chapter.sgml b/es_ES.ISO8859-1/books/handbook/mail/chapter.sgml
deleted file mode 100755
index 314c8b27ec..0000000000
--- a/es_ES.ISO8859-1/books/handbook/mail/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="mail">
- <title>Correo Electr&oacute;nico</title>
-
- <para>Correo Electr&oacute;nico</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/mailing-lists.ent b/es_ES.ISO8859-1/books/handbook/mailing-lists.ent
deleted file mode 100755
index a3a3647a21..0000000000
--- a/es_ES.ISO8859-1/books/handbook/mailing-lists.ent
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
- Nombres de listas de distribucion de FreeBSD.
-
- $FreeBSD$
--->
-
-<!ENTITY a.announce "Lista de anuncios de FreeBSD
- <email>freebsd-announce@FreeBSD.ORG</email>">
-
-<!ENTITY a.cvsall "Lista de actualizaciones en el CVS de FreeBSD CVS
- <email>cvs-all@FreeBSD.ORG</email>">
-
-<!ENTITY a.doc "Lista del Proyecto de Documentaci&oacute;n de FreeBSD
- <email>freebsd-doc@FreeBSD.ORG</email>">
-
-<!ENTITY a.bugs "Lista de informe de bugs en FreeBSD
- <email>freebsd-bugs@FreeBSD.ORG</email>">
-
-<!ENTITY a.current "Lista FreeBSD-current
- <email>freebsd-current@FreeBSD.ORG</email>">
-
-<!ENTITY a.emulation "Lista de FreeBSD-emulation
- <email>freebsd-emulation@FreeBSD.ORG</email>">
-
-<!ENTITY a.fs "Lista del proyecto del sistema de ficheros de FreeBSD
- <email>freebsd-fs@FreeBSD.ORG</email>">
-
-<!ENTITY a.hackers "Lista de discusiones t&eacute;cnicas de FreeBSD
- <email>freebsd-hackers@FreeBSD.ORG</email>">
-
-<!ENTITY a.ports "Lista de Ports de FreeBSD
- <email>freebsd-ports@FreeBSD.ORG</email>">
-
-<!ENTITY a.questions "Lista de preguntas generales de FreeBSD
- <email>freebsd-questions@FreeBSD.ORG</email>">
-
-<!ENTITY a.scsi "Lista del subsistema SCSI en FreeBSD
- <email>freebsd-scsi@FreeBSD.ORG</email>">
-
-<!ENTITY a.stable "Lista de FreeBSD-stable
- <email>freebsd-stable@FreeBSD.ORG</email>">
-
-<!ENTITY a.majordomo "<email>majordomo@FreeBSD.ORG</email>">
-
-<!ENTITY a.core "FreeBSD core team
- <email>freebsd-core@FreeBSD.ORG</email>">
-
-
diff --git a/es_ES.ISO8859-1/books/handbook/mirrors/chapter.sgml b/es_ES.ISO8859-1/books/handbook/mirrors/chapter.sgml
deleted file mode 100755
index f5f0059b37..0000000000
--- a/es_ES.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="mirrors">
- <title>Obteniendo FreeBSD</title>
-
- <para>Obteniendo FreeBSD</para>
-
- <sect1 id="mirrors-ftp">
- <title>Servidores FTP</title>
- <para>&nbsp;</para>
- </sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/newsgroups.ent b/es_ES.ISO8859-1/books/handbook/newsgroups.ent
deleted file mode 100644
index 47217f15b4..0000000000
--- a/es_ES.ISO8859-1/books/handbook/newsgroups.ent
+++ /dev/null
@@ -1,10 +0,0 @@
-<!--
- Nombre de grupos de noticias de FreeBSD.
-
- $FreeBSD$
--->
-
-<!ENTITY ng.misc "the
- <ulink url='news:comp.unix.bsd.freebsd.misc'>comp.unix.bsd.freebsd.misc</ulink>
- newsgroup">
-
diff --git a/es_ES.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/es_ES.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
deleted file mode 100755
index 474ff0c135..0000000000
--- a/es_ES.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ /dev/null
@@ -1,517 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
- <chapter id="pgpkeys">
- <title>PGP keys</title>
-
- <para>En caso de que necesites verificar una firma o enviar un mail
- encriptado a alguno de los responsables o miembros del core team,
- aqu&iacute; tienes una serie de claves para uso.</para>
-
-
- <sect1>
- <title>Responsables</title>
-
-
- <sect2>
- <title>Responsable de Seguridad de FreeBSD <email>security-officer@freebsd.org</email></title>
-
- <programlisting>
-FreeBSD Security Officer &lt;security-officer@freebsd.org&gt;
-Fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3i
-
-mQCNAzF7MY4AAAEEAK7qBgPuBejER5HQbQlsOldk3ZVWXlRj54raz3IbuAUrDrQL
-h3g57T9QY++f3Mot2LAf5lDJbsMfWrtwPrPwCCFRYQd6XH778a+l4ju5axyjrt/L
-Ciw9RrOC+WaPv3lIdLuqYge2QRC1LvKACIPNbIcgbnLeRGLovFUuHi5z0oilAAUR
-tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAZnJl
-ZWJzZC5vcmc+iQCVAwUQMX6yrOJgpPLZnQjrAQHyowQA1Nv2AY8vJIrdp2ttV6RU
-tZBYnI7gTO3sFC2bhIHsCvfVU3JphfqWQ7AnTXcD2yPjGcchUfc/EcL1tSlqW4y7
-PMP4GHZp9vHog1NAsgLC9Y1P/1cOeuhZ0pDpZZ5zxTo6TQcCBjQA6KhiBFP4TJql
-3olFfPBh3B/Tu3dqmEbSWpuJAJUDBRAxez3C9RVb+45ULV0BAak8A/9JIG/jRJaz
-QbKom6wMw852C/Z0qBLJy7KdN30099zMjQYeC9PnlkZ0USjQ4TSpC8UerYv6IfhV
-nNY6gyF2Hx4CbEFlopnfA1c4yxtXKti1kSN6wBy/ki3SmqtfDhPQ4Q31p63cSe5A
-3aoHcjvWuqPLpW4ba2uHVKGP3g7SSt6AOYkAlQMFEDF8mz0ff6kIA1j8vQEBmZcD
-/REaUPDRx6qr1XRQlMs6pfgNKEwnKmcUzQLCvKBnYYGmD5ydPLxCPSFnPcPthaUb
-5zVgMTjfjS2fkEiRrua4duGRgqN4xY7VRAsIQeMSITBOZeBZZf2oa9Ntidr5PumS
-9uQ9bvdfWMpsemk2MaRG9BSoy5Wvy8VxROYYUwpT8Cf2iQCVAwUQMXsyqWtaZ42B
-sqd5AQHKjAQAvolI30Nyu3IyTfNeCb/DvOe9tlOn/o+VUDNJiE/PuBe1s2Y94a/P
-BfcohpKC2kza3NiW6lLTp00OWQsuu0QAPc02vYOyseZWy4y3Phnw60pWzLcFdemT
-0GiYS5Xm1o9nAhPFciybn9j1q8UadIlIq0wbqWgdInBT8YI/l4f5sf6JAJUDBRAx
-ezKXVS4eLnPSiKUBAc5OBACIXTlKqQC3B53qt7bNMV46m81fuw1PhKaJEI033mCD
-ovzyEFFQeOyRXeu25Jg9Bq0Sn37ynISucHSmt2tUD5W0+p1MUGyTqnfqejMUWBzO
-v4Xhp6a8RtDdUMBOTtro16iulGiRrCKxzVgEl4i+9Z0ZiE6BWlg5AetoF5n3mGk1
-lw==
-=ipyA
------END PGP PUBLIC KEY BLOCK-----</programlisting>
-
- </sect2>
-
- <sect2>
- <title>&a.imp;</title>
-
- <programlisting>
-Warner Losh &lt;imp@village.org&gt;
- aka &lt;imp@freebsd.org&gt;
-Fingerprint = D4 31 FD B9 F7 90 17 E8 37 C5 E7 7F CF A6 C1 B9
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzDzTiAAAAEEAK8D7KWEbVFUrmlqhUEnAvphNIqHEbqqT8s+c5f5c2uHtlcH
-V4mV2TlUaDSVBN4+/D70oHmZc4IgiQwMPCWRrSezg9z/MaKlWhaslc8YT6Xc1q+o
-EP/fAdKUrq49H0QQbkQk6Ks5wKW6v9AOvdmsS6ZJEcet6d9G4dxynu/2qPVhAAUR
-tCBNLiBXYXJuZXIgTG9zaCA8aW1wQHZpbGxhZ2Uub3JnPokAlQMFEDM/SK1VLh4u
-c9KIpQEBFPsD/1n0YuuUPvD4CismZ9bx9M84y5sxLolgFEfP9Ux196ZSeaPpkA0g
-C9YX/IyIy5VHh3372SDWN5iVSDYPwtCmZziwIV2YxzPtZw0nUu82P/Fn8ynlCSWB
-5povLZmgrWijTJdnUWI0ApVBUTQoiW5MyrNN51H3HLWXGoXMgQFZXKWYiQCVAwUQ
-MzmhkfUVW/uOVC1dAQG3+AP/T1HL/5EYF0ij0yQmNTzt1cLt0b1e3N3zN/wPFFWs
-BfrQ+nsv1zw7cEgxLtktk73wBGM9jUIdJu8phgLtl5a0m9UjBq5oxrJaNJr6UTxN
-a+sFkapTLT1g84UFUO/+8qRB12v+hZr2WeXMYjHAFUT18mp3xwjW9DUV+2fW1Wag
-YDKJAJUDBRAzOYK1s1pi61mfMj0BARBbA/930CHswOF0HIr+4YYUs1ejDnZ2J3zn
-icTZhl9uAfEQq++Xor1x476j67Z9fESxyHltUxCmwxsJ1uOJRwzjyEoMlyFrIN4C
-dE0C8g8BF+sRTt7VLURLERvlBvFrVZueXSnXvmMoWFnqpSpt3EmN6TNaLe8Cm87a
-k6EvQy0dpnkPKokAlQMFEDD9Lorccp7v9qj1YQEBrRUD/3N4cCMWjzsIFp2Vh9y+
-RzUrblyF84tJyA7Rr1p+A7dxf7je3Zx5QMEXosWL1WGnS5vC9YH2WZwv6sCU61gU
-rSy9z8KHlBEHh+Z6fdRMrjd9byPf+n3cktT0NhS23oXB1ZhNZcB2KKhVPlNctMqO
-3gTYx+Nlo6xqjR+J2NnBYU8p =7fQV
------END PGP PUBLIC KEY BLOCK-----</programlisting>
-
- </sect2>
- </sect1>
-
- <sect1>
- <title>Miembros del Core Team</title>
-
-
- <sect2>
- <title>&a.asami;</title>
-
- <programlisting>
-Satoshi Asami &lt;asami@cs.berkeley.edu&gt;
- aka &lt;asami@FreeBSD.ORG&gt;
-Fingerprint = EB 3C 68 9E FB 6C EB 3F DB 2E 0F 10 8F CE 79 CA
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzPVyoQAAAEEAL7W+kipxB171Z4SVyyL9skaA7hG3eRsSOWk7lfvfUBLtPog
-f3OKwrApoc/jwLf4+Qpdzv5DLEt/6Hd/clskhJ+q1gMNHyZ5ABmUxrTRRNvJMTrb
-3fPU3oZj7sL/MyiFaT1zF8EaMP/iS2ZtcFsbYOqGeA8E/58uk4NA0SoeCNiJAAUR
-tCVTYXRvc2hpIEFzYW1pIDxhc2FtaUBjcy5iZXJrZWxleS5lZHU+iQCVAwUQM/AT
-+EqGN2HYnOMZAQF11QP/eSXb2FuTb1yX5yoo1Im8YnIk1SEgCGbyEbOMMBznVNDy
-5g2TAD0ofLxPxy5Vodjg8rf+lfMVtO5amUH6aNcORXRncE83T10JmeM6JEp0T6jw
-zOHKz8jRzygYLBayGsNIJ4BGxa4LeaGxJpO1ZEvRlNkPH/YEXK5oQmq9/DlrtYOJ
-AEUDBRAz42JT8ng6GBbVvu0BAU8nAYCsJ8PiJpRUGlrz6rxjX8hqM1v3vqFHLcG+
-G52nVMBSy+RZBgzsYIPwI5EZtWAKb22JAJUDBRAz4QBWdbtuOHaj97EBAaQPA/46
-+NLUp+Wubl90JoonoXocwAg88tvAUVSzsxPXj0lvypAiSI2AJKsmn+5PuQ+/IoQy
-lywRsxiQ5GD7C72SZ1yw2WI9DWFeAi+qa4b8n9fcLYrnHpyCY+zxEpu4pam8FJ7H
-JocEUZz5HRoKKOLHErzXDiuTkkm72b1glmCqAQvnB4kAlQMFEDPZ3gyDQNEqHgjY
-iQEBFfUEALu2C0uo+1Z7C5+xshWRYY5xNCzK20O6bANVJ+CO2fih96KhwsMof3lw
-fDso5HJSwgFd8WT/sR+Wwzz6BAE5UtgsQq5GcsdYQuGI1yIlCYUpDp5sgswNm+OA
-bX5a+r4F/ZJqrqT1J56Mer0VVsNfe5nIRsjd/rnFAFVfjcQtaQmjiQCVAwUQM9uV
-mcdm8Q+/vPRJAQELHgP9GqNiMpLQlZig17fDnCJ73P0e5t/hRLFehZDlmEI2TK7j
-Yeqbw078nZgyyuljZ7YsbstRIsWVCxobX5eH1kX+hIxuUqCAkCsWUY4abG89kHJr
-XGQn6X1CX7xbZ+b6b9jLK+bJKFcLSfyqR3M2eCyscSiZYkWKQ5l3FYvbUzkeb6K0
-IVNhdG9zaGkgQXNhbWkgPGFzYW1pQEZyZWVCU0QuT1JHPg==
-=39SC
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jmb;</title>
-
- <programlisting>
-Jonathan M. Bresler &lt;jmb@FreeBSD.org&gt;
-f16 Fingerprint16 = 31 57 41 56 06 C1 40 13 C5 1C E3 E5 DC 62 0E FB
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQCNAzG2GToAAAEEANI6+4SJAAgBpl53XcfEr1M9wZyBqC0tzpie7Zm4vhv3hO8s
-o5BizSbcJheQimQiZAY4OnlrCpPxijMFSaihshs/VMAz1qbisUYAMqwGEO/T4QIB
-nWNo0Q/qOniLMxUrxS1RpeW5vbghErHBKUX9GVhxbiVfbwc4wAHbXdKX5jjdAAUR
-tCVKb25hdGhhbiBNLiBCcmVzbGVyIDxqbWJARnJlZUJTRC5PUkc+iQCVAwUQNbtI
-gAHbXdKX5jjdAQHamQP+OQr10QRknamIPmuHmFYJZ0jU9XPIvTTMuOiUYLcXlTdn
-GyTUuzhbEywgtOldW2V5iA8platXThtqC68NsnN/xQfHA5xmFXVbayNKn8H5stDY
-2s/4+CZ06mmJfqYmONF1RCbUk/M84rVT3Gn2tydsxFh4Pm32lf4WREZWRiLqmw+J
-AJUDBRA0DfF99RVb+45ULV0BAcZ0BACCydiSUG1VR0a5DBcHdtin2iZMPsJUPRqJ
-tWvP6VeI8OFpNWQ4LW6ETAvn35HxV2kCcQMyht1kMD+KEJz7r8Vb94TS7KtZnNvk
-2D1XUx8Locj6xel5c/Lnzlnnp7Bp1XbJj2u/NzCaZQ0eYBdP/k7RLYBYHQQln5x7
-BOuiRJNVU4kAlQMFEDQLcShVLh4uc9KIpQEBJv4D/3mDrD0MM9EYOVuyXik3UGVI
-8quYNA9ErVcLdt10NjYc16VI2HOnYVgPRag3Wt7W8wlXShpokfC/vCNt7f5JgRf8
-h2a1/MjQxtlD+4/Js8k7GLa53oLon6YQYk32IEKexoLPwIRO4L2BHWa3GzHJJSP2
-aTR/Ep90/pLdAOu/oJDUiQCVAwUQMqyL0LNaYutZnzI9AQF25QP9GFXhBrz2tiWz
-2+0gWbpcGNnyZbfsVjF6ojGDdmsjJMyWCGw49XR/vPKYIJY9EYo4t49GIajRkISQ
-NNiIz22fBAjT2uY9YlvnTJ9NJleMfHr4dybo7oEKYMWWijQzGjqf2m8wf9OaaofE
-KwBX6nxcRbKsxm/BVLKczGYl3XtjkcuJAJUDBRA1ol5TZWCprDT5+dUBATzXA/9h
-/ZUuhoRKTWViaistGJfWi26FB/Km5nDQBr/Erw3XksQCMwTLyEugg6dahQ1u9Y5E
-5tKPxbB69eF+7JXVHE/z3zizR6VL3sdRx74TPacPsdhZRjChEQc0htLLYAPkJrFP
-VAzAlSlm7qd+MXf8fJovQs6xPtZJXukQukPNlhqZ94kAPwMFEDSH/kF4tXKgazlt
-bxECfk4AoO+VaFVfguUkWX10pPSSfvPyPKqiAJ4xn8RSIe1ttmnqkkDMhLh00mKj
-lLQuSm9uYXRoYW4gTS4gQnJlc2xlciA8Sm9uYXRoYW4uQnJlc2xlckBVU2kubmV0
-PokAlQMFEDXbdSkB213Sl+Y43QEBV/4D/RLJNTrtAqJ1ATxXWv9g8Cr3/YF0GTmx
-5dIrJOpBup7eSSmiM/BL9Is4YMsoVbXCI/8TqA67TMICvq35PZU4wboQB8DqBAr+
-gQ8578M7Ekw1OAF6JXY6AF2P8k7hMcVBcVOACELPT/NyPNByG5QRDoNmlsokJaWU
-/2ls4QSBZZlb
-=zbCw
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.ache;</title>
-
- <programlisting>
-Andrey A. Chernov &lt;ache@FreeBSD.org&gt;
- aka &lt;ache@nagual.pp.ru&gt;
-Key fingerprint = 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAiqUMGQAAAEEAPGhcD6A2Buey5LYz0sphDLpVgOZc/bb9UHAbaGKUAGXmafs
-Dcb2HnsuYGgX/zrQXuCi/wIGtXcZWB97APtKOhFsZnPinDR5n/dde/mw9FnuhwqD
-m+rKSL1HlN0z/Msa5y7g16760wHhSR6NoBSEG5wQAHIMMq7Q0uJgpPLZnQjrAAUT
-tCVBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucHAucnU+iQCVAwUQM2Ez
-u+JgpPLZnQjrAQEyugP8DPnS8ixJ5OeuYgPFQf5sy6l+LrB6hyaS+lgsUPahWjNY
-cnaDmfda/q/BV5d4+y5rlQe/pjnYG7/yQuAR3jhlXz8XDrqlBOnW9AtYjDt5rMfJ
-aGFTGXAPGZ6k6zQZE0/YurT8ia3qjvuZm3Fw4NJrHRx7ETHRvVJDvxA6Ggsvmr20
-JEFuZHJleSBBLiBDaGVybm92IDxhY2hlQEZyZWVCU0Qub3JnPokAlQMFEDR5uVbi
-YKTy2Z0I6wEBLgED/2mn+hw4/3peLx0Sb9LNx//NfCCkVefSf2G9Qwhx6dvwbX7h
-mFca97h7BQN4GubU1Z5Ffs6TeamSBrotBYGmOCwvJ6S9WigF9YHQIQ3B4LEjskAt
-pcjU583y42zM11kkvEuQU2Gde61daIylJyOxsgpjSWpkxq50fgY2kLMfgl/ftCZB
-bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuaWV0enNjaGUubmV0PokAlQMFEDR5svDi
-YKTy2Z0I6wEBOTQD/0OTCAXIjuak363mjERvzSkVsNtIH9hA1l0w6Z95+iH0fHrW
-xXKT0vBZE0y0Em+S3cotLL0bMmVE3F3D3GyxhBVmgzjyx0NYNoiQjYdi+6g/PV30
-Cn4vOO6hBBpSyI6vY6qGNqcsawuRtHNvK/53MpOfKwSlICEBYQimcZhkci+EtCJB
-bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucnU+iQCVAwUQMcm5HeJgpPLZ
-nQjrAQHwvQP9GdmAf1gdcuayHEgNkc11macPH11cwWjYjzA2YoecFMGV7iqKK8QY
-rr1MjbGXf8DAG8Ubfm0QbI8Lj8iG3NgqIru0c72UuHGSn/APfGGG0AtPX5UK/k7B
-gI0Ca2po6NA5nrSp8tDsdEz/4gyea84RXl2prtTf5Jj07hflbRstGXK0MkFuZHJl
-eSBBLiBDaGVybm92LCBCbGFjayBNYWdlIDxhY2hlQGFzdHJhbC5tc2suc3U+iQCV
-AwUQMCsAo5/rGryoL8h3AQHq1QQAidyNFqA9hvrmMcjpY7csJVFlGvj574Wj4GPa
-o3pZeuQaMBmsWqaXLYnWU/Aldb6kTz6+nRcQX50zFH0THSPfApwEW7yybSTI5apJ
-mWT3qhKN2vmLNg2yNzhqLTzHLD1lH3i1pfQq8WevrNfjLUco5S/VuekTma/osnzC
-Cw7fQzCJAJUDBRAwKvwoa1pnjYGyp3kBARihBACoXr3qfG65hFCyKJISmjOvaoGr
-anxUIkeDS0yQdTHzhQ+dwB1OhhK15E0Nwr0MKajLMm90n6+Zdb5y/FIjpPriu8dI
-rlHrWZlewa88eEDM+Q/NxT1iYg+HaKDAE171jmLpSpCL0MiJtO0i36L3ekVD7Hv8
-vffOZHPSHirIzJOZTYkAlQMFEDAau6zFLUdtDb+QbQEBQX8D/AxwkYeFaYxZYMFO
-DHIvSk23hAsjCmUA2Uil1FeWAusb+o8xRfPDc7TnosrIifJqbF5+fcHCG5VSTGlh
-Bhd18YWUeabf/h9O2BsQX55yWRuB2x3diJ1xI/VVdG+rxlMCmE4ZR1Tl9x+Mtun9
-KqKVpB39VlkCBYQ3hlgNt/TJUY4riQCVAwUQMBHMmyJRltlmbQBRAQFQkwP/YC3a
-hs3ZMMoriOlt3ZxGNUUPTF7rIER3j+c7mqGG46dEnDB5sUrkzacpoLX5sj1tGR3b
-vz9a4vmk1Av3KFNNvrZZ3/BZFGpq3mCTiAC9zsyNYQ8L0AfGIUO5goCIjqwOTNQI
-AOpNsJ5S+nMAkQB4YmmNlI6GTb3D18zfhPZ6uciJAJUCBRAwD0sl4uW74fteFRkB
-AWsAA/9NYqBRBKbmltQDpyK4+jBAYjkXBJmARFXKJYTlnTgOHMpZqoVyW96xnaa5
-MzxEiu7ZWm5oL10QDIp1krkBP2KcmvfSMMHb5aGCCQc2/P8NlfXAuHtNGzYiI0UA
-Iwi8ih/S1liVfvnqF9uV3d3koE7VsQ9OA4Qo0ZL2ggW+/gEaYIkAlQMFEDAOz6qx
-/IyHe3rl4QEBIvYD/jIr8Xqo/2I5gncghSeFR01n0vELFIvaF4cHofGzyzBpYsfA
-+6pgFI1IM+LUF3kbUkAY/2uSf9U5ECcaMCTWCwVgJVO+oG075SHEM4buhrzutZiM
-1dTyTaepaPpTyRMUUx9ZMMYJs7sbqLId1eDwrJxUPhrBNvf/w2W2sYHSY8cdiQCV
-AwUQMAzqgHcdkq6JcsfBAQGTxwQAtgeLFi2rhSOdllpDXUwz+SS6bEjFTWgRsWFM
-y9QnOcqryw7LyuFmWein4jasjY033JsODfWQPiPVNA3UEnXVg9+n8AvNMPO8JkRv
-Cn1eNg0VaJy9J368uArio93agd2Yf/R5r+QEuPjIssVk8hdcy/luEhSiXWf6bLMV
-HEA0J+OJAJUDBRAwDUi+4mCk8tmdCOsBAatBBACHB+qtW880seRCDZLjl/bT1b14
-5po60U7u6a3PEBkY0NA72tWDQuRPF/Cn/0+VdFNxQUsgkrbwaJWOoi0KQsvlOm3R
-rsxKbn9uvEKLxExyKH3pxp76kvz/lEWwEeKvBK+84Pb1lzpG3W7u2XDfi3VQPTi3
-5SZMAHc6C0Ct/mjNlYkAlQMFEDAMrPD7wj+NsTMUOQEBJckD/ik4WsZzm2qOx9Fw
-erGq7Zwchc+Jq1YeN5PxpzqSf4AG7+7dFIn+oe6X2FcIzgbYY+IfmgJIHEVjDHH5
-+uAXyb6l4iKc89eQawO3t88pfHLJWbTzmnvgz2cMrxt94HRvgkHfvcpGEgbyldq6
-EB33OunazFcfZFRIcXk1sfyLDvYE
-=1ahV
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jkh;</title>
-
- <programlisting>
-Jordan K. Hubbard &lt;jkh@FreeBSD.org&gt;
-Fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzFjX0IAAAEEAML+nm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ
-jvX+fyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk
-tyFeRJFqnkCuqBj6D+H8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR
-tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPokBFQMFEDXCTXQM
-j46yp4IfPQEBwO8IAIN0J09AXBf86dFUTFGcAMrEQqOF5IL+KGorAjzuYxERhKfD
-ZV7jA+sCQqxkWfcVcE20kVyVYqzZIkio9a5zXP6TwA247JkPt54S1PmMDYHNlRIY
-laXlNoji+4q3HP2DfHqXRT2859rYpm/fG/v6pWkos5voPKcZ2OFEp9W+Ap88oqw+
-5rx4VetZNJq1Epmis4INj6XqNqj85+MOOIYE+f445ohDM6B/Mxazd6cHFGGIR+az
-VjZ6lCDMLjzhB5+FqfrDLYuMjqkMTR5z9DL+psUvPlCkYbQ11NEWtEmiIWjUcNJN
-GCxGzv5bXk0XPu3ADwbPkFE2usW1cSM7AQFiwuyJAJUDBRAxe+Q9a1pnjYGyp3kB
-AV7XA/oCSL/Cc2USpQ2ckwkGpyvIkYBPszIcabSNJAzm2hsU9Qa6WOPxD8olDddB
-uJNiW/gznPC4NsQ0N8Zr4IqRX/TTDVf04WhLmd8AN9SOrVv2q0BKgU6fLuk979tJ
-utrewH6PR2qBOjAaR0FJNk4pcYAHeT+e7KaKy96YFvWKIyDvc4kAlQMFEDF8ldof
-f6kIA1j8vQEBDH4D/0Zm0oNlpXrAE1EOFrmp43HURHbij8n0Gra1w9sbfo4PV+/H
-U8ojTdWLy6r0+prH7NODCkgtIQNpqLuqM8PF2pPtUJj9HwTmSqfaT/LMztfPA6PQ
-csyT7xxdXl0+4xTDl1avGSJfYsI8XCAy85cTs+PQwuyzugE/iykJO1Bnj/paiQCV
-AwUQMXvlBvUVW/uOVC1dAQF2fQP/RfYC6RrpFTZHjo2qsUHSRk0vmsYfwG5NHP5y
-oQBMsaQJeSckN4n2JOgR4T75U4vS62aFxgPLJP3lOHkU2Vc7xhAuBvsbGr5RP8c5
-LvPOeUEyz6ZArp1KUHrtcM2iK1FBOmY4dOYphWyWMkDgYExabqlrAq7FKZftpq/C
-BiMRuaw=
-=C/Jw
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.phk;</title>
-
- <programlisting>
-Poul-Henning Kamp &lt;phk@FreeBSD.org&gt;
-Fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzAdpMIAAAEEALHDgrFUwhZtb7PbXg3upELoDVEUPFRwnmpJH1rRqyROUGcI
-ooVe7u+FQlIs5OsXK8ECs/5Wpe2UrZSzHvjwBYOND5H42YtI5UULZLRCo5bFfTVA
-K9Rpo5icfTsYihrzU2nmnycwFMk+jYXyT/ZDYWDP/BM9iLjj0x9/qQgDWPy9AAUR
-tCNQb3VsLUhlbm5pbmcgS2FtcCA8cGhrQEZyZWVCU0Qub3JnPokAlQMFEDQQ0aZ1
-u244dqP3sQEBu4ID/jXFFeJgs2MdTDNOZM/FbfDhI4qxAbYUsqS3+Ra16yd8Wd/A
-jV+IHJE2NomFWl8UrUjCGinXiwzPgK1OfFJrS9Og1wQLvAl0X84BA8MTP9BQr4w7
-6I/RbksgUSrVCIO8MJwlydjSPocWGBeXlVjbZxXzyuJk7H+TG+zuI5BuBcNIiQCV
-AwUQMwYr2rNaYutZnzI9AQHiIQP/XxtBWFXaBRgVLEhRNpS07YdU+LsZGlLOZehN
-9L4UnJFHQQPNOpMey2gF7Y95aBOw5/1xS5vlQpwmRFCntWsm/gqdzK6rulfr1r5A
-y94LO5TAC6ucNu396Y4vo1TyD1STnRC466KlvmtQtAtFGgXlORWLL9URLzcRFd1h
-D0yXd9aJAJUDBRAxfo19a1pnjYGyp3kBAQqyA/4v64vP3l1F0Sadn6ias761hkz/
-SMdTuLzILmofSCC4o4KWMjiWJHs2Soo41QlZi1+xMHzV32JKiwFlGtPHqL+EHyXy
-Q4H3vmf9/1KF+0XCaMtgI0wWUMziPSTJK8xXbRRmMDK/0F4TnVVaUhnmf+h5K7O6
-XdmejDTa0X/NWcicmIkAlQMFEDF8lef1FVv7jlQtXQEBcnwD/0ro1PpUtlkLmreD
-tsGTkNa7MFLegrYRvDDrHOwPZH152W2jPUncY+eArQJakeHiTDmJNpFagLZglhE0
-bqJyca+UwCXX+6upAclWHEBMg2byiWMMqyPVEEnpUoHM1sIkgdNWlfQAmipRBfYh
-2LyCgWvR8CbtwPYIFvUmGgB3MR87iQCVAwUQMUseXB9/qQgDWPy9AQGPkwP/WEDy
-El2Gkvua9COtMAifot2vTwuvWWpNopIEx0Ivey4aVbRLD90gGCJw8OGDEtqFPcNV
-8aIiy3fYVKXGZZjvCKd7zRfhNmQn0eLDcymq2OX3aPrMc2rRlkT4Jx425ukR1gsO
-qiQAgw91aWhY8dlw/EKzk8ojm52x4VgXaBACMjaJAJUDBRAxOUOg72G56RHVjtUB
-AbL4A/9HOn5Qa0lq9tKI/HkSdc5fGQD/66VdCBAb292RbB7CS/EM07MdbcqRRYIa
-0+0gwQ3OdsWPdCVgH5RIhp/WiC+UPkR1cY8N9Mg2kTwJfZZfNqN+BgWlgRMPN27C
-OhYNl8Q33Nl9CpBLrZWABF44jPeT0EvvTzP/5ZQ7T75EsYKYiYkAlQMFEDDmryQA
-8tkJ67sbQQEBPdsEALCj6v1OBuJLLJTlxmmrkqAZPVzt5QdeO3Eqa2tcPWcU0nqP
-vHYMzZcZ7oFg58NZsWrhSQQDIB5e+K65Q/h6dC7W/aDskZd64jxtEznX2kt0/MOr
-8OdsDis1K2f9KQftrAx81KmVwW4Tqtzl7NWTDXt44fMOtibCwVq8v2DFkTJy
-=JKbP
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.rich;</title>
-
- <programlisting>
-Rich Murphey &lt;rich@FreeBSD.org&gt;
-fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAy97V+MAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1
-FBF2Gd5Lbj0y8SLMno5yJ6P4F4r+x3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs
-wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR
-tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W
-vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g
-Sb97WRLEYDi686osaGfsuKNA87Rm+q5F+jxeUV4w4szoqp60gGvCbD0KCB2hWraP
-/2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw==
-=QoiM
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jdp;</title>
-
- <programlisting>
-John D. Polstra &lt;jdp@polstra.com&gt;
-Fingerprint = 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzMElMEAAAEEALizp6ZW9QifQgWoFmG3cXhzQ1+Gt+a4S1adC/TdHdBvw1M/
-I6Ok7TC0dKF8blW3VRgeHo4F3XhGn+n9MqIdboh4HJC5Iiy63m98sVLJSwyGO4oM
-dkEGyyCLxqP6h/DU/tzNBdqFzetGtYvU4ftt3RO0a506cr2CHcdm8Q+/vPRJAAUR
-tCFKb2huIEQuIFBvbHN0cmEgPGpkcEBwb2xzdHJhLmNvbT6JAJUDBRAzBNBE9RVb
-+45ULV0BAWgiA/0WWO3+c3qlptPCHJ3DFm6gG/qNKsY94agL/mHOr0fxMP5l2qKX
-O6a1bWkvGoYq0EwoKGFfn0QeHiCl6jVi3CdBX+W7bObMcoi+foqZ6zluOWBC1Jdk
-WQ5/DeqQGYXqbYjqO8voCScTAPge3XlMwVpMZTv24u+nYxtLkE0ZcwtY9IkAlQMF
-EDMEt/DHZvEPv7z0SQEBXh8D/2egM5ckIRpGz9kcFTDClgdWWtlgwC1iI2p9gEhq
-aufy+FUJlZS4GSQLWB0BlrTmDC9HuyQ+KZqKFRbVZLyzkH7WFs4zDmwQryLV5wkN
-C4BRRBXZfWy8s4+zT2WQD1aPO+ZsgRauYLkJgTvXTPU2JCN62Nsd8R7bJS5tuHEm
-7HGmiQCVAwUQMwSvHB9/qQgDWPy9AQFAhAQAgJ1AlbKITrEoJ0+pLIsov3eQ348m
-SVHEBGIkU3Xznjr8NzT9aYtq4TIzt8jplqP3QoV1ka1yYpZf0NjvfZ+ffYp/sIaU
-wPbEpgtmHnVWJAebMbNs/Ad1w8GDvxEt9IaCbMJGZnHmfnEqOBIxF7VBDPHHoJxM
-V31K/PIoYsHAy5w=
-=cHFa
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.guido;</title>
-
- <programlisting>
-Guido van Rooij &lt;guido@gvr.win.tue.nl&gt;
-Fingerprint = 16 79 09 F3 C0 E4 28 A7 32 62 FA F6 60 31 C0 ED
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzGeO84AAAEEAKKAY91Na//DXwlUusr9GVESSlVwVP6DyH1wcZXhfN1fyZHq
-SwhMCEdHYoojQds+VqD1iiZQvv1RLByBgj622PDAPN4+Z49HjGs7YbZsUNuQqPPU
-wRPpP6ty69x1hPKq1sQIB5MS4radpCM+4wbZbhxv7l4rP3RWUbNaYutZnzI9AAUR
-tCZHdWlkbyB2YW4gUm9vaWogPGd1aWRvQGd2ci53aW4udHVlLm5sPokAlQMFEDMG
-Hcgff6kIA1j8vQEBbYgD/jm9xHuUuY+iXDkOzpCXBYACYEZDV913MjtyBAmaVqYo
-Rh5HFimkGXe+rCo78Aau0hc57fFMTsJqnuWEqVt3GRq28hSK1FOZ7ni9/XibHcmN
-rt2yugl3hYpClijo4nrDL1NxibbamkGW/vFGcljS0jqXz6NDVbGx5Oo7HBByxByz
-iQCVAwUQMhmtVjt/x7zOdmsfAQFuVQQApsVUTigT5YWjQA9Nd5Z0+a/oVtZpyw5Z
-OljLJP3vqJdMa6TidhfcatjHbFTve5x1dmjFgMX/MQTd8zf/+Xccy/PX4+lnKNpP
-eSf1Y4aK+E8KHmBGd6GzX6CIboyGYLS9e3kGnN06F2AQtaLyJFgQ71wRaGuyKmQG
-FwTn7jiKb1aJAJUDBRAyEOLXPt3iN6QQUSEBATwQA/9jqu0Nbk154+Pn+9mJX/YT
-fYR2UqK/5FKCqgL5Nt/Deg2re0zMD1f8F9Dj6vuAAxq8hnOkIHKlWolMjkRKkzJi
-mSPEWl3AuHJ31k948J8it4f8kq/o44usIA2KKVMlI63Q/rmNdfWCyiYQEVGcRbTm
-GTdZIHYCOgV5dOo4ebFqgYkAlQMFEDIE1nMEJn15jgpJ0QEBW6kEAKqN8XSgzTqf
-CrxFXT07MlHhfdbKUTNUoboxCGCLNW05vf1A8F5fdE5i14LiwkldWIzPxWD+Sa3L
-fNPCfCZTaCiyGcLyTzVfBHA18MBAOOX6JiTpdcm22jLGUWBf/aJK3yz/nfbWntd/
-LRHysIdVp29lP5BF+J9/Lzbb/9LxP1taiQCVAwUQMgRXZ44CzbsJWQz9AQFf7gP/
-Qa2FS5S6RYKG3rYanWADVe/ikFV2lxuM1azlWbsmljXvKVWGe6cV693nS5lGGAjx
-lbd2ADwXjlkNhv45HLWFm9PEveO9Jjr6tMuXVt8N2pxiX+1PLUN9CtphTIU7Yfjn
-s6ryZZfwGHSfIxNGi5ua2SoXhg0svaYnxHxXmOtH24iJAJUDBRAyAkpV8qaAEa3W
-TBkBARfQBAC+S3kbulEAN3SI7/A+A/dtl9DfZezT9C4SRBGsl2clQFMGIXmMQ/7v
-7lLXrKQ7U2zVbgNfU8smw5h2vBIL6f1PyexSmc3mz9JY4er8KeZpcf6H0rSkHl+i
-d7TF0GvuTdNPFO8hc9En+GG6QHOqbkB4NRZ6cwtfwUMhk2FHXBnjF4kAlQMFEDH5
-FFukUJAsCdPmTQEBe74EAMBsxDnbD9cuI5MfF/QeTNEG4BIVUZtAkDme4Eg7zvsP
-d3DeJKCGeNjiCWYrRTCGwaCWzMQk+/+MOmdkI6Oml+AIurJLoHceHS9jP1izdP7f
-N2jkdeJSBsixunbQWtUElSgOQQ4iF5kqwBhxtOfEP/L9QsoydRMR1yB6WPD75H7V
-iQCVAwUQMZ9YNGtaZ42Bsqd5AQH0PAQAhpVlAc3ZM/KOTywBSh8zWKVlSk3q/zGn
-k7hJmFThnlhH1723+WmXE8aAPJi+VXOWJUFQgwELJ6R8jSU2qvk2m1VWyYSqRKvc
-VRQMqT2wjss0GE1Ngg7tMrkRHT0il7E2xxIb8vMrIwmdkbTfYqBUhhGnsWPHZHq7
-MoA1/b+rK7CJAJUDBRAxnvXh3IDyptUyfLkBAYTDA/4mEKlIP/EUX2Zmxgrd/JQB
-hqcQlkTrBAaDOnOqe/4oewMKR7yaMpztYhJs97i03Vu3fgoLhDspE55ooEeHj0r4
-cOdiWfYDsjSFUYSPNVhW4OSruMA3c29ynMqNHD7hpr3rcCPUi7J2RncocOcCjjK2
-BQb/9IAUNeK4C9gPxMEZLokAlQMFEDGeO86zWmLrWZ8yPQEBEEID/2fPEUrSX3Yk
-j5TJPFZ9MNX0lEo7AHYjnJgEbNI4pYm6C3PnMlsYfCSQDHuXmRQHAOWSdwOLvCkN
-F8eDaF3M6u0urgeVJ+KVUnTz2+LZoZs12XSZKCte0HxjbvPpWMTTrYyimGezH79C
-mgDVjsHaYOx3EXF0nnDmtXurGioEmW1J
-=mSvM
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.peter;</title>
-
- <programlisting>
-Peter Wemm &lt;peter@FreeBSD.org&gt;
- aka &lt;peter@spinner.dialix.com&gt;
- aka &lt;peter@haywire.dialix.com&gt;
- aka &lt;peter@perth.dialix.oz.au&gt;
-Key fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAy9/FJwAAAEEALxs9dE9tFd0Ru1TXdq301KfEoe5uYKKuldHRBOacG2Wny6/
-W3Ill57hOi2+xmq5X/mHkapywxvy4cyLdt31i4GEKDvxpDvEzAYcy2n9dIup/eg2
-kEhRBX9G5k/LKM4NQsRIieaIEGGgCZRm0lINqw495aZYrPpO4EqGN2HYnOMZAAUT
-tCVQZXRlciBXZW1tIDxwZXRlckBoYXl3aXJlLmRpYWxpeC5jb20+iQCVAwUQMwWT
-cXW7bjh2o/exAQEFkQP+LIx5zKlYp1uR24xGApMFNrNtjh+iDIWnxxb2M2Kb6x4G
-9z6OmbUCoDTGrX9SSL2Usm2RD0BZfyv9D9QRWC2TSOPkPRqQgIycc11vgbLolJJN
-eixqsxlFeKLGEx9eRQCCbo3dQIUjc2yaOe484QamhsK1nL5xpoNWI1P9zIOpDiGJ
-AJUDBRAxsRPqSoY3Ydic4xkBAbWLA/9q1Fdnnk4unpGQsG31Qbtr4AzaQD5m/JHI
-4gRmSmbj6luJMgNG3fpO06Gd/Z7uxyCJB8pTst2a8C/ljOYZxWT+5uSzkQXeMi5c
-YcI1sZbUpkHtmqPW623hr1PB3ZLA1TIcTbQW+NzJsxQ1Pc6XG9fGkT9WXQW3Xhet
-AP+juVTAhLQlUGV0ZXIgV2VtbSA8cGV0ZXJAcGVydGguZGlhbGl4Lm96LmF1PokA
-lQMFEDGxFCFKhjdh2JzjGQEB6XkD/2HOwfuFrnQUtdwFPUkgtEqNeSr64jQ3Maz8
-xgEtbaw/ym1PbhbCk311UWQq4+izZE2xktHTFClJfaMnxVIfboPyuiSF99KHiWnf
-/Gspet0S7m/+RXIwZi1qSqvAanxMiA7kKgFSCmchzas8TQcyyXHtn/gl9v0khJkb
-/fv3R20btB5QZXRlciBXZW1tIDxwZXRlckBGcmVlQlNELm9yZz6JAJUDBRAxsRJd
-SoY3Ydic4xkBAZJUA/4i/NWHz5LIH/R4IF/3V3LleFyMFr5EPFY0/4mcv2v+ju9g
-brOEM/xd4LlPrx1XqPeZ74JQ6K9mHR64RhKR7ZJJ9A+12yr5dVqihe911KyLKab9
-4qZUHYi36WQu2VtLGnw/t8Jg44fQSzbBF5q9iTzcfNOYhRkSD3BdDrC3llywO7Ql
-UGV0ZXIgV2VtbSA8cGV0ZXJAc3Bpbm5lci5kaWFsaXguY29tPokAlQMFEDGxEi1K
-hjdh2JzjGQEBdA4EAKmNFlj8RF9HQsoI3UabnvYqAWN5wCwEB4u+Zf8zq6OHic23
-TzoK1SPlmSdBE1dXXQGS6aiDkLT+xOdeewNs7nfUIcH/DBjSuklAOJzKliXPQW7E
-kuKNwy4eq5bl+j3HB27i+WBXhn6OaNNQY674LGaR41EGq44Wo5ATcIicig/z
-=gv+h
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.joerg;</title>
-
- <programlisting>
-Type Bits/KeyID Date User ID
-pub 1024/76A3F7B1 1996/04/27 Joerg Wunsch &lt;joerg_wunsch@uriah.heep.sax.de&gt;
- Key fingerprint = DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E
- Joerg Wunsch &lt;joerg_wunsch@interface-business.de&gt;
- Joerg Wunsch &lt;j@uriah.heep.sax.de&gt;
- Joerg Wunsch &lt;j@interface-business.de&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzGCFeAAAAEEAKmRBU2Nvc7nZy1Ouid61HunA/5hF4O91cXm71/KPaT7dskz
-q5sFXvPJPpawwvqHPHfEbAK42ZaywyFp59L1GaYj87Pda+PlAYRJyY2DJl5/7JPe
-ziq+7B8MdvbX6D526sdmcR+jPXPbHznASjkx9DPmK+7TgFujyXW7bjh2o/exAAUR
-tC1Kb2VyZyBXdW5zY2ggPGpvZXJnX3d1bnNjaEB1cmlhaC5oZWVwLnNheC5kZT6J
-AJUDBRA0FFkBs1pi61mfMj0BAfDCA/oCfkjrhvRwRCpSL8klJ1YDoUJdmw+v4nJc
-pw3OpYXbwKOPLClsE7K3KCQscHel7auf91nrekAwbrXv9Clp0TegYeAQNjw5vZ9f
-L6UZ5l3fH8E2GGA7+kqgNWs1KxAnG5GdUvJ9viyrWm8dqWRGo+loDWlZ12L2OgAD
-fp7jVZTI1okAlQMFEDQPrLoff6kIA1j8vQEB2XQEAK/+SsQPCT/X4RB/PBbxUr28
-GpGJMn3AafAaA3plYw3nb4ONbqEw9tJtofAn4UeGraiWw8nHYR2DAzoAjR6OzuX3
-TtUV+57BIzrTPHcNkb6h8fPuHU+dFzR+LNoPaGJsFeov6w+Ug6qS9wa5FGDAgaRo
-LHSyBxcRVoCbOEaS5S5EiQCVAwUQM5BktWVgqaw0+fnVAQGKPwP+OiWho3Zm2GKp
-lEjiZ5zx3y8upzb+r1Qutb08jr2Ewja04hLg0fCrt6Ad3DoVqxe4POghIpmHM4O4
-tcW92THQil70CLzfCxtfUc6eDzoP3krD1/Gwpm2hGrmYA9b/ez9+r2vKBbnUhPmC
-glx5pf1IzHU9R2XyQz9Xu7FI2baOSZqJAJUDBRAyCIWZdbtuOHaj97EBAVMzA/41
-VIph36l+yO9WGKkEB+NYbYOz2W/kyi74kXLvLdTXcRYFaCSZORSsQKPGNMrPZUoL
-oAKxE25AoCgl5towqr/sCcu0A0MMvJddUvlQ2T+ylSpGmWchqoXCN7FdGyxrZ5zz
-xzLIvtcio6kaHd76XxyJpltCASupdD53nEtxnu8sRrQxSm9lcmcgV3Vuc2NoIDxq
-b2VyZ193dW5zY2hAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokAlQMFEDIIhfR1u244
-dqP3sQEBWoID/RhBm+qtW+hu2fqAj9d8CVgEKJugrxZIpXuCKFvO+bCgQtogt9EX
-+TJh4s8UUdcFkyEIu8CT2C3Rrr1grvckfxvrTgzSzvtYyv1072X3GkVY+SlUMBMA
-rdl1qNW23oT7Q558ajnsaL065XJ5m7HacgTTikiofYG8i1s7TrsEeq6PtCJKb2Vy
-ZyBXdW5zY2ggPGpAdXJpYWguaGVlcC5zYXguZGU+iQCVAwUQMaS91D4gHQUlG9CZ
-AQGYOwQAhPpiobK3d/fz+jWrbQgjkoO+j39glYGXb22+6iuEprFRs/ufKYtjljNT
-NK3B4DWSkyIPawcuO4Lotijp6jke2bsjFSSashGWcsJlpnwsv7EeFItT3oWTTTQQ
-ItPbtNyLW6M6xB+jLGtaAvJqfOlzgO9BLfHuA2LY+WvbVW447SWJAJUDBRAxqWRs
-dbtuOHaj97EBAXDBA/49rzZB5akkTSbt/gNd38OJgC+H8N5da25vV9dD3KoAvXfW
-fw7OxIsxvQ/Ab+rJmukrrWxPdsC+1WU1+1rGa4PvJp/VJRDes2awGrn+iO7/cQoS
-IVziC27JpcbvjLvLVcBIiy1yT/RvJ+87a3jPRHt3VFGcpFh4KykxxSNiyGygl4kA
-lQMFEDGCUB31FVv7jlQtXQEB5KgD/iIJZe5lFkPr2B/Cr7BKMVBot1/JSu05NsHg
-JZ3uK15w4mVtNPZcFi/dKbn+qRM6LKDFe/GF0HZD/ZD1FJt8yQjzF2w340B+F2GG
-EOwnClqZDtEAqnIBzM/ECQQqH+6Bi8gpkFZrFgg5eON7ikqmusDnOlYStM/CBfgp
-SbR8kDmFtCZKb2VyZyBXdW5zY2ggPGpAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokA
-lQMFEDHioSdlYKmsNPn51QEByz8D/10uMrwP7MdaXnptd1XNFhpaAPYTVAOcaKlY
-OGI/LLR9PiU3FbqXO+7INhaxFjBxa0Tw/p4au5Lq1+Mx81edHniJZNS8tz3I3goi
-jIC3+jn2gnVAWnK5UZUTUVUn/JLVk/oSaIJNIMMDaw4J9xPVVkb+Fh1A+XqtPsVa
-YESrNp0+iQCVAwUQMwXkzcdm8Q+/vPRJAQEA4QQAgNNX1HFgXrMetDb+w6yEGQDk
-JCDAY9b6mA2HNeKLQAhsoZl4HwA1+iuQaCgo3lyFC+1Sf097OUTs74z5X1vCedqV
-oFw9CxI3xuctt3pJCbbN68flOlnq0WdYouWWGlFwLlh5PEy//VtwX9lqgsizlhzi
-t+fX6BT4BgKi5baDhrWJAJUDBRAyCKveD9eCJxX4hUkBAebMA/9mRPy6K6i7TX2R
-jUKSl2p5oYrXPk12Zsw4ijuktslxzQhOCyMSCGK2UEC4UM9MXp1H1JZQxN/DcfnM
-7VaUt+Ve0wZ6DC9gBSHJ1hKVxHe5XTj26mIr4rcXNy2XEDMK9QsnBxIAZnBVTjSO
-LdhqqSMp3ULLOpBlRL2RYrqi27IXr4kAlQMFEDGpbnd1u244dqP3sQEBJnQD/RVS
-Azgf4uorv3fpbosI0LE3LUufAYGBSJNJnskeKyudZkNkI5zGGDwVneH/cSkKT4OR
-ooeqcTBxKeMaMuXPVl30QahgNwWjfuTvl5OZ8orsQGGWIn5FhqYXsKkjEGxIOBOf
-vvlVQ0UbcR0N2+5F6Mb5GqrXZpIesn7jFJpkQKPU
-=97h7
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
- </sect1>
- </chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/es_ES.ISO8859-1/books/handbook/policies/chapter.sgml b/es_ES.ISO8859-1/books/handbook/policies/chapter.sgml
deleted file mode 100755
index d76ecbbe6d..0000000000
--- a/es_ES.ISO8859-1/books/handbook/policies/chapter.sgml
+++ /dev/null
@@ -1,392 +0,0 @@
-<!--
- El proyecto de documentaci&oacute;n de FreeBSD
-
- $FreeBSD$
--->
-
-<chapter id="policies">
- <title>Gu&iacute;as y pol&iacute;ticas del &aacute;rbol de c&oacute;digo fuente</title>
-
- <para><emphasis>Contribuci&oacute;n de &a.phk;.</emphasis></para>
-
- <para>Este cap&iacute;tulo documenta la pol&iacute;tica por la que se rige el
- &aacute;rbol de c&oacute;digo fuente de FreeBSD.</para>
-
- <sect1 id="policies-maintainer">
- <title><makevar>MAINTAINER</makevar> en Makefiles</title>
-
- <para>Junio 1996.</para>
-
- <para>Si una parte en particular de la distribuci&oacute;n FreeBSD es mantenida por
- una persona o grupo de personas, pueden comunicar este hecho al mundo a&ntilde;adiendo
- esta l&iacute;nea
-
- <programlisting>
-MAINTAINER= email-addresses</programlisting>
-
- a los <filename>Makefile</filename>s que cubren esta parte del &aacute;rbol de
- c&oacute;digo fuente.</para>
-
- <para>La sem&aacute;ntica de es como sigue:</para>
-
- <para>El mantenedor posee y es responsable de ese c&oacute;digo. Esto significa que
- &eacute;l es responsable de arreglar errores y responder reportes de problemas relacionados
- con esa parte del c&oacute;digo, y en el caso de contribuci&oacute;n de software, de revisar
- nuevas versiones, seg&uacute;n sea necesario.</para>
-
- <para>Los cambios en directorios que tienen un mantenedor definido deber&aacute;n ser
- enviados al mantenedor para ser revisados antes de ser incluidos.
- S&oacute;lo si el mantenedor no responde durante un periodo de tiempo inaceptable, a
- varios mensajes, ser&aacute; aceptable incluir cambios sin la revisi&oacute;n del
- mantenedor. Sin embargo, se sugiere que los cambios sean revisados por alguien m&aacute;s
- si es posible.</para>
-
- <para>No es aceptable, por supuesto, a&ntilde;adir una persona o grupo como mantenedor a
- menos que est&eacute;n de acuerdo en asumir esta tarea. Por otro lado, no tiene
- porqu&eacute; ser un committer, pudiendo ser f&aacute;cilmente un grupo de personas.</para>
- </sect1>
-
- <sect1>
- <title>Software de Contribuci&oacute;n</title>
-
- <para><emphasis>Contribucion de &a.phk; y &a.obrien;.</emphasis></para>
-
- <para>Junio 1996.</para>
-
- <para>Algunas partes de la distribuci&oacute;n de FreeBSD consisten en software
- que est&aacute; siendo mantenido activamente fuera del proyecto FreeBSD. Por razones
- hist&oacute;ricas, llamamos a esto software <emphasis>de contribuci&oacute;n</emphasis>.
- Algunos ejemplos son perl, gcc y patch.</para>
-
- <para>En los &uacute;ltimos dos a&ntilde;os, se han usado diferentes m&eacute;todos para
- tratar con este tipo de software y todos tienen algunas ventajas e inconvenientes. No
- ha emergido ning&uacute;n claro ganador.</para>
-
- <para>Ya que este es el caso, despu&eacute;s de algo de debate uno de estos
- m&eacute;todos ha sido seleccionado como el m&eacute;todo &ldquo;oficial&rdquo;
- y ser&aacute; requerido para futuras importaciones de este tipo de software.
- M&aacute;s a&uacute;n, se sugiere firmemente que el software de contribuci&oacute;n existente
- converja con este modelo en el futuro, ya que tiene ventajas significativas
- sobre el antiguo m&eacute;todo, incluyendo la habilidad de obtener f&aacute;cilmente
- diferencias relativas a la versi&oacute;n &ldquo;oficial&rdquo; del fuente por todos
- (a&uacute;n sin acceso cvs). Esto har&aacute; significativamente mas f&aacute;cil el
- devolver cambios a los desarrolladores primarios del software de contribuci&oacute;n.</para>
-
- <para>Finalmente, sin embargo, quedan las personas que est&aacute;n haciendo el
- trabajo. Si usar este modelo es particularmente incompatible con el paquete con el cual
- se trata, se pueden conceder excepciones a esta regla solo con la aprobaci&oacute;n del
- core team y con el consenso general de los otros desarrolladores. La habilidad de mantener
- el paquete en el futuro ser&aacute; un asunto clave en las decisiones.</para>
-
- <note>
- <para>Debido a algunas desafortunadas limitaciones de dise&ntilde;o con el formato de
- archivo RCS y el uso de las ramas "vendors" con el CVS, son
- <emphasis>fuertemente desaprobados</emphasis> cambios cosm&eacute;ticos, triviales y/o
- menores en archivos que est&eacute;n siendo seguidos por la rama "vendor".
- Los "arreglos de sintaxis" est&aacute;n incluidos expl&iacute;citamente aqu&iacute;
- bajo la categor&iacute;a "cosm&eacute;ticos" y deben ser evitados en archivos con
- revisi&oacute;n 1.1.x.x. El impacto que puede tener la modificaci&oacute;n de un
- s&oacute;lo car&aacute;cter en el repositorio puede ser bastante dram&aacute;tico.</para>
- </note>
-
- <para>El lenguaje de programaci&oacute;n <application>Tcl</application> ser&aacute; usado
- como un ejemplo sobre como este modelo trabaja:</para>
-
- <para><filename>src/contrib/tcl</filename> contiene los fuentes distribuidos
- por los mantenedores de este programa. Las partes que no son enteramente
- aplicables a FreeBSD pueden ser eliminadas. En el caso del Tcl, los subdirectorios
- <filename>mac</filename>, <filename>win</filename> y <filename>compat</filename> fueron
- eliminados antes de la importaci&oacute;n</para>
-
- <para><filename>src/lib/libtcl</filename> contiene s&oacute;lo un <filename>Makefile</filename>
- estilo bmake que usa las reglas est&aacute;ndar <filename>bsd.lib.mk</filename> makefile
- para producir la librer&iacute;a e instalar la documentaci&oacute;n.</para>
-
- <para><filename>src/usr.bin/tclsh</filename> contiene s&oacute;lo un
- <filename>Makefile</filename> estilo bmake que producir&aacute; e instalar&aacute;
- el programa <command>tclsh</command> y sus p&aacute;ginas man asociadas usando las
- reglas est&aacute;ndar <filename>bsd.prog.mk</filename></para>
-
- <para><filename>src/tools/tools/tcl_bmake</filename> contiene un par de shell scripts que
- pueden ser de ayuda cuando el software tcl necesita actualizaci&oacute;n. Estos no son
- parte integral o de instalaci&oacute;n del software.</para>
-
- <para>Lo importante aqu&iacute; es que el directorio
- <filename>src/contrib/tcl</filename> se crea de acuerdo a las reglas:
- se supone que debe contener las fuentes tal y como se distribuyen (en una rama vendor
- adecuada del CVS y sin expansi&oacute;n de claves RCS) con tan pocos cambios
- espec&iacute;ficos para FreeBSD como sea posible. La herramienta "easy-import"
- (importaci&oacute;n f&aacute;cil) en freefall ayudar&aacute; haciendo la
- importaci&oacute;n, pero si hay dudas acerca de como hacerlo, es imperativo que se pregunte
- primero y no hacerlo esperando que &ldquo;funcione&rdquo;. El CVS no perdona accidentes de
- importaci&oacute;n y se requiere un gran esfuerzo para arreglar grandes errores.</para>
-
- <para>Debido a las limitaciones de dise&ntilde;o previamente mencionadas de las
- ramas "vendor" del CVS, se requiere que los parches &ldquo;oficiales&rdquo;
- del vendedor sean aplicados a los fuentes originales de distribuci&oacute;n y el
- resultado reimportado otra vez en la rama vendor correspondiente. Los parches oficiales
- nunca deben ser usados en la versi&oacute;n disponible en el CVS de FreeBSD e integrados,
- ya que esto destruye la coherencia de la rama vendor y hace que la importaci&oacute;n de
- futuras versiones sea m&aacute;s complicada por la aparici&oacute;n de conflictos.
- </para>
-
- <para>Ya que muchos paquetes contienen archivos cuya intenci&oacute;n es la
- compatibilidad con otras arquitecturas y ambientes distintos a FreeBSD,
- es permisible eliminar partes del &aacute;rbol de distribuci&oacute;n que no son de
- inter&eacute;s para FreeBSD con el fin de ahorrar espacio. Los archivos que
- contienen notas de copyright y notas de la versi&oacute;n, informaci&oacute;n en algo
- aplicable a los archivos que quedan <emphasis>no</emphasis> deber&aacute;n ser eliminados.
- </para>
-
- <para>Si parece m&aacute;s f&aacute;cil, los <command>bmake</command>
- <filename>Makefile</filename>s pueden ser producidos automaticamente desde el &aacute;rbol
- de distribuci&oacute;n por alguna utilidad, algo que podr&iacute;a hacer
- aun m&aacute;s f&aacute;cil el actualizar a una nueva versi&oacute;n. Si esto es hecho,
- aseg&uacute;rese de revisar tales utilidades (como sea necesario) en el directorio
- <filename>src/tools</filename> junto con el mismo port para que est&eacute; disponible
- para los futuros mantenedores.</para>
-
- <para>En el nivel de directorio <filename>src/contrib/tcl</filename>
- debe ser a&ntilde;dido un archivo llamado <filename>FREEBSD-upgrade</filename>
- debiendo presentar cosas como:</para>
-
- <itemizedlist>
- <listitem>
- <para>Qu&eacute; archivos se han dejado fuera de la importaci&oacute;n</para>
- </listitem>
-
- <listitem>
- <para>De donde fue obtenida la distribuci&oacute;n original y/o el
- servidor oficial principal.</para>
- </listitem>
-
- <listitem>
- <para>D&oacute;nde enviar parches a los autores originales</para>
- </listitem>
-
- <listitem>
- <para>Una visi&oacute;n general de los cambios espec&iacute;ficos que se han hecho
- para FreeBSD.</para>
- </listitem>
- </itemizedlist>
-
- <para>Sin embargo, por favor no importar <filename>FREEBSD-upgrade
- (actualizaci&oacute;n)</filename> con los fuentes de contribuci&oacute;n. En su lugar,
- usar <command>cvs add FREEBSD-upgrade ; cvs ci</command> despu&eacute;s del prompt
- inicial. M&aacute;s abajo existe un ejemplo de sintaxis de
- <filename>src/contrib/cpio</filename>:</para>
-
- <programlisting>
-Este directorio contiene c&oacute;digos fuente virgen de los archivos originales de
-distribuci&oacute;n en una rama "vendor". No tratar, bajo ninguna circunstancia,
-de actualizar los archivos en este directorio con parches y un cvs commit.
-Nuevas versiones o versiones oficiales de parches deben ser importadas.
-Por favor recuerdar importar con "-ko" para prevenir que el CVS corrompa
-el Id del RCS de algun vendor.
-
-Para la importaci&oacute;n del GNU cpio 2.4.2, se eliminaron los siguientes archivos:
-
- INSTALL cpio.info mkdir.c
- Makefile.in cpio.texi mkinstalldirs
-
-Para actualizar a una versi&oacute;n m&aacute;s nueva de cpio, cuando est&eacute; disponible:
- 1. Descomprimir la nueva versi&oacute;n en un directorio vac&iacute;o.
- [No hacer NINGUN cambio a los archivos.]
-
- 2. Eliminar los archivos listados arriba y cualquier otro que no se relacione
- con FreeBSD.
-
- 3. Usar el comando:
- cvs import -ko -m 'Virgin import of GNU cpio v&lt;version&gt;' \
- src/contrib/cpio GNU cpio_&lt;version&gt;
-
- Por ejemplo, para importar la versi&oacute;n 2.4.2, usar:
- cvs import -ko -m 'Virgin import of GNU v2.4.2' \
- src/contrib/cpio GNU cpio_2_4_2
-
- 4. Seguir las instrucciones del paso 3 para resolver cualquier conflicto entre
- cambios locales de FreeBSD y la nueva versi&oacute;n.
-
-NO desviarse, bajo ninguna circunstancia, de este procedimiento.
-
-Para hacer cambios locales al cpio, simplemente aplicar el patch y commit a la rama
-principal (tambi&eacute;n conocida como HEAD). Nunca hacer cambios locales
-en la rama GNU.
-
-Todos los cambios locales deber&iacute;an ser enviados a "cpio@gnu.ai.mit.edu" para
-su inclusi&oacute;n en la nueva versi&oacute;n release.
-
-obrien@FreeBSD.org - 30 March 1997</programlisting>
- </sect1>
-
- <sect1 id="policies-encumbered">
- <title>Archivos "adicionales" (encumbered)</title>
-
- <para>Ocasionalmente podr&iacute;a ser necesario incluir un archivo "adicional" en el
- c&oacute;digo fuente de FreeBSD. Por ejemplo, si un dispositivo requiere que una
- peque&ntilde;a pieza de c&oacute;digo binario sea cargada antes de que el dispositivo
- funcione, y no tenemos los fuentes de ese c&oacute;digo, entonces se dice que el archivo
- binario es "encumbered".
- Las siguientes pol&iacute;ticas se aplican al incluir archivos encumbered en
- en el &aacute;rbol fuente FreeBSD.</para>
-
- <orderedlist>
- <listitem>
- <para>Cualquier archivo que sea interpretado o ejecutado por la CPU del
- sistema y no en formato fuente es encumbered.</para>
- </listitem>
-
- <listitem>
- <para>Cualquier archivo con una licencia m&aacute;s restrictiva que BSD o GNU
- es encumbered.</para>
- </listitem>
-
- <listitem>
- <para>Un archivo que contiene datos binarios descargables para que el
- hardware lo use no es encumbered, a menos que (1) o (2) se apliquen
- a &eacute;l. Debe ser guardado en un formato ASCII neutral a la arquitectura
- (se recomienda file2c o uuencodeado).</para>
- </listitem>
-
- <listitem>
- <para>Cualquier archivo encumbered requiere aprobaci&oacute;n espec&iacute;fica del
- <link linkend="staff-core">Core team</link> antes de ser a&ntilde;adido al
- repositorio CVS.</para>
- </listitem>
-
- <listitem>
- <para>Los archivos encumbered van en <filename>src/contrib</filename>
- o <filename>src/sys/contrib</filename>.</para>
- </listitem>
-
- <listitem>
- <para>El m&oacute;dulo entero deber&iacute;a ser mantenido en su conjunto. No hay excusa en
- separarlo, a menos que haya intercambio de c&oacute;digo con c&oacute;digo no encumbered.
- </para>
- </listitem>
-
- <listitem>
- <para>Los archivos objeto son nombrados
- <filename><replaceable>arch</replaceable>/<replaceable>filename</replaceable>.o.uu></filename>
- .</para>
- </listitem>
-
- <listitem>
- <para>Archivos del Kernel:</para>
-
- <orderedlist>
- <listitem>
- <para>Siempre deben ser referenciados en <filename>conf/files.*</filename> (para
- simplicidad del build).</para>
- </listitem>
-
- <listitem>
- <para>Siempre deber&iacute;a estar en <filename>LINT</filename>, pero el <link
- linkend="staff-core">Core team</link> decide caso por caso si
- deber&iacute;a ser comentado o no. El <link
- linkend="staff-core">Core team</link> puede, por supuesto, cambiar
- su opini&oacute;n m&aacute;s adelante.</para>
- </listitem>
-
- <listitem>
- <para>El <link linkend="staff-who">Ingeniero de Release</link>
- decide si va o no a la release.</para>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>Archivos de usuario:</para>
-
- <orderedlist>
- <listitem>
- <para>El <link linkend="staff-core">Core team</link> decide si
- el c&oacute;digo deber&iacute;a ser parte de <command>make world</command>.</para>
- </listitem>
-
- <listitem>
- <para>El <link linkend="staff-who">Ingeniero de la Release</link>
- decide si va a la release.</para>
- </listitem>
- </orderedlist>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1 id="policies-shlib">
- <title>Librer&iacute;as compartidas</title>
-
- <para><emphasis>Contribuido por &a.asami;, &a.peter;, y &a.obrien; 9
- Diciembre 1996.</emphasis></para>
-
- <para>Si se est&aacute; a&ntilde;adiendo soporte para librer&iacute;as compartidas a un puerto u
- otra pieza de software que no tiene uno, los n&uacute;meros de versi&oacute;n deben
- seguir estas reglas. Generalmente, los n&uacute;meros resultantes no tendr&aacute;n nada
- que ver con la versi&oacute;n release del software.</para>
-
- <para>Los tres principios de la construcci&oacute;n de librer&iacute;as compartidas son:</para>
-
- <itemizedlist>
- <listitem>
- <para>Comenzando desde <literal>1.0</literal></para>
- </listitem>
-
- <listitem>
- <para>Si hay un cambio que sea compatible con versiones anteriores,
- eliminar el n&uacute;mero menor</para>
- </listitem>
-
- <listitem>
- <para>Si hay un cambio incompatible, quitar el n&uacute;mero mayor</para>
- </listitem>
- </itemizedlist>
-
- <para>Por ejemplo, funciones a&ntilde;adidas y soluci&oacute; de errores resultan en la
- eliminaci&oacute;n del numero de versi&oacute;n menor, mientras que las funciones borradas,
- sintaxis cambiada de llamada de funci&oacute;n, etc, forzar&aacute;n que el n&uacute;mero
- de versi&oacute;n mayor cambie.</para>
-
- <para>Usar los n&uacute;meros de versi&oacute;n de la forma mayor.menor
- (<replaceable>x</replaceable>.<replaceable>y</replaceable>). Nuestro
- lincador din&aacute;mico no gestiona correctamente n&uacute;meros de versi&oacute;n
- de la forma <replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>
- . Cualquier n&uacute;mero de versi&oacute;n despu&eacute;s de <replaceable>y</replaceable>
- (es decir, el tercer d&iacute;gito) es totalmente ignorado cuando
- se comparan n&uacute;meros de versi&oacute;n de librer&iacute;as compartidas
- para decidir con que librer&iacute;a enlazar. Dadas 2 librer&iacute;as compartidas
- que difieren s&oacute;lo en la &ldquo;micro&rdquo; revisi&oacute;n,
- <command>ld.so</command> enlazar&aacute; con la mas alta. Es decir:
- si se enlaza con <filename>libfoo.so.3.3.3</filename>, el lincador
- s&oacute;lo reconoce <literal>3.3</literal> en los encabezados,
- y enlazar&aacute; con cualquiera que comience con <replaceable>libfoo.so.3</replaceable>.
- <replaceable>(cualquier cosa &gt;=3)</replaceable>.<replaceable>(el m&aacute;s alto
- disponible)</replaceable>.</para>
- <note>
- <para><command>ld.so</command> siempre usar&aacute; la revisi&oacute;n
- &ldquo;menor&rdquo; m&aacute;s alta. Es decir: usar&aacute;
- <filename>libc.so.2.2</filename> en preferencia a
- <filename>libc.so.2.0</filename>, aun si el programa estaba
- inicialmente enlazado con <filename>libc.so.2.0</filename>.</para>
- </note>
-
- <para>Para librer&iacute;as no portables, es tambi&eacute;n nuestra pol&iacute;tica cambiar
- el n&uacute;mero de versi&oacute;n de librer&iacute;a compartida solo una vez entre releases.
- Cuando se hace un cambio a una librer&iacute;a del sistema que requiere
- que se quite el n&uacute;mero de versi&oacute;n, revisar los logs commit del
- <filename>Makefile</filename>. Es responsabilidad del miembro del commit asegurarse de que
- el primer cambio desde la release har&aacute; que se actualice el n&uacute;mero de versi&oacute;n
- de la librer&iacute;a compartida en el <filename>Makefile</filename>, y cualquier
- subsecuente cambio no lo har&aacute;.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml b/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml
deleted file mode 100755
index 814a82ac73..0000000000
--- a/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml
+++ /dev/null
@@ -1,2091 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="ports">
- <title>Instalando Aplicaciones: La colecci&oacute;n de Ports</title>
-
- <para><emphasis>Contribuido por &a.jraynard;.</emphasis></para>
-
- <para>La colecci&oacute;n de Ports de FreeBSD te permite compilar e instalar
- una gran cantidad de programas con el m&iacute;nimo esfuerzo.</para>
-
- <para>Debido a las diferencias entre los est&aacute;ndars abiertos, conseguir
- que un programa funcione en una versi&oacute;n diferente de Unix puede ser
- tedioso y complicado, como debe saber todo aquel que lo haya intentado.
- Tendr&aacute;s suerte si el programa que quieres compila limpiamente,
- instala todos los componentes donde debe instalarlos y funciona todo
- correctamente al primer intento.</para>
-
- <para>Algunas distribuciones de software han intentado solucionar este
- problema incluyendo unos scripts de configuraci&oacute;n. Algunos de estos
- scripts son muy inteligentes, pero tienen tendencia a anunciar que tu
- sistema es algo que nunca has oido y hacen preguntas que suenan a un
- ex&aacute;men final de programaci&oacute;n en Unix.</para>
-
- <para>Afortunadamente, con la colecci&oacute;n de Ports, todo el trabajo
- duro ya est&aacute; hecho, y solo tienes que teclear el comando
- <command>make install</command> para tener un programa perfectamente
- instalado y en funcionamiento.</para>
-
- <sect1>
- <title>&iquest;Porqu&eacute; tener una Colecci&oacute;n de Ports?</title>
-
- <para>El sistema base de FreeBSD incluye una gran variedad de
- herramientas y utilidades de sistema, pero muchos de los programas
- populares no est&aacute;n en la distribuci&oacute;n base del sistema,
- por buenas razones:</para>
-
- <orderedlist>
- <listitem>
- <para>Programas con los que algunos usuarios no puede vivir sin ellos y
- otros usuarios ni los conocen, como cierto editor basado en Lisp.</para>
- </listitem>
-
- <listitem>
- <para>Programas demasiado especializados para ser incluidos en la
- distribuci&oacute;n base del sistema (CAD, bases de datos, etc).</para>
- </listitem>
-
- <listitem>
- <para>Programas que se pueden incluir en la categor&iacute;a
- &ldquo;Tengo que mirarlo cuando tenga un rato libre&rdquo;
- (algunos lenguajes, por ejemplo).</para>
- </listitem>
-
- <listitem>
- <para>Programas que son demasiado divertidos para ser incluidos en
- un sistema operativo serio como FreeBSD ;-)</para>
- </listitem>
-
- <listitem>
- <para>Por muchos programas que se incluyesen en el sistema base, la
- gente siempre quiere m&aacute;s, y se debe crear una l&iacute;nea
- de separaci&oacute;n en alg&uacute;n momento (de otra manera, las
- distribuciones de FreeBSD ser&iacute;n enormes).</para>
- </listitem>
- </orderedlist>
-
- <para>Obviamente no ser&iacute;a razonable que cada usuario se portase
- manualmente sus programas favoritos (sin mencionar la enorme cantidad de
- trabajo duplicado), as&iacute; que el proyecto FreeBSD ha usado un
- ingenioso sistema que mediante herramientas est&aacute;ndar permite
- automatizar todo el proceso.</para>
-
- <para>Esta es una excelente ilustraci&oacute;n de como el
- &ldquo;Unix way&rdquo; trabaja en la pr&aacute;tica combinando una serie
- de simples pero muy flexibles herramientas y consiguiendo algo muy
- potente.</para>
- </sect1>
-
- <sect1>
- <title>&iquest;C&oacute;mo funciona la Colecci&oacute;n de Ports?</title>
-
- <para>Los programas en Internet se suelen distribuir como un <link
- linkend="ports-tarball">tarball</link> consistente en un Makefile y el
- c&oacute;digo fuente del programa, incluyendo algunas instrucciones (las
- cuales no siempre son tan instructivas como debieras), y un script de
- configuraci&oacute;n.</para>
-
- <para>El escenario habitual es que bajas el tarball v&iacute;a FTP, lo
- extraes en alg&uacute;n directorio, lees las instrucciones, haces los
- cambios que parezcan necesarios, ejecutas el script de configuraci&oacute;n
- y usas el programa <command>make</command> para compilar e instalar el
- programa desde el c&oacute;digo fuente.</para>
-
- <para>Los ports de FreeBSD siguen usando el mecanismo del tarball, pero
- usan un <link linkend="ports-skeleton">esqueleto</link> en el que guardan
- la informaci&oacute;n necesaria para que el programa funcione correctamente
- en FreeBSD. Los ports tambi&eacute;n tienen su propio y personalizado
- <link linkend="ports-makefile">Makefile</link> para practicamente todos
- los ports puedan ser compilados de la misma manera.</para>
-
- <para>Si miras el esqueleto de un port (ya sea <ulink
- URL="file://localhost/usr/ports/devel/ElectricFence">en tu sistema
- FreeBSD</ulink> o <ulink
- URL="ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/devel/ElectricFence">en
- el servidor FTP</ulink>) y esperas encontrar todo tipo de combinaciones
- de ciencia avanzada, puede que te decepciones, ya que s&oacute;lo
- encontrar&aacute;s uno o dos ficheros y directorios de lo m&aacute;s
- habitual. (En un momento veremos como <link
- linkend="ports-getting">obtener un port</link>).</para>
-
- <para>&ldquo;&iquest;C&oacute;mo es posible que esto pueda hacer algo?
- &rdquo; Oigo como lloras. &ldquo;No hay c&oacute;digo fuente!&rdquo;</para>
-
- <para>Lo creas o no, gentil lector, todo quedar&aacute; entendido (o eso
- espero). Veamos que pasa si intentamos instalar un port. He elegido el
- programa <application>ElectricFence</application>, una &uacute;til
- herramienta para desarrolladores, ya que el esqueleto es m&aacute;s
- claro que muchos otros.</para>
-
- <note>
- <para>Si intentas ejecutar esto, necesitas estar como root.</para>
- </note>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/devel/ElectricFence</userinput>
-&prompt.root; <userinput>make install</userinput>
-&gt;&gt; Checksum OK for ElectricFence-2.0.5.tar.gz.
-===&gt; Extracting for ElectricFence-2.0.5
-===&gt; Patching for ElectricFence-2.0.5
-===&gt; Applying FreeBSD patches for ElectricFence-2.0.5
-===&gt; Configuring for ElectricFence-2.0.5
-===&gt; Building for ElectricFence-2.0.5
-[lots of compiler output...]
-===&gt; Installing for ElectricFence-2.0.5
-===&gt; Warning: your umask is "0002". If this is not desired, set it to
- an appropriate value and install this port again by ``make reinstall''.
-install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.a /usr/local/lib
-install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.3 /usr/local/man/man3
-===&gt; Compressing manual pages for ElectricFence-2.0.5
-===&gt; Registering installation for ElectricFence-2.0.5</screen>
-
- <para>Para evitar confusiones, he borrado todas las l&iacute;neas
- correspondientes a la compilaci&oacute;n del programa.</para>
-
- <para>Si has realizado la instalaci&oacute;n de este port, habr&aacute;s
- obtenido algo as&iacute; en pantalla:</para>
-
- <screen id="ports-fetch">&prompt.root; <userinput>make install</userinput>
-&gt;&gt; ElectricFence-2.0.5.tar.gz doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from ftp://ftp.doc.ic.ac.uk/Mirrors/sunsite.unc.edu/pub/Linux/devel/lang/c/.</screen>
-
- <para>El programa <command>make</command> notifica que no tienes una copia
- en local del c&oacute;digo fuente e intenta bajarlo por FTP. En el
- ejemplo, ya ten&iacute;a el c&oacute;digo en el ordenador, por lo que no
- ha sido necesario obtenerlo de Internet.</para>
-
- <para>Vayamos revisando que ha hecho el programa <command>make</command>
- </para>
-
- <procedure>
- <step>
- <para>Localizar el <link
- linkend="ports-tarball">tarball</link> con el c&oacute;digo fuente.
- Si no est&aacute; disponible localmente, intenta obtenerlo desde
- un servidor FTP.</para>
- </step>
-
- <step>
- <para>Ejecutar un test de <link linkend="ports-checksum">checksum</link>
- para asegurar que el tarball del c&oacute;digo fuente es correcto.</para>
- </step>
-
- <step>
- <para>Extraer el tarball en un directorio temporal.</para>
- </step>
-
- <step>
- <para>Aplicar todos los <link linkend="ports-patch">parches</link>
- necesarios para que el c&oacute;digo fuente compile y funcione bajo
- FreeBSD.</para>
- </step>
-
- <step>
- <para>Ejecutar cualquier script de configuraci&oacute;n requerido por
- el proceso de compillaci&oacute;n, adem&aacute;s de responder
- correctamente a cualquiera de las preguntas realizadas por &eacute;ste.
- </para>
- </step>
-
- <step>
- <para>(Finalmente!) Compilar el c&oacute;digo.</para>
- </step>
-
- <step>
- <para>Instalar los ejecutables del programa y otros archivos de
- soporte, p&aacute;ginas man, etc, bajo la jerarqu&iacute;a
- <filename>/usr/local</filename>, donde no se mezclar&aacute;n con los
- programas de sistema. Esto tambi&eacute;n asegura que todos los ports
- que instales estar&aacute;n en el mismo lugar, evitando que queden
- repartidos por diferentes lugares del disco.</para>
- </step>
-
- <step>
- <para>Registrar la instalaci&oacute;n en una base de datos. Esto
- significa que, si no te gusta el programa, puedes <link
- linkend="ports-remove">borrar</link> todos sus programas y archivos
- de tu sistema.</para>
- </step>
- </procedure>
-
- <para>Vuelve a mirar la salida del programa <command>make</command> antes
- mostrada e intenta localizar los pasos descritos. Y si no estabas impresionado
- antes, deber&iacute;as estarlo ahora.</para>
-</sect1>
-
- <sect1 id="ports-getting">
- <title>Obteniendo un Port de FreeBSD</title>
-
- <para>Hay dos maneras de obtener un port de FreeBSD para un programa. Uno
- requiere el <link linkend="ports-cd">CDROM de FreeBSD</link>, y el otro
- requiere una <link linkend="ports-inet">conexi&oacute;n a Internet</link>.
- </para>
-
- <sect2 id="ports-cd">
- <title>Compilar los PORTS desde CDROM</title>
-
- <para>Asumiendo que tu CDROM de FreeBSD est&aacute; en el lector y montado
- en <filename>/cdrom</filename> (y <emphasis>must</emphasis> estar
- montado en <filename>/cdrom</filename>), deber&iacute;s poder compilar
- toda la colecci&oacute;n de ports sin problemas, ya que &eacute;sta
- encontrar&iacute;a los tarballs en
- <filename>/cdrom/ports/distfiles/</filename> (si existen all&iacute;)
- en lugar de obtenerlos de Internet.</para>
-
- <para>Otra manera de hacer esto, si s&oacute;lo quieres usar los
- esqueletos del CDROM, es poner la variables del fichero
- <filename>/etc/make.conf</filename> de la siguiente manera:</para>
-
- <programlisting>
-PORTSDIR= /cdrom/ports
-DISTDIR= /tmp/distfiles
-WRKDIRPREFIX= /tmp</programlisting>
-
- <para>Substituye <literal>/tmp</literal> por cualquier directorio en
- el que tengas suficiente espacio. Entonces, entra en el subdirectorio
- apropiado bajo <filename>/cdrom/ports</filename> y teclea
- <command>make install</command> como hasta ahora.
- <makevar>WRKDIRPREFIX</makevar> har&aacute; que el port sea compilado
- bajo <filename>/tmp/cdrom/ports</filename>; por ejemplo,
- <filename>games/oneko</filename> ser&aacute; compilado bajo
- <filename>/tmp/cdrom/ports/games/oneko</filename>.</para>
-
- <note>
- <para>Hay algunos ports para los que no podemos dar el c&oacute;digo
- fuente original en el CDROM debido a limitaciones de licencia. Es estos
- casos, tendr&aacute;s que mirar en la secci&oacute;n <link
- linkend="ports-inet">Compilando los ports usando una conexi&oacute;n a
- Internet.</link></para>
- </note>
- </sect2>
-
- <sect2 id="ports-inet">
- <title>Compilando los Ports desde Internet</title>
-
- <para>Si no tienes CDROM o quieres estar seguro de instalar la
- &uacute;ltima versi&oacute;n del port que te interesa, necesitar&aacute;s
- bajarte el <link linkend="ports-skeleton">esqueleto</link> de ese port.
- </para>
-
- <para>Primero, si est&aacute;s usando una versi&oacute;n release de
- FreeBSD, aseg&uacute;rate de tener instalado el kit de actualizaci&oacute;n
- apropiado para tu release. Para conocer el kit apropiado, mira en
- <ulink url="http://www.freebsd.org/ports/">la p&aacute;gina web de
- ports</ulink>. Estos packages incluyen ficheros que han sido actualizados
- desde la release y que ser&aacute;n necesarios para compilar los nuevos
- ports.</para>
-
- <para>La clave para los esqueletos es que el servidor FTP de FreeBSD puede
- crear <link linkend="ports-tarball">tarballs</link> al momento.
- Aqu&iacute; tienes c&oacute;mo trabaja, usando como ejemplo el programa
- gnats en el directorio de bases de datos (el texto entre corchetes son
- comentarios. No los teclees si intentas ejecutar el ejemplo):</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>mkdir databases</userinput>
-&prompt.root; <userinput>cd databases</userinput>
-&prompt.root; <userinput>ftp ftp.freebsd.org</userinput>
-[log in as `ftp' and give your email address when asked for a
-password. Remember to use binary (also known as image) mode!]
-<prompt>&gt;</prompt> <userinput>cd /pub/FreeBSD/ports/ports/databases</userinput>
-<prompt>&gt;</prompt> <userinput>get gnats.tar</userinput>
-[tars up the gnats skeleton for us]
-<prompt>&gt;</prompt> <userinput>quit</userinput>
-&prompt.root; <userinput>tar xf gnats.tar</userinput>
-[extract the gnats skeleton]
-&prompt.root; <userinput>cd gnats</userinput>
-&prompt.root; <userinput>make install</userinput>
-[build and install gnats]</screen>
-
- <para>&iquest;Qu&eacute; ha ocurrido aqu&iacute;?. Hemos conectado con
- el servidor FTP de la manera habitual y entrado en el subdirectorio
- <filename>databases</filename>. Al enviar el comando
- <command>get gnats.tar</command>, el servidor FTP ha empaquetado en
- formato <link linkend="ports-tarball">tarred</link> el directorio
- gnats.</para>
-
- <para>A continuaci&oacute;n hemos extraido el esqueleto de gnats y
- entrado en el directorio para compilar el port. Como hemos explicado
- <link linkend="ports-fetch">anteriormente</link>, el programa
- <command>make</command> ha detectado que el c&oacute;digo fuente no
- estaba disponible localmente y lo ha bajado de Internet antes de
- extraerlo, aplicar los parches necesarios, compilarlo e instalarlo.</para>
-
- <para>Intentemos ahora algo m&aacute;s ambicioso. En lugar de obtener el
- esqueleto de un simple port, obtengamos todos los de un directorio, por
- ejemplo los esqueletos de todas las bases de datos de la colecci&oacute;n
- de ports. El proceso es muy parecido:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>ftp ftp.freebsd.org</userinput>
-[log in as `ftp' and give your email address when asked for a
-password. Remember to use binary (also known as image) mode!]
-<prompt>&gt;</prompt> <userinput>cd /pub/FreeBSD/ports/ports</userinput>
-<prompt>&gt;</prompt> <userinput>get databases.tar</userinput>
-[tars up the databases directory for us]
-<prompt>&gt;</prompt> <userinput>quit</userinput>
-&prompt.root; <userinput>tar xf databases.tar</userinput>
-[extract all the database skeletons]
-&prompt.root; <userinput>cd databases</userinput>
-&prompt.root; <userinput>make install</userinput>
-[build and install all the database ports]</screen>
-
- <para>Con media docena de sencillos comandos, tenenemos instalada toda
- una serie de programas de bases de datos en nuestra m&aacute;quina
- FreeBSD. Todo lo que hemos hecho diferente de la instalaci&oacute;n de
- un s&oacute;lo port ha sido bajarnos todo un directorio y compilarlo
- todo de una sola vez. Impresionante, &iquest;no?.</para>
-
- <para>Si tienes pensado instalar muchos ports, es buena idea bajarse
- la colecci&oacute;n de ports completa.</para>
- </sect2>
- </sect1>
-
- <sect1 id="ports-skeleton">
- <title>Esqueletos</title>
-
- <para>Un grupo de hackers compulsivos que ha olvidado comer en un intento
- de llegar a un punto prefijado?. No, un esqueleto aqu&iacute; es la
- expresi&oacute;n m&iacute;nima que incluye todo lo necesario para que los
- ports realicen su m&aacute;gico trabajo.</para>
-
- <sect2 id="ports-makefile">
- <title><filename>Makefile</filename></title>
-
- <para>El componente m&aacute;s importante del esqueleto es el Makefile.
- Este contiene diferentes declaraciones que especifican c&oacute;mo
- debe ser compilado e instalado un port. Aqu&iacute; est&aacute; el
- Makefile para el port ElectricFence:</para>
-
- <programlisting>
-# New ports collection makefile for: Electric Fence
-# Version required: 2.0.5
-# Date created: 13 November 1997
-# Whom: jraynard
-#
-# &#36;Id&#36;
-#
-
-DISTNAME= ElectricFence-2.0.5
-CATEGORIES= devel
-MASTER_SITES= ${MASTER_SITE_SUNSITE}
-MASTER_SITE_SUBDIR= devel/lang/c
-
-MAINTAINER= jraynard@freebsd.org
-
-MAN3= libefence.3
-
-do-install:
- ${INSTALL_DATA} ${WRKSRC}/libefence.a ${PREFIX}/lib
- ${INSTALL_MAN} ${WRKSRC}/libefence.3 ${PREFIX}/man/man3
-
-.include &lt;bsd.port.mk&gt;</programlisting>
-
- <para>Las l&iacute;neas que empiezan con el s&iacute;mbolo &quot;#&quot;
- son comentarios para facilitar las cosas a los lectores humanos (como
- en la mayor&iacute;a de los scripts en Unix).</para>
-
- <para><literal>DISTNAME</literal> especifica el nombre del <link
- linkend="ports-tarball">tarball</link>, pero sin la extensi&oacute;n.
- </para>
-
- <para><literal>CATEGORIES</literal> indica que tipo de programa es. En
- este caso, una utilidad para desarrolladores. Mira en la secci&oacute;n
- <link linkend="porting-categories">categor&iacute;as</link> de este
- handbook para ver una lista completa.</para>
-
- <para><literal>MASTER_SITES</literal> es la URL(s) del servidor FTP
- principal, usado para obtener el <link
- linkend="ports-tarball">tarball</link> si no est&aacute; disponible
- en el sistema local. Este servidor se considera fiable, y normalmente es
- desde el que se distribuye de manera oficial el programa.</para>
-
- <para><literal>MAINTAINER</literal> es la direcci&oacute;n de email de
- la persona responsable de actualizar el esqueleto, si, por ejemplo,
- aparece una nueva versi&oacute;n del programa.</para>
-
- <para>Pasando por alto las siguientes l&iacute;neas, la l&iacute;nea
- <literal>.include &lt;bsd.port.mk&gt;</literal> indica que las otras
- declaraciones o comandos necesarios para compilar el port est&aacute;n
- en un fichero est&aacute;ndar llamado <filename>bsd.port.mk</filename>.
- Como &eacute;stas son las mismas para todos los ports, no hay necesidad
- de duplicarlos en todos los ports, as&iacute; que se mantienen en un
- solo fichero.</para>
-
- <para>Este no es el lugar para entrar en detalle sobre el funcionamiento
- del Makefile; es suficiente con decir que la l&iacute;nea que comienza
- con <literal>MAN3</literal> asegura que la p&aacute;gina man de
- ElectricFence sea compilada despu&eacute;s de la instalaci&oacute;n, para
- ayudar a conservar tu preciado espacio en disco. El port original no
- conten&iacute;a el objeto <maketarget>install</maketarget>, as&iacute; que
- las tres l&iacute;neas a partir de <maketarget>do-install</maketarget>
- aseguran que los ficheros producidos por este port sean instalados
- en el lugar correcto.</para>
- </sect2>
-
- <sect2>
- <title>El directorio <filename>files</filename></title>
-
- <para>El fichero que contiene el <link
- linkend="ports-checksum">checksum</link> del port se llama
- <filename>md5</filename>, ya que se usa el algoritmo MD5 para comprobar
- el checksum de los ports. Est&aacute; en el directorio llamado
- <filename>files</filename>.</para>
-
- <para>Este directorio puede contener otros ficheros necesarios para
- compilar el port y que no pueden situarse en ningun otro lugar.</para>
- </sect2>
-
- <sect2>
- <title>El directorio <filename>patches</filename></title>
-
- <para>Este directorio contiene los <link
- linkend="ports-patch">patches</link> necesarios para hacer
- que todo funcione correctamente bajo FreeBSD.</para>
- </sect2>
-
- <sect2>
- <title>El directorio <filename>pkg</filename></title>
-
- <para>Este programa contiene tres archivos muy comunes:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>COMMENT</filename> &mdash; una descripci&oacute;n
- muy corta del programa.</para>
- </listitem>
-
- <listitem>
- <para><filename>DESCR</filename> &mdash; una descripci&oacute;n
- m&aacute;s detallada.</para>
- </listitem>
-
- <listitem>
- <para><filename>PLIST</filename> &mdash; una lista de todos los
- archivos que ser&aacute;n creados cuando el programa est&eacute;
- instalado.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="ports-troubleshooting">
- <title>&iquest;Qu&eacute; hacer cuando un port no funciona?</title>
-
- <para>Oh, puedes hacer una de estas cuatro (4) cosas:</para>
-
- <orderedlist>
- <listitem>
- <para>Solucionarlo t&uacute; mismo. Los detalles t&eacute;cnicos de como
- trabajan los ports se pueden encontrar en <link
- linkend="porting">Portando aplicaciones.</link></para>
- </listitem>
-
- <listitem>
- <para>Quejarte. <emphasis>S&oacute;lo</emphasis> hacerlo por email.
- Env&iacute; el mail a la direcci&oacute;n &a.ports; y por favor,
- indica el nombre/versi&oacute;n del port, d&oacute;nde obtuviste el
- c&oacute;digo fuente y cual ha sido el texto de error.</para>
- </listitem>
-
- <listitem>
- <para>Olvidarlo. Este el sistema m&aacute;s f&aacute;cil para alguno
- de los pocos ports que puedan clasificarse como esenciales.</para>
- </listitem>
-
- <listitem>
- <para>Obtener el package compilado desde un servidor FTP. La
- colecci&oacute;n principal de packages est&aacute; en el servidor
- principal de FreeBSD en el directorio <ulink
- URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">
- packages</ulink>, pero por favor, mira primero en tu mirror local.
- Estos programas suelen dar menos problemas que intentar compilar el
- c&oacute;digo fuente y es, sobre todo, mucho m&aacute;s r&aacute;pido.
- Usa el programa &man.pkg.add.1; para instalar un package en tu
- sistema.</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1>
- <title>Algunas Preguntas y Respuestas</title>
-
- <itemizedlist>
- <listitem>
- <para>P. Pensaba que esto iba a ser una discusi&oacute;n sobre modems
- </para>
-
- <para>R. Ah. Debes estar pensando en los puertos serie que hay en la
- parte trasera de tu ordenador. Aqu&iacute; usamos la palabra
- &ldquo;port&rdquo; para definir el resultado de &ldquo;portar&rdquo;
- un programa de una versi&oacute;n de Unix a otra. (Desafortunadamente
- es un mal h&aacute;bito de los inform&aacute;ticos el usar la misma
- palabra para referirse a cosas completamente diferentes).</para>
- </listitem>
-
- <listitem>
- <para>P. Pensaba que usabais los packages para instalar los programas
- extras</para>
-
- <para>R. S&iacute;, esa es la manera m&aacute;s r&aacute;pida y
- f&aacute;cil de instalarlos.</para>
- </listitem>
-
- <listitem>
- <para>P. Entonces, &iquest;Porqu&eacute; usar los ports?</para>
-
- <para>R. Por diferentes razones:</para>
-
- <orderedlist>
- <listitem>
- <para>Las condiciones de la licencia de algunos programas requieren
- que sean distribuidos como c&oacute;digo fuente y no en formato
- binario.</para>
- </listitem>
-
- <listitem>
- <para>Algunas personas no conf&iacute;an en las distribuciones
- binarias. Al menos, con el c&oacute;digo fuente puedes (en
- teor&iacute;a) repasarlo y detectar problemas potenciales
- t&uacute; mismo.</para>
- </listitem>
-
- <listitem>
- <para>Si tienes algunos parches locales, necesitas el c&oacute;digo
- fuente para poder a&ntilde;adirlos t&uacute; mismo.</para>
- </listitem>
-
- <listitem>
- <para>Posiblemente tengas opiniones diferentes a las de otros
- usuarios en lo que respecta a las opciones de optimizaci&oacute;n
- en la compilaci&oacute;n, creaci&oacute;n de versiones de debug,
- etc.</para>
- </listitem>
-
- <listitem>
- <para>A algunos usuarios les gusta tener el c&oacute;digo fuente
- para poder leerlo, retocarlo, destrozarlo (dentro de los
- t&eacute;rminos de la licencia, claro), y cosas as&iacute;.</para>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para><anchor id="ports-patch"> P. &iquest;Qu&eacute; es un patch
- (parche)?</para>
-
- <para>R. Un parche es un peque&ntilde;o fichero (normalmente) que
- especifica como pasar de una versi&oacute;n de un archivo a otra.
- Contiene texto que especifica cosas como &ldquo;borrar l&iacute;nea
- 23&rdquo;, &ldquo;a&ntilde;adir estas dos l&iacute;neas despu&eacute;s
- de la l&iacute;nea 468&rdquo; o &ldquo;cambia la l&iacute;nea 197
- por esta&rdquo;. Tambi&eacute;n se conoce como &ldquo;diff&rdquo; ya
- que se genera por un programa llamado as&iacute;.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="ports-tarball"> P. Qu&eacute; es un tarball?</para>
-
- <para>R. Es un archivo terminado en <filename>.tar</filename> o
- <filename>.tar.gz</filename> (con variaciones como
- <filename>.tar.Z</filename>, o tambi&eacute;n <filename>.tgz</filename>
- si intentas adecuar el nombre del archivo a un sistema de archivos
- DOS).</para>
-
- <para>B&aacute;sicamente, es un &aacute;rbol de directorios que ha
- sido archivado en un solo fichero (<filename>.tar</filename>) y
- opcionalmente comprimido (<filename>.gz</filename>). Esta
- t&eacute;cnica se us&oacute; originalmente para
- <emphasis>T</emphasis>ape <emphasis>AR</emphasis>chives (archivos de
- cinta) y de aqu&iacute; el nombre <command>tar</command>, pero ahora
- es de uso general en la distribuci&oacute;n deil c&oacute;digo
- fuente de programas a trav&eacute;s de Internet.</para>
-
- <para>Puedes ver que archivos hay en ellos, o bi&eacute;n extraerlos
- t&uacute; mismo, usando el programa est&aacute;ndar de Unix tar,
- incluido en el sistema base de FreeBSD, as&iacute;:</para>
-
- <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput>
-
-&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput>
-&prompt.user; <userinput>tar tvf foobar.tar</userinput>
-&prompt.user; <userinput>tar xvf foobar.tar</userinput></screen>
- </listitem>
-
- <listitem>
- <para><anchor id="ports-checksum">P. &iquest;Y el checksum?</para>
-
- <para>R. Es un n&uacute;mero que se genera a partir de todo el
- contenido del archivo que quieres chequear. Si cambia alguno de
- los car&aacute;cteres, el checksum no ser&aacute; el mismo, as&iacute;
- que una simple comparaci&oacute;n te permitir&aacute; conocer la
- diferencia.</para>
- </listitem>
-
- <listitem>
- <para>P. He hecho lo que indicais para <link linkend="ports-cd">
- compilar los ports desde el CDROM</link> y todo ha funcionado
- bi&eacute;n hasta que he intentado instalar el port kermit:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; cku190.tar.gz doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.</screen>
-
- <para>&iquest;Porqu&eacute; no puedo encontrarlo?</para>
-
- <para>R. Los t&eacute;rminos de la licencia del programa kermit no nos
- permiten incluir el tarball en el CDROM, as&iacute; que tendr&aacute;s
- que bajarlo a mano. La raz&oacute;n por la que han salido esos errores
- es que no estabas conectado a Internet en el momento de la
- instalaci&oacute;n. Una vez lo hayas bajado de cualquiera de los
- servidores arriba mencionados, puedes empezar de nuevo el proceso
- (intenta escoger el servidor m&aacute;s cercano a t&iacute; para
- ganar tiempo y ahorrar ancho de banda de Internet).</para>
- </listitem>
-
- <listitem>
- <para>P. He hecho lo que explicais, pero cuando intento poner el
- archivo en <filename>/usr/ports/distfiles</filename> aparece un error
- que indica que no tengo permisos.</para>
-
- <para>R. El mecanismo de ports busca el tarball en
- <filename>/usr/ports/distfiles</filename>, pero no podr&aacute;s copiar
- nada ah&iacute; por que es un link al CDROM, el cual es de s&oacute;lo
- lectura. Puedes indicar que busque el port en cualquier otro
- directorio haciendo</para>
-
- <screen>&prompt.root; <userinput>make DISTDIR=<replaceable>/where/you/put/it</replaceable> install</userinput></screen>
- </listitem>
-
- <listitem>
- <para>P. &iquest;S&oacute;lo funciona el esquema de ports si
- est&aacute;n en <filename>/usr/ports</filename>? Mi administrador de
- sistema dice que tengo que poner los archivos en
- <filename>/u/people/guests/wurzburger</filename>, pero parece que
- as&iacute; no funciona.</para>
-
- <para>R. Puedes usar las variables <makevar>PORTSDIR</makevar> y
- <makevar>PREFIX</makevar> para indicarle al mecanismo de ports que
- use directorios diferentes. Por ejemplo,</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen>
-
- <para>compilar&aacute; el port en
- <filename>/u/people/guests/wurzburger/ports</filename> e
- instalar&aacute; todos los archivos bajo
- <filename>/usr/local</filename>.</para>
-
- <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen>
-
- <para>compilar&aacute; el port en <filename>/usr/ports</filename> y
- lo instalar&aacute; en
- <filename>/u/people/guests/wurzburger/local</filename>.</para>
-
- <para>Y por supuesto</para>
-
- <screen>&prompt.root; <userinput>make PORTSDIR=.../ports PREFIX=.../local install</userinput></screen>
-
- <para>combinar&aacute; los dos (es demasiado extenso para escribirlo
- en la p&aacute;gina, pero seguro que te haces una idea).</para>
-
- <para>Si no quieres tener que teclear todo esto cada vez que instalas
- un ports, es una buena idea poner estas variables como variables de
- entorno.</para>
- </listitem>
-
- <listitem>
- <para>P. No tengo el CDROM de FreeBSD pero me gustar&iacute;a disponer
- de todos los tarball en mi sistema para no tener que esperar a que
- se bajen de Internet cada vez que instalo un port. Hay alguna manera
- sencilla de hacerlo?</para>
-
- <para>R. Para obtener todos los tarball de la colecci&oacute;n completa
- de ports haz</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>Para todos los tarball de un directorio de ports, haz</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
-
- <para>y para un solo port, bueno, creo que ya lo has adivinado.</para>
- </listitem>
-
- <listitem>
- <para>P. S&eacute; que probablemente es m&aacute;s r&aacute;pido
- obtener los tarballs desde un mirror de FreeBSD cercano. &iquest;Hay
- alguna manera de obtener los ports de otros servidores diferentes a los
- establecidos en MASTER_SITES?</para>
-
- <para>R. S&iacute;. Si sabes, por ejemplo que <hostid
- role="fqdn">ftp.FreeBSD.ORG</hostid> te es m&aacute;s cercano que los
- servidores listados en <makevar>MASTER_SITES</makevar>, haz como en el
- siguiente ejemplo.</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
-&prompt.root; <userinput>make MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
- </listitem>
-
- <listitem>
- <para>P. Quiero saber que ficheros va a necesitar el programa
- <command>make</command> antes de que intente bajarlos.</para>
-
- <para>R. <command>make fetch-list</command> mostrar&aacute; una lista
- de los ficheros necesarios para el port.</para>
- </listitem>
-
- <listitem>
- <para>P. &iquest;Hay alguna manera de parar la compilaci&oacute;n del
- port?. Quiero hacer algunos retoques en el c&oacute;digo fuente antes
- de instalarlo, pero es un poco pesado tener que estar atento y pulsar
- control-C cada vez.</para>
-
- <para>R. Ejecutando <command>make extract</command>, el port
- parar&aacute; despu&eacute;s de haber obtenido y extraido el
- c&oacute;digo fuente.</para>
- </listitem>
-
- <listitem>
- <para>P. Estoy intentando crear mi propio port y quiero poder parar
- la compilaci&oacute;n hasta poder asegurarme de que mis parches
- funcionan correctamente. &iquest;Hay alguna comando como
- <command>make extract</command>, pero para parches?</para>
-
- <para>R. S&iacute;, <command>make patch</command> es lo que quieres.
- Probablemente tambi&eacute;n encontrar&aacute;s muy &uacute;til la
- opci&oacute;n <makevar>PATCH_DEBUG</makevar>. Y ya de paso, gracias
- por el esfuerzo!.</para>
- </listitem>
-
- <listitem>
- <para>P. He oido que algunas opciones de compilaci&oacute;n pueden
- causar errores. &iquest;Es cierto?. &iquest;C&oacute;mo puedo
- asegurarme de que compilo los ports con las opciones correctas?.</para>
-
- <para>R. S&iacute;, con la versi&oacute;n 2.6.3 de
- <command>gcc</command> (la versi&oacute;n incluida en FreeBSD 2.1.0 y
- 2.1.5), la opci&oacute;n <option>-O2</option> puede crear problemas
- a no ser que uses tambi&eacute;n la opci&oacute;n
- <option>-fno-strength-reduce</option>. (Muchos de los ports no usan
- <option>-O2</option>). <emphasis>Deber&iacute;s</emphasis> poder
- especificar las opciones de compilaci&oacute;n con algo como</para>
-
- <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce'install</userinput></screen>
-
- <para>o editando el fichero <filename>/etc/make.conf</filename>, pero
- desafortunadamente no todos los ports respetan esto. La forma m&aacute;s
- segura es hacer <command>make configure</command>, entrar en el
- directorio de los fuentes e inspeccionar a mano los Makefiles, pero
- puede ser muy tedioso si los fuentes tienen muchos subdirectorios, cada
- uno con su propio Makefile.</para>
- </listitem>
-
- <listitem>
- <para>P. Hay tantos ports que resulta complicado encontrar el que
- quiero. &iquest;Hay alguna lista de los ports disponibles?</para>
-
- <para>R. Mira el archivo <filename>INDEX</filename> en
- <filename>/usr/ports</filename>. Tambi&eacute;n puedes hacer
- b&uacute;squedas de palabras en la colecci&oacute;n de ports. Por
- ejemplo puedes encontrar ports referentes al lenguaje de
- programaci&oacute;n LISP usando:</para>
-
- <screen>&prompt.user; <userinput>cd /usr/ports</userinput>
-&prompt.user; <userinput>make search key=lisp</userinput></screen>
- </listitem>
-
- <listitem>
- <para>P. Iba a instalar el port <literal>foo</literal> pero de pronto
- el sistema par&oacute; la compilaci&oacute;n y comenz&oacute; a
- compilar el port <literal>bar</literal>. &iquest;Qu&eacute;
- est&aacute; pasando?</para>
-
- <para>R. El port <literal>foo</literal> necesita algo que ofrece el
- port <literal>bar</literal>, por ejemplo, si <literal>foo</literal>
- usa gr&aacute;ficos, <literal>bar</literal> puede tener
- librer&iacute;as con rutinas de procesamiento gr&aacute;fico
- &uacute;tiles. O puede ser que <literal>bar</literal> sea una
- herramienta necesaria para compilar el port <literal>foo</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para><anchor id="ports-remove">P. Instal&eacute; el programa
- <literal>grizzle</literal> desde los ports, y, francamente, me parece
- una p&eacute;rdida de espacio en disco, Quiero borrarlo pero no
- s&eacute; d&oacute;nde est&aacute;n todos los ficheros.
- &iquest;alguna idea?</para>
-
- <para>R. No hay problema, s&oacute;lo haz</para>
-
- <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen>
- </listitem>
-
- <listitem>
- <para>P. Espera un momento; necesitas saber el n&uacute;mero de
- versi&oacute;n para usar ese comando. No creer&aacute;s que voy a ser
- capaz de recordarlo, &iquest;no?</para>
-
- <para>R. No, desde luego. Puedes encontrar el n&uacute;mero de
- versi&oacute;n haciendo</para>
-
- <screen>&prompt.root; <userinput>pkg_info -a | grep grizzle</userinput>
-Information for grizzle-6.5:
-grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game.</screen>
- </listitem>
-
- <listitem>
- <para>P. Hablando de espacio en disco, el directorio de ports parece
- que cada vez ocupa m&aacute;s espacio. &iquest;Es recomendable
- borrar cosas?</para>
-
- <para>R. S&iacute;, si ya tienes instalado el programa y crees que no
- vas a necesitarlo de nuevo. La mejor manera de hacerlo es</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make clean</userinput></screen>
-
- <para>lo que entrar&aacute; en todos los subdirectorios de ports y
- borrar&aacute; todo excepto el esqueleto de cada port.</para>
-
- </listitem>
-
- <listitem>
- <para>P. He hecho lo que comentais y todav&iacute;a tengo todos esos
- tarballs o como le llameis en el directorio
- <filename>distfiles</filename>. &iquest;Puedo borrar esos archivos?
- </para>
-
- <para>R. S&iacute;, si est&aacute;s seguro de haber terminado con
- ellos.</para>
- </listitem>
-
- <listitem>
- <para>P. Me gusta tener muchos programas para poder jugar con ellos.
- &iquest;Hay alguna manera de instalar todos los ports de una vez?
- </para>
-
- <para>R. S&oacute;lo haz</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
- </listitem>
-
- <listitem>
- <para>P. Bi&eacute;n, lo he intentado, pero pensando que tardar&iacute;a
- mucho me fu&iacute; a dormir y cuando he vuelto esta ma&ntilde;na he
- visto que s&oacute;lo hab&iacute;a instalado tres ports y medio.
- &iquest;Ha ido algo mal?</para>
-
- <para>R. No, el problema es que algunos ports necesitan hacer preguntas
- que no podemos responder por t&iacute; y necesitan tener a alguien
- "a mano" para poder responderlas.</para>
- </listitem>
-
- <listitem>
- <para>P. Realmente, no quiero perder todo un d&iacute;a delante del
- monitor. &iquest;Alguna idea mejor?</para>
-
- <para>R. Bueno, haz esto antes de irte a dormir</para>
-
- <screen>&prompt.root <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DBATCH install</userinput></screen>
-
- <para>Esto instalar&aacute; todos los ports que <emphasis>no</emphasis>
- requieran participaci&oacute;n por parte del usuario. Entonces,
- cuando vuelvas haz</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DIS_INTERACTIVE install</userinput></screen>
-
- <para>para terminar el trabajo.</para>
- </listitem>
-
- <listitem>
- <para>P. En el trabajo, estamos usando el programa
- <literal>frobble</literal>, que est&aacute; en la colecci&oacute;n de
- ports, pero lo hemos alterado un poco para cubrir nuestras necesidades.
- &iquest;Hay alguna manera sencilla de hacer nuestros propios packages
- de manera que podamos distribuirlos m&aacute;s f&aacute;cilmente en
- nuestros servidores?</para>
-
- <para>R. No hay problema, asumiendo que sabes como hacer los parches
- para tus cambios:</para>
-
- <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/frobble</replaceable></userinput>
-&prompt.root; <userinput>make extract</userinput>
-&prompt.root; <userinput>cd work/frobble-2.8</userinput>
-[Apply your patches]
-&prompt.root; <userinput>cd ../..</userinput>
-&prompt.root; <userinput>make package</userinput></screen>
- </listitem>
-
- <listitem>
- <para>P. Este sistema de ports es realmente fant&aacute;stici. Estoy
- desesperado por saber como lo habeis hecho. &iquest;Cu&aacute;l es el
- secreto?</para
-
- <para>R. No hay nada secreto, lo tienes todo en los ficheros
- <filename>bsd.ports.mk</filename> y
- <filename>bsd.ports.subdir.mk</filename> en tu directorio de <ulink
- URL="file://localhost/usr/share/mk/">makefiles.</ulink></para>
-
- <note>
- <para>Los lectores con aversi&oacute;n a intrincados shell-scripts
- est&aacute;n avisados de no seguir este link...)</para>
- </note>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="porting">
- <title>Haciendo t&uacute; mismo un port</title>
-
- <para><emphasis>Contribuido por &a.jkh;, &a.gpalmer;, &a.asami; &a.obrien;
- y &a.hoek;. 28 de Agosto de 1996.</emphasis></para>
-
- <para>As&iacute; que, &iquest;ahora est&aacute;s interesado en hacer un
- port?. Bi&eacute;n!</para>
-
- <para>Lo que viene a continuaci&oacute;n son algunas gu&iacute;s para crear
- un nuevo port para FreeBSD. La mayor&iacute;a del trabajo es hecha por el
- fichero <filename>/usr/ports/Mk/bsd.port.mk</filename> que incluyen todos
- los Makefile de los ports. Por favor, mira en este fichero para m&aacute;s
- informaci&oacute;n sobre la manera de trabajar de la colecci&oacute;n de
- ports. Aunque no uses los Makefiles de manera habitualm, est&aacute;
- bi&eacute;n comentado, y podr&aacute;s conocer una gran cantidad de cosas
- a trav&eacute;s de &eacute;l.</para>
-
- <note>
- <para>S&oacute;lo una peque&ntilde;a parte de las variables
- sobreescribibles (<makevar><replaceable>VAR</replaceable></makevar>)
- se mencionan en este documento. Muchas (si no todas) est&aacute;n
- documentadas al inicio del fichero <filename>bsd.port.mk</filename>.
- Este fichero usa una tabulaci&oacute;n no est&aacute;ndar.
- <application>Emacs</application> y <application>Vim</application>
- deber&iacute;n reconocer la configuraci&oacute;n al cargar el fichero.
- <command>vi</command> or <command>ex</command> se pueden configurar
- para que usen los valores correctos tecleando
- <command>:set tabstop=4</command> una vez que el fichero ha sido
- cargado.</para>
- </note>
-
- <sect2>
- <title>Haciendo Ports r&aacute;pidamente</title>
-
- <para>Esta secci&oacute;n te explica c&oacute;mo hacer un port
- r&aacute;pidamente. En muchos casos no es suficiente, pero ya lo iremos
- viendo.</para>
-
- <para>Primero, obt&eacute;n el tarball original y ponlo en
- <makevar>DISTDIR</makevar>, que por defecto apunta a
- <filename>/usr/ports/distfiles</filename>.</para>
-
- <note>
- <para>Los siguientes comentarios asumen que el software compila
- sin problema alguno en FreeBSD, y no se requiere absolutamente
- ning&uacute;n cambio para que el port funcione en tu sistema
- FreeBSD. Si has necesitado modificar alguna cosa, tendr&aacute;s que
- referirte tambi&eacute;n por la siguiente secci&oacute;n.</para>
- </note>
-
- <sect3>
- <title>Escribiendo el <filename>Makefile</filename></title>
-
- <para>El <filename>Makefile</filename> deber&iacute;a ser algo como
- esto:</para>
-
- <programlisting>
-# New ports collection makefile for: oneko
-# Version required: 1.1b
-# Date created: 5 December 1994
-# Whom: asami
-#
-# &#36;Id&#36;
-#
-
-DISTNAME= oneko-1.1b
-CATEGORIES= games
-MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
-
-MAINTAINER= asami@FreeBSD.ORG
-
-MAN1= oneko.1
-MANCOMPRESSED= yes
-USE_IMAKE= yes
-
-.include &lt;bsd.port.mk&gt;</programlisting>
-
- <para>Prueba de entenderlo t&uacute; mismo. No te preocupes por los
- contenidos de la l&iacute;nea <literal>&#36;Id&#36;</literal>, ya
- que ser&aacute;n completadas automaticamente por el CVS cuando el port
- sea importado a la colecci&oacute;n de ports principal. Puedes
- encontrar informaci&oacute;n m&aacute;s detallada en la secci&oacute;n
- <link linkend="porting-samplem">Makefile de ejemplo</link>.</para>
- </sect3>
-
- <sect3>
- <title>Escribiendo los ficheros de descripci&oacute;n</title>
-
- <para>Hay tres ficheros de descripci&oacute;n que son requeridos por
- cualquier port. Los ficheros son <filename>COMMENT</filename>,
- <filename>DESCR</filename> y <filename>PLIST</filename>. Estos ficheros
- deben estar en el subdirectorio <filename>pkg</filename>.</para>
-
- <sect4>
- <title><filename>COMMENT</filename></title>
-
- <para>Descripci&oacute;n corta del port.
- <emphasis>Por favor</emphasis> no incluir el nombre del package
- (o n&uacute;mero de versi&oacute;n del software) en el comentario.
- Aqu&iacute; tienes un ejemplo:</para>
-
- <programlisting>
-A cat chasing a mouse all over the screen.</programlisting>
- </sect4>
-
- <sect4>
- <title><filename>DESCR</filename></title>
-
- <para>Esta es una descripci&oacute;n m&aacute;s detallada del
- port. Uno o varios p&aacute;rrafos explicando claramente que
- hace el port es suficiente.</para>
-
- <note>
- <para>Este <emphasis>no</emphasis> es un manual o una
- descripci&oacute;n en profundidad de c&oacute;mo usar o compilar
- el port! <emphasis>Por favorm, ten cuidado si lo est&aacute;s
- copiando del <filename>README</filename> o del man</emphasis>. Si
- el software portado tiene una p&aacute;gina web oficial,
- deber&iacute;as listarlo aqu&iacute;.</para>
- </note>
-
- <para>Te recomendamos que pongas tu nombre o firma al final de
- este fichero de la manerae siguiente:</para>
-
- <programlisting>
-This is a port of oneko, in which a cat chases a poor mouse all over
-the screen.
- :
-(etc.)
-
-http://www.oneko.org/
-
-- Satoshi
-asami@cs.berkeley.edu</programlisting>
- </sect4>
-
- <sect4>
- <title><filename>PLIST</filename></title>
-
- <para>Este fichero lista todos los ficheros instalados por el port.
- Tambi&eacute;n se llama &ldquo;packing list&rdquo; por que el
- package es generado con los ficheros listados aqu&iacute;. Los
- paths son relativos al prefijo de instalaci&oacute;n (normalmente
- <filename>/usr/local</filename> o <filename>/usr/X11R6</filename>).
- Si est&aacute;s usando las variables
- <makevar>MAN<replaceable>n</replaceable></makevar> (como
- deber&iacute;s hacer), no listes ninguna p&aacute;gina man
- aqu&iacute;.</para>
-
- <para>Aqu&iacute; tienes un peque&ntilde;o ejemplo:</para>
-
- <programlisting>
-bin/oneko
-lib/X11/app-defaults/Oneko
-lib/X11/oneko/cat1.xpm
-lib/X11/oneko/cat2.xpm
-lib/X11/oneko/mouse.xpm
-@dirrm lib/X11/oneko</programlisting>
-
- <para>Mira en el man de &man.pkg.create.1; para m&aacute;s detalles
- sobre la "lista de empaquetado".</para>
-
- <note>
- <para>Deber&iacute;s listar todos los ficheros, pero no los nombres
- de los directorios. De la misma manera, si el port crea directorios
- por s&iacute; mismo durante la instalaci&oacute;n, aseg&uacute;rate
- de a&ntilde;adir las l&iacute;neas <literal>@dirrm</literal>
- cuando sea necesario para eliminarlos cuando el port sea
- desinstalado.</para>
-
- <para>Es recomendable que mantengas todos los nobres de fichero en
- este archivo ordenados alfab&eacute;ticamente. Har&aacute; que la
- verificaci&oacute;n de cambios cuando actualices el port sea mucho
- m&aacute;s sencilla.</para>
- </note>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Creando el fichero de checksum</title>
-
- <para>Solo teclea <command>make checksum</command>. Las reglas del
- programa make para los ports generar&aacute;n autom&aacute;ticamente
- el fichero <filename>files/md5</filename>.</para>
- </sect3>
-
- <sect3 id="porting-testing">
- <title>Testeando los ports</title>
-
- <para>Debes asegurarte de que las reglas de los ports hagan
- exactamente lo que quieres que hagan, incluyendo el empaquetado
- del port. Estos son los puntos importantes que necesitas verificar:
- </para>
-
- <itemizedlist>
- <listitem>
- <para><filename>PLIST</filename> no contiene nada que no sea
- instalado por tu port</para>
- </listitem>
-
- <listitem>
- <para><filename>PLIST</filename> contiene absolutamente todos
- los ficheros instalados por tu port</para>
- </listitem>
-
- <listitem>
- <para>Tu port puede ser instalado m&uacute;ltiples veces
- usando el par&aacute;metro <maketarget>reinstall</maketarget></para>
- </listitem>
-
- <listitem>
- <para>Tu port se <link linkend="porting-cleaning">elimina</link>
- a s&iacute; mismo al usar el par&aacute;metro deinstall</para>
- </listitem>
- </itemizedlist>
-
- <procedure>
- <title>Orden de test recomendado</title>
-
- <step>
- <para><command>make install</command></para>
- </step>
-
- <step>
- <para><command>make package</command></para>
- </step>
-
- <step>
- <para><command>make deinstall</command></para>
- </step>
-
- <step>
- <para><command>pkg_add `make package-name`</command></para>
- </step>
-
- <step>
- <para><command>make deinstall</command></para>
- </step>
-
- <step>
- <para><command>make reinstall</command></para>
- </step>
-
- <step>
- <para><command>make package</command></para>
- </step>
- </procedure>
-
- <para>Aseg&uacute;rate de que no existe ning&uacute;n warning en
- los comandos <maketarget>package</maketarget> y
- <maketarget>deinstall</maketarget>. Despu&eacute;s del paso 3, mira
- si todos los nuevos directorios han sido eliminados correctamente.
- tambi&eacute;n, intenta usar el software despu&eacute;s del paso 4,
- para asegurarte de que funciona correctamente cuando es instalado desde
- un package.</para>
- </sect3>
-
- <sect3 id="porting-portlint">
- <title>Probando tu port con <command>portlint</command></title>
-
- <para>Por favor, usa el comando <command>portlint</command> para
- ver si tu port cumple nuestras normas. El programa
- <command>portlint</command> forma parte de la colecci&oacute;n de
- ports. En particular, debes probar que el
- <link linkend="porting-samplem">Makefile</link> es correcto y que el
- <link linkend="porting-pkgname">package</link> es nombrado
- apropiadamente.</para>
- </sect3>
-
- <sect3 id="porting-submitting">
- <title>Enviando un port</title>
-
- <para>Primero, aseg&uacute;rate de haber leido la secci&oacute;n
- <link linkend="porting-dads">Do's and Dont's</link>.</para>
-
- <para>Ahora que ya tienes tu port, solo queda incluirlo en la
- colecci&oacute;n de ports principal de FreeBSD y que todo el mundo
- lo tenga a su alcance. No necesitamos tu directorio
- <filename>work</filename> o el archivo de package
- <filename>pkgname.tgz</filename>, as&iacute; que b&oacute;rralos
- ahora. A continuaci&oacute;n, simplemente incluye la salida de
- <command>shar `find port_dir`</command> en un "bug report" y
- envialo con el programa &man.send-pr.1; (mira en
- <link linkend="contrib-general">Bug Reports y comentarios generales</link> para m&aacute;s informaci&oacute;n sobre &man.send-pr.1;. Si el port
- descomprimido es mayor de 20Kb deber&iacute;as comprimirlo en un
- fichero tar y usar el comando &man.uuencode.1; antes de incluirlo en
- el bug report. Clasifica el bug report en la categor&iacute;a
- <literal>ports</literal> y clase <literal>change-request</literal>.
- No marques el port como <literal>confidencial</literal>!)</para>
-
- <para>Una vez m&aacute;s, <emphasis>no incluyas el c&oacute;digo
- fuente original, el directorio <filename>work</filename>, o el
- package creado con <command>make package</command></emphasis>.</para>
-
- <note>
- <para>En el pasado, te recomendabamos enviar el nuevo port a nuestro
- servidor ftp (<hostid role="fqdn">ftp.freebsd.org</hostid>). Esto
- ya no es recomendando ya que el permiso de lectura se ha desactivado
- en el directorio <filename>incoming</filename> por la cantidad de
- software pirata que se enviaba.</para>
- </note>
-
- <para>Miraremos tu port, nos pondremos en contacto contigo si es
- necesario y lo a&ntilde;adiremos en la colecci&oacute;n principal.
- Tu nombre aparecer&aacute; en la lista
- &ldquo;Additional FreeBSD contributors&rdquo; en el Handbook de
- FreeBSD y otros ficheros. &iquest;No es genial?!? <!-- smiley
- -->:)</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Ports paso a paso</title>
-
- <para>Bi&eacute;n, as&iacute; que no ha sido tan simple, y el port
- ha necesitado algunas modificaciones para funcionar. En esta
- secci&oacute;n, explicaremos, paso a paso, como modificarlo para
- que pueda funcionar en el entorno de los ports.</para>
-
- <sect3>
- <title>C&oacute;como funcionan las cosas</title>
-
- <para>Primero, esta es la secuencia de eventos que ocurren cuando
- un usuario teclea <command>make</command> en el directorio de ports.
- Si tienes otra ventana con el fichero <filename>bsd.port.mk</filename>
- te resultar&aacute; m&aacute;s sencillo entender todo el proceso.</para>
-
- <para>Pero no te preocupes si realmente no entiendes todo lo que
- hace el fichero <filename>bsd.port.mk</filename>... no hay mucha gente
- que realmente lo entienda...
- <!-- smiley --><emphasis>:&gt;</emphasis></para>
-
- <procedure>
- <step>
-
- <para>El objeto <maketarget>fetch</maketarget> es ejecutado. El
- objeto <maketarget>fetch</maketarget> es el responsable de asegurar
- que el tarball necesario existe localmente en el directorio
- <makevar>DISTDIR</makevar>. Si <maketarget>fetch</maketarget>
- no puede encontrar los ficheros requeridos en
- <makevar>DISTDIR</makevar> localizar&aacute; el URL de
- <makevar>MASTER_SITES</makevar>, la cual existe en el Makefile,
- al igual que en nuestro servidor principal ftp <ulink
- URL="ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/">ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/</ulink>,
- que usamos como servidor de backup. A continuaci&oacute;n
- intentar&aacute; obtener el archivo de la distribuci&oacute;n
- con <makevar>FETCH</makevar>, asumiendo que el servidor de
- origen tiene conexi&oacute;n directa a Internet. Si este paso
- termina correctamente, grabar&aacute; el archivo en
- <makevar>DISTDIR</makevar> para su uso futuro.</para>
- </step>
-
- <step>
- <para>El objeto <maketarget>extract</maketarget> es ejecutado.
- Busca el archivo de distribuci&oacute;n del port
- (normalmente un tarball comprimido con gzip) en
- <makevar>DISTDIR</makevar> y lo descomprime en un sibdirectorio
- temporal especificado por la variable <makevar>WRKDIR</makevar>
- (normalmente <filename>work</filename>).</para>
- </step>
-
- <step>
- <para>Se ejecuta el objeto <maketarget>patch</maketarget>. Primero
- se aplican todos los parches definidos en
- <makevar>PATCHFILES</makevar>. A continuaci&oacute;n, si no se
- han encontrado parches en <makevar>PATCHDIR</makevar> (que por
- defecto est&aacute; definido como el subdirectorio
- <filename>patches</filename>), son aplicados en orden
- alfab&eacute;tico.</para>
- </step>
-
- <step>
- <para>Se ejecuta el objeto <maketarget>configure</maketarget>.
- Este puede hacer cualquiera de las siguientes funciones.</para>
-
- <orderedlist>
- <listitem>
- <para>Si existe, se ejecuta
- <filename>scripts/configure</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Si <makevar>USE_IMAKE</makevar> est&aacute;
- definido, se ejecuta <makevar>XMKMF</makevar> (por
- defecto: <command>xmkmf -a</command>).</para>
- </listitem>
- </orderedlist>
- </step>
-
- <step>
- <para>Se ejecuta el objeto <maketarget>build</maketarget>. Este es
- responsable de descender por los directorios de trabajo privados
- del port (<makevar>WRKSRC</makevar>) y compilarlos. Si se ha
- definido <makevar>USE_GMAKE</makevar> se usa el comando
- <command>make</command>, en caso contrario, se usar&aacute; el
- comando de sistema <command>make</command>.</para>
- </step>
- </procedure>
-
- <para>Las anteriores, son las acciones por defecto. Adem&aacute;s,
- puedes definir los objetos
- <maketarget>pre-<replaceable>algo</replaceable></maketarget> o
- <maketarget>post-<replaceable>something</replaceable></maketarget>,
- o poner scripts con esos nombres. En el subdirectorio
- <filename>scripts</filename>, y ser&aacute;n ejecutados antes o
- despu&eacute;s de las acciones por defecto.</para>
-
- <para>Por ejemplo, si tienes definido un objeto
- <maketarget>post-extract</maketarget> en tu Makefile, y un fichero
- <filename>pre-build</filename> en el subdirectorio
- <filename>scripts</filename>, el objeto
- <maketarget>post-extract</maketarget> ser&aacute; llamado despu&eacute;s
- de las acciones de extracci&oacute;n regulares, y el script
- <filename>pre-build</filename> ser&aacute; ejecutado antes que las
- reglas por defecto de compilaci&oacute;n. Es recomendable que uses
- objetos de <filename>Makefile</filename> en caso de que las acciones
- a realizar sean suficientemente simples, ya que as&iacute;
- resultar&aacute; mucho m&aacute;s sencillo saber que tipo de acciones
- no regulares requiere el port.</para>
-
- <para>Las acciones por defecto son ejecutadas por los objetos
- <maketarget>do-<replaceable>something</replaceable></maketarget> del
- fichero <filename>bsd.port.mk</filename>. Por ejemplo, los mandatos
- para extraer un port est&aacute;n en el objeto
- <maketarget>do-extract</maketarget>. Si necesitas algo no incluido
- en el objeto por defecto, puedes solucionarlo redefiniendo el objeto
- <maketarget>do-<replaceable>something</replaceable></maketarget> en
- tu <filename>Makefile</filename>.</para>
-
- <note>
- <para>Los objetos &ldquo;principales&rdquo; (por ejemplo,
- <maketarget>extract</maketarget>,
- <maketarget>configure</maketarget>, etc.) no hacen nada m&aacute;s
- que asegurar que se han completado todos los procesos y llamar a los
- objetos o scripts reales, y no se espera que sean modificados. Si
- quieres modificar la extracci&oacute;n, cambia el objeto
- <maketarget>do-extract</maketarget>, pero nunca modifiques
- el objeto <maketarget>extract</maketarget>!</para>
- </note>
-
- <para>Ahora que entiendes lo que pasa cuando un usuario teclea
- <command>make</command>, d&eacute;janos explicarte los pasos
- recomendados para crear el port perfecto.</para>
- </sect3>
-
- <sect3>
- <title>Obteniendo los fuentes originales</title>
-
- <para>Obt&eacute;n los fuentes originales (normalmente) en un
- archivo comprimido
- (<filename><replaceable>foo</replaceable>.tar.gz</filename> o
- <filename><replaceable>foo</replaceable>.tar.Z</filename>) y copialo
- en el directorio <makevar>DISTDIR</makevar>. Usa siempre d&oacute;nde
- y cuando puedas los fuentes procedentes del servidor
- <emphasis>principal</emphasis> de la distribuci&oacute;n.</para>
-
- <para>Si no puedes encontrar un servidor ftp/http con una buena
- conexi&oacute;n a Internet, o s&oacute;lo encuentras servidores
- que tienen los fuentes en irritantes formatos no est&aacute;ndar,
- puedes poner una copia funcional del archivo en un servidor ftp
- o http bajo tu control (tu p&aacute;gina personal, por ejemplo).
- Aseg&uacute;rate de usar el valor correcto en la variable
- <makevar>MASTER_SITES</makevar> para que refleje tu elecci&oacute;n.
- </para>
-
- <para>Si no puedes encontrar ning&uacute;n lugar en el que poner
- el fichero de distribuci&oacute;n (si eres committer de FreeBSD,
- puedes ponerlo en el directorio <filename>public_html/</filename>
- del servidor <hostid>freefall</hostid>), nosotros podemos
- albergarlo en
- <filename>ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/LOCAL_PORTS/</filename>
- como &uacute;ltimo recurso. Por favor, usa la variable
- <makevar>MASTER_SITE_LOCAL</makevar> para referirte a este servidor y
- subdirectorio. Env&iacute;a un mail a &a.ports; si no est&aacute;s
- seguro de qu&eacute; hacer.</para>
-
- <para>Si tu archivo de distribuci&oacute;n cambia continuamente sin
- una buena raz&oacute;n, considera poner el archivo en tu p&aacute;gina
- personal y listarlo como el primer <makevar>MASTER_SITES</makevar>.
- Esto evitar&aacute; que los usuarios obtengan errores del tipo
- <errorname>checksum mismatch</errorname>, y tambi&eacute;n
- reducir&aacute; la carga de trabajo de las personas que hacen el
- mantenimiento de nuestro servidor FTP. De la misma manera, si existe un
- solo servidor como distribuidor principal del programa, es
- recomendable que albergues una copia de la distribuci&oacute;n en
- tu servidor y lo listes como segundo
- <makevar>MASTER_SITES</makevar>.</para>
-
- <para>Si tu port requiere algunos parches adicionales que est&aacute;n
- disponibles en Internet, b&aacute;jalos y ponlos en
- <makevar>DISTDIR</makevar>. No te preocupes si provienen de un
- lugar diferente del que obtuviste el tarball principal, tenemos una
- manera de solucionar este problema (consulta la descripci&oacute;n de
- <link linkend="porting-patchfiles">PATCHFILES</link>).</para>
- </sect3>
-
- <sect3>
- <title>Modificando el port</title>
-
- <para>Descomprime una copia del tarball en un directorio privado y
- haz todos los cambios necesarios para que el port compile en la
- versi&oacute;n actual de FreeBSD. Mant&eacute;n <emphasis>una lista
- completa</emphasis> de todas las modificaciones que realizas para
- poder automatizar el proceso. Todo, incluyendo borrar, a&ntilde;adir
- o modificar ficheros debe poder hacerse de manera autom&aacute;tica
- usando un script o parche.</para>
-
- <para>Si tu port requiere una importante interacci&oacute;n o
- personalizaci&oacute;n para compilar o instalar, puedes mirar la
- cl&aacute;sica aplicaci&oacute;n <application>Configure</application>
- de Larry Wall y hacer algo as&iacute; tu mismo. El objetivo de la
- nueva colecci&oacute;n de ports es hacer que cada port sea tan
- &ldquo;plug-and-play&rdquo; como sea posible para el usuario final,
- usando el m&iacute;nimo espacio en disco posible.</para>
-
- <note>
- <para>Aunque no se haya mencionado expl&iacute;citamente, los
- parches, scripts y otros archivos que hayas creado o contribuido
- a la colecci&oacute;n de ports de FreeBSD est&aacute;n cubiertos
- por las condiciones est&aacute;ndar del copyright BSD.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Parcheando</title>
-
- <para>En la preparaci&oacute;n del port, los archivos que han sido
- a&ntilde;didos o modificados pueden recorrerse con un diff recursivo.
- Cada serie de parches que quieras aplicar deben estar integrados en un
- archivo llamado
- <filename>patch-<replaceable>xx</replaceable></filename> donde
- <replaceable>xx</replaceable> marca la secuencia en que los parches
- ser&aacute;n aplicados &mdash; &eacute;stos se aplican en
- <emphasis>&oacute;rden alfab&eacute;tico</emphasis>, as&iacute;
- primero ser&aacute; <literal>aa</literal>, segundo
- <literal>ab</literal> ,etc. Estos archivos deben estar en
- <makevar>PATCHDIR</makevar>, desde donde ser&aacute;n
- autom&aacute;ticamente aplicados. Todos los parches deben ser relativos
- a <makevar>WRKSRC</makevar> (generalmente es el directorio en el que
- se descomprime el port, siendo &eacute;ste el lugar donde se compila).
- Para hacer que la soluci&oacute;n de problemas y actualizaciones sea
- m&aacute;s sencilla, deber&iacute;s evitar tener m&aacute;s de un
- parche aplicable a un mismo archivo (por ejemplo,
- <filename>patch-aa</filename> y <filename>patch-ab</filename>
- modificando ambos al archivo
- <filename><makevar>WRKSRC</makevar>/foobar.c</filename>).</para>
- </sect3>
-
- <sect3>
- <title>Configurando</title>
-
- <para>Incluye cualquier proceso de personalizaci&oacute;n adicional
- en el script <filename>configure</filename> y guardalo en el
- subdirectorio <filename>scripts</filename>. Como se ha mencionado
- anteriormente, tambi&eacute;n puedes hacer esto como un objeto del
- <filename>Makefile</filename> y/o un script con el nombre
- <filename>pre-configure</filename> o
- <filename>post-configure</filename>.</para>
- </sect3>
-
- <sect3>
- <title>Gestionando las entradas de usuario</title>
-
- <para>Si tu port requiere entradas por parte del usuario para la
- compilaci&oacute;n, configuraci&oacute;n o instalaci&oacute;n,
- activa la variable <makevar>IS_INTERACTIVE</makevar> en tu
- Makefile. Esto permitir&aacute; no compilar tu port si el usuario
- usa la variable <envar>BATCH</envar> en su entorno (y si el usuario
- activa la variable <envar>INTERACTIVE</envar>, entonces
- <emphasis>s&oacute;lo</emphasis> ser&aacute;n compilados los ports
- que requieren interacci&oacute;n por parte del usuario).</para>
-
- <para>Tambi&eacute;n es recomendable desactivar el script interactivo
- si un n&uacute;mero razonable de respuestas por defecto son
- aplicables al port (consultar la variable
- <makevar>PACKAGE_BUILDING</makevar>). Esto nos permitir&aacute;
- compilar el package para los CD-ROMs y ftp.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Configurando el Makefile</title>
-
- <para>Configurar el Makefile es bastante sencillo, y de nuevo, te
- sugerimos que consultes los ejemplos existentes antes de empezar.
- Tambi&eacute;n hay un
- <link linkend="porting-samplem">Makefile de ejemplo</link> en este
- handbook, as&iacute; que, consultalo y, por favor, sigue el &oacute;rden
- de las variables y secciones del ejemplo para que tu port sea m&aacute;s
- f&aacute;cil de leer para otras personas.</para>
-
- <para>Ahora, considera los siguientes problemas a medida que haces
- el dise&ntilde;o de tu nuevo Makefile:</para>
-
- <sect3>
- <title>Los fuentes originales</title>
-
- <para>Reside en <makevar>DISTDIR</makevar> como un tarball
- est&aacute;ndar en formato gzip? Si es as&iacute; puedes pasar al
- siguiente paso. En caso contrario, deber&iacute;as considerar la
- posibilidad de sobreescribir alguna de las variables
- <makevar>EXTRACT_CMD</makevar>,
- <makevar>EXTRACT_BEFORE_ARGS</makevar>,
- <makevar>EXTRACT_AFTER_ARGS</makevar>,
- <makevar>EXTRACT_SUFX</makevar>, o <makevar>DISTFILES</makevar>,
- dependiendo del formato del archivo de distribuci&oacute;n del port.
- (El caso m&aacute;s com&uacute;n es
- <literal>EXTRACT_SUFX=.tar.Z</literal>, cuando el tarball est&aacute;
- comprimido con compress y no con gzip.)</para>
-
- <para>En el peor de los casos, puedes crearte tu propio objeto
- <maketarget>do-extract</maketarget> para sobreescribir el objeto
- por defecto.</para>
- </sect3>
-
- <sect3>
- <title><makevar>DISTNAME</makevar></title>
-
- <para>El valor de <makevar>DISTNAME</makevar> debe ser el nombre
- base del port. Las reglas por defecto esperan que la lista de archivos
- de la distribuci&oacute;n (<makevar>DISTFILES</makevar>) se llame
- <makevar>DISTNAME</makevar><makevar>EXTRACT_SUFX</makevar>, el cual, si
- es un tarball normal, ser&aacute;a algo como
- <literal>foozolix-1.0.tar.gz</literal> para usar el valor
- <literal>DISTNAME=foozolix-1.0</literal>.</para>
-
- <para>Las reglas por defecto tambi&eacute;n esperan extraer el
- tarball en un subdirectorio llamado
- <filename>work/<makevar>DISTNAME</makevar></filename>, por ejemplo
- <filename>work/foozolix-1.0/</filename>.</para>
-
- <para>Todos estos valores pueden sobreescribirse; simplemente muestran
- los valores m&aacute;s habituales. Para un port que requiera
- m&uacute;ltiples archivos de distribuci&oacute;n, simplemente usa
- expl&iacute;citamente <makevar>DISTFILES</makevar>. Si solo una parte
- de los <makevar>DISTFILES</makevar> son archivos extraibles, entonces
- usa <makevar>EXTRACT_ONLY</makevar> para referenciarlos, lo que
- sobreescribir&aacute; la lista <makevar>DISTFILES</makevar>
- cuando realice la extracci&oacute;n, y el resto de archivos se
- dejar&aacute;n en <makevar>DISTDIR</makevar> tal y como est&aacute;n
- para su uso posterior.</para>
-
- </sect3>
-
- <sect3>
- <title><makevar>PKGNAME</makevar></title>
-
- <para>Si <makevar>DISTNAME</makevar> no sigue las <link
- linkend="porting-pkgname">normas de nombre</link> para un package,
- deber&iacute;s asignar a la variable <makevar>PKGNAME</makevar> un valor
- m&aacute;s correcto.</para>
- </sect3>
-
- <sect3>
- <title><makevar>CATEGORIES</makevar></title>
-
- <para>Cuando se crea un package, se incluye en el directorio
- <filename>/usr/ports/packages/All</filename> creandose links desde uno
- o m&aacute;s subdirectorios de <filename>/usr/ports/packages</filename>.
- Los nombres de estos subdirectorios est&aacute;n especificados por la
- variable <makevar>CATEGORIES</makevar>. Se utiliza para facilitar al
- usuario la orientaci&oacute;n dentro de la colecci&oacute;n de ports y
- packages. Por favor, consulta las <link
- linkend="porting-categories">categor&iacute;as</link> existentes y
- elige las que sean aplicables a tu port.</para>
-
- <para>Esta lista tambi&eacute;n determina en que lugar del &aacute;rbol
- de ports se importa el port. Si especificas m&aacute;s de una
- categor&iacute;a, se asume que los archivos del port estar&aacute;n en
- el subdirectorio con el nombre en la primera categor&iacute;a.
- Consulta la secci&oacute;n <link
- linkend="porting-categories">categor&iacute;as</link> para saber como
- escoger la catergor&iacute;a adecuada.</para>
-
- <para>Si tu port pertenece realmente a una categor&iacute;n
- inexistente, puedes crear una nueva. En este caso, por favor,
- env&iacute;a un mail a &a.ports; para proponer una nueva
- categor&iacute;a.</para>
-
- <note>
- <para>No hay chequeo de error para los nombres de categor&iacute;as.
- <command>make package</command> crear&aacute; un nuevo directorio
- si tecleas mal el nombre de la categor&iacute;, as&iacute; que
- se cuidadoso!</para>
- </note>
- </sect3>
-
- <sect3>
- <title><makevar>MASTER_SITES</makevar></title>
-
- <para>Guarda la parte del directorio del URL -ftp/hhtp que apunta al
- tarball original en <makevar>MASTER_SITES</makevar>. No olvidar la
- barra final (<filename>/</filename>)!</para>
-
- <para>Las macros <command>make</command> intentaran usar esta
- especificaci&oacute;n para obtener el archivo de distribuci&oacute;n
- con <makevar>FETCH</makevar> si no lo pueden encontrar en el sistema.</para>
-
- <para>Se recomienda poner diferentes servidores en la lista, preferiblemente
- de continentes diferentes. Esto proteger&aacute; de posibles problemas de red
- en grandes &aacute;reas, y se est&aacute; pensando en la posibilidad de
- a&ntilde;adir soporte para determinar autom&aacute;ticamente el servidor
- principal m&aacute;s cercano para obtener el archivo desde &eacute;l.</para>
-
- <para>Si el tarball original forma parte de uno de estos servidores populares:
- X-contrib, GNU, Perl CPAN, TeX CTAN o Linux Sunsite, se debe hacer referencia
- a estos servidores usando
- <makevar>MASTER_SITE_XCONTRIB</makevar>,
- <makevar>MASTER_SITE_GNU</makevar>,
- <makevar>MASTER_SITE_PERL_CPAN</makevar>,
- <makevar>MASTER_SITE_TEX_CTAN</makevar>, y
- <makevar>MASTER_SITE_SUNSITE</makevar>. Simplemente poner
- <makevar>MASTER_SITE_SUBDIR</makevar> al path interno del servidor. Aqu&iacute;
- hay un ejemplo:</para>
-
- <programlisting>
-MASTER_SITES= ${MASTER_SITE_XCONTRIB}
-MASTER_SITE_SUBDIR= applications
- </programlisting>
-
- <para>El usuario tambi&eacute;n puede usar las variables
- <makevar>MASTER_SITE_*</makevar> en el archivo <filename>/etc/make.conf</filename>
- para sobreescribir nuestras selecciones, y usar en su lugar el mirror que
- prefiera de estos servidores.</para>
- </sect3>
-
- <sect3 id="porting-patchfiles">
- <title><makevar>PATCHFILES</makevar></title>
-
- <para>Si el port requiere parches adicionales que est&aacute;n disponibles
- por ftp o http, poner <makevar>PATCHFILES</makevar> a los nombres de archivos
- y <makevar>PATCH_SITES</makevar> a la URL del directorio que los contiene
- (el formato es el mismo que en <makevar>MASTER_SITES</makevar>).</para>
-
- <para>Si el parche no es relativo a la ra&iacute;z del &aacute;rbol
- (<makevar>WKRSRC</makevar>) porque contiene alguna informaci&oacute;n extra
- sobre paths, usar la variable <makevar>PATCH_DIST_STRIP</makevar>. Por ejemplo,
- si todos los path del parche contienen <literal>foozolix-1.0/</literal>
- delante del nombre de archivo, usar <literal>PATCH_DIST_STRIP=-p1</literal>.</para>
-
- <para>No preocuparse si los parches est&aacute;n comprimidos, ser&aacute;n
- descomprimidos autom&aacute;ticamente si el nombre de archivo termina en
- <filename>.gz</filename> o <filename>.Z</filename>.</para>
-
- <para>Si el parche se distribuye con otros archivos, como documentaci&oacute;n, en
- un tarball gzip, no se puede usar <makevar>PATCHFILES</makevar>. Si este es el caso,
- a&ntilde;adir el nombre y situaci&oacute;n del tarball a <makevar>DISTFILES</makevar>
- y <makevar>MASTER_SITES</makevar>. A continuaci&oacute;n, desde el objeto
- <maketarget>pre-patch</maketarget>, aplicar el parche ejecutando mandato
- <command>patch</command> desde &eacute;l, el copiando al archivo del parche en
- el directorio <makevar>PATCHDIR</makevar> llamandolo
- <filename>patch-<replaceable>xx</replaceable></filename>.</para>
-
- <note>
- <para>Tener en cuenta que el tarball ser&aacute; extraido del fuente regular,
- por lo que no es necesario extraerlo expl&iacute;citamente si es un tarball
- comprimido con gzip o compress. Si se hace lo &uacute;ltimo, tener cuidado de
- no sobreescribir algo ya existente en ese directorio. No olvidarse de a&ntilde;adir
- un mandato para borrar el parche copiado en el objeto
- <maketarget>pre-clean</maketarget></para>
- </note>
- </sect3>
-
- <sect3>
- <title><makevar>MAINTAINER</makevar></title>
-
- <para>Poner aqu&iacute; la direcci&oacute;n de mail. Por favor. <!-- smiley
- --><emphasis>:)</emphasis></para>
-
- <para>Para una descripci&oacute;n detallada de la responsabilidad de los
- "maintainers", consultar la secci&oacute;n
- <link linkend="policies-maintainer">MAINTAINER en Makefiles</link>.</para>
- </sect3>
-
- <sect3>
- <title>Dependencias</title>
-
- <para>Muchos ports dependen de otros. Hay cinco variables que se pueden usar para
- asegurar que existen todos los requerimientos necesarios en la m&aacute;quina
- del usuario. Tambi&eacute;n hay algunas variables de dependencia pre-soportadas
- para casos comunes, mas algunos controles de dependencia.</para>
-
- <sect4>
- <title><makevar>LIB_DEPENDS</makevar></title>
-
- <para>Esta variable especifica las librer&iacute;as compartidas de las que
- depende el port. Es una lista de registros de
- <replaceable>lib</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>
- donde <replaceable>lib</replaceable> es el nombre de la librer&iacute;
- compartida, y <replaceable>dir</replaceable> es el directorio en el cual encontrarla
- en caso de no estar disponible y <replaceable>target</replaceable> es el objeto a
- llamar en ese directorio. Por ejemplo,
- <programlisting> LIB_DEPENDS=jpeg.9:${PORTSDIR}/graphics/jpeg:install</programlisting>
- comprobar&aacute; la existencia de la librer&iacute;a jpeg versi&oacute;n 9,
- descendiendo al subdirectorio <filename>graphics/jpeg</filename> de la colecci&oacute;n
- de ports para compilarlo e instalarlo en caso de que no sea encontrado en el
- sistema. El objeto <replaceable>target</replaceable> puede omitirse si es igual a
- <makevar>DEPENDS_TARGET</makevar> (el cual, por defecto, tiene el valor
- <literal>install</literal>).</para>
-
- <note>
- <para>La parte <replaceable>lib</replaceable> es un argumento dado a
- <command>ldconfig -r | grep -wF</command>. Es posible que no existan
- expresiones regulares en esta variable.</para>
- </note>
-
- <para>La dependencia se comprueba dos veces, una durante la ejecuci&oacute;n de
- <maketarget>extract</maketarget> y otra durante la ejecuci&oacute;n de
- <maketarget>install</maketarget>. Tambi&eacute;n, se incluye el nombre de la
- dependencia en el package, de manera que <command>pkg_add</command>
- la instale autom&aacute;ticamente si no est&aacute; en el sistema del usuario.</para>
- </sect4>
-
- <sect4>
- <title><makevar>RUN_DEPENDS</makevar></title>
-
- <para>Esta variable especifica ejecutables o archivos de los que depende la
- compilaci&oacute; y/o ejecuci&oacute;n de este port. Es una lista de tuples
- <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>
- donde <replaceable>path</replaceable> es el nombre del ejecutable o archivo,
- <replaceable>dir</replaceable> es el directorio en el que encontrarlo en caso
- de no estar disponible y <replaceable>target</replaceable> es el objeto a llamar
- en ese directorio. Si <replaceable>path</replaceable> empieza con una barra
- (<literal>/</literal>), se trata como un archivo comprobando su existencia con
- <command>test -e</command>; en caso contrario, se asume que es un ejecutable, y
- se usa <command>which -s</command> para determinar si el programa existe en el
- path del usuario.</para>
-
- <para>Por ejemplo,</para>
-
- <programlisting>
-RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \
- wish8.0:${PORTSDIR}/x11-toolkits/tk80</programlisting>
-
- <para>comprobar&aacute; si existe el directorio o archivo
- <filename>/usr/local/etc/innd</filename>, compilando e instalandolo desde
- el directorio <filename>news/inn</filename> del &aacute;rbol de ports en
- caso de no existir. Tambi&eacute;n se comprueba la existencia del
- ejecutable <command>wish8.0</command> en el path, descendiendo al subdirectorio
- <filename>x11-toolkits/tk80</filename> de los ports para compilarlo e
- instalarlo si no existe.</para>
-
- <note>
- <para>En este caso, <command>innd</command> es un ejecutable; si un ejecutable
- est&aacute; situado en un lugar diferente al esperado (fuera del path), es
- necesario incluir el path completo.</para>
- </note>
-
- <para>La dependencia se comprueba desde el objeto <maketarget>install</maketarget>.
- El nombre de la dependencia tambi&eacute;n es incluido en el package para que
- <command>pkg_add</command> lo instale autom&aacute;ticamente si no existe en el
- sistema del usuario. La parte <replaceable>target</replaceable> puede omitirse si
- es el mismo <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect4>
-
- <sect4>
- <title><makevar>BUILD_DEPENDS</makevar></title>
-
- <para>Esta variable especifica los ejecutables o archivos que este port necesita
- para compilar. Igual que <makevar>RUN_DEPENDS</makevar>, es una lista de tuples
- <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>.
- Por ejemplo, <programlisting> BUILD_DEPENDS=
- unzip:${PORTSDIR}/archivers/unzip</programlisting> comprobar&aacute; la existencia de
- un ejecutable llamado <command>unzip</command>, descendiendo al subdirectorio
- <filename>archivers/unzip</filename> en caso de no existir, para compilarlo e
- instalarlo.</para>
-
- <note>
- <para>Compilaci&oacute;n en este caso, se refiere a todo el proceso; desde la
- extracci&oacute;n hasta la compilaci&oacute;n final. La dependencia se comprueba
- en el objeto <maketarget>extract</maketarget>. La parte
- <replaceable>target</replaceable> puede omitirse si la misma que
- <makevar>DEPENDS_TARGET</makevar></para>
- </note>
- </sect4>
-
- <sect4>
- <title><makevar>FETCH_DEPENDS</makevar></title>
-
- <para>Esta variable especifica ejecutables o archivos que se requieren para obtener
- este port. Como los dos anteriores, es una lista de tuples
- <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>.
- Por ejemplo, <programlisting> FETCH_DEPENDS=
- ncftp2:${PORTSDIR}/net/ncftp2</programlisting> comprobar&aacute; la existencia de un
- ejecutable llamado <command>ncftp2</command>, descendiendo al subdirectorio
- <filename>net/ncftp2</filename> de los ports para compilarlo e instalarlo en caso de
- no existir.</para>
-
- <para>La dependencia es comprobada en el objeto <maketarget>fetch</maketarget>.
- La parte <replaceable>target</replaceable> puede omitirse si es la misma que
- <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect4>
-
- <sect4>
- <title><makevar>DEPENDS</makevar></title>
-
- <para>Si hay una dependencia que no se puede incluir en las cuatro categor&iacute;as
- anteriores, o el port necesita tener extraidos los fuentes de otro port para poder
- ser instalado, usar esta variable. Esta es una lista compuesta de
- <replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>,
- ya que no no hay nada que comprobar, al contrario que las cuatro anteriores. La parte
- <replaceable>target</replaceable> puede omitirse si es la misma que
- <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect4>
-
- <sect4>
- <title>Variables de dependencia comunes</title>
-
- <para>Definir <literal>USE_XLIB=yes</literal> si el port requiere la instalaci&oacute;n
- del sistema X Window (impl&iacute;cito en <makevar>USE_IMAKE</makevar>). Definir
- <literal>USE_GMAKE=yes</literal> si el port requiere el <command>make</command> de
- GNU en lugar del <command>make</command> de BSD. Definir <literal>USE_AUTOCONF=yes</literal>
- si el port requiere la ejecuci&oacute;n del autoconf de GNU. Definir
- <literal>USE_QT=yes</literal> si el port usa el &uacute;ltimo kit qt. Usar
- <literal>USE_PERL5=yes</literal> si el port requiere la versi&oacute;n 5 del
- lenguaje perl. (Este &uacute;ltimo es especialmente importante ya que unas versiones
- de FreeBSD contienen perl5 como parte del sistema y otras no.)</para>
- </sect4>
-
- <sect4>
- <title>Notas sobre dependencias</title>
-
- <para>C&oacute;mo se ha mencionado anteriormente, el objeto por defecto a llamar cuando
- se require una dependencia es <maketarget>DEPENDS_TARGET</maketarget>. Por defecto es
- <literal>install</literal>. Esta es una variable de usuario; nunca se define en los
- <filename>Makefile</filename> de los ports. Si un port necesita gestionar las
- dependencias de manera especial, usar la parte <literal>:target</literal> de las
- variables <makevar>*_DEPENDS</makevar> en lugar de redefinir
- <makevar>DEPENDS_TARGET</makevar>.</para>
-
- <para>Cuando se ejecuta <command>make clean</command>, sus dependencias tambi&eacute;n
- son "limpiadas". Si se quiere evitar esto, hay que definir la variable
- <makevar>NOCLEANDEPENDS</makevar> en el entorno.</para>
-
- <para>Para depender incondicionalmente de un port, es imprescindible usar la cadena de
- texto <literal>nonexistent</literal> como primer campo de
- <makevar>BUILD_DEPENDS</makevar> o <makevar>RUN_DEPENDS</makevar>. Usar esto s&oacute;lo
- cuando es necesario disponer del c&oacute;digo fuente de otro port. Se puede ahorrar
- tiempo de compilaci&oacute;n especificando el objeto. Por ejemplo:
-
- <programlisting>
-BUILD_DEPENDS= /nonexistent:${PORTSDIR}/graphics/jpeg:extract</programlisting>
-
- siempre descender&aacute; al port JPEG y lo extraer&aacute;.</para>
-
- <para>No usar <makevar>DEPENDS</makevar> a no ser que no exista otra manera de obtener
- los resultados deseados. Har&aacute; que el otro port siempre sea compilado (e
- instalado, por defecto), y la dependencia sea a&ntilde;adia al package. Si esto es lo
- que realmente se necesita, es recomendable usar <literal>BUILD_DEPENDS</literal>
- y <literal>RUN_DEPENDS</literal>.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Mecanismos de creaci&oacute;n</title>
-
- <para>Si el package usa GNU <command>make</command>, definir
- <literal>USE_GMAKE=yes</literal>. Si el package usa <command>configure</command>,
- definir <literal>HAS_CONFIGURE=yes</literal>. Si el package usa GNU
- <command>configure</command>, definir <literal>GNU_CONFIGURE=yes</literal> (esto
- implica <literal>HAS_CONFIGURE</literal>). Si se quieren pasar argumentos extra a
- <command>configure</command> (el argumento por defecto es
- <literal>--prefix=&dollar;{PREFIX}</literal> para GNU
- <command>configure</command> y vac&iacute;o para no GNU
- <command>configure</command>), definir los argumentos extra en
- <makevar>CONFIGURE_ARGS</makevar>. Si el package usa GNU
- <command>autoconf</command>, definir <literal>USE_AUTOCONF=yes</literal>. Esto
- implica <makevar>GNU_CONFIGURE</makevar>, y causar&aacute; la ejecuci&oacute;n de
- <command>autoconf</command> antes que <command>configure</command>.</para>
-
- <para>Si el package es una aplicaci&oacute;n X que crea archivos
- <filename>Makefile</filename>s desde <filename>Imakefile</filename>s
- usando <command>imake</command>, definir <literal>USE_IMAKE=yes</literal>. Esto
- har&aacute; que durante el proceso de configuraci&oacute;n se ejecute el
- mandato <command>xmkmf -a</command>. Si el argumento <option>-a</option> es
- problem&aacute;tico para el port, definir <literal>XMKMF=xmkmf</literal>. Si el
- port usa el mandato <command>imake</command> pero no entiende el objeto
- <maketarget>install.man</maketarget>, definir
- <literal>NO_INSTALL_MANPAGES=yes</literal>.</para>
-
- <para>Si el c&oacute;digo fuente incluido en el <filename>Makefile</filename> del
- port tiene algo m&aacute;s que el objeto <maketarget>all</maketarget> como
- objeto principal de creaci&oacute;n, definir <makevar>ALL_TARGET</makevar>
- correctamente. Hacer lo mismo con <maketarget>install</maketarget> y
- <makevar>INSTALL_TARGET</makevar>.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Consideraciones especiales</title>
-
- <para>Hay m&aacute;s cosas a tener en cuenta a la hora de crear un port. Esta
- secci&oacute;n explica las m&aacute;s comunes.</para>
-
- <sect3 id="porting-ldconfig">
- <title><command>ldconfig</command></title>
-
- <para>Si el port instala una librer&iacute;a compartida, a&ntilde;adir un objeto
- <maketarget>post-install</maketarget> al <filename>Makefile</filename> para
- que ejecute <literal>&dollar;{LDCONFIG} -m</literal> en el directorio donde
- se ha instalado la nueva librer&iacute;a (normalmente
- <filename><makevar>PREFIX</makevar>/lib</filename>) para registrarla en el
- cach&eacute; de librer&iacute;as compartido.</para>
-
- <para>Tambi&eacute;n, a&ntilde;adir un par
- <literal>@exec /sbin/ldconfig -m</literal> y
- <literal>@unexec /sbin/ldconfig -R</literal> al archivo <filename>pkg/PLIST</filename>
- para que el usuario que ha instalado el port pueda usar la librer&iacute;a compartida
- inmediatamente. Estas l&iacute;neas deben estar inmediatamente despu&eacute;s de la
- l&iacute;nea de la propia librer&iacute;a compartida, como en:</para>
-
- <programlisting>
-lib/libtvl80.so.1
-@exec /sbin/ldconfig -m %D/lib
-@unexec /sbin/ldconfig -R</programlisting>
-
- <para>Nunca, nunca, <emphasis>nunca</emphasis> a&ntilde;adir una l&iacute;nea
- que ponga <literal>ldconfig</literal> sin argumentos en el
- <filename>Makefile</filename> o <filename>pkg/PLIST</filename>. Esto har&aacute;
- que el cach&eacute; de librer&iacute;as compartidas se resetee s&oacute;lo con
- los contenidos de <filename>/usr/lib</filename>, probablemente, dejando el sistema
- inestable ("Ayuda, xinit no ha vuelto a funcionar desde que instal&eacute; este
- port"). Cualquiera que haga esto, ser&aacute; troceado en 65.536 partes con un
- cuchillo poco afilado, permaneciendo por toda la eterniadad en lo m&aacute;s
- profundo del infierno (y no necesariamente en este &oacute;rden)</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Soporte ELF</title>
-
- <para>Desde la transici&oacute;n de FreeBSD a formato ELF despu&eacute;s de la
- version 3.0-RELEASE, fue necesario convertir muchos ports para que generasen
- librer&iacute;as compartidas en formato ELF. Para complicar m&aacute;s el
- trabajo, los sistemas 3.0 pueden ejecutar ELF y a.out, y se quiere mantener,
- etraoficialmente, tanto como sea posible, el soporte para versiones 2.2. A
- continuaci&oacute;n se explica como convertir ports que s&oacute;lo soportan
- a.out para que soporten compilaciones a.out y ELF.</para>
-
- <para>Una parte de esta lista s&oacute;lo es aplicable durante la conversi&oacute;n,
- pero se mantendr&aacute; durante un tiempo como referencia en caso de querer
- actualizar alg&uacute;n port antiguo.</para>
-
- <sect3>
- <title>Mover las librer&iacute;as a.out</title>
-
- <para>Las librer&iacute;as a.out deben moverse de <filename>/usr/local/lib</filename>
- y similares a un subdirectorio <filename>aout</filename>. (Si no se mueven, los
- ports ELF sobreescribir&aacute;n las librer&iacute;as a.out). El objeto
- <maketarget>move-aout-libs</maketarget> del archivo
- <filename>src/Makefile</filename> en 3.0-CURRENT (llamado desde
- <maketarget>aout-to-elf</maketarget>) har&aacute; este paso en nuestro lugar.
- S&oacute;lo mover&aacute; las librer&iacute;as a.out en los directorios
- est&aacute;ndar.</para>
- </sect3>
-
- <sect3>
- <title>Formato</title>
-
- <para>La colecci&oacute;n de ports compilar&aacute; los packages en el mismo
- formato en el que est&eacute; la m&aacute;quina. Esto significa a.out para
- 2.2 y a.out o ELF para 3.0 dependiendo de lo que devuelva la variable
- <command>`objformat`</command>. De la misma manera, una vez se mueven las
- librer&iacute;as a un subdirectorio, ya no ser&aacute; posible compilar
- librer&iacute;as a.out.</para>
-
- <note>
- <para>Si un port s&oacute;lo funciona para a.out, definir
- <makevar>BROKEN_ELF</makevar>. Estos ports ser&aacute;n pasados por alto
- durante la compilaci&oacute;n en sistemas ELF.</para>
- </note>
- </sect3>
-
- <sect3>
- <title><makevar>PORTOBJFORMAT</makevar></title>
-
- <para><filename>bsd.port.mk</filename> definir&aacute;
- <makevar>PORTOBJFORMAT</makevar> a <literal>aout</literal> o
- <literal>elf</literal> y lo exportar&aacute; en las variables de
- entorno <envar>CONFIGURE_ENV</envar>, <envar>SCRIPTS_ENV</envar> y
- <envar>MAKE_ENV</envar>. (Siempre ser&aacute;
- <literal>aout</literal> en 2.2-STABLE). Tambi&eacute;n se pasa a
- <maketarget>PLIST_SUB</maketarget> como
- <literal>PORTOBJFORMAT=${PORTOBJFORMAT}</literal>. (Consultar los comentarios
- sobre <literal>ldconfig</literal> de las l&iacute;neas anteriores).</para>
-
- <para>La variable se defina usando esta l&iacute;nea en
- <filename>bsd.port.mk</filename>:</para>
-
- <programlisting>
-PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout</programlisting>
-
- <para>Los procesos de compilaci&oacute;n de los ports deber&iacute;an usar esta
- variable para decidir que hacer. De todas maneras, si el script
- <filename>configure</filename> del port detecta autom&aacute;ticamente un sistema
- ELF, no es necesario hacer referencia a <makevar>PORTOBJFORMAT</makevar>.</para>
- </sect3>
-
-
-</sect2>
-</sect1>
-
-<sect1 id="porting-pkgname">
- <title>pkgname</title>
- <para>a</para>
-</sect1>
-
-<sect1 id="contrib-general">
- <title>pkgname</title>
- <para>a</para>
-</sect1>
-
-<sect1 id="porting-cleaning">
- <title>pkgname</title>
- <para>a</para>
-</sect1>
-
-<sect1 id="porting-samplem">
- <title>pkgname</title>
- <para>a</para>
-</sect1>
-
-<sect1 id="porting-dads">
- <title>pkgname</title>
- <para>a</para>
-</sect1>
-
-<sect1 id="porting-categories">
- <title>pkgname</title>
- <para>a</para>
-</sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/es_ES.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
deleted file mode 100755
index 094f90c16f..0000000000
--- a/es_ES.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="ppp-and-slip">
- <title>PPP y SLIP</title>
-
- <para>PPP y SLIP</para>
-
- <sect1 id="userppp">
- <title>User-PPP</title>
- <para>&nbsp;</para>
- </sect1>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml b/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml
deleted file mode 100755
index 68adbe29f8..0000000000
--- a/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="printing">
- <title>Impresion</title>
-
- <para>Impresion</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/quotas/chapter.sgml b/es_ES.ISO8859-1/books/handbook/quotas/chapter.sgml
deleted file mode 100755
index 663003ebee..0000000000
--- a/es_ES.ISO8859-1/books/handbook/quotas/chapter.sgml
+++ /dev/null
@@ -1,243 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-<chapter id="quotas">
- <title>Cuotas de disco</title>
-
- <para><emphasis>Contribuido por &a.mpp;. 26 Febrero
- 1996</emphasis></para>
-
- <para>Las cuotas constituyen una prestaci&oacute;n del sistema operativo que
- le permite limitar la cantidad de espacio en disco y/o el n&uacute;mero de
- archivos de que un usuario puede disponer en un determinado sistema de archivos.
- Habitualmente se utiliza en sistemas multiusuario en los que resulta deseable
- limitar la cantidad de recursos de que puede disponer cada usuario o grupo de
- usuarios. De este modo se impide que un usuario agote todo el espacio disponible
- en un disco.</para>
-
- <sect1>
- <title>Configurando su sistema para habilitar las cuotas de disco</title>
-
- <para>Antes de intentar usar las cuotas de disco es necesario asegurarse de que
- se encuentran habilitadas en el n&uacute;cleo del sistema operativo. Esto se
- consigue a&ntilde;adiendo la siguiente l&iacute;nea al archivo de configuraci&oacute;n
- del n&uacute;cleo:</para>
-
- <programlisting>
-options QUOTA</programlisting>
-
- <para>El n&uacute;cleo que se incluye de serie (<filename>GENERIC</filename>) no
- tiene esta funci&oacute;n activada por defecto, por lo que tendr&aacute; que
- configurar, crear e instalar un n&uacute;cleo a medida para utilizar las cuotas
- de disco. Puede acudir a la secci&oacute;n <link linkend="kernelconfig">Configurando
- el n&uacute;cleo de FreeBSD</link>, donde encontrar&aacute; m&aacute;s informaci&oacute;n
- acerca de la configuraci&oacute;n del n&uacute;cleo.</para>
-
- <para>A continuaci&oacute;n, necesitar&aacute; habilitar las cuotas de disco en
- <filename>/etc/sysconfig</filename>. Esto se hace cambiando la l&iacute;nea:
-
- <programlisting>
-quotas=NO</programlisting>
-
- por:
-
- <programlisting>
-quotas=YES</programlisting></para>
-
- <para>Si est&aacute; utilizando FreeBSD 2.2.2 o posterior, el archivo de
- configuraci&oacute;n ser&aacute; <filename>/etc/rc.conf</filename> y el nombre de
- la variable habr&aacute; cambiado a:</para>
-
- <programlisting>
-check_quotas=YES</programlisting>
-
- <para>Finalmente, necesitar&aacute; editar <filename>/etc/fstab</filename> para
- habilitar las cuotas de disco de forma individualizada para cada sistema de archivos.
- Es aqu&iacute; donde puede habilitar cuotas para usuarios, grupos o ambos y para
- todos sus sistemas de archivos.</para>
-
- <para>Para habilitar las cuotas de disco para un determinado usuario en un sistema
- de archivos, a&ntilde;ada la opci&oacute;n <literal>userquota</literal> en el archivo
- <filename>/etc/fstab</filename>, en el campo de opciones del registro correspondiente
- al sistema de archivos para el cual quiere habilitar las cuotas. Por ejemplo:</para>
-
- <programlisting>
-/dev/da1s2g /home ufs rw,userquota 1 2</programlisting>
-
- <para>Análogamente, para habilitar las cuotas para grupos emplee la opci&oacute;n
- <literal>groupquota</literal> en lugar de <literal>userquota</literal>. Para
- habilitar ambas, cuotas de usuario y de grupo, cambie el registro del siguiente modo:
- </para>
-
- <programlisting>
-/dev/da1s2g /home ufs rw,userquota,groupquota 1 2</programlisting>
-
- <para>Por defecto, los archivos relacionados con las cuotas se almacenan en el
- directorio ra&iacute;z del sistema de archivos con los nombres
- <filename>quota.user</filename> y <filename>quota.group</filename>, para las cuotas
- de usuarios y de grupos, respectivamente. Consulte <command>man fstab</command> para
- m&aacute;s informaci&oacute;n. Aunque esa p&aacute;gina man afirma que se puede
- especificar un emplazamiento alternativo para los archivos relacionados con las
- cuotas, esto no es recomendable ya que las diversas utilidades de las cuotas no
- parecen adaptarse convenientemente a este cambio.</para>
-
- <para>En este momento deber&iacute;a reiniciar su sistema con el nuevo n&uacute;cleo.
- <filename>/etc/rc</filename> ejecutar&aacute; autom&aacute;ticamente los comandos
- apropiados para crear los archivos iniciales de las cuotas para todas las cuotas que
- haya activado en <filename>/etc/fstab</filename>, por lo que no hace falta crear
- manualmente ning&uacute;n archivo de cuotas de logitud cero.</para>
-
- <para>Durante el funcionamiento normal del sistema, no debería ser necesario ejecutar
- manualmente los comandos <command>quotacheck</command>, <command>quotaon</command>,
- o <command>quotaoff</command>. Sin embargo, puede interesarle leer sus p&aacute;ginas
- man para familiarizarse con su funcionamiento.</para>
- </sect1>
-
- <sect1>
- <title>Fijando los l&iacute;mites de las cuotas</title>
-
- <para>Una vez haya configurado su sistema para habilitar las cuotas, compruebe que
- realmente han sido habilitadas. Una forma de hacerlo f&aacute;cilmente es ejecutar</para>
-
- <screen>&prompt.root; <userinput>quota -v</userinput></screen>
-
- <para>Deber&iacute;a aparecer una l&iacute;nea describiendo la utilizaci&oacute;n de
- los discos y los l&iacute;mites actuales de cuotas para cada sistema de archivos en
- el que est&eacute;n activadas las cuotas.</para>
-
- <para>Ya est&aacute; listo para comenzar a asignar l&iacute;mites de cuota con el
- mandato <command>edquota</command>.</para>
-
- <para>Tiene varias opciones acerca de c&oacute;mo aplicar l&iacute;mites a la cantidad
- de espacio en disco de que un usuario o grupo puede disponer y la cantidad de archivos
- que pueden crear. Puede limitar la cantidad de disco utilizada en funci&oacute;n del
- espacio f&iacute;sico usado (cuotas de bloque), en funci&oacute;n de los archivos
- (cuotas de inode) o en funci&oacute;n de una combinaci&oacute;n de ambos. Cada uno de
- estos l&iacute;mites se divide en dos categor&iacute;as: l&iacute;mites flexibles y
- r&iacute;gidos.</para>
-
- <para>Los l&iacute;mites r&iacute;gidos no pueden ser sobrepasados. Cuando un usuario
- alcanza su l&iacute;mite r&iacute;gido, ya no puede disponer de m&aacute;s espacio en
- el sistema de archivos en cuesti&oacute;n. Por ejemplo, si el usuario tiene un
- l&iacute;mite r&iacute;gido de 500 bloques en un determinado sistema de archivos y
- ya est&aacute; utilizando 490 bloques, el usuario s&oacute;lo puede asignar 10 bloques
- adicionales. Cualquier intento de asignar 11 bloques fracasar&aacute;.</para>
-
- <para>Por otra parte, los l&iacute;mites flexibles pueden ser sobrepasados por un
- periodo de tiempo limitado. Este periodo de tiempo se conoce como el periodo de gracia,
- que dura una semana por defecto. Si un usuario permanece por encima de su l&iacute;mite
- flexible m&aacute;s all&aacute; del periodo de gracia, el l&iacute;mite flexible se
- convertir&aacute; en un l&iacute;mite r&iacute;gido y no se permitir&aacute; realizar
- nuevas asignaciones. Cuando el usuario se vuelva a situar por debajo del l&iacute;mite
- flexible, el periodo de gracia se reiniciar&aacute;.</para>
-
- <para>A continuaci&oacute;n se muestra un ejemplo de lo que podr&aacute; ver cuando
- ejecute el comando <command>edquota</command>. Cuando se invoca el comando
- <command>edquota</command>, se inicia el editor espeficado en la variable de entorno
- <envar>EDITOR</envar>, o el editor <command>vi</command> en caso de que la variable
- <envar>EDITOR</envar> no se encuentre definida, permiti&eacute;ndole editar los
- l&iacute;mites de las cuotas de disco.</para>
-
- <screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
-
- <programlisting>
-Quotas for user test:
-/usr: blocks in use: 65, limits (soft = 50, hard = 75)
- inodes in use: 7, limits (soft = 50, hard = 60)
-/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
- inodes in use: 0, limits (soft = 50, hard = 60)</programlisting>
-
- <para>Normalmente ver&aacute; dos l&iacute;neas por cada sistema de archivos que
- tenga activadas las cuotas de disco. Una l&iacute;nea para los l&iacute;mites de
- bloques y otra para los l&iacute;mites de inodes. Para modificar los l&iacute;mites
- de las cuotas, simplemente cambie el valor que quiere actualizar. Por ejemplo, para
- elevar el l&iacute;mite de bloques de este usuario de un l&iacute;mite flexible de
- 50 y un l&iacute;mite r&iacute;gido de 75 a un l&iacute;mite flexible de 500 y a un
- l&iacute;mite r&iacute;gido de 600, cambie:
-
- <programlisting> /usr: blocks in use: 65, limits (soft = 50, hard = 75)</programlisting>
- por: <programlisting> /usr: blocks in use: 65, limits (soft = 500, hard = 600)
- </programlisting></para>
-
- <para>Los nuevos l&iacute;mites estar&aacute;n vigentes cuando salga del editor.</para>
-
- <para>En ocasiones resulta deseable imponer l&iacute;mites en las cuotas de disco
- a un intervalo de UIDs (n&uacute;mero de identificaci&oacute;n de usuario). Esto
- se puede hacer empleando la opci&oacute;n <option>-p</option> del comando
- <command>edquota</command>. En primer lugar, asigne el l&iacute;mite deseado al
- usuario y luego ejecute <command>edquota -p protouser UID_inicial-UID_final</command>.
- Por ejemplo, si el usuario <username>test</username> est&aacute; sujeto a l&iacute;mites
- en la cuota de disco, el siguiente comando puede ser empleado para duplicar esos
- l&iacute;mites para los UIDs comprendidos entre 10000 y 19999:</para>
-
- <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
-
- <para>La capacidad de especificar intervalos de UIDs se a&ntilde;adi&oacute; al
- sistema despu&eacute;s de que la versi&oacute;n 2.1 fuese distribuida. Si necesita
- esta funci&oacute;n en un sistema 2.1, deber&aacute; conseguir una copia m&aacute;s
- reciente de edquota.</para>
-
- <para>Consulte <command>man edquota</command>, donde encontrar&aacute; informaci&oacute;n
- m&aacute;s detallada.</para>
- </sect1>
-
- <sect1>
- <title>Comprobando los l&iacute;mites en las cuotas y la utilizaci&oacute;n de
- los discos</title>
-
- <para>Puede utilizar el comando <command>quota</command>, o bien el comando
- <command>repquota</command> para comprobar los l&iacute;mites en las cuotas y la
- utilizaci&oacute;n de los discos. El comando <command>quota</command> puede ser
- empleado para comprobar cuotas individuales y de grupo, as&iacute; como la
- utilizaci&oacute;n de los discos. S&oacute;lo el administrador del sistema puede
- examinar las cuotas y la utilizaci&oacute;n de los discos por otros usuarios o por
- grupos de los que no es miembro. El comando <command>repquota</command> puede ser
- empleado para obtener un resumen de todas las cuotas y la utilizaci&oacute;n de los
- discos para sistemas de archivos que tengan las cuotas habilitadas.</para>
-
- <para>A continuaci&oacute;n se muestra un ejemplo de la salida del comando
- <command>quota -v</command> para un usuario que est&aacute; sujeto a l&iacute;mites
- en la cuota de disco en dos sistemas de archivos.</para>
-
-
- <programlisting>
-Disk quotas for user test (uid 1002):
- Filesystem blocks quota limit grace files quota limit grace
- /usr 65* 50 75 5days 7 50 60
- /usr/var 0 50 75 0 50 60</programlisting>
-
- <para>En el ejemplo anterior, en el sistema de archivos <filename>/usr</filename> el
- usuario ya ha sobrepasado en 15 bloques su l&iacute;mite flexible (fijado en 50 bloques)
- y a&uacute;n dispone de 5 d&iacute;as del periodo de gracia. Observe la presencia de un
- asterisco <literal>*</literal>, lo cual indica que el usuario ha sobrepasado su
- l&iacute;mite en la cuota de disco.</para>
-
- <para>Normalmente, aquellos sistemas de archivos en los que el usuario no est&eacute;
- utilizando espacio no figurar&aacute;n en la salida del comando <command>quota</command>,
- aunque el usuario tenga asignado un l&iacute;mite en la cuota de disco para esos
- sistemas de archivos. La opci&oacute;n <option>-v</option> mostrar&aacute; esos
- sistemas de archivos, como ha sucedido con <filename>/usr/var</filename> en el ejemplo
- anterior.</para>
- </sect1>
-
- <sect1>
- <title>* Cuotas a trav&eacute;s de NFS</title>
-
- <para>Esta secci&oacute;n se encuentra en desarrollo.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/es_ES.ISO8859-1/books/handbook/security/chapter.sgml b/es_ES.ISO8859-1/books/handbook/security/chapter.sgml
deleted file mode 100755
index cea9419847..0000000000
--- a/es_ES.ISO8859-1/books/handbook/security/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="security">
- <title>Seguridad</title>
-
- <para>Seguridad</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/es_ES.ISO8859-1/books/handbook/serialcomms/chapter.sgml
deleted file mode 100755
index 790525b797..0000000000
--- a/es_ES.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="serialcomms">
- <title>Comunicaciones Serie</title>
-
- <para>Comunicaciones Serie</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/books/handbook/staff/chapter.sgml b/es_ES.ISO8859-1/books/handbook/staff/chapter.sgml
deleted file mode 100755
index ef959663eb..0000000000
--- a/es_ES.ISO8859-1/books/handbook/staff/chapter.sgml
+++ /dev/null
@@ -1,802 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="staff">
- <title>Staff del Proyecto FreeBSD</title>
-
- <para>El Proyecto FreeBSD est&aacute; gestionado y operado por los
- siguientes grupos de personas:</para>
-
-
- <sect1 id="staff-core">
- <title>El Core Team de FreeBSD</title>
-
- <para>El core team de FreeBSD constituye el &ldquo;Grupo de
- directores&rdquo;, responsable de decidir el camino a seguir y
- mantener al proyecto en la direcci&oacute;n correcta, as&iacute;
- c&oacute;mo gestionar <link linkend="staff-who">&aacute;reas
- espec&iacute;ficas</link> del proyecto.</para>
-
- <para>(por &oacute;rden alfab&eacute;tico de apellido):</para>
-
-
- <itemizedlist>
-
- <listitem>
- <para>&a.asami;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmb;</para>
- </listitem>
-
- <listitem>
- <para>&a.ache;</para>
- </listitem>
-
- <listitem>
- <para>&a.bde;</para>
- </listitem>
-
- <listitem>
- <para>&a.gibbs;</para>
- </listitem>
-
- <listitem>
- <para>&a.dg;</para>
- </listitem>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
-
- <listitem>
- <para>&a.phk;</para>
- </listitem>
-
- <listitem>
- <para>&a.rich;</para>
- </listitem>
-
- <listitem>
- <para>&a.gpalmer;</para>
- </listitem>
-
- <listitem>
- <para>&a.jdp;</para>
- </listitem>
-
- <listitem>
- <para>&a.guido;</para>
- </listitem>
-
- <listitem>
- <para>&a.sos;</para>
- </listitem>
-
- <listitem>
- <para>&a.peter;</para>
- </listitem>
-
- <listitem>
- <para>&a.wollman;</para>
- </listitem>
-
- <listitem>
- <para>&a.joerg;</para>
- </listitem>
-
- </itemizedlist>
-
-
- </sect1>
-
- <sect1 id="staff-committers">
- <title>Los desarrolladores de FreeBSD</title>
-
- <para>Estas son las personas que tienen privilegios de committes y
- hacen el trabajo de ingenier&iacute;a en el &aacute;rbol de
- c&oacute;digo fuente de FreeBSD. Todos los miembros del core team
- tambi&eacute;n son desarrolladores.</para>
-
-
- <itemizedlist>
- <listitem>
- <para>&a.ugen;</para>
- </listitem>
-
- <listitem>
- <para>&a.mbarkah;</para>
- </listitem>
-
- <listitem>
- <para>&a.stb;</para>
- </listitem>
-
- <listitem>
- <para>&a.pb;</para>
- </listitem>
-
- <listitem>
- <para>&a.abial;</para>
- </listitem>
-
- <listitem>
- <para>&a.jb;</para>
- </listitem>
-
- <listitem>
- <para>&a.torstenb;</para>
- </listitem>
-
- <listitem>
- <para>&a.dburr;</para>
- </listitem>
-
- <listitem>
- <para>&a.charnier;</para>
- </listitem>
-
- <listitem>
- <para>&a.luoqi;</para>
- </listitem>
-
- <listitem>
- <para>&a.ejc;</para>
- </listitem>
-
- <listitem>
- <para>&a.kjc;</para>
- </listitem>
-
- <listitem>
- <para>&a.gclarkii;</para>
- </listitem>
-
- <listitem>
- <para>&a.archie</para>
- </listitem>
-
- <listitem>
- <para>&a.cracauer;</para>
- </listitem>
-
- <listitem>
- <para>&a.adam;</para>
- </listitem>
-
- <listitem>
- <para>&a.dillon;</para>
- </listitem>
-
- <listitem>
- <para>&a.dufault;</para>
- </listitem>
-
- <listitem>
- <para>&a.uhclem;</para>
- </listitem>
-
- <listitem>
- <para>&a.tegge;</para>
- </listitem>
-
- <listitem>
- <para>&a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>&a.julian;</para>
- </listitem>
-
- <listitem>
- <para>&a.rse;</para>
- </listitem>
-
- <listitem>
- <para>&a.se;</para>
- </listitem>
-
- <listitem>
- <para>&a.sef;</para>
- </listitem>
-
- <listitem>
- <para>&a.fenner;</para>
- </listitem>
-
- <listitem>
- <para>&a.jfieber;</para>
- </listitem>
-
- <listitem>
- <para>&a.jfitz;</para>
- </listitem>
-
- <listitem>
- <para>&a.scrappy;</para>
- </listitem>
-
- <listitem>
- <para>&a.lars;</para>
- </listitem>
-
- <listitem>
- <para>&a.billf;</para>
- </listitem>
-
- <listitem>
- <para>&a.tg;</para>
- </listitem>
-
- <listitem>
- <para>&a.brandon;</para>
- </listitem>
-
- <listitem>
- <para>&a.graichen;</para>
- </listitem>
-
- <listitem>
- <para>&a.jgreco;</para>
- </listitem>
-
- <listitem>
- <para>&a.rgrimes;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmg;</para>
- </listitem>
-
- <listitem>
- <para>&a.hanai;</para>
- </listitem>
-
- <listitem>
- <para>&a.thepish;</para>
- </listitem>
-
- <listitem>
- <para>&a.jhay;</para>
- </listitem>
-
- <listitem>
- <para>&a.helbig;</para>
- </listitem>
-
- <listitem>
- <para>&a.ghelmer;</para>
- </listitem>
-
- <listitem>
- <para>&a.erich;</para>
- </listitem>
-
- <listitem>
- <para>&a.nhibma;</para>
- </listitem>
-
- <listitem>
- <para>&a.flathill;</para>
- </listitem>
-
- <listitem>
- <para>&a.hosokawa;</para>
- </listitem>
-
- <listitem>
- <para>&a.hsu;</para>
- </listitem>
-
- <listitem>
- <para>&a.mph;</para>
- </listitem>
-
- <listitem>
- <para>&a.itojun;</para>
- </listitem>
-
- <listitem>
- <para>&a.mjacob;</para>
- </listitem>
-
- <listitem>
- <para>&a.gj;</para>
- </listitem>
-
- <listitem>
- <para>&a.nsj;</para>
- </listitem>
-
- <listitem>
- <para>&a.ljo;</para>
- </listitem>
-
- <listitem>
- <para>&a.kato;</para>
- </listitem>
-
- <listitem>
- <para>&a.andreas;</para>
- </listitem>
-
- <listitem>
- <para>&a.motoyuki;</para>
- </listitem>
-
- <listitem>
- <para>&a.jkoshy;</para>
- </listitem>
-
- <listitem>
- <para>&a.kuriyama;</para>
- </listitem>
-
- <listitem>
- <para>&a.grog;</para>
- </listitem>
-
- <listitem>
- <para>&a.jlemon;</para>
- </listitem>
-
- <listitem>
- <para>&a.truckman;</para>
- </listitem>
-
- <listitem>
- <para>&a.imp;</para>
- </listitem>
-
- <listitem>
- <para>&a.smace;</para>
- </listitem>
-
- <listitem>
- <para>&a.mckay;</para>
- </listitem>
-
- <listitem>
- <para>&a.mckusick;</para>
- </listitem>
-
- <listitem>
- <para>&a.ken;</para>
- </listitem>
-
- <listitem>
- <para>&a.tedm;</para>
- </listitem>
-
- <listitem>
- <para>&a.amurai;</para>
- </listitem>
-
- <listitem>
- <para>&a.markm;</para>
- </listitem>
-
- <listitem>
- <para>&a.max;</para>
- </listitem>
-
- <listitem>
- <para>&a.alex;</para>
- </listitem>
-
- <listitem>
- <para>&a.rnordier;</para>
- </listitem>
-
- <listitem>
- <para>&a.davidn;</para>
- </listitem>
-
- <listitem>
- <para>&a.obrien;</para>
- </listitem>
-
- <listitem>
- <para>&a.danny;</para>
- </listitem>
-
- <listitem>
- <para>&a.ljo;</para>
- </listitem>
-
- <listitem>
- <para>&a.fsmp;</para>
- </listitem>
-
- <listitem>
- <para>&a.smpatel;</para>
- </listitem>
-
- <listitem>
- <para>&a.wpaul;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmacd;</para>
- </listitem>
-
- <listitem>
- <para>&a.wes;</para>
- </listitem>
-
- <listitem>
- <para>&a.steve;</para>
- </listitem>
-
- <listitem>
- <para>&a.mpp;</para>
- </listitem>
-
- <listitem>
- <para>&a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>&a.jraynard;</para>
- </listitem>
-
- <listitem>
- <para>&a.darrenr;</para>
- </listitem>
-
- <listitem>
- <para>&a.csgr;</para>
- </listitem>
-
- <listitem>
- <para>&a.martin;</para>
- </listitem>
-
- <listitem>
- <para>&a.paul;</para>
- </listitem>
-
- <listitem>
- <para>&a.roberto;</para>
- </listitem>
-
- <listitem>
- <para>&a.chuckr;</para>
- </listitem>
-
- <listitem>
- <para>&a.dima;</para>
- </listitem>
-
- <listitem>
- <para>&a.sada;</para>
- </listitem>
-
- <listitem>
- <para>&a.wosch;</para>
- </listitem>
-
- <listitem>
- <para>&a.ats;</para>
- </listitem>
-
- <listitem>
- <para>&a.jseger;</para>
- </listitem>
-
- <listitem>
- <para>&a.vanilla;</para>
- </listitem>
-
- <listitem>
- <para>&a.msmith;</para>
- </listitem>
-
- <listitem>
- <para>&a.des;</para>
- </listitem>
-
- <listitem>
- <para>&a.brian;</para>
- </listitem>
-
- <listitem>
- <para>&a.stark;</para>
- </listitem>
-
- <listitem>
- <para>&a.karl;</para>
- </listitem>
-
- <listitem>
- <para>&a.dt;</para>
- </listitem>
-
- <listitem>
- <para>&a.cwt;</para>
- </listitem>
-
- <listitem>
- <para>&a.pst;</para>
- </listitem>
-
- <listitem>
- <para>&a.hoek;</para>
- </listitem>
-
- <listitem>
- <para>&a.nectar;</para>
- </listitem>
-
- <listitem>
- <para>&a.swallace;</para>
- </listitem>
-
- <listitem>
- <para>&a.dwhite;</para>
- </listitem>
-
- <listitem>
- <para>&a.nate;</para>
- </listitem>
-
- <listitem>
- <para>&a.yokota;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmz;</para>
- </listitem>
-
- <listitem>
- <para>&a.archie;</para>
- </listitem>
-
- </itemizedlist>
-
-
- </sect1>
-
- <sect1 id="staff-doc">
- <title>El Proyecto de Documentaci&oacute;n de FreeBSD</title>
-
- <para>El <ulink URL="http://www.freebsd.org/docproj.html">Proyecto
- de Documentaci&oacute;n</ulink> es responsable de diferentes
- servicios, siendo ejecutado cada uno por un responsable y sus
- <emphasis>ayudantes</emphasis> (si los tiene):</para>
-
-
- <variablelist>
- <varlistentry><term>Responsable del Proyecto de Documentaci&oacute;n</term>
-
- <listitem>
- <para>&a.nik;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Webmaster</term>
-
- <listitem>
- <para>&a.wosch;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Editor del Handbook &amp; FAQ</term>
-
- <listitem>
- <para>&a.faq;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Editor de Noticias</term>
-
- <listitem>
- <para>&a.nsj;</para>
-
- <para><emphasis>Ayudante:</emphasis> &a.john;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Editor del FreeBSD Really-Quick NewsLetter</term>
-
- <listitem>
- <para>Chris Coleman <email>chrisc@vmunix.com</email></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Editor de la Galer&iacute;a y secci&oacute;n Comercial</term>
-
- <listitem>
- <para>&a.nsj;</para>
-
- <para><emphasis>Ayudante:</emphasis> &a.cawimm;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Style Police &amp; Art Director</term>
-
- <listitem>
- <para>&a.opsys;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ingeniero de las Bases de Datos</term>
-
- <listitem>
- <para>&a.mayo;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ingeniero de CGI</term>
-
- <listitem>
- <para>&a.stb;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Bottle Washing</term>
-
- <listitem>
- <para>&a.nsj;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>COnversi&oacute;n de LinuxDoc a DocBook</term>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect1>
-
- <sect1 id="staff-who">
- <title>Qui&eacute;n es responsable de qu&eacute;</title>
-
-
- <variablelist>
- <varlistentry><term>Arquitecto Principal</term>
- <listitem>
- <para>&a.dg;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><ulink
- url="http://www.freebsd.org/docproj/docproj.html">Responsable del Proyecto de Documentaci&oacute;n</ulink></term>
-
- <listitem>
- <para>&a.nik;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><link linkend="l10n">Internationalizaci&oacute;n</link></term>
-
- <listitem>
- <para>&a.ache;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Networking</term>
-
- <listitem>
- <para>&a.wollman;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><link linkend="eresources-mail">Postmaster</link></term>
-
- <listitem>
- <para>&a.jmb;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Coordinador de Release</term>
-
- <listitem>
- <para>&a.jkh;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Relaciones P&uacute;blicas &amp; Corporativas</term>
-
- <listitem>
- <para>&a.jkh;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><ulink url="http://www.freebsd.org/security/">Responsable de Seguridad</ulink></term>
-
- <listitem>
- <para>&a.guido;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><ulink url="http://www.freebsd.org/support.html#cvs">>Responsables del CVS</ulink></term>
-
- <listitem>
- <para>Principal: &a.peter;</para>
-
- <para>Asistente: &a.jdp;</para>
-
- <para>Internacional (Crypto): &a.markm;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><ulink url="http://www.freebsd.org/ports/">Responsable de Ports</ulink></term>
-
- <listitem>
- <para>&a.asami;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>XFree86 Project, Inc.</term>
-
- <listitem>
- <para>&a.rich;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><link linkend="eresources-news">Soporte Usenet</link></term>
-
- <listitem>
- <para>&a.joerg;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><ulink url="http://www.freebsd.org/support.html#gnats">Administrador GNATS</ulink></term>
-
- <listitem>
- <para>&a.steve;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.freebsd.org/internal/">Webmaster</ulink></term>
- <listitem>
- <para>&a.wosch;</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect1>
- </chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/es_ES.ISO8859-1/books/handbook/x11/chapter.sgml b/es_ES.ISO8859-1/books/handbook/x11/chapter.sgml
deleted file mode 100755
index 79b7f589e3..0000000000
--- a/es_ES.ISO8859-1/books/handbook/x11/chapter.sgml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD$
--->
-
-
-<chapter id="x11">
- <title>El sistema X Window</title>
-
- <para>El sistema X Window</para>
-
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/es_ES.ISO8859-1/share/sgml/catalog b/es_ES.ISO8859-1/share/sgml/catalog
deleted file mode 100644
index 5ebe8768fc..0000000000
--- a/es_ES.ISO8859-1/share/sgml/catalog
+++ /dev/null
@@ -1,9 +0,0 @@
- -- ...................................................................... --
- -- FreeBSD SGML Public Identifiers ...................................... --
-
- -- $FreeBSD: doc/share/sgml/catalog,v 1.9 2000/07/08 16:31:28 phantom Exp $
- --
-
-PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
- "freebsd.dsl"
-
diff --git a/es_ES.ISO8859-1/share/sgml/freebsd.dsl b/es_ES.ISO8859-1/share/sgml/freebsd.dsl
deleted file mode 100644
index 7edc07eaac..0000000000
--- a/es_ES.ISO8859-1/share/sgml/freebsd.dsl
+++ /dev/null
@@ -1,45 +0,0 @@
-<!-- $FreeBSD: doc/es_ES.ISO_8859-1/share/sgml/freebsd.dsl,v 1.2 2000/09/28 23:29:45 nbm Exp $ -->
-
-<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
-<!ENTITY freebsd.dsl PUBLIC "-//FreeBSD//DOCUMENT DocBook Language Neutral Stylesheet//EN" CDATA DSSSL>
-]>
-
-<style-sheet>
- <style-specification use="docbook">
- <style-specification-body>
-
- <![ %output.html; [
- (define ($email-footer$)
- (make sequence
- (make element gi: "p"
- attributes: (list (list "align" "center"))
- (make element gi: "small"
- (literal "This, and other documents, can be downloaded from ")
- (make element gi: "a"
- attributes: (list (list "href" "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc"))
- (literal "ftp.FreeBSD.org/pub/FreeBSD/doc/"))
- (literal ".")))
- (make element gi: "p"
- attributes: (list (list "align" "center"))
- (make element gi: "small"
- (literal "For questions about FreeBSD, read the ")
- (make element gi: "a"
- attributes: (list (list "href" "http://www.freebsd.org/docs.html"))
- (literal "documentation"))
- (literal " before contacting <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:questions@FreeBSD.org"))
- (literal "questions@FreeBSD.org"))
- (literal ">.")
- (make empty-element gi: "br")
- (literal "For questions about this documentation, e-mail <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:doc@FreeBSD.org"))
- (literal "doc@FreeBSD.org"))
- (literal ">.")))))
- ]]>
- </style-specification-body>
- </style-specification>
-
- <external-specification id="docbook" document="freebsd.dsl">
-</style-sheet>
diff --git a/fr_FR.ISO8859-1/Makefile b/fr_FR.ISO8859-1/Makefile
deleted file mode 100644
index 1097bbc7d9..0000000000
--- a/fr_FR.ISO8859-1/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# $FreeBSD$
-
-SUBDIR = articles
-SUBDIR+= books
-
-COMPAT_SYMLINK = fr
-
-DOC_PREFIX?= ${.CURDIR}/..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/Makefile b/fr_FR.ISO8859-1/articles/Makefile
deleted file mode 100644
index 90a0ff7873..0000000000
--- a/fr_FR.ISO8859-1/articles/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD: doc/fr_FR.ISO_8859-1/articles/Makefile,v 1.1 1999/11/10 21:28:21 nik Exp $
-# Original revision: 1.3
-#
-
-SUBDIR = diskless-x
-SUBDIR+= fonts
-SUBDIR+= formatting-media
-SUBDIR+= ip-aliasing
-SUBDIR+= make-world
-SUBDIR+= mh
-SUBDIR+= multi-os
-SUBDIR+= new-users
-SUBDIR+= ntfs
-SUBDIR+= ppp
-SUBDIR+= programming-tools
-SUBDIR+= committers-guide
-SUBDIR+= zip-drive
-
-ROOT_SYMLINKS+= new-users
-
-DOC_PREFIX?= ${.CURDIR}/../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/Makefile.inc b/fr_FR.ISO8859-1/articles/Makefile.inc
deleted file mode 100644
index 8ca0ffdd9f..0000000000
--- a/fr_FR.ISO8859-1/articles/Makefile.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD: doc/fr_FR.ISO_8859-1/articles/Makefile.inc,v 1.1 1999/11/10 21:28:21 nik Exp $
-# Original revision: 1.2
-#
-
-DESTDIR?= ${DOCDIR}/fr_FR.ISO_8859-1/articles/${.CURDIR:T}
diff --git a/fr_FR.ISO8859-1/articles/committers-guide/Makefile b/fr_FR.ISO8859-1/articles/committers-guide/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/committers-guide/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/committers-guide/article.sgml b/fr_FR.ISO8859-1/articles/committers-guide/article.sgml
deleted file mode 100644
index eb9a85e71f..0000000000
--- a/fr_FR.ISO8859-1/articles/committers-guide/article.sgml
+++ /dev/null
@@ -1,1233 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
-<!ENTITY sgml.todo SYSTEM "../../books/handbook/todo.sgml">
-<!ENTITY sgml.in-progress SYSTEM "../../books/handbook/in-progress.sgml">
-<!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
- <artheader>
- <title>Le Guide du Nouveau
- &ldquo;<foreignphrase>Committer</foreignphrase>&rdquo;</title>
-
- <authorgroup>
- <author>
- <surname>Projet de Documentation de FreeBSD</surname>
- </author>
- </authorgroup>
-
- <pubdate>Septembre 1999</pubdate>
-
- <copyright>
- <year>1999</year>
- <holder>Projet de Documentation de FreeBSD</holder>
- </copyright>
-
- <abstract>
- <para>Nouveau &ldquo;<foreignphrase>committer</foreignphrase>&rdquo;,
- bienvenue dans l'&eacute;quipe de d&eacute;veloppement de FreeBSD&nbsp;!</para>
-
- <para>L'objectif de cette documentation est de vous orienter sur la
- fa&ccedil;on d'utiliser CVS sur la machine d'archive centrale de FreeBSD. Il
- est pr&eacute;sum&eacute; que vous avez d&eacute;j&agrave; une connaissance de base de CVS,
- quoique des informations de r&eacute;f&eacute;rence, des guides et Questions
- Fr&eacute;quemment Pos&eacute;es soient disponibles &agrave; l'adresse&nbsp;:
- <ulink url="http://www.cyclic.com/cyclic-pages/books.html">http://www.cyclic.com/cyclic-pages/books.html</ulink></para>
-
- <para>Bonne chance, et bienvenue &agrave; bord&nbsp;!</para>
-
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.haby;
-
- </abstract>
- </artheader>
-
- <sect1 id="admin">
- <title>D&eacute;tails d'organisation</title>
-
- <informaltable frame="none" orient="port">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><emphasis>Machine d'archive principale</emphasis></entry>
- <entry><hostid>freefall.FreeBSD.org</hostid></entry>
- </row>
-
- <row>
- <entry>
- <emphasis>Machine d'archive internationale pour les codes de
- cryptographie</emphasis>
- </entry>
- <entry><hostid>internat.FreeBSD.org</hostid></entry>
- </row>
-
- <row>
- <entry><emphasis>M&eacute;thode de connexion</emphasis></entry>
- <entry>&man.ssh.1;</entry>
- </row>
-
- <row>
- <entry><emphasis>R&eacute;pertoire CVSROOT</emphasis></entry>
- <entry>/home/ncvs</entry>
- </row>
-
- <row>
- <entry><emphasis>R&eacute;pertoire CVSROOT pour la version internationale
- des codes de cryptographie</emphasis></entry>
- <entry>/home/cvs.crypt</entry>
- </row>
-
- <row>
- <entry><emphasis>Administrateurs des archives CVS
- principales</emphasis></entry>
- <entry>&a.jdp; et &a.peter; ainsi que &a.asami; pour
- <filename>ports/</filename></entry>
- </row>
-
- <row>
- <entry>
- <emphasis>Administrateur des archives CVS pour la version
- internationale des codes de cryptographie</emphasis>
- </entry>
- <entry>&a.markm;</entry>
- </row>
-
- <row>
- <entry><emphasis>Liste de diffusion</emphasis></entry>
- <entry><email>cvs-committers@FreeBSD.org</email></entry>
- </row>
-
- <row>
- <entry><emphasis>Etiquettes CVS importantes</emphasis></entry>
- <entry>RELENG_3 (3.x-STABLE), HEAD (-CURRENT)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Il vous est demand&eacute; d'utiliser &man.ssh.1; ou &man.telnet.1;
- et Kerberos 5 pour vous connecter aux machines d'archive. Ces m&eacute;thodes
- sont globalement plus s&ucirc;res qu'un simple &man.telnet.1; ou
- &man.rlogin.1; parce que la n&eacute;gociation de l'authentification est
- crypt&eacute;e. Par d&eacute;faut &man.ssh.1; crypte toute la session. Les utilitaires
- disponibles &man.ssh-agent.1; et &man.scp.1; sont aussi bien plus
- pratiques. Si vous ne connaissez pas &man.ssh.1, reportez-vous &agrave; la
- <xref linkend="ssh.guide">.</para>
- </sect1>
-
- <sect1 id="cvs.operations">
- <title>Op&eacute;rations CVS</title>
-
- <para>Les op&eacute;rations CVS se font habituellement en se connectant &agrave;
- <hostid>freefall</hostid>, v&eacute;rifiant que votre variable d'environnement
- <envar>CVSROOT</envar> est bien positionn&eacute;e &agrave;
- <filename>/home/ncvs</filename>, et en effectuant les op&eacute;rations
- d'extraction (<foreignphrase>check-out</foreignphrase>) et de mise &agrave;
- jour (<foreignphrase>check-in</foreignphrase>) n&eacute;cessaires. Si vous
- avez quelque chose d'enti&eacute;rement nouveau &agrave; ajouter (un nouveau logiciel
- port&eacute;, du source d'origine externe, etc.), il existe une proc&eacute;dure
- appel&eacute;e <quote>easy-import</quote> qui facilite cette op&eacute;ration. Elle
- ajoute automagiquement une entr&eacute;e pour le nouveau module, fait ce qu'il
- faut via <command>cvs import</command>, etc. &ndash; ex&eacute;cutez-la sans
- arguments et elle vous demandera tout ce qu'elle a besoin de
- savoir.</para>
-
- <para>Si vous avez la pratique de CVS &agrave; distance et vous consid&eacute;rez
- relativement op&eacute;rationnel sur CVS en g&eacute;n&eacute;ral, vous pouvez aussi effectuer
- les op&eacute;rations CVS directement depuis votre machine avec une copie
- local &agrave; jour des sources. N'oubliez cependant pas de positionner
- <envar>CVS_RSH</envar> &agrave; <wordasword>ssh</wordasword> de fa&ccedil;on &agrave;
- utiliser un moyen de transmission s&eacute;curis&eacute; et fiable. D'une autre c&ocirc;t&eacute;,
- si vous ne savez pas ce que cela veut dire, tenez-vous en s'il vous
- pla&icirc;t &agrave; la m&eacute;thode qui consiste &agrave; vous connecter &agrave;
- <hostid>freefall</hostid> et mettre en place vos modifications avec
- &man.patch.1;.</para>
-
- <para>Si vous avez &agrave; utiliser les op&eacute;rations <command>add</command> et
- <command>delete</command> pour faire en fait une op&eacute;ration
- <quote>mv</quote>, il faut une copie sur l'archive plut&ocirc;t que votre
- commande CVS <command>add</command> suivie d'un
- <command>delete</command>. Dans ce cas, un <link
- linkend="conventions">Administrateur CVS</link> copiera le(s) fichier(s)
- l&agrave; o&ugrave; il(s) doi(ven)t aller et vous avertira une fois qu'il l'aura fait.
- Le but de la copie dans les archives est de conserver l'historique des
- modifications, la journalisation. Le Projet FreeBSD accorde une grande
- importance &agrave; l'historique du projet que CVS nous permet de
- conserver.</para>
- </sect1>
-
- <sect1 id="conventions">
- <title>Conventions et Traditions</title>
-
- <para>Les Administrateurs CVS (Peter Wemm et John Polstra) sont les
- <quote>propri&eacute;taires</quote> des archives CVS et sont responsables de
- chaque et de <emphasis>toute</emphasis> modification directe de
- celles-ci pour mise au propre ou rectification d'erreur CVS d&ucirc;e &agrave; un
- <foreignphrase>committer</foreignphrase>. Personne d'autre ne doit
- intervenir directement sur les archives. Si vous faites un fausse
- manipulation, une importation incorrecte ou vous trompez d'&eacute;tiquette
- par exemple, n'essayez <emphasis role="bold">pas</emphasis> de la
- rectifier vous-m&ecirc;me&nbsp;! Envoyez imm&eacute;diatement un courrier
- &eacute;lectronique ou t&eacute;l&eacute;phonez &agrave; John ou Peter et expliquez leur le
- probl&egrave;me. Satoshi Asami est aussi Administrateur CVS pour la partie
- <filename>ports/</filename> de l'arborescence. Mark Murray est
- l'administrateur des archives internationales pour les logiciels de
- cryptographie, en Afrique du Sud.</para>
-
- <para>Si vous &ecirc;tes nouveau <foreignphrase>committer</foreignphrase>, la
- premi&egrave;re chose &agrave; faire est de vous ajouter vous-m&ecirc;me &agrave; la liste des
- d&eacute;veloppeurs (section 28.2) du Manuel de R&eacute;f&eacute;rence. Extraire le manuel
- de r&eacute;f&eacute;rence et ajouter une entr&eacute;e &agrave; la liste est relativement facile,
- mais c'est n&eacute;anmoins un bon test initial de vos comp&eacute;tences CVS. Si
- vous pouvez le faire, vous n'aurez probablement pas de probl&egrave;mes par
- la suite.</para>
-
- <para>L'&eacute;tape suivante consiste &agrave; vous pr&eacute;senter aux autres
- <foreignphrase>committers</foreignphrase>, sans quoi ils n'auront aucune
- id&eacute;e de qui vous &ecirc;tes et &agrave; quoi vous travaillez. Il n'est pas
- n&eacute;cessaire de r&eacute;diger une biographie exhaustive, un paragraphe ou deux
- suffiront, pour dire qui vous &ecirc;tes et &agrave; quoi vous comptez travailler sur
- FreeBSD. Envoyez-les par courrier &eacute;lectronique &agrave;
- <email>cvs-committers@FreeBSD.org</email> et vous serez pr&ecirc;t &agrave; commencer
- &agrave; travailler&nbsp;!</para>
-
- <para>N'oubliez pas aussi de vous connecter &agrave;
- <hostid>hub.FreeBSD.org</hostid> et de vous y cr&eacute;ez un fichier
- <filename>/var/forward/<replaceable>utilisateur</replaceable></filename>
- (o&ugrave; <replaceable>utilisateur</replaceable> est votre nom d'utilisateur),
- qui contienne votre adresse de courrier &eacute;lectronique principale o&ugrave; vous
- souhaitez que le courrier &eacute;lectronique adress&eacute; &agrave;
- <replaceable>votre_nom_d_utilisateur</replaceable>@FreeBSD.org vous soit
- redirig&eacute;. Les bo&icirc;tes aux lettres vraiment volumineuses qui demeurent en
- en permanence sur <hostid>hub</hostid> sont souvent
- <quote>accidentellement</quote> tronqu&eacute;es sans avertissement, redirigez
- donc votre courrier, ou lisez-le, et vous ne le perdrez pas.</para>
-
- <para>Tous les nouveaux <foreignphrase>committers</foreignphrase> ont un
- mentor qui leur est assign&eacute; les premiers mois. Votre mentor est plus ou
- moins charg&eacute; de vous expliquer tout ce que vous ne comprenez pas bien et
- est aussi responsable de ce que vous faites &agrave; vos d&eacute;buts. Si vous faites
- une soummission erron&eacute;e, c'est votre mentor qui sera ennuy&eacute; et vous
- devriez probablement vous fixer comme ligne de conduite de faire passer
- vos premi&egrave;res soumissions par lui avant de les int&eacute;grer aux
- archives.</para>
-
- <para>Toutes les soumissions doivent &ecirc;tre int&eacute;gr&eacute;es d'abord &agrave;
- <literal>-CURRENT</literal>, avant d'aller dans
- <literal>-STABLE</literal>. Aucune nouvelle fonctionnalit&eacute; ou
- modification &agrave; haut risque ne devrait &ecirc;tre int&eacute;gr&eacute;e &agrave; la branche
- <literal>-STABLE</literal>.</para>
- </sect1>
-
- <sect1 id="developer.relations">
- <title>Relations entre d&eacute;veloppeurs</title>
-
- <para>Si vous travaillez directement sur votre propre code ou sur du code
- dont il est bien &eacute;tabli que vous avez la responsabilit&eacute;, il n'est
- probablement pas n&eacute;cessaire de valider ce que vous allez faire avec
- d'autres d&eacute;veloppeurs avant de soumettre du code. Si vous trouvez un
- bogue dans un module qui est manifestement orphelin (il y en a
- malheureusement quelques uns), cela s'y applique aussi. Si, au
- contraire, vous vous appr&ecirc;tez &agrave; modifier quelque chose qui est
- activement maintenu par quelqu'un d'autre (ce n'est qu'en surveillant
- la &a.cvsall; que vous pourrez vous faire une id&eacute;e de ce qu'il l'est et
- de ce qui ne l'est pas), envisagez alors de lui envoyer vos
- modifications, tout comme vous l'auriez fait quand vous n'&eacute;tiez pas
- <foreignphrase>committer</foreignphrase>. Pour les logiciels port&eacute;s,
- vous devriez contacter la personne list&eacute;e comme
- <makevar>MAINTAINER</makevar> dans le <filename>Makefile</filename>.
- Pour le reste des archives, si vous n'&ecirc;tes pas s&ucirc;r de qui maintient
- effectivement tel ou tel module, il peut &ecirc;tre utile de passer en revue
- le r&eacute;sultat de <command>cvs log</command> pour voir qui a soumis des
- modifications dans le pass&eacute;. Si vous ne trouvez personne, ou si la
- personne en charge montre un d&eacute;sinter&ecirc;t pour la partie en question,
- allez-y et faites vos modifications.</para>
-
- <para>Si vous avez pour une raison ou une autre des doutes &agrave; propos d'une
- soumission que vous envisagez, faites-la d'abord examiner par
- <literal>-hackers</literal> avant de l'int&eacute;grer. Il vaut mieux que l'on
- vous fasse des remarques alors, qu'une fois qu'elle fera partie des
- archives CVS. S'il vous arrive de soumettre quelque chose qui soul&egrave;ve
- une controverse, envisagez &eacute;ventuellement de faire marche arri&egrave;re
- en attendant que la question soit r&eacute;gl&eacute;e. N'oubliez pas &ndash; avec
- CVS, vous pourrez toujours remettre votre modification en
- service.</para>
- </sect1>
-
- <sect1 id="gnats">
- <title>GNATS</title>
-
- <para>Le Projet FreeBSD utilise <application>GNATS</application> pour
- enregistrer les rapports de bogues et les demandes de modification. Si
- vous effectuez une correction ou une modification d&eacute;crite dans un
- PR&nbsp;-&nbsp;<foreignphrase>Problem Report</foreignphrase>, rapport
- d'anomalie&nbsp;-&nbsp;<application>GNATS</application>, veillez &agrave;
- utiliser
- <command>edit-pr <replaceable>num&eacute;ro_de_pr</replaceable></command>
- sur <hostid>freefall</hostid> pour le fermer. L'usage veut aussi que
- vous preniez le temps de fermer les rapports ayant trait &agrave; vos
- soumission, le cas &eacute;ch&eacute;ant. Vous pouvez aussi utiliser vous-m&ecirc;me
- &man.send-pr.1; pour proposer les modifications dont vous pensez qu'il
- faut les probablement les faire, apr&egrave;s une revue plus extensive par
- les autres participants.</para>
-
- <para>Vous trouverez plus d'informations sur
- <application>GNATS</application> aux adresses suivantes&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html">http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.FreeBSD.org/support.html">http://www.FreeBSD.org/support.html</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</ulink></para>
- </listitem>
-
- <listitem>
- <para>&man.send-pr.1;</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="people">
- <title>Who's Who</title>
-
- <para>En dehors de Peter Wemm et John Polstra, les administrateurs des
- archives, il y a d'autres membres du Projet FreeBSD que vous
- rencontrerez probablement dans votre nouvelle fonction de
- <foreignphrase>committer</foreignphrase>. Rapidement, et en aucun
- cas exhaustivement, ce sont&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>&a.asami;</term>
-
- <listitem>
- <para>Est le reponsable du catalogue des logiciels port&eacute;s, ce qui
- signifie qu'il a le pouvoir de d&eacute;cision en ce qui concerne toute
- modification aux logiciels port&eacute;s et &agrave; leurs macros-instructions
- de compilation. Il est aussi responsable la gestion des gels du
- code entre deux versions.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.bde;</term>
-
- <listitem>
- <para>Est l'<foreignphrase>Obersturmbahnfuhrer</foreignphrase> de la
- Police du Style. Quand vous soumettez quelque chose que vous
- auriez pu faire mieux, Bruce sera l&agrave; pour vous le signaler.
- Remerciez-le qu'il y ait quelqu'un pour le faire.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.dg;</term>
-
- <listitem>
- <para>Est notre architecte principal et superviseur du syst&egrave;me de
- gestion de la m&eacute;moire virtuelle. Si vous envisagez une
- modification de ce syst&egrave;me, voyez cela avec David. Si vous &ecirc;tes
- pris dans une discussion &acirc;pre et insoluble avec un autre
- participant &agrave; propos d'une modification envisag&eacute;e (ce qui,
- heureusement, ne se produit pas souvent), il peut aussi
- occasionnellement &ecirc;tre n&eacute;cessaire de demander alors &agrave; David
- de mettre sa casquette d'Architecte Principal et de prendre la
- d&eacute;cision finale.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.jkh;</term>
-
- <listitem>
- <para>Est le responsable des versions. Il a la charge de d&eacute;finir les
- dates but&eacute;es et de superviser le processus de mise en place de la
- nouvelle version. Pendant les gels du code, il a aussi le pouvoir
- de d&eacute;cision sur toutes les modifications sur la branche de code
- qui est en cours de finalisation. S'il y a quelque chose que vous
- voudriez voir reporter de <literal>-CURRENT</literal> dans
- <literal>-STABLE</literal> (quelqu'int&eacute;r&ecirc;t que cela puisse avoir &agrave;
- un moment donn&eacute;), c'est aussi la personne &agrave; qui il faut en
- parler.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.markm;</term>
- <listitem>
- <para>Mark est le responsable des archives CVS internationales pour
- le code de cryptographie, sur
- <hostid>internat.FreeBSD.org</hostid> en Afrique du Sud.</para>
-
- <para>Mark supervise la plupart du code de cryptographie&nbsp;; si
- vous vous y envisagez des mises &agrave; jour, parlez-en s'il vous pla&icirc;t
- d'abord &agrave; Mark.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.steve;</term>
-
- <listitem>
- <para>Steve est le responsable non officiel de
- <filename>/usr/src/bin</filename>. S'il y a quelque chose
- d'important que vous voudriez y voir, vous devriez probablement
- envisager d'abord cela avec Steve. Il est aussi administrateur des
- &ldquo;<foreignphrase>Problem Report</foreignphrase>&rdquo;, en
- coop&eacute;ration avec &a.phk;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.brian;</term>
-
- <listitem>
- <para>Maintient officiellement
- <filename>/usr/bin/ppp</filename> et
- <application>LPD</application>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&a.wollman;</term>
-
- <listitem>
- <para>Si vous avez besoin d'un conseil sur des points obscurs du
- code r&eacute;seau ou n'&ecirc;tes pas certain d'une modification que vous
- envisagez &agrave; ce sous-syst&egrave;me, c'est avec Garrett qu'il faut en
- discuter.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="ssh.guide">
- <title>Introduction rapide &agrave; <application>SSH</application></title>
-
- <procedure>
- <step>
- <para>Mettez &agrave; jour et installez le logiciel port&eacute;
- <application>ssh</application> dans
- <filename>/usr/ports/security/ssh</filename> (il faut une version
- 1.2.25 ou post&eacute;rieure).</para>
- </step>
-
- <step>
- <para>Veillez &agrave; ex&eacute;cuter &man.ssh-agent.1; avant toute autre
- application. Les utilisateurs de <application>X</application>, par
- exemple, le font habituellement depuis leur fichier
- <filename>.xsession</filename> ou
- <filename>.xinitrc</filename>. Reportez-vous &agrave; &man.ssh-agent.1;
- pour plus de d&eacute;tails.</para>
- </step>
-
- <step>
- <para>G&eacute;n&eacute;rez une paire de cl&eacute;s avec &man.ssh-keygen.1;. Ces cl&eacute;s
- seront cr&eacute;&eacute;es dans le r&eacute;pertoire
- <filename><envar>$HOME</envar>/.ssh</filename>.</para>
- </step>
-
- <step>
- <para>Copiez votre cl&eacute; publique
- (<filename><envar>$HOME</envar>/.ssh/identity.pub</filename>)
- dans le fichier <filename>authorized_keys</filename> de votre
- r&eacute;pertoire utilisateur sur <hostid>freefall</hostid>
- (i.e.
- <filename><envar>$HOME</envar>/.ssh/authorized_keys</filename>).
- </para>
- </step>
- </procedure>
-
- <para>Vous devriez maintenant pouvoir utiliser &man.ssh-add.1; pour vous
- authentifier &agrave; chaque d&eacute;but de session. Il vous demandera la phrase cl&eacute;
- pour votre cl&eacute; priv&eacute;e, et l'enregistrera via votre agent
- d'authentification (&man.ssh-agent.1;) de fa&ccedil;on &agrave; ce que vous n'ayez
- plus &agrave; la retaper &agrave; chaque fois.</para>
-
- <para>Testez en faisant quelque chose du style&nbsp;: <command>ssh
- freefall.FreeBSD.org ls /usr</command>.</para>
-
- <para>Pour plus d'informations, reportez-vous &agrave;
- <filename>/usr/ports/security/ssh</filename>, &man.ssh.1;,
- &man.ssh-agent.1;, &man.scp.1;, et &man.ssh-keygen.1;.</para>
- </sect1>
-
- <sect1>
- <title>R&eacute;gles &agrave; Suivre par les <foreignphrase>Committers</foreignphrase>
- FreeBSD</title>
-
- <orderedlist>
- <listitem>
- <para>Respectez les autres
- <foreignphrase>committers</foreignphrase>.</para>
- </listitem>
-
- <listitem>
- <para>Discutez de toute modification importante
- <emphasis>avant</emphasis> int&eacute;gration.</para>
- </listitem>
-
- <listitem>
- <para>Respectez les reponsables de la maintenance s'il y en a de
- d&eacute;finis par la variable <makevar>MAINTAINER</makevar> du
- <filename>Makefile</filename> ou dans le fichier
- <filename>MAINTAINER</filename> au premier niveau de
- l'arborescence.</para>
- </listitem>
-
- <listitem>
- <para>N'intervenez jamais directement sur les archives. Demandez au
- reponsable de ces archives de le faire.</para>
- </listitem>
-
- <listitem>
- <para>Toute modification controvers&eacute;e doit, si le responsable de
- la maintenance ou l'Architecte Principal le demande, &ecirc;tre annul&eacute;e
- jusqu'&agrave; ce que la discussion soit termin&eacute;e. Les modifications pour
- des questions de s&eacute;curit&eacute; peuvent &ecirc;tre effectu&eacute;es par l'Officier de
- S&eacute;curit&eacute;, malgr&eacute; les souhaits d'un responsable de la
- maintenance.</para>
- </listitem>
-
- <listitem>
- <para>Les modifications doivent &ecirc;tre faites dans
- <literal>-current</literal> avant d'&ecirc;tre report&eacute;es dans
- <literal>-stable</literal> sauf autorisation expresse du
- responsable des versions ou si elles ne s'appliquent pas &agrave;
- <literal>-current</literal>. Toute modification non triviale ni
- urgente doit rester au moins trois jours dans
- <literal>-current</literal> pour &ecirc;tre test&eacute;e suffisamment avant
- d'&ecirc;tre report&eacute;e. Le responsable des versions a les m&ecirc;mes
- pr&eacute;rogatives sur la branche <literal>-stable</literal> que celles
- d&eacute;crites, pour ce qui concerne l'Architecte Principal, par le r&egrave;gle
- #5.</para>
- </listitem>
-
- <listitem>
- <para>Ne vous disputez pas publiquement avec les autres
- <foreignphrase>committers</foreignphrase>&nbsp;; cela fait mauvais
- effet. Si vous &ecirc;tes en &ldquo;profond&rdquo; d&eacute;saccord sur un point,
- n'en discutez qu'en priv&eacute;.</para>
- </listitem>
-
- <listitem>
- <para>Respectez tous les gels du code et lisez r&eacute;guli&egrave;rement la liste
- de diffusion pour les <foreignphrase>committers</foreignphrase> pour
- savoir quand il y en a.</para>
- </listitem>
-
- <listitem>
- <para>En cas de doute sur une proc&eacute;dure, renseignez-vous
- d'abord&nbsp;!</para>
- </listitem>
-
- <listitem>
- <para>Testez vos modifications avant de les int&eacute;grer.</para>
- </listitem>
- </orderedlist>
-
- <para>Comme indiqu&eacute;, enfreindre l'un de ces r&egrave;gles peut entra&icirc;ner une
- suspension provisoire, et, en cas de r&eacute;cidive, une suppression
- permanente des privil&egrave;ges de <foreignphrase>committers</foreignphrase>.
- Trois membres ou plus de l'&eacute;quipe de base, ou l'Architecte Principal et
- un autre membre de l'&eacute;quipe de base, peuvent, s'ils en sont d'accord,
- suspendre temporairement ces privil&egrave;ges jusqu'&agrave; ce que l'ensemble de
- <literal>-core</literal> examine la question. En cas
- d'<quote>urgence</quote> (un <foreignphrase>committer</foreignphrase>
- endommageant les archives), une suspension provisoire peut aussi &ecirc;tre
- d&eacute;cid&eacute;e par l'un des administrateurs des archives ou tout autre membre
- de l'&eacute;quipe de base qui se trouve &ecirc;tre r&eacute;veill&eacute; &agrave; ce moment-l&agrave;. Seule la
- totalit&eacute; de l'&eacute;quipe de base peut suspendre pour une dur&eacute;e importante
- les droits d'un <foreignphrase>committer</foreignphrase>, ou les
- retirer d&eacute;finitivement, cette derni&egrave;re mesure n'&eacute;tant en g&eacute;n&eacute;ral prise
- qu'apr&egrave;s consultation avec les
- <foreignphrase>committers</foreignphrase>. Le but de cette r&egrave;gle n'est
- pas de faire de l'&eacute;quipe de base une bande de dictateurs cruels qui
- puissent disposer des <foreignphrase>committers</foreignphrase> comme de
- cannettes vides, mais d'avoir une sorte de fusible pour le projet. Si
- quelqu'un est s&eacute;v&egrave;rement incontr&ocirc;lable, il est important de pouvoir
- r&eacute;agir imm&eacute;diatement, au lieu d'&ecirc;tre paralys&eacute; par la discussion. Dans
- tous les cas, le <foreignphrase>committers</foreignphrase> dont les
- privil&egrave;ges sont suspendus a le droit d'&ecirc;tre &ldquo;entendu&rdquo;, c'est
- &agrave; ce moment-l&agrave; qu'il est d&eacute;cid&eacute; de la dur&eacute;e totale de la suspension. Il
- peut aussi demander un r&eacute;vision de la d&eacute;cision apr&egrave;s 30 jours et tous
- les 30 jours ensuite (&agrave; moins que la dur&eacute;e totale de la suspension soit
- inf&eacute;rieure &agrave; 30 jours). Quelqu'un &agrave; qui les privil&egrave;ges ont &eacute;t&eacute;
- d&eacute;finitivement retir&eacute; peut demander que son cas soit revu apr&egrave;s 6 mois.
- La proc&eacute;dure de r&eacute;vision est <emphasis>strictement
- informelle</emphasis>, et, dans tous les cas, l'&eacute;quipe de base se
- r&eacute;serve le droit de prendre en compte ou d'ignorer les demandes de
- r&eacute;vision, si elle pense que sa d&eacute;cision initiale &eacute;tait la bonne.</para>
-
- <para>Pour toutes les autres aspects du fonctionnement du projet, l'&eacute;quipe
- de base est un sous-ensemble des
- <foreignphrase>committers</foreignphrase> et est soumise aux
- <emphasis>m&ecirc;me</emphasis> r&egrave;gles. Ce n'est pas parce que quelqu'un
- appartient &agrave; l'&eacute;quipe de base qu'il est dispens&eacute; de suivre les
- instructions que l'on vient de donner, les &ldquo;pouvoirs
- sp&eacute;ciaux&rdquo; de l'&eacute;quipe de base ne sont effectifs que lorsqu'elle
- agit en tant que groupe, pas individuellement.
- Individuellement, nous sommes tous d'abord des
- <foreignphrase>committers</foreignphrase> et ensuite seulement membres
- de l'&eacute;quipe de base.</para>
-
- <sect2>
- <title>D&eacute;tails</title>
-
- <orderedlist>
- <listitem>
- <para>Respectez les autres
- <foreignphrase>committers</foreignphrase>.</para>
-
- <para>Cela signifie que vous devez traiter les autres
- <foreignphrase>committers</foreignphrase> en tant que groupe de
- co-d&eacute;veloppeurs qu'ils sont en fait. Malgr&eacute; nos tentatives
- occasionnelles pour prouver le contraire, on ne devient pas
- <foreignphrase>committer</foreignphrase> en &eacute;tant stupide et
- rien n'est plus irritant que d'&ecirc;tre trait&eacute; comme tel par un de vos
- collaborateurs. Que nous appr&eacute;cions toujours quelqu'un d'autre
- ou pas (chacun a ses jours sans), nous devons malgr&eacute; tout toujours
- <emphasis>traiter</emphasis> les autres avec respect, sans quoi
- c'est toute l'organisation de l'&eacute;quipe qui se d&eacute;sagr&egrave;ge
- rapidement.</para>
-
- <para>Etre capable de travailler ensemble &agrave; long terme est le plus
- grand atout du projet, bien plus important que n'importe quel
- s&eacute;rie de modifications du code, et transformer les discussions &agrave;
- propos du code en disputes qui affectent notre capacit&eacute; &agrave;
- travailler harmonieusement ensemble &agrave; long terme n'en vaut
- vraiment pas la peine, quelque justification que l'on puisse
- imaginer.</para>
-
- <para>Pour respecter cette r&egrave;gle, n'envoyez pas de courrier
- &eacute;lectronique quand vous &ecirc;tes en col&egrave;re et ne vous comportez en
- outre pas de fa&ccedil;on &agrave; para&icirc;tre inutilement aggressif aux autres.
- Commencez par vous calmer et r&eacute;fl&eacute;chissez &agrave; la mani&egrave;re la plus
- efficace de convaincre l(es) autre(s) personne(s) de la justesse
- de votre point de vue. Ne partez pas sur les chapeaux de roues
- pour vous sentir simplement imm&eacute;diatement mieux au prix d'une
- dispute &agrave; long terme. Non seulement c'est une mauvaise
- &ldquo;gestion des ressources&rdquo;, mais les responsables du
- projet sanctionneront s&eacute;v&eacute;rement les manifestations d'aggressivit&eacute;
- publiques et r&eacute;p&eacute;t&eacute;es, jusqu'&agrave; suspendre ou vous retirer
- d&eacute;finitivement vos privil&egrave;ges de
- <foreignphrase>committer</foreignphrase>. Ce n'est pas une chose
- qu'ils aiment le moins du monde faire, mais l'unit&eacute; est la
- priorit&eacute;. Aucune dose de code ou de judicieux conseils ne s'y
- mesure.</para>
- </listitem>
-
- <listitem>
- <para>Discutez de toute modification importante
- <emphasis>avant</emphasis> int&eacute;gration.</para>
-
- <para>Ce n'est pas dans les archives CVS que les modifications
- doivent &ecirc;tre int&eacute;gr&eacute;es pour validation ou discussion, cela doit
- se faire d'abord sur les listes de dicussion et &ecirc;tre int&eacute;gr&eacute;
- ensuite lorsqu'on est arriv&eacute; &agrave; quelque chose qui approche du
- consensus. Cela ne signifie pas que vous deviez demander la
- permission avant de corriger chaque erreur &eacute;vidente de syntaxe ou
- d'orthographe dans une page de manuel, mais simplement que vous
- devriez essayer de sentir quand vous envisagez une modification
- qui n'est pas aussi triviale et qui demande &agrave; &ecirc;tre discut&eacute;e au
- pr&eacute;alable. Les gens n'ont rien contre les modifications
- d'envergure si le r&eacute;sultat en est quelque chose de nettement
- meilleur que ce qu'ils avaient auparavant, mais ils n'aiment pas
- &ecirc;tre <emphasis>surpris</emphasis> par ces modifications. La
- meilleure fa&ccedil;on de vous assurer que vous allez dans le bon sens et
- de faire valider votre code par un ou plusieurs autres
- <foreignphrase>committers</foreignphrase>.</para>
-
- <para>En cas de doute, demandez une validation&nbsp;!</para>
- </listitem>
-
- <listitem>
- <para>Respectez les responsbales de la maintenance, s'il y en
- a.</para>
-
- <para>De nombreuses parties de FreeBSD n'&ldquo;appartiennent&rdquo;
- &agrave; personne, c'est-&agrave;-dire qu'il n'y aura personne pour pousser de
- hauts cris si vous faites des modifications sur &ldquo;leur&rdquo;
- terrain, mais il vaut mieux s'en assurer d'abord. Une de nos
- convention est de mettre une ligne indiquant qui maintient dans le
- <filename>Makefile</filename> du paquetage ou de la
- sous-arborescence activement maintenue par une ou plusieurs
- personnes&nbsp; voyez <ulink
- url="http://www.FreeBSD.org/handbook/policies.html">http://www.FreeBSD.org/handbook/policies.html</ulink>
- pour plus d'information &agrave; ce sujet. Quand il y a plusieurs
- personnes qui maintiennent une m&ecirc;me section de code, les
- soumissions d'une de ces personnes sur ces sections doivent &ecirc;tre
- revues par au moins une des autres personnes qui la maintiennent.
- Dans le cas o&ugrave; l'<quote>attribution</quote> n'est pas claire,
- vous pouvez aussi consulter les messages de CVS pour les
- fichiers concern&eacute;s, pour voir si quelqu'un a travaill&eacute; dessus
- r&eacute;cemment ou travaille de fa&ccedil;on pr&eacute;dominante sur ce
- domaine.</para>
-
- <para>Il y a d'autres parties de FreeBSD qui sont contr&ocirc;l&eacute;es par
- quelqu'un qui g&egrave;re tout un domaine de l'&eacute;volution de FreeBSD,
- l'internationalisation ou le r&eacute;seau par exemple. Reportez-vous &agrave;
- <ulink
- url="http://www.FreeBSD-fr.org/handbook/staff-who.html">http://www.FreeBSD.org/handbook/staff-who.html</ulink>
- pour avoir plus d'informations &agrave; ce sujet.</para>
- </listitem>
-
- <listitem>
- <para>N'intervenez jamais directement sur les archives. Demandez &agrave;
- un responsable des archives de le faire.</para>
-
- <para>C'est assez clair&nbsp;-&nbsp;vous n'avez pas le droit de
- faire de modifications directement sur les archives, point. En cas
- de difficult&eacute;s, adressez-vous &agrave; l'un des responsables des
- archives en envoyant un courrier &eacute;lectronique &agrave;
- <email>cvs@FreeBSD.org</email> et attendez qu'ils corrigent le
- probl&egrave;me et vous relancent. N'essayez pas de r&eacute;gler le probl&egrave;me
- vous-m&ecirc;me&nbsp;!</para>
-
- <para>Si vous envisagez de supprimer un &eacute;tiquette ou d'en mettre une
- nouvelle, ou bien d'importer du code sur nouvelle branche, il vous
- sera peut-&ecirc;tre utile de demander d'abord un avis. Nombreux sont
- ceux qui se trompent en faisant cela les premi&egrave;res fois et cela
- aboutit &agrave; la modification de nombreux fichiers et irrite les
- utilisateurs de <application>CVSup/CTM</application> qui recoivent
- tout &agrave; coup de nombreuses mises &agrave; jour inutiles.</para>
- </listitem>
-
- <listitem>
- <para>Toute modification controvers&eacute;e doit, si le responsable de
- la maintenance ou l'Architecte Principal le demande, &ecirc;tre annul&eacute;e
- jusqu'&agrave; ce que la discussion soit termin&eacute;e. Les modifications pour
- des questions de s&eacute;curit&eacute; peuvent &ecirc;tre effectu&eacute;es par l'Officier
- de S&eacute;curit&eacute;, malgr&eacute; les souhaits d'un responsable de la
- maintenance.</para>
-
- <para>Ce peut &ecirc;tre dur &agrave; avaler en cas de conflit (quand chaque
- partie est bien s&ucirc;r convaincue qu'elle a raison) mais CVS permet
- d'&eacute;viter de prolonger la dispute, il est bien plus facile de
- revenir sur les modifications, d'attendre que tout le monde se
- calme et d'essayer de voir quelle est la meilleure solution.
- S'il s'av&egrave;re que la modification &eacute;tait la bonne chose &agrave; faire,
- elle peut-&ecirc;tre facilement remise en service. Dans le cas contraire,
- les utilisateurs n'auront pas eu &agrave; subir l'&eacute;volution erronn&eacute;e le
- temps que tout le monde ait d&eacute;battu de sa pertinence. Il est tr&egrave;s
- rare que l'on ait &agrave; revenir sur des modifications archiv&eacute;es, parce
- que la discussion met la plupart du temps en &eacute;vidence les
- interventions controvers&eacute;s ou non justifi&eacute;es avant m&ecirc;me qu'elles
- n'aient &eacute;t&eacute; int&eacute;gr&eacute;es, mais dans les rares cas o&ugrave; cela se produit,
- il faut revenir en arri&egrave;re sans discuter de fa&ccedil;on &agrave; ce que l'on
- puisse imm&eacute;diatement examiner s'il y avait erreur ou non.</para>
- </listitem>
-
- <listitem>
- <para>Les modifications doivent &ecirc;tre faites dans
- <literal>-current</literal> avant d'&ecirc;tre report&eacute;es dans
- <literal>-stable</literal> sauf autorisation expresse du
- responsable des versions ou si elles ne s'appliquent pas &agrave;
- <literal>-current</literal>. Toute modification non triviale ni
- urgente doit rester au moins trois jours dans
- <literal>-current</literal> pour &ecirc;tre test&eacute;e suffisamment avant
- d'&ecirc;tre report&eacute;e. Le responsable des versions a les m&ecirc;mes
- pr&eacute;rogatives sur la branche <literal>-stable</literal> que celles
- d&eacute;crites, pour ce qui concerne l'Architecte Principal, par le r&egrave;gle
- #5</para>
-
- <para>C'est un autre point <quote>sans appel</quote> parce que c'est
- l'ing&eacute;nieur de version qui est en dernier lieu responsable (et
- encaisse les coups) si une modification s'av&egrave;re mal fond&eacute;e.
- Respectez s'il vous pla&icirc;t cette r&egrave;gle et coop&eacute;rez totalement
- avec le responsable des versions pour ce qui concerne la branche
- <literal>-stable</literal>. La gestion de la branche
- <literal>-stable</literal> peut parfois para&icirc;tre excessivement
- conservatrice &agrave; un observateur occasionnel, mais rappelez vous que
- c'est le principe m&ecirc;me de <literal>-stable</literal> et que
- <literal>-current</literal> suit d'autres r&egrave;gles. Il n'y a aucune
- raison d'avoir une branche <literal>-current</literal> si toutes
- les modifications vont imm&eacute;diatement dans
- <literal>-stable</literal>, sans pouvoir d'abord &ecirc;tre test&eacute;es par
- les d&eacute;veloppeurs de <literal>-current</literal>, laissez donc
- passer un peu de temps avant de les reporter dans
- <literal>-stable</literal>, &agrave; moins que la modification ne soit
- critique, urgente, ou suffisamment triviale pour rendre tout
- test ult&eacute;rieur superflu (correction d'ortographe dans les pages
- de manuel, de bogue flagrant ou de faute de frappe, etc.) En
- d'autres termes, faites preuve de bon sens.</para>
- </listitem>
-
- <listitem>
- <para>Ne vous disputez pas publiquement avec les autres
- <foreignphrase>committers</foreignphrase>&nbsp;; cela fait mauvais
- effet. Si vous &ecirc;tes en &ldquo;profond&rdquo; d&eacute;saccord sur un point,
- n'en discutez qu'en priv&eacute;.</para>
-
- <para>Le projet a une image publique &agrave; conserver et cette image est
- tr&egrave;s importante pour nous tous, en particulier si nous voulons
- continuer &agrave; attirer de nouveaux membres. Il y aura des situations
- o&ugrave;, malgr&eacute; tous les efforts de chacun pour rester mesur&eacute;s,
- certains perdront leur calme et laisserons leur col&egrave;re s'exprimer,
- et le mieux que nous puissions faire est d'essayer d'en minimiser
- les effets jusqu'&agrave; ce que chacun se soit de nouveau calm&eacute;. Cela
- signifie que vous ne devez ni laisser exprimer votre col&egrave;re en
- public, ni faire suivre de courriers priv&eacute;s sur des listes ou des
- alias publics. Ce que les gens se disent entre eux est souvent
- moins &eacute;dulcor&eacute; que ce qu'ils disent en public, et ce type
- d'&eacute;change n'y a donc pas sa place&nbsp;-&nbsp;cela ne peut
- qu'envenimer une situation d&eacute;j&agrave; regrettable. Si la personne qui
- vous adresse des reproches prend au moins la pr&eacute;caution de le
- faire en priv&eacute;, ayez vous aussi la correction de le garder pour
- vous. Si vous estimez avoir &eacute;t&eacute; injustement trait&eacute; par un autre
- d&eacute;veloppeur et que cela vous soucie, parlez-en &agrave; l'&eacute;quipe de base
- plut&ocirc;t qu'en public. Nous ferons de notre mieux pour jouer les
- m&eacute;diateurs et ramener les choses au raisonnable. Quand la
- discussion a trait &agrave; une modifications de code et que les
- participants n'arrivent apparemment pas &agrave; se mettre d'accord,
- l'&eacute;quipe de base peut d&eacute;signer une troisi&egrave;me partie ayant l'accord
- mutuel pour r&eacute;soudre le probl&egrave;me. Les autres personnes impliqu&eacute;es
- doivent alors accepter de se plier aux d&eacute;cisions de cette
- troisi&egrave;me partie.</para>
- </listitem>
-
- <listitem>
- <para>Respectez tous les gels du code et lisez r&eacute;guli&egrave;rement la
- liste de diffusion pour les
- <foreignphrase>committers</foreignphrase> pour savoir quand il y
- en a.</para>
-
- <para>Soumettre des modifications pendant un gel du code est
- vraiment une grave erreur et l'on attend des
- <foreignphrase>committers</foreignphrase> qu'ils se tiennent au
- courant de ce qui se passe avant de se remanifester apr&egrave;s une
- longue absence et soumettre 10 Mo de code accumul&eacute;s pendant ce
- temps. Les gens qui se comportent r&eacute;guli&egrave;rement de cette fa&ccedil;on
- verront leurs privil&egrave;ges de
- <foreignphrase>committers</foreignphrase> suspendus jusqu'&agrave; leur
- retour du Joyeux Camp de R&eacute;&eacute;ducation de FreeBSD que nous g&eacute;rons
- au Gröenland.</para>
- </listitem>
-
- <listitem>
- <para>En cas de doute sur une proc&eacute;dure, renseignez-vous
- d'abord&nbsp;!</para>
-
- <para>De nombreuses erreurs sont commises parce que quelqu'un est
- press&eacute; et estime qu'il sait quelle est la meillleure fa&ccedil;on de
- faire quelque chose. Il y a des bonnes chances que vous ne sachiez
- en fait pas comment faire ce que vous n'avez encore jamais fait et
- que vous ayez vraiment besoin de demander d'abord sans quoi vous
- allez vous mettre publiquement dans l'embarras. Il n'y a aucune
- honte &agrave; demander &ldquo;Comment diable fait-on cela&nbsp?&rdquo;,
- nous savons d&eacute;j&agrave; que vous &ecirc;tes quelqu'un d'intelligent, sans quoi
- vous ne seriez pas
- <foreignphrase>committer</foreignphrase>.</para>
- </listitem>
-
- <listitem>
- <para>Testez vos modifications avant de les int&eacute;grer.</para>
-
- <para>Cela peut para&icirc;tre &eacute;vident, mais si c'&eacute;tait vraiment le cas,
- nous ne verrions probablement pas autant de cas o&ugrave; les gens ne le
- font manifestement pas. Si vos modifications touchent le noyau,
- v&eacute;rifiez que vous pouvez toujours compiler et
- <literal>GENERIC</literal> et <literal>LINT</literal>. Si vos
- modifications s'appliquent ailleurs, assurez-vous que vous pouvez
- toujours compiler l'ensemble du syst&egrave;me&nbsp;-&nbsp;<command>make
- world</command>. Si vous faites vos modifications sur une branche
- donn&eacute;e, veillez &agrave; tester vos modifications sur une machine qui
- utilise cette version du syst&egrave;me. Si votre modifications risque
- de poser des probl&egrave;mes sur une autre architecture mat&eacute;rielle,
- veillez &agrave; tester sur toutes les architectures support&eacute;es. Nous
- n'avons actuellement qu'x86 et Alpha, c'est donc assez facile &agrave;
- faire. Si vous avez besoin de tester sur l'AXP, votre compte sur
- <hostid role="fqdn">beast.FreeBSD.org</hostid> vous permet de
- compiler et tester des binaires/noyaux/etc. sur Alpha. Quand
- d'autres architectures seront ajout&eacute;es &agrave; la liste des
- plates-formes support&eacute;es par FreeBSD, des ressources partag&eacute;es
- de test seront disponibles.</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Autres suggestions</title>
-
- <para>Quand vous int&eacute;grez des modifications de la documentation,
- utilisez un correcteur orthographique avant de soumettre. Pour toutes
- les documentations en SGML, vous devrirez aussi v&eacute;rifier que vos
- directives de formatage sont valides, avec un <command>make
- lint</command>.</para>
-
- <para>Pour toutes les pages de manuel en ligne, servez-vous de
- <command>manck</command> (au catalogue des logiciels port&eacute;s) sur la
- page pour v&eacute;rifier que toutes les r&eacute;f&eacute;rences crois&eacute;es et noms de
- fichiers sont corrects et que les <makevar>MKLINK</makevar>s
- appropri&eacute;s sont install&eacute;s.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Questions Fr&eacute;quemment Pos&eacute;es propres aux logiciels port&eacute;s</title>
-
- <qandaset>
- <qandadiv>
- <title>Importer un nouveau logiciel</title>
-
- <qandaentry>
- <question>
- <para>Comment faire pour importer un nouveau logiciel&nbsp;?</para>
- </question>
-
- <answer>
- <para>Lisez s'il vous pla&icirc;t d'abord la section sur la copie des
- archives.</para>
-
- <para>Pour importer un nouveau logiciel, le plus facile est
- d'utiliser la proc&eacute;dure <command>easy-import</command> sur
- <hostid>freefall</hostid>. Elle vous posera quelques questions
- et importera directement le logiciel dans le r&eacute;pertoire que vous
- aurez indiqu&eacute;. Elle a &eacute;t&eacute; &eacute;crite par &a.joerg;, envoyez-lui
- s'il vous pla&icirc;t un courrier &eacute;lectronique si vous avez des
- questions &agrave; propos de <command>easy-import</command>.</para>
-
- <para>Il y a une chose qu'elle ne fera pas &agrave; votre place&nbsp;:
- ajouter le logiciel au <filename>Makefile</filename> du
- r&eacute;pertoire de niveau sup&eacute;rieur (cat&eacute;gorie). Il faudra le faire
- vous-m&ecirc;me.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Y'a-t-il d'autres choses qu'il faut que je sache quand
- j'importe un nouveau logiciel&nbsp;?</para>
- </question>
-
- <answer>
- <para>V&eacute;rifiez votre portage, pour vous assurez qu'il compile et
- que le paquetage est correctement construit. Voici ce qu'il est
- recommand&eacute; de faire&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>make install</userinput>
-&prompt.user; <userinput>make package</userinput>
-&prompt.user; <userinput>make deinstall</userinput>
-&prompt.user; <userinput>pkg_add <replaceable>le_paquetage_que_vous_venez_de_compiler</replaceable></userinput>
-&prompt.user; <userinput>make deinstall</userinput>
-&prompt.user; <userinput>make reinstall</userinput>
-&prompt.user; <userinput>make package</userinput>
- </screen>
-
- <para>Le chapitre
- <ulink url="../handbook/porting.html">faire vous-m&ecirc;me un
- portage</ulink> du Manuel de R&eacute;f&eacute;rence vous donnera des
- instructions plus d&eacute;taill&eacute;es.</para>
-
- <para>Utilisez &man.portlint.1; pour v&eacute;rifier la syntaxe du
- portage. Il n'est pas indispensable d'&eacute;liminer la totalit&eacute; des
- messages d'avertissement, mais veillez &agrave; r&eacute;gler les probl&egrave;mes
- les plus &eacute;vidents.</para>
-
- <para>Si le logiciel port&eacute; a &eacute;t&eacute; soumis par quelqu'un qui n'a
- jamais collabor&eacute; au projet auparavant, ajoutez le nom de cette
- personne &agrave; la section <citetitle pubwork="section">Autres
- Collaborateurs</citetitle> du Manuel de R&eacute;f&eacute;rence.</para>
-
- <para>Fermez le PR, si le portage r&eacute;sulte d'un PR. Pour fermer un
- PR, il suffit d'ex&eacute;cuter <userinput>edit-pr
- <replaceable>PR#</replaceable></userinput> sur
- <hostid>freefall</hostid> et de modifier la valeur de la
- variable <varname>state</varname> de <constant>open</constant>
- en <constant>closed</constant>. On vous demandera d'entrer un
- commentaire, et c'est tout.</para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Copies des archives</title>
-
- <qandaentry>
- <question>
- <para>Quand avons-nous besoin qu'une op&eacute;ration de copie soit faite
- sur les archives&nbsp;?</para>
- </question>
-
- <answer>
- <para>Quand vous voulez importer un logiciel en rapport avec un
- autre logiciel d&eacute;j&agrave; archiv&eacute; dans un autre r&eacute;pertoire, envoyez
- s'il vous pla&icirc;t un courrier &eacute;lectronique au responsable des
- logiciels port&eacute;s pour lui demander son avis.
- <wordasword>En rapport</wordasword> d&eacute;signe ici une version
- diff&eacute;rente ou une version l&eacute;g&egrave;rement modifi&eacute;e. En exemple, on
- peut citer <filename>print/ghostscript*</filename> (versions
- diff&eacute;rentes) et <filename>x11-wm/windowmaker*</filename>
- (version Anglaise et version internationalis&eacute;e).</para>
-
- <para>Comme autre exemple, on peut citer le cas d'un logiciel port&eacute;
- d&eacute;plac&eacute; d'un sous-r&eacute;pertoire &agrave; un autre, ou d'une modification du
- nom d'un r&eacute;pertoire parce que l'auteur a chang&eacute; le nom de son
- logiciel, bien qu'il d&eacute;rive d'un logiciel d&eacute;j&agrave; import&eacute;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Quand n'avons-nous <emphasis>pas</emphasis> besoin q'une
- op&eacute;ration de copie soit faite sur les archives&nbsp;?</para>
- </question>
-
- <answer>
- <para>Quand il n'y a pas d'historique &agrave; conserver. Si un logiciel
- est import&eacute; dans une cat&eacute;gorie erronn&eacute;e et imm&eacute;diatement
- d&eacute;plac&eacute;, il suffit d'un simple <command>cvs remove</command> de
- l'ancien suivi d'un <command>cvs import</command> du
- nouveau.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Que faut-il que je fasse&nbsp;?</para>
- </question>
-
- <answer>
- <para>Envoyez un courrier &eacute;lectronique au responsable des
- logiciels port&eacute;s, qui fera la copie de l'ancien emplacement vers
- le nouveau. Vous en serez averti, et l'on attendra alors de vous
- que vous ex&eacute;cutiez les op&eacute;rations suivantes&nbsp;:</para>
-
- <procedure>
- <step>
- <para><command>cvs remove</command> de l'ancien logiciel (si
- besoin est),</para>
- </step>
-
- <step>
- <para>Correction du <filename>Makefile</filename> de niveau
- sup&eacute;rieur (cat&eacute;gorie),</para>
- </step>
-
- <step>
- <para>Mise &agrave; jour de
- <filename>CVSROOT/modules</filename></para>
- </step>
-
- <step>
- <para>Si d'autres logiciels d&eacute;pendent de celui qui vient
- d'&ecirc;tre mis &agrave; jour, correction des lignes d&eacute;crivant leurs
- d&eacute;pendendances dans leurs
- <filename>Makefile</filename>s,</para>
- </step>
-
- <step>
- <para>Si le logiciel a chang&eacute; de cat&eacute;gories, modification en
- cons&eacute;quence de la ligne <makevar>CATEGORIES</makevar> du
- <filename>Makefile</filename> du logiciel.</para>
- </step>
- </procedure>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Gel des logiciels port&eacute;s</title>
-
- <qandaentry>
- <question>
- <para>Qu'est-ce qu'un <quote>gel des logiciels
- port&eacute;s</quote>&nbsp;?</para>
- </question>
-
- <answer>
- <para>Avant livraison d'une nouvelle version, il est n&eacute;cessaire de
- limiter les interventions sur les archives des logiciels port&eacute;s
- pendant une courte p&eacute;riode, le temps que les paquetages et la
- version elle-m&ecirc;me soient compil&eacute;s. Cela pour garantir la
- coh&eacute;rence entre les diff&eacute;rents composants de la version, c'est
- cela que l'on appelle le <quote>gel des logiciels
- port&eacute;s</quote>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Combien de temps dure ce gel&nbsp;?</para>
- </question>
-
- <answer>
- <para>Habituellement deux &agrave; trois jours.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Qu'est-ce que cela signifie pour moi &nbsp;?</para>
- </question>
-
- <answer>
- <para>Pendant le gel des logiciels port&eacute;s, vous ne devez pas
- soumettre quoi que ce soit dans l'arborescence des logiciels
- port&eacute;s, sauf autorisation explicite du responsable des
- logiciels. <quote>Autorisation explicite</quote> correspond ici
- &agrave; l'un des deux cas de figure suivants&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Vous avez pos&eacute; la question au responsable des logiciels,
- et il vous a r&eacute;pondu&nbsp;: <quote>Allez-y,
- int&eacute;grez</quote>.</para>
- </listitem>
-
- <listitem>
- <para>Le responsable des ports vous a envoy&eacute; un courrier
- &eacute;lectronique, soit directement, soit &agrave; la liste de
- diffusion, pour signaler un probl&egrave;me &agrave; corriger sur le
- logiciel.</para>
- </listitem>
- </itemizedlist>
-
- <para>Notez bien que vous n'&ecirc;tes pas implicitement autoris&eacute; &agrave;
- corriger un logiciel pendant un gel simplement parce qu'il ne
- compile plus.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Comment suis-je averti du d&eacute;but du gel des
- logiciels&nbsp;?</para>
- </question>
-
- <answer>
- <para>Le responsable des logiciels port&eacute;s enverra des messages
- d'avertissement sur la &a.ports; et la &a.committers; pour
- annoncer la mise en oeuvre prochaine d'une nouvelle version,
- habituellement deux &agrave; trois semaines &agrave; l'avance. La date exacte
- ne sera d&eacute;finitivement fix&eacute;e que quelques jours avant. Cela
- parce que le gel des logiciels doit &ecirc;tre synchronis&eacute; avec la
- mise en oeuvre de la version elle-m&ecirc;me, et que ce n'est qu'&agrave; ce
- moment-l&agrave; que l'on sait exactement quand cette op&eacute;ration aura
- lieu.</para>
-
- <para>Quand le gel commencera, il y aura bien s&ucirc;r une nouvelle
- annonce sur la &a.committers;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Comment suis-je averti de la fin du gel des
- logiciels&nbsp;?</para>
- </question>
-
- <answer>
- <para>Quelques heures apr&egrave;s la mise en place de la nouvelle
- version, le responsable des logiciels enverra un courrier
- &eacute;lectronique &agrave; la &a.ports; et &agrave; la &a.committers pour annoncer
- la fin du gel des logiciels. Remarquez que la finalisation de la
- version n'implique pas automatiquement la fin du gel. Nous
- devons nous assurer qu'un probl&egrave;me de derni&egrave;re minute ne demande
- pas de reconstruction imm&eacute;diate de la version.</para>
- </answer>
- </qandaentry>
- </qandadiv>
-
- <qandadiv>
- <title>Questions diverses</title>
-
- <qandaentry>
- <question>
- <para>Comment sais-je si un logiciel port&eacute; compile correctement ou
- non&nbsp;?</para>
- </question>
-
- <answer>
- <para>Commencez par consulter
- <ulink url="http://bento.FreeBSD.org/~asami/errorlogs/">http://bento.FreeBSD.org/~asami/errorlogs/</ulink>.
- Vous y trouverez les messages d'erreurs des derni&egrave;res
- compilations des logiciels port&eacute;s sous
- <literal>3-stable</literal> et
- <literal>4-current</literal>.</para>
-
- <para>N&eacute;anmoins, il ne suffit pas qu'un logiciel n'y apparaisse
- pas pour pouvoir dire qu'il compile correctement. (Une de ses
- d&eacute;pendances, par exemple, peut ne pas avoir compil&eacute;.) Voici les
- r&eacute;pertoires de <hostid>bento</hostid>, n'h&eacute;sitez pas &agrave; aller y
- voir&nbsp;:</para>
-
- <programlisting>
-/a/asami/portbuild/3/errors messages d'erreur de la derni&egrave;re compilation de 3-stable
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/logs tous les messages de la derni&egrave;re compilation de 3-stable
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/packages messages d'erreur sur les paquetages de la derni&egrave;re compilation 3-stable
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/bak/errors messages d'erreur de la derni&egrave;re compilation int&eacute;grale de 3-stable
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/bak/logs tous les messages de la derni&egrave;re compilation de l'int&eacute;grale de 3-stable
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/bak/packages messages d'erreur sur les paquetages de la derni&egrave;re compilation int&eacute;grale de 3-stable
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/4/errors messages d'erreur de la derni&egrave;re compilation de 4-current
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/logs tous les messages de la derni&egrave;re compilation de 4-current
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/packages messages d'erreur sur les paquetages de la derni&egrave;re compilation 4-current
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/bak/errors messages d'erreur de la derni&egrave;re compilation int&eacute;grale de 4-current
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/bak/logs tous les messages de la derni&egrave;re compilation de l'int&eacute;grale de 4-current
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/bak/packages messages d'erreur sur les paquetages de la derni&egrave;re compilation int&eacute;grale de 4-current
- </programlisting>
-
- <para>Essentiellement, si le logiciel apparait dans
- <filename>packages</filename>, ou dans
- <filename>logs</filename> mais pas dans
- <filename>errors</filename>, il compile correctement. (Les
- r&eacute;pertoires <filename>errors</filename> contiennent ce que vous
- voyez sur la page Web.)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>J'ai import&eacute; un nouveau logiciel. Dois-je l'ajouter au
- fichier <filename>INDEX</filename>&nbsp;?</para>
- </question>
-
- <answer>
- <para>Non. Le responsable des logiciels port&eacute;s reg&eacute;n&egrave;re
- l'<filename>INDEX</filename> et l'int&egrave;gre r&eacute;guli&egrave;rement aux
- archives.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Y'a-t-il d'autres fichiers auxquels je ne dois pas
- toucher&nbsp;?</para>
- </question>
-
- <answer>
- <para>Tous les fichiers imm&eacute;diatement dans
- <filename>ports/</filename>, et tous les fichiers des
- sous-r&eacute;pertoires dont le nom commence par une majuscule
- (<filename>Mk</filename>, <filename>Tools</filename>, etc.). Le
- responsable des logiciels est particuli&egrave;rement susceptible pour
- ce qui touche &agrave; <filename>ports/Mk/bsd.port.mk</filename>, n'y
- touchez donc pas &agrave; moins que vous ne vouliez affronter son
- courroux.</para>
- </answer>
- </qandaentry>
- </qandadiv>
- </qandaset>
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/ddwg/Makefile b/fr_FR.ISO8859-1/articles/ddwg/Makefile
deleted file mode 100644
index 68714b471c..0000000000
--- a/fr_FR.ISO8859-1/articles/ddwg/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $Id: Makefile,v 1.1 2000-06-01 19:14:23 gioria Exp $
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/ddwg/article.sgml b/fr_FR.ISO8859-1/articles/ddwg/article.sgml
deleted file mode 100644
index 012e35654a..0000000000
--- a/fr_FR.ISO8859-1/articles/ddwg/article.sgml
+++ /dev/null
@@ -1,1861 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $Id: article.sgml,v 1.1 2000-06-01 19:14:23 gioria Exp $
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-
-<article lang="fr">
- <artheader>
- <title>Le guide de l'auteur de pilotes de p&eacute;riph&eacute;riques pour FreeBSD</title>
- <authorgroup>
- <author>
- <firstname>Eric L.</firstname>
- <surname>Hernes</surname>
- </author>
- </authorgroup>
- &artheader.copyright;
- <abstract>
- <para><email>erich@rrnet.com</email></para>
- <para>29 Mai 1996</para>
- <para>Ce document d&eacute;crit comment ajouter un module de gestion de
-p&eacute;riph&eacute;rique &agrave; FreeBSD. Il <emphasis>n'est pas</emphasis> destin&eacute; pour &ecirc;tre un
-cours d'instruction sur des modules de gestion de p&eacute;riph&eacute;rique
-d'Unix en g&eacute;n&eacute;ral. Il est destin&eacute; pour les auteurs de module de
-gestion de p&eacute;riph&eacute;rique, au courant du mod&egrave;le de module de gestion
-de p&eacute;riph&eacute;rique d'Unix, pour travailler sur FreeBSD.
- </para>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.dntt;
- </abstract>
- </artheader>
-
-
-<sect1>
-<title>Sp&eacute;cificit&eacute; de FreeBSD2.x</title>
-
-<para>Dû aux changements de FreeBSD avec le temps, ce guide est
-seulement pr&eacute;cis en ce qui concerne FreeBSD 2.x. Un guide de
-rechange pour FreeBSD 3.x et au-del&agrave; est en train d'&ecirc;tre &eacute;crit.
-Contactez Jeroen Ruigrok <email>asmodai@wxs.nl</email> si
-vous voulez l'aider &agrave; ce sujet.
-</para>
-</sect1>
-
-
-<sect1>
-<title>G&eacute;n&eacute;ralit&eacute;</title>
-
-<para> <emphasis>Le noyau de FreeBSD est tr&egrave;s bien
-document&eacute;, malheureusement il est enti&egrave;rement &eacute;crit en `C'.</emphasis>
-</para>
-</sect1>
-
-<sect1>
-<title>Types de pilotes de module de p&eacute;riph&eacute;riques.</title>
-
-<sect2>
-<title>Caract&egrave;re</title>
-
-<sect3>
-<title>Structures de donn&eacute;es</title>
-
-<para>Structure <citerefentry><refentrytitle>cdevsw</refentrytitle></citerefentry></para>
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>d_open()</function></title>
-<para>
-<function>d_open()</function> prend plusieurs arguments, la liste formelle ressemble &agrave;
-quelque chose comme :
-</para>
-
-<programlisting>
-int
-d_open(dev_t dev, int flag, int mode, struct proc *p)
-</programlisting>
-
-<para><function>d_open()</function> est appel&eacute; &agrave; <emphasis>chaque</emphasis> ouverture du p&eacute;riph&eacute;rique.</para>
-
-<para>L'argument <citerefentry><refentrytitle>dev</refentrytitle></citerefentry> contient le nombre majeur et mineur du
-p&eacute;riph&eacute;rique ouvert. Ils sont disponibles par les macros
-<citerefentry><refentrytitle><function>major()</function></refentrytitle></citerefentry> et <citerefentry><refentrytitle><function>minor()</function></refentrytitle></citerefentry>
-</para>
-
-<para>Les arguments <citerefentry><refentrytitle>flag</refentrytitle></citerefentry> et <citerefentry><refentrytitle>mode</refentrytitle></citerefentry> sont comme d&eacute;crits sur
-la page de manuel de
-<ulink url="http://www.freebsd.org/cgi/man.cgi?open(2)">open</ulink>.
-Il est recommand&eacute; que vous examiniez
-ces derniers pour vous assurer des droits d'acc&egrave;s dans &lt;sys/fcntl.h>
-et faire ce qui est exig&eacute;. Par exemple si <citerefentry><refentrytitle>flag </refentrytitle></citerefentry> est
-(O_NONBLOCK | O_EXLOCK) l'ouverture &eacute;chouerait si il bloquait ou
-si l'acc&egrave;s exclusif ne pouvait pas &ecirc;tre accord&eacute;.
-</para>
-
-<para>
-L'argument <citerefentry><refentrytitle>p</refentrytitle></citerefentry> contient toutes les informations &agrave; propos du
-processus actuel.
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_close()</function></title>
-<para> <function>d_close()</function> prend la m&ecirc;me liste d'argument que <function>d_open()</function>:
-</para>
-
-<programlisting>
-int
-d_close(dev_t dev , int flag , int mode , struct proc *p)
-</programlisting>
-
-<para><function>d_close()</function> est seulement appel&eacute; &agrave; la derni&egrave;re fermeture de votre
-p&eacute;riph&eacute;rique (par p&eacute;riph&eacute;rique mineur). Par exemple dans le fragment
-suivant de code, <function>d_open()</function> est appel&eacute; 3 fois, mais <function>d_close()</function>
-seulement une fois.
-</para>
-
-<programlisting>
- ...
- fd1=open("/dev/mydev", O_RDONLY);
- fd2=open("/dev/mydev", O_RDONLY);
- fd3=open("/dev/mydev", O_RDONLY);
- ...
- &lt;useful stuff with fd1, fd2, fd3 here>
- ...
- close(fd1);
- close(fd2);
- close(fd3);
- ...
-</programlisting>
-
-<para>Les arguments sont semblables &agrave; ceux d&eacute;crits ci-dessus pour
-<function>d_open()</function>.
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_read()</function> et <function>d_write()</function></title>
-
-<para><function>d_read()</function> et d_write prennent les listes suivantes d'argument:
-</para>
-
-<programlisting>
-int
-d_read(dev_t dev, struct uio *uio, int flat)
-int
-d_write(dev_t dev, struct uio *uio, int flat)
-</programlisting>
-
-<para>
-Les points d'entr&eacute;e de <function>d_read()</function> et de <function>d_write()</function> sont appel&eacute;s quand
-<ulink url="http://www.freebsd.org/cgi/man.cgi?read(2)">read</ulink> et
-<ulink url="http://www.freebsd.org/cgi/man.cgi?write(2)">write</ulink>
-sont appel&eacute;s sur votre p&eacute;riph&eacute;rique depuis l'espace utilisateur. Le transfert
-des donn&eacute;es peut &ecirc;tre manipul&eacute; par la routine du noyau <function>uiomove()</function>.
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_ioctl()</function></title>
-
-<para> Sa liste d'argument est comme suit:
-</para>
-<programlisting>
-int
-d_ioctl(dev_t dev, int cmd, caddr_t arg, int flag, struct proc *p)
-</programlisting>
-
-<para>
-<function>d_ioctl()</function> est un fourre-tout pour les ex&eacute;cutions qui ne semblent
-pas raisonnable dans un paradigme lecture/&eacute;criture. Le plus
-c&eacute;l&egrave;bre de tout les ioctl est probablement celui sur des p&eacute;riph&eacute;riques
-tty, par le
-<ulink url="http://www.freebsd.org/cgi/man.cgi?stty(1)">stty</ulink>.
-
-Le point d'entr&eacute;e d'ioctl est appel&eacute; depuis l'<function>ioctl()</function> de
-<filename>sys/kern/sys_generic.c</filename></para>
-
-<para>
-Il y a quatre types diff&eacute;rents d'ioctl qui peuvent &ecirc;tre impl&eacute;ment&eacute;s.
-
-&lt;sys/ioccom.h> contient des macros pratiques de
-pour d&eacute;finir ces ioctls.
-</para>
-
-<itemizedlist>
-<listitem>
-<para><citerefentry><refentrytitle>_IO(g, n) </refentrytitle></citerefentry> pour les op&eacute;rations de type contr&ocirc;le.
-</para>
-</listitem>
-
-<listitem>
-<para>
-<citerefentry><refentrytitle>_IOR(g, n, t) </refentrytitle></citerefentry> pour des op&eacute;rations lisant des donn&eacute;es d'un
-p&eacute;riph&eacute;rique.
-</para>
-</listitem>
-
-<listitem>
-<para>
-<citerefentry><refentrytitle>_IOW(g, n, t) </refentrytitle></citerefentry> pour les op&eacute;rations &eacute;crivant des donn&eacute;es
-sur un p&eacute;riph&eacute;rique.
-</para>
-</listitem>
-
-<listitem>
-<para>
-<citerefentry><refentrytitle>_IOWR(g,n,t)</refentrytitle></citerefentry> pour les op&eacute;rations &eacute;crivant sur un p&eacute;riph&eacute;rique
-puis lisent les donn&eacute;es.
-</para>
-</listitem>
-</itemizedlist>
-
-
-<para>
-Ici <citerefentry><refentrytitle>g </refentrytitle></citerefentry> se rapporte &agrave; un <emphasis>groupe </emphasis>/. C'est une valeur
-de 8 bits, en g&eacute;n&eacute;ral indicative du p&eacute;riph&eacute;rique ; par exemple, 't'
-est utilis&eacute; dans des ioctls de tty. <citerefentry><refentrytitle>n</refentrytitle></citerefentry> se
-rapporte au nombre de l'ioctl dans le groupe. Sur SCO, ce seul nombre
-d&eacute;note l'ioctl. <citerefentry><refentrytitle>t</refentrytitle></citerefentry> est le type de donn&eacute;es qui sera
-pass&eacute; au pilote de p&eacute;riph&eacute;rique; ceci est alors remis &agrave; un op&eacute;rateur
-<function>sizeof()</function> du noyau. L'appel syst&egrave;me <function>ioctl()</function> fera soit un <function>copyin()</function>
-soit un <function>copyout()</function> ou les deux &agrave; votre pilote, puis vous
-renverra un pointeur &agrave; la structure de donn&eacute;es dans l'argument
-<citerefentry><refentrytitle>arg</refentrytitle></citerefentry> de l'appel d'd_ioctl. Actuellement la taille de
-donn&eacute;es est limit&eacute;e &agrave; une page (4k sur l'i386).
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_stop()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>d_reset()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>d_devtotty()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>d_poll()</function> (3.0 et plus) ou <function>d_select()</function> (2.2)</title>
-
-<para>la liste d'argument de <function>d_poll()</function> est comme suit :
-</para>
-
-<programlisting>
-void
-d_poll(dev_t dev, int events, struct proc *p)
-</programlisting>
-
-<para> <function>d_poll()</function> est employ&eacute; pour d&eacute;couvrir si un p&eacute;riph&eacute;rique
-est pr&ecirc;t pour les E/S. Par exemple, attendre que des donn&eacute;es du r&eacute;seau
-soient dispnibles, ou que l'utilisateur presse une touche.
-Cela correspond &agrave; un appel de <function>poll()</function> dans l'espace utilisateur.
-</para>
-
-<para>L'appel &agrave; <function>d_poll()</function> devrait v&eacute;rifier les &eacute;v&eacute;nements
-indiqu&eacute;s dans le masque d'&eacute;v&egrave;nement. Si aucun des &eacute;v&eacute;nements demand&eacute;s n'est
-en activit&eacute;, mais qu'elles pourraient devenir actif plus tard, il
-devrait enregistrer ceci pour les actions futures du noyau.
-<function>d_poll()</function> fait ceci en appelant <function>selrecord()</function> avec une structure
-selinfo pour ce p&eacute;riph&eacute;rique. La somme de toutes ces activit&eacute;s
-ressemblent &agrave; quelque chose comme ceci:
-</para>
-
-<programlisting>
-static struct my_softc {
- struct queue rx_queue; /* As example only - not required */
- struct queue tx_queue; /* As example only - not required */
- struct selinfo selp; /* Required */
-} my_softc[NMYDEV];
-
-...
-
-static int
-mydevpoll(dev_t dev, int events, struct proc *p)
-{
- int revents = 0; /* Events we found */
- int s;
- struct my_softc *sc = &amp;my_softc[dev];
-
- /* We can only check for IN and OUT */
- if ((events &amp; (POLLIN|POLLOUT)) == 0)
- return(POLLNVAL);
-
- s = <function>splhigh()</function>;
- /* Writes are if the transmit queue can take them */
- if ((events &amp; POLLOUT) &amp;&amp;
- !IF_QFULL(sc->tx_queue))
- revents |= POLLOUT;
- /* ... while reads are OK if we have any data */
- if ((events &amp; POLLIN) &amp;&amp;
- !IF_QEMPTY(sc->rx_queue))
- revents |= POLLIN;
- if (revents == 0)
- selrecord(p, &amp;sc->selp);
- splx(s);
- return revents;
-}
-</programlisting>
-
-<para> <function>d_select()</function> est utilis&eacute; dans la version 2.2 et
-pr&eacute;c&eacute;dentes de FreeBSD. Au lieu de 'events', il prend un simple
-entier 'rw', qui peut &ecirc;tre FREAD pour la lecture (comme dans
-POLLIN ci-dessus), FWRITE pour l'&eacute;criture (comme dans POLLOUT ci-dessus),
-et 0 pour 'exception' - lorsque quelque chose d'exceptionnel se produit,
-comme une carte &eacute;tant ins&eacute;r&eacute;e ou retir&eacute;e pour le pilote de
-pccard.
-</para>
-<para>Pour 'select', le fragment correspondant &agrave; la description
-ci-dessus ressembleraient &agrave; ceci:
-</para>
-<programlisting>
-static int
-mydevselect(dev_t dev, int rw, struct proc *p)
-{
- int ret = 0;
- int s;
- struct my_softc *sc = &amp;my_softc[dev];
-
- s = <function>splhigh()</function>;
- switch (rw) {
- case FWRITE:
- /* Writes are if the transmit queue can take them */
- if (!IF_QFULL(sc->tx_queue))
- ret = 1;
- break;
- case FREAD:
- /* ... while reads are OK if we have any data */
- if (!IF_QEMPTY(sc->rx_queue))
- ret = 1;
- break;
- case 0:
- /* This driver never get any exceptions */
- break;
- }
- if(ret == 0)
- selrecord(p, &amp;sc->selp);
- splx(s);
- return(revents);
-}
-</programlisting>
-</sect4>
-
-<sect4>
-<title><function>d_mmap()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>d_strategy()</function></title>
-
-<para>
-La liste d'argument de <function>d_strategy()</function> est comme suit :
-</para>
-
-<programlisting>
-void
-d_strategy(struct buf *bp)
-</programlisting>
-
-<para><function>d_strategy()</function> est utilis&eacute; pour les p&eacute;riph&eacute;riques utilisant
-des E/S de type disperser-regrouper (<foreignphrase>scatter-gather</foreignphrase>).
-C'est ce qu'il y a de plus courant dans un p&eacute;riph&eacute;rique de bloc.
-C'est sensiblement diff&eacute;rent du mod&egrave;le de syst&egrave;me V, o&ugrave; seulement
-le pilote de bloc fait une E/S de type disperser-regrouper.
-Sous BSD, les p&eacute;riph&eacute;riques de caract&egrave;re sont parfois somm&eacute; d'ex&eacute;cuter
-une E/S de type disperser-regrouper par l'interm&eacute;diaire des appels
-syst&egrave;mes <function>readv()</function> et <function>writev()</function>.
-</para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>Bloc</title>
-
-<sect3>
-<title>Structures de donn&eacute;es</title>
-<para> Structure <citerefentry><refentrytitle>struct bdevsw</refentrytitle></citerefentry>
-</para>
-
-<para> Structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry>
-</para>
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>d_open()</function></title>
-<para> D&eacute;crit dans la section p&eacute;riph&eacute;rique de caract&egrave;re.
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_close()</function></title>
-<para>D&eacute;crit dans la section p&eacute;riph&eacute;rique de caract&egrave;re.
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_strategy()</function></title>
-<para>D&eacute;crit dans la section p&eacute;riph&eacute;rique de caract&egrave;re.
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_ioctl()</function></title>
-<para>D&eacute;crit dans la section p&eacute;riph&eacute;rique de caract&egrave;re.
-</para>
-</sect4>
-
-<sect4>
-<title><function>d_dump()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>d_psize()</function></title>
-<para></para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>R&eacute;seau</title>
-<para>Structure <citerefentry><refentrytitle>struct ifnet</refentrytitle></citerefentry>
-</para>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>if_init()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>if_output()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>if_start()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>if_done()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>if_ioctl()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>if_watchdog()</function></title>
-<para></para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>Protocole de communication</title>
-
-<sect3>
-<title>Structures de donn&eacute;es</title>
-<para>Structure <citerefentry><refentrytitle>struct linesw</refentrytitle></citerefentry>
-</para>
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>l_open()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>l_close()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>l_read()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>l_write()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>l_ioctl()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>l_rint()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>l_start()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>l_modem()</function></title>
-<para></para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-</sect1>
-
-<sect1>
-<title>Bus Support&eacute;s</title>
-
-<sect2>
-<title>ISA -- Architecture Standard d'Industrie (<foreignphrase>Industry Standard
-Architecture</foreignphrase></title>
-
-<sect3>
-<title>Structures de donn&eacute;es</title>
-
-<sect4>
-<title>Structure <citerefentry><refentrytitle>struct isa_device</refentrytitle></citerefentry></title>
-
-<para>Cette structure est obligatoire, mais g&eacute;n&eacute;ralement elle est cr&eacute;&eacute;e par
-<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> &agrave; partir du fichier de configuration de noyau.
-Elle est requise pour chaque p&eacute;riph&eacute;rique, c'est &agrave; dire que si vous avez
-un pilote de p&eacute;riph&eacute;rique contr&ocirc;lant deux "serial boards", vous
-aurez deux structures isa_device. Si vous construisez un p&eacute;riph&eacute;rique
-comme un LKM, vous devrez cr&eacute;er votre propre structure isa_device afin
-de refl&eacute;ter votre configuration (lignes 85 - 131 de pcaudio_lkm.c).
-Il y a un &eacute;quivalence directe ebtre le fichier de configuration et la
-structureisa_device. La d&eacute;finition de
-<filename>/usr/src/sys/i386/isa/isa_device.h</filename>
-est :
-</para>
-
-<programlisting>
-struct isa_device {
- int id_id; /* device id */
- struct isa_driver *id_driver;
- int id_iobase; /* base i/o address */
- u_short id_irq; /* interrupt request */
- short id_drq; /* DMA request */
- caddr_t id_maddr; /* physical i/o memory address on bus (if any)*/
- int id_msize; /* size of i/o memory */
- inthand2_t *id_intr; /* interrupt interface routine */
- int id_unit; /* unit number */
- int id_flags; /* flags */
- int id_scsiid; /* scsi id if needed */
- int id_alive; /* device is present */
-#define RI_FAST 1 /* fast interrupt handler */
- u_int id_ri_flags; /* flags for <function>register_intr()</function> */
- int id_reconfig; /* hot eject device support (such as PCMCIA) */
- int id_enabled; /* is device enabled */
- int id_conflicts; /* we're allowed to conflict with things */
- struct isa_device *id_next; /* used in isa_devlist in <function>userconfig()</function> */
-};
-</programlisting>
-</sect4>
-
-<sect4>
-<title>Structure <citerefentry><refentrytitle>struct isa_driver</refentrytitle></citerefentry></title>
-
-<para>Cette structure est d&eacute;finie dans
-<filename>/usr/src/sys/i386/isa/isa_device.h</filename>,
-est est requise pour chaque pilote de p&eacute;riph&eacute;rique. La d&eacute;finition
-est :
-</para>
-
-<programlisting>
-struct isa_driver {
- int (*probe) __P((struct isa_device *idp));
- /* test whether device is present */
- int (*attach) __P((struct isa_device *idp));
- /* setup driver for a device */
- char *name; /* device name */
- int sensitive_hw; /* true if other probes confuse us */
-};
-</programlisting>
-
-<para>
-C'est la structure employ&eacute;e par le code sondage/attachement
-(<foreignphrase>probe/attach</foreignphrase>) pour
-d&eacute;tecter et initialiser votre p&eacute;riph&eacute;rique. Le membre <citerefentry><refentrytitle>probe</refentrytitle></citerefentry>
-est un pointeur &agrave; votre fonction permettant de sonder les p&eacute;riph&eacute;riques.
-Le membre <citerefentry><refentrytitle>attach</refentrytitle></citerefentry> est un pointeur vers votre fonction d'attache.
-Le membre <citerefentry><refentrytitle>name</refentrytitle></citerefentry> est un pointeur de caract&egrave;re sur le nom de deux
-ou trois lettres de votre pilote.
-C'est le nom enregistr&eacute; pendant le processus de
-sondage/attachement (et probablement aussi dans
-<ulink url="http://www.freebsd.org/cgi/man.cgi?lsdev(8)">lsdev</ulink>).
-Le membre <citerefentry><refentrytitle>sensitive_hw </refentrytitle></citerefentry> est un
-indicateur qui aide le code de sondage &agrave; d&eacute;terminer l'ordre du sondage.
-</para>
-
-<para>
-Un instantiation typique est:
-</para>
-
-<programlisting>
-struct isa_driver mcddriver = { mcd_probe, mcd_attach, "mcd" };
-</programlisting>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>probe()</function></title>
-<para><function>probe()</function> prend un pointeur sur une structure isa_device
-comme argument et renvoie un int. La valeur de retour est ``z&eacute;ro'' ou
-``non-z&eacute;ro '' quant &agrave; l'absence ou &agrave; la pr&eacute;sence de votre p&eacute;riph&eacute;rique.
-Ce point d'entr&eacute;e peut &ecirc;tre d&eacute;clar&eacute; comme
-<citerefentry><refentrytitle>static</refentrytitle></citerefentry> parce qu'il
-est accessible par l'interm&eacute;diaire du membre
-<citerefentry><refentrytitle>probe</refentrytitle></citerefentry> de la structre
-isa_driver. Cette fonction est destin&eacute;e &agrave;
-d&eacute;tecter la pr&eacute;sence de votre p&eacute;riph&eacute;rique seulement et ne devrait
-faire aucune configuration du p&eacute;riph&eacute;rique elle-m&ecirc;me.
-</para>
-</sect4>
-
-<sect4>
-<title><function>attach()</function></title>
-<para>
-<function>attach()</function> prend &eacute;galement un pointeur sur une structure
-isa_device comme argument et
-renvoie un int. La valeur de retour est &eacute;galement ``z&eacute;ro'' ou
-``non-z&eacute;ro'' indiquant si l'attache a r&eacute;ussie. Cette fonction
-est destin&eacute;e pour faire n'importe quelle initialisation sp&eacute;ciale du
-p&eacute;riph&eacute;rique aussi bien que pour confirmer que le p&eacute;riph&eacute;rique est utilisable.
-Il devrait aussi &ecirc;tre d&eacute;clar&eacute; <citerefentry><refentrytitle>static</refentrytitle></citerefentry> parce qu'il est accesible
-par le membre <citerefentry><refentrytitle>attach</refentrytitle></citerefentry> de la structure <citerefentry><refentrytitle>isa_driver </refentrytitle></citerefentry>.
-</para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>EISA -- Architecture Étendue de Standard industriel (<foreignphrase>Extended Industry Standard Architecture</foreignphrase>)</title>
-<para></para>
-
-<sect3>
-<title>Structures de donn&eacute;es</title>
-
-<para>Structure <citerefentry><refentrytitle>struct eisa_dev </refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct isa_driver</refentrytitle></citerefentry> </para>
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>probe()</function></title>
-<para>D&eacute;crit dans la section de p&eacute;riph&eacute;rique ISA.</para>
-</sect4>
-
-<sect4>
-<title><function>attach()</function></title>
-<para>D&eacute;crit dans la section de p&eacute;riph&eacute;rique ISA.</para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>PCI -- Bus d'interconnexion P&eacute;riph&eacute;rique (<foreignphrase>Peripheral Computer
-Interconnect</foreignphrase>)</title>
-
-<sect3>
-<title>Structures de donn&eacute;es</title>
-
-<para> Structure <citerefentry><refentrytitle>struct pci_device</refentrytitle></citerefentry>
-</para>
-
-<itemizedlist>
-<listitem>
-<para>nom : Le nom abr&eacute;g&eacute; du p&eacute;riph&eacute;rique.
-</para>
-</listitem>
-
-<listitem>
-<para> sonde: Contr&ocirc;le si le pilote peut supporter un p&eacute;riph&eacute;rique avec
-ce type. L'&eacute;tiquette peut &ecirc;tre employ&eacute;e pour obtenir plus
-d'information avec <function>pci_read_conf()</function>. Voir ci-dessous. Elle renvoie
-une cha&icirc;ne de caract&egrave;res avec le nom du p&eacute;riph&eacute;rique, ou un pointeur
-NULL si le pilote ne peut pas supporter ce p&eacute;riph&eacute;rique.
-</para>
-</listitem>
-
-<listitem>
-<para> attache: Assigne une structure de contr&ocirc;le et la pr&eacute;pare. Cette
-fonction peut utiliser les fonctions de mapping PCI. Voir
-ci-dessous. (identification de configuration) ou type.
-</para>
-</listitem>
-
-<listitem>
-<para> compte: Un pointeur sur un compteur d'unit&eacute;. Il est
-employ&eacute; par le configurateur de PCI pour assigner des num&eacute;ros.
-</para>
-</listitem>
-</itemizedlist>
-
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>probe()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>attach()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>shutdown()</function></title>
-<para></para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>SCSI -- <foreignphrase>Small Computer Systems Interface</foreignphrase></title>
-
-<sect3>
-<title>Structure de donn&eacute;es</title>
-
-<para>Structure <citerefentry><refentrytitle>struct scsi_adapter</refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct scsi_device</refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct scsi_ctlr_config</refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct scsi_device_config</refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct scsi_link</refentrytitle></citerefentry> </para>
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>attach()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>init()</function></title>
-<para></para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-<para></para>
-</sect3>
-</sect2>
-
-
-<sect2>
-<title>PCCARD (PCMCIA)</title>
-
-<sect3>
-<title>Structure de donn&eacute;es</title>
-
-<para>Structure <citerefentry><refentrytitle>struct slot_cont</refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct pccard_drv</refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct pccard_dev</refentrytitle></citerefentry> </para>
-<para>Structure <citerefentry><refentrytitle>struct slot</refentrytitle></citerefentry> </para>
-</sect3>
-
-<sect3>
-<title>Points d'entr&eacute;e</title>
-
-<sect4>
-<title><function>handler()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>unload()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>suspend()</function></title>
-<para></para>
-</sect4>
-
-<sect4>
-<title><function>init()</function></title>
-<para></para>
-</sect4>
-</sect3>
-
-<sect3>
-<title>Fichiers d'en-t&ecirc;te</title>
-
-<para>&lt;pccard/slot.h>
-</para>
-</sect3>
-</sect2>
-</sect1>
-
-
-<sect1>
-<title>Incorporation dans le noyau</title>
-
-<para>Dans FreeBSD, le support des bus d'ISA et EISA est sp&eacute;cifique &agrave;
-i386. Tandis que FreeBSD lui-m&ecirc;me est actuellement
-disponible sur la plateforme i386, un certain effort a &eacute;t&eacute; fait pour
-faire du code portable pour PCI, PCCARD, et SCSI. Le code
-sp&eacute;cifique &agrave; ISA et EISA r&eacute;side dans
-<filename>/usr/src/sys/i386/isa</filename> et
-<filename>/usr/src/sys/i386/eisa</filename> respectivement. Le code ind&eacute;pendant de la
-machine de PCI, de PCCARD, et de SCSI r&eacute;side dans
-<filename>/usr/src/sys/{pci,pccard,scsi</filename>}. Le code sp&eacute;cifique i386 quand &agrave; lui
-r&eacute;side dans <filename>/usr/src/sys/i386/{pci, pccard, scsi}</filename>.
-</para>
-
-
-<para> Dans FreeBSD, un module de gestion de p&eacute;riph&eacute;rique peut
-&ecirc;tre soit sous forme binaire soit sous forme de sources.
-Il n'y a aucun endroit ``officiel'' pour mettre les binaires des
-pilotes de p&eacute;riph&eacute;riques. les syst&egrave;mes BSD utilise quelque
-chose comme sys/i386/OBJ. Puisque la plupart des pilotes sont
-distribu&eacute;s dans les sources, la discussion suivante se rapporte &agrave; un
-source pilote de p&eacute;riph&eacute;rique.
-Des binaires de pilotes de p&eacute;riph&eacute;riques sont
-parfois fournis par les constructeurs de mat&eacute;riel qui souhaitent
-maintenir les sources de mani&egrave;re propri&eacute;taire.
-</para>
-
-<para> Un pilote typique a son code source sous forme de fichier C,
-comme dev.c. Le pilote peut &eacute;galement inclure des
-fichiers; devreg.h contient typiquement des d&eacute;clarations publiques
-de registre de p&eacute;riph&eacute;rique, des macros, et d'autres
-d&eacute;clarations sp&eacute;cifique au pilote de p&eacute;riph&eacute;rique.
-Quelques pilotes appellent parfois ce fichier devvar.h.
-Quelques pilotes, tels que
-le dgb (pour le Digiboard PC/Xe), exigent que du microcode soit charg&eacute;
-sur la carte. Pour le pilote de dgb le microcode est compil&eacute;
-et report&eacute; dans un fichier d'en-t&ecirc;te par
-<ulink url="http://www.freebsd.org/cgi/man.cgi?file2c(1)">file2c</ulink>.
-</para>
-
-<para> Si le pilote de p&eacute;riph&eacute;rique a des structures de donn&eacute;es et des
-ioctl qui sont sp&eacute;cifiques au pilote de p&eacute;riph&eacute;rique ou
-p&eacute;riph&eacute;rique, et
-doivent &ecirc;tre accessibles de l'espace-utilisateur, elles devraient
-&ecirc;tre mises dans un fichier d'en-t&ecirc;te s&eacute;par&eacute; qui r&eacute;sidera dans
-<filename>/usr/include/machine/</filename> (certaines de ces derniers r&eacute;sident dans
-<filename>/usr/include/sys/</filename>). Ceux-ci est typiquement nomm&eacute; quelque chose comme
-ioctl_dev.h ou devio.h.
-</para>
-
-<para> Si un pilote &eacute;crit depuis l'espace
-d'utilisateur est identique &agrave; un p&eacute;riph&eacute;rique qui existe d&eacute;j&agrave;, il faut
-prendre garde &agrave; utiliser les m&ecirc;mes
-interfaces ioctl et structures de donn&eacute;es. Par exemple, de l'espace
-utilisateur, un lecteur de SCSI CDROM devrait &ecirc;tre identique &agrave; un
-lecteur de cdrom IDE; ou une ligne s&eacute;rie sur une carte
-intelligente multiport (Digiboard, Cyclades...) devrait &ecirc;tre identique
-&agrave; un p&eacute;riph&eacute;rique sio. Ces p&eacute;riph&eacute;riques ont une interface d&eacute;finie
-relativement bonne et devraient &ecirc;tre utilis&eacute;es.
-</para>
-
-<para> Il y a deux m&eacute;thodes pour lier un pilote dans le
-noyau, statiquement et le mod&egrave;le LKM. La premi&egrave;re m&eacute;thode
-est assez standard &agrave; travers la famille *BSD. L'autre
-m&eacute;thode a &eacute;t&eacute; initialement d&eacute;velopp&eacute;e par Sun (je crois), et a
-&eacute;t&eacute; mis en application dans BSD en utilisant le mod&egrave;le de Sun.
-Je ne crois pas que l'impl&eacute;mentation actuelle utilise encore le moindre
-code de Sun.
-</para>
-
-<sect2>
-<title>Mod&egrave;le Standard</title>
-
-<para> Les &eacute;tapes exig&eacute;es pour ajouter votre pilote au
-noyau standard de FreeBSD sont
-</para>
-
-<itemizedlist>
-<listitem>
-<para>Ajout &agrave; la liste des pilotes de p&eacute;riph&eacute;rique
-</para>
-</listitem>
-
-<listitem>
-<para>Ajout d'une entr&eacute;e au &lsqb;bc&rsqb;devsw
-</para>
-</listitem>
-
-<listitem>
-<para>Ajout d'une entr&eacute;e du pilote de p&eacute;riph&eacute;rique au fichier de
-configuration du noyau
-</para>
-</listitem>
-
-<listitem>
-<para><ulink
-url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink>,
-compilation et installation du noyau
-</para>
-</listitem>
-
-<listitem>
-<para>cr&eacute;er les fichiers sp&eacute;ciaux requis
-</para>
-</listitem>
-
-<listitem>
-<para>red&eacute;marrage
-</para>
-</listitem>
-</itemizedlist>
-
-<sect3>
-<title>Ajout &agrave; la liste des pilotes de p&eacute;riph&eacute;rique</title>
-
-<para>Le mod&egrave;le standard pour ajouter un module de gestion de p&eacute;riph&eacute;rique
-au noyau de Berkeley est d'ajouter votre pilote &agrave; la liste des
-p&eacute;riph&eacute;riques connus. Cette liste d&eacute;pend de l'architecture du CPU.
-Si le p&eacute;riph&eacute;rique n'est pas sp&eacute;cifique i386
-(PCCARD, PCI, SCSI), le fichier est dans
-<filename>/usr/src/sys/conf/files</filename>.
-Si le p&eacute;riph&eacute;rique est sp&eacute;cifique i386, utilisez
-<filename>/usr/src/sys/i386/conf/files.i386</filename>. Une ligne typique ressemblerait
-&agrave; :
-</para>
-
-<programlisting>
-i386/isa/joy.c optional joy device-driver
-</programlisting>
-
-<para>Le premier champ relatif est le chemin du module de pilote
-par rapport &agrave; <filename>/usr/src/sys</filename>.
-Pour le cas d'un pilote binaire, le chemin d'acc&egrave;s serait quelque
-chose comme <filename>i386/OBJ/joy.o</filename>.
-</para>
-
-<para>Le deuxi&egrave;me champ indique &agrave;
-<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config(8)</ulink>
-que c'est un pilote facultatif. Quelques
-p&eacute;riph&eacute;riques sont obligatoires pour que le noyau puisse &ecirc;tre construit.
-</para>
-
-<para>
-Le troisi&egrave;me champ est le nom du p&eacute;riph&eacute;rique.
-</para>
-
-<para>Le quatri&egrave;me champ indique &agrave; config que c'est un
-pilote de p&eacute;riph&eacute;rique (par opposition &agrave; juste facultatif). Ceci
-dit &agrave; config de cr&eacute;er des entr&eacute;es pour le p&eacute;riph&eacute;rique dans dans
-des structures de <filename>/usr/src/sys/compile/KERNEL/ioconf.c</filename>.
-</para>
-
-<para>Il est &eacute;galement possible de cr&eacute;er un fichier
-<filename>/usr/src/sys/i386/conf/files.KERNEL</filename> dont le contenu ignorera le
-fichier par d&eacute;faut files.i386, mais seulement pour le noyau ``KERNEL''.
-</para>
-</sect3>
-
-<sect3>
-<title>Faire de la place dans conf.c</title>
-
-<para>Maintenant vous devez &eacute;diter <filename>/usr/src/sys/i386/i386/conf.c</filename>
-pour faire une entr&eacute;e pour votre pilote. Quelque part au d&eacute;but,
-vous devez d&eacute;clarer vos points d'entr&eacute;e. L'entr&eacute;e pour
-le pilote du joystick est: </para>
-
-<programlisting>
-#include "joy.h"
-#if NJOY > 0
-d_open_t joyopen;
-d_close_t joyclose;
-d_rdwr_t joyread;
-d_ioctl_t joyioctl;
-#else
-#define joyopen nxopen
-#define joyclose nxclose
-#define joyread nxread
-#define joyioctl nxioctl
-#endif
-</programlisting>
-
-<para>
-Cela d&eacute;finit vos points d'entr&eacute;e, ou points d'entr&eacute;e nuls qui
-renverront ENXIO quand appel&eacute; (clause #else).
-</para>
-
-<para>
-Le fichier d'en-t&ecirc;te ``joy.h'' est automatiquement produit par
-<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink>
-quand l'arborescence de construction du noyau est
-cr&eacute;&eacute;. Cela se r&eacute;duit habituellement &agrave; une seule ligne comme :
-</para>
-
-<programlisting>
-#define NJOY 1
-</programlisting>
-
-<para>
-ou
-</para>
-<programlisting>
-#define NJOY 0
-</programlisting>
-
-<para> ce qui d&eacute;finit le nombre de vos p&eacute;riph&eacute;riques dans votre noyau.
-</para>
-
-<para>
-Vous devez additionnellement ajouter un slot au cdevsw&lsqb;&rsqb, ou
-au bdevsw&lsqb;&rsqb, selon que ce soit un p&eacute;riph&eacute;rique caract&egrave;re,
-p&eacute;riph&eacute;rique bloc, ou les deux si c'est un p&eacute;riph&eacute;rique bloc
-avec une interface brute. L'entr&eacute;e pour le pilote du joystick
-est:
-</para>
-
-<programlisting>
-/* open, close, read, write, ioctl, stop, reset, ttys, select, mmap, strat */
-struct cdevsw cdevsw[] =
-{
- ...
- { joyopen, joyclose, joyread, nowrite, /*51*/
- joyioctl, nostop, nullreset, nodevtotty,/*joystick */
- seltrue, nommap, NULL},
- ...
-}
-</programlisting>
-
-<para>
- L'ordre est ce qui d&eacute;termine le nombre majeur de votre
-p&eacute;riph&eacute;rique. C'est pourquoi il y aura toujours une entr&eacute;e
-pour votre pilote, que ce soit des points d'entr&eacute;e nuls,
-ou des points d'entr&eacute;e actuels. Il est probablement int&eacute;ressant de
-noter que c'est
-sensiblement diff&eacute;rent de SCO et d'autres d&eacute;riv&eacute;s du syst&egrave;me V, o&ugrave;
-n'importe quel p&eacute;riph&eacute;rique (dans la th&eacute;orie) peut avoir n'importe
-quel nombre majeur. C'est en grande partie un avantage sur FreeBSD,
-sur la mani&egrave;re dont les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;rique sont cr&eacute;&eacute;s.
-Nous reviendrons en d&eacute;tail sur ceci plus tard.
-</para>
-</sect3>
-
-<sect3>
-<title>Ajout de votre p&eacute;riph&eacute;rique dans le fichier de configuration.</title>
-
-<para> Ceci ajoute simplement une ligne d&eacute;crivant votre p&eacute;riph&eacute;rique. La
-ligne de description du joystick est :
-<programlisting>
-device joy0 at isa? port "IO_GAME"
-</programlisting>
-Ceci indique que nous avons un
-p&eacute;riph&eacute;rique appel&eacute; ``joy0'' sur le bus ISA en utilisant
-le port E/S ``IO_GAME'' (IO_GAME est une macro d&eacute;finie dans
-<filename>/usr/src/sys/i386/isa/isa.h</filename>).
-</para>
-
-<para>
-Une entr&eacute;e l&eacute;g&egrave;rement plus compliqu&eacute;e est pour le pilote ``ix'' :
-
-<programlisting>
-device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768
-vector ixintr
-</programlisting>
-
-Ceci indique que nous avons un p&eacute;riph&eacute;rique appel&eacute;
-`ix0 ' sur le bus ISA. Il utilise le port E/S 0x300. Son
-interruption sera masqu&eacute; par d'autres p&eacute;riph&eacute;riques dans la classe
-r&eacute;seau. Il utilise l'interruption 10. Il utilise 32k de m&eacute;moire
-partag&eacute;e &agrave; l'adresse physique 0xd0000. Il le d&eacute;finit &eacute;galement
-son pilote d'interruption comme &eacute;tant ``<function>ixintr()</function>''
-</para>
-</sect3>
-
-<sect3>
-<title><ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink>
-du noyau.</title>
-
-<para> Maintenant avec notre fichier de configuration en main,
-nous pouvons cr&eacute;er un r&eacute;pertoire de compilation du noyau. Cela peut &ecirc;tre
-fait en tapant :
-<programlisting>
-# config KERNEL
-</programlisting>
-
-o&ugrave; KERNEL est le nom de votre fichier de configuration.
-La configuration cr&eacute;e un arbre de compilation
-pour votre noyau dans <filename>/usr/src/sys/compile/KERNEL</filename>. Elle cr&eacute;e le fichier
-makefile, quelques fichiers C, et quelques fichiers H avec des
-macros d&eacute;finissant le nombre de chaque p&eacute;riph&eacute;rique &agrave; inclure dans votre
-votre noyau.
-</para>
-
-<para>
-Maintenant vous pouvez aller dans le r&eacute;pertoire de compilation et
-construire votre noyau. À chaque fois que vous lancerez config, votre
-arbre de construction pr&eacute;c&eacute;dent sera retir&eacute;, &agrave; moins que vous ne lancez
-config avec un -n. Si vous avez configur&eacute; et compil&eacute; un noyau GENERIC,
-vous pouvez faire un ``make links'' afin d'&eacute;viter de compiler certains
-fichiers &agrave; chaque it&eacute;ration. Typiquement, je lance :
-<programlisting>
-# make depend links all
-</programlisting>
-suivi d'un ``make install'' quand le noyau me convient.
-</para>
-</sect3>
-
-<sect3>
-<title>Cr&eacute;er les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques</title>
-
-<para> Sur FreeBSD, vous avez la responsabilit&eacute; de faire vos propres fichiers
-sp&eacute;ciaux
-de p&eacute;riph&eacute;rique. Le
-nombre majeur de votre p&eacute;riph&eacute;rique est d&eacute;termin&eacute; par le nombre de
-slots dans le commutateur de p&eacute;riph&eacute;rique. Le nombre mineur est
-d&eacute;pendant du pilote, naturellement. Vous pouvez
-soit ex&eacute;cuter mknod depuis la ligne de commande, soit liasser faire le
-travail &agrave; <filename>/dev/MAKEDEV.local</filename>, ou m&ecirc;me
-<filename>/dev/MAKEDEV</filename>.
-Je cr&eacute;e parfois un script MAKEDEV.dev qui peut &ecirc;tre soit lanc&eacute;
-de mani&egrave;re autonome soit coll&eacute; dans <filename>/dev/MAKEDEV.local</filename>.
-</para>
-</sect3>
-
-<sect3>
-<title>Red&eacute;marrage</title>
-<para> C'est la partie facile. Il y a un
-certain nombre de m&eacute;thodes pour faire ceci, reboot, fastboot,
-shutdown - r, couper le courant, etc. Au d&eacute;marrage, vous
-devriez voir votre XX<function>probe()</function> appel&eacute;, et si tout marche,
-votre <function>attach()</function> aussi.
-</para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>Module du noyau &agrave; chargement dynamique (LKM)</title>
-
-<para>Il n'y a vraiment aucune proc&eacute;dure d&eacute;finie pour &eacute;crire un pilote de
-LKM. Ce qui suit est ma propre conception apr&egrave;s exp&eacute;rimentation
-avec l'interface de p&eacute;riph&eacute;rique LKM et en regardant le mod&egrave;le standard
-de module de gestion de p&eacute;riph&eacute;rique, c'est une mani&egrave;re d'ajouter une
-interface LKM &agrave; un pilote existant sans toucher aux sources (ou binaire)
-initiaux de pilote . On recommande cependant,
-que si vous projetez de distribuer les sources de votre pilote,
-que les parties sp&eacute;cifiques LKM devraient faire partie du pilote
-lui-m&ecirc;me, compil&eacute; de mani&egrave;re conditionnelle par la macro LKM
-(c.-&agrave;-d. #ifdef LKM).
-</para>
-
-<para>
-Cette section se concentrera sur la mani&egrave;re d'&eacute;crire la partie sp&eacute;cifique
-LKM du pilote. Nous supposerons que nous avons &eacute;crit un
-pilote qui atterrira dans le mod&egrave;le standard de
-gestion de p&eacute;riph&eacute;rique, que nous voudrions maintenant mettre en
-application comme &eacute;tant LKM. Nous utiliserons le pilote de pcaudio
-comme pilote d'exemple, et d&eacute;velopperons une entr&eacute;e LKM. La
-source et le fichier makefile pour le LKM pcaudio , ``pcaudio_lkm.c''
-et ``Makefile'', devraient &ecirc;tre dans plac&eacute; <filename>/usr/src/lkm/pcaudio</filename>.
-Ce qui suit est le code comment&eacute; de pcaudio_lkm.c.
-</para>
-
-<para>
-Lignes 17 - 26
-</para>
-
-<para>
-Ceci inclut le fichier ``pca.h'' et fait une compilation conditionnelle
-du reste de LKM suivant que vous avez d&eacute;fini ou non le pilote de
-p&eacute;riph&eacute;rique pcaudio.
-Cela imite le comportement de config. Dans un pilote de
-p&eacute;riph&eacute;rique standard,
-<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink>
-produit le fichier pca.h depuis le nombre de p&eacute;riph&eacute;riques pca
-le fichier de config. </para>
-
-<programlisting>
- 17 /*
- 18 * figure out how many devices we have..
- 19 */
- 20
- 21 #include "pca.h"
- 22
- 23 /*
- 24 * if we have at least one ...
- 25 */
- 26 #if NPCA > 0
-</programlisting>
-
-<para>
-Lignes 27 - 37
-</para>
-
-<para>
-Les fichiers d'en-t&ecirc;te requis depuis divers r&eacute;pertoire d'inclusion.
-</para>
-
-<programlisting>
- 27 #include &lt;sys/param.h>
- 28 #include &lt;sys/systm.h>
- 29 #include &lt;sys/exec.h>
- 30 #include &lt;sys/conf.h>
- 31 #include &lt;sys/sysent.h>
- 32 #include &lt;sys/lkm.h>
- 33 #include &lt;sys/errno.h>
- 34 #include &lt;i386/isa/isa_device.h>
- 35 #include &lt;i386/isa/isa.h>
- 36
- 37
-</programlisting>
-
-<para>
-Lignes 38 - 51
-</para>
-
-<para>d&eacute;clarent vos points d'entr&eacute;e comme externs .
-</para>
-
-<programlisting>
- 38 /*
- 39 * declare your entry points as externs
- 40 */
- 41
- 42 extern int pcaprobe(struct isa_device *);
- 43 extern int pcaattach(struct isa_device *);
- 44 extern int pcaopen(dev_t, int, int, struct proc *);
- 45 extern int pcaclose(dev_t, int, int, struct proc *);
- 46 extern int pcawrite(dev_t, struct uio *, int);
- 47 extern int pcaioctl(dev_t, int, caddr_t);
- 48 extern int pcaselect(dev_t, int, struct proc *);
- 49 extern void pcaintr(struct clockframe *);
- 50 extern struct isa_driver pcadriver;
- 51
-</programlisting>
-
-<para>
-Lignes 52 - 70
-</para>
-
-<para>
-Cela cr&eacute;e la table d'entr&eacute;e de commutateur de p&eacute;riph&eacute;rique pour
-votre pilote. Cette table est en gros enti&egrave;rement mise dans le
-syst&egrave;me de commutation de p&eacute;riph&eacute;riques &agrave; l'emplacement indiqu&eacute; par
-votre nombre majeur. Dans le mod&egrave;le standard, c'est dans
-<filename>/usr/src/sys/i386/i386/conf.c</filename>.
-NOTE: vous ne pouvez pas s&eacute;lectionner
-un nombre majeur de p&eacute;riph&eacute;rique plus grand que ce qui existe dans
-conf.c, par exemple
-il y a 67 slots pour des p&eacute;riph&eacute;riques caract&egrave;re, vous ne popuvez pas
-utiliser un p&eacute;riph&eacute;rique (caract&egrave;re) de num&eacute;ro majeur 67 ou
-plus, sans avoir d'abord r&eacute;serv&eacute; de l'espace dans conf.c.
-</para>
-
-<programlisting>
- 52 /*
- 53 * build your device switch entry table
- 54 */
- 55
- 56 static struct cdevsw pcacdevsw = {
- 57 (d_open_t *) pcaopen, /* open */
- 58 (d_close_t *) pcaclose, /* close */
- 59 (d_rdwr_t *) enodev, /* read */
- 60 (d_rdwr_t *) pcawrite, /* write */
- 61 (d_ioctl_t *) pcaioctl, /* ioctl */
- 62 (d_stop_t *) enodev, /* stop?? */
- 63 (d_reset_t *) enodev, /* reset */
- 64 (d_ttycv_t *) enodev, /* ttys */
- 65 (d_select_t *) pcaselect, /* select */
- 66 (d_mmap_t *) enodev, /* mmap */
- 67 (d_strategy_t *) enodev /* strategy */
- 68 };
- 69
- 70
-</programlisting>
-
-<para>
-Lignes 71 - 131
-</para>
-<para>
-cette section est analogue &agrave; la d&eacute;claration de fichier de configuration
-de votre p&eacute;riph&eacute;rique. Les membres de la structure isa_device sont
-remplis grace &agrave; ce qu'il connait de votre p&eacute;riph&eacute;rique,
-port E/S, segment partag&eacute; de m&eacute;moire, etc...
-Nous n'aurons probablement jamais un besoin de deux p&eacute;riph&eacute;riques
-pcaudio dans le noyau, mais cet exemple montre comment
-p&eacute;riph&eacute;riques multiples peuvent &ecirc;tre support&eacute;s.
-</para>
-
-<programlisting>
- 71 /*
- 72 * this lkm arbitrarily supports two
- 73 * instantiations of the pc-audio device.
- 74 *
- 75 * this is for illustration purposes
- 76 * only, it doesn't make much sense
- 77 * to have two of these beasts...
- 78 */
- 79
- 80
- 81 /*
- 82 * these have a direct correlation to the
- 83 * config file entries...
- 84 */
- 85 struct isa_device pcadev[NPCA] = {
- 86 {
- 87 11, /* device id */
- 88 &amp;pcadriver, /* driver pointer */
- 89 IO_TIMER1, /* base io address */
- 90 -1, /* interrupt */
- 91 -1, /* dma channel */
- 92 (caddr_t)-1, /* physical io memory */
- 93 0, /* size of io memory */
- 94 pcaintr , /* interrupt interface */
- 95 0, /* unit number */
- 96 0, /* flags */
- 97 0, /* scsi id */
- 98 0, /* is alive */
- 99 0, /* flags for register_intr */
- 100 0, /* hot eject device support */
- 101 1 /* is device enabled */
- 102 },
- 103 #if NPCA >1
- 104 {
- 105
- 106 /*
- 107 * these are all zeros, because it doesn't make
- 108 * much sense to be here
- 109 * but it may make sense for your device
- 110 */
- 111
- 112 0, /* device id */
- 113 &amp;pcadriver, /* driver pointer */
- 114 0, /* base io address */
- 115 -1, /* interrupt */
- 116 -1, /* dma channel */
- 117 -1, /* physical io memory */
- 118 0, /* size of io memory */
- 119 NULL, /* interrupt interface */
- 120 1, /* unit number */
- 121 0, /* flags */
- 122 0, /* scsi id */
- 123 0, /* is alive */
- 124 0, /* flags for register_intr */
- 125 0, /* hot eject device support */
- 126 1 /* is device enabled */
- 127 },
- 128 #endif
- 129
- 130 };
- 131
-</programlisting>
-
-<para>
-Lignes 132 - 139
-</para>
-
-<para>
-Ceci appelle la macro MOD_DEV du pr&eacute;processeur C, qui
-installe un module de gestion de p&eacute;riph&eacute;rique de LKM, par
-opposition &agrave; un syst&egrave;me de fichiers LKM, ou un appel syst&egrave;me de LKM.
-</para>
-
-<programlisting>
- 132 /*
- 133 * this macro maps to a function which
- 134 * sets the LKM up for a driver
- 135 * as opposed to a filesystem, system call, or misc
- 136 * LKM.
- 137 */
- 138 MOD_DEV("pcaudio_mod", LM_DT_CHAR, 24, &amp;pcacdevsw);
- 139
-</programlisting>
-
-<para>
-Lignes 140 - 168
-</para>
-
-<para>
-c'est la fonction qui sera appel&eacute;e lorsque le pilote sera
-charg&eacute;. Cette fonction essaye de fonctionner comme
-<filename>/sys/i386/isa/isa.c</filename> qui fait les appels de probe/attach pour un
-pilote au moment du red&eacute;marrage. La plus grande astuce ici est qu'il
-met en correspondance l'adresse physique du segment partag&eacute; de m&eacute;moire, qui est
-indiqu&eacute; dans la structure isa_device &agrave; une adresse virtuelle du noyau.
-Normalement, l'adresse physique est mise dans le fichier de configuration
-qui construit la structure isa_device dans
-<filename>/usr/src/sys/compile/KERNEL/ioconf.c</filename>. La s&eacute;quence probe/attach de
-<filename>/usr/src/sys/isa/isa.c</filename> traduit l'adresse physique en une virtuelle de
-sorte que dans les sous-programmes de probe/attach vous puissiez
-faire des choses comme
-</para>
-<programlisting>
-(int *)id->id_maddr = something;
-</programlisting>
-<para> et se r&eacute;f&egrave;re juste au segment partag&eacute; de m&eacute;moire
-par l'interm&eacute;diaire de pointeurs.
-</para>
-
-<programlisting>
- 140 /*
- 141 * this function is called when the module is
- 142 * loaded; it tries to mimic the behavior
- 143 * of the standard probe/attach stuff from
- 144 * isa.c
- 145 */
- 146 int
- 147 <function>pcaload()</function>{
- 148 int i;
- 149 uprintf("PC Audio Driver Loaded\n");
- 150 for (i=0; i&lt;NPCA; i++){
- 151 /*
- 152 * this maps the shared memory address
- 153 * from physical to virtual, to be
- 154 * consistent with the way
- 155 * /usr/src/sys/i386/isa.c handles it.
- 156 */
- 157 pcadev[i].id_maddr -=0xa0000;
- 158 pcadev[i].id_maddr += atdevbase;
- 159 if ((*pcadriver.probe)(pcadev+i)) {
- 160 (*(pcadriver.attach))(pcadev+i);
- 161 } else {
- 162 uprintf("PC Audio Probe Failed\n");
- 163 return(1);
- 164 }
- 165 }
- 166 return 0;
- 167 }
- 168
-</programlisting>
-
-<para>Lignes 169 - 179
-</para>
-
-<para>c'est la fonction appel&eacute;e quand votre pilote n'est pas
-charg&eacute;; il affiche juste un message &agrave; cet effet.
-</para>
-
-<programlisting>
- 169 /*
- 170 * this function is called
- 171 * when the module is unloaded
- 172 */
- 173
- 174 int
- 175 <function>pcaunload()</function>{
- 176 uprintf("PC Audio Driver Unloaded\n");
- 177 return 0;
- 178 }
- 179
-</programlisting>
-
-<para>Lignes 180 - 190
-</para>
-
-<para>c'est le point d'entr&eacute;e qui est indiqu&eacute; sur la ligne de commande
-de modload. Par convention il est nomm&eacute; &lt;dev>_mod. C'est
-ainsi qu'il est d&eacute;fini dans bsd.lkm.mk, le makefile qui
-construit le LKM. Si vous nommez votre module suivant cette
-convention, vous pouvez faire ``make load'' et ``make unload''
-de /usr/src/lkm/pcaudio.</para>
-
-<para>Note : Il y a eu <emphasis>tellement</emphasis> de r&eacute;visions entre la version 2.0 et
-2.1. Il peut ou ne peut ne pas &ecirc;tre possible d'&eacute;crire
-un module qui est portable pour chacune des trois versions.
-</para>
-
-
-<programlisting>
- 180 /*
- 181 * this is the entry point specified
- 182 * on the modload command line
- 183 */
- 184
- 185 int
- 186 pcaudio_mod(struct lkm_table *lkmtp, int cmd, int ver)
- 187 {
- 188 DISPATCH(lkmtp, cmd, ver, pcaload, pcaunload, nosys);
- 189 }
- 190
- 191 #endif /* NICP > 0 */
-</programlisting>
-</sect2>
-
-<sect2>
-<title>Idiosyncrasies du type p&eacute;riph&eacute;rique</title>
-
-<sect3>
-<title>Caract&egrave;re</title>
-<para></para>
-</sect3>
-
-<sect3>
-<title>Bloc</title>
-<para></para>
-</sect3>
-
-<sect3>
-<title>R&eacute;seau</title>
-<para></para>
-</sect3>
-
-<sect3>
-<title>Line discipline</title>
-<para></para>
-</sect3>
-</sect2>
-
-<sect2>
-<title>Idiosyncrasies du type bus</title>
-
-<sect3>
-<title>ISA</title>
-<para></para>
-</sect3>
-
-<sect3>
-<title>EISA</title>
-<para></para>
-</sect3>
-
-<sect3>
-<title>PCI</title>
-<para></para>
-</sect3>
-
-<sect3>
-<title>SCSI</title>
-<para></para>
-</sect3>
-
-<sect3>
-<title>PCCARD</title>
-<para></para>
-</sect3>
-</sect2>
-</sect1>
-
-
-<sect1>
-<title>Support du noyau</title>
-
-<sect2>
-<title>Structures de donn&eacute;es</title>
-
-<sect3>
-<title>Structure <citerefentry><refentrytitle>struct kern_devconf</refentrytitle></citerefentry></title>
-
-<para>Cette structure contient quelques informations sur l'&eacute;tat du
-p&eacute;riph&eacute;rique et de son pilote. Elle est d&eacute;finie dans
-<filename>/usr/src/sys/sys/devconf.h</filename> comme ci-dessous :
-</para>
-
-<programlisting>
-struct devconf {
- char dc_name[MAXDEVNAME]; /* name */
- char dc_descr[MAXDEVDESCR]; /* description */
- int dc_unit; /* unit number */
- int dc_number; /* unique id */
- char dc_pname[MAXDEVNAME]; /* name of the parent device */
- int dc_punit; /* unit number of the parent */
- int dc_pnumber; /* unique id of the parent */
- struct machdep_devconf dc_md; /* machine-dependent stuff */
- enum dc_state dc_state; /* state of the device (see above) */
- enum dc_class dc_class; /* type of device (see above) */
- size_t dc_datalen; /* length of data */
- char dc_data[1]; /* variable-length data */
-};
-</programlisting>
-</sect3>
-
-<sect3>
-<title>Structure <citerefentry><refentrytitle>struct proc</refentrytitle></citerefentry></title>
-
-<para> Cette structure contient toutes les informations sur un processus.
-Elle est dans d&eacute;finie <filename>/usr/src/sys/sys/proc.h</filename>:
-</para>
-
-<programlisting>
-/*
- * Description of a process.
- *
- * This structure contains the information needed to manage a thread of
- * control, known in UN*X as a process; it has references to
-substructures
- * containing descriptions of things that the process uses, but may
-share
- * with related processes. The process structure and the substructures
- * are always addressable except for those marked "(PROC ONLY)" below,
- * which might be addressable only on a processor on which the process
- * is running.
- */
-struct proc {
- struct proc *p_forw; /* Doubly-linked run/sleep queue. */
- struct proc *p_back;
- struct proc *p_next; /* Linked list of active procs */
- struct proc **p_prev; /* and zombies. */
-
- /* substructures: */
- struct pcred *p_cred; /* Process owner's identity. */
- struct filedesc *p_fd; /* Ptr to open files structure. */
- struct pstats *p_stats; /* Accounting/statistics (PROC ONLY). */
- struct plimit *p_limit; /* Process limits. */
- struct vmspace *p_vmspace; /* Address space. */
- struct sigacts *p_sigacts; /* Signal actions, state (PROC ONLY). */
-
-#define p_ucred p_cred->pc_ucred
-#define p_rlimit p_limit->pl_rlimit
-
- int p_flag; /* P_* flags. */
- char p_stat; /* S* process status. */
- char p_pad1[3];
-
- pid_t p_pid; /* Process identifier. */
- struct proc *p_hash; /* Hashed based on p_pid for kill+exit+... */
- struct proc *p_pgrpnxt; /* Pointer to next process in process group. */
- struct proc *p_pptr; /* Pointer to process structure of parent. */
- struct proc *p_osptr; /* Pointer to older sibling processes. */
-
-/* The following fields are all zeroed upon creation in fork. */
-#define p_startzero p_ysptr
- struct proc *p_ysptr; /* Pointer to younger siblings. */
- struct proc *p_cptr; /* Pointer to youngest living child. */
- pid_t p_oppid; /* Save parent pid during ptrace. XXX */
- int p_dupfd; /* Sideways return value from fdopen. XXX */
-
- /* scheduling */
- u_int p_estcpu; /* Time averaged value of p_cpticks. */
- int p_cpticks; /* Ticks of cpu time. */
- fixpt_t p_pctcpu; /* %cpu for this process during p_swtime */
- void *p_wchan; /* Sleep address. */
- char *p_wmesg; /* Reason for sleep. */
- u_int p_swtime; /* Time swapped in or out. */
- u_int p_slptime; /* Time since last blocked. */
-
- struct itimerval p_realtimer; /* Alarm timer. */
- struct timeval p_rtime; /* Real time. */
- u_quad_t p_uticks; /* Statclock hits in user mode. */
- u_quad_t p_sticks; /* Statclock hits in system mode. */
- u_quad_t p_iticks; /* Statclock hits processing intr. */
-
- int p_traceflag; /* Kernel trace points. */
- struct vnode *p_tracep; /* Trace to vnode. */
-
- int p_siglist; /* Signals arrived but not delivered. */
-
- struct vnode *p_textvp; /* Vnode of executable. */
-
- char p_lock; /* Process lock (prevent swap) count. */
- char p_pad2[3]; /* alignment */
-
-/* End area that is zeroed on creation. */
-#define p_endzero p_startcopy
-
-/* The following fields are all copied upon creation in fork. */
-#define p_startcopy p_sigmask
-
- sigset_t p_sigmask; /* Current signal mask. */
- sigset_t p_sigignore; /* Signals being ignored. */
- sigset_t p_sigcatch; /* Signals being caught by user. */
-
- u_char p_priority; /* Process priority. */
- u_char p_usrpri; /* User-priority based on p_cpu and p_nice. */
- char p_nice; /* Process "nice" value. */
- char p_comm[MAXCOMLEN+1];
-
- struct pgrp *p_pgrp; /* Pointer to process group. */
-
- struct sysentvec *p_sysent; /* System call dispatch information. */
-
- struct rtprio p_rtprio; /* Realtime priority. */
-/* End area that is copied on creation. */
-#define p_endcopy p_addr
- struct user *p_addr; /* Kernel virtual addr of u-area (PROC ONLY). */
- struct mdproc p_md; /* Any machine-dependent fields. */
-
- u_short p_xstat; /* Exit status for wait; also stop signal. */
- u_short p_acflag; /* Accounting flags. */
- struct rusage *p_ru; /* Exit information. XXX */
-};
-</programlisting>
-</sect3>
-
-<sect3>
-<title>Structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry></title>
-<para>La structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry> est employ&eacute;e pour s'interfacer
-avec le cache de la m&eacute;moire tampon. Elle est dans
-d&eacute;finie <filename>/usr/src/sys/sys/buf.h</filename> :
-</para>
-
-<programlisting>
-/*
- * The buffer header describes an I/O operation in the kernel.
- */
-struct buf {
- LIST_ENTRY(buf) b_hash; /* Hash chain. */
- LIST_ENTRY(buf) b_vnbufs; /* Buffer's associated vnode. */
- TAILQ_ENTRY(buf) b_freelist; /* Free list position if not active. */
- struct buf *b_actf, **b_actb; /* Device driver queue when active. */
- struct proc *b_proc; /* Associated proc; NULL if kernel. */
- volatile long b_flags; /* B_* flags. */
- int b_qindex; /* buffer queue index */
- int b_error; /* Errno value. */
- long b_bufsize; /* Allocated buffer size. */
- long b_bcount; /* Valid bytes in buffer. */
- long b_resid; /* Remaining I/O. */
- dev_t b_dev; /* Device associated with buffer. */
- struct {
- caddr_t b_addr; /* Memory, superblocks, indirect etc. */
- } b_un;
- void *b_saveaddr; /* Original b_addr for physio. */
- daddr_t b_lblkno; /* Logical block number. */
- daddr_t b_blkno; /* Underlying physical block number. */
- /* Function to call upon completion. */
- void (*b_iodone) __P((struct buf *));
- /* For nested b_iodone's. */
- struct iodone_chain *b_iodone_chain;
- struct vnode *b_vp; /* Device vnode. */
- int b_pfcent; /* Center page when swapping cluster. */
- int b_dirtyoff; /* Offset in buffer of dirty region. */
- int b_dirtyend; /* Offset of end of dirty region. */
- struct ucred *b_rcred; /* Read credentials reference. */
- struct ucred *b_wcred; /* Write credentials reference. */
- int b_validoff; /* Offset in buffer of valid region. */
- int b_validend; /* Offset of end of valid region. */
- daddr_t b_pblkno; /* physical block number */
- caddr_t b_savekva; /* saved kva for transfer while bouncing */
- void *b_driver1; /* for private use by the driver */
- void *b_driver2; /* for private use by the driver */
- void *b_spc;
- struct vm_page *b_pages[(MAXPHYS + PAGE_SIZE - 1)/PAGE_SIZE];
- int b_npages;
-};
-</programlisting>
-</sect3>
-
-
-<sect3>
-<title>Structure <citerefentry><refentrytitle>struct uio</refentrytitle></citerefentry></title>
-
-<para>Cette structure est utilis&eacute;e pour d&eacute;placer des donn&eacute;es entre le noyau et
-les espaces utilisateur par les appels syst&egrave;me de <function>read()</function> et de <function>write()</function>.
-Il est dans d&eacute;fini <filename>/usr/src/sys/sys/uio.h</filename> :
-</para>
-
-<programlisting>
-struct uio {
- struct iovec *uio_iov;
- int uio_iovcnt;
- off_t uio_offset;
- int uio_resid;
- enum uio_seg uio_segflg;
- enum uio_rw uio_rw;
- struct proc *uio_procp;
-};
-</programlisting>
-</sect3>
-</sect2>
-
-
-<sect2>
-<title>Fonctions</title>
-<para>plein</para>
-</sect2>
-
-<sect2>
-<title>R&eacute;f&eacute;rences.</title>
-
-<para> FreeBSD Kernel Sources http://www.freebsd.org
-</para>
-
-<para> NetBSD Kernel Sources http://www.netbsd.org
-</para>
-
-<para> Writing Device Drivers: Tutorial and Reference;
-Tim Burke, Mark A. Parenti, Al, Wojtas;
-Digital Press, ISBN 1-55558-141-2.
-</para>
-
-<para> Writing A Unix Device Driver;
-Janet I. Egan, Thomas J. Teixeira;
-John Wiley &amp; Sons, ISBN 0-471-62859-X.
-</para>
-
-<para> Writing Device Drivers for SCO Unix;
-Peter Kettle;
-</para>
-</sect2>
-</sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/diskless-x/Makefile b/fr_FR.ISO8859-1/articles/diskless-x/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/diskless-x/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/diskless-x/article.sgml b/fr_FR.ISO8859-1/articles/diskless-x/article.sgml
deleted file mode 100644
index fdbd117e7c..0000000000
--- a/fr_FR.ISO8859-1/articles/diskless-x/article.sgml
+++ /dev/null
@@ -1,298 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
- <artheader>
- <title>Mise en oeuvre d'un terminal X sans disque dur</title>
-
- <authorgroup>
- <author>
- <firstname> Jerry</firstname>
- <surname>Kendall</surname>
- <affiliation>
- <address>
- <email>jerry@kcis.com</email>
- </address>
- </affiliation>
- </author></authorgroup>
-
- <pubdate>28 D&eacute;cembre 1996</pubdate>
-
- <copyright>
- <year>1996</year>
- <holder>Jerry Kendall</holder>
- </copyright>
-
- <abstract>
- <para>Avec l'aide de quelques amis de la &a.hackers;, j'ai pu mettre en service un terminal X sans disque dur. Pour cela, j'ai d'abord d&ucirc; installer une station sans disque qui dispose d'un minimum d'utilitaires mont&eacute;s par NFS. J'ai r&eacute;p&eacute;t&eacute; l'op&eacute;ration pour disposer de deux syst&egrave;mes sans disque. Pour les deux, j'ai proc&eacute;d&eacute; de la m&ecirc;me fa&ccedil;on. Le premier est <hostid role="fqdn">altair.kcis.com</hostid>. C'est un terminal X sur mon vieux 386DX-40. Il a bien un disque dur de 340 Mo, mais je ne voulais pas y toucher. Il d&eacute;marre donc &agrave; partir de <hostid role="fqdn">antares.kcis.com</hostid> sur le r&eacute;seau Ethernet. Le second est un 486DX2-66. J'ai install&eacute; un syst&egrave;me FreeBSD (complet) qui n'utilise pas de disque local. Le serveur de d&eacute;marrage est un Sun 670MP sous SunOs 4.1.3. Les deux syst&egrave;mes FreeBSD sont configur&eacute;s de la m&ecirc;me fa&ccedil;on.</para>
-
- <para>Je suis s&ucirc;r qu'il y a des choses &agrave; ajouter &agrave; ce document. Faites-moi s'il vous pla&icirc;t part de vos commentaires.</para>
-
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.haby;
- </abstract>
- </artheader>
-
- <sect1>
- <title>Pr&eacute;paration de la disquette de d&eacute;marrage (sur le syst&egrave;me sans disque)</title>
-
- <para>Les gestionnaires de d&eacute;marrage via le r&eacute;seau ne sont pas compatibles avec les TSRs et autres qu'utilise MS-DOS, il est pr&eacute;f&eacute;rable de pr&eacute;parer une disquette de d&eacute;marrage, ou, si vous le pouvez, de mettre en place un menu MS-DOS qui (par l'interm&eacute;diaire des fichiers <filename>config.sys</filename>/<filename>autoexec.bat</filename>) vous demande au d&eacute;marrage quelle configuration charger. C'est cette derni&egrave;re m&eacute;thode que j'ai utilis&eacute;e et elle fonctionne &agrave; merveille. Voici mon menu MS-DOS&nbsp;:</para>
-
- <example>
- <title><filename>config.sys</filename></title>
-
- <programlisting>[menu]
-menuitem=normal, normal
-menuitem=unix, unix
-[normal]
-....
-config.sys habituel
-...
-[unix]</programlisting>
- </example>
-
- <example>
- <title><filename>autoexec.bat</filename></title>
-
- <programlisting>@ECHO OFF
-goto %config%
-
-:normal
-...
-autoexec.bat habituel
-...
-goto end
-
-:unix
-cd \netboot
-nb8390.com
-
-:end</programlisting>
- </example>
- </sect1>
-
- <sect1>
- <title>G&eacute;n&eacute;rer les programmes de d&eacute;marrage en r&eacute;seau (sur le serveur)</title>
-
- <para>Compilez les programmes de &ldquo;d&eacute;marrage en r&eacute;seau&rdquo; que vous trouverez dans <filename>/usr/src/sys/i386/boot/netboot</filename>. Lisez les commentaires au d&eacute;but du <filename>Makefile</filename>. Faites les modifications n&eacute;cessaires. Faites une sauvegarde de l'original, pour vous pr&eacute;munir en cas de probl&egrave;mes. Apr&egrave;s compilation, vous devriez obtenir deux ex&eacute;cutables, <filename>nb8390.com</filename> et <filename>nb3c509.com</filename>. C'est l'un de ces programmes que vous devrez ex&eacute;cuter sur la machine sans disque. Il chargera le noyau depuis le serveur de d&eacute;marrage. Recopiez alors ces deux programmes sur la disquette de d&eacute;marrage que vous avez cr&eacute;&eacute;e auparavant.</para>
- </sect1>
-
- <sect1>
- <title>D&eacute;terminer le programme &agrave; utiliser (sur la machine sans disque)</title>
-
- <para>Si vous savez quel composant utilise votre carte Ethernet, c'est facile. Si vous avez un circuit NS8390 ou &eacute;quivalent, servez vous de <filename>nb8390.com</filename>. Si vous avez un circuit de type 3Com 509, utilisez le programme de d&eacute;marrage <filename>nb3C509.com</filename>. Si vous ne savez pas, essayez l'un et si vous avez le message &ldquo;<errorname>No adapter found</errorname>&rdquo;, essayez avec l'autre. Si rien ne marche, vous &ecirc;tes livr&eacute; &agrave; vous-m&ecirc;me.</para>
- </sect1>
-
- <sect1>
- <title>D&eacute;marrer en r&eacute;seau</title>
-
- <para>D&eacute;marrez la station sans disque sans fichiers <filename>config.sys/autoexec.bat</filename>. Essayez d'ex&eacute;cuter le programme de d&eacute;marrage qui correspond &agrave; votre carte Ethernet.</para>
-
- <para>Ma carte Ethernet utilise le mode 16bit WD8013 16bit, j'ex&eacute;cute donc
- <filename>nb8390.com</filename>&nbsp;:</para>
-
- <screen><prompt>C:&gt;</prompt> <userinput>cd \netboot</userinput>
-<prompt>C:&gt</prompt> <userinput>nb8390</userinput>
-
-<prompt>Boot from Network (Y/N) ?</prompt> <userinput>Y</userinput>
-
-BOOTP/TFTP/NFS bootstrap loader ESC for menu
-
-Searching for adapter..
-WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66
-
-Searching for server...</screen>
-
- <para>La machine sans disque essaye maintenant de trouver un serveur de d&eacute;marrage. Notez la valeur de <literal>addr</literal> sur l'avant derni&egrave;re ligne, vous en aurez besoin ensuire. Red&eacute;marrez la machine sans disque et modifiez vos
-fichiers <filename>config.sys</filename> et <filename>autoexec.bat</filename> pour qu'ils fassent automatiquement ce que vous venez de faire &agrave; la main. Peut-&ecirc;tre avec un menu. Si vous aviez d&ucirc; utiliser <command>nb3c509.com</command> au lieu de <command>nb8390.com</command>, les messages seraient identiques. Si vous obtenez le message &ldquo;<errorname>No adapter found</errorname>&rdquo; apr&egrave;s &ldquo;<literal>Searching for adapter...</literal>&rdquo;, v&eacute;rifiez que vous avez d&eacute;fini les bonnes valeurs dans le <filename>Makefile</filename> au moment de compiler.</para>
- </sect1>
-
- <sect1>
- <title>Permettre aux syst&egrave;mes de d&eacute;marrer via le r&eacute;seau (sur le serveur)</title>
-
- <para>V&eacute;rifiez qu'il y a bien des entr&eacute;es pour <citerefentry><refentrytitle>tftp</refentrytitle></citerefentry> et <citerefentry><refentrytitle>bootps</refentrytitle></citerefentry> dans le fichier <filename>/etc/inetd.conf</filename>. Voici le mien&nbsp;:</para>
-
- <programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd
-#
-# Ajout de qui que vous soyez
-bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab</programlisting>
-
- <para>Si vous devez modifier le fichier <filename>/etc/inetd.conf</filename>, envoyez ensuite un signal <literal>HUP</literal> &agrave; <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Pour cela, utilisez la commande <command>ps -ax | grep inetd | grep -v grep</command> pour conna&icirc;tre le num&eacute;ro de processus d'<citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Une fois que vous l'avez, envoyez lui le signal HUP. Cela se fait avec <command>kill -HUP &lt;pid&gt;</command>. Cela obligera <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry> &agrave; relire ses fichiers de configuration.</para>
-
- <para>Vous avez bien not&eacute; la valeur de <literal>addr</literal> dans les messages du programme de d&eacute;marrage sur la machine sans disque&nbsp;? C'est maintenant que vous allez en avoir besoin.</para>
-
- <para>Ajoutez une entr&eacute;e &agrave; <literal>/etc/bootptab</literal> (vous devrez peut-&ecirc;tre cr&eacute;er ce fichier). Voici &agrave; quoi elle doit ressembler&nbsp;:</para>
-
- <programlisting>altair:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:ht=ether:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:ha=004001432666:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:sm=255.255.255.0:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hn:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:ds=199.246.76.1:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:ip=199.246.76.2:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:gw=199.246.76.1:\
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:vm=rfc1048:</programlisting>
-
- <para>Ce qui, ligne par ligne, signifie&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><literal>altair</literal></entry>
- <entry>nom du syst&egrave;me sans disque, sans nom de domaine</entry>
- </row>
-
- <row>
- <entry><literal>ht=ether</literal></entry>
- <entry>type mat&eacute;riel &ldquo;ethernet&rdquo;</entry>
- </row>
-
- <row>
- <entry><literal>ha=004001432666</literal></entry>
- <entry>adresse mat&eacute;rielle (le nombre que vous avez not&eacute; auparavant)</entry>
- </row>
-
- <row>
- <entry><literal>sm=255.255.255.0</literal></entry>
- <entry>masque de sous-r&eacute;seau</entry>
- </row>
-
- <row>
- <entry><literal>hn</literal></entry>
- <entry>dit au serveur de donner au client son nom de machine</entry>
- </row>
-
- <row>
- <entry><literal>ds=199.246.76.1</literal></entry>
- <entry>dit au client quel est son serveur de noms de domaine</entry>
- </row>
-
- <row>
- <entry><literal>ip=199.246.76.2</literal></entry>
- <entry>dit au client quelle est son adresse IP</entry>
- </row>
-
- <row>
- <entry><literal>gw=199.246.76.1</literal></entry>
- <entry>dit au client quelle est sa passerelle par d&eacute;faut</entry>
- </row>
-
- <row>
- <entry><literal>vm=...</literal></entry>
- <entry>laissez cela tel que</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>Veillez &agrave; bien d&eacute;finir les adresses IP, j'ai invent&eacute; celles de l'exemple.</para>
-
- </note>
-
- <para>Cr&eacute;ez le r&eacute;pertoire <filename>/tftpboot</filename> sur le serveur. Il contiendra les fichiers de configuration pour les syst&egrave;mes sans disque dont ce sera le serveur de d&eacute;marrage. Ces fichiers s'appeleront <filename>cfg.&lt;ip&gt;</filename>, o&ugrave; &lt;ip&gt; est l'adresse IP de la machine sans disque. Le fichier de configuration pour &ldquo;altair&rdquo; est <filename>/tftpboot/cfg.199.246.76.2</filename>. Voici son contenu&nbsp;:</para>
-
- <programlisting>rootfs 199.246.76.1:/DiskLess/rootfs/altair
-hostname altair.kcis.com</programlisting>
-
- <para>La ligne <literal>hostname altair.kcis.com</literal> indique seulement au syst&egrave;me sans disque quel est son nom qualifi&eacute;.</para>
-
- <para>La ligne <literal>rootfs 199.246.76.1:/DiskLess/rootfs/altair</literal> lui dit o&ugrave; est son syst&egrave;me de fichiers racine qui sera mont&eacute; par NFS.</para>
-
- <note>
- <para>Ce syst&egrave;me de fichiers racine sera mont&eacute; en <emphasis>lecture seule</emphasis> par NFS.</para>
- </note>
-
- <para>L'arborescence de la machine sans disque peut ensuite &ecirc;tre remont&eacute;e pour autoriser les op&eacute;rations de lecture/&eacute;criture.</para>
-
- <para>J'utilise mon 386DX-40 comme terminal X d&eacute;di&eacute;.</para>
-
- <para>Voici l'arborescence d'&ldquo;altair&rdquo;&nbsp;:</para>
-
- <literallayout>/
-/bin
-/etc
-/tmp
-/sbin
-/dev
-/dev/fd
-/usr
-/var
-/var/run</literallayout>
-
- <para>Et la liste des fichiers qu'elle contient&nbsp;:</para>
-
- <screen>-r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel
--r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh
--rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc
--rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys
--rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts
--rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair
--r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init
--r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig
--r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs
--r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot
--r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount
--r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local
--r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV</screen>
-
- <para>N'oubliez pas d'ex&eacute;cuter <command>MAKEDEV all</command> dans le r&eacute;pertoire <filename>dev</filename>.</para>
-
- <para>Voici enfin mon <filename>/etc/rc</filename> pour <hostid>altair</hostid>&nbsp;:</para>
-
-<programlisting>#!/bin/sh
-#
-PATH=/bin:/
-export PATH
-#
-# configurer l'interface &ldquo;en boucle&rdquo;
-/sbin/ifconfig lo0 127.0.0.1
-#
-# configurer la carte Ethernet
-/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00
-#
-# monter le syst&egrave;me de fichiers racine via NFS
-/sbin/mount antares:/DiskLess/rootfs/altair /
-#
-# monter le syst&egrave;me de fichiers /usr via NFS
-/sbin/mount antares:/DiskLess/usr /usr
-#
-/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1
-#
-# R&eacute;demarrer lorsque l'on quitte X
-/sbin/reboot
-#
-# Nous avons plant&eacute; ...
-exit 1</programlisting>
-
- <para>Vos commentaires et questions sont bienvenus.</para>
- </sect1>
-</article>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/fr_FR.ISO8859-1/articles/fonts/Makefile b/fr_FR.ISO8859-1/articles/fonts/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/fonts/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/fonts/article.sgml b/fr_FR.ISO8859-1/articles/fonts/article.sgml
deleted file mode 100755
index 146bd45422..0000000000
--- a/fr_FR.ISO8859-1/articles/fonts/article.sgml
+++ /dev/null
@@ -1,775 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
- <artheader>
- <title>FreeBSD et les polices de caract&egrave;res</title>
- <subtitle>Un guide utilisateur</subtitle>
- <authorgroup>
- <author>
- <firstname>Dave</firstname>
- <surname>Bodenstab</surname>
- </author>
- </authorgroup>
- &artheader.copyright;
- <abstract>
- <para><email>imdave@synet.net</email></para>
- <para>Mercredi 7 Aout 1996</para>
- <para>Ce document d&eacute;crit les diff&eacute;rents fichiers de polices de caract&egrave;res
- qui peuvent &ecirc;tre utilis&eacute;s avec FreeBSD et le pilote syscons, X11,
- GhostScript et Groff. Des exemples imm&eacute;diatement applicables sont donn&eacute;s
- pour passer l'affichage &agrave; la console en mode 80x60 et pour se servir des
- polices &ldquo;Type 1&rdquo; avec les programmes d'application
- pr&eacute;cit&eacute;s.</para>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.haby;
- </abstract>
- </artheader>
- <sect1>
- <title>Introduction</title>
- <para>Il y a de nombreuses sources de polices de caract&egrave;res disponibles,
- et l'on peut se demander comment les utiliser avec FreeBSD. La
- r&eacute;ponse peut &ecirc;tre obtenue en d&eacute;taillant attentivement la
- documentation du composant voulu. Cela peut prendre beaucoup de
- temps, ce guide essaie donc de fournir un raccourci pour les autres
- personnes que cela int&eacute;resserait.</para>
- </sect1>
- <sect1>
- <title>Terminologie &eacute;l&eacute;mentaire</title>
- <para>Il y a de nombreux formats de polices de caract&egrave;res avec chacun
- son propre suffixe de nom de fichier. Quelques uns d'entre eux
- seront discut&eacute;s dans ce document:</para>
- <variablelist>
- <varlistentry>
- <term><filename>.pfa</filename>, <filename>.pfb</filename></term>
- <listitem>
- <para>Polices PostScript &ldquo;Type 1&rdquo;.
- <filename>.pfa</filename> est le format <emphasis>A</emphasis>scii
- et <filename>.pfb</filename> le format
- <emphasis>B</emphasis>inaire.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>.afm</filename></term>
- <listitem>
- <para>Le fichier de dimensions d'une police
- &ldquo;Type 1&rdquo;.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>.pfm</filename></term>
- <listitem>
- <para>Le fichier de dimensions pour l'impression d'une police
- &ldquo;Type 1&rdquo;.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>.ttf</filename></term>
- <listitem>
- <para>Police &ldquo;True Type&rdquo;.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>.fot</filename></term>
- <listitem>
- <para>R&eacute;f&eacute;rence indirecte &agrave; une police &ldquo;True Type&rdquo; (ce
- n'est pas la police elle-m&ecirc;me).</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>.fon</filename>, <filename>.fnt</filename></term>
- <listitem>
- <para>Police de caract&egrave;res &ldquo;bitmap&rdquo; pour affichage &agrave;
- l'&eacute;cran.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>Les fichiers <filename>.fot</filename> sont employ&eacute;s par Windows un
- peu de la m&ecirc;me fa&ccedil;on que des liens symboliques vers le fichiers de police
- &ldquo;True Type&rdquo; (<filename>.ttf</filename>). Les fichiers
- <filename>.fon</filename> sont aussi utilis&eacute;s par Windows. Je ne
- connais pas de moyen de se servir de ces fichiers avec FreeBSD.</para>
- </sect1>
- <sect1>
- <title>Quels formats de polices de caract&egrave;res puis-je utiliser?</title>
- <para>Le format de fichier de police de caract&egrave;res utile d&eacute;pend de
- l'application. FreeBSD lui-m&ecirc;me n'utilise pas de police de
- caract&egrave;res. Ce sont les programmes d'application et/ou les pilotes
- qui se servent &eacute;ventuellement de ces fichiers. Voici un petit tableau
- associant application/pilote de p&eacute;riph&eacute;rique et suffixe des fichiers de
- police de caract&egrave;res:</para>
- <informaltable>
- <tgroup cols="6">
- <thead>
- <row>
- <entry></entry>
- <entry><filename>.fnt</filename></entry>
- <entry><filename>.pfa</filename></entry>
- <entry><filename>.pfb</filename></entry>
- <entry><filename>.ttf</filename></entry>
- <entry><filename>.afm</filename></entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Pilote <devicename>syscons</devicename></entry>
- <entry>Oui</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry><application>GhostScript</application></entry>
- <entry></entry>
- <entry>Oui</entry>
- <entry>Oui</entry>
- <entry>Oui</entry>
- <entry></entry>
- </row>
- <row>
- <entry>X11</entry>
- <entry></entry>
- <entry>Oui</entry>
- <entry>Oui</entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry><application>Groff</application></entry>
- <entry></entry>
- <entry>Oui</entry>
- <entry></entry>
- <entry></entry>
- <entry>Oui</entry>
- </row>
- <row>
- <entry><application>Povray</application></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>Oui</entry>
- <entry></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- <para>Le suffixe <filename>.fnt</filename> est assez fr&eacute;quemment utilis&eacute;.
- Je soup&ccedil;onne que lorsque quelqu'un veut cr&eacute;er un fichier de police de
- caract&egrave;res sp&eacute;cialis&eacute; pour son application, il choisit la plupart du temps
- ce suffixe. Il y a donc des chances pour que des fichiers avec ce
- suffixe n'aient pas tous le m&ecirc;me format; en particulier, les fichiers
- <filename>.fnt</filename> utilis&eacute;s par le pilote syscons de FreeBSD
- n'auront peut-&ecirc;tre pas le m&ecirc;me format qu'un fichier
- <filename>.fnt</filename> utilis&eacute; dans l'environnement DOS/Windows. Je
- n'ai jamais essay&eacute; d'utiliser d'autres fichiers <filename>.fnt</filename>
- que ceux fournis avec FreeBSD.</para>
- </sect1>
- <sect1>
- <title>Configurer une console virtuelle en mode 80x60 lignes</title>
- <para>Il faut d'abord charger une police de caract&egrave;res 8x8. Le fichier
- <filename>/etc/sysconfig</filename><footnote><para>N.d.T.:
- <filename>/etc/rc.conf</filename> dans les versions r&eacute;centes de
- FreeBSD.</para></footnote> doit donc contenir les lignes:</para>
- <programlisting>
-# choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default)
-font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt
- </programlisting>
- <para>La commande pour changer de mode d'affichage est
- <citerefentry><refentrytitle>vidcontrol</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>:</para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>vidcontrol VGA_80x60</userinput></screen>
- </informalexample>
- <para>Diff&eacute;rents programmes en mode plein-&eacute;cran, tel
- <citerefentry><refentrytitle>vi</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>,
- doivent pouvoir d&eacute;terminer la taille actuelle de l'&eacute;cran. Elle peut &ecirc;tre
- configur&eacute;e avec
- <citerefentry><refentrytitle>stty</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>:</para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>stty crt rows 60 columns 80</userinput></screen>
- </informalexample>
- <para>Pour rendre cela moins fastidieux, ces commandes peuvent &ecirc;tre
- introduites dans une proc&eacute;dure ex&eacute;cut&eacute;e au d&eacute;marrage du syst&egrave;me. Voici une
- fa&ccedil;on de le faire:</para>
- <orderedlist>
- <listitem>
- <para>Modifiez <filename>/etc/sysconfig</filename> comme expliqu&eacute; plus
- haut,</para>
- </listitem>
- <listitem>
- <para>Ajoutez les lignes suivantes &agrave;
- <filename>/etc/rc.local</filename>:</para>
- <programlisting>
-for tty in /dev/ttyv?
-do
- vidcontrol VGA_80x60 <$tty >/dev/null 2>&1
-done
- </programlisting>
- </listitem>
- <listitem>
- <para>Ajoutez les lignes suivantes &agrave;
- <filename>/etc/profile</filename>:</para>
- <programlisting>
-TTYNAME=`basename \`tty\``
-if expr "$TTYNAME" : 'ttyv' > /dev/null
-then
- stty crt rows 60 columns 80
-fi
- </programlisting>
- </listitem>
- </orderedlist>
- <para>R&eacute;f&eacute;rences:
- <citerefentry><refentrytitle>stty</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>vidcontrol</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>.</para>
- </sect1>
- <sect1>
- <title>X11 et les polices &ldquo;Type 1&rdquo;</title>
- <para>X11 peut employer les formats de police de caract&egrave;res
- <filename>.pfa</filename> et <filename>.pfb</filename>. Il y a une
- r&eacute;f&eacute;rence crois&eacute;e de chaque fichier sur son nom X11 par l'interm&eacute;diaire du
- fichier <filename>fonts.dir</filename> de chaque r&eacute;pertoire.</para>
- <para>Il y a d&eacute;j&agrave; un r&eacute;pertoire appel&eacute; <filename>Type1</filename>. La fa&ccedil;on
- la plus imm&eacute;diate d'ajouter une police de caract&egrave;res est de la mettre dans
- ce r&eacute;pertoire. Une meilleure mani&egrave;re de proc&eacute;der est de mettre toutes les
- nouvelle polices dans un r&eacute;pertoire distinct et d'utiliser un lien
- symbolique sur ces nouvelles polices. Il est alors plus facile de
- distinguer ses propres polices de celles qui sont fournies d'origine. Par
- exemple:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>Cr&eacute;er un repertoire pour les fichiers de police de
- caract&egrave;res.</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>mkdir -p /usr/local/share/fonts/type1</userinput>
-<prompt>bash$</prompt> <userinput>cd /usr/local/share/fonts/type1</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Y mettre les fichiers <filename>.pfa</filename>,
- <filename>.pfb</filename> et <filename>.afm</filename>. On peut aussi
- vouloir y conserver les fichiers <filename>README</filename> et autres
- documentations concernant les polices de caract&egrave;res.</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</userinput>
-<prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Tenir &agrave; jour un index pour cr&eacute;er les r&eacute;f&eacute;rences crois&eacute;es
- sur les polices.</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</userinput></screen>
- </informalexample>
- </listitem>
- </itemizedlist>
- <para>Pour pouvoir maintenant utiliser une nouvelle police de caract&egrave;res, il
- faut mettre le fichier &agrave; disposition, et mettre &agrave; jour le fichier des
- noms de polices. Les noms de police X11 se pr&eacute;sentent comme suit:</para>
- <programlisting>
--bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
- | | | | | | | | | | | | \ \
- | | | | | \ \ \ \ \ \ \ +----+- jeu de caract&egrave;res
- | | | | \ \ \ \ \ \ \ +- largeur moyenne
- | | | | \ \ \ \ \ \ +- espacement
- | | | \ \ \ \ \ \ +- r&eacute;solution verticale
- | | | \ \ \ \ \ +- r&eacute;solution horizontale
- | | | \ \ \ \ +- points
- | | | \ largeur \ +- pixels
- | | | \ \
- casse famille graisse inclinaison style suppl&eacute;mentaire
- </programlisting>
- <para>Il faut cr&eacute;er un nouveau nom pour chaque nouvelle police. Si la
- documentation qui l'accompagne vous donne quelques informations, elle
- peut servir de base pour d&eacute;finir ce nom. Si vous n'avez aucune
- information, vous pouvez utiliser la commande
- <citerefentry><refentrytitle>strings</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> sur le fichier de police. Par
- exemple:</para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>strings showboat.pfb | more</userinput></screen>
- </informalexample>
- <programlisting>
-%!FontType1-1.0: Showboat 001.001
-%%CreationDate: 1/15/91 5:16:03 PM
-%%VMusage: 1024 45747
-% Generated by Fontographer 3.1
-% Showboat
- 1991 by David Rakowski. Alle Rechte Vorbehalten.
-FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup
-/UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-12 dict begin
-/FontInfo 9 dict dup begin
- /version (001.001) readonly def
- /FullName (Showboat) readonly def
- /FamilyName (Showboat) readonly def
- /Weight (Medium) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -106 def
- /UnderlineThickness 16 def
- /Notice (Showboat
- 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def
-end readonly def
-/FontName /Showboat def
---stdin--
- </programlisting>
- <para>A partir de ces informations, le nom pourrait &ecirc;tre:</para>
- <programlisting>
--type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
- </programlisting>
- <para>Les composantes de ce nom sont:</para>
- <variablelist>
- <varlistentry>
- <term>Casse</term>
- <listitem>
- <para>Appelons simplement toutes nos nouvelles polices
- <literal>type1</literal>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Famille</term>
- <listitem>
- <para>Le nom de la police.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Graisse</term>
- <listitem>
- <para>Normal, gras, m&eacute;dium, semi-gras, etc. D'apr&egrave;s les r&eacute;sultats
- de <citerefentry><refentrytitle>strings</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> ci-dessus, la police a une
- graisse <emphasis>m&eacute;dium</emphasis>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Inclinaison</term>
- <listitem>
- <para><emphasis>r</emphasis>oman, <emphasis>i</emphasis>talique ou
- <emphasis>o</emphasis>blique. Comme
- <emphasis>ItaliqueAngle</emphasis> vaut 0, nous utiliserons
- <emphasis>roman</emphasis>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Largeur</term>
- <listitem>
- <para>Normale, large, condens&eacute;e, &eacute;tendue, etc. Jusqu'&agrave; ce que nous la
- d&eacute;terminions &agrave; l'usage, nous supposerons qu'elle est
- <emphasis>normale</emphasis>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Style suppl&eacute;mentaire</term>
- <listitem>
- <para>Habituellement non renseign&eacute;, mais nous nous en servons pour
- indiquer que la police contient des majuscules d&eacute;coratives.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Espacement</term>
- <listitem>
- <para>Proportionnel ou fixe. Comme <emphasis>isFixedPitch</emphasis>
- est faux, nous utilisons <emphasis>Proportionnel</emphasis>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para> Tous ces noms sont arbitraires, mais il faut essayer de rester
- compatible avec les conventions existantes. Une police est connue d'une
- application X11 sous un nom qui peut &eacute;ventuellement comporter des
- caract&egrave;res de substitution, il faut donc choisir un nom significatif. On
- peut commencer en utilisant simplement:</para>
- <programlisting>
-...-normal-r-normal-...-p-...
- </programlisting>
- <para>comme nom, puis se servir de
- <citerefentry><refentrytitle>xfontsel</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> pour visualiser la police et
- affiner son nom en fonction de ce &agrave; quoi elle ressemble.</para>
- <para>Donc, pour compl&eacute;ter notre exemple:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>Rendre la police accessible &agrave; X11</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</userinput>
-<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Editer <filename>fonts.scale</filename> et
- <filename>fonts.dir</filename> pour y ajouter une ligne d&eacute;crivant la
- nouvelle police et incr&eacute;menter le nombre de polices qui est d&eacute;fini en
- premi&egrave;re ligne</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>ex fonts.dir</userinput>
-<userinput>:1p</userinput>
-<userinput>25</userinput>
-<userinput>:1c</userinput>
-<userinput>26</userinput>
-<userinput>.</userinput>
-<userinput>:$a</userinput>
-<userinput>showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</userinput>
-<userinput>.</userinput>
-<userinput>:wq</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis><filename>fonts.scale</filename> et
- <filename>fonts.dir</filename> sont apparemment
- identiques</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cp fonts.dir fonts.scale</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Informer X11 des modifications</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>xset fp rehash</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Visualiser la nouvelle police</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>xfontsel -pattern -type1-*</userinput></screen>
- </informalexample>
- </listitem>
- </itemizedlist>
- <para>R&eacute;f&eacute;rences: <citerefentry><refentrytitle>xfontsel</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>xset</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>, <emphasis>The X Window System
- in a Nutshell</emphasis>, <ulink url="http://www.ora.com">O'Reilly &amp;
- Associates</ulink>.</para>
- </sect1>
- <sect1>
- <title>Utiliser les polices &ldquo;Type 1&rdquo; avec GhostScript</title>
- <para>GhostScript r&eacute;f&eacute;rence les polices via son fichier
- <filename>Fontmap</filename>. Il doit donc &ecirc;tre modifi&eacute; de la m&ecirc;me fa&ccedil;on
- que le fichier X11 <filename>fonts.dir</filename>. GhostScript peut
- utiliser des fichiers de police de caract&egrave;res aux formats
- <filename>.pfa</filename> ou <filename>.pfb</filename>. Voici comment nous
- utiliserions la police de l'exemple pr&eacute;c&eacute;dent avec GhostScript:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>Mettre la police dans le r&eacute;pertoire des polices de
- GhostScript</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/fonts</userinput>
-<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Editer le fichier <filename>Fontmap</filename> pour que
- GhostScript ait connaissance de la nouvelle police</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/4.01</userinput>
-<prompt>bash$</prompt> <userinput>ex Fontmap</userinput>
-<userinput>:$a</userinput>
-<userinput>/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat</userinput>
-<userinput>:wq</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Utiliser GhostScript pour visualiser la
- police</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>gs prfont.ps</userinput></screen>
- </informalexample>
- <programlisting>
-Aladdin Ghostscript 4.01 (1996-7-10)
-Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights
-reserved.
-This software comes with NO WARRANTY: see the file PUBLIC for details.
-Loading Times-Roman font from /usr/local/share/ghostscript/fonts/tir_____.pfb...
- /1899520 581354 1300084 13826 0 done.
- </programlisting>
- <informalexample>
-<screen><prompt>GS&gt;</prompt> <userinput>Showboat DoFont</userinput></screen>
- </informalexample>
- <programlisting>
-Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb...
- 1939688 565415 1300084 16901 0 done.
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
-&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
- </programlisting>
- <informalexample>
-<screen><prompt>GS&gt;</prompt> <userinput>quit</userinput></screen>
- </informalexample>
- </listitem>
- </itemizedlist>
- <para>R&eacute;f&eacute;rences: <filename>fonts.txt</filename> de la distribution de
- GhostScript 4.01.</para>
- </sect1>
- <sect1>
- <title>Utiliser les polices &ldquo;Type 1&rdquo; avec Groff</title>
- <para>Maintenant que nous pouvons utiliser la nouvelle police avec X11 et
- GhostScript, comment faire pour s'en servir aussi avec groff? Tout
- d'abord, comme nous nous occupons de polices PostScript
- &ldquo;Type 1&rdquo;, le p&eacute;riph&eacute;rique groff &agrave; utiliser est
- <devicename>ps</devicename>. Il faut cr&eacute;er un fichier de police pour
- chaque police utilis&eacute;e par groff. Le nom d'une police groff se r&eacute;sume &agrave; un
- fichier dans le r&eacute;pertoire
- <filename>/usr/share/groff_font/devps</filename>. Dans notre exemple, ce
- pourrait &ecirc;tre <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>.
- Il faut cr&eacute;er ce fichier avec les outils fournis par groff.</para>
- <para>Le premier outil est <filename>afmtodit</filename>. Il n'est pas
- normalement install&eacute; et doit donc &ecirc;tre extrait de la distribution sous
- forme de sources. Je me suis aper&ccedil;u qu'il fallait modifier la premi&egrave;re
- ligne du fichier, voici donc ce que j'ai fait:</para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</userinput>
-<prompt>bash$</prompt> <userinput>ex /tmp/afmtodit.pl</userinput>
-<userinput>:1c</userinput>
-<userinput>#!/usr/bin/perl -P-</userinput>
-<userinput>.</userinput>
-<userinput>:wq</userinput></screen>
- </informalexample>
- <para>Cet outil cr&eacute;e le fichier de police groff &agrave; partir du fichier de
- dimensions de la police (suffixe <filename>.afm</filename>). Pour
- continuer avec notre exemple:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>De nombreux fichiers <filename>.afm</filename> sont au
- format Mac... avec des lignes termin&eacute;es par des ^M</emphasis></para>
- <para>Il faut les convertir au style Unix avec des lignes termin&eacute;es par
- des ^J</para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput>
-<prompt>bash$</prompt> <userinput>cat /usr/local/share/fonts/type1/showboat.afm |</userinput>
- <userinput>tr '\015' '\012' >showboat.afm</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Cr&eacute;ons maintenant le fichier de police
- groff</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cd /usr/share/groff_font/devps</userinput>
-<prompt>bash$</prompt> <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</userinput></screen>
- </informalexample>
- </listitem>
- </itemizedlist>
- <para>La police peut maintenant &ecirc;tre r&eacute;f&eacute;renc&eacute;e par le nom SHOWBOAT.</para>
- <para>Si l'on utilise GhostScript pour piloter les imprimantes du syst&egrave;me,
- il n'y a rien d'autre &agrave; faire. Si, par contre, l'on utilise de vraies
- imprimantes PostScript, il faut alors charger la police sur l'imprimante
- pour pouvoir l'utiliser (&agrave; moins que l'imprimante ne dispose de la police
- &ldquo;showboat&rdquo; en interne ou sur une disquette de polices
- accessible). La derni&egrave;re &eacute;tape consiste &agrave; cr&eacute;er la police chargeable.
- L'outil <filename>pfbtops</filename> est utilis&eacute; pour cr&eacute;er le format
- <filename>.pfa</filename> de la police et le fichier
- <filename>download</filename> est modifi&eacute; pour faire r&eacute;f&eacute;rence &agrave; la
- nouvelle police. Le fichier <filename>download</filename> doit indiquer le
- nom interne de la police. Ce nom peut &ecirc;tre facilement connu &agrave; l'aide du
- fichier de police groff, comme le montre l'exemple:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>Cr&eacute;er le fichier de police
- <filename>.pfa</filename></emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>fgrep internalname SHOWBOAT</userinput>
-internalname Showboat</screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Dire &agrave; groff qu'il faut charger la
- police</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>ex download</userinput>
-<userinput>:$a</userinput>
-<userinput>Showboat showboat.pfa</userinput>
-<userinput>.</userinput>
-<userinput>:wq</userinput></screen>
- </informalexample>
- </listitem>
- </itemizedlist>
- <para>Pour tester la police:</para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput>
-<prompt>bash$</prompt> <userinput>cat &gt;exemple.t &lt;&lt;EOF</userinput>
-<userinput>.sp 5</userinput>
-<userinput>.ps 15</userinput>
-<userinput>C'est un exemple de police Showboat:</userinput>
-<userinput>.br</userinput>
-<userinput>.ps 48</userinput>
-<userinput>.vs (\n(.s+2)p</userinput>
-<userinput>.sp</userinput>
-<userinput>.ft SHOWBOAT</userinput>
-<userinput>ABCDEFGHI</userinput>
-<userinput>.br</userinput>
-<userinput>JKLMNOPQR</userinput>
-<userinput>.br</userinput>
-<userinput>STUVWXYZ</userinput>
-<userinput>.sp</userinput>
-<userinput>.ps 16</userinput>
-<userinput>.vs (\n(.s+2)p</userinput>
-<userinput>.fp 5 SHOWBOAT</userinput>
-<userinput>.ft 5</userinput>
-<userinput>Utilis&eacute;e comme premi&egrave;re lettre d'un paragraphe. Cela ressemblera &agrave;:</userinput>
-<userinput>.sp50p</userinput>
-<userinput>\s(48\f5V\s0\fRoici la premi&egrave;re phrase d'un paragraphe qui utilise</userinput>
-<userinput>la police showboat pour sa premi&egrave;re lettre. Il faut augmenter</userinput>
-<userinput>l'espacement vertical pour laisser de la place pour la premi&egrave;re</userinput>
-<userinput>lettre.</userinput>
-<userinput>EOF</userinput>
-<prompt>bash$</prompt> <userinput>groff -Tps exemple.t &gt;exemple.ps</userinput></screen>
- </informalexample>
- <itemizedlist>
- <listitem>
- <para><emphasis>Pour utiliser GhostScript/GhostView</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>ghostview exemple.ps</userinput></screen>
- </informalexample>
- </listitem>
- <listitem>
- <para><emphasis>Pour l'imprimer</emphasis></para>
- <informalexample>
-<screen><prompt>bash$</prompt> <userinput>lpr -Ppostscript exemple.ps</userinput></screen>
- </informalexample>
- </listitem>
- </itemizedlist>
- <para>R&eacute;f&eacute;rences:
- <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>,
- <citerefentry><refentrytitle>groff_font</refentrytitle>
- <manvolnum>5</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>groff_char</refentrytitle>
- <manvolnum>5</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>pfbtops</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>.</para>
- </sect1>
- <sect1>
- <title>Peut-on utiliser des polices &ldquo;True Type&rdquo;?</title>
- <para>Le format de police &ldquo;True Type&rdquo; est utilis&eacute;e par Windows,
- Windows 95 et le Macintosh. Il est assez r&eacute;pandu et il y a de nombreuses
- polices de ce format disponibles.</para>
- <para>Malheureusement, je connais peu d'applications qui puissent utiliser
- ce format: GhostScript et Povray viennent &agrave; l'esprit. Le support par
- GhostScript est, d'apr&egrave;s la documentation, assez rudimentaire et il y a
- des chances que le r&eacute;sultat soit moins bon qu'avec les polices
- &ldquo;Type 1&rdquo;. Povray version 3 est aussi capable d'utiliser des
- des polices &ldquo;True Type&rdquo;, mais je doute que beaucoup de
- personnes cr&eacute;ent des documents sous forme de pages g&eacute;n&eacute;r&eacute;es par lancer de
- rayon :-).</para>
- <para>Il est difficile d'utiliser une police &ldquo;True Type&rdquo; avec
- groff parce que groff a besoin d'un fichier de description de la police,
- et je ne connais pas d'outil pour d&eacute;terminer les dimensions d'une police
- &ldquo;True Type&rdquo;. De plus, il faudrait charger la police sur les
- imprimantes PostScript avec le format appropri&eacute; et, de nouveau, groff ne
- peut g&eacute;rer de cette fa&ccedil;on les polices &ldquo;True Type&rdquo;.</para>
- <para>Cette situation plut&ocirc;t d&eacute;solante changera peut-&ecirc;tre bient&ocirc;t. Le
- <ulink url="http://www.freetype.org">Projet FreeType</ulink> d&eacute;veloppe
- actuellement un ensemble d'utilitaire FreeType:</para>
- <itemizedlist>
- <listitem>
- <para>Le serveur de polices <filename>xfsft</filename> pour X11 peut
- g&eacute;rer les polices &ldquo;TrueType&rdquo; en plus des polices
- ordinaires. Bien que ce soit encore une version b&eacute;ta, elle a la
- r&eacute;putation d'&ecirc;tre &agrave; peu pr&egrave;s utilisable. Voyez
- <ulink url="http://www.dcs.ed.sc.uk/home/jec/programs/xfsft">la page de
- Juliusz Chroboczek</ulink> pour plus d'informations. Il y a des
- instructions de portage sous FreeBSD sur
- <ulink url="http://math.missouri.edu/~stephen/software">la page
- logicielle de Stephen Montgomery</ulink>.</para>
- </listitem>
- <listitem>
- <para><filename>xfstt</filename> est un autre serveur X11, disponible
- sur <ulink url="ftp://sunsite.unc.edu/pub/Linux/X11/fonts">ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.</para>
- </listitem>
- <listitem>
- <para>Il y a un programme appel&eacute; <filename>ttf2bdf</filename> qui peut
- cr&eacute;er des fichiers BDF utilisables en environnement X &agrave; partir de
- fichiers &ldquo;TrueType&rdquo;. Les binaires pour Linux sont cens&eacute;s
- &ecirc;tre disponibles sur
- <ulink url="ftp://crl.nmsu.edu/CLR/multiling/General/">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.</para>
- </listitem>
- <listitem>
- <para>Pour les personnes qui ont besoin de polices &ldquo;True
- Type&rdquo; asiatiques, il peut valoir la peine de jetter un coup
- d'oeil au serveur de polices <filename>XTT</filename>. Il y a des
- informations sur <filename>XTT</filename> &agrave; l'adresse:
- <ulink url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>.</para>
- </listitem>
- <listitem>
- <para>et d'autres ...</para>
- </listitem>
- </itemizedlist>
- </sect1>
- <sect1>
- <title>O&ugrave; peut-on trouver des polices suppl&eacute;mentaires?</title>
- <para>Il y a de nombreuses polices disponibles sur l'Internet. Elles sont
- soit compl&egrave;tement gratuites ou en &ldquo;partagiciel&rdquo;. Il y a aussi
- de nombreux CD-ROMs peux on&eacute;reux qui contiennent beaucoup de polices.
- Voici quelques sites Internet (au mois d'Ao&ucirc;t 1996):</para>
- <itemizedlist>
- <listitem>
- <para><ulink url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink>
- (auparavant CICA),</para>
- </listitem>
- <listitem>
- <para><ulink url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink>,</para>
- </listitem>
- <listitem>
- <para><ulink url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink>,</para>
- </listitem>
- <listitem>
- <para><ulink url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink>,</para>
- </listitem>
- <listitem>
- <para><ulink url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink>,</para>
- </listitem>
- <listitem>
- <para><ulink url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
- <sect1>
- <title>D'autres questions</title>
- <itemizedlist>
- <listitem>
- <para>Que sont que les fichiers <filename>.pfm</filename>?</para>
- </listitem>
- <listitem>
- <para>Peut-on g&eacute;n&eacute;rer des fichiers <filename>.afm</filename> &agrave; partir de
- fichiers <filename>.pfa</filename> ou
- <filename>.pfb</filename>?</para>
- </listitem>
- <listitem>
- <para>Comment g&eacute;n&eacute;rer des fichiers de correspondance de caract&egrave;res pour
- groff pour les polices PostScript dont les caract&egrave;res ont des noms qui
- ne sont pas standard?</para>
- </listitem>
- <listitem>
- <para>Les p&eacute;riph&eacute;riques <filename>xditview</filename> et
- <devicename>devX??</devicename> peuvent-ils &ecirc;tre configur&eacute;s pour
- acc&eacute;der aux nouvelles polices?</para>
- </listitem>
- <listitem>
- <para>Il serait bien d'avoir des exemples d'utilisation de polices
- &ldquo;True Type&rdquo; avec GhostScript et Povray.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/formatting-media/Makefile b/fr_FR.ISO8859-1/articles/formatting-media/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/formatting-media/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/formatting-media/article.sgml b/fr_FR.ISO8859-1/articles/formatting-media/article.sgml
deleted file mode 100755
index f58946b2fd..0000000000
--- a/fr_FR.ISO8859-1/articles/formatting-media/article.sgml
+++ /dev/null
@@ -1,557 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
- <artheader>
- <title>Formatage des supports pour FreeBSD 2.2-RELEASE</title>
- <subtitle>Un guide</subtitle>
- <authorgroup>
- <author>
- <firstname>Doug</firstname>
- <surname>White</surname>
- </author>
- </authorgroup>
- &artheader.copyright;
- <abstract>
- <para><email>dwhite@resnet.uoregon.edu</email></para>
- <para>Mars 1997</para>
- <para>Ce document d&eacute;crit comment d&eacute;couper, partitionner et formater les
- disques durs et autres supports similaires pour les utiliser avec
- FreeBSD. Les exemples propos&eacute;s ont &eacute;t&eacute; test&eacute;s avec FreeBSD 2.2-GAMMA et
- devraient &ecirc;tre applicables &agrave; d'autres versions.</para>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.haby;
- </abstract>
- </artheader>
- <sect1>
- <title>Introduction et d&eacute;finitions</title>
- <sect2>
- <title>R&eacute;sum&eacute;</title>
- <para>R&eacute;ussir &agrave; ajouter des disques &agrave; un syst&egrave;me existant est la
- marque d'un administrateur syst&egrave;me exp&eacute;riment&eacute;. D&eacute;couper, partitionner
- et ajouter des disques requiert de combiner avec soin commande
- ad&eacute;quate et syntaxe de nommage. Une frappe malheureuse et un disque
- entier peut dispara&icirc;tre en quelques secondes. Ce document est une
- tentative pour simplifier le processus et &eacute;viter les accidents.
- Heureusement, les outils existants (tout particuli&egrave;rement
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>)
- ont notablement am&eacute;lior&eacute; ce processus dans les derni&egrave;res versions de
- FreeBSD.</para>
- <para>Il y a deux possibilit&eacute;s de formatage d'un disque:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>mode compatible</emphasis>: Configurer un disque
- pour qu'il ait une table des
- tranches&nbsp;-&nbsp;&ldquo;<foreignphrase>slices</foreignphrase>&rdquo;&nbsp;-&nbsp;utilisable
- avec d'autres syst&egrave;mes d'exploitation.</para>
- </listitem>
- <listitem>
- <para><emphasis>mode dangeureusement d&eacute;di&eacute;</emphasis>: Formater un
- disque sans table des
- tranches&nbsp;-&nbsp;&ldquo;<foreignphrase>slices</foreignphrase>&rdquo;.
- Cela facilite l'ajout de disques, mais des syst&egrave;mes d'exploitation
- autres que FreeBSD risquent de ne pas reconna&icirc;tre de tels
- disques.</para>
- </listitem>
- </itemizedlist>
- <para>Dans la plupart des cas, le mode d&eacute;di&eacute; est le plus facile &agrave; mettre
- en oeuvre et &agrave; utiliser sur des syst&egrave;mes existants, auquel cas le
- nouveau disque est en g&eacute;n&eacute;ral enti&egrave;rement d&eacute;di&eacute; &agrave; FreeBSD. Cependant,
- le mode compatible garantit le maximum d'interop&eacute;rabilit&eacute; avec des
- installations ult&eacute;rieures, au prix d'une plus grande complexit&eacute;.</para>
- <para>En plus du choix du mode, il existe deux m&eacute;thodes pour d&eacute;couper le
- disque. La premi&egrave;re est d'utiliser l'outil
- <citerefentry><refentrytitle>/stand/sysinstall</refentrytitle></citerefentry>
- d'installation du syst&egrave;me. A partir de la version 2.1.7-RELEASE de
- FreeBSD,
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- contient du code qui facilite la
- configuration de disques en cours d'op&eacute;ration normale du syst&egrave;me,
- donnant essentiellement acc&egrave;s aux &eacute;diteurs de labels et de partitions,
- et comportant un fonctionnalit&eacute; d'&eacute;criture qui ne met &agrave; jour que le
- disque s&eacute;lectionn&eacute; sans toucher aux autres disques. La seconde m&eacute;thode
- consiste &agrave; employer les utilitaires, &agrave; la main, depuis la ligne de
- commande, en session sous le compte super-utilisateur
- <username>root</username>. Pour le mode dangeureusement d&eacute;di&eacute;, il n'y
- a que trois ou quatre commandes concern&eacute;es, alors que
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- demande quelques manipulations.</para>
- </sect2>
- <sect2>
- <title>D&eacute;finitions</title>
- <para>La gestion de disques Unix a, au fil des si&egrave;cles, invent&eacute; de
- nombreuses nouvelles d&eacute;finitions pour d'anciens mots. Le glossaire
- ci-dessous donne les d&eacute;finitions des expressions utilis&eacute;es dans
- ce document et (esp&eacute;rons-le) pour ce qui concerne FreeBSD en
- g&eacute;n&eacute;ral.</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>mode compatible</emphasis>: Configurer un disque
- pour qu'il ait une table des
- tranches&nbsp;-&nbsp;&ldquo;<foreignphrase>slices</foreignphrase>&rdquo;&nbsp;-&nbsp;utilisable
- avec d'autres syst&egrave;mes d'exploitation. C'est le contraire du mode
- dangeureusement d&eacute;di&eacute;.</para>
- </listitem>
- <listitem>
- <para><emphasis>mode dangeureusement d&eacute;di&eacute;</emphasis>: Formater un
- disque sans table des
- tranches&nbsp;-&nbsp;&ldquo;<foreignphrase>slices</foreignphrase>&rdquo;.
- Cela facilite l'ajout de disques, mais des syst&egrave;mes d'exploitation
- autres que FreeBSD risquent de ne pas reconna&icirc;tre de tels
- disques. C'est le contraire du mode compatible.</para>
- </listitem>
- <listitem>
- <para>disque: un disque circulaire recouvert d'un mat&eacute;riau magn&eacute;tique
- ou &eacute;quivalent, qui tourne, m&ucirc; par un moteur, devant une t&ecirc;te de
- lecture. Les donn&eacute;es sont enregistr&eacute;es sur le disque en modifiant
- la magn&eacute;tisation du support, et peuvent &ecirc;tre ensuite relues. Les
- disques durs, CD-ROMs, disques magn&eacute;to-optiques et supports
- amovibles Zip ou Jaz, sont des exemples de disques.</para>
- </listitem>
- <listitem>
- <para>tranche&nbsp;-&nbsp;&ldquo;<foreignphrase>slice</foreignphrase>&rdquo;:
- une subdivision du disque. Il peut y avoir jusqu'&agrave; quatre tranches
- sur un disque d'apr&egrave;s le standard PC. Les tranches sont constitu&eacute;es
- de secteurs adjacents. Les tranches sont d&eacute;crites par une
- &ldquo;table des tranches&rdquo; utilis&eacute;e par le BIOS du syst&egrave;me
- pour localiser les partitions d&eacute;marrables. La table des tranches
- est habituellement appel&eacute;e &ldquo;table des partitions&rdquo; en
- langage DOS. Les tranches sont g&eacute;r&eacute;es par l'utilitaire
- <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>.</para>
- </listitem>
- <listitem>
- <para>partition: une subdivision de la
- tranche&nbsp;-&nbsp;&ldquo;<foreignphrase>slice</foreignphrase>&rdquo;.
- Habituellement utilis&eacute;e pour d&eacute;signer les divisions de la tranche
- FreeBSD du disque. Chaque syst&egrave;me de fichiers et espace de
- pagination r&eacute;side sur une partition. Les partitions sont g&eacute;r&eacute;es par
- l'utilitaire
- <citerefentry><refentrytitle>disklabel</refentrytitle></citerefentry>.</para>
- </listitem>
- <listitem>
- <para>secteur: la plus petite subdivision d'un disque. Un secteur
- contient habituellement 512 octets de donn&eacute;es.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2>
- <title>Avertissements et pi&egrave;ges &agrave; &eacute;viter</title>
- <para>Installer des disques n'est pas quelque chose &agrave; prendre &agrave; la
- l&eacute;g&egrave;re. Il est tout &agrave; fait possible de d&eacute;truire le contenu d'autres
- disques de votre syst&egrave;me si vous ne prenez pas les pr&eacute;cautions
- n&eacute;cessaires.</para>
- <para><emphasis>V&eacute;rifiez avec soin ce que vous faites</emphasis>. Il est
- tr&egrave;s facile d'effacer le mauvais disque quand vous utilisez ces
- commandes. En cas de doute, consultez les messages de d&eacute;marrage du
- noyau pour conna&icirc;tre le nom exact du p&eacute;riph&eacute;rique.</para>
- <para>Inutile de pr&eacute;ciser que nous ne serions en rien responsable des
- d&eacute;gats que vous causeriez &agrave; vos donn&eacute;es ou &agrave; votre mat&eacute;riel. Vous
- travaillez &agrave; vos risques et p&eacute;rils.</para>
- </sect2>
- <sect2>
- <title>Zip, Jaz et autres disques amovibles</title>
- <para>Les disques amovibles peuvent &ecirc;tre format&eacute;s de la m&ecirc;me fa&ccedil;on que les
- disques durs ordinaires. Il est indispensable que le lecteur soit
- connect&eacute; et qu'il y ait un disque dedans au d&eacute;marrage du syst&egrave;me, pour
- que le noyau puisse d&eacute;terminer la g&eacute;om&eacute;trie du disque. Consultez les
- r&eacute;sultats de
- <citerefentry><refentrytitle>dmesg</refentrytitle></citerefentry>
- et v&eacute;rifiez que le disque et sa taille y figurent. Si le noyau &eacute;met le
- message:</para>
- <programlisting>
-Can't get the size
- </programlisting>
- <para>c'est que le disque n'&eacute;tait pas dans le lecteur. Dans ce cas, vous
- devrez red&eacute;marrer la machine avant de formater des disques.</para>
- </sect2>
- </sect1>
- <sect1>
- <title>Formater des disques en mode d&eacute;di&eacute;</title>
- <sect2>
- <title>Introduction</title>
- <para>Cette section explique en d&eacute;tail comment configurer des disques
- enti&egrave;rement d&eacute;di&eacute;s &agrave; FreeBSD. N'oubliez pas que des disques en mode
- d&eacute;di&eacute; ne peuvent pas &ecirc;tre utilis&eacute;s par l'architecture PC pour d&eacute;marrer
- le syst&egrave;me.</para>
- </sect2>
- <sect2>
- <title>Formater des disques en mode d&eacute;di&eacute; avec Sysinstall</title>
- <para><filename>/stand/sysinstall</filename>, l'utilitaire
- d'installation du syst&egrave;me, a &eacute;t&eacute; am&eacute;lior&eacute; dans les versions r&eacute;centes
- pour rendre le processus de d&eacute;coupage propre des disques moins
- p&eacute;nible. Les &eacute;diteurs
- <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry> et
- <citerefentry><refentrytitle>disklabel</refentrytitle></citerefentry>
- inclus dans
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- sont des outils interactifs qui
- dissipent une bonne partie de la confusion li&eacute;e aux op&eacute;rations de
- d&eacute;coupage de disques en &ldquo;tranches&rdquo;. Avec FreeBSD 2.1.7 et
- ult&eacute;rieur, c'est probablement la m&eacute;thode la plus simple pour le
- faire.</para>
- <orderedlist>
- <listitem>
- <para>Lancez
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- en tant que super-utilisateur <username>root</username> en
- tapant:</para>
- <informalexample>
-<screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen>
- </informalexample>
- <para>sur la ligne de commande.</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Index</option>.</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Partition</option>.</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez le disque &agrave; configurer avec les touches Fl&egrave;ches et
- la barre d'espacement.</para>
- </listitem>
- <listitem>
- <para>Si vous utilisez tout le disque pour FreeBSD, s&eacute;lectionnez
- <option>A</option>.</para>
- </listitem>
- <listitem>
- <para>A la question:</para>
- <programlisting>
-Do you want to do this with a true partition entry so as to remain
-cooperative with any future possible operating systems on the
-drive(s)?
-
-[Voulez-vous cr&eacute;er une vraie entr&eacute;e de partition pour rester
-compatible avec d'&eacute;ventuels futurs syst&egrave;mes d'exploitation
-sur le(s) disque(s)?]
- </programlisting>
- <para>r&eacute;pondez <option>No</option> (Non).</para>
- </listitem>
- <listitem>
- <para>Quand on vous demande si vous voulez continuer, r&eacute;pondez
- <option>Yes</option> (Oui).</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Write</option> (Ecrire).</para>
- </listitem>
- <listitem>
- <para>A l'avertissement &agrave; propos de l'&eacute;criture sur des syst&egrave;mes
- d&eacute;j&agrave; install&eacute;s, r&eacute;pondez <option>Yes</option> (Oui).</para>
- </listitem>
- <listitem>
- <para><option>Quit</option>tez l'&eacute;diteur
- <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>
- et revenez au menu d'<option>Index</option> avec
- <keycap>Echap</keycap>.</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Label</option> dans le menu
- d'<option>Index</option>.</para>
- </listitem>
- <listitem>
- <para>Libellez le disque comme vous le souhaitez. Si vous ne voulez
- qu'une seule partition, tapez <keycap>C</keycap> pour cr&eacute;er une
- partition, validez la taille propos&eacute;e par d&eacute;faut, prenez comme
- type de partition <option>Filesystem</option> (syst&egrave;me de fichiers)
- et indiquez un point de montage (qui dans ce cas ne sert &agrave;
- rien).</para>
- </listitem>
- <listitem>
- <para>Tapez <keycap>W</keycap> une fois que vous avez termin&eacute;. Le
- syst&egrave;me de fichiers sera initialis&eacute; avec
- <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>
- sans que vous n'ayez autre chose &agrave; faire, &agrave; moins que vous ne
- fassiez un autre choix (pour les nouvelles partitions, il faut
- initialiser le syst&egrave;me de fichiers!). Vous aurez un message
- d'erreur:</para>
- <programlisting>
-Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory
- </programlisting>
- <para>Ne vous en occupez pas.</para>
- </listitem>
- <listitem>
- <para>Quittez le programme, en utilisant &agrave; plusieurs reprises la
- touche <keycap>Echap</keycap>.</para>
- </listitem>
- </orderedlist>
- </sect2>
- <sect2>
- <title>Formater des disques en mode d&eacute;di&eacute; depuis la ligne de
- commande</title>
- <para>Ex&eacute;cutez les commandes suivantes, en substituant &agrave;
- <devicename>wd2</devicename> le nom de votre disque. Les lignes
- qui commencent par <literal>#</literal> sont des commentaires.</para>
- <informalexample>
-<screen><userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput>
-<userinput>disklabel /dev/rwd2 | disklabel -B -R -r wd2 /dev/stdin</userinput>
-# Nous ne voulons qu'une partition, utiliser la tranche 'c' devrait aller:
-<userinput>newfs /dev/rwd2c</userinput></screen>
- </informalexample>
- <para>Si vous avez besoin de modifier le label du disque pour cr&eacute;er
- plusieurs partitions (pour la pagination par exemple), utilisez la
- s&eacute;quence suivante:</para>
- <informalexample>
-<screen><userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput>
-<userinput>disklabel /dev/r$d > /tmp/label</userinput>
-# Modifiez le label du disque pour ajouter des partitions:
-<userinput>vi /tmp/label</userinput>
-<userinput>disklabel -B -R -r wd2 /tmp/label</userinput>
-# Cr&eacute;ez les syst&egrave;mes de fichiers sur les partitions avec newfs selon les besoins</screen>
- </informalexample>
- <para>Votre disque est maintenant pr&ecirc;t &agrave; &ecirc;tre utilis&eacute;.</para>
- </sect2>
- </sect1>
- <sect1>
- <title>Formater des disques en mode compatible</title>
- <sect2>
- <title>Introduction</title>
- <para>Travailler depuis la ligne de commande est la mani&egrave;re la plus facile
- de formater des disques d&eacute;di&eacute;s, et la pire pour formater des disques
- compatibles. L'utilitaire en ligne de commande
- <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>
- demande une bonne connaissance des math&eacute;matiques et une compr&eacute;hension en
- profondeur de la structure de la table des &ldquo;tranches&rdquo;, qui
- d&eacute;passent ce dont la plupart des gens souhaitent se pr&eacute;occuper. Utilisez
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- comme d&eacute;crit dans ce qui suit.</para>
- </sect2>
- <sect2>
- <title>Formater des disques en mode compatible avec Sysinstall</title>
- <orderedlist>
- <listitem>
- <para>Lancez
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- en tant que super-utilisateur <username>root</username> en
- tapant:</para>
- <informalexample>
-<screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen>
- </informalexample>
- <para>sur la ligne de commande.</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Index</option>.</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Partition</option>.</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez le disque &agrave; configurer avec les touches Fl&egrave;ches et
- la barre d'espacement.</para>
- </listitem>
- <listitem>
- <para>Si vous utilisez tout le disque pour FreeBSD, s&eacute;lectionnez
- <option>A</option>.</para>
- </listitem>
- <listitem>
- <para>A la question:</para>
- <programlisting>
-Do you want to do this with a true partition entry so as to remain
-cooperative with any future possible operating systems on the
-drive(s)?
-
-[Voulez-vous cr&eacute;er une vraie entr&eacute;e de partition pour rester
-compatible avec d'&eacute;ventuels futurs syst&egrave;mes d'exploitation
-sur le(s) disque(s)?]
- </programlisting>
- <para>r&eacute;pondez <option>Yes</option> (Oui).</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Write</option> (Ecrire).</para>
- </listitem>
- <listitem>
- <para><option>Quit</option>tez l'&eacute;diteur
- <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>.</para>
- </listitem>
- <listitem>
- <para>A la question &agrave; propos du gestionnaire de d&eacute;marrage, r&eacute;pondez
- encore <option>None</option> (aucun).</para>
- </listitem>
- <listitem>
- <para>S&eacute;lectionnez <option>Label</option> dans le menu
- d'<option>Index</option>.</para>
- </listitem>
- <listitem>
- <para>Libellez le disque comme vous le souhaitez. Si vous ne voulez
- qu'une seule partition, validez la taille propos&eacute;e par
- d&eacute;faut, prenez comme type de partition <option>Filesystem</option>
- (syst&egrave;me de fichiers) et indiquez un point de montage (qui dans ce
- cas ne sert &agrave; rien).</para>
- </listitem>
- <listitem>
- <para>Le syst&egrave;me de fichiers sera initialis&eacute; avec
- <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>
- sans que vous n'ayez autre chose &agrave; faire, &agrave; moins que vous ne
- fassiez un autre choix (pour les nouvelles partitions, il faut
- initialiser le syst&egrave;me de fichiers!). Vous aurez un message
- d'erreur:</para>
- <programlisting>
-Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory
- </programlisting>
- <para>Ne vous en occupez pas.</para>
- </listitem>
- <listitem>
- <para>Quittez le programme, en utilisant &agrave; plusieurs reprises la
- touche <keycap>Echap</keycap>.</para>
- </listitem>
- </orderedlist>
- <para>Votre nouveau disque est pr&ecirc;t &agrave; &ecirc;tre utilis&eacute;.</para>
- </sect2>
- </sect1>
- <sect1>
- <title>Autres op&eacute;rations sur les disques</title>
- <sect2>
- <title>Ajout d'espace de pagination</title>
- <para>Au fur et &agrave; mesure que le syst&egrave;me grossit, ses besoins d'espace de
- pagination peuvent aussi augmenter. Alors qu'il est tr&egrave;s difficile
- d'ajouter de l'espace de pagination &agrave; des disques en service, un nouveau
- disque peut &ecirc;tre partitionn&eacute; pour mettre en oeuvre de l'espace de
- pagination suppl&eacute;mentaire.</para>
- <para>Pour ajouter de l'espace de pagination au moment de l'installation
- d'un nouveau disque:</para>
- <orderedlist>
- <listitem>
- <para>Au moment de partitionner le disque, &eacute;ditez son label et
- allouer la quantit&eacute; d'espace de pagination voulue en ajoutant une
- partition 'b' et en affectant le reste &agrave; une autre partition,
- telle que 'a' ou 'e'. La taille est &agrave; donner en blocs de 512
- octets.</para>
- </listitem>
- <listitem>
- <para>Au moment de cr&eacute;er les syst&egrave;mes de fichiers avec
- <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>,
- ne formatez pas la partition 'c'. Formatez &agrave; la place la partition
- qui n'est pas r&eacute;serv&eacute;e &agrave; la pagination.</para>
- </listitem>
- <listitem>
- <para>Ajoutez la ligne qui suit &agrave;
- <filename>/etc/fstab</filename>:</para>
- <programlisting>
-/dev/wd0b none swap sw 0 0
- </programlisting>
- <para>En remplacant <filename>/dev/wd0b</filename> par le nom du
- nouvel espace de pagination.</para>
- </listitem>
- <listitem>
- <para>Pour que l'espace de pagination soit imm&eacute;diatement utilisable,
- utilisez la commande
- <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>:</para>
- <informalexample>
-<screen>&prompt.user; <userinput>swapon /dev/sd0b</userinput>
-swapon: added /dev/sd0b as swap space</screen>
- </informalexample>
- </listitem>
- </orderedlist>
- </sect2>
- <sect2>
- <title>Copier le contenu d'un disque sur un autre</title>
- <para>Propos&eacute; par: Renauld Waldura
- <email>renaud@softway.com</email>.</para>
- <para>Pour d&eacute;placer le contenu d'un disque sur un nouveau, faites:</para>
- <informalexample>
-<screen>&prompt.root; <userinput>mount /dev/wd2 /mnt</userinput>
-&prompt.root; <userinput>pax -r -w -p e /usr/home /mnt</userinput>
-&prompt.root; <userinput>umount /mnt</userinput>
-&prompt.root; <userinput>rm -rf /usr/home/*</userinput>
-&prompt.root; <userinput>mount /dev/wd2 /usr/home</userinput></screen>
- </informalexample>
- </sect2>
- <sect2>
- <title>Cr&eacute;er des disques &agrave; &eacute;critures r&eacute;parties avec
- <devicename>ccd</devicename></title>
- <para>Commandes transmises par: Stan Brown
- <email>stanb@awod.com</email>.</para>
- <para>Le pilote de disques
- concat&eacute;n&eacute;s&nbsp;-&nbsp;&ldquo;<foreignphrase>Concatenated Disk
- Driver</foreignphrase>&rdquo;, ou CCD&nbsp;-&nbsp;vous permet
- d'utiliser plusieurs disques comme s'il s'agissait d'un seul. Les
- &eacute;critures r&eacute;parties peuvent augmenter les performances disque en
- distribuant les lectures et les &eacute;critures sur plusieurs disques.
- Voyez les pages de manuel de
- <citerefentry><refentrytitle>ccd</refentrytitle>
- <manvolnum>4</manvolnum></citerefentry> et
- <citerefentry><refentrytitle>ccdconfig</refentrytitle>
- <manvolnum>4</manvolnum></citerefentry> ou la
- <ulink url="http://stampede.cs.berkeley.edu/ccd/">page de
- CCD</ulink>, pour plus d'informations.</para>
- <para>Pour cr&eacute;er un nouveau CCD, ex&eacute;cutez les commandes ci-dessous.
- Elles d&eacute;crivent comment concat&eacute;ner trois disques; ajoutez ou
- supprimez des p&eacute;riph&eacute;riques selon vos besoins. Rappelez-vous
- que les disques sur lequels se fera la r&eacute;partition doivent &ecirc;tre
- <emphasis>identiques</emphasis>.</para>
- <para>Avant d'ex&eacute;cuter ces commandes, v&eacute;rifiez que vous avez bien
- ajout&eacute; la ligne:</para>
- <programlisting>
-pseudo-device ccd 4
- </programlisting>
- <para>&agrave; la configuration de votre noyau.</para>
- <informalexample>
-<screen>&prompt.root; <userinput>cd /dev ; sh MAKDEV ccd0</userinput></screen>
- </informalexample>
- <informalexample>
-<screen>&prompt.root; <userinput>disklabel -r -w sd0 auto</userinput>
-&prompt.root; <userinput>disklabel -r -w sd1 auto</userinput>
-&prompt.root; <userinput>disklabel -r -w sd2 auto</userinput></screen>
- </informalexample>
- <informalexample>
-<screen>&prompt.root; <userinput>disklabel -e sd0c</userinput> # changer le type en 4.2BSD
-&prompt.root; <userinput>disklabel -e sd1c</userinput> # changer le type en 4.2BSD
-&prompt.root; <userinput>disklabel -e sd2c</userinput> # changer le type en 4.2BSD</screen>
- </informalexample>
- <informalexample>
-<screen>&prompt.root; <userinput>ccdconfig ccd0 32 0 /dev/sd0c /dev/sd1c /dev/sd2c</userinput></screen>
- </informalexample>
- <informalexample>
-<screen>&prompt.root; <userinput>newfs /dev/rccd0c</userinput></screen>
- </informalexample>
- <para>Vous pouvez maintenant monter et utiliser votre CCD en le
- r&eacute;f&eacute;ren&ccedil;ant comme p&eacute;riph&eacute;rique
- <filename>/dev/ccd0c</filename>.</para>
- </sect2>
- </sect1>
- <sect1>
- <title>Remerciements</title>
- <para>L'auteur aimerait remercier les personnes suivantes pour leur
- contribution &agrave; ce projet:</para>
- <itemizedlist>
- <listitem>
- <para>Darryl Okahata <email>darrylo@hpnmhjw.sr.hp.com</email>,
- pour sa documentation simple sur la configuration de
- disques en mode d&eacute;di&eacute;, que j'ai utilis&eacute;e &agrave; plusieurs reprises
- sur la &a.questions;.</para>
- </listitem>
- <listitem>
- <para>&a.jkh; pour avoir rendu
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- utile &agrave; ce type de t&acirc;ches.</para>
- </listitem>
- <listitem>
- <para>John Fieber <email>jfieber@indiana.edu</email> pour avoir
- mis au point la documentation et les exemples d'utilisation de
- la <foreignphrase>DTD Docbook</foreignphrase> utilis&eacute;e
- pour mettre en forme ce document.</para>
- </listitem>
- <listitem>
- <para>&a.grog; pour avoir contr&ocirc;l&eacute; mon travail et mentionn&eacute; les
- inexactitudes, ainsi que pour son concours sur divers points.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile b/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml b/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml
deleted file mode 100755
index 149e58a4da..0000000000
--- a/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml
+++ /dev/null
@@ -1,277 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
- <artheader>
- <title>Alias IP avec FreeBSD 2.x</title>
- <authorgroup>
- <author>
- <firstname>Ben</firstname>
- <surname>Black</surname>
- </author>
- </authorgroup>
- &artheader.copyright;
- <abstract>
- <para><email>black@cypher.net</email></para>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.haby;
- </abstract>
- </artheader>
- <sect1>
- <title>Introduction</title>
- <para>D&eacute;finir des <emphasis>alias IP</emphasis> consiste &agrave; affecter plus
- d'une adresse IP &agrave; une interface r&eacute;seau. Les alias IP sont typiquement
- employ&eacute;s pour h&eacute;berger des serveurs Web et FTP virtuels et pour
- r&eacute;organiser ses serveurs sans avoir &agrave; mettre &agrave; jour d'autres machines
- (ce dernier usage est particuli&egrave;rement utile avec les serveurs de noms
- de domaines). Voyez un alias IP comme un petit enfant perch&eacute; sur le
- dos de son interface parente (qui est l'adresse primaire de l'interface
- physique).</para>
- <para>Les alias IP <emphasis>n'ont rien &agrave; voir</emphasis> avec la notion
- de <emphasis>multi-h&eacute;bergement</emphasis>&nbsp;-&nbsp;&ldquo;<foreignphrase>multi-homing</foreignphrase>&rdquo;
- (lorsqu'une machine dispose de plus d'une interface r&eacute;seau active), sauf
- au cas o&ugrave; une machine sur plusieurs r&eacute;seaux fournit des services tels que
- ceux list&eacute;s plus haut. La confusion entre les deux notions est une erreur
- propag&eacute;e du monde Macintosh et vous seriez avis&eacute; de ne pas les suivre sur
- ce point.</para>
- <para>Il y a deux commandes essentielles &agrave; la mise en place d'alias IP sur
- FreeBSD (et sur tous les autres syst&egrave;mes Unix que j'aie jamais utilis&eacute;s),
- ce sont <command>ifconfig</command> et <command>route</command>.
- L'utilisation correcte de ces commandes est d&eacute;crite ci-dessous. Pour
- conna&icirc;tre toutes les subtilit&eacute;s de leur emploi, reportez-vous aux pages de
- manuel correspondantes. Il y a deux autres commandes utiles pour v&eacute;rifier
- que tout fonctionne comme il se doit et pour mettre les choses au point
- si ce n'est pas le cas. <command>netstat</command> vous permet de
- consulter la table de routage du noyau (entre autres choses utiles), et
- ping est un appr&eacute;ciable petit outil pour tester l'acc&egrave;s &agrave; votre nouvel
- alias (comme &agrave; toute autre adresse IP).</para>
- <important>
- <para>Vous <emphasis>devez</emphasis> &ecirc;tre en session sous le compte
- super-utilisateur <username>root</username> pour pouvoir ex&eacute;cuter la
- plupart des commandes d&eacute;crites dans ce qui suit.</para>
- </important>
- </sect1>
- <sect1>
- <title>Utiliser <command>ifconfig</command></title>
- <para><citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry>
- sert &agrave; configuer les diff&eacute;rentes caract&eacute;ristiques d'une interface r&eacute;seau
- (adresse, protocole, masque de r&eacute;seau, etc.).
- <citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> nous
- servira ici &agrave; ajouter (et parfois &agrave; supprimer) les adresses des alias des
- interfaces.</para>
- <para>Dans l'exemple ci-dessous, nous supposerons que notre machine n'a
- qu'une seule interface Ethernet 3Com 3C509 (<devicename>ep0</devicename>)
- d'adresse <hostid role="ipaddr">192.168.57.82</hostid> avec comme masque
- de sous-r&eacute;seau <hostid role="netmask">255.255.255.0</hostid>, en plus
- de l'interface &ldquo;en boucle&rdquo; standard
- <hostid role="ipaddr">127.0.0.1</hostid>. Vous devrez bien s&ucirc;r remplacer
- ces valeurs par l'adresse et le masque de sous-r&eacute;seau de votre(vos)
- interface(s). L'adresse et le masque de sous-r&eacute;seau de l'interface
- &ldquo;en boucle&rdquo; sont les m&ecirc;mes sur toutes les machines.</para>
- <para>Pour ajouter un alias &agrave; <devicename>ep0</devicename>, nous passons
- simplement une commande du style:</para>
- <informalexample>
-<screen>&prompt.root; <userinput>ifconfig ep0 inet 192.168.57.10 netmask 255.255.255.255 alias</userinput></screen>
- </informalexample>
- <para>Ce qui dit &agrave; FreeBSD que nous d&eacute;finissons une adresse IP
- (<literal>inet</literal>) pour la carte 3Com
- (<devicename>ep0</devicename>) avec comme adresse
- <hostid role="ipaddr">192.168.57.10</hostid>, comme masque de
- sous-r&eacute;seau (<literal>netmask</literal>)
- <hostid role="netmask">255.255.255.255</hostid> (i.e., tous
- les bits &agrave; 1) pour &eacute;viter que le syst&egrave;me d'exploitation ne proteste qu'il
- y a d&eacute;j&agrave; une adresse affect&eacute;e &agrave; cette interface, et que c'est un alias
- pour cette interface (<literal>alias</literal>).</para>
- <para>Vous pouvez aussi omettre le masque de sous-r&eacute;seau (ou lui donner une
- autre valeur). Jusqu'&agrave; FreeBSD 2.1.0 compris, il y a n&eacute;anmoins un bogue
- qui fait que les commandes <command>ifconfig alias</command> &eacute;chouent &agrave;
- la premi&egrave;re tentative, mais r&eacute;ussissent &agrave; la seconde, si vous n'indiquez
- pas <hostid role="netmask">255.255.255.255</hostid> comme masque de
- sous-r&eacute;seau. Si vous ne donnez pas ce masque de sous-r&eacute;seau de
- <hostid role="netmask">255.255.255.255</hostid>, vous devrez aussi ajouter
- une route manuellement, comme d&eacute;crit ci-dessous.</para>
- <para>Pour supprimer l'alias, nous ex&eacute;cutons une commande tr&egrave;s
- similaire:</para>
- <informalexample>
-<screen>&prompt.root; <userinput>ifconfig ep0 inet 192.168.57.10 -alias</userinput></screen>
- </informalexample>
- <para>Il n'y a pas besoin de param&egrave;tres suppl&eacute;mentaires, tels que le masque
- de sous-r&eacute;seau, parce que l'alias est enti&egrave;rement d&eacute;fini par l'adresse IP,
- de sorte que FreeBSD peut supprimer toutes les ressources associ&eacute;es en se
- basant sur cette adresse.</para>
- </sect1>
- <sect1>
- <title>Utiliser <command>route</command></title>
- <para><citerefentry><refentrytitle>route</refentrytitle></citerefentry> sert
- &agrave; modifier &agrave; la main la table de routage du noyau. Pour nos besoins, une
- fois que nous avons donn&eacute; &agrave; FreeBSD l'alias pour l'interface, nous devons
- d&eacute;finir une route IP vers cet alias. Si vous avez pr&eacute;cis&eacute; le masque de
- sous-r&eacute;seau de <hostid role="netmask">255.255.255.255</hostid> avec la
- commande pr&eacute;c&eacute;dente, vous pouvez vous dispenser de cette &eacute;tape.</para>
- <para>Pour ajouter une route vers notre nouvelle interface, nous
- ex&eacute;cutons:</para>
- <informalexample>
-<screen>&prompt.root; <userinput>route add -host 192.168.57.10 127.0.0.1 0</userinput></screen>
- </informalexample>
- <para>Cela dit &agrave; FreeBSD que pour arriver &agrave; la machine
- <hostid role="ipaddr">192.168.57.10</hostid>, les paquets doivent &ecirc;tre
- envoy&eacute;s sur l'interface &ldquo;en boucle&rdquo;
- (<hostid role="ipaddr">127.0.0.1</hostid> aussi appel&eacute;e
- <hostid role="hostname">localhost</hostid> et que la distance (d&eacute;compte
- de noeuds interm&eacute;diaires) est de <literal>0</literal>, ce qui signifie
- que c'est la machine locale.</para>
- <para>Pour supprimer cette route, nous ex&eacute;cutons:</para>
- <informalexample>
-<screen>&prompt.root; <userinput>route delete -host 192.168.57.10</userinput></screen>
- </informalexample>
- <para>De nouveau, comme la route est enti&egrave;rement d&eacute;finie par les param&egrave;tres
- indiqu&eacute;s, nous pouvons laisser de c&ocirc;t&eacute; les autres donn&eacute;es telles que
- le masque de sous-r&eacute;seau et la distance. Pour des informations compl&egrave;tes
- sur la commande
- <citerefentry><refentrytitle>route</refentrytitle></citerefentry>,
- voyez les pages de manuel.</para>
- </sect1>
- <sect1>
- <title>Tester notre travail</title>
- <para>Maintenant que nous avons (esp&eacute;rons-le) un alias d&eacute;fini et accessible,
- nous devons v&eacute;rifier qu'il fonctionne correctement. Nous examinerons
- d'abord la table de routage du noyau, pour v&eacute;rifier que la route vers
- l'alias est bien pr&eacute;sente, puis nous utiliserons
- <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> pour
- nous assurer que des paquets peuvent l'atteindre.</para>
- <para>Pour voir la table de routage du noyau, sous forme num&eacute;rique,
- tapons:</para>
- <informalexample>
-<screen>&prompt.user; <userinput>netstat -nr</userinput></screen>
- </informalexample>
- <para>Dans notre exemple, voici &agrave; quoi ressemblerait le r&eacute;sultat:</para>
- <programlisting>
-Routing tables
-
-Internet:
-Destination Gateway Flags Refs Use Netif Expire
-default 192.168.57.1 UGSc 4 964 ep0
-127.0.0.1 127.0.0.1 UH 1 39 lo0
-192.168.57 link#2 UC 0 0
-192.168.57.10/32 link#2 UC 0 0
-192.168.57.82 127.0.0.1 UGHS 0 0 lo0
-224/4 link#2 UCS 0 0
- </programlisting>
- <para>Nous y voyons la route par d&eacute;faut, la route vers l'interface
- &ldquo;en boucle&rdquo;, la route vers notre r&eacute;seau local et une curieuse
- route vers notre alias. Le <literal>/32</literal> qui suit l'adresse de
- l'alias donne la longueur du masque de sous-r&eacute;seau (le nombre de 1, en
- partant de la gauche). Comme nous avons utilis&eacute; un masque de sous-r&eacute;seau
- de <hostid role="netmask">255.255.255.255</hostid>, la longueur de
- celui-ci (le nombre de 1) est de 32.</para>
- <para>Maintenant que nous avons v&eacute;rifi&eacute; que la route est bien dans la table
- de routage du noyau, nous pouvons effectuer un contr&ocirc;le rapide pour nous
- assurer que cette route fonctionne bien. Ex&eacute;cutons une commande
- <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> comme
- ci-dessous:</para>
- <informalexample>
-<screen>&prompt.user; <userinput>ping 192.168.57.10</userinput></screen>
- </informalexample>
- <para>Si tout va bien, voici ce que nous verrions:</para>
- <programlisting>
-PING 192.168.57.10 (192.168.57.10): 56 data bytes
-64 bytes from 192.168.57.10: icmp_seq=0 ttl=255 time=0.313 ms
-64 bytes from 192.168.57.10: icmp_seq=1 ttl=255 time=0.197 ms
-64 bytes from 192.168.57.10: icmp_seq=2 ttl=255 time=0.190 ms
- </programlisting>
- <para>Appuyons simplement sur
- <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> pour arr&ecirc;ter
- <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> si tout
- para&icirc;t satisfaisant. Il nous &ldquo;crachera&rdquo; alors quelques
- statistiques, que nous pouvons normalement ignorer. S'il n'y a pas de
- retour ou s'il y a des messages d'erreur, quelque chose ne va pas.
- Reprenez tout du d&eacute;but et lisez les pages de manuel (non, vraiment,
- <emphasis>allez lire les pages de manuel</emphasis>), et, finalement,
- posez vos questions sur la &a.questions;.</para>
- </sect1>
- <sect1>
- <title>Tout mettre en place</title>
- <para>Maintenant que nous avons compris comment utiliser les commandes
- <citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> et
- <citerefentry><refentrytitle>route</refentrytitle></citerefentry> pour
- ajouter et supprimer des alias IP, faisons en sorte que la machine
- ex&eacute;cute les commandes voulues au d&eacute;marrage de fa&ccedil;on &agrave; ce que l'alias soit
- toujours actif.</para>
- <para>Vers la fin de notre fichier <filename>/etc/rc.local</filename>, nous
- ajouterons la ligne:</para>
- <programlisting>
-ifconfig ep0 inet 192.168.57.10 netmask 255.255.255.255 alias
- </programlisting>
- <para>Si nous utilisons un autre masque de sous-r&eacute;seau que
- <hostid role="netmask">255.255.255.255</hostid>, nous devrons aussi
- utiliser la commande
- <citerefentry><refentrytitle>route</refentrytitle></citerefentry> comme
- expliqu&eacute; plus haut. Il est possible d'ajouter de cette fa&ccedil;on autant
- d'alias que l'on veut (en supposant que nous disposons de suffisamment
- d'adresses allou&eacute;es). Il suffit de mettre plusieurs commandes comme
- la pr&eacute;c&eacute;dente dans <filename>/etc/rc.local</filename>, avec les adresses
- appropri&eacute;es. Il est m&ecirc;me possible de d&eacute;finir comme alias des adresses
- d'un autre r&eacute;seau IP, si ce r&eacute;seau est aussi rout&eacute; sur nous. C'est une
- situation diff&eacute;rente de celle d'une machine avec plusieurs interfaces
- <emphasis>physiques</emphasis> qui doivent <emphasis>toujours</emphasis>
- avoir des adresses sur des r&eacute;seaux IP diff&eacute;rents.</para>
- <para>Il y a un certains nombre de points &agrave; conna&icirc;tre lorsque l'on utilise
- un grand nombre d'alias (plus de ~10), que je citerai.</para>
- <para>Tout d'abord, il y a un bogue dans toutes les distributions de
- <application>bind</application> (le serveur DNS
- <application>named</application> fait partie de
- <application>BIND</application>) qui emp&ecirc;che le d&eacute;marrage correct de
- <application>named</application> lorsqu'il y a plus de 64 alias sur
- une interface. Il n'y a pas de palliatif particuli&egrave;rement simple, je ne
- les mentionnerai donc pas ici.</para>
- <para>En second lieu, pour &eacute;viter de truffer votre fichier
- <filename>/etc/rc.local</filename> de quantit&eacute;
- d'<citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry>, je
- vous sugg&egrave;re d'utiliser un fichier &agrave; part dans <filename>/etc</filename>
- pour les y mettre. Cr&eacute;ez par exemple un fichier
- <filename>ifconfig.ep0</filename> et mettez-y tous les
- <literal>ifconfig alias</literal>. Puis dans
- <filename>/etc/rc.local</filename>, ajoutez les lignes suivantes:</para>
- <programlisting>
-if [ -x /sbin/ifconfig ]; then
- echo -n 'Adding local ifconfigs '
- . /etc/ifconfig.ep0
- echo ' done.'
-fi
- </programlisting>
- <para>Ce fragment de proc&eacute;dure provient d'un fichier
- <filename>/etc/rc.local</filename> fourni par Neil Fowler Wright
- <email>neil@corpex.com</email>. Le bricoleur trouvera moyen d'y mettre
- des boucles s'il y a plusieurs interfaces dont les alias sont d&eacute;finis
- dans diff&eacute;rents fichiers <filename>ifconfig.*</filename>.</para>
- </sect1>
- <sect1>
- <title>O&ugrave; trouver plus d'aide</title>
- <para>M'envoyer directement un courrier &eacute;lectronique n'est probablement pas
- le meilleur moyen d'obtenir de l'aide sur les probl&egrave;mes d'alias IP. Je
- suis assez occup&eacute; la plupart du temps, et ai tendance &agrave; devenir assez
- rousp&eacute;teur. N&eacute;anmoins, les participants de la &a.questions; sont
- amicaux et secourables et r&eacute;pondront &agrave; vos questions plus rapidement que
- je ne le ferais.</para>
- <para>Cette page a grandement b&eacute;n&eacute;fici&eacute; des suggestions de Neil Fowler
- Wright, Paul DuBois, Gabe Schuyler, et de Brodie le chat.</para>
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/make-world/Makefile b/fr_FR.ISO8859-1/articles/make-world/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/make-world/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/make-world/article.sgml b/fr_FR.ISO8859-1/articles/make-world/article.sgml
deleted file mode 100755
index dd12d95e46..0000000000
--- a/fr_FR.ISO8859-1/articles/make-world/article.sgml
+++ /dev/null
@@ -1,1376 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.39
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
- <artheader>
- <title>Refaire votre monde (avec &ldquo;make world&rdquo;)</title>
- <authorgroup>
- <author>
- <firstname/Nik/
- <surname/Clayton/
- <affiliation>
- <address><email/Nik.Clayton@nothing-going-on.demon.co.uk/</address>
- </affiliation>
- </author>
- </authorgroup>
- <pubdate>10 Juillet 1997</pubdate>
-
- <abstract>
- <para>Ce document pr&eacute;suppose que vous ayez install&eacute; une version du code
- source de FreeBSD dans le r&eacute;pertoire <filename>/usr/src</filename>.
- Ce peut &ecirc;tre la derni&egrave;re version de la branche en cours de
- d&eacute;veloppement -current, &agrave; moins que vous ne restiez simplement &agrave; niveau
- sur la branche -stable. Vous pouvez avoir t&eacute;l&eacute;charg&eacute; l'instantan&eacute; le plus
- r&eacute;cent, ou bien rester &agrave; jour en utilisant les m&eacute;canismes fournis
- par CVSup ou CTM.</para>
-
- <para>Dans les deux cas, vous diposez du code source et voulez maintenant
- mettre &agrave; jour votre syst&egrave;me.</para>
-
- <para>Il y a un certain nombre d'&eacute;tapes &agrave; effectuer pour y arriver,
- et quelques pi&egrave;ges &agrave; &eacute;viter en cours de route. Ce document vous
- guide pas &agrave; pas &agrave; chacune de ces &eacute;tapes.</para>
-
- <para>Il existe aussi des <link linkend="translations">Traductions</link>
- de ce document dans d'autres langues.</para>
- &trans.a.haby;
- </abstract>
-</artheader>
-
-<sect1>
- <title>Avertissements pr&eacute;alables</title>
- <note>
- <title>Faites une sauvegarde</title>
-
- <para>Je n'insisterai jamais assez sur l'importance de faire un sauvegarde
- de votre syst&egrave;me <emphasis>avant</emphasis> toute autre chose. Bien qu'il
- soit facile de &ldquo;refaire le monde&rdquo;
- (N.d.T.: recompiler FreeBSD)&nbsp;-&nbsp;si
- vous suivez ces instructions, vous ferez forc&eacute;ment des erreurs &agrave; un moment
- ou &agrave; un autre, sans compter les erreurs des autres dans l'arborescence des
- sources qui emp&ecirc;cheraient votre syst&egrave;me de red&eacute;marrer.</para>
-
- <para>Assurez-vous que vous avez bien fait une sauvegarde. Ayez une
- disquette de maintenance &agrave; port&eacute;e de la main. Je n'ai jamais eu &agrave; les
- utiliser, et, je touche du bois, esp&egrave;re ne jamais devoir m'en servir,
- mais prudence est m&egrave;re de s&ucirc;ret&eacute;.</para>
- </note>
-
- <note>
- <title>Abonnez-vous &agrave; la bonne liste de diffusion</title>
-
- <para>Les branches -stable et -current du code de FreeBSD sont, par nature,
- <emphasis>en d&eacute;veloppement</emphasis>. Les gens qui participent au projet
- FreeBSD sont humains, et des erreurs se produisent parfois.</para>
-
- <para>Ces erreurs sont parfois b&eacute;nignes. Votre syst&egrave;me affiche simplement
- un nouveau message d'avertissement. Elles peuvent aussi &ecirc;tre
- catastrophiques, et emp&ecirc;cher votre syt&egrave;me de red&eacute;marrer, d&eacute;truire vos
- syst&egrave;mes de fichiers (ou pire).</para>
-
- <para>Quand de tels probl&egrave;mes se produisent, un avertissement
- &ldquo;heads up&rdquo; est post&eacute; sur la liste de diffusion appropri&eacute;e,
- d&eacute;crivant le probl&egrave;me et les machines concern&eacute;es. Un message
- &ldquo;all clear&rdquo; est diffus&eacute; quand le probl&egrave;me est
- r&eacute;solu.</Para>
-
- <para>Si vous restez &agrave; niveau sur -stable ou -current et ne lisez pas
- <email>FreeBSD-stable@FreeBSD.ORG</email> ou
- <email>FreeBSD-current@FreeBSD.ORG</email>, vous allez au devant
- d'ennuis.</para>
- </note>
-
- <important>
- <para>S'il vous pla&icirc;t, ne me posez pas de questions que vous devriez poster
- sur les listes -questions, -current, ou -stable. Je n'ai ni le temps
- ni l'environnement n&eacute;cessaire pour diagnostiquer des probl&egrave;mes
- sp&eacute;cifiques, et n'ai probablement pas votre r&eacute;ponse. Les membres de
- ces listes de diffusion sont nombreux, exp&eacute;riment&eacute;s et serviables, aussi,
- posez leur vos questions. Adressez-moi cependant vos commentaires,
- r&eacute;ponses et corrections<footnote><para>En anglais !</para></footnote>.
- Si vous vous adressez &agrave; moi au sujet de ce
- document, <emphasis>merci</emphasis> de m'indiquer le num&eacute;ro de version
- qui se trouve en haut de cette page, que je sache &agrave; quelle version vous
- faites r&eacute;f&eacute;rence.</para>
-
- <para>Ce document est un effort collectif. De nombreuses personnes y ont
- particip&eacute;, elles sont mentionn&eacute;es dans les
- <link linkend="contributors">Contributions</link>
- en fin de document.</para>
-
- <para>Copyright (c) 1997, 1998 Nik Clayton, All rights reserved.</para>
-
- <para>Vous pouvez redistribuer et utiliser ce document sous forme
- de source (SGML DocBook) ou 'compil&eacute;' (HTML, PDF, PostScript, RTF,
- etc..) avec ou sans modifications &agrave; la condition suivante:</para>
-
- <itemizedlist>
- <listitem>
- <para>Le document redistribu&eacute; doit inclure la notice de copyright
- ci-dessus et l'avertissement ci-dessous, avant le corps du
- document.</para>
- </listitem>
- </itemizedlist>
-
- <para>THIS TUTORIAL IS PROVIDED BY NIK CLAYTON &ldquo;AS IS&rdquo; 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 TUTORIAL, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.</para>
-
- <para>CE DOCUMENT EST FOURNI PAR NIK CLAYTON &ldquo;TEL QUEL&rdquo; ET
- AUCUNE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS NON LIMITEE,
- GARANTIES IMPLICITES DE COMMERCIABILITE ET D'ADEQUATION A UN BUT
- PARTICULIER N'EST DONNEE. EN AUCUN CAS NIK CLAYTON NE
- SAURAIT ETRE TENU RESPONSABLE
- DES DOMMAGES DIRECTS, INDIRECTS, ACCIDENTELS, SPECIAUX OU CONSEQUENTS
- (Y COMPRIS, MAIS SANS LIMITATION, LA FOURNITURE DE BIENS ET SERVICES
- ANNEXES; DEFAUT D'UTILISABILITE, PERTE DE DONNEES OU DE PROFITS; OU
- INTERRUPTION DE TRAVAIL) QUELLE QU'EN SOIT LA CAUSE ET SELON TOUTE
- DEFINITION DE RESPONSABILITE, SOIT PAR CONTRAT, RESPONSABILITE STRICTE,
- OU PREJUDICE (Y COMPRIS NEGLIGENCE OU AUTRES) IMPUTABLE D'UNE FACON
- OU D'UNE AUTRE A L'UTILISATION DE CE DOCUMENT, MEME APRES AVOIR ETE AVISE
- DE LA POSSIBILITE D'UN TEL DOMMAGE.</para>
- </important>
-</sect1>
-
- <sect1>
- <title>Examinez <filename>/etc/make.conf</filename></title>
-
- <para>Reportez-vous au fichier <filename>/etc/make.conf</filename>.
- Il contient les valeurs par d&eacute;faut utilis&eacute;es par la commande
- <command/make/, qui sera employ&eacute;e pour la recompilation. Elles sont aussi
- utilis&eacute;es toutes les fois que vous invoquez <command/make/, il est donc
- bon de vous assurer qu'elles comportent les valeurs appropri&eacute;es &agrave; votre
- syst&egrave;me.</para>
-
- <para>Tout y est, par d&eacute;faut, en commentaire. Activez les options qui
- vous para&icirc;ssent utiles. Pour un utilisateur normal (qui ne d&eacute;veloppe
- pas), il faut probalement utiliser les d&eacute;finitions de CFLAGS et
- NOPROFILE.</para>
-
- <note>
- <title/Version 2.1.7 et ant&eacute;rieures/
-
- <para>Si votre machine dispose d'une unit&eacute; de calcul en virgule
- flottante (386DX, 486DX, Pentium et ult&eacute;rieurs) vous pouvez aussi
- activer l'option HAVE_FPU.</para>
-
- <para>Cette d&eacute;finition a disparu depuis la version 2.2.2 de
- FreeBSD.</para>
- </note>
-
- <para>Examinez les autres d&eacute;finitions (COPTFLAGS, NOPORTDOCS et ainsi de
- suite) et d&eacute;cidez de celles qui vous conviennent.</para>
- </sect1>
-
- <sect1>
- <title>Mettez &agrave; jour le fichier <filename>/etc/group</filename></title>
-
- <para>Le r&eacute;pertoire <filename>/etc</filename> contient la plupart des
- informations de configuration de votre syst&egrave;me, ainsi que ses proc&eacute;dures
- de d&eacute;marrage. Certaines de ces proc&eacute;dures changent d'une version &agrave; l'autre
- de FreeBSD.</para>
-
- <para>Certains fichiers de configuration sont aussi utilis&eacute;s en permanence
- par le syst&egrave;me. En particulier, <filename>/etc/group</filename>.</para>
-
- <para>Il est arriv&eacute; que la phase d'installation de &ldquo;make
- world&rdquo; ait besoin que certains utilisateurs et groupes existent.
- Il y a de fortes chances qu'ils n'aient pas &eacute;t&eacute; d&eacute;finis avant la mise
- &agrave; jour. C'est une source de probl&egrave;mes.</para>
-
- <para>L'exemple le plus r&eacute;cent concerne l'ajout du groupe &ldquo;ppp&rdquo;
- (renomm&eacute; par la suite &ldquo;network&rdquo;). Les utilisateurs ont vu leur
- mise &agrave; jour avorter &agrave; l'installation du sous-syt&egrave;me
- <filename>ppp</filename> sous un groupe inexistant (chez eux).</para>
-
- <para>La solution consiste &agrave; examiner le fichier
- <filename>/usr/src/etc/group</filename> et &agrave; le comparer &agrave; votre propre
- liste de groupes. S'il y a des groupes dans le nouveau fichier qui ne
- sont pas dans votre fichier, copiez-les. De m&ecirc;me, vous devez renommer
- tout groupe de votre fichier <filename>/etc/group</filename> qui a le
- m&ecirc;me GID, mais un nom diff&eacute;rent, qu'un groupe du fichier
- <filename>/usr/src/etc/group</filename>.</para>
-
- <tip>
- <para>Si vous &ecirc;tes particuli&egrave;rement parano&iuml;aque, vous pouvez contr&ocirc;ler
- votre syst&egrave;me pour trouver les fichiers appartenant au groupe que vous
- renommez ou supprimez. Une commande du type:
-
- <informalexample>
- <screen><prompt/#/ <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen>
- </informalexample>
-
- vous donnera la liste des fichiers appartenant au groupe
- <replaceable>GID</replaceable>
- (qui peut &ecirc;tre un nom de groupe ou un identifiant num&eacute;rique).</para>
- </tip>
- </sect1>
-
- <sect1>
- <title/Passez en mode mono-utilisateur/
-
- <para>Il vaut mieux recompiler le syst&egrave;me en mode mono-utilisateur. En
- dehors du fait que cela ira un peu plus vite, la r&eacute;installation va
- modifier un grand nombre de fichiers syst&egrave;mes importants, tous les
- binaires de base, les biblioth&egrave;ques, les fichiers inclus et ainsi de
- suite. Les modifier quand le syst&egrave;me est en service (en particulier
- s'il y a des utilisateurs connect&eacute;s &agrave; ce moment l&agrave;), c'est aller au devant
- de probl&egrave;mes.</para>
-
- <para>Cela dit, si vous avez confiance en vous, vous pouvez vous en
- passer.</para>
-
- <note>
- <title>Version 2.2.5 et ult&eacute;rieure</title>
-
- <para>Comme d&eacute;crit plus bas, la version 2.2.5 et les suivantes de
- FreeBSD s&eacute;parent la recompilation et l'installation. Vous pouvez
- d&egrave;s lors <emphasis>compiler</emphasis> le nouveau syst&egrave;me en mode
- multi-utilisateurs et passer en mode mono-utilisateur juste pour
- l'installer.</para>
- </note>
-
- <para>En tant que super-utilisateur, vous pouvez passer la commande:
-
- <informalexample>
-<screen><prompt/#/ <userinput/shutdown now/</screen>
- </informalexample>
-
- sur un syst&egrave;me en fonctionnement, pour passer en mode
- mono-utilisateur.</para>
-
- <para>Ou bien, red&eacute;marrez le syst&egrave;me, et, &agrave; l'invite de d&eacute;marrage, entrez
- l'indicateur <option>-s</option>. Le syst&egrave;me red&eacute;marrera en mode
- mono-utilisateur. A l'invite de l'interpr&eacute;teur de commandes, ex&eacute;cutez:
-
- <informalexample>
-<screen><prompt/#/ <userinput/fsck -p/
-<prompt/#/ <userinput>mount -u /</userinput>
-<prompt/#/ <userinput/mount -a -t ufs/
-<prompt/#/ <userinput/swapon -a/</screen>
- </informalexample>
-
- pour effectuer la v&eacute;rification des syst&egrave;mes de fichiers, remontez
- <filename>/</filename> en mode lecture/&eacute;criture, et monter tous les
- autres syst&egrave;mes de fichiers UFS list&eacute;s dans le fichier
- <filename>/etc/fstab</filename>, puis activez la pagination.</para>
- </sect1>
-
- <sect1>
- <title>Effacez <filename>/usr/obj</filename></title>
-
- <para>Les composants du syst&egrave;me reconstruit sont au fur et &agrave; mesure plac&eacute;s
- dans les sous-r&eacute;pertoires de <filename>/usr/obj</filename> (par d&eacute;faut).
- Ces r&eacute;pertoires masquent ceux de <filename>/usr/src</filename>.</para>
-
- <para>Vous pouvez acc&eacute;l&eacute;rer le travail de &ldquo;make world&rdquo;,
- et peut-&ecirc;tre vous &eacute;viter quelques maux de t&ecirc;te en supprimant aussi
- le r&eacute;pertoire <filename>/usr/obj</filename>.</para>
-
- <para>Certains fichiers dans <filename>/usr/obj</filename> sont marqu&eacute;s
- immuables (reportez-vous aux pages de manuel de
- <command>chflags(1)</command> pour plus de d&eacute;tails). Il faut d'abord
- supprimer cet indicateur.</para>
-
- <para><informalexample>
-<screen><prompt/#/ <userinput>cd /usr/obj</userinput>
-<prompt/#/ <userinput/chflags -R noschg */
-<prompt/#/ <userinput/rm -rf */</screen></informalexample></para>
- </sect1>
-
- <sect1>
- <title/Recompilez les sources et installez le nouveau syst&egrave;me/
-
- <sect2>
- <title>Toutes versions</title>
-
- <para>Vous devez &ecirc;tre dans le r&eacute;pertoire <filename>/usr/src</filename>,
- donc:
-
- <informalexample>
- <screen><prompt/#/ <userinput>cd /usr/src</userinput></screen>
- </informalexample>
-
- (&agrave; moins, bien s&ucirc;r, que votre code source soit ailleurs, auquel cas vous
- devez aller dans le r&eacute;pertoire correspondant).</para>
-
- <para>Pour recompiler le syst&egrave;me, vous utilisez la commande <citerefentry>
- <refentrytitle>make</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>. Cette commande lit ses instructions dans le fichier
- <filename>Makefile</filename>, qui d&eacute;crit comment reconstruire les
- modules qui constituent FreeBSD, dans quel ordre,
- et ainsi de suite.</para>
-
- <para>Le format g&eacute;n&eacute;ral de la commande que vous taperez sera:
-
- <informalexample>
- <screen><prompt/#/ <userinput>make <option>-<replaceable/x/</option> <option>-D<replaceable>VARIABLE</replaceable></option> <replaceable>cible</replaceable></userinput></screen>
- </informalexample>
- </para>
-
- <para>Dans cet exemple, <option>-<replaceable>x</replaceable></option> est
- une option que vous donnez &agrave; <citerefentry>
- <refentrytitle>make</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>. Reportez-vous aux pages de manuel pour conna&icirc;tre les
- options disponibles.</para>
-
- <para><option>-D<replaceable>VARIABLE</replaceable></option> transmet une
- variable au fichier <filename>Makefile</filename>. Le comportement de
- <filename>Makefile</filename> est d&eacute;fini par ces variables. Ce sont les
- m&ecirc;mes variables que l'on trouve dans
- <filename>/etc/make.conf</filename>, et c'est un autre moyen de les
- positionner.</para>
-
- <para>Par exemple:
-
- <informalexample>
- <screen><prompt/#/ <userinput>make -DNOPROFILE=true <replaceable>cible</replaceable></userinput></screen>
- </informalexample>
-
- est une autre mani&egrave;re de dire qu'il ne faut pas compiler les
- biblioth&egrave;ques profil&eacute;es et correspond aux lignes:
-
- <programlisting>NOPROFILE= true
-# Avoid compiling profiled librairies
-# Ne pas compiler les biblioth&egrave;ques profil&eacute;es
- </programlisting>
-
- du fichier <filename>/etc/make.conf</filename>.</para>
-
- <para><replaceable>cible</replaceable> dit &agrave; <citerefentry>
- <refentrytitle>make</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> ce que vous voulez faire. Chaque
- <filename>Makefile</filename> d&eacute;finit un certains nombre de
- &ldquo;cibles&rdquo; diff&eacute;rentes, et votre choix de cibles d&eacute;termine
- ce qui se passe.</para>
-
- <para>Il y a des cibles d&eacute;finies dans le fichier
- <filename>Makefile</filename> que
- vous n'avez pas &agrave; employer. Ce sont des &eacute;tapes interm&eacute;diaires utilis&eacute;es
- par le processus de recompilation pour d&eacute;composer les &eacute;tapes en
- sous-&eacute;tapes.</para>
-
- <para>La plupart du temps, vous n'aurez pas besoin de donner d'options &agrave;
- <citerefentry>
- <refentrytitle>make</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>, et votre commande sera simplement:
-
- <informalexample>
- <screen><prompt/#/ <userinput>make <replaceable>cible</replaceable></userinput></screen>
- </informalexample>
- </para>
- </sect2>
-
- <sect2>
- <title>Enregistrez le r&eacute;sultat</title>
-
- <para>C'est une bonne id&eacute;e d'enregistrer le r&eacute;sultat de
- <citerefentry>
- <refentrytitle>make</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> dans un ficher. Si quelque chose se passe mal, vous
- aurez une trace des messages d'erreur, et la liste compl&egrave;te de ce qui
- a &eacute;t&eacute; fait. M&ecirc;me si cela ne vous aide pas &agrave; diagnostiquer ce qui n'a pas
- march&eacute;, cela peut aider les autres si vous soumettez votre probl&egrave;me sur
- une des listes de diffusion de FreeBSD.</para>
-
- <para>La meilleure fa&ccedil;on de faire cela est d'utiliser la commande
- <citerefentry><refentrytitle>script</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>, avec en param&egrave;tre le nom du fichier o&ugrave; enregistrer
- les r&eacute;sultats. Vous devez faire cela juste avant de recompiler le
- syst&egrave;me, et taper <userinput>exit</userinput> une fois que c'est
- termin&eacute;.</para>
-
- <informalexample>
- <screen><prompt/#/ <userinput>script /var/tmp/mw.out</userinput>
-Script started, output file is /var/tmp/mw.out
-<prompt/#/ <userinput/make world/
-<emphasis>&hellip; compile, compile, compile &hellip;</emphasis>
-<prompt/#/ <userinput/exit/
-Script done, &hellip;
- </screen>
- </informalexample>
-
- <para>Si vous le faites, <emphasis>n'enregistrez pas</emphasis> les
- r&eacute;sultats dans <filename>/tmp</filename>. Ce r&eacute;pertoire peut &ecirc;tre vid&eacute;
- au prochain red&eacute;marrage du syt&egrave;me. Il vaut mieux les mettre dans
- <filename>/var/tmp</filename>
- (comme dans l'exemple pr&eacute;c&eacute;dent) ou dans le r&eacute;pertoire utilisateur de
- root.</para>
- </sect2>
-
- <sect2>
- <title>Version 2.2.2 et ant&eacute;rieure</title>
-
- <para><filename>/usr/src/Makefile</filename> contient la cible
- &ldquo;world&rdquo;, qui recompile tout le syst&egrave;me et
- l'installe.</para>
-
- <para>Utilisez donc:
- <informalexample>
- <screen><prompt/#/ <userinput>make world</userinput></screen>
- </informalexample>
- </para>
- </sect2>
-
- <sect2>
- <title>Version 2.2.5 et ult&eacute;rieure</title>
-
- <para>A partir de la version 2.2.5 de FreeBSD (de fait, c'est la premi&egrave;re
- version &agrave; avoir &eacute;t&eacute; cr&eacute;&eacute;e sur la branche -current, puis rapatri&eacute;e dans
- la branche -stable entre les versions 2.2.2 et 2.2.5) la cible
- &ldquo;world&rdquo; a &eacute;t&eacute; d&eacute;compos&eacute;e en deux: &ldquo;buildworld&rdquo;
- et &ldquo;installworld&rdquo;.</para>
-
- <para>Comme leurs noms l'indiquent, &ldquo;buildworld&rdquo; reconstruit
- la nouvelle arborescence dans <filename>/usr/obj</filename>, et
- &ldquo;installworld&rdquo; l'installe sur la
- machine.</para>
-
- <para>C'est tr&egrave;s utile pour deux raisons. Tout d'abord, vous pouvez
- recompiler en toute s&ucirc;ret&eacute;, sans toucher aux composants du syst&egrave;me
- actuel. Le processus est &ldquo;autonome&rdquo;. Vous pouvez donc
- ex&eacute;cuter &ldquo;buildworld&rdquo; sur une machine en mode
- multi-utilisateurs
- sans redouter d'effets f&acirc;cheux. Je vous recommande n&eacute;anmoins de toujours
- ex&eacute;cuter l'&eacute;tape &ldquo;installworld&rdquo; en mode
- mono-utilisateur.</para>
-
- <para>En second lieu, cela vous permet d'utiliser des syst&egrave;mes de fichiers
- mont&eacute;s par NFS pour mettre &agrave; jour les autres machines de votre r&eacute;seau.
- Si vous avez trois machines, A, B, et C que vous voulez mettre &agrave; jour,
- ex&eacute;cutez <command>make buildworld</command> et
- <command>make installworld</command> sur A. B et C doivent alors monter
- par NFS <filename>/usr/src</filename> et <filename>/usr/obj</filename>
- depuis A, et vous pouvez alors ex&eacute;cuter
- <command>make installworld</command> pour
- installer le syst&egrave;me recompil&eacute; sur B et C.</para>
-
- <para>La cible &ldquo;world&rdquo; existe toujours
- et vous pouvez l'utiliser
- exactement comme avec la version 2.2.2.
- <command>make world</command> ex&eacute;cute
- <command>make buildworld</command> suivi de <command>make
- installworld</command>.</para>
-
- <note>
- <para>Si vous utilisez s&eacute;parement <command>make buildworld</command> et
- <command>make installworld</command>, vous devez donner &agrave; chaque fois
- les m&ecirc;mes param&egrave;tres &agrave; <citerefentry>
- <refentrytitle>make</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>.</para>
-
- <para>Par exemple, si vous ex&eacute;cutez:
-
- <informalexample>
- <screen><prompt/#/ <userinput>make -DNOPROFILE=true buildworld</userinput></screen>
- </informalexample>
-
- vous devrez ensuite installer les r&eacute;sultats avec:
-
- <informalexample>
- <screen><prompt/#/ <userinput>make -DNOPROFILE=true installworld</userinput></screen>
- </informalexample>
-
- sinon il essayera d'installer les biblioth&egrave;ques profil&eacute;es
- qui n'ont pas &eacute;t&eacute; recompil&eacute;es &agrave; l'&eacute;tape
- <command>make buildworld</command>.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>-current et ult&eacute;rieure</title>
-
- <para>Si vous &ecirc;tes sur la branche -current, vous pouvez aussi donner
- l'option <option>-j</option> &agrave; <command>make</command>. Cela permet &agrave;
- <command>make</command> d'ex&eacute;cuter plusieurs programmes
- simultan&eacute;ment.</para>
-
- <para>C'est particuli&egrave;rement utile sur une machine avec plusieurs
- processeurs. N&eacute;anmoins, comme la compilation est plus gourmande en
- Entr&eacute;es/Sorties qu'en CPU, c'est aussi
- utile sur une machine mono-processeur.</para>
-
- <para>Typiquement, sur une machine mono-processeur, vous ex&eacute;cuteriez:
-
- <informalexample>
- <screen><prompt/#/ <userinput>make -j4 <replaceable>cible</replaceable></userinput></screen>
- </informalexample>
-
- pour autoriser
- <citerefentry>
- <refentrytitle>make</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> &agrave; ex&eacute;cuter 4 programmes simultan&eacute;ment.
- Les constatations empiriques post&eacute;es sur les listes de diffusion
- montrent que c'est en g&eacute;n&eacute;ral ce qui apporte le plus de gain en
- performances.</para>
-
- <para>Si vous avez une machine multi-processeurs et que vous avez
- configur&eacute; un noyau SMP, essayez des valeurs entre 6 et 10 et voyez quel
- b&eacute;n&eacute;fice vous en tirez.</para>
-
- <para>N'oubliez pas que c'est toujours exp&eacute;rimental (au moment o&ugrave; j'&eacute;cris
- ceci), et que des modifications de l'arborescence des sources rendent
- parfois cette possibilit&eacute; inutilisable. Si vous n'arrivez pas &agrave; recompiler
- avec ce param&egrave;tre, essayez sans avant de signaler votre probl&egrave;me.</para>
- </sect2>
-
- <sect2>
- <title/Dur&eacute;e/
-
- <para>En supposant que tout ce passe bien, il vous faudra attendre
- entre une heure et demie et une demi-journ&eacute;e.</para>
-
- <para>En r&egrave;gle g&eacute;n&eacute;rale, un P6 200MHz avec plus de 32MB de RAM
- et des disques SCSI corrects ex&eacute;cutera <command>make world</command>
- en environ une heure et demie. Un P133 32MB prendra 5 &agrave; 6
- heures. Revoyez ces chiffres &agrave; la baisse si vos machines sont
- plus lentes&hellip;</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Mettez &agrave; jour <filename>/etc</filename></title>
-
- <para>Recompiler le syst&egrave;me ne met pas &agrave; jour certains r&eacute;pertoires (en
- particulier, <filename>/etc</filename>, <filename>/var</filename> et
- <filename>/usr</filename>) pour y installer des fichiers de configuration
- nouveaux ou modifi&eacute;s.
- Il vous faudra le faire &agrave; la main, &agrave; vue, et en utilisant &agrave; bon escient
- la commande <command/diff/.</para>
-
- <para>Vous ne pouvez pas vous contenter de copier les fichiers de
- <filename>/usr/src/etc</filename> dans <filename>/etc</filename> pour
- que cela marche. Certains de ces fichiers doivent d'abord &ecirc;tre
- &ldquo;install&eacute;s&rdquo;.
- En effet le r&eacute;pertoire <filename>/usr/src/etc</filename>
- <emphasis>n'est pas</emphasis> une simple copie de ce que devrait
- contenir votre r&eacute;pertoire<filename>/etc</filename>. De plus, il y a
- des fichiers qui doivent &ecirc;tre dans <filename>/etc</filename> et ne
- sont pas dans <filename>/usr/src/etc</filename>.</para>
-
- <para>La fa&ccedil;on la plus simple de proc&eacute;der est d'installer les fichiers
- dans un nouveau r&eacute;pertoire, puis de passer en revue les diff&eacute;rences.</para>
-
- <note>
- <title>Sauvegardez vos fichiers actuels dans
- <filename>/etc</filename></title>
-
- <para>Bien qu'en principe rien ne sera modifi&eacute; automatiquement dans ce
- r&eacute;pertoire, prudence est m&egrave;re de s&ucirc;ret&eacute;. Copiez donc votre r&eacute;pertoire
- <filename>/etc</filename> dans un endroit s&ucirc;r.
- Quelque chose du genre:</para>
-
- <informalexample>
- <screen><prompt/#/ <userinput>cp -Rp /etc /etc.old</userinput></screen>
- </informalexample>
-
- <para>fera l'affaire (<option>-R</option> fait une copie r&eacute;cursive,
- <option>-p</option> conserve la date, les autorisations des fichiers
- et ainsi de suite).</para>
- </note>
-
- <para>Vous devez cr&eacute;er un jeu de r&eacute;pertoires provisoires pour y installer
- les fichiers de <filename>/etc</filename> et autres. En g&eacute;n&eacute;ral,
- je les mets dans <filename>/var/tmp/root</filename>;
- il y a un certain nombre de sous-r&eacute;pertoires &agrave; cr&eacute;er. Pour ce faire,
- ex&eacute;cutez:
-
- <informalexample>
- <screen><prompt/#/ <userinput>mkdir /var/tmp/root</userinput>
-<prompt/#/ <userinput>cd /usr/src/etc</userinput>
-<prompt/#/ <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen>
- </informalexample>
-
- qui va cr&eacute;er l'arborescence n&eacute;cessaire et y installera les fichiers. Un
- grand nombre des sous-r&eacute;pertoires cr&eacute;&eacute;s dans
- <filename>/var/tmp/root</filename> seront vides et devront &ecirc;tre
- supprim&eacute;s. La fa&ccedil;on la plus simple de le faire est:
-
- <informalexample>
- <screen><prompt/#/ <userinput>cd /var/tmp/root</userinput>
-<prompt/#/ <userinput>find -d . -type d | /usr/bin/perl -lne \
- 'opendir(D,$_);@f=readdir(D);rmdir if $#f == 1;closedir(D);'</userinput></screen>
- </informalexample>
-
- qui fait une recherche en profondeur, examine chaque r&eacute;pertoire, et s'il
- ne contient que 2 fichiers (&ldquo;1&rdquo; n'est pas une faute de frappe
- dans la proc&eacute;dure), i.e. &ldquo;<filename>.</filename>&rdquo; et
- &ldquo;<filename>..</filename>&rdquo; supprime le r&eacute;pertoire.</para>
-
- <para><filename>/var/tmp/root</filename> contient maintenant tous les
- fichiers &agrave; installer &agrave; l'endroit requis sous
- <filename>/</filename>. Vous devez ensuite examiner chacun de ces
- fichiers pour voir en quoi ils diff&egrave;rent de vos propres fichiers.</para>
-
- <para>Notez que certains des fichiers qui ont &eacute;t&eacute; install&eacute;s dans
- <filename>/var/tmp/root</filename> commencent par un &ldquo;.&rdquo; Au
- moment o&ugrave; j'&eacute;cris ceci, les seuls fichiers concern&eacute;s sont les fichiers
- d'initialisation des interpr&eacute;teurs de commandes dans
- <filename>/var/tmp/root/</filename> et
- <filename>/var/tmp/root/root/</filename>, mais il pourrait y en
- avoir d'autres
- (cela d&eacute;pend de quand vous lirez ces lignes). Assurez-vous d'utiliser
- <command/ls -a/ pour ne pas les oublier.</para>
-
- <para>La mani&egrave;re la plus simple de proc&eacute;der est d'utiliser la commande
- <command/diff/ pour comparer deux fichiers.</para>
-
- <para>Par exemple:
-
- <informalexample>
- <screen><prompt/#/ <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
- </informalexample>
-
- vous indiquera les diff&eacute;rences entre votre fichier
- <filename>/etc/shells</filename> et le nouveau fichier
- <filename>/etc/shells</filename>. A partir de l&agrave;, d&eacute;cidez si vous
- allez reporter les modifications que vous y avez apport&eacute;es ou si vous
- allez simplement recopier le nouveau fichier.</para>
-
- <para><ulink url="http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/dircmp.pl"><filename>http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/dircmp.pl</filename></ulink> est une
- petite proc&eacute;dure Perl (Perl 4.036, qui est install&eacute; par d&eacute;faut &agrave; partir de
- la version 2.0 de FreeBSD) qui compare les fichiers de deux r&eacute;pertoires
- (<filename>/etc</filename> et
- <filename>/var/tmp/root/etc</filename> par d&eacute;faut) et liste les fichiers
- absents ou diff&eacute;rents dans les deux r&eacute;pertoires.</para>
-
- <tip>
- <title>Donnez au nouveau r&eacute;pertoire
- (<filename>/var/tmp/root</filename>) un nom qui inclue une date, pour
- pouvoir facilement comparer diff&eacute;rentes versions</title>
-
- <para>Si vous recompilez fr&eacute;quemment votre syst&egrave;me, vous devrez aussi
- souvent mettre &agrave; jour <filename>/etc</filename>, ce qui peut devenir
- une vrai corv&eacute;e.</para>
-
- <para>Vous pouvez acc&eacute;l&eacute;rer le processus en gardant une copie du dernier
- jeu de fichiers report&eacute;s dans <filename>/etc</filename>. La
- proc&eacute;dure suivante vous sugg&egrave;re comment faire.</para>
-
- <procedure>
- <step>
- <para>Recompilez le syst&egrave;me comme d'habitude. Au moment de mettre &agrave;
- jour <filename>/etc</filename> et les autres r&eacute;pertoires, donnez au
- r&eacute;pertoire cible un nom bas&eacute; sur la date du jour. Si vous faisiez
- cela le 14 F&eacute;vrier 1998, vous pouviez proc&eacute;der comme suit:</para>
-
- <informalexample>
- <screen><prompt/#/ <userinput>mkdir /var/tmp/root-980214</userinput>
-<prompt/#/ <userinput>cd /usr/src/etc</userinput>
-<prompt/#/ <userinput>make DESTDIR=/var/tmp/root-980214 \
- distrib-dirs distribution</userinput></screen>
- </informalexample>
- </step>
-
- <step>
- <para>Reportez les modifications depuis ce r&eacute;pertoire comme d&eacute;crit
- plus haut.</para>
-
- <para><emphasis>Ne supprimez pas</emphasis> le r&eacute;pertoire
- <filename>/var/tmp/root-980214</filename> quand vous aurez
- termin&eacute;.</para>
- </step>
-
- <step>
- <para>Quand vous chargerez la version la plus r&eacute;cente des sources et
- la recompilerez, faites de m&ecirc;me. Vous aurez alors un nouveau
- r&eacute;pertoire,
- <filename>/var/tmp/root-980221</filename> par exemple
- (si vous faites une mise &agrave; jour chaque semaine).</para>
- </step>
-
- <step>
- <para>Vous pouvez maintenant voir les modifications intervenues
- d'une semaine &agrave; l'autre avec quelque chose comme:
-
- <informalexample>
- <screen><prompt/#/ <userinput>cd /var/tmp</userinput>
-<prompt/#/ <userinput>diff -r root-980214 root-980221</userinput></screen>
- </informalexample>
-
- qui vous donnera les diff&eacute;rences entre tous les fichiers des deux
- r&eacute;pertoires.</para>
-
- <para>Typiquement, il y aura beaucoup moins de diff&eacute;rences
- qu'entre <filename>/var/tmp/root-980221/etc</filename>
- et <filename>/etc</filename>. Comme il y a beaucoup moins de
- diff&eacute;rences, il est beaucoup plus facile de les reporter dans
- le r&eacute;pertoire <filename>/etc</filename>.</para>
- </step>
-
- <step>
- <para>Vous pouvez maintenant supprimer le plus ancien des deux
- r&eacute;pertoires <filename>/var/tmp/root-*</filename>:
-
- <informalexample>
- <screen><prompt/#/ <userinput>rm -rf /var/tmp/root-980214</userinput></screen>
- </informalexample>
- </para>
- </step>
-
- <step>
- <para>R&eacute;p&eacute;tez l'op&eacute;ration chaque fois que vous devez reporter
- des modifications dans <filename>/etc</filename>.</para>
- </step>
- </procedure>
-
- <para>Vous pouvez utiliser la commande <command>date(1)</command> pour
- automatiser la g&eacute;n&eacute;ration des noms de r&eacute;pertoires. Par exemple:
-
- <informalexample>
- <screen><prompt/#/ <userinput>mkdir /var/tmp/root-`date "+%y%m%d"`</userinput></screen>
- </informalexample>
-
- cr&eacute;e un r&eacute;pertoire dont le nom d&eacute;pend de l'ann&eacute;e, du mois et
- du jour.</para>
- </tip>
- </sect1>
-
- <sect1>
- <title>Mettez &agrave; jour <filename>/dev</filename></title>
-
- <note>
- <title>DEVFS</title>
-
- <para>Si vous utilisez DEVFS ce qui suit ne vous concerne probalement
- pas.</para>
- </note>
-
- <para>Pour des raisons de s&eacute;curit&eacute;, cette mise &agrave; jour se fait en plusieurs
- &eacute;tapes.</para>
-
- <para>Copiez tout d'abord <filename>/var/tmp/root/dev/MAKEDEV</filename>
- dans <filename>/dev</filename>.
-
- <informalexample>
- <screen><prompt/#/ <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen>
- </informalexample></para>
-
- <para>Prenez maintenant un instantan&eacute; de l'&eacute;tat de votre r&eacute;pertoire
- <filename>/dev</filename>. Il doit indiquer
- les propri&eacute;taires, les droits et les codes majeur et mineur de chaque
- fichier sp&eacute;cial de p&eacute;riph&eacute;rique, mais pas leur date de derni&egrave;re mise &agrave; jour.
- La fa&ccedil;on la plus facile de proc&eacute;der est d'utiliser
- la commande <command>awk</command> pour &eacute;liminer les informations inutiles:
-
- <informalexample>
- <screen><prompt/#/ <userinput>cd /dev</userinput>
-<prompt/#/ <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen>
- </informalexample></para>
-
- <para>Ensuite, recr&eacute;ez tous les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques:.
-
- <informalexample>
- <screen><prompt/#/ <userinput/sh MAKEDEV all/</screen>
- </informalexample></para>
-
- <para>Reprenez un instantan&eacute; de l'&eacute;tat de votre r&eacute;pertoire, cette fois-ci
- dans <filename>/var/tmp/dev2.out</filename>. Comparez maintenant ces deux
- instantan&eacute;s pour voir si certains fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques
- n'ont pas &eacute;t&eacute; recr&eacute;&eacute;s. Il ne devrait pas en manquer, mais prudence est
- m&egrave;re de s&ucirc;ret&eacute;.
-
- <informalexample>
- <screen><prompt/#/ <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen>
- </informalexample></para>
-
- <para>Il manquera peut-&ecirc;tre des descripteurs de partitions,
- il vous faudra alors ex&eacute;cuter des commandes du type :
-
- <informalexample>
-<screen><prompt/#/ <userinput>sh MAKEDEV sd0s1</userinput>
-</screen>
- </informalexample>
-
- pour les recr&eacute;er. Les d&eacute;tails d&eacute;pendent de votre installation.</para>
- </sect1>
-
- <sect1>
- <title>Mettez &agrave; jour <filename>/stand</filename></title>
-
- <note>
- <para>Cette &eacute;tape n'est d&eacute;crite que pour &ecirc;tre exhaustif, elle peut &ecirc;tre
- omise sans danger.</para>
- </note>
-
- <para>Pour &ecirc;tre exhaustif, vous pouvez aussi mettre &agrave; jour les fichiers de
- <filename>/stand</filename>. Ces fichiers sont des liens physiques sur
- le programme <filename>/stand/sysinstall</filename>. L'&eacute;dition de liens
- de cet ex&eacute;cutable doit &ecirc;tre statique, pour qu'on puisse l'utiliser sans
- qu'aucun autre syst&egrave;me de fichiers (et en particulier
- <filename>/usr</filename>) ne soit mont&eacute;.</para>
-
- <informalexample>
- <screen><prompt/#/ <userinput>cd /usr/src/release/sysinstall</userinput>
-<prompt/#/ <userinput>make all install</userinput></screen>
- </informalexample>
-
- <note>
- <title>Sources ant&eacute;rieurs au 2 Avril 1998</title>
-
- <para>Si votre code source date d'avant le 2 Avril 1998, ou que
- la version de votre <filename>Makefile</filename> est inf&eacute;rieure &agrave;
- 1.68 (pour FreeBSD-current et les syst&egrave;mes 3.x) ou &agrave; 1.48.2.21
- (pour les syst&egrave;mes 2.2.x), vous devrez ajouter l'option
- <userinput>NOSHARED=yes</userinput> comme suit:</para>
-
- <informalexample>
- <screen><prompt/#/ <userinput>make NOSHARED=yes all install</userinput></screen>
- </informalexample>
-
- </note>
- </sect1>
-
- <sect1>
- <title/Compilez et installez un nouvau noyau/
-
- <para>Pour tirer pleinement parti de votre nouveau syst&egrave;me, vous devez
- recompiler le noyau. C'est pratiquement indispensable, parce que des
- structures de donn&eacute;es peuvent avoir chang&eacute;, et des programmes
- comme <command/ps/ et <command/top/ ne marcheront pas
- tant que le syst&egrave;me et le noyau ne seront pas au m&ecirc;me niveau
- de version.</para>
-
- <para>Suivez les instructions du "manuel" pour compiler un nouveau
- noyau. Si vous avez d&eacute;j&agrave; recompil&eacute; un noyau personnalis&eacute;
- examinez en d&eacute;tail le fichier de configuration
- <filename/LINT/ pour voir s'il y a de nouvelles options dont vous
- pourriez tirer parti.</para>
-
- <para>Une version pr&eacute;c&eacute;dente de ce document sugg&eacute;rait de red&eacute;marrer
- le syst&egrave;me avant de recompiler le noyau. C'est un erreur parce
- que :</para>
-
- <itemizedlist>
- <listitem><para>Des commandes comme <command/ps/, <command/ifconfig/ and
- <command/sysctl/ peuvent ne plus fonctionner. Dans ce cas, votre
- machine ne peut plus se connecter au r&eacute;seau.</para></listitem>
-
- <listitem><para>De m&ecirc;me, des utilitaires essentiels comme
- <command/mount/ peuvent aussi &ecirc;tre inutilisables,
- auquel cas <filename>/</filename>, <filename>/usr</filename> et ainsi
- de suite, ne peuvent plus &ecirc;tre mont&eacute;s. Il y a peu de chances
- que cela arrive si vous &ecirc;tes sur la branche -stable, mais c'est plus
- probable sur la branche -current apr&egrave;s des modifications
- importantes.</para></listitem>
-
- <listitem>
- <para>Les LKMs ("Loadable Kernel Modules"&nbsp;-&nbsp;modules du noyau &agrave; chargement
- dynamique) reconstruits en m&ecirc;me temps que &ldquo;world&rdquo;
- peuvent "planter" un noyau plus ancien.</para>
- </listitem>
- </itemizedlist>
-
- <para>Pour toutes ces raisons, il vaut mieux recompiler et installer un
- nouveau noyau avant de red&eacute;marrer.</para>
-
- <para>Vous devez recompiler le noyau apr&egrave;s avoir termin&eacute;
- <userinput>make world</userinput> (ou <userinput>make
- installworld</userinput>). Si vous ne le faites pas (peut-&ecirc;tre
- voulez-vous vous assurer que le noyau compile avant de mettre &agrave;
- jour le syst&egrave;me), vous pourriez avoir des probl&egrave;mes. Cela parce que
- votre commande <command>config</command> n'est pas &agrave; niveau
- avec les sources du noyau.</para>
-
- <para>Dans ce cas, ex&eacute;cutez:
-
- <informalexample>
- <screen><prompt/#/ <userinput>/usr/obj/usr/src/usr.sbin/config <replaceable>NOM_DU_NOYAU</replaceable></userinput></screen>
- </informalexample>
-
- pour recompiler le noyau avec la nouvelle version de
- <command>config</command>. Cela ne marchera peut-&ecirc;tre pas &agrave; tous les
- coups. Il est recommand&eacute; d'en finir avec
- <userinput>make world</userinput> (ou
- <userinput>make installworld</userinput>) avant de compiler un nouveau
- noyau.</para>
- </sect1>
-
- <sect1>
- <title/Red&eacute;marrez/
-
- <para>Vous en avez fini. Apr&egrave;s avoir v&eacute;rifi&eacute; que tout semble &ecirc;tre en
- place, vous pouvez maintenant red&eacute;marrez votre syst&egrave;me. Un simple
- <citerefentry>
- <refentrytitle>fastboot</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> devrait suffire.</para>
-
- <informalexample>
- <screen><prompt/#/ <userinput>fastboot</userinput></screen>
- </informalexample>
- </sect1>
-
- <sect1>
- <title>C'est fini</title>
-
- <para>Vous devriez maintenant avoir mis &agrave; jour avec succ&egrave;s votre syst&egrave;me
- FreeBSD.
- F&eacute;licitations.</para>
-
- <para>Vous aurez peut-&ecirc;tre de petits probl&egrave;mes si des d&eacute;tails vous
- ont &eacute;chapp&eacute;s. Par
- exemple, il m'est arriv&eacute; d'effacer le fichier
- <filename>/etc/magic</filename> au moment de la mise &agrave; jour de
- <filename>/etc</filename>, de ce fait, la commande
- <command>file</command> ne marchait plus. Un petit moment de r&eacute;flexion
- et j'ai trouv&eacute; que:
-
- <informalexample>
- <screen><prompt/#/ <userinput>cd /usr/src/usr.bin/file</userinput>
-<prompt/#/ <userinput/make all install/</screen>
- </informalexample>
-
- suffisait &agrave; r&eacute;gler ce probl&egrave;me.</para>
- </sect1>
-
- <sect1>
- <title/Questions?/
-
- <sect2>
- <title/Dois-je refaire le monde &agrave; chaque &eacute;volution?/
-
- <para>Il n'y a pas de r&eacute;ponse toute faite &agrave; cette question, tout d&eacute;pend
- de la nature des &eacute;volutions. Je viens juste, par exemple, d'ex&eacute;cuter
- CVSup, et les fichiers suivants ont &eacute;t&eacute; modifi&eacute;s depuis ma derni&egrave;re
- recompilation:</para>
-
- <informalexample>
-<screen><filename>src/games/cribbage/instr.c</filename>
-<filename>src/games/sail/pl_main.c</filename>
-<filename>src/release/sysinstall/config.c</filename>
-<filename>src/release/sysinstall/media.c</filename>
-<filename>src/share/mk/bsd.port.mk</filename></screen>
- </informalexample>
-
- <para>Il n'y a pas l&agrave; mati&egrave;re &agrave; ce que je recompile mon syst&egrave;me. Je
- vais simplement aller dans les bons sous-r&eacute;pertoires et ex&eacute;cuter
- <command/make all
- install/, et c'est &agrave; peu pr&egrave;s tout. Mais s'il y a des &eacute;volutions
- importantes, par
- exemple sur <filename>src/lib/libc/stdlib</filename> alors ou je
- referais, le monde, ou je recompilerais au moins toutes les parties
- du syst&egrave;me qui sont li&eacute;es statiquement
- (de m&ecirc;me que tout ce que je pourrais avoir ajout&eacute; qui serait li&eacute;
- statiquement).</para>
-
- <para>En fin de journ&eacute;e, c'est &agrave; vous de voir.
- Vous pr&eacute;f&eacute;rerez peut-&ecirc;tre recompiler votre syst&egrave;me tous les quinze
- jours, et laisser les modifications s'empiler pendant ces quinze jours.
- Ou bien vous pr&eacute;f&eacute;rez ne recompiler que ce qui a chang&eacute; et vous faire
- confiance pour rep&eacute;rer ce qui en d&eacute;pend.</para>
-
- <para>Et, bien s&ucirc;r, cela d&eacute;pend de la fr&eacute;quence avec laquelle vous voulez
- faire vos mises &agrave; jour, et de si vous &ecirc;tes sur la branche -stable ou
- sur la branche -current.</para>
- </sect2>
-
- <sect2>
- <title>Ma compilation &eacute;choue avec de nombreuses erreurs "signal 12"
- (ou tout autre num&eacute;ro de signal)</title>
-
- <para>Cela indique g&eacute;n&eacute;ralement un probl&egrave;me mat&eacute;riel. (Re)faire le
- monde est un bon moyen de mettre votre mat&eacute;riel sous pression, et
- mettra souvent en &eacute;vidence des d&eacute;faillances de la m&eacute;moire vive. Cela se
- manifeste normalement de soi-m&ecirc;me: le compilation &eacute;choue en recevant
- de myst&eacute;rieux signaux.</para>
-
- <para>Vous pouvez vous en assurer si vous relancer la compilation
- et qu'elle &eacute;choue en un endroit diff&eacute;rent.</para>
-
- <para>Dans ce cas, vous ne pouvez gu&egrave;re faire autre chose que
- d'intervertir les diff&eacute;rents composants de votre mat&eacute;riel pour d&eacute;terminer
- lequel est en cause.</para>
- </sect2>
-
- <sect2>
- <title>Puis-je d&eacute;truire <filename>/usr/obj</filename> apr&egrave;s avoir
- fini?</title>
-
- <para>Tout d&eacute;pend de comment vous voulez refaire le monde par
- la suite.</para>
-
- <para><filename>/usr/obj</filename> contient tous les fichiers objets
- g&eacute;n&eacute;r&eacute;s &agrave; la compilation. Normalement, une des premi&egrave;res &eacute;tapes de
- &ldquo;make world&rdquo; est de supprimer ce r&eacute;pertoire
- et de repartir &agrave; z&eacute;ro. Dans ce cas, conserver ce r&eacute;pertoire
- <filename>/usr/obj</filename> apr&egrave;s en avoir termin&eacute; ne sert pas &agrave;
- grand chose, alors que vous &eacute;conomiseriez pas mal d'espace disque
- (au jour d'aujourd'hui
- environ 150Mo).</para>
-
- <para>N&eacute;anmoins, si vous savez ce que vous faites, vous pouvez faire en
- sorte que &ldquo;make
- world&rdquo; saute cette &eacute;tape. Les reconstructions ult&eacute;rieures seront
- beaucoup plus rapides, car la plupart des sources n'auront pas besoin
- d'&ecirc;tre recompil&eacute;s. Le revers de la m&eacute;daille est que des
- probl&egrave;mes de d&eacute;pendance subtils peuvent se manifester, provoquant
- l'&eacute;chec de votre recompilation de mani&egrave;re &eacute;trange. Cela g&eacute;n&egrave;re
- fr&eacute;quemment du bruit sur les listes de diffusion de FreeBSD,
- quand quelqu'un se plaint que sa mise &agrave; jour a &eacute;chou&eacute;, sans r&eacute;aliser
- qu'il a tent&eacute; de br&ucirc;ler les &eacute;tapes.</para>
-
- <para>Si vous aimez vivre dangereusement, passez le param&egrave;tre
- &ldquo;NOCLEAN&rdquo; &agrave; <command/make/, comme suit:
-
- <informalexample>
- <screen><prompt/#/ <userinput>make -DNOCLEAN world</userinput></screen>
- </informalexample>
- </para>
- </sect2>
-
- <sect2>
- <title>Une recompilation interrompue peut-elle &ecirc;tre reprise?</title>
-
- <para>Tout d&eacute;pend de jusqu'o&ugrave; vous &ecirc;tes all&eacute; avant de rencontrer un
- probl&egrave;me.</para>
-
- <para><emphasis>En g&eacute;n&eacute;ral</emphasis> (mais ce n'est pas une r&egrave;gle
- absolue) &ldquo;make world&rdquo; cr&eacute;e de nouveaux exemplaires
- des utilitaires de base (comme <command>gcc</command>, et
- <command>make</command>) et des biblioth&egrave;ques syst&egrave;me. Ces outils et
- biblioth&egrave;ques sont ensuite install&eacute;s. Ils sont ensuite utilis&eacute;s
- pour se reconstruire eux-m&ecirc;mes, et install&eacute;s de nouveau. Le syst&egrave;me
- entier (y compris maintenant les outils usuels, comme
- <command>ls</command> ou
- <command>grep</command>) est ensuite recompil&eacute; avec les nouveaux
- outils et biblioth&egrave;ques de base.</para>
-
- <para>Si vous en &ecirc;tes &agrave; cette derni&egrave;re &eacute;tape, et que vous le savez
- (parce que vous avez consult&eacute; les r&eacute;sultats que vous avez enregistr&eacute;s)
- alors vous pouvez (avec une bonne chance de r&eacute;ussite) faire:
-
- <informalexample>
- <screen><emphasis>&hellip; r&eacute;gler le probl&egrave;me &hellip;</emphasis>
-<prompt/#/ <userinput>cd /usr/src</userinput>
-<prompt/#/ <userinput/make -DNOCLEAN all/
- </screen>
- </informalexample>
-
- qui ne d&eacute;truira pas les r&eacute;sultats du travail qu'a d&eacute;j&agrave; effectu&eacute;
- &ldquo;make world&rdquo;.</para>
-
- <para>Si vous voyez le message :
-
-<screen>
---------------------------------------------------------------
- Building everything..
---------------------------------------------------------------
-</screen>
-
- dans les comptes-rendus de &ldquo;make world&rdquo;, cette fa&ccedil;on de
- proc&eacute;der est probablement s&ucirc;re.</para>
-
- <para>Si vous ne voyez pas ce message, ou doutez de vous, alors prudence
- est m&egrave;re de s&ucirc;ret&eacute;, et il vaut mieux tout reprendre depuis le
- d&eacute;but.</para>
- </sect2>
-
- <sect2>
- <title/Puis-je utiliser une seule machine de <emphasis/r&eacute;f&eacute;rence/ pour
- mettre &agrave; jour plusieurs machines (NFS)?/
-
- <para>On pose souvent la question sur les listes de diffusion de FreeBSD
- de savoir s'il est possible de tout compiler sur une seule machine
- puis d'installer les r&eacute;sultats de cette compilation sur d'autres
- machines du r&eacute;seau avec <command/make install/.</para>
-
- <para>C'est quelque chose que je n'ai jamais fait, aussi les indications
- qui suivent m'ont-elles &eacute;t&eacute; donn&eacute;es par d'autres ou d&eacute;duites des
- <filename>Makefile</filename>s.</para>
-
- <para>La marche exacte &agrave; suivre d&eacute;pend de votre version de FreeBSD.</para>
-
- <note>
- <para>Vous devrez encore mettre &agrave; jour <filename>/etc</filename> et
- <filename>/dev</filename> sur les machines cibles apr&egrave;s cette
- &eacute;tape.</para>
- </note>
-
- <sect3>
- <title>Version 2.1.7 et ant&eacute;rieures</title>
-
- <para>Dans un message adress&eacute; &agrave; questions@freebsd.org,
- Antonio Bemfica a sugg&eacute;r&eacute; la m&eacute;thode suivante:</para>
-
-<screen>
-Date: Thu, 20 Feb 1997 14:05:01 -0400 (AST)
-From: Antonio Bemfica &lt;bemfica@militzer.me.tuns.ca&gt;
-To: freebsd-questions@freebsd.org
-Message-ID: &lt;Pine.BSI.3.94.970220135725.245C-100000@militzer.me.tuns.ca&gt;
-
-Josef Karthauser a demand&eacute;:
-
-&gt; Quelqu'un a-t-il la bonne m&eacute;thode pour mettre &agrave; jour
-&gt; les machines d'un r&eacute;seau?
-
-D'abord <command>make world</command>, etc... sur votre machine de r&eacute;f&eacute;rence
-Ensuite, montez <filename>/</filename> and <filename>/usr</filename> sur la machine distante:
-
-machine_de_r&eacute;f&eacute;rence% mount machine_distante:/ /mnt
-machine_de_r&eacute;f&eacute;rence% mount machine_distante:/usr /mnt/usr
-
-Ensuite, faites <command>make install</command> avec <filename>/mnt</filename> comme cible:
-
-machine_de_r&eacute;f&eacute;rence% make install DESTDIR=/mnt
-
-R&eacute;p&eacute;tez cela pour chaque machine de votre r&eacute;seau.
-Cela marche tr&egrave;s bien dans mon cas.
-
-Antonio
-</screen>
-
- <para>Ce m&eacute;canisme ne fonctionne (autant que je sache) que si
- vous pouvez &eacute;crire sur <filename>/usr/src</filename> sur le serveur
- NFS, car ce devait &ecirc;tre la cible d'&ldquo;install&rdquo; avec la
- version 2.1.7 et les pr&eacute;c&eacute;dentes.</para>
- </sect3>
-
- <sect3>
- <title>Version 2.2.0 and ult&eacute;rieures</title>
-
- <para>Entre les versions 2.1.7 et 2.2.0 la cible
- &ldquo;reinstall&rdquo; a &eacute;t&eacute; introduite. Vous pouvez utiliser
- la m&eacute;thode d&eacute;crite ci-dessus pour
- la version 2.1.7, en rempla&ccedil;ant &ldquo;install&rdquo; par
- &ldquo;reinstall&rdquo;.</para>
-
- <para>Cela <emphasis>ne demande plus</emphasis> de droits d'&eacute;criture
- sur le r&eacute;pertoire <filename>/usr/src</filename> du serveur NFS.</para>
- <note>
- <para>Un bogue est apparu avec cette cible entre les versions
- 1.68 et 1.107 du <filename>Makefile</filename>, qui impliquait
- qu'il <emphasis>fallait</emphasis>
- avoir les droits d'&eacute;criture. Ce bogue a &eacute;t&eacute; corrig&eacute; avant la
- diffusion de la version 2.2.0 de FreeBSD, mais peut encore poser
- probl&egrave;me si vous avez un vieux serveur sous -stable de cette
- &eacute;poque.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Version 2.2.5 et ult&eacute;rieure</title>
-
- <para>Comme d&eacute;crit plus haut, les cibles &ldquo;buildworld&rdquo; et
- &ldquo;installworld&rdquo; peuvent &ecirc;tre employ&eacute;es pour recompiler
- sur une machine, puis monter par NFS
- <filename>/usr/src</filename> et <filename>/usr/obj</filename> sur
- la machine distante et y installer le nouveau syst&egrave;me.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Comment puis-je acc&eacute;l&eacute;rer <command>make world</command>?</title>
-
- <itemizedlist>
- <listitem>
- <para>Passez en mode mono-utilisateur.</para>
- </listitem>
-
- <listitem>
- <para>Mettez les r&eacute;pertoires <filename>/usr/src</filename> et
- <filename>/usr/obj</filename> sur des syst&egrave;mes de fichiers
- et des disques diff&eacute;rents. Si possible, installez ces disques
- sur des contr&ocirc;leurs diff&eacute;rents.</para>
- </listitem>
-
- <listitem>
- <para>Mieux encore, mettez ces syst&egrave;mes de fichiers sur
- plusieurs disques et utilisez &ldquo;ccd&rdquo;
- ("concatenated disk driver" = pilote de disques concat&eacute;n&eacute;s).</para>
- </listitem>
-
- <listitem>
- <para>Ne compilez pas les biblioth&egrave;ques profil&eacute;es
- (mettez &ldquo;NOPROFILE=true&rdquo; dans
- <filename>/etc/make.conf</filename>). Vous n'en avez certainement
- pas besoin.</para>
- </listitem>
-
- <listitem>
- <para>Dans <filename>/etc/make.conf</filename>, positionnez aussi
- &ldquo;CFLAGS&rdquo; &agrave; quelque chose comme &ldquo;-O -pipe&rdquo;.
- L'optimisation &ldquo;-O2&rdquo; est bien plus lente, et la
- diff&eacute;rence d'optimisation entre &ldquo;-O&rdquo; et
- &ldquo;-O2&rdquo; est en g&eacute;n&eacute;ral n&eacute;gligeable. &ldquo;-pipe&rdquo;
- dit au compilateur d'utiliser des tuyaux (&ldquo;pipes&rdquo;)
- &agrave; la place de fichiers, ce qui &eacute;conomise des acc&egrave;s disque
- (mais utilise plus de m&eacute;moire).</para>
- </listitem>
-
- <listitem>
- <para>Donnez l'option <option>-j&lt;n&gt;</option> au compilateur
- (Si vous avez une version suffisamment r&eacute;cente de FreeBSD)
- pour ex&eacute;cuter plusieurs programmes en parall&egrave;le. Cela am&eacute;liore
- les choses, que vous ayez une machine mono- ou
- multi-processeurs. </para>
- </listitem>
-
- <listitem><para>Le syst&egrave;me de fichiers qui contient
- <filename>/usr/src</filename> peut &ecirc;tre mont&eacute; (ou remont&eacute;) avec l'option
- &ldquo;noatime&rdquo;. De cette mani&egrave;re, les dates de dernier acc&egrave;s
- aux fichiers ne sont pas enregistr&eacute;es sur disque. Vous n'avez de toute
- fa&ccedil;on probablement pas besoin de cette information.
-
- <note>
- <para>&ldquo;noatime&rdquo; existe &agrave; partir de la version
- 2.2.0.</para>
- </note>
-
- <informalexample>
- <screen><prompt/#/ <userinput>mount -u -o noatime /usr/src</userinput></screen>
- </informalexample>
-
- <note>
- <para>Cet exemple suppose que <filename>/usr/src</filename>
- constitue &agrave; lui seul un syst&egrave;me de fichiers. Si ce n'est
- pas le cas (s'il fait partie de
- <filename>/usr</filename> par exemple) vous devez indiquez
- le point de montage de ce syst&egrave;me de fichiers, et non
- <filename>/usr/src</filename>.</para>
- </note></para>
- </listitem>
-
- <listitem><para>Le syst&egrave;me de fichiers o&ugrave; se trouve
- <filename>/usr/obj</filename>
- peut &ecirc;tre mont&eacute; (ou remont&eacute;) avec l'option &ldquo;async&rdquo;.
- Les &eacute;critures sur disque se font alors de fa&ccedil;on asynchrone. En
- d'autres termes, le programme reprend imm&eacute;diatement la main,
- mais l'&eacute;criture se fait quelques secondes apr&egrave;s. Les acc&egrave;s
- disque sont ainsi group&eacute;s, et le gain en performances est
- spectaculaire.</para>
-
- <note>
- <para>Rappelez-vous que cette option rend votre syst&egrave;me de
- fichiers plus fragile. Avec cette option, les risques sont accrus
- qu'en cas de coupure d'alimentation, le syst&egrave;me de fichiers soit
- irr&eacute;cup&eacute;rable quand la machine red&eacute;marrera.</para>
-
- <para>S'il n'y a que <filename>/usr/obj</filename> sur ce syst&egrave;me
- de fichiers, ce n'est pas un probl&egrave;me. S'il contient des
- informations
- plus sensibles, assurez-vous que vos sauvegardes soient &agrave; jour
- avant d'activer cette option.</para>
- </note>
-
- <para><informalexample>
- <screen><prompt/#/ <userinput>mount -u -o async /usr/obj</userinput></screen>
- </informalexample>
-
- <note>
- <para>Comme auparavant, si <filename>/usr/obj</filename> ne
- constitue pas un syst&egrave;me de fichiers en soit,
- remplacez-le dans l'exemple par le nom du point
- de montage qui convient.</para>
- </note></para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="translations">
- <title>Traductions</title>
-
- <sect2>
- <title>Document original</title>
- <para>L'original de ce document se trouve sur
- <ulink url="http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html">http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html</ulink>.</para>
- </sect2>
- <sect2>
- <title>Japonais</title>
-
- <para>MAEKAWA Masahide a traduit ce document en
- Japonais. Sa traduction est disponible &agrave; l'adresse <ulink
- url="http://www.rr.iij4u.or.jp/~bishop/FreeBSD/mw.html">http://www.rr.iij4u.or.jp/~bishop/FreeBSD/mw.html</ulink>.</para>
- </sect2>
- </sect1>
-
- <sect1 id="contributors">
- <title>Contributions</title>
-
- <para>Les personnes suivantes ont contribu&eacute; d'une fa&ccedil;on ou d'une autre &agrave; la
- r&eacute;daction de ce document. Soit directement en sugg&eacute;rant des modifications
- ou des am&eacute;liorations ou en signalant des erreurs, soit par leurs messages
- sur les listes de diffusion de FreeBSD, o&ugrave; j'ai puis&eacute; sans scrupule de
- l'information. Mes remerciements &agrave; tous.</para>
-
- <itemizedlist>
- <listitem>
- <para>Antonio Bemfica, <ulink url="mailto:bemfica@militzer.me.tuns.ca">bemfica@militzer.me.tuns.ca</ulink></para>
- </listitem>
-
- <listitem>
- <para>Sue Blake, <ulink url="mailto:sue@welearn.com.au">sue@welearn.com.au</ulink></para>
- </listitem>
-
- <listitem>
- <para>Brian Haskin, <ulink url="mailto:haskin@ptway.com">haskin@ptway.com</ulink></para>
- </listitem>
- <listitem>
- <para>Kees Jan Koster, <ulink url="mailto:kjk1@ukc.ac.uk">kjk1@ukc.ac.uk</ulink></para>
- </listitem>
-
- <listitem>
- <para>A Joseph Kosy, <ulink url="mailto:koshy@india.hp.com">koshy@india.hp.com</ulink></para>
- </listitem>
-
- <listitem>
- <para>Greg Lehey, <ulink url="mailto:grog@lemis.com">grog@lemis.com</ulink></para>
- </listitem>
-
- <listitem>
- <para>Wes Peters, <ulink
- url="mailto:softweyr@xmission.com">softweyr@xmission.com</ulink></para>
- </listitem>
-
- <listitem>
- <para>Joseph Stein, <ulink url="mailto:joes@wstein.com">joes@wstein.com</ulink></para>
- </listitem>
-
- <listitem>
- <para>Studded, <ulink url="mailto:studded@dal.net">studded@dal.net</ulink></para>
- </listitem>
-
- <listitem>
- <para>Axel Thimm <ulink url="mailto:Axel.Thimm@physik.fu-berlin.de">Axel.Thimm@physik.fu-berlin.de</ulink></para>
- </listitem>
-
- <listitem>
- <para>Matthew Thyer <ulink url="mailto:Matthew.Thyer@dsto.defence.gov.au">Matthew.Thyer@dsto.defence.gov.au</ulink></para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/mh/Makefile b/fr_FR.ISO8859-1/articles/mh/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/mh/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/mh/article.sgml b/fr_FR.ISO8859-1/articles/mh/article.sgml
deleted file mode 100644
index 26763e00a3..0000000000
--- a/fr_FR.ISO8859-1/articles/mh/article.sgml
+++ /dev/null
@@ -1,744 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.2
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-<article id="mh" LANG="fr">
- <artheader>
- <title>Introduction &agrave; MH</title>
- <authorgroup>
- <author>
- <firstname>Matt</firstname>
- <surname>Midboe</surname>
- <affiliation>
- <address><email>matt@garply.com</email></address>
- </affiliation>
- </author>
- </authorgroup>
- <pubdate>v1.0, 16 Janvier 1996</pubdate>
- &artheader.copyright;
- <abstract>
- <para>Ce document est une introduction sur la fa&ccedil;on d'utiliser MH
- sous FreeBSD.</para>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.gioria;
- </abstract>
- </artheader>
- <sect1>
- <title>Introduction</title>
- <para>MH d&eacute;buta en 1977 dans la soci&eacute;t&eacute; RAND
- Corporation, o&ucirc; la philosophie MH fut d&eacute;velopp&eacute;e. MH
- n'est pas seulement un programme monolithique de courrier
- &eacute;lectronique mais plut&ocirc;t une philosophie sur la meilleure
- fa&ccedil;on de d&eacute;velopper des outils permettant de lire son
- courrier. Les d&eacute;veloppeurs de MH ont fourni un logiciel superbe
- tout en adh&eacute;rent au concept <acronym>KISS</acronym>&nbsp;:
- &ldquo;Keep It Simple Stupid&rdquo; (Rester le plus simple
- possible).</para>
- <para>Plut&ocirc;t que de disposer d'un seul et complexe logiciel pour
- lire, envoyer et g&eacute;rer ses courriers &eacute;lectroniques, ils
- ont &eacute;crit une multitude de petits programmes
- sp&eacute;cialis&eacute;s. Certains aimeront MH pour cette
- sp&eacute;cificit&eacute;, d'autres non. Chaque outil de MH effectue une
- action, et l'effectue tr&egrave;s bien.</para>
- <para>En plus de tous les outils de gestion des courriers
- &eacute;lectroniques, chaque outil MH comporte un m&eacute;canisme de
- configuration uniforme. En fait, si vous ne savez pas vraiment comment
- marche un outil, ou de quels arguments il dispose, vous vous en sortez
- g&eacute;n&eacute;ralement tr&egrave;s facilement. Toutes les commandes
- de MH g&egrave;rent de fa&ccedil;on identique les fichiers de
- configuration et les arguments de la ligne de commande. La chose la plus
- importante est de se souvenir que vous pouvez toujours passer l'option
- <option>-help</option> &agrave; une commande pour afficher toutes les
- options disponibles.</para>
- <para>Pour commencer, assurez vous que vous avez install&eacute; les
- programmes de MH sur votre machine. Si vous disposez d'un CDROM vous
- devez pouvoir l'installer en ex&eacute;cutant la commande
- suivante&nbsp;:</para>
- <informalexample>
-<screen>#<userinput>>pkg_add /cdrom/packages/mh-6.8.3.tgz</userinput></screen>
- </informalexample>
- <para>Vous verrez alors la cr&eacute;ation d'un r&eacute;pertoire
- <filename>/usr/local/lib/mh</filename> ainsi que l'ajout de
- diff&eacute;rents binaires dans le r&eacute;pertoire
- <filename>/usr/local/bin</filename>. Si vous pr&eacute;f&eacute;rez le
- compiler vous m&ecirc;me, vous pouvez t&eacute;l&eacute;charger les
- sources en ftp anonyme depuis
- <ulink url="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</ulink> ou
- <ulink url="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para>
- <para>Cette introduction n'est pas une explication d&eacute;taill&eacute;e
- de la fa&ccedil;on de fonctionner de MH. Elle vous permettra juste
- d&eacute;marrer sur la route de la fa&ccedil;on la plus rapide de lire vos emails. Vous devrez
-surement consulter les pages de manuels des diff&eacute;rentes commandes par
-la suite. De m&ecirc;me il serait bon de lire le <ulink
-URL="http://www.cis.ohio-state.edu/hypertext/faq/usenet/mh-faq/part1/faq.html">FAQ
-sur MH</ulink> et de vous abonnez au forum de discussion <ulink
-URL="news:comp.mail.mh">comp.mail.mh</ulink>. Cependant la meilleur
-ressource sur MH est le livre &eacute;crit par Jerry Peek aux &eacute;ditions
-O'Reilly et Associates.</para>
-</sect1>
-<sect1>
-<title>Lire le courrier</title>
-<para>Ce chapitre explique les commandes <command>inc</command>,
-<command>show</command>, <command>scan</command>, <command>next</command>,
-<command>prev</>, <command>rmm</command>, <command>rmf</command>, and
-<command>msgchk</command>. Le meilleur atout de MH est la consistence de
-l'interface entre les diff&eacute;rents programmes. La chose la plus
-importante &agrave; retenir lorsque l'on utilise les diff&eacute;rentes commandes,
-est la fa&ccedil;on de sp&eacute;cifier une liste de messages. Dans le cas de la
-commande <command>inc</command> cela n'a aucun sens mais avec des commandes
-comme <command>show</command> c'est plus qu'utile.</para>
-
-<para>Une liste de messages consiste en quelque chose comme <parameter>23 20
-16</parameter>, qui corresponds aux messages 23, 20 et 16. C'est vraiment tr&egrave;s
-simple, mais vous pouvez avoir des choses plus utiles comme
-<parameter>23-30</parameter> correspondant &agrave; tous les messages entre le message
-23 et le message 30. Vous pouvez aussi sp&eacute;cifier <parameter>cur:10</parameter>,
-qui correspond au message courant et aux 9 messages suivants. Les
-messages <parameter>cur</parameter><parameter>last</parameter>, et <parameter>first</parameter>
-sont des messages sp&eacute;ciaux ref&eacute;rant au message courant, dernier
-message, et premier message du dossier.</para>
-
-<sect2 id="inc">
-<title><command>inc</command>, <command>msgchk</command>&mdash;lire ou v&eacute;rifier vos
-messages</title>
-
-<para>Si vous tapez la commande <userinput>inc</userinput> sans arguments, vous
-d&eacute;butez sur la bonne voie pour lire votre courrier avec MH. La
-premi&egrave;re fois ou vous utilisez <command>inc</command>, il configurera votre
-compte pour utilisez toutes les valeurs par d&eacute;faut de MH et vous
-demandera la cr&eacute;ation d'un r&eacute;pertoire Mail. Si vous avez des messages
-et attente de t&eacute;l&eacute;chargement, vous verrez quelque chose qui peut
-ressembler &agrave; ceci:
-<informalexample>
-<screen> 29 01/15 Doug White Re: Another Failed to boot problem&lt;&lt;On Mon, 15 J
- 30 01/16 "Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
- 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
- 32 01/16 "Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
- 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa</screen>
-</informalexample>
-Vous obtenez la m&ecirc;me vue que si vous utilisiez la commande <command>scan</command> (voir
-<xref linkend="scan">). Si vous lancez <command>inc</command> sans arguments
-, cela vous affiche juste le courrier qui vous est destin&eacute;.</para>
-
-<para>Enorm&eacute;ment de personnes utilisent le protocole POP pour lire
-leur mail. MH sait utiliser le protocole POP pour rapatrier les emails
-sur votre poste. Vous devez passer plusieurs arguments &agrave;
-<command>inc</command> pour cela.
-<informalexample>
-<screen>tempest% <userinput>inc -host mail.pop.org -user <replaceable>NomUtilisateur</replaceable> -norpop</userinput></screen>
-</informalexample>
-Cela invoque la commande <command>inc</command> en lui disant d'aller
-t&eacute;l&eacute;charger le courrier sur le serveur <parameter>mail.pop.org</parameter>,
-avec comme nom d'utilisateur <replaceable>NomUtilisateur</replaceable>. L'option
-<option>-norpop</option> demande &agrave; la commande <command>inc</command> de
-t&eacute;l&eacute;charger le courrier en clair suivant le protocole POP3. MH
-supporte plusieurs variantes du protocole POP3. Vous n'utiliserez pas
-dans la plupart des cas les autres variantes. Vous pouvez effectuer
-des taches plus complexes avec <command>inc</command> comme, auditer des
-fichiers ou parcourir des fichiers formatt&eacute;s
-</para>
-<para>La commande <command>msgchk</command> vous permet de savoir si
-vous avez ou non de nouveaux messages dans votre
-boite.<command>msgchk</command> accepte les m&ecirc;mes options
-,<option>-host</option> et <option>-user</option>, que la commande
-<command>inc</command>.</para>
-</sect2>
-<sect2 id="show">
-<title><command>show</command>, <command>next</command> et <command>prev</command>&mdash;afficher un message et se d&eacute;placer dans une boite.</title>
-<para><command>show</command> vous permet de visualiser un courrier de votre boite. Comme <command>inc</command>,<command>show</command> est une commande assez franche.Si vous tapez <userinput>show</userinput> sans param&egrave;tres elle affiche le message courant. Vous pouvez aussi demander l'affichage de messages particuliers en donnant son num&eacute;ro &agrave; <command>show</command>:
-<informalexample>
-<screen>tempest% <userinput>show 32 45 56</></screen>
-</informalexample>
-Cela affichera les fichiers num&eacute;ros 32 45 56 &agrave; la suite l'un de
-l'autre. Si vous changez rien &agrave; la configuration par d&eacute;faut,
-<command>show</command> ne fera rien d'autre qu'un
-<command>more</command> sur le fichier contenant votre message.</para>
-
-<para><command>next</command> s'utilise pour se d&eacute;placer au message
-suivant et <command>prev</command> pour revenir au message
-pr&eacute;cedent. Ces deux commandes executent automatiquement un
-<command>show</command> ce qui vous permet de lire automatiquement le
-message suivant ou pr&eacute;c&eacute;dant.</para>
-</sect2>
-
-<sect2 id="scan">
-<title><command>scan</command>&mdash;Afficher un r&eacute;sum&eacute; de vos
-messages</title>
-<para><command>scan</command> affiche un bref descriptif de tous les
-messages de votre r&eacute;pertoire courant. Voici un exemple d'affichage de
-la commande <command>show</command>:
-<informalexample>
-<screen> 30+ 01/16 "Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
- 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
- 32 01/16 "Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
- 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa</screen>
-</informalexample>
-Comme tout dans MH, l'affichage est compl&egrave;tement configurable. Ce qui
-est fournit dans l'exemple ci-dessus est l'affichage par d&eacute;faut. Il
-vous permet de visualiser le num&eacute;ro du message, la date d'envoi,
-l'envoyeur, le sujet et une partie du d&eacute;but du message. Le caract&egrave;re
-<literal>+</literal> vous indique le message courant donc si vous
-tapez la commande <command>show</command> vous visualiserez ce
-message.</para>
-<para>Une option tr&egrave;s utile de <command>scan</command> est l'option
-<option>-reverse</option>. Cette option permet de lister l'ensemble de
-vos messages en affichant en premier le message ayant le num&eacute;ro le
-plus &eacute;lev&eacute;. Une autre option tr&egrave;s interessante de
-<command>scan</command> lui permet de lire les donn&eacute;es depuis un
-fichier. Si vous d&eacute;sirez parcourir votre boite aux lettres de courrier
-entrant sans avoir &agrave; lancer la commande <command>inc</command>, il
-vous suffit de faire <command>scan -file
-/var/mail/<replaceable>nom_d_utilisateur</replaceable></command>. Cela
-peut etre fait sur n'importe quel fichier au format
-<database>mbox</database>.</para>
-</sect2>
-
-<sect2 id="rmm">
-<title><command>rmm</command> et <command>rmf</command>&mdash; Effacer
-le message courant ou le dossier</title>
-
-<para><command>rmm</command> est utilis&eacute; pour effacer un message. Par
-d&eacute;faut le message n'est pas vraiment d&eacute;truit mais renomm&eacute; en un
-fichier dont le nom est ignor&eacute; par les commandes de MH. Vous devrez
-effacer physiquement de fa&ccedil;on p&eacute;riodique les messages
-&ldquo;effac&eacute;s&rdquo;.</para>
-<para>La commande <command>rmf</command> permet d'effacer un
-dossier. Cela ne renomme pas les fichiers mais les efface du disque
-dur, vous devez donc faire extr&egrave;mement attention lorsque vous
-l'utilisez.</para>
-</sect2>
-<sect2 id="samplereading">
-<title>Un session typique de lecture avec MH</title>
-<para>La premi&egrave;re chose que vous ferez sera de lancer la commande
-<command>inc</command>. Donc sous l'interpr&eacute;teur de commandes tapez
-<command>inc</command> et la touche <keycap>entr&eacute;e</keycap>.
-<informalexample>
-<screen>tempest% <userinput>inc</userinput>
-Incorporating new mail into inbox...
-
- 36+ 01/19 "Stephen L. Lange Request...&lt;&lt;Please remove me as contact for pind
- 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
- 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
-tempest%</screen>
-</informalexample>
-Cela vous permet de visualiser les nouveaux messages rapatri&eacute;s dans
-votre boite aux lettres. La commande suivante a &eacute;x&eacute;cuter est
-<command>show</command> pour vous permettre de les visualiser et de
-vous d&eacute;placer dans votre liste de messages.
-<informalexample>
-<screen>tempest% <userinput>show</>
-Received: by sashimi.wwa.com (Smail3.1.29.1 #2)
- id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST
-Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST)
-From: "Stephen L. Lange" &lt;stvlange@wwa.com&gt;
-To: matt@garply.com
-Subject: Request...
-Message-Id: &lt;Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com&gt;
-Mime-Version: 1.0
-Content-Type: TEXT/PLAIN; charset=US-ASCII
-
-
-Please remove me as contact for pindat.com
-
-tempest% <userinput>rmm</>
-tempest% <userinput>next</>
-Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8
-.6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT
-Message-Id: &lt;199601191756.RAA24416@whydos.lkg.dec.com&gt;
-X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro
-tocol
-To: hsu@clinet.fi
-Cc: hackers@FreeBSD.org
-Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet
- boards)
-In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100."
- &lt;199601182318.AA11772@Sysiphos&gt;
-X-Mailer: exmh version 1.5omega 10/6/94
-Date: Fri, 19 Jan 1996 17:56:40 +0000
-From: Matt Thomas &lt;matt@lkg.dec.com&gt;
-Sender: owner-hackers@FreeBSD.org
-Precedence: bulk
-
-
-This is due to a typo in pcireg.h (to
-which I am probably the guilty party).</screen>
-</informalexample></para>
-<para>La commande <command>rmm</command> efface le message courant et
-la commande <command>next</command> permet de d&eacute;placer le num&eacute;ro du
-message courant au message suivant. Maintenant vous d&eacute;sirez visualiser les
-dix courriers les plus r&eacute;cents, pour choisir lequel vous d&eacute;sirez lire:
-<informalexample>
-<screen>tempest% <userinput>scan last:10</>
- 26 01/16 maddy Re: Testing some stuff&lt;&lt;yeah, well, Trinity has
- 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19
- 28 01/17 Evans A Criswell Re: Hey dude&lt;&lt;&gt;From matt@tempest.garply.com Tue
- 29 01/16 Karl Heuer need configure/make volunteers&lt;&lt;The FSF is looki
- 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)&lt;
- 31 01/18 Bill Lenherr Re: Linux NIS Solaris&lt;&lt;--- On Thu, 18 Jan 1996 1
- 34 01/19 John Fieber Re: Stuff for the email section?&lt;&lt;On Fri, 19 Jan
- 35 01/19 support@foo.garpl [garply.com #1138] parlor&lt;&lt;Hello. This is the Ne
- 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
- 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
-tempest%</screen>
-</informalexample>
-Maintenant vous voulez lire le message num&eacute;ro 27, donc vous
-tapez<userinput>show 27</userinput> et il s'affiche. Comme vous pouvez
-le voir apr&egrave;s ce court exemple MH est tr&egrave;s simple &agrave; utiliser pour
-visualiser et lire votre courrier et est de plus tr&egrave;s intuitif.
-</para>
-</sect2>
-</sect1>
-
-
-<sect1>
-<title>Chercher parmis les messages et les dossiers</title>
-
-<para>Toute personne qui a beaucoup de mails aime &agrave; pouvoir mettre des
-priorit&eacute;s, marquer les messages, les num&eacute;roter de diff&eacute;rentes
-fa&ccedil;ons. MH permet de faire toutes ces taches de fa&ccedil;ons tr&egrave;s simple
-comme d'habitude. Une chose dont nous n'avons pas encore parl&eacute; est le
-concept de dossier. Vous avez surement utilis&eacute; le concept de dossier
-avec d'autres programmes de lecture de courrier &eacute;l&eacute;ctronique. MH a
-aussi des dossiers. MH peut aussi avoir des sous-dossiers de
-dossiers. Un chose que vous devez avoir &agrave; l'esprit quand vous utilisez
-la commande <command>inc</command>, pour la premi&egrave;re fois, est qu'elle
-demande si vous voulez cr&eacute;er le r&eacute;pertoire <filename>Mail</filename>,
-et qu'elle enregistre tout dans ce r&eacute;pertoire. Si vous regardez ce
-qu'il se trouve dans ce r&eacute;pertoire, vous verrez un r&eacute;pertoire
-<filename>inbox</filename>. Ce r&eacute;pertoire comporte tous vos nouveaux
-messages qui n'ont pas encore &eacute;t&eacute; d&eacute;plac&eacute;s dans un autre
-dossier.</para>
-
-<para>Lorsque vous cr&eacute;ez un nouveau dossier, un r&eacute;pertoire est cr&eacute;e
-sous votre r&eacute;pertoire <filename>Mail</filename> et les messages &agrave;
-destination de se dossier sont stock&eacute;s dans ce r&eacute;pertoire. Lorsque un
-nouveau message arrive, il est d&eacute;pos&eacute; dans votre r&eacute;pertoire
-<filename>inbox</filename> avec comme nom le num&eacute;ro du message. Donc
-m&ecirc;me si vous n'avez pas les outils MH pour lire votre courrier,
-vous pouvez utiliser les commandes standards UNIX pour vous d&eacute;placer
-parmis les dossiers et visualiser vos messages. C'est cette simplicit&eacute;
-qui vous donne autant de puissance dans le traitement de vos
-messages.</para>
-
-<para>De la meme fa&ccedil;on ou vous pouvez utiliser une liste de messages,
-comme <parameter>23 16 42</parameter>, avec la plupart des commandes
-MH; il y a une option utilisable avec toutes les commandes MH vous
-permettant de travailler dans le dossier sp&eacute;cifi&eacute;. Si vous essayer
-<command>scan +freebsd</command>, vous allez parcourir le dossier
-<filename>freebsd</filename>. Si vous faites un <command>show +freebsd
-23 16 42</command>, la commande <command>show</command> affichera les
-messages 23, 26 et 42 du dossier <filename>freebsd</filename>. Donc
-souvenez vous que la syntaxe
-<option>+<replaceable>dossier</replaceable></option>. Vous en aurez besoin pour
-lancer les commandes dans les diff&eacute;rents dossiers. Souvenez vous aussi
-que votre dossier de courrier entrant par d&eacute;faut est
-<filename>inbox</filename>, donc en faisant un <command>folder
-+inbox</command> vous aurez la liste de vos nouveaux messages. Bien
-sur grace &agrave; la flexibilit&eacute; de MH, vous pourriez changer ce dossier,
-mais il y a peu d'interet &agrave; le faire.</para>
-
-<sect2>
-<title><command>pick</command>&mdash; recherche par crit&egrave;res dans les
-messages</title>
-<para><command>pick</command> est une des commandes les plus
-compliqu&eacute;es de MH. Je ne saurais pas mieux vous conseiller que d'aller
-voir la page de manuel de
-<citerefentry><refentrytitle>pick</refentrytitle><manvolnum>1</manvolnum></citerefentry>
-pour bien la comprendre. La plus simple fa&ccedil;on de s'en servir est la
-suivante:
-<informalexample>
-<screen>tempest% <userinput>pick -search pci</userinput>
-15
-42
-55
-56
-57</screen>
-</informalexample>
-Cela vous permet de trouver les num&eacute;ros de tous les messages
-comprenant le mot <literal>pci</literal> dans une des lignes du
-message. Vous pouvez ensuite lancer la commande
-<command>show</command> sur ces messages pour les lire ou
-<command>rmm</command> pour les effacer. Vous devrez bien sur lancer
-la commande suivante <command>show 15 42 55-57</command> pour les voir
-tous. Une fa&ccedil;on un peu plus compliqu&eacute;e d'utiliser
-<command>pick</command> serait la suivante:
-<informalexample>
-<screen>tempest% <userinput>pick -search pci -seq pick</userinput>
-5 hits
-tempest% <userinput>show pick</userinput></screen>
-</informalexample>
-Cela vous permet de voir les memes messages que pr&eacute;c&eacute;demment sans vous
-fatiguer. L'option <option>-seq</option> n'est rien de plus qu'une
-abr&eacute;viation de l'option<option>-sequence</option> et la commande
-<command>pick</command> n'est rien de plus qu'une sequence comportant
-les num&eacute;ros des messages v&eacute;rifiant le crit&egrave;re. Vous pouvez aussi
-utiliser la commande <command>rmm pick</command> pour effacer tous les
-messages qui r&eacute;pondent au crit&egrave;re. Le nom de la sequence n'est pas
-signifiant. Si vous relancez la commande <command>pick</command> de
-nouveau, l'ancienne s&eacute;quence sera effac&eacute;e si vous utilisez le meme
-nom.</para>
-
-<para>Si vous n'utilisiez que la commande <command>pick
--search</command>, cela peut prendre plus de temps que de chercher un
-message entre un destinataire et un envoyeur. La commande
-<command>pick</command> dispose donc de certains crit&egrave;res pr&eacute;d&eacute;finis:
-<variablelist>
-
-<varlistentry>
-<term><option>-to</option></term>
-<listitem>
-<para>recherche sur le destinataire</para>
-</listitem>
-</varlistentry>
-
-
-<varlistentry>
-<term><option>-cc</option></term>
-<listitem>
-<para>recherche dans le champ cc du message</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><option>-from</option></term>
-<listitem>
-<para>recherche sur l'exp&eacute;diteur du message</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><option>-subject</option></term>
-<listitem>
-<para>recherche dans le sujet du message</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><option>-date</option></term>
-<listitem>
-<para>recherche par rapport &agrave; la date du message</para>
-</listitem>
-</varlistentry>
-
-
-<varlistentry>
-<term><option>--<replaceable>component</replaceable></option></term>
-<listitem>
-<para>recherche sur un quelconque autre entete. (ex:
-<option>--reply-to</option> pour rechercher dans les entetes reply-to
-des messages)</para>
-</listitem>
-</varlistentry></variablelist></para>
-
-<para>Cela permet d'avoir des requetes de ce type:
-<informalexample>
-<screen>tempest% <userinput>pick -to freebsd-hackers@freebsd.org -seq hackers</userinput></screen>
-</informalexample>
-pour avoir tous les messages envoy&eacute;s &agrave; la liste de diffusion hackers
-de FreeBSD. <command>pick</command> vous permet de grouper de
-diff&eacute;rentes fa&ccedil;on en fonctiondu crit&egrave;re.
-<itemizedlist>
-
-<listitem>
-<para>&hellip; <option>-and</option> &hellip;</para>
-</listitem>
-
-<listitem>
-<para>&hellip; <option>-or</option> &hellip</para>
-</listitem>
-
-<listitem>
-<para><option>-not</option> &hellip;</para>
-</listitem>
-
-<listitem>
-<para><option>-lbrace</option> &hellip; <option>-rbrace</option></para>
-</listitem>
-</itemizedlist>
-Ces options permettent de faire des choses comme ceci:
-<informalexample>
-<screen>tempest% <userinput>pick -to freebsd-hackers -and -cc freebsd-hackers</userinput></screen>
-</informalexample>
-Cela vous permet de retrouver tous les messages envoy&eacute;s &agrave; la liste
-freebsd-hackers ou mis en copie &agrave; cette liste. Les options <option>lbrace</option> et
-<option>rbrace</option> vous permettent de grouper les crit&egrave;res ensemble. Cela peut
-etre util dans certaines situations, comme dans l'exemple suivant:
-<informalexample>
-<screen>tempest% <userinput>pick -lbrace -to freebsd-hackers -and
- -not -cc freebsd-questions -rbrace -and -subject pci</></screen>
-</informalexample></para>
-
-<para>Cet exemple vous permet d'extraire tous les mails destin&eacute;s &agrave; <quote>la
-liste freebsd-hackers (mais qui ne sont pas mis en copie pour la liste
-freebsd-questions) et dont le sujet est pci</quote>. Normalement vous
-vous poseriez la question; mais quelle est la pr&eacute;c&eacute;dence des
-op&eacute;rateurs ? Vous vous rappelez qu'en math&eacute;matiques les expressions
-sont &eacute;valu&eacute;es de gauche &agrave; droite et que la multiplication et la
-division ont plus de poids que les additions et les soustractions. MH
-utilise les memes r&egrave;gles pour la commande <command>pick</command>. Les
-combinaisons peuvent etre tr&egrave;s complexes, donc lisez la page de manuel
-pour plus d'informations. Ce document est juste la pour vous aider &agrave;
-d&eacute;couvrir MH.</para>
-</sect2>
-
-<sect2>
-<title><command>folder</command>, <command>folders</command>,
-<command>refile</command>&mdash; trois programmes utiles pour g&eacute;rer vos
-dossiers.</title>
-
-<para>Il y a trois programmes vous permettant de g&eacute;rer de fa&ccedil;on
-primitive vos dossiers. Le programme <command>folder</command> est
-utilis&eacute; pour changer de dossiers, lister leur contenu. Vous pouvez
-lancer la commande <command>folder
-+<replaceable>dossier2</replaceable></command> et automatiquement,
-vous vous retrouverez dans le dossier
-<replaceable>dossier2</replaceable>. Alors toutes les commandes MH,
-telles que
-<command>comp</command>,<command>repl</command>,<command>scan</command>,
-et <command>show</command> utiliserons le dossier <filename>dossier2</filename>.</para>
-
-<para>Quelques fois lorsque vous lisez et effacez dans messages vous
-avez des <quote>discontinuit&eacute;es</quote> dans vos dossiers. Si vous faites un
-<command>scan</command> vous pouvez voir les messages 34, 35, 36, 43,
-55, 56, 57, 80. Si vous faites un <command>folder -pack</command>,
-cela vous permet de renum&eacute;roter tous vos messages, et vous n'aurez
-plus de disccontinuit&eacute;es. Cela n'efface aucun message. Vous devez donc
-p&eacute;riodiquement faire des <command>rmm</command> sur vos
-messages.</para>
-
-<para>Si vous desirez des statistiques sur vos dossiers, vous pouvez
-faire des <command>folders</command> ou des <command>folder
--all</command> pour obtenir la liste de vos dossiers, combien de
-messages comporte chaque dossier et quel est le message courant dans
-chacun. La ligne de statistique affich&eacute;e est la meme que celle que
-vous avez lorsque vous changez de dossier avec la commande
-<command>folder +dossier2</>. Un exemple de la commande
-<command>folders</command> pourrait etre:
-<informalexample>
-<screen> Folder # of messages ( range ); cur msg (other files)
- announce has 1 message ( 1- 1).
- drafts has no messages.
- f-hackers has 43 messages ( 1- 43).
- f-questions has 16 messages ( 1- 16).
- inbox+ has 35 messages ( 1- 38); cur= 37.
- lists has 8 messages ( 1- 8).
- netfuture has 1 message ( 1- 1).
- out has 31 messages ( 1- 31).
- personal has 6 messages ( 1- 6).
- todo has 58 messages ( 1- 58); cur= 1.
-
- TOTAL= 199 messages in 13 folders.
-</screen>
-</informalexample></para>
-
-<para>La commande <command>refile</command> vous permet de deplacer
-les messages entre les dossiers. Si vous faites un <command>refile 23
-+nouveaudossier</command>, le message 23 sera d&eacute;placer dans le dossier
-<filename>nouveaudossier</filename>. Vous pouvez tout aussi bien faire
-un <command>refile 23 +nouveaudossier/sousdossier1</command> qui
-d&eacute;placera le message 23 dans le un sous
-dossier,<filename>sousdossier1</filename>, du dossier
-<filename>nouveaudossier</filename>. Si vous voulez garder un message
-dans le dossier courant tout en le mettant dans un autre, vous devez
-lancer la commande <command>refile -link 23 +nouveaudossier</command>,
-qui gardera le message dans le dossier <filename>inbox</filename> tout
-en le listant dans le dossier
-<filename>nouveaudossier</filename>. Cela vous permet de r&eacute;aliser
-toutes les choses merveilleuses que vous pouvez faire avec MH.</para>
-</sect2>
-</sect1>
-
-<sect1>
-<title>Envoyer des messages</title>
-<para>L'email est pour beaucoup de gens, comme une rue a double sens,
-vous voudrez donc r&eacute;pondre a certains messages. La fa&ccedil;on qu'emploie MH
-pour envoyer des messages peut etre difficile a comprendre au d&eacute;but,
-mais il permet une &eacute;norme flexibilit&eacute;e.La premi&egrave;re chose que fait MH,
-est de copier un "composant" dans votre file de messages sortant. Un
-"composant" est en fait un squelette de message comportant les entetes
-<filename>To:</filename> et <filename>Subject:</filename>. Le syst&egrave;me
-lance ensuite votre &eacute;diteur favori ou vous pouvez remplir les entetes
-et composer le corps du message sous les pointill&eacute;s dans le
-message. Ensuite vous lancez la commande
-<command>whatnow</command>. Et lorsque vous avez le prompt
-<prompt>What now?</prompt>, vous pouvez r&eacute;pondre par une des commandes
-suivante <command>send</command>, <command>list</command>, <command>edit</command>,
-<command>edit</command>, <command>push</command>, and
-<command>quit</command>. La plupart des commandes pr&eacute;c&eacute;dentes
-s'expliquent d'elles meme. Donc le processus d'envoi de message est le
-suivant; copie du fichier "composant", &eacute;dition de votre message, et
-lancement de la commande <command>whatnow</command> en lui indiquant
-quoi faire de votre message.</para>
-
-<sect2>
-<title><command>comp</>, <command>forw</>,
-<command>reply</>&mdash;composer, faire suivre ou r&eacute;pondre &agrave; un
-message</title>
-
-<para>La commande <command>comp</command> comporte quelques options de
-la ligne de commande int&eacute;ressantes. La plus importante est
-<option>-editor</option>.Lorsque vous installez MH, un programme
-appell&eacute; <command>prompter</command> est utiliser comme &eacute;diteur de
-texte par d&eacute;faut. Ce n'est pas un &eacute;diteur tr&egrave;s interessant. Donc
-lorsque vous composez un message, vous utiliserez surement
-<command>comp -editor /usr/bin/vi</command> ou <command>comp -editor
-/usr/local/bin/pico</command> a la place. Apr&egrave;s avoir lancer
-<emphasis>comp</emphasis>, vous vous trouvez dans votre &eacute;diteur de
-texte favori et vous voyez quelque chose qui ressemble &agrave; ceci:
-<informalexample>
-<screen>To:
-cc:
-Subject:
---------
-</screen>
-</informalexample></para>
-<para>Vous devez ajoutez l'addresse de votre destinataire apres le mot
-<literal>To:</literal>. Vous devez remplir de la meme mani&egrave;re les
-autres entetes, donc vous devez mettre le sujet apr&egrave;s le mot
-<literal>Subject:</literal>. Vous pouvez ensuite ajouter le corps de
-votre message apr&egrave;s les lignes pointill&eacute;es. Cela peut vous sembler un
-peu simpliste par rapport a d'autres programmes de messagerie qui vous
-pose des questions et remplissent automatiquement les diff&eacute;rents
-entete, mais cela vous apporte une excellente flexibilit&eacute;.
-<informalexample>
-<screen>To:<userinput>freebsd-rave@freebsd.org</userinput>
-cc:
-Subject:<userinput>Et le 8&egrave;me jour, Dieu cr&eacute;a le bureau des directeurs de FreeBSD</userinput>
---------
-<userinput>Ouah, c'est un super syst&egrave;me d'exploitation. Merci !</userinput></screen>
-</informalexample>
-Vous pouvez ensuite, sauvegarder le message et quitter votre
-&eacute;diteur. Vous aurez alors le prompt <prompt>What now?</prompt> et vous
-pourrez taper <userinput>send</userinput> ou <userinput>s</userinput>
-et appuyer sur la touche <keycap>entr&eacute;e</keycap>. Alors l'&eacute;quipe
-principal de d&eacute;veloppemet de FreeBSD recevra votre gratitude. Comme
-mentionn&eacute; pr&eacute;cedemment vous pouvez utiliser une des autres r&eacute;ponse,
-par exemple <command>quit</command> si vous ne voulez pas envoyer ce
-message.</para>
-
-<para>La commande <command>forw</command> s'utilise de fa&ccedil;on
-similaire. La principal diff&eacute;rence est que le message que vous envoyez
-comprends dans son corps le message courant. Lorsque vous utilisez la
-commande <command>forw</command>, vous faites suivre le message
-courant a un autre destinataire. Vous pouvez faire suivre un autre
-message en utilisant de la fa&ccedil;on suivante <command>forw 23</command>
-la commande <command>forw</command>, ainsi le message 23 sera ajoute
-dans le corps du message compos&eacute;. A part ces simples diff&eacute;rences, la
-commande <command>forw</command>, fonctionne de la meme fa&ccedil;on que la
-commande <command>comp</command>. </para>
-
-<para>La commande <command>repl</command> vous permet de r&eacute;pondre au
-message courant, sauf si vous lui indiquez un autre num&eacute;ro de
-message. La commande <command>repl</command> essaye de remplir au
-mieux les diff&eacute;rents champs de l'entete en fonction de ce qui se
-trouve dans le message de base. Vous noterez donc que le
-champ<literal> To:</literal> de l'entete comporte deja l'adresse du
-destinataire et que la ligne <literal>Subject:</literal> est deja
-remplie. Ensuite vous composez de la fa&ccedil;on habituelle votre
-message. Un option interessante de cette commande est
-<option>-cc</option>. Vous pouvez utiliser comme parametre
-<parameter>all</parameter>, <parameter>to</parameter>,
-<parameter>cc</parameter>,<parameter>me</parameter> avec cette option;
-cela vous permet d'ajouter de fa&ccedil;on simple, les adresses en copie du
-message original. Vous noterez que le message original n'est pas inclu
-par d&eacute;faut. C'est le comportement par d&eacute;faut de la plupart des
-configuration de MH.
-</para>
-</sect2>
-
-<sect2>
-<title><filename>components</filename>, et
-<filename>replcomps</filename>&mdash;les fichiers de composition pour
-<command>comp</> and <command>repl</></title>
-
-<para>Le fichier <filename>components</filename> se trouve la plupart
-du temps dans le r&eacute;pertoire
-<filename>/usr/local/lib/mh</filename>. Vous pouvez copier ce fichier
-dans votre r&eacute;pertoire de MH et l'&eacute;diter pour ajouter ce que vous
-voulez. Vous avez certaines lignes d'entete de mail par d&eacute;faut au
-d&eacute;but, une ligne pointill&eacute;e et puis plus rien. La commande
-<command>comp</command> ne fait que copier ce fichier et vous permet
-ensuite de l'&eacute;diter. Vous pouvez ajouter n'importe quel entete valide
-(RFC822). Par exemple, vous pourriez avoir le fichier
-<filename>components</filename> suivant:
-<informalexample>
-<screen>To:
-Fcc: out
-Subject:
-X-Mailer: MH 6.8.3
-X-Comment: FreeBSD the power to serve
-X-Home-Page: http://www.freebsd-fr.org/
--------</screen>
-</informalexample>
-MH copiera donc ce fichier et vous enverra dans votre &eacute;diteur
-favori. Le fichier <filename>components</filename> est tr&egrave;s simple. Si
-vous d&eacute;sirez inclure une signature, il vous suffit de l'ajouter dans
-ce fichier.</para>
-
-<para>Le fichier <filename>replcomps</filename> est un peu plus
-complexe. Son contenu par d&eacute;faut ressemble &agrave; ceci:
-<informalexample>
-<screen>%(lit)%(formataddr %&lt;{reply-to}%?{from}%?{sender}%?{return-path}%&gt;)\
-%&lt;(nonnull)%(void(width))%(putaddr To: )\n%&gt;\
-%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
-%&lt;(nonnull)%(void(width))%(putaddr cc: )\n%&gt;\
-%&lt;{fcc}Fcc: %{fcc}\n%&gt;\
-%&lt;{subject}Subject: Re: %{subject}\n%&gt;\
-%&lt;{date}In-reply-to: Your message of "\
-%&lt;(nodate{date})%{date}%|%(pretty{date})%&gt;."%&lt;{message-id}
- %{message-id}%&gt;\n%&gt;\
---------
-</screen>
-</informalexample></para>
-
-<para>Ce fichier a le meme format de base que le fichier
-<filename>components</filename> mais il comporte un peu plus de codes
-de mise en forme. La commande <literal>%(lit)</literal> cr&eacute;e l'espace
-n&eacute;cessaire pour l'adresse. La commande <literal>%(formataddr</literal>
-est une fonction qui retourne une adresse e-mail coh&eacute;rente. Le morceau
-suivant <literal>%&lt;</literal> permet de remplir le champ de
-l'adresse avec l'adresse correspondante dans le cas ou elle se trouve
-dans le champ <literal>{reply-to}</literal> du message de
-l'emetteur. Cela sera donc transfom&eacute; de la mani&egrave;re suivante:
-<informalexample>
-<screen>%&lt;<emphasis remap=bf>si</emphasis> {reply-to} <emphasis
-remap=bf> dans le message original ou trouve un champ reply-to</emphasis>
-alors la mettre dans le champ formataddr, %? <emphasis remap=bf>sinon
-prendre le contenu du champ </emphasis> {from} <emphasis
-remap=bf></emphasis>, %? <emphasis remap=bf>sinon</emphasis> prendre
-le champ {sender} <emphasis remap=bf></emphasis>, %?
-<emphasis remap=bf>et en dernier lieu prendre le champ </emphasis> {return-path} <emphasis remap=bf></emphasis>, %&gt; <emphasis remap=bf>endif</emphasis>.</screen>
-</informalexample></para>
-
-<para>Comme vous pouvez le voir, le formattage des champs de MH peut
-etre largement &eacute;tendu. Vous pourrez surment d&eacute;crypter le maximum des
-autres fonctions et des noms de variables. Toutes les autres
-informations sur le fa&ccedil;on d'&eacute;crire ces chaines de formattage se trouve
-dans la page de manuel de MH. Donc lorsque vous aurez finit de creer
-votre fichier <filename>replcomps</filename> vous n'aurez plus besoin
-d'y toucher. Aucun autre programme ne vous donne autant de flexibilit&eacute;
-et de pouvoir que MH.</para>
-</sect2>
-
-</sect1>
-
-
-
-</article>
-
diff --git a/fr_FR.ISO8859-1/articles/multi-os/Makefile b/fr_FR.ISO8859-1/articles/multi-os/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/multi-os/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/multi-os/article.sgml b/fr_FR.ISO8859-1/articles/multi-os/article.sgml
deleted file mode 100755
index 994298fd4a..0000000000
--- a/fr_FR.ISO8859-1/articles/multi-os/article.sgml
+++ /dev/null
@@ -1,700 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
- <artheader>
- <title>Installer et utiliser FreeBSD en m&ecirc;me temps que d'autres syst&egrave;mes d'exploitation</title>
- <authorgroup>
- <author>
- <firstname>Jay</firstname>
- <surname>Richmond</surname>
- </author>
- </authorgroup>
- &artheader.copyright;
- <abstract>
- <para><email>jayrich@sysc.com</email></para>
- <para>6 Aout 1996</para>
- <para>Ce document explique comment faire cohabiter proprement FreeBSD et
- d'autres syst&egrave;mes d'exploitation courants tels que Linux, MS-DOS, OS/2
- et Windows 95. Remerciements particuliers &agrave; Annelise Anderson
- <email>andrsn@stanford.edu</email>, Randall Hopper
- <email>rhh@ct.picker.com</email> et Jordan K. Hubbard
- <email>jkh@time.cdrom.com</email>.</para>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.haby;
- </abstract>
- </artheader>
- <sect1>
- <title>R&eacute;sum&eacute;</title>
- <para>La plupart des gens n'arrivent pas &agrave; faire cohabiter leurs divers
- syst&egrave;mes d'exploitation sans des disques de grande capacit&eacute;,
- des informations sur les gros disques EIDE sont donc incluses. Comme il
- y a de nombreuses combinaisons possibles de syst&egrave;mes d'exploitation et
- de configurations de disques durs, la section
- <link linkend="examples">Exemples</link> sera peut-&ecirc;tre celle
- qui vous sera la plus utile. Elle d&eacute;crit plusieurs configurations
- d'ordinateurs utilisant plusieurs syst&egrave;mes d'exploitation.</para>
- <para>Ce document suppose que vous avez d&eacute;j&agrave; pr&eacute;par&eacute; de la place sur votre
- disque dur pour un syst&egrave;me d'exploitation suppl&eacute;mentaire. Chaque fois que
- vous repartitionnez votre disque dur, vous prenez le risque de d&eacute;truire
- les donn&eacute;es qui se trouvent sur les partitions existantes. Toutefois, si
- votre disque est enti&egrave;rement occup&eacute; par DOS, vous trouverez peut-&ecirc;tre le
- programme FIPS (qui se trouve sur le CD-ROM FreeBSD dans le r&eacute;pertoire
- <filename>\TOOLS</filename> ou que vous pouvez t&eacute;l&eacute;charger par
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>) utile.
- Il vous permet de repartitionner votre disque sans d&eacute;truire les donn&eacute;es
- qui s'y trouvent. Il existe aussi une programme commercial appel&eacute;
- Partition Magic, qui vous permet de dimensionner et de supprimer des
- partitions sans d&eacute;g&acirc;t.</para>
- </sect1>
- <sect1 id="boot-managers">
- <title>Revue des gestionnaires de d&eacute;marrage</title>
- <para>Ce ne sont que de br&egrave;ves descriptions des diff&eacute;rents gestionnaires
- de d&eacute;marrage que vous rencontrerez. Selon la configuration de votre
- ordinateur, vous pourrez trouver utile d'en employer plus d'un sur le
- m&ecirc;me syst&egrave;me.</para>
- <variablelist>
- <varlistentry>
- <term>Boot Easy</term>
- <listitem>
- <para>C'est le gestionnaire de d&eacute;marrage par d&eacute;faut de FreeBSD. Il
- peut d&eacute;marrer &agrave; peu pr&egrave;s n'importe quoi, y compris BSD, OS/2
- (HPFS), Windows 95 (FAT et FAT32) et Linux. Les partitions sont
- s&eacute;lectionn&eacute;es &agrave; l'aide des touches fonction.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><foreignphrase>OS/2 Boot Manager</foreignphrase></term>
- <listitem>
- <para>Il d&eacute;marrera depuis la FAT, HPFS, FFS (FreeBSD) et EXT2
- (Linux). Il peut aussi d&eacute;marrer depuis des partitions FAT32.
- Les partitions sont s&eacute;lectionn&eacute;es avec les touches Fl&egrave;ches.
- Le gestionnaire de d&eacute;marrage
- <foreignphrase>OS/2 Boot Manager</foreignphrase> est le
- seul &agrave; utiliser sa propre partition distincte, &agrave; l'inverse des
- autres qui utilisent l'enregistrement principal de d&eacute;marrage
- (<foreignphrase>Master Boot
- Record</foreignphrase>&nbsp;-&nbsp;MBR). Il doit donc &ecirc;tre
- install&eacute; dans les 1024 premiers cylindres pour &eacute;viter des
- probl&egrave;mes de d&eacute;marrage. Il peut charger Linux en utilisant LILO
- lorsque ce dernier se trouve sur le secteur de d&eacute;marrage et non sur
- le MBR. Allez sur les
- <ulink url="http://www.freenix.fr/linux/HOWTO">HOWTO Linux</ulink>
- sur le World Wide Web pour plus d'informations sur le d&eacute;marrage
- de Linux avec le gestionnaire de d&eacute;marrage d'OS/2.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>OS-BS</term>
- <listitem>
- <para>C'est une alternative &agrave; Boot Easy. Il vous donne plus de
- contr&ocirc;le sur le processus de d&eacute;marrage, avec la possibilit&eacute; de
- s&eacute;lectionner la partition &agrave; d&eacute;marrer par d&eacute;faut et le d&eacute;lai de
- d&eacute;marrage. La version b&eacute;ta de ce programme vous permet de
- s&eacute;lectionner le syst&egrave;me d'exploitation &agrave; d&eacute;marrer avec les
- touches Fl&egrave;ches. Il est inclus sur le CD-ROM FreeBSD dans le
- r&eacute;pertoire <filename>\TOOLS</filename> et vous pouvez le
- t&eacute;l&eacute;charger par
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>LILO, ou LInux LOader (&ldquo;chargeur Linux&rdquo;)</term>
- <listitem>
- <para>C'est un gestionnaire de d&eacute;marrage limit&eacute;. Il peut d&eacute;marrer
- FreeBSD, mais il faut acommoder son fichier de configuration.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <informaltable>
- <tgroup cols="1">
- <tbody>
- <row>
- <entry><emphasis>A propos de la FAT32:</emphasis> La FAT32
- remplace le syst&egrave;me de fichiers FAT depuis la version Microsoft
- OEM SR2 B&eacute;ta, qui sera utilis&eacute;e sur les ordinateurs avec Windows
- 95 pr&eacute;-install&eacute; vers la fin de 1996. Elle convertit le syst&egrave;me
- de fichiers FAT habituel et permet d'utiliser des tailles
- d'agr&eacute;gat&nbsp;-&nbsp;&ldquo;<foreignphrase>cluster</foreignphrase>&rdquo;&nbsp;-&nbsp;plus
- petites sur de plus gros disques. La FAT32 modifie aussi le
- secteur de d&eacute;marrage et la table d'allocation habituels de la FAT,
- ce qui la rend incompatible avec certains gestionnaires de
- d&eacute;marrage.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
- <sect1 id="typical">
- <title>Une configuration typique</title>
- <para>Supposons que nous ayons deux gros disques EIDE, et que nous
- voulions y installer FreeBSD, Linux et Windows 95.</para>
- <para>Voici comment je proc&eacute;derais avec ces disques durs:</para>
- <itemizedlist>
- <listitem>
- <para><filename>/dev/wd0</filename> (premier disque dur
- physique),</para>
- </listitem>
- <listitem>
- <para><filename>/dev/wd1</filename> (second disque dur).</para>
- </listitem>
- </itemizedlist>
- <para>Ils ont tous deux 1416 cylindres.</para>
- <orderedlist>
- <listitem>
- <para>Je d&eacute;marre avec une disquette de d&eacute;marrage MS-DOS ou
- Windows qui contient l'utilitaire <filename>FDISK.EXE</filename>
- et cr&eacute;e une petite partition primaire de 50 Mo (35-40 pour Windows
- 95 et un peu d'espace libre) sur le premier disque. Je cr&eacute;e aussi
- une partition plus importante sur le second disque pour mes
- applications et mes donn&eacute;es Windows.</para>
- </listitem>
- <listitem>
- <para>Je red&eacute;marre et installe Windows 95 (plus facile &agrave; dire qu'&agrave;
- faire) sur la partition <filename>C:</filename>.</para>
- </listitem>
- <listitem>
- <para>J'installe ensuite Linux. Je ne suis pas certain pour qui
- concerne toutes les distributions de Linux, mais la Slackware
- comprend LILO (voyez la section
- <link linkend="boot-managers">Revue des gestionnaires de
- d&eacute;marrage</link>). Au moment de partitionner mon disque dur
- avec l'utilitaire <filename>fdisk</filename> de Linux,
- je mets tout Linux sur le premier disque (peut-&ecirc;tre 300 Mo
- pour une partition racine confortable et de l'espace de
- pagination).</para>
- </listitem>
- <listitem>
- <para>Apr&egrave;s avoir install&eacute; Linux, et quand on me demande si je veux
- installer LILO, je fais <emphasis>attention</emphasis> &agrave; l'installer
- sur le secteur de d&eacute;marrage de ma partition racine Linux, et non
- sur le MBR (<foreignphrase>Master Boot
- Record</foreignphrase>&nbsp;-&nbsp;enregistrement principal de
- d&eacute;marrage).</para>
- </listitem>
- <listitem>
- <para>L'espace restant disponible sur le disque peut servir &agrave;
- FreeBSD. Je v&eacute;rifie aussi que la
- tranche&nbsp;-&nbsp;&ldquo;<foreignphrase>slice</foreignphrase>&rdquo;&nbsp;-&nbsp;racine
- de FreeBSD ne d&eacute;borde pas de la limite des 1024 cylindres (1024
- cylindres correspond &agrave; 528 Mo &agrave; partir du d&eacute;but du disque sur nos
- hypoth&eacute;tiques disques de 720 Mo). J'utiliserai &eacute;ventuellement le
- reste du disque dur (environ 270 Mo) pour les tranches
- <filename>/usr</filename> et <filename>/var</filename>. Le
- reste du second
- disque (l'espace disponible d&eacute;pend de la taille de ma partition
- d'applications/donn&eacute;es Windows que j'ai cr&eacute;&eacute;e &agrave; l'&eacute;tape 1) peut &ecirc;tre
- utilis&eacute; pour la tranche <filename>/usr/src</filename> et l'espace
- de pagination.</para>
- </listitem>
- <listitem>
- <para>Vus de l'utilitaire <filename>fdisk</filename> de Windows 95, mes
- disques ressembleraient &agrave; ceci:</para>
- <programlisting>
----------------------------------------------------------------------
-
- Display Partition Information
-
-Current fixed disk drive: 1
-
-Partition Status Type Volume_Label Mbytes System Usage
-C: 1 A PRI DOS 50 FAT** 7%
- 2 A Non-DOS (Linux) 300 43%
-
-Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes)
-
-Press Esc to continue
-
----------------------------------------------------------------------
-
- Display Partition Information
-
-Current fixed disk drive: 2
-
-Partition Status Type Volume_Label Mbytes System Usage
-D: 1 A PRI DOS 420 FAT** 60%
-
-Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes)
-
-Press Esc to continue
-
----------------------------------------------------------------------
- </programlisting>
- <para>Disons FAT16, ou FAT32 si vous utilisez la mise &agrave; jour
- OEM SR2 (voyez la section
- <link linkend="boot-managers">Revue des gestionnaires de
- d&eacute;marrage</link>).</para>
- </listitem>
- <listitem>
- <para>J'installe FreeBSD. Je veille &agrave; d&eacute;marrer avec le premier
- disque dur d&eacute;fini comme &ldquo;NORMAL&rdquo; dans le param&eacute;trage
- du BIOS. Sans cela, je devrais indiquer la g&eacute;om&eacute;trie r&eacute;elle de mon
- disque au d&eacute;marrage (pour la conna&icirc;tre, d&eacute;marrez Windows 95 et
- consultez les diagnostics Microsoft (<filename>MSD.EXE</filename>)
- ou allez voir dans le BIOS) avec le param&egrave;tre
- <literal>hd0=1416,16,63</literal> o&ugrave; <replaceable>1416</replaceable>
- est le nombre de cylindres de mon disque dur,
- <replaceable>16</replaceable> est le nombre de t&ecirc;tes par piste et
- <replaceable>63</replaceable> est le nombre de secteurs par
- t&ecirc;te.</para>
- </listitem>
- <listitem>
- <para>Au moment de partitionner le disque dur, je fais attention &agrave;
- bien installer Boot Easy sur le premier disque. Je ne m'occupe pas
- du second disque, &agrave; partir duquel rien n'est d&eacute;marr&eacute;.</para>
- </listitem>
- <listitem>
- <para>Au red&eacute;marrage, Boot Easy devrait reconna&icirc;tre mes trois
- partitions d&eacute;marrables comme DOS (Windows 95), Linux et BSD
- (FreeBSD)</para>
- </listitem>
- </orderedlist>
- </sect1>
- <sect1 id="special">
- <title>Consid&eacute;rations particuli&egrave;res</title>
- <para>La plupart des syst&egrave;mes d'exploitation sont tr&egrave;s chatouilleux sur la
- fa&ccedil;on et l'endroit o&ugrave; ils sont install&eacute;s sur le disque dur. Windows 95 et
- DOS doivent &ecirc;tre sur la premi&egrave;re partition primaire du premier disque dur.
- OS/2 fait exception. Il peut &ecirc;tre sur le premier ou le second disque et
- sur une partition primaire ou &eacute;tendue. Si vous n'&ecirc;tes pas s&ucirc;r de vous,
- gardez le d&eacute;but des partitions d&eacute;marrables avant le 1024&egrave;me
- cylindre.</para>
- <para>Si vous installez Windows 95 sur un syst&egrave;me BSD existant, cela va
- &ldquo;&eacute;craser&rdquo; le MBR, et vous devrez r&eacute;installer votre pr&eacute;c&eacute;dent
- gestionnaire de d&eacute;marrage. Boot Easy peut &ecirc;tre r&eacute;install&eacute; avec
- l'utilitaire <filename>BOOTINST.EXE</filename> qui se trouve dans le
- r&eacute;pertoire <filename>\TOOLS</filename> du CD-ROM, ou peut &ecirc;tre t&eacute;l&eacute;charg&eacute;
- par <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>.
- Vous pouvez aussi relancer le processus d'installation et aller dans
- l'&eacute;diteur de partitions. De l&agrave;, indiquez que la partition FreeBSD est
- d&eacute;marrable, choisissez l'option <option>Boot Manager</option>
- (gestionnaire de d&eacute;marrage) et tapez
- <literal>W</literal> pour &eacute;crire les informations sur le MBR. Vous
- pouvez maintenant red&eacute;marrer, et Boot Easy reconna&icirc;tra votre Windows 95
- en tant que DOS.</para>
- <para>N'oubliez pas s'il vous pla&icirc;t qu'OS/2 peut lire les partitions FAT
- et HPFS, mais pas les partitions FFS (FreeBSD) ou EXT2 (Linux). De m&ecirc;me,
- Windows 95 ne peut que lire et &eacute;crire sur les partitions FAT et FAT32
- (voyez la section <link linkend="boot-managers">Revue des gestionnaire
- de d&eacute;marrage</link>). FreeBSD peut lire la plupart des syst&egrave;mes de
- fichiers, mais ne sait pas actuellement lire les partitions HPFS. Linux
- peut lire les partitions HPFS, mais ne peut pas y &eacute;crire. Les versions
- r&eacute;centes du noyau Linux (2.x) peuvent lire et &eacute;crire les partitions VFAT
- de Windows 95 (La VFAT est ce qui permet &agrave; Windows d'utiliser des noms
- de fichiers longs&nbsp;-&nbsp;c'est &agrave; peu pr&egrave;s la m&ecirc;me chose que la
- FAT). Linux peut lire et &eacute;crire sur la plupart des syst&egrave;mes de fichiers.
- Pig&eacute;? Je l'esp&egrave;re.</para>
- </sect1>
- <sect1 id="examples">
- <title>Exemples</title>
- <para><emphasis>(Cette section a besoin d'&ecirc;tre revue, envoyez s'il vous
- pla&icirc;t vos exemples &agrave; <email>jayrich@sysc.com</email>.)</emphasis></para>
- <para>FreeBSD + Windows 95: Si vous avez install&eacute; FreeBSD apr&egrave;s Windows 95,
- vous devriez voir la mention <literal>DOS</literal> sur le menu de Boot
- Easy. C'est Windows 95. Si vous avez install&eacute; Windows 95 apr&egrave;s FreeBSD,
- lisez la section <link linkend="special">Consid&eacute;rations
- particuli&egrave;res</link> ci-dessus. Tant que votre disque n'a pas 1024
- cylindres, vous ne devriez pas avoir de probl&egrave;mes pour d&eacute;marrer. Si
- toutefois une de vos partitions va au-del&agrave; du 1024&egrave;me cylindre, et que
- vous avez des messages du type <literal>invalid system disk</literal>
- sous DOS (Windows 95) et que FreeBSD ne d&eacute;marre pas, cherchez dans les
- param&egrave;tres de configuration de votre BIOS quelque chose appel&eacute;
- &ldquo;<literal>&gt; 1024 cylinder support</literal>&rdquo; ou
- mode &ldquo;<literal>NORMAL/LBA</literal>&rdquo;. DOS peut avoir besoin
- du LBA (<foreignphrase>Logical Block
- Adressing</foreignphrase>&nbsp;-&nbsp;Adressage de bloc logique) pour
- d&eacute;marrer correctement. Si la perspective de modifier les param&egrave;tres du
- BIOS &agrave; chaque d&eacute;marrage ne vous enchante pas, vous pouvez d&eacute;marrer
- FreeBSD depuis DOS avec l'utilitaire <filename>FBSDBOOT.EXE</filename>
- du CD (il devrait reconna&icirc;tre votre partition FreeBSD et la
- d&eacute;marrer).</para>
- <para>FreeBSD + OS/2 + Windows: Rien de nouveau dans ce cas. Le gestionnaire
- de d&eacute;marrage d'OS/2 peut d&eacute;marrer tous ces syst&egrave;mes d'exploitation, il ne
- devrait pas y avoir de probl&egrave;me.</para>
- <para>FreeBSD + Linux: Vous pouvez aussi utiliser Boot Easy pour d&eacute;marrer
- les deux syst&egrave;mes d'exploitation.</para>
- <para>FreeBSD + Linux + Windows 95: (voyez la section
- <link linkend="typical">Une installation typique</link>).</para>
- </sect1>
- <sect1 id="help">
- <title>Autres endroits o&ugrave; trouver de l'aide</title>
- <para>Il y a de nombreux
- <ulink url="http://www.freenix.fr/linux/HOWTO">HOWTO Linux</ulink>
- qui traitent des syst&egrave;mes d'exploitation multiples sur un m&ecirc;me
- disque.</para>
- <para>Le
- <ulink url="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+DOS+Win95+OS2.html">mini-HOWTO
- Linux+DOS+Win95+OS2</ulink> donne des indications sur la configuration
- du gestionnaire de d&eacute;marrage d'OS/2, et le
- <ulink url="http://www.freenix.fr/linux/HOWTO/mini/Linux+FreeBSD.html">mini-HOWTO
- Linux+FreeBSD</ulink> peut aussi vous int&eacute;resser.
- L'<ulink url="http://www.in.net/~jkatz/win95/Linux-HOWTO.html">HOWTO
- Linux</ulink> est aussi utile.</para>
- <para>Le
- <ulink url="http://www.dorsal.org/~dcl/publications/NTLDR_hacking">Guide
- de programmation du chargeur NT</ulink> fournit des informations
- int&eacute;ressantes sur le d&eacute;marrage de Windows NT, 95 et DOS avec d'autres
- syst&egrave;mes d'exploitation.</para>
- <para>Le jeu de documents d'Hale Landis, &ldquo;Comment &ccedil;a marche&rdquo;,
- contient de bonnes informations sur toutes sortes de g&eacute;om&eacute;tries de disques
- et autres sujets li&eacute;s au d&eacute;marrage. Voici quelques liens qui peuvent vous
- aider &agrave; le trouver:</para>
- <itemizedlist>
- <listitem>
- <para><ulink url="ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip">ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip</ulink>,</para>
- </listitem>
- <listitem>
- <para><ulink url="http://www.cs.yorku.ca/People/frank/docs/">http://www.cs.yorku.ca/People/frank/docs/</ulink>.</para>
- </listitem>
- </itemizedlist>
- <para>Enfin, ne n&eacute;gligez pas la documentation du noyau de FreeBSD sur le
- processus de d&eacute;marrage, disponible dans la distribution du source du
- noyau (elle est install&eacute;e dans
- <ulink url="file:/usr/src/sys/i386/boot/biosboot/README.386BSD">file:/usr/src/sys/i386/boot/biosboot/README.386BSD</ulink>).</para>
- </sect1>
- <sect1>
- <title>D&eacute;tails Techniques</title>
- <para><emphasis>(Contribution de Randall Hopper
- <email>rhh@ct.picker.com</email>)</emphasis></para>
- <para>Cette section tente de vous donner assez d'informations de base
- sur vos disques durs et sur le processus de d&eacute;marrage &agrave; partir d'un
- disque pour vous permettre de r&eacute;gler la plupart des probl&egrave;mes que vous
- pourriez rencontrer lorsque vous configurerez le d&eacute;marrage de plusieurs
- syst&egrave;mes d'exploitation. Elle commence par des choses relativement
- &eacute;l&eacute;mentaires, vous pr&eacute;f&eacute;rerez donc peut-&ecirc;tre la parcourir en diagonale
- jusqu'&agrave; ce que les points abord&eacute;s vous paraissent moins familiers et
- commencer alors &agrave; la lire en d&eacute;tail.</para>
- <sect2>
- <title>Introduction aux disques</title>
- <para>Trois termes fondamentaux d&eacute;crivent la localisation des donn&eacute;es
- sur vos disques durs: Cylindres, T&ecirc;tes et Secteurs. Il n'est pas tr&egrave;s
- important de savoir &agrave; quoi ils se rapportent sinon qu'ensemble, ils
- d&eacute;finissent o&ugrave; sont physiquement les donn&eacute;es sur le disque.</para>
- <para>Votre disque a un nombre donn&eacute; de cylindres, de t&ecirc;tes, et de
- secteurs par t&ecirc;te-cylindre (un doublet t&ecirc;te-cylindre est aussi appel&eacute;
- une piste). Ensemble, ces informations d&eacute;finissent la &ldquo;g&eacute;om&eacute;trie
- physique&rdquo; de votre disque. Il y a typiquement 512 octets par
- secteur et 63 secteurs par pistes, le nombre de cylindres et de t&ecirc;tes
- variant tr&egrave;s largement d'un disque &agrave; l'autre. Vous pouvez alors
- calculer la quantit&eacute; d'informations que peut enregistrer votre disque
- par la formule:</para>
- <programlisting>
-nombre de cylindres X nombre de t&ecirc;tes X 63 secteurs/piste X 512 octets/secteur
- </programlisting>
- <para>Par exemple, pour mon disque Western Digital AC31600 EIDE de 1,6 Go,
-cela donne:</para>
- <programlisting>
-3148 cylindres X 16 t&ecirc;tes X 63 secteurs/piste X 512 octets/secteur
- </programlisting>
- <para>c'est-&agrave;-dire 1.624.670.208 octets, ou environ 1,6 Go.</para>
- <para>Vous pouvez conna&icirc;tre la g&eacute;om&eacute;trie physique de votre disque dur
- (nombre de cylindres, de t&ecirc;tes et de secteurs par piste) avec ATAID
- ou d'autres programmes que vous trouverez sur l'Internet. Ces
- informations sont peut-&ecirc;tre aussi fournies avec votre disque. Faites
- cependant attention: si vous utilisez le LBA du BIOS (voyez la section
- <link linkend="limits">Restrictions pour le d&eacute;marrage et
- avertissements</link>), vous ne pouvez pas vous servir de n'importe
- quel programme pour conna&icirc;tre la g&eacute;om&eacute;trie physique. Cela parce que de
- nombreux programmes (e.g., <filename>MSD.EXE</filename> ou
- le <filename>fdisk</filename> de FreeBSD) ne reconnaissent pas la
- g&eacute;om&eacute;trie physique, ils listent &agrave; la place la <emphasis>g&eacute;om&eacute;trie
- red&eacute;finie</emphasis> (des valeurs virtuelles dues &agrave; l'utilisation
- du LBA). Continuez &agrave; lire pour savoir ce que cela veut dire.</para>
- <para>Une autre chose &agrave; savoir &agrave; propos de ces termes. 3
- valeurs&nbsp;-&nbsp;un num&eacute;ro de cylindre, un num&eacute;ro de t&ecirc;te, et un
- num&eacute;ro du secteur sur la piste&nbsp;-&nbsp;identifient l'adresse absolue
- d'un secteur sur votre disque. Les cylindres et les t&ecirc;tes sont
- num&eacute;rot&eacute;s &agrave; partir de 0, et les num&eacute;ros de secteurs commencent &agrave;
- 1.</para>
- <para>Ceux que des d&eacute;tails plus techniques int&eacute;ressent peuvent
- trouver un peu partout sur l'Internet des informations sur la g&eacute;om&eacute;trie
- des disques, les secteurs de d&eacute;marrage, les BIOS, etc. Faites une
- recherche sur Yahoo, Lycos, etc. pour <literal>boot sector</literal> ou
- <literal>master boot record</literal>. Parmi les choses utiles que vous
- trouverez, il y a le jeu de documents
- &ldquo;Comment &ccedil;a marche&rdquo;&nbsp;-&nbsp;<foreignphrase>How It
- Works</foreignphrase> de Hale Landis. Voyez la section
- <link linkend="help">Autres endroits o&ugrave; trouver de l'aide</link> pour
- avoir quelques pointeurs vers ces documents.</para>
- <para>OK, assez de terminologie. Nous sommes cens&eacute;s parler de d&eacute;marrage
- ici.</para>
- </sect2>
- <sect2 id="booting">
- <title>Le processus de d&eacute;marrage</title>
- <para>Sur le premier secteur de votre disque (cylindre 0, t&ecirc;te 0,
- secteur 1) se trouve l'enregistrement principal de
- d&eacute;marrage&nbsp;-&nbsp;<foreignphrase>Master Boot
- Record</foreignphrase> (MBR). Il contient une carte de votre disque.
- Il identifie jusqu'&agrave; <emphasis>4 partitions</emphasis>, chacune d'elle
- &eacute;tant un espace contigu sur ce disque. FreeBSD appelle les partitions
- des tranches&nbsp;-&nbsp;<foreignphrase>slices</foreignphrase>&nbsp;-&nbsp;pour
- &eacute;viter la confusion avec ses propres partitions, mais nous
- n'utiliserons pas ici ce terme. Chaque partition peut contenir son
- propre syst&egrave;me d'exploitation.</para>
- <para>Chaque entr&eacute;e de partition dans le MBR comprend un
- <emphasis>IDentifiant de partition</emphasis>, un
- <emphasis>Cylindre/T&ecirc;te/Secteur de D&eacute;but</emphasis> et un
- <emphasis>Cylindre/T&ecirc;te/Secteur de Fin</emphasis>. L'IDentifiant de
- partition dit de quel type de partition il s'agit (de quel OS) et le
- D&eacute;but/Fin dit o&ugrave; elle se trouve. La table des
- <link linkend="partitions">IDs de partitions</link> liste un
- &eacute;chantillon d'identifiants de partitions usuels.</para>
- <informaltable id="partitions">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>ID (hex)</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>01</entry>
- <entry>DOS12 primaire (FAT 12-bit)</entry>
- </row>
- <row>
- <entry>04</entry>
- <entry>DOS16 primaire (FAT 16-bit)</entry>
- </row>
- <row>
- <entry>05</entry>
- <entry>DOS12 &eacute;tendue</entry>
- </row>
- <row>
- <entry>06</entry>
- <entry>DOS primaire large (&gt; 32 Mo)</entry>
- </row>
- <row>
- <entry>0A</entry>
- <entry>OS/2</entry>
- </row>
- <row>
- <entry>83</entry>
- <entry>Linux (EXT2FS)</entry>
- </row>
- <row>
- <entry>A5</entry>
- <entry>FreeBSD, NetBSD, 386BSD (UFS)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- <note>
- <para>Toutes les partitions ne dont pas d&eacute;marrables (e.g. DOS &eacute;tendue).
- Certaines le sont&nbsp;-&nbsp;d'autres ne le sont pas. Ce qui rend
- une partition d&eacute;marrable est la configuration du secteur de d&eacute;marrage
- de la
- partition&nbsp;-&nbsp;<foreignphrase>Partition Boot Sector</foreignphrase>&nbsp;-&nbsp;qui
- est toujours pr&eacute;sent au d&eacute;but de chaque partition.</para>
- </note>
- <para>Quand vous configurez votre gestionnaire de d&eacute;marrage favori, il
- consulte les entr&eacute;es dans les tables de partitions du MBR de tous vos
- disques et vous donne la possibilit&eacute; de donner un nom &agrave; ces entr&eacute;es.
- Quand vous d&eacute;marrez ensuite, le gestionnaire de d&eacute;marrage
- est appel&eacute; par du code pr&eacute;vu pour cela &agrave; partir secteur principal de
- d&eacute;marrage&nbsp;-&nbsp;<foreignphrase>Master Boot Sector</foreignphrase>&nbsp;-&nbsp;du
- premier disque trouv&eacute; sur votre syst&egrave;me. Le gestionnaire consulte
- l'entr&eacute;e de la table de partitions du MBR correspondant &agrave; la partition
- que vous avez choisie, charge le secteur de d&eacute;marrage de cette partition
- et lui passe le contr&ocirc;le. Ce secteur de d&eacute;marrage de la partition
- elle-m&ecirc;me contient suffisamment d'informations pour commencer &agrave; charger
- le syst&egrave;me d'exploitation qui se trouve sur cette partition.</para>
- <para>Il y a une chose importante &agrave; savoir dont nous n'avons pas encore
- parl&eacute;. Tous vos disques durs ont un MBR. Toutefois, celui qui est
- important est celui qui se trouve sur le premier disque reconnu par le
- BIOS. Si vous n'avez que des disques durs IDE, c'est le premier disque
- IDE (e.g. le disque ma&icirc;tre sur le premier contr&ocirc;leur). De m&ecirc;me pour les
- syst&egrave;mes enti&egrave;rement SCSI. Si vous avez et des disques durs IDE et des
- disques durs SCSI, le disque IDE est habituellement le premier disque
- dont la pr&eacute;sence est test&eacute;e par le BIOS, le premier disque IDE est donc
- le premier disque reconnu. Le gestionnaire de d&eacute;marrage que vous
- installerez sera impl&eacute;ment&eacute; sur le premier disque dur reconnu comme
- nous venons de l'expliquer.</para>
- </sect2>
- <sect2 id="limits">
- <title>Restrictions pour le d&eacute;marrage et avertissements</title
- <para>Voici maintenant les choses int&eacute;ressantes auxquelles il faut
- faire attention.</para>
- <sect3>
- <title>La redoutable limitation &agrave; 1024 cylindres et en quoi le LBA du
- BIOS peut &ecirc;tre utile</title>
- <para>La premi&egrave;re partie du processus de d&eacute;marrage est enti&egrave;rement
- confi&eacute;e au BIOS, (si ce terme est nouveau pour vous, le BIOS est
- un circuit &eacute;lectronique sur votre carte m&egrave;re qui contient le
- code de d&eacute;marrage de votre ordinateur). C'est pourquoi cette
- premi&egrave;re partie du processus est soumise aux limitations du
- BIOS.</para>
- <para>L'interface BIOS utilis&eacute;e pour lire le disque dur durant
- cette phase (INT 13H, Sous-fonction 2) alloue 10 bits pour le
- num&eacute;ro de cylindre, 8 bits pour le num&eacute;ro de t&ecirc;te, et 6 bits
- pour le num&eacute;ro de secteur. Cela limite les utilisateurs de
- cette interface (i.e. les gestionnaires de d&eacute;marrage impl&eacute;ment&eacute;s
- sur le MBR du disque ainsi que les chargeurs de syst&egrave;mes
- d'exploitation impl&eacute;ment&eacute;s sur les secteurs de d&eacute;marrage) &agrave;:</para>
- <itemizedlist>
- <listitem>
- <para>1024 cylindres au plus,</para>
- </listitem>
- <listitem>
- <para>256 t&ecirc;tes au plus,</para>
- </listitem>
- <listitem>
- <para>64 secteurs/piste au plus, (en fait 63, 0 n'est pas
- disponible).</para>
- </listitem>
- </itemizedlist>
- <para>Or les diques durs de grande capacit&eacute; ont beaucoup de
- cylindres et peu de t&ecirc;tes, le nombre de cylindres de ces disques
- est donc invariablement sup&eacute;rieurs &agrave; 1024. De ce fait et &agrave; cause
- de l'interface BIOS telle qu'elle est, vous ne pouvez pas d&eacute;marrer
- n'importe o&ugrave; sur votre disque dur. Le code de d&eacute;marrage (le
- gestionnaire de d&eacute;marrage et le chargeur du syst&egrave;me d'exploitation
- impl&eacute;ment&eacute; sur les secteurs de d&eacute;marrage de chaque partition
- d&eacute;marrable) doivent se situer avant le 1024&egrave;me cylindre. Si votre
- disque dur est standard et a 16 t&ecirc;tes, cela &eacute;quivaut &agrave;:</para>
- <programlisting>
-1024 cylindres/disque X 16 t&ecirc;tes/disque X 63 secteurs/piste X 512 octets
- </programlisting>
- <para>c'est-&agrave;-dire la limite souvent cit&eacute;e de 528 Mo.</para>
- <para>C'est l&agrave; qu'intervient le LBA (<foreignphrase>Logical Block
- Adressing</foreignphrase>&nbsp;-&nbsp;&ldquo;adressage de bloc
- logique&rdquo;) du BIOS. Le LBA du BIOS donne &agrave; l'utilisateur
- des routines de l'API (<foreignphrase>Application Programming
- Interface</foreignphrase>&nbsp;-&nbsp;&ldquo;interface de
- programmation&rdquo;) du BIOS, la possibilit&eacute; d'acc&eacute;der aux
- cylindres au-del&agrave; de 1024 avec les interfaces du BIOS en
- red&eacute;finissant le cylindre. Cela signifie qu'il construit une
- nouvelle g&eacute;om&eacute;trie de vos cylindres et t&ecirc;tes, faisant croire
- au BIOS que votre disque a moins de cylindres et plus de t&ecirc;tes
- qu'en r&eacute;alit&eacute;. En d'autres termes, il profite du fait que les
- disques ont relativement peu de t&ecirc;tes et beaucoup de cylindres,
- pour modifier le rapport entre nombre de cylindres et nombre de
- t&ecirc;tes de fa&ccedil;on &agrave; ce que tous deux soient inf&eacute;rieurs aux limites
- mentionn&eacute;es ci-dessus (1024 cylindres, 256 t&ecirc;tes).</para>
- <para>Pour prendre de nouveau l'exemple de mon Western Digital 1,6
- Go, il a pour g&eacute;om&eacute;trie physique:</para>
- <programlisting>
-(3148 cylindres, 16 t&ecirc;tes, 63 secteurs/piste, 512 octets/secteur)
- </programlisting>
- <para>Alors que le LBA du BIOS la red&eacute;finit comme suit:</para>
- <programlisting>
-( 787 cylindres, 64 t&ecirc;tes, 63 secteurs/piste, 512 octets/secteur)
- </programlisting>
- <para>ce qui correspond &agrave; la m&ecirc;me capacit&eacute; physique, mais avec des
- nombres de cylindres et de t&ecirc;tes dans les limites acceptables par
- les API du BIOS. (Au passage, j'ai sur l'un de mes disques, et
- Linux et FreeBSD au-del&agrave; du 1024&egrave;me cylindre, et les deux d&eacute;marrent
- sans probl&egrave;me, gr&acirc;ce au LBA du BIOS.)</para>
- </sect3>
- <sect3>
- <title>Gestionnaires de d&eacute;marrage et allocation de l'espace
- disque</title>
- <para>Une autre chose &agrave; laquelle il faut faire attention lorsque vous
- installez un gestionnaire de d&eacute;marrage est l'allocation d'espace
- disque pour ce gestionnaire. Il vaut mieux &ecirc;tre inform&eacute; de cette
- question avant de commencer pour vous &eacute;viter d'avoir &agrave; r&eacute;installer un
- ou plusieurs de vos syst&egrave;mes d'exploitation.</para>
- <para>Si vous avez suivi ce qui a &eacute;t&eacute; dit sur le
- <link linkend="booting">processus de d&eacute;marrage</link>
- &agrave; propos du secteur principal de d&eacute;marrage (o&ugrave; se trouve le MBR),
- des secteurs de d&eacute;marrage des partitions et du processus de d&eacute;marrage,
- vous vous &ecirc;tes peut-&ecirc;tre demand&eacute; o&ugrave; va se trouver ce foutu
- gestionnaire de d&eacute;marrage. Bien, certains gestionnaires de d&eacute;marrage
- sont suffisament l&eacute;gers pour tenir enti&egrave;rement dans le secteur
- principal de d&eacute;marrage (cylindre 0, t&ecirc;te 0, secteur 1) avec la table
- de partitions. D'autres ont besoin d'un peu plus d'espace et d&eacute;bordent
- en fait de quelques secteurs apr&egrave;s le secteur principal de d&eacute;marrage
- sur la piste cylindre 0 t&ecirc;te 0, qui sont normalement libres...
- normalement.</para>
- <para>L&agrave; est le hic... Certains syst&egrave;mes d'exploitation (y compris
- FreeBSD) vous permettent de faire d&eacute;buter vos partitions juste apr&egrave;s
- le secteur principal de d&eacute;marrage au cylindre 0, t&ecirc;te 0, secteur 2,
- si vous le voulez. En fait, si vous donnez au programme
- <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>
- de FreeBSD, un disque dont le d&eacute;but est vierge ou un disque totalement
- vide, c'est l&agrave; qu'il fera commencer par d&eacute;faut la partition FreeBSD
- (c'est tout du moins ce qu'il a fait quand je suis tomb&eacute; dans ce
- pi&egrave;ge). Quand vous installez ensuite le gestionnaire de d&eacute;marrage, si
- c'est l'un de ceux qui occupent quelques secteurs suppl&eacute;mentaires
- apr&egrave;s le MBR, il &eacute;crase les donn&eacute;es qui se trouvent au d&eacute;but de la
- premi&egrave;re partie. Dans le cas de FreeBSD, cela &eacute;crase le label du
- disque et emp&ecirc;che de d&eacute;marrer votre partition FreeBSD.</para>
- <para>Le moyen facile d'&eacute;viter ce probl&egrave;me (et de vous garder le
- possibilit&eacute; d'essayer diff&eacute;rents gestionnaires de d&eacute;marrage par la
- suite) est de ne pas allouer la premi&egrave;re piste du disque quand vous le
- partitionnez. Cela r&eacute;serve l'espace entre le cylindre 0, t&ecirc;te 0,
- secteur 2 et le cylindre 0, t&ecirc;te 0, secteur 63, et votre partition
- commence au cylindre 1, t&ecirc;te 1, secteur 1. Pour ce que cela vaut,
- quand vous cr&eacute;ez une partition DOS au d&eacute;but de votre disque, DOS
- laisse par d&eacute;faut cet espace inoccup&eacute; (c'est pourquoi certains
- gestionnaires de d&eacute;marrage font l'hypoth&egrave;se qu'il est disponible).
- Mettre une partition DOS au d&eacute;but de votre disque vous permet aussi
- d'&eacute;viter le probl&egrave;me. C'est ce que je pr&eacute;f&egrave;re personnellement faire,
- mettre une partition DOS de 1 Mo au d&eacute;but, parce que cela &eacute;vite
- aussi que la lettre d&eacute;signant mon disque DOS primaire soit modifi&eacute;e
- ensuite quand je repartitionne.</para>
- <para>Pour servir de r&eacute;f&eacute;rence, les gestionnaires de d&eacute;marrage
- suivants n'utilisent que le secteur principal de d&eacute;marrage pour
- mettre leur code et leurs donn&eacute;es:</para>
- <itemizedlist>
- <listitem>
- <para>OS-BS 1.35,</para>
- </listitem>
- <listitem>
- <para>Boot Easy,</para>
- </listitem>
- <listitem>
- <para>LILO.</para>
- </listitem>
- </itemizedlist>
- <para>Ces gestionnaires de d&eacute;marrage occupent quelques secteurs
- suppl&eacute;mentaires apr&egrave;s le secteur principal de d&eacute;marrage:</para>
- <itemizedlist>
- <listitem>
- <para>OS-BS 2.0 B&eacute;ta 8 (secteurs 2-5),</para>
- </listitem>
- <listitem>
- <para>gestionnaire de d&eacute;marrage d'OS/2.</para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3>
- <title>Que faire si votre syst&egrave;me ne d&eacute;marre pas?</title>
- <para>Il se peut qu'&agrave; un moment donn&eacute;
- de l'installation d'un gestionnaire
- de d&eacute;marrage, vous laissiez le MBR dans un &eacute;tat tel que votre machine
- ne red&eacute;marre plus. C'est peu probable, mais possible lorsque vous
- refaites un FDISK alors qu'il y a d&eacute;j&agrave; un gestionnaire de d&eacute;marrage
- install&eacute;.</para>
- <para>Si vous avez une partition DOS d&eacute;marrable, vous pouvez d&eacute;marrer
- avec une disquette de d&eacute;marrage DOS, et lancer:</para>
- <informalexample>
-<screen><prompt>A:\></prompt> <userinput>FDISK /MBR</userinput></screen>
- </informalexample>
- <para>pour r&eacute;installer le code d'origine de d&eacute;marrage simple du DOS
- seul sur le syst&egrave;me. Vous pouvez alors d&eacute;marrer DOS (et DOS
- uniquement) depuis le disque dur. Une autre solution consiste &agrave;
- r&eacute;ex&eacute;cuter le programme d'installation de votre gestionnaire de
- d&eacute;marrage &agrave; partir d'une disquette d&eacute;marrable.</para>
- </sect3>
- </sect2>
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/new-users/Makefile b/fr_FR.ISO8859-1/articles/new-users/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/new-users/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/new-users/article.sgml b/fr_FR.ISO8859-1/articles/new-users/article.sgml
deleted file mode 100755
index 50a698babe..0000000000
--- a/fr_FR.ISO8859-1/articles/new-users/article.sgml
+++ /dev/null
@@ -1,827 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
-<artheader>
-<title>Pour les Nouveaux Venus &agrave; FreeBSD et Unix</title>
-<authorgroup>
-<author>
-<firstname>Annelise</firstname>
-<surname>Anderson</surname>
-<affiliation>
-<address><email>andrsn@hoover.stanford.edu</email></address>
-</affiliation>
-</author>
-</authorgroup>
-<pubdate>15 Ao&ucirc;t 1997</pubdate>
-&artheader.copyright;
-<abstract>
-<para>F&eacute;licitations pour avoir install&eacute; FreeBSD! Cette
-introduction concerne les nouveaux venus &agrave; la fois &agrave; FreeBSD
-<emphasis>et</emphasis> &agrave; Unix&nbsp;-&nbsp;elle commence donc par les bases. Elle
-suppose que vous utilisiez la version 2.0.5 ou une version ult&eacute;rieure de
-FreeBSD telle que distribu&eacute;e par Walnut Creek ou FreeBSD.ORG, que votre
-syst&egrave;me n'a (jusqu'&agrave; pr&eacute;sent) qu'un seul utilisateur (vous)&nbsp;-&nbsp;et que vous
-&ecirc;tes probablement &agrave; l'aise avec DOS/Windows ou OS/2.</para>
-&abstract.license;
-&abstract.disclaimer;
-&trans.a.haby;
-</abstract>
-</artheader>
-<sect1>
-<title>Initialiser et Terminer une Session Utilisateur</title>
-<para>Ouvrez une session (quand vous obtenez &agrave; l'&eacute;cran l'invite <systemitem
-class=prompt>login:</systemitem>) avec le compte utilisateur que vous avez
-d&eacute;fini &agrave; l'installation ou sous le compte super-utilisateur
- <firstterm>root</firstterm>. (FreeBSD a d&eacute;j&agrave; cr&eacute;&eacute; le compte root lors de
-l'installation; root peut acc&eacute;der &agrave; tous les r&eacute;pertoires et tout faire, y
-compris effacer des fichiers essentiels, donc soyez prudents!). Les symboles %
-et # dans les exemples sont l'invite du syst&egrave;me (la votre peut &ecirc;tre diff&eacute;rente),
-o&ugrave; % correspond &agrave; un utilisateur normal et # distingue le compte root.</para>
-<para>Pour terminer la session (vous obtiendrez &agrave; nouveau l'invite
-<systemitem class=prompt>login:</systemitem>), tapez:
-<informalexample>
-<screen># <userinput>exit</userinput></screen>
-</informalexample>
-autant de fois que n&eacute;cessaire. Bien s&ucirc;r, n'oubliez pas la touche
-<keysym>Entr&eacute;e</keysym> &agrave; la fin des commandes, et rappelez-vous qu'Unix
-fait la distinction entre les majuscules et les
-minuscules&nbsp;-&nbsp;<command>exit</command>, mais pas
-<command>EXIT</command>.</para>
-<para>Pour arr&ecirc;tez l'ordinateur, tapez:
-<informalexample>
-<screen># <userinput>/sbin/shutdown -h now</userinput></screen>
-</informalexample>
-Ou, pour le red&eacute;marrer, tapez:
-<informalexample>
-<screen># <userinput>/sbin/shutdown -r now</userinput></screen>
-</informalexample>
-ou:
-<informalexample>
-<screen># <userinput>/sbin/reboot</userinput></screen>
-</informalexample>
-</para>
-<para>Vous pouvez aussi red&eacute;marrer avec:
-<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>.
-Laissez au syst&egrave;me un peu de temps pour faire son travail. Cette s&eacute;quence est,
-dans les plus r&eacute;centes versions de FreeBSD, l'&eacute;quivalent de la commande
-<command>/sbin/reboot</command>, et il est nettement pr&eacute;f&eacute;rable de l'employer
-que d'utiliser l'interrupteur de r&eacute;initialisation de votre machine. A moins que
-vous ne vouliez tout r&eacute;installer ?</para>
-</sect1>
-<sect1>
-<title>Cr&eacute;er un Nouveau Compte Utilisateur avec les M&ecirc;mes Droits que Root</title>
-<para>Si vous n'avez pas cr&eacute;&eacute; de compte utilisateur au moment de l'installation,
-et utilisez donc le compte root, vous devriez maintenant d&eacute;finir un nouvel
-utilisateur avec:
-<informalexample>
-<screen># <userinput>adduser</userinput></screen>
-</informalexample>
-La premi&egrave;re fois que vous utiliserez adduser, le programme vous demandera
-peut-&ecirc;tre de lui indiquer des options par d&eacute;faut qu'il sauvegardera. Par
-exemple, vous pr&eacute;f&eacute;rez peut-&ecirc;tre que l'interpr&eacute;teur de commandes soit csh, s'il
-vous propose l'interpr&eacute;teur sh. Sinon, tapez simplement Entr&eacute;e pour conserver
-les valeurs par d&eacute;faut. Celles-ci sont enregistr&eacute;es dans le fichier
-<filename>/etc/adduser.conf</filename>, que vous pouvez &eacute;diter.
-Supposons que vous ayez cr&eacute;&eacute; l'utilisateur <emphasis>jacques</emphasis> dont
-le nom est <emphasis>Jacques Dupont</emphasis>. Attribuez un mot de passe
-&agrave; jacques si la s&eacute;curit&eacute; (pourquoi pas, m&ecirc;me des enfants pourraient pianoter
-sur le clavier) vous pr&eacute;occupe. Quand le programme vous demande si vous
-voulez que jacques appartienne &agrave; d'autres groupes, r&eacute;pondez:
-<informalexample>
-<screen>Login group is ``jacques''. Invite jacques into other groups: <userinput>wheel</userinput></screen>
-</informalexample>
-Vous pourrez alors ouvrir une session avec le compte
-<emphasis>jacques</emphasis> puis utiliser la commande
-<command>su</command> pour devenir root. Vous n'aurez dor&eacute;navant
-plus besoin d'ouvrir imm&eacute;diatement une session avec le compte root.</para>
-<para>Vous pouvez quitter <command>adduser</command> &agrave; tout moment en tapant
-<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>, et
-pour finir vous pourrez valider le nouveau compte utilisateur ou simplement
-taper <keycap>n</keycap> pour non. Peut-&ecirc;tre voudrez vous cr&eacute;er un second
-compte utilisateur (jeanne?), vous aurez ainsi une issue de secours si vous
-modifiez les fichiers de configuration de jacques et que quelque chose tourne
-mal.</para>
-<para>Une fois que vous avez fini, utilisez <command>exit</command>
-pour revenir &agrave; l'invite <systemitem class=prompt>login:</systemitem>
-et ouvrez une session sous le compte <emphasis>jacques</emphasis>. Il est
-toujours pr&eacute;f&eacute;rable de travailler autant que possible avec un compte utilisateur
-ordinaire qui n'a pas autant de droits&nbsp;-&nbsp;et donc ne pr&eacute;sente pas autant de
-risques&nbsp;-&nbsp;que root.</para>
-<para>Si vous avez d&eacute;j&agrave; cr&eacute;&eacute; un compte et que vous voulez que cet utilisateur
-puisse utiliser <command>su</command> pour devenir root, vous pouvez devenir
-root et &eacute;diter le fichier <filename>/etc/group</filename>, pour y ajouter
-jacques &agrave; la premi&egrave;re ligne (le groupe wheel). Familiarisez-vous d'abord avec
-l'&eacute;diteur de texte <command>vi</command>&nbsp;-&nbsp; ou utilisez l'&eacute;diteur plus
-simple <command>ee</command>, pr&eacute;sent sur les versions les plus r&eacute;centes
-de FreeBSD.</para>
-</sect1>
-<sect1>
-<title>Tour d'Horizon</title>
-<para>Sous une session utilisateur ordinaire, faites un tour d'horizon et
-essayez quelques commandes qui vous fourniront des informations et de l'aide
-quand vous utiliserez FreeBSD.</para>
-<para>Voici quelques commandes et ce qu'elles font :
-<variablelist>
-<varlistentry><term><command>id</command></term>
-<listitem>
-<para>Vous dit qui vous &ecirc;tes!</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>pwd</command></term>
-<listitem>
-<para>Vous dit o&ugrave; vous &ecirc;tes&nbsp;-&nbsp;le r&eacute;pertoire de travail
-courant.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>ls</command></term>
-<listitem>
-<para>Donne la liste des fichiers du r&eacute;pertoire courant.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>ls <option>-F</option></command></term>
-<listitem>
-<para>Donne la liste des fichiers du r&eacute;pertoire courant suivis d'une
-<literal>*</literal> pour les ex&eacute;cutables, d'un <literal>/</literal> pour
-les r&eacute;pertoires, et d'une <literal>@</literal> pour les liens
-symboliques.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>ls <option>-l</option></command></term>
-<listitem>
-<para>Donne la liste d&eacute;taill&eacute;e des fichiers du r&eacute;pertoire courant&nbsp;-&nbsp;taille,
-date, autorisations.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>ls <option>-a</option></command></term>
-<listitem>
-<para>Liste tous les fichiers, y compris les fichiers &ldquo;.&rdquo;
-cach&eacute;s. Si vous &ecirc;tes root, les fichiers &ldquo;.&rdquo; sont visibles
-sans l'option <option>-a</option>.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>cd</command></term>
-<listitem>
-<para>Change de r&eacute;pertoire courant. <command>cd
-<parameter>..</parameter></command> remonte d'un niveau dans l'arborescence;
-notez l'espace apr&egrave;s <command>cd</command>. <command>cd
-<parameter>/usr/local</parameter></command> va dans ce r&eacute;pertoire. <command>cd
-<parameter>~</parameter></command> va dans le r&eacute;pertoire de
-l'utilisateur courant&nbsp;-&nbsp;e.g., <filename>/usr/home/jacques</filename>.
-Essayez <command>cd <parameter>/cdrom</parameter></command>, puis
-<command>ls</command>, pour voir si votre CDROM est mont&eacute; et fonctionne.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>view <replaceable>nom_de fichier</replaceable></command></term>
-<listitem>
-<para>Vous permet de visualiser le fichier
-<replaceable>nom_de_fichier</replaceable> sans le modifier. Essayez
-<command>view <parameter>/etc/fstab</parameter></command>.
-<command>:q</command> pour quitter.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>cat <replaceable>nom_de_fichier</replaceable></command></term>
-<listitem>
-<para>Liste <replaceable>nom_de_fichier</replaceable> &agrave; l'&eacute;cran. S'il
-est trop long et que vous n'en voyez que la fin, appuyez sur
-<keycap>Arr&ecirc;t D&eacute;fil</keycap> et utilisez <keycap>fl&egrave;che-vers-le-haut</keycap>
-pour revenir en arri&egrave;re; vous pouvez aussi utiliser <keycap>Arr&ecirc;t D&eacute;fil</keycap>
-avec les pages de manuel. Appuyez &agrave; nouveau sur
-<keycap>Arr&ecirc;t D&eacute;fil</keycap> pour
-terminer votre lecture. Essayez <command>cat</command> sur quelques fichiers
-&ldquo;.&rdquo; de votre r&eacute;pertoire utilisateur&nbsp;-&nbsp;<command>cat
-<parameter>.cshrc</parameter></command>, <command>cat
-<parameter>.login</parameter></command>, <command>cat
-<parameter>.profile</parameter></command>.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-Notez les alias de quelques commandes <command>ls</command>
-dans le fichier <filename>.cshrc</filename> (ils sont tr&egrave;s pratiques).
-Vous pouvez cr&eacute;er d'autres alias en &eacute;ditant le fichier
-<filename>.cshrc</filename>. Vous pouvez aussi les mettre &agrave; disposition
-de tous les utilisateurs en les d&eacute;finissant dans le fichier de configuration
-g&eacute;n&eacute;ral <filename>/etc/csh.cshrc</filename>.</para>
-</sect1>
-<sect1>
-<title>Obtenir de l'Aide et de l'Information</title>
-<para>Voici quelques moyens d'obtenir de l'aide.
-<replaceable>Texte</replaceable> d&eacute;signe quelque chose de votre choix
-&nbsp;-&nbsp;normalement une commande ou un nom de fichier&nbsp;-&nbsp;que vous
-tapez.</para>
-<variablelist>
-<varlistentry><term><command>apropos <replaceable>texte</replaceable></command></term>
-<listitem>
-<para>Tout ce qui contient la cha&icirc;ne <replaceable>texte</replaceable>
-dans la <database>base de donn&eacute;es whatis</database>.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>man <replaceable>texte</replaceable></command></term>
-<listitem>
-<para>La page de manuel pour <replaceable>texte</replaceable>. C'est la
-principale source de documentation des syst&egrave;mes Unix. <command>man
-<parameter>ls</parameter></command> vous expliquera toutes les possibilit&eacute;s
-d'utilisation de la commande <command>ls</command>. Utilisez
-<keycap>Entr&eacute;e</keycap> pour faire d&eacute;filer le texte,
-<keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> pour remonter
-d'une page, <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo> pour
-passer &agrave; la page suivante, et <keycap>q</keycap> ou
-<keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo> pour
-quitter.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>which <replaceable>texte</replaceable></command></term>
-<listitem>
-<para>Vous dit o&ugrave; se trouve la commande
-<replaceable>texte</replaceable>
-dans vos chemins d'acc&egrave;s.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>locate <replaceable>texte</replaceable></command></term>
-<listitem>
-<para>Tous les r&eacute;pertoires o&ugrave; l'on trouve la cha&icirc;ne
-<replaceable>texte</replaceable>.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>whatis <replaceable>texte</replaceable></command></term>
-<listitem>
-<para>Vous dit ce qu'est la commande <replaceable>texte</replaceable>
-et o&ugrave; se trouve la page de manuel correspondante.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>whereis <replaceable>text</replaceable></command></term>
-<listitem>
-<para>Cherche le fichier <replaceable>texte</replaceable>, et vous en donne
-le chemin d'acc&egrave;s complet.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-<para>Essayez la commande <command>whatis</command> sur quelques utilitaires
-d'usage courant comme <command>cat</command>,
-<command>more</command>, <command>grep</command>,
-<command>mv</command>, <command>find</command>,
-<command>tar</command>, <command>chmod</command>,
-<command>chown</command>, <command>date</command> et
-<command>script</command>. <command>more</command> vous permet de lire
-une page &agrave; la fois comme sous DOS, e.g., <command>ls -l |
-more</command> ou <command>more
-<replaceable>nom_de_fichier</replaceable></command>.
-<literal>*</literal> sert de caract&egrave;re de substitution&nbsp;-&nbsp;e.g., <command>ls
-w*</command> vous donnera la liste de tous les fichiers commen&ccedil;ant par
-<literal>w</literal>.</para>
-<para>Certaines de ces commandes ne fonctionnent pas correctement?
-<command>locate</command> et <command>whatis</command>
-interrogent une base de donn&eacute;es qui est reconstruite chaque semaine.
-Si votre machine n'est pas en service le weekend (et sous FreeBSD), vous
-devrez peut-&ecirc;tre ex&eacute;cuter les commandes de maintenance quotidienne, hebdomadaire
-et mensuelle de temps &agrave; autre. Faites-le sous le compte root et attendez qu'elles se terminent avant de lancer la suivante.
-<informalexample>
-<screen># <userinput>/etc/daily</userinput>
-<lineannotation>sortie non mentionn&eacute;e</lineannotation>
-# <userinput>/etc/weekly</userinput>
-<lineannotation>sortie non mentionn&eacute;e</lineannotation>
-# <userinput>/etc/monthly</userinput>
-<lineannotation>sortie non mentionn&eacute;e</lineannotation>
-</screen></informalexample></para>
-<para>Si vous &ecirc;tes las d'attendre, appuyez sur
-<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> pour obtenir une
-nouvelle <firstterm>console virtuelle</firstterm>, et rouvrir une session.
-Apr&egrave;s tout, c'est un syst&egrave;me multi-utilisateurs, multi-t&acirc;ches. Ces
-commandes afficheront probablement des messages &agrave; l'&eacute;cran pendant
-qu'elles s'ex&eacute;cutent; vous pouvez taper <command>clear</command> pour effacer
-l'&eacute;cran. Une fois qu'elles auront termin&eacute;, regardez le contenu des fichiers
-<filename>/var/mail/root</filename> et
-<filename>/var/log/messages</filename>.</para>
-<para>Utiliser de telles commandes est une des t&acirc;ches d'administration
-syst&egrave;me&nbsp;-&nbsp;&eacute;tant seul utilisateur d'un syst&egrave;me Unix, vous &ecirc;tes votre
-propre administrateur syst&egrave;me. Pratiquement tout ce que vous aurez &agrave; faire
-sous le compte root sera l'administration de votre syst&egrave;me. Ces t&acirc;ches
-sont souvent mal d&eacute;crites dans les ouvrages volumineux sur Unix
-qui passent plus de temps &agrave; d&eacute;tailler les menus des gestionnaires de fen&ecirc;tres.
-Procurez-vous l'un des deux ouvrages de r&eacute;f&eacute;rence sur l'administration syst&egrave;me,
-soit Evi Nemeth et.al.'s <citetitle>UNIX System
-Administration Handbook</citetitle> (Prentice-Hall, 1995, ISBN
-0-13-15051-7)&nbsp;-&nbsp;deuxi&egrave;me &eacute;dition avec une couverture rouge; ou
-&AElig;leen Frisch's <citetitle>Essential System
-Administration</citetitle> (O'Reilly &amp; Associates, 1993, ISBN
-0-937175-80-3)<footnote><para>N.d.T.: traduit en fran&ccedil;ais sous le titre
-<citetitle>Les Bases de l'Administration Syst&egrave;me</citetitle>, chez le m&ecirc;me
-&eacute;diteur.</para></footnote>. J'ai personnellement utilis&eacute; Nemeth.</para>
-</sect1>
-<sect1>
-<title>Editer des Fichiers Texte</title>
-<para>Pour configurer votre syst&egrave;me, vous devez &eacute;diter des fichiers texte. Ils
-sont presque tous dans le r&eacute;pertoire <filename>/etc</filename>; vous devrez
-utiliser la commande <command>su</command> pour devenir root pour les
-modifier. Vous pouvez vous servir de l'&eacute;diteur simple <command>ee</command>,
-mais &agrave; long terme, cela vaut la peine d'apprendre &agrave; utiliser
-<command>vi</command>. Il y a une excellente introduction &agrave; vi dans
-<filename>/usr/src/contrib/nvi/docs/tutorial</filename> si vous l'avez
-install&eacute;. Sinon vous pouvez le t&eacute;l&eacute;charger par ftp sur
-<ulink url="ftp://ftp.cdrom.com">ftp://ftp.cdrom.com</ulink>
-dans le r&eacute;pertoire
-<filename>FreeBSD/FreeBSD-current/src/contrib/nvi/tutorial</filename>.</para>
-<para>Avant d'&eacute;diter un fichier, faites-en une copie de sauvegarde. Supposons
-que vous vouliez modifier le fichier <filename>/etc/rc.conf</filename>. Avec
-la commande <command>cd /etc</command> vous allez dans le r&eacute;pertoire
-<filename>/etc</filename>, puis tapez:
-<informalexample>
-<screen># <userinput>cp rc.conf rc.conf.orig</userinput></screen>
-</informalexample>
-pour recopier le fichier <filename>rc.conf</filename> dans
-<filename>rc.conf.orig</filename>, de fa&ccedil;on &agrave; pouvoir ensuite
-recopier <filename>rc.conf.orig</filename> dans <emphasis
-remap=tt>rc.conf</emphasis> pour revenir &agrave; la version originale. Il serait
-encore mieux de le d&eacute;placer (renommer) puis de faire la copie en sens inverse:
-<informalexample>
-<screen># <userinput>mv rc.conf rc.conf.orig</userinput>
-# <userinput>cp rc.conf.orig rc.conf</userinput></screen>
-</informalexample>
-parce que la commande <command>mv</command> conserve la date et le nom du
-propri&eacute;taire d'origine du fichier. Vous pouvez maintenant &eacute;diter le fichier
-<filename>rc.conf</filename>. Si vous voulez revenir &agrave; la version d'origine,
-utilisez alors <userinput>mv rc.conf rc.conf.myedit</userinput>
-(en supposant que vous vouliez conserver la version que vous avez modifi&eacute;e)
-puis:
-<informalexample>
-<screen># <userinput>mv rc.conf.orig rc.conf</userinput></screen>
-</informalexample>
-pour remettre l'original &agrave; sa place.</para>
-<para>Pour &eacute;diter un fichier, tapez:
-<informalexample>
-<screen># <userinput>vi <replaceable>nom_de_fichier</replaceable></userinput></screen>
-</informalexample>
-d&eacute;placez vous dans le fichier avec les touches fl&egrave;ches. <keycap>Echap</keycap> (la touche d'&eacute;chappement) met <command>vi</command> en mode commande. Voici
-quelques-unes de ces commandes:
-<variablelist>
-<varlistentry><term><command>x</command></term>
-<listitem>
-<para>efface le caract&egrave;re sur lequel se trouve le curseur.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>dd</command></term>
-<listitem>
-<para>efface toute la ligne (m&ecirc;me si elle d&eacute;passe la largeur de l'&eacute;cran et
-s'affiche sur plus d'une ligne).</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>i</command></term>
-<listitem>
-<para>permet d'ins&eacute;rer du texte devant la position du curseur.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>a</command></term>
-<listitem>
-<para>permet d'ins&eacute;rer du texte apr&egrave;s la position du curseur.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-Apr&egrave;s avoir tap&eacute; <command>i</command> ou <command>a</command>,
-vous pouvez ins&eacute;rer du texte. <command>Echap</command> vous ram&egrave;ne en mode
-commande. Vous pouvez alors taper:
-<variablelist>
-<varlistentry><term><command>:w</command></term>
-<listitem>
-<para>pour enregistrer le fichier modifi&eacute; sur disque et continuer &agrave;
-l'&eacute;diter,</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>:wq</command></term>
-<listitem>
-<para>pour enregistrer le fichier modifi&eacute; sur disque et quitter
-l'&eacute;diteur,</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>:q!</command></term>
-<listitem>
-<para>pour quitter l'&eacute;diteur sans enregistrer vos modifications,</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>/<replaceable>texte</replaceable></command></term>
-<listitem>
-<para>recherche la prochaine occurence de <replaceable>texte</replaceable> et
-y positionne le curseur; <command>/<keycap>Entr&eacute;e</keycap></command> (la touche
-Entr&eacute;e) recherche ensuite la prochaine occurrence de <replaceable>texte</replaceable>,</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>G</command></term>
-<listitem>
-<para>va &agrave; la fin du fichier,</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command><replaceable>n</replaceable>G</command></term>
-<listitem>
-<para>va &agrave; la <replaceable>n</replaceable>i&egrave;me ligne du fichier,</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><keycombo><keycap>Ctrl</><keycap>L</></keycombo></term>
-<listitem>
-<para>rafra&icirc;chit l'affichage,</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><keycombo><keycap>Ctrl</><keycap>b</></> et <keycombo><keycap>Ctrl</><keycap>f</></></term>
-<listitem>
-<para>remonte ou descend d'une page, de la m&ecirc;me fa&ccedil;on qu'avec les utilitaires
-<command>more</> et <command>view</>.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-</para>
-<para>Entra&icirc;nez-vous &agrave; utiliser <command>vi</> dans votre r&eacute;pertoire utilisateur
-en cr&eacute;ant un nouveau fichier avec <command>vi
-<replaceable>nom_de_fichier</></> puis ajoutez-y et effacez du texte,
-enregistrez le ficher et r&eacute;&eacute;ditez-le. <command>vi</> peut vous r&eacute;server
-des surprises parce qu'il est assez complexe, et il vous arrivera de taper
-accidentellement des commandes au r&eacute;sultat inattendu. (Certains aiment
-vraiment <command>vi</>&nbsp;-&nbsp;il est bien plus puissant qu'EDIT
-de DOS&nbsp;-&nbsp;voyez par exemple la commande <command>:r</> command.) Utilisez
-<keycap>Echap</> une ou plusieurs fois pour &ecirc;tre s&ucirc;r que vous &ecirc;tes en mode
-commande quand vous &ecirc;tes dans l'embarras, enregistrez r&eacute;guli&egrave;rement vos
-modifications avec la commande <command>:w</>, et utilisez la commande
-<command>:q!</> pour sortir et r&eacute;&eacute;diter la derni&egrave;re version enregistr&eacute;e
-avec <command>:w</> au besoin.</para>
-<para>Vous pouvez maintenant <command>cd</> vers <filename>/etc</filename>,
-<command>su</> pour devenir root, utiliser <command>vi</> pour &eacute;diter le
-fichier <filename>/etc/group</filename>, et ajouter un utilisateur au groupe
-wheel pour qu'il ait les m&ecirc;mes droits que root. Ajoutez juste une virgule puis
-le nom de l'utilisateur &agrave; la fin de la premi&egrave;re ligne, appuyez sur
-<keycap>Echap</>, et utilisez la commande <command>:wq</> pour enregistrer
-le fichier et quitter l'&eacute;diteur. La modification est aussit&ocirc;t prise en compte
-par le syst&egrave;me. (vous n'avez pas mis de blanc apr&egrave;s la virgule,
-n'est-ce-pas?)</para>
-</sect1>
-<sect1>
-<title>Imprimer des fichiers DOS</title>
-<para>A ce stade, vous n'avez probablement pas encore configur&eacute; FreeBSD
-pour pouvoir utiliser votre imprimante. Voici donc une m&eacute;thode pour
-cr&eacute;er un fichier &agrave; partir d'une page de manuel, l'enregistrer sur disquette
-et l'imprimer sous DOS. Si par exemple, vous voulez lire dans le d&eacute;tail
-ce qui concerne la modification des droits d'acc&egrave;s aux fichiers (c'est assez
-important), la commande man chmod vous affiche la page de manuel. La commande:
-<informalexample>
-<screen># <userinput>man chmod &gt; chmod.txt</></screen>
-</informalexample>
-recopie la page de manuel dans le fichier <filename>chmod.txt</filename> au lieu
-de l'afficher &agrave; l'&eacute;cran. Mettez maintenant une disquette format&eacute;e DOS dans le
-lecteur de disquettes A:, <command>su</> pour devenir root, et tapez:
-<informalexample>
-<screen># <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</></screen>
-</informalexample>
-pour monter le lecteur de disquettes dans le r&eacute;pertoire
-<filename>/mnt</filename>.</para>
-<para>Ensuite (plus besoin d'&ecirc;tre root, vous pouvez utiliser
-<command>exit</> pour redevenir l'utilisateur jacques), vous pouvez aller
-dans le r&eacute;pertoire o&ugrave; vous avez cr&eacute;&eacute; le fichier chmod.txt et le recopier
-sur la disquette avec la commande:
-<informalexample>
-<screen>% <userinput>cp chmod.txt /mnt</></screen>
-</informalexample>
-puis utiliser <command>ls /mnt</command> pour lister le contenu du r&eacute;pertoire
-<filename>/mnt</filename>, o&ugrave; devrait figurer le fichier
-<filename>chmod.txt</filename>.</para>
-<para>En particulier, il vous sera utile de cr&eacute;er un fichier &agrave; partir du
-r&eacute;sultat de la commande
-<filename>/sbin/dmesg</filename> en tapant:
-<informalexample>
-<screen>% <userinput>/sbin/dmesg &gt; dmesg.txt</></screen>
-</informalexample>
-et en copiant <filename>dmesg.txt</filename> sur la disquette.
-<command>/sbin/dmesg</command> liste les informations affich&eacute;es au d&eacute;marrage
-du syst&egrave;me, qu'il est utile de comprendre, parce qu'elles d&eacute;crivent la
-configuration mat&eacute;rielle reconnue par FreeBSD au d&eacute;marrage.
-Si vous posez des questions sur <email>freebsd-questions@FreeBSD.ORG</> ou
-dans un forum USENET&nbsp;-&nbsp;du type &ldquo;FreeBSD ne reconna&icirc;t pas mon
-lecteur de bande, que faire ? &rdquo;&nbsp;-&nbsp;on vous demandera ce qu'indique
-<command>dmesg</> sur votre syst&egrave;me.</para>
-<para>Vous pouvez maintenant d&eacute;monter le lecteur de disquette (sous le compte
-root) pour retirer la disquette avec la commande:
-<informalexample>
-<screen># <userinput>/sbin/umount /mnt</></screen>
-</informalexample>
-et red&eacute;marrer la machine pour passer sous DOS. Copiez ces fichiers dans un
-r&eacute;pertoire DOS, &eacute;ditez-les avec DOS EDIT, Windows Notepad, ou un traitement
-de texte, faites une petite modification pour avoir &agrave; les enregistrer et
-imprimez-les comme d'habitude sous DOS ou Windows. J'esp&egrave;re que cela marche!
-Les pages de manuel s'impriment mieux avec la commande <command>print</command>
-du DOS. (Copier des fichiers de FreeBSD vers une partition DOS mont&eacute;e est
-dans certains cas encore un peu risqu&eacute;).</para>
-<para>Pour pouvoir imprimer depuis FreeBSD, il faut d&eacute;finir l'imprimante dans
-le fichier <filename>/etc/printcap</filename> et cr&eacute;er le r&eacute;pertoire tampon
-correspondant dans <filename>/var/spool/output</filename>. Si votre imprimante
-est sur le port <hardware>lpt0</hardware> (qui s'appelle <hardware>LPT1</hardware> sous DOS),
-il suffit d'aller dans le r&eacute;pertoire <filename>/var/spool/output</filename> et
-(sous le compte root) de cr&eacute;er le r&eacute;pertoire <filename>lpd</>, s'il n'existe
-pas, en tapant:
-<informalexample>
-<screen># <userinput>mkdir lpd</></screen>
-</informalexample>
-L'imprimante devrait alors r&eacute;pondre si elle &eacute;tait sous tension au d&eacute;marrage du
-syst&egrave;me et les commandes lp ou lpr devraient envoyer un fichier &agrave;
-l'imprimante. Que le fichier s'imprime ou non d&eacute;pend de la
-configuration de l'imprimante, qui est d&eacute;crite dans le
-<ulink url="&url.handbook;index.html">manuel FreeBSD.</></para>
-</sect1>
-<sect1>
-<title>D'autres Commandes Utiles</title>
-<para>
-<variablelist>
-<varlistentry><term><command>df</></term>
-<listitem>
-<para>liste les syst&egrave;mes de fichiers mont&eacute;s, leur taille et leur utilisation.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>ps aux</></term>
-<listitem>
-<para>liste les processus actifs. <command>ps ax</> en est une forme abreg&eacute;e.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>rm <replaceable>nom_de_fichier</></></term>
-<listitem>
-<para>efface le fichier <replaceable>nom_de_fichier.</></para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>rm -R <replaceable>r&eacute;pertoire</></></term>
-<listitem>
-<para>efface le r&eacute;pertoire <replaceable>r&eacute;pertoire</> et tous ses
-sous-r&eacute;pertoires&nbsp;-&nbsp;attention!</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>ls -R</command></term>
-<listitem>
-<para>liste les fichiers du r&eacute;pertoire courant et de tous ses sous-r&eacute;pertoires;
-j'en utilisais une variante, <command>ls -AFR &gt; where.txt</command>,
-pour avoir la liste de tous les fichiers du r&eacute;pertoire racine
-<filename>/</filename> et (ind&eacute;pendamment) du r&eacute;pertoire
-<filename>/usr</filename> avant de trouver un meilleur moyen pour rechercher
-des fichiers.</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>passwd</></term>
-<listitem>
-<para>pour changer le mot de passe d'un utilisateur
-(ou le mot de passe root).</para>
-</listitem>
-</varlistentry>
-<varlistentry><term><command>man hier</></term>
-<listitem>
-<para>pages de manuel du syst&egrave;me de fichier Unix.</para>
-</listitem>
-</varlistentry>
-</variablelist></para>
-<para>Avec le commande <command>find</> vous pouvez localiser le fichier
-<replaceable>nom_de_fichier</replaceable> dans <filename>/usr</filename> ou un
-de ses sous-r&eacute;pertoires:
-<informalexample>
-<screen>% <userinput>find /usr -name "<replaceable>nom_de_fichier</>"</></screen>
-</informalexample>
-Vous pouvez employer <literal>*</literal> comme caract&egrave;re de substitution dans
-<parameter>"<replaceable>nom_de_fichier</>"</> (qui doit &ecirc;tre entre guillemets).
-Si vous demandez &agrave; <command>find</command> d'effectuer la recherche dans <filename>/</filename>
-au lieu de <filename>/usr</filename>, il va parcourir tous les syst&egrave;mes de
-fichiers mont&eacute;s, y compris le CDROM et la partition DOS.</para>
-<para>Voici un excellent livre qui d&eacute;taille les commandes et les utilitaires
-du syst&egrave;me Unix:
-Abrahams &amp; Larson, <citetitle>Unix for the Impatient</citetitle>
-(2nd ed., Addison-Wesley, 1996). Vous trouverez aussi beaucoup d'informations
-sur Unix sur l'Internet. Essayez l'
-<ulink url="http://www.eecs.nwu.edu/unix.html">Unix Reference
-Desk</ulink>.</para>
-</sect1>
-<sect1>
-<title>Etapes Suivantes</title>
-<para>Vous avez maintenant les outils n&eacute;cessaires &agrave; l'exploration du syst&egrave;me et
-&agrave; l'&eacute;dition de fichiers. Il y a &eacute;normement d'informations dans le
-<ulink url="&url.handbook;index.html">manuel FreeBSD
-</ulink> (que vous avez probablement aussi sur votre disque
-dur) et sur le
-<ulink url="http://www.freebsd.org/">
-site Internet de FreeBSD</ulink>. Il y a un grand nombre de logiciels sur le
-CDROM de <ulink url="http://www.cdrom.com/">Walnut Creek</ulink> et sur leur
-site Internet. Le "manuel" vous explique comment les utiliser
-(installer le logiciel s'il existe, avec <command>pkg_add
-/cdrom/packages/All/<replaceable>nom_du_logiciel</></>,
-o&ugrave; <replaceable>nom_du_logiciel</replaceable> est le nom du fichier
-correspondant au logiciel voulu). Le CDROM donne la liste des logiciels
-pr&eacute;-compil&eacute;s ou non <footnote><para>N.d.T: Les logiciels pr&eacute;vus pour &ecirc;tre utilis&eacute;s avec FreeBSD peuvent &ecirc;tre pr&eacute;-compil&eacute;s (&ldquo;packages&rdquo;) ou
-disponibles sous forme de code source (&ldquo;ports&rdquo;) livr&eacute; avec
-les proc&eacute;dures n&eacute;cessaires &agrave; sa compilation.</para></footnote> avec une
-courte description de
-chacun dans <filename>/cdrom/packages/index</filename>,
-<filename>/cdrom/packages/index.txt</filename> et
-<filename>/cdrom/ports/index</filename>. Il y a des descriptifs plus d&eacute;taill&eacute;s
-dans <filename>/cdrom/ports/*/*/pkg/DESCR</filename>, o&ugrave; les
-<literal>*</literal>s d&eacute;signent respectivement les sous-r&eacute;pertoires regroupant
-les logiciels par cat&eacute;gories et les noms des logiciels.</para>
-<para>Si vous trouvez le "manuel" trop subtil (avec ses commandes
-<command>lndir</> et ainsi de suite) en ce qui concerne l'installation des
-logiciel &agrave; compiler, voici une m&eacute;thode qui fonctionne habituellement:</para>
-<para>Trouvez le logiciel que vous voulez, par exemple <command>kermit</>. Il
-y aura un sous-r&eacute;pertoire correspondant sur le CDROM. Copiez ce sous-r&eacute;pertoire
-dans <filename>/usr/local</filename> (l&agrave; o&ugrave; l'on met g&eacute;n&eacute;ralement les logiciels
-que l'on installe pour les mettre &agrave; la disposition de tous les utilisateurs)
-avec:
-<informalexample>
-<screen># <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</></screen>
-</informalexample>
-Ceci cr&eacute;e normalement un sous-r&eacute;pertoire <filename>/usr/local/kermit</filename>
-qui contient tous les fichiers du sous-r&eacute;pertoire
-<command>kermit</command> du CDROM.</para>
-<para>Recherchez ensuite dans le r&eacute;pertoire
-<filename>/cdrom/ports/distfiles</filename> un fichier dont le nom
-indique que c'est le logiciel que vous voulez installer. Copiez ce fichier dans
-<filename>/usr/ports/distfiles</filename>; avec les versions r&eacute;centes,
-vous pouvez sauter cette &eacute;tape, FreeBSD s'en chargera.
-Dans le cas de <command>kermit</>, il n'y a aucun fichier associ&eacute; dans
-<filename>/cdrom/ports/distfiles</filename>.</para>
-<para>Puis <command>cd</> dans le sous-r&eacute;pertoire de
-<filename>/usr/local/kermit</filename> qui contient le fichier
-<filename>Makefile</>. Tapez:
-<informalexample>
-<screen># <userinput>make all install</></screen>
-</informalexample>
-</para>
-<para>Pendant l'installation, le syst&egrave;me ira chercher par ftp les
-fichiers compress&eacute;s qu'il ne trouve pas dans
-<filename>/usr/ports/distfiles</filename>. Si vous n'&ecirc;tes pas
-encore connect&eacute; &agrave; l'Internet et que le fichier correspondant au
-logiciel n'existe pas dans
-<filename>/cdrom/ports/distfiles</filename>, vous devrez r&eacute;cup&eacute;rer
-ce fichier sur une autre machine et le copier dans
-<filename>/usr/ports/distfiles</filename> depuis une disquette ou
-votre partition Dos. Lisez <filename>Makefile</> (Avec <command>cat</>,
-<command>more</> ou <command>view</>) pour trouver sur quel site (le
-"master distribution site"&nbsp;-&nbsp;site de distribution d'origine) aller pour
-r&eacute;cup&eacute;rer le fichier et pour conna&icirc;tre
-son nom. Ce nom sera tronqu&eacute; si vous t&eacute;l&eacute;chargez le fichier sous DOS, et
-vous devrez redonner au fichier son nom d'origine apr&egrave;s l'avoir recopi&eacute;
-dans <filename>/usr/ports/distfiles</filename>
-(avec la commande <command>mv</>) pour que FreeBSD le trouve.
-(Utilisez le transfert de fichier en mode binaire!) Revenez ensuite dans
-<filename>/usr/local/kermit</filename>, trouvez le sous-r&eacute;pertoire o&ugrave; est
-<filename>Makefile</>, et tapez <command>make all install</>.</para>
-<para>Il peut aussi arriver quand vous installez des logiciels pr&eacute;-compil&eacute;s ou
-non qu'un autre logiciel soit n&eacute;cessaire. Si l'installation s'interrompt avec
-un message du style <errorname>can't find unzip</errorname>, vous devez d'abord
-installer le logiciel unzip avant de continuer.</para>
-<para>Un fois le logiciel install&eacute;, tapez <command>rehash</> pour que FreeBSD
-relise la liste des fichiers dans les chemins d'acc&egrave;s par d&eacute;faut, de fa&ccedil;on
-&agrave; ce qu'il sache ce qui s'y trouve. (Si vous obtenez de nombreux messages
-d'erreur <errorname>path not found</> avec les commandes
-<command>whereis</> ou <command>which</command>, ajoutez les r&eacute;pertoires
-n&eacute;cessaires &agrave; la liste des chemins d'acc&egrave;s par d&eacute;faut d&eacute;finis dans le
-fichier <filename>.cshrc</filename> de votre r&eacute;pertoire utilisateur. L'instruction
-path d'Unix fonctionne de la m&ecirc;me fa&ccedil;on que sous DOS, &agrave; ceci pr&egrave;s que, pour des
-raisons de s&eacute;curit&eacute;, le r&eacute;pertoire courant n'y est pas d&eacute;fini (par d&eacute;faut); si
-le programme que vous cherchez se trouve dans le r&eacute;pertoire courant, vous devrez
-faire pr&eacute;c&eacute;der le nom du programme de <filename>./</filename> pour l'ex&eacute;cuter
-(pas d'espace apr&egrave;s le &ldquo;<filename>/</filename>&rdquo;.) </para>
-<para>Vous voudrez peut-&ecirc;tre installer la version la plus r&eacute;cente de Netscape
-depuis leur <ulink url="ftp://ftp.netscape.com">site ftp</ulink>. (Netscape
-a besoin du gestionnaire graphique X Window.) Il vous faut la version
-&ldquo;unknown bsd&rdquo;. Appliquez au fichier t&eacute;l&eacute;charg&eacute; les commandes
-<command>gunzip <replaceable>nom_de_fichier</></> puis <command>tar xvf
-<replaceable>nom_de_fichier</></>, recopiez l'ex&eacute;cutable dans
-<filename>/usr/local/bin</filename> ou dans tout autre r&eacute;pertoire o&ugrave; vous mettez les programmes, <command>rehash</>, et ajoutez les lignes suivantes aux fichiers
-<filename>.cshrc</filename> dans les r&eacute;pertoires de tous les
-utilisateurs ou (plus simplement) au fichier
-<filename>/etc/csh.cshrc</filename> de d&eacute;marrage de l'interpr&eacute;teur de commandes
-csh applicable &agrave; tous les utilisateurs:
-<informalexample>
-<programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
-setenv XNLSPATH /usr/X11R6/lib/X11/nls</>
-</informalexample>
-Ce qui pr&eacute;suppose que les fichiers <filename>XKeysymDB</> et le r&eacute;pertoire
-<filename>nls</> existent dans <filename>/usr/X11R6/lib/X11</filename>; s'ils
-n'y sont pas, trouvez-les et recopiez-les dans ce r&eacute;pertoire.</para>
-
-<para>Si vous aviez auparavant install&eacute; Netscape depuis le CDROM (ou par
-ftp), ne remplacez pas <filename>/usr/local/bin/netscape</filename> par
-le nouveau binaire; ce fichier n'est qu'une proc&eacute;dure qui positionne des
-variables d'environnement. Au lieu de cela, renommez le nouveau fichier
-binaire en <filename>netscape.bin</filename> et installez-le &agrave; la place
-de l'ancien, qui s'appelle <filename>/usr/local/lib/netscape/netscape.bin</filename>.</para>
-</sect1>
-<sect1>
-<title>Votre Environnement de Travail</title>
-<para>Votre interpr&eacute;teur de commandes est la composante la plus importante de
-votre environnement de travail. C'est l'&eacute;quivalent de COMMAND.COM sous DOS.
-C'est lui qui analyse les commandes que vous tapez au clavier et communique
-avec le reste du syst&egrave;me d'exploitation. Vous pouvez aussi &eacute;crire des
-proc&eacute;dures, qui sont l'&eacute;quivalent des fichiers .BAT de DOS.</para>
-<para>Deux interpr&eacute;teurs de commandes sont pr&eacute;-install&eacute;s par FreeBSD : csh et
-sh. csh est utile pour le travail en ligne de commande, mais vous devriez mieux
-&eacute;crire vos proc&eacute;dures pour sh (ou bash). <command>echo $SHELL</command> vous
-retourne le nom de l'interpr&eacute;teur que vous utilisez actuellement.</para>
-<para>L'interpr&eacute;teur csh est commode, mais tcsh fait tout ce que fait csh et
-plus encore. Il vous permet de rappeler des commandes avec les touches fl&egrave;ches
-et de les &eacute;diter. Il sait compl&eacute;ter les noms de fichiers avec la touche Tab (csh
-utilise la touche Echap) et il vous permet de revenir dans le r&eacute;pertoire o&ugrave; vous
-&eacute;tiez auparavant avec <command>cd -</command>. Il est aussi plus facile de
-modifier l'invite du syst&egrave;me avec tcsh. Il vous rend la vie beaucoup plus
-facile.</para>
-<para>Voici les trois &eacute;tapes pour installer un nouvel interpr&eacute;teur de
-commandes:</para>
-<para>Installez l'interpr&eacute;teur, pr&eacute;-compil&eacute; ou non, comme vous le feriez pour
-n'importe quel autre logiciel. Utilisez <command>rehash</command> puis
-<command>which tcsh</command> (en supposant que vous installiez tcsh) pour vous
-assurer qu'il est bien install&eacute;.</para>
-<para>Sous le compte root, &eacute;ditez le fichier <filename>/etc/shells</filename>,
-ajoutez-y une ligne pour le nouvel interpr&eacute;teur, dans notre cas
-/usr/local/bin/tcsh, et enregistrez votre modification. (certaines proc&eacute;dures
-d'installation font cela pour vous.)</para>
-<para>Utilisez <command>chsh</command> pour changer de fa&ccedil;on permanente
-d'interpr&eacute;teur de commandes, ou tapez <command>tcsh</command> sous l'invite
-du syst&egrave;me pour changer d'interpr&eacute;teur sans ouvrir de nouvelle session.</para>
-<para>Note: Il peut &ecirc;tre dangereux de changer l'interpr&eacute;teur de commandes du
-compte root en autre chose que sh ou csh avec les premi&egrave;res versions de FreeBSD
-et de nombreuses autres versions d'Unix; vous pourriez ne plus avoir
-d'interpr&eacute;teur de commandes quand le syst&egrave;me passe en mode mono-utilisateur.
-La solution est d'utiliser <command>su -m</command> pour devenir root et
-disposer de tcsh, parce que l'interpr&eacute;teur de commandes est partie int&eacute;grante
-de l'environnement. Vous pouvez rendre ce fonctionnement d&eacute;finitif en ajoutant
-un alias dans votre fichier <filename>.tchsrc</filename>:</para>
-<informalexample><screen>alias su su -m</screen>
-</informalexample>
-<para>Quand tcsh d&eacute;marre, il lit les fichiers
-<filename>/etc/csh.cshrc</filename> et <filename>/etc/csh.login</filename>.
-Il lit aussi le fichier <filename>.login</filename> de votre r&eacute;pertoire
-utilisateur, ainsi que le fichier <filename>.cshrc</filename>, &agrave; moins que vous
-n'ayez un fichier <filename>.tchsrc</filename>. Vous pouvez facilement en
-cr&eacute;er un en copiant simplement <filename>.cshrc</filename> dans
-<filename>.tcshrc</filename>.</para>
-<para>Maintenant que vous avez install&eacute; tcsh, vous pouvez modifier l'invite
-du syst&egrave;me. Vous trouverez plus de d&eacute;tails dans les pages de manuel de tcsh,
-mais voici une ligne que vous pouvez mettre dans votre fichier
-<filename>.tchsrc</filename>, qui vous dira combien de commandes vous avez
-tap&eacute;es, quelle heure il est, et dans quel r&eacute;pertoire vous vous
-trouvez. Un > sera aussi
-affich&eacute; si vous &ecirc;tes un utilisateur ordinaire et un # si vous &ecirc;tes root, mais
-tcsh fait cela de toute fa&ccedil;on:</para>
-<informalexample><screen>set prompt = "%h %t %~ %#"</screen>
-</informalexample>
-<para>Mettez cette ligne &agrave; la place de la ligne "set prompt" s'il y en a d&eacute;j&agrave;
-une, ou apr&egrave;s la ligne "if($?prompt) then" sinon. Mettez l'ancienne ligne en
-commentaire; vous pourrez toujours y revenir si vous le souhaitez. N'oubliez
-pas les espaces et les guillemets. Vous pouvez forcer la relecture du fichier
-<filename>.tchsrc</filename> en tapant <command>source .tcshrc</command>.</para>
-<para>Vous pouvez obtenir la liste des autres variables d'environnement qui ont
-&eacute;t&eacute; positionn&eacute;es avec la commande <command>env</command>. Le r&eacute;sultat vous
-indiquera entre autres quels sont votre &eacute;diteur et votre gestionnaire de page
-affich&eacute;e par d&eacute;faut, et quel type de terminal vous utilisez. Une
-commande utile si vous vous connectez &agrave; distance et ne pouvez ex&eacute;cuter un
-programme parce que le terminal n'est pas adapt&eacute; est
-<command>setenv TERM vt100</command>.</para>
-</sect1>
-<sect1>
-<title>Autres</title>
-<para>En tant que root, vous pouvez d&eacute;monter le CDROM avec <command>/sbin/umount
-/cdrom</>, le sortir du lecteur, en mettre un autre, et monter ce dernier avec
-<command>/sbin/mount_cd9660 /dev/cd0a /cdrom</> en supposant que
-<hardware>cd0a</> est le nom du p&eacute;riph&eacute;rique associ&eacute; &agrave; votre lecteur de
-CDROMs.</para>
-<para>Le syst&egrave;me de fichier actif&nbsp;-&nbsp;le deuxi&egrave;me CDROM de la
-distribution de FreeBSD&nbsp;-&nbsp;est utile si vous manquez d'espace disque.
-Vous pouvez essayez d'utiliser <command>emacs</> ou des jeux depuis le
-cdrom. Vous devrez utiliser <command>lndir</>, qui est install&eacute; en m&ecirc;me temps
-que le gestionnaire graphique X Window, pour dire au(x) programme(s)
-o&ugrave; trouver les fichiers dont il a besoin, parce qu'ils se trouvent dans le
-syst&egrave;me de fichiers <filename>/cdrom</filename> et non dans
-<filename>/usr</filename> et ses sous-r&eacute;pertoires, o&ugrave; ils devraient
-normalement &ecirc;tre. Lisez <command>man lndir</>.</para>
-<para>Vous pouvez supprimer un utilisateur (par example, jacques) en utilisant
-la commande <command>vipw</> pour &eacute;diter le fichier <filename>master.passwd</filename>
-(n'utilisez pas <command>vi</> directement sur le fichier
-<filename>master.passwd</filename>); effacez la ligne pour jacques et sauvez le
-fichier. Editez ensuite <filename>/etc/group</filename> et supprimez toutes
-les occurences de jacques.
-Enfin, allez dans <filename>/usr/home</filename> et utilisez
-<command>rm -R jacques</command> (pour effacer les fichiers et sous-r&eacute;pertoires
-du r&eacute;pertoire utilisateur de jacques).</para>
-</sect1>
-<sect1>
-<title>Vos Commentaires sont la Bienvenue</title>
-<para>Si vous utilisez ce guide, je suis interess&eacute;e de savoir o&ugrave; il ne vous est
-pas suffisament clair et ce que vous trouvez qu'il y manque, et aussi s'il vous
-a &eacute;t&eacute; utile. <footnote><para>N.d.T.: en anglais !</para></footnote>
-Mes remerciements &agrave; Eugene W. Stark, professeur d'informatique
-&agrave; SUNY-Stony Brook, et &agrave; John Fieber pour ses commentaires pertinents.</para>
-<para>Annelise Anderson, <email>andrsn@hoover.stanford.edu</></para>
-</sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/ntfs/Makefile b/fr_FR.ISO8859-1/articles/ntfs/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/ntfs/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/ntfs/article.sgml b/fr_FR.ISO8859-1/articles/ntfs/article.sgml
deleted file mode 100644
index a1922b42a2..0000000000
--- a/fr_FR.ISO8859-1/articles/ntfs/article.sgml
+++ /dev/null
@@ -1,490 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article id="ntfs" lang="fr">
- <artheader>
- <title>Installer le pilote NTFS pour FreeBSD</title>
- &artheader.copyright;
- <abstract>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.laurand;
- </abstract>
- </artheader>
-
- <sect1>
- <title>Installer le pilote NTFS pour FreeBSD 3.x</title>
-
- <para>Pour installer ce pilote, vous aurez besoin de recompiler un noyau car
- les fichiers d'en-t&ecirc;te utilis&eacute;s seront mis &agrave; niveau.
- Pour autant, aucun changement dans le fichier de configuration ne sera
- n&eacute;cessaire. Si vous n'avez pas install&eacute; les sources du
- noyau, vous pouvez soit recourir &agrave; <filename>sysinstall</filename>,
- ou bien entrer successivement en tant que
- <username>root</username>&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput>
-&prompt.root <userinput> cd /mnt/src</userinput>
-&prompt.root <userinput> cat ssys.?? | tar --unlink -zxpvf - -C /usr/src</userinput></screen>
- </informalexample>
-
- <para>Le pilote requiert &eacute;galement le fichier
- <filename>mntopt.h</filename> de l'archive source. Pour
- extraire son contenu&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput> cd /mnt/src</userinput>
-&prompt.root <userinput> cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount</userinput></screen>
- </informalexample>
-
- <para>Ensuite, en tant que <username>root</username>, cr&eacute;ez un
- r&eacute;pertoire pour y extraire le contenu de l'archive du pilote
- ntfs&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput> cd /tmp</userinput>
-&prompt.root <userinput> mkdir ntfs</userinput></screen>
- </informalexample>
-
- <para>T&eacute;l&eacute;chargez le fichier d'archive compress&eacute;
- contenant le code source du pilote ainsi que son fichier de mise &agrave;
- niveau&nbsp;-&nbsp;<foreignphrase>patch</foreignphrase>&nbsp;-&nbsp;dans
- <filename>/tmp/ntfs</filename>. Les deux fichiers dont vous avez besoin
- sont <filename>ntfs-0.17beta.tgz</filename> et
- <filename>ntfs.0.17beta-0.18beta.diff</filename>.</para>
-
- <para>Extrayez le contenu du fichier d'archive&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput> cd /tmp/ntfs</userinput>
-&prompt.root <userinput> tar xzvf ntfs-0.17beta.tgz</userinput></screen>
- </informalexample>
-
- <para>Il se peut que le num&eacute;ro de version (0.17beta) soit
- diff&eacute;rent.</para>
-
- <para>Ensuite, appliquez la mise &agrave; niveau de la version 0.17 &agrave;
- la version 0.18.</para>
-
- <informalexample>
-<screen>&prompt.root <userinput> cd /tmp/ntfs/src/sys/ntfs</userinput>
-&prompt.root <userinput> patch < /tmp/ntfs/ntfs.0.17beta-0.18beta.diff</userinput></screen>
- </informalexample>
-
- <para>Prenez garde &agrave; ce qu'aucune partie ne fasse d&eacute;faut.
- <citerefentry><refentrytitle>patch</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> g&eacute;n&egrave;re des copies de
- sauvegarde des fichiers qu'il met &agrave; jour (avec l'extension
- <filename>.orig</filename>), par cons&eacute;quent, si un probl&egrave;me
- survient, recopiez les fichiers <filename>.orig</filename>, et
- recherchez-en la cause.</para>
-
- <para>Recopiez maintenant les fichiers sources l&agrave; o&ugrave; ils
- doivent normalement &ecirc;tre&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /tmp/ntfs</userinput>
-&prompt.root <userinput>cp -p -R -i src /usr/</userinput></screen>
- </informalexample>
-
- <para>Il faut ensuite mettre &agrave; jour
- <filename>vnode.h</filename>&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/sys/sys</userinput>
-&prompt.root <userinput>patch < /tmp/ntfs/diff/vnode.h.diff</userinput></screen>
- </informalexample>
-
- <para>Encore une fois, v&eacute;rifiez que la mise &agrave; niveau s'est
- bien pass&eacute;e, vous devriez avoir&nbsp;:</para>
-
- <programlisting>
-Hmm... Looks like a new-style context diff to me...
-The text leading up to this was:
---------------------------
-|*** ./sys/sys/vnode.h.orig Fri Jan 1 06:12:51 1999
-|--- ./sys/sys/vnode.h Wed Dec 2 12:31:31 1998
---------------------------
-Patching file vnode.h using Plan A...
-Hunk #1 succeeded at 62.
-done
- </programlisting>
-
- <para>Vous allez maintenant pouvoir maintenant compiler l'ex&eacute;cutable
- <filename>mount_ntfs</filename>&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/sbin/mount_ntfs</userinput>
-&prompt.root <userinput>make</userinput>
-&prompt.root <userinput>make install</userinput></screen>
- </informalexample>
-
-<para>ainsi que le module du noyau&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/sys/modules/ntfs</userinput>
-&prompt.root <userinput>make</userinput>
-&prompt.root <userinput>make install</userinput></screen>
- </informalexample>
-
- <para>Pour finir, il faudra aussi recompiler le noyau (parce que
- <filename>vnode.h</filename> a &eacute;t&eacute; modifi&eacute;). Si vous
- utilisez le noyau <filename>GENERIC</filename>, faites une copie
- du fichier de configuration du noyau <filename>GENERIC</filename> (ce
- n'est pas absolument n&eacute;cessaire, mais de cette mani&egrave;re le
- nom du noyau sera mis &agrave; jour, et il sera plus facile d'identifier
- celui avec lequel vous d&eacute;marrez). J'ai pour habitude d'utiliser
- des noms assez repr&eacute;sentatifs, aussi
- <filename>GENERIC_NTFS</filename> me semble-t-il
- appropri&eacute;&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/sys/i386/conf</userinput>
-&prompt.root <userinput>cp GENERIC GENERIC_NTFS</userinput>
-&prompt.root <userinput>/usr/sbin/config GENERIC_NTFS</userinput>
-&prompt.root <userinput>cd ../../compile/GENERIC_NTFS</userinput>
-&prompt.root <userinput>make depend</userinput>
-&prompt.root <userinput>make</userinput>
-&prompt.root <userinput>make install</userinput></screen>
- </informalexample>
-
- <para>Ok, parfait, mais avant de red&eacute;marrer avec votre nouveau noyau,
- il faut identifier la
- tranche&nbsp;-&nbsp;<foreignphrase>slice</foreignphrase>&nbsp;-&nbsp;NTFS.
- Le num&eacute;ro de cette tranche va d&eacute;pendre du format de votre
- disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche
- NTFS et que votre tranche FreeBSD est la derni&egrave;re, elles seront
- num&eacute;rot&eacute;es (&ldquo;<literal>da</literal>&rdquo; ou
- peut-&ecirc;tre &ldquo;<literal>sd</literal>&rdquo; pour les disques SCSI,
- si vous avez mis &agrave; jour votre syst&egrave;me 2.2.x pour passer en
- 3.1, et ce sera &ldquo;<literal>wd</literal>&rdquo; si vous avez des
- disques IDE)&nbsp;:</para>
-
- <programlisting>
-FAT - da0s1
-NTFS - da0s2
-FreeBSD - da0s3
- </programlisting>
-
- <para>Si votre tranche NTFS et votre tranche FreeBSD sont invers&eacute;es
- et que vous avez install&eacute; NT avant FreeBSD, ce qui est d'ailleurs la m&eacute;thode recommand&eacute;e, vos num&eacute;ros de
- tranches seront les m&ecirc;mes, mais pas dans le m&ecirc;me
- ordre&nbsp;:</para>
-
- <programlisting>
-FAT - da0s1
-FreeBSD - da0s3
-NTFS - da0s2
- </programlisting>
-
- <para>Vous pouvez jeter un coup d'oeil au fichier
- <filename>/etc/fstab</filename> pour &ecirc;tre s&ucirc;r du num&eacute;ro
- de la tranche de FreeBSD (et &eacute;galement de celui de la tranche
- FAT).</para>
-
- <para>Il y a cependant une exception &agrave; tout cela, lorsque votre
- tranche NTFS est une &ldquo;partition logique&rdquo; dans une
- &ldquo;partition &eacute;tendue&rdquo;. Les &ldquo;partitions
- logiques&rdquo; sont toujours num&eacute;rot&eacute;es &agrave; partir de
- 5, peut importe le nombre de &ldquo;partitions&rdquo; sur le disque. Mon
- disque, par exemple, est agenc&eacute; comme ceci&nbsp;:</para>
-
- <programlisting>
-FAT - da0s1
-FreeBSD - da0s3
-Extended partition - da0s2
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NTFS - da0s5
- </programlisting>
-
- <para>Notez qu'une &ldquo;partition &eacute;tendue;&rdquo; se voit attribuer
- une
- tranche&nbsp;-&nbsp;&ldquo;<foreignphrase>slice</foreignphrase>&rdquo;,
- mais celle-ci ne peut pas &ecirc;tre utilis&eacute;e en tant que telle,
- c'est-&agrave;-dire que vous ne pouvez pas la monter.</para>
-
- <para>Apr&egrave;s avoir identifi&eacute; la tranche NTFS, vous pouvez
- ajouter une entr&eacute;e dans le fichier
- <filename>/etc/fstab</filename>. Notez que l'option <literal>ro</literal>
- signifie que le montage se fera en lecture seule (souvenez-vous que le
- pilote est en lecture seule). Cette entr&eacute;e provoquera le montage
- automatique de la tranche NTFS lors du d&eacute;marrage. Si vous voulez
- d&eacute;sactiver cette derni&egrave;re option, modifiez
- <literal>ro</literal> en <literal>ro,noauto</literal>, sans aucun espace
- ni avant ni apr&egrave;s la virgule&nbsp;! Vous aurez &eacute;galement
- besoin d'un point de montage, <filename>/ntfs</filename> dans cet
- exemple, ou si vous pr&eacute;ferez, <filename>/mnt</filename> &agrave;
- la place de <filename>/ntfs</filename> dans le fichier
- <filename>/etc/fstab</filename>&nbsp;:</para>
-
- <programlisting>
-# Device Mountpoint FStype Options Dump Pass#
-/dev/da0s5 /ntfs ntfs ro 0 0
- </programlisting>
-
- <para>Si vous pr&eacute;ferez ne pas monter la &ldquo;partition&rdquo; au
- d&eacute;marrage, montez-la ensuite en tant que <username>root</username>
- avec la commande&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>mount -t ntfs /dev/da0s5 /ntfs</userinput></screen>
- </informalexample>
-
- <para>Bien entendu, ajustez le fichier de pilote de
- p&eacute;riph&eacute;rique ainsi que le point de montage &agrave; votre
- syst&egrave;me.</para>
-
- <para>C'est fait&nbsp;! Il ne reste plus qu'&agrave;
- red&eacute;marrer.</para>
-
- <para>Bon courage&nbsp;! </para>
-
- </sect1>
-
- <sect1>
- <title>Installation du pilote NTFS sous FreeBSD 2.2.X</title>
-
- <para>Pour installer ce pilote, vous aurez besoin de recompiler un noyau car
- les fichiers d'en-t&ecirc;te utilis&eacute;s seront mis &agrave; niveau.
- Pour autant, aucun changement dans le fichier de configuration ne sera
- n&eacute;cessaire. Si vous n'avez pas install&eacute; les sources du
- noyau, vous pouvez soit recourir &agrave; <filename>sysinstall</filename>,
- ou bien entrer successivement en tant que
- <username>root</username>&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput>
-&prompt.root <userinput> cd /mnt/src</userinput>
-&prompt.root <userinput> cat ssys.?? | tar --unlink -zxpvf - -C /usr/src</userinput></screen>
- </informalexample>
-
- <para>Le pilote requiert &eacute;galement les fichiers
- <filename>mntopt.h</filename> de l'archive source. Pour extraire son
- contenu, tapez&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput> cd /mnt/src</userinput>
-&prompt.root <userinput> cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount</userinput></screen>
- </informalexample>
-
- <para>Ensuite, en tant que <username>root</username>, cr&eacute;ez un
- r&eacute;pertoire pour extraire le contenu de l'archive du pilote
- ntfs&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput> cd /tmp</userinput>
-&prompt.root <userinput> mkdir ntfs</userinput></screen>
- </informalexample>
-
- <para>T&eacute;l&eacute;chargez le fichier d'archive compress&eacute;
- contenant le code source du pilote ainsi que son fichier de mise &agrave;
- jour dans <filename>/tmp/ntfs</filename>.</para>
-
- <para>Extrayez le contenu de l'archive&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput> cd /tmp/ntfs</userinput>
-&prompt.root <userinput> tar xzvf ntfs-releng22-0.12beta.tgz</userinput></screen>
- </informalexample>
-
- <para>Il se peut que le num&eacute;ro de version (0.12beta) soit
- diff&eacute;rent.</para>
-
- <para>Recopiez maintenant les fichiers sources &agrave; l'endroit
- ad&eacute;quat&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd src</userinput>
-&prompt.root <userinput>cp -p -r * /usr/src</userinput></screen>
- </informalexample>
-
- <para>Ensuite, vous devez mettre &agrave; niveau les 3 fichiers
- d'en-t&ecirc;te du syst&egrave;me. Utilisez l'option <option>-l</option>
- (L minuscule) qui permet d'ignorer la diff&eacute;rence d'espacement, car
- j'ai remarqu&eacute; que l'utilisation des touches <keycap>TAB</keycap>
- et <keycap>Espace</keycap> rendait incompatible les fichiers originaux et
- les fichiers <filename>diff</filename>.</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/sys/sys</userinput>
-&prompt.root <userinput>patch -l malloc.h /tmp/ntfs/diff/malloc.h.diff</userinput>
-&prompt.root <userinput>patch -l mount.h /tmp/ntfs/diff/mount.h.diff</userinput>
-&prompt.root <userinput>patch -l vnode.h /tmp/ntfs/diff/vnode.h.diff</userinput></screen>
- </informalexample>
-
- <para>Si cette op&eacute;ration r&eacute;ussit, vous verrez s'afficher
- quelque chose de similaire &agrave;&nbsp;:</para>
-
- <programlisting>
-Hmm... Looks like a new-style context diff to me...
-The text leading up to this was:
---------------------------
-|*** ./sys/sys/vnode.h.orig Fri Jan 1 00:17:30 1999
-|--- ./sys/sys/vnode.h Fri Jan 1 00:17:35 1999
---------------------------
-Patching file vnode.h using Plan A...
-Hunk #1 succeeded at 58.
-done
- </programlisting>
-
- <para>Si malencontreusement, un (ou plusieurs) fichier de mise &agrave;
- jour faisait d&eacute;faut, sachez que
- <citerefentry><refentrytitle>patch</refentrytitle></citerefentry>
- fait toujours des copies des fichiers originaux avec le m&ecirc;me nom
- suivi de l'extension <filename>.orig</filename>.</para>
-
- <para>Maintenant, vous pouvez compiler le pilote. Il est n&eacute;cessaire
- d'ajouter <literal>BINDIR=/usr/sbin</literal> qui n'est pas
- d&eacute;fini dans le <filename>Makefile</filename>.</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/sbin/i386/mount_ntfs</userinput>
-&prompt.root <userinput>make</userinput>
-&prompt.root <userinput>make BINDIR=/usr/sbin install</userinput></screen>
- </informalexample>
-
- <para>Compilez ensuite les modules du noyau&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/lkm</userinput>
-&prompt.root <userinput>make</userinput>
-&prompt.root <userinput>make install</userinput></screen>
- </informalexample>
-
- <para>Pour finir, vous devez recompiler le noyau. Si vous utilisez le noyau
- <filename>GENERIC</filename>, faites une copie du fichier de configuration
- du noyau <filename>GENERIC</filename> (ce n'est pas absolument
- n&eacute;cessaire, mias de cette mani&egrave;re le nom du noyau sera mis
- &agrave; jour, et ce sera plus facile pour identifier le noyau avec lequel
- vous d&eacute;marrez). J'ai pour habitude d'utiliser des noms assez
- repr&eacute;sentatifs, aussi <filename>GENERIC_NTFS</filename> me semble
- appropri&eacute;&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>cd /usr/src/sys/i386/conf</userinput>
-&prompt.root <userinput>cp GENERIC GENERIC_NTFS</userinput>
-&prompt.root <userinput>/usr/sbin/config GENERIC_NTFS</userinput>
-&prompt.root <userinput>cd ../../compile/GENERIC_NTFS</userinput>
-&prompt.root <userinput>make depend</userinput>
-&prompt.root <userinput>make</userinput>
-&prompt.root <userinput>make install</userinput></screen>
- </informalexample>
-
- <para>Ok, parfait, mais avant de red&eacute;marrer avec votre nouveau noyau,
- il faut identifier la
- tranche&nbsp;-&nbsp;<foreignphrase>slice</foreignphrase>&nbsp;-&nbsp;NTFS.
- Le num&eacute;ro de cette tranche va d&eacute;pendre du format de votre
- disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche
- NTFS et que votre tranche FreeBSD est la derni&egrave;re, elles seront
- num&eacute;rot&eacute;es (remplacez &ldquo;<literal>w</literal>&rdquo; par
- &ldquo;<literal>s</literal>&rdquo; pour les disques SCSI)&nbsp;:</para>
-
- <programlisting>
-FAT - wd0s1
-NTFS - wd0s2
-FreeBSD - wd0s3
- </programlisting>
-
- <para>Si votre tranche NTFS et votre tranche FreeBSD sont invers&eacute;es
- et que vous avez install&eacute; NT avant FreeBSD, ce qui est d'ailleurs la m&eacute;thode recommand&eacute;e, vos num&eacute;ros de
- tranches seront les m&ecirc;mes, mais pas dans le m&ecirc;me
- ordre&nbsp;:</para>
-
- <programlisting>
-FAT - wd0s1
-FreeBSD - wd0s3
-NTFS - wd0s2
- </programlisting>
-
- <para>Vous pouvez jeter un coup d'oeil au fichier
- <filename>/etc/fstab</filename> pour &ecirc;tre s&ucirc;r du num&eacute;ro
- de la tranche FreeBSD (et &eacute;galement de celui de la tranche
- FAT).</para>
-
- <para>Il y a cependant une exception &agrave; tout cela, lorsque votre
- tranche NTFS est une &ldquo;partition logique&rdquo; dans une
- &ldquo;partition &eacute;tendue&rdquo;. Les &ldquo;partitions
- logiques&rdquo; sont toujours num&eacute;rot&eacute;es &agrave; partir de
- 5, peut importe le nombre de &ldquo;partitions&rdquo; sur le disque. Mon
- disque, par exemple, est agenc&eacute; comme ceci&nbsp;:</para>
-
- <programlisting>
-FAT - sd0s1
-FreeBSD - sd0s3
-Extended partition - sd0s2
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NTFS - sd0s5
- </programlisting>
-
- <para>Notez qu'une &ldquo;partition &eacute;tendue&rdquo; se voit attribuer
- une
- tranche&nbsp;-&nbsp;&ldquo;<foreignphrase>slice</foreignphrase>&rdquo;,
- mais celle-ci ne peut pas &ecirc;tre utilis&eacute;e en tant que telle,
- c'est-&agrave;-dire que vous ne pouvez pas la monter.</para>
-
- <para>Apr&egrave;s avoir identifi&eacute; la tranche NTFS, vous pouvez
- ajouter une entr&eacute;e dans le fichier
- <filename>/etc/fstab</filename>. Notez que l'option <literal>ro</literal>
- signifie que le montage se fera en lecture seule (souvenez-vous que le
- pilote est en lecture seule). Cette entr&eacute;e provoquera le montage
- automatique de la tranche NTFS lors du d&eacute;marrage. Si vous voulez
- d&eacute;sactiver cette derni&egrave;re option, modifiez
- <literal>ro</literal> en <literal>ro,noauto</literal>, sans aucun espace
- ni avant ni apr&egrave;s la virgule&nbsp;! Vous aurez &eacute;galement
- besoin d'un point de montage, <filename>/ntfs</filename> dans cet
- exemple, ou si vous pr&eacute;ferez, <filename>/mnt</filename> &agrave;
- la place de <filename>/ntfs</filename> dans le fichier
- <filename>/etc/fstab</filename>&nbsp;:</para>
-
- <programlisting>
-# Device Mountpoint FStype Options Dump Pass#
-/dev/sd0s5 /ntfs ntfs ro 0 0
- </programlisting>
-
- <para>Si vous pr&eacute;ferez ne pas monter la &ldquo;partition&rdquo; au
- d&eacute;marrage, montez-la ensuite en tant que <username>root</username>
- avec la commande&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root <userinput>mount -t ntfs /dev/sd0s5 /ntfs</userinput></screen>
- </informalexample>
-
- <para>Bien entendu, ajustez le fichier de pilote de
- p&eacute;riph&eacute;rique ainsi que le point de montage &agrave; votre
- syst&egrave;me.</para>
-
- <para>C'est fait&nbsp;! Il ne reste plus qu'&agrave;
- red&eacute;marrer. Si vous avez choisi de monter la
- &ldquo;partition&rdquo; au d&eacute;marrage, vous verrez s'afficher
- quelques messages de diagnostic tout &agrave; fait
- inoffensifs&nbsp;:</para>
-
- <programlisting>
-ntfs_init():
-ntfs_mountfs(): bps: 512, spc: 1, media: f8, mftrecsz: 2 (2 sects)
-ntfs_mountfs(): mftcn: 0x315e5|0x287245
-ntfs_mountfs(): case-sens., uid: 0, gid: 0, mode: 777
-ntfs_iget(): read &#36;MFT ntnode
-ntfs_mountfs(): reading &#36;UpCase....OK
- </programlisting>
-
- <para>Bon courage&nbsp;! </para>
-
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/ppp/Makefile b/fr_FR.ISO8859-1/articles/ppp/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/ppp/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/ppp/article.sgml b/fr_FR.ISO8859-1/articles/ppp/article.sgml
deleted file mode 100755
index 100f07af58..0000000000
--- a/fr_FR.ISO8859-1/articles/ppp/article.sgml
+++ /dev/null
@@ -1,1894 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article lang="fr">
-<artheader>
-<title>P&eacute;dants Principes PPP</title>
-&artheader.copyright;
-<abstract>
-&abstract.license;
-&abstract.disclaimer;
-&trans.a.haby;
-</abstract>
-</artheader>
-<sect1>
-<title>Introduction</title>
-<para>Le protocole de connexion PPP en mode utilisateur de la version 2.2 de
-FreeBSD (appel&eacute; aussi &ldquo;IIJ-PPP&rdquo;) supporte maintenant
-la r&eacute;&eacute;criture de paquets pour les connexions &agrave; l'Internet. Cette possibilit&eacute;,
-connue aussi sous le nom de &ldquo;Mascarade (Masquerading)&rdquo;,
-&ldquo;Alias IP (IP Aliasing)&rdquo;, ou &ldquo;Traduction d'Adresse
-R&eacute;seau (Network Adresse Translation)&rdquo;, permet &agrave; un syst&egrave;me FreeBSD
-d'interagir comme routeur de connexion &agrave; la demande entre un r&eacute;seau local
-et un fournisseur d'acc&egrave;s &agrave; Internet. Les machines du r&eacute;seau local peuvent
-utiliser l'unique connexion de la machine FreeBSD &agrave; l'Internet pour &eacute;changer
-des informations avec ce dernier.</para>
-<sect2>
-<title>But de ce document</title>
-<para>Ce document<footnote><para>N.d.T: Si vous souhaitez consulter le document
-original en langue anglaise, il se trouve sur
-<ulink url="http://www.FreeBSD.org/tutorials/ppp/ppp.html">http://www.FreeBSD.org/ppp/ppp.html</ulink>.</para></footnote>
-vous explique comment:</para>
-<itemizedlist>
-<listitem><para>Configurer le syst&egrave;me FreeBSD pour permettre les connexions
-vers l'ext&eacute;rieur,</para></listitem>
-<listitem><para>Partager une seule connexion vers l'ext&eacute;rieur avec les autres
-machines du r&eacute;seau,</para></listitem>
-<listitem><para>Configurer les machines Windows pour utiliser la machine
-FreeBSD comme passerelle vers l'Internet.</para></listitem>
-</itemizedlist>
-<para>Bien que l'objectif de ce document soit avant tout d'expliquer comment
-configurer la traduction d'adresses IP, il fournit aussi des exemples
-d'installation et de configuration des autres composants. Chaque section
-est ind&eacute;pendante et peut &ecirc;tre utilis&eacute;e pour configurer divers aspects d'une
-passerelle FreeBSD entre plusieurs r&eacute;seaux.</para>
-</sect2>
-</sect1>
-<sect1 id="sect2">
-<title>Mise en oeuvre du r&eacute;seau local</title>
-<para>Bien que le programme <command>ppp</command> puisse, et soit g&eacute;n&eacute;ralement
-utilis&eacute; pour fournir des services &agrave; la <emphasis>seule</emphasis> machine
-FreeBSD, il peut aussi servir &agrave; en faire une &ldquo;passerelle&rdquo; ou
-&ldquo;routeur&rdquo; entre les autres dispositifs reli&eacute;s au r&eacute;seau local
-et l'Internet ou tout autre service connect&eacute;.</para>
-<sect2>
-<title>Topologie classique du r&eacute;seau</title>
-<para>Ce document s'applique &agrave; un r&eacute;seau local dont la
-topologie est&nbsp;-&nbsp;classiquement&nbsp;-&nbsp;la suivante:</para>
-<programlisting>
-
-+=========+ =======> Connexion &agrave; Internet ( Wanadoo, AOL, etc. )
-| | \
-| FreeBSD |=======
-| "Curly" |
-| |
-+====+====+
- |
-|=================+============+====| <== R&eacute;seau Local Ethernet
- | | |
-+====+====+ +====+====+ +====+====+
-| | | | | |
-| Win95 | | WFW | | WinNT |
-| "Larry" | | "Moe" | | "Shemp" |
-| | | | | |
-+=========+ +=========+ +=========+
-
-</programlisting>
-</sect2>
-<sect2>
-<title>Hypoth&egrave;ses sur le r&eacute;seau local</title>
-<para>Pour les besoins de notre exemple, nous supposerons que :</para>
-<para>Il y a trois stations et un serveur reli&eacute;s par le r&eacute;seau Ethernet
-local:</para>
-<itemizedlist>
-<listitem><para>un serveur FreeBSD (&ldquo;Curly&rdquo;) avec un contr&ocirc;leur
-Ethernet NE-2000 configur&eacute; sur &ldquo;ed0&rdquo;,</para></listitem>
-<listitem><para>une station de travail Windows 95 (&ldquo;Larry&rdquo;) avec
-les pilotes TCP/IP 32-bits natifs de Microsoft,</para></listitem>
-<listitem><para>une station de travail Windows for Workgroups
-(&ldquo;Larry&rdquo;) avec les extension TCP/IP 16-bits de
-Microsoft,</para></listitem>
-<listitem><para>une station de travail Windows NT (&ldquo;Larry&rdquo;) avec
-les pilotes TCP/IP 32-bits natifs de Microsoft.</para></listitem>
-</itemizedlist>
-<para>Les adresses IP du r&eacute;seau Ethernet sur lequel se base notre exemple
-ont &eacute;t&eacute; attribu&eacute;es dans l'espace d'adresses priv&eacute;es d&eacute;fini par la RFC-1597,
-comme suit:</para>
-<programlisting>
-Nom Adresse IP
-"Curly" 192.168.1.1 # La machine FreeBSD
-"Larry" 192.168.1.2 # La machine Windows 95
-"Moe" 192.168.1.3 # La machine Windows for Workgroups
-"Shemp" 192.168.1.4 # La machine Windows NT
-</programlisting>
-<para>Nous supposerons aussi que le modem est connect&eacute; sur le premier port s&eacute;rie
-(<filename>/dev/cuaa0</filename> ou <filename>COM1:</filename> selon la
-terminologie DOS) de la machine FreeBSD.</para>
-<para>Enfin, nous supposerons que notre fournisseur d'acc&egrave;s Internet nous
-fournit automatiquement les adresses IP des deux extr&eacute;mit&eacute;s de la liaison PPP
-(point &agrave; point) : celle de notre machine FreeBSD et celle de la machine du c&ocirc;t&eacute;
-du fournisseur (adressage dynamique). Les d&eacute;tails de configuration de la
-connexion de la machine FreeBSD &agrave; l'ext&eacute;rieur sont donn&eacute;s au chapitre
-<link linkend="chap3">Configuration du syst&egrave;me FreeBSD</link>.</para>
-</sect2>
-</sect1>
-<sect1 id="chap3">
-<title>Configuration du syst&egrave;me FreeBSD</title>
-<para>Il y a trois informations &agrave; fournir au syst&egrave;me FreeBSD avant de le relier
-au r&eacute;seau local de notre exemple:</para>
-<itemizedlist>
-<listitem><para>Son nom de machine (<filename>hostname</filename>),
-&ldquo;Curly&rdquo; dans notre exemple,</para></listitem>
-<listitem><para>La configuration de son interface r&eacute;seau,</para></listitem>
-<listitem><para>Le fichier <filename>/etc/hosts</filename> (qui liste les noms
-et les adresses IP des autres machines du r&eacute;seau).</para></listitem>
-</itemizedlist>
-<para>Si vous avez install&eacute; FreeBSD via une connexion r&eacute;seau, il
-est possible que certaines de ces informations soient d&eacute;j&agrave; d&eacute;finies.</para>
-<para>M&ecirc;me si vous pensez que votre syst&egrave;me FreeBSD a d&eacute;j&agrave; &eacute;t&eacute; correctement
-configur&eacute; au moment de l'installation, il vous mieux vous assurer de la
-validit&eacute; de chacune de ces informations pour vous &eacute;viter des ennuis par la
-suite.</para>
-<sect2 id="sect31">
-<title>Contr&ocirc;ler le nom de la machine FreeBSD</title>
-<para>Il est possible que le nom de la machine FreeBSD ait &eacute;t&eacute; d&eacute;fini et
-enregistr&eacute; lors de l'installation du syst&egrave;me. Pour le v&eacute;rifier, entrez,
-&agrave; l'invite du syst&egrave;me, la commande suivante:</para>
-<para>
-<userinput>
-<prompt>#</prompt> hostname
-</userinput>
-</para>
-<para>Le nom de la machine FreeBSD sera affich&eacute; sur une seule ligne. Si ce nom
-para&icirc;t correct (c'est tr&egrave;s subjectif :-), vous pouvez passer au paragraphe
-<link linkend="sect32">Contr&ocirc;ler la configuration de l'interface Ethernet</link>.</para>
-<para>Dans notre exemple, le r&eacute;sultat de la commande <command>hostname</command>
-devrait &ecirc;tre &ldquo;curly.my.domain&rdquo; si le nom de la machine a &eacute;t&eacute;
-correctement d&eacute;fini &agrave; l'installation, ou ensuite. (A ce stade, ne vous
-pr&eacute;occupez pas du suffixe &ldquo;.my.domain&rdquo;, nous verrons cela par la
-suite. Ce qui compte maintenant est le nom qui pr&eacute;c&egrave;de le premier
-&ldquo;.&rdquo;)</para>
-<para>Si le nom de machine n'a pas &eacute;t&eacute; d&eacute;fini &agrave; l'installation, la r&eacute;ponse de
-<command>hostname</command> sera probablement &ldquo;myname.my.domain&rdquo;.
-Vous devez alors &eacute;diter le fichier <filename>/etc/rc.conf</filename> pour
-d&eacute;finir le nom du syst&egrave;me.</para>
-<sect3>
-<title>D&eacute;finir le nom de la machine FreeBSD</title>
-<note>
-<para>Vous devez &ecirc;tre en session sous &ldquo;root&rdquo; pour &eacute;diter les
-fichiers de configuration du syst&egrave;me.</para>
-</note>
-<note>
-<para>Si vous introduisez des erreurs dans les fichiers de configuration, il y
-a de fortes chances que votre syst&egrave;me <emphasis>ne red&eacute;marre</emphasis> pas
-correctement! Soyez prudents !</para>
-</note>
-<para>Le nom de machine du syst&egrave;me FreeBSD est d&eacute;fini au d&eacute;marrage par le
-fichier <filename>/etc/rc.conf</filename>. Utilisez l'&eacute;diteur par d&eacute;faut
-(&ldquo;ee&rdquo;) pour &eacute;diter ce fichier.</para>
-<para>Sous une session &ldquo;root&rdquo;, visualisez le fichier dans l'&eacute;diteur
-avec la commande:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ee /etc/rc.conf
-</userinput>
-</para>
-<para>Avec les touches fl&egrave;ches, allez jusqu'&agrave; la ligne qui d&eacute;finit le nom de
-machine du syst&egrave;me FreeBSD. Par d&eacute;faut, vous y trouvez:</para>
-<literallayout>
----
-### Basic network options: ###
-hostname="myname.my.domain" # Set this !
----
-</literallayout>
-<para>Remplacez ces lignes, par exemple, par:</para>
-<literallayout>
----
-### Basic network options: ###
-hostname="curly.my.domain" # Set this !
----
-</literallayout>
-<para>Une fois la modification faite, appuyez sur la touche
-<keycap>Echap</keycap> pour aller dans le menu de commandes de
-l'&eacute;diteur. Choisissez
-&ldquo;leave editor&rdquo; (quitter l'&eacute;diteur) et s&eacute;lectionnez bien l'option
-&ldquo;save changes&rdquo; (enregistrer les modifications) quand la question
-vous est pos&eacute;e.</para>
-</sect3>
-</sect2>
-<sect2 id="sect32">
-<title>Contr&ocirc;ler la configuration de l'interface Ethernet</title>
-<para>Rappelons nos hypoth&egrave;ses : l'interface Ethernet de la machine s'appelle
-&ldquo;ed0&rdquo;. C'est la valeur par d&eacute;faut pour les contr&ocirc;leurs NE-1000,
-NE-2000, WD/SMC mod&egrave;les 8003, 8013 et Elite Ultra (8216).</para>
-<para>Les fichiers d'interface d'autres mod&egrave;les de contr&ocirc;leurs peuvent
-avoir d'autres noms sous FreeBSD. Si vous n'&ecirc;tes pas certain du nom
-correspondant &agrave; votre contr&ocirc;leur, consultez les Questions Fr&eacute;quemment Pos&eacute;es
-&agrave; propos de
-FreeBSD (&ldquo;FAQ&rdquo;) et substituez la bonne valeur dans les exemples
-qui suivent.</para>
-<para>De la m&ecirc;me fa&ccedil;on que pour le nom de la machine, l'interface Ethernet du
-syst&egrave;me FreeBSD a peut-&ecirc;tre &eacute;t&eacute; configur&eacute;e &agrave; l'installation.</para>
-<para>Pour consulter la configuration des interfaces (Ethernet et autres) de
-votre syst&egrave;me FreeBSD), utilisez la commande suivante:</para>
-<screen>
-<prompt>#</prompt> <userinput>ifconfig -a</userinput>
-</screen>
-<para>Soit en clair: "Donnes-moi la CONFIGuration des InterFaces de mes
-p&eacute;riph&eacute;riques r&eacute;seau."</para>
-<para>Par exemple:</para>
-<screen>
-<prompt>#</prompt> <userinput>ifconfig -a</userinput>
-ed0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
-inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
-ether 01:02:03:04:05:06
-lp0: flags=8810&lt;POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
-tun0: flags=8050&lt;POINTOPOINT,RUNNING, MULTICAST> mtu 1500
-l0: flags=c010&lt;OINTOPOINT,LINK2,MULTICAST> mtu 552
-ppp0: flags=8010&lt;POINTOPOINT,MULTICAST> mtu 1500
-lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
-inet 127.0.0.1 netmask 0xff000000
-<prompt>#</prompt>
-</screen>
-<para>Sur cet exemple, les p&eacute;riph&eacute;riques suivants sont reconnus :</para>
-<itemizedlist>
-<listitem><para><filename>ed0</filename>: l'interface
-Ethernet,</para></listitem>
-<listitem><para><filename>lp0</filename>: l'interface parall&egrave;le
-(que nous n'utiliserons pas ici),</para></listitem>
-<listitem><para><filename>tun0</filename>: l'interface SLIP (IP sur ligne s&eacute;rie,
-que nous n'utiliserons pas ici),</para></listitem>
-<listitem><para><filename>ppp0</filename>: un autre interface PPP
-(pour le module <command>ppp</command> int&eacute;gr&eacute; au noyau, que n'utiliserons pas
-ici),</para></listitem>
-<listitem><para><filename>lp0</filename>: l'interface
-"en boucle"&nbsp;-&nbsp;"loopback"&nbsp;-&nbsp;que
-nous n'utiliserons pas non plus).</para></listitem>
-</itemizedlist>
-<para>Dans l'exemple, l'interface &ldquo;ed0&rdquo; est active
-(&ldquo;UP&rdquo;) et fonctionne (&ldquo;RUNNING&rdquo;). Les indications
-importantes sont:</para>
-<orderedlist>
-<listitem><para>L'interface est active (&ldquo;UP&rdquo;),</para></listitem>
-<listitem><para>Elle a une adresse Ethernet (&ldquo;inet&rdquo;), dans notre
-cas: 192.168.1.1,</para></listitem>
-<listitem><para>Elle a un masque de sous-r&eacute;seau (&ldquo;netmask&rdquo;;
-0xffffff00 qui &eacute;quivaut &agrave; 255.255.255.0) correct,</para></listitem>
-<listitem><para>Elle a une adresse de diffusion (&ldquo;broadcast&rdquo;;
-ici, 192.168.1.255) valide.</para></listitem>
-</orderedlist>
-<para>Si la ligne d&eacute;crivant l'interface Ethernet mentionne quelque chose
-comme:</para>
-<programlisting>
-ed0: flags=8802&lt;BROADCAST,SIMPLEX,MULTICAST> mtu 1500
-ether 01:02:03:04:05:06
-</programlisting>
-<para>c'est que cette interface n'est pas encore configur&eacute;e.</para>
-<para>Si l'interface Ethernet est d&eacute;j&agrave; configur&eacute;e, vous pouvez passer
-directement au paragraphe <link linkend="sect34">Renseigner la liste des
-autres machines du r&eacute;seau</link>.
-Sinon, continuez en s&eacute;quence.</para>
-<sect3>
-<title>Configurer votre interface Ethernet</title>
-<note>
-<para>Vous devez &ecirc;tre en session sous &ldquo;root&rdquo; pour &eacute;diter les
-fichiers de configuration du syst&egrave;me.</para>
-</note>
-<note>
-<para>Si vous introduisez des erreurs dans les fichiers de configuration, il y
-a de fortes chances que votre syst&egrave;me <emphasis>ne red&eacute;marre</emphasis> pas
-correctement! Soyez prudents !</para>
-</note>
-<para>Les param&egrave;tres de configuration des interfaces r&eacute;seau sont d&eacute;finis au
-d&eacute;marrage par le fichier <filename>/etc/rc.conf</filename>. Utilisez l'&eacute;diteur
-par d&eacute;faut (&ldquo;ee&rdquo;) pour &eacute;diter ce fichier.</para>
-<para>Sous une session &ldquo;root&rdquo;, visualisez le fichier dans l'&eacute;diteur
-avec la commande:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ee /etc/rc.conf
-</userinput>
-</para>
-<para>Vers la vingti&egrave;me ligne environ du fichier, se trouve la section qui
-d&eacute;finit quelles interfaces r&eacute;seau doivent &ecirc;tre mises en service au
-d&eacute;marrage. Le fichier de configuration par d&eacute;faut contient la ligne :</para>
-<programlisting>
-network_interfaces="lo0" # List of network interfaces (lo0 is loopback)
-</programlisting>
-<para>que vous devrez modifier pour dire &agrave; FreeBSD que vous voulez ajouter un
-autre p&eacute;riph&eacute;rique, en l'occurence l'interface &ldquo;ed0&rdquo;, en:</para>
-<programlisting>
-network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback)
-</programlisting>
-<para>(Faites attention &agrave; l'espace entre la d&eacute;finition de l'interface en boucle
-&ldquo;lo0&rdquo; et l'interface Ethernet &ldquo;ed0&rdquo;.)</para>
-<note>
-<para>Si le nom correspondant &agrave; votre interface n'est pas &ldquo;ed0&rdquo;,n'oubliez pas de mettre la valeur ad&eacute;quate &agrave; la place.</para>
-</note>
-<para>Si vous avez install&eacute; FreeBSD via une connexion r&eacute;seau, la ligne
-&ldquo;<filename>network_interfaces</filename>&rdquo; comporte peut-&ecirc;tre
-d&eacute;j&agrave; un r&eacute;f&eacute;rence &agrave; votre carte Ethernet. Dans ce cas, assurez vous que son nom
-soit correct.</para>
-<para>Les lignes qui suivent celles o&ugrave; sont list&eacute;es les interfaces &agrave; mettre en
-service d&eacute;crivent les param&egrave;tres de chacune de ces interfaces. Dans le fichier
-<filename>/etc/rc.conf</filename> par d&eacute;faut, il n'y a qu'un seule ligne qui
-dit:</para>
-<programlisting>
-ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration
-</programlisting>
-<para>Vous devrez ajouter une ligne qui d&eacute;finisse les caract&eacute;ristiques de
-votre interface &ldquo;ed0&rdquo;.</para>
-<para>Si vous avez install&eacute; FreeBSD via une connexion r&eacute;seau, la ligne
-&ldquo;<filename>ifconfig_ed0=</filename>&rdquo; existe peut-&ecirc;tre
-d&eacute;j&agrave;. V&eacute;rifiez alors qu'elle contienne bien les bonnes valeurs.</para>
-<para>En nous r&eacute;f&eacute;rant &agrave; notre exemple, nous ins&eacute;rerons la ligne suivante,
-imm&eacute;diatement apr&egrave;s la d&eacute;finition de l'interface
-&ldquo;en boucle&rdquo;:</para>
-<programlisting>
-ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0"
-</programlisting>
-<para>Apr&egrave;s modification, cette section du fichier
-<filename>/etc/rc.conf</filename> doit ressembler &agrave;:</para>
-<programlisting>
----
-network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback)
-ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration
-ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0"
----
-</programlisting>
-<para>Un fois que vous avez fait toutes les modifications n&eacute;cessaires,
-appuyez sur la touche
-<keycap>Echap</keycap> pour aller dans le menu de commandes de
-l'&eacute;diteur. Choisissez
-&ldquo;leave editor&rdquo; (quitter l'&eacute;diteur) et s&eacute;lectionnez bien l'option
-&ldquo;save changes&rdquo; (enregistrer les modifications) quand la question
-vous est pos&eacute;e.</para>
-</sect3>
-</sect2>
-<sect2 id="sect33">
-<title>Autoriser la transmission de paquets</title>
-<para>Par d&eacute;faut, FreeBSD n'active pas le transmission de paquets
-entre les diff&eacute;rentes interfaces r&eacute;seau d'une machine. En d'autres
-termes, les fonctions de routage (aussi appel&eacute;es de passerelle)
-ne sont pas disponibles.</para>
-<para>Si vous voulez utiliser le programme <command>ppp</command>
-comme poste Internet autonome et non comme passerelle entre le
-r&eacute;seau local et votre fournisseur d'acc&egrave;s &agrave; Internet, vous pouvez
-passer directement au paragraphe
-<link linkend="sect34">Renseigner la liste des autres machines du r&eacute;seau</link>.</para>
-<para>Si vous voulez utiliser le programme <command>ppp</command>
-pour connecter &agrave; la fois votre machine FreeBSD (pour servir de
-routeur) et les autres postes du r&eacute;seau local, vous devez autoriser
-la transmission de paquets IP.</para>
-<para>Pour cela, vous devez &eacute;diter le fichier
-<filename>/etc/rc.conf</filename>. Visualisez le fichier dans l'&eacute;diteur
-avec la commande:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ee /etc/rc.conf
-</userinput>
-</para>
-<para>Vers la quatre-vingt-cinqui&egrave;me ligne environ, vous trouverez la section
-qui contr&ocirc;le la transmission de paquets. Elle ressemblera a ceci:</para>
-<literallayout>
----
-gateway_enable="NO" # Set to YES if the host will be a gateway
----
-</literallayout>
-<para>Modifiez-la en:</para>
-<para>
-<literallayout>
----
-gateway_enable="YES" # Set to YES if the host will be a gateway
----
-</literallayout>
-</para>
-<para>et quittez l'&eacute;diteur (en enregistrant vos modifications!).</para>
-<note>
-<para>Cette ligne contient peut-&ecirc;tre d&eacute;j&agrave;
-<command>gateway_enable="YES"</command>
-si la transmission de paquets IP a &eacute;t&eacute; autoris&eacute;e au moment de l'installation
-du syst&egrave;me FreeBSD.</para>
-</note>
-</sect2>
-<sect2 id="sect34">
-<title>Renseigner la liste des autres machines du r&eacute;seau
-(<filename>/etc/hosts</filename>)</title>
-<para>La derni&egrave;re &eacute;tape de la configuration du r&eacute;seau local vu de la machine
-FreeBSD consiste &agrave; cr&eacute;er la liste des noms et des adresses TCP/IP des
-diff&eacute;rentes machines raccord&eacute;es au r&eacute;seau local. Cette liste est d&eacute;finie dans le
-fichier <filename>/etc/hosts</filename>.</para>
-<para>Par d&eacute;faut, ce fichier ne contient qu'une ligne: le nom et l'adresse
-de l'interface &ldquo;en boucle&rdquo;. Par convention, ce nom est toujours
-&ldquo;localhost&rdquo; et son adresse 127.0.0.1. (Reportez-vous &agrave; l'exemple
-de configuration des interfaces au paragraphe
-<link linkend="sect32">Contr&ocirc;ler la configuration de l'interface Ethernet</link>.)</para>
-<para>Pour &eacute;diter le fichier <filename>/etc/hosts</filename>, tapez la
-commande:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ee /etc/hosts
-</userinput>
-</para>
-<para>Allez jusqu'&agrave; la fin du fichier (en lisant au passage les commentaires,
-ce sont des informations utiles!) et ajoutez (toujours dans le cas du
-r&eacute;seau de notre exemple) les noms et les adresses IP suivantes:</para>
-<programlisting>
-192.168.1.1 curly curly.my.domain # machine FreeBSD
-192.168.1.2 larry larry.my.domain # machine Windows 95
-192.168.1.3 moe moe.my.domain # machine Windows for Workgroups
-192.168.1.4 shemp shemp.my.domain # machine Windows NT
-</programlisting>
-<para>(Vous ne devez pas modifier la ligne
-&ldquo;<command>127.0.0.1 localhost</command>&rdquo;.)</para>
-<para>Une fois que vous avez ajout&eacute; ces lignes, appuyez sur la touche
-<keycap>Echap</keycap> pour aller dans le menu de commandes de
-l'&eacute;diteur. Choisissez
-&ldquo;leave editor&rdquo; (quitter l'&eacute;diteur) et s&eacute;lectionnez bien l'option
-&ldquo;save changes&rdquo; (enregistrer les modifications) quand la question
-vous est pos&eacute;e.</para>
-</sect2>
-<sect2 id="sect35">
-<title>Tester le syst&egrave;me FreeBSD</title>
-<para>F&eacute;licitations! Une fois que vous en &ecirc;tes arriv&eacute; l&agrave;, votre machine
-FreeBSD est maintenant une machine UNIX connect&eacute;e au r&eacute;seau! Si vous avez
-d&ucirc; modifier votre fichier <filename>/etc/rc.conf</filename>, il faut
-red&eacute;marrer votre machine FreeBSD. Cela va faire deux choses importantes:</para>
-<itemizedlist>
-<listitem><para>Appliquer les modifications de configuration des interfaces,
-et:</para></listitem>
-<listitem><para>V&eacute;rifier que le syst&egrave;me red&eacute;marre sans erreur de configuration
-flagrante.</para></listitem>
-</itemizedlist>
-<sect3>
-<title>V&eacute;rifier le bon fonctionnement de l'interface
-&ldquo;en boucle&rdquo;</title>
-<para>Pour v&eacute;rifier que l'interface &ldquo;en boucle&rdquo; est correctement
-configur&eacute;e, ouvrez une session sous &ldquo;root&rdquo; et tapez:</para>
-<para>
-<userinput><prompt>#</prompt> ping localhost</userinput>
-</para>
-<para>Vous devriez voir d&eacute;filer des messages du type:</para>
-<para>
-<userinput><prompt>#</prompt> ping localhost</userinput>
-<programlisting>
-PING localhost.my.domain. (127.0.0.1): 56 bytes
-64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.219 ms
-64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.200 ms
-64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.187 ms
-[...]
-</programlisting>
-</para>
-<para>jusqu'&agrave; ce que vous tapiez
-<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
-pour arr&ecirc;ter ce d&eacute;lire.</para>
-</sect3>
-<sect3>
-<title>V&eacute;rifier le bon fonctionnement de l'interface Ethernet</title>
-<para>Pour v&eacute;rifier que l'interface Ethernet est correctement
-configur&eacute;e, tapez:</para>
-<para>
-<userinput><prompt>#</prompt> ping curly</userinput>
-</para>
-<para>Vous devriez voir:</para>
-<para>
-<userinput><prompt>#</prompt> ping curly</userinput>
-<programlisting>
-PING curly.my.domain. (192.168.1.1): 56 bytes
-64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.219 ms
-64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.200 ms
-64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.187 ms
-[...]
-</programlisting>
-</para>
-<para>L'information importante dans ces deux exemples est que les noms
-(&ldquo;localhost&rdquo; et &ldquo;curly&rdquo;) correspondent bien
-&agrave; leurs adresses IP (127.0.0.1 et 192.168.1.1). Cela confirme que le fichier
-<filename>/etc/hosts</filename> est correct.</para>
-<para>Si les noms et les adresses appara&icirc;ssent correctement dans les r&eacute;sultats
-de la commande <command>ping</command> mais que des messages d'erreur sont
-affich&eacute;s, quelque chose ne va pas dans la configuration des interfaces.
-Retournez au paragraphe <link linkend="sect31">Contr&ocirc;ler le nom de la machine FreeBSD</link> et
-v&eacute;rifiez de nouveau votre configuration.</para>
-<para>Si maintenant, tout va bien, passez &agrave; la section suivante.</para>
-</sect3>
-</sect2>
-</sect1>
-<sect1>
-<title>Configurer la liaison PPP vers l'ext&eacute;rieur</title>
-<para>Il y a deux fa&ccedil;ons d'utiliser le programme <command>ppp</command>: en
-mode &ldquo;Interactif&rdquo; et en mode &ldquo;Automatique&rdquo;.</para>
-<para>En mode Interactif, vous:</para>
-<itemizedlist>
-<listitem>
-<para>Etablissez manuellement la connexion avec votre fournisseur d'acc&egrave;s
-Internet,</para>
-</listitem>
-<listitem>
-<para>Surfez, transf&eacute;rez des fichiers et envoyez du courrier
-&eacute;lectronique, etc.</para>
-</listitem>
-<listitem>
-<para>Coupez manuellement la connexion avec votre fournisseur d'acc&egrave;s
-Internet.</para>
-</listitem>
-</itemizedlist>
-<para>En mode Automatique, le programme <command>ppp</command> surveille
-silencieusement les op&eacute;rations du syst&egrave;me FreeBSD et se connecte et se
-d&eacute;connecte automagiquement &agrave; votre fournisseur d'acc&egrave;s selon le besoin,
-int&eacute;grant de fa&ccedil;on transparente l'Internet &agrave; votre r&eacute;seau.</para>
-<sect2>
-<title>Sauvegarder vos fichiers de configuration <command>ppp</command>
-d'origine</title>
-<para>Avant de modifier les fichiers qu'utilise <command>ppp</command>, il
-est bon de sauvegarder les fichiers par d&eacute;faut cr&eacute;&eacute;s &agrave; l'installation de
-FreeBSD.</para>
-<para>Ouvrez une session sous le compte &ldquo;root&rdquo;, et suivez la
-proc&eacute;dure ci-dessous:</para>
-<para>Allez dans le r&eacute;pertoire <filename>/etc</filename>:</para>
-<para>
-<userinput>
-<prompt>#</prompt> cd etc
-</userinput>
-</para>
-<para>Faites un copie des fichiers d'origine du r&eacute;pertoire
-<filename>ppp</filename>:</para>
-<para>
-<userinput>
-<prompt>#</prompt> cp -R ppp ppp.ORIGINAL
-</userinput>
-</para>
-<para>Vous devriez maintenant avoir un r&eacute;pertoire <filename>ppp</filename>
-et un r&eacute;pertoire <filename>ppp.ORIGINAL</filename> dans le r&eacute;pertoire
-<filename>etc</filename>.</para>
-</sect2>
-<sect2>
-<title>Cr&eacute;er vos propres fichiers de configuration de
-<command>ppp</command></title>
-<para>Par d&eacute;faut, la proc&eacute;dure d'installation de FreeBSD cr&eacute;e un certain
-nombre de fichiers d'exemple dans le r&eacute;pertoire <filename>/etc/ppp</filename>.
-Prenez un peu de temps pour parcourir ces fichiers. Ce sont des exemples
-emprunt&eacute;s &agrave; des syst&egrave;mes qui fonctionnent et ils illustrent les diff&eacute;rentes
-possibilit&eacute;s du programme <command>ppp</command>.</para>
-<para>Je vous encourage <emphasis>fortement</emphasis> &agrave; &eacute;tudier ces exemples
-et &agrave; les adapter &agrave; votre configuration.</para>
-<para>Pour plus d'informations sur le programme <command>ppp</command>, lisez
-les pages de manuel:</para>
-<para>
-<userinput>
-<prompt>#</prompt> man ppp
-</userinput>
-</para>
-<para>Pour plus d'informations sur le langage <command>chat</command>, utilis&eacute;
-par <command>ppp</command> pour &eacute;tablir la connexion, lisez les pages de
-manuel:</para>
-<para>
-<userinput>
-<prompt>#</prompt> man chat
-</userinput>
-</para>
-<para>La suite de ce chapitre d&eacute;crit le contenu recommand&eacute; des fichiers
-de configurations de <command>ppp</command>.</para>
-<sect3>
-<title>Le fichier <filename>/etc/ppp/ppp.conf</filename></title>
-<para>Le fichier <filename>/etc/ppp/ppp.conf</filename> contient les
-informations et les param&egrave;tres n&eacute;cessaires pour &eacute;tablir une connexion
-vers l'ext&eacute;rieur. Le
-<ulink url="&url.handbook;index.html">Manuel
-FreeBSD</ulink> d&eacute;crit en d&eacute;tail le contenu et la syntaxe de ce fichier.</para>
-<para>N'est d&eacute;crite ici que la configuration minimale n&eacute;cessaire pour arriver
-&agrave; &eacute;tablir une connexion.</para>
-<para>Voici le fichier <filename>/etc/ppp/ppp.conf</filename> que nous
-utiliserons sur notre passerelle entre le r&eacute;seau local et l'Internet:</para>
-<para>
-<programlisting>
-####################################################################
-# Fichier de Configuration de PPP ('/etc/ppp/ppp.conf')
-#
-# Param&egrave;tres par d&eacute;faut: Ces commandes sont toujours ex&eacute;cut&eacute;es
-# quand PPP est appel&eacute; et s'appliquent &agrave; toutes les configurations
-####################################################################
-default:
-set device /dev/cuaa0
-set speed 57600
-disable pred1
-deny pred1
-disable lqr
-deny lqr
-set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0
-OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"
-set redial 3 10
-#
-#
-####################################################################
-#
-# Configuration utilis&eacute;e en mode interactif :
-#
-# appel&eacute;e par: `ppp -alias interactive`
-#
-####################################################################
-interactive:
-set authname Your_User_ID_On_Remote_System
-set authkey Your_Password_On_Remote_System
-set phone 1-800-123-4567
-set timeout 300
-set openmode active
-accept chap
-#
-####################################################################
-#
-# Configuration utilis&eacute;e en mode &agrave; la demande ( automatique)
-#
-# appel&eacute;e par: 'ppp -auto -alias demand'
-#
-####################################################################
-demand:
-set authname Your_User_ID_On_Remote_System
-set authkey Your_Password_On_Remote_System
-set phone 1-800-123-4567
-set timeout 300
-set openmode active
-accept chap
-set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0
-add 0 0 127.2.2.2
-################################################################
-# Fin de /etc/ppp/ppp.conf
-</programlisting>
-</para>
-<para>Ce fichier, recopi&eacute; tel quel d'un syst&egrave;me op&eacute;rationnel, comporte trois
-parties:</para>
-<sect4>
-<title>La section &ldquo;default&rdquo;</title>
-<para> La section &ldquo;default:&rdquo; contient les informations et
-param&egrave;tres utilis&eacute;s par toutes les autres sections du fichier. Cette section
-est donc implicitement ajout&eacute;e &agrave; toutes les autres.</para>
-<para>C'est l'endroit id&eacute;al pour d&eacute;finir les valeurs par d&eacute;faut qui s'appliquent
-&agrave; toutes les connexions vers l'ext&eacute;rieur; en particulier, la configuration
-du modem et le dialogue d'initialisation de la connexion, qui ne changent
-pas, quel que soit le syst&egrave;me distant auquel vous vous connectez.</para>
-<para>Voici le d&eacute;tail de chacune des lignes de la section
-&ldquo;default:&rdquo; du fichier
-<filename>/etc/ppp/ppp.conf</filename>:</para>
-<para>
-<programlisting>
-set device /dev/cuaa0
-</programlisting>
-</para>
-<para>Cette instruction dit au programme <command>ppp</command> d'utiliser le
-premier port s&eacute;rie. Sous FreeBSD, le p&eacute;riph&eacute;rique &ldquo;/dev/cuaa0&rdquo;
-correspond au port appel&eacute; &ldquo;COM1:&rdquo; de DOS, Windows, Windows 95,
-etc.</para>
-<para>Si votre modem est sur le port &ldquo;COM2&rdquo;: vous devrez mettre
-&ldquo;/dev/cuaa1&rdquo;. &ldquo;/dev/cuaa2&rdquo; serait le port
-&ldquo;COM3:&rdquo;.</para>
-<para>
-<programlisting>
-set speed 57600
-</programlisting>
-</para>
-<para>Cette ligne indique au programme <command>ppp</command> la vitesse
-en &eacute;mission et en r&eacute;ception entre le port s&eacute;rie et le modem. Bien que le modem
-de notre configuration fonctionne &agrave; 28.8 Kbps, donner la valeur 56000 permet
-&agrave; la liaison s&eacute;rie de fonctionner suffisamment vite pour g&eacute;rer la compression de
-donn&eacute;es int&eacute;gr&eacute;e aux modems les plus r&eacute;cents.</para>
-<para>Si vous avez des probl&egrave;mes pour dialoguer avec votre modem &agrave; cette
-vitesse, descendez &agrave; une valeur inf&eacute;rieure: 38400, voir aussi faible que
-19200.</para>
-<para>
-<programlisting>
-disable pred1
-deny pred1
-</programlisting>
-</para>
-<para>Ces deux lignes d&eacute;sactivent la compression &ldquo;CCP/Predictor 1&rdquo;
-dont est capable le programme <command>ppp</command>. La version actuelle
-de <command>ppp</command> supporte la compression de donn&eacute;es selon la
-d&eacute;finition provisoire des standards Internet. Malheureusement, de nombreux
-fournisseurs d'acc&egrave;s ont des &eacute;quipements qui n'offrent pas cette possibilit&eacute;.
-Comme la plupart des modems r&eacute;cents sont capables de compression &agrave; la vol&eacute;e,
-vous ne perdrez probablement pas grand-chose en termes de performances en
-d&eacute;sactivant cette possibilit&eacute; sur votre machine FreeBSD et en interdisant
-au site distant de vous la r&eacute;clamer.</para>
-<para>
-<programlisting>
-disable lqr
-deny lqr
-</programlisting>
-</para>
-<para>Ces deux lignes contr&ocirc;lent l'&ldquo;audit de la qualit&eacute; de la
-liaison (Link Quality Reporting)&rdquo; qui est partie int&eacute;grante des
-sp&eacute;cifications du protocole PPP.
-(Voyez la RFC-1989 pour plus de d&eacute;tails.)</para>
-<para>La premi&egrave;re ligne, &ldquo;disable lqr&rdquo; instruit le programme
-<command>ppp</command> de ne pas &eacute;mettre de demandes de contr&ocirc;le de la
-qualit&eacute; de la liaison &agrave; la machine distante.</para>
-<para>La seconde ligne, &ldquo;deny lqr&rdquo; instruit le progamme
-<command>ppp</command> de ne pas accepter de demandes de contr&ocirc;le de la
-qualit&eacute; de la liaison de la machine distante.</para>
-<para>Comme la plupart des modems ont des proc&eacute;dures int&eacute;gr&eacute;es de d&eacute;tection et
-de correction d'erreur et que l'audit LQR est rarement int&eacute;gralement
-impl&eacute;ment&eacute;e par les constructeurs, il vaut en g&eacute;n&eacute;ral mieux ne pas utiliser
-cette possibilit&eacute;.</para>
-<para>
-<programlisting>
-set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATADT\\T TIMEOUT 40 CONNECT"
-</programlisting>
-</para>
-<note>
-<para>(Cette instruction doit &ecirc;tre &eacute;crite sur une seule ligne; ne tenez
-pas compte du formatage sur deux lignes, si elle se pr&eacute;sente ainsi dans ce
-document.)</para>
-</note>
-<para>Cette ligne d&eacute;crit le dialogue entre le programme <command>ppp</command>
-et le modem qui doit permettre d'&eacute;tablir la connexion et fournit des
-instructions rudimentaires sur la marche &agrave; suivre:</para>
-<itemizedlist>
-<listitem>
-<para>Une tentative d'appel &eacute;choue si le modem renvoie le code d'erreur
-&ldquo;BUSY (occup&eacute;)&rdquo;,</para>
-<para>Une tentative d'appel &eacute;choue aussi si le modem renvoie le code d'erreur
-&ldquo;NO CARRIER (pas de porteuse),&rdquo;,</para>
-<para>Le programme <command>ppp</command> doit constater, avec
-un d&eacute;lai maximum de cinq secondes entre chaque &eacute;v&eacute;nement, la s&eacute;quence
-d'&eacute;v&eacute;nements suivants:</para>
-</listitem>
-<listitem>
-<itemizedlist>
-<listitem>
-<para>Initialement, le programme <command>ppp</command> n'attend pas de
-r&eacute;ponse du modem (c'est le sens de la cha&icirc;ne <literal>\"\"</literal> dans
-l'instruction),</para>
-</listitem>
-<listitem>
-<para>Le programme enverra au modem la cha&icirc;ne &ldquo;ATE1Q0M0&rdquo; et
-attendra la r&eacute;ponse &ldquo;OK&rdquo;. Si cette r&eacute;ponse n'arrive pas, il enverra
-la commande d'interrogation &ldquo;AT&rdquo; et attendra &agrave; nouveau une r&eacute;ponse
-&ldquo;OK&rdquo;,</para>
-</listitem>
-<listitem>
-<para>Le programme devra attendre une seconde (c'est le sens de la cha&icirc;ne
-&ldquo;\\d&rdquo; dans l'instruction), et envoyer la s&eacute;quence d'appel au
-modem. Le pr&eacute;fixe &ldquo;ATDT&rdquo; est la commande d'appel standard pour
-les lignes t&eacute;l&eacute;phoniques &agrave; fr&eacute;quences vocales. Si vous n'avez pas de ligne
-&agrave; fr&eacute;quence vocale, remplacez &ldquo;ATDT&rdquo; par &ldquo;ATDP&rdquo;.
-La cha&icirc;ne &ldquo;\\T&rdquo; sera remplac&eacute;e par le num&eacute;ro
-de t&eacute;l&eacute;phone r&eacute;el (qui sera d&eacute;fini plus loin par la ligne
-&ldquo;set dial&rdquo;).</para>
-</listitem>
-</itemizedlist>
-</listitem>
-<listitem>
-<para>Pour finir, avec un d&eacute;lai d'attente de quarante secondes au maximum,
-le programme <command>ppp</command> doit recevoir un code d'acquittement
-&ldquo;CONNECT&rdquo; du modem.</para>
-</listitem>
-</itemizedlist>
-<para>Un &eacute;chec &agrave; une phase quelconque de ce dialogue sera interpret&eacute; comme
-un &eacute;chec d'appel et la connexion ne sera pas &eacute;tablie.</para>
-<para>(Pour avoir une description d&eacute;taill&eacute;e du mini-langage de commande
-utilis&eacute; par <command>ppp</command>, reportez-vous aux pages de manuel de
-<command>chat</command>.)</para>
-<para>
-<programlisting>
-set redial 3 10
-</programlisting>
-</para>
-<para>Cette ligne indique au programme <command>ppp</command> qu'en cas d'&eacute;chec,
-il peut faire jusqu'&agrave; trois nouvelles tentatives avec un temps d'attente de dix
-secondes entre chaque nouvel appel.</para>
-</sect4>
-<sect4 id="sect4122">
-<title>La section &ldquo;interactive&rdquo;</title>
-<para>La section &ldquo;interactive:&rdquo; contient les valeurs et les
-param&egrave;tres utilis&eacute;s par les connexions PPP interactives avec un syst&egrave;me
-distant particulier. Les lignes de la section &ldquo;default:&rdquo; sont
-automatiquement incluses dans cette section.</para>
-<para>L'exemple donn&eacute; ci-dessous suppose que vous vous connectiez &agrave; un syst&egrave;me
-qui sait identifier un utilisateur sans avoir &agrave; utiliser une s&eacute;rie de commandes
-baroques. Nous supposerons que le protocole CHAP est utilis&eacute; pour initialiser
-la session.</para>
-<para>A priori, si un syst&egrave;me Windows 95 peut &eacute;tablir la connexion d'un simple
-clic sur le bouton &ldquo;Connecter&rdquo;, la configuration donn&eacute;e en exemple
-devrait fonctionner.</para>
-<para>Si, &agrave; l'inverse, quand vous vous connectez chez votre fournisseur d'acc&egrave;s
-avec les utilitaires de Microsoft Windows 95, vous devez utiliser l'option
-&ldquo;Utiliser des proc&eacute;dures de connexion&rdquo;<footnote><para>N.d.T: ne
-disposant du mat&eacute;riel n&eacute;cessaire au contr&ocirc;le de certains de ces libell&eacute;s dans
-les versions fran&ccedil;is&eacute;es de Windows, ils ont &eacute;t&eacute; traduits du document en langue
-anglaise. En cas d'inexactitude, le lecteur voudra bien rectifier de
-lui-m&ecirc;me.</para></footnote>. il vous faudra alors
-lire les pages de manuel de <command>ppp</command> pour trouver des exemples
-de fichiers de configuration de PPP comportant des proc&eacute;dures
-&ldquo;expect / reponse&rdquo; pour &eacute;tablir votre connexion et vous devrez
-utiliser la commande &ldquo;set login&rdquo; &agrave; cet effet.</para>
-<para>Ou mieux, trouvez-vous un fournisseur d'acc&egrave;s qui offre l'authentification
-par PAP ou CHAP!</para>
-<para>La configuration donn&eacute;e en exemple a &eacute;t&eacute; utilis&eacute;e avec succ&egrave;s pour se
-connecter:</para>
-<itemizedlist>
-<listitem>
-<para>&agrave; Divers Shiva LanRovers,</para>
-</listitem>
-<listitem>
-<para>au r&eacute;seau IBM
-(<ulink url="http://www.ibm.net">http://www.ibm.net</ulink>),</para>
-</listitem>
-<listitem>
-<para>&agrave; AT&amp;T WorlNet
-(<ulink url="http://www.att.com/worldnet">http://www.att.com/worldnet</ulink>),</para>
-</listitem>
-<listitem>
-<para>&agrave; Erol's
-(<ulink url="http://www.erols.com">http://www.erols.com</ulink>).</para>
-</listitem>
-</itemizedlist>
-<para>Voici la description de chacune des lignes de la section
-&ldquo;interactive:&rdquo; du fichier <filename>/etc/ppp/ppp.conf</filename>
-de l'exemple:</para>
-<para>
-<programlisting>
-set authname Votre_Nom_d_Utilisateur_du_Syst&egrave;me_Distant
-</programlisting>
-</para>
-<para>Cette ligne d&eacute;finit avec quel nom d'utilisateur vous vous connectez au
-syst&egrave;me distant.</para>
-<para>
-<programlisting>
-set authkey Votre_Mot_de_Passe_Utilisateur_du_Syst&egrave;me_Distant
-</programlisting>
-</para>
-<para>Cette ligne d&eacute;finit le mot de passe que vous utilisez pour vous connecter
-au syst&egrave;me distant.</para>
-<para>
-<programlisting>
-set phone 012345678789
-</programlisting>
-</para>
-<para>C'est le num&eacute;ro de t&eacute;l&eacute;phone avec lequel vous joignez le syst&egrave;me
-distant.</para>
-<para>
-<programlisting>
-set timeout 300
-</programlisting>
-</para>
-<para>Cette ligne indique au programme <command>ppp</command> de couper la ligne
-s'il n'y a aucun &eacute;change pendant cinq minutes (300 secondes). Vous pouvez
-adapter cette ligne &agrave; votre besoin particulier.</para>
-<para>
-<programlisting>
-set openmode active
-</programlisting>
-</para>
-<para>Cette ligne dit au programme <command>ppp</command> de n&eacute;gocier la
-connexion d&egrave;s que la liaison entre les modems est &eacute;tablie. Certains sites
-distants le font automatiquement, d'autres non. Cette instruction permet
-&agrave; votre site d'initialiser la n&eacute;gociation.</para>
-<para>
-<programlisting>
-accept chap
-</programlisting>
-</para>
-<para>Cette ligne dit au programme <command>ppp</command> d'utiliser le
-protocole CHAP &ldquo;Challenge Handsake Autentification Protocole
-(protocole d'authentification par poign&eacute;e de main avec d&eacute;fi de
-d&eacute;cryptage)&rdquo; pour vous authentifier. Les valeurs &eacute;chang&eacute;es entre le
-syst&egrave;me local et le syst&egrave;me distant pour transmettre le nom d'utilisateur
-et le mot de passe sont d&eacute;finies par les lignes &ldquo;authname&rdquo; et
-&ldquo;authkey&rdquo;.</para>
-</sect4>
-<sect4>
-<title>La section &ldquo;demand&rdquo;</title>
-<para>La section &ldquo;demand:&rdquo; contient les valeurs et les
-param&egrave;tres utilis&eacute;s par les connexions PPP automatiques avec un syst&egrave;me
-distant particulier. Les lignes de la section &ldquo;default:&rdquo; sont
-automatiquement incluses dans cette section.</para>
-<para>A l'exception des deux derni&egrave;res lignes, cette section est identique &agrave;
-la section qui d&eacute;finit la configuration &ldquo;interactive&rdquo;.</para>
-<para>Comme indiqu&eacute; au paragraphe
-<link linkend="sect4122">La section &ldquo;interactive&rdquo;</link>, l'exemple donn&eacute;
-ci-dessous suppose que vous vous connectiez &agrave; un syst&egrave;me
-qui comprenne le protocole CHAP pour initialiser
-la session.</para>
-<para>Voici la description de chacune des lignes de la section
-&ldquo;demand:&rdquo; du fichier <filename>/etc/ppp/ppp.conf</filename>
-de l'exemple:</para>
-<para>
-<programlisting>
-set authname Votre_Nom_d_Utilisateur_du_Syst&egrave;me_Distant
-</programlisting>
-</para>
-<para>Cette ligne d&eacute;finit avec quel nom d'utilisateur vous vous connectez au
-syst&egrave;me distant.</para>
-<para>
-<programlisting>
-set authkey Votre_Mot_de_Passe_Utilisateur_du_Syst&egrave;me_Distant
-</programlisting>
-</para>
-<para>Cette ligne d&eacute;finit le mot de passe que vous utilisez pour vous connecter
-au syst&egrave;me distant.</para>
-<para>
-<programlisting>
-set phone 012345678789
-</programlisting>
-</para>
-<para>C'est le num&eacute;ro de t&eacute;l&eacute;phone avec lequel vous joignez le syst&egrave;me
-distant.</para>
-<para>
-<programlisting>
-set timeout 300
-</programlisting>
-</para>
-<para>Cette ligne indique au programme <command>ppp</command> de couper la ligne
-s'il n'y a aucun &eacute;change pendant cinq minutes (300 secondes). Vous pouvez
-adapter cette ligne &agrave; votre besoin particulier.</para>
-<para>
-<programlisting>
-set openmode active
-</programlisting>
-</para>
-<para>Cette ligne dit au programme <command>ppp</command> de n&eacute;gocier la
-connexion d&egrave;s que la liaison entre les modems est &eacute;tablie. Certains sites
-distants le font automatiquement, d'autres non. Cette instruction permet
-&agrave; votre site d'initialiser la n&eacute;gociation.</para>
-<para>
-<programlisting>
-accept chap
-</programlisting>
-</para>
-<para>Cette ligne dit au programme <command>ppp</command> d'utiliser le
-protocole CHAP &ldquo;Challenge Handsake Autentification Protocole
-(protocole d'authentification par poign&eacute;e de
-main avec d&eacute;fi de d&eacute;cryptage)&rdquo;
-pour vous authentifier. Les valeurs &eacute;chang&eacute;es entre le syst&egrave;me local et le
-syst&egrave;me distant pour transmettre le nom d'utilisateur et le mot de passe
-sont d&eacute;finies par les lignes &ldquo;authname&rdquo; et
-&ldquo;authkey&rdquo;</para>
-<para>
-<programlisting>
-set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0
-</programlisting>
-</para>
-<para>Cette commande d&eacute;finit une paire d'adresses IP fictives pour les deux
-extr&eacute;mit&eacute;s de la liaison point-&agrave;-point. Elle dit au programme
-<command>ppp</command> d'utiliser l'adresse 127.1.1.1 pour l'extr&eacute;mit&eacute; locale
-de la liaison g&eacute;r&eacute;e par le pilote de p&eacute;riph&eacute;rique
-&ldquo;tun0 (tunnel)&rdquo;(Reportez-vous au <ulink url="&url.handbook;index.html">manuel FreeBSD</ulink> pour une
-description de ce pilote) et l'adresse 127.2.2.2 pour l'extr&eacute;mit&eacute; distante.
-Le &ldquo;/0&rdquo; qui les suit pr&eacute;cise le nombre de digits significatifs de
-ces adresses, qui peuvent, (et doivent en fait) &ecirc;tre n&eacute;goci&eacute;es entre les
-deux syst&egrave;mes une fois la liaison &eacute;tablie. 255.255.255.0 est le masque de
-sous-r&eacute;seau qui s'applique &agrave; ces deux pseudo-interfaces.</para>
-<para>Rappelez-vous, nous avons suppos&eacute; que votre fournisseur d'acc&egrave;s vous
-assigne les adresses des deux extr&eacute;mit&eacute;s de la ligne! Si votre fournisseur
-vous a donn&eacute; une adresse particuli&egrave;re, vous pouvez la mentionner sur cette
-ligne <emphasis>&agrave; la place</emphasis> de l'adresse 127.1.1.1.</para>
-<para>Inversement, si votre fournisseur vous a donn&eacute; une adresse particuli&egrave;re
-pour son c&ocirc;t&eacute; de la liaison, vous pouvez la mentionner sur cette
-ligne <emphasis>&agrave; la place</emphasis> de l'adresse 127.2.2.2.</para>
-<para>Dans les deux cas, il vaut mieux conserver le &ldquo;/0&rdquo; apr&egrave;s les
-deux adresses. Cela laisse la possibilit&eacute; au programme <command>ppp</command>
-de changer d'adresse(s) <emphasis>s'il en a besoin</emphasis>.</para>
-<para>
-<programlisting>
-add 0 0 127.2.2.2
-</programlisting>
-</para>
-<para>Cette derni&egrave;re ligne dit au programme <command>ppp</command> d'ajouter une
-route par d&eacute;faut pour le trafic vers l'adresse (fictive) 127.2.2.2 du
-fournisseur d'acc&egrave;s.</para>
-<note>
-<para>Si vous avez donn&eacute;e l'adresse que vous a indiqu&eacute; votre fournisseur d'acc&egrave;s
-&agrave; la place de l'adresse 127.2.2.2 &agrave; la ligne &ldquo;set ifaddr&rdquo;, vous
-devez utiliser la m&ecirc;me adresse ici, &agrave; la place de 127.2.2.2.</para>
-</note>
-<para>En ajoutant cette route &ldquo;fictive&rdquo; pour le trafic IP, le
-programme <command>ppp</command> peut, successivement, avant et au moment
-d'&eacute;tablir la liaison:</para>
-<itemizedlist>
-<listitem>
-<para>Accepter des paquets que FreeBSD ne sait pas encore comment
-rediriger,</para>
-</listitem>
-<listitem>
-<para>Etablir la connexion avec votre fournisseur d'acc&egrave;s,</para>
-</listitem>
-<listitem>
-<para>Reconfigurer les adresses IP des deux c&ocirc;t&eacute;s de la ligne,</para>
-</listitem>
-<listitem>
-<para>Transmettre les paquets entre votre syt&egrave;me local et votre fournisseur
-d'acc&egrave;s,</para>
-</listitem>
-</itemizedlist>
-<para>automatiquement!</para>
-<para>Une fois le nombre de secondes d&eacute;fini par l'instruction
-&ldquo;timeout&rdquo; de la section &ldquo;default&rdquo; &eacute;coul&eacute; sans
-trafic TCP/IP, le programme <command>ppp</command> coupe automatiquement la
-connexion, et le processus peut recommencer.</para>
-</sect4>
-</sect3>
-<sect3>
-<title>Le fichier <filename>/etc/ppp/ppp.linkup</filename></title>
-<para>L'autre fichier n&eacute;cessaire &agrave; la configuration de <command>ppp</command>
-est <filename>/etc/ppp/ppp.linkup</filename>. Ce fichier contient les
-instructions qui d&eacute;finissent ce que <command>ppp</command> doit faire une
-fois que la connexion est &eacute;tablie.</para>
-<para>Dans le cas d'une connexion &agrave; la demande, le programme
-<command>ppp</command> doit supprimer la route par d&eacute;faut vers l'adresse IP
-fictive du syst&egrave;me distant (127.2.2.2 dans notre exemple plus haut) et
-d&eacute;finir une nouvelle route vers l'adresse IP r&eacute;elle de ce syst&egrave;me (obtenue
-&agrave; l'&eacute;tablissement de la connexion).</para>
-<para>Voici un bon exemple de fichier
-<filename>/etc/ppp/ppp.linkup</filename>:</para>
-<para>
-<programlisting>
-#########################################################################=
-#
-# Fichier PPP Link Up ('/etc/ppp/ppp.linkup')
-#
-# Ce fichier est consult&eacute; une fois que PPP a &eacute;tabli une connexion
-#
-# Ce fichier est lu dans l'ordre suivant :
-#
-# 1) En premier, l'adresse IP qui nous a &eacute;t&eacute; assign&eacute;e est recherch&eacute;e
-# et la/les commande(s) associ&eacute;e(s) ex&eacute;cut&eacute;e(s)
-#
-# 2) Si l'adresse IP n'est pas trouv&eacute;e, alors l'&eacute;tiquette donn&eacute;e au
-# d&eacute;marrage de PPP est recherch&eacute;e, et la/les commande(s) associ&eacute;e(s)
-# ex&eacute;cut&eacute;e(s)
-#
-# 3) Si ni l'une ni l'autre n'ont &eacute;t&eacute; trouv&eacute;es, les commandes associ&eacute;es
-# &agrave; l'&eacute;tiquette 'MYADDR:' sont ex&eacute;cut&eacute;es.
-#
-#########################################################################=
-
-#
-# Cette section correspond &agrave; la configuration "demand" de
-# /etc/ppp/ppp.conf:
-demand:
-delete ALL
-add 0 0 HISADDR
-#
-# Toutes les autres configurations de /etc/ppp/ppp.conf utilisent
-# ce qui suit:
-#
-MYADDR:
-add 0 0 HISADDR
-########################################################################
-# Fin de /etc/ppp/ppp.linkup
-</programlisting>
-</para>
-<para>Remarquez qu'une section de ce fichier s'appelle &ldquo;demand:&rdquo;,
-tout comme dans le fichier <filename>/etc/ppp/ppp.conf</filename>. Cette section
-dit au programme <command>ppp</command> ce qu'il doit faire, une fois la
-connexion &agrave; la demande &eacute;tablie:</para>
-<orderedlist>
-<listitem>
-<para>Supprimer toutes les informations de routage qu'il a d&eacute;j&agrave; cr&eacute;&eacute;es,</para>
-</listitem>
-<listitem>
-<para>Ajouter une route par d&eacute;faut vers l'adresse r&eacute;elle de la machine
-distante.</para>
-</listitem>
-</orderedlist>
-<para>Il est capital que les configurations d&eacute;finies dans le fichier
-<filename>/etc/ppp/ppp.conf</filename> et qui comportent les lignes
-&ldquo;set ifaddr&rdquo; et &ldquo;add 0 0&rdquo; (i.e.: les configurations
-de connexion &agrave; la demande) ex&eacute;cutent les instructions &ldquo;delete ALL&rdquo;
-et &ldquo;add 0 0 HISADDR&rdquo; du fichier
-<filename>/etc/ppp/ppp.linkup.</filename></para>
-<para><emphasis>C'est le m&eacute;canisme qui contr&ocirc;le la configuration de la liaison
-dans le cas d'une connexion &agrave; la demande.</emphasis></para>
-<para>Toutes les configurations qui ne sont pas explicitement d&eacute;finies dans
-le fichier <filename>/etc/ppp/ppp.linkup</filename> utiliseront les commandes
-list&eacute;es dans la section &ldquo;MYADDR:&rdquo; de ce fichier. C'est ce que
-feront les connexions manuelles (comme dans notre exemple
-&ldquo;interactive:&rdquo;). Cette section ajoute simplement une route par
-d&eacute;faut vers l'adresse IP du fournisseur d'acc&egrave;s (&agrave; l'autre extr&eacute;mit&eacute; de la
-ligne).</para>
-</sect3>
-</sect2>
-<sect2>
-<title>Alias IP</title>
-<para>Toutes les &eacute;tapes pr&eacute;c&eacute;dentes s'appliquent &agrave; un systeme FreeBSD utilis&eacute;
-pour se connecter &agrave; la demande &agrave; un fournisseur d'acc&egrave;s Internet.</para>
-<para>Si vous cherchez simplement, en lisant ce guide, &agrave; connecter votre
-systeme FreeBSD &agrave; l'Internet, vous pouvez passer directement au chapitre
-<link linkend="sect6">Tester le r&eacute;seau</link>.</para>
-<para>Une possibilit&eacute; tr&egrave;s int&eacute;ressante du programme <command>ppp</command>
-en mode &ldquo;connexion &agrave; la demande&rdquo; est sa capacit&eacute; &agrave; aiguiller
-automatiquement le trafic vers les autres syst&egrave;mes du r&eacute;seau local. On donne
-&agrave; cela des noms divers &ldquo;alias IP (IP Aliasing)&rdquo;,
-&ldquo;traduction d'adresse r&eacute;seau (Network Adress Translation)&rdquo;,
-&ldquo;mascarade d'adresse (Adress Masquerading)&rdquo; ou
-&ldquo;mandatement transparent (Transparent Proxying)&rdquo;.</para>
-<para>Quelle que soit la terminologie employ&eacute;e, ce fonctionnement n'est
-cependant pas automatique. Si le programme <command>ppp</command> est d&eacute;marr&eacute;
-de fa&ccedil;on habituelle, il ne fera pas transiter de paquets entre l'interface avec
-le r&eacute;seau local et la liaison vers l'ext&eacute;rieur. En effet, seul le syst&egrave;me
-FreeBSD est connect&eacute; &agrave; l'Internet; les autres syst&egrave;mes ne peuvent pas partager
-la m&ecirc;me connexion.</para>
-<para>Par exemple, si le programme <command>ppp</command> est lanc&eacute; par:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ppp interactive
-</userinput>
-</para>
-<para>ou:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ppp -auto demand
-</userinput>
-</para>
-<para>correspondant respectivement aux modes manuel et automatique, alors
-il &eacute;tablira une connexion &agrave; l'Internet pour la <emphasis>seule</emphasis>
-machine FreeBSD.</para>
-<para>Pour d&eacute;marrer le programme <command>ppp</command> pour l'utiliser comme
-passerelle entre le r&eacute;seau local et l'Internet, il faut utiliser l'une des
-commandes suivantes:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ppp -alias interactive
-</userinput>
-</para>
-<para>ou:</para>
-<para>
-<userinput>
-<prompt>#</prompt> ppp -auto -alias demand
-</userinput>
-</para>
-<para>Alternativement, vous pouvez utiliser l'instruction &ldquo;alias enable
-yes&rdquo; dans votre fichier de configuration de <command>ppp</command>
-(Reportez-vous aux pages de manuel pour plus de d&eacute;tails).</para>
-<para>Gardez cela pr&eacute;sent &agrave; l'esprit si vous passez maintenant au chapitre
-<link linkend="sect5">Configurer les syst&egrave;mes Windows</link>.</para>
-</sect2>
-</sect1>
-<sect1 id="sect5">
-<title>Configurer les Syst&egrave;mes Windows</title>
-<para>Comme indiqu&eacute; au Chapitre <link linkend="sect2">Mise en oeuvre du r&eacute;seau local</link>,
-le r&eacute;seau de notre exemple
-comporte un syst&egrave;me FreeBSD (&ldquo;Curly&rdquo;) qui sert de passerelle
-(ou routeur) pour un r&eacute;seau local compos&eacute; de trois moutures diff&eacute;rentes
-de syst&egrave;mes Windows. Pour que ces stations puissent utiliser Curly comme
-routeur, elles doivent &ecirc;tre correctement configur&eacute;es. Notez bien que l'on
-ne vous explique pas ici comment configurer les postes Windows pour qu'ils
-puissent se connecter eux-m&ecirc;mes. Si vous cherchez de bonnes explications sur
-le sujet, voyez
-<ulink url="http://www.aladdin.co.uk/techweb">http://www.aladdin.co.uk/techweb</ulink>.</para>
-<sect2>
-<title>Configurer Windows 95</title>
-<para>Il est relativement simple de configurer Windows 95 pour relier un poste
-&agrave; votre r&eacute;seau local. Le configuration r&eacute;seau Windows 95 doit &ecirc;tre l&eacute;g&eacute;rement
-modifi&eacute;e pour pouvoir utiliser le syst&egrave;me FreeBSD comme passerelle par d&eacute;faut
-vers votre fournisseur d'acc&egrave;s. Effectuez les &eacute;tapes suivantes:</para>
-<sect3>
-<title>Cr&eacute;er le fichier Windows 95 <filename>hosts</filename></title>
-<para>Pour vous connecter aux autres postes TCP/IP du r&eacute;seau local, vous devrez
-installer une copie du fichier <filename>hosts</filename> que vous avez cr&eacute;&eacute;
-sur votre syst&egrave;me FreeBSD au paragraphe
-<link linkend="sect34">Renseigner la liste des autres machines du r&eacute;seau</link>.</para>
-<itemizedlist>
-<listitem><para>Cliquez sur le bouton &ldquo;D&eacute;marrer&rdquo;, choisissez
-&ldquo;Ex&eacute;cuter ...&rdquo;, lancez
-<userinput>notepad \WINDOWS\HOSTS</userinput>
-et cliquez sur &ldquo;OK&rdquo;,</para></listitem>
-<listitem><para>Sous l'&eacute;diteur, entrez les noms et les adresses des machines
-recopi&eacute;s du fichier <filename>hosts</filename> du paragraphe
-<link linkend="sect34">Renseigner la liste des autres machines du r&eacute;seau</link>,</para></listitem>
-<listitem><para>Une fois que c'est fait, quittez <command>notepad</command>
-(assurez-vous d'avoir enregistr&eacute; le fichier!).</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>D&eacute;finir le configuration r&eacute;seau TCP/IP Windows 95</title>
-<itemizedlist>
-<listitem><para>Cliquez sur le bouton &ldquo;D&eacute;marrer&rdquo; de la barre de
-t&acirc;ches, Choisissez &ldquo;Param&egrave;tres&rdquo; et
-&ldquo;Panneau de Configuration&rdquo;,</para></listitem>
-<listitem><para>Double-cliquez sur l'ic&ocirc;ne r&eacute;seau pour
-l'ouvrir.</para>
-<para>Les param&egrave;tres des &eacute;l&eacute;ments du r&eacute;seau sont tous
-affich&eacute;s.</para></listitem>
-<listitem><para>S&eacute;lectionnez l'option &ldquo;Configuration&rdquo; et faites
-d&eacute;filer la liste des composants install&eacute;s pour choisir la ligne
-&ldquo;TCP/IP -><replaceable>votre interface</replaceable>&rdquo; (o&ugrave;
-<replaceable>votre interface</replaceable> est le nom ou le mod&egrave;le de
-votre contr&ocirc;leur Ethernet),</para>
-<para>Si &ldquo;TCP/IP&rdquo; ne figure pas dans la liste des composants
-r&eacute;seau install&eacute;s, cliquez sur le bouton &ldquo;Ajouter&rdquo; pour
-l'installer avant de continuer</para>
-<tip><para>Ajouter | Protocoles | Microsoft | TCP/IP | OK.</para></tip>
-</listitem>
-<listitem><para>Cliquez sur le bouton &ldquo;Propri&eacute;t&eacute;s&rdquo; pour afficher
-la liste des param&egrave;tres associ&eacute;s au composant TCP.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives &agrave; l'adresse IP</title>
-<itemizedlist>
-<listitem><para>Choisissez l'onglet &ldquo;Adresse IP&rdquo;</para></listitem>
-<listitem><para>Enfoncez le bouton &ldquo;Sp&eacute;cifier une adresse
-IP&rdquo;.</para>
-<para>(Dans notre exemple, le syst&egrave;me Windows 95 est celui que nous avons
-appel&eacute; &ldquo;Larry&rdquo;.)</para></listitem>
-<listitem><para>Dans la zone &ldquo;Adresse IP&rdquo;, entrez
-&ldquo;192.168.1.2&rdquo;,</para></listitem>
-<listitem><para>Entrez &ldquo;255.255.255.0&rdquo; dans le zone
-&ldquo;Masque de Sous-r&eacute;seau&rdquo;.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives &agrave; la passerelle</title>
-<itemizedlist>
-<listitem><para>Cliquez sur l'onglet &ldquo;Passerelle&rdquo;.</para>
-<para>Dans le r&eacute;seau de notre exemple, c'est le syst&egrave;me FreeBSD qui sera notre
-passerelle vers l'Internet (routant les paquets entre le r&eacute;seau local Ethernet
-et la connexion PPP). Entrez l'adresse IP de l'interface Ethernet de la
-machine FreeBSD, &ldquo;192.168.1.1&rdquo;, dans la zone
-&ldquo;Nouvelle Passerelle&rdquo; et cliquez sur le bouton
-&ldquo;Ajouter&rdquo;. S'il y a d'autres passerelles d&eacute;finies dans les
-&ldquo;Passerelles Install&eacute;es&rdquo;, peut-&ecirc;tre devrez-vous les
-supprimer.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives au DNS</title>
-<para>Nous supposons que votre fournisseur d'acc&egrave;s Internet vous a donn&eacute; une
-liste de serveurs de noms de domaines (Domain Name Servers)&nbsp;-&nbsp;ou
-&ldquo;Serveurs DNS&rdquo;&nbsp;-&nbsp;que vous devez utiliser. Si vous voulez
-mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous au
-chapitre
-<link linkend="sect7">Exercices pour l'&eacute;tudiant int&eacute;ress&eacute;</link> pour avoir des indications sur
-l'installation d'un serveur DNS sur une machine FreeBSD.</para>
-<itemizedlist>
-<listitem><para>Cliquez sur l'onglet &ldquo;Configuration DNS&rdquo;,</para>
-</listitem>
-<listitem><para>Assurez-vous que l'option &ldquo;Activer DNS&rdquo; est
-bien s&eacute;lectionn&eacute;e,</para>
-<para>(Si cette option n'est pas s&eacute;lectionn&eacute;e, seules les machines d&eacute;finies dans
-votre fichier <filename>hosts</filename> seront accessibles et vous ne pourrez
-pas &ldquo;surfer&rdquo; comme vous le souhaitez!)</para></listitem>
-<listitem><para>Dans la zone &ldquo;H&ocirc;te&rdquo;, entrez le nom du poste
-Windows 95, dans notre cas : &ldquo;Larry&rdquo;,</para></listitem>
-<listitem><para>Dans la zone &ldquo;Domaine&rdquo;, entrez le nom du r&eacute;seau
-local, dans notre cas : &ldquo;my.domain&rdquo;,</para></listitem>
-<listitem><para>Dans la zone &ldquo;Ordre de recherche DNS&rdquo;,
-entrez les adresses
-IP des serveurs DNS que votre fournisseur vous a donn&eacute;es, cliquez sur
-&ldquo;Ajouter&rdquo; &agrave; chaque adresse que vous d&eacute;finissez. R&eacute;p&eacute;tez l'op&eacute;ration
-autant de fois que n&eacute;cessaire pour entrer toutes les adresses que votre
-fournisseur vous a indiqu&eacute;es.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Autres options TCP/IP Windows 95</title>
-<para>Pour nos besoins, les param&egrave;tres des sections &ldquo;Avanc&eacute;es&rdquo;,
-&ldquo;Configuration WINS&rdquo; et &ldquo;Liens&rdquo; sont inutiles.</para>
-<para>Si vous souhaitez utiliser le service de noms Internet de Windows
-(Windows Internet Naming Service&nbsp;-&nbsp;&ldquo;WINS&rdquo;), vous trouverez
-plus d'informations sur
-<ulink url="http://www.localnet.org">http://www.localnet.org</ulink>,
-en particulier en ce qui concerne le partage de fichiers de fa&ccedil;on transparente
-&agrave; travers l'Internet.</para>
-</sect3>
-<sect3>
-<title>Pour finir</title>
-<itemizedlist>
-<listitem><para>Cliquez sur &ldquo;OK&rdquo; pour fermer la fen&ecirc;tre
-&ldquo;Propri&eacute;t&eacute;s TCP/IP&rdquo;,</para></listitem>
-<listitem><para>Cliquez sur &ldquo;OK&rdquo; pour fermer la fen&ecirc;tre
-&ldquo;Panneau de Contr&ocirc;le R&eacute;seau&rdquo;,</para></listitem>
-<listitem><para>Red&eacute;marrez votre ordinateur si on vous le demande.</para>
-</listitem>
-</itemizedlist>
-<para>C'est tout!</para>
-</sect3>
-</sect2>
-<sect2>
-<title>Configurer Windows NT</title>
-<para>Il est relativement simple de configurer Windows NT pour relier un poste
-&agrave; votre r&eacute;seau local. Les proc&eacute;dures sont semblables &agrave; celles suivies pour
-Windows 95 &agrave; quelques diff&eacute;rences pr&egrave;s quant &agrave; l'interface utilisateur.</para>
-<para>Les &eacute;tapes d&eacute;crites ci-dessous s'appliquent &agrave; Windows NT 4.0 Workstation,
-mais les principes sont les m&ecirc;mes pour Windows NT 3.5x. Si vous installez un
-poste Windows NT 3.5x, vous pouvez vous r&eacute;f&eacute;rer
-au paragraphe <link linkend="sect53">Configurer Windows for Workgroups</link>, en
-effet, l'interface utilisateur est la m&ecirc;me pour NT 3.5x et WfW.</para>
-<para>Effectuez les op&eacute;rations suivantes:</para>
-<sect3>
-<title>Cr&eacute;er le fichier Windows NT <filename>hosts</filename></title>
-<para>Pour vous connecter aux autres postes TCP/IP du r&eacute;seau local, vous devrez
-installer une copie du fichier <filename>hosts</filename> que vous avez cr&eacute;&eacute;
-sur votre syst&egrave;me FreeBSD au paragraphe
-<link linkend="sect34">Configurer Windows for Workgroups</link>.</para>
-<itemizedlist>
-<listitem><para>Cliquez sur le bouton &ldquo;D&eacute;marrer&rdquo;, choisissez
-&ldquo;Ex&eacute;cuter ...&rdquo;, lancez
-<userinput>notepad \WINDOWS\SYSTEM\DRIVERS\ETC\HOSTS</userinput>
-et cliquez sur &ldquo;OK&rdquo;,</para></listitem>
-<listitem><para>Sous l'&eacute;diteur, entrez les noms et les adresses des machines
-recopi&eacute;s du fichier <filename>hosts</filename> du paragraphe
-<link linkend="sect34">Renseigner la liste des autres machines du r&eacute;seau</link>,</para></listitem>
-<listitem><para>Une fois que c'est fait, quittez <command>notepad</command>
-(assurez-vous d'avoir enregistr&eacute; le fichier!).</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>D&eacute;finir le configuration r&eacute;seau TCP/IP Windows NT</title>
-<itemizedlist>
-<listitem><para>Cliquez sur le bouton &ldquo;D&eacute;marrer&rdquo; de la barre de
-t&acirc;ches, Choisissez &ldquo;Param&egrave;tres&rdquo; et
-&ldquo;Panneau de Configuration&rdquo;,</para></listitem>
-<listitem><para>Double-cliquez sur l'ic&ocirc;ne r&eacute;seau pour
-l'ouvrir,</para></listitem>
-<listitem><para>Dans l'onglet &ldquo;Identification&rdquo;,
-v&eacute;rifiez les informations des zones &ldquo;Nom d'Ordinateur&rdquo; et
-&ldquo;Workgroup&rdquo;. Dans notre exemple, &ldquo;Shemp&rdquo; sera
-le nom de la machine, et &ldquo;Stooges&rdquo; celui du groupe de travail.
-Choisissez &ldquo;Modifier&rdquo; pour corriger ces valeurs au
-besoin,</para></listitem>
-<listitem><para>Choisissez l'onglet &ldquo;Protocoles&rdquo;.</para>
-<para>Les Protocoles R&eacute;seau install&eacute;s seront affich&eacute;s. Il peut y en avoir un
-certain nombre, mais le seul qui nous int&eacute;resse ici est le
-&ldquo;Protocole TCP/IP&rdquo;. Si le &ldquo;Protocole TCP/IP&rdquo;
-n'appara&icirc;t pas dans la liste, cliquez sur le bouton &ldquo;Ajouter&rdquo;
-pour l'installer.</para>
-<tip><para>Ajouter | Protocole TCP/IP | OK.</para></tip>
-</listitem>
-<listitem><para>S&eacute;lectionnez &ldquo;Protocole TCP/IP&rdquo; et cliquez sur le
-bouton &ldquo;Propri&eacute;t&eacute;s&rdquo;.</para>
-<para>Les diff&eacute;rentes propri&eacute;t&eacute;s associ&eacute;es &agrave; TCP/IP appara&icirc;tront.</para>
-</listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives &agrave; l'adresse IP</title>
-<para>V&eacute;rifiez que l'interface Ethernet est bien d&eacute;finie dans la zone
-&ldquo;Carte R&eacute;seau&rdquo;; si ce n'est pas le cas, parcourez la
-liste des contr&ocirc;leurs jusqu'&agrave; ce que l'interface ad&eacute;quate soit affich&eacute;e.</para>
-<itemizedlist>
-<listitem><para>Choisissez l'option &ldquo;Sp&eacute;cifier une Adresse IP&rdquo;
-pour activer les trois zones de texte,</para>
-<para>Dans notre exemple, le poste Windows NT est celui qui s'appele
-&ldquo;Shemp&rdquo;.</para></listitem>
-<listitem><para>Dans la zone &ldquo;Adresse IP&rdquo;, entrez
-&ldquo;192.168.1.4&rdquo;,</para></listitem>
-<listitem><para>Entrez &ldquo;255.255.255.0&rdquo; dans le zone
-&ldquo;Masque de Sous-r&eacute;seau.&rdquo;.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives &agrave; la passerelle</title>
-<para>Dans le r&eacute;seau de notre exemple, c'est le syst&egrave;me FreeBSD qui sera notre
-passerelle vers l'Internet (routant les paquets entre le r&eacute;seau local Ethernet
-et la connexion PPP).</para>
-<itemizedlist>
-<listitem><para>S'il n'y a rien encore dans la zone &ldquo;Nouvelle
-Passerelle&rdquo;, entrez l'adresse IP de l'interface Ethernet de la
-machine FreeBSD, &ldquo;192.168.1.1&rdquo;, dans cette zone
-et cliquez sur le bouton &ldquo;Ajouter&rdquo;. Sinon, utilisez le bouton
-"Avanc&eacute;es" et la fonction &ldquo;Ajouter&rdquo; pour ajouter cette nouvelle
-passerelle.</para>
-<para>S'il y a d'autres passerelles d&eacute;finies dans les
-&ldquo;Passerelles Install&eacute;es&rdquo;, peut-&ecirc;tre devrez-vous les
-supprimer.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives au DNS</title>
-<para>Nous supposons que votre fournisseur d'acc&egrave;s Internet vous a donn&eacute; une
-liste de serveurs de noms de domaines (Domain Name Servers)&nbsp;-&nbsp;ou
-&ldquo;Serveurs DNS&rdquo;&nbsp;-&nbsp;que vous devez utiliser.</para>
-<para>Si vous voulez
-mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous
-au chapitre
-<link linkend="sect7">Exercices pour l'&eacute;tudiant int&eacute;ress&eacute;</link> pour avoir des indications sur
-l'installation d'un serveur DNS sur une machine FreeBSD.</para>
-<itemizedlist>
-<listitem><para>Cliquez sur le bouton &ldquo;DNS&rdquo;,</para>
-</listitem>
-<listitem><para>Dans la zone &ldquo;Nom d'H&ocirc;te&rdquo;, entrez le nom du poste
-Windows NT, dans notre cas : &ldquo;Shemp&rdquo;,</para></listitem>
-<listitem><para>Dans la zone &ldquo;Domaine&rdquo;, entrez le nom du r&eacute;seau
-local, dans notre cas : &ldquo;my.domain&rdquo;,</para></listitem>
-<listitem><para>Dans la zone &ldquo;Ordre de recherche du service DNS&rdquo;,
-entrez les adresses
-IP des serveurs DNS que votre fournisseur vous a donn&eacute;es, cliquez sur
-&ldquo;Ajouter&rdquo; &agrave; chaque adresse que vous d&eacute;finissez. R&eacute;p&eacute;tez l'op&eacute;ration
-autant de fois que n&eacute;cessaire pour entrer toutes les adresses que votre
-fournisseur vous a indiqu&eacute;es.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Autres options TCP/IP Windows NT</title>
-<para>Pour nos besoins, les param&egrave;tres des sections
-&ldquo;Adresses WINS&rdquo; et &ldquo;Routage&rdquo; sont inutiles.</para>
-<para>Si vous souhaitez utiliser le service de noms Internet de Windows
-(Windows Internet Naming Service&nbsp;-&nbsp;&ldquo;WINS&rdquo;), vous trouverez
-plus d'informations sur
-<ulink url="http://www.localnet.org">http://www.localnet.org</ulink>,
-en particulier en ce qui concerne le partage de fichiers de fa&ccedil;on transparente
-&agrave; travers l'Internet.</para>
-</sect3>
-<sect3>
-<title>Pour finir</title>
-<itemizedlist>
-<listitem><para>Cliquez sur &ldquo;OK&rdquo; pour fermer la fen&ecirc;tre
-&ldquo;Propri&eacute;t&eacute;s TCP/IP&rdquo;,</para></listitem>
-<listitem><para>Cliquez sur &ldquo;OK&rdquo; pour fermer la fen&ecirc;tre
-&ldquo;Panneau de Contr&ocirc;le R&eacute;seau&rdquo;,</para></listitem>
-<listitem><para>Red&eacute;marrez votre ordinateur si on vous le demande.</para>
-</listitem>
-</itemizedlist>
-<para>C'est tout!</para>
-</sect3>
-</sect2>
-<sect2 id="sect53">
-<title>Configurer Windows for Workgroups</title>
-<para>Pour qu'un poste Windows for Workgroups puisse &ecirc;tre utilis&eacute; en r&eacute;seau, il
-faut avoir install&eacute; les pilotes qui sont sur la disquette Microsoft TCP/IP. Ces
-pilotes ne sont pas inclus avec WfW et les disquettes qui vont avec. S'il vous
-en faut une copie, ils sont disponibles sur
-<ulink url="ftp://ftp.microsoft.com/peropsys/windows/public/tcpip">ftp://ftp.microsoft.com/peropsys/windows/public/tcpip.</ulink></para>
-<para>Une fois que les pilotes TCP/IP ont &eacute;t&eacute; install&eacute;s, effectuez les
-op&eacute;rations suivantes:</para>
-<sect3>
-<title>Cr&eacute;er le fichier Windows for Workgroups
-<filename>hosts</filename></title>
-<para>Pour vous connecter aux autres postes TCP/IP du r&eacute;seau local, vous devrez
-installer une copie du fichier <filename>hosts</filename> que vous avez cr&eacute;&eacute;
-sur votre syst&egrave;me FreeBSD au paragraphe
-<link linkend="sect34">Renseigner la liste des autres machines du r&eacute;seau</link>.</para>
-<itemizedlist>
-<listitem><para>Dans le Gestionnaire de Programmes, cliquez sur le bouton
-&ldquo;Fichier&rdquo;, choisissez &ldquo;Ex&eacute;cuter ...&rdquo;, lancez
-<userinput>notepad \WINDOWS\HOSTS</userinput>
-et cliquez sur &ldquo;OK&rdquo;,</para></listitem>
-<listitem><para>Sous l'&eacute;diteur, entrez les noms et les adresses des machines
-recopi&eacute;s du fichier <filename>hosts</filename> de
-<link linkend="sect34">Renseigner la liste des autres machines du r&eacute;seau</link>,</para></listitem>
-<listitem><para>Une fois que c'est fait, quittez <command>notepad</command>
-(assurez-vous d'avoir enregistr&eacute; le fichier!).</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>D&eacute;finir le configuration r&eacute;seau TCP/IP Windows for Workgroups</title>
-<itemizedlist>
-<listitem><para>Dans le Gestionnaire de Programmes, ouvrez le groupe
-&ldquo;R&eacute;seau&rdquo; en double-cliquant sur l'ic&ocirc;ne,</para></listitem>
-<listitem><para>Double-cliquez sur l'ic&ocirc;ne &ldquo;Param&egrave;tres
-R&eacute;seau&rdquo;,</para></listitem>
-<listitem><para>Dans la bo&icirc;te de dialogue &ldquo;Pilotes R&eacute;seau&rdquo;,
-double-cliquez sur l'option &ldquo;Microsoft TCP/IP-32&rdquo;.</para>
-</listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives &agrave; l'adresse IP</title>
-<para>V&eacute;rifiez que l'interface Ethernet est bien d&eacute;finie dans la liste
-&ldquo;Carte R&eacute;seau&rdquo;; si ce n'est pas le cas, parcourez la
-liste des contr&ocirc;leurs jusqu'&agrave; ce que l'interface ad&eacute;quate soit affich&eacute;e
-et s&eacute;lectionnez-la en cliquant dessus.</para>
-<itemizedlist>
-<listitem><para>V&eacute;rifiez que l'option &ldquo;Activer la Configuration DHCP
-Automatique&rdquo; n'est pas s&eacute;lectionn&eacute;e. Si c'est le cas, cliquez dessus
-pour effacer le &ldquo;X&rdquo;.</para></listitem>
-<listitem><para>Dans notre exemple, le poste Windows for Workgroups est celui
-qui s'appelle &ldquo;Moe&rdquo;; dans la zone &ldquo;Adresse IP&rdquo;, entrez
-&ldquo;192.168.1.3&rdquo;,</para></listitem>
-<listitem><para>Entrez &ldquo;255.255.255.0&rdquo; dans le zone
-&ldquo;Masque de Sous-r&eacute;seau&rdquo;.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives &agrave; la passerelle</title>
-<para>Dans le r&eacute;seau de notre exemple, c'est le syst&egrave;me FreeBSD qui sera notre
-passerelle vers l'Internet (routant les paquets entre le r&eacute;seau local Ethernet
-et la connexion PPP).</para>
-<itemizedlist>
-<listitem><para>Entrez l'adresse IP de l'interface Ethernet de la
-machine FreeBSD, &ldquo;192.168.1.1&rdquo;, dans la zone
-&ldquo;Passerelle par D&eacute;faut&rdquo;.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Configurer les informations relatives au DNS</title>
-<para>Nous supposons toujours que votre fournisseur d'acc&egrave;s Internet vous a
-donn&eacute; une liste de serveurs de noms de domaines (Domain Name Servers)&nbsp;-&nbsp;ou
-&ldquo;Serveurs DNS&rdquo;&nbsp;-&nbsp;que vous devez utiliser.</para>
-<para>Si vous voulez
-mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous
-au chapitre
-<link linkend="sect7">Exercices pour l'&eacute;tudiant int&eacute;ress&eacute;</link> pour avoir des indications sur
-l'installation d'un serveur DNS sur une machine FreeBSD.</para>
-<itemizedlist>
-<listitem><para>Cliquez sur l'onglet &ldquo;Configuration DNS&rdquo;,</para>
-</listitem>
-<listitem><para>Dans la zone &ldquo;H&ocirc;te&rdquo;, entrez le nom du poste
-Windows for Workgroups, dans notre cas : &ldquo;Moe&rdquo;,</para></listitem>
-<listitem><para>Dans la zone &ldquo;Domaine&rdquo;, entrez le nom du r&eacute;seau
-local, dans notre cas : &ldquo;my.domain&rdquo;,</para></listitem>
-<listitem><para>Dans la zone &ldquo;Ordre de recherche DNS&rdquo;,
-entrez les adresses
-IP des serveurs DNS que votre fournisseur vous a donn&eacute;es, cliquez sur
-&ldquo;Ajouter&rdquo; &agrave; chaque adresse que vous d&eacute;finissez. R&eacute;p&eacute;tez l'op&eacute;ration
-autant de fois que n&eacute;cessaire pour entrer toutes les adresses que votre
-fournisseur vous a indiqu&eacute;es,</para></listitem>
-<listitem><para>Cliquez sur &ldquo;OK&rdquo; pour fermer la fen&ecirc;tre
-&ldquo;Configuration DNS&rdquo;.</para></listitem>
-</itemizedlist>
-</sect3>
-<sect3>
-<title>Pour finir</title>
-<itemizedlist>
-<listitem><para>Cliquez sur &ldquo;OK&rdquo; pour fermer la fen&ecirc;tre
-&ldquo;Propri&eacute;t&eacute;s TCP/IP&rdquo;,</para></listitem>
-<listitem><para>Cliquez sur &ldquo;OK&rdquo; pour fermer la fen&ecirc;tre
-&ldquo;Panneau de Contr&ocirc;le R&eacute;seau&rdquo;,</para></listitem>
-<listitem><para>Red&eacute;marrez votre ordinateur si on vous le demande.</para>
-</listitem>
-</itemizedlist>
-<para>C'est tout!</para>
-</sect3>
-</sect2>
-</sect1>
-<sect1 id="sect6">
-<title>Tester le r&eacute;seau</title>
-<para>Une fois que vous aurez termin&eacute; les op&eacute;rations n&eacute;cessaires d&eacute;crites plus
-haut, votre passerelle PPP vers l'Internet devrait &ecirc;tre op&eacute;rationnelle.</para>
-<sect2>
-<title>Tester la connexion vers l'ext&eacute;rieur</title>
-<para>La premi&egrave;re chose &agrave; v&eacute;rifier est que la connexion s'&eacute;tablisse entre votre
-modem et votre fournisseur d'acc&egrave;s.</para>
-</sect2>
-<sect2>
-<title>Tester le r&eacute;seau local</title>
-<para>*** &agrave; faire ***</para>
-</sect2>
-</sect1>
-<sect1 id="sect7">
-<title>Exercices pour l'&eacute;tudiant int&eacute;ress&eacute;</title>
-<sect2>
-<title>G&eacute;rer un mini-DNS</title>
-<para>Bien que g&eacute;rer une hi&eacute;rarchie du service de noms de domaines
-(&ldquo;Domain Name Service&rdquo;&nbsp;-&nbsp;DNS) puisse &ecirc;tre une t&acirc;che
-diabolique, il est tout &agrave; fait faisable d'installer un mini-serveur
-DNS sur le syt&egrave;me FreeBSD qui vous sert aussi de passerelle vers votre
-fournisseur d'acc&egrave;s.</para>
-<para>A partir des fichiers existants dans <filename>/etc/namedb</filename>
-apr&egrave;s installation de FreeBSD, il est possible de d&eacute;finir un serveur DNS qui
-ait autorit&eacute; sur le r&eacute;seau de notre exemple et serve d'interface avec
-l'architecture DNS de l'Internet.</para>
-<para>Pour cette configuration minimale, il suffit de trois fichiers:</para>
-<itemizedlist>
-<listitem><para><filename>/etc/namedb/named.boot</filename></para></listitem>
-<listitem><para><filename>/etc/namedb/named.root</filename></para></listitem>
-<listitem><para><filename>/etc/namedb/mydomain.db</filename></para></listitem>
-</itemizedlist>
-<para>Le fichier <filename>/etc/namedb/named.root</filename> est automatiquement
-initialis&eacute; &agrave; l'installation de FreeBSD, les deux autres fichiers doivent &ecirc;tre
-renseign&eacute;s manuellement.</para>
-<sect3>
-<title>Le fichier <filename>/etc/namedb/named.boot</filename></title>
-<para>Le fichier <filename>/etc/namedb/named.boot</filename> d&eacute;crit la
-configuration initiale du serveur DNS. Essentiellement, il indique au
-serveur de noms:</para>
-<orderedlist>
-<listitem><para>O&ugrave; sont les fichiers de configuration,</para></listitem>
-<listitem><para>De quels &ldquo;noms de domaines&rdquo; il a la
-responsabilit&eacute;,</para></listitem>
-<listitem><para>O&ugrave; trouver les autres serveurs DNS.</para></listitem>
-</orderedlist>
-<para>Avec l'&eacute;diteur <command>ee</command>, cr&eacute;ez un fichier
-<filename>/etc/namedb/named.boot</filename> comme suit:</para>
-<para>
-<programlisting>
-
-; fichier de d&eacute;marrage pour un mini-serveur de noms de domaines
-
-directory /etc/namedb
-
-; type domain source machine/fichier fichier de sauvegarde
-
-cache . named.root
-primary my.domain. mydomain.db
-</programlisting>
-</para>
-<para>Les lignes qui commencent par un point-virgule sont des commentaires.
-Voici la signification des autres lignes:</para>
-<itemizedlist>
-<listitem>
-<para>
-<programlisting>
-directory /etc/namedb
-</programlisting>
-</para>
-<para>Dit au serveur de noms o&ugrave; trouver les fichiers de configuration r&eacute;f&eacute;renc&eacute;s
-dans la suite du fichier <filename>/etc/namedb/named.boot</filename>.</para>
-</listitem>
-<listitem>
-<para>
-<programlisting>
-cache . named.root
-</programlisting>
-</para>
-<para>Dit au serveur de noms que la liste des serveurs de la racine (&ldquo;Root
-Servers&rdquo;) se trouve dans le fichier <filename>named.root</filename>. (Ce
-fichier est inclus dans l'installation standard et n'est pas d&eacute;crit ici.)</para>
-</listitem>
-<listitem>
-<para>
-<programlisting>
-primary my.domain mydomain.db
-</programlisting>
-</para>
-<para>Dit au serveur de noms qu'il a &ldquo;autorit&eacute;&rdquo; sur un domaine DNS
-appel&eacute; &ldquo;my.domain&rdquo; et que la liste des adresses IP des machines
-du domaine &ldquo;my.domain&rdquo; (le r&eacute;seau local) se trouve dans le fichier
-<filename>/etc/namedb/mydomain.db</filename>.
-</para>
-</listitem>
-</itemizedlist>
-<para>Une fois cr&eacute;&eacute; et sauvegard&eacute; le fichier
-<filename>/etc/namedb/named.boot</filename>, passez &agrave; l'&eacute;tape suivante pour
-cr&eacute;er le fichier <filename>/etc/namedb/named.db</filename>.</para>
-</sect3>
-<sect3>
-<title>Le fichier <filename>/etc/namedb/named.db</filename></title>
-<para>Le fichier <filename>/etc/namedb/named.boot</filename> liste les noms
-et les adresses IP de <emphasis>toutes</emphasis> les machines du r&eacute;seau
-local.</para>
-<para><emphasis>Pour une description d&eacute;taill&eacute;e des instructions de ce fichier,
-reportez-vous aux pages de manuel de <command>named</command></emphasis>.</para>
-<para>Le fichier <filename>/etc/namedb/named.boot</filename> de notre serveur
-DNS minimum contient les lignes suivantes:</para>
-<para>
-<programlisting>
-@ IN SOA my.domain. root.my.domain. (
- 961230 ; Serial
- 3600 ; Refresh
- 300 ; Retry
- 3600000 ; Expire
- 3600 ) ; Minimum
- IN NS curly.my.domain.
-
-curly.my.domain. IN A 192.168.1.1 # The FreeBSD box
-larry.my.domain. IN A 192.168.1.2 # The Win'95 box
-moe.my.domain. IN A 192.168.1.3 # The WfW box
-shemp.my.domain. IN A 192.168.1.4 # The Windows NT box
-
-$ORIGIN 1.168.192.IN-ADDR.ARPA
- IN NS curly.my.domain.
-1 IN PTR curly.my.domain.
-2 IN PTR larry.my.domain.
-3 IN PTR moe.my.domain.
-4 IN PTR shemp.my.domain.
-
-$ORIGIN 0.0.127.IN-ADDR.ARPA
- IN NS curly.my.domain.
-1 IN PTR localhost.my.domain.
-</programlisting>
-</para>
-<para>Bri&egrave;vement, ce fichier d&eacute;clare que le serveur DNS local est:</para>
-<itemizedlist>
-<listitem><para>Le &ldquo;D&eacute;but d'Autorit&eacute;&rdquo; (Start Of Authority) pour
-le domaine appel&eacute; &ldquo;my.domain&rdquo;,</para></listitem>
-<listitem><para>Le serveur de noms (Name Server&nbsp;-&nbsp;&ldquo;NS&rdquo;) pour
-&ldquo;my.domain&rdquo;,</para></listitem>
-<listitem><para>Responsable de la r&eacute;solution inverse des adresses IP qui
-commencent par &ldquo;192.168.1&rdquo; et &ldquo;127.0.0&rdquo;
-(&ldquo;$ORIGIN ...&rdquo;).</para></listitem>
-</itemizedlist>
-<para>Pour ajouter de nouvelles machines, vous devez ajouter deux lignes pour
-chaque syst&egrave;me; une dans la section du haut o&ugrave; les noms des syst&egrave;mes sont
-associ&eacute;s aux adresses Internet (&ldquo;IN A&rdquo;), et une autre ligne qui
-associe inversement l'adresse au nom de la machine (&ldquo;IN PTR&rdquo;),
-dans la section
-&ldquo;$ORIGIN 1.168.192.IN-ADDR.ARPA&rdquo;.</para>
-</sect3>
-<sect3>
-<title>D&eacute;marrer le serveur DNS</title>
-<para>Par d&eacute;faut, le serveur DNS (<filename>/etc/sbin/named</filename>) n'est
-pas lanc&eacute; au d&eacute;marrage du syst&egrave;me. Vous pouvez modifier ce comportement en
-rectifiant une seule ligne dans le fichier <filename>/etc/rc.conf</filename>,
-comme suit:</para>
-<para>Avec l'&eacute;diteur <command>ee</command>, visualisez le fichier
-<filename>/etc/rc.conf</filename>. Descendez d'une quarantaine de lignes jusqu'&agrave;
-ce que vous trouviez la section qui dit:</para>
-<para>
-<programlisting>
----
-named_enable="NO" # Run named, the DNS server (or NO).
-named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled).
----
-</programlisting>
-</para>
-<para>et modifiez-la en:</para>
-<para>
-<programlisting>
----
-named_enable="YES" # Run named, the DNS server (or NO).
-named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled).
----
-</programlisting>
-</para>
-<para>Sauvegardez le fichier et red&eacute;marrez le syst&egrave;me.</para>
-<para>Vous pouvez aussi d&eacute;marrer le serveur DNS avec la commande
-suivante:</para>
-<para>
-<userinput>
-<prompt>#</prompt> named -b /etc/namedb/named.boot
-</userinput>
-</para>
-<para>Chaque fois que vous modifiez les fichiers du r&eacute;pertoire
-<filename>/etc/namedb/named.boot</filename>, vous devez faire relire ces
-modifications par le serveur DNS avec la commande suivante:</para>
-<para>
-<userinput>
-<prompt>#</prompt> kill -HUP `cat /var/run/named.pid`
-</userinput>
-</para>
-</sect3>
-</sect2>
-<sect2>
-<title>Essayer les filtres PPP</title>
-<para>Le programme <command>ppp</command> a la capacit&eacute; d'appliquer des r&egrave;gles
-de filtrage au trafic qu'il route. Bien que cela ne soit pas aussi s&eacute;curis&eacute;
-qu'un v&eacute;ritable coupe-feu, cela autorise quelques contr&ocirc;les d'acc&egrave;s &agrave; la
-liaison.</para>
-<para>(&ldquo;<filename>man ipfw</filename>&rdquo; pour plus
-d'informations sur la configuration d'un syst&egrave;me FreeBSD plus s&eacute;curis&eacute;.)</para>
-<para>La documentation compl&egrave;te des diff&eacute;rents filtres et r&egrave;gles utilisables
-avec le programme <command>ppp</command> se trouve dans les pages de manuel
-de <command>ppp</command>.</para>
-<para>Il y a quatre classes de filtres qui s'appliquent au programme
-<command>ppp</command>:</para>
-<itemizedlist>
-<listitem>
-<para><filename>afilter</filename>&nbsp;-&nbsp;filtre compteur d'acc&egrave;s
-(ou &ldquo;Keep Alive&rdquo;&nbsp;-&nbsp;garder en vie)</para>
-<para>Ils d&eacute;finissent quels &eacute;v&eacute;nements sont ignor&eacute;s par l'instruction
-<filename>set timeout=</filename>.</para>
-</listitem>
-<listitem>
-<para><filename>dfilter</filename>&nbsp;-&nbsp;filtre d'appel</para>
-<para>Ils d&eacute;finissent quels &eacute;v&eacute;nements sont ignor&eacute;s par <command>ppp</command>
-en mode connexion &agrave; la demande.</para>
-</listitem>
-<listitem>
-<para><filename>ifilter</filename>&nbsp;-&nbsp;filtre d'entr&eacute;e</para>
-<para>Ils d&eacute;finissent quels paquets entrants sont accept&eacute;s ou
-refus&eacute;s par le programme <command>ppp</command>.</para>
-</listitem>
-<listitem>
-<para><filename>ofilter</filename>&nbsp;-&nbsp;filtre de sortie</para>
-<para>Ils d&eacute;finissent quels paquets sortants sont accept&eacute;s ou
-refus&eacute;s par le programme <command>ppp</command>.</para>
-</listitem>
-</itemizedlist>
-<para>L'exemple qui suit est un extrait de la configuration d'un syst&egrave;me
-op&eacute;rationnel qui donne une bonne base pour un fonctionnement Internet
-&ldquo;normal&rdquo;, tout en emp&ecirc;chant que <command>ppp</command> accepte
-n'importe quoi sur la liaison. Les commentaires d&eacute;crivent la logique de
-chaque jeu de r&egrave;gles.:</para>
-<para>
-<programlisting>
- #
- # filtres KeepAlive
- # ne pa prendre en compte les paquets ICMP,DNS et RIP
- #
- set afilter 0 deny icmp
- set afilter 1 deny udp src eq 53
- set afilter 2 deny udp dst eq 53
- set afilter 3 deny udp src eq 520
- set afilter 4 deny udp dst eq 520
- set afilter 5 permit 0/0 0/0
- #
- # filtre d'appel:
- # Note: ICMP &eacute;tablira la connexion dans cette configuration!
- #
- set dfilter 0 permit 0/0 0/0
- #
- # autoriser les paquets ident
- #
- set ifilter 0 permit tcp dst eq 113
- set ofilter 0 permit tcp src eq 113
- #
- # autoriser les connexions telnet &agrave; l'Internet
- #
- set ifilter 1 permit tcp src eq 23 estab
- set ofilter 1 permit tcp dst eq 23
- #
- # autoriser l'acc&egrave;s ftp &agrave; l'Internet
- #
- set ifilter 2 permit tcp src eq 21 estab
- set ofilter 2 permit tcp dst eq 21
- set ifilter 3 permit tcp src eq 20 dst gt 1023
- set ofilter 3 permit tcp dst eq 20
- #
- # autoriser les requ&ecirc;tes DNS
- #
- set ifilter 4 permit udp src eq 53
- set ofilter 4 permit udp dst eq 53
- #
- # autoriser les transferts de zone DNS
- #
- set ifilter 5 permit tcp src eq 53
- set ofilter 5 permit tcp dst eq 53
- #
- # autoriser l'acc&egrave;s depuis/vers le r&eacute;seau local
- #
- set ifilter 6 permit 0/0 192.168.1.0/24
- set ofilter 6 permit 192.168.1.0/24 0/0
- #
- # autoriser les r&eacute;ponses au ping et traceroute
- #
- set ifilter 7 permit icmp
- set ofilter 7 permit icmp
- set ifilter 8 permit udp dst gt 33433
- set ofilter 9 permit udp dst gt 33433
- #
- # autoriser cvsup
- #
- set ifilter 9 permit tcp src eq 5998
- set ofilter 9 permit tcp dst eq 5998
- set ifilter 10 permit tcp src eq 5999
- set ofilter 10 permit tcp dst eq 5999
- #
- # autoriser NTP pour la synchronization des horloges
- #
- set ifilter 11 permit tcp src eq 123 dst eq 123
- set ofilter 11 permit tcp src eq 123 dst eq 123
- set ifilter 12 permit udp src eq 123 dst eq 123
- set ofilter 12 permit udp src eq 123 dst eq 123
- #
- # SMTP serait une bonne id&eacute;e!
- #
- set ifilter 13 permit tcp src eq 25
- set ofilter 13 permit tcp dst eq 25
- #
- #
- # nous utilisons beaucoup whois, donc nous le laissons passer
- #
- set ifilter 14 permit tcp src eq 43
- set ofilter 14 permit tcp dst eq 43
- set ifilter 15 permit udp src eq 43
- set ofilter 15 permit udp dst eq 43
- #
- # si aucune des conditions ci-dessus n'est remplie, le paquet est refus&eacute;
- #-------
-</programlisting>
-</para>
-<para>Il peut y avoir jusqu'&agrave; vingt r&egrave;gles dans chaque classe de filtres. Dans
-chaque classe, les r&egrave;gles sont num&eacute;rot&eacute;es s&eacute;quentiellement de 0 &agrave; 20,
-<emphasis>mais aucune r&egrave;gle dans une classe particuli&egrave;re n'est appliqu&eacute;e tant
-que la r&egrave;gle &ldquo;0&rdquo; n'est pas d&eacute;finie!</emphasis></para>
-<para>Si vous d&eacute;cidez de <emphasis>ne pas</emphasis> utiliser de r&egrave;gles de
-filtrage dans votre configuration du programme <command>ppp</command>, alors
-<emphasis>TOUT</emphasis> le trafic de/vers votre syst&egrave;me sera accept&eacute; lorsqu'il
-est connect&eacute; &agrave; votre fournisseur d'acc&egrave;s.</para>
-<para>Si vous d&eacute;cidez d'appliquer des r&egrave;gles de filtrages, ajoutez les lignes
-pr&eacute;c&eacute;dentes &agrave; votre fichier <filename>/etc/ppp/ppp.conf</filename> dans l'une
-des sections &ldquo;default&rdquo;, &ldquo;demand&rdquo; ou
-&ldquo;interactive&rdquo; (ou &agrave; toutes&nbsp;-&nbsp;c'est &agrave; vous de voir).</para>
-</sect2>
-</sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/programming-tools/Makefile b/fr_FR.ISO8859-1/articles/programming-tools/Makefile
deleted file mode 100644
index 72c1d9b8c9..0000000000
--- a/fr_FR.ISO8859-1/articles/programming-tools/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.4
-#
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/programming-tools/article.sgml b/fr_FR.ISO8859-1/articles/programming-tools/article.sgml
deleted file mode 100755
index 064144f61c..0000000000
--- a/fr_FR.ISO8859-1/articles/programming-tools/article.sgml
+++ /dev/null
@@ -1,2001 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
- <!ENTITY rel.current CDATA "3.2">
-]>
-
-<article LANG="fr">
- <artheader>
- <title>Les outils de d&eacute;veloppement sous FreeBSD : Guide de
- l'utilisateur</title>
- <authorgroup>
- <author>
- <firstname>James</firstname>
- <surname>Raynard</surname>
- <affiliation>
- <address>
- <email>jraynard@freebsd.org</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
- <abstract>
- <para>17 Ao&ucirc;t 1997</para>
- <para>Copyright &copy; James Raynard, 1997.</para>
- <para>Ce document est une introduction &agrave; l'utilisation de
- quelques-uns des outils de programmation fournis avec FreeBSD,
- quoique l'essentiel reste aussi valable pour de nombreuses autres
- versions d'Unix. Il ne cherche <emphasis>pas</emphasis> &agrave;
- expliquer en d&eacute;tail comment coder. La plus grande partie du
- document suppose que vous n'avez aucune ou peu de notions
- pr&eacute;alables de programmation, bien que l'on esp&egrave;re
- que la plupart des programmeurs y trouveront quelque chose qui leur
- sera utile.</para>
- &abstract.disclaimer;
- &trans.a.haby;
- </abstract>
- </artheader>
- <sect1>
- <title>Introduction<anchor id=foo></title>
- <para>FreeBSD fournit un excellent environnement de d&eacute;veloppement.
- Le syst&egrave;me de base comprend des compilateurs C, C++ et Fortran,
- et un assembleur, pour ne pas mentionner l'interpr&eacute;teur Perl et
- les outils Unix classiques comme <command>sed</command> et
- <command>awk</command>. Si cela ne vous suffit pas, il y a beaucoup
- d'autres compilateurs et interpr&eacute;teurs au catalogue des logiciels
- port&eacute;s. FreeBSD est tr&egrave;s largement compatible avec les
- standards comme <acronym>POSIX</acronym> et <acronym>ANSI</acronym> C,
- de m&ecirc;me qu'avec son propre h&eacute;ritage BSD, il est donc
- possible d'&eacute;crire des applications qui compilent et
- s'ex&eacute;cutent sur une grande vari&eacute;t&eacute; de
- plates-formes.</para>
- <para>Toute cette puissance, toutefois, peut submerger au premier abord,
- si vous n'avez jamais auparavant &eacute;crit de programme sur une
- plate-forme Unix. Ce document vise &agrave; vous aider &agrave; vous
- y mettre, sans approfondir trop les questions les plus avanc&eacute;es.
- L'intention est de vous fournir suffisamment de bases pour vous
- permettre de tirer ensuite profit de la documentation.</para>
- <para>La plus grande partie du document ne demande aucune ou peu de
- connaissance de la programmation mais suppose une comp&eacute;tence de
- base dans l'utilisation d'Unix et la volont&eacute; d'apprendre!</para>
- </sect1>
- <sect1>
- <title>Introduction &agrave; la programmation</title>
- <para>Un programme est une s&eacute;rie d'instructions qui dit &agrave;
- l'ordinateur de faire des choses diverses; l'instruction qu'il doit
- ex&eacute;cuter d&eacute;pend parfois de ce qui s'est pass&eacute;
- lorsqu'il a ex&eacute;cut&eacute; une instruction
- pr&eacute;c&eacute;dente. Cette section vous donne un aper&ccedil;u
- des deux principales m&eacute;thodes pour transmettre ces instructions,
- ou &ldquo;commandes&rdquo; comme on les appellent. L'une est d'utiliser
- un <firstterm>interpr&eacute;teur</firstterm>, l'autre de se servir d'un
- <firstterm>compilateur</firstterm>. Comme les langues humaines sont trop
- compliqu&eacute;es pour &ecirc;tre comprises sans ambigu&iuml;t&eacute;
- par un ordinateur, les commandes sont g&eacute;n&eacute;ralement
- &eacute;crites dans l'un ou l'autre des languages sp&eacute;cialement
- con&ccedil;us &agrave; cet effet.</para>
- <sect2>
- <title>Interpr&eacute;teurs</title>
- <para>Dans le cas d'un interpr&eacute;teur, le langage s'accompagne d'un
- environnement, sous lequel vous tapez des commandes &agrave; son invite
- et qui les ex&eacute;cute pour vous. Pour des programmes plus
- compliqu&eacute;s, vous pouvez saisir les commandes dans un fichier
- et le faire charger et ex&eacute;cuter les commandes qu'il contient par
- l'interpr&eacute;teur. Si quelque chose se passe mal, la plupart des
- interpr&eacute;teurs passeront le contr&ocirc;le &agrave; un
- d&eacute;bogueur pour vous aider &agrave; trouver l'origine du
- probl&egrave;me.</para>
- <para>Cela a l'avantage de vous permettre de voir imm&eacute;diatement
- le r&eacute;sultat de vos commandes et de corriger sur le champ vos
- erreurs. Le principal inconv&eacute;nient survient lorsque vous voulez
- partager vos programmes avec d'autres. Il faut qu'ils aient le
- m&ecirc;me interpr&eacute;teur que vous ou que vous ayez le moyen de
- leur fournir cet interpr&eacute;teur; il faut aussi qu'ils comprennent
- comment s'en servir. Les utilisateurs peuvent aussi ne pas
- appr&eacute;cier de se retrouver sous un d&eacute;bogueur s'ils
- appuyent sur la mauvaise touche! Du point de vue de la performance,
- les interpr&eacute;teurs utilisent parfois beaucoup de m&eacute;moire
- et ne g&eacute;n&eacute;rent habituellement pas le code aussi
- efficacement que les compilateurs.</para>
- <para>A mon avis, les langages interpr&eacute;t&eacute;s sont le meilleur
- moyen de d&eacute;buter si vous n'avez jamais programm&eacute;
- auparavant. On trouve typiquement ce genre d'environnement avec des
- langages tels que Lisp, Smalltalk, Perl et Basic. On peut aussi
- avancer que le <foreignphrase>shell</foreignphrase> Unix est
- lui-m&ecirc;me un interpr&eacute;teur, beaucoup &eacute;crivent en fait
- avec des
- proc&eacute;dures&nbsp;-&nbsp;<foreignphrase>scripts</foreignphrase>&nbsp;-&nbsp;pour
- se faciliter le travail d'administration de leur machine. De fait,
- une partie de la philosphie d'origine d'Unix &eacute;tait de fournir
- nombre de petits programmes utilitaires qui puissent &ecirc;tre
- utilis&eacute;s de concert dans des proc&eacute;dures pour effectuer
- des t&acirc;ches utiles.</para>
- </sect2>
- <sect2>
- <title>Interpr&eacute;teurs disponibles pour FreeBSD</title>
-
- <para>Voici une liste des interpr&eacute;teurs disponibles sous forme de
- <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/">&ldquo;paquetages&rdquo;</ulink>
- FreeBSD, accompagn&eacute;e d'une br&egrave;ve description des langages
- interpr&eacute;t&eacute;s les plus r&eacute;pandus.</para>
- <para>Pour vous procurer l'un de ces &ldquo;paquetages&rdquo;, il vous
- suffit de cliquer sur le lien correspondant et d'ex&eacute;cuter
- ensuite:</para>
-<screen>&prompt.root; <userinput>pkg_add <replaceable>nom_du_paquetage</replaceable></userinput></screen>
- <para>sous le compte super-utilisateur <username>root</username>. Il faut
- bien &eacute;videmment que vous ayez un syst&egrave;me FreeBSD 2.1.0
- ou ult&eacute;rieur en &eacute;tat de marche pour que le logiciel
- fonctionne.</para>
- <variablelist>
- <varlistentry>
- <term><acronym>BASIC</acronym></term>
- <listitem>
- <para>Abr&eacute;viation pour &ldquo;<foreignphrase>Beginner's
- All-purpose Symbolic Instruction
- Code</foreignphrase>&rdquo;&nbsp;-&nbsp;code d'instructions
- symbolique universel pour les d&eacute;butants.
- D&eacute;velopp&eacute; dans les ann&eacute;es 50 pour apprendre
- la programmation aux &eacute;tudiants des Universit&eacute;s et
- fourni avec tout ordinateur personnel qui se respectait dans les
- ann&eacute;es 80, <acronym>BASIC</acronym> a &eacute;t&eacute; le
- premier langage pour de nombreux programmeurs. C'est aussi la base
- de <trademark>Visual Basic</trademark>.</para>
- <para>L'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/bwbasic-2.10.tgz">interpr&eacute;teur
- Basic Bywater</ulink> et
- l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/pbasic-2.0.tgz">interpr&eacute;teur
- Basic de Phil Cockroft</ulink> (appel&eacute; auparavant
- &ldquo;Rabbit Basic&rdquo;) sont disponibles sous forme de
- <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/">&ldquo;paquetages&rdquo;
- FreeBSD</ulink>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Lisp</term>
- <listitem>
- <para>Un langage d&eacute;velopp&eacute; &agrave; la fin des
- ann&eacute;es 1950 comme alternative aux langages
- &ldquo;d&eacute;voreurs de nombres&rdquo; qui e&acute;taient
- populaires &agrave; l'&eacute;poque. Au lieu d'&ecirc;tre
- bas&eacute; sur les nombres, Lisp repose sur les listes; de fait,
- son nom est une abr&eacute;viation pour &ldquo;<foreignphrase>List
- Processing</foreignphrase>&rdquo;&nbsp;-&nbsp;traitement de
- listes. Tr&eacute;s r&eacute;pandu dans les milieux de l'IA
- (Intelligence Artificielle).</para>
- <para>Lisp est un langage tr&egrave;s puissant et
- sophistiqu&eacute;, mais peut &ecirc;tre assez lourd et
- bavard.</para>
- <para>FreeBSD dispose de
- <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/gcl-2.0.tgz">GNU
- Common Lisp</ulink> sous forme de &ldquo;paquetage&rdquo;.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Perl</term>
- <listitem>
- <para>Tr&egrave;s employ&eacute; par les administrateurs
- syst&egrave;me pour &eacute;crire des proc&eacute;dures; et
- souvent aussi sur les serveurs <foreignphrase>World Wide
- Web</foreignphrase> pour &eacute;crire des proc&eacute;dures
- <acronym>CGI</acronym>.</para>
- <para>La Version 4, qui est probablement encore la version la plus
- largement r&eacute;pandue est fournie avec FreeBSD; le plus
- r&eacute;cent
- <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/perl-5.001.tgz">Perl
- Version 5</ulink> est disponible sous forme de
- &ldquo;paquetage&rdquo;.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Scheme</term>
- <listitem>
- <para>Un dialecte de Lisp qui est plut&ocirc;t plus compact et plus
- propre que Common Lisp. Courant dans les Universit&eacute;s parce
- qu'il est assez facile &agrave; enseigner en premier cycle comme
- langage d'initiation et pr&eacute;sente un niveau d'abstraction
- suffisant pour &ecirc;tre utilis&eacute; pour du travail de
- recherche.</para>
- <para>FreeBSD offre en &ldquo;paquetages&rdquo;
- l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/elk-3.0.tgz">Interpr&eacute;teur
- Scheme Elk</ulink>,
- l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/mit-scheme-7.3.tgz">Interpr&eacute;teur Scheme du MIT</ulink> et
- l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/scm-4e1.tgz">Interpr&eacute;teur
- Scheme SCM</ulink>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Icon</term>
- <listitem>
- <para><ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/icon-9.0.tgz">Le
- langage de programmation Icon</ulink>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Logo</term>
- <listitem>
- <para><ulink URL="ftp://ftp.freebsd.org:pub/FreeBSD/packages/lang/ucblogo-3.3.tgz">L'interpr&eacute;teur
- LOGO de Brian Harvey</ulink>.</para>
- </listitem>
- </varlistentry>
- <varlistentry><term>Python</term>
- <listitem>
- <para><ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/python-1.2">Le
- langage de programmation orient&eacute; objet Python</ulink>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- <sect2>
- <title>Compilateurs</title>
- <para>Les compilateurs sont assez diff&eacute;rents. Vous &eacute;crivez
- d'abord votre code dans un(des) fichiers(s) &agrave; l'aide d'un
- &eacute;diteur. Vous ex&eacute;cutez ensuite le compilateur et voyez
- s'il valide votre programme. S'il ne le compile pas, serrez les dents et
- retournez sous l'&eacute;diteur. S'il le compile et vous en fait un
- programme, vous pouvez l'utiliser soit &agrave; l'invite de
- l'interpr&eacute;teur de commande, soit en vous servant d'un
- d&eacute;bogueur pour voir s'il fonctionne
- correctement<footnote><para>Dans
- le cas contraire, si vous l'ex&eacute;cutez sur la ligne de commande, il
- peut &eacute;ventuellement
- planter&nbsp;-&nbsp;&ldquo;<foreignphrase>core
- dump</foreignphrase>&rdquo;.</para></footnote>.</para>
- <para>Ce n'est &eacute;videmment pas aussi imm&eacute;diat que de se
- servir d'un interpr&eacute;teur. Cela vous permet cependant de faire
- beaucoup de choses qui sont tr&egrave;s difficiles ou m&ecirc;me
- irr&eacute;alisables avec un interpr&eacute;teur, comme &eacute;crire
- du code qui interagisse &eacute;troitement avec le syst&egrave;me
- d'exploitation&nbsp;-&nbsp; ou m&ecirc;me &eacute;crire votre propre
- syst&egrave;me d'exploitation! C'est aussi utile si vous avez besoin
- d'&eacute;crire du code tr&egrave;s efficace, parce que le compilateur
- peut prendre son temps et optimiser le code, ce qui ne serait pas
- acceptable d'un interpr&eacute;teur. Distribuer un programme
- &eacute;crit pour un compilateur est g&eacute;n&eacute;ralement plus
- facile&nbsp;-&nbsp;il suffit de livrer une copie de l'ex&eacute;cutable,
- en supposant que les destinataires aient le m&ecirc;me syst&egrave;me
- d'exploitation que vous.</para>
- <para>Les langages compil&eacute;s incluent Pascal, C et C++. C et C++
- sont des langages qui pardonnent assez peu, et plus adapt&eacute;s aux
- programmeurs plus exp&eacute;riment&eacute;s. Pascal, d'un autre
- c&ocirc;t&eacute;, a &eacute;t&eacute; con&ccedil;u pour l'enseignement,
- et est un assez bon langage avec lequel commencer. Malheureusement,
- FreeBSD n'a aucun support pour Pascal, &agrave; l'exception d'un
- convertisseur de Pascal en C, au catalogue des logiciels
- port&eacute;s.</para>
- <para>Comme le cycle
- &ldquo;&eacute;dition-compilation-ex&eacute;cution-d&eacute;bogage&rdquo;
- est assez fastidieux, de nombreux fournisseurs de compilateurs
- commerciaux
- ont produit des Environnements de D&eacute;veloppement
- Int&eacute;gr&eacute;s (<acronym>EDI</acronym> en abr&eacute;g&eacute;).
- FreeBSD ne dispose pas d'<acronym>EDI</acronym> en tant que tel; il est
- cependant possible d'utiliser Emacs &agrave; cet effet. C'est
- expliqu&eacute; &agrave; la section <link linkend="emacs">Utiliser
- Emacs comme environnement de d&eacute;veloppement</link>.</para>
- </sect2>
- </sect1>
- <sect1>
- <title>Compiler avec <command>cc</command></title>
- <para>Cette section ne s'occupe que du compilateur GNU pour C et C++, qui
- est fourni de base avec le syst&egrave;me FreeBSD. Il peut &ecirc;tre
- appel&eacute; soit avec la commande <command>cc</command>, soit avec
- <command>gcc</command>. Les d&eacute;tails de la r&eacute;alisation
- d'un programme avec un interpr&eacute;teur varient consid&eacute;rablement
- d'un interpr&eacute;teur &agrave; l'autre, est sont
- g&eacute;n&eacute;ralement bien d&eacute;crits par l'aide en ligne de
- l'interpr&eacute;teur.</para>
- <para>Une fois que vous avez &eacute;crit votre chef-d'oeuvre,
- l'&eacute;tape suivante consiste &agrave; le convertir en quelque chose
- qui (esp&eacute;rons-le!) s'ex&eacute;cutera sous FreeBSD. Cela demande
- habituellement plusieurs op&eacute;rations successives, dont chacune est
- confi&eacute;e &agrave; un programme diff&eacute;rent.</para>
- <procedure>
- <step>
- <para>Pr&eacute;-processer votre code source pour en &eacute;liminer les
- commentaires et faire diverses autres choses, comme la substitution
- des macros-instructions en C.</para>
- </step>
- <step>
- <para>V&eacute;rifier la syntaxe de votre code pour s'assurer que vous
- avez respect&eacute; les r&egrave;gles du langage. Si ce n'est pas le
- cas, il rousp&eacute;tera.</para>
- </step>
- <step>
- <para>Convertir le code source en langage
- assembleur&nbsp;-&nbsp;c'est tr&egrave;s proche du code machine, mais
- encore compr&eacute;hensible par des &ecirc;tres humains. C'est du
- moins ce que l'on pr&eacute;tend<footnote><para>Pour &ecirc;tre
- rigoureusement exact, <command>cc</command> convertit le code source
- en un <firstterm>P-code</firstterm> qui lui est propre, et ne
- d&eacute;pend pas de la machine, et non en assembleur &agrave; ce
- stade.</para></footnote>.</para>
- </step>
- <step>
- <para>Convertir le langage assembleur en code machine&nbsp;-&nbsp;oui,
- nous parlons ici de bits et d'octets, de z&eacute;ros et de
- uns.</para>
- </step>
- <step>
- <para>V&eacute;rifier que vous avez utilis&eacute; de fa&ccedil;on
- coh&eacute;rente les fonctions et les variables globales. Si, par
- exemple, vous avez appel&eacute; une fonction qui n'existe pas, il
- s'en plaindra.</para>
- </step>
- <step>
- <para>Si vous essayez de g&eacute;n&eacute;rer un programme &agrave;
- partir de plusieurs fichiers de source, faire ce qu'il faut pour
- les regrouper.</para>
- </step>
- <step>
- <para>S'arranger pour produire quelque chose que le chargeur de
- programmes du syst&egrave;me pourra mettre en m&eacute;moire et
- ex&eacute;cuter.</para>
- </step>
- </procedure>
- <para>Le mot <firstterm>compiler</firstterm> est souvent utilis&eacute; pour
- ne d&eacute;signer que les &eacute;tapes 1 &agrave; 4&nbsp;-&nbsp;les
- autres sont appel&eacute;es <firstterm>&eacute;dition de
- liens</firstterm>. L'&eacute;tape 1 est parfois appel&eacute;e
- <firstterm>pr&eacute;-processer</firstterm> et les &eacute;tapes 3-4
- <firstterm>assembler</firstterm>.</para>
- <para>Heureusement, pratiquement tous ces d&eacute;tails vous sont
- transparents, car la commande <command>cc</command> est une interface
- qui g&egrave;re pour vous l'appel de ces diff&eacute;rents programmes
- avec les bons arguments; taper simplement:</para>
-<screen>&prompt.user; <userinput>cc foobar.c</userinput></screen>
- <para>effectue la compilation de <filename>foobar.c</filename> en passant
- par toutes les &eacute;tapes d&eacute;crites ci-dessus. Si vous avez
- &agrave; compiler plus d'un fichier, faites simplement quelque chose
- comme:</para>
-<screen>&prompt.user; <userinput>cc foo.c bar.c</></screen>
- <para>Notez que la v&eacute;rification syntaxique ne consiste qu'en cela:
- v&eacute;rifier la syntaxe. Il n'y aura pas de contr&ocirc;le sur les
- erreurs logiques que vous auriez commises, comme faire ex&eacute;cuter
- au programme une boucle infinie ou utiliser un tri &agrave; bulles au lieu
- d'un tri par arbre binaire<footnote><para>Au cas o&ugrave; vous ne le
- sauriez pas, un tri par arbre binaire est une mani&egrave;re efficace
- d'ordonner des donn&eacute;es, ce qui n'est pas le cas du tri
- &agrave; bulles.</para></footnote>.</para>
- <para><command>cc</command> dispose d'une quantit&eacute; d'options, qui
- sont toutes d&eacute;crites dans les pages de manuel. En voici
- quelques-unes des plus importantes, et la fa&ccedil;on de les
- utiliser.</para>
- <variablelist>
- <varlistentry>
- <term><option>-o <replaceable>nom_de_fichier</replaceable></option></term>
- <listitem>
- <para>Le nom du fichier r&eacute;sultat. Si vous n'utilisez pas cette
- option, <command>cc</command> g&eacute;n&eacute;rera un
- ex&eacute;cutable appel&eacute;
- <filename>a.out</filename><footnote><para>Les raisons de cela se
- sont perdues dans les brumes de
- l'histoire.</para></footnote>.</para>
- <informalexample>
-<screen>&prompt.user; <userinput>cc foobar.c</userinput> <lineannotation>l'ex&eacute;cutable est <filename>a.out</filename></lineannotation>
-&prompt.user; <userinput>cc -o foobar foobar.c</userinput> <lineannotation>l'ex&eacute;cutable est <filename>foobar</filename></lineannotation></screen>
- </informalexample>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>-c</option></term>
- <listitem>
- <para>Uniquement compiler le fichier, ne pas faire l'&eacute;dition de
- liens. Utile pour des programmes d'essai, quand vous voulez
- simplement v&eacute;rifier la syntaxe, ou si vous vous servez d'un
- <filename>Makefile</filename>.</para>
- <informalexample>
-<screen>&prompt.user; <userinput>cc -c foobar.c</userinput></screen>
- </informalexample>
- <para>Cela g&eacute;n&eacute;rera un <firstterm>fichier
- objet</firstterm> (et non un ex&eacute;cutable) appel&eacute;
- <filename>foobar.o</filename>. Il pourra &ecirc;tre li&eacute; avec
- d'autres fichiers objet pour constituer un ex&eacute;cutable.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>-g</option></term>
- <listitem>
- <para>Cr&eacute;e une version d&eacute;bogable de l'ex&eacute;cutable
- Le compilateur inclut alors dans l'ex&eacute;cutable des
- informations de correspondance entre les num&eacute;ros de ligne du
- fichier source et les fonctions appel&eacute;es. Un d&eacute;bogueur
- peut alors utiliser ces informations pour vous afficher le code
- source tandis que vous ex&eacute;cutez pas &agrave; pas le
- programme, ce qui est <emphasis>tr&egrave;s</emphasis> utile;
- l'inconv&eacute;nient est que toutes ces informations augmentent
- consid&eacute;rablement la taille du programme. Normalement, vous
- compilez avec <option>-g</option> quand vous d&eacute;veloppez le
- programme, et compilez ensuite une &ldquo;version de
- livraison&rdquo; quand vous &ecirc;tes satisfait parce qu'il
- fonctionne correctement.</para>
- <informalexample>
-<screen>&prompt.user; <userinput>cc -g foobar.c</userinput></screen>
- </informalexample>
- <para>Cela produira une version d&eacute;bogable du
- programme<footnote><para>Remarquez que nous n'avons pas
- utilis&eacute; l'indicateur <option>-o</option> pour pr&eacute;ciser
- le nom de l'ex&eacute;cutable, celui-ci s'appelera donc
- <filename>a.out</filename>. G&eacute;n&eacute;rer une version
- d&eacute;bogable appel&eacute;e <filename>foobar</filename> est
- laiss&eacute; &agrave; titre d'exercice aux soins du
- lecteur!</para></footnote>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>-O</option></term>
- <listitem>
- <para>G&eacute;n&egrave;re une version optimis&eacute;e de
- l'ex&eacute;cutable. Le compilateur effectue alors diverses
- op&eacute;rations bien pens&eacute;es pour essayer de construire
- un programme qui aille plus vite que normalement. Vous pouvez
- faire suivre <option>-O</option> d'un nombre pour demander un
- degr&eacute; plus important d'optimisation, mais cela met souvent
- en &eacute;vidence des bogues dans l'optimiseur du compilateur.
- Par exemple, on sait que la version de <command>cc</command> de
- FreeBSD 2.1.0 produit du code incorrect avec l'option
- <option>-O2</option> dans certaines circonstances.</para>
- <para>On n'active en g&eacute;n&eacute;ral l'optimisation
- qu'&agrave; la compilation de la version de livraison.</para>
- <informalexample>
-<screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput></screen>
- </informalexample>
- <para>Cela construira une version optimis&eacute;e de
- <filename>foobar</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>Les trois indicateurs suivants demanderont &agrave;
- <command>cc</command> de v&eacute;rifier que votre code est conforme
- &agrave; la norme internationale, souvent appel&eacute;e norme
- <acronym>ANSI</acronym>, bien que ce soit &agrave; proprement parler
- une norme <acronym>ISO</acronym>.</para>
- <variablelist>
- <varlistentry>
- <term><option>-Wall</option></term>
- <listitem>
- <para>Active tous les messages d'avertissement que les auteurs du
- compilateur <command>cc</command> ont jug&eacute;s
- int&eacute;ressants. Malgr&eacute; son nom
- (&ldquo;<foreignphrase>all</foreignphrase>&rdquo;&nbsp;-&nbsp;tous),
- cela n'active pas tous les messages d'avertissement dont le
- compilateur est capable.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>-ansi</option></term>
- <listitem>
- <para>D&eacute;sactive la plupart, mais pas toutes, les
- possibilit&eacute;s non-<acronym>ANSI</>&nbsp;C fournies par
- <command>cc</command>. Malgr&eacute; son nom, cela ne garantit pas
- absolument que votre code soit conforme &agrave; la norme.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>-pedantic</option></term>
- <listitem>
- <para>D&eacute;sactive <emphasis>toutes</emphasis> les
- possibilit&eacute;s non-<acronym>ANSI</>&nbsp;C de
- <command>cc</command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>Sans ces indicateurs, <command>cc</command> vous permet d'utiliser
- ses extensions non-standard de la norme. Quelques-unes sont tr&egrave;s
- utiles, mais ne se retrouveront pas sur d'autres
- compilateurs&nbsp;-&nbsp;de fait, l'un des objectifs principaux de la
- norme est de permettre l'&eacute;criture de code qui puissent &ecirc;tre
- r&eacute;utilis&eacute; avec n'importe quel compilateur sur n'importe
- quel syst&egrave;me. C'est cela que l'on appelle du <firstterm>code
- portable</firstterm>.</para>
- <para>En g&eacute;n&eacute;ral, vous devriez vous efforcer de rendre votre
- code aussi portable que possible, sans quoi vous risquez de devoir
- r&eacute;&eacute;crire enti&egrave;rement votre programme par la suite
- pour qu'il fonctionne ailleurs&nbsp;-&nbsp;et qui peut dire ce que vous
- utiliserez dans quelques ann&eacute;es?</para>
- <informalexample>
-<screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput></screen>
- </informalexample>
- <para>Cela g&eacute;n&eacute;rera un ex&eacute;cutable
- <filename>foobar</filename> apr&egrave;s avoir v&eacute;rifi&eacute; que
- <filename>foobar.c</filename> respecte la norme.</para>
- <variablelist>
-
- <varlistentry>
- <term><option>-l<replaceable>biblioth&egrave;que</replaceable></option></term>
- <listitem>
- <para>D&eacute;finit une biblioth&egrave;que de fonctions &agrave;
- utiliser pour l'&eacute;dition de liens.</para>
- <para>L'exemple le plus courant est la compilation d'un programme
- qui utilise certaines des fonctions math&eacute;matiques de C. A
- l'inverse de la plupart des autres plates-formes, ces fonctions
- sont dans une biblioth&egrave;que diff&eacute;rente de la
- biblioth&egrave;que C standard et vous devez pr&eacute;ciser au
- compilateur qu'il doit l'utiliser.</para>
- <para>La r&egrave;gle est que si la biblioth&egrave;que s'appelle
- <filename>lib<replaceable>quelque_chose</replaceable>.a</filename>,
- vous donnez &agrave; <command>cc</command> l'argument
- <option>-l<replaceable>quelque_chose</replaceable></option>. Par
- exemple, la biblioth&egrave;que math&eacute;matique s'appelle
- <filename>libm.a</filename>, vous donnez donc &agrave;
- <command>cc</command> l'argument <option>-lm</option>. Un
- d&eacute;tail &agrave; conna&icirc;tre &agrave; propos de la
- biblioth&egrave;que math&eacute;matique est que ce doit
- g&eacute;n&eacute;ralement &ecirc;tre la derni&egrave;re sur
- la ligne de commande.</para>
- <informalexample>
-<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput></screen>
- </informalexample>
- <para>Cela ajoutera &agrave; l'&eacute;dition de liens de
- <filename>foobar</filename> des fonctions de la
- biblioth&egrave;que math&eacute;matique.</para>
- <para>Si vous compilez du code C++, vous devrez ajouter
- <option>-lg++</option>, ou <option>-lstdc++</option> si vous
- utilisez la version 2.2 de FreeBSD ou une version
- ult&eacute;rieure, &agrave; la ligne de commande pour
- &eacute;diter les liens avec les fonctions de la
- biblioth&egrave;que C++. Au lieu de cela, vous pouvez utiliser la
- commande <command>c++</command> au lieu de <command>cc</command>,
- qui fera la m&ecirc;me chose &agrave; votre place. Sous FreeBSD,
- <command>c++</command> peut aussi &ecirc;tre appell&eacute; avec
- <command>g++</command>.</para>
- <informalexample>
-<screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>Avec FreeBSD 2.1.6 et ant&eacute;rieurs</lineannotation>
-&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>Avec FreeBSD 2.2 et ult&eacute;rieurs</lineannotation>
-&prompt.user; <userinput>c++ -o foobar foobar.cc</userinput></screen>
- </informalexample>
-
- <para>Chacun de ces exemples construira un ex&eacute;cutable
- <filename>foobar</filename> &agrave; partir du fichier source C++
- <filename>foobar.cc</filename>. Remarquez que, sur les
- syst&egrave;mes Unix, les fichiers sources C++ ont
- traditionnellement l'extension <filename>.C</filename>,
- <filename>.cxx</filename> ou <filename>.cc</filename>,
- plut&ocirc;t que l'extension <filename>.cpp</filename>
- de sytle <trademark>MS-DOS</trademark> (qui est d&eacute;j&agrave;
- utilis&eacute;e pour autre chose). <command>gcc</command> se
- fiait autrefois &agrave; l'extension pour savoir quel type de
- compilateur utiliser avec le fichier source, mais cette
- restriction ne s'applique plus, vous pouvez donc appeler vos
- fichiers C++ <filename>.cpp</filename> en toute
- impunit&eacute;!</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <sect2>
- <title>Questions et probl&egrave;mes <command>cc</command></title>
- <para>Q. J'essaie d'&eacute;crire un programme qui utilise la fonction
- <function>sin()</function> et j'obtiens une erreur qui ressemble
- &agrave; ce qui suit. Qu'est-ce que cela veut dire?
- <informalexample>
-<screen>/var/tmp/cc0143941.o: Undefined symbol `_sin' referenced from text segment</screen>
- </informalexample>
- </para>
- <para>R. Quand vous utilisez des fonctions math&eacute;matiques telles
- que <function>sin()</function>, vous devez dire &agrave;
- <command>cc</command> d'inclure la biblioth&egrave;que
- math&eacute;matique &agrave; l'&eacute;dition de liens, comme ceci:
- <informalexample>
-<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput></screen>
- </informalexample></para>
-
- <para>Q. D'accord, j'ai &eacute;crit ce petit programme pour
- m'entra&icirc;ner &agrave; utiliser <option>-lm</option>. Il ne fait
- que calculer 2.1 &agrave; la puissance 6:
- <informalexample>
- <programlisting>
-#include &lt;stdio.h&gt;
-
-int main() {
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float f;
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f = pow(2.1, 6);
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("2.1 ^ 6 = %f\n", f);
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
-}
- </programlisting>
- </informalexample>
- et l'ai compil&eacute; comme ceci:
- <informalexample>
-<screen>&prompt.user; <userinput>cc temp.c -lm</userinput></screen>
- </informalexample>
- comme vous avez dit qu'il fallait le faire, mais voil&agrave; ce que
- j'obtiens &agrave; l'ex&eacute;cution:
- <informalexample>
-<screen>&prompt.user; <userinput>./a.out</userinput>
-2.1 ^ 6 = 1023.000000</screen>
- </informalexample></para>
- <para>Ce n'est <emphasis>pas</emphasis> la bonne r&eacute;ponse! Que se
- passe-t-il?</para>
- <para>R. Quand le compilateur voit que vous appelez une fonction, il
- regarde s'il en a d&eacute;j&agrave; vu un prototype. Si ce n'est pas
- le cas, il suppose que la fonction retourne un
- <type>int</type>&nbsp;-&nbsp;<foreignphrase>entier</foreignphrase>, ce
- qui n'est &eacute;videmment pas ce que vous souhaitez dans ce
- cas.</para>
- <para>Q. Comment alors r&eacute;gler ce probl&egrave;me?</para>
- <para>R. Les prototypes des fonctions math&eacute;matiques sont dans
- <filename>math.h</filename>. Si vous incluez ce fichier, le
- compilateur trouvera le prototype et cessera de vous fournir un
- r&eacute;sultat bizarre!
- <informalexample>
- <programlisting>
-#include &lt;math.h&gt;
-#include &lt;stdio.h&gt;
-
-int main() {
-...
- </programlisting>
- </informalexample>
- </para>
- <para>Apr&egrave;s l'avoir recompil&eacute; de la m&ecirc;me
- fa&ccedil;on qu'auparavant, ex&eacute;cutez-le:
- <informalexample>
-<screen>&prompt.user; <userinput>./a.out</userinput>
-2.1 ^ 6 = 85.766121</screen>
- </informalexample>
- </para>
- <para>Si vous utilisez la moindre fonction math&eacute;matique, incluez
- <emphasis>toujours</emphasis> <filename>math.h</filename> et n'oubliez
- pas d'utiliser la biblioth&egrave;que math&eacute;matique &agrave;
- l'&eacute;dition de liens.</para>
- <para>Q. J'ai compil&eacute; un fichier appel&eacute;
- <filename>foobar.c</filename> et je ne trouve pas d'ex&eacute;cutable
- appel&eacute; <filename>foobar</filename>. O&ugrave; est-il
- pass&eacute;?</para>
- <para>R. N'oubliez pas, <command>cc</command> appelera
- l'ex&eacute;cutable <filename>a.out</filename> &agrave; moins que vous
- ne lui disiez de faire autrement. Utilisez l'option
- <option>-o&nbsp;<replaceable>nom_de_fichier</replaceable></option>:
- <informalexample>
-<screen>&prompt.user; <userinput>cc -o foobar foobar.c</userinput></screen>
- </informalexample>
- </para>
- <para>Q. OK, si j'ai un ex&eacute;cutable appel&eacute;
- <filename>foobar</filename>, je le vois avec <command>ls</command>,
- mais quand je tape <command>foobar</command> sur la ligne de commande,
- il me dit que le fichier n'existe pas. Pourquoi ne le trouve-t-il
- pas?</para>
- <para>R. A l'inverse de <trademark>MS-DOS</trademark>, Unix ne regarde
- pas dans le r&eacute;pertoire courant quand il cherche le programme
- que vous voulez ex&eacute;cuter, &agrave; moins que vous ne le lui
- disiez. Soit tapez <command>./foobar</command>, ce qui veut dire
- &ldquo;ex&eacute;cuter le fichier appel&eacute;
- <filename>foobar</filename> du r&eacute;pertoire courant&rdquo;, ou
- modifiez votre variable d'environnement
- <systemitem class=environvar>PATH</systemitem> pour qu'elle ressemble
- &agrave;:
- <informalexample>
-<screen>bin:/usr/bin:/usr/local/bin:.</screen>
- </informalexample>
- Le dernier point signifie &ldquo;chercher dans le r&eacute;pertoire
- courant si le fichier n'est pas dans les autres
- r&eacute;pertoires&rdquo;.</para>
- <para>Q. J'ai appel&eacute; mon ex&eacute;cutable
- <filename>test</filename>, mais il ne se passe rien quand je le
- lance. Pourquoi?</para>
- <para>R. Il y a un programme appel&eacute; <command>test</command> dans
- <filename>/usr/bin</filename> sur la plupart des syst&egrave;mes Unix
- et c'est celui-l&agrave; que trouve l'interpr&eacute;teur de commandes
- avant de regarder dans le r&eacute;pertoire courant. Soit tapez:
- <informalexample>
-<screen>&prompt.user; <userinput>./test</userinput></screen>
- </informalexample>
- ou choisissez un meilleur nom pour votre programme!</para>
- <para>Q. J'ai compil&eacute; et tout a commenc&eacute; &agrave;
- fonctionner correctement, puis il y a eu une erreur et il m'a dit
- quelque chose &agrave; propos de <errorname>core dumped</errorname>.
- Qu'est-ce que cela veut dire?</para>
- <para>A. L'expression <firstterm>core dump</firstterm> date des tous
- premiers jours d'Unix, quand les machines utilisaient la
- m&eacute;moire
- centrale&nbsp;-&nbsp;&ldquo;<foreignphrase>core memory</foreignphrase>&rdquo;
- pour stocker les informations. Essentiellement, si le programme
- &ldquo;plantait&rdquo; dans certaines conditions, le syst&egrave;me
- enregistrait sur disque le contenu de la m&eacute;moire centrale
- dans un fichier appel&eacute; <filename>core</filename>, que le
- programmeur pouvait ensuite diss&eacute;quer pour trouver
- o&ugrave; les choses avaient mal tourn&eacute;es.</para>
- <para>Q. Fascinant, mais que suis-je cens&eacute; faire
- maintenant?</para>
- <para>A. Servez-vous de <command>gdb</command> pour analyser l'image
- m&eacute;moire (Reportez-vous &agrave; la section
- <link linkend="debugging">D&eacute;boguer</link>).</para>
- <para>R. Quand mon programme a g&eacute;n&eacute;r&eacute; une image
- m&eacute;moire, il a dit quelque chose &agrave; propose de
- <errorname>segmentation fault</errorname>&nbsp;-&nbsp;&ldquo;erreur
- de segmentation&rdquo;. Qu'est-ce que c'est?</para>
- <para>Q. Cela signifie essentiellement que votre programme a
- essay&eacute; d'effectuer une quelconque op&eacute;ration
- ill&eacute;gale sur la m&eacute;moire; Unix est con&ccedil;u pour
- prot&eacute;ger le syst&egrave;me d'exploitation des programmes
- mal &eacute;duqu&eacute;s.</para>
- <para>Les raisons les plus courantes en sont:
- <itemizedlist>
- <listitem>
- <para>Essayer d'&eacute;crire en m&eacute;moire adress&eacute;e par
- un pointeur <symbol>NULL</symbol>, e.g.:
- <programlisting>
-char *foo = NULL;
-strcpy(foo, "bang!");
- </programlisting>
- </para>
- </listitem>
- <listitem>
- <para>Utiliser un pointeur qui n'a pas &eacute;t&eacute;
- initialis&eacute;, e.g.:
- <programlisting>
-char *foo;
-strcpy(foo, "bang!");
- </programlisting>
- Le pointeur aura une valeur al&eacute;atoire qui, avec de la
- chance, adressera une zone m&eacute;moire non accessible &agrave;
- votre programme, de sorte que le noyau tuera ce dernier avant
- qu'il ne provoque de d&eacute;gat. Si vous manquez de chance,
- il pointera quelque part &agrave; l'int&eacute;rieur de votre
- programme et endommagera l'une de vos structures de
- donn&eacute;es, provoquant un dysfonctionnement myst&eacute;rieux
- de votre programme.</para>
- </listitem>
- <listitem>
- <para>Tenter d'acc&eacute;der au-del&agrave; du dernier
- &eacute;l&eacute;ment d'un tableau, e.g.:
- <programlisting>
-int bar[20];
-bar[27] = 6;
- </programlisting>
- </para>
- </listitem>
- <listitem>
- <para>Essayer d'enregistrer quelque chose dans une zone de
- m&eacute;moire accessible en lecture seule, e.g.:
- <programlisting>
-char *foo = "Mon texte";
-strcpy(foo, "bang!");
- </programlisting>
- Les compilateurs Unix stockent souvent les cha&icirc;nes de
- caract&egrave;res constantes comme <literal>"Mon texte"</literal>
- en m&eacute;moire accessible en lecture seule.</para>
- </listitem>
- <listitem>
- <para>Utiliser incorrectement les fonctions
- <function>malloc()</function> et <function>free()</function>,
- e.g.:
- <programlisting>
-char bar[80];
-free(bar);
- </programlisting>
- ou:
- <programlisting>
-char *foo = malloc(27);
-free(foo);
-free(foo);
- </programlisting>
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>Commettre l'une de ces fautes ne provoquera pas toujours une erreur,
- mais ce sont malgr&eacute; tout des choses &agrave; ne pas faire.
- Certains syst&egrave;mes et compilateurs sont plus tol&eacute;rants que
- d'autres, ce qui fait que des programmes qui s'ex&eacute;cutent
- correctement sur un syst&egrave;me peuvent ne plus fonctionner sur un
- autre.</para>
- <para>Q. Parfois, le programme provoque la g&eacute;n&eacute;ration d'une
- image m&eacute;moire avec le message <errorname>bus error</errorname>.
- Mon manuel Unix dit qu'il s'agit d'un erreur mat&eacute;riel, mais
- l'ordinateur fonctionne apparemment correctement. Est-ce vrai?</para>
- <para>R. Fort heureusement, non (&agrave; moins bien s&ucirc;r que vous
- n'ayez aussi un probl&egrave;me mat&eacute;riel). C'est habituellement
- une autre fa&ccedil;on de dire que vous avez acc&eacute;d&eacute;
- incorrectement &agrave; la m&eacute;moire.</para>
- <para>Q. Il me semble que cette histoire de <foreignphrase>core
- dump</foreignphrase> peut &ecirc;tre tr&egrave;s utile, si je peux la
- provoquer quand je veux. Est-ce possible, ou dois-je attendre qu'il se
- produise une erreur?</para>
- <para>R. Oui, allez simplement sur une autre console ou fen&ecirc;tre
- <application>xterm</application> et tapez:
- <screen>&prompt.user; <userinput>ps</userinput></screen> pour
- conna&icirc;tre l'IDentifiant de processus de votre programme, puis:
- <screen>&prompt.user; <userinput>kill -ABRT <replaceable>pid</replaceable></userinput></screen>
- o&ugrave; <parameter><replaceable>pid</replaceable></parameter> est
- l'ID de processus que vous avez recherch&eacute;.</para>
- <para>C'est par exemple utile si votre programme est parti dans une boucle
- infinie. Au cas o&ugrave; votre programme pi&eacute;gerait les
- interruptions <symbol>SIGABRT</symbol>, il y a plusieurs autres signaux
- qui auront le m&ecirc;me effet.</para>
- </sect2>
- </sect1>
- <sect1>
- <title>Make</title>
- <sect2>
- <title>Qu'est-ce que <command>make</command>?</title>
- <para>Lorsque vous travaillez sur un programme simple avec seulement un
- ou deux fichiers de source, taper:
-<screen>&prompt.user; <userinput>cc fichier1.c fichier2.c</userinput></screen>
- n'est pas trop g&ecirc;nant, mais cela devient rapidement tr&egrave;s
- fastidieux lorsqu'il y a plusieurs fichiers&nbsp;-&nbsp;et cela peut
- aussi mettre du temps &agrave; compiler.</para>
- <para>Un fa&ccedil;on d'&eacute;viter ces probl&egrave;mes est
- d'utiliser des fichiers <firstterm>objets</firstterm> et de ne
- recompiler que les fichiers de source dont le contenu a chang&eacute;.
- Nous pourrions alors avoir quelque chose du style:
-<screen>&prompt.user; <userinput>cc fichier1.o fichier2.o</userinput> &hellip; <userinput>file37.c</userinput> &hellip</screen>
- si nous avons modif&eacute; <filename>fichier37.c</filename>, et
- celui-l&agrave; uniquement, depuis notre compilation
- pr&eacute;c&eacute;dente. Cela peut s&eacute;rieusement
- acc&eacute;l&eacute;rer la compilation, mais ne r&eacute;soud pas le
- probl&egrave;me de saisie &agrave; r&eacute;p&eacute;tition de la
- commande.</para>
- <para>Nous pourrions aussi &eacute;crire une proc&eacute;dure pour
- r&eacute;soudre ce dernier probl&egrave;me, mais ne ne pourrions alors
- que lui faire tout recompiler, ce qui serait tr&egrave;s peu efficace
- sur un gros projet.</para>
- <para>Que ce passe-t-il si nous avons des centaines de fichiers de
- sources? Si nous travaillons en &eacute;quipe et que d'autres
- oublient de nous pr&eacute;venir des modifications qu'ils ont
- apport&eacute;es &agrave; un des fichiers que nous utilisons?</para>
- <para>Peut-&ecirc;tre pourrions-nous rassembler les deux solutions et
- &eacute;crire quelque chose qui ressemble &agrave; une
- proc&eacute;dure et comporte une sorte de r&egrave;gle magique
- qui dise quand tel fichier de source doit &ecirc;tre compil&eacute;.
- Nous n'aurions plus besoin que d'un programme qui comprennent ces
- r&egrave;gles, parce que c'est un peu trop compliqu&eacute; pour une
- proc&eacute;dure.</para>
- <para>Ce programme s'appelle <command>make</command>. Il lit un fichier,
- qu'on appelle un <firstterm>makefile</firstterm>, qui lui dit quelles
- sont les d&eacute;pendances entre les diff&eacute;rents fichiers, et
- en d&eacute;duit lesquels ont besoin ou non d'&ecirc;tre
- recompil&eacute;s. Par exemple, une r&egrave;gle peut signifier
- quelque chose comme &ldquo;si <filename>fromboz.o</filename> est plus
- ancien que <filename>fromboz.c</filename>, cela veut dire que
- <filename>fromboz.c</filename> doit avoir &eacute;t&eacute;
- modifi&eacute;, il faut donc le recompiler&rdquo;. Le fichier
- &ldquo;<foreignphrase>makefile</foreignphrase>&rdquo; inclut aussi
- des r&egrave;gles qui lui disent <emphasis>comment</emphasis>
- recompiler, ce qui en fait un outil encore plus puissant.</para>
- <para>Ces fichiers &ldquo;makefiles&rdquo; sont habituellement
- rang&eacute;s dans le m&ecirc;me r&eacute;pertoire que les sources
- auxquels ils s'appliquent, et peuvent &ecirc;tre appel&eacute;s
- <filename>makefile</filename>, <filename>Makefile</filename> ou
- <filename>MAKEFILE</filename>. La plupart des programmeurs utilisent
- le nom <filename>Makefile</filename>, ce qui fait qu'ils se trouvent
- alors vers le d&eacute;but de la liste des fichiers et sont ainsi
- facilement rep&eacute;rables <footnote><para>Ils n'utilisent pas la
- variante <filename>MAKEFILE</filename> parce que les noms en
- majuscules servent souvent &agrave; d&eacute;signer les fichiers de
- documentation comme
- <filename>README</filename>.</para></footnote>.</para>
- </sect2>
- <sect2>
- <title>Exemple d'utilisation de <command>make</command></title>
- <para>Voici un fichier <filename>Makefile</filename>
- &eacute;l&eacute;mentaire :
- <programlisting>
-foo: foo.c
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc -o foo foo.c
- </programlisting>
- Il contient deux lignes, une pour la d&eacute;pendance et une
- pour la g&eacute;n&eacute;ration.</para>
- <para>La ligne d&eacute;crivant la d&eacute;pendance contient le
- nom du programme (qu'on appelle la <firstterm>cible</firstterm>),
- suivi de &ldquo;deux points&rdquo;, puis d'un blanc et du nom
- du fichier source. Quand <command>make</command> lit cette ligne,
- il regarde si <filename>foo</filename> existe; s'il existe, il
- compare la date de derni&egrave;re modification de
- <filename>foo</filename> &agrave; celle de derni&egrave;re
- modification de <filename>foo.c</filename>. Si
- <filename>foo</filename> n'existe pas, ou s'il est ant&eacute;rieur
- &agrave; <filename>foo.c</filename>, il regarde alors la ligne de
- g&eacute;n&eacute;ration pour savoir ce qu'il faut faire. En
- d'autres termes, c'est la r&egrave;gle &agrave; appliquer pour
- savoir si <filename>foo.c</filename> doit &ecirc;tre
- recompil&eacute;.</para>
- <para>La ligne de g&eacute;n&eacute;ration commence par une
- <token>tabulation</token> (appuyez sur la touche
- <keycap>Tab</keycap>) suivie de la commande que vous taperiez
- pour compiler <filename>foo</filename> si vous le faisiez sur
- la ligne de commande. Si <filename>foo</filename> n'est pas
- &agrave; jour ou s'il n'existe pas, <command>make</command>
- ex&eacute;cute alors cette commande pour le cr&eacute;er. En
- d'autres termes, c'est la r&egrave;gle qui dit &agrave;
- <command>make</command> comment recompiler
- <filename>foo.c</filename>.</para>
- <para>Ainsi, quand vous tapez <userinput>make</userinput>, il
- fera en sorte que <filename>foo</filename> soit en phase avec les
- derni&egrave;res modifications que vous avez apport&eacute;es &agrave;
- <filename>foo.c</filename>. Ce principe s'&eacute;tend aux
- <filename>Makefile</filename>s avec des centaines de
- cibles&nbsp;-&nbsp;de fait, sur FreeBSD, il est possible de compiler
- tout le syst&egrave;me d'exploitation en tapant simplement
- <userinput>make world</userinput> dans le r&eacute;pertoire
- ad&eacute;quat!</para>
- <para>Une autre particularit&eacute; de <filename>Makefile</filename>s
- est que les cibles ne sont pas n&eacute;cessairement des programmes.
- Nous pourrions par exemple avoir le <filename>Makefile</filename>
- suivant:
- <programlisting>
-foo: foo.c
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc -o foo foo.c
-
-install:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp foo /home/me
- </programlisting>
- </para>
- <para>Nous pouvons dire &agrave; <command>make</command> quelle cible
- nous voulons atteindre en tapant:
-<screen>&prompt.user; <userinput>make <replaceable>cible</replaceable></userinput></screen>
- <command>make</command> examinera alors cette cible et ignorera
- toutes les autres. Par exemple, si, avec le
- <filename>Makefile</filename> pr&eacute;c&eacute;dent, nous tapons
- <userinput>make foo</userinput>, <command>make</command> ignorera
- la cible <action>install</action>.</para>
- <para>Si nous tapons simplement <userinput>make</userinput> tout
- court, il examinera toujours la premi&egrave;re cible et
- s'arr&ecirc;tera ensuite sans s'occuper des autres. Si nous
- avions tap&eacute; <userinput>make</userinput> dans ce cas, il
- serait simplement all&eacute; &agrave; la cible
- <action>foo</action>, aurait recompil&eacute;
- <filename>foo</filename> si n&eacute;cessaire, et se serait
- arr&ecirc;t&eacute; sans passer &agrave; la cible
- <action>install</action>.</para>
- <para>Remarquez que la cible <action>install</action> ne d&eacute;pend
- en fait de rien du tout! Cela signifie que la commande sur la ligne
- suivante est toujours ex&eacute;cut&eacute;e si nous essayons de
- reconstruire cette cible en tapant
- <userinput>make install</userinput>. Dans ce cas, il copiera
- <filename>foo</filename> dans le r&eacute;pertoire de l'utilisateur.
- C'est souvent utilis&eacute; par les <filename>Makefile</filename>s
- de logiciels, de sorte que l'application soit install&eacute;e dans
- le bon r&eacute;pertoire, une fois correctement
- compil&eacute;e.</para>
- <para>C'est un point un peu d&eacute;licat &agrave; expliquer. Si vous
- ne comprenez pas exactement comment <command>make</command>
- fonctionne, la meilleure chose &agrave; faire est d'&eacute;crire
- un programme simple comme le classique &ldquo;Bonjour, le
- monde!&rdquo;, un fichier <filename>Makefile</filename> et de
- faire des essais. Compilez ensuite en utilisant plus d'un
- fichier source, ou en ayant un fichier source qui inclut un
- fichier d'en-t&ecirc;te. La commande <command>touch</command>
- vous sera tr&egrave;s utile&nbsp;-&nbsp;elle modifie la date
- d'un fichier sans que vous ayez &agrave; l'&eacute;diter.</para>
- </sect2>
- <sect2>
- <title>Makefiles FreeBSD</title>
- <para>L'&eacute;criture de <filename>Makefile</filename>s peut
- &ecirc;tre assez compliqu&eacute;e. Heurusement, les syst&egrave;mes
- bas&eacute;s sur BSD, comme FreeBSD, en fournissent de tr&egrave;s
- puissants, int&eacute;gr&eacute;s au syst&egrave;me. Le catalogue des
- logiciels port&eacute;s de FreeBSD en est un excellent exemple. Voici
- l'essentiel d'un de leurs <filename>Makefile</filename>s typiques:
- <programlisting>
-MASTER_SITES= ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/
-DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz
-
-.include &lt;bsd.port.mk&gt;
- </programlisting>
- </para>
- <para>Si nous allons maintenant dans le r&eacute;pertoire associ&eacute;
- &agrave; ce logiciel et tapons <userinput>make</userinput>, voici ce
- qui se passe:</para>
- <procedure>
- <step>
- <para>Il regarde si le code source de ce logiciel est
- d&eacute;j&agrave; pr&eacute;sent sur le syst&egrave;me.</para>
- </step>
- <step>
- <para>S'il n'y est pas, une connexion FTP &agrave; l'URL
- indiqu&eacute;e par <symbol>MASTER_SITES</symbol> est
- &eacute;tablie pour t&eacute;l&eacute;charger le source.</para>
- </step>
- <step>
- <para>La somme de contr&ocirc;le est calcul&eacute;e sur le source et
- compar&eacute;e &agrave; celle calcul&eacute;e sur une version
- connue et valid&eacute;e. Cela pour s'assurer que le source n'a
- pas &eacute;t&eacute; corrompu pendant le transfert.</para>
- </step>
- <step>
- <para>Les modifications n&eacute;cessaires pour que le code
- fonctionne sous FreeBSD sont appliqu&eacute;es&nbsp;-&nbsp;c'est
- ce que l'on appelle <firstterm>patcher</firstterm>.</para>
- </step>
- <step>
- <para>Les op&eacute;rations particuli&egrave;res de configuration
- du source sont effectu&eacute;es. (De nombreuses distributions de
- programmes Unix essayent de d&eacute;terminer sur quel
- syst&egrave;me elles sont compil&eacute;es et de quelles
- fonctionnalit&eacute;s Unix optionnelles il
- dispose&nbsp;-&nbsp;c'est &agrave; ce stade du sc&eacute;nario
- d'installation de logiciels sous FreeBSD que leur sont fournies
- ces informations).</para>
- </step>
- <step>
- <para>Le code source du programme est compil&eacute;. De fait, on
- passe dans le r&eacute;pertoire o&ugrave; le code a
- &eacute;t&eacute; d&eacute;compact&eacute; et
- <command>make</command> y est ex&eacute;cut&eacute;&nbsp;-&nbsp;le
- <filename>Makefile</filename> du programme lui-m&ecirc;me contient
- les informations n&eacute;cessaires &agrave; sa
- compilation.</para>
- </step>
- <step>
- <para>Nous disposons maintenant d'une version compil&eacute;e du
- programme. Si nous le voulons, nous pouvons maintenant la tester;
- si nous avons confiance dans le programme, nous pouvons taper
- <userinput>make install</userinput>. Cela recopiera le programme
- et tous les fichiers d'environnement dont il a besoin &agrave;
- l'endroit ad&eacute;quat; une entr&eacute;e sera aussi
- cr&eacute;&eacute;e dans une <database>base de donn&eacute;es des
- logiciels</database>, de fa&ccedil;on &agrave; ce qu'il puisse
- &ecirc;tre d&eacute;sinstall&eacute; par la suite, si nous
- changeons d'avis.</para>
- </step>
- </procedure>
- <para>Je pense que vous serez maintenant d'accord pour trouver que c'est
- assez impressionnant pour une simple proc&eacute;dure de quatre
- lignes!</para>
- <para>Le secret se trouve &agrave; la derni&egrave;re ligne, qui dit
- &agrave; <command>make</command> d'aller voir ce qu'il y a dans le
- <filename>Makefile</filename> appel&eacute;
- <filename>bsd.port.mk</filename>. Il est facile de rater cette ligne,
- mais c'est pourtant de l&agrave; que vient toute la m&eacute;canique
- subtile. Quelqu'un a &eacute;crit un <filename>Makefile</filename>
- qui dit &agrave; <command>make</command> de faire tout ce qui a
- &eacute;t&eacute; d&eacute;crit ci-dessus (plus deux ou trois autres
- choses dont je n'ai pas parl&eacute;, dont le traitement des erreurs
- qui pourraient se produire) et tout le monde peut l'utiliser en
- mettant simplement cette unique ligne dans son propre
- <filename>Makefile</filename>!</para>
- <para>Si vous voulez jeter un oeil &agrave; ces
- <filename>Makefile</filename>s syst&egrave;mes, ils sont dans le
- r&eacute;pertoire <filename>/usr/share/mk</filename>, mais il vaut
- mieux attendre d'avoir un peu d'exp&eacute;rience des
- <filename>Makefile</filename>s, parce qu'ils sont tr&egrave;s
- compliqu&eacute;s (et si vous les regardez, ayez sous la main
- une bonne dose de caf&eacute; serr&eacute;!).</para>
- </sect2>
- <sect2>
- <title>Utilisation plus pouss&eacute;e de <command>make</command></title>
- <para> <command>make</command> est un outil tr&egrave;s puissant, et peut
- faire beaucoup plus que l'exemple &eacute;l&eacute;mentaire que nous
- avons donn&eacute;. Il y a malheureusement plusieurs versions de
- <command>make</command>, et elles sont tr&egrave;s
- diff&eacute;rentes. La meilleure fa&ccedil;on de savoir ce qu'elles
- peuvent faire est certainement de lire la
- documentation&nbsp;-&nbsp;esp&eacute;rons que cette introduction
- vous aura fourni les bases pour le faire.</para>
- <para>La version de <command>make</command> fournie avec FreeBSD est
- <application>Berkeley make</application>; elle s'accompagne d'un guide
- dans <filename>/usr/share/doc/psd/12.make</filename>. Pour le
- visualiser, tapez:
-<screen>&prompt.user; <userinput>zmore paper.ascii.gz</userinput></screen>
- dans ce r&eacute;pertoire.</para>
- <para>Il y a des nombreux logiciels du catalogue des logiciels
- port&eacute;s qui utilisent <application>GNU make</application>, qui
- est tr&egrave;s bien document&eacute; dans les pages
- &ldquo;info&rdquo;. Si vous avez install&eacute; un de ces logiciels,
- <application>GNU make</application> sera automatiquement install&eacute;
- sont le nom <command>gmake</command>. Il est aussi disponible sous forme
- de logiciel port&eacute; ou pr&eacute;compil&eacute; autonome.</para>
- <para>Pour visualiser les pages &ldquo;info&rdquo; de
- <application>GNU make</application>, il vous faut &eacute;diter le
- fichier <filename>dir</filename> du r&eacute;pertoire
- <filename>/usr/local/info</filename> et y ajouter une ligne pour ce
- programme. C'est une ligne du genre:
- <programlisting>
- * Make: (make). L'utilitaire GNU Make.
- </programlisting>
- Une fois que c'est fait, vous pouvez taper <userinput>info</userinput>
- puis s&eacute;lectionner <guimenuitem>make</guimenuitem> dans le menu
- (ou sous <application>Emacs</application>, taper <userinput>C-h
- i</userinput>).</para>
- </sect2>
- </sect1>
- <sect1 id="debugging">
- <title>D&eacute;boguer</title>
- <sect2>
- <title>Le d&eacute;bogueur</title>
- <para>Le d&eacute;bogueur qui est fourni avec FreeBSD s'appelle
- <command>gdb</command>
- (<application>GNU d&eacute;bogueur</application>). Vous le lancez en
- tapant:
-<screen>&prompt.user; <userinput>gdb <replaceable>nom_du_programme</replaceable></userinput></screen>
- bien que la plupart des gens pr&eacute;f&egrave;rent l'ex&eacute;cuter
- sous <application>Emacs</application>. Ce qui se fait avec:
-<screen><userinput>M-x gdb RET <replaceable>progname</replaceable> RET</userinput></screen>
- </para>
- <para>Se servir d'un d&eacute;bogueur vous permet d'ex&eacute;cuter le
- programme sous contr&ocirc;le. Vous pouvez typiquement
- l'ex&eacute;cuter pas &agrave; pas, inspecter les valeurs des
- variables, les modifier, dire au d&eacute;bogueur d'ex&eacute;cuter
- le programme jusqu'&agrave; un certain endroit et de s'y
- arr&ecirc;ter, et ainsi de suite. Vous pouvez m&ecirc;me
- le rattacher &agrave; un programme qui est d&eacute;j&agrave; en
- cours d'ex&eacute;cution, ou charger une image
- m&eacute;moire&nbsp;-&nbsp;&ldquo;<foreignphrase>core</foreignphrase>&rdquo;.
- Il est m&ecirc;me possible de d&eacute;boguer le noyau, bien que cela
- soit un peu plus compliqu&eacute; que dans le cas des programmes
- utilisateurs, dont nous parlerons dans cette section.</para>
- <para><command>gdb</command> dispose d'une assez bonne aide en ligne,
- ainsi que d'un jeu de pages &ldquo;info&rdquo;, cette section se
- concentrera donc sur quelques commandes de base.</para>
- <para>Enfin, si le mode de fonctionnement en ligne de commande vous
- rebute, il existe une interface graphique appel&eacute;e
- <ulink URL="http://www.freebsd.org/ports/devel.html">xxgdb</ulink>
- au catalogue des logiciels port&eacute;s.</para>
- <para>Cette section est destin&eacute;e &agrave; servir d'introduction
- &agrave; l'utilisation du d&eacute;bogueur et ne couvre pas les
- questions sp&eacute;cialis&eacute;es comme le d&eacute;bogage du
- noyau.</para>
- </sect2>
- <sect2>
- <title>Ex&eacute;cuter un programme sous le d&eacute;bogueur</title>
- <para>Il faudra que vous ayez compil&eacute; le programme avec l'option
- <option>-g</option> pour tirer le meilleur parti de
- <command>gdb</command>. Cela fonctionnera sans cela, mais vous ne
- verrez que le nom de la fonction dans laquelle vous &ecirc;tes, au
- lieu du code source. Si vous avez un message du genre:
-<screen>&hellip; (no debugging symbols found) &hellip;</screen>
- au d&eacute;marrage de <command>gdb</command>, vous saurez que le
- programme n'a pas &eacute;t&eacute; compil&eacute; avec l'option
- <option>-g</option>.</para>
- <para>A l'invite de <command>gdb</command>, tapez <userinput>break
- main</userinput>. Cela dira au d&eacute;bogueur d'ex&eacute;cuter le
- code pr&eacute;liminaire de mise en oeuvre dans le programme et de
- s'arr&ecirc;ter au d&eacute;but de votre programme. Tapez maintenant
- <userinput>run</userinput> pour lancer le programme&nbsp;-&nbsp;il
- commencera au d&eacute;but du code pr&eacute;liminaire et sera
- interrompu par le d&eacute;bogueur sur l'appel de
- <function>main()</function>. (Si vous vous &eacute;tiez jamais
- demand&eacute; d'o&ugrave; la fonction <function>main()</function>
- &eacute;tait appel&eacute;e, vous le savez maintenant!).</para>
- <para>Vous pouvez maintenant ex&eacute;cuter le programme une ligne
- &agrave; la fois, en appuyant sur <command>n</command>. Si
- vous arrivez sur un appel de fonction, vous pouvez passer dans la
- fonction en appuyant sur <command>s</command>. Une fois dans la
- fonction, vous pouvez terminer son ex&eacute;cution et en sortir en
- tapant <command>f</command>. Vous pouvez aussi utiliser
- <command>up</command> et <command>down</command> pour jeter un
- coup d'oeil au code appelant.</para>
- <para>Voici un exemple simple de la mani&egrave;re de diagnostiquer une
- erreur dans un programme avec <command>gdb</command>. Voici notre
- programme (intentionnellement faux):
- <programlisting>
-#include &lt;stdio.h&gt;
-
-int bazz(int un_entier);
-
-main() {
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i;
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("C'est mon programme\n");
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bazz(i);
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
-}
-
-int bazz(int un_entier) {
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Vous m'avez donn&eacute; %d\n", un_entier);
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return un_entier;
-}
- </programlisting>
- </para>
- <para>Ce programme affecte &agrave; <symbol>i</symbol> la valeur
- <literal>5</literal> et la passe &agrave; la fonction
- <function>bazz()</function> qui affiche la valeur que nous lui
- donnons en param&egrave;tre.</para>
- <para>Quand nous compilons et ex&eacute;cutons le programme, nous
- obtenons:
-<screen>&prompt.user; <userinput>cc -g -o temp temp.c</userinput>
-&prompt.user; <userinput>./temp</userinput>
-C'est mon programme
-Vous m'avez donn&eacute; 4231</screen></para>
- <para>Ce n'est pas ce &agrave; quoi nous nous attendions! C'est le
- moment d'aller voir ce qui ce passe!
-<screen>&prompt.user; <userinput>gdb temp</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc.
-(gdb) <userinput>break main</userinput> <lineannotation>Ex&eacute;cuter le code d'initialisation</lineannotation>
-Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation><command>gdb</command> met un pont d'arr&ecirc;t &agrave; l'appel de <function>main()</function></lineannotation>
-(gdb) <userinput>run</userinput> <lineannotation>Ex&eacute;cuter jusqu'&agrave; <function>main()</function></lineannotation>
-Starting program: /home/james/tmp/temp <lineannotation>Le programme d&eacute;marre</lineannotation>
-
-Breakpoint 1, main () at temp.c:9 <lineannotation><command>gdb</command> s'arr&ecirc;te &agrave; <function>main()</function></lineannotation>
-(gdb) <userinput>n</userinput> <lineannotation>Aller &agrave; la ligne suivante</lineannotation>
-C'est mon programme <lineannotation>Le programme imprime</lineannotation>
-(gdb) <userinput>s</userinput> <lineannotation>Aller dans <function>bazz()</function></lineannotation>
-bazz (un_entier=4231) at temp.c:17 <lineannotation><command>gdb</command> affiche la position dans la pile d'appel</lineannotation>
-(gdb)</screen></para>
- <para>Une minute! Comment <symbol>un_entier</symbol> peut-il valoir
- <literal>4231</literal>? Ne l'avons-nous pas initialis&eacute;
- &agrave; <literal>5</literal> dans <function>main()</function>?
- Revenons &agrave; <function>main()</function> et jetons un
- oeil.</para>
- <para>
-<screen>(gdb) <userinput>up</userinput> <lineannotation>Remonter d'un cran dans la pile d'appel</lineannotation>
-#1 0x1625 in main () at temp.c:11 <lineannotation><command>gdb</command> affiche la position dans la pile d'appel</lineannotation>
-(gdb) <userinput>p i</userinput> <lineannotation>Afficher la valeur de <symbol>i</symbol></lineannotation>
-$1 = 4231 <lineannotation><command>gdb</command> affiche <literal>4231</literal></lineannotation></screen>
- Et oui! Si nous regardons le code, nous avons oubli&eacute;
- d'initialiser <symbol>i</symbol>. Nous voulions mettre:
- <programlisting>
-<lineannotation>&hellip;</lineannotation>
-main() {
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i;
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = 5;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("C'est mon programme\n");
-<lineannotation>&hellip</lineannotation>
- </programlisting>
- mais nous avons oubli&eacute; la ligne <literal>i=5;</literal>.
- Comme nous n'avons pas initialis&eacute; <symbol>i</symbol>, il
- prend la valeur qui se trouve &agrave; cet endroit de la
- m&eacute;moire quand le programme s'ex&eacute;cute, dans notre
- cas, il s'est trouv&eacute; que c'&eacute;tait
- <literal>4231</literal>.</para>
- <note>
- <para><command>gdb</command> affiche l'endroit o&ugrave; nous nous
- trouvons dans la pile d'appel, chaque fois que nous entrons ou
- sortons d'une fonction, m&ecirc;me si nous utilisons
- <command>up</command> et <command>down</command> pour nous
- d&eacute;placer dans la pile. Cela nous donne le nom de la fonction
- et les valeurs de ses param&egrave;tres, ce qui nous aide &agrave;
- rep&eacute;rer o&ugrave; nous sommes et ce qu'il se passe. (La pile
- d'appel est une zone de m&eacute;moire o&ugrave; le programme
- enregistre les informations sur les param&egrave;tres pass&eacute;s
- aux fonctions et o&ugrave; aller quand il ressort d'un fonction
- appel&eacute;e.)</para>
- </note>
- </sect2>
- <sect2>
- <title>Examiner un fichier
- &ldquo;<foreignphrase>core</foreignphrase>&rdquo;</title>
- <para>Un fichier &ldquo;<foreignphrase>core</foreignphrase>&rdquo; est
- essentiellement un fichier qui contient l'&eacute;tat complet du
- programme au moment o&ugrave; il s'est &ldquo;plant&eacute;&rdquo;. Au
- &ldquo;bon vieux temps&rdquo;, les programmeurs devaient imprimer le
- contenu en hexad&eacute;cimal des fichiers
- &ldquo;<foreignphrase>core</foreignphrase>&rdquo; et transpirer sur des
- manuels de code machine, mais la vie est aujourd'hui un peu plus facile.
- Au passage, sous FreeBSD et les autres syst&egrave;mes 4.4BSD, un
- fichier &ldquo;<foreignphrase>core</foreignphrase>&rdquo; s'appelle
- <filename><replaceable>nom_du_programme</replaceable>.core</filename>,
- et non <filename>core</filename> tout court,
- de fa&ccedil;on &agrave; ce que l'on sache &agrave; quel programme il
- correspond.</para>
- <para>Pour examiner un fichier
- &ldquo;<foreignphrase>core</foreignphrase>&rdquo;, lancez
- <command>gdb</command> comme d'habitude. Au lieu de taper
- <command>break</command> ou <command>run</command>, tapez:
-<screen>(gdb) <userinput>core <replaceable>nom_du_programme</replaceable>.core</userinput></screen>
- Si vous n'&ecirc;tes pas dans le m&ecirc;me r&eacute;pertoire que
- le fichier &ldquo;<foreignphrase>core</foreignphrase>&rdquo;, vous
- devrez d'abord faire
- <userinput>dir /ou/se/trouve/le/fichier/core</userinput>.</para>
- <para>Vous devriez voir quelque chose comme:
-<screen>&prompt.user; <userinput>gdb a.out</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc.
-(gdb) <userinput>core a.out.core</userinput>
-Core was generated by `a.out'.
-Program terminated with signal 11, Segmentation fault.
-Cannot access memory at address 0x7020796d.
-#0 0x164a in bazz (un_entier=0x5) at temp.c:17
-(gdb)</screen></para>
- <para>Dans ce cas, le programme s'appelait <filename>a.out</filename>, le
- fichier &ldquo;<foreignphrase>core</foreignphrase>&rdquo; s'appelle
- donc <filename>a.out.core</filename>. Nous constatons que le programme
- s'est termin&eacute; en erreur &agrave; cause d'une tentative
- d'acc&egrave;s &agrave; une zone de m&eacute;moire qui n'&eacute;tait
- pas accessible dans une fonction appel&eacute;
- <function>bazz</function>.</para>
- <para>Il est parfois utile de pouvoir savoir comment une fonction a
- &eacute;t&eacute; appel&eacute;e, parce que le probl&egrave;me peut
- s'&ecirc;tre produit bien au-dessus dans la pile d'appel dans un
- programme complexe. La commande <command>bt</command> dit &agrave;
- <command>gdb</command> d'imprimer en remontant la pile d'appel:
-<screen>(gdb) <userinput>bt</userinput>
-#0 0x164a in bazz (un_entier=0x5) at temp.c:17
-#1 0xefbfd888 in end ()
-#2 0x162c in main () at temp.c:11
-(gdb)</screen>
- La fonction <function>end()</function> est appel&eacute;e quand un
- programme &eacute;choue; dans le cas pr&eacute;sent, la fonction
- <function>bazz()</function> a &eacute;t&eacute; appel&eacute;e par
- <function>main()</function>.</para>
- </sect2>
- <sect2>
- <title>Prendre le contr&ocirc;le d'un programme en cours
- d'ex&eacute;cution</title>
- <para>Une des possibilit&eacute;s les plus int&eacute;ressantes de
- <command>gdb</command> est qu'il peut se rattacher &agrave; un
- programme en cours d'ex&eacute;cution. Il faut bien s&ucirc;r que vous
- ayez les autorisations suffisantes pour le faire. Le cas d'un programme
- qui &ldquo;fourche&rdquo;&nbsp;-&nbsp;<foreignphrase>fork</foreignphrase>&nbsp;-&nbsp;est
- un probl&egrave;me classique, lorsque vous voulez suivre le
- d&eacute;roulement du processus fils, alors que le d&eacute;bogueur ne
- vous permet que de tracer le processus p&egrave;re.</para>
- <para>Vous lancez alors un autre <command>gdb</command>, utilisez
- <command>ps</command> pour conna&icirc;tre l'IDentifiant de processus du
- fils, puis faites:
-<screen>(gdb) <userinput>attach <replaceable>pid</replaceable></userinput></screen>
- sous <command>gdb</command>, et d&eacute;boguez alors comme
- d'habitude.</para>
- <para>&ldquo;Tout cela est bien beau&rdquo;, vous dites vous
- peut-&ecirc;tre, &ldquo;mais le temps que j'ai fait tout &ccedil;a, le
- processus fils aura d&eacute;j&agrave; fait un bon bout de
- chemin&rdquo;. Rien &agrave; craindre, aimable lecteur, voici ce
- qu'il faut faire (emprunt&eacute; aux pages &ldquo;info&rdquo; de
- <command>gdb</command>):
-<screen><lineannotation>&hellip</lineannotation>
-if ((pid = fork()) < 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* _Toujours_ effectuer se contr&ocirc;le */
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error();
-else if (pid == 0) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* C'est le processus fils */
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int PauseMode = 1;
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (PauseMode)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(10);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* Attendre que quelqu'un se rattache &agrave; nous */
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&hellip;
-} else {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* parent */
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&hellip;</screen>
- Il n'y a plus qu'&agrave; se rattacher au fils, positionner
- <symbol>PauseMode</symbol> &agrave; <literal>0</literal>, et attendre
- que l'appel de <function>sleep()</function> nous rende la main!</para>
- </sect2>
- </sect1>
- <sect1 id="emacs">
- <title>Utiliser Emacs comme environnement de d&eacute;veloppement</title>
- <sect2>
- <title>Emacs</title>
- <para>Les syst&egrave;mes Unix ne s'accompagnent malheureusement pas
- du type d'environnement de d&eacute;veloppement
- int&eacute;gr&eacute; du genre &ldquo;tout ce que vous avez toujours
- voulu et encore beaucoup plus en un seul monstrueux paquetage&rdquo;
- dont disposent d'autres syst&egrave;mes<footnote><para>Au moins, pas
- &agrave; moins que vous ne soyez pr&ecirc;t &agrave; les payer une somme
- astronomique.</para></footnote>. Il est cependant possible de mettre
- au point votre propre environnement. Il ne sera peut-&ecirc;tre pas
- aussi esth&eacute;tique et il ne sera peut-&ecirc;tre pas aussi
- int&eacute;gr&eacute;, mais vous pourrez le configurer comme vous le
- voulez. Et il est gratuit. En plus, vous en avez les sources.</para>
- <para>Emacs est la cl&eacute; de tout. Il y a bien des gens qui le
- d&eacute;crient, mais nombreux sont ceux qui l'aiment. Si vous
- &ecirc;tes des premiers, j'ai peur que cette section n'ait que peu
- d'int&eacute;r&ecirc;t pour vous. Il vous faudra aussi pas mal de
- m&eacute;moire pour l'utiliser. Je conseille 8Mo en mode texte et
- 16Mo sous X comme strict minimum pour avoir des temps de r&eacute;ponse
- raisonnables.</para>
- <para>Emacs est essentiellement un &eacute;diteur extr&ecirc;mement
- configurable&nbsp;-&nbsp;il a de fait &eacute;t&eacute; configur&eacute;
- au point de ressembler plus &agrave; un syst&egrave;me
- d'exploitation qu'&agrave; un &eacute;diteur! De nombreux
- d&eacute;veloppeurs et administrateurs syst&egrave;me passent le plus
- clair de leur temps &agrave; travailler sous Emacs, le quittant
- seulement pour se d&eacute;connecter.</para>
- <para>Il est impossible de m&ecirc;me r&eacute;sumer ici tout ce qu'Emacs
- est capable de faire, mais voici quelques fonctionnalit&eacute;s qui
- int&eacute;ressent les d&eacute;veloppeurs:
- <itemizedlist>
- <listitem>
- <para>Editeur tr&egrave;s puissant qui permet et de rechercher et
- remplacer des cha&icirc;nes de caract&egrave;res et d'utiliser pour
- le faire des expressions r&eacute;guli&egrave;res (motifs), d'aller
- au d&eacute;but ou &agrave; la fin de blocs syntaxiques, etc,
- etc.</para>
- </listitem>
- <listitem>
- <para>Menus d&eacute;roulants et aide en ligne.</para>
- </listitem>
- <listitem>
- <para>Mise en valeur et indentation en fonction de la syntaxe du
- langage utilis&eacute;.</para>
- </listitem>
- <listitem>
- <para>Compl&egrave;tement configurable.</para>
- </listitem>
- <listitem>
- <para>Vous pouvez compiler et d&eacute;boguer des programmes depuis
- Emacs.</para>
- </listitem>
- <listitem>
- <para>En cas d'erreur &agrave; la compilation, vous pouvez aller
- directement &agrave; la ligne qui en est la cause.</para>
- </listitem>
- <listitem>
- <para>Interface ergonomique au programme <command>info</command>
- qui sert &agrave; lire la documentation hypertexte GNU, dont
- celle d'Emacs lui-m&ecirc;me.</para>
- </listitem>
- <listitem>
- <para>Interface conviviale pour <command>gdb</command>, qui vous
- permet de visualiser le code source en m&ecirc;me temps que vous
- ex&eacute;cutez pas &agrave; pas le programme.</para>
- </listitem>
- <listitem>
- <para>Vous pouvez lire les &ldquo;news&rdquo; Usenet et votre
- courrier &eacute;lectronique pendant que votre programme
- compile.</para>
- </listitem>
- </itemizedlist>
- Et sans aucun doute bien d'autres choses qui m'ont
- &eacute;chapp&eacute;es.</para>
- <para>Emacs peut &ecirc;tre install&eacute; sous FreeBSD sous forme de
- <ulink URL="http://www.freebsd.org/ports/editors.html">logiciel
- port&eacute;</ulink>.</para>
- <para>Une fois qu'il est install&eacute;, lancez-le et tapez
- <userinput>C-h t</userinput>&nbsp;-&nbsp;ce qui signifie maintenir
- enfonc&eacute;e la touche <keycap>Ctrl</keycap>, taper
- <keycap>h</keycap>, rel&acirc;cher la touche <keycap>Ctrl</keycap>, et
- appuyer ensuite sur <keycap>t</keycap>&nbsp;-&nbsp; pour lire le guide
- d'Emacs (Vous pouvez aussi utiliser la souris pour s&eacute;lectionner
- <guimenuitem>Emacs
- Tutorial</guimenuitem>&nbsp;-&nbsp;&ldquo;<foreignphrase>Guide
- Emacs</foreignphrase>&rdquo;&nbsp;-&nbsp;depuis le menu
- <guimenu>Help</guimenu>&nbsp;-&nbsp;&ldquo;<foreignphrase>Aide</foreignphrase>&rdquo;).</para>
- <para>Bien qu'Emacs ait des menus, il vaut la peine d'apprendre &agrave;
- utiliser les raccourcis claviers, parce qu'il est bien plus rapide
- quand vous &eacute;ditez quelque chose d'appuyer sur deux ou trois
- touches que de courir apr&egrave;s la souris et cliquer ensuite au bon
- endroit. Si, par ailleurs, vous discutez avec des utilisateurs
- exp&eacute;riment&eacute;s d'Emacs, vous vous aperceverez qu'ils
- utilisent assez couramment des expressions comme
- &ldquo;<literal>M-x replace-s RET foo RET bar RET</literal>&rdquo;,
- il peut donc servir de comprendre ce qu'ils veulent dire. Et de toute
- fa&ccedil;on, Emacs a bien plus de fonctions utiles qu'il ne peut en
- tenir sur une barre de menus.</para>
- <para>Il est heureusement assez facile de d&eacute;couvrir les raccourcis
- claviers, ils sont affich&eacute;s dans les menus. Je vous conseille
- d'utiliser les menus pour, par exemple, ouvrir un fichier
- jusqu'&agrave; ce que vous compreniez comment cela marche et ayez
- suffisamment confiance en vous, puis d'essayer C-x C-f. Une fois que
- cela vous convient, passez &agrave; une autre des commandes des
- menus.</para>
- <para>Si vous ne vous rappelez pas ce que fait une combinaison
- donn&eacute;e de touches, choisissez <guimenuitem>Describe
- Key</guimenuitem>&nbsp;-&nbsp;&ldquo;<foreignphrase>Description d'une
- touche</foreignphrase>&rdquo;&nbsp;-&nbsp;dans le menu
- <guimenu>Help</guimenu>&nbsp;-&nbsp;&ldquo;<foreignphrase>Aide</foreignphrase>&rdquo;&nbsp;-&nbsp;et
- tapez cette combinaison&nbsp;-&nbsp;Emacs vous dira ce qu'elle fait.
- Vous pouvez aussi utiliser le choix <guimenuitem>Command
- Apropos</guimenuitem>&nbsp;-&nbsp;&ldquo;<foreignphrase>A propos d'une
- commande</foreignphrase>&rdquo;&nbsp;-&nbsp;pour conna&icirc;tre
- toutes les commandes comportant un mot donn&eacute; et les touches qui
- leur correspondent.</para>
- <para>Au fait, l'expression plus haut signifie: enfoncer la touche
- <keysym>M&eacute;ta</keysym>, appuyer sur <keysym>x</keysym>,
- rel&acirc;cher la touche <keysym>M&eacute;ta</keysym>, taper
- <userinput>replace-s</userinput> (abr&eacute;viation de
- <literal>replace-string</literal>&nbsp;-&nbsp;&ldquo;<foreignphrase>remplacer
- une cha&icirc;ne de caract&egrave;res</foreignphrase>&rdquo;&nbsp;-&nbsp;une autre
- caract&eacute;ristique d'Emacs est de vous permettre d'abr&eacute;ger
- les commandes), appuyer sur <keysym>Entr&eacute;e</keysym>, taper
- <userinput>foo</userinput> (la cha&icirc;ne que vous voulez remplacer),
- appuyer sur <keysym>Entr&eacute;e</keysym>, taper
- <userinput>bar</userinput> (la cha&icirc;ne avec laquelle vous voulez
- remplacer <literal>foo</literal>) et appuyer encore sur
- <keysym>Entr&eacute;e</keysym>. Emacs effectuera alors
- l'op&eacute;ration de recherche et remplacement que vous venez de
- demander.</para>
- <para>Si vous vous demandez ce qu'est la touche
- <keysym>M&eacute;ta</keysym>, c'est une touche sp&eacute;ciale qu'ont
- beaucoup de stations Unix. Malheureusement, les PCs n'en ont pas, c'est
- habituellement la touche <keysym>Alt</keysym> qui est utilis&eacute;e
- (ou si vous n'avez pas de chance, la touche
- <keysym>Echap</keysym>).</para>
- <para>Oh, et pour sortir d'Emacs, tapez <command>C-x C-c</command>
- (Ce qui signifie: enfoncer la touche <keysym>Ctrl</keysym>, appuyer sur
- <keysym>c</keysym>, appuyer sur <keysym>x</keysym> et rel&acirc;cher la
- touche <keysym>Ctrl</keysym>). S'il y a des fichiers ouverts que vous
- n'avez pas sauvegard&eacute;s, Emacs vous demandera si vous voulez les
- sauvegarder. (Oubliez que la documentation dit que la m&eacute;thode
- habituelle pour quitter Emacs est d'utiliser
- <command>C-z</command>&nbsp;-&nbsp;cela laisse Emacs actif en
- t&acirc;che de fond et n'est r&eacute;ellement utile que si vous
- &ecirc;tes sur un syst&egrave;me qui ne g&egrave;re pas de terminaux
- virtuels).</para>
- </sect2>
- <sect2>
- <title>Configurer Emacs</title>
- <para>Emacs fait des choses admirables; certaines fonctionnalit&eacute;s
- sont incorpor&eacute;es, d'autres doivent &ecirc;tre
- configur&eacute;es.</para>
- <para>Au lieu d'utiliser un langage de macros-instructions
- propri&eacute;taires, Emacs se sert d'une version de Lisp
- sp&eacute;cialement adapt&eacute;e aux &eacute;diteurs, connue sous le
- nom de Emacs Lisp. Ce peut &ecirc;tre tr&egrave;s utile si vous voulez
- aller plus loin et apprendre ensuite par exemple Common Lisp, parce
- qu'il est consid&eacute;rablement plus l&eacute;ger que Common Lisp
- (quoique qu'encore assez imposant!).</para>
- <para>La meilleure fa&ccedil;on d'apprendre Emacs Lisp est de
- t&eacute;l&eacute;charger
- <ulink URL="ftp://prep.ai.mit.edu/pub/gnu/elisp-manual-19-2.4.tar.gz">le
- Guide Emacs Lisp</ulink>.</para>
-
- <para>Il n'y a cependant pas besoin de conna&icirc;tre quoique ce soit
- &agrave; Lisp pour commencer &agrave; configurer Emacs, parce que j'ai
- inclu un fichier <filename>.emacs</filename> d'exemple, qui devrait
- suffire au d&eacute;but. Copiez-le simplement dans votre
- r&eacute;pertoire utilisateur et relancez Emacs, s'il s'ex&eacute;cute
- d&eacute;j&agrave;; il lira les commandes du fichier et (je
- l'esp&egrave;re) vous fournira une configuration de base utile.</para>
- </sect2>
- <sect2>
- <title>Un exemple de fichier <filename>.emacs</filename></title>
- <para>Il contient malheureusement beaucoup trop de choses pour tout
- expliquer en d&eacute;tails; il y a cependant un ou deux points
- int&eacute;ressants &agrave; mentionner.</para>
- <para>
- <itemizedlist>
- <listitem>
- <para>Tout ce qui commence par un <literal>;</literal> est en
- commentaire et est ignor&eacute; par Emacs.</para>
- </listitem>
- <listitem>
- <para>La premi&egrave;re ligne,
- <literal>-*-&nbsp;Emacs-Lisp&nbsp;-*-</literal> permet
- d'&eacute;diter le fichier <filename>.emacs</filename>
- lui-m&ecirc;me sous Emacs et de profiter de toutes les
- fonctionnalit&eacute;es li&eacute;es &agrave; l'&eacute;dition de
- code Emacs Lisp. Emacs tente habituellement de deviner le type de
- fichier en fonction de son nom, mais risque de ne pas y arriver
- pour le fichier <filename>.emacs</filename>.</para>
- </listitem>
- <listitem>
- <para>La touche <keysym>Tab</keysym> est utilis&eacute;e pour
- l'indentation dans certains modes, de sorte que si vous appuyez
- sur cette touche cela indente la ligne de code courante. Si vous
- voulez mettre un caract&egrave;re <token>tabulation</token> dans
- votre texte, enfoncer la touche <keysym>Ctrl</keysym> en
- m&ecirc;me temps que vous appuyez sur
- <keysym>Tab</keysym>.</para>
- </listitem>
- <listitem>
- <para>Ce fichier permet le mise en valeur syntaxique de code C,
- C++, Perl, Lisp et Scheme, en d&eacute;terminant le langage
- d'apr&egrave;s le nom du fichier &eacute;dit&eacute;.</para>
- </listitem>
- <listitem>
- <para>Emacs a d&eacute;j&agrave; une fonction
- pr&eacute;d&eacute;finie appel&eacute;e
- <function>next-error</function>&nbsp;-&nbsp;&ldquo;<foreignphrase>erreur
- suivante</foreignphrase>&rdquo;. Dans la fen&ecirc;tre de
- r&eacute;sultats d'une compilation, cela vous permet d'aller
- d'une erreur &agrave; la suivante avec <command>M-n</command>;
- nous d&eacute;finissons la fonction compl&eacute;mentaire
- <function>previous-error</function>&nbsp;-&nbsp;&ldquo;<foreignphrase>erreur
- pr&eacute;c&eacute;dente</foreignphrase>&rdquo;, qui vous permet
- de retourner &agrave; l'erreur pr&eacute;c&eacute;dente avec
- <command>M-p</command>. Le plus sympathique est que
- <command>C-c C-c</command> ouvrira le fichier source o&ugrave;
- l'erreur s'est produite et ira &agrave; la ligne
- concern&eacute;e.</para>
- </listitem>
- <listitem>
- <para>Nous activons la possibilit&eacute; qu'a Emacs d'agir comme
- serveur, de fa&ccedil;on &agrave; ce que si vous travaillez hors
- d'Emacs et voulez &eacute;diter un fichier, il vous suffise de
- taper:
-<screen>&prompt.user; <userinput>emacsclient <replaceable>nom_du_fichier</replaceable></userinput></screen>
- pour pouvoir ensuite le modifier avec Emacs!<footnote><para>De
- nombreux utilisateurs d'Emacs affectent &agrave; leur variable
- d'environnement <systemitem class=environvar>EDITOR</systemitem>
- la valeur <literal>emacsclient</literal> de fa&ccedil;on &agrave;
- ce que ce soit ce qui se produise chaque fois qu'ils ont besoin
- d'&eacute;diter un fichier.</para></footnote>.</para>
- </listitem>
- </itemizedlist>
- </para>
- <example>
- <title>Un exemple de fichier <filename>.emacs</filename></title>
-<screen>
-;; -*-Emacs-Lisp-*-
-
-;; Ce fichier est con&ccedil;u pour &ecirc;tre relu; la variable
-;; first-time est utilis&eacute;e pour &eacute;viter les probl&egrave;mes
-;; que cela pourra poser.
-(defvar first-time t
- "Indicateur signifiant que le fichier .emacs est lu pour la premi&egrave;re fois")
-
-;; M&eacute;ta
-(global-set-key "\M- " 'set-mark-command)
-(global-set-key "\M-\C-h" 'backward-kill-word)
-(global-set-key "\M-\C-r" 'query-replace)
-(global-set-key "\M-r" 'replace-string)
-(global-set-key "\M-g" 'goto-line)
-(global-set-key "\M-h" 'help-command)
-
-;; Touches fonction
-(global-set-key [f1] 'manual-entry)
-(global-set-key [f2] 'info)
-(global-set-key [f3] 'repeat-complex-command)
-(global-set-key [f4] 'advertised-undo)
-(global-set-key [f5] 'eval-current-buffer)
-(global-set-key [f6] 'buffer-menu)
-(global-set-key [f7] 'other-window)
-(global-set-key [f8] 'find-file)
-(global-set-key [f9] 'save-buffer)
-(global-set-key [f10] 'next-error)
-(global-set-key [f11] 'compile)
-(global-set-key [f12] 'grep)
-(global-set-key [C-f1] 'compile)
-(global-set-key [C-f2] 'grep)
-(global-set-key [C-f3] 'next-error)
-(global-set-key [C-f4] 'previous-error)
-(global-set-key [C-f5] 'display-faces)
-(global-set-key [C-f8] 'dired)
-(global-set-key [C-f10] 'kill-compilation)
-
-;; Touches curseur
-(global-set-key [up] "\C-p")
-(global-set-key [down] "\C-n")
-(global-set-key [left] "\C-b")
-(global-set-key [right] "\C-f")
-(global-set-key [home] "\C-a")
-(global-set-key [end] "\C-e")
-(global-set-key [prior] "\M-v")
-(global-set-key [next] "\C-v")
-(global-set-key [C-up] "\M-\C-b")
-(global-set-key [C-down] "\M-\C-f")
-(global-set-key [C-left] "\M-b")
-(global-set-key [C-right] "\M-f")
-(global-set-key [C-home] "\M-&lt;")
-(global-set-key [C-end] "\M-&gt;")
-(global-set-key [C-prior] "\M-&lt;")
-(global-set-key [C-next] "\M-&gt;")
-
-;; Souris
-(global-set-key [mouse-3] 'imenu)
-
-;; Divers
-(global-set-key [C-tab] "\C-q\t") ; Ctrl tab = caract&egrave;re tabulation.
-(setq backup-by-copying-when-mismatch t)
-
-;; 'y' ou &lt;CR&gt; &eacute;quivaut &agrave; yes, 'n' &agrave; no.
-(fset 'yes-or-no-p 'y-or-n-p)
- (define-key query-replace-map [return] 'act)
- (define-key query-replace-map [?\C-m] 'act)
-
-;; Paquetages &agrave; charger
-(require 'desktop)
-(require 'tar-mode)
-
-;; Mode diff &eacute;volu&eacute;
-(autoload 'ediff-buffers "ediff" "Interface Emacs intelligente pour diff" t)
-(autoload 'ediff-files "ediff" "Interface Emacs intelligente pour diff" t)
-(autoload 'ediff-files-remote "ediff"
- "Interface Emacs intelligente pour diff")
-</screen>
-
-<screen>
-(if first-time
-&nbsp;&nbsp;&nbsp;&nbsp;(setq auto-mode-alist
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(append '(("\\.cpp$" . c++-mode)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;("\\.hpp$" . c++-mode)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;("\\.lsp$" . lisp-mode)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;("\\.scm$" . scheme-mode)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;("\\.pl$" . perl-mode)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) auto-mode-alist)))
-
-;; Mise en valeur syntaxique automatique
-(defvar font-lock-auto-mode-list
- (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode)
- "Listes des modes &agrave; d&eacute;marrer toujours avec mise en valeur")
-
-(defvar font-lock-mode-keyword-alist
- '((c++-c-mode . c-font-lock-keywords)
- (perl-mode . perl-font-lock-keywords))
- "Associations entre modes et mots-cl&eacute;s")
-
-(defun font-lock-auto-mode-select ()
- "S&eacute;lectionne automatiquement type de mise en valeur si le major mode courant est dans font-lock-auto-mode-list"
- (if (memq major-mode font-lock-auto-mode-list)
- (progn
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(font-lock-mode t))
- )
- )
-
-(global-set-key [M-f1] 'font-lock-fontify-buffer)
-
-;; Nouveau dabbrev
-;(require 'new-dabbrev)
-(setq dabbrev-always-check-other-buffers t)
-(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_")
-(add-hook 'emacs-lisp-mode-hook
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'(lambda ()
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set (make-local-variable 'dabbrev-case-fold-search) nil)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set (make-local-variable 'dabbrev-case-replace) nil)))
-(add-hook 'c-mode-hook
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'(lambda ()
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set (make-local-variable 'dabbrev-case-fold-search) nil)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set (make-local-variable 'dabbrev-case-replace) nil)))
-(add-hook 'text-mode-hook
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'(lambda ()
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set (make-local-variable 'dabbrev-case-fold-search) t)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set (make-local-variable 'dabbrev-case-replace) t)))
-
-;; Mode C++ et C...
-(defun my-c++-mode-hook ()
- (setq tab-width 4)
- (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key c++-mode-map "\C-ce" 'c-comment-edit)
- (setq c++-auto-hungry-initial-state 'none)
- (setq c++-delete-function 'backward-delete-char)
- (setq c++-tab-always-indent t)
- (setq c-indent-level 4)
- (setq c-continued-statement-offset 4)
- (setq c++-empty-arglist-indent 4))
-
-(defun my-c-mode-hook ()
- (setq tab-width 4)
- (define-key c-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key c-mode-map "\C-ce" 'c-comment-edit)
- (setq c-auto-hungry-initial-state 'none)
- (setq c-delete-function 'backward-delete-char)
- (setq c-tab-always-indent t)
-;; indentation style BSD
- (setq c-indent-level 4)
- (setq c-continued-statement-offset 4)
- (setq c-brace-offset -4)
- (setq c-argdecl-indent 0)
- (setq c-label-offset -4))
-
-;; Mode Perl...
-(defun my-perl-mode-hook ()
- (setq tab-width 4)
- (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (setq perl-indent-level 4)
- (setq perl-continued-statement-offset 4))
-
-;; Mode Scheme...
-(defun my-scheme-mode-hook ()
- (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent))
-
-;; Mode Emacs-Lisp...
-(defun my-lisp-mode-hook ()
- (define-key lisp-mode-map "\C-m" 'reindent-then-newline-and-indent)
- (define-key lisp-mode-map "\C-i" 'lisp-indent-line)
- (define-key lisp-mode-map "\C-j" 'eval-print-last-sexp))
-
-;; Ajouts des pr&eacute;c&eacute;dents
-(add-hook 'c++-mode-hook 'my-c++-mode-hook)
-(add-hook 'c-mode-hook 'my-c-mode-hook)
-(add-hook 'scheme-mode-hook 'my-scheme-mode-hook)
-(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook)
-(add-hook 'lisp-mode-hook 'my-lisp-mode-hook)
-(add-hook 'perl-mode-hook 'my-perl-mode-hook)
-
-;; L'inverse de next-error
-(defun previous-error (n)
- "Aller &agrave; l'erreur de compilation pr&eacute;c&eacute;dente et au code correspondant."
- (interactive "p")
- (next-error (- n)))
-</screen>
-
-<screen>;; Divers...
-(transient-mark-mode 1)
-(setq mark-even-if-inactive t)
-(setq visible-bell nil)
-(setq next-line-add-newlines nil)
-(setq compile-command "make")
-(setq suggest-key-bindings nil)
-(put 'eval-expression 'disabled nil)
-(put 'narrow-to-region 'disabled nil)
-(put 'set-goal-column 'disabled nil)
-
-;; Recherche dans les archives Elisp
-(autoload 'format-lisp-code-directory "lispdir" nil t)
-(autoload 'lisp-dir-apropos "lispdir" nil t)
-(autoload 'lisp-dir-retrieve "lispdir" nil t)
-(autoload 'lisp-dir-verify "lispdir" nil t)
-
-;; Mise en valeur syntaxique
-(defun my-make-face (face colour &amp;optional bold)
- "Cr&eacute;er une apparence pour une couleur, &eacute;ventuellement en gras"
- (make-face face)
- (copy-face 'default face)
- (set-face-foreground face colour)
- (if bold (make-face-bold face))
- )
-
-(if (eq window-system 'x)
- (progn
- (my-make-face 'blue "blue")
- (my-make-face 'red "red")
- (my-make-face 'green "dark green")
- (setq font-lock-comment-face 'blue)
- (setq font-lock-string-face 'bold)
- (setq font-lock-type-face 'bold)
- (setq font-lock-keyword-face 'bold)
- (setq font-lock-function-name-face 'red)
- (setq font-lock-doc-string-face 'green)
- (add-hook 'find-file-hooks 'font-lock-auto-mode-select)
-
- (setq baud-rate 1000000)
- (global-set-key "\C-cmm" 'menu-bar-mode)
- (global-set-key "\C-cms" 'scroll-bar-mode)
- (global-set-key [backspace] 'backward-delete-char)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; (global-set-key [delete] 'delete-char)
- (standard-display-european t)
- (load-library "iso-transl")))
-
-;; X11 ou PC &eacute;crivant directement &agrave; l'&eacute;cran
-(if window-system
- (progn
- ;; (global-set-key [M-f1] 'hilit-repaint-command)
- ;; (global-set-key [M-f2] [?\C-u M-f1])
- (setq hilit-mode-enable-list
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'(not text-mode c-mode c++-mode emacs-lisp-mode lisp-mode
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scheme-mode)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hilit-auto-highlight nil
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hilit-auto-rehighlight 'visible
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hilit-inhibit-hooks nil
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hilit-inhibit-rebinding t)
- (require 'hilit19)
- (require 'paren))
- (setq baud-rate 2400) ; Pour les connections s&eacute;rie lentes
- )
-
-;; Terminal type TTY
-(if (and (not window-system)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(not (equal system-type 'ms-dos)))
-&nbsp;&nbsp;&nbsp;&nbsp;(progn
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if first-time
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(progn
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keyboard-translate ?\C-h ?\C-?)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keyboard-translate ?\C-? ?\C-h)))))
-
-;; Sous UNIX
-(if (not (equal system-type 'ms-dos))
-&nbsp;&nbsp;&nbsp;&nbsp;(progn
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if first-time
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(server-start))))
-
-;; Ajouter ici toute modification d'apparence des caract&egrave;res
-(add-hook 'term-setup-hook 'my-term-setup-hook)
-(defun my-term-setup-hook ()
- (if (eq window-system 'pc)
- (progn
-;; (set-face-background 'default "red")
- )))
-
-;; Restaurer le "bureau" - le faire le plus tard possible
-(if first-time
- (progn
- (desktop-load-default)
- (desktop-read)))
-
-;; Indique que le fichier a &eacute;t&eacute; lu au moins une fois
-(setq first-time nil)
-
-;; Plus besoin de d&eacute;boguer quoi que ce soit maintenant.
-(setq debug-on-error nil)
-
-;; C'est tout
-(message "OK, %s%s" (user-login-name) ".")
-</screen>
- </example>
- </sect2>
- <sect2>
- <title>Permettre &agrave; Emacs de comprendre de nouveaux
- langages</title>
- <para>Bon, tout cela est tr&egrave;s bien si vous ne voulez programmer
- qu'avec les langages d&eacute;j&agrave; introduits dans le fichier
- <filename>.emacs</filename> (C, C++, Perl, Lisp et Scheme), mais que se
- passe-t-il quand un nouveau langage appel&eacute;
- &ldquo;whizbang&rdquo; fait son apparition, avec plein de nouvelles
- fonctionnalit&eacute;s attrayantes?</para>
- <para>La premi&egrave;re chose &agrave; faire est de regarder si whizbang
- s'accompagne de fichiers de configuration d'Emacs pour ce langage.
- Ces fichiers ont g&eacute;n&eacute;ralement comme extension
- <filename>.el</filename>, raccourci pour &ldquo;Emacs Lisp&rdquo;.
- Par exemple, si whizbang est un logiciel port&eacute; pour FreeBSD,
- ces fichiers peuvent &ecirc;tre rep&eacute;r&eacute;s par:
-<screen>&prompt.user; <userinput>find /usr/ports/lang/whizbang -name "*.el" -print</userinput></screen>
- et il faut les installer en le copiant dans le r&eacute;pertoire du
- &ldquo;site Lisp&rdquo; d'Emacs. Sous FreeBSD 2.1.0-RELEASE, c'est le
- r&eacute;pertoire
- <filename>/usr/local/share/emacs/site-lisp</filename>.</para>
- <para>Ainsi par exemple, si la commande pr&eacute;c&eacute;dente nous
- donnait:
-<screen>/usr/ports/lang/whizbang/work/misc/whizbang.el</screen>
- nous le copierions alors comme suit:
-<screen>&prompt.user; <userinput>cp /usr/ports/lang/whizbang/work/misc/whizbang.el /usr/local/share/emacs/site-lisp</userinput></screen>
- </para>
- <para>D&eacute;cidons ensuite de l'extension que doivent avoir les
- fichiers source whizbang. Supposons, pour les besoins de l'exemple,
- qu'ils se terminent tous par <filename>.wiz</filename>. Il faut ajouter
- une entr&eacute;e &agrave; notre fichier <filename>.emacs</filename>,
- pour &ecirc;tre s&ucirc;r qu'Emacs puisse utiliser les informations du
- fichier <filename>whizbang.el</filename>.</para>
- <para>Recherchons l'entr&eacute;e <symbol>auto-mode-alist</symbol> dans
- <filename>.emacs</filename> et ajoutons une ligne pour whizbang, par
- exemple:
- <programlisting>
-<lineannotation>&hellip;</lineannotation>
-("\\.lsp$" . lisp-mode)
-("\\.wiz$" . whizbang-mode)
-("\\.scm$" . scheme-mode)
-<lineannotation>&hellip;</lineannotation>
- </programlisting>
- Cela signifie qu'Emacs passera automatiquement en
- <function>whizbang-mode</function> &agrave; l'&eacute;dition d'un
- fichier d'extension <filename>.wiz</filename>.</para>
- <para>Juste apr&egrave;s, il y a une entr&eacute;e
- <symbol>font-lock-auto-mode-list</symbol>. Ajoutez-y
- <function>whizbang-mode</function> comme ceci:
- <programlisting>
-;; Auto font-lock-mode
-(defvar font-lock-auto-mode-list
- (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'whizbang-mode 'lisp-mode 'perl-mode 'scheme-mode)
- "Listes des modes &agrave; d&eacute;marrer toujours en font-lock-mode")
- </programlisting>
- Ce qui signifie qu'Emacs activera toujours le
- <function>font-lock-mode</function> (i.e., la mise en valeur
- syntaxique) &agrave; l'&eacute;dition d'un fichier
- <filename>.wiz</filename>.</para>
- <para>Cela suffit. S'il y a autre chose que vous voulez automatiser
- &agrave; l'ouverture d'un fichier <filename>.wiz</filename>, vous
- pouvez ajouter un <function>whizbang-mode hook</function> (voyez mon
- <function>my-scheme-mode-hook</function> pour avoir un exemple simple
- qui ajoute un <function>auto-indent</function>&nbsp;-&nbsp;indentation
- automatique).</para>
- </sect2>
- </sect1>
- <sect1>
- <title>A lire pour aller plus loin</title>
- <itemizedlist>
- <listitem>
- <para>Brian Harvey et Matthew Wright <emphasis>Simply
- Scheme</emphasis> MIT 1994.<!-- <br> --> ISBN 0-262-08226-8</para>
- </listitem>
- <listitem>
- <para>Randall Schwartz <emphasis>Learning Perl</emphasis> O'Reilly
- 1993<!-- <br> --> ISBN 1-56592-042-2</para>
- </listitem>
- <listitem>
- <para>Patrick Henry Winston et Berthold Klaus Paul Horn
- <emphasis>Lisp (3rd Edition)</emphasis> Addison-Wesley
- 1989<!-- <br> --> ISBN 0-201-08319-1</para>
- </listitem>
- <listitem>
- <para>Brian W. Kernighan et Rob Pike <emphasis>The Unix Programming
- Environment</emphasis> Prentice-Hall 1984<!-- <br> --> ISBN
- 0-13-937681-X</para>
- </listitem>
- <listitem>
- <para>Brian W. Kernighan et Dennis M. Ritchie <emphasis>The C
- Programming Language (2nd Edition)</emphasis> Prentice-Hall
- 1988<!-- <br> --> ISBN 0-13-110362-8</para>
- </listitem>
- <listitem>
- <para>Bjarne Stroustrup <emphasis>The C++ Programming
- Language</emphasis> Addison-Wesley 1991<!-- <br> --> ISBN
- 0-201-53992-6</para>
- </listitem>
- <listitem>
- <para>W. Richard Stevens <emphasis>Advanced Programming in the Unix
- Environment</emphasis> Addison-Wesley 1992<!-- <br> --> ISBN
- 0-201-56317-7</para>
- </listitem>
- <listitem>
- <para>W. Richard Stevens <emphasis>Unix Network Programming</emphasis>
- Prentice-Hall 1990<!-- <br> --> ISBN 0-13-949876-1</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</article>
diff --git a/fr_FR.ISO8859-1/articles/zip-drive/Makefile b/fr_FR.ISO8859-1/articles/zip-drive/Makefile
deleted file mode 100644
index 8617ec14d0..0000000000
--- a/fr_FR.ISO8859-1/articles/zip-drive/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# $FreeBSD: doc/en_US.ISO_8859-1/articles/zip-drive/Makefile,v 1.1 2000/02/14 01:24:34 nik Exp $
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/articles/zip-drive/article.sgml b/fr_FR.ISO8859-1/articles/zip-drive/article.sgml
deleted file mode 100644
index 4bb9089721..0000000000
--- a/fr_FR.ISO8859-1/articles/zip-drive/article.sgml
+++ /dev/null
@@ -1,304 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Version française : Michel Boucey
- Original revision: n.nn
-
--->
-<!-- %man; -->
-
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
-<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
-<!ENTITY rel.current CDATA "3.2">
-
-
-]>
-
-<article lang="fr">
- <artheader>
- <title>Les lecteurs ZIP</title>
-
- <authorgroup>
- <author>
- <firstname>Jason</firstname>
- <surname>Bacon</surname>
-
- <affiliation>
- <address><email>acadix@execpc.com</email></address>
- </affiliation>
- </author>
- </authorgroup>
- <abstract>
- &abstract.license;
- &abstract.disclaimer;
- &trans.a.boucey;
- </abstract>
- </artheader>
-
- <sect1>
- <title>Les bases au sujet des lecteurs ZIP</title>
-
- <para>Les disques ZIP sont des disques magnétiques amovibles de grande
- capacité, accessibles en lecture et en écriture par les lecteurs ZIP de
- marque IOMEGA. Les disques ZIP sont similaires aux disquettes, en
- étant cependant bien plus rapides et en ayant une capacité bien
- supérieure. Alors qu'une disquette comporte typiquement 1.44 Mo,
- les disques ZIP sont disponibles en deux capacités, à savoir 100 Mo
- et 250 Mo. Les lecteurs ZIP ne doivent pas être confondus avec
- super-disquette, un lecteur de disquette de 120 Mo de capacité,
- qui accepte aussi les traditionnelles disquettes de 1.44 Mo de
- capacité.</para>
-
- <para>IOMEGA vends aussi un lecteur à la capacité et aux performances
- supérieurs appelé JAZZ. Les lecteurs JAZZ sont livrés en 1 Go et 2
- Go de capacité.</para>
-
- <para>Les lecteurs ZIP sont disponibles en unité interne ou externe,
- utilisant l'une des trois interfaces suivantes :</para>
-
- <orderedlist>
- <listitem>
- <para>L'interface SCSI (Small Computer Standard Interface) est
- l'interface la plus rapide, la plus sophistiquée, la plus extensible,
- et la plus chère. L'interface SCSI est utilisée sur tous types
- d'ordinateur, du PC à la station de travail RISC, jusqu'aux
- mini-ordinateurs, pour connecter tous types de périphériques
- tels que lecteurs de disque, lecteurs de bande, scanners, etc.
- Les lecteurs ZIP SCSI peuvent être internes ou externes, étant
- entendu que votre adaptateur SCSI possède un connecteur
- externe.</para>
-
- <note>
- <para>Si vous utilisez un matériel SCSI externe, il est important
- de ne jamais le connecter ni le déconnecter tout pendant
- que l'ordinateur est en fonctionnement. Faire ceci risque de
- causer des dommages aux systèmes de fichiers sur les disques
- en cours de connection.</para>
- </note>
-
- <para>Si vous souhaitez le maximum de performance et la plus grande
- facilité d'installation, l'interface SCSI est le meilleur choix. Cela
- demandera certainement l'adjonction d'un adaptateur SCSI, puisque la
- majorité des PC (exception faite des serveurs hautes performances)
- ne comportent pas d'origine de support SCSI. Chaque adaptateur peut
- prendre en charge 7 ou 15 périphériques SCSI, selon le modèle.</para>
-
- <para>Chaque périphérique SCSI a son propre contrôleur, et ces
- contrôleurs sont assez intelligents et bien standardisés (le
- second `S' de SCSI est l'abréviation de Standard), ce qui signifie
- , du point de vue du système d'exploitation, que tous les lecteurs de
- disques SCSI sont quasiment identiques, ceci vaut aussi pour les
- lecteurs de bandes, etc. Pour prendre en charge du matériel SCSI, le
- système d'exploitation n'a besoin que d'un pilote (driver) propre à
- l'adaptateur utilisé, et un pilote générique propre à chaque type de
- matériel, à savoir un pilote pour disque SCSI, un pilote pour lecteur
- de bande, et ainsi de suite. Il y a certains matériels SCSI qui
- peuvent être mieux utilisés grâce à des pilotes spécialisés (comme par
- exemple les lecteurs DAT), mais, généralement, ils fonctionnent bien
- avec le pilote générique. Il se peut alors que le pilote générique ne prenne pas
- en compte un certain nombre de caractèristiques spécifiques.</para>
-
- <para>Utiliser un lecteur ZIP SCSI consiste simplement à déterminer
- quel fichier matériel dans le répertoire <filename>/dev</filename>
- représente le lecteur ZIP. Pour ce faire, on peut observer les messages lors
- de l'amorçage de BSD (ou dans <filename>/var/log/messages</filename> après le
- démarrage), où vous verrez une ligne ressemblant fort à ceci:</para>
-
- <programlisting>da1: &lt;IOMEGA ZIP 100 D.13&gt; Removable Direct Access SCSI-2 Device</programlisting>
-
- <para>Cela signifie que le lecteur ZIP est représenté par le fichier
- <filename>/dev/da1</filename>.</para>
- </listitem>
-
- <listitem>
- <para>L'interface IDE (Integrated Drive Electronics) est une interface
- de lecteur de disque bon marché utilisée pour les ordinateurs de bureau.
- La plus grande partie des matériels IDE est strictement interne.</para>
-
- <para>Les performances des lecteurs ZIP IDE sont comparables à celles des
- lecteurs ZIP SCSI (l'interface IDE n'est pas aussi rapide que l'interface
- SCSI, mais les performances des lecteurs ZIP sont limitées essentiellement
- par leur mécanique, non pas à cause du bus SCSI).</para>
-
- <para>L'inconvénient de l'interface IDE sont les limites qu'elle impose.
- La plupart des adaptateurs IDE ne peuvent prendre en charge que deux
- périphériques, et ne sont en général pas conçues pour le long terme. Par
- exemple, l'interface originelle IDE ne prend pas en charge les disques durs
- comportant plus de 1024 cylindres, ce qui oblige de nombreuses personnes à
- mettre à jour prématurément leurs équipements. Si vous prévoyez d'étendre
- votre PC par l'adjonction d'un nouveau disque dur, d'un lecteur de bande,
- ou d'un scanner, vous pouvez investir dans un adaptateur SCSI et ZIP SCSI
- afin d'éviter des problèmes dans le futur.</para>
-
- <para>Les périphériques IDE sous FreeBSD sont préfixés par un <literal>w</literal>.
- Par exemple, un disque dur IDE peut être <filename>/dev/wd0</filename>,
- un lecteur de cdrom IDE (ATAPI) peut être <filename>/dev/wcd1</filename>,
- et ainsi de suite.</para>
- </listitem>
-
- <listitem>
- <para>L'interface port parallèle est populaire grâce aux périphériques externes
- portables tels que lecteurs ZIP externes, scanners, parce que potentiellement
- chaque ordinateur possède un port parallèle standard (habituellement utilisé
- pour les imprimantes). Ceci rend aisé pour tout un chacun le transfert de données
- entre ordinateurs par simple le transport de ces lecteurs ZIP.</para>
-
- <para>Les performances seront en général moindre qu'avec un lecteur ZIP ou IDE,
- du fait de la vitesse limitée du port parallèle. Cette vitesse varie
- considérablement d'un ordinateur à l'autre, et peut souvent être configurée
- à partir du système BIOS. Certaines machines demanderont une configuration du
- BIOS pour pouvoir faire fonctionner le port parallèle en mode bidirectionnel
- (Les ports parallèles ont seulement été conçus à l'origine pour fournir des
- données sortantes vers les imprimantes)</para>
- </listitem>
- </orderedlist>
- </sect1>
-
- <sect1>
- <title>ZIP parallèle : Le pilote <devicename>vpo</devicename></title>
-
- <para>Pour utiliser un lecteur ZIP port parallèle sous FreeBSD, le pilote
- <devicename>vpo</devicename> doit être configuré dans le noyau. Les lecteurs
- ZIP port parallèle ont aussi un contrôleur SCSI intégré. Le pilote vpo authorise
- le noyau FreeBSD à communiquer avec le contrôleur SCSI du lecteur ZIP au travers
- du port parallèle.</para>
-
- <para>Depuis que le pilote vpo ne fait plus parti du noyau en standard (au
- moins pour FreeBSD 3.2), vous avez à reconstruire le noyau afin de rendre
- accessible ce périphérique. La démarche de reconstruction d'un noyau est indiquée
- en détails dans une autre section. Les étapes suivantes indiquent brièvement
- la démarche à suivre afin de mettre en état de marche le pilote vpo:</para>
-
- <orderedlist>
- <listitem>
- <para>Lancer <command>/stand/sysinstall</command>, et installer les sources
- du noyau sur votre système.</para>
-
- <screen>&prompt.root; <userinput>cd /sys/i386/conf</userinput>
-&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen>
-
- <para>Editer <filename>MYKERNEL</filename>, changer la ligne
- <literal>ident</literal> en <literal>MYKERNEL</literal>, et décommenter
- la ligne décrivant le pilote vpo.</para>
-
- <para>Si vous possédez un second port parallèle, vous pourriez avoir besoin
- de copier la section dédiée à <literal>ppc0</literal> pour créer le
- périphérique <literal>ppc1</literal>. Le second port parallèle utilise
- généralement l'IRQ 5 et l'adresse 378. Seul l'IRQ est requise pour le
- fichier de configuration.</para>
-
- <para>Si votre disque dur est un SCSI, vous courez au devant d'un problème
- dans l'ordre de la détection des périphériques, qui entrainera le système
- à tenter d'utiliser le lecteur ZIP en tant que périphérique racine. Le démarrage
- échouera alors, à moins que vous ayez installé un système de fichiers racine
- sur le disque ZIP! Dans ce cas, vous aurez besoin de forcer le noyau à lier
- le disque SCSI racine à <filename>/dev/da0</filename>, à savoir le disque SCSI
- racine. Cela assignera alors le disque ZIP au prochain disque SCSI disponible,
- à savoir <literal>/dev/da1</literal>. Pour forcer votre disque dur SCSI en
- <literal>da0</literal>, changer la ligne
-
- <programlisting>device da0</programlisting>
-
- en
-
- <programlisting>disk da0 at scbus0 target 0 unit 0</programlisting></para>
-
- <para>Vous aurez probablement à changer la cible afin de la faire correspondre à
- l' ID SCSI de votre disque dur. vous devrez aussi forcer l'entrée scbus0 afin
- de l'ajuster à votre contrôleur. Par exemple, si vous avez un contrôleur 15xx
- de chez Adaptec, vous changerez
-
- <programlisting>controller scbus0</programlisting>
-
- en
-
- <programlisting>controller scbus0 at aha0</programlisting></para>
-
- <para>En dernier lieu, puisque vous étes en train d'éditer le fichier de
- configuration du noyau, profitez-en pour ôter tous les pilotes inutiles.
- Cela doit être fait avec de grandes précautions, et seulement si vous avez
- assez confiance en vous en ce qui concerne les modifications du noyau. Ôter
- les pilotes inutiles réduira la taille du noyau, laissant plus de mémoire disponible
- à vos applications. Afin de déterminer les pilotes qui ne sont pas nécessaires,
- allez à la fin du fichier <filename>/var/log/messages</filename>, et recherchez
- les lignes comportant "not found" (non trouvé). Commenter alors ces périphériques
- dans votre fichier de configuration (par un # en tête de ligne). Vous pouvez aussi
- changer d'autres options afin de réduire la taille et d'accroître la rapidité de
- votre noyau. Lisez la section concernant la reconstruction du noyau pour de
- plus amples informations.</para>
- </listitem>
-
- <listitem>
- <para>Il est maintenant temps de compiler le noyau:</para>
-
- <screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput>
-&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput>
-&prompt.root; <userinput>make clean depend && make all install</userinput></screen>
- </listitem>
- </orderedlist>
-
- <para>Après le reconstruction du noyau, vous devez redémarrer. Assurez-vous
- que le lecteur ZIP est connecté au port parallèle avant que le démarrage ne
- commence. Vous devriez voir apparaître le lecteur ZIP parmi les messages de
- démarrage en tant que périphérique vp0 ou vp1, selon le port parallèle auquel
- le lecteur est rattaché. Vous devez pouvoir voir aussi à quel fichier
- périphérique le lecteur ZIP a été associé. Ce sera <filename>/dev/da0</filename>
- si vous n'avez pas d'autre disque SCSI dans le système, ou <filename>/dev/da1</filename>
- si vous avez un disque dur SCSI à la racine de votre système.</para>
- </sect1>
-
- <sect1>
- <title>Monter les disques ZIP</title>
-
- <para>Pour accéder à un disque ZIP, vous avez simplement à le monter, comme
- n'importe quel autre périphérique. Le système de fichiers est représenté
- par la quatrième tranche sur le périphérique, que ce soit pour un disque ZIP
- en SCSI ou en parallèle, vous devriez faire:</para>
-
- <screen>&prompt.root; <userinput>mount_msdos /dev/da1s4 /mnt</userinput></screen>
-
- <para>Pour les lecteurs ZIP IDE:</para>
-
- <screen>&prompt.root; <userinput>mount_msdos /dev/wd1s4 /mnt</userinput></screen>
-
- <para>Cela facilitera aussi les choses de mettre à jour <filename>/etc/fstab</filename>
- afin de rendre le montage plus aisé. Ajoutez une ligne telle que la suivante, ajustée
- à votre système:
-
- <programlisting>/dev/da1s4 /zip msdos rw,noauto 0 0</programlisting>
-
- et créer le répertoire <filename>/zip</filename>.</para>
-
- <para>Vous pouvez alors monter simplement en tapant
-
- <screen>&prompt.root; <userinput>mount /zip</userinput></screen>
-
- et démonter en entrant
-
- <screen>&prompt.root; <userinput>umount /zip</userinput></screen></para>
-
- <para>Pour savoir plus sur le format de <filename>/etc/fstab</filename>,
- voir &man.fstab.5;.</para>
-
- <para>Vous pouvez aussi créer un système de fichiers FreeBSD sur un disque
- ZIP en utilisant &man.newfs.8;. Cependant, le disque ne sera utilisable
- que par un système FreeBSD, et peut-être par quelques clônes Unix
- reconnaissant le système de fichiers FreeBSD (mais certainement pas par
- DOS ou Windows).</para>
- </sect1>
-</article>
-
-
-
-
-
-
diff --git a/fr_FR.ISO8859-1/books/Makefile b/fr_FR.ISO8859-1/books/Makefile
deleted file mode 100644
index 5f83b5e103..0000000000
--- a/fr_FR.ISO8859-1/books/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD: doc/fr_FR.ISO_8859-1/books/Makefile,v 1.1 1999/11/10 21:28:31 nik Exp $
-# Original revision: 1.4
-#
-
-SUBDIR = faq
-SUBDIR+= handbook
-SUBDIR+= fdp-primer
-
-ROOT_SYMLINKS= faq handbook
-
-DOC_PREFIX?= ${.CURDIR}/../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/books/Makefile.inc b/fr_FR.ISO8859-1/books/Makefile.inc
deleted file mode 100644
index 3e2eea4dc7..0000000000
--- a/fr_FR.ISO8859-1/books/Makefile.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# $FreeBSD$
-# Original revision: 1.2
-#
-
-DESTDIR?= ${DOCDIR}/fr_FR.ISO_8859-1/books/${.CURDIR:T}
diff --git a/fr_FR.ISO8859-1/books/faq/Makefile b/fr_FR.ISO8859-1/books/faq/Makefile
deleted file mode 100644
index f8035e4ce4..0000000000
--- a/fr_FR.ISO8859-1/books/faq/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# Compilation de la FAQ FreeBSD
-#
-# $FreeBSD$
-# Original revision: 1.5
-#
-
-MAINTAINER=nik@FreeBSD.ORG
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-SRCS+= acknowledgments.sgml
-SRCS+= admin.sgml
-SRCS+= applications.sgml
-SRCS+= commercial.sgml
-SRCS+= hackers.sgml
-SRCS+= hardware.sgml
-SRCS+= includes.sgml
-SRCS+= install.sgml
-SRCS+= kernelconfig.sgml
-SRCS+= misc.sgml
-SRCS+= network.sgml
-SRCS+= preface.sgml
-SRCS+= serial.sgml
-SRCS+= troubleshoot.sgml
-SRCS+= x.sgml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/books/faq/acknowledgments.sgml b/fr_FR.ISO8859-1/books/faq/acknowledgments.sgml
deleted file mode 100644
index 12c721893e..0000000000
--- a/fr_FR.ISO8859-1/books/faq/acknowledgments.sgml
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.1
--->
-
-
-
- <chapter id="acknowledgments">
- <title> REMERCIEMENTS </title>
-<programlisting>
-
-
-
-</programlisting>
- <para><emphasis remap="tt">
- Si vous voyez un probl&egrave;me avec cette FAQ, ou que vous voulez rajouter
-une entr&eacute;e, mailez nous &agrave; &lt;FAQ@FreeBSD.ORG&gt;
-Nous appr&eacute;cions tout commentaire, et seul votre aide nous permettra
-d'am&eacute;liorer cette FAQ !</emphasis>
- </para>
- <programlisting>
-
- FreeBSD Core Team
-
-
-</programlisting>
-
- <!-- Faudrait trouver l'equivalent de descript/tag en docbook) -->
-<programlisting>
- Version originale
-
-</programlisting>
-<itemizedlist>
- <listitem>
- <para>Jordan Hubbard :
-Ocasionnellement des mises &agrave; jour et des corrections de la FAQ
- </para>
- </listitem>
-
- <listitem>
- <para>Doug White :
-Les services ci-dessus et plus qu'il n'en faut sur freebsd-questions
- </para></listitem>
-
- <listitem>
- <para>Joerg Wunsch :
-Les services ci-dessus et plus qu'il n'en faut sur Usenet
- </para></listitem>
-
- <listitem>
- <para>Garrett Wollman :
-R&eacute;seaux et format
- </para></listitem>
-
- <listitem>
- <para>Jim Lowe :
-Informations Multicast
- </para></listitem>
-
- <listitem>
- <para>Peter da Silva :
-Tapage de la FAQ FreeBSD.
- </para></listitem>
-
- <listitem>
- <para>The FreeBSD Team :
-Soumission d'information...
- </para></listitem>
-</itemizedlist>
-<programlisting>
-
- L'&eacute;quipe de traduction Francaise:
-</programlisting>
-<itemizedlist>
- <listitem><para><ulink url="mailto:renaudbreard@telegroupe.fr">Renaud BREARD </ulink></para></listitem>
- <listitem><para><ulink url="mailto:brive@mail.dotcom.fr">Robert Brive</ulink> </para></listitem>
- <listitem><para><ulink url="mailto:gioria@francenet.fr">S&eacute;bastien GIORIA</ulink> </para></listitem>
- <listitem><para><ulink url="mailto:fhaby@club-internet.fr">Fr&eacute;d&eacute;ric Haby</ulink></para></listitem>
- <listitem><para><ulink url="mailto:Stephane.Legrand@bigfoot.com">St&eacute;phane LEGRAND </ulink></para></listitem>
- <listitem><para><ulink url="mailto:nolin@mail.dotcom.fr">Philippe Nolin</ulink> </para></listitem>
- <listitem><para><ulink url="mailto:regnauld@deepo.prosa.dk">Philippe REGNAULD </ulink></para></listitem>
- <listitem><para><ulink url="mailto:ritsch_p@epita.fr">Pierre Yves RITSCHARD</ulink></para></listitem>
- <listitem><para><ulink url="mailto:dntt@prism.uvsq.fr">Tuy&ecirc;t Tr&acirc;m DANG NGOC</ulink> </para></listitem>
-
-</itemizedlist>
- <para>
-Et pour tous les autres que nous avons oubli&eacute;s, mille excuses, et merci de tout coeur !
- </para>
- </chapter>
diff --git a/fr_FR.ISO8859-1/books/faq/admin.sgml b/fr_FR.ISO8859-1/books/faq/admin.sgml
deleted file mode 100644
index 9aed48536b..0000000000
--- a/fr_FR.ISO8859-1/books/faq/admin.sgml
+++ /dev/null
@@ -1,893 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
- $FreeBSD$
- Original revision: 1.20
--->
-
-<chapter id="admin">
- <title>Administration syst&egrave;me</title>
-
- <sect1>
- <title>O&ugrave; sont les fichiers de d&eacute;marrage du syst&egrave;me&nbsp;?</title>
-
- <para>De la version 2.0.5R &agrave; la version 2.2.1R, le fichier de
-configuration principal &eacute;tait <filename> /etc/sysconfig </filename>.
-Toutes les options sont sp&eacute;cifi&eacute;es dans ce fichier et les autres
-fichiers comme <ulink url="http://www.freebsd.org/cgi/man.cgi?rc">
-/etc/rc </ulink> et <filename> /etc/netstart </filename> ne font
-que l'inclure.</para>
-
- <para>Regardez dans le fichier <filename> /etc/sysconfig
-</filename> et changez les valeurs n&eacute;cessaires pour configurer votre
-syst&egrave;me. Ce fichier inclut des commentaires indiquant les valeurs &agrave;
-mettre.</para>
-
- <para>Pour les versions 2.2.1 et suivantes, le fichier <filename>
-/etc/sysconfig </filename> a &eacute;t&eacute; renomm&eacute; en <ulink
-url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)"> <filename>
-rc.conf </filename> </ulink> et a &eacute;t&eacute; &eacute;pur&eacute; au passage. Le fichier
-<filename> /etc/netstart </filename> a aussi &eacute;t&eacute; renomm&eacute; en <filename>
-rc/network </filename> comme cela tous les fichiers peuvent &ecirc;tre
-copi&eacute;s gr&acirc;ce &agrave; une seule commande&nbsp;: <ulink
-url="http://www.freebsd.org/cgi/man.cgi?cp"> cp </ulink>
-<filename>/usr/src/etc/rc* /etc</filename>. </para>
-
- <para>Le fichier <filename>/etc/rc.local</filename> existe
-toujours et peut &ecirc;tre utilis&eacute; pour d&eacute;marrer des services additionnels
-comme <ulink
-url="http://www.freebsd.org/cgi/ports.cgi?^inn">INN</ulink> ou pour
-positionner certaines valeurs.</para>
-
- <para>Le fichier <filename>/etc/rc.serial </filename> permet
-d'initialiser les ports s&eacute;rie (par exemple mettre en place les
-caract&eacute;ristiques du port, etc..).</para>
-
- <para>Le fichier <filename>/etc/rc.i386 </filename> est
-sp&eacute;cifique aux param&egrave;tres des plateformes Intel, comme l'&eacute;mulation
-iBCS2 ou la configuration de la console syst&egrave;me d'un PC.</para>
-
- <para>Avec la version 2.1.0R, vous pouvez d&eacute;finir des fichiers de
-d&eacute;marrage "locaux" se trouvant dans un r&eacute;pertoire sp&eacute;cifi&eacute; dans le
-fichier <filename>/etc/sysconfig</filename> (ou le fichier <filename>
-/etc/rc.conf </filename>):
-<programlisting>
-# Emplacement des fichiers de d&eacute;marrage locaux
-local_startup=/usr/local/etc/rc.local.d
-</programlisting></para>
-
- <para>Chaque fichier se terminant par <filename> .sh </filename>
-sera &eacute;x&eacute;cut&eacute; dans l'ordre alphab&eacute;tique.</para>
-
- <para>Si vous voulez vous assurez d'un certain ordre de
-d&eacute;marrage sans changer le nom des fichiers, vous pouvez utiliser un
-sch&eacute;ma similaire &agrave; celui qui suit, en faisant pr&eacute;c&eacute;der chaque fichier
-de chiffres pour assurer l'ordre de d&eacute;marrage:
-<programlisting>
-10news.sh
-15httpd.sh
-20ssh.sh
- </programlisting></para>
-
- <para>Cela peut vous sembler un peu laid (ou SysV :-)) mais cela
-fournit une fa&ccedil;on simple pour les packages locaux ajout&eacute;s sans &ecirc;tre
-oblig&eacute; d'&eacute;diter <filename> /etc/rc.local </filename>. La plupart des
-ports ou des packages assument que le r&eacute;pertoire <filename>
-/usr/local/etc/rc.d </filename> permet le d&eacute;marrage des programmes
-locaux.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment ajouter simplement un utilisateur&nbsp;?</title>
- <para>Utilisez la commande <ulink
-url="http://www.freebsd.org/cgi/man.cgi?adduser"> adduser
-</ulink></para>
-
- <para>Il existe aussi un autre outil nomm&eacute;
-<filename>``new-account''</filename> &eacute;crit en Perl par <ulink
-url="mailto:roberto@FreeBSD.ORG">Ollivier Robert</ulink>. Demandez le
-lui. Cet outil est actuellement en cours de d&eacute;veloppements suppl&eacute;mentaires</para>
-
- <para>Pour retirer un utilisateur, utilisez la commande <ulink
-url="http://www.freebsd.org/cgi/man.cgi?rmuser">rmuser</ulink>.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment ajouter un nouveau disque dur &agrave; mon syst&egrave;me FreeBSD&nbsp;?</title>
-
- <para> Voyez le <ulink
-url="&url.tutorials;diskformat/index.html">tutoriel</ulink> sur le formatage des
-disques dur.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment utiliser mon nouveau disque amovible&nbsp;? </title>
-
- <para>Que ce soit un disque amovible de type ZIP ou EZ (ou
-m&ecirc;me une disquette), ou un disque dur, une fois install&eacute; et
-reconnu par le syst&egrave;me et que vous avez ins&eacute;r&eacute; une cartouche/disquette, la
-manipulation est la m&ecirc;me pour tous les p&eacute;riph&eacute;riques.</para>
-
- <para><anchor id="disklabel">(Cette section est bas&eacute;e sur <ulink url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">la FAQ </ulink> des lecteurs ZIP de Mark Mayo)</para>
-
- <para>Si c'est un disque ZIP ou une disquette DOS, il y a d&eacute;j&agrave; un syst&egrave;me de fichier DOS install&eacute;, vous pouvez utilisez les commandes suivantes:
-<programlisting>
-mount -t msdos /dev/fd0c /floppy
-</programlisting>s'il s'agit d'une disquette; ou:
-<programlisting>
-mount -r msdos /dev/sd2s4 /zip
-</programlisting>s'il s'agit d'un lecteur ZIP dans sa configuration d'origine.
-</para>
-
- <para>Pour les autres types de disques, voyez leur partitionnement en utilisant <filename> fdisk </filename> ou <filename> /stand/sysinstall </filename>.</para>
-
- <para>Les exemples qui suivent supposent que vous disposez d'un disque ZIP sur sd2, le troisi&egrave;me disque SCSI.</para>
-
- <para>Si votre disque amovible n'est pas une disquette, ou tout autre disque amovible que vous ne d&eacute;sirez par partager avec d'autres personnes, il vaut mieux mettre un syst&egrave;me de fichiers BSD dessus. Vous pourrez avoir des noms longs, une am&eacute;lioration de performances et une meilleur stabilit&eacute;. Pour commencer, vous devez effacer la partition ou le syst&egrave;me de fichiers DOS. Vous pouvez utiliser l'utilitaire <ulink url="http://www.freebsd.org/cgi/man.cgi?fdisk"> fdisk </ulink> ou <filename> /stand/sysinstall </filename>, ou pour un disque d'une petite capacit&eacute;, d&eacute;truire la table des partitions FAT et utiliser le partitionnement BSD standard&nbsp;:
-<programlisting>
-dd if=/dev/zero of=/dev/rsd2 count=2
-disklabel -Brw sd2 auto
-</programlisting></para>
-
- <para>Vous pouvez utiliser disklabel ou <filename> /stand/sysinstall </filename> pour cr&eacute;er plusieurs partitions BSD. Vous effectuerez probablement ces op&eacute;rations si vous ajoutez de l'espace de "swap" sur un disque fixe, mais il est inconcevable de le faire sur un disque amovible ZIP.</para>
-
- <para>Pour finir construisez un nouveau syst&egrave;me de fichier, utilisant tout l'espace disponible sur votre lecteur ZIP&nbsp;:
-<programlisting>
-newfs /dev/rsd2c
-</programlisting> et montez le&nbsp;:
-<programlisting>
-mount /dev/sd2c /zip
-</programlisting></para>
-
- <para>C'est surement une bonne id&eacute;e d'ajouter la ligne suivante au fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?fstab"> /etc/fstab </ulink>, cela vous permettra de ne taper que "mount /zip" par la suite&nbsp;:
-<programlisting>
-/dev/sd2c /zip ffs rw,noauto 0 0
-</programlisting></para>
-
- </sect1>
- <sect1>
- <title>Comment monter une partition DOS &eacute;tendue&nbsp;?</title>
- <para>Les partitions DOS &eacute;tendues se trouvent apr&egrave;s la fin de toutes les partitions primaires. Par exemple, si vous avez une partition "E" en tant que partition DOS &eacute;tendue sur le deuxi&egrave;me disque SCSI, vous devez cr&eacute;er le fichier sp&eacute;cial pour la partition 5 dans /dev et monter /dev/sd1s5&nbsp;:
-<programlisting>
-# cd /dev
-# ./MAKEDEV sd1s5
-# mount -t msdos /dev/sd1s5 /dos/e
-</programlisting></para>
- </sect1>
-
- <sect1>
- <title>Puis-je monter d'autres syst&egrave;mes de fichiers sous FreeBSD&nbsp;?</title>
-
- <para>Les CDROM <emphasis remap="bf"> Digital UNIX </emphasis>
-au format UFS peuvent &ecirc;tre mont&eacute;s directements sous FreeBSD. Il peut
-&ecirc;tre tr&egrave;s difficile, par contre, de monter des partitions disques de
-Digital UNIX, ou d'autres syst&egrave;mes supportant l'UFS. Cela d&eacute;pend des
-partitionnements effectu&eacute;s sur le syst&egrave;me en question.</para>
-
- <para><emphasis remap="bf">Linux:</emphasis> Les version 2.2 et
-sup&eacute;rieures incluent le support des partitions <emphasis remap="bf">
-ext2fs </emphasis>. Pour plus d'informations voyez la page de manuel
-de <ulink url="http://www.freebsd.org/cgi/man.cgi?mount_ext2fs">
-mount_ext2fs </ulink>.</para>
-
- <para>Toute autre information sur le sujet est appr&eacute;ci&eacute;e.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment utiliser le programme de d&eacute;marrage de NT pour d&eacute;marrer FreeBSD&nbsp;?</title>
- <para>Il faut pour cela copier le premier secteur de votre
-partition FreeBSD dans un fichier sur une partition DOS/NT. Nous
-supposerons qu'il s'appelle <filename> c:&bsol;bootsect.bsd
-</filename> (&eacute;quivalent de <filename> c:&bsol;bootsect.dos
-</filename>). Il suffit d'&eacute;diter le fichier <filename>
-c:&bsol;boot.ini </filename> pour qu'il ressemble &agrave; ceci:</para>
-
- <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> Cette
-proc&eacute;dure implique que DOS, NT ou FreeBSD soient install&eacute;s sur le
-m&ecirc;me disque. Dans mon cas DOS et NT sont install&eacute;s
-respectivement sur la premi&egrave;re partition du disque et FreeBSD sur la
-seconde. FreeBSD est aussi configur&eacute; pour d&eacute;marrer depuis sa partition
-et <emphasis remap="bf"> non </emphasis> depuis le MBR du
-disque.</para>
-
- <para>Monter une disquette pr&eacute;format&eacute;e DOS (si vous cette
-partition n'est pas en FAT, mais en NTFS) sous <filename> /mnt
-</filename>.</para>
-
- <para><programlisting>
-dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1
-
-</programlisting> Red&eacute;marrez en mode DOS ou NT. Si vous
-avez une partition NTFS copiez le fichier <filename> bootsect.bsd
-</filename> de la disquette dans le r&eacute;pertoire C:&bsol;. Modifiez les
-attributs (permissions) du fichier boot.ini.</para>
-
- <para><programlisting>
-attrib -s -r c:\boot.ini
-</programlisting>Ajoutez la ligne correcte au fichier boot.ini et
-restaurez les anciens attributs.</para>
-
- <para><programlisting>
-attrib -s -r c:\boot.ini
-</programlisting>Si FreeBSD d&eacute;marre depuis le MBR, restaurez-le avec
-la commande DOS <filename> fdisk /MBR </filename> apr&egrave;s avoir
-reconfigur&eacute; FreeBSD pour d&eacute;marrer depuis sa partition native.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment d&eacute;marrer FreeBSD et Linux grace &agrave; LILO&nbsp;?</title>
- <para>Si vous avez install&eacute; FreeBSD et Linux sur le m&egrave;me disque,
-suivez les instructions du manuel de LILO pour d&eacute;marrer sur d'autres
-syst&egrave;mes que Linux. En r&eacute;sum&eacute; il faut&nbsp;:</para>
-
- <para>D&eacute;marrer sous Linux et ajouter les lignes suivantes au
-fichier <filename> /etc/lilo.conf </filename>:
-<programlisting>
-other=/dev/hda2
-table=/deb/hda
-label=FreeBSD
-</programlisting>(l'exemple pr&eacute;c&eacute;dant suppose que la partition FreeBSD
-est connue par linux sous le nom <filename> /dev/hda2 </filename>.
-Ensuite lancez <filename> lilo </filename> sous root, et c'est
-fini.</para>
-
- <para>Si FreeBSD se trouve sur un autre disque vous devez
-ajouter <filename> loader=/boot/chain.b </filename> au fichier de
-configuration de lilo&nbsp;:
-<programlisting>
-other=/dev/sdb4
-table=/dev/sdb
-loader=/boot/chain.b
-label=FreeBSD </programlisting>
-Dans certains cas, vous devez sp&eacute;cifier le num&eacute;ro du disque connu par
-le BIOS au programme de d&eacute;marrage de FreeBSD pour d&eacute;marrer sur le
-deuxi&egrave;me disque. Par exemple, si votre disque SCSI contenant FreeBSD
-est trouv&eacute; par le BIOS comme disque num&eacute;ro 1, vous devez taper la ligne
-suivante au prompt du programme de d&eacute;marrage:
-<programlisting>
-Boot: 1:sd(0,a)/kernel
-</programlisting> Vous pouvez configurer le <ulink
-url="http://www.freebsd.org/cgi/man.cgi?boot(8)"> programme de
-d&eacute;marrage </ulink> de FreeBSD version 2.2.5 ou sup&eacute;rieure pour prendre
-cette chaine par d&eacute;faut.</para>
-
- <para>Le document <ulink
-url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD
-mini-HOWTO</ulink> est une tr&egrave;s bonne r&eacute;f&eacute;rence sur
-l'interop&eacute;rabilit&eacute; entre FreeBSD et Linux.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment d&eacute;marrer FreeBSD et Linux depuis BootEasy&nbsp;?</title>
-
- <para>Il faut installer LILO au d&eacute;but de votre partition de
-d&eacute;marrage de Linux au lieu du MBR. Vous pouvez alors d&eacute;marrer LILO
-depuis BootEasy.</para>
-
- <para>Si vous utilisez Linux et Windows-95, c'est la meilleur
-fa&ccedil;on d'installer LILO si vous voulez continuer &agrave; d&eacute;marrer Linux apr&egrave;s
-avoir r&eacute;install&eacute; Windows-95 (qui lui ne tient pas contre des autres
-syst&egrave;mes et se croit seul sur le MBR).</para>
-
- </sect1>
- <sect1>
- <title>Est-ce dangereux d'utiliser un disque d&eacute;di&eacute;&nbsp;?</title>
-
- <para>La proc&eacute;dure d'installation vous permet de choisir deux
-fa&ccedil;ons diff&eacute;rentes pour partitionner vos disques. Par d&eacute;faut, elle
-permet de les rendre compatibles avec d'autres syst&egrave;mes d'exploitation
-se trouvant sur votre ordinateur en utilisant les entr&eacute;es des tables
-de fdisk (appel&eacute;s "slices" sous FreeBSD), en faisant en sorte qu'une
-"slice" FreeBSD corresponde &agrave; une partition. Vous pouvez aussi
-installer un selecteur de d&eacute;marrage pour choisir de d&eacute;marrer sous un
-autre syst&egrave;me d'exploitation.</para>
-
- <para>Comme ceci correspond &agrave; la plupart des cas de personnes
-venant des PC, les personnes venant d'Unix et qui d&eacute;sirent mettre en
-place une machine pour y faire tourner FreeBSD et juste FreeBSD,
-utilisent la proc&eacute;dure classique d'installation d'Unix, ou Unix
-utilise le disque au complet, du premier secteur au dernier. Une
-v&eacute;ritable table pour fdisk n'est d'aucune utilit&eacute; dans le vas d'une
-machine utilisant FreeBSD 24h/24, 7jours sur 7, car aucun autre
-syst&egrave;me d'exploitation ne sera d&eacute;marr&eacute;. Donc si vous s&eacute;lectionnez
-``A)ll FreeBSD '' dans l'&eacute;diteur de partition du programme
-d'installation et r&eacute;pondez ``No'' &agrave; la question qui suit, vous serez
-dans ce cas. Notez que cela implique que le programme de
-d&eacute;marrage BSD correspond au MBR de ce disque. N'essayez pas d'en
-r&eacute;installer un sous peine de d&eacute;truire le pr&eacute;c&eacute;dent.</para>
-
- <para>Donc pourquoi est-ce donc ``dangereux''&nbsp;? Un disque
-configur&eacute; de la sorte ne contient pas de table fdisk valides, pour la
-plupart des utilitaires PC. Suivant la fa&ccedil;on dont ils ont &eacute;t&eacute; con&ccedil;us,
-ils vous avertissent ou tout simplement ne disent rien et d&eacute;truisent
-le programme de d&eacute;marrage BSD sans avertissement. Certains syst&egrave;mes
-d'exploitation tr&egrave;s utilis&eacute;s sur PC, sont connus pour agir de la
-sorte (bien s&ucirc;r, ils agissent de la sorte sous le couvert de syst&egrave;me
-"orient&eacute;-utilisateur"). Au moins un BIOS de chez Award, qui est par
-exemple utilis&eacute; sur les HP Netserver (mais sur d'autre syst&egrave;mes
-aussi), est connu pour ignorer tout disque dur n'ayant pas de table
-fdisk valide. Lorsque votre machine d&eacute;marre il ignore tout simplement
-de tels disques, tente de d&eacute;marrer sur une disquette, et vous affiche
-un ``Read error''. Tr&egrave;s impressionnant, non&nbsp;?. C'est ce que certains
-appellent un syst&egrave;me "orient&eacute;-utilisateur".</para>
-
- <para>Les avantages de ce partitionnement sont&nbsp;: FreeBSD utilise
-le disque au complet, il n'y a donc pas de besoin de garder quelques
-'pistes' au d&eacute;but du disque qui ne servaient &agrave; rien sauf pour un
-mod&egrave;le de partitionnement vieux et simpliste qui n'a maintenant plus
-aucun sens. Ces contraintes &eacute;tant ce que l'on peut appeler la plus
-grosse prise de t&ecirc;te lors de l'installation des syst&egrave;mes
-d'exploitations sur PS, et qui menaient le plus souvent &agrave; deux fa&ccedil;on
-compl&egrave;tement redondantes de stockage des informations dans les tables
-fdisk. Voyez le chapitre sur <ulink url="missingos"> ``Missing
-Operating System''</ulink>. Dans le cas d'un disque ``dangereusement d&eacute;di&eacute;'',
-le programme de d&eacute;marrage BSD commence au secteur 0, qui est le seul
-secteur ne changeant de valeur C/H/S, pour les valeurs du disque du
-BIOS. Vous pouvez donc, dans ce cas, interchanger des disques entre
-plusieurs controleurs ou syst&egrave;mes utilisant des sch&eacute;mas de translation
-diff&eacute;rents sans vous poser de questions.</para>
-
- <para>Pour passer d'un disque ``dangereusement d&eacute;di&eacute;'' &agrave; un
-disque normal de PC, il y a deux solutions simples. La premi&egrave;re est de
-recouvrir le MBR d'octets vides, pour permettre de faire croire que le
-disque est vierge. Pour pouvez le faire de la fa&ccedil;on suivante:
-<programlisting>dd if=/dev/zero of=/dev/rds0 count=15</programlisting>
-Ou en utilisant une fonctionnnalit&eacute; non-document&eacute;e de DOS&nbsp;:
-<programlisting> fdisk /mbr </programlisting> qui installe aussi un
-nouveau MBR, en recouvrant le programme de d&eacute;marrage BSD.</para>
-
- </sect1>
-
- <sect1>
- <title>Comme faire pour ajouter plus de "swap"&nbsp;?</title>
-
- <para>La meilleur fa&ccedil;on de faire, est d'augmenter la taille de
-votre partition de swap, ou de prendre cette excuse pour ajouter un
-autre disque.</para>
-
- <para>Ajouter du "swap" sur un autre disque permet plus d'augmenter
-la rapidit&eacute; que d'en ajouter sur le m&ecirc;me disque. Par exemple, si
-vous compilez des fichiers qui se trouvent sur un disque et que le "swap"
-se trouve sur un autre disque, cela va beaucoup plus vite d'avoir
-le "swap" et les sources sur le m&ecirc;me disque. Ceci est
-sp&eacute;cialement vrai pour les disques SCSI.</para>
-
- <para>Les disques IDE ne permettent pas l'acc&egrave;s &agrave; deux disques
-sur le m&ecirc;me canal au m&ecirc;me moment (FreeBSD ne supporte pas
-le mode 4, donc toutes les entr&eacute;es/sorties disques sont
-``programm&eacute;es''). Je vous sugg&egrave;re de mettre le "swap" sur un autre
-disque aussi. Les disques durs sont si peu couteux, que cela ne vaut
-pas le coup de tout mettre sur un.</para>
-
- <para>C'est une tr&egrave;s mauvaise id&eacute;e de mettre le fichier de
-"swap" sur une partition NFS, sauf si vous disposez d'un environnement
-r&eacute;seau extr&egrave;mement rapide, et d'un tr&egrave;s bon serveur NFS.</para>
-
- <para>Voici un exemple pour ajouter 64Mo de swap en utilisant un
-fichier se nommant <filename> /usr/swap0 </filename>.</para>
- <para>Assurez vous que votre noyau est compil&eacute; avec la ligne
-<programlisting>
-pseudo-device vn 1 # #Vnode driver (turns a file into a device)
- </programlisting>Le noyau GENERIC la contient par
-d&eacute;faut.
-
-<itemizedlist>
- <listitem>
- <para>Cr&eacute;ez un vn-device :
-<programlisting>
-cd /dev
-sh./MAKEDEV vn0
- </programlisting></para>
- </listitem>
- <listitem>
- <para>Cr&eacute;ez le fichier de "swap" (<filename>/usr/swap0</filename>).
-<programlisting> dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 </programlisting></para>
- </listitem>
- <listitem>
- <para>Activez le fichier de "swap" dans le fichier
-<filename> /etc/rc.conf </filename> <programlisting>
-swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
-</programlisting></para>
- </listitem>
- <listitem> <para>Rebootez la machine</para> </listitem>
- </itemizedlist></para>
-
- <para>Pour activer le fichier de "swap" imm&eacute;diatement, tapez
-<programlisting>
-vnconfig -ce /dev/vn0c /usr/swap0 swap
-</programlisting></para>
- </sect1>
-
- <sect1>
- <title>J'ai des probl&egrave;mes pour installer mon imprimante.</title>
- <para>R&eacute;f&eacute;rez-vous &agrave; la section sur les <ulink
-url="../handbook/printing.html">imprimantes du Handbook</ulink>. Elle
-couvre l'essentiel des probl&egrave;mes que l'on peut rencontrer.</para>
-
- </sect1>
-
- <sect1>
- <title>Le clavier est mal configur&eacute; sur mon ordinateur.</title>
- <para>Le programme <filename>kbdcontrol</filename> comporte une
-option permettant de charger une configuration clavier diff&eacute;rente.
-Vous trouverez dans <filename>/usr/share/syscons/keymaps</filename>
-diff&eacute;rents fichiers de configuration. Choisissez celle voulue et
-chargez la&nbsp;: <programlisting> kbdcontrol -l fr.iso
-</programlisting></para>
-
- <para>Dans tous les cas le programme <ulink
-url="http://www.freebsd.org/cgi/man.cgi?kbdcontrol">kbdcontrol</ulink>
-recherche dans <filename>/usr/share/syscons/keymaps</filename> un
-fichier se terminant par <filename>.kbd</filename>.</para>
-
- <para>Vous pouvez le configurer dans le fichier
-<filename>/etc/sysconfig</filename> (ou <ulink
-url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>).
-Regardez les commentaires apropri&eacute;s dans ce fichier.</para>
-
- <para>Pour les versions 2.0.5 et suivantes, tout ce qui est
-relatif aux fontes du texte, &agrave; la configuration du clavier se trouve dans
-<filename>/usr/share/syscons</filename>.</para>
-
- <para>Actuellement les configurations de claviers suivantes sont support&eacute;es&nbsp;:
-<itemizedlist>
- <listitem><para>Belgian ISO-8859-1 </para></listitem>
- <listitem><para>Brazilian 275 keyboard Codepage 850 </para></listitem>
- <listitem><para>Brazilian 275 keyboard ISO-8859-1 </para></listitem>
- <listitem><para>Danish Codepage 865 </para></listitem>
- <listitem><para>Danish ISO-8859-1 </para></listitem>
- <listitem><para>French ISO-8859-1 </para></listitem>
- <listitem><para>German Codepage 850 </para></listitem>
- <listitem><para>German ISO-8859-1 </para></listitem>
- <listitem><para>Italian ISO-8859-1 </para></listitem>
- <listitem><para>Japanese 106 </para></listitem>
- <listitem><para>Japanese 106x </para></listitem>
- <listitem><para>Latin American </para></listitem>
- <listitem><para>Norwegian ISO-8859-1 </para></listitem>
- <listitem><para>Polish ISO-8859-2 (programmer's) </para></listitem>
- <listitem><para>Russian Codepage 866 (alternative) </para></listitem>
- <listitem><para>Russian koi8-r (shift) </para></listitem>
- <listitem><para>Russian koi8-r </para></listitem>
- <listitem><para>Spanish ISO-8859-1 </para></listitem>
- <listitem><para>Swedish Codepage 850 </para></listitem>
- <listitem><para>Swedish ISO-8859-1 </para></listitem>
- <listitem><para>Swiss-German ISO-8859-1 </para></listitem>
- <listitem><para>United Kingdom Codepage 850 </para></listitem>
- <listitem><para>United Kingdom ISO-8859-1 </para></listitem>
- <listitem><para>United States of America ISO-8859-1 </para></listitem>
- <listitem><para>United States of America dvorak </para></listitem>
- <listitem><para>United States of America dvorakx </para></listitem>
- </itemizedlist>
-</para>
- </sect1>
-
- <sect1>
- <title>Comment faire en sorte que les quotas utilisateurs fonctionnent correctement&nbsp;?</title>
- <para>
-<itemizedlist>
- <listitem><para>Ne mettez pas de quotas sur '/',</para></listitem>
- <listitem><para>Mettez le fichier des quotas sur le syst&egrave;me de fichiers
-qui en dispose, par ex&nbsp;:
-<programlisting>
-Syst&egrave;me de fichier Emplacement du fichier des quotas
-/usr /usr/admin/quotas
-/home /home/admin/quotas
-...
-</programlisting></para></listitem></itemizedlist></para>
-
- </sect1>
-
- <sect1>
- <title>Qu'est-ce qui ne va pas avec ma configuration de ccd&nbsp;?</title>
-
- <para>Le symptome est le suivant :
-<programlisting>
-# ccdconfig -C
-ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
-#
-</programlisting></para>
- <para>Ceci apparait la plupart du temps lorsque vous essayez de
-concat&eacute;ner les partitions ``c'', qui par d&eacute;faut ont comme type
-``unused''. Le gestionnaire de disque ccd n&eacute;cessite que le type de la
-partition soit de type FS_BSDFFS. Dans ce cas, &eacute;ditez le label des
-disques &agrave; concat&eacute;ner et changez le type des partitions en type
-``4.2BSD''.</para>
-
- </sect1>
-
- <sect1>
- <title>Pourquoi je ne peux pas &eacute;diter le label de mes disques concat&eacute;n&eacute;s&nbsp;? </title>
-
- <para>Le symptome est le suivant&nbsp;:
-<programlisting>
-# disklabel ccd0
-(&ccedil;a affiche quelque chose de particulier ici, donc essayons de l'&eacute;diter)
-# disklabel -e ccd0
-(&eacute;dition, sauvegarde, sortie)
-disklabel: ioctl DIOCWDINFO: No disk label on disk;
-use "disklabel -r" to install initial label
-#
-</programlisting></para>
-
- <para>Cela apparait souvent lorsque le label retourn&eacute; par le
-gestionnaire de disques concat&eacute;n&eacute; est un faux, un qui n'est pas
-v&eacute;ritablement sur le disque. Pour r&eacute;soudre ce probl&egrave;me il faut &eacute;crire
-explicitement sur le disque, comme ceci&nbsp;:
-<programlisting>
-# disklabel ccd0 > /tmp/disklabel.tmp
-# disklabel -Rr ccd0 /tmp/disklabel.tmp
-# disklabel -e ccd0
-(maintenant cela doit fonctionner correctement)
-</programlisting></para>
-
- </sect1>
-
- <sect1>
- <title>Est-ce que FreeBSD supporte les communications inter-processus de type Syst&egrave;me V (IPC)&nbsp;?</title>
- <para>Oui, FreeBSD supporte les communications inter-processus
-de type Syst&egrave;me V, IPC. Cela inclue la m&eacute;moire partag&eacute;e, les files de
-messages et les s&eacute;maphores. Vous devez ajouter les lignes suivantes &agrave;
-votre fichier de configuration du noyau pour les activer&nbsp;:</para>
-<para><programlisting>
-options SYSVSHM
-options "SHMMAXPGS=64" # 256Ko de m&eacute;moire partag&eacute;e
-options SYSVSEM # activation des s&eacute;maphores
-options SYSVMSG # activation des files de messages
-</programlisting>Recompilez le noyau et installez le.</para>
-
- <para><emphasis remap="bf">Note&nbsp;:</emphasis> Vous aurez s&ucirc;rement
-besoin d'augmenter SHMMAXPGS &agrave; un nombre plus &eacute;lev&eacute;, comme 4096 (16M!)
-si vous avez besoin d'utiliser GIMP. 256Ko est largement suffisant
-pour la m&eacute;moire partag&eacute;e dont &agrave; besoin X11R6.</para>
- </sect1>
-
- <sect1>
- <title>Comment configurer sendmail pour fonctionner avec UUCP&nbsp;?</title>
-
- <para>La configuration de sendmail fournie avec FreeBSD,
-correspond &agrave; un site directement connect&eacute; &agrave; l'Internet. Les sites qui
-utilisent UUCP pour &eacute;changer du courrier &eacute;lectronique doivent
-installer un autre fichier de configuration pour sendmail. </para>
-
- <para>Modifier directement le fichier <filename>
-/etc/sendmail.cf </filename> est r&eacute;serv&eacute; la plupart du temps aux
-gourous. La version 8 de sendmail dispose d'une interface <ulink
-url="http://www.freebsd.org/cgi/man.cgi?m4">m4</ulink> de g&eacute;n&eacute;ration
-du fichier de configuration, qui encapsule le fichier de configuration
-dans un format abstrait de haut niveau. Vous devez trouvez les
-diff&eacute;rents fichiers de configuration dans le r&eacute;pertoire <filename>
-/usr/src/usr.sbin/sendmail/cf </filename>.</para>
-
- <para>Si vous n'avez pas install&eacute; tous les sources du syst&egrave;me,
-vous pouvez trouver les diff&eacute;rents fichiers de configuration de
-sendmail dans un fichier s&eacute;par&eacute; des autres sources sur le CD-ROM. Si
-vous avez mont&eacute; le CD-ROM ex&eacute;cutez les commandes suivantes&nbsp;:</para>
-<para><programlisting>
-cd /usr/src
-tar -xvzf /cdrom/dists/src/ssmailcf.aa
-</programlisting></para>
-
- <para>Cela correspond juste &agrave; une centaine de kilo-octets. Le
-fichier <filename>README</filename> dans le r&eacute;pertoire
-<filename>cf</filename> vous explique rapidement comment fonctionnne
-m4.</para>
-
- <para>Pour utiliser UUCP, vous devez utiliser la fonctionnnalit&eacute;
-<emphasis>mailertable</emphasis>. Elle permet &agrave; sendmail de constituer
-une base de donn&eacute;es pour lui permettre de router le courrier
-correctement.</para>
-
- <para>Pour commencer, vous devez cr&eacute;er une fichier de
-configuration <filename>.mc</filename>. Tous ces types de fichiers se
-trouvent dans le r&eacute;pertoire
-<filename>/usr/src/usr.sbin/sendmail/cf/cf</filename>. Il y a quelques
-fichiers d'exemples dans ce r&eacute;pertoire pouvant vous aider. En
-supposant que vous avez appel&eacute; ce fichier <filename>foo.mc</filename>,
-tout ce que vous devez faire pour le convertir en un
-fichier valide de configuration de sendmail,
-<filename>sendmail.cf</filename> est&nbsp;:</para>
-
-<para><programlisting>
-cd /usr/src/usr.sbin/sendmail/cf/cf
-make foo.cf
-cp foo.cf /etc/sendmail.cf
-</programlisting></para>
-
- <para>Un fichier classique ressemble &agrave; ceci:</para>
-<para><programlisting>
-include(`../m4/cf.m4')
-VERSIONID(`Votre num&eacute;ro de version)
-OSTYPE(bsd4.4)
-FEATURE(nodns)
-FEATURE(nocanonify)
-FEATURE(mailertable)
-
-define(`UUCP_RELAY', nom.du.relai.uucp)
-define(`UUCP_MAX_SIZE', 200000)
-
-MAILER(local)
-MAILER(smtp)
-MAILER(uucp)
-
-Cw alias.de.votre.nom.de.machine
-Cw votrenomdenoeuduucp.UUCP
-</programlisting></para>
-
- <para>Les directives <emphasis>nodns</emphasis>et
-<emphasis>nocanonify</emphasis> forcent sendmail &agrave; ne pas utiliser le
-DNS lors de l'envoi du courrier. La directive
-<emphasis>UUCP_RELAY</emphasis> est utilis&eacute;e pour des raisons assez
-bizarres; ne posez pas de questions et utilisez-la. Mettez juste un nom
-de machine capable de recevoir du courrier en UUCP. La plupart du
-temps il faut mettre le nom du serveur de messagerie de votre
-fournisseur d'acc&egrave;s.</para>
-
- <para>Apr&egrave;s avoir d&eacute;fini tout ceci, vous avez besoin d'un
-fichier <filename>/etc/mailertable</filename>. Voici un exemple de ce
-type de fichier&nbsp;:</para>
-<para><programlisting>
-#
-# makemap hash /etc/mailertable.db < /etc/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:sax
-</programlisting></para>
-
-<para>Les trois premi&egrave;res lignes font en sorte d'envoyer
-le courrier &agrave; des serveurs UUCP ``voisins'' et non pas au serveur par
-d&eacute;faut, pour permettre de racourcir le temps d'envoi des messages. La
-ligne suivante permet d'envoyer le courrier sur le domaine local en
-protocole SMTP. Et pour finir, les ``voisins'' UUCP sont mentionner
-dans la la notation de domaine .UUCP, permettant au format de mail
-``voisin-uucp!destinataire'' d'&eacute;craser les r&egrave;gles par d&eacute;faut. La
-derni&egrave;re ligne doit toujours &ecirc;tre un ``.'', qui repr&eacute;sente toutes les
-destinations, qui doit correspondre &agrave; un serveur de messagerie UUCP
-voisin, et qui sert de passerelle de courrier &eacute;l&eacute;ctronique vers le
-reste du monde. Tous les noms de noeuds se trouvant apr&egrave;s le mot cl&eacute;
-<filename>uucp-dom:</filename>doivent &ecirc;tre des noms valides de voisins
-UUCP, que vous pouvez v&eacute;rifier en utilisant la commande
-<filename>uuname</filename></para>
-
-<para>Pour vous rappeler que ce fichier doit &ecirc;tre converti en
-fichier DBM pour pouvoir &ecirc;tre utilis&eacute;, la ligne de commande
-n&eacute;cessaire &agrave; sa cr&eacute;ation est rappel&eacute;e dans les commentaires du fichier
-mailertable. Vous devez lancer cette commande &agrave; chaque fois que vous
-changez quelque chose dans ce fichier.</para>
-
- <para>Pour finir&nbsp;: si vous n'etes pas certain de votre
-configuration d'envoi de messages &eacute;lectroniques, rappellez-vous
-l'option <filename>-bt</filename> de sendmail. Cela lance sendmail en
-<emphasis>mode test</emphasis>&nbsp;; entrez simplement ``0 '' suivi de
-l'adresse que vous voulez tester. La derni&egrave;re ligne vous indiquera
-alors le type d'agent utilis&eacute; pour l'envoi, la machine auquelle
-l'agent enverra le courrier, et l'adresse &agrave; laquelle il l'enverra. Pour
-quitter ce mode tapez Control-D.</para>
-<para><programlisting>
-j@uriah 191% sendmail -bt
-ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
-Enter &lt;ruleset&gt; &lt;address&gt;
-> 0 foo@interface-business.de
-rewrite: ruleset 0 input: foo @ interface-business . de
-...
-rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \
-< @ interface-business . de >
-> ^D
-j@uriah 192%
-</programlisting></para>
- </sect1>
-
- <sect1>
- <title>Comment mettre en oeuvre le courrier &eacute;lectronique avec une connexion temporaire &agrave; un r&eacute;seau&nbsp;?</title>
-
- <para>Si vous disposez d'un adresse IP statique, vous ne devez rien changer. Definissez juste votre nom de machine pour qu'il corresponde &agrave; votre nom de machine internet et sendmail s'occupera du reste.</para>
-
- <para>Dans le cas ou vous disposez d'une adresse IP
-dynamiquement assign&eacute;e et que vous utilisez une connexion ppp pour
-acc&egrave;der &agrave; l'internet, vous diposez probablement d'une boite aux
-lettres chez votre fournisseur d'acc&egrave;s. Prenons comme exemple que le
-domaine de votre fournisseur soit <filename>monISP.com</filename>, que
-votre nom d'utilisateur soit <filename>monlogin</filename>, que votre nom
-de machine soit <filename>bsd.perso</filename> et que votre
-fournisseur vous aie indiqu&eacute; la machine
-<filename>relai.monISP.com</filename> comme serveur relai de
-messagerie &eacute;lectronique.</para>
-
- <para>Pour pouvoir recevoir votre courrier depuis votre boite &agrave;
-lettres, vous devez installer un agent de rapatriement de
-mail.<emphasis remap="bf">Fetchmail</emphasis> est un bon choix, car
-il supporte la plupart des protocoles de messagerie. La plupart du
-temps, votre fournisseur offre l'acc&egrave;s &agrave; travers le protocole POP3. Si
-vous avez d&eacute;cid&eacute; d'utiliser la partie utilisateur de ppp, vous pouvez
-automatiquement rapatrier votre courrier lorsque la connexion vers le
-r&eacute;seau est &eacute;tablie en ajoutant la ligne suivante au fichier
-<filename>/etc/ppp/ppp.linkup</filename>&nbsp;:</para>
-<para><programlisting>
-MYADDR:
-!bg su monlogin -c fetchmail
-</programlisting></para>
-
- <para>Ici nous assumons que vous disposez d'un compte nomm&eacute;
-<filename>monlogin</filename> sur la machine
-<filename>bsd.perso</filename>. Vous devez alors cr&eacute;er un fichier
-<filename>.fetchmailrc</filename> dans votre r&eacute;pertoire principal
-contenant&nbsp;:</para>
-<para><programlisting>
-poll monISP.com protocol pop3 fetchall pass monPasswd:
-</programlisting></para>
-
- <para>Naturellement, ce fichier ne doit &ecirc;tre lisible que par
-l'utilisateur <filename>monlogin</filename> car il contient le mot de
-passe <filename>monPasswd</filename>.</para>
-
- <para>Pour permettre d'envoyer du courrier avec l'ent&ecirc;te
-<emphasis remap="bf">from:</emphasis> correcte, vous devez configurer
-sendmail pour utiliser l'adresse
-<filename>monlogin@monISP.com</filename> plut&ocirc;t que
-<filename>monlogin@bsd.perso</filename>. Vous devez aussi dire &agrave; votre
-sendmail d'envoyer tout le courrier via le serveur
-<filename>relai.monISP.com</filename>, permettant au courrier
-d'&ecirc;tre envoy&eacute; plus rapidement.</para>
-
-<para>Le fichier de configuration <filename>.mc</filename> suivant doit convenir&nbsp;:</para>
-<para><programlisting>
-VERSIONID(`bsd.perso.mc version 1.0')
-OSTYPE(bsd4.4)dnl
-FEATURE(nouucp)dnl
-MAILER(local)dnl
-MAILER(smtp)dnl
-Cwlocalhost
-Cwbsd.perso
-MASQUERADE_AS(`monISP.com')dnl
-FEATURE(allmasquerade)dnl
-FEATURE(masquerade_envelope)dnl
-FEATURE(nocanonify)dnl
-FEATURE(nodns)dnl
-define(SMART_HOST, `relai.monISP.com')
-Dmbsd.perso
-define(`confDOMAIN_NAME',`bsd.perso')dnl
-define(`confDELIVERY_MODE',`deferred')dnl
-</programlisting></para>
-
- <para>Ref&eacute;rez-vous &agrave; la section pr&eacute;c&eacute;dente pour l'explication
-d&eacute;taill&eacute;e de conversion du fichier <filename>.mc</filename>en fichier
-<filename>sendmail.cf</filename>. N'oubliez pas non plus de red&eacute;marrer
-sendmail apr&egrave;s avoir modifi&eacute; le fichier
-<filename>/etc/sendmail.cf</filename></para>
-
- </sect1>
-
- <sect1>
- <title>Horreur&nbsp;!! J'ai perdu le mot de passe de root&nbsp;!! </title>
-
- <para>Ne paniquez pas! Red&eacute;marrez tout simplement le syst&egrave;me en
-tapant -s au "prompt" Boot: pour passer en mode mono-utilisateur. A la
-question sur le shell &agrave; utiliser, appuyez sur ENTREE. Vous obtiendrez
-alors un prompt "#". Tapez la commande <filename>mount -u</filename>
-pour remonter votre partition primaire en lecture/&eacute;criture et lancez
-la commande <filename>mount -a</filename> pour remonter tous les
-syst&egrave;mes de fichiers. Tapez <filename>passwd root</filename> pour
-changer le mot de passe root puis tapez <filename>exit</filename> pour
-continuer le processus de d&eacute;marrage du syst&egrave;me.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment emp&egrave;cher le red&eacute;marrage du syst&egrave;me en appuyant sur les touches Control-Alt-Delete&nbsp;?</title>
- <para>Editez le fichier de configuration du clavier que vous
-utilisez pour la console et remplacez le mot cl&eacute;
-<filename>boot</filename> par <filename>nop</filename>. Le fichier de
-configuration du clavier utilis&eacute; par d&eacute;faut est
-<filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>. Vous
-pouvez changer la configuration en &eacute;ditant le fichier
-<filename>/etc/rc.conf</filename>. Bien sur si vous utilisez une autre
-configuration, il faut &eacute;diter le fichier de configuration la
-d&eacute;crivant.</para>
- </sect1>
-
- <sect1>
- <title>Comment transformer les fichiers textes au format DOS en fichiers UNIX&nbsp;?</title>
-
- <para>Utilisez tout simplement la commande perl suivante&nbsp;:</para>
-
- <para><programlisting>
-perl -i.bak -pe 's/\r\n/\n/g' fichier.dos ...
-</programlisting></para>
-
- <para>fichier.dos &eacute;tant le fichier &agrave; modifier. Cette commande
-remplace dans le fichier et sauvegarde l'ancien sous le nom
-<filename>fichier.dos.bak</filename>.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment tuer un processus par son nom&nbsp;?</title>
- <para>Utilisez <ulink url="/cgi/cvsweb.cgi/man.cgi?killall">killall(1)</ulink></para>
- </sect1>
-
- <sect1>
- <title>Pourquoi la commande <filename>su</filename> me dit sans arr&ecirc;t que je ne suis pas dans les ACL de root&nbsp;?</title>
-
- <para>Cette erreur vient du syst&egrave;me d'authentification distribu&eacute;
-Kerberos. Ceci n'est pas un probl&egrave;me tr&egrave;s grave. Un palliatif consiste
-&agrave; utiliser l'option "-k" de su ou de d&eacute;sinstaller Kerberos comme
-expliqu&eacute; &agrave; la section suivante.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment d&eacute;sinstaller Kerberos&nbsp;?</title>
- <para>Pour d&eacute;sinstaller Kerberos de votre syst&egrave;me, vous devez
-r&eacute;installer la distribution <filename>bin</filename> depuis votre
-version de FreeBSD. Si vous disposez d'un CDROM, vous devez monter le
-cd (la plupart du temps dans /cdrom) et lancer&nbsp;:</para>
-
-<para><programlisting>
-cd /cdrom/bin
-./install.sh
-</programlisting></para>
- </sect1>
- <sect1>
- <title>Comment ajouter des pseudo-terminaux au syst&egrave;me&nbsp;?</title>
-
- <para>Si vous avez un grand nombre de telnet, ssh, X, or screen users,
- vous risquez probablement de manquer de pseudo-terminaux.
- Voici comment en ajouter plusieurs&nbsp;:</para>
-
- <orderedlist>
- <listitem><para>Cr&eacute;er et installer un nouveau noyau avec la ligne</para>
-
- <programlisting>
- pseudo-device pty 256
- </programlisting>
-
- <para>dans le fichier de configuration.</para></listitem>
-
- <listitem><para>Ex&eacute;cuter la commande&nbsp;:</para>
-
- <programlisting>
- # cd /dev
- # ./MAKEDEV pty{1,2,3,4,5,6,7}
- </programlisting>
-
- <para>pour cr&eacute;er 256 device nodes pour les nouveaux terminaux.</para></listitem>
-
- <listitem><para>Editer <filename>/etc/ttys</filename> et
- jouter une ligne pour chacun des 256 terminaux.
- Elles doivent correspondre &agrave; la forme des entr&eacute;es existantes.
- c'est &agrave; dire ressembler &agrave; :</para>
-
- <programlisting>
- ttyqc none network
- </programlisting>
-
- <para>L'ordre des lettres de d&eacute;signation est
- <filename>tty[pqrsPQRS][0-9a-v]</filename>,
- en utilisant une expression r&eacute;guli&egrave;re. </para></listitem>
-
- <listitem><para>D&eacute;marrez le syst&egrave;me avec le nouveau noyau
- et vous &ecirc;tes pr&ecirc;ts &agrave; travailler.</para></listitem>
- </orderedlist>
-
-
- </sect1>
-
-</chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/applications.sgml b/fr_FR.ISO8859-1/books/faq/applications.sgml
deleted file mode 100644
index 0239ae5296..0000000000
--- a/fr_FR.ISO8859-1/books/faq/applications.sgml
+++ /dev/null
@@ -1,149 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $Id: applications.sgml,v 1.2 2000-05-29 20:36:01 gioria Exp $
- Original revision: n.nn
--->
-
-<chapter id="applications">
- <title>Applications</title>
-
- <sect1>
- <title>Ou puis-je trouver toutes les applications utilisateurs?</title>
-
- <para>Allez voir sur la <ulink url="../handbook/ports.html"> page des
-ports</ulink> pour plus d'informations sur les packages port&eacute;s sur
-FreeBSD. La liste compl&egrave;te inclut plus de 1000 ports, et grossit chaque
-jours, donc v&eacute;rifiez souvent cette liste, ou souscrivez &agrave; la mailing
-liste <ulink url="freebsd-announce"> freebsd-announce </ulink> pour
-vous tenir au courant des mises &agrave; jour.</para>
-
- <para>La plupart des ports sont disponibles pour la branche 2.2
-et 3.0, et la plupart d'entre eux sont susceptibles de fonctionner sur
-des syst&egrave;mes 2.1.x. A chaque fois qu'une version de FreeBSD est
-livr&eacute;e, une version des ports, au moment de la livraison de la
-version, est incluse dans le r&eacute;pertoire <filename> ports
-</filename>.</para>
-
- <para>FreeBSD supporte aussi le concept de ``package'', qui
-n'est rien de plus qu'une distribution binaire compress&eacute;e avec
-quelques informations en plus, permettant de l'installer tr&egrave;s
-simplement. Un ``package'' peut &ecirc;tre install&eacute; et d&eacute;sinstall&eacute;
-facilement, sans avoir besoin de savoir les d&eacute;tails sur les fichiers
-qu'il inclut.</para>
-
- <para>Il vous suffit d'utiliser le menu d'installation des
-``package'' du programme <filename> /stand/sysinstall </filename> ou
-servez vous de la commande <emphasis> pkg_add(1) </emphasis> pour
-installer les ``packages'' que vous d&eacute;sirez. Les fichiers des
-``packages'' sont tr&egrave;s simple &agrave; identifi&eacute;s de part leur suffixe
-<emphasis> .tgz </emphasis>. Les personnes disposant d'une
-distribution sur CDROM les trouveront dans le r&eacute;pertoire <filename>
-packages/All </filename>. Ils sont aussi disponibles sur ces
-diff&eacute;rents serveurs ftp:
-<itemizedlist>
- <listitem>
- <para>Pour les versions 2.1.x-release: <ulink
-url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/</ulink></para>
- </listitem>
- <listitem>
- <para>Pour les versions 2.2.6-release/2.2.-stable: <ulink
-url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.6/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.6/</ulink></para>
- </listitem>
- <listitem>
- <para>Pour la version 3.0-current: <ulink
-url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/</ulink></para>
- </listitem>
-
- </itemizedlist> ou sur un site mirroir.</para>
-
- <para>Notez, que tous les ports ne sont pas obligatoirement
-disponibles sous forme de ``package''. C'est une bonne id&eacute;e de
-v&eacute;rifier r&eacute;guli&egrave;rement la disponibilit&eacute; des diff&eacute;rents packages sur le
-<ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/">site principal de
-FreeBSD</ulink></para>
-
- </sect1>
-
- <sect1>
- <title>Ou trouver la librairie libc.so.3.0?</title>
- <para>Cela veut dire que vous essayez d'utiliser un ``package''
-compil&eacute; pour des versions 2.2/3.0 sur un syst&egrave;me 2.1.x. Voyez la
-section pr&eacute;cedente et retrouvez le port/package correct pour votre
-syst&egrave;me.</para>
-
- </sect1>
-
- <sect1>
- <title> ghostscript m'affiche &eacute;norm&eacute;ment d'erreurs sur mon 386/486SX. <anchor id="emul"> </title>
-
- <para> Vous n'avez pas de coprocesseur math&eacute;matique, n'est-ce pas ? Vous
-devez absolument compiler l'&eacute;mulateur math&eacute;matique fournit dans votre
-noyau; il vous suffit d'ajouter la ligne suivante dans votre fichier
-de configuration du noyau: <programlisting> options GPL_MATH_EMULATE
-</programlisting></para>
-
- <para>NOTE: Vous devez retirer la ligne contenant l'option
-<filename> MATH&lowbar;EMULATE </filename> si vous activez la
-pr&eacute;c&eacute;dente.</para>
-
- </sect1>
-
- <sect1>
- <title>Lorsque je lance des applications SCO/iBCS2, elles plantent sur <filename> socksys </filename> </title>
-
- <para> Vous devez en tout premier &eacute;diter le fichier <filename>
-/etc/sysconfig </filename> (ou <ulink
-url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)"> /etc/rc.conf
-</ulink>) et positionner la variable suivante sur <emphasis
-remap="bf"> YES </emphasis>:
-<programlisting>
-# &agrave; positionner sur YES si vous voulez que l'&eacute;mulation ibcs2(SCO) soit charg&eacute;e au d&eacute;marrage
-ibcs2=NO
-</programlisting></para>
-
- <para>Cela activera le module <ulink
-url="http://www.freebsd.org/cgi/man.cgi?ibcs2"> ibcs2 </ulink> au
-d&eacute;marrage.</para>
-
- <para>Vous devrez aussi cr&eacute;er le r&eacute;pertoire <filename>
-/compat/ibcs2/dev </filename> et mettre en place ce qui suit :
-
-<programlisting>
-lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null
-lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> 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@ -> /dev/null
-crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx
-</programlisting></para>
-
- <para>Il suffit de faire pointer socksys vers <ulink
-url="http://www.freebsd.org/cgi/man.cgi?null(4)"> /dev/null </ulink>
-pour tromper les open &amp; close. Le code, dans la version -current,
-fera le reste. Si vous avez besoin du driver <filename> spx
-</filename> pour la connexion d'une socket X, d&eacute;finissez <filename>
-SPX&lowbar;HACK </filename> lors de la compilation de votre
-syst&egrave;me.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment dois-je configurer INN (Internet News) pour mon syst&egrave;me ?</title>
-
- <para>Apr&egrave;s avoir install&eacute; le package ou le port de inn, la
-meilleur fa&ccedil;on de commencer est de voir la page de <ulink
-url="http://www.eerie.fr/~news/">Fabien TASSIN</ulink>
-sur INN, ou vous trouverez la FAQ de INN.</para>
- </sect1>
-
- <sect1>
- <title>Quelle version de Microsoft FrontPage dois-je utiliser ?</title>
-
- <para>Utilisez les ports ! Une pr&eacute;-version patch&eacute;e pour Apache est
-disponible dans les ports</para>
- </sect1>
-
-</chapter>
-
-
diff --git a/fr_FR.ISO8859-1/books/faq/book.sgml b/fr_FR.ISO8859-1/books/faq/book.sgml
deleted file mode 100644
index 9a79ac200d..0000000000
--- a/fr_FR.ISO8859-1/books/faq/book.sgml
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD: doc/fr_FR.ISO_8859-1/books/faq/book.sgml,v 1.2 2000/05/29 20:36:01 gioria Exp $
- Original revision: n.nn
--->
-
-<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR">
-%urls;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists;
-
-<!ENTITY % includes SYSTEM "includes.sgml"> %includes;
-<!ENTITY preface SYSTEM "preface.sgml">
-<!ENTITY install SYSTEM "install.sgml">
-<!ENTITY hardware SYSTEM "hardware.sgml">
-<!ENTITY troubleshoot SYSTEM "troubleshoot.sgml">
-<!ENTITY commercial SYSTEM "commercial.sgml">
-<!ENTITY applications SYSTEM "applications.sgml">
-<!ENTITY kernelconfig SYSTEM "kernelconfig.sgml">
-<!ENTITY admin SYSTEM "admin.sgml">
-<!ENTITY x SYSTEM "x.sgml">
-<!ENTITY network SYSTEM "network.sgml">
-<!ENTITY serial SYSTEM "serial.sgml">
-<!ENTITY misc SYSTEM "misc.sgml">
-<!ENTITY hackers SYSTEM "hackers.sgml">
-<!ENTITY acknowledgments SYSTEM "acknowledgments.sgml">
-]>
-
-<book id="FAQ" lang="fr">
- <title>Questions Fr&eacute;quemment Pos&eacute;es sur FreeBSD 2.X</title>
- <bookinfo>
- <bookbiblio>
- <authorgroup>
- <author >
- <firstname>S&eacute;bastien</firstname>
- <surname>GIORIA</surname>
- <affiliation>
- <address>
- <email>gioria@FreeBSD.org</email>
- </address>
- </affiliation>
- </author>
- <author >
- <firstname>Tuyet Tram</firstname>
- <surname>DANG NGOC</surname>
- <affiliation>
- <address>
- <email>dntt@prism.uvsq.fr</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
- <date>Septembre - D&eacute;cembre 1998</date>
-
- </bookbiblio>
- <legalnotice>
- <para>
-Ceci est la FAQ pour les versions de FreeBSD 2.X. Toutes les entr&eacute;es sont
-relatives &agrave; FreeBSD 2.05 et les versions ult&eacute;rieures.Toutes
-les entr&eacute;es finissant avec &lt;XXX&gt; sont en cours de
-construction. Si vous &ecirc;tes int&eacute;ress&eacute; par ce projet,
-envoyez un email sur la "mailing-list" : <ulink
-url="mailto:freebsd-questions@freebsd-fr.org">freebsd-questions@freebsd-fr.org</ulink>.
-La derni&egrave;re version de ce document est disponible en anglais &agrave;
-l'adresse suivante : <ulink url="http://www.fr.FreeBSD.ORG/"> FreeBSD
-World Wide Web server </ulink>. Ce document est &eacute;galement disponible
-en format <ulink url="FAQ.txt">texte</ulink> et en format
-<ulink url="FAQ.ps">postscript</ulink>
-
- </para>
-<para><emphasis remap="bf">Nous recherchons des relecteurs pour la correction de cette FAQ</emphasis>.
-
-</para>
- </legalnotice>
- </bookinfo>
- &preface;
- &install;
- &hardware;
-&troubleshoot;
-&commercial;
-&applications;
-&kernelconfig;
-&admin;
-&x;
-&network;
-&serial;
-&misc;
-&hackers;
-&acknowledgments;
-
-</book>
diff --git a/fr_FR.ISO8859-1/books/faq/commercial.sgml b/fr_FR.ISO8859-1/books/faq/commercial.sgml
deleted file mode 100644
index 204779a5c5..0000000000
--- a/fr_FR.ISO8859-1/books/faq/commercial.sgml
+++ /dev/null
@@ -1,254 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.4
--->
-
- <chapter id="commercial">
- <title> Applications commerciales</title>
- <para>
-NOTE :
-Cette section est encore tr&egrave;s clairsem&eacute;e, car nous esp&eacute;rons
-naturellement, que les industries y contribueront :-)
-L'organisation FreeBSD n'a aucun int&eacute;r&ecirc;t financier dans aucune des
-soci&eacute;t&eacute;s &eacute;num&eacute;r&eacute;es ici, mais les liste simplement comme service public
-(et estime que l'int&eacute;r&ecirc;t commercial dans FreeBSD peut avoir des effets
-tr&egrave;s positifs sur la viabilit&eacute; &agrave; long terme de FreeBSD).
-Nous encourageons les constructeurs de logiciel commerciaux
-&agrave; envoyer leurs r&eacute;f&eacute;rences ici pour inclusion. Voir
-<ulink url="http://www.fr.freebsd.org/commercial/commercial.html"> les pages des constructeurs </ulink>
-pour une liste plus compl&egrave;te.
- </para>
-
- <sect1>
- <title> O&ugrave; puis je obtenir Motif pour FreeBSD ? </title>
- <para>
-Contactez <ulink url="http://www.apps2go.com">Apps2go</ulink> pour une distribution ELF
-Motif 2.1 pour FreeBSD.
- </para>
-
- <para>
-Cette distribution comprend :
- <itemizedlist>
- <listitem><para>
-OSF/Motif manager, xmbind, panner, wsm.
- </para></listitem>
-
- <listitem><para>
-Les librairies ELF statiques et dynamiques (utilisables avec FreeBSD
-3.0 et sup&eacute;rieur).
-
- </para></listitem>
-
- <listitem><para>
-Kit de d&eacute;veloppement avec les fichiers
-uil, mrm, xm, xmcxx, include et Imake.
- </para></listitem>
-
- <listitem><para>
-Des applications de d&eacute;monstration.
- </para></listitem>
-
- </itemizedlist>
- </para>
-
- <para>
-Soyez s&ucirc;r d'indiquer que vous voulez la version de FreeBSD de Motif
-lors de la commande ! Des versions pour NetBSD et OpenBSD sont &eacute;galement
-vendues par <emphasis remap="apps2go">Apps2go</emphasis>. Vous avez
-actuellement juste la possiblit&eacute; de t&eacute;l&eacute;charger en FTP.
-<programlisting>
- Pour plus d'informations
- <ulink url="http://www.apps2go.com/">Serveur WWW de Apps2go </ulink>
-
- Ou les addresse de messageries du d&eacute;partement des <ulink
- url="mailto:sales@apps2go.com">ventes </ulink> ou encore
- du <ulink url="mailto:support@apps2go.com">support </ulink>
-
- T&eacute;l: (817) 431 8775 ou +1 817 431-8775
- </programlisting>
-
- </para>
-
- <para>
-Contactez <ulink url="http://www.metrox.com">Metro Link</ulink> pour
-une distribution a.out ou ELF Motif 2.1 pour FreeBSD.
- </para>
-
- <para>
-Cette distribution comprend :
- <itemizedlist>
- <listitem><para>
-OSF/Motif manager, xmbind, panner, wsm.
- </para></listitem>
-
- <listitem><para>
-Kit de d&eacute;veloppement avec les fichiers
-uil, mrm, xm, xmcxx, include et Imake.
- </para></listitem>
-
- <listitem><para>
-Les librairies a.out et ELF statiques et dynamiques (utilisables avec FreeBSD
-3.0 et sup&eacute;rieur pour les librairies ELF et 2.2.8 et sup&eacute;rieur pour
-les librairies a.out ).
-
- </para></listitem>
-
- <listitem><para>
-Des applications de d&eacute;monstration.
- </para></listitem>
-
- <listitem><para>
-Les pages de manuel pr&eacute;formatt&eacute;es
- </para></listitem>
-
- </itemizedlist>
- </para>
-
- <para>
-Soyez s&ucirc;r d'indiquer que vous voulez la version de FreeBSD de Motif
-lors de la commande ! Des versions pour Linux sont &eacute;galement
-vendues par <emphasis remap="metrox">Metro Link</emphasis>. La
-distribution est disponible par t&eacute;l&eacute;chargement FTP ou sur un CDROM.</para>
-
- <para>
-Contactez <ulink url="http://www.xig.com">Xi Graphics</ulink> pour une distribution a.out
-Motif 2.0 pour FreeBSD.
- </para>
-
- <para>
-Cette distribution comprend :
- <itemizedlist>
- <listitem><para>
-OSF/Motif manager, xmbind, panner, wsm.
- </para></listitem>
-
- <listitem><para>
-Les librairies a.out statiques et dynamiques (utilisables avec FreeBSD
-2.2.8 et sup&eacute;rieur).
-
- </para></listitem>
-
- <listitem><para>
-Kit de d&eacute;veloppement avec les fichiers
-uil, mrm, xm, xmcxx, include et Imake.
- </para></listitem>
-
- <listitem><para>
-Des applications de d&eacute;monstration.
- </para></listitem>
-
- <listitem><para>
-Les pages de manuel pr&eacute;formatt&eacute;es
- </para></listitem>
-
- </itemizedlist>
- </para>
-
- <para>
-Soyez s&ucirc;r d'indiquer que vous voulez la version de FreeBSD de Motif
-lors de la commande ! Des versions pour BSDI et Linux sont &eacute;galement
-vendues par <emphasis remap="xig">Xi Graphics</emphasis>. La
-distribution comprend actuellement 4 disquettes. Dans le futur il y
-aura un CD comme pour CDE.</para>
-
- </sect1>
-
- <sect1>
- <title> O&ugrave; puis-je avoir CDE pour FreeBSD? </title>
- <para>
-Contactez <ulink url="http://www.xig.com">Xi Graphics</ulink> pour une distribution
-CDE 1.0.10 pour FreeBSD. Cela inclut Motif 1.2.5, et peut &ecirc;tre utilis&eacute;
-avec Motif 2.0.
- </para>
-
- <para>
-C'est une distribution CDROM uniforme pour FreeBSD et Linux.
- </para>
- </sect1>
-
- <sect1>
- <title> Y a-t-il des serveurs X commerciaux haute-performance ?<!-- <label id="xig"> --> </title>
-
- <para>
-Oui,
-<ulink url="http://www.xig.com"> Xi Graphics </ulink> et <ulink
-url="http://www.metrolink.com">Metro Link</ulink>
-vendent leur produit Accelerated-X pour FreeBSD et autres syst&egrave;mes
-bas&eacute;s sur Intel.
- </para>
- <para>Le serveur X de Metro Link offre une configuration facile
- grace a l'utilisation des outils de gestion des packages de FreeBSD,
-supporte de multiples cartes vid&eacute;os et est distribu&eacute;
-en forme binaire seulement, par FTP. N'oublions pas de mentionner que
-Metro Link offre se serveur a un prix raisonnable de 39$.
- </para>
-
- <para>Metro Link vend aussi une version ELF et a.out de Motif
- (voir ci-dessus).</para>
-
-<para><programlisting>
- Pour plus d'informations
- <ulink url="http://www.metrolink.com/">Serveur WWW de Metro Link </ulink>
-
- Ou les addresse de messageries du d&eacute;partement des <ulink
- url="mailto:sales@metrolink.com">ventes </ulink> ou encore
- du <ulink url="mailto:tech@metrolink.com">support </ulink>
-
- T&eacute;l: (954) 938-0283 or +1 954 938-0283
- </programlisting>
-</para>
-
-<para>
-<ulink url="http://www.xig.com"> Xi Graphics</ulink> offre un serveur X haute
-performances comportant une facilit&eacute; de configuration et supportant
-des cartes vid&eacute;os multiples. La distribution est sous forme binaire,
-et est au format disquette pour FreeBSD et Linux. Xi Graphics offre
-aussi un serveur haute performances pour les portables.</para>
-
- <para>
-Il y a une "d&eacute;mo de compatibilit&eacute;" disponible et gratuite de la
-version 5.0.
- </para>
-
- <para>
-Xi Graphics vends aussi Motif et CDE pour FreeBSD (voir ci-dessus).
- </para>
-
- <para>
-<programlisting>
-Pour plus d'informations :
-<ulink url="http://www.xig.com/"> Xi Graphics WWW page </ulink>
-ou par courrier &eacute;lectronique aux adresses suivantes :
-<ulink url="mailto:sales@xig.com"> Ventes </ulink>
-ou
-<ulink url="mailto:support@xig.com"> Support </ulink>
-ou encore par t&eacute;l&eacute;phone au
-(800) 946 7433 ou +1 303 298-7478.
-</programlisting>
- </para>
- </sect1>
-
- <sect1>
- <title> Y a-t-il un syst&egrave;me de bases de donn&eacute;es pour FreeBSD? </title>
- <para>
-Oui ! Conetic Software Systems a port&eacute; leur syst&egrave;me de
-bases de donn&eacute;es C/base and C/books pour FreeBSD 2.0.5 et plus,
-et Sleepycat Software vend une version commerciale support&eacute;e de leur
-librairie de base de donn&eacute;es DB.
- </para>
-
- <para>
-Pour plus d'informations :
-<ulink url="http://www.conetic.com/"> Conetic Software Systems </ulink>
-
-ou envoyez un courrier &eacute;lectronique &agrave;
-<ulink url="mailto:info@conetic.com"> Information E-mail address </ulink>
-et
-<ulink url="http://www.sleepycat.com/"> Sleepycat Software </ulink>
- </para>
- </sect1>
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/hackers.sgml b/fr_FR.ISO8859-1/books/faq/hackers.sgml
deleted file mode 100644
index a783be2f81..0000000000
--- a/fr_FR.ISO8859-1/books/faq/hackers.sgml
+++ /dev/null
@@ -1,299 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="hackers">
- <title>Pour les passionn&eacute;s</title>
-
- <sect1>
- <title>Que sont les SNAP et RELEASE</title>
-
- <para>Il y a actuellement 3 branches actives/semi-actives dans
-<ulink url="http://www.freebsd.org/cgi/cvsweb.cgi">l'entrepot
-CVS</ulink> des sources de FreeBSD:
-<itemizedlist>
- <listitem>
- <para>RELENG_2_1_0 encore appel&eacute;e 2.1-stable ou branche 2.1</para>
- </listitem>
- <listitem>
- <para>RELENG_2_2 encore appel&eacute;e 2.2-stable ou branche
-2.2</para>
- </listitem>
- <listitem>
- <para>HEAD encore appel&eacute;e -current ou 3.0-current</para>
- </listitem>
- </itemizedlist></para>
-
- <para>HEAD n'est pas vraiment une branche, compar&eacute;e aux deux
-autres, c'est juste une valeur symbolique constante pour d&eacute;signer
-le r&eacute;pertoire de la version courante(ou version de d&eacute;veloppement), auquel
-nous nous r&eacute;f&eacute;rerons sous le nom de -current.</para>
-
- <para>Actuellement -current est la branche de d&eacute;veloppement de
-la version 3.0 r&eacute;sultant de la s&eacute;paration de la branche 2.2-stable(RELENG_2_2)
-en Novembre 1996.</para>
-
- <para>La branche 2.1-stable, RELENG_2_1_0, s'&eacute;tant s&eacute;par&eacute;e de
--current en Septembre 1994.</para>
- </sect1>
-
- <sect1>
- <title>Comment cr&eacute;er ma propre version</title>
-
- <para>Pour cr&eacute;er votre propre version, vous devez effectuer trois
-choses. Premi&egrave;rement, vous devez avoir un noyau contenant le
-gestionnaire <ulink
-url="http://www.freebsd.org/cgi/man.cgi?vn">vn</ulink>. Ajoutez la
-ligne suivante au fichier de configuration du noyau, puis reconstruisez le.</para>
-
-
-<programlisting>
- pseudo-device vn #Vnode driver (turns a file into a device)
-</programlisting>
-
- <para>Ensuite, vous devez disposer de l'arbre CVS au
-complet. Pour l'obtenir, vous pouvez utiliser <ulink
-url="../handbook/synching.html">CVSUP</ulink> et remplissez votre fichier
-de configuration de cvsup de la fa&ccedil;on suivante:</para>
-
-<programlisting>
-*default prefix=/home/ncvs
-*default base=/a
-*default host=cvsup.FreeBSD.org
-*default release=cvs
-*default delete compress use-rel-suffix
-
-## Main Source Tree
-src-all
-src-eBones
-src-secure
-
-# Other stuff
-ports-all
-www
-doc-all
-</programlisting>
-
- <para>Ensuite lancez la commande <filename>cvsup -g
-fichier_de_configuration_de_cvsup</filename> pour rapatrier tous les
-sources sur votre machine</para>
-
- <para>Pour finir, vous devez disposez de beaucoup de place sur
-vos disque pour compiler le tout. Disons que cela se trouve dans le
-r&eacute;pertoire <filename>/tres/gros/systeme/de/fichiers</filename> et que
-l'arbre CVS se trouve dans <filename>/home/ncvs</filename></para>
-
-
-<programlisting>
-setenv CVSROOT /home/ncvs # ou export CVSROOT=/hom/ncvs (pour du sh)
-cd /usr/src/release
-make release
-BUILDNAME=3.0-MY-SNAP CHROOTDIR=/tres/gros/systeme/de/fichiers
-</programlisting>
-
- <para>Une distribution compl&egrave;te sera alors cr&eacute;e dans le
-r&eacute;pertoire <filename>/tres/gros/systeme/de/fichiers</filename> et vous
-disposerez d'un programme d'installation ftp utilisant ce r&eacute;pertoire
-par d&eacute;faut. Vous pouvez aussi d&eacute;cider de compiler autre chose que la version -current
-en donnant au param&egrave;tre <filename>RELEASETAG</filename> une autre
-valeur. Par exemple pour compiler une version 2.2, il suffit de passer
-la valeur <filename>RELEASETAG=RELENG_2_2</filename> &agrave; la ligne de
-commande de make.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment cr&eacute;er une disquette d'installation personnalis&eacute;e?</title>
-
- <para>Le processus de cr&eacute;ation, des disquettes d'installation
-ainsi que des archives binaires, est automatis&eacute; par diff&eacute;rentes cibles
-dans le fichier <filename>/usr/src/release/Makefile</filename>. Ce
-fichier doit etre votre point de d&eacute;part pour plus d'informations. Bien sur,
-cela veut dire que vous devrez faire un <quote>make world</quote> et
-que cela demande beaucoup d'espace disque et de temps.</para>
-
- </sect1>
-
- <sect1>
- <title><quote>make world</quote> remplace-t-il tous les binaires d&eacute;ja install&eacute;s?</title>
-
- <para>Oui.Comme son nom le sugg&egrave;re,<quote>make world</quote>
-recompile tout le syst&egrave;me depuis les sources, donc vous pouvez etre
-sur d'avoir un syst&egrave;me sain et coh&eacute;rent &agrave; la fin (cela peut prendre
-&eacute;norm&eacute;ment de temps pour y arriver).</para>
-
- <para>Si la variable <filename>DESTDIR</filename> est d&eacute;finie
-lorsque vous &eacute;xecutez <quote>make world</quote> ou <quote>make
-install</quote>, les binaires seront install&eacute;s dans la m&ecirc;me
-arborescence que votre syst&egrave;me sauf que la racine du nouveau syst&egrave;me
-sera <filename>&dollar;&lcub;DESTDIR&rcub;</filename>. Diff&eacute;rentes
-combinations dans la modification des librairies partag&eacute;es et dans les
-programmes, peut entrainer une erreur du <quote>make
-world</quote>.</para>
-
- </sect1>
- <sect1>
- <title>Lorsque le syst&egrave;me d&eacute;marre, il affiche <quote>(bus speed defaulted)</quote></title>
- <para>Les cartes SCSI Adaptec 1542 permettent d'acc&eacute;der &agrave; la
-configuration de la vitesse du bus par logiciel. Les anciennes
-versions du gestionnaire de p&eacute;riph&eacute;rique 1542 essayaient de d&eacute;terminer
-la vitesse maximale utiliable et de configurer la carte &agrave; cette
-valeur. Nous avons trouv&eacute; que cela pouvait casser certains syst&egrave;mes,
-donc vous devez d&eacute;finir l'option
-<filename>TUNE&lowbar;1542</filename> dans le fichier de configuration
-du noyau, pour que cela soit actif. En l'utilisant sur des syst&egrave;mes ou
-la carte le supporte, cela vous permettra d'avoir une meilleur vitesse
-pour vos disques, mais sur des syst&egrave;me ne le supportant pas vous
-obtiendrez des donn&eacute;es corrompues.</para>
-
- </sect1>
-
- <sect1>
- <title>Puis-je me tenir &agrave; jour par rapport &agrave; -current si j'ai un acc&egrave;s limit&eacute; &agrave; l'Internet?</title>
- <para>Oui, vous pouvez le faire sans t&eacute;l&eacute;charger l'arbre complet
-des sources en utilisant la fonctionnalit&eacute;e <ulink
-url="../handbook/synching.html">CTM</ulink></para>
-
- </sect1>
-
- <sect1>
- <title>Comment faire pour couper la distribution en fichiers de 240Ko?</title>
- <para>Les syst&egrave;mes BSD r&eacute;cents diposent d'une option
-<quote><filename>-b</filename></quote> pour vous permettre de d&eacute;couper
-les fichiers binaires en plusieurs parties</para>
- <para>Voici un exemple, tir&eacute; de
-<filename>/usr/src/Makefile</filename>.</para>
-
-<programlisting>
-bin-tarball:
- (cd $&lcub;DISTDIR&rcub;; \
- tar cf - . \
- gzip --no-name -9 -c | \
- split -b 240640 - \
- $&lcub;RELEASEDIR&rcub;/tarballs/bindist/bin_tgz.)
-</programlisting>
- </sect1>
- <sect1>
- <title>J'ai &eacute;crit une extension pour le noyau, comment l'incorporer?</title>
- <para>Regardez la partie du handbook sur la fa&ccedil;on de <ulink
-url="../handbook/contrib.html">soumettre du code</ulink></para>
- <para>Et encore merci pour tout.</para>
- </sect1>
-
- <sect1>
- <title>Comment sont d&eacute;tect&eacute;es les cartes plugs and play ISA?</title>
-
- <para>Contribution de <ulink url="mailto:uhclem@nemesis.lonestar.org">Frank Durda IV</ulink></para>
-
- <para>Il y a un certains nombres de ports d'entr&eacute;es/sorties sur
-lesquels la plupart des cartes PnP r&eacute;pondent lorsqu'une machine
-interroge le bus ISA. Donc, lorsque la routine de d&eacute;tection PnP
-s'execute, elle interroge les cartes PnP sur ces ports pour savoir
-lesquelles sont pr&eacute;sentes. Dans ce cas toutes les cartes r&eacute;pondent en
-indiquant leur mod&egrave;le et la routine de d&eacute;tection re&ccedil;oit alors une
-valeur qui est soit <quote>oui</quote> soit rien. Au minimum un bit
-est mis &agrave; 1 lors de la r&eacute;ponse. Alors le code de d&eacute;tection peut
-essayer de dialoguer avec les cartes, gra&ccedil;e aux num&eacute;ros de mod&egrave;le de
-cartes (d&eacute;finis par Microsoft/Intel), inf&eacute;rieurs &agrave; X pour leur dire de
-s'arr&eacute;ter. Il v&eacute;rifie alors qu'aucune autre carte ne r&eacute;pond &agrave; la
-question pr&eacute;cedente. Si la r&eacute;ponse est <emphasis>0</emphasis> alors il
-consid&egrave;re qu'aucune carte n'a d'ID au dessus de X. Ensuite il
-interroge le bus pour obtenir la liste des cartes sous
-<quote>X</quote>. S'il en trouve alors il interroge le bus pour avoir
-la liste des celles ayant un ID sup&eacute;rieur &agrave; X-(limit/4). Et r&eacute;p&egrave;te
-ainsi de suite l'algorithme, qui consiste &agrave; diviser l'intervalle de
-recherche par deux. Avec cet algorithme, les cartes seront d&eacute;couvertes
-avec un maximum d'it&eacute;ration de 2^64.</para>
-
- <para>Les Identifiants de cartes sont cod&eacute;s sur 32 bits + 8 bit
-de checksum. Les 32 premiers bits repr&eacute;sentent le code de la carte
-pour le constructeur de cette carte. Il arrive de trouver plusieurs
-cartes du meme constructeur ayant diff&eacute;rents code de carte. L'id&eacute;e de
-coder sur 32 bits le nom du constructeur serait un peu
-excessif.</para>
-
- <para>Les 32 bits de poids faibles sont le num&eacute;ro de s&eacute;rie de la
-carte; l'adresse ethernet , ou quelque chose rendant la carte unique
-par ce num&eacute;ro. Le constructeur ne doit jamais produire une deuxi&egrave;me
-carte ayant ce meme num&eacute;ro tout en ayant le meme nombre repr&eacute;sent&eacute; sur
-les 32 premiers bits. Vous pouvez dons avoir plusieurs cartes du meme
-type dans votre ordinateur , et l'ensemble des 64 bits permet de
-rendre chacune unique.</para>
-
- <para>Les groupes de 32 bits ne peuvent en aucun cas etre tous
-&agrave; z&eacute;ro. Cela permet d'effectuer le <quote>OU</quote> pour afficher les
-bits non nuls lors de la premi&egrave;re recherche dicotomique.</para>
-
- <para>Lorsque le syst&egrave;me &agrave; d&eacute;tecter toutes les cartes pr&eacute;sentes,
-ils les r&eacute;activent une &agrave; une, et recherche les ressources dont elles
-ont besoin, quels sont les choix possibles pour les interruptions,
-etc. Un <quote>scan</quote> de toutes les cartes est effectu&eacute; pour
-collecter toutes ces informations.</para>
-
- <para>Cette information est combin&eacute;e avec l'information
-recueillie des fichiers ECU se trouvant sur le disque dur ou dans le
-BIOS. Le support ECU et BIOS du plug-and-play pour le mat&eacute;riel est
-tr&egrave;s simple, et les p&eacute;riph&eacute;rique n'ont pas besoin d'etre vraiment
-PnP. Mais en examinant les informations du BIOS et des fichiers ECU,
-les routines d'interrogations peuvent permettre aux p&eacute;riph&eacute;riques
-PnP <quote>to avoid those devices the probe code cannot
-relocate. </quote></para>
-
- <para>Alors les p&eacute;riph&eacute;riques PnP sont encore interrog&eacute;s, et
-renvoient leur IRQ, adresse m&eacute;moire, ports d'entr&eacute;e/sorties et
-DMA. Les p&eacute;riph&eacute;riques sont alors activ&eacute;s, en prenant en compte ces
-valeurs, et le reste jusqu'au prochaine red&eacute;marrage du syst&egrave;me. Bien
-sur rien de vous empeche de les retirer, si le mat&eacute;riel le permet
-:-).</para>
-
- <para>Ceci n'explique pas toute la complexit&eacute; de d&eacute;tection, mais
-c'est une explication simple du processus de d&eacute;tection.</para>
-
-<!-- <p>Microsoft took over some of the primary printer status ports to -->
-<!-- do PnP, on the logic that no boards decoded those addresses for -->
-<!-- the opposing I/O cycles. I found a genuine IBM printer board -->
-<!-- that did decode writes of the status port during the early PnP -->
-<!-- proposal review period, but MS said ``tough''. So they do a -->
-<!-- write to the printer status port for setting addresses, plus that -->
-<!-- use that address + <tt/0x800/, and a third I/O port for reading -->
-<!-- that can be located anywhere between <tt/0x200/ and <tt/0x3ff/. -->
-
- </sect1>
- <sect1>
- <title>Est-ce que FreeBSD va supporter d'autres architectures mat&eacute;rielles?</title>
-
- <para>Diff&eacute;rentes personnes sont interress&eacute;es sur un support
-multi-architecture pour FreeBSD, et certaines personnes sont en train
-de porter FreeBSD sur la plateforme ALPHA, en coop&eacute;ration avec
-DEC. Pour plus d'informations sur les nouvelles architectures utilisez
-la mailling liste <ulink
-url="mailto:&lt;freebsd-platforms@FreeBSD.ORG&gt;">&lt;freebsd-platforms@FreeBSD.ORG&gt;</ulink>
-</para>
- </sect1>
-
- <sect1>
- <title>J'ai besoin d'un <quote>major number</quote> pour un gestionnaire de p&eacute;riph&eacute;rique que je viens d'&eacute;crire</title>
- <para>Ceci d&eacute;pend du fait que vous vouliez ou non rendre public ce
-gestionnaire. Si vous le d&eacute;sirez, envoyez nous une copie code source
-du gestionnaire et les modifications n&eacute;cessaires &agrave; apporter au fichier
-<filename>files.i386</filename>, un fichier de configuration et le
-code du fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink>n&eacute;cessaire
-pour cr&eacute;er les fichiers sp&eacute;ciaux dont le gestionnaire &agrave; besoin. Si
-vous ne d&eacute;sirez pas rendre plublic le code, ou si vous ne pouvez pas &agrave;
-cause de certaines restrictions de votre license, alors utilisez le
-<quote>major number</quote> 32 (pour les gestionnaires de type
-caract&egrave;re) et le <quote>major number</quote> 8 (pour les gestionnaires
-de type blocs), qui sont r&eacute;serv&eacute;s &agrave; ce type de chose. Dans les deux
-cas nous sommes interess&eacute;s par votre gestionnaire, discutez &agrave; son
-propos sur la mailling liste <ulink
-url="mailto:&lt;freebsd-hackers@FreeBSD.ORG&gt;">&lt;freebsd-hackers@FreeBSD.ORG&gt;</ulink>.</para>
-
- </sect1>
-
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/hardware.sgml b/fr_FR.ISO8859-1/books/faq/hardware.sgml
deleted file mode 100644
index 19b482805c..0000000000
--- a/fr_FR.ISO8859-1/books/faq/hardware.sgml
+++ /dev/null
@@ -1,478 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.15
--->
-
-<chapter id="hardware">
- <title>Compatibilit&eacute; mat&eacute;rielle</title>
-
- <sect1>
- <title>Quels sont les types de disques durs support&eacute;s par FreeBSD&nbsp;?</title>
-
- <para>FreeBSD supporte les disques EIDE et SCSI (pour les contr&ocirc;leurs
- compatibles, voir la section suivante), ainsi que tous les disques
- utilisant l'interface originale "Western Digital" (MFM, RLL, ESDI
- et bien s&ucirc;r IDE).
- Quelques contr&ocirc;leurs ESDI utilisant des interfaces propri&eacute;taires
- peuvent ne pas marcher: utilisez les interfaces WD1002/3/6/7 et leurs
- clones.</para>
- </sect1>
-
- <sect1>
- <title>Quels sont les contr&ocirc;leurs SCSI support&eacute;s&nbsp;?</title>
-
- <para>Voir la liste compl&egrave;te dans le
- <ulink url="&url.handbook;install.html#INSTALL-HW">Handbook</ulink>.</para>
- </sect1>
-
- <sect1>
- <title>Quels sont les lecteurs CD-ROM support&eacute;s par FreeBSD&nbsp;?</title>
-
- <para>N'importe quel lecteur SCSI connect&eacute; &agrave; un contr&ocirc;leur support&eacute;
- est support&eacute;.</para>
-
- <para>Les interfaces CD-ROM propri&eacute;taires suivantes sont aussi support&eacute;es:
- <itemizedlist>
- <listitem><para>Mitsumi LU002 (8 bits), LU005 (16 bits) et FX001D
- (16 bits double vitesse).</para></listitem>
- <listitem><para>Sony CDU 31/33A</para></listitem>
- <listitem><para>CD-ROM Sound Blaster Non-SCSI</para></listitem>
- <listitem><para>CD-ROM Matsushita/Panasonic</para></listitem>
- <listitem><para>CD-ROM ATAPI compatible IDE</para></listitem>
- </itemizedlist>
- </para>
-
- <para>Toutes les cartes non-SCSI sont connues pour &ecirc;tre extr&ecirc;mement lentes
- par rapport aux lecteurs SCSI, et certains CDROM ATAPI peuvent ne pas
- &ecirc;tre pris en charge.</para>
-
- <para>A partir de la version 2.2, le CD-ROM FreeBSD de Walnut Creek
- permet de d&eacute;marrer directement FreeBSD depuis le CD.</para>
- </sect1>
-
- <sect1>
- <title>Est-ce que FreeBSD supporte les lecteurs ZIP&nbsp;?</title>
-
- <para>FreeBSD supporte bien s&ucirc;r les lecteurs ZIP SCSI de base
- &nbsp;-&nbsp;<foreignphrase>out of the box</foreignphrase>.
- Les lecteurs ZIP ne peuvent &ecirc;tre r&eacute;gl&eacute;s que pour marcher sur les cibles
- SCSI d'adresse 5 ou 6, mais si le BIOS de votre adaptateur SCSI h&ocirc;te
- le permet, vous pourrez m&ecirc;me d&eacute;marrer &agrave; partir du ZIP.
- Je ne sais pas quel adaptateur SCSI h&ocirc;te vous permet de d&eacute;marrer
- depuis des cibles autres que 0 ou 1... regardez votre documentation
- (et dites moi si cela marche pour vous).</para>
-
- <para>Les ZIP ATAPI (IDE) sont pris en charge par FreeBSD 2.2.6
- ainsi que par les versions ult&eacute;rieures.</para>
-
- <para>FreeBSD 3.0-STABLE contient le support pour lecteur ZIP
- sur port parall&egrave;le, mais pour cela, vous aurez &agrave; construire
- un nouveau noyau avec support pour ppbus (Parallel Port Bus)
- afin d'utiliser le ZIP.
- Prendre le fichier de configuration LINT comme exemple.</para>
-
- <para>Regarder aussi cette note traitant <link linkend="jaz">des
- disques amovibles</link>, ainsi que celle sur <link linkend="disklabel">
- le 'formatage'</link>.</para>
- </sect1>
-
- <sect1>
- <title>Est-ce que FreeBSD supporte JAZ, EZ et autres disques amovibles&nbsp;?</title>
-
- <para>A part la version IDE du lecteur EZ, ce sont tous des
- p&eacute;riph&eacute;riques SCSI, alors pour FreeBSD, ils sont consid&eacute;r&eacute;s comme des
- disques SCSI, et le lecteur IDE EZ est consid&eacute;r&eacute; comme un lecteur IDE.
- </para>
-
- <para><anchor id="jaz">Je ne suis pas s&ucirc;r que FreeBSD supporte
- correctemement un changement de media en cours de fonctionnement.
- Vous devrez bien s&ucirc;r d&eacute;monter le lecteur avant l'&eacute;change, et vous
- assurer que les unit&eacute;s externes soient allum&eacute;es pendant le d&eacute;marrage
- du syst&egrave;me de sorte que FreeBSD puisse les voir.</para>
- </sect1>
-
- <sect1>
- <title> Quelles sont les cartes s&eacute;ries multi-ports prises en charge par FreeBSD&nbsp;?</title>
-
- <para>Une liste est disponible &agrave; la section
- <ulink url="&url.handbook;install.html#INSTALL-HW">p&eacute;riph&eacute;riques divers
- </ulink> du handbook.</para>
-
- <para>A notre connaissance, certaines cartes clone sans marque
- sont connues pour fonctionner, en particulier celles qui se disent
- &ecirc;tre compatibles AST.</para>
-
- <para>Regarder la page de manuel
- <ulink url="http://www.freebsd.org/cgi/man.cgi?sio">sio</ulink> pour
- plus d'informations sur la configuration de telles cartes.</para>
- </sect1>
-
- <sect1>
- <title>J'ai une souris bus inhabituelle. Comment la configurer&nbsp;?</title>
-
- <para>FreeBSD supporte les souris bus et les souris bus InPort de
- constructeurs tels que Microsoft, Logitech et ATI. Le contr&ocirc;leur du bus
- est compil&eacute; dans le noyau GENERIC par d&eacute;faut. Si vous construisez un noyau
- personalis&eacute; avec le contr&ocirc;leur de souris bus, assurez-vous d'avoir bien
- mis la ligne suivante dans le fichier de configuration du noyau&nbsp;:
-
- <programlisting>
-device mse0 at isa? port 0x23c tty irq5 vector mseintr
- </programlisting>
- </para>
-
- <para>La souris bus vient souvent avec une interface d&eacute;di&eacute;e.
- Cela vous permet de mettre une adresse de port et un num&eacute;ro
- d'IRQ autres que ceux donn&eacute;s ci-dessus.
- Reportez-vous au manuel de votre souris et &agrave; la page de manuel
- <ulink url="http://www.freebsd.org/cgi/man.cgi?mse">mse</ulink>
- pour plus d'informations.</para>
- </sect1>
-
- <sect1>
- <title id="ps2mouse">Comment utiliser ma souris PS/2 (``port souris'' ou ``clavier'')&nbsp;?</title>
-
- <para>Si vous utilisez une version de FreeBSD post-2.2.5, le pilote
- n&eacute;cessaire, psm, est inclu et activ&eacute; dans le noyau.
- Le noyau devrait d&eacute;tecter votre souris PS/2 au moment du d&eacute;marrage.</para>
-
- <para>Si vous utilisez une version pr&eacute;c&eacute;dente mais assez r&eacute;cente de
- FreeBSD (2.1.x ou mieux), alors vous pouvez simplement l'activer
- dans le menu de configuration du noyau &agrave; l'installation, ou plus tard
- avec -c &agrave; l'invite du d&eacute;marrage (boot). Il est d&eacute;sactiv&eacute; par d&eacute;faut,
- c'est pourquoi vous aurez &agrave; l'activer explicitement.</para>
-
- <para>Si vous utilisez une version plus ancienne du noyau, alors
- vous aurez &agrave; ajouter la ligne suivante dans la configuration
- de votre noyau, et compiler un nouveau noyau&nbsp;:
-
- <programlisting>
-device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
- </programlisting>
- </para>
-
- <para>Voir la <ulink url="&url.handbook;kernelconfig.html">section du
- Handbook sur la configuration du noyau</ulink> si vous n'avez aucune
- exp&eacute;rience dans la construction d'un noyau.</para>
-
- <para>Un fois que vous aurez un noyau d&eacute;tectant correctement psm0 au
- moment du d&eacute;marrage, assurez vous qu'une entr&eacute;e pour psm0 existe bien
- dans /dev. Vous pouvez le faire en tapant&nbsp;:
-
- <programlisting>
-cd /dev; sh MAKEDEV psm0
- </programlisting>
- </para>
-
- <para>une fois loggu&eacute; sous root.</para>
- </sect1>
-
- <sect1>
- <title id="moused">Puis-je utiliser ma souris en dehors de X Window&nbsp;?</title>
-
- <para>Si vous utilisez le pilote de console par d&eacute;faut, syscons, vous
- pourrez utiliser un curseur souris dans les consoles texte pour couper
- et coller du texte.
- Lancer le d&eacute;mon (de gestion de la) souris&nbsp;: moused, et d&eacute;clencher
- le curseur de souris dans la console virtuelle.
-
- <programlisting>
-moused -p /dev/xxxx -t yyyy
-vidcontrol -m on
- </programlisting>
- </para>
-
- <para>O&ugrave; <filename>xxxx</filename> est le nom du p&eacute;riph&eacute;rique souris et
- <filename>yyyy</filename> le type de protocole pour la souris.
- Voir la page de manuel
- <ulink url="http://www.freebsd.org/cgi/man.cgi?moused">moused</ulink>
- pour les types de protocoles support&eacute;s.</para>
-
- <para> Peut-&ecirc;tre pr&eacute;f&eacute;rez-vous lancer le d&eacute;mon g&eacute;rant la souris au
- moment du d&eacute;marrage du syst&egrave;me.
- Dans la version 2.2.1, positionnez les variables suivantes dans
- <filename>/etc/sysconfig</filename>.
-
- <programlisting>
-mousedtype="yyyy"
-mousedport="xxxx"
-mousedflags=""
- </programlisting>
-
- Dans les versions 2.2.2 et plus, positionnez les variables
- suivantes dans <filename>/etc/rc.conf</filename>.
-
- <programlisting>
-moused_type="yyyy"
-moused_port="xxxx"
-moused_flags=""
- </programlisting>
-
- A partir de la version 2.2.6 de FreeBSD, le d&eacute;mon souris
- est capable de d&eacute;terminer le type de protocole appropri&eacute;
- automatiquement &agrave; moins que votre souris s&eacute;rie ne soit d'un mod&egrave;le
- relativement ancien.
- Sp&eacute;cifiez ``<filename>auto</filename>'' comme protocole pour activer la
- d&eacute;tection automatique.</para>
-
- <para>Quand le d&eacute;mon souris tourne, l'acc&egrave;s &agrave; la souris doit &ecirc;tre
- coordonn&eacute; entre le d&eacute;mon souris et les autres programmes
- comme X-Window. Se r&eacute;f&eacute;rer &agrave; <link linkend="x-and-moused">une autre
- section</link> de ce document.</para>
- </sect1>
-
- <sect1>
- <title>Comment puis-je couper et coller du texte avec ma souris dans ma console texte&nbsp;?</title>
-
- <para>Une fois que vous aurez r&eacute;ussi &agrave; lancer le d&eacute;mon souris
- (voir <link linkend="moused">section pr&eacute;c&eacute;dente</link>), appuyez
- en le maintenant sur le bouton 1 (bouton de gauche) et d&eacute;placez la
- souris afin de s&eacute;lectionner une partie du texte. Puis, appuyez
- (clicquez) sur le bouton 2 (bouton du milieu) ou bouton 3 (bouton
- de droite) pour le coller &agrave; l'endroit du curseur texte.</para>
-
- <para>Dans les versions 2.2.6 et plus, un clic sur le bouton 2 collera
- le texte. Un clic sur le bouton droit ``&eacute;tendra'' la partie de
- texte s&eacute;lectionn&eacute;.
- Si votre souris n'a pas de bouton du milieu, vous
- pouvez l'&eacute;muler ou red&eacute;finir les boutons en utilisant les
- options de la souris. Se reporter &agrave; la page de r&eacute;f&eacute;rence
- <ulink url="http://www.freebsd.org/cgi/man.cgi?moused">moused</ulink>
- pour plus de d&eacute;tails.</para>
- </sect1>
-
- <sect1>
- <title>Ma souris a une roulette et des boutons &eacute;sot&eacute;riques. Puis-je les utiliser sous FreeBSD&nbsp;?</title>
-
- <para> Malheureusement, la r&eacute;ponse est: ``C&agrave; d&eacute;pend''.
- Ces souris avec des fonctionnalit&eacute;s suppl&eacute;mentaires ont
- besoin de pilotes sp&eacute;ciaux dans la majorit&eacute; des cas.
- Alors, &agrave; moins que le pilote de la souris ou que le
- programme utilisateur ait un support sp&eacute;cifique pour cette
- souris, la souris se comportera comme une souris standard 2 ou 3
- boutons.</para>
- </sect1>
-
- <sect1>
- <title>Comment utiliser la souris/trackball/touchpad de mon portable&nbsp;? </title>
-
- <para>Se r&eacute;f&eacute;rer &agrave; <link linkend="ps2mouse">la r&eacute;ponse &agrave; la question
- pr&eacute;c&eacute;dente,</link> ainsi qu'&agrave; cette section sur <link linkend="pao">
- les ordinateurs portables</link>.</para>
- </sect1>
-
- <sect1>
- <title>Quels types de lecteurs de bandes sont support&eacute;s&nbsp;?</title>
-
- <para> FreeBSD supporte les lecteurs de bandes magn&eacute;tique SCSI,
- QIC-36 (avec une interface QIC-02) et QIC-40/80 (bas&eacute;s sur
- l'interface Floppy).
- Ceci inclut les lecteurs 8-mm (connus sous le nom d'Exabyte) et
- lecteurs DAT. Les lecteurs QIC-40/80 sont connus pour &ecirc;tre lents.</para>
-
- <para>Parmi les premiers lecteurs 8-mm, quelques-uns ne sont pas tout &agrave;
- fait compatibles SCSI-2, et peuvent de ce fait ne pas tr&egrave;s bien
- marcher avec FreeBSD.</para>
- </sect1>
-
- <sect1>
- <title>FreeBSD supporte-t-il les changeurs de bandes&nbsp;?</title>
-
- <para>FreeBSD 2.2 g&egrave;re les changeurs SCSI en utilisant le p&eacute;riph&eacute;rique
- <ulink url="http://www.freebsd.org/cgi/man.cgi?ch(4)">ch</ulink> ainsi
- que la commande
- <ulink url="http://www.freebsd.org/cgi/man.cgi?chio" >chio</ulink>.
- Pour avoir plus de d&eacute;tails sur le contr&ocirc;le du changeur, lisez la page du
- manuel <ulink url="http://www.freebsd.org/cgi/man.cgi?chio" >chio</ulink>.
- </para>
-
- <para>Si vous n'utilisez pas
- <ulink url="http://www.freebsd.org/cgi/ports.cgi?amanda">AMANDA</ulink>
- ou un autre produit qui g&egrave;re d&eacute;j&agrave; les changeurs,
- souvenez-vous qu'ils ne savent que d&eacute;placer une bande d'un
- point &agrave; un autre. Par cons&eacute;quent, vous devrez garder une
- trace de l'emplacement dans lequel une bande est mise, ainsi que celui
- o&ugrave; la bande courante devra revenir.</para>
- </sect1>
-
- <sect1>
- <title>Quelles sont les cartes son support&eacute;es par FreeBSD&nbsp;?</title>
-
- <para>FreeBSD prend en charge les cartes son: SoundBlaster,
- SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16,
- AdLib et Gravis UltraSound.
- Il y a aussi un support limit&eacute; pour les cartes MPU-401 et
- compatible MIDI.
- Les cartes conformes aux sp&eacute;cifications Microsoft Sound System
- sont aussi support&eacute;es par l'interm&eacute;diaire du pilote pcm.</para>
-
- <note>
- <para>Ceci n'est valable que pour les sons!
- Ce pilote ne supporte pas les CD-ROMs, SCSI ou joysticks sur
- ces cartes, except&eacute; pour la SoundBlaster.
- L'interface SCSI SoundBlaster et quelques CD-ROM non-SCSI sont
- aussi support&eacute;s.
- Mais vous ne pourrez pas d&eacute;marrer depuis ces p&eacute;riph&eacute;riques.</para>
- </note>
- </sect1>
-
- <sect1>
- <title>Quels sont les cartes r&eacute;seau support&eacute;es par FreeBSD&nbsp;?</title>
-
- <para>Regarder la section <ulink url="&url.handbook;install.html#INSTALL-HW">
- cartes &eacute;thernet</ulink> du handbook pour une liste compl&egrave;te.</para>
- </sect1>
-
- <sect1>
- <title>Je n'ai pas de coprocesseur arithm&eacute;tique. Est-ce un probl&egrave;me&nbsp?</title>
-
- <note>
- <para>Cela ne touche que ceux qui ont un 386/486SX/486SLC -
- toutes les autres machines en ont d&eacute;j&agrave; un int&eacute;gr&eacute; dans la CPU.</para>
- </note>
-
- <para>En r&egrave;gle g&eacute;n&eacute;rale, il n'y a pas d'inconv&eacute;nient, mais il
- existe des circonstances dans lesquelles cela peut causer
- des probl&egrave;mes aussi bien au niveau des performances qu'au niveau de la
- pr&eacute;cision du code d'&eacute;mulation arithm&eacute;tique (voir la section
- <link linkend="emul">sur l'&eacute;mulation FP</link>).
- En particulier, le dessin de courbes sous X sera TRES lent.
- Il est hautement recommand&eacute; d'acheter un coprocesseur arithm&eacute;tique&nbsp;:
- c'est quand m&ecirc;me mieux avec&nbsp;!</para>
-
- <note>
- <para>Certains coprocesseurs math&eacute;matiques sont meilleurs que d'autres.
- Cela nous peine de le dire, mais personne n'a jamais &eacute;t&eacute; licenci&eacute;
- pour avoir achet&eacute; de l'Intel.
- A moins que d'&ecirc;tre s&ucirc;r qu'ils fonctionnent avec FreeBSD,
- m&eacute;fiez-vous des clones&nbsp;!</para>
- </note>
- </sect1>
-
- <sect1>
- <title>Quels autres p&eacute;riph&eacute;riques la version 2.X supporte-t-elle&nbsp;?</title>
- <para>Lire le <ulink url="&url.handbook;install.html#INSTALL-HW">Handbook</ulink>
- pour obtenir la liste des p&eacute;riph&eacute;riques support&eacute;s.</para>
- </sect1>
-
- <sect1>
- <title>FreeBSD supporte-t-il le gestionnaire d'&eacute;nergie de mon portable&nbsp;?</title>
-
- <para>FreeBSD supporte l'APM sur certaines machines.
- Regardez dans le fichier de configuration du noyau
- <filename>LINT</filename>, et cherchez le mot-clef
- <ulink url="http://www.freebsd.org/cgi/man.cgi?apm">APM</ulink>.</para>
- </sect1>
-
- <sect1>
- <title>Solutions de contournement pour des probl&egrave;mes mat&eacute;riels particuliers.</title>
-
- <para>Cette section traite de solutions de contournement pour des
- probl&egrave;mes rencontr&eacute;s par nos utilisateurs sur certains mat&eacute;riels
- particuliers.</para>
- <sect2>
- <title>Les syst&egrave;mes Micron sont suspendus au moment du d&eacute;marrage.</title>
-
- <para> Certaines cartes m&egrave;res Micron ont des impl&eacute;mentations
- non-conformes de PCI BIOS, ce qui peut poser des probl&egrave;mes
- lorsque FreeBSD d&eacute;marre car les p&eacute;riph&eacute;riques PCI ne sont pas
- configur&eacute;s &agrave; l'adresse annonc&eacute;e.</para>
-
- <para>D&eacute;sactivez l'option "Syst&egrave;me d'exploitation Plug and Play"
- dans le BIOS pour contourner ce probl&egrave;me.
- Des compl&eacute;ments d'informations peuvent &ecirc;tre trouv&eacute;s &agrave;
- <ulink url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">"http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"</ulink>
- </para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>J'ai un nouveau contr&ocirc;leur Adaptec, et FreeBSD ne le reconnait pas.</title>
-
- <para> Les nouvelles puces de la s&eacute;rie Adaptec AIC789x sont support&eacute;es
- dans le cadre du CAM SCSI qui d&eacute;marre avec la 3.0.
- Des patches pour la version 2.2-STABLE sont disponibles &agrave;
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/cam/" >
- ftp://ftp.freebsd.org/pub/FreeBSD/cam/ </ulink>
- Une disquette d'amorce avec CAM est disponible &agrave;
- <ulink url="http://www.freebsd.org/~abial/cam-boot/">
- http://www.freebsd.org/~abial/cam-boot/</ulink>.
- Dans les deux cas, lisez le fichier README avant toute chose.</para>
- </sect1>
-
- <sect1>
- <title>J'ai un modem interne plug'n play, et FreeBSD ne le reconnait pas.</title>
-
- <para>Vous devez ajouter l'ID PnP du modem &agrave; la liste des ID PnP dans
- le pilote s&eacute;rie.
- Pour activer le support Plug & Play, il faut compiler un nouveau
- noyau avec <filename>controller pnp0</filename> dans le fichier de
- configuration, puis red&eacute;marrer le syst&egrave;me. Le noyau affichera alors
- l'ID PnP de tous les p&eacute;riph&eacute;riques qu'il trouvera.
- Copier alors l'ID PnP du modem dans le tableau de
- <filename>/sys/i386/isa/sio.c</filename>, vers la ligne 1200.
- Cherchez la cha&icirc;ne de caract&egrave;re "SUP1310" dans la structure
- "siopnp_ids[]" pour trouver le tableau.
- Construire &agrave; nouveau le noyau, installer, red&eacute;marrer, et votre
- modem devrait &ecirc;tre reconnu.</para>
-
- <para>Vous pouvez configurer manuellement les p&eacute;riph&eacute;riques PnP en
- utilisant la commande `pnp' &agrave; la configuration au moment du d&eacute;marrage,
- avec une commande du style&nbsp;:
-
- <programlisting>
-pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
- </programlisting>
- pour afficher le modem.</para>
- </sect1>
-
- <sect1>
- <title>Comment puis-je obtenir l'invite de commande ``boot:'' sur la console s&eacute;rie&nbsp;?</title>
-
- <para>
- <itemizedlist>
- <listitem><para>
- Construire un noyau avec <filename>options COMCONSOLE</filename>.
- </para></listitem>
- <listitem><para>
- Cr&eacute;er un fichier /boot.config avec pour seul contenu
- <filename>-P</filename>
- </para></listitem>
- <listitem><para>
- D&eacute;connecter le clavier du syst&egrave;me.
- </para></listitem>
- </itemizedlist>
- </para>
-
- <para>Redardez <filename>/usr/src/sys/i386/boot/biosboot/README.serial
- </filename> pour plus d'informations.</para>
- </sect1>
-
- <sect1>
- <title>Pourquoi ma carte r&eacute;seau 3Com PCI ne marche pas avec mon Micron&nbsp;?</title>
-
- <para>Certaines cartes m&egrave;res Micron ont une impl&eacute;mentation non-conforme
- du BIOS PCI qui ne configure pas les p&eacute;riph&eacute;riques PCI &agrave; l'adresse
- annonc&eacute;e.
- Cela cause des probl&egrave;mes quand FreeBSD d&eacute;marre.</para>
-
- <para> Pour contourner ce probl&egrave;me, d&eacute;sactiver l'option "Syst&egrave;me
- d'exploitation Plug and Play" dans le BIOS.</para>
-
- <para>Pour plus d'informations sur ce probl&egrave;me, allez voir &agrave; l'URL:
- <ulink url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
- http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron </ulink>
- </para>
- </sect1>
-
- <sect1>
- <title>FreeBSD supporte-t-il les Multiprocesseurs Sym&eacute;triques (SMP)&nbsp;?</title>
-
- <para>SMP n'est support&eacute; que dans la version 3.0-STABLE et les versions
- suivantes.</para>
- </sect1>
-
-</chapter>
diff --git a/fr_FR.ISO8859-1/books/faq/includes.sgml b/fr_FR.ISO8859-1/books/faq/includes.sgml
deleted file mode 100644
index c8681585bf..0000000000
--- a/fr_FR.ISO8859-1/books/faq/includes.sgml
+++ /dev/null
@@ -1,10 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!-- book stores -->
-<!ENTITY isbn.amazon 'http://www.amazon.com/exec/obidos/ASIN'>
diff --git a/fr_FR.ISO8859-1/books/faq/install.sgml b/fr_FR.ISO8859-1/books/faq/install.sgml
deleted file mode 100644
index 2caf17faf8..0000000000
--- a/fr_FR.ISO8859-1/books/faq/install.sgml
+++ /dev/null
@@ -1,860 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<chapter id="install">
- <title>Installation</title>
-
- <sect1>
- <title>Quels fichiers t&eacute;l&eacute;charger pour installer FreeBSD&nbsp;?</title>
-
- <para> Vous n'avez g&eacute;n&eacute;ralement besoin que d'une image-disque, le
-fichier <filename path="floppies/boot.flp">floppies/boot.flp</filename>, que vous copiez sur
-une disquette 1.44 Mo et qui permet de d&eacute;marrer pour
-pouvoir t&eacute;l&eacute;charger le reste (l'installation prend en
-charge votre connexion TCP/IP, votre lecteur de bandes, CDROM, disquettes, partitions DOS, tout ce
-est n&eacute;cessaire pour le reste de l'installation).</para>
-
-
- <para>Si vous avez besoin de t&eacute;l&eacute;charger la distribution par
-vous m&ecirc;me (pour une installation depuis une partition DOS par
-exemple), voici quels sont les fichiers &agrave; r&eacute;cup&eacute;rer:
-<itemizedlist>
- <listitem>
- <para> Tout le r&eacute;pertoire <filename path="bin/*">bin</filename></para>
- </listitem>
- <listitem>
- <para> Tout le r&eacute;pertoire <filename
-path="manpages/*">manpages</filename></para>
- </listitem>
- <listitem>
- <para> Tout le r&eacute;pertoire <filename path="compat*">compat</filename></para>
- </listitem>
- <listitem>
- <para> Tout le r&eacute;pertoire <filename path="doc/*">doc</filename></para>
- </listitem>
- <listitem>
- <para> Tous les fichiers <filename
-path="src/ssys.*">src/ssys.*</filename></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>Vous trouverez les instructions compl&egrave;tes pour cette proc&eacute;dure et un peu
-plus au sujet de l'installation en g&eacute;n&eacute;ral dans la section <ulink url="../handbook/install.html">
-installation de FreeBSD</ulink> du manuel.</para>
- </sect1>
-
-
-
- <sect1>
- <title>A l'aide&nbsp;! L'image-disque de d&eacute;marrage ne tient pas sur une seule disquette&nbsp;!</title>
-
- <para> Une disquette 3,5 pouces (1.44 Mo) peut contenir jusqu'&agrave;
-1474560 octets de donn&eacute;es. La taille du fichier image est exactement
-1474560 octets.</para>
-
- <para>Les erreurs courantes concernant la cr&eacute;ation de la
-disquette de d&eacute;marrage sont les suivantes&nbsp;:
-<itemizedlist>
- <listitem>
- <para> Vous n'avez pas t&eacute;l&eacute;charg&eacute; l'image-disque en mode
-<command>binary</command> en utilisant FTP</para>
-
- <para>Certains clients FTP mettent par d&eacute;faut le transfert en mode
-<emphasis>ASCII</emphasis>, et essayent de changer le
-caract&egrave;re de fin de ligne re&ccedil;u pour correspondre aux conventions utilis&eacute;es
-par le syst&egrave;me client. Cela alt&egrave;re presque in&eacute;vitablement le fichier
-image. V&eacute;rifiez la taille du fichier image t&eacute;l&eacute;charg&eacute;: si elle n'est pas
-<emphasis>exactement </emphasis> la m&ecirc;me que sur le
-serveur, alors le processus de t&eacute;l&eacute;chargement est suspect.</para>
-
-<para>Une solution simple&nbsp;: tapez <command>binary</command> &agrave; l'invite FTP,
-apr&egrave;s la connexion sur le serveur et avant le d&eacute;marrage du
-t&eacute;l&eacute;chargement de l'image.</para>
- </listitem>
- <listitem>
-
- <para> Vous avez utilis&eacute; la commande DOS
-<command>copy</command> (ou une commande &eacute;quivalente) pour transf&eacute;rer
-l'image de d&eacute;marrage sur la disquette.</para>
-
- <para> Les programmes comme <command>copy</command> ne
-fonctionnent pas correctement avec les images, car ils ne
-peuvent cr&eacute;er une disquette de d&eacute;marrage. L'image est le contenu exact de la disquette,
-piste &agrave; piste, et ne peut &ecirc;tre
-copi&eacute;e sur la disquette comme un fichier normal. Vous devez la transf&eacute;rer sur la
-disquette en mode brut {raw} en utilisant les outils de bas niveau {low-level} <command>fdimage</command>
-ou <command>rawrite</command>. Ces outils sont d&eacute;crits dans la section <ulink
-url="../handbook/install.html">installation de FreeBSD</ulink> du manuel.</para>
- </listitem>
- </itemizedlist></para>
- </sect1>
-
-
- <sect1>
- <title>O&ugrave; sont les instructions pour installer FreeBSD&nbsp;?</title>
-
- <para>Les instructions d'installation de FreeBSD se
-trouvent dans la section <ulink url="../handbook/install.html">
-installation de FreeBSD</ulink> du manuel.
-</para>
- </sect1>
-
-
- <sect1>
- <title>De quoi ai-je besoin pour faire tourner FreeBSD&nbsp;?</title>
-
- <para> Vous avez besoin d'un PC 386 ou mieux, avec 5Mo ou plus de m&eacute;moire vive (RAM)
-et au moins 60Mo de disque dur. Il suffit d'une carte graphique MDA,
-mais pour utiliser X11R6, une carte video VGA ou mieux est n&eacute;cessaire.</para>
- <para>Voir aussi la section <ulink url="hardware.html">
-compatibilit&eacute; mat&eacute;rielle</ulink>.</para>
- </sect1>
-
-
-
- <sect1>
- <title>Je n'ai que 4Mo de m&eacute;moire vive. Puis-je installer FreeBSD&nbsp;?</title>
-
- <para> FreeBSD 2.1.7 est la derni&egrave;re version de FreeBSD que l'on
-peut installer sur des syst&egrave;mes avec 4Mo de m&eacute;moire
-vive. Les nouvelles versions de FreeBSD, comme la version 2.2, ont
-besoin d'au moins 5Mo de m&eacute;moire vive pour &ecirc;tre install&eacute;es sur un nouveau syst&egrave;me.</para>
-
- <para>Toutes les versions de FreeBSD, y compris la version 3.0,
-peuvent fonctionner avec 4Mo de m&eacute;moire
-vive, mais ne peuvent pas ex&eacute;cuter le programme d'installation en 4Mo.
- Vous pouvez ajouter de la m&eacute;moire vive suppl&eacute;mentaire pour le processus
-d'installation, si vous voulez, et quand le syst&egrave;me
-fonctionne, revenir &agrave; 4Mo. Ou vous pouvez placer votre disque sur un syst&egrave;me
-disposant de plus de 4Mo, effectuer l'installation et l'&eacute;changer &agrave; nouveau.</para>
-
- <para>Il y a malgr&eacute; tout des situations dans lesquelles
-FreeBSD 2.1.7 ne peut s'installer avec 4Mo. Pour &ecirc;tre exact&nbsp;: cette
-version de n'installe pas avec 640Ko de m&eacute;moire de base et 3Mo de
-m&eacute;moire &eacute;tendue. Si votre carte m&egrave;re peut
-r&eacute;allouer quelques blocs m&eacute;moire <quote>perdue</quote>
-hors de la r&eacute;gion entre 640Ko et 1Mo alors vous pourrez installer FreeBSD
-2.1.7</para>
-
- <para> Regardez dans la configuration de votre BIOS
-si vous disposez d'un option <quote>remap</quote>. Si oui, activez la. Vous devez
-aussi d&eacute;sactiver la copie miroir de la m&eacute;moire ROM.</para>
-
- <para>Il est plus simple d'augmenter la m&eacute;moire vive &agrave; plus de
-4Mo pour l'installation, construire un noyau contenant juste les options dont vous avez
-besoin, puis revenir &agrave; une configuration avec 4Mo.</para>
-
- <para>Vous pouvez dans le pire des cas, installer la version
-2.0.5 et effectuer une mise &agrave; jour de votre syst&egrave;me en version
-2.1.7 avec l'option <option>upgrade</option> du programme d'installation de la 2.1.7.</para>
-
- <para>Apr&egrave;s l'installation, si vous construisez un noyau sur mesure,
-cela tournera sans probl&egrave;me avc 4Mo. Certaines personnes
-ont m&ecirc;me r&eacute;ussi a d&eacute;marrer sur un syst&egrave;me disposant de 2Mo de m&eacute;moire
-vive (bien s&ucirc;r le syst&egrave;me fut compl&eacute;tement inutilisable&nbsp;:-)).</para>
- </sect1>
-
- <sect1>
- <title>Comment cr&eacute;er ma propre disquette d'installation&nbsp;?</title>
-
- <para>Actuellement il n'y a pas de solution pour cr&eacute;er *juste*
-une disquette d'installation personnalis&eacute;e. Vous devez cr&eacute;er une
-distribution compl&egrave;te, qui contiendra votre disquette
-d'installation. Le code se trouvant dans
-<filename>/usr/src/release/floppies/Makefile</filename> peut
-laisser supposer que vous pouvez cr&eacute;er votre disquette,
-mais ce n'est pas le cas actuellement.</para>
-
- <para>Pour cr&eacute;er votre propre version, suivez les instructions
-se trouvant <ulink url="custrel">l&agrave;</ulink>.</para>
- </sect1>
-
-
- <sect1>
- <title>Puis-je avoir plus d'un syst&egrave;me d'exploitation sur mon PC&nbsp;?</title>
-
- <para>Voyez la page du tutoriel sur la <ulink
-url="&url.tutorials;multios/index.html">cohabitation de plusieurs syst&egrave;mes d'exploitation</ulink>.</para>
- </sect1>
-
-
-
- <sect1>
- <title>Est-ce que Windows 95 peut coexister avec FreeBSD&nbsp;? </title>
-
- <para> Installez en premier Windows 95, puis FreeBSD. Le
-gestionnaire de d&eacute;marrage de FreeBSD, vous permet de d&eacute;marrer
-indiff&eacute;remment sous Windows 95 ou FreeBSD. Si vous installez Windows 95 en second,
-il surchargera votre gestionnaire de d&eacute;marrage sans m&ecirc;me
-poser une question. Si cela arrive, voir la section suivante.</para>
-
- </sect1>
-
- <sect1>
- <title>Windows 95 a effac&eacute; mon gestionnaire de d&eacute;marrage&nbsp;! Comment le r&eacute;cup&eacute;rer&nbsp;?</title>
-
- <para> Vous pouvez r&eacute;-installer le gestionnaire de d&eacute;marrage de
-FreeBSD de deux mani&egrave;res&nbsp:
-
-<itemizedlist>
- <listitem>
- <para>Sous DOS, allez dans le r&eacute;pertoire
-<filename>tools</filename> de votre distribution FreeBSD et
-cherchez un programme <filename>bootinst.exe</filename>. Il
-vous l'ex&eacute;cutez ainsi:</para>
-
-<informalexample>
-<screen>
-c:\tools>bootinst.exe boot.bin
-</screen>
-</informalexample>
-
-
-
- <para> et le gestionnaire de d&eacute;marrage sera
-r&eacute;-install&eacute;</para>
- </listitem>
-
- <listitem>
- <para>D&eacute;marrez &agrave; nouveau sous FreeBSD avec la disquette
-de d&eacute;marrage et allez dans le menu <literal>Custom installation</literal>.
-Choisissez <literal>Partition</literal> S&eacute;lectionnez le disque devant contenir
-le gestionnaire de d&eacute;marrage (probablement le premier) et
-quand vous arrivez dans l'&eacute;diteur de partition, la premi&egrave;re chose &agrave; faire
-(c'est &agrave; dire n'effectuer aucun changement) s&eacute;lectionnez <literal>(W)rite</literal>. Vous serez
-interrog&eacute; pour confirmation, r&eacute;pondez <literal>yes</literal>, et quand vous obtenez
-le menu de s&eacute;lection du gestionnaire de
-d&eacute;marrage, assurez vous de bien s&eacute;lectionner <literal>Boot manager</literal>. Cela
-re-&eacute;crit le gestionnaire de d&eacute;marrage sur le disque. Ensuite
-quittez le programme d'installation et red&eacute;marrez &agrave; partir du disque dur normalement.</para>
- </listitem>
- </itemizedlist>
-</para>
- </sect1>
-
-
-
- <sect1>
- <title>Peut-on installer FreeBSD sur un disque comportant des secteurs d&eacute;fectueux&nbsp;?</title>
-
- <para>La gestion des secteurs d&eacute;fectueux (voir la commande <ulink
-url="http://www.freebsd.org/cgi/man.cgi?bad144">bad144</ulink>) de
-FreeBSD n'est pas fiable &agrave; 100%&nbsp;; il serait plus juste de dire
-que si vous disposez d'un disque IDE ou ESDI avec &eacute;normement de <ForeignPhrase>bad
-blocks</ForeignPhrase>, alors FreeBSD n'est pas
-pour vous&nbsp;! En fait FreeBSD tourne sur des centaines de syst&egrave;mes &agrave; base de disques IDE, il vaut
-mieux essayer avant de vous d&eacute;courager.</para>
-
- <para>Si vous avez un disque SCSI comportant des secteurs d&eacute;fectueux,
-voyez <ulink url="#awre">cette r&eacute;ponse</ulink></para>
- </sect1>
-
-
- <sect1>
- <title>Il se passe des choses &eacute;tranges lorsque je d&eacute;marre depuis la disquette d'installation&nbsp;!</title>
-
- <para>Si vous d&eacute;tectez des choses comme&nbsp;: un blocage de la
-machine, un red&eacute;marrage inopin&eacute; de votre syst&egrave;me avec la disquette
-d'installation, posez vous les 3 questions suivantes&nbsp:</para>
-
- <para><orderedlist>
- <listitem>
- <para>Avez-vous utilis&eacute; une disquette neuve, sans erreurs
-(pr&eacute;f&eacute;rez une disquette sortie de la bo&icirc;te plut&ocirc;t qu'une disquette provenant
-du dernier magazine oubli&eacute; sous votre lit depuis trois ans)&nbsp;?</para>
- </listitem>
- <listitem>
- <para>Avez vous t&eacute;l&eacute;charg&eacute; l'image en mode binaire (ne
-vous offusquez pas, m&ecirc;me les meilleurs d'entre nous,
-ont t&eacute;l&eacute;charg&eacute; des fichiers en mode ASCII au moins une fois)&nbsp;? </para>
- </listitem>
- <listitem>
- <para>Si vous utilisez des syst&egrave;mes d'exploitation r&eacute;cents
-comme Windows 95 ou Windows NT, avez vous arr&eacute;t&eacute; le syst&egrave;me et
-red&eacute;marr&eacute; en DOS simple et honn&ecirc;te&nbsp;? Il semble que ces syst&egrave;mes peuvent interf&eacute;rer
-avec des programmes
-qui &eacute;crivent directement sur le mat&eacute;riel, comme c'est le cas des programmes de
-cr&eacute;ation de disquette&nbsp;; m&ecirc;me en l'ex&eacute;cutant dans une fen&ecirc;tre DOS
-de windows cela peut causer ces probl&egrave;mes.</para>
- </listitem>
- </orderedlist></para>
-
- <para>Certaines informations mentionnant que Netscape
-pose des probl&egrave;mes en t&eacute;l&eacute;chargeant l'image de la disquette de
-d&eacute;marrage, donc utilisez un client FTP diff&eacute;rent si vous
-pouvez.</para>
- </sect1>
-
-
- <sect1>
- <title>Je n'arrive pas &agrave; installer &agrave; partir de la bande</title>
-
- <para>Si vous installez la version 2.1.7R &agrave; partir d'une
-bande, vous devez cr&eacute;er la bande en utilisant un facteur de blocage de
-10 (5120 octets). Le facteur de blocage par d&eacute;faut de <filename>tar</filename> est 20 (10240
-octets), et les bandes cr&eacute;es en utilisant cette valeur par d&eacute;faut
-ne peuvent pas &ecirc;tre utilis&eacute;es pour installer la
-version 2.1.7R&nbsp;; avec ce type de bande vous obtiendrez une erreur disant
-que la taille des enregistrements est trop grande.</para>
- </sect1>
-
-
- <sect1>
- <title>Connecter deux syst&egrave;mes FreeBSD par les ports parall&egrave;le (PLIP)</title>
-<para>Trouvez un c&acirc;ble "laplink". V&eacute;rifiez que les deux ordinateurs
-ont un noyau avec le support de pilote <filename>lpt</filename>.</para>
-
- <programlisting>
-
- $ dmesg | grep lp
- lpt0 at 0x378-0x37f irq 7 on isa
- lpt0: Interrupt-driven port
- lp0: TCP/IP capable interface
- </programlisting>
-
-<para>Installez le c&acirc;ble "laplink" sur les ports parall&egrave;lle.</para>
-
-<para>Configurez les param&egrave;tres de l'interface r&eacute;seau pour
-lp0 des deux c&ocirc;t&eacute;s en tant que <username>root</username>.</para>
-
-<para>Par exemple, si vous voulez connecter l'ordinateur max avec moritz&nbsp:</para>
-
- <programlisting>
- max <-----> moritz
-IP Address 10.0.0.1 10.0.0.2
- </programlisting>
-
-<para> sur max, d&eacute;marrez&nbsp: </para>
-
-
- <programlisting>
- # ifconfig lp0 10.0.0.1 10.0.0.2
- </programlisting>
-
-<para> sur moritz, d&eacute;marrez&nbsp: </para>
-
-
- <programlisting>
- # ifconfig lp0 10.0.0.2 10.0.0.1
- </programlisting>
-
-<para>C'est tout&nbsp! Lisez aussi les manpages
-<citerefentry><refentrytitle>lp</refentrytitle><manvolnum>4</manvolnum></citerefentry> and
-<citerefentry><refentrytitle>lpt</refentrytitle><manvolnum>4</manvolnum></citerefentry>.</para>
-
-
-<para>Vous devez aussi ajouter les deux adresse dans <filename>/etc/hosts</filename>&nbsp;:</para>
-
-
- <programlisting>
- 127.0.0.1 localhost.my.domain localhost
- 10.0.0.1 max.my.domain max
- 10.0.0.2 moritz.my.domain moritz
- </programlisting>
-
-<para>Pour v&eacute;rifier le bon fonctionnement faire&nbsp;:</para>
-
-<para>sur max&nbsp;:</para>
-
-
- <programlisting>
-$ ifconfig lp0
-lp0: flags=8851&lt;UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
- inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
-
-
-$ netstat -r
-Routing tables
-
-Internet:
-Destination Gateway Flags Refs Use Netif Expire
-moritz max UH 4 127592 lp0
-
-
-$ ping -c 4 moritz
-PING moritz (10.0.0.2): 56 data bytes
-64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
-64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
-64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
-64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
-
---- moritz ping statistics ---
-4 packets transmitted, 4 packets received, 0% packet loss
-round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
-
- </programlisting>
-
- </sect1>
-
-
- <sect1>
- <title>Peut-on effectuer une installation par le port parall&egrave;le (PLIP)</title>
-
- <para> Connectez les deux ordinateurs avec un cable parall&egrave;le "Laplink"</para>
- <figure>
- <title>Cable parall&egrave;le</title>
-<informalexample>
-<screen>
- +----------------------------------------+
- |A-name A-End B-End Descr. Port/Bit |
- +----------------------------------------+
- |DATA0 2 15 Data 0/0x01 |
- |-ERROR 15 2 1/0x08 |
- +----------------------------------------+
- |DATA1 3 13 Data 0/0x02 |
- |+SLCT 13 3 1/0x10 |
- +----------------------------------------+
- |DATA2 4 12 Data 0/0x04 |
- |+PE 12 4 1/0x20 |
- +----------------------------------------+
- |DATA3 5 10 Strobe 0/0x08 |
- |-ACK 10 5 1/0x40 |
- +----------------------------------------+
- |DATA4 6 11 Data 0/0x10 |
- |BUSY 11 6 1/0x80 |
- +----------------------------------------+
- |GND 18-25 18-25 GND - |
- +----------------------------------------+
-</screen>
-</informalexample>
- </figure>
-
- <para>Voir aussi <ulink url="#pao">cette note</ulink> sur la page de FreeBSD pour les portables</para>
- </sect1>
-
-
- <sect1>
- <title id="geometry">Quelle g&eacute;om&eacute;trie dois-je utiliser pour un disque&nbsp;?</title>
-
- <para>(Par le mot "g&eacute;om&eacute;trie" d'un disque, nous pensons aux
-nombres de cylindres, t&ecirc;tes et secteurs par pistes sur un disque&nbsp;- Nous
-dirons par la suite C/H/S. C'est de cette fa&ccedil;on que le BIOS des PC
-arrive &agrave; &eacute;crire ou lire une zone du disque).</para>
-
- <para>Cela peut pr&eacute;ter &agrave; confusion pour diff&eacute;rentes raisons.
-Premi&egrave;rement, la <emphasis>g&eacute;om&eacute;trie physique</emphasis> d'un disque
-SCSI ne veut rien dire, de la fa&ccedil;on dont FreeBSD utilise les blocs
-disques. En fait, on ne peut parler de <quote>la</quote> g&eacute;om&eacute;trie physique,
-la densit&eacute; des secteurs variant sur le disque -ce que les
-fabricants appellent la <quote>vraie</quote> g&eacute;om&eacute;trie physique, c'est la g&eacute;om&eacute;trie
-qu'ils ont d&eacute;t&eacute;rmin&eacute;, pour avoir le moins d'espace perdu.
-Pour les disques IDE, FreeBSD voit en terme de C/H/S, mais tous les
-disques r&eacute;cents convertissent cela en blocs eux-m&ecirc;mes.</para>
-
- <para>Tout cela est, en fait, la <emphasis>g&eacute;om&eacute;trie logique
-</emphasis>&nbsp; la r&eacute;ponse que le BIOS re&ccedil;oit lorsqu'il demande <quote>quelle
-est votre g&eacute;om&eacute;trie&nbsp;?</quote> et qu'il utilise pour acc&eacute;der au disque. Comme
-FreeBSD utilise le BIOS pour d&eacute;marrer, il est tr&egrave;s important qu'elle
-soit juste. En particulier, si vous avez plus d'un syst&egrave;me
-d'exploitation sur votre disque, ils doivent &ecirc;tre d'accord
-sur la g&eacute;om&eacute;trie, sinon vous rencontrerez de graves probl&egrave;mes
-au d&eacute;marrage du syst&egrave;me.</para>
-
- <para>Pour les disques SCSI, la g&eacute;om&eacute;trie &agrave; utiliser d&eacute;pend
-du support de translation &eacute;tendu activ&eacute; sur votre contr&ocirc;leur
-(ou encore appel&eacute; <quote>support pour les disques DOS &gt;1Go</quote> ou
-similaire). S'il n'est pas activ&eacute;, utilisez N cylindres, 64
-t&ecirc;tes et 32 secteurs par pistes, ou 'N' est la capacit&eacute; du disque en
-Mo. Par exemple, pour un disque de 2Go vous devez utiliser 2048
-cylindres, 64 t&ecirc;tes et 32 secteurs par piste.</para>
-
- <para>Si cette option est active (c'est le cas la plupart du temps
-pour permettre de passer outre certaines limitations de MSDOS) et que
-le disque a une capacit&eacute; de plus de 1Go, utilisez M cylindres, 63 t&ecirc;tes
-(et *pas* 64), et 255 secteurs par piste, o&ugrave; M correspond &agrave; la capacit&eacute;
-en Mo divis&eacute; par 7.844238 (!). Donc, en prenant un disque de 2Go nous
-obtenons 261 cylindres, 63 t&ecirc;tes et 255 secteurs par piste.</para>
-
- <para>Si vous n'&ecirc;tes pas s&ucirc;r de point, ou si
-FreeBSD n'arrive pas &agrave; d&eacute;tecter la g&eacute;om&eacute;trie correctement au moment de
-l'installation, la fa&ccedil;on la plus simple de faire, est de cr&eacute;er
-une petite partition DOS sur le disque. La g&eacute;om&eacute;trie correcte sera alors
-d&eacute;tect&eacute;e (et vous pourrez toujours retirer la partition DOS dans
-l'&eacute;diteur de partitions si vous ne voulez pas la garder ou conservez la
-pour la programmation de cartes r&eacute;seau).</para>
-
- <para>Une autre solution est d'utiliser un outil disponible librement distribu&eacute; avec
-FreeBSD appel&eacute; <filename>pfdisk.exe</filename> (il se trouve dans
-le r&eacute;pertoire <filename>tools</filename> du CDROM de FreeBSD ou sur
-les sites ftp), qui permet de voir quelle g&eacute;om&eacute;trie utilisent les
-autres syst&egrave;mes sur ce disque. Vous pourrrez ensuite
-entrer cette g&eacute;om&eacute;trie dans l'&eacute;diteur de partitions.</para>
- </sect1>
-
-
- <sect1>
- <title>Y a-t-il des restrictions sur la fa&ccedil;on de partitionner le disque&nbsp;?</title>
-
- <para>Oui. Vous devez vous assurer que la partition
-<quote><filename>/</filename></quote> <quote><filename>{root}</filename></quote> se trouve dans les 1024 premiers cylindres,
-pour permettre au BIOS de trouver le noyau. (Notez que c'est une
-limitation d&ucirc;e au BIOS des PC et non pas &agrave; FreeBSD).</para>
-
- <para>Dans le cas d'une disque SCSI, cela implique que la
-partition <quote><filename>/</filename></quote> <quote><filename>{root}</filename></quote> soit dans les 1024 premiers Mo (ou
-dans les 4096 premiers si la translation est en place - voir la
-question pr&eacute;c&eacute;dente). Pour un disque IDE, il faut qu'elle se trouve
-dans les 504 premiers Mo.</para>
- </sect1>
-
-
-
- <sect1>
- <title>A propos des gestionnaires de disque&nbsp;? Ou bien, j'ai un disque de grande capacit&eacute;&nbsp!</title>
-
- <para>FreeBSD reconnait le gestionnaire "Ontrack Disk Manager" et le tol&egrave;re.
-Les autres gestionnaires de disque ne sont pas support&eacute;s.</para>
-
- <para>Si vous voulez utiliser le disque uniquement avec FreeBSD,
-vous n'avez pas besoin de gestionnaire de disque. Configurez
-simplement le disque pour utiliser le maximum de place reconnue par le
-BIOS (la plupart du temps 504Mo), et FreeBSD trouvera de lui m&ecirc;me la
-capacit&eacute; de votre disque. Si vous utilisez un vieux disque avec
-un controlleur MFM, vous devrez donner explicitement &agrave; FreeBSD le
-nombre de cylindres &agrave; utiliser.</para>
-
- <para>Si vous voulez utiliser le disque avec FreeBSD et un autre
-syst&egrave;me d'exploitation, vous n'aurez pas besoin d'un gestionnaire de
-disque: assurez vous que la partition de d&eacute;marrage de FreeBSD et
-les tranches pour les autres syst&egrave;mes d'exploitation se trouvent dans
-les 1024 premiers cylindres. Si vous &ecirc;tes prudent, une partition de d&eacute;marrage de 20Mo doit
-suffire.</para>
- </sect1>
-
-
- <sect1>
- <title id="missingos">Lors du d&eacute;marrage de FreeBSD j'obtiens "Missing Operating System"</title>
- <para>C'est le sympt&ocirc;me classique o&ugrave; FreeBSD et DOS, ou un autre
-syst&egrave;me d'exploitation, sont en conflit &agrave; propos de la <anchor
-id="geometry2"> g&eacute;om&eacute;trie du disque. Vous devez alors
-r&eacute;installer FreeBSD, en faisant attention &agrave; toutes les informations
-qui vous sont pr&eacute;sent&eacute;es.</para>
-
- </sect1>
-
- <sect1>
- <title>Je ne peux pas aller plus loin que le message `F?' du gestionnaire de d&eacute;marrage.</title>
- <para>Ceci est un autre sympt&ocirc;me du probl&egrave;me d&eacute;crit &agrave; la
-question pr&eacute;c&eacute;dente. La g&eacute;om&eacute;trie trouv&eacute;e par le BIOS et celle de
-FreeBSD ne sont pas les m&ecirc;mes. Si votre contr&ocirc;leur ou votre
-BIOS supporte la translation de cylindres (souvent indiqu&eacute;e comme "Support des disques >1Go"),
-essayez de changer les
-param&egrave;tres et r&eacute;installez FreeBSD.</para>
- </sect1>
-
- <sect1>
- <title id="bigram">Je dispose de plus de 16Mo de RAM. Est-ce que cela peut poser un probl&egrave;me&nbsp;?</title>
- <para>Mis &agrave; part les probl&egrave;mes de performances, non. FreeBSD 2.X
-inclus des <quote>bounce buffers</quote> permettant &agrave; votre bus principal d'acc&eacute;der
-&agrave; plus de 16Mo de m&eacute;moire. (Notez que cela n'est vrai que pour les
-p&eacute;riph&eacute;riques ISA, et quelques p&eacute;riph&eacute;riques EISA
-ou VLB).</para>
-
- <para>Voyez aussi la section parlant des ordinateurs
-<ulink url="#reallybigram">plus de 64Mo de RAM</ulink>, si vous avez autant de m&eacute;moire, ou si vous
-utilisez un ordinateur Compaq ou un autre BIOS qui donne de mauvaises
-informations sur la m&eacute;moire disponible.</para>
- </sect1>
-
- <sect1>
- <title>Dois-je installer tous les sources&nbsp;?</title>
-
- <para>La plupart du temps, non. Malgr&eacute; tout, nous vous
-conseillons fortement d'installer, au minimum, les sources de
-base (<filename>sbase</filename>) ainsi que les sources du noyau
-(<filename>ssys</filename>). Il n'y a rien dans le syst&egrave;me qui
-n&eacute;cessite la pr&eacute;sence des sources, sauf si vous d&eacute;sirez <ulink
-url="http://www.freebsd.org/cgi/man.cgi?config">reconfigurer</ulink>
-le noyau du syst&egrave;me. A l'exception du noyau, notre structure de
-compilation est faite pour vous permettre de visualiser les sources
-(m&ecirc;me en lecture seule) et de construire alors de nouveaux
-binaires. (En raison de la restriction des sources du noyau, nous vous
-recommandons de monter les sources ailleurs que dans
-<filename>/usr/src</filename> en cr&eacute;eant les liens symboliques
-appropri&eacute;s permettant de dupliquer la structure compl&egrave;te des
-sources).</para>
-
- <para>En ayant les sources &agrave; votre disposition et en sachant
-comment l'on construit un syst&egrave;me avec, cela permettra d'avoir une fa&ccedil;on
-tr&egrave;s simple pour mettre &agrave; jour votre syst&egrave;me vers les prochaines
-versions de FreeBSD.</para>
-
- <para>Pour n'installer qu'une partie des sources, utilisez le menu <literal>
-Custom</literal> quand vous &ecirc;tes dans le menu
-<literal>Distributions</literal> du programme d'installation. Le script
-<filename>src/install.sh</filename> peut installer aussi certains &eacute;l&eacute;ments des
-sources, en fonction des arguments que vous lui passez.</para>
-
- </sect1>
-
- <sect1>
- <title>Suis-je oblig&eacute; de construire un nouveau noyau&nbsp;?</title>
-
- <para>Construire un nouveau noyau, &eacute;tait encore, il y a quelque
-temps, une &eacute;tape &agrave; peu pr&egrave;s obligatoire apr&egrave;s l'installation de FreeBSD, mais les
-nouvelles versions ont b&eacute;n&eacute;fici&eacute; d'un utilitaire de configuration du
-noyau plus sympathique. Au d&eacute;marrage de FreeBSD et apr&egrave;s l'invite de d&eacute;marrage
-(<prompt>boot:</prompt>) utilisez le param&egrave;tre <option>-c</option> et vous aurez alors acc&egrave;s au
-menu de configuration visuel, qui vous permet de configurer les
-param&egrave;tres de la plupart des cartes ISA.</para>
-
-<para>Il est encore recommand&eacute; construire un nouveau noyau
-contenant juste les pilotes dont avez besoin, seulement pour
-&eacute;conomiser un peu de RAM, mais ce n'est plus une exigence stricte pour la
-plupart des syst&egrave;mes.</para>
-
- </sect1>
- <sect1>
- <title>Je r&eacute;side en dehors des Etats-Unis. Puis-je utiliser le DES&nbsp;?</title>
- <para>Si la m&eacute;thode de cryptage <emphasis>DES</emphasis> ne vous est pas absolument n&eacute;cessaire, alors vous
-pouvez utiliser le syst&egrave;me de cryptage fourni par d&eacute;faut avec FreeBSD
-et qui vous apporte une bien meilleure s&eacute;curit&eacute;, sans aucune
-restriction d'exportation. Le cryptage des mots de passe par d&eacute;faut de FreeBSD 2.0 est
-maintenant bas&eacute; sur <emphasis>MD5</emphasis>, qui est plus difficile &agrave; casser que <emphasis>DES</emphasis>, avec un
-outil automatis&eacute; en raison de sa forte demande en temps de calcul, et qui
-permet aussi d'utiliser des mots de passe plus longs. La seule raison
-pour laquelle vous ne pouvez pas utiliser le cryptage bas&eacute; sur
-<emphasis>MD5</emphasis> est, si vous d&eacute;sirez utiliser la
-m&ecirc;me entr&eacute;e du fichier des mots de passe sur des syst&egrave;mes FreeBSD et
-non-FreeBSD.</para>
- <para>Comme l'algorithme de cryptage <emphasis>DES</emphasis> ne peut pas &ecirc;tre
-l&eacute;galement export&eacute; en dehors des Etats-Unis, tout utilisateur non
-am&eacute;ricain ne doit pas t&eacute;l&eacute;charger les logiciels l'incluant (se
-trouvant dans le r&eacute;pertoire <filename>sec</filename> des sites FTP
-am&eacute;ricains)</para>
- <para>Il y a cependant une librairie de remplacement disponible,
-libcrypt, bas&eacute;e sur des sources &eacute;crit en Australie par David Burren.
-Le code est maintenant disponible sur certains sites ftp miroirs en
-dehors des Etats-Unis. Les sources, ainsi que les binaires des
-programmes l'utilisant peuvent &ecirc;tre t&eacute;l&eacute;charg&eacute;s sur les sites ftp
-suivants:</para>
- <para><itemizedlist>
- <listitem>
- <para>Afrique du Sud:
-<itemizedlist>
- <listitem>
- <para>ftp://ftp.internat.freebsd.org/pub/FreeBSD</para>
- </listitem>
- <listitem>
- <para>ftp://storm.sea.uct.ac.za/pub/FreeBSD</para>
- </listitem>
-
- </itemizedlist>
-</para>
- </listitem>
- <listitem>
- <para>Br&eacute;sil:
-<itemizedlist>
- <listitem>
- <para>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</para>
- </listitem>
- </itemizedlist>
-</para>
- </listitem>
- <listitem>
- <para>Finlande:
- <itemizedlist>
- <listitem>
- <para>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</para>
- </listitem>
- </itemizedlist>
-</para>
- </listitem>
- </itemizedlist>
-</para>
- <para>Cette distribution non-US peut &ecirc;tre directement utilis&eacute;e &agrave; la
-place de la distribution am&eacute;ricaine. Ce paquetage s'installe de la m&ecirc;me
-fa&ccedil;on que le paquetage am&eacute;ricain (regardez les notes d'installation du
-paquetage pour plus de d&eacute;tails). Si vous d&eacute;sirez installer le cryptage
-<emphasis>DES</emphasis>, vous devez l'installer le plus t&ocirc;t possible, avant l'installation
-de tout autre logiciel.</para>
- <para>Les utilisateurs ne r&eacute;sidant pas aux Etats-Unis ne doivent
-t&eacute;l&eacute;charger aucun programme de cryptage sur un site am&eacute;ricain. Cela
-pourrait entrainer, pour les responsables du site depuis lequel le
-logiciel est t&eacute;l&eacute;charg&eacute;, de graves probl&egrave;mes juridiques.</para>
-
- <para>Une distribution non-US de Kerberos est aussi en
-cours de d&eacute;veloppement, et les versions courantes peuvent
-g&eacute;n&eacute;ralement &ecirc;tre obtenues depuis un site FTP anonyme
-<ulink url="ftp://braee.ru.ac.za">braae.ru.ac.za</ulink></para>
-
- <para>Il existe aussi une liste de messagerie discutant de tous les
-logiciels non-US de cryptage. Pour plus d'informations,
-envoyez un email contenant le mot "help" dans le corps du message &agrave;
-<ulink
-url="mailto:majordomo@braae.ru.ac.za">&lt;majordomo@braae.ru.ac.za&gt;</ulink></para>
-
- </sect1>
-
- <sect1>
- <title>La disquette de d&eacute;marrage se bloque sur le message "Probing Devices..."</title>
- <para> Si vous disposez d'un disque ZIP ou JAZ, retirez-le et
-recommencez. La disquette d'installation a des probl&egrave;mes avec ce genre
-de disque. Une fois le syst&egrave;me install&eacute;, vous pouvez reconnecter le
-disque. Si tout va bien ce probl&egrave;me sera fix&eacute; dans une version ult&eacute;rieure.</para>
-
- </sect1>
-
- <sect1>
- <title>J'obtiens le message "panic: cant mount root" lors du red&eacute;marrage de mon syst&egrave;me apr&egrave;s l'installation.</title>
-
- <para>Cette erreur indique un conflit entre les blocs de
-d&eacute;marrage du syst&egrave;me et la connaissance du noyau sur les disques.
-Cette erreur arrive fr&eacute;quemment dans le cas d'un syst&egrave;me disposant de
-deux disques IDE, avec chaque disque install&eacute; en ma&icirc;tre ou p&eacute;riph&eacute;rique unique sur des
-contr&ocirc;leurs s&eacute;par&eacute;s, avec FreeBSD install&eacute; sur le contr&ocirc;leur IDE secondaire.
-Le programme de d&eacute;marrage pense que le syst&egrave;me est install&eacute; sur wd1
-(le second disque vu par le BIOS) alors que le noyau affecte wd2 au
-premier disque du deuxi&egrave;me contr&ocirc;leur. Apr&egrave;s le test de tous les
-p&eacute;riph&eacute;riques, le noyau essaye de <quote>monter</quote> ce que le programme de
-d&eacute;marrage pense &ecirc;tre le disque de d&eacute;marrage, wd1, alors qu'il s'agit
-en fait de wd2 et &eacute;choue.</para>
-
- <para>Pour r&eacute;soudre ce probl&egrave;me, effectuez les op&eacute;rations
-suivantes&nbsp:
-<itemizedlist >
- <listitem>
- <para>Au message de d&eacute;marrage tapez&nbsp:
-<command>1:wd(2,a)kernel</command> puis Entr&eacute;e. Si le syst&egrave;me
-d&eacute;marre, lancez la commande <command> echo "1:wd(2,a)kernel" >
-/boot.config</command> pour affecter la bonne cha&icirc;ne de
-d&eacute;marrage.</para>
-
- </listitem>
- <listitem>
- <para>D&eacute;placez le disque FreeBSD sur le controleur primaire,
-les disques sont alors vus de fa&ccedil;on contigus.</para>
- </listitem>
- <listitem>
- <para><ulink url="../handbook/kernelconfig.html">Reconstruisez
-un noyau</ulink> en modifiant les lignes de configuration wd pour avoir:
-
- <programlisting>
-controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
-disk wd0 at wdc0 drive 0
-# disk wd1 at wdc0 drive 1 # comment out this line
-
-controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
-disk wd1 at wdc1 drive 0 # change from wd2 to wd1
-disk wd2 at wdc1 drive 1 # change from wd3 to wd2
-
-</programlisting>
- Puis installez le nouveau noyau. Si vous avez d&eacute;plac&eacute;
-vos disques et vous voulez restaurer la configuration pr&eacute;c&eacute;dente,
-placez les disques dans la
-configuration d&eacute;sir&eacute;e puis red&eacute;marrez. Votre syst&egrave;me doit d&eacute;marrer
-correctement.</para>
- </listitem>
- </itemizedlist>
-</para>
-
- </sect1>
- <sect1>
- <title>Quelles sont les limites m&eacute;moire&nbsp;? </title>
-
- <para>Pour la m&eacute;moire, la limite est (en th&eacute;orie) 4Go.
-Un essai a &eacute;t&eacute; fait avec un Go&nbsp;; vous ne pourrez probablement pas
-acheter des PC i386 pouvant supporter plus que cela.</para>
-
- </sect1>
- <sect1>
-
-<title>Quelles sont les tailles limites pour les syst&egrave;mes de fichiers
-FFS&nbsp;?</title>
-
-<para>La taille maximum th&eacute;orique d'un syst&egrave;me de fichiers FFS est
-de 8 t&eacute;raoctets (2G blocs) ou de 16To avec la taille de bloc par
-d&eacute;faut de 8K. Il y a en pratique une limite logicielle &agrave;
-1 t&eacute;raoctet mais, avec quelques modifications, il est possible d'avoir
-des syst&egrave;mes de fichiers de 4 t&eacute;raoctet (et il en existe).</para>
-
-<para>La taille maximum d'un fichier FFS est d'environ 1G blocs (4To), quand
-la taille de bloc est de 4K.</para>
-
- <programlisting>
-
-
-
- taille de fichier maximum
- -----------------------------------------
- 2.2.7 3.0
-taille de bloc -stable -current marche devrait marcher
--------------- ------- -------- ------ ---------------
-4K 4T-1 4T-1 4T-1 4+T
-8K 32+G 8T-1 32+G 16T-1
-16K 128+G 16T-1 128+G 32T-1
-32K 512+G 32T-1 512+G 64T-1
-64K 2048+G 64T-1 2048+G 128T-1
-
- </programlisting>
-
-
-
-<para>Quand la taille du bloc est de 4K, l'adressage du bloc par indirection triple
-fonctionne et la limite devrait &ecirc;tre d&eacute;finie par le plus grand
-num&eacute;ro de bloc qui peut &ecirc;tre repr&eacute;t&eacute; avec une
-indirection triple (approximativement 1K^3 + 1K^2 + 1K), mais la limite
-effective est en fait donn&eacute;e par une valeur (erron&eacute;e) de
-1G-1 pour le nombre de blocs maximum. Cette valeur devraite &ecirc;tre de 2G-1.
-Il y a des bogues avec les blocs dont le num&eacute;ro est voisin de 2G-1,
-et ces blocs ne peuvent &ecirc;tre adress&eacute;s quand la taille du bloc est
-de 4K. </para>
-
-<para>Pour les tailles de blocs de 8K et plus, tout devrait &ecirc;tre limit&eacute;
-par la valeur de 2G-1 pour les num&eacute;ros de blocs, mais l'est en fait par
-la valeur maximum de 1G-1, hormis sous -stable, les blocs adress&eacute;s par
-indirection triple ne peuvent &ecirc;tre atteints, la limite est donc
-donn&eacute;e par le plus grand num&eacute;ro de bloc qui peut &ecirc;tre
-adress&eacute; par une double indirection (approximativement
-(taille du bloc/4)^2 + (taille du bloc/4)), et d&eacute;passer cette limite
-sous -current peut poser des probl&egrave;mes. Utiliser la valeur correcte
-de 2G-1 blocs posent &agrave; coup s&ucirc;r des probl&egrave;mes.</para>
-
- </sect1>
- <sect1>
- <title>Comment puis-je mettre des fichiers de 1To sur une disquette&nbsp;?</title>
-
-<para>J'en ai plusieurs&nbsp;-&nbsp;virtuels&nbsp;-&nbsp;sur disquette&nbsp;:-). La taille
-maximum d'un fichier n'a pas de lien &eacute;troit avec la dimension maximum
-d'un disque. Un disque peut avoir jusqu'&agrave; un 1To. Il est
-fonctionnellement possible d'avoir un fichier plus grand que le disque.</para>
-
-<para>L'exemple suivant cr&eacute;e un fichier de 8T-1 occupant 32K d'espace disque.
-(3 blocs indirects et 1 bloc de donn&eacute;es) sur une petite partition racine. Il
-faut pour cela une version de la commande <command>dd</command> qui fonctionne
-sur de gros fichiers.</para>
-
- <programlisting>
-
-
-ttyv0:bde@alphplex:/tmp/q> cat foo
-df .
-dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
-ls -l z
-du z
-df .
-ttyv0:bde@alphplex:/tmp/q> sh foo
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/sd0a 64479 27702 31619 47% /
-1+0 records in
-1+0 records out
-1 bytes transferred in 0.000187 secs (5346 bytes/sec)
--rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
-32 z
-Filesystem 1024-blocks Used Avail Capacity Mounted on
-/dev/sd0a 64479 27734 31587 47% /
-ttyv0:bde@alphplex:/tmp/q> exit
-
- </programlisting>
-
-<para>Bruce Evans, September 1998</para>
-
- </sect1>
-
- </chapter>
diff --git a/fr_FR.ISO8859-1/books/faq/kernelconfig.sgml b/fr_FR.ISO8859-1/books/faq/kernelconfig.sgml
deleted file mode 100644
index 230acdd002..0000000000
--- a/fr_FR.ISO8859-1/books/faq/kernelconfig.sgml
+++ /dev/null
@@ -1,147 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.2
--->
-
- <chapter id="kernelconfig">
- <title>
- Configuration du noyau
- <!--<label id="kernelconfig">-->
- </title>
-
- <sect1>
- <title>
- J'aimerais personnaliser mon noyau. Est-ce difficile&nbsp;?
- <!--<label id="make-kernel">-->
- </title>
-
- <para>
- Pas du tout&nbsp;! Jetez un coup d'oeil &agrave;
- <ulink url="../handbook/kernelconfig.html">
- la section de la configuration du noyau du manuel de r&eacute;f&eacute;rence.
- </ulink>
- </para>
-
- <para>
- NOTE :
- Je vous recommande de faire une sauvegarde dat&eacute;e de votre noyau dans
- <filename>kernel.YYMMDD</filename> d&egrave;s que vous arrivez &agrave; tout faire marcher.
- Ainsi, si jamais en jouant avec votre configuration du noyau, vous
- m&eacute;langez tout, vous pourrez d&eacute;marrer sur ce noyau plut&ocirc;t que de repartir
- depuis <filename>kernel.GENERIC</filename>. Ceci est particuli&egrave;rement important si vous
- d&eacute;marrez actuellement depuis un contr&ocirc;leur qui n'est pas support&eacute; par le
- noyau GENERIC (oui, c'est une exp&eacute;rience personelle).
- </para>
- </sect1>
-
- <sect1>
- <title>
- Ma compilation du noyau &eacute;choue car <filename>&amp;hw&amp;float</filename>
- manque.
- </title>
-
- <para>
- Laissez-moi deviner. Vous avez supprim&eacute;
- <ulink url="http://www.freebsd.org/cgi/man.cgi?npx(4)">
- npx0
- </ulink>
- de votre fichier de configuration du noyau car vous n'avez pas de
- coprocesseur arithm&eacute;tique, c'est &ccedil;a ? Faux ! :-).
- Le p&eacute;riph&eacute;rique <filename>npx0</filename> est *OBLIGATOIRE*.
- M&ecirc;me si vous n'avez pas de coprocesseur arithm&eacute;tique, vous
- *devez* inclure le p&eacute;riph&eacute;rique <filename>npx0</filename>.
- </para>
- </sect1>
-
- <sect1>
- <title>
- Conflits d'interruption avec le code multi-port s&eacute;rie.
- </title>
-
- <para>
- Q.
- Quand je compile le noyau avec du code multi-port s&eacute;rie, cela me dit
- que seul le premier port est examin&eacute; et le reste est ignor&eacute; &agrave; cause des
- conflits d'interruption. Comment puis-je r&eacute;soudre cela&nbsp;?
- </para>
-
- <para>R.
- Le probl&egrave;me ici, est que FreeBSD a du code int&eacute;gr&eacute; pour &eacute;viter au noyau
- de se planter &agrave; cause d'un conflit mat&eacute;riel ou logiciel. La fa&ccedil;on de
- fixer ce probl&egrave;me est d'ignorer le r&eacute;glage des IRQ sur tous les
- ports sauf un. Voici un exemple :
-
- <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>
- </para>
- </sect1>
-
- <sect1>
- <title>
- Comment puis-je activer le support des disques QIC-40/80&nbsp;?
- </title>
-
- <para>
- Vous supprimez le commentaire de la ligne suivante du fichier g&eacute;n&eacute;rique de
- configuration (ou ajoutez la &agrave; votre fichier de configuration), ajoutez
- un ``<filename>flags 0x1</filename>'' &agrave; la ligne
- <ulink url="http://www.freebsd.org/cgi/man.cgi?fdc(4)">
- fdc
- </ulink> et recompilez.
-
- <programlisting>
-controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
-disk fd0 at fdc0 drive 0 ^^^^^^^^^
-disk fd1 at fdc0 drive 1
-#tape ft0 at fdc0 drive 2
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- </programlisting>
- </para>
-
- <para>
- Puis, vous cr&eacute;ez un p&eacute;riph&eacute;rique appel&eacute;
- <filename>/dev/ft0</filename>
- en allant dans le r&eacute;pertoire <filename>/dev</filename> et en lan&ccedil;ant la commande
- suivante :
- </para>
-
-
- <programlisting>
- sh ./MAKEDEV ft0
- </programlisting>
-
- <para>
- pour le premier p&eacute;riph&eacute;rique. <filename>ft1</filename> pour le second, et ainsi de
- suite.
- </para>
-
- <para>
- Vous aurez un p&eacute;riph&eacute;rique appel&eacute; <filename>/dev/ft0</filename>, o&ugrave; vous pourrez
- &eacute;crire par l'interm&eacute;diaire d'un programme sp&eacute;cial appel&eacute;
- ``<filename>ft</filename>'' - Voir la page de manuel
- <ulink url="http://www.freebsd.org/cgi/man.cgi?ft">
- ft
- </ulink>
- pour plus de d&eacute;tails.
- </para>
-
- <para>
- Les versions pr&eacute;c&eacute;dentes de <filename>-current</filename> ont aussi quelques
- probl&egrave;mes avec certaines cartouche ddfectueuses. Si vous avez
- des probl&egrave;mes o&ugrave; <filename>ft</filename> semble aller et venir ind&eacute;finiment,
- essayez de r&eacute;cup&eacute;rer la derni&egrave;re version de <filename>ft</filename> depuis
- <filename>/usr/src/sbin/ft</filename> dans <filename>-current</filename> et essayez le.
- </para>
- </sect1>
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/misc.sgml b/fr_FR.ISO8859-1/books/faq/misc.sgml
deleted file mode 100644
index 4025d8adb4..0000000000
--- a/fr_FR.ISO8859-1/books/faq/misc.sgml
+++ /dev/null
@@ -1,353 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-
- <chapter id="misc">
- <title> Questions diverses </title>
-
- <sect1>
- <title> FreeBSD utilise beaucoup plus d'espace swap que Linux. pourquoi ? </title>
-
- <para>
-Non. Vous voulez peut-&ecirc;tre dire "pourquoi mon swap semble &ecirc;tre plein ?".
-Si cela est vraiment ce que vous voulez dire, c'est en fait parce que
-mettre les choses dans le swap plut&ocirc;t que les mettre de c&ocirc;t&eacute; rend toujours
-plus facile sa r&eacute;cup&eacute;ration que si le pager devait aller chercher &agrave; travers
-tout le syst&egrave;me de fichier afin de r&eacute;cup&eacute;rer des blocs propres (non modifi&eacute;)
-d'un ex&eacute;cutable.
- </para>
-
- <para>
-La quantit&eacute; actuelle de pages "sales" que vous pouvez avoir dans le
-noyau en m&ecirc;me temps n'est pas r&eacute;duit, les pages propres sont d&eacute;plac&eacute;es
-si n&eacute;cessaires.
- </para>
-
- </sect1>
-
- <sect1>
- <title> Pourquoi utiliser (qu'est-ce) a.out et les formats ex&eacute;cutables ELF ? </title>
-
-
- <para>
-Afin de comprendre pourquoi FreeBSD utilise le format
-<emphasis remap="tt">a.out</emphasis>, vous devez d'abord savoir
-quelques trucs sur les 3 formats ex&eacute;cutables courant "dominants" pour
-UNIX :
-
- <itemizedlist>
- <listitem>
- <para>
-<ulink url="http://www.freebsd.org/cgi/man.cgi?a.out(5)">a.out </ulink> Le
-vieux et `classique' format des objets unix. Il utilise un court et
-compact en-t&ecirc;te avec un nombre magique au d&eacute;but, qui est souvent
-utilis&eacute; pour caract&eacute;riser le format (voir <ulink
-url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" >a.out(5)</ulink>
-pour plus de d&eacute;tails). Il contient trois segments charg&eacute;s : .text,
-.data, et .bss plus une table de symboles et une table de cha&icirc;nes.
- </para>
- </listitem>
-
- <listitem>
- <para><emphasis remap="bf">COFF</emphasis> Le formats des
-objets SVR3. L'en-t&ecirc;te comprend une table de section, de telle sorte
-que vous avez plus de sections que juste .text, .data, et .bss.
- </para>
- </listitem>
-
- <listitem>
- <para><emphasis remap="bf">ELF</emphasis> Le successeur de
-<emphasis remap="tt">COFF</emphasis>, qui permet des sections
-multiples et des valeurs possibles de 32 bits et 64 bits. Un
-inconv&eacute;nient majeur : <emphasis remap="tt">ELF</emphasis> a aussi &eacute;t&eacute;
-con&ccedil;u en supposant le fait qu'il y qu'un seul ABI par architecture
-syst&egrave;me. Cette hypoth&egrave;se est assez incorrecte, et m&ecirc;me dans le monde
-SYSV (qui a au moins 2 ABIs : SVR4, Solaris, SCO) cela ne se v&eacute;rifie
-pas.
- </para>
-
- <para>
-FreeBSD essaye de contourner ce probl&egrave;me en
-fournissant un utilitaire pour <emphasis
-remap="em">marquer</emphasis> un ex&eacute;cutable connu <emphasis
-remap="tt">ELF</emphasis> avec des informations sur l'ABI qui va avec.
-Regardez la page de manuel pour <ulink
-url="http://www.freebsd.org/cgi/man.cgi?brandelf" >brandelf</ulink>
-pour plus d'informations.
- </para>
- </listitem>
- </itemizedlist>
-</para>
-
- <para>
-FreeBSD vient du camp "classique" et utilise traditionnellement le
-format
-<ulink url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" >a.out</ulink>,
-une technologie esssay&eacute;e et &eacute;prouv&eacute;e &agrave; travers des g&eacute;n&eacute;rations de
-releases BSD. Bien qu'il a aussi &eacute;t&eacute; quelques fois possible de
-construire et de lancer des binaires natifs <emphasis remap="tt">ELF</emphasis> (et noyau)
-sur un syst&egrave;me FreeBSD, FreeBSD a initiallement r&eacute;sist&eacute; &agrave; la "pression"
-de passer &agrave; <emphasis remap="tt">ELF</emphasis> comme format par d&eacute;faut.
-Pourquoi ? Bien, quand le camp Linux ont fait leur difficile
-transition vers <emphasis remap="tt">ELF</emphasis>,
-il ne suffisait pas de fuir le format ex&eacute;cutable
-<emphasis remap="tt">a.out</emphasis>.
-mais leur m&eacute;canisme de librairies partag&eacute;es
-bas&eacute; sur des table de sauts inflexible ce
-qui rendait la
-construction de librairies partag&eacute;es difficiles pour les
-vendeurs et d&eacute;veloppeurs.
-<!--
-it was not so much to flee the a.out 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
--->
-Depuis
-comme les outils <emphasis remap="tt">ELF</emphasis> offrent une solution
-au probl&egrave;me des librairies partag&eacute;es et semblent
-en g&eacute;n&eacute;ral per&ccedil;us comme "la voie du progr&egrave;s" de
-toute fa&ccedil;on, le co&ucirc;t de migration a &eacute;t&eacute;
-entendu comme n&eacute;cessaire, et la transition a
-&eacute;t&eacute; r&eacute;alis&eacute;e.
-
- </para>
-
- <para>
-Dans le cas FreeBSD, notre m&eacute;canisme de librairie partag&eacute;e se rapproche
-plus des style de m&eacute;canisme de librairie partag&eacute;e des
-<emphasis remap="tt">SunOS</emphasis> de Sun, et de la sorte, est tr&egrave;s simple &agrave; utiliser.
-Quoiqu'il en soit, &agrave; partir de 3.0, FreeBSD supportera officiellement
-les binaires <emphasis remap="tt">ELF</emphasis> comme format par d&eacute;faut. M&ecirc;me si les
-formats ex&eacute;cutables <emphasis remap="tt">a.out</emphasis> nous ont beaucoup servis, les gens du GNU
-auteurs des outils de compilation que nous utilisons ont arr&ecirc;t&eacute; leur
-supports pour le format <emphasis remap="tt">a.out</emphasis>.
-Cela nous a forc&eacute; &agrave; maintenir des versions divergentes du compilateur et
-de l'&eacute;diteur de liens, et nous a emp&ecirc;ch&eacute; de b&eacute;n&eacute;ficier des
-derniers efforts du d&eacute;veloppement GNU. Et puis, les demandes de
-ISO-C++, notemment pour les constructeurs et les destructeurs,
-nous ont aussi conduit &agrave; supporter de l'
-<emphasis remap="tt">ELF</emphasis> natif pour les futures release de FreeBSD.</para>
- </sect1>
-
- <sect1>
- <title> Pourquoi chmod ne veulent pas changer les permissions sur les liens symboliques ? </title>
-
-
- <para>
-Vous devez utiliser soit ``<emphasis remap="tt">-H</emphasis>'' ou
-``<emphasis remap="tt">-L</emphasis>'' ensemble avec
-l'option ``<emphasis remap="tt">-R</emphasis>'' pour que cela marche.
-Regardez les pages de manuels de
-<ulink url="http://www.freebsd.org/cgi/man.cgi?chmod" >chmod</ulink> et
-<ulink url="http://www.freebsd.org/cgi/man.cgi?symlink" >symlink</ulink>.
- </para>
-
- <para>
-<emphasis remap="bf">ATTENTION</emphasis> l'option
-``<emphasis remap="tt">-R</emphasis>'' fait un chmod
-<emphasis remap="bf">RECURSIF</emphasis>
-<emphasis remap="tt">chmod</emphasis>. Faites attention en sp&eacute;cifiant
-le r&eacute;pertoire
-ou les liens symboliques vers les repertoires o&ugrave; vous lancerez
-<emphasis remap="tt">chmod</emphasis>. Si vous voulez changer les permissions
-d'un r&eacute;pertoire r&eacute;f&eacute;renc&eacute; par un symlink, utiliser
-<ulink url="http://www.freebsd.org/cgi/man.cgi?chmod" >chmod</ulink>
-sans aucune option et suivre le lien symbolique avec un slash final
-(``<emphasis remap="tt">/</emphasis>''). Par exemple, si
-``<emphasis remap="tt">foo</emphasis>'' est un lien
-symbolique vers le r&eacute;pertoire ``<emphasis remap="tt">bar</emphasis>'',
-et que vous voulez changer les
-permissions de ``<emphasis remap="tt">foo</emphasis>''
-(actuellement ``<emphasis remap="tt">bar</emphasis>''),
-vous devrez sans doute faire quelque chose comme :
- <programlisting>
-chmod 555 foo/
- </programlisting>
-
- </para>
-
- <para>
-Avec un slash final,
-<ulink url="http://www.freebsd.org/cgi/man.cgi?chmod" >chmod</ulink>
-suivra le lien symbolique, ``<emphasis remap="tt">foo</emphasis>'', pour changer les droits sur
-le r&eacute;pertoire ``<emphasis remap="tt">bar</emphasis>''.</para>
-
- </sect1>
-
- <sect1>
- <title> Pourquoi les noms de logins sont <emphasis remap="bf">encore</emphasis> restreints &agrave; 8 caract&egrave;res ? </title>
-
-
- <para>
-Vous pouvez penser qu'il est assez simple de changer
-<emphasis remap="bf">UT_NAMESIZE</emphasis>
-et de reconstruire tout le monde, et que tout marcherait.
-Malheureusement, il y a souvent une escouade d'applications et
-d'utilitaires (y compris les outils syst&egrave;mes) qui ont cod&eacute; en dur les
-petits nombres (pas toujours "8" ou "9", mais d'autres plus &eacute;tranges
-comme "15" ou "20") dans les structures et les buffers. Non seulement cela
-vous donnera des fichiers logs qui seront alt&eacute;r&eacute;s (&agrave; cause des longueurs
-des variables enregistr&eacute;s l&agrave; o&ugrave; des enregistrement de taille fix&eacute;es sont
-attendus), mais cela peut planter les clients NIS de Sun, et
-potentiellement causer d'autres probl&egrave;mes lors de l'interaction avec
-d'autres syst&egrave;mes UNIX.
- </para>
-
- <para>
-Dans FreeBSD 3.0 et plus, la longueur maximale des noms a &eacute;t&eacute;
-augment&eacute;e &agrave;
-16 caract&egrave;res et tous ces divers utilitaires avec des tailles de noms cod&eacute;s
-en dur ont &eacute;t&eacute; trouv&eacute;s et corrig&eacute;s. Le fait que cela touche tant de
-domaines du syst&egrave;me explique en fait pourquoi le changement n'a pas &eacute;t&eacute;
-fait avant la 3.0.
- </para>
-
-
- <para>
-Si vous &ecirc;tes absolument confiant dans votre habilet&eacute; &agrave; trouver et &agrave;
-corriger ces sortes de probl&egrave;mes par vous-m&ecirc;me quand ils arrivent, vous
-pouvez augmenter la taille des noms de login dans les releases
-pr&eacute;c&eacute;dentes en &eacute;ditant
-/usr/include/utmp.h et en changeant en fonction de la taille que vous
-voulez donner, la variable UT_NAMESIZE. Vous devez aussi mettre &agrave; jour la
-variable MAXLOGNAME dans /usr/include/sys/param.h pour correspondre au
-changement de UT_NAMESIZE. Au final, si vous construisez depuis les
-sources, n'oubliez pas que /usr/include est mis &agrave; jour &agrave; chaque fois !
-Changer les fichiers appropri&eacute;s dans /usr/src/... &agrave; la place.
- </para>
-
- </sect1>
-
- <sect1>
- <title>Puis-je lancer des binaires DOS sous FreeBSD?</title>
-
-
- <para>
-Oui, &agrave; partir de la version 3.0, vous pouvez utiliser
-<emphasis remap="tt">rundos</emphasis> l'&eacute;mulateur DOS de BSDI,
-qui a &eacute;t&eacute; int&eacute;gr&eacute; et perfectionn&eacute;.
-Envoyez un courrier &eacute;lectronique &agrave;
-<ulink url="mailto:freebsd-emulation@freebsd.org"> la liste de discussion sur les &eacute;mulations de FreeBSD</ulink>
-si cela vous interesse de vous joindre &agrave; cet effort en progression.
-
- </para>
-
- <para>
-Pour les syst&egrave;mes pre-3.0, il y a un bel utiltaire appel&eacute;
-<ulink url="http://www.freebsd.org/cgi/ports.cgi?^pcemu" >pcemu</ulink>
-dans la collection de pports, qui &eacute;mule un 8088 et assez de services
-BIOS pour pouvoir lancer des applications DOS en mode texte. Cela requiert
-le syst&egrave;me X Windows (fourni comme XFree86).</para>
- </sect1>
-
- <sect1>
- <title> Qu'est ce ``<emphasis remap="tt">sup</emphasis>'', et comment l'utilise je ? </title>
-
-
- <para>
-<ulink url="http://www.freebsd.org/cgi/ports.cgi?^sup" >SUP</ulink>
-veut dire Software Update Protocol, et a &eacute;t&eacute; d&eacute;velopp&eacute; par CMU
-pour pouvoir synchroniser leurs arbres de d&eacute;veloppement. Nous l'utilisons
-pour garder les sites distants en synchronisation avec nos sources
-centraux de d&eacute;veloppement
- </para>
-
- <para>
-SUP n'est pas tr&egrave;s ami avec la bande passante et a &eacute;t&eacute; retir&eacute;. La m&eacute;thode
-actuelle recommand&eacute; pour pouvoir garder vos sources &agrave; jour est
-<ulink url="../handbook/synching.html" >Handbook entry on CVSup</ulink></para>
-
- </sect1>
-
- <sect1>
- <title>Jusqu'&agrave; quel point FreeBSD est-il cool ?</title>
-
-
- <para>
- <!-- ca faut que je retraduise ce bout... -->
-Q. Quelqu'un a-t-il d&eacute;j&agrave; fait des tests de temp&eacute;rature de FreeBSD ?
-Je sais que Linux tourne moins chaudement que DOS, mais je n'ai jamais
-vu aucune mention sur FreeBSD. Ca semble tourner vraiment tr&egrave;s
-chaudement.
-
- </para>
-
- <para>
-A. Non, mais nous avons effectu&eacute; de nombreux tests gustatifs sur des
-volontaires ayant les yeux band&eacute;s et aussi 250 microgrammes de
-LSD-25 administr&eacute; pr&eacute;alablement. 35%des volontaires ont dit
-que FreeBSD avait un go&ucirc;t d'orange, alors que Linux avait un go&ucirc;t
-de purple haze. Aucun des groupes n'a mentionn&eacute; une variance de
-temp&eacute;rature particuli&egrave;re (si je me souviens bien).
-Nous avons de toute fa&ccedil;on d&ucirc; jeter tous les r&eacute;sultats quand
-nous nous sommes aper&ccedil;u que de nombreux volontaires s'&eacute;taient
-promen&eacute; en dehors de la salle durant les tests, faussant ainsi les
-r&eacute;sultats. Je pense que la plupart des volontaires sont &agrave;
-pr&eacute;sent chez Apple, travaillant pour leur nouveau GUI 'scratch and
-sniff'. C'est un dr&ocirc;le de monde dans lequel nous vivons !
-
- </para>
-
- <para>
-S&eacute;rieusement, FreeBSD et Linux utilisent tous les deux l'instruction
-``<emphasis remap="tt">HLT</emphasis>'' (halt) quand le syst&egrave;me est idle de telle sorte &agrave; baisser
-leur consommation d'&eacute;nergie et donc la chaleur que cela g&eacute;n&egrave;re. Et aussi,
-si vous avez APM (automatic power management) configur&eacute;, alors FreeBSD
-peut aussi mettre le CPU dans un mode basse &eacute;nergie.</para>
-
- </sect1>
-
- <sect1>
- <title>Qui est-ce qui fait gr&eacute;siller mes banques m&eacute;moires ?</title>
-
-
- <para>
-Q. Y a t il quelque chose d'"&eacute;trange" que fait FreeBSD quand il compile le
-noyau qui pourrait faire que la m&eacute;moire fasse un gr&eacute;sillement ?
-Quand &ccedil;a compile (et pour un bref moment apr&egrave;s avoir reconnu le lecteur de
-disquette au d&eacute;marrage), un &eacute;trange gr&eacute;sillement &eacute;mane depuis ce qui semble
-&ecirc;tre les banques m&eacute;moire.
- </para>
-
- <para>
-A. Oui! Vous verrez des fr&eacute;quentes r&eacute;f&eacute;rences aux "d&eacute;mons" dans la
-documentation BSD, et ce que les gens ne savent pas, c'est que cela se
-r&eacute;f&egrave;re aux entit&eacute;s non-corporelle qui poss&egrave;de &agrave; pr&eacute;sent votre ordinateur.
-Le gr&eacute;sillement venant de la m&eacute;moire est en fait le murmure &eacute;chang&eacute; entre
-les d&eacute;mons lorsqu'ils d&eacute;battent sur les diff&eacute;rentes t&acirc;ches de
-l'administration syst&egrave;me.
- </para>
-
- <para>
-Si le bruit vous parvient, un bon ``<emphasis remap="tt">fdisk /mbr</emphasis>''
-depuis le DOS vous en d&eacute;barassera, mais ne soyez pas surpris s'il
-r&eacute;agissent et qu'ils essayent de vous contrer. De plus, si jamais &agrave; un
-moment de l'op&eacute;ration, vous entendez la voix satanique de Bill Gates
-vous parvenant du haut-parleur interne, continuez, et ne regardez jamais
-en arri&egrave;re !
-D&eacute;livr&eacute; de l'influence contre-balan&ccedil;ante des d&eacute;mons BSD, les d&eacute;mons
-jumeaux de DOS et Windows pourront alors prendre le contr&ocirc;le totale de
-votre machine jusqu'&agrave; la damnation &eacute;ternelle de votre &acirc;me.
-
-S'il fallait choisir, je pense que je pr&eacute;f&egrave;rerais m'habituer au
-gr&eacute;sillement !</para>
-
- </sect1>
-
- <sect1>
- <title>Que veut dire 'MFC' ?</title>
-
- <para>
-MFC est un acronyme pour 'Merged From -CURRENT.' C'est utilis&eacute;s dans
-les logs CVS pour noter quand un changement a migr&eacute; depuis un
-CURRENT vers une branche STABLE
- </para>
- </sect1>
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/network.sgml b/fr_FR.ISO8859-1/books/faq/network.sgml
deleted file mode 100644
index 8fda1dc746..0000000000
--- a/fr_FR.ISO8859-1/books/faq/network.sgml
+++ /dev/null
@@ -1,1588 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-
- <chapter id="network">
- <title>R&eacute;seaux</title>
-
- <sect1>
- <title>O&ugrave; puis-je trouver des informations sur le ``boot sans disque''? </title>
-
-
- <para>
-Le ``boot sans disque'' veut dire que la machine sous FreeBSD est boot&eacute;e depuis le
-r&eacute;seau, et lit les fichiers n&eacute;cessaires depuis un serveur et non depuis
-son disque dur. Pour plus de d&eacute;tails, lisez <ulink url="../handbook/diskless.html"> la section du Handbook sur le Diskless booting </ulink>
- </para>
-
- </sect1>
-
- <sect1>
- <title> Une machine sous FreeBSD peut-elle &ecirc;tre utilis&eacute;e comme routeur d&eacute;di&eacute; ? </title>
-
-
- <para>
-Les standards de l'Internet et de bonnes pratiques techniques nous
-interdisent de faire par d&eacute;faut du routage de paquets avec
-FreeBSD. Mais vous pouvez n&eacute;amoins activer cette fonctionnalit&eacute; en
-changeant la variable suivante &agrave; <emphasis remap="tt">YES</emphasis>
-dans <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf"> rc.conf</ulink>:
- <programlisting>
-gateway_enable=YES # L'hote agira comme routeur s'il est positionne a YES
- </programlisting>
-
- </para>
-
- <para>
-Cette option mettra la variable <ulink url="http://www.freebsd.org/cgi/man.cgi?sysctl">sysctl</ulink>
-<emphasis remap="tt">net.inet.ip.forwarding</emphasis> &agrave; <emphasis remap="tt">1</emphasis>.
-
- </para>
-
- <para>
-Dans la plupart des cas, vous aurez aussi &agrave; lancer un processus de routage
-afin de renseigner les autres syst&egrave;mes sur votre routeur.
-FreeBSD est fourni avec le d&eacute;mon de routage standard BSD
-<ulink url="http://www.freebsd.org/cgi/man.cgi?routed" >routed</ulink>,
-ou pour des situations plus complexes, vous pouvez essayer <emphasis remap="em">GaTeD</emphasis> (disponible par FTP depuis <emphasis remap="tt">ftp.gated.Merit.EDU) </emphasis>
-qui supporte FreeBSD depuis 3_5Alpha7.
-
- </para>
-
- <para>
-Nous nous devons de vous pr&eacute;venir que lorsque FreeBSD est
-configur&eacute; de cette mani&egrave;re, il ne correspond pas tout &agrave; fait
-aux requis standards de l'Internet sur les routeurs. N&eacute;amoins,
-il s'en rapproche assez pour un usage ordinaire.
-
- </para>
- </sect1>
-
- <sect1>
- <title> Puis-je connecter ma machine sous Win95 &agrave; l'Internet via FreeBSD ? </title>
-
-
- <para>
-Typiquement, les gens qui posent cette questions sont ceux qui ont 2 PC
-&agrave; la maison, un avec FreeBSD et un avec Win95. L'id&eacute;e est d'utiliser
-la machine sous FreeBSD pour se connecter &agrave; l'Internet et puis
-pouvoir ensuite acc&eacute;der &agrave; l'Internet depuis la machine sous Windows 95
-via la machine sous FreeBSD.
-Ce n'est en r&eacute;alit&eacute; qu'un cas particulier de la question pr&eacute;c&eacute;dente.
- </para>
-
- <para>
-Il y a un document tr&egrave;s pratique qui explique comment configurer
-FreeBSD comme <ulink url="http://www.ssimicro.com/~jeremyc/ppp.html" >routeur par connexion PPP</ulink>
-
- </para>
-
- <para>
-<emphasis remap="bf">NOTE:</emphasis>
-Cela requiert que vous ayez au moins deux adresses IP fixes, et
-probablement 3 ou plus, cela d&eacute;pend du travail que vous voulez effectuer
-pour pouvoir mettre en place la machine sous Windows.
-Comme alternative, si vous n'avez pas d'adresse IP fixe, vous pouvez
-utiliser une des adresses IP priv&eacute;s et installer des <emphasis remap="bf">proxies</emphasis>
-comme
-<ulink url="http://squid.nlanr.net/Squid/">SQUID</ulink> et
-<ulink url="http://www.tis.com/">le TIS firewall toolkit</ulink>
-sur la machine sous FreeBSD.
-
- </para>
-
- <para>
-Voir aussi la section sur
-<ulink url="http://www.freebsd.org/cgi/man.cgi?natd"> natd </ulink>.
- </para>
-
- </sect1>
-
- <sect1>
- <title> Pourquoi la recompilation du dernier BIND de ISC &eacute;choue-t-elle ? </title>
-
-
- <para>
-Il y a un conflit entre le fichier ``<emphasis remap="tt">cdefs.h</emphasis>''
-de la distribution et celui fourni par FreeBSD.
-Vous n'avez qu'&agrave; enlever
-<emphasis remap="tt">compat/include/sys/cdefs.h</emphasis>.
-
- </para>
- </sect1>
-
- <sect1>
- <title>FreeBSD supporte-t-il SLIP et PPP?</title>
-
- <para>
-Oui, regardez les pages de manuel
-<ulink url="http://www.freebsd.org/cgi/man.cgi?slattach" >slattach</ulink>,
-<ulink url="http://www.freebsd.org/cgi/man.cgi?sliplogin">sliplogin</ulink>,
-<ulink url="http://www.freebsd.org/cgi/man.cgi?pppd">pppd</ulink> et
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink>.
-<emphasis remap="tt">pppd</emphasis> et <emphasis remap="tt">ppp</emphasis>
-permettent les connexions entrantes et sortantes
-<ulink url="http://www.freebsd.org/cgi/man.cgi?sliplogin" >Sliplogin</ulink> ne peut s'utiliser qu'avec des connexions entrantes
-et
-<ulink url="http://www.freebsd.org/cgi/man.cgi?slattach" >slattach</ulink> qu'avec des connexions sortantes.
-
- </para>
-
- <para>
-Ces programmes sont d&eacute;crits dans les sections suivantes du
-<ulink url="../handbook/index.html">handbook</ulink>:
- <itemizedlist>
- <listitem>
- <para>
-<ulink url="../handbook/slips.html" >r&eacute;f&eacute;rence du handbook sur SLIP (c&ocirc;t&eacute; serveur)</ulink>
- </para>
- </listitem>
-
- <listitem>
- <para>
-<ulink url="../handbook/slipc.html" >r&eacute;f&eacute;rence du handbook sur SLIP (c&ocirc;t&eacute; client)</ulink>
- </para>
- </listitem>
-
- <listitem>
- <para>
-<ulink url="../handbook/ppp.html" >r&eacute;f&eacute;rence du handbook sur PPP (mode noyau)</ulink>
- </para>
- </listitem>
-
- <listitem>
- <para>
-<ulink url="../handbook/ppp-and-slip.html#USERPPP" >r&eacute;f&eacute;rence du handbook sur PPP (mode utilisateur)</ulink>
- </para>
- </listitem>
- </itemizedlist>
-
- </para>
-
- <para>
-Si vous avez acc&egrave;s &agrave; l'Internet &agrave; travers un "compte shell"
-vous pouvez jeter un coup d'oeil au paquetage
-<ulink url="http://www.freebsd.org/cgi/ports.cgi?^slirp">slirp</ulink>.
-
-Il peut vous fournir un acc&egrave;s (limit&eacute;) aux services tels que ftp
-et http directement depuis votre machine locale.
-
- </para>
- </sect1>
-
- <sect1>
- <title> Est-ce que FreeBSD supporte NAT ou le Masquerading ?</title>
-
- <para>
-Si vous avez un sous-r&eacute;seau local (une ou plusieur machines), mais qu'une
-seule adresse IP vous a &eacute;t&eacute; allou&eacute;e (m&ecirc;me si ce n'est qu'une adresse IP
-dynamique), vous pouvez regarder le programme
-<ulink url="http://www.freebsd.org/cgi/man.cgi?natd">natd</ulink>
-. <emphasis remap="tt">Natd</emphasis> vous permet de connecter un sous-r&eacute;seau entier
-&agrave; l'Internet en n'utilisant qu'une seule adresse IP.
-
- </para>
-
- <para>
-Le programme <ulink url="http://www.freebsd.org/cgi/man.cgi?ppp" >ppp</ulink> a des fonctionnalit&eacute;s similaires construit par l'interm&eacute;diaire
-de l'option <emphasis remap="tt">-alias</emphasis> switch.
-La
-<ulink url="http://www.freebsd.org/cgi/man.cgi?libalias">biblioth&egrave;que alias</ulink>
-est utilis&eacute;e dans les deux cas.
-
- </para>
- </sect1>
-
- <sect1>
- <title> Je n'arrive pas &agrave; faire marcher ppp. O&ugrave; me suis-je tromp&eacute; ? </title>
-
- <para>
-Vous devriez tout d'abord lire la page de manuel
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink> et
-<ulink url="../handbook/ppp-and-slip.html#USERPPP" >la section du handbook sur ppp</ulink>.
-Activer le logging avec la commande
-
- <programlisting>
-set log Phase Chat Connect Carrier lcp ipcp ccp command
- </programlisting>
-
- </para>
-
- <para>
-Cette commande peut-&ecirc;tre tap&eacute;e &agrave; l'invite de commande de <emphasis remap="bf">ppp</emphasis>
-ou peut-&ecirc;tre entr&eacute;e dans le fichier de configuration
-<emphasis remap="tt">/etc/ppp/ppp.conf</emphasis>.
-(le d&eacute;but de la section par d&eacute;faut <emphasis remap="bf">default</emphasis>
-est l'endroit id&eacute;al pour le mettre).
-
-Assurez vous que le fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?syslog.conf"
->/etc/syslog.conf</ulink> contienne les lignes
-
- <programlisting>
-!ppp
-*.* /var/log/ppp.log
- </programlisting>
-
- </para>
-
- <para>
-et que le fichier <emphasis remap="tt">/var/log/ppp.log</emphasis> existe.
-Vous pouvez aussi tirer pas mal de renseignements sur ce qui se passe en
-lisant les fichiers log.
-Ne vous inqui&eacute;tez pas m&ecirc;me si cela vous semble d&eacute;nu&eacute; de sens, si vous obtenez
-de l'aide de quelqu'un, pour lui, cela aura un sens.
- </para>
-
- <para>
-Si votre version de ppp ne comprend pas la commande "set log"
-vous devriez charger la
-<ulink url="http://www.freebsd.org/~brian">derni&egrave;re version</ulink>.
-Il pourrra se construire sur FreeBSD version 2.1.5 et plus.
-
- </para>
- <sect2>
- <title>Ppp se bloque quand je le lance</title>
- <para>
-Cela est usuellement d&ucirc; au fait que votre nom d'h&ocirc;te ne peut &ecirc;tre r&eacute;solu. La meilleure solution pour r&eacute;soudre ce probl&egrave;me est de s'assurer que votre
-<emphasis remap="tt">/etc/hosts</emphasis> est consult&eacute; en
-premier par votre r&eacute;solveur en &eacute;ditant
-<emphasis remap="tt">/etc/host.conf</emphasis> et en mettant la ligne
-<emphasis remap="tt">hosts</emphasis> en premier.
-Puis, ajoutez simplement une entr&eacute;e pour votre machine locale
-dans <emphasis remap="tt">/etc/hosts</emphasis>.
-Si vous n'avez pas de r&eacute;seau local, changez simplement votre
-ligne <emphasis remap="tt">localhost</emphasis> :</para>
- <programlisting>
-127.0.0.1 foo.bar.com foo localhost
- </programlisting><para>
-Sinon, ajoutez simplement une autre entr&eacute;e pour votre h&ocirc;te. Consultez les pages de manuels appropri&eacute;es pour plus de d&eacute;tails.
-Vous devrez &ecirc;tre alors capable de r&eacute;ussir &agrave; faire un
-<emphasis remap="tt">ping -c1 `hostname`</emphasis> quand vous aurez fini.
-
- </para>
- </sect2>
- <sect2>
- <title>Ppp ne veut pas communiquer en mode -auto</title>
- <para>
-Tout d'abord, v&eacute;rifiez que vous avez bien un routage par d&eacute;faut
-en lan&ccedil;ant <ulink url="http://www.freebsd.org/cgi/man.cgi?netstat"> netstat -rn</ulink>, vous devriez voir deux entr&eacute;es comme suivent :
-
- <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>
-
- <para>
-ici, on supposera que vous avez utilis&eacute; les adresses donn&eacute;es en exemple
-dans le handbook, les pages man ou depuis le fichier
-ppp.conf.sample.
-Si vous n'avez pas de routage par d&eacute;faut, c'est peut-&ecirc;tre parce que vous
-utilisez une vieille version de <ulink url="http://www.freebsd.org/cgi/man.cgi?ppp" >ppp</ulink> qui ne comprend pas le mot
-<emphasis remap="tt">HISADDR</emphasis> dans le fichier ppp.conf.
-Si votre version de
-<emphasis remap="bf">ppp</emphasis> est ant&eacute;rieure &agrave; FreeBSD 2.2.5,
-changer la ligne
-
- <programlisting>
-add 0 0 HISADDR
- </programlisting>
-
- </para>
-
- <para>
-par celle-ci :
-
- <programlisting>
-add 0 0 10.0.0.2
- </programlisting>
-
- </para>
-
- <para>
-Une autre raison au fait que la ligne du routage par d&eacute;faut soit
-manquante est que vous avez pu r&eacute;gler un routage par d&eacute;faut erron&eacute; dans
-le fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf" >/etc/rc.conf</ulink> (ce fichier est appel&eacute;
-<emphasis remap="tt">/etc/sysconfig</emphasis> avant la release 2.2.2), et que vous avez
-oubli&eacute; la ligne suivante :
- <programlisting>
-delete ALL
- </programlisting>
-
- </para>
-
- <para>
-from <emphasis remap="tt">ppp.conf</emphasis>. Si cela est le cas, revenez &agrave; la section du
-handbook sur
-<ulink url="../handbook/ppp-and-slip.html" >la configuration finale du syst&egrave;me</ulink> section of the handbook.
-
- </para>
- </sect2>
- <sect2>
- <title> Que veut dire "No route to host" ? </title>
-
- <para>
-Cette erreur est usuellement d&ucirc;e &agrave; une omission de la section
- <programlisting>
-MYADDR:
-delete ALL
-add 0 0 HISADDR
- </programlisting>
-
- </para>
-
- <para>
-dans votre fichier <emphasis remap="tt">/etc/ppp/ppp.linkup</emphasis>.
-Cela est seulement n&eacute;cessaire si vous avez une adresse IP dynamique ou que
-vous ne savez pas l'adresse de votre routeur. Si vous utilisez le mode
-interactif, vous pouvez taper les lignes suivantes apr&egrave;s &ecirc;tre entr&eacute;
-en <emphasis remap="tt">mode paquet</emphasis> (le mode paquet est indiqu&eacute; par le
-<emphasis remap="bf">PPP</emphasis> en majuscule &agrave; l'invite):
-
- <programlisting>
-delete ALL
-add 0 0 HISADDR
- </programlisting>
-
- </para>
-
- <para>
-Se r&eacute;f&eacute;rer &agrave; la section du handbook sur
-<ulink url="../handbook/ppp-and-slip.html"> PPP et les adresses IP dynamiques </ulink>pour plus de d&eacute;tails.
-
- </para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Ma connexion se termine au bout de 3 minutes</title>
- <para>
-La limite de temps (timeout) par d&eacute;faut de ppp est de 3 minutes. Cela peut-&ecirc;tre
-ajust&eacute; avec les lignes :
-
- <programlisting>
-set timeout NNN
- </programlisting>
-
- </para>
-
- <para>
-o&ugrave; <emphasis remap="bf">NNN</emphasis> est le nombre de secondes d'inactivit&eacute; avant que la connexion ne
-soit ferm&eacute;e.
-Si <emphasis remap="bf">NNN</emphasis> est &eacute;gal &agrave; zero, la connexion ne sera jamais ferm&eacute;e pour cause
-de limite de temps &eacute;coul&eacute;e.
-
-Il est possible de mettre cette commande dans le fichier
-<emphasis remap="tt">ppp.conf</emphasis>, ou de la taper &agrave; l'invite en mode interactif.
-Il est &eacute;galement possible de l'ajuster au vol alors que la ligne est
-active, en se connectant &agrave; la socket du serveur <emphasis remap="bf">ppp</emphasis>
-en utilisant
-<ulink url="http://www.freebsd.org/cgi/man.cgi?telnet">telnet</ulink> ou
-<ulink url="http://www.freebsd.org/cgi/man.cgi?pppctl" >pppctl</ulink>.
-Se r&eacute;ferer &agrave; la page de manuel de
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink>
-pour plus de d&eacute;tails.
-
- </para>
- <sect2>
- <title>Ma connexion se termine lors de gros chargements.</title>
-
- <para>
-Si vous avez activ&eacute; le report de la qualit&eacute; de connexion (Link Quality Reporting (LQR)),
-il est possible ce soit parce que que trop de paquets LQR sont perdus entre la machine
-et son interlocuteur. PPP en d&eacute;duit que la ligne doit &ecirc;tre trop
-mauvaise, et se d&eacute;connecte. Avant la version 2.2.5 de FreeBSD,
-LQR &eacute;tait activ&eacute; par d&eacute;faut.
-Il est maintenant d&eacute;sactiv&eacute; par d&eacute;faut.
-LQR peut-&ecirc;tre d&eacute;sactiv&eacute; avec la ligne suivante :
-
- <programlisting>
-disable lqr
- </programlisting>
-
- </para>
- </sect2>
- <sect2>
- <title> Ma connexion se termine apr&egrave;s un certain temps al&eacute;atoire. </title>
-
- <para>
-Parfois, sur une ligne de t&eacute;l&eacute;phone avec des parasites, ou m&ecirc;me
-sur une ligne avec des attentes d'appels activ&eacute;es, le modem peut se
-suspendre parce qu'il pense (de mani&egrave;re erron&eacute;e) qu'il y a une perte du
-support de connexion (lost carrier)
-
- </para>
-
- <para>
-Il y a un r&eacute;glage sur la plupart des modems qui d&eacute;terminent le degr&eacute; de
-tol&eacute;rance sur la perte temporaire de la ligne porteuse. Sur un
-USR Sportster par exemple, cela est mesur&eacute; par le registre S10 en
-dixi&egrave;me de secondes. Pour rendre votre modem plus tol&eacute;rant, vous
-pouvez ajouter la s&eacute;quence envoi-attente suivante &agrave; votre cha&icirc;ne de
-connexion :
-
- <programlisting>
-set dial "...... ATS10=10 OK ......"
- </programlisting>
-
- </para>
-
- <para>
-Se r&eacute;f&eacute;rer au manuel de votre modem pour plus de d&eacute;tails.
-
- </para></sect2>
-
- <sect2>
- <title> Rien ne se passe apr&egrave;s le message Login Ok! </title>
-
- <para>
-Avant la version 2.2.5 de FreeBSD, une fois la ligne &eacute;tablie,
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp" >ppp</ulink> devait attendre que ce soit l'autre parti (peer)
-qui initialise le protocole de
-contr&ocirc;le de ligne (Line Control Protocol (LCP).
-Or, plusieurs ISPs ne d&eacute;buteront pas la n&eacute;gociation et attendront du client
-qu'il le fasse. Pour forcer <emphasis remap="bf">ppp</emphasis>
-&agrave; initialiser le LCP, utiliser la ligne suivante :
-
- <programlisting>
-set openmode active
- </programlisting>
-
- </para>
-
- <para>
-<emphasis remap="bf">Note</emphasis>:
-Cela ne fait pas de d&eacute;gats si chacun des deux parties initialisent tous les deux
-la connexion, c'est pourquoi openmode est &agrave; pr&eacute;sent activ&eacute; par d&eacute;faut.
-Quoiqu'il en soit, la prochaine section expliquera quand est-ce ce que
-cela peut g&ecirc;ner.
-
- </para></sect2>
-
- <sect2>
- <title> Je n'arr&ecirc;te pas de voir des erreurs &agrave; propos de magic being the same </title>
-
- <para>
-De temps en temps, juste apr&egrave;s la connexion, vous pouvez voir des
-messages dans le log qui dit "magic is the same".
-Parfois ces messages sont sans cons&eacute;quences, et parfois l'un ou l'autre des
-partis quitte.
-La plupart des impl&eacute;mentations ppp ne peuvent survivre &agrave; ce probl&egrave;me, et
-m&ecirc;me si la ligne semble venir, vous verrez r&eacute;guli&egrave;rement des demandes de
-configuration et des accus&eacute;s de r&eacute;ception de configuration dans le
-fichier log &agrave; moins que ppp abandonne et ne ferme la connexion.
- </para>
-
- <para>
-Cela appara&icirc;t normallement sur les machines serveurs avec des disques
-lents qui diffusent un getty sur le port, et qui ex&eacute;cute ppp depuis un
-script ou programme de login apr&egrave;s le login.
-J'ai aussi eu vent de cela arrivant lorsqu'on utilise slirp.
-La raison est qu'entre le temps o&ugrave; getty quitte et que ppp commence,
-le ppp c&ocirc;t&eacute;-client commence par envoyer des paquets
-Line Control Protocol (LCP). Parce que l'ECHO est toujours actif
-sur les ports du c&ocirc;t&eacute; serveur, le client ppp verra ces paquets qui lui
-seront "refl&egrave;t&eacute;".
-
- </para>
-
- <para>
-Une partie de la n&eacute;gociation LCP est d'&eacute;tablir un nombre magique
-(magic number)
-de chaque c&ocirc;t&eacute; de la ligne, ceci afin que les "r&eacute;flexions" soient
-d&eacute;tect&eacute;es. Le protocole dit que lorsque l'autre parti essaye de
-n&eacute;gocier le m&ecirc;me nombre magique, un NAK devrait &ecirc;tre envoy&eacute; et un
-nouveau nombre magique choisi.
-Durand la p&eacute;riode o&ugrave; le serveur o&ugrave; le port serveur a l'ECHO activ&eacute;, le
-client ppp envoie des paquets LCP, voit le m&ecirc;me nombre magique dans les
-paquets refl&egrave;t&eacute;s et il le "NAK".
-Il voit aussi les reflexions de NAK (qui veut aussi dire que ppp devrait
-changer son nombre magique). Cela produit potentiellement un &eacute;norme
-nombre de nombre magiques &agrave; changer, chacun d'entre eux tous
-s'empilant joyeusement dans le buffer stty du serveur.
-Aussit&ocirc;t que ppp d&eacute;marre sur le serveur, il est innond&eacute; par des
-changement de nombre magique et souvent d&eacute;cide qu'il a assez essay&eacute;
-de n&eacute;gociation LCP et abandonne.
-Pendant ce temps, le client qui ne voit alors plus de r&eacute;flexions,
-se r&eacute;jouit juste le temps de voir que le serveur l'a d&eacute;connect&eacute;.
-
- </para>
-
- <para>
-Cela peut-&ecirc;tre &eacute;vit&eacute; en autorisant l'autre parti &agrave; d&eacute;marrer la
-n&eacute;gociation avec la ligne suivante dans le fichier ppp.conf
-
- <programlisting>
-set openmode passive
- </programlisting>
-
- </para>
-
- <para>
-Cela dit &agrave; ppp d'attendre que le serveur d&eacute;bute la n&eacute;gociation LCP.
-Certains serveurs toutefois peuvent ne jamais initier la n&eacute;gociation. Si
-cela est le cas, vous pouvez faire quelque chose du genre :
-
- <programlisting>
-set openmode active 3
- </programlisting>
-
- </para>
-
- <para>
-Cela dit &agrave; ppp de rester passif pendant 3 secondes, et puis commencer &agrave;
-envoyer les requ&ecirc;tes LCP/ Si l'autre parti commence &agrave; envoyer des
-requ&ecirc;tes durant cette p&eacute;riode, ppp r&eacute;pondra imm&eacute;diatement plut&ocirc;t qu'en
-attendant que la p&eacute;riode des 3 secondes se termine.
- </para>
- </sect2>
-
- <sect2>
- <title> Les n&eacute;gociations LCP continuent jusqu'&agrave; ce que la connexion soit ferm&eacute;e. </title>
-
- <para>
-Cela est pour l'instant un d&eacute;faut d'impl&eacute;mentation dans
-<emphasis remap="bf">ppp</emphasis> o&ugrave; il n'associe pas les r&eacute;ponses
-LCP, CCP &amp; IPCP avec leur requ&ecirc;te originale.
-Comme cons&eacute;quence, si l'une des impl&eacute;mentations
-<emphasis remap="bf">ppp</emphasis> est 6 secondes plus lente que
-l'autre c&ocirc;t&eacute;, l'autre c&ocirc;t&eacute; enverra 2 requ&ecirc;tes de configuration LCP
-suppl&eacute;mentaire. Cela est fatal.
-
-Soient 2 impl&eacute;mentations, <emphasis remap="bf">A</emphasis> et
-<emphasis remap="bf">B</emphasis>. <emphasis remap="bf">A</emphasis>
-commence &agrave; envoyer des requ&ecirc;tes LCP imm&eacute;diatement apr&egrave;s s'&ecirc;tre connect&eacute;
-et <emphasis remap="bf">B</emphasis> met 7 secondes &agrave; d&eacute;marer.
-Quand <emphasis remap="bf">B</emphasis> d&eacute;marre,
-<emphasis remap="bf">A</emphasis> a envoy&eacute; 3 requ&ecirc;tes LCP.
-Nous supposons que la ligne a d&eacute;sactiv&eacute;e l'ECHO, car dans le cas
-contraire nous verrions des probl&egrave;mes de nombres magiques comme d&eacute;crit
-dans la section pr&eacute;c&eacute;dente.
-
-<emphasis remap="bf">B</emphasis> envoi un REQ, puis un ACK au premier
-REQ de <emphasis remap="bf">A</emphasis>.
-Le r&eacute;sultat est que <emphasis remap="bf">A</emphasis> entre
-dans l'&eacute;tat <emphasis remap="bf">OPENED</emphasis> et envoie un ACK
-(le premier) en retour &agrave; <emphasis remap="bf">B</emphasis>.
-Pendant ce temps, <emphasis remap="bf">B</emphasis> renvoi 2 ACK de plus
-en r&eacute;ponse au 2 REQ suppl&eacute;mentaires envoy&eacute;s par
-<emphasis remap="bf">A</emphasis> avant
-<emphasis remap="bf">B</emphasis> que B n'ait commenc&eacute;.
-<emphasis remap="bf">B</emphasis> re&ccedil;oit alors le premier ACK
-de <emphasis remap="bf">A</emphasis> et entre dans l'&eacute;tat
-<emphasis remap="bf">OPENED</emphasis>.
-<emphasis remap="bf">A</emphasis> re&ccedil;oit le deuxi&egrave;me ACK de
-<emphasis remap="bf">B</emphasis> et revient &agrave; l'&eacute;tat
-<emphasis remap="bf">REQ-SENT</emphasis>, et envoie un autre (quatri&egrave;me)
-REQ comme d&eacute;crit dans la RFC.
-Il envoie alors un troisi&egrave;me ACK et entre dans l'&eacute;tat
-<emphasis remap="bf">OPENED</emphasis>.
-Durant ce moment, <emphasis remap="bf">B</emphasis>
-re&ccedil;oit le quatri&egrave;me REQ de <emphasis remap="bf">A</emphasis>,
-par cons&eacute;quent, revient dans l'&eacute;tat
-<emphasis remap="bf">ACK-SENT</emphasis> et envoie un autre (second)
-REQ et (quatri&egrave;me) ACK as per the RFC.
-<emphasis remap="bf">A</emphasis> re&ccedil;oit le REQ, va dans l'&eacute;tat
-<emphasis remap="bf">REQ-SENT</emphasis> et envoie un autre REQ.
-Il re&ccedil;oit alors imm&eacute;diatement le ACK suivant et entre dans l'&eacute;tat
-<emphasis remap="bf">OPENED</emphasis>.
- </para>
-
- <para>
-Cela continue tant qu'un des partis ne s'aper&ccedil;oive qu'ils n'iront
-nulle part comme cela et abandonne.
-
- </para>
-
- <para>
-La meilleure fa&ccedil;on d'&eacute;viter cela est de configurer un c&ocirc;t&eacute; comme &eacute;tant
-<emphasis remap="bf">passif</emphasis> - cela fait,
-faire de telle sorte qu'un des c&ocirc;t&eacute;s attende que l'autre commence la
-n&eacute;gociation. Cela peut-&ecirc;tre fait par la commande :
-
- <programlisting>
-set openmode passive
- </programlisting>
-Faire attention avec cette option, vous devriez aussi utiliser
-la commande
- <programlisting>
-set stopped N
- </programlisting>
-afin de limiter la dur&eacute;e avant que
-<emphasis remap="bf">ppp</emphasis> attende de l'autre parti de
-commencer la n&eacute;gociation.
-D'une autre fa&ccedil;on, la commande
- <programlisting>
-set openmode active N
- </programlisting>
-
-(o&ugrave; <emphasis remap="bf">N</emphasis> est le nombre de secondes
-qu'il faut attendre avant que le d&eacute;marrage de la n&eacute;gociation ne soit
-faite). Regardez les pages de manuels pour plus de d&eacute;tails.
- </para>
- </sect2>
-
- <sect2>
- <title> Ppp se verrouille peu apr&egrave;s la connexion. </title>
-
- <para>
-Avant la version 2.2.5 de FreeBSD, il &eacute;tait possible que votre
-ligne soit d&eacute;sactiv&eacute;e peu apr&egrave;s la connexion, d&ucirc;e &agrave;
-une mauvaise n&eacute;gociation de compression Predictor1 de
-<emphasis remap="bf">ppp</emphasis>
-
-Cela ne devrait arriver que si
-deux c&ocirc;t&eacute;s essayent de n&eacute;gocier des protocoles de
-contr&ocirc;le de compression (
-Compression Control Protocols (CCP) diff&eacute;rents.
-Ce probl&egrave;me est &agrave; pr&eacute;sent r&eacute;solu, mais si vous utilisez toujours une
-vieille version de
-<emphasis remap="bf">ppp</emphasis>,
-le probl&egrave;me peut-&ecirc;tre saut&eacute; avec la ligne
-
- <programlisting>
-disable pred1
- </programlisting>
-
- </para></sect2>
-
- <sect2>
- <title> Ppp se verrouille quand je "shell" pour le tester. </title>
-
-
- <para>
-Quand vous ex&eacute;cutez le <emphasis remap="tt">shell</emphasis> ou la
-commande <emphasis remap="tt">!</emphasis>,
-<emphasis remap="bf">ppp</emphasis> ex&eacute;cute un shell (ou si vous avez
-pass&eacute; des arguments, <emphasis remap="bf">ppp</emphasis>
-ex&eacute;cutera ces arguments). Ppp attendra que la commande se termine avant
-de continuer. Si vous avez l'intention d'utiliser la connexion ppp
-pendant que vous lancez la commande, la connexion appara&icirc;tra
-alors comme ayant &eacute;t&eacute; gel&eacute;e.
-Cela parce que <emphasis remap="bf">ppp</emphasis> attend que la
-commande se termine.
-
- </para>
-
- <para>
-Si vous voulez ex&eacute;cuter des commandes comme cela, utilisez plut&ocirc;t la
-commande <emphasis remap="tt">!bg</emphasis>.
-Cela ex&eacute;cutera la commande en arri&egrave;re plan, et ppp
-pourra continuer de servir la connexion.
-
- </para></sect2>
-
- <sect2>
- <title> Ppp sur un null-modem ne quitte jamais. </title>
-
- <para>
-Il n'y a aucune mani&egrave;re pour que <emphasis remap="bf">ppp</emphasis>
-d&eacute;termine automatiquement qu'une connexion directe
-s'est achev&eacute;e. Cela est d&ucirc; aux lignes utilis&eacute;es dans un c&acirc;ble s&eacute;rie
-null-modem. Quand on utilise cette sorte de connexion, LQR devrait
-&ecirc;tre toujours activ&eacute; avec la ligne :
-
- <programlisting>
-enable lqr
- </programlisting>
-
- </para>
-
- <para>
-LQR est accept&eacute; pas d&eacute;faut si n&eacute;goci&eacute; par l'autre parti.
-
- </para>
- </sect2>
- </sect1>
-
- <sect1>
- <title> Pourquoi ppp tente de se connecter sans raison em mode -auto ? </title>
-
- <para>
-Si <emphasis remap="bf">ppp</emphasis> tente de se comnnecter
-sans raison aucune, vous devez en d&eacute;terminer la cause et mettre en place
-des filtrages d'appels (dfilters) pour pr&eacute;venir de tels appels.
-
- </para>
-
- <para>
-Afin d'en d&eacute;terminer la cause, utilisez la ligne suivant :
-
- <programlisting>
-set log +tcp/ip
- </programlisting>
-
- </para>
-
- <para>
-Cela tracera tous le trafic &agrave; travers une connexion. La prochaine fois
-que la connexion se mettra en place de mani&egrave;re inattendue, vous verrez
-la raison trac&eacute; avec le moment o&ugrave; cela s'est produit &agrave; c&ocirc;t&eacute;.
- </para>
-
- <para>
-Vous pouvez &agrave; pr&eacute;sent d&eacute;sactiver les appels sous ces circonstances.
-D'habitude, ces sortes de probl&egrave;mes arrivent &agrave; cause des DNS lookup.
-Pour emp&ecirc;cher le DNS lookup d'&eacute;tablir une connexion (cela n'emp&ecirc;chera
-<emphasis remap="bf">pas</emphasis> <emphasis remap="bf">ppp</emphasis>
-de passer les paquets &agrave; travers une connexion &eacute;tablie), utilisez les
-lignes suivantes :
-
- <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>
-
- <para>
-Cela ne convient pas toujours puisqu'il
-enl&egrave;vera effectivement vos fonctionnalit&eacute;s de demandes d'appels - la
-plupart des programmes auront besoin du DNS lookup
-avant de faire quelque chose ayant un rapport avec le r&eacute;seau.
-
- </para>
-
- <para>
-Dans le cas DNS, vous pouvez essayer de d&eacute;terminer qui est-ce qui essaye
-actuellement de r&eacute;soudre le nom de l'h&ocirc;te.
-La plupart du temps, c'est
-<ulink url="http://www.freebsd.org/cgi/man.cgi?sendmail" >sendmail</ulink> le coupable.
-Vous devez vous assurer que vous avez dit &agrave; sendmail de ne faire aucun
-DNS lookup dans ses fichiers de configuration,
-regardez la section sur
-<ulink url="ispmail">la configuration du mail</ulink> pour les d&eacute;tails de comment cr&eacute;er son propre fichier de
-comfiguration, et qu'est ce qu'on doit mettre dedans.
-Vous pouvez aussi vouloir ajouter les lignes suivantes dans votre
-fichier <emphasis remap="bf">.mc</emphasis> :
-
- <programlisting>
-define(`confDELIVERY_MODE', `d')dnl
- </programlisting>
-
- </para>
-
- <para>
-Cela fera que sendmail mettra tout en file d'attente
-jusqu'&agrave; ce que la file soit lanc&eacute;e (habituellement, sendmail est
-invoqu&eacute; avec ``-bd -q30m'', lui disant de lancer la file
-d'attente toutes les 30 minutes) ou jusqu'&agrave; ce que un
-``sendmail -q'' soit effectu&eacute; (peut-&ecirc;tre dans votre fichier ppp.linkup).
-
- </para>
- <sect2>
- <title> Que veulent dire ces erreurs CCP ? </title>
-
-
- <para>
-Je n'arr&ecirc;te pas de voir les erreurs suivantes dans mon fichier log :
- <programlisting>
-CCP: CcpSendConfigReq
-CCP: Received Terminate Ack (1) state = Req-Sent (6)
- </programlisting>
-
- </para>
-
- <para>
-Ceci est obtenu parce que ppp est en train de n&eacute;gocier la compression
-Predictor1 et que l'autre parti ne veut pas du tout n&eacute;gocier de compression.
-Ces messages sont sans cons&eacute;quences aucune, mais si vous voulez les enleverm
-vous pouvez d&eacute;sactiver la compression Predictor1 aussi en local.
-
- <programlisting>
-disable pred1
- </programlisting>
-
- </para></sect2>
-
- <sect2>
- <title>Ppp se bloque durant les transferts de fichiers avec une erreur IO. </title>
-
- <para>
-Sous FreeBSD 2.2.2 et avant, il y avait un bug dans le driver tun
-qui stoppait tous les paquets entrants d'une taille plus grande que la taille
-MTU de l'interace tun.
-La r&eacute;ception de paquets plus grands que la taille du MTU
-r&eacute;sultait en une erreur IO qui &eacute;tait alors trac&eacute; avec syslogd,
- </para>
-
- <para>
-Les sp&eacute;cifications ppp disent qu'un MTU de 1500 devrait
-<emphasis remap="bf">toujours</emphasis> &ecirc;tre accept&eacute;
-comme un minimum, ceci
-quelque soit la n&eacute;gociation LCP. Il est toutefois possible que vous
-diminuez le MTU &agrave; moins de 1500, votre ISP vous transmettra des paquets
-de 1500 sans s'en pr&eacute;occuper, et cela vous bloquera,
-gelant ainsi la ligne.
-
- </para>
-
- <para>
-Ce probl&egrave;me peut &ecirc;tre contourn&eacute; en ne r&eacute;glant jamais un MTU en dessous
-de 1500 sous FreeBSD 2.2.2 et avant.
-
- </para></sect2>
-
- <sect2>
- <title> Pourquoi ppp ne trace-t-il pas ma vitesse de connexion ? </title>
-
- <para>
-La fa&ccedil;on de tracer toutes les lignes de la ``conversation'' de
-votre modem est d'activer :
-
- <programlisting>
-set log +connect
- </programlisting>
-
- </para>
-
- <para>
-Cela permettra &agrave;
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink>
-de tout tracer jusqu'&agrave; la derni&egrave;re cha&icirc;ne de requ&ecirc;te d'"attente"
- </para>
-
- <para>
-Si vous voulez voir votre vitesse de connexion et que vous utilisez
-PAP ou CHAP (et donc ne rien avoir avec "chat" apr&egrave;s le CONNECT
-dans le script dial - pas de script "set login"), vous devez
-vous assurer que vous pr&eacute;venez ppp de s'attendre tout la ligne CONNECT,
-quelque chose comme :
-
- <programlisting>
-set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"
- </programlisting>
-
- </para>
-
- <para>
-Ici, nous avons notre CONNECT, ne rien envoyer, et puis attendre
-un saut de ligne, for&ccedil;ant
-<emphasis remap="bf">ppp</emphasis> &agrave; lire toute la r&eacute;ponse
-CONNECT.
-
- </para></sect2>
-
- <sect2>
- <title>Ppp ignore le caract&egrave;re `\' dans mon script chat</title>
-
- <para>
-Ppp parse chacune des lignes de votre fichier de configuration, de telle
-sorte qu'il puisse interpr&ecirc;ter des chaines comme
-<emphasis remap="tt">set phone "123 456 789"</emphasis> correctement
-(et r&eacute;aliser qu'il n'y a que <emphasis remap="bf">un</emphasis>
-seul argument.
-Pour pouvoir sp&eacute;cifier un caract&egrave;re ``"'', vous devez
-l'&eacute;chapper avec un backslash (``\'').
-
- </para>
-
- <para>
-Quand l'interpr&ecirc;teur chat parse chaque argument, il re-interpr&ecirc;te
-l'argument de telle sorte &agrave; trouver des s&eacute;quences de caract&egrave;res
-d'&eacute;chappement comme
-``\P'' ou ``\T'' (voir les pages de manuel). En cons&eacute;quence de
-ce double-parsing, vous devez vous souvenir d'utiliser le nombre
-correct d'&eacute;chappement.
- </para>
-
- <para>
-Si vous voulez envoyer un caract&egrave;re ``\'' &agrave; votre modem,
-vous aurez besoin de faire quelque chose comme :
-
- <programlisting>
-set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"
- </programlisting>
-
- </para>
-
- <para>
-qui se r&eacute;sultera en la s&eacute;quence suivante :
-
- <programlisting>
-ATZ
-OK
-AT\X
-OK
- </programlisting>
-
- </para>
-
- <para>
-ou encore
-
- <programlisting>
-set phone 1234567
-set dial "\"\" ATZ OK ATDT\\T"
- </programlisting>
-
- </para>
-
- <para>
-r&eacute;sultera en la s&eacute;quence suivante :
-
- <programlisting>
-ATZ
-OK
-ATDT1234567
- </programlisting>
- </para>
- </sect2>
-
- <sect2>
- <title>Ppp re&ccedil;oit une erreur de segmentation, mais je ne trouve pas de fichier <emphasis remap="tt">ppp.core</emphasis></title>
-
-
- <para>
-Ppp (ou n'importe quel programme dans le m&ecirc;me cas) ne devrait jamais
-faire de coredump. Parce que ppp tourne avec une identit&eacute; d'utilisateur
-effectif de 0, le syst&egrave;me d'exploitation n'&eacute;crira pas d'image du core sur le
-disque avant de l'avoir termin&eacute;. Si, malgr&egrave; tout, ppp se
-<emphasis remap="bf">termine</emphasis> actuellement &agrave; cause d'une violation
-de segmentation, ou n'importe quel autre signal qui cause normalement un
-core dump, <emphasis remap="bf">et</emphasis> que vous &ecirc;tes s&ucirc;r
-que vous utilisez la derni&egrave;re version (voir le d&eacute;but de cette section),
-alors vous devriez faire la chose suivante :
- <programlisting>
-$ tar xfz ppp-*.src.tar.gz
-$ cd ppp*/ppp
-$ echo STRIP= >>Makefile
-$ echo CFLAGS+=-g >>Makefile
-$ make clean all
-$ su
-make install
-chmod 555 /usr/sbin/ppp
- </programlisting>
-
- </para>
-
- <para>
-Vous aurez alors une version d&eacute;boguable de ppp install&eacute;. Vous aurez &agrave; &ecirc;tre
-root pour lancer ppp puisque tous ses privil&egrave;ges auront &eacute;t&eacute; r&eacute;voqu&eacute;s. Quand
-vous d&eacute;marrez ppp, retenez soigneusement le r&eacute;pertoire courant dans lequel
-vous &eacute;tiez.
-
- </para>
-
- <para>
-A pr&eacute;sent, si et quand ppp recevra une violation de segmentation, cela
-cr&eacute;&eacute;ra un fichier core nomm&eacute; ppp.core. Vous aurez alors &agrave; faire la chose
-suivante :
-
- <programlisting>
-$ su
-gdb /usr/sbin/ppp ppp.core
-(gdb) bt
-.....
-(gdb) f 0
-.....
-(gdb) i args
-.....
-(gdb) l
-.....
- </programlisting>
-
- </para>
-
- <para>
-Toutes ces informations devront &ecirc;tre donn&eacute;es suivant votre question,
-rendant ainsi possible le diagnostique de votre probl&egrave;me.
- </para>
-
- <para>
-Si vous &ecirc;tes familier avec gdb, vous pouvez vouloir trouver d'autres
-techniques pour trouver ce qui a caus&eacute; le dump, et les adresses et
-valeurs des variables concern&eacute;es.
- </para></sect2>
-
- <sect2>
- <title> Le processus qui force un appel en mode auto ne se connecte jamais. </title>
-
- <para>
-Cela est un probl&egrave;me connu quand <emphasis remap="bf">ppp</emphasis>
-est r&eacute;gl&eacute; de telle sorte &agrave; n&eacute;gocier une adresse IP dynamique avec son
-homologue. Quand ce programme initial appelle
-<ulink url="http://www.freebsd.org/cgi/man.cgi?connect"> connect(2) </ulink>,
-l'adresse IP de l'interface tun est assign&eacute;e &agrave; l'extr&ecirc;mit&eacute; de la
-socket. Le noyau cr&eacute;e le premier paquet sortant et l'&eacute;crit sur le
-p&eacute;riph&eacute;rique tun. <emphasis remap="bf">Ppp</emphasis>
-lit alors le paquet et &eacute;tablit alors la connexion. Si, comme
-r&eacute;sultat de l'assignation dynamique de
-<emphasis remap="bf">ppp</emphasis>,
-l'adresse de l'interface est chang&eacute;e, l'extr&ecirc;mit&eacute; originale de
-la socket sera invalide. Tout paquet envoy&eacute; &agrave; l'autre parti sera alors
-en principe perdu. Et m&ecirc;me s'il ne l'&eacute;tait pas, toute r&eacute;ponse ne
-pourrait pas &ecirc;tre renvoy&eacute;e &agrave; la machine originelle puisque l'adresse IP
-ne serait plus poss&egrave;d&eacute;e par cette machine.
-
- </para>
-
- <para>
-Th&eacute;oriquement, il y a plusieurs mani&egrave;res d'aborder ce probl&egrave;me.
-Le mieux serait que l'homologue re-assigne la m&ecirc;me adresse IP si
-possible <emphasis remap="tt">:-)</emphasis>
-
- </para>
-
- <para>
-La meilleure m&eacute;thode de notre c&ocirc;t&eacute;, serait de ne jamais changer
-l'adresse IP de l'interface tun, mais &agrave; la place, changer tous les
-paquets sortant de telle sorte que les adresses IP de la source soient
-chang&eacute;es de l'interface Ip &agrave; l'IP n&eacute;goci&eacute; au vol. C'est essentiellement ce
-que
-<ulink url="http://www.freebsd.org/cgi/man.cgi?libalias"> libalias(3) </ulink>
-(et l'option <emphasis remap="bf">-alias</emphasis> de ppp)
-font actuellement.
- </para>
-
- <para>
-Une autre alternative (et probablement la plus s&ucirc;re); est d'impl&eacute;menter
-un appel syst&egrave;me qui change tous les sockets reli&eacute;es depuis une
-adresse IP &agrave; une autre.
-<emphasis remap="bf">Ppp</emphasis> utiliserait cet appel pour
-modifier la socket de tous les programmes existant lorsqu'une nouvelle
-adresse IP est n&eacute;goci&eacute;e.
-
- </para>
-
- <para>
-
-Une troisi&egrave;me possibilit&eacute; est d'autoriser &agrave; une interface de
-s'activer sans adresse IP. Les paquets sortant auront une adresse IP de
-255.255.255.255 jusqu'&agrave; ce que le premier SIOCAIFADDR ioctl soit fait.
-Cela reviendrait &agrave; lier enti&egrave;rement la socket, et
-&ccedil;a serait &agrave; <emphasis remap="bf">ppp</emphasis>
-de changer l'adresse IP source, mais seulement si il est &agrave;
-255.255.255.255, et seulement si le num&eacute;ro IP et le checksum IP
-doivent &ecirc;tre chang&eacute;s. Quoiqu'il en soit, c'est de la
-bidouille puisque le noyau enverra des paquets invalides &agrave; une
-interface mal configur&eacute;e, en supposant que d'autres
-m&eacute;canismes seront capables de r&eacute;parer les choses
-retrospectivement.
-
- </para>
-
- <para>
-Aucune de ces solutions n'a (encore) &eacute;t&eacute; impl&eacute;ment&eacute;e.
-
- </para></sect2>
-
- <sect2>
- <title>Pourquoi la plupart des jeux ne marchent pas avec l'option -alias ?</title>
-
-
- <para>
-La raison pour laquelle les jeux et assimil&eacute;s ne marchent pas avec
-libalias est que la machine ext&eacute;rieure essaye d'ouvrir une connexion
-ou envoyer des paquets UDP (non sollicit&eacute;s) &agrave; la machine
-interne. Le logiciel packet alias ne sait alors pas qu'il faut envoyer
-ces paquets &agrave; une machine interne.
- </para>
-
- <para>
-Pour que &ccedil;a marche, assurez vous que la seule chose qui tourne est le
-logiciel avec lequel vous avez des probl&egrave;mes, puis alors, soit vous
-lancez tcpdump sur votre interface tun de votre routeur, soit vous
-activez le login ppp tcp/ip (``set log +tcp/ip'') sur votre routeur.
-
- </para>
-
- <para>
-Quand vous d&eacute;marrez le logiciel incrimin&eacute;, vous devriez voir les paquets
-passer &agrave; travers la machine routeur. Quand quelque chose revient depuis
-l'ext&eacute;rieur, il sera retir&eacute; (c'est &ccedil;a le probl&egrave;me). Noter le num&eacute;ro
-de port de ces paquets, puis arr&ecirc;tez le logiciel incrimin&eacute;. Faite ceci
-quelques fois pour voir si les num&eacute;ro de ports sont consistants. Si ils
-le sont, alors la ligne suivante dans la section appropri&eacute;e de
-/etc/ppp/ppp.conf rendra le logiciel fonctionnel.
-
- <programlisting>
-alias port proto internalmachine:port port
- </programlisting>
-
- </para>
-
- <para>
-o&ugrave; ``proto'' est soit ``tcp'' ou ``udp'',
-``internalmachine'' est la machine &agrave; laquelle vous voulez que les
-paquets soient envoy&eacute;s et ``port'' le num&eacute;ro de port de destination des
-paquets.
-
- </para>
-
- <para>
-Vous ne pourrez pas utiliser le logiciel sur d'autres machines sans
-changer la commande du dessus, et lancer le logiciel sur 2 machines
-internes en m&ecirc;me temps est hors de question - apr&egrave;s tout, le monde
-ext&eacute;rieur voit tout votre r&eacute;seau entier comme une seule machine.
- </para>
-
- <para>
-Si les num&eacute;ros de ports ne sont pas consistants, il y a 3 autres
-options :
-
- </para>
-
- <para>
-<emphasis remap="bf">1)</emphasis> Soumettre le support dans libalias.
-Des exemples de ``cas sp&eacute;ciaux'' peuvent &ecirc;tre trouv&eacute;s dans
-/usr/src/lib/libalias/alias_*.c (alias_ftp.c
-iest un bon prototype).
-Cela implique habituellement la lecture de certains paquets sortant
-reconnus, identification des instructions qui dit &agrave; la machine
-ext&eacute;rieure d'initialiser la connexion en retour vers machine interne sur un port
-(al&eacute;atoire) sp&eacute;cifique, et mettre en place une
-``route'' dans la table d'alias de telle sorte que les paquets concern&eacute;s
-sachent o&ugrave; aller.
-
- </para>
-
- <para>
-C'est la solution la plus difficile, mais c'est la meilleure et
-permettra au logiciel de marcher sur plusieurs machines
-
- </para>
-
- <para>
-<emphasis remap="bf">2)</emphasis>
-Utiliser un proxy. L'application peut pouvoir supporter socks5 par
-exemple, ou (comme dans le cas de ``cvsup'') peut avoir une option
-``passive'' qui &eacute;vite d'avoir &agrave; toujours demander que l'autre parti
-ouvre une connexion en retour sur la machine locale.
-
- </para>
-
- <para>
-<emphasis remap="bf">3)</emphasis>
-Tout rediriger vers une machine interne utilisant
-``alias addr''. C'est l'approche "bourrin".
-
- </para></sect2>
-
- <sect2>
- <title>Rien de cela ne marche - je suis d&eacute;sesp&eacute;r&eacute; !</title>
- <para>
-Si tout le reste &eacute;choue, envoyer autant d'informations que vous pouvez,
-y compris vos fichiers de configuration, comment vous avez d&eacute;marr&eacute;
-<emphasis remap="bf">ppp</emphasis>, les parties pertinentes de
-votre fichier log, et la sortie de la commande
-<ulink url="http://www.freebsd.org/cgi/man.cgi?netstat"> netstat -rn </ulink>(avant et apr&egrave;s connexion) &agrave; la liste de diffusion
-<ulink url="mailto:freebsd-questions@FreeBSD.org"> freebsd-questions@FreeBSD.org </ulink>ou au newsgroup
-<ulink url="news:comp.unix.bsd.freebsd.misc"> comp.unix.bsd.freebsd.misc, </ulink>et quelqu'un devrait vous orienter dans la bonne direction.
- </para></sect2>
-
- </sect1>
-
- <sect1>
- <title>Je ne peux pas cr&eacute;er un p&eacute;riph&eacute;rique <emphasis remap="tt">/dev/ed0</emphasis> ! </title>
- <para>
-Dans le cadre des r&eacute;seaux Berkeley, les interfaces r&eacute;seaux sont
-seulement directement accessibles par le code du noyau.
-Regarder le fichier
-<emphasis remap="tt">/etc/rc.network</emphasis>
-et les pages de manuels pour les diff&eacute;rents programmes r&eacute;seaux mentionn&eacute;s
-ici pour plus d'informations. Si cela vous est compl&egrave;tement confus, vous
-devriez prendre un livre d&eacute;crivant l'administration r&eacute;seaux sur un autre
-syst&egrave;me d'exploitation relatif &agrave; BSD; &agrave; quelques exceptions
-mineures, administrer un r&eacute;seau sous FreeBSD est basiquement la
-m&ecirc;me chose que sur un SunOS 4.0 ou un Ultrix.
-
- </para>
- </sect1>
-
- <sect1>
- <title>Comment puis-je r&eacute;gler les alias &eacute;thernet ?</title>
-
- <para>
-Ajouter ``<emphasis remap="tt">netmask 0xffffffff</emphasis>'' &agrave; votre
-ligne de commande
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ifconfig">ifconfig</ulink>
-comme ci-dessous :
-
- <programlisting>
-ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff
- </programlisting>
- </para>
-
- </sect1>
-
- <sect1>
- <title> Comment puis-je faire pour que mon 3C503 utilise l'autre port r&eacute;seau ? </title>
-
- <para>
-Si vous voulez utiliser les autres ports, vous avez &agrave; sp&eacute;cifier un
-param&ecirc;tre suppl&eacute;mentaire dans la ligne de commande
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ifconfig">ifconfig</ulink>.
-Le port par d&eacute;faut est``<emphasis remap="tt">link0</emphasis>''.
-Pour utiliser le port AUI &agrave; la place du BNC,utiliser
-``<emphasis remap="tt">link2</emphasis>''.
-Ces param&ecirc;tres devraient &ecirc;tre sp&eacute;cifi&eacute;s en utilisant les variables
-de ifconfig_* variables dans <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink>.
- </para>
- </sect1>
-
- <sect1>
- <title>J'ai des probl&egrave;mes avec NFS depuis/vers FreeBSD.</title>
-
- <para>
-Certaines cartes r&eacute;seaux sont meilleures que d'autres
-et peuvent causer quelquefois des probl&egrave;mes lors d'applications
-r&eacute;seaux intensives comme NFS.
- </para>
-
- <para>
-Regarder <ulink url="../handbook/nfs.html">la partie du Handbook sur NFS </ulink>pour plus d'informations &agrave; ce sujet.
- </para>
- </sect1>
-
- <sect1>
- <title> Pourquoi ne puis-je pas monter par NFS depuis une machine sous Linux ? </title>
-
- <para>
-Certaines versions du code NFS de Linux ne peuvent accepter des
-requ&ecirc;tes de montages que depuis un port privil&egrave;gi&eacute;; essayez
-
- <programlisting>
-mount -o -P linuxbox:/blah /mnt
- </programlisting>
-
- </para>
- </sect1>
-
- <sect1>
- <title> Pourquoi ne puis-je pas monter un NFS depuis une machine Sun ? </title>
-
- <para>
-Les stations de travail Sun sous SunOS 4.X n'acceptent seulement des
-requ&ecirc;tes de montage que depuis un port privil&egrave;gi&eacute;; essayez
-
- <programlisting>
-mount -o -P sunbox:/blah /mnt
- </programlisting>
-
- </para>
- </sect1>
-
- <sect1>
- <title>J'ai des probl&egrave;me pour parler PPP &agrave; des machines NeXTStep.</title>
-
- <para>
-Essayer de d&eacute;sactiver l'extension TCP dans <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink> en changeant la variable &agrave; NO :
-
- <programlisting>
-tcp_extensions=NO
- </programlisting>
-
- </para>
-
- <para>
-les machines Xylogic's Annex ne marchent pas non plus dans ce contexte,
-et vous devez changer de m&ecirc;me que ci-dessus pour pouvoir vous
-connecter au travers d'elles.
-
- </para>
- </sect1>
-
- <sect1>
- <title>Comment activer le support multicast IP ?</title>
-
- <para>
-Les op&eacute;rations multicast sont enti&egrave;rement support&eacute;es par FreeBSD 2.0 et
-plus par d&eacute;faut. Si vous voulez que votre machine marche comme un
-routeur multicast, vous devez recompiler votre noyau avec l'option
-<emphasis remap="tt">MROUTING</emphasis> et lancer
-<emphasis remap="tt">mrouted</emphasis>. FreeBSD 2.2 et plus
-d&eacute;marrera <emphasis remap="tt">mrouted</emphasis> au moment du boot si
-l'option <emphasis remap="tt">mrouted_enable</emphasis> est mis &agrave;
-"YES" dans <emphasis remap="tt">/etc/rc.conf</emphasis>.
-
- </para>
-
- <para>
-Les outils MBONE tools sont disponibles dans leur
-propre cat&eacute;gorie de ports, mbone. Si vous cherchez les outils de
-conf&eacute;rence <emphasis remap="tt">vic</emphasis> et
-<emphasis remap="tt">vat</emphasis>,
-c'est l&agrave; qu'il faut voir !
-
- </para>
-
- <para>
-Pour plus d'informations, regarder
-<ulink url="http://www.mbone.com/">le web d'information Mbone</ulink>.
-
- </para>
- </sect1>
-
- <sect1>
- <title>Quelles cartes r&eacute;seaux sont bas&eacute;es sur le chipset DEC PCI ?</title>
-
- <para>
-Voici une liste compil&eacute;e par
-<ulink url="mailto:gfoster@driver.nsta.org">Glen Foster</ulink>,
-avec quelques ajouts r&eacute;cents :
-
- <programlisting>
-Vendor Model
-----------------------------------------------
-ASUS PCI-L101-TB
-Accton ENI1203
-Cogent EM960PCI
-Compex ENET32-PCI
-D-Link DE-530
-Dayna DP1203, DP2100
-DEC DE435
-Danpex EN-9400P3
-JCIS Condor JC1260
-Linksys EtherPCI
-Mylex LNP101
-SMC EtherPower 10/100 (Model 9332)
-SMC EtherPower (Model 8432)
-TopWare TE-3500P
-Zynx ZX342
- </programlisting>
-
- </para>
- </sect1>
-
- <sect1>
- <title> Pourquoi dois-je utiliser le FQDN pour les h&ocirc;tes de mon site ? </title>
-
-
- <para>
-Vous verrez probablement que l'h&ocirc;te est actuellement dans un domaine
-diff&eacute;rent; par exemple, si vous &ecirc;tes dans foo.bar.edu
-et que vous voulez atteindre un h&ocirc;te nomm&eacute; ``mumble''
-dans le domaine bar.edu domain, vous aurez &agrave; vous y r&eacute;f&eacute;rer
-par son nom de domaine enti&egrave;rement qualifi&eacute;, ``mumble.bar.edu'', &agrave; la place de
-juste ``mumble''.
-
- </para>
-
- <para>
-Traditionellement, cela &eacute;tait autoris&eacute;s par les r&eacute;solveurs
-BSD BIND. Malgr&egrave; tout, la version courante de
-<ulink url="http://www.freebsd.org/cgi/man.cgi?named">bind</ulink>
-qui est fournie avec FreeBSD ne fournit plus d'abbr&eacute;viation par d&eacute;faut
-pour un domaine non enti&egrave;rement qualifi&eacute;; autre que le domaine dans
-lequel vous &ecirc;tes.
-Ainsi, un h&ocirc;te non-qualifi&eacute; <emphasis remap="tt">mumble</emphasis>
-doit soit &ecirc;tre trouv&eacute; comme
-<emphasis remap="tt">mumble.foo.bar.edu</emphasis>,
-ou alors il sera cherch&eacute; dans le domaine racine.
-
- </para>
-
- <para>
-Cela est diff&eacute;rent du comportement d&eacute;crit auparavant, o&ugrave; la recherche
-continuait &agrave; travers <emphasis remap="tt">mumble.bar.edu</emphasis>,
-et <emphasis remap="tt">mumble.edu</emphasis>.
-Jetez un coup d'oeil &agrave; la RFC 1535 pour savoir pourquoi cela est
-consid&eacute;r&eacute; comme une mauvaise pratique, ou encore m&ecirc;me un trou de
-s&eacute;curit&eacute;.
- </para>
-
- <para>
-Comme d&eacute;tour, vous pouvez placer la ligne :
- <programlisting>
-search foo.bar.edu bar.edu
- </programlisting>
-
- </para>
-
- <para>
-&agrave; la place de la pr&eacute;c&eacute;dente :
-
- <programlisting>
-domain foo.bar.edu
- </programlisting>
-
- </para>
-
- <para>
-dans votre fichier
-<ulink url="http://www.freebsd.org/cgi/man.cgi?resolv.conf"> /etc/resolv.conf </ulink>.
-Quoiqu'il en soit, assurez vous que l'ordre de recherche
-ne vas pas en dehors des ``limites entre l'administration locale
-et publique'', comme appel&eacute;e dans la RFC 1535.
-
- </para>
- </sect1>
-
- <sect1>
- <title>``Permission denied'' pour toutes les op&eacute;rations r&eacute;seaux.</title>
-
-
- <para>
-Si vous avez compil&eacute; votre noyau avc l'option
-<emphasis remap="tt">IPFIREWALL</emphasis>, vous devez &ecirc;tre pr&eacute;venu, que la
-politique par d&eacute;faut depuis le
-2.1.7R (cela a chang&eacute; durant le d&eacute;veloppement
-du 2.1-STABLE) est de refuser tous les paquets qui ne sont pas
-explicitement autoris&eacute;s.
- </para>
-
- <para>
-Si vous avez inintentionnellement mal configur&eacute; votre syst&egrave;me pour le
-firewall, vous pouvez r&eacute;tablir les fonctionnalit&eacute; r&eacute;seaux en tapant la
-commande suivante sous root :
-
- <programlisting>
-ipfw add 65534 allow all from any to any
- </programlisting>
-
- </para>
-
- <para>
-Vous pouvez aussi r&eacute;gler "firewall_type='open'" dans
-<emphasis remap="tt">/etc/rc.conf</emphasis>.
-
- </para>
-
- <para>
-Pour plus d'informations sur la configuration d'un firewall FreeBSD,
-voir la <ulink url="../handbook/firewalls.html">section correspondante du handbook</ulink>.
-
- </para>
- </sect1>
-
- <sect1>
- <title>Combien d'overhead, IPFW implique-t-il ?</title>
-
- <para>
-La r&eacute;ponse &agrave; ceci d&eacute;pend pour la plupart &agrave; votre ensemble de r&egrave;gle et &agrave;
-votre vitesse de processeur. Pour la plupart des applications
-utilisant ethernet et de petits ensembles de r&egrave;gles, la r&eacute;ponse est :
-n&eacute;gligeable. Pour tous ceux d'entre vous qui veulent des mesures
-actuelles pour satisfaire leur curiosit&eacute;, continuez &agrave; lire :
-
- </para>
-
- <para>
-Les mesures suivantes ont &eacute;t&eacute; r&eacute;alis&eacute;es en utilisant 2.2.5-STABLE sur
-un 486-66. IPFW a &eacute;t&eacute; modifi&eacute; pour mesurer le temps &eacute;coul&eacute; par
-l'interm&eacute;diaire de la routine <emphasis remap="tt">ip_fw_chk</emphasis>
-en affichant les r&eacute;sultats sur la console tous les 1000 paquets.
-
- </para>
-
- <para>
-2 ensembles de r&egrave;gles, chacun avec 1000 r&egrave;gles ont &eacute;t&eacute; test&eacute;s.
-Le premier ensemble a &eacute;t&eacute; con&ccedil;u pour d&eacute;montrer le sc&eacute;nario du pire des
-cas en r&eacute;p&eacute;tant la r&egrave;gle :
-
- <programlisting>
-ipfw add deny tcp from any to any 55555
- </programlisting>
-
- </para>
-
- <para>
-Cela d&eacute;montre le pire des cas en faisant que chaque paquet IPFW entraine l'ex&eacute;cution de
-la routine de v&eacute;rification qui finallement d&eacute;cide que le
-paquet ne correspond pas aux r&egrave;gles (en vertu du num&eacute;ro de port)?
-Ap&egrave;s la 999eme it&eacute;ration de cette r&egrave;gle, il y avait un
-<emphasis remap="tt">allow ip from any to any</emphasis>.
-
- </para>
-
- <para>
-Le second ensemble de r&egrave;gles a &eacute;t&eacute; con&ccedil;u pour annuler la v&eacute;rification de
-r&egrave;gle tr&egrave;s rapidement :
-
- <programlisting>
-ipfw add deny ip from 1.2.3.4 to 1.2.3.4
- </programlisting>
-
- </para>
-
- <para>
-Les adresses IP des sources non correspondantes aux r&egrave;gles &eacute;nonc&eacute;es
-ci-dessus font que ces r&egrave;gles sont saut&eacute;es tr&egrave;s rapidement. Comme
-auparavant, la 1000eme r&egrave;gle &eacute;tait un
-<emphasis remap="tt">allow ip from any to any</emphasis>.
-
- </para>
-
- <para>
-L'&eacute;tude par paquet dans le premier cas a &eacute;t&eacute; approximativement de
-2.703ms/paquet, soit en gros 2.7 microseconds par r&egrave;gle
-.
-Ainsi, la limite th&eacute;orique d'&eacute;tude de paquet avec ces r&egrave;gles est de 370
-paquets par secondes. En supposant un &eacute;thernet 10Mbps et des paquets
-d'environ 1500 bytes, nous ne pourrons &ecirc;tre capable que d'obtenir une
-utilisation de la bande passante de 55.5%
- </para>
-
- <para>
-Pour le dernier cas, chaque paquet a &eacute;t&eacute; &eacute;tudi&eacute; en approximativement
-1.172ms, soit en gros 1.2 microseconds par r&egrave;gle.
-La limite th&eacute;orique de l'&eacute;tude des paquets ici, serait d'environ de 853
-paquets par secondes, ce qui pourrait consommer une bande passante
-d'un &eacute;thernet 10Mbps.
-
- </para>
-
- <para>
-Le nombre excessif de r&egrave;gle test&eacute;s, et la nature de ces r&egrave;gles ne
-fournissent pas un sc&eacute;nario du monde r&eacute;el -- ils ont &eacute;t&eacute; utilis&eacute;s que
-pour g&eacute;n&eacute;rer les informations de temps pr&eacute;sent&eacute;s ici.Voici certaines
-choses &agrave; garder &agrave; l'esprit pour construire un ensemble de r&egrave;gles
-efficaces :
-
- <itemizedlist>
-
- <listitem>
- <para>
-Placer une r&egrave;gle d'`&eacute;tablissement' tr&egrave;s t&ocirc;t afin de pouvoir
-g&eacute;rer la majorit&eacute; du trafic TCP. Ne mettre aucun
-<emphasis remap="tt">allow tcp</emphasis>
-avant cette r&egrave;gle.
- </para>
- </listitem>
-
- <listitem>
- <para>
-Placer les r&egrave;gles souvent sollicit&eacute;es le plus au d&eacute;but de l'ensemble
-des r&egrave;gles plut&ocirc;t que celles rarement utilis&eacute;es
-(<emphasis remap="bf">sans changer la permissivit&eacute; du firewall </emphasis>, bien s&ucirc;r).
-Vous pourrez voir quels sont les r&egrave;gles les plus souvent utilis&eacute;es en
-examinant les statistiques des comptages des paquets avec
-<emphasis remap="tt">ipfw -a l</emphasis>.
- </para>
- </listitem>
-
- </itemizedlist>
-</para>
- </sect1>
-
- <sect1>
- <title>Comment puis-je rediriger les requ&ecirc;tes de services d'une machine vers une autre ? </title>
-
- <para>
-Vous pouvez rediriger des requ&ecirc;tes FTP (et autre services) avec le
-paquetage 'socket', disponible dans l'arbre des ports dans la cat&eacute;gorie
-'sysutils'. Remplacer simplement la ligne de commande de
-service pour appeler socket &agrave; la place, ainsi:
-
-<programlisting>
-ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp
-</programlisting>
-
- </para>
-
- <para>
-o&ugrave; 'ftp.foo.com' et 'ftp' sont les h&ocirc;tes et les ports o&ugrave; se diriger
-respectivement.
- </para>
- </sect1>
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/preface.sgml b/fr_FR.ISO8859-1/books/faq/preface.sgml
deleted file mode 100644
index 6bbf081975..0000000000
--- a/fr_FR.ISO8859-1/books/faq/preface.sgml
+++ /dev/null
@@ -1,785 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.33
--->
-
-<chapter id="preface">
- <beginpage>
- <title>Pr&eacute;face</title>
-
- <sect1>
- <title>Quel est le but de cette FAQ&nbsp;?</title>
- <para>Comme toutes les FAQ Usenet, ce document contient les
-questions les plus fr&eacute;quemment pos&eacute;es &agrave; propos du syst&egrave;me
-d'exploitation FreeBSD, ainsi que leurs r&eacute;ponses. Bien que
-destin&eacute;es, &agrave; l'origine, &agrave; r&eacute;duire le trafic et &eacute;viter que
-les m&ecirc;mes questions soient pos&eacute;es encore et encore, les FAQ
-sont maintenant reconnues comme de pr&eacute;cieuses sources
-d'information. </para>
-
- <para>Tous les efforts ont &eacute;t&eacute; apport&eacute;s pour rendre
-cette FAQ la plus compl&egrave;te possible. Si vous avez des commentaires
-la concernant ou
-si vous voulez y contribuer, envoyez un e-mail au <ulink
-url="mailto:freebsd-france@freebsd.francenet.fr">responsable de cette
-FAQ</ulink>.
-</para>
- </sect1>
-
- <sect1>
- <title>FreeBSD c'est quoi&nbsp;?</title>
-
- <para>Pour r&eacute;sumer, FreeBSD 2.X est un syst&egrave;me d'exploitation
-UN*X bas&eacute; sur la distribution 4.4BSD-lite de l'universit&eacute; de
-Berkeley pour des plate-formes i386.
-Il est aussi bas&eacute; indirectement sur le
-portage de William Jolitz de la distribution Net/2 de l'universit&eacute; de
-Berkeley, plus connu sous le nom de 386BSD, mais tr&egrave;s peu de code de
-386BSD subsiste. Une description plus compl&egrave;te de ce qu'est
-FreeBSD et &agrave; quoi il peut vous servir, peut &ecirc;tre trouv&eacute;e &agrave; <ulink
-url="http://www.fr.freebsd.org">la page d'accueil de
-FreeBSD</ulink>. </para>
-
-
- <para>FreeBSD est utilis&eacute; par des soci&eacute;t&eacute;s commerciales,
-fournisseurs d'acc&egrave;s &agrave; l'Internet, chercheurs, professionnels de
-l'informatique, &eacute;tudiants et particuliers &agrave; travers le monde entier
-pour travailler, apprendre et se divertir. Reportez-vous &agrave; la <ulink
-url="http://www.fr.freebsd.org/gallery/gallery.html">galerie
-FreeBSD</ulink> pour vous faire une id&eacute;e.</para>
-
-
- <para>Pour plus de d&eacute;tails et d'informations sur FreeBSD,
-r&eacute;f&eacute;rez vous au <ulink
-url="&url.handbook;index.html">manuel de FreeBSD</ulink></para>
- </sect1>
- <sect1>
- <title>Quels sont les buts de FreeBSD&nbsp;?</title>
- <para>L'objectif du projet FreeBSD est de fournir un logiciel qui
- puisse &ecirc;tre utilis&eacute; &agrave; n'importe quelle fin et sans aucun restriction.
- Nombre d'entre nous sont impliqu&eacute;s de fa&ccedil;on significative dans le
- code (et dans le projet) et ne refuseraient certainement pas une
- petite compensation financi&egrave;re de temps &agrave; autre, mais ce n'est
- certainement pas dans nos intentions d'insister l&agrave; dessus. Nous
- croyons que notre premi&egrave;re et principale &ldquo;mission&rdquo;
- est de fournir du code &agrave; tout le monde, pour n'importe quel projet,
- de fa&ccedil;on &agrave; ce que l'il soit utilis&eacute; le plus possible et avec
- le maximum d'avantages. C'est, nous le pensons, l'un des objectifs
- les plus fondamentaux du Logiciel Libre et l'un de ceux que nous
- soutenons avec enthousiasme.</para>
-
- <para>Le code de l'arborescence des sources, qui est r&eacute;gi par la
- Licence Publique GNU (&ldquo;GNU Public
- License&rdquo;&nbsp;-&nbsp;GPL) ou
- la Licence Publique GNU pour les Biblioth&egrave;ques (&ldquo;GNU Library
- Public License&rdquo;&nbsp;-&nbsp;GLPL) impose l&eacute;g&egrave;rement plus de
- contraintes, bien que plut&ocirc;t li&eacute;es &agrave; une disponibilit&eacute; plus grande
- qu'au contraire, comme c'est g&eacute;n&eacute;ralement le cas. En raison des
- complications suppl&eacute;mentaires qui peuvent r&eacute;sulter de l'utilisation
- commerciale de logiciels GPL, nous essayons, cependant de remplacer
- ces derniers par des logiciels soumis &agrave; la licence BSD qui est plus
- souple, chaque fois que c'est possible.</para>
- </sect1>
-
- <sect1>
- <title>Pourquoi le nom FreeBSD&nbsp;?</title>
-
- <para><itemizedlist>
- <listitem>
- <para>Il peut &ecirc;tre utilis&eacute; gratuitement, m&ecirc;me pour un usage commercial.</para>
- </listitem>
- <listitem><para>L'int&eacute;gralit&eacute; des sources est disponible
-gratuitement, et le moins de restrictions possible ont &eacute;t&eacute; plac&eacute;es sur
-son utilisation, sa distribution et son incorporation dans d'autres travaux
-(&agrave; des fins commerciales ou non).</para>
- </listitem>
- <listitem><para>N'importe quelle personne qui a une nouvelle fonctionnalit&eacute;
-et/ou une correction de bogue peut soumettre une portion de
-code, qui pourra &ecirc;tre inclus dans l'arbre de
-d&eacute;veloppement (moyennant une ou deux conditions &eacute;videntes).</para>
- </listitem>
- </itemizedlist>
- </para>
- <para> Pour ceux de nos lecteurs dont la langue maternelle n'est
-pas l'anglais, il est important de rappeler que le mot "free"
-est utilis&eacute; ici de deux mani&egrave;res, l'une signifiant "gratuitement"
-et l'autre "vous pouvez faire ce que vous voulez".
-Except&eacute; une ou deux choses que vous <emphasis>ne pouvez</emphasis>
-pas faire avec le code FreeBSD, par exemple pr&eacute;tendre que vous l'avez
-d&eacute;velopp&eacute;, vous pouvez r&eacute;ellement faire ce que vous en voulez. </para>
- </sect1>
-
- <sect1>
- <title>Quelle est la derni&egrave;re version de FreeBSD&nbsp;?</title>
-
-<!-- 1.30 @@ -->
- <para>La <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/3.1-RELEASE"> version 3.1</ulink> est la derni&egrave;re version <emphasis remap="bf">stable</emphasis>&nbsp;; elle a &eacute;t&eacute; mise en circulation en f&eacute;vrier 1999.
-C'est aussi la derni&egrave;re version <emphasis remap="bf">
-RELEASE</emphasis>.
-</para>
- <para>En quelques mots, la branche<emphasis
-remap="bf">-stable</emphasis> est destin&eacute;e aux fournisseurs d'acc&egrave;s &agrave;
-l'Internet et autres utilisateurs professionnels qui
-recherchent un syst&egrave;me stable ainsi que des changements mineurs lors de la
-mise &agrave; jour de leur syst&egrave;me en derni&egrave;re version.
-
-<!--
-Actuellement ces deux
-versions ne font qu'une, mais il ne devrait pas tarder avant que la branche <emphasis remap="bf">-current</emphasis> soit suffisemment polie pour une distribution g&eacute;n&eacute;rale. </para>
-
- <para>Cela ne veut pas dire que la version 3.0-STABLE n'est pas
-utilisable en production, et beaucoup de personnes qui ont besoin de
-nouvelles fonctionnalit&eacute;s sp&eacute;cifiques &agrave; la version 3.0 (nouvelle version des compilateurs, code
-r&eacute;seau plus optimis&eacute;, etc) ont d&eacute;cid&eacute; de tenter leur chance sans probl&egrave;mes. Nous ne voulons
-tout simplement pas <quote>certifier</quote> la version 3.0 comme
-bonne pour le service avant qu'elle ne soit livr&eacute;e comme 3.1-RELEASE en f&eacute;vrier 1999.
--->
-</para>
- </sect1>
-
- <sect1>
- <title>Qu'est-ce que FreeBSD-current&nbsp;?</title>
-<!-- A RELIRE adresse relative/absolue a voir -->
- <para><ulink
-url="http://www.freebsd-fr.org/handbook/current.html">FreeBSD-current</ulink>
-est la version de d&eacute;veloppement du syst&egrave;me d'exploitation, qui
-deviendra en temps utile la version 4.0-RELEASE. Comme telle, cette version ne peut
-int&eacute;resser que les d&eacute;veloppeurs du noyau ainsi que certains
-passionn&eacute;s. Voyez <ulink
-url="http://www.freebsd-fr.org/handbook/current.html"> la section
-appropri&eacute;e</ulink> du <ulink
-url="&url.handbook;index.html">manuel </ulink>
-pour plus de d&eacute;tails sur l'utilisation de -current.</para>
-
- <para>Si vous n'&ecirc;tes pas familier avec ce syst&egrave;me d'exploitation,
-ou que vous n'&ecirc;tes pas capable de diff&eacute;rencier un probl&egrave;me temporaire
-d'un probl&egrave;me critique, vous ne devez pas utiliser
-FreeBSD-current. Cette branche &eacute;volue assez rapidement et peut ne pas
-&ecirc;tre compil&eacute;e pendant un certain temps.
-
-<!-- -->
-Les personnes utilisant
-FreeBSD-current doivent &ecirc;tre capables d'analyser n'importe quel
-probl&egrave;me et de ne rapporter que les erreurs utiles.
-
-<!--
-People that use FreeBSD-current are expected to be able to analyze any problems and only report them if they are deemed to be mistakes rather than ``glitches''.
-Questions such as ``make world produces some error about groups'' on the
--current mailing list are sometimes treated with contempt.
--->
-
-</para>
-
- <para>Assez souvent, une <ulink
-url="http://www.fr.freebsd.org/releases/snapshots.html">version de
-test</ulink> est cr&eacute;&eacute;e depuis la branche de d&eacute;veloppement -current et
-occasionnellement une distribution sur CDROM est disponible. Les buts
-de chaque version de test sont les suivants:
-
-<itemizedlist>
- <listitem>
- <para>Tester la derni&egrave;re version du programme d'installation.</para>
- </listitem>
- <listitem>
- <para>Donner aux personnes voulant utiliser -current mais
-n'ayant pas le temps ou la bande passante pour suivre jour apr&egrave;s jour
-les &eacute;volutions du syst&egrave;me, une fa&ccedil;on simple de faire
-&eacute;voluer leur syst&egrave;me.</para>
-
- </listitem>
- <listitem>
- <para>Garder un point de synchronisation pour les sources
-du syst&egrave;me actuel, juste au cas ou nous casserions quelque chose
-plus tard d'une fa&ccedil;on irr&eacute;cup&eacute;rable (Bien sur, CVS nous emp&ecirc;che
-normalement d'en arriver l&agrave; :-).</para>
-
- </listitem>
- <listitem>
-<para>V&eacute;rifier que toutes les nouvelles fonctionnalit&eacute;s n&eacute;cessitant
-des tests ont le nombre maximum de testeurs potentiels.</para>
- </listitem>
- </itemizedlist>
-
-</para>
- <para>Aucune garantie ne peut &ecirc;tre donn&eacute;e sur le fait que les
-versions de test puissent &ecirc;tre consid&eacute;r&eacute;es comme des versions "de
-production". Pour des syst&egrave;mes en production, vous devez attendre la
-version finale.</para>
-
-
- <para>Les versions de test sont directement t&eacute;l&eacute;chargeables
-depuis <ulink url="ftp://current.freebsd.or/pub/FreeBSD"> ce
-site</ulink> et sont g&eacute;n&eacute;r&eacute;es en moyenne une fois par jour pour les
-branches 4.0-current et 3.0-stable.</para>
-
- </sect1>
-
- <sect1>
- <title>Quel est le concept de la branche FreeBSD-stable&nbsp;?</title>
-
-<!-- A RELIRE adresse relative/absolue a voir -->
- <para>Revenons un peu en arri&egrave;re, lorsque la version 2.0.5 de
-FreeBSD fut livr&eacute;e, nous avons d&eacute;cid&eacute; de scinder le d&eacute;veloppement en
-deux branches. Une nomm&eacute;e <ulink
-url="http://www.freebsd-fr.org/handbook/stable.html">-stable</ulink>,
-o&ugrave; nous avons d&eacute;cid&eacute; de n'inclure que les correctifs test&eacute;s et
-contenant quelques ajouts de fonctionnalit&eacute;s (pour les fournisseurs
-d'acc&egrave;s ou les soci&eacute;t&eacute;s &agrave; vocation commerciale o&ugrave; les fonctionnalit&eacute;s
-exp&eacute;rimentales sont plus qu'ind&eacute;sirables). L'autre nomm&eacute;e
-<ulink
-url="http://www.freebsd-fr.org/handbook/current.html">-current</ulink>
-qui nous emm&egrave;nera jusqu'&agrave; la version 4.0-RELEASE (et audel&agrave;) depuis la livraison 2.0. Un dessin
-ASCII qui vous montre &agrave; quoi ressemble l'arbre de d&eacute;veloppement&nbsp;:
-</para>
-
- <figure>
- <title>L'arbre de d&eacute;veloppement</title>
- <programlisting>
- 2.0
- |
- |
- | [2.1-stable]
-*Nouvelle BRANCHE* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [fin de la branche 2.1-stable]
- | (Mars 1997)
- |
- |
- | [2.2-stable]
-*Nouvelle BRANCHE* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [fin]
- |(Mars 1997) (Octobre 97) (Avril 98) (Juillet 98) (D&eacute;cembre 1998)
- |
- |
- 3.0-SNAPs (Debut 1er trimestre 1997)
- |
- |
- 3.0.0-RELEASE (Octobre 1998)
- |
- | [3.0-stable]
-*Nouvelle BRANCHE* 3.1 (Feb 1999) -> ... future 3.x releases ...
- |
- |
- \|/
- +
- [4.0-current continues]
-</programlisting>
- </figure>
-
- <para> La branche -current progresse lentement vers la version 4.0 et au-del&agrave;,
-la branche 2.2-stable &eacute;tant termin&eacute;e avec la version 2.2.8.
-La branche 3.0-stable l'a maintenant remplac&eacute;e, la prochaine version arrivant avec la 3.1 au d&eacute;but 1999 .
-La version 4.0-current est maintenant la "branche
-courante" avec les premi&egrave;res versions 4.0 apparaissant au premier trimestre 2000.</para>
-
-
- </sect1>
-
-<!-- suppression de la section "Pourquoi la branche 2.1-stable se finit-elle par la version 2.1.7.1 ?" -->
-
- <sect1>
- <title>Quand sont livr&eacute;es les versions de FreeBSD&nbsp;?</title>
-
- <para>Les nouvelles versions de FreeBSD sont livr&eacute;es quand
-l'&eacute;quipe principale de FreeBSD d&eacute;cide qu'il y a suffisamment de
-nouveaut&eacute;s et/ou de correctifs pour justifier d'une version, et
-lorsqu'ils sont satisfaits des modifications apport&eacute;es et qu'elles ne
-compromettent pas la stabilit&eacute; de la version. Beaucoup d'utilisateurs
-pensent que cela fait partie des meilleures choses de FreeBSD, m&ecirc;me si
-cela peut &ecirc;tre un peu frustrant d'attendre que les derniers ajouts
-soient disponibles.</para>
-
-
- <para> Les versions sont livr&eacute;es &agrave; peu pr&egrave;s tous les 4 mois en moyenne.</para>
-
- <para> Pour les personnes qui ont besoin (ou veulent) d'un peu
-plus de risques, il y a les versions SNAP qui sont livr&eacute;es un peu plus
-souvent (&agrave; peu pr&egrave;s tous les mois). </para>
-
- </sect1>
-
- <sect1>
- <title>Sur quelles plate-formes, autre que les PC, est disponible FreeBSD&nbsp;?</title>
-
- <para>Actuellement FreeBSD 3.x tourne sur une plate-forme <ulink
-url="../alpha/alpha.html">DEC Alpha </ulink> aussi bien que sur les architecture x86. Un int&eacute;r&ecirc;t a &eacute;t&eacute; exprim&eacute; pour un portage sur <ulink
-url="http://www.freebsd.org/~jseger/freebsd-sparc/">UltraSPARC</ulink>
-mais les d&eacute;tails de ce projet ne sont pas encore clairs.</para>
-
- <para>Si vous disposez d'une autre architecture, nous vous
-conseillons d'aller voir aux URLs suivantes:
-<itemizedlist>
- <listitem>
- <para><ulink
-url="http://www.netbsd.org">NetBSD</ulink></para>
- </listitem>
- <listitem>
- <para><ulink
-url="http://www.openbsd.org">OpenBSD</ulink></para>
- </listitem>
-
- </itemizedlist>
-</para>
- </sect1>
-
- <sect1>
- <title>Qui sont les responsables de FreeBSD&nbsp;?</title>
-
- <para>Les d&eacute;cisions concernant le projet FreeBSD, comme les
-directions que vont prendre le projet ainsi que les personnes
-autoris&eacute;es &agrave; ajouter du code dans le noyau, sont fix&eacute;es par <ulink
-url="&url.handbook;staff.html#STAFF-CORE">l'&eacute;quipe principale </ulink>,
-compos&eacute;e d'environ 15 personnes. Il y a une &eacute;quipe un peu plus large
-d'environ <ulink url="&url.handbook;staff-committers.html"> 150
-personnes</ulink> qui ont le droit d'effectuer des changements dans le
-code.</para>
-
- <para>Bien s&ucirc;r, la plupart des changements sont discut&eacute;s au
-pr&eacute;alable dans les listes de messagerie, et il n'y a aucune restriction
-sur qui peut prendre part &agrave; la discussion.</para>
-
-
- </sect1>
-
- <sect1>
- <title>O&ugrave; peut-on trouver FreeBSD&nbsp;?</title>
-
- <para>Toutes les versions sont disponibles via un ftp anonyme
-sur le <ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/">site ftp de
-FreeBSD</ulink>
-
-<itemizedlist>
- <listitem>
- <para>Pour la version 2.2-stable, 2.2.8R, voir le r&eacute;pertoire
-<ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/release/2.2.8-RELEASE/">
-2.2.8-RELEASE</ulink>.</para>
- </listitem>
- <listitem>
- <para>Pour la version 3.0-stable, 3.0-RELEASE, voir le
-r&eacute;pertoire <ulink
-url="ftp://current.freebsd.org/pub/FreeBSD/release/3.0-RELEASE">3.0-RELEASE</ulink>.</para>
- </listitem>
- <listitem>
-
- <para>Les versions <ulink
-url="ftp://releng22.freebsd.org/pub/FreeBSD/">de tests 2.2 </ulink>
-sont compil&eacute;es une fois par jour tout au long de la vie de la branche
-RELENG_2_2 (post 2.2.8). Sauf gros incident, la branche RELENG_2_2
-est maintenue avec extr&ecirc;mement d'attention (pas de changements
-exp&eacute;rimentaux, correctifs ajout&eacute;s apr&egrave;s test dans la branche -current
-uniquement).</para>
-
- </listitem>
- <listitem><para>Les versions <ulink
-url="ftp://releng30.freebsd.org/pub/FreeBSD/"> de test 3.0</ulink> sont
-compil&eacute;es une fois par jour depuis la branche RELENG_3 (post 3.0-release)jusqu'&agrave; la 3.1-RELEASE.</para>
-
- </listitem>
- <listitem><para>Les versions <ulink
-url="ftp://current.freebsd.org/pub/FreeBSD/"> de test 4.0</ulink> sont
-compil&eacute;es une fois par jour depuis la branche -current, ce service
-&eacute;tant juste l&agrave; pour les personnes voulant la tester, ou les
-d&eacute;veloppeurs.</para>
-
- </listitem>
- </itemizedlist>
-</para>
- <para> FreeBSD est aussi disponible par CDROM chez&nbsp;:</para>
-<para>En France
-<programlisting>
-Le Monde en Tique
-6 rue du Ma&icirc;tre Albert
-75005 PARIS
-FRANCE
-T&eacute;l&eacute;phone :01 55 42 73 73
-T&eacute;l&eacute;copie :01 55 42 73 74
-WWW:<ulink url="http://www.lmet.fr">Serveur WWW du Monde en Tique</ulink>
-Ouverture : Du lundi au samedi, de 9h30 &agrave; 19h30 sans interruption
-M&eacute;tro : Ligne 10 : Station Maubert - Mutualit&eacute;
-Rer B : Cluny - La Sorbonne, Sortie : Boulevard Saint-Michel - Boulevard Saint-Germain
-Rer C : Saint Michel - Notre Dame, Sortie : Notre-Dame
-</programlisting>
-<programlisting>
-Infoth&egrave;que
-32, rue de Moscou
-75008 Paris
-T&eacute;l&eacute;phone:01 45 22 67 01
-T&eacute;l&eacute;copie:01 42 93 73 83
-WWW: <ulink url="http://www.infotheque.com">Serveur WWW de infotheque</ulink>
-</programlisting>
-
-</para>
-
- <para>Aux USA
-<programlisting>
-Walnut Creek CDROM
-4041 Pike Lane, Suite F
-Concord, CA 94520 USA
-Commandes: +1 800 786-9907
-Questions: +1 925 674-0783
-FAX: +1 925 674-0821
-email: <ulink url="mailto:orders@cdrom.com">Commandes Walnut Creek</ulink>
-WWW: <ulink url="http://www.cdrom.com/">Serveur WWW de Walnut Creek</ulink>
-</programlisting>
-</para>
-
- <para> En Australie chez :
-<programlisting>
-Advanced Multimedia Distributors
-Factory 1/1 Ovata Drive
-Tullamarine, Melbourne
-Victoria
-Australia
-Tel: +61 3 9338 6777
-
-CDROM Support BBS
-17 Irvine St
-Peppermint Grove WA 6011
-Tel: +61 9 385-3793
-Fax: +61 9 385-2360
-</programlisting>
-</para>
- <para> En Angleterre :
-<programlisting>
-The Public Domain &amp; Shareware Library
-Winscombe House, Beacon Rd
-Crowborough
-Sussex. TN6 1UL
-Tel: +44 1892 663-298
-Fax: +44 1892 667-473
-</programlisting>
-</para>
- </sect1>
-
- <sect1>
- <title>O&ugrave; trouver de l'information sur les listes de messagerie&nbsp;?</title>
-
- <para>Vous trouverez ces informations dans <ulink
-url="&url.handbook;eresources.html#ERESOURCES-MAIL">la section sur les listes de diffusion du manuel</ulink>
-</para>
- </sect1>
-
- <sect1>
- <title>Quels sont les forums de discussion disponibles sur FreeBSD&nbsp;?</title>
-
- <para> Tous les forums sont list&eacute;s dans la section sur <ulink
-url="&url.handbook;eresources.html">les forums de
-discussion</ulink> du manuel</para>
- </sect1>
-
- <sect1>
-<!-- A RELIRE -->
- <title>Existe-t-il des canaux IRC(Internet Relay Chat) sur FreeBSD&nbsp;?</title>
-
- <para>Oui, la plupart des r&eacute;seaux IRC comportent un canal FreeBSD.
-<itemizedlist>
- <listitem>
- <para>Le canal <emphasis remap="tt">#FreeBSD</emphasis> sur EFNET est s&ucirc;rement le plus populaire et est disponible sur <emphasis remap="tt">irc.chat.org</emphasis>.</para>
- </listitem>
- <listitem>
- <para>Le canal <emphasis remap="tt">#FreeBSD</emphasis> sur DALNET est disponible sur <emphasis remap="tt">irc.dal.net </emphasis> pour les US et sur <emphasis remap="tt">irc.eu.dal.net</emphasis> pour l'Europe.</para>
- </listitem>
- <listitem>
- <para>Le canal <emphasis remap="tt">#FreeBSD</emphasis> sur UNDERNET est disponible sur <emphasis remap="tt">us.undernet.org</emphasis> pour les US et sur <emphasis remap="tt">eu.undernet.org</emphasis> pour l'Europe.</para>
- </listitem>
- <listitem>
- <para>Enfin vous pouvez rejoindre <emphasis remap="tt">#FreeBSD</emphasis> sur BSDNET, un petit serveur de chat BSD sur <emphasis remap="tt">irc.FreeBSD.org</emphasis></para>
- </listitem>
- </itemizedlist>
-</para>
-
- <para>Tous ces canaux sont distincts et ne sont pas
-interconnect&eacute;s entre eux. Les discussions sur chaque canal diff&egrave;rent,
-donc essayez-les tous avant de trouver celui qui vous convient.</para>
- </sect1>
-
- <sect1>
-<!-- A RELIRE -->
- <title>Quels sont les livres parlant de FreeBSD ?</title>
-
- <para>Le livre de Greg Lehey's <quote>stalling and Running
-FreeBSD</quote> est disponible chez Walnut Creek CDROM et comprend le CDROM
-de la version 2.2.8. Il y a aussi un livre plus important nomm&eacute; <quote>The
-Complete FreeBSD</quote> qui est lui livr&eacute; avec certaines pages de manuel et
-qui inclut aussi les CDROMs de la version 2.2.8. Ils devraient aussi
-etre disponibles dans toutes les bonnes librairies.</para>
-
- <para>Il existe aussi un projet se nommant "FreeBSD
-Documentation Project", que vous pouvez contacter (ou mieux, joindre)
-sur la <quote>liste de diffusion doc</quote> <ulink
-url="mailto:freebsd-doc@FreeBSD.ORG">&lt;freebsd-doc@FreeBSD.ORG&gt;</ulink>.
-Cette liste a pour but de discuter sur la documentation de FreeBSD.
-Les questions plus g&eacute;n&eacute;rales sur FreeBSD sont &agrave; poser dans la "mailing
-list" <ulink
-url="mailto:freebsd-questions@FreeBSD.ORG">&lt;freebsd-questions@FreeBSD.ORG&gt;</ulink>.</para>
-
- <para>Un <ulink
-url="&url.handbook;index.html">``manuel''</ulink> sur FreeBSD est
-disponible. Sachez, pour information, que ce manuel est en perp&eacute;tuelle
-&eacute;volution, et que certaines parties peuvent &ecirc;tre incompl&egrave;tes.</para>
-
- <para>Comme FreeBSD 2.2.X est bas&eacute; sur la version 4.4.BSD-lite2,
-la plupart des manuels relatifs &agrave; 4.4BSD peuvent s'appliquer &agrave;
-FreeBSD. Des versions imprim&eacute;es sont disponibles chez O'Reilly:
-
-<itemizedlist>
- <listitem>
-<programlisting>
-4.4BSD System Manager's Manual By Computer Systems Research Group, UC
-Berkeley 1st Edition June 1994, 804 pages <ulink
-url="&isbn.amazon/1-56592-080-5">ISBN 1-56592-080-5</ulink>
-</programlisting>
- </listitem>
- <listitem>
-<programlisting>
-4.4BSD User's Reference Manual By Computer Systems Research Group, UC
-Berkeley 1st Edition June 1994, 905 pages <ulink
-url="&isbn.amazon/1-56592-075-9">ISBN 1-56592-075-9 </ulink>
-</programlisting>
- </listitem>
- <listitem>
- <programlisting>
-4.4BSD User's Supplementary Documents By Computer Systems Research
-Group, UC Berkeley 1st Edition July 1994, 712 pages <ulink
-url="&isbn.amazon/1-56592-076-7">ISBN 1-56592-076-7</ulink>
-</programlisting>
- </listitem>
- <listitem>
- <programlisting>
-4.4BSD Programmer's Reference Manual By Computer Systems Research
-Group, UC Berkeley 1st Edition June 1994, 886 pages <ulink
-url="&isbn.amazon/1-56592-078-3">ISBN 1-56592-078-3</ulink>
-
-
-</programlisting>
-</listitem>
-
- <listitem>
- <programlisting>
-4.4BSD Programmer's Supplementary Documents By Computer Systems
-Research Group, UC Berkeley 1st Edition July 1994, 596 pages <ulink
-url="&isbn.amazon/1-56592-079-1">ISBN 1-56592-079-1</ulink>
-
-</programlisting>
-</listitem>
- </itemizedlist>
-</para>
- <para>Une courte description de ces livres est disponible via
-WWW &agrave; l'adresse suivante : <ulink
-url="http://gnn.com/gnn/bus/ora/category/bsd.html">http://gnn.com/gnn/bus/ora/category/bsd.html</ulink>.
-Vu le peu de ventes, ces livres sont relativement difficiles a trouver.</para>
-
- <para>Pour plus d'informations sur le noyau 4.4BSD vous pouvez vous
-reporter au livre suivant :
-
-<programlisting>
-McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman.
-
-<emphasis>The Design and Implementation of the 4.4BSD Operating System</emphasis>.
- Reading, Mass. : Addison-Wesley, 1996.
-<ulink url="&isbn.amazon/0-201-54979-4">ISBN 0-201-54979-4</ulink>
-</programlisting>
-</para>
-
-
- <para>Un bon livre sur l'administration syst&egrave;me:
-<programlisting>
-Evi Nemeth, Garth Snyder, Scott Seebass &amp; Trent R. Hein,
-``Unix System Administration Handbook'', Prentice-Hall, 1995
-<ulink url="&isbn.amazon/0-13-151051-7">ISBN 0-13-151051-7</ulink>
-</programlisting>
-
-<emphasis remap="bf">Attention &agrave; bien acheter la deuxi&egrave;me &eacute;dition,
-version avec la couverture rouge, et non pas la premi&egrave;re.</emphasis>
-</para>
-
- <para>Ce livre couvre les bases de l'administration syst&egrave;me
-aussi bien que TCP/IP, le DNS, NFS, SLIP/PPP, sendmail, INN/NNTP,
-l'impression, etc... Il est assez on&eacute;reux (environ 300-350 FF) mais
-est indispensable. Il comprend en plus un CDROM contenant &eacute;norm&eacute;ment
-d'outils, dont la plupart sont inclus sur les CDROM de FreeBSD.</para>
- </sect1>
-
- <sect1>
-<!-- A RELIRE voir : send-pr(1)-->
- <title>Comment acc&egrave;der &agrave; la base de donn&eacute;es des probl&egrave;mes&nbsp;?</title>
-
- <para>La base de donn&eacute;es des probl&egrave;mes est accessible (pour
-soumission ou interrogation) en utilisant votre navigateur WWW <ulink
-url="http://www.freebsd.org/send-pr.html"> pour la soumission</ulink>
-ou <ulink url="http://www.freebsd.org/cgi/query-pr-summary.cgi"> pour
-l'interrogation </ulink>. La commande <emphasis>send-pr(1)</emphasis>
-peut aussi &ecirc;tre utilis&eacute;e pour soumettre des probl&egrave;mes et des
-modifications par courrier &eacute;lectronique.</para>
-
-
- </sect1>
-
- <sect1>
-<!-- A RELIRE voir les tailles des fichiers -->
- <title>O&ugrave; peut-on trouver des versions ASCII/PostScript de cette FAQ&nbsp;?</title>
-
- <para> La derni&egrave;re version de cette FAQ est disponible sur le serveur
-WWW de FreeBSD ou sur tout serveur miroir en PostScript ou texte (ASCII 7 bits et Latin1 8 bits).</para>
-<!-- A RELIRE adresse relative/absolue a voir -->
- <para>Le PostScript (environ 370Ko) :<ulink
-url="http://www.freebsd-fr.org/FAQ/FAQ.ps">http://www.freebsd-fr.org/FAQ/FAQ.ps</ulink></para>
-<!--
- La version ASCII n'est plus disponible
- <para>En ASCII (environ 220KB):<ulink
-url="http://www.freebsd-fr.org/FAQ/FAQ.ascii">http://www.freebsd-fr.org/FAQ/FAQ.ascii</ulink></para>
--->
-
-<!-- A RELIRE adresse relative/absolue a voir -->
- <para>En format texte ISO 8859-1 (environ 220Ko): <ulink
-url="http://www.freebsd-fr.org/FAQ/FAQ.txt">http://www.freebsd-fr.org/FAQ/FAQ.txt</ulink></para>
-
- </sect1>
-
- <sect1>
-<!-- A RELIRE voir les tailles des fichiers -->
-
- <title>O&ugrave; peut-on trouver des versions ASCII/PostScript du manuel&nbsp;?</title>
-
- <para> La derni&egrave;re version du manuel est disponible sur le serveur
-WWW de FreeBSD ou sur tout serveur miroir en PostScript ou texte (ASCII 7 bits et Latin1 8 bits).</para>
-<!-- A RELIRE adresse relative/absolue a voir -->
- <para>Le PostScript (environ 1.7Mo) :<ulink
-url="http://www.freebsd-fr.org/handbook/handbook.ps">http://www.freebsd-fr.org/handbook/handbook.ps</ulink></para>
-<!--
- La version ASCII n'est plus disponible
- <para>En ASCII (environ 220KB):<ulink
-url="http://www.freebsd-fr.org/handbook/handbook.ascii">http://www.freebsd-fr.org/handbook/handbook.ascii</ulink></para>
--->
-
-<!-- A RELIRE adresse relative/absolue a voir -->
- <para>En format texte ISO 8859-1 (environ : 1.1Mo) :<ulink
-url="http://www.freebsd-fr.org/handbook/handbook.txt">http://www.freebsd-fr.org/handbook/handbook.txt</ulink></para>
-
- </sect1>
- <sect1>
-<!-- A RELIRE voir la commande col -->
-
- <title>La version ASCII du manuel ne contient pas que du texte !</title>
-
- <para>C'est vrai. Les versions ASCII et Latin1 de la FAQ et du
-manuel ne contiennent pas que du texte. Elles
-contiennent des soulign&eacute;s et d'autres codes qui supposent que
-l'impression sera faite sur une imprimante matricielle. Si vous avez
-besoin de reformater ces fichiers sous une forme plus lisible, lancez
-la commande col sur le fichier&nbsp;:
-
-<programlisting>
-$ col -b < fichierOrigine > fichierSortie
-</programlisting>
-</para>
- </sect1>
-
- <sect1>
-<!-- A RELIRE voir la commande rsync -->
-
- <title>Je voudrais devenir un miroir WWW de FreeBSD&nbsp;!</title>
-
- <para>Bien s&ucirc;r&nbsp;! Diff&eacute;rents moyens permettent de synchroniser les pages WWW.
-
-<itemizedlist>
- <listitem>
-
- <para>En utilisant CVSUP: vous pouvez retrouver les pages
-format&eacute;es en HTML en utilisant CVSUP depuis cvsup.freebsd.org. Ajoutez
-simplement cette ligne &agrave; votre fichier cvsup:
-
-<programlisting>
-www release=current hostname=/home base=/usr/local/etc/cvsup
-prefix=/usr/local/www/data/www.freebsd.org delete old use-rel-suffix
-</programlisting>
-</para>
- </listitem>
- <listitem>
- <para>En utilisant rsync: voir la <ulink
-url="http://www.freebsd.org/internal/mirror.html"> page sur les
-miroirs</ulink> pour les informations.</para>
-
- </listitem>
- <listitem>
- <para>En utilisant un miroir ftp: vous pouvez t&eacute;l&eacute;charger
-la copie sur serveur WWW se trouvant sur le serveur ftp. Les fichiers
-se trouvent &agrave; ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/www
-.</para>
-
- </listitem>
- </itemizedlist>
-</para>
- </sect1>
-
- <sect1>
- <title>Je veux traduire la documentation en Javanais</title>
-
- <para> On ne peut pas vous payer, mais on peut s'arranger pour
-vous envoyer un CDROM gratuit ou un T-shirt et une entr&eacute;e dans la
-liste des contributeurs du Handbook si vous nous soumettez une
-traduction de la documentation.</para>
- </sect1>
-
- <sect1>
- <title>Autres sources d'informations.</title>
-
- <para>Les forums de discussion suivants se rapportent &agrave; FreeBSD
-
-<itemizedlist>
- <listitem>
- <para><ulink
-url="news:fr.comp.os.bsd">fr.comp.os.bsd</ulink> (en francais)</para>
- </listitem>
- <listitem>
- <para><ulink url="news:comp.unix.bsd.freebsd.announce">
-comp.unix.bsd.freebsd.announce</ulink> (en anglais - mod&eacute;r&eacute;) </para>
- </listitem>
- <listitem>
- <para><ulink
-url="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink> (en anglais)</para>
- </listitem>
- <listitem>
- <para><ulink
-url="news:comp.unix.bsd.misc">comp.unix.bsd.misc</ulink> (en anglais)</para>
- </listitem>
- </itemizedlist>
-</para>
-
- <para>Ressources WWW:
-<itemizedlist>
- <listitem>
- <para>La <ulink url="http://www.freebsd.org/">page
-principale de FreeBSD</ulink></para>
- </listitem>
- <listitem>
- <para>La <ulink url="http://www.freebsd-fr.org/">page
-principale de fr.FreeBSD</ulink></para>
- </listitem>
- <listitem>
- <para><anchor id="pao">Si vous poss&eacute;dez un portable, vous devez visiter la
-page de <ulink url="http://www.jp.FreeBSD.org/PAO/">Tatsumi Hosokawa's
-Mobile Computing</ulink> au Japon</para>
- </listitem>
- <listitem>
- <para>Pour plus d'informations sur SMP (Symmetric
-MultiProcessing) voyez la <ulink
-url="http://www.freebsd.org/~fsmp/SMP/SMP.html">page du support
-SMP</ulink></para>
- </listitem>
- <listitem>
- <para>Pour plus d'informations sur les applications multimedia FreeBSD
-, voyez la page <ulink
-url="http://www.freebsd.org/~faulkner/multimedia/mm.html">
-multim&eacute;dia</ulink>. Si vous vous int&eacute;ressez plus sp&eacute;cialement &agrave; la capture vid&eacute;o Bt848
-suivez ce <ulink url="http://www.freebsd.org/~ahasty/Bt848.html">
-lien</ulink>.</para>
- </listitem>
- </itemizedlist>
-</para>
- <para>Le manuel de FreeBSD contient une section <ulink
-url="&url.handbook;bibliography.html"> bibliographie</ulink> plus
-importante, si vous recherchez d'autres livres ou informations.</para>
- </sect1>
-
-</chapter>
diff --git a/fr_FR.ISO8859-1/books/faq/serial.sgml b/fr_FR.ISO8859-1/books/faq/serial.sgml
deleted file mode 100644
index 72b43bbc0e..0000000000
--- a/fr_FR.ISO8859-1/books/faq/serial.sgml
+++ /dev/null
@@ -1,626 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="serial">
- <title>Communications par port s&eacute;rie</title>
- <para>Cette section comporte les r&eacute;ponses aux diff&eacute;rentes
-questions sur la communication par port s&eacute;rie sur FreeBSD. Les
-protocoles PPP et SLIP sont couverts dans la section R&eacute;seaux.</para>
-
-
- <sect1>
- <title>Comment savoir si FreeBSD a trouv&eacute; mes ports s&eacute;ries ?</title>
- <para> Lorsque FreeBSD d&eacute;marre, il recherche les ports s&eacute;rie sur
-votre machine qui sont configur&eacute;s dans le noyau. Vous pouvez voir ces
-ports en regardant avec attention au moment du d&eacute;marrage les messages
-affich&eacute;s, ou en lan&ccedil;ant la commande suivante:</para>
-<para><programlisting>
-dmesg | grep sio
-</programlisting>
-</para>
- <para>Lorsque votre syst&egrave;me a d&eacute;marr&eacute;. Voici quelques exemples
-de l'affichage de la commande pr&eacute;c&eacute;dente.
-<programlisting>
-sio0 at 0x3f8-0x3ff irq 4 on isa
-sio0: type 16550A
-sio1 at 0x2f8-0x2ff irq 3 on isa
-sio1: type 16550A
-</programlisting>
-Vous voyez alors apparaitre deux ports s&eacute;rie. Le premier se trouve &agrave;
-l'adresse <filename>0x3f8</filename> sur l'IRQ 4 et est compos&eacute; d'une
-puce de type 16550A. Le second est de meme type que le premier, mais
-se trouve lui &agrave; l'adresse <filename>0x2f8</filename> sur l'IRQ 3. Les
-cartes modems internes sont trait&eacute;s comme des ports s&eacute;rie -- sauf
-qu'ils ont toujours un modem sur le port.
-</para>
-
- <para>Le noyau <emphasis remap="tt">GENERIC</emphasis> comprends
-le support pour deux ports s&eacute;rie dont les adresses et les IRQ sont les
-memes que celles ci-dessus. Si ces valeurs ne vous conviennent pas, ou
-si vous avez des cartes modems additionnelles ou des cartes s&eacute;rie,
-reconfigurez un noyau. Voyez la section sur la reconstruction d'un
-noyau pour plus de d&eacute;tails.</para>
- </sect1>
-
- <sect1>
- <title>Comment savoir si FreeBSD a trouv&eacute; mes cartes modems</title>
- <para>R&eacute;f&eacute;rez vous &agrave; la section pr&eacute;c&eacute;dente </para>
- </sect1>
-
- <sect1>
- <title>Je viens de mettre &agrave; jour ma machine en 2.0.5 et mes <emphasis remap="tt"> tty0x</emphasis> ont diparus ! </title>
- <para>Ne vous inquitez pas, ils sont &eacute;t&eacute; remplac&eacute;s par les
-devices <emphasis remap="tt">ttydX</emphasis>. Vous devrez donc
-changer toutes vos anciennes configurations pour utiliser ces
-devices.</para>
- </sect1>
-
- <sect1>
- <title>Comment acc&eacute;der aux ports s&eacute;rie sous FreeBSD ? </title>
-
- <para>Le troisi&egrave;me port s&eacute;rie <ulink
-url="http://www.freebsd.org/cgi/man.cgi?sio">sio2 </ulink>(aussi
-appel&eacute; COM3 sous DOS), s'appelle <emphasis remap="tt">
-/dev/cuaa2</emphasis> en sortie, et <emphasis remap="tt">
-/dev/ttyd2 </emphasis> en entr&eacute;e. Quelle est la diff&eacute;rence entre ces
-deux classes de devices ?</para>
-
- <para>Vous devez utiliser <emphasis remap="tt"> ttydX
-</emphasis> pour des appels sortants. Lorsque vous ouvrez <emphasis
-remap="tt"> /dev/ttydX </emphasis> en mode bloquant, un processus
-attend, sur le device <emphasis remap="tt"> cuaaX </emphasis>
-correspondant, qu'il soit inactif, et attends alors de d&eacute;tecter la
-porteuse sur la ligne. Lorsque vous ouvrez le port <emphasis
-remap="tt"> cuaaX </emphasis>, un processus v&eacute;rifie d&eacute;j&agrave; que le port
-<emphasis remap="tt"> ttydX </emphasis> correspondant est
-disponible. Si le port est disponible, alors il se l'approprie depuis
-le port <emphasis remap="tt"> ttydX </emphasis>. Le port <emphasis
-remap="tt"> cuaaXX </emphasis> ne tient pas compte de la d&eacute;tection de
-porteuse. Gra&ccedil;e a cette fonctionnalit&eacute; et un modem, vous pouvez avoir
-des utilisateurs se logguant sur votre machine tout en vous laissant
-appeller via le meme modem, c'est le syst&egrave;me qui se pr&eacute;ocupera de
-g&eacute;rer les conflits.</para>
-
- </sect1>
- <sect1>
- <title>Comment activer le support pour les cartes s&eacute;ries multiports</title>
- <para>Encore une fois, reportez vous &agrave; la section sur la
- configuration du noyau. Pour une carte s&eacute;rie multiports placez
- une ligne <ulink
- url="http://www.freebsd.org/cgi/man.cgi?sio">sio</ulink>
- pour chaque port s&eacute;rie de la carte dans le fichier de
- configuration du noyau. Ne mettez pour une valeur l'irq et le
- vecteur d'adresse de la carte. Tous les ports de la cartes
- doivent partager la m&ecirc;me irq. Pour des raisons de
- coh&eacute;rence, sp&eacute;cifiez l'irq pour le dernier port. N'oubliez pas
- d'ajouter l'option <emphasis remap="tt"> COM_MULTIPORT </emphasis>.
- </para>
- <para>L'example suivant correspond &agrave; une carte s&eacute;rie 4ports AST
- sur l'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>Les drapeaux (flags) indiquent que le port maitre &agrave; un
- nombre mineur de 7 (<emphasis remap="tt">0x700</emphasis>),
- que nous d&eacute;sirons afficher les diagnostics (<emphasis
- remap="tt">0x080</emphasis>) et que tous les ports
- partagent la m&ecirc;me irq (<emphasis
- remap="tt">0x001</emphasis>).
- </para>
-
- </sect1>
-
- <sect1>
- <title>Est-ce que FreeBSD sait g&eacute;rer les cartes s&eacute;ries multiports en partageant les IRQ ?</title>
-
- <para>Pas pour le moment. Vous devez utiliser une IRQ diff&eacute;rente
-pour chaque carte.</para>
-
- </sect1>
-
- <sect1>
- <title>Puis-je d&eacute;finir les param&egrave;tres par d&eacute;faut de la liaison s&eacute;rie pour un port?</title>
-
- <para>Les p&eacute;riph&eacute;riques <emphasis remap="tt"> ttydX </emphasis>
- (ou <emphasis remap="tt">cuaaX</emphasis>) sont des
- p&eacute;riph&eacute;riques normaux que vous pouvez ouvrir dans vos
- applications. Lorsqu'un processus ouvre le p&eacute;riph&eacute;rique, il
- utilise les param&egrave;tres par d&eacute;faut d'entr&eacute;es sorties de
- terminal. Vous pouvez voir ces param&egrave;tres en utilisant la
- commande:
- </para>
- <programlisting>
-stty -a -f /dev/ttyd1
- </programlisting>
-
- <para>Lorsque vous changez les param&egrave;tres du p&eacute;riph&eacute;rique, ces
- param&egrave;tres sont effectifs jusqu'au moment ou vous arreterez de
- vous servir de ce p&eacute;riph&eacute;rique. S'il est ouvert de nouveau, il
- reprendra les param&egrave;tres par d&eacute;faut. Pour changer les
- param&egrave;tres par d&eacute;faut , vous devez ouvrir le p&eacute;riph&eacute;rique et
- changer les param&egrave;tres de l'``&eacute;tat initial'' du
- p&eacute;riph&eacute;rique. Par exemple pour d&eacute;finit un mode <emphasis
- remap="tt">LOCAL</emphasis>, 8 bits et un controle de flux
- <emphasis remap="tt"> XON/XOFF </emphasis> par d&eacute;faut sur le
- ttyd5, voud devez :
- </para>
- <programlisting>
-stty -f /dev/ttyd5 clocal cs8 ixon ixoff
-</programlisting>
-
- <para>Le mailleur endroit pour effectuer ceci est le fichier de
- d&eacute;marrage <filename>/etc/rc.serial</filename>. Maintenant
- lorsqu'une application ovrira <emphasis remap="tt">
- ttyd5</emphasis> elle obtiendra les valeurs ci-dessus.
- </para>
- <para>Vous pouvez empecher certaines valeurs d'etre modifi&eacute;es en
- utilisant le fonction de ``lock'' du p&eacute;riph&eacute;rique. Par exemple
- pour forcer la vitesse &agrave; 57600bauds sur <emphasis remap="tt">
- ttyd5 </emphasis>:</para>
- <programlisting>
-stty -f /dev/ttyd5 57600
- </programlisting>
-
- <para>Maintenant lorsqu'un programme ouvrira <emphasis
- remap="tt">ttyd5</emphasis> et tentera de changer la vitesse
- du port, il obtiendra toujours 57600 bauds.</para>
- <para> Bien sur, vous devez laisser la possibilit&eacute; de changer les
- &eacute;tats initiaux et de lock que pour l'utilisateur root. Le
- script <ulink
- url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV"> MAKEDEV
- </ulink> <emphasis remap="bf"> ne le fait pas </emphasis> par
- d&eacute;faut lorsqu'il cr&eacute;e les noeuds.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment mettre en place un login dialup sur mon modem?</title>
- <para>Vous voulez devenir fournisseur d'acc&egrave;s &agrave; l'Internet ?
- Pour commencer vous devez disposer de plus d'un modem pouvant
- r&eacute;pondre automatiquement. Votre modem doit pouvoir detecter
-une &eacute;mission de porteuse lorsque qu'elle se pr&eacute;sente et ne doit pas en
-d&eacute;tecter constemment. Il doit aussi etre capable de racrocher la ligne
-lorsqu'il d&eacute;tecte le passage de 1 &agrave; 0 du signal <emphasis
-remap="tt">DTR</emphasis>. Il doit aussi utiliser un controle de flux
-de type <emphasis remap="tt"> RTS/CTS </emphasis> ou aucun controle
-de flus. Enfin, il doit etre capable de n&eacute;gocier la vitesse de
-transmission entre lui-m&ecirc;me et le modem distant tout en gardant
-une vitesse constante vis &agrave; vis de l'ordinateur.</para>
-
- <para>Pour la plupart des modems comprennant les commande Hayes,
-cette commande met en place les bonnes valeurs et les enregistre en
-m&eacute;moire morte:</para>
- <programlisting>
-AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W
-</programlisting>
-
- <para>Voyez la section sur l'envoi direct de commandes AT, pour
-savoir comment les mettre en place sans avoir besoin de lancer un
-&eacute;mulateur de terminal sous MS-DOS.</para>
-
- <para>Ensuite cr&eacute;ez une entr&eacute;e dans <ulink
-url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys </ulink> pour
- le modem. Ce fichier comporte tous les ports sur lesquels le syst&egrave;me
-d'exploitation attend des commandes de login. Ajoutez une ligne
-ressemblant &agrave; celle ci:
-</para>
- <programlisting>
- ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
-</programlisting>
-
- <para>Cette ligne indique que sur le deuxi&egrave;me port s&eacute;rie
-(<emphasis remap="tt">/dev/ttyd1</emphasis>) est attach&eacute; un modem
-dialoguant &agrave; 57600 bauds sans parit&eacute; (<emphasis
-remap="tt">std.57600</emphasis>) se trouvant dans le fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?gettytab"> /etc/gettytab
-</ulink>). Le type de terminal est ``dialup''. Le port est ``on'' et
-``insecure'' -- ce qui veut dire que les logins sous root ne sont pas
-autoris&eacute;s sur ce port. Pour utiliser d'autres ports en entr&eacute;e,
-utilisez les autres entr&eacute;es <emphasis remap="tt"> ttydX </emphasis>.
-</para>
-
- <para>Il est d'usage courant d'utiliser ``dialup'' comme type de
-terminal. Beaucoup d'utilisateurs affichent un prompt dans leur
-.profile ou .login si le type de terminal est ``dialup''. L'exemple
-ci-dessus affecte au port le mode ``insecure''. Pour passer root, vous
- devez donc vous logguer en temps qu'utilisateur ordinaire et utiliser
-la commande <ulink url="http://www.freebsd.org/cgi/man.cgi?su"> su
-</ulink> pour devenir <emphasis remap="tt">root</emphasis>. Si vous
-d&eacute;finissez le port en tant que ``secure'', alors vous pourrez vous
-logguer sous <emphasis remap="tt">root </emphasis> directement.</para>
-
- <para>Apr&egrave;s avoir effectu&eacute; les modifications au fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys </ulink>,
-vous devez envoyer un signal <emphasis remap="tt"> HUP </emphasis> au
-processus <ulink url="http://www.freebsd.org/cgi/man.cgi?init" > init
-</ulink>
-</para>
-
-<programlisting>
- kill -HUP 1
-</programlisting>
-
- <para> Cela force le processus init &agrave; relire le fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys</ulink>. Le
-processus init d&eacute;marrera donc des processus getty sur tous les ports
-marqu&eacute;s comme <quote>on</quote>. Vous pouvez alors v&eacute;rifiez que le login est
-possible sur le port en tapant :
-</para>
-<programlisting>
-ps -ax | grep '[t]tyd1'
-</programlisting>
-
- <para>Et vous devez voir apparaitre quelque chose comme
-ceci:</para>
-<programlisting>
-747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1
-</programlisting>
-
- </sect1>
- <sect1>
- <title>Comment connecter un terminal sur mon syst&egrave;me FreeBSD?</title>
-
- <para>Si vous utilisez un autre ordinateur en tant que terminal,
-vous devez vous procurer un cable null modem pour relier les deux
-ports s&eacute;rie. Si vous utilisez un vrai terminal (de type WYSE-50), suivez
-les instructions du manuel</para>
-
- <para>Ensuite, modifez <ulink
-url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys</ulink> comme
-expliqu&eacute; &agrave; la section pr&eacute;cedente. Par exemple, pour un terminal
-WYSE-50 connect&eacute; sur le 5&egrave;me port s&eacute;rie, utilisez une entr&eacute;e
-ressemblant &agrave; la suivante:</para>
-
-<programlisting>
-ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
-</programlisting>
-
- <para>Cet exemple assume que le port
-<filename>/dev/ttyd4</filename> est connect&eacute; sur un terminal wyse50 &agrave;
-la vitesse de 38400 bauds sans parit&eacute; (<emphasis
-remap="tt">std.38400</emphasis> se trouvant dans le fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?gettytab">/etc/gettytab</ulink>)
-et les logins root sont permis (mot cl&eacute; secure)</para>
-
- </sect1>
-
- <sect1>
- <title>Pourquoi ne puis-je pas executer <filename>tip</filename> ou <filename>cu</filename>?</title>
-
- <para>Sur votre syst&egrave;me, les programmes <ulink
-url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> et <ulink
-url="http://www.freebsd.org/cgi/man.cgi?cu">cu</ulink> ne sont
-probablement executable que par l'utilisateur <ulink
-url="http://www.freebsd.org/cgi/man.cgi?uucp">uucp</ulink> et par le
-groupe <filename>dialer</filename>. Le groupe
-<filename>dialer</filename> vous permet de controler qui
-a acc&egrave;s &agrave; votre modem ainsi qu'aux syst&egrave;mes distants. Ajoutez vous
-dans ce groupe pour pouvoir utiliser ces commandes.</para>
-
- <para>Sinon, vous pouvez autoriser tous les utilisateurs de
-votre syst&egrave;me &agrave; utiliser les programmes <filename>tip</filename> et
-<filename>cu</filename> en tapant:</para>
-
-<programlisting>
-# chmod 4511 /usr/bin/cu
-# chmod 4511 /usr/bin/tip
-</programlisting>
-
- </sect1>
-
- <sect1>
- <title>Mon modem Hayes n'est pas support&eacute;; que dois-je faire ?</title>
- <para>Pour l'instant la page de manuel de <ulink
-url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> n'est pas &agrave;
-jour. Il existe un support g&eacute;n&eacute;rique des commandes Hayes int&eacute;gr&eacute; dans le
-programme. Il suffit de mettre la ligne suivante
-<filename>ar=hayes</filename> dans votre fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink></para>
-
- <para>Le gestionnaire Hayes ne sait pas reconnaitre les
-fonctions avanc&eacute;es des nouveaux modems. Des messages comme
-<filename>BUSY, NO DIALTONE, CONNECT 115200</filename> ne sont pas
-reconnus. Vous devez absolument d&eacute;sactiver ces messages lorsque vous
-utilisez <ulink
-url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> (en tapant
-<filename>ATX0&amp;W</filename>).</para>
-
- <para>De plus le timeout de <filename>tip</filename> est de 60
-secondes. Votre modem doit absolument utiliser une valeur plus faible,
-sinon <filename>tip</filename> pensera qu'il y a un probl&egrave;me de
-communication. Essayez la commande
-<filename>ATS7=45&amp;W</filename></para>
-
- <para>Le version de <filename>tip</filename> livr&eacute;e ne comporte
-pas toutes ces fonctionnalit&eacute;s. La solution est d'&eacute;diter le fichier
-<filename>tipconf.h</filename> se trouvant dans le r&eacute;pertoire
-<filename>/usr/src/usr.bin/tip/tip</filename>. Bien sur cela n&eacute;cessite
-que vous ayez install&eacute; les sources.</para>
- <para>Remplacez alors la ligne <filename>#define HAYES
-0</filename> par <filename>#define HAYES 1</filename>. Puis tapez
-<filename>make</filename> et <filename>make install</filename>. Tout
-doit marcher correctement apr&egrave;s cela.</para>
-
- </sect1>
- <sect1>
- <title>Comment faire pour entrer certaines commandes AT ?</title>
- <para>Cr&eacute;ez une entr&eacute;e de type <filename>direct</filename> dans
-votre fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>.
-Par exemple, si votre modem est attach&eacute; sur le premier port s&eacute;rie,
-<filename>/dev/cuaa0</filename>, ajoutez la ligne suivante:
-</para>
-<programlisting>
-cuaa0:dv=/dev/cuaa0:br#19200:pa=none
-</programlisting>
-
- <para>Utilisez le taux maximum, de transfert de votre modem,
-pour la fonctionnalit&eacute;e br. Ensuite tapez <ulink
-url="http://www.freebsd.org/cgi/man.cgi?tip">tip cuaa0</ulink> et vous
-serez alors connect&eacute; sur votre modem.</para>
-
- <para>S'il n'existe pas de fichier
-<filename>/dev/cuaa0</filename> sur votre syst&egrave;me, executez la
-commande suivante:</para>
-
-<programlisting>
-# cd /dev
-# ./MAKEDEV cuaa0
-</programlisting>
-
- <para>Sinon utilisez la commande <filename>cu</filename> sous
-root de la fa&ccedil;on suivante.</para>
-
-<programlisting>
-# cu -l``port'' -s``vitesse''
-</programlisting>
-
- <para>Avec <quote>port</quote> le nom du port
-s&eacute;rie(ex:<filename>/dev/cuaa0</filename>) et <quote>vitesse</quote>(la
-vitesse maximum de votre
-modem)(ex:<filename>57600</filename>). Lorsque vous avez entrer les
-commandes AT apropri&eacute;es, tapez <filename>~.</filename> pour quitter</para>
-
- </sect1>
- <sect1>
- <title>Le symbole <filename>@</filename> pour la fonctionnalit&eacute; pn ne marche pas!</title>
-
- <para>Le symbole <filename>@</filename> dans le num&eacute;ro de
-t&eacute;l&eacute;phone demande &agrave; <filename>tip</filename> de regarder dans le
-fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?phones(5)">
-/etc/phones </ulink> pour trouver le num&eacute;ro apropri&eacute;. Mais le symbole
-<filename>@</filename> est aussi un caract&egrave;re sp&eacute;cial pour le fichier
-<ulink
-url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>.
-Mettez un backslash devant pour qu'il soit correctement interpr&eacute;t&eacute;.</para>
-
-<programlisting>
-pn=\@
-</programlisting>
-
-
- </sect1>
-
- <sect1>
- <title>Comment composer un num&eacute;ro de t&eacute;l&eacute;phone depuis la ligne de commande?</title>
-
- <para>Mettez une ligne
-<quote><filename>generic</filename></quote> dans le fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>.
-Par exemple:</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>Vous pourrez alors utilisez la commande suivante
-<quote><filename>tip -115200 5551234 </filename></quote>. Si vous
-pr&eacute;ferez <ulink url="http://www.freebsd.org/cgi/man.cgi?cu">cu</ulink>
-&agrave; <ulink url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink>,
-utilisez une ligne g&eacute;n&eacute;rique pour cu:</para>
-
-
-<programlisting>
-cu115200|Use cu to dial any number at 115200bps:\
- :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
-</programlisting>
-
- <para>et utilisez la commande <quote><filename>cu 5551234 -s
-115200</filename></quote>.</para>
-
- </sect1>
-
- <sect1>
- <title>Dois-je sp&eacute;cifier la vitesse en bauds &agrave; chaque connexion</title>
-
- <para>Mettez une ligne <filename>tip1200</filename> ou
-<filename>cu1200</filename>, mais mettez la vitesse que vous voulez
-pour la fonctionnalit&eacute; br.<ulink
-url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> pense que la
-vitesse par d&eacute;faut est de 1200 bauds, donc il cherche une entr&eacute;e
-<quote><filename>tip1200</filename></quote>. Bien sur, vous n'etes pas
-obligez d'utiliser cette vitesse.</para>
-
- </sect1>
- <sect1>
- <title>J'ai acc&egrave;s &agrave; plusieurs machines depuis mon serveur de terminal</title>
- <para>Plutot que d'attendre d'etre connect&eacute; et de taper la
-commande <filename>CONNECT &lt;host&gt;</filename> chaque fois,
-utilisez la fonctionnalit&eacute; <filename>cm</filename> de tip. Voyez, par
-exemple, les entr&egrave;es suivantes du fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>:</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/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
-</programlisting>
-
- <para>Cela vous permet de taper directement <filename>tip
-pain</filename> ou <filename>tip muffin</filename> pour vous connectez
-sur les machines pain ou muffin, et <filename>tip deep13</filename>
-pour acc&eacute;der au serveur de terminaux.</para>
-
- </sect1>
-
- <sect1>
- <title>Est-ce que tip peut utiliser plusieurs num&eacute;ros de t&eacute;l&eacute;phones pour se connecter &agrave; un site?</title>
-
- <para>C'est un probl&egrave;me courant lorsqu'une universit&eacute; a
-plusieurs lignes pour les modems et plusieurs milliers d'&eacute;tudiants qui
-les utilisent.</para>
-
- <para>Cr&eacute;ez une ligne pour votre universit&eacute; dans le fichier
-<ulink
-url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>
-et utilisez <filename>\@</filename> comme valeur pour la
-fonctionnalit&eacute; <filename>pn</filename>.</para>
-<programlisting>
-big-university:\
- :pn=\@:tc=dialout
-dialout:\
- :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
-</programlisting>
-
- <para>Ensuite listez tous les num&eacute;ros de t&eacute;l&eacute;phones de l'universit&eacute;
-dans le fichier <ulink
-url="http://www.freebsd.org/cgi/man.cgi?phones">/etc/phones</ulink></para>
-
-<programlisting>
-big-university 5551111
-big-university 5551112
-big-university 5551113
-big-university 5551114
-</programlisting>
-
- <para><ulink
-url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> essaiera
-alors tous les num&eacute;ros de t&eacute;l&eacute;phones dans l'ordre de la liste puis
-s'arretera. Si vous voulez qu'il r&eacute;essaye &agrave; l'infini, lancez
-<filename>tip</filename> dans une boucle sans fin</para>
-
- </sect1>
- <sect1>
- <title>Pourquoi dois-je appuyer deux fois sur CTRL+P pour envoyer un CRTL+P?</title>
-
- <para>CTRL+P est le caract&egrave;re par d&eacute;faut pour <ulink
-url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink>, pour lui
-dire que le caract&egrave;re suivant est une donn&eacute;e brute. Vous pouvez
-changez ce caract&egrave;re en n'importe quel autre en utilisant la s&eacute;quence
-d'&eacute;chappement <filename>~s</filename>, qui &eacute;quivaut &agrave; <quote>set a
-variable</quote>.</para>
-
- <para>Tapez
-<quote><filename>~sforce=&lt;single-char&gt;</filename></quote> suivit
-d'un saut de ligne. <filename>&lt;single-char&gt;</filename>
-correspondant &agrave; un simple caract&egrave;re.Si vous laissez
-<filename>&lt;single-char&gt;</filename> vide, alors le caract&egrave;re de
-``force'' est le caract&egrave;re nul, que vous pouvez obtenir par CTRL+2 ou
-CTRL+SPACE. La meilleur valeur pour ce caract&egrave;re est SHIFT+CTRL+6, que
-je n'ai vu que utilis&eacute; que sur peu de terminaux.</para>
-
- <para>Vous pouvez affecter la valeur que vous voulez pour ce
-caract&egrave;re en le sp&eacute;cifiant dans le fichier
-<filename>&dollar;HOME/.tiprc</filename>:</para>
-
-<programlisting>
-force=&lt;single-char&gt;
-</programlisting>
-
- </sect1>
-
- <sect1>
- <title>Tout d'un coup, tout ce que je tape est en majuscule?</title>
-
- <para>Vous devez avoir press&eacute; CTRL+A, le caract&egrave;re ``raise'' de
-<ulink url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink>,
-sp&eacute;cialement concus pour les gens n'ayant pas de caps-lock. Utilisez
-comme auparavant, <filename>~s</filename>, et fixez la variable
-<quote>raisechar</quote> a une valeur plus raisonnable. En fait, vous
-pouvez le mettre &agrave; la meme valeur que le caract&egrave;re de ``force'', si
-vous ne d&eacute;sirez jamais utiliser ces fonctionnalit&eacute;s.</para>
-
- <para>Voici un exemple de fichier <filename>.tiprc</filename>
-pour les utilisateurs d'Emacs qui utilisent beaucoup CTRL+2 et
-CTRL+A:</para>
-
-<programlisting>
-force=^^
-raisechar=^^
-</programlisting>
-
- <para>Le caract&egrave;re <filename>^^</filename> correspond &agrave; SHIFT+CTRL+6.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment effectuer des transferts de fichiers en utilisant <filename>tip</filename>?</title>
-
- <para>Si vous dialoguez avec un autre syst&egrave;me UNIX, vous pouvez
-envoyer et recevoir des fichiers en utilisant la commande
-<filename>~p</filename>(put) et <filename>~t</filename>(take). Ces
-commandes utilisent les commandes <ulink
-url="http://www.freebsd.org/cgi/man.cgi?cat">cat</ulink> et <ulink
-url="http://www.freebsd.org/cgi/man.cgi?echo">echo</ulink> sur le
-syst&egrave;me distant pour recevoir et envoyer les fichiers. La syntaxe de
-ces commandes est:</para>
-
-<programlisting>
-~p &lt;fichier-local&gt; [&lt;fichier-distant&gt;]
-~t &lt;fichier-distant&gt; [&lt;fichier-local&gt;]
-</programlisting>
-
- <para>Il n'y a aucun controle d'erreur, donc il vaut mieux
-utiliser un autre protocol comme zmodem.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment dialoguer en zmodem avec <filename>tip</filename>?</title>
-
- <para>Il faut, pour commencer, installer un des programmes
-zmodem depuis les ports(un de ceux de la cat&eacute;gorie comms <ulink
-url="http://www.freebsd.org/cgi/ports.cgi?^lrzsz">lrzsz</ulink> ou
-<ulink url="http://www.freebsd.org/cgi/ports.cgi?^rzsz">rzsz</ulink>).
-</para>
-
- <para>Pour recevoir un fichier, d&eacute;marrez le programme d'envoi
-des donn&eacute;es sur le syst&egrave;me distant. Ensuite pressez entr&eacute;e puis tapez
-<quote><filename>~C rz</filename></quote> (ou <quote><filename>~C
-lrz</filename></quote> si vous avez install&eacute; lrzsz) pour recevoir le
-fichier.</para>
-
- <para>Pour envoyer des fichiers, d&eacute;marrez le programme de
-r&eacute;ception sur le syst&egrave;me distant. Ensuite tapez entr&eacute;e et tapez
-<quote><filename>~C sz &lt;files&gt;</filename></quote>(ou
-<quote><filename>~C lsz &lt;files&gt;</filename></quote>) pour envoyer
-le fichier.</para>
- </sect1>
-
- <sect1>
- <title> FreeBSD ne trouve pas mes ports s&eacute;ries, m&ecirc;me avec les bonnes valeurs de configuration . </title>
- <para>Certaines cartes m&egrave;res et les cartes comportant des Composants
-UART Acer, ne sont pas reconnues correctement par le programme de
-d&eacute;tection de FreeBSD. Un patch est disponible &agrave; <ulink
-url="http://www.lemis.com/serial-port-patch.html"> www.lemis.com
-</ulink> pour r&eacute;soudre votre probl&egrave;me.</para>
-
- </sect1>
-
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/troubleshoot.sgml b/fr_FR.ISO8859-1/books/faq/troubleshoot.sgml
deleted file mode 100644
index 7faa53e036..0000000000
--- a/fr_FR.ISO8859-1/books/faq/troubleshoot.sgml
+++ /dev/null
@@ -1,640 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.9
--->
-
-<chapter id="troubleshoot">
- <title>R&eacute;solutions des incidents</title>
-
- <sect1 id ="awre">
- <title>J'ai des secteurs d&eacute;fectueux sur mon disque dur&nbsp;!</title>
-
- <para>Pour les disques SCSI, le disque devrait &ecirc;tre capable de r&eacute;allouer
- ceux-ci automatiquement. Quoiqu'il en soit, beaucoup de disques sont
- livr&eacute;s avec cette fonctionnalit&eacute; d&eacute;sactiv&eacute;e, pour une raison
- myst&eacute;rieuse...</para>
-
- <para>Pour l'activer, vous aurez &agrave; &eacute;diter le <foreignphrase>first device
- page mode</foreignphrase>, ce qui peut &ecirc;tre fait sur FreeBSD en tapant
- la commande (sous root)
-
- <programlisting>
- scsi -f /dev/rsd0c -m 1 -e -P 3
- </programlisting>
- </para>
-
- <para>et en changeant la valeur de AWRE et ARRE de 0 &agrave; 1&nbsp;:
-
- <programlisting>
- AWRE (Auto Write Reallocation Enbld): 1
- ARRE (Auto Read Reallocation Enbld): 1
- </programlisting>
- </para>
-
- <para>Les paragraphes suivants ont &eacute;t&eacute; soumis par
- <ulink url="mailto:tedm@toybox.placo.com">Ted Mittelstaedt</ulink>&nbsp;:
- </para>
-
- <para>Pour les disques IDE, le moindre secteur d&eacute;fectueux est habituellement
- un signe d'incident potentiel.
- Tous les disques IDE modernes sont livr&eacute;s avec la r&eacute;allocation des
- secteurs d&eacute;fectueux activ&eacute;e.
- Tous les fabriquants de disques durs IDE offrent aujourd'hui des
- garanties &eacute;tendues et remplaceront les disques poss&eacute;dant des secteurs
- d&eacute;fectueux.</para>
-
- <para>Si vous voulez toutefois essayer de r&eacute;cup&eacute;rer un disque IDE avec des
- secteurs d&eacute;fectueux, vous pouvez essayer de t&eacute;l&eacute;charger le programme de
- diagnostic du fabriquant de disque IDE et de le faire ex&eacute;cuter sur le
- disque. Quelquefois, ces programmes peuvent &ecirc;tre configur&eacute;s pour
- forcer l'&eacute;lectronique du disque &agrave; rebalayer le disque pour les secteurs
- d&eacute;fectueux et leur inhibition.</para>
-
- <para>Pour les disques ESDI, RLL et MFM, les secteurs d&eacute;fectueux font
- partie de la vie normale du disque et ne sont pas signes d'incidents,
- g&eacute;n&eacute;ralement. Avec un PC, la carte contr&ocirc;leur de disque et le BIOS
- prennent en charge la t&acirc;che d'inhibition des secteurs d&eacute;fectueux.
- C'est bien pour les syst&egrave;mes d'exploitation comme DOS qui
- utilisent le code du BIOS pour acc&eacute;der au disque. Toutefois,
- le driver de disque FreeBSD ne passe pas par le BIOS, aussi
- un m&eacute;canisme, <application>bad144</application>, existe pour remplacer
- cette fonctionnalit&eacute;.
- <application>bad144</application> ne fonctionne qu'avec le driver
- <devicename>wd</devicename>, il ne peut
- <emphasis remap="bf">pas</emphasis> &ecirc;tre utilis&eacute; avec le SCSI.
- <application>bad144</application> fonctionne en entrant tous les
- secteurs d&eacute;fectueux trouv&eacute;s dans un fichier sp&eacute;cial.</para>
-
- <para>Un inconv&eacute;nient avec <application>bad144</application>&nbsp;-&nbsp;
- le fichier sp&eacute;cial des secteurs d&eacute;fectueux est plac&eacute; sur la derni&egrave;re
- piste du disque.
- Comme ce fichier contient peut-&ecirc;tre une liste de secteurs dont l'un
- serait pr&egrave;s du d&eacute;but du disque, o&ugrave; le fichier noyau
- <filename>/kernel</filename> serait aussi localis&eacute;, il doit donc &ecirc;tre
- acc&eacute;ssible au progamme d'amorce (<foreignphrase>bootstrap</foreignphrase>)
- qui utilise les appels du BIOS pour lire le fichier du noyau.
- Cela signifie qu'un disque g&eacute;r&eacute; avec <application>bad144</application>
- ne peut d&eacute;passer 1024 cylindres, 16 t&ecirc;tes et 63 secteurs.
- Cela place une limite effective de 500Mo sur un disque qui est r&eacute;allou&eacute;
- avec <application>bad144</application>.</para>
-
- <para>Pour utiliser <application>bad144</application>, positionnez
- simplement le balayage des secteurs d&eacute;fectueux <foreignphrase>Bad
- Block</foreignphrase> &agrave; <foreignphrase>ON</foreignphrase> dans
- le menu <command>fdisk</command> de FreeBSD lors de l'installation
- initiale.
- Cela marche jusqu'&agrave; la version 2.2.7 de FreeBSD.
- Le disque doit avoir moins de 1024 cylindres.
- Il est g&eacute;n&eacute;ralement recommand&eacute; de laisser tourner pr&eacute;alablement le disque
- pendant plus de 4 heures avant cette op&eacute;ration, pour tenir compte de la
- dilatation thermique et des pistes errantes.</para>
-
- <para>Si le disque a plus de 1024 cylindres (comme un gros disque ESDI),
- le contr&ocirc;leur ESDI utilise un mode de translation sp&eacute;cial pour le
- faire fonctionner sous DOS.
- Le driver <devicename>wd</devicename> comprend ces modes de translation,
- <emphasis remap="bf">si</emphasis> vous entrez la g&eacute;om&eacute;trie "translat&eacute;e"
- avec la commande <command>set geometry</command> dans
- <command>fdisk</command>.
- De plus, vous ne devez <emphasis remap="bf">pas</emphasis> utiliser le
- mode <foreignphrase>dangerously dedicated</foreignphrase> de cr&eacute;ation
- d'une partition FreeBSD, parce qu'il ignore la g&eacute;om&eacute;trie.
- De plus, m&ecirc;me si <command>fdisk</command> va utiliser votre g&eacute;om&eacute;trie
- surcharg&eacute;e, il continue &agrave; conna&icirc;tre la vrai taille du disque
- et va tenter de cr&eacute;er une partition FreeBSD trop grande.
- Si la g&eacute;om&eacute;trie du disque est remplac&eacute;e par la g&eacute;om&eacute;trie
- translat&eacute;e, la partition <emphasis remap="bf">doit</emphasis>
- &ecirc;tre cr&eacute;&eacute;e manuellement avec le nombre de secteurs.</para>
-
- <para>Un truc rapide &agrave; utiliser est d'initialiser le gros disque
- ESDI avec le contr&ocirc;leur ESDI, le d&eacute;marrer avec un disque DOS
- et le formatter avec une partition DOS.
- Puis, d&eacute;marrez l'installation FreeBSD et dans le menu
- <command>fdisk</command>, lire depuis l'&eacute;cran et &eacute;crire &agrave; c&ocirc;t&eacute; la taille
- et le nombre de secteurs de la partition DOS.
- Puis, r&eacute;initilisez la g&eacute;om&eacute;trie comme celle de DOS en d&eacute;truisant
- la partition DOS et en cr&eacute;ant une partition FreeBSD
- <foreignphrase>cooperative</foreignphrase> avec la taille
- pr&eacute;c&eacute;demment not&eacute;e.
- Puis positionnez la partition pour &ecirc;tre amor&ccedil;able et autorisez
- le balayage des secteurs d&eacute;fectueux.
- Pendant l'installation r&eacute;elle, <command>bad144</command>
- passera en premier, avant la moindre cr&eacute;ation de syst&egrave;mes de
- fichiers (vous pouvez le voir avec un <command>Alt-F2</command>).
- S'il a le moindre probl&egrave;me pour cr&eacute;er le fichier des secteurs
- d&eacute;fectueux, vous avez initialis&eacute; une g&eacute;om&eacute;trie de disque trop
- grande&nbsp;-&nbsp;red&eacute;marrez le syst&egrave;me et recommencez tout
- depuis le d&eacute;but (y compris le repartitionnement et reformattage
- en DOS).</para>
-
- <para>Si la r&eacute;allocation est autoris&eacute;e et que vous voyez des
- secteurs d&eacute;fectueux, envisagez un remplacement du disque.
- Les secteurs d&eacute;fectueux ne feront que s'aggaver au fil du temps.</para>
- </sect1>
-
- <sect1>
- <title>FreeBSD ne reconnait pas ma carte EISA SCSI Bustek 742a&nbsp;!</title>
-
- <para>Cette information est sp&eacute;cifique &agrave; la 742a, mais peut aussi couvrir
- les autres cartes Buslogic (Bustek = Buslogic).</para>
-
- <para>Il y a 2 ``versions'' g&eacute;n&eacute;rales de la carte 742a.
- Ce sont les r&eacute;visions mat&eacute;rielles A-G et H&nbsp;-&nbsp;et plus.
- La lettre de r&eacute;vision est plac&eacute;e apr&egrave;s le num&eacute;ro d'assemblage
- sur le bord de la carte.
- La 742a poss&egrave;de 2 puces ROM dessus, l'une est la puce BIOS et l'autre
- est la puce Firmware.
- Si FreeBSD ne fait pas attention &agrave; la version de la puce BIOS que vous
- avez, il le fait par contre pour la version de la puce Firmware.
- Buslogic vous enverra des ROMs de mise &agrave; jour si vous appelez leur support
- technique.
- Les puces BIOS et Firmware sont appari&eacute;es.
- Vous devez avoir la ROM Firmware la plus en cours dans votre carte
- d'adaptatation pour votre r&eacute;vision de mat&eacute;riel.</para>
-
- <para>Les cartes REV A-G ne peuvent recevoir que les versions de
- BIOS/Firmware 2.41/2.21.
- Les cartes REV H&nbsp;-&nbsp;et plus peuvent accepter les plus r&eacute;cente
- versions de BIOS/Firmware 4.70/3.37.
- La diff&eacute;rence entre ces jeux de firmware est que le 3.37 supporte
- l'allocation tournante (<foreignphrase>``round robin''</foreignphrase>).
- </para>
-
- <para>Les cartes Buslogic ont aussi un num&eacute;ro de s&eacute;rie inscrit. Si vous
- avez une vieille r&eacute;vision de carte, vous pouvez appeler le d&eacute;partement
- Buslogic RMA et leur donner le num&eacute;ro de s&eacute;rie afin d'essayer d'&eacute;changer
- celle-ci contre une r&eacute;vision plus r&eacute;cente.
- Si votre carte n'est pas trop vieille, il l'&eacute;changeront.</para>
-
- <para>FreeBSD 2.1 ne supporte que les versions firmware 2.21 et plus.
- Si vous avez une version Firmware plus vieille, votre carte ne sera
- pas reconnue comme une carte Buslogic.
- Elle peut malgr&eacute; tout &ecirc;tre reconnue comme une carte Adaptec 1540.
- La vieille carte firmware contient un mode ``&eacute;mulation'' AHA1540.
- Quoiqu'il en soit, ce n'est pas une bonne chose pour une carte EISA.
- </para>
-
- <para>Si vous avez une vieille r&eacute;vision de carte et que vous obtenez le
- firmware 2.21, vous aurez &agrave; v&eacute;rifier la position du cavalier
- (<foreignphrase>jumper</foreignphrase>) W1 &agrave; B-C&nbsp;; par d&eacute;faut,
- il est positionn&eacute; &agrave; A-B.</para>
-
- <para>Les cartes EISA 742q n'ont jamais eu le probl&egrave;me ``&gt;16Mo''
- mentionn&eacute; dans la section <ulink url="bigram">sur les machines &gt;16 Mo
- </ulink>.
- Ceci est un probl&egrave;me qui appara&icirc;t avec les cartes SCSI Buslogic
- Vesa-Local.</para>
- </sect1>
- <sect1>
- <title>Mon contr&ocirc;leur SCSI HP Netserver n'est pas d&eacute;tect&eacute;&nbsp;!</title>
-
- <para>C'est &agrave; la base un probl&egrave;me connu.
- Le contr&ocirc;leur SCSI-EISA int&eacute;gr&eacute; sur la carte m&egrave;re des machines HP
- Netserver occupe le slot EISA num&eacute;ro 11, aussi tous les ``vrais''
- slots EISA se retrouvent devant lui.
- Malheureusement, l'espace d'adressage pour les slots EISA &gt;= 10 se
- retrouve en conflit avec l'espace d'adressage assign&eacute; aux slots PCI, et
- l'auto-configuration de FreeBSD ne peut actuellement pas tr&egrave;s bien g&eacute;rer
- cette situation.</para>
-
- <para>Donc, pour le moment, le mieux que vous ayez &agrave; faire, est
- de pr&eacute;tendre qu'il n'y a pas de conflit de plage d'adresse :-),
- en propulsant l'option du noyau <filename>EISA_SLOTS</filename>
- &agrave; la valeur 12.
- Configurez et compilez un noyau comme d&eacute;crit dans
- <ulink url="&url.handbook;kernelconfig.html">le manuel de r&eacute;f&eacute;rence
- sur la configuration du noyau</ulink>.</para>
-
- <para>Bien s&ucirc;r, cela se pr&eacute;sente comme le probl&egrave;me bien connu de la poule et
- de l'oeuf lorsque l'on installe sur une telle machine. Afin de pouvoir
- contourner ce probl&egrave;me, un <foreignphrase>hack</foreignphrase> sp&eacute;cial
- est disponible au moment de la configuration utilisateur
- (<foreignphrase>UserConfig</foreignphrase>). Ne pas utiliser
- l'interface ``visual'', mais l'interface en mode texte. Tapez
- simplement&nbsp;:</para>
-
- <programlisting>
-eisa 12
-quit
- </programlisting>
-
- <para>au prompt, et installez le syst&egrave;me comme d'habitude.
- Quoiqu'il en soit, il est recommand&eacute; de compiler et d'installer
- un noyau adapt&eacute;.</para>
-
- <para><ulink url="http://www.freebsd.org/cgi/man.cgi?dset">dset</ulink>
- comprend aussi maintenant qu'il faut sauver cette valeur.</para>
-
- <para>Heureusement, les versions futures auront une solution appropri&eacute;e
- &agrave; ce probl&egrave;me.</para>
-
- <note>
- <para>Vous ne pouvez pas utiliser un disque *dangereusement d&eacute;di&eacute;*
- (<foreignphrase>dangerously dedicated</foreignphrase>) avec un
- Netserver HP.
- Voir <ulink url="http://www.freebsd.org/cgi/man.cgi?dedicate">cette note
- </ulink> pour plus d'informations.</para></note>
- </sect1>
- <sect1>
- <title> Que se passe-t'il avec le contr&ocirc;leur CMD640 IDE controller? </title>
-
- <para>
-Il ne marche pas, Il ne peut pas manipuler des commandes sur
-les deux canaux simultan&eacute;ment.
- </para>
-
- <para>
-Il y a un d&eacute;tour disponible &agrave; pr&eacute;sent, et elle s'active automatiquement
-si votre syst&egrave;me utilise cette puce. Pour plus de d&eacute;tails, r&eacute;f&eacute;rez-vous &agrave;
-la page de manuel du driver de dique (man 4 wd).
- </para>
-
- <para>
-Si vous lancez d&eacute;j&agrave; FreeBSD 2.2.1 ou 2.2.2 avec un contr&ocirc;leur
-IDE CMD640 et que vous voulez utiliser le deuxi&egrave;me canal, construisez un
-nouveau noyau avec les options <filename>options "CMD640"</filename> activ&eacute;.
-Il est mis par d&eacute;faut pour FreeBSD 2.2.5 et plus.
- </para>
- </sect1>
-
- <sect1>
- <title> Je n'arr&ecirc;te pas de voir ``<filename>ed1: timeout</filename>''. </title>
-
- <para>
-Cela est g&eacute;n&eacute;ralement caus&eacute; par un conflit d'interruption (par exemple ,
-2 cartes utilisant le m&ecirc;me IRQ). FreeBSD avant 2.0.5R &eacute;tait tol&eacute;rant et
-fonctionnait m&ecirc;me en cas de conflit d'IRQ. Mais &agrave; partir du 2.0.5R, les
-conflits ne sont plus tol&eacute;r&eacute;s.
-Booter avec l'option -c et changer l'ed0/de0/... pour se conformer &agrave;
-votre carte.
- </para>
-
- <para>
-Si vous utilisez un connecteur BNC sur votre carte r&eacute;seau, vous pouvez
-aussi voir des timeouts sur les p&eacute;riph&eacute;riques &agrave; cause de mauvaise
-terminaison. Pour le v&eacute;rifier, attachez un terminateur directement au
-NIC (sans c&acirc;ble) et regardez si les messages d'erreurs disparaissent.
- </para>
-
- <para>
-Certaines cartes compatibles NE2000 donneront une telle erreur s'il n'y
-a pas de liaison sur le port UTP ou si le cable est d&eacute;connect&eacute;.
- </para>
- </sect1>
-
- <sect1>
- <title> Quand je monte le CD-ROM, j'obtiens ``Incorrect super block''. </title>
-
- <para>
-Vous devez sp&eacute;cifier &agrave;
-<ulink url="http://www.freebsd.org/cgi/man.cgi?mount"> mount </ulink>
-le type de p&eacute;riph&eacute;rique que vous voulez monter. Par d&eacute;faut,
-<ulink url="http://www.freebsd.org/cgi/man.cgi?mount"> mount </ulink>
-supposera que le syst&egrave;me de fichier est de type
-``<filename>ufs</filename>''.
-Vous pouvez vouloir monter un syst&egrave;me de fichier CDROM, et vous pouvez le
-faire en sp&eacute;cifiant l'option ``<filename>-t cd9660</filename>'' &agrave;
-<ulink url="http://www.freebsd.org/cgi/man.cgi?mount"> mount </ulink>.
-Cela suppose &eacute;videmment que le CDROM contienne un syst&egrave;me de fichier
-ISO 9660 , qui est celui qu'ont presque tous les CDROM.
-Comme pour le 1.1R, FreeBSD comprend automatiquement les extensions
-Rock Ridge (nom long).
- </para>
-
- <para>
-Par exemple, si vous voulez monter le lecteur CDROM
-``<filename>/dev/cd0c</filename>'', sous le r&eacute;pertoire <filename>/mnt</filename>,
-vous aurez &agrave; ex&eacute;cuter :
-
- <programlisting>
-mount -t cd9660 /dev/cd0c /mnt
- </programlisting>
- </para>
-
- <para>
-Bien noter que le nom du p&eacute;riph&eacute;rique (``<filename>/dev/cd0c</filename>''
-de cet
-exemple peut &ecirc;tre diff&eacute;rent suivant l'interface du CDROM.
-Noter que l'option ``<filename>-t cd9660</filename>'' ne fait qu'ex&eacute;cuter la commande
-``<filename>mount&lowbar;cd9660</filename>'', c'est ainsi que l'exmple pourrait &ecirc;tre
-simplifi&eacute; en :
-
- <programlisting>
-mount_cd9660 /dev/cd0c /mnt
- </programlisting>
- </para>
- </sect1>
-
- <sect1>
- <title> Quand je monte un CDROM, j'obtiens ``Device not configured''. </title>
-
- <para>
-Cela veut g&eacute;n&eacute;ralement dire qu'il n'y a pas de CDROM dans le lecteur de
-CDROM, ou que le lecteur n'est pas visible du bus. Mettez un disque dans
-le lecteur, et/ou v&eacute;rifiez son &eacute;tat ma&icirc;tre/esclave si c'est un IDE
-(ATAPI). Cela peut prendre quelques secondes pour le lecteur CDROM pour
-s'apercevoir qu'il y a un disque, alors, soyez patient.
- </para>
-
- <para>
-De temps en temps, un lecteur CD-ROM SCSI peut &ecirc;tre manqu&eacute; car il n'a
-pas eu assez de temps pour r&eacute;pondre &agrave; la r&eacute;initialisation du bus. Si
-vous avez un lecteur CDROM SCSI, essayez d'ajouter la ligne suivante
-dans votre fichier de configuration du noyau, et recompilez.
- </para>
-
- <programlisting>
-options "SCSI_DELAY=15"
- </programlisting>
- </sect1>
-
- <sect1>
- <title> Mon imprimante est extr&ecirc;mement lente, que puis-je faire ? </title>
-
- <para>
-Si c'est du parall&egrave;le, et que le seul probl&egrave;me est qu'elle est
-terriblement lente, essayez de positionner votre port imprimante
-en mode ``poller'':
-
- <programlisting>
-lptcontrol -p
- </programlisting>
- </para>
-
- <para>
-Certaines nouvelles imprimantes HP sont soup&ccedil;onn&eacute;es de ne pas fonctionner
-correctement en mode interruption, apparemment, cela est d&ucirc; a certains
-probl&egrave;me de timing (mais cela n'est pas encore exactement compris).
- </para>
- </sect1>
-
- <sect1>
- <title>Mes programmes se tuent souvent avec l'erreur ``Signal 11''.</title>
- <para>
-Cela peut-&ecirc;tre caus&eacute; par du mauvais mat&eacute;riel (m&eacute;moire, carte m&egrave;re...).
-Essayez de lancer un programme de test de m&eacute;moire sur votre PC. Notez
-que m&ecirc;me si chaque programme de test de m&eacute;moire essayeront de vous dire
-que tout va bien, il est possible que certaines rares zones de m&eacute;moire
-passent tous les tests m&eacute;moires, mais &eacute;chouent pourtant durant certaines
-conditions d'op&eacute;ration (comme pendant qu'un bus ma&icirc;trise l'acc&egrave;s direct
-&agrave; la m&eacute;moire depuis un contr&ocirc;leur SCSI comme l'Adaptec 1542, quand vous
-chargez la m&eacute;moire en compilant le noyau, ou quand le syst&egrave;me tourne
-dans des conditions tr&egrave;s critiques)
- </para>
-
- <para>
-La FAQ sur SIG11 (list&eacute;e ci-dessous) d&eacute;nonce les m&eacute;moires lentes comme
-&eacute;tant le probl&egrave;me le plus courant. Augmentez le nombre d'&eacute;tats d'attente
-dans votre configuration du BIOS ou r&eacute;cup&eacute;rez de la m&eacute;moire plus rapide.
- </para>
-
- <para>
-Pour moi, la partie incrimin&eacute;e a &eacute;t&eacute; une mauvaise m&eacute;moire cache, ou un
-mauvais contr&ocirc;leur cache. Essayez de d&eacute;sactiver le cache secondaire dans
-la setup BIOS, et regardez si cela r&eacute;soud le probl&egrave;me.
- </para>
-
- <para>Il y a une FAQ plus d&eacute;taill&eacute;e sur
-<ulink url="http://www.bitwizard.nl/sig11/"> la FAQ du probl&egrave;me SIG11 </ulink>
- </para>
- </sect1>
-
- <sect1>
- <title> Quand je boote, l'&eacute;cran devient noir, et perd sa synchronisation </title>
-
- <para>
-Ceci est un probl&egrave;me connu avec les cartes vid&eacute;o ATI Mach 64.
-Le probl&egrave;me est que cette carte utilise l'adresse <filename>2e8</filename>, et que
-le quatri&egrave;me port s&eacute;rie aussi. D&ucirc; &agrave; un bug (une fonctionnalit&eacute; ?) dans
-le driver
-<ulink url="http://www.freebsd.org/cgi/man.cgi?sio"> sio.c </ulink>,
-cela touchera ce port m&ecirc;me si vous n'avez pas ce quatri&egrave;me
-port s&eacute;rie, et *m&ecirc;me* si vous d&eacute;sactives sio3 (le quatri&egrave;me
-port) qui utilise normalement cette adresse.
- </para>
-
- <para>Jusqu'&agrave; ce que ce bug soit fix&eacute;, vous pouvez utiliser cette astuce :
-
- <itemizedlist>
- <listitem><para>
-Entrez <filename>-c</filename> &agrave; l'invite.
-(Cela mettra le noyau en mode configuration).
- </para></listitem>
- <listitem><para>D&eacute;sactivez <filename>sio0</filename>,
- <filename>sio1</filename>, <filename>sio2</filename> and
- <filename>sio3</filename> (tous).
-De cette mani&egrave;re, le driver sio ne sera pas activ&eacute;.
-et donc plus de probl&egrave;mes.
- </para></listitem>
- <listitem><para>Tapez exit et continuez le rebootage.
- </para></listitem>
- </itemizedlist>
- </para>
-
- <para>
-Si vous voulez pouvoir utiliser les ports s&eacute;ries, vous aurez &agrave; construire
-un nouveau noyau avec les modifications suivantes :
-
-Dans <filename>/usr/src/sys/i386/isa/sio.c</filename> cherchez la seule occurence de
-la cha&icirc;ne <filename>0x2e8</filename> et enlevez cette cha&icirc;ne et la virgule
-pr&eacute;c&eacute;dente (gardez la virgule de liaison). Puis suivre la proc&eacute;dure
-normale de la construction d'un nouveau noyau.
- </para>
-
- <para>
-M&ecirc;me apr&egrave;s avoir appliqu&eacute; toutes ces astuces, vous pouvez trouver que X
-Window ne marche pas correctement, Certaines nouvelles cartes vid&eacute;o
-ATI Mach 64 (notamment ATI Mach Xpression) ne marche pas avec la version
-actuelle de <filename>XFree86</filename>; l'&eacute;cran devient noir quand vous d&eacute;marrez
-X Window, ou alors il marche avec des probl&egrave;mes &eacute;tranges. Vous pouvez
-obtenir la version beta d'un nouveau serveur X qui marche mieux.
-Regardez sur
-<ulink url="http://www.xfree86.org"> le site XFree86 site </ulink>
-et suivez les liens &agrave; la nouvelle beta release. R&eacute;cup&eacute;rez les fichiers
-suivants :
- </para>
-
- <para>
- <filename>
-AccelCards, BetaReport, Cards, Devices, FILES, README.ati,
-README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc,
-X312BMa64.tgz
- </filename>
- </para>
-
- <para>
-Remplacez les vieux fichiers avec ceux de la nouvelle version et
-v&eacute;rifiez que vous lancez bien :
-<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"> xf86config </ulink>
-&agrave; nouveau.
- </para>
- </sect1>
-
- <sect1>
- <title> J'ai 128 MB de RAM mais le syst&egrave;me n'en voit que 64 MB. <!-- id="reallybigram">--> </title>
-
- <para>
-D&ucirc;e &agrave; la fa&ccedil;on dont FreeBSD r&eacute;cup&egrave;re la taille de la m&eacute;moire depuis le
-BIOS, il ne peut seulement d&eacute;tecter qu'une taille dont la valeur est
-cod&eacute;e en kilo-octets par 16 bits (65535 Ko = 64MB) (ou moins... certains
-BIOS tronque la taille de la m&eacute;moire &agrave; 16Mo).
-Si vous avez plus de 64 Mo, FreeBSD tentera de le d&eacute;tecter, mais il se
-peut que cette tentative &eacute;choue.
- </para>
-
- <para>
-Pour contourner ce probl&egrave;me, vous devez utiliser l'option du noyau
-donn&eacute;e ci-dessous. Il y a une mani&egrave;re de r&eacute;cup&eacute;rer les informations
-compl&egrave;te de la m&eacute;moire depuis le BIOS, mais nous n'avons pas assez de
-place sur les blocks de boot pour le faire. Un jour, quand le manque de
-place sur les blocs de boots sera r&eacute;solu, nous utiliserons les
-fonctions du BIOS &eacute;tendu pour r&eacute;cup&eacute;rer l'information compl&egrave;te sur la
-m&eacute;moire... mais pour l'instant, nous utilisons cette option du noyau.
-
- <filename>
-options "MAXMEM=&lt;n>"
- </filename>
-
-O&ugrave; <filename>n</filename> est votre m&eacute;moire en KiloOctet. Pour une machine &agrave;
-128Mo, vous pouvez utiliser <filename>131072</filename>.
- </para>
- </sect1>
-
- <sect1>
- <title> FreeBSD 2.0 panique avec ``kmem_map too small!'' </title>
-
- <para>
- <filename>Note : </filename>Le message peut aussi &ecirc;tre ``mb_map too small!''
- </para>
-
- <para>
-La panique indique que le syst&egrave;me n'a plus de m&eacute;moire virtuelle pour les
-buffers r&eacute;seau (sp&eacute;cialement mbuf clusters). Vous pouvez augmenter
-la quantit&eacute; de m&eacute;moire virtuelle disponible pour les clusters mbuf en
-ajoutant :
- </para>
-
- <para>
- <filename>options "NMBCLUSTERS=&lt;n>"</filename>
- </para>
-
- <para>
-dans votre configuration du kernel, o&ugrave; &lt;n&gt; est un nombre compris
-entre 512 et 4096, suivant le nombre de connexions concurrentes TCP que
-vous aurez &agrave; supporter. Je vous recommande d'utiliser 2048 - cela devrait
-vous d&eacute;barasser compl&egrave;tement de cette panique.
-Vous pouvez contr&ocirc;ler le nombre de clusters mbuf allou&eacute;/en cours
-d'utilisation sur votre syst&egrave;me, avec
-<ulink url="http://www.freebsd.org/cgi/man.cgi?netstat"> netstat -m </ulink>.
-La valeur par d&eacute;faut pour NMBCLUSTERS est
- <filename>512 + MAXUSERS * 16/</filename>.
- </para>
- </sect1>
-
- <sect1>
- <title> ``CMAP busy panic'' au moment d'un reboot avec un nouveau noyau. </title>
-
- <para>
-La logique permettant de d&eacute;tecter un fichier obsol&egrave;te
- <filename>/var/db/kvm_*.db</filename> peut parfois &eacute;chouer et utiliser un fichier non
-appropri&eacute; peut alors conduire &agrave; cette panique.
- </para>
-
- <para>Si cela arrive, rebooter en mode single-user et faites :
- </para>
-
- <programlisting>
-rm /var/db/kvm_*.db
- </programlisting>
- </sect1>
-
- <sect1>
- <title>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</title>
- <para>
-C'est un conflit avec l'adaptateur h&ocirc;te Ultrastor SCSI.
- </para>
-
- <para>
-Durant la proc&eacute;dure de boot, entrez dans le menu de configuration du
-noyau et d&eacute;sactivez
-<ulink url="http://www.freebsd.org/cgi/man.cgi?uha(4)"> uha0" </ulink>
-qui est &agrave; la cause de ce probl&egrave;me.
- </para>
- </sect1>
-
- <sect1>
- <title>Sendmail me dit ``mail loops back to myself''</title>
- <para>
-Cela est r&eacute;pondu dans la FAQ sendmail de la fa&ccedil;on suivante :
- </para>
-
-
-
- <programlisting>
-* Je re&ccedil;ois des messages "Local configuration error" messages, comme:
-
-553 relay.domain.net config error: mail loops back to myself
-554 &#60;user&#64;domain.net&#62;... Local configuration error
-
-Comment puis-je r&eacute;soudre ce probl&egrave;me ?
-
-Vous avez demand&eacute; que les mails adress&eacute;s au domaine (par exemple domain.net)
-soient dirig&eacute;s vers un h&ocirc;te sp&eacute;cifique (dans ce cas relay.domain.net) en
-utilisant un enregistrement MX, mais la machine de relai ne s'est pas reconnu
-lui-m&ecirc;me comme domain.net. Ajoutez domain.net &agrave; /etc/sendmail.cw
-(si vous utilisez FEATURE(use_cw_file)) ou ajoutez "Cw domain.net" &agrave;
-/etc/sendmail.cf.
- </programlisting>
-
-
-
- <para>
-La version actuelle de
-<ulink url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq"> la FAQ sendmail </ulink>
-n'est plus maintenue avec la release sendmail. Mais elle est de toute
-fa&ccedil;on post&eacute;e r&eacute;guli&egrave;rement &agrave; :
-<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>, et
-<ulink url="news:news.answers"> news.answers </ulink>.
-Vous pouvez aussi en recevoir une copie par courrier &eacute;lectronique, en
-envoyant un mail &agrave; :
-<ulink url="mailto:mail-server@rtfm.mit.edu"> mail-server@rtfm.mit.edu </ulink>
-avec la commande
-with the command "send usenet/news.answers/mail/sendmail-faq"
-comme corps de message.
- </para>
- </sect1>
-
- <sect1>
- <title> Les applications plein-&eacute;cran sur des machines distantes se comportent &eacute;trangement. </title>
- <para>
-La machine distante peut r&eacute;gler votre type de terminal &agrave; autre chose que
-le type de terminal <filename>cons25</filename> utilis&eacute; par la console FreeBSD.
- </para>
- <para>
-Il y a un certains nombres de contournement de ce probl&egrave;me :
- </para>
- <itemizedlist>
- <listitem><para>
-Apr&egrave;s s'&ecirc;tre loggu&eacute; sur la machine distante, positionnez votre variable
-d'environnement TERM &agrave; soit <filename>ansi</filename> soit <filename>sco</filename>.</para></listitem>
- <listitem><para>Utilisez localement un &eacute;mulateur VT100 comme
-<ulink url="http://www.freebsd.org/cgi/ports.cgi?screen">. screen </ulink>
- <filename>screen</filename> permet la possibilit&eacute; de lancer plusieurs sessions
-concurentes depuis un terminal.</para></listitem>
- <listitem><para>Installez l'entr&eacute;e <filename>cons25</filename> du terminal dans la base de donn&eacute;es
-sur la machine distante.</para></listitem>
- <listitem><para>
-fire up X et login vers la machine distante depuis un
- <filename>xterm</filename>.
- </para></listitem>
- </itemizedlist>
- </sect1>
-
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/faq/x.sgml b/fr_FR.ISO8859-1/books/faq/x.sgml
deleted file mode 100644
index 342b35bd8b..0000000000
--- a/fr_FR.ISO8859-1/books/faq/x.sgml
+++ /dev/null
@@ -1,475 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="x">
- <title> Le syst&egrave;me X-Windows et les consoles virtuelles </title>
-
- <sect1>
- <title> Je veux lancer X, comment dois-je faire ? </title>
-
- <para>
-La mani&egrave;re la plus simple est de sp&eacute;cifier au moment de
-l'installation que l'on veut utiliser X.
- </para>
-
- <para>
-Puis, lire la documentation suivante sur l'outil
-<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"> xf86config </ulink>, qui vous aidera dans la configuration de
-XFree86(tm) pour vos cartes graphiques, souris etc...
- </para>
-
-
- <para>
-Vous pouvez aussi regarder du c&ocirc;t&eacute; du serveur Xaccel qui est disponible
-pour un prix tr&egrave;s raisonnable/ Voir la section sur
-<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xig"> Xi Graphics </ulink>pour plus de d&eacute;tails.
- </para>
- </sect1>
-
- <sect1>
- <title> Pourquoi ma souris ne marche pas sous X ? <anchor id="x-and-moused"> </title>
-
- <para>
-Si vous utilisez syscons (le driver par d&eacute;faut de la console),
-vous pouvez configurer FreeBSD de telle sorte qu'il puisse supporter un
-pointeur de souris sur chacun des &eacute;crans virtuels. Afin d'&eacute;viter des
-conflits avec X, les supports syscons un p&eacute;riph&eacute;rique virtuel nomm&eacute;
-``<filename>/dev/sysmouse</filename>''.
-Tous les &eacute;v&egrave;nement li&eacute;s &agrave; la souris sont &eacute;crit vers le p&eacute;riph&eacute;rique
-sysmouse, en utilsant le protocole MouseSystems. Si vous voulez utiliser
-votre souris sur une console virtuelle ou plus,
-<emphasis remap="bf">et</emphasis> utiliser X, la configuration suivante
-est recommand&eacute;e.
-
- <programlisting>
-/etc/rc.conf:
-moused_type=ps/2 # or whatever your actual type is
-moused_port=/dev/psm0 # or whatever your real port is
-moused_flags=
-
-/etc/XF86Config
-Section Pointer
-Protocol "MouseSystems"
-Device "/dev/sysmouse"
-.....
- </programlisting>
- </para>
-
- <para>
-Certaines personnes pr&eacute;f&egrave;rent utiliser ``<filename>/dev/mouse</filename>''
-sous X. Ppour le faire marcher, ``<filename>/dev/mouse</filename>''
-devrait &ecirc;tre un lien symbolique pour
-<ulink url="http://www.freebsd.org/cgi/man.cgi?sysmouse"> /dev/sysmouse</ulink>
- <programlisting>
- cd /dev
- rm -f mouse
- ln -s sysmouse mouse
- </programlisting>
- </para>
- </sect1>
-
- <sect1>
- <title> les menus X Window et les bo&icirc;tes de dialogue ne marchent pas bien! </title>
-
- <para>
-Essayez de d&eacute;sactiver la touche Num Lock.
- </para>
-
- <para>
-Si votre touche Num Lock est activ&eacute;e par d&eacute;faut au moment du boot, vous
-pouvez ajouter la ligne suivante dans la section
-``<emphasis>Keyboard</emphasis>'' du fichier
- <filename>XF86config</filename>.
- </para>
-
- <programlisting>
- Let the server do the NumLock processing. This should only be
- required when using pre-R6 clients
-ServerNumLock
- </programlisting>
- </sect1>
-
- <sect1>
- <title> Qu'est ce qu'une console virtuelle, et comment puis-je en avoir plus ? </title>
-
- <para>
-En gros, les consoles virtuelles vous permettent d'avoir plusieurs
-sessions simultan&eacute;es sur la m&ecirc;me machine sans faire de trucs compliqu&eacute;s
-du genre monter un r&eacute;seau, ou lancer X.
- </para>
-
- <para>
-Quand le syst&egrave;me d&eacute;marre, il vous affichera une invite de login sur le
-moniteur juste apr&egrave;s avoir affich&eacute; les messages du boot. Vous pouvez
-taper votre login et votre mot de passe et commencer &agrave; travailler (ou &agrave;
-jouer !) sur la premi&egrave;re console virtuelle.
- </para>
-
- <para>
-A un moment, vous voudrez probablement ouvrir une autre session, par
-exemple pour lire la documentation d'un programme que vous &ecirc;tes en train
-d'ex&eacute;cuter, ou alors lire le courrier en attendant qu'un transfert FTP
-se termine. Fais juste Alt-F2 (Appuyez en maintenant la touche Alt
-puis, pressez F2), et vous trouverez une invite de login vous attendant
-sur la seconde ``console virtuelle ''! Quand vous voudrez revenir &agrave; la
-session de d&eacute;part, faites Alt-F1.
- </para>
-
- <para>
-L'installation par d&eacute;faut de FreeBSD a 3 consoles virtuelles activ&eacute;es,
-et Alt-F1, Alt-F2, et d Alt-F3 vous permettra de basculer entre ces
-consoles virtuelles.
-
-Pour en activer plus, &eacute;ditez
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ttys">/etc/ttys</ulink>
-et ajoutez les entr&eacute;es pour ``<filename>ttyv4</filename>''
-&agrave;
-``<emphasis remap="tt">ttyvc</emphasis>'' apr&egrave;s les commentaires sur les ``terminaux virtuels'':
-
- <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>
-
- <para>
-Utilisez en autant que vous voulez/ Mais plus vous avez de terminaux
-virtuels, plus vous utilisez de ressources; cela peut-&ecirc;tre important si
-vous avez 8Mo de RAM ou moins. Vous pouvez aussi changer
-``<filename>secure</filename>'' to ``<filename> insecure</filename>''.
- </para>
-
- <para>
-<emphasis remap="bf">NOTE IMPORTANTE</emphasis> si vous
-voulez lancer un serveur X, vous <emphasis remap="bf">DEVEZ</emphasis>
-avoir au moins un terminal virtuel non utilis&eacute; (ou d&eacute;sactiv&eacute;)afin qu'il
-puisse l'utiliser.
-Tout cela pour dire que si vous voulez une invite de prompt pour les tous
-les 12 de vos touches Alt-fonctions, pas de chance, vous pourrez le faire
-que pour 11 d'entre eux si vous voulez aussi lancer un serveur X sur cette
-machine.
- </para>
-
- <para>
-La meilleure fa&ccedil;on de d&eacute;sactiver une console est de la d&eacute;selectionner.
-Par exemple, si vous avez allou&eacute; tous les 12 terminaux mentionn&eacute;
-ci-dessus, et que vous voulez lancer X, vous aurez &agrave; changer le r&eacute;glage
-pour le terminal virtuel 12 de :
-
- <programlisting>
-ttyvb "/usr/libexec/getty Pc" cons25 on secure
- </programlisting>
- </para>
-
- <para>&agrave;:
-
- <programlisting>
-ttyvb "/usr/libexec/getty Pc" cons25 off secure
- </programlisting>
- </para>
-
- <para>
-Si votre clavier n'a que 10 touches de fonctions, vous pouvez terminer
-par :
-
- <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>
-(Vous pouvez aussi juste effacer ces lignes)
- </para>
-
- <para>
-Une fois que vous avez &eacute;dit&eacute;
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys" </ulink>,
-l'&eacute;tape suivante est de s'assurer que vous avez assez de p&eacute;riph&eacute;riques de
-terminaux virtuels.
-La plus simple mani&egrave;re de proc&eacute;der est :
-
- <programlisting>
- cd /dev
- ./MAKEDEV vty12 # For 12 devices
- </programlisting>
- </para>
-
- <para>
-Ensuite, la plus simple (et plus propre) mani&egrave;re d'activer la console
-virtuelle est de rebooter. Malgr&egrave; tout, si vous voulez vraiment
-ne pas avoir &egrave; rebooter, vous pouvez juste arr&ecirc;ter le syst&egrave;me X Window
-et ex&eacute;cuter <emphasis remap="tt">root</emphasis>.
-
- <programlisting>
-kill -HUP 1
- </programlisting>
- </para>
-
- <para>
-Il est imp&eacute;ratif d'arr&ecirc;ter compl&egrave;tement X Window s'il est en train de
-marcher, avant de lancer cette commande. Si vous ne le faite pas, votre
-syst&egrave;me, se trouvera probablement suspendu/bloqu&eacute; apr&egrave;s le lancement de
-la commande kill.
- </para>
- </sect1>
-
- <sect1>
- <title>Comment acc&eacute;der &agrave; mes consoles virtuelles depuis X ? </title>
-
- <para>
-Si la console est actuellement en train d'afficher X Window, vous pouvez
-utiliser Ctrl-Alt-F1, etc. pour passer d'une console &agrave; une autre.
-
-Notez cependantm qu'une fois que vous avez bascul&eacute; depuis X Window vers un
-terminal virtuel, vous ne pouvez utiliser seulement les touches de fonctions
-Alt- pour passer &agrave; un autre terminal virtuel ou revenir &egrave; X Window.
-Vous n'avez pas &agrave; maintenir enfonc&eacute; la touche Ctrl. Si vous utilisez la
-touche contr&ocirc;le pour revenir a X sur certaines vieilles versions, vous
-pouvez retrouver votre console texte bloqu&eacute;e en mode ``control-lock''
-Taper la touche contr&ocirc;le &agrave; nouveau pour le d&eacute;bloquer.
- </para>
- </sect1>
-
- <sect1>
- <title>Comment d&eacute;marrer XDM au boot ?</title>
-
- <para>
-Il y a deux &eacute;coles de pens&eacute;e &agrave; propos du d&eacute;marrage de
-<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm" >xdm</ulink>
-Une &eacute;cole d&eacute;marre xdm epuis
-<ulink url="http://www.freebsd.org/cgi/man.cgi?ttys"> <filename>/etc/ttys</filename></ulink> en utilisant l'exemple fourni.
-tandis que l'autre lance simplement xdm depuis
-<ulink url="http://www.freebsd.org/cgi/man.cgi?rc" > rc.local</ulink>
-depuis un script <emphasis remap="tt">X.sh</emphasis>
-dans <filename>/usr/local/etc/rc.d</filename>.
-Les deux approches sont valides, et suivant les situations, une m&eacute;thode
-peut marcher et pas l'autre. Dans les deux cas, le r&eacute;sultat est le m&ecirc;me :
-X fera appara&icirc;tre une incite de login graphique.
- </para>
-
- <para>
-La m&eacute;thode du ttys a l'avantage de documenter quel vty X va d&eacute;marrer et
-en passant la responsabilit&eacute; de red&eacute;marrer le serveur X au logout pour
-s'initialiser. La m&eacute;thode rc.local rend la destruction par un kill de
-xdm tr&egrave;s facile si jamais un probl&egrave;me de d&eacute;marrage du serveur X &eacute;tait
-rencontr&eacute;.
- </para>
-
- <para>
-Si <emphasis remap="tt">xdm</emphasis> est charg&eacute; depuis /etc/rc.local,
-il peut-&ecirc;tre d&eacute;marr&eacute; avec n'importe quel argument (i.e comme un d&eacute;mon).
- </para>
-
- <para>
-Une version pr&eacute;c&eacute;dente de la FAQ disait d'ajouter les
-<emphasis remap="tt">vt</emphasis> que vous vouliez que X utilise dans le
-fichier
- <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>. Cela n'est pas
-n&eacute;cessaire, et X utilisera le premier
-<emphasis remap="tt">vt</emphasis> qu'il trouvera.
- </para>
- </sect1>
-
- <sect1>
- <title> Quand je lance xconsole, j'obtiens ``Couldn't open console'' </title>
-
- <para>Si vous d&eacute;marrez
-<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=X" >X</ulink>
-avec
-<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=startx" >startx</ulink>,
-les permissions sur /dev/console ne seront <emphasis remap="tt">pas </emphasis> chang&eacute;, ce qui entra&icirc;nera que
-<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xterm" >xterm -C</ulink>
-et <ulink url= "http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xconsole" >xconsole</ulink> ne marcheront pas.
- </para>
-
- <para>
-Cela est d&ucirc; &agrave; la mani&egrave;re dont les droits sur la consoles sont
-fix&eacute;s par d&eacute;faut.
-Sur un syst&egrave;me multi-utilisateur, on ne veut pas n&eacute;cessairement que
-n'importe quel utilisateur ait la possibilit&eacute; d'&eacute;crire sur la console
-syst&egrave;me. Pour les utilisateurs qui se logguent directement sur la
-machine avec un VTY, le fichier
-<ulink url="http://www.freebsd.org/cgi/man.cgi?fbtab">fbtab</ulink>
-est l&agrave; pour r&eacute;soudre ce probl&egrave;me.
- </para>
-
- <para>
-En pratique, assurez vous d'avoir une ligne d&eacute;comment&eacute; de la forme :
-
- <programlisting>
-/dev/ttyv0 0600 /dev/console
- </programlisting>
- </para>
-
- <para>dans<ulink url="http://www.freebsd.org/cgi/man.cgi?fbtab(5)" ><filename>/etc/fbtab</filename></ulink> et cela assurera que quiconque se
-logguera sur
- <filename>/dev/ttyv0</filename> obtiendra les droits sur la console.
- </para>
- </sect1>
-
- <sect1>
- <title>Ma souris PS/2 ne se comporte pas bien sous X.</title>
-
- <para>
-Votre souris et votre pilote de souris ont d&ucirc; se d&eacute;synchroniser
- </para>
-
- <para>
-Dans les versions 2.2.5 et avant, passer de X &agrave; un termical virtuel et
-revenir &agrave; X ensuite , peuvent les re-synchroniser. Si le probl&egrave;me
-appara&icirc;t souvent, vous pouvez ajouter l'option suivante dans votre
-fichier de configuration du noyau, et recompiler.
-
- <programlisting>
-options PSM_CHECKSYNC
- </programlisting>
- </para>
-
- <para>
-voir la section sur
-<ulink url="http://www.freebsd.org/cgi/man.cgi?=make-kernel"> la construction du noyau</ulink>
-si vous n'avez aucune exp&eacute;rience dans la recompilation de noyau.
- </para>
-
- <para>
-Avec cette option, vous aurez moins de chance d'avoir de probl&egrave;me de
-synchronisation entre la souris et le pilote. Si, malgr&egrave;s tout, vous aviez
-ce probl&egrave;me, cliquez sur un bouton quelconque de la souris en maintenant
-la souris jusqu'&agrave; resynchroniser la souris et le pilote.
- </para>
-
- <para>
-Notez que malheureusement cette option peut ne pas marcher avec tous les
-syst&egrave;mes et vide la fonctionnalit&eacute; ``TAP'' du p&eacute;riph&eacute;rique ALPS GlidePoint
-attach&eacute; auport souris PS/2
- </para>
-
- <para>
-Dans les versions 2.2.6 et plus, la v&eacute;rification de la synchronisation
-est un peu mieux faite et est standard avec les pilotes souris PS/2.
-Cela devrait m&ecirc;me marcher avec GlidePoint. (comme le code de
-v&eacute;rification est devenu une fonctionnalit&eacute; standard, l'option PSM_CHECKSYNC
-n'est pas disponible dans ces versions). Malgr&egrave;s il y a des rares
-cas o&ugrave; le pilote peut de fa&ccedil;on erron&eacute;e repporter des probl&egrave;mes de
-synchronisation, et vous pourrez alors voir le message :
-
- <programlisting>
-psmintr: out of sync (xxxx != yyyy)
- </programlisting>
-
-et voir que votre souris ne marche pas correctement.
- </para>
-
- <para>
-Si cela arrive, d&eacute;sactiver le mode de v&eacute;rification de la synchronization
-en positionnant le drapeau pour les pilotes de souris PS/2 &agrave; 0x100.
-Entrez dans <emphasis>UserConfig</emphasis> en tapant ``<filename>-c</filename>'' option
-&agrave; l'invite du boot.
-
- <programlisting>
-boot: -c
- </programlisting>
-
-Puis en ligne de comande de <emphasis>UserConfig</emphasis>, tapez :
-
- <programlisting>
-UserConfig>flags psm0 0x100
-UserConfig>quit
- </programlisting>
- </para>
- </sect1>
-
- <sect1>
- <title>Ma souris PS/2 mouse de MouseSystems ne marche pas</title>
-
- <para>
-Certains ont rapport&eacute;s que certains mod&egrave;les de souris PS/2 de MouseSystem
-ne marchaient que lorsqu'ils &eacute;taient mis en mode ``haute r&eacute;solution''.
-D'un autre c&ocirc;t&eacute;, le curseur de souris peut sauter d'une extr&eacute;mit&eacute; de
-l'&eacute;cran &agrave; l'autre tr&egrave;s souvent.
- </para>
-
- <para>
-Malheureusement, il n'y a pas de solution pour les versions 2.0.X et
-2.1.X. Dans les versions 2.2 &agrave; 2.2.5, ajouter le patch suivant &agrave;
- <filename>/sys/i386/isa/psm.c</filename> et reconstruisez le noyau. Voir
-la section sur
-<ulink url="http://www.freebsd.org/cgi/man.cgi?make-kernel"> la construction d'un noyau</ulink>si
-vous n'avez aucune exp&eacute;rience dans la construction des noyaux,
-
- <programlisting>
-diff -u psm.c.orig psm.c
-@@ -766,6 +766,8 @@
-if (verbose >= 2)
-log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
-unit, i);
-+ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
-+
-if 0
-set_mouse_scaling(sc->kbdc); /* 1:1 scaling */
-set_mouse_mode(sc->kbdc); /* stream mode */
- </programlisting>
- </para>
-
- <para>
-Dans les versions 2.2.6 et plus, sp&eacute;cifier le drqpeau 0x04 au pilote de
-souris PS/2 afin de mettre la souris en mode haute r&eacute;solution.
-Entrez dans<emphasis>UserConfig</emphasis> en sp&eacute;cifiant l'option
-``<filename>-c</filename>'' &agrave; l'invite du boot.
-
- <programlisting>
-boot: -c
- </programlisting>
-
-puis, dans la ligne de commande de<emphasis>UserConfig</emphasis>
-tapez :
-
- <programlisting>
-UserConfig>flags psm0 0x04
-UserConfig>quit
- </programlisting>
- </para>
-
- <para>Voir les sections pr&eacute;c&eacute;dentes pour les autres causes
-possibles de probl&egrave;mes avec la souris.</para>
- </sect1>
-
- <sect1>
- <title>Lorsque je construis une application X, <emphasis remap="tt">imake</emphasis> dit qu'il ne trouve pas <emphasis remap="tt">Imake.tmpl</emphasis>. O&ugrave; est-t-il ? </title>
-
- <para>
-Imake.tmpl est une partie du paquetage Imake, un outil de d&eacute;veloppement
-standart sous X. Imake.tmpl,tout comme plusieurs fichiers d'en-t&ecirc;te qui sont
-requis lors de la construction d'applications X est contenu dans la
-distribution de programmes X. Vous pouvez l'installer depuis sysinstall
-ou manuellement &agrave; partir des fichiers de distributions X.
- </para>
-
- </sect1>
-
- <sect1>
- <title>Comment puis-je inverser les boutons de la souris ? </title>
-
- <para>Lancez la commande
-<emphasis remap="tt">xmodmap -e "pointer = 3 2 1"</emphasis>
-depuis votre .xinitrc ou .xsession.
- </para>
- </sect1>
- </chapter>
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/Makefile b/fr_FR.ISO8859-1/books/fdp-primer/Makefile
deleted file mode 100644
index e052115a8b..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# Compilation de l'Introduction au Projet de Documentation de FreeBSD
-#
-# $FreeBSD$
-# Original revision: 1.6
-#
-
-MAINTAINER=nik@FreeBSD.ORG
-
-DOC?= book
-
-FORMATS?= html-split html
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-SRCS+= overview/chapter.sgml
-SRCS+= psgml-mode/chapter.sgml
-SRCS+= see-also/chapter.sgml
-SRCS+= sgml-markup/chapter.sgml
-SRCS+= sgml-primer/chapter.sgml
-SRCS+= stylesheets/chapter.sgml
-SRCS+= the-faq/chapter.sgml
-SRCS+= the-handbook/chapter.sgml
-SRCS+= the-website/chapter.sgml
-SRCS+= tools/chapter.sgml
-SRCS+= translations/chapter.sgml
-SRCS+= writing-style/chapter.sgml
-
-# Entities
-SRCS+= chapters.ent
-SRCS+= ../handbook/mailing-lists.ent
-SRCS+= ../../../en_US.ISO_8859-1/books/handbook/authors.ent
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/book.sgml b/fr_FR.ISO8859-1/books/fdp-primer/book.sgml
deleted file mode 100644
index c251c1e636..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/book.sgml
+++ /dev/null
@@ -1,303 +0,0 @@
-<!-- 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.
-
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.7
--->
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//FR"> %bookinfo;
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "../handbook/mailing-lists.ent"> %mailing-lists;
-<!ENTITY rel.current CDATA "3.2">
-<!-- We need the followings until the translation is completed -->
-<!ENTITY sgml.in-progress SYSTEM "../handbook/in-progress.sgml">
-<!ENTITY sgml.todo SYSTEM "../handbook/todo.sgml">
-]>
-
-<book lang="fr">
- <bookinfo>
- <title>Introduction au Projet de Documentation de FreeBSD pour les
- nouveaux participants</title>
-
- <author>
- <firstname>Nik</firstname>
- <surname>Clayton</surname>
- <affiliation>
- <address><email>nik@FreeBSD.ORG</email></address>
- </affiliation>
- </author>
-
- <copyright>
- <year>1998</year>
- <year>1999</year>
- <holder role="mailto:nik@FreeBSD.ORG">Nik Clayton</holder>
- </copyright>
-
- <pubdate role="rcs">$Date: 2000-11-10 12:30:58 $</pubdate>
-
- <releaseinfo>$Id: book.sgml,v 1.2 2000-11-10 12:30:58 kuriyama Exp $</releaseinfo>
-
- <legalnotice>
- <para>La redistribution et l'utilisation du code source (SGML), et
- compil&eacute; (HTML, PostScript, etc.), modifi&eacute;s ou non, sont soumises aux
- conditions suivantes&nbsp;:</para>
-
- <orderedlist>
- <listitem>
- <para>Le code source (SGML DocBook) distribu&eacute; doit conserver le
- copyright ci-dessus, la pr&eacute;sente liste de conditions et
- l'avertissement qui la suit, sans modifications, en t&ecirc;te de ce
- fichier.</para>
- </listitem>
-
- <listitem>
- <para>Le code source distribu&eacute; sous forme compil&eacute; (transformation
- vers d'autres DTDs, conversion en PDF, PostScript, RTF et autres
- formats) doit faire appara&icirc;tre dans la documentation et/ou les
- autres composants distribu&eacute;s, le copyright ci-dessus, la pr&eacute;sente
- liste de conditions et l'avertissement qui la suit.</para>
- </listitem>
- </orderedlist>
-
- <important>
- <para>CE DOCUMENT EST FOURNI PAR NIK CLAYTON &ldquo;TEL QUEL&rdquo; ET
- AUCUNE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS NON
- LIMIT&Eacute;E, GARANTIES IMPLICITES DE COMMERCIABILIT&Eacute; ET
- D'AD&Eacute;QUATION &Agrave; UN BUT PARTICULIER N'EST DONN&Eacute;E.
- EN AUCUN CAS NIK CLAYTON NE SAURAIT &Ecirc;TRE TENU RESPONSABLE DES
- DOMMAGES DIRECTS, INDIRECTS, ACCIDENTELS, SP&Eacute;CIAUX,
- EXEMPLAIRES OU CONS&Eacute;QUENTS (Y COMPRIS, MAIS SANS LIMITATION,
- LA FOURNITURE DE BIENS ET SERVICES ANNEXES&nbsp; D&Eacute;FAUT
- D'UTILISABILIT&Eacute;, PERTE DE DONN&Eacute;ES OU DE PROFITS&nbsp;;
- OU INTERRUPTION DE TRAVAIL) QUELLE QU'EN SOIT LA CAUSE ET SELON
- TOUTE D&Eacute;FINITION DE RESPONSABILIT&Eacute;, SOIT PAR CONTRAT,
- RESPONSABILIT&Eacute; STRICTE, OU PR&Eacute;JUDICE (Y COMPRIS
- N&Eacute;GLIGENCE OU AUTRES) IMPUTABLES D'UNE FA&Ccedil;ON OU D'UNE
- AUTRE &Agrave; L'UTILISATION DE CE DOCUMENT, M&Ecirc;ME APRES AVOIR
- &Eacute;T&Eacute; AVIS&Eacute; DE LA POSSIBILIT&Eacute; DE TELS
- DOMMAGES.</para>
- </important>
- </legalnotice>
-
- <abstract>
- <para>Merci de votre participation au Projet de Documentation de
- FreeBSD. Votre contribution est tr&egrave;s utile.</para>
-
- <para>Cette introduction d&eacute;crit tout ce que vous devez savoir pour
- commencer &agrave; participer au projet de documentation de FreeBSD, des
- outils et logiciels que vous utiliserez (indispensables et
- facultatifs) &agrave; la philosophie sous-jacente au Projet de
- Documentation.</para>
-
- <para>Ce document est en cours de r&eacute;daction et n'est pas termin&eacute;. Les
- sections inachev&eacute;es sont indiqu&eacute;es par un
- ast&eacute;risque&nbsp;-&nbsp;<literal>*</literal>&nbsp;-&nbsp;qui pr&eacute;c&egrave;de
- leur nom.</para>
-
- &trans.a.haby;
- </abstract>
- </bookinfo>
-
- <preface>
- <title>Pr&eacute;face</title>
-
- <sect1>
- <title>Invites de l'interpr&eacute;teur de commandes</title>
-
- <para>La table ci-dessous donne les invites par d&eacute;faut du syst&egrave;me pour
- un utilisateur normal et pour le super-utilisateur. Elles sont
- utilis&eacute;es dans les exemples pour indiquer quel utilisateur doit
- appliquer l'exemple.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Utilisateur</entry>
- <entry>Invite</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Utilisateur normal</entry>
- <entry>&prompt.user;</entry>
- </row>
-
- <row>
- <entry><username>root</username></entry>
- <entry>&prompt.root;</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-
- <sect1>
- <title>Conventions Typographiques</title>
-
- <para>La table ci-dessous d&eacute;crit les conventions typographiques
- utilis&eacute;es dans le pr&eacute;sent ouvrage.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Signification</entry>
- <entry>Exemples</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Noms de commandes, fichiers et r&eacute;pertoires. Affichage &agrave;
- l'&eacute;cran de l'ordinateur.</entry>
-
- <entry><para>Modifiez votre fichier
- <filename>.login</filename>.</para><para>Utilisez
- <command>ls -a</command> pour avoir la liste de tous les
- fichiers.</para><para><screen>Vous avez re&ccedil;u du courrier.</screen></para></entry>
- </row>
-
- <row>
- <entry>Ce que vous tapez, par opposition &agrave; ce que l'ordinateur
- affiche.</entry>
-
- <entry><screen>&prompt.user; <userinput>su</userinput>
-Password:</screen></entry>
- </row>
-
- <row>
- <entry>R&eacute;f&eacute;rences aux pages de manuel</entry>
-
- <entry>Utilisez <citerefentry><refentrytitle>su</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> pour changer de nom
- d'utilisateur.</entry>
- </row>
-
- <row>
- <entry>Noms d'utilisateurs et de groupes</entry>
-
- <entry>Seul <username>root</username> peut le faire.</entry>
- </row>
-
- <row>
- <entry>Mise en valeur</entry>
-
- <entry>Vous <emphasis>devez</emphasis> le faire.</entry>
- </row>
-
- <row>
- <entry>Variables sur la ligne de commande&nbsp;; &agrave; remplacer par
- le nom ou la valeur effectif.</entry>
-
- <entry>Pour supprimer un fichier, tapez <command>rm
- <filename><replaceable>nom_du_fichier</replaceable></filename></command>.</entry>
- </row>
-
- <row>
- <entry>Variables d'environnement</entry>
-
- <entry><envar>$HOME</envar> est votre r&eacute;pertoire
- utilisateur.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-
- <sect1>
- <title>Notes, avertissements et exemples</title>
-
- <para>Dans le cours du texte, il peut y avoir des notes, des
- avertissements et des exemples.</para>
-
- <note>
- <para>Les notes apparaissent comme ceci, et contiennent des
- informations que vous devriez prendre en consid&eacute;ration, parce
- qu'elles peuvent avoir une incidence sur ce que vous faites.</para>
- </note>
-
- <warning>
- <para>Les avertissements apparaissent comme ceci, et vous pr&eacute;viennent
- de probl&egrave;mes potentiels si vous n'appliquez pas ces instructions.
- Des d&eacute;gats peuvent &ecirc;tre caus&eacute;s &agrave; votre mat&eacute;riel, ou ne pas &ecirc;tre
- physiques, suppression inopin&eacute;e de fichiers importants par
- exemple.</para>
- </warning>
-
- <example>
- <title>Un exemple d'exemple</title>
-
- <para>Les exemples apparaissent comme ceci, et sont g&eacute;n&eacute;ralement des
- exemples que vous devriez tester ou qui vous montrent quels doivent
- &ecirc;tre les r&eacute;sultats d'une op&eacute;ration donn&eacute;e.</para>
- </example>
- </sect1>
-
- <sect1>
- <title>Remerciements</title>
-
- <para>Mes remerciements &agrave; Sue Blake, Patrick Durusau, Jon Hamilton,
- Peter Flynn et Christopher Maden, qui ont pris le temps de lire les
- premi&egrave;res versions de ce document et ont apport&eacute; de nombreux
- commentaires et critiques utiles.</para>
- </sect1>
- </preface>
-
- &chap.overview;
- &chap.tools;
- &chap.sgml-primer;
- &chap.sgml-markup;
- &chap.stylesheets;
- &chap.the-faq;
- &chap.the-handbook;
- &chap.the-website;
- &chap.translations;
- &chap.writing-style;
- &chap.psgml-mode;
- &chap.see-also;
-</book>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/chapters.ent b/fr_FR.ISO8859-1/books/fdp-primer/chapters.ent
deleted file mode 100644
index eaaa5d0a09..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/chapters.ent
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
- Creates entities for each chapter in the Documentation Project Primer.
- Each entity is named chap.foo, where foo is the value of the id
- attribute on that chapter, and corresponds to the name of the
- directory in which that chapter's .sgml file is stored.
-
- Chapters should be listed in the order in which they are referenced.
-
- $Id: chapters.ent,v 1.1 2000-06-12 15:46:26 gioria Exp $
--->
-
-<!ENTITY chap.overview SYSTEM "overview/chapter.sgml">
-<!ENTITY chap.sgml-primer SYSTEM "sgml-primer/chapter.sgml">
-<!ENTITY chap.tools SYSTEM "tools/chapter.sgml">
-<!ENTITY chap.sgml-markup SYSTEM "sgml-markup/chapter.sgml">
-<!ENTITY chap.stylesheets SYSTEM "stylesheets/chapter.sgml">
-<!ENTITY chap.the-faq SYSTEM "the-faq/chapter.sgml">
-<!ENTITY chap.the-handbook SYSTEM "the-handbook/chapter.sgml">
-<!ENTITY chap.the-website SYSTEM "the-website/chapter.sgml">
-<!ENTITY chap.translations SYSTEM "translations/chapter.sgml">
-<!ENTITY chap.writing-style SYSTEM "writing-style/chapter.sgml">
-<!ENTITY chap.psgml-mode SYSTEM "psgml-mode/chapter.sgml">
-<!ENTITY chap.see-also SYSTEM "see-also/chapter.sgml">
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml
deleted file mode 100644
index bb2316cc55..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml
+++ /dev/null
@@ -1,187 +0,0 @@
-<!-- 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.
-
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.3
--->
-
-<chapter id="overview">
- <title>Introduction</title>
-
- <para>Bienvenue au Projet de Documentation de FreeBSD. Une documentation de
- bonne qualit&eacute; est un facteur important de succ&egrave;s pour FreeBSD, et le
- Projet de Documentation de
- FreeBSD&nbsp;-&nbsp;&ldquo;<foreignphrase>The FreeBSD Documentation
- Project</foreignphrase>&rdquo;&nbsp;-&nbsp; est la source d'une grande
- part de cette documentation. Votre participation est importante.</para>
-
- <para>L'objectif principal de ce document est d'expliquer clairement
- <emphasis>comment est organis&eacute; le FDP</emphasis>, <emphasis>comment
- &eacute;crire et soumettre de la documentation au FDP</emphasis> et
- <emphasis>comment utiliser les outils disponibles pour produire de la
- documentation</emphasis>.</para>
-
- <para>La participation de chacun au FDP est bienvenue. Il n'y a pas de
- cotisation minimum, pas de quota de documentation &agrave; produire par mois. Il
- vous suffit de vous inscrire sur la &a.doc;.</para>
-
- <para>Apr&egrave;s avoir lu ce document, vous&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Saurez quelles sont les documentations maintenues par le
- FDP.</para>
- </listitem>
-
- <listitem>
- <para>Serez capable de lire et comprendre le code SGML source des
- documentations maintenues par le FDP.</para>
- </listitem>
-
- <listitem>
- <para>Serez capable de modifier la documentation.</para>
- </listitem>
-
- <listitem>
- <para>Saurez comment soumettre vos modifications pour qu'elles soient
- revues et incorpor&eacute;es &agrave; la documentation de FreeBSD.</para>
- </listitem>
- </itemizedlist>
-
- <sect1>
- <title>Le jeu de documentations de FreeBSD</title>
-
- <para>Le FDP a la responsabilit&eacute; de quatre cat&eacute;gories de documents.</para>
-
- <variablelist>
- <varlistentry>
- <term>Les pages de manuel</term>
-
- <listitem>
- <para>Les pages de manuel syst&egrave;me en anglais ne sont pas r&eacute;dig&eacute;es
- par le FDP, puisqu'elles font partie du syst&egrave;me de base. Le FDP,
- n&eacute;anmoins, peut (et a) r&eacute;crit des pages de manuel existantes pour
- les clarifier ou corriger des inexactitudes.</para>
-
- <para>Les &eacute;quipes de traductions sont responsables de la traduction
- des pages de manuel dans les diff&eacute;rentes langues. Ces traductions
- sont archiv&eacute;es par le FDP.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FAQ</term>
-
- <listitem>
- <para>L'objectif de la FAQ est de r&eacute;pondre (sous forme de courtes
- questions/r&eacute;ponses) aux questions qui sont pos&eacute;es, ou devraient
- &ecirc;tre pos&eacute;es, sur les diff&eacute;rentes listes de diffusion et forums de
- discussion consacr&eacute;es &agrave; FreeBSD. Son format n'autorise pas de
- r&eacute;ponses longues et exhaustives.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Manuel de
- r&eacute;f&eacute;rence&nbsp;-&nbsp;&ldquo;<foreignphrase>Handbook</foreignphrase>&rdquo;</term>
-
- <listitem>
- <para>Le Manuel cherche &agrave; &ecirc;tre la ressource en ligne exhaustive et
- de r&eacute;f&eacute;rence pour les utilisateurs de FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Le site Web</term>
-
- <listitem>
- <para>C'est le point de pr&eacute;sence central de FreeBSD sur le
- <foreignphrase>World Wide Web</foreignphrase>, dont le site
- principal est <ulink
- url="http://www.freebsd.org/">http://www.freebsd.org/</ulink>
- et qui a de nombreux sites miroirs dans le monde. Pour beaucoup
- de gens, ce site est leur premi&egrave;re rencontre avec FreeBSD.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Ces quatres cat&eacute;gories de documentation sont disponibles dans les
- archives CVS de FreeBSD. Ce qui signifie que les modifications et les
- notifications sont accessibles &agrave; tous, et que chacun peut utiliser un
- programme comme <application>CVSup</application> ou
- <application>CTM</application> pour maintenir &agrave; jour son propre
- exemplaire local.</para>
-
-
- <para>En plus de ces documents, de nombreuses personnes ont &eacute;crit des
- guides ou r&eacute;alis&eacute; des sites Web se rapportant &agrave; FreeBSD. Certains sont
- aussi archiv&eacute;s dans l'arborescence CVS (quand l'auteur a donn&eacute; son
- accord). Dans d'autre cas, l'auteur a choisi de conserver ses
- documentations en dehors des archives FreeBSD. Le FDP essaie de donner
- le maximum de liens possible sur ces documents.</para>
- </sect1>
-
- <sect1>
- <title>Avant de commencer</title>
-
- <para>Ce document fait l'hypoth&egrave;se que vous savez d&eacute;j&agrave;&nbsp;:</para>
- <itemizedlist>
- <listitem>
- <para>Vous procurer et tenir &agrave; jour une copie locale de la
- documentation. Soit en maintenant une copie locale des archives CVS
- de FreeBSD (avec <application>CVS</application>,
- <application>CVSup</application> ou <application>CTM</application>),
- ou en vous servant de <application>CVSup</application> pour ne
- t&eacute;l&eacute;charger que la version
- extraite&nbsp;-&nbsp<emphasis>courante</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Comment t&eacute;l&eacute;charger et installer de nouveaux logiciels en vous
- servant soit du catalogue des logiciels de FreeBSD soit de
- &man.pkg.add.1;.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml
deleted file mode 100644
index 0d53044f66..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml
+++ /dev/null
@@ -1,154 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:46:33 gioria Exp $
--->
-
-<chapter id="psgml-mode">
- <title> Utiliser <literal>sgml-mode</literal> avec
- <application>Emacs</application></title>
-
- <para>Les versions r&eacute;centes d'Emacs ou Xemacs (disponibles au catalogue des
- logiciels port&eacute;s) incluent un paquetage tr&egrave;s utile appel&eacute; PSGML. Il est
- automatiquement appel&eacute; au chargement d'un fichier avec l'extension
- <filename>.sgml</filename>, ou lorsque l'on tape <command>M-x
- sgml-mode</command>. C'est un mode majeur pour traiter les fichiers
- SGML, les &eacute;l&eacute;ments et les attributs.</para>
-
- <para>Conna&icirc;tre certaines des commandes de ce mode peut rendre le travail
- sur des documents comme le Manuel de R&eacute;f&eacute;rence beaucoup plus
- facile.</para>
-
- <variablelist>
- <varlistentry>
- <term><command>C-c C-e</command></term>
-
- <listitem>
- <para>Ex&eacute;cute <literal>sgml-insert-element</literal>. On vous
- demandera le nom de l'&eacute;lement &agrave; ins&eacute;rer l&agrave; ou se trouve le
- curseur. Vous pouvez utiliser la touche <keycap>Tab</keycap> pour
- compl&eacute;ter le nom de l'&eacute;l&eacute;ment. Seuls les &eacute;l&eacute;ments syntaxiquement
- valides &agrave; cet endroit seront accept&eacute;s.</para>
-
- <para>L'&eacute;diteur ins&eacute;rera les marques de d&eacute;but et de fin de l'&eacute;l&eacute;ment.
- S'il y a d'autres &eacute;l&eacute;ments obligatoires qui doivent &ecirc;tre inclus
- dans cet &eacute;l&eacute;ment, ils seront aussi inclus.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c =</command></term>
-
- <listitem>
- <para>Ex&eacute;cute <literal>sgml-change-element-name</literal>. Mettez-vous
- dans un &eacute;l&eacute;ment et utilisez cette commande. On vous demandera le nom
- de l'&eacute;l&eacute;ment par lequel il faut le remplacer. Les marques de d&eacute;but
- et de fin de l'&eacute;l&eacute;ment seront remplac&eacute;es.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-r</command></term>
-
- <listitem>
- <para>Ex&eacute;cute <literal>sgml-tag-region</literal>. S&eacute;lectionnez du
- texte (placez-vous au d&eacute;but, <command>C-espace</command>, allez &agrave;
- la fin du texte, <command>C-espace</command>) et lancez ensuite
- cette commande. On vous demandera quel &eacute;lement utiliser. Celui-ci
- sera ins&eacute;r&eacute; imm&eacute;diatement avant et apr&egrave;s la r&eacute;gion choisie.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c -</command></term>
-
- <listitem>
- <para>Ex&eacute;cute <literal>sgml-untag-element</literal>. Mettez-vous sur
- la marque de d&eacute;but ou de fin de l'&eacute;l&eacute;ment que vous voulez supprimer
- et lancez cette commande. Les marques de d&eacute;but et de fin de
- l'&eacute;l&eacute;ment seront supprim&eacute;es.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-q</command></term>
-
- <listitem>
- <para>Ex&eacute;cute <literal>sgml-fill-element</literal>.
- &ldquo;Remplira&rdquo; (i.e., reformatera) le contenu de l'&eacute;l&eacute;ment
- courant. Cela affectera aussi le contenu dont les blancs sont
- significatifs, comme celui des &eacute;l&eacute;ments
- <sgmltag>programlisting</sgmltag>, utilisez donc cette commande avec
- pr&eacute;caution.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-a</command></term>
-
- <listitem>
- <para>Ex&eacute;cute <literal>sgml-edit-attributes</literal>. Ouvre un
- deuxi&egrave;me tampon donnant la liste des attributs de l'&eacute;l&eacute;ment
- qui inclut le contenu courant, avec leurs valeurs. La touche
- <keycap>Tab</keycap> vous permet de passer d'un attribut &agrave; l'autre,
- <command>C-k</command> de modifier une valeur existante, et
- <command>C-c</command> de fermer le tampon et de revenir au
- document principal.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>C-c C-v</command></term>
-
- <listitem>
- <para>Ex&eacute;cute <literal>sgml-validate</literal>. Vous propose de
- sauvegarder le document en cours (si besoin est) et passe ensuite un
- programme de validation du SGML. Les r&eacute;sultats de cette validation
- sont affich&eacute;s dans un nouveau tampon et vous pouvez ensuite naviguer
- d'une erreur &agrave; l'autre, pour les corriger au fur et &agrave; mesure.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Il y a sans aucun doute d'autres fonctions utiles, mais j'ai d&eacute;crit
- celles que j'utilise le plus souvent.</para>
-</chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml
deleted file mode 100644
index d0f17d671a..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml
+++ /dev/null
@@ -1,124 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:46:35 gioria Exp $
--->
-
-<chapter id="see-also">
- <title> A consulter</title>
-
- <para>Ce document ne d&eacute;crit d&eacute;lib&eacute;rement pas exhaustivement, ni le SGML, ni
- les DTDs cit&eacute;es, ni le Projet de Documentation de FreeBSD. Pour plus
- d'information sur ces sujets, il est recommand&eacute; de consulter les sites Web
- ci-dessous.</para>
-
- <sect1>
- <title>Projet de Documentation de FreeBSD</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.freebsd.org/docproj/">Les pages Web du
- Projet de Documentation de FreeBSD</ulink>,</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.freebsd.org/handbook/">Le Manuel de
- R&eacute;f&eacute;rence de FreeBSD</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>SGML</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.oasis-open.org/cover/">La page Web
- SGML/XML</ulink>, un ressource SGML exhaustive,</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url='http://etext.virginia.edu/bin/tei-tocs?div=DIV1&amp;id=SG">http://etext.virginia.edu/bin/tei-tocs?div=DIV1&amp;id=SG'>L'Introduction en
- douceur au SGML</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>HTML</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.w3.org/">Le consortium World Wide
- Web</ulink>,</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.w3.org/TR/REC-html40/">Les sp&eacute;cifications
- du HTML 4.0</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>DocBook</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.oreilly.com/davenport/">Le
- <foreignphrase>Davenport Group</foreignphrase></ulink>, qui
- maintient la DTD DocBook.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Le Projet de Documentation de Linux</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://metalab.unc.edu/LDP/">Les pages Web du Projet
- de Documentation de Linux</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
deleted file mode 100644
index a131820fd0..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
+++ /dev/null
@@ -1,2356 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:46:41 gioria Exp $
--->
-
-<chapter id="sgml-markup">
- <title>Marques SGML</title>
-
- <para>Ce chapitre d&eacute;crit les trois langages de marquage que vous
- rencontrerez si vous contribuez au Projet de Documentation de FreeBSD.
- Chaque section d&eacute;crit le langage et d&eacute;taille les marques que vous serez
- probablement amen&eacute;s &agrave; utiliser, ou qui sont d&eacute;j&agrave; utilis&eacute;es.</para>
-
- <para>Ces langages sont riches en &eacute;l&eacute;ments et il est parfois difficile de
- savoir lequels employer dans un contexte particulier. Cette section
- d&eacute;crit ceux dont vous aurez probablement besoin et donne des exemples de
- la mani&egrave;re de s'en servir.</para>
-
- <para>Ce n'est <emphasis>pas</emphasis> une liste exhaustive d'&eacute;l&eacute;ments,
- cela ne ferait que reprendre le contenu de la documentation de chacun de
- ces langages. L'objectif de cette section est de lister les &eacute;l&eacute;ments qui
- ont le plus de chance de vous &ecirc;tre utiles. Si vous avez des questions sur
- le type de marque &agrave; employer dans un contexte particulier, posez-les s'il
- vous pla&icirc;t &agrave; la liste de diffusion du Projet de Documentation de FreeBSD,
- <email>freebsd-doc@freebsd.org</email>.</para>
-
- <note>
- <title>En ligne vs. de bloc</title>
-
- <para>Dans la suite de ce document, quand on d&eacute;crira des &eacute;l&eacute;ments,
- <emphasis>en ligne</emphasis> signifie que l'&eacute;l&eacute;ment peut appara&icirc;tre &agrave;
- l'int&eacute;rieur d'un bloc et ne g&eacute;n&egrave;re pas de passage &agrave; la ligne. A
- l'inverse un &eacute;l&eacute;ment de bloc provoque un passage &agrave; la ligne (et d'autres
- op&eacute;rations) lorsqu'on le rencontre.</para>
- </note>
-
- <sect1>
- <title>HTML</title>
-
- <para>HTML, l'<foreignphrase>HyperText Markup
- Language</foreignphrase>&nbsp;-&nbsp;Langage de Marquage de
- l'Hypertexte&nbsp;-&nbsp;est le langage de pr&eacute;dilection du
- World Wide Web. Vous trouverez plus d'informations sur
- &lt;URL:<ulink
- url="http://www.w3.org/">http://www.w3.org/</ulink>&gt;.</para>
-
- <para>HTML est utilis&eacute; pour marquer les pages du site Web de FreeBSD. Il
- ne devrait (habituellement) pas servir pour d'autre type de
- documentation, parce que DocBook offre un jeu de marques beaucoup plus
- riche. Vous ne devriez donc rencontrez des pages HTML que si vous
- &eacute;crivez pour le site Web.</para>
-
- <para>Il y a eu plusieurs versions de HTML, 1, 2, 3.0, 3.2, et il existe
- deux variantes de la derni&egrave;re version, 4.0 (disponible &agrave; la fois en
- version <emphasis>stricte</emphasis> et
- <emphasis>relach&eacute;e</emphasis>).</para>
-
- <para>Les DTDs HTML existent au catalogue des logiciels port&eacute;s dans
- <filename>textproc/html</filename>. Elles sont automatiquement
- install&eacute;es par le m&eacute;ta-port
- <filename>textproc/docproj</filename>.</para>
-
- <sect2>
- <title><foreignphrase>Formal Public Identifier
- (FPI)</foreignphrase>&nbsp;-&nbsp;Identifiant Public Formel</title>
-
- <para>Il y a un certain nombre de FPIs HTML, selon la version (qu'on
- appelle aussi le niveau) de HTML avec laquelle vous voulez que votre
- document soit compatible.</para>
-
- <para>La plupart des documents HTML du site Web de FreeBSD respectent
- strictement la version relach&eacute;e de HTML 4.0&nbsp;:</para>
-
- <programlisting>
-PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</programlisting>
- </sect2>
-
- <sect2>
- <title>Sections</title>
-
- <para>Un document HTML est habituellement compos&eacute; de deux sections. La
- premi&egrave;re section, appel&eacute;e
- <emphasis>head</emphasis>&nbsp;-&nbsp;en-t&ecirc;te, contient des
- informations sur le document, comme son titre, le nom de son auteur,
- le document dans lequel il est inclus, et ainsi de suite. La seconde
- section, le <emphasis>body</emphasis>&nbsp;-&nbsp;corps, contient ce
- qui sera affich&eacute;.</para>
-
- <para>Ces sections sont d&eacute;not&eacute;es par les &eacute;l&eacute;ments
- <sgmltag>head</sgmltag> et <sgmltag>body</sgmltag> respectivement. Ces
- &eacute;l&eacute;ments appartiennent &agrave; l'&eacute;l&eacute;ment de premier niveau
- <sgmltag>html</sgmltag>.</para>
-
- <example>
- <title>Structure habituelle d'un document HTML</title>
-
- <programlisting>
-&lt;html>
- &lt;head>
- &lt;title><replaceable>Le titre du document</replaceable>&lt;/title>
- &lt;/head>
-
- &lt;body>
-
- &hellip;
-
- &lt;/body>
-&lt;/html></programlisting>
- </example>
- </sect2>
-
- <sect2>
- <title>El&eacute;ments de blocs</title>
-
- <sect3>
- <title>Titres</title>
-
- <para>HTML vous permet d'avoir jusqu'&agrave; six niveaux de titres
- diff&eacute;rents dans votre document.</para>
-
- <para>Le titre le plus gros et le plus visible est
- <sgmltag>h1</sgmltag>, puis <sgmltag>h2</sgmltag>, jusqu'&agrave;
- <sgmltag>h6</sgmltag>.</para>
-
- <para>Le contenu de l'&eacute;l&eacute;ment est le texte du titre.</para>
-
- <example>
- <title><sgmltag>h1</sgmltag>, <sgmltag>h2</sgmltag>, etc.</title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<h1>Premi&egrave;re section</h1>
-
-<!-- Introduction du document -->
-
-<h2>C'est le titre de la premi&egrave;re section</h2>
-
-<!-- Contenu de la premi&egrave;re section -->
-
-<h3>C'est le titre de la premi&egrave;re sous-section</h3>
-
-<!-- Contenu de la premi&egrave;re sous-section -->
-
-<h2>C'est le titre de la seconde section</h2>
-
-<!-- Contenu de la seconde section -->]]></programlisting>
- </example>
-
- <para>Un page HTML doit normalementi avoir un titre de premier niveau
- (<sgmltag>h1</sgmltag>). Il peut contenir plusieurs titres de second
- niveau (<sgmltag>h2</sgmltag>), et &agrave; leur tour, de nombreux titres
- de troisi&egrave;me niveau. Chaque &eacute;l&eacute;ment
- <sgmltag>h<replaceable>n</replaceable></sgmltag> doit appartenir &agrave;
- un m&ecirc;me &eacute;l&eacute;ment de niveau sup&eacute;rieur. Il faut &eacute;viter de sauter d'un
- cran dans la num&eacute;rotation.</para>
-
- <example>
- <title>Mauvais ordonnancement des &eacute;l&eacute;ments
- <sgmltag>h<replaceable>n</replaceable></sgmltag></title>
-
- <para>Use:</para>
-
- <programlisting>
-<![ CDATA [<h1>Premi&egrave;re section</h1>
-
-<!-- Introduction du document -->
-
-<h3>Sous-section</h3>
-
-<!-- Ce n'est pas bon, <h2> a &eacute;t&eacute; oubli&eacute; -->]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Paragraphes</title>
-
- <para>HTML n'a qu'un seul &eacute;l&eacute;ment paragraphe,
- <sgmltag>p</sgmltag>.</para>
-
- <example>
- <title><sgmltag>p</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>C'est un paragraphe. Il peut contenir pratiquement
- n'importe quel &eacute;l&eacute;ment.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Citations</title>
-
- <para>Une citation d'un long extrait d'un autre document, qui ne doit
- pas appara&icirc;tre dans le paragraphe en cours, mais est mise dans un bloc
- de citation.</para>
-
- <example>
- <title><sgmltag>blockquote</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>Un court extrait de la Constitution des Etats-Unis&nbsp;:</p>
-
-<blockquote>Nous le Peuple des Etats-Unis, dans le But de former
- une Union plus parfaite, d'&eacute;tablir la Justice, d'assurer
- la Tranquilit&eacute; domestique, de d&eacute;fendre chacun, de promouvoir
- le Bien-&ecirc;tre g&eacute;n&eacute;ral, et de garantir les B&eacute;n&eacute;dictions de
- la Libert&eacute; &agrave; nous-m&ecirc;mes et &agrave; notre Post&eacute;rit&eacute;, d&eacute;cidons et
- &eacute;tablissons cette Constitution des Etats-Unis d'Am&eacute;rique.</blockquote>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Listes</title>
-
- <para>Il y a trois types de listes que vous pouvez afficher&nbsp;:
- ordonn&eacute;e, non ordonn&eacute;e et de d&eacute;finition.</para>
-
- <para>Typiquement, chaque entr&eacute;e d'une liste ordonn&eacute;e sera num&eacute;rot&eacute;e,
- alors que chaque entr&eacute;e d'une liste non ordonn&eacute;e sera pr&eacute;c&eacute;d&eacute;e d'une
- puce. Les listes de d&eacute;finition ont deux sections pour chaque entr&eacute;e.
- La premi&egrave;re est le terme que l'on d&eacute;finit et la seconde sa
- d&eacute;finition.</para>
-
- <para>Les listes ordonn&eacute;es sont d&eacute;not&eacute;es par l'&eacute;l&eacute;ment
- <sgmltag>ol</sgmltag>, les listes non ordonn&eacute;es par l'&eacute;l&eacute;ment
- <sgmltag>ul</sgmltag> et les listes de d&eacute;finition par l'&eacute;l&eacute;ment
- <sgmltag>dl</sgmltag> element.</para>
-
- <para>Les listes ordonn&eacute;es et non ordonn&eacute;es contiennent des &eacute;l&eacute;ments
- de liste, not&eacute;s avec l'&eacute;l&eacute;ment <sgmltag>li</sgmltag>. Un &eacute;l&eacute;ment de
- liste peut contenir du texte, ou &ecirc;tre d&eacute;compos&eacute; en plusieurs
- &eacute;l&eacute;ments <sgmltag>p</sgmltag>.</para>
-
- <para>Les listes de d&eacute;finition contiennent des termes &agrave; d&eacute;finir
- (<sgmltag>dt</sgmltag>) et leurs d&eacute;finitions
- (<sgmltag>dd</sgmltag>). Le terme &agrave; d&eacute;finir n'est compos&eacute; que de
- texte. La d&eacute;finition peut comporter d'autres &eacute;l&eacute;ments de
- blocs.</para>
-
- <example>
- <title><sgmltag>ul</sgmltag> et <sgmltag>ol</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>Une liste non ordonn&eacute;e. Les &eacute;l&eacute;ments de la liste seront
- probablement pr&eacute;c&eacute;d&eacute;s par des puces.</p>
-
-<ul>
- <li>Premier &eacute;l&eacute;ment</li>
-
- <li>Second &eacute;l&eacute;ment</li>
-
- <li>Troisi&egrave;me &eacute;l&eacute;ment</li>
-</ul>
-
-<p>Une liste ordonn&eacute;e, dont les &eacute;l&eacute;ments comportent plusieurs paragraphes.
- Chaque &eacute;l&eacute;ment (note : et non chaque paragraphe) sera num&eacute;rot&eacute;.</p>
-
-<ol>
- <li><p>C'est le premier &eacute;l&eacute;ment. Il n'a qu'un paragraphe..</p></li>
-
- <li><p>C'est le premier paragraphe du second &eacute;l&eacute;ment.</p>
-
- <p>C'est le second paragraphe du second &eacute;l&eacute;ment.</p>
-
- <li><p>C'est le premier et seul paragraphe du troisi&egrave;me &eacute;l&eacute;ment.</p></li>
-</ol>]]></programlisting>
- </example>
-
- <example>
- <title>Listes de d&eacute;finition avec <sgmltag>dl</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<dl>
- <dt>Terme 1</dt>
-
- <dd><p>Paragraphe 1 de la d&eacute;finition 1.</p></dd>
-
- <p>Paragraphe 2 de la d&eacute;finition 1.</p></dd>
-
- <dt>Terme 2</dt>
-
- <dd><p>Paragraphe 1 de la d&eacute;finition 2.</p></dd>
-
- <dt>Terme 3</dt>
-
- <dd>Paragraphe 1 de la d&eacute;finition 3. Remarquez que l'&eacute;l&eacute;ment <p> n'est
- pas obligatoire dans le cas d'un paragraphe unique.</dd>
-</dl>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Texte pr&eacute;-format&eacute;</title>
-
- <para>Vous pouvez pr&eacute;ciser que du texte doit appara&icirc;tre exactement
- comme il est pr&eacute;sent&eacute; dans le fichier. Cela signifie habituellement
- que le texte est affich&eacute; en police fixe, que les blancs successifs
- sont conserv&eacute;s et que les passages &agrave; la ligne dans le texte sont
- significatifs.</para>
-
- <para>Pour cela, il faut mettre ce texte dans un &eacute;l&eacute;ment
- <sgmltag>pre</sgmltag>.</para>
-
- <example>
- <title><sgmltag>pre</sgmltag></title>
-
- <para>Vous pouvez utiliser <sgmltag>pre</sgmltag> pour marquer le
- texte d'un courrier &eacute;lectronique&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<pre>
- From: nik@freebsd.org
- To: freebsd-doc@freebsd.org
- Subject: Nouvelle documentation disponible
-
- Une nouvelle version de mon introduction pour les nouveaux
- participants au Projet de Documentation de FreeBSD est
- disponible &agrave; l'adresse suivante :
-
- <URL:http://www.freebsd.org/~nik/primer/index.html>
-
- Commentaires souhait&eacute;s.
-
- N
-</pre>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Tables</title>
-
- <note>
- <para>La plupart des navigateurs en mode texte (comme Lynx)
- n'affichent pas tr&egrave;s bien les tables. Si vous utilisez ce type de
- pr&eacute;sentation en tableaux, vous devriez envisager d'utiliser
- d'autres marques pour &eacute;viter la confusion.</para>
- </note>
-
- <para>Marquez les tableaux avec l'&eacute;l&eacute;ment <sgmltag>table</sgmltag>.
- Un tableau est compos&eacute; d'une ou plusieurs lignes
- (<sgmltag>tr</sgmltag>), chacune contenant une ou plusieurs
- cellules (<sgmltag>td</sgmltag>). Chaque cellule peut contenir
- d'autres &eacute;l&eacute;ments de bloc, des paragraphes ou des listes par
- exemple. Elle peut aussi contenir d'autres tables (cet embo&icirc;tement
- peut se r&eacute;p&eacute;ter ind&eacute;finiment). Si la cellule ne contient qu'un seul
- paragraphe, l'&eacute;l&eacute;ment <sgmltag>p</sgmltag> n'est pas
- obligatoire.</para>
-
- <example>
- <title>Emploi simple de <sgmltag>table</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>C'est une table 2x2 simple.</p>
-
-<table>
- <tr>
- <td>Cellule en haut &agrave; gauche</td>
-
- <td>Cellule en haut &agrave; droite</td>
- </tr>
-
- <tr>
- <td>Cellule en bas &agrave; gauche</td>
-
- <td>Cellule en bas &agrave; droite</td>
- </tr>
-</table>]]></programlisting></example>
-
- <para>Une cellule peut occuper plusieurs lignes ou colonnes. Pour le
- pr&eacute;ciser, ajoutez les attributs <literal>rowspan</literal> et/ou
- <literal>colspan</literal>, dont les valeurs donnent le nombre de
- lignes et de colonnes occup&eacute;es.</para>
-
- <example>
- <title>Emploi de <literal>rowspan</literal></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>Une grande cellule &agrave; gauche, deux petites cellule &agrave; droite.</p>
-
-<table>
- <tr>
- <td rowspan="2">Grande et mince</td>
- </tr>
-
- <tr>
- <td>Cellule du haut</td>
-
- <td>Cellule du bas</td>
- </tr>
-</table>]]></programlisting>
- </example>
-
- <example>
- <title>Emploi de <literal>colspan</literal></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>Une grande cellule en haut, deux petites cellules en dessous.</p>
-
-<table>
- <tr>
- <td colspan="2">Cellule du haut</td>
- </tr>
-
- <tr>
- <td>Cellule du bas &agrave; gauche</td>
-
- <td>Cellule du bas &agrave; droite</td>
- </tr>
-</table>]]></programlisting>
- </example>
-
- <example>
- <title>Emploi de <literal>rowspan</literal> et
- <literal>colspan</literal> ensemble</title>
-
- <para>Use:</para>
-
- <programlisting>
-<![ CDATA [<p>Sur une grille 3x3, la cellule en haut &agrave; gauche d'&eacute;tend sur deux
- lignes et deux colonnes. Les autres cellules sont normales.</p>
-
-<table>
- <tr>
- <td colspan="2" rowspan="2">Grande cellule en haut &agrave; gauche</td>
-
- <td>Cellule en haut &agrave; droite</td>
- </tr>
-
- <tr>
- <!-- Comme la grande cellule se prolonge
- sur cette colonne, la premi&egrave;re cellule
- marqu&eacute;e par <td> se trouvera &agrave; sa droite -->
-
- <td>Cellule du milieu &agrave; droite</td>
- </tr>
-
- <tr>
- <td>Cellule en bas &agrave; gauche</td>
-
- <td>Cellule en bas au milieu</td>
-
- <td>Cellule en bas &agrave; droite</td>
- </tr>
-</table>]]></programlisting>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>El&eacute;ments</title>
-
- <sect3>
- <title>Information d'accentuation</title>
-
- <para>Il y a deux niveaux d'accentuation disponibles en HTML,
- <sgmltag>em</sgmltag> et <sgmltag>strong</sgmltag>.
- <sgmltag>em</sgmltag> marque une accentuation normale et
- <sgmltag>strong</sgmltag> une accentuation plus prononc&eacute;e.</para>
-
- <para><sgmltag>em</sgmltag> est g&eacute;n&eacute;ralement rendu en italiques et
- <sgmltag>strong</sgmltag> en gras. Ce n'est malgr&eacute; tout pas toujours
- le cas, et il ne faut pas se baser l&agrave;-dessus.</para>
-
- <example>
- <title><sgmltag>em</sgmltag> et <sgmltag>strong</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p><em>Ceci</em> est accentu&eacute;, et
- <strong>cela</strong> l'est encore plus.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Gras et italiques</title>
-
- <para>HTML comporte des marques pour la pr&eacute;sentation, vous pouvez donc
- aussi pr&eacute;ciser qu'un contenu donn&eacute; doit appara&icirc;tre en gras ou en
- italiques. Les &eacute;l&eacute;ments pour cela sont respectivement
- <sgmltag>b</sgmltag> et <sgmltag>i</sgmltag>.</para>
-
- <example>
- <title><sgmltag>b</sgmltag> et <sgmltag>i</sgmltag></title>
-
- <programlisting>
-<![ CDATA [<p><b>Ceci</b> est en gras, tandis que <i>cela</i> est
- en italiques.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Texte en police fixe</title>
-
- <para>S'il y a du texte qui doit &ecirc;tre affich&eacute; en police fixe (machine
- &agrave; &eacute;crire), servez-vous de <sgmltag>tt</sgmltag> ( pour
- &ldquo;t&eacute;l&eacute;type&rdquo;).</para>
-
- <example>
- <title><sgmltag>tt</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>L'auteur original de ce document est
- Nik Clayton, qui peut &ecirc;tre contact&eacute; par courrier
- &eacute;lectronique &agrave; l'adresse : <tt>nik@freebsd.org</tt>.</p>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Taille de police</title>
-
- <para>Vous pouvez pr&eacute;ciser qu'un contenu doit &ecirc;tre affich&eacute; en police
- plus grande ou plus petite. Il y a trois fa&ccedil;ons de le faire.</para>
-
- <orderedlist>
- <listitem>
- <para>Utilisez <sgmltag>big</sgmltag> et <sgmltag>small</sgmltag>
- pour encadrer le texte dont vous voulez modifier la taille. Ces
- marques peuvent &ecirc;tre imbriqu&eacute;es, il est donc possible
- d'avoir&nbsp;: <literal>&lt;big&gt;&lt;big&gt;C'est bien plus
- gros&lt;/big&gt;&lt;/big&gt;</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Servez-vous de <sgmltag>font</sgmltag> avec l'attribut
- <literal>size</literal> prenant respectivement les valeurs
- <literal>+1</literal> ou <literal>-1</literal>. C'est la m&ecirc;me
- chose que d'utiliser <sgmltag>big</sgmltag> ou
- <sgmltag>small</sgmltag>. Mais cette fa&ccedil;on de faire est
- obsol&egrave;te.</para>
- </listitem>
-
- <listitem>
- <para>Utilisez <sgmltag>font</sgmltag> avec l'attribut
- <literal>size</literal> prenant une valeur de 1 &agrave; 7. La taille
- de police par d&eacute;faut est <literal>3</literal>. Cette fa&ccedil;on de
- faire est aussi obsol&egrave;te.</para>
- </listitem>
- </orderedlist>
-
- <example>
- <title><sgmltag>big</sgmltag>, <sgmltag>small</sgmltag> et
- <sgmltag>font</sgmltag></title>
-
- <para>Les trois extraits suivants ont le m&ecirc;me r&eacute;sultat&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>Ce texte est <small>un peu plus petit</small>.
- Mais celui-l&agrave; <big>est un peu plus gros</big>.</p>
-
-<p>Ce texte est <font size="-1">un peu plus petit</font>.
- Mais celui-l&agrave; <font size="+1">est un peu plus gros</font>.</p>
-
-<p>Ce texte est <font size="2">un peu plus petit</font>.
- Mais celui-l&agrave; <font size="4">est un peu plus gros</font>.</p>]]></programlisting>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Liens</title>
-
- <note>
- <para>Les liens font aussi partie du contenu du document.</para>
- </note>
-
- <sect3>
- <title>Liens vers d'autres documents sur le WWW</title>
-
- <para>Pour mettre un lien sur un autre document sur le WWW, il faut
- que vous connaissiez l'URL de ce document.</para>
-
- <para>Ce lien est not&eacute; avec <sgmltag>a</sgmltag> et l'attribut
- <literal>href</literal> contient l'URL du document cible. Le
- lien est le contenu de l'&eacute;l&eacute;ment, il est habituellement pr&eacute;sent&eacute;
- d'une fa&ccedil;on ou d'une autre &agrave; l'utilisateur (soulign&eacute;, couleur
- diff&eacute;rente, curseur de forme diff&eacute;rente quand on passe dessus, et
- ainsi de suite).</para>
-
- <example>
- <title>Emploi de <literal>&lt;a href="..."&gt;</literal></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>Vous trouverez plus d'informations sur le
- <a href="http://www.freebsd.org/">site Web de FreeBSD</a>.</p>]]></programlisting>
- </example>
-
- <para>Ces liens am&egrave;neront l'utilisateur au d&eacute;but du document
- s&eacute;lectionn&eacute;.</para>
- </sect3>
-
- <sect3>
- <title>Liens sur d'autres parties des documents</title>
-
- <para>Pour mettre un lien sur un endroit pr&eacute;cis d'un autre (ou du
- m&ecirc;me) document, il faut que l'auteur de ce document y ait mis des
- points d'ancrage sur lequels vous pouvez pointer.</para>
-
- <para>Les points d'ancrage sont not&eacute;s avec <sgmltag>a</sgmltag> et
- l'attribut <literal>name</literal> au lieu de
- <literal>href</literal>.</para>
-
- <example>
- <title>Emploi de <literal>&lt;a name="..."&gt;</literal></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p><a name="para1">Ce</a> paragraphe peut &ecirc;tre r&eacute;f&eacute;renc&eacute;
- par d'autres liens via le nom <tt>para1</tt>.</p>]]></programlisting>
- </example>
-
- <para>Pour mettre un lien sur une partie nomm&eacute;e d'un document, utilisez
- un lien ordinaire, mais ajoutez-y le nom du point d'ancrage pr&eacute;c&eacute;d&eacute;
- d'un symbole <literal>#</literal>.</para>
-
- <example>
- <title>Lien sur une partie nomm&eacute;e d'un autre document</title>
-
- <para>Supposons que l'exemple <literal>para1</literal> se trouve
- dans un document appel&eacute; <filename>foo.html</filename>.</para>
-
- <programlisting>
-<![ CDATA [<p>Vous trouverez plus d'informations au
- <a href="foo.html#para1">premier paragraphe</a> de
- <tt>foo.html</tt>.</p>]]></programlisting>
- </example>
-
- <para>Si le lien pointe sur un point d'ancrage nomm&eacute; du m&ecirc;me document,
- vous pouvez ommettre son URL et ne mettre que le nom du point
- d'ancrage (pr&eacute;c&eacute;d&eacute; de <literal>#</literal>).</para>
-
- <example>
- <title>Lien sur une partie nomm&eacute;e du m&ecirc;me document</title>
-
- <para>Supposons que l'exemple <literal>para1</literal> fasse partie
- de ce document.</para>
-
- <programlisting>
-<![ CDATA [<p>Vous trouverez plus d'informations au
- <a href="#para1">premier paragraphe</a> de
- ce document.</p>]]></programlisting>
- </example>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>DocBook</title>
-
- <para>DocBook est une DTD cr&eacute;&eacute;e par le <ulink
- url="http://www.oreilly.com/davenport/">Davenport Group</ulink>
- pour la r&eacute;daction de documentation technique. De sorte que, et au
- contraire de LinuxDoc ou HTML, les marques DocBook sont plus con&ccedil;ues
- pour d&eacute;crire <emphasis>ce qu'est</emphasis> quelque chose que
- <emphasis>comment</emphasis> il faut le pr&eacute;senter.</para>
-
- <note>
- <title><literal>formel</literal> vs. <literal>informel</literal></title>
-
- <para>Certains &eacute;l&eacute;ments ont deux
- versions&nbsp;-&nbsp;<emphasis>formelle</emphasis> et
- <emphasis>informelle</emphasis>. Habituellement, la version formelle
- de l'&eacute;l&eacute;ment comporte une titre. La version informelle n'en a
- pas.</para>
- </note>
-
- <para>La DTD DocBook est disponible au catalogue des logiciels port&eacute;s avec
- le &ldquo;m&eacute;ta-logiciel port&eacute;&rdquo;
- <filename>textproc/docbook</filename>. Elle est automatiquement
- install&eacute;e par ce dernier.</para>
-
- <sect2>
- <title>Extensions FreeBSD</title>
-
- <para>Le Projet de Documentation de FreeBSD a ajout&eacute; quelques nouveaux
- &eacute;l&eacute;ments &agrave; la DTD DocBook. Ces &eacute;l&eacute;ments permettent un marquage plus
- pr&eacute;cis.</para>
-
- <para>Dans la suite, quand il sera question d'un &eacute;l&eacute;ment propre &agrave;
- FreeBSD, ce sera clairement indiqu&eacute;.</para>
-
- <para>Le terme &ldquo;DocBook&rdquo; d&eacute;signe dans ce qui suit la DTD
- DocBook avec les extensions FreeBSD.</para>
-
- <note>
- <para>Il n'y a rien dans ces extensions qui soit propre &agrave; FreeBSD,
- on a juste pens&eacute; que ce seraient des ajouts utiles pour ce projet
- pr&eacute;cis. Si d'autres contributeurs aux autres projets
- &ldquo;*nix&rdquo; (NetBSD, OpenBSD, Linux, &hellip;) sont
- int&eacute;ress&eacute;s &agrave; participer &agrave; la mise au point d'un jeu d'extensions
- DocBook standard, merci de contacter Nik Clayton
- <email>nik@FreeBSD.org</email>.</para>
- </note>
-
- <para>Les extensions FreeBSD ne font pas (actuellement) partie du
- catalogue des logiciels port&eacute;s. Elles sont inclues dans les sources du
- Projet de Documentation et se trouvent dans
- <filename>doc/share/sgml/freebsd.dtd</filename>.</para>
- </sect2>
-
- <sect2>
- <title>Identifiant Public Formel&nbsp;-&nbsp;<foreignphrase>Formal
- Public Indentifier</foreignphrase>, (FPI)</title>
-
- <para>En conformit&eacute; avec les conventions DocBook concernant les FPIs
- pour les personnalisations de DocBook, le FPI pour la DTD DocBook avec
- les extensions FreeBSD est&nbsp;:</para>
-
- <programlisting>PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"</programlisting>
- </sect2>
-
- <sect2>
- <title>Structure des documents</title>
-
- <para>DocBook vous permet de structurer votre documentation de
- diff&eacute;rentes fa&ccedil;ons. Le Projet de Documentation de FreeBSD utilise deux
- types de documents de base, le livre et l'article.</para>
-
- <para>Un livre est organis&eacute; <sgmltag>chapter</sgmltag>s. C'est une
- obligation. Il peut y avoir des <sgmltag>part</sgmltag>s entre le
- livre et le chapitre s'il l'on veut un niveau suppl&eacute;mentaire dans le
- d&eacute;coupage.</para>
-
- <para>Un chapitre peut avoir (ou non) une ou plusieurs sections. Elles
- sont d&eacute;sign&eacute;es par l'&eacute;l&eacute;ment <sgmltag>sect1</sgmltag>. Si une section
- inclue une autre section, utilisez l'&eacute;l&eacute;ment <sgmltag>sect2</sgmltag>,
- et ainsi de suite, jusqu'&agrave; <sgmltag>sect5</sgmltag>.</para>
-
- <para>Le contenu du livre est lui-m&ecirc;me dans les chapitres et
- sections.</para>
-
- <para>Un article est plus simple qu'un livre, et n'a pas de chapitres.
- Au lieu de cela, le contenu d'un article est organis&eacute; en une ou
- plusieurs sections, &agrave; l'aide des m&ecirc;mes &eacute;l&eacute;ments
- <sgmltag>sect1</sgmltag> (<sgmltag>sect2</sgmltag> et ainsi de suite)
- dont on se sert pour les livres.</para>
-
- <para>Il vous faudra manifestement choisir le type de document &agrave;
- utiliser selon la nature du document que vous r&eacute;digez. Les articles
- sont bien adapt&eacute;s pour des documents qui n'ont pas besoin d'&ecirc;tre
- d&eacute;compos&eacute;s en chapitres, et qui sont, relativement parlant, assez
- court&nbsp;-&nbsp;jusqu'&agrave; 20-25 pages. Les livres eux conviennent
- aux documents qui peuvent &ecirc;tre d&eacute;coup&eacute;s en plusieurs chapitres,
- avec &eacute;ventuellement des annexes, et autres composants.</para>
-
- <para>Les <ulink url="&url.tutorials;">guides
- FreeBSD</ulink> sont tous des articles, tandis que ce document, la
- <ulink url="&url.faq;">FAQ FreeBSD</ulink>, et le
- <ulink url="&url.handbook;">Manuel de R&eacute;f&eacute;rence FreeBSD</ulink> sont
- des livres.</para>
-
- <sect3>
- <title>Commencer un livre</title>
-
- <para>Le contenu d'un livre est un inclus dans l'&eacute;l&eacute;ment
- <sgmltag>book</sgmltag>. Tout autant que des marques organisant le
- contenu, cet &eacute;l&eacute;ment peut contenir des &eacute;l&eacute;ments qui donnent des
- informations suppl&eacute;mentaires sur le livre. Ce sont soit des
- m&eacute;ta-informations, utilis&eacute;es pour y faire r&eacute;f&eacute;rence, soit un
- contenu suppl&eacute;mentaire servant &agrave; g&eacute;n&eacute;rer la page de titre.</para>
-
- <para>Ces informations suppl&eacute;mentaires doivent &ecirc;tre inclues dans
- l'&eacute;l&eacute;ment <sgmltag>bookinfo</sgmltag>.</para>
-
- <example>
- <title>Boilerplate??? <sgmltag>book</sgmltag> avec
- <sgmltag>bookinfo</sgmltag></title>
-
- <!-- Can't put this in a marked section because of the
- replaceable elements -->
- <programlisting>&lt;book>
- &lt;bookinfo>
- &lt;title><replaceable>Mettez le titre ici</replaceable>&lt;/title>
-
- &lt;author>
- &lt;firstname><replaceable>Votre pr&eacute;nom</replaceable>&lt;/firstname>
- &lt;surname><replaceable>Votre nom de famille</replaceable>&lt;/surname>
- &lt;affiliation>
- &lt;address>&lt;email><replaceable>Votre adresse de courrier
- &eacute;lectronique</replaceable>&lt;/email>&lt;/address>
- &lt;/affiliation>
- &lt;/author>
-
- &lt;copyright>
- &lt;year><replaceable>1998</replaceable>&lt;/year>
- &lt;holder role="mailto:<replaceable>Votre adresse de courrier
- &eacute;lectronique</replaceable>"><replaceable>Votre nom</replaceable>&lt;/holder>
- &lt;/copyright>
-
- &lt;pubdate role="rcs">&#36;Date&#36;&lt;/pubdate>
-
- &lt;releaseinfo>&#36;Id&#36;&lt;/releaseinfo>
-
- &lt;abstract>
- &lt;para><replaceable>R&eacute;sumez ici le contenu du
- livre.</replaceable>&lt;/para>
- &lt;/abstract>
- &lt;/bookinfo>
-
- &hellip;
-
-&lt;/book></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Commencer un article</title>
-
- <para>Le contenu d'un article est un inclus dans l'&eacute;l&eacute;ment
- <sgmltag>article</sgmltag>. Tout autant que des marques organisant le
- contenu, cet &eacute;l&eacute;ment peut contenir des &eacute;l&eacute;ments qui donnent des
- informations suppl&eacute;mentaires sur l'article. Ce sont soit des
- m&eacute;ta-informations, utilis&eacute;es pour y faire r&eacute;f&eacute;rence, soit un
- contenu suppl&eacute;mentaire servant &agrave; g&eacute;n&eacute;rer la page de titre.</para>
-
- <para>Ces informations suppl&eacute;mentaires doivent &ecirc;tre inclues dans
- l'&eacute;l&eacute;ment <sgmltag>artheader</sgmltag>.</para>
-
- <example>
- <title>Boilerplate??? <sgmltag>article</sgmltag> avec
- <sgmltag>artheader</sgmltag></title>
-
- <!-- Can't put this in a marked section because of the
- replaceable elements -->
- <programlisting>&lt;article>
- &lt;artheader>
- &lt;title><replaceable>Mettez le titre ici</replaceable>&lt;/title>
-
- &lt;author>
- &lt;firstname><replaceable>Votre pr&eacute;nom</replaceable>&lt;/firstname>
- &lt;surname><replaceable>Votre nom de famille</replaceable>&lt;/surname>
- &lt;affiliation>
- &lt;address>&lt;email><replaceable>Votre adresse de courrier
- &eacute;lectronique</replaceable>&lt;/email>&lt;/address>
- &lt;/affiliation>
- &lt;/author>
-
- &lt;copyright>
- &lt;year><replaceable>1998</replaceable>&lt;/year>
- &lt;holder role="mailto:<replaceable>Votre adresse de courrier
- &eacute;lectronique</replaceable>"><replaceable>Votre nom</replaceable>&lt;/holder>
- &lt;/copyright>
-
- &lt;pubdate role="rcs">&#36;Date&#36;&lt;/pubdate>
-
- &lt;releaseinfo>&#36;Id&#36;&lt;/releaseinfo>
-
- &lt;abstract>
- &lt;para><replaceable>R&eacute;sumez ici le contenu de l'article.</replaceable>&lt;/para>
- &lt;/abstract>
- &lt;/artheader>
-
- &hellip;
-
-&lt;/article></programlisting>
- </example>
- </sect3>
- <sect3>
- <title>S&eacute;parer les chapitres</title>
-
- <para>Utilisez <sgmltag>chapter</sgmltag> pour marquer vos chapitres.
- Chaque chapitre a obligatoirement un <sgmltag>title</sgmltag>. Les
- articles n'ont pas de chapitre, ils sont r&eacute;serv&eacute;s aux livres.</para>
-
- <example>
- <title>Un chapitre</title>
-
- <programlisting><![ CDATA [<chapter>
- <title>Le titre du chapitre</title>
-
- ...
-</chapter>]]></programlisting>
- </example>
-
- <para>Un chapitre ne peut pas &ecirc;tre vide, il doit contenir des &eacute;l&eacute;ments
- en plus du <sgmltag>title</sgmltag>. Si vous voulez inclure un
- chapitre vide, ajoutez lui simplement un paragraphe vide.</para>
-
- <example>
- <title>Chapitres vides</title>
-
- <programlisting><![ CDATA [<chapter>
- <title>C'est un chapitre vide</title>
-
- <para></para>
-</chapter>]]></programlisting>
- </example>
- </sect3>
-
- <sect3>
- <title>Sections dans les chapitres</title>
-
- <para>Dans les livres, les chapitres peuvent (mais ce n'est pas
- obligatoire) &ecirc;tre d&eacute;compos&eacute;s en sections, sous-sections, et ainsi de
- suite. Dans les articles, les sections sont les principaux &eacute;l&eacute;ments
- d'organisation et chaque article doit contenir au moins une section.
- Utilisez l'&eacute;l&eacute;ment
- <sgmltag>sect<replaceable>n</replaceable></sgmltag>. Le
- <replaceable>n</replaceable> est le type de section, qui indique son
- niveau de profondeur.</para>
-
- <para>La premi&egrave;re <sgmltag>sect<replaceable>n</replaceable></sgmltag>
- est <sgmltag>sect1</sgmltag>. Vous pouvez en avoir plus d'une dans
- un chapitre. Elles peuvent inclure un ou plusieurs &eacute;l&eacute;ments
- <sgmltag>sect2</sgmltag>, et ainsi de suite, jusqu'&agrave;
- <sgmltag>sect5</sgmltag>.</para>
-
- <example>
- <title>Sections dans les chapitres</title>
-
- <programlisting><![ RCDATA [<chapter>
- <title>Exemple de chapitre</title>
-
- <para>Du texte dans le chapitre.</para>
-
- <sect1>
- <title>Premi&egrave;re section (1.1)</title>
-
- &hellip;
- </sect1>
-
- <sect1>
- <title>Seconde section (1.2)</title>
-
- <sect2>
- <title>Premi&egrave;re sous-section (1.2.1)</title>
-
- <sect3>
- <title>Premi&egrave;re sous-sous-section (1.2.1.1)</title>
-
- &hellip;
- </sect3>
- </sect2>
-
- <sect2>
- <title>Seconde sous-section (1.2.2)</title>
-
- &hellip;
- </sect2>
- </sect1>
-</chapter>]]></programlisting>
- </example>
-
- <note>
- <para>Cet exemple donne les num&eacute;ros des sections dans leurs titres.
- Vous ne devez pas le faire. Les feuilles de style s'en chargent
- (voir plus bas pour plus de d&eacute;tails), et vous n'avez pas &agrave; vous
- en pr&eacute;occupez.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Subdivision en <sgmltag>part</sgmltag>s</title>
-
- <para>Vous pouvez avoir un niveau d'organisation suppl&eacute;mentaire entre
- le <sgmltag>book</sgmltag> et le <sgmltag>chapter</sgmltag> en
- d&eacute;finissant une ou plusieurs <sgmltag>part</sgmltag>s. Ce n'est pas
- possible dans un <sgmltag>article</sgmltag>.</para>
-
- <programlisting><![ CDATA [<part>
- <title>Introduction</title>
-
- <chapter>
- <title>Resum&eacute;</title>
-
- ...
- </chapter>
-
- <chapter>
- <title>Qu'est-ce que FreeBSD&nbsp;?</title>
-
- ...
- </chapter>
-
- <chapter>
- <title>Historique</title>
-
- ...
- </chapter>
-</part>]]></programlisting>
- </sect3>
- </sect2>
-
- <sect2>
- <title>El&eacute;ments de blocs</title>
-
- <sect3>
- <title>Paragraphes</title>
-
- <para>DocBook conna&icirc;t trois types de paragraphes&nbsp;:
- <sgmltag>formalpara</sgmltag>, <sgmltag>para</sgmltag> et
- <sgmltag>simpara</sgmltag>.</para>
-
- <para>La plupart du temps, des <sgmltag>para</sgmltag>s vous
- suffiront. Les <sgmltag>formalpara</sgmltag>s ont un
- <sgmltag>title</sgmltag>, et avec les <sgmltag>simpara</sgmltag>s,
- certains &eacute;l&eacute;ments sont interdits &agrave; l'int&eacute;rieur du paragraphe.
- Tenez-vous en aux <sgmltag>para</sgmltag>s.</para>
-
- <example>
- <title><sgmltag>para</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>C'est un paragraphe. Il peut contenir
- presque n'importe quel autre &eacute;l&eacute;ment.</para> ]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>C'est un paragraphe. Il peut contenir presque n'importe quel
- autre &eacute;l&eacute;ment.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Citations en bloc</title>
-
- <para>Une citation en bloc est un long extrait d'un autre document qui
- ne doit pas faire partie du paragraphe courant. Vous n'en aurez
- probablement pas besoin souvent.</para>
-
- <para>Les citations en blocs peuvent facultativement avoir un titre et
- une attribution (ou n'avoir ni titre ni attribution).</para>
-
- <example>
- <title><sgmltag>blockquote</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>Un court extrait de la constitution des Etats-Unis&nbsp;:</para>
-
-<blockquote>
- <title>Pr&eacute;ambule &agrave; la Constitution des Etats-Unis</title>
-
- <attribution>Copi&eacute; d'un site Web quelque part</attribution>
-
- <para>Nous le Peuple des Etats-Unis, dans le but de former
- une Union plus parfaite, d'&eacute;tablir la Justice, de garantir
- la Tranquilit&eacute; domestique, assurer la d&eacute;fense collective,
- promouvoir notre Bien-&ecirc;tre g&eacute;n&eacute;ral, et conserver &agrave;
- nous-m&ecirc;mes et &agrave; notre Post&eacute;rit&eacute; les bienfaits de la
- Libert&eacute;, proclamons et &eacute;tablissons cette Constitution des
- Etats-Unis d'Am&eacute;rique.</para>
-</blockquote>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>Un court extrait de la constitution des
- Etats-Unis&nbsp;:</para>
-
- <blockquote>
- <title>Pr&eacute;ambule &agrave; la Constitution des Etats-Unis</title>
-
- <attribution>Copi&eacute; d'un site Web quelque part</attribution>
-
- <para>Nous le Peuple des Etats-Unis, dans le but de former une
- Union plus parfaite, d'&eacute;tablir la Justice, de garantir la
- Tranquilit&eacute; domestique, assurer la d&eacute;fense collective,
- promouvoir notre Bien-&ecirc;tre g&eacute;n&eacute;ral, et conserver &agrave; nous-m&ecirc;mes et
- &agrave; notre Post&eacute;rit&eacute; les bienfaits de la Libert&eacute;, proclamons et
- &eacute;tablissons cette Constitution des Etats-Unis d'Am&eacute;rique.</para>
- </blockquote>
- </example>
- </sect3>
-
- <sect3>
- <title>Indications, notes, avertissements, mises en garde,
- informations importantes et barres verticales.</title>
-
- <para>Vous devrez peut-&ecirc;tre ajouter des informations distinctes du
- texte lui-m&ecirc;me. Ce sont habituellement des
- &ldquo;m&eacute;ta-informations&rdquo; que l'utilisateur doit
- conna&icirc;tre.</para>
-
- <para>Selon la nature de l'information, vous utiliserez l'un des
- &eacute;lements <sgmltag>tip</sgmltag>, <sgmltag>note</sgmltag>,
- <sgmltag>warning</sgmltag>, <sgmltag>caution</sgmltag> ou
- <sgmltag>important</sgmltag>. Ou bien, si l'information est en
- rapport avec le texte, mais ne correspond &agrave; aucun des cas
- pr&eacute;c&eacute;dents, servez-vous de <sgmltag>sidebar</sgmltag>.</para>
-
- <para>Les cas o&ugrave; il faut choisir l'un ou l'autre de ces &eacute;l&eacute;ments ne
- sont pas clairement explicit&eacute;s. Voici ce que sugg&egrave;re la
- documentation DocBook&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Une Note est une information destin&eacute;e &agrave; tous les
- lecteurs.</para>
- </listitem>
-
- <listitem>
- <para>Un &eacute;l&eacute;ment Important est une variante de la Note.</para>
- </listitem>
-
- <listitem>
- <para>Une <foreignphrase>Caution</foreignphrase> est une
- information relative &agrave; la perte de donn&eacute;es ou d&eacute;gats logiciels
- &eacute;ventuels.</para>
- </listitem>
-
- <listitem>
- <para>Un <foreignphrase>Warning</foreignphrase> est une
- information relative aux d&eacute;gats mat&eacute;riels ou risques
- corporels.</para>
- </listitem>
- </itemizedlist>
-
- <example>
- <title><sgmltag>warning</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<warning>
- <para>Installer FreeBSD peut vous donner envie de supprimer
- Windows de votre disque dur.</para>
-</warning>]]></programlisting>
- </example>
-
- <!-- Need to do this outside of the example -->
-
- <warning>
- <para>Installer FreeBSD peut vous donner envie de supprimer Windows
- de votre disque dur.</para>
- </warning>
- </sect3>
-
- <sect3>
- <title>Listes and proc&eacute;dures</title>
-
- <para>Vous aurez souvent besoin de lister des informations ou
- d'indiquer &agrave; l'utilisateur les diff&eacute;rentes &eacute;tapes n&eacute;cessaires pour
- effectuer une t&acirc;che donn&eacute;e.</para>
-
- <para>Pour cela, servez-vous de <sgmltag>itemizedlist</sgmltag>,
- <sgmltag>orderedlist</sgmltag> ou
- <sgmltag>procedure</sgmltag><footnote><para>Il y a d'autres types de
- listes dans DocBook, mais ils ne nous concernent pas pour le
- moment.</para>
- </footnote>
- </para>
-
- <para><sgmltag>itemizedlist</sgmltag> et
- <sgmltag>orderedlist</sgmltag> sont semblables &agrave; leurs contreparties
- <sgmltag>ul</sgmltag> et <sgmltag>ol</sgmltag> en HTML. Chacune
- comporte un ou plusieurs &eacute;l&eacute;ments <sgmltag>listitem</sgmltag>, et
- chaque <sgmltag>listitem</sgmltag> contient un ou plusieurs &eacute;l&eacute;ments
- de blocs. Les &eacute;lements <sgmltag>listitem</sgmltag> sont analogues
- aux marques <sgmltag>li</sgmltag> du HTML. N&eacute;anmoins, au contraire
- du HTML, ils sont ici obligatoires.</para>
-
- <para>Une <sgmltag>procedure</sgmltag> est l&eacute;g&eacute;rement diff&eacute;rente. Elle
- consiste en <sgmltag>step</sgmltag>s, qui &agrave; leur tour sont compos&eacute;s
- de <sgmltag>step</sgmltag>s ou <sgmltag>substep</sgmltag>s. Chaque
- <sgmltag>step</sgmltag> contient des &eacute;l&eacute;ments de blocs.</para>
-
- <example>
- <title><sgmltag>itemizedlist</sgmltag>,
- <sgmltag>orderedlist</sgmltag> et
- <sgmltag>procedure</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<itemizedlist>
- <listitem>
- <para>C'est le premier &eacute;l&eacute;ment de la liste.</para>
- </listitem>
-
- <listitem>
- <para>C'est le second &eacute;l&eacute;ment de la liste.</para>
- </listitem>
-</itemizedlist>
-
-<orderedlist>
- <listitem>
- <para>C'est le premier &eacute;l&eacute;ment de la liste
- ordonn&eacute;e.</para>
- </listitem>
-
- <listitem>
- <para>C'est le second &eacute;l&eacute;ment de la liste ordonn&eacute;e.</para>
- </listitem>
-</orderedlist>
-
-<procedure>
- <step>
- <para>Faites ceci.</para>
- </step>
-
- <step>
- <para>Puis cela.</para>
- </step>
-
- <step>
- <para>Et maintenant cela.</para>
- </step>
-</procedure>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>C'est le premier &eacute;l&eacute;ment de la liste.</para>
- </listitem>
-
- <listitem>
- <para>C'est le second &eacute;l&eacute;ment de la liste.</para>
- </listitem>
- </itemizedlist>
-
- <orderedlist>
- <listitem>
- <para>C'est le premier &eacute;l&eacute;ment de la liste ordonn&eacute;e.</para>
- </listitem>
-
- <listitem>
- <para>C'est le second &eacute;l&eacute;ment de la liste ordonn&eacute;e.</para>
- </listitem>
- </orderedlist>
- </example>
-
- <!-- Can't have <procedure> inside <example>, so this is a cheat -->
-
- <procedure>
- <step>
- <para>Faites ceci.</para>
- </step>
-
- <step>
- <para>Puis cela.</para>
- </step>
-
- <step>
- <para>Et maintenant cela.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>Extraits de fichiers</title>
-
- <para>Si vous voulez incorporer un extrait de fichier (ou
- &eacute;ventuellement une fichier entier), mettez-le dans un &eacute;l&eacute;ment
- <sgmltag>programlisting</sgmltag>.</para>
-
- <para>Les blancs et sauts de ligne &agrave; l'int&eacute;rieur de
- <sgmltag>programlisting</sgmltag> <emphasis>sont</emphasis>
- significatifs. Cela signifie en particulier que la marque de d&eacute;but
- doit &ecirc;tre sur la m&ecirc;me ligne que la premi&egrave;re ligne du listing et que
- la marque de fin doit &ecirc;tre sur la m&ecirc;me ligne que la derni&egrave;re ligne
- du listing, sans quoi il y aurait des lignes blanches en
- trop.</para>
-
- <example>
- <title><sgmltag>programlisting</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA[<para>Quand vous aurez fini, votre programme
- ressemblera &agrave; cela :</para>
-
-<programlisting>#include &lt;stdio.h&gt;
-
-int
-main(void)
-{
- printf("bonjour, le monde\n");
-}</programlisting>]]></programlisting>
-
- <para>Notez qu'il faut utiliser les entit&eacute;s correspondantes et non
- les signes &ldquo;sup&eacute;rieur&rdquo; et &ldquo;inf&eacute;rieur&rdquo; &agrave; la
- ligne <literal>#include</literal>.</para>
-
- <para>Apparence&nbsp;:</para>
-
- <para>Quand vous aurez fini votre programme, ressemblera &agrave;
- cela&nbsp;:</para>
-
- <programlisting>#include &lt;stdio.h&gt;
-
-int
-main(void)
-{
- printf("bonjour, le monde\n");
-}</programlisting>
- </example>
-
- <note>
- <para>DocBook dispose d'un m&eacute;canisme pour faire r&eacute;f&eacute;rence &agrave; des
- sections d'un <sgmltag>programlisting</sgmltag> inclus auparavant,
- appel&eacute; &ldquo;rappels&rdquo; (voir
- <sgmltag>programlistingco</sgmltag> pour plus d'information). Je
- ne le comprend pas tout &agrave; fait (i.e., je ne l'ai jamais employ&eacute;),
- je ne peux donc pas le d&eacute;crire. En attendant, vous pouvez
- num&eacute;roter les lignes et y faire r&eacute;f&eacute;rence ensuite. Cela changera
- d&egrave;s que je trouverais le temps de comprendre et documenter les
- &ldquo;rappels&rdquo;.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Tables</title>
-
- <para>Au contraire d'HTML, vous n'avez pas besoin d'utiliser les
- tables pour des questions de pr&eacute;sentation, puisque les feuilles de
- style s'en chargent. Les tables servent uniquement pour les donn&eacute;es
- en tableaux.</para>
-
- <para>Bri&egrave;vement (voyez la documentation de DocBook pour plus de
- d&eacute;tails), une table (qui peut-&ecirc;tre formelle ou informelle) est
- constitu&eacute;e d'un &eacute;l&eacute;ment <sgmltag>table</sgmltag>. Il contient au
- moins un &eacute;l&eacute;ment <sgmltag>tgroup</sgmltag>, dont l'attribut donne
- le nombre de colonnes dans ce sous-tableau. Dans le sous-tableau,
- vous pouvez ensuite avoir un &eacute;l&eacute;ment <sgmltag>thead</sgmltag>, qui
- contient les &eacute;lements correspondant aux en-t&ecirc;tes des colonnes, et
- un <sgmltag>tbody</sgmltag> qui contient le corps du
- tableau.</para>
-
- <para>Les <sgmltag>thead</sgmltag> et <sgmltag>tbody</sgmltag>
- contiennent des &eacute;l&eacute;ments <sgmltag>row</sgmltag>&nbsp;-&nbsp;lignes,
- qui contiennent &agrave; leur tour des &eacute;l&eacute;ments <sgmltag>entry</sgmltag>.
- Chaque &eacute;l&eacute;ment <sgmltag>entry</sgmltag> correspond &agrave; une cellule du
- tableau.</para>
-
- <example>
- <title><sgmltag>informaltable</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>C'est le titre de la colonne 1</entry>
- <entry>C'est le titre de la colonne 2</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Ligne 1, colonne 1</entry>
- <entry>Ligne 1, colonne 2</entry>
- </row>
-
- <row>
- <entry>Ligne 2, colonne 1</entry>
- <entry>Ligne 2, colonne 2</entry>
- </row>
- </tbody>
- </tgroup>
-</informaltable>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>C'est le titre de la colonne 1</entry>
- <entry>C'est le titre de la colonne 2</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Ligne 1, colonne 1</entry>
- <entry>Ligne 1, colonne 2</entry>
- </row>
-
- <row>
- <entry>Ligne 2, colonne 1</entry>
- <entry>Ligne 2, colonne 2</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </example>
-
- <para>Si vous ne voulez pas de bordures autour du tableau, vous pouvez
- ajouter &agrave; l'&eacute;l&eacute;ment <sgmltag>informaltable</sgmltag> l'attribut
- <literal>frame</literal> avec la valeur <literal>none</literal>
- (i.e., <literal>&lt;informaltable
- frame="none"&gt;</literal>).</para>
-
- <example>
- <title>Tableaux avec <literal>frame="none"</literal></title>
-
- <para>Apparence&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>C'est le titre de la colonne 1</entry>
- <entry>C'est le titre de la colonne 2</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Ligne 1, colonne 1</entry>
- <entry>Ligne 1, colonne 2</entry>
- </row>
-
- <row>
- <entry>Ligne 2, colonne 1</entry>
- <entry>Ligne 2, colonne 2</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </example>
- </sect3>
-
- <sect3>
- <title>Exemples que l'utilisateur doit suivre</title>
-
- <para>Vous aurez souvent &agrave; donner des exemples que l'utilisateur
- puisse suivre. Ce seront habituellement des dialogues avec la
- machine&nbsp;: l'utilisateur tape une commande, il re&ccedil;oit une
- r&eacute;ponse, il tape une autre commande, et ainsi de suite.</para>
-
- <para>Il y a l&agrave; un certain nombre d'entit&eacute;s et d'&eacute;l&eacute;ments qui entrent
- en jeu.</para>
-
- <variablelist>
- <varlistentry>
- <term><sgmltag>screen</sgmltag></term>
-
- <listitem>
- <para>Tout ce que l'utilisateur voit dans cet exemple est
- affich&eacute; sur l'&eacute;cran de l'ordinateur, l'&eacute;l&eacute;ment suivant est
- donc <sgmltag>screen</sgmltag>.</para>
-
- <para>A l'int&eacute;rieur de <sgmltag>screen</sgmltag>, les blancs
- sont significatifs.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><sgmltag>prompt</sgmltag>,
- <literal>&amp;prompt.root;</literal> et
- <literal>&amp;prompt.user;</literal></term>
-
- <listitem>
- <para>Parmi ce que l'utilisateur verra &agrave; l'&eacute;cran, il y a les
- invites (du syst&egrave;me, de l'interpr&eacute;teur de commandes ou des
- applications). Ils doivent &ecirc;tre marqu&eacute;s avec
- <sgmltag>prompt</sgmltag>.</para>
-
- <para>Le cas particulier des deux invites de l'interpr&eacute;teur de
- commandes, pour un utilisateur ordinaire et pour le
- super-utilisateur, est trait&eacute; avec des entit&eacute;s. Chaque fois
- que vous voulez montrer que l'utilisateur est sous
- l'interpr&eacute;teur de commande, servez-vous de
- <literal>&amp;prompt.root;</literal> ou
- <literal>&amp;prompt.user;</literal> selon le cas. Il n'y a
- pas besoin qu'elles soient &agrave; l'int&eacute;rieur de
- <sgmltag>prompt</sgmltag>.</para>
-
- <note>
- <para><literal>&amp;prompt.root;</literal> et
- <literal>&amp;prompt.user;</literal> sont des extensions
- FreeBSD &agrave; DocBook, et ne font pas partie de la DTD
- originale.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><sgmltag>userinput</sgmltag></term>
-
- <listitem>
- <para>Quant il s'agit de texte que l'utilisateur doit taper,
- mettez-le dans un &eacute;l&eacute;ment <sgmltag>userinput</sgmltag>. Il
- sera normalement affich&eacute; diff&eacute;rement.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <example>
- <title><sgmltag>screen</sgmltag>, <sgmltag>prompt</sgmltag> et
- <sgmltag>userinput</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<screen>&prompt.user; <userinput>ls -1</userinput>
-foo1
-foo2
-foo3
-&prompt.user; <userinput>ls -1 | grep foo2</userinput>
-foo2
-&prompt.user; <userinput>su</userinput>
-<prompt>Password: </prompt>
-&prompt.root; <userinput>cat foo2</userinput>
-C'est le fichier 'foo2'</screen>]]></programlisting>
-
- <para>Apparence:</para>
-
- <screen>&prompt.user; <userinput>ls -1</userinput>
-foo1
-foo2
-foo3
-&prompt.user; <userinput>ls -1 | grep foo2</userinput>
-foo2
-&prompt.user; <userinput>su</userinput>
-<prompt>Password: </prompt>
-&prompt.root; <userinput>cat foo2</userinput>
-C'est le fichier 'foo2'</screen>
- </example>
-
- <note>
- <para>Bien que nous montrions le contenu du fichier
- <filename>foo2</filename>, nous n'utilisons
- <emphasis>pas</emphasis> la marque
- <sgmltag>programlisting</sgmltag>. R&eacute;servez
- <sgmltag>programlisting</sgmltag> pour les extraits de fichiers
- hors du dialogue homme/machine.</para>
- </note>
- </sect3>
- </sect2>
-
- <sect2>
- <title>El&eacute;ments en ligne</title>
-
- <sect3>
- <title>Mettre de l'information en valeur</title>
-
- <para>Si vous voulez mettre en valeur un mot ou une phrase,
- servez-vous de <sgmltag>emphasis</sgmltag>. La pr&eacute;sentation en sera
- peut-&ecirc;tre en italiques, ou gras, ou bien ce sera prononc&eacute;
- diff&eacute;rement par un logiciel de synth&egrave;se vocale.</para>
-
- <para>Il n'y a aucun moyen de changer la pr&eacute;sentation du texte mis en
- valeur dans votre document, pas d'&eacute;quivalent des
- <sgmltag>b</sgmltag> et <sgmltag>i</sgmltag>. Si l'information que
- vous donnez est importante, envisagez d'utiliser
- <sgmltag>important</sgmltag> plut&ocirc;t que
- <sgmltag>emphasis</sgmltag>.</para>
-
- <example>
- <title><sgmltag>emphasis</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>FreeBSD est sans aucun doute
- <emphasis>le</emphasis> premier syst&egrave;me
- d'exploitation de type Unix pour
- architecture Intel.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>FreeBSD est sans aucun doute
- <emphasis>le</emphasis> premier
- syst&egrave;me d'exploitation de type Unix pour architecture
- Intel.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Applications, commandes, options et r&eacute;f&eacute;rences</title>
-
- <para>Il vous arrivera souvent de d&eacute;signer des applications ou des
- commandes quand vous r&eacute;digerez quelque chose pour le Manuel de
- R&eacute;f&eacute;rence. Distinguer les unes des autres est simple&nbsp;: une
- application est un ensemble de (ou &eacute;ventuellement un seul)
- programmes d&eacute;di&eacute;s &agrave; une t&acirc;che particuli&egrave;re. Une commande est le nom
- d'un programme que l'utilisateur peut ex&eacute;cuter.</para>
-
- <para>Vous aurez aussi de temps &agrave; autre &agrave; lister une ou plusieurs des
- options d'une commande.</para>
-
- <para>Pour finir, il arrivera souvent que vous vouliez indiquer en
- m&ecirc;me temps que la commande, son num&eacute;ro de section dans les pages de
- manuel, au format &ldquo;commande(num&eacute;ro)&rdquo; habituel dans les
- documentations Unix.</para>
-
- <para>D&eacute;signez les noms d'applications avec
- <sgmltag>application</sgmltag>.</para>
-
- <para>Si vous voulez lister une commande avec son num&eacute;ro de section
- dans le manuel (ce qui sera la plupart du temps le cas), l'&eacute;l&eacute;ment
- DocBook pour cela est <sgmltag>citerefentry</sgmltag>. Il contiendra
- deux autres &eacute;l&eacute;ments, <sgmltag>refentrytitle</sgmltag> et
- <sgmltag>manvolnum</sgmltag>. Le contenu de
- <sgmltag>refentrytitle</sgmltag> est le nom de la commande, et celui
- de <sgmltag>manvolnum</sgmltag> est son num&eacute;ro de section dans le
- manuel.</para>
-
- <para>Ce peut &ecirc;tre fastidieux &agrave; taper, aussi a-t-on d&eacute;fini une s&eacute;ries
- d'<link
- linkend="sgml-primer-general-entities">entit&eacute;s g&eacute;n&eacute;rales</link>
- pour faciliter ces r&eacute;f&eacute;rences. Chacune de ces entit&eacute;s est de la
- forme
- <literal>&amp;man.<replaceable>page-de-manuel</replaceable>.<replaceable>section-du-manuel</replaceable>;</literal>.</para>
-
- <para>Ces entit&eacute;s sont dans le fichier
- <filename>doc/share/sgml/man-refs.ent</filename>, qui peut-&ecirc;tre
- r&eacute;f&eacute;renc&eacute; par le FPI&nbsp;:</para>
-
- <programlisting>PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"</programlisting>
-
- <para>L'introduction de votre documentation ressemblera donc
- probalement &agrave; &nbsp;:</para>
-
- <programlisting>&lt;!DOCTYPE book PUBLIC
- "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-
-&lt;!ENTITY % man PUBLIC
- "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"&gt;
-%man;
-
-&hellip;
-
-]&gt;</programlisting>
-
- <para>Servez-vous de <sgmltag>command</sgmltag> quand vous voulez
- mettre le nom d'une commande dans le texte en le pr&eacute;sentant comme
- quelque chose que l'utilisateur doit taper.</para>
-
- <para>Utilisez <sgmltag>option</sgmltag> pour d&eacute;signer les options
- d'une commande.</para>
-
- <para>Ce peut &ecirc;tre confus, et le bon choix n'est pas toujours &eacute;vident.
- Esp&eacute;rons que les exemples qui suivent &eacute;claircirons les
- choses.</para>
-
- <example>
- <title>Applications, commandes et options.</title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para><application>Sendmail</application> est le logiciel de
- courrier &eacute;lectronique le plus employ&eacute; sous Unix.</para>
-
-<para><application>Sendmail</application> comporte les
- programmes <citerefentry>
- <refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> et &man.newaliases.8;.</para>
-
-<para>L'un des param&egrave;tres de la ligne de commande de
- <citerefentry><refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>,
- <option>-bp</option>, affiche l'&eacute;tat des messages
- dans la file d'attente. V&eacute;rifiez-le en ex&eacute;cutant
- <command>sendmail -bp</command>.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para><application>Sendmail</application> est le logiciel de
- courrier &eacute;lectronique le plus employ&eacute; sous Unix.</para>
-
- <para><application>Sendmail</application> comporte les programmes
- <citerefentry><refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> et
- <citerefentry><refentrytitle>newaliases</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>.</para>
-
- <para>L'un des param&egrave;tres de la ligne de commande de
- <citerefentry><refentrytitle>sendmail</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>, <option>-bp</option>,
- affiche l'&eacute;tat des messages dans la file d'attente. V&eacute;rifiez-le
- en ex&eacute;cutant <command>sendmail -bp</command>.</para>
- </example>
-
- <note>
- <para>Remarquez comme il est plus facile d'utiliser la notation
- <literal>&amp;man.<replaceable>commande</replaceable>.<replaceable>section</replaceable>;</literal>.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Fichiers, r&eacute;pertoires, extensions</title>
-
- <para>Chaque fois que vous voulez donner le nom d'un fichier, d'un
- r&eacute;pertoire ou de l'extension d'un fichier, servez-vous de
- <sgmltag>filename</sgmltag>.</para>
-
- <example>
- <title><sgmltag>filename</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>Vous trouverez le source SGML du Manuel
- de R&eacute;f&eacute;rence en Anglais dans
- <filename>/usr/doc/en/handbook/</filename>. Le
- fichier principal, dans ce r&eacute;pertoire, s'appelle
- <filename>handbook.sgml</filename>. Il doit aussi
- y avoir un <filename>Makefile</filename> et un
- certain nombre de fichiers avec l'extension
- <filename>.ent</filename>.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>Vous trouverez le source SGML du Manuel de R&eacute;f&eacute;rence en
- Anglais dans <filename>/usr/doc/en/handbook/</filename>. Le
- fichier principal, dans ce r&eacute;pertoire, s'appelle
- <filename>handbook.sgml</filename>. Il doit aussi y avoir un
- <filename>Makefile</filename> et un certain nombre de fichiers
- avec l'extension <filename>.ent</filename>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques</title>
-
- <note>
- <title>extension FreeBSD</title>
-
- <para>Ces &eacute;l&eacute;ments font partie des extensions FreeBSD &agrave; DocBook et
- n'existent pas dans la DTD DocBook d'origine.</para>
- </note>
-
- <para>Pour faire r&eacute;f&eacute;rence &agrave; des fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques,
- vous avez deux solutions. Soit utiliser le nom du fichier sp&eacute;cial
- dans <filename>/dev</filename>, soit le nom sous lequel il est
- d&eacute;sign&eacute; dans le noyau. Dans ce dernier cas, servez-vous de
- <sgmltag>devicename</sgmltag>.</para>
-
- <para>Il y a des cas o&ugrave; vous n'aurez pas le choix. Pour certains
- p&eacute;riph&eacute;riques, les cartes r&eacute;seaux par exemple, il n'y a pas
- d'entr&eacute;es dans <filename>/dev</filename>, ou bien celles-ci sont
- tr&egrave;s diff&eacute;rentes des noms utilis&eacute;s dans le noyau.</para>
-
- <example>
- <title><sgmltag>devicename</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para><devicename>sio</devicename> sert
- sous FreeBSD aux communications s&eacute;ries.
- <devicename>sio</devicename> correspond
- &agrave; un certain nombre d'entr&eacute;es dans
- <filename>/dev</filename>, dont
- <filename>/dev/ttyd0</filename> et
- <filename>/dev/cuaa0</filename>.</para>
-
-<para>A l'inverse, les p&eacute;riph&eacute;riques r&eacute;seaux, tel que
- <devicename>ed0</devicename> n'apparaissent pas dans
- <filename>/dev</filename>.</para>
-
-<para>Sous MS-DOS, le premier lecteur de disquette s'appelle
- <devicename>a:</devicename>. Sous FreeBSD, c'est
- <filename>/dev/fd0</filename>.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para><devicename>sio</devicename> sert sous FreeBSD aux
- communications s&eacute;ries. <devicename>sio</devicename> correspond &agrave;
- un certain nombre d'entr&eacute;es dans <filename>/dev</filename>, dont
- <filename>/dev/ttyd0</filename> et
- <filename>/dev/cuaa0</filename>.</para>
-
- <para>A l'inverse, les p&eacute;riph&eacute;riques r&eacute;seaux, tel que
- <devicename>ed0</devicename> n'apparaissent pas dans
- <filename>/dev</filename>.</para>
-
- <para>Sous MS-DOS, le premier lecteur de disquette s'appelle
- <devicename>a:</devicename>. Sous FreeBSD, c'est
- <filename>/dev/fd0</filename>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Machines, domaines, adresses IP, et ainsi de suite</title>
-
- <note>
- <title>extension FreeBSD</title>
-
- <para>Ces &eacute;l&eacute;ments font partie des extensions FreeBSD &agrave; DocBook et
- n'existent pas dans la DTD DocBook d'origine.</para>
- </note>
-
- <para>Il y a diff&eacute;rentes fa&ccedil;ons de d&eacute;noter les informations
- d'identification des machines en r&eacute;seau, selon le type
- d'information. Elles utilisent toutes <sgmltag>hostid</sgmltag>
- comme &eacute;l&eacute;ment, l'attribut <literal>role</literal> servant &agrave;
- qualifier le type d'information.</para>
-
- <variablelist>
- <varlistentry>
- <term>Pas de valeur de l'attribut, ou
- <literal>role="hostname"</literal></term>
-
- <listitem>
- <para>Sans valeur de l'attribut (i.e.,
- <sgmltag>hostid</sgmltag>...<sgmltag>hostid</sgmltag>),
- l'information donn&eacute;e est le seul nom de la machine,
- <literal>freefall</literal> ou <literal>wcarchive</literal>,
- par exemple. Vous pouvez l'expliciter avec
- <literal>role="hostname"</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="domainname"</literal></term>
-
- <listitem>
- <para>C'est ici un nom de domaine, comme
- <literal>FreeBSD.org</literal> ou
- <literal>ngo.org.uk</literal>. Il n'y a pas de nom de
- machine.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="fqdn"</literal></term>
-
- <listitem>
- <para>C'est le nom complet de la
- machine&nbsp;-&nbsp;<foreignphrase>Fully Qualified Domain
- Name</foreignphrase>, compos&eacute; du nom de la machine et du nom
- de domaine.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="ipaddr"</literal></term>
-
- <listitem>
- <para>On donne alors l'adresse IP, probablement sous forme de
- quatre nombres s&eacute;par&eacute;s par des points.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="netmask"</literal></term>
-
- <listitem>
- <para>C'est un masque de sous-r&eacute;seau, qui peut &ecirc;tre donn&eacute; comme
- quatre nombres s&eacute;par&eacute;s par des points, un cha&icirc;ne en
- hexad&eacute;cimal ou un <literal>/</literal> suivi d'un
- nombre.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>role="mac"</literal></term>
-
- <listitem>
- <para>C'est une adresse Ethernet MAC, exprim&eacute;e par un s&eacute;ries de
- valeurs hexad&eacute;ciamales sur deux positions s&eacute;par&eacute;es par des
- deux-points.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <example>
- <title><sgmltag>hostid</sgmltag> et <literal>role</literal>s</title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>La machine locale peut toujours
- &ecirc;tre d&eacute;sign&eacute;e par <hostid>localhost</hostid>,
- et aura l'adresse IP
- <hostid role="ipaddr">127.0.0.1</hostid>.</para>
-
-<para>Le domaine
- <hostid role="domainname">FreeBSD.org</hostid>
- inclut un certain nombre de machine, dont
- <hostid role="fqdn">freefall.FreeBSD.org</hostid> et
- <hostid role="fqdn">bento.FreeBSD.org</hostid>.</para>
-
-<para>Quand vous ajoutez un alias IP &agrave; une interface (avec
- <command>ifconfig</command>), utilisez
- <emphasis>toujours</emphasis> le masque de sous-r&eacute;seau
- <hostid role="netmask">255.255.255.255</hostid>
- (qui peut aussi s'&eacute;crire
- <hostid role="netmask">0xffffffff)</hostid>.</para>
-
-<para>L'adresse MAC identifie de fa&ccedil;on unique
- chaque carte r&eacute;seau existante. Une adresse MAC
- ressemble typiquement &agrave; <hostid
- role="mac">08:00:20:87:ef:d0</hostid>.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>La machine locale peut toujours &ecirc;tre d&eacute;sign&eacute;e par
- <hostid>localhost</hostid>, et aura l'adresse IP
- <hostid role="ipaddr">127.0.0.1</hostid>.</para>
-
- <para>Le domaine <hostid role="domainname">FreeBSD.org</hostid>
- inclut un certain nombre de machine, dont
- <hostid role="fqdn">freefall.FreeBSD.org</hostid> et
- <hostid role="fqdn">bento.FreeBSD.org</hostid>.</para>
-
- <para>Quand vous ajoutez un alias IP &agrave; une interface (avec
- <command>ifconfig</command>), utilisez
- <emphasis>toujours</emphasis> le masque de sous-r&eacute;seau
- <hostid role="netmask">255.255.255.255</hostid>
- (qui peut aussi s'&eacute;crire
- <hostid role="netmask">0xffffffff</hostid>).</para>
-
- <para>L'adresse MAC identifie de fa&ccedil;on unique chaque carte r&eacute;seau
- existante. Une adresse MAC ressemble typiquement &agrave; <hostid
- role="mac">08:00:20:87:ef:d0</hostid>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Noms d'utilisateurs</title>
-
- <note>
- <title>extension FreeBSD</title>
-
- <para>Ces &eacute;l&eacute;ments font partie des extensions FreeBSD &agrave; DocBook et
- n'existent pas dans la DTD DocBook d'origine.</para>
- </note>
-
- <para>Si vous avez besoin de faire r&eacute;f&eacute;rence &agrave; un nom d'utilisateur,
- comme <literal>root</literal> ou <literal>bin</literal>, servez-vous
- de <sgmltag>username</sgmltag>.</para>
-
- <example>
- <title><sgmltag>username</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>Pour effectuer la plupart des
- t&acirc;ches d'administration syst&egrave;me,
- vous aurez besoin d'&ecirc;tre
- <username>root</username>.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>Pour effectuer la plupart des t&acirc;ches d'administration syst&egrave;me,
- vous aurez besoin d'&ecirc;tre <username>root</username>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>D&eacute;crire les <filename>Makefile</filename>s</title>
-
- <note>
- <title>extension FreeBSD</title>
-
- <para>Ces &eacute;l&eacute;ments font partie des extensions FreeBSD &agrave; DocBook et
- n'existent pas dans la DTD DocBook d'origine.</para>
- </note>
-
- <para>Il y a des &eacute;l&eacute;ments pour d&eacute;crire les composantes d'un
- <filename>Makefile</filename>s, <sgmltag>maketarget</sgmltag> et
- <sgmltag>makevar</sgmltag>.</para>
-
- <para><sgmltag>maketarget</sgmltag> d&eacute;signe une cible d&eacute;finie dans un
- <filename>Makefile</filename> qui peut &ecirc;tre utilis&eacute;e en param&egrave;tre de
- <command>make</command>. <sgmltag>makevar</sgmltag> d&eacute;signe une
- variable qui peut &ecirc;tre d&eacute;finie (dans l'environnement, sur la ligne
- de commande de <command>make</command> ou dans le
- <filename>Makefile</filename>) et affecte le processus .</para>
-
- <example>
- <title><sgmltag>maketarget</sgmltag> et
- <sgmltag>makevar</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>Il y a deux cibles courantes dans les
- <filename>Makefile</filename>&nbsp;:
- <maketarget>all</maketarget> et
- <maketarget>clean</maketarget>.</para>
-
-<para>G&eacute;n&eacute;ralement, invoquer <maketarget>all</maketarget>
- reconstruit l'application, et invoquer
- <maketarget>clean</maketarget> supprime les
- fichiers temporaires (<filename>.o</filename>
- par exemple) cr&eacute;&eacute;s lors de la reconstruction.</para>
-
-<para><maketarget>clean</maketarget> peut &ecirc;tre
- contr&ocirc;l&eacute;e par un certain nombre
- de variables, dont <makevar>CLOBBER</makevar> et
- <makevar>RECURSE</makevar>.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>Il y a deux cibles courantes dans les
- <filename>Makefile</filename>&nbsp;: <maketarget>all</maketarget>
- et <maketarget>clean</maketarget>.</para>
-
- <para>G&eacute;n&eacute;ralement, invoquer <maketarget>all</maketarget>
- reconstruit l'application, et invoquer
- <maketarget>clean</maketarget> supprime les fichiers temporaires
- (<filename>.o</filename> par exemple) cr&eacute;&eacute;s lors de la
- reconstruction.</para>
-
- <para><maketarget>clean</maketarget> peut &ecirc;tre contr&ocirc;l&eacute;e par un
- certain nombre de variables, dont <makevar>CLOBBER</makevar> et
- <makevar>RECURSE</makevar>.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Lit&eacute;raux</title>
-
- <para>Vous aurez souvent besoin d'inclure &ldquo;lit&eacute;ralement&rdquo;
- du texte dans le Manuel. Ce sont des extraits d'un fichier, que l'on
- doit pouvoir copier tel quel dans un autre fichier.</para>
-
- <para>Il vous suffira parfois de <sgmltag>programlisting</sgmltag>
- pour cela. <sgmltag>programlisting</sgmltag> n'est pas toujours
- appropri&eacute;, en particulier quand vous voulez inclure un extrait
- de fichier au fil de l'eau, dans le corps m&ecirc;me du paragraphe.</para>
-
- <para>Servez-vous dans ces cas-l&agrave; de
- <sgmltag>literal</sgmltag>.</para>
-
- <example>
- <title><sgmltag>literal</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>La ligne <literal>maxusers 10</literal> du fichier
- de configuration du noyau d&eacute;termine la table de nombreuses
- tables syst&egrave;me et d&eacute;finit approximativement le nombre de
- connexions simultan&eacute;es qu'acceptera le syst&egrave;me.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>La ligne <literal>maxusers 10</literal> du fichier de
- configuration du noyau d&eacute;termine la table de nombreuses tables
- syst&egrave;me et d&eacute;finit approximativement le nombre de connexions
- simultan&eacute;es qu'acceptera le syst&egrave;me.</para>
- </example>
- </sect3>
-
- <sect3>
- <title>Montrer ce que l'utilisateur <emphasis>doit</emphasis>
- renseigner</title>
-
- <para>Il arrivera souvent que vous vouliez montrer &agrave; l'utilisateur ce
- qu'il doit faire, faire r&eacute;f&eacute;rence &agrave; un fichier, &agrave; une ligne de
- commande, ou autre, dans lesquels l'utitilisateur ne pourra pas
- purement et simplement copier les examples que vous lui donnez, mais
- devra y renseigner lui-m&ecirc;me certaines informations.</para>
-
- <para><sgmltag>replaceable</sgmltag> est pr&eacute;vu pour ces cas-l&agrave;.
- Servez-vous en <emphasis>&agrave; l'int&eacute;rieur</emphasis> d'autres &eacute;l&eacute;ments
- pour indiquer quels contenus l'utilisateur doit remplacer.</para>
-
- <example>
- <title><sgmltag>replaceable</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<informalexample>
- <screen>&prompt.user; <userinput>man
- <replaceable>command</replaceable></userinput></screen>
-</informalexample>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen>
- </informalexample>
-
- <para><sgmltag>replaceable</sgmltag> peut servir dans de nombreux
- autres &eacute;l&eacute;ments, dont <sgmltag>literal</sgmltag>. Cet exemple
- montre aussi qu'il ne faut mettre <sgmltag>replaceable</sgmltag>
- qu'autour du contenu que l'utilisateur <emphasis>doit</emphasis>
- fournir. Il faut laisser le reste tel quel.</para>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>La ligne <literal>maxusers 10</literal> du fichier
- de configuration du noyau d&eacute;termine la table de nombreuses
- tables syst&egrave;me et d&eacute;finit approximativement le nombre
- de connexions simultan&eacute;es qu'acceptera le syst&egrave;me.</para>
-
-<para><literal>32</literal> est un valeur correcte de
- <replaceable>n</replaceable> pour une station
- de travail.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>La ligne <literal>maxusers 10</literal> du fichier de
- configuration du noyau d&eacute;termine la table de nombreuses tables
- syst&egrave;me et d&eacute;finit approximativement le nombre de connexions
- simultan&eacute;es qu'acceptera le syst&egrave;me.</para>
-
- <para><literal>32</literal> est un valeur correcte de
- <replaceable>n</replaceable> pour une station de travail.</para>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Liens</title>
-
- <note>
- <para>Les liens sont aussi des &eacute;l&eacute;ments en ligne.</para>
- </note>
-
- <sect3>
- <title>Mettre des liens vers d'autres parties du m&ecirc;me document</title>
-
- <para>Pour mettre de liens &agrave; l'int&eacute;rieur m&ecirc;me du document, il faut que
- vous pr&eacute;cisiez d'o&ugrave; part le lien (i.e., le texte ou autre, sur
- lequel l'utilisateur clique) et o&ugrave; il va.</para>
-
- <para>Chaque &eacute;l&eacute;ment DocBook poss&egrave;de un attribut
- <literal>id</literal>. Vous pouvez utiliser cet attribut pour donner
- un nom unique &agrave; l'&eacute;l&eacute;ment.</para>
-
- <para>C'est cette valeur que vous utiliserez quand vous pr&eacute;ciserez
- la destination du lien.</para>
-
- <para>Habituellement, vous mettrez des liens sur des chapitres ou des
- sections, vous ajouterez donc un attribut <literal>id</literal> &agrave;
- ces &eacute;l&eacute;ments.</para>
-
- <example>
- <title><literal>id</literal> de chapitres et de section</title>
-
- <programlisting><![ CDATA [<chapter id="chapitre1">
- <title>Introduction</title>
-
- <para>C'est l'introduction. Elle comporte une sous-section,
- qui a aussi un identifiant.</para>
-
- <sect1 id="chapter1-sect1">
- <title>Sous-section 1</title>
-
- <para>C'est la sous-section.</para>
- </sect1>
-</chapter>]]></programlisting>
- </example>
-
- <para>Vous devriez utiliser des valeurs plus explicites. Ces valeurs
- doivent &ecirc;tre uniques pour le document (i.e., pas uniquement dans le
- fichier, mais dans le document dans lequel le fichier peut
- &eacute;ventuellement &ecirc;tre inclus aussi). Remarquez que
- l'<literal>id</literal> de la sous-section est construit en le
- pr&eacute;fixant de l'<literal>id</literal> du chapitre. Cela aide &agrave;
- construire des identifiants uniques.</para>
-
- <para>Si vous voulez que l'utilisateur puisse aller &agrave; un endroit
- pr&eacute;cis du document (&eacute;ventuellement au milieu du paragraphe), ou &agrave; un
- exemple, servez-vous de <sgmltag>anchor</sgmltag>. Cet &eacute;l&eacute;ment n'a
- pas de contenu, mais il a un attribut <literal>id</literal>.</para>
-
- <example>
- <title><sgmltag>anchor</sgmltag></title>
-
- <programlisting><![ CDATA [<para>Ce paragraphe inclut un
- <anchor id="para1">lien interne. Il n'appara&icirc;t
- pas dans le document.</para>]]></programlisting>
- </example>
-
- <para>Si vous voulez fournir &agrave; l'utilisateur un lien qu'il puisse
- activer (probablement en cliquant dessus) pour aller &agrave; une section
- du document qui a un attribut <literal>id</literal>, vous pouvez
- vous servir de <sgmltag>xref</sgmltag> ou
- <sgmltag>link</sgmltag>.</para>
-
- <para>Ces deux &eacute;l&eacute;ments ont un attribut <literal>linkend</literal>.
- La valeur de cette attribut doit &ecirc;tre celle que vous avez utilis&eacute;e
- comme attribut <literal>id</literal> (peu importe si cette valeur
- n'a pas encore &eacute;t&eacute; d&eacute;finie dans le document, les liens peuvent &ecirc;tre
- en avant ou en arri&egrave;re).</para>
-
- <para>Si vous vous servez de <sgmltag>xref</sgmltag>, vous n'avez pas
- le contr&ocirc;le du texte du lien. Il sera g&eacute;n&eacute;r&eacute; automatiquement.</para>
-
- <example>
- <title>Se servir de <sgmltag>xref</sgmltag></title>
-
- <para>Supposons que ce fragment apparaisse quelque part dans un
- document qui contienne l'exemple que nous avons donn&eacute; pour
- <literal>id</literal>&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>Vous trouverez plus d'information
- au <xref linkend="chapter1">.</para>
-
-<para>Vous trouverez des informations plus d&eacute;taill&eacute;es dans
- <xref linkend="chapter1-sect1">.</para>]]></programlisting>
-
- <para>Le texte du lien sera g&eacute;n&eacute;r&eacute; automatiquement, et cela
- ressemblera &agrave; (le texte mis <emphasis>en valeur</emphasis> indique
- que c'est cela le lien)&nbsp;:</para>
-
- <blockquote>
- <para>Vous trouverez plus d'information au <emphasis>Chapitre
- Un</emphasis>.</para>
-
- <para>Vous trouverez des informations plus d&eacute;taill&eacute;es dans
- <emphasis>la section appell&eacute;e Sous-section 1</emphasis>.</para>
- </blockquote>
- </example>
-
- <para>Remarquez que le texte du lien est construit &agrave; partir du titre
- de la section ou du num&eacute;ro du chapitre.</para>
-
- <note>
- <para>Cela veut dire que vous <emphasis>ne pouvez pas</emphasis>
- utiliser <sgmltag>xref</sgmltag> pour mettre un lien sur
- l'attribut <literal>id</literal> d'un &eacute;l&eacute;ment
- <sgmltag>anchor</sgmltag>. L'<sgmltag>anchor</sgmltag> n'a pas de
- contenu et <sgmltag>xref</sgmltag> ne pourrait donc pas g&eacute;n&eacute;rer le
- texte du lien.</para>
- </note>
-
- <para>Si vous voulez avoir la ma&icirc;trise du texte du lien, servez-vous
- alors de <sgmltag>link</sgmltag>. Cet &eacute;l&eacute;ment encadre un contenu qui
- sera utilis&eacute; comme lien.</para>
-
- <example>
- <title>Utiliser <sgmltag>link</sgmltag></title>
-
- <para>Supposons que ce fragment apparaisse quelque part dans un
- document qui contienne l'exemple que nous avons donn&eacute; pour
- <literal>id</literal>&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>Vous trouverez plus d'information
- au <link linkend="chapter1">premier chapitre</link>.</para>
-
-<para>Vous trouverez des informations plus d&eacute;taill&eacute;es dans
- <link linkend="chapter1-sect1">cette</link>
- section.</para>]]></programlisting>
-
- <para>Ce qui g&eacute;n&eacute;rera (le texte mis <emphasis>en valeur</emphasis>
- indique que c'est cela le lien)&nbsp;:</para>
-
- <blockquote>
- <para>Vous trouverez plus d'information au <emphasis>premier
- chapitre</emphasis>.</para>
-
- <para>Vous trouverez des informations plus d&eacute;taill&eacute;es dans
- <emphasis>cette</emphasis> section.</para>
-
- </blockquote>
- </example>
-
- <note>
- <para>Le dernier exemple n'est pas &agrave; suivre. N'utilisez jamais
- &ldquo;ce&rdquo; ou &ldquo;ici&rdquo; comme origine du lien. Le
- lecteur devra d&eacute;tailler le contexte dans lequel c'est employ&eacute; pour
- comprendre o&ugrave; le lien va le mener.</para>
- </note>
-
- <note>
- <para>Vous <emphasis>pouvez</emphasis> vous servir de
- <sgmltag>link</sgmltag> pour mettre un lien sur un
- <literal>id</literal> ou une <sgmltag>anchor</sgmltag>, puisque
- le contenu du <sgmltag>link</sgmltag> d&eacute;finit le texte qui sera
- utilis&eacute; comme lien.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Liens vers d'autres documents sur le WWW</title>
-
- <para>Mettre des liens sur des documents externes est beaucoup plus
- facile, si tant est que vous connaissiez l'URL du document sur
- lequel vous voulez mettre un lien. Servez-vous de
- <sgmltag>ulink</sgmltag>. L'attribut <literal>url</literal> sera
- l'URL de la page o&ugrave; pointera le lien, et le contenu du lien sera
- utilis&eacute; pour que l'utilisateur puisse l'activer.</para>
-
- <example>
- <title><sgmltag>ulink</sgmltag></title>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting><![ CDATA [<para>Vous pouvez bien s&ucirc;r cessez de lire
- ce document, et aller au lieu de cela sur la <ulink
- url="http://www.FreeBSD.org/"> page Web de FreeBSD</ulink>.</para>]]></programlisting>
-
- <para>Apparence&nbsp;:</para>
-
- <para>Vous pouvez bien s&ucirc;r cessez de lire ce document, et aller au
- lieu de cela sur la <ulink
- url="http://www.FreeBSD.org/"> page Web de
- FreeBSD</ulink>.</para>
- </example>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>* LinuxDoc</title>
-
- <para>LinuxDoc est adapt&eacute; de la DTD QWERTZ, et a &eacute;t&eacute; d'abord utilis&eacute; par
- le <ulink url="http://sunsite.unc.edu/LDP/">Projet de Documentation de
- Linux</ulink>, puis adopt&eacute; ensuite par celui de FreeBSD.</para>
-
- <para>La DTD LinuxDoc utilise des marques qui d&eacute;crivent avant tout
- l'apparence du document et non son contenu (i.e., elle d&eacute;crit &agrave; quoi
- quelque chose ressemble, et non ce que c'est).</para>
-
- <para>Et le Projet de Documentation de FreeBSD et celui de Linux sont en
- train de migrer de la DTD LinuxDoc &agrave; la DTD DocBook.</para>
-
- <para>La DTD LinuxDoc DTD est disponible au catalogue des logiciels port&eacute;s,
- dans la cat&eacute;gorie <filename>textproc/linuxdoc</filename>.</para>
- </sect1>
-</chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml
deleted file mode 100644
index 77184dc686..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml
+++ /dev/null
@@ -1,1645 +0,0 @@
-<!-- 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.
-
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.8
--->
-
-<chapter id="sgml-primer">
- <title>Introduction &agrave; SGML</title>
-
- <para>La majorit&eacute; des documentations du FDP utilisent SGML. Ce chapitre vous
- explique ce que cela signifie exactement, comment lire et comprendre le
- source de la documentation et d&eacute;crit la fa&ccedil;on d'utiliser le SGML que vous
- recontrerez dans la documentation.</para>
-
- <para>Des parties de cette section se sont inspir&eacute;es du livre de Mark
- Galassi, <ulink
- url="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html">&ldquo;<foreignphrase>Get Going With DocBook</foreignphrase>&rdquo;</ulink>.</para>
-
- <sect1>
- <title>Introduction</title>
-
- <para>Il &eacute;tait autrefois facile de travailler sur des documents
- &eacute;lectroniques. Vous n'aviez normalement &agrave; conna&icirc;tre que le jeu de
- caract&egrave;res utilis&eacute; (ASCII, EBCDIC, ou l'un des nombreux autres) et
- c'&eacute;tait &agrave; peu pr&egrave;s tout. Le texte &eacute;tait du texte, et vous voyiez
- vraiment ce que vous obteniez. Pas de sophistication, pas de formatage,
- pas d'intelligence.</para>
-
- <para>Cela devint in&eacute;vitablement insuffisant. Une fois que vous avez du
- texte qu'une machine peut lire, vous vous attendez &agrave; ce que la machine
- puisse l'utiliser et le manipuler intelligemment. Vous aimeriez pouvoir
- pr&eacute;ciser que certaines phrases sont accentu&eacute;es, y ajouter un glossaire
- ou des hyper-liens. Vous voulez que les noms de fichiers apparaissent
- en police &ldquo;machine &agrave; &eacute;crire&rdquo; &agrave; l'&eacute;cran et en italique &agrave;
- l'impression, et tout un tas d'autres options de pr&eacute;sentation
- encore.</para>
-
- <para>Il fut un temps o&ugrave; l'on pensait que l'Intelligence Artificielle (IA)
- rendrait cela facile. Votre ordinateur pourrait lire le document et
- identifier les phrases cl&eacute;s, les noms de fichiers, le texte que
- l'utilisateur devait taper, et d'autres encore. Malheureusement, la
- r&eacute;alit&eacute; est un peu diff&eacute;rente, et il faut aider nos ordinateurs &agrave;
- manipuler intelligemment notre texte.</para>
-
- <para>Plus pr&eacute;cisement, il faut les aider &agrave; indentifier ce qui est quoi.
- Vous et moi, &agrave; la vue de&nbsp;:</para>
-
- <blockquote>
- <para>Pour effacer <filename>/tmp/foo</filename>, utilisez
- &man.rm.1;&nbsp;:</para>
-
- <screen>&prompt.user; <command>rm /tmp/foo</command></screen>
- </blockquote>
-
- <para>distinguons facilement ce qui est nom de fichier, commande &agrave;
- taper, r&eacute;f&eacute;rence aux pages de manuel, et ainsi de suite. Mais
- l'ordinateur lui ne le peut pas. Pour cela, Nous avons besoin des
- marques.</para>
-
- <para>Le &ldquo;marquage&rdquo; est commun&eacute;ment qualifi&eacute; de &ldquo;valeur
- ajout&eacute;e&rdquo; ou &ldquo;co&ucirc;t augment&eacute;&rdquo;. Le terme prend ces deux
- sens quand il s'applique au texte. La marquage est du texte en
- suppl&eacute;ment dans le document, distinct par un moyen ou un autre du
- contenu du document, de fa&ccedil;on &agrave; ce que les programmes qui traitent le
- document puisse le lire et l'utiliser pour prendre des d&eacute;cisions. Les
- &eacute;diteurs peuvent masquer le marquage &agrave; l'utilisateur, de fa&ccedil;on &agrave; ce
- qu'il ne soit pas perturb&eacute; par ces marques.</para>
-
- <para>L'information suppl&eacute;mentaire donn&eacute;e avec les marques
- <emphasis>ajoute de la valeur</emphasis> au document. Le marquage doit
- habituellement &ecirc;tre manuel&nbsp;-&nbsp;apr&egrave;s tout, si les ordinateurs
- pouvait analyser suffisamment le texte pour ajouter les marques, il n'y
- en aurait alors en fait pas besoin. Cela <emphasis>augment le
- co&ucirc;t</emphasis> du document.</para>
-
- <para>L'exemple pr&eacute;c&eacute;dent est cod&eacute; comme suit dans le pr&eacute;sent
- document&nbsp;:</para>
-
- <programlisting><![ CDATA [
-<para>Pour effacer <filename>/tmp/foo</filename>, utilisez
- &man.rm.1;.</para>
-
-<para><command>rm /tmp/foo</command></para>]]></programlisting>
-
- <para>Comme vous pouvez le constater, le marquage est clairement s&eacute;par&eacute; du
- contenu.</para>
-
- <para>Bien &eacute;videmment, si vous devez utiliser des marques, vous devrez
- d&eacute;finir ce que les marques veulent dire et comment elles doivent &ecirc;tre
- trait&eacute;es. Il vous faudra un language de marquage auquel vous r&eacute;f&eacute;rer
- pour marquer vos documents.</para>
-
- <para>Un seul language de marquage peut bien s&ucirc;r ne pas suffire. Les
- besoins de marquage d'une documentation technique diff&egrave;rent &eacute;norm&eacute;ment
- de ceux de recettes de cuisines. ces derniers seront &agrave; leur tour
- diff&eacute;rents de ceux d'un language de marquage pour de la po&eacute;sie. Vous
- avez en fait besoin d'un language qui vous permette de d&eacute;finir ces
- autres languages de marquage. Un <emphasis>m&eacute;ta-language de
- marquage</emphasis>.</para>
-
- <para>C'est exactement ce qu'est <foreignphrase>Standard Generalised
- Markup Language (SGML)</foreignphrase>&nbsp;-&nbsp;Language de Marquage
- Standard G&eacute;n&eacute;ralis&eacute;. De nombreux languages de marquage sont &eacute;crits en
- SGML, dont les deux languages les plus utilis&eacute;s par le FDP, HTML et
- DocBook.</para>
-
- <para>Chaque d&eacute;finition d'un language s'appelle plus exactement une
- <foreignphrase>Document Type Definition
- (DTD)</foreignphrase>&nbsp;-&nbsp;D&eacute;finition de Type de Document. La DTD
- d&eacute;finit les noms des &eacute;l&eacute;ments utilisables, leur ordre d'apparition (et
- leur hi&eacute;rarchie) et les informations qui s'y rapportent. Une DTD est
- parfois d&eacute;sign&eacute;e comme une <emphasis>application</emphasis> de
- SGML.</para>
-
- <para id="sgml-primer-validating">Une DTD est une sp&eacute;cification
- <emphasis>compl&egrave;te</emphasis> de tous les &eacute;l&eacute;ments autoris&eacute;s, de l'ordre
- dans lequel ils doivent &ecirc;tre utilis&eacute;s, quels sont ceux qui sont
- obligatoires, quels sont ceux qui sont facultatifs, et ainsi de suite.
- Il est alors possible d'&eacute;crire un <emphasis>analyseur</emphasis> qui
- lise et la DTD et le document qui pr&eacute;tend s'y conformer. L'analyseur
- peut alors v&eacute;rifier si tous les &eacute;l&eacute;ments requis sont bien pr&eacute;sents dans
- l'ordre voulu dans le document et s'il y a des erreurs dans le marquage.
- On appelle habituellement cela <quote>valider le
- document</quote>.</para>
-
- <note>
- <para>Ce traitement ne valide uniquement que le choix des &eacute;l&eacute;ments, leur
- ordre, et ainsi de suite, se conforme &agrave; ce que d&eacute;finit la DTD. Il ne
- v&eacute;rifie <emphasis>pas</emphasis> que vous avez utilis&eacute; les marques
- <emphasis>appropri&eacute;es</emphasis> au document. Si vous marquez tous les
- noms de fichiers de votre document comme des noms de fonctions,
- l'analyseur ne le signalera pas comme une erreur (en supposant, bien
- s&ucirc;r, que votre DTD d&eacute;finisse des &eacute;l&eacute;ments pour les noms de fichiers et
- de fonctions et qu'ils aient le droit d'appara&icirc;tre aux m&ecirc;mes
- endroits).</para>
- </note>
-
- <para>Il est probable que vos contributions au Projet de Documentation
- consiste en documents marqu&eacute;s soit en HTML soit en DocBook, plut&ocirc;t qu'en
- modifications aux DTDs. Pour cette raison, cet ouvrage n'abordera pas la
- fa&ccedil;on d'&eacute;crire une DTD.</para>
- </sect1>
-
- <sect1 id="sgml-primer-elements">
- <title>El&eacute;ments, marques et attributs</title>
-
- <para>Toutes les DTDs &eacute;crites en HTML ont des caract&eacute;ristiques communes.
- Ce n'est gu&egrave;re surprenant comme le montre in&eacute;vitablement la philosophie
- qui sous-tend SGML. Une des manifestations les plus visibles de cette
- philosophie est la caract&eacute;risation en <emphasis>contenu</emphasis> et
- <emphasis>&eacute;l&eacute;ments</emphasis>.</para>
-
- <para>Votre documentation (que ce soit une seule page Web ou un ouvrage
- volumineux) est vue comme &eacute;tant un contenu. Ce contenu est alors divis&eacute;
- (et ensuite subdivis&eacute;) en &eacute;l&eacute;ments. L'objectif de l'ajout de marques est
- de nommer et de d&eacute;finir le d&eacute;but et la fin de ces &eacute;l&eacute;ments pour
- traitement ult&eacute;rieur.</para>
-
- <para>Consid&eacute;rez par exemple un livre type. Au plus haut niveau, ce livre
- lui-m&ecirc;me est un &eacute;l&eacute;ment. Cet &eacute;l&eacute;ment &ldquo;livre&rdquo; contient
- &eacute;videmment des chapitres, qui peuvent aussi &ecirc;tre l&eacute;gitimement consid&eacute;r&eacute;s
- comme des &eacute;l&eacute;ments. Chaque chapitre contiendra &agrave; son tour des &eacute;l&eacute;ments,
- tels que des paragraphes, des citations et de notes de bas de page.
- Chaque paragraphe peut lui-m&ecirc;me contenir encore des &eacute;l&eacute;ments, pour
- identifier le texte parl&eacute; par exemple, ou les noms des personnages de
- l'histoire.</para>
-
- <para>Vous pouvez si vous le voulez voir cela comme un
- &ldquo;morcelement&rdquo; du contenu. A la racine, vous avez un morceau,
- le livre. Un niveau en dessous, vous avez plus de morceaux, les
- chapitres individuels. Ils sont &agrave; leur tour morcel&eacute;s en pargraphes,
- notes de bas de page, noms des personnages, et ainsi de suite.</para>
-
- <para>Remarquez que vous pouvez diff&eacute;rencier les &eacute;l&eacute;ments sans utiliser
- la terminologie SGML. C'est vraiment imm&eacute;diat. Vous pouvez le faire avec
- un surligneur et un livre imprim&eacute;, en utilisant des couleurs diff&eacute;rentes
- pour chaque type d'&eacute;l&eacute;ment.</para>
-
- <para>Nous n'avons bien s&ucirc;r pas de surligneur &eacute;lectronique, il nous faut
- donc un autre moyen d'indiquer &agrave; quel &eacute;l&eacute;ment appartient chaque morceau
- du contenu. Dans les languages &eacute;crits avec SGML ,(HTML, DocBook, et
- al.), cela se fait avec des <emphasis>marques</emphasis>.</para>
-
- <para>Une marque sert &agrave; dire o&ugrave; commence et o&ugrave; finit un &eacute;l&eacute;ment.
- <emphasis>La marque ne fait pas partie de l'&eacute;l&eacute;ment lui-m&ecirc;me</emphasis>.
- Comme chaque DTD est habituellement &eacute;crite pour marquer des types
- d'informations sp&eacute;cifiques, chacune reconna&icirc;tra des &eacute;l&eacute;ments diff&eacute;rents,
- et aura donc des noms diff&eacute;rents pour les marques.</para>
-
- <para>Pour un &eacute;l&eacute;ment appel&eacute; <replaceable>nom-de-l'&eacute;l&eacute;ment</replaceable>,
- la marque de d&eacute;but sera normalement
- <literal>&lt;<replaceable>nom-de-l'&eacute;l&eacute;ment</replaceable>&gt;</literal>.
- La marque de fin correspondante sera
- <literal>&lt;/<replaceable>nom-de-l'&eacute;l&eacute;ment</replaceable>&gt;</literal>.</para>
-
- <example>
- <title>Utiliser un &eacute;l&eacute;ment (marques de d&eacute;but et de fin)</title>
-
- <para>HTML dispose d'un &eacute;l&eacute;ment pour indiquer que le contenu inclus est
- un paragraphe, appel&eacute; <literal>p</literal>. Cet &eacute;l&eacute;ment a une marque
- de d&eacute;but et une de fin.</para>
-
- <programlisting>
-<![ CDATA [<p>C'est un paragraphe. Il commence avec la marque de d&eacute;but pour
- l'&eacute;l&eacute;ment 'p', et se terminera avec la marque de fin pour
- l'&eacute;l&eacute;ment 'p'</p>
-
-<p>C'est un autre paragraphe. Mais il est beaucoup plus
- court.</p>]]></programlisting>
- </example>
-
- <para>Tous les &eacute;l&eacute;ments n'ont pas besoin d'une marque de fin. Certains
- n'ont pas de contenu. En HTML, par exemple, vous pouvez indiquer que
- vous voulez avoir une ligne horizontal dans votre document. Cette ligne
- n'a bien s&ucirc;r aucun contenu, vous n'avez donc besoin que de la marque de
- d&eacute;but pour cet &eacute;l&eacute;ment.</para>
-
- <example>
- <title>Utiliser un &eacute;l&eacute;ment (marque de d&eacute;but uniquement)</title>
-
- <para>HTML dispose d'un &eacute;l&eacute;ment pour inclure une ligne horizontale,
- appel&eacute; <literal>hr</literal>. C'est un &eacute;l&eacute;ment sans contenu, il n'a
- donc qu'une marque de d&eacute;but.</para>
-
- <programlisting>
-<![ CDATA [<p>C'est un paragraphe.</p>
-
-<hr>
-
-<p>C'est un autre paragraphe. Une ligne horizontale le s&eacute;pare
- du pr&eacute;c&eacute;dent.</p>]]></programlisting>
- </example>
-
- <para>Si ce n'&eacute;tait pas encore clair, les &eacute;l&eacute;ments peuvent contenir
- d'autres &eacute;l&eacute;ments. Dans l'exemple du livre plus haut, ce livre contenait
- tous les chapitres, qui &agrave; leur tour contenaient tous les paragraphes, et
- ainsi de suite.</para>
-
- <example>
- <title>El&eacute;ments dans des &eacute;l&eacute;ments&nbsp;; <sgmltag>em</sgmltag></title>
-
- <programlisting>
-<![ CDATA [<p>C'est un <em>paragraphe</em> simple o&ugrave; certains
- <em>mots</em> ont &eacute;t&eacute; <em>mis en valeur</em>.</p>]]></programlisting>
- </example>
-
- <para>La DTD d&eacute;finira les r&egrave;gles qui disent quels &eacute;l&eacute;ments peuvent &ecirc;tre
- inclus dans quels autres &eacute;l&eacute;ments, et ce qu'ils peuvent pr&eacute;cisement
- contenir.</para>
-
- <important>
- <para>Les gens confondent souvent marques et &eacute;l&eacute;ments comme si c'&eacute;taient
- des termes interchangeables. Ce n'est pas le cas.</para>
-
- <para>Un &eacute;l&eacute;ment est une partie de la structure d'un document. Un
- &eacute;l&eacute;ment a un d&eacute;but et une fin. Les marques d&eacute;finissent o&ugrave; commence et
- o&ugrave; finit le document.</para>
-
- <para>Quand le pr&eacute;sent document (ou quelqu'un d'autre qui connait le
- SGML) parle de la marque &ldquo;the &lt;p&gt; tag&rdquo;, cela se
- rapporte au texte compos&eacute; des trois caract&egrave;res
- <literal>&lt;</literal>, <literal>p</literal>
- et <literal>&gt;</literal>. Mais la phrase &ldquo;l'&eacute;l&eacute;ment
- &lt;p&gt;&rdquo; d&eacute;signe tout l'&eacute;l&eacute;ment.</para>
-
- <para>Cette distinction <emphasis>est</emphasis> tr&egrave;s subtile. Mais
- gardez la &agrave; l'esprit.</para>
- </important>
-
- <para>Les &eacute;l&eacute;ments peuvent avoir des attributs. Un attribut a un nom et
- une valeur, et sert &agrave; donner des informations suppl&eacute;mentaires
- concernant l'&eacute;l&eacute;ment. Ce peuvent &ecirc;tre des informations qui pr&eacute;cisent
- comment l'&eacute;l&eacute;ment doit &ecirc;tre format&eacute;, ou un identifiant unique pour cette
- occurrence de l'&eacute;l&eacute;ment, ou autre chose encore.</para>
-
- <para>Les attributs d'un &eacute;l&eacute;ment sont donn&eacute;s <emphasis>dans</emphasis> la
- marque de d&eacute;but de l'&eacute;l&eacute;ment et ont la forme
- <literal><replaceable>nom-de-l'attribut</replaceable>="<replaceable>valeur-de-l'attribut</replaceable>"</literal>.</para>
-
- <para>Dans les versions r&eacute;centes d'HTML, l'&eacute;l&eacute;ment <sgmltag>p</sgmltag> a
- un attribut appel&eacute; <literal>align</literal>, qui sugg&egrave;re un alignement
- (justification) du paragraphe au programme affichant l'HTML.</para>
-
- <para>L'attribut <literal>align</literal> peut prendre l'une des quatre
- valeurs pr&eacute;d&eacute;finies, <literal>left</literal>, <literal>center</literal>,
- <literal>right</literal> et <literal>justify</literal>. Si l'attribut
- n'est pas pr&eacute;cise, la valeur par d&eacute;faut est
- <literal>left</literal>.</para>
-
- <example>
- <title>Utiliser un &eacute;l&eacute;ment avec un attribut</title>
-
- <programlisting>
-<![ CDATA [<p align="left">L'attribut align est superflus pour ce paragraphe,
- puisque 'left' est la valeur par d&eacute;faut.</p>
-
-<p align="center">Ce paragraphe sera peut-&ecirc;tre centr&eacute;.</p>]]></programlisting>
- </example>
-
- <para>Certains attributs ne prennent que des valeurs pr&eacute;d&eacute;finies, comme
- <literal>left</literal> ou <literal>justify</literal>. D'autres peuvent
- prendre les valeurs que vous voulez. Si vous avez besoin de quotes
- (<literal>"</literal>) dans un attribut, mettez la valeur de l'attribut
- entre simples quotes.</para>
-
- <example>
- <title>Simples quotes dans un attribut</title>
-
- <programlisting>
-<![ CDATA [<p align='right'>Je suis &agrave; droite&nbsp;!</p>]]></programlisting>
- </example>
-
- <para>Vous n'avez pas toujours besoin de mettre la valeur de l'attribut
- entre simples quotes. Les r&eacute;gles &agrave; ce sujet sont cependant subtiles, et
- il est beaucoup plus simple de <emphasis>toujours</emphasis> mettre
- entre simples quotes les valeurs des attributs.</para>
-
- <sect2>
- <title>A faire&hellip;</title>
-
- <para>Pour tester les exemples donn&eacute;s dans ce document, vous devrez
- installer des logiciels sur votre syst&egrave;me et v&eacute;rifiez qu'une variable
- d'environnement est correctement d&eacute;finie.</para>
-
- <procedure>
- <step>
- <para>T&eacute;l&eacute;chargez et installez <filename>textproc/docproj</filename>
- du catalogue des logiciels port&eacute;s de FreeBSD. C'est un
- <emphasis>m&eacute;ta-port</emphasis> qui doit t&eacute;l&eacute;charger et installer
- tous les programmes et fichiers utilis&eacute;s par le Projet de
- Documentation.</para>
- </step>
-
- <step>
- <para>Ajoutez les lignes pour d&eacute;finir
- <envar>SGML_CATALOG_FILES</envar> &agrave; vos proc&eacute;dures
- d'initialisation de l'interpr&eacute;teur de commandes.</para>
-
- <example id="sgml-primer-envars">
- <title><filename>.profile</filename>, pour les utilisateurs de
- &man.sh.1; et &man.bash.1;</title>
-
- <programlisting>
-SGML_ROOT=/usr/local/share/sgml
-SGML_CATALOG_FILES=${SGML_ROOT}/jade/catalog
-SGML_CATALOG_FILES=${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES
-SGML_CATALOG_FILES=${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES
-SGML_CATALOG_FILES=${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES
-export SGML_CATALOG_FILES</programlisting>
- </example>
-
- <example>
- <title><filename>.login</filename>, pour les utilisateurs de
- &man.csh.1; et &man.tcsh.1;</title>
-
- <programlisting>
-setenv SGML_ROOT /usr/local/share/sgml
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/jade/catalog
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES
-setenv SGML_CATALOG_FILES ${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES</programlisting>
- </example>
-
- <para>D&eacute;connectez-vous et reconnectez-vous ensuite, ou ex&eacute;cutez ces
- commandes pour d&eacute;finir la variable d'environnement.</para>
- </step>
-
- <step>
- <para>Cr&eacute;ez un fichier <filename>exemple.sgml</filename>, o&ugrave; vous
- mettrez&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0
- Transitional//EN">
-
-<html>
- <head>
- <title>Exemple de fichier HTML</title>
- </head>
-
- <body>
- <p>C'est un paragraphe avec du texte.</p>
-
- <p>C'est encore un paragraphe avec du texte.</p>
-
-
- <p align="right">Ce paragraphe sera peut-&ecirc;tre justifi&eacute; &agrave;
- droite.</p>
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>Essayez de le valider avec un analyseur syntaxique
- SGML.</para>
-
- <para><link linkend="sgml-primer-validating">L'analyseur
- syntaxique</link> &man.nsgmls.1; fait partie de
- <filename>textproc/docproj</filename>. &man.nsgmls.1; lit
- normalement un document marqu&eacute; en utilisant une DTD SGML et g&eacute;n&egrave;re
- l'<foreignphrase>Element Structure Information Set
- (ESIS)</foreignphrase>&nbsp;-&nbsp;Informations sur la
- Structuration en El&eacute;ments&nbsp;-&nbsp;mais cela ne nous concerne
- pas pour le moment.</para>
-
- <para>N&eacute;anmoins, avec le param&egrave;tre <option>-s</option>,
- &man.nsgmls.1; ne g&eacute;n&egrave;re rien mais affiche simplement les messages
- d'erreurs &eacute;ventuels. C'est utile pour v&eacute;rifier si votre document
- est correct ou non.</para>
-
- <para>Utilisez &man.nsgmls.1; pour v&eacute;rifier si votre document est
- valide&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput></screen>
-
- <para>Vous constaterez que &man.nsgmls.1; n'affiche rien. Cela
- signifie qu'il a valid&eacute; votre document.</para>
- </step>
-
- <step>
- <para>Voyez ce qui ce passe si vous oubliez un &eacute;l&eacute;ment requis.
- Supprimez les marques <sgmltag>title</sgmltag> et
- <sgmltag>/title</sgmltag> et relancer la validation.</para>
-
- <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput>
-nsgmls:example.sgml:5:4:E: character data is not allowed here
-nsgmls:example.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
-
- <para>Les messages d'erreur de &man.nsgmls.1; sont structur&eacute;s en
- colonnes s&eacute;par&eacute;s par des deux-points ou des
- points-virgules.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Colonne</entry>
- <entry>Signification</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>1</entry>
- <entry>Nom du programme qui a g&eacute;n&eacute;r&eacute; l'erreur. Ce sera
- toujours <literal>nsgmls</literal>.</entry>
- </row>
-
- <row>
- <entry>2</entry>
- <entry>Nom du fichier o&ugrave; se trouve l'erreur.</entry>
- </row>
-
- <row>
- <entry>3</entry>
- <entry>Num&eacute;ro de la ligne o&ugrave; se trouve l'erreur.</entry>
- </row>
-
- <row>
- <entry>4</entry>
- <entry>Num&eacute;ro de la colonne o&ugrave; se trouve l'erreur.</entry>
- </row>
-
- <row>
- <entry>5</entry>
- <entry>Une lettre donnant le type de message d'erreur.
- <literal>I</literal> pour un message d'information,
- <literal>W</literal> pour un message d'avertissement,
- <literal>E</literal> pour un message d'erreur et
- <literal>X</literal> pour les r&eacute;f&eacute;rences crois&eacute;es. (Ce
- n'est cependant pas toujours la cinqui&egrave;me colonne.
- <command>nsgmls -sv</command> affiche
- <literal>nsgmls:I: SP version
- "1.3"</literal>&nbsp;-&nbsp;selon la version install&eacute;e.
- Comme vous pouvez le constater, c'est un message
- d'information.) Vous voyez donc que nous avons dans notre
- exemple des messages d'erreurs.</entry>
- </row>
-
- <row>
- <entry>6</entry>
- <entry>Le texte du message d'erreur.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><ulink
- url="http://www.cs.duke.edu/~dsb/kgv-faq/errors.html">Vous
- aurez plus d'informations sur les erreurs de
- &man.nsgmls.1;</ulink> dans la <ulink
- url="http://www.cs.duke.edu/~dsb/kgv-faq/">Unofficial 'Kindler,
- Gentler HTML Validator' FAQ</ulink>.</para>
-
- <para>Ne pas mettre les marques <sgmltag>title</sgmltag> a g&eacute;n&eacute;r&eacute;
- 2 erreurs diff&eacute;rentes.</para>
-
- <para>La premi&egrave;re erreur indique que l'analyseur SGML a rencontr&eacute; un
- contenu (ici, des caract&egrave;res, au lieu d'une marque de d&eacute;but
- d'&eacute;l&eacute;ment) alors qu'il attendait autre chose. Dans le cas pr&eacute;sent,
- l'analyseur attendait une marque de d&eacute;but pour un &eacute;l&eacute;ment valide
- &agrave; l'int&eacute;rieur de <sgmltag>head</sgmltag>
- (<sgmltag>title</sgmltag> par exemple).</para>
-
- <para>La deuxi&egrave;me erreur est due au fait que les &eacute;l&eacute;ments
- <sgmltag>head</sgmltag> doivent contenir un &eacute;l&eacute;ment
- <sgmltag>title</sgmltag>. &man.nsgmls.1; consid&egrave;re alors que
- l'&eacute;l&eacute;ment n'est pas complet. La marque de fin indique donc que
- l'&eacute;l&eacute;ment se termine alors qu'il n'est pas correctement
- renseign&eacute;.</para>
- </step>
-
- <step>
- <para>Remettez l'&eacute;l&eacute;ment <literal>title</literal> en place.</para>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1 id="sgml-primer-doctype-declaration">
- <title>La d&eacute;claration DOCTYPE</title>
-
- <para>Au d&eacute;but de chaque document que vous r&eacute;digez, vous devez pr&eacute;ciser le
- nom de la DTD &agrave; laquelle le document se conforme. Cela pour que les
- analyseurs syntaxiques SGML la connaissent et puissent valider le
- document.</para>
-
- <para>Cette information est habituellement donn&eacute;e sur une seule ligne,
- dans la d&eacute;claration DOCTYPE.</para>
-
- <para>Voici une d&eacute;claration typique pour un document conforme &agrave; la version
- 4.0 de la DTD HTML&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">]]></programlisting>
-
- <para>Cette ligne a plusieurs composants distincts&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>&lt;!</literal></term>
-
- <listitem>
- <para>C'est l'<emphasis>indicateur</emphasis> qui dit que c'est une
- d&eacute;claration SGML. Cette ligne d&eacute;finit le type de document.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>DOCTYPE</literal></term>
-
- <listitem>
- <para>Pr&eacute;cise que c'est la d&eacute;claration SGML du type de
- document.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>html</literal></term>
-
- <listitem>
- <para>D&eacute;finit le premier <link
- linkend="sgml-primer-elements">&eacute;l&eacute;ment</link> qui appara&icirc;tra
- dans le document.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>PUBLIC "-//W3C//DTD HTML 4.0//EN"</literal></term>
-
- <listitem>
- <para>Donne le <foreignphrase>Formal Public Identifier
- (FPI)</foreignphrase>&nbsp;-&nbsp;Identifiant Public
- Officiel&nbsp;-&nbsp;de la DTD &agrave; laquelle le document se
- conforme.</para>
-
- <para><literal>PUBLIC</literal> n'appartient pas au FPI, mais
- indique au processeur SGML comment trouver la DTD r&eacute;f&eacute;renc&eacute;e par
- le FPI. Les autres fa&ccedil;ons de dire &agrave; l'analyseur SGML comment
- trouver la DTD sont donn&eacute;es <link
- linkend="sgml-primer-fpi-alternatives">plus loin</link>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>&gt;</literal></term>
-
- <listitem>
- <para>Retour au document.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <sect2>
- <title><foreignphrase>Formal Public Identifiers
- (FPIs)</foreignphrase>&nbsp;-&nbsp;Identifiants Publics
- Officiels</title>
-
- <note>
- <para>Vous n'avez pas besoin de conna&icirc;tre ce qui suit, mais ce n'est
- n'est pas inutile, et cela peut vous aider &agrave; r&eacute;soudre des probl&egrave;mes,
- si votre processeur SGML ne trouve pas la DTD que vous
- utilisez.</para>
- </note>
-
- <para>Les FPIs doivent respecter une syntaxe pr&eacute;cise. La
- voici&nbsp;:</para>
-
- <programlisting>
-"<replaceable>Propri&eacute;taire</replaceable>//<replaceable>Mot-Cl&eacute;</replaceable> <replaceable>Description</replaceable>//<replaceable>Langue</replaceable>"</programlisting>
-
- <variablelist>
- <varlistentry>
- <term><replaceable>Propri&eacute;taire</replaceable></term>
-
- <listitem>
- <para>Indique qui d&eacute;tient le FPI.</para>
-
- <para>Si la cha&icirc;ne de caract&egrave;res commence par &ldquo;ISO&rdquo;,
- c'est un FPI ISO. Par exemple, le FPI <literal>"ISO
- 8879:1986//ENTITIES Greek Symbols//EN"</literal> donne
- <literal>ISO 8879:1986</literal> comme propri&eacute;taire du jeu
- d'entit&eacute;s pour les lettres grecques. ISO 8879:1986 est le
- num&eacute;ro ISO du standard SGML.</para>
-
- <para>Sinon, cette cha&icirc;ne sera de la forme
- <literal>-//<replaceable>Propri&eacute;taire</replaceable></literal> ou
- <literal>+//<replaceable>Propri&eacute;taire</replaceable></literal>
- (remarquez que la seule diff&eacute;rence est le <literal>+</literal>
- ou <literal>-</literal> du d&eacute;but).</para>
-
- <para>Si la cha&icirc;ne commence par un <literal>-</literal>, c'est que
- le propri&eacute;taire n'est pas enregistr&eacute;, il l'est si elle commence
- par un <literal>+</literal>.</para>
-
- <para>L'ISO 9070:1991 d&eacute;finit comment sont g&eacute;n&eacute;r&eacute;s les noms
- enregistr&eacute;s&nbsp;; ils peuvent d&eacute;river du num&eacute;ro d'une
- publication ISO, d'un code ISBN ou d'un code d'organisation
- affect&eacute; selon l'ISO 6523. De plus, il pourrait y avoir une
- autorit&eacute; d'enregistrement pour l'affectation de ces noms. Le
- conseil ISO a d&eacute;l&eacute;gu&eacute; cela &agrave; l'<foreignphrase>American National
- Standards Institute (ANSI)</foreignphrase>&nbsp;-&nbsp;Institut
- National Am&eacute;ricain des Standards.</para>
-
- <para>Comme le Projet FreeBSD n'est pas enregistr&eacute;, la cha&icirc;ne
- utilis&eacute;e est <literal>-//FreeBSD</literal>. Comme vous pouvez
- vous en rendre compte, le W3C n'est pas non plus un propri&eacute;taire
- enregistr&eacute;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>Mot-Cl&eacute;</replaceable></term>
-
- <listitem>
- <para>Il y a plusieurs mots-cl&eacute;s qui d&eacute;finissent le type
- d'information dans le fichier. Les mots-cl&eacute;s les plus courants
- sont&nbsp;: <literal>DTD</literal>, <literal>ELEMENT</literal>,
- <literal>ENTITIES</literal> et <literal>TEXT</literal>.
- <literal>DTD</literal> ne sert que pour les DTD,
- <literal>ELEMENT</literal> sert habituellement pour les extraits
- de DTD qui ne contiennent que des entit&eacute;s ou des d&eacute;clarations
- d'&eacute;l&eacute;ments. <literal>TEXT</literal> sert pour le contenu SGML
- (texte et marques).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>Description</replaceable></term>
-
- <listitem>
- <para>La description que vous souhaitez donner du contenu du
- fichier. Cela peut inclure des num&eacute;ros de version et n'importe
- quel texte court qui ait un sens et soit unique au syst&egrave;me
- SGML.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>Langue</replaceable></term>
-
- <listitem>
- <para>C'est une code ISO de deux caract&egrave;res qui identifie la
- langue utilis&eacute;e dans le fichier. Pour l'anglais, c'est
- <literal>EN</literal>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <sect3>
- <title>Fichiers <filename>catalog</filename></title>
-
- <para>Si vous avez utilis&eacute; la syntaxe d&eacute;crite plus haut et essay&eacute;
- d'utiliser un processeur SGML pour traiter votre document, il aura
- besoin de convertir le FPI en un nom de fichier sur votre ordinateur
- qui d&eacute;crive la DTD.</para>
-
- <para>Vous pouvez pour cela vous servir d'un fichier catalogue
- (habituellement appel&eacute; <filename>catalog</filename>). Il contient
- des lignes qui donnent les correspondances entre FPIs et noms de
- fichiers. Par exemple, s'il y a la ligne&nbsp;:</para>
-
- <programlisting>
-PUBLIC "-//W3C//DTD HTML 4.0//EN" "4.0/strict.dtd"</programlisting>
-
- <para>le processeur SGML cherchera la DTD dans le fichier
- <filename>strict.dtd</filename> du sous-r&eacute;pertoire
- <filename>4.0</filename> o&ugrave; se trouve le fichier
- <filename>catalog</filename> qui comporte cette ligne.</para>
-
- <para>Jettez un oeil au fichier
- <filename>/usr/local/share/sgml/html/catalog</filename>. C'est le
- fichier catalogue pour les DTDs HTML qui ont &eacute;t&eacute; install&eacute;es par le
- logiciel port&eacute; <filename>textproc/docproj</filename>.</para>
- </sect3>
-
- <sect3>
- <title><envar>SGML_CATALOG_FILES</envar></title>
-
- <para>Pour trouver un fichier <filename>catalog</filename>, votre
- processeur SGML doit savoir o&ugrave; chercher. La plupart d'entre eux ont
- des param&egrave;tres de leur ligne de commande pour donner le chemin
- d'acc&egrave;s &agrave; un ou plusieurs catalogues.</para>
-
- <para>Vous pouvez par ailleurs d&eacute;finir
- <envar>SGML_CATALOG_FILES</envar> pour d&eacute;signer ces fichiers. Cette
- variable d'environnement doit contenir une liste de fichiers
- catalogues (donn&eacute;s par leurs chemins d'acc&egrave;s complets) s&eacute;par&eacute;s par
- des points-virgules.</para>
-
- <para>Habituellement, vous incluerez les fichiers
- suivants&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>/usr/local/share/sgml/docbook/catalog</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>/usr/local/share/sgml/html/catalog</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>/usr/local/share/sgml/iso8879/catalog</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>/usr/local/share/sgml/jade/catalog</filename></para>
- </listitem>
- </itemizedlist>
-
-<!--
- <para>Vous devriez <link linkend="sgml-primer-envars">d&eacute;j&agrave; l'avoir
- fait</link>.</para>
--->
- </sect3>
- </sect2>
-
- <sect2 id="sgml-primer-fpi-alternatives">
- <title>Alternatives aux FPIs</title>
-
- <para>Au lieu d'utiliser un FPI pour pr&eacute;ciser la DTD utilis&eacute;e (et donc
- le fichier qui contient la DTD), il est possible de donner
- explicitement le nom du fichier.</para>
-
- <para>La syntaxe pour le faire est l&eacute;g&egrave;rement diff&eacute;rente&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html SYSTEM "/path/to/file.dtd">]]></programlisting>
-
- <para>Le mot-cl&eacute; <literal>SYSTEM</literal> indique que le processeur
- SGML doit localiser le fichier d'une fa&ccedil;on qui d&eacute;pend du syst&egrave;me. Cela
- signifie habituellement (mais pas toujours) que la DTD sera d&eacute;finie
- par un nom de fichier.</para>
-
- <para>Il est pr&eacute;f&eacute;rable d'utiliser des FPIs pour des raisons de
- portabilit&eacute;. Vous ne voulez pas livrer un exemplaire de la DTD avec
- votre document, et si vous avez utilis&eacute; l'identifiant
- <literal>SYSTEM</literal>, il faudra que chacun ait ses DTDs aux m&ecirc;mes
- endroits.</para>
- </sect2>
- </sect1>
-
- <sect1 id="sgml-primer-sgml-escape">
- <title>Revenir au SGML</title>
-
- <para>On a dit plus haut dans cette introduction que le SGML n'&eacute;tait
- utilis&eacute; que pour &eacute;crire les DTDs. Ce n'est pas tout &agrave; fait vrai. Il y a
- des &eacute;l&eacute;ments de la syntaxe SGML que vous voudrez pouvoir utiliser dans
- vos documents. Par exemple, vous pouvez y inclure des commentaires, qui
- seront ignor&eacute;s par les analyseurs. Les commentaires sont inclus en
- utilisant une syntaxe SGML. D'autres utilisations du SGML dans les
- documents seront mentionn&eacute;es plus loin.</para>
-
- <para>Il vous faut &eacute;videmment un moyen d'indiquer au processeur SGML que
- ce qui va suivre n'est pas constitu&eacute; d'&eacute;l&eacute;ments du document, mais est du
- SGML que le processeur doit prendre en compte.</para>
-
- <para>Ces sections sont marqu&eacute;s avec <literal>&lt;! ... &gt;</literal>
- dans votre document. Tout ce qui se trouve entre ces d&eacute;limiteurs est du
- code SGML comme on en trouve dans les DTDs.</para>
-
- <para>Comme vous venez peut-&ecirc;tre de vous en rendre compte, la <link
- linkend="sgml-primer-doctype-declaration">d&eacute;claration DOCTYPE</link>
- est un exemple de syntaxe SGML que vous devez inclure dans votre
- document&hellip;</para>
- </sect1>
-
- <sect1>
- <title>Commentaires</title>
- &sgml.todo;
-
- <para>Les commentaires suivent une syntaxe SGML et ne sont normalement
- autoris&eacute;s que dans une DTD. Cependant comme la
- <xref linkend="sgml-primer-sgml-escape"> le montre, il est possible
- d'inclure du SGML dans vos documents.</para>
-
- <para>Les d&eacute;limiteurs pour les commentaires SGML sont constitu&eacute;s de la
- cha&icirc;ne de caract&egrave;res &ldquo;<literal>--</literal>&rdquo;. Une premi&egrave;re
- occurence ouvre le commentaire, et la seconde le ferme.</para>
-
- <example>
- <title>Commentaire SGML g&eacute;n&eacute;rique</title>
-
- <programlisting>
-<!-- commentaire de test --></programlisting>
-
- <programlisting><![ CDATA [
-<!-- C'est le texte du commentaire -->
-
-<!-- C'est un autre commentaire -->
-
-<!-- Voici une fa&ccedil;on de mettre un commentaire
- sur plusieurs lignes -->
-
-<!-- Voici une autre fa&ccedil;on --
- -- de le faire -->]]></programlisting>
- </example>
-
- <![ %output.print; [
- <important>
- <title>Utilisez 2 tirets</title>
-
- <para>Vous aurez un probl&egrave;me avec les versions PostScript et PDF de ce
- document. Les exemples pr&eacute;c&eacute;dents n'auront probablement qu'un simple
- tiret, <literal>-</literal> apr&egrave;s <literal>&lt;!</literal> et avant
- <literal>&gt;</literal>.</para>
-
- <para>Il <emphasis>faut</emphasis> utiliser deux <literal>-</literal>,
- et <emphasis>non</emphasis> un seul. Les versions PostScript et PDF
- ont converti les deux <literal>-</literal> de l'original en un seul
- <emphasis>double tiret</emphasis> plus professionnel, et d&eacute;form&eacute;
- l'exemple au passage.</para>
-
- <para>Les versions HTML, texte et RTF de ce document ne sont pas
- sujettes &agrave; ce probl&egrave;me.</para>
- </important>
- ]]>
-
- <para>Si vous avez d&eacute;j&agrave; utilis&eacute; HTML auparavant, on vous a peut-&ecirc;tre
- donn&eacute; des r&egrave;gles diff&eacute;rentes pour les commentaires. En particulier, vous
- pensez peut-&ecirc;tre qu'ils commencent par <literal>&lt;!--</literal> et
- ne se terminent qu'avec <literal>--&gt;</literal>.</para>
-
- <para>Ce n'est <emphasis>pas</emphasis> le cas. Les analyseurs syntaxiques
- de nombreux navigateurs sont d&eacute;fectueux et acceptent cette syntaxe. Ceux
- qu'utilisent le Projet de Documentation sont plus rigoureux et
- rejetteront les documents qui comportent cette erreur.</para>
-
- <example>
- <title>Commentaires SGML erronn&eacute;s</title>
-
- <programlisting><![ CDATA [
-<!-- C'est en commentaire --
-
- CE N'EST PAS EN COMMENTAIRE!
-
- -- retour au commentaire -->]]></programlisting>
-
- <para>L'analyseur SGML traitera cela comme s'il trouvait&nbsp;:</para>
-
- <programlisting>
-&lt;!CE N'EST PAS EN COMMENTAIRE&gt;</programlisting>
-
- <para>Ce qui n'est pas du SGML valide et donnera des messages d'erreur
- source de confusion.</para>
-
- <programlisting>
-<![ CDATA [<!--------------- C'est un tr&egrave;s mauvaise id&eacute;e --------------->]]></programlisting>
-
- <para>Comme l'exemple le sugg&egrave;re, ne mettez <emphasis>pas</emphasis> de
- commentaires de ce type.</para>
-
- <programlisting>
-<![ CDATA [<!--===================================================-->]]></programlisting>
-
- <para>C'est une (l&eacute;g&egrave;rement) meilleure id&eacute;e, mais c'est toute de m&ecirc;me
- une source de confusion potentielle pour les d&eacute;butants en SGML.</para>
- </example>
-
- <sect2>
- <title>A faire&hellip;</title>
-
- <procedure>
- <step>
- <para>Ajoutez des commentaires &agrave; <filename>exemple.sgml</filename>
- et validez vos modifications avec &man.nsgmls.1;</para>
- </step>
-
- <step>
- <para>Ajoutez des commentaires incorrects &agrave;
- <filename>exemple.sgml</filename>, pour voir quels messages
- d'erreur produit alors &man.nsgmls.1;.</para>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Entit&eacute;s</title>
-
- <para>Les entit&eacute;s fournissent un m&eacute;canisme pour d&eacute;signer des parties d'un
- contenu. Lorsque l'analyseur SGML traite votre document, il remplace les
- entit&eacute;s qu'il rencontre par le contenu de ces entit&eacute;s.</para>
-
- <para>C'est un bon moyen pour avoir du texte r&eacute;utilisable et facile &agrave;
- modifier. C'est aussi le seul moyen d'inclure, en utilisant SGML, un
- fichier marqu&eacute; dans un autre.</para>
-
- <para>Il y a deux sortes d'entit&eacute;s SGML qui s'utilisent dans des
- situations diff&eacute;rentes&nbsp;: les <emphasis>entit&eacute;s g&eacute;n&eacute;rales</emphasis>
- et les <emphasis>entit&eacute;s param&egrave;tres</emphasis>.</para>
-
- <sect2 id="sgml-primer-general-entities">
- <title>Entit&eacute;s G&eacute;n&eacute;rales</title>
-
- <para>Vous ne pouvez pas employer les entit&eacute;s g&eacute;n&eacute;rales dans un contexte
- SGML (bien que ce soit l&agrave; que vous les d&eacute;finissiez). Elles ne peuvent
- &ecirc;tre utilis&eacute;es que dans votre document. Comparez cela au cas des
- <link linkend="sgml-primer-parameter-entities">entit&eacute;s
- param&egrave;tres</link>.</para>
-
- <para>Chaque entit&eacute; g&eacute;n&eacute;rale a un nom. Quand vous voulez y faire
- r&eacute;f&eacute;rence (et donc inclure le texte qu'elle contient dans votre
- document), vous mettez
- <literal>&amp;<replaceable>nom-de-l'entit&eacute;</replaceable>;</literal>.
- Supposons par exemple que vous ayez une entit&eacute; appel&eacute;e
- <literal>version.courante</literal> qui contienne le num&eacute;ro de version
- courante de votre produit. Vous pourriez &eacute;crire&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<para>La version courante de notre produit est la
- &version.courante;.</para>]]></programlisting>
-
- <para>Quand le num&eacute;ro de version change, il vous suffit de modifier la
- d&eacute;finition de l'entit&eacute; g&eacute;n&eacute;rale et de recompiler votre
- document.</para>
-
- <para>Vous pouvez aussi vous servir d'entit&eacute;s g&eacute;n&eacute;rales pour repr&eacute;senter
- des caract&egrave;res que vous ne pouvez pas inclure autrement dans un
- document SGML. &lt; et &amp;, par exemple, ne doivent normalement pas
- appara&icirc;tre dans un document SGML. Quand l'analyseur SGML rencontre un
- symbole &lt;, il suppose qu'il pr&eacute;c&egrave;de une marque (de d&eacute;but ou de
- fin), et quand il rencontre un symbole &amp;, il suppose que le texte
- qui le suit est le nom d'une entit&eacute;.</para>
-
- <para>Heureusement, il y a deux entit&eacute;s g&eacute;n&eacute;rales, &amp;lt; et
- &amp;amp; pour le cas o&ugrave; vous auriez besoin d'inclure l'un ou l'autre
- de ces symboles.</para>
-
- <para>Une entit&eacute; g&eacute;n&eacute;rale ne peut &ecirc;tre d&eacute;finie que dans un contexte
- SGML. On le fait habituellement imm&eacute;diatement apr&egrave;s la d&eacute;claration
- DOCTYPE.</para>
-
- <example>
- <title>D&eacute;finition d'entit&eacute;s g&eacute;n&eacute;rales</title>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY version.courante "3.0-RELEASE">
-<!ENTITY derniere.version "2.2.7-RELEASE">
-]>]]></programlisting>
-
- <para>Remarquez que la d&eacute;claration DOCTYPE est suivie d'un crochet
- ouvrant &agrave; la fin de la premi&egrave;re ligne. Les deux entit&eacute;s sont
- d&eacute;finies aux deux lignes suivantes, avant le crochet fermant. La
- d&eacute;claration DOCTYPE se termine ensuite.</para>
-
- <para>Les crochets sont n&eacute;cessaires pour dire que nous ajoutons un
- compl&eacute;ment &agrave; la DTD mentionn&eacute;e par la d&eacute;claration DOCTYPE.</para>
- </example>
- </sect2>
-
- <sect2 id="sgml-primer-parameter-entities">
- <title>Entit&eacute;s param&egrave;tres</title>
-
- <para>Comme les <link linkend="sgml-primer-general-entities">entit&eacute;s
- g&eacute;n&eacute;rales</link>, les entit&eacute;s param&egrave;tres servent &agrave; nommer des
- parties r&eacute;utilisables du texte. Cependant, alors que les entit&eacute;s
- g&eacute;n&eacute;rales peuvent &ecirc;tre utilis&eacute;es dans le corps du document, les
- entit&eacute;s param&egrave;tres ne peuvent &ecirc;tre employ&eacute;es que dans un
- <link linkend="sgml-primer-sgml-escape">contexte SGML</link>.</para>
-
- <para>Les entit&eacute;s param&egrave;tres sont d&eacute;finies de la m&ecirc;me mani&egrave;re que les
- entit&eacute;s g&eacute;n&eacute;rales. Sinon qu'au lieu de vous servir de
- <literal>&amp;<replaceable>inomd-de-l'entit&eacute;</replaceable>;</literal>
- pour y faire r&eacute;f&eacute;rence, vous utiliserez
- <literal>%<replaceable>nom-de-l'entit&eacute;</replaceable>;</literal><footnote>
- <para>Les entit&eacute;s <emphasis>P</emphasis>aram&egrave;tres employent le
- symbole <emphasis>P</emphasis>ourcent.</para>
- </footnote>. Leur d&eacute;finition comporte aussi un <literal>%</literal>
- entre le mot-cl&eacute; <literal>ENTITY</literal> et le nom de
- l'entit&eacute;.</para>
-
- <example>
- <title>D&eacute;finition d'entit&eacute;s param&egrave;tres</title>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY % param.du "du">
-<!ENTITY % param.texte "text">
-<!ENTITY % param.encore "encore %param.du more %param.texte">
-
-<!-- %param.encore contient maintenant "encore du texte" -->
-]>]]></programlisting>
- </example>
-
- <para>Cela ne para&icirc;t peut &ecirc;tre pas tr&egrave;s utile. On verra pourtant que &ccedil;a
- l'est.</para>
- </sect2>
-
- <sect2>
- <title>A faire&hellip;</title>
-
- <procedure>
- <step>
- <para>D&eacute;finissez un entit&eacute; g&eacute;n&eacute;rale dans
- <filename>exemple.sgml</filename>.</para>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
-<!ENTITY version "1.1">
-]>
-
-<html>
- <head>
- <title>Exemple de fichier HTML</title>
- </head>
-
- <!-- Vous pourriez aussi mettre des commentaires ici -->
-
- <body>
- <p>C'est un paragraphe avec du texte.</p>
-
- <p>C'est encore un paragraphe avec du texte.</p>
-
- <p align="right">Ce paragraphe sera peut-&ecirc;tre justifi&eacute; &agrave;
- droite</p>
-
- <p>La version courante de ce document est : &version;</p>
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>Validez le document avec &man.nsgmls.1;</para>
- </step>
-
- <step>
- <para>Chargez <filename>exemple.sgml</filename> avec votre
- navigateur (vous devrez peut-&ecirc;tre le recopier dans
- <filename>exemple.html</filename> pour que votre navigateur le
- reconnaisse comme un document HTML).</para>
-
- <para>A moins que votre navigateur ne soit tr&egrave;s &eacute;volu&eacute;, il ne
- remplacera pas la r&eacute;f&eacute;rence <literal>&amp;version;</literal>
- &agrave; l'entit&eacute; par le num&eacute;ro de version. Les analyseurs de la plupart
- des navigateurs sont &eacute;l&eacute;mentaires et ne g&egrave;rent pas correctement
- le SGML<footnote><para>C'est tout &agrave; fait dommage. Imaginez les
- probl&egrave;mes et bricolages (comme les <foreignphrase>Server Side
- Includes</foreignphrase>) que cela
- &eacute;viterait.</para></footnote>.</para>
- </step>
-
- <step>
- <para>La solution est de <emphasis>normaliser</emphasis> votre
- document avec un outil de normalisation du SGML. Ce type d'outil
- lit un document SGML valide et le transforme en un autre document
- SGML tout aussi valide. En particulier, il y remplace les
- r&eacute;f&eacute;rences aux entit&eacute;s par leur contenu.</para>
-
- <para>Vous pouvez le faire avec &man.sgmlnorm.1;.</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm exemple.sgml > exemple.html</userinput></screen>
-
- <para><filename>exemple.html</filename> doit maintenant contenir une
- version normalis&eacute;e (i.e., o&ugrave; les r&eacute;f&eacute;rences aux entit&eacute;s ont &eacute;t&eacute;
- remplac&eacute;es par leur contenu) de votre document, pr&ecirc;te &agrave; &ecirc;tre
- affich&eacute;e par votre navigateur.</para>
- </step>
-
- <step>
- <para>Si vous jetez un oeil au r&eacute;sultat de &man.sgmlnorm.1;, vous
- verrez qu'il ne comporte pas de d&eacute;claration DOCTYPE au d&eacute;but. Pour
- qu'elle y soit, utilisez l'option
- <option>-d</option>&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm -d exemple.sgml > exemple.html</userinput></screen>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Utiliser les entit&eacute;s pour inclure des fichiers</title>
-
- <para>Les entit&eacute;s (<link
- linkend="sgml-primer-general-entities">g&eacute;n&eacute;rales</link> et <link
- linkend="sgml-primer-parameter-entities">param&egrave;tres</link>) sont
- particuli&egrave;rement utiles pour inclure un fichier dans un autre.</para>
-
- <sect2 id="sgml-primer-include-using-gen-entities">
- <title>Utiliser les entit&eacute;s g&eacute;n&eacute;rales pour inclure des fichiers</title>
-
- <para>Supposons que le contenu d'un livre SGML soit d&eacute;coup&eacute; en fichiers,
- &agrave; raison d'un fichier par chapitre, appel&eacute;s
- <filename>chaptitre1.sgml</filename>,
- <filename>chapitre2.sgml</filename>, et ainsi de suite, et que le
- fichier <filename>livre.sgml</filename> inclue ces chapitres.</para>
-
- <para>Pour que vos entit&eacute;s aient pour valeur le contenu de ces fichiers,
- vous les d&eacute;clarerez avec le mot-cl&eacute; <literal>SYSTEM</literal>. Cela
- indique &agrave; l'analyseur SGML qu'il doit utiliser le contenu du fichier
- mentionn&eacute; comme valeur de l'entit&eacute;.</para>
-
- <example>
- <title>Utiliser les entit&eacute;s g&eacute;n&eacute;rales pour inclure des
- fichiers</title>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY chapitre.1 SYSTEM "chapitre1.sgml">
-<!ENTITY chapitre.2 SYSTEM "chapitre2.sgml">
-<!ENTITY chapitre.3 SYSTEM "chapitre3.sgml">
-<!-- Et ainsi de suite -->
-]>
-
-<html>
- <!-- Utilisation des entit&eacute;s pour inclure les chapitres -->
-
- &chapitre.1;
- &chapitre.2;
- &chapitre.3;
-</html>]]></programlisting>
- </example>
-
- <warning>
- <para>Quand vous vous servez d'entit&eacute;s g&eacute;n&eacute;rales pour inclure d'autres
- fichiers dans un document, les fichiers inclus
- (<filename>chapitre1.sgml</filename>,
- <filename>chapitre2.sgml</filename>, et ainsi de suite) ne doivent
- <emphasis>pas</emphasis> commencer par une d&eacute;claration DOCTYPE. Ce
- serait une erreur de syntaxe.</para>
- </warning>
- </sect2>
-
- <sect2>
- <title>Utiliser les entit&eacute;s param&egrave;tres pour inclure des fichiers</title>
-
- <para>Rappelez-vous que les entit&eacute;s param&egrave;tres ne peuvent &ecirc;tre utilis&eacute;es
- que dans un contexte SGML. Quand aurez-vous besoin d'inclure un
- fichier dans un contexte SGML&nbsp;?</para>
-
- <para>Vous pouvez vous en servir pour &ecirc;tre s&ucirc;r de pouvoir r&eacute;utiliser vos
- entit&eacute;s g&eacute;n&eacute;rales.</para>
-
- <para>Supposons que votre document comporte de nombreux chapitres, et
- que vous r&eacute;utilisiez ces chapitres dans deux livres diff&eacute;rents, chacun
- organisant ces chapitres de fa&ccedil;on diff&eacute;rente.</para>
-
- <para>Vous pourriez donner la liste des entit&eacute;s en t&ecirc;te de chaque livre,
- mais cela pourrait rapidement devenit fastidieux &agrave; g&eacute;rer.</para>
-
- <para>Mettez, au lieu de cela, les d&eacute;finitions des entit&eacute;s g&eacute;n&eacute;rales
- dans un fichier, et utilisez une entit&eacute; param&egrave;tre pour inclure ce
- fichier dans votre document.</para>
-
- <example>
- <title>Utiliser les entit&eacute;s param&egrave;tres pour inclure des
- fichiers</title>
-
- <para>Mettez d'abord les d&eacute;finitions de vos entit&eacute;s dans un fichier
- s&eacute;par&eacute;, appel&eacute; <filename>chapitres.ent</filename>. Voici ce qu'il
- contiendra&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!ENTITY chapitre.1 SYSTEM "chapitre1.sgml">
-<!ENTITY chapitre.2 SYSTEM "chapitre2.sgml">
-<!ENTITY chapitre.3 SYSTEM "chapitre3.sgml">]]></programlisting>
-
- <para>Cr&eacute;ez maintenant une entit&eacute; param&egrave;tre qui fasse r&eacute;f&eacute;rence au
- contenu de ce fichier. Utilisez ensuite cette entit&eacute; pour inclure
- le fichier dans votre document, vous pourrez alors y utiliser les
- entit&eacute;s g&eacute;n&eacute;rales. Ce que vous faites de la m&ecirc;me fa&ccedil;on que
- pr&eacute;c&eacute;demment&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!--
- D&eacute;finissez une entit&eacute; param&egrave;tre pour inclure le fichier
- des entit&eacute;s g&eacute;n&eacute;rales pour les chapitres
--->
-<!ENTITY % chapitres SYSTEM "chapitres.ent">
-
-<!-- Utilisez maintenant l'entit&eacute; g&eacute;n&eacute;rale pour inclure ce fichier -->
-%chapitres;
-]>
-
-<html>
- &chapitre.1;
- &chapitre.2;
- &chapitre.3;
-</html>]]></programlisting>
- </example>
- </sect2>
-
- <sect2>
- <title>A faire&hellip;</title>
-
- <sect3>
- <title>Utiliser les entit&eacute;s g&eacute;n&eacute;rales pour inclure des fichiers</title>
-
- <procedure>
- <step>
- <para>Cr&eacute;ez trois fichiers, <filename>para1.sgml</filename>,
- <filename>para2.sgml</filename> et
- <filename>para3.sgml</filename>.</para>
-
- <para>Mettez-y quelque chose qui ressemble &agrave; ceci&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<p>C'est le premier paragraphe.</p>]]></programlisting>
- </step>
-
- <step>
- <para>Modifiez <filename>exemple.sgml</filename> de la fa&ccedil;on
- suivante&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY version "1.1">
-<!ENTITY para1 SYSTEM "para1.sgml">
-<!ENTITY para2 SYSTEM "para2.sgml">
-<!ENTITY para3 SYSTEM "para3.sgml">
-]>
-
-<html>
- <head>
- <title>Exemple de fichier HTML</title>
- </head>
-
- <body>
- <p>La version courante de ce document est : &version;</p>
-
- &para1;
- &para2;
- &para3;
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>G&eacute;n&eacute;rez <filename>exemple.html</filename> en normalisant
- <filename>exemple.sgml</filename>.</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm -d exemple.sgml > exemple.html</userinput></screen>
- </step>
-
- <step>
- <para>Affichez <filename>exemple.html</filename> avec votre
- navigateur Web et v&eacute;rifiez que les fichiers
- <filename>para<replaceable>n</replaceable>.sgml</filename> ont
- bien &eacute;t&eacute; inclus dans <filename>exemple.html</filename>.</para>
- </step>
- </procedure>
- </sect3>
-
- <sect3>
- <title>Utiliser les entit&eacute;s param&egrave;tres pour inclure des
- fichiers</title>
-
- <note>
- <para>Vous devez d'abord avoir mis en pratique l'exemple
- pr&eacute;c&eacute;dent.</para>
- </note>
-
- <procedure>
- <step>
- <para>Modifiez comme ceci
- <filename>exemple.sgml</filename>&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-<!ENTITY % entites SYSTEM "entites.sgml"> %entites;
-]>
-
-<html>
- <head>
- <title>Exemple de fichier HTML</title>
- </head>
-
- <body>
- <p>La version courant de ce document est : &version;</p>
-
- &para1;
- &para2;
- &para3;
- </body>
-</html>]]></programlisting>
- </step>
-
- <step>
- <para>Cr&eacute;ez un nouveau fichier, <filename>entites.sgml</filename>,
- qui contienne&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [<!ENTITY version "1.1">
-<!ENTITY para1 SYSTEM "para1.sgml">
-<!ENTITY para2 SYSTEM "para2.sgml">
-<!ENTITY para3 SYSTEM "para3.sgml">]]></programlisting>
- </step>
-
- <step>
- <para>G&eacute;n&eacute;rez <filename>exemple.html</filename> en normalisant
- <filename>exemple.sgml</filename>.</para>
-
- <screen>&prompt.user; <userinput>sgmlnorm -d exemple.sgml > exemple.html</userinput></screen>
- </step>
-
- <step>
- <para>Affichez <filename>exemple.html</filename> avec votre
- navigateur Web et v&eacute;rifiez que les fichiers
- <filename>para<replaceable>n</replaceable>.sgml</filename> ont
- bien &eacute;t&eacute; inclus dans <filename>example.html</filename>.</para>
- </step>
- </procedure>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="sgml-primer-marked-sections">
- <title>Sections marqu&eacute;es</title>
-
- <para>SGML fournit un m&eacute;canisme pour d&eacute;finir quelles parties d'un document
- doivent &ecirc;tre trait&eacute;es de fa&ccedil;on particuli&egrave;re. On appelle cela des
- &ldquo;sections marqu&eacute;es&rdquo;.</para>
-
- <example>
- <title>Structure d'une section marqu&eacute;e</title>
-
- <programlisting>
-&lt;![ <replaceable>MOT-CLE</replaceable> [
- Contenu de la section marqu&eacute;e
-]]&gt;</programlisting>
- </example>
-
- <para>Comme vous pouviez vous y attendre, une section marqu&eacute;e est une
- fonctionnalit&eacute; SGML et commence donc par <literal>&lt!</literal>.</para>
-
- <para>Le premier crochet ouvrant d&eacute;limite la section marqu&eacute;e.</para>
-
- <para>Le <replaceable>MOT-CLE</replaceable> d&eacute;finit comment cette section
- marqu&eacute;e doit &ecirc;tre trait&eacute;e par l'analyseur.</para>
-
- <para>Le second crochet ouvrant indique que le contenu de la section
- marqu&eacute;e commence l&agrave;.</para>
-
- <para>La section marqu&eacute;e se termine par deux crochets fermants, puis un
- <literal>&gt;</literal> pour indiquer que l'on quitte le contexte SGML
- et que l'on revient au document.</para>
-
- <sect2>
- <title>Mots-cl&eacute;s pour les sections marqu&eacute;es</title>
-
- <sect3>
- <title><literal>CDATA</literal>, <literal>RCDATA</literal></title>
-
- <para>Ces deux mots-cl&eacute;s d&eacute;finissent des sections marqu&eacute;es comme
- <emphasis>mod&egrave;le de contenu</emphasis> et vous permettent de
- modifier sa valeur par d&eacute;faut.</para>
-
- <para>Quand un analyseur SGML traite un docuemnt, il m&eacute;morise ce que
- l'on appelle le &ldquo;mod&egrave;le de contenu&rdquo;.</para>
-
- <para>En bref, le mod&egrave;le de contenu d&eacute;crit ce que l'analyseur doit
- s'attendre &agrave; trouver comme contenu, et ce qu'il doit en faire quand
- il le rencontre.</para>
-
- <para>Les deux mod&egrave;les de contenu que vous trouverez certainement les
- plus utiles sont <literal>CDATA</literal> et
- <literal>RCDATA</literal>.</para>
-
- <para><literal>CDATA</literal> signifie
- &ldquo;<foreignphrase>Character
- Data</foreignphrase>&rdquo;&nbsp;-&nbsp;donn&eacute;es caract&egrave;res. Si
- l'analyseur est &agrave; l'int&eacute;rieur de ce mod&egrave;le de contenu, il s'attend
- &agrave; trouver des caract&egrave;res, et uniquement des caract&egrave;res. Les
- symboles &lt; et &amp; perdent alors leur signification particuli&egrave;re
- et sont trait&eacute;s comme de simples caract&egrave;res.</para>
-
- <para><literal>RCDATA</literal> signifie &ldquo;R&eacute;f&eacute;rences &agrave; des
- entit&eacute;s et donn&eacute;es caract&egrave;res&rdquo;. Si l'analyseur est &agrave;
- l'int&eacute;rieur de ce mod&egrave;le de contenu, il s'attend &agrave; trouver des
- caract&egrave;res <emphasis>et</emphasis> des entit&eacute;s. &lt; perd sa
- signification particuli&egrave;re, mais &amp; est toujours compris comme le
- d&eacute;but d'une entit&eacute; g&eacute;n&eacute;rale.</para>
-
- <para>C'est particuli&egrave;rement utile si vous incluez du texte qui
- contient de nombreux caract&egrave;res &lt; et &amp;. Vous pourriez bien
- s&ucirc;r contr&ocirc;ler que dans votre texte tous les &lt; sont &eacute;crits
- &amp;lt; et tous les &amp; &amp;amp;, il peut &ecirc;tre plus facile
- de marquer la section comme ne contenant que des
- &ldquo;CDATA&rdquo;. Quand SGML rencontre l'instruction
- correspondante, il ignorera les symboles &lt; et &amp; qui
- appara&icirc;tront dans le contenu.</para>
-
- <!-- The nesting of CDATA within the next example is disgusting -->
-
- <example>
- <title>Utiliser une section marqu&eacute;e CDATA</title>
-
- <programlisting>
-&lt;para>Voici un exemple de la fa&ccedil;on dont vous pourriez inclure
- un texte comportant de nombreux &amp;lt; et &amp;amp;. L'exemple
- lui-m&ecirc;me est en HTML. Le texte qui l'encadre (&lt;para> et
- &lt;programlisting>) est du DocBook.&lt;/para>
-
-&lt;programlisting>
- &lt![ CDATA [ <![ CDATA [
- <p>Cet exemple vous montre quelques &eacute;l&eacute;ments de HTML. Comme les
- caract&egrave;res < et > y sont si fr&eacute;quemment utilis&eacute;s, il est plus
- facile de marquer tout l'exemple comme CDATA plut&ocirc;t que de se
- servir des entit&eacute;s &agrave; la place de ces caract&egrave;res dans tout le
- texte.</p>
-
- <ul>
- <li>C'est un &eacute;l&eacute;ment de liste</li>
- <li>C'est un second &eacute;l&eacute;ment de liste</li>
- <li>C'est un troisi&egrave;me &eacute;l&eacute;ment de liste</li>
- </ul>
-
- <p>C'est la fin de l'exemple.</p>]]>
- ]]&gt;
-&lt/programlisting></programlisting>
-
- <para>Si vous consultez le source de ce document, vous verrez qu'il
- utilise constamment cette technique.</para>
- </example>
- </sect3>
-
- <sect3>
- <title><literal>INCLUDE</literal> et <literal>IGNORE</literal></title>
-
- <para>Si le mot-cl&eacute; est <literal>INCLUDE</literal>, alors le contenu
- de la section marqu&eacute;e sera pris en compte. Si le mot-cl&eacute; est
- <literal>IGNORE</literal>, alors la section marqu&eacute;e sera ignor&eacute;e. Il
- n'appara&icirc;tra pas dans les sorties.</para>
-
- <example>
- <title>Utiliser <literal>INCLUDE</literal> et
- <literal>IGNORE</literal> dans les sections marqu&eacute;es</title>
-
- <programlisting>
-&lt;![ INCLUDE [
- Ce texte sera trait&eacute; et inclus.
-]]&gt;
-
-&lt;![ IGNORE [
- Ce texte ne sera pas trait&eacute; ou inclus.
-]]&gt;</programlisting>
- </example>
-
- <para>En soi, cela ne sert pas &agrave; grand-chose. Si vous vouliez
- supprimer du texte de votre document, vous auriez pu l'enlever ou le
- mettre en commentaires.</para>
-
- <para>Cela devient plus utile quand vous comprenez que vous pouvez
- vous servir des <link
- linkend="sgml-primer-parameter-entities">entit&eacute;s param&egrave;tres</link>
- pour contr&ocirc;ler ces sections. Rappelez-vous que les entit&eacute;s
- param&egrave;tres ne peuvent &ecirc;tre utilis&eacute;es que dans un contexte SGML, et
- une section marqu&eacute;e <emphasis>est</emphasis> un contexte SGML.</para>
-
- <para>Si par exemple, vous g&eacute;n&eacute;rez une version imprim&eacute;e et une version
- &eacute;lectronique de votre document, vous pourriez vouloir inclure dans
- la version &eacute;lectronique un contenu suppl&eacute;mentaire qui ne devra pas
- appara&icirc;tre dans la version imprim&eacute;e.</para>
-
- <para>Cr&eacute;ez une entit&eacute; param&egrave;tre et donnez lui comme contenu
- <literal>INCLUDE</literal>. R&eacute;digez votre document en utilisant des
- sections marqu&eacute;es pour d&eacute;limiter le contenu qui ne doit appara&icirc;tre
- que dans la version &eacute;lectronique. Dans ces sections marqu&eacute;es,
- servez-vous de l'entit&eacute; param&egrave;tre au lieu du mot-cl&eacute;.</para>
-
- <para>Lorsque vous voulez g&eacute;n&eacute;rer la version &eacute;lectronique, changez la
- valeur de l'entit&eacute; param&egrave;tre en <literal>IGNORE</literal> et
- retraitez le document.</para>
-
- <example>
- <title>Utiliser une entit&eacute; param&egrave;tre pour contr&ocirc;ler une section
- marqu&eacute;e</title>
-
- <programlisting>
-&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-&lt;!ENTITY % version.electronique "INCLUDE">
-]]&gt;
-
-...
-
-&lt;![ %version.electronique [
- Ce texte ne doit appara&icirc;tre que dans
- la version &eacute;lectronique du document.
-]]&gt;</programlisting>
-
- <para>Pour g&eacute;n&eacute;rer la version imprim&eacute;e, changez la d&eacute;finition de
- l'entit&eacute; en&nbsp;:</para>
-
- <programlisting>
-&lt!ENTiTY % version.electronique "IGNORE"></programlisting>
-
- <para>A la seconde passe sur le document, les sections marqu&eacute;es qui
- utilisent <literal>%version.electronique</literal> comme mot-cl&eacute;
- seront ignor&eacute;es.</para>
- </example>
- </sect3>
- </sect2>
-
- <sect2>
- <title>A faire&hellip;</title>
-
- <procedure>
- <step>
- <para>Cr&eacute;ez un nouveau fichier, <filename>section.sgml</filename>,
- qui contienne&nbsp;:</para>
-
- <programlisting>
-&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [
-&lt;!ENTITY % text.output "INCLUDE">
-]&gt;
-
-&lt;html>
- &lt;head>
- &lt;title>Exemple d'utilisation des sections marqu&eacute;es&lt;/title>
- &lt;/head>
-
- &lt;body>
- &lt;p>Ce paragraphe &lt;![ CDATA [contient de nombreux
- caract&egrave;res &lt; (&lt; &lt; &lt; &lt; &lt;) il est donc
- plus facile de l'inclure dans une section marqu&eacute;e
- CDATA ]]&gt;&lt/p>
-
- &lt;![ IGNORE [
- &lt;p>Ce paragraphe n'appara&icirc;tra jamais dans les
- sorties.&lt;/p>
- ]]&gt;
-
- &lt;![ <![ CDATA [%sortie.texte]]> [
- &lt;p>Ce paragraphe appara&icirc;tra peut-&ecirc;tre dans les
- sorties.&lt;/p>
-
- &lt;p>Cela d&eacute;pend de l'entit&eacute; param&egrave;tre
- <![CDATA[%sortie.texte]]>.&lt;/p>
- ]]&gt;
- &lt;/body>
-&lt;/html></programlisting>
- </step>
-
- <step>
- <para>Normalisez le fichier avec &man.sgmlnorm.1; et examinez le
- r&eacute;sultat. Notez quels paragraphes ont &eacute;t&eacute; conserv&eacute;s et quels
- paragraphes ont &eacute;t&eacute; supprim&eacute;s, et ce qu'est devenu le contenu des
- sections marqu&eacute;es CDATA.</para>
- </step>
-
- <step>
- <para>Modifiez la d&eacute;finition de l'entit&eacute;
- <literal>sortie.texte</literal> de <literal>INCLUDE</literal> en
- <literal>IGNORE</literal>. Normalisez de nouveau le fichier et
- regardez ce qui a chang&eacute; dans le r&eacute;sultat.</para>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Conclusion</title>
-
- <para>Ici se termine cette introduction &agrave; SGML. Pour des raisons de place
- et de complexit&eacute;, de nombreux points ont &eacute;t&eacute; survol&eacute;s (voire omis).
- Les sections qui pr&eacute;c&eacute;dent d&eacute;crivent n&eacute;anmoins suffisamment d'&eacute;l&eacute;ments
- du SGML pour vous permettre de comprendre comment est organis&eacute;e la
- documentation du FDP.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml
deleted file mode 100644
index 3506d81960..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml
+++ /dev/null
@@ -1,72 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:46:47 gioria Exp $
--->
-
-<chapter id="stylesheets">
-
- <title>* Feuilles de style</title>
-
- <para>SGML ne d&eacute;crit pas comment un document doit &ecirc;tre affich&eacute; ou imprim&eacute;.
- A cet effet, diff&eacute;rents langages ont &eacute;t&eacute; con&ccedil;us pour d&eacute;finir des feuilles
- de style, dont DynaText, Panorama, SPICE,
- JSSS, FOSI, CSS, et DSSSL.</para>
-
- <para>Pour DocBook, nous utilisons des feuilles de style &eacute;crites en DSSSL.
- Pour le HTML, nous utilisons CSS.</para>
-
- <sect1>
- <title>* DSSSL</title>
-
- <para>Le Projet de Documentation utilise une version un minimum
- personnalis&eacute;e des feuilles de style DocBook modulaires de Norm
- Walsh.</para>
-
- <para>Vous les trouverez dans
- <filename>textproc/dsssl-docbook-modular</filename>.</para>
- </sect1>
-
- <sect1>
- <title>* CSS</title>
-
- <para></para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml
deleted file mode 100644
index 1fe894630f..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml
+++ /dev/null
@@ -1,49 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:46:49 gioria Exp $
--->
-
-<chapter id="the-faq">
- <title>* La Foire Aux Questions</title>
-
- <para></para>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml
deleted file mode 100644
index 8af35251fe..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml
+++ /dev/null
@@ -1,282 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:46:54 gioria Exp $
--->
-
-<chapter id="the-handbook">
- <title>* Le Manuel de R&eacute;f&eacute;rence</title>
-
- <sect1>
- <title>Organisation logique</title>
-
- <para>Le Manuel de R&eacute;f&eacute;rence est r&eacute;dig&eacute; en conformit&eacute; avec la DTD DocBook
- &eacute;tendue de FreeBSD.</para>
-
- <para>Le Manuel de R&eacute;f&eacute;rence est un <sgmltag>book</sgmltag> DocBook. Il
- est ensuite divis&eacute; en <sgmltag>part</sgmltag>s, qui contiennent
- elles-m&ecirc;mes plusieurs <sgmltag>chapter</sgmltag>s. Les
- <sgmltag>chapter</sgmltag>s sont eux-m&ecirc;mes compos&eacute;s de sections
- (<sgmltag>sect1</sgmltag>) et sous-sections
- (<sgmltag>sect2</sgmltag>, <sgmltag>sect3</sgmltag>) et ainsi de
- suite.</para>
- </sect1>
-
- <sect1>
- <title>Organisation physique</title>
-
- <para>Le Manuel de R&eacute;f&eacute;rence (et ses traductions) sont dans le
- sous-r&eacute;pertoire
- <filename>doc/<replaceable>langue</replaceable>/handbook</filename>
- des archives CVS principales. <replaceable>langue</replaceable> est le
- code ISO pour la langue, <literal>en</literal>, pour l'Anglais,
- <literal>ja</literal> pour le Japonais, et ainsi de suite.</para>
-
- <para>Il y a un certain nombre de fichiers et r&eacute;pertoires dans le
- r&eacute;pertoire <filename>handbook</filename>.</para>
-
- <note>
- <para>L'organisation du Manuel de R&eacute;f&eacute;rence sera peut-&ecirc;tre modifi&eacute;e avec
- le temps, et le pr&eacute;sent document peut ne pas &ecirc;tre en phase avec ces
- changements. Si vous avez des questions sur la fa&ccedil;on dont le Manuel de
- R&eacute;f&eacute;rence est organis&eacute;, contactez s'il vous pla&icirc;t le Projet de
- Documentation de FreeBSD, <email>doc@FreeBSD.ORG</email>.</para>
- </note>
-
- <sect2>
- <title><filename>Makefile</filename></title>
-
- <para>Le <filename>Makefile</filename> d&eacute;crit les r&egrave;gles utilis&eacute;es pour
- convertir le Manuel de R&eacute;f&eacute;rence &agrave; partir du source (DocBook) dans
- plusieurs formats cibles (dont HTML, PostScript, et texte).</para>
-
- <para>Le <filename>Makefile</filename> est d&eacute;crit plus en d&eacute;tail &agrave; la
- <xref linkend="the-handbook-converting">.</para>
- </sect2>
-
- <sect2>
- <title><filename>handbook.sgml</filename></title>
-
- <para>C'est la racine du Manuel de R&eacute;f&eacute;rence. Il contient la
- <link linkend="sgml-primer-doctype-declaration">d&eacute;claration
- DOCTYPE</link> du Manuel, ainsi que les &eacute;l&eacute;ments qui d&eacute;crivent sa
- structure.</para>
-
- <para><filename>handbook.sgml</filename> utilise des <link
- linkend="sgml-primer-parameter-entities">entit&eacute;s param&egrave;tres</link>
- pour charger les fichiers d'extensions <filename>.ent</filename>. Ces
- fichiers (d&eacute;crits plus loin) d&eacute;finissent &agrave; leur tour des
- <link linkend="sgml-primer-general-entities">entit&eacute;s g&eacute;n&eacute;rales</link>
- qui sont elles-m&ecirc;mes employ&eacute;es dans le reste du Manuel.</para>
- </sect2>
-
- <sect2>
- <title><filename><replaceable>r&eacute;pertoire</replaceable>/chapter.sgml</filename></title>
-
- <para>Chaque chapitre du manuel est compos&eacute; d'un fichier
- <filename>chapter.sgml</filename> dans un sous-r&eacute;pertoire s&eacute;par&eacute; pour
- chaque chapitre. Chaque r&eacute;pertoire prend le nom de l'attribut
- <literal>id</literal> de l'&eacute;l&eacute;ment <sgmltag>chapter</sgmltag>.</para>
-
- <para>Si par exemple, un des chapitres contient&nbsp;:</para>
-
- <programlisting><![ CDATA [
-<chapter id="kernelconfiguration">
-...
-</chapter>]]></programlisting>
-
- <para>il s'appelera alors <filename>chapter.sgml</filename> dans le
- r&eacute;pertoire <filename>kernelconfiguration</filename>. Habituellement,
- il y aura un seul fichier pour tout le chapitre.</para>
-
- <para>A la g&eacute;n&eacute;ration de la version HTML du Manuel, on obtiendra un
- <filename>kernelconfiguration.html</filename>. C'est d&ucirc; &agrave; la valeur
- du <literal>id</literal>, et non au nom du r&eacute;pertoire.</para>
-
- <para>Dans les versions pr&eacute;c&eacute;dentes du Manuel, ces fichiers &eacute;taient dans
- le m&ecirc;me r&eacute;pertoire que <filename>handbook.sgml</filename>, avec le
- m&ecirc;me nom que l'attribut <literal>id</literal> de l'&eacute;l&eacute;ment
- <sgmltag>chapter</sgmltag> du fichier. Ils ont &eacute;t&eacute; d&eacute;plac&eacute;s dans des
- r&eacute;pertoires s&eacute;par&eacute;s en pr&eacute;vision des &eacute;volutions &agrave; venir du Manuel. Il
- sera en particulier bient&ocirc;t possible d'inclure des images dans chaque
- chapitre. Il est donc plus logique que celles-ci soient rang&eacute;es dans
- un r&eacute;pertoire o&ugrave; se trouve aussi le texte du chapitre plut&ocirc;t que de
- mettre le texte de chaque chapitre, et donc toutes les images dans un
- m&ecirc;me r&eacute;pertoire. Il y aurait fatalement des conflits de nom, alors
- qu'il est plus facile de travailler avec plusieurs r&eacute;pertoires
- contenant quelques fichiers qu'avec un seul r&eacute;pertoire dans lequel il
- y a beaucoup de fichiers.</para>
-
- <para>Un bref coup d'oeil montre qu'il y a de nombreux r&eacute;pertoires avec
- chacun un fichier <filename>chapter.sgml</filename> dont
- <filename>basics/chapter.sgml</filename>,
- <filename>introduction/chapter.sgml</filename> et
- <filename>printing/chapter.sgml</filename>.</para>
-
- <important>
- <para>Les noms des chapitres et/ou r&eacute;pertoires ne doivent pas faire
- r&eacute;ference &agrave; leur place dans le Manuel. Cet ordre peut changer quand
- le contenu du Manuel est r&eacute;organis&eacute;&nbsp;; ce type de r&eacute;organisation
- ne devrait (normalement) pas entra&icirc;ner de modification des noms des
- fichiers (&agrave; moins que des chapitres entiers ne changent de niveau
- dans la hi&eacute;rarchie).</para>
- </important>
-
- <para>Chaque fichier <filename>chapter.sgml</filename> n'est pas un
- document SGML int&eacute;gral. Ils n'ont en particulier pas de d&eacute;claration
- DOCTYPE en t&ecirc;te du fichier.</para>
-
- <para>C'est dommage pour deux raisons&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Il n'est pas possible de les traiter comme des fichiers SGML
- et de les convertir en HTML, RTF, PS et autres formats de la m&ecirc;me
- mani&egrave;re que le Manuel. Cela vous <emphasis>oblige</emphasis> &agrave;
- recompiler tout le Manuel chaque fois que vous voulez v&eacute;rifier les
- effets d'une modification d'un seul chapitre.</para>
- </listitem>
-
- <listitem>
- <para>Le <literal>sgml-mode</literal> d'Emacs ne peut pas s'en
- servir pour d&eacute;terminer quelle DTD utiliser, ce qui fait perdre les
- b&eacute;n&eacute;fices de fonctionnalit&eacute;s utiles du
- <literal>sgml-mode</literal> (compl&eacute;tion des &eacute;l&eacute;ments, validation
- automatique, et ainsi de suite).</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Guide de style</title>
-
- <para>Respectez s'il vous pla&icirc;t les conventions de style ci-dessous pour
- garder aux sources du Manuel une consistance malgr&eacute; les nombreuses
- personnes qui interviennent dessus.</para>
-
- <sect2>
- <title>Majuscules et minuscules</title>
-
- <para>Les marques doivent &ecirc;tre en minuscules
- <literal>&lt;para&gt;</literal> et <emphasis>non</emphasis>
- <literal>&lt;PARA&gt;</literal>.</para>
-
- <para>Le texte dans les contextes SGML est normalement en majuscules,
- <literal>&lt!ENTITY&hellip;&gt;</literal> ou
- <literal>&lt;!DOCTYPE&hellip;&gt;</literal> et
- <emphasis>non</emphasis> <literal>&lt;!entity&hellip;&gt;</literal>
- ou <literal>&lt;!doctype&hellip;&gt;</literal>.</para>
- </sect2>
-
- <sect2>
- <title>Indentation</title>
-
- <para>Chaque fichier est indent&eacute; &agrave; partir de la colonne 0,
- <emphasis>quel que soit</emphasis> le niveau d'indentation dans le
- fichier o&ugrave; il est inclus.</para>
-
- <para>Chaque marque de d&eacute;but augmente l'indentation de 2 blancs et
- chaque marque de fin la d&eacute;cr&eacute;mente d'autant. Le contenu des &eacute;l&eacute;ments
- doit &ecirc;tre indent&eacute; de 2 blancs s'il court sur plusieurs lignes.</para>
-
- <para>A titre d'exemple, voici &agrave; quoi ressemble le source de cette
- section&nbsp;:</para>
-
- <programlisting>
-<![ CDATA [+--- C'est la colonne 0
-
-<chapter>
- <title>...</title>
-
- <sect1>
- <title>...</title>
-
- <sect2>
- <title>Indentation</title>
-
- <para>Chaque fichier est indent&eacute; &agrave; partir de la colonne 0,
- <emphasis>quel que soit</emphasis> le niveau d'indentation dans le
- fichier o&ugrave; il est inclus.</para>
-
- <para>Chaque marque de d&eacute;but augmente l'indentation de 2 blancs et
- chaque marque de fin la d&eacute;cr&eacute;mente d'autant. Le contenu des &eacute;l&eacute;ments
- doit &ecirc;tre indent&eacute; de 2 blancs s'il court sur plusieurs lignes.</para>
-
- ...
- </sect2>
- </sect1>
-</chapter>]]></programlisting>
-
- <para>Si vous vous servez d'<application>Emacs</application> ou
- <application>Xemacs</application> pour &eacute;diter les fichiers, le
- <literal>sgml-mode</literal> doit &ecirc;tre charg&eacute; automatiquement, et les
- variables Emacs locales en fin de chaque fichier doivent mettre ces
- indentations en pratique.</para>
- </sect2>
-
- <sect2>
- <title>Modifications de pr&eacute;sentation des sources</title>
-
- <para>Quand vous int&eacute;grez des modifications, <emphasis>ne faites pas en
- m&ecirc;me temps de modification de contenu et de pr&eacute;sentation des
- sources</emphasis>.</para>
-
- <para>Cela pour que les &eacute;quipes de traductions du Manuel puissent
- rapidement voir les modifications de contenu que vous avez int&eacute;gr&eacute;es,
- sans avoir &agrave; se demander si une ligne a chang&eacute; de contenu ou
- simplement de pr&eacute;sentation.</para>
-
- <para>Si vous avez par exemple ajout&eacute; deux phrases &agrave; un paragraphe, de
- sorte que les lignes du paragraphe d&eacute;bordent maintenant des 80
- colonnes, int&eacute;grez d'abord la modification avec les lignes trop
- longues. Puis corrigez ensuite ce probl&egrave;me, en pr&eacute;cisant qu'il ne
- s'agit que d'une modification de pr&eacute;sentation, dont les &eacute;quipes de
- traduction n'ont pas &agrave; se soucier.</para>
- </sect2>
- </sect1>
-
- <sect1 id="the-handbook-converting">
- <title>* Conversion du Manuel dans d'autres formats</title>
-
- <para></para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml
deleted file mode 100644
index 90517e2677..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml
+++ /dev/null
@@ -1,49 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:46:59 gioria Exp $
--->
-
-<chapter id="the-website">
- <title>* Le site Web</title>
-
- <para></para>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml
deleted file mode 100644
index 29b6d1e45a..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml
+++ /dev/null
@@ -1,301 +0,0 @@
-<!-- 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.
-
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.6
--->
-
-<chapter id="tools">
- <title>Outils</title>
-
- <para>Le FDP utilise un certain nombre de logiciels pour faciliter la
- gestion de la documentation de FreeBSD, la convertir en diff&eacute;rents
- formats, et ainsi de suite. Vous devrez vous-m&ecirc;me vous servir de ces
- outils, si vous travaillez &agrave; la documentation de FreeBSD.</para>
-
- <para>Tous ces outils existent sous forme de logiciels port&eacute;s ou
- pr&eacute;-compil&eacute;s pour FreeBSD, ce qui vous simplifie beaucoup la t&acirc;che de leur
- installation.</para>
-
- <para>Vous devrez les installer avant de mettre en pratique les exemples
- donn&eacute;s dans les chapitres suivants. Ces chapitres vous expliquent comment
- vous servir de ces outils.</para>
-
- <important>
- <title>Utilisez <filename>textproc/docproj</filename> si possible</title>
-
- <para>Vous pouvez gagner beaucoup de temps si vous les installez avec
- <filename>textproc/docproj</filename>. C'est un
- <emphasis>m&eacute;ta-port</emphasis> qui ne contient pas lui-m&ecirc;me de
- logiciels. Au lieu de cela, il d&eacute;pend de l'installation correcte de
- divers autres logiciels port&eacute;s. Son installation
- <emphasis>devrait</emphasis> t&eacute;l&eacute;charger et installer automatiquement
- tous les paquetages list&eacute;s dans ce chapitre dont vous aurez besoin,
- s'ils n'existent pas d&eacute;j&agrave; sur votre syst&egrave;me.</para>
-
- <para>L'un des paquetages dont vous aurez peut-&ecirc;tre besoin est le jeu de
- macro-instructions JadeTeX. Celui-ci, &agrave; son tour, a besoin que TeX soit
- install&eacute;. TeX est un paquetage volumineux, dont vous n'aurez besoin que
- si vous voulez g&eacute;n&eacute;rer les versions PostScript et PDF.</para>
-
- <para>Pour &eacute;conomiser du temps et de l'espace disque, vous pouvez pr&eacute;ciser
- si vous voulez ou non installer JadeTeX (et donc TeX). Faites
- soit&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root; <userinput>make JADETEX=yes install</userinput></screen>
- </informalexample>
-
- <para>ou&nbsp;:</para>
-
- <informalexample>
-<screen>&prompt.root; <userinput>make JADETEX=no install</userinput></screen>
- </informalexample>
-
- <para>selon le cas.</para>
- </important>
-
- <sect1>
- <title>Outils indispensables</title>
-
- <sect2>
- <title>Logiciels</title>
-
- <para>Vous aurez besoin de ces programmes avant de pouvoir utilement
- travailler sur la documentation de FreeBSD. Ils font tous partie de
- <filename>textproc/docproj</filename>.</para>
-
- <variablelist>
- <varlistentry>
- <term><application>SP</application>
- (<filename>textproc/sp</filename>)</term>
-
- <listitem>
- <para>Une s&eacute;rie d'applications, dont un analyseur syntaxique SGML
- et un outil de normalisation du source SGML.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Jade</application>
- (<filename>textproc/jade</filename>)</term>
-
- <listitem>
- <para>Une impl&eacute;mentation des DSSSL. Cela sert &agrave; convertir des
- documents marqu&eacute;s vers d'autres formats, dont HTML et
- TeX.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Tidy</application>
- (<filename>www/tidy</filename>)</term>
-
- <listitem>
- <para>Un formateur HTML, qui sert &agrave; remettre en forme le code HTML
- g&eacute;n&eacute;r&eacute; automatiquement pour qu'il soit plus lisible.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Lynx</application>
- (<filename>www/lynx-current</filename>)</term>
-
- <listitem>
- <para>Navigateur WWW en mode texte, &man.lynx.1; peut aussi
- convertir des fichiers HTML en fichiers texte.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>DTDs et Entit&eacute;s</title>
-
- <para>Ce sont les DTDs et jeux d'entit&eacute;s utilis&eacute;s par le FDP. Il faut
- les installer avant de pouvoir travailler &agrave; la documentation.</para>
-
- <variablelist>
- <varlistentry>
- <term>DTD HTML (<filename>textproc/html</filename>)</term>
-
- <listitem>
- <para>HTML est le langage principal du <foreignphrase>World Wide
- Web</foreignphrase>, il est utilis&eacute; constamment par le site
- Web de FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>DTD LinuxDoc
- (<filename>textproc/linuxdoc</filename>)</term>
-
- <listitem>
- <para>Une partie de la documentation de FreeBSD est marqu&eacute;e avec
- LinuxDoc. Le FDP migre activement de LinuxDoc &agrave; DocBook.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>DTD DocBook
- (<filename>textproc/docbook</filename>)</term>
-
- <listitem>
- <para>DocBook est con&ccedil;u pour le marquage de documentation
- technique et le FDP est en cours de migration de LinuxDoc &agrave;
- DocBook. A la date de r&eacute;daction de cette documentation, celle-ci
- et le Manuel de R&eacute;f&eacute;rence de FreeBSD sont au format
- DocBook.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Entit&eacute;s ISO 8879
- (<filename>textproc/iso8879</filename>)</term>
-
- <listitem>
- <para>19 de jeux de caract&egrave;res ISO 8879:1986 utilis&eacute;s par de
- nombreuses DTDs. Cela comprend des symboles math&eacute;matiques
- nomm&eacute;s, les caract&egrave;res &ldquo;latins&rdquo; suppl&eacute;mentaires
- (accents, signes diacritiques et ainsi de suite) et les lettres
- grecques.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Feuilles de style</title>
-
- <para>Les feuilles de style sont utilis&eacute;es pour convertir et formater
- la documentation pour l'affichage &agrave; l'&eacute;cran, l'impression, et ainsi de
- suite.</para>
-
- <variablelist>
- <varlistentry>
- <term>Les <foreignphrase>Modular DocBook Stylesheets</foreignphrase>
- (<filename>textproc/dsssl-docbook-modular</filename>)</term>
-
- <listitem>
- <para>Les <foreignphrase>Modular DocBook
- Stylesheets</foreignphrase> sont utilis&eacute;es pour convertir la
- documentation marqu&eacute; en DocBook aux autres formats, comme HTML
- ou RTF.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Outils facultatifs</title>
-
- <para>Il n'est pas obligatoire d'installer les outils qui suivent. Si vous
- le faites cependant, vous trouverez peut-&ecirc;tre plus facile de travailler
- &agrave; la documentation et ils vous donneront plus de possibilit&eacute; de choix du
- format de sortie.</para>
-
- <sect2>
- <title>Logiciels</title>
-
- <variablelist>
- <varlistentry>
- <term><application>JadeTeX</application> et
- <application>teTeX</application>
- (<filename>print/jadetex</filename> et
- <filename>print/teTeX</filename>)</term>
-
- <listitem>
- <para><application>Jade</application> et
- <application>teTeX</application> servent &agrave; convertir les
- documents DocBook en DVI, Postscript et PDF. Il faut pour cela
- les macro-instructions
- <application>JadeTeX</application>.</para>
-
- <para>Si vous n'avez pas l'intention de convertir votre
- documentation &agrave; l'un de ces formats (i.e., HTML, texte et RTF
- vous suffisent), il n'est pas n&eacute;cessaire d'installer
- <application>JadeTeX</application> et
- <application>teTeX</application>. Cela vous fera gagner du temps
- et de l'espace disque, <application>teTeX</application>, en
- effet occupe plus de 30 Mo.</para>
-
- <important>
- <para>Si vous choisissez d'installer
- <application>JadeTeX</application> et
- <application>teTeX</application>, vous devrez configurer
- <application>teTeX</application> apr&egrave;s avoir install&eacute;
- <application>JadeTeX</application>.
- <filename>print/jadetex/pkg/MESSAGE</filename> vous donnera
- des instructions d&eacute;taill&eacute;es sur la fa&ccedil;on de proc&eacute;der.</para>
- </important>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><application>Emacs</application> ou
- <application>xemacs</application>
- (<filename>editors/emacs</filename> ou
- <filename>editors/xemacs</filename>)</term>
-
- <listitem>
- <para>Ces deux &eacute;diteurs ont un mode sp&eacute;cialis&eacute; pour travailler sur
- des documents marqu&eacute;s conform&eacute;ment &agrave; une DTD SGML. Cela vous
- permet d'avoir moins de choses &agrave; saisir et limite la possibilit&eacute;
- d'erreurs.</para>
-
- <para>Vous n'&ecirc;tes pas oblig&eacute; de les utiliser, n'importe quel
- &eacute;diteur peut servir avec des documents marqu&eacute;s. Mais vous
- trouverez peut-&ecirc;tre qu'ils vous permettent d'&ecirc;tre plus
- efficace.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Si quelqu'un a d'autres outils utiles pour manipuler des documents
- SGML, merci de transmettre l'information &agrave; Nik Clayton
- (nik@freebsd.org), de fa&ccedil;on &agrave; ce qu'il les ajoute &agrave; cette
- liste.</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml
deleted file mode 100644
index 362a736305..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml
+++ /dev/null
@@ -1,497 +0,0 @@
-<!-- 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$
--->
-
-<chapter id="translations">
- <title>Traductions</title>
-
- <para>Ceci est la Foire aux Questions pour les gens qui traduisent la
- documentation de FreeBSD (FAQ, Manuel de R&eacute;f&eacute;rence, guides, pages de
- manuel et autres) en diff&eacute;rentes langues.</para>
-
- <para>Elle est <emphasis>tr&egrave;s</emphasis> largement bas&eacute;e sur la FAQ du
- Projet Allemand de Documentation de FreeBSD, r&eacute;dig&eacute;e &agrave; l'origine par
- Frank Grnder <email>elwood@mc5sys.in-berlin.de</email> et traduite en
- Anglais par Bernd Warken <email>bwarken@mayn.de</email>.</para>
-
- <para>Nik Clayton <email>nik@FreeBSD.org</email> maintient cette FAQ.</para>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Pourquoi une FAQ&nbsp;?</para>
- </question>
-
- <answer>
- <para>De plus en plus de gens s'adressent &agrave; la &a.doc; et se proposent
- de traduire en d'autres langues la documentation de FreeBSD. Le but
- de cette FAQ est de r&eacute;pondre &agrave; leurs questions de fa&ccedil;on &agrave; ce qu'ils
- puissent commencer le plus rapidement possible &agrave; traduire la
- documentation.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Que signfient <phrase>i18n</phrase> et
- <phrase>l10n</phrase>&nbsp;?</para>
- </question>
-
- <answer>
- <para><phrase>i18n</phrase> veut dire
- <phrase>internationalisation</phrase> et <phrase>l10n</phrase>
- <phrase>localisation</phrase>. Ce ne sont que des abr&eacute;viations
- commodes.</para>
-
- <para><phrase>i18n</phrase> se lit &ldquo;i&rdquo; suivi de 18
- lettres, suivies d'un &ldquo;n&rdquo;. De la m&ecirc;me fa&ccedil;on,
- <phrase>l10n</phrase> se lit &ldquo;l&rdquo; suivi de 10 lettres,
- suivies d'un &ldquo;n&rdquo;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Y-a-t-il une liste de diffusion pour les
- traducteurs&nbsp?</para>
- </question>
-
- <answer>
- <para>Oui, <email>freebsd-translate@ngo.org.uk</email>. Inscrivez-vous
- en envoyant un message &agrave;
- <email>freebsd-translate-request@ngo.org.uk</email> avec le mot
- <literal>subscribe</literal> dans le texte du message.</para>
-
- <para>Vous recevrez une r&eacute;ponse vous demandant de confirmer votre
- inscription (de la m&ecirc;me fa&ccedil;on que pour les listes de FreeBSD sur
- <hostid role="domainname">FreeBSD.org</hostid>).</para>
-
- <para>La langue de base sur la liste est l'Anglais, mais les messages
- en d'autres langues sont accept&eacute;s. La liste n'est pas mod&eacute;r&eacute;e, mais
- vous devez vous y &ecirc;tre inscrit avant d'y adresser des
- messages.</para>
-
- <para>La liste est archiv&eacute;e, mais il n'est pas actuellement possible
- d'y faire des recherches. Vous aurez en retour des explications sur
- la fa&ccedil;on d'acc&eacute;der aux archives en envoyant le message
- <literal>help</literal> &agrave;
- <email>majordomo@ngo.org.uk</email>.</para>
-
- <para>Il est pr&eacute;vue que la liste de diffusion soit transf&eacute;r&eacute;e sur
- <hostid role="domainname">FreeBSD.org</hostid> et devienne donc
- <emphasis>officielle</emphasis> dans un avenir proche.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>A-t-on besoin de nouveaux traducteurs&nbsp;?</para>
- </question>
-
- <answer>
- <para>Oui. Plus il y a de gens qui travaillent aux traductions, plus
- vite elles sont r&eacute;alis&eacute;es, et synchronis&eacute;es avec les modifications
- de la version anglaise.</para>
-
- <para>Il n'est pas n&eacute;cessaire que vous soyez traducteur professionnel
- pour pouvoir contribuer.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Quelle langue faut-il que je connaisse&nbsp;?</para>
- </question>
-
- <answer>
- <para>Dans l'id&eacute;al, il faudrait que vous ayez une bonne connaissance
- de l'anglais &eacute;crit et bien s&ucirc;r, il faut que vous pratiquiez
- couramment la langue dans laquelle vous traduisez.</para>
-
- <para>L'anglais n'est pas strictement indispensable. Vous pourriez par
- exemple effectuez une traduction en Hongrois, &agrave; partir de la
- traduction espagnole de la FAQ.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Quels logiciels faut-il que je connaisse&nbsp;?</para>
- </question>
-
- <answer>
- <para>Il est fortement recommand&eacute; que vous teniez &agrave; jour une copie
- locale des archives CVS de FreeBSD (au moins de la documentation),
- soit &agrave; l'aide de <application>CTM</application>, soit en utilisant
- <application>CVSup</application>. Le chapitre &ldquo;Se synchroniser
- avec la version <literal>-current</literal> de FreeBSD&rdquo; du
- Manuel de R&eacute;f&eacute;rence vous explique comment utiliser ces
- logiciels.</para>
-
- <para>Il faudra que vous soyiez &agrave; l'aise avec
- <application>CVS</application>. Cela vous permettra de suivre les
- modifications apport&eacute;es entre les diff&eacute;rentes versions des
- fichiers qui constituent la documentation.</para>
-
- <para>[A Faire -- &eacute;crire un mode d'emploi qui explique comment
- utiliser <application>CVSup</application> pour ne r&eacute;cup&eacute;rer que la
- documentation, et voir ce qui a &eacute;volu&eacute; entre deux versions
- donn&eacute;es]</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Comment savoir qui d'autre traduit la documentation dans la
- m&ecirc;me langue&nbsp;?</para>
- </question>
-
- <answer>
- <para>La <ulink
- url="http://www.freebsd.org/docproj/translations.html">page des
- traductions du Projet de Documentation</ulink> liste les traductions
- en cours d&eacute;j&agrave; connues. S'il y a d&eacute;j&agrave; d'autres personnes qui
- travaillent &agrave; la traduction de documentation dans votre langue, s'il
- vous pla&icirc;t, ne faites pas le m&ecirc;me travail qu'eux en double. Au lieu
- de cela, prenez contact avec eux, pour savoir comment vous pouvez
- les aider.</para>
-
- <para>S'il la page n'indique personne qui travaille dans votre langue,
- envoyez un message &agrave; la &a.doc; au cas o&ugrave; quelqu'un aurait d&eacute;j&agrave;
- envisag&eacute; de commencer une traduction, mais que ne ce soit pas encore
- signal&eacute;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Il n'y a personne d'autre qui traduise dans ma langue. Que
- faire&nbsp;?</para>
- </question>
-
- <answer>
- <para>F&eacute;licitations, vous venez juste de lancer le &ldquo;Projet de
- Documentation <replaceable>dans-votre-langue</replaceable> de
- FreeBSD. Bien venu &agrave; bord.</para>
-
- <para>Commencez par vous assurer que vous avez bien du temps
- disponible. Comme vous &ecirc;tes pour le moment le seul volontaire pour
- la traduction dans votre langue, il sera de votre responsabilit&eacute;
- de publier votre travail et de coordonner celui d'autres personnes
- qui voudraient y collaborer.</para>
-
- <para>Envoyez un courrier &eacute;lectronique &agrave; la &a.doc; pour annoncer que
- vous allez traduire la documentation de fa&ccedil;on &agrave; ce que la pages des
- traductions du Projet de Documentation puisse &ecirc;tre tenue &agrave;
- jour.</para>
-
- <para>Il faudra vous inscrire &agrave; la liste de diffusion
- <email>freebsd-translate@ngo.org.uk</email> (comme expliqu&eacute; plus
- haut).</para>
-
- <para>S'il y a d&eacute;j&agrave; dans votre pays quelqu'un qui maintienne un site
- miroir de FreeBSD, vous devriez le contacter et voir s'il peut vous
- fournir un h&eacute;bergement pour votre projet et, si possible, une
- adresse de courrier &eacute;lectronique et la possibilit&eacute; de mettre en
- place une liste de diffusion.</para>
-
- <para>Choisissez ensuite une documentation et commencez la traduction.
- Il vaut mieux commencer par quelque chose de pas trop
- volumineux&mdash;soit la FAQ, soit l'un des guides.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>J'ai traduit une documentation, &agrave; qui dois-je
- l'envoyer&nbsp;?</para>
- </question>
-
- <answer>
- <para>Cela d&eacute;pend. Si vous travaillez d&eacute;j&agrave; au sein d'une &eacute;quipe de
- traduction (comme l'&eacute;quipe Japonaise ou l'&eacute;quipe Allemande), elle
- aura ses propres proc&eacute;dures pour g&eacute;rer la documentation soumise, qui
- seront d&eacute;crites dans ses pages Web.</para>
-
- <para>Si vous &ecirc;tes la seule personne &agrave; travailler dans une langue
- donn&eacute;e (ou si vous &ecirc;tes responsable d'un projet de traduction et
- voulez soumettre votre travail au Projet FreeBSD), vous devez alors
- l'envoyer au Projet FreeBSD (voir la question suivante).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Je suis la seule personne &agrave; traduire dans cette langue, comment
- soumettre mes traductions&nbsp;?</para>
-
- <para>ou</para>
-
- <para>Nous sommes une &eacute;quipe de traduction et voulons soumettre les
- traductions de nos membres&nbsp;?</para>
- </question>
-
- <answer>
- <para>Commencez par v&eacute;rifier que vos traductions sont correctement
- structur&eacute;es. C'est-&agrave;-dire qu'elles doivent s'int&eacute;grer &agrave;
- l'arborescence des documentations existantes et compiler sans
- probl&egrave;mes.</para>
-
- <para>La documentation de FreeBSD est actuellement archiv&eacute;e dans les
- r&eacute;pertoires en dessous de <filename>doc/</filename>. Les
- sous-r&eacute;pertoires de celui-ci prennent le nom codifiant la langue
- dans laquelle les documentations sont &eacute;crites, selon la norme
- ISO639 (<filename>/usr/share/misc/iso639</filename>, pour les
- versions de FreeBSD post&eacute;rieures au 20 Janvier 1999).</para>
-
- <para>S'il ya a diff&eacute;rentes codifications pour votre langue
- (le Chinois,par exemple), il y aura au niveau en-dessous plusieurs
- sous-r&eacute;pertoires, un pour chacun des formats de codage que vous
- aurez fournis.</para>
-
- <para>Vous aurez enfin des sous-r&eacute;pertoires pour chaque
- document.</para>
-
- <para>Une &eacute;ventuelle traduction en Su&eacute;dois ressemblerait par exemple
- &agrave; ce qui suit&nbsp;:</para>
-
- <programlisting> doc/
- sv/
- Makefile
- FAQ/
- Makefile
- *.sgml</programlisting>
-
- <para><literal>sv</literal> est le code ISO639 pour le Su&eacute;dois.
- Remarquez les deux <filename>Makefile</filename>s, qui servent &agrave;
- compiler la documentation. Il n'y a qu'une seule fa&ccedil;on de coder le
- Su&eacute;dois, il n'y a donc pas de niveau interm&eacute;diaire entre
- les r&eacute;pertoires <filename>sv</filename> et
- <filename>FAQ</filename><footnote><para>Cette organisation va
- radicalement changer tr&egrave;s bient&ocirc;t. Suivez ce qui ce dit sur la
- &a.doc; pour plus d'information.</para></footnote>.</para>
-
- <para>Utilisez &man.tar.1; et &man.gzip.1; pour compresser votre
- documentation, et envoyez-la au projet.</para>
-
- <screen>&prompt.user; <userinput>cd doc</userinput>
-&prompt.user; <userinput>tar cf swedish-docs.tar sv</userinput>
-&prompt.user; <userinput>gzip -9 swedish-docs.tar</userinput></screen>
-
- <para>Mettez <filename>swedish-docs.tar.gz</filename> quelque part. Si
- vous ne disposez pas d'espace sur le Web (votre fournisseur d'acc&egrave;s
- n'en met peut-&ecirc;tre pas &agrave; votre disposition), vous pouvez envoyer un
- courrier &eacute;lectronique &agrave; &a.nik;, pour vous mettre d'accord sur une
- date pour les lui envoyer par courrier.</para>
-
- <para>De quelque fa&ccedil;on que vous proc&eacute;diez, il faudra que vous utilisez
- &man.send-pr.1; pour envoyer un rapport signalant que vous avez
- soumis de la documentation. Il serait tr&egrave;s utile que d'autres
- puissent relire votre traduction d'abord, parce qu'il y a peu de
- chances que la personne qui l'int&eacute;grera connaisse bien votre
- langue.</para>
-
- <para>Quelqu'un (probablement le Responsbale du Projet de
- Documentation, &a.nik; actuellement), r&eacute;cup&eacute;rera votre traduction et
- s'assurera qu'elle compile. En particulier, les points suivants
- seront examin&eacute;s&nbsp;:</para>
-
- <orderedlist>
- <listitem>
- <para>Tous vos fichiers utilisent-ils de cha&icirc;nes RCS (comme
- &ldquo;ID&rdquo;).</para>
- </listitem>
-
- <listitem>
- <para><command>make all</command> fonctionne-t-il correctement
- dans le r&eacute;pertoire <filename>sv</filename>.</para>
- </listitem>
-
- <listitem>
- <para><command>make install</command> fonctionne-t-il
- correctement.</para>
- </listitem>
- </orderedlist>
-
- <para>S'il y a des probl&egrave;mes, la personne qui examine votre soumission
- vous en fera part pour que vous essayiez de les r&eacute;gler.</para>
-
- <para>S'il n'y a pas de probl&egrave;mes, votre traduction sera int&eacute;gr&eacute;e
- aussi vite que possible.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Puis-je inclure dans mon texte des consid&eacute;rations propres &agrave; la
- langue ou au pays&nbsp;?</para>
- </question>
-
- <answer>
- <para>Nous pr&eacute;f&eacute;rerions que vous ne le fassiez pas.</para>
-
- <para>Supposons par exemple que vous traduisiez le Manuel de R&eacute;f&eacute;rence
- en Cor&eacute;en et que vous vouliez inclure une section sur les revendeurs
- en Cor&eacute;e dans votre Manuel.</para>
-
- <para>Il n'y a pas vraiment de raison pour que cette information
- ne soit pas aussi pr&eacute;sente dans la version anglaise (ou allemande,
- espagnole, &hellip;). Il se peut qu'un anglophone ait besoin d'un
- exemplaire de FreeBSD alors qu'il se trouve en Cor&eacute;e. Cela permet
- aussi de mettre en avant la p&eacute;n&eacute;tration de FreeBSD dans le monde
- entier, ce qui n'est pas une mauvaise chose.</para>
-
- <para>Si vous avez des informations propres &agrave; un pays donn&eacute;,
- soumettez-les d'abord sous forme de modifications &agrave; la version
- anglaise du Manuel de R&eacute;f&eacute;rence (avec &man.send-pr.1;) et
- traduisez-les ensuite dans votre langue dans le Manuel de
- R&eacute;f&eacute;rence dans cette langue.</para>
-
- <para>Merci.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Comment faut-il coder les caract&egrave;res propres &agrave; une
- langue&nbsp;?</para>
-
- <para>Dans les documentations, les caract&egrave;res Non-ASCII doivent
- appara&icirc;tre sous forme d'entit&eacute;s SGML.</para>
-
- <para>Bri&egrave;vement, celles-ci sont constitu&eacute;es d'une perluette (&amp;),
- du nom de l'entit&eacute;, et d'un point-virgule (;).</para>
-
- <para>Les noms des entit&eacute;s sont d&eacute;finis par la norme ISO8879, que vous
- trouverez dans le catalogue des logiciels port&eacute;s, sous
- <filename>textproc/iso8879</filename>.</para>
-
- <para>Voici quelques examples&nbsp;:</para>
-
- <segmentedlist>
- <seglistitem>
- <seg>&amp;eacute;</seg>
- <seg>&eacute;</seg>
- <seg>&ldquo;e&rdquo; accent aigu minuscule</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>&amp;Eacute;</seg>
- <seg>&Eacute;</seg>
- <seg>&ldquo;e&rdquo; accent aigu majuscule</seg>
- </seglistitem>
-
- <seglistitem>
- <seg>&amp;uuml;</seg>
- <seg>&uuml;</seg>
- <seg>&ldquo;u&rdquo; tr&eacute;ma minuscule</seg>
- </seglistitem>
- </segmentedlist>
-
- <para>Apr&egrave;s installation du logiciel port&eacute; &ldquo;iso8879&rdquo;, le
- fichier <filename>/usr/local/share/sgml/iso8879</filename> en donne
- la liste compl&egrave;te.</para>
- </question>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Comment doit-on s'adresser au lecteur&nbsp;?</para>
- </question>
-
- <answer>
- <para>Dans les documents anglais, le
- &ldquo;<foreignphrase>you</foreignphrase>&rdquo; est employ&eacute;, il n'y
- a qu'une seule forme, &agrave; l'inverse d'autres langues.</para>
-
- <para>Si vous traduisez dans une langue qui dispose de plusieurs
- formes, utilisez celle que l'on emploie habituellement dans les
- documentations techniques. En cas de doute, servez-vous d'une forme
- de politesse courante.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Y'a-t-il des informations suppl&eacute;mentaires &agrave; inclure dans les
- traductions&nbsp;?</para>
- </question>
-
- <answer>
- <para>Oui.</para>
-
- <para>Les en-t&ecirc;tes de la version anglaise du document ressembleront &agrave;
- ceci&nbsp;:</para>
-
- <programlisting><![ CDATA [<!--
- The FreeBSD Documentation Project
-
- &dollar;Id: chapter.sgml,v 1.11 1999/06/20 21:18:57 billf Exp $
--->]]></programlisting>
-
- <para>La forme exacte peut changer, mais elles comporteront toujours
- la ligne &ldquo;Id&rdquo; et la phrase <literal>The FreeBSD
- Documentation Project</literal>.</para>
-
- <para>Vos traductions doivent comporter leur propre ligne
- &ldquo;Id&rdquo; et <literal>FreeBSD Documentation Project</literal>
- doit &ecirc;tre remplac&eacute; par <literal>The FreeBSD
- <replaceable>Langue</replaceable> Documentation
- Project</literal>.</para>
-
- <para>Vous devrez aussi ajouter une troisi&egrave;me ligne qui donne la
- version anglaise d'origine sur laquelle est bas&eacute;e la
- traduction.</para>
-
- <para>Donc, la version espagnole du pr&eacute;sent fichier commencerait
- par&nbsp;:</para>
-
- <programlisting><![ CDATA [<!--
- The FreeBSD Spanish Documentation Project
-
- &dollar;Id: chapter.sgml,v 1.3 1999/06/24 19:12:32 jesusr Exp $
- Original revision: 1.11
--->]]></programlisting>
- </answer>
- </qandaentry>
- </qandaset>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml
deleted file mode 100644
index 1deacf9502..0000000000
--- a/fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml
+++ /dev/null
@@ -1,149 +0,0 @@
-<!-- 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.
-
- $Id: chapter.sgml,v 1.1 2000-06-12 15:47:08 gioria Exp $
--->
-
-<chapter id="writing-style">
- <title> Style</title>
-
- <para>Pour conserver une certaine coh&eacute;rence entre le travail des nombreux
- r&eacute;dacteurs de la documentation de FreeBSD, on a d&eacute;fini quelques r&egrave;gles &agrave;
- suivre.</para>
-
- <variablelist>
- <varlistentry>
- <term>N'utilisez pas de formes contract&eacute;es</term>
-
- <listitem>
- <para>N'utilisez pas de formes contract&eacute;es. Utilisez toujours les mots
- entiers. &ldquo;<foreignphrase>Don't use
- contractions</foreignphrase>&rdquo; n'est pas
- correct<footnote><para>N.d.T.: Ceci s'applique bien s&ucirc;r aux textes
- r&eacute;dig&eacute;s en anglais.</para></footnote>.</para>
-
- <para>Ne pas contracter donne au texte un ton plus formel, est plus
- pr&eacute;cis, et facilite la t&acirc;che des traducteurs.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Utilisez la virgule dans les &eacute;num&eacute;rations</term>
-
- <listitem>
- <para>Dans une &eacute;num&eacute;ration au sein d'un paragraphe, s&eacute;parez avec des
- virgules les &eacute;l&eacute;ments les uns des autres. Mettez aussi un virgule et
- la conjonction &ldquo;et&rdquo; avant le dernier &eacute;l&eacute;ment.</para>
-
- <para>Examinez par exemple la phrase suivante&nbsp;:</para>
-
- <blockquote>
- <para>C'est une liste d'un, deux et trois &eacute;l&eacute;ments.</para>
- </blockquote>
-
- <para>Est-ce une liste de trois &eacute;l&eacute;ments, &ldquo;un&rdquo;,
- &ldquo;deux&rdquo;, et &ldquo;trois&rdquo;, ou une liste de deux
- &eacute;l&eacute;ments, &ldquo;un&rdquo; et &ldquo;deux et
- trois&rdquo;&nbsp;?</para>
-
- <para>Il vaut mieux &ecirc;tre explicite et ajouter la derni&egrave;re
- virgule&nbsp;:</para>
-
- <blockquote>
- <para>C'est une liste d'un, deux, et trois &eacute;l&eacute;ments.</para>
- </blockquote>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Evitez les redondances</term>
-
- <listitem>
- <para>Evitez les redondances. En particulier, &ldquo;la
- commande&rdquo;, &ldquo;le fichier&rdquo;, et &ldquo;man
- commande&rdquo; sont probablement redondants.</para>
-
- <para>Voici deux exemples pour ce qui concerne les commandes. Il est
- pr&eacute;f&eacute;rable d'utiliser le second.</para>
-
- <informalexample>
- <para>Utilisez la commande <command>cvsup</command> pour mettre &agrave;
- jour vos sources.</para>
- </informalexample>
-
- <informalexample>
- <para>Utilisez <command>cvsup</command> pour mettre &agrave; jour vos
- sources.</para>
- </informalexample>
-
- <para>Voici deux exemples pour ce qui concerne les noms de fichiers.
- Il est pr&eacute;f&eacute;rable d'utiliser le second.</para>
-
- <informalexample>
- <para>&hellip; dans le fichier
- <filename>/etc/rc.local</filename>&hellip;</para>
- </informalexample>
-
- <informalexample>
- <para>&hellip; dans
- <filename>/etc/rc.local</filename>&hellip;</para>
- </informalexample>
-
- <para>Voici enfin deux exemples pour les r&eacute;f&eacute;rences aux pages de
- manuel. Il est pr&eacute;f&eacute;rable d'utiliser le second (il emploie
- <sgmltag>citerefentry</sgmltag>).</para>
-
- <informalexample>
- <para>Voyez <command>man csh</command> pour plus
- d'information.</para>
- </informalexample>
-
- <informalexample>
- <para>Voyez &man.csh.1;</para>
- </informalexample>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Pour des d&eacute;tails sur le style, consultez les <ulink
- url="http://www.columbia.edu/acis/bartleby/strunk/"><foreignphrase>El&eacute;ments
- de Style</foreignphrase></ulink>, de William Strunk.</para>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/Makefile b/fr_FR.ISO8859-1/books/handbook/Makefile
deleted file mode 100644
index 6da260134c..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/Makefile
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# The FreeBSD Documentation Project
-# The FreeBSD French Documentation Project
-#
-# Compilation du Manuel de Reference de FreeBSD
-#
-# $FreeBSD$
-# Original revision: 1.25
-#
-
-#
-# Nik is only the maintainer until Sebastien GIORIA's commit privs are
-# sorted out and he can maintain this.
-#
-MAINTAINER=nik@FreeBSD.ORG
-
-DOC?= book
-
-FORMATS?= html-split
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-#
-# SRCS lists the individual SGML files that make up the document. Changes
-# to any of these files will force a rebuild
-#
-
-# SGML content
-SRCS= book.sgml
-SRCS+= advanced-networking/chapter.sgml
-SRCS+= backups/chapter.sgml
-SRCS+= basics/chapter.sgml
-SRCS+= bibliography/chapter.sgml
-SRCS+= contrib/chapter.sgml
-SRCS+= cutting-edge/chapter.sgml
-SRCS+= disks/chapter.sgml
-SRCS+= eresources/chapter.sgml
-SRCS+= hw/chapter.sgml
-SRCS+= install/chapter.sgml
-SRCS+= internals/chapter.sgml
-SRCS+= introduction/chapter.sgml
-SRCS+= kernelconfig/chapter.sgml
-SRCS+= kerneldebug/chapter.sgml
-SRCS+= kernelopts/chapter.sgml
-SRCS+= l10n/chapter.sgml
-SRCS+= linuxemu/chapter.sgml
-SRCS+= mail/chapter.sgml
-SRCS+= mirrors/chapter.sgml
-SRCS+= pgpkeys/chapter.sgml
-SRCS+= policies/chapter.sgml
-SRCS+= ppp-and-slip/chapter.sgml
-SRCS+= printing/chapter.sgml
-SRCS+= quotas/chapter.sgml
-SRCS+= security/chapter.sgml
-SRCS+= serialcomms/chapter.sgml
-SRCS+= staff/chapter.sgml
-SRCS+= x11/chapter.sgml
-SRCS+= ports/chapter.sgml
-
-# Entities
-SRCS+= ../../../en_US.ISO_8859-1/books/handbook/authors.ent
-SRCS+= chapters.ent
-SRCS+= mailing-lists.ent
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
deleted file mode 100644
index bf6d6c53b5..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ /dev/null
@@ -1,1124 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter>
- <title>Administration R&eacute;seau Avanc&eacute;e</title>
- &trans.a.haby;
-
- <sect1 id="routing">
- <title>Passerelles et routes</title>
-
- <para><emphasis>Contribution de &a.gryphon;.<!-- <br> -->6 Octobre
- 1995.</emphasis></para>
-
- <para>Pour qu'une machine puisse en contacter une autre, il faut
- que soit install&eacute; un m&eacute;canisme qui d&eacute;crive comment aller de l'une
- &agrave; l'autre. C'est ce que l'on appelle le routage. Une
- &ldquo;route&rdquo; est d&eacute;finie par deux adresses : une
- &ldquo;destination&rdquo; et une &ldquo;passerelle&rdquo;. Cette
- paire signifie que pour atteindre cette
- <emphasis>destination</emphasis>, vous devez passer par cette
- <emphasis>passerelle</emphasis>. Il y a trois sorte de destinations:
- les machines elles-m&ecirc;mes, les sous-r&eacute;seaux, et
- <foreignphrase>default</foreignphrase>&nbsp;-&nbsp;la destination
- &ldquo;par d&eacute;faut&rdquo;. La <foreignphrase>default
- route</foreignphrase>&nbsp;-&nbsp;&ldquo;route par
- d&eacute;faut&rdquo;&nbsp;-&nbsp;est utilis&eacute;e
- lorsqu'aucune autre route n'est applicable. Nous parlerons un peu plus
- des routes par d&eacute;faut par la suite. Il y a aussi trois sortes de
- passerelles: les machines elles-m&ecirc;mes, les interfaces (aussi appel&eacute;es
- &ldquo;liens&rdquo;), et les adresses Ethernet mat&eacute;riel.</para>
-
- <sect2>
- <title>Un exemple</title>
-
- <para>Pour illustrer diff&eacute;rents aspects du routage, nous utiliserons
- l'exemple suivant, qui est le r&eacute;sultat de la commande
- <command>netstat -r</command>:</para>
-
- <informalexample>
- <screen>Destination Gateway Flags Refs Use Netif Expire
-
-default outside-gw UGSc 37 418 ppp0
-localhost localhost UH 0 181 lo0
-test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
-10.20.30.255 link#1 UHLW 1 2421
-foobar.com link#1 UC 0 0
-host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
-host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
-host2.foobar.com link#1 UC 0 0
-224 link#1 UC 0 0</screen>
- </informalexample>
-
- <para>Les deux premi&egrave;res lignes d&eacute;finissent la route par d&eacute;faut (dont
- nous parlerons dans la section suivante) et la route
- <hostid>localhost</hostid>.</para>
-
- <para>L'interface (colonne <literal>Netif</literal>) qu'il est
- indiqu&eacute; d'utiliser pour <literal>localhost</literal> est
- <devicename>lo0</devicename>, que l'on appelle aussi interface
- <foreignphrase>loopback</foreignphrase>&nbsp;-&nbsp;&ldquo;en
- boucle&rdquo;. Ce qui signifie que tout
- le trafic vers cette destination doit rester interne, au lieu d'&ecirc;tre
- envoy&eacute; sur le r&eacute;seau local, puisqu'il reviendra de toute fa&ccedil;on &agrave; son
- point de d&eacute;part.</para>
-
- <para>Les adresses <hostid role="mac">0:e0:...</hostid> sautent
- ensuite aux yeux. Ce sont les adresses Ethernet mat&eacute;riel. FreeBSD
- reconna&icirc;tra automatiquement toute machine
- (<hostid>test0</hostid> dans l'exemple) sur le r&eacute;seau Ethernet local
- et ajoutera une route vers celle-ci, directement via l'interface
- Ethernet, <devicename>ed0</devicename>. Il y a aussi un d&eacute;lai
- (colonne <literal>Expire</literal>) associ&eacute; &agrave; ce type de route,
- qui sert lorsque nous n'entendons plus parler de cette machine
- pendant un certain temps. Dans ce cas, la route est automatiquement
- supprim&eacute;e. Ces machines sont identifi&eacute;es par un m&eacute;canisme appel&eacute; RIP
- (<foreignphrase>Routing Information
- Protocol</foreignphrase>&nbsp;-&nbsp;&ldquo;protocole
- d'information de routage&rdquo;), qui construit les routes vers les
- machines locales en d&eacute;terminant le chemin le plus court.</para>
-
- <para>FreeBSD ajoutera aussi de routes de sous-r&eacute;seau pour le
- sous-r&eacute;seau local (<hostid role="ipaddr">10.20.30.255</hostid> est
- l'adresse de diffusion du sous-r&eacute;seau
- <hostid role="ipaddr">10.20.30</hostid>, et
- <hostid role="domainname">foobar.com</hostid> est le nom de
- domaine associ&eacute; &agrave; ce sous-r&eacute;seau). La d&eacute;nomination
- <literal>link#1</literal> se rapporte &agrave; la premi&egrave;re interface
- Ethernet de la machine. Vous constaterez qu'il n'y a pas d'autre
- interface associ&eacute;e &agrave; ces routes.</para>
-
- <para>Ces deux types de routes sont automatiquement configur&eacute;es
- par un &ldquo;d&eacute;mon&rdquo; appel&eacute; <command>routed</command>.
- Si ce dernier ne tourne pas, il ne pourra y avoir que des routes
- statiques (i.e. explicitement d&eacute;finies).</para>
-
- <para>La ligne <literal>host1</literal> se rapporte &agrave; notre machine,
- qui est identifi&eacute;e par son interface Ethernet. Comme nous sommes
- l'&eacute;metteur, FreeBSD sait qu'il faut utiliser l'interface &ldquo;en
- boucle&rdquo;, plut&ocirc;t que d'envoyer les donn&eacute;es sur l'interface
- Ethernet.</para>
-
- <para>Les deux lignes <literal>host2</literal> montrent ce qui ce
- passe quand on utilise un alias avec <command>ifconfig</command>
- (voyez la section sur Ethernet pour savoir pour quelles raisons
- on peut vouloir faire cela). Le symbole <literal>=&gt;</literal>
- qui suit l'interface <devicename>lo0</devicename> indique que non
- seulement nous utilisons la &ldquo;boucle&rdquo; (puisque c'est
- aussi une adresse qui se rapporte &agrave; la machine locale), mais que
- c'est, plus pr&eacute;cisement, un alias. Ce type de route n'appara&icirc;t
- que sur la machine pour laquelle est d&eacute;fini l'alias; sur toutes
- les autres machines du r&eacute;seau local, il n'y aura qu'une ligne
- <literal>link#1</literal> pour cette machine.</para>
-
- <para>La derni&egrave;re ligne (sous-r&eacute;seau destinataire
- <literal>224</literal>) concerne le
- <foreignphrase>MultiCasting</foreignphrase>&nbsp;-&nbsp;diffusion sur
- plusieurs r&eacute;seaux, dont nous parlerons dans une
- autre section.</para>
-
- <para>L'autre colonne dont il faut parler est la colonne
- <literal>Flags</literal>. Chaque route a diff&eacute;rentes
- caract&eacute;ristiques que d&eacute;crit cette colonne. Voici une courte table
- qui liste certains de ces indicateurs et leurs
- significations:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>U</entry>
- <entry>Active (&ldquo;Up&rdquo;): La route est
- active.</entry>
- </row>
-
- <row>
- <entry>H</entry>
- <entry>H&ocirc;te: La destination de la route est une
- machine.</entry>
- </row>
-
- <row>
- <entry>G</entry>
- <entry>Passerelle (&ldquo;Gateway&rdquo;): Envoyer tout ce
- qui regarde cette destination sur la machine distante
- indiqu&eacute;e, qui saura &agrave; qui transmettre ensuite.</entry>
- </row>
-
- <row>
- <entry>S</entry>
- <entry>Statique: Cette route a &eacute;t&eacute; configur&eacute;e &agrave; la main et
- non g&eacute;n&eacute;r&eacute;e automatiquement par le syst&egrave;me.</entry>
- </row>
-
- <row>
- <entry>C</entry>
- <entry>Clone: G&eacute;n&eacute;rer une nouvelle route sur la base de
- celle-ci pour les machines auxquelles nous nous connectons.
- Ce type de route est normalement utilis&eacute; pour les r&eacute;seaux
- locaux.</entry>
- </row>
-
- <row>
- <entry>W</entry>
- <entry>Clon&eacute;e (&ldquo;WasCloned&rdquo;): Cette route a &eacute;t&eacute;
- auto-configur&eacute;e (Clone) &agrave; partir d'une route pour le
- r&eacute;seau local.</entry>
- </row>
-
- <row>
- <entry>L</entry>
- <entry>Link: La route fait r&eacute;f&eacute;rence &agrave; une adresse Ethernet
- mat&eacute;rielle.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- </sect2>
-
- <sect2>
- <title>Routes par d&eacute;faut</title>
-
- <para>Quand le syst&egrave;me local doit &eacute;tablir une connexion avec une
- machine distante, il consulte la table de routage pour voir
- s'il y a d&eacute;j&agrave; une route connue. Si la machine distante appartient
- &agrave; un sous-r&eacute;seau auquel il sait comment se connecter (routes
- clon&eacute;es), alors le syst&egrave;me teste s'il peut se connecter via
- cette interface.</para>
-
- <para>Si toutes les routes connues &eacute;chouent, il reste au syst&egrave;me une
- derni&egrave;re option: la route &ldquo;par d&eacute;faut&rdquo;. C'est un type
- particulier de route passerelle (c'est g&eacute;n&eacute;ralement la seule du
- syst&egrave;me), auquel est toujours associ&eacute; l'indicateur
- <literal>c</literal>. Pour les machines du r&eacute;seau local, cette
- fonction de passerelle est affect&eacute;e &agrave; la machine qui est directement
- connect&eacute;e au monde ext&eacute;rieur (que ce soit par une liasion PPP, ou
- via un dispositif mat&eacute;riel reli&eacute; &agrave; une ligne d&eacute;di&eacute;e).</para>
-
- <para>Si vous configurez la route par d&eacute;faut sur la machine qui
- fonctionne comme passerelle vers le monde ext&eacute;rieur, la route par
- d&eacute;faut sera la passerelle du site de votre Fournisseur d'Acc&egrave;s
- Internet (FAI).</para>
-
- <para>Examinons un exemple de route par d&eacute;faut. Voici une
- configuration habituelle:
-
- <literallayout>
-[Local2] &lt;--ether--&gt; [Local1] &lt;--PPP--&gt; [ISP-Serv] &lt;--ether--&gt; [T1-GW]
- </literallayout></para>
-
- <para>Les machines <hostid>Local1</hostid> et <hostid>Local2</hostid>
- sont sur votre site, la premi&egrave;re &eacute;tant votre connexion PPP au
- concentrateur de votre fournisseur d'acc&egrave;s. Le r&eacute;seau local de
- votre fournisseur d'acc&egrave;s comporte entre autres un dispositif
- (T1-GW) reli&eacute; &agrave; son point d'entr&eacute;e sur l'Internet.</para>
-
- <para>Les routes par d&eacute;faut sur chacune de vos machines seront:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>h&ocirc;te</entry>
- <entry>passerelle par d&eacute;faut</entry>
- <entry>interface</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Local2</entry>
- <entry>Local1</entry>
- <entry>Ethernet</entry>
- </row>
-
- <row>
- <entry>Local1</entry>
- <entry>T1-GW</entry>
- <entry>PPP</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>On demande souvent &ldquo;Pourquoi (ou comment) d&eacute;finir T1-GW
- comme passerelle par d&eacute;faut pour Local1, plut&ocirc;t que le serveur du
- fournisseur auquel elle est connect&eacute;e?&rdquo;.</para>
-
- <para>N'oubliez pas que l'interface PPP utilise, de votre c&ocirc;t&eacute; de la
- connexion, une adresse sur le r&eacute;seau local de votre fournisseur. Les
- routes vers les autres machines sur le r&eacute;seau local de votre
- fournisseur seront g&eacute;n&eacute;r&eacute;es automatiquement. Vous savez d&eacute;j&agrave; comment
- atteindre la machine T1-GW, il n'y a donc pas besoin d'une &eacute;tape
- interm&eacute;diaire qui passe par le serveur de votre fournisseur.</para>
-
- <para>Derni&egrave;re remarque, il est habituel d'attribuer l'adresse <hostid
- role="ipaddr">...1</hostid> &agrave; la passerelle sur votre r&eacute;seau
- local. Donc (dans notre exemple), si votre espace d'adresses de
- classe C local est <hostid role="ipaddr">10.20.30</hostid> et celui
- de votre fournisseur <hostid role="ipaddr">10.9.9</hostid>, alors
- les routes par d&eacute;faut sont:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>Local2 (10.20.30.2)</entry>
- <entry>--&gt; Local1 (10.20.30.1)</entry>
- </row>
- <row>
- <entry>Local1 (10.20.30.1, 10.9.9.30)</entry>
- <entry>--&gt; T1-GW (10.9.9.1)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- </sect2>
-
- <sect2>
- <title>Machines sur deux r&eacute;seaux</title>
-
- <para>Il y a un autre type de de configuration dont il faut parler,
- c'est celle d'une machine qui est connect&eacute;e &agrave; deux r&eacute;seaux
- diff&eacute;rents. Techniquement, une machine qui sert de passerelle (comme
- dans l'exemple ci-dessus, en utilisant une connexion PPP) est une
- machine sur deux r&eacute;seaux. Mais l'on utilise de fait cette expression
- (<foreignphrase>dual-homed host</foreignphrase>) pour d&eacute;signer les
- machines qui sont sur deux r&eacute;seaux locaux diff&eacute;rents.</para>
-
- <para>Selon le cas, cette machine peut avoir deux cartes Ethernet,
- chacune ayant une adresse sur l'un des deux sous-r&eacute;seaux. Elle peut
- aussi avoir une seule carte Ethernet, on utilise alors un alias avec
- <command>ifconfig</command>. Le premier cas de figure correspond &agrave;
- deux r&eacute;seaux Ethernet physiquement s&eacute;par&eacute;s, alors qu'on utilise la
- deuxi&egrave;me configuration lorsqu'il n'y a qu'un seul segment physique,
- mais deux sous-r&eacute;seaux logiquement distincts.</para>
-
- <para>Dans les deux cas, les tables de routage sont d&eacute;finies de telle
- sorte que chaque sous-r&eacute;seau sache que cette machine est la
- passerelle (<foreignphrase>inbound
- route</foreignphrase>&nbsp;-&nbsp;route entrante) vers l'autre
- sous-r&eacute;seau. Cette configuration, o&ugrave; la machine sert de pont entre
- les deux sous-r&eacute;seaux, est souvent employ&eacute;e quand il faut mettre en
- place un dispositif de s&eacute;curit&eacute;&nbsp;-&nbsp;filtrage de paquets ou
- coupe-feu&nbsp;-&nbsp;dans l'une, ou dans les deux,
- directions.</para>
-
- </sect2>
-
- <sect2>
- <title>Propagation de route</title>
-
- <para>Nous avons d&eacute;j&agrave; expliqu&eacute; comment d&eacute;finir nos routes vers le
- monde ext&eacute;rieur, mais pas comment le monde ext&eacute;rieur sait comment
- nous joindre.</para>
-
- <para>Nous savons d&eacute;j&agrave; comment renseigner les tables de routage pour
- que tout le trafic pour un espace d'adresses donn&eacute; (un sous-r&eacute;seau
- de classe C dans notre exemple) soit envoy&eacute; &agrave; une machine pr&eacute;cise
- de ce r&eacute;seau, qui transmettra les paquets entrants.</para>
-
- <para>Lorsqu'il attribue une espace d'adresses &agrave; votre site, votre
- fournisseur d'acc&egrave;s d&eacute;finit ses tables de routage de sorte que tout
- le trafic destin&eacute; &agrave; votre sous-r&eacute;seau vous soit envoy&eacute; sur votre
- liaison PPP. Mais comment les autres sites &agrave; l'autre bout du pays
- savent-ils qu'ils doivent passer par votre fournisseur
- d'acc&egrave;s.</para>
-
- <para>Il existe un m&eacute;canisme (assez semblable au syst&egrave;me d'information
- distribu&eacute; du DNS) qui enregistre tous les espaces d'adresses
- affect&eacute;s, et d&eacute;finit leur point de connexion &agrave; la dorsale Internet.
- Le <foreignphrase>Backbone</foreignphrase>&nbsp;-&nbsp;&ldquo;dorsale&rdquo;&nbsp;&nbsp;comprend
- les liaisons principales qui v&eacute;hiculent le trafic Internet &agrave; travers
- le pays et le monde entier. Chaque machine de la dorsale dispose
- d'un ensemble de tables ma&icirc;tresses, qui aiguillent le trafic pour
- un r&eacute;seau donn&eacute; vers le transporteur correspondant sur la dorsale,
- et de l&agrave;, par l'interm&eacute;diaire de fournisseurs d'acc&egrave;s
- successifs, jusqu'&agrave; votre sous-r&eacute;seau.</para>
-
- <para>C'est le r&ocirc;le de votre fournisseur d'acc&egrave;s d'annoncer aux sites
- de la dorsale qu'il est le point de connexion (et donc la route
- entrante) de votre site. C'est ce que l'on appelle la propagation
- de route.</para>
-
- </sect2>
-
- <sect2>
- <title>En cas de probl&egrave;me</title>
-
- <para>Il peut arriver qu'il y ait un probl&egrave;me avec la propagation de
- route et que certains sites ne puissent vous atteindre. La commande
- probablement la plus utile pour savoir si une route commence &agrave;
- avoir des d&eacute;faillances est la commande
- <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- Elle peut aussi vous servir lorsque vous n'arrivez apparemment pas &agrave;
- vous connecter &agrave; une autre machine (i.e. lorsque
- <citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</manvolnum></citerefentry> &eacute;choue).</para>
-
- <para>La commande
- <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- prend comme param&egrave;tre le nom de la machine avec laquelle vous
- essayer d'&eacute;tablir une connexion. Elle vous donne la liste des
- passerelles interm&eacute;diaires jusqu'&agrave; la machine cible, ou jusqu'&agrave;
- ce qu'il n'y ait plus de liaison.</para>
-
- <para>Pour plus d'informations, voyez les pages de manuel de
- <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="nfs">
- <title>NFS</title>
-
- <para><emphasis>Contribution de &a.jlind;.</emphasis></para>
-
- <para>Certaines cartes Ethernet ISA ont des limites qui peuvent poser
- de s&eacute;rieux probl&egrave;mes sur un r&eacute;seau, en particulier avec NFS. Ce
- n'est pas une particularit&eacute; propre &agrave; FreeBSD, mais elle affecte aussi
- les syst&egrave;mes FreeBSD.</para>
-
- <para>Ce probl&egrave;me ce produit pratiquement tout le temps quand les
- syst&egrave;mes (FreeBSD) PC sont sur le m&ecirc;me r&eacute;seau que des stations de
- travail tr&egrave;s performantes, comme celles de Silicon Graphics, Inc.,
- et Sun Microsystems, Inc. Les montages NFS se font sans difficult&eacute;
- et certaines op&eacute;rations r&eacute;ussissent, puis tout-&agrave;-coup, il semble que
- le serveur ne r&eacute;ponde pas au client, bien que les &eacute;changes avec les
- autres syst&egrave;mes continuent &agrave; se d&eacute;rouler normalement. Cela se
- manifeste sur la machine cliente, que ce soit un syst&egrave;me FreeBSD ou
- une station de travail. Sur de nombreux syst&egrave;mes, il n'y a pas moyen
- d'arr&ecirc;ter proprement le client une fois que ce probl&egrave;me appara&icirc;t, la
- seule solution est souvent de r&eacute;initialiser le client, parce que le
- probl&egrave;me NFS ne peut &ecirc;tre r&eacute;solu.</para>
-
- <para>Bien que la solution &ldquo;correcte&rdquo; soit d'installer une
- carte Ethernet plus performante et de plus grande capacit&eacute; sur le
- syst&egrave;me FreeBSD, il y a une solution de contournement simple qui
- fournit un palliatif satisfaisant. Si le syst&egrave;me FreeBSD est le
- <emphasis>serveur</emphasis>, utilisez l'option
- <option>-w=1024</option> avec <command>mount</command> sur le client.
- Si le syst&egrave;me FreeBSD est le <emphasis>client</emphasis>, alors montez
- le syst&egrave;me de fichiers NFS avec l'option <option>-r=1024</option>.
- Vous pouvez mettre ces options dans le quatri&egrave;me champ de l'entr&eacute;e
- <filename>fstab</filename> sur le client, pour les montages
- automatiques, ou avec le param&egrave;tre <option>-o</option> de la commande
- <command>mount</command> pour les montages manuels.</para>
-
- <para>Il faut noter qu'il existe un probl&egrave;me diff&eacute;rent, que l'on
- confond parfois avec le pr&eacute;c&eacute;dent, qui peut se produire lorsque les
- serveurs et les clients NFS sont sur des r&eacute;seaux diff&eacute;rents. Si c'est
- le cas, <emphasis>assurez-vous</emphasis> que vos routeurs
- transmettent bien les informations UDP n&eacute;cessaires, ou vous n'irez
- nulle part, quoi que vous fassiez par ailleurs.</para>
-
- <para>Dans les exemples qui suivent, <hostid>fastws</hostid> est le nom de la station de travail (interface) de haute performance et
- <hostid>freebox</hostid> celui de la machine (interface) FreeBSD
- avec une carte Ethernet moins performante.
- <filename>/sharedfs</filename> est le syst&egrave;me de fichiers NFS qui
- sera export&eacute; (voyez <command>man exports</command>), et
- <filename>/project</filename> le point de montage pour ce syst&egrave;me
- de fichiers export&eacute;, sur le client. Dans tous les cas,
- des options suppl&eacute;mentaires, comme <option>hard</option> ou
- <option>soft</option> et <option>bg</option> seront peut-&ecirc;tre
- n&eacute;cessaires pour vos applications.</para>
-
- <para>Exemple lorsque le syst&egrave;me FreeBSD (<hostid>freebox</hostid>) est
- le client: dans <filename>/etc/fstab</filename> de
- <hostid>freebox</hostid>:
-
- <programlisting>
-fastws:/sharedfs /project nfs rw,-r=1024 0 0
- </programlisting>
-
- commande de montage manuel sur <hostid>freebox</hostid>:
-
- <informalexample>
- <screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen>
- </informalexample></para>
-
- <para>Exemple lorsque le syst&egrave;me FreeBSD (<hostid>freebox</hostid>) est
- le serveur: dans <filename>/etc/fstab</filename> de
- <hostid>fastws</hostid>:
-
- <programlisting>
-freebox:/sharedfs /project nfs rw,-w=1024 0 0
- </programlisting>
-
- commande de montage manuel sur <hostid>fastws</hostid>:
-
- <informalexample>
- <screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen>
- </informalexample></para>
-
- <para>Presque toutes les cartes Ethernet 16-bit permettront d'utiliser
- les restrictions ci-dessus &agrave; la taille du tampon de
- lecture/&eacute;criture.</para>
-
- <para>Pour ceux que cela int&eacute;resse, voici ce qui provoque le probl&egrave;me,
- ce qui explique aussi qu'il ne soit pas r&eacute;cup&eacute;rable. NFS utilise
- habituellement une taille de &ldquo;bloc&rdquo; de 8k (bien qu'il
- arrive qu'il les fragmente en plus petits morceaux). Comme la taille
- maximum d'un paquet Ethernet est de 1500 bits, le block NFS
- est r&eacute;parti sur plusieurs paquets Ethernet, bien qu'il soit toujours
- vu comme un ensemble par les couches sup&eacute;rieures du code, et doit &ecirc;tre
- re&ccedil;u, assembl&eacute; et &ldquo;acquitt&eacute;&rdquo; comme tel. Les stations de
- travail performantes peuvent traiter les paquets qui composent le
- &ldquo;bloc&rdquo; NFS, les uns apr&egrave;s les autres, pratiquement
- aussi rapidement que le standard le permet. Sur les cartes plus
- petites et de moindre capacit&eacute;, les derniers paquets d'un m&ecirc;me groupe
- &eacute;crasent les pr&eacute;c&eacute;dents, avant qu'ils aient &eacute;t&eacute; transmis,
- et l'ensemble ne peut &ecirc;tre reconstruit et acquitt&eacute;. En cons&eacute;quence,
- le d&eacute;lai est d&eacute;pass&eacute;
- sur la station de travail, et elle recommence l'op&eacute;ration, mais elle
- renvoie tous les 8k, et le ph&eacute;nom&egrave;ne se reproduit &agrave; l'infini.</para>
-
- <para>En d&eacute;finissant la taille de &ldquo;bloc&rdquo; en de&ccedil;&agrave; de la
- taille d'un paquet Ethernet, nous sommes s&ucirc;rs que chaque paquet
- Ethernet entier sera acquitt&eacute; individuellement, ce qui &eacute;vite la
- situation d'inter-bloquage.</para>
-
- <para>Il peut toujours y avoir &eacute;crasement lorsque des stations de
- travail performantes surchargent un syst&egrave;me PC de donn&eacute;es, mais avec
- les meilleures cartes, de tels &eacute;crasements ne sont pas syst&eacute;matiques
- pour les &ldquo;unit&eacute;s&rdquo; NFS. En cas d'&eacute;crasement, les blocs
- affect&eacute;s sont retransmis, et il y a de fortes chances qu'ils soient
- re&ccedil;us, assembl&eacute;s et acquitt&eacute;s.</para>
-
- </sect1>
-
- <sect1 id="diskless">
- <title>Station sans disque dur</title>
-
- <para><emphasis>Contribution de &a.martin;.</emphasis></para>
-
- <para><filename>netboot.com</filename>/<filename>netboot.rom</filename>
- vous permettent de d&eacute;marrer votre machine FreeBSD via le r&eacute;seau et
- d'ex&eacute;cuter FreeBSD sans disque dur sur le client. Avec la version 2.0,
- il est maintenant possible d'avoir de l'espace de pagination local. Il est toujours possible de paginer via NFS.</para>
-
- <para>Les cartes Ethernet support&eacute;es sont: Western Digital/SMC 8003,
- 8013, 8216 et compatibles; NE1000/NE2000 et compatibles (il faut
- recompiler).</para>
-
- <sect2>
- <title>Configuration</title>
-
- <procedure>
-
- <step>
- <para>Choisissez la machine qui sera votre serveur. Cette
- machine doit disposer de suffisamment d'espace disque pour y
- mettre les ex&eacute;cutables de FreeBSD 2.0 et les services bootp,
- tftp, et NFS. Machines test&eacute;es:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>HP9000/8xx sous HP-UX 9.04 ou ult&eacute;rieurs (cela ne
- marche pas avec les versions ant&eacute;rieures &agrave; la
- 9.04).</para>
- </listitem>
-
- <listitem>
- <para>Sun/Solaris 2.3. (vous devrez peut-&ecirc;tre vous
- procurer bootp).</para>
- </listitem>
-
- </itemizedlist>
-
- </step>
-
- <step>
- <para>Installez un serveur bootp pour fournir au client son
- adresse IP, son masque de r&eacute;seau et une passerelle:</para>
-
- <programlisting>
-sans-disque:\
- :ht=ether:\
- :ha=0000c01f848a:\
- :sm=255.255.255.0:\
- :hn:\
- :ds=192.1.2.3:\
- :ip=192.1.2.4:\
- :gw=192.1.2.5:\
- :vm=rfc1048:
- </programlisting>
- </step>
-
- <step>
- <para>Installez un serveur TFTP (sur la m&ecirc;me machine que le
- serveur bootp) pour fournir au client les informations de
- d&eacute;marrage. Le nom du fichier de configuration est
- <filename>cfg.<replaceable>X.X.X.X</replaceable></filename>
- (ou
- <filename>/tftpboot/cfg.<replaceable>X.X.X.X</replaceable></filename>,
- il cherchera les deux), o&ugrave; <replaceable>X.X.X.X</replaceable>
- est l'adresse IP du client. Ce fichier peut contenir n'importe
- quelles commandes netboot valides. Dans la version 2.0, les
- commandes de netboot sont les suivantes:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>help</entry>
- <entry>affiche une liste d'aide</entry>
- </row>
-
- <row>
- <entry>ip <option><replaceable>X.X.X.X</replaceable></option></entry>
- <entry>affiche/d&eacute;finit l'adresse IP du client</entry>
- </row>
-
- <row>
- <entry>server <option><replaceable>X.X.X.X</replaceable></option></entry>
- <entry>affiche/d&eacute;finit l'adresse IP du serveur
- bootp/tftp</entry>
- </row>
-
- <row>
- <entry>netmask <option><replaceable>X.X.X.X</replaceable></option></entry>
- <entry>affiche/d&eacute;finit le masque de r&eacute;seau</entry>
- </row>
-
- <row>
- <entry>hostname <replaceable>nom</replaceable></entry>
- <entry>affiche/d&eacute;finit le nom de machine</entry>
- </row>
-
- <row>
- <entry>kernel <option><replaceable>nom</replaceable></option></entry>
- <entry>affiche/d&eacute;finit le nom du noyau</entry>
- </row>
-
- <row>
- <entry>rootfs <option><replaceable>ip:/fs</replaceable></option></entry>
- <entry>affiche/d&eacute;finit le nom du syst&egrave;me de fichiers
- racine</entry>
- </row>
-
- <row>
- <entry>swapfs <option><replaceable>ip:/fs</replaceable></option></entry>
- <entry>affiche/d&eacute;finit le nom du syst&egrave;me de fichiers
- de pagination</entry>
- </row>
-
- <row>
- <entry>swapsize <option><replaceable>taille</replaceable></option></entry>
- <entry>d&eacute;finit la taille de l'espace de pagination de la
- station sans disque dur en Koctets</entry>
-
- </row>
-
- <row>
- <entry>diskboot</entry>
- <entry>d&eacute;marrer depuis le disque</entry>
- </row>
-
- <row>
- <entry>autoboot</entry>
- <entry>continuer le processus de d&eacute;marrage</entry>
- </row>
-
- <row>
- <entry>trans
- <option>on</option>|<option>off</option></entry>
- <entry>active/d&eacute;sactive
- l'&eacute;metteur-r&eacute;cepteur&nbsp;-&nbsp;<foreignphrase>transceiver</foreignphrase></entry>
- </row>
-
- <row>
- <entry>flags
- <option>b</option><option>c</option><option>d</option><option>h</option><option>s</option><option>v</option></entry>
- <entry>d&eacute;finit les indicateurs de d&eacute;marrage</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Un fichier <filename>cfg</filename> pour une machine
- sans disque peut typiquement contenir:</para>
-
- <programlisting>
-rootfs 192.1.2.3:/rootfs/monclient
-swapfs 192.1.2.3:/swapfs
-swapsize 20000
-hostname monclient.mondomain
- </programlisting>
-
- <para>Un fichier <filename>cfg</filename> pour une machine
- avec espace de pagination local peut par exemple
- contenir:</para>
-
- <programlisting>
-rootfs 192.1.2.3:/rootfs/monclient
-hostname monclient.mondomain
- </programlisting>
- </step>
-
- <step>
- <para>V&eacute;rifiez que votre serveur NFS exporte bien le syst&egrave;me de
- fichiers racine (et le syst&egrave;me de fichiers de pagination, le
- cas &eacute;ch&eacute;ant) vers le client, et que ces syst&egrave;mes de fichiers
- sont accessibles avec les droits super-utilisateur sur le
- client. Le fichier <filename>/etc/exports</filename> sur un
- syst&egrave;me FreeBSD ressemblera typiquement &agrave;:</para>
-
- <programlisting>
-/rootfs/monclient -maproot=0:0 monclient.mondomain
-/swapfs -maproot=0:0 monclient.mondomain
- </programlisting>
-
- <para>Et sur HP-UX:</para>
-
- <programlisting>
-/rootfs/myclient -root=monclient.mondomain
-/swapfs -root=monclient.mondomain
- </programlisting>
- </step>
-
- <step>
- <para>Si vous paginez via NFS (configuration sans aucun disque
- dur), cr&eacute;ez un fichier de pagination pour votre client avec
- <command>dd</command>. Si votre commande
- <command>swapfs</command> a pour argument le syst&egrave;me de
- fichiers <filename>/swapfs</filename> et 20000 comme taille,
- comme dans l'exemple ci-dessus, le fichier de pagination du
- client s'appelera
- <filename>/swapfs/swap.<replaceable>X.X.X.X</replaceable></filename>
- o&ugrave; <replaceable>X.X.X.X</replaceable> est l'adresse IP du
- client, e.g.:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000</userinput></screen>
- </informalexample>
-
- <para>Comme l'espace de pagination du client peut contenir des
- informations sensibles, d&egrave;s lors qu'il y a pagination, veillez
- &agrave; restreindre les droits en lecture et en &eacute;criture sur ce
- fichier pour &eacute;viter les acc&egrave;s non autoris&eacute;s:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>chmod 0600 /swapfs/swap.192.1.2.4</userinput></screen>
- </informalexample>
- </step>
-
- <step>
- <para>Recopiez le syst&egrave;me de fichiers racine sur le r&eacute;pertoire
- qui servira de syst&egrave;me de fichiers racine pour le client
- (<filename>/rootfs/monclient</filename> dans l'exemple
- ci-dessus).
-
- <itemizedlist>
-
- <listitem>
- <para>Sur les syst&egrave;mes HP-UX: Le serveur doit &ecirc;tre soit
- HP-UX 9.04 ou ult&eacute;rieur pour les machines de la gamme
- HP9000/800. Les versions ant&eacute;rieures ne permettent pas
- de cr&eacute;er de fichiers sp&eacute;ciaux de p&eacute;riph&eacute;rique via
- NFS.</para>
- </listitem>
-
- <listitem>
- <para>Lorsque vous recopiez <filename>/dev</filename> dans
- <filename>/rootfs/monclient</filename>, faites attention
- au fait que certains syst&egrave;mes (HP-UX) ne cr&eacute;eront pas
- les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;rique dont FreeBSD a
- besoin. Vous devrez peut-&ecirc;tre passer en mode
- mono-utilisateur au premier d&eacute;marrage (appuyez sur
- Ctrl-c pendant la phase de d&eacute;marrage),
- <command>cd /dev</command> puis
- <command>sh ./MAKEDEV all</command>
- sur le client, pour r&eacute;gler ce probl&egrave;me.</para>
- </listitem>
-
- </itemizedlist>
-
- </para>
- </step>
-
- <step>
- <para>Lancez <command>netboot.com</command> sur le client
- ou copiez le fichier <filename>netboot.rom</filename>
- dans une EPROM.</para>
- </step>
-
- </procedure>
-
- </sect2>
-
- <sect2>
- <title>Utiliser des syst&egrave;mes de fichiers <filename>/</filename> and
- <filename>/usr</filename> partag&eacute;s</title>
-
- <para>Cette fa&ccedil;on de faire n'est pas actuellement officiellement
- sanctionn&eacute;e, mais j'ai utilis&eacute; un syst&egrave;me de fichiers
- <filename>/usr</filename> partag&eacute; et un syst&egrave;me de fichiers
- <filename>/</filename> individuel sur chaque client. Si quelqu'un
- a des suggestions sur la fa&ccedil;on propre de le faire, qu'il me la
- communique, ou &agrave; l'&a.core;.</para>
-
- </sect2>
-
- <sect2>
- <title>Compiler netboot pour des configurations particuli&egrave;res</title>
-
- <para>Netboot peut &ecirc;tre compil&eacute; pour supporter les cartes NE1000/2000
- en modifiant sa configuration dans le fichier
- <filename>/sys/i386/boot/netboot/Makefile</filename>. Voyez les
- commentaires au d&eacute;but de ce fichier.</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="isdn">
- <title>ISDN</title>
-
- <para><emphasis>Derni&egrave;res modifications de &a.wlloyd;</emphasis>.</para>
-
- <para>Il y a de bonnes informations sur la technologie et le mat&eacute;rial
- ISDN sur
- <ulink url="http://alumni.caltech.edu/~dank/isdn/">la page ISDN de
- Dan Kegel</ulink>.</para>
-
- <para>Voici un aper&ccedil;u simple et rapide &agrave; propos de l'ISDN:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Si vous habitez en Europe, je vous sugg&egrave;re d'&eacute;tudier la
- section sur les cartes ISDN.</para>
- </listitem>
-
- <listitem>
- <para>Si vous envisagez d'utiliser l'ISDN avant tout pour vous
- connecter &agrave; l'Internet par l'interm&eacute;diaire d'un Fournisseur
- d'Acc&egrave;s Internet et d'une ligne t&eacute;l&eacute;phonique non d&eacute;di&eacute;e, je vous
- conseille de lire la section sur les Adaptateurs Terminaux.
- C'est la solution la plus souple, et qui vous posera le moins de
- probl&egrave;mes, si vous changer de fournisseur.</para>
- </listitem>
-
- <listitem>
- <para>Si vous interconnectez deux r&eacute;seaux locaux ou si vous vous
- connectez &agrave; l'Internet avec une liaison ISDN d&eacute;di&eacute;e, je vous
- sugg&egrave;re d'envisager un pont/routeur autonome.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Le co&ucirc;t est un facteur d&eacute;terminant de la solution que vous
- choisirez. Les options ci-dessous sont envisag&eacute;es de la plus ch&egrave;re &agrave;
- la moins ch&egrave;re.</para>
-
-
- <sect2>
- <title>Cartes ISDN</title>
-
- <para><emphasis>Contribution originale de &a.hm;.</emphasis></para>
-
- <para>Cette section ne s'applique qu'aux utilisateurs Europ&eacute;ens de
- l'ISDN. Les cartes support&eacute;es ne sont pas encore(?) disponibles pour
- les normes Nord-Am&eacute;ricaines.</para>
-
- <para>Vous devez savoir que le code est largement en cours de
- d&eacute;veloppement. En particulier, il n'y a de pilotes sp&eacute;cifiques que
- pour les cartes de deux constructeurs.</para>
-
- <para>Les cartes ISDN pour PC supportent toute la bande passante de
- l'ISDN, 128Kbs. Ces cartes sont souvent les &eacute;quipements ISDN les
- moins chers.</para>
-
- <para>Sous FreeBSD 2.1.0 et 2.1.5, il y a un premier code ISDN
- inachev&eacute; dans le r&eacute;pertoire <filename>/usr/src/gnu/isdn</filename>.
- Ce code est obsol&egrave;te et ne doit pas &ecirc;tre utilis&eacute;. Si vous voulez
- emprunter cette voie, procurez-vous le code
- <filename>bisdn</filename>. Ce code a &eacute;t&eacute; retir&eacute; de l'arborescence
- des sources depuis FreeBSD 2.2.</para>
-
- <para>Le logiciel ISDN <filename>bisdn</filename> pour
- FreeBSD 2.1-release, FreeBSD-current et NetBSD se trouve sur
- <ulink
- url="ftp://hub.freebsd.org/pub/bisdn">hub.freebsd.org</ulink>.
- la version la plus r&eacute;cente se trouve sur ce serveur ftp dans le
- r&eacute;pertoire <filename>isdn</filename>, dans le fichier
- <filename>bisdn-097.tar.gz</filename>.</para>
-
- <para>Il y a des pilotes pour les cartes suivantes:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Toutes les cartes Teles (passives) et compatibles sont
- actuellement support&eacute;es avec les protocoles EuroISDN (DSS1) et
- 1TR6.</para>
- </listitem>
-
- <listitem>
- <para>Dr. Neuhaus - Niccy 1016</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Le logiciel <filename>bisdn</filename> pr&eacute;sentent quelques
- limitations. Les fonctionnalit&eacute;s suivantes, habituellement associ&eacute;es
- &agrave; l'ISDN, ne sont pas support&eacute;es:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Pas de support PPP, HDLC de base uniquement. Cela signifie
- qu'il n'est pas possible de se connecter &agrave; la plupart des
- routeurs autonomes.</para>
- </listitem>
-
- <listitem>
- <para>Le protocole de contr&ocirc;le des
- ponts&nbsp;-&nbsp;<foreignphrase>Bridging Control
- Protocol</foreignphrase>&nbsp;-&nbsp;n'est pas
- support&eacute;.</para>
- </listitem>
-
- <listitem>
- <para>Support pour une seule carte, uniquement.</para>
- </listitem>
-
- <listitem>
- <para>Pas de bande passante &agrave; la demande.</para>
- </listitem>
-
- <listitem>
- <para>Pas de liaison des canaux.</para>
- </listitem>
-
- </itemizedlist>
-
-
- <para>Il existe une liste de diffusion. Pour vous y inscrire, envoyez
- un courrier &eacute;lectronique &agrave; &a.majordomo; et avec:
-
- <programlisting>
-subscribe freebsd-isdn
- </programlisting>
-
- comme texte de votre message.</para>
-
- </sect2>
-
- <sect2>
- <title>Adaptateurs terminaux ISDN</title>
-
- <para>Les adapteurs terminaux&nbsp;-&nbsp;Terminal adapters(TA), sont
- l'&eacute;quivalent ISDN des modems pour les lignes t&eacute;l&eacute;phoniques
- ordinaires.</para>
-
- <para>La plupart des adaptateurs utilisent le jeu de commandes
- standard des modems Hayes et peuvent &ecirc;tre utilis&eacute;s &agrave; la vol&eacute;e
- en remplacement d'un modem.</para>
-
- <para>Un adaptateur fonctionne essentiellement comme un modem sinon
- que la vitesse de la connexion est bien plus rapide qu'avec votre
- vieux modem. Vous devrez configurer <link linkend="ppp">PPP</link>
- exactement comme pour un modem. Assurez-vous d'utiliser la vitesse
- la plus &eacute;lev&eacute;e possible sur le port s&eacute;rie.</para>
-
- <para>Le principal avantage des adaptateurs terminaux pour vous
- connecter &agrave; votre Fournisseur d'Acc&egrave;s Internet est de pouvoir
- utiliser PPP en mode dynamique. Comme l'espace d'adressage IP
- disponible devient de plus en plus restreint, la plupart des
- fournisseurs ne proposent plus d&eacute;sormais d'adresse IP statique.
- La plupart des routeurs autonomes ne peuvent pas fonctionner avec
- l'allocation dynamique d'adresse IP.</para>
-
- <para>Les fonctionnalit&eacute;s et la stabilit&eacute; de la connexion des
- adaptateurs reposent compl&egrave;tement sur le &ldquo;d&eacute;mon&rdquo; PPP
- que vous ex&eacute;cuter. Cela vous permet de passer simplement d'un modem
- &agrave; l'ISDN sur une machine FreeBSD, si vous avez d&eacute;j&agrave; configur&eacute; PPP.
- De ce fait, cependant, les probl&egrave;mes que vous rencontrez avec PPP
- persisteront aussi.</para>
-
- <para>Si vous voulez le maximum de stabilit&eacute;, utilisez <link
- linkend="ppp">PPP int&eacute;gr&eacute; au noyau</link> au lieu de <link
- linkend="userppp">PPP en mode utilisateur</link>.</para>
-
- <para>On sait que les adapteurs suivants fonctionnent avec
- FreeBSD:</para>
-
- <para>
- <itemizedlist>
-
- <listitem>
- <para>Motorola BitSurfer et Bitsurfer Pro</para>
- </listitem>
-
- <listitem>
- <para>Adtran</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>La plupart des adaptateurs terminaux fonctionneront probablement
- aussi, les fabricants d'adaptateurs font en sorte que leurs produits
- acceptent la plupart des commandes AT des modems.</para>
-
- <para>Le vrai probl&egrave;me avec les adaptateurs externes est que, comme
- pour les modems, il vous faut une bonne carte s&eacute;rie.</para>
-
- <para>Vous devriez lire la section <link linkend="uart">Ports
- s&eacute;rie</link> de ce manuel pour comprendre en d&eacute;tail le
- fonctionnement des p&eacute;riph&eacute;riques s&eacute;rie et les diff&eacute;rences entre
- les ports s&eacute;rie synchrones et asynchrones.</para>
-
- <para>Un adaptateur sur un port s&eacute;rie PC standard (asynchrone)
- vous limite &agrave; 115.2Kbs, bien que vous ayez une liaison &agrave; 128Kbs.
- Pour utiliser les 128Kbs que peut atteindre l'ISDN, il vous faut
- relier l'adaptateur &agrave; une carte s&eacute;rie synchrone.</para>
-
- <para>N'imaginez pas qu'il vous suffise d'acheter un adaptateur
- interne pour &eacute;viter l'alternative synchrone/asynchrone. Les
- adaptateurs internes incluent simplement une puce port s&eacute;rie
- standard. Tout ce que vous y gagnerez sera d'&eacute;conomiser un
- c&acirc;ble s&eacute;rie et de r&eacute;cup&eacute;rer une prise &eacute;lectrique.</para>
-
- <para>Une carte synchrone avec un adaptateur est au moins aussi rapide
- qu'un routeur autonome, et pilot&eacute;e par une simple machine FreeBSD,
- probablement plus souple.</para>
-
- <para>Le choix entre carte synchrone/adaptateur ou routeur autonome
- est largement question de dogme. Cela a &eacute;t&eacute; quelque peu discut&eacute;
- dans les listes de diffusion. Je vous sugg&egrave;re de regarder dans les
- <ulink
- url="http://www.freebsd.org/search.html">archives</ulink> pour
- suivre l'int&eacute;gralit&eacute; du d&eacute;bat.</para>
-
- </sect2>
-
- <sect2>
- <title>Ponts/Routeurs ISDN autonomes</title>
-
- <para>Les ponts ou les routeurs ISDN ne sont en rien propres &agrave;
- FreeBSD ou &agrave; tout autre syst&egrave;me d'exploitation. Pour une description
- compl&egrave;te de la technologie des ponts et des routeurs, reportez-vous
- s'il vous pla&icirc;t &agrave; un ouvrage de r&eacute;f&eacute;rence sur les r&eacute;seaux.</para>
-
- <para>Dans le contexte de ce manuel, j'utiliserai indiff&eacute;remment les
- termes routeur et pont.</para>
-
- <para>Comme le prix des ponts/routeurs ISDN d'entr&eacute;e de gamme baisse
- continuellement, il est probable qu'ils deviennent un choix plus
- courant. Un routeur ISDN est une petite bo&icirc;te que se branche
- directement sur votre r&eacute;seau (ou votre carte) Ethernet, et g&egrave;re sa
- propre connexion aux autres ponts/routeurs. Il int&egrave;gre le logiciel
- n&eacute;cessaire au support du protocole PPP et d'autres
- protocoles.</para>
-
- <para>Un routeur vous procurera une liaison plus rapide qu'un
- adaptateur standard, puisqu'il utilisera toute la connexion
- ISDN synchrone.</para>
-
- <para>Le principale probl&egrave;me avec les ponts et les routeurs ISDN est
- encore l'interop&eacute;rabilit&eacute; entre les mat&eacute;riels des diff&eacute;rents
- constructeurs. Si vous envisagez de vous connecter &agrave; un fournisseur
- d'acc&egrave;s Internet, je vous recommande d'en discuter avec lui.</para>
-
- <para>Si vous envisagez de relier entre eux deux r&eacute;seaux locaux, i.e.:
- le r&eacute;seau de votre domicile et le r&eacute;seau de votre bureau, c'est la
- solution la plus simple et qui demande le moins de maintenance.
- Etant donn&eacute; que vous achetez les &eacute;quipements pour les deux
- extr&eacute;mit&eacute;s de la liaison, vous &ecirc;tes s&ucirc;r que cela
- fonctionnera.</para>
-
- <para>Pour connecter par exemple votre ordinateur &agrave; domicile ou
- le r&eacute;seau d'une agence &agrave; celui du si&egrave;ge, vous pourriez
- utiliser la configuration qui suit.</para>
-
- <example>
- <title>R&eacute;seau d'agence ou &agrave; domicile</title>
-
- <para>R&eacute;seau Ethernet 10 Base T. Connecter le routeur au c&acirc;ble r&eacute;seau
- avec un
- &eacute;metteur-r&eacute;cepteur&nbsp;-&nbsp;<foreignphrase>transceiver</foreignphrase>&nbsp;-&nbsp;AUI/10BT,
- si n&eacute;cessaire.</para>
-
- <!-- This should be a graphic -->
- <programlisting>
----Station de travail Sun
-|
----Machine FreeBSD
-|
----Windows 95 (N'avouez pas qu'elle est &agrave; vous)
-|
-Routeur autonome
- |
-Liaison ISDN BRI
- </programlisting>
-
- <para>Si vous n'avez qu'un seul ordinateur &agrave; domicile ou dans
- l'agence, vous pouvez utiliser une paire torsad&eacute;e crois&eacute;e pour
- le connecter directement au routeur.</para>
- </example>
-
- <example>
- <title>Si&egrave;ge ou autre r&eacute;seau</title>
-
- <para>R&eacute;seau Ethernet paire torsad&eacute;e.</para>
-
- <!-- This should be a graphic -->
- <programlisting>
- -------Serveur Novell
- | H |
- | ---Sun
- | |
- | U ---FreeBSD
- | |
- | ---Windows 95
- | B |
- |___---Routeur autonome
- |
- Liaison ISDN BRI
- </programlisting>
- </example>
-
- <para>Un s&eacute;rieux avantage de la plupart des ponts/routeurs est qu'ils
- vous permettent d'avoir deux connexions PPP <emphasis>s&eacute;par&eacute;es et
- ind&eacute;pendantes</emphasis> en m&ecirc;me temps. Ce n'est pas possible avec
- la plupart des adaptateurs, sauf certains mod&egrave;les particuliers
- (co&ucirc;teux) qui ont deux ports s&eacute;rie. Ne confondez pas cela avec
- avec le couplage de canaux, MPP, etc.</para>
-
- <para>Ce peut &ecirc;tre une fonctionnalit&eacute; tr&egrave;s utile, par exemple si vous
- avez une connexion ISDN Internet d&eacute;di&eacute;e au bureau et voudriez en
- profiter mais ne voulez pas acqu&eacute;rir de nouvelle ligne ISDN.
- Un routeur au bureau peut g&eacute;rer un canal B d&eacute;di&eacute;
- (64 Kbs) vers l'Internet et utiliser l'autre canal B pour une
- autre connexion. Le deuxi&egrave;me canal B peut &ecirc;tre utilis&eacute; pour
- des connexions entrantes, sortantes ou dynamiquement li&eacute;e
- au premier canal B pour augmenter la bande passante.</para>
-
- <para>Un pont Ethernet vous permettra aussi de transmettre autre
- chose que du trafic IP, vous pourrez aussi faire passer de l'IPX/SPX
- ou tout autre protocole que vous utilisiez.</para>
-
- </sect2>
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/backups/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/backups/chapter.sgml
deleted file mode 100644
index 707735ab65..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/backups/chapter.sgml
+++ /dev/null
@@ -1,774 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<chapter id="backups">
- <title>Sauvegardes</title>
- &trans.a.haby;
-
- <para>Les questions de compatibilit&eacute; mat&eacute;rielle sont aujourd'hui
- les plus probl&eacute;matiques de l'industrie informatique et FreeBSD
- n'en est nullement &agrave; l'abri. De ce point de vue, l'avantage qu'a
- FreeBSD de pouvoir &ecirc;tre utilis&eacute; sur du mat&eacute;riel PC de base et
- peu co&ucirc;teux devient un probl&egrave;me lorsqu'il faut supporter la
- vari&eacute;t&eacute; incroyable de composants disponibles sur le march&eacute;.
- Il est impossible de donner une liste exhaustive des mat&eacute;riels
- compatibles avec FreeBSD, mais ce chapitre est un catalogue des
- pilotes de p&eacute;riph&eacute;riques inclut dans FreeBSD et des mat&eacute;riels que
- chaque pilote supporte. Si possible et appropri&eacute;, des notes ont
- ajout&eacute;es sur les mat&eacute;riels eux-m&ecirc;mes. Vous pouvez aussi vous
- r&eacute;f&eacute;rer au chapitre <link linkend="kernelconfig-config">Configurer
- le noyau de FreeBSD</link> de ce manuel pour avoir
- la liste des mat&eacute;riels support&eacute;s.</para>
-
- <para>FreeBSD est un projet b&eacute;n&eacute;vole qui n'a pas les moyens de financer
- un service de tests, nous reposons sur vous, les utilisateurs, pour une
- grande part des informations que fournit ce catalogue. Si vous avez
- l'exp&eacute;rience personnelle d'un mat&eacute;riel qui fonctionne ou ne fonctionne
- pas avec FreeBSD, faites-le nous savoir par courrier &eacute;lectronique
- &agrave; la &a.doc;. Les questions concernant les mat&eacute;riels compatibles doivent
- &ecirc;tre adress&eacute;es &agrave; la &a.questions; (voyez la section
- <link linkend="eresources-mail">Listes
- de diffusion</link> pour plus d'information). Quand vous nous faites
- parvenir de l'information ou posez une question, n'oubliez pas s'il vous
- pla&icirc;t de pr&eacute;ciser exactement quelle version de FreeBSD vous utilisez et
- de donner le maximum de d&eacute;tails sur votre configuration
- mat&eacute;rielle.</para>
-
- <sect1>
- <title>* A propos des sauvegardes sur disquettes</title>
-
- <para></para>
- </sect1>
-
- <sect1 id="backups-tapebackups">
- <title>Formats de bandes</title>
-
- <para>Les principaux types de bandes sont les 4mm, 8mm, QIC, les mini-cartouches
- et les DLT.</para>
-
- <sect2 id="backups-tapebackups-4mm">
- <title>4mm (DDS: &ldquo;Digital Data
- Storage&rdquo;)</title>
-
- <para>Les bandes 4mm sont en train de remplacer les bandes QIC comme format usuel
- de sauvegarde pour les stations de travail. Cette tendance s'est acc&eacute;l&eacute;r&eacute;e
- lorsque Conner a rachet&eacute; Archive, dominant sur le march&eacute; des lecteurs QIC,
- et a arr&ecirc;t&eacute; la production de ces derniers. Les bandes 4mm sont petites et
- silencieuses, mais n'ont pas la r&eacute;putation de fiabilit&eacute; des bandes 8mm. Les
- cartouches sont moins co&ucirc;teuses et plus petites (3 x 2 x 0.5 pouces, 76 x 51
- x 12 mm) que les cartouches 8mm. Leurs dur&eacute;es de vie sont faibles et comparables,
- car elles utilisent toutes les deux un proc&eacute;d&eacute; de lecture/&eacute;criture en h&eacute;lice.</para>
-
- <para>Leur d&eacute;bit va de ~150kB/s &agrave; ~500kB/s au maximum. Leur capacit&eacute; varie de
- 1.3 GB &agrave; 2.0 GB. La compression mat&eacute;rielle, disponible sur la plupart des
- lecteurs, double approximativement leur capacit&eacute;. Il existe des lecteurs
- multiples avec changeur de bande automatique qui ont jusqu'&agrave; six unit&eacute;s de
- lecture/&eacute;criture. La capacit&eacute; totale qu'ils g&egrave;rent atteint 240 GB.</para>
-
- <para>Les t&ecirc;tes 4mm, comme les t&ecirc;tes 8mm, utilisent un proc&eacute;d&eacute; de lecture/&eacute;criture
- en h&eacute;lice. Ils pr&eacute;sentent donc tous deux les avantages et les inconv&eacute;nients de ce
- proc&eacute;d&eacute;.</para>
-
- <para>Il faut sortir les bandes apr&egrave;s 2.000 utilisations ou 100 sauvegardes
- compl&egrave;tes.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-8mm">
- <title>Bandes 8mm (Exabyte)</title>
-
- <para>Les unit&eacute;s de bandes 8mm sont les unit&eacute;s SCSI les plus courantes; c'est le
- meilleure choix de bandes amovibles. Il y a une unit&eacute; Exabyte 8mm de 2GB sur
- presque chaque site. Les bandes 8mm sont fiables, silencieuses et pratiques.
- Les cartouches ne sont pas ch&egrave;res et d'encombrement faible (4.8 x 3.3 x 0.6
- pouces; 122 x 84 x 15 mm). Un des inconv&eacute;nients de ce format est la dur&eacute;e de
- vie relativement courte des bandes et des t&ecirc;tes du fait de la grande vitesse
- de d&eacute;filement de la bande devant les t&ecirc;tes.</para>
-
- <para>Leur d&eacute;bit va ~250kB/s &agrave; ~500kB/s au maximum. Leur capacit&eacute; commence &agrave;
- 300 MB jusqu'&agrave; 7 GB. La compression mat&eacute;rielle, disponible sur la plupart des
- lecteurs, double approximativement leur capacit&eacute;. Il existe des lecteurs
- simples et multiples, qui accueillent six unit&eacute;s et 120 cartouches. Ils
- disposent de changeurs de bandes automatiques. Ils g&egrave;rent une capacit&eacute; de
- stockage de 840+ GB.</para>
-
- <para>L'enregistrement des donn&eacute;es utilisent un proc&eacute;d&eacute; en h&eacute;lice. Les t&ecirc;tes
- sont en biais par rapport &agrave; la bande (environ 6 degr&eacute;s). La bande fait un
- angle de 270 degr&eacute;s avec le cylindre sur lequel se trouvent les t&ecirc;tes. Ce
- cylindre tourne en m&ecirc;me temps que la bande d&eacute;file. On aboutit donc &agrave; une
- grande densit&eacute; de donn&eacute;es et des pistes tr&egrave;s serr&eacute;es qui vont de biais d'un
- bord de la bande &agrave; l'autre.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-qic">
- <title>QIC</title>
-
- <para>Les bandes et les lecteurs QIC-150 sont, peut-&ecirc;tre, le format le plus
- courant. Les lecteurs de bandes QIC sont les moins chers des supports de
- sauvegarde &ldquo;s&eacute;rieux&rdquo;. Leur inconv&eacute;nient par contre est le
- co&ucirc;t des bandes. Les bandes QIC sont ch&egrave;res par rapport aux bande 4mm et 8mm,
- pr&egrave;s de 5 fois le co&ucirc;t au GB. Mais, si une demi-douzaine de bandes vous
- suffit, le format QIC est peut-&ecirc;tre le bon choix. QIC est le format le
- <emphasis>plus</emphasis> r&eacute;pandu. Il y a un lecteur QIC d'une densit&eacute; ou
- d'une autre sur chaque site. C'est l&agrave; la difficult&eacute;, il y a de nombreuses
- densit&eacute;s diff&eacute;rentes pour des bandes physiquement semblables (parfois
- m&ecirc;me identiques). Les lecteurs QIC ne sont pas silencieux. Ils se
- positionnent bruyamment avant d'enregistrer et on les entend lorsqu'ils
- lisent, enrregistrent ou se positionnent sur la bande. Les bandes QIC
- sont volumineuses (6 x 4 x 0.7 pouces; 15.2 x 10.2 x 1.7 mm).
- Les <link linkend="backups-tapebackups-mini">Mini-cartouches</link>,
- qui utilisent aussi des bandes 1/4" sont d&eacute;crites par ailleurs. On ne trouve
- pas d'unit&eacute;s multi-bandes avec changeur.</para>
-
- <para>Leur d&eacute;bit va de ~150kB/s &agrave; ~500kB/s au maximum. Leur capacit&eacute; varie de
- 40 MB &agrave; 15 GB. La compression mat&eacute;rielle est disponible sur de
- nombreux mod&egrave;les r&eacute;cents. On utilise de moins en moins les lecteurs
- QIC; ils sont remplac&eacute;s par les lecteurs DAT.</para>
-
- <para>Les donn&eacute;es sont enregistr&eacute;es sur des pistes sur la bande. Les pistes
- sont parall&egrave;les &agrave; la bande et vont d'une extr&eacute;mit&eacute; &agrave; l'autre. Le nombre de
- pistes et donc la largeur des pistes d&eacute;pend de la capacit&eacute; de la bande. La
- plupart, sinon toutes les unit&eacute;s r&eacute;centes sont au moins compatibles en
- lecture (mais souvent aussi en &eacute;criture) avec les anciennes. Le format
- a une bonne r&eacute;putation de fiabilit&eacute; (la m&eacute;canique est plus simple est
- plus robuste que celle du syst&egrave;me en h&eacute;lice).</para>
-
- <para>Les bandes sont utilisables pour 5.000 sauvegardes.</para>
- </sect2>
-
- <sect2 id="backups-tapebackups-mini">
- <title>* Mini-Cartouches</title>
-
- <para></para>
- </sect2>
-
- <sect2 id="backups-tapebackups-dlt">
- <title>DLT</title>
-
- <para>Les DLT ont le taux de transfert le plus rapide de tous les types
- de lecteurs d&eacute;crits ici. La bande d'1/2" (12.5mm) est contenue dans
- une seule cartouche &agrave; bobine (4 x 4 x 1 pouces; 100 x 100 x 25 mm).
- La cartouche est munie d'une trappe basculante sur une face lat&eacute;rale
- enti&egrave;re. Le lecteur ouvre cette trappe pour saisir le d&eacute;but de la
- bande. Cette amorce comporte une d&eacute;coupe ovale que le lecteur utilise
- pour &ldquo;crocheter&rdquo; la bande. La bobine d'entra&icirc;nement se
- trouve dans le lecteur. Tous les autres types de cartouches d&eacute;crits
- ici (les bandes neuf pistes sont la seule exception) incorporent les
- bobines de stockage et d'entra&icirc;nement.</para>
-
- <para>Leur d&eacute;bit est d'environ 1.5MB/s, trois fois celui des bandes 4mm,
- 8mm et QIC. La capacit&eacute; d'une bande va de 10GB &agrave; 20GB. Il y a des unit&eacute;s
- avec changeur de bandes et des unit&eacute;s avec plusieurs lecteurs/enregistreurs
- qui vont de 5 &agrave; 900 bandes et de 1 &agrave; 20 lecteurs, ce qui procure une
- capacit&eacute; totale de 50GB &agrave; 9TB.</para>
-
- <para>Les donn&eacute;es sont enregistr&eacute;es sur des pistes parall&egrave;les &agrave; la direction
- de d&eacute;filement (tout comme les bandes QIC). L'&eacute;criture se fait sur deux pistes
- &agrave; la fois. La dur&eacute;e de vie des t&ecirc;tes de lecture/&eacute;criture est relativement
- longue; une fois que la bande s'arr&ecirc;te, il n'y a pas de d&eacute;placement des t&ecirc;tes
- par rapport &agrave; la bande.</para>
- </sect2>
-
- <sect2>
- <title>Utiliser une bande neuve pour la premi&egrave;re fois</title>
-
- <para>La premi&egrave;re fois que vous essayer de lire ou d'&eacute;crire sur une bande vierge,
- l'op&eacute;ration &eacute;choue. La console affiche des messages du type:</para>
-
-<informalexample>
- <screen>st0(ncr1:4:0): NOT READY asc:4,1
-st0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
- </informalexample>
-
- <para>Il n'y a pas de bloc d'identification (bloc num&eacute;ro 0) sur la bande.
- Tous les lecteurs QIC &eacute;crivent un bloc d'identification sur la bande
- depuis l'adoption du standard QIC-525. Il y a deux solutions:</para>
-
- <itemizedlist>
- <listitem>
- <para><command>mt fsf 1</command> fait &eacute;crire au lecteur le bloc
- d'identification sur la bande.</para>
- </listitem>
-
- <listitem>
- <para>Utilisez le bouton du panneau frontal pour &eacute;jecter la bande,</para>
-
- <para>r&eacute;ins&eacute;rez la bande et utilisez
- <citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> pour &eacute;crire dessus,</para>
-
- <para><citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> produira l'erreur <literal>DUMP:
- End of tape detected</literal> et la console affichera:
- <literal>HARDWARE FAILURE info:280 asc:80,96</literal>,</para>
-
- <para>rembobinez la bande avec: <command>mt rewind</command>,</para>
-
- <para>les manipulations ult&eacute;rieures sur la bande fonctionneront.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="backup-programs">
- <title>Programmes de sauvegarde</title>
-
- <para>Les trois principaux programmes sont:
- <citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>,
- <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>,
- et
- <citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>.</para>
-
- <sect2>
- <title>Dump et Restore</title>
-
- <para><citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> et <citerefentry>
- <refentrytitle>restore</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> sont les programmes de sauvegarde traditionnels d'Unix.
- Ils consid&eacute;rent la bande comme une suite de blocs de disque, en dessous
- du niveau d'abstraction que constituent les fichiers, liens et r&eacute;pertoires
- cr&eacute;&eacute;s par les syst&egrave;mes de fichiers.
- <citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> sauvegarde des entr&eacute;es de "p&eacute;riph&eacute;riques", des syst&egrave;mes
- de fichiers complets, et non des sous-ensembles d'un syst&egrave;me de fichiers
- ou des arborescences de r&eacute;pertoires qui se r&eacute;partissent sur plusieurs
- syst&egrave;mes de fichiers, via des liens symboliques cr&eacute;&eacute;s avec
- <citerefentry>
- <refentrytitle>ln</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> ou en montant un syst&egrave;me de fichiers sur un autre.
- <citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> n'&eacute;crit pas de fichiers ou r&eacute;pertoires sur la bande, mais
- &eacute;crit les blocs de donn&eacute;es dont sont constitu&eacute;s les fichiers et
- les r&eacute;pertoires. <citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> a quelques particularit&eacute;s qui datent de la
- Version 6 d'ATT Unix (circa 1975). Les param&egrave;tres par d&eacute;faut
- conviennent aux bandes 9 pistes (6250 bpi) et non aux supports
- &agrave; haute densit&eacute; que l'on trouve maintenant (jusqu'&agrave; 62,182 ftpi).
- Il faut surcharger ces valeurs par d&eacute;faut sur la ligne de
- commande pour utiliser la capacit&eacute; des bandes actuelles.</para>
-
- <para><citerefentry>
- <refentrytitle>rdump</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> et <citerefentry>
- <refentrytitle>rrestore</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> sauvegardent les donn&eacute;es
- via le r&eacute;seau sur une unit&eacute; de bandes qui se trouve sur une
- autre machine. Les deux programmes se servent de
- <citerefentry>
- <refentrytitle>rcmd</refentrytitle>
- <manvolnum>3</manvolnum>
- </citerefentry> et <citerefentry>
- <refentrytitle>ruserok</refentrytitle>
- <manvolnum>3</manvolnum></citerefentry> pour acc&eacute;der &agrave; l'unit&eacute; de
- bandes distante. L'utilisateur qui effectue la sauvegarde doit donc
- avoir un acc&egrave;s <literal>rhosts</literal> &agrave; la machine distante. Les
- arguments de <citerefentry>
- <refentrytitle>rdump</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> et <citerefentry>
- <refentrytitle>rrestore</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry> doivent &ecirc;tre compatibles avec la machine distante (e.g.
- si vous sauvegardez d'une machine FreeBSD sur un lecteur Exabyte
- install&eacute; sur un ordinateur Sun appel&eacute;
- <hostid>komodo</hostid>, utilisez: <command>/sbin/rdump 0dsbfu 54000
- 13000 126 komodo:/dev/nrst8 /dev/rsd0a 2>&amp;1</command>) Attention:
- Autoriser les commandes <literal>rhosts</literal> a des cons&eacute;quences
- pour la s&eacute;curit&eacute;. Evaluez soigneusement votre situation.</para>
- </sect2>
-
- <sect2>
- <title>Tar</title>
-
- <para><citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> date aussi de la Version 6 d'ATT Unix (circa
- 1975). <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> travaille en coop&eacute;ration avec le syst&egrave;me de fichiers;
- <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> &eacute;crit des fichiers et des r&eacute;pertoires sur la bande.
- <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> ne supporte pas toutes les options que permet
- <citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>, mais <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> ne demande pas
- l'inhabituelle concat&eacute;nation de commandes qu'utilise
- <citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>.</para>
-
- <para>La plupart des versions de <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> ne donnent pas la possibilit&eacute; de sauvegarde en r&eacute;seau. La
- version GNU de <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>, que FreeBSD utilise,
- supporte les p&eacute;riph&eacute;riques distants avec la m&ecirc;me syntaxe que
- <command>rdump</command>. Pour sauvegarder avec <citerefentry>
- <refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> sur une unit&eacute; Exabyte install&eacute;e sur un Sun appel&eacute;
- komodo, utilisez: <command>/usr/bin/tar cf komodo:/dev/nrst8 .
- 2>&amp;1</command>. Avec les versions sans support pour des
- p&eacute;riph&eacute;riques distants, vous pouvez utilisez un tuyau (&ldquo;pipe&rdquo;)
- et <citerefentry>
- <refentrytitle>rsh</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> pour envoyer les donn&eacute;es
- sur le lecteur distant.</para>
- </sect2>
-
- <sect2>
- <title>Cpio</title>
-
- <para><citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> est le programme Unix
- original pour l'&eacute;change de fichiers par bandes magn&eacute;tiques.
- <citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> dispose d'options (entre
- beaucoup d'autres) pour intervertir les octets, utiliser diff&eacute;rents
- formats d'archivage et envoyer les donn&eacute;es &agrave; d'autres programmes.
- C'est cette derni&egrave;re possibilit&eacute; qui fait de
- <citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> un excellent choix pour
- les supports d'installation. <citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> ne sait pas parcourir
- l'arborescence d'un r&eacute;pertoire et il faut lui passer la liste
- des fichiers via
- <filename>STDIN</filename>.</para>
-
- <para><citerefentry>
- <refentrytitle>cpio</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> ne permet pas la
- sauvegarde sur le r&eacute;seau et il faut utiliser un tuyau (&ldquo;pipe&rdquo;)
- et <citerefentry>
- <refentrytitle>rsh</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> pour envoyer les donn&eacute;es sur une
- unit&eacute; distante.</para>
- </sect2>
-
- <sect2>
- <title>Pax</title>
-
- <para><citerefentry>
- <refentrytitle>pax</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> est la r&eacute;ponse IEEE/POSIX &agrave;
- <command>tar</command> et <command>cpio</command>. Au fil des ans, les
- diff&eacute;rentes versions de <command>tar</command> et <command>cpio</command>
- sont devenues l&eacute;g&eacute;rement incompatibles. Donc, au lieu de batailler pour
- les standardiser enti&egrave;rement, POSIX a d&eacute;fini un nouvel utilitaire d'archivage.
- <command>pax</command> essaie de lire nombre de formats
- <citerefentry><refentrytitle>tar</refentrytitle><manvolnum>1</manvolnum></citerefentry> et
- <citerefentry><refentrytitle>cpio</refentrytitle><manvolnum>1</manvolnum></citerefentry> en
- plus de ses propres nouveaux formats. Son jeu de commandes ressemble plus &agrave;
- celui de <command>cpio</command> qu'&agrave; celui de
- <command>tar</command>.</para>
- </sect2>
-
- <sect2 id="backups-programs-amanda">
- <title>Amanda</title>
-
- <para><ulink url="http://www.freebsd.org/ports/misc.html#amanda-2.4.0">Amanda</ulink>
- (Advanced Maryland Network Disk Archiver&nbsp;-&nbsp;Syst&egrave;me Avanc&eacute; d'Archivage
- de Disques en R&eacute;seau du Maryland ) est un syst&egrave;me d'archivage client/serveur
- plut&ocirc;t qu'un simple programme. Un serveur Amanda archivera sur une seule
- unit&eacute; de bandes un nombre quelconque d'ordinateurs qui ont un client
- Amanda et un acc&egrave;s r&eacute;seau au serveur Amanda. Un probl&egrave;me habituel sur
- les sites qui ont de nombreux disques volumineux est le temps disponible
- pour la sauvegarde. Amanda r&eacute;soud ce probl&egrave;me. Amanda peut utiliser un
- &ldquo;disque interm&eacute;diaire&rdquo; pour sauvegarder plusieurs syst&egrave;mes de fichiers
- &agrave; la fois. Amanda cr&eacute;e des &ldquo;jeux d'archive&rdquo;, un ensemble de bandes
- utilis&eacute;es pour une p&eacute;riode donn&eacute;e pour cr&eacute;er une sauvegarde compl&egrave;te de tous les
- syst&egrave;mes de fichiers list&eacute;s dans ses fichiers de configuration.
- Le &ldquo;jeu d'archive&rdquo; contient aussi les sauvegardes nocturnes
- incr&eacute;mentales (ou diff&eacute;rentielles) de tous les syst&egrave;mes de fichiers.
- Pour restaurer un syst&egrave;me de fichiers endommag&eacute;, il faut la sauvegarde
- compl&egrave;te la plus r&eacute;cente et les sauvegardes incr&eacute;mentales.</para>
-
- <para>Le fichier de configuration permet un contr&ocirc;le en finesse des
- sauvegardes et du trafic qu'Amanda g&eacute;n&eacute;re sur le r&eacute;seau. Amanda peut
- utiliser n'importe lequel des programmes de sauvegarde d&eacute;crits plus
- haut pour &eacute;crire les donn&eacute;es sur bande. Amanda existe sous forme
- pr&eacute;-compil&eacute;e ou source, il n'est pas install&eacute; par d&eacute;faut.</para>
- </sect2>
-
- <sect2>
- <title>Ne rien faire</title>
-
- <para>&ldquo;Ne rien faire&rdquo; n'est pas un logiciel, mais c'est la
- strat&eacute;gie de sauvegarde la plus utilis&eacute;e. Il n'y a aucun investissement.
- Il n'y a pas de planification des sauvegardes &agrave; suivre. Juste dire non.
- Si quelque chose arrive &agrave; vos donn&eacute;es, souriez et d&eacute;brouillez-vous!</para>
-
- <para>Si votre temps et vos donn&eacute;es ne valent pas grand chose, alors
- &ldquo;Ne rien faire&rdquo; est le programme de sauvegarde le mieux
- adapt&eacute; &agrave; votre ordinateur. Mais prenez garde, Unix est un bon outil,
- vous pouvez vous rendre compte au bout de six mois que vous avez une
- collection de fichiers utiles.</para>
-
- <para>&ldquo;Ne rien faire&rdquo; est la bonne m&eacute;thode pour sauvegarder
- <filename>/usr/obj</filename> et les autres r&eacute;pertoires qui peuvent
- facilement &ecirc;tre recr&eacute;&eacute;s par votre ordinateur. Par exemple, les fichiers
- qui constituent ces pages ont &eacute;t&eacute; g&eacute;n&eacute;r&eacute;s &agrave; partir de fichiers
- <acronym>SGML</acronym>. Il n'est pas n&eacute;cessaire d'archiver ces fichiers
- <acronym>HTML</acronym>. Les fichiers source
- <acronym>SGML</acronym> sont sauvegard&eacute;s r&eacute;guli&egrave;rement.</para>
- </sect2>
-
- <sect2>
- <title>Quel est le meilleur programme de sauvegarde?</title>
-
- <para><citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> <emphasis>Point.</emphasis>
- Elizabeth D. Zwicky a soumis &agrave; rude &eacute;preuve tous les programmes de
- sauvegarde dont nous avons parl&eacute;. Le choix de
- <citerefentry><refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> s'impose pour pr&eacute;server toutes
- vos donn&eacute;es et les particularit&eacute;s des syst&egrave;mes de fichiers Unix.
- Elizabeth a cr&eacute;&eacute; des syst&egrave;mes de fichiers avec une grande vari&eacute;t&eacute;
- de particularit&eacute;s inhabituelles et a test&eacute; chacun des programmes
- en faisant une sauvegarde et une restauration. Parmi les sp&eacute;cificit&eacute;s
- test&eacute;es : fichiers avec des trous, fichiers avec des trous et des blocs
- de caract&egrave;res &ldquo;null&rdquo;, fichiers dont les noms comportaient des
- caract&egrave;res inhabituels, fichiers illisibles ou dans lesquels il n'&eacute;tait
- pas possible d'&eacute;crire, p&eacute;riph&eacute;riques, fichiers dont la taille changeait
- pendant la sauvegarde, fichiers cr&eacute;&eacute;s ou d&eacute;truits en cours de sauvegarde,
- et bien d'autres encore. Elle a pr&eacute;sent&eacute; les r&eacute;sultats de ces test au
- LISA V en Octobre 1991. Voyez ses <ulink
- url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">Tests d'endurance des programmes
- de sauvegarde et de restauration</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Proc&eacute;dure de restauration d'urgence</title>
-
- <sect3>
- <title>Avant le d&eacute;sastre</title>
-
- <para>Il y a quatre &eacute;tapes &agrave; mettre en oeuvre en pr&eacute;vision d'un d&eacute;sastre &eacute;ventuel.</para>
-
- <para>Tout d'abord, imprimez le label de chacun de vos disques
- (<command>e.g. disklabel sd0 | lpr</command>), votre table des syst&egrave;mes de fichiers
- (<command>/etc/fstab</command>) et tous les messages de d&eacute;marrage,
- en deux exemplaires.</para>
-
- <para>Deuxi&egrave;mement, v&eacute;rifiez que vos disquettes de d&eacute;marrage
- et de reprise d'urgence
- (<filename>boot.flp</filename> et <filename>fixit.flp</filename>)
- incluent tous vos p&eacute;riph&eacute;riques. La meilleure fa&ccedil;on de le v&eacute;rifier
- est de red&eacute;marrer avec la disquette de d&eacute;marrage dans le lecteur
- et de contr&ocirc;ler les messages de d&eacute;marrage. Si tous les p&eacute;riph&eacute;riques
- y figurent et sont op&eacute;rationnels, passez &agrave; la troisi&egrave;me &eacute;tape.</para>
-
- <para>Sinon, vous devez cr&eacute;er deux disquettes de d&eacute;marrage sur-mesure
- avec un noyau qui puisse monter tous vos disques et acc&eacute;der &agrave; votre
- unit&eacute; de bandes. Ces disquettes doivent contenir:
- <citerefentry>
- <refentrytitle>fdisk</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>, <citerefentry>
- <refentrytitle>disklabel</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>, <citerefentry>
- <refentrytitle>newfs</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>, <citerefentry>
- <refentrytitle>mount</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>, et celui des programmes
- de sauvegarde que vous utilisez. L'&eacute;dition de liens de ces
- programmes doit &ecirc;tre statique. Si vous utilisez
- <citerefentry>
- <refentrytitle>dump</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>, les disquettes doivent
- inclure
- <citerefentry>
- <refentrytitle>restore</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>.</para>
-
- <para>Troisi&egrave;mement, faites r&eacute;guli&egrave;rement des sauvegardes sur bandes. Toutes
- les modifications effectu&eacute;es apr&egrave;s la derni&egrave;re sauvegarde peuvent &ecirc;tre
- irr&eacute;m&eacute;diablement perdues. Prot&eacute;gez vos bandes de sauvegarde en &eacute;criture.</para>
-
- <para>Quatri&egrave;mement, testez vos disquettes (soit <filename>boot.flp</filename>
- et <filename>fixit.flp</filename>, soit les deux disquettes sur-mesure que vous
- avez cr&eacute;&eacute;es &agrave; la seconde &eacute;tape) et vos bandes de sauvegarde. Prenez note de
- la proc&eacute;dure (de restauration). Rangez ces notes avec la disquette de d&eacute;marrage,
- les impressions et les bandes de sauvegarde. Vous serez si pr&eacute;occup&eacute; quand vous
- devrez restaurer que ces notes peuvent vous &eacute;viter de d&eacute;truire vos bandes de
- sauvegarde (Comment? En tapant accidentellement
- <command>tar cvf /dev/rst0</command> au lieu de <command>tar xvf</command> ce qui
- &eacute;craserait vos bandes de sauvegarde).</para>
-
- <para>Par mesure de s&eacute;curit&eacute;, cr&eacute;ez une disquette de d&eacute;marrage et deux bandes
- de sauvegarde &agrave; chaque fois. Rangez-les dans un lieu &eacute;loign&eacute;. Le sous-sol
- du m&ecirc;me batiment <emphasis>n'est pas</emphasis> un endroit &eacute;loign&eacute;. Un certain
- nombre de compagnies du World Trade Center l'ont appris &agrave; leurs d&eacute;pends. Un
- endroit &eacute;loign&eacute; doit &ecirc;tre physiquement significativement s&eacute;par&eacute; de vos
- ordinateurs et de vos disques.</para>
-
- <para>Voici un exemple de proc&eacute;dure pour cr&eacute;er une disquette de d&eacute;marrage:</para>
-
- <programlisting>
-<![ CDATA [#!/bin/sh
-#
-# cr&eacute;er une disquette de restauration
-#
-# formater la disquette
-#
-PATH=/bin:/sbin:/usr/sbin:/usr/bin
-
-fdformat -q fd0
-if [ $? -ne 0 ]
-then
- echo "Mauvaise disquette, utilisez-en une neuve"
- exit 1
-fi
-#
-# mettre les blocs de d&eacute;marrage sur la disquette
-#
-disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd /dev/rfd0c fd1440
-
-#
-# newfs sur la seule et unique partition
-#
-newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a
-
-#
-# monter la nouvelle disquette
-#
-mount /dev/fd0a /mnt
-
-#
-# cr&eacute;er les r&eacute;pertoires voulus
-#
-mkdir /mnt/dev
-mkdir /mnt/bin
-mkdir /mnt/sbin
-mkdir /mnt/etc
-mkdir /mnt/root
-mkdir /mnt/mnt # pour la partition racine
-mkdir /mnt/tmp
-mkdir /mnt/var
-
-#
-# peupler les r&eacute;pertoires
-#
-if [ ! -x /sys/compile/MINI/kernel ]
-then
- cat << EOM
-Le noyau MINI n'existe pas, cr&eacute;ez-le.
-Voici un exemple de fichier de configuration:
-#
-# MINI -- Un noyau pour FreeBSD pour mettre sur une disquette.
-#
-machine "i386"
-cpu "I486_CPU"
-ident MINI
-maxusers 5
-
-options INET # requis pour _tcp _icmpstat _ipstat
- # _udpstat _tcpstat _udb
-options FFS #Berkeley Fast File System
-options FAT_CURSOR #gros curseur pour syscons ou pccons
-options SCSI_DELAY=15 #Etre pessimiste pour les p&eacute;riph&eacute;riques SCSI de Joe
-options NCONS=2 #1 consoles virtuelle
-options USERCONFIG #Permettre la configuration utilisateur avec -c XXX
-
-config kernel root on sd0 swap on sd0 and sd1 dumps on sd0
-
-controller isa0
-controller pci0
-
-controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
-disk fd0 at fdc0 drive 0
-
-controller ncr0
-
-controller scbus0
-
-device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
-device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
-
-device sd0
-device sd1
-device sd2
-
-device st0
-
-pseudo-device loop # requis par INET
-pseudo-device gzip # Pouvoir ex&eacute;cuter les a.out "gzipp&eacute;s"
-EOM
- exit 1
-fi
-
-cp -f /sys/compile/MINI/kernel /mnt
-
-gzip -c -best /sbin/init > /mnt/sbin/init
-gzip -c -best /sbin/fsck > /mnt/sbin/fsck
-gzip -c -best /sbin/mount > /mnt/sbin/mount
-gzip -c -best /sbin/halt > /mnt/sbin/halt
-gzip -c -best /sbin/restore > /mnt/sbin/restore
-
-gzip -c -best /bin/sh > /mnt/bin/sh
-gzip -c -best /bin/sync > /mnt/bin/sync
-
-cp /root/.profile /mnt/root
-
-cp -f /dev/MAKEDEV /mnt/dev
-chmod 755 /mnt/dev/MAKEDEV
-
-chmod 500 /mnt/sbin/init
-chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
-chmod 555 /mnt/bin/sh /mnt/bin/sync
-chmod 6555 /mnt/sbin/restore
-
-#
-# cr&eacute;er les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques
-#
-cd /mnt/dev
-./MAKEDEV std
-./MAKEDEV sd0
-./MAKEDEV sd1
-./MAKEDEV sd2
-./MAKEDEV st0
-./MAKEDEV pty0
-cd /
-
-#
-# cr&eacute;er une table des syst&egrave;mes de fichiers minimale
-#
-cat > /mnt/etc/fstab <<EOM
-/dev/fd0a / ufs rw 1 1
-EOM
-
-#
-# cr&eacute;er un fichier d'utilisateurs minimal
-#
-cat > /mnt/etc/passwd <<EOM
-root:*:0:0:Charlie &:/root:/bin/sh
-EOM
-
-cat > /mnt/etc/master.passwd <<EOM
-root::0:0::0:0:Charlie &:/root:/bin/sh
-EOM
-
-chmod 600 /mnt/etc/master.passwd
-chmod 644 /mnt/etc/passwd
-/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
-
-#
-# d&eacute;monter la disquette et pr&eacute;venir l'utilisateur
-#
-/sbin/umount /mnt]]></programlisting>
- </sect3>
-
- <sect3>
- <title>Apr&egrave;s le d&eacute;sastre</title>
-
- <para>La question cruciale est: votre mat&eacute;riel a-t-il surv&eacute;cu? Vous avez fait
- des sauvegardes r&eacute;guli&egrave;res, donc vous n'avez pas besoin de vous inqui&eacute;ter
- pour les logiciels et les fichiers.</para>
-
- <para>Si le mat&eacute;riel a subi des d&eacute;gats, remplacez d'abord ce qui a &eacute;t&eacute;
- endommag&eacute;.</para>
-
- <para>Si votre mat&eacute;riel est en &eacute;tat, r&eacute;cup&eacute;rez vos disquettes. Si vous
- utilisez une disquette sur-mesure, d&eacute;marrez en mode mono-utilisateur
- (tapez <literal>-s</literal> &agrave; l'invite <prompt>boot:</prompt>). Sautez
- le paragraphe suivant.</para>
-
- <para>Si vous utilisez les disquettes <filename>boot.flp</filename> et
- <filename>fixit.flp</filename>, continuez &agrave; lire. Mettez la disquette
- <filename>boot.flp</filename> dans le premier lecteur et d&eacute;marrez
- l'ordinateur. Le menu d'installation d'origine s'affiche &agrave; l'&eacute;cran,
- choisissez l'option <literal>Fixit--Repair mode with CDROM or
- floppy</literal> (Reprise avec une disquette ou un CDROM). Ins&eacute;rez la
- disquette <filename>fixit.flp</filename> quand on vous la demande.
- <command>restore</command> et les autres programmes dont vous avez besoin
- sont dans le r&eacute;pertoire <filename>/mnt2/stand</filename>.</para>
-
- <para>Restaurez s&eacute;parement chaque syst&egrave;me de fichiers.</para>
-
- <para>Essayez <citerefentry>
- <refentrytitle>mount</refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry>(e.g. <command>mount /dev/sd0a
- /mnt</command>) sur la partition racine de votre premier disque.
- Si le label du disque est endommag&eacute;, utilisez <citerefentry>
- <refentrytitle>disklabel</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> pour repartitionner et
- libeller le disque comme l'indique le label que vous avez imprim&eacute;
- et mis de c&ocirc;t&eacute;. Utilisez
- <citerefentry>
- <refentrytitle>newfs</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry> pour recr&eacute;er les syst&egrave;mes
- de fichiers. Remontez la partition racine de la disquette en
- lecture/&eacute;criture (<command>mount -u -o rw /mnt</command>). Utilisez
- votre programme de restauration et vos bandes de sauvegardes pour
- restaurer les fichiers de ce syst&egrave;me de fichiers (e.g.
- <command>restore vrf /dev/st0</command>). D&eacute;montez le syst&egrave;me de fichiers
- (e.g. <command>umount /mnt</command>). R&eacute;p&eacute;tez l'op&eacute;ration pour chacun
- des syst&egrave;mes de fichiers endommag&eacute;s.</para>
-
- <para>Une fois que le syst&egrave;me fonctionne de nouveau, faites une sauvegarde
- sur de nouvelles bandes. Ce qui a caus&eacute; la panne ou la perte de donn&eacute;es
- peut se reproduire. Une heure de perdue maintenant peut vous &eacute;pargner
- d'autres ennuis plus tard.</para>
- </sect3>
-
- <sect3>
- <title>* Je ne me suis pas pr&eacute;par&eacute; au d&eacute;sastre, que faire?</title>
-
- <para></para>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml
deleted file mode 100644
index e725f90411..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml
+++ /dev/null
@@ -1,163 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.9
--->
-
- <chapter id="basics">
- <title>Quelques bases d'Unix</title>
- &trans.a.breard;
-
-
- <sect1 id="basics-man">
- <title>Le manuel en ligne</title>
-
- <para>La documentation la plus importante sur FreeBSD est sous forme
- <emphasis>de pages de manuel</emphasis>. Presque tous les programmes
- du syst&egrave;me sont fournis avec un court manuel de
- r&eacute;f&eacute;rence expliquant les op&eacute;rations de bases
- et leurs diff&eacute;rents arguments.
- Ces pages de manuel peuvent &ecirc;tre lues avec la commande
- <command>man</command>.
- L'utilisation de la commande <command>man</command> est simple :</para>
- <informalexample>
- <screen>&prompt.user <userinput>man <replaceable>commande</replaceable></userinput>
- </screen>
- </informalexample>
-
- <para>o&ugrave; <replaceable>commande</replaceable> est le nom
- de la commande dont vous voulez voir la page de manuel.
- Par exemple pour en savoir plus sur la commande <command>ls</command>
- tapez :</para>
-
- <screen>&prompt.user; <userinput>man ls</userinput></screen>
-
- <para>Le manuel en ligne est divis&eacute; en plusieurs sections
- num&eacute;rot&eacute;es :</para>
-
- <orderedlist>
-
- <listitem>
- <para>Les commandes utilisateur</para>
- </listitem>
-
- <listitem>
- <para>Les appels syst&egrave;mes et les num&eacute;ros d'erreurs</para>
- </listitem>
-
- <listitem>
- <para>Les fonctions de la biblioth&egrave;que C</para>
- </listitem>
-
- <listitem>
- <para>Les pilotes de p&eacute;riph&eacute;riques</para>
- </listitem>
-
- <listitem>
- <para>Les formats de fichiers</para>
- </listitem>
-
- <listitem>
- <para>Les jeux et autres divertissements</para>
- </listitem>
-
- <listitem>
- <para>Des informations diverses</para>
- </listitem>
-
- <listitem>
- <para>Les commandes d'administration et de maintenance du syst&egrave;me</para>
- </listitem>
-
- </orderedlist>
-
- <para>Dans certains cas le m&ecirc;me sujet peut appara&icirc;tre dans
- plusieurs sections du manuel en ligne. Par exemple il y a une commande
- utilisateur <command>chmod</command> et un appel syst&egrave;me
- <function>chmod()</function>.
- Dans ce cas, vous pouvez appeler la commande <command>man</command>
- en sp&eacute;cifiant la section souhait&eacute;e :</para>
-
- <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
-
- <para>affichera la page de manuel pour la commande utilisateur
- <command>chmod</command>.
- Les r&eacute;f&eacute;rences &agrave; une section particuli&egrave;re
- du manuel sont traditionnellement plac&eacute;es entre
- parenth&egrave;ses dans les documentations. Ainsi
- <citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- fait r&eacute;f&eacute;rence &agrave; la commande utilisateur
- <command>chmod</command> et
- <citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>2</manvolnum></citerefentry>
- fait r&eacute;f&eacute;rence &agrave; l'appel syst&egrave;me.</para>
-
- <para>C'est bien si vous connaissez le nom des commandes et que vous voulez
- simplement savoir comment les utiliser, mais si vous ne vous rappeler pas
- le nom d'une commande, comment faire ? Vous pouvez alors utiliser
- <command>man</command> pour rechercher un mot clef dans la partie
- <emphasis>descriptions</emphasis> des pages de manuel en utilisant
- l'option <option>-k</option> :</para>
-
-
- <screen>&prompt.user; <userinput>man -k mail</userinput></screen>
-
- <para>Avec cette commande vous obtiendrez la liste de toutes les commandes
- qui contiennent le mot clef &ldquo;mail&rdquo; dans leur description.
- C'est l'&eacute;quivalent de la commande <command>apropos</command>.</para>
-
- <para>Si vous souhaitez avoir un aper&ccedil;u rapide des fonctions de
- toutes les commandes qui se trouvent dans un r&eacute;pertoire,
- par exemple <filename>/usr/bin</filename> vous pouvez simplement taper :
-
-
- <screen>&prompt.user; <userinput>cd /usr/bin; man -f *</userinput></screen>
-
-
- ou encore
-
-
- <screen>&prompt.user; <userinput>cd /usr/bin; whatis *</userinput></screen>
-
-
- qui fait la m&ecirc;me chose.</para>
-
- </sect1>
-
- <sect1 id="basics-info">
-
- <title>Les fichiers GNU INFO</title>
-
- <para>FreeBSD comprend plusieurs applications et utilitaires produit par
- la Free Software Foundation (FSF). En plus des pages de manuel, ces programmes
- sous fournis avec une documentation hypertexte plus importante appel&eacute;e
- fichier &ldquo;info &rdquo; qui peut &ecirc;tre visualis&eacute;e avec la commande
- <command>info</command> ou, si vous avez install&eacute; <command>Emacs</command>,
- avec le mode info d'<command>Emacs</command>.</para>
-
- <para>Pour utiliser la commande
- <citerefentry><refentrytitle>info</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> tapez simplement :
-
- <screen>&prompt.user; <userinput>info</userinput></screen>
-
- Pour une br&egrave;ve introduction &agrave; l'utilisation d'<command>info</command> tapez
- <userinput>h</userinput>.
- Pour une r&eacute;f&eacute;rence rapide des commandes d'<command>info</command> tapez
- <userinput>?</userinput>.</para>
-
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/bibliography/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/bibliography/chapter.sgml
deleted file mode 100644
index 857b440c61..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/bibliography/chapter.sgml
+++ /dev/null
@@ -1,498 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.10
--->
-
-<chapter id="bibliography">
- <title>Bibliographie</title>
-
- <para>Bien que les pages de manuel soient la documentation de
- r&eacute;f&eacute;rence pour chaque facette du syst&agrave;me
- d'exploitation FreeBSD, il est de notori&eacute;t&eacute; publique qu'elles
- n'expliquent pas comment assembler les morceaux pour avoir un syst&egrave;me
- d'exploitation qui tourne sans encombre. Il n'y a pour cela pas d'autre
- alternative qu'un bon livre sur l'administration Unix et un bo manuel
- utilisateur.</para>
-
- <sect1>
- <title>Livres &amp; revues consacr&eacute;s &agrave; FreeBSD</title>
-
- <para><emphasis>Livres &amp; revues internationaux&nbsp;:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://freebsd.csie.nctu.edu.tw/~jdli/book.html">Utiliser
- FreeBSD</ulink> (en Chinois).</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD pour les utilisateurs de PC 98 (en Japonais),
- publi&eacute; par SHUWA System Co, LTD.
- ISBN 4-87966-468-5 C3055 P2900E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD (en Japonais), publi&eacute; par CUTT. ISBN 4-906391-22-2
- C3055 P2400E.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.shoeisha.co.jp/pc/index/shinkan/97_05_06.htm">Introduction
- compl&egrave;te &agrave; FreeBSD</ulink> (en Japonais), publi&eacute;
- par <ulink URL="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</ulink>.
- ISBN 4-88135-473-6 P3600E.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Kit
- de d&eacute;marrage pour Unix personnel FreeBSD</ulink> (en Japonais),
- publi&eacute; par <ulink URL="http://www.ascii.co.jp/">ASCII</ulink>.
- ISBN 4-7561-1733-3 P3000E.</para>
- </listitem>
-
- <listitem>
- <para>Manuel de r&eacute;f&eacute;rence FreeBSD (traduction en
- Japonais), publi&eacute; par
- <ulink URL="http://www.ascii.co.jp/">ASCII</ulink>.
- ISBN 4-7561-1580-2 P3800E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD avec m&eacute;thode (en Allemand), publi&eacute; par
- Computer und Literatur Verlag/Vertrieb Hanser, 1998.
- ISBN 3-932311-31-0.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.pc.mycom.co.uk/FreeBSD/install-manual.html">Manuel
- d'installation et d'utilisation de FreeBSD</ulink> (en Japonais),
- publi&eacute; par <ulink url="http://www.pc.mycom.co.jp/">Mainichi
- Communications Inc.</ulink>.</para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>Livres &amp; revues en langue
- anglaise&nbsp;:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.cdrom.com/titles/freebsd/bsdbook2.phtml">FreeBSD
- int&eacute;gral</ulink>, publi&eacute; par
- <ulink URL="http://www.cdrom.com">Walnut Creek CDROM</ulink>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Manuels d'utilisation</title>
-
- <itemizedlist>
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Reference Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-075-9</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- User's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-076-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>UNIX in a Nutshell</emphasis>. O'Reilly &amp;
- Associates, Inc., 1990. ISBN 093717520X</para>
- </listitem>
-
- <listitem>
- <para>Mui, Linda. <emphasis>What You Need To Know When You Can't Find
- Your UNIX System Administrator</emphasis>. O'Reilly &amp;
- Associates, Inc., 1995. ISBN 1-56592-104-6</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www-wks.acs.ohio-state.edu/">L'Universit&eacute;
- de l'Etat d'Ohio</ulink> a &eacute;crit un
- <ulink URL="http://www-wks.acs.ohio-state.edu/unix_course/unix.html">Cours
- d'introduction &agrave; Unix</ulink> disponible en ligne aux formats
- HTML et PostScript.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.ORG/">Jpman Project, Groupe
- d'utilisateurs japonais de FreeBSD</ulink>.
- <ulink url="http://www.pc.mycom.co.jp/FreeBSD/urm.html">Manuel de
- r&eacute;f&eacute;rence utilisateur de FreeBSD</ulink> (traduction
- en Japonais). <ulink url="http://www.pc.mycom.co.jp/">Mainichi
- Communications Inc.</ulink>, 1998. ISBN4-8399-0088-4 P3800E.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Manuels d'administration</title>
-
- <itemizedlist>
- <listitem>
- <para>Albitz, Paul and Liu, Cricket. <emphasis>DNS and
- BIND</emphasis>, 2nd Ed. O'Reilly &amp; Associates, Inc., 1997.
- ISBN 1-56592-236-0</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- System Manager's Manual</emphasis>. O'Reilly &amp; Associates,
- Inc., 1994. ISBN 1-56592-080-5</para>
- </listitem>
-
- <listitem>
- <para>Costales, Brian, et al. <emphasis>Sendmail</emphasis>, 2nd Ed.
- O'Reilly &amp; Associates, Inc., 1997. ISBN 1-56592-222-0</para>
- </listitem>
-
- <listitem>
- <para>Frisch, &AElig;leen. <emphasis>Essential System
- Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates,
- Inc., 1995. ISBN 1-56592-127-5<footnote><para>N.d.T.: traduit en
- fran&ccedil;ais sous le titre &ldquo;Les bases essentielles de
- l'administration syst&egrave;me&rdquo;, chez le m&ecirc;me
- &eacute;diteur.</para></footnote></para>
- </listitem>
-
- <listitem>
- <para>Hunt, Craig. <emphasis>TCP/IP Network
- Administration</emphasis>. O'Reilly &amp; Associates, Inc., 1992.
- ISBN 0-937175-82-X<footnote><para>N.d.T.: traduit en
- fran&ccedil;ais sous le titre &ldquo;Administration r&eacute;seau
- TCP/IP&rdquo;, chez le m&ecirc;me
- &eacute;diteur.</para></footnote></para>
- </listitem>
-
- <listitem>
- <para>Nemeth, Evi. <emphasis>UNIX System Administration
- Handbook</emphasis>. 2nd Ed. Prentice Hall, 1995. ISBN
- 0131510517</para>
- </listitem>
-
- <listitem>
- <para>Stern, Hal <emphasis>Managing NFS and NIS</emphasis> O'Reilly
- &amp; Associates, Inc., 1991. ISBN 0-937175-75-7</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.jp.FreeBSD.ORG/">Jpman Project, Groupe
- d'utilisateurs japonais de FreeBSD</ulink>.
- <ulink url="http://www.pc.mycom.co.jp/FreeBSD/sam.html">Manuel de
- l'administrateur syst&egrave;me FreeBSD</ulink> (traduction
- en Japonais). <ulink url="http://www.pc.mycom.co.jp/">Mainichi
- Communications Inc.</ulink>, 1998. ISBN4-8399-0109-0 P3300E.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Manuels de programmation</title>
-
- <itemizedlist>
- <listitem>
- <para>Asente, Paul. <emphasis>X Window System Toolkit</emphasis>.
- Digital Press. ISBN 1-55558-051-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Reference Manual</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-078-3</para>
- </listitem>
-
- <listitem>
- <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
- Programmer's Supplementary Documents</emphasis>. O'Reilly &amp;
- Associates, Inc., 1994. ISBN 1-56592-079-1</para>
- </listitem>
-
- <listitem>
- <para>Harbison, Samuel P. and Steele, Guy L. Jr. <emphasis>C: A
- Reference Manual</emphasis>. 4rd ed. Prentice Hall, 1995.
- ISBN 0-13-326224-3</para>
- </listitem>
-
- <listitem>
- <para>Kernighan, Brian and Dennis M. Ritchie. <emphasis>The C
- Programming Language.</emphasis>. PTR Prentice Hall, 1988.
- ISBN 0-13-110362-9</para>
- </listitem>
-
- <listitem>
- <para>Lehey, Greg. <emphasis>Porting UNIX Software</emphasis>.
- O'Reilly &amp; Associates, Inc., 1995. ISBN 1-56592-126-7</para>
- </listitem>
-
- <listitem>
- <para>Plauger, P. J. <emphasis>The Standard C Library</emphasis>.
- Prentice Hall, 1992. ISBN 0-13-131509-9</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>Advanced Programming in the UNIX
- Environment</emphasis>. Reading, Mass. : Addison-Wesley, 1992
- ISBN 0-201-56317-7</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>UNIX Network
- Programming</emphasis>. 2nd Ed, PTR Prentice Hall, 1998. ISBN
- 0-13-490012-X</para>
- </listitem>
-
- <listitem>
- <para>Wells, Bill. &ldquo;Writing Serial Drivers for UNIX&rdquo;.
- <emphasis>Dr. Dobb's Journal</emphasis>. 19(15), December 1994.
- pp68-71, 97-99.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>&ldquo;Internes&rdquo; du syst&egrave;me d'exploitation</title>
-
- <itemizedlist>
- <listitem>
- <para>Andleigh, Prabhat K. <emphasis>UNIX System
- Architecture</emphasis>. Prentice-Hall, Inc., 1990. ISBN
- 0-13-949843-5</para>
- </listitem>
-
- <listitem>
- <para>Jolitz, William. &ldquo;Porting UNIX to the 386&rdquo;.
- <emphasis>Dr. Dobb's Journal</emphasis>. January 1991-July
- 1992.</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
- John Quarterman <emphasis>The Design and Implementation of the
- 4.3BSD UNIX Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1989. ISBN 0-201-06196-1</para>
- </listitem>
-
- <listitem>
- <para>Leffler, Samuel J., Marshall Kirk McKusick, <emphasis>The Design
- and Implementation of the 4.3BSD UNIX Operating System: Answer
- Book</emphasis>. Reading, Mass. : Addison-Wesley, 1991. ISBN
- 0-201-54629-9</para>
- </listitem>
-
- <listitem>
- <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
- John Quarterman. <emphasis>The Design and Implementation of the
- 4.4BSD Operating System</emphasis>. Reading, Mass. :
- Addison-Wesley, 1996. ISBN 0-201-54979-4</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 1:
- The Protocols</emphasis>. Reading, Mass. : Addison-Wesley,
- 1996. ISBN 0-201-63346-9</para>
- </listitem>
-
- <listitem>
- <para>Schimmel, Curt. <emphasis>Unix Systems for Modern
- Architectures</emphasis>. Reading, Mass. : Addison-Wesley, 1994.
- ISBN 0-201-63338-8</para>
- </listitem>
-
- <listitem>
- <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 3:
- TCP for Transactions, HTTP, NNTP and the UNIX Domain
- Protocols</emphasis>. Reading, Mass. : Addison-Wesley, 1996.
- ISBN 0-201-63495-3</para>
- </listitem>
-
- <listitem>
- <para>Vahalia, Uresh. <emphasis>UNIX Internals -- The New
- Frontiers</emphasis>. Prentice Hall, 1996. ISBN
- 0-13-101908-2</para>
- </listitem>
-
- <listitem>
- <para>Wright, Gary R. and W. Richard Stevens. <emphasis>TCP/IP
- Illustrated, Volume 2: The Implementation</emphasis>. Reading,
- Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Ouvrages de r&eacute;f&eacute;rence en mati&egrave;re de
- s&eacute;curit&eacute;</title>
-
- <itemizedlist>
- <listitem>
- <para>Cheswick, William R. and Steven M. Bellovin. <emphasis>Firewalls
- and Internet Security: Repelling the Wily Hacker</emphasis>.
- Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-63357-4</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson and Gene Spafford. <emphasis>Practical UNIX
- Security</emphasis>. 2nd Ed. O'Reilly &amp; Associates, Inc.,
- 1996. ISBN 1-56592-148-8</para>
- </listitem>
-
- <listitem>
- <para>Garfinkel, Simson. <emphasis>PGP Pretty Good
- Privacy</emphasis> O'Reilly &amp; Associates, Inc., 1995. ISBN
- 1-56592-098-8</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Ouvrages de r&eacute;f&eacute;rence sur le mat&eacute;riel</title>
-
- <itemizedlist>
- <listitem>
- <para>Anderson, Don and Tom Shanley. <emphasis>Pentium Processor
- System Architecture</emphasis>. 2nd Ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-40992-5</para>
- </listitem>
-
- <listitem>
- <para>Ferraro, Richard F. <emphasis>Programmer's Guide to the EGA,
- VGA, and Super VGA Cards</emphasis>. 3rd ed. Reading, Mass. :
- Addison-Wesley, 1995. ISBN 0-201-62490-7</para>
- </listitem>
-
- <listitem>
- <para>Intel Corporation publie la documentation de ses processeurs,
- circuits et standards sur son
- <ulink url="http://developer.intel.com/">site Web
- d&eacute;veloppeur</ulink>, habituellement sous forme de fichiers
- PDF.</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>80486 System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40994-1</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>ISA System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40996-8</para>
- </listitem>
-
- <listitem>
- <para>Shanley, Tom. <emphasis>PCI System Architecture</emphasis>.
- 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
- 0-201-40993-3</para>
- </listitem>
-
- <listitem>
- <para>Van Gilluwe, Frank. <emphasis>The Undocumented PC</emphasis>.
- Reading, Mass: Addison-Wesley Pub. Co., 1994. ISBN
- 0-201-62277-7</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Histoire d'Unix</title>
-
- <itemizedlist>
- <listitem>
- <para>Lion, John <emphasis>Lion's Commentary on UNIX, 6th Ed. With
- Source Code</emphasis>. ITP Media Group, 1996. ISBN
- 1573980137</para>
- </listitem>
-
- <listitem>
- <para>Raymond, Eric S. <emphasis>The New Hacker's Dictonary, 3rd
- edition</emphasis>. MIT Press, 1996. ISBN
- 0-262-68092-0. Connu aussi sous le nom de <ulink
- URL="http://www.ccil.org/jargon/jargon.html">Jargon
- File</ulink></para>
- </listitem>
-
- <listitem>
- <para>Salus, Peter H. <emphasis>A quarter century of UNIX</emphasis>.
- Addison-Wesley Publishing Company, Inc., 1994. ISBN
- 0-201-54777-5</para>
- </listitem>
-
- <listitem>
- <para>Simon Garfinkel, Daniel Weise, Steven Strassmann. <emphasis>The
- UNIX-HATERS Handbook</emphasis>. IDG Books Worldwide, Inc.,
- 1994. ISBN 1-56884-203-1</para>
- </listitem>
-
- <listitem>
- <para>Don Libes, Sandy Ressler <emphasis>Life with UNIX</emphasis>
- &mdash; special edition. Prentice-Hall, Inc., 1989. ISBN
- 0-13-536657-7</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD family tree</emphasis>. 1997. <ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree">ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree</ulink> ou <ulink URL="file:/usr/share/misc/bsd-family-tree">local</ulink> sur une machine sous FreeBSD-current.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>The BSD Release Announcements collection</emphasis>.
- 1997. <ulink
- URL="http://www.de.FreeBSD.ORG/de/ftp/releases/">http://www.de.FreeBSD.ORG/de/ftp/releases/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Networked Computer Science Technical Reports
- Library</emphasis>. <ulink
- URL="http://www.ncstrl.org/">http://www.ncstrl.org/</ulink></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Anciennes versions de BSD du Computer Systems Research
- Group (CSRG)</emphasis>.
- <ulink url="http://www.mckusick.com/csrg/">http://www.mckusick.com/csrg/</ulink>&nbsp;:
- Ces 4 CD-ROMs incluent toutes les versions de BSD de 1BSD &agrave;
- 4.4BSD et 4.4BSD-Lite2 (mais malheureusement pas 2.11BSD). De plus, le
- dernier CD-ROM contient les derniers sources et les fichiers
- SCCS.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Revues et journaux</title>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>The C/C++ Users Journal</emphasis>. R&amp;D
- Publications Inc. ISSN 1075-2838</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Sys Admin &mdash; The Journal for UNIX System
- Administrators</emphasis> Miller Freeman, Inc., ISSN
- 1061-2688</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/book.sgml b/fr_FR.ISO8859-1/books/handbook/book.sgml
deleted file mode 100644
index 85843bfdc6..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/book.sgml
+++ /dev/null
@@ -1,142 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
-<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
-%man;
-
-<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR">
-%urls;
-
-<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//FR">
-%bookinfo;
-
-<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR">
-%translators;
-
-<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
-<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors;
-<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists;
-<!ENTITY rel.current CDATA "2.2.8">
-<!-- We need the followings until the translation is completed -->
-<!ENTITY sgml.in-progress SYSTEM "in-progress.sgml">
-<!ENTITY sgml.todo SYSTEM "todo.sgml">
-]>
-
-<book lang="fr">
- <bookinfo>
- <title>Manuel FreeBSD</title>
-
- <authorgroup>
- <author>
- <surname>Groupe de Documentation de FreeBSD</surname>
- </author>
- </authorgroup>
-
- <copyright>
- <year>1999</year>
- <holder>Groupe de Documentation de FreeBSD</holder>
- </copyright>
-
- &bookinfo.legalnotice;
-
- <abstract>
- <para>Bienvenue &agrave; FreeBSD! Ce manuel d&eacute;crit l'installation
- et l'utilisation quotidienne de la <emphasis>Version &rel.current de
- FreeBSD</emphasis>. Ce manuel est en <emphasis>constante
- &eacute;volution</emphasis>. Il est le r&eacute;sultat du travail de
- nombreuses personnes. Certaines sections ne sont pas encore
- r&eacute;dig&eacute;es et celles qui le sont ont besoin d'&ecirc;tre
- mises &agrave; jour. Si vous voulez participer &agrave; ce projet,
- envoyez un courrier &eacute;lectronique &agrave; la &a.doc;. La
- derni&egrave;re version anglaise de ce document est disponible sur le
- <ulink url="http://www.FreeBSD.ORG/">serveur World Wide Web
- FreeBSD</ulink>. Il existe aussi une version texte,
- PostScript ou HTML t&eacute;l&eacute;chargeable depuis le
- <ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs">serveur FTP
- FreeBSD</ulink> ou l'un des nombreux <link linkend="mirrors-ftp">sites
- miroirs</link>. Vous pouvez aussi
- <ulink url="http://www.freeBSD.ORG/search/search.html">faire des
- recherches dans le Manuel</ulink>.</para>
- <para>N.d.T.: La version fran&ccedil;aise est publi&eacute;e sur le
- <ulink url="&url.base;">serveur World Wide Web du groupe de
- traduction en langue fran&ccedil;aise de la documentation de
- FreeBSD</ulink>.</para>
-
- <para>N.d.T.: Contactez la &a.fr-doc si vous voulez collaborer &agrave;
- la traduction.</para>
- <para>La traduction de ce manuel est &ldquo;en cours&rdquo;. Dans la
- table des mati&egrave;res ci-dessous:
- <itemizedlist>
- <listitem>
- <para>Les chapitres marqu&eacute;s de deux ast&eacute;risques sont
- en cours de traduction.</para>
- </listitem>
- <listitem>
- <para>Les chapitres marqu&eacute;s de trois ast&eacute;risques sont
- &agrave; traduire.</para>
- </listitem>
- <listitem>
- <para>L'ast&eacute;risque simple est r&eacute;serv&eacute; aux
- chapitres et sections en cours de r&eacute;daction dans la version
- U.S.</para>
- </listitem>
- </itemizedlist>
- </para>
- </abstract>
- </bookinfo>
- <part>
- <title>Pour commencer</title>
- &chap.introduction;
- &chap.install;
- &chap.basics;
- &chap.ports;
- </part>
- <part>
- <title>Administration Syst&egrave;me</title>
- &chap.kernelconfig;
- &chap.security;
- &chap.printing;
- &chap.disks;
- &chap.backups;
- &chap.quotas;
- &chap.x11;
- &chap.hw;
- &chap.l10n;
- </part>
- <part>
- <title>R&eacute;seau</title>
- &chap.serialcomms;
- &chap.ppp-and-slip;
- &chap.advanced-networking;
- &chap.mail;
- </part>
- <part><title>Questions avanc&eacute;es</title>
- &chap.cutting-edge;
- &chap.contrib;
- &chap.policies;
- &chap.kernelopts;
- &chap.kerneldebug;
- &chap.linuxemu;
- &chap.internals;
- </part>
- <part><title>Annexes</title>
- &chap.mirrors;
- &chap.bibliography;
- &chap.eresources;
- &chap.staff;
- &chap.pgpkeys;
- </part>
-</book>
-<!--
- mode: sgml
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/chapter.decl b/fr_FR.ISO8859-1/books/handbook/chapter.decl
deleted file mode 100644
index ce0a7ed16a..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/chapter.decl
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
diff --git a/fr_FR.ISO8859-1/books/handbook/chapters.ent b/fr_FR.ISO8859-1/books/handbook/chapters.ent
deleted file mode 100644
index d983d5ef52..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/chapters.ent
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
-
- 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
- chapter, and corresponds to the name of the directory in which that
- chapter's .sgml file is stored.
-
- Chapters should be listed in the order in which they are referenced.
--->
-
-<!-- Part one -->
-<!ENTITY chap.introduction SYSTEM "introduction/chapter.sgml">
-<!ENTITY chap.install SYSTEM "install/chapter.sgml">
-<!ENTITY chap.basics SYSTEM "basics/chapter.sgml">
-<!ENTITY chap.ports SYSTEM "ports/chapter.sgml">
-
-<!-- Part two -->
-<!ENTITY chap.kernelconfig SYSTEM "kernelconfig/chapter.sgml">
-<!ENTITY chap.security SYSTEM "security/chapter.sgml">
-<!ENTITY chap.printing SYSTEM "printing/chapter.sgml">
-<!ENTITY chap.disks SYSTEM "disks/chapter.sgml">
-<!ENTITY chap.backups SYSTEM "backups/chapter.sgml">
-<!ENTITY chap.quotas SYSTEM "quotas/chapter.sgml">
-<!ENTITY chap.x11 SYSTEM "x11/chapter.sgml">
-<!ENTITY chap.hw SYSTEM "hw/chapter.sgml">
-<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml">
-
-<!-- Part three -->
-<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml">
-<!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.sgml">
-<!ENTITY chap.advanced-networking SYSTEM "advanced-networking/chapter.sgml">
-<!ENTITY chap.mail SYSTEM "mail/chapter.sgml">
-
-<!-- Part four -->
-<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">
-<!ENTITY chap.contrib SYSTEM "contrib/chapter.sgml">
-<!ENTITY chap.policies SYSTEM "policies/chapter.sgml">
-<!ENTITY chap.kernelopts SYSTEM "kernelopts/chapter.sgml">
-<!ENTITY chap.kerneldebug SYSTEM "kerneldebug/chapter.sgml">
-<!ENTITY chap.linuxemu SYSTEM "linuxemu/chapter.sgml">
-<!ENTITY chap.internals SYSTEM "internals/chapter.sgml">
-
-<!-- Part five (appendices) -->
-<!ENTITY chap.mirrors SYSTEM "mirrors/chapter.sgml">
-<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml">
-<!ENTITY chap.eresources SYSTEM "eresources/chapter.sgml">
-<!ENTITY chap.staff SYSTEM "staff/chapter.sgml">
-<!ENTITY chap.pgpkeys SYSTEM "pgpkeys/chapter.sgml">
diff --git a/fr_FR.ISO8859-1/books/handbook/contrib/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/contrib/chapter.sgml
deleted file mode 100644
index 217bf94071..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/contrib/chapter.sgml
+++ /dev/null
@@ -1,5888 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="contrib"><title>Collaborer &agrave; FreeBSD</title>
- &trans.a.dntt;
-
- <para><emphasis> Contribution de &a.jkh;.</emphasis></para>
-
- <para>Alors, comme &ccedil;a vous voulez collaborer &agrave; FreeBSD ?
- C'est g&eacute;nial ! Toute aide peut toujours servir, et FreeBSD est
- un de ces syst&egrave;mes qui <emphasis>s'appuie</emphasis> sur les
- contributions de sa base d'utilisateurs pour survivre. Vos
- contributions ne sont pas seulement appr&eacute;ci&eacute;es, elles sont vitales
- pour la progression de FreeBSD !</para>
-
- <para>Contrairement &agrave; ce que certaines personnes et
- peut-&ecirc;tre vous-m&ecirc;me pouvez croire, vous n'avez pas &agrave; &ecirc;tre un
- expert programmeur ou un ami tr&egrave;s proche de l'&eacute;quipe principale
- de FreeBSD pour faire accepter votre contribution. Le
- d&eacute;veloppement du projet FreeBSD est fait par une grande et
- toujours plus nombreuse, &eacute;quipe de collaborateurs
- &agrave; travers le monde, dont les &acirc;ges et l'expertise techniques
- sont tr&egrave;s variables, et il y aura toujours plus de travail &agrave;
- faire que de gens qui peuvent le faire.</para>
-
- <para>Comme le projet FreeBSD est responsable de tout
- l'environnement du syst&egrave;me d'exploitation (et de son
- installation) et pas seulement juste du noyau ou de quelques
- utilitaires &eacute;parpill&eacute;s, notre liste <filename>TODO</filename>
- (&agrave; faire) s'&eacute;tend sur une large gamme de t&acirc;ches, depuis la
- documentation, les beta-test et pr&eacute;sentation jusqu'&agrave; des types de
- d&eacute;veloppement du noyau hautement sp&eacute;cialis&eacute;s.
- Quelque soit votre niveau de comp&eacute;tence, il y aura s&ucirc;rement
- quelque chose que vous pourrez faire pour aider le projet !</para>
-
- <para>Les entit&eacute;s commerciales engag&eacute;es dans des entreprises
- relatives &agrave; FreeBSD sont encourag&eacute;es &agrave; nous contacter. Vous
- avez besoin d'une extension sp&eacute;ciale pour faire marcher votre
- produit ? Vous nous trouverez attentifs &agrave; votre requ&ecirc;te, du
- moment que celle-ci ne soit pas trop hors-sujet. Vous
- travaillez sur un produit &agrave; valeur ajout&eacute;e ? Dites-le nous !
- Nous serons peut-&ecirc;tre capable de coop&eacute;rer sur certains aspects.
- Le monde du logiciel libre va &agrave; l'encontre de nombreuses
- suppositions sur la mani&egrave;re dont les logiciels sont
- d&eacute;velopp&eacute;s, vendus et maintenus durant son cycle de vie,
- et nous vous invitons &agrave; lui donner au moins un second regard.
- </para>
-
-
- <sect1>
- <title> Les besoins</title>
-
- <para>La liste de t&acirc;ches et de sous-projets qui suit, repr&eacute;sente
- une sorte d'amalgame des diff&eacute;rentes listes
- <filename>TODO</filename> de l'&eacute;quipe de base, et des demandes
- d'utilisateurs que nous avons regroup&eacute;s depuis ces derniers
- mois. Lorsque cela a &eacute;t&eacute; possible, nous avons rang&eacute;s ces
- t&acirc;ches par degr&eacute; d'urgence. Si vous &ecirc;tes interess&eacute; par le fait
- de travailler sur l'une des t&acirc;ches que vous voyez ici, envoyez
- un mail au coordinateur en cliquant sur leur nom. Si aucun
- coordinateur n'a &eacute;t&eacute; d&eacute;sign&eacute;, peut-&ecirc;tre voudriez-vous vous
- d&eacute;signer ?</para>
-
- <sect2>
- <title> T&acirc;ches de premi&egrave;re priorit&eacute;</title>
-
- <para>Les t&acirc;ches suivantes sont consid&eacute;r&eacute;es comme urgentes,
- g&eacute;n&eacute;ralement parce qu'elles repr&eacute;sentent
- quelque chose posant des probl&egrave;mes, ou parce qu'on en a
- d&eacute;sesp&eacute;rement besoin.</para>
-
- <orderedlist>
- <listitem>
- <para>d&eacute;marrage en 3 &eacute;tapes. coordination globale :
- &a.hackers;</para>
-
- <itemizedlist>
- <listitem>
- <para>Faire un marquage de disque compatible WinNT
- de telle sorte que la troisi&egrave;me &eacute;tape puisse fournir
- un mapping pr&eacute;cis de la g&eacute;om&eacute;trie BIOS pour les
- disques.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Probl&egrave;mes du syst&egrave;me de fichiers. Coordination
- globale : &a.fs;</para>
-
- <itemizedlist>
- <listitem>
- <para>Corriger le syst&egrave;me de fichiers MSDOS.</para>
- </listitem>
-
- <listitem>
- <para>Nettoyer et documenter le code du syst&egrave;me de
- fichier nullfs.
- Coordination : &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Corriger le syst&egrave;me de fichiers d'union.
- Coordination : &a.dg;</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Impl&eacute;menter le pilote de disque Int13 vm86.
- Coordination : &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>Nouvelle architecture bus.</para>
-<!-- Coordination : &a.newbus;</para> -->
-
- <itemizedlist>
- <listitem>
- <para>Porter les pilotes ISA existant vers la nouvelle
- architecture.</para>
- </listitem>
-
- <listitem>
- <para>D&eacute;placer tous le code de gestion d'interruption
- vers les parties appropri&eacute;es des pilotes de bus.</para>
- </listitem>
-
- <listitem>
- <para>Porter les sous-syst&egrave;me PCI &agrave; la nouvelle
- architecture.
- Coordination : &a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>Chercher la bonne mani&egrave;re pour manier les
- p&eacute;riph&eacute;riques extractibles, puis utiliser ceci comme
- base pour l'impl&eacute;mentation de support de PC-Card et
- CardBus.</para>
- </listitem>
-
- <listitem>
- <para>R&eacute;soudre une fois pour toute, le probl&egrave;me de
- priorit&eacute; de d&eacute;tection / attachement.</para>
- </listitem>
-
- <listitem>
- <para>D&eacute;placer tous les bus restants vers la nouvelle
- architecture.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Probl&egrave;mes relatifs au noyau.
- Coordination globale : &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>Ajouter une infrastructure pour une meilleure s&eacute;curit&eacute;
- pro-active.
- Coordination globale : &a.security;</para>
-
- <itemizedlist>
- <listitem>
- <para>Construire quelque chose comme Tripwire (TM) dans
- le noyau, avec une partie distante et une partie
- locale. Il y a un certain nombre de probl&egrave;mes
- de cryptographie &agrave; prendre en compte pour bien le
- r&eacute;aliser. Contacter le coodinateur pour plus de
- d&eacute;tails.
- Coordination : &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Faire de telle sorte que tout le noyau utilise
- <literal>suser()</literal> au lieu de comparer avec 0.
- Pour l'instant, on n'utilise que la moiti&eacute; de chaque.
- Coordination : &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>D&eacute;couper les niveaux de s&eacute;curit&eacute; en plusieurs
- parties, afin de permettre &agrave; un administrateur de jeter
- les privil&egrave;ges qu'il peut jeter. Mettre en place tous
- ces niveaux de s&eacute;curit&eacute; devra avoir malgr&egrave;s tout
- les m&ecirc;mes effets qu'actuellement.
- Coordination : &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Rendre possible le chargement de &ldquo;programmes
- autoris&eacute;s &agrave; utiliser BPF&rdquo; puis bloquer BPF
- pour qu'il ne puisse pas accepter d'autres programmes.
- Cela permettrait &agrave; BPF d'&ecirc;tre utilis&eacute; par exemple par
- DHCP, ceci sans permettre &agrave; un attaquant de prendre
- contr&ocirc;le du r&eacute;seau local.</para>
- </listitem>
-
- <listitem>
- <para>Mettre &agrave; jour les scripts de v&eacute;rification de
- s&eacute;curit&eacute;. Nous devrions au moins pouvoir r&eacute;cup&eacute;rer
- toutes les v&eacute;rifications d'autres d&eacute;riv&eacute;s BSD, et
- ajouter une v&eacute;rification qu'un syst&egrave;me ayant un
- niveau de s&eacute;curit&eacute; ainsi augment&eacute; puisse aussi avoir un
- t&eacute;moin raisonnable sur les parties concern&eacute;es.
- Coordination : &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Ajouter une infrastructure d'autorisation au
- noyau, afin de permettre diverses politiques
- d'autorisation. Une partie de ceci pourrait &ecirc;tre fait
- en modifiant <literal>suser()</literal>.
- Coordination : &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>Ajouter du code &agrave; la couche NFS afin que l'on ne
- puisse pas faire un <literal>chdir ("..")</literal> en
- dehors d'une partition NFS,
- Par exemple :
- <filename>/usr</filename> est une partition UFS avec
- la partition NFS <filename>/usr/src</filename> export&eacute;e.
- Il est &agrave; pr&eacute;sent possible d'utiliser le gestionnaire
- de fichier NFS pour <filename>/usr/src</filename> pour
- obtenir l'acc&egrave;s &agrave; <filename>/usr</filename>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
-
-
- <sect2>
- <title> T&acirc;ches de moyenne priorit&eacute;</title>
-
- <para>Les t&acirc;ches suivantes doivent &ecirc;tre effectu&eacute;es, mais
- sans urgence particuli&egrave;re :</para>
-
- <orderedlist>
- <listitem>
- <para>Support et gestion de configuration de tous les
- pilotes bas&eacute;s sur KLD.</para>
-
- <itemizedlist>
- <listitem>
- <para>Ecrire un gestionnaire de configuration (dans la
- troisi&egrave;me partie du d&eacute;marrage ?) qui d&eacute;tecterait votre
- mat&eacute;riel de mani&egrave;re propre, et garderait seulement les
- KLDs requis pour votre mat&eacute;riel, etc.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>PCMCIA/PCCARD.
- Coordination : &a.msmith; et &a.phk;</para>
-
- <itemizedlist>
- <listitem>
- <para>Documentation !</para>
- </listitem>
-
- <listitem>
- <para>Op&eacute;ration fiable du pilote pcic
- (besoin de test).</para>
- </listitem>
-
- <listitem>
- <para>Reconnaissance et prise en charge de
- <filename>sio.c</filename> (presque fait).</para>
- </listitem>
-
- <listitem>
- <para>>Reconnaissance et prise en charge de
- <filename>ed.c</filename> (presque fait).</para>
- </listitem>
-
- <listitem>
- <para>Reconnaissance et prise en charge de
- <filename>ep.c</filename> (presque fait).</para>
- </listitem>
-
- <listitem>
- <para>Reconnaissance et prise en charge du
- mode utilisateur (partiellement fait).</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Gestionnaire d'&eacute;nergie avanc&eacute;.
- Coordination : &a.msmith; et &a.phk;</para>
-
- <itemizedlist>
- <listitem>
- <para>sous-pilote APM (presque fait).</para>
- </listitem>
-
- <listitem>
- <para>sous-pilote de disques IDE/ATA
- (partiellement fait).</para>
- </listitem>
-
- <listitem>
- <para>sous-pilote syscons/pcvt.</para>
- </listitem>
-
- <listitem>
- <para>Int&eacute;gration avec les pilotes PCMCIA/PCCARD
- (suspendu / en cours).</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
-
-
- <sect2>
- <title>T&acirc;ches de moindre priorit&eacute;</title>
-
- <para>Les t&acirc;ches suivantes sont purement esth&egrave;tiques et
- repr&eacute;sentent un tel investissement qu'il semblerait
- qu'elles seront pas accomplie de sit&ocirc;t :</para>
-
- <para>Les premiers points sont de Terry Lambert
- <email>terry@lambert.org</email></para>
-
- <orderedlist>
- <listitem>
- <para>Chargeur serveur NetWare (pilote ODI en mode prot&eacute;g&eacute;)
- et sous-services pour autoriser l'utilisation de pilotes
- de cartes ODI avec des cartes r&eacute;seaux.
- M&ecirc;me chose avec les pilotes NDIS et les pilotes
- NetWare SCSI.</para>
- </listitem>
-
- <listitem>
- <para>Uni option "&eacute;volution syst&egrave;me" marchant sur des
- machines sous Linux et pas seulement sur des
- machines sous une version plus anciennes de FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>Multi-processeur sym&eacute;trique avec pr&eacute;emption du noyau (requiert
- une pr&eacute;emption du noyau).</para>
- </listitem>
-
- <listitem>
- <para>Un effort concert&eacute; sur les ordinateurs portables.
- Cela est en quelque sorte pris en charge en
- changeant les r&egrave;gles de passage PCMCIA
- et en traitant le gestionnaire d'&eacute;nergie.
- Mais il y a certaines choses comme la d&eacute;tection de
- l'affichage interne vs. externe et l'utilisation d'une
- r&eacute;solution d'&eacute;cran diff&eacute;rente en consid&eacute;rant ce fait,
- ne pas arr&ecirc;ter le disque si la machine est referm&eacute;e, et
- autoriser les cartes pour portable &agrave; disparaitre sans
- emp&ecirc;cher la machine de d&eacute;marrer (m&ecirc;me probl&egrave;me que pour le
- PCMIA).</para>
- </listitem>
- </orderedlist>
- </sect2>
-
-
-
- <sect2>
- <title>T&acirc;ches moins lourdes</title>
-
- <para>La plupart des t&acirc;ches cit&eacute;es dans la section
- pr&eacute;c&eacute;dente n&eacute;cessitent soit un investissement
- important en temps, soit une connaissance en
- profondeur du noyau (ou les deux).
- Quoiqu'il en soit, il y a de nombreuses
- t&acirc;ches utiles pour les
- &quot;programmeurs occasionnels&quot;, ou les
- personnes sans comp&eacute;tences en programmation.</para>
-
- <orderedlist>
- <listitem>
- <para>Si vous utilisez FreeBSD-current et que vous
- avez une bonne connexion Internet, il y a une machine
- <hostid role="fqdn">current.freebsd.org</hostid>
- qui construit une version compl&egrave;te tous les
- jours &mdash; &agrave; chaque fois, essayer et
- installer la derni&egrave;re version depuis ceci et
- reporter toutes les erreurs durant le processus.</para>
- </listitem>
-
- <listitem>
- <para>Lire les messages de la liste de diffusion
- <email>freebsd-bugs</email>.
- Il peut y avoir un probl&egrave;me que vous
- pouvez commenter de mani&egrave;re constructive ou alors
- des patches que vous pouvez tester.
- Vous pouvez aussi essayer de r&eacute;soudre un de ces
- probl&egrave;mes vous-m&ecirc;me.</para>
- </listitem>
-
- <listitem>
- <para>Lisez la FAQ et le manuel r&eacute;guli&egrave;rement,
- si quelque chose est mal expliqu&eacute;, pas &agrave; jour
- ou simplement compl&egrave;tement faux, dites le
- nous.
- Mieux, envoyez nous le correctif
- (SGML n'est pas difficile &agrave; apprendre,
- mais il n'y a pas d'objection &agrave; des soumissions
- au format ASCII).</para>
- </listitem>
-
- <listitem>
- <para>Aidez &agrave; traduire la documentation
- FreeBSD dans votre langue (si elle n'est
- pas d&eacute;j&agrave; disponible) &mdash; envoyez juste un
- courrier &eacute;lectronique &agrave; &a.doc; demandant si
- quelqu'un est en train d'y travailler.
- Notez que vous ne vous engagez pas
- &agrave; traduire chacun des documents FreeBSD ce faisant &mdash;
- en fait la documentation dont on a le plus souvent besoin
- est les instructions d'installation.</para>
- </listitem>
-
- <listitem>
- <para>
- Lire la liste de diffusion <email>freebsd-questions</email>.
- et les newsgroup <email>comp.unix.bsd.freebsd.misc</email> de
- temps en temps (ou m&ecirc;me r&eacute;guli&egrave;rement).
- Il peut &ecirc;tre tr&egrave;s satisfaisant de partager
- ses exp&eacute;rience et aider les gens &agrave; r&eacute;soudre
- leurs probl&egrave;mes; parfois, vous
- pouvez m&ecirc;me ainsi apprendre de nouvelles choses !
- Ces forums peuvent parfois &ecirc;tre une source d'id&eacute;es sur ce
- qu'il faut travailler.</para>
- </listitem>
-
- <listitem>
- <para>Si vous connaissez un correctif appliqu&eacute;
- avec succ&egrave;s &agrave; -current mais qui n'a pas &eacute;t&eacute;
- appliqu&eacute; &agrave; -stable apr&egrave;s un intervalle de temps
- raisonnable (normalement quelques
- semaines), envoyer aux collaborateurs un
- rappel poli.</para>
- </listitem>
-
- <listitem>
- <para>D&eacute;placer les logiciels de collaboration de
- <filename>src/contrib</filename> dans
- l'arborescence source.</para>
- </listitem>
-
- <listitem>
- <para>Assurez vous que le code dans
- <filename>src/contrib</filename>
- est &agrave; jour.</para>
- </listitem>
-
- <listitem>
- <para>Cherchez les bugs de l'an 2000
- (et corrigez ceux que vous trouvez !)</para>
- </listitem>
-
- <listitem>
- <para>Construire l'arbre des sources
- (ou une partie) avec les messages de tous les
- avertissements activ&eacute;s et faire de
- sorte &agrave; ce qu'il n'y ait plus ces
- avertissements.</para>
- </listitem>
-
- <listitem>
- <para>Corriger les avertissements pour les ports qui
- r&eacute;alisent des choses obsol&egrave;tes comme
- gets () ou les inclusions de malloc.h.</para>
- </listitem>
-
- <listitem>
- <para>Si vous avez collabor&eacute; &agrave; un des ports, envoyez vos
- correctifs &agrave; leurs auteurs originaux (cela leur facilitera
- la vie lors de la sortie de la prochaine version)</para>
- </listitem>
-
- <listitem>
- <para>Sugg&egrave;rez d'autres t&acirc;ches pour cette liste !</para>
- </listitem>
- </orderedlist>
- </sect2>
- </sect1>
-
-
-
- <sect1>
- <title>Comment participer</title>
-
- <para>Les contributions au syst&egrave;mes tombent
- g&eacute;n&eacute;rallement dans l'une de ces 6 cat&eacute;gories :</para>
-
- <sect2 id="contrib-general">
- <title>Rapports de bogues et commentaires g&eacute;n&eacute;raux</title>
-
- <para>Une id&eacute;e ou une suggestion d'inter&ecirc;t technique
- <emphasis>g&eacute;n&eacute;ral</emphasis> devrait &ecirc;tre envoy&eacute;e &agrave;
- &a.hackers;.
- les personnes interess&eacute;es par cela (et qu'un
- <emphasis>grand</emphasis> volume de courrier
- &eacute;lectronique ne d&eacute;range pas, devraient s'abonner &agrave;
- la liste de diffusion hackers en envoyant un
- courrier &eacute;lectronique &agrave; &a.majordomo;.
- Voir <link linkend="eresources-mail">les listes de
- diffusions lists</link> pour plus d'informations
- pour ceci et les autres listes de diffusions.</para>
-
- <para>Si vous trouvez un bug ou si vous
- soumettez un changement sp&eacute;cifique, enregistrez
- le en utilisant le programme <command>send-pr (1)</command>
- ou son <ulink
- URL="http://www.freebsd.org/send-pr.html">&eacute;quivalent
- web</ulink>.
- Essayez de remplir chaque champ de l'enregistrement de bug.
- A moins qu'ils ne d&eacute;passent 65KB, y inclure tous
- les correctifs directement dans l'enregistrement.
- Penser &agrave; les compresser et &agrave; utiliser
- <command>uuencode (1)</command>; s'ils
- d&eacute;passent 20KB.
- Charger les grosses soumissions vers <ulink
- url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming/">ftp.freebsd.org:/pub/FreeBSD/incoming/</ulink></para>
-
- <para>Apr&egrave;s avoir rempli la fiche d'enregistrement, vous devriez
- recevoir une confirmation avec un num&eacute;ro d'enregistrement.
- Gardez ce num&eacute;ro afin que vous puissiez nous soumettre plus de
- d&eacute;tails &agrave; propos du probl&egrave;me en envoyant un courrier
- &eacute;lectronique &agrave; <email>bug-followup@FreeBSD.ORG</email>.
- Utilisez le num&eacute;ro comme sujet du message, par exemple
- <literal>"Re: kern/3377"</literal>.
- Toute information suppl&eacute;mentaire sur
- un bug enregistr&eacute; devrait &ecirc;tre soumise de la m&ecirc;me
- mani&egrave;re.</para>
-
- <para>Si vous ne recevez aucune confirmation en un temps
- raisonnable (de 3 jours &agrave; une semaine suivant votre connexion
- pour le courrier) ou qu'il vous est, pour une raison quelconque,
- impossible d'utiliser la commande <command>send-pr (1)</command>, vous pouvez
- demander &agrave; quelqu'un de le faire pour vous en envoyant un
- courrier &eacute;lectronique &agrave; &a.bugs;.</para>
- </sect2>
-
- <sect2>
- <title>Modifications de la documentation</title>
-
- <para>Les modifications dans la documentation sont
- supervis&eacute;es par &a.doc;.
- Envoyez les soumissions et les modifications (m&ecirc;me les
- plus petites sont les bienvenus !) en utilisant
- la commande <command>send-pr</command>
- comme d&eacute;crit dans
- <link linkend="contrib-general">Soumission de bug
- et commentaires g&eacute;n&eacute;raux</link>.</para>
- </sect2>
-
- <sect2>
- <title>Modification dans le code source existant</title>
-
- <para>Un ajout ou modification dans le code source
- existant est une autre affaire, et d&eacute;pend beaucoup
- de votre version par rapport &agrave; l'&eacute;tat
- courant du d&eacute;veloppement de base de FreeBSD.
- Il y a une version sp&eacute;ciale du FreeBSD en cours
- de d&eacute;veloppement, connu sous le nom de
- &ldquo;FreeBSD-current&rdquo; qui est
- disponible de diverses mani&egrave;res pour le confort
- des d&eacute;veloppeurs qui travaillent activement sur
- le syst&egrave;me.
- Voir <link linkend="current">Etre &agrave; jour avec
- FreeBSD</link> pour plus d'informations sur
- la mani&egrave;re d'obtenir et d'utiliser
- FreeBSD-current.</para>
-
- <para>D&eacute;veloper avec des sources plus anciennes
- signifie que vos modifications peuvent parfois
- devenir trop obsol&egrave;te ou trop divergentes pour
- permettre une r&eacute;-int&eacute;gration dans FreeBSD.
- On peut limiter cela en souscrivant aux
- listes de diffusion &a.announce; et &a.current;
- o&ugrave; des discussions sur l'&eacute;tat
- courant du syst&egrave;me ont lieu.</para>
-
- <para>En supposant que vous pouvez vous arranger pour avoir de
- mani&egrave;re s&ucirc;re des sources &agrave; jour comme base pour vos
- modifications, l'&eacute;tape suivante consiste &agrave; produire
- un ensemble de diffs &agrave; envoyer &agrave; ceux qui sont charg&eacute;s
- de maintenir FreeBSD.
- Cela est fait par l'interm&eacute;diaire de la commande
- <command>diff (1)</command>, avec une pr&eacute;f&eacute;rence pour le formulaire
- &ldquo;contexte diff&rdquo;.
- Par exemple :</para>
-
- <para>
- <screen>&prompt.user;
- <userinput>diff -c oldfile newfile</userinput></screen>
-
- ou
-
- <screen>&prompt.user;
- <userinput>diff -c -r olddir newdir</userinput></screen>
-
- g&eacute;n&egrave;rera un ensemble de contexte diffs pour un fichier
- source ou une hi&eacute;rarchie de r&eacute;pertoires donn&eacute;.
- Voir les pages de manuel pour <command>diff (1)</command> pour plus de
- d&eacute;tails.</para>
-
- <para>Une fois que vous avez l'ensemble des diffs (que vous
- pouvez tester avec la commande <command>patch(1)</command>, vous devriez les
- soumettre pour qu'ils puissent &ecirc;tre inclus dans FreeBSD.
- Utilisez le programme <command>send-pr (1)</command> comme d&eacute;crit dans
- <link linkend="contrib-general">Rapport de bugs et commentaires
- g&eacute;n&eacute;raux</link>.
- <emphasis>Ne pas</emphasis> simplement envoyer les diffs &agrave;
- &a.hackers; ou ils seront perdus !
- Nous appr&eacute;cions beaucoup vos soumissions (c'est un
- projet fait par des volontaires !),
- mais parce que nous sommes tr&egrave;s occup&eacute;, nous ne
- pourrons pas les &eacute;tudier imm&eacute;diatement,
- mais cela restera dans la base de
- donn&eacute;es jusqu'&agrave; ce que nous le fassions.</para>
-
- <para>Si cela vous semble appropri&eacute; (par exemple si vous avez
- renomm&eacute; les fichiers), mettre vos modifications dans un fichier
- <command>tar</command> et lancer le programme <command>uuencode (1)</command>
- dessus. Les archives <command>shar</command> sont aussi les
- bienvenues.</para>
-
- <para>Si vos modifications sont potentiellement sensibles, par
- exemple si vous n'&ecirc;tes pas s&ucirc;r des probl&egrave;mes de copyright
- concernant sa distribution, ou si vous n'&ecirc;tes simplement pas
- pr&ecirc;t &agrave; le distribuer sans y avoir jet&eacute; un coup d'oeil, alors
- vous devriez l'envoyer directement &agrave; &a.core; plut&ocirc;t que de le
- soumettre avec <command>send-pr(1)</command>.
- La liste de diffusion principale atteint un petit
- groupe de personnes qui r&eacute;alise la
- plupart du travail quotidien de FreeBSD.
- Notez que ce groupe est aussi
- <emphasis>tr&egrave;s occup&eacute;</emphasis>, et donc que vous ne
- devriez leur envoyer un courrier &eacute;lectronique
- que lorsque cela est r&eacute;ellement n&eacute;cessaire.</para>
-
- <para>Se r&eacute;ferrer &agrave; <command>man 9 intro</command>
- et <command>man 9 style</command> pour plus
- d'informations sur la mani&egrave;re de coder.
- Nous appr&eacute;cierons le fait que vous soyez au moins au courant de cette
- information avant de nous soumettre du code.</para>
- </sect2>
-
-
- <sect2>
- <title>Nouveau code source ou logiciel &agrave; valeur ajout&eacute;e
- importante</title>
-
- <para>Dans les rares cas d'une collaboration
- importante, ou de l'addition d'une importante
- fonctionnalit&eacute; &agrave; FreeBSD, il devient presque n&eacute;cessaire
- d'envoyer les modification en les uuncodant dans
- des fichiers tar et en les chargeant sur notre
- site FTP <ulink
- URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming</ulink>.</para>
-
- <para>Lorsque l'on travaille avec un grand volume
- de code, le sujet sensible du copyright revient
- invariablement.
- Les copyrights acceptables pour le code inclu
- dans FreeBSD sont :</para>
-
- <orderedlist>
- <listitem>
- <para>Le copyright BSD. Ce copyright est le plus appr&eacute;ci&eacute;
- par son c&ocirc;t&eacute; &ldquo;sans attaches&rdquo; et son
- attractivit&eacute; g&eacute;n&eacute;rale pour les entreprises commerciales.
- Loin de d&eacute;courager un tel usage commercial, le
- projet FreeBSD encourage activement une telle
- participation avec inter&ecirc;ts commerciaux pour ceux
- qui seraient &eacute;ventuellement tent&eacute; d'investir
- quelque chose dans FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>La licence publique GNU, ou &ldquo;GPL&rdquo;.
- Cette licence n'est pas aussi populaire chez nous &agrave;
- cause du volume d'efforts suppl&eacute;mentaires demand&eacute;s
- &agrave; celui qui voudrait utiliser le code dans un
- but commercial.
- Mais &eacute;tant donn&eacute; la quantit&eacute; de code de code GPL dont
- nous avons actuellement besoin (compilateur,
- assembleur, formatteur de texte, etc),
- il serait absurde de refuser des
- collaborations sous cette licence.
- Le code sous GPL va dans une diff&eacute;rente partie de
- l'arborescence des r&eacute;pertoires :
- <filename>/sys/gnu</filename> ou
- <filename>/usr/src/gnu</filename>, et est de ce
- fait tr&egrave;s identifiable par quelqu'un dont la
- licence GNU poserait un probl&egrave;me.</para>
- </listitem>
- </orderedlist>
-
- <para>Les collaborations venant avec un autre
- type de copyright doivent
- &ecirc;tre soigneusement v&eacute;rifi&eacute; avant leur
- inclusion dans FreeBSD.
- Les contributions o&ugrave; des restrictions commerciales
- particuli&egrave;res s'appliquent sont g&eacute;n&eacute;ralement rejet&eacute;es.
- Les auteurs sont toujours encourag&eacute;s &agrave; mettre ces
- modifications disponibles par leur propre
- moyens.</para>
-
- <para>Pour mettre un copyright de &ldquo;style
- BSD&rdquo; sur votre travail, inclure le texte
- suivant au tout d&eacute;but de chaque code source que
- vous voulez prot&eacute;ger, en rempla&ccedil;ant le texte entre les
- <literal>%%</literal> par l'information appropri&eacute;e.</para>
-
- <programlisting>
-Copyright (c) %%annee%%
- %%votre_nom_ici%%, %%votre_ville%% %%votre_code_postal%%.
- Tous droits r&eacute;serv&eacute;s
-
- La redistribution et l'utilisation des sources et des
- formes binaires, avec ou sans modifications, sont
- autoris&eacute;es si les conditions suivantes soient r&eacute;unies :
-
-1. Les redistributions du code source doivent conserver
- la notification de copyright ci-dessus, cette liste
- de conditions et le d&eacute;menti suivant comme premi&egrave;res
- lignes de ce fichier, ceci non modifi&eacute;s.
-2. Les redistributions sous forme binaire doivent
- reproduire la notification de copyright ci-dessus,
- cette liste de conditions et le d&eacute;menti suivant
- en documentation et/ou sur les autres supports
- de la distribution.
-
- CE LOGICIEL EST FOURNI EN L'ETAT PAR ''%%VOTRE_NOM_ICI%%''
- ET TOUTES GARANTIES EXPRES OU IMPLICITES, Y COMPRIS,
- MAIS NON LIMITE A, LES GARANTIES IMPLICITES DE LA VALEUR
- MARCHANDE ET PHYSIQUE DANS UN BUT PARTICULIER
- SONT DEMENTIES.
- EN AUCUN CAS %%VOTRE_NOM_ICI%% SERA RESPONSABLE DES
- DOMMAGES DIRECTS, INDIRECTS, FORTUITS, SPECIAUX,
- EXEMPLAIRES, OU CONSECUTIFS (COMPRENANT, MAIS NON
- LIMITÉ A : REMPLACEMENT DES MARCHANDISES OU
- SERVICES; PERTE DE DONNEES, OU DE BENEFICES ;
- OU INTERRUPTION D'AFFAIRES) CAUSEE ET SUR TOUTE
- THEORIE DE RESPONSABILITE, SI DANS LE CONTRAT, LA
- RESPONSABILITE SANS FAUTE INTENTIONNELLE, OU TORT
- (NEGLIGENCE Y COMPRIS OU AUTRES) SURGISSANT EN CONSEQUENCE
- DE L'UTILISATION DE CE LOGICIEL, CECI, MÊME SI INFORME
- DE LA POSSIBILITE D'UN TEL DOMMAGE.
-
- &#36;Id&#36;</programlisting>
-
- <para>Pour votre convenance, une copie de ce texte
- peut &ecirc;tre trouv&eacute;e dans
- <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para>
- </sect2>
-
-
- <sect2>
- <title>Contribution financi&egrave;re, mat&eacute;riel
- ou acc&egrave;s Internet</title>
-
- <para>Nous sommes toujours tr&egrave;s heureux de
- recevoir des donations pour poursuivre la cause
- du projet FreeBSD, et dans un effort
- volontaire comme le n&ocirc;tre, un rien peut faire du chemin !
- Les donations de mat&eacute;riel sont &eacute;galement tr&egrave;s importantes
- pour augmenter notre liste de p&eacute;riph&eacute;riques support&eacute;s
- puisque nous manquons souvent de fonds pour acheter de tels
- &eacute;l&eacute;ments nous-m&ecirc;mes.</para>
-
- <sect3>
- <title><anchor id="donations">Donation de fonds</title>
-
- <para>Comme le projet FreeBSD n'est pas une corporation
- 501(c)(3) (charitable), et par cons&eacute;quent ne peut
- offrir des r&eacute;ductions fiscales, toute donation
- sera accept&eacute;e avec reconnaissance au nom du projet par
- FreeBSD, inc.</para>
-
- <para>FreeBSD, Inc. a &eacute;t&eacute; fond&eacute; au d&eacute;but de
- l'ann&eacute;e 1995 par &a.jkh; et &a.dg; avec le but de
- promouvoir les objectifs du projet de FreeBSD
- et de lui donner une pr&eacute;sence minimale de corporation.
- Tout fond donn&eacute; (ainsi que tous b&eacute;n&eacute;fices qui
- peuvent par la suite &ecirc;tre r&eacute;alis&eacute;s par
- FreeBSD, inc.) seront exclusivement employ&eacute;s &agrave;
- poursuivre les buts du projet.</para>
-
- <para>Tous les ch&egrave;ques doivent &ecirc;tre adress&eacute;s
- &agrave; l'ordre de FreeBSD, Inc. et envoy&eacute;s &agrave;
- l'adresse suivante :</para>
-
- <address>
- <otheraddr>FreeBSD, Inc.</otheraddr>
- <otheraddr>c/o Jordan Hubbard</otheraddr>
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>
- <state>CA</state>, <postcode>94520</postcode>
- </address>
-
- <para>(utilisant l'adresse de
- Walnut Creek CDROM en attendant qu'une boite
- postale puisse &ecirc;tre ouverte)</para>
-
- <para>Les transferts de fonds peuvent &ecirc;tre
- directement envoy&eacute;s &agrave; :</para>
-
- <address>
- <otheraddr>Bank Of America</otheraddr>
- <otheraddr>Concord Main Office</otheraddr>
- <pob>P.O. Box 37176</pob>
- <city>San Francisco</city>
- <state>CA</state>, <postcode>94137-5176</postcode>
-
- <otheraddr>Routage #: 121-000-358</otheraddr>
- <otheraddr>Compte #: 01411-07441 (FreeBSD, Inc.)</otheraddr>
- </address>
-
- <para>Toute correspondance &agrave; propos de dons, devrait &ecirc;tre
- envoy&eacute; directement &agrave; Jordan
- Hubbard <email>jkh@FreeBSD.org</email>,
- soit par courrier &eacute;lectronique, soit &agrave; l'adresse
- postale de FreeBSD, Inc. donn&eacute;e ci-dessus.</para>
-
- <para>Si vous ne voulez pas &ecirc;tre list&eacute;
- dans notre section <link
- linkend="donors">donateur</link> le sp&eacute;cifier
- lors de votre don, merci !</para>
- </sect3>
-
- <sect3>
- <title>Contribution mat&eacute;rielle</title>
-
- <para>La contribution en mat&eacute;riel tombant dans une
- des trois cat&eacute;gories suivantes sont joyeusement
- accept&eacute;es par le projet FreeBSD :</para>
-
- <itemizedlist>
- <listitem>
- <para>Le mat&eacute;riel &agrave; caract&egrave;re g&eacute;n&eacute;ral comme
- les disques, la m&eacute;moire ou des syst&egrave;mes
- complets doivent &ecirc;tre envoy&eacute;s &agrave; l'adresse
- de FreeBSD, Inc. donn&eacute;e dans la section
- <emphasis>donation de fonds</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Le mat&eacute;riel pour tests de compatibilit&eacute;
- en cours est appr&eacute;ci&eacute;.
- Nous sommes actuellement en train de rassembler un
- laboratoire de test pour tous les composants
- support&eacute;s par FreeBSD, ceci afin que
- des tests de regressions puissent &ecirc;tre effectu&eacute;s &agrave;
- chaque nouvelle version.
- Nous manquons actuellement d'importants
- composants (cartes &eacute;thernet, cartes m&egrave;re, etc)
- et si vous voulez faire un tel don, contactez
- &a.dg; pour des informations sur le
- mat&eacute;riel dont nous avons toujours besoin.</para>
- </listitem>
-
- <listitem>
- <para>Du mat&eacute;riel non support&eacute; actuellement
- par FreeBSD et que vous voudriez voir support&eacute;.
- Contactez &a.core; avant de nous envoyer ces
- articles car il faut que nous trouvons
- un d&eacute;veloppeur acceptant de se charger de cette
- t&acirc;che avant d'accepter ce nouveau mat&eacute;riel.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>Contribution d'acc&egrave;s Internet</title>
-
- <para>Nous pouvons toujours utiliser de
- nouveaux sites mirroirs pour les FTP,
- WWW ou <command>cvsup</command>.
- Si vous voulez devenir un tel mirroir, contactez les
- administrateurs du projet FreeBSD <email>admin@FreeBSD.ORG</email>
- pour plus d'informations.</para>
- </sect3>
- </sect2>
- </sect1>
-
-
-
-
- <sect1 id="donors">
- <title>Les donateurs</title>
-
- <para>Le projet FreeBSD est en dette envers les
- donateurs suivants et voudrait les remercier
- publiquement ici !</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Contributeurs au projet du
- serveur central :</emphasis></para>
-
- <para>Les personnes &agrave; titre priv&eacute; ou commercial
- suivantes ont rendu possible pour le projet
- FreeBSD de construire la machine serveur
- centrale pour &eacute;ventuellement remplacer <hostid
- role="fqdn">freefall.freebsd.org</hostid>
- en donnant les articles suivants :</para>
-
- <itemizedlist>
- <listitem>
- <para>Ade Barkah <email>mbarkah@freebsd.org</email> et son
- employeur, <ulink URL="http://www.hemi.com">Hemisphere
- Online</ulink>, ont donn&eacute; un
- <emphasis>Pentium Pro (P6) 200Mhz
- CPU</emphasis></para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.asacomputers.com">ASA
- Computers</ulink> ont donn&eacute;
- <emphasis>une carte m&egrave;re Tyan
- 1662</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Joe McGuckin <email>joe@via.net</email>
- de <ulink
- URL="http://www.via.net">ViaNet Communications</ulink>
- a donn&eacute; un <emphasis>contr&ocirc;leur ethernet
- Kingston.</emphasis></para>
- </listitem>
-
- <listitem>
- <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email>
- a donn&eacute; <emphasis>une carte
- contr&ocirc;leur NCR 53C875 SCSI</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Ulf Zimmermann <email>ulf@Alameda.net</email> de <ulink
- URL="http://www.Alameda.net">Alameda
- Networks</ulink> a donn&eacute; <emphasis>128MB
- de m&eacute;moire </emphasis>, un <emphasis>disque
- de 4 Gb et la valise.</emphasis></para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Fonds directs :</emphasis></para>
-
- <para>Les personnes suivantes ont g&eacute;n&eacute;reusement
- contribu&eacute; - &agrave; titre priv&eacute; ou commercial -
- directement aux fonds du projet :</para>
-
- <itemizedlist>
- <listitem>
- <para>Annelise Anderson
- <email>ANDRSN@HOOVER.STANFORD.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Dillon <email>dillon@best.net</email></para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.epilogue.com/">Epilogue Technology
- Corporation</ulink></para>
- </listitem>
-
- <listitem>
- <para>Sean Eric Fagan</para>
- </listitem>
-
- <listitem>
- <para>Don Scott Wilde</para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@masternet.it</email></para>
- </listitem>
-
- <listitem>
- <para>Josef C. Grosch <email>joeg@truenorth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Robert T. Morris</para>
- </listitem>
-
- <listitem>
- <para>Chuck Robey <email>chuckr@freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> de
- <ulink URL="http://www.imagescape.com">Imaginary Landscape,
- LLC.</ulink></para>
- </listitem>
-
- <listitem>
- <para>Dmitry S. Kohmanyuk <email>dk@dog.farm.org</email></para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.cdrom.co.jp/">Laser5</ulink>
- du Japon (une partie de leur b&eacute;n&eacute;fice de la vente
- de leurs diff&eacute;rents CD-ROM de FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.mmjp.or.jp/fuki/">Fuki
- Shuppan Publishing Co.</ulink> ont donn&eacute;
- une partie de leur b&eacute;n&eacute;fice sur <emphasis>Hajimete
- no FreeBSD</emphasis> (d&eacute;buter sous FreeBSD)
- aux projets FreeBSD et XFree86.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.ascii.co.jp/">ASCII
- Corp.</ulink> ont donn&eacute; une partie de leur
- b&eacute;n&eacute;fice de vente sur des produits sur FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.yokogawa.co.jp/">Yokogawa
- Electric Corp</ulink> ont g&eacute;n&eacute;reusement donn&eacute; des
- fonds significatifs au projet FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.buffnet.net/">BuffNET</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.pacificsolutions.com/">Pacific
- Solutions</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Contribution mat&eacute;rielle :</emphasis></para>
-
- <para>Les personnes suivantes &agrave; titre priv&eacute; ou
- commercial, ont g&eacute;n&eacute;reusement contribu&eacute; en
- mat&eacute;riel pour les tests et le
- d&eacute;veloppement/support des pilotes de
- p&eacute;riph&eacute;rique :</para>
-
- <itemizedlist>
- <listitem>
- <para>Walnut Creek CDROM pour avoir fourni
- le Pentium P5-90 et le 486/DX2-66 EISA/VL
- qui sont actuellement utilis&eacute;s pour notre
- travail de d&eacute;veloppement, cela sans parler
- de l'acc&egrave;s r&eacute;seau et d'autres dons
- de mat&eacute;riels.</para>
- </listitem>
-
- <listitem>
- <para>TRW Financial Systems, Inc. nous a
- fourni 130 PC, trois serveurs de fichiers
- 68 GB, douze Ethernets, deux routeurs et
- un commutateur ATM pour d&eacute;boguer un
- code sans disque.</para>
- </listitem>
-
- <listitem>
- <para>Dermot McDonnell a donn&eacute; un
- lecteur CDROM Toshiba XM3401B
- actuellement utilis&eacute; dans freefall.</para>
- </listitem>
-
- <listitem>
- <para>&a.chuck; a contribu&eacute; par son lecteur de
- bande pour le travail exp&eacute;rimental.</para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email>,
- and &a.wilko;, ont donn&eacute; des lecteurs de
- bandes Wangtek and Archive QIC-02 afin d'am&eacute;liorer
- les <devicename>wt</devicename> pilotes.</para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email>
- a contribu&eacute; par son lecteur de disquette
- 2.88 MB au projet.
- Cela augmentera la pression pour r&eacute;&eacute;crire le
- pilote du lecteur de disquette.<!-- smiley -->;-)</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.tekram.com">Tekram
- Technologies</ulink> a envoy&eacute; chacun de
- leur carte adapteur h&ocirc;te DC-390, DC-390U
- et DC-390F FAST and ULTRA SCSI pour
- les tests de regression des pilotes
- NCR et AMD avec leur cartes.
- Ils peuvent &ecirc;tre aussi acclam&eacute; pour avoir rendu leurs
- sources de pilotes disponibles sur les serveur
- FTP pour les syst&egrave;mes s'exploitation libres.<ulink
- URL="ftp://ftp.tekram.com/scsi/FreeBSD">ftp://ftp.tekram.com/scsi/FreeBSD</ulink>.</para>
- </listitem>
-
- <listitem>
- <para><email>Larry M. Augustin</email> ont
- contribu&eacute; non seulement avec une carte
- Symbios Sym8751S SCSI mais aussi par un ensemble de
- livres de donn&eacute;es, y compris la prochaine puce
- Sym53c895 chip avec support Ultra-2
- et LVD, et pour le dernier manuel de programmation
- avec des informations sur la mani&egrave;re d'utiliser
- s&ucirc;rement les fonctionnalit&eacute;s avanc&eacute;es de la derni&egrave;re puce
- Symbios SCSI chips. Merci beaucoup !</para>
- </listitem>
-
- <listitem>
- <para>Christoph Kukulies <email>kuku@freebsd.org</email>
- a donn&eacute; un lecteur CDROM FX120 12 vitesse
- Mitsumi pour le d&eacute;veloppement de pilote
- CDROM IDE.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Contributeurs sp&eacute;ciaux :</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink URL="http://www.cdrom.com">Walnut Creek CDROM</ulink>
- a donn&eacute; plus que nous pourrions le dire (voir le document de
- <link linkend="history">l'historique</link> pour plus de d&eacute;tails.
- En particulier, nous voudrions les remercier pour le mat&eacute;riel
- original utilis&eacute; pour <hostid
- role="fqdn">freefall.FreeBSD.ORG</hostid>, notre principale
- machine de d&eacute;veloppement, et pour <hostid
- role="fqdn">thud.FreeBSD.ORG</hostid>, une machine de
- test et de construction. Nous leur sommes aussi gr&eacute; pour
- le financement de plusieurs collaborateurs au fil des ann&eacute;es, et
- pour nous avoir fourni un acc&egrave;s illimit&eacute; &agrave; leur connexion T1
- &agrave; l'Internet.</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.interface-business.de">interface
- business GmbH, Dresden</ulink> qui ont patiemment
- support&eacute;s &a.joerg; qui a souvent pr&eacute;f&eacute;r&eacute; le travail FreeBSD
- au travail pour lequel il &eacute;tait pay&eacute;, et a utilis&eacute; leur
- (co&ucirc;teuse) connexion EUnet Internet lorsque sa connexion priv&eacute;e
- devenait trop lente pour tavailler d&eacute;cemment avec ...</para>
- </listitem>
-
- <listitem>
- <para><ulink URL="http://www.bsdi.com">Berkeley Software Design,
- Inc.</ulink> ont contribu&eacute; en donnant leur &eacute;mulateur
- DOS au reste du monde BSD, qui est utilis&eacute; dans la commande
- <emphasis>dosemu</emphasis>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-
- </sect1>
-
- <sect1>
- <title>Les anciens de l'&eacute;quipe principale</title>
-
- <para>Les personnes suivantes ont &eacute;t&eacute; membre de l'&eacute;quipe
- de base de FreeBSD durant la p&eacute;riode indiqu&eacute;e.
- Nous les remercions de leurs efforts pass&eacute;s au
- service du projet FreeBSD.</para>
-
- <para><emphasis>Dans un ordre chronologique brut :</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>Guido van Rooij (1995 - 1999)</para>
- </listitem>
-
- <listitem>
- <para>John Dyson (1993 - 1998)</para>
- </listitem>
-
- <listitem>
- <para>Nate Williams (1992 - 1996)</para>
- </listitem>
-
- <listitem>
- <para>Rod Grimes (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet (1993 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Paul Richards (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Scott Mace (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>J. T. Conklin (1992 - 1993)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-additional">
- <title>Collaborateurs des logiciels d&eacute;riv&eacute;s</title>
-
- <para>Ce logiciel d&eacute;rive originelement du 386BSD
- version 0.1 de William F. Jolitz.
- Ce logiciel a &eacute;t&eacute; essentiellement r&eacute;impl&eacute;ment&eacute; depuis
- la version 4.4BSD-Lite fourni par le Computer
- Science Research Group (CSRG) &agrave; l'universit&eacute; de
- Californie &agrave; Berkeley et des acad&eacute;mies
- collaboratices associ&eacute;es.</para>
-
- <para>Il ya aussi des portions de NetBSD et
- OpenBSD qui ont &eacute;t&eacute; int&eacute;gr&eacute;s dans le code FreeBSD,
- et nous voulons de ce fait remercier tous les
- collaborateurs de NetBSD et OpenBSD pour leur travail.</para>
-
- <para>(Dans l'order alphab&eacute;tique par le pr&eacute;nom) :</para>
-
- <itemizedlist>
- <listitem>
- <para>ABURAYA Ryushirou <email>rewsirow@ff.iij4u.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>AMAGAI Yoshiji <email>amagai@nue.org</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Bornstein <email>aaronb@j51.com</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Smith <email>aaron@tau.veritas.com</email></para>
- </listitem>
-
- <listitem>
- <para>Achim Patzner <email>ap@noses.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ada T Lim <email>ada@bsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Baran <email>badam@mw.mil.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam McDougall <email>mcdouga9@egr.msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Colley <email>aecolley@ois.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>adrian@ibmpcug.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Mariano <email>adrian@cam.cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Steinmann <email>ast@marabu.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian T. Filipi-Martin
- <email>atf3r@agate.cs.virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ajit Thyagarajan <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akio Morita
- <email>amorita@meadow.scphys.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akira SAWADA <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akira Watanabe
- <email>akira@myaw.ei.meisei-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akito Fujita <email>fujita@zoo.ncl.omron.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Alain Kalker
- <email>A.C.P.M.Kalker@student.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Alan Bawden <email>alan@curry.epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alan Cox <email>alc@cs.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Alec Wolman <email>wolman@cs.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Aled Morris <email>aledm@routers.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Alex <email>garbanzo@hooked.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alex D. Chen
- <email>dhchen@Canvas.dorm7.nccu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Alex G. Bulushev <email>bag@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Le Heux <email>alexlh@funk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Leidinger
- <email>netchild@wurzelausix.CS.Uni-SB.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Alexandre Snarskii <email>snar@paranoia.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alistair G. Crooks <email>agc@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Saddi <email>asaddi@philosophysw.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allen Campbell <email>allenc@verinet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amakawa Shuhei <email>amakawa@hoh.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Amancio Hasty <email>hasty@star-gate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amir Farah <email>amir@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amy Baron <email>amee@beer.org</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly A. Orehovsky <email>tolik@mpeks.tomsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly Vorobey <email>mellon@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Nordby <email>nickerne@nome.no</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Thulin <email>Anders.X.Thulin@telia.se</email></para>
- </listitem>
-
- <listitem>
- <para>Andras Olah <email>olah@cs.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Albsmeier
- <email>Andre.Albsmeier@mchp.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Oppermann <email>andre@pipeline.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Haakh <email>ah@alman.robin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Kohout <email>shanee@rabbit.augusta.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Lohr <email>andreas@marvin.RoBIN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wetzel <email>mickey@deadline.snafu.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wrede <email>andreas@planix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andres Vega Garcia <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Atrens <email>atreand@statcan.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gillham <email>gillham@andrews.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gordon <email>andrew.gordon@net-tel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew J. Korty <email>ajk@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Moore <email>alm@mclink.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew McRae <email>amcrae@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Stevenson <email>andrew@ugh.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Timonin <email>tim@pool1.convey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew V. Stesin <email>stesin@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Webster <email>awebster@dataradio.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Zakhvatov <email>andy@icc.surw.chel.su</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Farkas <email>andyf@speednet.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Whitcroft <email>andy@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Angelo Turetta <email>ATuretta@stylo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony C. Chavez <email>magus@xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony Yee-Hang Chan <email>yeehang@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Berezin <email>tobez@plab.ku.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Antti Kaipila <email>anttik@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Are Bryne <email>are.bryne@communique.no</email></para>
- </listitem>
-
- <listitem>
- <para>Ari Suutari <email>ari@suutari.iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Arjan de Vet <email>devet@IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Assar Westerlund <email>assar@sics.se</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Furuta <email>furuta@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Murai <email>amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Bierbauch <email>pivrnec@vszbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Hutchinson <email>benhutch@xfiles.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Jackson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Smithurst <email>ben@scientia.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Walter <email>bwalter@itachi.swcp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Benjamin Lewis <email>bhlewis@gte.net</email></para>
- </listitem>
-
- <listitem>
- <para>Bernd Rosauer <email>br@schiele-ct.de</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Kish <email>kish@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Trost <email>trost@cloud.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Blaz Zupan <email>blaz@amis.net</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Van Valzah <email>Bob@whitebarn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Willcox <email>bob@luke.pmr.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boris Staeblow <email>balu@dva.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Karp <email>karp@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Bradley Dunn <email>bradley@dunn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para>
- </listitem>
-
- <listitem>
- <para>&a.wlloyd</para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd Faulkner <email>faulkner@mpd.tandem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brent J. Nordquist <email>bjn@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Taylor
- <email>brett@peloton.physics.montana.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Campbell <email>brianc@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Clapper <email>bmc@willscreek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Cully <email>shmit@kublai.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian F. Feldman <email>green@unixhelp.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Handy
- <email>handy@lambic.space.lockheed.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Litzinger <email>brian@MediaCity.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian McGovern <email>bmcgover@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Moore <email>ziff@houdini.eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian R. Haug <email>haug@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Tao <email>taob@risc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brion Moss <email>brion@queeg.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce A. Mah <email>bmah@ca.sandia.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Albrecht <email>bruce@zuhause.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Gingery <email>bgingery@gtcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce J. Keeler <email>loodvrij@gridpoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Murphy <email>packrat@iinet.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Walter <email>walter@fortean.com</email></para>
- </listitem>
-
- <listitem>
- <para>Carey Jones <email>mcj@acquiesce.org</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Fongheiser <email>cmf@netins.net</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Mascott <email>cmascott@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Casper <email>casper@acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Castor Fu <email>castor@geocast.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cejka Rudolf <email>cejkar@dcse.fee.vutbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Chain Lee <email>chain@110.net</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Henrich <email>henrich@msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Mott <email>cmott@srv.net</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Owens <email>owensc@enc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chet Ramey <email>chet@odin.INS.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chia-liang Kao <email>clkao@CirX.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Chiharu Shibata <email>chi@bd.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Chip Norkus <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Choi Jun Ho <email>junker@jazz.snu.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Csanady <email>cc@tarsier.ca.sandia.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dabrowski <email>chris@vader.org</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dillon <email>cdillon@wolves.k12.mo.us</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Piazza <email>cpiazza@home.net</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Shenton
- <email>cshenton@angst.it.hq.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Stenton <email>jacs@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Timmons <email>skynyrd@opus.cts.cwu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Gusenbauer
- <email>cg@fimp01.fim.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Haury <email>Christian.Haury@sagem.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Weisgerber
- <email>naddy@bigeye.rhein-neckar.de</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph P. Kukulies <email>kuku@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Weber-Fahr
- <email>wefa@callcenter.systemhaus.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher T. Johnson
- <email>cjohnson@neunacht.netgsi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chrisy Luke <email>chrisy@flix.net</email></para>
- </listitem>
-
- <listitem>
- <para>Chuck Hein <email>chein@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Clive Lin <email>clive@CiRX.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Colman Reilly <email>careilly@tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Conrad Sabatier <email>conrads@neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Coranth Gryphon <email>gryphon@healer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cornelis van der Laan
- <email>nils@guru.ims.uni-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Cove Schneider <email>cove@brazil.nbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Leres <email>leres@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Loomis <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Metz <email>cmetz@inner.net</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Spannring <email>cts@internetcds.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Struble <email>cstruble@vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Cristian Ferretti <email>cfs@riemann.mat.puc.cl</email></para>
- </listitem>
-
- <listitem>
- <para>Curt Mayer <email>curt@toad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cy Schubert <email>cschuber@uumail.gov.bc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>DI. Christian Gusenbauer
- <email>cg@scotty.edvz.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Damian Hamill <email>damian@cablenet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Cross <email>tenser@spitfire.ecsel.psu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Lukes <email>dan@obluda.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Nelson <email>dnelson@emsphone.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Walters <email>hannibal@cyberstation.net</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Baker <email>dbaker@crash.ops.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel M. Eischen
- <email>deischen@iworks.InterWorks.org</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel O'Connor <email>doconnor@gsoft.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Rock <email>rock@cs.uni-sb.de</email></para>
- </listitem>
-
- <listitem>
- <para>Danny Egen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Danny J. Zerkel <email>dzerkel@phofarm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Darren Reed <email>avalon@coombs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Andersen <email>angio@aros.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Blizzard <email>dblizzar@sprynet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Bodenstab <email>imdave@synet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Chapeskie <email>dchapes@ddm.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Cornejo <email>dave@dogwood.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Edmondson <email>davided@sco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Glowacki <email>dglo@ssec.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Marquardt <email>marquard@austin.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Tweten <email>tweten@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Bader <email>dbader@umiacs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Borman <email>dab@bsdi.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@XFree86.org</email></para>
- </listitem>
-
- <listitem>
- <para>David Filo <email>filo@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Holland <email>dholland@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Holloway <email>daveh@gwythaint.tamis.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Horwitt <email>dhorwitt@ucsd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Hovemeyer <email>daveho@infocom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Jones <email>dej@qpoint.torfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Kelly <email>dkelly@tomcat1.tbe.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Kulp <email>dkulp@neomorphic.com</email></para>
- </listitem>
-
- <listitem>
- <para>David L. Nugent <email>davidn@blaze.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Leonard <email>d@scry.dstc.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Malone <email>dwmalone@maths.tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>David Muir Sharnoff <email>muir@idiom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David S. Miller <email>davem@jenolan.rutgers.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Wolfskill <email>dhw@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Gaudet <email>dgaudet@arctic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Huxley <email>dean@fsa.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Fortin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Dennis Glatting
- <email>dennis.glatting@software-munitions.com</email></para>
- </listitem>
-
- <listitem>
- <para>Denton Gentry <email>denny1@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>Derek Inksetter <email>derek@saidev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dima Sivachenko <email>dima@Chg.RU</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Keunecke <email>dk@panda.rhein-main.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Nehrling <email>nerle@pdv.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Khrustalev <email>dima@xyzzy.machaon.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Kohmanyuk <email>dk@farm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dom Mitchell <email>dom@myrddin.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Don Croyle <email>croyle@gelemna.ft-wayne.in.us</email></para>
- </listitem>
-
- <listitem>
- <para>&a.whiteside;</para>
- </listitem>
-
- <listitem>
- <para>Don Morrison <email>dmorrisn@u.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Don Yuniskis <email>dgy@rtd.com</email></para>
- </listitem>
-
- <listitem>
- <para>Donald Maddox <email>dmaddox@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Doug Barton <email>studded@dal.net</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Ambrisko <email>ambrisko@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Carmichael <email>dcarmich@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Crosher <email>dtc@scrooge.ee.swin.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Drew Derbyshire <email>ahd@kew.com</email></para>
- </listitem>
-
- <listitem>
- <para>Duncan Barclay <email>dmlb@ragnet.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Dustin Sallings <email>dustin@spy.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eckart "Isegrim" Hofmann
- <email>Isegrim@Wunder-Nett.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Gold
- <email>vegold01@starbase.spd.louisville.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Hudson <email>elh@p5.spnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Wang <email>edward@edcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Groothus <email>edwin@nwm.wan.philips.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eiji-usagi-MATSUmoto <email>usagi@clave.gr.jp</email></para>
- </listitem>
-
- <listitem>
- <para>ELISA Font Project</para>
- </listitem>
-
- <listitem>
- <para>Elmar Bartel
- <email>bartel@informatik.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eric A. Griff <email>eagriff@global2000.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Blood <email>eblood@cs.unr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Schwertfeger <email>eric@cybernut.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric L. Hernes <email>erich@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric P. Scott <email>eps@sirius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Sprinkle <email>eric@ennovatenetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Stefan Boleyn <email>erich@uruk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Erik E. Rantapaa <email>rantapaa@math.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Moe <email>ehm@cris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene M. Kim <email>astralblue@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene Radchenko <email>genie@qsar.chem.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Evan Champion <email>evanc@synapse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Faried Nawaz <email>fn@Hungry.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Flemming Jacobsen <email>fj@tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fong-Ching Liaw <email>fong@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Francis M J Hsieh <email>mjshieh@life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Bartels <email>knarf@camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Chen Hsiung Chan
- <email>frankch@waru.life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Durda IV <email>uhclem@nemesis.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Frank MacLachlan <email>fpm@n2.net</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Nobis <email>fn@Radio-do.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Volf <email>volf@oasis.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank ten Wolde <email>franky@pinewood.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank van der Linden <email>frank@fwi.uva.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Cawthorne <email>fcawth@jjarray.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Gilham <email>gilham@csl.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Templin <email>templin@erg.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frederick Earl Gray <email>fgray@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>FUJIMOTO Kensaku
- <email>fujimoto@oscar.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>FUJISHIMA Satsuki <email>k5@respo.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>FURUSAWA Kazuhisa
- <email>furusawa@com.cs.osakafu-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Kincses <email>gabor@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Zahemszky <email>zgabor@CoDe.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Garance A Drosehn <email>gad@eclipse.its.rpi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Gareth McCaughan <email>gjm11@dpmms.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary J. <email>garyj@rks32.pcs.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Kline <email>kline@thought.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gaspar Chilingarov <email>nightmar@lemming.acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Gea-Suan Lin <email>gsl@tpts4.seed.net.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Georg Wagner <email>georg.wagner@ubs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gerard Roudier <email>groudier@club-internet.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@giovannelli.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gil Kloepfer Jr. <email>gil@limbic.ssdl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gilad Rom <email>rom_glsa@ein-hashofet.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>Ginga Kawaguti
- <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Giles Lean <email>giles@nemeton.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Glen Foster <email>gfoster@gfoster.com</email></para>
- </listitem>
-
- <listitem>
- <para>Glenn Johnson <email>gljohns@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>Godmar Back <email>gback@facility.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Gord Matzigkeit <email>gord@enci.ucalgary.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Graham Wheeler <email>gram@cdsec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg A. Woods <email>woods@zeus.leitch.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ansley <email>gja@ansley.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Troxel <email>gdt@ir.bbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ungerer <email>gerg@stallion.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory Bond <email>gnb@itga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory D. Moncreaff
- <email>moncrg@bt340707.res.ray.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@netapp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Helmer <email>ghelmer@cs.iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>HAMADA Naoki <email>hamada@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>HONDA Yasuhiro
- <email>honda@kashio.info.mie-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hannu Savolainen <email>hannu@voxware.pp.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Huebner <email>hans@artcom.de</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Petter Bieker <email>zerium@webindex.no</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Zuidam <email>hans@brandinnovators.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harlan Stenn <email>Harlan.Stenn@pfcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harold Barker <email>hbarker@dsms.com</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Heikki Suonsivu <email>hsu@cs.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Heiko W. Rupp <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Helmut F. Wirth <email>hfwirth@ping.at</email></para>
- </listitem>
-
- <listitem>
- <para>Henrik Vestergaard Draboel
- <email>hvd@terry.ping.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideaki Ohmon <email>ohmon@tom.sfc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hidekazu Kuroki <email>hidekazu@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hideki Yamamoto <email>hyama@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hidetoshi Shimokawa
- <email>simokawa@sat.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hideyuki Suzuki
- <email>hideyuki@sat.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hirayama Issei <email>iss@mail.wbs.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroaki Sakai <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroharu Tamaru <email>tamaru@ap.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hironori Ikura <email>hikura@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroshi Nishikawa <email>nis@pluto.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroya Tsubakimoto <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroyuki NAKAJI
- <email>nakaji@zeisei3.dpri.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holm Tiffe <email>holm@geophysik.tu-freiberg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Horance Chou
- <email>horance@freedom.ie.cycu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Horihiro Kumagaio <email>kuma@jp.freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Horikawa Kazuo <email>k-horik@mail.yk.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hr.Ladavac <email>lada@ws2301.gud.siemens.co.at</email></para>
- </listitem>
-
- <listitem>
- <para>Hubert Feyrer <email>hubertf@NetBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh F. Mahon <email>hugh@nsmdserv.cnd.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh Mahon <email>h_mahon@fc.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hung-Chi Chu <email>hcchu@r350.ee.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>IMAI Takeshi <email>take-i@ceres.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IMAMURA Tomoaki
- <email>tomoak-i@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Dowse <email>iedowse@maths.tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Holland <email>ianh@tortuga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Struble <email>ian@broken.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Vaudrey <email>i.vaudrey@bigfoot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Khasilev <email>igor@jabber.paco.odessa.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Roshchin <email>str@giganda.komkon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Sviridov <email>siac@ua.net</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Vinokurov <email>igor@zynaps.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Ikuo Nakagawa <email>ikuo@isl.intec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ilya V. Komarov <email>mur@lynx.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Issei Suzuki <email>issei@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Itsuro Saito <email>saito@miv.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>J. Bryant <email>jbryant@argus.flash.net</email></para>
- </listitem>
-
- <listitem>
- <para>J. David Lowe <email>lowe@saturn5.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Han <email>hjh@best.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Hawk <email>jhawk@MIT.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>J.T. Jang <email>keith@email.gcn.net.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Jack <email>jack@zeus.xtalwind.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jacob Bohn Lorensen <email>jacob@jblhome.ping.mk</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jake Hamby <email>jehamby@lightside.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James D. Stewart <email>jds@c4systm.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Raynard
- <email>fhackers@jraynard.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>James T. Liu <email>jtliu@phlebas.rockefeller.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Conard
- <email>charly@fachschaften.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Koum <email>jkb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Janick Taillandier
- <email>Janick.Taillandier@ratp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Janusz Kokot <email>janek@gaja.ipan.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Jarle Greipsland <email>jarle@idt.unit.no</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Garman <email>init@risen.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Thorpe <email>thorpej@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Wright <email>jason@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Young
- <email>doogie@forbidden-donut.anet-stl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Javier Martin Rueda <email>jmrueda@diatel.upm.es</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jaye Mathisen <email>mrcpu@cdsnet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Bartig <email>jeffb@doit.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Forys <email>jeff@forys.cranbury.nj.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Kletsky <email>Jeff@Wagsky.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Evans <email>evans@scnc.k12.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Wheat <email>jeff@cetlink.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jens Schweikhardt
- <email>schweikh@ito.uni-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Allison <email>jallison@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chatfield <email>jdc@xinside.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Lea <email>reg@shale.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Prior <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Jeroen Ruigrok/Asmodai <email>asmodai@wxs.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse Rosenstock <email>jmr@ugcs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jian-Da Li <email>jdli@csie.nctu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Babb <email>babb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Binkley <email>jrb@cs.pdx.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Carroll <email>jim@carroll.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Flowers <email>jflowers@ezo.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Leppek <email>jleppek@harris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Lowe <email>james@cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mattson <email>jmattson@sonic.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mercer <email>jim@komodo.reptiles.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mock <email>jim@phrantic.phear.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jimbo Bahooli
- <email>griffin@blackhole.iceworld.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jin Guojun <email>jin@george.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Joachim Kuebart <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Joao Carlos Mendes Luis <email>jonny@jonny.eng.br</email></para>
- </listitem>
-
- <listitem>
- <para>Jochen Pohl <email>jpo.drs@sni.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joe "Marcus" Clarke <email>marcus@miami.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Abley <email>jabley@clear.co.nz</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Jih-Shian Lu <email>jslu@dns.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Orthoefer <email>j_orthoefer@tia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Traister <email>traister@mojozone.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Faedi <email>Joel.Faedi@esial.u-nancy.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Ray Holveck <email>joelh@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Sutton <email>sutton@aardvark.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Granlund <email>johan@granlund.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Karlsson <email>k@numeri.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Larsson <email>johan@moon.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johann Tonsing <email>jtonsing@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Helander <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Stille <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Baldwin <email>jobaldwi@vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Beckett <email>jbeckett@southern.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Beukema <email>jbeukema@hk.super.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Brezak <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Capo <email>jc@irbs.com</email></para>
- </listitem>
-
- <listitem>
- <para>John F. Woods <email>jfw@jfwhome.funhouse.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Goerzen
- <email>jgoerzen@alexanderwohl.complete.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Hay <email>jhay@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>John Heidemann <email>johnh@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Hood <email>cgull@owl.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Kohl <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Lind <email>john@starfire.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Mackin <email>john@physiol.su.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>John P <email>johnp@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Perry <email>perry@vishnu.alias.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Preisler <email>john@vapornet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Rochester <email>jr@cs.mun.ca</email></para>
- </listitem>
-
- <listitem>
- <para>John Sadler <email>john_sadler@alum.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Saunders <email>john@pacer.nlc.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>John W. DeBoskey <email>jwd@unx.sas.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Wehle <email>john@feith.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jon Morgan <email>morgan@terminus.trailblazer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan H N Chin <email>jc254@newton.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Hanna
- <email>jh@pc-21490.bc.rogers.wave.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge Goncalves <email>j@bug.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge M. Goncalves <email>ee96199@tom.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jos Backus <email>jbackus@plex.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Jose M. Alcaide <email>jose@we.lc.ehu.es</email></para>
- </listitem>
-
- <listitem>
- <para>Josef Grosch
- <email>jgrosch@superior.mooseriver.com</email></para>
- </listitem>
-
- <listitem>
- <para>Josef Karthauser <email>joe@uk.freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Stein <email>joes@seaport.net</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Gilliam <email>josh@quick.net</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Tiefenbach <email>josh@ican.net</email></para>
- </listitem>
-
- <listitem>
- <para>Juergen Lock <email>nox@jelal.hb.north.de</email></para>
- </listitem>
-
- <listitem>
- <para>Juha Inkari <email>inkari@cc.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Jukka A. Ukkonen <email>jua@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Assange <email>proff@suburbia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Coleman <email>j.d.coleman@ncl.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Julian H. Stacey <email>jhs@freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Jenkins <email>kaveman@magna.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Junichi Satoh <email>junichi@jp.freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junji SAKAI <email>sakai@jp.freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junya WATANABE <email>junya-w@remus.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>K.Higashino <email>a00303@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kai Vorma <email>vode@snakemail.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Kaleb S. Keithley <email>kaleb@ics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kaneda Hiloshi <email>vanitas@ma3.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kapil Chowksey <email>kchowksey@hss.hns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Denninger <email>karl@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kato Takenori
- <email>kato@eclogite.eps.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kauzo Horikawa <email>h-horik@yk.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kawanobe Koh <email>kawanobe@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kazuhiko Kiriyama <email>kiri@kiri.toba-cmt.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kazuo Horikawa <email>horikawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kees Jan Koster <email>kjk1@ukc.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@bostic.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith E. Walker <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Moore <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Sklower <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hornstein <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Key <email>key@cs.utk.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Mayer <email>kmayer@freegate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Saito <email>marukun@mx2.nisiq.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Tomita <email>tommyk@da2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Furge <email>kenneth.furge@us.endress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Monville <email>desmo@bandwidth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth R. Westerback <email>krw@tcn.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Stailey <email>kstailey@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Vander Velden <email>graphix@iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kentaro Inagaki <email>JBD01226@niftyserve.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Bracey <email>kbracey@art.acorn.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Day <email>toasty@dragondata.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml@nas.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Street <email>street@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Van Maren <email>vanmaren@fast.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kiroh HARADA <email>kiroh@kh.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Klein <email>kleink@layla.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus-J. Wolf <email>Yanestra@t-online.de</email></para>
- </listitem>
-
- <listitem>
- <para>Koichi Sato <email>copan@ppp.fastnet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kostya Lukin <email>lukin@okbmei.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Kouichi Hirabayashi <email>kh@mogami-wire.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt D. Zeilenga <email>Kurt@Boolean.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt Olsen <email>kurto@tiny.mcs.usu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>L. Jonas Olsson
- <email>ljo@ljo-slip.DIALIN.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Lars K&ouml;ller
- <email>Lars.Koeller@Uni-Bielefeld.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Laurence Lopez <email>lopez@mv.mv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lee Cremeans <email>lcremean@tidalwave.net</email></para>
- </listitem>
-
- <listitem>
- <para>Liang Tai-hwa
- <email>avatar@www.mmlab.cse.yzu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Lon Willett <email>lon%softt.uucp@math.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Louis A. Mamakos <email>louie@TransSys.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Louis Mamakos <email>loiue@TransSys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lucas James <email>Lucas.James@ldjpc.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Lyndon Nerenberg <email>lyndon@orthanc.com</email></para>
- </listitem>
-
- <listitem>
- <para>M.C. Wong <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>MANTANI Nobutaka <email>nobutaka@nobutaka.com</email></para>
- </listitem>
-
- <listitem>
- <para>MIHIRA Sanpei Yoshiro <email>sanpei@sanpei.org</email></para>
- </listitem>
-
- <listitem>
- <para>MITA Yoshio <email>mita@jp.FreeBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>MITSUNAGA Noriaki
- <email>mitchy@er.ams.eng.osaka-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Magnus Enbom <email>dot@tinto.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mahesh Neelakanta <email>mahesh@gcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto MATSUSHITA <email>matusita@jp.freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto WATANABE
- <email>watanabe@zlab.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Malte Lance <email>malte.lance@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>Manu Iyengar
- <email>iyengar@grunthos.pscwa.psca.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Ramirez <email>mrami@mramirez.sy.yale.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Slemko <email>marcs@znep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Kempen <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Marcel Moolenaar <email>marcel@scc.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Mario Sergio Fujikawa Ferreira
- <email>lioux@gns.com.br</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Andrews <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Cammidge <email>mark@gmtunx.ee.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Diekhans <email>markd@grizzly.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Huizer <email>xaa@stack.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark J. Taylor <email>mtaylor@cybernet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Krentel <email>krentel@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Mayo <email>markm@vmunix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Thompson <email>thompson@tgsoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Treacy <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Valentine <email>mark@linus.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Birgmeier</para>
- </listitem>
-
- <listitem>
- <para>Martin Ibert <email>mib@ppe.bb-data.de</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Kammerhofer <email>dada@sbox.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Martti Kuparinen
- <email>erakupa@kk.etx.ericsson.se</email></para>
- </listitem>
-
- <listitem>
- <para>Masachika ISHIZUKA
- <email>ishizuka@isis.min.ntt.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mas.TAKEMURA <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Masafumi NAKANE <email>max@wide.ad.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro Sekiguchi
- <email>seki@sysrap.cs.fujitsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanobu Saitoh <email>msaitoh@spa.is.uec.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kanaoka <email>kana@saijo.mke.mei.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kiriake <email>seiken@ncs.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masatoshi TAMURA
- <email>tamrin@shinzan.kuee.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mats Lofkvist <email>mal@algonet.se</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Bartley <email>mbartley@lear35.cytex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Thomas <email>matt@3am-software.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt White <email>mwhite+@CMU.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew C. Mead <email>mmead@Glock.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Cashdollar <email>mattc@rfcnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Flatt <email>mflatt@cs.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Fuller <email>fullermd@futuresouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew N. Dodd <email>winter@jurai.net</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Stein <email>matt@bdd.net</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Pfaller <email>leo@dachau.marco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Scheler <email>tron@netbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Gronlund
- <email>Mattias.Gronlund@sa.erisoft.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Pantzare <email>pantzer@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Maurice Castro
- <email>maurice@planet.serc.rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Max Euston <email>meuston@jmrodgers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Max Khon <email>fjoe@husky.iclub.nsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxim Bolotin <email>max@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Micha Class
- <email>michael_class@hpbbse.bbn.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butler <email>imb@scgt.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butschky <email>butsch@computi.erols.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Elbel <email>me@FreeBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hancock <email>michaelh@cet.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hohmuth <email>hohmuth@inf.tu-dresden.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Perlman <email>canuck@caam.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Petry <email>petry@netwolf.NetMasters.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Reifenberger <email>root@totum.plaut.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Michal Listos <email>mcl@Amnesiac.123.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michio Karl Jinbo
- <email>karl@marcer.nagaokaut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Miguel Angel Sagreras
- <email>msagre@cactus.fi.uba.ar</email></para>
- </listitem>
-
- <listitem>
- <para>Mihoko Tanaka <email>m_tonaka@pa.yokogawa.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mika Nystrom <email>mika@cs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Hybsch <email>micke@dynas.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Karpberg
- <email>karpen@ocean.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Del <email>repenting@hotmail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durian <email>durian@plutotech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike E. Matsnev <email>mike@azog.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Evans <email>mevans@candle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Grupenhoff <email>kashmir@umiacs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Hibler <email>mike@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Karels <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mike McGaughey <email>mmcg@cs.monash.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Meyer <email>mwm@shiva.the-park.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Mitchell <email>mitchell@ref.tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Murphy <email>mrm@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Peck <email>mike@binghamton.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Spengler <email>mks@msc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikhail A. Sokolov <email>mishania@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Mikhail Teterin <email>mi@aldan.ziplink.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ming-I Hseh <email>PA@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Mitsuru IWASAKI <email>iwasaki@pc.jaring.my</email></para>
- </listitem>
-
- <listitem>
- <para>Monte Mitzelfelt <email>monte@gonefishing.org</email></para>
- </listitem>
-
- <listitem>
- <para>Morgan Davis <email>root@io.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mostyn Lewis <email>mostyn@mrl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Motoyuki Konno <email>motoyuki@snipe.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Munechika Sumikawa <email>sumikawa@kame.net</email></para>
- </listitem>
-
- <listitem>
- <para>Murray Stokely <email>murray@cdrom.com</email></para>
- </listitem>
-
- <listitem>
- <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAJI Hiroyuki
- <email>nakaji@zeisei.dpri.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Kazushi <email>nkazushi@highway.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Motonori
- <email>motonori@econ.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NIIMI Satoshi <email>sa2c@and.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NOKUBI Hirotaka <email>h-nokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nadav Eiron <email>nadav@barcode.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>Nanbor Wang <email>nw1@cs.wustl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Naofumi Honda
- <email>honda@Kururu.math.sci.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Narvi <email>narvi@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Nathan Dorfman <email>nathan@rtfm.net</email></para>
- </listitem>
-
- <listitem>
- <para>Neal Fachan <email>kneel@ishiboo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Neil Blakey-Milner <email>nbm@rucus.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Niall Smart <email>rotel@indigo.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Barnes <email>Nick.Barnes@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Hilliard <email>nick@foobar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Sayer <email>nsayer@quack.kfu.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Williams <email>njw@cs.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nickolay N. Dudorov <email>nnd@itfs.nsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Niklas Hallqvist <email>niklas@filippa.appli.se</email></para>
- </listitem>
-
- <listitem>
- <para>Nisha Talagala <email>nisha@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ZW6T-KND@j.asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>adrian@virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>alex@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>anto@netscape.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bobson@egg.ics.nitch.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bovynf@awe.be</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>burg@is.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>chris@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>colsen@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>coredump@nervosa.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dannyman@arh0300.urh.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>davids@SECNET.COM</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>derek@free.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>devet@adv.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>djv@bedford.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dvv@sprint.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>enami@ba2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@eru.tubank.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@hway.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>fn@pain.csrv.uidaho.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gclarkii@netport.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gordon@sheaky.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>graaf@iae.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>greg@greg.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>grossman@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gusw@fub46.zedat.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hfir@math.rochester.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hnokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iaint@css.tuu.utas.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>invis@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ishisone@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iverson@lionheart.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>jpt@magic.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>junker@jazz.snu.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>k-sugyou@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kenji@reseau.toyonaka.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kfurge@worldnet.att.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lh@aus.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lhecking@nmrc.ucc.ie</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>mrgreen@mame.mu.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>nakagawa@jp.freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ohki@gssm.otsuka.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>owaki@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pechter@shell.monmouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pete@pelican.pelican.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pritc003@maroon.tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>risner@stdio.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>roman@rpd.univ.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@ns2.redline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@uglabgw.ug.cs.sunysb.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>stephen.ma@jtec.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>sumii@is.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>takas-su@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tamone@eig.unige.ch</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tjevans@raleigh.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tony-o@iij.ad.jp amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>torii@tcd.hitachi.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uenami@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uhlar@netlab.sk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>vode@hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlloyd@mpd.ca</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlr@furball.wellsfargo.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>yamagata@nwgpc.kek.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ziggy@ryan.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuhiro Yasutomi <email>nobu@psrc.isac.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuyuki Koganemaru
- <email>kogane@koganemaru.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Norio Suzuki <email>nosuzuki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Noritaka Ishizumi <email>graphite@jp.FreeBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Noriyuki Soda <email>soda@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Sharoiko <email>os@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Breuninger <email>ob@seicom.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Friedrichs <email>oliver@secnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Fromme
- <email>oliver.fromme@heim3.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Laumann
- <email>net@informatik.uni-bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Oberdorf <email>oly@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Olof Johansson <email>offe@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Osokin Sergey aka oZZ <email>ozz@freebsd.org.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paco Rosich <email>rosich@modico.eleinf.uv.es</email></para>
- </listitem>
-
- <listitem>
- <para>Palle Girgensohn <email>girgen@partitur.se</email></para>
- </listitem>
-
- <listitem>
- <para>Parag Patel <email>parag@cgt.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pascal Pederiva <email>pascal@zuo.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pasvorn Boonmark <email>boonmark@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Gardella <email>patrick@cre8tivegroup.com</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Hausen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Antonov <email>apg@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Paul F. Werkowski <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Fox <email>pgf@foxharp.boston.ma.us</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Koch <email>koch@thehub.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul S. LaFollette, Jr. <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Saab <email>paul@mu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Sandys <email>myj@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul T. Root <email>proot@horton.iaces.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Vixie <email>paul@vix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>paulo@isr.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>pm@dee.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro A M Vazquez <email>vazquez@IQM.Unicamp.BR</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro Giffuni <email>giffunip@asme.org</email></para>
- </listitem>
-
- <listitem>
- <para>Pete Bentley <email>pete@demon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Childs <email>pjchilds@imforei.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Cornelius <email>pc@inr.fzk.de</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Haight <email>peterh@prognet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Jeremy <email>perer.jeremy@alcatel.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter M. Chen <email>pmchen@eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Much <email>peter@citylink.dinoex.sub.org</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Olsson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Philipp <email>pjp@bsd-daemon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Stubbs <email>PETERS@staidan.qld.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Maker <email>pjm@cs.ntu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Taylor <email>phil@zipmail.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Philip Musumeci <email>philip@rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Pierre Y. Dampure <email>pierre.dampure@k2c.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Pius Fischer <email>pius@ienet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pomegranate <email>daver@flag.blackened.net</email></para>
- </listitem>
-
- <listitem>
- <para>Powerdog Industries
- <email>kevin.ruddy@powerdog.com</email></para>
- </listitem>
-
- <listitem>
- <para>R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>Rajesh Vaidheeswarran <email>rv@fore.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Randal S. Masutani <email>randal@comtest.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall Hopper <email>rhh@ct.picker.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall W. Dean <email>rwd@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Randy Bush <email>rbush@bainbridge.verio.net</email></para>
- </listitem>
-
- <listitem>
- <para>Reinier Bezuidenhout
- <email>rbezuide@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Remy Card <email>Remy.Card@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Ricardas Cepas <email>rch@richard.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Henderson <email>richard@atheist.tamu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Hwang <email>rhwang@bigpanda.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard J Kuhns <email>rjk@watson.grauel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard M. Neswold
- <email>rneswold@drmemory.fnal.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Seaman, Jr. <email>dick@tar.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Stallman <email>rms@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Straka <email>straka@user1.inficad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Tobin <email>richard@cogsci.ed.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wackerbarth <email>rkw@Dataplex.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Winkel <email>rich@math.missouri.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wiwatowski <email>rjwiwat@adelaide.on.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>rick@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Austein <email>sra@epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Mallory <email>rmallory@qualcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Snow <email>rsnow@txdirect.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Crowe <email>bob@speakez.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Eckardt
- <email>roberte@MEP.Ruhr-Uni-Bochum.de</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sanders <email>rsanders@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sexton <email>robert@kudra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Shady <email>rls@id.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Swindells <email>swindellsr@genrad.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Watson <email>robert@cyrus.watson.org</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Withrow <email>witr@rwwa.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Yoder <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Robin Carey
- <email>robin@mailgate.dtc.rankxerox.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Roger Hardiman <email>roger@cs.strath.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Roland Jesse <email>jesse@cs.uni-magdeburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Bickers <email>rbickers@intercenter.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Lenk <email>rlenk@widget.xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ronald Kuehn <email>kuehn@rz.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rudolf Cejka <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Belkin <email>rus@home2.UA.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Ermilov <email>ru@ucb.crimea.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Shevchenko <email>rssh@cam.grad.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Russell L. Carter <email>rcarter@pinyon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Russell Vincent <email>rv@groa.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Ryan Younce <email>ryany@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SAWADA Mizuki <email>miz@qb3.so-net.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>SURANYI Peter
- <email>suranyip@jks.is.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakari Jalovaara <email>sja@tekla.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Sam Hartman <email>hartmans@mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Lam <email>skl@ScalableNetwork.com</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Vesik <email>sander@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Sandro Sigala <email>ssigala@globalnet.it</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Blank <email>blank@fox.uni-trier.de</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Satoh Junichi <email>junichi@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Satoshi Taoka
- <email>taoka@infonets.hiroshima-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Scot Elliott <email>scot@poptart.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scot W. Hetzel <email>hetzels@westbend.net</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Kenney <email>saken@rmta.ml.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Blachowicz
- <email>scott.blachowicz@seaslug.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Hazen Mueller <email>scott@zorch.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Michel <email>scottm@cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sebastian Strollo <email>seb@erix.ericsson.se</email></para>
- </listitem>
-
- <listitem>
- <para>Seigou TANIMURA
- <email>tanimura@naklab.dnj.ynu.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Serge A. Babkin <email>babkin@hq.icb.chel.su</email></para>
- </listitem>
-
- <listitem>
- <para>Serge V. Vakulenko <email>vak@zebub.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei Chechetkin
- <email>csl@whale.sunbay.crimea.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei S. Laskavy <email>laskavy@pc759.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Gershtein <email>sg@mplik.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Potapov <email>sp@alkor.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Shkonda <email>serg@bcs.zp.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey V.Dorokhov <email>svd@kbtelecom.nalnet.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergio Lenzi <email>lenzi@bsi.com.br</email></para>
- </listitem>
-
- <listitem>
- <para>Shaun Courtney <email>shaun@emma.eng.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Shawn M. Carey <email>smcarey@mailbox.syr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Sheldon Hearn <email>axl@iafrica.com</email></para>
- </listitem>
-
- <listitem>
- <para>Shigio Yamaguchi <email>shigio@wafu.netgate.net</email></para>
- </listitem>
-
- <listitem>
- <para>Shunsuke Akiyama <email>akiyama@jp.freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Simon <email>simon@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Burge <email>simonb@telstra.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Marlow <email>simonm@dcs.gla.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Shapiro <email>shimon@simon-shapiro.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sin'ichiro MIYATANI <email>siu@phaseone.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Soochon Radee <email>slr@mitre.org</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dayton <email>csdayton@midway.uchicago.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dossing <email>sauber@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Soren S. Jorvang <email>soren@dt.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Bethke <email>stb@hanse.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Eggers <email>seggers@semyam.dinoco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Moeding <email>s.moeding@ndh.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Petri <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan `Sec` Zehl <email>sec@42.org</email></para>
- </listitem>
-
- <listitem>
- <para>Steinar Haug <email>sthaug@nethelp.no</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane E. Potvin <email>sepotvin@videotron.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane Legrand <email>stephane@lituus.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Clawson
- <email>sclawson@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen F. Combs <email>combssf@salem.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Farrell <email>stephen@farrell.org</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Hocking <email>sysseh@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen J. Roznowski <email>sjr@home.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Melvin <email>melvin@zytek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Bauer <email>sbauer@rock.sdsmt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Deering <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gerakines <email>steve2@genesis.tiac.net</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gericke <email>steveg@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Piette <email>steve@simon.chi.il.US</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Schwarz <email>schwarz@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven G. Kargl
- <email>kargl@troutmask.apl.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven H. Samorodin <email>samorodi@NUXI.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven McCanne <email>mccanne@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Plite <email>splite@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Wallace <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stuart Henderson
- <email>stuart@internationalschool.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Sue Blake <email>sue@welearn.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Sugiura Shiro <email>ssugiura@duo.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sujal Patel <email>smpatel@wam.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Sune Stjerneby <email>stjerneby@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>Suzuki Yoshiaki
- <email>zensyo@ann.tama.kawasaki.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tadashi Kumano <email>kumano@strl.nhk.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Taguchi Takeshi <email>taguchi@tohoku.iij.ad.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takahashi Yoshihiro <email>nyan@dd.catv.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takahiro Yugawa <email>yugawa@orleans.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takanori Watanabe
- <email>takawata@shidahara1.planet.sci.kobe-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Mega <email>mega@minz.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Uozu <email>j1594016@ed.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takayuki Ariga <email>a00821@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeru NAIKI <email>naiki@bfd.es.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Amaike <email>amaike@iri.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi MUTOH <email>mutoh@info.nara-k.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Ohashi
- <email>ohashi@mickey.ai.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi WATANABE
- <email>watanabe@crayon.earth.s.kobe-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takuya SHIOZAKI
- <email>tshiozak@makino.ise.chuo-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tatoku Ogaito <email>tacha@tera.fukui-med.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tatsumi HOSOKAWA <email>hosokawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Buswell <email>tbuswell@mediaone.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Faber <email>faber@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Lemon <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@lambert.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tetsuya Furukawa <email>tetsuya@secom-sis.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Theo de Raadt <email>deraadt@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas <email>thomas@mathematik.uni-Bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas D. Dean <email>tomdean@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas David Rivers <email>rivers@dignus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas G. McWilliams <email>tgm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Gellekum
- <email>thomas@ghpc8.ihf.rwth-aachen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Graichen
- <email>graichen@omega.physik.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas K&ouml;nig
- <email>Thomas.Koenig@ciw.uni-karlsruhe.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Ptacek <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Stromberg <email>tstrombe@rtci.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Valentino Crimi
- <email>tcrimi+@andrew.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Wintergerst <email>thomas@lemur.nord.de</email></para>
- </listitem>
-
- <listitem>
- <para>&THORN;&oacute;r&eth;ur &Iacute;varsson
- <email>totii@est.is</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Kientzle <email>kientzle@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Singletary
- <email>tsingle@sunland.gsfc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Wilkinson <email>tim@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Timo J. Rinne <email>tri@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Todd Miller <email>millert@openbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>root@majestix.cmr.no</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>tom@sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Gray - DCA <email>dcasba@rain.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Hukins <email>tom@eborcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Jobbins <email>tom@tom.tj</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Pusateri <email>pusateri@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Rush <email>tarush@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Samplonius <email>tom@misery.sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tomohiko Kurahashi
- <email>kura@melchior.q.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Kimball <email>alk@Think.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Li <email>tli@jnx.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Lynn <email>wing@cc.nsysu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Torbjorn Granlund <email>tege@matematik.su.se</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiko ARAI <email>toshi@tenchi.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiko SHIMOKAWA <email>toshi@tea.forus.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiro Kanda <email>candy@kgc.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshiomi Moriki
- <email>Toshiomi.Moriki@ma1.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Trefor S. <email>trefor@flevel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Trevor Blackwell <email>tlb@viaweb.com</email></para>
- </listitem>
-
- <listitem>
- <para>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ugo Paternostro <email>paterno@dsi.unifi.it</email></para>
- </listitem>
-
- <listitem>
- <para>Ulf Kieber <email>kieber@sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ulli Linzen <email>ulli@perceval.camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ustimenko Semen <email>semen@iclub.nsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Uwe Arndt <email>arndt@mailhost.uni-koblenz.de</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Chekan <email>vadim@gc.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Kolontsov <email>vadim@tversu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Mikhailov <email>mvp@braz.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Van Jacobson <email>van@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Vasily V. Grechishnikov
- <email>bazilio@ns1.ied-vorstu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vasim Valejev <email>vasim@uddias.diaspro.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vernon J. Schryver <email>vjs@mica.denver.sgi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vic Abell <email>abe@cc.purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ville Eerola <email>ve@sci.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Vincent Poy <email>vince@venus.gaianet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincenzo Capuano
- <email>VCAPUANO@vmprofs.esoc.esa.de</email></para>
- </listitem>
-
- <listitem>
- <para>Virgil Champlin <email>champlin@pa.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir A. Jakovenko
- <email>vovik@ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir Kushnir <email>kushn@mail.kar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vsevolod Lobko <email>seva@alex-ua.com</email></para>
- </listitem>
-
- <listitem>
- <para>W. Gerald Hicks <email>wghicks@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens <email>rstevens@noao.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt Howard <email>howard@ee.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wayne Scott <email>wscott@ichips.intel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Werner Griessl
- <email>werner@btp1da.phy.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wes Santee <email>wsantee@wsantee.oz.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wietse Venema <email>wietse@wzv.win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Wilfredo Sanchez <email>wsanchez@apple.com</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wilko Bulte <email>wilko@yedi.iaf.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Willem Jan Withagen <email>wjw@surf.IAE.nl</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>William Liao <email>william@tale.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wojtek Pilorz
- <email>wpilorz@celebris.bdk.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Helbig <email>helbig@ba-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Wu Ching-hong <email>woju@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Yarema <email>yds@ingress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Yaroslav Terletsky <email>ts@polynet.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Ying-Chieh Liao <email>ijliao@csie.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yixin Jin <email>yjin@rain.cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshiaki Uchikawa <email>yoshiaki@kt.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihiko OHTA <email>yohta@bres.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihisa NAKAGAWA
- <email>y-nakaga@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshikazu Goto <email>gotoh@ae.anritsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshimasa Ohnishi
- <email>ohnishi@isc.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshishige Arai <email>ryo2@on.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuichi MATSUTAKA <email>matutaka@osa.att.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yujiro MIYATA
- <email>miyata@bioele.nuee.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yukihiro Nakai <email>nacai@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Yusuke Nawano <email>azuki@azkey.org</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@cpcoup5.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@dutncp8.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Heilig <email>zach@gaffaneys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zahemszhky Gabor <email>zgabor@code.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Zhong Ming-Xun <email>zmx@mail.CDPA.nsysu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>arci <email>vega@sophia.inria.fr</email></para>
- </listitem>
-
- <listitem>
- <para>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>frf <email>frf@xocolatl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ege Rekk <email>aagero@aage.priv.no</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1>
- <title>Collaborateurs pour les correctif 386BSD</title>
-
- <para>(En ordre alphab&eacute;tique par pr&eacute;nom) :</para>
-
- <itemizedlist>
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>adrian@ibmpcug.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey A. Chernov <email>ache@astral.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore <email>alm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email>
- <email>jtk@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Branko Lankester</para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Rivers <email>rivers@ponds.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@physics.su.OZ.AU</email></para>
- </listitem>
-
- <listitem>
- <para>David Greenman <email>dg@Root.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Felix Gaehtgens
- <email>felix@escape.vsse.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Maclachlan <email>fpm@crash.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Guido van Rooij <email>guido@gvr.org</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@auspex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@novatel.cuc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ishii Masahiro, R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James W. Dolter</para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email> et al</para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Lohse
- <email>lohse@tech7.informatik.uni-hamburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Wunsch
- <email>joerg_wunsch@uriah.heep.sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>John Dyson</para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jordan K. Hubbard <email>jkh@whisker.hubbard.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Elischer <email>julian@dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Stacey <email>jhs@freebsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email>
- <email>karl@one.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@toe.CS.Berkeley.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hughes</para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml%rokkaku.UUCP@mathcs.emory.edu</email>
- <email>kml@mosquito.cis.ufl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email>
- <email>tinguely@hookie.cs.ndsu.NoDak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nate Williams <email>nate@bsd.coe.montana.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email>
- <email>nick@madhouse.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@cs.few.eur.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter da Silva <email>peter@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Poul-Henning Kamp<email>phk@FreeBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>root@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rodney W. Grimes <email>rgrimes@cdrom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sean Eric Fagan <email>sef@kithrup.com</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email>
- <email>sjg@zen.void.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@icarus.weber.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tor Egge <email>Tor.Egge@idi.ntnu.no</email></para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@dentaro.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
- </itemizedlist>
-
- </sect1>
-</chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
deleted file mode 100644
index f5a65e8559..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ /dev/null
@@ -1,2628 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter>
- <title>La derni&egrave;re mise &agrave; jour : FreeBSD-current et FreeBSD-stable</title>
- &trans.a.haby;
-
- <para>FreeBSD est d&eacute;velopp&eacute; sans interruption entre deux versions. Pour
- ceux qui veulent toujours &ecirc;tre &agrave; jour, il y a plusieurs m&eacute;canismes de
- synchronisation simples pour maintenir votre syst&egrave;me au niveau des plus
- r&eacute;cents d&eacute;veloppements. Soyez pr&eacute;venus: ce &ldquo;fil du rasoir&rdquo;
- n'est pas pour tout le monde! Ce chapitre vous aidera &agrave; d&eacute;cider si vous
- voulez suivre le d&eacute;veloppement au fil de l'eau, ou vous en tenir &agrave; l'une
- des versions publi&eacute;es.</para>
-
- <sect1 id="current">
- <title>Se synchroniser avec la version -current de FreeBSD</title>
-
- <para><emphasis>Contribution de &a.jkh;.</emphasis></para>
-
- <sect2>
- <title>Qu'est-ce que FreeBSD-current?</title>
-
- <para>FreeBSD-current n'est, litt&eacute;ralement, rien d'autre qu'un
- instantan&eacute; quotidien des sources de FreeBSD en cours de
- d&eacute;veloppement. Ce qui inclut des &eacute;volutions en cours, des
- modifications exp&eacute;rimentales et des m&eacute;canismes de transition,
- qui feront ou ne feront pas partie de la prochaine livraison
- officielle du logiciel. Bien que nombre d'entre nous compilent
- quotidiennement sur la base des sources de FreeBSD-current, il
- arrive que ceux-ci soit, pendant un temps, litt&eacute;ralement
- incompilables. Ces probl&egrave;mes sont g&eacute;n&eacute;ralement r&eacute;solus aussi
- rapidement que possible, mais que les sources de FreeBSD-current
- vous provoquent un d&eacute;sastre ou vous procurent une nouvelle
- fonctionnalit&eacute; que vous attendiez impatiemment peut parfois
- ne d&eacute;pendre que du moment dans la journ&eacute;e o&ugrave; vous les avez
- charg&eacute;s.</para>
-
- </sect2>
-
- <sect2>
- <title>Qui a besoin de FreeBSD-current?</title>
-
- <para>FreeBSD-current est essentiellement mis &agrave; disposition pour les
- besoins:</para>
-
- <orderedlist>
-
- <listitem>
- <para>Des membres du groupe FreeBSD qui travaillent sur une
- partie de l'arborescence des sources, et pour qui rester
- constamment &agrave; jour est une n&eacute;cessit&eacute; absolue.</para>
- </listitem>
-
- <listitem>
- <para>Des membres du groupe FreeBSD qui participent activement
- aux tests et sont dispos&eacute;s &agrave; passer du temps &agrave; &eacute;tudier les
- probl&egrave;mes pour garantir que FreeBSD-current reste aussi sain
- que possible. Il y a aussi ceux qui font des suggestions dans
- certains domaines sur les modifications &agrave; faire et la
- direction g&eacute;n&eacute;rale que prend FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>Des membres de la p&eacute;riph&eacute;rie du groupe FreeBSD (et
- quelques autres) qui veulent simplement garder un oeil
- sur les &eacute;volutions et se servir des derniers sources comme
- r&eacute;f&eacute;rence (e.g., pour les <emphasis>lire</emphasis> et non
- pour les utiliser). Ces personnes font parfois des remarques
- ou fournissent du code.</para>
- </listitem>
-
- </orderedlist>
-
- </sect2>
-
- <sect2>
- <title>Qu'est-ce que <emphasis>n'est pas</emphasis>
- FreeBSD-current?</title>
-
- <orderedlist>
-
- <listitem>
- <para>Un raccourci pour se procurer des pr&eacute;-versions parce que
- vous avez entendu dire qu'il y a de nouvelles fonctionnalit&eacute;s
- g&eacute;niales et voulez &ecirc;tre les premiers du coin &agrave; les
- avoir.</para>
- </listitem>
-
- <listitem>
- <para>Un moyen rapide d'avoir des corrections de bogues.</para>
- </listitem>
-
- <listitem>
- <para>Nous ne le &ldquo;supportons officiellement&rdquo; en
- aucun cas. Nous faisons du mieux que nous pouvons pour aider
- les personnes qui font vraiment partie des trois groupes
- d'utilisateurs &ldquo;l&eacute;gitimes&rdquo;, mais nous n'avons
- tout simplement <emphasis>pas le temps</emphasis> d'en fournir
- le support technique. Ce n'est pas parce que nous sommes des
- &ldquo;m&eacute;chants&rdquo; qui n'aimons pas aider les autres
- (nous ne ferions pas FreeBSD si tel &eacute;tait le cas), c'est
- parce que nous ne pouvons r&eacute;ellement pas r&eacute;pondre &agrave; 400
- messages tous les jours <emphasis>et</emphasis> en m&ecirc;me temps
- travailler sur FreeBSD. Je suis s&ucirc;r que, si vous aviez &agrave;
- choisir entre le fait que nous r&eacute;pondions &agrave; un tas de
- questions ou que nous continuions &agrave; am&eacute;liorer FreeBSD, la
- plupart d'entre vous pr&eacute;f&eacute;reraient la seconde
- alternative.</para>
- </listitem>
-
- </orderedlist>
-
- </sect2>
-
- <sect2>
- <title>Utiliser FreeBSD-current</title>
-
- <orderedlist>
-
- <listitem>
- <para>Inscrivez-vous sur la &a.current; et la &a.cvsall;. Ce
- n'est pas seulement une bonne id&eacute;e, c'est
- <emphasis>essentiel</emphasis>. Si vous n'&ecirc;tes pas sur la
- liste de diffusion de <emphasis>FreeBSD-current</emphasis>,
- vous ne verrez pas les commentaires qui sont faits sur l'&eacute;tat
- courant du syst&egrave;me et vous retrouverez probablement confront&eacute;s
- &agrave; de nombreux probl&egrave;mes que d'autres ont d&eacute;j&agrave; identifi&eacute;s et
- r&eacute;solus. Encore plus important, vous manqueriez des
- informations potentiellement critiques (e.g. &ldquo;Avis &agrave;
- tous, avant de recompiler <filename>/usr/src</filename>, vous
- <emphasis>devez</emphasis> recompiler le noyau, sans quoi
- votre syst&egrave;me s'&eacute;croulera de fa&ccedil;on terrible!&rdquo;). La
- liste de diffusion <emphasis>cvs-all</emphasis> vous permettra
- de voir les courriers de trace des soumissions de toutes les
- modifications d&egrave;s qu'elles sont faites et des informations
- pertinentes sur les effets de bord &eacute;ventuels. Pour vous
- inscrire sur ces listes, envoyez un courrier &eacute;lectronique &agrave;
- &a.majordomo; et pr&eacute;cisez:</para>
-
- <programlisting>
-subscribe freebsd-current
-subscribe cvs-all
- </programlisting>
-
- <para>dans le corps de votre message. Eventuellement, vous
- pouvez aussi y mettre <literal>help</literal> pour que
- Majordomo vous envoie des indications compl&egrave;tes sur la fa&ccedil;on
- de s'abonner et de se d&eacute;sabonner des autres listes que nous
- avons mises en place.</para>
- </listitem>
-
- <listitem>
- <para>R&eacute;cup&eacute;rez les sources sur
- <hostid role="fqdn">ftp.FreeBSD.ORG</hostid>. Il y a trois
- mani&egrave;res de le faire:</para>
-
- <orderedlist>
-
- <listitem>
- <para>Utilisez la fonctionnalit&eacute;
- <link linkend="ctm"><application>CTM</application></link>.
- A moins que vous n'ayez une bonne connexion TCP/IP bon
- march&eacute;, c'est la bonne fa&ccedil;on de proc&eacute;der.</para>
- </listitem>
-
- <listitem>
- <para>Utilisez le programme
- <link linkend="cvsup">cvsup</link> avec ce fichier
- <ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/standard-supfile">supfile</ulink>.
- C'est la m&eacute;thode recommand&eacute;e en second lieu, parce
- qu'elle vous permet de ne r&eacute;cup&eacute;rer la totalit&eacute; des
- sources que la premi&egrave;re fois et de n'avoir ensuite
- que les diff&eacute;rences. De nombreuses personnes ex&eacute;cutent
- <command>cvsup</command> depuis <command>cron</command>
- et maintiennent ainsi automatiquement &agrave; jour leurs
- sources.</para>
- </listitem>
-
- <listitem>
- <para>Utilisez <command>ftp</command>. L'arborescence des
- sources de FreeBSD-current est toujours
- &ldquo;export&eacute;e&rdquo; dans: <ulink
- url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current</ulink>.
- Nous employons aussi <command>wu-ftpd</command> qui permet
- de r&eacute;cup&eacute;rer sous forme d'archive compress&eacute;e un
- sous-r&eacute;pertoire complet. e.g., si vous voyez:</para>
-
- <informalexample>
- <screen>usr.bin/lex</screen>
- </informalexample>
-
- <para>vous pouvez taper:
-
- <informalexample>
- <screen><prompt>ftp&gt;</prompt> <userinput>cd usr.bin</userinput>
-<prompt>ftp&gt;</prompt> <userinput>get lex.tar.Z</userinput></screen>
- </informalexample>
-
- et il vous transmettra un fichier d'archive compress&eacute;e de
- tout le r&eacute;pertoire.</para>
- </listitem>
-
- </orderedlist>
-
- </listitem>
-
- <listitem>
- <para>S'il vous faut un acc&egrave;s rapide aux sources au fur et &agrave;
- mesure de vos besoins, et que vous n'avez pas de probl&egrave;me de
- bande passante, utilisez <command>cvsup</command> ou
- <command>ftp</command>. Sinon, employez
- <application>CTM</application>.</para>
- </listitem>
-
- <listitem>
- <para>Si vous r&eacute;cup&eacute;rez les sources pour compiler un syst&egrave;me
- op&eacute;rationnel, et pas simplement pour les lire, alors
- r&eacute;cup&eacute;rez <emphasis>tout</emphasis>
- <foreignphrase>-current</foreignphrase>, et non uniquement
- quelques morceaux choisis. Cela parce que diverses parties
- du source d&eacute;pendent de modifications effectu&eacute;es ailleurs, et
- si vous essayez de n'en compiler qu'une partie, il est
- quasiment certain que vous aurez des probl&egrave;mes.</para>
- </listitem>
-
- <listitem>
- <para>Avant de compiler <foreignphrase>-current</foreignphrase>,
- lisez attentivement le <filename>Makefile</filename> dans
- <filename>/usr/src</filename>. Vous devriez au moins lancer
- une premi&egrave;re fois un
- <link linkend="makeworld"><command>make world</command></link>
- int&eacute;gral, comme &eacute;tape n&eacute;cessaire &agrave; votre processus de mise &agrave;
- niveau. Lire la &a.current; vous tiendra au courant des
- autres proc&eacute;dures de transition qui sont parfois
- n&eacute;cessaires lorsque nous pr&eacute;parons la prochaine
- version.</para>
- </listitem>
-
- <listitem>
- <para>Participez. Si vous tournez sous FreeBSD-current, nous
- aimerions savoir ce que vous en pensez, tout particuli&egrave;rement
- si vous avez des am&eacute;liorations &agrave; nous sugg&eacute;rer ou des
- corrections de bogues &agrave; nous soummettre. Les suggestions
- accompagn&eacute;es de code sont accueillies avec
- enthousiasme!</para>
- </listitem>
-
- </orderedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="stable">
- <title>Se synchroniser avec la version -stable de FreeBSD</title>
-
- <para><emphasis>Contribution de &a.jkh;.</emphasis></para>
-
- <sect2>
- <title>Qu'est-ce que FreeBSD-stable?</title>
-
- <para>FreeBSD-stable est notre branche de d&eacute;veloppement pour les
- modifications moins os&eacute;es et plus conservatrices, destin&eacute;e &agrave; notre
- prochaine version d'exploitation. Les modifications exp&eacute;rimentales
- ou non test&eacute;es ne sont pas faites sur cette branche (pour cela,
- voyez <link linkend="current">FreeBSD-current</link>).</para>
-
- </sect2>
-
- <sect2>
- <title>Qui a besoin de FreeBSD-stable?</title>
-
- <para>Si vous &ecirc;tes un utilisateur commercial ou quelqu'un dont la
- principale pr&eacute;occupation est la stabilit&eacute; de son syst&egrave;me FreeBSD,
- vous devriez envisager de rester &agrave; jour sur la branche
- <emphasis>stable</emphasis>. C'est particuli&egrave;rement vrai si vous
- avez install&eacute; la version la plus r&eacute;cente
- (<ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/&rel.current;-RELEASE">&rel.current;-RELEASE</ulink> au moment o&ugrave; j'&eacute;cris ceci) car c'est sur la branche
- <emphasis>stable</emphasis> que sont effectivement faites les
- corrections de bogues relatives &agrave; la derni&egrave;re version
- publi&eacute;e.</para>
-
- <warning>
- <para>Nous essayons de garder l'arborescence
- <emphasis>-stable</emphasis> avant tout, int&eacute;gralement compilable
- et constamment stable, mais il nous arrive aussi de faire des
- erreurs (ce sont des sources encore en &eacute;volution dont les
- modifications sont transmises rapidement,
- apr&egrave;s tout). Nous faisons
- aussi de notre mieux pour tester exhaustivement les corrections
- dans <emphasis>-current</emphasis> avant de les int&eacute;grer &agrave; la
- branche <emphasis>-stable</emphasis>, mais nos tests ne couvrent
- parfois pas tous les cas de figure. Si quelque chose ne fonctionne
- pas chez vous avec <emphasis>-stable</emphasis>, faites-le nous
- s'il vous pla&icirc;t savoir <emphasis>imm&eacute;diatement!</emphasis> (voyez
- la section suivante).</para>
- </warning>
- </sect2>
-
- <sect2>
- <title>Utiliser FreeBSD-stable</title>
-
- <para>
- <orderedlist>
-
- <listitem>
- <para>Inscrivez-vous sur la &a.stable;. Vous serez tenu au
- courant des d&eacute;pendances de compilation qui peuvent intervenir
- dans la branche <emphasis>-stable</emphasis> et de toute autre
- question demandant une attention particuli&egrave;re. Les
- d&eacute;veloppeurs publient aussi leurs annonces sur cette liste
- lorsqu'ils envisagent une correction ou une modification
- controvers&eacute;e, pour donner la possibilit&eacute; aux utilisateurs
- de r&eacute;pondre s'ils ont des questions &agrave; soulever en rapport
- avec la modification propos&eacute;e. Pour vous abonner &agrave; cette
- liste, envoyez un courrier &eacute;lectronique &agrave; &a.majordomo;
- contenant:</para>
- <programlisting>
-subscribe freebsd-stable
- </programlisting>
- <para>dans le corps du message. Vous pouvez aussi
- mentionner:</para>
- <programlisting>
-help
- </programlisting>
- <para>et Majordomo vous enverra une aide compl&egrave;te sur la fa&ccedil;on
- de s'abonner et de se d&eacute;sabonner des autres listes de
- diffusion que nous avons mises en place.</para>
- </listitem>
-
- <listitem>
- <para>R&eacute;cup&eacute;rez les sources sur
- <hostid role="fqdn">ftp.FreeBSD.ORG</hostid>. Il y a trois
- fa&ccedil;ons de le faire:</para>
-
- <orderedlist>
-
- <listitem>
- <para>Utilisez la fonctionnalit&eacute;
- <link linkend="ctm"><application>CTM</application></link>.
- A moins que vous n'ayez une bonne connexion TCP/IP bon
- march&eacute;, c'est la bonne fa&ccedil;on de proc&eacute;der.</para>
- </listitem>
-
- <listitem>
- <para>Utilisez le programme
- <link linkend="cvsup">cvsup</link> avec ce fichier
- <ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current
-/src/share/examples/cvsup/stable-supfile">supfile</ulink>.
- C'est la m&eacute;thode recommand&eacute;e en second lieu, parce
- qu'elle vous permet de ne r&eacute;cup&eacute;rer la totalit&eacute; des
- sources que la premi&egrave;re fois et de n'avoir ensuite
- que les diff&eacute;rences. De nombreuses personnes ex&eacute;cutent
- <command>cvsup</command> depuis <command>cron</command>
- et maintiennent ainsi automatiquement &agrave; jour leurs
- sources.</para>
- </listitem>
-
- <listitem>
- <para>Utilisez <command>ftp</command>. L'arborescence des
- sources de FreeBSD-stable est toujours
- &ldquo;export&eacute;e&rdquo; dans: <ulink
- url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-stable">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-stable</ulink>.</para>
- <para>Nous employons aussi <command>wu-ftpd</command> qui
- permet de r&eacute;cup&eacute;rer sous forme d'archive compress&eacute;e un
- sous-r&eacute;pertoire complet. e.g., si vous voyez:</para>
-
- <informalexample>
- <screen>usr.bin/lex</screen>
- </informalexample>
-
- <para>vous pouvez taper:
-
- <informalexample>
- <screen><prompt>ftp&gt;</prompt> <userinput>cd usr.bin
-</userinput>
-<prompt>ftp&gt;</prompt> <userinput>get lex.tar.Z</userinput></screen>
- </informalexample>
-
- et il vous transmettra un fichier d'archive compress&eacute;e de
- tout le r&eacute;pertoire.</para>
- </listitem>
-
- </orderedlist>
-
- </listitem>
-
- <listitem>
- <para>S'il vous faut un acc&egrave;s rapide aux sources au fur et &agrave;
- mesure de vos besoins, et que vous n'avez pas de probl&egrave;me de
- bande passante, utilisez <command>cvsup</command> ou
- <command>ftp</command>. Sinon, employez
- <application>CTM</application>.</para>
- </listitem>
-
- <listitem>
- <para>Avant de compiler <foreignphrase>-stable</foreignphrase>,
- lisez attentivement le <filename>Makefile</filename> dans
- <filename>/usr/src</filename>. Vous devriez au moins lancer
- une premi&egrave;re fois un
- <link linkend="makeworld"><command>make world</command></link>
- int&eacute;gral, comme &eacute;tape n&eacute;cessaire &agrave; votre processus de mise &agrave;
- niveau. Lire la &a.stable; vous tiendra au courant des
- autres proc&eacute;dures de transition qui sont parfois
- n&eacute;cessaires lorsque nous pr&eacute;parons la prochaine
- version.</para>
- </listitem>
-
- </orderedlist>
-
- </para>
-
- </sect2>
- </sect1>
-
- <sect1 id="synching">
- <title>Synchroniser l'arborescence des sources par Internet</title>
-
- <para><emphasis>Contribution de &a.jkh;.</emphasis></para>
-
- <para>Il y a diff&eacute;rentes fa&ccedil;ons d'utiliser une connexion Internet
- (ou le courrier &eacute;lectronique) pour garder &agrave; jour ses sources d'un
- domaine donn&eacute;, ou de l'ensemble, du projet FreeBSD, selon ce qui
- vous int&eacute;resse. Les principaux services que nous fournissons sont
- <link linkend="anoncvs">CVS anonyme</link>,
- <link linkend="cvsup">CVSup</link> et
- <link linkend="ctm">CTM</link>.</para>
-
- <para><application>CVS anonyme</application> et
- <application>CVSup</application> utilisent une m&eacute;thode de mise &agrave;
- jour pilot&eacute;e par le client&nbsp;-&nbsp;<foreignphrase><emphasis>pull</emphasis></foreignphrase>.
- Dans le cas de <application>CVSup</application>, l'utilisateur
- (ou une proc&eacute;dure <command>cron</command>) appelle le
- programme <command>cvsup</command>, qui interagit avec un serveur
- <command>cvsupd</command> ailleurs, pour mettre &agrave; jour ses fichiers.
- Vous recevez les mises &agrave; jour dans leur &eacute;tat courant, et vous ne les
- recevez uniquement que quand vous les voulez. Il est facile de
- limiter ces mises &agrave; jour aux fichiers ou r&eacute;pertoires particuliers qui
- vous int&eacute;ressent. Les mises &agrave; jour sont g&eacute;n&eacute;r&eacute;es &agrave; la vol&eacute;e par le
- serveur, selon ce que vous avez d&eacute;j&agrave;, et ce que vous voulez.
- <application>CVS anonyme</application> est un peu plus simpliste que
- <application>CVSup</application>, car ce n'est qu'une extension de
- <application>CVS</application> qui permet de r&eacute;cup&eacute;rer des
- modifications directement d'une archive CVS distante. Pour cela,
- <application>CVSup</application> est beaucoup plus efficace, mais
- <application>CVS anonyme</application> est plus facile &agrave;
- utiliser.</para>
-
- <para><application>CTM</application>, &agrave; l'inverse, ne compare pas
- interactivement les sources dont vous disposez et ceux qui sont
- sur l'archive de r&eacute;f&eacute;rence. Au lieu de cela, une proc&eacute;dure qui
- identifie les modifications intervenues depuis qu'elle a &eacute;t&eacute; ex&eacute;cut&eacute;e
- pour la derni&egrave;re fois, est lanc&eacute;e plusieurs fois par jour sur
- l'archive de r&eacute;f&eacute;rence, les modifications d&eacute;tect&eacute;es sont compress&eacute;es,
- affect&eacute;es d'un num&eacute;ro de s&eacute;quence et encod&eacute;es pour pouvoir &ecirc;tre
- envoy&eacute;es par courrier &eacute;lectronique (ASCII imprimable uniquement).
- Une fois re&ccedil;ues, ces &ldquo;deltas CTM&rdquo; peuvent &ecirc;tre pass&eacute;s
- &agrave; l'utilitaire
- <citerefentry><refentrytitle>ctm_rmail</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- qui les d&eacute;codera, les contr&ocirc;lera et appliquera les modifications &agrave;
- l'exemplaire des sources de l'utilisateur. Cette m&eacute;thode est beaucoup
- plus efficace que <application>CVSup</application> et consomme
- beaucoup moins de ressources de notre serveur, parce que c'est un
- mod&egrave;le pilot&eacute; par le
- serveur&nbsp;-&nbsp;<foreignphrase><emphasis>push</emphasis></foreignphrase>&nbsp;-&nbsp;plut&ocirc;t que
- par l'utilisateur&nbsp;-&nbsp;<foreignphrase><emphasis>pull</emphasis></foreignphrase>.</para>
-
- <para>Il y a quelques contre-parties, bien s&ucirc;r. Si vous effacez par
- inadvertance des parties de votre archive,
- <application>CVSup</application> s'en apercevra et vous reconstruira
- les parties ab&icirc;m&eacute;es. <application>CTM</application> ne le fera pas,
- et si vous effacez des parties de l'arborescence des sources (et
- n'avez pas fait de sauvegarde), vous devrez repartir de z&eacute;ro (&agrave; partir
- du plus r&eacute;cent &ldquo;delta de base&rdquo; sous CVS) et tout
- reconstituer avec CTM ou, avec CVS anonyme, effacer les parties
- endommag&eacute;es et resynchroniser.</para>
-
- <para>Pour plus d'informations sur
- <application>CVS anonyme</application>, <application>CTM</application>
- et <application>CVSup</application>, reportez-vous s'il vous pla&icirc;t &agrave;
- l'une des sections qui suivent.</para>
-
- <sect2 id="anoncvs">
- <title>CVS Anonyme</title>
-
- <para><emphasis>Contribution de &a.jkh;</emphasis></para>
-
- <sect3>
- <title><anchor id="anoncvs-intro">Introduction</title>
-
- <para>CVS anonyme (ou, comme on l'appelle aussi,
- <emphasis>anoncvs</emphasis>) est une des fonctionnalit&eacute;s des
- utilitaires CVS livr&eacute;s avec FreeBSD qui permet la synchronisation
- avec une archive CVS sur une machine distante. Elle permet, entre
- autres, aux utilisateurs de FreeBSD, de lire, sans autorisation
- particuli&egrave;re, les archives disponibles sur l'un des serveurs
- <foreignphrase>anoncvs</foreignphrase> officiels du projet FreeBSD.
- Pour l'utiliser, il suffit simplement de d&eacute;finir la variable
- d'environnement <envar>CVSROOT</envar> pour qu'elle pointe sur le
- serveur <foreignphrase>anoncvs</foreignphrase> voulu, et d'employer
- ensuite la commande
- <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
- pour y acc&eacute;der de la m&ecirc;me mani&egrave;re qu'&agrave; une archive locale.</para>
-
- <para> Bien que l'on puisse aussi dire que les services <link
- linkend="cvsup">CVSup</link> et <emphasis>anoncvs</emphasis>
- aient essentiellement la m&ecirc;me fonction, il y a des nuances diverses
- qui peuvent influencer l'utilisateur dans son choix d'une m&eacute;thode
- de synchronisation. En r&eacute;sum&eacute;, <application>CVSup</application>
- utilise beaucoup plus efficacement les ressources r&eacute;seau et est de
- loin la m&eacute;thode la plus sophistiqu&eacute;e des deux, mais cela a un prix.
- Pour employer <application>CVSup</application>, il faut d'abord
- installer et configurer un programme client sp&eacute;cialis&eacute; avant de
- pouvoir r&eacute;cup&eacute;rer quoi que ce soit, et il faut ensuite travailler
- par sous-ensembles relativements importants, que
- <application>CVSup</application> appelle
- <emphasis>catalogues</emphasis>.</para>
-
- <para><application>anoncvs</application>, au contraire, peut &ecirc;tre
- utilis&eacute; pour examiner n'importe quoi, d'un seul fichier &agrave; un
- programme particulier (tel que <command>ls</command> ou
- <command>grep</command>) en faisant r&eacute;f&eacute;rence au nom du module CVS.
- <application>anoncvs</application> ne sert bien s&ucirc;r qu'&agrave; lire les
- archives CVS, si donc vous avez l'intention de d&eacute;velopper localement
- sur une archive partag&eacute;e avec le projet FreeBSD, alors vous n'avez
- d'autre choix que <application>CVSup</application>.</para>
- </sect3>
-
- <sect3>
- <title><anchor id="anoncvs-usage">Utiliser CVS anonyme</title>
-
- <para>Configurer <citerefentry>
- <refentrytitle>cvs</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> pour utiliser une archive CVS anonyme consiste
- simplement &agrave; d&eacute;finir la variable d'environnement
- <envar>CVSROOT</envar> pour qu'elle pointe sur l'un des serveurs
- <emphasis>anoncvs</emphasis> du projet FreeBSD. A la date de
- r&eacute;daction de ce document, les serveurs suivants sont
- disponibles:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>USA</emphasis>:
- anoncvs@anoncvs.freebsd.org:/cvs</para>
- </listitem>
- </itemizedlist>
-
- <para>Comme CVS vous permet de
- r&eacute;cup&eacute;rer&nbsp;-&nbsp;&ldquo;<foreignphrase>check out</foreignphrase>&rdquo;&nbsp;-&nbsp;pratiquement
- n'importe quelle version ayant exist&eacute; (ou, dans certains cas, &agrave;
- venir <!-- smiley -->:) des sources de FreeBSD, vous devrez
- ma&icirc;triser l'indicateur de r&eacute;vision (<option>-r</option>) de
- <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>
- et conna&icirc;tre les valeurs qu'il peut prendre dans les archives du
- projet FreeBSD.</para>
-
- <para>Il y a deux sortes d'&eacute;tiquettes, les &eacute;tiquettes de r&eacute;vision
- et les &eacute;tiquettes de branches. Les &eacute;tiquettes de r&eacute;vision
- s'appliquent &agrave; une r&eacute;vision particuli&egrave;re. Leur signification ne
- varie pas d'un jour &agrave; l'autre. Les &eacute;tiquettes de branche, &agrave;
- l'inverse, se rapportent &agrave; la derni&egrave;re r&eacute;vision sur une branche
- particuli&egrave;re &agrave; un moment donn&eacute;. Comme les &eacute;tiquettes de branche
- ne se rapportent pas &agrave; une r&eacute;vision particuli&egrave;re, elles peuvent
- d&eacute;signer demain quelque chose de diff&eacute;rent de ce qu'elles
- r&eacute;f&eacute;rencent aujourd'hui.</para>
-
- <para>Voici les &eacute;tiquettes de branches qui peuvent int&eacute;resser les
- utilisateurs:</para>
-
- <variablelist>
- <varlistentry>
- <term>HEAD</term>
-
- <listitem>
- <para>Nom symbolique pour la branche principale de
- d&eacute;veloppement, ou FreeBSD-current. C'est aussi la valeur par
- d&eacute;faut lorsque la r&eacute;vision n'est pas pr&eacute;cis&eacute;e.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2</term>
-
- <listitem>
- <para>Branche de d&eacute;veloppement de FreeBSD-2.2.x, connue aussi
- sous le nom de FreeBSD-stable. Ne s'applique pas au
- catalogue des logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_1_0</term>
-
- <listitem>
- <para>Branche de d&eacute;veloppement de FreeBSD-2.1.x - cette branche
- est largement obsol&egrave;te. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Voici les &eacute;tiquettes de r&eacute;vision qui peuvent vous
- int&eacute;resser:</para>
-
- <variablelist>
- <varlistentry>
- <term>RELENG_2_2_6_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.6. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_5_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.5. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_2_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.2. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.1. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.0. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_1_7_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.7. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_1_6_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.6.1. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_1_6_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.6. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_1_5_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.5. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_2_1_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.0. Ne s'applique pas au catalogue des
- logiciels port&eacute;s.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Lorsque vous donnez une &eacute;tiquette de branche, vous obtenez
- normalement la derni&egrave;re version des fichiers de cette branche de
- d&eacute;veloppement. Si vous voulez une version ant&eacute;rieure, vous pouvez
- l'obtenir en pr&eacute;cisant la date avec l'indicateur
- <option>-D date</option>. Reportez-vous au pages de manuel de
- <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>
- pour plus de d&eacute;tails.</para>
- </sect3>
-
- <sect3>
- <title>Exemples</title>
-
- <para>Bien qu'il soit vraiment conseill&eacute; de lire attentivement les
- pages de manuel de
- <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
- avant de faire quoi que ce soit, voici quelques exemples rapides
- qui vous montrent essentiellement comment utiliser CVS
- anonyme:</para>
-
- <example>
- <title>R&eacute;cup&eacute;rer quelque chose de -current (<citerefentry>
- <refentrytitle>ls</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>) et l'effacer
- ensuite:</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput>
-&prompt.user; <userinput>cvs co ls</userinput>
-&prompt.user; <userinput>cvs release -d ls</userinput></screen>
- </example>
-
- <example>
- <title>R&eacute;cup&eacute;rer la version de <citerefentry>
- <refentrytitle>ls</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> sur la branche
- 2.2-stable:</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput>
-&prompt.user; <userinput>cvs co -rRELENG_2_2 ls</userinput>
-&prompt.user; <userinput>cvs release -d ls</userinput></screen>
- </example>
-
- <example>
- <title>G&eacute;n&eacute;rer la liste des diff&eacute;rences
- (<foreignphrase>unidiffs(</foreignphrase>) entre les versions
- FreeBSD 2.2.2 et FreeBSD 2.2.6 de
- <citerefentry><refentrytitle>ls</refentrytitle> <manvolnum>1</manvolnum></citerefentry>:</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput>
-&prompt.user; <userinput>cvs rdiff -u -rRELENG_2_2_2_RELEASE -rRELENG_2_2_6_RELEASE ls</userinput></screen>
- </example>
-
- <example>
- <title>Savoir quels autres noms de modules peuvent &ecirc;tre
- utilis&eacute;s:</title>
-
- <screen>
-&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput>
-&prompt.user; <userinput>cvs co modules</userinput>
-&prompt.user; <userinput>more modules/modules</userinput>
-&prompt.user; <userinput>cvs release -d modules</userinput></screen>
- </example>
- </sect3>
-
- <sect3>
- <title>Autres ressources</title>
-
- <para>Les autres ressources suppl&eacute;mentaires suivantes peuvent &ecirc;tre
- utiles pour apprendre &agrave; se servir de CVS:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">Guide CVS</ulink> de &ldquo;Cal Poly.&rdquo;</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.cyclic.com">Cyclic
- Software</ulink>, qui maintiennent commercialement CVS.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.freebsd.org/cgi/cvsweb.cgi">CVSWeb</ulink>
- est l'interface Web pour CVS du projet FreeBSD.</para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
-
- <sect2 id="ctm">
- <title><application>CTM</application></title>
-
- <para><emphasis>Contribution by &a.phk;. Mise &agrave; jour le
- 19 Octobre 1997.</emphasis></para>
-
- <para><application>CTM</application> est une m&eacute;thode pour synchroniser
- une arborescence de r&eacute;pertoires deport&eacute;e et une version centrale.
- Elle a &eacute;t&eacute; d&eacute;velopp&eacute;e pour &ecirc;tre utilis&eacute;e avec l'arborescence des
- sources de FreeBSD, bien que d'autres puissent avec le temps la
- trouver utile pour d'autres propos. Il existe actuellement tr&egrave;s
- peu, sinon aucune, documentation sur la fa&ccedil;on de cr&eacute;er les deltas,
- adressez-vous donc &agrave; &a.phk; pour avoir plus d'informations si vous
- souhaitez utiliser <application>CTM</application> pour autre
- chose.</para>
-
- <sect3>
- <title>Pourquoi utiliser <application>CTM</application>?</title>
-
- <para><application>CTM</application> vous procurera un exemplaire
- local de l'arborescence des sources de FreeBSD. Il y a plusieurs
- &ldquo;moutures&rdquo; de l'arborescence disponibles. Que vous
- vouliez garder &agrave; jour toute l'arborescence CVS ou seulement une
- de ses branches, <application>CTM</application> peut vous
- fournir ce dont vous avez besoin. Si vous d&eacute;veloppez activement
- avec FreeBSD, mais ne disposez que d'une connectivit&eacute; TCP/IP
- peu fiable ou n'en avez pas du tout, ou voulez tout simplement
- que les modifications vous soient automatiquement transmises,
- CTM est ce qu'il vous faut. Il vous faudra jusqu'&agrave; trois deltas
- par jour sur les branches les plus actives. Vous devriez toutefois
- envisager de vous les faire envoyer automatiquement par courrier
- &eacute;lectronique. La taille des mises &agrave; jour est toujours aussi petite
- que possible. Typiquement moins de 5Ko, occasionnellement (une
- fois sur 10), entre 10 et 50Ko, et de temps &agrave; autre, une grosse
- modification de 100ko ou plus.</para>
-
- <para>Vous devrez aussi vous tenir au courant des diff&eacute;rentes
- contre-parties li&eacute;es au fait de travailler directement avec
- les sources en cours de d&eacute;veloppement plut&ocirc;t qu'avec les
- versions publi&eacute;es. C'est particuli&egrave;rement vrai si vous
- choisissez les sources de la branche &ldquo;-current&rdquo;.
- Je vous recommande alors de lire la section
- <link linkend="current">Se synchroniser avec la version
- -current de FreeBSD</link>.</para>
-
- </sect3>
-
- <sect3>
- <title>Que vous faut-il pour utiliser
- <application>CTM</application>?</title>
-
- <para>Vous aurez besoin de deux choses: le programme
- <application>CTM</application> et les deltas initiaux &agrave; lui
- fournir (pour vous mettre &agrave; jour avec la version
- &ldquo;courante&rdquo;).</para>
-
- <para>Le programme <application>CTM</application> fait partie de
- FreeBSD depuis la publication de la version 2.0, et se trouve
- dans <filename>/usr/src/usr.sbin/CTM</filename>, si vous avez un
- exemplaire des sources en ligne.</para>
-
- <para>Si vous utilisez une version de FreeBSD ant&eacute;rieure &agrave; la 2.0,
- vous pouvez r&eacute;cup&eacute;rer la version courante des sources de
- <application>CTM</application> directement de:</para>
-
- <para><ulink
- url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm</ulink></para>
-
- <para>Vous pouvez obtenir les &ldquo;deltas&rdquo; &agrave; fournir &agrave;
- <application>CTM</application> de deux fa&ccedil;ons, par FTP ou par
- courrier &eacute;lectronique. Si vous avec un acc&egrave;s FTP &agrave; l'Internet,
- les sites FTP suivants supportent l'acc&egrave;s via
- <application>CTM</application>:</para>
-
- <para><ulink
- url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/CTM">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/CTM</ulink></para>
-
- <para>ou reportez-vous &agrave; la section
- <link linkend="mirrors-ctm">Sites miroirs</link>.</para>
-
- <para>Allez dans le r&eacute;pertoire qui vous concerne et commencez par
- t&eacute;l&eacute;charger le fichier <filename>README</filename>.</para>
-
- <para>Si vous souhaitez r&eacute;cup&eacute;rer vos deltas par courrier
- &eacute;lectronique:</para>
-
- <para>Envoyez un courrier &eacute;lectronique &agrave; &a.majordomo; pour vous
- abonner &agrave; l'une des listes de distribution
- <application>CTM</application>. &ldquo;ctm-cvs-cur&rdquo;
- comprend toute l'arborescence CVS. &ldquo;ctm-src-cur&rdquo;
- concerne la derni&egrave;re version de la branche de d&eacute;veloppement.
- &ldquo;ctm-src-2_2&rdquo; s'applique &agrave; la branche 2.2-RELEASE,
- etc. (Si vous ne savez pas comment vous abonner avec Majordomo,
- envoyez un message commen&ccedil;ant par le mot
- <literal>help</literal>&nbsp;-&nbsp;vous recevrez un mode d'emploi
- en retour.)</para>
-
- <para>D&egrave;s que vous commencer &agrave; recevoir vos mises &agrave; jour
- <application>CTM</application> par courrier &eacute;lectronique, vous
- pouvez utiliser le programme <symbol>ctm_rmail</symbol> pour les
- d&eacute;compacter et les appliquer. Vous pouvez de fait lancer le
- programme <symbol>ctm_rmail</symbol> directement &agrave; partir d'une
- entr&eacute;e dans <filename>/etc/aliases</filename> si vous voulez
- automatiser compl&egrave;tement le processus. Consultez les pages de
- manuel de <symbol>ctm_rmail</symbol> pour plus de d&eacute;tails.</para>
-
- <note>
- <para>Quelle que soit la m&eacute;thode que vous utilisiez pour r&eacute;cup&eacute;rer
- vos deltas <application>CTM</application>, vous devriez vous
- abonner &agrave; la liste de diffusion
- <email>ctm-announce@FreeBSD.ORG</email>. Ce sera, dans l'avenir,
- le seul endroit o&ugrave; les annonces concernant le fonctionnement du
- syst&egrave;me <application>CTM</application> seront faites. Envoyez
- un courier &agrave; &a.majordomo; ne contenant que la ligne
- <literal>subscribe ctm-announce</literal> pour &ecirc;tre inscrit
- sur la liste.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Utiliser <application>CTM</application> pour la premi&egrave;re
- fois</title>
-
- <para>Avant de pouvoir utiliser les deltas
- <application>CTM</application>, il vous faut un point de d&eacute;part,
- pour appliquer les deltas g&eacute;n&eacute;r&eacute;s &agrave; partir de l&agrave;.</para>
-
- <para>Vous devez d'abord savoir ce que vous avez d&eacute;j&agrave;. Tout le monde
- peut partir d'un r&eacute;pertoire &ldquo;vide&rdquo;. N&eacute;anmoins, comme
- les arborescences repr&eacute;sentent plusieurs dizaines de m&eacute;gaoctets,
- vous pr&eacute;f&eacute;rerez commencer avec ce que vous avez d&eacute;j&agrave; sous la main.
- Si vous disposez d'un version sur CD-ROM, vous pouvez copier ou
- extraire le source initial qui s'y trouve. Cela vous &eacute;vitera un
- transfert de donn&eacute;es cons&eacute;quent.</para>
-
- <para>Une fois que vous avez rep&eacute;r&eacute; un point de d&eacute;part significatif,
- vous devez utiliser un delta de &ldquo;transition&rdquo; initial,
- pour le transformer en une arborescence support&eacute;e par
- <application>CTM</application>.</para>
-
- <para>Vous reconna&icirc;trez ces deltas de transition au
- <literal>X</literal> qui suit leur num&eacute;ro de s&eacute;quence
- (<filename>src-cur.3210XEmpty.gz</filename> par exemple). La
- d&eacute;nomination apr&egrave;s le <filename>X</filename>
- correspond &agrave; l'origine de votre &ldquo;racine&rdquo; initiale.
- <filename>Empty</filename> est un r&eacute;pertoire vide,
- <filename>R225</filename> serait la version 2.2.5,
- etc. La r&egrave;gle est qu'une transition de base &agrave; partir de
- <filename>Empty</filename> est g&eacute;n&eacute;r&eacute;e tous les 100 deltas. Au
- passage, elles sont volumineuses! de 25 &agrave; 30 m&eacute;gaoctets de donn&eacute;es
- compress&eacute;es avec <command>gzip</command> est une taille habituelle
- pour les deltas <filename>XEmpty</filename>.</para>
-
- <para>Une fois que vous avez s&eacute;lectionn&eacute; un delta initial, il vous
- faudra aussi tous les deltas de num&eacute;ro sup&eacute;rieur qui le
- suivent.</para>
-
- </sect3>
-
- <sect3>
- <title>Utiliser au quotidien <application>CTM</application></title>
-
- <para>Pour appliquer les deltas, tapez simplement:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /o&ugrave;/vous/voulez/mettre/les/fichiers</userinput>
-&prompt.root; <userinput>ctm -v -v /o&ugrave;/vous/mettez/vos/deltas/src-xxx.*</userinput></screen>
- </informalexample>
-
- <para><application>CTM</application> reconnait les deltas qui ont
- &eacute;t&eacute; compress&eacute;s avec <command>gzip</command>, vous n'avez donc
- pas besoin de les d&eacute;compresser avant, ce qui &eacute;conomise de
- l'espace disque.</para>
-
- <para>A moins d'&ecirc;tre absolument s&ucirc;r du r&eacute;sultat,
- <application>CTM</application> ne touchera pas &agrave; votre
- arborescence. Pour contr&ocirc;ler la validit&eacute; d'un delta, vous
- pouvez aussi utiliser l'indicateur <option>-c</option> et
- <application>CTM</application> ne modifiera alors pas votre
- arborescence; il v&eacute;rifiera simplement l'int&eacute;grit&eacute; du delta
- et regardera s'il peut s'appliquer proprement &agrave; votre
- arborescence en l'&eacute;tat.</para>
-
- <para>Il y a aussi d'autres options pour
- <application>CTM</application>, voyez les pages de manuel ou lisez
- les sources pour plus d'informations.</para>
-
- <para>Je serais aussi tr&egrave;s content si quelqu'un voulait m'aider &agrave;
- mettre au point l'&ldquo;interface utilisateur&rdquo;, parce que
- je me suis rendu compte que je n'arrivais pas &agrave; me d&eacute;cider quant
- &agrave; ce que devait faire telle ou telle option, quand et
- comment...</para>
-
- <para>C'est &agrave; peu pr&egrave;s tout. Chaque fois que vous recevez un delta,
- passez-le &agrave; <application>CTM</application> pour tenir &agrave; jour
- votre arborescence des sources.</para>
-
- <para>N'effacez pas les deltas s'il vous est difficile de les
- t&eacute;l&eacute;charger de nouveau. Vous pouvez avoir en besoin si quelque
- chose se produit. M&ecirc;me si vous n'avez que des disquettes,
- envisagez d'utiliser <command>fdwrite</command> pour en faire
- une copie.</para>
-
- </sect3>
-
- <sect3>
- <title>Conserver vos modifications locales</title>
-
- <para>Si vous &ecirc;tes d&eacute;veloppeur, vous voudrez exp&eacute;rimenter et
- modifier des fichiers de l'arborescence des sources.
- <application>CTM</application> supporte de fa&ccedil;on limit&eacute;e les
- modifications locales: avant de regarder si le fichier
- <filename>foo</filename> existe, il regarde d'abord s'il y a
- un fichier <filename>foo.ctm</filename>. Si ce fichier existe,
- <application>CTM</application> l'utilise au lieu de
- <filename>foo</filename>.</para>
-
- <para>Ce comportement vous permet de conserver de fa&ccedil;on simple
- des modifications locales: copiez simplement les fichiers que
- vous envisagez de modifier dans des fichiers de m&ecirc;me nom, mais
- avec le suffixe <filename>.ctm</filename>. Vous pouvez alors
- tranquillement bidouiller le code, pendant que
- <application>CTM</application> maintient le fichier
- <filename>.ctm</filename> &agrave; jour.</para>
-
- </sect3>
-
- <sect3>
- <title>D'autres options int&eacute;ressantes de
- <application>CTM</application></title>
-
- <sect4>
- <title>Savoir avec pr&eacute;cision ce que va modifier une mise &agrave;
- jour</title>
-
- <para>Vous pouvez conna&icirc;tre la liste des modifications que
- <application>CTM</application> appliquera &agrave; votre archive
- des sources en utilisant <application>CTM</application>
- avec l'option <option>-l</option>.</para>
-
- <para>C'est utile si vous voulez conserver la trace des
- modifications, pr&eacute;- ou post-processer les fichiers modifi&eacute;s
- de quelque fa&ccedil;on que ce soit, ou vous sentez un tantinet
- parano&iuml;de <!-- smiley -->:-).</para>
-
- </sect4>
-
- <sect4>
- <title>Faire des sauvegardes avant la mise &agrave; jour</title>
-
- <para>Vous souhaiterez parfois faire des sauvegardes de tous
- les fichiers qui seront touch&eacute;s par une mise &agrave; jour
- <application>CTM</application>.</para>
-
- <para>Avec l'option <option>-B fichier_de_sauvegarde</option>,
- <application>CTM</application> sauvegarde tous les fichiers
- qui seront modifi&eacute;s par un delta
- <application>CTM</application> donn&eacute; dans
- <filename>fichier_de_sauvegarde</filename>.</para>
-
- </sect4>
-
- <sect4>
- <title>Restreindre la liste des fichiers touch&eacute;s par une mise
- &agrave; jour</title>
-
- <para>Vous voudrez parfois restreindre le champ d'application
- d'une mise &agrave; jour <application>CTM</application> donn&eacute;e, ou
- serez int&eacute;ress&eacute; &agrave; n'extraire que quelques fichiers d'une
- s&eacute;quence de deltas.</para>
-
- <para>Vous pouvez contr&ocirc;ler la liste des fichiers sur laquelle
- <application>CTM</application> travaille en donnant comme
- filtre une expression r&eacute;guli&egrave;re avec les options
- <option>-e</option> et <option>-x</option>.</para>
-
- <para>Par exemple, pour extraire une version &agrave; jour de
- <filename>lib/libc/Makefile</filename> de la s&eacute;rie de
- deltas <application>CTM</application> que vous avez sauvegard&eacute;s,
- utilisez les commandes:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /o&ugrave;/vous/voulez/l/extraire/</userinput>
-&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen>
- </informalexample>
-
- <para>Pour chaque fichier du delta <application>CTM</application>,
- les options <option>-e</option> et <option>-x</option> sont
- appliqu&eacute;es dans l'ordre donn&eacute; sur la ligne de commande. Le
- fichier est trait&eacute; par <application>CTM</application> uniquement
- s'il est encore s&eacute;lectionn&eacute; apr&egrave;s que toutes les options
- <option>-e</option> et <option>-x</option> lui aient &eacute;t&eacute;
- appliqu&eacute;es.</para>
-
- </sect4>
- </sect3>
-
- <sect3>
- <title>Perspectives pour <application>CTM</application></title>
-
- <para>Il y en a des tonnes:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Utilisez une m&eacute;thode ou une autre d'authentification
- au syst&egrave;me <application>CTM</application> pour pouvoir
- d&eacute;tecter la
- substitution&nbsp;-&nbsp;<foreignphrase>spoofing</foreignphrase>&nbsp;-&nbsp;de
- mises &agrave; jour.</para>
- </listitem>
-
- <listitem>
- <para>Faire le m&eacute;nage dans les options de
- <application>CTM</application>, elles commencent &agrave; engendrer
- de la confusion et &agrave; contredire l'intuition.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>La mauvaise nouvelle est que je suis tr&egrave;s occup&eacute;, toute aide
- pour le faire sera vraiment la bienvenue. N'oubliez pas aussi de
- me dire ce que vous souhaiteriez...</para>
-
- </sect3>
-
- <sect3>
- <title>Divers</title>
-
- <para>Tous les sources &ldquo;infect&eacute;s par le DES&rdquo; (e.g.
- restreints &agrave; l'exportation) ne sont pas inclus. Vous n'aurez
- que la version &ldquo;internationale&rdquo;. Si cela rencontre
- suffisamment d'int&eacute;r&ecirc;t, nous mettrons aussi en place une s&eacute;quence
- <literal>sec-cur</literal>. Il y a aussi une s&eacute;quence de deltas
- pour le &ldquo;catalogue des logiciels port&eacute;s&rdquo;, mais elle
- n'a pas re&ccedil;ue beaucoup d'&eacute;cho jusqu'ici. Dites-moi si vous voulez
- une liste de courrier &eacute;lectronique pour cela aussi et
- j'envisagerai de la mettre en place.</para>
-
- </sect3>
-
- <sect3>
- <title>Remerciements</title>
-
- <variablelist>
- <varlistentry><term>&a.bde;,</term>
- <listitem>
- <para>pour son crayon point&eacute; et ses commentaires
- inestimables.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>&a.sos;,</term>
-
- <listitem>
- <para>pour sa patience.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Stephen McKay,</term>
-
- <listitem>
- <para>a &eacute;crit <command>ctm_[rs]mail</command>,
- tr&egrave;s appr&eacute;ci&eacute;.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>&a.jkh;,</term>
-
- <listitem>
- <para>pour avoir toujours insist&eacute; pour que je
- l'am&eacute;liore.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Tous les utilisateurs,</term>
-
- <listitem>
- <para>J'esp&egrave;re qu'il vous convient...</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect3>
- </sect2>
-
- <sect2 id="cvsup">
- <title><application>CVSup</application></title>
-
- <para><emphasis>Contribution de &a.jdp;</emphasis>.</para>
-
- <sect3 id="cvsup-intro">
- <title>Introduction</title>
-
- <para><application>CVSup</application> est un ensemble de logiciels
- pour la distribution et la mise &agrave; jour d'arborescences de sources
- &agrave; partir d'une archive originale sur une machine serveur distante.
- Les sources de FreeBSD sont archiv&eacute;s avec CVS sur une machine
- centrale de d&eacute;veloppement en Californie. Gr&acirc;ce &agrave;
- <application>CVSup</application>, les utilisateurs de FreeBSD
- peuvent facilement tenir &agrave; jour leur propre arborescence de
- sources.</para>
-
- <para><application>CVSup</application> utilise le mod&egrave;le
- <emphasis>pull</emphasis> de mise &agrave; jour. Dans ce sch&eacute;ma, chaque
- client r&eacute;clame les mises &agrave; jour au serveur, si et quand il le
- souhaite. Le serveur attend passivement les demandes de mises &agrave;
- jour de ses clients. Toutes les mises &agrave; jour sont donc faites &agrave;
- la demande du client. Le serveur n'envoie jamais de mise &agrave; jour
- non sollicit&eacute;e. Les utiliseurs doivent soit ex&eacute;cuter le client
- <application>CVSup</application> &agrave; la main pour obtenir une mise
- &agrave; jour, soit mettre en oeuvre une t&acirc;che
- <command>cron</command> pour l'ex&eacute;cuter automatiquement et &agrave;
- intervalles r&eacute;guliers.</para>
-
- <para>Le terme <application>CVSup</application>, avec les
- majuscules, d&eacute;signe l'ensemble du logiciel. Ses principales
- composantes sont le client <command>cvsup</command>, qui s'ex&eacute;cute
- sur les machines de chaque utilisateur, et le serveur
- <command>cvsupd</command>, qui tourne sur tous les sites miroir
- de FreeBSD.</para>
-
- <para>En lisant la documentation et les listes de diffusion de
- FreeBSD, vous trouverez des r&eacute;f&eacute;rences &agrave;
- <application>sup</application>. <application>Sup</application>
- &eacute;tait le pr&eacute;d&eacute;cesseur de <application>CVSup</application>, et
- remplissait la m&ecirc;me fonction. <application>CVSup</application> est
- utilis&eacute; de la m&ecirc;me fa&ccedil;on que <application>sup</application> et,
- emploie de fait des fichiers de configuration qui sont compatibles
- avec ceux de <command>sup</command>.
- <application>Sup</application> n'est plus utilis&eacute; pour le projet
- FreeBSD, parce que <application>CVSup</application> est &agrave; la fois
- plus rapide et plus souple.</para>
-
- </sect3>
-
- <sect3 id="cvsup-install">
- <title>Installation</title>
-
- <para>La m&eacute;thode la plus facile pour installer
- <application>CVSup</application>, si vous &ecirc;tes sous FreeBSD 2.2
- ou ult&eacute;rieur est d'utiliser le
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/ports-current/net/cvsup.tar">logiciel
- port&eacute;</ulink> du <link linkend="ports">catalogue</link> de
- FreeBSD ou le
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/packages-current/net/cvsup-15.3.tgz">&ldquo;paquetage&rdquo;
- binaire</ulink> correspondant, selon que vous pr&eacute;f&eacute;riez ou non le
- compiler vous-m&ecirc;me.</para>
-
- <para>Si vous &ecirc;tes sous FreeBSD-2.1.6 ou 2.1.7, vous ne pouvez
- malheureusement pas utiliser le binaire tel que, parce qu'il lui
- faut une version de la biblioth&egrave;que C qui n'existait pas encore
- sous FreeBSD-2.1.{6,7}. Vous pouvez malgr&eacute; tout facilement vous
- servir du
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/ports-current/net/cvsup.tar">logiciel
- port&eacute;</ulink>, tout comme sous FreeBSD 2.2. D&eacute;compressez
- simplement l'archive, allez dans le sous-r&eacute;pertoire
- <filename>cvsup</filename> et tapez
- <command>make install</command>.</para>
-
- <para>Comme <application>CVSup</application> est &eacute;crit en <ulink
- url="http://www.research.digital.com/SRC/modula-3/html/home.html">Modula-3</ulink>, et le &ldquo;paquetage&rdquo; et le logiciel port&eacute; ont
- besoin que les biblioth&egrave;ques d'ex&eacute;cution de Modula-3 soient
- install&eacute;es. Elles sont disponibles dans le portage
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/ports-current/lang/modula-3-lib.tar">lang/modula-3-lib</ulink>
- et dans le &ldquo;paquetage&rdquo;
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/packages-current/lang/modula-3-lib-3.6.tgz">lang/modula-3-lib-3.6</ulink>.
- Si vous suivez les instructions donn&eacute;es pour
- <command>cvsup</command>, ces biblioth&egrave;ques seront compil&eacute;es et/ou
- install&eacute;es automatiquement en m&ecirc;me temps que le logiciel port&eacute; ou le
- &ldquo;paquetage&rdquo; <application>CVSup</application>.</para>
-
- <para>Les biblioth&egrave;ques Modula-3 sont assez volumineuses, et il
- n'est pas imm&eacute;diat de les rapatrier et les compiler. Pour cette
- raison, une troisi&egrave;me possibilit&eacute; est fournie. Vous pouvez vous
- procurer les ex&eacute;cutables <emphasis>li&eacute;s statiquement</emphasis>
- de <application>CVSup</application> pour FreeBSD, soit du site de
- distribution aux USA:</para>
-
- <itemizedlist>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz">ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz</ulink> (client avec interface homme/machine graphique).</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz">ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz</ulink> (client sans interface homme/machine graphique).</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz">ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz</ulink> (serveur).</para>
- </listitem>
-
- </itemizedlist>
-
- <para>ou du site miroir en Allemagne:</para>
-
- <itemizedlist>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz">ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz</ulink> (client avec interface homme/machine graphique).</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz">ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz</ulink> (client sans interface homme/machine graphique).</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz">ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz</ulink> (serveur).</para>
- </listitem>
-
- </itemizedlist>
-
- <para>La plupart des utilisateurs n'auront besoin que du client. Ces
- ex&eacute;cutables n'utilisent rien d'autre et fonctionneront avec toutes
- les versions de FreeBSD, de FreeBSD-2.1.0 &agrave;
- FreeBSD-current.</para>
-
- <para>Pour r&eacute;sumer, les options pour installer CVSup sont:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>FreeBSD-2.2 ou ult&eacute;rieur: binaire statique, logiciel
- port&eacute; ou &ldquo;paquetage&rdquo;,</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD-2.1.6, 2.1.7: binaire statique ou logiciel
- port&eacute;,</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD-2.1.5 ou ant&eacute;rieur: binaire statique.</para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="cvsup-config">
- <title>Configuration</title>
-
- <para>Le fonctionnement de <application>CVSup</application>
- est contr&ocirc;l&eacute; par un fichier de configuration appel&eacute; fichier
- <filename>supfile</filename>. Depuis FreeBSD-2.2, il y a
- des exemples de fichiers <filename>supfile</filename>
- dans le r&eacute;pertoire
- <ulink url="file:/usr/share/examples/cvsup">/usr/share/examples/cvsup</ulink>.
- Ces exemples sont aussi disponibles sur
- <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/">ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/</ulink>
- si la version de votre syst&egrave;me est ant&eacute;rieure &agrave; la 2.2.</para>
-
- <para>Les informations du fichier <filename>supfile</filename>
- r&eacute;pondent pour
- <citerefentry><refentrytitle>cvsup</refentrytitle></citerefentry>
- aux questions suivantes:</para>
-
- <itemizedlist>
-
- <listitem>
- <para><link linkend="cvsup-config-files">Quels fichiers
- voulez-vous t&eacute;l&eacute;charger?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-vers">Quelles versions de
- ces fichiers voulez-vous?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-where">D'o&ugrave; voulez-vous les
- t&eacute;l&eacute;charger?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-dest">O&ugrave; voulez-vous les
- mettre sur votre machine?</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="cvsup-config-status">O&ugrave; voulez-vous
- mettre les fichiers d'&eacute;tat de votre archive?</link></para>
- </listitem>
-
- </itemizedlist>
-
- <para>Dans les sections qui suivent, nous allons renseigner un
- fichier <filename>supfile</filename> typique en r&eacute;pondant une &agrave;
- une &agrave; chacune de ces questions. Commen&ccedil;ons par d&eacute;crire la
- structure d'ensemble d'un fichier
- <filename>supfile</filename>.</para>
-
- <para>Un fichier <filename>supfile</filename> est un fichier texte.
- Les commentaires d&eacute;butent par un <literal>#</literal> et se
- prolongent jusqu'&agrave; la fin de la ligne. Les lignes vides ou qui ne
- contiennent que des commentaires sont ignor&eacute;es.</para>
-
- <para>Les autres lignes d&eacute;crivent les ensembles de fichiers que
- l'utilisateur souhaite recevoir. Ces lignes commencent par le
- nom d'un
- &ldquo;catalogue&rdquo;&nbsp;-&nbsp;<foreignphrase>collection</foreignphrase>,
- un regroupement logique de fichiers, d&eacute;fini par le serveur.
- Le nom du catalogue dit au serveur quels fichiers vous voulez.
- Ce nom est &eacute;ventuellement suivi d'un ou plusieurs champs, s&eacute;par&eacute;s
- par des blancs. Ces champs r&eacute;pondent aux questions list&eacute;es
- ci-dessus. Il y a deux sortes de champs: des indicateurs et des
- valeurs. Un indicateur est un mot-cl&eacute; autonome, e.g.,
- <literal>delete</literal> ou <literal>compress</literal>. Une
- valeur commence aussi par un mot-cl&eacute;, mais il est imm&eacute;diatement
- suivi&nbsp;-&nbsp;sans espace entre les deux&nbsp;-&nbsp;par un
- <literal>=</literal> et un deuxi&egrave;me mot. Par exemple,
- <literal>release=cvs</literal> est un champ d&eacute;finissant une
- valeur.</para>
-
- <para>Un fichier <filename>supfile</filename> d&eacute;crit en g&eacute;n&eacute;ral plus
- d'un catalogue &agrave; t&eacute;l&eacute;charger. Un fa&ccedil;on de construire un fichier
- <filename>supfile</filename> consiste &agrave; pr&eacute;ciser explicitement
- tous les champs n&eacute;cessaires pour chaque catalogue. Cela g&eacute;n&egrave;re
- cependant des fichiers <filename>supfile</filename> avec des
- lignes assez longues, et ce n'est pas tr&egrave;s pratique parce que la
- plupart des champs sont les m&ecirc;mes pour tous les catalogues du
- fichier <filename>supfile</filename>.
- <application>CVSup</application> fournit un m&eacute;canisme pour
- d&eacute;finir des valeurs par d&eacute;faut pour &eacute;viter ce probl&egrave;me. Les lignes
- qui commencent par le nom du pseudo-catalogue sp&eacute;cial
- <literal>*default</literal> servent &agrave; d&eacute;finir des indicateurs et
- des valeurs qui seront pris par d&eacute;faut pour les catalogues list&eacute;s
- ensuite dans le fichier <filename>supfile</filename>. Une valeur
- par d&eacute;faut peut-&ecirc;tre surcharg&eacute;e pour un catalogue particulier, en
- associant au catalogue lui-m&ecirc;me une valeur diff&eacute;rente. Les valeurs
- par d&eacute;faut peuvent &ecirc;tre aussi red&eacute;finies, ou bien on peut en
- d&eacute;finir de nouvelles, en cours de fichier
- <filename>supfile</filename>, par de nouvelles lignes
- <literal>*default</literal>.</para>
-
- <para>Sachant cela, nous allons maintenant mettre au point un
- fichier <filename>supfile</filename> pour t&eacute;l&eacute;charger et mettre
- &agrave; jour l'arborescence principale de
- <link linkend="current">FreeBSD-current</link>.</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Quels fichiers voulons-nous t&eacute;l&eacute;charger?<anchor
- id="cvsup-config-files"></para>
-
- <para>Les fichiers disponibles via
- <application>CVSup</application> sont regroup&eacute;s par
- &ldquo;catalogues&rdquo;&nbsp;-&nbsp;<foreignphrase>collections</foreignphrase>.
- Les catalogues disponibles sont d&eacute;crits
- <link linkend="cvsup-collec">ici</link>. Dans notre exemple,
- nous souhaitons recevoir toute l'arborescence principale du
- syst&egrave;me FreeBSD. Il y a un unique gros catalogue
- <literal>src-all</literal> qui correspond &agrave; tout cela, &agrave;
- l'exception du code de cryptographie dont l'exportation est
- soumise &agrave; des restrictions. Supposons que nous soyons aux
- USA ou au Canada. Nous pouvons alors obtenir le code de
- cryptographie avec le catalogue suppl&eacute;mentaire
- <literal>cvs-crypto</literal>. Pour commencer &agrave; renseigner
- notre fichier <filename>supfile</filename>,
- nous listons simplement ces catalogues, chacun sur une
- ligne.</para>
-
- <programlisting>
-src-all
-cvs-crypto
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Quelles version(s) voulons-nous t&eacute;l&eacute;charger?<anchor
- id="cvsup-config-vers"></para>
-
- <para>Avec <application>CVSup</application>, vous pouvez obtenir
- pratiquement n'importe quelle version qui ait exist&eacute; des
- sources. C'est possible parce que le serveur
- <citerefentry><refentrytitle>cvsupd</refentrytitle></citerefentry>
- travaille directement &agrave; partir des archives CVS, qui
- contiennent toutes les versions. Vous dites quelle version
- vous voulez en utilisant les valeurs
- <literal>tag=</literal> et <option>date=</option>.</para>
-
- <warning>
- <para>Faites tr&egrave;s attention &agrave; d&eacute;finir correctement la valeur
- <literal>tag=</literal>. Il y a des &eacute;tiquettes qui ne
- s'appliquent qu'&agrave; certains catalogues ou fichiers. Si
- l'&eacute;tiquette que vous donnez n'est pas valable ou mal
- orthographi&eacute;e, CVSup effacera des fichiers que vous ne
- vouliez probablement pas supprimer. En particulier,
- n'utilisez <emphasis>que</emphasis> <literal>tag=.</literal>
- pour les catalogues <literal>ports-*</literal>.</para>
- </warning>
-
- <para>Les valeurs donn&eacute;es avec <literal>tag=</literal> sont
- des &eacute;tiquettes symboliques d&eacute;finies dans les archives. Il
- y a deux sortes d'&eacute;tiquettes, les &eacute;tiquettes de r&eacute;vision
- et les &eacute;tiquettes de branches. Les &eacute;tiquettes de r&eacute;vision
- s'appliquent &agrave; une r&eacute;vision particuli&egrave;re. Leur signification
- ne varie pas d'un jour &agrave; l'autre. Les &eacute;tiquettes de branche,
- &agrave; l'inverse, se rapportent &agrave; la derni&egrave;re r&eacute;vision sur une
- branche particuli&egrave;re &agrave; un moment donn&eacute;. Comme les &eacute;tiquettes
- de branche ne se rapportent pas &agrave; une r&eacute;vision particuli&egrave;re,
- elles peuvent d&eacute;signer demain quelque chose de diff&eacute;rent de
- ce qu'elles r&eacute;f&eacute;rencent aujourd'hui.</para>
-
- <para>Voici les &eacute;tiquettes de branches qui peuvent int&eacute;resser les
- utilisateurs:</para>
-
- <variablelist>
- <varlistentry>
- <term>tag=.</term>
-
- <listitem>
- <para>La branche principale de d&eacute;veloppement, appel&eacute;e aussi
- FreeBSD-current.</para>
- <note>
- <para>Le <literal>.</literal> n'est pas un
- ponctuation; C'est le nom de l'&eacute;tiquette.
- S'applique &agrave; tous les catalogues.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_2</term>
-
- <listitem>
- <para>Branche de d&eacute;veloppement de FreeBSD-2.2.x, connue aussi
- sous le nom de FreeBSD-stable. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_1_0</term>
-
- <listitem>
- <para>Branche de d&eacute;veloppement de FreeBSD-2.1.x - cette branche
- est largement obsol&egrave;te. Ne s'applique pas aux catalogues
- ports-*.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Voici les &eacute;tiquettes de r&eacute;vision qui peuvent vous
- int&eacute;resser:</para>
-
- <para>
- <variablelist>
- <varlistentry><term>tag=RELENG_2_2_6_RELEASE</term>
- <listitem>
- <para>FreeBSD-2.2.6. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_2_5_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.5. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_2_2_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.2. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_2_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.1. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_2_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.2.0. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_1_7_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.7. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_1_6_1_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.6.1. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_1_6_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.6. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_1_5_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.5. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tag=RELENG_2_1_0_RELEASE</term>
-
- <listitem>
- <para>FreeBSD-2.1.0. Ne s'applique pas aux
- catalogues ports-*.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <warning>
- <para>Faites tr&egrave;s attention &agrave; mentionner pr&eacute;cisement
- l'&eacute;tiquette exacte. <application>CVSup</application>
- ne sait pas diff&eacute;rencier une &eacute;tiquette valide d'une
- &eacute;tiquette qui ne l'est pas. Si vous orthographiez mal
- l'&eacute;tiquette, <application>CVSup</application> se comportera
- comme si vous aviez donn&eacute; une &eacute;tiquette valide qui ne
- se r&eacute;f&egrave;re &agrave; aucun fichier et supprimera alors tous les
- sources que vous avez d&eacute;j&agrave;.</para>
- </warning>
-
- <para>Lorsque vous donnez une &eacute;tiquette de branche, vous
- recevez normalement les derni&egrave;res versions des fichiers
- sur cette branche de d&eacute;veloppement. Si vous voulez r&eacute;cup&eacute;rer
- des versions ant&eacute;rieures, vous pouvez le faire en donnant
- une date avec le champ <option>date=</option>. Les pages
- de manuel de
- <citerefentry><refentrytitle>cvsup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- vous expliquent comment le faire.</para>
-
- <para>Dans notre exemple, nous voulons obtenir
- FreeBSD-current. Nous ajoutons alors la ligne suivante au
- d&eacute;but de notre fichier <filename>supfile</filename>:</para>
-
- <programlisting>
-*default tag=.
- </programlisting>
-
- <para>Ne sp&eacute;cifier ni le champ <literal>tag=</literal> ni le
- champ <literal>date=</literal> est un cas particulier
- important. Vous obtenez alors les fichiers RCS directement
- des archives du serveur CVS, plut&ocirc;t qu'une version donn&eacute;e.
- Les d&eacute;veloppeurs pr&eacute;f&egrave;rent g&eacute;n&eacute;ralement cette fa&ccedil;on de
- travailler. En maintenant une version des archives
- elles-m&ecirc;mes sur leur syst&egrave;me, ils ont la possibilit&eacute;
- de consulter l'historique des r&eacute;visions et d'acc&eacute;der aux
- versions ant&eacute;rieures des fichiers. Cet avantage ne s'obtient
- cependant qu'au prix d'une consommation importante d'espace
- disque.</para>
- </listitem>
-
- <listitem>
- <para>D'o&ugrave; voulons-nous les t&eacute;l&eacute;charger?<anchor
- id="cvsup-config-where"></para>
-
- <para>Nous employons le champ <literal>host=</literal> pour
- dire &agrave; <command>cvsup</command> o&ugrave; r&eacute;cup&eacute;rer ses mises &agrave;
- jour. N'importe lequel des
- <link linkend="mirrors-cvsup">sites miroir CVSup</link> fera
- l'affaire, bien que vous devriez essayer de choisir un site
- proche de vous. Dans notre exemple, nous utiliserons le site
- principal de distribution de FreeBSD,
- <hostid role="fqdn">cvsup.FreeBSD.org</hostid>:</para>
-
- <programlisting>
-*default host=cvsup.FreeBSD.org
- </programlisting>
-
- <para>Lors de l'ex&eacute;cution de <command>cvsup</command>, vous
- pouvez surcharger cette d&eacute;finition sur la ligne de commande,
- avec l'option <option>-h
- <replaceable>nom_de_machine</replaceable></option>.</para>
- </listitem>
-
- <listitem>
- <para>O&ugrave; voulons-nous les mettre sur notre
- machine?<anchor id="cvsup-config-dest"></para>
-
- <para>Le champ <literal>prefix=</literal> dit &agrave;
- <command>cvsup</command> o&ugrave; mettre les fichiers qu'il obtient.
- Dans l'exemple, nous mettrons les fichiers source directement
- dans notre arborescence des sources,
- <filename>/usr/src</filename>. Le r&eacute;pertoire
- <filename>src</filename> est d&eacute;j&agrave; implicitement d&eacute;fini dans
- les catalogues que nous avons choisis de t&eacute;l&eacute;charger, voici
- donc la d&eacute;finition correcte:</para>
-
- <programlisting>
-*default prefix=/usr
- </programlisting>
- </listitem>
-
- <listitem>
- <para>O&ugrave; <command>cvsup</command> doit-il mettre les fichiers
- d&eacute;crivant l'&eacute;tat de notre archive?<anchor
- id="cvsup-config-status"></para>
-
- <para>Le client
- <citerefentry><refentrytitle>cvsup</refentrytitle></citerefentry>
- tient &agrave; jour des fichiers d'&eacute;tat dans ce qui est appel&eacute; le
- r&eacute;pertoire de &ldquo;base&rdquo;. Ces fichiers
- permettent &agrave; <application>CVSup</application> de travailler
- plus efficacement en gardant la trace des modifications que
- nous avons d&eacute;j&agrave; re&ccedil;ues. Nous utiliserons le r&eacute;pertoire de
- base standard,
- <filename>/usr/local/etc/cvsup</filename>:</para>
-
- <programlisting>
-*default base=/usr/local/etc/cvsup
- </programlisting>
-
- <para>Cette configuration est utilis&eacute;e par d&eacute;faut, si elle
- n'est pas pr&eacute;cis&eacute;e dans le fichier
- <filename>supfile</filename>, la ligne ci-dessus n'est donc
- pas indispensable.</para>
-
- <para>Si votre r&eacute;pertoire de base n'existe pas encore, c'est
- le moment de le cr&eacute;er. Le client <command>cvsup</command>
- refusera de s'ex&eacute;cuter si le r&eacute;pertoire de base n'existe
- pas.</para>
- </listitem>
-
- <listitem>
- <para>Diverses autres options de configuration dans le fichier
- <filename>supfile</filename>:</para>
-
- <para>Il y a une autre ligne d'instructions qui doit
- normalement figurer dans le fichier
- <filename>supfile</filename>:</para>
-
- <programlisting>
-*default release=cvs delete use-rel-suffix compress
- </programlisting>
-
- <para><literal>release=cvs</literal> dit au serveur d'obtenir
- les informations des archives principales de FreeBSD. C'est
- quasiment toujours le cas, mais il existe d'autres
- possibilit&eacute;s qui sortent du cadre du pr&eacute;sent
- document.</para>
-
- <para><literal>delete</literal> donne &agrave;
- <application>CVSup</application> l'autorisation de supprimer
- des fichiers. Utilisez toujours cette possibilit&eacute;, de sorte
- que <application>CVSup</application> puisse vraiment maintenir
- &agrave; jour votre arborescence des sources.
- <application>CVSup</application> veille &agrave; ne supprimer que
- les fichiers qu'il maintient. Les fichiers suppl&eacute;mentaires
- que vous pourriez avoir ne seront pas touch&eacute;s.</para>
-
- <para><literal>use-rel-suffix</literal> est ... &eacute;sot&eacute;rique. Si
- vous voulez vraiment savoir de quoi il retourne, lisez les
- pages de manuel de
- <citerefentry><refentrytitle>cvsup</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
- Sinon, mettez cet indicateur et ne vous en souciez pas
- plus.</para>
-
- <para><literal>compress</literal> permet d'utiliser un
- algorithme de compression de type
- <citerefentry><refentrytitle>gzip</refentrytitle></citerefentry>
- sur la ligne de communication. Si votre liaison a la
- vitesse d'une ligne T1 ou plus, vous ne devriez
- probablement pas utiliser la compression. Sinon, cela
- facilite substantiellement les choses.</para>
- </listitem>
-
- <listitem>
- <para>Assembler les morceaux:</para>
-
- <para>Voici le fichier <filename>supfile</filename> de notre
- exemple en entier:</para>
-
- <programlisting>
-*default tag=.
-*default host=cvsup.FreeBSD.org
-*default prefix=/usr
-*default base=/usr/local/etc/cvsup
-*default release=cvs delete use-rel-suffix compress
-
-src-all
-cvs-crypto
- </programlisting>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Ex&eacute;cuter <application>CVSup</application></title>
-
- <para>Vous &ecirc;tes maintenant pr&ecirc;t &agrave; essayer de faire une mise une
- jour. La ligne de commande &agrave; utiliser est tr&egrave;s simple:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable></userinput></screen>
- </informalexample>
-
- <para>o&ugrave; <filename><replaceable>supfile</replaceable></filename> est
- bien s&ucirc;r le nom du fichier <filename>supfile</filename> que vous
- venez de cr&eacute;er. Si vous &ecirc;tes sous X11, <command>cvsup</command>
- affichera une interface utilisateur graphique avec des boutons
- pour les op&eacute;rations courantes. Appuyez sur le bouton
- &ldquo;go&rdquo; et suivez le d&eacute;roulement des op&eacute;rations.</para>
-
- <para>Comme, dans l'exemple, vous mettez directement &agrave; jour votre
- arborescence <filename>/usr/src</filename>, vous devrez ex&eacute;cuter
- le programme en tant que super-utilisateur
- <username>root</username> de fa&ccedil;on &agrave; ce que
- <command>cvsup</command> ait le droit de mettre &agrave; jour ces
- fichiers. Comme vous venez tout juste de mettre au point votre
- fichier de configuration et n'avez encore jamais utilis&eacute; le
- programme, il est compr&eacute;hensible que cela vous rende nerveux.
- Il est facile de faire un essai sans toucher &agrave; vos pr&eacute;cieux
- fichiers. Cr&eacute;ez une nouveau r&eacute;pertoire quelque part et donnez-le
- en argument suppl&eacute;mentaire sur la ligne de commande:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mkdir /var/tmp/dest</userinput>
-&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable> /var/tmp/dest</userinput></screen>
- </informalexample>
-
- <para>Le r&eacute;pertoire indiqu&eacute; sera pris comme destination pour tous
- les fichiers modifi&eacute;s. <application>CVSup</application> consultera
- les fichiers habituels dans <filename>/usr/src</filename>, mais ne
- les modifiera pas et n'en supprimera aucun. Les modifications
- atterriront dans <filename>/var/tmp/dest/usr/src</filename>.
- <application>CVSup</application> ne touchera pas non plus &agrave; ses
- fichiers d'&eacute;tat dans le r&eacute;pertoire de base, lorsqu'il est invoqu&eacute;
- de cette mani&egrave;re. Les nouvelles versions de ces fichiers iront
- dans le r&eacute;pertoire mentionn&eacute;. A partir du moment o&ugrave; vous avez les
- droits en lecture sur <filename>/usr/src</filename>, vous n'avez m&ecirc;me pas besoin d'&ecirc;tre <username>root</username> pour faire ce
- genre d'essai.</para>
-
- <para>Si vous n'&ecirc;tes pas sous X11, ou si vous n'aimez tout
- simplement pas les interfaces graphiques, vous devrez ajouter
- quelques options suppl&eacute;mentaires sur la ligne de commande
- de <command>cvsup</command>:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cvsup -g -L 2 supfile</userinput></screen>
- </informalexample>
-
- <para>L'option <option>-g</option> dit &agrave; <command>cvsup</command>
- de ne pas utiliser son interface graphique. C'est automatique si
- vous n'&ecirc;tes pas sous X11, sinon vous devez le pr&eacute;ciser.</para>
-
- <para>L'option <option>-L 2</option> dit &agrave; <command>cvsup</command>
- d'imprimer le d&eacute;tail de ce qu'il est en train de faire. Il y a
- trois niveaux de trace, de <option>-L 0</option> &agrave;
- <option>-L 2</option>. Le valeur par d&eacute;faut est de 0, qui &eacute;quivaut
- &agrave; n'&eacute;mettre que les messages d'erreur.</para>
-
- <para>Il y a de nombreuses autres options disponibles. Pour en
- avoir un r&eacute;sum&eacute;, tapez <command>cvsup -H</command>. Pour en avoir
- une description plus d&eacute;taill&eacute;e, reportez-vous aux pages de
- manuel.</para>
-
- <para>Une fois que vous &ecirc;tes satisfait de la fa&ccedil;on dont se passent
- vos mises &agrave; jour, vous pouvez mettre en place un fonctionnement
- de <command>cvsup</command> &agrave; intervalles r&eacute;guliers en
- utilisant
- <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Bien &eacute;videmment, vous ne devez pas utiliser l'interface
- graphique de <command>cvsup</command> quand vous le lancez depuis
- <command>cron</command>.</para>
-
- </sect3>
- <sect3 id="cvsup-collec">
- <title>Catalogue de fichiers
- <application>CVSup</application></title>
-
- <para>Les catalogues de fichiers disponibles via
- <application>CVSup</application> sont organis&eacute;s hi&eacute;rarchiquement.
- Il y a quelques gros catalogues, qui sont divis&eacute;s en plus petits
- sous-catalogues. Recevoir un gros catalogue &eacute;quivaut &agrave; recevoir
- chacun de ces sous-catalogues. Les relations hi&eacute;rarchiques entre
- les sous-catalogues sont d&eacute;crites par les indentations dans la
- liste ci-dessous.</para>
-
- <para>Les catalogues habituellement les plus employ&eacute;s sont
- <literal>src-all</literal>, <literal>cvs-crypto</literal>,
- et <literal>ports-all</literal>. Les autres catalogues ne sont
- utilis&eacute;s que par de petits groupes de personnes pour des besoins
- particuliers, et certains sites miroir ne le mettent pas &agrave;
- disposition.</para>
-
- <variablelist>
- <varlistentry><term><literal>cvs-all
- release=cvs</literal></term>
- <listitem>
- <para>L'archive CVS principale de FreeBSD, &agrave; l'exception
- des logiciels de cryptographie soumis &agrave; des restrictions
- &agrave; l'exportation.</para>
-
- <para>
- <variablelist>
- <varlistentry><term><literal>distrib
- release=cvs</literal></term>
- <listitem>
- <para>Les fichiers ayant trait &agrave; la distribution et
- &agrave; la mise en place de sites miroir FreeBSD.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>doc-all
- release=cvs</literal></term>
-
- <listitem>
- <para>Les sources du manuel FreeBSD et d'autres
- documentations.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-all
- release=cvs</literal></term>
-
- <listitem>
- <para>Le catalogue des logiciels port&eacute;s de
- FreeBSD.</para>
-
- <para>
- <variablelist>
- <varlistentry><term><literal>ports-archivers
- release=cvs</literal></term>
- <listitem>
- <para>Outils d'archivage.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-astro
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels d'astronomie.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-audio
- release=cvs</literal></term>
-
- <listitem>
- <para>Support du son.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-base
- release=cvs</literal></term>
-
- <listitem>
- <para>Fichiers divers en haut de la
- hi&eacute;rarchie
- <filename>/usr/ports</filename>.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-benchmarks
- release=cvs</literal></term>
-
- <listitem>
- <para>Evaluation de performances.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-biology
- release=cvs</literal></term>
-
- <listitem>
- <para>Biologie.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-cad
- release=cvs</literal></term>
-
- <listitem>
- <para>Outils de Conception Assist&eacute;e par
- Ordinateur.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-chinese
- release=cvs</literal></term>
-
- <listitem>
- <para>Support pour le chinois.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-comms
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels de communication.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-converters
- release=cvs</literal></term>
-
- <listitem>
- <para>Conversion entre codages des
- caract&egrave;res.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-databases
- release=cvs</literal></term>
-
- <listitem>
- <para>Bases de donn&eacute;es.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-devel
- release=cvs</literal></term>
-
- <listitem>
- <para>Outils de d&eacute;veloppement.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-editors
- release=cvs</literal></term>
-
- <listitem>
- <para>Editeurs.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-emulators
- release=cvs</literal></term>
-
- <listitem>
- <para>Emulateurs d'autres syst&egrave;mes
- d'exploitation.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-games
- release=cvs</literal></term>
-
- <listitem>
- <para>Jeux.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-german
- release=cvs</literal></term>
-
- <listitem>
- <para>Support pour l'allemand.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-graphics
- release=cvs</literal></term>
-
- <listitem>
- <para>Outils graphiques.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-japanese
- release=cvs</literal></term>
-
- <listitem>
- <para>Support pour le japonais.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-korean
- release=cvs</literal></term>
-
- <listitem>
- <para>Support pour le cor&eacute;en.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-lang
- release=cvs</literal></term>
-
- <listitem>
- <para>Langages de programmation.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-mail
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels de courrier
- &eacute;lectronique.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-math
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels de calcul
- num&eacute;rique.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-mbone
- release=cvs</literal></term>
-
- <listitem>
- <para>Applications MBone.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-misc
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilitaires divers.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-net
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels r&eacute;seau.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-news
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels pour les forums de
- discussion USENET.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-plan9
- release=cvs</literal></term>
-
- <listitem>
- <para>Diff&eacute;rents programmes pour
- Plan9.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-print
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels d'impression.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-russian
- release=cvs</literal></term>
-
- <listitem>
- <para>Support pour le russe.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-security
- release=cvs</literal></term>
-
- <listitem>
- <para>Outils de s&eacute;curit&eacute;.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-shells
- release=cvs</literal></term>
-
- <listitem>
- <para>Interpr&eacute;teurs de commandes.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-sysutils
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilitaires syst&egrave;me.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-textproc
- release=cvs</literal></term>
-
- <listitem>
- <para>Outils de traitement de texte (sauf
- les logiciels de Publication Assist&eacute;e
- par Ordinateur).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-vietnamese
- release=cvs</literal></term>
-
- <listitem>
- <para>Support pour le vietnamien.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-www
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels World Wide Web.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>ports-x11
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciels pour X11.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-all
- release=cvs</literal></term>
-
- <listitem>
- <para>Les sources du syst&egrave;me FreeBSD, &agrave; l'exception
- des logiciels de cryptographie, soumis &agrave; des
- restrictions &agrave; l'exportation.</para>
-
- <para>
- <variablelist>
- <varlistentry><term><literal>src-base
- release=cvs</literal></term>
- <listitem>
- <para>Divers fichiers en haut de la
- hi&eacute;rarchie
- <filename>/usr/src</filename>.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-bin
- release=cvs</literal></term>
-
- <listitem>
- <para>Programmes utilisateurs qui peuvent
- &ecirc;tre utiles en mode mono-utilisateur
- (<filename>/usr/src/bin</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-contrib
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilitaires et biblioth&egrave;ques d'origine
- ind&eacute;pendante du projet FreeBSD, employ&eacute;s
- &agrave; peu pr&egrave;s tels quels
- (<filename>/usr/src/contrib</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-etc
- release=cvs</literal></term>
-
- <listitem>
- <para>Fichiers de configuration du syst&egrave;me
- (<filename>/usr/src/etc</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-games
- release=cvs</literal></term>
-
- <listitem>
- <para>Jeux
- (<filename>/usr/src/games</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-gnu
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilitaires soumis &agrave; la licence
- publique GNU
- (<filename>/usr/src/gnu</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-include
- release=cvs</literal></term>
-
- <listitem>
- <para>Fichiers d'en-t&ecirc;te
- (<filename>/usr/src/include</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-kerberosIV
- release=cvs</literal></term>
-
- <listitem>
- <para>Logiciel de s&eacute;curit&eacute; KerberosIV
- (<filename>/usr/src/kerberosIV</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-lib
- release=cvs</literal></term>
-
- <listitem>
- <para>Biblioth&egrave;ques
- (<filename>/usr/src/lib</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-libexec
- release=cvs</literal></term>
-
- <listitem>
- <para>Programmes syst&egrave;me normalement
- ex&eacute;cut&eacute;s par d'autres programmes
- (<filename>/usr/src/libexec</filename>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-release
- release=cvs</literal></term>
-
- <listitem>
- <para>Fichiers n&eacute;cessaires &agrave; la g&eacute;n&eacute;ration
- d'une version de FreeBSD
- (<filename>/usr/src/release</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-sbin
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilitaires syst&egrave;me pour le mode
- mono-utilisateur
- (<filename>/usr/src/sbin</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-share
- release=cvs</literal></term>
-
- <listitem>
- <para>Fichiers qui peuvent &ecirc;tre partag&eacute;s par
- plusieurs syst&egrave;mes
- (<filename>/usr/src/share</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-sys
- release=cvs</literal></term>
-
- <listitem>
- <para>Le noyau
- (<filename>/usr/src/sys</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-tools
- release=cvs</literal></term>
-
- <listitem>
- <para>Divers outils de maintenance de
- FreeBSD
- (<filename>/usr/src/tools</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-usrbin
- release=cvs</literal></term>
-
- <listitem>
- <para>Outils utilisateurs
- (<filename>/usr/src/usr.bin</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-usrsbin
- release=cvs</literal></term>
-
- <listitem>
- <para>Utilitaires syst&egrave;me
- (<filename>/usr/src/usr.sbin</filename>).</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>www
- release=cvs</literal></term>
-
- <listitem>
- <para>Sources du site World Wide Web.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>cvs-crypto
- release=cvs</literal></term>
-
- <listitem>
- <para>Le code de cryptographie soumis &agrave; des restrictions &agrave;
- l'exportation.</para>
-
- <para>
- <variablelist>
- <varlistentry><term><literal>src-crypto
- release=cvs</literal></term>
- <listitem>
- <para>Utilitaires et biblioth&egrave;ques restreints &agrave;
- l'exportation, d'origine ext&eacute;rieure au projet
- FreeBSD, employ&eacute;s quasiment tels quels
- (<filename>/usr/src/crypto</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-eBones
- release=cvs</literal></term>
-
- <listitem>
- <para>Kerberos et DES
- (<filename>/usr/src/eBones</filename>).</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>src-secure
- release=cvs</literal></term>
-
- <listitem>
- <para>DES
- (<filename>/usr/src/secure</filename>).</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>distrib
- release=self</literal></term>
-
- <listitem>
- <para>Fichier de configuration du serveur CVSup. Utilis&eacute;s
- par les sites miroir CVSup.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>gnats
- release=current</literal></term>
-
- <listitem>
- <para>Bases de donn&eacute;es GNATS d'historique des bogues.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>mail-archive
- release=current</literal></term>
-
- <listitem>
- <para>Archives des listes de diffusion FreeBSD.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>www
- release=current</literal></term>
-
- <listitem>
- <para>Donn&eacute;es World Wide Web publi&eacute;es. Utilis&eacute;es par les
- sites miroir WWW.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- </sect3>
-
- <sect3>
- <title>Annonces, questions, et rapports de bogues</title>
-
- <para>La plupart des discussions relatives &agrave;
- <application>CVSup</application> pour FreeBSD ont lieu sur la
- &a.hackers;. Les nouvelles versions du logiciel y sont annonc&eacute;es,
- ainsi que sur la &a.announce;.</para>
-
- <para>Questions et rapports de bogues doivent &ecirc;tre adress&eacute;s &agrave;
- l'auteur du programme &agrave; l'adresse
- <email>cvsup-bugs@polstra.com</email>.</para>
-
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="makeworld">
- <title>Utiliser <command>make world</command> pour recompiler votre
- syst&egrave;me</title>
-
- <para><emphasis>Contribution de &a.nik;.</emphasis></para>
-
- <para>Une fois que vous avez synchronis&eacute; votre arborescence avec une
- version donn&eacute;e de FreeBSD (<literal>-stable</literal>,
- <literal>-current</literal> et ainsi de suite) vous devez utiliser
- cette arborescence des sources pour reg&eacute;n&eacute;rer votre syst&egrave;me.</para>
-
- <para>La meilleure source d'information sur la fa&ccedil;on de le faire est
- aujourd'hui un guide disponible sur
- <ulink url="&url.tutorials;make-world/index.html">&url.tutorials;make-world</ulink>.</para>
-
- <para>Une nouvelle version de ce guide sera int&eacute;gr&eacute;e &agrave; ce manuel.</para>
-
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml
deleted file mode 100755
index fb90e9cfa1..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml
+++ /dev/null
@@ -1,191 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<chapter id="disks">
- <title>Disques</title>
-
- <para><emphasis>Contribution de &a.obrien; 26 April 1998</emphasis></para>
- &trans.a.haby;
-
- <para>Supposons que nous voulions ajouter un second disque SCSI &agrave; une machine
- qui n'a pour l'instant qu'un seul disque. Commen&ccedil;ons par arr&ecirc;ter l'ordinateur
- et installer le disque en suivant les instructions donn&eacute;es pour l'ordinateur,
- le contr&ocirc;leur et le disque. Comme il y a de nombreuses variantes pour ces
- proc&eacute;dures, les d&eacute;tails d&eacute;bordent le cadre de ce document.</para>
-
- <para>Ouvrons maintenant un session sous le compte
- super-utilisateur <username>root</username>. Apr&egrave;s
- avoir install&eacute; le disque, consultons le fichier
- <filename>/var/run/dmesg.boot</filename>
- pour v&eacute;rifier que le disque a &eacute;t&eacute; reconnu. Dans notre exemple, le disque
- que nous venons d'ajouter sera le p&eacute;riph&eacute;rique <filename>sd1</filename>
- que nous monterons sur le r&eacute;pertoire <filename>/1</filename>. (Si vous
- ajoutez un disque IDE, remplacez <filename>sd</filename> par
- <filename>wd</filename>).</para>
-
- <para>Comme FreeBSD tourne sur des ordinateurs compatibles IBM-PC, il doit
- prendre en compte les partitions PC BIOS. Celles-ci sont diff&eacute;rentes des
- partitions BSD traditionnelles. Un disque PC peut avoir jusqu'&agrave; quatre
- partitions. Si le disque va &ecirc;tre r&eacute;serv&eacute; &agrave; FreeBSD, vous pouvez utiliser
- le mode <emphasis>d&eacute;di&eacute;</emphasis>. Sinon FreeBSD devra utiliser une des
- partitions PC BIOS. FreeBSD appelle les partitions PC BIOS
- <emphasis>tranches (&ldquo;slices&rdquo;)</emphasis> pour les distinguer
- des partitions BSD traditionnelles. Vous pouvez aussi utiliser des
- tranches sur un disque d&eacute;di&eacute; &agrave; FreeBSD, sur une machine o&ugrave; un autre
- syst&egrave;me d'exploitation est aussi install&eacute;. Cela &eacute;vite de perturber
- l'utilitaire <command>fdisk</command> de l'autre syst&egrave;me
- d'exploitation.</para>
-
- <para>Dans le cas d'une tranche, le disque ajout&eacute; deviendra le p&eacute;riph&eacute;rique
- <filename>/dev/sd1s1e</filename>. Ce qui se lit: disque SCSI, num&eacute;ro
- d'unit&eacute; 1 (second disque SCSI), tranche 1 (partition PC BIOS 1), et
- partition BSD <filename>e</filename>. Dans le cas d'un disque d&eacute;di&eacute;, ce
- sera simplement <filename>/dev/sd1e</filename>.</para>
-
- <sect1>
- <title>Utiliser sysinstall</title>
-
- <para>Vous pouvez utiliser <command>/stand/sysinstall</command>
- et ses menus simples d'emploi pour
- partitionner et libeller le nouveau disque.
- Ouvrez une session sous le compte
- super-utilisateur <username>root</username>
- ou servez-vous de la commande <command>su</command>. Lancez
- <command>/stand/sysinstall</command> et choisissez le menu
- <literal>Configure</literal> (Configurer). Dans le <literal>FreeBSD
- Configuration Menu</literal> (Menu de Configuration de FreeBSD),
- descendez dans la liste et s&eacute;lectionnez <literal>Partition</literal>.
- Vous devriez voir appara&icirc;tre la liste des disques durs de votre
- syst&egrave;me. Si <literal>sd1</literal> n'est pas dans la liste, il vous
- faut v&eacute;rifier votre installation physique et le r&eacute;sultat de la
- commande <command>dmesg</command> dans le fichier
- <filename>/var/run/dmesg.boot</filename>.</para>
-
- <para>S&eacute;lectionnez <literal>sd1</literal> pour allez dans le
- <literal>FDISK Partition Editor</literal> (l'&eacute;diteur de
- Partition FDISK). Prenez l'option <literal>A</literal> pour utiliser
- tout le disque pour FreeBSD. Lorsque l'on vous demande si vous
- voulez vous garder la possibilit&eacute; de pouvoir coop&eacute;rer avec d'autres
- syst&egrave;mes d'exploitation (&ldquo;remain cooperative with any future
- possible operating systems&rdquo;), r&eacute;pondez par l'affirmative
- (<literal>YES</literal>). Enregistrez vos modifications sur disque
- avec <command>W</command>. Quittez maintenant l'&eacute;diteur FDISK avec
- <command>q</command>. La prochaine question concernera l'enregistrement
- de d&eacute;marrage (&ldquo;Master Boot Record&rdquo;). Comme vous ajoutez un
- disque &agrave; un syst&egrave;me d&eacute;j&agrave; op&eacute;rationnel, choisissez <literal>None</literal>
- (aucun).</para>
-
- <para>Allez maintenant dans le <literal>Disk Label Editor</literal> (l'&eacute;diteur
- de label du disque). C'est l&agrave; que vous allez cr&eacute;er les partitions BSD
- traditionnelles. Un disque peut avoir jusqu'&agrave; huit partitions, libell&eacute;es
- de a &agrave; h. Certains de ces labels ont des significations particuli&egrave;res.
- La partition <literal>a</literal> est la partition racine (<filename>/</filename>).
- Seul votre disque syst&egrave;me (e.g., celui &agrave; partir duquel vous d&eacute;marrez)
- doit avoir une partition <literal>a</literal>. La partition
- <literal>b</literal> sert &agrave; la pagination, vous pouvez avoir plusieurs
- disques avec des partitions de pagination. La partition <literal>c</literal>
- d&eacute;signe la totalit&eacute; du disque en mode d&eacute;di&eacute;, ou toute la tranche FreeBSD
- dans le cas contraire. Les autres partitions sont &agrave; usage g&eacute;n&eacute;ral.</para>
-
- <para>L'&eacute;diteur de label de <command>sysinstall</command> d&eacute;finit par d&eacute;faut la
- partition <literal>e</literal> comme premi&egrave;re partition qui n'est ni
- racine, ni de pagination. Dans l'&eacute;diteur de label, cr&eacute;ez un seul
- syst&egrave;me de fichiers avec l'option <command>C</command>. Quand on vous
- demande si ce sera un syst&egrave;me de fichier (FS) ou une partition de
- pagination, choisissez <literal>FS</literal> et indiquez un point de
- montage (e.g, <filename>/mnt</filename>). Lorsque vous ajoutez un
- disque &agrave; un syst&egrave;me d&eacute;j&agrave; install&eacute;, <command>sysinstall</command> ne
- cr&eacute;e pas d'entr&eacute;e dans <filename>/etc/fstab</filename>, donc le nom
- que vous donnez au point de montage n'a pas d'importance.</para>
-
- <para>Vous pouvez maintenant &eacute;crire le nouveau label sur le disque et y
- cr&eacute;er un syst&egrave;me de fichiers. Faites-le avec la commande <command>W</command>.
- Ne faites pas attention aux erreurs de <command>sysinstall</command>
- qui vous disent que la nouvelle partition ne peut pas &ecirc;tre mont&eacute;e. Quittez
- maintenant l'&eacute;diteur de label et <command>sysinstall</command>.</para>
-
- <para>La derni&egrave;re &eacute;tape consiste &agrave; &eacute;diter le fichier
- <filename>/etc/fstab</filename> pour y ajouter une entr&eacute;e pour votre nouveau
- disque.</para>
- </sect1>
-
- <sect1>
- <title>Employer les utilitaires sur la ligne de commande</title>
-
- <sect2>
- <title>* Utiliser les tranches&nbsp;-&nbsp;&ldquo;slices&rdquo;</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>Disque d&eacute;di&eacute;</title>
-
- <para>Si le nouveau disque n'est pas destin&eacute; &agrave; &ecirc;tre partag&eacute; avec un autre
- syst&egrave;me d'exploitation, vous pouvez utiliser le mode <literal>d&eacute;di&eacute;</literal>.
- Rappelez-vous que ce mode peut perturber les syst&egrave;mes d'exploitation Microsoft;
- cependant, ils ne toucheront pas au disque. OS/2 d'IBM, au contraire,
- &ldquo;s'approprie&rdquo; toute partition qu'il trouve et ne reconna&icirc;t
- pas.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rsd1 bs=1k count=1</userinput>
-&prompt.root; <userinput>disklabel -Brw sd1 auto</userinput>
-&prompt.root; <userinput>disklabel -e sd</userinput>1 # cr&eacute;er la partition `e'
-&prompt.root; <userinput>newfs -d0 /dev/rsd1e</userinput>
-&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # ajouter une entr&eacute;e pour /dev/sd1e
-&prompt.root; <userinput>mount /1</userinput></screen>
- </informalexample>
-
- <para>Voici une autre m&eacute;thode:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rsd1 count=2</userinput>
-&prompt.root; <userinput>disklabel /dev/rsd1 | disklabel -BrR sd1 /dev/stdin</userinput>
-&prompt.root; <userinput>newfs /dev/rsd1e</userinput>
-&prompt.root; <userinput>mkdir -p /1</userinput>
-&prompt.root; <userinput>vi /etc/fstab</userinput> # ajouter une entr&eacute;e pour /dev/sd1e
-&prompt.root; <userinput>mount /1</userinput></screen>
- </informalexample>
- </sect2>
- </sect1>
-
- <sect1>
- <title>* Autres types de disques</title>
-
- <sect2>
- <title>* Disques Zip</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Disques Jazz</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Disques Sequest</title>
-
- <para></para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/eresources/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/eresources/chapter.sgml
deleted file mode 100644
index 4fc16d23e4..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/eresources/chapter.sgml
+++ /dev/null
@@ -1,1357 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.11
--->
-
-<chapter id="eresources">
- <title>Ressources sur Internet</title>
-
- <para><emphasis>Contribution de &a.jkh;.</emphasis></para>
- &trans.a.haby;
-
- <para>L'&eacute;volution rapide de FreeBSD rend peu pratique le suivi des
- derniers d&eacute;veloppements via des supports imprim&eacute;s. Les
- supports &eacute;lectroniques sont le meilleur, sinon la plupart du temps,
- le seul moyen, de se tenir au courant des derni&egrave;res
- &eacute;volutions. Comme FreeBSD est une entreprise b&eacute;n&eacute;vole,
- la communaut&eacute; des utilisateurs sert aussi souvent de &ldquo;service
- de support technique&rdquo;, le courrier &eacute;lectronique et les forums
- de discussion &eacute;tant le meilleur moyen de contacter cette
- communaut&eacute;.</para>
-
- <para>Les points de contact les plus importants avec la communaut&eacute; des
- utilisateurs de FreeBSD sont list&eacute;s ci-dessous. Si vous connaissez
- d'autres ressources qui n'y figurent pas, communiquez-les s'il vous
- pla&icirc;t &agrave; la &a.doc;, de fa&ccedil;on &agrave; ce qu'elles
- soient aussi mentionn&eacute;es.</para>
-
- <sect1 id="eresources-mail">
- <title>Listes de diffusion</title>
-
- <para>Bien que nombre des d&eacute;veloppeurs de FreeBSD lisent les forums
- de discussion, nous ne pouvons vous garantir de r&eacute;ponse en temps et
- heure &agrave; vos questions (ni m&ecirc;me de r&eacute;ponse tout court)
- si vous ne les poster que sur un des groupes
- <literal>comp.unix.bsd.freebsd.*</literal>. En posant vos questions sur
- la liste de diffusion appropri&eacute;e, vous nous contacterez en
- m&ecirc;me temps qu'un auditoire FreeBSD concentr&eacute;, ce qui vous
- garantit invariablement une meilleure r&eacute;ponse (ou au moins une
- r&eacute;ponse plus rapide).</para>
-
- <para>Les directives d'usage des diff&eacute;rentes listes sont
- donn&eacute;es &agrave; la fin de ce document. <emphasis>Lisez-les
- s'il vous pla&icirc;t avant de vous inscrire ou d'envoyer du courrier
- &agrave; une liste</emphasis>. La plupart des souscripteurs de nos listes
- recoivent maintenant des centaines de messages en rapport avec FreeBSD
- tous les jours, et en d&eacute;finissant des directives et des
- r&egrave;gles d'utilisation, nous essayons de garder assez
- &eacute;lev&eacute; le rapport signal/bruit sur ces listes. Ne pas le
- faire am&egrave;nerait l'&eacute;chec des listes de diffusion comme
- moyen efficace de communication pour le projet.</para>
-
- <para>Des archives de toutes les listes de diffusion sont conserv&eacute;es
- et peuvent &ecirc;tre consult&eacute;es sur le
- <ulink URL="http://www.FreeBSD.ORG/search.html">serveur World Wide Web de
- FreeBSD</ulink>. Les archives interrogeables par mots-cl&eacute;s sont un
- excellent moyen de trouver des r&eacute;ponses aux questions
- fr&eacute;quemment pos&eacute;es et devraient &ecirc;tre consult&eacute;es
- avant de poster une question.</para>
-
- <sect2 id="eresources-summary">
- <title>R&eacute;sum&eacute; des listes de diffusion</title>
-
- <para><emphasis>Listes g&eacute;n&eacute;rales&nbsp;:</emphasis> Les
- listes suivantes sont des listes g&eacute;n&eacute;rales auxquelles
- chacun est libre (et encourag&eacute;) &agrave; participer&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Liste</entry>
- <entry>Objet</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>freebsd-advocacy</entry>
- <entry>Propagande FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-announce</entry>
- <entry>Ev&eacute;nements importants concernant le projet</entry>
- </row>
-
- <row>
- <entry>freebsd-bugs</entry>
- <entry>Rapports de bogues</entry>
- </row>
-
- <row>
- <entry>freebsd-chat</entry>
- <entry>Sujets non-techniques en rapport avec la communaut&eacute;
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-current</entry>
- <entry>Discussions concernant l'utilisation de
- FreeBSD-current</entry>
- </row>
-
- <row>
- <entry>freebsd-isp</entry>
- <entry>Pour les fournisseurs d'acc&egrave;s Internet utilisant
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-jobs</entry>
- <entry>Emplois et interventions de consultants en rapport avec
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-newbies</entry>
- <entry>Activit&eacute;s et discussions entre nouveaux utilisateurs
- de FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-questions</entry>
- <entry>Questions des utilisateurs et support technique</entry>
- </row>
-
- <row>
- <entry>freebsd-stable</entry>
- <entry>Discussions concernant l'utilisation de
- FreeBSD-stable</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>Listes techniques&nbsp;:</emphasis> Les listes suivantes
- sont destin&eacute;es aux discussions techniques. Vous devriez lire les
- directives relatives &agrave; chaque liste avant d'y souscrire ou d'y
- adresser du courrier parce que ce sont des r&egrave;gles fermes quand
- &agrave; leur utilisation et leur contenu.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Liste</entry>
- <entry>Objet</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>freebsd-afs</entry>
- <entry>Portage d'AFS sous FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-alpha</entry>
- <entry>Portage de FreeBSD sur Alpha</entry>
- </row>
-
- <row>
- <entry>freebsd-doc</entry>
- <entry>R&eacute;daction de documents relatifs &agrave;
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-database</entry>
- <entry>Discussions &agrave; propos de l'utilisation et du
- d&eacute;veloppement de bases de donn&eacute;es sous
- FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-emulation</entry>
- <entry>Emulation d'autres syst&egrave;mes tels que
- Linux/DOS/Windows</entry>
- </row>
-
- <row>
- <entry>freebsd-fs</entry>
- <entry>Syst&egrave;mes de fichiers</entry>
- </row>
-
- <row>
- <entry>freebsd-hackers</entry>
- <entry>Discussions techniques g&eacute;n&eacute;rales</entry>
- </row>
-
- <row>
- <entry>freebsd-hardware</entry>
- <entry>Discussions g&eacute;n&eacute;rales sur le mat&eacute;riel
- utilisable avec FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-isdn</entry>
- <entry>D&eacute;veloppeurs ISDN</entry>
- </row>
-
- <row>
- <entry>freebsd-java</entry>
- <entry>D&eacute;veloppeurs Java et personnes portant les JDKs
- sous FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-mobile</entry>
- <entry>Discussions &agrave; propos des portables</entry>
- </row>
-
- <row>
- <entry>freebsd-mozilla</entry>
- <entry>Portage de mozilla sous FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-net</entry>
- <entry>Discussions sur le r&eacute;seau et le code source
- TCP/IP</entry>
- </row>
-
- <row>
- <entry>freebsd-platforms</entry>
- <entry>A propos des portages sur les plates-formes
- non-Intel</entry>
- </row>
-
- <row>
- <entry>freebsd-ports</entry>
- <entry>Discussions sur le catalogue des logiciels
- port&eacute;s</entry>
- </row>
-
- <row>
- <entry>freebsd-scsi</entry>
- <entry>Sous-syst&egrave;me SCSI</entry>
- </row>
-
- <row>
- <entry>freebsd-security</entry>
- <entry>Questions concernant la securit&eacute;</entry>
- </row>
-
- <row>
- <entry>freebsd-small</entry>
- <entry>Utilisation de FreeBSD pour des applications
- embarqu&eacute;es</entry>
- </row>
-
- <row>
- <entry>freebsd-smp</entry>
- <entry>Discussions sur l'impl&eacute;mentation du MultiProcessing
- [A]Sym&eacute;trique</entry>
- </row>
-
- <row>
- <entry>freebsd-sparc</entry>
- <entry>Portage de FreeBSD sur les syst&egrave;mes Sparc</entry>
- </row>
-
- <row>
- <entry>freebsd-tokenring</entry>
- <entry>Support de l'anneau &agrave; jetons sous FreeBSD</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>Listes &agrave; acc&egrave;s restreint&nbsp;:</emphasis>
- Il faut l'accord de <email>core@FreeBSD.ORG</email> pour pouvoir
- souscrire aux listes qui suivent, bien que chacun soit libre d'y
- adresser des messages s'ils satisfont &agrave; leurs directives
- d'utilisation. C'est aussi une bonne id&eacute;e d'&ecirc;tre d'abord
- actif sur les listes techniques avant de souscrire &agrave; une des
- listes r&eacute;serv&eacute;es.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Liste</entry>
- <entry>Objet</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>freebsd-admin</entry>
- <entry>Questions administratives</entry>
- </row>
-
- <row>
- <entry>freebsd-arch</entry>
- <entry>Discussions sur l'architecture et
- l'impl&eacute;mentation</entry>
- </row>
-
- <row>
- <entry>freebsd-core</entry>
- <entry>Equipe de base FreeBSD</entry>
- </row>
-
- <row>
- <entry>freebsd-hubs</entry>
- <entry>Pour ceux qui g&egrave;rent des sites miroir (questions
- d'infrastructure)</entry>
- </row>
-
- <row>
- <entry>freebsd-install</entry>
- <entry>D&eacute;veloppements relatifs &agrave;
- la proc&eacute;dure d'installation</entry>
- </row>
-
- <row>
- <entry>freebsd-security-notifications</entry>
- <entry>Avis de s&eacute;curit&eacute;</entry>
- </row>
-
- <row>
- <entry>freebsd-user-groups</entry>
- <entry>Coordination des groupes d'utilisteurs</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>Listes CVS&nbsp;:</emphasis> Les listes qui suivent sont
- destin&eacute;es &agrave; ceux qui souhaitent voir les traces des
- modifications de dif&eacute;rentes parties de l'arborescence des
- sources. Ce sont des listes en <emphasis>lecture seule</emphasis> et il
- ne faut pas leur adresser de courrier.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Liste</entry>
- <entry>Partie du code</entry>
- <entry>Description du source concern&eacute;</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>cvs-all</entry>
- <entry>/usr/src</entry>
- <entry>Toutes les modifications de l'arborescence
- (sur-ensemble)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2 id="eresources-subscribe">
- <title>Comment souscrire</title>
-
- <para>Toutes les listes de diffusion sont g&eacute;r&eacute;es sur <hostid
- role="fqdn">FreeBSD.ORG</hostid>. Pour poster sur une liste
- donn&eacute;e, vous envoyez simplement votre courrier &agrave;
- <email><replaceable>nom-de-la-liste</replaceable>@FreeBSD.ORG</email>.
- Il sera alors redistribu&eacute; aux membres de la liste dans le monde
- entier.</para>
-
- <para>Pour souscrire &agrave; une liste, envoyez un courrier
- &agrave; &a.majordomo; et incluez&nbsp;:</para>
-
- <programlisting>
-subscribe &lt;nom-de-la-liste&gt; [&lt;adresse optionnelle&gt;]</programlisting>
-
- <para>dans le corps de votre message. Par exemple, pour vous inscrire
- &agrave; &a.announce;, vous taperiez&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.ORG</userinput>
-subscribe freebsd-announce
-^D</screen>
-
- <para>Si vous voulez vous inscrire sous un autre nom, ou si vous envoyez
- une demande d'inscription pour une liste de diffusion locale (c'est plus
- efficace si vous avez plusieurs personnes int&eacute;ress&eacute;es sur
- un m&ecirc;me site, et tr&egrave;s appr&eacute;ci&eacute; par
- nous&nbsp;!), vous taperiez quelque chose comme&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.ORG</userinput>
-subscribe freebsd-announce annonces-locales@un-site.com
-^D</screen>
-
- <para>Enfin, il est aussi possible de vous d&eacute;sabonner d'une liste,
- d'obtenir la liste des autres membres de la liste, ou d'obtenir la liste
- de toutes les listes en envoyant aussi des messages de contr&ocirc;le
- &agrave; &a.majordomo; Pour avoir la liste compl&egrave;te des
- commandes disponibles, faites&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.ORG</userinput>
-help
-^D</screen>
-
- <para>Nous voudrions vous demander encore de garder aux discussions sur
- les listes techniques leur contenu technique. Si seuls les points
- &ldquo;saillants&rdquo; vous int&eacute;ressent, nous vous
- sugg&eacute;rons de souscrire &agrave; &a.announce;, dont le trafic
- n'est qu'occasionnel.</para>
- </sect2>
-
- <sect2 id="eresources-charters">
- <title>Directives d'utilisation des listes</title>
-
- <para>Il y a pour <emphasis>toutes</emphasis> les listes de diffusion
- FreeBSD des r&egrave;gles de base auxquelles tous leurs utilisateurs
- doivent se conformer. En cas de non respect de ces r&egrave;gles, et
- apr&egrave;s deux (2) avertissements &eacute;crits de la part du
- &ldquo;<foreignphrase>Postmaster</foreignphrase>&rdquo;
- <email>postmaster@freebsd.org</email>, au troisi&egrave;me manquement,
- le contrevenant sera d&eacute;sabonn&eacute; de toutes les listes de
- diffusion de FreeBSD, et ses messages ult&eacute;rieurs filtr&eacute;s.
- Nous regrettons de devoir prendre de telles mesures, mais l'Internet
- d'aujourd'hui est un milieu apparemment assez hostile, et beaucoup
- ne se rendent pas compte de la fragilit&eacute; de certains de ses
- m&eacute;canismes.</para>
-
- <para>R&egrave;gles g&eacute;n&eacute;rales&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Le sujet de tout message doit correspondre au sujet
- trait&eacute; par la liste &agrave; laquelle il est adress&eacute;,
- e.g., si c'est une liste sur un sujet technique, le contenu du
- message ne devra &ecirc;tre que technique. Le bavardage continu et
- les pol&eacute;miques ne font que d&eacute;grader pour tous ses
- utilisateurs la qualit&eacute; de la liste de diffusion et ne seront
- pas tol&eacute;r&eacute;s. La &a.chat; est disponible pour les
- discussions sans sujet particulier et doit &ecirc;tre
- utilis&eacute;e dans ce cas.</para>
- </listitem>
-
- <listitem>
- <para>Aucun message ne doit &ecirc;tre adress&eacute; &agrave; plus de
- 2 listes de diffusion, et &agrave; 2 listes uniquement au cas
- o&ugrave; il y a n&eacute;cessit&eacute; &eacute;vidente de poster
- sur les 2 listes. Pour la plupart des listes, il y a
- d&eacute;j&agrave; beaucoup de souscripteurs communs, et mis
- &agrave; part les cas les plus &eacute;sot&eacute;riques (par
- exemple &ldquo;-stable &amp; -scsi&rdquo;), il n'y a pas vraiment de
- raison de poster sur plus d'une liste &agrave; la fois. Si vous
- recevez un message o&ugrave; apparaissent sur la ligne
- <literal>Cc</literal> plusieurs listes de diffusion, vous devez
- purger cette ligne <literal>cc</literal> avant d'y r&eacute;pondre.
- Vous &ecirc;tes <emphasis>toujours</emphasis> responsable de vos
- exp&eacute;ditions crois&eacute;es, peu importe qui en a
- &eacute;t&eacute; &agrave; l'origine.</para>
- </listitem>
-
- <listitem>
- <para>Les attaques personnelles et les jurons (dans le cadre d'une
- discussion) ne sont pas autoris&eacute;s, et cela concerne tout
- autant les utilisateurs que les d&eacute;veloppeurs. Les
- manquements grossiers &agrave; la &ldquo;n&eacute;tiquette&rdquo;,
- citer ou reposter des courriers priv&eacute;s quand l'accord n'en
- a pas &eacute;t&eacute; donn&eacute; et ne le sera pas, par exemple,
- sont d&eacute;sapprouv&eacute;s, mais pas particuli&egrave;rement
- r&eacute;prim&eacute;s. Il y a
- <emphasis>n&eacute;anmoins</emphasis> de rares cas o&ugrave; de tels
- contenus rentrent dans le cadre des violations aux r&egrave;gles
- d'utilisation d'une liste, et entra&icirc;neront donc probablement
- un avertissement (ou une exclusion) pour cette seule raison.</para>
- </listitem>
-
- <listitem>
- <para>La publicit&eacute; pour des produits ou services sans rapport
- avec FreeBSD est rigoureusement interdite et entra&icirc;nera l'exclusion imm&eacute;diate s'il s'av&egrave;re que le contrevenant
- adresse ses publicit&eacute;s par &ldquo;courrier
- &eacute;lectronique non
- sollicit&eacute;&rdquo;&nbsp;-&nbsp;<foreignphrase>spam</foreignphrase>.</para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>Directives liste par liste&nbsp;:</emphasis></para>
-
- <variablelist>
- <varlistentry>
- <term>FREEBSD-AFS</term>
-
- <listitem>
- <para><emphasis>Syst&egrave;me de fichiers
- AFS&nbsp;-&nbsp;<foreignphrase>Andrew File
- System</foreignphrase></emphasis></para>
-
- <para>C'est une liste de discussion sur le portage et l'utilisation
- d'AFS de CMU/Transarc.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ADMIN</term>
-
- <listitem>
- <para><emphasis>Questions administratives</emphasis></para>
-
- <para>Cette liste est r&eacute;serv&eacute;e &agrave la discussion
- des questions relatives &agrave;
- <hostid role="domainname">freebsd.org</hostid> et pour signaler
- les probl&egrave;mes et abus de ressources du projet. C'est une
- liste ferm&eacute;e, bien que quiconque puisse y signaler un
- probl&egrave;me (avec nos syst&egrave;mes&nbsp;!).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ANNOUNCE</term>
-
- <listitem>
- <para><emphasis>Ev&eacute;nements importants</emphasis></para>
-
- <para>C'est une liste pour les gens int&eacute;ress&eacute;s
- uniquement par les annonces occasionnelles d'&eacute;venements
- FreeBSD importants. Cela inclut les annonces d'instantan&eacute;s
- et autres versions. Cela comprend aussi les annonces de nouvelles
- fonctionnalit&eacute;s de FreeBSD. Il peut y avoir aussi appel
- &agrave; volontaires, etc. C'est une liste de faible volume et
- rigoureusement mod&eacute;r&eacute;e.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ARCH</term>
-
- <listitem>
- <para><emphasis>Discussions concernant l'architecture et
- l'impl&eacute;mentation</emphasis></para>
-
- <para>C'est une liste mod&eacute;r&eacute;e pour discuter de
- l'architecture de FreeBSD. Les messages y seront habituellement
- de nature technique, bien que le mod&eacute;rateur puisse
- (occasionnellement) laisser passer d'autres messages qu'il juge
- n&eacute;cessaire de transmettre aux autres membres de la liste.
- Des exemples de sujets qui cadrent avec cette listes
- sont&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Comment revoir le syst&egrave;me de compilation pour que
- plusieurs compilations personnalis&eacute;es puissent
- &ecirc;tre effectu&eacute;es en m&ecirc;me temps,</para>
- </listitem>
-
- <listitem>
- <para>Que faut-il corriger dans VFS pour que les couches
- Heidemann fonctionnent,</para>
- </listitem>
-
- <listitem>
- <para>Comment modifier l'interface des pilotes de
- p&eacute;riph&eacute;riques pour que la m&ecirc;me interface
- fonctionne proprement sur diff&eacute;rents bus et
- architectures,</para>
- </listitem>
-
- <listitem>
- <para>Comment &eacute;crire un pilote
- r&eacute;seau&nbsp;?</para>
- </listitem>
- </itemizedlist>
-
- <para>Le mod&eacute;rateur se r&eacute;serve le droit d'apporter des
- corrections mineures (orthographe, grammaire, simplification) aux
- messages qui sont post&eacute;s sur la liste. Le volume de la
- liste restera faible, ce qui peut impliquer de reporter des sujets
- tant qu'une discussion en cours n'est pas termin&eacute;e.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-BUGS</term>
-
- <listitem>
- <para><emphasis>Rapports de bogues</emphasis></para>
-
- <para>C'est la liste pour &eacute;mettre les rapports de bogues de
- FreeBSD. Chaque fois que c'est possible, les rapports de bogues
- doivent &ecirc;tre soumis avec &man.send-pr.1; ou son
- <ulink URL="http://www.freebsd.org/send-pr.html">interface
- Web</ulink>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CHAT</term>
-
- <listitem>
- <para><emphasis>Sujets non techniques en rapport avec la
- communaut&eacute; FreeBSD</emphasis></para>
-
- <para>Cette liste re&ccedil;oit le r&eacute;sidu des discussions sur
- les autres listes&nbsp;: informations sociologiques, et non
- techniques. Cela va de savoir si Jordan ressemble ou non au furet
- de la bande dessin&eacute;e, s'il faut tapez en majuscules, qui
- boit trop de caf&eacute;, quelle est la meilleure bi&egrave;re,
- qui brasse de la bi&egrave;re dans sa cave, et ainsi de suite.
- Les annonces occasionnelles d'&eacute;v&eacute;nements importants
- (les prochaines f&ecirc;tes, mariages, naissances, nouveaux
- emplois, etc.) peuvent &ecirc;tre adress&eacute;es aux listes
- techniques, mais doivent ensuite &ecirc;tre redirig&eacute;es sur
- la &a.chat;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CORE</term>
-
- <listitem>
- <para><emphasis>Equipe de base FreeBSD</emphasis></para>
-
- <para>C'est une liste interne &agrave; l'usage des membres de
- l'&eacute;quipe de base. Des messages peuvent y &ecirc;tre
- adress&eacute;s lorsqu'un sujet en rapport avec FreeBSD demande
- arbitrage ou examen &agrave; haut niveau.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CURRENT</term>
-
- <listitem>
- <para><emphasis>Discussions concernant l'utilisation de
- FreeBSD-current</emphasis></para>
-
- <para>C'est la liste de diffusion pour les utilisateurs de
- FreeBSD-current. Elle inclut avertissements au sujet de nouvelles
- fonctionnalit&eacute;s de -current qui affecteront son
- utilisation, et instructions sur ce qu'il faut faire pour
- rester &agrave; jour avec -current. Tous les utilisateurs de
- &ldquo;current&rdquo; doivent souscrire &agrave; cette liste.
- C'est une liste de discussion technique sur laquelle le contenu
- doit &ecirc;tre strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-CURRENT-DIGEST</term>
-
- <listitem>
- <para><emphasis>Discussions concernant l'utilisation de
- FreeBSD-current</emphasis></para>
-
- <para>C'est la version abr&eacute;g&eacute; de la liste
- freebsd-current. Le r&eacute;sum&eacute; est constitu&eacute; de
- tous les messages envoy&eacute;s &agrave; freebsd-current
- regroup&eacute;s en un seul. La taille moyenne de ce message est
- de 40 Ko. C'est une liste en <emphasis>lecture seule</emphasis>
- sur laquelle il ne faut pas poster.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-DOC</term>
-
- <listitem>
- <para><emphasis>Projet de documentation</emphasis></para>
-
- <para>C'est la liste de discussion sur les questions et projets
- li&eacute;s &agrave; la r&eacute;daction de documentation pour
- FreeBSD. Les membres de cette liste sont collectivement
- appel&eacute;s &ldquo;Le Projet de Documentation de
- FreeBSD&rdquo;&nbsp;-&nbsp;<foreignphrase>The FreeBSD
- Documentation Project</foreignphrase>. C'est une liste ouverte;
- n'h&eacute;sitez pas &agrave; souscrire et &agrave;
- participer.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-FS</term>
-
- <listitem>
- <para><emphasis>Syst&egrave;mes de fichiers</emphasis></para>
-
- <para>Discussions concernant les syst&egrave;mes de fichiers
- FreeBSD. C'est une liste de discussion technique sur laquelle le
- contenu doit &ecirc;tre strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-HACKERS</term>
-
- <listitem>
- <para><emphasis>Discussions techniques</emphasis></para>
-
- <para>C'est le forum pour les discussions techniques au sujet de
- FreeBSD. C'est la principale liste technique. Elle est
- destin&eacute;e &agrave; ceux qui travaillent activement &agrave;
- FreeBSD, pour soulever des probl&egrave;mes et discuter de
- solutions alternatives. Ceux qui sont int&eacute;ress&eacute;s
- &agrave; suivre les discussions techniques sont aussi bienvenus.
- C'est une liste de discussion technique sur laquelle le contenu
- doit &ecirc;tre strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-HACKERS-DIGEST</term>
-
- <listitem>
- <para><emphasis>Discussions techniques</emphasis></para>
-
- <para>C'est la version abr&eacute;g&eacute; de la liste
- freebsd-hackers. Le r&eacute;sum&eacute; est constitu&eacute; de
- tous les messages envoy&eacute;s &agrave; freebsd-hackers
- regroup&eacute;s en un seul. La taille moyenne de ce message est
- de 40 Ko. C'est une liste en <emphasis>lecture seule</emphasis>
- sur laquelle il ne faut pas poster.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-HARDWARE</term>
-
- <listitem>
- <para><emphasis>Discussions g&eacute;n&eacute;rales sur le
- mat&eacute;riel pour FreeBSD</emphasis></para>
-
- <para>Discussions g&eacute;n&eacute;rales sur les types de
- mat&eacute;riel sur lesquels tourne FreeBSD, les
- probl&egrave;mes rencontr&eacute;s et suggestions sur quoi
- acheter ou &eacute;viter.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-INSTALL</term>
-
- <listitem>
- <para><emphasis>Discussions sur l'installation</emphasis></para>
-
- <para>C'est la liste pour discuter du d&eacute;veloppement de la
- proc&eacute;dure d'installation des versions &agrave; venir de
- FreeBSD. Elle n'est pas ouverte.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ISDN</term>
-
- <listitem>
- <para><emphasis>Communications ISDN</emphasis></para>
-
- <para>C'est la liste pour les personnes discutant du
- d&eacute;veloppement du support ISDN de FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-ISP</term>
-
- <listitem>
- <para><emphasis>Questions concernant les fournisseurs d'acc&egrave;s
- &agrave; Internet</emphasis></para>
-
- <para>C'est la liste pour discuter des sujets qui int&eacute;ressent
- les fournisseurs d'acc&egrave;s
- Internet&nbsp;-&nbsp;<foreignphrase>Internet Service Providers
- (ISPs)</foreignphrase>&nbsp;-&nbsp;qui utilisent FreeBSD. C'est
- une liste de discussion technique sur laquelle le contenu doit
- &ecirc;tre strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-JAVA</term>
-
- <listitem>
- <para><emphasis>D&eacute;veloppement Java</emphasis></para>
-
- <para>C'est la liste pour les personnes discutant du
- d&eacute;veloppement d'applications Java significatives sous
- FreeBSD et du portage et de la maintenance des JDKs.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-NEWBIES</term>
-
- <listitem>
- <para><emphasis>Discussions des activit&eacute;s des
- d&eacute;butants</emphasis></para>
-
- <para>Nous couvrons toutes les activit&eacute;s de ceux qui
- d&eacute;butent avec FreeBSD qui ne sont pas envisag&eacute;es
- ailleurs, y compris&nbsp;: apprentissage autonome et techniques de
- r&eacute;solutions des probl&egrave;mes, comment trouver et
- utiliser les ressources disponibles et demander ailleurs de
- l'aide, comment utiliser les listes de diffusion et lesquelles
- utiliser, la discussion d'ordre g&eacute;n&eacute;ral, les
- erreurs commises, les fanfaronnades, le partage d'id&eacute;es,
- les histoires, le support moral (mais pas technique) et comment
- participer activement dans la communaut&eacute; FreeBSD. Nous
- transmettons nos probl&egrave;mes et questions &agrave;
- freebsd-questions, et nous servons de freebsd-newbies pour
- rencontrer d'autres personnes qui, d&eacute;butants comme nous,
- font les m&ecirc;mes choses que nous.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-PLATFORMS</term>
-
- <listitem>
- <para><emphasis>Portages sur les plates-formes
- Non-Intel</emphasis></para>
-
- <para>Questions concernant le support d'autres plates-formes,
- discussions g&eacute;n&eacute;rales et propositions pour les
- portages sur des plates-formes non-Intel. C'est une liste de
- discussion technique sur laquelle le contenu doit &ecirc;tre
- strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-PORTS</term>
-
- <listitem>
- <para><emphasis>Discussions des
- &ldquo;logiciels port&eacute;s&rdquo;</emphasis></para>
-
- <para>Discussions concernant le &ldquo;catalogue des logiciels
- port&eacute;s&rdquo; de FreeBSD (<filename>/usr/ports</filename>),
- propositions de portages, modifications de l'infrastructure du
- catalogue des logiciels port&eacute;s et coordination
- g&eacute;n&eacute;rale. C'est une liste de discussion technique
- sur laquelle le contenu doit &ecirc;tre strictement
- technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-QUESTIONS</term>
-
- <listitem>
- <para><emphasis>Questions des utilisateurs</emphasis></para>
-
- <para>C'est la liste pour les questions &agrave; propos de FreeBSD.
- Il ne faut pas adresser de questions &ldquo;comment
- faire&nbsp?&rdquo; aux listes techniques &agrave; moins que vous
- n'estimiez que la question soit vraiment tr&egrave;s
- technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-QUESTIONS-DIGEST</term>
-
- <listitem>
- <para><emphasis>Questions des utilisateurs</emphasis></para>
-
- <para>C'est la version abr&eacute;g&eacute; de la liste
- freebsd-questions. Le r&eacute;sum&eacute; est constitu&eacute; de
- tous les messages envoy&eacute;s &agrave; freebsd-questions
- regroup&eacute;s en un seul. La taille moyenne de ce message est
- de 40 Ko.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SCSI</term>
-
- <listitem>
- <para><emphasis>Sous-syst&egrave;me SCSI</emphasis></para>
-
- <para>C'est la liste de diffusion pour ceux qui travaillent sur le
- sous-syst&egrave;me SCSI de FreeBSD. C'est une liste de discussion
- technique sur laquelle le contenu doit &ecirc;tre strictement
- technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SECURITY</term>
-
- <listitem>
- <para><emphasis>Questions relatives &agrave; la
- s&eacute;curit&eacute;</emphasis></para>
-
- <para>Questions ayant trait &agrave; la s&eacute;curit&eacute; des
- ordinateurs sous FreeBSD (DES, Kerberos, trous de
- s&eacute;curit&eacute; connus et correctifs, etc.) C'est une liste
- de discussion technique sur laquelle le contenu doit &ecirc;tre
- strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SECURITY-NOTIFICATIONS</term>
-
- <listitem>
- <para><emphasis>Avis de s&eacute;curit&eacute;</emphasis></para>
-
- <para>Notifications des probl&egrave;mes de s&eacute;curit&eacute;
- concernant FreeBSD et correctifs. Ce n'est pas une liste de
- discussion. La liste de discussion correspondante est
- FreeBSD-security.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-SMALL</term>
-
- <listitem>
- <para>Cette liste discute des sujets relatifs aux installations
- inhabituellement petites et embarqu&eacute;es de FreeBSD. C'est
- une liste de discussion technique sur laquelle le contenu doit
- &ecirc;tre strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-STABLE</term>
-
- <listitem>
- <para><emphasis>Discussions concernant l'utilisation de
- FreeBSD-stable</emphasis></para>
-
- <para>C'est la liste de diffusion pour les utilisateurs de
- FreeBSD-stable. Elle inclut avertissements au sujet de nouvelles
- fonctionnalit&eacute;s de -stable qui affecteront son
- utilisation, et instructions sur ce qu'il faut faire pour
- rester &agrave; jour avec -stable. Tous les utilisateurs de
- &ldquo;stable&rdquo; doivent souscrire &agrave; cette liste.
- C'est une liste de discussion technique sur laquelle le contenu
- doit &ecirc;tre strictement technique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FREEBSD-USER-GROUPS</term>
-
- <listitem>
- <para><emphasis>Coordination des groupes
- d'utilisateurs</emphasis></para>
-
- <para>C'est la liste pour les coordinateurs des diff&eacute;rents
- groupes locaux d'utilisateurs, destin&eacute;e &agrave; leurs
- discussions entre eux et avec un membre d&eacute;sign&eacute; de
- l'&eacute;quipe de base. Cette liste doit se limiter aux
- comptes-rendus de r&eacute;unions et &agrave; la coordination de
- projets entre plusieurs groupes d'utilisateurs. Ce n'est pas une
- liste ouverte.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1 id="eresources-news">
- <title>Forums de discussion</title>
-
- <para>En plus des deux forums de discussion sp&eacute;cifiques &agrave;
- FreeBSD, il y en a de nombreux autres o&ugrave; il est question de
- FreeBSD ou qui sont par ailleurs d'inter&ecirc;t pour les utilisateurs
- de FreeBSD. Pour certains de ces groupes, il existe des
- <ulink URL="http://minnie.cs.adfa.oz.au/BSD-info/bsdnews_search.html">archives
- interrogeables par mots-cl&eacute;s</ulink>, grace &agrave; Warren Toomey
- <email>wkt@cs.adfa.oz.au</email>.</para>
-
- <sect2>
- <title>Forums sp&eacute;cifiques &agrave; BSD</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Autres forums Unix int&eacute;ressants</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink URL="news:comp.unix">comp.unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.questions">comp.unix.questions</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.admin">comp.unix.admin</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.programmer">comp.unix.programmer</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.shell">comp.unix.shell</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.user-friendly">comp.unix.user-friendly</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.security.unix">comp.security.unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.sources.unix">comp.sources.unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.advocacy">comp.unix.advocacy</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.misc">comp.unix.misc</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.bugs.4bsd">comp.bugs.4bsd</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.bugs.4bsd.ucb-fixes">comp.bugs.4bsd.ucb-fixes</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.unix.bsd">comp.unix.bsd</ulink></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Syst&egrave;me X Window</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="news:comp.windows.x.i386unix">comp.windows.x.i386unix</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.windows.x">comp.windows.x</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.windows.x.apps">comp.windows.x.apps</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.windows.x.announce">comp.windows.x.announce</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.windows.x.intrinsics">comp.windows.x.intrinsics</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.windows.x.motif">comp.windows.x.motif</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.windows.x.pex">comp.windows.x.pex</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="news:comp.emulators.ms-windows.wine">comp.emulators.ms-windows.wine</ulink></para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 id="eresources-web">
- <title>Serveurs World Wide Web</title>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="http://www.FreeBSD.ORG/">http://www.FreeBSD.ORG/</ulink>
- &mdash; Serveur principal.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.za.freebsd.org/">http://www.za.freebsd.org/</ulink> &mdash; Afrique du Sud/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www2.za.freebsd.org/">http://www2.za.freebsd.org/</ulink> &mdash; Afrique du Sud/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.de.freebsd.org/">http://www.de.freebsd.org/</ulink> &mdash; Allemagne/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www1.de.freebsd.org/">http://www1.de.freebsd.org/</ulink> &mdash; Allemagne/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www2.de.freebsd.org/">http://www.de.freebsd.org/</ulink> &mdash; Allemagne/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.au.freebsd.org/FreeBSD/">http://www.au.freebsd.org/FreeBSD/</ulink> &mdash; Australie/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www2.au.freebsd.org/FreeBSD/">http://www2.au.freebsd.org/FreeBSD/</ulink> &mdash; Australie/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www3.au.freebsd.org/FreeBSD/">http://www3.au.freebsd.org/FreeBSD/</ulink> &mdash; Australie/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.br.freebsd.org/www.freebsd.org/">http://www.br.freebsd.org/www.freebsd.org/</ulink> &mdash; Br&eacute;sil/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.br2.freebsd.org/www.freebsd.org/">http://www.br2.freebsd.org/www.freebsd.org/</ulink> &mdash; Br&eacute;sil/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www3.br.freebsd.org/">http://www3.br.freebsd.org/</ulink> &mdash; Br&eacute;sil/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.bg.freebsd.org/">http://www.bg.freebsd.org/</ulink> &mdash; Bulgarie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.ca.freebsd.org/">http://www.ca.freebsd.org/</ulink> &mdash; Canada/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://freebsd.kawartha.com/">http://freebsd.kawartha.com/</ulink> &mdash; Canada/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.kr.freebsd.org/">http://www.kr.freebsd.org/</ulink> &mdash; Cor&eacute;e.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.dk.freebsd.org/">http://www.dk.freebsd.org/</ulink> &mdash; Danemark.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.es.freebsd.org/">http://www.es.freebsd.org/</ulink> &mdash; Espagne.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.ee.freebsd.org/">http://www.ee.freebsd.org/</ulink> &mdash; Estonie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://freebsd.advansys.net/">http://freebsd.advansys.net/</ulink> &mdash; Etats-Unis/Indiana.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www6.freebsd.org/">http://www6.freebsd.org/</ulink> &mdash; Etats-Unis/Oregon.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www2freebsd.org/">http://www2.freebsd.org/</ulink> &mdash; Etats-Unis/Texas.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.fi.freebsd.org/">http://www.fi.freebsd.org/</ulink> &mdash; Finlande.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.fr.freebsd.org/">http://www.fr.freebsd.org/</ulink> &mdash; France.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.hu.freebsd.org/">http://www.hu.freebsd.org/</ulink> &mdash; Hongrie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.is.freebsd.org/">http://www.is.freebsd.org/</ulink> &mdash; Icelande.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.ie.freebsd.org/">http://www.ie.freebsd.org/</ulink> &mdash; Irelande.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.jp.freebsd.org/www.freebsd.org/">http://www.jp.freebsd.org/www.freebsd.org/</ulink> &mdash; Japon.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.lv.freebsd.org/">http://www.lv.freebsd.org/</ulink> &mdash; Lettonie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://rama.asiapac.net/freebsd/">http://rama.asiapac.net/freebsd/</ulink> &mdash; Malaisie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.no.freebsd.org/">http://www.no.freebsd.org/</ulink> &mdash; Norv&egrave;ge.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.nl.freebsd.org/">http://www.nl.freebsd.org/</ulink> &mdash; Pays-Bas.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.pt.freebsd.org/">http://www.pt.freebsd.org/</ulink> &mdash; Portugal/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www2.pt.freebsd.org/">http://www2.pt.freebsd.org/</ulink> &mdash; Portugal/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www3.pt.freebsd.org/">http://www3.pt.freebsd.org/</ulink> &mdash; Portugal/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.sk.freebsd.org/">http://www.sk.freebsd.org/</ulink> &mdash; R&eacute;publique Slovaque.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.ro.freebsd.org/">http://www.ro.freebsd.org/</ulink> &mdash; Roumanie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.uk.freebsd.org/">http://www.uk.freebsd.org/</ulink> &mdash; Royaume-Uni.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.ru.freebsd.org/">http://www.ru.freebsd.org/</ulink> &mdash; Russie/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www2.ru.freebsd.org/">http://www2.ru.freebsd.org/</ulink> &mdash; Russie/2.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www3.ru.freebsd.org/">http://www3.ru.freebsd.org/</ulink> &mdash; Russie/3.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www4.ru.freebsd.org/">http://www4.ru.freebsd.org/</ulink> &mdash; Russie/4.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.si.freebsd.org/">http://www.si.freebsd.org/</ulink> &mdash; Slov&eacute;nie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.se.freebsd.org/www.freebsd.org/">http://www.se.freebsd.org/www.freebsd.org/</ulink> &mdash; Su&egrave;de.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.tr.freebsd.org/">http://www.tr.freebsd.org/</ulink> &mdash; Turquie.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www.ua.freebsd.org/">http://www.ua.freebsd.org/</ulink> &mdash; Ukraine/1.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="http://www2.ua.freebsd.org/">http://www2.ua.freebsd.org/</ulink> &mdash; Ukraine/2.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/hw/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/hw/chapter.sgml
deleted file mode 100644
index 8d226e1099..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/hw/chapter.sgml
+++ /dev/null
@@ -1,5780 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="hw">
- <title>** Compatibilit&eacute; mat&eacute;rielle</title>
- &trans.a.haby;
-
-
- <para>Les questions de compatibilit&eacute; mat&eacute;rielle sont aujourd'hui
- les plus probl&eacute;matiques de l'industrie informatique et FreeBSD
- n'en est nullement &agrave; l'abri. De ce point de vue, l'avantage qu'a
- FreeBSD de pouvoir &ecirc;tre utilis&eacute; sur du mat&eacute;riel PC courant et
- peu co&ucirc;teux est aussi une difficult&eacute; lorsqu'il faut supporter
- l'incroyable vari&eacute;t&eacute; de composants disponibles.
- Il est impossible de donner une liste exhaustive des mat&eacute;riels
- compatibles avec FreeBSD, mais ce chapitre est un catalogue des
- pilotes de p&eacute;riph&eacute;riques inclus dans FreeBSD et des mat&eacute;riels que
- chaque pilote supporte. Si possible et appropri&eacute;, des notes ont
- ajout&eacute;es sur les mat&eacute;riels eux-m&ecirc;mes. Vous pouvez aussi vous
- r&eacute;f&eacute;rer au chapitre <link linkend="kernelconfig-config">Configurer
- le noyau de FreeBSD</link> de ce manuel pour avoir
- la liste des mat&eacute;riels support&eacute;s.</para>
-
- <para>FreeBSD est un projet b&eacute;n&eacute;vole qui n'a pas les moyens de financer
- un service de tests, nous reposons sur vous, les utilisateurs, pour une
- grande part des informations que fournit ce catalogue. Si vous avez
- l'exp&eacute;rience personnelle d'un mat&eacute;riel qui fonctionne ou ne fonctionne
- pas avec FreeBSD, faites-le nous savoir par courrier &eacute;lectronique
- &agrave; &a.doc;. Les questions concernant les mat&eacute;riels compatibles doivent
- &ecirc;tre adress&eacute;es &agrave; &a.questions; (voyez la section
- <link linkend="eresources-mail">Listes de diffusion</link>
- pour plus d'informations). Quand vous nous faites
- parvenir de l'information ou posez une question, n'oubliez pas s'il vous
- pla&icirc;t de pr&eacute;ciser exactement quelle version de FreeBSD vous utilisez et
- de donner le maximum de d&eacute;tails sur votre configuration
- mat&eacute;rielle.</para>
-
- <sect1>
- <title>Ressources Internet</title>
-
- <para>Les liens donn&eacute;s ci-dessous se sont av&eacute;r&eacute;s utiles pour guider
- dans les choix de mat&eacute;riels. Bien que les renseignements qu'ils vous
- donnent ne soient pas n&eacute;cessairement sp&eacute;cifiques (ou m&ecirc;me
- applicables) &agrave; FreeBSD, ils ne d&eacute;pendent pas, pour la plupart
- du syst&egrave;me d'exploitation. V&eacute;rifiez s'il vous pla&icirc;t dans le guide
- du mat&eacute;riel pour FreeBSD que la configuration que vous avez choisie
- soit compatible avec FreeBSD avant d'acheter quoi que ce soit.</para>
-
- <para>
- <itemizedlist>
-
- <listitem>
- <para><ulink url="http://www.tomshardware.com/">The Pentium
- Systems Hardware Performance Guide</ulink>&nbsp;-&nbsp;le
- guide des performances des syst&egrave;mes Pentium.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- </sect1>
-
- <sect1 id="hw-configs">
- <title>Exemples de configurations</title>
-
- <para>La liste de configurations ci-dessous ne constitue en aucun
- cas une publicit&eacute; pour un constructeur ou un produit de la
- part du <emphasis>Projet FreeBSD</emphasis>. Ces informations ne
- sont donn&eacute;es que pour &ecirc;tre utiles et rassemblent simplement les
- exp&eacute;riences de diff&eacute;rentes personnes sur des configurations vari&eacute;es.
- Tarifs indicatifs. Chauss&eacute;e glissante. Attention au chien.</para>
-
- <sect2 id="hw-jordans-picks">
- <title>La s&eacute;lection de Jordan</title>
-
- <para>J'ai obtenu de bons r&eacute;sultats en mettant sur pied des stations
- de travail et des serveurs avec les composants ci-dessous. Je ne
- peut vous garantir que vous en aurez aussi, ni qu'aucune des marques
- cit&eacute;es restera &ldquo;le meilleur choix&rdquo;. J'essaierai, si
- possible, de tenir cette liste &agrave; jour, mais ne peux bien &eacute;videmment
- vous assurer qu'elle le soit &agrave; un moment donn&eacute;.</para>
-
- <sect3 id="hw-mb">
- <title>Cartes m&egrave;res</title>
-
- <para>Pour les syst&egrave;mes Pentium Pro (P6), j'aime assez la carte m&egrave;re
- bi-processseurs
- <ulink url="http://www.tyan.com/html/products.html">Tyan</ulink>
- S1668. Elle fait un sympathique syst&egrave;me &agrave; un ou deux processeurs
- (ce que supporte FreeBSD 3.0) et le prix du Pentium Pro 180/256K
- a maintenant baiss&eacute; &agrave; un niveau vraiment abordable. Le Pentium Pro
- reste mon processeur favori pour les serveurs (les m&eacute;gahertzs ne
- font pas tout).</para>
-
- <para>Pour les Pentium II, j'ai un s&eacute;rieux pr&eacute;jug&eacute; en faveur de la
- carte m&egrave;re <ulink url="http://www.asus.com.tw">ASUS</ulink>
- <ulink url="http://www.asus.com.tw/Products/Motherboard/Pentiumpro/P2l97-s/index.html">P2l97-S</ulink>
- avec contr&ocirc;leur WIDE SCSI int&eacute;gr&eacute;.</para>
-
- <para>Pour les machines Pentium, la carte m&egrave;re ASUS
- <ulink url="http://www.asus.com.tw/Products/Motherboard/Pentium/P55tp4/index.html">P55T2P4</ulink>
- para&icirc;t un bon choix pour un serveur ou une station de travail
- de taille moyenne &agrave; importante. Vous pouvez aussi
- regarder du c&ocirc;t&eacute; de la carte
- <ulink url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pvi-486sp3.txt">486SP3G</ulink>,
- si vous cherchez une carte m&egrave;re 486.</para>
-
- <note>
- <para>(Il semble qu'il soit devenu difficile de se procurer ces
- derni&egrave;res, qu'ASUS ne fabrique apparemment plus.) </para>
- </note>
-
- <para>Ceux qui veulent utiliser des syst&egrave;mes plus tol&eacute;rants aux
- erreurs doivent veiller &agrave; employer de la m&eacute;moire avec contr&ocirc;le
- de parit&eacute;, ou ECC, pour des applications non-stop.</para>
-
- <note>
- <para>La m&eacute;moire ECC entra&icirc;ne une petite perte de performances
- (que vous remarquerez ou non selon votre application) mais vous
- apporte des gains significatifs en termes de tol&eacute;rance
- d'erreur.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Contr&ocirc;leurs de disque</title>
-
- <para>C'est un point plus d&eacute;licat. J'utilisais
- inconditionnellement des contr&ocirc;leurs
- <ulink url="http://www.buslogic.com">Buslogic</ulink>
- pour tout, de l'ISA au PCI, j'incline maintenant plut&ocirc;t vers
- le contr&ocirc;leur <ulink
- url="http://www.adaptec.com">Adaptec</ulink> 1542CF pour l'ISA,
- le contr&ocirc;leur Buslogic Bt747c pour l'EISA et le contr&ocirc;leur
- Adaptec 2940UW pour le PCI.</para>
-
- <para>J'ai aussi eu de bons r&eacute;sultats avec les cartes
- PCI NCR/Symbios, bien qu'il faille s'assurer que
- votre carte m&egrave;re supporte le mod&egrave;le sans BIOS (s'il n'y
- a rien sur votre carte qui ressemble vaguement &agrave; une puce
- ROM, c'est probablement un mod&egrave;le qui s'attend &agrave; ce que son
- BIOS soit sur la carte m&egrave;re).</para>
-
- <para>Si vous pensez qu'il vous faut plus d'un contr&ocirc;leur SCSI,
- vous pouvez songer &agrave; &eacute;conomiser vos maigres ressources en
- emplacements PCI en achetant une carte Adaptec 3940, qui
- int&egrave;gre deux contr&ocirc;leurs PCI sur un seul connecteur.</para>
-
- </sect3>
-
- <sect3 id="hw-disks">
- <title>Disques durs</title>
-
- <para>Pour cette version particuli&egrave;re de la roulette russe, je
- donnerais peu de conseils pr&eacute;cis sinon pour recommander
- &ldquo;du SCSI plut&ocirc;t que de l'IDE d&egrave;s que vous pouvez vous
- l'offrir&rdquo;. M&ecirc;me sur de petites machines de bureau, le SCSI
- est souvent un meilleur choix parce qu'il vous permet de
- migrer vos disques du serveur vers la machine de bureau lorsque
- les prix en chute des disques en font une solution &eacute;conomiquement
- viable. Si vous avez plus d'une machine &agrave; administrer, ne pensez
- pas seulement en terme de stockage, voyez plut&ocirc;t cela comme
- une cha&icirc;ne alimentaire!</para>
-
- <para>Je ne trouve pas que les disques WIDE SCSI repr&eacute;sentent
- un investissement n&eacute;cessaire, &agrave; moins que vous ne mettiez en place
- un serveur NFS ou des forums de discussion
- qui devront supporter beaucoup d'acc&egrave;s disque pour de nombreux
- utilisateurs.</para>
-
- </sect3>
-
- <sect3 id="hw-jordans-picks-cdrom">
- <title>Lecteur de CD-ROMs</title>
-
- <para>Ma pr&eacute;f&eacute;rence pour le SCSI s'applique aussi aux lecteurs de
- CD-ROMs SCSI, et bien que j'ai toujours eu de bons r&eacute;sultats
- avec le mod&egrave;le <ulink url="http://www.toshiba.com">Toshiba</ulink>
- XM-3501B (qui existe aussi en version tiroir sous la r&eacute;f&eacute;rence
- XM-5401B), je suis maintenant tr&egrave;s partisan du lecteur
- <ulink url="http://www.plextor.com">Plextor</ulink> PX-12CS.
- C'est un lecteur 12x dont les performances et la fiabilit&eacute; sont
- excellentes.</para>
-
- <para>D'une fa&ccedil;on g&eacute;n&eacute;rale, la plupart des lecteurs de CD-ROMs SCSI
- que j'ai vus, sont de fabrication robuste et vous ne vous
- tromperez pas non plus si vous prenez un mod&egrave;le HP ou NEC. Le prix
- des lecteurs de CD-ROMs SCSI semble avoir aussi consid&eacute;rablement
- baiss&eacute; ces derniers mois et devient comp&eacute;titif avec celui des
- lecteurs IDE, alors qu'ils restent techniquement sup&eacute;rieurs. A
- choisir entre les deux, je ne vois pas de raison de se d&eacute;cider
- pour un lecteur IDE.</para>
-
- </sect3>
-
- <sect3 id="hw-worm">
- <title>Graveurs de CD-ROMs non r&eacute;inscriptibles</title>
-
- <para>Au moment o&ugrave; j'&eacute;cris ceci, FreeBSD supporte trois types de
- graveurs de CD-ROMs (bien que je pense qu'ils viennent en fait
- tous de chez Phillips): le Phillips CDD 522 (se comporte comme
- le Plasmon), le Plasmon RF4100 et le HP 6020i. J'utilise
- personnellement le HP 6020i pour graver mes CD-ROMs (avec la
- version 2.2-current de FreeBSD&nbsp;-&nbsp;il ne fonctionne pas
- avec la version 2.1.5 et les versions ant&eacute;rieures du pilote SCSI)
- qui me donne toute satisfaction. Regardez dans le fichier
- <ulink url="file:/usr/share/examples/worm">/usr/share/examples/worm</ulink>
- sur votre syst&egrave;me 2.2 pour avoir des exemples de proc&eacute;dures pour
- cr&eacute;er des images au format ISO9660 (avec les extensions RockRidge)
- de vos syst&egrave;mes de fichiers et graver ensuite des CD-ROMs avec un
- HP6020i.</para>
-
- </sect3>
-
- <sect3 id="hw-tape">
- <title>Lecteurs de bandes</title>
-
- <para>J'ai obtenu de bons r&eacute;sultats avec les lecteurs
- <ulink url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">8mm</ulink>
- de chez
- <ulink url="http://www.exabyte.com">Exabyte</ulink>
- et
- <ulink url="http://www-dmo.external.hp.com:80/tape/_cpb0001.htm">4mm (DAT)</ulink>
- de chez <ulink url="http://www.hp.com">HP</ulink>.</para>
-
- <para>Pour les sauvegardes, je recommande les Exabytes pour la
- robustesse (et la plus grande capacit&eacute;) des bandes 8mm.</para>
-
- </sect3>
-
- <sect3 id="hw-video">
- <title>Cartes graphiques</title>
-
- <para>Si vous pouvez aussi vous offrir un serveur X commercial
- pour 99&#36; US de chez
- <ulink url="http://www.xig.com/">Xi Graphics, Inc. (autrefois, X Inside, Inc)</ulink>
- alors je vous recommande vivement la carte
- <ulink url="http://www.matrox.com/">Matrox</ulink>
- <ulink url="http://www.matrox.com/mgaweb/brochure.htm">Millenium</ulink>.
- Cette carte est aussi tr&egrave;s bien support&eacute;e par le serveur
- <ulink url="http://www.xfree86.org/">XFree86</ulink>,
- qui en est maintenant &agrave; sa version 3.3.2.</para>
-
- <para>Les cartes
- <ulink url="http://www.nine.com/">Number 9</ulink> sont aussi
- un excellent choix&nbsp;-&nbsp;leurs cartes Vision 868 et 968
- (la s&eacute;rie 9FX) bas&eacute;es sur le circuit S3 sont aussi tr&egrave;s rapides
- et bien g&eacute;r&eacute;es par le pilote S3 du serveur XFree86.</para>
-
- </sect3>
-
- <sect3 id="hw-monitors">
- <title>Moniteurs</title>
-
- <para>J'ai eu d'excellents r&eacute;sultats avec les moniteurs
- <ulink url="http://cons3.sel.sony.com/SEL/ccpg/display/ms17se2.html">Sony Multiscan 17seII</ulink>,
- et avec le Viewsonic qui utilise le m&ecirc;me tube (Trinitron). Pour
- des mod&egrave;les au-del&agrave; de 17", tout ce que je peux aujourd'hui
- conseiller est de ne pas d&eacute;penser moins de 2.500 &#36; pour
- un moniteur 21" ou 1.700 &#36; pour un 20", si vous en avez
- vraiment besoin. Il y de bons &eacute;crans dans
- la gamme des 20" et plus,
- et il y en a aussi de bon march&eacute;. Malheureusement, il y en a tr&egrave;s
- peu qui soient &agrave; la fois de bonne qualit&eacute; et bon march&eacute;!</para>
-
- </sect3>
-
- <sect3 id="hw-networking">
- <title>R&eacute;seau</title>
-
- <para>Je peux recommander le contr&ocirc;leur <ulink
- url="http://www.smc.com/">SMC</ulink> Ultra 16 pour les
- applications ISA et les cartes SMC EtherPower ou Compex ENET32
- pour les r&eacute;seaux importants bas&eacute;s sur du PCI. Ces deux cartes
- PCI sont construites autour de la puce contr&ocirc;leur Ethernet
- DEC DC21041 et les autres cartes qui employent cette puce, telles
- que la Zynx ZX432 et la DEC DE435, fonctionneront aussi. Pour
- les r&eacute;seaux 100Mbit, les cartes SMC SMC9332DST 10/100MB ou Intel
- Intel EtherExpress Pro/100B font du bon travail, ma pr&eacute;f&eacute;rence
- allant &agrave; la carte Intel EtherExpress.</para>
-
- <para>Si d'un autre c&ocirc;t&eacute; vous cherchez la solution la moins ch&egrave;re
- possible, mais qui fonctionne malgr&eacute; tout raisonnablement, alors
- pratiquement n'importe quel clone NE2000 est un bon choix.</para>
-
- </sect3>
-
- <sect3 id="hw-serial">
- <title>S&eacute;rie</title>
-
- <para>Si vous cherchez des solutions pour un r&eacute;seau s&eacute;rie &agrave; grande
- vitesse, alors <ulink url="http://www.dgii.com/">Digi
- International</ulink> fabrique la s&eacute;rie <ulink
- url="http://www.dgii.com/prodprofiles/profiles-prices/digiprofiles/digispecs/sync570.html">SYNC/570</ulink>,
- pour laquelle FreeBSD-current a maintenant des pilotes.
- <ulink url="http://www.etinc.com">Emerging Technologies</ulink>
- fabrique aussi une carte avec des fonctionnalit&eacute;s T1/E1,
- qui utilise du logiciel qu'il fournit.
- Je n'ai cependant pas l'exp&eacute;rience personnelle de ces deux
- produits.</para>
-
- <para>Les possibilit&eacute;s de cartes multi-ports sont quelque peu plus
- nombreuses, bien que le support par FreeBSD des produits
- <ulink url="http://www.cyclades.com/">Cyclades</ulink> soit
- r&eacute;put&eacute; le plus complet, essentiellement en raison de
- l'engagement pris par cette compagnie de nous fournir du
- mat&eacute;riel pour &eacute;valuation et des sp&eacute;cifications techniques. J'ai
- entendu dire que la Cyclom-16Ye offrait le meilleur rapport
- prix/performances, mais je n'ai pas consult&eacute; les tarifs r&eacute;cents.
- D'autres cartes multi-ports dont j'ai entendu dire du bien
- sont les BOCA et les AST, et <ulink
- url="http://www.stallion.com/">Stallion
- Technologies</ulink> propose apparemment <ulink
- url="ftp://ftp.stallion.com/drivers/unsupported/freebsd/stalbsd-0.0.4.tar.gz">ici</ulink>
- un pilote non officiel pour ses cartes.</para>
-
- </sect3>
-
- <sect3 id="hw-audio">
- <title>Audio</title>
-
- <para>J'utilise actuellement une AWE32 de <ulink
- url="http://www.creaf.com/">Creative Labs</ulink>, bien qu'&agrave; peu
- pr&egrave;s tout ce qui vient de chez Creative Labs marcherait
- aujourd'hui. Ce qui ne veut pas dire que d'autres cartes son
- ne marchent pas, simplemement je n'en ai qu'une exp&eacute;rience
- limit&eacute;e (j'aimais bien autrefois les cartes GUS, mais la
- situation des cartes Gravis est d&eacute;licate depuis quelque
- temps).</para>
-
- </sect3>
-
- <sect3 id="hw-vgrabbers">
- <title>Vid&eacute;o</title>
-
- <para>Pour la capture vid&eacute;o, il y a deux bons
- choix&nbsp;-&nbsp;n'importe
- quelle carte &agrave; base de puce Brooktree BT848, comme les Hauppauge
- ou les WinTV, marchera &agrave; merveille avec FreeBSD. Une autre carte
- que j'utilise est la
- <ulink
- url="http://www.matrox.com/">Matrox</ulink> <ulink
- url="http://www.matrox.com/imgweb/meteor.htm">Meteor</ulink>.
- FreeBSD supporte aussi la carte d'incrustation vid&eacute;o plus ancienne
- de chez Creative Labs, mais elles deviennent difficiles &agrave; trouver.
- Notez que la carte Meteor <emphasis>ne fonctionnera pas</emphasis>
- avec les cartes m&egrave;res qui ont un contr&ocirc;leur 440FX! Consultez
- la section
- <link linkend="hw-mb">Cartes m&egrave;res</link> pour plus de
- d&eacute;tails. Dans ce cas, il vaut mieux prendre une carte
- BT848.</para>
-
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="hw-core">
- <title>Composants de base/Processeurs</title>
-
- <sect2>
- <title>Cartes m&egrave;res, bus et contr&ocirc;leurs de bus</title>
-
- <sect3>
- <title>* ISA</title>
- <para></para>
- </sect3>
-
- <sect3>
- <title>* EISA</title>
- <para></para>
- </sect3>
-
- <sect3>
- <title>* VLB</title>
- <para></para>
- </sect3>
-
- <sect3 id="hw-mb-pci">
- <title>PCI</title>
-
- <para><emphasis>Contribution de &a.rgrimes;.<!-- <br> -->25 Avril
- 1995.</emphasis></para>
-
- <para><emphasis>Mises &agrave; jour de &a.jkh;.</emphasis><!-- <br>
- -->Derni&egrave;re mise &agrave; jour le <emphasis>26 Ao&ucirc;t
- 1996.</emphasis></para>
-
- <para>Parmi les contr&ocirc;leurs INTEL PCI, la liste suivante d&eacute;crit
- diff&eacute;rents types de probl&egrave;me connus, et leur gravit&eacute;, du pire
- au meilleur.</para>
-
- <variablelist>
- <varlistentry><term>Mercury:</term>
- <listitem>
- <para>Probl&egrave;mes de coh&eacute;rence du cache, en particulier s'il
- y a des contr&ocirc;leurs de bus ISA en plus du pont ISA/PCI.
- C'est un probl&egrave;me mat&eacute;riel, la seule solution consiste
- &agrave; d&eacute;sactiver le cache.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Saturn-I <emphasis>(i.e., 82424ZX en i
- r&eacute;vision 0, 1 ou 2)</emphasis>:</term>
-
- <listitem>
- <para>Probl&egrave;me de coh&eacute;rence lors de la r&eacute;&eacute;criture dans le
- cache. C'est un probl&egrave;me mat&eacute;riel. La seule parade
- consiste &agrave; configurer le cache externe en mode
- transparent. Ou &agrave; passer &agrave; la version Saturn-II.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Saturn-II <emphasis>(i.e., 82424ZX en
- r&eacute;vision 3 ou 4)</emphasis>:</term>
-
- <listitem>
- <para>Fonctionne bien, mais de nombreux fabriquants de
- carte m&egrave;re ne se pr&eacute;occupent pas du bit SRAM n&eacute;cessaire
- aux op&eacute;rations de r&eacute;ecriture. On peut y pallier en
- utilisant le mode transparent ou en g&eacute;rant le bit SRAM.
- (J'ai fait cela avec une ASUS PCI/I-486SP3G r&eacute;vision 1.6
- et des cartes plus r&eacute;centes).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Neptune:</term>
-
- <listitem>
- <para>Ne peut g&eacute;rer plus de deux contr&ocirc;leurs de bus. C'est
- une erreur de conception reconnue par Intel. Parmi les
- solutions: ne pas utiliser plus de deux contr&ocirc;leurs,
- mat&eacute;riel sp&eacute;cialement con&ccedil;u pour remplacer l'arbitre de
- bus PCI (apparu avec l'Intel Altair et d'autres cartes
- m&egrave;res pour serveur Intel), et bien s&ucirc;r la r&eacute;ponse
- officielle d'Intel, le remplacer par un Triton, nous
- &ldquo;l'y avons mis&rdquo;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Triton <emphasis>(ie,
- 430FX)</emphasis>:</term>
-
- <listitem>
- <para>Pas de probl&egrave;me de coh&eacute;rence du cache ou de contr&ocirc;le
- du bus connu. Mais cette puce n'impl&eacute;mente tout simplement
- pas le contr&ocirc;le de parit&eacute;. Contournez le probl&egrave;me de
- parit&eacute;. Utilisez des cartes Triton-II si vous avez
- le choix.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Triton-II <emphasis>(ie,
- 430HX)</emphasis>:</term>
-
- <listitem>
- <para>Tous les &eacute;chos sur les cartes m&egrave;res avec cette puce
- sont jusqu'ici favorables. Pas de probl&egrave;me connu.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Orion:</term>
-
- <listitem>
- <para>Les premi&egrave;res versions de cette puce souffraient d'un
- retard en &eacute;criture PCI qui entra&icirc;nait des d&eacute;gradations
- sensibles de performance des applications gourmandes en
- trafic sur le bus PCI. Les versions B0 et ult&eacute;rieures de
- cette puce ont r&eacute;gl&eacute; ce probl&egrave;me.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><ulink
- url="http://developer.intel.com/design/pcisets/desktop.htm#440FX">440FX</ulink>:</term>
-
- <listitem>
- <para>Cette puce pour <ulink
- url="http://www.intel.com/procs/ppro/index.htm">Pentium Pro</ulink>
- semble fonctionner correctement et ne souffre pas des
- probl&egrave;mes qu'ont connus
- les premi&egrave;res puces Orion. Il accepte
- aussi une plus grande vari&eacute;t&eacute; de types de m&eacute;moire, y compris
- l'ECC et le contr&ocirc;le de parit&eacute;. Le seul probl&egrave;me connu est
- que la carte d'acquisition vid&eacute;o Matrox Meteor ne fonctionne
- pas avec.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Processeurs/Coprocesseurs</title>
-
- <para><emphasis>Contribution de &a.asami;.<!-- <br> -->26 D&eacute;cembre
- 1997.</emphasis></para>
-
- <sect3>
- <title>P6 (Pentium Pro/Pentium II)</title>
-
- <para>Le Pentium Pro et le Pentium II fonctionnent parfaitement
- avec FreeBSD.
- De fait, notre site ftp de base <ulink
- url="ftp://ftp.freebsd.org/">ftp.freebsd.org</ulink> (aussi
- appel&eacute; "<filename>ftp.cdrom.com</filename>", le site ftp le plus
- important au monde) utilise FreeBSD sur un Pentium Pro. Des <ulink
- url="ftp://ftp.cdrom.com/archive-info/wcarchive.txt">D&eacute;tails de la configuration</ulink> sont disponibles si vous &ecirc;tes int&eacute;ress&eacute;s.</para>
-
- </sect3>
-
- <sect3>
- <title>Pentium</title>
-
- <para>Les Pentium Intel (P54C), Pentium MMX (P55C), AMD K6 et
- Cyrix/IBM 6x86MX fonctionnent tous avec FreeBSD. Je n'entrerai
- pas dans le d&eacute;tail de savoir lequel est plus rapide que l'autre,
- il y a des zillions de sites Web sur l'Internet pour vous
- l'expliquer &agrave; l'endroit et &agrave; l'envers.
- <!-- smiley --><emphasis>:)</emphasis></para>
-
- <note>
- <para>Les diff&eacute;rents processeurs ont besoin d'une alimentation
- et d'une ventilation diff&eacute;rentes. Assurez-vous que votre carte
- m&egrave;re fournit la tension exacte requise par votre processeur. Par
- exemple, de nombreuses puces MMX ont besoin d'une alimentation
- d&eacute;doubl&eacute;e (e.g., 2.9V pour l'unit&eacute; centrale, 3.3V pour les
- entr&eacute;es/sorties). Certaines puces AMD et Cyrix/IBM chauffent
- plus que les puces Intel. Dans ce cas, v&eacute;rifiez que vous avez
- bien les bons radiateurs et ventilateurs (vous pouvez trouver la
- liste des composants certifi&eacute;s sur leurs pages Web).</para>
- </note>
-
- <sect4>
- <title>Vitesses d'horloge</title>
-
- <para><emphasis>Contribution de &a.rgrimes;.<!-- <br> -->1
- Octobre 1996.</emphasis></para>
-
- <para><emphasis>Mise &agrave; jour de &a.asami;.<!-- <br> -->27 D&eacute;cembre
- 1997.</emphasis></para>
-
- <para>Les machines de la cat&eacute;gorie Pentium utilisent des vitesses
- d'horloge diff&eacute;rentes pour leurs diff&eacute;rents composants. Il y a
- la fr&eacute;quence du processeur, celle du bus m&eacute;moire externe et
- celle du bus PCI. Il n'est pas toujours exact qu'un processeur
- &ldquo;plus rapide&rdquo; compose un syst&egrave;me plus rapide
- qu'un &ldquo;plus lent&rdquo;, du fait de ces diff&eacute;rentes
- vitesses d'horloge. Voici une table qui donne la liste des
- possibilit&eacute;s:</para>
-
- <informaltable frame="none">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Fr&eacute;quence du processeur (MHz)</entry>
- <entry>Horloge externe et fr&eacute;quence du bus m&eacute;moire (mHz)
- [a]</entry>
- <entry>Coefficient multiplicateur horloge
- interne/externe</entry>
- <entry>Fr&eacute;quence du bus PCI (MHz)</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>60</entry>
- <entry>60</entry>
- <entry>1.0</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>66</entry>
- <entry>66</entry>
- <entry>1.0</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>75</entry>
- <entry>50</entry>
- <entry>1.5</entry>
- <entry>25</entry>
- </row>
-
- <row>
- <entry>90</entry>
- <entry>60</entry>
- <entry>1.5</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>100</entry>
- <entry>50 [b]
- </entry>
- <entry>2</entry>
- <entry>25</entry>
- </row>
-
- <row>
- <entry>100</entry>
- <entry>66</entry>
- <entry>1.5</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>120</entry>
- <entry>60</entry>
- <entry>2</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>133</entry>
- <entry>66</entry>
- <entry>2</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>150</entry>
- <entry>60</entry>
- <entry>2.5</entry>
- <entry>30 (Intel, AMD)</entry>
- </row>
-
- <row>
- <entry>150</entry>
- <entry>75</entry>
- <entry>2</entry>
- <entry>37.5 (Cyrix/IBM 6x86MX)</entry>
- </row>
-
- <row>
- <entry>166</entry>
- <entry>66</entry>
- <entry>2.5</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>180</entry>
- <entry>60</entry>
- <entry>3</entry>
- <entry>30</entry>
- </row>
-
- <row>
- <entry>200</entry>
- <entry>66</entry>
- <entry>3</entry>
- <entry>33</entry>
- </row>
-
- <row>
- <entry>233</entry>
- <entry>66</entry>
- <entry>3.5</entry>
- <entry>33</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- <para>Remarques:</para>
- <itemizedlist>
- <listitem>
- <para>[a] 66MHz peut &ecirc;tre en fait 66.667MHz, mais ne pas le
- pr&eacute;sumer.</para>
- </listitem>
- <listitem>
- <para>[b] Le Pentium 100 peut utiliser une horloge externe &agrave;
- 50MHz avec un coefficient multiplicateur de 2 ou &agrave; 66MHz
- avec un coefficient multiplicateur de 1.5.</para>
- </listitem>
- </itemizedlist>
- <para>L'id&eacute;al est donc d'avoir un processeur &agrave; 100,
- 133, 166, 200 ou 233, sinon qu'avec un coefficient
- multiplicateur de 3 et plus, le processeur attend apr&egrave;s
- la m&eacute;moire.</para>
-
- </sect4>
-
- <sect4>
- <title>Le bogue de l'AMD K6</title>
-
- <para>En 1997, on a rapport&eacute; des probl&egrave;mes d'erreurs d'acc&egrave;s
- &agrave; la m&eacute;moire lors de compilations intensives avec l'AMD K6.
- Le probl&egrave;me a &eacute;t&eacute; r&eacute;gl&eacute; au troisi&egrave;me trimestre 97. D'apr&egrave;s
- les rapports, les puces K6 dont la date de fabrication est
- &ldquo;9733&rdquo; ou plus (i.e., produites &agrave; partir de la
- 33&egrave;me semaine de 97) n'ont plus ce probl&egrave;me.</para>
-
- </sect4>
- </sect3>
-
- <sect3>
- <title>* 486</title>
- <para></para>
- </sect3>
-
- <sect3>
- <title>* 386</title>
- <para></para>
- </sect3>
-
- <sect3>
- <title>286</title>
-
- <para>D&eacute;sol&eacute;, FreeBSD ne tourne pas sur des machines 80286. Il est
- quasiment impossible de faire tourner les UNIXs cons&eacute;quents et
- dot&eacute;s de fonctionnalit&eacute;s compl&egrave;tes d'aujourd'hui sur de telles
- machines.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>M&eacute;moire</title>
-
- <para>Il vous faudra au moins 5 MB de m&eacute;moire pour pouvoir installer
- FreeBSD. Une fois votre syst&egrave;me en &eacute;tat de marche, vous pouvez
- <link linkend="kernelconfig-building">recompiler un noyau</link>
- qui utilisera moins de m&eacute;moire. Avec <filename>boot4.flp</filename>
- vous pouvez vous en sortir avec seulement 4 MB.</para>
-
- </sect2>
-
- <sect2>
- <title>* BIOS</title>
-
- <para></para>
- </sect2>
- </sect1>
-
- <sect1 id="hw-io">
- <title>*** P&eacute;riph&eacute;riques d'Entr&eacute;e/Sortie</title>
-
-<!--
- &trans.a.dntt;
--->
-
- <sect2>
- <title>* Cartes graphiques</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Cartes son</title>
-
- <para></para>
- </sect2>
-
- <sect2>
- <title>*** Ports s&eacute;rie et cartes multi-ports</title>
-
- <sect3 id="uart">
- <title>*** L'UART : Ce que c'est et comment il fonctionne</title>
- &sgml.todo;
-
-<!--
- <para><emphasis>Copyright &copy; 1996 &a.uhclem;, tous droits
- r&eacute;serv&eacute;s. 13 janvier 1996.</emphasis></para>
-
- <para>Le contr&ocirc;leur du r&eacute;cepteur/&eacute;metteur
- asynchrone universel <emphasis>Universal
- Asynchronous Receiver/Transmitter (UART)</emphasis>
- est le composant clef du sous-syst&egrave;me de communication
- d'un ordinateur. L'UART prend des octets de donn&eacute;es et
- transmet des bits individuels d'un mani&egrave;re s&eacute;quentielle.
- Au point de destination, un second UART re-assemble les
- bits en octets complets.</para>
-
- <para>Les transmissions s&eacute;ries sont habituellement
- utilis&eacute;es avec les modems et pour les communications
- non-r&eacute;seaux entre les ordinateurs, terminaux et autres
- p&eacute;riph&eacute;riques.</para>
-
- <para>Il y a deux formes de transmission s&eacute;rie : synchrone
- et asynchrone. D&eacute;pendant du mode que votre mat&eacute;riel
- supporte, le nom d'un sous-syst&egrave;me de communication indiquera
- <literal>A</literal> s'il supporte les communications
- asynchrone et <literal>S</literal> s'il supporte les
- communications synchrones. Les deux formes sont d&eacute;crites
- ci-dessous :</para>
-
- <para>Les acronymes les plus courants sont :
-
- <blockquote>
- <para>UART <emphasis>Universal Asynchronous
- Receiver/Transmitter></emphasis> : R&eacute;cepteur/Emetteur
- universel asynchrone</para>
- </blockquote>
-
- <blockquote>
- <para>USART <emphasis>Universal SYnchronous-Asynchronous
- Receiver/Transmitter></emphasis> : R&eacute;cepteur/Emetteur
- universel synchrone-asynchrone</para>
- </blockquote></para>
-
- <sect4>
- <title>Transmission s&eacute;rie synchrones</title>
-
- <para>Les transmissions s&eacute;ries synchrones n&eacute;cessite le
- fait que l'&eacute;metteur et le r&eacute;cepteur partage une horloge
- commune, ou que l'envoyeur fournisse un signal
- d'&eacute;chantillonage
- ou n'importe quel autre signal temporel afin que le
- r&eacute;cepteur sache quand est-ce qu'il doit
- &ldquo;lire&rdquo; le prochain bit de donn&eacute;es. Dans la
- plupart des formes de communication synchrone, s'il
- n'y a pas de donn&eacute;es disponibles au moment o&ugrave; il faut
- envoyer, un caract&egrave;re de remplissage doit &ecirc;tre envoy&eacute; &agrave;
- la place de telle sorte qu'il y ait toujours des
- donn&eacute;es en cours de transmission.
- La communication synchrone est souvent plus efficace
- parce seulement des bits de donn&eacute;es sont transmis entre
- l'&eacute;metteur et le r&eacute;cepteur, et la communication
- synchrone peut co&ucirc;ter plus cher si du cablage et
- circuit suppl&eacute;mentaires sont n&eacute;cessaires pour partager
- un signal d'horloge entre l'&eacute;metteur et le
- r&eacute;cepteur.</para>
-
- <para>Une forme de transmission synchrone est celle
- utilis&eacute;e par les imprimantes et les p&eacute;riph&eacute;riques disques
- non amovibles dans lesquels la donn&eacute;e est envoy&eacute; &agrave; un
- ensemble de c&acirc;bles pendant que l'horloge ou le signal
- d'&eacute;chantillonage est envoy&eacute; par un c&acirc;ble diff&eacute;rent.
- Les imprimantes et les p&eacute;riph&eacute;riques de disques fixes ne
- sont normalement pas des p&eacute;riph&eacute;riques s&eacute;rie parce que la
- plupart des interfaces standards de disques fixes envoient
- un mot entier de donn&eacute;e par signal d'horloge ou
- d'&eacute;chantillonage en utilisant un c&acirc;ble s&eacute;par&eacute; pour chaque
- bit du mot. Dans l'industrie du PC, cela est appel&eacute;
- p&eacute;riph&eacute;rique parall&egrave;le.</para>
-
- <para>Le mat&eacute;riel de communication s&eacute;rie standard dans un PC
- ne supporte pas les op&eacute;rations synchrones. Ce mode est crit
- ici dans un seul but de comparaison.</para>
- </sect4>
-
- <sect4>
- <title>Transmission parall&egrave;le asynchrone</title>
-
- <para>La transmission asynchrone parall&egrave;le permet
- au donn&eacute;es d'&ecirc;tre transmises sans que l'&eacute;metteur n'ait &agrave;
- envoyer une horloge au r&eacute;cepteur.
- A la place, l'&eacute;metteur et le r&eacute;cepteur doivent s'entendre
- &agrave; l'avance sur les param&ecirc;tres de temps et des bits sp&eacute;ciaux
- sont ajout&eacute;s &agrave; chaque mot utilis&eacute; pour synchroniser les
- unit&eacute;s d'envoi et de r&eacute;ception.</para>
-
- <para>Lorsqu'un mot est donn&eacute; &agrave; l'UART pour des
- transmissions asynchrones, un bit nomm&eacute; "bit de d&eacute;part"
- est ajout&eacute; au d&eacute;bute de chaque mot transmis. Le bit de
- d&eacute;part est utilis&eacute; pour avertir le r&eacute;cepteur qu'un mot de
- donn&eacute;e est sur le point d'&ecirc;tre envoy&eacute;, et pour forcer
- l'horloge du r&eacute;cepteur &agrave; se synchroniser avec l'horloge de
- l'&eacute;metteur. Ces deux horloges doivent &ecirc;tre assez pr&eacute;cises
- afin de ne pas avoir un d&eacute;calage de fr&eacute;quence sup&eacute;rieur &agrave;
- 10% durant la transmission du reste des bits du mot. (cette
- n&eacute;cessit&eacute; a &eacute;t&eacute; introduit aux jours des t&eacute;l&eacute;printers
- m&eacute;caniques et est fr&eacute;quement rencontr&eacute; par les &eacute;quipements
- &eacute;lectroniques modernes.</para>
-
- <para>Apr&egrave;s le bit de d&eacute;part, les bits individuels du mot de
- donn&eacute;es sont envoy&eacute;s, avec le bit de poids faible
- <emphasis> - the Least Significant Bit (LSB) - </emphasis>
- devant &ecirc;tre envoy&eacute; en premier.
- Chaque bit dans la transmission est envoy&eacute; pour exactement
- le m&ecirc;me temps que tous les autres bits, et le r&eacute;cepteur
- &ldquo;regarde&rdquo; dans le c&acirc;ble &agrave;
- approximativement la moiti&eacute; de la p&eacute;riode assign&eacute;e &agrave;
- chaque bit pour d&eacute;terminer si le bit est un
- <literal>1</literal> ou un <literal>0</literal>.
- Par exemple, si cela prend deux secondes pour
- envoyer chaque bit, le r&eacute;cepteur examinera le
- signal pour d&eacute;terminer si c'est un <literal>1</literal>
- ou un <literal>0</literal> apr&egrave;s qu'une seconde
- se soit pass&eacute;e, puis il attendra deux secondes,
- et examinera la valeur du bit suivant, et ainsi
- de suite.</para>
-
- <para>L'&eacute;metteur ne sait pas si le r&eacute;cepteur a
- &ldquo;regard&eacute;&rdquo; la valeur du bit.
- L'&eacute;metteur a seulement connaissance de
- l'horloge lui disant de commencer &agrave; transmettre
- le prochain bit du mot.</para>
-
- <para>Lorsqu'un mot de donn&eacute;e complet a &eacute;t&eacute;
- envoy&eacute;, l'&eacute;metteur peut ajouter un bit de
- parit&eacute; que l'&eacute;metteur g&eacute;n&egrave;re. Le bit de
- parit&eacute; peut &ecirc;tre utilis&eacute; par le r&eacute;cepteur pour
- effectuer une v&eacute;rification d'erreur simple.
- Puis enfin, un bit d'arr&ecirc;t est envoy&eacute; &agrave;
- l'emmetteur.</para>
-
- <para>Lorsque le r&eacute;cepteur recoit tous les bits
- du mot de donn&eacute;es, il peut v&eacute;rifier les bits de
- parit&eacute; (l'&eacute;metteur et le r&eacute;cepteur doivent
- s'&ecirc;tre mis d'accord sur le bit de parit&eacute;
- utilis&eacute;), puis le r&eacute;cepteur attend un bit
- d'arr&ecirc;t. Si le bit d'arr&ecirc;t n'apparait pas au
- moment o&ugrave; il est suppos&eacute; le faire, l'UART
- consid&egrave;re que le mot complet est erron&eacute; et
- reportera une erreur de fen&ecirc;tre au processeur
- h&ocirc;te lorsque le mot de donn&eacute;e est lu. La cause
- usuelle d'une erreur de fen&ecirc;tre est lorsque
- l'horloge de l'&eacute;metteur et du r&eacute;cepteur ne
- tournent pas &agrave; la m&ecirc;me vitesse, et que le
- signal a &eacute;t&eacute; interrompu.</para>
-
- <para>Ind&eacute;pendamment de si les donn&eacute;es ont &eacute;t&eacute;
- re&ccedil;u correctement ou non, l'UART &eacute;carte
- automatiquement les bits de d&eacute;part, d'arr&ecirc;t et de
- parit&eacute;.
- Si l'&eacute;metteur et le r&eacute;cepteur sont configur&eacute;s
- identiquement, ces bits ne sont pas pass&eacute; &agrave;
- l'h&ocirc;te.</para>
-
- <para>Si un autre mot est pr&ecirc;t pour la
- transmission, le bit de d&eacute;part pour le nouveau mot
- peut &ecirc;tre envoy&eacute; aussit&ocirc;t que le bit d'arr&ecirc;t pour
- le mot pr&eacute;c&eacute;dent a &eacute;t&eacute; envoy&eacute;.</para>
-
- <para>Parce que les donn&eacute;es asynchrones sont
- &ldquo;auto-descriptibles&rdquo;, s'il n'y a pas
- de donn&eacute;es &agrave; transmettre, la ligne de transmission
- peut &ecirc;tre inactive.</para>
- </sect4>
-
- <sect4>
- <title>Autres fonctions UART</title>
-
- <para>En plus de son travail qui est de convertir
- des donn&eacute;es de parall&egrave;le &agrave; s&eacute;rie en r&eacute;ception, un
- UART fournit usuellement des circuits addtionnel
- pour les signaux qui peuvent &ecirc;tre utilis&eacute;s pour
- indiquer l'&eacute;tat de le m&eacute;dia de transmission, et
- pour r&eacute;guler le flux de donn&eacute;es dans l'&eacute;ventualit&eacute;
- o&ugrave; le p&eacute;riph&eacute;rique distant n'est pas pr&eacute;par&eacute; &agrave;
- accepter plus de donn&eacute;es. Par exemple, quand le
- p&eacute;riph&eacute;rique connect&eacute; &agrave; l'UART est un modem, le
- modem peut reporter la pr&eacute;sence d'une portance sur
- la ligne t&eacute;l&eacute;phonique alors que l'ordinateur peut
- ordonner au modem de se r&eacute;initialiser ou de ne pas
- prendre d'appel en prenant en compte ou non ces
- signaux suppl&eacute;pmentaires. La fonction de chacun
- de ces signaux suppl&eacute;mentaires est d&eacute;fini dans le
- standard EIA RS232-C.</para>
- </sect4>
-
- <sect4>
- <title>Les standards RS232-C et V.24</title>
-
- <para>Dans la plupart des syst&egrave;mes informatiques,
- l'UART est connect&eacute; au circuit g&eacute;n&eacute;rant le signal
- correspondant aux sp&eacute;cifications EIA RS232-C.
- Il y a aussi un standard CCITT nomm&eacute; V.24
- qui reprend les sp&eacute;cifications incluses dans
- RS232-C.</para>
-
- <sect5>
- <title>Assignation de bits RS232-C (marques et
- espaces)</title>
-
- <para>Dans la RS232-C, une valeur de <literal>1</literal>
- est appel&eacute;e une <literal>marque</literal> et une
- valeur de <literal>0</literal> est appel&eacute; un
- <literal>espace</literal>.
- Lorsqu'une ligne de communication est inactive,
- la ligne est dite &ldquo;marquant&rdquo; ou
- transmettant continuellement la valeur
- <literal>1</literal>.</para>
-
- <para>Le bit de d&eacute;part a toujours une valeur de
- <literal>0</literal> (un espace). Le bit d'arr&ecirc;t
- a toujours une valeur de <literal>1</literal>
- (une marque). Cela signifie qu'il y aura
- toujours une transition d'une marque (1) &agrave; un
- espace (0) sur la ligne &agrave; chaque mot, m&ecirc;me si
- plusieurs mots sont transmis &agrave; la suite.
- Cela garanti que l'&eacute;metteur et le r&eacute;cepteur
- peuvent resynchroniser leurs horloges,
- ind&eacute;pendamment du contenu des bits de donn&eacute;es en
- train d'&ecirc;tre transmis.</para>
-
- <para>Le temps d'inactivit&eacute; entre les bits de
- d&eacute;part et d'arr&ecirc;t n'ont pas &agrave; &ecirc;tre exactement
- multiple (en incluant z&eacute;ro) de la vitesse de
- transmission de bits sur le lien de
- communication, mais la plupart des UART sont
- con&ccedil;us de cette mani&egrave;re pour que cela soit plus
- simple.</para>
-
- <para>Dans la RS232-C, le signal "marquant"
- (un <literal>1</literal>) est repr&eacute;sent&eacute; par
- un voltage entre -2 VDC (tension en courant
- continu) et -12 VDC, et un
- signal "d'espace" (un <literal>0</literal>)
- est repr&eacute;sent&eacute; par un voltage entre 0 et +12 VDC.
- L'&eacute;metteur est suppos&eacute; envoyer du +12 VDC ou
- -12 VDC, et le r&eacute;cepteur, et le r&eacute;cepteur est
- suppos&eacute; supporter une perte de voltage sur les
- longs c&acirc;bles.
- Certains &eacute;metteurs avec des p&eacute;riph&eacute;riques de
- basse &eacute;nergie (comme les ordinateurs portables)
- utilisent souvent seulement +5 VDC et -5 VDC,
- mais ces valeurs sont toujours acceptables
- par un r&eacute;cepteur RS232-C, du moment que la
- longueur du c&acirc;ble soit courte.</para>
- </sect5>
-
- <sect5>
- <title>Signal de rupture RS232-C (Break Signal)</title>
-
- <para>La RS232-C sp&eacute;cifie aussi un signal
- appel&eacute; <literal>rupture</literal> (break),
- qui est caus&eacute; en envoyant en continu des valeurs
- d'espacement (ni de d&eacute;part, ni d'arr&ecirc;t).
- Quand iul n'y a pas d'&eacute;lectricit&eacute; pr&eacute;sent sur le
- circuit de donn&eacute;es, la ligne est consid&eacute;r&eacute;e en
- train d'envoyer une <literal>Rupture</literal>.</para>
-
- <para>Le signal <literal>Rupture</literal> peut
- &ecirc;tre plus long que le temps mis pour envoyer un
- octet complet plus les bits de d&eacute;part, d'arr&ecirc;t
- et de parit&eacute;. La plupart des UART peuvent
- distinguer une erreur de fen&ecirc;tre et une
- rupture, mais si l'UART ne peut pas le
- faire, la d&eacute;tection de fen&ecirc;tre peut &ecirc;tre
- utilis&eacute;e pour identifier les
- ruptures.</para>
-
- <para>Aux jours du teleprinter, lorsque
- plusieurs imprimantes &agrave; travers le monde &eacute;taient
- c&acirc;bl&eacute;es en s&eacute;rie (comme les services de news),
- toute unit&eacute; pouvait causer une
- <literal>Rupture</literal> en ouvrant
- temporairement le circuit complet.
- Cela &eacute;tait utilis&eacute; pour pouvoir autoriser un emplacement
- avec des nouvelles importante d'interrompre un autre
- emplacement en train de transmettre des informations.</para>
-
- <para>Dans les syst&egrave;mes modernes, il y a deux types de
- signal de rupture. Si la rupture est plus longue
- que 1.6 secondes, on le consid&egrave;re comme une
- "rupture de modem", et certains modems
- peuvent &ecirc;tre programm&eacute;s pour terminer la conversation
- et pour raccrocher ou entrer dans le mode de commande du
- modem quand le modem d&eacute;tecte ce signal.
- Si l'rupture est plus courte que 1.6 secondes, cela
- signifie une rupture de donn&eacute;es et il appartient &agrave;
- l'ordinateur distant de r&eacute;pondre &agrave; ce signal.
- Parfois cette forme de rupture est utilis&eacute;e comme
- signal d'attention ou d'interruption et est parfois
- accept&eacute;e comme remplacement pour le caract&egrave;re
- ASCII CONTROL-C.</para>
-
- <para>Les marques et espaces sont &eacute;quivalents aux
- &ldquo;trous&rdquo; et &ldquo;non trou&rdquo; dans les
- syst&egrave;mes &agrave; cartes perfor&eacute;es.</para>
-
- <note>
- <para>Les ruptures ne peuvent &ecirc;tre g&eacute;n&eacute;r&eacute;es depuis des
- cartes perfor&eacute;es ou n'importe auelle autre valeur
- d'octet, puisque les octets sont toujours envoy&eacute;s avec
- un bit de d&eacute;part et un bit d'arr&ecirc;t.
- L'UART est habituellement capable de produire du signal
- d'espacement en r&eacute;ponse &agrave; une commande sp&eacute;ciale
- du processeur h&ocirc;te.</para>
- </note>
- </sect5>
-
- <sect5>
- <title>P&eacute;riph&eacute;riques RS232-C DTE et DCE</title>
-
- <para>Les sp&eacute;cifications de RS232-C d&eacute;finit deux types de
- mat&eacute;riel : le terminal informatique (DTE) et le p&eacute;riph&eacute;rique
- de transport de donn&eacute;es (DCE). Habituellement, le
- p&eacute;riph&eacute;rique DTE est un terminal (ou un ordinateur) et le
- DCE est un modem. A l'autre extr&eacute;mit&eacute; de la conversation &agrave;
- travers la ligne t&eacute;l&eacute;phonique, le modem de r&eacute;ception est
- aussi un p&eacute;riph&eacute;rique DCE et l'ordinateur qui est reli&eacute; &agrave;
- ce modem est un p&eacute;riph&eacute;rique DTE.
- Le p&eacute;riph&eacute;rique DCE re&ccedil;oit des signaux sur les broches que
- le p&eacute;riph&eacute;rique de DTE transmet, et vice versa.</para>
-
- <para>Lorsque deux p&eacute;riph&eacute;riques qui sont tous deux DTE
- ou tous deux DCE doivent &ecirc;tre connect&eacute;s ensemble sans un
- modem ou un interm&eacute;diaire similaire entre eux, un NULL
- modem doit &ecirc;tre utilis&eacute;. Le NULL modem r&eacute;organize
- &eacute;lectriquement le c&acirc;blage de telle sorte que la sortie
- de l'&eacute;metteur soit reli&eacute;e au r&eacute;cepteur sur l'autre
- p&eacute;riph&eacute;rique et vice versa.
- Des traductions semblables sont ex&eacute;cut&eacute;es sur tous les
- signaux de contr&ocirc;le de sorte que chaque p&eacute;riph&eacute;rique
- voit ce qu'il pense &ecirc;tre du signal DCE (ou DTE) depuis
- l'autre p&eacute;riph&eacute;rique.</para>
-
- <para>Le nombre de signaux produits par les p&eacute;riph&eacute;riques
- DTE et DCE ne sont pas sym&eacute;triques.
- Le p&eacute;riph&eacute;rique DTE produit moins de signaux pour le
- p&eacute;riph&eacute;rique DCE que le p&eacute;riph&eacute;rique DTE re&ccedil;oit depuis le
- DCE.</para>
- </sect5>
-
- <sect5>
- <title>Assignation des broches RS232-C</title>
-
- <para>Les sp&eacute;cifications EIA RS232-C (et l'&eacute;quivalent ITU,
- V.24) d&eacute;signe un connecteur 25 broches (habituellement un
- DB25) et d&eacute;finit le but de la plupart des broches dans ce
- connecteur.</para>
-
- <para>Dans l'IBM PC et les syst&egrave;mes
- semblables, un sous-ensemble de signaux de
- RS232-C est fourni par l'interm&eacute;diaire de neuf
- connecteurs &agrave; broches (DB9). Les signaux qui ne
- sont pas inclus sur le connecteur PC, travaille
- principalement avec l'ex&eacute;cution synchrone, et ce
- mode de transmission n'est pas support&eacute;s par
- l'UART qu'IBM a choisi pour l'usage dans l'IBM
- PC.</para>
-
- <para>Selon le constructeur, un DB25, un
- DB9, ou les deux types de connecteur peuvent
- &ecirc;tre utilis&eacute;s pour des transmissions de RS232-C.
- (l'IBM PC utilise &eacute;galement un connecteur
- DB25 pour l'interface parall&egrave;le pour
- imprimante ce qui pr&ecirc;te &agrave; certaines
- confusions).</para>
-
- <para>Ci-dessous, une table des affectations de signaux
- des connecteurs DB25 et DB9 dans RS232-C</para>
-
- <informaltable frame="none">
- <tgroup cols="7">
- <thead>
- <row>
- <entry>Broche DB25 RS232-C</entry>
- <entry>Broche DB9 IBM PC</entry>
- <entry>EIA Circuit Symbol</entry>
- <entry>CCITT Circuit Symbol</entry>
- <entry>Common Name</entry>
- <entry>Signal Source</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>1</entry>
- <entry>-</entry>
- <entry>AA</entry>
- <entry>101</entry>
- <entry>PG/FG</entry>
- <entry>-</entry>
- <entry>Frame/Protective Ground</entry>
- </row>
-
- <row>
- <entry>2</entry>
- <entry>3</entry>
- <entry>BA</entry>
- <entry>103</entry>
- <entry>TD</entry>
- <entry>DTE</entry>
- <entry>Transmission donn&eacute;es</entry>
- </row>
-
- <row>
- <entry>3</entry>
- <entry>2</entry>
- <entry>BB</entry>
- <entry>104</entry>
- <entry>RD</entry>
- <entry>DCE</entry>
- <entry>Reception donn&eacute;es</entry>
- </row>
-
- <row>
- <entry>4</entry>
- <entry>7</entry>
- <entry>CA</entry>
- <entry>105</entry>
- <entry>RTS</entry>
- <entry>DTE</entry>
- <entry>Request to Send</entry>
- </row>
-
- <row>
- <entry>5</entry>
- <entry>8</entry>
- <entry>CB</entry>
- <entry>106</entry>
- <entry>CTS</entry>
- <entry>DCE</entry>
- <entry>Clear to Send</entry>
- </row>
-
- <row>
- <entry>6</entry>
- <entry>6</entry>
- <entry>CC</entry>
- <entry>107</entry>
- <entry>DSR</entry>
- <entry>DCE</entry>
- <entry>Data Set Ready</entry>
- </row>
-
- <row>
- <entry>7</entry>
- <entry>5</entry>
- <entry>AV</entry>
- <entry>102</entry>
- <entry>SG/GND</entry>
- <entry>-</entry>
- <entry>Signal Ground</entry>
- </row>
-
- <row>
- <entry>8</entry>
- <entry>1</entry>
- <entry>CF</entry>
- <entry>109</entry>
- <entry>DCD/CD</entry>
- <entry>DCE</entry>
- <entry>Data Carrier Detect</entry>
- </row>
-
- <row>
- <entry>9</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>Reserved for Test</entry>
- </row>
-
- <row>
- <entry>10</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>Reserved for Test</entry>
- </row>
-
- <row>
- <entry>11</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>Reserved for Test</entry>
- </row>
-
- <row>
- <entry>12</entry>
- <entry>-</entry>
- <entry>CI</entry>
- <entry>122</entry>
- <entry>SRLSD</entry>
- <entry>DCE</entry>
- <entry>Sec. Recv. Line Signal Detector</entry>
- </row>
-
- <row>
- <entry>13</entry>
- <entry>-</entry>
- <entry>SCB</entry>
- <entry>121</entry>
- <entry>SCTS</entry>
- <entry>DCE</entry>
- <entry>Secondary Clear to Send</entry>
- </row>
-
- <row>
- <entry>14</entry>
- <entry>-</entry>
- <entry>SBA</entry>
- <entry>118</entry>
- <entry>STD</entry>
- <entry>DTE</entry>
- <entry>Secondary Transmit Data</entry>
- </row>
-
- <row>
- <entry>15</entry>
- <entry>-</entry>
- <entry>DB</entry>
- <entry>114</entry>
- <entry>TSET</entry>
- <entry>DCE</entry>
- <entry>Trans. Sig. Element Timing</entry>
- </row>
-
- <row>
- <entry>16</entry>
- <entry>-</entry>
- <entry>SBB</entry>
- <entry>119</entry>
- <entry>SRD</entry>
- <entry>DCE</entry>
- <entry>Secondary Received Data</entry>
- </row>
-
- <row>
- <entry>17</entry>
- <entry>-</entry>
- <entry>DD</entry>
- <entry>115</entry>
- <entry>RSET</entry>
- <entry>DCE</entry>
- <entry>Receiver Signal Element Timing</entry>
- </row>
-
- <row>
- <entry>18</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>141</entry>
- <entry>LOOP</entry>
- <entry>DTE</entry>
- <entry>Local Loopback</entry>
- </row>
-
- <row>
- <entry>19</entry>
- <entry>-</entry>
- <entry>SCA</entry>
- <entry>120</entry>
- <entry>SRS</entry>
- <entry>DTE</entry>
- <entry>Secondary Request to Send</entry>
- </row>
-
- <row>
- <entry>20</entry>
- <entry>4</entry>
- <entry>CD</entry>
- <entry>108.2</entry>
- <entry>DTR</entry>
- <entry>DTE</entry>
- <entry>Data Terminal Ready</entry>
- </row>
-
- <row>
- <entry>21</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>RDL</entry>
- <entry>DTE</entry>
- <entry>Remote Digital Loopback</entry>
- </row>
-
- <row>
- <entry>22</entry>
- <entry>9</entry>
- <entry>CE</entry>
- <entry>125</entry>
- <entry>RI</entry>
- <entry>DCE</entry>
- <entry>Ring Indicator</entry>
- </row>
-
- <row>
- <entry>23</entry>
- <entry>-</entry>
- <entry>CH</entry>
- <entry>111</entry>
- <entry>DSRS</entry>
- <entry>DTE</entry>
- <entry>Data Signal Rate Selector</entry>
- </row>
-
- <row>
- <entry>24</entry>
- <entry>-</entry>
- <entry>DA</entry>
- <entry>113</entry>
- <entry>TSET</entry>
- <entry>DTE</entry>
- <entry>Trans. Sig. Element Timing</entry>
- </row>
-
- <row>
- <entry>25</entry>
- <entry>-</entry>
- <entry>-</entry>
- <entry>142</entry>
- <entry>-</entry>
- <entry>DCE</entry>
- <entry>Test Mode</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect5>
- </sect4>
-
- <sect4>
- <title>Bits, Baud et symboles</title>
-
- <para>Le baud est une mesure de vitesse de transmission dans la
- liaison asynchrone. En raison de l'avance en technologie
- de transmission par modem, ce terme est fr&eacute;quemment
- employ&eacute; abusivement pour d&eacute;signer le d&eacute;bit dans les nouveaux
- p&eacute;riph&eacute;riques.</para>
-
- <para>Traditionnellement, un d&eacute;bit en baud repr&eacute;sente le
- nombre de bits qui sont envoy&eacute;s r&eacute;ellement
- par le m&eacute;dia, pas la quantit&eacute; des donn&eacute;es qui sont
- d&eacute;plac&eacute;es r&eacute;ellement d'un dispositif de
- DTE &agrave; l'autre. Le comptage en baud inclut les bits
- suppl&eacute;mentaires de d&eacute;part, d'arr&ecirc;t et de parit&eacute; qui sont
- produits par l'UART d' envoi et retir&eacute;s par l'UART de
- r&eacute;ception. Ceci signifie que les mots de sept bits
- de donn&eacute;es prennent r&eacute;ellement 10 bits &agrave; transmettre.
- Par cons&eacute;quent, un modem
- capable de d&eacute;placer 300 bits par seconde d'un endroit &agrave;
- l'autre peut normalement seulement
- d&eacute;placer 30 mots de 7 bit si la parit&eacute; est utilis&eacute;e et un bit
- d'arr&ecirc;t et de de d&eacute;but sont pr&eacute;sent.</para>
-
- <para>Si des mots contenant des donn&eacute;es de 8 bits sont
- utilis&eacute;s et si des bits de parit&eacute; sont &eacute;galement
- utilis&eacute;s, le d&eacute;bit tombe &agrave; 27.27 mots par seconde, parce que
- cela prend maintenant 11 bits pour envoyer les mots
- de 8 bits, et le modem envoie toujours seulement
- 300 bits par seconde.</para>
-
- <para>La formule pour convertir des octets par seconde
- en une vitesse baud et vice versa &eacute;tait
- simple jusqu'&agrave; ce que les modems correcteurs d'erreurs
- soient arriv&eacute;s. Ces modems re&ccedil;oivent
- une s&eacute;rie de bits de l'UART dans l'ordinateur
- h&ocirc;te (m&ecirc;me lorsque des modems internes
- sont utilis&eacute;s les donn&eacute;es sont encore
- fr&eacute;quemment arrang&eacute;s en s&eacute;rie) et convertissent les bits de
- nouveau en octets. Ces octets sont alors combin&eacute;s dans
- des paquets et envoy&eacute;s par
- de la ligne t&eacute;l&eacute;phonique en utilisant une m&eacute;thode de
- transmission synchrone. Ceci signifie que les
- bits de parit&eacute;, d'arr&ecirc;t, de d&eacute;but, ajout&eacute;s par l'UART dans
- le DTE (l'ordinateur) ont &eacute;t&eacute; retir&eacute;s par le
- modem avant transmission par le modem d' envoi. Quand ces
- octets sont re&ccedil;us par le modem distant, le modem
- distant ajoute des bits de parit&eacute;, de d&eacute;but, d'arr&ecirc;t
- aux mots, les convertit en format s&eacute;quentiel et puis
- les envoie &agrave; l'UART de r&eacute;ception
- dans l'ordinateur distant, qui &eacute;limine
- alors les bits de d&eacute;but, d'arr&ecirc;t et
- de parit&eacute;.</para>
-
- <para>La raison pour laquelle toutes ces conversions
- suppl&eacute;mentaires sont effectu&eacute;es est de faire de la sorte
- que les deux modems
- puissent ex&eacute;cuter les corrections d'erreurs, qui signifie que
- le modem de r&eacute;ception peut demander au
- modem d'envoi de renvoyer un bloc de donn&eacute;es qui n'aurait
- pas &eacute;t&eacute; re&ccedil;u avec un total de
- contr&ocirc;le correct. Ce contr&ocirc;le est manipul&eacute; par les
- modems, et les p&eacute;riph&eacute;riques DTE sont ignorant du processus
- qui s'est produit.</para>
-
- <para>En sautant les bits de parit&eacute;, de d&eacute;but et d'arr&ecirc;t,
- les bits suppl&eacute;mentaires des donn&eacute;es - que les deux
- modems doivent partager entre eux pour effectuer des
- corrections d'erreurs - sont le plus souvent cach&eacute;s lors du calcul
- du d&eacute;bit de transmission effectivement vu par le mat&eacute;riel
- DTE d'envoi et de r&eacute;ception.
- Par exemple, si un modem envoie dix mots de 7 bit &agrave; un
- autre modem sans compter les bits de
- parit&eacute;, de d&eacute;but et d'arr&ecirc;t, le modem d' envoi pourra
- ajouter 30 bits d'information que le
- modem de r&eacute;ception pourra employer pour faire de correction
- d'erreurs, ceci sans influencer la vitesse de
- transmission des vraies donn&eacute;es.</para>
-
- <para>L'utilisation du terme baud est rendu
- encore confus
- par les modems ex&eacute;cutant une compression.
- Un mot simple de 8 bits &agrave; travers une ligne
- t&eacute;l&eacute;phonique pourrait en r&eacute;alit&eacute; &ecirc;tre une douzaine de mots
- qui ont &eacute;t&eacute; transmis au modem d'envoi. Le modem de r&eacute;ception
- se chargera ensuite de le d&eacute;compresser et lui rendre son
- contenu inital qu'il passera au DTE de r&eacute;ception.</para>
-
- </para>
- Modern modems also include buffers that allow the rate that
- bits move across the phone line (DCE to DCE) to be a different
- speed than the speed that the bits move between the DTE and DCE on
- both ends of the conversation. Normally the speed between the DTE
- and DCE is higher than the DCE to DCE speed because of the use of
- compression by the modems.</para>
-
- <para>Because the number of bits needed to describe a byte varied
- during the trip between the two machines plus the differing
- bits-per-seconds speeds that are used present on the DTE-DCE and
- DCE-DCE links, the usage of the term Baud to describe the overall
- communication speed causes problems and can misrepresent the true
- transmission speed. So Bits Per Second (bps) is the correct term
- to use to describe the transmission rate seen at the DCE to DCE
- interface and Baud or Bits Per Second are acceptable terms to use
- when a connection is made between two systems with a wired
- connection, or if a modem is in use that is not performing
- error-correction or compression.</para>
-
- <para>Modern high speed modems (2400, 9600, 14,400, and 19,200bps)
- in reality still operate at or below 2400 baud, or more
- accurately, 2400 Symbols per second. High speed modem are able to
- encode more bits of data into each Symbol using a technique called
- Constellation Stuffing, which is why the effective bits per second
- rate of the modem is higher, but the modem continues to operate
- within the limited audio bandwidth that the telephone system
- provides. Modems operating at 28,800 and higher speeds have
- variable Symbol rates, but the technique is the same.</para>
- </sect4>
-
-
- <sect4>
- <title>The IBM Personal Computer UART</title>
-
- <para>Starting with the original IBM Personal Computer, IBM selected
- the National Semiconductor INS8250 UART for use in the IBM PC
- Parallel/Serial Adapter. Subsequent generations of compatible
- computers from IBM and other vendors continued to use the INS8250
- or improved versions of the National Semiconductor UART
- family.</para>
-
- <sect5>
- <title>National Semiconductor UART Family Tree</title>
-
- <para>There have been several versions and subsequent generations
- of the INS8250 UART. Each major version is described
- below.</para>
-
- <programlisting>
-INS8250 -&gt; INS8250B
- \
- \
- \-&gt; INS8250A -&gt; INS82C50A
- \
- \
- \-&gt; NS16450 -&gt; NS16C450
- \
- \
- \-&gt; NS16550 -&gt; NS16550A -&gt; PC16550D</programlisting>
-
- <variablelist>
- <varlistentry>
- <term>INS8250</term>
-
- <listitem>
- <para>This part was used in the original IBM PC and IBM
- PC/XT. The original name for this part was the INS8250
- ACE (Asynchronous Communications Element) and it is made
- from NMOS technology.</para>
-
- <para>The 8250 uses eight I/O ports and has a one-byte send
- and a one-byte receive buffer. This original UART has
- several race conditions and other flaws. The original IBM
- BIOS includes code to work around these flaws, but this
- made the BIOS dependent on the flaws being present, so
- subsequent parts like the 8250A, 16450 or 16550 could not
- be used in the original IBM PC or IBM PC/XT.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>INS8250-B</term>
-
- <listitem>
- <para>This is the slower speed of the INS8250 made from NMOS
- technology. It contains the same problems as the original
- INS8250.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>INS8250A</term>
-
- <listitem>
- <para>An improved version of the INS8250 using XMOS
- technology with various functional flaws corrected. The
- INS8250A was used initially in PC clone computers by
- vendors who used &ldquo;clean&rdquo; BIOS designs. Because
- of the corrections in the chip, this part could not be
- used with a BIOS compatible with the INS8250 or
- INS8250B.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>INS82C50A</term>
-
- <listitem>
- <para>This is a CMOS version (low power consumption) of the
- INS8250A and has similar functional
- characteristics.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16450</term>
-
- <listitem>
- <para>Same as NS8250A with improvements so it can be used
- with faster CPU bus designs. IBM used this part in the
- IBM AT and updated the IBM BIOS to no longer rely on the
- bugs in the INS8250.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16C450</term>
-
- <listitem>
- <para>This is a CMOS version (low power consumption) of the
- NS16450.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16550</term>
-
- <listitem>
- <para>Same as NS16450 with a 16-byte send and receive buffer
- but the buffer design was flawed and could not be reliably
- be used.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16550A</term>
-
- <listitem>
- <para>Same as NS16550 with the buffer flaws corrected. The
- 16550A and its successors have become the most popular
- UART design in the PC industry, mainly due it its ability
- to reliably handle higher data rates on operating systems
- with sluggish interrupt response times.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NS16C552</term>
-
- <listitem>
- <para>This component consists of two NS16C550A CMOS UARTs in
- a single package.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>PC16550D</term>
-
- <listitem>
- <para>Same as NS16550A with subtle flaws corrected. This is
- revision D of the 16550 family and is the latest design
- available from National Semiconductor.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect5>
-
- <sect5>
- <title>The NS16550AF and the PC16550D are the same thing</title>
-
- <para>National reorganized their part numbering system a few years
- ago, and the NS16550AFN no longer exists by that name. (If you
- have a NS16550AFN, look at the date code on the part, which is a
- four digit number that usually starts with a nine. The first
- two digits of the number are the year, and the last two digits
- are the week in that year when the part was packaged. If you
- have a NS16550AFN, it is probably a few years old.)</para>
-
- <para>The new numbers are like PC16550DV, with minor differences
- in the suffix letters depending on the package material and its
- shape. (A description of the numbering system can be found
- below.)</para>
-
- <para>It is important to understand that in some stores, you may
- pay &#36;15(US) for a NS16550AFN made in 1990 and in the next
- bin are the new PC16550DN parts with minor fixes that National
- has made since the AFN part was in production, the PC16550DN was
- probably made in the past six months and it costs half (as low
- as &#36;5(US) in volume) as much as the NS16550AFN because they
- are readily available.</para>
-
- <para>As the supply of NS16550AFN chips continues to shrink, the
- price will probably continue to increase until more people
- discover and accept that the PC16550DN really has the same
- function as the old part number.</para>
- </sect5>
-
- <sect5>
- <title>National Semiconductor Part Numbering System</title>
-
- <para>The older NS<replaceable>nnnnnrqp</replaceable> part
- numbers are now of the format
- PC<replaceable>nnnnnrgp</replaceable>.</para>
-
- <para>The <replaceable>r</replaceable> is the revision field. The
- current revision of the 16550 from National Semiconductor is
- <literal>D</literal>.</para>
-
- <para>The <replaceable>p</replaceable> is the package-type field.
- The types are:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>"F"</entry>
- <entry>QFP</entry>
- <entry>(quad flat pack) L lead type</entry>
- </row>
-
- <row>
- <entry>"N"</entry>
- <entry>DIP</entry>
- <entry>(dual inline package) through hole straight lead
- type</entry>
- </row>
-
- <row>
- <entry>"V"</entry>
- <entry>LPCC</entry>
- <entry>(lead plastic chip carrier) J lead type</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>The <replaceable>g</replaceable> is the product grade field.
- If an <literal>I</literal> precedes the package-type letter, it
- indicates an &ldquo;industrial&rdquo; grade part, which has
- higher specs than a standard part but not as high as Military
- Specification (Milspec) component. This is an optional
- field.</para>
-
- <para>So what we used to call a NS16550AFN (DIP Package) is now
- called a PC16550DN or PC16550DIN.</para>
- </sect5>
- </sect4>
-
- <sect4>
- <title>Other Vendors and Similar UARTs</title>
-
- <para>Over the years, the 8250, 8250A, 16450 and 16550 have been
- licensed or copied by other chip vendors. In the case of the
- 8250, 8250A and 16450, the exact circuit (the
- &ldquo;megacell&rdquo;) was licensed to many vendors, including
- Western Digital and Intel. Other vendors reverse-engineered the
- part or produced emulations that had similar behavior.</para>
-
- <para>In internal modems, the modem designer will frequently emulate
- the 8250A/16450 with the modem microprocessor, and the emulated
- UART will frequently have a hidden buffer consisting of several
- hundred bytes. Because of the size of the buffer, these
- emulations can be as reliable as a 16550A in their ability to
- handle high speed data. However, most operating systems will
- still report that the UART is only a 8250A or 16450, and may not
- make effective use of the extra buffering present in the emulated
- UART unless special drivers are used.</para>
-
- <para>Some modem makers are driven by market forces to abandon a
- design that has hundreds of bytes of buffer and instead use a
- 16550A UART so that the product will compare favorably in market
- comparisons even though the effective performance may be lowered
- by this action.</para>
-
- <para>A common misconception is that all parts with
- &ldquo;16550A&rdquo; written on them are identical in performance.
- There are differences, and in some cases, outright flaws in most
- of these 16550A clones.</para>
-
- <para>When the NS16550 was developed, the National Semiconductor
- obtained several patents on the design and they also limited
- licensing, making it harder for other vendors to provide a chip
- with similar features. Because of the patents, reverse-engineered
- designs and emulations had to avoid infringing the claims covered
- by the patents. Subsequently, these copies almost never perform
- exactly the same as the NS16550A or PC16550D, which are the parts
- most computer and modem makers want to buy but are sometimes
- unwilling to pay the price required to get the genuine
- part.</para>
-
- <para>Some of the differences in the clone 16550A parts are
- unimportant, while others can prevent the device from being used
- at all with a given operating system or driver. These differences
- may show up when using other drivers, or when particular
- combinations of events occur that were not well tested or
- considered in the Windows driver. This is because most modem
- vendors and 16550-clone makers use the Microsoft drivers from
- Windows for Workgroups 3.11 and the Microsoft MSD utility as the
- primary tests for compatibility with the NS16550A. This
- over-simplistic criteria means that if a different operating
- system is used, problems could appear due to subtle differences
- between the clones and genuine components.</para>
-
- <para>National Semiconductor has made available a program named
- <application>COMTEST</application> that performs compatibility
- tests independent of any OS drivers. It should be remembered that
- the purpose of this type of program is to demonstrate the flaws in
- the products of the competition, so the program will report major
- as well as extremely subtle differences in behavior in the part
- being tested.</para>
-
- <para>In a series of tests performed by the author of this document
- in 1994, components made by National Semiconductor, TI, StarTech,
- and CMD as well as megacells and emulations embedded in internal
- modems were tested with COMTEST. A difference count for some of
- these components is listed below. Because these tests were
- performed in 1994, they may not reflect the current performance of
- the given product from a vendor.</para>
-
- <para>It should be noted that COMTEST normally aborts when an
- excessive number or certain types of problems have been detected.
- As part of this testing, COMTEST was modified so that it would not
- abort no matter how many differences were encountered.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Vendor</entry>
- <entry>Part Number</entry>
- <entry>Errors (aka "differences" reported)</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>National</entry>
- <entry>(PC16550DV)</entry>
- <entry>0</entry>
- </row>
-
- <row>
- <entry>National</entry>
- <entry>(NS16550AFN)</entry>
- <entry>0</entry>
- </row>
-
- <row>
- <entry>National</entry>
- <entry>(NS16C552V)</entry>
- <entry>0</entry>
- </row>
-
- <row>
- <entry>TI</entry>
- <entry>(TL16550AFN)</entry>
- <entry>3</entry>
- </row>
-
- <row>
- <entry>CMD</entry>
- <entry>(16C550PE)</entry>
- <entry>19</entry>
- </row>
-
- <row>
- <entry>StarTech</entry>
- <entry>(ST16C550J)</entry>
- <entry>23</entry>
- </row>
-
- <row>
- <entry>Rockwell</entry>
- <entry>Reference modem with internal 16550 or an
- emulation (RC144DPi/C3000-25)</entry>
- <entry>117</entry>
- </row>
-
- <row>
- <entry>Sierra</entry>
- <entry>Modem with an internal 16550
- (SC11951/SC11351)</entry>
- <entry>91</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>To date, the author of this document has not found any
- non-National parts that report zero differences using the
- COMTEST program. It should also be noted that National has had
- five versions of the 16550 over the years and the newest parts
- behave a bit differently than the classic NS16550AFN that is
- considered the benchmark for functionality. COMTEST appears to
- turn a blind eye to the differences within the National product
- line and reports no errors on the National parts (except for the
- original 16550) even when there are official erratas that
- describe bugs in the A, B and C revisions of the parts, so this
- bias in COMTEST must be taken into account.</para>
- </note>
-
- <para>It is important to understand that a simple count of
- differences from COMTEST does not reveal a lot about what
- differences are important and which are not. For example, about
- half of the differences reported in the two modems listed above
- that have internal UARTs were caused by the clone UARTs not
- supporting five- and six-bit character modes. The real 16550,
- 16450, and 8250 UARTs all support these modes and COMTEST checks
- the functionality of these modes so over fifty differences are
- reported. However, almost no modern modem supports five- or
- six-bit characters, particularly those with error-correction and
- compression capabilities. This means that the differences related
- to five- and six-bit character modes can be discounted.</para>
-
- <para>Many of the differences COMTEST reports have to do with
- timing. In many of the clone designs, when the host reads from
- one port, the status bits in some other port may not update in the
- same amount of time (some faster, some slower) as a
- <emphasis>real</emphasis> NS16550AFN and COMTEST looks for these
- differences. This means that the number of differences can be
- misleading in that one device may only have one or two differences
- but they are extremely serious, and some other device that updates
- the status registers faster or slower than the reference part
- (that would probably never affect the operation of a properly
- written driver) could have dozens of differences reported.</para>
-
- <para>COMTEST can be used as a screening tool to alert the
- administrator to the presence of potentially incompatible
- components that might cause problems or have to be handled as a
- special case.</para>
-
- <para>If you run COMTEST on a 16550 that is in a modem or a modem is
- attached to the serial port, you need to first issue a ATE0&amp;W
- command to the modem so that the modem will not echo any of the
- test characters. If you forget to do this, COMTEST will report at
- least this one difference:</para>
-
- <screen>Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61</screen>
- </sect4>
-
- <sect4>
- <title>8250/16450/16550 Registers</title>
-
- <para>The 8250/16450/16550 UART occupies eight contiguous I/O port
- addresses. In the IBM PC, there are two defined locations for
- these eight ports and they are known collectively as COM1 and
- COM2. The makers of PC-clones and add-on cards have created two
- additional areas known as COM3 and COM4, but these extra COM ports
- conflict with other hardware on some systems. The most common
- conflict is with video adapters that provide IBM 8514
- emulation.</para>
-
- <para>COM1 is located from 0x3f8 to 0x3ff and normally uses IRQ 4
- COM2 is located from 0x2f8 to 0x2ff and normally uses IRQ 3 COM3
- is located from 0x3e8 to 0x3ef and has no standardized IRQ COM4 is
- located from 0x2e8 to 0x2ef and has no standardized IRQ.</para>
-
- <para>A description of the I/O ports of the 8250/16450/16550 UART is
- provided below.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>I/O Port</entry>
- <entry>Access Allowed</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>+0x00</entry>
- <entry>write (DLAB==0)</entry>
- <entry><para>Transmit Holding Register
- (THR).</para><para>Information written to this port are
- treated as data words and will be transmitted by the
- UART.</para></entry>
- </row>
-
- <row>
- <entry>+0x00</entry>
- <entry>read (DLAB==0)</entry>
- <entry><para>Receive Buffer Register (RBR).</para><para>Any
- data words received by the UART form the serial link are
- accessed by the host by reading this
- port.</para></entry>
- </row>
-
- <row>
- <entry>+0x00</entry>
- <entry>write/read (DLAB==1)</entry>
- <entry><para>Divisor Latch LSB (DLL)</para><para>This value
- will be divided from the master input clock (in the IBM
- PC, the master clock is 1.8432MHz) and the resulting
- clock will determine the baud rate of the UART. This
- register holds bits 0 thru 7 of the
- divisor.</para></entry>
- </row>
-
- <row>
- <entry>+0x01</entry>
- <entry>write/read (DLAB==1)</entry>
- <entry><para>Divisor Latch MSB (DLH)</para><para>This value
- will be divided from the master input clock (in the IBM
- PC, the master clock is 1.8432MHz) and the resulting
- clock will determine the baud rate of the UART. This
- register holds bits 8 thru 15 of the
- divisor.</para></entry>
- </row>
-
- <row>
- <entry>+0x01</entry>
- <entry>write/read (DLAB==0)</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2"><para>Interrupt Enable Register
- (IER)</para><para>The 8250/16450/16550 UART
- classifies events into one of four categories.
- Each category can be configured to generate an
- interrupt when any of the events occurs. The
- 8250/16450/16550 UART generates a single external
- interrupt signal regardless of how many events in
- the enabled categories have occurred. It is up to
- the host processor to respond to the interrupt and
- then poll the enabled interrupt categories
- (usually all categories have interrupts enabled)
- to determine the true cause(s) of the
- interrupt.</para></entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>Enable Modem Status Interrupt (EDSSI). Setting
- this bit to "1" allows the UART to generate an
- interrupt when a change occurs on one or more of the
- status lines.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>Enable Receiver Line Status Interrupt (ELSI)
- Setting this bit to "1" causes the UART to generate
- an interrupt when the an error (or a BREAK signal)
- has been detected in the incoming data.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Enable Transmitter Holding Register Empty
- Interrupt (ETBEI) Setting this bit to "1" causes the
- UART to generate an interrupt when the UART has room
- for one or more additional characters that are to be
- transmitted.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Enable Received Data Available Interrupt
- (ERBFI) Setting this bit to "1" causes the UART to
- generate an interrupt when the UART has received
- enough characters to exceed the trigger level of the
- FIFO, or the FIFO timer has expired (stale data), or
- a single character has been received when the FIFO
- is disabled.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x02</entry>
- <entry>write</entry>
- <entrytbl cols="4">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <colspec colnum="3" colname="col3">
- <colspec colnum="4" colname="col4">
- <spanspec namest="col1" nameend="col4" spanname="1to4">
- <spanspec namest="col2" nameend="col4" spanname="2to4">
-
- <tbody>
- <row>
- <entry spanname="1to4">FIFO Control Register (FCR)
- (This port does not exist on the 8250 and 16450
- UART.)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry spanname="2to4">Receiver Trigger Bit #1</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry spanname="2to4"><para>Receiver Trigger Bit
- #0</para><para>These two bits control at what
- point the receiver is to generate an interrupt
- when the FIFO is active.</para></entry>
- </row>
-
- <row>
- <entry colname="col2">7</entry>
- <entry colname="col3">6</entry>
- <entry colname="col4">How many words are received
- before an interrupt is generated</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">1</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">4</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">8</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">14</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry spanname="2to4">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry spanname="2to4">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry spanname="2to4">DMA Mode Select. If Bit 0 is
- set to "1" (FIFOs enabled), setting this bit changes
- the operation of the -RXRDY and -TXRDY signals from
- Mode 0 to Mode 1.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry spanname="2to4">Transmit FIFO Reset. When a
- "1" is written to this bit, the contents of the FIFO
- are discarded. Any word currently being transmitted
- will be sent intact. This function is useful in
- aborting transfers.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry spanname="2to4">Receiver FIFO Reset. When a
- "1" is written to this bit, the contents of the FIFO
- are discarded. Any word currently being assembled
- in the shift register will be received
- intact.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry spanname="2to4">16550 FIFO Enable. When set,
- both the transmit and receive FIFOs are enabled.
- Any contents in the holding register, shift
- registers or FIFOs are lost when FIFOs are enabled
- or disabled.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x02</entry>
- <entry>read</entry>
- <entrytbl cols="6">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <colspec colnum="3" colname="col3">
- <colspec colnum="4" colname="col4">
- <colspec colnum="5" colname="col5">
- <colspec colnum="6" colname="col6">
- <spanspec namest="col1" nameend="col6" spanname="1to6">
- <spanspec namest="col2" nameend="col6" spanname="2to6">
-
- <tbody>
- <row>
- <entry spanname="1to6">Interrupt Identification
- Register</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry spanname="2to6">FIFOs enabled. On the
- 8250/16450 UART, this bit is zero.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry spanname="2to6">FIFOs enabled. On the
- 8250/16450 UART, this bit is zero.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry spanname="2to6">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry spanname="2to6">Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry spanname="2to6">Interrupt ID Bit #2. On the
- 8250/16450 UART, this bit is zero.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry spanname="2to6">Interrupt ID Bit #1</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry spanname="2to6">Interrupt ID Bit #0.These three
- bits combine to report the category of event that
- caused the interrupt that is in progress. These
- categories have priorities, so if multiple
- categories of events occur at the same time, the
- UART will report the more important events first and
- the host must resolve the events in the order they
- are reported. All events that caused the current
- interrupt must be resolved before any new interrupts
- will be generated. (This is a limitation of the PC
- architecture.)</entry>
- </row>
-
- <row>
- <entry colname="col2">2</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Priority</entry>
- <entry colname="col6">Description</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">1</entry>
- <entry colname="col5">First</entry>
- <entry colname="col6">Received Error (OE, PE, BI, or
- FE)</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Second</entry>
- <entry colname="col6">Received Data Available</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Second</entry>
- <entry colname="col6">Trigger level identification
- (Stale data in receive buffer)</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">1</entry>
- <entry colname="col5">Third</entry>
- <entry colname="col6">Transmitter has room for more
- words (THRE)</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4">0</entry>
- <entry colname="col5">Fourth</entry>
- <entry colname="col6">Modem Status Change (-CTS, -DSR,
- -RI, or -DCD)</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry spanname="2to6">Interrupt Pending Bit. If this
- bit is set to "0", then at least one interrupt is
- pending.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x03</entry>
- <entry>write/read</entry>
- <entrytbl cols="5">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <colspec colnum="3" colname="col3">
- <colspec colnum="4" colname="col4">
- <colspec colnum="5" colname="col5">
- <spanspec namest="col1" nameend="col5" spanname="1to5">
- <spanspec namest="col2" nameend="col5" spanname="2to5">
- <spanspec namest="col4" nameend="col5" spanname="4to5">
-
- <tbody>
- <row>
- <entry spanname="1to5">Line Control Register
- (LCR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry spanname="2to5">Divisor Latch Access Bit
- (DLAB). When set, access to the data
- transmit/receive register (THR/RBR) and the
- Interrupt Enable Register (IER) is disabled. Any
- access to these ports is now redirected to the
- Divisor Latch Registers. Setting this bit, loading
- the Divisor Registers, and clearing DLAB should be
- done with interrupts disabled.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry spanname="2to5">Set Break. When set to "1",
- the transmitter begins to transmit continuous
- Spacing until this bit is set to "0". This
- overrides any bits of characters that are being
- transmitted.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry spanname="2to5">Stick Parity. When parity is
- enabled, setting this bit causes parity to always be
- "1" or "0", based on the value of Bit 4.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry spanname="2to5">Even Parity Select (EPS). When
- parity is enabled and Bit 5 is "0", setting this bit
- causes even parity to be transmitted and expected.
- Otherwise, odd parity is used.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry spanname="2to5">Parity Enable (PEN). When set
- to "1", a parity bit is inserted between the last
- bit of the data and the Stop Bit. The UART will
- also expect parity to be present in the received
- data.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry spanname="2to5">Number of Stop Bits (STB). If
- set to "1" and using 5-bit data words, 1.5 Stop Bits
- are transmitted and expected in each data word. For
- 6, 7 and 8-bit data words, 2 Stop Bits are
- transmitted and expected. When this bit is set to
- "0", one Stop Bit is used on each data word.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry spanname="2to5">Word Length Select Bit #1
- (WLSB1)</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry spanname="2to5">Word Length Select Bit #0
- (WLSB0)</entry>
- </row>
-
- <row>
- <entry colname="col2" spanname="2to5">Together these
- bits specify the number of bits in each data
- word.</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4" spanname="4to5">Word
- Length</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4" spanname="4to5">5 Data
- Bits</entry>
- </row>
-
- <row>
- <entry colname="col2">0</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4" spanname="4to5">6 Data
- Bits</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">0</entry>
- <entry colname="col4" spanname="4to5">7 Data
- Bits</entry>
- </row>
-
- <row>
- <entry colname="col2">1</entry>
- <entry colname="col3">1</entry>
- <entry colname="col4" spanname="4to5">8 Data
- Bits</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x04</entry>
- <entry>write/read</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2">Modem Control Register
- (MCR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Reserved, always 0.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Loop-Back Enable. When set to "1", the UART
- transmitter and receiver are internally connected
- together to allow diagnostic operations. In
- addition, the UART modem control outputs are
- connected to the UART modem control inputs. CTS is
- connected to RTS, DTR is connected to DSR, OUT1 is
- connected to RI, and OUT 2 is connected to
- DCD.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>OUT 2. An auxiliary output that the host
- processor may set high or low. In the IBM PC serial
- adapter (and most clones), OUT 2 is used to
- tri-state (disable) the interrupt signal from the
- 8250/16450/16550 UART.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>OUT 1. An auxiliary output that the host
- processor may set high or low. This output is not
- used on the IBM PC serial adapter.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Request to Send (RTS). When set to "1", the
- output of the UART -RTS line is Low
- (Active).</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Data Terminal Ready (DTR). When set to "1",
- the output of the UART -DTR line is Low
- (Active).</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x05</entry>
- <entry>write/read</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2">Line Status Register
- (LSR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Error in Receiver FIFO. On the 8250/16450
- UART, this bit is zero. This bit is set to "1" when
- any of the bytes in the FIFO have one or more of the
- following error conditions: PE, FE, or BI.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Transmitter Empty (TEMT). When set to "1",
- there are no words remaining in the transmit FIFO
- or the transmit shift register. The transmitter is
- completely idle.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Transmitter Holding Register Empty (THRE).
- When set to "1", the FIFO (or holding register) now
- has room for at least one additional word to
- transmit. The transmitter may still be transmitting
- when this bit is set to "1".</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Break Interrupt (BI). The receiver has
- detected a Break signal.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>Framing Error (FE). A Start Bit was detected
- but the Stop Bit did not appear at the expected
- time. The received word is probably
- garbled.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>Parity Error (PE). The parity bit was
- incorrect for the word received.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Overrun Error (OE). A new word was received
- and there was no room in the receive buffer. The
- newly-arrived word in the shift register is
- discarded. On 8250/16450 UARTs, the word in the
- holding register is discarded and the newly- arrived
- word is put in the holding register.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Data Ready (DR) One or more words are in the
- receive FIFO that the host may read. A word must be
- completely received and moved from the shift
- register into the FIFO (or holding register for
- 8250/16450 designs) before this bit is set.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x06</entry>
- <entry>write/read</entry>
- <entrytbl cols="2">
- <colspec colnum="1" colname="col1">
- <colspec colnum="2" colname="col2">
- <spanspec namest="col1" nameend="col2" spanname="1to2">
-
- <tbody>
- <row>
- <entry spanname="1to2">Modem Status Register
- (MSR)</entry>
- </row>
-
- <row>
- <entry>Bit 7</entry>
- <entry>Data Carrier Detect (DCD). Reflects the state
- of the DCD line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 6</entry>
- <entry>Ring Indicator (RI). Reflects the state of the
- RI line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 5</entry>
- <entry>Data Set Ready (DSR). Reflects the state of
- the DSR line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 4</entry>
- <entry>Clear To Send (CTS). Reflects the state of the
- CTS line on the UART.</entry>
- </row>
-
- <row>
- <entry>Bit 3</entry>
- <entry>Delta Data Carrier Detect (DDCD). Set to "1"
- if the -DCD line has changed state one more more
- times since the last time the MSR was read by the
- host.</entry>
- </row>
-
- <row>
- <entry>Bit 2</entry>
- <entry>Trailing Edge Ring Indicator (TERI). Set to
- "1" if the -RI line has had a low to high transition
- since the last time the MSR was read by the
- host.</entry>
- </row>
-
- <row>
- <entry>Bit 1</entry>
- <entry>Delta Data Set Ready (DDSR). Set to "1" if the
- -DSR line has changed state one more more times
- since the last time the MSR was read by the
- host.</entry>
- </row>
-
- <row>
- <entry>Bit 0</entry>
- <entry>Delta Clear To Send (DCTS). Set to "1" if the
- -CTS line has changed state one more more times
- since the last time the MSR was read by the
- host.</entry>
- </row>
- </tbody>
- </entrytbl>
- </row>
-
- <row>
- <entry>+0x07</entry>
- <entry>write/read</entry>
- <entry>Scratch Register (SCR). This register performs no
- function in the UART. Any value can be written by the
- host to this location and read by the host later
- on.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect4>
-
- <sect4>
- <title>Beyond the 16550A UART</title>
-
- <para>Although National Semiconductor has not offered any components
- compatible with the 16550 that provide additional features,
- various other vendors have. Some of these components are
- described below. It should be understood that to effectively
- utilize these improvements, drivers may have to be provided by the
- chip vendor since most of the popular operating systems do not
- support features beyond those provided by the 16550.</para>
-
- <variablelist>
- <varlistentry>
- <term>ST16650</term>
-
- <listitem>
- <para>By default this part is similar to the NS16550A, but an
- extended 32-byte send and receive buffer can be optionally
- enabled. Made by Startech.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>TIL16660</term>
-
- <listitem>
- <para>By default this part behaves similar to the NS16550A,
- but an extended 64-byte send and receive buffer can be
- optionally enabled. Made by Texas Instruments.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Hayes ESP</term>
-
- <listitem>
- <para>This proprietary plug-in card contains a 2048-byte send
- and receive buffer, and supports data rates to
- 230.4Kbit/sec. Made by Hayes.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>In addition to these &ldquo;dumb&rdquo; UARTs, many vendors
- produce intelligent serial communication boards. This type of
- design usually provides a microprocessor that interfaces with
- several UARTs, processes and buffers the data, and then alerts the
- main PC processor when necessary. Because the UARTs are not
- directly accessed by the PC processor in this type of
- communication system, it is not necessary for the vendor to use
- UARTs that are compatible with the 8250, 16450, or the 16550 UART.
- This leaves the designer free to components that may have better
- performance characteristics.</para>
- </sect4>
--->
-
- </sect3>
-
- <sect3 id="sio">
- <title>*** Configurer le pilote de p&eacute;riph&eacute;rique
- <devicename>sio</devicename></title>
- &sgml.todo;
-
-<!--
- <para>The <devicename>sio</devicename> driver provides support for
- NS8250-, NS16450-, NS16550 and NS16550A-based EIA RS-232C (CCITT
- V.24) communications interfaces. Several multiport cards are
- supported as well. See the &man.sio.4;
- manual page for detailed technical documentation.</para>
-
- <sect4>
- <title>Digi International (DigiBoard) PC/8</title>
-
- <para><emphasis>Contributed by &a.awebster;. 26 August
- 1995.</emphasis></para>
-
- <para>Here is a config snippet from a machine with a Digi
- International PC/8 with 16550. It has 8 modems connected to these
- 8 lines, and they work just great. Do not forget to add
- <literal>options COM_MULTIPORT</literal> or it will not work very
- well!</para>
-
- <programlisting>
-device sio4 at isa? port 0x100 tty flags 0xb05
-device sio5 at isa? port 0x108 tty flags 0xb05
-device sio6 at isa? port 0x110 tty flags 0xb05
-device sio7 at isa? port 0x118 tty flags 0xb05
-device sio8 at isa? port 0x120 tty flags 0xb05
-device sio9 at isa? port 0x128 tty flags 0xb05
-device sio10 at isa? port 0x130 tty flags 0xb05
-device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr</programlisting>
-
- <para>The trick in setting this up is that the MSB of the flags
- represent the last SIO port, in this case 11 so flags are
- 0xb05.</para>
- </sect4>
-
- <sect4>
- <title>Boca 16</title>
-
- <para><emphasis>Contributed by &a.whiteside;. 26 August
- 1995.</emphasis></para>
-
- <para>The procedures to make a Boca 16 port board with FreeBSD are
- pretty straightforward, but you will need a couple things to make
- it work:</para>
-
- <orderedlist>
- <listitem>
- <para>You either need the kernel sources installed so you can
- recompile the necessary options or you will need someone else
- to compile it for you. The 2.0.5 default kernel does
- <emphasis>not</emphasis> come with multiport support enabled
- and you will need to add a device entry for each port
- anyways.</para>
- </listitem>
-
- <listitem>
- <para>Two, you will need to know the interrupt and IO setting
- for your Boca Board so you can set these options properly in
- the kernel.</para>
- </listitem>
- </orderedlist>
-
- <para>One important note &mdash; the actual UART chips for the Boca
- 16 are in the connector box, not on the internal board itself. So
- if you have it unplugged, probes of those ports will fail. I have
- never tested booting with the box unplugged and plugging it back
- in, and I suggest you do not either.</para>
-
- <para>If you do not already have a custom kernel configuration file
- set up, refer to <link linkend="kernelconfig">Kernel
- Configuration</link> for general procedures. The following are
- the specifics for the Boca 16 board and assume you are using the
- kernel name MYKERNEL and editing with vi.</para>
-
- <procedure>
- <step>
- <para>Add the line
-
- <programlisting>
-options COM_MULTIPORT</programlisting>
-
- to the config file.</para>
- </step>
-
- <step>
- <para>Where the current <literal>device
- sio<replaceable>n</replaceable></literal> lines are, you
- will need to add 16 more devices. Only the last device
- includes the interrupt vector for the board. (See the
- &man.sio.4; manual page for detail as
- to why.) The following example is for a Boca Board with an
- interrupt of 3, and a base IO address 100h. The IO address
- for Each port is +8 hexadecimal from the previous port, thus
- the 100h, 108h, 110h... addresses.</para>
-
- <programlisting>
-device sio1 at isa? port 0x100 tty flags 0x1005
-device sio2 at isa? port 0x108 tty flags 0x1005
-device sio3 at isa? port 0x110 tty flags 0x1005
-device sio4 at isa? port 0x118 tty flags 0x1005
-&hellip;
-device sio15 at isa? port 0x170 tty flags 0x1005
-device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr</programlisting>
-
- <para>The flags entry <emphasis>must</emphasis> be changed from
- this example unless you are using the exact same sio
- assignments. Flags are set according to
- 0x<replaceable>M</replaceable><replaceable>YY</replaceable>
- where <replaceable>M</replaceable> indicates the minor number
- of the master port (the last port on a Boca 16) and
- <replaceable>YY</replaceable> indicates if FIFO is enabled or
- disabled(enabled), IRQ sharing is used(yes) and if there is an
- AST/4 compatible IRQ control register(no). In this example,
- <programlisting> flags 0x1005</programlisting> indicates that
- the master port is sio16. If I added another board and
- assigned sio17 through sio28, the flags for all 16 ports on
- <emphasis>that</emphasis> board would be 0x1C05, where 1C
- indicates the minor number of the master port. Do not change
- the 05 setting.</para>
- </step>
-
- <step>
- <para>Save and complete the kernel configuration, recompile,
- install and reboot. Presuming you have successfully installed
- the recompiled kernel and have it set to the correct address
- and IRQ, your boot message should indicate the successful
- probe of the Boca ports as follows: (obviously the sio
- numbers, IO and IRQ could be different)</para>
-
- <screen>sio1 at 0x100-0x107 flags 0x1005 on isa
-sio1: type 16550A (multiport)
-sio2 at 0x108-0x10f flags 0x1005 on isa
-sio2: type 16550A (multiport)
-sio3 at 0x110-0x117 flags 0x1005 on isa
-sio3: type 16550A (multiport)
-sio4 at 0x118-0x11f flags 0x1005 on isa
-sio4: type 16550A (multiport)
-sio5 at 0x120-0x127 flags 0x1005 on isa
-sio5: type 16550A (multiport)
-sio6 at 0x128-0x12f flags 0x1005 on isa
-sio6: type 16550A (multiport)
-sio7 at 0x130-0x137 flags 0x1005 on isa
-sio7: type 16550A (multiport)
-sio8 at 0x138-0x13f flags 0x1005 on isa
-sio8: type 16550A (multiport)
-sio9 at 0x140-0x147 flags 0x1005 on isa
-sio9: type 16550A (multiport)
-sio10 at 0x148-0x14f flags 0x1005 on isa
-sio10: type 16550A (multiport)
-sio11 at 0x150-0x157 flags 0x1005 on isa
-sio11: type 16550A (multiport)
-sio12 at 0x158-0x15f flags 0x1005 on isa
-sio12: type 16550A (multiport)
-sio13 at 0x160-0x167 flags 0x1005 on isa
-sio13: type 16550A (multiport)
-sio14 at 0x168-0x16f flags 0x1005 on isa
-sio14: type 16550A (multiport)
-sio15 at 0x170-0x177 flags 0x1005 on isa
-sio15: type 16550A (multiport)
-sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa
-sio16: type 16550A (multiport master)</screen>
-
- <para>If the messages go by too fast to see,
-
- <screen>&prompt.root; <userinput>dmesg | more</userinput></screen>
- will show you the boot messages.</para>
- </step>
-
- <step>
- <para>Next, appropriate entries in <filename>/dev</filename> for
- the devices must be made using the
- <filename>/dev/MAKEDEV</filename> script. After becoming
- root:</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV tty1</userinput>
-&prompt.root; <userinput>./MAKEDEV cua1</userinput>
-<emphasis>(everything in between)</emphasis>
-&prompt.root; <userinput>./MAKEDEV ttyg</userinput>
-&prompt.root; <userinput>./MAKEDEV cuag</userinput></screen>
-
- <para>If you do not want or need callout devices for some
- reason, you can dispense with making the
- <filename>cua*</filename> devices.</para>
- </step>
-
- <step>
- <para>If you want a quick and sloppy way to make sure the
- devices are working, you can simply plug a modem into each
- port and (as root)
-
- <screen>&prompt.root; <userinput>echo at &gt; ttyd*</userinput></screen>
- for each device you have made. You
- <emphasis>should</emphasis> see the RX lights flash for each
- working port.</para>
- </step>
- </procedure>
- </sect4>
--->
-
- </sect3>
- <sect3 id="cy">
- <title>*** Configurer le pilote de p&eacute;riph&eacute;rique
- <devicename>cy</devicename></title>
- &sgml.todo;
-
-<!--
- <para><emphasis>Contributed by &a.alex;. 6 June
- 1996.</emphasis></para>
-
- <para>The Cyclades multiport cards are based on the
- <devicename>cy</devicename> driver instead of the usual
- <devicename>sio</devicename> driver used by other multiport cards.
- Configuration is a simple matter of:</para>
-
- <procedure>
- <step>
- <para>Add the <devicename>cy</devicename> device to your <link
- linkend="kernelconfig-config">kernel configuration</link>
- (note that your irq and iomem settings may differ).</para>
-
- <programlisting>
-device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr</programlisting>
- </step>
-
- <step>
- <para><link linkend="kernelconfig-building">Rebuild and
- install</link> the new kernel.</para>
- </step>
-
- <step>
- <para>Make the <link linkend="kernelconfig-nodes">device
- nodes</link> by typing (the following example assumes an
- 8-port board):</para>
-
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done</userinput></screen>
- </step>
-
- <step>
- <para>If appropriate, add <link linkend="dialup">dialup</link>
- entries to <link linkend="dialup-ttys">/etc/ttys</link> by
- duplicating serial device (<literal>ttyd</literal>) entries and
- using <literal>ttyc</literal> in place of
- <literal>ttyd</literal>. For example:</para>
-
- <programlisting>
-ttyc0 "/usr/libexec/getty std.38400" unknown on insecure
-ttyc1 "/usr/libexec/getty std.38400" unknown on insecure
-ttyc2 "/usr/libexec/getty std.38400" unknown on insecure
-&hellip;
-ttyc7 "/usr/libexec/getty std.38400" unknown on insecure</programlisting>
- </step>
-
- <step>
- <para>Reboot with the new kernel.</para>
- </step>
- </procedure>
-
--->
- </sect3>
- </sect2>
-
- <sect2>
- <title>* Ports parall&egrave;les</title>
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Modems</title>
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Cartes r&eacute;seau</title>
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Claviers</title>
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Souris</title>
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Autres</title>
- <para></para>
- </sect2>
- </sect1>
-
- <sect1 id="hw-storage">
- <title>** M&eacute;moires de masse</title>
- &trans.a.haby;
-
- <sect2 id="esdi">
- <title>Utiliser des disques durs ESDI</title>
-
- <para><emphasis>Copyright &copy; 1995, &a.wilko;. 24 Septembre
- 1995.</emphasis></para>
-
- <para>ESDI est l'abr&eacute;viation de <foreignphrase>Enhanced Small
- Device Interface</foreignphrase>&nbsp;-&nbsp;Interface
- Am&eacute;lior&eacute;e pour les P&eacute;riph&eacute;riques
- L&eacute;gers. Elle se base plus ou moins sur la bonne vieille interface
- ST506/412, initialement con&ccedil;ue par Seagate Technology, le
- fabricant du premier disque Winchester 5.25" bon march&eacute;.</para>
-
- <para>L'abr&eacute;viation pr&eacute;cise &agrave; juste titre
- &rdquo;&eacute;tendue&ldquo;. Pour commencer, l'interface est plus
- rapide, 10 ou 15 Mbits/seconde au lieu des 5 Mbits/seconde des disques
- &agrave; interface ST412s. Il y a de plus de nouvelles commandes de plus
- haut niveau, qui font que l'interface ESDI est en quelque sorte plus
- &ldquo;intelligente&rdquo; que les pilotes de
- p&eacute;riph&eacute;riques du syst&egrave;me d'exploitation. Elle n'est
- cependant pas comparable aux interfaces SCSI. L'ESDI est un standard
- ANSI.</para>
-
- <para>La capacit&eacute; de disques est accrue parce qu'il y a plus de
- secteurs par piste. Il y a g&eacute;n&eacute;ralement 35 secteurs par
- pistes, mais j'ai vu des disques de grande capacit&eacute; avec 54
- secteurs par piste.</para>
-
- <para>Bien que l'IDE et le SCSI ait rendu l'ESDI largement
- obsol&egrave;te, la possibilit&eacute; de se procurer gratuitement ou
- &agrave; peu de frais des disques d'occasion les rend
- int&eacute;ressants pour les syst&egrave;mes &agrave; budget
- r&eacute;duit (ou nul).</para>
-
- <sect3>
- <title>Concepts ESDI</title>
-
- <sect4>
- <title>Connexions</title>
-
- <para>L'interface ESDI utilise deux c&acirc;bles par disque. Le
- premier est une nappe &agrave; 54 broches qui v&eacute;hicule les
- signaux de commandes et d'&eacute;tat entre le contr&ocirc;leur et
- le disque. Les disques sont cha&icirc;n&eacute;s en s&eacute;rie sur
- ce c&acirc;ble. C'est donc un bus auquel tous les disques sont
- reli&eacute;s.</para>
-
- <para>Le second c&acirc;ble est une nappe &agrave; 20 broches qui
- v&eacute;hicule les donn&eacute;es de et vers le disque. Ce
- c&acirc;blage est en &eacute;toile, chaque disque est donc
- directement reli&eacute; au contr&ocirc;leur.</para>
-
- <para>Autant que je sache, on ne peut mettre que deux disques par
- contr&ocirc;leur ESDI sur un PC. Cela pour des raisons de
- compatibilit&eacute; (?) avec le standard WD1003 qui n'utilise
- qu'un seul bit pour l'adresse des
- p&eacute;riph&eacute;riques.</para>
- </sect4>
-
- <sect4>
- <title>Adresses des p&eacute;riph&eacute;riques</title>
-
- <para>Sur chaque c&acirc;ble de commande, il peut y avoir au plus 7
- p&eacute;riph&eacute;riques et 1 contr&ocirc;leur. Pour que le
- contr&ocirc;leur puisse identifier l'adresse de chaque disque, il y
- a sur chaque p&eacute;riph&eacute;rique ESDI des cavaliers ou des
- interrupteurs pour d&eacute;finir l'adresse du
- p&eacute;riph&eacute;rique.</para>
-
- <para>Sur les contr&ocirc;leurs de PC, le premier disque a l'adresse
- 0, et le second l'adresse 1. <emphasis>V&eacute;rifiez
- toujours</emphasis> que l'adresse de chaque disque est
- diff&eacute;rente&nbsp;! Sur les PC, o&ugrave; il y a au plus deux
- disques par contr&ocirc;leur, le premier disque est le disque 0 et
- le second le disque 1.</para>
- </sect4>
-
- <sect4>
- <title>Terminaison</title>
-
- <para>Le c&acirc;ble s&eacute;rie de commande (rapellez-vous, celui
- &agrave; 34 broches) doit &ecirc;tre termin&eacute; sur le dernier
- disque de la cha&icirc;ne. Il y a donc sur les disques ESDI une
- r&eacute;sistance de terminaison qui peut &ecirc;tre enlev&eacute;e
- ou d&eacute;sactiv&eacute;e par un cavalier si elle ne doit pas
- servir.</para>
-
- <para>Il n'y a donc qu'un <emphasis>seul</emphasis> disque, celui
- en fin du c&acirc;ble de commande, dont le terminateur doit
- &ecirc;tre install&eacute; ou activ&eacute;. Le contr&ocirc;leur
- termine automatiquement l'autre extr&eacute;mit&eacute; du
- c&acirc;ble. Notez bien, s'il vous pla&icirc;t, que cela implique
- que le contr&ocirc;leur soit &agrave; une extr&eacute;mit&eacute; du
- c&acirc;ble, et <emphasis>non</emphasis> au milieu.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Utiliser les disques ESDI avec FreeBSD</title>
-
- <para>Pourquoi est-il si difficile d'arriver &agrave; utiliser des
- disques ESDI&nbsp;?</para>
-
- <para>On dit que ceux qui ont essay&eacute; d'utiliser des disques ESDI
- avec FreeBSD ont d&eacute;velopp&eacute; un sentiment de profonde
- frustration. Divers facteurs oeuvrent contre vous et produisent des
- r&eacute;sultats difficiles &agrave; comprendre si vous n'y avez
- jamais &eacute;t&eacute; confront&eacute;.</para>
-
- <para>D'o&ugrave; la l&eacute;gende populaire qui veut que l'ESDI et
- FreeBSD soient d&eacute;finitivement incompatibles. Ce qui suit tente
- de recenser les difficult&eacute;s et leurs solutions.</para>
-
- <sect4>
- <title>Les diff&eacute;rences de vitesse de l'ESDI</title>
-
- <para>Comme on y a d&eacute;j&agrave; fait allusion, il y a deux
- versions &agrave; vitesse diff&eacute;rente de l'ESDI. Les disques
- et les contr&ocirc;leurs plus anciens transf&egrave;rent les
- donn&eacute;es &agrave; 10 Mbits/seconde. Les plus r&eacute;cents le
- font &agrave; 15 Mbits/seconde.</para>
-
- <para>Il est facile d'imaginer qu'utiliser des disques &agrave;
- 15 Mbits/seconde pose des probl&egrave;mes avec des
- contr&ocirc;leurs &agrave; 10 Mbits/seconde. Consultez toujours,
- comme d'habitude, la documentation de votre contr&ocirc;leur
- <emphasis>et</emphasis> celle de votre disque pour v&eacute;rifier
- qu'ils sont compatibles.</para>
- </sect4>
-
- <sect4>
- <title>Restez en piste</title>
-
- <para>Les disques ESDI standards ont de 34 &agrave; 36 secteurs par
- piste. La plupart des (anciens) contr&ocirc;leurs n'acceptent pas
- plus de secteurs que cela. Les disques plus r&eacute;cents, de plus
- grande capacit&eacute;, ont un plus grand nombre de secteurs par
- piste. Je poss&egrave;de par exemple un disque de 670 Mo qui a 54
- secteurs par piste.</para>
-
- <para>Dans mon cas, le contr&ocirc;leur ne peut pas g&eacute;rer
- autant de secteurs. Cela fonctionne en utilisant que 35 secteurs par
- piste. D'o&ugrave; un perte important d'espace disque.</para>
-
- <para>Consultez encore une fois les documentations de votre
- mat&eacute;riel pour plus d'informations. Ne pas respecter les
- sp&eacute;cifications, comme dans mon cas, marchera ou ne marchera
- pas. Essayez ou procurez-vous un contr&ocirc;leur qui r&egrave;gle
- le probl&egrave;me.</para>
- </sect4>
-
- <sect4>
- <title>Secteurs mat&eacute;riels ou logiciels</title>
-
- <para>La plupart des disques ESDI permettent de choisir avec un
- cavalier entre des secteurs mat&eacute;riels ou logiciels. Si les
- secteurs sont mat&eacute;riels, le disque &eacute;mettera une
- impulsion de d&eacute;but de secteur &agrave; chaque nouveau
- secteur. Le contr&ocirc;leur utilisera cette impulsion pour savoir
- quand commencer &agrave; lire ou &agrave; &eacute;crire.</para>
-
- <para>Il est possible de choisir la taille des secteurs
- mat&eacute;riels (habituellement 256, 512 ou 1024 octets par
- secteur format&eacute;). FreeBSD utilise des secteurs de 512
- octets. Le nombre de secteurs par piste varie aussi, bien qu'on
- utilise toujours le m&ecirc;me nombre d'octets par secteur
- format&eacute;. Le nombre d'octets <emphasis>non
- format&eacute;s</emphasis> par secteur varie, selon que votre
- contr&ocirc;leur a besoin de plus ou moins d'octets
- suppl&eacute;mentaires pour fonctionner correctement. Avec plus de
- secteurs par piste, vous aurez bien s&ucirc;r plus d'espace
- disponible, mais vous pouvez avoir des probl&egrave;mes si votre
- contr&ocirc;leur a besoin de plus d'octets que le disque ne peut
- lui en laisser &agrave; disposition.</para>
-
- <para>Avec des secteurs logiciels, le contr&ocirc;leur
- d&eacute;termine lui-m&ecirc;me quand commencer et cesser de lire ou
- &eacute;crire. Pour les disques ESDI, les secteurs sont
- mat&eacute;riels par d&eacute;faut (au moins pour tous ceux que je
- connais). Je n'ai jamais eu besoin d'essayer d'utiliser des secteurs
- logiciels.</para>
-
- <para>Exp&eacute;rimentez avec les secteurs avant d'installer FreeBSD,
- parce que vous devrez refaire un formatage de bas niveau &agrave;
- chaque fois.</para>
- </sect4>
-
- <sect4>
- <title>Formatage de bas niveau</title>
-
- <para>Il faut faire un formatage de bas niveau des disques ESDI avant
- de pouvoir les utiliser. Il faut les reformater &agrave; chaque
- fois que vous modifier la position des cavaliers qui
- d&eacute;terminent le nombre de secteurs par piste ou l'orientation
- (horizontale, verticale) du disque. R&eacute;fl&eacute;chissez donc
- d'abord, puis formatez. Ne sous-estimez pas le temps
- n&eacute;cessaire&nbsp;; pour de gros disques, cela peut prendre des
- heures.</para>
-
- <para>Evitez les utilitaires de formatage de bas niveau qui marquent
- une piste inutilisable d&egrave;s qu'ils trouvent un secteur
- endommag&eacute;. Non seulement cela gaspille de l'espace disque,
- mais cela vous posera peut-&ecirc;tre aussi des probl&egrave;mes
- avec <literal>bad144</literal> (voyez plus bas la section sur le
- sujet).</para>
- </sect4>
-
- <sect4>
- <title>Correspondances</title>
-
- <para>Les correspondances, bien que ce ne soit pas un probl&egrave;me
- exclusivement r&eacute;serv&eacute; &agrave; l'ESDI, peuvent vous
- poser de vraies difficult&eacute;s. Il y a diff&eacute;rentes sortes
- de correspondances. Elles ont en commun d'essayer de contourner les
- limites impos&eacute;es &agrave; la g&eacute;om&eacute;trie des
- disques par l'architecture d'origine de l'IBM PC/AT (merci
- IBM&nbsp;!).</para>
-
- <para>Il y a tout d'abord la limite bien connue du 1024&egrave;me
- cylindre pour le d&eacute;marrage. Pour qu'un syst&egrave;me (quel
- qu'il soit) d&eacute;marre, le code de d&eacute;marrage doit se
- trouver quelque part sur les 1024 premiers cylindres. Il n'y a que
- 10 bits disponibles pour coder le num&eacute;ro de cylindre. Le
- nombre de secteurs est limit&eacute; &agrave; 64 (0-63). Quand vous
- y ajoutez la limite de 16 t&ecirc;tes (aussi li&eacute;e &agrave;
- l'architecture), cela vous donne des disques de taille relativement
- faible.</para>
-
- <para>Pour contourner ce probl&egrave;me, les fabricants de
- contr&ocirc;leurs ESDI pour PC ont ajout&eacute; une extension au
- BIOS en PROM. Cette extension g&egrave;re les entr&eacute;es/sorties
- disque au d&eacute;marrage. (et pour certains syst&egrave;mes
- d'exploitation, toutes les entr&eacute;es/sorties) en utilisant des
- correspondances. Par exemple, un gros disque pourra &ecirc;tre
- d&eacute;crit au syst&egrave;me comme ayant 32 t&ecirc;tes et 64
- secteurs par piste. De la sorte, le nombre de cylindres sera
- inf&eacute;rieur &agrave; 1024, ce qui pourra &ecirc;tre
- exploit&eacute; sans probl&egrave;me. Il faut noter que FreeBSD
- n'utilise le BIOS qu'apr&egrave;s que le noyau ait pris le
- contr&ocirc;le. Nous en dirons plus &agrave; ce sujet plus
- loin.</para>
-
- <para>Il faut aussi &eacute;tablir des correspondances avec la plupart
- des BIOS anciens qui ne peuvent g&eacute;rer que des disques avec
- 17 secteurs par piste (le vieux standard ST412). Les BIOS plus
- r&eacute;cents premettent de d&eacute;finir le type de disque (c'est
- habituellement le type de disque 47).</para>
-
- <note>
- <para>Quoique vous fassiez des correspondances apr&egrave;s avoir lu
- ce document, n'oubliez pas que si vous avez plusieurs
- syst&egrave;mes d'exploitation sur le m&ecirc;me disque, ils
- doivent tous utiliser les m&ecirc;mes correspondances.</para>
- </note>
-
- <para>Pendant que nous en sommes aux correspondances, j'ai vu un
- mod&egrave;le de contr&ocirc;leur (mais il y en a probablement
- d'autres) qui permet de diviser un disque en plusieurs partitions
- &agrave; l'aide d'une option du BIOS. J'avais choisi 1 disque = 1
- partition, parce que ce contr&ocirc;leur &eacute;crivait cette
- information sur le disque. A la mise sous tension, il la relit et
- transmet au syst&egrave;me les informations bas&eacute;es sur ce
- qu'il y a sur le disque.</para>
- </sect4>
-
- <sect4>
- <title>Secteurs en r&eacute;serve</title>
-
- <para>La plupart des contr&ocirc;leurs ESDI offrent la
- possibilit&eacute; de r&eacute;affecter les secteurs
- d&eacute;fectueux. Pendant ou apr&egrave;s le formatage de bas
- niveau du disque, les secteurs d&eacute;fectueux sont marqu&eacute;s
- comme tels, et des secteurs de remplacement prennent (logiquement
- bien s&ucirc;r) leur place.</para>
-
- <para>Dans la plupart des cas, c'est fait en utilisant N-1 secteurs de
- chaque piste pour les donn&eacute;es et le secteur N lui-m&ecirc;me
- comme secteur de secours. N est le nombre de secteurs physiquement
- disponibles sur la piste. L'id&eacute;e est que le syst&egrave;me
- d'exploitation voie un disque &rdquo;parfait&ldquo; sans secteur
- d&eacute;fectueux. Ce n'est pas exploitable dans le cas de
- FreeBSD.</para>
-
- <para>Le probl&egrave;me est que la correspondance entre les
- <emphasis>mauvaix</emphasis> et les <emphasis>bons</emphasis>
- secteurs est effectu&eacute;e par le BIOS du contr&ocirc;leur ESDI.
- FreeBSD, qui est un vrai syst&egrave;me d'exploitation 32 bits,
- n'utilise pas le BIOS avant d'avoir d&eacute;marr&eacute;. Il
- dispose &agrave; la place de pilotes de p&eacute;riph&eacute;rique
- qui dialoguent directement avec le mat&eacute;riel.</para>
-
- <para>Donc, n'utilisez pas les secteurs de r&eacute;serve,
- la r&eacute;affectation des secteurs d&eacute;fectueux, quel que
- soit le nom que lui donne le fabricant de votre contr&ocirc;leur, si
- vous voulez vous servir du disque avec FreeBSD.</para>
- </sect4>
-
- <sect4>
- <title>Gestion des blocs d&eacute;fectueux</title>
-
- <para>La section pr&eacute;c&eacute;dente nous a laiss&eacute; sur un
- probl&egrave;me. La gestion des blocs d&eacute;fectueux par le
- contr&ocirc;leur n'est pas exploitable, et FreeBSD suppose
- malgr&eacute; tout que les supports sont sans d&eacute;faut. Pour
- r&eacute;soudre ce probl&egrave;me, FreeBSD utilise l'outil
- <command>bad144</command>. <command>bad144</command> (dont le nom
- vient du standard de gestion des blocs d&eacute;fectueux de Digital
- Equipment) examine une
- tranche&nbsp;-&nbsp;<foreignphrase>slice</foreignphrase>&nbsp;-&nbsp;FreeBSD
- pour d&eacute;tecter les blocs d&eacute;fectueux. Quand il les a
- trouv&eacute;s, il remplit une table avec les num&eacute;ros de ces
- blocs &agrave; la fin de la tranche.</para>
-
- <para>Quand le disque est en service, les num&eacute;ros des blocs
- acc&eacute;d&eacute;s sont compar&eacute;s &agrave; ceux
- stock&eacute;s dans la table lue sur le disque. Quand un bloc
- demand&eacute; est dans la liste de <command>bad144</command>, on
- utilise un bloc de remplacement (aussi en fin de tranche). De cette
- fa&ccedil;on, c'est un support &rdquo;parfait&ldquo; qui est vu par
- les syst&egrave;mes de fichiers de FreeBSD.</para>
-
- <para>L'utilisation de <command>bad144</command> pr&eacute;sente un
- certain nombre d'inconv&eacute;nients. En premier lieu, la tranche
- ne peut comporter plus de 126 secteurs d&eacute;fectueux. Si votre
- disque pr&eacute;sente un gand nombre de secteurs d&eacute;fectueux,
- vous devrez peut-&ecirc;tre le diviser en plusieurs tranches dont
- chacune aura moins de 126 secteurs d&eacute;fectueux. Evitez les
- programmes de formatage de bas niveau qui marquent d&eacute;fectueux
- tous les secteurs d'une piste, d&egrave;s qu'il y a un
- probl&egrave;me avec la piste. Vous comprennez bien que la limite
- de 126 secteurs est rapidement atteinte avec de tels
- programmes.</para>
-
- <para>En second lieu, si la tranche contient le syst&egrave;me de
- fichiers racine, il faut qu'elle soit &agrave; l'int&eacute;rieur
- des 1024 premiers cylindres. La liste <command>bad144</command> est
- lue au d&eacute;marrage, en utilisant le BIOS, et cela ne peut
- se faire que si la liste est avant le
- 1025&egrave;me cylindre.</para>
-
- <note>
- <para>Ce n'est pas seulement le <emphasis>syst&egrave;me</emphasis>
- de fichiers racine qui doit se trouver dans les 1024 premiers
- cylindres, mais toute la <emphasis>tranche</emphasis> qui le
- contient.</para>
- </note>
- </sect4>
-
- <sect4>
- <title>Configuration du noyau</title>
-
- <para>Les disques ESDI sont g&eacute;r&eacute;s par le m&ecirc;me
- pilote <literal>wd</literal> que les disques IDE et ST412 MFM. Le
- pilote <literal>wd</literal> devrait fonctionner avec toutes les
- interfaces compatibles WD1003.</para>
-
- <para>La plupart des mat&eacute;riels ont des cavaliers pour
- d&eacute;finir les plages d'adresses d'entr&eacute;es/sorties et les
- lignes IRQ. Cela vous permet de mettre deux contr&ocirc;leurs de
- type <literal>wd</literal> sur un m&ecirc;me syst&egrave;me.</para>
-
- <para>si votre mat&eacute;riel permet des red&eacute;finition
- non-standard, vous pouvez les utiliser avec FreeBSD, d&egrave;s lors
- que vous donnez les informations correctes dans le fichier de
- configuration du noyau. Voici une extrait de fichier de
- configuration du noyau ( au fait, ils sont dans
- <filename>/sys/i386/conf</filename>)&nbsp;:</para>
-
- <programlisting>
-# Premier contr&ocirc;leur compatible WD
-controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
-disk wd0 at wdc0 drive 0
-disk wd1 at wdc0 drive 1
-# Second contr&ocirc;leur compatible WD
-controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
-disk wd2 at wdc1 drive 0
-disk wd3 at wdc1 drive 1
- </programlisting>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Sp&eacute;cificit&eacute;s de certains mat&eacute;riels ESDI</title>
-
- <sect4>
- <title>Contr&ocirc;leurs Adaptec 2320</title>
-
- <para>J'ai r&eacute;ussi &agrave; installer FreeBSD sur un disque ESDI
- avec un contr&ocirc;leur ACB-2320. Il n'y avait pas d'autre
- syst&egrave;me d'exploitation sur le disque.</para>
-
- <para>Pour cela, j'ai effectu&eacute; un formatage de bas niveau du
- disque avec <command>NEFMT.EXE</command>
- (t&eacute;l&eacute;chargeable par <command>ftp</command> depuis
- <hostid role="fqdn">www.adaptec.com</hostid>) et r&eacute;pondu
- <literal>NO</literal> &agrave; la question qui me demandait si le
- disque devait &ecirc;tre format&eacute; en laissant un secteur de
- secours par piste. Le BIOS de l'ACD-2320 &eacute;tait
- d&eacute;sactiv&eacute; et j'ai utilis&eacute; l'option de
- configuration
- libre&nbsp;-&nbsp;<literal>free configurable</literal>&nbsp;-&nbsp;du
- BIOS du syst&egrave;me pour permettre au BIOS de d&eacute;marrer
- avec.</para>
-
- <para>Avant de me servir de <command>NEFMT.EXE</command>, j'avais
- essay&eacute; de formater le disque avec l'utilitaire inclus dans
- le BIOS de l'ACB-2320. Cela s'est av&eacute;r&eacute; inutilisable,
- parce qu'il ne m'a pas propos&eacute; de d&eacute;sactiver la
- r&eacute;servation du secteur de secours. Avec ces derniers,
- l'installation de FreeBSD &eacute;choue &agrave; l'ex&eacute;cution
- de <command>bad144</command>.</para>
-
- <para>V&eacute;rifiez avec soin de quelle variante
- ACB-232<replaceable>xy</replaceable> vous disposez. Le
- <replaceable>x</replaceable> vaut <literal>0</literal> ou
- <literal>2</literal>, selon que le contr&ocirc;leur ne dispose pas
- ou inclut un contr&ocirc;leur de lecteur de disquettes.</para>
-
- <para>Le <literal>y</literal> est plus int&eacute;ressant. C'est un
- blanc, un <literal>A-8</literal> ou un <literal>D</literal>. Le
- blanc indique un contr&ocirc;leur &agrave; 10 Mo/seconde. Le
- <literal>A-8</literal> indique un contr&ocirc;leur &agrave; 15
- Mo/seconde capable de g&eacute;rer 52 secteurs par piste. Le
- <literal>D</literal> est un contr&ocirc;leur &agrave; 15 Mo/seconde
- qui peut aussi g&eacute;rer des disques avec plus de 36 secteurs
- par piste (52 aussii&nbsp;?).</para>
-
- <para>Toutes ces variantes peuvent g&eacute;rer l'entrelacement 1:1.
- Employez-le, FreeBSD est assez rapide pour s'en accommoder.</para>
- </sect4>
-
- <sect4>
- <title>Contr&ocirc;leurs Western Digital WD1007</title>
-
- <para>J'ai r&eacute;ussi &agrave; installer FreeBSD sur un disque ESDI
- avec un contr&ocirc;leur WD1007. Pour &ecirc;tre pr&eacute;cis,
- c'&eacute;tait un contr&ocirc;leur WD1007-WA2. Il y en a d'autres
- variantes.</para>
-
- <para>Pour qu'il fonctionne, j'ai d&eacute;sactiv&eacute; la
- correspondance entre secteurs et le BIOS du WD1007. Ce qui signifie que je n'ai pas pu me servir de l'utilitaire de formatage de bas
- niveau de ce BIOS. J'ai r&eacute;cup&eacute;r&eacute;
- <command>WDFMT.EXE</command> sur
- <hostid role="fqdn">www.wdc.com</hostid>. Il m'a permis de formater
- le disque sans probl&egrave;me.</para>
- </sect4>
-
- <sect4>
- <title>Contr&ocirc;leurs Ultrastor U14F</title>
-
- <para>Selon de nombreux retours sur le r&eacute;seau, les cartes
- Ultrastor ESDI fonctionnent avec FreeBSD. Je n'ai pas plus
- d'informations sur leur configuration.</para>
- </sect4>
- </sect3>
-
- <sect3 id="esdi-further-reading">
- <title>Lectures compl&eacute;mentaires</title>
-
- <para>Si vous avez l'intention d'utiliser s&eacute;rieusement l'ESDI,
- vous devriez avoir la norme officielle &agrave; port&eacute;e de
- main&nbsp;:</para>
-
- <para>Le document le plus r&eacute;cent du comit&eacute; ANSI X3T10
- est&nbsp;: &rdquo;Enhanced Small Device Interface (ESDI)
- [X3.170-1990/X3.170a-1991] [X3T10/792D Rev 11]&ldquo;.</para>
-
- <para>Le forum Usenet
- <ulink URL="news:comp.periphs">comp.periphs</ulink> est un bon endroit
- ou avoir plus d'informations.</para>
-
- <para>Le <foreignphrase>World Wide Web</foreignphrase> (WWW) est aussi
- une excellente source d'informations&nbsp;: Pour les contr&ocirc;leurs
- Adaptec, consultez
- <ulink URL="http://www.adaptec.com/">http://www.adaptec.com/</ulink>.
- Pour les contr&ocirc;leurs Western Digital, voyez
- <ulink URL="http://www.wdc.com/">http://www.wdc.com/</ulink>.</para>
-
- </sect3>
-
- <sect3>
- <title>Remerciements &agrave; ...</title>
-
- <para>Andrew Gordon pour m'avoir envoy&eacute; un contr&ocirc;leur
- Adaptec 2320 et un disque ESDI pour faire des tests.</para>
- </sect3>
- </sect2>
-
- <sect2 id="scsi">
- <title>Qu'est-ce que le SCSI&nbsp;?</title>
- &trans.a.brive;
-
- <para><emphasis>Copyright &copy; 1995, &a.wilko;. July 6,
- 1996.</emphasis></para>
-
- <para>SCSI est un acronyme pour Small Computer Systems Interface. C'est
- un standard ANSI qui est devenu l'un des premiers bus d'E/S de
- l'industrie informatique. Les bases du standard SCSI proviennent
- de Shugart Associates (les m&ecirc;mes personnes qui ont donn&eacute; au monde les
- premiers mini-disques floppy) quand ils ont introduit le bus SASI
- (Shugart Associates Standard Interface).</para>
-
- <para>Un effort industriel a d&eacute;marr&eacute; quelque temps plus tard pour
- arriver &agrave; un standard plus strict, permettant &agrave; des p&eacute;riph&eacute;riques de
- diff&eacute;rents vendeurs de travailler ensemble. Cet effort fut reconnu
- par l'ANSI avec le standard SCSI-1. Ce standard (approx. 1985) devient
- rapidement obsol&egrave;te. Le standard courant est SCSI-2 (cf <link
- linkend="scsi-further-reading">Lecture compl&eacute;mentaire</link>),
- avec SCSI-3 en cours de conception.</para>
-
- <para>En plus d'un standard pour l'interconnexion physique, SCSI d&eacute;finit
- un standard logique (jeu de commandes) auxquels les disques doivent
- adh&eacute;rer. Ce standard "commun" est appell&eacute; le Common Command Set (CCS)
- et a &eacute;t&eacute; d&eacute;velopp&eacute; plus ou moins en parall&egrave;le avec le SCSI-1 ANSI.
- SCSI-2 int&egrave;gre le CCS (r&eacute;vis&eacute;) dans son standard. Les commandes
- d&eacute;pendent du type de p&eacute;riph&eacute;rique&nbsp;; il ne serait pas logique bien
- s&ucirc;r de d&eacute;finir une commande "Ecriture" pour un scanner.</para>
-
- <para>Le bus SCSI est un bus parall&egrave;le, qui supporte plusieurs
- variantes. La plus ancienne et plus utilis&eacute;e est un bus de 8 bits
- de large, avec des signaux en collecteur ouvert (single-ended),
- transport&eacute;s sur 50 fils. (Si vous ne savez pas ce que veut dire
- "collecteur ouvert", ne vous en faites pas; c'est justement le sujet
- de ce document). Les architectures modernes utilisent aussi les bus
- de 16 bits avec des signaux diff&eacute;rentiels. Cela permet d'obtenir
- des taux de transferts de 20Mo/s, sur des c&acirc;bles atteignant 25 m&egrave;tres.
- SCSI-2 permet une largeur maximum du bus de 32 bits en utilisant un
- c&acirc;ble suppl&eacute;mentaire. Rapidement, l'Ultra SCSI (appel&eacute; aussi Fast-20)
- et l'Ultra2 (appel&eacute; aussi Fast-40) arrivent. Fast-20 correspond &agrave;
- 20 millions de transferts par seconde (20Mo/s sur un bus de 8 bits)
- et Fast-40 correspond &agrave; 40 millions de transferts par seconde
- (40Mo/s sur un bus de 8 bits). La majorit&eacute; des disques vendus
- aujourd'hui sont des Ultra SCSI (8 ou 16 bits) en collecteur
- ouvert.</para>
-
- <para>Bien s&ucirc;r, le bus SCSI n'a pas que des fils de donn&eacute;es, mais
- aussi un certain nombre de signaux de contr&ocirc;le. Un protocole tr&egrave;s
- &eacute;labor&eacute; fait partie du standard pour permettre &agrave; plusieurs
- p&eacute;riph&eacute;riques de se partager le bus de mani&egrave;re efficace.
- En SCSI-2, les donn&eacute;es sont toujours v&eacute;rifi&eacute;es avec un fil s&eacute;par&eacute;
- pour la parit&eacute;. Dans l'architecture pr&eacute;-SCSI-2, la parit&eacute; &eacute;tait
- optionnelle.</para>
-
- <para>En SCSI-3, des types de bus encore plus rapides sont introduits,
- dont les bus SCSI s&eacute;rie qui r&eacute;duisent l'overhead du cabl&acirc;ge
- (consommation? d&eacute;lai de propagation?)
- et permettent une longueur de bus maximale plus importante.
- Vous pourriez voir des noms comme SSA et FiberChannel dans ce contexte.
- Aucun de ces bus s&eacute;rie n'est aujourd'hui d'usage courant (et
- sp&eacute;cialement pas dans l'environnement typique de FreeBSD).
- Pour cette raison, les types de bus s&eacute;rie ne seront plus abord&eacute;s.</para>
-
- <para>Comme vous auriez pu le deviner de la description pr&eacute;c&eacute;dente, les
- p&eacute;riph&eacute;riques SCSI sont intelligents. Ils doivent l'&ecirc;tre pour adh&eacute;rer
- au standard SCSI (qui est &eacute;pais de plus de 5 cm). Ainsi, pour un
- disque dur par exemple, vous ne sp&eacute;cifiez pas un t&ecirc;te/cylindre/secteur
- pour adresser un bloc particulier, mais simplement le num&eacute;ro du
- bloc que vous voulez.
- Des sch&eacute;mas &eacute;labor&eacute;s de cache, des remplacements automatiques de blocs
- d&eacute;fecteux, etc, sont tous rendus possibles par cette approche de
- &ldquo;p&eacute;riph&eacute;rique intelligent&rdquo;.</para>
-
- <para>Sur un bus SCSI, chaque paire possible d'abonn&eacute;s peut communiquer.
- Que leur fonction le leur permette est une autre chose, mais le
- standard ne le restreint pas. Pour &eacute;viter le conflit de signaux,
- les deux abonn&eacute;s doivent passer par une phase d'arbitrage de bus
- avant de l'utiliser.</para>
-
- <para>La philosophie du SCSI est d'avoir un standard qui permette
- &agrave; des p&eacute;riph&eacute;riques ancien-standard de travailler avec des
- nouveaux-standard. Ainsi, un vieux p&eacute;riph&eacute;rique SCSI-1 devrait
- normalement fonctionner sur un bus SCSI-2. Je dis normalement, car il
- n'est pas absolument s&ucirc;r que l'impl&eacute;mentation d'un ancien p&eacute;riph&eacute;rique
- suive le (vieux) standard de mani&egrave;re assez proche pour &ecirc;tre acceptable
- sur un nouveau bus. Les p&eacute;riph&eacute;riques modernes se comportent bien
- g&eacute;n&eacute;ralement, car la standardisation est devenue plus stricte et
- est mieux respect&eacute;e par les fabriquants de p&eacute;riph&eacute;riques.</para>
-
- <para>D'une mani&egrave;re g&eacute;n&eacute;rale, les chances de faire fonctionner
- correctement un ensemble de p&eacute;riph&eacute;riques sur un seul bus, sont
- meilleures quand tous les abonn&eacute;s sont SCSI-2 ou plus r&eacute;cents.
- Cela implique que vous n'avez pas besoin de supprimer tous vos vieux
- mat&eacute;riels quand vous venez d'avoir ce magnifique disque de 2Go&nbsp;:
- je poss&egrave;de un syst&egrave;me sur lequel un disque pr&eacute;-SCSI-1, un
- lecteur de cartouche QIC en SCSI-2, un lecteur de cartouches
- h&eacute;lico&iuml;dal SCSI-1 et 2 disques SCSI-1 fonctionnent assez
- bien ensemble. D'un point de vue des performances, vous
- pourriez toutefois vouloir s&eacute;parer vos plus vieux p&eacute;riph&eacute;riques
- des plus nouveaux (=plus rapides).</para>
-
-
- <sect3>
- <title>Composants SCSI</title>
-
- <para>Comme nous l'avons dit pr&eacute;c&eacute;demment, les p&eacute;riph&eacute;riques SCSI sont
- intelligents. L'id&eacute;e est de mettre les connaissances sur les d&eacute;tails
- intimes du mat&eacute;riel dans le p&eacute;riph&eacute;rique SCSI lui-m&ecirc;me. De cette
- fa&ccedil;on, le syst&egrave;me h&ocirc;te n'a pas besoin de se pr&eacute;occuper de savoir,
- par exemple, combien de t&ecirc;tes poss&egrave;de le disque, ou combien de pistes
- poss&egrave;de tel d&eacute;rouleur de bandes. Si vous &ecirc;tes curieux, le standard
- sp&eacute;cifie des commandes avec lesquelles vous pouvez interroger les
- p&eacute;riph&eacute;riques sur leurs sp&eacute;cificit&eacute;s mat&eacute;rielles. FreeBSD utilise
- cette possibilit&eacute; pendant le d&eacute;marrage pour d&eacute;terminer quels sont
- les p&eacute;riph&eacute;riques connect&eacute;s et s'ils ont besoin d'un traitement
- sp&eacute;cial.</para>
-
- <para>L'avantage d'avoir des p&eacute;riph&eacute;riques intelligents est
- &eacute;vident&nbsp;: le pilote de p&eacute;riph&eacute;rique dans l'h&ocirc;te peut &ecirc;tre
- con&ccedil;u de mani&egrave;re beaucoup plus g&eacute;n&eacute;rique, il n'y a plus besoin de
- modifier (et valider&nbsp;!) les pilotes pour chaque nouveau
- p&eacute;riph&eacute;rique bizarre qui est introduit.</para>
-
- <para>Pour les c&acirc;bles et les connecteurs, il y a une r&egrave;gle d'or&nbsp;:
- prenez de la qualit&eacute;. Avec des vitesses de bus augmentant tout
- le temps, vous vous &eacute;pargnerez beaucoup de peine en utilisant du
- bon mat&eacute;riel.</para>
-
- <para>Aussi, utilisez des connecteurs plaqu&eacute;s or, des c&acirc;bles blind&eacute;s
- et des connecteurs robustes et bien v&eacute;rrouill&eacute;s, etc.
- Deuxi&egrave;me r&egrave;gle d'or&nbsp;: n'utilisez pas des c&acirc;bles plus longs que
- n&eacute;cessaires. J'ai une fois perdu 3 jours &agrave; pourchasser un probl&egrave;me
- sur une machine instable, juste pour d&eacute;couvrir que raccourcir
- le bus SCSI d'un m&egrave;tre r&eacute;solvait le probl&egrave;me. Et la longueur
- originale du bus respectait bien les sp&eacute;cifications SCSI.</para>
-
- </sect3>
-
- <sect3>
- <title>Types de bus SCSI</title>
-
- <para>D'un point de vue &eacute;lectrique, il existe deux types de bus
- incompatibles&nbsp;: collecteur ouvert (<foreignphrase>single-ended
- </foreignphrase>) et diff&eacute;rentiel. Cela signifie qu'il existe deux
- principaux groupes de p&eacute;riph&eacute;riques et contr&ocirc;leurs SCSI qui ne peuvent
- &ecirc;tre m&eacute;lang&eacute;s sur le m&ecirc;me bus. Il est toutefois possible d'utiliser
- un convertisseur mat&eacute;riel sp&eacute;cial pour transformer un bus collecteur
- ouvert en diff&eacute;rentiel (et vice versa). Les diff&eacute;rences entre les
- types de bus sont expliqu&eacute;es dans les sections suivantes.</para>
-
- <para>Dans beaucoup de documentation &agrave; propos du SCSI, il existe une
- sorte de jargon en usage pour abr&eacute;ger les diff&eacute;rents types de bus.
- Une petite liste&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>FWD&nbsp;: Fast Wide Differential (diff&eacute;rentiel large rapide)</para>
- </listitem>
-
- <listitem>
- <para>FND&nbsp;: Fast Narrow Differential (diff&eacute;rentiel &eacute;troit rapide)</para>
- </listitem>
-
- <listitem>
- <para>SE&nbsp;: Single Ended (collecteur ouvert)</para>
- </listitem>
-
- <listitem>
- <para>FN&nbsp;: Fast Narrow (rapide &eacute;troit)</para>
- </listitem>
-
- <listitem>
- <para>etc.</para>
- </listitem>
- </itemizedlist>
-
-
- <para>Avec un minimun d'imagination, on peut bien imaginer ce que
- cela veut dire.</para>
-
- <para>Large est un peu ambigu, il peut indiquer des bus de 16 ou
- 32 bits. A ma connaissance, la variante en 32 bits n'est pas (encore)
- utilis&eacute;e, donc normalement large veut dire 16 bits.</para>
-
- <para>Rapide signifie que la cadence sur le bus est un peu diff&eacute;rente,
- pour qu'un bus &eacute;troit (8 bits) supporte 10 Mo/s au lieu de 5 Mo/s
- pour un SCSI 'lent'. Comme indiqu&eacute; pr&eacute;c&eacute;demment, des vitesses de
- bus de 20 et 40 millions de transferts/seconde &eacute;mergent aussi
- (Fast-20 = Ultra SCSI et Fast40 = Ultra2 SCSI).</para>
-
- <note>
- <para>Les lignes de donn&eacute;es &gt; 8 ne sont utilis&eacute;es que pour les
- transferts de donn&eacute;es et l'adressage des p&eacute;riph&eacute;riques. Les
- transferts des commandes, messages d'&eacute;tat, etc. n'ont lieu que sur
- les 8 bits de poids faibles. Le standard permet aux p&eacute;riph&eacute;riques
- &eacute;troits de fonctionner sur un bus large. La largeur de bus
- utilisable est n&eacute;goci&eacute;e entre les abonn&eacute;s. Vous devez regarder
- pr&eacute;cis&eacute;ment l'adressage des abonn&eacute;s lorsque vous m&eacute;langez larges
- et &eacute;troits.</para>
- </note>
-
-<!--
- <sect4>
- <title>Single ended buses</title>
- &sgml.todo;
-
- <para>A single-ended SCSI bus uses signals that are either 5 Volts
- or 0 Volts (indeed, TTL levels) and are relative to a COMMON
- ground reference. A singled ended 8 bit SCSI bus has
- approximately 25 ground lines, who are all tied to a single `rail'
- on all devices. A standard single ended bus has a maximum length
- of 6 meters. If the same bus is used with fast-SCSI devices, the
- maximum length allowed drops to 3 meters. Fast-SCSI means that
- instead of 5Mbytes/sec the bus allows 10Mbytes/sec
- transfers.</para>
-
- <para>Fast-20 (Ultra SCSI) and Fast-40 allow for 20 and 40 million
- transfers/second respectively. So, F20 is 20 Mbytes/second on a 8
- bit bus, 40 Mbytes/second on a 16 bit bus etc. For F20 the max
- bus length is 1.5 meters, for F40 it becomes 0.75 meters. Be
- aware that F20 is pushing the limits quite a bit, so you will
- quickly find out if your SCSI bus is electrically sound.</para>
-
- <note>
- <para>If some devices on your bus use 'fast' to communicate your
- bus must adhere to the length restrictions for fast
- buses!</para>
- </note>
-
- <para>It is obvious that with the newer fast-SCSI devices the bus
- length can become a real bottleneck. This is why the differential
- SCSI bus was introduced in the SCSI-2 standard.</para>
-
- <para>For connector pinning and connector types please refer to the
- SCSI-2 standard (see <link linkend="scsi-further-reading">Further
- reading</link>) itself, connectors etc are listed there in
- painstaking detail.</para>
-
- <para>Beware of devices using non-standard cabling. For instance
- Apple uses a 25pin D-type connecter (like the one on serial ports
- and parallel printers). Considering that the official SCSI bus
- needs 50 pins you can imagine the use of this connector needs some
- 'creative cabling'. The reduction of the number of ground wires
- they used is a bad idea, you better stick to 50 pins cabling in
- accordance with the SCSI standard. For Fast-20 and 40 do not even
- think about buses like this.</para>
- </sect4>
-
- <sect4>
- <title>Differential buses</title>
-
- <para>A differential SCSI bus has a maximum length of 25 meters.
- Quite a difference from the 3 meters for a single-ended fast-SCSI
- bus. The idea behind differential signals is that each bus signal
- has its own return wire. So, each signal is carried on a
- (preferably twisted) pair of wires. The voltage difference
- between these two wires determines whether the signal is asserted
- or de-asserted. To a certain extent the voltage difference
- between ground and the signal wire pair is not relevant (do not
- try 10 kVolts though).</para>
-
- <para>It is beyond the scope of this document to explain why this
- differential idea is so much better. Just accept that
- electrically seen the use of differential signals gives a much
- better noise margin. You will normally find differential buses in
- use for inter-cabinet connections. Because of the lower cost
- single ended is mostly used for shorter buses like inside
- cabinets.</para>
-
- <para>There is nothing that stops you from using differential stuff
- with FreeBSD, as long as you use a controller that has device
- driver support in FreeBSD. As an example, Adaptec marketed the
- AHA1740 as a single ended board, whereas the AHA1744 was
- differential. The software interface to the host is identical for
- both.</para>
- </sect4>
-
- <sect4>
- <title>Terminators</title>
-
- <para>Terminators in SCSI terminology are resistor networks that are
- used to get a correct impedance matching. Impedance matching is
- important to get clean signals on the bus, without reflections or
- ringing. If you once made a long distance telephone call on a bad
- line you probably know what reflections are. With 20Mbytes/sec
- traveling over your SCSI bus, you do not want signals echoing
- back.</para>
-
- <para>Terminators come in various incarnations, with more or less
- sophisticated designs. Of course, there are internal and external
- variants. Many SCSI devices come with a number of sockets in
- which a number of resistor networks can (must be!) installed. If
- you remove terminators from a device, carefully store them. You
- will need them when you ever decide to reconfigure your SCSI bus.
- There is enough variation in even these simple tiny things to make
- finding the exact replacement a frustrating business. There are
- also SCSI devices that have a single jumper to enable or disable a
- built-in terminator. There are special terminators you can stick
- onto a flat cable bus. Others look like external connectors, or a
- connector hood without a cable. So, lots of choice as you can
- see.</para>
-
- <para>There is much debate going on if and when you should switch
- from simple resistor (passive) terminators to active terminators.
- Active terminators contain slightly more elaborate circuit to give
- cleaner bus signals. The general consensus seems to be that the
- usefulness of active termination increases when you have long
- buses and/or fast devices. If you ever have problems with your
- SCSI buses you might consider trying an active terminator. Try to
- borrow one first, they reputedly are quite expensive.</para>
-
- <para>Please keep in mind that terminators for differential and
- single-ended buses are not identical. You should <emphasis>not
- mix</emphasis> the two variants.</para>
-
- <para>OK, and now where should you install your terminators? This is
- by far the most misunderstood part of SCSI. And it is by far the
- simplest. The rule is: <emphasis>every single line on the SCSI
- bus has 2 (two) terminators, one at each end of the
- bus.</emphasis> So, two and not one or three or whatever. Do
- yourself a favor and stick to this rule. It will save you endless
- grief, because wrong termination has the potential to introduce
- highly mysterious bugs. (Note the &ldquo;potential&rdquo; here;
- the nastiest part is that it may or may not work.)</para>
-
- <para>A common pitfall is to have an internal (flat) cable in a
- machine and also an external cable attached to the controller. It
- seems almost everybody forgets to remove the terminators from the
- controller. The terminator must now be on the last external
- device, and not on the controller! In general, every
- reconfiguration of a SCSI bus must pay attention to this.</para>
-
- <note>
- <para>Termination is to be done on a per-line basis. This means
- if you have both narrow and wide buses connected to the same
- host adapter, you need to enable termination on the higher 8
- bits of the bus on the adapter (as well as the last devices on
- each bus, of course).</para>
- </note>
-
- <para>What I did myself is remove all terminators from my SCSI
- devices and controllers. I own a couple of external terminators,
- for both the Centronics-type external cabling and for the internal
- flat cable connectors. This makes reconfiguration much
- easier.</para>
-
- <para>On modern devices, sometimes integrated terminators are used.
- These things are special purpose integrated circuits that can be
- dis/en-abled with a control pin. It is not necessary to
- physically remove them from a device. You may find them on newer
- host adapters, sometimes they are software configurable, using
- some sort of setup tool. Some will even auto-detect the cables
- attached to the connectors and automatically set up the
- termination as necessary. At any rate, consult your
- documentation!</para>
- </sect4>
-
- <sect4>
- <title>Terminator power</title>
-
- <para>The terminators discussed in the previous chapter need power
- to operate properly. On the SCSI bus, a line is dedicated to this
- purpose. So, simple huh?</para>
-
- <para>Not so. Each device can provide its own terminator power to
- the terminator sockets it has on-device. But if you have external
- terminators, or when the device supplying the terminator power to
- the SCSI bus line is switched off you are in trouble.</para>
-
- <para>The idea is that initiators (these are devices that initiate
- actions on the bus, a discussion follows) must supply terminator
- power. All SCSI devices are allowed (but not required) to supply
- terminator power.</para>
-
- <para>To allow for un-powered devices on a bus, the terminator power
- must be supplied to the bus via a diode. This prevents the
- backflow of current to un-powered devices.</para>
-
- <para>To prevent all kinds of nastiness, the terminator power is
- usually fused. As you can imagine, fuses might blow. This can,
- but does not have to, lead to a non functional bus. If multiple
- devices supply terminator power, a single blown fuse will not put
- you out of business. A single supplier with a blown fuse
- certainly will. Clever external terminators sometimes have a LED
- indication that shows whether terminator power is present.</para>
-
- <para>In newer designs auto-restoring fuses that 'reset' themselves
- after some time are sometimes used.</para>
- </sect4>
-
- <sect4>
- <title>Device addressing</title>
-
- <para>Because the SCSI bus is, ehh, a bus there must be a way to
- distinguish or address the different devices connected to
- it.</para>
-
- <para>This is done by means of the SCSI or target ID. Each device
- has a unique target ID. You can select the ID to which a device
- must respond using a set of jumpers, or a dip switch, or something
- similar. Some SCSI host adapters let you change the target ID
- from the boot menu. (Yet some others will not let you change the
- ID from 7.) Consult the documentation of your device for more
- information.</para>
-
- <para>Beware of multiple devices configured to use the same ID.
- Chaos normally reigns in this case. A pitfall is that one of the
- devices sharing the same ID sometimes even manages to answer to
- I/O requests!</para>
-
- <para>For an 8 bit bus, a maximum of 8 targets is possible. The
- maximum is 8 because the selection is done bitwise using the 8
- data lines on the bus. For wide buses this increases to the
- number of data lines (usually 16).</para>
-
- <note>
- <para>A narrow SCSI device can not communicate with a SCSI device
- with a target ID larger than 7. This means it is generally not
- a good idea to move your SCSI host adapter's target ID to
- something higher than 7 (or your CD-ROM will stop
- working).</para>
- </note>
-
- <para>The higher the SCSI target ID, the higher the priority the
- devices has. When it comes to arbitration between devices that
- want to use the bus at the same time, the device that has the
- highest SCSI ID will win. This also means that the SCSI host
- adapter usually uses target ID 7. Note however that the lower 8
- IDs have higher priorities than the higher 8 IDs on a wide-SCSI
- bus. Thus, the order of target IDs is: [7 6 .. 1 0 15 14 .. 9 8]
- on a wide-SCSI system. (If you you are wondering why the lower 8
- have higher priority, read the previous paragraph for a
- hint.)</para>
-
- <para>For a further subdivision, the standard allows for Logical
- Units or LUNs for short. A single target ID may have multiple
- LUNs. For example, a tape device including a tape changer may
- have LUN 0 for the tape device itself, and LUN 1 for the tape
- changer. In this way, the host system can address each of the
- functional units of the tape changer as desired.</para>
- </sect4>
-
- <sect4>
- <title>Bus layout</title>
-
- <para>SCSI buses are linear. So, not shaped like Y-junctions, star
- topologies, rings, cobwebs or whatever else people might want to
- invent. One of the most common mistakes is for people with
- wide-SCSI host adapters to connect devices on all three connecters
- (external connector, internal wide connector, internal narrow
- connector). Don't do that. It may appear to work if you are
- really lucky, but I can almost guarantee that your system will
- stop functioning at the most unfortunate moment (this is also
- known as &ldquo;Murphy's law&rdquo;).</para>
-
- <para>You might notice that the terminator issue discussed earlier
- becomes rather hairy if your bus is not linear. Also, if you have
- more connectors than devices on your internal SCSI cable, make
- sure you attach devices on connectors on both ends instead of
- using the connectors in the middle and let one or both ends
- dangle. This will screw up the termination of the bus.</para>
-
- <para>The electrical characteristics, its noise margins and
- ultimately the reliability of it all are tightly related to linear
- bus rule.</para>
-
- <para><emphasis>Stick to the linear bus rule!</emphasis></para>
- </sect4>
--->
-
- </sect3>
-
-
- <sect3>
- <title>*** Utiliser le SCSI avec FreeBSD</title>
- &sgml.todo
- <!--
- <sect4>
- <title>About translations, BIOSes and magic...</title>
-
- <para>As stated before, you should first make sure that you have a
- electrically sound bus.</para>
-
- <para>When you want to use a SCSI disk on your PC as boot disk, you
- must aware of some quirks related to PC BIOSes. The PC BIOS in
- its first incarnation used a low level physical interface to the
- hard disk. So, you had to tell the BIOS (using a setup tool or a
- BIOS built-in setup) how your disk physically looked like. This
- involved stating number of heads, number of cylinders, number of
- sectors per track, obscure things like precompensation and reduced
- write current cylinder etc.</para>
-
- <para>One might be inclined to think that since SCSI disks are smart
- you can forget about this. Alas, the arcane setup issue is still
- present today. The system BIOS needs to know how to access your
- SCSI disk with the head/cyl/sector method in order to load the
- FreeBSD kernel during boot.</para>
-
- <para>The SCSI host adapter or SCSI controller you have put in your
- AT/EISA/PCI/whatever bus to connect your disk therefore has its
- own on-board BIOS. During system startup, the SCSI BIOS takes
- over the hard disk interface routines from the system BIOS. To
- fool the system BIOS, the system setup is normally set to No hard
- disk present. Obvious, isn't it?</para>
-
- <para>The SCSI BIOS itself presents to the system a so called
- <emphasis>translated</emphasis> drive. This means that a fake
- drive table is constructed that allows the PC to boot the drive.
- This translation is often (but not always) done using a pseudo
- drive with 64 heads and 32 sectors per track. By varying the
- number of cylinders, the SCSI BIOS adapts to the actual drive
- size. It is useful to note that 32 * 64 / 2 = the size of your
- drive in megabytes. The division by 2 is to get from disk blocks
- that are normally 512 bytes in size to Kbytes.</para>
-
- <para>Right. All is well now?! No, it is not. The system BIOS has
- another quirk you might run into. The number of cylinders of a
- bootable hard disk cannot be greater than 1024. Using the
- translation above, this is a show-stopper for disks greater than 1
- GB. With disk capacities going up all the time this is causing
- problems.</para>
-
- <para>Fortunately, the solution is simple: just use another
- translation, e.g. with 128 heads instead of 32. In most cases new
- SCSI BIOS versions are available to upgrade older SCSI host
- adapters. Some newer adapters have an option, in the form of a
- jumper or software setup selection, to switch the translation the
- SCSI BIOS uses.</para>
-
- <para>It is very important that <emphasis>all</emphasis> operating
- systems on the disk use the <emphasis>same translation</emphasis>
- to get the right idea about where to find the relevant partitions.
- So, when installing FreeBSD you must answer any questions about
- heads/cylinders etc using the translated values your host adapter
- uses.</para>
-
- <para>Failing to observe the translation issue might lead to
- un-bootable systems or operating systems overwriting each others
- partitions. Using fdisk you should be able to see all
- partitions.</para>
-
- <para>You might have heard some talk of &ldquo;lying&rdquo; devices?
- Older FreeBSD kernels used to report the geometry of SCSI disks
- when booting. An example from one of my systems:</para>
-
- <screen>aha0 targ 0 lun 0: &lt;MICROP 1588-15MB1057404HSP4&gt;
-sd0: 636MB (1303250 total sec), 1632 cyl, 15 head, 53 sec, bytes/sec 512</screen>
-
- <para>Newer kernels usually do not report this information.
- e.g.</para>
-
- <screen>(bt0:0:0): "SEAGATE ST41651 7574" type 0 fixed SCSI 2
-sd0(bt0:0:0): Direct-Access 1350MB (2766300 512 byte sectors)</screen>
-
- <para>Why has this changed?</para>
-
- <para>This info is retrieved from the SCSI disk itself. Newer disks
- often use a technique called zone bit recording. The idea is that
- on the outer cylinders of the drive there is more space so more
- sectors per track can be put on them. This results in disks that
- have more tracks on outer cylinders than on the inner cylinders
- and, last but not least, have more capacity. You can imagine that
- the value reported by the drive when inquiring about the geometry
- now becomes suspect at best, and nearly always misleading. When
- asked for a geometry , it is nearly always better to supply the
- geometry used by the BIOS, or <emphasis>if the BIOS is never going
- to know about this disk</emphasis>, (e.g. it is not a booting
- disk) to supply a fictitious geometry that is convenient.</para>
- </sect4>
-
- <sect4>
- <title>SCSI subsystem design</title>
-
- <para>FreeBSD uses a layered SCSI subsystem. For each different
- controller card a device driver is written. This driver knows all
- the intimate details about the hardware it controls. The driver
- has a interface to the upper layers of the SCSI subsystem through
- which it receives its commands and reports back any status.</para>
-
- <para>On top of the card drivers there are a number of more generic
- drivers for a class of devices. More specific: a driver for tape
- devices (abbreviation: st), magnetic disks (sd), CD-ROMs (cd) etc.
- In case you are wondering where you can find this stuff, it all
- lives in <filename>/sys/scsi</filename>. See the man pages in
- section 4 for more details.</para>
-
- <para>The multi level design allows a decoupling of low-level bit
- banging and more high level stuff. Adding support for another
- piece of hardware is a much more manageable problem.</para>
- </sect4>
-
- <sect4>
- <title>Kernel configuration</title>
-
- <para>Dependent on your hardware, the kernel configuration file must
- contain one or more lines describing your host adapter(s). This
- includes I/O addresses, interrupts etc. Consult the man page for
- your adapter driver to get more info. Apart from that, check out
- <filename>/sys/i386/conf/LINT</filename> for an overview of a
- kernel config file. <filename>LINT</filename> contains every
- possible option you can dream of. It does
- <emphasis>not</emphasis> imply <filename>LINT</filename> will
- actually get you to a working kernel at all.</para>
-
- <para>Although it is probably stating the obvious: the kernel config
- file should reflect your actual hardware setup. So, interrupts,
- I/O addresses etc must match the kernel config file. During
- system boot messages will be displayed to indicate whether the
- configured hardware was actually found.</para>
-
- <note>
- <para>Note that most of the EISA/PCI drivers (namely
- <devicename>ahb</devicename>, <devicename>ahc</devicename>,
- <devicename>ncr</devicename> and <devicename>amd</devicename>
- will automatically obtain the correct parameters from the host
- adapters themselves at boot time; thus, you just need to write,
- for instance, <literal>controller ahc0</literal>.</para>
- </note>
-
- <para>An example loosely based on the FreeBSD 2.2.5-Release kernel
- config file <filename>LINT</filename> with some added comments
- (between []):</para>
-
- <programlisting>
-# SCSI host adapters: `aha', `ahb', `aic', `bt', `nca'
-#
-# aha: Adaptec 154x
-# ahb: Adaptec 174x
-# ahc: Adaptec 274x/284x/294x
-# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!)
-# amd: AMD 53c974 based SCSI cards (e.g., Tekram DC-390 and 390T)
-# bt: Most Buslogic controllers
-# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130
-# ncr: NCR/Symbios 53c810/815/825/875 etc based SCSI cards
-# uha: UltraStore 14F and 34F
-# sea: Seagate ST01/02 8 bit controller (slow!)
-# wds: Western Digital WD7000 controller (no scatter/gather!).
-#
-
-[For an Adaptec AHA274x/284x/294x/394x etc controller]
-controller ahc0
-
-[For an NCR/Symbios 53c875 based controller]
-controller ncr0
-
-[For an Ultrastor adapter]
-controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
-
-# Map SCSI buses to specific SCSI adapters
-controller scbus0 at ahc0
-controller scbus2 at ncr0
-controller scbus1 at uha0
-
-# The actual SCSI devices
-disk sd0 at scbus0 target 0 unit 0 [SCSI disk 0 is at scbus 0, LUN 0]
-disk sd1 at scbus0 target 1 [implicit LUN 0 if omitted]
-disk sd2 at scbus1 target 3 [SCSI disk on the uha0]
-disk sd3 at scbus2 target 4 [SCSI disk on the ncr0]
-tape st1 at scbus0 target 6 [SCSI tape at target 6]
-device cd0 at scbus? [the first ever CD-ROM found, no wiring]</programlisting>
-
- <para>The example above tells the kernel to look for a ahc (Adaptec
- 274x) controller, then for an NCR/Symbios board, and so on. The
- lines following the controller specifications tell the kernel to
- configure specific devices but <emphasis>only</emphasis> attach
- them when they match the target ID and LUN specified on the
- corresponding bus.</para>
-
- <para>Wired down devices get &ldquo;first shot&rdquo; at the unit
- numbers so the first non &ldquo;wired down&rdquo; device, is
- allocated the unit number one greater than the highest
- &ldquo;wired down&rdquo; unit number for that kind of device. So,
- if you had a SCSI tape at target ID 2 it would be configured as
- st2, as the tape at target ID 6 is wired down to unit number
- 1.</para>
-
- <note>
- <para>Wired down devices need not be found to get their unit
- number. The unit number for a wired down device is reserved for
- that device, even if it is turned off at boot time. This allows
- the device to be turned on and brought on-line at a later time,
- without rebooting. Notice that a device's unit number has
- <emphasis>no</emphasis> relationship with its target ID on the
- SCSI bus.</para>
- </note>
-
- <para>Below is another example of a kernel config file as used by
- FreeBSD version &lt; 2.0.5. The difference with the first example
- is that devices are not &ldquo;wired down&rdquo;. &ldquo;Wired
- down&rdquo; means that you specify which SCSI target belongs to
- which device.</para>
-
- <para>A kernel built to the config file below will attach the first
- SCSI disk it finds to sd0, the second disk to sd1 etc. If you ever
- removed or added a disk, all other devices of the same type (disk
- in this case) would 'move around'. This implies you have to
- change <filename>/etc/fstab</filename> each time.</para>
-
- <para>Although the old style still works, you are
- <emphasis>strongly</emphasis> recommended to use this new feature.
- It will save you a lot of grief whenever you shift your hardware
- around on the SCSI buses. So, when you re-use your old trusty
- config file after upgrading from a pre-FreeBSD2.0.5.R system check
- this out.</para>
-
- <programlisting>
-[driver for Adaptec 174x]
-controller ahb0 at isa? bio irq 11 vector ahbintr
-
-[for Adaptec 154x]
-controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr
-
-[for Seagate ST01/02]
-controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr
-
-controller scbus0
-
-device sd0 [support for 4 SCSI harddisks, sd0 up sd3]
-device st0 [support for 2 SCSI tapes]
-
-[for the CD-ROM]
-device cd0 #Only need one of these, the code dynamically grows</programlisting>
-
- <para>Both examples support SCSI disks. If during boot more devices
- of a specific type (e.g. sd disks) are found than are configured
- in the booting kernel, the system will simply allocate more
- devices, incrementing the unit number starting at the last number
- &ldquo;wired down&rdquo;. If there are no &ldquo;wired
- down&rdquo; devices then counting starts at unit 0.</para>
-
- <para>Use <command>man 4 scsi</command> to check for the latest info
- on the SCSI subsystem. For more detailed info on host adapter
- drivers use eg <command>man 4 ahc</command> for info on the
- Adaptec 294x driver.</para>
- </sect4>
-
- <sect4>
- <title>Tuning your SCSI kernel setup</title>
-
- <para>Experience has shown that some devices are slow to respond to
- INQUIRY commands after a SCSI bus reset (which happens at boot
- time). An INQUIRY command is sent by the kernel on boot to see
- what kind of device (disk, tape, CD-ROM etc) is connected to a
- specific target ID. This process is called device probing by the
- way.</para>
-
- <para>To work around the 'slow response' problem, FreeBSD allows a
- tunable delay time before the SCSI devices are probed following a
- SCSI bus reset. You can set this delay time in your kernel
- configuration file using a line like:</para>
-
- <programlisting>
-options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device</programlisting>
-
- <para>This line sets the delay time to 15 seconds. On my own system
- I had to use 3 seconds minimum to get my trusty old CD-ROM drive
- to be recognized. Start with a high value (say 30 seconds or so)
- when you have problems with device recognition. If this helps,
- tune it back until it just stays working.</para>
- </sect4>
-
- <sect4 id="scsi-rogue-devices">
- <title>Rogue SCSI devices</title>
-
- <para>Although the SCSI standard tries to be complete and concise,
- it is a complex standard and implementing things correctly is no
- easy task. Some vendors do a better job then others.</para>
-
- <para>This is exactly where the &ldquo;rogue&rdquo; devices come
- into view. Rogues are devices that are recognized by the FreeBSD
- kernel as behaving slightly (...) non-standard. Rogue devices are
- reported by the kernel when booting. An example for two of my
- cartridge tape units:</para>
-
- <screen>Feb 25 21:03:34 yedi /kernel: ahb0 targ 5 lun 0: &lt;TANDBERG TDC 3600 -06:&gt;
-Feb 25 21:03:34 yedi /kernel: st0: Tandberg tdc3600 is a known rogue
-
-Mar 29 21:16:37 yedi /kernel: aha0 targ 5 lun 0: &lt;ARCHIVE VIPER 150 21247-005&gt;
-Mar 29 21:16:37 yedi /kernel: st1: Archive Viper 150 is a known rogue </screen>
-
- <para>For instance, there are devices that respond to all LUNs on a
- certain target ID, even if they are actually only one device. It
- is easy to see that the kernel might be fooled into believing that
- there are 8 LUNs at that particular target ID. The confusion this
- causes is left as an exercise to the reader.</para>
-
- <para>The SCSI subsystem of FreeBSD recognizes devices with bad
- habits by looking at the INQUIRY response they send when probed.
- Because the INQUIRY response also includes the version number of
- the device firmware, it is even possible that for different
- firmware versions different workarounds are used. See e.g.
- <filename>/sys/scsi/st.c</filename> and
- <filename>/sys/scsi/scsiconf.c</filename> for more info on how
- this is done.</para>
-
- <para>This scheme works fine, but keep in mind that it of course
- only works for devices that are known to be weird. If you are the
- first to connect your bogus Mumbletech SCSI CD-ROM you might be
- the one that has to define which workaround is needed.</para>
-
- <para>After you got your Mumbletech working, please send the
- required workaround to the FreeBSD development team for inclusion
- in the next release of FreeBSD. Other Mumbletech owners will be
- grateful to you.</para>
- </sect4>
-
- <sect4>
- <title>Multiple LUN devices</title>
-
- <para>In some cases you come across devices that use multiple
- logical units (LUNs) on a single SCSI ID. In most cases FreeBSD
- only probes devices for LUN 0. An example are so called bridge
- boards that connect 2 non-SCSI harddisks to a SCSI bus (e.g. an
- Emulex MD21 found in old Sun systems).</para>
-
- <para>This means that any devices with LUNs != 0 are not normally
- found during device probe on system boot. To work around this
- problem you must add an appropriate entry in /sys/scsi/scsiconf.c
- and rebuild your kernel.</para>
-
- <para>Look for a struct that is initialized like below:</para>
-
- <programlisting>
-{
- T_DIRECT, T_FIXED, "MAXTOR", "XT-4170S", "B5A",
- "mx1", SC_ONE_LU
-}</programlisting>
-
- <para>For you Mumbletech BRIDGE2000 that has more than one LUN, acts
- as a SCSI disk and has firmware revision 123 you would add
- something like:</para>
-
- <programlisting>
-{
- T_DIRECT, T_FIXED, "MUMBLETECH", "BRIDGE2000", "123",
- "sd", SC_MORE_LUS
-}</programlisting>
-
- <para>The kernel on boot scans the inquiry data it receives against
- the table and acts accordingly. See the source for more
- info.</para>
- </sect4>
-
- <sect4>
- <title>Tagged command queueing</title>
-
- <para>Modern SCSI devices, particularly magnetic disks,
- support what is called tagged command queuing (TCQ).</para>
-
- <para>In a nutshell, TCQ allows the device to have multiple I/O
- requests outstanding at the same time. Because the device is
- intelligent, it can optimise its operations (like head
- positioning) based on its own request queue. On SCSI devices
- like RAID (Redundant Array of Independent Disks) arrays the TCQ
- function is indispensable to take advantage of the device's
- inherent parallelism.</para>
-
- <para>Each I/O request is uniquely identified by a &ldquo;tag&rdquo;
- (hence the name tagged command queuing) and this tag is used by
- FreeBSD to see which I/O in the device drivers queue is reported
- as complete by the device.</para>
-
- <para>It should be noted however that TCQ requires device driver
- support and that some devices implemented it &ldquo;not quite
- right&rdquo; in their firmware. This problem bit me once, and it
- leads to highly mysterious problems. In such cases, try to
- disable TCQ.</para>
- </sect4>
-
- <sect4>
- <title>Busmaster host adapters</title>
-
- <para>Most, but not all, SCSI host adapters are bus mastering
- controllers. This means that they can do I/O on their own without
- putting load onto the host CPU for data movement.</para>
-
- <para>This is of course an advantage for a multitasking operating
- system like FreeBSD. It must be noted however that there might be
- some rough edges.</para>
-
- <para>For instance an Adaptec 1542 controller can be set to use
- different transfer speeds on the host bus (ISA or AT in this
- case). The controller is settable to different rates because not
- all motherboards can handle the higher speeds. Problems like
- hangups, bad data etc might be the result of using a higher data
- transfer rate then your motherboard can stomach.</para>
-
- <para>The solution is of course obvious: switch to a lower data
- transfer rate and try if that works better.</para>
-
- <para>In the case of a Adaptec 1542, there is an option that can be
- put into the kernel config file to allow dynamic determination of
- the right, read: fastest feasible, transfer rate. This option is
- disabled by default:</para>
-
- <programlisting>
-options "TUNE_1542" #dynamic tune of bus DMA speed</programlisting>
-
- <para>Check the man pages for the host adapter that you use. Or
- better still, use the ultimate documentation (read: driver
- source).</para>
- </sect4>
- -->
- </sect3>
-
-
-
- <sect3>
- <title>*** R&eacute;soudre les probl&egrave;mes</title>
- &sgml.todo
-
- <!--
- <para>The following list is an attempt to give a guideline for the
- most common SCSI problems and their solutions. It is by no means
- complete.</para>
-
- <itemizedlist>
- <listitem>
- <para>Check for loose connectors and cables.</para>
- </listitem>
-
- <listitem>
- <para>Check and double check the location and number of your
- terminators.</para>
- </listitem>
-
- <listitem>
- <para>Check if your bus has at least one supplier of terminator
- power (especially with external terminators.</para>
- </listitem>
-
- <listitem>
- <para>Check if no double target IDs are used.</para>
- </listitem>
-
- <listitem>
- <para>Check if all devices to be used are powered up.</para>
- </listitem>
-
- <listitem>
- <para>Make a minimal bus config with as little devices as
- possible.</para>
- </listitem>
-
- <listitem>
- <para>If possible, configure your host adapter to use slow bus
- speeds.</para>
- </listitem>
-
- <listitem>
- <para>Disable tagged command queuing to make things as simple as
- possible (for a NCR hostadapter based system see man
- ncrcontrol)</para>
- </listitem>
-
- <listitem>
- <para>If you can compile a kernel, make one with the
- <literal>SCSIDEBUG</literal> option, and try accessing the
- device with debugging turned on for that device. If your device
- does not even probe at startup, you may have to define the
- address of the device that is failing, and the desired debug
- level in <filename>/sys/scsi/scsidebug.h</filename>. If it
- probes but just does not work, you can use the
- &man.scsi.8; command to dynamically set a debug level to
- it in a running kernel (if <literal>SCSIDEBUG</literal> is
- defined). This will give you <emphasis>copious</emphasis>
- debugging output with which to confuse the gurus. See
- <command>man 4 scsi</command> for more exact information. Also
- look at <command>man 8 scsi</command>.</para>
- </listitem>
- </itemizedlist>
- -->
- </sect3>
-
-
- <sect3 id="scsi-further-reading">
- <title>*** Lectures compl&eacute;mentaires</title>
- &sgml.todo
-
- <!--
- <para>If you intend to do some serious SCSI hacking, you might want to
- have the official standard at hand:</para>
-
- <para>Approved American National Standards can be purchased from
- ANSI at
-
- <address>
- <otheraddr>13th Floor</otheraddr>
- <street>11 West 42nd Street</street>
- <city>New York</city>
- <state>NY</state> <postcode>10036</postcode>
- Sales Dept: <phone>(212) 642-4900</phone>
- </address>
- </para>
-
- <para>You can also buy many ANSI
- standards and most committee draft documents from Global
- Engineering Documents,
-
- <address>
- <street>15 Inverness Way East</street>
- <city>Englewood</city>
- <state>CO</state>, <postcode>80112-5704</postcode>
- Phone: <phone>(800) 854-7179</phone>
- Outside USA and Canada: <phone>(303) 792-2181</phone>
- Fax: <fax>(303) 792- 2192</fax>
- </address>
- </para>
-
- <para>Many X3T10 draft documents are available electronically on the
- SCSI BBS (719-574-0424) and on the <hostid
- role="fqdn">ncrinfo.ncr.com</hostid> anonymous ftp site.</para>
-
- <para>Latest X3T10 committee documents are:</para>
-
- <itemizedlist>
- <listitem>
- <para>AT Attachment (ATA or IDE) [X3.221-1994]
- (<emphasis>Approved</emphasis>)</para>
- </listitem>
-
- <listitem>
- <para>ATA Extensions (ATA-2) [X3T10/948D Rev 2i]</para>
- </listitem>
-
- <listitem>
- <para>Enhanced Small Device Interface (ESDI)
- [X3.170-1990/X3.170a-1991]
- (<emphasis>Approved</emphasis>)</para>
- </listitem>
-
- <listitem>
- <para>Small Computer System Interface &mdash; 2 (SCSI-2)
- [X3.131-1994] (<emphasis>Approved</emphasis>)</para>
- </listitem>
-
- <listitem>
- <para>SCSI-2 Common Access Method Transport and SCSI Interface
- Module (CAM) [X3T10/792D Rev 11]</para>
- </listitem>
- </itemizedlist>
-
- <para>Other publications that might provide you with additional
- information are:</para>
-
- <itemizedlist>
- <listitem>
- <para>&ldquo;SCSI: Understanding the Small Computer System
- Interface&rdquo;, written by NCR Corporation. Available from:
- Prentice Hall, Englewood Cliffs, NJ, 07632 Phone: (201) 767-5937
- ISBN 0-13-796855-8</para>
- </listitem>
-
- <listitem>
- <para>&ldquo;Basics of SCSI&rdquo;, a SCSI tutorial written by
- Ancot Corporation Contact Ancot for availability information at:
- Phone: (415) 322-5322 Fax: (415) 322-0455</para>
- </listitem>
-
- <listitem>
- <para>&ldquo;SCSI Interconnection Guide Book&rdquo;, an AMP
- publication (dated 4/93, Catalog 65237) that lists the various
- SCSI connectors and suggests cabling schemes. Available from
- AMP at (800) 522-6752 or (717) 564-0100</para>
- </listitem>
-
- <listitem>
- <para>&ldquo;Fast Track to SCSI&rdquo;, A Product Guide written by
- Fujitsu. Available from: Prentice Hall, Englewood Cliffs, NJ,
- 07632 Phone: (201) 767-5937 ISBN 0-13-307000-X</para>
- </listitem>
-
- <listitem>
- <para>&ldquo;The SCSI Bench Reference&rdquo;, &ldquo;The SCSI
- Encyclopedia&rdquo;, and the &ldquo;SCSI Tutor&rdquo;, ENDL
- Publications, 14426 Black Walnut Court, Saratoga CA, 95070
- Phone: (408) 867-6642</para>
- </listitem>
-
- <listitem>
- <para>&ldquo;Zadian SCSI Navigator&rdquo; (quick ref. book) and
- &ldquo;Discover the Power of SCSI&rdquo; (First book along with
- a one-hour video and tutorial book), Zadian Software, Suite 214,
- 1210 S. Bascom Ave., San Jose, CA 92128, (408) 293-0800</para>
- </listitem>
- </itemizedlist>
-
- <para>On Usenet the newsgroups <ulink
- URL="news:comp.periphs.scsi">comp.periphs.scsi</ulink> and <ulink
- URL="news:comp.periphs">comp.periphs</ulink> are noteworthy places
- to look for more info. You can also find the SCSI-Faq there, which
- is posted periodically.</para>
-
- <para>Most major SCSI device and host adapter suppliers operate ftp
- sites and/or BBS systems. They may be valuable sources of
- information about the devices you own.</para>
- -->
- </sect3>
- </sect2>
-
- <sect2 id="hw-storage-controllers">
- <title>* Contr&ocirc;leurs de disques/bandes</title>
- <sect3>
- <title>* SCSI</title>
- <para></para>
- </sect3>
- <sect3>
- <title>* IDE</title>
- <para></para>
- </sect3>
- <sect3>
- <title>* Disquettes</title>
- <para></para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>*** Disques durs</title>
-
- <sect3>
- <title>*** Disques durs SCSI</title>
- &sgml.todo;
-<!--
- <para><emphasis>Contributed by &a.asami;. 17 February
- 1998.</emphasis></para>
-
- <para>As mentioned in the <link linkend="scsi">SCSI</link> section,
- virtually all SCSI hard drives sold today are SCSI-2 compliant and
- thus will work fine as long as you connect them to a supported SCSI
- host adapter. Most problems people encounter are either due to
- badly designed cabling (cable too long, star topology, etc.),
- insufficient termination, or defective parts. Please refer to the
- <link linkend="scsi">SCSI</link> section first if your SCSI hard
- drive is not working. However, there are a couple of things you may
- want to take into account before you purchase SCSI hard drives for
- your system.</para>
-
- <sect4>
- <title>Rotational speed</title>
-
- <para>Rotational speeds of SCSI drives sold today range from around
- 4,500RPM to 10,000RPM. Most of them are either 5,400RPM or
- 7,200RPM. Even though the 7,200RPM drives can generally transfer
- data faster, they run considerably hotter than their 5,400RPM
- counterparts. A large fraction of today's disk drive malfunctions
- are heat-related. If you do not have very good cooling in your PC
- case, you may want to stick with 5,400RPM or slower drives.</para>
-
- <para>Note that newer drives, with higher areal recording densities,
- can deliver much more bits per rotation than older ones. Today's
- top-of-line 5,400RPM drives can sustain a throughput comparable to
- 7,200RPM drives of one or two model generations ago. The number
- to find on the spec sheet for bandwidth is &ldquo;internal data
- (or transfer) rate&rdquo;. It is usually in megabits/sec so
- divide it by 8 and you'll get the rough approximation of how much
- megabytes/sec you can get out of the drive.</para>
-
- <para>(If you are a speed maniac and want a 10,000RPM drive for your
- cute little peecee, be my guest; however, those drives become
- extremely hot. Don't even think about it if you don't have a fan
- blowing air <emphasis>directly at</emphasis> the drive or a
- properly ventilated disk enclosure.)</para>
-
- <para>Obviously, the latest 10,000RPM drives and 7,200RPM drives can
- deliver more data than the latest 5,400RPM drives, so if absolute
- bandwidth is the necessity for your applications, you have little
- choice but to get the faster drives. Also, if you need low
- latency, faster drives are better; not only do they usually have
- lower average seek times, but also the rotational delay is one
- place where slow-spinning drives can never beat a faster one.
- (The average rotational latency is half the time it takes to
- rotate the drive once; thus, it's 3 milliseconds for 10,000RPM
- drives, 4.2ms for 7,200RPM drives and 5.6ms for 5,400RPM drives.)
- Latency is seek time plus rotational delay. Make sure you
- understand whether you need low latency or more accesses per
- second, though; in the latter case (e.g., news servers), it may
- not be optimal to purchase one big fast drive. You can achieve
- similar or even better results by using the ccd (concatenated
- disk) driver to create a striped disk array out of multiple slower
- drives for comparable overall cost.</para>
-
- <para>Make sure you have adequate air flow around the drive,
- especially if you are going to use a fast-spinning drive. You
- generally need at least 1/2" (1.25cm) of spacing above and below a
- drive. Understand how the air flows through your PC case. Most
- cases have the power supply suck the air out of the back. See
- where the air flows in, and put the drive where it will have the
- largest volume of cool air flowing around it. You may need to seal
- some unwanted holes or add a new fan for effective cooling.</para>
-
- <para>Another consideration is noise. Many 7,200 or faster drives
- generate a high-pitched whine which is quite unpleasant to most
- people. That, plus the extra fans often required for cooling, may
- make 7,200 or faster drives unsuitable for some office and home
- environments.</para>
- </sect4>
-
- <sect4>
- <title>Form factor</title>
-
- <para>Most SCSI drives sold today are of 3.5" form factor. They
- come in two different heights; 1.6" (&ldquo;half-height&rdquo;) or
- 1" (&ldquo;low-profile&rdquo;). The half-height drive is the same
- height as a CD-ROM drive. However, don't forget the spacing rule
- mentioned in the previous section. If you have three standard
- 3.5" drive bays, you will not be able to put three half-height
- drives in there (without frying them, that is).</para>
- </sect4>
-
- <sect4>
- <title>Interface</title>
-
- <para>The majority of SCSI hard drives sold today are Ultra or
- Ultra-wide SCSI. The maximum bandwidth of Ultra SCSI is 20MB/sec,
- and Ultra-wide SCSI is 40MB/sec. There is no difference in max
- cable length between Ultra and Ultra-wide; however, the more
- devices you have on the same bus, the sooner you will start having
- bus integrity problems. Unless you have a well-designed disk
- enclosure, it is not easy to make more than 5 or 6 Ultra SCSI
- drives work on a single bus.</para>
-
- <para>On the other hand, if you need to connect many drives, going
- for Fast-wide SCSI may not be a bad idea. That will have the same
- max bandwidth as Ultra (narrow) SCSI, while electronically it's
- much easier to get it &ldquo;right&rdquo;. My advice would be: if
- you want to connect many disks, get wide SCSI drives; they usually
- cost a little more but it may save you down the road. (Besides,
- if you can't afford the cost difference, you shouldn't be building
- a disk array.)</para>
-
- <para>There are two variant of wide SCSI drives; 68-pin and 80-pin
- SCA (Single Connector Attach). The SCA drives don't have a
- separate 4-pin power connector, and also read the SCSI ID settings
- through the 80-pin connector. If you are really serious about
- building a large storage system, get SCA drives and a good SCA
- enclosure (dual power supply with at least one extra fan). They
- are more electronically sound than 68-pin counterparts because
- there is no &ldquo;stub&rdquo; of the SCSI bus inside the disk
- canister as in arrays built from 68-pin drives. They are easier
- to install too (you just need to screw the drive in the canister,
- instead of trying to squeeze in your fingers in a tight place to
- hook up all the little cables (like the SCSI ID and disk activity
- LED lines).</para>
- </sect4>
- -->
- </sect3>
-
- <sect3>
- <title>* Disques durs IDE</title>
- <para></para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>*** Contr&ocirc;leurs de bande</title>
-<!--
- <para><emphasis>Contributed by &a.jmb;. 2 July
- 1996.</emphasis></para>
--->
- <sect3>
- <title>*** Commandes g&eacute;n&eacute;rales d'acc&egrave;s aux bandes</title>
-
- &sgml.todo
- <!--
- <para>&man.mt.1; provides generic access to the tape drives. Some of
- the more common commands are <command>rewind</command>,
- <command>erase</command>, and <command>status</command>. See the
- &man.mt.1; manual page for a detailed description.</para>
- &sgml.todo;
- -->
- </sect3>
- <sect3>
- <title>*** Interfaces et contr&ocirc;leurs</title>
- &sgml.todo
- <!--
- <para>There are several different interfaces that support tape drives.
- The interfaces are SCSI, IDE, Floppy and Parallel Port. A wide
- variety of tape drives are available for these interfaces.
- Controllers are discussed in <link
- linkend="hw-storage-controllers">Disk/tape
- controllers</link>.</para>
- -->
- </sect3>
- <sect3>
- <title>*** Lecteurs SCSI</title>
- &sgml.todo
- <!--
-
- <para>The &man.st.4; driver provides support for 8mm (Exabyte), 4mm
- (DAT: Digital Audio Tape), QIC (Quarter-Inch Cartridge), DLT
- (Digital Linear Tape), QIC Minicartridge and 9-track (remember the
- big reels that you see spinning in Hollywood computer rooms) tape
- drives. See the &man.st.4; manual page for a detailed
- description.</para>
-
- <para>The drives listed below are currently being used by members of
- the FreeBSD community. They are not the only drives that will work
- with FreeBSD. They just happen to be the ones that we use.</para>
-
- <sect4>
- <title>4mm (DAT: Digital Audio Tape)</title>
-
- <para><link linkend="hw-storage-python">Archive Python</link></para>
-
- <para><link linkend="hw-storage-hp1533a">HP C1533A</link></para>
-
- <para><link linkend="hw-storage-hp1534a">HP C1534A</link></para>
-
- <para><link linkend="hw-storage-hp35450a">HP 35450A</link></para>
-
- <para><link linkend="hw-storage-hp35470a">HP 35470A</link></para>
-
- <para><link linkend="hw-storage-hp35480a">HP 35480A</link></para>
-
- <para><link linkend="hw-storage-sdt5000">SDT-5000</link></para>
-
- <para><link linkend="hw-storage-wangtek6200">Wangtek
- 6200</link></para>
- </sect4>
-
- <sect4>
- <title>8mm (Exabyte)</title>
-
- <para><link linkend="hw-storage-exb8200">EXB-8200</link></para>
-
- <para><link linkend="hw-storage-exb8500">EXB-8500</link></para>
-
- <para><link linkend="hw-storage-exb8505">EXB-8505</link></para>
- </sect4>
-
- <sect4>
- <title>QIC (Quarter-Inch Cartridge)</title>
-
- <para><link linkend="hw-storage-anaconda">Archive Ananconda
- 2750</link></para>
-
- <para><link linkend="hw-storage-viper60">Archive Viper
- 60</link></para>
-
- <para><link linkend="hw-storage-viper150">Archive Viper
- 150</link></para>
-
- <para><link linkend="hw-storage-viper2525">Archive Viper
- 2525</link></para>
-
- <para><link linkend="hw-storage-tandberg3600">Tandberg TDC
- 3600</link></para>
-
- <para><link linkend="hw-storage-tandberg3620">Tandberg TDC
- 3620</link></para>
-
- <para><link linkend="hw-storage-tandberg4222">Tandberg TDC
- 4222</link></para>
-
- <para><link linkend="hw-storage-wangtek5525es">Wangtek
- 5525ES</link></para>
- </sect4>
-
- <sect4>
- <title>DLT (Digital Linear Tape)</title>
-
- <para><link linkend="hw-storage-dectz87">Digital TZ87</link></para>
- </sect4>
-
- <sect4>
- <title>Mini-Cartridge</title>
-
- <para><link linkend="hw-storage-ctms3200">Conner CTMS
- 3200</link></para>
-
- <para><link linkend="hw-storage-exb2501">Exabyte 2501</link></para>
- </sect4>
-
- <sect4>
- <title>Autoloaders/Changers</title>
-
- <para><link linkend="hw-storage-hp1553a">Hewlett-Packard HP C1553A
- Autoloading DDS2</link></para>
- </sect4>
-
- -->
- </sect3>
- <sect3>
- <title>* Lecteurs IDE</title>
- <para></para>
- </sect3>
- <sect3>
- <title>* Lecteurs sur contr&ocirc;leur de disquette</title>
- &sgml.todo
-<!--
- o&ugrave; est pass&eacute; le source ?????
--->
-
-
-
- </sect3>
- <sect3>
- <title>* Lecteurs sur port parall&egrave;le</title>
- <para></para>
- </sect3>
- <sect3>
- <title>*** Informations d&eacute;taill&eacute;es</title>
- &sgml.todo
- <!--
- <sect4 id="hw-storage-anaconda">
- <title>Archive Anaconda 2750</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- ANCDA 2750 28077 -003 type 1 removable SCSI 2</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 1.35GB when using QIC-1350 tapes. This
- drive will read and write QIC-150 (DC6150), QIC-250 (DC6250), and
- QIC-525 (DC6525) tapes as well.</para>
-
- <para>Data transfer rate is 350kB/s using
- &man.dump.8;. Rates of 530kB/s have been reported when using
- <link linkend="backups-programs-amanda">Amanda</link></para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>The SCSI bus connector on this tape drive is reversed from
- that on most other SCSI devices. Make sure that you have enough
- SCSI cable to twist the cable one-half turn before and after the
- Archive Anaconda tape drive, or turn your other SCSI devices
- upside-down.</para>
-
- <para>Two kernel code changes are required to use this drive. This
- drive will not work as delivered.</para>
-
- <para>If you have a SCSI-2 controller, short jumper 6. Otherwise,
- the drive behaves are a SCSI-1 device. When operating as a SCSI-1
- device, this drive, &ldquo;locks&rdquo; the SCSI bus during some
- tape operations, including: fsf, rewind, and rewoffl.</para>
-
- <para>If you are using the NCR SCSI controllers, patch the file
- <filename>/usr/src/sys/pci/ncr.c</filename> (as shown below).
- Build and install a new kernel.</para>
-
- <programlisting>
-*** 4831,4835 ****
- };
-
-! if (np-&gt;latetime&gt;4) {
- /*
- ** Although we tried to wake it up,
-Remplacer les '*' par des '-'
-*** 4831,4836 ****
- };
-
-! if (np-&gt;latetime&gt;1200) {
- /*
- ** Although we tried to wake it up,</programlisting>
-
- <para>Reported by: &a.jmb;</para>
- </sect4>
-
- <sect4 id="hw-storage-python">
- <title>Archive Python</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- Python 28454-XXX4ASB</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>density code 0x8c, 512-byte
- blocks</literal></para>
-
- <para>This is a DDS-1 tape drive.</para>
-
- <para>Native capacity is 2.5GB on 90m tapes.</para>
-
- <para>Data transfer rate is XXX.</para>
-
- <para>This drive was repackaged by Sun Microsystems as model
- 411.</para>
-
- <para>Reported by: Bob Bishop <email>rb@gid.co.uk</email></para>
- </sect4>
-
- <sect4 id="hw-storage-viper60">
- <title>Archive Viper 60</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- VIPER 60 21116 -007</literal> <literal>type 1 removable SCSI
- 1</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 60MB.</para>
-
- <para>Data transfer rate is XXX.</para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>Reported by: Philippe Regnauld
- <email>regnauld@hsc.fr</email></para>
- </sect4>
-
- <sect4 id="hw-storage-viper150">
- <title>Archive Viper 150</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- VIPER 150 21531 -004</literal> <literal>Archive Viper 150 is a
- known rogue</literal> <literal>type 1 removable SCSI
- 1</literal>. A multitude of firmware revisions exist for this
- drive. Your drive may report different numbers (e.g
- <literal>21247 -005</literal>.</para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 150/250MB. Both 150MB (DC6150) and 250MB
- (DC6250) tapes have the recording format. The 250MB tapes are
- approximately 67% longer than the 150MB tapes. This drive can
- read 120MB tapes as well. It can not write 120MB tapes.</para>
-
- <para>Data transfer rate is 100kB/s</para>
-
- <para>This drive reads and writes DC6150 (150MB) and DC6250 (250MB)
- tapes.</para>
-
- <para>This drives quirks are known and pre-compiled into the scsi
- tape device driver (&man.st.4;).</para>
-
- <para>Under FreeBSD 2.2-current, use <command>mt blocksize
- 512</command> to set the blocksize. (The particular drive had
- firmware revision 21247 -005. Other firmware revisions may behave
- differently) Previous versions of FreeBSD did not have this
- problem.</para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>Reported by: Pedro A M Vazquez
- <email>vazquez@IQM.Unicamp.BR</email></para>
-
- <para>Mike Smith
- <email>msmith@atrad.adelaide.edu.au</email></para>
- </sect4>
-
- <sect4 id="hw-storage-viper2525">
- <title>Archive Viper 2525</title>
-
- <para>The boot message identifier for this drive is <literal>ARCHIVE
- VIPER 2525 25462 -011</literal> <literal>type 1 removable SCSI
- 1</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 525MB.</para>
-
- <para>Data transfer rate is 180kB/s at 90 inches/sec.</para>
-
- <para>The drive reads QIC-525, QIC-150, QIC-120 and QIC-24 tapes.
- Writes QIC-525, QIC-150, and QIC-120.</para>
-
- <para>Firmware revisions prior to <literal>25462 -011</literal> are
- bug ridden and will not function properly.</para>
-
- <para>Production of this drive has been discontinued.</para>
- </sect4>
-
- <sect4 id="hw-storage-conner420r">
- <title>Conner 420R</title>
-
- <para>The boot message identifier for this drive is <literal>Conner
- tape</literal>.</para>
-
- <para>This is a floppy controller, minicartridge tape drive.</para>
-
- <para>Native capacity is XXXX</para>
-
- <para>Data transfer rate is XXX</para>
-
- <para>The drive uses QIC-80 tape cartridges.</para>
-
- <para>Reported by: Mark Hannon
- <email>mark@seeware.DIALix.oz.au</email></para>
- </sect4>
-
- <sect4 id="hw-storage-ctms3200">
- <title>Conner CTMS 3200</title>
-
- <para>The boot message identifier for this drive is <literal>CONNER
- CTMS 3200 7.00</literal> <literal>type 1 removable SCSI
- 2</literal>.</para>
-
- <para>This is a minicartridge tape drive.</para>
-
- <para>Native capacity is XXXX</para>
-
- <para>Data transfer rate is XXX</para>
-
- <para>The drive uses QIC-3080 tape cartridges.</para>
-
- <para>Reported by: Thomas S. Traylor
- <email>tst@titan.cs.mci.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-dectz87">
- <title><ulink
- URL="http://www.digital.com/info/Customer-Update/931206004.txt.html">DEC TZ87</ulink></title>
-
- <para>The boot message identifier for this drive is <literal>DEC
- TZ87 (C) DEC 9206</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>density code 0x19</literal></para>
-
- <para>This is a DLT tape drive.</para>
-
- <para>Native capacity is 10GB.</para>
-
- <para>This drive supports hardware data compression.</para>
-
- <para>Data transfer rate is 1.2MB/s.</para>
-
- <para>This drive is identical to the Quantum DLT2000. The drive
- firmware can be set to emulate several well-known drives,
- including an Exabyte 8mm drive.</para>
-
- <para>Reported by: &a.wilko;</para>
- </sect4>
-
- <sect4 id="hw-storage-exb2501">
- <title><ulink
- URL="http://www.Exabyte.COM:80/Products/Minicartridge/2501/Rfeatures.html">Exabyte EXB-2501</ulink></title>
-
- <para>The boot message identifier for this drive is <literal>EXABYTE
- EXB-2501</literal></para>
-
- <para>This is a mini-cartridge tape drive.</para>
-
- <para>Native capacity is 1GB when using MC3000XL
- minicartridges.</para>
-
- <para>Data transfer rate is XXX</para>
-
- <para>This drive can read and write DC2300 (550MB), DC2750 (750MB),
- MC3000 (750MB), and MC3000XL (1GB) minicartridges.</para>
-
- <para>WARNING: This drive does not meet the SCSI-2 specifications.
- The drive locks up completely in response to a SCSI MODE_SELECT
- command unless there is a formatted tape in the drive. Before
- using this drive, set the tape blocksize with</para>
-
- <screen>&prompt.root; <userinput>mt -f /dev/st0ctl.0 blocksize 1024</userinput></screen>
-
- <para>Before using a minicartridge for the first time, the
- minicartridge must be formated. FreeBSD 2.1.0-RELEASE and
- earlier:</para>
-
- <screen>&prompt.root; <userinput>/sbin/scsi -f /dev/rst0.ctl -s 600 -c "4 0 0 0 0 0"</userinput></screen>
-
- <para>(Alternatively, fetch a copy of the
- <command>scsiformat</command> shell script from FreeBSD
- 2.1.5/2.2.) FreeBSD 2.1.5 and later:</para>
-
- <screen>&prompt.root; <userinput>/sbin/scsiformat -q -w /dev/rst0.ctl</userinput></screen>
-
- <para>Right now, this drive cannot really be recommended for
- FreeBSD.</para>
-
- <para>Reported by: Bob Beaulieu
- <email>ez@eztravel.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-exb8200">
- <title>Exabyte EXB-8200</title>
-
- <para>The boot message identifier for this drive is <literal>EXABYTE
- EXB-8200 252X</literal> <literal>type 1 removable SCSI
- 1</literal></para>
-
- <para>This is an 8mm tape drive.</para>
-
- <para>Native capacity is 2.3GB.</para>
-
- <para>Data transfer rate is 270kB/s.</para>
-
- <para>This drive is fairly slow in responding to the SCSI bus during
- boot. A custom kernel may be required (set SCSI_DELAY to 10
- seconds).</para>
-
- <para>There are a large number of firmware configurations for this
- drive, some have been customized to a particular vendor's
- hardware. The firmware can be changed via EPROM
- replacement.</para>
-
- <para>Production of this drive has been discontinued.</para>
-
- <para>Reported by: Mike Smith
- <email>msmith@atrad.adelaide.edu.au</email></para>
- </sect4>
-
- <sect4 id="hw-storage-exb8500">
- <title>Exabyte EXB-8500</title>
-
- <para>The boot message identifier for this drive is <literal>EXABYTE
- EXB-8500-85Qanx0 0415</literal> <literal>type 1 removable SCSI
- 2</literal></para>
-
- <para>This is an 8mm tape drive.</para>
-
- <para>Native capacity is 5GB.</para>
-
- <para>Data transfer rate is 300kB/s.</para>
-
- <para>Reported by: Greg Lehey <email>grog@lemis.de</email></para>
- </sect4>
-
- <sect4 id="hw-storage-exb8505">
- <title><ulink
- URL="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">Exabyte EXB-8505</ulink></title>
-
- <para>The boot message identifier for this drive is
- <literal>EXABYTE EXB-85058SQANXR1 05B0</literal> <literal>type 1
- removable SCSI 2</literal></para>
-
- <para>This is an 8mm tape drive which supports compression, and is
- upward compatible with the EXB-5200 and EXB-8500.</para>
-
- <para>Native capacity is 5GB.</para>
-
- <para>The drive supports hardware data compression.</para>
-
- <para>Data transfer rate is 300kB/s.</para>
-
- <para>Reported by: Glen Foster
- <email>gfoster@gfoster.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-hp1533a">
- <title>Hewlett-Packard HP C1533A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- C1533A 9503</literal> <literal>type 1 removable SCSI
- 2</literal>.</para>
-
- <para>This is a DDS-2 tape drive. DDS-2 means hardware data
- compression and narrower tracks for increased data
- capacity.</para>
-
- <para>Native capacity is 4GB when using 120m tapes. This drive
- supports hardware data compression.</para>
-
- <para>Data transfer rate is 510kB/s.</para>
-
- <para>This drive is used in Hewlett-Packard's SureStore 6000eU and
- 6000i tape drives and C1533A DDS-2 DAT drive.</para>
-
- <para>The drive has a block of 8 dip switches. The proper settings
- for FreeBSD are: 1 ON; 2 ON; 3 OFF; 4 ON; 5 ON; 6 ON; 7 ON; 8
- ON.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>switch 1</entry>
- <entry>switch 2</entry>
- <entry>Result</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>On</entry>
- <entry>On</entry>
- <entry>Compression enabled at power-on, with host
- control</entry>
- </row>
-
- <row>
- <entry>On</entry>
- <entry>Off</entry>
- <entry>Compression enabled at power-on, no host
- control</entry>
- </row>
-
- <row>
- <entry>Off</entry>
- <entry>On</entry>
- <entry>Compression disabled at power-on, with host
- control</entry>
- </row>
-
- <row>
- <entry>Off</entry>
- <entry>Off</entry>
- <entry>Compression disabled at power-on, no host
- control</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Switch 3 controls MRS (Media Recognition System). MRS tapes
- have stripes on the transparent leader. These identify the tape
- as DDS (Digital Data Storage) grade media. Tapes that do not have
- the stripes will be treated as write-protected. Switch 3 OFF
- enables MRS. Switch 3 ON disables MRS.</para>
-
- <para>See <ulink URL="http://www.hp.com/tape/c_intro.html">HP
- SureStore Tape Products</ulink> and <ulink
- URL="http://www.impediment.com/hp/hp_technical.html">Hewlett-Packard
- Disk and Tape Technical Information</ulink> for more information
- on configuring this drive.</para>
-
- <para><emphasis>Warning:</emphasis> Quality control on these drives
- varies greatly. One FreeBSD core-team member has returned 2 of
- these drives. Neither lasted more than 5 months.</para>
-
- <para>Reported by: &a.se;</para>
- </sect4>
-
- <sect4 id="hw-storage-hp1534a">
- <title>Hewlett-Packard HP 1534A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35470A T503</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code 0x13,
- variable blocks</literal>.</para>
-
- <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape
- format.</para>
-
- <para>Native capacity is 2GB when using 90m tapes.</para>
-
- <para>Data transfer rate is 183kB/s.</para>
-
- <para>The same mechanism is used in Hewlett-Packard's SureStore
- <ulink URL="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink>
- tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT
- drive and HP C1536A DDS format DAT drive.</para>
-
- <para>The HP C1534A DDS format DAT drive has two indicator lights,
- one green and one amber. The green one indicates tape action:
- slow flash during load, steady when loaded, fast flash during
- read/write operations. The amber one indicates warnings: slow
- flash when cleaning is required or tape is nearing the end of its
- useful life, steady indicates an hard fault. (factory service
- required?)</para>
-
- <para>Reported by Gary Crutcher
- <email>gcrutchr@nightflight.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-hp1553a">
- <title>Hewlett-Packard HP C1553A Autoloading DDS2</title>
-
- <para>The boot message identifier for this drive is "".</para>
-
- <para>This is a DDS-2 tape drive with a tape changer. DDS-2 means
- hardware data compression and narrower tracks for increased data
- capacity.</para>
-
- <para>Native capacity is 24GB when using 120m tapes. This drive
- supports hardware data compression.</para>
-
- <para>Data transfer rate is 510kB/s (native).</para>
-
- <para>This drive is used in Hewlett-Packard's SureStore <ulink
- URL="http://www.dmo.hp.com/tape/sst12000.htm">12000e</ulink>
- tape drive.</para>
-
- <para>The drive has two selectors on the rear panel. The selector
- closer to the fan is SCSI id. The other selector should be set to
- 7.</para>
-
- <para>There are four internal switches. These should be set: 1 ON;
- 2 ON; 3 ON; 4 OFF.</para>
-
- <para>At present the kernel drivers do not automatically change
- tapes at the end of a volume. This shell script can be used to
- change tapes:</para>
-
- <programlisting>
-#!/bin/sh
-PATH="/sbin:/usr/sbin:/bin:/usr/bin"; export PATH
-
-usage()
-{
- echo "Usage: dds_changer [123456ne] raw-device-name
- echo "1..6 = Select cartridge"
- echo "next cartridge"
- echo "eject magazine"
- exit 2
-}
-
-if [ $# -ne 2 ] ; then
- usage
-fi
-
-cdb3=0
-cdb4=0
-cdb5=0
-
-case $1 in
- [123456])
- cdb3=$1
- cdb4=1
- ;;
- n)
- ;;
- e)
- cdb5=0x80
- ;;
- ?)
- usage
- ;;
-esac
-
-scsi -f $2 -s 100 -c "1b 0 0 $cdb3 $cdb4 $cdb5"</programlisting>
- </sect4>
-
- <sect4 id="hw-storage-hp35450a">
- <title>Hewlett-Packard HP 35450A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35450A -A C620</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal></para>
-
- <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape
- format.</para>
-
- <para>Native capacity is 1.2GB.</para>
-
- <para>Data transfer rate is 160kB/s.</para>
-
- <para>Reported by: mark thompson
- <email>mark.a.thompson@pobox.com</email></para>
- </sect4>
-
- <sect4 id="hw-storage-hp35470a">
- <title>Hewlett-Packard HP 35470A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35470A 9 09</literal> <literal>type 1 removable SCSI
- 2</literal></para>
-
- <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape
- format.</para>
-
- <para>Native capacity is 2GB when using 90m tapes.</para>
-
- <para>Data transfer rate is 183kB/s.</para>
-
- <para>The same mechanism is used in Hewlett-Packard's SureStore
- <ulink URL="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink>
- tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT
- drive, and HP C1536A DDS format DAT drive.</para>
-
- <para><emphasis>Warning:</emphasis> Quality control on these drives
- varies greatly. One FreeBSD core-team member has returned 5 of
- these drives. None lasted more than 9 months.</para>
-
- <para>Reported by: David Dawes
- <email>dawes@rf900.physics.usyd.edu.au</email> (9 09)</para>
-
- </sect4>
-
- <sect4 id="hw-storage-hp35480a">
- <title>Hewlett-Packard HP 35480A</title>
-
- <para>The boot message identifier for this drive is <literal>HP
- HP35480A 1009</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal>.</para>
-
- <para>This is a DDS-DC tape drive. DDS-DC is DDS-1 with hardware
- data compression. DDS-1 is the original DAT tape format.</para>
-
- <para>Native capacity is 2GB when using 90m tapes. It cannot handle
- 120m tapes. This drive supports hardware data compression.
- Please refer to the section on <link
- linkend="hw-storage-hp1533a">HP C1533A</link> for the proper
- switch settings.</para>
-
- <para>Data transfer rate is 183kB/s.</para>
-
- <para>This drive is used in Hewlett-Packard's SureStore <ulink
- URL="http://www.dmo.hp.com/tape/sst5000.htm">5000eU</ulink> and
- <ulink URL="http://www.dmo.hp.com/tape/sst5000.htm">5000i</ulink>
- tape drives and C35480A DDS format DAT drive..</para>
-
- <para>This drive will occasionally hang during a tape eject
- operation (<command>mt offline</command>). Pressing the front
- panel button will eject the tape and bring the tape drive back to
- life.</para>
-
- <para>WARNING: HP 35480-03110 only. On at least two occasions this
- tape drive when used with FreeBSD 2.1.0, an IBM Server 320 and an
- 2940W SCSI controller resulted in all SCSI disk partitions being
- lost. The problem has not be analyzed or resolved at this
- time.</para>
- </sect4>
-
- <sect4 id="hw-storage-sdt5000">
- <title><ulink
- URL="http://www.sel.sony.com/SEL/ccpg/storage/tape/t5000.html">Sony SDT-5000</ulink></title>
-
- <para>There are at least two significantly different models: one is
- a DDS-1 and the other DDS-2. The DDS-1 version is
- <literal>SDT-5000 3.02</literal>. The DDS-2 version is
- <literal>SONY SDT-5000 327M</literal>. The DDS-2 version has a 1MB
- cache. This cache is able to keep the tape streaming in almost
- any circumstances.</para>
-
- <para>The boot message identifier for this drive is <literal>SONY
- SDT-5000 3.02</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal></para>
-
- <para>Native capacity is 4GB when using 120m tapes. This drive
- supports hardware data compression.</para>
-
- <para>Data transfer rate is depends upon the model or the drive. The
- rate is 630kB/s for the <literal>SONY SDT-5000 327M</literal>
- while compressing the data. For the <literal>SONY SDT-5000
- 3.02</literal>, the data transfer rate is 225kB/s.</para>
-
- <para>In order to get this drive to stream, set the blocksize to 512
- bytes (<command>mt blocksize 512</command>) reported by Kenneth
- Merry ken@ulc199.residence.gatech.edu</para>
-
- <para><literal>SONY SDT-5000 327M</literal> information reported by
- Charles Henrich henrich@msu.edu</para>
-
- <para>Reported by: &a.jmz;</para>
- </sect4>
-
- <sect4 id="hw-storage-tandberg3600">
- <title>Tandberg TDC 3600</title>
-
- <para>The boot message identifier for this drive is
- <literal>TANDBERG TDC 3600 =08:</literal> <literal>type 1
- removable SCSI 2</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 150/250MB.</para>
-
- <para>This drive has quirks which are known and work around code is
- present in the scsi tape device driver (&man.st.4;).
- Upgrading the firmware to XXX version will fix the quirks and
- provide SCSI 2 capabilities.</para>
-
- <para>Data transfer rate is 80kB/s.</para>
-
- <para>IBM and Emerald units will not work. Replacing the firmware
- EPROM of these units will solve the problem.</para>
-
- <para>Reported by: Michael Smith
- <email>msmith@atrad.adelaide.edu.au</email></para>
- </sect4>
-
- <sect4 id="hw-storage-tandberg3620">
- <title>Tandberg TDC 3620</title>
-
- <para>This is very similar to the <link
- linkend="hw-storage-tandberg3600">Tandberg TDC 3600</link>
- drive.</para>
-
- <para>Reported by: &a.joerg;</para>
- </sect4>
-
- <sect4 id="hw-storage-tandberg4222">
- <title>Tandberg TDC 4222</title>
-
- <para>The boot message identifier for this drive is
- <literal>TANDBERG TDC 4222 =07</literal> <literal>type 1 removable
- SCSI 2</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 2.5GB. The drive will read all cartridges
- from the 60 MB (DC600A) upwards, and write 150 MB (DC6150)
- upwards. Hardware compression is optionally supported for the 2.5
- GB cartridges.</para>
-
- <para>This drives quirks are known and pre-compiled into the scsi
- tape device driver (&man.st.4;) beginning with FreeBSD
- 2.2-current. For previous versions of FreeBSD, use
- <command>mt</command> to read one block from the tape, rewind the
- tape, and then execute the backup program (<command>mt fsr 1; mt
- rewind; dump ...</command>)</para>
-
- <para>Data transfer rate is 600kB/s (vendor claim with compression),
- 350 KB/s can even be reached in start/stop mode. The rate
- decreases for smaller cartridges.</para>
-
- <para>Reported by: &a.joerg;</para>
- </sect4>
-
- <sect4 id="hw-storage-wangtek5525es">
- <title>Wangtek 5525ES</title>
-
- <para>The boot message identifier for this drive is <literal>WANGTEK
- 5525ES SCSI REV7 3R1</literal> <literal>type 1 removable SCSI
- 1</literal> <literal>density code 0x11, 1024-byte
- blocks</literal></para>
-
- <para>This is a QIC tape drive.</para>
-
- <para>Native capacity is 525MB.</para>
-
- <para>Data transfer rate is 180kB/s.</para>
-
- <para>The drive reads 60, 120, 150, and 525MB tapes. The drive will
- not write 60MB (DC600 cartridge) tapes. In order to overwrite 120
- and 150 tapes reliably, first erase (<command>mt erase</command>)
- the tape. 120 and 150 tapes used a wider track (fewer tracks per
- tape) than 525MB tapes. The &ldquo;extra&rdquo; width of the
- previous tracks is not overwritten, as a result the new data lies
- in a band surrounded on both sides by the previous data unless the
- tape have been erased.</para>
-
- <para>This drives quirks are known and pre-compiled into the scsi
- tape device driver (&man.st.4;).</para>
-
- <para>Other firmware revisions that are known to work are:
- M75D</para>
-
- <para>Reported by: Marc van Kempen <email>marc@bowtie.nl</email>
- <literal>REV73R1</literal> Andrew Gordon
- <email>Andrew.Gordon@net-tel.co.uk</email>
- <literal>M75D</literal></para>
- </sect4>
-
- <sect4 id="hw-storage-wangtek6200">
- <title>Wangtek 6200</title>
-
- <para>The boot message identifier for this drive is <literal>WANGTEK
- 6200-HS 4B18</literal> <literal>type 1 removable SCSI
- 2</literal> <literal>Sequential-Access density code
- 0x13</literal></para>
-
- <para>This is a DDS-1 tape drive.</para>
-
- <para>Native capacity is 2GB using 90m tapes.</para>
-
- <para>Data transfer rate is 150kB/s.</para>
-
- <para>Reported by: Tony Kimball <email>alk@Think.COM</email></para>
- </sect4>
- -->
- </sect3>
- <sect3>
- <title>* Lecteurs posant probl&egrave;me</title>
- <para></para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>*** Contr&ocirc;leurs de CD-ROMs</title>
-
- &sgml.todo
- <!--
-
- <para><emphasis>Contribution de &a.obrien;. 23 Novembre
- 1997.</emphasis></para>
-
- <para>Comme mentionn&eacute; dans
- <link linkend="hw-jordans-picks-cdrom">Jordan's Picks</link>
- Generally speaking those in <emphasis>The FreeBSD
- Project</emphasis> prefer SCSI CDROM drives over IDE CDROM drives.
- However not all SCSI CDROM drives are equal. Some feel the quality of
- some SCSI CDROM drives have been deteriorating to that of IDE CDROM
- drives. Toshiba used to be the favored stand-by, but many on the SCSI
- mailing list have found displeasure with the 12x speed XM-5701TA as
- its volume (when playing audio CDROMs) is not controllable by the
- various audio player software.</para>
-
- <para>Another area where SCSI CDROM manufacturers are cutting corners is
- adhearance to the <link linkend="scsi-further-reading">SCSI
- specification</link>. Many SCSI CDROMs will respond to <link
- linkend="scsi-rogue-devices">multiple LUNs</link> for its target
- address. Known violators include the 6x Teac CD-56S 1.0D.</para>
- <para></para>
-
- -->
- </sect2>
-
- <sect2>
- <title>* Autres</title>
- <para></para>
- </sect2>
-
- <sect2>
- <title>* Ajouter et reconfigurer des disques</title>
- <para></para>
- </sect2>
-
- </sect1>
-
- <sect1 id="hw-other">
- <title>* Autres</title>
-
- <sect2>
- <title>* PCMCIA</title>
- <para></para>
- </sect2>
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/in-progress.sgml b/fr_FR.ISO8859-1/books/handbook/in-progress.sgml
deleted file mode 100644
index 45248c01c8..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/in-progress.sgml
+++ /dev/null
@@ -1,9 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<para>** Traduction en Cours **</para>
diff --git a/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml
deleted file mode 100644
index d1e6009af8..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml
+++ /dev/null
@@ -1,1298 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="install">
- <title>Installer FreeBSD</title>
- &trans.a.haby;
-
- <para>Donc, vous voulez tester FreeBSD sur votre nouvelle machine?
- Cette section vous donne rapidement toutes les indications pour le
- faire. FreeBSD peut &ecirc;tre install&eacute; &agrave; partir de diff&eacute;rents supports
- dont CD-ROM, disquettes, bande magn&eacute;tique, partition MS-DOS, et si vous
- avez une connexion r&eacute;seau, par ftp anonyme ou via NFS.</para>
-
- <para>Quelle que soit la fa&ccedil;on dons vous proc&eacute;derez, vous pouvez commencer
- par cr&eacute;er la <emphasis>disquette d'installation</emphasis>, comme
- d&eacute;crit plus bas. D&eacute;marrez votre ordinateur avec cette disquette, m&ecirc;me
- si vous ne voulez pas installer FreeBSD tout de suite, pour avoir des
- informations importantes sur la compatibilit&eacute; de votre mat&eacute;riel avec
- FreeBSD, ce qui dictera quelles options d'installation vous pouvez
- envisager. Cela peut aussi vous donner des indications quant aux
- incompatibilit&eacute;s mat&eacute;rielles qui vous emp&ecirc;cheraient d'utiliser FreeBSD
- sur votre machine.</para>
-
- <para>Si vous envisagez une installation par ftp anonyme, alors cette
- disquette d'installation est tout ce que vous aurez besoin de
- t&eacute;l&eacute;charger et cr&eacute;er&nbsp;-&nbsp;le programme d'installation se
- chargera lui-m&ecirc;me de r&eacute;cup&eacute;rer tout ce qu'il faudra par la suite (via
- une connexion Ethernet, un modem et une liaison ppp, etc.).</para>
-
- <para>Pour plus d'informations sur la mani&egrave;re de vous procurer la version
- la plus r&eacute;cente de FreeBSD, voyez s'il vous pla&icirc;t l'annexe
- <link linkend="mirrors">Se procurer FreeBSD</link>.</para>
-
- <para>Donc, pour pouvoir commencer &agrave; installer, suivez les &eacute;tapes
- ci-dessous:</para>
-
- <procedure>
-
- <step>
- <para>Passez en revue la section <link
- linkend="install-hw">Configurations support&eacute;es</link> de ce
- guide d'installation pour &ecirc;tre s&ucirc;r que votre mat&eacute;riel soit
- compatible avec FreeBSD. Il peut &ecirc;tre utile de faire une liste des
- cartes particuli&egrave;res que vous avez install&eacute;es, contr&ocirc;leurs SCSI,
- adaptateurs Ethernet ou cartes sons. Cette liste devra inclure
- les param&egrave;tres de configuration n&eacute;cessaires, tels que les
- interruptions (IRQ) et les adresses des ports
- d'Entr&eacute;e/Sortie.</para>
- </step>
-
- <step>
- <para>Si vous installez FreeBSD depuis le CD-ROM, vous avez
- plusieurs options d'installation:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Si c'est un CD-ROM qui a &eacute;t&eacute; grav&eacute; avec le support de
- d&eacute;marrage El Torrito et que votre syst&egrave;me peut d&eacute;marrer
- &agrave; partir du CD-ROM (de nombreux syst&egrave;mes anciens ne savent
- <emphasis>pas</emphasis> le faire), mettez simplement le
- CD dans le lecteur et d&eacute;marrez directement avec
- celui-ci.</para>
- </listitem>
-
- <listitem>
- <para>Si vous &ecirc;tes sous DOS et avez le pilote n&eacute;cessaire pour
- acc&eacute;der &agrave; votre CD-ROM, ex&eacute;cutez la proc&eacute;dure
- <command>install.bat</command>
- qui se trouve sur le CD. Cela lancera l'installation de
- FreeBSD &agrave; partir de DOS.</para>
-
- <note>
- <para>Vous devez faire cela r&eacute;ellement sous DOS et non dans
- une fen&ecirc;tre DOS sous Windows.</para>
- </note>
-
- <para> Si vous voulez installer FreeBSD depuis une partition
- DOS (peut-&ecirc;tre parce que FreeBSD ne supporte pas votre
- lecteur de CD-ROMs), lancez alors d'abord le programme
- <command>setup</command> qui copiera les fichiers
- n&eacute;cessaires du CD sur la partition DOS, puis lancez ensuite
- <command>install</command>.</para>
- </listitem>
-
- <listitem>
- <para>Si l'une des deux m&eacute;thodes pr&eacute;c&eacute;dentes fonctionne, vous
- pouvez sauter la suite de cette section, sinon, il vous
- reste la possibilit&eacute; de cr&eacute;er une disquette de d&eacute;marrage
- &agrave; partir du fichier image
- <filename>floppies\boot.flp</filename>&nbsp;-&nbsp;passez &agrave;
- l'&eacute;tape 4 pour avoir des indications sur la fa&ccedil;on de
- faire.</para>
- </listitem>
-
- </itemizedlist>
-
- </step>
-
- <step>
- <para>Si vous n'avez pas la distribution sur CD-ROM, t&eacute;l&eacute;chargez
- simplement le fichier d'<ulink
- url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/&rel.current;-RELEASE/floppies/boot.flp">image
- de la disquette d&eacute;marrable d'installation</ulink> sur votre disque
- dur, en veillant &agrave; donner &agrave; votre navigateur l'option
- <emphasis>enregistrer</emphasis> et non
- <emphasis>ouvrir</emphasis> le fichier.</para>
-
- <note>
- <para>Cette image disquette ne fonctionne qu'avec des lecteurs de
- disquette 3.5" 1.44 Mo.</para>
- </note>
- </step>
-
- <step>
- <para>Cr&eacute;ez une disquette de d&eacute;marrage de l'installation &agrave; partir
- du fichier image:</para>
- <itemizedlist>
-
- <listitem>
- <para>Si vous utilisez MS-DOS, t&eacute;l&eacute;chargez <ulink
- url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/tools/fdimage.exe">fdimage.exe</ulink>
- ou r&eacute;cup&eacute;rez-le de <filename>tools\fdimage.exe</filename>
- sur le CD-ROM et utilisez-le comme suit:</para>
-
- <informalexample>
- <screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\boot.flp a:</userinput></screen>
- </informalexample>
- <para>Le programme <emphasis>fdimage</emphasis>
- formatera la disquette dans le lecteur
- <devicename>A:</devicename> et y copiera
- <filename>boot.flp</filename> (en supposant que vous &ecirc;tes dans
- le r&eacute;pertoire racine de la distribution de FreeBSD et que
- l'image de la disquette se trouve dans le r&eacute;pertoire pour les
- disquettes, ce qui est normalement le cas).</para>
- </listitem>
-
- <listitem>
- <para>Si vous utilisez un syst&egrave;me UNIX pour cr&eacute;er la
- disquette:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dd if=boot.flp of=<replaceable>p&eacute;riph&eacute;rique_disquette</replaceable></userinput></screen>
- </informalexample>
- <para><replaceable>p&eacute;riph&eacute;rique_disquette</replaceable> est
- l'entr&eacute;e <filename>/dev</filename> pour le lecteur de
- disquette. Sur les syst&egrave;mes FreeBSD, c'est
- <filename>/dev/rfd0</filename> pour le lecteur
- <devicename>A:</devicename> et
- <filename>/dev/rfd1</filename> pour le lecteur
- <devicename>B:</devicename>.</para>
- </listitem>
-
- </itemizedlist>
- </step>
-
- <step>
- <para>Red&eacute;marrez l'ordinateur avec la disquette d'installation
- dans le lecteur <devicename>A:</devicename>. Vous devriez
- obtenir une invite de d&eacute;marrage du genre:</para>
- <informalexample>
- <screen>
-&gt;&gt; FreeBSD BOOT ...
-Usage: [[[0:][wd](0,a)]/kernel][-abcCdhrsv]
-Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1
-Use ? for file list or press Enter for defaults
-Boot:
- </screen>
- </informalexample>
- <para>Si vous ne tapez <emphasis>rien</emphasis>, FreeBSD d&eacute;marrera
- automatiquement avec la configuration par d&eacute;faut apr&egrave;s un d&eacute;lai
- d'environ 5 secondes. Au d&eacute;marrage, FreeBSD effectue des tests
- pour savoir quels mat&eacute;riels sont install&eacute;s. Les r&eacute;sultats de ces
- tests sont affich&eacute;s &agrave; l'&eacute;cran.</para>
- </step>
-
- <step>
- <para>Apr&egrave;s le d&eacute;marrage, le menu principal d'installation de
- FreeBSD s'affiche.</para>
- </step>
-
- </procedure>
-
- <para><emphasis>Si quelque chose se passe mal ...</emphasis></para>
-
- <para>Du fait des limitations de l'architecture PC, il n'est pas possible
- d'avoir des tests fiables &agrave; 100%. Si votre mat&eacute;riel n'est pas d&eacute;tect&eacute;
- correctement, ou si les tests plantent votre machine, consultez d'abord
- la section <link linkend="install-hw">Configurations
- support&eacute;es</link> de ce guide d'installation pour v&eacute;rifiez que votre
- mat&eacute;riel est effectivement compatible avec FreeBSD.</para>
-
- <para>Si votre mat&eacute;riel est support&eacute;, r&eacute;initialisez l'ordinateur et tapez
- <literal>-c</literal> quand l'invite <prompt>Boot:</prompt> s'affiche.
- FreeBSD passe alors en mode configuration, gr&acirc;ce auquel vous pouvez
- donner des indications sur votre mat&eacute;riel. Le noyau FreeBSD de la
- disquette d'installation fait l'hypoth&egrave;se que la plupart des dispositifs
- mat&eacute;riels utilisent la configuration par d&eacute;faut du fabricant en termes
- d'IRQ, adresses d'E/S et canaux DMA. Si vous avez reconfigur&eacute; votre
- mat&eacute;riel, il y a de fortes chances que vous devrez utiliser l'option
- <option>-c</option> au d&eacute;marrage pour dire &agrave; FreeBSD &agrave; quelle adresse se trouvent
- vos cartes.</para>
-
- <para>Il peut arriver que le test d'un mat&eacute;riel qui n'est pas install&eacute;
- entra&icirc;ne l'&eacute;chec du test ult&eacute;rieur d'un mat&eacute;riel qui lui est bien l&agrave;.
- Dans ce cas, le test du(des) pilote(s) en conflit doit &ecirc;tre
- d&eacute;sactiv&eacute;.</para>
-
- <warning>
- <para>Ne d&eacute;sactivez aucun des p&eacute;riph&eacute;riques dont vous aurez besoin
- pendant l'installation, votre &eacute;cran (<devicename>sc0</devicename>)
- par exemple.</para>
- </warning>
-
- <para>En mode configuration, vous pouvez:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Avoir la liste des pilotes de p&eacute;riph&eacute;riques inclus dans
- le noyau.</para>
- </listitem>
-
- <listitem>
- <para>D&eacute;sactiver les pilotes de p&eacute;riph&eacute;riques pour les mat&eacute;riels
- que vous n'avez pas.</para>
- </listitem>
-
- <listitem>
- <para>Changer les IRQs, DRQs, adresses des ports d'E/S utilis&eacute;es par
- un pilote de p&eacute;riph&eacute;rique.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Sous l'invite <prompt>config&gt;</prompt>, tapez
- <command>help</command> pour plus d'informations sur les commandes
- disponibles. Une fois que vous avez ajust&eacute; votre noyau pour qu'il
- configure correctement votre mat&eacute;riel, tapez <command>quit</command> &agrave;
- l'invite <prompt>config&gt;</prompt> pour continuer le processus de
- d&eacute;marrage avec la nouvelle configuration.</para>
-
- <para>Une fois FreeBSD install&eacute;, les modifications que vous avez fait en
- mode configuration seront d&eacute;finitives, vous n'aurez pas &agrave; reconfigurer
- le noyau &agrave; chaque red&eacute;marrage. Cependant, m&ecirc;me dans ce cas, il y a des
- chances que vous vouliez recompiler un noyau sur-mesure pour optimiser
- les performances de votre syst&egrave;me. Reportez-vous &agrave; la section
- <link linkend="kernelconfig" >Configurer le noyau de FreeBSD</link>
- pour plus d'informations sur la g&eacute;n&eacute;ration de noyaux sur-mesure.</para>
-
- <sect1 id="install-hw">
- <title>Configurations support&eacute;es</title>
-
- <para>FreeBSD fonctionne avec sur une grande vari&eacute;t&eacute; de PC &agrave; bus ISA,
- VLB, EISA et PCI, en commen&ccedil;ant aux machines de classe 386sx (bien
- que le 386sx ne soit pas conseill&eacute;). Il y a un support g&eacute;n&eacute;rique pour
- les disques IDE et ESDI, et le support de divers contr&ocirc;leurs SCSI,
- cartes r&eacute;seau et s&eacute;rie, est aussi inclus.</para>
-
- <para>Il faut un minimum de 4Mo de RAM pour faire tourner FreeBSD. Pour
- utiliser le gestionnaire graphique X Window System, un minimum de 8Mo
- de RAM est recommand&eacute;.</para>
-
- <para>Voici une liste de contr&ocirc;leurs de disques et de cartes Ethernet
- qui fonctionnent actuellement avec FreeBSD. D'autres configurations
- peuvent parfaitement marcher, je n'ai simplement pas eu d'indications
- &agrave; leur sujet.</para>
-
- <sect2>
- <title>Contr&ocirc;leurs de disque</title>
-
- <itemizedlist>
-
- <listitem>
- <para>WD1003 (n'importe quel MFM/RLL g&eacute;n&eacute;rique),</para>
- </listitem>
-
- <listitem>
- <para>WD1007 (n'importe quel IDE/ESDI g&eacute;n&eacute;rique),</para>
- </listitem>
-
- <listitem>
- <para>IDE,</para>
- </listitem>
-
- <listitem>
- <para>ATA,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leur SCSI Adaptec 1505 ISA,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Adaptec ISA s&eacute;rie 152x,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Adaptec 1535 ISA,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Adaptec ISA s&eacute;rie 154x,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Adaptec EISA s&eacute;rie 174x en mode
- standard et &eacute;tendu.</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Adaptec s&eacute;ries 274x/284x/2940/2940U/3940 (Narrow/Wide/Twin) EISA/VLB/PCI,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs Adaptec SCSI AIC7850 sur la carte m&egrave;re,</para>
- </listitem>
-
- <listitem>
- <para>Cartes &agrave; base d'Adaptec, dont les cartes SCSI
- AHA-152x et SoundBlaster,</para>
-
- <note>
- <para>Vous ne pouvez pas d&eacute;marrer le syst&egrave;me avec les cartes
- SoundBlaster car elles n'ont pas de BIOS int&eacute;gr&eacute;, qui est
- indispensable pour affecter au p&eacute;riph&eacute;rique de d&eacute;marrage
- les vecteurs d'E/S du BIOS syst&egrave;me. Elles sont cependant
- parfaitement utilisables avec les lecteurs de bandes et de
- CD-ROMs externes, etc. C'est aussi vrai des autres cartes &agrave;
- base d'AIC-6x60 sans ROM de d&eacute;marrage. Certains syst&egrave;mes
- ont une ROM de d&eacute;marrage, ce qui est g&eacute;n&eacute;ralement signal&eacute;
- par un message &agrave; la mise sous tension ou &agrave; la
- r&eacute;initialisation du syst&egrave;me. Consultez la documentation de
- votre syst&egrave;me ou de votre carte pour plus de
- d&eacute;tails.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Buslogic 545S &amp; 545c,</para>
-
- <note>
- <para>Buslogic s'appelait autrefois
- &ldquo;Bustek&rdquo;,</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Buslogic 445S/445c VLB,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Buslogic 742A/747S/747c EISA,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leur SCSI Buslogic 946c PCI,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leur SCSI Buslogic 956c PCI,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI NCR
- 53C810/53C815/53C825/53C860/53C875 PCI,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI NCR5380/NCR53400
- (&ldquo;ProAudio Spectrum&rdquo;),</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leur SCSI DTC 3290 EISA en mode &eacute;mulation
- 1542,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI UltraStor 14F/24F/34F,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Seagate ST01/02,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI Future Domain s&eacute;ries 8xx/950,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leur SCSI WD7000.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Le support int&eacute;gral des p&eacute;riph&eacute;riques
- SCSI-I &amp; SCSI-II, y compris disques, lecteurs de bandes
- (dont DAT) et lecteurs de CD-ROMs, est inclus pour tous les
- contr&ocirc;leurs SCSI support&eacute;s.</para>
-
- <para>Les lecteurs de CD-ROMs suivants sont actuellement
- support&eacute;s:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>SoundBlaster SCSI et ProAudio Spectrum SCSI (<literal>cd</literal>),</para>
- </listitem>
-
- <listitem>
- <para>Interface propri&eacute;taire Mitsumi (tous mod&egrave;les) (<literal>mcd</literal>),</para>
- </listitem>
-
- <listitem>
- <para>Interface propri&eacute;taire Matsushita/Panasonic (Creative)
- CR-562/CR-563 (<literal>matcd</literal>),</para>
- </listitem>
-
- <listitem>
- <para>Interface propri&eacute;taire
- Sony(<literal>scd</literal>),</para>
- </listitem>
-
- <listitem>
- <para>Interface ATAPI IDE (exp&eacute;rimentale et doit &ecirc;tre consid&eacute;r&eacute;e
- de niveau ALPHA!) (<literal>wcd</literal>).</para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
-
- <sect2 id="install-nics">
- <title>Cartes Ethernet</title>
-
- <itemizedlist>
-
- <listitem>
- <para>Cartes Allied-Telesis AT1700 et RE2000,</para>
- </listitem>
-
- <listitem>
- <para>Interface Ethernet SMC Elite 16 WD8013, et la plupart des
- clones &agrave; base de WD8003E, WD8003EBT, WD8003W, WD8013W,
- WD8003S, WD8003SBT et WD8013EBT. Les cartes &agrave; base de SMC
- Elite Ultra et 9432TX sont aussi support&eacute;es,</para>
- </listitem>
-
- <listitem>
- <para>DEC EtherWORKS III NICs (&ldquo;<foreignphrase>Network
- Interface Card</foreignphrase>&rdquo;&nbsp;-&nbsp;carte
- d'interface r&eacute;seau) (DE203, DE204, et DE205),</para>
- </listitem>
-
- <listitem>
- <para>DEC EtherWORKS II NICs (DE200, DE201, DE202, et
- DE422),</para>
- </listitem>
-
- <listitem>
- <para>NICs &agrave; base de DEC DC21040/DC21041/DC21140:</para>
- <itemizedlist>
-
- <listitem>
- <para>ASUS PCI-L101-TB,</para>
- </listitem>
-
- <listitem>
- <para>Accton ENI1203,</para>
- </listitem>
-
- <listitem>
- <para>Cogent EM960PCI,</para>
- </listitem>
-
- <listitem>
- <para>Compex CPXPCI/32C,</para>
- </listitem>
-
- <listitem>
- <para>D-Link DE-530,</para>
- </listitem>
-
- <listitem>
- <para>DEC DE435,</para>
- </listitem>
-
- <listitem>
- <para>Danpex EN-9400P3,</para>
- </listitem>
-
- <listitem>
- <para>JCIS Condor JC1260,</para>
- </listitem>
-
- <listitem>
- <para>Kingston KNE100TX,</para>
- </listitem>
-
- <listitem>
- <para>Linksys EtherPCI,</para>
- </listitem>
-
- <listitem>
- <para>Mylex LNP101,</para>
- </listitem>
-
- <listitem>
- <para>SMC EtherPower 10/100 (Mod&egrave;le 9332),</para>
- </listitem>
-
- <listitem>
- <para>SMC EtherPower (Mod&egrave;le 8432),</para>
- </listitem>
-
- <listitem>
- <para>SMC EtherPower (2),</para>
- </listitem>
-
- <listitem>
- <para>Zynx ZX314,</para>
- </listitem>
-
- <listitem>
- <para>Zynx ZX342.</para>
- </listitem>
-
- </itemizedlist>
-
- </listitem>
-
- <listitem>
- <para>NICs DEC FDDI (DEFPA/DEFEA),</para>
- </listitem>
-
- <listitem>
- <para>Fujitsu FMV-181 et FMV-182,</para>
- </listitem>
-
- <listitem>
- <para>Fujitsu MB86960A/MB86965A,</para>
- </listitem>
-
- <listitem>
- <para>Intel EtherExpress,</para>
- </listitem>
-
- <listitem>
- <para>Intel EtherExpress Pro/100B 100Mbit,</para>
- </listitem>
-
- <listitem>
- <para>Isolan AT 4141-0 (16 bit),</para>
- </listitem>
-
- <listitem>
- <para>Isolink 4110 (8 bit),</para>
- </listitem>
-
- <listitem>
- <para>Interface r&eacute;seau sans fil Lucent WaveLAN,</para>
- </listitem>
-
- <listitem>
- <para>Interface Ethernet Novell NE1000, NE2000, et NE2100,</para>
- </listitem>
-
- <listitem>
- <para>Cartes 3Com 3C501,</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C503 Etherlink II,</para>
- </listitem>
-
- <listitem>
- <para>3Com 3c505 Etherlink/+,</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C507 Etherlink 16/TP,</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III,</para>
- </listitem>
-
- <listitem>
- <para>3Com 3C590, 3C595 Etherlink III,</para>
- </listitem>
-
- <listitem>
- <para>Cartes 3Com 3C90x,</para>
- </listitem>
-
- <listitem>
- <para>HP PC Lan Plus (27247B et 27252A),</para>
- </listitem>
-
- <listitem>
- <para>Cartes Ethernet Toshiba,</para>
- </listitem>
-
- <listitem>
- <para>Les cartes Ethernet PCMCIA d'IBM et National
- Semiconductor sont aussi support&eacute;es.</para>
- </listitem>
-
- </itemizedlist>
-
- <note>
- <para>FreeBSD ne supporte pas actuellement les fonctionnalit&eacute;s
- PnP (<foreignphrase>plug-n-play</foreignphrase>) de
- certaines cartes Ethernet. Si votre carte est PnP et vous pose des
- probl&egrave;mes, essayez de d&eacute;sactiver ses fonctionnalit&eacute;s PnP.</para>
- </note>
- </sect2>
-
- <sect2 id="install-misc">
- <title>P&eacute;riph&eacute;riques divers</title>
-
- <itemizedlist>
-
- <listitem>
- <para>Carte AST 4 ports s&eacute;rie avec IRQ partag&eacute;e,</para>
- </listitem>
-
- <listitem>
- <para>Carte ARNET 8 ports s&eacute;rie avec IRQ partag&eacute;e,</para>
- </listitem>
-
- <listitem>
- <para>Carte BOCA IOAT66 6 ports s&eacute;rie avec IRQ partag&eacute;e,</para>
- </listitem>
-
- <listitem>
- <para>Carte BOCA 2016 16 ports s&eacute;rie avec IRQ partag&eacute;e,</para>
- </listitem>
-
- <listitem>
- <para>Carte s&eacute;rie Cyclades Cyclom-y,</para>
- </listitem>
-
- <listitem>
- <para>Carte s&eacute;rie STB 4 ports avec IRQ partag&eacute;e,</para>
- </listitem>
-
- <listitem>
- <para>Carte s&eacute;rie SDL Communications Riscom/8,</para>
- </listitem>
-
- <listitem>
- <para>Carte s&eacute;rie synchrone SDL Communications RISCom/N2 et
- N2pci,</para>
- </listitem>
-
- <listitem>
- <para>Carte s&eacute;rie synchrone grande vitesse Digiboard
- Sync/570i,</para>
- </listitem>
-
- <listitem>
- <para>Carte Decision-Computer Intl. &ldquo;Eight-Serial&rdquo;
- 8 ports s&eacute;rie avec IRQ partag&eacute;e,</para>
- </listitem>
-
- <listitem>
- <para>Cartes sons Adlib, SoundBlaster, SoundBlaster Pro,
- ProAudioSpectrum, Gravis UltraSound, Gravis UltraSound MAX
- et Roland MPU-401,</para>
- </listitem>
-
- <listitem>
- <para>Carte d'acquisition vid&eacute;o Matrox Meteor,</para>
- </listitem>
-
- <listitem>
- <para>Carte d'incrustation vid&eacute;o Creative Labs Video,</para>
- </listitem>
-
- <listitem>
- <para>Carte d'acquisition vid&eacute;o Omnimedia Talisman,</para>
- </listitem>
-
- <listitem>
- <para>Cartes d'acquisition vid&eacute;o &agrave; base de puce Brooktree
- BT848,</para>
- </listitem>
-
- <listitem>
- <para>Contr&ocirc;leurs d'alimentation X-10,</para>
- </listitem>
-
- <listitem>
- <para>Manette de jeu et haut-parleur PC.</para>
- </listitem>
-
- </itemizedlist>
-
-
- <para>FreeBSD n'est pas actuellement compatible avec le bus
- IBM microchannel (MCA).</para>
-
- </sect2>
- </sect1>
-
- <sect1>
- <title>Pr&eacute;parer l'installation</title>
-
- <para>Il y a un certain nombre de m&eacute;thodes pour installer FreeBSD. Les
- paragraphes qui suivent d&eacute;crivent ce qui doit &ecirc;tre fait dans chaque
- cas.</para>
-
- <sect2>
- <title>Avant d'installer &agrave; partir du CD-ROM</title>
-
- <para>Si votre lecteur de CD-ROMs n'est pas support&eacute;, passez s'il vous
- pla&icirc;t &agrave; la section <link linkend="install-msdos">Avant d'installer
- depuis une partition MS-DOS</link>.</para>
-
- <para>Il n'y a pratiquement rien &agrave; faire avant d'installer avec
- succ&eacute;s &agrave; partir des CD-ROMs FreeBSD de Walnut Creek (les CD-ROMs
- d'autres distributions marcheront sans doute aussi, bien que nous
- ne puissions l'affirmer, car nous n'intervenons en rien dans la
- fa&ccedil;on dont ils sont faits). Vous pouvez d&eacute;marrez l'installation
- par CD soit depuis DOS avec la proc&eacute;dure
- <filename>install.bat</filename> de Walnut Creek ou vous pouvez
- cr&eacute;ez une disquette de d&eacute;marrage avec la commande
- <filename>makeflp.bat</filename>.</para>
-
- <note>
- <para>Si vous utilisez FreeBSD 2.1-RELEASE et avez un CD-ROM IDE,
- servez-vous des proc&eacute;dures <filename>inst_ide.bat</filename> ou
- <filename>atapiflp.bat</filename> &agrave; la place.</para>
- </note>
-
- <para>Pour avoir l'interface la plus facile &agrave; utiliser (sous DOS),
- tapez <command>view</command>. Cela vous affichera un menu DOS
- qui vous guidera &agrave; travers toutes les options disponibles.</para>
-
- <para>Si vous cr&eacute;ez la disquette de d&eacute;marrage sur une machine UNIX,
- voyez <link linkend="install">le d&eacute;but de ce guide</link> pour
- avoir des exemples sur la fa&ccedil;on de cr&eacute;er une disquette de
- d&eacute;marrage.</para>
-
- <para>Une fois que vous avez d&eacute;marr&eacute; sous DOS ou avec la disquette,
- vous devriez pouvoir s&eacute;lectionner le CD-ROM comme support
- d'installation depuis le menu de s&eacute;lection du support. Vous n'aurez
- besoin de rien d'autre que du CD-ROM.</para>
-
- <para>Une fois que vous aurez termin&eacute; l'installation et red&eacute;marr&eacute;
- &agrave; partir du disque dur, vous pourrez monter quand vous voudrez le
- CD-ROM en tapant: <command>mount /cdrom</command></para>
-
- <para>Avant de sortir de nouveau le CD-ROM, notez qu'il faut d'abord
- taper: <command>umount /cdrom</command>. Ne le retirez pas
- simplement du lecteur!</para>
-
- <note>
- <para>Avant de commencer l'installation, v&eacute;rifiez que le CD-ROM est
- bien dans le lecteur, sans quoi le test avant installation ne le
- trouvera pas. C'est aussi vrai si vous voulez, d&egrave;s l'installation,
- ajouter automatiquement le CD-ROM &agrave; la
- configuration du syst&egrave;me (que vous vous en serviez comme support
- d'installation ou non).</para>
- </note>
-
- <para>Finalement, si vous voulez que les gens puissent installer
- FreeBSD par FTP directement depuis le CD-ROM de votre machine,
- c'est assez facile &agrave; mettre en oeuvre. Il vous suffit d'ajouter
- la ligne suivante au fichier de mots de passe (avec la commande
- <command>vipw</command>):</para>
-
- <programlisting>
-ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting>
-
- <para>Quiconque peut se connecter par le r&eacute;seau &agrave; votre machine (et
- est autoris&eacute; &agrave; y ouvrir une session) peut maintenant s&eacute;lectionner
- FTP comme support d'installation et taper:
- <userinput>ftp://<replaceable>votre
- machine</replaceable></userinput> apr&egrave;s avoir s&eacute;lectionn&eacute;
- &ldquo;Other&rdquo;&nbsp;-&nbsp;autres&nbsp;-&nbsp; dans le menu
- des sites ftp.</para>
-
- </sect2>
-
- <sect2>
- <title>Avant d'installer &agrave; partir de disquettes</title>
-
- <para>Si vous devez installer &agrave; partir de disquettes, soit parce que
- vous avez du mat&eacute;riel non support&eacute;, soit que vous aimiez vous compliquer
- la vie, vous devez d'abord pr&eacute;parer les disquettes
- n&eacute;cessaires.</para>
-
- <para>Il vous faudra, au minimum, autant de disquettes 1.2MB ou 1.44MB
- que n&eacute;cessaires pour y mettre tous les fichiers du r&eacute;pertoire
- <filename>bin</filename> (distribution binaire). Si vous pr&eacute;parez
- ces disquettes sous DOS, alors CES disquettes doit &ecirc;tre format&eacute;es
- avec la commande FORMAT de MS-DOS. Si vous utilisez Windows,
- servez-vous de la commande de formatage du gestionnaire de fichiers
- de Windows.</para>
-
- <para>Ne faites <emphasis>pas</emphasis> confiance aux disquettes
- pr&eacute;format&eacute;es en usine. Reformattez-les vous-m&ecirc;me, de fa&ccedil;on &agrave; &ecirc;tre
- s&ucirc;r. Nos utilisateurs nous ont, dans le pass&eacute;, signal&eacute; de nombreux
- probl&egrave;mes dus &agrave; des disquettes incorrectement format&eacute;es, ce qui
- explique pourquoi j'y insiste autant ici!</para>
-
- <para>Si vous cr&eacute;ez les disquettes sur une autre machine FreeBSD,
- ce n'est malgr&eacute; tout pas une mauvaise id&eacute;e de les formater bien
- que vous n'ayez pas besoin d'y mettre un syst&egrave;me de fichiers MS-DOS.
- Vous pouvez employer les commandes <command>disklabel</command> et
- <command>newfs</command> pour y mettre un syst&egrave;me de fichiers UFS &agrave;
- la place, comme le montre la s&eacute;quence de commandes suivantes (pour
- une disquette 3.5" 1.44MB):</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>fdformat -f 1440 fd0.1440</userinput>
-&prompt.root; <userinput>disklabel -w -r fd0.1440 floppy3</userinput>
-&prompt.root; <userinput>newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0</userinput>
- </screen>
- </informalexample>
-
-
- <note>
- <para>Utilisez <literal>fd0.1200</literal> et
- <literal>floppy5</literal> pour les disquettes 5.25" 1.2MB.</para>
- </note>
-
- <para>Vous pouvez alors les monter et y &eacute;crire comme sur n'importe
- quel autre syst&egrave;me de fichiers.</para>
-
- <para>Apr&egrave;s avoir format&eacute; les disquettes, il vous faudra y copier les
- fichiers. Les fichiers de la distribution sont scind&eacute;s en morceaux
- de taille telle que 5 d'entre eux tiennent sur une disquette 1.44MB
- ordinaire. Pr&eacute;parez les disquettes les unes apr&egrave;s les autres, y
- mettant sur chaque autant de fichiers que vous pouvez, jusqu'&agrave; ce
- que vous ayez recopi&eacute; toutes les distributions que vous voulez
- installer. Chaque distribution doit avoir son propre sous-r&eacute;pertoire
- sur la disquette, e.g.: <filename>a:\bin\bin.aa</filename>,
- <filename>a:\bin\bin.ab</filename>, et ainsi de suite.</para>
-
- <para>Une fois que vous en &ecirc;tes &agrave; l'&eacute;cran de s&eacute;lection du support
- d'installation, choisissez
- &ldquo;Floppy&rdquo;&nbsp;-&nbsp;disquette&nbsp;-&nbsp;et vous
- aurez ensuite des indications sur la marche &agrave; suivre.</para>
-
- </sect2>
-
- <sect2 id="install-msdos">
- <title>Avant d'installer depuis une partition MS-DOS</title>
-
- <para>Pour pr&eacute;parer l'installation depuis une partition MS-DOS, copiez
- les fichiers de la distribution dans un r&eacute;pertoire nomm&eacute;
- <filename>C:\FREEBSD</filename>. L'arborescence des r&eacute;pertoires du
- CD-ROM doit &ecirc;tre partiellement reproduite dans ce r&eacute;pertoire, je
- vous sugg&egrave;re donc d'utiliser la commande DOS
- <command>xcopy</command>.
- Par exemple, pour pr&eacute;parer une installation minimale de
- FreeBSD:</para>
-
- <informalexample>
- <screen><prompt>C:\&gt;</prompt> <userinput>MD C:\FREEBSD</userinput>
-<prompt>C:\&gt;</prompt> <userinput>XCOPY /S E:\BIN C:\FREEBSD\BIN\</userinput>
-<prompt>C:\&gt;</prompt> <userinput>XCOPY /S E:\MANPAGES C:\FREEBSD\MANPAGES\</userinput></screen>
- </informalexample>
-
- <para>En supposant que vous ayez de la place sur
- <devicename>C:</devicename> et que votre CD-ROM soit mont&eacute; sur
- <devicename>E:</devicename>.</para>
-
- <para>Copiez chaque distribution que vous voulez installer depuis
- MS-DOS (et pour laquelle vous avez de la place libre) dans
- <filename>C:\FREEBSD</filename>&nbsp;-&nbsp;la distribution
- <abbrev>BIN</abbrev> n'est que le minimum obligatoire.</para>
-
- </sect2>
-
- <sect2>
- <title>Avant d'installer &agrave; partir de bandes QIC/SCSI</title>
-
- <para>Installer &agrave; partir de bandes est probablement la m&eacute;thode la plus
- simple, mis &agrave; part l'installation en ligne avec FTP ou depuis le
- CD-ROM. Le programme d'installation s'attend &agrave; ce que les fichiers
- soient simplement archiv&eacute;s avec <command>tar</command> sur la bande,
- donc, apr&egrave;s avoir r&eacute;cup&eacute;r&eacute; tous les fichiers des distributions qui
- vous int&eacute;ressent, recopiez-les par <command>tar</command> avec une
- commande comme:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput>
-&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen>
- </informalexample>
-
-
- <para>Quand vous installez, vous devez aussi vous assurer qu'il y a
- assez de place dans un r&eacute;pertoire temporaire (que vous pourrez
- choisir) pour y mettre le contenu <emphasis>entier</emphasis> de la
- bande que vous avez cr&eacute;&eacute;e. Vous devez donc vous attendre &agrave; avoir
- besoin d'autant d'espace de stockage temporaire que vous avez mis
- de donn&eacute;es sur la bande.</para>
-
- <note>
- <para>Au moment d'installer, la bande doit &ecirc;tre dans le lecteur
- <emphasis>avant</emphasis> de d&eacute;marrer avec la disquette. Sinon,
- les tests risquent de ne pas la trouver.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Avant d'installer via le r&eacute;seau</title>
-
- <para>Vous pouvez installer en r&eacute;seau avec trois sortes de
- communications:</para>
-
- <variablelist>
- <varlistentry><term>Port s&eacute;rie:</term>
- <listitem>
- <para>SLIP ou PPP,</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Port parall&egrave;le:</term>
-
- <listitem>
- <para>PLIP (c&acirc;ble &ldquo;laplink&rdquo;),</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ethernet:</term>
-
- <listitem>
- <para>Contr&ocirc;leur Ethernet standard (y compris certains
- contr&ocirc;leurs PCMCIA).</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Le support SLIP est assez rudimentaire et essentiellement
- limit&eacute; aux lignes directes. Les liaisons doivent &ecirc;tre directes car
- la proc&eacute;dure d'installation SLIP n'offre pas actuellement de
- possibilit&eacute; de connexion t&eacute;l&eacute;phonique; cette fonctionnalit&eacute; existe
- avec l'utilitaire PPP, qu'il faut utiliser de pr&eacute;f&eacute;rence &agrave; SLIP
- chaque fois que c'est possible.</para>
-
- <para>Si vous utilisez un modem, PPP est certainement votre seul
- choix. Veillez &agrave; avoir sous la main les informations concernant
- votre fournisseur d'acc&egrave;s car vous en aurez besoin assez t&ocirc;t dans
- la proc&eacute;dure d'installation. Vous devrez savoir comment appeler
- votre fournisseur d'acc&egrave;s Internet en utilisant les &ldquo;commandes
- AT&rdquo; propres &agrave; votre modem, car le programme d'appel PPP ne
- fournit qu'un &eacute;mulateur de terminal tr&eacute;s simplifi&eacute;. Si vous utilisez
- PAP ou CHAP, vous devrez taper les commandes <command>set
- authname</command> et <command>set authkey</command> avant de taper
- <command>term</command>. Reportez-vous aux sections concernant PPP
- int&eacute;gr&eacute; au noyau du <link linkend="userppp">manuel</link> ou de la
- <ulink url="&url.faq;index.html">FAQ</ulink>
- pour plus d'informations. Si vous avez des probl&egrave;mes, connectez-vous
- directement &agrave; l'&eacute;cran avec la commande <command>set log local
- ...</command>.</para>
-
- <para>Si vous disposez d'une liaison directe &agrave; une autre machine
- FreeBSD (2.0R ou ult&eacute;rieur), vous pouvez aussi envisager
- l'installation avec un c&acirc;ble &ldquo;laplink&rdquo; sur le port
- parall&egrave;le, la vitesse de transmission est sup&eacute;rieure &agrave; celle que
- l'on obtient habituellement avec une liaison s&eacute;rie, ce qui acc&eacute;l&egrave;re
- l'installation.</para>
-
- <para>Finalement, pour une installation en r&eacute;seau la plus rapide
- possible, une carte Ethernet est toujours un bon choix! FreeBSD
- supporte la plupart des cartes Ethernet PC courantes. Il y a une
- liste des cartes Ethernet support&eacute;es (et du param&egrave;trage requis)
- &agrave; la section <link linkend="install-hw">Configurations
- support&eacute;es</link>.
- Si vous utilisez l'une des cartes Ethernet PCMCIA suport&eacute;es, ayez
- soin de la mettre en place <emphasis>avant</emphasis> de mettre le
- portable sous tension! FreeBSD ne supporte malheureusement pas
- encore le branchement &agrave; chaud des cartes PCMCIA pendant
- l'installation.</para>
-
- <para>Vous devrez aussi conna&icirc;tre votre adresse IP sur le r&eacute;seau, le
- masque de r&eacute;seau pour votre classe d'adresses et le nom de votre
- machine. Votre administrateur syst&egrave;me peut vous dire quelles
- valeurs vous devez utiliser pour votre configuration r&eacute;seau
- particuli&egrave;re. Si vous devez r&eacute;f&eacute;rencer d'autres machines par leur
- nom plut&ocirc;t que par leurs adresses IP, vous devrez aussi conna&icirc;tre
- un serveur de noms et peut-&ecirc;tre l'adresse d'une passerelle (si vous
- utilisez PPP, c'est l'adresse IP de votre fournisseur d'acc&egrave;s) pour
- acc&egrave;der &agrave; ce serveur. Si vous n'avez pas les r&eacute;ponses &agrave; toutes ces
- questions, vous devriez vraiment en discuter
- <emphasis>d'abord</emphasis> avec votre administrateur syst&egrave;me,
- avant de vous lancer dans ce type d'installation.</para>
-
- <para>Une fois que vous avez une liaison d'un type ou l'autre qui
- fonctionne, l'installation peut continuer avec NFS ou FTP.</para>
-
- <sect3>
- <title>Pr&eacute;parer l'installation par NFS</title>
-
- <para>L'installation par NFS est assez directe: copiez simplement
- les fichiers de la distribution de FreeBSD que vous voulez quelque
- part sur le serveur et mentionnez ce r&eacute;pertoire au moment de
- s&eacute;lectionner le support NFS.</para>
-
- <para>Si le serveur n'accepte que les acc&egrave;s sur les &ldquo;ports
- privil&eacute;gi&eacute;s&rdquo; (ce qui est g&eacute;n&eacute;ralement par d&eacute;faut le cas sur
- les stations de travail Sun), vous devrez le pr&eacute;ciser dans le
- menus des &ldquo;Options&rdquo; pour que l'installation puisse
- continuer.</para>
-
- <para>Si vous avez une carte Ethernet de mauvaise qualit&eacute; et des
- vitesses de transfert tr&egrave;s faibles, vous devrez peut-&ecirc;tre aussi
- positionner l'indicateur appropri&eacute; dans ce menu.</para>
-
- <para>Pour que l'installation par NFS fonctionne, le serveur doit
- pouvoir monter des sous-r&eacute;pertoires, e.g., si le r&eacute;pertoire pour
- votre distribution de FreeBSD &rel.current; est
- <filename>ziggy:/usr/archive/stuff/FreeBSD</filename>, alors
- <hostid>ziggy</hostid> doit autoriser le montage de
- <filename>/usr/archive/stuff/FreeBSD</filename>, et non simplement
- de <filename>/usr</filename> ou
- <filename>/usr/archive/stuff</filename>.</para>
-
- <para>Dans le fichier <filename>/etc/exports</filename> de FreeBSD,
- on l'autorise avec l'option <option>-alldirs</option>. Il peut y
- avoir d'autres conventions avec d'autres serveurs NFS. Si le
- serveur vous envoie des messages
- <errortype>Permission Denied</errortype>, il est probable que
- c'est parce que vous n'avez pas activ&eacute; correctemment cette
- fonctionnalit&eacute;.</para>
-
- </sect3>
-
- <sect3>
- <title>Pr&eacute;parer l'Installation par FTP</title>
-
- <para>L'installation par FTP peut se faire &agrave; partir de n'importe
- quel site miroir sur lequel il y a une version suffisamment
- &agrave; jour de FreeBSD &rel.current;. Le menu des sites FTP propose
- un choix raisonnable de sites pour &agrave; peu pr&egrave;s n'importe quel
- endroit du globe.</para>
-
- <para>Si vous voulez installer depuis une autre site FTP qui n'est
- pas list&eacute; dans le menu, ou avez des difficult&eacute;s &agrave; configurer
- correctement votre serveur de noms, vous pouvez aussi pr&eacute;ciser
- l'URL de votre choix en s&eacute;lectionnant l'option
- &ldquo;Other&rdquo;&nbsp;-&nbsp;autre&nbsp;-&nbsp;de
- ce menu. Vous pouvez aussi donner
- directement l'adresse IP. Ceci par exemple fonctionnerait en
- l'absence d'un serveur de noms:</para>
-
- <informalexample>
- <screen>ftp://165.113.121.81/pub/FreeBSD/&rel.current;-RELEASE</screen>
- </informalexample>
-
- <para>Il y a deux m&eacute;thodes d'installation par FTP:</para>
-
- <variablelist>
- <varlistentry><term>FTP actif</term>
- <listitem>
- <para>Utilise le mode &ldquo;Actif&rdquo; pour tous les
- transferts FTP. Cela ne
- marchera pas derri&egrave;re un coupe-feu, mais fonctionnera
- avec les serveurs ftp anciens qui ne supportent pas
- encore le mode passif. Si votre connexion se bloque
- en mode passif (qui est le mode par d&eacute;faut), essayez cette
- m&eacute;thode!</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>FTP passif</term>
-
- <listitem>
- <para>Utilise le mode &ldquo;Passif&rdquo; pour tous les
- transferts FTP. Cela permet de passer les coupe-feux qui
- n'autorisent pas les connexions entrantes sur des ports
- non privil&eacute;gi&eacute;s.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <note>
- <para>Ne confondez pas mode actif et passif et connexion mandat&eacute;e,
- quand un serveur mandataire &eacute;coute et transmet les requ&ecirc;tes
- FTP!</para>
- </note>
-
- <para>Avec un serveur FTP mandataire, vous devez habituellement
- donner le nom du serveur r&eacute;el accol&eacute; au nom d'utilisateur, apr&egrave;s
- une @. Le serveur mandataire passe alors pour le serveur r&eacute;el.
- Imaginons que vous vouliez installer depuis
- <hostid role="fqdn">ftp.freebsd.org</hostid>, via le serveur FTP
- mandataire <hostid role="fqdn">foo.bar.com</hostid>, qui &eacute;coute
- sur le port 1234.</para>
-
- <para>Dans ce cas, vous allez dans le menu des options, donnez comme
- nom d'utilisateur <username>ftp@ftp.freebsd.org</username>, et
- comme mot de passe votre adresse de courrier &eacute;lectronique. Comme
- support d'installation, vous pr&eacute;cisez FTP (ou FTP passif, si le
- serveur mandataire l'accepte) et comme URL
- <literal>ftp://foo.bar.com:1234/pub/FreeBSD</literal>.</para>
-
- <para><filename>/pub/FreeBSD</filename> sur
- <hostid role="fqdn">ftp.freebsd.org</hostid>
- est alors mandat&eacute; par
- <hostid role="fqdn">foo.bar.com</hostid>, ce qui vous
- permet d'installer depuis <emphasis>cette</emphasis>
- machine (qui va elle chercher les fichiers sur
- <hostid role="fqdn">ftp.freebsd.org</hostid> au fur et &agrave; mesure
- des besoins de votre installation).</para>
-
- </sect3>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Installer FreeBSD</title>
-
- <para>Une fois que vous avez &eacute;tabli quelles sont les &eacute;tapes
- pr&eacute;liminaires appropri&eacute;es &agrave; votre m&eacute;thode
- d'installation, vous devriez arriver &agrave; installer FreeBSD sans autre probl&egrave;me.</para>
-
- <para>Dans le cas contraire, revenez sur vos pas et relisez les
- sections
- ci-dessus qui s'applique &agrave; la m&eacute;thode que vous essayer d'utiliser, il
- y a peut-&ecirc;tre une indication utile qui vous a &eacute;chapp&eacute; &agrave; la premi&egrave;re
- lecture. Si vous avez des probl&egrave;mes avec votre mat&eacute;riel ou si FreeBSD
- refuse de d&eacute;marrer, lisez le Guide du Mat&eacute;riel fourni sur la
- disquette de d&eacute;marrage pour avoir une liste de solutions
- &eacute;ventuelles.</para>
-
- <para>La disquette de d&eacute;marrage de FreeBSD contient toute la
- documentation en ligne dont vous devriez avoir besoin pour
- naviguer dans la proc&eacute;dure d'installation, et si tel n'est
- pas le cas, nous aimerions savoir ce que vous avez trouv&eacute; le
- moins clair. Adressez vos remarques &agrave; &a.doc;. Nous souhaitons
- que le programme d'installation de FreeBSD
- (<command>sysinstall</command>) soit suffisamment auto-document&eacute;
- pour que les fastidieux guides d'installation &ldquo;pas-&agrave;-pas&rdquo;
- deviennent inutiles. Cela nous prendra peut-&ecirc;tre un peu de temps pour
- y arriver, mais c'est notre objectif!</para>
-
- <para>En attendant, la &ldquo;s&eacute;quence typique d'installation
- suivante&rdquo; vous sera peut-&ecirc;tre utile:</para>
-
- <orderedlist>
-
- <listitem>
- <para>D&eacute;marrez avec la disquette d'installation. Apr&egrave;s une
- s&eacute;quence d'initialisation qui peut prendre de 30 secondes &agrave;
- 3 minutes, selon votre mat&eacute;riel, vous devriez obtenir le
- menu des choix initiaux. Si votre machine ne d&eacute;marre pas ou
- se bloque, lisez la section Questions &amp; R&eacute;ponses du Guide
- du Mat&eacute;riel pour en conna&icirc;tre les causes possibles.</para>
- </listitem>
-
- <listitem>
- <para>Appuyez sur F1. Vous devriez obtenir quelques indications de
- base sur l'utilisation du syst&egrave;me de menus et la fa&ccedil;on d'y
- naviguer. Si vous ne vous &ecirc;tes pas encore servi de ces menus,
- lisez <emphasis>s'il vous pla&icirc;t</emphasis> ces indications en
- d&eacute;tail!</para>
- </listitem>
-
- <listitem>
- <para>S&eacute;lectionnez &ldquo;Options&rdquo; et d&eacute;finissez vos
- pr&eacute;f&eacute;rences.</para>
- </listitem>
-
- <listitem>
- <para>Choisissez l'installation &ldquo;Novice&rdquo;,
- &ldquo;Custom&rdquo;&nbsp;-&nbsp;personnalis&eacute;e&nbsp;-&nbsp;ou
- &ldquo;Express&rdquo;, selon que vous pr&eacute;f&eacute;rez que la
- proc&eacute;dure d'installation vous guide au long des &eacute;tapes d'une
- installation typique, vous donne une grande latitude dans le
- choix des &eacute;tapes successives, ou aille au plus rapide (en
- utilisant des options par d&eacute;faut &agrave; chaque fois que c'est
- possible). Si vous n'avez encore jamais utilis&eacute; FreeBSD,
- la m&eacute;thode d'installation &ldquo;Novice&rdquo; est vivement
- recommand&eacute;e.</para>
- </listitem>
-
- <listitem>
- <para>Le menu final vous permet de configurer encore un peu plus
- votre installation en vous donnant acc&egrave;s par menus &agrave; diverses
- options syst&egrave;me. Certains choix, comme ceux qui concernent le
- r&eacute;seau, peuvent &ecirc;tre
- particuli&egrave;rement utiles si vous avez install&eacute; depuis le CD-ROM,
- une bande ou des disquettes et n'avez pas encore configur&eacute; vos
- interfaces r&eacute;seau (si vous en avez). Si vous les configurez
- maintenant correctement, votre machine FreeBSD sera sur le
- r&eacute;seau d&egrave;s le prochain red&eacute;marrage depuis le disque
- dur.</para>
- </listitem>
-
- </orderedlist>
-
- </sect1>
-
- <sect1>
- <title>Questions et R&eacute;ponses pour les utilisateurs MS-DOS</title>
-
- <para>De nombreux utilisateurs veulent installer FreeBSD sur des PCs
- qui fonctionnent sous MS-DOS. Voici quelques questions fr&eacute;quentes
- concernant l'installation de FreeBSD sur de tels syst&egrave;mes.</para>
-
- <para><emphasis>A l'aide! Je n'ai plus de place! Faut-il que je
- commence par tout effacer?</emphasis></para>
-
- <para>Si votre machine tourne d&eacute;j&agrave; sous MS-DOS et qu'il ne vous reste
- que peu ou pas de place pour installer FreeBSD, tout n'est pas perdu!
- L'utilitaire FIPS qui se trouve dans le r&eacute;pertoire
- <filename>tools</filename> du CDROM FreeBSD ou sur les diff&eacute;rents
- sites ftp vous sera probablement tr&egrave;s utile.</para>
-
- <para>FIPS vous permet de scinder en deux une partition MS-DOS
- existante, sans alt&eacute;rer le contenu de la partition originale, pour
- installer ensuite FreeBSD sur la seconde partition ainsi cr&eacute;&eacute;e; Vous
- d&eacute;fragmentez d'abord votre partition MS-DOS, avec l'utilitaire DEFRAG
- de DOS 6.xx ou les utilitaires Disque de Norton, puis utilisez FIPS.
- Il vous demandera les autres informations dont il a besoin. Vous
- pouvez ensuite red&eacute;marrer et installer sur la nouvelle
- &ldquo;tranche&rdquo; libre.
- Voyez le menu <emphasis>Distributions</emphasis> pour avoir une
- estimation de la place dont vous aurez besoin selon ce que vous
- voulez installer.</para>
-
- <para><emphasis>Puis-je utiliser des syst&egrave;mes de fichiers MS-DOS
- compress&eacute;s depuis FreeBSD?</emphasis></para>
-
- <para>Non. Si vous employez des utilitaires tels que Stacker(tm) ou
- DoubleSpace(tm), FreeBSD ne pourra utiliser que la partie du syst&egrave;me
- de fichiers que vous n'avez pas compress&eacute;e. Le reste appara&icirc;tra comme
- un seul gros fichier (le fichier empil&eacute;/r&eacute;duit). <emphasis>N'effacez
- pas ce fichier!</emphasis> Vous le regretteriez tr&egrave;s
- certainement!</para>
-
- <para>Il est probablement mieux de cr&eacute;er une autre partition MS-DOS non
- compress&eacute;e et de l'utiliser pour les &eacute;changes entre MS-DOS et
- FreeBSD.</para>
-
- <para><emphasis>Puis-je monter mes partitions MS-DOS
- &eacute;tendues?</emphasis></para>
-
- <para>Oui. Les partitions DOS &eacute;tendues sont r&eacute;f&eacute;renc&eacute;es apr&egrave;s les autres
- &ldquo;tranches&rdquo; par FreeBSD, exemple: votre disque
- <devicename>D:</devicename> peut &ecirc;tre appel&eacute;
- <filename>/dev/sd0s5</filename>, et votre disque
- <devicename>E:</devicename> <filename>/dev/sd0s6</filename>, et ainsi
- de suite. Nous supposons bien s&ucirc;r dans cet exemple que votre partition
- &eacute;tendue est sur le disque SCSI 0. Dans le cas des disques IDE,
- remplacez <filename>sd</filename> par la r&eacute;f&eacute;rence au disque
- <filename>wd</filename> appropri&eacute;e. A part cela, les partitions
- &eacute;tendues se montent exactement comme toutes les autres partitions DOS,
- e.g.:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mount -t msdos /dev/sd0s5 /dos_d</userinput></screen>
- </informalexample>
-
- <para><emphasis>Puis-je utiliser des binaires MS-DOS sous
- FreeBSD?</emphasis></para>
-
- <para>BSDI a l&eacute;gu&eacute; au monde BSD son &eacute;mulateur DOS, qui a &eacute;t&eacute; port&eacute; sous
- FreeBSD.</para>
-
- <para>Il y a aussi une belle application (du point de vue technique)
- disponible au
- <link linkend="ports">Catalogue des logiciels port&eacute;s</link>,
- qui s'appelle <command>pcemu</command> et qui vous permet d'utiliser
- nombre de programmes MS-DOS simples en mode texte en &eacute;mulant un
- processeur 8088.</para>
-
- </sect1>
- </chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/internals/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/internals/chapter.sgml
deleted file mode 100644
index 1f05f5a3b5..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/internals/chapter.sgml
+++ /dev/null
@@ -1,2141 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.8
--->
-
-<chapter id="internals">
- <title>Les &ldquo;internes&rdquo; de FreeBSD</title>
- &trans.a.haby;
-
- <sect1 id="booting">
- <title>Le processus de d&eacute;marrage</title>
-
- <para><emphasis>Contribution de &a.phk;. v1.1, 16 Avril
- 1995.</emphasis></para>
-
- <para>Le d&eacute;marrage de FreeBSD est essentiellement un processus en
- trois &eacute;tapes&nbsp;: charger le noyau, identifier le syst&egrave;me
- de fichiers racine et initialiser utilisateur. Cela autorise
- d'int&eacute;ressantes combinaisons d&eacute;crites plus loin.</para>
-
- <sect2>
- <title>Charger un noyau</title>
-
- <para>Nous disposons actuellement des trois m&eacute;canismes de base
- d&eacute;crits ci-dessous pour charger un noyau&nbsp;: ils transmettent
- tous des informations au noyau afin de l'aider &agrave; d&eacute;cider
- de ce qu'il doit faire ensuite.</para>
-
- <variablelist>
- <varlistentry>
- <term>Biosboot</term>
-
- <listitem>
- <para>Biosboot est notre &ldquo;code de d&eacute;marrage&rdquo;.
- Il consiste en deux fichiers qui seront copi&eacute;s sur les huit
- premiers kilo-octets de la disquette ou de la
- &ldquo;tranche&rdquo;&nbsp;-&nbsp;<foreignphrase>slice</foreignphrase>&nbsp;-&nbsp;du
- disque dur &agrave; partir de laquelle on d&eacute;marrera.</para>
-
- <para>Biosboot peut charger un noyau donn&eacute; par son nom dans
- un syst&egrave;me de fichiers FreeBSD.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Dosboot</term>
-
- <listitem>
- <para>Dosboot a &eacute;t&eacute; &eacute;crit par DI. Christian
- Gusenbauer, et c'est malheureusement actuellement l'un des
- quelques codes qui ne compilent pas sous FreeBSD, parce qu'il est
- &eacute;crit pour les compilateurs Microsoft.</para>
-
- <para>Dosboot peut charger un noyau depuis un fichier MS-DOS ou un
- syst&egrave;me de fichiers FreeBSD sur disque. Il essaye de
- n&eacute;gocier avec les divers et &eacute;tranges
- gestionnires de m&eacute;moire qui hantent les adresses hautes des
- syst&egrave;mes MS-DOS et les gagne en g&eacute;n&eacute;ral
- &agrave; sa cause.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Netboot</term>
-
- <listitem>
- <para>Netboot recherche une carte Ethernet support&eacute;e et
- utilise BOOTP, TFTP et NFS pour trouver un noyau permettant de
- d&eacute;marrer.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Identifier le syst&egrave;me de fichiers racine</title>
-
- <para>D&egrave;s que le noyau est charg&eacute; et que le code de
- d&eacute;marrage lui passe la main, le noyau s'initialise, il essaie de
- d&eacute;terminer quels sont les mat&eacute;riels install&eacute;s, et
- ainsi de suite; il lui faut ensuite trouver le syst&egrave;me de
- fichiers racine.</para>
-
- <para>Nous reconnaissons actuellement les types suivants de
- syst&egrave;mes de fichiers racine&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>UFS</term>
-
- <listitem>
- <para>C'est le type de syst&egrave;me de fichiers racine le plus
- habituel. Il peut &ecirc;tre sur disquette ou sur disque
- dur.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>MSDOS</term>
-
- <listitem>
- <para>Bien que ce soit techniquement possible, ce n'est pas
- particuli&egrave;rement utile, du fait de l'impossibilit&eacute;
- pour le syst&egrave;me de fichiers <acronym>FAT</acronym> de
- g&eacute;rer les liens, les fichiers sp&eacute;ciaux et autres
- particularit&eacute;s &ldquo;UNIX&rdquo;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>MFS</term>
-
- <listitem>
- <para>Il s'agit en r&eacute;lit&eacute; d'un syst&egrave;me de
- fichiers UFS int&eacute;gr&eacute; au noyau &agrave; la
- compilation de ce dernier. Cela signifie que le noyau n'a pas
- vraiment besoin de disque dur, disquette ou autre mat&eacute;riel
- pour s'ex&eacute;cuter.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CD9660</term>
-
- <listitem>
- <para>Cela permet d'utiliser un CD-ROM comme syst&egrave;me de
- fichiers racine.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NFS</term>
-
- <listitem>
- <para>Cela permet d'utiliser un serveur de fichiers comme
- syst&egrave;me de fichiers racine, essentiellement pour
- faire fonctionner une machine sans disque dur.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Initialiser l'environnement utilisateur</title>
-
- <para>Pour que les programmes utilisateur puissent s'ex&eacute;cuter, le
- noyau, quand la phase d'initialisation est termin&eacute;e, lance un
- processus de <literal>pid == 1</literal> et ex&eacute;cute
- un programme du syst&egrave;me de fichiers racine;, normalement
- <filename>/sbin/init</filename>.</para>
-
- <para>Vous pouvez remplacer <command>/sbin/init</command> par n'importe
- quel programme, tant que vous vous rappelez que&nbsp;:</para>
-
- <para>Il n'y a pas de stdin/out/err &agrave; moins que vous ne les ouvriez
- vous-m&ecirc;me. Si vous sortez du programme, la machine panique. La
- gestion des signaux par le processus de <literal>pid == 1</literal> est
- particuli&egrave;re &agrave; ce processus.</para>
-
- <para>Le programme <command>/stand/sysinstall</command> de la disquette
- d'installation est un exemple d'&ldquo;init&rdquo; adapt&eacute;.</para>
- </sect2>
-
- <sect2>
- <title>Combinaisons int&eacute;ressantes</title>
-
- <para>D&eacute;marrer un noyau contenant un syst&egrave;me de fichiers MFS
- avec un programme <filename>/sbin/init</filename> particulier
- qui...</para>
-
- <variablelist>
- <varlistentry>
- <term>A &mdash; En utilisant DOS</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>monte votre disque <filename>C:</filename> sous le
- r&eacute;pertoire <filename>/C:</filename></para>
- </listitem>
-
- <listitem>
- <para>attache le fichier sp&eacute;cial
- <filename>/dev/vn0</filename> au fichier
- <filename>C:/freebsd.fs</filename></para>
- </listitem>
-
- <listitem>
- <para>monte <filename>/dev/vn0</filename> sous
- <filename>/rootfs</filename></para>
- </listitem>
-
- <listitem>
- <para>cr&eacute;e les liens symboliques
- <filename>/rootfs/bin</filename> -&gt;
- <filename>/bin</filename>,
- <filename>/rootfs/etc</filename> -&gt;
- <filename>/etc</filename>,
- <filename>/rootfs/sbin</filename> -&gt;
- <filename>/sbin</filename> (etc.)</para>
- </listitem>
- </itemizedlist>
-
- <para>Vous faites maintenant tourner FreeBSD sans avoir
- repartitionn&eacute; votre disque dur...</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>B &mdash; En utilisant NFS</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>monte avec NFS votre
- <filename>serveur:~vous/FreeBSD</filename> sur
- <filename>/nfs</filename>, red&eacute;finit la racine comme
- <filename>/nfs</filename>&nbsp;-&nbsp;avec
- <citerefentry><refentrytitle>chroot</refentrytitle>
- <manvolnum>8</manvolnum></citerefentry>&nbsp;-&nbsp;et
- y ex&eacute;cute <filename>/sbin/init</filename></para>
- </listitem>
- </itemizedlist>
-
- <para>Vous faites maintenant tourner FreeBSD sans disque dur, bien
- que vous n'ayez pas le contr&ocirc;le du serveur NFS...</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>C &mdash; D&eacute;marre un serveur X</term>
-
- <listitem>
- <para>Vous avez maintenant un terminal X, bien plus efficace que X
- sous Windows, tellement lent que vous pouvez- voir- tout- ce
- qu'il- fait, alors que votre patron assure que cela est toujours
- mieux que de d&eacute;penser encore de l'argent en
- mat&eacute;riel.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>D &mdash; En utilisant une bande</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>copie <filename>/dev/rwd0</filename> sur un lecteur de
- bandes sur le r&eacute;seau ou sur un serveur de
- fichiers.</para>
- </listitem>
- </itemizedlist>
-
- <para>Vous avez finalement la sauvegarde que vous auriez d&ucirc;
- faire il y a un an d&eacute;j&agrave;...</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>E &mdash; Fonctionne
- comme coupe-feu&nbsp;/&nbsp;serveur Web&nbsp;/&nbsp;que sais-je
- encore...</term>
-
- <listitem>
- <para>C'est particuli&egrave;rement int&eacute;ressant parce que
- vous pouvez d&eacute;marrer &agrave; partir d'une disquette
- prot&eacute;g&eacute;e en &eacute;criture, et pouvez malgr&eacute;
- tout &eacute;crire sur votre syst&egrave;me de fichiers
- racine.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
-
- <sect1 id="memoryuse">
- <title>Utilisation de la m&eacute;moire du PC</title>
-
- <para><emphasis>Contribution de &a.joerg;. 16 Avril 1995.</emphasis></para>
-
- <para><emphasis>Une br&egrave;ve description de la mani&egrave;re dont
- FreeBSD utilise la m&eacute;moire sur les plates-formes
- i386</emphasis></para>
-
- <para>Le secteur de d&eacute;marrage est charg&eacute; &agrave; l'adresse
- <literal>0:0x7c00</literal>, et se reloge imm&eacute;diatement &agrave;
- l'adresse <literal>0x7c0:0</literal>. (Il n'y a rien de myst&eacute;rieux
- l&agrave;-dedans, c'est seulement un ajustement du registre
- <literal>%cs</literal>, effectu&eacute; par un
- <literal>ljmp</literal>.)</para>
-
- <para>Il charge ensuite les quinze premiers secteurs &agrave; l'adresse
- <literal>0x10000</literal> (segment <makevar>BOOTSEG</makevar> dans le
- <filename>Makefile</filename> de
- <citerefentry><refentrytitle>biosboot</refentrytitle></citerefentry>), et
- initialise la pile pour qu'elle travaille aux adresses en-dessous
- de <literal>0x1fff0</literal>. Il passe ensuite au point d'entr&eacute;e
- <literal>boot2</literal> de ce code, i.e. il se branche au-del&agrave; de
- lui-m&ecirc;me et de la table de partition (fictive), et ajuste le
- registre <literal>%cs</literal>&mdash;nous sommes alors encore en
- mode 16-bits.</para>
-
- <para><literal>boot2</literal> recherche le fichier de d&eacute;marrage, et
- examine son en-t&ecirc;te <filename>a.out</filename>. Il masque le point
- d'entr&eacute;e de ce fichier (habituellement
- <literal>0xf0100000</literal>) avec <literal>0x00ffffff</literal> et
- charge le code &agrave; l'adresse ainsi obtenue. Il est donc
- g&eacute;n&eacute;ralement charg&eacute; &agrave; l'adresse 1 MB
- (<literal>0x00100000</literal>). Pendant le chargement, le code va et
- vient entre le mode r&eacute;el et le mode prot&eacute;g&eacute;, pour
- utiliser le BIOS en mode r&eacute;el.</para>
-
- <para>Le code de d&eacute;marrage lui-m&ecirc;me utilise les
- s&eacute;lecteurs de segment <literal>0x18</literal> et
- <literal>0x20</literal> pour <literal>%cs</literal> et
- <literal>%ds/%es</literal> en mode prot&eacute;g&eacute;, et
- <literal>0x28</literal> pour revenir en mode r&eacute;el. Le noyau est
- finalement lanc&eacute; avec <literal>%cs</literal>
- <literal>0x08</literal> et <literal>%ds/%es/%ss</literal>
- <literal>0x10</literal>, qui constituent des descripteurs fictifs
- recouvrant la totalit&eacute; de l'espace d'adressage.</para>
-
- <para>Le noyau d&eacute;marre &agrave; l'adresse &agrave; laquelle il est
- charg&eacute;. Comme son &eacute;dition de liens a &eacute;t&eacute;
- effectu&eacute;e pour une autre adresse (haute), il doit ex&eacute;cuter
- du code <literal>PIC</literal> jusqu'&agrave; ce que la table de pages et
- le r&eacute;pertoire des pages soient correctement renseign&eacute;s, la
- pagination peut alors &ecirc;tre activ&eacute;e et le noyau
- s'ex&eacute;cuter &agrave; l'adresse pour laquelle il a &eacute;t&eacute;
- g&eacute;n&eacute;r&eacute;.</para>
-
- <para><emphasis>Contribution de &a.dg;. 16 Avril 1995.</emphasis></para>
-
- <para>Les pages physiques qui suivent imm&eacute;diatement le segment
- <literal>BSS</literal> du noyau contiennent le r&eacute;pertoire de pages
- de <literal>proc0</literal>, ses tables de pages et les
- pages utilisateur. Plus tard, quand le syst&egrave;me de
- m&eacute;moire virtuelle est initialis&eacute;, la m&eacute;moire
- physique entre <literal>0x1000-0x9ffff</literal> et la m&eacute;moire
- physique apr&egrave;s le noyau (<literal>text+data+bss+proc0+d'autres
- choses</literal>) est mise &agrave; disposition sous forme de pages de
- m&eacute;moire virtuelle ordinaires et ajout&eacute;e &agrave; la liste
- globales des pages libres.</para>
- </sect1>
-
- <sect1 id="dma">
- <title>L'acc&egrave;s direct &agrave; la
- m&eacute;moire&nbsp;-&nbsp;-<foreignphrase>DMA</foreignphrase>&nbsp;:
- Qu'est-ce que c'est et comment &ccedil;a marche</title>
-
- <para><emphasis>Copyright &copy; 1995,1997 &a.uhclem;, Tous Droits
- R&eacute;serv&eacute;s. 10 D&eacute;cembre 1996. Derni&egrave;re mise
- &agrave; jour le 8 Octobre 1997.</emphasis></para>
-
- <para>L'acc&egrave;s direct &agrave; la
- m&eacute;moire&nbsp;-&nbsp;<foreignphrase>Direct
- Memory Access (DMA)</foreignphrase>&nbsp;-&nbsp;est une technique qui
- permet que les mouvements de donn&eacute;es entre la m&eacute;moire et
- les p&eacute;riph&eacute;riques se fassent sans intervention de
- l'unit&eacute; centrale (<foreignphrase>CPU</foreignphrase>).</para>
-
- <para>L'impl&eacute;mentation de l'acc&egrave;s direct &agrave; la
- m&eacute;moire diff&egrave;re selon les architectures mat&eacute;rielles,
- nous limiterons donc la discussion &agrave; son impl&eacute;mentation sur
- l'ordinateur personnel IBM (<foreignphrase>PC</foreignphrase>), sur l'IBM
- PC/AT, ses successeurs et ses diff&eacute;rents clones.</para>
-
- <para>Le sous-syst&egrave;me DMA du PC repose sur le contr&ocirc;leur DMA
- Intel 8237. Ce contr&ocirc;leur g&egrave;re quatre canaux DMA qui peuvent
- &ecirc;tre programm&eacute;s s&eacute;par&eacute;ment et chacun de ces
- canaux peut &ecirc;tre le canal actif &agrave; un moment donn&eacute;. Ces
- canaux sont num&eacute;rot&eacute;s 0, 1, 2 et 3. Depuis le PC/AT, IBM a
- ajout&eacute; une seconde puce 8237, et num&eacute;rot&eacute; ces canaux
- 4, 5, 6 et 7.</para>
-
- <para>Le contr&ocirc;leur DMA d'origine (0,1, 2 et 3) effectue les
- transferts octet par octet. Le second contr&ocirc;leur DMA (4, 5, 6 et 7)
- effectue les transferts 16 bits par 16 bits, le premier octet &eacute;tant
- toujours un octet d'adresse paire. Les deux contr&ocirc;leurs sont des
- composants identiques, la diff&eacute;rence dans la taille des transferts
- vient du c&agrave;blage diff&eacute;rent du second
- contr&ocirc;leur.</para>
-
- <para>Il y a deux signaux &eacute;lectriques par canal sur le 8237,
- appel&eacute;s DRQ (<foreignphrase>Data Request</foreignphrase>) et -DACK
- (<foreignphrase>Data Acknowledge</foreignphrase>). Il y a des signaux suppl&eacute;mentaires dont les noms sont HRQ (<foreignphrase>Hold
- Request</foreignphrase>), HLDA (<foreignphrase>Hold
- Ackwnoledge</foreignphrase>), -EOP (<foreignphrase>End Of
- Process</foreignphrase>) et des signaux de contr&ocirc;le du bus -MEMR
- (<foreignphrase>Memory Read</foreignphrase>), -MEMW (<foreignphrase>Memory
- Write</foreignphrase>), -IOR (<foreignphrase>I/O Read</foreignphrase>) et
- IOW (<foreignphrase>I/O Write</foreignphrase>).</para>
-
- <para>Le contr&ocirc;leur DMA 8237 est un contr&ocirc;leur
- &ldquo;<foreignphrase>fly-by</foreignphrase>&rdquo;&nbsp;-&nbsp;transparent.
- Cela signifie que les donn&eacute;es transf&eacute;r&eacute;es ne
- transitent pas par la puce DMA et n'y sont pas m&eacute;moris&eacute;es.
- En cons&eacute;quence, le DMA ne peut effectuer de transferts qu'entre un
- port d'entr&eacute;e/sortie et la m&eacute;moire, pas entre deux ports
- d'entr&eacute;e/sortie ou deux adresses m&eacute;moire.</para>
-
- <note>
- <para>Le 8237 autorise l'interconnexion de deux de ses canaux pour
- permettre les op&eacute;rations DMA de m&eacute;moire &agrave;
- m&eacute;moire, en mode
- non-&ldquo;<foreignphrase>fly-by</foreignphrase>&rdquo;, mais nul dans
- l'industrie du PC n'utilise cette ressource rare de cette fa&ccedil;on,
- parce qu'il est plus rapide de transf&eacute;rer des donn&eacute;es
- entre deux adresses m&eacute;moire en passant par le processeur.</para>
- </note>
-
- <para>Dans l'architecture PC, chaque canal DMA est normalement activ&eacute;
- uniquement quand le mat&eacute;riel qui utilise le canal DMA en question
- demande un transfert en validant la ligne DRQ pour ce canal.</para>
-
- <sect2>
- <title>Un exemple de transfert DMA</title>
-
- <para>Voici un exemple des &eacute;tapes successives qui provoquent et
- effectuent un transfert DMA. Dans cet exemple, le contr&ocirc;leur
- du lecteur de disquette&nbsp;-&nbsp;<foreignphrase>floppy disk
- controller (FDC)</foreignphrase>&nbsp;-&nbsp;vient de lire un octet sur
- la disquette et demande au DMA de le ranger &agrave; l'adresse
- m&eacute;moire <literal>0x00123456</literal>. Le processus commence
- quand le FDC active le signal DRQ2 (la ligne DRQ pour le canal DMA
- num&eacute;ro 2) pour pr&eacute;venir le contr&ocirc;leur DMA.</para>
-
- <para>Le contr&ocirc;leur DMA s'aper&ccedil;oit que le signal DRQ2 est
- positionn&eacute; et s'assure que le canal DMA 2 est programm&eacute;
- et non-masqu&eacute; (activ&eacute;). Le contr&ocirc;leur DMA s'assure
- aussi qu'aucun autre canal DMA n'est actif ou ne demande &agrave;
- l'&ecirc;tre et poss&egrave;de une plus haute priorit&eacute;. Ces
- v&eacute;rifications faites, le DMA demande au processeur de
- lib&eacute;rer le bus pour pouvoir l'utiliser. Il le fait en activant
- le signal HRQ, envoy&eacute; au processeur.</para>
-
- <para>Le CPU d&eacute;tecte le signal HRQ et termine l'ex&eacute;cution de
- l'instruction en cours. D&egrave;s que le processeur est en mesure de
- lib&eacute;rer le bus, il le fait. Tous les signaux normalement
- g&eacute;n&eacute;r&eacute;s par le processeur (-MEMR, -MEMW, -IOR,
- -IOW et quelques autres) sont positionn&eacute;s dans un &eacute;tat
- interm&eacute;diaire (ni haut, ni bas), puis le CPU positionne le
- signal HDLA qui pr&eacute;vient le contr&ocirc;leur DMA qu'il a
- maintenant le contr&ocirc;le du bus.</para>
-
- <para>Selon le processeur, le CPU peut encore &ecirc;tre capable
- d'ex&eacute;cuter quelques instructions suppl&eacute;mentaires bien
- qu'il n'ait plus acc&egrave;s au bus, mais il peut aussi devoir
- attendre lorsqu'il arrive sur une instruction qui doit lire une
- donn&eacute;e en m&eacute;moire et que celle-ci ne se trouve pas dans le
- cache interne du processeur ou dans son
- canal&nbsp;-&nbsp;&ldquo;<foreignphrase>pipeline</foreignphrase>&rdquo;.</para>
-
- <para>Maintenant que le DMA &ldquo;a la main&rdquo;, il active ses signaux
- de sortie -MEMR, -MEMW, -IOR, -IOW, et fixe l'adresse de sortie du DMA
- en <literal>0x3456</literal>, adresse qui sera utilis&eacute;e pour
- diriger l'octet qui va &ecirc;tre transf&eacute;r&eacute; vers une
- adresse m&eacute;moire donn&eacute;e.</para>
-
- <para>Le DMA avertit ensuite le p&eacute;riph&eacute;rique qui a
- demand&eacute; le transfert que celui-ci commence, en positionnant le
- signal -DACK, ou, dans le cas du contr&ocirc;leur de disquette, le
- signal -DACK2.</para>
-
- <para>C'est maintenant au contr&ocirc;leur de disquette de placer l'octet
- &agrave; transf&eacute;rer sur les lignes de donn&eacute;es du bus. A
- moins qu'il ne faille plus de temps au contr&ocirc;leur de disquette
- pour placer l'octet de donn&eacute;e sur le bus (et dans ce cas, il
- pr&eacute;vient le DMA via le signal READY), le DMA attend un cycle de
- son horloge, puis d&eacute;sactive les signaux -MEMW et -IOR, de
- fa&ccedil;on &agrave; ce que la m&eacute;moire bascule et stocke
- l'octet qui se trouve sur le bus, et que le contr&ocirc;leur de
- disquette sache que l'octet a &eacute;t&eacute;
- transf&eacute;r&eacute;.</para>
-
- <para>Comme le DMA ne transf&egrave;re qu'un seul octet &agrave; la fois
- et par cycle, le FDC d&eacute;sactive maintenant le signal DRQ2, de
- sorte que le DMA sache que l'on n'a plus besoin de ses services. Le
- DMA d&eacute;sactive alors le signal -DACK2, pour avertir le FDC de
- ne plus mettre de donn&eacute;e sur le bus.</para>
-
- <para>Le DMA regarde alors si les autres canaux DMA ont des
- op&eacute;rations &agrave; effectuer. Si aucun des canaux n'a sa ligne
- DRQ active, le travail du contr&ocirc;leur DMA est termin&eacute; et il
- positionne ses signaux -MEMR, -MEMW, -IOR, -IOW et d'adresse dans un
- &eacute;tat interm&eacute;diaire.</para>
-
- <para>Pour finir, le DMA d&eacute;sactive le signal HRQ. Le CPU s'en
- aper&ccedil;oit et d&eacute;sactive le signal HOLDA puis active ses
- signaux -MEMR, -MEMW, -IOR, -IOW et d'adresse et enfin reprend
- l'ex&eacute;cution des instructions et ses acc&egrave;s &agrave; la
- m&eacute;moire et aux p&eacute;riph&eacute;riques.</para>
-
- <para>Pour un secteur de disquette typique, le processus ci-dessus est
- r&eacute;p&eacute;t&eacute; 512 fois, une fois pour chaque octet. Chaque
- fois qu'un octet est transf&eacute;r&eacute;, le registre d'adresse du
- DMA est incr&eacute;ment&eacute; et le compteur du DMA qui indique
- combien d'octets ont &eacute;t&eacute; transf&eacute;r&eacute;s,
- d&eacute;cr&eacute;ment&eacute;.</para>
-
- <para>Quand le compteur arrive &agrave; z&eacute;ro, le DMA positionne le
- signal EOP, qui indique que son compteur est nul et qu'aucune autre
- donn&eacute;e ne sera transf&eacute;r&eacute;e tant que le
- contr&ocirc;leur DMA n'aura pas &eacute;t&eacute; reprogramm&eacute; par
- le CPU. Cet &eacute;v&eacute;nement est aussi appel&eacute;
- &ldquo;fin de d&eacute;compte&rdquo;&nbsp;-&nbsp;<foreignphrase>Terminal
- Count (TC)</foreignphrase>. Il n'y a qu'un seul signal EOP, et comme il
- ne peut y avoir qu'un seul canal DMA actif &agrave; un moment
- donn&eacute;, c'est n&eacute;cessairement le canal DMA actuellement
- actif qui vient de terminer sa t&acirc;che.</para>
-
- <para>Si un p&eacute;riph&eacute;rique veut g&eacute;n&eacute;rer une
- interruption &agrave; la fin du transfert d'un tampon, il peut tester si
- les signaux -DACKn et EOP sont simultan&eacute;ment actifs. Quand cela
- se produit, c'est que le DMA ne transf&eacute;rera plus d'autre
- donn&eacute;e pour ce p&eacute;riph&eacute;rique sans intervention du
- CPU. Le p&eacute;riph&eacute;rique peut alors positionner un de ses
- signaux d'interruption pour avertir le CPU. Dans l'architecture PC, le
- circuit DMA lui-m&ecirc;me ne peut pas g&eacute;n&eacute;rer
- d'interruption. Le p&eacute;riph&eacute;rique et l'&eacute;lectronique
- associ&eacute;e sont responsables de la g&eacute;n&eacute;ration de
- toutes les interruptions qui peuvent intervenir. Il est en
- cons&eacute;quence impossible d'avoir des p&eacute;riph&eacute;riques
- qui utilisent le DMA mais n'emploient pas d'interruptions.</para>
-
- <para>Il est important de comprendre que bien que le CPU laisse toujours
- l'acc&egrave;s au bus au DMA quand le DMA effectue sa demande, cette
- action est transparente pour les applications et pour le
- syst&egrave;me d'exploitation, hormis pour le petit temps
- suppl&eacute;mentaire que met le processeur agrave; ex&eacute;cuter des
- instructions quand le DMA est actif. En cons&eacute;quence, le
- processeur doit interroger les p&eacute;riph&eacute;riques, les
- registres du DMA ou recevoir une interruption du
- p&eacute;riph&eacute;rique pour &ecirc;tre s&ucirc;r qu'un transfert DMA
- est termin&eacute;.</para>
- </sect2>
-
- <sect2>
- <title>Les registres de page DMA et la limite d'adressage de 16Mo</title>
-
- <para>Vous avez peut-&ecirc;tre d&eacute;j&agrave; remarqu&eacute; qu'au
- lieu de prendre pour adresse la valeur <literal>0x00123456</literal>, le
- DMA utilise la valeur <literal>0x3456</literal>. Cela m&eacute;rite
- quelques explications.</para>
-
- <para>Quand l'IBM PC d'origine a &eacute;t&eacute; con&ccedil;u, IBM a
- choisi d'utiliser &agrave; la fois des circuits contr&ocirc;leur DMA et
- contr&ocirc;leur d'interruptions pr&eacute;vus pour le 8085, un
- processeur 8-bits avec un espace adressable sur 16 bits (64Ko). Comme
- l'IBM PC supportait plus de 64Ko de m&eacute;moire, il fallait trouver
- le moyen de permettre au DMA de lire ou d'&eacute;crire &agrave; des
- emplacements m&eacute;moire au-del&agrave; de la limite de 64Ko. Pour
- r&eacute;soudre le probl&egrave;me, IBM a ajout&eacute; un registre
- externe pour chaque canal DMA qui re&ccedil;oit les bits de poids fort
- de l'adresse o&ugrave; lire ou &eacute;crire. Chaque fois
- qu'un canal DMA est actif, le contenu de ce registre est &eacute;crit
- sur le bus d'adresse et y reste jusqu'&agrave; ce que l'op&eacute;ration
- DMA pour ce canal soit termin&eacute;e. IBM a appel&eacute; ces
- registres &ldquo;registres de page&rdquo;.</para>
-
- <para>Dans notre exemple pr&eacute;c&eacute;dent donc, le DMA mettrait la
- partie <literal>0x3456</literal> de l'adresse sur le bus et le registre
- de page du canal DMA 2 mettrait la partie <literal>0x0012xxxx</literal>
- sur le bus. Ensemble, ces deux valeurs constituent l'adresse
- m&eacute;moire compl&egrave;te de l'acc&egrave;s.</para>
-
- <para>Comme le registre de page est ind&eacute;pendant du circuit DMA, la
- zone m&eacute;moire o&ugrave; lire ou &eacute;crire ne doit pas franchir
- la limite d'une plage de 64Ko. Par exemple, si le DMA acc&egrave;de
- &agrave; l'adresse <literal>0xffff</literal>, apr&egrave;s transfert, le
- DMA incr&eacute;mente le registre d'adresse et acc&egrave;de &agrave;
- l'octet d'adresse suivante <literal>0x0000</literal> et non
- <literal>0x10000</literal>. Ce n'est probablement pas le r&eacute;sultat
- attendu.</para>
-
- <note>
- <para>Les limites &ldquo;physiques&rdquo; de 64Ko ne doivent pas
- &ecirc;tre confondues avec les &ldquo;segments&rdquo; de 64Ko du mode
- 8086, qui sont d&eacute;finis par l'addition d'un registre de segment
- et d'un registre de d&eacute;placement. Les registres de page ne
- peuvent pas recouvrir d'adresses communes car ils font l'objet d'un
- <literal>OU</literal> logique avec l'adresse basse.</para>
- </note>
-
- <para>Pour compliquer encore les choses, les registres externes d'adresse
- DMA du PC/AT n'ont que 8 bits, ce qui nous donne 8+16=24 bits, ce qui
- signifie que le DMA ne peut adresser la m&eacute;moire qu'entre 0 et
- 16Mo. Sur les ordinateurs plus r&eacute;cents, qui permettent d'utiliser
- plus de 16Mo de m&eacute;moire, le DMA compatible PC standard ne peut
- adresser au-del&agrave; de 16Mo.</para>
-
- <para>Pour contourner cette restriction, les syst&egrave;mes
- d'exploitation r&eacute;servent une zone de m&eacute;moire en
- dessous de 16Mo qui n'inclue pas une limite de plage de 64 Ko. Le DMA
- est alors programm&eacute; pour effectuer les transferts dans cette zone
- tampon. Une fois que ce transfert est termin&eacute;, le syst&egrave;me
- d'exploitation copie alors les donn&eacute;es &agrave; l'adresse
- o&ugrave; elles doivent effectivement &ecirc;tre stock&eacute;es.</para>
-
- <para>Pour transf&eacute;rer des donn&eacute;es d'une adresse
- au-del&agrave; de 16Mo vers un p&eacute;riph&eacute;rique utilisant le
- DMA, les donn&eacute;es doivent d'abord &ecirc;tre copi&eacute;es dans
- un tampon en dessous de 16Mo, et de l&agrave;, le DMA peut les
- transf&eacute;rer au p&eacute;riph&eacute;rique. Sous FreeBSD, ces
- tampons r&eacute;serv&eacute;s sont appel&eacute;s &ldquo;tampons
- &agrave; rebonds&rdquo;&nbsp;-&nbsp;<foreignphrase>Bounce
- Buffers</foreignphrase>. Dans le monde MS-DOS, ils sont parfois
- appel&eacute;s &ldquo;tampons
- intelligents&rdquo;&nbsp;-&nbsp;<foreignphrase>Smart
- Buffers</foreignphrase>.</para>
-
- <note>
- <para>Une nouvelle impl&eacute;mentation du 8237, appel&eacute;e 82374,
- poss&egrave;de des registres de page de 16 bits, ce qui permet
- l'adressage 32 bits, sans avoir &agrave; utiliser de tampon &agrave
- rebonds.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Modes op&eacute;ratoires et configurations du DMA</title>
-
- <para>Le DMA 8237 peut op&eacute;rer selon diff&eacute;rents modes. Les
- principaux sont&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>Simple</term>
-
- <listitem>
- <para>Un seul octet (ou mot) est transf&eacute;r&eacute;. Le DMA
- doit lib&eacute;rer et r&eacute;obtenir le bus pour chaque nouvel
- octet. Ce mode est habituellement utilis&eacute; par les
- p&eacute;riph&eacute;riques qui ne peuvent transf&eacute;rer
- imm&eacute;diatement un bloc entier de donn&eacute;es. Le
- p&eacute;riph&eacute;rique fait appel au DMA chaque fois qu'il est
- pr&ecirc;t &agrave; un nouveau transfert.</para>
-
- <para>Le contr&ocirc;leur de disquette standard des compatibles PC
- (NEC 765) n'a qu'un tampon d'un octet. Il utilise donc ce
- mode.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Bloc/A la Demande</term>
-
- <listitem>
- <para>Une fois que le DMA a eu le contr&ocirc;le du bus
- syst&egrave;me, il transf&egrave;re un bloc entier de
- donn&eacute;es, de 64Ko au plus. Si le p&eacute;riph&eacute;rique
- a besoin de plus de temps, il peut activer le signal READY pour
- suspendre bri&egrave;vement le transfert. READY doit &ecirc;tre
- utilis&eacute; parcimonieusement et, pour un
- p&eacute;riph&eacute;rique lent, il faut plut&ocirc;t utiliser le
- mode simple.</para>
-
- <para>Le diff&eacute;rence entre les modes Bloc et A la Demande est
- que d&egrave;s qu'un transfert Bloc est entam&eacute;, il se
- poursuit jusqu'&agrave; ce que le compteur d'octets
- transf&eacute;r&eacute;s atteigne la valeur z&eacute;ro. Le signal
- DRQ ne doit &ecirc;tre actif que jusqu'&agrave; ce que le signal
- -DACK soit activ&eacute;. En mode A la Demande, les octets sont
- transf&eacute;r&eacute;s jusqu'&agrave; ce que le signal DRQ soit
- d&eacute;sactiv&eacute;, le DMA interrompt alors le transfert et
- rend le contr&ocirc;le du bus au CPU. Quand le signal DRQ est
- ensuite r&eacute;activ&eacute;, le transfert reprend l&agrave;
- o&ugrave; il a &eacute;t&eacute; interrompu.</para>
-
- <para>Les anciens contr&ocirc;leurs de disques durs utilisaient le
- mode A la Demande, jusqu'&agrave; ce que la puissance des
- processeurs augmente au point qu'il soit plus efficace de
- transf&eacute;rer les donn&eacute;es en utilisant le CPU, en
- particulier lorsque les adresses m&eacute;moire utilis&eacute;es
- pour le transfert se situent au-del&agrave; de la limite des
- 16Mo.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Cascade</term>
-
- <listitem>
- <para>Ce m&eacute;canisme permet &agrave; un canal DMA de
- prendre le contr&ocirc;le du bus, mais c'est ensuite le
- p&eacute;riph&eacute;rique associ&eacute; et non le DMA qui est
- charg&eacute; de param&eacute;trer le bus d'adresse. Ce mode est
- aussi utilis&eacute; pour mettre en oeuvre une technique
- appel&eacute;e &ldquo;Ma&icirc;trise du
- bus&rdquo;&nbsp;-&nbsp;<foreignphrase>Bus
- Mastering</foreignphrase>.</para>
-
- <para>Quand un canal DMA en mode Cascade re&ccedil;oit le
- contr&ocirc;le du bus, le DMA ne met pas les adresses et les
- signaux de contr&ocirc;le des entr&eacute;es/sorties sur le bus
- comme le DMA le fait normalement quand il est actif. Au lieu de
- cela, il positionne uniquement le signal -DACK pour le canal
- DMA actif.</para>
-
- <para>C'est au p&eacute;riph&eacute;rique reli&eacute;
- &agrave; ce canal DMA de fournir l'adresse et les signaux de
- contr&ocirc;le du bus. Le p&eacute;riph&eacute;rique
- contr&ocirc;le alors int&eacute;gralement le bus syst&egrave;me
- et peut effectuer des op&eacute;rations de lecture et/ou
- d'&eacute;criture &agrave; n'importe quelle adresse en dessous de
- 16 Mo. Quand le p&eacute;riph&eacute;rique en a termin&eacute;,
- il d&eacute;sactive le signal DRQ et le contr&ocirc;leur DMA peut
- alors rendre le main au processeur ou &agrave; un autre canal
- DMA.</para>
-
- <para>Le mode Cascade peut servir &agrave; mettre plusieurs
- contr&ocirc;leurs DMA en s&eacute;rie, et c'est exactement
- &agrave; cela que sert le canal DMA 4 dans l'architecture PC.
- Quand un p&eacute;riph&eacute;rique demande le bus sur un des
- canaux DMA 0, 1, 2 ou 3, le contr&ocirc;leur DMA esclave active
- le signal HLDREQ, mais ce dernier est en fait reli&eacute;
- &agrave; la ligne DRQ4 du contr&ocirc;leur DMA primaire et non au
- processeur. Le contr&ocirc;leur DMA primaire, pensant qu'il a
- un transfert &agrave; effectuer sur le canal 4, demande le bus au
- processeur avec le signal HLDREQ. Une fois que le CPU lui a
- octroy&eacute; le bus, le signal -DACK4 est positionn&eacute; et
- ce dernier est en fait reli&eacute; au signal HLDA du
- contr&ocirc;leur DMA esclave. Le contr&ocirc;leur DMA esclave
- transf&egrave;re alors des donn&eacute;es pour le canal DMA
- (0, 1, 2 ou 3) qui l'a demand&eacute; ou bien confie le bus
- &agrave; un p&eacute;riph&eacute;rique qui veut en avoir la
- ma&icirc;trise, un contr&ocirc;leur SCSI, par exemple.</para>
-
- <para>A cause de ce c&acirc;blage, seuls les canaux DMA 0, 1, 2, 3,
- 5, 6 et 7 peuvent &ecirc;tre utilis&eacute;s par des
- p&eacute;riph&eacute;riques sur les syst&egrave;mes PC/AT.</para>
-
- <note>
- <para>Le canal DMA 0 &eacute;tait r&eacute;serv&eacute; pour les
- op&eacute;rations de rafra&icirc;chissement sur les premiers
- IBM PC, mais est habituellement disponible pour les
- p&eacute;riph&eacute;riques sur les syst&egrave;mes
- r&eacute;cents.</para>
- </note>
-
- <para>Quand un p&eacute;riph&eacute;rique prend le contr&ocirc;le du
- bus, il faut qu'il transf&egrave;re des donn&eacute;es de ou vers
- la m&eacute;moire de fa&ccedil;on constante, tant qu'il garde le
- contr&ocirc;le du bus syst&egrave;me. Si le
- p&eacute;riph&eacute;rique ne peut pas le faire, il faut qu'il
- lib&egrave;re fr&eacute;quemment le bus, pour que le
- syst&egrave;me puisse rafra&icirc;chir la m&eacute;moire.</para>
-
- <para>La RAM dynamique utilis&eacute;e par tous les PCs doit
- &ecirc;tre rafra&icirc;chie fr&eacute;quemment pour que les bits
- stock&eacute;s par ses composants restent
- &ldquo;charg&eacute;s&rdquo;. La RAM dynamique est essentiellement constitu&eacute;e de millions de condensateurs repr&eacute;sentant
- chacun un bit de donn&eacute;e. Ces condensateurs sont
- charg&eacute;s pour repr&eacute;senter un <literal>1</literal> ou
- d&eacute;charg&eacute;s pour repr&eacute;senter un
- <literal>0</literal>. Comme tous les condensateurs fuient, il faut
- les recharger &agrave; intervalles r&eacute;guliers pour conserver
- les valeurs <literal>1</literal>. Les circuits de m&eacute;moire
- s'occupent en fait de la t&acirc;che de recharger les cases
- m&eacute;moire appropri&eacute;es, mais le reste du syst&egrave;me
- doit leur dire quand le faire, pour que cela n'interf&egrave;re
- pas avec les acc&egrave;s normaux du syst&egrave;me &agrave; la
- m&eacute;moire. Si l'ordinateur ne peut pas rafra&icirc;chir la
- m&eacute;moire, le contenu de cette derni&egrave;re sera corrompu
- en quelques millisecondes.</para>
-
- <para>Comme les cycles de lecture et d'&eacute;criture en
- m&eacute;moire &ldquo;comptent&rdquo; pour des cycles de
- rafra&icirc;chissement (un cycle de rafra&icirc;chissement de la
- RAM dynamique est en fait un cycle de lecture incomplet), tant que
- le p&eacute;riph&eacute;rique continue de lire ou d'&eacute;crire
- des donn&eacute;es en s&eacute;quence en m&eacute;moire, cette
- op&eacute;ration rafra&icirc;chit la totalit&eacute; de la
- m&eacute;moire.</para>
-
- <para>La prise de contr&ocirc;le du bus est utilis&eacute;e par les
- interfaces SCSI et d'autres contr&ocirc;leurs de
- p&eacute;riph&eacute;rique de haute performance.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Autoinitialisation</term>
-
- <listitem>
- <para>Dans ce mode, le DMA op&egrave;re des transferts d'octet, de
- bloc, ou &agrave; la demande mais, lorsque le compteur de
- transferts du DMA arrive &agrave; z&eacute;ro, le compteur et
- l'adresse sont r&eacute;initialis&eacute;s avec les valeurs
- initialement programm&eacute;es pour le canal DMA. Cela signifie
- que tant que le p&eacute;riph&eacute;rique demande des transferts,
- ils lui sont accord&eacute;s. C'est au processeur de placer les
- donn&eacute;es &agrave; l'avance dans le tampon fixe d'o&ugrave;
- le DMA les d&eacute;placera lors d'op&eacute;rations de sortie, et
- de lire les donn&eacute;es du tampon avant que le DMA n'y
- r&eacute;&eacute;crive lors d'op&eacute;rations
- d'entr&eacute;e.</para>
-
- <para>Cette technique est couramment utilis&eacute;e par les
- p&eacute;riph&eacute;riques audio qui n'ont qu'un petit ou pas
- de tampon mat&eacute;riel pour les &eacute;chantillons.
- Il y a occupation suppl&eacute;mentaire du processeur pour
- g&eacute;rer ce tampon &ldquo;circulaire&rdquo; mais, dans
- certains cas, c'est la seule fa&ccedil;on d'&eacute;liminer le
- temps de latence qui intervient lorsque le compteur du DMA
- arrive &agrave; z&eacute;ro et que le DMA arr&ecirc;te le
- transfert jusqu'&agrave; ce qu'il soit reprogramm&eacute;.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Programmation du DMA</title>
-
- <para>Le canal DMA qui va &ecirc;tre programm&eacute; doit toujours
- &ecirc;tre &ldquo;masqu&eacute;&rdquo; avant de le param&eacute;trer.
- Cela parce que le mat&eacute;riel pourrait inopin&eacute;ment activer
- le signal DRQ pour ce canal avant que tous les param&egrave;tres n'aient
- &eacute;t&eacute; charg&eacute;s ou mis &agrave; jour.</para>
-
- <para>Une fois masqu&eacute;, le processeur doit pr&eacute;ciser le sens
- du transfert (de la m&eacute;moire vers le p&eacute;riph&eacute;rique
- ou du p&eacute;riph&eacute;rique vers la m&eacute;moire), le mode
- d'op&eacute;ration du DMA (Simple, Bloc, A la Demande, Cascade, etc.)
- qui sera utilis&eacute; pour le transfert et, pour finir, l'adresse et
- le volume de donn&eacute;es &agrave; transf&eacute;rer. La
- quantit&eacute; de donn&eacute;es &agrave; indiquer est
- inf&eacute;rieure d'un octet &agrave; celle que vous voulez que le DMA
- transf&egrave;re. Le LSB (octet bas) et le MSB (octet haut) de l'adresse
- et de la quantit&eacute; sont &eacute;crites sur le m&ecirc;me port
- d'entr&eacute;e/sortie 8 bits, il y a donc un autre
- port sur lequel il faut &eacute;crire d'abord pour s'assurer que le
- DMA comprenne le premier octet comme le LSB et le second comme le MSB
- de la quantit&eacute; et de l'adresse.</para>
-
- <para>Enfin, il faut mettre &agrave; jour le registre de page, qui est
- externe au DMA et est accessible via un autre jeu de ports
- d'entr&eacute;e/sortie.</para>
-
- <para>Une fois que toutes ces valeurs sont d&eacute;finies, le canal DMA
- peut &ecirc;tre d&eacute;masqu&eacute;. Le canal DMA en question est
- maintenant consid&eacute;r&eacute; &ldquo;arm&eacute;&rdquo;, et
- r&eacute;pondra quand la ligne DRQ correspondante sera
- activ&eacute;e.</para>
-
- <para>Reportez-vous &agrave; un manuel documentant le mat&eacute;riel
- pour conna&icirc;tre les d&eacute;tails de la programmation du 8237.
- Vous aurez aussi besoin de la carte des ports d'entr&eacute;/sortie des
- syst&egrave;mes PC, qui donne les adresses des ports du DMA et du
- registre de page. Vous trouverez ci-dessous une table donnant une
- description compl&egrave;te de ces ports.</para>
- </sect2>
-
- <sect2>
- <title>Ports DMA</title>
-
- <para>Les contr&ocirc;leurs DMA sont situ&eacute;s sur les m&ecirc;mes
- ports d'entr&eacute;e/sortie sur tous les syst&egrave;mes de type IBM-PC
- et PC/AT. La table ci-dessous en donne la liste compl&egrave;te. Les
- ports affect&eacute;s au deuxi&egrave;me contr&ocirc;leur DMA ne sont
- pas d&eacute;finis sur les syst&egrave;mes non-AT.</para>
-
- <sect3>
- <title>0x00&ndash;0x0f Contr&ocirc;leur num&eacute;ro 1 (Canaux 0, 1, 2
- et 3)</title>
-
- <para>Registres d'adresse et compteur DMA</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>0x00</entry>
- <entry>&eacute;criture</entry>
- <entry>Adresse initiale Canal 0</entry>
- </row>
-
- <row>
- <entry>0x00</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 0</entry>
- </row>
-
- <row>
- <entry>0x01</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 0</entry>
- </row>
-
- <row>
- <entry>0x01</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 0</entry>
- </row>
-
- <row>
- <entry>0x02</entry>
- <entry>&eacute;criture</entry>
- <entry>Adresse initiale Canal 1</entry>
- </row>
-
- <row>
- <entry>0x02</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 1</entry>
- </row>
-
- <row>
- <entry>0x03</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 1</entry>
- </row>
-
- <row>
- <entry>0x03</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 1</entry>
- </row>
-
- <row>
- <entry>0x04</entry>
- <entry>&eacute;criture</entry>
- <entry>Adresse initiale Canal 2</entry>
- </row>
-
- <row>
- <entry>0x04</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 2</entry>
- </row>
-
- <row>
- <entry>0x05</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 2</entry>
- </row>
-
- <row>
- <entry>0x05</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 2</entry>
- </row>
-
- <row>
- <entry>0x06</entry>
- <entry>&eacute;criture</entry>
- <entry>Adresse initiale Canal 3</entry>
- </row>
-
- <row>
- <entry>0x06</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 3</entry>
- </row>
-
- <row>
- <entry>0x07</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 3</entry>
- </row>
-
- <row>
- <entry>0x07</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 3</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Registres de commande du DMA</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>0x08</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de commande</entry>
- </row>
-
- <row>
- <entry>0x08</entry>
- <entry>lecture</entry>
- <entry>Registre d'&eacute;tat</entry>
- </row>
-
- <row>
- <entry>0x09</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de requ&ecirc;te</entry>
- </row>
-
- <row>
- <entry>0x09</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0x0a</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de masque de bit</entry>
- </row>
-
- <row>
- <entry>0x0a</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0x0b</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de mode</entry>
- </row>
-
- <row>
- <entry>0x0b</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0x0c</entry>
- <entry>&eacute;criture</entry>
- <entry>Remise &agrave; z&eacute;ro du LSB/MSB de la
- bascule</entry>
- </row>
-
- <row>
- <entry>0x0c</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0x0d</entry>
- <entry>&eacute;criture</entry>
- <entry>Remise &agrave; z&eacute;ro/r&eacute;initialisation
- ma&icirc;tre</entry>
- </row>
-
- <row>
- <entry>0x0d</entry>
- <entry>lecture</entry>
- <entry>Registre temporaire (non disponible sur les versions
- r&eacute;centes)</entry>
- </row>
-
- <row>
- <entry>0x0e</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de remise &agrave; z&eacute;ro du masque</entry>
- </row>
-
- <row>
- <entry>0x0e</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0x0f</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre d'&eacute;criture de tous les bits du
- masque</entry>
- </row>
-
- <row>
- <entry>0x0f</entry>
- <entry>lecture</entry>
- <entry>Registre de lecture de tous les bits du masque (Intel
- 82374 uniquement)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
-
- <sect3>
- <title>0xc0&ndash;0xdf Contr&ocirc;leur num&eacute;ro 2 (Canaux 4, 5, 6
- et 7)</title>
-
- <para>Registres d'adresse et compteur DMA</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>0xc0</entry>
- <entry>&eacute;riture</entry>
- <entry>Adresse initiale Canal 4</entry>
- </row>
-
- <row>
- <entry>0xc0</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 4</entry>
- </row>
-
- <row>
- <entry>0xc2</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 4</entry>
- </row>
-
- <row>
- <entry>0xc2</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 4</entry>
- </row>
-
- <row>
- <entry>0xc4</entry>
- <entry>&eacute;criture</entry>
- <entry>Adresse initiale Canal 5</entry>
- </row>
-
- <row>
- <entry>0xc4</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 5</entry>
- </row>
-
- <row>
- <entry>0xc6</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 5</entry>
- </row>
-
- <row>
- <entry>0xc6</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 5</entry>
- </row>
-
- <row>
- <entry>0xc8</entry>
- <entry>&eacute;criture</entry>
- <entry>Adresse initiale Canal 6</entry>
- </row>
-
- <row>
- <entry>0xc8</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 6</entry>
- </row>
-
- <row>
- <entry>0xca</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 6</entry>
- </row>
-
- <row>
- <entry>0xca</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 6</entry>
- </row>
-
- <row>
- <entry>0xcc</entry>
- <entry>&eacute;criture</entry>
- <entry>Adresse initiale Canal 7</entry>
- </row>
-
- <row>
- <entry>0xcc</entry>
- <entry>lecture</entry>
- <entry>Adresse courante Canal 7</entry>
- </row>
-
- <row>
- <entry>0xce</entry>
- <entry>&eacute;criture</entry>
- <entry>Compteur initial Canal 7</entry>
- </row>
-
- <row>
- <entry>0xce</entry>
- <entry>lecture</entry>
- <entry>Compteur courant Canal 7</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Registres de commande du DMA</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>0xd0</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de commande</entry>
- </row>
-
- <row>
- <entry>0xd0</entry>
- <entry>lecture</entry>
- <entry>Registre d'&eacute;tat</entry>
- </row>
-
- <row>
- <entry>0xd2</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de requ&ecirc;te</entry>
- </row>
-
- <row>
- <entry>0xd2</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0xd4</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de masque de bit</entry>
- </row>
-
- <row>
- <entry>0xd4</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0xd6</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de mode</entry>
- </row>
-
- <row>
- <entry>0xd6</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0xd8</entry>
- <entry>&eacute;criture</entry>
- <entry>Remise &agrave; z&eacute;ro du LSB/MSB de la
- bascule</entry>
- </row>
-
- <row>
- <entry>0xd8</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0xda</entry>
- <entry>&eacute;criture</entry>
- <entry>Remise &agrave; z&eacute;ro/r&eacute;initialisation
- ma&icirc;tre</entry>
- </row>
-
- <row>
- <entry>0xda</entry>
- <entry>lecture</entry>
- <entry>Registre temporaire (non disponible sur l'Intel
- 82374)</entry>
- </row>
-
- <row>
- <entry>0xdc</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre de remise &agrave; z&eacute;ro du masque</entry>
- </row>
-
- <row>
- <entry>0xdc</entry>
- <entry>lecture</entry>
- <entry>-</entry>
- </row>
-
- <row>
- <entry>0xde</entry>
- <entry>&eacute;criture</entry>
- <entry>Registre d'&eacute;criture de tous les bits du
- masque</entry>
- </row>
-
- <row>
- <entry>0xdf</entry>
- <entry>lecture</entry>
- <entry>Registre de lecture de tous les bits du masque (Intel
- 82374 uniquement)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
-
- <sect3>
- <title>0x80&ndash;0x9f Registres de page du DMA</title>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>0x87</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 0 octet bas (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x83</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 1 octet bas (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x81</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 2 octet bas (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x82</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 3 octet bas (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x8b</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 5 octet bas (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x89</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 6 octet bas (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x8a</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 7 octet bas (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x8f</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Octet bas rafra&icirc;chissement de page</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
-
- <sect3>
- <title>0x400&ndash;0x4ff Registres du DMA Etendu 82374</title>
-
- <para>Le composant syst&egrave;me EISA&nbsp;-&nbsp;<foreignphrase>EISA
- System Component (ESC)</foreignphrase>&nbsp;-&nbsp;Intel 82374 est
- apparu au d&eacute;but de 1996 et comporte un contr&ocirc;leur DMA
- qui fournit un sur-ensemble des fonctionnalit&eacute;s du 8237 en
- m&ecirc;me temps que d'autres composants p&eacute;riph&eacute;riques
- compatibles PC de base sur une seule puce. Ce composant est
- destin&eacute; &agrave; la fois aux plates-formes EISA et PCI et
- offre des fonctionnalit&eacute;s DMA r&eacute;centes telles que
- dispersion/regroupement, tampons en anneau et acc&egrave;s direct
- via le DMA &agrave; la totalit&eacute; de l'espace d'adressage sur 32
- bits.</para>
-
- <para>Lorsque ces possibilit&eacute;s sont utilis&eacute;es, il faut
- aussi fournir le code qui procure les m&ecirc;mes
- fonctionnalit&eacute;s aux ordinateurs compatibles PC des 16
- ann&eacute;es pr&eacute;c&eacute;dentes. Pour des raisons de
- compatibilit&eacute;, il faut programmer certains registres du 82374
- <emphasis>apr&egrave;s</emphasis> avoir programm&eacute; les registres
- traditionnels du 8237, pour chaque transfert. Ecrire dans un registre
- 8237 traditionnel remet &agrave; z&eacute;ro certains registres
- &eacute;tendus du 82374 de fa&ccedil;on &agrave; assurer la
- r&eacute;tro-compatibilit&eacute; du logiciel.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <tbody>
- <row>
- <entry>0x401</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 0 octet haut (23-16) du compteur de mots</entry>
- </row>
-
- <row>
- <entry>0x403</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 1 octet haut (23-16) du compteur de mots</entry>
- </row>
-
- <row>
- <entry>0x405</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 2 octet haut (23-16) du compteur de mots</entry>
- </row>
-
- <row>
- <entry>0x407</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 3 octet haut (23-16) du compteur de mots</entry>
- </row>
-
- <row>
- <entry>0x4c6</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 5 octet haut (23-16) du compteur de mots</entry>
- </row>
-
- <row>
- <entry>0x4ca</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 6 octet haut (23-16) du compteur de mots</entry>
- </row>
-
- <row>
- <entry>0x4ce</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 7 octet haut (23-16) du compteur de mots</entry>
- </row>
-
- <row>
- <entry>0x487</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 0 octet haut (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x483</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 1 octet haut (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x481</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 2 octet haut (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x482</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 3 octet haut (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x48b</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 5 octet haut (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x489</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 6 octet haut (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x48a</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 7 octet haut (23-16) du registre de page</entry>
- </row>
-
- <row>
- <entry>0x48f</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Octet haut rafra&icirc;chissement de page</entry>
- </row>
-
- <row>
- <entry>0x4e0</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 0 registre Stop (bits 7-2)</entry>
- </row>
-
- <row>
- <entry>0x4e1</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 0 registre Stop (bits 15-8)</entry>
- </row>
-
- <row>
- <entry>0x4e2</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 0 registre Stop (bits 23-16)</entry>
- </row>
-
- <row>
- <entry>0x4e4</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 1 registre Stop (bits 7-2)</entry>
- </row>
-
- <row>
- <entry>0x4e5</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 1 registre Stop (bits 15-8)</entry>
- </row>
-
- <row>
- <entry>0x4e6</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 1 registre Stop (bits 23-16)</entry>
- </row>
-
- <row>
- <entry>0x4e8</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 2 registre Stop (bits 7-2)</entry>
- </row>
-
- <row>
- <entry>0x4e9</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 2 registre Stop (bits 15-8)</entry>
- </row>
-
- <row>
- <entry>0x4ea</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 2 registre Stop (bits 23-16)</entry>
- </row>
-
- <row>
- <entry>0x4ec</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 3 registre Stop (bits 7-2)</entry>
- </row>
-
- <row>
- <entry>0x4ed</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 3 registre Stop (bits 15-8)</entry>
- </row>
-
- <row>
- <entry>0x4ee</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 3 registre Stop (bits 23-16)</entry>
- </row>
-
- <row>
- <entry>0x4f4</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 5 registre Stop (bits 7-2)</entry>
- </row>
-
- <row>
- <entry>0x4f5</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 5 registre Stop (bits 15-8)</entry>
- </row>
-
- <row>
- <entry>0x4f6</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 5 registre Stop (bits 23-16)</entry>
- </row>
-
- <row>
- <entry>0x4f8</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 6 registre Stop (bits 7-2)</entry>
- </row>
-
- <row>
- <entry>0x4f9</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 6 registre Stop (bits 15-8)</entry>
- </row>
-
- <row>
- <entry>0x4fa</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 6 registre Stop (bits 23-16)</entry>
- </row>
-
- <row>
- <entry>0x4fc</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 7 registre Stop (bits 7-2)</entry>
- </row>
-
- <row>
- <entry>0x4fd</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 7 registre Stop (bits 15-8)</entry>
- </row>
-
- <row>
- <entry>0x4fe</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 7 registre Stop (bits 23-16)</entry>
- </row>
-
- <row>
- <entry>0x40a</entry>
- <entry>&eacute;criture</entry>
- <entry>Canaux 0-3 registre de mode cha&icirc;nage</entry>
- </row>
-
- <row>
- <entry>0x40a</entry>
- <entry>lecture</entry>
- <entry>Registre d'&eacute;tat d'interruption du canal</entry>
- </row>
-
- <row>
- <entry>0x4d4</entry>
- <entry>&eacute;criture</entry>
- <entry>Canaux 4-7 registre de mode cha&icirc;nage</entry>
- </row>
-
- <row>
- <entry>0x4d4</entry>
- <entry>lecture</entry>
- <entry>Etat du mode cha&icirc;nage</entry>
- </row>
-
- <row>
- <entry>0x40c</entry>
- <entry>lecture</entry>
- <entry>Registre de contr&ocirc;le d'expiration du tampon de
- cha&icirc;nage</entry>
- </row>
-
- <row>
- <entry>0x410</entry>
- <entry>&eacute;criture</entry>
- <entry>Canal 0 registre de commande
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x411</entry>
- <entry>&eacute;criture</entry>
- <entry>Canal 1 registre de commande
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x412</entry>
- <entry>&eacute;criture</entry>
- <entry>Canal 2 registre de commande
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x413</entry>
- <entry>&eacute;criture</entry>
- <entry>Canal 3 registre de commande
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x415</entry>
- <entry>&eacute;criture</entry>
- <entry>Canal 5 registre de commande
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x416</entry>
- <entry>&eacute;criture</entry>
- <entry>Canal 6 registre de commande
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x417</entry>
- <entry>&eacute;criture</entry>
- <entry>Canal 7 registre de commande
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x418</entry>
- <entry>lecture</entry>
- <entry>Canal 0 registre d'&eacute;tat
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x419</entry>
- <entry>lecture</entry>
- <entry>Canal 1 registre d'&eacute;tat
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x41a</entry>
- <entry>lecture</entry>
- <entry>Canal 2 registre d'&eacute;tat
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x41b</entry>
- <entry>lecture</entry>
- <entry>Canal 3 registre d'&eacute;tat
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x41d</entry>
- <entry>lecture</entry>
- <entry>Canal 5 registre d'&eacute;tat
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x41e</entry>
- <entry>lecture</entry>
- <entry>Canal 6 registre d'&eacute;tat
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x41f</entry>
- <entry>lecture</entry>
- <entry>Canal 7 registre d'&eacute;tat
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x420-0x423</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 0 registre de pointeur sur le table de descripteurs
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x424-0x427</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 1 registre de pointeur sur le table de descripteurs
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x428-0x42b</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 2 registre de pointeur sur le table de descripteurs
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x42c-0x42f</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 3 registre de pointeur sur le table de descripteurs
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x434-0x437</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 5 registre de pointeur sur le table de descripteurs
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x438-0x43b</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 6 registre de pointeur sur le table de descripteurs
- dispersion/regroupement</entry>
- </row>
-
- <row>
- <entry>0x43c-0x43f</entry>
- <entry>lecture/&eacute;criture</entry>
- <entry>Canal 7 registre de pointeur sur le table de descripteurs
- dispersion/regroupement</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="internals-vm">
- <title>La gestion de m&eacute;moire virtuelle de FreeBSD</title>
-
- <para><emphasis>Contribution de &a.dillon;. 6 F&eacute;vrier
- 1999</emphasis></para>
-
- <sect2>
- <title>Gestion de la m&eacute;moire
- physique&mdash;<literal>vm_page_t</literal></title>
-
- <para>La m&eacute;moire physique est g&eacute;r&eacute;e page par page
- via la structure <literal>vm_page_t</literal>. Les pages de
- m&eacute;moire physique sont caract&eacute;ris&eacute;es par
- l'emplacement de leurs structures <literal>vm_page_t</literal>
- respectives dans l'une des queues de pagination.</para>
-
- <para>Une page peut &ecirc;tre verrouill&eacute;e, active, inactive, dans
- le cache ou libre. Sauf lorsqu'elle est verrouill&eacute;e, la page est
- typiquement plac&eacute;e dans une queue repr&eacute;sent&eacute;e par
- une liste &agrave; double cha&icirc;nage d&eacute;crivant l'&eacute;tat
- dans lequel elle est. Les pages verrouill&eacute;es n'appartiennent
- &agrave; aucune queue.</para>
-
- <para>FreeBSD impl&eacute;ment syst&egrave;me de queues de pagination plus
- sophistiqu&eacute; pour les pages libres ou dans le cache, de
- fa&ccedil;on &agrave; mettre en oeuvre un algorithme de coloration des
- pages. Chacun de ces &eacute;tats (libre, cach&eacute;) met en oeuvre
- des files d'attente multiples selon la taille des caches L1 et L2 du
- processeur. Quand il faut allouer une nouvelle page, FreeBSD essaie d'en
- obtenir une qui soit raisonnablement align&eacute;e du point de vue des
- caches L1 et L2 selon le type d'objet en m&eacute;moire virtuelle pour
- lequel la page est allou&eacute;e.</para>
-
- <para>De plus, une page peut &ecirc;tre retenue par un compteur
- de r&eacute;f&eacute;rence, ou bloqu&eacute;e avec un compteur
- d'utilisation. Le syst&egrave;me de m&eacute;moire virtuelle
- impl&eacute;mente aussi un &eacute;tat &ldquo;verrouillage
- ultime&rdquo; lorsque la page utilise le bit PG_BUSY des drapeaux de
- page.</para>
-
- <para>En termes g&eacute;n&eacute;raux, chacune des queues de pagination
- op&egrave;re en mode LRU (moins r&eacute;cemment utilis&eacute;). Une
- page est habituellement initialement plac&eacute;e dans l'&eacute;tat
- actif ou verrouill&eacute;. Lorsqu'elle est verrouill&eacute;e, la page
- est normalement associ&eacute;e &agrave; une table de pages quelque
- part. Le syst&egrave;me de m&eacute;moire virtuelle
- &ldquo;viellit&rdquo; les pages en parcourant les pages d'une queue de
- pagination plus active de fa&ccedil;on &agrave; les d&eacute;placer vers
- une queue moins active. Les pages qui sont d&eacute;plac&eacute;es vers
- le cache sont toujours associ&eacute;es &agrave; un objet en
- m&eacute;moire virtuelle mais sont candidates &agrave; une
- r&eacute;utilisation imm&eacute;diate. Les pages dans la queue libre
- sont vraiment disponibles. FreeBSD essaie de minimiser le nombre de
- pages dans la queue libre, mais il faut conserver un certain nombre de
- pages r&eacute;ellement disponibles pour pouvoir g&eacute;rer
- l'allocation de pages lors d'interruptions.</para>
-
- <para>Si un processus essaie d'acc&eacute;der &agrave; une page qui
- n'existe pas dans sa table de pages mais existe dans une des queues de
- pagination (la queue inactive ou celle du cache par exemple), il se
- produit un d&eacute;faut relativement peu p&eacute;nalisant de
- r&eacute;activation de page, qui fait que la page est
- r&eacute;activ&eacute;e. Si la page n'existe nulle part en
- m&eacute;moire, le processus doit attendre que la page soit
- r&eacute;cup&eacute;r&eacute;e sur disque.</para>
-
- <para>FreeBSD optimise dynamiquement ses queues de pagination et essaie de
- maintenir un ratio raisonnable entre les diff&eacute;rentes queues de
- m&ecirc;me qu'entre les pages &agrave; jour et celles qui ne le sont
- pas. Ce r&eacute;&eacute;quilibrage est mis en oeuvre par le
- d&eacute;mon de pagination et comprend le nettoyage des pages
- d&eacute;grad&eacute;es (leur synchronisation avec la version en
- arri&egrave;re-plan), la surveillance des pages
- r&eacute;f&eacute;renc&eacute;es par des t&acirc;ches actives (leur
- repositionnement dans les queues LRU ou leur d&eacute;placement d'une
- queue &agrave; une autre), la migration de pages entre queues lorsque
- les queues sont d&eacute;s&eacute;quilibr&eacute;es, et ainsi de suite.
- Le syst&egrave;me de m&eacute;moire virtuelle de FreeBSD accepte un
- nombre raisonnable de d&eacute;fauts de r&eacute;activation de page afin
- de savoir &agrave; quel point une page est active ou inactive. Cela
- permet de prendre de meilleures d&eacute;cisions pour savoir quand
- mettre &agrave; jour ou d&eacute;charger une page sur disque.</para>
- </sect2>
-
- <sect2>
- <title>Le tampon cache
- unifi&eacute;&mdash;<literal>vm_object_t</literal></title>
-
- <para>FreeBSD impl&eacute;mente la notion d'&ldquo;objet en m&eacute;moire
- virtuelle&rdquo; g&eacute;n&eacute;rique. Les objets en m&eacute;moire
- virtuelle peuvent &ecirc;tre associ&eacute;s &agrave; diff&eacute;rents
- types de mise en arri&egrave;re-plan&mdash;non sauvegard&eacute;,
- sauvegard&eacute; sur disque (<foreignphrase>swap</foreignphrase>),
- sauvegard&eacute; sur un p&eacute;riph&eacute;rique physique, ou
- sauvegard&eacute; dans un fichier. Comme le syst&egrave;me de fichiers
- utilise les m&ecirc;mes objets en m&eacute;moire virtuelle pour
- g&eacute;rer les informations de base relatives aux fichiers, le
- r&eacute;sultat est un tampon cache unifi&eacute;.</para>
-
- <para>Les objets en m&eacute;moire virtuelle peuvent &ecirc;tre des objets
- <emphasis>ombre&nbsp;-&nbsp;<foreignphrase>shadowed</foreignphrase></emphasis>,
- c'est-&agrave;-dire qu'ils peuvent &ecirc;tre empil&eacute;s les uns au
- dessus des autres. Par exemple, il peut y avoir un objet ombre
- sauvegard&eacute; dans l'espace de <foreignphrase>swap</foreignphrase>
- empil&eacute; sur un objet sauvegard&eacute; dans un fichier pour
- impl&eacute;menter une correspondance
- <citerefentry><refentrytitle>mmap</refentrytitle>
- <manvolnum>2</manvolnum></citerefentry> de type
- <literal>MAP_PRIVATE</literal>. Ce type d'empilement est aussi
- utilis&eacute; pour impl&eacute;menter diff&eacute;rents types de
- partage, dont la copie sur &eacute;criture pour les espaces d'adressage
- de processus fils (cr&eacute;&eacute;s par
- <citerefentry><refentrytitle>fork</refentrytitle> <manvolnum>2</manvolnum></citerefentry>.</para>
-
- <para>Il faut noter qu'un <literal>vm_page_t</literal> ne peut &ecirc;tre
- associ&eacute; qu'&agrave; un seul objet en m&eacute;moire virtuelle
- &agrave; la fois. Les objets ombre en m&eacute;moire
- virtuelle impl&eacute;mentent le partage apparent de la m&ecirc;me page
- pour des instances multiples.</para>
- </sect2>
-
- <sect2>
- <title>Entr&eacute;e/sortie sur le syst&egrave;me de
- fichiers&mdash;<literal>struct buf</literal></title>
-
- <para>Les objets en m&eacute;moire virtuelle sauvegard&eacute;s via le
- syst&egrave;me de &ldquo;vnodes&rdquo;, tels que les objets
- sauvegard&eacute;s dans des fichiers, doivent g&eacute;n&eacute;ralement
- maintenir eux-m&ecirc;mes leurs informations d'&eacute;tat &agrave
- jour/p&eacute;rim&eacute;, ind&eacute;pendamment de l'id&eacute;e que
- s'en fait le syst&egrave;me de m&eacute;moire virtuelle. Par exemple,
- quand le syst&egrave;me de m&eacute;moire virtuelle d&eacute;cide de
- synchroniser une page physique avec sa version en arri&egrave;re-plan,
- il doit indiquer que la page est &agrave; jour avant qu'elle ne soit
- effectivement &eacute;crite en arri&egrave;re-plan. De plus, les
- syst&egrave;mes de fichiers doivent &ecirc;tre capables de faire
- correspondre des parties d'un fichier ou de m&eacute;ta-informations
- sur un fichier avec l'interface entre la m&eacute;moire virtuelle et le
- noyau, pour pouvoir travailler sur ces informations.</para>
-
- <para>Les entit&eacute;s qui servent &agrave; g&eacute;rer cela sont
- appel&eacute;es tampons du syst&egrave;me de fichiers,
- <literal>struct buf</literal>s, ou encore <literal>bp</literal>s. Quand
- un syst&egrave;me de fichiers doit op&eacute;rer sur une partie d'un
- objet en m&eacute;moire virtuelle, il fait typiquement correspondre
- une partie de l'objet &agrave; un <literal>struct buf</literal> puis
- les pages du <literal>struct buf</literal> &agrave; l'interface entre
- la m&eacute;moire virtuelle et le noyau. De m&ecirc;me, les
- entr&eacute;es/sorties disque sont typiquement g&eacute;r&eacute;es en
- faisant correspondre des parties des objets et des structures tampon
- et en effectuent les entr&eacute;es/sorties sur ces structures. Les
- <literal>vm_page_t</literal>s sous-jacentes sont habituellement
- monopolis&eacute;es le temps des entr&eacute;es/sorties. Les tampons du
- syst&egrave;me de fichiers ont leur propre notion d'occupation, ce qui
- est utile pour le code des pilotes du syst&egrave;me de fichiers, qui
- travaille plut&ocirc;t sur ces tampons que directement sur les pages de
- la m&eacute;moire virtuelle.</para>
-
- <para>FreeBSD r&eacute;serve une quantit&eacute; limit&eacute;e de
- l'interface m&eacute;moire virtuelle du noyau pour les correspondances
- avec les <literal>struct buf</literal>s, mais il faut garder &agrave;
- l'esprit que cet espace n'est utilis&eacute; que pour stocker les
- correspondances et que cela ne diminue pas les possibilit&eacute;s de
- mettre des donn&eacute;es dans un cache. Le cache physique de
- donn&eacute;es est une fonction des <literal>vm_page_t</literal>s, et
- non des tampons du syst&egrave;me de fichiers. Cependant, comme les
- tampons du syst&egrave;me de fichiers sont utilis&eacute;s pour les
- entr&eacute;es/sorties, ils limitent de fait le nombre
- d'entr&eacute;es/sorties possibles simultan&eacute;ment. Comme il y a
- habituellement quelques milliers de tampons de syst&egrave;me de
- fichiers disponibles, ce n'est g&eacute;n&eacute;ralement pas un
- probl&egrave;me.</para>
- </sect2>
-
- <sect2>
- <title>Tables de correspondance des
- pages&mdash;<literal>vm_map_t</literal>,
- <literal>vm_entry_t</literal></title>
-
- <para>FreeBSD dissocie l'organisation des tables de pages physiques du
- syst&egrave;me de m&eacute;moire virtuelle. Toutes les tables en dur de
- pages par processus peuvent &ecirc;tre reconstruites &agrave; la
- vol&eacute;e et sont g&eacute;n&eacute;ralement
- consid&eacute;r&eacute;es comme jetables. Des tables de pages
- particuli&egrave;res, comme celles qui g&egrave;rent l'interface entre
- la m&eacute;moire virtuelle et le noyau, sont allou&eacute;es de
- fa&ccedil;on permanente. Ces pages ne sont pas consid&eacute;r&eacute;es
- comme jetables.</para>
-
- <para>FreeBSD associe des parties des <literal>vm_object</literal>s
- &agrave; des plages d'adresses via les structures
- <literal>vm_map_t</literal> et <literal>vm_entry_t</literal>. Les tables
- de pages sont construites synth&eacute;tiquement &agrave; partir de la
- hi&eacute;rarchie
- <literal>vm_map_t</literal>/<literal>vm_entry_t</literal>/<literal>vm_object_t</literal>.
- Rappelez-vous que j'ai dit que les pages physiques n'&eacute;taient
- directement associ&eacute;es qu'&agrave; un
- <literal>vm_object</literal>. Ce n'est en fait pas tout-&agrave;-fait
- vrai. Les <literal>vm_page_t</literal>s sont aussi li&eacute;s aux
- tables de pages auxquelles ils sont activement associ&eacute;s.
- Un <literal>vm_page_t</literal> peut &ecirc;tre li&eacute; &agrave;
- plusieurs <emphasis>pmaps</emphasis>, nom que l'on donne aux tables de
- pages. Cependant, l'association hi&eacute;rarchique fait que toutes les
- r&eacute;f&eacute;rences du m&ecirc;me objet &agrave; la m&ecirc;me page
- se rapportent &agrave; la m&ecirc;me <literal>vm_page_t</literal> de
- sorte que le tampon cache est globalement unifi&eacute;.</para>
- </sect2>
-
- <sect2>
- <title>Organisation m&eacute;moire de l'interface m&eacute;moire virtuelle
- du noyau&nbsp;-&nbsp;<foreignphrase>KVM</foreignphrase></title>
-
- <para>FreeBSD utilise l'interface m&eacute;moire virtuelle du noyau pour
- stocker diff&eacute;rentes structures de donn&eacute;es du noyau.
- L'unique plus grosse entit&eacute; de cette interface est le tampon
- de cache du syst&egrave;me de fichiers. C'est-&agrave;-dire, les
- correspondances se rapportant aux <literal>struct buf</literal>s.</para>
-
- <para>Au contraire de Linux, FreeBSD ne fait <emphasis>pas</emphasis>
- correspondre toute la m&eacute;moire physique avec l'interface de
- m&eacute;moire virtuelle. Ce qui signifie que FreeBSD peut g&eacute;rer
- des configurations ayant jusqu'&agrave; 4 Go de m&eacute;moire sur les
- plates-formes 32 bits. En fait, si l'unit&eacute; de gestion de la
- m&eacute;moire&nbsp;-&nbsp;<foreignphrase>Memory Management Unit
- (MMU)</foreignphrase> en &eacute;tait capable, FreeBSD pourrait
- th&eacute;oriquement g&eacute;rer jusqu'&agrave; 8 To sur une
- plate-forme 32 bits. N&eacute;nmoins, comme la plupart des plates-formes
- 32 bits ne peuvent pas recevoir plus de 4 Go, c'est un sujet de
- controverse.</para>
-
- <para>L'interface de m&eacute;moire virtuelle du noyau est
- g&eacute;r&eacute;e par diff&eacute;rents m&eacute;canismes. Le
- m&eacute;canisme principal de gestion de cette interface est
- l'allocateur de zone&nbsp;-&nbsp;<emphasis>zone allocator</emphasis>.
- L'allocateur de zone prend une portion de l'interface de
- m&eacute;moire virtuelle et la d&eacute;coupe en blocs de
- m&eacute;moire de m&ecirc;me taille pour y allouer un type
- particulier de structure. Vous pouvez utiliser la commande
- <command>vmstat -m</command> pour avoir une vue d'ensemble de
- l'utilisation actuelle de l'interface entre le noyau et la
- m&eacute;moire virtuelle zone par zone.</para>
- </sect2>
-
- <sect2>
- <title>Optimisation du syst&egrave;me de gestion de m&eacute;moire
- virtuelle de FreeBSD</title>
-
- <para>Il a &eacute;t&eacute; fourni un effort concert&eacute; pour que le
- noyau de FreeBSD optimise lui-m&ecirc;me dynamiquement son
- fonctionnement. Vous n'avez normalement pas &agrave; vous casser la
- t&ecirc;te avec les options <literal>maxusers</literal> et
- <literal>NMBCLUSTERS</literal> de configuration du noyau, options de
- compilation habituellement d&eacute;finies dans
- <filename>/usr/src/sys/i386/conf/<replaceable>FICHIER_DE_CONFIGURATION</replaceable></filename>.
- On trouve une description de toutes les options de configuration du
- noyau dans <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
-
- <para>Lors de la configuration d'un gros syst&egrave;me, vous pouvez
- vouloir augmenter <literal>maxusers</literal>. Ses valeurs sont
- g&eacute;n&eacute;ralement comprises entre 10 et 128. Remarquez que
- donner une valeur trop importante &agrave;
- <literal>maxusers</literal> peut provoquer un d&eacute;bordement de
- l'interface de m&eacute;moire virtuelle disponible, entra&icirc;nant des
- r&eacute;sultats impr&eacute;visibles. Il vaut mieux donner &agrave;
- <literal>maxusers</literal> une valeur raisonnable et ajouter d'autres
- options, telles que <literal>NMBCLUSTERS</literal>, pour augmenter des
- ressources pr&eacute;cises.</para>
-
- <para>Si votre syst&egrave;me va faire beaucoup appel au r&eacute;seau,
- vous pouvez augmenter <literal>NMBCLUSTERS</literal>. Les valeurs
- usuelles sont comprises entre 1024 et 4096.</para>
-
- <para>Le param&egrave;tre <literal>NBUF</literal> est aussi
- traditionnellement utilis&eacute; pour dimensionner le syst&egrave;me.
- Ce param&egrave;tre d&eacute;finit la taille de l'interface de
- m&eacute;moire virtuelle du noyau disponible pour les correspondances
- avec les tampons d'entr&eacute;e/sortie du syst&egrave;me de fichiers.
- Notez bien que ce param&egrave;tre n'a rien &agrave; voir avec le
- tampon cache unifi&eacute;&nbsp;! Ce param&egrave;tre est
- optimis&eacute; dynamiquement par le noyau
- <literal>3.0-current</literal> et les noyaux ult&eacute;rieurs et n'a
- normalement pas besoin d'&ecirc;tre ajust&eacute; &agrave; la main.
- Nous recommandons de ne <emphasis>pas</emphasis> essayer de fixer le
- param&egrave;tre <literal>NBUF</literal>. Laissez le syst&egrave;me
- s'en charger. Une valeur trop faible peut rendre le syst&egrave;me de
- fichiers largement inefficace et une valeur trop grande saturer les
- queues de pages en entra&icirc;nant le verrouillage d'un trop grand
- nombre de pages.</para>
-
- <para>Par d&eacute;faut, les noyaux FreeBSD ne sont pas optimis&eacute;s.
- Vous pouvez positionner les indicateurs d'optimisation et de
- d&eacute;boguage avec les directives <literal>makeoptions</literal> de
- configuration du noyau. Remarquez que vous ne devriez pas utiliser
- l'option <option>-g</option> &agrave; moins que vous ne puissiez vous
- accommoder des noyaux de taille importante (habituellement plus de 7 Mo)
- qui en r&eacute;sultent.</para>
-
- <programlisting>
-makeoptions DEBUG="-g"
-makeoptions COPTFLAGS="-O2 -pipe"
- </programlisting>
-
- <para><command>sysctl</command> fournit un moyen d'optimiser le noyau en
- temps r&eacute;el. Vous n'avez habituellement pas &agrave; vous
- pr&eacute;occuper des variables de <command>sysctl</command>, et en
- particulier pas de celles qui concernent la m&eacute;moire
- virtuelle.</para>
-
- <para>L'optimisation de la gestion de m&eacute;moire virtuelle et du
- syst&egrave;me d'ex&eacute;cution est relativement simple. Tout
- d'abord, utilisez &ldquo;les mises &agrave; jour
- logicielles&rdquo;&nbsp;-&nbsp;<foreignphrase>softupdates</foreignphrase>&nbsp;-&nbsp;sur
- vos syst&egrave;mes de fichiers UFS/FFS chaque fois que c'est possible.
- Le fichier
- <filename>/usr/src/contrib/sys/softupdates/README</filename> donne
- les indications (et les restrictions) sur la fa&ccedil;on de les
- configurer.</para>
-
- <para>En second lieu, pr&eacute;voyez suffisamment d'espace de pagination.
- Vous devriez avoir une partition de pagination sur chaque disque
- physique, jusqu'&agrave; quatre, m&ecirc;me sur vos disques &ldquo;de
- travail&rdquo;. Il doit y avoir au moins deux fois autant d'espace de
- pagination que de m&eacute;moire, et &eacute;ventuellement m&ecirc;me
- plus si vous n'avez pas beaucoup de m&eacute;moire. Vous devriez aussi
- dimensionner votre partition de pagination en fonction de la
- quantit&eacute; maximale de m&eacute;moire que vous comptez installer
- sur votre syst&egrave;me pour ne pas avoir &agrave; repartitionner vos
- disques par la suite. Si vous voulez pouvoir garder une trace en cas
- de plantage&nbsp;-&nbsp;<foreignphrase>crash
- dump</foreignphrase>&nbsp;-&nbsp;votre premi&egrave;re partition de
- pagination doit &ecirc;tre au moins de la taille de la m&eacute;moire et
- <filename>/var/crash</filename> doit disposer de suffisamment de place
- libre pour recevoir la trace.</para>
-
- <para>Il est tout &agrave; fait admissible de paginer via NFS &agrave;
- partir des syst&egrave;mes <literal>-4.x</literal> et ult&eacute;rieurs,
- mais il faut &ecirc;tre conscient que le serveur NFS supportera le plus
- fort de la charge de pagination.</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml
deleted file mode 100644
index c18577aa65..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml
+++ /dev/null
@@ -1,727 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.13
--->
-
- <chapter id="introduction">
- <title>Introduction</title>
- &trans.a.haby;
- <para>FreeBSD est une syst&egrave;me d'exploitation bas&eacute; sur 4.4BSD-Lite2 pour
- les PCs &agrave; base d'architecture Intel (x86) et DEC Alpha. Pour un aper&ccedil;u de FreeBSD,
- reportez-vous &agrave; <link linkend="nutshell">FreeBSD en bref</link>. Pour
- conna&icirc;tre l'histoire du projet, lisez <link linkend="history">Un
- court historique de FreeBSD</link>. Pour avoir une description de la
- version la plus r&eacute;cente, allez &agrave; la section
- <link linkend="relnotes">A propos de cette version</link>. Si vous
- voulez contribuer d'une fa&ccedil;on ou d'une autre au projet FreeBSD
- (code, mat&eacute;riel, ch&egrave;ques en blanc), voyez s'il vous pla&icirc;t &agrave; la section
- <link linkend="contrib">Contribuer &agrave; FreeBSD</link>.</para>
-
- <sect1 id="nutshell">
- <title>FreeBSD en bref</title>
-
- <para>FreeBSD est un syst&egrave;me d'exploitation en l'&eacute;tat de
- l'art pour les ordinateurs personnels &agrave; base d'architecture &agrave;
- processeurs Intel, ce qui inclut les processeurs 386, 486 (SX et
- DX) et Pentium ainsi que l'architecture Alpha. Les CPUs
- compatibles Intel d'AMD et Cyrix sont aussi support&eacute;es. FreeBSD
- vous apporte de nombreuses fonctionnalit&eacute;s avanc&eacute;es qui
- n'&eacute;taient jusque-l&agrave; disponibles que sur des ordinateurs beaucoup
- plus on&eacute;reux. Parmi ces fonctionnalit&eacute;s:</para>
-
-
- <itemizedlist>
-
- <listitem>
- <para><emphasis>Multi-t&acirc;che pr&eacute;emptif</emphasis> avec
- ajustement dynamique des priorit&eacute;s pour garantir un
- partage &eacute;quilibr&eacute; et fluide de l'ordinateur entre les
- applications et utilisateurs.</para>
- </listitem>
-
- <listitem>
- <para>Acc&egrave;s <emphasis>Multi-utilisateurs</emphasis>, ce qui
- signifie que de nombreuses personnes peuvent utiliser en
- m&ecirc;me temps un syst&egrave;me FreeBSD &agrave; des fins tr&egrave;s diff&eacute;rentes.
- Les p&eacute;riph&eacute;riques tels que les imprimantes ou les lecteurs
- de bandes peuvent &ecirc;tre aussi PARTAGES sans probl&egrave;me entre
- TOUS les utilisateurs du syst&egrave;me.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>R&eacute;seau TCP/IP</emphasis> complet dont le
- support de SLIP, PPP, NFS et NIS. Cela signifie que votre
- machine FreeBSD peut coop&eacute;rer facilement avec les autres
- syst&egrave;mes ou bien &ecirc;tre utilis&eacute;e
- comme serveur d'entreprise, fournissant
- des fonctions essentielles comme NFS (acc&egrave;s aux fichiers en
- r&eacute;seau) ou le service de courrier &eacute;lectronique, ou encore
- g&eacute;rer l'acc&egrave;s de votre entreprise &agrave; l'Internet gr&acirc;ce aux
- services WWW, ftp, et aux fonctionnalit&eacute;s de routage et de
- coupe-feu (s&eacute;curit&eacute;).</para>
- </listitem>
-
- <listitem>
- <para>La <emphasis>Protection m&eacute;moire</emphasis> garantit que les
- applications ou les utilisateurs n'interf&egrave;rent pas entre eux.
- Une application qui &ldquo;plante&rdquo; n'affecte en rien les
- autres.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD est un syst&egrave;me d'exploitation
- <emphasis>32-bit</emphasis> et a &eacute;t&eacute; con&ccedil;u comme tel d&egrave;s le
- d&eacute;but.</para>
- </listitem>
-
- <listitem>
- <para>Le standard industriel <emphasis>X Window System</emphasis>
- (X11R6) fournit une interface graphique (&ldquo;Graphical User
- Interface&rdquo;&nbsp;-&nbsp;GUI),
- moyennant l'achat d'une carte VGA
- ordinaire et d'un moniteur, et est livr&eacute; avec l'int&eacute;gralit&eacute; de
- son code source.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Compatibilit&eacute; binaire</emphasis> avec de
- nombreux programmes compil&eacute;s pour SCO, BSDI, NetBSD, Linux et
- 386BSD.</para>
- </listitem>
-
- <listitem>
- <para>Des centaines d'applications
- <emphasis>pr&ecirc;tes &agrave; l'emploi</emphasis>
- sont disponibles gr&acirc;ce au catalogue des logiciels
- <emphasis>port&eacute;s</emphasis> (&ldquo;ports&rdquo;) et au catalogue
- des logiciels <emphasis>pr&eacute;-compil&eacute;s</emphasis>
- (&ldquo;packages&rdquo;). Pourquoi chercher sur l'Internet alors
- que tout est d&eacute;j&agrave; l&agrave;?</para>
- </listitem>
-
- <listitem>
- <para>Des milliers d'applications <emphasis>faciles &agrave;
- porter</emphasis> sont disponibles sur l'Internet. FreeBSD est
- compatible au niveau du code source avec les syst&egrave;mes
- Unix commerciaux les plus r&eacute;pandus et donc il y a peu, sinon
- aucune modification, &agrave; faire pour les compiler.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>M&eacute;moire virtuelle</emphasis> pagin&eacute;e &agrave; la demande
- et &ldquo;cache unifi&eacute; pour le disque
- et la m&eacute;moire virtuelle&rdquo;; cela
- permet de r&eacute;pondre aux besoins d'applications gourmandes en
- m&eacute;moire tout en garantissant le temps de r&eacute;ponse aux autres
- utilisateurs.</para>
- </listitem>
-
- <listitem>
- <para>Les <emphasis>Bilioth&egrave;ques partag&eacute;es</emphasis>
- (l'&eacute;quivalent Unix des DLLs de MS-Windows) permettent une
- utilisation efficace de la m&eacute;moire et du disque.</para>
- </listitem>
-
- <listitem>
- <para>Des outils complets de d&eacute;veloppement <emphasis>C</emphasis>,
- <emphasis>C++</emphasis> et <emphasis>Fortran</emphasis>. De
- nombreux autres langages pour la recherche de pointe et le
- d&eacute;veloppement sont aussi disponibles dans les catalogues des
- logiciels port&eacute;s et pr&eacute;-compil&eacute;s.</para>
- </listitem>
-
- <listitem>
- <para>La disponibilit&eacute; du <emphasis>Code source</emphasis> de la
- totalit&eacute; du syst&egrave;me vous donne tout contr&ocirc;le sur votre
- environnement. Pourquoi &ecirc;tre prisonnier d'une solution
- propri&eacute;taire et d&eacute;pendant de votre fournisseur alors que vous
- pouvez avoir un vrai Syst&egrave;me Ouvert?</para>
-
- </listitem>
-
- <listitem>
- <para><emphasis>Documentation en ligne</emphasis> tr&egrave;s
- compl&egrave;te.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Et beaucoup d'autres choses
- encore!</emphasis></para>
- </listitem>
-
- </itemizedlist>
-
- <para>FreeBSD est bas&eacute; sur la version 4.4BSD-Lite2 du &ldquo;Computer
- Systems Research Group&rdquo; (CSRG) de l'Universit&eacute; de Californie &agrave;
- Berkeley et continue la tradition de d&eacute;veloppement renomm&eacute;e des
- syst&egrave;mes BSD. En plus de l'excellent travail fourni par le CSRG, le
- Projet FreeBSD a investi des milliers d'heures de travail pour
- optimiser le syst&egrave;me pour arriver aux meilleures performances et au
- maximum de fiabilit&eacute; sous la charge d'un environnement de production.
- Alors que la plupart des g&eacute;ants dans le domaine des syst&egrave;mes
- d'exploitation pour PC s'acharnent encore
- &agrave; obtenir de telles possibilit&eacute;s,
- performances et fiabilit&eacute;, FreeBSD peut les offrir
- <emphasis>d&egrave;s maintenant</emphasis>!</para>
-
- <para>La seule limite aux domaines d'application auxquels FreeBSD peut
- satisfaire est votre propre imagination. Du d&eacute;veloppement
- de logiciels &agrave; la production robotis&eacute;e, de la gestion de stocks &agrave;
- la correction d'azimuth pour les antennes satellites; si un
- Unix commercial peut le faire, il y a de tr&egrave;s fortes chances que
- FreeBSD le puisse aussi! FreeBSD b&eacute;n&eacute;ficie aussi
- de centaines d'applications de haute qualit&eacute; developp&eacute;es par les
- centres de recherche et les universit&eacute;s du monde entier, souvent
- disponibles gratuitement ou presque. Il existe aussi des applications
- commerciales et leur nombre cro&icirc;t de jour en jour.</para>
-
- <para>Comme le code source de FreeBSD lui-m&ecirc;me est globalement
- disponible, le syst&egrave;me peut aussi &ecirc;tre adapt&eacute; sur mesure &agrave; un
- point pratiquement jamais atteint pour des applications ou des
- projets particuliers, d'une fa&ccedil;on qui serait habituellement
- impossible avec les syst&egrave;mes d'exploitation commerciaux de la
- plupart des principaux fournisseurs. Voici juste quelques exemples
- d'applications pour lesquelles FreeBSD est utilis&eacute;:</para>
-
-
- <itemizedlist>
-
- <listitem>
- <para><emphasis>Services Internet:</emphasis> Les
- fonctionnalit&eacute;s r&eacute;seau TCP/IP robustes qu'inclut FreeBSD
- en font la plate-forme id&eacute;ale pour un &eacute;ventail de services
- Internet, tels que:</para>
- <itemizedlist>
-
- <listitem>
- <para>Serveurs FTP,</para>
- </listitem>
-
- <listitem>
- <para>Serveurs &ldquo;World Wide Web&rdquo;,</para>
- </listitem>
-
- <listitem>
- <para>Serveurs Gopher,</para>
- </listitem>
-
- <listitem>
- <para>Serveurs de courrier &eacute;lectronique,</para>
- </listitem>
-
- <listitem>
- <para>Serveurs de &ldquo;News
- USENET&rdquo;&nbsp;-&nbsp;forums
- de discussion,</para>
- </listitem>
-
- <listitem>
- <para>&ldquo;Bulletin Board Systems (BBS)&rdquo;,</para>
- </listitem>
-
- <listitem>
- <para>Et plus...</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Vous pouvez facilement commencer petit avec un PC 386 &agrave; bas
- prix et muscler votre configuration au fur et &agrave; mesure que
- votre entreprise grandit.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Education:</emphasis> Etes-vous &eacute;tudiant en
- informatique ou dans un domaine d'ing&eacute;nierie apparent&eacute;? Il
- n'y a pas de meilleur moyen pour &eacute;tudier les syst&egrave;mes
- d'exploitation, l'architecture des ordinateurs et les
- r&eacute;seaux que l'exp&eacute;rience directe et de
- &ldquo;derri&egrave;re la coulisse&rdquo;
- que FreeBSD peut vous apporter. Il y a aussi un grand nombre
- d'outils math&eacute;matiques, graphiques et de Conception Assist&eacute;e
- par Ordinateur qui en font en outil tr&egrave;s utile pour ceux qui
- s'int&eacute;ressent aux ordinateurs essentiellement pour faire un
- <emphasis>autre</emphasis> travail!</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Recherche:</emphasis> Avec le code source de la
- totalit&eacute; du syst&egrave;me disponible, FreeBSD est un excellent outil
- de recherche sur les syst&egrave;mes d'exploitation tout autant que
- pour d'autres branches de l'informatique. Le fait que FreeBSD
- soit librement disponible rend aussi possible l'&eacute;change d'id&eacute;es
- et le d&eacute;veloppement partag&eacute; entre groupes &eacute;loign&eacute;s sans avoir &agrave;
- se pr&eacute;occuper de probl&egrave;mes de licence particuli&egrave;res ou de
- restrictions &agrave; ce qui pourait &ecirc;tre discut&eacute; sur des forums
- ouverts.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>R&eacute;seau:</emphasis> Il vous faut un nouveau
- routeur? Un serveur de domaine (DNS)? Un coupe-feu pour tenir
- les gens &agrave; l'&eacute;cart de votre r&eacute;seau interne? FreeBSD peut
- facilement faire de votre vieux 386 ou 486 inutilis&eacute; qui
- tra&icirc;ne dans un coin un routeur &eacute;volu&eacute; avec des fonctionnalit&eacute;s
- sophistiqu&eacute;es de filtrage de paquets.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Station de travail X Window:</emphasis> FreeBSD
- est un excellent choix pour faire un terminal X peu co&ucirc;teux,
- soit avec le serveur XFree86 librement disponible, soit avec
- les excellents serveurs commerciaux de X Inside. Au contraire
- d'un terminal X, FreeBSD permet d'ex&eacute;cuter localement, si
- d&eacute;sir&eacute;, un grand nombre d'applications, d&eacute;chargeant ainsi
- le serveur central. FreeBSD peut m&ecirc;me d&eacute;marrer &ldquo;sans
- disque&rdquo;, ce qui permet de concevoir des postes de
- travail individuels moins chers et plus faciles &agrave;
- administrer.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>D&eacute;veloppement de logiciel:</emphasis> Le syst&egrave;me
- FreeBSD de base inclut un environnement de d&eacute;veloppement
- complet dont les compilateur et d&eacute;bogueur GNU C/C++
- r&eacute;put&eacute;s.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>FreeBSD est disponible sous forme de code source ou binaire sur
- CD-ROM ou par ftp anonyme, Voyez <link linkend="mirrors">Se procurer
- FreeBSD</link> pour plus de d&eacute;tails.</para>
-
- </sect1>
-
- <sect1 id="history">
- <title>Un court historique de FreeBSD</title>
-
- <para><emphasis>Contribution de &a.jkh;</emphasis>.</para>
-
- <para>Le projet FreeBSD a vu le jour au d&eacute;but de 1993, en partie
- comme extension du &ldquo;Kit de mise &agrave; jour non officiel de
- 386BSD&rdquo; des trois derniers coordinateurs du kit de mise &agrave;
- jour : Nate Williams, Rod Grimes et moi-m&ecirc;me.</para>
-
- <para>Notre objectif de d&eacute;part &eacute;tait de fournir une distribution
- interm&eacute;diaire de 386BSD pour corriger un certain nombre de
- probl&egrave;mes que le m&eacute;canisme du kit de mise &agrave; jour ne permettait
- pas de r&eacute;soudre. Certains d'entre vous se rappellent peut-&ecirc;tre
- que l'intitul&eacute; de travail d'origine du projet &eacute;tait
- &ldquo;386 BSD 0.5&rdquo; ou &ldquo;386BSD Interim&rdquo; en
- r&eacute;f&eacute;rence &agrave; ce probl&egrave;me.</para>
-
- <para>386BSD &eacute;tait le syst&egrave;me d'exploitation de Bill Jolitz, qui
- souffrait assez s&eacute;v&egrave;rement &agrave; ce moment-l&agrave; d'avoir &eacute;t&eacute; n&eacute;glig&eacute;
- presque un an. Comme le kit de mise &agrave; jour enflait de plus
- en plus inconfortablement au fil des jours, nous avons d&eacute;cid&eacute; &agrave;
- l'unanimit&eacute; qu'il fallait faire quelque chose et aider Bill en
- fournissant cette distribution provisoire de &ldquo;remise &agrave; plat&rdquo;.
- Ces projets se sont brutalement interrompus lorsque Bill a d&eacute;cid&eacute;
- de retirer son aval au projet sans dire
- clairement ce qui serait fait &agrave;
- la place.</para>
-
- <para>Il ne nous a pas fallu longtemps pour d&eacute;cider que l'objectif
- restait valable, m&ecirc;me sans l'adh&eacute;sion de Bill, et nous avons donc
- adopt&eacute; le nom &ldquo;FreeBSD&rdquo;, une proposition de David
- Greenman. Nos objectifs de d&eacute;part ont &eacute;t&eacute; d&eacute;finis apr&egrave;s avoir
- consult&eacute; les utilisateurs du moment du syst&egrave;me et, d&egrave;s qu'il est
- devenu clair que le projet &eacute;tait parti pour devenir un jour
- &eacute;ventuellement r&eacute;alit&eacute;, nous avons contact&eacute; Walnut
- Creek CDROM dans l'optique d'am&eacute;liorer la distribution de
- FreeBSD pour le grand nombre de ceux qui n'avaient pas la chance
- de pouvoir acc&eacute;der facilement &agrave; l'Internet. Non seulement Walnut
- Creek CDROM a adopt&eacute; l'id&eacute;e de distribuer FreeBSD sur CD-ROM, mais
- a &eacute;t&eacute; jusqu'&agrave; fournir au projet une machine pour travailler et
- une connexion rapide &agrave; l'Internet. Sans le degr&eacute; pratiquement
- sans pr&eacute;c&eacute;dent de confiance de Walnut Creek CDROM en ce qui n'&eacute;tait
- alors qu'un projet totalement inconnu, il y a peu de chance que
- FreeBSD ait &eacute;t&eacute; aussi loin, aussi vite, que l&agrave; o&ugrave; il en est
- aujourd'hui.</para>
-
- <para>La premi&egrave;re version sur CD-ROM (et sur l'ensemble du Net) fut
- FreeBSD 1.0, parue en D&eacute;cembre 1993. Elle reposait sur la bande
- 4.3BSD-Lite (&ldquo;Net/2&rdquo;) de l'Universit&eacute; de Californie &agrave;
- Berkeley, avec de nombreux composants venant aussi de 386BSD et de
- la &ldquo;Free Software Foundation&rdquo;. Ce fut un
- succ&egrave;s honn&ecirc;te pour une
- version initiale, qui fut suivi par le franc succ&egrave;s de la version 1.1
- de FreeBSD, publi&eacute;e en Mai 1994.</para>
-
- <para>A peu pr&egrave;s &agrave; cette &eacute;poque, des nuages mena&ccedil;ants et inattendus
- apparurent lorsque commen&ccedil;a la bataille juridique entre Novell et
- l'U.C. Berkley autour du statut l&eacute;gal de la bande Net/2 de
- Berkeley. Dans les termes de l'accord, l'U.C. Berkeley conc&eacute;dait
- qu'une grande partie de Net/2 &eacute;tait du code &ldquo;prot&eacute;g&eacute;&rdquo;
- et propri&eacute;t&eacute; de Novell, qui l'avait &agrave; son tour rachet&eacute; &agrave;
- AT&amp;T quelque temps auparavant. Berkeley obtint en retour la
- &ldquo;b&eacute;n&eacute;diction&rdquo; de Novell que 4.4BSD-Lite soit, lorsqu'il
- vit finalement le jour, d&eacute;clar&eacute; non prot&eacute;g&eacute; et que tous les
- utilisateurs de Net/2 soit fortement incit&eacute;s &agrave; migrer. Cela incluait
- FreeBSD, et l'on donna au projet jusqu'&agrave; Juillet 1994 pour mettre un
- terme &agrave; propre produit bas&eacute; sur Net/2. Selon les termes de cet accord,
- une derni&egrave;re livraison &eacute;tait autoris&eacute;e avant le d&eacute;lai final; ce
- fut FreeBSD 1.1.5.1.</para>
-
- <para>FreeBSD s'attela alors &agrave; la t&acirc;che difficile de litt&eacute;ralement se
- r&eacute;inventer &agrave; partir de fragments totalement nouveaux et assez
- incomplets de 4.4BSD-Lite. Les versions &ldquo;Lite&rdquo;
- &eacute;taient l&eacute;g&egrave;res (&ldquo;light&rdquo;) en partie parce que le
- CSRG avait retir&eacute; de gros morceaux du code n&eacute;cessaires pour que
- l'on puisse effectivement en faire un syst&egrave;me qui d&eacute;marre (pour
- diff&eacute;rentes raisons l&eacute;gales) et parce que le portage pour Intel
- de la version 4.4 &eacute;tait tr&egrave;s partiel. Il fallu au projet jusqu'&agrave;
- D&eacute;cembre 1994 pour terminer cette &eacute;tape de transition et FreeBSD 2.0
- parut sur l'Internet et sur CD-ROM en Janvier 1995. Bien qu'elle fut
- encore assez rugueuse aux angles, cette livraison obtint un succ&egrave;s
- significatif et fut suivie par la version 2.0.5 de FreeBSD, plus
- fiable et facile &agrave; installer.</para>
-
- <para>Nous avons publi&eacute; FreeBSD 2.1.5 en Ao&ucirc;t 1996, et il s'av&eacute;ra
- suffisamment populaire chez les fournisseurs d'acc&egrave;s et les
- utilisateurs professionnels pour qu'une nouvelle version sur
- la branche 2.1-stable soit justifi&eacute;e. Ce fut la version
- FreeBSD 2.1.7.1, parue en F&eacute;vrier 1997 et qui marque la fin de
- 2.1-stable comme branche principale de d&eacute;veloppement. D&egrave;s lors, il
- n'y aurait plus que des am&eacute;liorations quant &agrave; la s&eacute;curit&eacute; et autres
- corrections de bogues critiques sur cette branche, (RELENG_2_1_0),
- pass&eacute;e en phase de maintenance.</para>
-
- <para>La branche FreeBSD 2.2 fut cr&eacute;&eacute;e &agrave; partir de la branche principale
- de d&eacute;veloppement (&ldquo;-current&rdquo;) en Novembre 1996 en tant
- que branche RELENG_2_2, et la premi&egrave;re version compl&egrave;te (2.2.1) parut
- en Avril 1997. Il y eut d'autres versions sur la branche 2.2 &agrave; l'&eacute;t&eacute;
- et &agrave; l'automne 97, la plus r&eacute;cente &eacute;tant la 2.2.7, qui a &eacute;t&eacute; publi&eacute;e
- en Juillet 1998. La premi&egrave;re version officielle 3.0 sortira en
- Octobre 1998 et la derni&egrave;re version sur la branche 2.2, la version
- 2.2.8, en Novembre.</para>
-
- <para>Il y eut la cr&eacute;ation d'une nouvelle branche le 20
- Janvier 1999. Cela donna une branche 4.0-current et une branche
- 3.X-stable. De cette derni&egrave;re il y eut la version 3.1 livr&eacute;e le
- 15 F&eacute;vrier 1999 et la version 3.2 livr&eacute;e le 25 Mai 1999</para>
-
- <para>Tous les projets de d&eacute;veloppement &agrave; long terme, de SMP &agrave; la
- version DEC Alpha, continueront &agrave; se faire sur la branche 4.0-current
- et sur les versions d'instantan&eacute;s de la 4.0 sur CD-ROM (et bien s&ucirc;r
- sur l'Internet).</para>
-
- </sect1>
-
- <sect1 id="goals">
- <title>Les objectifs du projet FreeBSD</title>
-
- <para><emphasis>Contribution de &a.jkh;</emphasis>.</para>
-
- <para>L'objectif du projet FreeBSD est de fournir du logiciel qui
- puisse &ecirc;tre utilis&eacute; &agrave; n'importe quelle fin et sans aucun restriction.
- Nombre d'entre nous sont impliqu&eacute;s de fa&ccedil;on significative dans le
- code (et dans le projet) et ne refuseraient certainement pas une
- petite compensation financi&egrave;re de temps &agrave; autre, mais ce n'est
- certainement pas dans nos intentions d'insister l&agrave; dessus. Nous
- croyons que notre premi&egrave;re et principale &ldquo;mission&rdquo;
- est de fournir du code &agrave; tout le monde, pour n'importe quel projet,
- de fa&ccedil;on &agrave; ce que l'il soit utilis&eacute; le plus possible et avec
- le maximum d'avantages. C'est, nous le pensons, l'un des objectifs
- les plus fondamentaux du Logiciel Libre et l'un de ceux que nous
- soutenons avec enthousiasme.</para>
-
- <para>Le code de l'arborescence des sources, qui est r&eacute;gi par la
- Licence Publique GNU (&ldquo;GNU Public
- License&rdquo;&nbsp;-&nbsp;GPL) ou
- la Licence Publique GNU pour les Biblioth&egrave;ques (&ldquo;GNU Library
- Public License&rdquo;&nbsp;-&nbsp;GLPL) impose l&eacute;g&egrave;rement plus de
- contraintes, bien que plut&ocirc;t li&eacute;es &agrave; une disponibilit&eacute; plus grande
- qu'au contraire, comme c'est g&eacute;n&eacute;ralement le cas. En raison des
- complications suppl&eacute;mentaires qui peuvent r&eacute;sulter de l'utilisation
- commerciale de logiciels GPL, nous essayons, cependant de remplacer
- ces derniers par des logiciels soumis &agrave; la licence BSD qui est plus
- souple, chaque fois que c'est possible.</para>
-
- </sect1>
-
- <sect1 id="development">
- <title>Le mode de d&eacute;veloppement de FreeBSD</title>
-
- <para><emphasis>Contribution de &a.asami;</emphasis>.</para>
-
- <para>Le d&eacute;veloppement de FreeBSD est un processus tr&egrave;s ouvert et
- tr&egrave;s souple, FreeBSD est litt&eacute;ralement le r&eacute;sultat de
- contributions de centaines de personnes dans le mode entier,
- ce que refl&egrave;te notre <link linkend="staff">liste des
- participants</link>. Nous sommes toujours &agrave; l'affut de nouveaux
- d&eacute;veloppeurs et de nouvelles id&eacute;es, et ceux que s'impliquer
- de plus pr&egrave;s int&eacute;resse n'ont besoin que de contacter la
- &a.hackers;. Ceux qui pr&eacute;f&egrave;rent travailler de fa&ccedil;on plus
- ind&eacute;pendante sont aussi accept&eacute;s, et sont libres d'utiliser nos
- possibilit&eacute;s de FTP sur <ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/incoming">ftp.freebsd.org</ulink>
- pour livrer leurs propres modifications ou sources en cours de
- d&eacute;veloppement. La &a.announce; est aussi disponible pour ceux qui
- veulent faire conna&icirc;tre aux autres utilisateurs de FreeBSD les
- principaux domaines de d&eacute;veloppement en cours.</para>
-
- <para>Quelques points utiles &agrave; conna&icirc;tre &agrave; propos du projet FreeBSD
- et de son processus de d&eacute;veloppement, que vous travailliez
- ind&eacute;pendamment ou en collaboration &eacute;troite:</para>
-
- <variablelist>
- <varlistentry><term>Les archives CVS
- <anchor id="development-cvs-repository"></term>
- <listitem>
- <para>L'arborescence centrale des sources de FreeBSD est g&eacute;r&eacute;e
- sous <ulink
- url="http://www.cyclic.com/cyclic-pages/CVS-sheet.html">CVS</ulink> (&ldquo;Concurrent Version System&rdquo;),
- un syst&egrave;me librement disponible de gestion de
- version des sources qui est livr&eacute; avec FreeBSD. Les
- <ulink url="http://www.freebsd.org/cgi/cvsweb.cgi">archives
- CVS</ulink> d'origine sont sur une machine &agrave; Concord, CA, USA,
- d'o&ugrave; elles sont r&eacute;pliqu&eacute;es sur de nombreuses machines miroir
- &agrave; travers le monde. L'arborescence CVS, et les branches
- <link linkend="current">-current</link> et <link
- linkend="stable">-stable</link> qui en sont extraites,
- peuvent facilement &ecirc;tre dupliqu&eacute;es sur votre propre machine.
- Reportez-vous &agrave; la section
- <link linkend="synching">Synchroniser votre arborescence des
- sources</link> pour plus d'informations sur la fa&ccedil;on de
- proc&eacute;der.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>La liste des personnes autoris&eacute;es, les &ldquo;commiters&rdquo;
- <anchor id="development-committers"></term>
-
- <listitem>
- <para>Les <link linkend="staff-committers">personnes
- autoris&eacute;es (&ldquo;committers&rdquo;)</link> sont celles qui
- ont les droits en
- <emphasis>&eacute;criture</emphasis> sur l'arborescence CVS, et sont
- donc autoris&eacute;es &agrave; faire des modifications dans les sources
- de FreeBSD (le terme &ldquo;committer&rdquo; vient de la
- commande
- <citerefentry><refentrytitle>cvs</refentrytitle><manvolnum>1</manvolnum></citerefentry> <command>commit</command>, que l'on utilise pour
- reporter des modifications dans les archives CVS). La
- meilleure fa&ccedil;on de proposer des modifications pour qu'elles
- soient valid&eacute;es par les &ldquo;committers&rdquo; est
- d'utiliser la commande
- <citerefentry><refentrytitle>send-pr</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- quoique, s'il semble y avoir un probl&egrave;me avec ce syst&egrave;me, vous
- pouvez aussi les joindre en envoyant un courrier &eacute;lectronique
- aux <email>committers@freebsd.org</email>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>L'&eacute;quipe de base de
- FreeBSD<anchor id="development-core"></term>
-
- <listitem>
- <para><link linkend="staff-core">L'&eacute;quipe de base de
- FreeBSD</link> serait l'&eacute;quivalent du comit&eacute; de direction
- si le Projet FreeBSD &eacute;tait une entreprise. La responsabilit&eacute;
- principale de l'&eacute;quipe de base est de s'assurer que le projet,
- dans son ensemble, fonctionne correctement et va dans la
- bonne direction. Proposer &agrave; des d&eacute;veloppeurs impliqu&eacute;s et
- responsables de rejoindre notre groupe de personnes autoris&eacute;es
- est une des fonctions de l'&eacute;quipe de base, ainsi que le
- recrutement de nouveaux membres de l'&eacute;quipe de base quand
- d'autres s'en vont. La plupart des membres actuels de
- l'&eacute;quipe de base ont d'abord &eacute;t&eacute; des &ldquo;commiters&rdquo;
- dont l'attachement au projet a mobilis&eacute; la meilleure part
- d'eux-m&ecirc;mes.</para>
-
- <para>Certains membres de l'&eacute;quipe de base ont aussi leur
- propre <link
- linkend="staff-who">domaine de responsabilit&eacute;</link>,
- ce qui signifie qu'il leur est d&eacute;volu de veiller &agrave; ce
- qu'une partie significative du syst&egrave;me satisfasse aux
- fonctionnalit&eacute;s annonc&eacute;es.</para>
-
- <note>
- <para>La plupart des membres de l'&eacute;quipe de base sont
- volontaires en ce qui concerne le d&eacute;veloppement de FreeBSD
- et ne retirent aucun profit financier du projet, donc
- &ldquo;implication&rdquo; ne doit pas &ecirc;tre compris
- &ldquo;support garanti&rdquo;. La comparaison pr&eacute;c&eacute;dente
- avec un comit&eacute; directeur n'est pas tr&egrave;s exacte, et il
- serait plus juste de dire que ce sont des gens qui ont
- sacrifi&eacute; leur vie &agrave; FreeBSD contre toute raison!
- <!-- smiley --><emphasis>;)</emphasis></para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Contributions ext&eacute;rieures</term>
-
- <listitem>
- <para>Enfin, mais certainement pas des moindres, le groupe le
- plus important de d&eacute;veloppeurs est constitu&eacute; par les
- utilisateurs eux-m&ecirc;mes qui nous fournissent de fa&ccedil;on quasi
- r&eacute;guli&egrave;re leur retour d'exp&eacute;rience et leurs corrections de
- bogues. Le principal moyen d'entrer en contact avec le
- d&eacute;veloppement plus d&eacute;centralis&eacute; de FreeBSD est
- de s'inscrire sur la &a.hackers; (voyez les informations
- sur les <link linkend="eresources-mail">listes de
- discussion</link>), o&ugrave; ces questions sont abord&eacute;es.</para>
-
- <para>La <link linkend="contrib-additional">liste</link> de
- ceux qui ont fourni quelque chose qui a trouv&eacute; son chemin
- jusqu'&agrave; notre arborescence des sources est longue et
- s'accro&icirc;t sans cesse, pourquoi donc ne pas vous y joindre
- et contribuer &agrave; quelque chose en retour d&egrave;s
- aujourd'hui? <!-- smiley --><emphasis>:-)</emphasis></para>
-
- <para>Fournir du code n'est pas la seule mani&egrave;re de contribuer
- au projet. Pour avoir une liste plus compl&egrave;te de ce qu'il y
- a &agrave; faire, voyez s'il vous pla&icirc;t la section
- <link linkend="contrib">Comment contribuer</link> de ce
- manuel.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>En r&eacute;sum&eacute;, notre mod&egrave;le de d&eacute;veloppement est organis&eacute; comme
- un ensemble relach&eacute; de cercles concentriques. Ce mod&egrave;le centralis&eacute;
- est en place pour la commodit&eacute; des <emphasis>utilisateurs</emphasis>
- de FreeBSD, qui disposent ainsi d'un moyen facile de suivre
- l'&eacute;volution d'une base de code centrale, et non pour tenir &agrave; l'&eacute;cart
- d'&eacute;ventuels participants! Nous souhaitons fournir un syst&egrave;me
- d'exploitation stable avec un nombre cons&eacute;quent de
- <link linkend="ports">programmes d'application</link> coh&eacute;rents que
- les utilisateurs puissent facilement installer et employer,
- et c'est un mod&egrave;le qui fonctionne tr&egrave;s bien pour cela.</para>
-
- <para>Tout ce que nous attendons de ceux qui se joindraient &agrave; nous
- pour d&eacute;velopper FreeBSD est un peu de la m&ecirc;me implication que les
- d&eacute;veloppeurs actuels ont vis-&agrave;-vis de sa r&eacute;ussite continue!</para>
-
- </sect1>
-
- <sect1 id="relnotes">
- <title>A propos de cette version</title>
-
- <para>FreeBSD est une version librement disponible et incluant tout
- le code source bas&eacute; sur 4.4BSD-Lite2 pour les PCs &agrave; architecture
- Intel i386/i486/Pentium/PentiumPro/Pentium II (ou
- compatible) et DEC Alpha . Il est bas&eacute; essentiellement sur
- du logiciel du groupe CSRG de l'Universit&eacute; de Californie &agrave;
- Berkeley, avec des additions venant de NetBSD, OpenBSD, 386BSD,
- et de la &ldquo;Free Software Foundation&rdquo;.</para>
-
-
- <para>Depuis la publication de FreeBSD 2.0 en Janvier 95, les
- performances, fonctionnalit&eacute;s et la stabilit&eacute; de FreeBSD ont
- &eacute;t&eacute; am&eacute;lior&eacute;es de fa&ccedil;on spectaculaire. La plus grosse modification
- est un gestionnaire de m&eacute;moire virtuelle totalement revu qui
- comprend un cache commun au disque et &agrave; la m&eacute;moire virtuelle, qui
- n'am&eacute;liore pas seulement les performances, mais diminue aussi
- l'occupation de la m&eacute;moire, de telle sorte qu'une configuration avec
- 5MB devienne un minimum acceptable. D'autres ajouts concernent le
- support int&eacute;gral des clients et serveurs NIS, le support des
- transactions TCP, les connexions PPP &agrave; la demande, un sous-syst&egrave;me
- SCSI am&eacute;lior&eacute;, un premier support ISDN, les supports des interfaces
- FDDI et &ldquo;Fast Ethernet&rdquo; (100 Mbit), un meilleur support
- du contr&ocirc;leur Adaptec 2940 (Wide et normal) et des centaines de
- corrections de bogues.</para>
-
- <para>Nous avons aussi pris en consid&eacute;ration les commentaires et les
- suggestions de nombre de nos utilisateurs et avons essay&eacute; de
- fournir ce que nous esp&eacute;rons &ecirc;tre une proc&eacute;dure d'installation
- plus saine et facile &agrave; comprendre. Votre avis en retour
- sur cette proc&eacute;dure (constamment en &eacute;volution) sera
- particuli&egrave;rement le bienvenu!</para>
-
- <para>En plus du syst&egrave;me lui-m&ecirc;me, FreeBSD offre un nouveau catalogue
- de logiciels port&eacute;s (&ldquo;ports&rdquo;) qui inclut
- des centaines de programmes
- habituellement demand&eacute;s. A la fin Avril 1999, il y en avait plus de
- 2300! La liste va des serveurs HTTP (WWW) aux jeux, langages,
- &eacute;diteurs et presque tout ce qui existe entre. Le catalogue complet
- des logiciels demande pr&egrave;s de 50MB d'espace disque, les portages se
- pr&eacute;sentant sous forme de &ldquo;delta&rdquo; avec les sources
- d'origine. Cela rend leur mise &agrave; jour bien plus facile, et diminue
- de facon sensible l'espace n&eacute;cessaire par rapport &agrave; l'ancien
- catalogue 1.0. Pour compiler un logiciel port&eacute;, il vous suffit
- d'aller dans le r&eacute;pertoire o&ugrave; il se trouve, de taper
- <command>make all</command>, puis <command>make install</command>
- une fois la compilation r&eacute;ussie, et de laisser le syst&egrave;me faire
- le reste. La distribution originale compl&egrave;te de chaque logiciel est
- charg&eacute;e dynamiquement depuis le CD-ROM ou un site ftp proche, il vous
- suffit de disposer de suffisamment de place pour compiler le logiciel
- que vous voulez. (Presque) tous les logiciels sont aussi fournis
- sous forme pr&eacute;-compil&eacute;e (&ldquo;package&rdquo;) qui s'installe
- en une seule commande (<command>pkg_add</command>), si vous ne voulez
- pas les compiler &agrave; partir du source.</para>
-
- <para>Il y a un certain nombre d'autres documents qui vous serons
- peut-&ecirc;tre tr&egrave;s utiles &agrave; l'installation et &agrave; l'utilisation de
- FreeBSD, que vous pouvez maintenant trouver dans le r&eacute;pertoire
- <filename>/usr/share/doc</filename> de n'importe quelle machine
- sous FreeBSD 2.1 ou ult&eacute;rieur. Vous pouvez consulter les manuels
- localement disponibles avec n'importe quel navigateur HTML aux
- URLs suivantes:</para>
-
-
- <variablelist>
- <varlistentry><term>Le manuel FreeBSD</term>
- <listitem>
- <para><ulink
- url="file:/usr/share/doc/handbook/handbook.html">file:/usr/share/doc/handbook/handbook.html</ulink></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>La FAQ FreeBSD</term>
-
- <listitem>
- <para><ulink
- url="file:/usr/share/doc/FAQ/FAQ.html">file:/usr/share/doc/FAQ/FAQ.html</ulink></para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>Vous pouvez aussi consulter les exemplaires originaux (et les plus
- souvent mis &agrave; jour) sur <ulink
- url="http://www.freebsd.org">http://www.freebsd.org</ulink>.</para>
-
- <para>Le coeur de FreeBSD ne contient pas de code DES qui en
- emp&ecirc;cherait l'exportation &agrave; l'ext&eacute;rieur des Etats-Unis. Il y a un
- suppl&eacute;ment &agrave; la version de base, utilisable aux Etats-Unis
- uniquement, qui contient les programmes qui utilisent habituellement
- le DES. Les logiciels auxiliaires fournis s&eacute;parement peuvent &ecirc;tre
- utilis&eacute;s par tout le monde. Il y a aussi une version Europ&eacute;enne
- librement exportable (d'ailleurs que des Etats-Unis) du DES pour nos
- utilisateurs non am&eacute;ricains, qui est d&eacute;crite dans la
- <ulink url="&url.faq;index.html">FAQ FreeBSD</ulink>.</para>
-
- <para>Si vous ne voulez que des mots de passe s&ucirc;rs, et que vous n'avez
- pas besoin de copier de mots de passe venant de machines diff&eacute;rentes
- (des machines Suns, DEC, etc) vers des mots de passe FreeBSD, alors
- l'encodage FreeBSD bas&eacute; sur MD5 est probablement tout ce qu'il vous
- faut. Nous pensons que notre mod&egrave;le de s&eacute;curit&eacute; par d&eacute;faut est mieux
- qu'un concurrent du DES, et il n'est
- pas encombr&eacute; de tous ces probl&egrave;mes
- d&eacute;licats d'exportation. Si vous &ecirc;tes &agrave; l'ext&eacute;rieur, ou m&ecirc;me aux
- Etats-Unis, essayez-le donc!</para>
-
- </sect1>
- </chapter>
-
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
deleted file mode 100755
index 8a93fa5956..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ /dev/null
@@ -1,1876 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="kernelconfig">
- <title>Configurer le noyau de FreeBSD</title>
-
- <para><emphasis>Contribution de &a.jehamby;.<!-- <br> -->6 Octobre
- 1995.</emphasis></para>
- &trans.a.haby;
-
- <para>Cette longue section du manuel d&eacute;crit l'essentiel de la
- configuration d'un noyau FreeBSD adapt&eacute; &agrave; vos besoins propres.
- Elle concerne tout autant les administrateurs syst&egrave;me d&eacute;butants
- que ceux qui ont une vaste exp&eacute;rience d'Unix.</para>
-
-
- <sect1>
- <title>Pourquoi compiler un noyau sur mesure?</title>
-
- <para>G&eacute;n&eacute;rer un noyau sur mesure est l'un des plus importants
- rites de passage que doit endurer tout administrateur syst&egrave;me
- Unix. Cette op&eacute;ration, qui prend du temps, apportera de nombreuses
- am&eacute;liorations &agrave; votre syst&egrave;me FreeBSD. A l'inverse du noyau
- <literal>GENERIC</literal>, qui doit supporter toutes les
- cartes SCSI et r&eacute;seau possibles, ainsi qu'une tonne de mat&eacute;riels
- rarement utilis&eacute;s, un noyau sur mesure n'inclut que le support
- de <emphasis>votre</emphasis> configuration mat&eacute;rielle. Cela a
- de nombreux avantages:</para>
-
- <para>
- <itemizedlist>
-
- <listitem>
- <para>Le syst&egrave;me d&eacute;marrera plus rapidement parce qu'il ne perdra
- pas de temps &agrave; rechercher des p&eacute;riph&eacute;riques que vous n'avez
- pas.</para>
- </listitem>
-
- <listitem>
- <para>Un noyau personnalis&eacute; monopolise souvent moins de m&eacute;moire,
- ce qui est important parce que le noyau est le processus qui
- doit toujours r&eacute;sider en m&eacute;moire, ce qui fait que tout le
- code inutilis&eacute; s'approprie des pages m&eacute;moire que vos programmes
- pourraient utiliser. D'o&ugrave; l'importance critique de g&eacute;n&eacute;rer un
- noyau sur mesure sur un syst&egrave;me dont les ressources m&eacute;moire
- sont limit&eacute;es.</para>
- </listitem>
-
- <listitem>
- <para>Enfin, il y a plusieurs options du noyau que vous pouvez
- ajuster &agrave; vos besoins, et des pilotes pour des p&eacute;riph&eacute;riques
- comme les cartes son que vous pouvez inclure dans votre
- noyau, mais qui <emphasis>ne sont pas</emphasis> dans le
- noyau g&eacute;n&eacute;rique.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- </sect1>
-
- <sect1
- id="kernelconfig-building">
- <title>Compiler et installer un noyau sur mesure</title>
-
- <para>Commen&ccedil;ons par passer rapidement en revue le r&eacute;pertoire
- de configuration du noyau. Tous les chemins d'acc&egrave;s mentionn&eacute;s
- seront relatifs au r&eacute;pertoire principal
- <filename>/usr/src/sys</filename>, auquel on acc&egrave;de aussi via
- le lien symbolique <filename>/sys</filename>. Il comporte un
- certain nombre de sous-r&eacute;pertoires correspondants &agrave; diff&eacute;rentes
- parties du noyau, mais les plus importants, en ce qui nous
- concerne, sont <filename>i386/conf</filename>, o&ugrave; nous &eacute;diterons
- notre fichier de configuration personnalis&eacute;e, et
- <filename>compile</filename>, qui est l'espace de travail o&ugrave; nous
- g&eacute;n&eacute;rerons notre noyau. Remarquez l'organisation logique de
- l'arborescence des r&eacute;pertoires, o&ugrave; chaque p&eacute;riph&eacute;rique, syst&egrave;me
- de fichiers et option support&eacute; a son propre sous-r&eacute;pertoire. D'autre
- part, tout ce qui ce trouve dans le r&eacute;pertoire
- <filename>i386</filename> est propre au mat&eacute;riel PC, alors que tout
- le reste est commun &agrave; toutes les plates-formes sur lesquelles
- FreeBSD pourrait potentiellement &ecirc;tre port&eacute;.</para>
-
- <note>
- <para>S'il <emphasis>n'y a pas</emphasis> de r&eacute;pertoire
- <filename>/usr/src/sys</filename> sur votre syst&egrave;me, c'est que les
- sources du noyau n'ont pas &eacute;t&eacute; install&eacute;s. Suivez les instructions
- d'installation pour ajouter cette distribution &agrave; votre
- syst&egrave;me.</para>
- </note>
-
- <para>Allez ensuite dans le r&eacute;pertoire <filename>i386/conf</filename>
- et copiez le fichier de configuration <filename>GENERIC</filename>
- dans un fichier qui aura le nom que vous voulez donner &agrave; votre
- nouveau noyau. Par exemple:
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
-&prompt.root; <userinput>cp GENERIC MONNOYAU</userinput></screen>
- </informalexample> Par tradition, c'est un nom en majuscules, et
- si vous maintenez plusieurs machines FreeBSD avec des configurations
- diff&eacute;rentes, c'est une bonne id&eacute;e de lui donner le m&ecirc;me nom que
- la machine. Nous l'appelerons <filename>MONNOYAU</filename>
- pour les besoins de notre exemple.</para>
-
- <note>
- <para>Tout cela doit &ecirc;tre fait sous le compte super-utilisateur sans
- quoi vous aurez des erreurs
- &ldquo;<errortype>permission denied</errortype>&rdquo;.</para>
- </note>
-
- <para>Editez maintenant <filename>MONNOYAU</filename> avec votre &eacute;diteur
- de texte pr&eacute;f&eacute;r&eacute;. Si vous venez tout juste de finir l'installation, le
- seul &eacute;diteur disponible est probablement <command>vi</command>, qui
- est trop complexe pour &ecirc;tre d&eacute;crit ici, mais est bien expliqu&eacute; dans
- de nombreux ouvrages de la
- <link linkend="bibliography">Bibliographie</link>.
- N'h&eacute;sitez pas
- &agrave; modifier les commentaires d'en-t&ecirc;te pour y d&eacute;crire votre
- configuration ou les modifications que vous avez apport&eacute;es par rapport
- &agrave; <filename>GENERIC</filename>.</para>
-
- <para>Si vous avez d&eacute;j&agrave; compil&eacute; un noyau sur SunOs ou tout autre
- syst&egrave;me d'exploitation BSD, l'essentiel de ce que contient le
- fichier vous sera tr&egrave;s familier. Si vous venez d'un autre syst&egrave;me
- d'exploitation comme DOS, &agrave; l'inverse, le fichier de configuration
- vous para&icirc;tra peut-&ecirc;tre inintelligible, lisez alors lentement et
- attentivement la description qui en est faite dans la section
- <link linkend="kernelconfig-config">Fichier de configuration</link>.</para>
-
- <note>
- <para>Si vous essayez de mettre &agrave; jour votre noyau &agrave; partir d'une
- ancienne version de FreeBSD, il vous faudra probablement une
- version r&eacute;cente de
- <citerefentry><refentrytitle>config</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- de m&ecirc;me origine que les sources du nouveau noyau. Vous la trouverez
- dans le r&eacute;pertoire <filename>/usr/src/usr.sbin</filename>. Il vous
- faudra donc t&eacute;l&eacute;charger aussi les sources de cet utilitaire.
- Recompilez et installez-le avant de faire autre chose.</para>
- </note>
-
- <para>Une fois que vous avez termin&eacute;, tapez la commande suivante pour
- compiler et installer votre noyau:
-
- <informalexample>
- <screen>&prompt.root; <userinput>/usr/sbin/config MONNOYAU</userinput>
-&prompt.root; <userinput>cd ../../compile/MONNOYAU</userinput>
-&prompt.root; <userinput>make depend</userinput>
-&prompt.root; <userinput>make</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
- </informalexample> Le nouveau noyau sera recopi&eacute; dans le r&eacute;pertoire
- racine sous le nom <filename>/kernel</filename> et l'ancien renomm&eacute;
- en <filename>/kernel.old</filename>. Arr&ecirc;tez maintenant votre syst&egrave;me
- et red&eacute;marrez-le pour utiliser votre nouveau noyau. Si
- quelque chose tourne mal, il y a quelques instructions de
- <link linkend="kernelconfig-trouble">d&eacute;pannage</link>
- &agrave; la fin de ce document. Ayez soin de lire la section qui explique
- comment vous en sortir si votre nouveau noyau ne
- <link linkend="kernelconfig-noboot">d&eacute;marre pas</link>.</para>
-
- <note>
- <para>Si vous avez ajout&eacute; de nouveaux p&eacute;riph&eacute;riques (cartes son,
- par exemple), vous devrez peut-&ecirc;tre ajouter des
- <link linkend="kernelconfig-nodes">fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques</link>
- dans votre r&eacute;pertoire <filename>/dev</filename> avant de pouvoir les
- utiliser.</para>
- </note>
-
- </sect1>
-
- <sect1
- id="kernelconfig-config">
- <title>Le fichier de configuration</title>
-
- <para>Le format g&eacute;n&eacute;ral du fichier de configuration est assez simple.
- Chaque ligne est compos&eacute;e d'un mot-cl&eacute; et d'un ou plusieurs
- arguments. Pour simplifier, la plupart des lignes ne prennent
- qu'un seul argument. Tout ce qui suit le caract&egrave;re
- <literal>#</literal> est consid&eacute;r&eacute; comme un commentaire et ignor&eacute;.
- Les sections suivantes d&eacute;crivent chaque mot-cl&eacute;, normalement dans
- l'ordre o&ugrave; ils appara&icirc;ssent dans le fichier
- <filename>GENERIC</filename>, quoique certains mots-cl&eacute;s
- apparent&eacute;s aient &eacute;t&eacute; regroup&eacute;s en une seule section (R&eacute;seau par
- exemple) bien qu'ils soient en fait dispers&eacute;s dans le fichier
- <filename>GENERIC</filename>.
- <anchor id="kernelconfig-options">Il y a une liste exhaustive et
- des explications plus d&eacute;taill&eacute;es des lignes se rapportant aux
- p&eacute;riph&eacute;riques dans le fichier de configuration
- <filename>LINT</filename>, qui se trouve dans le
- m&ecirc;me r&eacute;pertoire que <filename>GENERIC</filename>. Si vous avez des
- doutes sur la signification ou la n&eacute;cessit&eacute; d'une ligne, consultez
- d'abord le fichier <filename>LINT</filename>.</para>
-
- <para>Le noyau est en cours de r&eacute;organisation pour une meilleure
- gestion des options. Traditionnellement, chaque option du fichier
- de configuration se traduisait par un indicateur <option>-D</option>
- dans la ligne <acronym>CFLAGS</acronym> du fichier
- <filename>Makefile</filename> du noyau. D'o&ugrave; une pl&eacute;thore d'options,
- dont personne ne savait vraiment lesquelles &eacute;taient r&eacute;f&eacute;renc&eacute;es dans
- quels fichiers.</para>
-
- <para>Dans le nouveau mod&egrave;le, chaque <literal>#ifdef</literal>
- qui d&eacute;pend d'une option la d&eacute;duit d'un fichier de d&eacute;clarations
- <filename>opt_<replaceable>foo</replaceable>.h</filename>
- cr&eacute;&eacute; par la commande <command>config</command> dans le r&eacute;pertoire
- de compilation. La liste des options valides de
- <command>config</command> est d&eacute;finie par deux fichiers: les options
- ind&eacute;pendantes de l'architecture dans
- <filename>/sys/conf/options</filename>, et celles qui en d&eacute;pendent
- dans
- <filename>/sys/<replaceable>arch</replaceable>/conf/options.<replaceable>arch</replaceable></filename>,
- o&ugrave; <emphasis>arch</emphasis> vaut par exemple
- <filename>i386</filename>.</para>
-
-
- <sect2>
- <title>Mots-cl&eacute;s obligatoires</title>
-
- <para>Ces mots-cl&eacute;s sont requis pour tous les noyaux que vous
- g&eacute;n&eacute;rez.</para>
-
-
- <variablelist>
- <varlistentry><term>machine "i386"</term>
- <listitem>
- <para>Le premier mot-cl&eacute; est <literal>machine</literal>,
- qui, &eacute;tant donn&eacute; que FreeBSD ne tourne que sur des
- processeurs Intel 386 ou compatibles, vaut i386.</para>
-
- <note>
- <para>Tous les mots-cl&eacute;s compos&eacute;s d'une cha&icirc;ne de
- caract&egrave;res comportant des chiffres doivent &ecirc;tre
- mis entre guillemets, sans quoi le programme
- <command>config</command> ne les comprend pas et
- pense que vous faites r&eacute;f&eacute;rence &agrave; la valeur
- num&eacute;rique, 386, par exemple.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>cpu "<replaceable>mod&egrave;le_de_cpu</replaceable>"</term>
-
- <listitem>
- <para>Le mot-cl&eacute; suivant est <literal>cpu</literal>,
- qui d&eacute;finit le support de chaque CPU reconnue par FreeBSD.
- Les valeurs possibles de
- <replaceable>mod&egrave;le_de_cpu</replaceable> sont:
- <itemizedlist>
-
- <listitem>
- <para>I386_CPU</para>
- </listitem>
-
- <listitem>
- <para>I486_CPU</para>
- </listitem>
-
- <listitem>
- <para>I586_CPU</para>
- </listitem>
-
- <listitem>
- <para>I686_CPU</para>
- </listitem>
-
- </itemizedlist>Il peut y avoir plusieurs occurences de la
- ligne <literal>cpu</literal> avec des valeurs diff&eacute;rentes
- de <replaceable>mod&egrave;le_de_cpu</replaceable> comme c'est
- le cas dans le noyau <filename>GENERIC</filename>.
- Dans le cas d'un noyau sur mesure, il vaut mieux n'indiquer
- que l'unit&eacute; centrale que vous avez. Si, par exemple, c'est
- un Pentium Intel, donnez la valeur
- <literal>I586_CPU</literal> &agrave;
- <replaceable>mod&egrave;le_de_cpu</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>ident <replaceable>nom_du_noyau</replaceable></term>
-
- <listitem>
- <para>Ensuite vient <literal>ident</literal>,
- qui est l'identifiant de votre noyau. Vous devriez
- le modifier pour remplacer <literal>GENERIC</literal>
- par le nom, quel qu'il soit, que vous donnez &agrave; votre
- noyau; dans notre exemple,
- <literal>MONNOYAU</literal>. La valeur que vous donnez &agrave;
- <literal>ident</literal> s'affiche au d&eacute;marrage du
- syst&egrave;me, il est donc parfois utile de lui donner un nom
- diff&eacute;rent du nom habituel (par exemple, si vous compilez
- un noyau exp&eacute;rimental). Notez bien qu'il faut, comme pour
- <literal>machine</literal> et <literal>cpu</literal>,
- mettre le nom de votre noyau entre guillements, s'il
- comporte des chiffres.</para>
-
- <para>Comme ce nom est transmis au compilateur C apr&egrave;s un
- indicateur <option>-D</option>, n'utilisez pas de nom
- du genre <literal>DEBUG</literal>, ou qui puisse &ecirc;tre
- compris comme un nom de machine ou de CPU, du style
- <literal>vax</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>maxusers <replaceable>nombre</replaceable></term>
-
- <listitem>
- <para>Cette ligne d&eacute;finit la taille d'un certain nombre
- de tables importantes du syst&egrave;me. Cette valeur est
- suppos&eacute;e &ecirc;tre en gros &eacute;gale au nombre d'utilisateurs
- simultan&eacute;s que vous vous attendez &agrave; avoir sur votre
- syst&egrave;me. Cependant, dans des conditions normales,
- vous devez fixer <literal>maxusers</literal> &agrave;
- <literal>4</literal> au moins, en particulier si
- vous utilisez le sous-syst&egrave;me graphique X Window
- ou compilez des logiciels. En effet, la valeur la plus
- importante que dimensionne <literal>maxusers</literal>
- est le nombre maximum de processus, qui est fix&eacute; &agrave;
- <literal>20 + 16 * maxusers</literal>, de sorte que si
- vous positionnez <literal>maxusers</literal> &agrave;
- <literal>1</literal>, vous ne pouvez avoir que 36
- processus simultan&eacute;s, dont les 18 environ que le syst&egrave;me
- lance au d&eacute;marrage, et les 15 &agrave; peu pr&egrave;s qui s'initialisent
- au d&eacute;marrage de X Window. M&ecirc;me une action aussi simple
- que de lire une page de manuel activera 9 processus pour
- la filtrer, la d&eacute;compresser et la visualiser. Donner &agrave;
- <literal>maxusers</literal> la valeur <literal>4</literal>
- autorise jusqu'&agrave; 84 processus simultan&eacute;s, ce qui devrait
- suffire dans la plupart des cas. Si, toutefois, vous avez
- le message d'erreur tant redout&eacute;
- <errorname>proc table full</errorname> quand vous tentez
- d'ex&eacute;cuter un nouveau programme, ou g&eacute;rez un serveur
- avec de nombreux utilisateurs simultan&eacute;s
- (tel le site FTP de Walnut Creek CDROM), vous pouvez
- toujours augmenter cette valeur et recompiler le
- noyau.</para>
-
- <note>
- <para><literal>maxusers</literal>
- <emphasis>ne limite pas</emphasis> le nombre
- d'utilisateurs qui pourront ouvrir une session sur
- votre machine. Cette valeur dimensionne simplement
- raisonnablement diff&eacute;rentes tables en fonction
- du nombre maximum d'utilisateurs que vous aurez
- vraisemblablement sur votre machine et du nombre
- de processus que chacun d'entre eux ex&eacute;cutera. Un
- mot-cl&eacute; qui <emphasis>limite</emphasis> le nombre
- d'<emphasis>utilisateurs distants</emphasis> est
- <link linkend="kernelconfig-ptys">pseudo-device pty</link>.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>config <replaceable>nom_du_noyau</replaceable> root on
- <replaceable>p&eacute;riph&eacute;rique_racine</replaceable></term>
-
- <listitem>
- <para>Cette ligne d&eacute;finit le nom et la localisation du
- (fichier ex&eacute;cutable du) noyau. Traditionnellement,
- le noyau s'appelle
- <filename>vmunix</filename>, mais FreeBSD l'appelle, &agrave; juste
- titre, <filename>kernel</filename>. Vous devriez toujours
- utiliser <literal>kernel</literal> pour
- <replaceable>nom_du_noyau</replaceable>, parce qu'en changer
- rendra nombre d'utilitaires syst&egrave;me inop&eacute;rants. La deuxi&egrave;me
- partie de la ligne indique sur quel disque et partition
- r&eacute;sident le noyau et le syst&egrave;me de fichiers racine,
- typiquement <literal>wd0</literal> sur un syst&egrave;me sans
- disque SCSI, et <literal>sd0</literal> sur un syst&egrave;me
- avec des disques SCSI.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2>
- <title>Options g&eacute;n&eacute;rales</title>
-
- <para>Ces lignes d&eacute;finissent les syst&egrave;mes de fichiers support&eacute;s
- par le noyau ainsi que certaines autres options.</para>
-
- <para>
- <variablelist>
- <varlistentry><term>options MATH_EMULATE</term>
- <listitem>
- <para>Cette ligne permet au noyau d'&eacute;muler un
- co-processeur math&eacute;matique si votre syst&egrave;me
- n'en a pas (386 ou 486SX). Si vous avez un Pentium,
- un 486DX, ou un 386 ou 486SX avec un co-processeur
- math&eacute;matique 387 ou 487, vous pouvez mettre cette
- ligne en commentaire.</para>
-
- <note>
- <para>Les sous-programmes standards d'&eacute;mulation de
- co-processeur math&eacute;matique de FreeBSD
- <emphasis>ne sont pas</emphasis> tr&egrave;s pr&eacute;cis. Si vous
- n'avez pas de co-processeur math&eacute;matique, je vous
- conseille de changer cette option en
- <literal>GPL_MATH_EMULATE</literal> pour utiliser
- les fonctions math&eacute;matiques GNU, qui ne sont pas
- inclues par d&eacute;faut pour des questions de licence.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options "COMPAT_43"</term>
-
- <listitem>
- <para>Compatibilit&eacute; avec 4.3BSD. Gardez cette option;
- certains programmes auront un comportement bizzare
- si vous la commentez.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options BOUNCE_BUFFERS</term>
-
- <listitem>
- <para>Les p&eacute;riph&eacute;riques ISA, et EISA fonctionnant en mode
- compatible ISA, ne peuvent effectuer d'op&eacute;rations DMA
- ("Direct Memory Acces"&nbsp;-&nbsp;acc&egrave;s direct &agrave; la m&eacute;moire)
- qu'en dessous de la limite de 16 m&eacute;ga-octets. Cette option
- permet d'utiliser ces p&eacute;riph&eacute;riques avec des syst&egrave;mes ayant
- plus de 16 m&eacute;ga-octets de m&eacute;moire.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options UCONSOLE</term>
-
- <listitem>
- <para>Permet aux utilisateurs d'acc&eacute;der &agrave; la console syst&egrave;me,
- ce qui est utile avec X Window. Vous pouvez alors,
- par exemple, ouvrir une console "xterm" avec
- <command>xterm -C</command>, qui affichera les
- sorties de <command>write</command>,
- <command>talk</command> et les autres messages que vous
- recevez, ainsi que tout message envoy&eacute; par le noyau
- &agrave; la console.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options SYSVSHM</term>
-
- <listitem>
- <para>Cette option impl&eacute;mente la m&eacute;moire partag&eacute;e de
- System V. L'usage le plus courant qui en est fait
- est l'extension XSHM d'X Window, dont nombre de logiciels
- gourmants en graphique (comme le logiciel de visualisation
- de films XAnim ou DOOM pour Linux) tireront automatiquement
- parti pour fonctionner plus vite. Si vous utilisez X
- Window, vous utiliserez absolument cette option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options SYSVSEM</term>
-
- <listitem>
- <para>Cette option impl&eacute;mente les s&eacute;maphores de System V.
- Ils sont d'un usage moins courant, mais cela n'augmente
- que de quelques centaines d'octets la taille du
- noyau.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options SYSVMSG</term>
-
- <listitem>
- <para>Cette option impl&eacute;mente les messages de System V.
- De m&ecirc;me, cela n'augmente que de quelques
- centaines d'octets la taille du noyau.</para>
-
- <note>
- <para>La commande <citerefentry><refentrytitle>ipcs</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- vous donnera la liste des processus qui utilisent chacun
- de ces m&eacute;canismes de System V.</para>
- </note>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </sect2>
-
- <sect2>
- <title>Syst&egrave;mes de fichiers</title>
-
- <para>Ces options incluent le support des diff&eacute;rents syst&egrave;mes
- de fichiers. Vous devez au moins donner celle qui correspond
- au p&eacute;riph&eacute;rique &agrave; partir duquel vous d&eacute;marrez votre syst&egrave;me;
- habituellement, ce sera <acronym>FFS</acronym> si vous chargez
- le syst&egrave;me depuis un disque dur, ou <acronym>NFS</acronym>, pour
- une station sans disque r&eacute;cup&eacute;rant son syst&egrave;me via un r&eacute;seau
- Ethernet. Vous pouvez aussi indiquer les autres syst&egrave;mes de
- fichiers que vous utilisez couramment, mais n'h&eacute;sitez pas &agrave;
- commenter ceux qui vous sont d'un usage moins fr&eacute;quent (peut-&ecirc;tre
- le syst&egrave;me de fichiers MS-DOS?); ils seront charg&eacute;s dynamiquement
- depuis le r&eacute;pertoire <filename>lkm</filename> (Loadable Kernel
- Module&nbsp;-&nbsp;modules du noyau &agrave; chargement dynamique) au premier montage
- d'une partition de ce type.</para>
-
-
- <variablelist>
- <varlistentry><term>options FFS</term>
- <listitem>
- <para>Le syst&egrave;me de fichiers de base sur disque dur; gardez
- cette option si vous chargez le syst&egrave;me depuis le disque
- dur.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options NFS</term>
-
- <listitem>
- <para>Le syst&egrave;me de fichiers en r&eacute;seau. A moins que vous
- n'envisagiez de monter des partitions depuis un serveur
- de fichiers Unix via un r&eacute;seau Ethernet, vous pouvez
- commenter cette option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options MSDOSFS</term>
-
- <listitem>
- <para>Le syst&egrave;me de fichiers MS-DOS. A moins que vous
- n'envisagiez de monter une partition format&eacute;e DOS
- sur un disque dur au d&eacute;marrage du syst&egrave;me, vous pouvez
- commenter sans risque cette option. Le module sera
- automatiquement charg&eacute; la premi&egrave;re fois que vous monterez
- une partition DOS, comme d&eacute;crit plus haut. Par ailleurs,
- l'excellent logiciel <application>mtools</application>
- (au catalogue des portages) permet d'acc&eacute;der aux
- disquettes DOS sans avoir besoin de les monter (et n'a
- pas non plus besoin de MSDOSFS).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options "CD9660"</term>
-
- <listitem>
- <para>Le syst&egrave;me de fichiers ISO 9660 pour les CD-ROMs.
- Commentez-le si vous n'avez pas de lecteur de CD-ROMs ou ne
- montez qu'occasionnellement des CD-ROMs (Il sera charg&eacute;
- dynamiquement la premi&egrave;re fois que vous monterez un
- CD-ROM). Les CD-ROMs audio n'ont pas besoin de ce syst&egrave;me
- de fichiers.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options PROCFS</term>
-
- <listitem>
- <para>Le syst&egrave;me de fichiers pour les processus. C'est un
- pseudo-syst&egrave;me de fichiers mont&eacute; sur
- <filename>/proc</filename> que des outils comme
- <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> utilisent pour vous fournir plus d'informations
- sur les processus qui s'ex&eacute;cutent.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options MFS</term>
-
- <listitem>
- <para>Syst&egrave;me de fichiers en m&eacute;moire. C'est essentiellement
- un disque RAM pour l'archivage rapide de fichiers
- temporaires, utile si vous avez beaucoup d'espace de
- pagination dont vous voulez tirer parti. Le r&eacute;pertoire
- <filename>/tmp</filename> est un bon candidat pour le
- montage d'une partition MFS, car de nombreux programmes
- y mettent leurs donn&eacute;es temporaires. Pour monter un disque
- RAM MFS sur <filename>/tmp</filename>, ajoutez la ligne qui
- suit au fichier <filename>/etc/fstab</filename> et
- red&eacute;marrez le syst&egrave;me ou tapez
- <command>mount /tmp</command>:
-
- <programlisting>
-/dev/wd1s2b /tmp mfs rw 0 0
- </programlisting>
- </para>
-
- <note>
- <para>Remplacez <filename>/dev/wd1s2b</filename> par
- le nom de votre partition de pagination, qui est d&eacute;finie
- comme suit dans votre fichier
- <filename>/etc/fstab</filename>:
-
- <programlisting>
-/dev/wd1s2b none swap sw 0 0
- </programlisting>
- </para>
- </note>
-
- <note>
- <para>Le syst&egrave;me de fichiers <acronym>MFS</acronym>
- <emphasis>n'est pas</emphasis> chargeable dynamiquement,
- <emphasis>vous devez</emphasis> donc l'inclure dans votre
- noyau si vous voulez essayer de l'utiliser.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options "EXT2FS"</term>
-
- <listitem>
- <para>Syst&egrave;me de fichiers natif de Linux. Avec le support
- d'&ldquo;ext2fs&rdquo;, vous pouvez lire
- et &eacute;crire sur des partitions
- Linux. C'est utile si votre machine fonctionne
- alternativement sous FreeBSD et sous Linux et que vous
- voulez partager des donn&eacute;es entre les deux syst&egrave;mes.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options QUOTA</term>
-
- <listitem>
- <para>Active les quotas d'espace disque. Si votre syst&egrave;me
- est accessible &agrave; plusieurs utilisateurs et que vous
- voulez &eacute;viter qu'ils ne saturent la partition
- <filename>/home</filename>, vous pouvez d&eacute;finir des
- quotas d'espace disque pour chaque utilisateur.
- Reportez-vous au chapitre
- <link linkend="quotas">Quotas d'espace disque</link>
- pour plus d'informations.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2>
- <title>Contr&ocirc;leurs et p&eacute;riph&eacute;riques standards</title>
-
- <para>Ces sections d&eacute;crivent les contr&ocirc;leurs de disques, lecteurs
- de bandes magn&eacute;tiques et lecteurs de CD-ROMs standards support&eacute;s
- par FreeBSD. Les contr&ocirc;leurs
- <link linkend="kernelconfig-scsi">SCSI</link> et les cartes <link
- linkend="kernelconfig-network">r&eacute;seau</link>
- sont d&eacute;crits
- dans des sections s&eacute;par&eacute;es.</para>
-
-
- <variablelist>
- <varlistentry><term>controller isa0</term>
- <listitem>
- <para>Tous les PC support&eacute;s par FreeBSD ont un contr&ocirc;leur ISA.
- Si vous avez un IBM PS/2 (Micro Channel Architecture), vous
- ne pouvez pas utiliser FreeBSD pour l'instant.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller pci0</term>
-
- <listitem>
- <para>Ajoutez cette option si vous avez une carte m&egrave;re PCI.
- Cela permet l'auto-d&eacute;tection des cartes PCI et g&egrave;re
- l'interface entre les bus PCI et ISA.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller fdc0</term>
-
- <listitem>
- <para>Contr&ocirc;leur de lecteur de
- disquettes: <literal>fd0</literal>
- correspond au lecteur de disquettes
- <devicename>A:</devicename>, et
- <literal>fd1</literal> au lecteur
- <devicename>B:</devicename>.
- <literal>ft0</literal> est le lecteur de bandes QIC-80 reli&eacute;
- au contr&ocirc;leur du lecteur de disquettes. Commentez les lignes
- correspondant aux p&eacute;riph&eacute;riques que vous n'avez pas.</para>
-
- <note>
- <para>Avec le lecteur de bandes QIC-80, vous devez de plus
- utiliser un logiciel de filtrage appel&eacute;
- <citerefentry><refentrytitle>ft</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
- reportez-vous &agrave; la page de manuel pour plus de
- d&eacute;tails.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller wdc0</term>
-
- <listitem>
- <para>C'est le contr&ocirc;leur IDE primaire. <literal>wd0</literal>
- et <literal>wd1</literal> sont respectivement, les disques
- ma&icirc;tre et esclave.
- <literal>wdc1</literal> est le contr&ocirc;leur IDE secondaire
- sur lequel vous pouvez avoir un troisi&egrave;me et un quatri&egrave;me
- disque, ou un lecteur de CD-ROMs. Commentez les lignes qui
- ne s'appliquent pas &agrave; votre configuration (par exemple, si
- vous avez un disque SCSI, vous commenterez probablement
- toutes les six lignes).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device wcd0<anchor
- id="kernelconfig-atapi"></term>
-
- <listitem>
- <para>Cette option fournit le support du lecteur de CD-ROMs
- IDE. Assurez-vous de conserver
- <literal>wcd0</literal>, ainsi que
- <literal>wcd1</literal> si vous avez plus d'un contr&ocirc;leur
- IDE et que votre CD-ROM est sur le second. Pour utiliser
- cette option, vous devrez aussi inclure la ligne
- <literal>options ATAPI</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device npx0 at isa? port "IO_NPX" irq 13
- vector npxintr</term>
-
- <listitem>
- <para><literal>npx0</literal> est, dans FreeBSD, l'interface
- avec le co-processeur math&eacute;matique, qu'il soit mat&eacute;riel ou
- &eacute;mul&eacute; par logiciel. Cette option
- <emphasis>N'EST PAS</emphasis> facultative.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device wt0 at isa? port 0x300 bio irq 5 drq
- 1 vector wtintr</term>
-
- <listitem>
- <para>Lecteurs de bandes Wangtek et Archive
- QIC-02/QIC-36.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Mod&egrave;les sp&eacute;ciaux de lecteurs de CD-ROMs</term>
-
- <listitem>
- <para>Les pilotes suivants sont ceux des lecteurs de
- CD-ROMs soit-disant <emphasis>propri&eacute;taires</emphasis>.
- Ces lecteurs ont leur propre contr&ocirc;leur ou s'interfacent
- parfois avec une carte son comme la carte SoundBlaster 16.
- Ils ne sont <emphasis>ni</emphasis> IDE
- <emphasis>ni</emphasis> SCSI. La plupart des anciens
- lecteurs de CD-ROMs simple et double vitesse utilisent ces
- interfaces, alors que les lecteurs quadruple vitesse sont
- g&eacute;n&eacute;ralement soit <link linkend="kernelconfig-atapi">IDE</link>,
- soit <link linkend="kernelconfig-scsi">SCSI</link>.</para>
-
- <para>
- <variablelist>
- <varlistentry><term>device mcd0 at isa? port 0x300 bio
- irq 10 vector mcdintr</term>
- <listitem>
- <para>Mitsumi CD-ROM (LU002, LU005, FX001D).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device scd0 at isa? port 0x230
- bio</term>
-
- <listitem>
- <para>Sony CD-ROM (CDU31, CDU33A).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller matcd0 at isa? port ?
- bio</term>
-
- <listitem>
- <para>Matsushita/Panasonic CD-ROM (distribu&eacute; par
- Creative Labs pour la carte SoundBlaster).</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2
- id="kernelconfig-scsi">
- <title>P&eacute;riph&eacute;riques SCSI</title>
-
- <para>Cette section d&eacute;crit les diff&eacute;rents contr&ocirc;leurs et
- p&eacute;riph&eacute;riques SCSI support&eacute;s par FreeBSD.</para>
-
-
- <variablelist>
- <varlistentry><term>Contr&ocirc;leurs SCSI</term>
- <listitem>
- <para>La dizaine de lignes qui suit correspond au support de
- diff&eacute;rents type de contr&ocirc;leurs SCSI. Commentez-les toutes
- sauf celle(s) qui correspond(ent) &agrave; celui/ceux que vous
- avez:</para>
-
- <para>
- <variablelist>
- <varlistentry><term>controller bt0 at isa? port
- "IO_BT0" bio irq ? vector btintr</term>
- <listitem>
- <para>La plupart des contr&ocirc;leurs Buslogic.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller uha0 at isa? port
- "IO_UHA0" bio irq ? drq 5 vector uhaintr</term>
-
- <listitem>
- <para>UltraStor 14F et 34F.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller ahc0</term>
-
- <listitem>
- <para>Adaptec 274x/284x/294x.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller ahb0 at isa? bio irq ?
- vector ahbintr</term>
-
- <listitem>
- <para>Adaptec 174x.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller aha0 at isa? port
- "IO_AHA0" bio irq ? drq 5 vector ahaintr</term>
-
- <listitem>
- <para>Adaptec 154x.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller aic0 at isa? port
- 0x340 bio irq 11 vector aicintr</term>
-
- <listitem>
- <para>Adaptec 152x et les cartes sons utilisant
- l'Adaptec AIC-6360 (lent!).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller nca0 at isa? port
- 0x1f88 bio irq 10 vector ncaintr</term>
-
- <listitem>
- <para>Carte ProAudioSpectrum avec NCR 5380 ou
- Trantor T130.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller sea0 at isa? bio irq 5
- iomem 0xc8000 iosiz 0x2000 vector seaintr</term>
-
- <listitem>
- <para>Contr&ocirc;leur Seagate ST01/02 8 bits
- (lent!).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller wds0 at isa? port
- 0x350 bio irq 15 drq 6 vector wdsintr</term>
-
- <listitem>
- <para>Contr&ocirc;leur Western Digital WD700.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller ncr0</term>
-
- <listitem>
- <para>Contr&ocirc;leurs SCSI NCR 53C810, 53C815, 53C825,
- 53C860, 53C875 PCI.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options "SCSI_DELAY=15"</term>
-
- <listitem>
- <para>Cette option dit &agrave; votre noyau d'attendre 15 secondes
- avec de rechercher les p&eacute;riph&eacute;riques SCSI pr&eacute;sents sur
- votre syst&egrave;me. Si vous n'avez que des disques IDE, vous
- pouvez l'ignorer, sinon, vous pouvez peut-&ecirc;tre diminuer
- cette valeur, &eacute;ventuellement jusqu'&agrave; 5 secondes, pour
- acc&eacute;lerer le d&eacute;marrage du syst&egrave;me. Bien s&ucirc;r, si vous le
- faites et que FreeBSD a du mal &agrave; identifier vos
- p&eacute;riph&eacute;riques SCSI, vous devrez l'augmenter de
- nouveau.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>controller scbus0</term>
-
- <listitem>
- <para>Si vous avez des contr&ocirc;leurs SCSI, cette ligne vous
- en fournit le support g&eacute;n&eacute;rique. Si vous n'en avez pas,
- commentez-la, ainsi que les trois lignes qui
- suivent.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device sd0</term>
-
- <listitem>
- <para>Support de disque dur.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device st0</term>
-
- <listitem>
- <para>Support de lecteur de bandes SCSI.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device cd0</term>
-
- <listitem>
- <para>Support de lecteur de CD-ROMs SCSI.</para>
-
- <para>Notez bien que le chiffre <literal>0</literal>
- dans les lignes pr&eacute;c&eacute;dentes n'est pas tout &agrave; fait exact:
- tous ces p&eacute;riph&eacute;riques sont automatiquement configur&eacute;s
- quand ils sont reconnus, quel que soit le nombre de
- p&eacute;riph&eacute;riques sur la ou les cha&icirc;nes SCSI, et quels que
- soient leurs IDs cibles.</para>
-
- <para>Si vous voulez &ldquo;attacher&rdquo; des IDs cibles
- pr&eacute;cis &agrave; des p&eacute;riph&eacute;riques particuliers, reportez-vous
- &agrave; la section appropri&eacute;e du fichier de configuration du
- noyau <filename>LINT</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2>
- <title>Console, souris sur un bus, et serveur X</title>
-
- <para>Vous devez s&eacute;lectionner un des deux types de console, et,
- si vous envisagez d'utiliser le gestionnaire graphique X Window
- avec la console vt220, activer l'option XSERVER. Optionnellement,
- vous pouvez aussi choisir le support de souris sur un bus ou
- PS/2.</para>
-
- <variablelist>
- <varlistentry><term>device sc0 at isa? port "IO_KBD" tty irq 1
- vector scintr</term>
- <listitem>
- <para><literal>sc0</literal> est le pilote par d&eacute;faut pour la
- console, qui ressemble &agrave; une console SCO. Comme la plupart
- des programmes en mode plein-&eacute;cran acc&egrave;dent &agrave; la console
- par l'interm&eacute;diaire d'une base de donn&eacute;es de description des
- terminaux comme <filename>termcap</filename>, cela n'a gu&egrave;re
- d'importance que vous choisissiez ce pilote ou le pilote
- compatible VT220 <literal>vt0</literal>. Quand vous ouvrez
- une session, positionnez la variable d'environnement
- <envar>TERM</envar> &agrave; &ldquo;scoansi&rdquo; si vous avez
- des probl&egrave;mes pour utiliser des programmes en mode
- plein-&eacute;cran avec cette console.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device vt0 at isa? port "IO_KBD" tty irq 1
- vector pcrint</term>
-
- <listitem>
- <para>C'est le pilote de console compatible VT220, et,
- retrospectivement, compatible avec les VT100/102. Il
- fonctionne bien sur certains portables qui sont
- mat&eacute;riellement incompatibles avec le pilote
- <literal>sc0</literal>. Comme pr&eacute;c&eacute;demment, positionnez la
- variable d'environnement <envar>TERM</envar> &agrave;
- <literal>vt100</literal> ou <literal>vt220</literal>,
- cette fois-ci, quand vous ouvrez une session. Ce pilote
- peut aussi s'av&eacute;rer utile pour un certain nombre de
- machines sur un r&eacute;seau, pour lequelles le terminal
- <devicename>sc0</devicename> est rarement d&eacute;fini dans les
- fichiers <filename>termcap</filename> ou
- <filename>terminfo</filename>
- -- alors que le terminal <literal>vt100</literal> existe
- pratiquement sur toutes les plates-formes.</para>
-
- <variablelist>
- <varlistentry><term>options "PCVT_FREEBSD=210"</term>
- <listitem>
- <para>Obligatoire avec la console
- <literal>vt0</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options XSERVER</term>
-
- <listitem>
- <para>S'applique seulement &agrave; la console
- <literal>vt0</literal>. Cette option inclut le
- code n&eacute;cessaire &agrave; l'utilisation du serveur X Window
- <application>XFree86</application> avec la console
- <literal>vt0</literal>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device mse0 at isa? port 0x23c tty irq 5
- vector ms</term>
-
- <listitem>
- <para>Utilisez ce pilote si vous avez une carte Logitech
- ou ATI InPort pour la souris.</para>
-
- <note>
- <para>Si vous avez une souris sur le port s&eacute;rie, ignorez
- ces deux lignes, et, &agrave; la place, v&eacute;rifiez que le port
- <link linkend="kernelconfig-serial">s&eacute;rie</link>
- correspondant est bien activ&eacute;
- (probablement COM1).</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device psm0 at isa? port "IO_KBD"
- conflicts tty irq 12 vector psmintr</term>
-
- <listitem>
- <para>Utilisez ce pilote si votre souris se branche sur le
- port PS/2.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2>
- <title>Ports s&eacute;ries et parall&egrave;les</title>
-
- <para>Presque tous les syst&egrave;mes ont ces ports. Si vous avez une
- imprimante sur l'un d'eux, la section
- <link linkend="printing">Imprimer</link>
- de ce manuel vous
- sera tr&egrave;s utile. Si vous utilisez un modem, la section
- <link linkend="dialup">Connexions t&eacute;l&eacute;phoniques</link>
- vous fournit des informations d&eacute;taill&eacute;es sur la configuration du
- port s&eacute;rie pour ces p&eacute;riph&eacute;riques.</para>
-
-
- <variablelist>
- <varlistentry><term>device sio0 at isa? port "IO_COM1" tty irq
- 4 vector siointr<anchor id="kernelconfig-serial"></term>
- <listitem>
- <para><literal>sio0</literal> &agrave; <literal>sio3</literal>
- sont les quatre ports s&eacute;ries, appel&eacute;s COM1 &agrave; COM4 dans
- le monde MS-DOS. Notez bien que si vous avez un modem
- interne sur le port COM4 et un port s&eacute;rie COM2, vous
- devrez changer l'IRQ du modem en 2 (pour d'obscures
- raisons techniques, IRQ 2 = IRQ 9) pour y acc&eacute;der avec
- FreeBSD. Si vous avez une carte s&eacute;rie multi-ports, voyez
- la page de manuel de
- <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry>
- pour plus d'informations sur les bonnes valeurs pour ces
- lignes. Certaines cartes vid&eacute;o (notamment celles &agrave; base de
- circuits S3) utilisent des adresses d'Entr&eacute;e/Sortie du type
- <literal>0x*2e8</literal>, et comme de nombreuses cartes
- s&eacute;ries g&egrave;rent mal l'espace d'adressage complet sur
- 16-bits, il y aura des conflits avec ces cartes, rendant
- le port COM4 pratiquement inutilisable.</para>
-
- <para>Chaque port s&eacute;rie doit avoir une IRQ unique (&agrave; moins
- que vous n'utilisiez une carte multi-ports qui autorise
- le partage d'interruption), de sorte que les IRQ par
- d&eacute;faut pour les ports COM3 et COM4 ne sont pas
- utilisables.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device lpt0 at isa? port? tty irq 7 vector
- lptintr</term>
-
- <listitem>
- <para><literal>lpt0</literal> &agrave; <literal>lpt2</literal>
- sont les trois ports imprimante que vous pourriez
- &eacute;ventuellement avoir. La plupart des gens n'en ont qu'un,
- n'h&eacute;sitez donc pas &agrave; mettre en commentaires ceux que vous
- n'avez pas.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2
- id="kernelconfig-network">
- <title>Le r&eacute;seau</title>
-
- <para>FreeBSD, comme Unix en g&eacute;n&eacute;ral, accorde
- <emphasis>une</emphasis> grande importance au r&eacute;seau. Donc, m&ecirc;me
- si vous n'avez pas de carte Ethernet, faites bien attention aux
- options obligatoires et au support du r&eacute;seau via une ligne
- t&eacute;l&eacute;phonique.</para>
-
-
- <variablelist>
- <varlistentry><term>options INET</term>
- <listitem>
- <para>Support r&eacute;seau. Conservez-le m&ecirc;me si vous n'envisagez
- pas de vous connecter &agrave; un r&eacute;seau. La plupart des
- programmes utilisent au moins le r&eacute;seau "en boucle" (i.e.
- &eacute;tablissent des connexions r&eacute;seau avec le PC lui-m&ecirc;me),
- cette option est donc quasiment obligatoire.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Cartes Ethernet</term>
-
- <listitem>
- <para>Les lignes qui suivent incluent le support de
- diff&eacute;rentes cartes Ethernet. Si vous n'avez pas de
- carte r&eacute;seau, vous pouvez toutes les commenter. Sinon,
- vous garderez le support pour la ou les cartes Ethernet
- dont vous disposez:</para>
-
- <variablelist>
- <varlistentry><term>device de0</term>
- <listitem>
- <para>Adaptateurs Ethernet &agrave; base de circuits
- Digital Equipment DC21040, DC21041 ou DC21140.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device fxp0</term>
-
- <listitem>
- <para>Intel EtherExpress Pro/100B.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device vx0</term>
-
- <listitem>
- <para>3Com 3C590 et 3C595 (bogu&eacute;).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device cx0 at isa? port 0x240 net
- irq 15 drq 7 vector cxintr</term>
-
- <listitem>
- <para>Cronyx/Sigma multiport sync/async (avec
- trames Cisco ou PPP).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device ed0 at isa? port 0x280 net
- irq 5 iomem 0xd8000 vector edintr</term>
-
- <listitem>
- <para>Western Digital et SMC 80xx et 8216; Novell
- NE1000 and NE2000; 3Com 3C503; HP PC Lan Plus
- (HP27247B et HP27252A).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device el0 at isa? port 0x300 net
- irq 9 vector elintr</term>
-
- <listitem>
- <para>3Com 3C501 (lent!).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device eg0 at isa? port 0x310 net
- irq 5 vector egintr</term>
-
- <listitem>
- <para>3Com 3C505.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device ep0 at isa? port 0x300 net
- irq 10 vector epintr</term>
-
- <listitem>
- <para>3Com 3C509 (bogu&eacute;).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device fe0 at isa? port 0x240 net
- irq ? vector feintr</term>
-
- <listitem>
- <para>Fujitsu MB86960A/MB86965A Ethernet.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device fea0 at isa? net irq ? vector
- feaintr</term>
-
- <listitem>
- <para>Adaptateur DEC DEFEA EISA FDDI.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device ie0 at isa? port 0x360 net
- irq 7 iomem 0xd0000 vector ieintr</term>
-
- <listitem>
- <para>AT&amp;T StarLAN 10 et EN100; 3Com 3C507;
- NI5210 quelconque.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device ix0 at isa? port 0x300 net
- irq 10 iomem 0xd0000 iosiz 32768 vector
- ixintr</term>
-
- <listitem>
- <para>Intel EtherExpress 16.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device le0 at isa? port 0x300 net
- irq 5 iomem 0xd0000 vector le_intr</term>
-
- <listitem>
- <para>Digital Equipment EtherWorks 2 et EtherWorks
- 3 (DEPCA, DE100, DE101, DE200, DE201, DE202,
- DE203, DE204, DE205, DE422).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device lnc0 at isa? port 0x300 net
- irq 10 drq 0 vector lncintr</term>
-
- <listitem>
- <para>Cartes Lance/PCnet (Isolan, Novell NE2100,
- NE32-VL).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device ze0 at isa? port 0x300 net
- irq 5 iomem 0xd8000 vector zeintr</term>
-
- <listitem>
- <para>Contr&ocirc;leur Ethernet IBM/National Semiconductor
- PCMCIA.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device zp0 at isa? port 0x300 net
- irq 10 iomem 0xd8000 vector zpintr</term>
-
- <listitem>
- <para>3Com PCMCIA Etherlink III.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <note>
- <para>Avec certaines cartes (notamment la NE2000) vous
- devrez d&eacute;finir le port et/ou l'IRQ, car ces cartes
- n'ont pas d'adresse &ldquo;standard&rdquo;.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device loop</term>
-
- <listitem>
- <para><literal>loop</literal> est l'interface "en boucle"
- g&eacute;n&eacute;rique de TCP/IP. Si vous employez telnet ou FTP sur
- <hostid>localhost</hostid>
- (a.k.a. <hostid role="ipaddr">127.0.0.1</hostid>)
- la r&eacute;ponse vous arrivera via ce
- pseudo-p&eacute;riph&eacute;rique. Obligatoire.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device ether</term>
-
- <listitem>
- <para><literal>ether</literal> ne sert que si vous avez une
- carte Ethernet et inclut le code g&eacute;n&eacute;rique pour le
- protocole Ethernet.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device sl
- <replaceable>nombre</replaceable></term>
-
- <listitem>
- <para><literal>sl</literal> est le support de SLIP
- (Serial Line Internet Protocol&nbsp;-&nbsp;protocole Internet sur
- ligne s&eacute;rie). Il a pratiquement disparu au profit de PPP,
- plus facile &agrave; mettre en oeuvre, mieux adapt&eacute; aux connexions
- par modem, et aussi plus puissant. La valeur num&eacute;rique apr&egrave;s
- <literal>sl</literal> d&eacute;finit le nombre maximum de
- connexions SLIP simultan&eacute;es.
- Ce manuel contient d'autres informations sur la mise en
- place d'un <link linkend="slipc">client</link> ou d'un
- <link linkend="slips">serveur</link> SLIP.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device ppp
- <replaceable>nombre</replaceable></term>
-
- <listitem>
- <para><literal>ppp</literal> est le support de
- PPP (Point-to-Point Protocol&nbsp;-&nbsp;protocole point &agrave; point)
- int&eacute;gr&eacute; au noyau, pour les connexions t&eacute;l&eacute;phoniques &agrave;
- l'Internet. Il y a aussi une version de PPP sous forme
- de programme utilisateur qui utilise le pseudo-p&eacute;riph&eacute;rique
- <devicename>tun</devicename> et offre plus de souplesse et
- des possibilit&eacute;s, comme la connexion &agrave; la demande. Si vous
- voulez cependant utiliser ce pilote PPP, lisez la section
- <link linkend="ppp">Configurer PPP int&eacute;gr&eacute; au noyau</link>
- de ce manuel. Comme pour le pilote <literal>sl</literal>,
- <replaceable>nombre</replaceable> est le nombre maximum
- de connexions PPP simultan&eacute;es.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device tun
- <replaceable>nombre</replaceable></term>
-
- <listitem>
- <para><literal>tun</literal> est utilis&eacute; par le programme PPP
- en mode utilisateur. Ce programme est facile &agrave; param&eacute;trer
- et tr&egrave;s rapide. Il offre aussi des possibilit&eacute;s
- particuli&egrave;res, comme la connexion automatique &agrave; la demande.
- La valeur qui suit <literal>tun</literal> est le nombre
- maximum de sessions PPP simultan&eacute;es. Voyez la section
- <link linkend="userppp">Configurer PPP en mode utilisateur</link>
- de ce manuel pour plus
- d'informations.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device bpfilter
- <replaceable>nombre</replaceable></term>
-
- <listitem>
- <para>Filtrage de paquets de Berkeley. Ce pseudo-p&eacute;riph&eacute;rique
- permet de mettre les interfaces
- r&eacute;seau en mode &ldquo;indiscret&rdquo;,
- pour capturer tous les paquets sur un r&eacute;seau de diffusion
- (e.g. un r&eacute;seau Ethernet). Ces paquets peuvent &ecirc;tre
- enregistr&eacute;s sur disque et/ou examin&eacute;s avec le programme
- <citerefentry><refentrytitle>tcpdump</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Rappelez-vous que la mise en service de cette
- possibilit&eacute; peut s&eacute;rieusement compromettre la s&eacute;curit&eacute;
- globale de votre r&eacute;seau. Le
- <replaceable>nombre</replaceable>
- apr&egrave;s <literal>bpfilter</literal> est le nombre
- d'interfaces qui peuvent &ecirc;tre surveill&eacute;es simultan&eacute;ment.
- Optionnel et non recommand&eacute;, sauf &agrave; ceux qui ont pleinement
- conscience des dangers &eacute;ventuels. Toutes les cartes r&eacute;seau
- n'acceptent pas cette possibilit&eacute;.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2>
- <title>Cartes son</title>
-
- <para>C'est la premi&egrave;re section qui comporte des lignes qui ne font
- pas partie du noyau GENERIC. Pour inclure le support d'une carte
- son, vous devrez copier les lignes ad&eacute;quates du noyau LINT (qui
- contient le support de <emphasis>tous</emphasis> les p&eacute;riph&eacute;riques)
- comme suit:</para>
-
-
- <variablelist>
- <varlistentry><term>controller snd0</term>
- <listitem>
- <para>Code g&eacute;n&eacute;rique du pilote de carte son. Requis pour
- toutes les cartes ci-dessous, sauf
- <literal>pca</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device pas0 at isa? port 0x388 irq 10 drq 6
- vector pasintr</term>
-
- <listitem>
- <para>ProAudioSpectrum digital audio et MIDI.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device sb0 at isa? port 0x220 irq 7
- conflicts drq 1 vector sbintr</term>
-
- <listitem>
- <para>SoundBlaster digital audio.</para>
-
- <note>
- <para>Si votre SoundBlaster est sur une IRQ diff&eacute;rente
- (5, par exemple), modifiez <literal>irq 7</literal> en
- <literal>irq 5</literal>, par exemple, et supprimez
- le mot-cl&eacute; <literal>conflicts</literal>. Vous devrez aussi
- ajouter la ligne:
- <literal>options "SBC_IRQ=5"</literal></para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device sbxvi0 at isa? drq 5</term>
-
- <listitem>
- <para>SoundBlaster 16 digital 16-bits audio.</para>
-
- <note>
- <para>Si votre SB16 est sur un canal DMA 16-bits
- diff&eacute;rent (tel que 6 ou 7), remplacez le mot-cl&eacute;
- <literal>drq 5</literal> par la valeur appropri&eacute;e, et
- ajoutez la ligne:
- <literal>options "SB16_DMA=6"</literal>.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device sbmidi0 at isa? port 0x330</term>
-
- <listitem>
- <para>Interface SoundBlaster 16 MIDI. Si vous avez une
- SoundBlaster 16, vous devez inclure cette ligne, sinon,
- le noyau ne compilera pas.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device gus0 at isa? port 0x220 irq 10 drq 1
- vector gusintr</term>
-
- <listitem>
- <para>Gravis Ultrasound.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device mss0 at isa? port 0x530 irq 10 drq 1
- vector adintr</term>
-
- <listitem>
- <para>Microsoft Sound System.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device opl0 at isa? port 0x388
- conflicts</term>
-
- <listitem>
- <para>AdLib FM-synthesis audio. Ajoutez cette ligne pour
- les cartes AdLib, SoundBlaster, et ProAudioSpectrum,
- si vous voulez jouer de la musique au format MIDI avec
- des logiciels comme <command>playmidi</command>
- (au catalogue des logiciels port&eacute;s).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device mpu0 at isa? port 0x330 irq 6 drq
- 0</term>
-
- <listitem>
- <para>Carte d'extension Roland MPU-401.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device uart0 at isa? port 0x330 irq 5 vector
- "m6850intr"</term>
-
- <listitem>
- <para>Carte d'extension 6850 UART pour MIDI.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>device pca0 at isa? port "IO_TIMER1"
- tty<anchor id="kernelconfig-pcaudio"></term>
-
- <listitem>
- <para>Son digital via le haut-parleur PC. Ce son sera de
- tr&egrave;s mauvaise qualit&eacute; et consommera beaucoup de CPU, vous
- &ecirc;tes donc pr&eacute;venus (mais il n'y a pas besoin de carte
- son).</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <note>
- <para>Le fichier
- <filename>/usr/src/sys/i386/isa/sound/sound.doc</filename>.
- contient un compl&eacute;ment de documentation. Si vous ajoutez l'un
- de ces pilotes, cr&eacute;ez aussi les
- <link linkend="kernelconfig-nodes">fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques</link>
- pour le son.</para>
- </note>
-
- </sect2>
-
- <sect2>
- <title>Pseudo-p&eacute;riph&eacute;riques</title>
-
- <para>Les pilotes de pseudo-p&eacute;riph&eacute;riques sont des parties du noyau
- qui se comportent comme des pilotes de p&eacute;riph&eacute;riques mais ne
- correspondent &agrave; aucun mat&eacute;riel de la machine. Les
- pseudo-p&eacute;riph&eacute;riques associ&eacute;s au
- <link linkend="kernelconfig-network">r&eacute;seau</link>
- sont d&eacute;crits dans la section
- correspondante, les autres sont d&eacute;crits ici.</para>
-
-
- <variablelist>
- <varlistentry><term>pseudo-device gzip</term>
- <listitem>
- <para><literal>gzip</literal> vous permet d'ex&eacute;cuter des
- programmes FreeBSD qui ont &eacute;t&eacute; compress&eacute;s avec la commande
- <command>gzip</command>. C'est le cas des programmes du
- r&eacute;pertoire <filename>/stand</filename>, aussi est-ce une
- bonne id&eacute;e de garder cette option dans votre noyau.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device log</term>
-
- <listitem>
- <para><literal>log</literal> est utilis&eacute; pour tracer les
- messages d'erreur du noyau. Indispensable.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device pty
- <replaceable>nombre</replaceable><anchor
- id="kernelconfig-ptys"></term>
-
- <listitem>
- <para><literal>pty</literal> est un
- &ldquo;pseudo-terminal&rdquo; ou un port simulant une
- session. Il est utilis&eacute; par les sessions
- <command>telnet</command> et <command>rlogin</command>
- entrantes, par xterm, et d'autres applications comme emacs.
- <replaceable>nombre</replaceable> est le nombre de
- <literal>pty</literal>s &agrave; cr&eacute;er. S'il vous faut plus du
- d&eacute;faut <filename>GENERIC</filename> de 16 fen&ecirc;tres xterm
- et/ou connexions &agrave; distance simultan&eacute;es, veillez &agrave;
- augmenter cette valeur en cons&eacute;quence, jusqu'au maximum
- de 64.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device snp
- <replaceable>nombre</replaceable></term>
-
- <listitem>
- <para>Pseudo-p&eacute;riph&eacute;rique espion. Ce pseudo-p&eacute;riph&eacute;rique
- permet &agrave; une session d'en espionner une autre avec la commande
- <citerefentry><refentrytitle>watch</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Notez
- que l'impl&eacute;mentation de cette posibilit&eacute; a d'importantes
- cons&eacute;quences sur la s&eacute;curit&eacute; et la confidentialit&eacute;.
- Le <replaceable>nombre</replaceable>
- qui suit snp est le nombre maximum de sessions
- &ldquo;espion&rdquo;
- simultan&eacute;es. Optionnel.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device vn</term>
-
- <listitem>
- <para>Pilote de noeud virtuel. Ce pilote permet d'utiliser
- un fichier comme un p&eacute;riph&eacute;rique apr&egrave;s l'avoir configur&eacute;
- avec la commande
- <citerefentry><refentrytitle>vnconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- Il peut &ecirc;tre utile pour manipuler des images de disquettes
- ou pour utiliser un fichier comme p&eacute;riph&eacute;rique de
- pagination. (e.g. comme un fichier MS Windows de
- pagination). En option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device ccd
- <replaceable>nombre</replaceable></term>
-
- <listitem>
- <para>Disques concat&eacute;n&eacute;s, Ce pseudo-p&eacute;riph&eacute;rique vous
- permet de concat&eacute;ner plusieurs partitions sur disque
- en un seul gros &ldquo;m&eacute;ta&rdquo;-disque. Le
- <replaceable>nombre</replaceable> apr&egrave;s
- ccd est le nombre maximum de disques concat&eacute;n&eacute;s (et non
- le nombre maximum de disques qui peuvent &ecirc;tre concat&eacute;n&eacute;s)
- que l'on pourra cr&eacute;er. (Voyez les pages de manuel de
- <citerefentry><refentrytitle>ccd</refentrytitle><manvolnum>4</manvolnum></citerefentry>
- et <citerefentry><refentrytitle>ccdconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- pour plus de d&eacute;tails.) En option.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
-
- <sect2>
- <title>Manette de jeu, haut-parleur PC, divers</title>
-
- <para>Cette section d&eacute;crit des dispositifs divers qui sont
- support&eacute;s par FreeBSD. Aucune de ces lignes ne se trouve
- dans le noyau g&eacute;n&eacute;rique, vous devrez les recopier de ce manuel
- ou du noyau LINT (qui inclut le support de
- <emphasis>tous</emphasis> les p&eacute;riph&eacute;riques):</para>
-
- <variablelist>
- <varlistentry><term>device joy0 at isa? port "IO_GAME"</term>
- <listitem>
- <para>Manette de jeu PC.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>pseudo-device speaker</term>
-
- <listitem>
- <para>Supporte les bruitages du style IBM BASIC via
- le haut-parleur du PC. Certains programmes amusants
- de <filename>/usr/sbin/spkrtest</filename>, qui est une
- proc&eacute;dure qui joue quelques chansonnettes et
- <filename>/usr/games/piano</filename>, qui vous permet
- d'utiliser le clavier comme un piano rudimentaire (ce
- fichier existe si vous avez install&eacute; les logiciels de
- jeux <literal>games</literal>) utilisent cette possibilit&eacute;.
- L'excellent jeu de r&ocirc;les en mode texte
- <application>NetHack</application> (au catalogue des
- logiciels port&eacute;s) peut aussi &ecirc;tre configur&eacute; pour faire
- entendre la musique sur ce p&eacute;riph&eacute;rique quand vous jouez
- d'un instrument pendant le jeu.</para>
-
- <para>Voyez aussi ce qui concerne le p&eacute;riph&eacute;rique
- <link linkend="kernelconfig-pcaudio">pca0</link>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
- </sect1>
-
- <sect1
- id="kernelconfig-nodes">
- <title>Cr&eacute;er les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques</title>
-
- <para>A pratiquement chaque p&eacute;riph&eacute;rique correspond un
- &ldquo;noeud&rdquo; (ou fichier sp&eacute;cial de p&eacute;riph&eacute;rique)
- dans le r&eacute;pertoire <filename>/dev</filename>. Ces noeuds ressemblent
- &agrave; des fichiers ordinaires, mais sont en fait des points d'entr&eacute;e
- particuliers dans le noyau, qu'utilisent les programmes pour acc&eacute;der
- aux p&eacute;riph&eacute;riques. La proc&eacute;dure
- <filename>/dev/MAKEDEV</filename>, qui est ex&eacute;cut&eacute;e &agrave; la premi&egrave;re
- installation du syst&egrave;me d'exploitation, cr&eacute;e la plupart des noeuds
- n&eacute;cessaires. Cependant, elle ne les cr&eacute;e pas
- <emphasis>tous</emphasis>, de sorte que, quand vous ajoutez le support
- pour un nouveau p&eacute;riph&eacute;rique, il vaut
- la peine de v&eacute;rifier que l'entr&eacute;e
- ad&eacute;quate existe dans ce r&eacute;pertoire, et sinon, de l'y ajouter. Voici
- un exemple simple:</para>
-
- <para>Supposons que vous ajoutiez au noyau le support du lecteur de
- CD-ROMs IDE avec la ligne:
-
- <programlisting>
-controller wcd0
- </programlisting> Cela signifie que vous devrez chercher une entr&eacute;e
- qui commence par <filename>wcd0</filename> dans le r&eacute;pertoire
- <filename>/dev</filename>, &eacute;ventuellement suivie d'une lettre comme
- <literal>c</literal>, ou pr&eacute;c&eacute;d&eacute;e de la lettre <literal>r</literal>,
- qui d&eacute;signe un p&eacute;riph&eacute;rique en mode
- caract&egrave;re&nbsp;-&nbsp;&ldquo;raw (brut)&rdquo;. S'il
- s'av&egrave;re que ces fichiers n'existent
- pas, vous devez aller dans le r&eacute;pertoire <filename>/dev</filename>
- et taper:
-
- <informalexample>
- <screen>&prompt.root; <userinput>sh MAKEDEV wcd0</userinput></screen>
- </informalexample> Quand la proc&eacute;dure s'est ex&eacute;cut&eacute;e, vous verrez
- qu'il y a maintenant les entr&eacute;es
- <filename>wcd0c</filename> et <filename>rwcd0c</filename>
- dans <filename>/dev</filename>. Ce qui vous confirme qu'elle a bien
- fonctionn&eacute;.</para>
-
- <para>Pour les cartes sons, la commande:
-
- <informalexample>
- <screen>&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
- </informalexample> cr&eacute;era les entr&eacute;es n&eacute;cessaires.</para>
-
- <note>
- <para>Quand vous cr&eacute;ez les noeuds pour des p&eacute;riph&eacute;riques comme
- les cartes sons, si d'autres personnes ont acc&egrave;s &agrave; votre
- machine, il peut &ecirc;tre souhaitable de prot&eacute;ger ces p&eacute;riph&eacute;riques
- d'acc&egrave;s ext&eacute;rieurs en les ajoutant au fichier
- <filename>/etc/fbtab</filename> . Voyez <command>man
- fbtab</command> pour plus d'informations.</para>
- </note>
-
- <para>Suivez cette simple proc&eacute;dure pour tous les autres p&eacute;riph&eacute;riques
- absents de <filename>GENERIC</filename> pour lequels les entr&eacute;es
- n'existent pas encore.</para>
-
- <note>
- <para>Tous les contr&ocirc;leurs SCSI utilisent les m&ecirc;mes entr&eacute;es dans
- <filename>/dev</filename>, vous n'avez donc pas besoin de les
- cr&eacute;er. Par ailleurs, les cartes r&eacute;seau et les pseudo-p&eacute;riph&eacute;riques
- SLIP/PPP n'ont pas d'entr&eacute;e dans <filename>/dev</filename>, vous
- n'avez donc pas non plus &agrave; vous en pr&eacute;occupper.</para>
- </note>
-
- </sect1>
-
- <sect1
- id="kernelconfig-trouble">
- <title>Si quelque chose se passe mal</title>
-
- <para>Il y a quatre types de probl&egrave;mes que vous pouvez rencontrer
- quand vous g&eacute;n&eacute;rez un noyau sur-mesure. Ce sont:</para>
-
-
- <variablelist>
- <varlistentry><term>La commande Config &eacute;choue.</term>
- <listitem>
- <para>Si la commande <command>config</command> &eacute;choue
- quand vous lui donnez en param&egrave;tre la description de
- votre noyau, vous avez probablement fait une simple
- erreur quelque part. Heureusement
- <command>config</command> vous affiche le num&eacute;ro de
- la ligne qui lui a pos&eacute; probl&egrave;me, vous pouvez donc vous
- y r&eacute;f&eacute;rez rapidement avec la commande <command>vi</command>.
- Par exemple, si vous avez:
-
- <informalexample>
- <screen>config: line 17: syntax error</screen>
- </informalexample> vous pouvez aller droit au probl&egrave;me avec
- <command>vi</command> en tapant <COMMAND>17G</COMMAND>
- en mode commande. V&eacute;rifiez que le mot-cl&eacute; est correctement
- sp&eacute;cifi&eacute;, en le comparant avec ce qu'il y a dans le noyau
- GENERIC ou autre r&eacute;f&eacute;rence.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>La commande Make &eacute;choue.</term>
-
- <listitem>
- <para>Si la commande <command>make</command> &eacute;choue,
- c'est habituellement une erreur dans la description de
- votre noyau, pas suffisamment s&eacute;rieuse cependant pour
- que la commande <command>config</command> la d&eacute;tecte.
- V&eacute;rifiez l&agrave; aussi votre fichier de configuration et, si
- vous n'arrivez toujours pas &agrave; r&eacute;soudre le probl&egrave;me,
- adressez un courrier &eacute;lectronique &agrave;
- &a.questions; en joignant votre fichier de configuration
- du noyau, le diagnostic devrait &ecirc;tre tr&egrave;s rapide.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Le syst&egrave;me ne red&eacute;marre pas avec le nouveau
- noyau<anchor
- id="kernelconfig-noboot">.</term>
-
- <listitem>
- <para>Si votre syst&egrave;me ne red&eacute;marre pas avec le nouveau noyau,
- ou ne reconna&icirc;t pas vos p&eacute;riph&eacute;riques, ne paniquez pas!
- BSD est heureusement dot&eacute; d'un excellent m&eacute;canisme pour
- r&eacute;cup&eacute;rer si le noyau n'est pas coh&eacute;rent. Tapez simplement
- le nom du noyau que vous voulez charger &agrave; l'invite de
- d&eacute;marrage de FreeBSD
- (i.e. <filename>kernel.old</filename>) au lieu d'appuyer
- sur Entr&eacute;e. Quand vous reconfigurez votre noyau, c'est
- toujours une bonne id&eacute;e de garder sous le coude un noyau
- dont vous savez qu'il fonctionne.</para>
-
- <para>Apr&egrave;s avoir d&eacute;marr&eacute; le syst&egrave;me avec un noyau en &eacute;tat de
- marche, vous pouvez rev&eacute;rifier votre fichier de configuration
- et essayer de recompiler de nouveau votre noyau. Les
- indications du fichier
- <filename>/var/log/messages</filename> qui enregistre, entre
- autres, tous les messages du noyau &agrave; chaque d&eacute;marrage
- r&eacute;ussi peuvent vous aider. La commande
- <citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- vous affichera aussi les messages du noyau pour le dernier
- d&eacute;marrage.</para>
-
- <note>
- <para>Si vous avez des difficult&eacute;s &agrave; compiler un noyau,
- veillez &agrave; conserver un noyau <filename>GENERIC</filename>,
- ou un autre noyau dont vous savez qu'il fonctionne, sous
- la main, avec un nom diff&eacute;rent de celui que vous g&eacute;n&eacute;rez,
- de fa&ccedil;on &agrave; ce qu'il ne soit pas &eacute;cras&eacute; par la prochaine
- compilation. Vous ne pouvez pas vous fier au noyau
- <filename>kernel.old</filename>, parce qu'&agrave; l'installation
- du nouveau noyau, il est surcharg&eacute; par le dernier noyau
- install&eacute;, dont il n'est pas certain qu'il soit op&eacute;rationnel.
- D&eacute;placez aussi, aussit&ocirc;t que possible, le noyau op&eacute;rationnel
- vers le bon fichier <filename>kernel</filename>, sans quoi
- des commandes comme
- <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- ne s'ex&eacute;cuteront pas correctement. La bonne commande pour
- &ldquo;d&eacute;verrouiller&rdquo; le fichier
- <filename>kernel</filename> install&eacute; par la commande
- <command>make</command> (pour mettre d&eacute;finitivement en
- place une autre noyau) est:
-
- <informalexample>
- <screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen>
- </informalexample> Si vous voulez
- &ldquo;verrouiller&rdquo; le noyau que vous venez
- d'installer, ou tout autre fichier le cas &eacute;ch&eacute;ant,
- de sorte qu'il ne puisse &ecirc;tre d&eacute;plac&eacute; ou modifi&eacute;,
- utilisez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>chflags schg /kernel</userinput></screen>
- </informalexample>
- </para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Le noyau est op&eacute;rationnel, mais la commande
- <command>ps</command> ne fonctionne plus!</term>
-
- <listitem>
- <para>Si vous avez install&eacute; une version du noyau diff&eacute;rente de
- celle avec laquelle ont &eacute;t&eacute; compil&eacute;s les utilitaires syst&egrave;me,
- par exemple, un noyau exp&eacute;rimental &ldquo;2.2.0&rdquo; sur
- un syst&egrave;me 2.1.0-RELEASE, de nombreuses commandes d'affichage
- de l'&eacute;tat du syst&egrave;me, telles
- <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> and <citerefentry><refentrytitle>vmstat</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- ne fonctionneront plus. Vous devez recompiler la
- biblioth&egrave;que <filename>libkvm</filename> de m&ecirc;me que ces
- utilitaires. C'est une des raisons pour lesquelles il n'est
- pas judicieux d'utiliser des versions diff&eacute;rentes du noyau
- et du reste du syst&egrave;me d'exploitation.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
-
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/kerneldebug/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kerneldebug/chapter.sgml
deleted file mode 100644
index b8c33414c3..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/kerneldebug/chapter.sgml
+++ /dev/null
@@ -1,682 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.13
--->
-
-<chapter id="kerneldebug">
- <title>D&eacute;boguer le noyau</title>
-
- <para><emphasis>Contribution de &a.paul; et &a.joerg;</emphasis></para>
- &trans.a.haby;
-
- <sect1>
- <title>D&eacute;boguer une trace de
- plantage&nbsp;-&nbsp;<foreignphrase>crash
- dump</foreignphrase>&nbsp;-&nbsp;avec <command>kgdb</command></title>
-
- <para>Voici quelques instructions pour d&eacute;boguer le noyau en cas de
- plantage. Elles supposent que vous avez suffisamment d'espace de
- pagination pour enregistrer la trace du plantage. Si vous avez plusieurs
- partitions de pagination et que la premi&egrave;re est trop petite pour
- archiver cette trace, vous pouvez configurer votre noyau pour utiliser
- un autre fichier sp&eacute;cial de p&eacute;riph&eacute;rique pour stocker
- cette trace (&agrave; la ligne <literal>config kernel</literal>) ou vous
- pouvez indiquer un autre fichier sp&eacute;cial de
- p&eacute;riph&eacute;rique avec la commande &man.dumpon.8;. La meilleure
- m&eacute;thode pour utiliser &man.dumpon.8; consiste &agrave; positionner
- la variable <literal>dumpdev</literal> dans
- <filename>/etc/rc.conf</filename>. Vous utiliserez typiquement une des
- partitions de pagination d&eacute;finies dans
- <filename>/etc/fstab</filename>. L'enregistrement de la trace sur d'autres
- fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques que les partitions
- de pagination, des bandes par exemple, n'est actuellement pas
- support&eacute;. Configurez votre noyau avec <command>config -g</command>.
- Reportez-vous au chapitre <link linkend="kernelconfig">Configuration du
- noyau de FreeBSD</link> pour avoir plus de d&eacute;tails sur la
- mani&egrave;re de proc&eacute;der.</para>
-
- <para>Utilisez la commande &man.dumpon.8; pour dire au noyau o&ugrave;
- enregistrer la trace (notez que cela doit &ecirc;tre fait apr&egrave;s
- avoir configur&eacute; la partition en question comme partition de
- pagination avec &man.swapon.8;). C'est normalement fait via
- <filename>/etc/rc.conf</filename> et <filename>/etc/rc</filename>. Vous
- pouvez aussi d&eacute;finir le fichier sp&eacute;cial de trace avec la
- clause <literal>dump</literal> de la ligne <literal>config</literal> du
- fichier de configuration du noyau. C'est d&eacute;pr&eacute;ci&eacute;
- et ne devrait &ecirc;tre utilis&eacute; que si vous voulez la trace d'un
- plantage du noyau lors du d&eacute;marrage du syst&egrave;me.</para>
-
- <note>
- <para>Dans ce qui suit, le terme <command>kgdb</command> se rapporte
- &agrave; <command>gdb</command> ex&eacute;cut&eacute; en &ldquo;mode
- d&eacute;boguage du noyau&rdquo;. Cela se fait soit en lan&ccedil;ant
- <command>gdb</command> avec l'option <option>-k</option>, soit en
- le g&eacute;n&eacute;rant et en le lan&ccedil;ant sous le nom
- <command>kgdb</command>. Ce n'est cependant pas fait par d&eacute;faut,
- et c'est une fa&ccedil;on de faire obsol&egrave;te, parce que les gens
- du projet GNU n'aiment pas que leurs outils se comportent
- diff&eacute;remment quand ils sont appel&eacute;s d'un autre nom. Cette
- fonctionnalit&eacute; pourrait dispara&icirc;tre des versions
- futures.</para>
- </note>
-
- <para>Une fois que le noyau a &eacute;t&eacute; compil&eacute;, faites-en
- une copie, disons <filename>kernel.debug</filename>, et ex&eacute;cutez
- <command>strip -d</command> sur l'original. Installez l'original comme
- d'habitude. Vous pouvez aussi installer le noyau non expurg&eacute;, mais
- le temps de recherche dans la table des symboles augmentera de
- fa&ccedil;on dramatique pour certains programmes, et comme le noyau
- est int&eacute;gralement charg&eacute; en m&eacute;moire au
- d&eacute;marrage et y reste ensuite, vous gaspillerez plusieurs Mo de
- m&eacute;moire physique.</para>
-
- <para>Si vous testez un nouveau noyau, par exemple en donnant le nom de ce
- noyau au d&eacute;marrage, mais avez besoin de d&eacute;marrez avec un
- autre noyau pour avoir de nouveau un syst&egrave;me en &eacute;tat de
- marche, d&eacute;marrez uniquement en mode mono-utilisateur avec
- l'indicateur <option>-s</option> &agrave; l'invite de d&eacute;marrage et
- effectuez ensuite les &eacute;tapes suivantes&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>fsck -p</userinput>
-&prompt.root; <userinput>mount -a -t ufs</userinput> # de fa&ccedil;on &agrave; ce qu'il soit possible d'&eacute;crire
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# sur le syst&egrave;me de fichiers pour /var/crash
-&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput>
-&prompt.root; <userinput>exit</userinput> # ... en mode multi-utilisateur</screen>
-
- <para>Cela dit &agrave; &man.savecore.8; d'utiliser un autre noyau pour y
- chercher les noms des symboles. Il utiliserait sans cela le noyau en cours
- d'ex&eacute;cution et cela ne m&eacute;nerait probablement &agrave; rien,
- puisque les symboles de la trace de plantage et ceux du noyau ne sont pas
- les m&ecirc;mes.</para>
-
- <para>Maintenant, apr&egrave;s un plantage, allez dans
- <filename>/sys/compile/QUELQUE_CHOSE</filename> et lancez
- <command>kgdb</command>. Sous <command>kgdb</command>, tapez&nbsp;:</para>
-
- <screen><userinput>symbol-file kernel.debug</userinput>
-<userinput>exec-file /var/crash/kernel.0</userinput>
-<userinput>core-file /var/crash/vmcore.0</userinput></screen>
-
- <para>et voil&agrave;, vous pouvez maintenant d&eacute;boguer la trace de
- plantage en vous servant des sources du noyau comme vous le feriez pour
- n'importe quel autre programme.</para>
-
- <para>Voici la trace d'une session <command>kgdb</command> qui illustre la
- fa&ccedil;on de proc&eacute;der. Les lignes trop longues ont
- &eacute;t&eacute; scind&eacute;es pour en faciliter la lecture, et les
- lignes sont num&eacute;rot&eacute;es pour pouvoir y faire
- r&eacute;f&eacute;rence. Malgr&eacute; cela, c'est un exemple grandeur
- nature, correspondant &agrave; une trace prise lors du
- d&eacute;veloppement du pilote <devicename>pcvt</devicename>.</para>
-
-<screen> 1:Script started on Fri Dec 30 23:15:22 1994
- 2:&prompt.root; <userinput>cd /sys/compile/URIAH</userinput>
- 3:&prompt.root; <userinput>kgdb kernel /var/crash/vmcore.1</userinput>
- 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel
-...done.
- 5:IdlePTD 1f3000
- 6:panic: because you said to!
- 7:current pcb at 1e3f70
- 8:Reading in symbols for ../../i386/i386/machdep.c...done.
- 9:<prompt>(kgdb)</prompt> <userinput>where</userinput>
-10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767)
-11:#1 0xf0115159 in panic ()
-12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698)
-13:#3 0xf010185e in db_fncall ()
-14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073)
-15:#5 0xf0101711 in db_command_loop ()
-16:#6 0xf01040a0 in db_trap ()
-17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723)
-18:#8 0xf019d2eb in trap_fatal (...)
-19:#9 0xf019ce60 in trap_pfault (...)
-20:#10 0xf019cb2f in trap (...)
-21:#11 0xf01932a1 in exception:calltrap ()
-22:#12 0xf0191503 in cnopen (...)
-23:#13 0xf0132c34 in spec_open ()
-24:#14 0xf012d014 in vn_open ()
-25:#15 0xf012a183 in open ()
-26:#16 0xf019d4eb in syscall (...)
-27:<prompt>(kgdb)</prompt> <userinput>up 10</userinput>
-28:Reading in symbols for ../../i386/i386/trap.c...done.
-29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\
-30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\
-31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\
-32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\
-33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\
-34:ss = -266427884}) (../../i386/i386/trap.c line 283)
-35:283 (void) trap_pfault(&amp;frame, FALSE);
-36:<prompt>(kgdb)</prompt> <userinput>frame frame-&gt;tf_ebp frame-&gt;tf_eip</userinput>
-37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done.
-38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\
-39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403)
-40:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-41:<prompt>(kgdb)</prompt> <userinput>list</userinput>
-42:398
-43:399 tp-&gt;t_state |= TS_CARR_ON;
-44:400 tp-&gt;t_cflag |= CLOCAL; /* cannot be a modem (:-) */
-45:401
-46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200)
-47:403 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp));
-48:404 #else
-49:405 return ((*linesw[tp-&gt;t_line].l_open)(dev, tp, flag));
-50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */
-51:407 }
-52:<prompt>(kgdb)</prompt> <userinput>print tp</userinput>
-53:Reading in symbols for ../../i386/i386/cons.c...done.
-54:$1 = (struct tty *) 0x1bae
-55:<prompt>(kgdb)</prompt> <userinput>print tp-&gt;t_line</userinput>
-56:$2 = 1767990816
-57:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\
-59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126)
-60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p));
-61:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-62:#2 0xf0132c34 in spec_open ()
-63:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-64:#3 0xf012d014 in vn_open ()
-65:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-66:#4 0xf012a183 in open ()
-67:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\
-69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\
-70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \
-71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \
-72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673)
-73:673 error = (*callp-&gt;sy_call)(p, args, rval);
-74:<prompt>(kgdb)</prompt> <userinput>up</userinput>
-75:Initial frame selected; you cannot go up.
-76:<prompt>(kgdb)</prompt> <userinput>quit</userinput>
-77:&prompt.root; <userinput>exit</userinput>
-78:exit
-79:
-80:Script done on Fri Dec 30 23:18:04 1994</screen>
- <para>Commentaires sur les r&eacute;sultats ci-dessus&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>ligne 6&nbsp;:</term>
-
- <listitem>
- <para>C'est une trace obtenue depuis DDB (voir plus bas), d'o&ugrave;
- le commentaire panique &ldquo;<foreignphrase>because you said
- to!</foreignphrase>&nbsp;-&nbsp;parce que vous l'avez
- demand&eacute;&rdquo;&nbsp;-&nbsp;et une assez longue trace de la
- pile d'ex&eacute;cution; la raison initiale du passage sous DDB est
- n&eacute;anmoins la d&eacute;tection d'un d&eacute;faut de
- page.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ligne 20&nbsp;:</term>
-
- <listitem>
- <para>C'est la position de l'appel &agrave; la fonction
- <function>trap()</function> dans la pile.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ligne 36&nbsp;:</term>
-
- <listitem>
- <para>Impose l'utilisation d'un nouveau contexte de
- pile&nbsp;-&nbsp;<foreignphrase>stack frame</foreignphrase>; ce
- n'est dor&eacute;navant plus n&eacute;cessaire. Les contextes de
- pile sont maintenant cens&eacute;s pointer sur les bonnes adresses,
- m&ecirc;me en cas de d&eacute;branchement. (Je n'ai pas de trace
- r&eacute;cente de plantage sous la main; mon noyau n'a pas
- paniqu&eacute; depuis un certain temps.) Au vu de la ligne 403 du
- code source, il y a de fortes chances pour que soit le pointeur de
- &ldquo;tp&rdquo; soit erronn&eacute; soit il y ait
- d&eacute;bordement dans le tableau.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ligne 52&nbsp;:</term>
-
- <listitem>
- <para>Le pointeur semble suspect, mais il se trouve que l'adresse est
- valide.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ligne 56&nbsp;:</term>
-
- <listitem>
- <para>Il pointe cependant sur n'importe quoi, nous avons donc
- trouv&eacute; notre erreur! (Pour ceux qui ne sont pas
- familiaris&eacute;s avec ce code particulier&nbsp;:
- <literal>tp-&gt;t_line</literal> se rapporte &agrave; la gestion de
- la liaison&nbsp;-&nbsp;<foreignphrase>line
- discipline</foreignphrase>&nbsp;-&nbsp;du p&eacute;riph&eacute;rique
- console, qui doit &ecirc;tre un entier assez petit.)</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1>
- <title>D&eacute;boguer une trace de plantage avec DDD</title>
-
- <para>Il est aussi possible d'examiner une trace de plantage avec un
- d&eacute;bogueur graphique comme <command>ddd</command>. Ajoutez l'option
- <option>-k</option> &agrave; la ligne de commande de
- <command>ddd</command> que vous utiliseriez normalement. Par
- exemple&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput></screen>
-
- <para>Vous devriez maintenant pouvoir examiner la trace de plantage avec
- l'interface graphique de <command>ddd</command>.</para>
- </sect1>
-
- <sect1>
- <title>Analyser la trace apr&egrave;s plantage</title>
-
- <para>Que faire si le noyau plante alors que vous ne l'aviez pas
- pr&eacute;vu et donc que vous ne l'avez pas compil&eacute; avec
- <command>config -g</command>&nbsp;? Tout n'est pas perdu. Ne paniquez
- pas&nbsp;!</para>
-
- <para>Il faut bien s&ucirc;r que vous autorisiez l'archivage des traces de
- plantage. Voyez plus haut quelles options vous devez utiliser pour
- cela.</para>
-
- <para>Allez dans le r&eacute;pertoire de compilation de votre noyau et
- &eacute;ditez la ligne contenant <literal>COPTFLAGS?=-O</literal>.
- Ajoutez-y l'option <option>-g</option> (mais ne changez
- <emphasis>rien</emphasis> au niveau d'optimisation. Si vous avez
- d&eacute;j&agrave; une vague id&eacute;e de l&agrave; o&ugrave; se situe
- le code fautif (e.g., le pilote <devicename>pcvt</devicename> dans
- l'exemple pr&eacute;c&eacute;dent), supprimez tous les fichiers objets
- correspondant &agrave; ce code. Recompilez le noyau. Du fait de la
- modification de la date du <filename>Makefile</filename>, d'autres
- objets seront reconstruits, par exemple, <filename>trap.o</filename>. Avec
- un peu de chance, l'option suppl&eacute;mentaire <option>-g</option> ne
- changera rien au code g&eacute;n&eacute;r&eacute;, vous aurez donc un
- nouveau noyau dont le code est similaire &agrave; celui qui a
- plant&eacute; &agrave; l'exception de quelques symboles de
- d&eacute;bogage. V&eacute;rifiez au moins les tailles des deux noyaux avec
- la commande &man.size.1;. Si elles ne correspondent pas, vous devrez
- probablement en rester l&agrave;.</para>
-
- <para>Examinez maintenant la trace comme d&eacute;crit plus haut. Il y aura
- probablement par endroit des symboles de d&eacute;bogage incomplets, comme
- on peut le voir dans la trace de la pile de l'exemple plus haut, o&ugrave;
- certaines fonctions sont list&eacute;es sans num&eacute;ro de ligne et
- liste d'arguments. S'il vous faut plus d'informations, supprimez les
- fichiers objets et reprenez la session <command>kgdb</command>
- jusqu'&agrave; ce que vous en sachiez assez.</para>
-
- <para>Il n'y a aucune garantie que tout cela marche, mais cela fera
- l'affaire dans la plupart des cas.</para>
- </sect1>
-
- <sect1>
- <title>D&eacute;boguer en ligne le noyau avec DDB</title>
-
- <para>Tandis que <command>kgdb</command> comme d&eacute;bogueur hors-ligne
- procure une interface utilisateur de tr&egrave;s haut niveau, il y a
- certaines choses qu'il ne peut pas faire. Les principales sont la mise en
- place de points d'arr&ecirc;t et l'ex&eacute;cution pas -&agrave;-pas du
- code du noyau.</para>
-
- <para>Si vous devez faire du d&eacute;bogage de bas niveau de votre noyau,
- il y a un d&eacute;bogueur de bas niveau appel&eacute; DDB. Il permet la
- mise en place des points d'arr&ecirc;t, l'ex&eacute;cution instruction
- par instruction des fonctions du noyau, l'examen et la modification
- de variables du noyau, etc. Il ne peut cependant pas acc&eacute;der aux
- fichiers source du noyau et n'a acc&egrave;s qu'aux symboles globaux et
- statiques et non &agrave; la totalit&eacute; des informations comme
- <command>kgdb</command>.</para>
-
- <para>Pour configurer votre noyau pour y inclure DDB, ajoutez la ligne
- d'option&nbsp;:</para>
-
- <programlisting>
-options DDB</programlisting>
-
- <para>&agrave; votre fichier de configuration et recompilez-le.
- (Reportez-vous au chapitre <link linkend="kernelconfig">Configurer le
- noyau de FreeBSD </link> pour plus de d&eacute;tails sur la configuration
- du noyau de FreeBSD.)</para>
-
- <note>
- <para>Si vous avez une ancienne version des blocs de d&eacute;marrage, les
- symboles du d&eacute;bogueur peuvent ne pas &ecirc;tre charg&eacute;s du
- tout. Mettez &agrave; jour les blocs de d&eacute;marrage; les versions
- r&eacute;centes chargent automagiquement les symboles de DDB.</para>
- </note>
-
- <para>Une fois que votre noyau incluant DDB s'ex&eacute;cute, il y a
- plusieurs fa&ccedil;ons de passer sous DDB. La premi&egrave;re et la plus
- imm&eacute;diate est d'utiliser l'option <option>-d</option> d&egrave;s le
- d&eacute;marrage; Le noyau d&eacute;marrera en mode d&eacute;bogage et
- passera sous DDB avant m&ecirc;me de tester la pr&eacute;sence des
- p&eacute;riph&eacute;riques. Vous pouvez donc m&ecirc;me d&eacute;boguer
- les fonctions de test et d'attachement des
- p&eacute;riph&eacute;riques.</para>
-
- <para>Le seconde est d'utiliser une combinaison de touches du clavier,
- habituellement
- <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>>Esc</keycap></keycombo>.
- Avec <devicename>syscons</devicename>, cette combinaison peut &ecirc;tre
- red&eacute;finie; certaines red&eacute;finitions distribu&eacute;es du
- clavier le font, faites-y donc attention. Il existe une option pour les
- consoles s&eacute;rie qui permet d'utiliser un <keysym>Break</keysym> sur
- la ligne console pour passer sous DDB
- (<literal>options BREAK_TO_DEBUGGER</literal> dans le fichier de
- configuration du noyau). Ce n'est pas l'option par d&eacute;faut, parce
- qu'il y a de nombreux adaptateurs s&eacute;rie qui g&eacute;n&egrave;rent
- gratuitement un <keysym>Break</keysym>, par exemple, lorsque l'on
- d&eacute;branche le c&acirc;ble.</para>
-
- <para>Troisi&egrave;mement, le noyau passe sous DDB lorsqu'une condition
- panique intervient, s'il est configur&eacute; pour l'utiliser. En
- cons&eacute;quence, il vaut mieux ne pas configurer le noyau pour qu'il
- inclue DDB, si la machine n'est pas sous surveillance.</para>
-
- <para>Les commandes de DDB ressemblent assez &agrave; celles de
- <command>gdb</command>. La premi&egrave;re chose que vous devrez
- probablement faire sera de placer un point d'arr&ecirc;t&nbsp;:</para>
-
- <screen><userinput>b nom-de-fonction</userinput>
-<userinput>b adresse</userinput></screen>
-
- <para>Par d&eacute;faut, les nombres sont normalement donn&eacute;s en
- hexad&eacute;cimal, mais, pour les distinguer des noms de symboles, les
- nombres hexad&eacute;cimaux qui commencent par les lettres
- <literal>a-f</literal> doivent &ecirc;tre pr&eacute;c&eacute;d&eacute;s de
- <literal>0x</literal> (c'est facultatif pour les autres nombres). On peut
- utiliser des expressions simples, par exemple&nbsp;:
- <literal>nom-de-fonction + 0x103</literal>.</para>
-
- <para>Pour reprendre l'ex&eacute;cution interrompue du noyau, tapez
- simplement&nbsp;:</para>
-
- <screen><userinput>c</userinput></screen>
-
- <para>Pour avoir le trace de la pile d'ex&eacute;cution, tapez&nbsp;:</para>
-
- <screen><userinput>trace</userinput></screen>
-
- <note>
- <para>Remarquez que quand vous passez sous DDB avec une combinaison de
- touches, le noyau traite en fait une interruption, le contenu de la pile
- d'ex&eacute;cution ne vous sera alors peut-&ecirc;tre pas tr&egrave;s
- utile.</para>
- </note>
-
- <para>Si vous voulez supprimer un point d'arr&ecirc;t, servez-vous
- de&nbsp;:</para>
-
- <screen><userinput>del</userinput>
-<userinput>del expression-d&eacute;finissant-l'adresse</userinput></screen>
-
- <para>Le premier exemple sert imm&eacute;diatement apr&egrave;s &ecirc;tre
- arriv&eacute; &agrave; un point d'arr&ecirc;t et supprime ce point
- d'arr&ecirc;t. Le second exemple permet de supprimer n'importe quel point
- d'arr&ecirc;t, mais il faut donner son adresse exacte; on peut l'obtenir
- avec&nbsp;:</para>
-
- <screen><userinput>show b</userinput></screen>
-
- <para>Pour ex&eacute;cuter pas-&agrave;-pas le noyau, essayez&nbsp;:</para>
-
- <screen><userinput>s</userinput></screen>
-
- <para>Vous ex&eacute;cuterez ainsi pas-&agrave;-pas les fonctions, mais vous
- pouvez aussi faire en sorte que DDB aille jusqu'&agrave; l'instruction de
- retour d'une fonction avec&nbsp;:</para>
-
- <screen><userinput>n</userinput></screen>
-
- <note>
- <para>Ce n'est pas la m&ecirc;me chose que la commande
- <command>next</command> de <command>gdb</command>, mais c'est
- l'&eacute;quivalent de la commande <command>finish</command>.</para>
- </note>
-
- <para>Pour consulter le contenu de la m&eacute;moire, employez (par
- exemple)&nbsp;:</para>
-
- <screen><userinput>x/wx 0xf0133fe0,40</userinput>
-<userinput>x/hd db_symtab_space</userinput>
-<userinput>x/bc termbuf,10</userinput>
-<userinput>x/s stringbuf</userinput></screen>
-
- <para>pour acc&eacute;der &agrave; des mots/demi-mots/octets, et pour
- afficher des cha&icirc;nes de valeurs
- hexad&eacute;cimales/d&eacute;cimales/caract&egrave;res. La valeur
- apr&egrave;s la virgule est le nombre d'&eacute;l&eacute;ments. Pour
- afficher les <literal>0x10</literal> &eacute;l&eacute;ments suivants,
- tapez simplement&nbsp;:</para>
-
- <screen><userinput>x ,10</userinput></screen>
-
- <para>De m&ecirc;me, utilisez&nbsp;:</para>
-
- <screen><userinput>x/ia foofunc,10</userinput></screen>
-
- <para>pour d&eacute;sassembler les <literal>0x10</literal> premi&egrave;res
- instructions de <function>foofunc</function>, et les afficher avec leur
- d&eacute;placement depuis le d&eacute;but de
- <function>foofunc</function>.</para>
-
- <para>Pour modifer le contenu de la m&eacute;moire, utilisez la commande
- d'&eacute;criture&nbsp;:</para>
-
- <screen><userinput>w/b termbuf 0xa 0xb 0</userinput>
-<userinput>w/w 0xf0010030 0 0</userinput></screen>
-
- <para>Le param&egrave;tre de la commande
- (<literal>b</literal>/<literal>h</literal>/<literal>w</literal>)
- indique la taille de la valeur &agrave; &eacute;crire, la premi&egrave;re
- expression qui suit est l'adresse o&ugrave; &eacute;crire et la suite est
- interpr&eacute;t&eacute;e comme donnant les valeurs &agrave; &eacute;crire
- en s&eacute;quence en m&eacute;moire.</para>
-
- <para>Si vous avez besoin de conna&icirc;tre le contenu des registres,
- servez-vous de&nbsp;:</para>
-
- <screen><userinput>show reg</userinput></screen>
-
- <para>Vous pouvez aussi afficher la valeur d'un seul registre avec, par
- exemple&nbsp;:</para>
-
- <screen><userinput>p $eax</userinput></screen>
-
- <para>et la modifier avec&nbsp;:</para>
-
- <screen><userinput>set $eax nouvelle-valeur</userinput></screen>
-
- <para>Si vous voulez appeler une fonction du noyau depuis DDB, dites
- simplement&nbsp;:</para>
-
- <screen><userinput>call func(arg1, arg2, ...)</userinput></screen>
-
- <para>La valeur de retour sera affich&eacute;e.</para>
-
- <para>Pour avoir un r&eacute;sum&eacute; du style &man.ps.1; des processus
- lanc&eacute;s, utilisez&nbsp;:</para>
-
- <screen><userinput>ps</userinput></screen>
-
- <para>Vous avez maintenant examin&eacute; la raison de l'&eacute;chec de
- votre noyau, et voulez red&eacute;marrer le syst&egrave;me. Rappelez-vous
- que, selon la gravit&eacute; des dysfonctionnements
- pr&eacute;c&eacute;dents, toutes les parties du noyau ne fonctionneront
- peut-&ecirc;tre pas comme pr&eacute;vu. Red&eacute;marrez votre
- syst&egrave;me, avec l'un des moyens suivants&nbsp;:</para>
-
- <screen><userinput>call diediedie()</userinput></screen>
-
- <para>Votre noyau enregistrera une trace de plantage et red&eacute;marrera,
- vous pourrez donc analyser &agrave; plus haut niveau la trace avec
- <command>kgdb</command>. Cette commande doit habituellement &ecirc;tre
- suivie d'une instruction <command>continue</command>. Il y a maintenant
- un alias pour cela&nbsp;: <command>panic</command>.</para>
-
- <screen><userinput>call boot(0)</userinput></screen>
-
- <para>C'est une bonne m&eacute;thode pour arr&ecirc;ter proprement le
- syst&egrave;me, ex&eacute;cuter <function>sync()</function> sur tous les
- disques et ensuite red&eacute;marrer. Tant que le disque et les interfaces
- du syst&egrave;me de fichier du noyau ne sont pas endommag&eacute;s, ce
- peut &ecirc;tre une bonne fa&ccedil;on d'arr&ecirc;ter presque proprement
- le syst&egrave;me.</para>
-
- <screen><userinput>call cpu_reset()</userinput></screen>
-
- <para>est la m&eacute;thode ultime pour se sortir du d&eacute;sastre et
- c'est &agrave; peu pr&egrave;s la m&ecirc;me chose que d'appuyer sur le
- Bouton Rouge.</para>
-
- <para>Si vous avez besoin d'un bref r&eacute;sum&eacute; des commandes,
- tapez simplemement&nbsp;:</para>
-
- <screen><userinput>help</userinput></screen>
-
- <para>Il est n&eacute;anmoins chaudement recommand&eacute; d'avoir sous la
- main un exemplaire des pages de manuel de &man.ddb.4; lors d'une session
- de d&eacute;bogage. Rappelez-vous qu'il peut &ecirc;tre difficile de lire
- le manuel en ligne tandis que l'on ex&eacute;cute pas-&agrave;-pas le
- noyau.</para>
- </sect1>
-
- <sect1>
- <title>D&eacute;boguer en ligne le noyau en utilisant GDB &agrave;
- distance</title>
-
- <para>Cette fonctionnalit&eacute; est support&eacute;e depuis FreeBSD 2.2,
- et est de fait tr&egrave;s &eacute;l&eacute;gante.</para>
-
- <para>GDB supporte d&eacute;j&agrave; depuis longtemps le
- <emphasis>d&eacute;bogage &agrave; distance</emphasis>. Cela se fait avec
- un protocole tr&egrave;s simple sur une ligne s&eacute;rie. A l'inverse
- des autres m&eacute;thode d&eacute;crite plus haut, il vous faudra pour
- cela deux machines. L'une fournit l'environnement de d&eacute;bogage, y
- compris la totalit&eacute; des sources, et un exemplaire du binaire du
- noyau incluant tous les symboles, et l'autre est la machine cible qui
- ex&eacute;cute un exemplaire identique du noyau (mais sans les
- informations de d&eacute;bogage).</para>
-
- <para>Vous devrez configurer le noyau en question avec <command>config
- -g</command>, inclure <option>DDB</option> &agrave; sa configuration, et
- le compiler comme d'habitude. Cela donne un binaire assez imposant, du
- fait des informations de d&eacute;bogage. Copiez ce noyau sur la machine
- cible, supprimez les informations de d&eacute;bogage avec <command>strip
- -x</command>, et d&eacute;marrez avec l'option <option>-d</option>.
- Reliez la premi&egrave;re ligne s&eacute;rie de la machine cible &agrave;
- n'importe quelle ligne s&eacute;rie de la machine de d&eacute;bogage.
- Allez maintenant dans le r&eacute;pertoire de compilation du noyau de la
- machine de d&eacute;bogage, et lancez <command>gdb</command>&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>gdb -k kernel</userinput>
-GDB is free software and you are welcome to distribute copies of it
- under certain conditions; type "show copying" to see the conditions.
-There is absolutely no warranty for GDB; type "show warranty" for details.
-GDB 4.16 (i386-unknown-freebsd),
-Copyright 1996 Free Software Foundation, Inc...
-<prompt>(kgdb)</prompt> </screen>
-
- <para>Initialisez la session de d&eacute;bogage &agrave; distance (en
- supposant que l'on utilise le premier port s&eacute;rie)
- avec&nbsp;:</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen>
-
- <para>Puis, sur la machine cible (celle qui est pass&eacute;e sous DDB avant
- m&ecirc;me de tester la pr&eacute;sence des p&eacute;riph&eacute;riques),
- tapez&nbsp;:</para>
-
- <screen>Debugger("Boot flags requested debugger")
-Stopped at Debugger+0x35: movb $0, edata+0x51bc
-<prompt>db&gt;</prompt> <userinput>gdb</userinput></screen>
-
- <para>DDB r&eacute;pondra par&nbsp;:</para>
-
- <screen>Next trap will enter GDB remote protocol mode</screen>
-
- <para>Chaque que vous taperez <command>gdb</command>, vous passerez de GDB
- &agrave; distance &agrave; DDB en local et inversement. Pour basculer
- imm&eacute;diatement, tapez simplement <command>s</command>
- (<foreignphrase>step</foreignphrase>). Votre GDB h&ocirc;te aura
- maintenant le contr&ocirc;le du noyau cible&nbsp;:</para>
-
- <screen>Remote debugging using /dev/cuaa0
-Debugger (msg=0xf01b0383 "Boot flags requested debugger")
- at ../../i386/i386/db_interface.c:257
-<prompt>(kgdb)</prompt></screen>
-
- <para>Vous pouvez faire sous cette session &agrave; peu pr&egrave;s les
- m&ecirc;mes choses qu'avec n'importe quelle autre session GDB, y compris
- acc&eacute;der int&eacute;gralement au source, l'ex&eacute;cuter en mode
- <foreignphrase>gud</foreignphrase> dans une fen&ecirc;tre Emacs (ce qui
- provoque l'affichage automatique du code source dans une autre
- fen&ecirc;tre Emacs), etc.</para>
-
- <para>GDB peut aussi &ecirc;tre utilis&eacute; &agrave; distance pour
- d&eacute;boguer des modules du noyau &agrave; chargement
- dynamique&nbsp;-&nbsp;<foreignphrase>LKM</foreignphrase>. Compilez d'abord
- le module avec les symboles de d&eacute;bogage&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput>
-&prompt.root; <userinput>make clean; make COPTS=-g</userinput></screen>
-
- <para>Installez ensuite cette version du module sur la machine cible,
- chargez-le et utilisez <command>modstat</command> pour trouver o&ugrave;
- il a &eacute;t&eacute; charg&eacute;&nbsp:</para>
-
- <screen>&prompt.root; <userinput>linux</userinput>
-&prompt.root; <userinput>modstat</userinput>
-Type Id Off Loadaddr Size Info Rev Module Name
-EXEC 0 4 f5109000 001c f510f010 1 linux_mod</screen>
-
- <para>Prenez l'adresse de chargement et ajoutez-y <literal>0x20</literal>
- (probablement pour prendre en compte l'en-t&ecirc;te a.out). C'est
- l'adresse o&ugrave; le code du module a &eacute;t&eacute; relog&eacute;.
- Utilisez la commande <command>add-symbol-file</command> de GDB pour
- informer le d&eacute;bogueur de l'existence du module&nbsp;:</para>
-
- <screen><prompt>(kgdb)</prompt> <userinput>add-symbol-file /usr/src/lkm/linux/linux_mod.o 0xf5109020</userinput>
-add symbol table from file "/usr/src/lkm/linux/linux_mod.o" at
-text_addr = 0xf5109020? (y or n) <userinput>y</userinput>
-<prompt>(kgdb)</prompt></screen>
-
- <para>Vous avez maintenant acc&egrave;s &agrave; tous les symboles du
- module.</para>
- </sect1>
-
- <sect1>
- <title>D&eacute;boguer un pilote de console</title>
-
- <para>Comme vous avez besoin d'un pilote de console pour faire tourner DDB,
- les choses sont plus compliqu&eacute;es si c'est le pilote de console
- lui-m&ecirc;me qui a des probl&egrave;mes. Vous pouvez penser &agrave;
- utiliser une console s&eacute;rie (soit avec des blocs de d&eacute;marrage
- modifi&eacute;s, soit en utilisant l'option <option>-h</option> &agrave;
- l'invite <prompt>Boot:</prompt>) et connecter un terminal standard au
- premier port s&eacute;rie. DDB fonctionne avec n'importe quel pilote de
- console configur&eacute;, donc bien s&ucirc;r aussi avec une console
- s&eacute;rie.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/kernelopts/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kernelopts/chapter.sgml
deleted file mode 100644
index 7837338269..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/kernelopts/chapter.sgml
+++ /dev/null
@@ -1,200 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.9
--->
-
-<chapter id="kernelopts">
- <title>Ajouter de nouvelles options de configuration du noyau</title>
-
- <para><emphasis>Contribution de &a.joerg;</emphasis></para>
- &trans.a.haby;
-
- <note>
- <para>Vous devez &ecirc;tre familiaris&eacute; avec le chapitre
- <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> avant
- de lire ce chapitre.</para>
- </note>
-
- <sect1>
- <title>Au fait, qu'est-ce-qu'une <emphasis>option du
- noyau</emphasis>&nbsp;?</title>
-
- <para>L'utilisation des options du noyau est principalement d&eacute;crite
- au chapitre <link linkend="kernelconfig-options">Configurer le noyau de
- FreeBSD</link>. Il y a aussi des explications &agrave; propos des options
- &ldquo;historiques&rdquo; et &ldquo;nouveau style&rdquo;. L'objectif final
- est de remplacer toutes les options support&eacute;es du noyau par des
- options de nouveau style, de fa&ccedil;on &agrave; ce que pour ceux qui
- ont correctement ex&eacute;cut&eacute; <command>make depend</command> dans
- leur r&eacute;pertoire de compilation du noyau apr&egrave;s
- &man.config.8;, la phase de compilation retrouve automatiquement les
- options modifi&eacute;es et ne recompile que les fichiers
- n&eacute;cessaires. Il n'y aura alors plus besoin d'effacer tous les
- fichiers de l'ancien r&eacute;pertoire de compilation apr&egrave;s
- chaque &man.config.8;, comme c'est encore le cas.</para>
-
- <para>Une option du noyau n'est essentiellement rien de plus que la
- d&eacute;finition d'une macro-instruction du pr&eacute;processeur C pour
- la compilation du noyau. Pour que la compilation soit vraiment
- optionnelle, la partie correspondante du source du noyau (ou le fichier
- <filename>.h</filename> du noyau) doit &ecirc;tre &eacute;crit avec
- l'option &agrave; l'esprit, i.e., la valeur par d&eacute;faut doit pouvoir
- &ecirc;tre surcharg&eacute;e par l'option de configuration. C'est
- habituellement r&eacute;alis&eacute; avec quelque chose
- comme&nbsp;:</para>
-
- <programlisting>
-#ifndef CETTE_OPTION
-#define CETTE_OPTION (une valeur par d&eacute;faut)
-#endif /* CETTE_OPTION */
- </programlisting>
-
- <para>De la sorte, un administrateur donnant une autre valeur &agrave;
- l'option dans son fichier de configuration, d&eacute;sactivera la valeur
- par d&eacute;faut et la remplacera par sa nouvelle valeur. Bien
- &eacute;videmment, la nouvelle valeur sera substitu&eacute;e dans le code
- par le pr&eacute;processeur, ce doit donc &ecirc;tre une expression C
- valide dans le contexte dans lequel &eacute;tait utilis&eacute;e la
- valeur par d&eacute;faut.</para>
-
- <para>Il est aussi possible de d&eacute;finir une option sans valeur qui
- encadre une partie donn&eacute;e du code pour la mettre en service ou
- non&nbsp;:</para>
-
- <programlisting>
-#ifdef CETTE_OPTION
-
-[votre code]
-
-#endif
- </programlisting>
-
- <para>Simplement indiquer <literal>CETTE_OPTION</literal> dans le fichier de
- de configuration (avec ou sans valeur) mettra en service le code
- correspondant.</para>
-
- <para>Les gens qui ont l'habitude du langage C auront imm&eacute;diatement
- compris que n'importe quoi peut &ecirc;tre une option de configuration,
- d&egrave;s lors qu'il y a au moins un <literal>#ifdef</literal> qui y fait
- r&eacute;f&eacute;rence... Il y a cependant peu de chance que beaucoup
- utilisent&nbsp;:</para>
-
- <programlisting>
-options notyet,notdef</programlisting>
-
- <para>dans leur fichier de configuration, et se demandent ensuite pourquoi
- la compilation du noyau &eacute;choue. <!-- smiley -->:-)</para>
-
- <para>A l'&eacute;vidence, donner n'importe quel nom aux options rend
- tr&egrave;s difficile de retrouver o&ugrave; elles sont utilis&eacute;es
- dans l'arborescence des sources du noyau. C'est la raison d'&ecirc;tre de
- l'organisation des options de <emphasis>nouveau style</emphasis>,
- dans laquelle chaque option est d&eacute;finie dans un
- <filename>.h</filename> distinct du r&eacute;pertoire de compilation du
- noyau, appel&eacute; par convention
- <filename>opt_<replaceable>foo</replaceable>.h</filename>. De cette
- fa&ccedil;on, les d&eacute;pendances habituelles dans le
- <filename>Makefile</filename> s'appliquent, et <command>make</command>
- peut savoir ce qu'il faut recompiler quand une option a &eacute;t&eacute;
- modifi&eacute;e.</para>
-
- <para>Le m&eacute;canisme d'option de style ancien a un avantage dans le cas
- des options locales ou &eacute;ventuellement exp&eacute;rimentales dont
- la dur&eacute;e de vie pr&eacute;vue est courte&nbsp;: comme il est
- simple d'ajouter un <literal>#ifdef</literal> au source du noyau, cela
- en fait d'office une option de configuration du noyau. Dans ce cas,
- l'administrateur qui utilise une telle option doit lui-m&ecirc;me
- savoir ce que cela implique (et &eacute;ventuellement forcer la
- recompilation de parties de son noyau). Une fois que toutes les options
- support&eacute;es auront &eacute;t&eacute; converties, &man.config.8;
- &eacute;mettra un message d'avertissement toutes les fois qu'une option
- non support&eacute;e sera d&eacute;tect&eacute;e, mais il l'incluera
- malgr&eacute; tout dans le <filename>Makefile</filename> du
- noyau.</para>
- </sect1>
-
- <sect1>
- <title>Que faut-il donc faire maintenant&nbsp;?</title>
-
- <para>Editez d'abord <filename>sys/conf/options</filename> (ou
- <filename>sys/i386/conf/options.<replaceable>&lt;arch&gt;</replaceable></filename>,
- e. g., <filename>sys/i386/conf/options.i386</filename>), et
- s&eacute;lectionnez le fichier
- <filename>opt_<replaceable>foo</replaceable>.h</filename> o&ugrave; votre
- option ira le mieux.</para>
-
- <para>S'il y a d&eacute;j&agrave; quelque chose qui se rapproche de
- l'objectif de la nouvelle option, utilisez-le. Par exemple, les options
- qui modifient le comportement g&eacute;n&eacute;ral du sous-syst&egrave;me
- SCSI vont dans <filename>opt_scsi.h</filename>. Par d&eacute;faut, le fait
- d'indiquer une option dans le fichier d'option appropri&eacute;, disons
- <literal>FOO</literal>, implique que sa valeur sera d&eacute;finie dans le
- fichier <filename>opt_foo.h</filename>. Ce peut &ecirc;tre
- surcharg&eacute; dans la partie droite de la r&egrave;gle en indiquant un
- autre nom de fichier.</para>
-
- <para>S'il n'y a pas encore de fichier
- <filename>opt_<replaceable>foo</replaceable>.h</filename> pour la nouvelle
- option envisag&eacute;e, inventez un nouveau nom. Faites en sorte qu'il
- soit significatif, et ajoutez des commentaires &agrave; la nouvelle
- section du fichier
- <filename>options[<replaceable>.&lt;arch&gt;</replaceable>]</filename>.
- &man.config.8; s'apercevra automagiquement de la modification et
- cr&eacute;era ce fichier la prochaine fois qu'il sera utilis&eacute;. La
- plupart des options vont normalement dans un fichier d'en-t&ecirc;te qui
- leur est propre.</para>
-
- <para>Incorporer trop d'options &agrave; un m&ecirc;me
- <filename>opt_<replaceable>foo</replaceable>.h</filename> entra&icirc;nera
- la recompilation de nombreux fichiers du noyau d&egrave;s qu'une des
- options du fichier de configuration aura &eacute;t&eacute;
- modifi&eacute;e.</para>
-
- <para>Pour finir, d&eacute;terminez quels fichiers du noyau d&eacute;pendent
- de la nouvelle option. A moins que vous veniez de l'inventer, et qu'elle
- n'existe encore nulle part&nbsp;:</para>
- <screen>&prompt.user; <userinput>find /usr/src/sys -name type f | xargs fgrep NEW_OPTION</userinput></screen>
- <para>vous aidera &agrave; les trouver. Editez ces fichiers et
- ajoutez-y&nbsp;:</para>
- <programlisting>
-#include "opt_foo.h"
- </programlisting>
- <para><emphasis>au d&eacute;but</emphasis>, avant tout autre
- <literal>#include &lt;xxx.h&gt;</literal>. Cet ordre est tr&egrave;s
- important, parce que les options peuvent surcharger les valeurs par
- d&eacute;faut des fichiers inclus habituels, si les valeurs par
- d&eacute;faut sont donn&eacute;es sous forme&nbsp;:</para>
- <programlisting>
-#ifndef NOUVELLE_OPTION
-#define NOUVELLE_OPTION (quelque chose)
-#endif
- </programlisting>
- <para>dans l'en-t&ecirc;te habituelle.</para>
-
- <para>Ajouter une option qui red&eacute;finisse quelque chose dans un
- fichier d'en-t&ecirc;te du syst&egrave;me (i.e., un fichier dans
- <filename>/usr/include/sys/</filename>) est presque toujours une erreur.
- <filename>opt_<replaceable>foo</replaceable>.h</filename> ne peut pas
- &ecirc;tre inclus dans ces fichiers parce que cela d&eacute;graderait plus
- s&eacute;rieusement les en-t&ecirc;tes, et s'il n'est pas inclus, il peut
- alors y avoir des valeurs inconsistantes pour l'option l&agrave;
- o&ugrave; il est inclus. Oui, il y a d&eacute;j&agrave; des
- pr&eacute;c&eacute;dents, mais cela ne rend pas l'op&eacute;ration plus
- correcte.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/l10n/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/l10n/chapter.sgml
deleted file mode 100644
index f7e8c9fae2..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ /dev/null
@@ -1,376 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.9
--->
-
-<chapter id="l10n">
- <title>Localisation</title>
- &trans.a.haby;
-
- <sect1 id="russian">
- <title>Russe (codage KOI8-R)</title>
-
- <para><emphasis>Contribution de &a.ache; 1 Mai
- 1997</emphasis>.</para>
-
- <para>Vous trouverez plus d'informations sur la codification KOI8-R dans les
- <ulink URL="http://www.nagual.pp.ru/~ache/koi8.html">R&eacute;f&eacute;rences
- KOI8-R (Jeu de caract&egrave;res russes pour Internet)</ulink>.</para>
-
- <sect2 id="russian-console">
- <title>Configuration de la console</title>
-
- <procedure>
- <step>
- <para>Ajoutez la ligne suivante &agrave; votre fichier de
- configuration du noyau&nbsp;:</para>
-
- <programlisting>
-options "SC_MOUSE_CHAR=0x03"</programlisting>
-
- <para>pour d&eacute;placer les codes utilis&eacute;s pour le curseur
- de la souris hors de la plage des caract&egrave;res
- pseudographiques KOI8-R.</para>
- </step>
-
- <step>
- <para>L'entr&eacute;e pour la console russe de
- <filename>/etc/rc.conf</filename> doit ressembler
- &agrave;&nbsp;:</para>
-
- <programlisting>
-keymap=ru.koi8-r
-keychange="61 ^[[K"
-scrnmap=koi8-r2cp866
-font8x16=cp866b-8x16
-font8x14=cp866-8x14
-font8x8=cp866-8x8</programlisting>
-
- <note>
- <para><literal>^[</literal> signifie qu'il faut mettre le
- caract&egrave;re <keycap>ESC</keycap> dans
- <filename>/etc/rc.conf</filename>, et non la cha&icirc;ne de
- caract&egrave;res <literal>^[</literal>.</para>
- </note>
-
- <para>Cela correspond au clavier KOI8-R avec la police de
- caract&egrave;res alternative correspondant &agrave; la codification
- KOI8-R pour conserver les caract&egrave;res pseudographiques et
- &agrave; la touche <keycap>Gray Delete</keycap>
- reconfigur&eacute;e pour correspondre &agrave; l'entr&eacute;e pour
- le russe de &man.termcap.5; pour la console FreeBSD.</para>
-
- <para>Le passage de russe &agrave; latin se fera avec
- <keycap>CapsLock</keycap>. L'ancienne fonctionnalit&eacute;e de
- <keycap>CapsLock</keycap> est toujours disponible avec
- <keycombo><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo>.
- La diode <keycap>CapsLock</keycap> indiquera que le mode russe est
- actif, et non le mode majuscules.</para>
- </step>
-
- <step>
- <para>Pour chaque entr&eacute;e <literal>ttyv?</literal> de
- <filename>/etc/ttys</filename>, modifiez le type de terminal de
- <literal>cons25</literal> en <literal>cons25r</literal>, i.e.,
- chaque entr&eacute;e ressemblera &agrave;&nbsp;:</para>
-
- <programlisting>
-ttyv0 "/usr/libexec/getty Pc" cons25r on secure</programlisting>
- </step>
- </procedure>
- </sect2>
-
- <sect2 id="russian-locale">
- <title>Configuration pour
- &ldquo;<foreignphrase>locale</foreignphrase>&rdquo;</title>
-
- <para><anchor id="russian-env">Il y a deux variables d'environnement pour
- la configuration de
- &ldquo;<foreignphrase>locale</foreignphrase>&rdquo;&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><envar>LANG</envar> pour la famille de fonctions POSIX
- &man.setlocale.3;,</para>
- </listitem>
-
- <listitem>
- <para><envar>MM_CHARSET</envar> pour le jeu de caract&egrave;res des
- applications MIME.</para>
- </listitem>
- </itemizedlist>
-
- <para>La meilleure fa&ccedil;on de proc&eacute;der est d'utiliser la
- classe de session utilisateur <literal>russian</literal> de
- &man.passwd.5; dans <filename>/etc/login.conf</filename>. Reportez-vous
- aux pages de manuel de &man.login.conf.5; pour plus de
- pr&eacute;cisions.</para>
-
- <sect3 id="russian-class">
- <title>M&eacute;thode utilisant la classe de session utilisateur</title>
-
- <para>V&eacute;rifiez tout d'abord qu'il y a bien une classe de session
- <literal>russian</literal> dans votre
- <filename>/etc/login.conf</filename>, cette entr&eacute;e ressemble
- probablement &agrave;&nbsp;:</para>
-
- <programlisting>
-russian:Russian Users Accounts:\
- :charset=KOI8-R:\
- :lang=ru_RU.KOI8-R:\
- :tc=default:</programlisting>
-
- <sect4>
- <title>Comment faire avec &man.vipw.8;</title>
-
- <para>Si vous utilisez &man.vipw.8; pour ajouter de nouveaux comptes,
- les entr&eacute;es de <filename>/etc/master.passwd</filename>
- doivent ressembler &agrave;&nbsp;:</para>
-
- <programlisting>
-utilisateur:mot_de_passe:1111:11:russian:0:0:Nom d'utilisateur:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/home/utilisateur:/bin/csh</programlisting>
- </sect4>
-
- <sect4>
- <title>Comment faire avec &man.adduser.8;</title>
-
- <para>Si vous utilisez &man.adduser.8; pour ajouter de nouveaux
- comptes&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Positionnez&nbsp;:</para>
-
- <programlisting>
-defaultclass = russian</programlisting>
-
- <para>dans <filename>/etc/adduser.conf</filename> (vous devez
- dans ce cas indiquer la classe <literal>default</literal> pour
- tous les comptes autres que russes),</para>
- </listitem>
-
- <listitem>
- <para>Une autre fa&ccedil;on de faire est de r&eacute;pondre
- <literal>russian</literal> chaque fois que vous
- voyez l'invite&nbsp;:</para>
-
- <screen><prompt>Enter login class:</prompt> default []:</screen>
- <para>de &man.adduser.8;,</para>
- </listitem>
-
- <listitem>
- <para>Autre variante&nbsp;: utilisez&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>adduser -class russian</userinput></screen>
-
- <para>chaque fois que vous voulez ajouter un compte utilisateur
- russe.</para>
- </listitem>
- </itemizedlist>
- </sect4>
-
- <sect4>
- <title>Comment faire avec &man.pw.8;</title>
-
- <para>Si vous utilisez &man.pw.8; pour ajouter de nouveaux comptes,
- appelez-le comme suit&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>pw useradd nom_d_utilisateur -L russian</userinput></screen>
- </sect4>
- </sect3>
-
- <sect3>
- <title>M&eacute;thode utilisant les fichiers d'initialisation de
- l'interpr&eacute;teur de commandes</title>
-
- <para>Si vous ne voulez pas utiliser <link linkend="russian-class">la
- m&eacute;thode par la classe de session</link> pour une raison ou une
- autre, positionnez simplement ces <link linkend="russian-env">deux
- variables d'environnement</link> dans les fichiers de d&eacute;marrage
- de l'interpr&eacute;teur de commandes suivants&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>/etc/profile</filename>&nbsp;:</para>
-
- <programlisting>
-LANG=ru_RU.KOI8-R; export LANG
-MM_CHARSET=KOI8-R; export MM_CHARSET</programlisting>
- </listitem>
-
- <listitem>
- <para><filename>/etc/csh.login</filename>&nbsp;:</para>
-
- <programlisting>
-setenv LANG ru_RU.KOI8-R
-setenv MM_CHARSET KOI8-R</programlisting>
- </listitem>
- </itemizedlist>
-
- <para>Vous pouvez aussi ajouter ces instructions &agrave;&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>/usr/share/skel/dot.profile</filename>&nbsp;:</para>
-
- <para>(comme pour <filename>/etc/profile</filename>
- ci-dessus);</para>
- </listitem>
-
- <listitem>
- <para><filename>/usr/share/skel/dot.login</filename>&nbsp;:</para>
-
- <para>(comme pour <filename>/etc/csh.login</filename>
- ci-dessus).</para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
-
- <sect2 id="russian-printer">
- <title>Configuration de l'imprimante</title>
-
- <para>Comme la plupart des imprimantes qui ont un jeu de caract&egrave;res
- russes ont un &ldquo;code page&rdquo; mat&eacute;riel CP866, il faut un
- filtre de sortie sp&eacute;cial pour la conversion KOI8-R -&gt; CP866.
- Ce type de filtre s'installe par d&eacute;faut dans
- <filename>/usr/libexec/lpr/ru/koi2alt</filename>. L'entr&eacute;e de
- <filename>/etc/printcap</filename> pour l'imprimante russe devra donc
- ressembler &agrave;&nbsp;:</para>
-
- <programlisting>
-lp|Imprimante ligne russe locale:\
- :sh:of=/usr/libexec/lpr/ru/koi2alt:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting>
-
- <para>Reportez-vous aux pages de manuel de &man.printcap.5; pour plus de
- d&eacute;tails.</para>
- </sect2>
-
- <sect2 id="russian-msdosfs">
- <title>Syst&egrave;me de fichiers MSDOS et noms de fichiers russes</title>
-
- <para>Suivez l'exemple d'entr&eacute;e dans &man.fstab.5; ci-dessous pour
- autoriser les noms de fichiers en russe avec le syst&egrave;me de
- fichiers MSDOS&nbsp;:</para>
-
- <programlisting>
-/dev/sd0s1 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0</programlisting>
-
- <para>Reportez-vous aux pages de manuel de &man.mount.msdos.8; pour avoir
- une description d&eacute;taill&eacute;e des options <option>-W</option>
- et <option>-L</option>.</para>
- </sect2>
-
- <sect2 id="russian-xwindow">
- <title>Configuration de X Window</title>
-
- <para>Instructions pas-&agrave;-pas:</para>
-
- <procedure>
- <step>
- <para>Configurez d'abord
- <link linkend="russian-locale">&ldquo;<foreignphrase>locale</foreignphrase>&rdquo;</link>
- ind&eacute;pendamment de X, comme expliqu&eacute; plus haut.</para>
-
- <note>
- <para><anchor id="russian-note">La configuration KOI8-R russe pour
- &ldquo;<foreignphrase>locale</foreignphrase>&rdquo; peut ne pas
- marcher avec d'anciennes versions de XFree86 (ant&eacute;rieures
- &agrave; la 3.3). La version de XFree86 de
- <filename>/usr/ports/x11/XFree86</filename> est d'hors et
- d&eacute;j&agrave; la plus r&eacute;cente, cela fonctionnera donc,
- si vous avez install&eacute; cette version de XFree86. La version
- de XFree86 fournie avec la derni&egrave;re version de FreeBSD
- devrait aussi marcher (V&eacute;rifiez que le num&eacute;ro de
- version de XFree86 est au moins 3.3).</para>
- </note>
- </step>
-
- <step>
- <para>Allez dans le r&eacute;pertoire
- <filename>/usr/ports/russian/X.language</filename> et
- tapez-y&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>make all install</userinput></screen>
- <para>Cela installe la derni&egrave;re version des polices de
- caract&egrave;res KOI8-R. Il y a d&eacute;j&agrave; des polices
- KOI8-R fournies avec XFree86 3.3, mais les pr&eacute;c&eacute;dentes
- se redimensionnent mieux.</para>
-
- <para>Consultez la section <literal>"Files"</literal> de votre
- <filename>/etc/XF86Config</filename>, les lignes suivantes doivent
- pr&eacute;c&eacute;der toutes autres entr&eacute;es
- <literal>FontPath</literal>&nbsp;:</para>
-
- <programlisting>
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting>
-
- <para>Si vous utilisez un mode vid&eacute;o haute r&eacute;solution,
- intervertissez les lignes 75 dpi et 100 dpi.</para>
- </step>
-
- <step>
- <para>Pour mettre en service le clavier russe, ajoutez la
- ligne&nbsp;:</para>
-
- <programlisting>
-XkbKeymap "xfree86(ru)"
- </programlisting>
-
- <para>&agrave; la section <literal>"Keyboard"</literal> de
- <filename>/etc/XF86Config</filename>, et v&eacute;rifiez que
- <literal>XkbDisable</literal> y est d&eacute;sactiv&eacute;
- (mis en commentaires).</para>
-
- <para>Le passage de russe &agrave; latin se fera avec
- <keycap>CapsLock</keycap>. L'ancienne fonctionnalit&eacute;e de
- CapsLock est toujours disponible avec
- <keycombo><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo>
- (en mode latin uniquement).</para>
-
- <note>
- <para>Le clavier russe XKB peut ne pas fonctionner avec d'anciennes
- versions de XFree86, voyez la <link linkend="russian-note">note
- &agrave; propos de
- &ldquo;<foreignphrase>locale</foreignphrase>&rdquo;</link> pour
- plus d'informations. Le clavier russe XKB peut aussi ne pas
- fonctionner avec des applications non localis&eacute;es, pour
- &ecirc;tre un minimum localis&eacute;e, une application doit
- appeler la fonction
- <literal>XtSetLanguageProc (NULL, NULL, NULL);</literal> assez en
- amont dans le code.</para>
- </note>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1 id="german">
- <title>Allemand (ISO 8859-1)</title>
-
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email> a
- r&eacute;dig&eacute; un guide sur l'utilisation des
- <foreignphrase>umlaut</foreignphrase>s sur une machine FreeBSD. Ce guide
- est &eacute;crit en allemand et disponible sur
- <ulink URL="http://www.de.freebsd.org/de/umlaute/">http://www.de.freebsd.org/de/umlaute/</ulink>.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml
deleted file mode 100644
index 45a5234038..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ /dev/null
@@ -1,973 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.11
--->
-
-<chapter id="linuxemu">
- <title>Emulation Linux</title>
-
- <para><emphasis>Contribution de &a.handy; et &a.rich;</emphasis></para>
- &trans.a.haby;
-
- <sect1>
- <title>Comment installer l'&eacute;mulateur Linux</title>
-
- <para>L'&eacute;mulation de Linux sous FreeBSD a atteint un point o&ugrave;
- il est possible d'ex&eacute;cuter une grande partie des binaires Linux
- et au format a.out et au format ELF. L'&eacute;mulation Linux de la
- branche 2.1-stable peut ex&eacute;cuter les versions Linux de Doom et
- Mathematica; la version de l'&eacute;mulateur sous &rel.current;-release
- a encore plus de possibilit&eacute;s et ex&eacute;cute en plus de ces
- programmes, les versions Linux de Quake, Abuse, IDL, netrek et bien
- d'autres programmes.</para>
-
- <para>Il y a quelques particularit&eacute;s du syst&egrave;me d'exploitation
- Linux qui ne sont pas support&eacute;es sous FreeBSD. Les binaires Linux
- ne fonctionneront pas sous FreeBSD s'ils utilisent le syst&egrave;me de
- fichiers <filename>/proc</filename> de Linux (qui diff&egrave;re du
- syst&egrave;me de fichiers <filename>/proc</filename> optionnel de
- FreeBSD) ou des appels i386 sp&eacute;cifiques, comme l'activation du
- mode virtuel 8086.</para>
-
- <para>Selon la version de FreeBSD que vous utilisez, la mise en oeuvre de
- l'&eacute;mulation Linux se fait de fa&ccedil;on l&eacute;g&egrave;rement
- diff&eacute;rente&nbsp;:</para>
-
- <sect2>
- <title>Installer l'&eacute;mulation Linux sous 2.1-stable</title>
-
- <para>Le noyau <filename>GENERIC</filename> de 2.1-stable n'est pas
- configur&eacute; pour &ecirc;tre compatible Linux, vous devez donc le
- reconfigurer pour cela. Il y a deux fa&ccedil;ons de faire&nbsp;:</para>
-
- <orderedlist>
- <listitem>
- <para>Lier statiquement l'&eacute;mulateur Linux au noyau
- lui-m&ecirc;me,</para>
- </listitem>
- <listitem>
- <para>Configurer le noyau pour qu'il charge dynamiquement le module
- Linux.</para>
- </listitem>
- </orderedlist>
-
- <para>Pour mettre en oeuvre l'&eacute;mulateur, ajoutez la ligne suivante
- &agrave; votre fichier de configuration du noyau (c.f.
- <filename>/sys/i386/conf/LINT</filename>)&nbsp;:</para>
-
- <programlisting>
-options COMPAT_LINUX
- </programlisting>
-
- <para>Si vous voulez utiliser Doom ou d'autres applications qui utilisent
- les m&eacute;moires partag&eacute;es, ajoutez aussi&nbsp;:</para>
-
- <programlisting>
-options SYSVSHM
- </programlisting>
-
- <para>Les appels syst&egrave;me Linux ont besoin de la
- compatibilit&eacute; 4.3BSD. V&eacute;rifiez que vous avez bien la
- ligne&nbsp;:</para>
-
- <programlisting>
-options "COMPAT_43"
- </programlisting>
-
- <para>Si vous pr&eacute;f&eacute;rez lier statiquement l'&eacute;mulateur
- au noyau plut&ocirc;t qu'utiliser le module du noyau &agrave;
- chargement dynamique&nbsp;-&nbsp;<foreignphrase>loadable kernel module
- (LKM)</foreignphrase>, ajoutez aussi&nbsp;:</para>
-
- <programlisting>
-options LINUX
- </programlisting>
-
- <para>Configurez et installez ensuite le nouveau noyau comme d&eacute;crit
- au chapitre <link linkend="kernelconfig">Configurer le noyau de
- FreeBSD</link>.</para>
-
- <para>Si vous avez choisi d'utiliser le LKM, vous devez aussi installer
- le module. Une incompatibilit&eacute; de version entre le noyau et le module
- &agrave; chargement dynamique peut planter le noyau. La fa&ccedil;on la
- plus s&ucirc;re de proc&eacute;der est donc de r&eacute;installer le
- LKM en m&ecirc;me temps que le noyau&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput>
-&prompt.root; <userinput>make all install</userinput></screen>
-
- <para>Une fois que vous avez install&eacute; le noyau et le LKM, vous
- pouvez utiliser <command>linux</command> sous le compte
- super-utilisateur <username>root</username> pour charger le
- LKM&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>linux</userinput>
-Linux emulator installed
-Module loaded as ID 0</screen>
-
- <para>Pour v&eacute;rifier que le LKM est charg&eacute;, utilisez
- <command>modstat</command>&nbsp;:</para>
-
- <screen>&prompt.user; modstat
-Type Id Off Loadaddr Size Info Rev
-Module Name EXEC 0 3 f0baf000 0018 f0bb4000 1 linux_emulator</screen>
-
- <para>Il y a deux fa&ccedil;ons de charger le LKM au d&eacute;marrage.
- Sous FreeBSD 2.2.1-release et 2.1-stable, activez-le dans
- <filename>/etc/sysconfig</filename>&nbsp;:</para>
-
- <programlisting>
-linux=YES
- </programlisting>
-
- <para>en rempla&ccedil;ant <literal>NO</literal> par
- <literal>YES</literal>. Sous FreeBSD 2.1-release et ant&eacute;rieurs,
- cette ligne n'existe pas. Vous devez donc &eacute;diter
- <filename>/etc/rc.local</filename> et y ajouter la ligne&nbsp;:</para>
-
- <programlisting>
-linux
- </programlisting>
- </sect2>
-
- <sect2>
- <title>Installer l'&eacute;mulation Linux sous 2.2.2-release et
- ult&eacute;rieurs</title>
-
- <para>Il n'y a plus besoin de pr&eacute;ciser <literal>options
- LINUX</literal> ou <literal>options COMPAT_LINUX</literal>.
- L'&eacute;mulation Linux est r&eacute;alis&eacute;e par un module du
- noyau &agrave; chargement dynamique&nbsp;-&nbsp;LKM
- (&ldquo;<foreignphrase>Loadable Kernel
- Module</foreignphrase>&rdquo;)&nbsp;-&nbsp;et peut donc &ecirc;tre
- install&eacute;e &agrave; la vol&eacute;e sans avoir &agrave;
- red&eacute;marrer le syst&egrave;me. Vos fichiers de d&eacute;marrage
- devront n&eacute;anmoins comporter les instructions
- suivantes&nbsp;:</para>
-
- <orderedlist>
- <listitem>
- <para>Dans <filename>/etc/rc.conf</filename>, la ligne
- suivante&nbsp;:</para>
-
- <programlisting>
-linux_enable=YES
- </programlisting>
- </listitem>
-
- <listitem>
- <para>Ce qui ensuite active les commandes ci-dessous dans
- <filename>/etc/rc.i386</filename>&nbsp;:</para>
-
- <programlisting>
-# Start the Linux binary emulation if requested.
-if [ "X${linux_enable}" = X"YES" ]; then echo -n '
- linux'; linux &gt; /dev/null 2&gt;&amp;1
-fi
- </programlisting>
- </listitem>
- </orderedlist>
-
- <para>Si vous voulez v&eacute;rifier que l'&eacute;mulation est active,
- utilisez <command>modstat</command>&nbsp;:</para>
-
- <screen>&prompt.user; modstat
-Type Id Off Loadaddr Size Info Rev Module Name
-EXEC 0 4 f09e6000 001c f09ec010 1 linux_mod</screen>
-
- <para>On a cependant signal&eacute; des cas o&ugrave; cela ne marchait pas
- avec certains syst&egrave;mes 2.2-release et ult&eacute;rieurs. Si pour
- une raison ou une autre vous ne pouvez pas charger le LKM Linux, liez
- alors statiquement l'&eacute;mulateur au noyau en ajoutant la
- ligne&nbsp;:</para>
-
- <programlisting>
-options LINUX
- </programlisting>
-
- <para>&agrave; votre fichier de configuration du noyau. Configurez et
- installez ensuite le nouveau noyau comme d&eacute;crit au chapitre
- <link linkend="kernelconfig">Configurer le noyau de
- FreeBSD</link>.</para>
- </sect2>
-
- <sect2>
- <title>Installer les biblioth&egrave;ques Linux</title>
-
- <sect3>
- <title>Installation &agrave; l'aide du &ldquo;logiciel
- port&eacute;&rdquo; <filename>linux_lib</filename></title>
-
- <para>La plupart des applications Linux utilisent des
- biblioth&egrave;ques partag&eacute;es, vous n'avez donc pas tout ce
- qu'il vous faut tant que vous n'avez pas install&eacute; les
- biblioth&egrave;ques partag&eacute;es. Vous pouvez le faire &agrave;
- la main, mais il est beaucoup plus facile d'installer le logiciel
- port&eacute; <filename>linux_lib</filename>&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_lib</userinput>
-&prompt.root; <userinput>make all install</userinput></screen>
-
- <para>et votre &eacute;mulation Linux devrait fonctionner. La
- l&eacute;gende et les archives du courrier &eacute;lectronique
- <!-- smiley -->:-) veulent que l'&eacute;mulation Linux fonctionne
- mieux avec des binaires Linux li&eacute;s avec les
- biblioth&egrave;ques ZMAGIC; Les biblioth&egrave;ques QMAGIC (telles
- celles utilis&eacute;es par la distribution Slackware V2.0) peuvent
- avoir tendance &agrave; donner des maux d'estomac au
- &ldquo;Linuxlateur&rdquo;. Attendez-vous aussi &agrave; ce que
- certains programmes se plaignent de versions mineures incorrectes de
- biblioth&egrave;ques syst&egrave;me. Ce n'est cependant
- g&eacute;n&eacute;ralement pas un probl&egrave;me.</para>
- </sect3>
-
- <sect3>
- <title>Installer les biblioth&egrave;ques &agrave; la main</title>
-
- <para>Si vous n'avez pas install&eacute; la distribution pour les
- &ldquo;logiciels port&eacute;s&rdquo;, vous pouvez &agrave; la place
- installer les biblioth&egrave;ques &agrave; la main. Il vous faudra
- les biblioth&egrave;ques partag&eacute;es Linux dont a besoin le
- programme et l'&eacute;diteur de liens dynamiques. Vous devrez aussi
- cr&eacute;er un r&eacute;pertoire racine
- &ldquo;masquant&rdquo;&nbsp;-&nbsp;<foreignphrase>shadow
- root</foreignphrase>&nbsp;-&nbsp;<filename>/compat/linux</filename>
- pour les biblioth&egrave;ques Linux sur votre syst&egrave;me FreeBSD.
- Les biblioth&egrave;ques partag&eacute;es ouvertes par les programmes
- Linux ex&eacute;cut&eacute;s sous FreeBSD iront d'abord voir dans
- cette arborescence. Ainsi, si un programme Linux charge par exemple,
- <filename>/lib/libc.so</filename>, FreeBSD essayera d'abord d'ouvrir
- <filename>/compat/linux/lib/libc.so</filename>, puis, si cette
- biblioth&egrave;que n'existe pas, <filename>/lib/libc.so</filename>.
- Les biblioth&egrave;ques partag&eacute;es doivent donc &ecirc;tre
- install&eacute;es sous l'arborescence
- <filename>/compat/linux/lib</filename> plut&ocirc;t que sous les
- chemins d'acc&egrave;s mentionn&eacute;s par la commande Linux
- <command>ld.so</command>.</para>
-
- <para>Le fonctionnement de FreeBSD-2.2-release et ult&eacute;rieurs est
- l&eacute;g&egrave;rement diff&eacute;rent en ce qui concerne
- <filename>/compat/linux</filename>&nbsp;: tous les fichiers, et pas
- seulement les biblioth&egrave;ques, sont recherch&eacute;s dans
- l'arborescence &ldquo;<foreignphrase>shadow
- root</foreignphrase>&rdquo; <filename>/compat/linux</filename>.</para>
-
- <para>Habituellement, vous n'aurez &agrave; chercher &agrave; savoir
- de quelles biblioth&egrave;ques partag&eacute;es d&eacute;pendent les
- binaires Linux que les premi&egrave;res fois que vous installerez des
- ex&eacute;cutables Linux sur votre syst&egrave;me FreeBSD.
- Apr&egrave;s quelques temps, vous disposerez d'un jeu suffisant de
- biblioth&egrave;ques partag&eacute;es Linux sur votre syst&egrave;me
- pour pouvoir ex&eacute;cuter les binaires Linux nouvellement
- import&eacute;s sans installation suppl&eacute;mentaire.</para>
- </sect3>
-
- <sect3>
- <title>Comment installer des biblioth&egrave;ques partag&eacute;es
- suppl&eacute;mentaires</title>
-
- <para>Comment faire si vous avez install&eacute; le logiciel
- port&eacute; <filename>linux_lib</filename> et que votre application
- se plaint toujours qu'il lui manque des biblioth&egrave;ques
- partag&eacute;es&nbsp;? Comment savoir de quelles biblioth&egrave;ques
- partag&eacute;es ont besoin les binaires Linux, et o&ugrave; se les
- procurer&nbsp;? Il y a habituellement deux possibilit&eacute;s (si
- vous suivez les instructions ci-dessous&nbsp;, vous devrez &ecirc;tre
- en session sous le compte super-utilisateur <username>root</username>
- pour effectuer les &eacute;tapes n&eacute;cessaires &agrave;
- l'installation).</para>
-
- <para>Si vous avez acc&egrave;s un syst&egrave;me Linux,
- d&eacute;terminez de quelles biblioth&egrave;ques partag&eacute;es
- l'application a besoin et copiez-les sur votre syst&egrave;me
- FreeBSD. Supposons que vous veniez de t&eacute;l&eacute;charger le
- binaire Linux de Doom. Installez-le sur le syst&egrave;me Linux
- auquel vous avez acc&egrave;s, et v&eacute;rifiez de quelles
- biblioth&egrave;ques partag&eacute;es il a besoin avec la commande
- <command>ldd linuxxdoom</command>&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>ldd linuxxdoom</userinput>
-libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
-libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
-libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
-
- <para>Vous devrez r&eacute;cup&eacute;rer tous les fichiers
- mentionn&eacute;s dans la derni&egrave;re colonne et les installer
- sous <filename>/compat/linux</filename>, en utilisant les noms de
- la premi&egrave;re colonne comme liens symboliques qui pointent
- dessus. Ce qui signifie que vous aurez &eacute;ventuellement les
- fichiers suivants sur votre syst&egrave;me FreeBSD&nbsp;:</para>
-
- <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
-/compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
-/compat/linux/usr/X11/lib/libX11.so.3.1.0
-/compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
-/compat/linux/lib/libc.so.4.6.29
-/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
-
- <note>
- <para>Remarquez que si vous avez d&eacute;j&agrave; une
- biblioth&egrave;que partag&eacute;e de m&ecirc;me num&eacute;ro de
- version majeure que celle indiqu&eacute;e par la premi&egrave;re
- colonne du r&eacute;sultat de <command>ldd</command>, il est inutile
- de copier le fichier d&eacute;crit par la derni&egrave;re colonne
- sur votre syst&egrave;me, celui que vous avez d&eacute;j&agrave;
- devrait suffire. Il est cependant recommand&eacute; de recopier
- malgr&eacute; tout la biblioth&egrave;que partag&eacute;e si c'est
- une version plus r&eacute;cente. Vous pouvez supprimer la version
- plus ancienne, du moment que le lien symbolique pointe sur la
- nouvelle. Par exemple, si vous avez les biblioth&egrave;ques
- suivantes sur votre syst&egrave;me&nbsp;:</para>
-
- <screen>/compat/linux/lib/libc.so.4.6.27
-/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
-
- <para>et que vous trouvez un nouveau binaire qui, d'apr&egrave;s le
- r&eacute;sultat de la commande <command>ldd</command> semble avoir
- besoin d'une version plus r&eacute;cente&nbsp;:</para>
-
- <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
-
- <para>Si vous n'avez qu'une ou deux versions de retard sur le dernier
- indice, ne vous souciez pas d'installer la version
- <filename>/lib/libc.so.4.6.29</filename> plus r&eacute;cente,
- parce que le programme devrait fonctionner sans probl&egrave;me
- avec une version l&eacute;g&egrave;rement ant&eacute;rieure. Vous
- pouvez n&eacute;anmoins d&eacute;cider de remplacer
- <filename>libc.so</filename>, ce qui devrait vous donner quelque
- chose comme&nbsp;:</para>
-
- <screen>/compat/linux/lib/libc.so.4.6.29
-/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
- </note>
-
- <note>
- <para>Le m&eacute;canisme de lien symbolique n'est n&eacute;cessaire
- que pour les binaires Linux. L'&eacute;diteur de liens dynamiques de
- FreeBSD se charge lui-m&ecirc;me de trouver les num&eacute;ros de
- versions majeures ad&eacute;quats et vous n'avez pas &agrave; vous
- en pr&eacute;occuper.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Configurer <filename>ld.so</filename>&mdash;pour FreeBSD
- 2.2-release et ult&eacute;rieurs</title>
-
- <para>Cette section ne s'applique qu'&agrave; FreeBSD 2.2-release et
- ult&eacute;rieurs. Ceux qui utilisent 2.1-stable peuvent
- l'ignorer.</para>
-
- <para>Pour finir, si vous utilisez FreeBSD 2.2-release, vous devez
- v&eacute;rifier que vous disposez de l'&eacute;diteur de liens
- dynamiques Linux et de ses fichiers de configuration sur votre
- syst&egrave;me. Vous devez copier ces fichiers du syst&egrave;me
- Linux &agrave; l'endroit appropri&eacute; sur votre syst&egrave;me
- FreeBSD (dans l'arborescence
- <filename>/compat/linux</filename>)&nbsp;:</para>
-
- <screen>/compat/linux/lib/ld.so
-/compat/linux/etc/ld.so.config</screen>
-
- <para>Si vous n'avez pas acc&egrave;s &agrave; un syst&egrave;me Linux,
- vous devrez r&eacute;cup&eacute;rer les fichiers
- suppl&eacute;mentaires de diff&eacute;rents sites ftp. Des
- informations sur o&ugrave; trouver les divers fichiers sont
- donn&eacute;es plus bas. Supposons pour l'instant que vous savez
- o&ugrave; r&eacute;cup&eacute;rer les fichiers.</para>
-
- <para>T&eacute;l&eacute;chargez les fichiers suivants (du m&ecirc;me
- site ftp pour &eacute;viter les incompatibilit&eacute;s de version)
- et installez-les sous <filename>/compat/linux</filename> (i.e.,
- <filename>/foo/bar</filename> est install&eacute; sous
- <filename>/compat/linux/foo/bar</filename>):</para>
-
- <screen>/sbin/ldconfig
-/usr/bin/ldd
-/lib/libc.so.x.y.z
-/lib/ld.so</screen>
-
- <para><command>ldconfig</command> et <command>ldd</command> n'ont pas
- obligatoirement besoin d'&ecirc;tre sous l'arborescence
- <filename>/compat/linux</filename>; vous pouvez aussi les installer
- ailleurs sur votre syst&egrave;me. Veillez cependant &agrave; ce
- qu'il n'y ait pas de conflit avec leurs &eacute;quivalents FreeBSD.
- C'est une bonne id&eacute;e de les mettre dans
- <filename>/usr/local/bin</filename> o&ugrave; sont
- <command>ldconfig-linux</command> et
- <command>ldd-linux</command>.</para>
-
- <para>Cr&eacute;ez le fichier
- <filename>/compat/linux/etc/ld.so.conf</filename>, d&eacute;crivant
- les r&eacute;pertoires o&ugrave; l'&eacute;diteur de liens dynamiques
- Linux devra chercher les biblioth&egrave;ques partag&eacute;es. C'est
- un fichier texte ordinaire, avec un nom de r&eacute;pertoire par
- ligne. <filename>/lib</filename> and <filename>/usr/lib</filename>
- sont standard, vous pourriez ajouter les lignes
- suivantes&nbsp;:</para>
-
- <programlisting>
-/usr/X11/lib
-/usr/local/lib
- </programlisting>
-
- <para>Quand un binaire Linux ouvre une biblioth&egrave;que telle que
- <filename>/lib/libc.so</filename>, l'&eacute;mulateur effectue en
- interne la correspondance avec
- <filename>/compat/linux/lib/libc.so</filename>. Toutes les
- biblioth&egrave;ques Linux doivent &ecirc;tre install&eacute;es sous
- <filename>/compat/linux</filename> (e.g.,
- <filename>/compat/linux/lib/libc.so</filename>,
- <filename>/compat/linux/usr/X11/lib/libX11.so</filename>, etc.)
- pour que l'&eacute;mulateur puisse les trouver.</para>
-
- <para>Ceux qui utilisent FreeBSD 2.2-release doivent ex&eacute;cuter le
- programme <command>ldconfig</command> Linux.</para>
-
- <screen>&prompt.root <userinput>cd /compat/linux/lib</userinput>
-&prompt.root; <userinput>/compat/linux/sbin/ldconfig</userinput></screen>
-
- <para><command>ldconfig</command> est li&eacute; statiquement, il n'a
- donc pas besoin des biblioth&egrave;ques partag&eacute;es pour
- s'ex&eacute;cuter. Il cr&eacute;e le fichier
- <filename>/compat/linux/etc/ld.so.cache</filename> qui contient les
- noms de toutes les biblioth&egrave;ques partag&eacute;es, et doit
- &ecirc;tre r&eacute;ex&eacute;cut&eacute; pour recr&eacute;er ce
- fichier chaque fois que vous installez de nouvelles
- biblioth&egrave;ques partag&eacute;es.</para>
-
- <para>Sous 2.1-stable, n'installez pas
- <filename>/compat/linux/etc/ld.so.cache</filename> et
- n'ex&eacute;cutez pas <command>ldconfig</command>; sous 2.1-stable,
- les appels syst&egrave;me sont impl&eacute;ment&eacute;s
- diff&eacute;remment et <command>ldconfig</command> n'est ni utile ni
- utilis&eacute;.</para>
-
- <para>Tout devrait &ecirc;tre maintenant en place pour les binaires
- Linux qui n'ont besoin que d'une biblioth&egrave;que
- <filename>libc</filename> partag&eacute;e. Vous pouvez le tester en
- ex&eacute;cutant la commande <command>ldd</command> Linux sur
- elle-m&ecirc;me. Supposons que vous l'ayez install&eacute; sous le nom
- <command>ldd-linux</command>, le r&eacute;sultat devrait ressembler
- &agrave; quelque chose comme&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>ldd-linux `which ldd-linux`</userinput>
-libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
-
- <para>Une fois que c'est fait, vous &ecirc;tes pr&ecirc;t &agrave;
- installer de nouveaux binaires Linux. Toutes les fois que vous
- installez un nouveau programme Linux, vous devriez v&eacute;rifier
- s'il a besoin de nouvelles biblioth&egrave;ques partag&eacute;es, et
- si tel est le cas, les installer dans l'arborescence
- <filename>/compat/linux</filename>. Pour cela, vous ex&eacute;cutez la
- version Linux de <command>ldd</command> sur le nouveau programme et
- consultez le r&eacute;sultat. <command>ldd</command> (reportez-vous
- aussi aux pages de manuel de &man.ldd.1;) imprimera la liste des
- biblioth&egrave;ques partag&eacute;es dont d&eacute;pend le programme,
- sous la forme <literal><replaceable>nom principal</replaceable>
- (<replaceable>r&eacute;f&eacute;rence de version</replaceable>) =&gt;
- <replaceable>nom complet</replaceable></literal>.</para>
-
- <para>S'il imprime <literal>not found</literal> au lieu du
- <replaceable>nom complet</replaceable>, cela signifie qu'il vous faut
- une nouvelle biblioth&egrave;que. La biblioth&egrave;que dont vous
- avez besoin est celle indiqu&eacute;e par son
- <literal><replaceable>nom principal</replaceable></literal> sous forme
- <literal>lib<replaceable>XXXX</replaceable>.so.<replaceable>N</replaceable></literal>.
- Il faudra que vous trouviez
- <filename>lib<replaceable>XXXX</replaceable>.so.N.mm</filename> sur un
- site ftp Linux et que vous l'installiez sur votre syst&egrave;me.
- <replaceable>XXXX</replaceable> (nom) et
- <replaceable>N</replaceable> (num&eacute;ro de version majeure)
- doivent correspondre; le(s) num&eacute;ro(s) de version(s) mineure(s)
- sont moins importants, bien qu'il soit conseill&eacute; de prendre la
- version la plus r&eacute;cente.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Installer des binaires Linux ELF</title>
-
- <para>Il y a parfois besoin d'une &eacute;tape suppl&eacute;mentaire pour
- les binaires ELF&nbsp;: &ldquo;le marquage&rdquo;. Si vous essayez
- d'ex&eacute;cuter un binaire ELF non marqu&eacute; vous aurez un
- message d'erreur ressemblant &agrave; ce qui suit&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>./mon-binaire-elf-linux</userinput>
-ELF binary type not known
-Abort</screen>
-
- <para>Pour que le noyau de FreeBSD puisse distinguer entre un binaire ELF
- FreeBSD et un binaire Linux, vous devez employer l'utilitaire
- &man.brandelf.1;.</para>
-
- <screen>&prompt.user; <userinput>brandelf -t Linux mon-binaire-elf-linux</userinput></screen>
-
- <para>Les outils GNU incorporent maintenant automatiquement les marques
- n&eacute;cessaires dans les binaires ELF, vous aurez donc de moins en
- moins besoin de passer par cette &eacute;tape &agrave; l'avenir.</para>
- </sect2>
-
- <sect2>
- <title>Configurer le solveur de noms de domaines</title>
-
- <para>Si le DNS ne fonctionne pas, ou si vous avez les
- messages&nbsp;:</para>
-
- <screen>resolv+: "bind" is an invalid keyword resolv+:
-"hosts" is an invalid keyword</screen>
-
- <para>vous devez renseigner un fichier
- <filename>/compat/linux/etc/host.conf</filename> contenant&nbsp;:</para>
-
- <programlisting>
-order hosts, bind
-multi on</programlisting>
-
- <para>o&ugrave; l'ordre ci-dessus sp&eacute;cifie qu'il faut d'abord
- regarder dans le fichier <filename>/etc/hosts</filename> puis
- interroger le DNS. Si le fichier
- <filename>/compat/linux/etc/host.conf</filename> n'est pas
- install&eacute;, les applications Linux trouvent le fichier
- <filename>/etc/host.conf</filename> de FreeBSD et se plaignent de sa
- syntaxe FreeBSD incompatible. Supprimez <literal>bind</literal>, si
- vous n'avez pas configur&eacute; de serveur de noms avec le fichier
- <filename>/etc/resolv.conf</filename>.</para>
-
- <para>Enfin, ceux qui utilisent 2.1-stable doivent d&eacute;finir une
- variable d'environnement <envar>RESOLV_HOST_CONF</envar> pour que les
- applications sachent comment chercher dans les tables de noms de
- machines. Si vous &ecirc;tes sous FreeBSD 2.2-release ou
- ult&eacute;rieurs, vous pouvez vous en passer. Avec
- l'interpr&eacute;teur de commandes <filename>/bin/csh</filename>,
- utilisez&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>setenv RESOLV_HOST_CONF /compat/linux/etc/host.conf</userinput></screen>
-
- <para>Avec <filename>/bin/sh</filename>, utilisez&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Trouver les fichiers n&eacute;cessaires</title>
-
- <note>
- <para>Les informations qui suivent sont valables &agrave; la date de
- r&eacute;daction de ce document, mais certains d&eacute;tails, tels
- que les noms des sites ftp, des r&eacute;pertoires ou des
- distributions peuvent avoir chang&eacute; au moment o&ugrave; vous le
- lirez.</para>
- </note>
-
- <para>Linux est distribu&eacute; par plusieurs groupes donc chacun
- constitue l'ensemble de programmes qu'il distribue. Chaque distribution
- a son propre nom, &ldquo;Slackware&rdquo; ou &ldquo;Yggdrasil&rdquo;,
- par exemple. Ces distributions sont disponibles sur nombre de sites
- ftp. Les fichiers sont parfois individualis&eacute;s, et vous pouvez
- r&eacute;cup&eacute;rer uniquement les fichiers dont vous avez besoin,
- mais ils sont g&eacute;n&eacute;ralement archiv&eacute;s par
- distributions, compact&eacute;es et compress&eacute;es avec
- <citerefentry><refentrytitle>tar</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> et
- <citerefentry><refentrytitle>gzip</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry>. Les sites ftp principaux
- pour les distributions sont&nbsp;:</para>
-
- <orderedlist>
- <listitem>
- <para>sunsite.unc.edu:/pub/Linux/distributions</para>
- </listitem>
-
- <listitem>
- <para>tsx-11.mit.edu:/pub/linux/distributions</para>
- </listitem>
- </orderedlist>
-
- <para>Quelques sites miroirs europ&eacute;ens&nbsp;:</para>
-
- <orderedlist>
- <listitem>
- <para>ftp.luth.se:/pub/linux/distributions</para>
- </listitem>
-
- <listitem>
- <para>ftp.demon.co.uk:/pub/unix/linux</para>
- </listitem>
-
- <listitem>
- <para>src.doc.ic.ac.uk:/packages/linux/distributions</para>
- </listitem>
- </orderedlist>
-
- <para>Pour simplifier, nous nous concentrerons sur la Slackware. Cette
- distribution est compos&eacute;e d'un certain nombre de
- sous-r&eacute;pertoires, contenant des paquetages s&eacute;par&eacute;s.
- Ils sont normalement contr&ocirc;l&eacute;s par un programme
- d'installation, mais vous pouvez aussi les r&eacute;cup&eacute;rer
- &agrave; la main. Vous devrez d'abord aller voir dans le
- sous-r&eacute;pertoire <filename>contents</filename> de la
- distribution. Vous y trouverez de nombreux petits fichiers texte
- d&eacute;crivant le contenu de chacun des paquetages. La fa&ccedil;on
- la plus rapide de retrouver quelque chose est de r&eacute;cup&eacute;rer
- tous les fichiers de ce sous-r&eacute;pertoire et d'y rechercher avec
- <citerefentry><refentrytitle>grep</refentrytitle>
- <manvolnum>1</manvolnum></citerefentry> le fichier dont vous avez
- besoin. Voici un exemple d'une liste de fichiers dont vous pourriez
- avoir besoin et o&ugrave; vous les trouveriez en cherchant dans les
- fichiers de contenu&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Biblioth&egrave;que</entry>
- <entry>Paquetage</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>ld.so</filename></entry>
- <entry>ldso</entry>
- </row>
-
- <row>
- <entry><filename>ldconfig</filename></entry>
- <entry>ldso</entry>
- </row>
-
- <row>
- <entry><filename>ldd</filename></entry>
- <entry>ldso</entry>
- </row>
-
- <row>
- <entry><filename>libc.so.4</filename></entry>
- <entry>shlibs</entry>
- </row>
-
- <row>
- <entry><filename>libX11.so.6.0</filename></entry>
- <entry>xf_lib</entry>
- </row>
-
- <row>
- <entry><filename>libXt.so.6.0</filename></entry>
- <entry>xf_lib</entry>
- </row>
-
- <row>
- <entry><filename>libX11.so.3</filename></entry>
- <entry>oldlibs</entry>
- </row>
-
- <row>
- <entry><filename>libXt.so.3</filename></entry>
- <entry>oldlibs</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Dans ce cas donc, vous auriez besoin des paquetages
- <filename>ldso</filename>, <filename>shlibs</filename>,
- <filename>xf_lib</filename> et <filename>oldlibs</filename>. Dans
- chacun des fichiers de contenu de ces paquetages, recherchez la ligne
- <literal>PACKAGE LOCATION</literal>, qui vous dira sur quel
- &ldquo;disque&rdquo; le paquetage se trouve; dans notre cas, cela nous
- dira dans quel sous-r&eacute;pertoire il faut regarder. Pour notre
- exemple, nous trouverions&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead
- <row>
- <entry>Paquetage</entry>
- <entry>Localisation</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>ldso</entry>
- <entry>diska2</entry>
- </row>
-
- <row>
- <entry>shlibs</entry>
- <entry>diska2</entry>
- </row>
-
- <row>
- <entry>oldlibs</entry>
- <entry>diskx6</entry>
- </row>
-
- <row>
- <entry>xf_lib</entry>
- <entry>diskx9</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Les localisations appel&eacute;es
- &ldquo;disk<replaceable>XX</replaceable>&rdquo; se rapportent aux
- sous-r&eacute;pertoires
- <filename>slakware/<replaceable>XX</replaceable></filename>
- de la distribution, d'autres peuvent se trouver dans le
- sous-r&eacute;pertoire <filename>contrib</filename>. Dans notre cas,
- nous pouvons maintenant t&eacute;l&eacute;charger les paquetages dont
- nous avons besoin en r&eacute;cup&eacute;rant les fichiers suivants
- (&agrave; partir du r&eacute;pertoire racine de l'arborescence de la
- distribution Slackware)&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>slakware/a2/ldso.tgz</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>slakware/a2/shlibs.tgz</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>slakware/x6/oldlibs/tgz</filename></para>
- </listitem>
-
- <listitem>
- <para><filename>slakware/x9/xf_lib.tgz</filename></para>
- </listitem>
- </itemizedlist>
-
- <para>Extrayez les fichiers de ces archives compress&eacute;es dans le
- r&eacute;pertoire <filename>/compat/linux</filename> (en ommettant ou en
- supprimant ensuite les fichiers dont vous n'avez pas besoin) et vous
- aurez tout ce qu'il vous faut.</para>
-
- <para><emphasis>Consultez aussi&nbsp;:</emphasis>
- <filename>ftp.freebsd.org:pub/FreeBSD/2.0.5-RELEASE/xperimnt/linux-emu/README</filename>
- et <filename>/usr/src/sys/i386/ibcs2/README.iBCS2</filename></para>
- </sect2>
- </sect1>
-
- <sect1 id="mathematica">
- <title>Comment installer Mathematica sous FreeBSD</title>
-
- <para><emphasis>Contribution de &a.rich; et &a.chuck;</emphasis></para>
-
- <para>Ce document explique comment installer la distribution binaire Linux
- de Mathematica 2.2 sous FreeBSD 2.1.</para>
-
- <para>Mathematica supporte en natif Linux mais pas FreeBSD. Une fois donc
- que vous avez configur&eacute; votre syst&egrave;me pour qu'il soit
- compatible Linux, vous avez &agrave; peu pr&egrave;s tout ce qu'il vous
- faut pour utiliser Mathematica.</para>
-
- <para>Pour ceux qui ont d&eacute;j&agrave; la version
- &ldquo;&eacute;tudiant&rdquo de Mathematica pour DOS, la mise &agrave;
- jour pour Linux co&ucirc;tait, quand ce document a &eacute;t&eacute
- r&eacute;dig&eacute;, en Mars 1996, &#36;45.00. Vous pouvez la commander
- directement &agrave; Wolfram au (217) 398-6500 et payer par carte de
- cr&eacute;dit.</para>
-
- <sect2>
- <title>D&eacute;compacter la distribution de Mathematica</title>
-
- <para>Les binaires sont actuellement distribu&eacute;s par Wolfram sur
- CD-ROM. Il y a une douzaine de fichiers d'archive sur le CD-ROM, chacun
- contenant une distribution binaire pour une des architectures
- support&eacute;es. Celle pour Linux s'appelle
- <filename>LINUX.TAR</filename>. Vous pouvez, par exemple, la
- d&eacute;compacter dans
- <filename>/usr/local/Mathematica</filename>&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/local</userinput>
-&prompt.root; <userinput>mkdir Mathematica</userinput>
-&prompt.root; <userinput>cd Mathematica</userinput>
-&prompt.root; <userinput>tar -xvf /cdrom/LINUX.TAR</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Obtenir votre mot de passe pour Mathematica</title>
-
- <para>Avant de pouvoir utiliser Mathematica, vous devrez obtenir de
- Wolfram un mot de passe qui corresponde &agrave
- l'&ldquo;IDentifiant&rdquo; de votre machine&nbsp;:</para>
-
- <para>Une fois que vous avez install&eacute; les biblioth&egrave;ques pour
- la compatibilit&eacute; Linux et d&eacute;compact&eacute; Mathematica,
- vous pouvez conna&icirc;tre l'&ldquo;IDentifiant&rdquo; de votre machine
- en ex&eacute;cutant le programme <command>mathinfo</command> dans le
- r&eacute;pertoire d'installation&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/local/Mathematica/Install</userinput>
-&prompt.root; <userinput>mathinfo</userinput>
-LINUX: 'ioctl' fd=5, typ=0x89(), num=0x27 not implemented
-richc.isdn.bcm.tmc.edu 9845-03452-90255</screen>
-
- <para>Ici, par exemple, l'&ldquo;IDentifiant&rdquo; de la machine
- <hostid>richc</hostid> est <literal>9845-03452-90255</literal>. Ne vous
- souciez pas du message &agrave; propos de l'<literal>ioctl</literal>
- qui n'est pas impl&eacute;ment&eacute;. Cela ne vous emp&egrave;chera
- pas d'utiliser Mathematica, bien que vous aurez ce message toutes les
- fois que vous ex&eacute;cuterez Mathematica.</para>
-
- <para>Quand vous vous enregistrerez aupr&egrave;s de Wolfram, par courrier
- &eacute;lectronique, t&eacute;l&eacute;phone, ou fax, vous leur
- communiquerez l'&ldquo;IDentifiant&rdquo; de la machine et ils vous
- donneront en r&eacute;ponse le mot de passe correspondant qui consiste
- en groupes de chiffres. Vous devrez ajouter les deux, ainsi que le nom
- de la machine et le num&eacute;ro de licence, dans votre fichier
- <filename>mathpass</filename>.</para>
-
- <para>Vous pouvez le faire en utilisant&nbsp;:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/local/Mathematica/Install</userinput>
-&prompt.root; <userinput>math.install</userinput></screen>
-
- <para>Il vous demandera votre num&eacute;ro de licence et le mot de passe
- que Wolfram vous a fourni. Si vous vous trompez ou si pour une raison ou
- une autre <command>math.install</command> &eacute;choue, ce n'est pas un
- probl&egrave;me; vous pouvez simplement &eacute;diter le fichier
- <filename>mathpass</filename>, qui se trouve dans le m&ecirc;me
- r&eacute;pertoire, pour corriger &agrave; la main ces
- informations.</para>
-
- <para>Apr&egrave;s le mot de passe, <command>math.install</command> vous
- demandera si vous voulez utiliser la configuration d'installation par
- d&eacute;faut ou si vous pr&eacute;f&eacute;rez d&eacute;finir la
- v&ocirc;tre. Si vous &ecirc;tes comme nous et n'avez pas confiance dans
- les programmes d'installation, vous voudrez certainement indiquer
- vous-m&ecirc;me les r&eacute;pertoires d'installation. Attention. Bien
- que <command>math.install</command> vous demande les noms des
- r&eacute;pertoires, il ne les cr&eacute;e pas &agrave; votre place, vous
- devriez donc ouvrir une deuxi&egrave;me fen&ecirc;tre pour le faire
- avant de donner leurs noms au programme d'installation. Ou, si vous
- &eacute;chouez, vous pouvez cr&eacute;er les r&eacute;pertoires puis
- relancer le programme <command>math.install</command>. Nous avons choisi
- de cr&eacute;er au pr&eacute;alable et d'indiquer &agrave;
- <command>math.install</command> les r&eacute;pertoires
- suivants&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry><filename>/usr/local/Mathematica/bin</filename></entry>
- <entry>pour les binaires</entry>
- </row>
-
- <row>
- <entry><filename>/usr/local/Mathematica/man/man1</filename></entry>
- <entry>pour les pages de manuel</entry>
- </row>
-
- <row>
- <entry><filename>/usr/local/Mathematica/lib/X11</filename></entry>
- <entry>pour le fichier <filename>XKeysymb</filename></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Vous pouvez aussi lui dire d'utiliser
- <filename>/tmp/math.record</filename> comme fichier d'enregistrement
- syst&egrave;me, dans lequel il conserve les traces des sessions.
- <command>math.install</command> continuera ensuite en
- d&eacute;compactant la distribution et en mettant les fichiers l&agrave;
- o&ugrave; il faut.</para>
-
- <para>La fonction calepin de Mathematica est fournie s&eacute;parement,
- de m&ecirc;me que l'interface X, et vous devez les installer &agrave;
- part. Pour que l'interface X soit correctement install&eacute;e, allez
- dans le r&eacute;pertoire
- <filename>/usr/local/Mathematica/FrontEnd</filename> et ex&eacute;cutez
- la proc&eacute;dure <command>xfe.install</command>. Vous devrez lui
- dire o&ugrave; mettre les fichiers, mais vous n'aurez pas de
- r&eacute;pertoire &agrave; cr&eacute;er, parce qu'elle utilise les
- m&ecirc;mes que ceux qui ont &eacute;t&eacute; cr&eacute;&eacute;s
- pour <command>math.install</command>. Finalement, il doit y avoir
- une nouvelle proc&eacute;dure appel&eacute;e
- <filename>mathematica</filename> dans le r&eacute;pertoire
- <filename>/usr/local/Mathematica/bin</filename>.</para>
-
- <para>Pour finir, vous devrez modifier chacune des proc&eacute;dures que
- Mathematica a install&eacute; pour y ajouter la ligne
- suivante&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>XKEYSYMDB=/usr/local/Mathematica/lib/X11/XKeysymDB; export XKEYSYMDB</userinput></screen>
-
- <para>Cela pour dire &agrave; Mathematica o&ugrave; trouver sa propre
- version du fichier de correspondance clavier
- <filename>XKeysymDB</filename>, sinon vous aurez des messages d'erreur
- dus &agrave; des correspondances de touches manquantes.</para>
-
- <para>Sous 2.1-stable, vous devrez aussi ajouter la ligne
- suivante&nbsp;:</para>
-
- <screen>&prompt.user; <userinput>RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF</userinput></screen>
-
- <para>pour dire &agrave; Mathematica d'utiliser la version Linux de
- <filename>host.conf</filename>. Ce fichier a une syntaxe
- diff&eacute;rente de celui de FreeBSD, vous aurez donc un message
- d'erreur &agrave; propos de <filename>/etc/host.conf</filename> si vous
- oubliez cette modification.</para>
-
- <para>Vous voudrez peut-&ecirc;tre aussi modifier votre fichier
- <filename>/etc/manpath.config</filename> pour lire le nouveau
- r&eacute;pertoire pour les pages de manuel, et aurez peut-&ecirc;tre
- besoin d'&eacute;diter votre fichier <filename>~/.cshrc</filename>
- pour ajouter <filename>/usr/local/Mathematica/bin</filename> &agrave;
- vos chemins d'acc&egrave;s par d&eacute;faut.</para>
-
- <para>C'est &agrave; peu pr&egrave;s tout. Vous devriez maintenant pouvoir
- taper <command>mathematica</command> et obtenir un calepin Mathematica
- vraiment &ldquo;nickel&rdquo;. Mathematica a inclu des interfaces
- utilisateurs Motif, mais elles sont li&eacute;es statiquement, vous
- n'avez donc pas besoin des biblioth&egrave;ques Motif. Bonne chance
- pour votre propre installation&nbsp;!</para>
- </sect2>
-
- <sect2>
- <title>Bogues</title>
-
- <para>Il est connu que l'interface calepin se bloque parfois &agrave; la
- lecture de certains fichiers calepin avec des messages d'erreur
- du type&nbsp;:</para>
-
- <screen><errorname>File .../Untitled-1.mb appears to be broken for OMPR.257.0</errorname></screen>
-
- <para>Nous n'en avons pas trouv&eacute; la raison, mais cela ne touche que
- l'interface calepin X, et non le moteur Mathematica lui-m&ecirc;me.
- L'interface en ligne de commande invoqu&eacute;e par
- <command>math</command> n'est pas affect&eacute;e par ce bogue.</para>
- </sect2>
-
- <sect2>
- <title>Remerciements</title>
-
- <para>Remerciements bien m&eacute;rit&eacute;s &agrave; &a.sos; et
- &a.peter; qui ont fait de l'&eacute;mulation Linux ce qu'elle est
- aujourd'hui, et &agrave; Michael Smith qui les a pouss&eacute; au
- point qu'elle ex&eacute;cute les binaires Linux mieux que Linux
- lui-m&ecirc;me&nbsp;! <!-- smiley -->:-)</para>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml
deleted file mode 100644
index c6e37f3993..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml
+++ /dev/null
@@ -1,653 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="mail">
- <title>Courrier &eacute;lectronique</title>
-
- <para><emphasis>Contribution de &a.wlloyd;.</emphasis></para>
- &trans.a.haby;
-
- <para>De nombreux ouvrages d'<link
- linkend="bibliography">Administration Syst&egrave;me</link> traitent de la
- configuration du courrier &eacute;lectronique. Si vous envisagez de faire
- plus que configurer un seul serveur de courrier sur votre r&eacute;seau,
- il vous faut de la documentation de qualit&eacute; industrielle.</para>
-
- <para>Certaines parties de la configuration du courrier &eacute;lectronique
- sont confi&eacute;es au Syst&egrave;me de Noms de Domaines (DNS). Si vous g&eacute;rez
- votre propre serveur DNS, consultez <filename>/etc/namedb</filename> et
- <command>man -k named</command> pour plus d'informations.</para>
-
- <sect1>
- <title>Notions de base</title>
-
- <para>Voici les principaux programmes impliqu&eacute;s dans un &eacute;change de
- courrier &eacute;lectronique. Le &ldquo;serveur de courrier&rdquo; est
- responsable de l'exp&eacute;dition et de la r&eacute;ception du courrier pour
- votre machine, voire votre r&eacute;seau.</para>
-
- <sect2>
- <title>Le programme utilisateur</title>
-
- <para>C'est un programme comme <application >elm</application>,
- <application>pine</application>, <application>mail</application>,
- ou un outil plus sophistiqu&eacute; tel un navigateur WWW. Ce programme
- transmet simplement toutes les transactions concernant le courrier
- &eacute;lectronique au &ldquo;serveur de courrier&rdquo; local, soit en
- invoquant <command>sendmail</command>, soit via TCP.</para>
-
- </sect2>
-
- <sect2>
- <title>Le &ldquo;d&eacute;mon&rdquo; serveur de courrier</title>
-
- <para>C'est habituellement <command>sendmail</command> ou
- <command>smail</command>, s'ex&eacute;cutant en t&acirc;che de fond. Vous
- le d&eacute;sactivez ou modifiez les options de sa ligne de commande
- dans le fichier <filename>/etc/rc.conf</filename> (ou, pour les
- versions ant&eacute;rieures &agrave; FreeBSD 2.2.2,
- <filename>/etc/sysconfig</filename>). Il vaut mieux le laisser
- actif, &agrave; moins que vous n'ayez une bonne raison de ne pas
- le faire tourner, par exemple, si vous configurez un
- <link linkend="firewalls">coupe-feu</link>.</para>
-
- <para>Vous devez savoir que <command>sendmail</command> est un maillon
- potentiellement faible sur un site s&eacute;curis&eacute;. Certaines versions de
- <command>sendmail</command> ont des trous de s&eacute;curit&eacute; connus.</para>
-
- <para><command>sendmail</command> accomplit deux t&acirc;ches. Il se charge
- d'envoyer et de recevoir le courrier.</para>
-
- <para>Lorsque <command>sendmail</command> doit exp&eacute;dier du courrier
- depuis votre site, il consulte le DNS pour savoir quelle machine
- re&ccedil;oit le courrier pour la destination voulue.</para>
-
- <para>S'il agit comme exp&eacute;diteur, <command>sendmail</command> prendra
- le message dans la file d'attente locale et le d&eacute;livrera via
- l'Internet &agrave; un autre <command>sendmail</command> sur la machine
- qui doit le recevoir.</para>
-
- </sect2>
-
- <sect2>
- <title>DNS&nbsp;-&nbsp;Syst&egrave;me de Noms de Domaines</title>
-
- <para>Le syst&egrave;me de noms de domaines (DNS),
- et son &ldquo;d&eacute;mon&rdquo;
- <command>named</command>, g&egrave;rent la base de donn&eacute;es qui fait
- correspondre nom de machine et adresse IP, et nom de machine
- et serveur de courrier. L'adresse IP est d&eacute;finie par un
- enregistrement A. L'enregistrement MX d&eacute;finit le serveur qui
- recevra votre courrier. S'il n'y a pas d'enregistrement MX
- associ&eacute; &agrave; votre machine, cette derni&egrave;re recevra directement le
- courrier.</para>
-
- <para>A moins que vous n'ayez votre propre serveur DNS, vous ne pouvez
- pas modifier vous-m&ecirc;me les informations du DNS. Si vous passez par
- un fournisseur d'acc&egrave;s Internet, voyez cela avec lui.</para>
-
- </sect2>
-
- <sect2>
- <title>Serveur POP</title>
-
- <para>Ce programme r&eacute;cup&egrave;re le courrier dans votre bo&icirc;te aux lettres
- et le transmet &agrave; votre navigateur. Si vous voulez faire tourner
- un serveur POP sur votre machine, vous devrez faire deux
- choses:</para>
-
- <procedure>
-
- <step>
- <para>R&eacute;cup&eacute;rez le logiciel POP du <ulink
- url="http://www.freebsd.org/ports/mail.html">catalogue des
- logiciels port&eacute;s</ulink>, que vous trouverez dans le
- r&eacute;pertoire <filename>/usr/ports</filename>, ou du catalogue
- des logiciels pr&eacute;compil&eacute;s. Ce manuel comprend une section qui
- d&eacute;crit exhaustivement l'installation des
- <link linkend="ports">logiciels port&eacute;s</link>.</para>
- </step>
-
- <step>
- <para>Modifiez <filename>/etc/inetd.conf</filename>
- pour lancer le serveur POP.</para>
- </step>
-
- </procedure>
-
- <para>Il y aura des instructions avec le serveur POP.
- Lisez-les.</para>
-
- </sect2>
- </sect1>
-
- <sect1>
- <title>Configuration</title>
-
- <sect2>
- <title>Les bases</title>
-
- <para>Avec votre syst&egrave;me FreeBSD &ldquo;pr&ecirc;t-&agrave;-l'emploi&rdquo;[TM],
- vous devriez pouvoir envoyer du courrier &eacute;lectronique &agrave; l'ext&eacute;rieur,
- d&egrave;s que vous aurez configur&eacute; <filename>/etc/resolv.conf</filename>
- ou si vous faites tourner un serveur DNS. Si vous voulez que votre
- courrier soit d&eacute;livr&eacute; &agrave; une machine particuli&egrave;re, il y a deux
- m&eacute;thodes:</para>
-
- <itemizedlist>
- <listitem>
- <para>Faire tourner un serveur DNS (<command>man -k named</command>)
- et avoir votre propre domaine, i.e.:
- <hostid role="domainname">petitemine.com</hostid>.</para>
- </listitem>
-
- <listitem>
- <para>Faire en sorte que le courrier soit envoy&eacute; &agrave; l'adresse (nom de
- machine) DNS de votre machine, i.e.:
- <hostid role="fqdn">refectoire6.maison.ecole.edu</hostid>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Quelle que soit la m&eacute;thode choisie, pour que le courrier soit
- directement d&eacute;livr&eacute; &agrave; votre machine, elle doit &ecirc;tre r&eacute;f&eacute;renc&eacute;e sur
- l'Internet. Vous devez avoir une adresse IP permanente. Donc pas de
- PPP dynamique. Si vous &ecirc;tes derri&egrave;re un coupe-feu, il faut qu'il
- vous passe le trafic SMTP (<foreignphrase>Simple Mail Transfer
- Protocol</foreignphrase>&nbsp;-&nbsp;protocole &eacute;l&eacute;mentaire de
- transport de courrier &eacute;lectronique). D'apr&egrave;s
- <filename>/etc/services</filename>:</para>
-
- <programlisting
->smtp 25/tcp mail #Simple Mail Transfer</programlisting>
-
- <para>Si vous voulez recevoir le courrier sur la machine elle-m&ecirc;me,
- vous devez vous assurez que l'entr&eacute;e MX du DNS pointe sur cette
- machine, ou qu'il n'y a pas d'entr&eacute;e MX correspondant &agrave; son nom
- dans le DNS.</para>
-
- <para>Essayez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>hostname</userinput>
-newbsdbox.freebsd.org
-&prompt.root; <userinput>host newbsdbox.freebsd.org</userinput>
-newbsdbox.freebsd.org has address 204.216.27.xx</screen>
- </informalexample>
-
- <para>Si c'est la seule r&eacute;ponse que vous obtenez, le courrier adress&eacute;
- &agrave; <email>root@newbsdbox.freebsd.org</email>
- arrivera sans probl&egrave;me.</para>
-
- <para>Si au lieu de cela, vous obtenez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>host newbsdbox.freebsd.org</userinput>
-newbsdbox.FreeBSD.org has address 204.216.27.xx
-newbsdbox.FreeBSD.org mail is handled (pri=10) by freefall.FreeBSD.org</screen>
- </informalexample>
-
- <para>Tout le courrier adress&eacute; directement &agrave; votre machine arrivera
- sur <hostid>freefall</hostid>, adress&eacute; au m&ecirc;me utilisateur.</para>
-
- <para>Cette information est configur&eacute;e par votre serveur de noms de
- domaines. C'est la machine d&eacute;finie comme serveur de noms primaire
- dans <filename>/etc/resolv.conf</filename>.</para>
-
- <para>L'enregistrement du DNS qui contient l'information de routage
- du courrier est l'entr&eacute;e MX (<foreignphrase>Mail
- eXchange</foreignphrase>). S'il n'y a pas d'entr&eacute;e MX, le courrier
- est envoy&eacute; directement &agrave; la machine en utilisant l'entr&eacute;e
- Addresse.</para>
-
- <para>Voici ce que fut &agrave; l'occasion l'entr&eacute;e MX pour
- <hostid role="fqdn">freefall.freebsd.org:</hostid>.</para>
-
- <programlisting>
-freefall MX 30 mail.crl.net
-freefall MX 40 agora.rdrop.com
-freefall HINFO Pentium FreeBSD
-freefall MX 10 freefall.FreeBSD.org
-freefall MX 20 who.cdrom.com
-freefall A 204.216.27.xx
-freefall CNAME www.FreeBSD.org</programlisting>
-
- <para><hostid>freefall</hostid> a plusieurs entr&eacute;es MX. Celle dont le
- num&eacute;ro est le plus faible re&ccedil;oit en d&eacute;finitive le courrier. Les
- autres le mettent temporairement dans leur file d'attente, si
- <hostid>freefall</hostid> est occup&eacute; ou hors-service.</para>
-
- <para>Les sites MX de secours doivent avoir une connexion s&eacute;par&eacute;e &agrave;
- l'Internet, pour &ecirc;tre vraiment utiles. Un fournisseur d'acc&egrave;s ou
- un site amical peuvent vous fournir ce service.</para>
-
- <para><command>dig</command>, <command>nslookup</command>,
- et <command>host</command> sont ici vos alli&eacute;s.</para>
-
- </sect2>
-
- <sect2 id="mail-domain">
- <title>Courrier pour votre domaine (r&eacute;seau).</title>
-
- <para>Pour configurer un serveur de courrier pour votre r&eacute;seau, vous
- devez &eacute;viter que le courrier arrive &agrave; toutes vos stations de
- travail. En d'autres termes, vous devez d&eacute;tourner tout le courrier
- pour <hostid role="domainname">*.petitemine.com</hostid> vers une
- seule machine, votre &ldquo;serveur de courrier&rdquo;.</para>
-
- <para>Dans la grande majorit&eacute; des cas, les utilisateurs du r&eacute;seau
- r&eacute;cup&egrave;reront leur courrier sur leurs stations de travail avec POP
- ou telnet.</para>
-
- <para>Il faut qu'il y ait un compte utilisateur avec le
- <emphasis>m&ecirc;me nom</emphasis> sur les deux machines. Utilisez
- <command>adduser</command> pour ce faire. Si vous d&eacute;finissez
- <literal>/nonexistent</literal> comme interpr&eacute;teur de commandes
- (sur le serveur de courrier), les utilisateurs ne pourront pas y
- ouvrir de session.</para>
-
- <para>Votre serveur de courrier sera d&eacute;fini comme
- <foreignphrase>Mail eXchange</foreignphrase> pour chaque station de
- travail. Cela doit &ecirc;tre d&eacute;fini dans le DNS (i.e.: BIND, named).
- Reportez-vous s'il vous pla&icirc;t &agrave; un ouvrage d'administration r&eacute;seau
- pour avoir des informations d&eacute;taill&eacute;es.</para>
-
- <para>Vous devez essentiellement ajouter les lignes suivantes &agrave; la
- configuration de votre serveur DNS:</para>
-
- <programlisting>
-pc24.petitemine.com A <replaceable>xxx.xxx.xxx.xxx</replaceable> ; Adresse IP de la station de travail
- MX 10 smtp.petitemine.com ; Serveur de courrier</programlisting>
-
- <para>Vous ne pouvez le faire vous-m&ecirc;me que si vous g&eacute;rez un serveur
- de noms. Si vous ne voulez pas faire tourner un serveur de noms,
- trouvez quelqu'un, votre fournisseur d'acc&egrave;s Internet par exemple,
- pour le faire &agrave; votre place.</para>
-
- <para>Le courrier adress&eacute; &agrave; une station de travail sera envoy&eacute; &agrave;
- votre machine <foreignphrase>Mail eXchange</foreignphrase>. Quelle
- que soit la machine sur laquelle pointe l'enregistrement A, le
- courrier arrivera sur la machine MX.</para>
-
- <para>On peut utiliser cela pour impl&eacute;menter un h&eacute;bergement virtuel du
- courrier &eacute;lectronique.</para>
-
- <para>Exemple:</para>
-
- <para>J'ai un client qui a comme domaine foo.bar, et je veux que tout
- le courrier pour foo.bar arrive sur ma machine smtp.smalliap.com.
- Il faut configurer une entr&eacute;e comme suit pour le serveur DNS:</para>
-
- <programlisting>
-foo.bar MX 10 smtp.smalliap.com ; mon serveur de courrier</programlisting>
-
- <para>Il n'y a pas besoin d'enregistrement A si l'on ne veut que
- le courrier pour le domaine. i.e.: ne vous attendez pas &agrave; ce que
- <command>ping foo.bar</command> fonctionne, &agrave; moins qu'il
- n'y ait aussi un enregistrement d'Addresse pour
- <filename>foo.bar</filename>.</para>
-
- <para>Sur la machine qui re&ccedil;oit le courrier pour le distribuer dans
- une bo&icirc;te aux lettres, il faut dire &agrave; <command>sendmail</command>
- pour quelle machine il accepte du courrier.</para>
-
- <para>Ajoutez <literal>pc24.petitemine.com</literal> &agrave;
- <filename>/etc/sendmail.cw</filename> (si vous utilisez
- <literal>FEATURE(use_cw_file)</literal>), ou ajoutez une ligne
- <literal>Cw myhost.smalliap.com</literal> &agrave;
- <filename>/etc/sendmail.cf</filename>.</para>
-
- <para>Si vous envisagez d'utiliser s&eacute;rieusement
- <command>sendmail</command>, vous devriez installer les
- sources de <command>sendmail</command>. Ils sont accompagn&eacute;s de
- beaucoup de documentation. Vous trouverez de l'information sur
- la fa&ccedil;on d'obtenir le source de <command>sendmail</command>
- &agrave; la section <link linkend="sendmailuucp">Configurer
- UUCP</link>.</para>
-
- </sect2>
-
- <sect2 id="sendmailuucp">
- <title>Configurer UUCP.</title>
-
- <para><emphasis>Emprunt&eacute; &agrave; la FAQ.</emphasis></para>
-
- <para>La configuration de <command>sendmail</command> livr&eacute;e avec
- FreeBSD convient &agrave; des sites directement connect&eacute;s &agrave; l'Internet.
- Les sites qui veulent &eacute;changer du courrier par UUCP doivent
- installer un autre fichier de configuration de
- <command>sendmail</command>.</para>
-
- <para>Bidouiller <filename>/etc/sendmail.cf</filename> &agrave; la main est
- g&eacute;n&eacute;ralement consid&eacute;r&eacute; comme une occupation de puriste. La version
- 8 de <command>sendmail</command> s'accompagne d'une nouvelle mani&egrave;re
- de g&eacute;n&eacute;rer les fichiers de configuration avec le pr&eacute;-processeur
- <command>m4</command>, gr&acirc;ce auquel le travail de configuration
- &agrave; la main se fait &agrave; un niveau d'abstraction plus &eacute;lev&eacute;.
- Utilisez les fichiers de configuration du r&eacute;pertoire
- <filename>/usr/src/usr.sbin/sendmail/cf</filename>.</para>
-
- <para>Si vous n'avez pas install&eacute; la totalit&eacute; du source sur votre
- syst&egrave;me, les fichiers et outils de <command>sendmail</command> ont
- &eacute;t&eacute; scind&eacute;s en plusieurs fichiers d'archive, pour plus de
- commodit&eacute;s. En supposant que vous ayez mont&eacute; le CD-ROM,
- tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>tar -xvzf /cdrom/dists/src/ssmailcf.aa</userinput></screen>
- </informalexample>
-
- <para>Pas de panique, il n'y a que quelques centaines de kilo-octets.
- Le fichier <filename>README</filename> du r&eacute;pertoire
- <filename>cf</filename> est une bonne introduction de base &agrave; la
- configuration avec <command>m4</command>.</para>
-
- <para>Pour le transfert par UUCP, le mieux est d'utiliser la
- fonctionnalit&eacute; <emphasis>mailertable</emphasis>. Elle construit une
- base de donn&eacute;es que <command>sendmail</command> peut utiliser pour
- prendre ses d&eacute;cisions de routage.</para>
-
- <para>Vous devez d'abord cr&eacute;er un fichier <filename>.mc</filename>.
- Le r&eacute;pertoire <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename>
- contient ces fichiers. Jetez-y un coup d'oeil, il y a d&eacute;j&agrave;
- quelques exemples. Supposons que vous ayez appel&eacute; votre fichier
- <filename>foo.mc</filename>, tout ce que vous avez &agrave; faire pour le
- convertir en un fichier <filename>sendmail.cf</filename>
- valide est:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
-&prompt.root; <userinput>make foo.cf</userinput></screen>
- </informalexample>
-
- <para>Si vous n'avez pas de r&eacute;pertoire
- <filename>/usr/obj</filename>, alors:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cp foo.cf /etc/sendmail.cf</userinput></screen>
- </informalexample>
-
- <para>Sinon:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cp /usr/obj/`pwd`/foo.cf /etc/sendmail.cf</userinput></screen>
- </informalexample>
-
- <para>Un fichier <filename>.mc</filename> typique ressemblerait
- &agrave;:</para>
-
- <programlisting>
-include(`../m4/cf.m4')
-VERSIONID(`<replaceable>Votre num&eacute;ro de version</replaceable>')
-OSTYPE(bsd4.4)
-
-FEATURE(nodns)
-FEATURE(nocanonify)
-FEATURE(mailertable)
-
-define(`UUCP_RELAY', <replaceable>votre.relais.uucp</replaceable>)
-define(`UUCP_MAX_SIZE', 200000)
-
-MAILER(local)
-MAILER(smtp)
-MAILER(uucp)
-
-Cw <replaceable>votre.alias.nom.machine</replaceable>
-Cw <replaceable>votrenomdenoeuduucp.UUCP</replaceable></programlisting>
-
- <para>Les fonctionnalit&eacute;s <literal>nodns</literal> et
- <literal>nocanonify</literal> &eacute;vitent le recours au DNS
- pour d&eacute;livrer le courrier. La clause <literal>UUCP_RELAY</literal>
- est n&eacute;cessaire pour d'obscures raisons, ne me demandez pas
- lesquelles. Mettez-y simplement un nom de machine Internet qui
- soit capable de comprendre les adresses du pseudo-domaine .UUCP;
- vous y mettrez vraisemblablement le nom du relais de courrier
- &eacute;lectronique de votre fournisseur d'acc&egrave;s.</para>
-
- <para>Un fois que cela est fait, il vous faut le fichier appel&eacute;
- <filename>/etc/mailertable</filename>. De nouveau, un exemple
- typique de cette vari&eacute;t&eacute;:</para>
-
- <programlisting>
-#
-# makemap hash /etc/mailertable.db &lt; /etc/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:sax</programlisting>
-
- <para>Comme vous pouvez le constater, c'est un exemple d'apr&egrave;s nature.
- Les trois premi&egrave;res lignes prennent en charge les cas particuliers
- o&ugrave; le courrier adress&eacute; au domaine ne doit pas &ecirc;tre exp&eacute;di&eacute; sur la
- route par d&eacute;faut, mais &agrave; un voisin UUCP pour
- &ldquo;raccourcir&rdquo; le trajet. La ligne suivante g&egrave;re le
- courrier sur le domaine local Ethernet, qui peut &ecirc;tre d&eacute;livr&eacute;
- par SMTP. Pour finir, les voisins UUCP sont r&eacute;f&eacute;renc&eacute;s avec la
- notation utilisant le pseudo-domaine .UUCP pour permettre
- la surcharge des r&egrave;gles par d&eacute;faut
- <literal>uucp-voisin!destinataire</literal>. Il y a toujours un
- simple point (&ldquo;.&rdquo;) sur la derni&egrave;re ligne,
- qui correspond &agrave; tout le reste,
- et permet l'exp&eacute;dition UUCP &agrave; un voisin UUCP qui vous sert de
- passerelle universelle pour le courrier au reste du monde. Tous les
- noms de noeuds apr&egrave;s le mot-cl&eacute; <literal>uucp-dom:</literal>
- doivent &ecirc;tre des voisins UUCP valables, ce que vous pouvez contr&ocirc;ler
- avec <command>uuname</command>.</para>
-
- <para>Pour vous rappeler que ce fichier doit &ecirc;tre converti en base
- de donn&eacute;es DBM avant d'&ecirc;tre utilisable, c'est une bonne id&eacute;e de
- mettre la ligne de commande qui le fait en t&ecirc;te du fichier
- <filename>mailertable</filename>. Vous devez l'ex&eacute;cuter chaque fois
- que vous modifiez <filename>mailertable</filename>.</para>
-
- <para>Dernier point: si vous n'&ecirc;tes pas s&ucirc;r qu'une route donn&eacute;e
- fonctionne, rappelez-vous l'option <option>-bt</option> de
- <command>sendmail</command>. Elle lance <command>sendmail</command>
- en mode &ldquo;test d'addresse&rdquo;; entrez simplement
- <literal>0</literal>, puis l'adresse dont vous voulez tester la
- route, la derni&egrave;re ligne vous donnera l'agent de transport de
- courrier utilis&eacute; en interne, la machine destinatrice que vous
- avez donn&eacute;e en param&egrave;tre, et l'adresse (&eacute;ventuellement traduite).
- Vous quittez ce mode en tapant Ctrl-D.</para>
-
- <informalexample>
- <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>0 foo@interface-business.de</userinput>
-rewrite: ruleset 0 input: foo @ interface-business . de
-&hellip;
-rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo &lt; @ interface-business . de</screen>
- </informalexample>
-
- </sect2>
- </sect1>
-
- <sect1 id="mailfaq">
- <title>FAQ</title>
-
- <para><emphasis>Emprunts &agrave; la FAQ.</emphasis></para>
-
-
- <sect2>
- <title>Pourquoi faut-il que j'utilise les FQDN (&ldquo;Fully Qualified
- Domain Name&rdquo;&nbsp;-&nbsp;noms Internet
- complets) pour les machines de mon site?</title>
-
- <para>Vous vous rendrez probablement compte que la machine est en
- fait dans un domaine diff&eacute;rent; par exemple, si vous &ecirc;tes dans
- le domaine <hostid role="fqdn">foo.bar.edu</hostid> et que vous
- voulez atteindre la machine <hostid>mumble</hostid> du domaine
- <hostid role="domainname">bar.edu</hostid>, vous devrez utiliser
- son nom de domaine complet, <hostid
- role="fqdn">mumble.bar.edu</hostid>, au lieu de
- <hostid>mumble</hostid>.</para>
-
- <para>C'&eacute;tait traditionnellement admis par les solveurs BIND BSD.
- N&eacute;anmoins, la version de <application>BIND</application> qui est
- maintenant livr&eacute;e avec FreeBSD ne sait pas compl&eacute;ter les noms
- de domaines abr&eacute;g&eacute;s autrement qu'avec le nom de votre domaine.
- Donc le nom non qualifi&eacute; <hostid>mumble</hostid> doit correspondre
- &agrave; <hostid role="fqdn">mumble.foo.bar.edu</hostid>, sans quoi il
- sera recherch&eacute; dans le domaine racine.</para>
-
- <para>Cela diff&egrave;re du comportement ant&eacute;rieur, o&ugrave; la recherche se
- prolongeait &agrave; <hostid role="domainname">mumble.bar.edu</hostid>,
- puis <hostid role="domainname">mumble.edu</hostid>. Consultez la
- RFC 1535 pour savoir pourquoi cela &eacute;tait consid&eacute;r&eacute; comme une mani&egrave;re
- incorrecte de faire, voire un trou de s&eacute;curit&eacute;.</para>
-
- <para>Comme palliatif, vous pouvez mettre la ligne:
-
- <programlisting>
-search foo.bar.edu bar.edu</programlisting>
-
- &agrave; la place de:
-
- <programlisting>
-domain foo.bar.edu</programlisting>
-
- dans votre fichier <filename>/etc/resolv.conf</filename>. Assurez-vous
- cependant que la recherche ne franchit pas la
- &ldquo;limite entre l'administration locale et publique&rdquo;
- selon l'expression de la RFC 1535.</para>
-
- </sect2>
-
- <sect2>
- <title>Sendmail affiche le message d'erreur
- <errorname>mail loops back to myself</errorname></title>
-
- <para>La r&eacute;ponse donn&eacute;e dans la FAQ de Sendmail est la suivante:</para>
-
- <programlisting>
-* J'ai des messages "Local configuration error", du style:
-
-553 relay.domain.net config error: mail loops back to myself
-554 &lt;user@domain.net&gt;... Local configuration error
-
-Comment puis-je r&eacute;soudre ce probl&egrave;me?
-
-Vous avez demand&eacute; que le courrier pour un domaine (e.g., domain.net) soit
-transmis &agrave; une machine donn&eacute;e (dans ce cas pr&eacute;cis, relay.domain.net) avec
-un enregistrement MX, mais la machine relais ne se conna&icirc;t pas elle-m&ecirc;me
-comme domain.net. Ajoutez domain.net &agrave; /etc/sendmail.cw (si vous utilisez
-FEATURE(use_cw_file)) ou ajoutez "Cw domain.net" &agrave; /etc/sendmail.cf.</programlisting>
-
- <para>La FAQ Sendmail se trouve dans
- <filename>/usr/src/usr.sbin/sendmail</filename>. Je vous en
- recommande la lecture si vous voulez &ldquo;bidouiller&rdquo;
- votre configuration du courrier &eacute;lectronique.</para>
-
- </sect2>
-
- <sect2>
- <title>Comment puis-je g&egrave;rer le courrier &eacute;lectronique avec une
- connexion t&eacute;l&eacute;phonique PPP?</title>
-
- <para>Vous voulez connecter une machine FreeBSD du r&eacute;seau local
- &agrave; l'Internet. Cette machine servira de passerelle de courrier
- pour le r&eacute;seau local. La connexion PPP n'est pas d&eacute;di&eacute;e.</para>
-
- <para>Il y a au moins deux fa&ccedil;ons de faire.</para>
-
- <para>L'une d'elle est d'utiliser UUCP. Voici l'autre.</para>
-
- <para>Le point cl&eacute; est d'obtenir d'un site Internet qu'il vous
- fournisse les services MX secondaires pour votre domaine. Par
- exemple:</para>
-
- <programlisting>
-bigco.com. MX 10 bigco.com.
- MX 20 smalliap.com.</programlisting>
-
- <para>Il doit y avoir une seule machine comme destinataire final
- (ajoutez <literal>Cw bigco.com</literal> au fichier
- <filename>/etc/sendmail.cf</filename> de bigco.com).</para>
-
- <para>Quand les <command>sendmail</command> exp&eacute;diteurs essayeront
- de vous d&eacute;livrer du courrier, ils essayerons de vous contacter via
- votre liaison modem. Ce qui &eacute;chouera tr&egrave;s probablement sur
- d&eacute;passement de d&eacute;lai puisque vous n'&ecirc;tes pas en ligne.
- <command>sendmail</command> enverra automatiquement le courrier au
- site MX secondaire, i.e.: votre fournisseur d'acc&egrave;s. Celui-ci
- essayera toutes les 15 minutes (<literal>sendmail_flags =
- "-bd -q15m"</literal> dans <filename>/etc/rc.conf</filename>)
- de se connecter &agrave; votre machine pour exp&eacute;dier le courrier au site
- MX primaire.</para>
-
- <para>Vous pouvez utiliser quelque chose comme ceci comme
- proc&eacute;dure de connexion:</para>
-
- <programlisting>
-#!/bin/sh
-# Mettez-moi dans /usr/local/bin/pppbigco
-( sleep 60 ; /usr/sbin/sendmail -q ) &amp;
-/usr/sbin/ppp -direct pppbigco</programlisting>
-
- <para>Si vous d&eacute;finissez une proc&eacute;dure de connexion particuli&egrave;re
- pour un utilisateur, vous pouvez utiliser <command>sendmail
- -qRbigco.com</command> au lieu de la proc&eacute;dure ci-dessus. Cela
- forcera le traitement imm&eacute;diat de tout le courrier dans la file
- d'attente pour bigco.com.</para>
-
- <para>On peut encore affiner comme suit la configuration:</para>
-
- <para>Message emprunt&eacute; &agrave; la liste de diffusion freebsd-isp.</para>
-
- <programlisting>
-&gt; Nous fournissons un MX secondaire &agrave; un client. Le client se connecte
-&gt; &agrave; notre service automatiquement plusieurs fois par jour pour acheminer
-&gt; le courrier sur son MX primaire (nous n'appelons pas son site lorsque
-&gt; du courrier lui arrive). Notre sendmail envoie le courrier de la file
-&gt; d'attente toutes les demi-heures. Pour l'instant, il doit rester une
-&gt; demi-heure en ligne pour &ecirc;tre s&ucirc;r que tout le courrier soit arriv&eacute; au
-&gt; MX primaire.
-&gt;
-&gt; Y-a-t-il une commande qui permette de dire &agrave; sendmail d'envoyer
-&gt; sur-le-champ tout le courrier? L'utilisateur n'a &eacute;videmment pas
-&gt; les droits super-utilisateur sur la machine.
-
-Dans la section 'indicateurs de confidentialit&eacute;' de sendmail.cf,
-il y a la d&eacute;finition :
- Opgoaway,restrictqrun
-
-Supprimer restrictqrun permet &agrave; d'autres utilisateurs que le super-utilisateur
-de lancer le traitement de la file d'attente. Vous pouvez aussi red&eacute;finir les
-MXs. Nous sommes le premier MX pour les utilisateurs de ce type et nous avons
-d&eacute;fini:
-
-# Si nous sommes le meilleur MX pour une machine, essayer directement au lieu
-# d'&eacute;mettre des messages d'erreur de configuration locale.
-OwTrue
-
-De cette fa&ccedil;on, un site distant vous enverra le courrier, sans essayer de
-se connecter chez votre client. Vous le lui transmettez ensuite. Cela ne
-marche qu'avec "hosts", vous n'avez donc pas besoin que votre client appelle
-son serveur de courrier "client.com" ou "machine.client.com" dans le DNS.
-Mettez seulement un enregistrement A pour "client.com" dans le DNS.</programlisting>
-
- </sect2>
- </sect1>
- </chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/mailing-lists.ent b/fr_FR.ISO8859-1/books/handbook/mailing-lists.ent
deleted file mode 100644
index 40523ef292..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/mailing-lists.ent
+++ /dev/null
@@ -1,113 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $Id: mailing-lists.ent,v 1.2 2000-05-26 05:47:48 gioria Exp $
- Original revision: n.nn
--->
-<!--
- fichier cr&eacute;e a partir du fichier lists.sgml
- de la version linuxdoc du docbook
--->
-
-<!ENTITY a.announce "liste de diffusion pour les annonces relatives &agrave; FreeBSD
- <email>freebsd-announce@FreeBSD.ORG</email>">
-
-<!ENTITY a.advocacy "FreeBSD advocacy mailing list
- <email>freebsd-advocacy@FreeBSD.ORG</email>">
-
-<!ENTITY a.cvsall "liste de diffusion des messages de soumission CVS de FreeBSD
- <email>cvs-all@FreeBSD.ORG</email>">
-
-<!ENTITY a.committers "liste de diffusion pour les <foreignphrase>committers</foreignphrase> de FreeBSD
- <email>cvs-committers@FreeBSD.ORG</email>">
-
-<!ENTITY a.database "FreeBSD based Databases
- <email>freebsd-database@FreeBSD.ORG</email>">
-
-<!ENTITY a.fr-doc "liste de diffusion du groupe de traduction en langue fran&ccedil;aise de la documentation de FreeBSD
- <email>freebsd-france@freebsd.francenet.fr</email>">
-
-<!ENTITY a.doc "liste de diffusion du groupe de documentation de FreeBSD
- <email>freebsd-doc@FreeBSD.ORG</email>">
-
-<!ENTITY a.bugs "FreeBSD problem reports mailing list
- <email>freebsd-bugs@FreeBSD.ORG</email>">
-
-<!ENTITY a.chat "FreeBSD chat mailing list
- <email>freebsd-chat@FreeBSD.ORG</email>">
-
-<!ENTITY a.current "liste de diffusion &agrave; propos de FreeBSD-current
- <email>freebsd-current@FreeBSD.ORG</email>">
-
-<!ENTITY a.emulation "FreeBSD-emulation mailing list
- <email>freebsd-emulation@FreeBSD.ORG</email>">
-
-<!ENTITY a.fs "FreeBSD filesystem project mailing list
- <email>freebsd-fs@FreeBSD.ORG</email>">
-
-<!ENTITY a.hackers "liste de diffusion pour les discussions techniques sur FreeBSD
- <email>freebsd-hackers@FreeBSD.ORG</email>">
-
-<!ENTITY a.hardware "FreeBSD hardware and equipment mailing list
- <email>freebsd-hardware@FreeBSD.ORG</email>">
-
-<!ENTITY a.isdn "FreeBSD ISDN mailing list
- <email>freebsd-isdn@FreeBSD.ORG</email>">
-
-<!ENTITY a.isp "FreeBSD Internet service provider's mailing list
- <email>freebsd-isp@FreeBSD.ORG</email>">
-
-<!ENTITY a.java "FreeBSD Java Language mailing list
- <email>freebsd-java@FreeBSD.ORG</email>">
-
-<!ENTITY a.jobs "FreeBSD related employment mailing list
- <email>freebsd-jobs@FreeBSD.ORG</email>">
-
-<!ENTITY a.mobile "FreeBSD laptop computer mailing list
- <email>freebsd-mobile@FreeBSD.ORG</email>">
-
-<!ENTITY a.mozilla "FreeBSD port of the Mozilla browser mailing list
- <email>freebsd-mozilla@FreeBSD.ORG</email>">
-
-<!ENTITY a.multimedia "FreeBSD multimedia mailing list
- <email>freebsd-multimedia@FreeBSD.ORG</email>">
-
-<!ENTITY a.net "FreeBSD networking mailing list
- <email>freebsd-net@FreeBSD.ORG</email>">
-
-<!ENTITY a.newbies "FreeBSD new users mailing list
- <email>freebsd-newbies@FreeBSD.ORG</email>">
-
-<!ENTITY a.ports "liste de diffusion &agrave; propos du catalogue des logiciels port&eacute;s de FreeBSD
- <email>freebsd-ports@FreeBSD.ORG</email>">
-
-<!ENTITY a.questions "liste de diffusion pour les questions d'ordre g&eacute;n&eacute;ral &agrave; propos de FreeBSD
- <email>freebsd-questions@FreeBSD.ORG</email>">
-
-<!ENTITY a.scsi "FreeBSD SCSI subsystem mailing list
- <email>freebsd-scsi@FreeBSD.ORG</email>">
-
-<!ENTITY a.security "FreeBSD security mailing list
- <email>freebsd-security@FreeBSD.ORG</email>">
-
-<!ENTITY a.security-notifications "FreeBSD security notifications mailing list
- <email>freebsd-security-notifications@FreeBSD.ORG</email>">
-
-<!ENTITY a.small "liste de diffusion pour les syst&egrave;mes FreeBSD embarqu&eacute;s
- <email>freebsd-small@FreeBSD.ORG</email>">
-
-<!ENTITY a.smp "FreeBSD symmetric multiprocessing mailing list
- <email>freebsd-smp@FreeBSD.ORG</email>">
-
-<!ENTITY a.stable "liste de diffusion &agrave; propos de FreeBSD-stable
- <email>freebsd-stable@FreeBSD.ORG</email>">
-
-<!ENTITY a.tokenring "FreeBSD tokenring mailing list
- <email>freebsd-tokenring@FreeBSD.ORG</email>">
-
-<!ENTITY a.majordomo
- "<email>majordomo@FreeBSD.ORG</email>">
-
-<!ENTITY a.core "Equipe de base de FreeBSD
- <email>freebsd-core@FreeBSD.ORG</email>">
diff --git a/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml
deleted file mode 100644
index 69568d4228..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ /dev/null
@@ -1,1420 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.12
--->
-
-<chapter id="mirrors">
- <title>Se procurer FreeBSD</title>
-
- <sect1>
- <title>Editeurs de CD-ROMs</title>
-
- <para>FreeBSD est disponible sur CD-ROMs chez Walnut Creek CDROM&nbsp;:
-
- <address>
- <otheraddr>Walnut Creek CDROM</otheraddr>
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>
- <state>CA</state>, <postcode>94520</postcode>
- <country>USA</country>
- T&eacute;l&eacute;phone&nbsp;: <phone>+1 925 674-0783</phone>
- Fax&nbsp;: <fax>+1 925 674-0821</fax>
- Email&nbsp;: <email>info@cdrom.com</email>
- WWW&nbsp;: <otheraddr>http://www.cdrom.com/</otheraddr>
- </address></para>
- </sect1>
-
- <sect1 id="mirrors-ftp">
- <title>Sites FTP</title>
-
- <para>Les sources officiels de FreeBSD sont disponibles via FTP anonyme
- &agrave; l'adresse suivante&nbsp;:
-
- <blockquote>
- <para><ulink
- URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.FreeBSD.ORG/pub/FreeBSD</ulink>.</para>
- </blockquote></para>
-
- <para>La <ulink
- url="http://www.itworks.com.au/~gavin/FBSDsites.php3">base de
- donn&eacute;es des sites miroir FreeBSD</ulink> est plus &agrave; jour que
- la liste de ce manuel de r&eacute;f&eacute;rence, parce qu'elle tire ses
- informations du DNS plut&ocirc;t que de donner une liste
- fig&eacute;e.</para>
-
- <para>FreeBSD est aussi disponible via FTP anonyme sur les sites miroir
- ci-dessous. Si vous faites le choix de vous procurer FreeBSD via FTP
- anonyme, faites s'il vous pla&icirc;t en sorte d'utiliser un site proche
- de vous.</para>
-
- <para>
- <link linkend="mirrors-za">Afrique du Sud</link>,
- <link linkend="mirrors-de">Allemagne</link>,
- <link linkend="mirrors-ar">Argentine</link>,
- <link linkend="mirrors-au">Australie</link>,
- <link linkend="mirrors-br">Br&eacute;sil</link>,
- <link linkend="mirrors-ca">Canada</link>,
- <link linkend="mirrors-kr">Cor&eacute;e</link>,
- <link linkend="mirrors-dk">Danemark</link>,
- <link linkend="mirrors-es">Espagne</link>,
- <link linkend="mirrors-ee">Estonie</link>,
- <link linkend="mirrors-us">Etats-Unis</link>,
- <link linkend="mirrors-fi">Finlande</link>,
- <link linkend="mirrors-fr">France</link>,
- <link linkend="mirrors-hk">Hong Kong</link>,
- <link linkend="mirrors-ie">Irelande</link>,
- <link linkend="mirrors-il">Isra&euml;l</link>,
- <link linkend="mirrors-jp">Japon</link>,
- <link linkend="mirrors-nl">Pays-Bas</link>,
- <link linkend="mirrors-pl">Pologne</link>,
- <link linkend="mirrors-pt">Portugal</link>,
- <link linkend="mirrors-sk">R&eacute;publique Slovaque</link>,
- <link linkend="mirrors-cz">R&eacute;publique Tch&egrave;que</link>,
- <link linkend="mirrors-uk">Royaume-Uni</link>,
- <link linkend="mirrors-ru">Russie</link>,
- <link linkend="mirrors-si">Slov&eacute;nie</link>,
- <link linkend="mirrors-se">Su&egrave;de</link>,
- <link linkend="mirrors-tw">Ta&iuml;wan</link>,
- <link linkend="mirrors-th">Tha&iuml;lande</link>,
- <link linkend="mirrors-ua">Ukraine</link>.</para>
-
- <variablelist>
- <varlistentry>
- <term><anchor id="mirrors-za">Afrique du Sud</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@za.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.za.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.za.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.za.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.za.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.za.FreeBSD.ORG/FreeBSD">ftp://ftp3.za.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-de">Allemagne</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@de.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.de.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.de.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.de.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp4.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.de.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp5.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.de.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp6.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.de.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp7.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp7.de.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ar">Argentine</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@ar.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.ar.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ar.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-au">Australie</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@au.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.au.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.au.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.au.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp4.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.au.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-br">Br&eacute;sil</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@br.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp4.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp5.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp6.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp7.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp7.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ca">Canada</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@ca.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.ca.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ca.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-kr">Cor&eacute;e</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@kr.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp3.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp4.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp5.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="ftp://ftp6.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-dk">Danemark</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@dk.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.dk.freeBSD.ORG/pub/FreeBSD">ftp://ftp.dk.freeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-es">Espagne</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@es.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="ftp://ftp.es.freebsd.ORG/pub/FreeBSD">ftp://ftp.es.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ee">Estonie</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@ee.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.ee.freebsd.ORG/pub/FreeBSD">ftp://ftp.ee.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-us">Etats-Unis</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp4.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp5.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp6.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-fi">Finlande</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@fi.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.fi.freebsd.ORG/pub/FreeBSD">ftp://ftp.fi.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-fr">France</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@fr.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.fr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.fr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp2.fr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.fr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp3.fr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.fr.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-hk">Hong Kong</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.hk.super.net/pub/FreeBSD">ftp://ftp.hk.super.net/pub/FreeBSD</ulink> Contact: <email>ftp-admin@HK.Super.NET</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ie">Irelande</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@ie.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.ie.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ie.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-il">Isra&euml;l</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@il.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.il.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.il.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.il.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.il.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-jp">Japon</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@jp.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp4.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp5.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp6.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-nl">Pays-Bas</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@nl.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp.nl.freebsd.ORG/pub/FreeBSD">ftp://ftp.nl.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-pl">Pologne</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@pl.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.pl.freebsd.ORG/pub/FreeBSD">ftp://ftp.pl.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-pt">Portugal</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@pt.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.pt.freebsd.org/pub/FreeBSD">ftp://ftp.pt.freebsd.org/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.pt.freebsd.org/pub/FreeBSD">ftp://ftp2.pt.freebsd.org/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-sk">R&eacute;publique Slovaque</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@sk.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="ftp://ftp.sk.freebsd.ORG/pub/FreeBSD">ftp://ftp.sk.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-cz">R&eacute;publique Tch&egrave;que</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://sunsite.mff.cuni.cz/OS/FreeBSD">ftp://sunsite.mff.cuni.cz/OS/FreeBSD</ulink> Contact: <email>jj@sunsite.mff.cuni.cz</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-uk">Royaume-Uni</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@uk.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp4.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ru">Russie</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@ru.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.ru.freebsd.org/pub/FreeBSD">ftp://ftp.ru.freebsd.org/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.ru.freebsd.org/pub/FreeBSD">ftp://ftp2.ru.freebsd.org/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.ru.freebsd.org/pub/FreeBSD">ftp://ftp3.ru.freebsd.org/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="ftp://ftp4.ru.freebsd.org/pub/FreeBSD">ftp://ftp4.ru.freebsd.org/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><anchor id="mirrors-si">Slov&eacute;nie</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@si.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.si.freebsd.ORG/pub/FreeBSD">ftp://ftp.si.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-se">Su&egrave;de</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@se.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.se.freebsd.ORG/pub/FreeBSD">ftp://ftp.se.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.se.freebsd.ORG/pub/FreeBSD">ftp://ftp2.se.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.se.freebsd.ORG/pub/FreeBSD">ftp://ftp3.se.freebsd.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-tw">Ta&iuml;wan</term>
-
- <listitem>
- <para>En cas de probl&egrave;me, contactez le
- &ldquo;<foreignphrase>hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@tw.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.tw.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.tw.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.tw.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.tw.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp3.tw.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.tw.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-th">Tha&iuml;lande</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.nectec.or.th/pub/FreeBSD">ftp://ftp.nectec.or.th/pub/FreeBSD</ulink> Contact: <email>ftpadmin@ftp.nectec.or.th</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><anchor id="mirrors-ua">Ukraine</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.ua.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ua.FreeBSD.ORG/pub/FreeBSD</ulink> Contact: <email>freebsd-mnt@lucky.net</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Les derni&egrave;res versions du code FreeBSD (2.0C et
- ult&eacute;rieurs) soumis &agrave; des restrictions &agrave; l'exportation
- (&ldquo;eBones&rdquo; et &ldquo;secure&rdquo;) sont disponibles sur les
- sites suivants. Si vous &ecirc;tes &agrave; l'ext&eacute;rieur des
- Etats-Unis et du Canada, procurez-vous s'il vous pla&icirc;t
- &ldquo;secure&rdquo; (DES) et &ldquo;eBones&rdquo; d'un des sites de
- distribution &eacute;trangers suivants&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>Afrique du Sud</term>
-
- <listitem>
- <para>&ldquo;<foreignphrase>Hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@internat.FreeBSD.ORG</email> pour ce
- domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.internat.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.internat.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ftp2.internat.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.internat.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Br&eacute;sil</term>
-
- <listitem>
- <para>&ldquo;<foreignphrase>Hostmaster</foreignphrase>&rdquo;
- <email>hostmaster@br.FreeBSD.ORG</email> pour ce domaine.</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Finlande</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt">ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</ulink> Contact: <email>count@nic.funet.fi</email>.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="mirrors-ctm">
- <title>Sites CTM</title>
-
- <para><link linkend="ctm">CTM</link>/FreeBSD est disponible via FTP anonyme
- sur les sites miroir suivants. Si vous faites le choix de vous procurer
- CTM via FTP anonyme, utilisez s'il vous pla&icirc;t un site proche de
- vous.</para>
-
- <para>En cas de probl&egrave;me, contactez &a.phk;.</para>
-
- <variablelist>
- <varlistentry>
- <term>Afrique du Sud, serveur de secours pour les anciens deltas</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.internat.freebsd.org/pub/FreeBSD/CTM">ftp://ftp.internat.freebsd.org/pub/FreeBSD/CTM</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Allemagne, Trier</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/CTM">ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/CTM</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Californie, Bay Area, source officiel</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ftp.freebsd.org/pub/FreeBSD/development/CTM">ftp://ftp.freebsd.org/pub/FreeBSD/development/CTM</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Taiwan/R.O.C, Chiayi</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><ulink
- URL="ftp://ctm.tw.freebsd.org/pub/FreeBSD/CTM">ftp://ctm.tw.freebsd.org/pub/FreeBSD/CTM</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ctm2.tw.freebsd.org/pub/FreeBSD/CTM">ftp://ctm2.tw.freebsd.org/pub/FreeBSD/CTM</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink
- URL="ftp://ctm3.tw.freebsd.org/pub/freebsd/CTM">ftp://ctm3.tw.freebsd.org/pub/freebsd/CTM</ulink></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Si vous n'avez pas trouv&eacute; de miroir proche de vous, ou si le
- miroir est incomplet, essayez une
- <ulink URL="http://ftpsearch.ntnu.no/"> recherche FTP</ulink> sur
- <ulink URL="http://ftpsearch.ntnu.no/ftpsearch/">http://ftpsearch.ntnu.no/ftpsearch</ulink>.
- Ce site est un excellent serveur &ldquo;archie&rdquo; libre &agrave;
- Trondheim, en Norv&egrave;ge.</para>
- </sect1>
-
- <sect1 id="mirrors-cvsup">
- <title>Sites CVSup</title>
-
- <para>Des serveurs <link linkend="cvsup">CVSup</link> FreeBSD sont
- disponibles sur les sites suivants&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>Afrique du Sud</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.za.FreeBSD.ORG (responsable
- <email>markm@FreeBSD.ORG</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.za.FreeBSD.ORG (responsable
- <email>markm@FreeBSD.ORG</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Allemagne</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.de.FreeBSD.ORG (responsable
- <email>wosch@freebsd.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.de.FreeBSD.ORG (responsable
- <email>petzi@freebsd.org</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.de.FreeBSD.ORG (responsable
- <email>ag@leo.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Argentine</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para>cvsup.ar.FreeBSD.ORG (responsable
- <email>msagre@cactus.fi.uba.ar</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Australie</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.au.FreeBSD.ORG (responsable
- <email>dawes@physics.usyd.edu.au</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Br&eacute;sil</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.br.FreeBSD.ORG (responsable
- <email>cvsup@cvsup.br.freebsd.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Canada</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.ca.FreeBSD.ORG (responsable
- <email>dm@glbalserve.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Danemark</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.dk.FreeBSD.ORG (responsable
- <email>jesper@skriver.dk</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Espagne</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.es.freebsd.org (responsable
- <email>jesusr@freebsd.org</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Estonie</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.ee.FreeBSD.ORG (responsable
- <email>taavi@uninet.ee</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Etats-Unis</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup1.FreeBSD.ORG (responsable
- <email>skynyrd@opus.cts.cwu.edu</email>), Washington
- state</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.FreeBSD.ORG (responsable
- <email>jdp@FreeBSD.ORG</email>), California</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.FreeBSD.ORG (responsable
- <email>wollman@FreeBSD.ORG</email>), Massachusetts</para>
- </listitem>
-
- <listitem>
- <para>cvsup5.FreeBSD.ORG (responsable
- <email>cvsup@adsu.bellsouth.com</email>), Georgia</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Finlande</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.fi.FreeBSD.ORG (responsable
- <email>count@key.sms.fi</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Icelande</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.is.FreeBSD.ORG (responsable
- <email>adam@veda.is</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Japon</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para>cvsup.jp.FreeBSD.ORG (responsable
- <email>simokawa@sat.t.u-tokyo.ac.jp</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.jp.FreeBSD.ORG (responsable
- <email>max@FreeBSD.ORG</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup3.jp.FreeBSD.ORG (responsable
- <email>shige@cin.nihon-u.ac.jp</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup4.jp.FreeBSD.ORG (responsable
- <email>cvsup-admin@ftp.media.kyoto-u.ac.jp</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup5.jp.FreeBSD.ORG (responsable
- <email>cvsup@imasy.or.jp</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Norv&egrave;ge</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.no.FreeBSD.ORG (responsable
- <email>Tor.Egge@idt.ntnu.no</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Pays-Bas</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para>cvsup.nl.FreeBSD.ORG (responsable
- <email>xaa@xaa.iae.nl</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Pologne</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.pl.FreeBSD.ORG (responsable
- <email>Mariusz@kam.pl</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>R&eacute;publique Slovaque</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.sk.FreeBSD.ORG (responsable
- <email>tps@tps.sk</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.sk.FreeBSD.ORG (responsable
- <email>tps@tps.sk</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Royaume-Uni</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.uk.FreeBSD.ORG (responsable
- <email>joe@pavilion.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Russie</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.ru.FreeBSD.ORG (responsable
- <email>mishania@demos.su</email>)</para>
- </listitem>
-
- <listitem>
- <para>cvsup2.ru.FreeBSD.ORG (responsable
- <email>dv@dv.ru</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Su&egrave;de</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.se.FreeBSD.ORG (responsable
- <email>pantzer@ludd.luth.se</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ta&iuml;wan</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.tw.FreeBSD.ORG (responsable
- <email>jdli@freebsd.csie.nctu.edu.tw</email>)</para>
- </listitem>
-
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ukraine</term>
-
- <listitem>
- <itemizedlist>
-
- <listitem>
- <para>cvsup2.ua.FreeBSD.ORG (responsable
- <email>freebsd-mnt@lucky.net</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Le code pour FreeBSD soumis &agrave; des restrictions &agrave;
- l'exportation (&ldquo;eBones&rdquo; et &ldquo;secure&rdquo;) est
- disponible via <application>CVSup</application> sur l'archive
- internationale suivante. Utilisez s'il vous pla&icirc;t ce site pour
- obtenir ce code, si vous &ecirc;tes &agrave; l'ext&eacute;rieur des
- Etats-Unis et du Canada.</para>
-
- <variablelist>
- <varlistentry>
- <term>Afrique du Sud</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>cvsup.internat.FreeBSD.ORG (responsable
- <email>markm@FreeBSD.ORG</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Le site <application>CVSup</application> suivant est
- sp&eacute;cialement con&ccedil;u pour les utilisateurs de
- <link linkend="ctm">CTM</link>. A l'inverse des autres miroirs CVSup, il
- est mis &agrave; jour via <application>CTM</application>. Ce qui signifie
- que si vous r&eacute;cup&eacute;rez avec <application>CVSup</application>
- <literal>cvs-all</literal> avec <literal>release=cvs</literal> de ce site, vous obtenez une version
- des archives (y compris l'in&eacute;vitable fichier
- <filename>.ctm_status</filename>) pr&ecirc;te &agrave; &ecirc;tre mise
- &agrave; jour avec les deltas <application>CTM</application>
- <literal>cvs-cur</literal>. Cela permet aux utilisateurs qui maintiennent
- &agrave; jour toute l'arborescence <literal>cvs-all</literal> de passer de
- <application>CVSup</application> &agrave; <application>CTM</application>
- sans avoir &agrave; r&eacute;initialiser leur archive avec un nouveau
- delta <application>CTM</application> de base.</para>
-
- <note>
- <para>Cette fonctionnalit&eacute; particuli&egrave;re ne s'applique
- qu'&agrave; la distribution <literal>cvs-all</literal> avec
- <command>cvs</command> comme &eacute;tiquette de version.
- R&eacute;cup&eacute;rer tout autre distribution et/ou version CVSup vous
- procurera la distribution en question, mais elle ne pourra pas
- &ecirc;tre mise &agrave; jour avec
- <application>CTM</application>.</para>
- </note>
-
- <note>
- <para>Comme la version actuelle de <application>CTM</application> ne
- conserve pas les dates des fichiers, les dates sur ce site miroir ne
- sont pas les m&ecirc;mes que sur les autres sites. Il n'est pas
- recommand&eacute; de passer de ce site &agrave; d'autres. Cela
- fonctionnera, mais ce n'est pas tr&egrave;s efficace.</para>
- </note>
-
- <variablelist>
- <varlistentry>
- <term>Allemagne</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para>ctm.FreeBSD.ORG (responsable
- <email>blank@fox.uni-trier.de</email>)</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="mirrors-afs">
- <title>Sites AFS</title>
-
- <para>Il y a des serveurs AFS pour FreeBSD sur les sites
- suivants&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>Su&egrave;de</term>
-
- <listitem>
- <para>Le chemin d'acc&egrave;s aux fichiers est &nbsp;:
- <filename>/afs/stacken.kth.se/ftp/pub/FreeBSD</filename></para>
-
- <itemizedlist>
- <listitem>
- <para><hostid role="fqdn">stacken.kth.se</hostid>, Stacken
- Computer Club, KTH, Su&egrave;de</para>
- </listitem>
-
- <listitem>
- <para><hostid role="ipaddr">130.237.234.3</hostid>, <hostid
- role="fqdn">milko.stacken.kth.se</hostid></para>
- </listitem>
-
- <listitem>
- <para><hostid role="ipaddr">130.237.234.43</hostid>, <hostid
- role="fqdn">hot.stacken.kth.se</hostid></para>
- </listitem>
-
- <listitem>
- <para><hostid role="ipaddr">130.237.234.44</hostid>, <hostid
- role="fqdn">dog.stacken.kth.se</hostid></para>
- </listitem>
- </itemizedlist>
-
- <para>Responsable&nbsp;: <email>ftp@stacken.kth.se</email></para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
deleted file mode 100644
index 17f0f41fc8..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ /dev/null
@@ -1,627 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.11
--->
-
-<chapter id="pgpkeys">
- <title>PGP keys</title>
-
- <para>Pour le cas o&ugrave; vous auriez besoin de v&eacute;rifier une
- signature ou d'envoyer un courrier &eacute;lectronique crypt&eacute;
- &agrave; l'un des officiers ou membres de l'&eacute;quipe de base, voici
- &agrave; cet effet un certain nombre de cl&eacute;s.</para>
-
- <sect1>
- <title>Officiers</title>
-
- <sect2>
- <title>Officier de s&eacute;rit&eacute; FreeBSD
- <email>security-officer@freebsd.org</email></title>
-
- <programlisting>
-FreeBSD Security Officer &lt;security-officer@freebsd.org&gt;
-Fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3i
-
-mQCNAzF7MY4AAAEEAK7qBgPuBejER5HQbQlsOldk3ZVWXlRj54raz3IbuAUrDrQL
-h3g57T9QY++f3Mot2LAf5lDJbsMfWrtwPrPwCCFRYQd6XH778a+l4ju5axyjrt/L
-Ciw9RrOC+WaPv3lIdLuqYge2QRC1LvKACIPNbIcgbnLeRGLovFUuHi5z0oilAAUR
-tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAZnJl
-ZWJzZC5vcmc+iQCVAwUQMX6yrOJgpPLZnQjrAQHyowQA1Nv2AY8vJIrdp2ttV6RU
-tZBYnI7gTO3sFC2bhIHsCvfVU3JphfqWQ7AnTXcD2yPjGcchUfc/EcL1tSlqW4y7
-PMP4GHZp9vHog1NAsgLC9Y1P/1cOeuhZ0pDpZZ5zxTo6TQcCBjQA6KhiBFP4TJql
-3olFfPBh3B/Tu3dqmEbSWpuJAJUDBRAxez3C9RVb+45ULV0BAak8A/9JIG/jRJaz
-QbKom6wMw852C/Z0qBLJy7KdN30099zMjQYeC9PnlkZ0USjQ4TSpC8UerYv6IfhV
-nNY6gyF2Hx4CbEFlopnfA1c4yxtXKti1kSN6wBy/ki3SmqtfDhPQ4Q31p63cSe5A
-3aoHcjvWuqPLpW4ba2uHVKGP3g7SSt6AOYkAlQMFEDF8mz0ff6kIA1j8vQEBmZcD
-/REaUPDRx6qr1XRQlMs6pfgNKEwnKmcUzQLCvKBnYYGmD5ydPLxCPSFnPcPthaUb
-5zVgMTjfjS2fkEiRrua4duGRgqN4xY7VRAsIQeMSITBOZeBZZf2oa9Ntidr5PumS
-9uQ9bvdfWMpsemk2MaRG9BSoy5Wvy8VxROYYUwpT8Cf2iQCVAwUQMXsyqWtaZ42B
-sqd5AQHKjAQAvolI30Nyu3IyTfNeCb/DvOe9tlOn/o+VUDNJiE/PuBe1s2Y94a/P
-BfcohpKC2kza3NiW6lLTp00OWQsuu0QAPc02vYOyseZWy4y3Phnw60pWzLcFdemT
-0GiYS5Xm1o9nAhPFciybn9j1q8UadIlIq0wbqWgdInBT8YI/l4f5sf6JAJUDBRAx
-ezKXVS4eLnPSiKUBAc5OBACIXTlKqQC3B53qt7bNMV46m81fuw1PhKaJEI033mCD
-ovzyEFFQeOyRXeu25Jg9Bq0Sn37ynISucHSmt2tUD5W0+p1MUGyTqnfqejMUWBzO
-v4Xhp6a8RtDdUMBOTtro16iulGiRrCKxzVgEl4i+9Z0ZiE6BWlg5AetoF5n3mGk1
-lw==
-=ipyA
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.imp;</title>
-
- <programlisting>
-Warner Losh &lt;imp@village.org&gt;
- aka &lt;imp@freebsd.org&gt;
-Fingerprint = D4 31 FD B9 F7 90 17 E8 37 C5 E7 7F CF A6 C1 B9
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzDzTiAAAAEEAK8D7KWEbVFUrmlqhUEnAvphNIqHEbqqT8s+c5f5c2uHtlcH
-V4mV2TlUaDSVBN4+/D70oHmZc4IgiQwMPCWRrSezg9z/MaKlWhaslc8YT6Xc1q+o
-EP/fAdKUrq49H0QQbkQk6Ks5wKW6v9AOvdmsS6ZJEcet6d9G4dxynu/2qPVhAAUR
-tCBNLiBXYXJuZXIgTG9zaCA8aW1wQHZpbGxhZ2Uub3JnPokAlQMFEDM/SK1VLh4u
-c9KIpQEBFPsD/1n0YuuUPvD4CismZ9bx9M84y5sxLolgFEfP9Ux196ZSeaPpkA0g
-C9YX/IyIy5VHh3372SDWN5iVSDYPwtCmZziwIV2YxzPtZw0nUu82P/Fn8ynlCSWB
-5povLZmgrWijTJdnUWI0ApVBUTQoiW5MyrNN51H3HLWXGoXMgQFZXKWYiQCVAwUQ
-MzmhkfUVW/uOVC1dAQG3+AP/T1HL/5EYF0ij0yQmNTzt1cLt0b1e3N3zN/wPFFWs
-BfrQ+nsv1zw7cEgxLtktk73wBGM9jUIdJu8phgLtl5a0m9UjBq5oxrJaNJr6UTxN
-a+sFkapTLT1g84UFUO/+8qRB12v+hZr2WeXMYjHAFUT18mp3xwjW9DUV+2fW1Wag
-YDKJAJUDBRAzOYK1s1pi61mfMj0BARBbA/930CHswOF0HIr+4YYUs1ejDnZ2J3zn
-icTZhl9uAfEQq++Xor1x476j67Z9fESxyHltUxCmwxsJ1uOJRwzjyEoMlyFrIN4C
-dE0C8g8BF+sRTt7VLURLERvlBvFrVZueXSnXvmMoWFnqpSpt3EmN6TNaLe8Cm87a
-k6EvQy0dpnkPKokAlQMFEDD9Lorccp7v9qj1YQEBrRUD/3N4cCMWjzsIFp2Vh9y+
-RzUrblyF84tJyA7Rr1p+A7dxf7je3Zx5QMEXosWL1WGnS5vC9YH2WZwv6sCU61gU
-rSy9z8KHlBEHh+Z6fdRMrjd9byPf+n3cktT0NhS23oXB1ZhNZcB2KKhVPlNctMqO
-3gTYx+Nlo6xqjR+J2NnBYU8p
-=7fQV
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Membres de l'&eacute;quipe de base</title>
-
- <sect2>
- <title>&a.asami;</title>
-
- <programlisting>
-Satoshi Asami &lt;asami@cs.berkeley.edu&gt;
- aka &lt;asami@FreeBSD.ORG&gt;
-Fingerprint = EB 3C 68 9E FB 6C EB 3F DB 2E 0F 10 8F CE 79 CA
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzPVyoQAAAEEAL7W+kipxB171Z4SVyyL9skaA7hG3eRsSOWk7lfvfUBLtPog
-f3OKwrApoc/jwLf4+Qpdzv5DLEt/6Hd/clskhJ+q1gMNHyZ5ABmUxrTRRNvJMTrb
-3fPU3oZj7sL/MyiFaT1zF8EaMP/iS2ZtcFsbYOqGeA8E/58uk4NA0SoeCNiJAAUR
-tCVTYXRvc2hpIEFzYW1pIDxhc2FtaUBjcy5iZXJrZWxleS5lZHU+iQCVAwUQM/AT
-+EqGN2HYnOMZAQF11QP/eSXb2FuTb1yX5yoo1Im8YnIk1SEgCGbyEbOMMBznVNDy
-5g2TAD0ofLxPxy5Vodjg8rf+lfMVtO5amUH6aNcORXRncE83T10JmeM6JEp0T6jw
-zOHKz8jRzygYLBayGsNIJ4BGxa4LeaGxJpO1ZEvRlNkPH/YEXK5oQmq9/DlrtYOJ
-AEUDBRAz42JT8ng6GBbVvu0BAU8nAYCsJ8PiJpRUGlrz6rxjX8hqM1v3vqFHLcG+
-G52nVMBSy+RZBgzsYIPwI5EZtWAKb22JAJUDBRAz4QBWdbtuOHaj97EBAaQPA/46
-+NLUp+Wubl90JoonoXocwAg88tvAUVSzsxPXj0lvypAiSI2AJKsmn+5PuQ+/IoQy
-lywRsxiQ5GD7C72SZ1yw2WI9DWFeAi+qa4b8n9fcLYrnHpyCY+zxEpu4pam8FJ7H
-JocEUZz5HRoKKOLHErzXDiuTkkm72b1glmCqAQvnB4kAlQMFEDPZ3gyDQNEqHgjY
-iQEBFfUEALu2C0uo+1Z7C5+xshWRYY5xNCzK20O6bANVJ+CO2fih96KhwsMof3lw
-fDso5HJSwgFd8WT/sR+Wwzz6BAE5UtgsQq5GcsdYQuGI1yIlCYUpDp5sgswNm+OA
-bX5a+r4F/ZJqrqT1J56Mer0VVsNfe5nIRsjd/rnFAFVfjcQtaQmjiQCVAwUQM9uV
-mcdm8Q+/vPRJAQELHgP9GqNiMpLQlZig17fDnCJ73P0e5t/hRLFehZDlmEI2TK7j
-Yeqbw078nZgyyuljZ7YsbstRIsWVCxobX5eH1kX+hIxuUqCAkCsWUY4abG89kHJr
-XGQn6X1CX7xbZ+b6b9jLK+bJKFcLSfyqR3M2eCyscSiZYkWKQ5l3FYvbUzkeb6K0
-IVNhdG9zaGkgQXNhbWkgPGFzYW1pQEZyZWVCU0QuT1JHPg==
-=39SC
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jmb;</title>
-
- <programlisting>
-Jonathan M. Bresler &lt;jmb@FreeBSD.org&gt;
-f16 Fingerprint16 = 31 57 41 56 06 C1 40 13 C5 1C E3 E5 DC 62 0E FB
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0i for non-commercial use
-
-mQCNAzG2GToAAAEEANI6+4SJAAgBpl53XcfEr1M9wZyBqC0tzpie7Zm4vhv3hO8s
-o5BizSbcJheQimQiZAY4OnlrCpPxijMFSaihshs/VMAz1qbisUYAMqwGEO/T4QIB
-nWNo0Q/qOniLMxUrxS1RpeW5vbghErHBKUX9GVhxbiVfbwc4wAHbXdKX5jjdAAUR
-tCVKb25hdGhhbiBNLiBCcmVzbGVyIDxqbWJARnJlZUJTRC5PUkc+iQCVAwUQNbtI
-gAHbXdKX5jjdAQHamQP+OQr10QRknamIPmuHmFYJZ0jU9XPIvTTMuOiUYLcXlTdn
-GyTUuzhbEywgtOldW2V5iA8platXThtqC68NsnN/xQfHA5xmFXVbayNKn8H5stDY
-2s/4+CZ06mmJfqYmONF1RCbUk/M84rVT3Gn2tydsxFh4Pm32lf4WREZWRiLqmw+J
-AJUDBRA0DfF99RVb+45ULV0BAcZ0BACCydiSUG1VR0a5DBcHdtin2iZMPsJUPRqJ
-tWvP6VeI8OFpNWQ4LW6ETAvn35HxV2kCcQMyht1kMD+KEJz7r8Vb94TS7KtZnNvk
-2D1XUx8Locj6xel5c/Lnzlnnp7Bp1XbJj2u/NzCaZQ0eYBdP/k7RLYBYHQQln5x7
-BOuiRJNVU4kAlQMFEDQLcShVLh4uc9KIpQEBJv4D/3mDrD0MM9EYOVuyXik3UGVI
-8quYNA9ErVcLdt10NjYc16VI2HOnYVgPRag3Wt7W8wlXShpokfC/vCNt7f5JgRf8
-h2a1/MjQxtlD+4/Js8k7GLa53oLon6YQYk32IEKexoLPwIRO4L2BHWa3GzHJJSP2
-aTR/Ep90/pLdAOu/oJDUiQCVAwUQMqyL0LNaYutZnzI9AQF25QP9GFXhBrz2tiWz
-2+0gWbpcGNnyZbfsVjF6ojGDdmsjJMyWCGw49XR/vPKYIJY9EYo4t49GIajRkISQ
-NNiIz22fBAjT2uY9YlvnTJ9NJleMfHr4dybo7oEKYMWWijQzGjqf2m8wf9OaaofE
-KwBX6nxcRbKsxm/BVLKczGYl3XtjkcuJAJUDBRA1ol5TZWCprDT5+dUBATzXA/9h
-/ZUuhoRKTWViaistGJfWi26FB/Km5nDQBr/Erw3XksQCMwTLyEugg6dahQ1u9Y5E
-5tKPxbB69eF+7JXVHE/z3zizR6VL3sdRx74TPacPsdhZRjChEQc0htLLYAPkJrFP
-VAzAlSlm7qd+MXf8fJovQs6xPtZJXukQukPNlhqZ94kAPwMFEDSH/kF4tXKgazlt
-bxECfk4AoO+VaFVfguUkWX10pPSSfvPyPKqiAJ4xn8RSIe1ttmnqkkDMhLh00mKj
-lLQuSm9uYXRoYW4gTS4gQnJlc2xlciA8Sm9uYXRoYW4uQnJlc2xlckBVU2kubmV0
-PokAlQMFEDXbdSkB213Sl+Y43QEBV/4D/RLJNTrtAqJ1ATxXWv9g8Cr3/YF0GTmx
-5dIrJOpBup7eSSmiM/BL9Is4YMsoVbXCI/8TqA67TMICvq35PZU4wboQB8DqBAr+
-gQ8578M7Ekw1OAF6JXY6AF2P8k7hMcVBcVOACELPT/NyPNByG5QRDoNmlsokJaWU
-/2ls4QSBZZlb
-=zbCw
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.ache;</title>
-
- <programlisting>
-Andrey A. Chernov &lt;ache@FreeBSD.org&gt;
- aka &lt;ache@nagual.pp.ru&gt;
-Key fingerprint = 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAiqUMGQAAAEEAPGhcD6A2Buey5LYz0sphDLpVgOZc/bb9UHAbaGKUAGXmafs
-Dcb2HnsuYGgX/zrQXuCi/wIGtXcZWB97APtKOhFsZnPinDR5n/dde/mw9FnuhwqD
-m+rKSL1HlN0z/Msa5y7g16760wHhSR6NoBSEG5wQAHIMMq7Q0uJgpPLZnQjrAAUT
-tCVBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucHAucnU+iQCVAwUQM2Ez
-u+JgpPLZnQjrAQEyugP8DPnS8ixJ5OeuYgPFQf5sy6l+LrB6hyaS+lgsUPahWjNY
-cnaDmfda/q/BV5d4+y5rlQe/pjnYG7/yQuAR3jhlXz8XDrqlBOnW9AtYjDt5rMfJ
-aGFTGXAPGZ6k6zQZE0/YurT8ia3qjvuZm3Fw4NJrHRx7ETHRvVJDvxA6Ggsvmr20
-JEFuZHJleSBBLiBDaGVybm92IDxhY2hlQEZyZWVCU0Qub3JnPokAlQMFEDR5uVbi
-YKTy2Z0I6wEBLgED/2mn+hw4/3peLx0Sb9LNx//NfCCkVefSf2G9Qwhx6dvwbX7h
-mFca97h7BQN4GubU1Z5Ffs6TeamSBrotBYGmOCwvJ6S9WigF9YHQIQ3B4LEjskAt
-pcjU583y42zM11kkvEuQU2Gde61daIylJyOxsgpjSWpkxq50fgY2kLMfgl/ftCZB
-bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuaWV0enNjaGUubmV0PokAlQMFEDR5svDi
-YKTy2Z0I6wEBOTQD/0OTCAXIjuak363mjERvzSkVsNtIH9hA1l0w6Z95+iH0fHrW
-xXKT0vBZE0y0Em+S3cotLL0bMmVE3F3D3GyxhBVmgzjyx0NYNoiQjYdi+6g/PV30
-Cn4vOO6hBBpSyI6vY6qGNqcsawuRtHNvK/53MpOfKwSlICEBYQimcZhkci+EtCJB
-bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucnU+iQCVAwUQMcm5HeJgpPLZ
-nQjrAQHwvQP9GdmAf1gdcuayHEgNkc11macPH11cwWjYjzA2YoecFMGV7iqKK8QY
-rr1MjbGXf8DAG8Ubfm0QbI8Lj8iG3NgqIru0c72UuHGSn/APfGGG0AtPX5UK/k7B
-gI0Ca2po6NA5nrSp8tDsdEz/4gyea84RXl2prtTf5Jj07hflbRstGXK0MkFuZHJl
-eSBBLiBDaGVybm92LCBCbGFjayBNYWdlIDxhY2hlQGFzdHJhbC5tc2suc3U+iQCV
-AwUQMCsAo5/rGryoL8h3AQHq1QQAidyNFqA9hvrmMcjpY7csJVFlGvj574Wj4GPa
-o3pZeuQaMBmsWqaXLYnWU/Aldb6kTz6+nRcQX50zFH0THSPfApwEW7yybSTI5apJ
-mWT3qhKN2vmLNg2yNzhqLTzHLD1lH3i1pfQq8WevrNfjLUco5S/VuekTma/osnzC
-Cw7fQzCJAJUDBRAwKvwoa1pnjYGyp3kBARihBACoXr3qfG65hFCyKJISmjOvaoGr
-anxUIkeDS0yQdTHzhQ+dwB1OhhK15E0Nwr0MKajLMm90n6+Zdb5y/FIjpPriu8dI
-rlHrWZlewa88eEDM+Q/NxT1iYg+HaKDAE171jmLpSpCL0MiJtO0i36L3ekVD7Hv8
-vffOZHPSHirIzJOZTYkAlQMFEDAau6zFLUdtDb+QbQEBQX8D/AxwkYeFaYxZYMFO
-DHIvSk23hAsjCmUA2Uil1FeWAusb+o8xRfPDc7TnosrIifJqbF5+fcHCG5VSTGlh
-Bhd18YWUeabf/h9O2BsQX55yWRuB2x3diJ1xI/VVdG+rxlMCmE4ZR1Tl9x+Mtun9
-KqKVpB39VlkCBYQ3hlgNt/TJUY4riQCVAwUQMBHMmyJRltlmbQBRAQFQkwP/YC3a
-hs3ZMMoriOlt3ZxGNUUPTF7rIER3j+c7mqGG46dEnDB5sUrkzacpoLX5sj1tGR3b
-vz9a4vmk1Av3KFNNvrZZ3/BZFGpq3mCTiAC9zsyNYQ8L0AfGIUO5goCIjqwOTNQI
-AOpNsJ5S+nMAkQB4YmmNlI6GTb3D18zfhPZ6uciJAJUCBRAwD0sl4uW74fteFRkB
-AWsAA/9NYqBRBKbmltQDpyK4+jBAYjkXBJmARFXKJYTlnTgOHMpZqoVyW96xnaa5
-MzxEiu7ZWm5oL10QDIp1krkBP2KcmvfSMMHb5aGCCQc2/P8NlfXAuHtNGzYiI0UA
-Iwi8ih/S1liVfvnqF9uV3d3koE7VsQ9OA4Qo0ZL2ggW+/gEaYIkAlQMFEDAOz6qx
-/IyHe3rl4QEBIvYD/jIr8Xqo/2I5gncghSeFR01n0vELFIvaF4cHofGzyzBpYsfA
-+6pgFI1IM+LUF3kbUkAY/2uSf9U5ECcaMCTWCwVgJVO+oG075SHEM4buhrzutZiM
-1dTyTaepaPpTyRMUUx9ZMMYJs7sbqLId1eDwrJxUPhrBNvf/w2W2sYHSY8cdiQCV
-AwUQMAzqgHcdkq6JcsfBAQGTxwQAtgeLFi2rhSOdllpDXUwz+SS6bEjFTWgRsWFM
-y9QnOcqryw7LyuFmWein4jasjY033JsODfWQPiPVNA3UEnXVg9+n8AvNMPO8JkRv
-Cn1eNg0VaJy9J368uArio93agd2Yf/R5r+QEuPjIssVk8hdcy/luEhSiXWf6bLMV
-HEA0J+OJAJUDBRAwDUi+4mCk8tmdCOsBAatBBACHB+qtW880seRCDZLjl/bT1b14
-5po60U7u6a3PEBkY0NA72tWDQuRPF/Cn/0+VdFNxQUsgkrbwaJWOoi0KQsvlOm3R
-rsxKbn9uvEKLxExyKH3pxp76kvz/lEWwEeKvBK+84Pb1lzpG3W7u2XDfi3VQPTi3
-5SZMAHc6C0Ct/mjNlYkAlQMFEDAMrPD7wj+NsTMUOQEBJckD/ik4WsZzm2qOx9Fw
-erGq7Zwchc+Jq1YeN5PxpzqSf4AG7+7dFIn+oe6X2FcIzgbYY+IfmgJIHEVjDHH5
-+uAXyb6l4iKc89eQawO3t88pfHLJWbTzmnvgz2cMrxt94HRvgkHfvcpGEgbyldq6
-EB33OunazFcfZFRIcXk1sfyLDvYE
-=1ahV
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jkh;</title>
-
- <programlisting>
-Jordan K. Hubbard &lt;jkh@FreeBSD.org&gt;
-Fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzFjX0IAAAEEAML+nm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ
-jvX+fyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk
-tyFeRJFqnkCuqBj6D+H8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR
-tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPokBFQMFEDXCTXQM
-j46yp4IfPQEBwO8IAIN0J09AXBf86dFUTFGcAMrEQqOF5IL+KGorAjzuYxERhKfD
-ZV7jA+sCQqxkWfcVcE20kVyVYqzZIkio9a5zXP6TwA247JkPt54S1PmMDYHNlRIY
-laXlNoji+4q3HP2DfHqXRT2859rYpm/fG/v6pWkos5voPKcZ2OFEp9W+Ap88oqw+
-5rx4VetZNJq1Epmis4INj6XqNqj85+MOOIYE+f445ohDM6B/Mxazd6cHFGGIR+az
-VjZ6lCDMLjzhB5+FqfrDLYuMjqkMTR5z9DL+psUvPlCkYbQ11NEWtEmiIWjUcNJN
-GCxGzv5bXk0XPu3ADwbPkFE2usW1cSM7AQFiwuyJAJUDBRAxe+Q9a1pnjYGyp3kB
-AV7XA/oCSL/Cc2USpQ2ckwkGpyvIkYBPszIcabSNJAzm2hsU9Qa6WOPxD8olDddB
-uJNiW/gznPC4NsQ0N8Zr4IqRX/TTDVf04WhLmd8AN9SOrVv2q0BKgU6fLuk979tJ
-utrewH6PR2qBOjAaR0FJNk4pcYAHeT+e7KaKy96YFvWKIyDvc4kAlQMFEDF8ldof
-f6kIA1j8vQEBDH4D/0Zm0oNlpXrAE1EOFrmp43HURHbij8n0Gra1w9sbfo4PV+/H
-U8ojTdWLy6r0+prH7NODCkgtIQNpqLuqM8PF2pPtUJj9HwTmSqfaT/LMztfPA6PQ
-csyT7xxdXl0+4xTDl1avGSJfYsI8XCAy85cTs+PQwuyzugE/iykJO1Bnj/paiQCV
-AwUQMXvlBvUVW/uOVC1dAQF2fQP/RfYC6RrpFTZHjo2qsUHSRk0vmsYfwG5NHP5y
-oQBMsaQJeSckN4n2JOgR4T75U4vS62aFxgPLJP3lOHkU2Vc7xhAuBvsbGr5RP8c5
-LvPOeUEyz6ZArp1KUHrtcM2iK1FBOmY4dOYphWyWMkDgYExabqlrAq7FKZftpq/C
-BiMRuaw=
-=C/Jw
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.phk;</title>
-
- <programlisting>
-Poul-Henning Kamp &lt;phk@FreeBSD.org&gt;
-Fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzAdpMIAAAEEALHDgrFUwhZtb7PbXg3upELoDVEUPFRwnmpJH1rRqyROUGcI
-ooVe7u+FQlIs5OsXK8ECs/5Wpe2UrZSzHvjwBYOND5H42YtI5UULZLRCo5bFfTVA
-K9Rpo5icfTsYihrzU2nmnycwFMk+jYXyT/ZDYWDP/BM9iLjj0x9/qQgDWPy9AAUR
-tCNQb3VsLUhlbm5pbmcgS2FtcCA8cGhrQEZyZWVCU0Qub3JnPokAlQMFEDQQ0aZ1
-u244dqP3sQEBu4ID/jXFFeJgs2MdTDNOZM/FbfDhI4qxAbYUsqS3+Ra16yd8Wd/A
-jV+IHJE2NomFWl8UrUjCGinXiwzPgK1OfFJrS9Og1wQLvAl0X84BA8MTP9BQr4w7
-6I/RbksgUSrVCIO8MJwlydjSPocWGBeXlVjbZxXzyuJk7H+TG+zuI5BuBcNIiQCV
-AwUQMwYr2rNaYutZnzI9AQHiIQP/XxtBWFXaBRgVLEhRNpS07YdU+LsZGlLOZehN
-9L4UnJFHQQPNOpMey2gF7Y95aBOw5/1xS5vlQpwmRFCntWsm/gqdzK6rulfr1r5A
-y94LO5TAC6ucNu396Y4vo1TyD1STnRC466KlvmtQtAtFGgXlORWLL9URLzcRFd1h
-D0yXd9aJAJUDBRAxfo19a1pnjYGyp3kBAQqyA/4v64vP3l1F0Sadn6ias761hkz/
-SMdTuLzILmofSCC4o4KWMjiWJHs2Soo41QlZi1+xMHzV32JKiwFlGtPHqL+EHyXy
-Q4H3vmf9/1KF+0XCaMtgI0wWUMziPSTJK8xXbRRmMDK/0F4TnVVaUhnmf+h5K7O6
-XdmejDTa0X/NWcicmIkAlQMFEDF8lef1FVv7jlQtXQEBcnwD/0ro1PpUtlkLmreD
-tsGTkNa7MFLegrYRvDDrHOwPZH152W2jPUncY+eArQJakeHiTDmJNpFagLZglhE0
-bqJyca+UwCXX+6upAclWHEBMg2byiWMMqyPVEEnpUoHM1sIkgdNWlfQAmipRBfYh
-2LyCgWvR8CbtwPYIFvUmGgB3MR87iQCVAwUQMUseXB9/qQgDWPy9AQGPkwP/WEDy
-El2Gkvua9COtMAifot2vTwuvWWpNopIEx0Ivey4aVbRLD90gGCJw8OGDEtqFPcNV
-8aIiy3fYVKXGZZjvCKd7zRfhNmQn0eLDcymq2OX3aPrMc2rRlkT4Jx425ukR1gsO
-qiQAgw91aWhY8dlw/EKzk8ojm52x4VgXaBACMjaJAJUDBRAxOUOg72G56RHVjtUB
-AbL4A/9HOn5Qa0lq9tKI/HkSdc5fGQD/66VdCBAb292RbB7CS/EM07MdbcqRRYIa
-0+0gwQ3OdsWPdCVgH5RIhp/WiC+UPkR1cY8N9Mg2kTwJfZZfNqN+BgWlgRMPN27C
-OhYNl8Q33Nl9CpBLrZWABF44jPeT0EvvTzP/5ZQ7T75EsYKYiYkAlQMFEDDmryQA
-8tkJ67sbQQEBPdsEALCj6v1OBuJLLJTlxmmrkqAZPVzt5QdeO3Eqa2tcPWcU0nqP
-vHYMzZcZ7oFg58NZsWrhSQQDIB5e+K65Q/h6dC7W/aDskZd64jxtEznX2kt0/MOr
-8OdsDis1K2f9KQftrAx81KmVwW4Tqtzl7NWTDXt44fMOtibCwVq8v2DFkTJy
-=JKbP
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.rich;</title>
-
- <programlisting>
-Rich Murphey &lt;rich@FreeBSD.org&gt;
-fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAy97V+MAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1
-FBF2Gd5Lbj0y8SLMno5yJ6P4F4r+x3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs
-wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR
-tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W
-vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g
-Sb97WRLEYDi686osaGfsuKNA87Rm+q5F+jxeUV4w4szoqp60gGvCbD0KCB2hWraP
-/2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw==
-=QoiM
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.jdp;</title>
-
- <programlisting>
-John D. Polstra &lt;jdp@polstra.com&gt;
-Fingerprint = 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzMElMEAAAEEALizp6ZW9QifQgWoFmG3cXhzQ1+Gt+a4S1adC/TdHdBvw1M/
-I6Ok7TC0dKF8blW3VRgeHo4F3XhGn+n9MqIdboh4HJC5Iiy63m98sVLJSwyGO4oM
-dkEGyyCLxqP6h/DU/tzNBdqFzetGtYvU4ftt3RO0a506cr2CHcdm8Q+/vPRJAAUR
-tCFKb2huIEQuIFBvbHN0cmEgPGpkcEBwb2xzdHJhLmNvbT6JAJUDBRAzBNBE9RVb
-+45ULV0BAWgiA/0WWO3+c3qlptPCHJ3DFm6gG/qNKsY94agL/mHOr0fxMP5l2qKX
-O6a1bWkvGoYq0EwoKGFfn0QeHiCl6jVi3CdBX+W7bObMcoi+foqZ6zluOWBC1Jdk
-WQ5/DeqQGYXqbYjqO8voCScTAPge3XlMwVpMZTv24u+nYxtLkE0ZcwtY9IkAlQMF
-EDMEt/DHZvEPv7z0SQEBXh8D/2egM5ckIRpGz9kcFTDClgdWWtlgwC1iI2p9gEhq
-aufy+FUJlZS4GSQLWB0BlrTmDC9HuyQ+KZqKFRbVZLyzkH7WFs4zDmwQryLV5wkN
-C4BRRBXZfWy8s4+zT2WQD1aPO+ZsgRauYLkJgTvXTPU2JCN62Nsd8R7bJS5tuHEm
-7HGmiQCVAwUQMwSvHB9/qQgDWPy9AQFAhAQAgJ1AlbKITrEoJ0+pLIsov3eQ348m
-SVHEBGIkU3Xznjr8NzT9aYtq4TIzt8jplqP3QoV1ka1yYpZf0NjvfZ+ffYp/sIaU
-wPbEpgtmHnVWJAebMbNs/Ad1w8GDvxEt9IaCbMJGZnHmfnEqOBIxF7VBDPHHoJxM
-V31K/PIoYsHAy5w=
-=cHFa
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.guido;</title>
-
- <programlisting>
-Guido van Rooij &lt;guido@gvr.win.tue.nl&gt;
-Fingerprint = 16 79 09 F3 C0 E4 28 A7 32 62 FA F6 60 31 C0 ED
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.2
-
-mQCNAzGeO84AAAEEAKKAY91Na//DXwlUusr9GVESSlVwVP6DyH1wcZXhfN1fyZHq
-SwhMCEdHYoojQds+VqD1iiZQvv1RLByBgj622PDAPN4+Z49HjGs7YbZsUNuQqPPU
-wRPpP6ty69x1hPKq1sQIB5MS4radpCM+4wbZbhxv7l4rP3RWUbNaYutZnzI9AAUR
-tCZHdWlkbyB2YW4gUm9vaWogPGd1aWRvQGd2ci53aW4udHVlLm5sPokAlQMFEDMG
-Hcgff6kIA1j8vQEBbYgD/jm9xHuUuY+iXDkOzpCXBYACYEZDV913MjtyBAmaVqYo
-Rh5HFimkGXe+rCo78Aau0hc57fFMTsJqnuWEqVt3GRq28hSK1FOZ7ni9/XibHcmN
-rt2yugl3hYpClijo4nrDL1NxibbamkGW/vFGcljS0jqXz6NDVbGx5Oo7HBByxByz
-iQCVAwUQMhmtVjt/x7zOdmsfAQFuVQQApsVUTigT5YWjQA9Nd5Z0+a/oVtZpyw5Z
-OljLJP3vqJdMa6TidhfcatjHbFTve5x1dmjFgMX/MQTd8zf/+Xccy/PX4+lnKNpP
-eSf1Y4aK+E8KHmBGd6GzX6CIboyGYLS9e3kGnN06F2AQtaLyJFgQ71wRaGuyKmQG
-FwTn7jiKb1aJAJUDBRAyEOLXPt3iN6QQUSEBATwQA/9jqu0Nbk154+Pn+9mJX/YT
-fYR2UqK/5FKCqgL5Nt/Deg2re0zMD1f8F9Dj6vuAAxq8hnOkIHKlWolMjkRKkzJi
-mSPEWl3AuHJ31k948J8it4f8kq/o44usIA2KKVMlI63Q/rmNdfWCyiYQEVGcRbTm
-GTdZIHYCOgV5dOo4ebFqgYkAlQMFEDIE1nMEJn15jgpJ0QEBW6kEAKqN8XSgzTqf
-CrxFXT07MlHhfdbKUTNUoboxCGCLNW05vf1A8F5fdE5i14LiwkldWIzPxWD+Sa3L
-fNPCfCZTaCiyGcLyTzVfBHA18MBAOOX6JiTpdcm22jLGUWBf/aJK3yz/nfbWntd/
-LRHysIdVp29lP5BF+J9/Lzbb/9LxP1taiQCVAwUQMgRXZ44CzbsJWQz9AQFf7gP/
-Qa2FS5S6RYKG3rYanWADVe/ikFV2lxuM1azlWbsmljXvKVWGe6cV693nS5lGGAjx
-lbd2ADwXjlkNhv45HLWFm9PEveO9Jjr6tMuXVt8N2pxiX+1PLUN9CtphTIU7Yfjn
-s6ryZZfwGHSfIxNGi5ua2SoXhg0svaYnxHxXmOtH24iJAJUDBRAyAkpV8qaAEa3W
-TBkBARfQBAC+S3kbulEAN3SI7/A+A/dtl9DfZezT9C4SRBGsl2clQFMGIXmMQ/7v
-7lLXrKQ7U2zVbgNfU8smw5h2vBIL6f1PyexSmc3mz9JY4er8KeZpcf6H0rSkHl+i
-d7TF0GvuTdNPFO8hc9En+GG6QHOqbkB4NRZ6cwtfwUMhk2FHXBnjF4kAlQMFEDH5
-FFukUJAsCdPmTQEBe74EAMBsxDnbD9cuI5MfF/QeTNEG4BIVUZtAkDme4Eg7zvsP
-d3DeJKCGeNjiCWYrRTCGwaCWzMQk+/+MOmdkI6Oml+AIurJLoHceHS9jP1izdP7f
-N2jkdeJSBsixunbQWtUElSgOQQ4iF5kqwBhxtOfEP/L9QsoydRMR1yB6WPD75H7V
-iQCVAwUQMZ9YNGtaZ42Bsqd5AQH0PAQAhpVlAc3ZM/KOTywBSh8zWKVlSk3q/zGn
-k7hJmFThnlhH1723+WmXE8aAPJi+VXOWJUFQgwELJ6R8jSU2qvk2m1VWyYSqRKvc
-VRQMqT2wjss0GE1Ngg7tMrkRHT0il7E2xxIb8vMrIwmdkbTfYqBUhhGnsWPHZHq7
-MoA1/b+rK7CJAJUDBRAxnvXh3IDyptUyfLkBAYTDA/4mEKlIP/EUX2Zmxgrd/JQB
-hqcQlkTrBAaDOnOqe/4oewMKR7yaMpztYhJs97i03Vu3fgoLhDspE55ooEeHj0r4
-cOdiWfYDsjSFUYSPNVhW4OSruMA3c29ynMqNHD7hpr3rcCPUi7J2RncocOcCjjK2
-BQb/9IAUNeK4C9gPxMEZLokAlQMFEDGeO86zWmLrWZ8yPQEBEEID/2fPEUrSX3Yk
-j5TJPFZ9MNX0lEo7AHYjnJgEbNI4pYm6C3PnMlsYfCSQDHuXmRQHAOWSdwOLvCkN
-F8eDaF3M6u0urgeVJ+KVUnTz2+LZoZs12XSZKCte0HxjbvPpWMTTrYyimGezH79C
-mgDVjsHaYOx3EXF0nnDmtXurGioEmW1J
-=mSvM
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.peter;</title>
-
- <programlisting>
-Peter Wemm &lt;peter@FreeBSD.org&gt;
- aka &lt;peter@spinner.dialix.com&gt;
- aka &lt;peter@haywire.dialix.com&gt;
- aka &lt;peter@perth.dialix.oz.au&gt;
-Key fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAy9/FJwAAAEEALxs9dE9tFd0Ru1TXdq301KfEoe5uYKKuldHRBOacG2Wny6/
-W3Ill57hOi2+xmq5X/mHkapywxvy4cyLdt31i4GEKDvxpDvEzAYcy2n9dIup/eg2
-kEhRBX9G5k/LKM4NQsRIieaIEGGgCZRm0lINqw495aZYrPpO4EqGN2HYnOMZAAUT
-tCVQZXRlciBXZW1tIDxwZXRlckBoYXl3aXJlLmRpYWxpeC5jb20+iQCVAwUQMwWT
-cXW7bjh2o/exAQEFkQP+LIx5zKlYp1uR24xGApMFNrNtjh+iDIWnxxb2M2Kb6x4G
-9z6OmbUCoDTGrX9SSL2Usm2RD0BZfyv9D9QRWC2TSOPkPRqQgIycc11vgbLolJJN
-eixqsxlFeKLGEx9eRQCCbo3dQIUjc2yaOe484QamhsK1nL5xpoNWI1P9zIOpDiGJ
-AJUDBRAxsRPqSoY3Ydic4xkBAbWLA/9q1Fdnnk4unpGQsG31Qbtr4AzaQD5m/JHI
-4gRmSmbj6luJMgNG3fpO06Gd/Z7uxyCJB8pTst2a8C/ljOYZxWT+5uSzkQXeMi5c
-YcI1sZbUpkHtmqPW623hr1PB3ZLA1TIcTbQW+NzJsxQ1Pc6XG9fGkT9WXQW3Xhet
-AP+juVTAhLQlUGV0ZXIgV2VtbSA8cGV0ZXJAcGVydGguZGlhbGl4Lm96LmF1PokA
-lQMFEDGxFCFKhjdh2JzjGQEB6XkD/2HOwfuFrnQUtdwFPUkgtEqNeSr64jQ3Maz8
-xgEtbaw/ym1PbhbCk311UWQq4+izZE2xktHTFClJfaMnxVIfboPyuiSF99KHiWnf
-/Gspet0S7m/+RXIwZi1qSqvAanxMiA7kKgFSCmchzas8TQcyyXHtn/gl9v0khJkb
-/fv3R20btB5QZXRlciBXZW1tIDxwZXRlckBGcmVlQlNELm9yZz6JAJUDBRAxsRJd
-SoY3Ydic4xkBAZJUA/4i/NWHz5LIH/R4IF/3V3LleFyMFr5EPFY0/4mcv2v+ju9g
-brOEM/xd4LlPrx1XqPeZ74JQ6K9mHR64RhKR7ZJJ9A+12yr5dVqihe911KyLKab9
-4qZUHYi36WQu2VtLGnw/t8Jg44fQSzbBF5q9iTzcfNOYhRkSD3BdDrC3llywO7Ql
-UGV0ZXIgV2VtbSA8cGV0ZXJAc3Bpbm5lci5kaWFsaXguY29tPokAlQMFEDGxEi1K
-hjdh2JzjGQEBdA4EAKmNFlj8RF9HQsoI3UabnvYqAWN5wCwEB4u+Zf8zq6OHic23
-TzoK1SPlmSdBE1dXXQGS6aiDkLT+xOdeewNs7nfUIcH/DBjSuklAOJzKliXPQW7E
-kuKNwy4eq5bl+j3HB27i+WBXhn6OaNNQY674LGaR41EGq44Wo5ATcIicig/z
-=gv+h
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.joerg;</title>
-
- <programlisting>
-Type Bits/KeyID Date User ID
-pub 1024/76A3F7B1 1996/04/27 Joerg Wunsch &lt;joerg_wunsch@uriah.heep.sax.de&gt;
- Key fingerprint = DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E
- Joerg Wunsch &lt;joerg_wunsch@interface-business.de&gt;
- Joerg Wunsch &lt;j@uriah.heep.sax.de&gt;
- Joerg Wunsch &lt;j@interface-business.de&gt;
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzGCFeAAAAEEAKmRBU2Nvc7nZy1Ouid61HunA/5hF4O91cXm71/KPaT7dskz
-q5sFXvPJPpawwvqHPHfEbAK42ZaywyFp59L1GaYj87Pda+PlAYRJyY2DJl5/7JPe
-ziq+7B8MdvbX6D526sdmcR+jPXPbHznASjkx9DPmK+7TgFujyXW7bjh2o/exAAUR
-tC1Kb2VyZyBXdW5zY2ggPGpvZXJnX3d1bnNjaEB1cmlhaC5oZWVwLnNheC5kZT6J
-AJUDBRA0FFkBs1pi61mfMj0BAfDCA/oCfkjrhvRwRCpSL8klJ1YDoUJdmw+v4nJc
-pw3OpYXbwKOPLClsE7K3KCQscHel7auf91nrekAwbrXv9Clp0TegYeAQNjw5vZ9f
-L6UZ5l3fH8E2GGA7+kqgNWs1KxAnG5GdUvJ9viyrWm8dqWRGo+loDWlZ12L2OgAD
-fp7jVZTI1okAlQMFEDQPrLoff6kIA1j8vQEB2XQEAK/+SsQPCT/X4RB/PBbxUr28
-GpGJMn3AafAaA3plYw3nb4ONbqEw9tJtofAn4UeGraiWw8nHYR2DAzoAjR6OzuX3
-TtUV+57BIzrTPHcNkb6h8fPuHU+dFzR+LNoPaGJsFeov6w+Ug6qS9wa5FGDAgaRo
-LHSyBxcRVoCbOEaS5S5EiQCVAwUQM5BktWVgqaw0+fnVAQGKPwP+OiWho3Zm2GKp
-lEjiZ5zx3y8upzb+r1Qutb08jr2Ewja04hLg0fCrt6Ad3DoVqxe4POghIpmHM4O4
-tcW92THQil70CLzfCxtfUc6eDzoP3krD1/Gwpm2hGrmYA9b/ez9+r2vKBbnUhPmC
-glx5pf1IzHU9R2XyQz9Xu7FI2baOSZqJAJUDBRAyCIWZdbtuOHaj97EBAVMzA/41
-VIph36l+yO9WGKkEB+NYbYOz2W/kyi74kXLvLdTXcRYFaCSZORSsQKPGNMrPZUoL
-oAKxE25AoCgl5towqr/sCcu0A0MMvJddUvlQ2T+ylSpGmWchqoXCN7FdGyxrZ5zz
-xzLIvtcio6kaHd76XxyJpltCASupdD53nEtxnu8sRrQxSm9lcmcgV3Vuc2NoIDxq
-b2VyZ193dW5zY2hAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokAlQMFEDIIhfR1u244
-dqP3sQEBWoID/RhBm+qtW+hu2fqAj9d8CVgEKJugrxZIpXuCKFvO+bCgQtogt9EX
-+TJh4s8UUdcFkyEIu8CT2C3Rrr1grvckfxvrTgzSzvtYyv1072X3GkVY+SlUMBMA
-rdl1qNW23oT7Q558ajnsaL065XJ5m7HacgTTikiofYG8i1s7TrsEeq6PtCJKb2Vy
-ZyBXdW5zY2ggPGpAdXJpYWguaGVlcC5zYXguZGU+iQCVAwUQMaS91D4gHQUlG9CZ
-AQGYOwQAhPpiobK3d/fz+jWrbQgjkoO+j39glYGXb22+6iuEprFRs/ufKYtjljNT
-NK3B4DWSkyIPawcuO4Lotijp6jke2bsjFSSashGWcsJlpnwsv7EeFItT3oWTTTQQ
-ItPbtNyLW6M6xB+jLGtaAvJqfOlzgO9BLfHuA2LY+WvbVW447SWJAJUDBRAxqWRs
-dbtuOHaj97EBAXDBA/49rzZB5akkTSbt/gNd38OJgC+H8N5da25vV9dD3KoAvXfW
-fw7OxIsxvQ/Ab+rJmukrrWxPdsC+1WU1+1rGa4PvJp/VJRDes2awGrn+iO7/cQoS
-IVziC27JpcbvjLvLVcBIiy1yT/RvJ+87a3jPRHt3VFGcpFh4KykxxSNiyGygl4kA
-lQMFEDGCUB31FVv7jlQtXQEB5KgD/iIJZe5lFkPr2B/Cr7BKMVBot1/JSu05NsHg
-JZ3uK15w4mVtNPZcFi/dKbn+qRM6LKDFe/GF0HZD/ZD1FJt8yQjzF2w340B+F2GG
-EOwnClqZDtEAqnIBzM/ECQQqH+6Bi8gpkFZrFgg5eON7ikqmusDnOlYStM/CBfgp
-SbR8kDmFtCZKb2VyZyBXdW5zY2ggPGpAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokA
-lQMFEDHioSdlYKmsNPn51QEByz8D/10uMrwP7MdaXnptd1XNFhpaAPYTVAOcaKlY
-OGI/LLR9PiU3FbqXO+7INhaxFjBxa0Tw/p4au5Lq1+Mx81edHniJZNS8tz3I3goi
-jIC3+jn2gnVAWnK5UZUTUVUn/JLVk/oSaIJNIMMDaw4J9xPVVkb+Fh1A+XqtPsVa
-YESrNp0+iQCVAwUQMwXkzcdm8Q+/vPRJAQEA4QQAgNNX1HFgXrMetDb+w6yEGQDk
-JCDAY9b6mA2HNeKLQAhsoZl4HwA1+iuQaCgo3lyFC+1Sf097OUTs74z5X1vCedqV
-oFw9CxI3xuctt3pJCbbN68flOlnq0WdYouWWGlFwLlh5PEy//VtwX9lqgsizlhzi
-t+fX6BT4BgKi5baDhrWJAJUDBRAyCKveD9eCJxX4hUkBAebMA/9mRPy6K6i7TX2R
-jUKSl2p5oYrXPk12Zsw4ijuktslxzQhOCyMSCGK2UEC4UM9MXp1H1JZQxN/DcfnM
-7VaUt+Ve0wZ6DC9gBSHJ1hKVxHe5XTj26mIr4rcXNy2XEDMK9QsnBxIAZnBVTjSO
-LdhqqSMp3ULLOpBlRL2RYrqi27IXr4kAlQMFEDGpbnd1u244dqP3sQEBJnQD/RVS
-Azgf4uorv3fpbosI0LE3LUufAYGBSJNJnskeKyudZkNkI5zGGDwVneH/cSkKT4OR
-ooeqcTBxKeMaMuXPVl30QahgNwWjfuTvl5OZ8orsQGGWIn5FhqYXsKkjEGxIOBOf
-vvlVQ0UbcR0N2+5F6Mb5GqrXZpIesn7jFJpkQKPU
-=97h7
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
- </sect1>
-
- <sect1>
- <title>D&eacute;veloppeurs</title>
-
- <sect2>
- <title>&a.wosch;</title>
-
- <programlisting>
-Type Bits/KeyID Date User ID
-pub 1024/2B7181AD 1997/08/09 Wolfram Schneider &lt;wosch@FreeBSD.org&gt;
- Key fingerprint = CA 16 91 D9 75 33 F1 07 1B F0 B4 9F 3E 95 B6 09
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzPs+aEAAAEEAJqqMm2I9CxWMuHDvuVO/uh0QT0az5ByOktwYLxGXQmqPG1G
-Q3hVuHWYs5Vfm/ARU9CRcVHFyqGQ3LepoRhDHk+JcASHan7ptdFsz7xk1iNNEoe0
-vE2rns38HIbiyQ/2OZd4XsyhFOFtExNoBuyDyNoe3HbHVBQT7TmN/mkrcYGtAAUR
-tCVXb2xmcmFtIFNjaG5laWRlciA8d29zY2hARnJlZUJTRC5vcmc+iQCVAwUQNxnH
-AzmN/mkrcYGtAQF5vgP/SLOiI4AwuPHGwUFkwWPRtRzYSySXqwaPCop5mVak27wk
-pCxGdzoJO2UgcE812Jt92Qas91yTT0gsSvOVNATaf0TM3KnKg5ZXT1QIzYevWtuv
-2ovAG4au3lwiFPDJstnNAPcgLF3OPni5RCUqBjpZFhb/8YDfWYsMcyn4IEaJKre0
-JFdvbGZyYW0gU2NobmVpZGVyIDxzY2huZWlkZXJAemliLmRlPokAlQMFEDcZxu85
-jf5pK3GBrQEBCRgD/jPj1Ogx4O769soiguL1XEHcxhqtrpKZkKwxmDLRa0kJFwLp
-bBJ3Qz3vwaB7n5gQU0JiL1B2M7IxVeHbiIV5pKp7FD248sm+HZvBg6aSnCg2JPUh
-sHd1tK5X4SB5cjFt3Cj0LIN9/c9EUxm3SoML9bovmze60DckErrRNOuTk1IntCJX
-b2xmcmFtIFNjaG5laWRlciA8d29zY2hAYXBmZWwuZGU+iQEVAwUQNmfWXAjJLLJO
-sC7dAQEASAgAnE4g2fwMmFkQy17ATivljEaDZN/m0GdXHctdZ8CaPrWk/9/PTNK+
-U6xCewqIKVwtqxVBMU1VpXUhWXfANWCB7a07D+2GrlB9JwO5NMFJ6g0WI/GCUXjC
-xb3NTkNsvppL8Rdgc8wc4f23GG4CXVggdTD2oUjUH5Bl7afgOT4xLPAqePhS7hFB
-UnMsbA94OfxPtHe5oqyaXt6cXH/SgphRhzPPZq0yjg0Ef+zfHVamvZ6Xl2aLZmSv
-Cc/rb0ShYDYi39ly9OPPiBPGbSVw2Gg804qx3XAKiTFkLsbYQnRt7WuCPsOVjFkf
-CbQS31TaclOyzenZdCAezubGIcrJAKZjMIkAlQMFEDPs+aE5jf5pK3GBrQEBlIAD
-/3CRq6P0m1fi9fbPxnptuipnoFB/m3yF6IdhM8kSe4XlXcm7tS60gxQKZgBO3bDA
-5QANcHdl41Vg95yBAZepPie6iQeAAoylRrONeIy6XShjx3S0WKmA4+C8kBTL+vwa
-UqF9YJ1qesZQtsXlkWp/Z7N12RkueVAVQ7wRPwfnz6E3tC5Xb2xmcmFtIFNjaG5l
-aWRlciA8d29zY2hAcGFua2UuZGUuZnJlZWJzZC5vcmc+iQCVAwUQNxnEqTmN/mkr
-cYGtAQFnpQP9EpRZdG6oYN7d5abvIMN82Z9x71a4QBER+R62mU47wqdRG2b6jMMh
-3k07b2oiprVuPhRw/GEPPQevb6RRT6SD9CPYAGfK3MDE8ZkMj4d+7cZDRJQ35sxv
-gAzQwuA9l7kS0mt5jFRPcEg5/KpuyehRLckjx8jpEM7cEJDHXhBIuVg=
-=3V1R
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
-
- <sect2>
- <title>&a.brian;</title>
-
- <programlisting>
-Type Bits/KeyID Date User ID
-pub 1024/666A7421 1997/04/30 Brian Somers &lt;brian@awfulhak.org&gt;
- Key fingerprint = 2D 91 BD C2 94 2C 46 8F 8F 09 C4 FC AD 12 3B 21
- Brian Somers &lt;brian@uk.FreeBSD.org&gt;
- Brian Somers &lt;brian@OpenBSD.org&gt;
- Brian Somers &lt;brian@FreeBSD.org&gt;
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3ia
-
-mQCNAzNmogUAAAEEALdsjVsV2dzO8UU4EEo7z3nYuvB2Q6YJ8sBUYjB8/vfR5oZ9
-7aEQjgY5//pXvS30rHUB9ghk4kIFSljzeMudE0K2zH5n2sxpLbBKWZRDLS7xnrDC
-I3j9CNKwQBzMPs0fUT46gp96nf1X8wPiJXkDUEia/c0bRbXlLw7tvOdmanQhAAUR
-tCFCcmlhbiBTb21lcnMgPGJyaWFuQGF3ZnVsaGFrLm9yZz6JAJUDBRA3Fjs4H3+p
-CANY/L0BAZOxBACTZ1zPdaJzEdT4AfrebQbaU4ytEeodnVXZIkc8Il+LDlDOUAIe
-k5PgnHTRM4yiwcZuYQrCDRFgdOofcFfRo0PD7mGFzd22qPGmbvHiDBCYCyhlkPXW
-IDeoA1cX77JlU1NFdy0dZwuX7csaMlpjCkOPc7+856mr6pQi48zj7yZtrYkAlQMF
-EDcUqZ2dZ0EADG4SFQEBEm0EAL2bBNc4vpxPrg3ATdZ/PekpL6lYj3s9pBf8f7eY
-LXq438A/ywiWkrL74gXxcZ2Ey9AHZW+rbJPzUbrfMAgP3uWobeSvDyKRo1wtKnTY
-Hy+OEIbBIHDmIUuK3L7KupBf7WAI46Q7fnyz0txvtRruDjvfoyl9/TSRfIKcaw2a
-INh7iQCVAwUQNwyWpmdKPfFUsXG5AQEIrAQAmukv2u9ihcnO2Zaak265I+gYozu+
-biAngdXNfhTGMeExFzdzQ8Qe7EJugMpIDEkJq2goY35sGitD+ogSVWECjcVbHIAP
-M2u9axFGlK7fDOmmkH2ZWDMtwx2I5dZps3q2g9mY2O9Az5Yokp7GW7viSpWXHTRH
-xOsuY6aze71U7RWJAHUDBRA3DAEvDuwDH3697LEBAWRHAv9XXkub6mir/DCxzKI2
-AE3tek40lRfU6Iukjl/uzT9GXcL3uEjIewiPTwN+k4IL+qcCEdv8WZgv/tO45r59
-IZQsicNaSAsKX/6Cxha6Hosg1jw4rjdyz13rgYRi/nreq5mJAJUDBRA2r0CM9p+f
-Pnxlu7UBAYObA/40s5SwEpXTrePO78AoUFEa5Z4bgyxkpT7BVbq6m/oQtK509Xe2
-M2y0XTLkd86oXpjyKzGzWq8T6ZTKNdF9+5LhS2ylJytdPq1AjDk2BocffWX4+pXn
-RPiC6XcNdYGiQL8OTHvZESYQDiHeMfwA8WdMzFK1R80nJMwANYXjJJrLzYkAlQMF
-EDNt51zvs7EFZlNtbQEBW0UD/jZB6UDdEFdhS0hxgahv5CxaQDWQbIEpAY9JL1yg
-d1RWMKUFGXdRkWZmHEA4NvtwFFeam/HZm4yuGf8yldMyo84loTcVib7lKh4CumGx
-FT5Pxeh/F8u9EeQzclRFSMhVl0BA2/HEGyjw0kbkprI/RD3pXD7ewTAUrj2O3XhE
-InLgiQCVAwUQM3O9vWyr6JZzEUkFAQF9nAP9Hco0V/3Kl70N5ryPVgh41nUTd7Td
-6fUjx8yPoSZLX8vVZ8XMyd8ULFmzsmA+2QG4HcKo/x/4s50O3o8c+o1qSYj0Tp+K
-4Z8lneMVlgBNdrRcq4ijEgk0qGqSlsXyLElkVPEXAADBVgzf6yqvipDwXNVzl6e3
-GPLE8U2TAnBFZX6JAJUDBRAzZqIFDu2852ZqdCEBATsuBACI3ofP7N3xuHSc7pWL
-NsnFYVEc9utBaclcagxjLLzwPKzMBcLjNGyGXIZQNB0d4//UMUJcMS7vwZ8MIton
-VubbnJVHuQvENloRRARtarF+LC7OLMCORrGtbt0FtYgvBaqtgXlNcKXD6hRT+ghR
-bi3q34akA7Xw8tiFIxdVgSusALQjQnJpYW4gU29tZXJzIDxicmlhbkB1ay5GcmVl
-QlNELm9yZz6JAJUDBRA3FLWcnWdBAAxuEhUBAcYYBACos9nKETuaH+z2h0Ws+IIY
-mN9FEm8wpPUcQmX5GFhfBUQ+rJbflzv0jJ/f2ac9qJHgIIAlJ3pMkfMpU8UYHEuo
-VCe4ZTU5sr4ZdBaF9kpm2OriFgZwIv4QAi7dCMu9ZwGRtZ3+z3DQsVSagucjZTIe
-yTUR6K+7E3YXANQjOdqFZYkAlQMFEDcUpeQO7bznZmp0IQEB4HED/Ru3NjwWO1gl
-xEiLTzRpU31Rh1Izw1lhVMVJkLAGBw9ieSkjvdIkuhqV1i+W4wKBClT0UOE28Kjp
-WbBKPFIASRYzN4ySwpprsG5H45EFQosovYG/HPcMzXU2GMj0iwVTxnMq7I8oH588
-ExHqfEN2ARD3ngmB2499ruyGl26pW/BftCBCcmlhbiBTb21lcnMgPGJyaWFuQE9w
-ZW5CU0Qub3JnPokAlQMFEDcUtW6dZ0EADG4SFQEBQwsD/j9B/lkltIdnQdjOqR/b
-dOBgJCtUf905y6kD+k4kbxeT1YAaA65KJ2o/Zj+i+69F2+BUJ/3kYB7prKwut2h0
-ek1ZtncGxoAsQdFJ5JSeMkwUZ5qtGeCmVPb59+KPq3nU6p3RI8Bn77FzK//Qy+IW
-/WFVJbf/6NCNCbyRiRjPbGl/iQCVAwUQNxSlyA7tvOdmanQhAQFzMAP/dvtsj3yB
-C+seiy6fB/nS+NnKBoff3Ekv57FsZraGt4z9n4sW61eywaiRzuKlhHqrDE17STKa
-fBOaV1Ntl7js7og5IFPWNlVh1cK+spDmd655D8pyshziDF6fSAsqGfTn35xl23Xj
-O20MMK44j4I5V6rEyUDBDrmX49J56OFkfwa0IEJyaWFuIFNvbWVycyA8YnJpYW5A
-RnJlZUJTRC5vcmc+iQCVAwUQNxS1Y51nQQAMbhIVAQHPBQP+IMUlE4DtEvSZFtG4
-YK9usfHSkStIafh/F/JzSsqdceLZgwcuifbemw79Rhvqhp0Cyp7kuI2kHO3a19kZ
-3ZXlDl3VDg41SV/Z5LzNw9vaZKuF/vtGaktOjac5E5aznWGIA5czwsRgydEOcd8O
-VPMUMrdNWRI6XROtnbZaRSwmD8aJAJUDBRA3FKWuDu2852ZqdCEBAWVJA/4x3Mje
-QKV+KQoO6mOyoIcD4GK1DjWDvNHGujJbFGBmARjr/PCm2cq42cPzBxnfRhCfyEvN
-aesNB0NjLjRU/m7ziyVn92flAzHqqmU36aEdqooXUY2T3vOYzo+bM7VtInarG1iU
-qw1G19GgXUwUkPvy9+dNIM/aYoI/e0Iv3P9uug==
-=R3k0
------END PGP PUBLIC KEY BLOCK-----</programlisting>
- </sect2>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/policies/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/policies/chapter.sgml
deleted file mode 100644
index 17781d440a..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/policies/chapter.sgml
+++ /dev/null
@@ -1,404 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.7
--->
-
-<chapter id="policies">
- <title>Gestion de l'arborescence des sources</title>
-
- <para><emphasis>Contribution de &a.phk;.</emphasis></para>
- &trans.a.haby;
-
- <para>Ce document d&eacute;crit diff&eacute;rents principes et recommandations
- en vigueur pour la gestion de l'arborescence des sources de FreeBSD.</para>
-
- <sect1 id="policies-maintainer">
- <title><makevar>MAINTAINER</makevar> dans les
- <filename>Makefile</filename>s</title>
-
- <para>Juin 1996.</para>
-
- <para>Si un sous-ensemble particulier de la distribution de FreeBSD est
- maintenu par une personne ou un groupe de personne, ils peuvent le
- faire savoir &agrave; l'ext&eacute;rieur en ajoutant une
- ligne&nbsp;:</para>
-
- <programlisting>
-MAINTAINER= email-addresses
- </programlisting>
-
- <para>aux <filename>Makefile</filename>s correspondant &agrave; cette partie
- de l'arborescence.</para>
-
- <para>Cela signifie que&nbsp;:</para>
-
- <para>La personne d&eacute;tient et assume la responsabilit&eacute de ce
- code. Ce qui veut dire qu'il est responsable de la corrections des bogues
- et des r&eacute;ponses aux rapports d'anomalie se rapportant &agrave; ce
- code, et, dans le cas de logiciels d'origine ext&eacute;rieure, du suivi
- des nouvelles versions, selon les besoins.</para>
-
- <para>Les modifications dans les r&eacute;pertoires pour lesquels il existe
- un responsable de la maintenance devront &ecirc;tre transmises &agrave; ce
- responsable pour qu'il les passe en revue. Il n'est admis
- d'int&eacute;grer de modifications sans passer par cette &eacute;tape
- qu'aux seuls cas o&ugrave; le responsable ne r&eacute;pond pas dans un
- d&eacute;lai acceptable, et apr&egrave;s plusieurs courriers
- &eacute;lectroniques. Il est cependant sugger&eacute; d'insister et de
- faire en sorte que les modifications soient revues par quelqu'un d'autre,
- si c'est possible.</para>
-
- <para>Il n'est bien s&ucirc;r pas acceptable d'ajouter une personne ou un
- groupe de personnes comme responsable de la maintenance, s'ils ne sont pas
- d'accord pour assumer cette obligation. D'un autre c&ocirc;t&eacute;, il
- n'est pas n&eacute;cessaire que ce soit une personne ayant les droits
- d'&eacute;criture dans
- l'arborescence&nbsp;-&nbsp;&ldquo;<foreignphrase>committer</foreignphrase>&rdquo;&nbsp;-&nbsp;et
- ce peut sans probl&egrave;me &ecirc;tre un groupe de personnes.</para>
- </sect1>
-
- <sect1>
- <title>Logiciels de provenance
- ext&eacute;rieure&nbsp;-&nbsp;&ldquo;contribu&eacute;s&rdquo;</title>
-
- <para><emphasis>Contribution de &a.phk; et &a.obrien;.</emphasis></para>
-
- <para>Juin 1996.</para>
-
- <para>Certaines parties de la distribution de FreeBSD consistent en
- logiciels qui sont activement maintenus ext&eacute;rieurement au projet
- FreeBSD. Pour des raisons historiques, on appelle cela des logiciels
- <emphasis>contribu&eacute;s</emphasis>. Perl, gcc et patch en sont des
- exemples.</para>
-
- <para>Ces deux derni&egrave;res ann&eacute;es, nous avons employ&eacute;
- diff&eacute;rentes m&eacute;thodes pour g&eacute;rer ce type de logiciels, elles ont toutes leurs avantages et leurs inconv&eacute;nients. Aucune ne
- s'est av&eacute;r&eacute;e incontestablement meilleure.</para>
-
- <para>De ce fait, apr&egrave;s discussion, une de ces m&eacute;thode a
- &eacute;t&eacute; retenue comme m&eacute;thode &ldquo;officielle&rdquo; et
- devra &ecirc;tre utilis&eacute;e pour les prochaines adjonctions de
- logiciels de ce type. De plus, il est fortement sugg&eacute;r&eacute; que
- les logiciels d&eacute;j&agrave; int&eacute;gr&eacute;s convergent avec le
- temps vers cette m&eacute;thode, parce qu'elle pr&eacute;sente des
- avantages significatifs sur l'ancienne m&eacute;thode, dont la
- possibilit&eacute; pour chacun d'obtenir facilement des
- <filename>diff</filename>s avec les versions &ldquo;officielles&rdquo; du
- source (m&ecirc;me sans acc&egrave;s cvs). Cela rendra beaucoup plus
- facile la communication en retour des modifications aux
- d&eacute;veloppeurs d'origine des logiciels.</para>
-
- <para>Au final, n&eacute;anmoins, tout d&eacute;pend des personnes qui ont
- en charge la maintenance. Si ce mod&egrave;le est particuli&egrave;rement
- mal adapt&eacute; au paquetage concern&eacute;, il peut y avoir des
- exceptions &agrave; ces r&egrave;gles, &agrave; condition expresse
- d'approbation par l'&eacute;quipe de base et de consensus
- g&eacute;n&eacute;ral des autres d&eacute;veloppeurs, la
- maintenabilit&eacute; ult&eacute;rieure du paquetage &eacute;tant le
- principal crit&egrave;re de d&eacute;cision.</para>
-
- <note>
- <para>Du fait de limitations malheureuses de conception du format des
- fichiers RCS et de l'utilisation par CVS des branches d'origine, les
- modifications mineures, triviales et/ou cosm&eacute;tiques sont
- <emphasis>fortement d&eacute;courag&eacute;es</emphasis> sur les
- fichiers qui sont toujours g&eacute;r&eacute;s sur la branche
- d'origine. Les fichiers de &ldquo;localisation&rdquo; sont explicitement
- inclus ici dans la cat&eacute;gorie &ldquo;cosm&eacute;tique&rdquo; et
- ne doivent pas avoir de num&eacute;ros de r&eacute;vision
- <literal>1.1.x.x</literal>. La modification d'un seul caract&egrave;re
- peut congestionner de fa&ccedil;on relativement dramatique l'ensemble
- des archives.</para>
- </note>
-
- <para>Nous utiliserons le langage de programmation
- <application>Tcl</application> pour illustrer la fa&ccedil;on dont ce
- mod&egrave;le s'applique&nbsp;:</para>
-
- <para><filename>src/contrib/tcl</filename> contient le source tel qu'il est
- distribu&eacute; par les gens qui maintiennent ce paquetage. Les parties
- qui ne s'appliquent pas du tout &agrave; FreeBSD peuvent &ecirc;tre
- supprim&eacute;es. Dans le cas de Tcl, les sous-r&eacute;pertoires
- <filename>mac</filename>, <filename>win</filename> et
- <filename>compat</filename> ont &eacute;t&eacute; &eacute;limin&eacute;s
- avant l'importation.</para>
-
- <para><filename>src/lib/libtcl</filename> ne contient qu'un
- <filename>Makefile</filename> de &ldquo;style bmake&rdquo; qui utilise les
- r&egrave;gles standard de <filename>bsd.lib.mk</filename> pour
- g&eacute;n&eacute;rer la biblioth&egrave;que et installer la
- documentation.</para>
-
- <para><filename>src/usr.bin/tclsh</filename> ne contient qu'un
- <filename>Makefile</filename> de &ldquo;style bmake&rdquo; qui
- g&eacute;n&egrave;re et installe le programme
- <command>tclsh</command> et les pages de manuel correspondantes en
- utilisant les r&egrave;gles standard de
- <filename>bsd.prog.mk</filename>.</para>
-
- <para><filename>src/tools/tools/tcl_bmake</filename> contient une paire de
- proc&eacute;dures qui peuvent &ecirc;tre utiles quand il faut mettre
- &agrave; jour le logiciel Tcl. Elles ne font pas partie du logiciel
- compil&eacute; et install&eacute;.</para>
-
- <para>L'important ici est que le r&eacute;pertoire
- <filename>src/contrib/tcl</filename> est cr&eacute;&eacute; en respectant
- les r&egrave;gles suivantes&nbsp;: il est suppos&eacute; contenir les
- sources tels que distribu&eacute;s (sur une branche CVS d'origine ad hoc
- et sans extensions RCS des mots-cl&eacute;s) avec aussi peu de
- modifications sp&eacute;cifiques &agrave; FreeBSD que possible. L'outil
- d'&ldquo;importation facile&rdquo; sur <hostid>freefall</hostid>
- aidera &agrave; importer le logiciel, mais, au moindre doute, il est
- imp&eacute;ratif de se renseigner auparavant et de ne pas aller &agrave;
- l'aveuglette en esp&eacute;rant que &ldquo;cela marchera&rdquo;. CVS ne
- pardonne pas les erreurs d'importation et il n'est pas trivial de
- r&eacute;cup&eacute;rer d'erreurs majeures.</para>
-
- <para>Du fait des limitations conceptuelles d&eacute;j&agrave;
- mentionn&eacute;es des branches d'origine de CVS, les correctifs
- &ldquo;officiels&rdquo; du distributeur doivent &ecirc;tre
- appliqu&eacute;s aux sources d'origine et le r&eacute;sultat
- r&eacute;import&eacute; dans la branche principale. Ces correctifs
- officiels ne doivent jamais &ecirc;tre appliqu&eacute;s aux versions
- extraites pour FreeBSD et &ldquo;soumis&rdquo; ensuite, parce que cela
- d&eacute;truit la coh&eacute;rence de la branche d'origine et rend
- l'importation des versions ult&eacute;rieures assez difficile, parce qu'il
- y aura des conflits.</para>
-
- <para>Comme de nombreux paquetages contiennent des fichiers
- d&eacute;di&eacute;s &agrave; la compatibilit&eacute; avec d'autres
- architectures et environnements que FreeBSD, il est admissible de
- supprimer les parties de la distribution qui ne concernent pas FreeBSD
- pour gagner de la place. Les fichiers qui contiennent les notices de
- <foreignphrase>copyright</foreignphrase> et des informations du type
- &ldquo;notes de version&rdquo; qui s'appliquent aux autres fichiers ne
- doivent <emphasis>pas</emphasis> &ecirc;tre supprim&eacute;s.</para>
-
- <para>Si cela s'av&egrave;re plus facile, les <filename>Makefile</filename>s
- <command>bmake</command> de l'arborescence de la distribution peuvent
- &ecirc;tre g&eacute;n&eacute;r&eacute;s avec un utilitaire, ce qui peut
- le cas &eacute;ch&eacute;ant faciliter les mont&eacute;es de version. Si
- tel est le cas, veillez &agrave; administrer ces utilitaires (si besoin
- est) dans le r&eacute;pertoire <filename>src/tools</filename> en
- m&ecirc;me temps que le logiciel lui-m&ecirc;me, de sorte qu'ils soient
- disponibles pour les personnes qui assureront par la suite la
- maintenance.</para>
-
- <para>Dans le r&eacute;pertoire <filename>src/contrib/tcl</filename>, il
- faut ajouter un fichier appel&eacute; <filename>FREEBSD-upgrade</filename> qui mentionne des choses telles que&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Quels fichiers ont &eacute;t&eacute; laiss&eacute;s de
- c&ocirc;t&eacute;,</para>
- </listitem>
-
- <listitem>
- <para>O&ugrave; a &eacute;t&eacute; obtenue la distribution originale
- et/ou quel est le site principal officiel,</para>
- </listitem>
-
- <listitem>
- <para>O&ugrave; r&eacute;adresser les correctifs &agrave; l'auteur
- original,</para>
- </listitem>
-
- <listitem>
- <para>Eventuellement un r&eacute;sum&eacute; des modifications
- apport&eacute;es propres &agrave; FreeBSD.</para>
- </listitem>
- </itemizedlist>
-
- <para>Cependant, n'importez pas <filename>FREEBSD-upgrade</filename> en
- m&ecirc;me temps que le source du logiciel. Vous devriez plut&ocirc;t
- effectuer un <command>cvs add FREEBSD-upgrade ; cvs ci</command>
- apr&egrave;s le premier <command>import</command>. Voici par exemple
- ce que cela donne pour <filename>src/contrib/cpio</filename>
- <footnote><para>Traduction&nbsp;:</para>
- <programlisting>
-
-Ce r&eacute;pertoire contient les sources d'origine non modifi&eacute;s sur la
-branche &ldquo;d'origine&rdquo;. N'essayez en aucun cas de mettre &agrave; jour
-les fichiers de ce r&eacute;pertoire via des correctifs et un &ldquo;commit&rdquo;
-cvs. Les nouvelles versions ou les versions officiellement
-rectifi&eacute;es doivent &ecirc;tre import&eacute;es. N'oubliez pas d'importer
-avec l'option &ldquo;-ko&rdquo; pour ne pas &eacute;craser les IDentifiants
-RCS d'origine.
-
-A l'importation de GNU cpio 2.4.2, les fichiers suivants ont &eacute;t&eacute;
-&eacute;limin&eacute;s&nbsp;:
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INSTALL cpio.info mkdir.c
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makefile.in cpio.texi mkinstalldirs
-
-Pour passer &agrave; une nouvelle version de cpio, quand elle sera disponible&nbsp;:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. D&eacute;compactez la nouvelle version dans un sous-r&eacute;pertoire vide
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Ne modifiez en AUCUN cas les fichiers.]
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. Supprimez les fichiers list&eacute;s ci-dessus et tous autres fichiers
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qui ne s'appliquent pas &agrave; FreeBSD.
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. Utilisez la commande&nbsp;:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvs import -ko -m 'Virgin import of GNU cpio v&lt;version&gt;' \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src/contrib/cpio GNU cpio_&lt;version&gt;
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Voici par example comment j'ai import&eacute; la version 2.4.2 de cpio&nbsp;:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvs import -ko -m 'Virgin import of GNU v2.4.2' \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src/contrib/cpio GNU cpio_2_4_2
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4. Suivez les instructions affich&eacute;es &agrave; l'&eacute;tape 3 pour r&eacute;soudre les
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conflits entre les modifications locales pour FreeBSD et la
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nouvelle version.
-
-Ne d&eacute;viez en aucun cas de cette proc&eacute;dure.
-
-Pour appliquer les modifications locales &agrave; cpio, &ldquo;patchez&rdquo;
-simplement et soumettez sur la branche principale (aka HEAD).
-N'appliquez jamais les modifications locales &agrave; la branche GNU.
-
-Toutes les modifications locales doivent &ecirc;tre soumises &agrave;
-&ldquo;cpio@gnu.ai.mit.edu&rdquo; pour inclusion dans la prochaine
-version originale.
-
-obrien@freebsd.org - 30 Mars 1997
- </programlisting></footnote>&nbsp;:</para>
-
- <programlisting>
-This directory contains virgin sources of the original distribution files
-on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
-the files in this directory via patches and a cvs commit. New versions or
-official-patch versions must be imported. Please remember to import with
-"-ko" to prevent CVS from corrupting any vendor RCS Ids.
-
-For the import of GNU cpio 2.4.2, the following files were removed:
-
-INSTALL cpio.info mkdir.c
-Makefile.in cpio.texi mkinstalldirs
-
-To upgrade to a newer version of cpio, when it is available:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. Unpack the new version into an empty directory.
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Do not make ANY changes to the files.]
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. Remove the files listed above and any others that don't apply to
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FreeBSD.
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. Use the command:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvs import -ko -m 'Virgin import of GNU cpio v&lt;version&gt;' \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src/contrib/cpio GNU cpio_&lt;version&gt;
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For example, to do the import of version 2.4.2, I typed:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvs import -ko -m 'Virgin import of GNU v2.4.2' \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src/contrib/cpio GNU cpio_2_4_2
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4. Follow the instructions printed out in step 3 to resolve any
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conflicts between local FreeBSD changes and the newer version.
-
-Do not, under any circumstances, deviate from this procedure.
-
-To make local changes to cpio, simply patch and commit to the main
-branch (aka HEAD). Never make local changes on the GNU branch.
-
-All local changes should be submitted to "cpio@gnu.ai.mit.edu" for
-inclusion in the next vendor release.
-
-obrien@freebsd.org - 30 March 1997
- </programlisting>
- </sect1>
-
- <sect1 id="policies-shlib">
- <title>Biblioth&egrave;ques partag&eacute;es</title>
-
- <para><emphasis>Contribution de &a.asami;, &a.peter;, and &a.obrien; 9
- D&eacute;cembre 1996.</emphasis></para>
-
- <para>Si vous ajoutez &agrave; des logiciels port&eacute;s ou d'autres
- logiciels, le support des biblioth&egrave;ques partag&eacute;es qu'ils
- n'ont pas encore, les num&eacute;ros de version des biblioth&egrave;ques
- doivent suivre les r&egrave;gles ci-dessous. De fa&ccedil;on
- g&eacute;n&eacute;rale, ces num&eacute;ros n'ont pas de rapport avec les
- num&eacute;ros de version du logiciel.</para>
-
- <para>Les trois principes de g&eacute;n&eacute;ration des
- biblioth&egrave;ques partag&eacute;es sont&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Commencez &agrave; <literal>1.0</literal>,</para>
- </listitem>
-
- <listitem>
- <para>Si la modification est r&eacute;tro-compatible, augmentez le
- num&eacute;ro de version mineure,</para>
- </listitem>
-
- <listitem>
- <para>Si la modification est incompatible avec les versions
- ant&eacute;rieures, augmentez le num&eacute;ro de version
- majeure.</para>
- </listitem>
- </itemizedlist>
-
- <para>Par exemple, l'ajout de fonctions et les corrections de bogues
- r&eacute;sultent en une incr&eacute;mentation du num&eacute;ro de version
- mineure, alors que la suppression de fonctions ou la modification de
- syntaxes d'appel de fonctions imposent un changement de num&eacute;ro de
- version majeure.</para>
-
- <para>Tenez-vous en &agrave; des num&eacute;ros de version de la forme
- majeure.mineure
- (<replaceable>x</replaceable>.<replaceable>y</replaceable>). Notre
- &eacute;diteur de liens dynamiques ne g&egrave;re pas tr&egrave;s bien
- les num&eacute;ros de version de la forme
- <replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>.
- Tout num&eacute;ro de version apr&egrave;s le
- <replaceable>y</replaceable> (i.e., le troisi&egrave;me chiffre) est
- totalement ignor&eacute; lors de la comparaison des num&eacute;ros de
- version des biblioth&egrave;ques partag&eacute;es pour d&eacute;cider
- avec quelle biblioth&egrave;que effectuer le lien. Si deux
- biblioth&egrave;ques partag&eacute;es diff&egrave;rent d'une
- &ldquo;micro&rdquo; r&eacute;vision, <command>ld.so</command> fera le lien
- avec la plus &eacute;lev&eacute;e. I.e.&nbsp;: si vous &eacute;ditez les liens
- avec <filename>libfoo.so.3.3.3</filename>, l'&eacute;diteur de liens
- n'enregistre que <literal>3.3</literal> dans les en-t&ecirc;tes, et fera
- le lien avec n'importe quoi qui commence par
- <replaceable>libfoo.so.3</replaceable>.<replaceable>(quelque chose &gt;=
- 3)</replaceable>.<replaceable>(le num&eacute;ro le plus
- &eacute;lev&eacute; disponible)</replaceable>.</para>
-
- <note>
- <para><command>ld.so</command> utilisera toujours la r&eacute;vision
- &ldquo;mineure&rdquo; la plus &eacute;lev&eacute;e. I.e.&nbsp;: il
- choisira <filename>libc.so.2.2</filename> plut&ocirc;t que
- <filename>libc.so.2.0</filename>, m&ecirc;me si le programme a
- &eacute;t&eacute; initialement li&eacute; avec
- <filename>libc.so.2.0</filename>.</para>
- </note>
-
- <para>Pour les biblioth&egrave;ques autres que celles des logiciels
- port&eacute;s, c'est aussi notre politique de ne changer de num&eacute;ro
- de version de biblioth&egrave;que partag&eacute;e qu'une seule fois par
- version de FreeBSD. Si vous modifiez une biblioth&egrave;que
- syst&egrave;me de telle sorte que cela r&eacute;clame une
- incr&eacute;mentation du num&eacute;ro de version, consultez l'historique
- des soumissions du <filename>Makefile</filename>. C'est la personne qui
- soumet qui doit s'assurer que le num&eacute;ro de version de la
- biblioth&egrave;que partag&eacute;e est bien incr&eacute;ment&eacute;
- &agrave; la premi&egrave;re modification et que les modifications
- suivantes n'y touchent plus.</para>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml
deleted file mode 100644
index 461ba197cb..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml
+++ /dev/null
@@ -1,5197 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="ports">
- <title>Installer des applications du &ldquo;Catalogue des logiciels
- port&eacute;s&rdquo;</title>
-
- <para><emphasis>Contribution de &a.jraynard;.</emphasis></para>
- &trans.a.haby;
-
- <para>Le catalogue des logiciels port&eacute;s de FreeBSD vous permet de
- compiler et d'installer une grande vari&eacute;t&eacute; d'applications avec
- un minimum d'efforts.</para>
-
- <para>Malgr&eacute; toutes les d&eacute;clarations exag&eacute;r&eacute;es sur les standards ouverts,
- faire fonctionner un programme sur diff&eacute;rentes versions d'Unix
- peut en r&eacute;alit&eacute; &ecirc;tre fastidieux et d&eacute;licat, comme tous ceux qui
- ont essay&eacute; le savent. Vous aurez peut-&ecirc;tre la chance d'arriver
- &agrave; compiler, installer o&ugrave; il faut et ex&eacute;cuter sans incident le
- programme que vous voulez &ldquo;tel quel&rdquo;, mais c'est
- malheureusement assez rare. Dans la plupart des cas, vous devrez
- vous creuser un peu la t&ecirc;te, et il y a un certain nombre de programmes
- qui vous donneront pr&eacute;maturement des cheveux blancs, ou m&ecirc;me une
- calvitie chronique...</para>
-
- <para>Certaines distributions de logiciels ont r&eacute;solu ce probl&egrave;me
- en fournissant des proc&eacute;dures de configuration. Certaines sont tr&egrave;s
- sophistiqu&eacute;es, mais ont une f&acirc;cheuse tendance &agrave; vous annoncer
- triomphalement que votre syst&egrave;me est d'une esp&egrave;ce dont vous n'avez
- jamais entendu parler et &agrave; vous poser un tas de questions qui
- ressemblent plus &agrave; un examen de programmation syst&egrave;me Unix.
- <literal>(La fonction gethitlist de votre syst&egrave;me vous rend-elle un
- pointeur const sur un schmilblick ou un pointeur sur un schmilblick
- const? Avez-vous la gestion des exceptions inconnues de style
- Foonix? Et sinon, pourquoi?)</literal></para>
-
- <para>Heureusement, gr&acirc;ce au catalogue des logiciels port&eacute;s, tout le
- travail p&eacute;nible a d&eacute;j&agrave; &eacute;t&eacute; fait, et il vous suffit de taper
- <command>make install</command> pour avoir un logiciel qui
- fonctionne.</para>
-
- <sect1>
- <title>Pourquoi un catalogue des logiciels port&eacute;s?</title>
-
- <para>Le syst&egrave;me FreeBSD de base comporte une grande vari&eacute;t&eacute; d'outils
- et d'utilitaires syst&egrave;me, mais de nombreux logiciels d'usage
- courant n'en font pas partie, et il y a de bonnes raisons &agrave;
- cela:</para>
-
- <orderedlist>
-
- <listitem>
- <para>Il y a des programmes dont certains ne peuvent se passer
- et que d'autres ne peuvent pas voir en peinture, un certain
- &eacute;diteur bas&eacute; sur Lisp, par exemple.</para>
- </listitem>
-
- <listitem>
- <para>Certains programmes sont trop sp&eacute;cialis&eacute;s pour faire partie
- du syst&egrave;me de base (Conception Assist&eacute;e par Ordinateur, bases de donn&eacute;es).</para>
- </listitem>
-
- <listitem>
- <para>Les programmes de la cat&eacute;gorie &ldquo;Je devrais y jeter
- un coup d'oeil quand j'aurais cinq minutes&rdquo;, et qui n'ont
- rien d'indispensable (certains langages, peut-&ecirc;tre).</para>
- </listitem>
-
- <listitem>
- <para>Les programmes qui sont bien trop amusants pour &ecirc;tre fournis
- avec un syst&egrave;me d'exploitation s&eacute;rieux comme FreeBSD ;-)</para>
- </listitem>
-
- <listitem>
- <para>Peut importe la quantit&eacute; de programmes fournis de base,
- les gens en veulent toujours plus, et il faut d&eacute;finir une
- s&eacute;paration quelque part (sans quoi les distributions de FreeBSD
- deviendraient absolument &eacute;normes).</para>
- </listitem>
-
- </orderedlist>
-
- <para>Il serait &eacute;videmment irr&eacute;aliste d'attendre que chacun porte
- ses programmes favoris &agrave; la main (sans mentionner la quantit&eacute;
- invraisemblable de travail refait &agrave; chaque fois), le Projet
- FreeBSD a donc mis en place une m&eacute;thode ing&eacute;nieuse d'utilisation
- d'outils standard pour automatiser le processus.</para>
-
- <para>C'est, au passage, une excellente illustration de la
- &ldquo;mani&egrave;re Unix&rdquo; de faire en combinant un jeu
- d'outils simples mais souples pour arriver &agrave; un m&eacute;canisme
- tr&egrave;s puissant.</para>
-
- </sect1>
-
- <sect1>
- <title>Comment fonctionne le catalogue des logiciels port&eacute;s?</title>
-
- <para>Les logiciels sont typiquement distribu&eacute;s sur l'Internet sous
- forme d'<link linkend="ports-tarball">archives</link> incluant un
- fichier <filename>Makefile</filename>, le code source du programme
- et habituellement quelques instructions (qui ne sont pas toujours
- aussi instructives qu'elles pourraient l'&ecirc;tre), avec peut-&ecirc;tre aussi
- une proc&eacute;dure de configuration.</para>
-
- <para>Le sc&eacute;nario standard consiste &agrave; t&eacute;l&eacute;charger l'archive par FTP,
- l'extraire quelque part, parcourir les instructions, faire les
- modifications qui vous paraissent n&eacute;cessaires, lancer la proc&eacute;dure
- de configuration pour mettre tout au point et utiliser la commande
- <command>make</command> habituelle pour compiler et installer le
- programme &agrave; partir du source.</para>
-
- <para>Les logiciels port&eacute;s de FreeBSD utilisent toujours le m&eacute;canisme
- des archives, mais se servent d'un
- <link linkend="ports-skeleton">squelette</link> qui renferme
- la &ldquo;connaissance&rdquo; n&eacute;cessaire pour pouvoir obtenir un
- logiciel utilisable sous FreeBSD, plut&ocirc;t que d'attendre de
- l'utilisateur qu'il se d&eacute;brouille. Ils comportent aussi leurs
- propres
- <link linkend="ports-makefile"><filename>Makefile</filename>s</link>,
- de sorte que presque tous les logiciels port&eacute;s se compilent et
- s'installent de la m&ecirc;me fa&ccedil;on.</para>
-
- <para>Si vous regardez le squelette pour un logiciel port&eacute; (soit sur
- <ulink url="file://localhost/usr/ports/devel/ElectricFence">votre
- machine FreeBSD</ulink>, soit sur <ulink
- url="ftp://ftp.freebsd.org/pub/FreeBSD/ports/devel/ElectricFence">le
- site FTP</ulink>), et esp&eacute;rez y trouver toutes sortes de techniques
- d'avant-garde, vous serez d&eacute;&ccedil;u par les quelques fichiers et
- r&eacute;pertoires sans &eacute;clat que vous y verrez. (Nous parlerons bient&ocirc;t de
- la fa&ccedil;on de <link linkend="ports-getting">Se procurer un logiciel
- port&eacute;</link>).</para>
-
- <para>Je vous entends d'ici: &ldquo;Comment diable cela peut-il arriver
- &agrave; faire quoi que ce soit? Le code source n'y est m&ecirc;me
- pas!&rdquo;</para>
-
- <para>Ne craignez rien, aimable lecteur, tout va s'&eacute;clairer
- (esp&eacute;rons-le). Examinons ce qui se passe lorsque nous essayons
- d'installer un logiciel port&eacute;. J'ai choisi
- <application>ElectricFence</application>, un bon outil pour les
- d&eacute;veloppeurs, car son squelette est plus explicite que la
- plupart.</para>
-
- <note>
- <para>Si vous essayez de le faire chez vous, vous devez &ecirc;tre
- super-utilisateur.</para>
- </note>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports/devel/ElectricFence</userinput>
-&prompt.root; <userinput>make install</userinput>
-&gt;&gt; Checksum OK for ElectricFence-2.0.5.tar.gz.
-===&gt; Extracting for ElectricFence-2.0.5
-===&gt; Patching for ElectricFence-2.0.5
-===&gt; Applying FreeBSD patches for ElectricFence-2.0.5
-===&gt; Configuring for ElectricFence-2.0.5
-===&gt; Building for ElectricFence-2.0.5
-[une tonne de r&eacute;sultats de compilation...]
-===&gt; Installing for ElectricFence-2.0.5
-===&gt; Warning: your umask is "0002". If this is not desired, set it to
- an appropriate value and install this port again by ``make reinstall''.
-install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.a /usr/local/lib
-install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.3 /usr/local/man/man3
-===&gt; Compressing manual pages for ElectricFence-2.0.5
-===&gt; Registering installation for ElectricFence-2.0.5</screen>
- </informalexample>
-
- <para>Pour &eacute;viter la confusion, je n'ai pas donn&eacute; les r&eacute;sultats de la
- compilation.</para>
-
- <para>Si vous avez essay&eacute; de votre c&ocirc;t&eacute;, vous avez peut-&ecirc;tre obtenu au
- d&eacute;but quelque chose du genre:</para>
-
- <informalexample id="ports-fetch">
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; ElectricFence-2.0.5.tar.gz doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from
- ftp://ftp.doc.ic.ac.uk/Mirrors/sunsite.unc.edu/pub/Linux/devel/lang/c/.</screen>
- </informalexample>
-
- <para>Le programme <command>make</command> s'est rendu compte que vous
- n'aviez pas de copie locale du source et a essay&eacute; de le t&eacute;l&eacute;charger
- pour pouvoir continuer son travail. J'avais d&eacute;j&agrave; le source, il n'a
- donc pas eu besoin d'aller le chercher.</para>
-
- <para>Continuons et voyons ce que le programme <command>make</command>
- a fait:</para>
-
- <procedure>
-
- <step>
- <para>Localiser l'<link linkend="ports-tarball">archive</link>
- du code source. Si elle n'est pas localement disponible, aller
- la chercher sur un site FTP.</para>
- </step>
-
- <step>
- <para>Lancer un test de la <link linkend="ports-checksum">somme de
- contr&ocirc;le</link> sur le fichier d'archive pour s'assurer qu'il
- a bien &eacute;t&eacute; r&eacute;cup&eacute;r&eacute;, et non accidentellement tronqu&eacute;,
- t&eacute;l&eacute;charg&eacute; en mode ASCII, ou bombard&eacute; de neutrinos pendant le
- transfert.</para>
- </step>
-
- <step>
- <para>Extraire l'archive dans un r&eacute;pertoire temporaire.</para>
- </step>
-
- <step>
- <para>Appliquer les
- <link linkend="ports-patch">&ldquo;patches&rdquo;</link>&nbsp;-&nbsp;mises
- &agrave; jour&nbsp;-&nbsp;n&eacute;cessaires &agrave; la compilation et &agrave; l'ex&eacute;cution
- sous FreeBSD.</para>
- </step>
-
- <step>
- <para>Lancer les proc&eacute;dures de configuration n&eacute;cessaires &agrave; la
- compilation et r&eacute;pondre correctement aux questions
- pos&eacute;es.</para>
- </step>
-
- <step>
- <para>(Finalement!) Compiler le code.</para>
- </step>
-
- <step>
- <para>Installer le programme ex&eacute;cutable et les autres fichiers
- qui vont avec, pages de manuel, etc. dans un sous-r&eacute;pertoire de
- <filename>/usr/local</filename>, o&ugrave; ils ne se m&eacute;langeront pas
- avec vos programmes syst&egrave;me. Cela garantit aussi que tous les
- logiciels port&eacute;s soient au m&ecirc;me endroit, au lieu d'&ecirc;tre
- &eacute;parpill&eacute;s &agrave; droite et &agrave; gauche sur votre syst&egrave;me.</para>
- </step>
-
- <step>
- <para>Enregistrez l'installation dans une base de donn&eacute;es. Si vous
- ne voulez pas conserver le programme par la suite, vous pourrez
- le <link linkend="ports-remove">d&eacute;sinstaller</link> proprement
- de votre syst&egrave;me.</para>
- </step>
-
- </procedure>
-
- <para>Parcourez les r&eacute;sultats de <command>make</command> et voyez si
- vous retrouvez ces diff&eacute;rentes &eacute;tapes. Si vous n'&eacute;tiez pas encore
- impressionn&eacute;, vous devriez l'&ecirc;tre maintenant!</para>
-
- </sect1>
-
- <sect1 id="ports-getting">
- <title>Se procurer un logiciel port&eacute; pour FreeBSD</title>
-
- <para>Il y a deux fa&ccedil;ons d'obtenir la version port&eacute;e pour FreeBSD d'un
- logiciel. Il vous faut soit le <link linkend="ports-cd">CD-ROM
- FreeBSD</link>, soit une <link linkend="ports-inet">connexion
- Internet</link>.</para>
-
- <sect2 id="ports-cd">
- <title>Compiler les logiciels port&eacute;s depuis le CD-ROM</title>
-
- <para>Si vous avez r&eacute;pondu oui &agrave; la question &ldquo;Do you want to
- link the ports collection to your
- CD-ROM?&rdquo;&nbsp;-&nbsp;&ldquo;Voulez-vous cr&eacute;er un lien
- symbolique sur le catalogue des logiciels port&eacute;s du
- CD-ROM?&rdquo;&nbsp;-&nbsp;pendant la configuration de
- l'installation de FreeBSD, le programme aura d&eacute;j&agrave; effectu&eacute; &agrave; votre
- place les &eacute;tapes pr&eacute;liminaires.</para>
-
- <para>Sinon, v&eacute;rifiez que le CD-ROM <emphasis>FreeBSD</emphasis> est
- bien dans le lecteur et mont&eacute; sur, par exemple,
- <filename>/cdrom</filename>. puis tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mkdir /usr/ports</userinput>
-&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>ln -s /cdrom/ports/distfiles distfiles</userinput></screen>
- </informalexample>
-
- <para>pour que le m&eacute;canisme d'installation puisse trouver
- les archives (il s'attend &agrave; ce qu'elles soient dans le r&eacute;pertoire
- <filename>/usr/ports/distfiles</filename>, c'est la raison pour
- laquelle nous avons cr&eacute;&eacute; un lien symbolique du r&eacute;pertoire
- d'archive du CD-ROM sur ce r&eacute;pertoire).</para>
-
- <para>Supposons maintenant que nous voulions installer le programme
- <application>gnats</application> qui se trouve dans le r&eacute;pertoire
- des bases de donn&eacute;es. Voici comment nous proc&eacute;derions:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>mkdir databases</userinput>
-&prompt.root; <userinput>cp -R /cdrom/ports/databases/gnats databases</userinput>
-&prompt.root; <userinput>cd databases/gnats</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
- </informalexample>
-
- <para>Si vous utilisez s&eacute;rieusement les bases de donn&eacute;es et que vous
- voulez comparer toutes celles qui sont disponibles au catalogue,
- tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>cp -R /cdrom/ports/databases .</userinput>
-&prompt.root; <userinput>cd databases</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
- </informalexample>
-
- <para>(oui, il y a vraiment un &ldquo;.&rdquo; &agrave; la fin de la
- commande <command>cp</command>, ce n'est pas une erreur. C'est une
- &ldquo;Unixerie&rdquo; qui veut dire: &ldquo;le r&eacute;pertoire
- courant&rdquo;) et le syst&egrave;me d'installation des logiciels port&eacute;s
- compilera et installera automatiquement tous les logiciels de
- base de donn&eacute;es disponibles!</para>
-
- <para>Si cette m&eacute;thode ne vous convient pas, voici une fa&ccedil;on
- enti&egrave;rement diff&eacute;rente de faire:</para>
-
- <para>Cr&eacute;ez une &ldquo;arborescence de liens&rdquo; vers le catalogue
- en vous servant de la commande <citerefentry><refentrytitle>lndir</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- de la distribution de <emphasis>XFree86</emphasis>. Trouvez un
- endroit o&ugrave; vous avez de la place, cr&eacute;ez-y un r&eacute;pertoire et
- placez-vous dans ce r&eacute;pertoire avec <command>cd</command>. Utilisez
- maintenant la commande
- <citerefentry><refentrytitle>lndir</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- avec comme premier argument le chemin d'acc&egrave;s complet au r&eacute;pertoire
- <filename>ports</filename> du CD-ROM et un &ldquo;.&rdquo; (le
- r&eacute;pertoire courant) comme second argument. Quelque chose du
- genre:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>lndir /cdrom/ports .</userinput></screen>
- </informalexample>
-
- <para>Vous pouvez alors installer les logiciels port&eacute;s directement
- &agrave; partir du CD-ROM en le faisant depuis l'arborescence de liens que
- vous venez de cr&eacute;er.</para>
-
- <para>Remarquez que les sources d'origine de certains logiciels ne
- peuvent &ecirc;tre fournis sur le CD-ROM, pour des questions de licence.
- Dans ce cas, vous devrez vous reporter &agrave; la section
- <link linkend="ports-inet">Installer de logiciels port&eacute;s via
- une connexion Internet</link>.</para>
-
- </sect2>
-
- <sect2 id="ports-inet">
- <title>Installer des logiciels port&eacute;s via une connexion
- Internet</title>
-
- <para>Si vous n'avez pas de CD-ROM, ou voulez &ecirc;tre s&ucirc;r d'avoir
- la toute derni&egrave;re version d'un logiciel, vous devrez
- t&eacute;l&eacute;charger le <link linkend="ports-skeleton">squelette</link>
- associ&eacute; au logiciel port&eacute;. Cela peut para&icirc;tre une combine
- pleine d'emb&ucirc;ches, mais c'est en r&eacute;alit&eacute; tr&egrave;s
- simple.</para>
-
- <para>Le secret est que le serveur FTP FreeBSD peut vous g&eacute;n&eacute;rer
- des <link linkend="ports-tarball">archives</link> &agrave; la vol&eacute;e. Voici
- comment cela fonctionne, avec toujours comme exemple le programme
- <application>gnats</application> du r&eacute;pertoire des bases de donn&eacute;es
- (les textes entre crochets sont des commentaires. Ne le tapez pas
- si vous essayez cela de votre c&ocirc;t&eacute;!):</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>mkdir databases</userinput>
-&prompt.root; <userinput>cd databases</userinput>
-&prompt.root; <userinput>ftp ftp.freebsd.org</userinput>
-[ouvrez une session en tant qu'utilisateur `ftp' et donnez votre adresse
-de courrier &eacute;lectronique quand on vous demande un mot de passe. N'oubliez
-pas d'utiliser le mode binaire (appel&eacute; aussi 'image')!]
-<prompt>&gt;</prompt> <userinput>cd /pub/FreeBSD/ports/databases</userinput>
-<prompt>&gt;</prompt> <userinput>get gnats.tar</userinput>
-[archive et r&eacute;cup&egrave;re le squelette de gnats]
-<prompt>&gt;</prompt> <userinput>quit</userinput>
-&prompt.root; <userinput>tar xf gnats.tar</userinput>
-[extrait le squelette de gnats]
-&prompt.root; <userinput>cd gnats</userinput>
-&prompt.root; <userinput>make install</userinput>
-[compile et installe gnats]</screen>
- </informalexample>
-
- <para>Que se passe-t-il? Nous nous sommes connect&eacute;s comme &agrave;
- l'ordinaire au serveur FTP et sommes all&eacute;s dans son sous-r&eacute;pertoire
- des bases de donn&eacute;es. Quand nous lui
- avons donn&eacute; la commande <command>get gnats.tar</command>, le serveur
- FTP a cr&eacute;&eacute; une <link linkend="ports-tarball">archive</link> du
- r&eacute;pertoire gnats &agrave; notre usage.</para>
-
- <para>Nous avons alors extrait de cette archive le squelette pour
- gnats qu'elle contenait et sommes all&eacute;s dans le r&eacute;pertoire gnats
- pour compiler et installer le logiciel. Comme nous l'avons expliqu&eacute;
- <link linkend="ports-fetch">plus haut</link>, le processus
- d'installation s'est rendu compte que nous n'avions pas de copie
- locale des sources, en a t&eacute;l&eacute;charg&eacute; une avant de l'extraire, de la
- mettre &agrave; jour et de la compiler.</para>
-
- <para>Essayons maintenant quelque chose de plus ambitieux. Au lieu
- de r&eacute;cup&eacute;rer un seul squelette, r&eacute;cup&eacute;rons un sous-r&eacute;pertoire
- complet, par exemple, tous les squelettes pour les bases de donn&eacute;es
- du catalogue des logiciels port&eacute;s. La fa&ccedil;on de proc&eacute;der est
- quasi identique:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>ftp ftp.freebsd.org</userinput>
-[ouvrez une session en tant qu'utilisateur `ftp' et donnez votre adresse
-de courrier &eacute;lectronique quand on vous demande un mot de passe. N'oubliez
-pas d'utiliser le mode binaire (appel&eacute; aussi 'image')!]
-<prompt>&gt;</prompt> <userinput>cd /pub/FreeBSD/ports</userinput>
-<prompt>&gt;</prompt> <userinput>get databases.tar</userinput>
-[archive et r&eacute;cup&egrave;re les squelettes pour les bases de donn&eacute;es]
-<prompt>&gt;</prompt> <userinput>quit</userinput>
-&prompt.root; <userinput>tar xf databases.tar</userinput>
-[extrait les squelettes de toutes les bases de donn&eacute;es]
-&prompt.root; <userinput>cd databases</userinput>
-&prompt.root; <userinput>make install</userinput>
-[compile et installe les logiciels de base de donn&eacute;es port&eacute;s]</screen>
- </informalexample>
-
- <para>Avec une demi-douzaine de commandes &eacute;l&eacute;mentaires, nous
- disposons maintenant d'un &eacute;ventail de logiciels de base de
- donn&eacute;es sur notre machine FreeBSD. La seule diff&eacute;rence avec
- l'installation d'un seul logiciel est que nous avons r&eacute;cup&eacute;r&eacute;
- et compil&eacute; d'un seul coup tout un r&eacute;pertoire de programmes.
- Impressionnant, non?</para>
-
- <para>Si vous envisagez d'installer de nombreux logiciels port&eacute;s, cela
- vaut probablement la peine de t&eacute;l&eacute;charger tous les r&eacute;pertoires du
- catalogue.</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="ports-skeleton">
- <title>Les squelettes</title>
-
- <para>Une bande de programmeurs compulsifs qui ont oubli&eacute; de manger
- lors d'une tentative d&eacute;sesp&eacute;r&eacute;e de respecter une &eacute;ch&eacute;ance? Des choses
- d&eacute;sagr&eacute;ables hantant les sous-sols de FreeBSD? Non, un squelette est
- un environnement minimal qui contient tout ce qu'il faut pour que la
- magie des logiciels port&eacute;s fonctionne.</para>
-
- <sect2 id="ports-makefile">
- <title><filename>Makefile</filename></title>
-
- <para>Le composant le plus important d'un squelette est le fichier
- <filename>Makefile</filename>. Il contient les divers ordres qui
- pr&eacute;cisent comment le logiciel doit &ecirc;tre compil&eacute; et install&eacute;. Voici
- le <filename>Makefile</filename> pour
- <application>ElectricFence</application>:</para>
-
- <programlisting>
-# New ports collection makefile for: Electric Fence
-# Version required: 2.0.5
-# Date created: 13 November 1997
-# Whom: jraynard
-#
-# &#36;Id&#36;
-#
-
-DISTNAME= ElectricFence-2.0.5
-CATEGORIES= devel
-MASTER_SITES= ${MASTER_SITE_SUNSITE}
-MASTER_SITE_SUBDIR= devel/lang/c
-
-MAINTAINER= jraynard@freebsd.org
-
-MAN3= libefence.3
-
-do-install:
- ${INSTALL_DATA} ${WRKSRC}/libefence.a ${PREFIX}/lib
- ${INSTALL_MAN} ${WRKSRC}/libefence.3 ${PREFIX}/man/man3
-
-.include &lt;bsd.port.mk&gt;</programlisting>
-
- <para>Les lignes qui commencent par un &ldquo;#&rdquo; sont des
- commentaires &agrave; l'intention des lecteurs humains (comme dans la
- plupart des proc&eacute;dures Unix).</para>
-
- <para><literal>DISTNAME</literal> donne le nom, sans extension, de
- l'<link linkend="ports-tarball">archive</link>.</para>
-
- <para><literal>CATEGORIES</literal> indique de quel type de logiciel
- il s'agit. Dans le cas pr&eacute;sent, c'est un outil pour les
- d&eacute;veloppeurs.</para>
-
- <para><literal>MASTER_SITES</literal> est l'URL(s) du site FTP
- principal, d'o&ugrave; sera t&eacute;l&eacute;charg&eacute;
- l'<link linkend="ports-tarball">archive</link>, si elle n'est
- pas disponible sur la machine locale. C'est un site consid&eacute;r&eacute;
- comme fiable, normalement celui de la distribution officielle
- (dans la mesure o&ugrave; un logiciel peut &ecirc;tre
- &ldquo;officiellement&rdquo; distribu&eacute; sur l'Internet).</para>
-
- <para><literal>MAINTAINER</literal> est l'adresse &eacute;lectronique de
- la personne responsable de la maintenance du squelette, qui
- intervient lorsque, par exemple, il sort une nouvelle version du
- programme.</para>
-
- <para>Sautons pour l'instant quelques lignes, la ligne
- <literal>.include &lt;bsd.port.mk&gt;</literal> indique que les
- autres directives et commandes n&eacute;cessaires se trouvent dans le
- fichier g&eacute;n&eacute;rique <filename>bsd.port.mk</filename>. Comme ce sont
- les m&ecirc;mes pour tous les logiciels port&eacute;s, il n'y a pas de raison
- de les dupliquer &agrave; chaque fois, elles sont donc enregistr&eacute;es dans un
- fichier standard.</para>
-
- <para>Ce n'est probablement pas l'endroit o&ugrave; expliquer en d&eacute;tail
- comment le <filename>Makefile</filename> fonctionne; il suffit de
- pr&eacute;ciser que la ligne qui commence par <literal>MAN3</literal>
- garantit que les pages de manuel d'ElectricFence seront compress&eacute;es
- apr&egrave;s installation, pour &eacute;conomiser votre pr&eacute;cieux espace disque. Le
- logiciel d'origine ne d&eacute;finissait pas de cible
- <maketarget>install</maketarget>, les trois lignes qui commencent &agrave;
- <maketarget>do-install</maketarget> veillent &agrave; ce que les fichiers
- g&eacute;n&eacute;r&eacute;s soient bien plac&eacute;s l&agrave; o&ugrave; il faut.</para>
-
- </sect2>
-
- <sect2>
- <title>Le r&eacute;pertoire <filename>files</filename></title>
-
- <para>Le fichier qui contient la <link linkend="ports-checksum">somme
- de contr&ocirc;le</link> pour ce logiciel s'appelle
- <filename>md5</filename>, du nom de l'algorithme MD5 utilis&eacute; pour
- la calculer. Il se trouve dans un r&eacute;pertoire au nom quelque peu
- trompeur de <filename>files</filename>.</para>
-
- <para>Ce r&eacute;pertoire peut aussi contenir divers fichiers n&eacute;cessaires
- au portage et qui n'ont pas de raison particuli&egrave;re
- d'&ecirc;tre ailleurs.</para>
-
- </sect2>
-
- <sect2>
- <title>Le r&eacute;pertoire <filename>patches</filename></title>
-
- <para>Ce r&eacute;pertoire contient les <link linkend="ports-patch">mises &agrave;
- niveau</link> qu'il faut appliquer pour que tout fonctionne
- correctement sous FreeBSD.</para>
-
- </sect2>
-
- <sect2>
- <title>Le r&eacute;pertoire <filename>pkg</filename></title>
-
- <para>Ce r&eacute;pertoire contient trois fichiers assez utiles:</para>
-
- <itemizedlist>
-
- <listitem>
- <para><filename>COMMENT</filename>&nbsp;-&nbsp;une description
- en une seule ligne du logiciel.</para>
- </listitem>
-
- <listitem>
- <para><filename>DESCR</filename>&nbsp;-&nbsp;une description
- plus d&eacute;taill&eacute;e.</para>
- </listitem>
-
- <listitem>
- <para><filename>PLIST</filename>&nbsp;-&nbsp;la liste de tous
- les fichiers qui seront cr&eacute;&eacute;s quand le logiciel sera
- install&eacute;.</para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="ports-troubleshooting">
- <title>Que faire quand un portage &eacute;choue?</title>
-
- <para>Oh. Il y a quatre (4) choses que vous pouvez faire :</para>
-
- <orderedlist>
-
- <listitem>
- <para>Corriger le probl&egrave;me vous-m&ecirc;me. Vous trouverez des d&eacute;tails
- techniques sur le m&eacute;canisme des portages &agrave; la section
- <link linkend="porting">Faire vous-m&ecirc;me un portage</link>.</para>
- </listitem>
-
- <listitem>
- <para>Rousp&eacute;ter. Cela ne se fait <emphasis>que</emphasis> par
- courrrier &eacute;lectronique! adressez-vous &agrave; la &a.ports; et pr&eacute;cisez
- s'il vous pla&icirc;t le nom et la version du logiciel, sur quel site
- vous avez r&eacute;cup&eacute;r&eacute; le squelette et l'(les) archive(s) et quel
- message d'erreur vous obtenez.</para>
- </listitem>
-
- <listitem>
- <para>Faire une croix dessus. C'est la m&eacute;thode la plus facile pour
- la plupart des gens&nbsp;-&nbsp;il y a bien peu de programmes
- du catalogue qui soient vraiment essentiels!</para>
- </listitem>
-
- <listitem>
- <para>R&eacute;cup&eacute;rer la version pr&eacute;compil&eacute;e sur un serveur ftp. Le
- catalogue de r&eacute;f&eacute;rence des logiciels pr&eacute;compil&eacute;s se trouve
- sur le serveur FTP de FreeBSD dans le r&eacute;pertoire des
- <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/packages/">logiciels
- pr&eacute;compil&eacute;s</ulink>, bien que nous souhaiterions
- s'il vous pla&icirc;t que
- vous consultiez d'abord vos sites miroirs locaux! Il y a
- globalement plus de chances que cela marche, que lorsque vous
- essayez de les compiler d'apr&egrave;s les sources, et cela va
- de plus beaucoup plus vite. Servez-vous du programme
- <citerefentry><refentrytitle>pkg_add</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- pour installer le fichier contenant un logiciel pr&eacute;compil&eacute; sur
- votre syst&egrave;me.</para>
- </listitem>
-
- </orderedlist>
-
- </sect1>
-
- <sect1>
- <title>Quelques questions et leurs r&eacute;ponses</title>
-
- <itemizedlist>
-
- <listitem>
- <para>Q. Je pensais que cela allait &ecirc;tre une discussion sur les
- modems??!</para>
-
- <para>R. Ah. Vous pensiez peut-&ecirc;tre aux &ldquo;ports&rdquo;
- s&eacute;rie sur la face arri&egrave;re de votre ordinateur. Nous utilisons
- ici le terme
- &ldquo;port&rdquo;&nbsp;-&nbsp;logiciels port&eacute;s&nbsp;-&nbsp;pour
- parler du r&eacute;sultat du &ldquo;portage&rdquo; d'un logiciel d'une
- version d'Unix &agrave; une autre. (Les informaticiens ont la f&acirc;cheuse
- habitude d'employer le m&ecirc;me mot pour parler de choses
- diff&eacute;rentes.)</para>
- </listitem>
-
- <listitem>
- <para>Q. Je pensais qu'il fallait utiliser des
- &ldquo;paquetages&rdquo; pour installer des logiciels
- suppl&eacute;mentaires.</para>
-
- <para>R. Oui, c'est habituellement la fa&ccedil;on la plus rapide et la
- plus facile de le faire.</para>
- </listitem>
-
- <listitem>
- <para>Q. Pourquoi alors se pr&eacute;occuper de logiciels port&eacute;s?</para>
-
- <para>R. Il y a plusieurs raisons:</para>
-
- <orderedlist>
-
- <listitem>
- <para>Les licences de certains logiciels stipulent qu'ils
- doivent &ecirc;tre distribu&eacute;s sous forme de sources et non de
- binaires.</para>
- </listitem>
-
- <listitem>
- <para>Certains ne font pas confiance aux distributions sous
- forme binaire. Avec le code source, vous pouvez au moins
- (en th&eacute;orie) le lire pour y rep&eacute;rer d'&eacute;ventuels
- probl&egrave;mes.</para>
- </listitem>
-
- <listitem>
- <para>Si vous avez des corrections/&eacute;volutions qui vous sont
- propres, vous avez besoin des sources pour les
- appliquer.</para>
- </listitem>
-
- <listitem>
- <para>Vous pouvez vouloir compiler le programme avec des
- options diff&eacute;rentes de celles qu'a utilis&eacute;es la personne
- qui a construit le
- &ldquo;paquetage&rdquo;&nbsp;-&nbsp;certains ont des
- opinions bien arr&ecirc;t&eacute;es sur la mani&egrave;re dont il faut
- optimiser, sur le fait qu'il faut ou non disposer de
- versions d&eacute;bogables et y inclure ou non les symboles,
- etc.</para>
- </listitem>
-
- <listitem>
- <para>Certains aiment disposer du code source, pour pouvoir
- le lire en cas de probl&egrave;me, le modifier, en emprunter des
- morceaux (si la licence le permet, bien s&ucirc;r!), et ainsi de
- suite.</para>
- </listitem>
-
- <listitem>
- <para>Si vous n'avez pas le source, ce n'est pas du
- logiciel! <!-- smiley -->;-)</para>
- </listitem>
-
- </orderedlist>
-
- </listitem>
-
- <listitem>
- <para><anchor id="ports-patch"> Q. Qu'est-ce qu'un
- &ldquo;patch&rdquo;&nbsp;-&nbsp;mise &agrave; jour?</para>
-
- <para>R. Un &ldquo;patch&rdquo; est (habituellement) un petit
- fichier qui pr&eacute;cise comment passer d'une version &agrave; une autre. Il
- contient du texte qui dit, par exemple, des choses comme
- &ldquo;effacez la ligne 23&rdquo;, &ldquo;ajoutez ces deux
- lignes apr&egrave;s la ligne 468&rdquo; ou &ldquo;modifiez comme suit
- la ligne 197&rdquo;. On appelle aussi cela un
- &ldquo;diff&rdquo; parce qu'il est g&eacute;n&eacute;r&eacute; avec un programme
- du m&ecirc;me nom.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="ports-tarball"> Q. Que sont les archives?</para>
-
- <para>R. C'est un fichier d'extension <filename>.tar</filename> ou
- <filename>.tar.gz</filename> (avec des variantes du style
- <filename>.tar.Z</filename>, ou m&ecirc;me <filename>.tgz</filename>
- si vous voulez utiliser ces noms de fichiers avec un syst&egrave;mes
- de fichiers DOS).</para>
-
- <para>C'est essentiellement une arborescence de r&eacute;pertoires qui a
- &eacute;t&eacute; archiv&eacute;e en un seul fichier (<filename>.tar</filename>) et
- &eacute;ventuellement compress&eacute; (<filename>.gz</filename>). Cette
- technique &eacute;tait &agrave; l'origine utilis&eacute;e pour les
- &ldquo;<emphasis>T</emphasis>ape&rdquo;&nbsp;-&nbsp;bande&nbsp;-&nbsp;&ldquo;<emphasis>AR</emphasis>chives&rdquo;
- (d'o&ugrave; le nom <command>tar</command>), mais c'est une m&eacute;thode
- tr&egrave;s utilis&eacute;e pour distribuer du code source sur
- l'Internet.</para>
-
- <para>Vous pouvez avoir la liste des fichiers qu'elles
- contiennent, ou m&ecirc;me les extraire vous-m&ecirc;me, avec le programme
- Unix standard <command>tar</command>, qui fait partie du syst&egrave;me
- FreeBSD de base, comme ceci:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput> # conna&icirc;tre le contenu de foobar.tar.gz
-&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput> # extraire le contenu de foobar.tgz dans le r&eacute;pertoire courant
-&prompt.user; <userinput>tar tvf foobar.tar</userinput> # conna&icirc;tre le contenu de foobar.tar
-&prompt.user; <userinput>tar xvf foobar.tar</userinput> # extraire le contenu de foobar.tar dans le r&eacute;pertoire courant
- </screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para><anchor id="ports-checksum"> Q. Et une somme de
- contr&ocirc;le?</para>
-
- <para>R. C'est un nombre calcul&eacute; en additionnant tout ce que
- contient le fichier. Si un caract&egrave;re change, la somme de
- contr&ocirc;le n'est plus la m&ecirc;me, et une simple comparaison vous
- permettra de rep&eacute;rer la diff&eacute;rence. (En pratique, le calcul
- est un peu plus compliqu&eacute; pour pouvoir rep&eacute;rer des probl&egrave;mes
- comme les permutations de caract&egrave;res, ce que ne permettrait
- pas une simple addition.)</para>
- </listitem>
-
- <listitem>
- <para>Q. J'ai suivi vos indications au paragraphe
- <link linkend="ports-cd">Compiler les logiciels port&eacute;s depuis
- le CD-ROM</link> et &ccedil;a a march&eacute; sans probl&egrave;me jusqu'&agrave; ce que
- j'essaie d'installer <command>kermit</command></para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make install</userinput>
-&gt;&gt; cku190.tar.gz doesn't seem to exist on this system.
-&gt;&gt; Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.</screen>
- </informalexample>
- <para>Pourquoi ne le trouve-t-il pas? Ai-je un CD-ROM
- endommag&eacute;?</para>
-
- <para>R. La licence de <command>kermit</command> ne nous permet
- pas d'inclure l'archive sur le CD-ROM, vous devrez donc la
- r&eacute;cup&eacute;rez vous-m&ecirc;me&nbsp;-&nbsp;d&eacute;sol&eacute;! Vous avez tous ces
- messages d'erreur parce que vous n'&eacute;tiez pas alors connect&eacute; &agrave;
- l'Internet. Une fois que vous l'avez t&eacute;l&eacute;charg&eacute; &agrave; partir de l'un
- des sites mentionn&eacute;s, vous pouvez recommencer l'installation
- (essayez et choisissez le site le plus proche, pour &eacute;conomiser
- votre temps et de la bande passante);</para>
- </listitem>
-
- <listitem>
- <para>Q. Je l'ai fait, mais quand j'ai essay&eacute; de la mettre
- dans <filename>/usr/ports/distfiles</filename>, j'ai eu des
- erreurs &agrave; propos de permissions que je n'avais pas.</para>
-
- <para>R. Le m&eacute;canisme des logiciels port&eacute;s cherche les archives
- dans <filename>/usr/ports/distfiles</filename>, mais il ne peut
- rien y copier parce que c'est un lien symbolique sur le CD-ROM,
- sur lequel on ne peut que lire. Vous pouvez lui dire de chercher
- ailleurs avec:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make DISTDIR=/where/you/put/it install</userinput></screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para>Q. Le syst&egrave;me des logiciels port&eacute;s ne fonctionne-t-il
- qu'avec <filename>/usr/ports</filename>? Mon administrateur
- syst&egrave;me veut que je mette tout dans
- <filename>/u/people/guests/wurzburger</filename>, mais cela ne
- marche apparemment pas.</para>
-
- <para>R. Vous pouvez utiliser les variables
- <makevar>PORTSDIR</makevar> et <makevar>PREFIX</makevar>
- pour dire au m&eacute;canisme des logiciels port&eacute;s de travailler dans
- d'autres r&eacute;pertoires. Par exemple:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen>
- </informalexample>
-
- <para>compilera le logiciel dans
- <filename>/u/people/guests/wurzburger/ports</filename> et
- l'installera dans <filename>/usr/local</filename>.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen>
- </informalexample>
-
- <para>le compilera dans <filename>/usr/ports</filename> et
- l'installera dans
- <filename>/u/people/guests/wurzburger/local</filename>.</para>
-
- <para>Et bien s&ucirc;r:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make PORTSDIR=.../ports PREFIX=.../local install</userinput></screen>
- </informalexample>
-
- <para>combinera les deux (c'est trop long pour tenir enti&egrave;rement
- sur la page, mais je suis s&ucirc;r que vous avez compris le
- principe).</para>
-
- <para>Si vous ne voulez pas avoir &agrave; retaper tout cela &agrave; chaque
- fois que vous installez un logiciel (et pour &ecirc;tre honn&ecirc;te,
- pourquoi le feriez-vous?), c'est une bonne id&eacute;e de d&eacute;finir
- ces deux variables dans votre environnement par d&eacute;faut.</para>
- </listitem>
-
- <listitem>
- <para>Q. Je n'ai pas le CD-ROM FreeBSD, mais je voudrais avoir les
- archives sous la main sur mon syst&egrave;me pour ne pas avoir &agrave;
- attendre la fin du t&eacute;l&eacute;chargement chaque fois que j'installe un
- logiciel. y-a-t-il une fa&ccedil;on simple de tout r&eacute;cup&eacute;rer d'un
- coup?</para>
-
- <para>R. Pour r&eacute;cup&eacute;rer toutes les archives du catalogue des
- logiciels port&eacute;s, tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
- </informalexample>
-
- <para>Pour avoir toutes les archives d'un seul sous-r&eacute;pertoire,
- utilisez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
-&prompt.root; <userinput>make fetch</userinput></screen>
- </informalexample>
-
- <para>et pour un seul port&nbsp;-&nbsp;bon, je suppose que vous
- avez d&eacute;j&agrave; devin&eacute;.</para>
- </listitem>
-
- <listitem>
- <para>Q. Je sais qu'il est probablement plus rapide de r&eacute;cup&eacute;rer
- les archives de sites miroir FreeBSD proches. Y'a-t-il un moyen
- de dire au m&eacute;canisme de s'adresser &agrave; d'autres serveurs que ceux
- list&eacute;s dans les MASTER_SITES?</para>
-
- <para>R. Oui. Si vous savez que, par exemple,
- <hostid role="fqdn">ftp.FreeBSD.ORG</hostid> est plus pr&egrave;s que
- les sites list&eacute;s dans <makevar>MASTER_SITES</makevar>, faites
- comme dans l'exemple suivant:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports/directory</userinput>
-&prompt.root; <userinput>make MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.ORG/pub/FreeBSD/distfiles/ fetch</userinput></screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para>Q. Je veux savoir de quels fichiers j'aurai besoin, avant
- d'essayer de les t&eacute;l&eacute;charger.</para>
-
- <para>R. <command>make fetch-list</command> affichera la liste des
- fichiers n&eacute;cessaires pour installer un logiciel port&eacute;.</para>
- </listitem>
-
- <listitem>
- <para>Q. Y-a-t il un moyen de faire en sorte que le logiciel ne
- soit pas compil&eacute;. Je veux modifier les sources avant de le
- compiler et c'est fastidieux de surveiller ce qui ce passe &agrave;
- chaque fois et de toujours taper Ctrl-C.</para>
-
- <para>R. <command>make extract</command> ne fait que r&eacute;cup&eacute;rer et
- extraire le code source.</para>
- </listitem>
-
- <listitem>
- <para>Q. J'essaie de faire mon propre portage, et voudrais qu'il
- ne soit pas compil&eacute; avant que j'ai pu v&eacute;rifier que les mises &agrave;
- jour aient &eacute;t&eacute; correctement appliqu&eacute;es. Y-a-t-il un &eacute;quivalent
- de <command>make extract</command>, pour les mises &agrave;
- jour?</para>
-
- <para>A. Oui, <command>make patch</command> est ce qu'il vous
- faut. Vous trouverez peut-&ecirc;tre aussi utile l'option
- <option>PATCH_DEBUG</option>. Et, au
- passage, merci de vos efforts!</para>
- </listitem>
-
- <listitem>
- <para>Q. J'ai entendu dire que certaines options du compilateur
- posait des probl&egrave;mes. Est-ce exact? Comment puis-je &ecirc;tre s&ucirc;r
- que je compile les logiciels avec les bonnes options?</para>
-
- <para>R. Oui, avec la version 2.6.3 de <command>gcc</command> (la
- version livr&eacute;e avec FreeBSD 2.1.0 et 2.1.5), l'option
- <option>-O2</option> pouvait g&eacute;n&eacute;rer du code bogu&eacute;, &agrave; moins que
- vous n'utilisiez en m&ecirc;me temps l'option
- <option>-fno-strength-reduce</option>. (La plupart des logiciels
- port&eacute;s n'utilisent pas l'option <option>-O2</option>). Vous
- <emphasis>devriez</emphasis> pouvoir pr&eacute;ciser au compilateur les
- options &agrave; utiliser avec quelque chose comme:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen>
- </informalexample>
-
- <para>ou en &eacute;ditant <filename>/etc/make.conf</filename>, mais tous
- les logiciels port&eacute;s n'en tiennent malheureusement pas compte.
- Le plus s&ucirc;r est d'utiliser <command>make configure</command>,
- puis d'aller dans le r&eacute;pertoire des sources et de regarder ce
- que font les <filename>Makefile</filename>s, mais cela peut
- devenir fastidieux s'il y a de nombreux sous-r&eacute;pertoires avec
- chacun leurs <filename>Makefile</filename>s.</para>
- </listitem>
-
- <listitem>
- <para>Q. Il y a tellement de logiciels port&eacute;s qu'il est difficile
- de trouver celui que je veux. Y-a-t-il quelque part une liste
- des logiciels port&eacute;s?</para>
-
- <para>R. Regardez dans le fichier <filename>INDEX</filename>
- du r&eacute;pertoire <filename>/usr/ports</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Q. J'ai install&eacute; le logiciel <literal>foo</literal> mais le
- m&eacute;canisme s'est soudainement interrompu et a commenc&eacute; &agrave; compiler
- le logiciel <literal>bar</literal>. Que se passe-t-il?</para>
-
- <para>R. Le logiciel <literal>foo</literal> a besoin de quelque
- chose qui fait partie de <literal>bar</literal>&nbsp;-&nbsp;par
- exemple, si <literal>foo</literal> utilise des graphiques,
- <literal>bar</literal> peut comporter une biblioth&egrave;que avec des
- sous-programmes graphiques utiles. Ou bien
- <literal>bar</literal> est un outil n&eacute;cessaire &agrave; la compilation
- du logiciel <literal>foo</literal>.</para>
- </listitem>
-
- <listitem>
- <para><anchor id="ports-remove">Q. J'ai install&eacute; le logiciel
- <literal>grizzle</literal> du catalogue et c'est franchement
- du gaspillage d'espace disque. Je veux le supprimer mais je
- ne sais pas o&ugrave; il a mis tous les fichiers. Des
- indications?</para>
-
- <para>R. Pas de probl&egrave;me, tapez simplement:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para>
- Q. Une minute, il faut conna&icirc;tre le num&eacute;ro de version pour
- utiliser cette commande. Vous ne vous attendez s&eacute;rieusement pas
- &agrave; ce que je l'ai retenu, n'est-ce pas?</para>
-
- <para>R. Absolument pas, vous pouvez le trouver en tapant:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>pkg_info -a | grep grizzle</userinput>
-Information for grizzle-6.5:
-grizzle-6.5 - La m&eacute;thode de piano, l'interpr&eacute;teur LOGO et le casse-briques tout
-en un.</screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para>Q. A propos d'espace disque, le catalogue des logiciels
- port&eacute;s occupe apparemment &eacute;norm&eacute;ment de place. Est-il possible
- d'y faire du m&eacute;nage?</para>
-
- <para>R. Oui, si vous avez install&eacute; un programme et &ecirc;tes &agrave; peu
- pr&egrave;s certain que vous n'aurez plus besoin des sources, il est
- inutile de les garder. La meilleure fa&ccedil;on de faire est:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make clean</userinput></screen>
- </informalexample>
-
- <para>qui parcourera tous les sous-r&eacute;pertoires et supprimera tout
- ce qui se rapporte aux logiciels sauf les squelettes.</para>
- </listitem>
-
- <listitem>
- <para>Q. J'ai essay&eacute;, mais il reste toujours toutes ces archives,
- quelque soit le nom que vous leur donniez, dans le r&eacute;pertoire
- <filename>distfiles</filename>. Puis-je aussi les
- effacer?</para>
-
- <para>R. Oui, si vous &ecirc;tes s&ucirc;r d'en avez termin&eacute; avec elles, vous
- pouvez aussi les supprimer.</para>
- </listitem>
-
- <listitem>
- <para>Q. J'aime avoir quantit&eacute; de logiciels pour les tester?
- Y-a-t-il un moyen de tous les installer d'un seul coup?</para>
-
- <para>R. Tapez simplement:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make install</userinput></screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para>Q. OK, j'ai essay&eacute;, mais comme je pensais que cela allait
- prendre beaucoup de temps, j'ai laiss&eacute; la machine telle quelle
- et je suis all&eacute; me coucher. Ce matin, quand j'ai jet&eacute; une coup
- d'oeil &agrave; l'ordinateur, je n'avais que trois logiciels et demi
- install&eacute;s. Quelque chose s'est-il mal pass&eacute;?</para>
-
- <para>R. Non, le probl&egrave;me est que certains logiciels ont des
- questions &agrave; vous poser auxquelles ils ne peuvent r&eacute;pondre &agrave;
- votre place (par exemple, &ldquo;Voulez-vous imprimer au format
- A4 ou au format l&eacute;gal US?&rdquo;) et il faut donc que quelqu'un
- y r&eacute;ponde sur le moment.</para>
- </listitem>
-
- <listitem>
- <para>Q. Je ne veux pas passer toute la journ&eacute;e plant&eacute; devant
- l'&eacute;cran. Une meilleure id&eacute;e?</para>
-
- <para>A. OK, avant d'aller au lit/travail/jardin public,
- tapez:</para>
-
- <informalexample>
- <screen>&prompt.root <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DBATCH install</userinput></screen>
- </informalexample>
-
- <para>Cela installera tous les logiciels sans interaction avec
- l'utilisateur. A votre retour, tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
-&prompt.root; <userinput>make -DIS_INTERACTIVE install</userinput></screen>
- </informalexample>
-
- <para>Pour terminer les installations.</para>
- </listitem>
-
- <listitem>
- <para>Q. Au bureau, nous utilisons <literal>frobble</literal>, qui
- fait partie de votre catalogue des logiciels port&eacute;s, mais nous
- l'avons un peu modifi&eacute; pour nos besoins propres. Y-a-t-il un
- moyen de faire notre propre &ldquo;paquetage&rdquo; pour le
- distribuer plus facilement sur nos sites?</para>
-
- <para>R. Pas de probl&egrave;me, si vous savez comment g&eacute;n&eacute;rer les
- &ldquo;patches&rdquo; pour vos modifications:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /usr/ports/somewhere/frobble</userinput>
-&prompt.root; <userinput>make extract</userinput>
-&prompt.root; <userinput>cd work/frobble-2.8</userinput>
-[Appliquer vos mises &agrave; jour]
-&prompt.root; <userinput>cd ../..</userinput>
-&prompt.root; <userinput>make package</userinput></screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para>Q. Ce syst&egrave;me des logiciels port&eacute;s est vraiment g&eacute;nial. Je
- d&eacute;sesp&egrave;re de comprendre comment vous avez fait. Quel est votre
- secret?</para>
-
- <para>R. Il n'y a absolument pas de secret, jetez juste un coup
- d'oeil aux fichiers <filename>bsd.ports.mk</filename> et
- <filename>bsd.ports.subdir.mk</filename> du r&eacute;pertoire des
- <ulink url="file://localhost/usr/share/mk/"><filename>makefile</filename>s.</ulink></para>
-
- <note>
- <para>Cette lecture est d&eacute;conseill&eacute;e &agrave; ceux que les proc&eacute;dures
- de commandes compliqu&eacute;es rebutent...)</para>
- </note>
- </listitem>
-
- </itemizedlist>
-
- </sect1>
-
- <sect1 id="porting">
- <title>** Faire vous-m&ecirc;me un portage</title>
-
- <para><emphasis>Contribution de &a.jkh;, &a.gpalmer;, &a.asami;
- &a.obrien; et &a.hoek;. 28 Ao&ucirc;t 1996.</emphasis></para>
-
- <para>Donc, vous voulez faire vous-m&ecirc;me votre propre portage?
- G&eacute;nial!</para>
-
- <para>Voici quelques indications sur la fa&ccedil;on de cr&eacute;er un nouveau
- portage d'un logiciel pour FreeBSD. L'essentiel du travail
- est fait par <filename>/usr/share/mk/bsd.port.mk</filename>, qui
- est inclus dans le <filename>Makefile</filename> de chaque logiciel
- port&eacute;. Reportez-vous s'il vous pla&icirc;t &agrave; ce fichier pour avoir plus
- de d&eacute;tails sur le fonctionnement interne du catalogue des logiciels
- port&eacute;s. M&ecirc;me si vous n'&eacute;crivez pas tous les jours des
- <filename>Makefile</filename>s, il est pas mal comment&eacute;, et vous
- en apprendrez malgr&eacute; tout beaucoup de choses.</para>
-
- <note>
- <para>Seule une partie des variables surchargeables
- (<makevar><replaceable>VAR</replaceable></makevar>) est d&eacute;crite
- dans ce document. La plupart (sinon toutes) sont explicit&eacute;es au
- d&eacute;but de <filename>bsd.port.mk</filename>. Ce fichier utilise des
- tabulations non standard. <application>Emacs</application> et
- <application>Vim</application> devraient reconna&icirc;tre cette
- configuration au chargement du fichier. <command>vi</command> ou
- <command>ex</command> peuvent &ecirc;tre configur&eacute;s avec la valeur
- ad&eacute;quate apr&egrave;s avoir charg&eacute; le fichier en tapant <command>:set
- tabstop=4</command>.</para>
- </note>
-
- <sect2>
- <title>Portage rapide</title>
-
- <para>Cette section vous explique comment faire un portage rapide.
- La plupart du temps, ce n'est pas suffisant, mais nous verrons
- cela par la suite.</para>
-
- <para>Commencez par r&eacute;cup&eacute;rer le fichier d'archive d'origine et
- mettez-le dans <makevar>DISTDIR</makevar>, par d&eacute;faut c'est le
- r&eacute;pertoire <filename>/usr/ports/distfiles</filename>.</para>
-
- <note>
- <para>Nous supposerons dans ce qui suit que le source a compil&eacute;
- &ldquo;tel quel&rdquo;, i.e., il n'y a absolument pas eu de
- modification &agrave; y apporter pour qu'il tourne sur votre machine
- FreeBSD. Si vous avez d&ucirc; changer quelque chose, vous devrez
- aussi vous reporter &agrave; la section suivante.</para>
- </note>
-
- <sect3>
- <title>Ecrire le <filename>Makefile</filename></title>
-
- <para>Le <filename>Makefile</filename> minimal ressemblera &agrave;
- ceci&nbsp;:</para>
-
- <programlisting>
-# Nouveau makefile du catalogue pour: oneko
-# Version correspondante: 1.1b
-# Date de cr&eacute;ation: 5 D&eacute;cembre 1994
-# Par: asami
-#
-# &#36;Id&#36;
-#
-
-DISTNAME= oneko-1.1b
-CATEGORIES= games
-MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
-
-MAINTAINER= asami@FreeBSD.ORG
-
-MAN1= oneko.1
-MANCOMPRESSED= yes
-USE_IMAKE= yes
-
-.include &lt;bsd.port.mk&gt;</programlisting>
-
- <para>Voyez si vous y comprenez quelque chose. Ne vous occupez
- pas de la ligne <literal>&#36;Id&#36;</literal>, elle sera
- automatiquement renseign&eacute;e par CVS quand le logiciel sera
- import&eacute; dans notre arborescence principale des logiciels
- port&eacute;s. Vous trouverez un exemple plus d&eacute;taill&eacute; &agrave; la section
- <link linkend="porting-samplem">Exemple de
- Makefile</link>.</para>
-
- </sect3>
-
- <sect3>
- <title>Cr&eacute;er les fichiers de description</title>
-
- <para>Il y a trois fichiers de description indispensables &agrave;
- chaque logiciel port&eacute;, qu'il soit ou non pr&eacute;compil&eacute;. Ce sont
- les fichiers <filename>COMMENT</filename>,
- <filename>DESCR</filename> et <filename>PLIST</filename>,
- du sous-r&eacute;pertoire <filename>pkg</filename>.</para>
-
- <sect4>
- <title><filename>COMMENT</filename></title>
-
- <para>C'est une description en une seule ligne du logiciel.
- <emphasis>S'il vous pla&icirc;t</emphasis>, n'incluez pas le nom
- du logiciel (ni son num&eacute;ro de version) dans le commentaire.
- Voici un exemple&nbsp;:</para>
-
- <programlisting>
-Un chat poursuit une souris &agrave; travers l'&eacute;cran.</programlisting>
-
- </sect4>
-
- <sect4>
- <title><filename>DESCR</filename></title>
-
- <para>C'est une description plus longue du logiciel. Un &agrave;
- quelques paragraphes, expliquant succintement ce qu'il
- fait, suffisent.</para>
-
- <note>
- <para>Ce <emphasis>n'est pas</emphasis> un manuel, ni
- une description d&eacute;taill&eacute;e de la mani&egrave;re de compiler et
- d'utiliser le logiciel. Faites
- <emphasis>s'il vous pla&icirc;t attention si vous la recopiez
- du <filename>README</filename> ou des pages de
- manuel</emphasis>; trop souvent, ce ne sont pas des
- descriptions concises et elles sont mal format&eacute;es (e.g., les
- pages de manuel sont justifi&eacute;es avec des espaces). S'il y a
- une page Web officielle pour le logiciel, vous devriez la
- mentionner ici.</para>
- </note>
-
- <para>Il vous est recommand&eacute; de signer en fin de fichier, comme
- suit:</para>
-
- <programlisting>
-C'est le portage de &ldquo;oneko&rdquo;, le chat qui poursuit la pauvre souris
-sur tout l'&eacute;cran.
-&nbsp;:
-(etc.)
-
-http://www.oneko.org/
-
-- Satoshi
-asami@cs.berkeley.edu</programlisting>
-
- </sect4>
-
- <sect4>
- <title><filename>PLIST</filename></title>
-
- <para>C'est la liste de tous les fichiers install&eacute;s pour ce
- logiciel. On l'appelle aussi &ldquo;liste de paquetage&rdquo;
- parce que le &ldquo;paquetage&rdquo; sera g&eacute;n&eacute;r&eacute; en archivant
- tous les fichiers de cette liste. Les chemins d'acc&egrave;s sont
- relatifs &agrave; <filename>/usr/local</filename> ou
- <filename>/usr/X11R6</filename>). Si vous utilisez des
- variables <makevar>MAN<replaceable>n</replaceable></makevar>
- (comme vous devriez le faire), n'y listez pas les pages de
- manuel.</para>
-
- <para>Voici un court exemple:</para>
-
- <programlisting>
-bin/oneko
-lib/X11/app-defaults/Oneko
-lib/X11/oneko/cat1.xpm
-lib/X11/oneko/cat2.xpm
-lib/X11/oneko/mouse.xpm
-@dirrm lib/X11/oneko</programlisting>
-
- <para>Reportez-vous aux pages de manuel de
- <citerefentry><refentrytitle>pkg_create</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- pour plus de d&eacute;tails sur la &ldquo;liste de
- paquetage&rdquo;.</para>
-
- <note>
- <para>Vous devez lister tous les fichiers, mais pas les noms
- des r&eacute;pertoires. Par contre, s'il y a des r&eacute;pertoires cr&eacute;&eacute;s
- &agrave; l'installation, veillez &agrave; ajouter les lignes
- <literal>@dirrm</literal> n&eacute;cessaires pour qu'ils soient
- d&eacute;truits si le logiciel est d&eacute;sinstall&eacute;.</para>
-
- <para>Il est recommand&eacute; de lister les fichiers dans l'ordre
- alphab&eacute;tique. Cela facilite beaucoup les contr&ocirc;les lors des
- mises &agrave; jour.</para>
- </note>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Cr&eacute;er le fichier pour la somme de contr&ocirc;le</title>
-
- <para>Tapez simplement <command>make makesum</command>.
- Les r&egrave;gles de construction des logiciels port&eacute;s g&eacute;n&egrave;reront
- automatiquement le fichier
- <filename>files/md5</filename>.</para>
-
- </sect3>
-
- <sect3 id="porting-testing">
- <title>Tester le portage</title>
-
- <para>Vous devez v&eacute;rifiez que les r&egrave;gles de construction du
- logiciel port&eacute; font exactement ce que vous voulez. Voici
- les points importants &agrave; contr&ocirc;ler:</para>
-
- <itemizedlist>
- <listitem>
- <para><filename>PLIST</filename> ne contient rien d'autre que
- ce qu'installe votre logiciel.</para>
- </listitem>
-
- <listitem>
- <para><filename>PLIST</filename> contient tout ce qu'installe
- votre logiciel.</para>
- </listitem>
-
- <listitem>
- <para>Le logiciel peut &ecirc;tre install&eacute; plusieurs fois de suite
- en utilisant la cible
- <maketarget>reinstall</maketarget>.</para>
- </listitem>
-
- <listitem>
- <para>Le m&eacute;canisme de portage du logiciel
- <link linkend="porting-cleaning">fait le m&eacute;nage</link>
- lors de la d&eacute;sinstallation.</para>
- </listitem>
- </itemizedlist>
-
- <procedure>
- <title>Ordre de test recommand&eacute;</title>
-
- <step>
- <para><command>make install</command></para>
- </step>
-
- <step>
- <para><command>make package</command></para>
- </step>
-
- <step>
- <para><command>make deinstall</command></para>
- </step>
-
- <step>
- <para><command>pkg_add `make nom_du_paquetage`</command></para>
- </step>
-
- <step>
- <para><command>make deinstall</command></para>
- </step>
-
- <step>
- <para><command>make reinstall</command></para>
- </step>
-
- <step>
- <para><command>make package</command></para>
- </step>
- </procedure>
-
- <para>V&eacute;rifiez qu'il n'y a aucun message d'avertissement
- aux &eacute;tapes <maketarget>package</maketarget> et
- <maketarget>deinstall</maketarget>. Apr&egrave;s l'&eacute;tape 3, v&eacute;rifiez
- que tous les r&eacute;pertoires cr&eacute;&eacute;s ont bien &eacute;t&eacute; d&eacute;truits. Essayez
- aussi d'utilisez le logiciel apr&egrave;s l'&eacute;tape 4, pour vous assurer
- qu'il fonctionne correctement apr&egrave;s installation sous forme
- de &ldquo;paquetage&rdquo;.</para>
- </sect3>
-
- <sect3 id="porting-portlint">
- <title>V&eacute;rifier votre portage avec
- <command>portlint</command></title>
-
- <para>Utilisez s'il vous pla&icirc;t la commande
- <command>portlint</command> pour contr&ocirc;ler que votre portage
- se conforme &agrave; nos recommandations.
- Le programme <command>portlint</command> fait partie du catalogue
- des logiciels port&eacute;s. En particulier, vous devriez v&eacute;rifier
- que votre <link linkend="porting-samplem">Makefile</link> est
- bien construit et que le nom du
- <link linkend="porting-pkgname">paquetage</link> est
- correct.</para>
- </sect3>
-
- <sect3 id="porting-submitting">
- <title>Soumettre le portage</title>
-
- <para>Veillez d'abord &agrave; lire la section <link
- linkend="porting-dads">A faire et &agrave; ne pas
- faire</link>.</para>
-
- <para>Maintenant que vous &ecirc;tes satisfait de votre portage, la
- seule chose qui reste &agrave; faire est de le mettre dans
- l'arborescence principale des logiciels port&eacute;s de FreeBSD
- de fa&ccedil;on &agrave; ce que tout le monde en profite. Nous n'avons
- pas besoin de votre r&eacute;pertoire
- <filename>work</filename> ni de votre fichier
- <filename><replaceable>nom_du_paquetage</replaceable>.tgz</filename>,
- effacez-les donc maintenant. Incluez simplement ensuite le
- r&eacute;sultat de la commande <command>shar `find r&eacute;pertoire_portage`</command>
- dans un rapport de bogue et envoyez-le nous avec le programme
- <citerefentry>
- <refentrytitle>send-pr</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>. (Voyez <link linkend="contrib-general">Rapports
- de bogues et commentaires g&eacute;n&eacute;raux</link> pour plus
- d'informations sur <citerefentry>
- <refentrytitle>send-pr</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry>.) Si le logiciel port&eacute; non compress&eacute; fait plus de
- 20KB, vous devrez en faire une archive compress&eacute;e et utiliser
- <citerefentry><refentrytitle>uuencode</refentrytitle>
- <manvolnum>1</manvolnum>
- </citerefentry> avant de l'inclure dans le rapport (les archives
- &ldquo;tar&rdquo; &ldquo;uuencod&eacute;es&rdquo; sont admises m&ecirc;me
- si le rapport de bogue fait moins de 20KB, quoique non
- souhait&eacute;es dans ce cas). Veillez &agrave; classer le rapport dans la
- cat&eacute;gorie
- <literal>ports</literal>&nbsp;-&nbsp;&ldquo;portages&rdquo; et
- la classe
- <literal>change-request</literal>&nbsp;-&nbsp;&ldquo;demande
- de modification&rdquo;. (Ne classez pas le rapport
- <literal>confidential</literal>&nbsp;-&nbsp;&ldquo;confidentiel&rdquo;&nbsp;!)</para>
-
- <para>Encore une fois, <emphasis>n'incluez pas la distribution
- originale du source, le r&eacute;pertoire <filename>work</filename> ni le
- &ldquo;paquetage&rdquo; construit avec <command>make
- package</command></emphasis>.</para>
-
- <note>
- <para>Dans le pass&eacute;, nous demandions que les soumissions de
- logiciels port&eacute;s passent par notre site ftp
- (<hostid role="fqdn">ftp.freebsd.org</hostid>). Ce n'est plus
- souhaitable parce que l'acc&egrave;s en lecture est interdit sur le
- r&eacute;pertoire <filename>incoming/</filename> de ce site du fait
- de la trop grande quantit&eacute; de logiciels pirat&eacute;s qui y
- atterrissaient.</para>
- </note>
-
- <para>Nous regarderons votre portage, vous contacterons si n&eacute;cessaire,
- et le mettrons dans l'arborescence. Votre nom appara&icirc;tra aussi dans
- la liste des &ldquo;Autres collaborateurs de FreeBSD&rdquo; du
- manuel FreeBSD et dans d'autres fichiers. G&eacute;nial,
- non?!? <!-- smiley -->:)</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Portage &eacute;volu&eacute;</title>
-
- <para>Bon, ce n'&eacute;tait en fait pas si simple, et il a fallu
- modifier le code pour que le portage fonctionne. Dans cette
- section, nous allons expliquer, &eacute;tape par &eacute;tape, comment faire
- dans ce cas pour appliquer le paradigme des logiciels
- port&eacute;s.</para>
-
- <sect3>
- <title>Comment les choses fonctionnent</title>
-
- <para>Pour commencer, voici ce qui se passe lorsque
- l'utilisateur tape <command>make</command> dans le
- r&eacute;pertoire de votre logiciel port&eacute;. Ouvrir le fichier
- <filename>bsd.port.mk</filename> dans une autre fen&ecirc;tre
- pendant que vous lisez ceci vous en facilitera la
- compr&eacute;hension.</para>
-
- <para>Ne vous inqui&eacute;tez pas si vous ne comprenez pas compl&egrave;tement
- ce que fait <filename>bsd.port.mk</filename>, peu de gens y
- arrivent... <!-- smiley --><emphasis>:&gt;</emphasis></para>
-
- <procedure>
-
- <step>
- <para>La cible <maketarget>fetch</maketarget> est ex&eacute;cut&eacute;e.
- La cible <maketarget>fetch</maketarget> est charg&eacute;e de
- faire en sorte que l'archive soit localement
- disponible dans <makevar>DISTDIR</makevar>. Si
- <maketarget>fetch</maketarget> ne trouve pas les
- fichiers dans
- <makevar>DISTDIR</makevar>, elle regardera &agrave; l'URL
- <makevar>MASTER_SITES</makevar>, d&eacute;finie dans le
- <filename>Makefile</filename>, et sur notre site ftp
- principal dans <ulink
- URL="ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/">ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/</ulink> o&ugrave; nous avons mis les archives
- valid&eacute;es, &agrave; titre de copie de secours. Elle essayera alors
- de rapatrier le fichier de la distribution avec
- <makevar>FETCH</makevar>, en pr&eacute;sumant que la machine
- qui fait la demande a un acc&egrave;s direct &agrave; l'Internet. En
- cas de succ&egrave;s, le fichier est sauvegard&eacute; dans
- <makevar>DISTDIR</makevar> pour la suite, et le traitement
- peut continuer.</para>
- </step>
-
- <step>
- <para>La cible <maketarget>extract</maketarget> est ensuite
- ex&eacute;cut&eacute;e. Elle cherche le fichier de distribution de votre
- portage (typiquement une archive cr&eacute;&eacute;e par
- <command>tar</command> et compress&eacute;e avec
- <command>gzip</command>) dans
- <makevar>DISTDIR</makevar> et en extrait le contenu dans
- un sous-r&eacute;pertoire temporaire d&eacute;fini par
- <makevar>WRKDIR</makevar>
- (par d&eacute;faut <filename>work</filename>).</para>
- </step>
-
- <step>
- <para>La cible suivante est <maketarget>patch</maketarget>.
- Dans un premier temps, tous les fichiers de mise &agrave; jour
- d&eacute;finis dans <makevar>PATCHFILES</makevar> sont appliqu&eacute;s.
- Ensuite, s'il y a des fichiers de mise &agrave; jour dans
- <makevar>PATCHDIR</makevar> (le sous-r&eacute;pertoire
- <filename>patches</filename> par d&eacute;faut), ils sont
- appliqu&eacute;s, dans l'ordre alphab&eacute;tique cette fois-ci.</para>
- </step>
-
- <step>
- <para>Vient ensuite <maketarget>configure</maketarget> qui
- peut faire l'une des op&eacute;rations suivantes:</para>
-
- <orderedlist>
-
- <listitem>
- <para>Si elle existe, ex&eacute;cuter la proc&eacute;dure
- <filename>scripts/configure</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Si <makevar>HAS_CONFIGURE</makevar> ou
- <makevar>GNU_CONFIGURE</makevar>
- est d&eacute;finie, ex&eacute;cuter
- <filename><makevar>WRKSRC</makevar>/configure</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Si <makevar>USE_IMAKE</makevar> est d&eacute;finie,
- ex&eacute;cuter <makevar>XMKMF</makevar>
- (par d&eacute;faut: <command>xmkmf
- -a</command>).</para>
- </listitem>
-
- </orderedlist>
-
- </step>
-
- <step>
- <para>La derni&egrave;re cible est
- <maketarget>build</maketarget>. Elle passe dans le
- sous-r&eacute;pertoire de travail du portage
- (<makevar>WRKSRC</makevar>) et se charge de la
- compilation. Si la variable <makevar>USE_GMAKE</makevar>
- est d&eacute;finie, la commande <command>make</command> GNU est
- utilis&eacute;e, sinon c'est la commande <command>make</command>
- du syst&egrave;me qui est employ&eacute;e.</para>
- </step>
-
- </procedure>
-
- <para>Ce sont les op&eacute;rations par d&eacute;faut. Vous pouvez en plus
- d&eacute;finir des cibles
- <maketarget>pre-<replaceable>quelque_chose</replaceable></maketarget>
- ou <maketarget>post-<replaceable>quelque_chose</replaceable></maketarget>,
- ou mettre des proc&eacute;dures du m&ecirc;me nom dans le sous-r&eacute;pertoire
- <filename>scripts</filename>, et elles pr&eacute;c&eacute;deront ou suivront
- les op&eacute;rations par d&eacute;faut.</para>
-
- <para>Par exemple, si vous avez d&eacute;fini une cible
- <maketarget>post-extract</maketarget> dans votre
- <filename>Makefile</filename>, et cr&eacute;&eacute; un fichier
- <filename>pre-build</filename> dans le sous-r&eacute;pertoire
- <filename>scripts</filename>, la cible
- <maketarget>post-extract</maketarget> sera invoqu&eacute;e apr&egrave;s
- l'op&eacute;ration habituelle d'extraction et la proc&eacute;dure
- <filename>pre-build</filename> ex&eacute;cut&eacute;e avant d'appliquer les
- r&egrave;gles de compilation par d&eacute;faut. Il est recommand&eacute; d'utiliser
- des cibles dans le <filename>Makefile</filename> si les actions
- sont suffisamment &eacute;l&eacute;mentaires, car il est alors plus facile &agrave;
- quelqu'un d'autre de voir quelles sont les op&eacute;rations
- suppl&eacute;mentaires effectu&eacute;es lors du portage.</para>
-
- <para>Les op&eacute;rations par d&eacute;faut sont prises en charge par les
- cibles
- <maketarget>do-<replaceable>quelque_chose</replaceable></maketarget>
- du fichier <filename>bsd.port.mk</filename>. Par exemple, les
- commandes d'extraction sont d&eacute;finies par la cible
- <maketarget>do-extract</maketarget>. Si la cible par d&eacute;faut ne
- vous convient pas, vous pouvez r&eacute;definir
- <maketarget>do-<replaceable>quelque_chose</replaceable></maketarget>
- dans votre <filename>Makefile</filename>.</para>
-
- <note>
- <para>Les cibles &ldquo;principales&rdquo; (e.g., <maketarget>extract</maketarget>, <maketarget>configure</maketarget>, etc.) ne font rien
- d'autre que de s'assurer que les &eacute;tapes qui les pr&eacute;c&egrave;dent se
- sont bien d&eacute;roul&eacute;es et appellent les vrais cibles ou
- proc&eacute;dures. Elles ne doivent donc pas &ecirc;tre modifi&eacute;es. Si vous
- voulez changer la m&eacute;thode d'extraction, red&eacute;finissez
- <maketarget>do-extract</maketarget>, mais ne modifiez pas
- <maketarget>extract</maketarget>&nbsp;!</para>
- </note>
-
- <para>Maintenant que vous avez compris ce qui se passe quand
- l'utilisateur tape <command>make</command>, passons en revue
- les &eacute;tapes conseill&eacute;es pour cr&eacute;er le portage parfait.</para>
-
- </sect3>
-
- <sect3>
- <title>Obtenez les sources d'origine</title>
-
- <para>R&eacute;cup&eacute;rez les sources d'origine (normalement) sous forme
- d'archive compress&eacute;e
- (<filename><replaceable>foo</replaceable>.tar.gz</filename> ou
- <filename><replaceable>foo</replaceable>.tar.Z</filename>) et
- copiez-les dans <makevar>DISTDIR</makevar>. Utilisez toujours
- des sources <emphasis>de premi&egrave;re main</emphasis> si vous le
- pouvez.</para>
-
- <para>Si vous ne trouvez pas de site ftp/http correctement
- accessible sur le r&eacute;seau, ou ne trouvez que des sites qui
- utilisent des formats non standard, vous voudrez peut-&ecirc;tre
- mettre une copie sur un serveur ftp ou http fiable que vous
- contr&ocirc;lez (e.g., votre page personnelle). Veillez &agrave; d&eacute;finir
- <makevar>MASTER_SITES</makevar> pour refl&eacute;ter ce choix.</para>
-
- <para>Si vous ne trouvez aucun endroit ad&eacute;quat et fiable o&ugrave; mettre
- la distribution (si vous y &ecirc;tes autoris&eacute;, vous pouvez la mettre
- dans votre sous-r&eacute;pertoire <filename>public_html/</filename> sur
- <hostid>freefall</hostid>), nous pouvons en dernier ressort
- &ldquo;l'accueillir&rdquo; nous-m&ecirc;me en la mettant dans
- <filename>ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/LOCAL_PORTS/</filename>.
- D&eacute;finissez cette adresse dans
- <makevar>MASTER_SITE_LOCAL</makevar>. Adressez un courrier
- &eacute;lectronique &agrave; la &a.ports;, si vous n'&ecirc;tes pas s&ucirc;r de ce qu'il
- faut faire.</para>
-
- <para>Si la distribution est fr&eacute;quemment modifi&eacute;e sans raison
- valable, envisagez de la recopier sur votre page personnelle et
- listez-la en premier dans <makevar>MASTER_SITES</makevar>. Cela
- &eacute;vitera que les utilisateurs aient des erreurs
- &ldquo;<errorname>checksum mismatch</errorname>&rdquo;
- sur les sommes de contr&ocirc;le, et r&eacute;duira aussi
- le travail des personnes charg&eacute;es de maintenir notre site ftp.
- D'autre part, s'il n'y a qu'un seul site pour le logiciel
- d'origine, il est recommand&eacute; que vous ayez une sauvegarde sur
- votre site et qu'elle soit mentionn&eacute;e en second lieu dans
- <makevar>MASTER_SITES</makevar>.</para>
-
- <para>S'il faut d'autres &ldquo;patches&rdquo; disponibles sur
- l'Internet pour ce portage, r&eacute;cup&eacute;rez-les aussi et mettez-les
- dans <makevar>DISTDIR</makevar>. Ce n'est pas un probl&egrave;me s'ils
- proviennent d'autres sites que la distribution de base, nous
- pouvons g&eacute;rer cette situation (voyez plus bas la description
- de <link
- linkend="porting-patchfiles">PATCHFILES</link>).</para>
-
- </sect3>
-
- <sect3>
- <title>Modifier les sources</title>
-
- <para>Extrayez le contenu de l'archive dans un sous-r&eacute;pertoire
- priv&eacute; et faites-y les modifications n&eacute;cessaires pour que le
- logiciel compile correctement avec la version courante de
- FreeBSD. Gardez <emphasis>avec soin trace</emphasis> de tout
- ce que vous faites, car vous allez bient&ocirc;t automatiser ces
- op&eacute;rations. Tout, y compris suppressions, ajouts et
- modifications de fichiers doit pouvoir &ecirc;tre fait par des
- proc&eacute;dures ou fichiers de mise &agrave; jour une fois que vous aurez
- termin&eacute; le portage.</para>
-
- <para>Si le portage demande l'intervention ou des choix de
- l'utilisateur &agrave; la compilation ou &agrave; l'installation, vous
- devriez jeter un oeil aux proc&eacute;dures classiques
- <application>Configure</application> de Larry Wall, et peut-&ecirc;tre
- faire quelque chose du m&ecirc;me genre. L'objectif du nouveau
- catalogue des logiciels port&eacute;s est que chaque logiciel soit
- aussi &ldquo;pr&ecirc;t-a-l'emploi&rdquo; que possible pour
- l'utilisateur final, tout en utilisant le minimum d'espace
- disque.</para>
-
- <note>
- <para>Sauf si vous le pr&eacute;cisez explicitement, tous les fichiers
- de mise &agrave; jour, proc&eacute;dures et fichiers que vous aurez cr&eacute;&eacute;s
- et introduits comme contribution au catalogue des logiciels
- port&eacute;s sont suppos&eacute;s couverts par les conditions standard
- de copyright BSD.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Modifications</title>
-
- <para>Les fichiers ajout&eacute;s ou modifi&eacute;s pendant la mise au point
- du portage peuvent &ecirc;tre identifi&eacute;s avec un
- <command>diff</command> r&eacute;cursif pour g&eacute;n&eacute;rer ensuite les
- fichiers de mise &agrave;
- jour&nbsp;-&nbsp;<foreignphrase>patches</foreignphrase>. Chaque
- ensemble de mise &agrave; jour que vous souhaitez appliquer doit
- &ecirc;tre rassembl&eacute; dans un fichier
- <filename>patch-<replaceable>xx</replaceable></filename>, o&ugrave;
- <replaceable>xx</replaceable> correspond au rang de cette
- mise &agrave; jour dans la s&eacute;quence d'application de ces
- modifications&nbsp;-&nbsp;elles sont trait&eacute;es en
- <emphasis>ordre alphab&eacute;tique</emphasis>, donc
- <literal>aa</literal> d'abord, <literal>ab</literal> en second
- et ainsi de suite. Ces fichiers doivent &ecirc;tre plac&eacute;s dans
- <makevar>PATCHDIR</makevar>, d'o&ugrave; ils seront automatiquement
- appliqu&eacute;s. Toutes les modifications doivent &ecirc;tre relatives &agrave;
- <makevar>WRKSRC</makevar> (c'est habituellement le r&eacute;pertoire
- o&ugrave; l'archive s'extrait elle-m&ecirc;me, et o&ugrave; se fera la
- compilation). Pour simplifier les corrections et les mises &agrave;
- niveau, vous devriez &eacute;viter d'avoir plus d'un fichier de mise
- &agrave; jour s'appliquant au m&ecirc;me fichier source
- (e.g., <filename>patch-aa</filename> et <filename>patch-ab</filename> modifiant tous deux <filename><makevar>WRKSRC</makevar>/foobar.c</filename>).</para>
-
- </sect3>
-
- <sect3>
- <title>Configuration</title>
-
- <para>Ajoutez toutes les autres commandes de mise au point &agrave; votre
- proc&eacute;dure <filename>configure</filename> et enregistrez-la dans
- le sous-r&eacute;pertoire <filename>scripts</filename>. Comme on l'a
- dit plus haut, vous pouvez aussi utiliser les cibles du
- <filename>Makefile</filename> et/ou les proc&eacute;dures
- <filename>pre-configure</filename> ou
- <filename>post-configure</filename>.</para>
-
- </sect3>
-
- <sect3>
- <title>Interactions avec l'utilisateur</title>
-
- <para>Si vos proc&eacute;dures de compilation, configuration ou
- installation ont besoin d'interagir avec l'utilisateur,
- d&eacute;finissez la variable <makevar>IS_INTERACTIVE</makevar> dans
- votre <filename>Makefile</filename>. Cela permettra aux
- &ldquo;compilations de nuits&rdquo; d'ignorer le logiciel
- que vous avez port&eacute;, si l'utilisateur d&eacute;finit dans son
- environnement la variable <envar>BATCH</envar> (s'il d&eacute;finit
- la variable <envar>INTERACTIVE</envar>,
- <emphasis>seuls</emphasis> les logiciels port&eacute;s pour lesquels
- il faut des r&eacute;ponses de l'utilisateur sont compil&eacute;s).</para>
-
- <para>Il est aussi recommand&eacute;, s'il y a des r&eacute;ponses par d&eacute;faut
- raisonnables &agrave; vos questions, de tester la variable
- <makevar>PACKAGE_BUILDING</makevar> et de d&eacute;sactiver la partie
- interactive de la proc&eacute;dure si cette variable est d&eacute;finie. Cela
- permet de compiler les &ldquo;paquetages&rdquo; pour les CD-ROMs
- et les sites ftp.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Configurer le Makefile</title>
-
- <para>Il est assez facile de configurer le Makefile, et nous vous
- sugg&eacute;rons &agrave; nouveau de jeter un coup d'oeil aux exemples
- existants avant de commencer. Il y a aussi un
- <link linkend="porting-samplem">exemple de Makefile</link> dans ce
- manuel, consultez-le donc et respectez s'il vous pla&icirc;t l'ordre
- des variables et des sections de ce mod&egrave;le pour que votre
- portage soit plus facile &agrave; lire pour les autres.</para>
-
- <para>Envisageons maintenant les probl&egrave;mes suivants en
- s&eacute;quence au fur et &agrave; mesure que vous mettez au point
- votre nouveau Makefile&nbsp;:</para>
-
- <sect3>
- <title>Le source original</title>
-
- <para>Se trouve-t-il dans <makevar>DISTDIR</makevar> sous forme standard
- d'archive compress&eacute;e avec
- <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry>.
- Si ce n'est pas le cas, vous devriez envisager de surcharger une des
- variables <makevar>EXTRACT_CMD</makevar>,
- <makevar>EXTRACT_BEFORE_ARGS</makevar>,
- <makevar>EXTRACT_AFTER_ARGS</makevar>,
- <makevar>EXTRACT_SUFX</makevar> ou <makevar>DISTFILES</makevar> selon
- le degr&eacute; de non-conformit&eacute; du fichier de distribution
- de votre logiciel &agrave; porter. (Le cas le plus fr&eacute;quent est
- <literal>EXTRACT_SUFX=.tar.Z</literal>, quand l'archive est
- compress&eacute;e avec
- <citerefentry><refentrytitle>compress</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
- et non
- <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry>.)</para>
-
- <para>Dans le pire des cas, vous pouvez simplement cr&eacute;er votre
- propre cible <maketarget>do-extract</maketarget> pour surcharger la
- cible par d&eacute;faut, bien que ce ne soit que rarement, sinon
- jamais, n&eacute;cessaire.</para>
- </sect3>
-
- <sect3>
- <title><makevar>DISTNAME</makevar></title>
-
- <para>Vous devez affecter &agrave; <makevar>DISTNAME</makevar> le nom de
- fichier de votre logiciel &agrave; porter. Les r&egrave;gles par
- d&eacute;faut veulent que le fichier de distribution
- (<makevar>DISTFILES</makevar>) s'appelle
- <makevar>DISTNAME</makevar><makevar>EXTRACT_SUFX</makevar> qui, si
- c'est un fichier d'archive habituel, sera quelque chose du style
- <literal>foozolix-1.0.tar.gz</literal> si
- <literal>DISTNAME=foozolix-1.0</literal>.</para>
-
- <para>Les r&egrave;gles par d&eacute;faut veulent aussi que l(es)
- archive(s) soi(en)t extraite(s) dans un sous-r&eacute;pertoire
- appel&eacute; <filename>work/<makevar>DISTNAME</makevar></filename>,
- e.g., <filename>work/foozolix-1.0/</filename>.</para>
-
- <para>Toutes ces conventions peuvent bien s&ucirc;r &ecirc;tre
- surcharg&eacute;es; ce sont simplement les valeurs par d&eacute;faut
- qui font gagner le plus de temps. Pour un logiciel &agrave; porter
- pour lequel il y a plusieurs fichiers de distribution,
- d&eacute;finissez simplement explicitement
- <makevar>DISTFILES</makevar>. S'il n'y a qu'un sous-ensemble de
- <makevar>DISTFILES</makevar> qui est effectivement constitu&eacute;
- d'archives extractibles, d&eacute;finissez-les dans
- <makevar>EXTRACT_ONLY</makevar>, qui surchargera la liste de
- <makevar>DISTFILES</makevar> au moment de l'extraction, les autres
- restant dans <makevar>DISTDIR</makevar> pour usage
- ult&eacute;rieur.</para>
- </sect3>
-
- <sect3>
- <title><makevar>PKGNAME</makevar></title>
-
- <para>Si <makevar>DISTNAME</makevar> n'est pas conforme &agrave; nos
- <link linkend="porting-pkgname">recommandations pour un bon nom de
- paquetage</link>, vous devriez affecter &agrave; la variable
- <makevar>PKGNAME</makevar> une meilleure valeur. Reportez-vous aux
- recommandations mentionn&eacute;es ci-dessus pour plus de
- d&eacute;tails.</para>
- </sect3>
-
- <sect3>
- <title><makevar>CATEGORIES</makevar></title>
-
- <para>Quand un paquetage est cr&eacute;e, il est mis dans
- <filename>/usr/ports/packages/All</filename> et des liens sont
- d&eacute;finis dans un ou plusieurs sous-r&eacute;pertoires de
- <filename>/usr/ports/packages</filename>. Les noms de ces
- sous-r&eacute;pertoires sont sp&eacute;cifi&eacute;s par la
- variable <makevar>CATEGORIES</makevar>. L'objectif est de faciliter
- la vie de l'utilisateur qui erre dans la quantit&eacute; de
- paquetages sur le site ftp ou le CD-ROM. Jettez un oeil s'il vous
- pla&icirc;t aux
- <link linkend="porting-categories">cat&eacute;gories</link>
- existantes et choisissez celles qui conviennent &agrave; votre
- logiciel &agrave; porter.</para>
-
- <para>Cette liste d&eacute;termina aussi o&ugrave; le logiciel sera
- import&eacute; dans l'arborescence du catalogue des logiciels
- port&eacute;s Si vous y mentionnez plus d'une cat&eacute;gorie, les
- fichiers iront dans le sous-r&eacute;pertoire de m&ecirc;me nom que la
- premi&egrave;re de ces cat&eacute;gories. Reportez-vous &agrave; la
- section <link linkend="porting-categories">Cat&eacute;gories</link>
- pour plus d'informations sur la mani&egrave;re de s&eacute;lectionner
- les bonnes cat&eacute;gories.</para>
-
- <para>Si votre logiciel &agrave; porter appartient vraiment &agrave; une
- autre cat&eacute;gorie que celles qui sont d&eacute;j&agrave;
- d&eacute;finies, vous pouvez m&ecirc;me cr&eacute;er une nouvelle
- cat&eacute;gorie. Dans ce cas, envoyez s'il vous pla&icirc;t un
- courrier &eacute;lectronique &agrave; la &a.ports; pour proposer la
- cr&eacute;ation d'une nouvelle cat&eacute;gorie.</para>
-
- <note>
- <para>Il n'y a pas de contr&ocirc;le des noms de cat&eacute;gorie.
- <command>make paquetage</command> cr&eacute;era sans sourcillier un
- nouveau sous-r&eacute;pertoire si vous orthographiez mal le nom de
- la cat&eacute;gorie, soyez donc prudent&nbsp;!</para>
- </note>
- </sect3>
-
- <sect3>
- <title><makevar>MASTER_SITES</makevar></title>
-
- <para>Indiquez le r&eacute;pertoire de l'&ldquo;URL&rdquo; ftp/http
- o&ugrave; se trouve l'archive originale dans
- <makevar>MASTER_SITES</makevar>. N'oubliez pas le &ldquo;slash&rdquo;
- final (<filename>/</filename>)&nbsp;!</para>
-
- <para>Les macros-instructions <command>make</command> essayerons
- d'utiliser cette valeur pour r&eacute;cup&eacute;rer le fichier de
- distribution avec <makevar>FETCH</makevar>, si elles ne le trouvent
- pas sur votre syst&egrave;me.</para>
-
- <para>Il est conseill&eacute; de mentionner plusieurs sites dans cette
- liste, si possible sur des continents diff&eacute;rents. Cela
- constituera un garde-fou contre les probl&egrave;mes du r&eacute;seau
- mondial, et nous envisageons m&ecirc;me d'ajouter la
- d&eacute;termination automatique du site de r&eacute;f&eacute;rence
- le plus proche, pour aller y chercher la distribution&nbsp;!</para>
-
- <para>Si l'archive d'origine se trouve sur l'une des archives classiques suivantes&nbsp;: X-contrib, GNU, Perl CPAN, TeX CTAN ou Linux Sunsite,
- vous pouvez y faire r&eacute;f&eacute;rence sous forme plus compacte
- en vous servant de <makevar>MASTER_SITE_XCONTRIB</makevar>,
- <makevar>MASTER_SITE_GNU</makevar>,
- <makevar>MASTER_SITE_PERL_CPAN</makevar>,
- <makevar>MASTER_SITE_TEX_CTAN</makevar> et
- <makevar>MASTER_SITE_SUNSITE</makevar>. Affectez simplement &agrave;
- <makevar>MASTER_SITE_SUBDIR</makevar> le chemin d'acc&egrave;s au
- fichier dans l'archive. En voici un exemple&nbsp;:</para>
-
- <programlisting>
-MASTER_SITES= ${MASTER_SITE_XCONTRIB}
-MASTER_SITE_SUBDIR= applications
- </programlisting>
-
- <para>L'utilisateur peut aussi configurer les variables
- <makevar>MASTER_SITE_*</makevar> dans
- <filename>/etc/make.conf</filename> pour surcharger vos choix, et
- utiliser &agrave; la place ses sites miroir favoris pour ces
- archives.</para>
- </sect3>
-
- <sect3 id="porting-patchfiles">
- <title><makevar>PATCHFILES</makevar></title>
-
- <para>Si votre logiciel &agrave; porter a besoin de
- correctifs&nbsp;-&nbsp;<foreignphrase>patches</foreignphrase>&nbsp;-&nbsp;disponibles
- via ftp ou http, affectez &agrave; <makevar>PATCHFILES</makevar> les
- noms des fichiers et &agrave; <makevar>PATCH_SITES</makevar>
- l'&ldquo;URL&rdquo; du r&eacute;pertoire o&ugrave; ils se trouvent (le
- format est le m&ecirc;me que pour
- <makevar>MASTER_SITES</makevar>).</para>
-
- <para>Si le correctif ne s'applique pas &agrave; la racine de
- l'arborescence des sources (i.e., <makevar>WKRSRC</makevar>) parce
- qu'il contient des chemins d'acc&egrave;s suppl&eacute;mentaires,
- d&eacute;finissez <makevar>PATCH_DIST_STRIP</makevar> en
- cons&eacute;quence. Par exemple, si tous les noms de fichiers dans le
- correctif sont pr&eacute;c&eacute;d&eacute;s de
- <literal>foozolix-1.0/</literal>, configurez alors
- <literal>PATCH_DIST_STRIP=-p1</literal>.</para>
-
- <para>Ne vous inqui&eacute;tez pas si les correctifs sont
- compress&eacute;s, ils seront automatiquement
- d&eacute;compress&eacute;s si les noms des fichiers se terminent par
- <filename>.gz</filename> ou <filename>.Z</filename>.</para>
-
- <para>Si le correctif est distribu&eacute; avec d'autres fichiers, de la
- documentation par exemple, sous forme d'archive compress&eacute;e avec
- <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry>,
- vous ne pouvez pas utiliser <makevar>PATCHFILES</makevar>. Dans ce
- cas, ajoutez le nom et la localisation du correctif &agrave;
- <makevar>DISTFILES</makevar> et <makevar>MASTER_SITES</makevar>. Puis,
- appliquez le correctif depuis la cible
- <maketarget>pre-patch</maketarget>, soit en y ex&eacute;cutant la
- commande <command>patch</command>, soit en copiant le correctif dans
- le r&eacute;pertoire <makevar>PATCHDIR</makevar> et en l'appelant
- <filename>patch-<replaceable>xx</replaceable></filename>.</para>
-
- <note>
- <para>Remarquez que cette archive sera extraite en m&ecirc;me temps
- que le source de base, il n'est donc pas n&eacute;cessaire de
- l'extraire explicitement si elle est normalement compress&eacute;e
- avec
- <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
- ou
- <citerefentry><refentrytitle>compress</refentrytitle> <manvolnum>1</manvolnum></citerefentry>.
- Si vous le faites n&eacute;anmoins, faites attention &agrave;
- ne rien &eacute;craser de ce qui existe dans le r&eacute;pertoire.
- Et n'oubliez pas non plus d'ajouter une commande pour supprimer le
- correctif recopi&eacute; &agrave; la cible
- <maketarget>pre-clean</maketarget>.</para>
- </note>
- </sect3>
-
- <sect3>
- <title><makevar>MAINTAINER</makevar></title>
-
- <para>Indiquez ici votre adresse &eacute;lectronique. S'il vous
- pla&icirc;t. <!-- smiley --><emphasis>:)</emphasis></para>
-
- <para>Pour une description d&eacute;taill&eacute; de la
- responsabilit&eacute; du charg&eacute; de la maintenance,
- reportez-vous &agrave; la section
- <link linkend="policies-maintainer">MAINTAINER des
- <filename>Makefile</filename>s</link>.</para>
- </sect3>
-
- <sect3>
- <title>D&eacute;pendances</title>
-
- <para>De nombreux logiciels port&eacute;s d&eacute;pendent d'autres
- logiciels. Il y a cinq variables que vous pouvez utiliser pour vous
- assurer qu'il y a tout ce qu'il faut sur la machine de l'utilisateur.
- Il y a aussi des variables pr&eacute;d&eacute;finies pour les cas les
- plus courants, et quelques autres pour contr&ocirc;ler le comportement
- vis-&agrave;-vis des d&eacute;pendances.</para>
-
- <sect4>
- <title><makevar>LIB_DEPENDS</makevar></title>
-
- <para>Cette variable d&eacute;finit les biblioth&egrave;ques
- partag&eacute;es dont d&eacute;pend le logiciel &agrave; porter.
- C'est une liste de tuples
- <replaceable>bibloth&egrave;que</replaceable>:<replaceable>r&eacute;pertoire</replaceable><optional><replaceable>:cible</replaceable></optional>
- o&ugrave; <replaceable>biblioth&egrave;que</replaceable> est
- le nom de la biblioth&egrave;que partag&eacute;e,
- <replaceable>r&eacute;pertoire</replaceable> est le nom du
- r&eacute;pertoire o&ugrave; la trouver si elle n'est pas
- encore install&eacute;e et <replaceable>cible</replaceable> celui de
- la cible &agrave; ex&eacute;cuter dans ce r&eacute;pertoire. Par
- exemple&nbsp:</para>
- <programlisting>
-LIB_DEPENDS= jpeg\\.9\\.:${PORTSDIR}/graphics/jpeg:install
- </programlisting>
- <para>cherchera une biblioth&egrave;que partag&eacute;e
- <literal>jpeg</literal> avec le num&eacute;ro de version majeure 9
- et descendra dans le sous-r&eacute;pertoire
- <filename>graphics/jpeg</filename> de l'arborescence du catalogue
- des logiciels port&eacute;s pour la compiler et l'installer, s'il ne
- la trouve pas. La <replaceable>cible</replaceable> peut &ecirc;tre
- omise si elle est &eacute;gale &agrave;
- <makevar>DEPENDS_TARGET</makevar> (dont la valeur par d&eacute;faut
- est <literal>install</literal>).</para>
-
- <note>
- <para><replaceable>biblioth&egrave;que</replaceable> est
- pass&eacute; en argument &agrave;
- <command>ldconfig -r | grep -wF</command>. Cette variable ne doit
- pas comporter d'expression r&eacute;guli&egrave;re.</para>
- </note>
-
- <para>La d&eacute;pendance est v&eacute;rifi&eacute;e deux fois, une
- premi&egrave;re fois depuis la cible
- <maketarget>extract</maketarget> et ensuite par la cible
- <maketarget>install</maketarget>. Le nom de la d&eacute;pendance est
- aussi enregistr&eacute; dans le paquetage de sorte que
- <command>pkg_add</command> l'installe automatiquement si elle n'est
- pas disponible sur le syst&egrave;me de l'utilisateur.</para>
- </sect4>
-
- <sect4>
- <title><makevar>RUN_DEPENDS</makevar></title>
-
- <para>Cette variable d&eacute;finit quels ex&eacute;cutables et
- fichiers doivent &ecirc;tre pr&eacute;sents pour pouvoir utiliser le
- logiciel port&eacute;. C'est une liste de tuples
- <replaceable>chemin d'acc&egrave;s</replaceable>:<replaceable>r&eacute;pertoire</replaceable><optional><replaceable>:cible</replaceable></optional>
- o&ugrave; <replaceable>chemin d'acc&egrave;s</replaceable> est le
- nom de l'ex&eacute;cutable ou du fichier,
- <replaceable>r&eacute;pertoire</replaceable> est le
- r&eacute;pertoire o&ugrave; le trouver s'il n'est pas encore
- install&eacute; et <replaceable>cible</replaceable> est la cible
- &agrave; ex&eacute;cuter dans ce r&eacute;pertoire. Si
- <replaceable>chemin d'acc&egrave;s</replaceable> commence par un
- &ldquo;<foreignphrase>slash</foreignphrase>
- (<literal>/</literal>), il est trait&eacute; comme un fichier et son
- existence est test&eacute;e avec <command>test -e</command>&nbsp;;
- sinon, on suppose que c'est un ex&eacute;cutable, et c'est la
- commande <command>which -s</command> qui est utilis&eacute;e pour
- voir si le programme existe dans les chemins d'acc&egrave;s par
- d&eacute;faut de l'utilisateur.</para>
-
- <para>Par exemple&nbsp;:</para>
-
- <programlisting>
-RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wish8.0:${PORTSDIR}/x11-toolkits/tk80</programlisting>
-
- <para>regardera si le fichier ou le r&eacute;pertoire
- <filename>/usr/local/etc/innd</filename> existe, et le compilera et
- l'installera dans le sous-r&eacute;pertoiree
- <filename>news/inn</filename> de l'arborescence du catalogue des
- logiciels port&eacute;s s'il ne le trouve pas. Il s'assurera aussi
- de la pr&eacute;sence d'un ex&eacute;cutable appel&eacute;
- <command>wish8.0</command> dans vos chemins d'acc&egrave;s par
- d&eacute;faut, et ira dans le sous-r&eacute;pertoire
- <filename>x11-toolkits/tk80</filename> de l'arborescence du
- catalogue des logiciels port&eacute;s pour le compiler et
- l'installer s'il ne le trouve pas.</para>
-
- <note>
- <para>Dans ce cas, <command>innd</command> est en fait un
- ex&eacute;cutable&nbsp;; si un programme n'est pas &agrave; la
- place normale o&ugrave; on s'attend &agrave; le trouver dans les
- chemins d'acc&egrave;s par d&eacute;faut de l'utilisateur, il faut
- utiliser son nom complet depuis la racine.</para>
- </note>
-
- <para>La d&eacute;pendance est v&eacute;rifi&eacute;e par la cible
- <maketarget>install</maketarget>. Le nom de la d&eacute;pendance est
- aussi enregistr&eacute; dans le paquetage de sorte que
- <command>pkg_add</command> l'installe automatiquement si elle n'est
- pas disponible sur le syst&egrave;me de l'utilisateur. La
- <replaceable>cible</replaceable> peut &ecirc;tre omise si elle est
- &eacute;gale &agrave; <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect4>
-
- <sect4>
- <title><makevar>BUILD_DEPENDS</makevar></title>
-
- <para>Cette variable d&eacute;finit quels ex&eacute;cutables et
- fichiers sont n&eacute;cessaires pour installer le logiciel. Comme
- <makevar>RUN_DEPENDS</makevar>, c'est une liste de tuples
- <replaceable>chemin d'acc&egrave;s</replaceable>:<replaceable>r&eacute;pertoire</replaceable><optional><replaceable>:cible</replaceable></optional>.
- Par exemple&nbsp;:</para>
- <programlisting>
-BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
- </programlisting>
- <para>recherchera un ex&eacute;cutable appel&eacute;
- <command>unzip</command> et ira dans le sous-r&eacute;pertoire
- <filename>archivers/unzip</filename> de l'arborescence du
- catalogue des logiciels port&eacute;s pour le compiler et
- l'installer s'il ne le trouve pas.</para>
-
- <note>
- <para>&ldquo;installer&rdquo; recouvre ici tout le processus, de
- l'extraction &agrave; la compilation. La d&eacute;pendance est
- v&eacute;rifi&eacute;e par la cible
- <maketarget>extract</maketarget>. La
- <replaceable>cible</replaceable> peut &ecirc;tre omise si elle
- est &eacute;gale &agrave;
- <makevar>DEPENDS_TARGET</makevar>.</para>
- </note>
- </sect4>
-
- <sect4>
- <title><makevar>FETCH_DEPENDS</makevar></title>
-
- <para>Cette variable d&eacute;finit quels ex&eacute;cutables le
- logiciel a besoin de r&eacute;cup&eacute;rer. Comme les deux
- pr&eacute;c&eacute;dentes, c'est une liste de tuples
- <replaceable>chemin d'acc&egrave;s</replaceable>:<replaceable>r&eacute;pertoire</replaceable><optional><replaceable>:cible</replaceable></optional>.
- Par exemple&nbsp;:</para>
- <programlisting>
-FETCH_DEPENDS= ncftp2:${PORTSDIR}/net/ncftp2
- </programlisting>
- <para>recherchera un ex&eacute;cutable appel&eacute;
- <command>ncftp2</command> et descendera dans le
- sous-r&eacute;pertoire <filename>net/ncftp2</filename> de
- l'arborescence du catalogue des logiciels port&eacute;s pour le
- compiler et l'installer s'il ne le trouve pas.</para>
-
- <para>La d&eacute;pendance est v&eacute;rifi&eacute;e par la cible
- <maketarget>fetch</maketarget>. La <replaceable>cible</replaceable>
- peut &ecirc;tre omise si elle est &eacute;gale &agrave;
- <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect4>
-
- <sect4>
- <title><makevar>DEPENDS</makevar></title>
-
- <para>S'il y a une d&eacute;pendance qui ne rentre pas dans les quatre
- cat&eacute;gories pr&eacute;c&eacute;dentes ou si votre logiciel
- &agrave; porter a besoin que les sources d'un autre logiciel soient
- install&eacute;s en plus de ce logiciel lui-m&ecirc;me,
- utilisez cette variable. C'est une liste de
- <replaceable>r&eacute;pertoire</replaceable><optional><replaceable>:cible</replaceable></optional>,
- puisqu'il n'y a rien &agrave; v&eacute;rifier, &agrave; l'inverse
- des quatre pr&eacute;c&eacute;dentes. La
- <replaceable>cible</replaceable> peut &ecirc;tre omise si elle est
- &eacute;gale &agrave; <makevar>DEPENDS_TARGET</makevar>.</para>
- </sect4>
-
- <sect4>
- <title>Variables pr&eacute;d&eacute;finies</title>
-
- <para>Utilisez <literal>USE_XLIB=yes</literal> si votre logiciel
- &agrave; porter a besoin que le syst&egrave;me <application>X
- Window</application> soit install&eacute; (c'est implicite avec
- <makevar>USE_IMAKE</makevar>). Utilisez
- <literal>USE_GMAKE=yes</literal> si votre logiciel &agrave; porter a
- besoin de GNU <command>make</command> au lieu de BSD
- <command>make</command>. Utilisez
- <literal>USE_AUTOCONF=yes</literal> si votre logiciel &agrave;
- porter a besoin que GNU <command>autoconf</command> soit
- ex&eacute;cut&eacute;. Utilisez <literal>USE_QT=yes</literal> si
- votre logiciel utilise la bo&icirc;te &agrave; outils
- <application>Qt</application>. Utilisez
- <literal>USE_PERL5=yes</literal> si votre logiciel &agrave; porter a
- besoin de la version 5 du langage perl. (Cette derni&egrave;re
- variable est particuli&egrave;rement importante parce que certaines
- versions de FreeBSD comportent perl 5 install&eacute; de base, mais
- d'autres non.)</para>
- </sect4>
-
- <sect4>
- <title>Notes &agrave; propos des d&eacute;pendances</title>
-
- <para>Comme indiqu&eacute; plus haut, la cible &agrave; appeler par
- d&eacute;faut quand il y a un d&eacute;pendance requise est
- <maketarget>DEPENDS_TARGET</maketarget>. Sa valeur par d&eacute;faut
- est <literal>install</literal>. C'est une variable utilisateur. Elle
- n'est jamais d&eacute;finie dans le <filename>Makefile</filename>
- d'un logiciel &agrave; porter. Si votre logiciel &agrave; porter a
- besoin qu'une d&eacute;pendance soit g&eacute;r&eacute;e d'une
- fa&ccedil;on particuli&egrave;re, utilisez la partie
- <literal>:cible</literal> des variables <makevar>*_DEPENDS</makevar>
- au lieu de red&eacute;finir
- <makevar>DEPENDS_TARGET</makevar>.</para>
-
- <para>Quand vous tapez <command>make clean</command>, les
- d&eacute;pendances sont aussi purg&eacute;es. Si vous ne voulez pas
- qu'il en soit ainsi, d&eacute;finissez la variable
- <makevar>NOCLEANDEPENDS</makevar> dans votre environnement.</para>
-
- <para>Pour d&eacute;pendre sans condition d'un autre logiciel
- port&eacute;, il est habituel d'utiliser l'indication
- <literal>nonexistent</literal> comme premier champ de
- <makevar>BUILD_DEPENDS</makevar> ou
- <makevar>RUN_DEPENDS</makevar>. N'utilisez cela que si vous avez
- besoin du source d'un autre logiciel port&eacute;. Vous pouvez aussi
- avec cette cible &eacute;conomiser du temps de compilation. Par
- exemple&nbsp;:</para>
-
- <programlisting>
-BUILD_DEPENDS= /nonexistent:${PORTSDIR}/graphics/jpeg:extract
- </programlisting>
-
- <para>ira toujours dans le r&eacute;pertoire du logiciel port&eacute;
- JPEG pour l'extraire.</para>
-
- <para>N'utilisez <makevar>DEPENDS</makevar> que s'il n'y a pas d'autre
- moyen d'obtenir ce que vous voulez. Cela provoquera toujours
- la compilation (et par d&eacute;faut l'installation) d'autres
- logiciels port&eacute;s et la d&eacute;pendance sera aussi
- inclue aux paquetages. Si c'est vraiment ce dont vous avez besoin,
- je vous recommande d'utiliser <literal>BUILD_DEPENDS</literal> et
- <literal>RUN_DEPENDS</literal> &agrave; la place&mdash;au moins
- votre intention sera claire.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>M&eacute;canismes de compilation</title>
-
- <para>Si votre paquetage utilise GNU <command>make</command>,
- positionnez <literal>USE_GMAKE=yes</literal>. Si votre paquetage
- utilise <command>configure</command>, positionnez
- <literal>HAS_CONFIGURE=yes</literal>. Si votre paquetage utilise GNU
- <command>configure</command>, positionnez
- <literal>GNU_CONFIGURE=yes</literal> (ce qui implique
- <literal>HAS_CONFIGURE</literal>). Si vous voulez passer des arguments
- suppl&eacute;mentaires &agrave; <command>configure</command> (la liste
- d'arguments par d&eacute;faut est
- <literal>--prefix=&dollar;{PREFIX}</literal> pour GNU
- <command>configure</command> et elle est vide pour les autres versions
- de <command>configure</command>), d&eacute;finissez ces arguments
- compl&eacute;mentaires avec la variable
- <makevar>CONFIGURE_ARGS</makevar>. Si votre paquetage utilise GNU
- <command>autoconf</command>, positionnez
- <literal>USE_AUTOCONF=yes</literal>. Cela implique
- <makevar>GNU_CONFIGURE</makevar>, et provoquera l'ex&eacute;cution
- d'<command>autoconf</command> avant celle de
- <command>configure</command>.</para>
-
- <para>Si votre paquetage est une application X qui g&eacute;n&egrave;re
- des <filename>Makefile</filename>s &agrave; partir
- d'<filename>Imakefile</filename>s avec <command>imake</command>,
- positionnez alors <literal>USE_IMAKE=yes</literal>. A l'&eacute;tape
- de configuration, la commande <command>xmkmf -a</command> sera
- automatiquement ex&eacute;cut&eacute;e. Si l'option
- <option>-a</option> pose une probl&egrave;me pour votre portage,
- positionnez <literal>XMKMF=xmkmf</literal>. Si le portage utilise
- <command>imake</command> mais ne comprend pas la cible
- <maketarget>install.man</maketarget>, il faut alors d&eacute;finir
- <literal>NO_INSTALL_MANPAGES=yes</literal>. De plus, l'auteur
- d'origine du logiciel devrait &ecirc;tre &ldquo;fusill&eacute;&rdquo;.
- <!-- smiley --><emphasis>:&gt;</emphasis></para>
-
- <para>Si le <filename>Makefile</filename> d'origine du logiciel que vous
- portez utilise une autre cible principale que
- <maketarget>all</maketarget>, d&eacute;finissez en cons&eacute;quence
- <makevar>ALL_TARGET</makevar>. Il en va de m&ecirc:me pour
- <maketarget>install</maketarget> et
- <makevar>INSTALL_TARGET</makevar>.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Consid&eacute;rations particuli&egrave;res</title>
-
- <para>Il y a quelques autres points &agrave; prendre en compte lorsque
- vous portez un logiciel. Cette section d&eacute;taille les plus
- fr&eacute;quemment rencontr&eacute;s.</para>
-
- <sect3>
- <title><command>ldconfig</command></title>
-
- <para>Si votre portage installe une biblioth&egrave;que partag&eacute;e,
- ajoutez une cible <maketarget>post-install</maketarget> &agrave; votre
- <filename>Makefile</filename> qui ex&eacute;cute
- <literal>&dollar;{LDCONFIG} -m</literal> sur le r&eacute;pertoire
- o&ugrave; la nouvelle biblioth&egrave;que est install&eacute;e
- (habituellement <filename><makevar>PREFIX</makevar>/lib</filename>)
- pour l'enregistrer dans le cache de biblioth&egrave;que
- partag&eacute;e.</para>
-
- <para>Ajoutez aussi une ligne <literal>@exec /sbin/ldconfig -m</literal>
- et la ligne <literal>@unexec /sbin/ldconfig -R</literal>
- correspondante &agrave; votre fichier <filename>pkg/PLIST</filename>
- de fa&ccedil;on &agrave; ce que l'utilisateur qui installe le
- paquetage puisse utiliser imm&eacute;diatement la biblioth&egrave;que
- partag&eacute;e et qu'&agrave; la d&eacute;sinstallation, le
- syst&egrave;me sache que la biblioth&egrave;que n'est plus l&agrave;.
- Ces lignes doivent suivre imm&eacute;diatement celle qui concerne la
- biblioth&egrave;que partag&eacute;e elle-m&ecirc;me, comme
- dans&nbsp;:</para>
-
- <programlisting>
-lib/libtvl80.so.1
-@exec /sbin/ldconfig -m %D/lib
-@unexec /sbin/ldconfig -R
- </programlisting>
-
- <para>N'ajoutez jamais, mais vraiment <emphasis>jamais</emphasis> de
- ligne qui ne contienne que <literal>ldconfig</literal> sans argument
- &agrave; votre <filename>Makefile</filename> ou &agrave; votre
- <filename>pkg/PLIST</filename>. Cela r&eacute;initialisera le cache de
- biblioth&egrave;que partag&eacute;e avec le contenu de
- <filename>/usr/lib</filename> uniquement, et v&eacute;rolera
- royalement la machine de l'utilisateur (&ldquo;A l'aide, xinit ne
- fonctionne plus depuis que j'ai install&eacute; ce logiciel
- port&eacute;&nbsp;!). Quiconque commet ce crime sera fusill&eacute;
- et d&eacute;coup&eacute; en 65.536 morceaux avec un couteau
- rouill&eacute;, son foie sera d&eacute;chiquet&eacute; par une bande
- de corbeaux et il r&ocirc;tira &eacute;ternellement au tr&eacute;fonds
- de l'enfer (pas n&eacute;cessairement dans cet ordre&hellip;)</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Support ELF</title>
-
- <para>Comme FreeBSD passe &agrave; ELF peu de temps apr&egrave;
- 3.0-release, il faut convertir de nombreux ports qui compilent des
- bibloth&egrave;ques partag&eacute;es pour qu'ils supportent ELF. Cette
- t&acirc;che est compliqu&eacute;e par le fait qu'un syst&egrave;me 3.0
- peut s'ex&eacute;cuter &agrave; la fois en ELF et en a.out et que nous
- voulons supporter la version 2.2 aussi longtemps que possible. Voici
- quelques indications pour la conversion de logiciels port&eacute;s a.out
- pour qu'ils supportent &agrave; la fois la compilation en a.out et
- ELF.</para>
-
- <para>Certains points cit&eacute;s ne s'appliquent qu'&agrave; la
- conversion elle-m&ecirc;me. Ils resteront mentionn&eacute;s
- n&eacute;anmoins quelque temps pour le cas o&ugrave; vous tomberiez sur
- un ancien logiciel port&eacute; que vous voulez mettre &agrave;
- niveau.</para>
-
- <sect3>
- <title>Mettre de c&ocirc;t&eacute; les biblioth&egrave;ques
- a.out</title>
-
- <para>Les biblioth&egrave;ques a.out doivent &ecirc;tre
- d&eacute;plac&eacute;es de <filename>/usr/local/lib</filename> et
- autres vers un sous-r&eacute;pertoire <filename>aout</filename>. (Si
- vous ne les mettez pas de c&ocirc;t&eacute;, les logiciels
- port&eacute;s ELF les &eacute;craseront sans sourciller.)
- La cible <maketarget>move-aout-libs</maketarget> du
- <filename>src/Makefile</filename> de 3.0-current (appel&eacute; par
- <maketarget>aout-to-elf</maketarget>) le fera pour vous. Elle ne
- d&eacute;placera que les biblioth&egrave;ques a.out, il n'y a donc pas
- de risque &agrave; l'appeler sur un syst&egrave;me o&ugrave; il y a
- &agrave; la fois des biblioth&egrave;ques ELF et a.out dans les
- r&eacute;pertoires standard.</para>
- </sect3>
-
- <sect3>
- <title>Format</title>
-
- <para>L'arborescence du catalogue des logiciels port&eacute;s compilera
- les paquetages au format utilis&eacute; par la machine,
- c'est-&agrave;-dire a.out en 2.2 et a.out ou ELF en 3.0 selon ce que
- retourne la commande <command>`objformat`</command>. D'autre part,
- un fois que les utilisateurs d&eacute;placent les biblioth&egrave;ques
- a.out dans un sous-r&eacute;pertoire, la compilation des
- biblioth&egrave;ques a.out ne sera plus support&eacute;. (i.e., cela
- peut encore marcher si vous savez ce que vous faites, mais vous devrez
- vous d&eacute;brouiller par vous-m&ecirc;me.)</para>
-
- <note>
- <para>Si un logiciel port&eacute; ne fonctionne qu'en a.out, affectez
- &agrave; <makevar>BROKEN_ELF</makevar> une cha&icirc;ne de
- caract&egrave;res qui d&eacute;crive pourquoi. Ces logiciels ne
- seront pas g&eacute;n&eacute;r&eacute;s &agrave; la compilation sur
- un syst&egrave;me ELF.</para>
- </note>
- </sect3>
-
- <sect3>
- <title><makevar>PORTOBJFORMAT</makevar></title>
-
- <para><filename>bsd.port.mk</filename> affectera &agrave;
- <makevar>PORTOBJFORMAT</makevar> la valeur <literal>aout</literal> ou
- <literal>elf</literal> et l'exportera dans les environnements
- <envar>CONFIGURE_ENV</envar>, <envar>SCRIPTS_ENV</envar> et
- <envar>MAKE_ENV</envar>. (Ce sera toujours
- <literal>aout</literal> sous 2.2-STABLE). Elle est aussi pass&eacute;e
- &agrave; <maketarget>PLIST_SUB</maketarget> sous la forme
- <literal>PORTOBJFORMAT=${PORTOBJFORMAT}</literal>. (Reportez-vous aux
- explications concernant <literal>ldconfig</literal> plus bas.)</para>
-
- <para>Cette variable est d&eacute;finie par la ligne suivante de
- <filename>bsd.port.mk</filename>&nbsp;:</para>
-
- <programlisting>
-PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout</programlisting>
-
- <para>Le processus de compilation des logiciels port&eacute;s devrait
- toujours utiliser cette variable pour d&eacute;cider de ce qu'il faut
- faire. Cependant, si la proc&eacute;dure
- <filename>configure</filename> associ&eacute;e
- d&eacute;tecte d&eacute;j&agrave; automatiquement un syst&egrave;me
- ELF, il n'est pas n&eacute;cessaire de se r&eacute;f&eacute;rer
- &agrave; <makevar>PORTOBJFORMAT</makevar>.</para>
- </sect3>
-
- <sect3>
- <title>Compilation des biblioth&egrave;ques partag&eacute;es</title>
-
- <para>Ce qui suit d&eacute;crit les diff&eacute;rences de gestion des
- biblioth&egrave;ques partag&eacute;es entre les formats ELF et
- a.out.</para>
-
- <itemizedlist>
- <listitem>
- <para>Versions de biblioth&egrave;ques partag&eacute;es</para>
-
- <para>Une biblioth&egrave;que partag&eacute;e ELF doit s'appeler
- <filename>libfoo.so.<replaceable>M</replaceable></filename>,
- o&ugrave; <replaceable>M</replaceable> est un unique num&eacute;ro
- de version et une biblioth&egrave;que partag&eacute;e a.out doit
- s'appeler
- <filename>libfoo.so.<replaceable>M</replaceable>.<replaceable>N</replaceable></filename>,
- o&ugrave; <replaceable>M</replaceable> est le num&eacute;ro de
- version majeure et
- <replaceable>N</replaceable> celui de version mineure.
- Ne confondez pas&nbsp;; n'installez <emphasis>jamais</emphasis> de
- biblioth&egrave;que partag&eacute;e ELF appel&eacute;e
- <filename>libfoo.so.<replaceable>N</replaceable>.<replaceable>M</replaceable></filename>
- ou de biblioth&egrave;que partag&eacute;e A.out (ou de lien
- symbolique dessus) appel&eacute;e
- <filename>libfoo.so.<replaceable>N</replaceable></filename>.</para>
- </listitem>
-
- <listitem>
- <para>Ligne de commande de l'&eacute;diteur de liens</para>
-
- <para>En supposant que <command>cc -shared</command>
- soit utilis&eacute; plut&ocirc;t que <command>ld</command>
- directement, la seule diff&eacute;rence est qu'il faut ajouter
- <option>-Wl,-<replaceable>soname,libfoo.so.M</replaceable></option>
- sur la ligne de commande pour ELF.</para>
- </listitem>
- </itemizedlist>
-
- <para>Il faut d&eacute;finir un lien symbolique de
- <filename>libfoo.so</filename> vers
- <filename>libfoo.so.<replaceable>N</replaceable></filename> pour que
- les &eacute;diteurs de liens ELF s'y retrouvent. Comme il doit
- &ecirc;tre aussi mentionn&eacute; dans
- <filename>PLIST</filename>, cela ne posera pas de probl&egrave;me dans
- le cas de a.out (pour certains logiciels port&eacute;s, il faut
- m&ecirc;me que ce lien existe pour l'&eacute;dition de liens
- dynamiques), vous devriez d&eacute;finir ce lien quelle que soit la
- valeur de la variable <makevar>PORTOBJFORMAT</makevar>.</para>
- </sect3>
-
- <sect3>
- <title><makevar>LIB_DEPENDS</makevar></title>
-
- <para>Tous les <filename>Makefile</filename>s des logiciels
- port&eacute;s sont &agrave; modifier pour supprimer les num&eacute;ros
- de versions mineures de <makevar>LIB_DEPENDS</makevar>, ainsi que le
- support des expressions r&eacute;quli&egrave;res (e.g.,
- <literal>foo\\.1\\.\\(33|40\\)</literal> devient
- <literal>foo.2</literal>.) La correspondance sera effectu&eacute;e par
- <command>grep -wF</command>.</para>
- </sect3>
-
- <sect3>
- <title><filename>PLIST</filename></title>
-
- <para><filename>PLIST</filename> doit contenir les noms courts (ELF) des
- biblioth&egrave;ques partag&eacute;es si leur num&eacute;ro de version
- mineure a.out est z&eacute;ro et les noms longs (a.out) dans le cas
- contraire. <filename>bsd.port.mk</filename> ajoutera automatiquement
- le <literal>.0</literal> &agrave; la fin des noms courts de
- biblioth&egrave;ques partag&eacute;es si
- <makevar>PORTOBJFORMAT</makevar> vaut <literal>aout</literal>, et
- supprimera le num&eacute;ro de version mineure des noms longs si
- <makevar>PORTOBJFORMAT</makevar> vaut <literal>elf</literal>.</para>
-
- <para>Au cas o&ugrave; vous auriez vraiment besoin d'installer des
- biblioth&egrave;ques partag&eacute;es avec deux num&eacute;ros de
- version sur un syst&egrave;me ELF ou avec un seul num&eacute;ro de
- version sur un syst&egrave;me a.out (par exemple, pour les logiciels
- port&eacute;s qui installent des biblioth&egrave;ques pour la
- compatibilit&eacute; avec d'autres syst&egrave;mes d'exploitation),
- d&eacute;finissez la variable <makevar>NO_FILTER_SHLIBS</makevar>.
- Cela inhibera le m&eacute;canisme de modification de
- <filename>PLIST</filename> d&eacute;crit au paragraphe
- pr&eacute;c&eacute;dent.</para>
- </sect3>
-
- <sect3>
- <title><literal>ldconfig</literal></title>
-
- <para>La ligne <literal>ldconfig</literal> des
- <filename>Makefile</filename>s doit contenir&nbsp;:</para>
-
- <programlisting>
-${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ....
- </programlisting>
-
- <para>Dans <filename>PLIST</filename>, il doit y avoir&nbsp;:</para>
-
- <programlisting>
-@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m ...
-@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R
- </programlisting>
-
- <para>Cela pour garantir que la bonne commande
- <command>ldconfig</command> sera appel&eacute;e en fonction du format
- du paquetage et non du format par d&eacute;faut sur le
- syst&egrave;me.</para>
- </sect3>
- </sect2>
-
- <sect2 id="porting-masterdir">
- <title><makevar>MASTERDIR</makevar></title>
-
- <para>Si votre logiciel port&eacute; a besoin de g&eacute;n&eacute;rer des
- versions l&eacute;g&egrave;rement diff&eacute;rentes des paquetages en
- fonction de la valeur d'une variable (la r&eacute;solution ou le format
- de page par exemple), cr&eacute;ez un sous-r&eacute;pertoire par
- paquetage pour qu'il soit plus facile aux utilisateurs de savoir quoi
- faire, mais essayez de partager autant de fichiers que possible entre
- logiciels port&eacute;s. Vous aurez normalement besoin d'un
- <filename>Makefile</filename> tr&egrave;s court dans tous les
- sous-r&eacute;pertoires &agrave; l'exception d'un seul. Dans ces
- <filename>Makefile</filename>s, vous pouvez utiliser la variable
- <makevar>MASTERDIR</makevar> pour indiquer le r&eacute;pertoire
- o&ugrave; se trouvent le reste des fichiers. Utilisez aussi une variable
- pour une partie de
- <link linkend="porting-pkgname"><makevar>PKGNAME</makevar></link> de
- fa&ccedil;on &agrave; ce que les paquetages aient des noms
- diff&eacute;rents.</para>
-
- <para>Cela sera plus clair avec un exemple. C'est un extrait de
- <filename>japanese/xdvi300/Makefile</filename>&nbsp;:</para>
-
- <programlisting>
-PKGNAME= ja-xdvi${RESOLUTION}-17
- :
-# default
-RESOLUTION?= 300
-.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${RESOLUTION} != 300 && ${RESOLUTION} != 400
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@${ECHO} "Erreur: valeur incorrecte pour RESOLUTION: \"${RESOLUTION}\""
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@${ECHO} "Les valeurs acceptables sont : 118, 240, 300 (par d&eacute;faut) et 400."
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@${FALSE}
-.endif</programlisting>
-
- <para><filename>japanese/xdvi300</filename> contient aussi les fichiers
- de &ldquo;<foreignphrase>patches</foreignphrase>&rdquo;, paquetages,
- etc. Si vous y tapez <command>make</command>, la valeur de la
- r&eacute;solution sera prise par d&eacute;faut (300) et le logiciel
- port&eacute; compilera normalement.</para>
-
- <para>Poue les autres r&eacute;solutions, voici le
- <filename>xdvi118/Makefile</filename>
- <emphasis>complet</emphasis>&nbsp;:</para>
-
- <programlisting>
-RESOLUTION= 118
-MASTERDIR= ${.CURDIR}/../xdvi300
-
-.include ${MASTERDIR}/Makefile
- </programlisting>
-
- <para>(<filename>xdvi240/Makefile</filename> et
- <filename>xdvi400/Makefile</filename> sont identiques). La
- d&eacute;finition de <makevar>MASTERDIR</makevar> dit &agrave;
- <filename>bsd.port.mk</filename> que le jeu de sous-r&eacute;pertoires
- habituels tels que <makevar>PATCHDIR</makevar> et
- <makevar>PKGDIR</makevar> se trouvent dans
- <filename>xdvi300</filename>. La ligne <literal>RESOLUTION=118</literal>
- surchargera la ligne <literal>RESOLUTION=300</literal> de
- <filename>xdvi300/Makefile</filename> et le logiciel port&eacute; sera
- compil&eacute; avec une r&eacute;solution de 118.</para>
- </sect2>
-
- <sect2>
- <title>Versions des bibloth&egrave;ques partag&eacute;es</title>
-
- <para>Lisez tout d'abord s'il vous pla&icirc;t nos
- <link linkend="policies-shlib">Instructions &agrave; propos des versions
- de biblioth&egrave;ques partag&eacute;es</link> pour savoir comment
- g&eacute;rer de fa&ccedil;on g&eacute;n&eacute;rale les versions de
- biblioth&egrave;ques. Ne supposez pas aveuglement que les auteurs des
- logiciels savent ce qu'ils font; ce n'est, la plupart du temps, pas le
- cas. Il est tr&egrave;s important que ces d&eacute;tails soient
- attentivement examin&eacute;s, parce que nous nous trouvons dans une
- situation assez particuli&egrave;re dans laquelle nous devons faire
- cohabiter des douzaines de logiciels potentiellement incompatibles.
- Les importations &agrave; la va-vite de logiciels ont pos&eacute; dans
- le pass&eacute; de gros probl&egrave;mes en ce qui concerne les
- biblioth&egrave;ques partag&eacute;es (vous &ecirc;tes vous jamais
- demand&eacute; pourquoi le num&eacute;ro de version de la
- biblioth&egrave;que partag&eacute;e <filename>jpeg-6b</filename>
- &eacute;tait 0.9?). En cas de doute, envoyez un message &agrave;
- &a.ports;. La plupart du temps, votre t&acirc;che se limitera &agrave;
- d&eacute;terminer la bonne version de biblioth&egrave;que
- partag&eacute;e et &agrave; appliquer les bonnes mises &agrave;
- niveau&nbsp;-&nbsp;<foreignphrase>patches</foreignphrase>&nbsp;-&nbsp;pour
- l'impl&eacute;menter.</para>
-
- <para>N&eacute;anmoins, s'il y a une biblioth&egrave;que port&eacute;e qui
- n'est qu'une m&ecirc;me version de la m&ecirc;me biblioth&egrave;que
- partag&eacute;e d&eacute;j&agrave; pr&eacute;sente au catalogue, la
- situation est beaucoup plus complexe. Bri&egrave;vement,
- l'impl&eacute;mentation sous FreeBSD ne permet pas &agrave;
- l'utilisateur de pr&eacute;ciser &agrave; l'&eacute;diteur de liens avec
- quelle version de biblioth&egrave;que partag&eacute;e effectuer
- l'&eacute;dition de liens (l'&eacute;diteur de liens choisira toujours
- le num&eacute;ro de version le plus &eacute;lev&eacute;). Cela signifie
- que, s'il y a sur le syst&egrave;me une
- <filename>libfoo.so.3.2</filename> et une
- <filename>libfoo.so.4.0</filename>, il n'y a aucun moyen de dire
- &agrave; l'&eacute;diteur de liens qu'une application donn&eacute;e
- doit &ecirc;tre li&eacute;e avec <filename>libfoo.so.3.2</filename>.
- c'est totalement masqu&eacute; au moment de l'&eacute;dition de liens.
- Dans ce cas, il n'y a qu'une seule solution, renommer la
- <emphasis>base</emphasis> du nom de la biblioth&egrave;que
- partag&eacute;e. Par exemple, modifier
- <filename>libfoo.so.4.0</filename> en
- <filename>libfoo4.so.1.0</filename> pour que les versions 3.2 et 4.0
- puissent &ecirc;tre li&eacute;es avec d'autres logiciels
- port&eacute;es.</para>
- </sect2>
-
- <sect2 id="porting-manpages">
- <title>Pages de manuel</title>
-
- <para>Les variables <makevar>MAN[1-9LN]</makevar> ajouteront
- automatiquement toutes les pages de manuel &agrave;
- <filename>pkg/PLIST</filename> (cela signifie que vous ne devez
- <emphasis>pas</emphasis> lister les pages de manuel dans
- <filename>PLIST</filename>&mdash;reportez-vous &agrave; la section
- <link linkend="porting-plist">Modifier <filename>PLIST</filename> sur
- la base des variables du <literal>make</literal></link> pour plus de
- d&eacute;tails). Cela provoquera aussi la compression ou la
- d&eacute;compression de pages de manuel selon le contenu de la variable
- <makevar>NOMANCOMPRESS</makevar> dans
- <filename>/etc/make.conf</filename>.</para>
-
- <para>Pour indiquer si les pages de manuel doivent &ecirc;tre
- compress&eacute;es &agrave; l'installation, utilisez la variable
- <makevar>MANCOMPRESSED</makevar>. Cette variable peut prendre trois
- valeurs, <literal>yes</literal>, <literal>no</literal> et
- <literal>maybe</literal>. <literal>yes</literal> signifie que les pages
- de manuel sont install&eacute;es d&eacute;j&agrave; compress&eacute;es,
- <literal>no</literal> signifie qu'elles ne le sont pas, et
- <literal>maybe</literal> signifie que le logiciel s'aligne toujours sur
- la valeur de <makevar>NOMANCOMPRESS</makevar> de sorte que
- <filename>bsd.port.mk</filename> n'a rien &agrave; faire de
- sp&eacute;cial.</para>
-
- <para><makevar>MANCOMPRESSED</makevar> est automatiquement d&eacute;finie
- &agrave; <literal>yes</literal> si <makevar>USE_IMAKE</makevar> est
- d&eacute;finie et que <makevar>NO_INSTALL_MANPAGES</makevar> ne l'est
- pas, et &agrave; <literal>no</literal> sinon. Vous n'avez pas &agrave;
- la d&eacute;finir explicitement, &agrave; moins que la valeur par
- d&eacute;faut ne convienne pas &agrave; votre logiciel &agrave;
- porter.</para>
-
- <para>Si votre logiciel &agrave; porter installe ses pages de manuel
- ailleurs que dans <makevar>PREFIX</makevar>, vous pouvez utiliser
- <makevar>MANPREFIX</makevar> pour l'indiquer. Si ce sont seulement
- certaines pages de manuel qui ne doivent pas &ecirc;tre
- install&eacute;es dans le r&eacute;pertoire habituel, comme c'est le
- cas pour certains modules port&eacute;s Perl, vous pouvez d&eacute;finir
- des r&eacute;pertoires individualis&eacute;s pour les pages de manuel
- avec <makevar>MAN<replaceable>section</replaceable>PREFIX</makevar>
- (o&ugrave; <replaceable>sect</replaceable> est une valeur de
- <literal>1-9</literal>, ou <literal>L</literal> ou
- <literal>N</literal>).</para>
-
- <para>Si vos pages de manuel vont dans des sous-r&eacute;pertoires
- d&eacute;pendant de la langue, d&eacute;finissez les noms de ces langues
- dans <makevar>MANLANG</makevar>. La valeur par d&eacute;faut de cette
- variable est <literal>""</literal> (i.e., Anglais seulement).</para>
-
- <para>Voici un exemple qui rassemble tout cela&nbsp;:</para>
-
- <programlisting>
-MAN1= foo.1
-MAN3= bar.3
-MAN4= baz.4
-MANLANG= "" ja
-MAN3PREFIX= ${PREFIX}/share/foobar
-MANCOMPRESSED= yes</programlisting>
-
- <para>Ce qui veut dire que six fichiers sont install&eacute;s par ce
- logiciel port&eacute;&nbsp;:</para>
-
- <programlisting>
-${PREFIX}/man/man1/foo.1.gz
-${PREFIX}/man/ja/man1/foo.1.gz
-${PREFIX}/share/foobar/man/man3/bar.3.gz
-${PREFIX}/share/foobar/man/ja/man3/bar.3.gz
-${PREFIX}/man/man4/baz.4.gz
-${PREFIX}/man/ja/man4/baz.4.gz</programlisting>
- </sect2>
-
- <sect2>
- <title>Les logiciels port&eacute;s qui ont besoin de Motif</title>
-
- <para>Il y a de nombreux programmes qui ont besoin d'une biblioth&egrave;que
- Motif pour compiler (disponible aupr&egrave;s de plusieurs distributeurs
- commerciaux, et dont il existe un clone libre, qui est capable de faire
- fonctionner pas mal d'applications, dans
- <filename>x11-toolkits/lesstif</filename>). Comme c'est un bo&icirc;te
- &agrave; outils tr&egrave;s utilis&eacute;e et que ses licences
- autorisent habituellement la redistribution de binaires si la
- biblioth&egrave;que est li&eacute;e statiquement, nous avons
- pr&eacute;vu un m&eacute;canisme pour g&eacute;rer les logiciels
- port&eacute;s qui ont besoin de Motif de fa&ccedil;on &agrave; pouvoir
- facilement compiler des binaires soit li&eacute;s dynamiquement (pour
- ceux qui utilisent le catalogue des logiciels port&eacute;s) ou
- statiquement (pour ceux qui distribuent des paquetages).</para>
-
- <sect3>
- <title><makevar>REQUIRES_MOTIF</makevar></title>
-
- <para>Si votre logiciel &agrave; porter a besoin de Motif,
- d&eacute;finissez cette variable dans le
- <filename>Makefile</filename>. cela emp&eacute;chera que ceux qui
- ne disposent pas de Motif puissent ne serait-ce qu'essayer de
- compiler votre logiciel.</para>
- </sect3>
-
- <sect3>
- <title><makevar>MOTIFLIB</makevar></title>
-
- <para>Cette variable sera d&eacute;finie par
- <filename>bsd.port.mk</filename> pour r&eacute;f&eacute;rencer la
- version appropri&eacute;e de la biblioth&egrave;que Motif. Ajoutez
- s'il vous pla&icirc;t un
- correctif&nbsp;-&nbsp;<foreignphrase>patch</foreignphrase>&nbsp;-&nbsp;au
- source pour qu'il utilise cette variable chaque fois que la
- biblioth&egrave;que Motif est r&eacute;f&eacute;renc&eacute; dans le
- <filename>Makefile</filename> ou le
- <filename>Imakefile</filename>.</para>
-
- <para>Il y a deux cas de figure courants&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Si le logiciel &agrave; porter d&eacute;signe la
- biblioth&egrave;que Motif avec <literal>-lXm</literal> dans son
- <filename>Makefile</filename> ou <filename>Imakefile</filename>,
- remplacez-le simplement par
- <literal>&dollar;{MOTIFLIB}</literal>,</para>
- </listitem>
-
- <listitem>
- <para>Si le logiciel &agrave; porter utilise
- <literal>XmClientLibs</literal> dans son
- <filename>Imakefile</filename>, remplacez-le par
- <literal>&dollar;{MOTIFLIB} &dollar;{XTOOLLIB}
- &dollar;{XLIB}</literal>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Remarquez que la variable <makevar>MOTIFLIB</makevar> est
- (habituellement) remplac&eacute;e par
- <literal>-L/usr/X11R6/lib -lXm</literal> ou
- <literal>/usr/X11R6/lib/libXm.a</literal>, il n'y a donc pas besoin
- d'y inclure le <literal>-L</literal> ou <literal>-l</literal>.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Polices X11</title>
-
- <para>Si votre logiciel &agrave; porter installe des polices de
- caract&egrave;res pour le Syst&egrave;me X Window, mettez-les dans
- <filename><makevar>X11BASE</makevar>/lib/X11/fonts/local</filename>.
- Ce r&eacute;pertoire est une nouveaut&eacute; de XFree86 version 3.3.3.
- S'il n'existe pas, cr&eacute;ez-le s'il vous pla&icirc;t et
- &eacute;mettez un message pour sugg&eacute;rer &agrave; l'utilisateur de passer &agrave; la version 3.3.3, ou ult&eacute;rieure, de XFree86, ou
- ajoutez au moins ce r&eacute;pertoire aux chemins d'acc&egrave;s aux
- polices de caract&egrave;res dans
- <filename>/etc/XF86Config</filename>.</para>
- </sect2>
-
- <sect2>
- <title>Fichiers &ldquo;Info&rdquo;</title>
-
- <para>La nouvelle version de <application>texinfo</application> (depuis
- 2.2.2-RELEASE) comporte un utilitaire appel&eacute;
- <command>install-info</command> pour ajouter ou supprimer des
- entr&eacute;es dans le fichier <filename>dir</filename>. Si votre
- logiciel &agrave; porter installe des documents &ldquo;info&rdquo;,
- suivez s'il vous pla&icirc;t les instructions ci-dessous pour que votre
- logiciel port&eacute;/pr&eacute;compil&eacute; mette correctement
- &agrave; jour le fichier
- <filename><makevar>PREFIX</makevar>/info/dir</filename> de
- l'utilisateur. (Excusez-moi de la longueur de cette section, mais il
- est imp&eacute;ratif d'assembler correctement ensemble tous les fichiers
- &ldquo;info;&rdquo;. Si c'est proprement fait, il en r&eacute;sultera
- une <emphasis>belle</emphasis> &eacute;dition, accordez-moi donc s'il
- vous pla&icirc;t votre attention.)</para>
-
- <para>Voici ce que vous devez en premier lieu savoir (pour porter un
- logiciel)&nbsp;:<footnote><para>Traduction&nbsp;:</para>
- <screen>&prompt.user; <userinput>install-info --help</userinput>
-install-info [OPTION]... [INFO-FILE [DIR-FILE]]
- Installe INFO-FILE dans le r&eacute;pertoire &ldquo;Info&rdquo; DIR-FILE.
-
-Options:
---delete supprime les entr&eacute;es existantes dans INFO-FILE;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n'ins&egrave;re aucune nouvelle entr&eacute;e.
-&nbsp;:
---entry=TEXT Ins&egrave;re un entr&eacute;e pour le r&eacute;pertoire &ldquo;Info;&rdquo;.
-&nbsp;:
---section=SEC Ajoute les entr&eacute;es de ce fichier &agrave; la section SEC de ce r&eacute;pertoire. :</screen></footnote></para>
-
- <screen>&prompt.user; <userinput>install-info --help</userinput>
-install-info [OPTION]... [INFO-FILE [DIR-FILE]]
- Install INFO-FILE in the Info directory file DIR-FILE.
-
-Options:
---delete Delete existing entries in INFO-FILE;
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't insert any new entries.
-&nbsp;:
---entry=TEXT Insert TEXT as an Info directory entry.
-&nbsp;:
---section=SEC Put this file's entries in section SEC of the directory. :</screen>
-
- <note>
- <para>Ce programme n'installe en fait <emphasis>pas</emphasis> de
- fichiers &ldquo;info&rdquo;; il ne fait qu'ins&eacute;rer ou supprimer
- des entr&eacute;es au fichier <filename>dir</filename>.</para>
- </note>
-
- <para>Voici une proc&eacute;dure en sept &eacute;tapes pour adapter les
- logiciels &agrave; porter pour qu'ils utilisent
- <command>install-info</command>. Je prendrais comme exemple
- <filename>editors/emacs</filename>&nbsp;:</para>
-
- <procedure>
- <step>
- <para>Consultez les sources <application>texinfo</application> et
- construisez un fichier de mise &agrave; jour qui ins&egrave;re
- des instructions <literal>@dircategory</literal> et
- <literal>@direntry</literal> aux fichiers o&ugrave; il n'y en a pas.
- Voici un extrait de mon
- &ldquo;<foreignphrase>patch</foreignphrase>&rdquo;&nbsp;:</para>
-
- <programlisting>
---- ./man/vip.texi.org Fri Jun 16 15:31:11 1995
-+++ ./man/vip.texi Tue May 20 01:28:33 1997
-@@ -2,6 +2,10 @@
-
-&nbsp;@setfilename ../info/vip
-&nbsp;@settitle VIP
-+@dircategory The Emacs editor and associated tools
-+@direntry
-+* VIP: (vip). A VI-emulation for Emacs.
-+@end direntry
-
-&nbsp;@iftex
-&nbsp;@finalout
-&nbsp;:
- </programlisting>
-
- <para>Cela doit pouvoir se passer d'explications. De nombreux auteurs
- mettent dans leur arborescence des sources un fichier
- <filename>dir</filename> qui contient toutes les entr&eacute;es dont
- vous avez besoin, regardez donc &agrave; droite et &agrave; gauche
- avant de le cr&eacute;er vous-m&ecirc;me. Veillez aussi &agrave;
- consulter les entr&eacute;es pour les logiciels en rapport avec le
- vo&circ;tre, pour que vos noms de sections et indentations soient en
- coh&eacute;rence (nous recommandons de mettre les libell&eacute;s
- apr&egrave;s la quatri&egrave;me position de tabulation).</para>
-
- <note>
- <para>Remarquez que vous ne pouvez mettre qu'une entr&eacute;e
- &ldquo;info&rdquo; par fichier, &agrave; cause d'un bogue
- dans <command>install-info --delete</command>, qui ne supprime
- que la premi&egrave;re entr&eacute;e de la section
- <literal>@direntry</literal> si vous en indiquez plusieurs.</para>
- </note>
-
- <para>Vous pouvez donner les entr&eacute;es <literal>dir</literal>
- comme arguments &agrave; <command>install-info</command>
- (<option>--section</option> et <option>--entry</option>) au lieu de
- rectifier les sources de <application>texinfo</application>. Je ne
- trouve pas que cela soit une bonne id&eacute;e parce que vous devez
- r&eacute;p&eacute;ter la m&ecirc;me information &agrave; trois
- endroits diff&eacute;rents (<filename>Makefile</filename> et
- <literal>@exec</literal>/<literal>@unexec</literal> de
- <filename>PLIST</filename>; voyez plus bas). N&eacute;anmoins, si
- vous avez des fichiers &ldquo;info&rdquo; en Japonais (ou
- cod&eacute;s sur plusieurs octets), vous devrez utiliser les
- param&egrave;tres suppl&eacute;mentaires
- d'<command>install-info</command> parce que
- <command>makeinfo</command> ne sait pas g&eacute;rer ces sources
- <application>texinfo</application>. (Consultez le
- <filename>Makefile</filename> et <filename>PLIST</filename> de
- <filename>japanese/skk</filename> pour avoir un exemple de la
- mani&egrave;re de proc&eacute;der.)</para>
- </step>
-
- <step>
- <para>Retournez dans le r&eacute;pertoire de votre logiciel
- port&eacute;, faites un <command>make clean; make</command> et
- v&eacute;rifiez que les fichiers &ldquo;info&rdquo; sont
- r&eacute;g&eacute;n&eacute;r&eacute;s &agrave; partir des sources
- <application>texinfo</application>. Comme ces derniers sont plus
- r&eacute;cents que les fichiers &ldquo;info&rdquo;, ils doivent
- &ecirc;tre reconstruits par le <command>make</command>; mais de
- nombreux <filename>Makefile</filename>s ne comportent pas les
- d&eacute;pendances correctes pour les fichiers &ldquo;info&rdquo;.
- Dans le cas d'<command>emacs</command>, j'ai d&ucirc; rectifier le
- <filename>Makefile.in</filename> principal pour qu'il aille dans le
- sous-r&eacute;pertoire <filename>man</filename> pour reconstruire
- les pages &ldquo;info&rdquo;&nbsp;:</para>
-
- <programlisting>
---- ./Makefile.in.org Mon Aug 19 21:12:19 1996
-+++ ./Makefile.in Tue Apr 15 00:15:28 1997
-@@ -184,7 +184,7 @@
-&nbsp;# Sous-r&eacute;pertoires &agrave; reconstruire r&eacute;cursivement. `lisp' n'est pas inclus
-&nbsp;# parce que les fichiers lisp compil&eacute;s font partie de la distribution
-&nbsp;# et que vous ne pouvez pas les recompiler sans installer d'abord Emacs
--SUBDIR = lib-src src
-+SUBDIR = lib-src src man
-
-&nbsp;# makefile des sous-r&eacute;pertoires list&eacute;s dans $SUBDIR.
-&nbsp;SUBDIR_MAKEFILES = lib-src/Makefile man/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile
---- ./man/Makefile.in.org Thu Jun 27 15:27:19 1996
-+++ ./man/Makefile.in Tue Apr 15 00:29:52 1997
-@@ -66,6 +66,7 @@
-&nbsp;${srcdir}/gnu1.texi \
-&nbsp;${srcdir}/glossary.texi
-
-+all: info
-&nbsp;info: $(INFO_TARGETS)
-
-&nbsp;dvi: $(DVI_TARGETS)
- </programlisting>
-
- <para>La deuxi&egrave;me modification est n&eacute;cessaire parce que
- la cible par d&eacute;faut dans le sous-r&eacute;pertoire
- <filename>man</filename> s'appelle <maketarget>info</maketarget>,
- alors que le <filename>Makefile</filename> veut ex&eacute;cuter la
- cible <maketarget>all</maketarget>. J'ai aussi supprim&eacute;
- l'installation du fichier &ldquo;info&rdquo; parce que nous en
- avons d&eacute;j&agrave; un de m&ecirc;me nom dans
- <filename>/usr/share/info</filename> (cette correction
- n'appara&icirc;t pas dans l'exemple).</para>
- </step>
-
- <step>
- <para>Si le fichier <filename>dir</filename> est install&eacute; par
- des instructions quelque part dans le <filename>Makefile</filename>,
- supprimez-les. Votre logiciel &agrave; porter ne doit pas le faire.
- Supprimez aussi toutes les autres commandes qui
- &ldquo;saliraient&rdquo; le fichier <filename>dir</filename>.</para>
-
- <programlisting>
---- ./Makefile.in.org Mon Aug 19 21:12:19 1996
-+++ ./Makefile.in Mon Apr 14 23:38:07 1997
-@@ -368,14 +368,8 @@
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cd ${infodir}; \
-- if [ -f dir ]; then \
-- if [ ! -f dir.old ]; then mv -f dir dir.old; \
-- else mv -f dir dir.bak; fi; \
-- fi; \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd ${srcdir}/info ; \
-- (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \
-- (cd $${thisdir}; chmod a+r ${infodir}/dir); \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for f in ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* sc* vip*; do \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cd $${thisdir}; \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chmod a+r ${infodir}/$$f); \
- </programlisting>
- </step>
-
- <step>
- <para>(Cette &eacute;tape n'est n&eacute;cessaire que si vous modifiez
- un logiciel port&eacute; d&eacute;j&agrave; existant.) Consultez
- <filename>pkg/PLIST</filename> et supprimez tout ce qui essaye
- d'appliquer des rectificatifs &agrave;
- <filename>info/dir</filename>. Cela peut se produire dans
- <filename>pkg/INSTALL</filename> ou un autre fichier, faites donc
- une recherche d&eacute;taill&eacute;e&nbsp;:</para>
-
- <programlisting>
-Index: pkg/PLIST
-===================================================================
-RCS file: /usr/cvs/ports/editors/emacs/pkg/PLIST,v
-retrieving revision 1.15
-diff -u -r1.15 PLIST
---- PLIST 1997/03/04 08:04:00 1.15
-+++ PLIST 1997/04/15 06:32:12
-@@ -15,9 +15,6 @@
-&nbsp;man/man1/emacs.1.gz
-&nbsp;man/man1/etags.1.gz
-&nbsp;man/man1/ctags.1.gz
--@unexec cp %D/info/dir %D/info/dir.bak
--info/dir
--@unexec cp %D/info/dir.bak %D/info/dir
-&nbsp;info/cl
-&nbsp;info/cl-1
-&nbsp;info/cl-2
- </programlisting>
- </step>
-
- <step>
- <para>Ajoutez une cible <maketarget>post-install</maketarget> au
- <filename>Makefile</filename> pour cr&eacute;er un fichier
- <filename>dir</filename> s'il n'y en a pas. Appelez aussi
- <maketarget>install-info</maketarget> pour les fichiers
- &ldquo;info&rdquo; install&eacute;s&nbsp;:</para>
-
- <programlisting>
-Index: Makefile
-===================================================================
-RCS file: /usr/cvs/ports/editors/emacs/Makefile,v
-retrieving revision 1.26
-diff -u -r1.26 Makefile
---- Makefile 1996/11/19 13:14:40 1.26
-+++ Makefile 1997/05/20 10:25:09 1.28
-@@ -20,5 +20,11 @@
-&nbsp;post-install:
-&nbsp;.for file in emacs-19.34 emacsclient etags ctags b2m
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strip ${PREFIX}/bin/${file}
-&nbsp;.endfor
-+ if [ ! -f ${PREFIX}/info/dir ]; then \
-+ ${SED} -ne '1,/Menu:/p' /usr/share/info/dir > ${PREFIX}/info/dir; \
-+ fi
-+.for info in emacs vip viper forms gnus mh-e cl sc dired-x ediff ccmode
-+ install-info ${PREFIX}/info/${info} ${PREFIX}/info/dir
-+.endfor
-
-&nbsp;.include &lt;bsd.port.mk&gt;
- </programlisting>
-
- <para>N'utilisez rien d'autre que
- <filename>/usr/share/info/dir</filename> et la commande ci-dessus
- pour cr&eacute;er un nouveau fichier &ldquo;info&rdquo;. J'ai en
- fait ajout&eacute; les trois premi&egrave;res lignes du rectificatif
- ci-dessus &agrave; <filename>bsd.port.mk</filename> pour le cas
- o&grave; vous ne l'auriez pas fait par vous-m&ecirc;me dans
- <filename>PLIST</filename>.</para>
- </step>
-
- <step>
- <para>Editez <filename>PLIST</filename> et ajoutez les instructions
- <literal>@exec</literal> ainsi que <literal>@unexec</literal>
- &eacute;quivalentes pour <command>pkg_delete</command>. Vous n'avez
- pas besoin de supprimer <filename>info/dir</filename> avec
- <literal>@unexec</literal>&nbsp;:</para>
-
- <programlisting>
-Index: pkg/PLIST
-===================================================================
-RCS file: /usr/cvs/ports/editors/emacs/pkg/PLIST,v
-retrieving revision 1.15
-diff -u -r1.15 PLIST
---- PLIST 1997/03/04 08:04:00 1.15
-+++ PLIST 1997/05/20 10:25:12 1.17
-@@ -16,7 +14,15 @@
-&nbsp;man/man1/etags.1.gz
-&nbsp;man/man1/ctags.1.gz
-+@unexec install-info --delete %D/info/emacs %D/info/dir
-&nbsp;:
-+@unexec install-info --delete %D/info/ccmode %D/info/dir
-&nbsp;info/cl
-&nbsp;info/cl-1
-@@ -87,6 +94,18 @@
-&nbsp;info/viper-3
-&nbsp;info/viper-4
-+@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
-+@exec install-info %D/info/emacs %D/info/dir
-&nbsp;:
-+@exec install-info %D/info/ccmode %D/info/dir
-&nbsp;libexec/emacs/19.34/i386--freebsd/cvtmail
-&nbsp;libexec/emacs/19.34/i386--freebsd/digest-doc
- </programlisting>
-
- <note>
- <para>Les commandes <literal>@unexec install-info --delete</literal>
- doivent &ecirc;tre plac&eacute;es avant les fichiers
- &ldquo;info&rdquo; eux-m&ecirc;mes pour qu'elles puissent lire
- les fichiers. Il faut aussi placer les commandes
- <literal>@exec install-info</literal> apr&egrave;s les fichiers
- &ldquo;info&rdquo; et la commande <literal>@exec</literal> qui
- cr&eacute;e le fichier <filename>dir</filename> file.</para>
- </note>
- </step>
-
- <step>
- <para><link linkend="porting-testing">Testez</link> et admirez votre
- oeuvre. <!-- smiley --><emphasis>:)</emphasis>. V&eacute;rifiez le
- fichier <filename>dir</filename> avant et apr&egrave;s chaque
- &eacute;tape.</para>
- </step>
- </procedure>
- </sect2>
-
- <sect2>
- <title>Le sous r&eacute;pertoire <filename>pkg/</filename></title>
-
- <para>Il y a quelques astuces dont je n'ai pas encore parl&eacute;
- &agrave; propos du sous-r&eacute;pertoire <filename>pkg/</filename> qui
- sont parfois utiles.</para>
-
- <sect3 id="porting-message">
- <title><filename>MESSAGE</filename></title>
-
- <para>Si vous avez besoin d'afficher un message lors de l'installation,
- vous pouvez le mettre dans <filename>pkg/MESSAGE</filename>. Cette
- fonctionnalit&eacute; sert souvent &agrave; informer des &eacute;tapes
- d'installation qui doivent &ecirc;tre effectu&eacute;es apr&egrave;s
- <command>pkg_add</command> ou pour afficher des informations &agrave;
- propos de la licence.</para>
-
- <note>
- <para>Il n'y a pas besoin d'ajouter le fichier
- <filename>pkg/MESSAGE</filename> &agrave;
- <filename>pkg/PLIST</filename>. D'autre part, il ne sera pas
- affich&eacute; automatiquement si l'utilisateur installe le logiciel
- port&eacute; au lieu du logiciel pr&eacute;compil&eacute;, vous
- devriez donc probablement l'afficher vous-m&ecirc;me depuis la cible
- <maketarget>post-install</maketarget>.</para>
- </note>
- </sect3>
-
- <sect3>
- <title><filename>INSTALL</filename></title>
-
- <para>S'il faut ex&eacute;cuter des commandes lors de l'installation du
- logiciel pr&eacute;compil&eacute; avec <command>pkg_add</command>,
- vous pouvez le faire avec la proc&eacute;dure
- <filename>pkg/INSTALL</filename>. Cette proc&eacute;dure sera
- automatiquement ajout&eacute;e au paquetage et ex&eacute;cut&eacute;e
- deux fois par <command>pkg_add</command>. La premi&egrave;re fois sous
- la forme <literal>INSTALL &dollar;{PKGNAME} PRE-INSTALL</literal> et
- la seconde fois sous la forme
- <literal>INSTALL &dollar;{PKGNAME} POST-INSTALL</literal>. Vous pouvez
- tester <literal>&dollar;2</literal> pour savoir comment la
- proc&eacute;dure a &eacute;t&eacute; appel&eacute;e. La variable
- d'environnement <envar>PKG_PREFIX</envar> contient le chemin
- d'acc&egrave;s au r&eacute;pertoire d'installation du logiciel.
- Reportez-vous aux pages de manuel de &man.pkg.add.1; pour plus
- d'informations.</para>
-
- <note>
- <para>Cette proc&eacute;dure n'est pas ex&eacute;cut&eacute;e
- automatiquement si le logiciel port&eacute; est install&eacute; avec
- <command>make install</command>. Si vous avez besoin qu'elle le
- soit, vous devrez l'appeler explicitement depuis le
- <filename>Makefile</filename> du logiciel port&eacute;.</para>
- </note>
- </sect3>
-
- <sect3>
- <title><filename>REQ</filename></title>
-
- <para>Si votre logiciel &agrave; porter doit d&eacute;terminer s'il doit
- &ecirc;tre install&eacute; ou non, vous pouvez cr&eacute;er une
- proc&eacute;dure
- <filename>pkg/REQ</filename>&nbsp;-&nbsp;&ldquo;requis&rdquo;. Elle
- sera appel&eacute;e automatiquement lors de l'installation et de la
- d&eacute;sinstallation pour d&eacute;cider s'il faut ou non effectuer
- l'op&eacute;ration.</para>
- </sect3>
-
- <sect3 id="porting-plist">
- <title>Modifier <filename>PLIST</filename> sur la base de variables
- du <command>make</command></title>
-
- <para>Certains logiciels port&eacute;s, en particulier les logiciels
- <literal>p5-...</literal>, doivent modifier leur
- <filename>PLIST</filename> selon les options avec lesquelles ils sont
- configur&eacute;s (ou la version de perl, dans le cas des logiciels
- <literal>p5-...</literal>). Pour rendre les choses plus faciles,
- toutes les occurrences de <literal>%%OSREL%%</literal>,
- <literal>%%PERL_VER%%</literal> et <literal>%%PERL_VERSION%%</literal>
- dans la <filename>PLIST</filename> seront remplac&eacute;es par les
- valeurs appropri&eacute;es. La valeur de <literal>%%OSREL%%</literal>
- est le num&eacute;ro de version du syst&egrave;me d'exploitation
- (e.g., <literal>2.2.7</literal>). <literal>%%PERL_VERSION%%</literal>
- est le num&eacute;ro de version complet de perl (e.g.,
- <literal>5.00502</literal>) et <literal>%%PERL_VER%%</literal> est le
- num&eacute;ro de version de perl, sans le niveau de
- &ldquo;<foreignphrase>patch</foreignphrase>&rdquo; (e.g.,
- <literal>5.005</literal>).</para>
-
- <para>Si vous avez besoin d'autres substitutions, vous pouvez renseigner
- la variable <makevar>PLIST_SUB</makevar> avec une liste de doublets
- <literal><replaceable>VAR</replaceable>=<replaceable>VALUE</replaceable></literal>
- et toutes les occurrences de
- <literal>%%<replaceable>VAR</replaceable>%%</literal> seront
- remplac&eacute;es par <replaceable>VALUE</replaceable> dans la
- <filename>PLIST</filename>.</para>
-
- <para>Par exemple, si votre logiciel &agrave; porter installe de
- nombreux fichiers dans un sous-r&eacute;pertoire diff&eacute;rent
- selon la version, vous pouvez mettre quelque chose comme&nbsp;:</para>
-
- <programlisting>
-OCTAVE_VERSION= 2.0.13
-PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}
- </programlisting>
-
- <para>dans le <filename>Makefile</filename> et utiliser
- <literal>%%OCTAVE_VERSION%%</literal> chaque fois que la version
- appara&icirc;t dans la <filename>PLIST</filename>. De cette
- fa&ccedil;on, lorsque vous mettez &agrave; jour le logiciel, vous
- n'aurez pas &agrave; modifier des douzaines (dans certains cas, des
- centaines) de lignes dans la <filename>PLIST</filename>.</para>
-
- <para>Cette substitution (de m&ecirc;me que l'ajout des
- <link linkend="porting-manpages">pages de manuel</link>) est faite
- entre les cibles <maketarget>do-install</maketarget> et
- <maketarget>post-install</maketarget>, en lisant
- <makevar>PLIST</makevar> et en &eacute;crivant dans
- <makevar>TMPPLIST</makevar> (par d&eacute;faut&nbsp;:
- <filename><makevar>WRKDIR</makevar>/.PLIST.mktmp</filename>). Si votre
- logiciel &agrave; porter construit <makevar>PLIST</makevar> &agrave;
- la vol&eacute;e, faites-le alors dans ou avant
- <maketarget>do-install</maketarget>. De plus, si votre logiciel a
- besoin de modifier le fichier obtenu, faites-le dans
- <maketarget>post-install</maketarget> et dans un fichier appel&eacute;
- <makevar>TMPPLIST</makevar>.</para>
- </sect3>
-
- <sect3>
- <title id="porting-pkgsubdir">Changer les noms des fichiers du
- sous-r&eacute;pertoire <filename>pkg</filename></title>
-
- <para>Tous les noms de fichier du sous-r&eacute;pertoire
- <filename>pkg</filename> sont d&eacute;finis par des variables, vous
- pouvez donc les changer dans votre <filename>Makefile</filename> si
- besoin est. C'est particuli&egrave;rement utile si vous partager le
- m&ecirc;me sous-r&eacute;pertoire <filename>pkg</filename> entre
- plusieurs logiciels port&eacute;s ou devez &eacute;crire dans l'un
- de ces fichiers (voyez la section
- <link linkend="porting-wrkdir">Ecrire ailleurs que dans
- <makevar>WRKDIR</makevar></link> pour savoir pourquoi c'est une
- mauvaise id&eacute;e d'&eacute;crire directement dans le
- sous-r&eacute;pertoire <filename>pkg</filename>.</para>
-
- <para>Voici la liste de ces variables et leurs valeurs par
- d&eacute;faut&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable</entry>
- <entry>Valeur par d&eacute;faut</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><makevar>COMMENT</makevar></entry>
- <entry><literal>${PKGDIR}/DESCR</literal></entry>
- </row>
-
- <row>
- <entry><makevar>DESCR</makevar></entry>
- <entry><literal>${PKGDIR}/DESCR</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PLIST</makevar></entry>
- <entry><literal>${PKGDIR}/PLIST</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGINSTALL</makevar></entry>
- <entry><literal>${PKGDIR}/PKGINSTALL</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGDEINSTALL</makevar></entry>
- <entry><literal>${PKGDIR}/PKGDEINSTALL</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGREQ</makevar></entry>
- <entry><literal>${PKGDIR}/REQ</literal></entry>
- </row>
-
- <row>
- <entry><makevar>PKGMESSAGE</makevar></entry>
- <entry><literal>${PKGDIR}/MESSAGE</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Modifiez s'il vous pla&icirc;t ces variables plut&ocirc;t que de
- surcharger <makevar>PKG_ARGS</makevar>. Si vous modifiez
- <makevar>PKG_ARGS</makevar>, ces fichiers ne seront pas correctement
- install&eacute;s dans <filename>/var/db/pkg</filename> lors de
- l'installation sous forme de logiciel port&eacute;.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Probl&egrave;mes de licence</title>
-
- <para>Certains logiciels ont des licences qui imposent des restrictions ou
- peuvent violer la loi. (Le brevet de PKP sur la cryptographie &grave;
- cl&eacute; publique et ITAR&nbsp;-&nbsp;exportation de logiciel de
- cryptographie&nbsp;-&nbsp;pour ne citer que deux exemples). Ce que nous
- pouvons en faire varie beaucoup, selon les termes exacts de leurs
- licences respectives.</para>
-
- <note>
- <para>Il est de votre responsabilit&eacute;, pour le logiciel que vous
- porter, de lire les termes de la licence et de vous assurer que le
- projet FreeBSD ne pourra pas &ecirc;tre accus&eacute; de les violer en
- redistribuant le source ou les binaires compil&eacute;s que ce soit
- par ftp ou sur CD-ROM. En cas de doute, contactez-la &a.ports;.</para>
- </note>
-
- <para>Il y a deux variables que vous pouvez d&eacute;finir dans le
- <filename>Makefile</filename> pour g&eacute;rer les situations qui se
- produisent souvent&nbsp;:</para>
-
- <orderedlist>
- <listitem>
- <para>Si le logiciel &agrave; porter a une licence de type &ldquo;non
- commercialisable&rdquo; affectez &agrave; la variable
- <makevar>NO_CDROM</makevar> une cha&icirc;ne de caract&egrave;res
- expliquant pourquoi. Nous v&eacute;rifierons que ces logiciels
- ne soient pas sur le CD-ROM au moment de la parution. Les archives
- du source et le paquetage seront cependant disponibles par
- ftp.</para>
- </listitem>
-
- <listitem>
- <para>S'il faut recompiler le logiciel port&eacute; sur chaque site,
- ou si le logiciel pr&eacute;compil&eacute; ne peut pas &ecirc;tre
- redistribu&eacute; du fait de sa licence, affectez &agrave; la
- variable <makevar>NO_PACKAGE</makevar> une cha&icirc;ne de
- caract&egrave;res expliquant pourquoi. Nous v&eacute;rifierons que
- ces logiciels pr&eacute;compil&eacute;s ne soient pas sur le site
- ftp ni sur le CD-ROM au moment de la parution. Les archives du
- source seront cependant disponibles sur les deux.</para>
- </listitem>
-
- <listitem>
- <para>S'il y a des restrictions l&eacute;gales &agrave; l'utilisation
- du logiciel (e.g., cryptographie) ou que la licence est du type
- &ldquo;pas d'usage commercial&rdquo;, affectez &agrave; la variable
- <makevar>RESTRICTED</makevar> une cha&icirc;ne de caract&egrave;res
- expliquant pourquoi. Pour ces logiciels, ni les archives du source
- ni le logiciel pr&eacute;compil&eacute; ne seront m&ecirc;me
- disponibles sur nos sites ftp.</para>
- </listitem>
- </orderedlist>
-
- <note>
- <para>La Licence Publique G&eacute;n&eacute;rale
- GNU&nbsp;-&nbsp;<foreignphrase>GNU General Public License
- (GPL)</foreignphrase>, version 1 et 2, ne pose normalement pas de
- probl&egrave;me pour les logiciels port&eacute;s.</para>
- </note>
-
- <note>
- <para>Si vous &ecirc;tes
- &ldquo;<foreignphrase>committer</foreignphrase>&rdquo;, veillez
- &agrave; mettre aussi &agrave; jour le fichier
- <filename>ports/LEGAL</filename>.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Mises &agrave; jour</title>
-
- <para>Si vous constatez qu'un logiciel port&eacute; n'est pas
- synchronis&eacute; avec la plus r&eacute;cente version des auteurs
- originaux, v&eacute;rifiez d'abord que vous avez la derni&egrave;re
- version du logiciel port&eacute;. Vous la trouverez dans le
- r&eacute;pertoire <filename>ports/ports-current</filename> des sites
- miroir ftp.</para>
-
- <para>Envoyez ensuite un courrier &eacute;lectronique au responsable de
- la maintenance, s'il est mentionn&eacute; dans le
- <filename>Makefile</filename> du logiciel. Il est peut-&ecirc;tre
- d&eacute;j&agrave; en train de travailler sur la mise &agrave; jour, ou
- a une bonne raison de ne pas la faire (par exemple &agrave; cause de
- probl&egrave;mes de stabilit&eacute; de la nouvelle version).</para>
-
- <para>Si le responsable de la maintenance vous demande de mettre le
- logiciel &agrave; jour ou s'il n'y a tout simplement pas de responsable,
- faites cette mise &agrave; jour et envoyez un delta r&eacute;cursif
- (soit contextuel soit unifi&eacute;, mais les responsables de
- l'arborescence des logiciels port&eacute;s pr&eacute;f&egrave;rent le
- format unifi&eacute;) entre les anciens et les nouveaux
- r&eacute;pertoires du logiciel (e.g., si votre r&eacute;pertoire
- modifi&eacute; s'appelle <filename>superedit</filename> et l'original
- tel que dans notre arborescence <filename>superedit.bak</filename>,
- envoyez nous alors le r&eacute;sultat de
- <command>diff -ruN superedit.bak superedit</command>).
- Contr&ocirc;lez-le s'il vous pla&icirc;t pour v&eacute;rifier que toutes
- les modifications sont coh&eacute;rentes. La meilleure fa&ccedil;on de
- nous l'envoyer est de l'inclure dans un &man.send-pr.1;
- (cat&eacute;gorie <literal>ports</literal>). Pr&eacute;cisez s'il vous
- pla&icirc;t quels sont les fichiers ajout&eacute;s et supprim&eacute;s,
- parce qu'il faut explicitement les indiquez &agrave; CVS au moment de le
- mise &agrave; jour. Si le delta fait plus de 20Ko, compressez-le et
- codez-le avec <application>uuencode</application>; sinon, incluez-le
- seulement tel quel dans le PR.</para>
-
- <para>Une fois encore, utilisez s'il vous pla&icirc;t &man.diff.1; et non
- &man.shar.1; pour nous envoyer les mises &agrave; jour des logiciels
- port&eacute;s.</para>
- </sect2>
-
- <sect2>
- <title><anchor id="porting-dads">A faire &agrave; ne pas faire</title>
-
- <para>Voici une liste de ce qu'il faut habituellement faire ou
- &eacute;viter lors d'un portage. Vous devriez utiliser cette liste
- pour valider votre propre portage et vous pouvez aussi contr&ocirc;ler
- les logiciels que d'autres ont soumis dans la base des donn&eacute;es
- des rapports d'incidents. Transmettez tous vos commentaires au sujet des
- logiciels port&eacute;s dans la rubrique
- <link linkend="contrib-general">Rapports d'incidents et commentaires
- g&eacute;n&eacute;raux&nbsp;-&nbsp;<foreignphrase>Bug Reports and
- General Commentary</foreignphrase></link>. Validez les logiciels
- port&eacute;s mentionn&eacute;s dans la base nous permettra de les
- int&eacute;grer plus rapidement et prouvera en m&ecirc;me temps que vous
- savez ce que vous faites.</para>
-
- <sect3>
- <title>Nettoyez les binaires</title>
-
- <para>Supprimez les informations
- inutiles&nbsp;-&nbsp;<foreignphrase>strip</foreignphrase>&nbsp;-&nbsp;des
- binaires. Si c'est d&eacute;j&agrave; fait par le source d'origine,
- tant mieux; sinon ajoutez une r&egrave;gle &agrave; la cible
- <maketarget>post-install</maketarget> pour le faire vous-m&ecirc;me.
- Voici un example&nbsp;:</para>
-
- <programlisting>
-post-install:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strip ${PREFIX}/bin/xdl
- </programlisting>
-
- <para>Utilisez la commande &man.file.1; sur l'ex&eacute;cutable
- install&eacute; pour voir s'il est d&eacute;j&agrave; nettoy&eacute;.
- Si elle ne vous r&eacute;pond pas <literal>not stripped</literal>,
- c'est d&eacute;j&agrave; fait.</para>
- </sect3>
-
- <sect3>
- <title>macros-instruction INSTALL_*</title>
-
- <para>Utilisez les macros-instructions fournies par
- <filename>bsd.port.mk</filename> pour &ecirc;tre s&ucirc;r que les
- droits sur les fichiers sont correctement g&eacute;r&eacute;s par vos
- cibles <maketarget>*-install</maketarget>. Ce sont&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><makevar>INSTALL_PROGRAM</makevar> pour installer les binaires
- ex&eacute;cutables,</para>
- </listitem>
-
- <listitem>
- <para><makevar>INSTALL_SCRIPT</makevar> pour installer les
- proc&eacute;dures ex&eacute;cutables,</para>
- </listitem>
-
- <listitem>
- <para><makevar>INSTALL_DATA</makevar> pour installer les
- donn&eacute;es partageables,</para>
- </listitem>
-
- <listitem>
- <para><makevar>INSTALL_MAN</makevar> pour installer les pages de
- manuel et autres documentations (cela ne compresse rien).</para>
- </listitem>
- </itemizedlist>
-
- <para>Ces macros-instructions sont essentiellement compos&eacute;es
- d'une commande <command>install</command> avec les options
- appropri&eacute;es. Vous trouverez plus bas un exemple de leur
- utilisation.</para>
- </sect3>
-
- <sect3 id="porting-wrkdir">
- <title><makevar>WRKDIR</makevar></title>
-
- <para>N'&eacute;crivez rien en dehors de <makevar>WRKDIR</makevar>.
- <makevar>WRKDIR</makevar> est le seul endroit o&ugrave; vous
- &ecirc;tes s&ucirc;r de pouvoir &eacute;crire pendant la
- compilation d'un logiciel port&eacute; (reportez-vous &agrave; la
- section <link linkend="ports-cd">compiler les logiciels port&eacute;s
- depuis un CD-ROM</link> pour avoir un example de compilation de
- logiciels port&eacute;s dans une arborescence en lecture seule).
- example of building ports from a read-only tree). S'il vous faut
- modifier un fichier dans <makevar>PKGDIR</makevar>, faites-le en
- <link linkend="porting-pkgsubdir">red&eacute;finissant une
- variable</link>, non en l'&eacute;crasant.</para>
- </sect3>
-
- <sect3>
- <title><makevar>WRKDIRPREFIX</makevar></title>
-
- <para>Veillez &agrave; utiliser <makevar>WRKDIRPREFIX</makevar>.
- Cela ne concerne pas la plupart des logiciels port&eacute;s. Mais,
- en particulier si vous faites r&eacute;f&eacute;rence au
- <makevar>WRKDIR</makevar> d'un autre logiciel, notez que la
- r&eacute;f&eacute;rence correcte est
- <filename><makevar>WRKDIRPREFIX</makevar><makevar>PORTSDIR</makevar>/<replaceable>sous-r&eacute;pertoire</replaceable>/<replaceable>nom</replaceable>/work</filename>
- et non <filename><makevar>PORTSDIR</makevar>/<replaceable>sous-r&eacute;pertoire</replaceable>/<replaceable>nom</replaceable>/work</filename>
- ou <filename><makevar>.CURDIR</makevar>/../../<replaceable>sous-r&eacute;pertoire</replaceable>/<replaceable>nom</replaceable>/work</filename>
- ou autre chose encore.</para>
-
- <para>Par ailleurs, si vous d&eacute;finissez vous-m&ecirc;me
- <makevar>WRKDIR</makevar>, veillez &agrave; bien le faire commencer
- par <literal>&dollar;{WKRDIRPREFIX}&dollar;{.CURDIR}</literal>.</para>
- </sect3>
-
- <sect3 id="porting-versions">
- <title>Distinguer les syst&egrave;mes d'exploitation et leurs
- versions</title>
-
- <para>Vous pouvez tomber sur du code qui doit &ecirc;tre modifi&eacute;
- ou compil&eacute; conditionnellement selon la version d'Unix sur
- laquelle il s'ex&eacute;cutera. Si vous avez besoin de faire ce type
- de modifications du code ou de mettre en place une compilation
- conditionelle, veillez &agrave; ce que vos modifications soient aussi
- g&eacute;n&eacute;rales que possible, de sorte que nous puissions
- r&eacute;troporter le code sur les syst&egrave;mes FreeBSD 1.x et le
- porter sur les autres syst&egrave;mes BSD tels que 4.4BSD du CSRG,
- BSD/386, 386BSD, NetBSD et OpenBSD.</para>
-
- <para>La solution appropri&eacute;e pour distinguer 4.3BSD/Reno(1990) et
- les versions ult&eacute;rieures de BSD est d'utiliser la
- macro-instruction <literal>BSD</literal> d&eacute;finie dans
- <filename>&lt;sys/param.h&gt;</filename>. Avec de la chance, ce
- fichier est d&eacute;j&agrave; inclus; si ce n'est pas le cas,
- ajoutez&nbsp;:</para>
-
- <programlisting>
-#if (defined(__unix__) || defined(unix)) &amp;&amp; !defined(USG)
-#include &lt;sys/param.h&gt;
-#endif
- </programlisting>
-
- <para>&agrave; l'endroit voulu dans le fichier <filename>.c</filename>.
- Nous estimons que tous les syst&egrave;mes qui d&eacute;finissent ces
- deux symboles disposent d'un <filename>sys/param.h</filename>. Si vous
- tombez sur un syst&egrave;me pour lequel ce n'est pas le cas, nous
- aimerions le savoir. Envoyez un courrier &eacute;lectronique &agrave;
- la &a.ports;.</para>
-
- <para>L'autre moyen est d'utiliser le style GNU
- <application>autoconf</application> de faire ce genre de
- choses&nbsp;:</para>
-
- <programlisting>
-#ifdef HAVE_SYS_PARAM_H
-#include &lt;sys/param.h&gt;
-#endif
- </programlisting>
-
- <para>N'oubliez pas d'ajouter <literal>-DHAVE_SYS_PARAM_H</literal>
- &agrave; <makevar>CFLAGS</makevar> dans le
- <filename>Makefile</filename> dans ce cas.</para>
-
- <para>Une fois que vous avez inclus
- <filename>sys/param.h</filename> vous pouvez utiliser&nbsp;:</para>
-
- <programlisting>
-#if (defined(BSD) &amp;&amp; (BSD &gt;= 199103))
- </programlisting>
-
- <para>pour savoir si le code est compil&eacute; sur un syst&egrave;me
- bas&eacute; sur 4.3 Net2 ou sur une version ult&eacute;rieure (e.g.,
- FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, BSD/386 1.1 et
- ant&eacute;rieurs).</para>
-
- <para>Utilisez&nbsp;:</para>
-
- <programlisting>
-#if (defined(BSD) &amp;&amp; (BSD &gt;= 199306))
- </programlisting>
-
- <para>pour savoir si le code est compil&eacute; sur un syst&egrave;me
- bas&eacute; sur 4.4 ou sur une version ult&eacute;rieure (e.g.,
- FreeBSD 2.x, 4.4, NetBSD 1.0, 386BSD, BSD/386 2.0 et
- ult&eacute;rieurs).</para>
-
- <para>La macro-instruction <literal>BSD</literal> prend la valeur
- <literal>199506</literal> lorsque le code est bas&eacute; sur
- 4.4BSD-Lite2. Ceci n'est donn&eacute; qu'&agrave; titre d'information
- et ne doit pas &ecirc;tre utilis&eacute; pour distinguer les versions
- de FreeBSD bas&eacute;es sur 4.4-Lite de celles qui ont
- int&eacute;gr&eacute; les modifications introduites avec
- 4.4-Lite2. Il faut utiliser pour cela la macro-instruction
- <literal>__FreeBSD__</literal>.</para>
-
- <para>Utilisez avec mod&eacute;ration&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>__FreeBSD__</literal> est d&eacute;finie dans toutes
- les versions de FreeBSD. Utilisez-la si vos modifications
- ne concernent <emphasis>que</emphasis> FreeBSD. Des trucs de
- portage tel que remplacer <function>strerror()</function>
- par <literal>sys_errlist[]</literal> sont propres aux
- syst&egrave;mes Berkeley, et non &agrave; FreeBSD.</para>
- </listitem>
-
- <listitem>
- <para>Sous FreeBSD 2.x, <literal>__FreeBSD__</literal> prend la
- valeur <literal>2</literal>. Dans les versions ant&eacute;rieures,
- elle vaut <literal>1</literal>. Les versions suivantes
- l'augmenteront pour qu'elle soit &eacute;gale &agrave; leur
- num&eacute;ro de version majeure.</para>
- </listitem>
-
- <listitem>
- <para>Si vous avez besoin de faire la diff&eacute;rence entre un
- syst&egrave;me FreeBSD 2.x et un syst&egrave;me 3.x, la bonne
- mani&egrave;re de faire est normalement d'utiliser les
- macros-instructions <literal>BSD</literal> d&eacute;crites plus
- haut. S'il y a effectivement des modifications sp&eacute;cifiques
- &agrave; FreeBSD (une option particuli&egrave;re pour une
- biblioth&egrave;que partiag&eacute;e avec <command>ld</command>),
- vous pouvez alors &agrave; juste titre utiliser
- <literal>__FreeBSD__</literal> et
- <literal>#if __FreeBSD__ &gt; 1</literal> pour tester s'il s'agit
- d'un syst&egrave;me FreeBSD 2.x ou ult&eacute;rieur. Si vous
- avez besoin d'une particularisation plus fine des syst&egrave;mes
- FreeBSD &agrave; partir de 2.0-release, vous pouvez vous servir
- de&nbsp;:</para>
-
- <programlisting>
-#if __FreeBSD__ &gt;= 2
-#include &lt;osreldate.h&gt;
-# if __FreeBSD_version &gt;= 199504
- /* code propre &agrave; la version 2.0.5 et ult&eacute;rieures */
-# endif
-#endifi
- </programlisting>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Version de FreeBSD</entry>
- <entry><literal>__FreeBSD_version</literal></entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>2.0-RELEASE</entry>
- <entry>119411</entry>
- </row>
-
- <row>
- <entry>2.1-CURRENTs</entry>
- <entry>199501, 199503</entry>
- </row>
-
- <row>
- <entry>2.0.5-RELEASE</entry>
- <entry>199504</entry>
- </row>
-
- <row>
- <entry>2.2-CURRENT avant 2.1</entry>
- <entry>199508</entry>
- </row>
-
- <row>
- <entry>2.1.0-RELEASE</entry>
- <entry>199511</entry>
- </row>
-
- <row>
- <entry>2.2-CURRENT apr&egrave; 2.1.5</entry>
- <entry>199512</entry>
- </row>
-
- <row>
- <entry>2.1.5-RELEASE</entry>
- <entry>199607</entry>
- </row>
-
- <row>
- <entry>2.2-CURRENT apr&eacute;s 2.1.6</entry>
- <entry>199608</entry>
- </row>
-
- <row>
- <entry>2.1.6-RELEASE</entry>
- <entry>199612</entry>
- </row>
-
- <row>
- <entry>2.1.7-RELEASE</entry>
- <entry>199612</entry>
- </row>
-
- <row>
- <entry>2.2-RELEASE</entry>
- <entry>220000</entry>
- </row>
-
- <row>
- <entry>2.2.1-RELEASE</entry>
- <entry>220000 (pas de changement)</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE after 2.2.1-RELEASE</entry>
- <entry>220000 (pas de changement)</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s introduction de
- texinfo-3.9</entry>
- <entry>221001</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s introduction de top</entry>
- <entry>221002</entry>
- </row>
-
- <row>
- <entry>2.2.2-RELEASE</entry>
- <entry>222000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s 2.2.2-RELEASE</entry>
- <entry>222001</entry>
- </row>
-
- <row>
- <entry>2.2.5-RELEASE</entry>
- <entry>225000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s 2.2.5-RELEASE</entry>
- <entry>225001</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s fusion avec
- ldconfig -R</entry>
- <entry>225002</entry>
- </row>
-
- <row>
- <entry>2.2.6-RELEASE</entry>
- <entry>226000</entry>
- </row>
-
- <row>
- <entry>2.2.7-RELEASE</entry>
- <entry>227000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s 2.2.7-RELEASE</entry>
- <entry>227001</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s modification de
- <citerefentry><refentrytitle>semctl</refentrytitle>
- <manvolnum>2</manvolnum></citerefentry></entry>
- <entry>227002</entry>
- </row>
-
- <row>
- <entry>2.2.8-RELEASE</entry>
- <entry>228000</entry>
- </row>
-
- <row>
- <entry>2.2-STABLE apr&egrave;s 2.2.8-RELEASE</entry>
- <entry>228001</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT avant modification de
- <citerefentry><refentrytitle>mount</refentrytitle>
- <manvolnum>2</manvolnum></citerefentry></entry>
- <entry>300000</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT apr&egrave;s modification de
- <citerefentry><refentrytitle>mount</refentrytitle>
- <manvolnum>2</manvolnum></citerefentry> change</entry>
- <entry>300002</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT apr&egrave;s modification des
- arguments de ioctl</entry>
- <entry>300003</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT apr&egrave;s conversions au format
- ELF</entry>
- <entry>300004</entry>
- </row>
-
- <row>
- <entry>3.0-RELEASE</entry>
- <entry>300005</entry>
- </row>
-
- <row>
- <entry>3.0-CURRENT apr&egrave;s 3.0-RELEASE</entry>
- <entry>300006</entry>
- </row>
-
- <row>
- <entry>3.0-STABLE apr&egrave;s introduction de la
- branche 4.x</entry>
- <entry>300007</entry>
- </row>
-
- <row>
- <entry>3.1-RELEASE</entry>
- <entry>310000</entry>
- </row>
-
- <row>
- <entry>3.1-STABLE apr&egrave;s 3.1-RELEASE</entry>
- <entry>310001</entry>
- </row>
-
- <row>
- <entry>4.0-CURRENT apr&egrave;s introduction de la
- branche 4.x</entry>
- <entry>400000</entry>
- </row>
-
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>Remarquz que 2.2-stable s'identifie parfois elle-m&ecirc;me
- comme &ldquo;2.2.5-stable&rdquo; apr&egrave;s la 2.2.5-release. La
- cl&eacute; &eacute;tait autrefois l'ann&eacute;e suivie du mois,
- mais nous avons d&eacute;cid&eacute; d'en changer pour un
- syst&egrave;me plus explicite constitu&eacute; des num&eacute;ros de
- versions majeure et mineure &agrave; partir de la 2.2. Cela parce
- que le d&eacute;veloppement parall&egrave;le sur plusieurs
- branches rendait impossible le classement des versions simplement
- par leur date effective de livraison. Si vous portez aujourd'hui
- un logiciel, vous n'avez pas &agrave; vous soucier des anciennes
- versions <literal>-current</literal>s; elles ne sont
- mentionn&eacute;es ici qu'&agrave; titre de
- r&eacute;f&eacute;rence.</para>
- </note>
-
- <para>Dans les centaines de logiciels qui ont &eacute;t&eacute;
- port&eacute;s, il n'y a qu'un ou deux cas o&ugrave; il fallait
- effectivement utiliser <literal>__FreeBSD__</literal>. Ce n'est pas
- parce qu'un portage ant&eacute;rieur n'a pas &eacute;t&eacute; bien
- fait et s'en est servi &agrave; tort qu'il faut
- pers&eacute;verer.</para>
- </sect3>
-
- <sect3>
- <title>Mettre quelque chose apr&egrave;s
- <filename>bsd.port.mk</filename></title>
-
- <para>Ne mettez rien apr&egrave;s la ligne <literal>.include
- &lt;bsd.port.mk&gt;</literal>. Cela peut &ecirc;tre le plus souvent
- &eacute;vit&eacute; en incluant
- <filename>bsd.port.pre.mk</filename> quelque part au milieu de votre
- <filename>Makefile</filename> et
- <filename>bsd.port.post.mk</filename> &agrave; la fin.</para>
-
- <note>
- <para>Vous devez inclure soit le couple
- <filename>pre.mk</filename>/<filename>post.mk</filename> soit
- <filename>bsd.port.mk</filename> uniquement; ne m&eacute;langez
- pas les deux.</para>
- </note>
-
- <para><filename>bsd.port.pre.mk</filename> ne d&eacute;finit que
- quelques variables, qui peuvent &ecirc;tre test&eacute;es dans le
- <filename>Makefile</filename>, <filename>bsd.port.post.mk</filename>
- prend en charge tout le reste.</para>
-
- <para>Voici quelques unes des variables importantes qui sont
- d&eacute;finies dans <filename>bsd.port.pre.mk</filename> (ce n'est
- pas une liste exhaustive, reportez-vous s'il vous pla&icirc;t &agrave;
- <filename>bsd.port.mk</filename> pour avoir une liste
- compl&egrave;te).</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><makevar>ARCH</makevar></entry>
- <entry>L'architecture sous le m&ecirc;me forme que le
- r&eacute;sultat de <command>uname -m</command> (e.g.,
- <literal>i386</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>OPSYS</makevar></entry>
- <entry>Le syst&egrave;me d'exploitation, sous le m&ecirc;me
- forme que le r&eacute;sultat de la commande
- <command>uname -s</command> (e.g.,
- <literal>FreeBSD</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>OSREL</makevar></entry>
- <entry>La version du syst&egrave;me d'exploitation (e.g.,
- <literal>2.1.5</literal> ou
- <literal>2.2.7</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>OSVERSION</makevar></entry>
- <entry>La version sous forme num&eacute;rique du syst&egrave;me
- d'exploitation, identique &agrave;
- <link linkend="porting-versions"><literal>__FreeBSD_version</literal></link>.</entry>
- </row>
-
- <row>
- <entry><makevar>PORTOBJFORMAT</makevar></entry>
- <entry>Le format &ldquo;objet&rdquo; du syst&egrave;me
- (<literal>aout</literal> or <literal>elf</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>LOCALBASE</makevar></entry>
- <entry>La racine de l'arborescence &ldquo;locale&rdquo; (e.g.,
- <literal>/usr/local/</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>X11BASE</makevar></entry>
- <entry>La racine de l'arborescence &ldquo;X11&rdquo; (e.g.,
- <literal>/usr/X11R6</literal>)</entry>
- </row>
-
- <row>
- <entry><makevar>PREFIX</makevar></entry>
- <entry>O&ugrave; le logiciel s'installe lui-m&ecirc;me
- (Reportez-vous &agrave; la section
- <link linkend="porting-prefix"><makevar>PREFIX</makevar></link>
- pour plus d'informations).</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>Si vous avez besoin de d&eacute;finir les variables
- <makevar>USE_IMAKE</makevar>, <makevar>USE_X_PREFIX</makevar> ou
- <makevar>MASTERDIR</makevar>, faites-le avant d'inclure
- <filename>bsd.port.pre.mk</filename>.</para>
- </note>
-
- <para>Voici quelques exemples de ce que vous pouvez mettre apr&egrave;s
- <filename>bsd.port.pre.mk</filename>&nbsp;:</para>
-
- <programlisting>
-# il est inutile de compiler lang/perl5 si perl5 fait d&eacute;j&agrave; partie du syst&egrave;me
-.if ${OSVERSION} > 300003
-BROKEN= perl fait partie du syst&egrave;me
-.endif
-
-# un seule num&eacute;ro de version de biblioth&egrave;que partag&eacute;e en ELF
-.if ${PORTOBJFORMAT} == "elf"
-TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}
-.else
-TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR}
-.endif
-
-# le logiciel fait d&eacute;j&agrave; les liens pour ELF, mais pas pour a.out
-post-install:
-.if ${PORTOBJFORMAT} == "aout"
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so
-.endif
- </programlisting>
- </sect3>
-
- <sect3>
- <title>Installer des documentations suppl&eacute;mentaires</title>
-
- <para>Si votre logiciel &agrave; porter est accompagn&eacute; d'autres
- documentations que les habituelles pages de manuel ou
- &ldquo;info&rdquo;, que vous trouvez utiles, installez-les dans
- <filename><makevar>PREFIX</makevar>/share/doc</filename>.
- Vous pouvez le faire de m&ecirc;me, comme expliqu&eacute; plus haut
- avec la cible <maketarget>post-install</maketarget>.</para>
-
- <para>Cr&eacute;ez un nouveau sous-r&eacute;pertoire pour votre logiciel
- &agrave; porter. Le nom de ce sous-r&eacute;pertoire devrait faire
- r&eacute;f&eacute;rence &agrave; son contenu. Cela signifie la plupart
- du temps que ce sera le <makevar>PKGNAME</makevar> sans le
- num&eacute;ro de version. Si vous pensez toutefois que l'utilisateur
- voudra peut-&ecirc;tre installer diff&eacute;rentes versions du
- logiciel, utilisez alors le <makevar>PKGNAME</makevar> complet.</para>
-
- <para>Param&eacute;trez l'installation en utilisant la variable
- <makevar>NOPORTDOCS</makevar> pour que les utilisateurs puissent ne
- pas installer ces documentations, en se servant de
- <filename>/etc/make.conf</filename>, s'ils le souhaitent, comme
- suit&nbsp;:</para>
-
- <programlisting>
-post-install:
-.if !defined(NOPORTDOCS)
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${MKDIR}${PREFIX}/share/doc/xv
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${PREFIX}/share/doc/xv
-.endif
- </programlisting>
-
- <para>N'oubliez pas de les ajouter aussi &agrave;
- <filename>pkg/PLIST</filename>&nbsp;! (Ne vous souciez pas ici de
- <makevar>NOPORTDOCS</makevar>; il n'y a aujourd'hui aucun moyen pour
- que les proc&eacute;dures d'installation des logiciels
- pr&eacute;compil&eacute;s lisent les variables de
- <filename>/etc/make.conf</filename>.)</para>
-
- <para>Vous pouvez aussi vous servir du fichier
- <filename>pkg/MESSAGE</filename> pour afficher des messages &agrave;
- l'installation. Reportez-vous &agrave; la section sur l'utilisation
- de
- <link linkend="porting-message"><filename>pkg/MESSAGE</filename></link>
- pour plus d'informations.</para>
-
- <note>
- <para>Il n'y a pas besoin d'ajouter <filename>MESSAGE</filename>
- &agrave; <filename>pkg/PLIST</filename>.</para>
- </note>
- </sect3>
-
- <sect3>
- <title><makevar>DIST_SUBDIR</makevar></title>
-
- <para>Evitez que votre logiciel n'encombre
- <filename>/usr/ports/distfiles</filename>. S'il doit rapatrier de
- nombreux fichiers ou comporte un fichier dont le nom est
- d&eacute;j&agrave; utilis&eacute; par un autre logiciel (e.g.,
- <filename>Makefile</filename>), donnez &agrave;
- <makevar>DIST_SUBDIR</makevar> le nom du logiciel
- (<makevar>PKGNAME</makevar> sans le num&eacute;ro de version devrait
- faire l'affaire). Cela modifiera <makevar>DISTDIR</makevar> de
- <filename>/usr/ports/distfiles</filename> par d&eacute;faut, en
- <filename>/usr/ports/distfiles/<makevar>DIST_SUBDIR</makevar></filename>
- et mettra effectivement tout ce dont a besoin votre logiciel &agrave;
- porter dans ce sous-r&eacute;pertoire. </para>
-
- <para>Le sous-r&eacute;pertoire du m&ecirc;me nom sur le site principal
- de secours <filename>ftp.freebsd.org</filename> sera aussi
- consult&eacute; (Positionner explicitement <makevar>DISTDIR</makevar>
- dans votre <makevar>Makefile</makevar> n'aboutira pas au m&ecirc;me
- r&eacute;sultat, utilisez s'il vous pla&icirc;t
- <makevar>DIST_SUBDIR</makevar>.)</para>
-
- <note>
- <para>Cela n'a pas d'effet sur les <makevar>MASTER_SITES</makevar> que
- vous d&eacute;finissez dans votre
- <filename>Makefile</filename>.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Informations sur le paquetage</title>
-
- <para>Ne mettez pas les informations sur le paquetage, i.e.
- <filename>COMMENT</filename>, <filename>DESCR</filename> et
- <filename>PLIST</filename> dans <filename>pkg</filename>.</para>
-
- <note>
- <para>Notez bien que ces fichiers ne sont plus utilis&eacute;s
- uniquement pour la version pr&eacute;compil&eacute;e et sont
- maintenant <emphasis>indispensables</emphasis>, m&ecirc;me si la
- variable <makevar>NO_PACKAGE</makevar> est d&eacute;finie.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Cha&icirc;nes RCS</title>
-
- <para>Ne mettez pas les cha&icirc;nes RCS dans les fichiers de mise
- &agrave; niveau&nbsp;-&nbsp;<foreignphrase>patches</foreignphrase>.
- CVS les modifiera quand nous mettrons les fichiers dans l'arborescence
- des logiciels port&eacute;s et de nouveau lorsque nous les
- extrairons ensuite et les mises &agrave; jour &eacute;chouerons. Les
- cha&icirc;nes RCS sont encadr&eacute;es par des caract&egrave;res
- &ldquo;dollar&rdquo; (<literal>&#36;</literal>), et commencent
- typiquement par <literal>&#36;Id</literal> ou
- <literal>&#36;RCS</literal>.</para>
- </sect3>
-
- <sect3>
- <title>&ldquo;diff&rdquo; r&eacute;cursifs</title>
-
- <para>Il est bien d'utiliser la r&eacute;cursivit&eacute;
- (<option>-r</option>) avec <command>diff</command> pour
- g&eacute;n&eacute;rer les fichiers de mise &agrave; jour, mais
- examinez s'il vous pla&icirc;t le r&eacute;sultat pour vous assurer
- qu'il n'est pas pollu&eacute; par trop de choses inutiles. En
- particulier, les deltas entre fichiers dupliqu&eacute;s pour
- sauvegarder la version originale, les <filename>Makefile</filename>s
- alors que le logiciel &agrave; porter utilise
- <command>Imake</command> ou GNU <command>configure</command>, etc.,
- sont inutiles et doivent &ecirc;tre supprim&eacute;s. Si vous avez
- d&ucirc; modifier <filename>configure.in</filename> et utiliser
- <command>autoconf</command> pour mettre &agrave; jour
- <command>configure</command>, n'incluez pas le delta pour
- <command>configure</command> (il contient souvent plusieurs centaines
- de lignes&nbsp;!)&nbsp;; d&eacute;finissez
- <literal>USE_AUTOCONF=yes</literal> et donnez les deltas pour
- <filename>configure.in</filename>.</para>
-
- <para>Si vous avez par ailleurs eu &agrave; supprimer un fichier, vous
- pouvez le faire avec la cible <maketarget>post-extract</maketarget>
- plut&ocirc;t qu'en vous servant du fichier de mise &agrave; jour. Une
- fois que le delta vous convient, d&eacute;coupez-le s'il vous
- pla&icirc;t pour qu'il y ait un fichier de mise &agrave; jour pour
- chaque fichier source.</para>
- </sect3>
-
- <sect3 id="porting-prefix">
- <title><makevar>PREFIX</makevar></title>
-
- <para>Faites en sorte que votre logiciel s'installe sous l'arborescence
- <makevar>PREFIX</makevar>. (Cette variable prend la valeur de
- <makevar>LOCALBASE</makevar> (par d&eacute;faut
- <filename>/usr/local</filename>), &agrave; moins que
- <makevar>USE_X_PREFIX</makevar> ou <makevar>USE_IMAKE</makevar> ne
- soient d&eacute;finies, auquel cas ce sera <makevar>X11BASE</makevar>
- (par d&eacute;faut <filename>/usr/X11R6</filename>).)</para>
-
- <para>Le fait de ne coder nulle part en dur
- <filename>/usr/local</filename> ou <filename>/usr/X11R6</filename>
- dans le source rend le portage plus souple et facilite son adaptation
- aux besoins d'autres sites. Pour les logiciels X qui se servent de
- <command>imake</command>, c'est automatique; dans les autres cas, il
- suffit souvent de faire en sorte que <filename>/usr/local</filename>
- (ou <filename>/usr/X11R6</filename> pour les logiciels X qui
- n'utilisent pas <command>imake</command>) soit remplac&eacute; par la
- valeur de <makevar>PREFIX</makevar> dans les diff&eacute;rentes
- proc&eacute;dures et <filename>Makefile</filename>s du logiciel,
- puisque cette variable est toujours transmise &agrave; chaque
- &eacute;tape du processus de compilation et d'installation.</para>
-
- <para>N'utilisez pas <makevar>USE_X_PREFIX</makevar> &agrave; mois d'en
- avoir vraiment besoin (i.e., l'&eacute;dition de liens utilise les
- biblioth&egrave;ques X ou vous avez besoin de faire
- r&eacute;f&eacute;rence &agrave; des fichiers de
- <makevar>X11BASE</makevar>).</para>
-
- <para>La variable <makevar>PREFIX</makevar> peut &ecirc;tre
- red&eacute;finie dans votre <filename>Makefile</filename> ou dans
- l'environnement de l'utilisateur. Il est n&eacute;anmoins fortement
- d&eacute;conseill&eacute; de la d&eacute;finir explicitement dans les
- <filename>Makefile</filename>s de logiciels.</para>
-
- <para>Utilisez aussi les variables pr&eacute;c&eacute;dentes pour faire
- r&eacute;f&eacute;rence &agrave; des programmes ou fichiers d'autres
- logiciels port&eacute;s et non en donnant les chemins d'acc&egrave;s
- complets. Par exemple, si votre logiciel a besoin que la
- macro-instruction <literal>PAGER</literal> donne le chemin
- d'acc&egrave;s &agrave; <command>less</command>, utilisez
- l'indicateur&nbsp;:</para>
-
- <programlisting>
--DPAGER=\"&#36;{PREFIX}/bin/less\"
- </programlisting>
-
- <para>du compilateur, ou&nbsp;:</para>
-
- <programlisting>
--DPAGER=\"&#36;{LOCALBASE}/bin/less\"
- </programlisting>
-
- <para>si c'est un logiciel X, au lieu de
- <literal>-DPAGER=\"/usr/local/bin/less\"</literal>. Cela aura plus de
- chances de marcher si votre administrateur syst&egrave;me a
- d&eacute;plac&eacute; toute l'arborescence
- <filename>/usr/local</filename> ailleurs.</para>
- </sect3>
-
- <sect3>
- <title>Sous-r&eacute;pertoires</title>
-
- <para>Essayez de faire en sorte que le logiciel &agrave; porter installe
- ses fichiers dans les bons sous-r&eacute;pertoires de
- <makevar>PREFIX</makevar>. Certains logiciels regroupent tout dans un
- sous-r&eacute;pertoire portant le nom du logiciel, ce qui est
- incorrect. De nombreux logiciels mettent aussi tout, sauf les
- binaires, fichiers d'en-t&ecirc;te et pages de manuel dans un
- sous-r&eacute;pertoire de <filename>lib</filename>, ce qui ne fait pas
- bon m&eacute;nage avec le paradigme BSD. La plupart des fichiers
- doivent &ecirc;tre d&eacute;plac&eacute;s vers&nbsp;:
- <filename>etc</filename> (fichiers d'initialisation et de
- configuration), <filename>libexec</filename> (ex&eacute;cutables
- d&eacute;marr&eacute;s par le syst&egrave;me),
- <filename>sbin</filename> (ex&eacute;cutables pour les
- super-utilisateurs/administrateurs), <filename>info</filename>
- (documentations au format &ldquo;info&rdquo;) ou
- <filename>share</filename> (fichiers ind&eacute;pendants de
- l'architecture). Reportez-vous aux pages de manuel de &man.hier.7;
- pour plus de d&eacute;tails au sujet des r&egrave;gles qui
- r&eacute;gissent <filename>/usr</filename>, la plus grande partie
- s'applique aussi &agrave; <filename>/usr/local</filename>. Les
- logiciels en rapport avec les &ldquo;news&rdquo; USENET font
- exception. Ils peuvent se servir de
- <filename><makevar>PREFIX</makevar>/news</filename> pour y mettre
- leurs fichiers.</para>
- </sect3>
-
- <sect3 id="porting-cleaning">
- <title>Supprimer les r&eacute;pertoires vides</title>
-
- <para>Faites en sorte que le logiciel fasse le m&eacute;nage lors de sa
- d&eacute;sinstallation. Cela se fait habituellement en ajoutant des
- lignes <literal>@dirrm</literal> pour tous les r&eacute;pertoires
- sp&eacute;cifiquement cr&eacute;&eacute;s par le logiciel. Il faut
- supprimer les sous-r&eacute;pertoires avant de supprimer leurs
- r&eacute;pertoires parents.</para>
-
- <programlisting>
-&nbsp;:
-lib/X11/oneko/pixmaps/cat.xpm
-lib/X11/oneko/sounds/cat.au
-&nbsp;:
-@dirrm lib/X11/oneko/pixmals
-@dirrm lib/X11/oneko/sounds
-@dirrm lib/X11/oneko</programlisting>
-
- <para>Il arrive parfois que <literal>@dirrm</literal> &eacute;mette un
- message d'erreur parce que d'autres logiciels partagent le m&ecirc;me
- sous-r&eacute;pertoire. Vous pouvez invoquer
- <command>rmdir</command> depuis <literal>@unexec</literal> pour ne
- supprimer que les sous-r&eacute;pertoires vides sans messages
- d'avertissement.</para>
-
- <programlisting>
-@unexec rmdir %D/share/doc/gimp 2>/dev/null || true</programlisting>
-
- <para>Il n'y aura alors ni message d'erreur, ni fin anormale de
- <command>pkg_delete</command> m&ecirc;me si
- <filename><makevar>PREFIX</makevar>/share/doc/gimp</filename> n'est
- pas vide parce que d'autres logiciels y ont install&eacute; des
- fichiers.</para>
- </sect3>
-
- <sect3>
- <title><literal>UID</literal>s</title>
-
- <para>Si votre logiciel a besoin qu'un utilisateur particulier existe
- sur le syst&egrave;me, appelez <command>pw</command> dans la
- proc&eacute;dure <filename>pkg/INSTALL</filename> pour le cr&eacute;er
- automatiquement. Voyez <filename>net/cvsup-mirror</filename> pour
- avoir un exemple.</para>
-
- <para>Si votre logiciel &agrave; porter a besoin du m&ecirc;me
- <literal>ID</literal>dentifiant d'utilisateur/groupe qui a servi
- &agrave; sa compilation quand on installe le paquetage binaire, vous
- devez choisir un <literal>UID</literal> libre entre 50 et 99 et
- l'enregistrer ci-dessous. Voyez <filename>japanese/Wnn</filename> pour
- avoir un exemple.</para>
-
- <para>Veillez &agrave; ne pas utiliser un <literal>UID</literal>
- d&eacute;j&agrave; employ&eacute; par le syst&egrave;me ou d'autres
- logiciels. Voici la liste des <literal>UID</literal>s entre 50 et
- 99.</para>
-
- <programlisting>
-majordom:*:54:54:Majordomo Pseudo User:/usr/local/majordomo:/nonexistent
-cyrus:*:60:60:the cyrus mail server:/nonexistent:/nonexistent
-gnats:*:61:1:GNATS database owner:/usr/local/share/gnats/gnats-db:/bin/sh
-uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
-xten:*:67:67:X-10 daemon:/usr/local/xten:/nonexistent
-pop:*:68:6:Post Office Owner (popper):/nonexistent:/nonexistent
-wnn:*:69:7:Wnn:/nonexistent:/nonexistent
-ifmail:*:70:66:Ifmail user:/nonexistent:/nonexistent
-pgsql:*:70:70:PostgreSQL pseudo-user:/usr/local/pgsql:/bin/sh
-ircd:*:72:72:IRCd hybrid:/nonexistent:/nonexistent
-alias:*:81:81:QMail user:/var/qmail/alias:/nonexistent
-qmaill:*:83:81:QMail user:/var/qmail:/nonexistent
-qmaild:*:82:81:QMail user:/var/qmail:/nonexistent
-qmailq:*:85:82:QMail user:/var/qmail:/nonexistent
-qmails:*:87:82:QMail user:/var/qmail:/nonexistent
-qmailp:*:84:81:QMail user:/var/qmail:/nonexistent
-qmailr:*:86:82:QMail user:/var/qmail:/nonexistent
-msql:*:87:87:mSQL-2 pseudo-user:/var/db/msqldb:/bin/sh</programlisting>
-
- <para>Signalez s'il vous pla&icirc;t que vous r&eacute;servez un
- <literal>UID</literal> ou <literal>GID</literal> dans cette plage,
- quand vous soumettez un logiciel (ou une mise &agrave; niveau). Cela
- nous permet de tenir &agrave; jour la liste des <literal>ID</literal>s
- r&eacute;serv&eacute;s.</para>
- </sect3>
-
- <sect3>
- <title>Faites les choses rationnellement</title>
-
- <para>Le <filename>Makefile</filename> doit faire des choses simples et
- logiques. Si vous pouvez le raccourcir et le rendre plus lisible,
- faites-le. Utilisez par exemple un instruction
- <literal>.if</literal> de <command>make</command>, au lieu d'un
- <literal>if</literal> de l'interpr&eacute;teur de commandes, ne
- red&eacute;finissez pas <maketarget>do-extract</maketarget> si vous
- pouvez utiliser <makevar>EXTRACT*</makevar> &agrave; la place et
- servez-vous de <makevar>GNU_CONFIGURE</makevar> au lieu de
- <literal>CONFIGURE_ARGS += --prefix=&dollar;{PREFIX}</literal>.</para>
- </sect3>
-
- <sect3>
- <title>Prennez en compte <makevar>CFLAGS</makevar></title>
-
- <para>Le logiciel &agrave; porter doit prendre en consid&eacute;ration
- <makevar>CFLAGS</makevar>. Si ce n'est pas le cas, ajoutez s'il vous
- pla&icirc;t <literal>NO_PACKAGE=ignores cflags</literal> au
- <filename>Makefile</filename>.</para>
- </sect3>
-
- <sect3>
- <title>Fichiers de Configuration</title>
-
- <para>Si votre logiciel a besoin de fichiers de configuration dans
- <filename><makevar>PREFIX</makevar>/etc</filename>, ne les installez
- <emphasis>pas</emphasis> et ne les listez pas dans
- <filename>pkg/PLIST</filename>. <command>pkg_delete</command>
- supprimerait alors des fichiers renseign&eacute;s avec soin par les
- utilisateurs et une r&eacute;installation les
- &eacute;craserait.</para>
-
- <para>Au lieu de cela, installez des fichiers d'exemple avec un suffixe
- (<filename><replaceable>nom_de_fichier</replaceable>.sample</filename>
- fonctionnera bien) et affichez un
- <link linkend="porting-message">message</link> pour signaler &agrave;
- l'utilisateur qu'il devra copier et modifier le fichier pour que le
- logiciel soit utilisable.</para>
- </sect3>
-
- <sect3>
- <title>Portlint</title>
-
- <para>Contr&ocirc;lez votre travail avec
- <link linkend="porting-portlint"><command>portlint</command></link>
- avant de le soumettre ou de le mettre dans l'arborescence des
- sources.</para>
- </sect3>
-
- <sect3>
- <title>Retours d'information</title>
-
- <para>Envoyez vos modifications et mises &agrave; niveau &agrave;
- l'auteur ou au responsable de la maintenance pour qu'il les inclue
- dans la prochaine version du code. Cela ne fera que vous faciliter le
- travail pour la prochaine fois.</para>
- </sect3>
-
- <sect3>
- <title>Divers</title>
-
- <para>Les fichiers <filename>pkg/DESCR</filename>,
- <filename>pkg/COMMENT</filename> et <filename>pkg/PLIST</filename>
- doivent chacun &ecirc;tre rev&eacute;rifi&eacute;s. Si vous passez un
- logiciel en revue et pensez qu'ils peuvent &ecirc;tre mieux
- &eacute;tre mieux &eacute;crits, faites-le.</para>
-
- <para>Ne mettez pas de nouvelles copies de la Licence Publique
- G&eacute;n&eacute;rale GNU&nbsp;-&nbsp;GPL&nbsp;-&nbsp;sur notre
- syst&egrave;me, s'il vous pla&icirc;t.</para>
-
- <para>Notez s'il vous pla&icirc;t soigneusement toutes les
- consid&eacute;rations d'ordre l&eacute;gal. Ne nous laissez pas
- distribuer ill&eacute;galement du logiciel&nbsp;!</para>
- </sect3>
-
- <sect3>
- <title>Si vous &ecirc;tes bloqu&eacute;&hellip;</title>
-
- <para>Consultez les exemples existants et
- <filename>bsd.port.mk</filename> avant de nous poser des
- questions&nbsp;! <!-- smiley --><emphasis>;)</emphasis></para>
-
- <para>Posez-nous des questions si vous avez des probl&egrave;mes&nbsp;!
- Ne vous cognez pas la t&ecirc;te contre les murs&nbsp;!
- <!-- smiley --><emphasis>:)</emphasis></para>
- </sect3>
- </sect2>
-
- <sect2 id="porting-samplem">
- <title>Un exemple de <filename>Makefile</filename></title>
-
- <para>Voici un exemple de <filename>Makefile</filename> dont vous pouvez
- vous servir pour porter un nouveau logiciel. Veillez &agrave; supprimer
- les commentaires exc&eacute;dentaires (ceux qui sont entre
- crochets)&nbsp;!</para>
-
- <para>Il est souhaitable que vous respectiez ce format (ordre des
- variables, espacements entre sections, etc.). Il est con&ccedil;u pour
- qu'il soit facile de rep&eacute;rer les informations les plus
- importantes. Nous vous recommandons d'utiliser
- <link linkend="porting-portlint">portlint</link> pour v&eacute;rifier le
- <filename>Makefile</filename>.</para>
-
- <programlisting>
-[l'en-t&ecirc;te...pour qu'il nous soit plus facile d'identifier les logiciels.]
-# New ports collection makefile for: xdvi
-[l'en-t&ecirc;te de version obligatoire doit &ecirc;tre mise &agrave; jour
-&nbsp;en m&ecirc;me temps que le logiciel.]
-# Version required: pl18 [des choses du genre "1.5alpha" conviennent aussi]
-[C'est la date de cr&eacute;ation de la premi&egrave;re version de ce Makefile.
-&nbsp;Ne la modifiez jamais lors d'une mise &agrave; jour.]
-# Date created: 26 May 1995
-[C'est la personne qui a fait le premier portage sous FreeBSD, en particulier,
-&nbsp;celle qui a &eacute;crit la premi&egrave;re version de ce Makefile. Rappelez-vous
-&nbsp;que vous ne devez plus modifier ce nom par la suite.]
-# Whom: Satoshi Asami &lt;asami@FreeBSD.ORG&gt;
-#
-# &#36;Id&#36;
-[ ^^^^ Ce sera automatiquement remplac&eacute; par la cha&icirc;ne RCS par CVS
-&nbsp;ensuite, lors de l'int&eacute;gration &agrave; nos archives.]
-#
-
-[Cette section d&eacute;crit le logiciel et le site d'origine - DISTNAME
-&nbsp;viens toujours en premier, suivi de PKGNAME (si n&eacute;cessaire), CATEGORIES,
-&nbsp;puis de MASTER_SITES, qui peut &ecirc;tre suivi de MASTER_SITE_SUBDIR.
-&nbsp;EXTRACT_SUFX ou DISTFILES peuvent &eacute;ventuellement &ecirc;tre pr&eacute;cis&eacute;s ensuite.]
-DISTNAME= xdvi
-PKGNAME= xdvi-pl18
-CATEGORIES= print
-[N'oubliez pas le &ldquo;slash&rdquo; ("/") &agrave; la fin&nbsp;!
-&nbsp;si vous ne vous servez pas des macros-instructions MASTER_SITE_*]
-MASTER_SITES= ${MASTER_SITE_XCONTRIB}
-MASTER_SITE_SUBDIR= applications
-[A d&eacute;finir si le source n'est pas au format ".tar.gz"]
-EXTRACT_SUFX= .tar.Z
-
-[Section pour les mises &agrave; jour de la distribution -- peut &ecirc;tre vide]
-PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/
-PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz
-
-[Responsable de la maintenance; *obligatoire*&nbsp;! C'est la personne
-&nbsp;(de pr&eacute;f&eacute;rence avec les droits d'&eacute;criture sur l'arborescence
-&nbsp;des sources) que les utilisateurs peuvent contacter si questions ou rapports
-&nbsp;d'anomalie - ce doit &ecirc;tre la personne qui a fait le portage ou quelqu'un
-&nbsp;qui peut lui transmettre les questions dans un d&eacute;lai raisonnable. Si vous
-&nbsp;ne voulez vraimant pas que votre adresse apparaisse ici, mettez
-&nbsp;"ports@FreeBSD.ORG".]
-MAINTAINER= asami@FreeBSD.ORG
-
-[D&eacute;pendances -- peuvent &ecirc;tre vides]
-RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript
-LIB_DEPENDS= Xpm.5:${PORTSDIR}/graphics/xpm
-
-[Cette section est r&eacute;serv&eacute;e aux autres variables bsd.port.mk
-&nbsp;qui n'ont pas leur place dans les sections pr&eacute;c&eacute;dentes]
-[S'il y a des questions lors de la configuration, de la compilation,
-&nbsp;de l'installation ...]
-IS_INTERACTIVE= yes
-[Si l'extraction se fait dans un autre r&eacute;pertoire que ${DISTNAME}...]
-WRKSRC= ${WRKDIR}/xdvi-new
-[Si les mises &agrave; jour de la distribution ne sont pas relatives &agrave; ${WRKSRC},
-&nbsp;vous devrez peut-&ecirc;tre utiliser cette variable]
-PATCH_DIST_STRIP= -p1
-[S'il faut ex&eacute;cuter une proc&eacute;dure "configure" g&eacute;n&eacute;r&eacute;e par GNU autoconf]
-GNU_CONFIGURE= yes
-[S'il faut compiler avec GNU make, et non /usr/bin/make, ...]
-USE_GMAKE= yes
-[Si c'est une application X et qu'il faut utiliser "xmkmf -a" ...]
-USE_IMAKE= yes
-[et cetera.]
-
-[Variables non-standard pour les r&egrave;gles qui les suivent]
-MY_FAVORITE_RESPONSE= "oui, pour s&ucirc;r"
-
-[Les r&egrave;gles particuli&egrave;res, dans l'ordre o&ugrave; faut les appeler]
-pre-fetch:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ouais, il faut r&eacute;cup&eacute;rer quelque chose
-
-post-patch:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;G&eacute;nial, j'ai quelque chose &agrave; faire apr&egrave;s la mise &agrave; jour
-
-pre-install:
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;et d'autres choses encore apr&egrave;s l'installation
-
-[et l'&eacute;pilogue]
-.include &lt;bsd.port.mk&gt;</programlisting>
- </sect2>
-
- <sect2 id="porting-pkgname">
- <title>Noms des paquetages</title>
-
- <para>Voici les conventions &agrave; respecter pour les noms des
- paquetages. Cela pour qu'il soit facile de parcourir notre
- r&eacute;pertoire des paquetages, parce qu'il y en a d&eacute;j&agrave;
- beaucoup et que cela va rebuter les utilisateurs s'ils s'y usent les
- yeux&nbsp;!</para>
-
- <para>Le nom du paquetage doit &ecirc;tre de la forme
- <filename><replaceable>langue-</replaceable>nom<replaceable>-particularit&eacute;s.de.compilation</replaceable><replaceable>-num&eacute;ros.de.version</replaceable></filename>.</para>
-
- <para>Si votre <makevar>DISTNAME</makevar> n'est pas de ce type,
- d&eacute;finissez <makevar>PKGNAME</makevar> en respectant ce
- format.</para>
-
- <orderedlist>
- <listitem>
- <para>FreeBSD essayer d'int&eacute;grer les supports des langues
- maternelles de ses utilisateurs. Le pr&eacute;fixe
- <replaceable>langue-</replaceable> doit &ecirc;tre le sigle de deux
- lettres d&eacute;fini par la convention ISO-639, si le logiciel
- est propre &agrave; une langue particuli&egrave;re. Par exemple,
- <literal>ja</literal> pour le Japonais, <literal>ru</literal> pour
- le Russe, <literal>vi</literal> pour le Vietnamien,
- <literal>zh</literal> pour le Chinois, <literal>ko</literal> pour le
- Cor&eacute;en et <literal>de</literal> pour l'Allemand.</para>
- </listitem>
-
- <listitem>
- <para>Le <filename>nom</filename> doit toujours &ecirc;tre en
- minuscules, sauf pour les paquetages particuli&egrave;rement
- importants (qui comportent de nombreux programmes). XFree86 ou
- ImageMagick par exemple appartiennent &agrave; cette
- cat&eacute;gorie. Sinon, mettez le nom (ou au moins la
- premi&egrave;re lettre) en minuscules. Si les majuscules ont un sens
- dans le nom (par exemple pour les noms d'une seule lettre comme
- <literal>R</literal> ou <literal>V</literal>), vous pouvez utiliser
- des majuscules si vous le souhaitez. Il est de tradition d'appeler
- les modules Perl 5 en les faisant pr&eacute;c&eacute;der de
- <literal>p5-</literal> et en rempla&ccedil;ant les deux deux-points
- par un tiret; par exemple, le module <literal>Data::Dumper</literal>
- devient <literal>p5-Data-Dumper</literal>. S'il y a des
- num&eacute;ros, tirets ou soulign&eacute;s dans le nom, vous pouvez
- aussi les conserver (par exemple,
- <literal>kinput2</literal>).</para>
- </listitem>
-
- <listitem>
- <para>Si le logiciel peut-&ecirc;tre compil&eacute; avec
- diff&eacute;rentes <link linkend="porting-masterdir">valeurs par
- d&eacute;faut cod&eacute;es en dur</link> (ce qui fait d'habitude
- partie du nom de r&eacute;pertoire d'une famille de logiciels), les
- <replaceable>-particularit&eacute;s.de.compilation</replaceable>
- doivent indiquer quelles sont ces valeurs (le tiret n'est pas
- obligatoire). On peut donner en exemple la r&eacute;solution des
- polices ou le format de papier.</para>
- </listitem>
-
- <listitem>
- <para>La version doit &ecirc;tre une suite d'entiers
- s&eacute;par&eacute;s par des points ou un unique caract&egrave;re
- alphab&eacute;tique. La seule exception concerne la cha&icirc;ne
- <literal>pl</literal>
- (&ldquo;<foreignphrase>patchlevel</foreignphrase>&rdquo;&nbsp;-&nbsp;niveau
- de mise &agrave; jour), qui ne peut &ecirc;tre utilis&eacute;e que
- lorsque qu'il n'y a pas de num&eacute;ros de version majeure et
- mineure du logiciel.</para>
- </listitem>
- </orderedlist>
-
- <para>Voici quelques exemples (r&eacute;els) de la mani&egrave;re de
- convertir un <makevar>DISTNAME</makevar> en un
- <makevar>PKGNAME</makevar>&nbsp;:</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Nom de la Distribution</entry>
- <entry>Nom du Paquetage</entry>
- <entry>Raison</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>mule-2.2.2.</entry>
- <entry>mule-2.2.2</entry>
- <entry>Pas de changement n&eacute;cessaire</entry>
- </row>
-
- <row>
- <entry>XFree86-3.1.2</entry>
- <entry>XFree86-3.1.2</entry>
- <entry>Pas de changement n&eacute;cessaire</entry>
- </row>
-
- <row>
- <entry>EmiClock-1.0.2</entry>
- <entry>emiclock-1.0.2</entry>
- <entry>Pas de majuscules pour les programmes individuels</entry>
- </row>
-
- <row>
- <entry>gmod1.4</entry>
- <entry>gmod-1.4</entry>
- <entry>Il faut un tiret avant les num&eacute;ros de
- version</entry>
- </row>
-
- <row>
- <entry>xmris.4.0.2</entry>
- <entry>xmris-4.0.2</entry>
- <entry>Il faut un tiret avant les num&eacute;ros de
- version</entry>
- </row>
-
- <row>
- <entry>rdist-1.3alpha</entry>
- <entry>rdist-1.3a</entry>
- <entry>Les cha&icirc;nes de caract&egrave;res comme
- <literal>alpha</literal> ne sont pas autoris&eacute;es</entry>
- </row>
-
- <row>
- <entry>es-0.9-beta1</entry>
- <entry>es-0.9b1</entry>
- <entry>Les cha&icirc;nes de caract&egrave;res comme
- <literal>beta</literal> ne sont pas autoris&eacute;es</entry>
- </row>
-
- <row>
- <entry>v3.3beta021.src</entry>
- <entry>tiff-3.3</entry>
- <entry>C'&eacute;tait quoi exactement&nbsp;?</entry>
- </row>
-
- <row>
- <entry>tvtwm</entry>
- <entry>tvtwm-pl11</entry>
- <entry>Il doit toujours y avoir une version</entry>
- </row>
-
- <row>
- <entry>piewm</entry>
- <entry>piewm-1.0</entry>
- <entry>Il doit toujours y avoir une version</entry>
- </row>
-
- <row>
- <entry>xvgr-2.10pl1</entry>
- <entry>xvgr-2.10.1</entry>
- <entry><literal>pl</literal> n'est autoris&eacute; que lorsqu'il
- n'y a pas de num&eacute;ro de version majeure/mineure</entry>
- </row>
-
- <row>
- <entry>gawk-2.15.6</entry>
- <entry>ja-gawk-2.15.6</entry>
- <entry>Version Japonaise</entry>
- </row>
-
- <row>
- <entry>psutils-1.13</entry>
- <entry>psutils-letter-1.13</entry>
- <entry>Taille de page en dur &agrave; la compilation</entry>
- </row>
-
- <row>
- <entry>pkfonts</entry>
- <entry>pkfonts300-1.0</entry>
- <entry>Paquetage pour les polices 300dpi</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>S'il n'y a nulle part d'information sur la version et qu'il y a peu
- de chances que l'auteur sorte une nouvelle version, prennez
- <literal>1.0</literal> comme num&eacute;ro de version (comme pour piewm
- ci-dessus). Sinon, posez la question &agrave; l'auteur ou servez-vous de
- la date
- (<literal><replaceable>aa</replaceable>.<replaceable>mm</replaceable>.<replaceable>jj</replaceable></literal>)
- comme version.</para>
- </sect2>
-
- <sect2 id="porting-categories">
- <title>Cat&eacute;gories</title>
-
- <para>Comme vous le savez d&eacute;j&agrave;, les logiciels port&eacute;s
- sont r&eacute;partis en diff&eacute;rentes cat&eacute;gories. Mais, il
- est important, pour que cette classification fonctionne, que les
- responsables des portages et les utilisateurs comprennent ce qu'est
- chaque cat&eacute;gorie et comment nous choisissons la cat&eacute;gorie
- dans laquelle nous classons un logiciel.</para>
-
- <sect3>
- <title>Liste actuelle des cat&eacute;gories</title>
-
- <para>Voici tout d'abord la liste des cat&eacute;gories &agrave; ce
- jour. Celles qui sont suivies d'une ast&eacute;risque
- (<literal>*</literal>) sont des cat&eacute;gories
- <emphasis>virtuelles</emphasis>&mdash;il n'y a pas de
- sous-r&eacute;pertoires correspondant dans le catalogue des logiciels
- port&eacute;s.</para>
-
- <note>
- <para>Pour les cat&eacute;gories r&eacute;elles, il y a une ligne de
- description dans le fichier <filename>pkg/COMMENT</filename> du
- sous-r&eacute;pertoire correspondant (e.g.,
- <filename>archivers/pkg/COMMENT</filename>).</para>
- </note>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Cat&eacute;gorie</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>afterstep*</filename></entry>
- <entry>Logiciels pour le gestionnaire de fen&ecirc;tres
- AfterStep</entry>
- </row>
-
- <row>
- <entry><filename>archivers</filename></entry>
- <entry>Outils d'archivage</entry>
- </row>
-
- <row>
- <entry><filename>astro</filename></entry>
- <entry>Logiciels d'astronomie</entry>
- </row>
-
- <row>
- <entry><filename>audio</filename></entry>
- <entry>Son</entry>
- </row>
-
- <row>
- <entry><filename>benchmarks</filename></entry>
- <entry>Outils de mesure de performances</entry>
- </row>
-
- <row>
- <entry><filename>biology</filename></entry>
- <entry>Logiciels en rapport avec la biologie</entry>
- </row>
-
- <row>
- <entry><filename>cad</filename></entry>
- <entry>Conception assist&eacute;e par ordinateur</entry>
- </row>
-
- <row>
- <entry><filename>chinese</filename></entry>
- <entry>Support de la langue Chinoise</entry>
- </row>
-
- <row>
- <entry><filename>comms</filename></entry>
- <entry>Logiciels de communication. Essentiellement des logiciels
- qui dialoguent avec votre port s&eacute;rie</entry>
- </row>
-
- <row>
- <entry><filename>converters</filename></entry>
- <entry>Convertisseurs de codes de caract&eacute;res</entry>
- </row>
-
- <row>
- <entry><filename>databases</filename></entry>
- <entry>Bases de donn&eacute;es</entry>
- </row>
-
- <row>
- <entry><filename>deskutils</filename></entry>
- <entry>Ce que l'on avait sur son bureau avant l'invention des
- ordinateurs</entry>
- </row>
-
- <row>
- <entry><filename>devel</filename></entry>
- <entry>Outils de d&eacute;veloppement. N'y mettez pas de
- biblioth&egrave;ques simplement parce que ce sont des
- biblioth&egrave;ques&mdash;&agrave; moins qu'elles n'aient
- vraiment pas leur place ailleurs, elles ne doivent pas
- &ecirc;tre dans cette cat&eacute;gorie</entry>
- </row>
-
- <row>
- <entry><filename>editors</filename></entry>
- <entry>Editeurs g&eacute;n&eacute;raux. Les &eacute;diteurs
- sp&eacute;cialis&eacute;s vont dans la cat&eacute;gorie
- correspondante (e.g., un &eacute;diteur de formules
- math&eacute;matiques ira dans
- <filename>math</filename>)</entry>
- </row>
-
- <row>
- <entry><filename>elisp</filename></entry>
- <entry>Logiciels Emacs-lisp</entry>
- </row>
-
- <row>
- <entry><filename>emulators</filename></entry>
- <entry>Emulateurs d'autres syst&egrave;mes d'exploitation. Les
- &eacute;mulateurs de terminaux ne rentrent
- <emphasis>pas</emphasis> dans cette
- cat&eacute;gorie&mdash;ceux pour X vont dans
- <filename>x11</filename> et les &eacute;mulateurs en mode
- texte dans <filename>comms</filename> ou
- <filename>misc</filename>, selon leur fonction exacte</entry>
- </row>
-
- <row>
- <entry><filename>games</filename></entry>
- <entry>Jeux</entry>
- </row>
-
- <row>
- <entry><filename>german</filename></entry>
- <entry>Support de la langue Allemande</entry>
- </row>
-
- <row>
- <entry><filename>graphics</filename></entry>
- <entry>Utilitaires graphiques</entry>
- </row>
-
- <row>
- <entry><filename>japanese</filename></entry>
- <entry>Support de la langue Japonaise</entry>
- </row>
-
- <row>
- <entry><filename>kde*</filename></entry>
- <entry>Logiciels qui constituent &ldquo;<foreignphrase>K Desktop
- Environment</foreignphrase>&rdquo; (kde)</entry>
- </row>
-
- <row>
- <entry><filename>korean</filename></entry>
- <entry>Support de la langue Cor&eacute;enne</entry>
- </row>
-
- <row>
- <entry><filename>lang</filename></entry>
- <entry>Langages de programmation</entry>
- </row>
-
- <row>
- <entry><filename>mail</filename></entry>
- <entry>Logiciels de courrier &eacute;lectronique</entry>
- </row>
-
- <row>
- <entry><filename>math</filename></entry>
- <entry>Logiciels de calcul num&eacute;rique et autres outils
- math&eacute;matiques</entry>
- </row>
-
- <row>
- <entry><filename>mbone</filename></entry>
- <entry>Applications MBone</entry>
- </row>
-
- <row>
- <entry><filename>misc</filename></entry>
- <entry>Utilitaires vari&eacute;s&mdash;essentiellement ceux qui
- n'ont pas leur place ailleurs. C'est la seul cat&eacute;gorie
- qui ne doit pas appara&icirc;tre en m&ecirc;me temps qu'une
- autre cat&eacute;gorie non virtuelle. S'il y a
- <literal>misc</literal> et autre chose dans votre ligne
- <makevar>CATEGORIES</makevar>, cela signifie que vous pouvez
- sans risque supprimer <literal>misc</literal> et mettre le
- logiciel dans cet autre sous-r&eacute;pertoire</entry>
- </row>
-
- <row>
- <entry><filename>net</filename></entry>
- <entry>Outils r&eacute;seau divers</entry>
- </row>
-
- <row>
- <entry><filename>news</filename></entry>
- <entry>Logiciels pour les listes de discussion USENET</entry>
- </row>
-
- <row>
- <entry><filename>offix*</filename></entry>
- <entry>Logiciels de la suite OffiX</entry>
- </row>
-
- <row>
- <entry><filename>palm</filename></entry>
- <entry>Logiciels &agrave; utiliser avec la gamme 3Com
- Palm(tm)</entry>
- </row>
-
- <row>
- <entry><filename>perl5*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Perl version 5</entry>
- </row>
-
- <row>
- <entry><filename>plan9*</filename></entry>
- <entry>Programmes divers de Plan9.</entry>
- </row>
-
- <row>
- <entry><filename>print</filename></entry>
- <entry>Logiciels d'impression. Les logiciels de publication
- (pr&eacute;visualiseurs, etc.) appartiennent aussi &agrave;
- cette cat&eacute;gorie</entry>
- </row>
-
- <row>
- <entry><filename>python*</filename></entry>
- <entry>Logiciels &eacute;crits en Python</entry>
- </row>
-
- <row>
- <entry><filename>russian</filename></entry>
- <entry>Support de la langue Russe</entry>
- </row>
-
- <row>
- <entry><filename>security</filename></entry>
- <entry>Outils de s&eacute;curit&eacute;</entry>
- </row>
-
- <row>
- <entry><filename>shells</filename></entry>
- <entry>Interpr&eacute;teurs de commandes</entry>
- </row>
-
- <row>
- <entry><filename>sysutils</filename></entry>
- <entry>Utilitaires syst&egrave;me</entry>
- </row>
-
- <row>
- <entry><filename>tcl75*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tcl 7.5</entry>
- </row>
-
- <row>
- <entry><filename>tcl76*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tcl 7.6</entry>
- </row>
-
- <row>
- <entry><filename>tcl80*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tcl 8.0</entry>
- </row>
-
- <row>
- <entry><filename>tcl81*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tcl 8.1</entry>
- </row>
-
- <row>
- <entry><filename>textproc</filename></entry>
- <entry>Outils de traitement de texte, sauf les logiciels de
- publication assist&eacute;e par ordinateur, qui vont dans
- <filename>print/</filename></entry>
- </row>
-
- <row>
- <entry><filename>tk41*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tk 4.1</entry>
- </row>
-
- <row>
- <entry><filename>tk42*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tk 4.2</entry>
- </row>
-
- <row>
- <entry><filename>tk80*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tk 8.0</entry>
- </row>
-
- <row>
- <entry><filename>tk81*</filename></entry>
- <entry>Logiciels qui n&eacute;cessitent Tk 8.1</entry>
- </row>
-
- <row>
- <entry><filename>vietnamese</filename></entry>
- <entry>Support de la langue Vietnamienne</entry>
- </row>
-
- <row>
- <entry><filename>windowmaker*</filename></entry>
- <entry>Logiciels pour le gestionnaire de fen&ecirc;tres
- WindowMaker</entry>
- </row>
-
- <row>
- <entry><filename>www</filename></entry>
- <entry>Logiciels en rapport avec le World Wide Web. Ce qui
- concerne le langage HTML a aussi sa place ici</entry>
- </row>
-
- <row>
- <entry>x11</entry>
- <entry>Le syst&egrave;me X window et consorts. Cette
- cat&eacute;gorie ne concerne que les logiciels directement en
- rapport avec X Window. N'y mettez pas les applications X
- ordinaires. Si votre logiciel est une application X,
- d&eacute;finissez <makevar>USE_XLIB</makevar> (implicite avec
- <makevar>USE_IMAKE</makevar>) et mettez le dans la
- cat&eacute;gorie appropri&eacute;e. Un grand nombre d'entre
- eux vont dans les autres cat&eacute;gories
- <filename>x11-*</filename> (voir plus bas)</entry>
- </row>
-
- <row>
- <entry><filename>x11-clocks</filename></entry>
- <entry>Horloges X11</entry>
- </row>
-
- <row>
- <entry><filename>x11-fm</filename></entry>
- <entry>Gestionnaires de fichiers X11</entry>
- </row>
-
- <row>
- <entry><filename>x11-fonts</filename></entry>
- <entry>Polices de caract&egrave;res X11 et outils
- associ&eacute;s</entry>
- </row>
-
- <row>
- <entry><filename>x11-toolkits</filename></entry>
- <entry>Bo&icirc;tes &agrave; outils X11</entry>
- </row>
-
- <row>
- <entry><filename>x11-wm</filename></entry>
- <entry>Gestionnaires de fen&ecirc;tres X11</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
-
- <sect3>
- <title>Choisir la bonne cat&eacute;gorie</title>
-
- <para>Comme de nombreuses cat&eacute;gories ont des logiciels en commun,
- vous devez souvent d&eacute;cider laquelle sera la cat&eacute;gorie
- principale de votre logiciel. Voici une liste de priorit&eacute;s, par
- ordre d&eacute;croissant&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Les cat&eacute;gories li&eacute;es &agrave; la langue
- viennent en premier. Par exemple, si vous installez des polices
- X11 Japonaise, alors vous mettrez <literal>japanese x11</literal>
- dans votre ligne <makevar>CATEGORIES</makevar>.</para>
- </listitem>
-
- <listitem>
- <para>Les cat&eacute;gories les plus sp&eacute;cifiques viennent
- avant celles qui le sont moins. Par exemple, un &eacute;diteur
- HTML doit &ecirc;tre list&eacute; dans <literal>www
- editors</literal>, et non l'inverse. Vous n'avez par ailleurs pas
- besoin de mettre <literal>net</literal> si le logiciel appartient
- &agrave; l'une des cat&eacute;gories <literal>mail</literal>,
- <literal>mbone</literal>, <literal>news</literal>,
- <literal>security</literal> ou <literal>www</literal>.</para>
- </listitem>
-
- <listitem>
- <para><literal>x11</literal> n'est une cat&eacute;gorie secondaire
- que lorsque la cat&eacute;gorie principale est une langue
- nationale. En particulier, il ne faut pas mettre
- <literal>x11</literal> pour les applications X.</para>
- </listitem>
-
- <listitem>
- <para>Si votre logiciel ne va vraiment nulle part ailleurs,
- mettez-le dans <literal>misc</literal>.</para>
- </listitem>
- </itemizedlist>
-
- <para>SI vous n'&ecirc;tes pas s&ucirc;r de la cat&eacute;gorie, mettez
- s'il vous pla&icirc;t un commentaire &agrave; ce sujet lorsque vous
- soumettez votre <command>send-pr</command> pour que nous puissions en
- discuter avant de l'int&eacute;grer. (Si vous avez l'acc&egrave;s en
- &eacute;criture, envoyez une note &agrave; &a.ports; pour qu'il y ait
- discussion au pr&eacute;alable&mdash;les nouveaux logiciels sont trop
- souvent import&eacute;s dans la mauvaise cat&eacute;gorie et doivent
- &ecirc;tre d&eacute;plac&eacute;s imm&eacute;diatement
- apr&egrave;s.)</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Modifications de ce document et du syst&egrave;me des logiciels
- port&eacute;s</title>
-
- <para>Si vous maintenez de noombreux logiciels port&eacute;s, vous
- devriez vous abonner &agrave; &a.ports;. Les modifications importantes
- au fonctionnement du catalogue des logiciels port&eacute;s y seront
- annonc&eacute;es. Vous aurez toujours des informations plus
- d&eacute;taill&eacute;es sur les derni&egrave;res modifications en
- consultant les
- <ulink url="http://www.FreeBSD.ORG/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk">traces
- CVS pour bsd.port.mk</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>That is It, Folks!</title>
-
- <para>C'est vraiment un long chapitre, n'est-ce-pas&nbsp;? Merci de
- nous avoir suivi jusqu'ici.</para>
-
- <para>Vous savons donc maintenant comment porter un logiciel. Allons-y et
- convertissons le monde entier en logiciel port&eacute;s&nbsp;! C'est la
- fa&ccedil;on la plus simple de commencer &agrave; contribuer au projet
- FreeBSD&nbsp;! <!-- smiley --><emphasis>:)</emphasis></para>
- </sect2>
- </sect1>
-</chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
deleted file mode 100644
index 4ca6f4bf84..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
+++ /dev/null
@@ -1,2783 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter id="ppp-and-slip">
- <title>PPP et SLIP</title>
- &trans.a.haby;
-
- <para>Si vous vous connectez &agrave; l'Internet avec un modem ou si vous
- voulez offrir &agrave; d'autres la possibilit&eacute; de se connecter &agrave; l'Internet
- par l'interm&eacute;diaire d'un syst&egrave;me FreeBSD, vous pouvez utiliser PPP ou
- SLIP. Il y a par ailleurs deux versions de PPP:
- <emphasis>en mode utilisateur</emphasis> (aussi appel&eacute;
- <emphasis>iijppp</emphasis>) et <emphasis>int&eacute;gr&eacute; au
- noyau</emphasis>. Ce chapitre d&eacute;crit les proc&eacute;dures de configuration
- des deux variantes de PPP et de mise en oeuvre de SLIP.</para>
-
-
- <sect1 id="userppp">
- <title>Configurer PPP en mode utilisateur</title>
-
- <para>La version utilisateur de PPP est apparue avec la version 2.0.5
- de FreeBSD en suppl&eacute;ment &agrave; l'impl&eacute;mentation existante
- de PPP dans le noyau. Qu'a donc de diff&eacute;rent cette
- nouvelle version de PPP qui justifie son ajout? Pour citer les pages
- de manuel:</para>
-
- <blockquote>
- <para>Ceci est le logiciel PPP sous forme de processus utilisateur.
- PPP est normalement impl&eacute;ment&eacute; dans le noyau (e.g. le
- &ldquo;d&eacute;mon&rdquo; <command>pppd</command>) et est alors plus
- difficile &agrave; d&eacute;boguer ou
- &agrave; modifier. A l'inverse, la pr&eacute;sente impl&eacute;mentation se pr&eacute;sente
- sous forme de processus utilisateur utilisant le pilote de
- p&eacute;riph&eacute;rique &ldquo;tunnel&rdquo;
- (<devicename>tun</devicename>).</para>
- </blockquote>
-
- <para>Cela signifie essentiellement qu'au lieu de lancer un
- &ldquo;d&eacute;mon&rdquo; PPP, le programme <command>ppp</command>
- peut &ecirc;tre ex&eacute;cut&eacute; quand et de la fa&ccedil;on que l'on veut. Il n'y a
- pas besoin de compiler d'interface PPP dans le noyau, parce que le
- programme peut utiliser le pilote &ldquo;tunnel&rdquo; g&eacute;n&eacute;rique
- pour &eacute;changer des donn&eacute;es avec le noyau.</para>
-
- <para>A partir de maintenant, le programme utilisateur
- <command>ppp</command> sera simplement appel&eacute; ppp, &agrave; moins qu'il ne
- faille explicitement faire la distinction entre lui et d'autres
- logiciels PPP client/serveur comme <command>pppd</command>. Sauf
- indications contraires, toutes les commandes mentionn&eacute;es dans cette
- section doivent &ecirc;tre ex&eacute;cut&eacute;es par le super-utilisateur
- <username>root</username>.</para>
-
- <para>Il y a de nombreuses am&eacute;liorations dans la version 2 de ppp. Vous
- pouvez savoir quelle est la version que vous utilisez en lan&ccedil;ant ppp
- sans argument et en tapant <command>show version</command> &agrave; l'invite.
- Il est facile de passer &agrave; la version la plus r&eacute;cente de ppp (sur
- n'importe quelle version de FreeBSD) en t&eacute;l&eacute;chargeant la derni&egrave;re
- version archiv&eacute;e sur
- <ulink url="http://www.Awfulhak.org/ppp.html">www.Awfulhak.org</ulink>.</para>
-
- <sect2>
- <title>Avant de commencer</title>
-
- <para>Ce document suppose que vous en &ecirc;tes &agrave; peu pr&egrave;s &agrave; ce
- point:</para>
-
- <para>Vous avez un compte chez un fournisseur d'acc&egrave;s Internet (FAI)
- qui vous permet d'utiliser PPP. Vous avez de plus un modem (ou un
- autre p&eacute;riph&eacute;rique) install&eacute; et correctement configur&eacute; avec lequel
- vous pouvez vous connecter chez votre fournisseur d'acc&egrave;s.</para>
-
- <para>Vous devrez avoir les informations suivantes &agrave; port&eacute;e de
- main:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Le(s) num&eacute;ro(s) de t&eacute;l&eacute;phone de votre fournisseur
- d'acc&egrave;s.</para>
- </listitem>
-
- <listitem>
- <para>Votre identifiant utilisateur et votre mot de passe. Selon
- le cas, ce seront soit un identifiant et un mot de passe Unix
- classiques, soit un identifiant et un mot de passe PPP PAP ou
- CHAP.</para>
- </listitem>
-
- <listitem>
- <para>Les adresses IP d'un ou plusieurs serveurs de noms de
- domaines. Votre fournisseur doit normalement vous donner deux
- adresses IP. Vous <emphasis>devez</emphasis> avoir cette
- information pour <application>PPP</application> version 1.x,
- &agrave; moins que vous n'ayez votre propre serveur de noms de
- domaines. A partir de la version 2,
- <application>PPP</application> supporte la n&eacute;gociation des
- adresses des serveurs de noms. Si votre fournisseur dispose
- de cette fonctionnalit&eacute;, alors la commande
- <command>enable dns</command> dans votre fichier de
- configuration dit &agrave; <application>PPP</application> de
- d&eacute;finir &agrave; votre place les serveurs de noms.</para>
- </listitem>
- </itemizedlist>
-
- <para>Les informations suivantes vous ont peut-&ecirc;tre aussi &eacute;t&eacute; donn&eacute;es
- par votre fournisseur d'acc&egrave;s, mais ce n'est pas absolument
- indispensable:</para>
-
- <itemizedlist>
- <listitem>
- <para>L'adresse IP de la passerelle de votre fournisseur. La
- passerelle est la machine &agrave; laquelle vous vous connecterez et
- qui deviendra votre <emphasis>route par
- d&eacute;faut</emphasis>&nbsp;-&nbsp;&ldquo;default route&rdquo;. S'il
- ne vous l'a pas donn&eacute;e, vous pouvez en fabriquer une et le serveur
- PPP de votre fournisseur vous donnera l'adresse exacte quand vous
- vous connecterez.</para>
-
- <para>ppp conna&icirc;t ce num&eacute;ro IP sous l'appellation
- <literal>HISADDR</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Le masque de sous-r&eacute;seau de votre fournisseur d'acc&egrave;s. S'il ne
- vous l'a pas donn&eacute;, vous pouvez sans risque utiliser la valeur
- <hostid role="netmask">255.255.255.0</hostid>.</para>
-
- <para>Si votre fournisseur vous procure une adresse IP fixe et un
- nom de machine, vous pouvez aussi introduire ces informations dans
- votre configuration. Sinon, nous le laisserons simplement nous
- attribuer l'adresse IP qui lui convient.</para>
- </listitem>
- </itemizedlist>
-
- <para>Si vous n'avez pas l'une des informations requises, contactez
- votre fournisseur et assurez-vous qu'il vous la donne.</para>
-
- </sect2>
-
- <sect2>
- <title>Compiler un noyau pour ppp</title>
-
- <para>Comme on l'a vu dans la description qu'en donnent les pages de
- manuel, <command>ppp</command>
- utilise le pilote <devicename>tun</devicename> du noyau. Il faut
- vous assurez que le support de ce pseudo-p&eacute;riph&eacute;rique est bien
- inclus dans votre noyau.</para>
-
- <para>Pour cela, allez dans votre r&eacute;pertoire de configuration du
- noyau (<filename>/sys/i386/conf</filename> ou
- <filename>/sys/pc98/conf</filename>) et consultez votre fichier
- de configuration. Il doit comporter quelque part la ligne
-
- <programlisting>
-pseudo-device tun 1</programlisting>
-
- Elle figure en standard dans le noyau <filename>GENERIC</filename>,
- donc, si vous n'avez pas install&eacute; de noyau sur-mesure ou n'avez pas
- de r&eacute;pertoire <filename>/sys</filename>, vous n'avez rien
- &agrave; changer.</para>
-
- <para>Si la ligne n'est pas dans le fichier de configuration de votre
- noyau, ou si vous avez besoin de plus d'un p&eacute;riph&eacute;rique
- <devicename>tun</devicename> (par exemple, si vous installez un
- serveur qui puisse fournir 16 connexions simultan&eacute;es vers
- l'ext&eacute;rieur, vous devrez mettre <literal>16</literal> au lieu de
- <literal>1</literal>), il vous faut alors ajouter la ligne,
- recompiler, r&eacute;installer et red&eacute;marrer avec le nouveau noyau.
- Reportez-vous s'il vous pla&icirc;t au chapitre
- <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link>
- pour plus d'informations sur la marche &agrave; suivre.</para>
-
- <para>Vous pouvez voir de combien de pseudo-p&eacute;riph&eacute;riques
- <devicename>tun</devicename> dispose votre noyau avec la
- commande suivante:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ifconfig -a</userinput>
-tun0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
- inet 200.10.100.1 --&gt; 203.10.100.24 netmask 0xffffffff
-tun1: flags=8050&lt;POINTOPOINT,RUNNING,MULTICAST&gt; mtu 576
-tun2: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
- inet 203.10.100.1 --&gt; 203.10.100.20 netmask 0xffffffff
-tun3: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500</screen>
- </informalexample>
-
- <para>Dans cette exemple, il y a quatre p&eacute;riph&eacute;riques
- &ldquo;tunnel&rdquo;, dont deux sont d&eacute;j&agrave; configur&eacute;s et utilis&eacute;s.
- Remarquez que l'indication <literal>RUNNING</literal> signifie que
- l'interface
- a d&eacute;j&agrave; &eacute;t&eacute; utilis&eacute;e &agrave; un moment donn&eacute;&nbsp;-&nbsp;ce n'est pas
- une erreur si votre interface n'appara&icirc;t pas comme
- <literal>RUNNING</literal>.</para>
-
- <para>Si votre noyau n'inclut pas de pseudo-p&eacute;riph&eacute;rique
- <devicename>tun</devicename> et que vous ne pouvez pas le recompiler
- pour une raison ou une autre, tout n'est pas perdu. Vous devriez
- pouvoir charger dynamiquement le code. Voyez les pages de manuel de
- <citerefentry><refentrytitle>modload</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- et <citerefentry><refentrytitle>lkm</refentrytitle><manvolnum>4</manvolnum></citerefentry>
- appropri&eacute;es pour plus de d&eacute;tails.</para>
-
- <para>Vous voudrez peut-&ecirc;tre en profiter pour configurer en m&ecirc;me temps
- un coupe-feu. Vous trouverez plus de d&eacute;tails &agrave; la section
- <link linkend="firewalls">Coupe-Feux</link>.</para>
-
- </sect2>
-
- <sect2>
- <title>Tester le p&eacute;riph&eacute;rique <devicename>tun</devicename></title>
-
- <para>La plupart des utilisateurs n'auront besoin que d'un
- p&eacute;riph&eacute;rique <devicename>tun</devicename>
- (<filename>/dev/tun0</filename>). Si vous en avez d&eacute;finis plus d'un
- (i.e., une autre valeur que <literal>1</literal> &agrave; la ligne
- <literal>pseudo-device</literal> du fichier de configuration du
- noyau), adaptez toutes les r&eacute;f&eacute;rences &agrave;
- <devicename>tun0</devicename> dans ce qui suit &agrave; votre cas
- particulier.</para>
-
- <para>La meilleure fa&ccedil;on de vous assurez que votre p&eacute;riph&eacute;rique
- <devicename>tun0</devicename> est correctement configur&eacute; est de
- recr&eacute;er le fichier sp&eacute;cial de p&eacute;riph&eacute;rique. Pour cela, ex&eacute;cutez les
- commandes suivantes:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV tun0</userinput></screen>
- </informalexample>
-
- <para>Si vous avez 16 p&eacute;riph&eacute;riques &ldquo;tunnel&rdquo;
- dans votre noyau, il vous
- faudra cr&eacute;er plus que <filename>tun0</filename>:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>./MAKEDEV tun15</userinput></screen>
- </informalexample>
-
- <para>Pour v&eacute;rifier encore que votre noyau est correctement configur&eacute;,
- la commande ci-dessous devrait vous donner le m&ecirc;me r&eacute;sultat:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ifconfig tun0</userinput>
-tun0: flags=8050&lt;POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500</screen>
- </informalexample>
-
- <para>L'indication <literal>RUNNING</literal> n'est peut-&ecirc;tre pas encore
- pr&eacute;sente, auquel cas vous verriez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ifconfig tun0</userinput>
-tun0: flags=8010&lt;POINTOPOINT,MULTICAST> mtu 1500</screen>
- </informalexample>
- </sect2>
-
- <sect2>
- <title>Configuration du solveur de noms</title>
-
- <para>Le solveur est la partie du syst&egrave;me qui convertit les adresses
- IP en noms de machines et vice versa. Il est configurable pour
- consulter des tables de correspondances entre adresses et noms
- qui peuvent se trouver &agrave; deux endroits diff&eacute;rents. La premi&egrave;re est
- le fichier <filename>/etc/hosts</filename>
- (<command>man 5 hosts</command>). La seconde est le service de noms
- de domaines Internet (&ldquo;Domain Name
- Service&rdquo;&nbsp;-&nbsp;DNS), une base de donn&eacute;es distribu&eacute;e
- dont la description d&eacute;borde le cadre du pr&eacute;sent document.</para>
-
- <para>Cette section d&eacute;crit bri&egrave;vement comment configurer votre
- solveur.</para>
-
- <para>Le solveur est un ensemble d'appels syst&egrave;me qui font la
- conversion, mais vous devez leur dire o&ugrave; trouver l'information.
- Cela se fait en modifiant le fichier
- <filename>/etc/host.conf</filename>.
- <emphasis>N'appelez pas</emphasis> ce fichier
- <filename>/etc/hosts.conf</filename> (Remarquez le
- <literal>s</literal> en trop), cela pourrait poser des
- probl&egrave;mes.</para>
-
- <sect3>
- <title>Renseigner le fichier
- <filename>/etc/host.conf</filename></title>
-
- <para>Ce fichier doit contenir les deux lignes suivantes (dans cet
- ordre):</para>
-
- <programlisting>
-hosts
-bind</programlisting>
-
- <para>Cela dit au solveur de chercher d'abord dans le fichier
- <filename>/etc/hosts</filename>, puis de consulter le
- DNS s'il n'a pas trouv&eacute; le nom recherch&eacute;.</para>
-
- </sect3>
-
- <sect3>
- <title>Renseigner le fichier
- <filename>/etc/hosts</filename>(5)</title>
-
- <para>Ce fichier doit contenir les noms et les adresses IP des
- machines de votre r&eacute;seau. Il doit au grand minimum contenir les
- entr&eacute;es pour la machine sur laquelle tournera ppp. Supposons
- qu'elle s'appelle <hostid role="fqdn">foo.bar.com</hostid>
- et que son adresse IP soit
- <hostid role="ipaddr">10.0.0.1</hostid>,
- <filename>/etc/hosts</filename> devra comporter:</para>
-
- <programlisting>
-127.0.0.1 localhost
-10.0.0.1 foo.bar.com foo</programlisting>
-
- <para>La premi&egrave;re ligne d&eacute;finit l'adresse <hostid>localhost</hostid>
- comme synonyme de la machine elle-m&ecirc;me. Quelle que soit votre
- propre adresse IP, l'adresse IP sur cette ligne doit toujours
- &ecirc;tre <hostid role="ipaddr">127.0.0.1</hostid>. La deuxi&egrave;me ligne
- affecte au nom <hostid role="fqdn">foo.bar.com</hostid> (et au
- raccourci <hostid>foo</hostid>) l'adresse IP
- <hostid role="ipaddr">10.0.0.1</hostid>.</para>
-
- <para>Si votre fournisseur vous a donn&eacute; une adresse IP
- statique et un
- nom de machine, mettez-les &agrave; la place de l'entr&eacute;e
- <hostid role="ipaddr">10.0.0.1</hostid>.</para>
-
- </sect3>
-
- <sect3>
- <title>Renseigner le fichier
- <filename>/etc/resolv.conf</filename></title>
-
- <para><filename>/etc/resolv.conf</filename> dit au solveur ce qu'il
- doit faire. Si vous avez en service votre propre DNS, vous pouvez
- le laisser vide. Vous devez normalement y mettre la(les) ligne(s)
- suivante(s):</para>
-
- <programlisting>
-nameserver <replaceable>x.x.x.x</replaceable>
-nameserver <replaceable>y.y.y.y</replaceable>
-domain <replaceable>bar.com</replaceable></programlisting>
-
- <para><hostid
- role="ipaddr"><replaceable>x.x.x.x</replaceable></hostid> et
- <hostid role="ipaddr"><replaceable>y.y.y.y</replaceable></hostid>
- sont les adresses que votre fournisseur vous a donn&eacute;es.
- Mettez autant de lignes <literal>nameserver</literal> qu'il vous
- a donn&eacute; d'adresses. La ligne <literal>domain</literal> se r&eacute;f&egrave;re
- par d&eacute;faut au nom de domaine de votre machine, et est
- probablement inutile. Consultez les pages de manuel de
- <filename>resolv.conf</filename> pour plus de d&eacute;tails sur les
- autres entr&eacute;es possibles dans ce fichier.</para>
-
- <para>Si vous utilisez la version 2 ou ult&eacute;rieure de PPP, la commande
- <command>enable dns</command> dira &agrave; PPP de demander &agrave; votre
- fournisseur de confirmer les informations sur les serveurs de noms.
- S'il vous donne des adresses diff&eacute;rentes (ou s'il n'y a pas de ligne
- <literal>nameserver</literal> dans
- <filename>/etc/resolv.conf</filename>), PPP r&eacute;crira dans le fichier
- les valeurs que votre fournisseur lui aura donn&eacute;es.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Configurer <command>ppp</command></title>
-
- <para>Le programme utilisateur <command>ppp</command> et le
- &ldquo;d&eacute;mon&rdquo; <command>pppd</command> (l'impl&eacute;mentation de
- PPP dans le noyau) emploient tous deux des fichiers de configuration
- qui se trouvent dans le r&eacute;pertoire <filename>/etc/ppp</filename>.
- Les fichiers de configuration fournis en exemple sont une bonne
- r&eacute;f&eacute;rence pour ppp en mode utilisateur, ne les effacez pas.</para>
-
- <para>Pour configurer <command>ppp</command>, vous devrez, selon vos
- besoins, renseigner un certain nombre de fichiers. Ce que vous y
- mettrez d&eacute;pend entre autres du fait que votre fournisseur vous
- alloue une adresse IP statique (i.e., on vous donne une adresse IP
- et vous utilisez toujours la m&ecirc;me) ou dynamique (i.e., votre adresse
- IP peut &ecirc;tre diff&eacute;rente &agrave; chaque session PPP).</para>
-
- <sect3 id="userppp-staticIP">
- <title>PPP et les adresses IP statiques</title>
-
- <para>Vous devrez cr&eacute;er un fichier de configuration appel&eacute;
- <filename>/etc/ppp/ppp.conf</filename>. Il ressemblera &agrave;
- l'exemple ci-dessous:</para>
-
- <note>
- <para>Les lignes qui se terminent par <literal>:</literal>
- commencent en premi&egrave;re colonne. Toutes les autres lignes
- doivent &ecirc;tre indent&eacute;es avec des espaces ou des tabulations
- comme dans l'exemple donn&eacute;.</para>
- </note>
-
- <programlisting>
-1 default:
-2 set device /dev/cuaa0
-3 set speed 115200
-4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK \\dATDT\\TTIMEOUT 40 CONNECT"
-5 provider:
-6 set phone "(0123) 456 7890"
-7 set login "TIMEOUT 10 \"\" \"\" gin:--gin: foo word: bar col: ppp"
-8 set timeout 300
-9 set ifaddr <replaceable>x.x.x.x</replaceable> <replaceable>y.y.y.y</replaceable> 255.255.255.0 0.0.0.0
-10 add default HISADDR
-11 enable dns</programlisting>
-
- <para>Ne mettez pas les num&eacute;ros de ligne, ils ne sont l&agrave; que pour
- pouvoir y faire r&eacute;f&eacute;rence dans la suite de cette
- documentation.</para>
-
- <variablelist>
- <varlistentry><term>Ligne 1:</term>
- <listitem>
- <para>D&eacute;finit l'entr&eacute;e par d&eacute;faut. Les commandes de cette
- entr&eacute;e sont automatiquement ex&eacute;cut&eacute;es au lancement de
- ppp.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 2:</term>
-
- <listitem>
- <para>Identifie le p&eacute;riph&eacute;rique auquel est connect&eacute; le
- modem. <devicename>COM1:</devicename> correspond &agrave;
- <filename>/dev/cuaa0</filename> et
- <devicename>COM2:</devicename> &agrave;
- <filename>/dev/cuaa1</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 3:</term>
-
- <listitem>
- <para>Fixe la vitesse &agrave; laquelle vous voulez vous
- connecter. Si 115200 ne marche pas (cela devrait
- fonctionner avec n'importe quel modem assez r&eacute;cent),
- essayez avec 38400.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 4:</term>
-
- <listitem>
- <para>La cha&icirc;ne d'appel. PPP en mode utilisateur utilise une
- syntaxe &ldquo;commande envoy&eacute;e/r&eacute;ponse attendue&rdquo;
- semblable &agrave; celle du programme
- <citerefentry><refentrytitle>chat</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- Reportez-vous aux pages de manuel pour plus
- d'informations sur les caract&eacute;ristiques de ce langage.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 5:</term>
-
- <listitem>
- <para>D&eacute;finit une entr&eacute;e pour un fournisseur appel&eacute;
- &ldquo;provider&rdquo;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 6:</term>
-
- <listitem>
- <para>Donne le num&eacute;ro de t&eacute;l&eacute;phone de ce fournisseur.
- On peut indiquer plusieurs num&eacute;ros de t&eacute;l&eacute;phone avec
- les caract&egrave;res <literal>:</literal> ou
- <literal>|</literal> comme s&eacute;parateur. La diff&eacute;rence
- entre les deux est d&eacute;crite dans les pages de manuel de
- ppp. En r&eacute;sum&eacute;, si vous voulez utiliser les num&eacute;ros les
- uns apr&egrave;s les autres, utilisez <literal>:</literal>.
- Si vous voulez toujours essayer d'appeler le premier
- num&eacute;ro et n'utiliser les autres qu'en cas d'&eacute;chec,
- servez-vous de <literal>|</literal>. Mettez toujours la
- s&eacute;rie de num&eacute;ros de t&eacute;l&eacute;phone entre guillemets comme
- dans l'exemple.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 7:</term>
-
- <listitem>
- <para>La s&eacute;quence d'ouverture de session suit la m&ecirc;me
- syntaxe de style &ldquo;chat&rdquo; que la s&eacute;quence
- d'&eacute;tablissement de la connexion. Dans l'exemple donn&eacute;,
- la s&eacute;quence correspond &agrave; un service o&ugrave; l'ouverture
- de session ressemble &agrave;:</para>
-
- <informalexample>
- <screen>J. Random Provider
-login: <replaceable>foo</replaceable>
-password: <replaceable>bar</replaceable>
-protocol: ppp</screen>
- </informalexample>
-
- <para>Vous devrez modifier cette proc&eacute;dure pour l'adapter
- &agrave; vos besoins. Quand vous la mettez pour la premi&egrave;re
- fois au point, activez la trace de &ldquo;chat&rdquo;
- pour v&eacute;rifier que la conversation se d&eacute;roule conform&eacute;ment
- &agrave; votre attente.</para>
-
- <para>Si vous utilisez PAP ou CHAP, il n'y aura pas &agrave; ce stade
- d'ouverture de session, la s&eacute;quence peut donc &ecirc;tre laiss&eacute;e &agrave;
- blanc. Voyez la section
- <link linkend="userppp-PAPnCHAP">authentification PAP et
- CHAP</link> pour plus de d&eacute;tails.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 8:</term>
-
- <listitem>
- <para>D&eacute;finit le d&eacute;lai de connexion par d&eacute;faut (en
- secondes). Ici, la connexion sera automatiquement coup&eacute;e
- apr&egrave;s 300 secondes d'inactivit&eacute;. Si vous ne voulez pas
- de coupure automatique apr&egrave;s un temps d'inactivit&eacute;
- donn&eacute;, mettez cette valeur &agrave; z&eacute;ro.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 9:</term>
-
- <listitem>
- <para>Donne les adresses des interfaces. La cha&icirc;ne
- <replaceable>x.x.x.x</replaceable> doit &ecirc;tre remplac&eacute;e
- par l'adresse IP que votre fournisseur vous a allou&eacute;e.
- La cha&icirc;ne <replaceable>y.y.y.y</replaceable> doit &ecirc;tre
- remplac&eacute;e par l'adresse IP que votre fournisseur vous
- a donn&eacute;e comme passerelle (la machine &agrave; laquelle vous
- vous connectez). Si votre fournisseur ne vous a pas
- indiqu&eacute; d'adresse pour la passerelle, utilisez
- <hostid role="netmask">10.0.0.2/0</hostid>. Si vous
- devez &ldquo;deviner&rdquo; cette adresse, veillez &agrave;
- cr&eacute;er une entr&eacute;e dans
- <filename>/etc/ppp/ppp.linkup</filename>
- comme expliqu&eacute; &agrave; la section
- <link linkend="userppp-dynamicIP">PPP et les adresses
- IP dynamiques</link>. Si cette ligne manque,
- <command>ppp</command> ne pourra pas &ecirc;tre utilis&eacute; en
- mode <option>-auto</option> ou
- <option>-dynamic</option>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 10:</term>
-
- <listitem>
- <para>Ajoute une route par d&eacute;faut vers la passerelle de
- votre fournisseur. Le mot r&eacute;serv&eacute;
- <literal>HISADDR</literal> est remplac&eacute; par l'adresse de
- la passerelle donn&eacute;e &agrave; la ligne 9. Il est important que
- cette ligne apparaisse apr&egrave;s la pr&eacute;c&eacute;dente, sans quoi
- le valeur de <literal>HISADDR</literal> n'est pas encore
- initialis&eacute;e.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ligne 11:</term>
-
- <listitem>
- <para>Cette ligne dit &agrave; PPP de demander &agrave; votre fournisseur de
- confirmer que les adresses des serveurs de noms sont correctes.
- Si votre fournisseur supporte cette fonctionnalit&eacute;, PPP peut
- alors mettre &agrave; jour les entr&eacute;es pour les serveurs de noms dans
- <filename>/etc/resolv.conf</filename> avec les bonnes
- valeurs.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Il n'est pas utile d'ajouter une entr&eacute;e au fichier
- <filename>ppp.linkup</filename> lorsque vous avez une adresse IP
- statique car les entr&eacute;es de votre table de routage sont correctes
- avant m&ecirc;me que vous vous soyez connect&eacute;. Vous pouvez malgr&eacute; tout
- vouloir ajouter des entr&eacute;es pour lancer des programmes une fois
- que vous &ecirc;tes d&eacute;j&agrave; connect&eacute;. C'est expliqu&eacute; plus bas dans
- l'exemple pour <command>sendmail</command>.</para>
-
- <para>Il y a des exemples de fichiers de configuration dans le
- r&eacute;pertoire <filename>/etc/ppp</filename>.</para>
-
- </sect3>
-
- <sect3 id="userppp-dynamicIP">
- <title>PPP et les adresses IP dynamiques</title>
-
- <para>Si votre fournisseur ne vous donne pas d'adresse IP statique,
- <command>ppp</command> peut &ecirc;tre configur&eacute; pour n&eacute;gocier les
- adresses locale et &eacute;loign&eacute;e. Cela se fait en
- &ldquo;devinant&rdquo; l'adresse IP et en laissant
- <command>ppp</command> la rectifier avec le protocole de
- configuration IP (&ldquo;IP Configuration
- Protocol&rdquo;&nbsp;-&nbsp;IPCP) une fois la connexion &eacute;tablie.
- Le fichier de configuration <filename>ppp.conf</filename> est le
- m&ecirc;me que pour <link linkend="userppp-staticIP">PPP et les
- addresses IP statiques</link>, aux modifications suivantes
- pr&egrave;s:</para>
-
- <programlisting>
-9 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0</programlisting>
-
- <para>Encore une fois, ne mettez pas les num&eacute;ros de ligne, ils ne
- sont l&agrave; que pour y faire r&eacute;f&eacute;rence dans le suite des explications.
- Indentez avec au moins un blanc.</para>
-
- <variablelist>
- <varlistentry><term>Ligne 9:</term>
- <listitem>
- <para>Le nombre qui suit le caract&egrave;re <literal>/</literal>
- est le nombre de bits de l'adresse que ppp ne n&eacute;gociera
- pas. Vous voudrez peut &ecirc;tre utiliser des adresses IP plus
- adapt&eacute;es &agrave; votre cas particulier, mais l'exemple donn&eacute;
- marchera dans tous les cas de figure.</para>
-
- <para>Le dernier argument (<literal>0.0.0.0</literal>) dit &agrave; PPP
- de n&eacute;gocier en utilisant l'adresse <hostid
- role="ipaddr">0.0.0.0</hostid> plut&ocirc;t que <hostid
- role="ipaddr">10.0.0.1</hostid>. Ne mettez pas
- <literal>0.0.0.0</literal> en premier argument de
- <command>set ifaddr</command> parce que cela emp&ecirc;che PPP
- de d&eacute;finir la route initiale en mode
- <option>-auto</option>.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Si vous utilisez la version 1.x de PPP, il vous faudra aussi
- une entr&eacute;e dans <filename>/etc/ppp/ppp.linkup</filename>.
- <filename>ppp.linkup</filename> est utilis&eacute; apr&egrave;s que la connexion
- ait &eacute;t&eacute; &eacute;tablie. A ce stade, <command>ppp</command> conna&icirc;t les
- adresses IP <emphasis>r&eacute;elles</emphasis>. L'entr&eacute;e qui suit
- supprimera les routes erron&eacute;es existantes et cr&eacute;era les routes
- valides:</para>
-
- <programlisting>
-1 provider:
-2 delete ALL
-3 add 0 0 HISADDR</programlisting>
-
- <variablelist>
- <varlistentry><term>Ligne 1:</term>
- <listitem>
- <para>A l'&eacute;tablissement de la connexion,
- <command>ppp</command> parcourera les entr&eacute;es de
- <filename>ppp.linkup</filename> selon le principe
- suivant. Il essayera d'abord de trouver le m&ecirc;me libell&eacute;
- que celui qui a &eacute;t&eacute; employ&eacute; dans
- <filename>ppp.conf</filename>. S'il &eacute;choue, il cherchera
- une entr&eacute;e pour l'adresse IP de la passerelle. C'est une
- entr&eacute;e dont le libell&eacute; est compos&eacute; de quatre entiers (pour
- les quatre octets). S'il ne la trouve pas non plus, il
- cherchera l'entr&eacute;e <literal>MYADDR</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Line 2:</term>
-
- <listitem>
- <para>Cette ligne dit &agrave; <command>ppp</command> de supprimer
- toutes les routes existantes pour l'interface
- <devicename>tun</devicename> qu'il utilise (sauf la route
- directe).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 3:</term>
-
- <listitem>
- <para>Cette ligne dit &agrave; <command>ppp</command> d'ajouter
- une route par d&eacute;faut vers <literal>HISADDR</literal>.
- <literal>HISADDR</literal> sera remplac&eacute;e par l'adresse IP
- de la passerelle n&eacute;goci&eacute;e par IPCP.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Voyez l'entr&eacute;e &ldquo;pmdemand&rdquo; dans les fichiers
- <filename>/etc/ppp/ppp.conf.sample</filename> et
- <filename>/etc/ppp/ppp.linkup.sample</filename> pour avoir un
- exemple d&eacute;taill&eacute;.</para>
-
- <para>La version 2 de PPP introduit les &ldquo;routes
- persistantes&rdquo;. Toutes les lignes
- <literal>add</literal> ou <literal>delete</literal> qui contiennent
- <literal>MYADDR</literal> ou <literal>HISADDR</literal> sont
- m&eacute;moris&eacute;es et chaque fois que la valeur de
- <literal>MYADDR</literal> ou <literal>HISADDR</literal> change, les
- routes sont red&eacute;finies. Il n'est donc plus n&eacute;cessaire de r&eacute;p&eacute;ter ces
- lignes dans <filename>ppp.linkup</filename>.</para>
- </sect3>
-
- <sect3>
- <title>Recevoir des appels entrants avec <command>ppp</command></title>
-
- <para>Cette section vous explique comment configurer
- <command>ppp</command> pour l'utiliser comme serveur.</para>
-
- <para>Quand vous configurez <command>ppp</command> pour recevoir
- des appels entrants sur une machine connect&eacute;e &agrave; un r&eacute;seau local,
- vous devez d&eacute;cider si vous transmettrez des paquets vers le
- r&eacute;seau local. Si c'est le cas, vous devrez allouer &agrave; la machine
- distante une adresse IP sur votre sous-r&eacute;seau local et utiliser la
- commande
-
- <programlisting>
-enable proxy</programlisting>
-
- dans le fichier <filename>ppp.conf</filename>. Vous devrez aussi
- vous assurer que le fichier <filename>/etc/rc.conf</filename>
- (ce fichier s'appelait auparavant
- <filename>/etc/sysconfig</filename>) contienne la ligne:</para>
-
- <programlisting>
-gateway=YES</programlisting>
-
- <sect4>
- <title>Quel &ldquo;getty&rdquo;?</title>
-
- <para>La section
- <link linkend="dialup">Connexions t&eacute;l&eacute;phoniques</link>
- d&eacute;crit en d&eacute;tail la mise en oeuvre des connexions
- entrantes avec &ldquo;getty&rdquo;.</para>
-
- <para>Une alternative &agrave; <command>getty</command> est <ulink
- url="http://www.leo.org/~doering/mgetty/index.html">mgetty</ulink>, une version de <command>getty</command> sp&eacute;cialement con&ccedil;ue pour les connexions t&eacute;l&eacute;phoniques.</para>
-
- <para>Un des avantages de <command>mgetty</command> est qu'il
- <emphasis>discute</emphasis> avec les modems, ce qui signifie
- que si le port est marqu&eacute; &ldquo;off&rdquo; dans
- <filename>/etc/ttys</filename>, votre modem ne d&eacute;crochera pas
- le t&eacute;l&eacute;phone.</para>
-
- <para>Les derni&egrave;res versions de <command>mgetty</command> (&agrave;
- partir de la 0.99b&ecirc;ta) suportent aussi la d&eacute;tection automatique
- des fluxs PPP, ce qui permet &agrave; vos clients d'acc&eacute;der au serveur
- sans ex&eacute;cuter de proc&eacute;dures particuli&egrave;res.</para>
-
- <para>Voyez <link linkend="userppp-mgetty">Mgetty et
- AutoPPP</link> pour plus d'informations sur
- <command>mgetty</command>.</para>
-
- </sect4>
-
- <sect4>
- <title>Autorisations pour PPP</title>
-
- <para><command>ppp</command> doit normalement &ecirc;tre ex&eacute;cut&eacute; avec un
- IDentifiant utilisateur de 0. Cependant, si vous voulez
- autoriser l'ex&eacute;cution du serveur <command>ppp</command>, comme
- d&eacute;crit ci-dessous, sous un compte utilisateur ordinaire, vous
- devez autoriser ces utilisateurs &agrave; ex&eacute;cuter
- <command>ppp</command> en les ajoutant au groupe
- <username>network</username> dans
- <filename>/etc/group</filename>.</para>
-
- <para>Vous devrez aussi leur donner acc&egrave;s &agrave; une ou plusieurs sections
- du fichier de configuration avec la commande
- <command>allow</command>:</para>
-
- <programlisting>
-allow users fred mary</programlisting>
-
- <para>Si vous mettez cette commande dans la section
- <literal>default</literal>, vous donnez aux utilisateurs mentionn&eacute;s
- acc&egrave;s &agrave; tout.</para>
- </sect4>
-
- <sect4>
- <title>Installer une proc&eacute;dure PPP pour les utilisateurs
- avec des adresses IP dynamiques</title>
-
- <para>Cr&eacute;ez un fichier appel&eacute;
- <filename>/etc/ppp/ppp-shell</filename> comme suit:</para>
-
- <programlisting>
-#!/bin/sh
-IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
-CALLEDAS="$IDENT"
-TTY=`tty`
-
-if [ x$IDENT = xdialup ]; then
- IDENT=`basename $TTY`
-fi
-
-echo "PPP pour $CALLEDAS sur $TTY"
-echo "D&eacute;marrage PPP pour $IDENT"
-
-exec /usr/sbin/ppp -direct $IDENT</programlisting>
-
- <para>Cette proc&eacute;dure doit &ecirc;tre ex&eacute;cutable. Cr&eacute;ez maintenant un
- lien symbolique appel&eacute; <filename>ppp-dialup</filename> sur
- cette proc&eacute;dure avec la commande:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen>
- </informalexample>
-
- <para>Utilisez cette proc&eacute;dure comme
- <emphasis>interpr&eacute;teur de commandes</emphasis> pour tous vos
- utilisateurs qui se connectent avec ppp. Voici une exemple de
- fichier <filename>/etc/password</filename> avec un utilisateur
- PPP appel&eacute; <username>pchilds</username>. (n'oubliez pas de ne
- pas &eacute;diter directement le fichier <filename>passwd</filename>,
- utilisez <command>vipw</command>):</para>
-
- <programlisting>
-pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting>
-
- <para>Cr&eacute;ez un r&eacute;pertoire <filename>/home/ppp</filename> que tout
- le monde puisse lire, avec le fichier vide suivant:
-
- <informalexample>
- <screen>-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
--r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts</screen>
- </informalexample>
-
- ce qui &eacute;vite que le contenu du fichier
- <filename>/etc/motd</filename> soit affich&eacute;
- &agrave; l'ouverture de session.</para>
-
- </sect4>
-
- <sect4>
- <title>Installer une proc&eacute;dure PPP pour les utilisateurs
- avec des adresses IP statiques</title>
-
- <para>Cr&eacute;ez le fichier <filename>ppp-shell</filename> comme d&eacute;crit
- ci-dessus, et pour chaque compte auquel est assign&eacute;e une adresse
- IP fixe, cr&eacute;ez un lien symbolique sur
- <filename>ppp-shell</filename>.</para>
-
- <para>Par exemple, si vous avez trois clients appel&eacute;s
- <username>fred</username>, <username>sam</username>,
- et <username>mary</username>, qui se connectent par t&eacute;l&eacute;phone et
- pour qui vous servez de passerelle sur des r&eacute;seaux
- de classe C, vous taperez les commandes suivantes:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred</userinput>
-&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam</userinput>
-&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary</userinput></screen>
- </informalexample>
-
- <para>Vous devez d&eacute;finir comme interpr&eacute;teur de commandes de chacun
- de ces comptes les liens symboliques que vous venez de cr&eacute;er.
- (ie. <filename>/etc/ppp/ppp-mary</filename> pour
- <username>mary</username>, etc.)</para>
-
- </sect4>
-
- <sect4>
- <title>Renseigner ppp.conf pour les utilisateurs avec des
- adresses IP dynamiques</title>
-
- <para>Le fichier <filename>/etc/ppp/ppp.conf</filename> doit
- contenir quelque chose qui ressemble &agrave;:</para>
-
- <programlisting>
-default:
- set debug phase lcp chat
- set timeout 0
-
-ttyd0:
- set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
- enable proxy
-
-ttyd1:
- set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
- enable proxy</programlisting>
-
- <note>
- <para>L'indentation est importante.</para>
- </note>
-
- <para>La section <literal>default:</literal> est utilis&eacute;e pour
- chaque session. Cr&eacute;ez une entr&eacute;e semblable &agrave; celle pour
- <literal>ttyd0:</literal> ci-dessus pour chaque ligne activ&eacute;e
- dans <filename>/etc/ttys</filename>. Vous devez attribuer &agrave;
- chaque ligne une adresse IP dans votre plage d'adresses IP
- dynamiques.</para>
-
- </sect4>
-
- <sect4>
- <title>Renseigner <filename>ppp.conf</filename> pour les
- utilisateurs avec des adresses IP statiques</title>
-
- <para>En plus de ce que vous avez d&eacute;j&agrave; introduit dans le fichier
- <filename>/etc/ppp/ppp.conf</filename> d'exemple ci-dessus
- vous devez ajouter une section pour chaque utilisateur auquel
- est assign&eacute;e une adresse IP fixe. En continuant avec notre
- exemple pour <username>fred</username>,
- <username>sam</username> et
- <username>mary</username>:</para>
-
- <programlisting>
-fred:
- set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
-
-sam:
- set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
-
-mary:
- set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255</programlisting>
-
- <para>Vous devez aussi, si besoin est,
- donnez les informations de routage dans
- <filename>/etc/ppp/ppp.linkup</filename> pour
- chaque utilisateur ayant une adresse IP fixe.
- La premi&egrave;re ligne ci-dessous ajoute
- une route vers le r&eacute;seau de classe C <hostid
- role="ipaddr">203.14.101.0</hostid> via la liaison
- ppp du client.</para>
-
- <programlisting>
-fred:
- add 203.14.101.0 netmask 255.255.255.0 HISADDR
-
-sam:
- add 203.14.102.0 netmask 255.255.255.0 HISADDR
-
-mary:
- add 203.14.103.0 netmask 255.255.255.0 HISADDR</programlisting>
-
- </sect4>
-
- <sect4>
- <title>A propos de <command>mgetty</command>, AutoPPP et des
- extensions Microsoft</title>
-
-
- <sect5 id="userppp-mgetty">
- <title><command>mgetty</command> et AutoPPP</title>
-
- <para>Configurer et compiler
- <command>mgetty</command> avec l'option
- <literal>AUTO_PPP</literal> permet &agrave;
- <command>mgetty</command> de d&eacute;tecter la phase LCP des
- connexions PPP et de lancer automatiquement une proc&eacute;dure
- adapt&eacute;e &agrave; ppp. Cependant, comme il n'y a pas alors
- d'ouverture de session avec invite et demande de mot de
- passe, il est n&eacute;cessaire d'authentifier les utilisateurs
- en utilisant soit PAP, soit CHAP.</para>
-
- <para>Nous supposerons dans cette section que vous avez d&eacute;j&agrave;
- r&eacute;ussi &agrave; configurer, compiler et installer une version de
- <command>mgetty</command> avec l'option
- <literal>AUTO_PPP</literal> (v0.99b&ecirc;ta ou ult&eacute;rieure).</para>
-
- <para>Assurez-vous que le fichier
- <filename>/usr/local/etc/mgetty+sendfax/login.config</filename> contienne bien la ligne suivante:</para>
-
- <programlisting>
-/AutoPPP/ - - /etc/ppp/ppp-pap-dialup</programlisting>
-
- <para>Cela dit &agrave; <command>mgetty</command> d'ex&eacute;cuter la
- proc&eacute;dure <filename>ppp-pap-dialup</filename> lorsqu'il
- reconna&icirc;t une connexion PPP.</para>
-
- <para>Cr&eacute;ez un fichier
- <filename>/etc/ppp/ppp-pap-dialup</filename>
- (ce fichier doit &ecirc;tre ex&eacute;cutable) avec pour contenu:</para>
-
- <programlisting>
-#!/bin/sh
-exec /usr/sbin/ppp -direct pap$IDENT</programlisting>
-
- <para>Pour chaque ligne d'appel activ&eacute;e dans le fichier
- <filename>/etc/ttys</filename>, cr&eacute;ez une entr&eacute;e
- correspondante dans le fichier
- <filename>/etc/ppp/ppp.conf</filename>. Ces entr&eacute;es
- peuvent sans probl&egrave;me exister conjointement aux entr&eacute;es
- que nous avons d&eacute;j&agrave; cr&eacute;&eacute;es plus haut.</para>
-
- <programlisting>
-pap:
- enable pap
- set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
- enable proxy</programlisting>
-
- <para>Chaque utilisateur se connectant de cette mani&egrave;re devra
- disposer d'une entr&eacute;e &ldquo;nom d'utilisateur/mot de
- passe&rdquo; dans le fichier
- <filename>/etc/ppp/ppp.secret</filename>, ou bien vous pouvez
- ajouter l'option:</para>
-
- <programlisting>
-enable passwdauth</programlisting>
-
- <para>pour identifier les utilisateurs avec pap en utilisant le
- fichier <filename>/etc/password</filename>.</para>
-
- <para>Si vous voulez affecter &agrave; certains utilisateurs une adresse IP
- statique, vous pouvez donner ce num&eacute;ro comme troisi&egrave;me argument
- de <filename>/etc/ppp/ppp.secret</filename>. Le fichier
- <filename>/etc/ppp/ppp.secret.sample</filename> vous en donne
- des exemples.</para>
- </sect5>
-
- <sect5>
- <title>Extentions Microsoft</title>
-
- <para>Il est possible de configurer PPP pour qu'il fournisse &agrave; la
- demande les adresses des serveurs DNS et NetBIOS.</para>
-
- <para>Pour mettre en service ces extensions avec PPP version 1.x,
- ajoutez les lignes suivantes &agrave; la section ad&eacute;quate de
- <filename>/etc/ppp/ppp.conf</filename>:</para>
-
- <programlisting>
-enable msext
-set ns 203.14.100.1 203.14.100.2
-set nbns 203.14.100.5</programlisting>
-
- <para>Et pour PPP version 2 et ult&eacute;rieures:</para>
-
- <programlisting>
-accept dns
-set dns 203.14.100.1 203.14.100.2
-set nbns 203.14.100.5</programlisting>
-
- <para>Cela donnera aux clients les adresses des serveurs
- DNS primaire et secondaire et du serveur de noms
- netbios.</para>
-
- <para>A partir de la version 2, si la ligne
- <literal>set dns</literal> n'est pas mentionn&eacute;e, PPP utilise
- les valeurs donn&eacute;es par
- <filename>/etc/resolv.conf</filename>.</para>
- </sect5>
- </sect4>
- </sect3>
-
- <sect3 id="userppp-PAPnCHAP">
- <title>Authentification PAP et CHAP</title>
-
- <para>Certains fournisseurs d'acc&egrave;s configurent leurs syst&egrave;mes de
- sorte que la phase d'authentification de votre connexion se fasse
- par PAP ou CHAP. Si tel est le cas, il n'y a pas d'invite
- <prompt>login:</prompt> quand vous vous connectez, le dialogue
- s'&eacute;tablit imm&eacute;diatement avec PPP.</para>
-
- <para>PAP est moins s&eacute;curis&eacute; que CHAP, mais la s&eacute;curit&eacute; n'est
- normalement pas un probl&egrave;me dans ce cas, parce que les mots
- de passe, bien que transmis en clair, ne sont transmis que sur
- une liaison s&eacute;rie, ce qui la rend tr&egrave;s difficile &agrave; espionner
- par un pirate.</para>
-
- <para>Par rapport aux exemples donn&eacute;s aux sections
- <link linkend="userppp-staticIP">PPP et les adresses IP
- statiques</link> ou <link
- linkend="userppp-dynamicIP">PPP et les adresses IP
- dynamiques</link>, vous devez faire les modifications
- suivantes:</para>
-
- <programlisting>
-7 set login
-...
-12 set authname <replaceable>MonNomUtilisateur</replaceable>
-13 set authkey <replaceable>MonMotDePasse</replaceable></programlisting>
-
- <para>Comme toujours, ne mettez pas les num&eacute;ros de ligne, ils ne
- sont l&agrave; que pour y faire r&eacute;f&eacute;rence dans les explications qui
- suivent. Il faut indenter avec au moins un espace.</para>
-
- <variablelist>
- <varlistentry><term>Ligne 7:</term>
- <listitem>
- <para>Votre fournisseur ne vous demandera normalement pas
- d'ouvrir de session sur le serveur si vous utilisez PAP
- ou CHAP. Vous devez donc d&eacute;sactiver votre s&eacute;quence
- &ldquo;set login&rdquo;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 12:</term>
-
- <listitem>
- <para>Cette ligne donne votre nom d'utilisateur PAP/CHAP.
- Remplacez <replaceable>MonNomUtilisateur</replaceable> par
- la bonne valeur.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ligne 13:</term>
-
- <listitem>
- <para>Cette ligne donne votre mot de PAP/CHAP.
- Remplacez <replaceable>MonMotDePasse</replaceable> par
- la bonne valeur. Peut-&ecirc;tre voudrez-vous ajouter une ligne
- suppl&eacute;mentaire:
-
- <programlisting>
-15 accept PAP</programlisting> ou
-
- <programlisting>
-15 accept CHAP</programlisting> pour que l'intention soit claire, mais
- PAP et CHAP sont tous deux accept&eacute;s par d&eacute;faut.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
-
- <sect3>
- <title>Modifier &agrave; chaud votre configuration
- <command>ppp</command></title>
-
- <para>Il est possible de dialoguer avec le programme
- <command>ppp</command> tandis qu'il s'ex&eacute;cute en t&acirc;che de fond,
- mais vous devez avoir configur&eacute; un port de diagnostic
- qui convienne. Pour cela, ajoutez &agrave; votre configuration la
- ligne suivante:</para>
-
- <programlisting>
-set server /var/run/ppp-tun%d MotDePasseDeDiagnostic 0177</programlisting>
-
- <para>Cela dit &agrave; PPP d'&eacute;couter sur
- la &ldquo;prise&rdquo;&nbsp;-&nbsp;socket&nbsp;-&nbsp;Unix
- indiqu&eacute;e, et de demander au client de lui donner le mot de passe
- mentionn&eacute; avant de lui autoriser l'acc&egrave;s. Le
- <literal>%d</literal> est &agrave; remplacer par le num&eacute;ro du p&eacute;riph&eacute;rique
- &ldquo;tunnel&rdquo; utilis&eacute;.</para>
-
- <para>Une fois que
- la &ldquo;prise&rdquo;&nbsp;-&nbsp;socket&nbsp;-&nbsp;a
- &eacute;t&eacute; cr&eacute;&eacute;e, le programme
- <citerefentry><refentrytitle>pppctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- peut &ecirc;tre utilis&eacute; par des proc&eacute;dures qui veulent agir sur la
- configuration du programme <command>ppp</command> actif.</para>
-
- </sect3>
- </sect2>
-
- <sect2 id="userppp-final">
- <title>Configuration finale du syst&egrave;me</title>
-
- <para><command>ppp</command> est maintenant configur&eacute;, mais il y a
- encore quelques petites choses &agrave; faire avant de pouvoir l'utiliser.
- Il faut pour cela modifier le fichier
- <filename>/etc/rc.conf</filename> (qui s'appelait auparavant
- <filename>/etc/sysconfig</filename>).</para>
-
- <para>En le parcourant de haut en bas, v&eacute;rifiez que la valeur
- <literal>hostname=</literal> est bien renseign&eacute;e, e.g.:</para>
-
- <programlisting>
-hostname=foo.bar.com</programlisting>
-
- <para>Si votre fournisseur d'acc&egrave;s vous a donn&eacute; une adresse IP
- statique et un nom de machine, le mieux est d'utiliser ce nom
- comme nom de votre machine.</para>
-
- <para>Cherchez la variable <literal>network_interfaces</literal>. Si
- vous voulez configurer votre syst&egrave;me pour vous connecter &agrave; la
- demande chez votre fournisseur, v&eacute;rifiez que le p&eacute;riph&eacute;rique
- <devicename>tun0</devicename> est bien dans la liste, sinon
- ajoutez-le.</para>
-
- <programlisting>
-network_interfaces="lo0 tun0" ifconfig_tun0=</programlisting>
-
- <note>
- <para>La variable <literal>ifconfig_tun0</literal> doit &ecirc;tre vide.
- Il faut cr&eacute;er un fichier <filename>/etc/start_if.tun0</filename>
- avec la ligne:</para>
-
- <programlisting>
-ppp -auto mysystem</programlisting>
-
- <para>Cette proc&eacute;dure est ex&eacute;cut&eacute;e lors de la configuration du
- r&eacute;seau au d&eacute;marrage et lance le &ldquo;d&eacute;mon&rdquo; ppp en
- mode automatique. Si cette machine sert de passerelle sur un
- r&eacute;seau local, vous pouvez aussi ajouter l'indicateur
- <option>-alias</option>. Reportez-vous aux pages de manuel pour
- plus de d&eacute;tails.</para>
- </note>
-
- <para>Donnez <literal>NO</literal> comme valeur pour le programme
- de routage avec la ligne:</para>
-
- <programlisting>
-router_enable=NO (/etc/rc.conf)
-router=NO (/etc/sysconfig)</programlisting>
-
- <para>Il est important que le &ldquo;d&eacute;mon&rdquo;
- <command>routed</command> ne soit pas lanc&eacute; (il est d&eacute;marr&eacute; par
- d&eacute;faut) parce que <command>routed</command> a tendance &agrave; effacer
- les entr&eacute;es par d&eacute;faut cr&eacute;&eacute;es dans la table de routage par
- <command>ppp</command>.</para>
-
- <para>Il vaut probablement la peine de v&eacute;rifier que la ligne
- <literal>sendmail_flags</literal> ne comporte pas l'option
- <option>-q</option>, sans quoi <command>sendmail</command>
- jettera de temps &agrave; autre un oeil au r&eacute;seau, ce qui peut amener
- votre machine &agrave; ouvrir la connexion. Vous pouvez essayez:</para>
-
- <programlisting>
-sendmail_flags="-bd"</programlisting>
-
- <para>L'inconv&eacute;nient est que vous devrez forcer
- <command>sendmail</command> &agrave; r&eacute;examiner la file d'attente
- du courrier &eacute;lectronique chaque fois que la liaison ppp sera
- activ&eacute;e, en tapant:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen>
- </informalexample>
-
- <para>Vous pouvez utiliser la commande <command>!bg</command>
- de <filename>ppp.linkup</filename> pour le faire
- automatiquement:</para>
-
- <programlisting>
-1 provider:
-2 delete ALL
-3 add 0 0 HISADDR
-4 !bg sendmail -bd -q30m</programlisting>
-
- <para>Si cela ne vous convient pas, il
- est possible de mettre en place un
- &ldquo;dfilter&rdquo; pour bloquer le trafic SMTP. Consultez les
- fichiers d'exemple pour plus de d&eacute;tails.</para>
-
- <para>Vous n'avez plus qu'&agrave; red&eacute;marrer votre machine.</para>
-
- <para>Apres qu'elle ait red&eacute;marr&eacute;, vous pouvez taper soit:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ppp</userinput></screen>
- </informalexample>
-
- <para>puis <command>dial provider</command> pour initialiser la
- session PPP ou, si vous voulez que ppp lance la session
- automatiquement lorsqu'il y a du trafic sortant (et que vous
- n'avez pas cr&eacute;&eacute; le fichier <filename>start_if.tun0</filename>),
- tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ppp -auto provider</userinput></screen>
- </informalexample>
-
- </sect2>
-
- <sect2>
- <title>R&eacute;sum&eacute;</title>
-
- <para>Pour r&eacute;capituler, les &eacute;tapes suivantes sont n&eacute;cessaires lors de
- la premi&egrave;re configuration de ppp:</para>
-
- <para>C&ocirc;t&eacute; client:</para>
-
- <procedure>
-
- <step>
- <para>V&eacute;rifier que le pilote de p&eacute;riph&eacute;rique
- <devicename>tun</devicename> soit inclus dans le noyau.</para>
- </step>
-
- <step>
- <para>V&eacute;rifier que le fichier sp&eacute;cial de p&eacute;riph&eacute;rique
- <filename>tun<replaceable>X</replaceable></filename> existe
- dans le r&eacute;pertoire <filename>/dev</filename>.</para>
- </step>
-
- <step>
- <para>Cr&eacute;er une entr&eacute;e dans
- <filename>/etc/ppp/ppp.conf</filename>. L'exemple
- <filename>pmdemand</filename> doit suffire pour la plupart
- des fournisseurs d'acc&egrave;s.</para>
- </step>
-
- <step>
- <para>Dans le cas d'une adresse IP dynamique, cr&eacute;er une entr&eacute;e
- dans <filename>/etc/ppp/ppp.linkup</filename>.</para>
- </step>
-
- <step>
- <para>Modifier le fichier <filename>/etc/rc.conf</filename> (ou
- <filename>sysconfig</filename>).</para>
- </step>
-
- <step>
- <para>Cr&eacute;er une proc&eacute;dure <filename>start_if.tun0</filename>
- dans le cas d'une connexion automatique &agrave; la demande.</para>
- </step>
-
- </procedure>
-
-
- <para>C&ocirc;t&eacute; serveur:</para>
-
- <procedure>
-
- <step>
- <para>V&eacute;rifier que le pilote de p&eacute;riph&eacute;rique
- <devicename>tun</devicename> soit inclus dans le noyau.</para>
- </step>
-
- <step>
- <para>V&eacute;rifier que le fichier sp&eacute;cial de p&eacute;riph&eacute;rique
- <filename>tun<replaceable>X</replaceable></filename> existe
- dans le r&eacute;pertoire <filename>/dev</filename>.</para>
- </step>
-
- <step>
- <para>Cr&eacute;er une entr&eacute;e dans <filename>/etc/passwd</filename>
- (avec le programme <citerefentry><refentrytitle>vipw</refentrytitle><manvolnum>8</manvolnum></citerefentry>).</para>
- </step>
-
- <step>
- <para>Cr&eacute;er un profil dans le r&eacute;pertoire de cet utilisateur qui
- ex&eacute;cute <command>ppp -direct direct-server</command> ou
- quelque chose d'&eacute;quivalent.</para>
- </step>
-
- <step>
- <para>Cr&eacute;er une entr&eacute;e dans
- <filename>/etc/ppp/ppp.conf</filename>. L'exemple
- <filename>direct-server</filename> devrait suffire.</para>
- </step>
-
- <step>
- <para>Cr&eacute;er une entr&eacute;e dans
- <filename>/etc/ppp/ppp.linkup</filename>.</para>
- </step>
-
- <step>
- <para>Modifier le fichier <filename>/etc/rc.conf</filename> (ou
- <filename>sysconfig</filename>).</para>
- </step>
-
- </procedure>
-
- </sect2>
-
- <sect2>
- <title>Remerciements</title>
-
- <para>La derni&egrave;re mise &agrave; jour de cette section du manuel a &eacute;t&eacute;
- effectu&eacute;e le Lundi 10 Ao&ucirc;t 1998 par &a.brian;.</para>
-
- <para>Merci aux personnes suivantes pour les informations,
- commentaires et suggestions qu'elles m'ont transmis:</para>
-
- <para>&a.nik;</para>
-
- <para>&a.dirkvangulik;</para>
-
- <para>&a.pjc;</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="ppp">
- <title>Configurer PPP int&eacute;gr&eacute; au noyau</title>
-
- <para><emphasis>Contribution de &a.gena;.</emphasis></para>
-
- <para>Avant de lancer PPP sur votre machine, v&eacute;rifiez que
- <command>pppd</command> est bien dans le r&eacute;pertoire
- <filename>/usr/sbin</filename> et que le r&eacute;pertoire
- <filename>/etc/ppp</filename> existe.</para>
-
- <para><command>pppd</command> fonctionne de deux fa&ccedil;ons:</para>
-
- <orderedlist>
-
- <listitem>
- <para>comme &ldquo;client&rdquo;, i.e. si vous voulez connecter
- votre machine au monde ext&eacute;rieur via un liaison PPP s&eacute;rie ou un
- modem.</para>
- </listitem>
-
- <listitem>
- <para>comme &ldquo;serveur&rdquo;, i.e. si votre machine est
- sur le r&eacute;seau et sert &agrave; y connecter d'autres ordinateurs avec
- PPP.</para>
- </listitem>
-
- </orderedlist>
-
- <para>Dans les deux cas, vous devrez renseigner un fichier d'options
- (<filename>/etc/ppp/options</filename> ou
- <filename>~/.ppprc</filename> s'il y a plus d'un utilisateur sur votre
- machine qui utilisent PPP).</para>
-
- <para>Il vous faudra aussi un logiciel &ldquo;modem/s&eacute;rie&rdquo;
- (de pr&eacute;f&eacute;rence <command>kermit</command>) pour appeler et &eacute;tablir la
- connexion avec la machine distante.</para>
-
- <sect2>
- <title>Utiliser le client PPP</title>
-
- <para>J'ai utilis&eacute; le fichier <filename>/etc/ppp/options</filename>
- suivant pour me connecter &agrave; la liaison PPP d'un concentrateur
- CISCO.</para>
-
- <programlisting>
-crtscts # contr&ocirc;le de flux mat&eacute;riel
-modem # liaison par modem
-noipdefault # adresse IP affect&eacute;e par le serveur PPP distant
- # si la machine distante ne vous donne pas d'adresse IP
- # lors de la n&eacute;gociation IPCP, ne mettez pas cette option
-passive # attendre les paquets LCP
-domain ppp.foo.com # mettez ici votre nom de domaine
-
-:&lt;ip_&eacute;loign&eacute;&gt; # mettez ici l'adresse IP de la machine PPP distante
- # elle servira &agrave; router des paquets via la liaison PPP
- # si vous n'avez pas utilis&eacute; l'option noipdefault
- # changez cette ligne en &lt;ip_local&gt;:&lt;ip_&eacute;loign&eacute;&gt;
-defaultroute # mettez cette ligne si vous voulez que le serveur PPP soit
- # votre routeur par d&eacute;faut</programlisting>
-
- <para>Pour vous connecter:</para>
-
- <procedure>
-
- <step>
- <para>Appelez la machine &eacute;loign&eacute;e avec kermit (ou un autre
- programme pour modem) et donnez votre nom et votre mot
- de passe (ou ce qu'il faut pour activer PPP sur la machine
- distante).</para>
- </step>
-
- <step>
- <para>Quittez kermit (sans raccrocher la ligne).</para>
- </step>
-
- <step>
- <para>Entrez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/usr/src/usr.sbin/pppd.new/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen>
- </informalexample>
-
- <para>Utilisez la vitesse et le nom de p&eacute;riph&eacute;rique
- ad&eacute;quats.</para>
- </step>
-
- </procedure>
-
- <para>Votre ordinateur est maintenant connect&eacute; par PPP. Si la
- connexion &eacute;choue pour une raison ou une autre, vous pouvez ajouter
- l'option <option>debug</option> au fichier
- <filename>/etc/ppp/options</filename> et consulter les messages &agrave;
- la console pour trouver la cause du probl&egrave;me.</para>
-
- <para>La proc&eacute;dure <filename>/etc/ppp/pppup</filename> ci-dessous
- fera tout cela automatiquement:</para>
-
- <programlisting>
-#!/bin/sh
-ps ax |grep pppd |grep -v grep
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'arr&ecirc;t de pppd, PID=' ${pid}
- kill ${pid}
-fi
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'arr&ecirc;t de kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-
-ifconfig ppp0 down
-ifconfig ppp0 delete
-
-kermit -y /etc/ppp/kermit.dial
-pppd /dev/tty01 19200</programlisting>
-
- <para><filename>/etc/ppp/kermit.dial</filename> est la proc&eacute;dure
- kermit qui appelle et fournit les informations d'authentification
- &agrave; la machine distante. (Il y a une exemple de proc&eacute;dure de ce type
- &agrave; la fin de ce document.)</para>
-
- <para>Utilisez la proc&eacute;dure <filename>/etc/ppp/pppdown</filename>
- ci-dessous pour terminer la session PPP et vous d&eacute;connecter:</para>
-
- <programlisting>
-#!/bin/sh
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ X${pid} != "X" ] ; then
- echo 'arr&ecirc;t de pppd, PID=' ${pid}
- kill -TERM ${pid}
-fi
-
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'arr&ecirc;t de kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-
-/sbin/ifconfig ppp0 down
-/sbin/ifconfig ppp0 delete
-kermit -y /etc/ppp/kermit.hup
-/etc/ppp/ppptest</programlisting>
-
- <para>Pour voir si PPP tourne toujours
- (<filename>/usr/etc/ppp/ppptest</filename>):</para>
-
- <programlisting>
-#!/bin/sh
-pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
-if [ X${pid} != "X" ] ; then
- echo 'pppd actif : PID=' ${pid-NONE}
-else
- echo 'Pas de pppd actif.'
-fi
-set -x
-netstat -n -I ppp0
-ifconfig ppp0</programlisting>
-
- <para>Pour raccrocher la ligne modem
- (<filename>/etc/ppp/kermit.hup</filename>):</para>
-
- <programlisting>
-set line /dev/tty01 ; mettez ici le p&eacute;riph&eacute;rique pour votre modem
-set speed 19200
-set file type binary
-set file names literal
-set win 8
-set rec pack 1024
-set send pack 1024
-set block 3
-set term bytesize 8
-set command bytesize 8
-set flow none
-
-pau 1
-out +++
-inp 5 OK
-out ATH0\13
-echo \13
-exit</programlisting>
-
- <para>Voici une autre m&eacute;thode qui utilise <command>chat</command>
- au lieu de <command>kermit</command>:</para>
-
- <para><emphasis>Contribution de &a.rhuff;.</emphasis></para>
-
- <para>Les deux fichiers suivants suffisent &agrave; &eacute;tablir une liaison
- ppp.</para>
-
- <para><filename>/etc/ppp/options</filename>:</para>
-
- <programlisting>
-/dev/cuaa1 115200
- </programlisting>
- <para></para>
- <programlisting>
-crtscts # contr&ocirc;le de flux mat&eacute;riel
-modem # liaison par modem
-connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
-noipdefault # adresse IP affect&eacute;e par le serveur PPP distant
- # si la machine distante ne vous donne pas d'adresse IP
- # lors de la n&eacute;gociation IPCP, ne mettez pas cette option
-passive # attendre les paquets LCP
-domain ppp.foo.com # mettez ici votre nom de domaine
-
-:&lt;ip_&eacute;loign&eacute;&gt; # mettez ici l'adresse IP de la machine PPP distante
- # elle servira &agrave; router des paquets via la liaison PPP
- # si vous n'avez pas utilis&eacute; l'option noipdefault
- # changez cette ligne en &lt;ip_local&gt;:&lt;ip_&eacute;loign&eacute;&gt;
-defaultroute # mettez cette ligne si vous voulez que le serveur PPP soit
- # votre routeur par d&eacute;faut</programlisting>
-
- <para><filename>/etc/ppp/login.chat.script</filename>:</para>
-
- <para>(Ceci doit &ecirc;tre tap&eacute; <emphasis>sur une seule
- ligne</emphasis>.)</para>
-
- <programlisting>
-ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT&lt;num&eacute;ro.de.t&eacute;l&eacute;phone&gt;
- CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: &lt;nom-d-utilisateur&gt;
- TIMEOUT 5 sword: &lt;mot-de-passe&gt;</programlisting>
-
- <para>Une fois que ces fichiers sont install&eacute;s et contiennent ce qu'il
- faut, vous n'avez plus qu'&agrave; taper:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>pppd</userinput></screen>
- </informalexample>
-
- <para>Cet exemple est avant tout bas&eacute; sur des informations fournies
- par: Trev Roydhouse
- &lt;Trev.Roydhouse@f401.n711.z3.fidonet.org&gt; et utilis&eacute;es
- avec son autorisation.</para>
-
- </sect2>
-
- <sect2>
- <title>Utiliser le serveur PPP</title>
-
- <para><filename>/etc/ppp/options</filename>:</para>
-
- <programlisting>
-crtscts # contr&ocirc;le de flux mat&eacute;riel
-netmask 255.255.255.0 # masque de sous-r&eacute;seau ( facultatif )
-192.114.208.20:192.114.208.165 # adresses IP des machines locales et distantes
- # l'adresse locale ne doit pas &ecirc;tre la m&ecirc;me que
- # celle que vous avez assign&eacute;e &agrave; l'interface
- # Ethernet ( ou autre ) de la machine.
- # l'adresse IP de la machine distante est
- # l'adresse qui lui sera affect&eacute;e
-domain ppp.foo.com # votre nom de domaine
-passive # attendre LCP
-modem # liaison modem</programlisting>
-
- <para>La proc&eacute;dure <filename>/etc/ppp/pppserv</filename> ci-dessous
- lancera le serveur ppp sur votre machine:</para>
-
- <programlisting>
-#!/bin/sh
-ps ax |grep pppd |grep -v grep
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'arr&ecirc;t de pppd, PID=' ${pid}
- kill ${pid}
-fi
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'arr&ecirc;t de kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-
-# r&eacute;initialiser l'interface ppp
-ifconfig ppp0 down
-ifconfig ppp0 delete
-
-# activer le mode r&eacute;ponse automatique
-kermit -y /etc/ppp/kermit.ans
-
-# lancer ppp
-pppd /dev/tty01 19200</programlisting>
-
- <para>Utilisez cette proc&eacute;dure
- <filename>/etc/ppp/pppservdown</filename> pour arr&ecirc;ter
- le serveur:</para>
-
- <programlisting>
-#!/bin/sh
-ps ax |grep pppd |grep -v grep
-pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'arr&ecirc;t de pppd, PID=' ${pid}
- kill ${pid}
-fi
-ps ax |grep kermit |grep -v grep
-pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
-if [ "X${pid}" != "X" ] ; then
- echo 'arr&ecirc;t de kermit, PID=' ${pid}
- kill -9 ${pid}
-fi
-ifconfig ppp0 down
-ifconfig ppp0 delete
-
-kermit -y /etc/ppp/kermit.noans</programlisting>
-
- <para>La proc&eacute;dure kermit ci-dessous active ou d&eacute;sactive
- le mode r&eacute;ponse automatique de votre modem
- (<filename>/etc/ppp/kermit.ans</filename>):</para>
-
- <programlisting>
-set line /dev/tty01
-set speed 19200
-set file type binary
-set file names literal
-set win 8
-set rec pack 1024
-set send pack 1024
-set block 3
-set term bytesize 8
-set command bytesize 8
-set flow none
-
-pau 1
-out +++
-inp 5 OK
-out ATH0\13
-inp 5 OK
-echo \13
-out ATS0=1\13 ; remplacez par ATS0=0\13 pour d&eacute;sactiver
- ; le mode r&eacute;ponse automatique
-inp 5 OK
-echo \13
-exit</programlisting>
-
- <para>La proc&eacute;dure
- <filename>/etc/ppp/kermit.dial</filename> &eacute;tablit la connexion et
- ouvre la session sur la machine distante. Vous devrez l'adapter
- &agrave; vos besoins propres. Mettez-y votre nom d'utilisateur et votre
- mot de passe, et modifiez aussi les cha&icirc;nes attendues en r&eacute;ponse
- selon ce que vous envoient votre modem et la machine
- distante.</para>
-
- <programlisting>
-;
-; mettez ici la liaison s&eacute;rie &agrave; laquelle est raccord&eacute; le modem:
-;
-set line /dev/tty01
-;
-; mettez ici la vitesse du modem:
-;
-set speed 19200
-set file type binary ; transfert 8 bits
-set file names literal
-set win 8
-set rec pack 1024
-set send pack 1024
-set block 3
-set term bytesize 8
-set command bytesize 8
-set flow none
-set modem hayes
-set dial hangup off
-set carrier auto ; puis SET CARRIER si n&eacute;cessaire,
-set dial display on ; puis SET DIAL si n&eacute;cessaire,
-set input echo on
-set input timeout proceed
-set input case ignore
-def \%x 0 ; compteur d'ouverture de session
-goto slhup
-
-:slcmd ; met le modem en mode commande
-echo Modem en mode commande.
-clear ; vide le tampon d'entr&eacute;e
-pause 1
-output +++ ; s&eacute;quence d'&eacute;chappement Hayes
-input 1 OK\13\10 ; attendre un OK
-if success goto slhup
-output \13
-pause 1
-output at\13
-input 1 OK\13\10
-if fail goto slcmd ; si le modem ne r&eacute;pond pas OK, r&eacute;essayer
-
-:slhup ; raccrocher
-clear ; vider le tampon d'entr&eacute;e
-pause 1
-echo On raccroche.
-output ath0\13 ; commande HAYES pour raccrocher
-input 2 OK\13\10
-if fail goto slcmd ; si pas de r&eacute;ponse OK, passez en mode commande
-
-:sldial ; composer le num&eacute;ro
-pause 1
-echo On appelle.
-output atdt9,550311\13\10 ; mettre ici le num&eacute;ro de t&eacute;l&eacute;phone
-assign \%x 0 ; mettre le compteur de secondes &agrave; 0
-
-:look
-clear ; vider le tampon d'entr&eacute;e
-increment \%x ; compter les secondes
-input 1 {CONNECT }
-if success goto sllogin
-reinput 1 {NO CARRIER\13\10}
-if success goto sldial
-reinput 1 {NO DIALTONE\13\10}
-if success goto slnodial
-reinput 1 {\255}
-if success goto slhup
-reinput 1 {\127}
-if success goto slhup
-if < \%x 60 goto look
-else goto slhup
-
-:sllogin ; ouverture de session
-assign \%x 0 ; mettre le compteur de secondes &agrave; 0
-pause 1
-echo Attente de l'invite de session.
-
-:slloop
-increment \%x ; compter les secondes
-clear ; vider le tampon d'entr&eacute;e
-output \13
-;
-; Mettez ici l'invite que vous attendez:
-;
-input 1 {Username: }
-if success goto sluid
-reinput 1 {\255}
-if success goto slhup
-reinput 1 {\127}
-if success goto slhup
-if < \%x 10 goto slloop ; essayer 10 fois d'avoir l'invite
-else goto slhup ; raccrocher et recommencer apr&egrave;s 10 &eacute;checs
-
-:sluid
-;
-; Mettez ici votre nom d'utilisateur:
-;
-output nom-d-utilisateur-ppp\13
-input 1 {Password: }
-;
-; Mettez ici votre mot de passe:
-;
-output mot-de-passe-ppp\13
-input 1 {Entering SLIP mode.}
-echo
-quit
-
-:slnodial
-echo \7Pas de tonalit&eacute;. V&eacute;rifiez votre ligne t&eacute;l&eacute;phonique!\7
-exit 1
-
-; local variables:
-; mode: csh
-; comment-start: "; "
-; comment-start-skip: "; "
-; end:</programlisting>
-
- </sect2>
- </sect1>
-
- <sect1 id="slipc">
- <title>Configurer un client SLIP</title>
-
- <para><emphasis>Contribution de &a.asami;<!-- <br> -->8 Ao&ucirc;t
- 1995.</emphasis></para>
-
- <para>Cette section d&eacute;crit une mani&egrave;re de configurer une machine
- FreeBSD pour utiliser SLIP sur un r&eacute;seau o&ugrave; le nom de machine
- est statique. Si le nom de machine est affect&eacute; dynamiquement (i.e.,
- votre adresse change &agrave; chaque connexion), vous devrez probablement
- employer une m&eacute;thode plus sophistiqu&eacute;e.</para>
-
- <para>D&eacute;terminez d'abord sur quel port s&eacute;rie votre modem est branch&eacute;.
- J'utilise un lien symbolique de <filename>/dev/modem</filename> vers
- <filename>/dev/cuaa1</filename>, et n'utilise que ce lien dans mes
- fichiers de configuration. Cela &eacute;vite qu'il devienne laborieux
- de modifier un certain nombre de fichiers de
- <filename>/etc</filename> et les
- <filename>.kermrc</filename> pour l'ensemble du syst&egrave;me!</para>
-
- <note>
- <para><filename>/dev/cuaa0</filename> correspond &agrave;
- <devicename>COM1</devicename> et
- <filename>cuaa1</filename> &agrave; <devicename>COM2</devicename>,
- etc.</para>
- </note>
-
- <para>V&eacute;rifiez que la ligne:
-
- <programlisting>
-pseudo-device sl 1</programlisting> est bien pr&eacute;sente dans votre fichier
- de configuration du noyau. Elle existe dans le noyau
- <filename>GENERIC</filename>, ce n'est donc un probl&egrave;me que si vous
- l'avez supprim&eacute;e.</para>
-
- <sect2>
- <title>Ce que vous n'aurez &agrave; faire qu'une seule fois</title>
-
- <procedure>
-
- <step>
- <para>Ajoutez votre machine, la passerelle et les serveurs de
- noms de domaines &agrave; votre fichier
- <filename>/etc/hosts</filename>. Voici &agrave; quoi ressemble le
- mien:</para>
-
- <programlisting>
-127.0.0.1 localhost loghost
-136.152.64.181 silvia.HIP.Berkeley.EDU silvia.HIP silvia
-136.152.64.1 inr-3.Berkeley.EDU inr-3 slip-gateway
-128.32.136.9 ns1.Berkeley.edu ns1
-128.32.136.12 ns2.Berkeley.edu ns2</programlisting>
-
- <para>Au passage, silvia est le nom de la voiture que j'avais
- quand je suis retourn&eacute; au Japon (on l'appelle 2?0SX ici aux
- Etats-Unis).</para>
- </step>
-
- <step>
- <para>V&eacute;rifiez que <option>hosts</option> vient avant
- <option>bind</option> dans votre fichier
- <filename>/etc/host.conf</filename>. Sinon, il peut se
- passer des choses bizarres.</para>
- </step>
-
- <step>
- <para>Modifiez le fichier <filename>/etc/rc.conf</filename>.
- Si votre version de FreeBSD est ant&eacute;rieure &agrave; la version 2.2.2,
- c'est le fichier <filename>/etc/sysconfig</filename> qu'il
- faut modifier &agrave; la place.</para>
- <orderedlist>
-
- <listitem>
- <para>D&eacute;finissez votre nom de machine &agrave; la ligne:</para>
- <programlisting>
-hostname=myname.my.domain</programlisting>
-
- <para>Vous devez donner votre nom Internet de
- machine en entier.</para>
- </listitem>
-
- <listitem>
- <para>Ajouter sl0 &agrave; la liste des interfaces r&eacute;seau
- en modifiant la ligne:</para>
-
- <programlisting>
-network_interfaces="lo0"</programlisting>
-
- <para>en:</para>
-
- <programlisting>
-network_interfaces="lo0 sl0"</programlisting>
- </listitem>
-
- <listitem>
- <para>D&eacute;finissez les param&egrave;tres de configuration de sl0 en
- ajoutant une ligne:</para>
-
- <programlisting>
-ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"</programlisting>
- </listitem>
-
- <listitem>
- <para>Pr&eacute;cisez la passerelle par d&eacute;faut en modifiant
- la ligne:</para>
- <programlisting>
-defaultrouter=NO</programlisting>
- <para>en:</para>
- <programlisting>
-defaultrouter=slip-gateway</programlisting>
- </listitem>
-
- </orderedlist>
-
- </step>
-
- <step>
- <para>Cr&eacute;ez un fichier <filename>/etc/resolv.conf</filename> qui
- contienne:</para>
-
- <programlisting>
-domain HIP.Berkeley.EDU
-nameserver 128.32.136.9
-nameserver 128.32.136.12</programlisting>
-
- <para>Comme vous le constatez, c'est la d&eacute;finition des serveurs de
- noms de domaines. Bien entendu, les noms et les adresses de
- ceux-ci sont fonction de votre environnement particulier.</para>
- </step>
-
- <step>
- <para>Donnez des mots de passe &agrave; root et toor (et &agrave; tous les
- autres comptes qui n'auraient pas de mot de passe). Employez
- <command>passwd</command>, ne modifiez pas les fichiers
- <filename>/etc/passwd</filename> ou
- <filename>/etc/master.passwd</filename>!</para>
- </step>
-
- <step>
- <para>Red&eacute;marrez la machine et v&eacute;rifiez qu'elle a bien le nom
- voulu.</para>
- </step>
-
- </procedure>
-
- </sect2>
-
- <sect2>
- <title>Etablir une connexion SLIP</title>
-
- <procedure>
-
- <step>
- <para>T&eacute;l&eacute;phonez, tapez <command>slip</command> &agrave; l'invite,
- entrez votre nom d'utilisateur et votre mot de passe. Ce
- que vous avez &agrave; faire d&eacute;pend de votre environnement. J'utilise
- une proc&eacute;dure kermit comme celle-ci:</para>
-
- <programlisting>
-# configuration kermit
-set modem hayes
-set line /dev/modem
-set speed 115200
-set parity none
-set flow rts/cts
-set terminal bytesize 8
-set file type binary
-# La macro-instruction qui suit t&eacute;l&eacute;phone et &eacute;tablit la connexion
-define slip dial 643-9600, input 10 =>, if failure stop, -
-output slip\x0d, input 10 Username:, if failure stop, -
-output silvia\x0d, input 10 Password:, if failure stop, -
-output ***\x0d, echo \x0aCONNECTED\x0a</programlisting>
- <para>(vous devez bien sur remplacer le nom et le mot de
- passe par les v&ocirc;tres). Vous pouvez alors entrer simplement
- <command>slip</command> &agrave; l'invite de kermit
- pour vous connecter.</para>
-
- <note>
- <para>Laisser votre mot de passe en clair dans un
- quelconque fichier est en g&eacute;n&eacute;ral une
- <emphasis>MAUVAISE</emphasis> id&eacute;e. Faites-le &agrave; vos risques
- et p&eacute;rils. Je suis simplement trop paresseux.</para>
- </note>
- </step>
-
- <step>
- <para>Laissez maintenant kermit tel que (vous pouvez le mettre
- en arri&egrave;re-plan avec <command>z</command>) et, sous le compte
- super-utilisateur, tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen>
- </informalexample>
-
- <para>Si vous arriver &agrave; envoyer un <command>ping</command> &agrave; des
- machines situ&eacute;es de l'autre c&ocirc;t&eacute; du routeur, vous &ecirc;tes
- connect&eacute;! Si cela ne marche pas, vous pouvez essayer l'option
- <option>-a</option> au lieu de l'option <option>-c</option> de
- slattach.</para>
- </step>
-
- </procedure>
-
- </sect2>
-
- <sect2>
- <title>Comment couper la connexion</title>
-
- <para>Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen>
- </informalexample>(en &eacute;tant super-utilisateur
- <username>root</username>)
- pour tuer slattach. Revenez maintenant sous kermit
- (<command>fg</command> si vous l'avez mis en t&acirc;che de fond)
- et quittez-le (<command>q</command>).</para>
-
- <para>Les pages de manuel de slattach disent que vous devez employer
- <command>ifconfig sl0 down</command> pour indiquer que l'interface
- n'est plus active, mais cela ne change apparement rien pour moi.
- (Les diagnostics de <command>ifconfig sl0</command> sont
- identiques.)</para>
-
- <para>Il arrive parfois que votre modem refuse de raccrocher (le mien
- le fait souvent). Dans ce cas, relancez kermit et quittez-le de
- nouveau. Cela marche en g&eacute;n&eacute;ral au deuxi&egrave;me essai.</para>
-
- </sect2>
-
- <sect2>
- <title>En cas de probl&egrave;mes</title>
-
- <para>Si cela ne marche pas, n'h&eacute;sitez pas &agrave; me contacter. Voici
- les probl&egrave;mes que certains ont rencontr&eacute;s jusqu'ici:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Ne pas utiliser l'option <option>-c</option> ou
- <option>-a</option> de slattach (Je n'ai aucune id&eacute;e
- de pourquoi cela pose probl&egrave;me, mais le fait de mettre
- cet indicateur a au moins fourni la solution dans un
- cas).</para>
- </listitem>
-
- <listitem>
- <para>Mettre <option>s10</option> au lieu <option>sl0</option>
- (avec certaines polices de caract&egrave;res, il est parfois
- difficile de faire la diff&eacute;rence).</para>
- </listitem>
-
- <listitem>
- <para>Essayez <command>ifconfig sl0</command> pour contr&ocirc;ler
- la configuration de votre interface. J'obtiens:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ifconfig sl0</userinput>
-sl0: flags=10&lt;POINTOPOINT&gt;
- inet 136.152.64.181 --&gt; 136.152.64.1 netmask ffffff00</screen>
- </informalexample>
- </listitem>
-
- <listitem>
- <para>De m&ecirc;me, <command>netstat -r</command> vous affichera
- la table de routage, au cas o&ugrave; <command>ping</command>
- vous renverrait des
- messages &ldquo;no route to host&rdquo;.
- Voici la mienne:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>netstat -r</userinput>
-Routing tables
-Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
-
-(root node)
-(root node)
-
-Route Tree for Protocol Family inet:
-(root node) =&gt;
-default inr-3.Berkeley.EDU UG 8 224515 sl0 - -
-localhost.Berkel localhost.Berkeley UH 5 42127 lo0 - 0.438
-inr-3.Berkeley.E silvia.HIP.Berkele UH 1 0 sl0 - -
-silvia.HIP.Berke localhost.Berkeley UGH 34 47641234 lo0 - 0.438
-(root node)</screen>
- </informalexample>
- <para>(cela apr&egrave;s transfert d'un certain nombre de fichiers, vous
- devriez avoir des valeurs moins importantes).</para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 id="slips">
- <title>Configurer un serveur SLIP</title>
-
- <para><emphasis>Contribution de &a.ghelmer;.<!-- <br> --> v1.0, 15 Mai
- 1995.</emphasis></para>
-
- <para>Ce document vous donne des indications pour mettre en oeuvre un
- serveur SLIP sur un syst&egrave;me FreeBSD, ce qui signifie typiquement
- configurer votre syst&egrave;me pour ouvrir une connexion &agrave; l'ouverture
- d'une session depuis une machine distante. L'auteur l'a r&eacute;dig&eacute; en
- se basant sur sa propre exp&eacute;rience; n&eacute;anmoins, comme votre syst&egrave;me et
- vos besoins peuvent &ecirc;tre diff&eacute;rents, il ne r&eacute;pond peut-&ecirc;tre pas &agrave;
- toutes vos questions, et l'auteur ne peut pas &ecirc;tre tenu pour
- responsable des d&eacute;g&acirc;ts que vous causeriez &agrave; votre syst&egrave;me ou des
- donn&eacute;es que vous auriez perdues en essayant de suivre les indications
- donn&eacute;es ici.</para>
-
- <para>Ce guide a &eacute;t&eacute; &agrave; l'origine &eacute;crit pour le serveur SLIP de la
- version 1.x de FreeBSD. Il a &eacute;t&eacute; adapt&eacute; pour prendre en compte les
- modifications de chemins d'acc&egrave;s et la suppression des indicateurs
- de compression de l'interface SLIP des premi&egrave;res versions 2.x de
- FreeBSD, qui sont apparemment les seuls diff&eacute;rences importantes entre
- ces versions. Si vous trouvez des erreurs, envoyez s'il
- vous pla&icirc;t &agrave; l'auteur un courrier &eacute;lectronique suffisamment d&eacute;taill&eacute;
- pour qu'il puisse les corriger.</para>
-
- <sect2 id="slips-prereqs">
- <title>Pr&eacute;requis</title>
-
- <para>Ce document est tr&egrave;s technique, il vous faut donc quelques
- connaissances de base. On suppose que vous connaissez le protocole
- r&eacute;seau TCP/IP, et, en particulier, l'adressage des r&eacute;seaux et
- des noeuds, les masques de r&eacute;seau, les sous-r&eacute;seaux, le routage et
- les protocoles de routage tels que RIP. Ce sont des choses que vous
- devez conna&icirc;tre pour configurer les services SLIP sur un serveur
- de connexions, et si ce n'est pas le cas, lisez s'il vous pla&icirc;t
- <emphasis>TCP/IP Network Administration</emphasis> par Craig Hunt
- chez O'Reilly &amp; Associates, Inc. (ISBN
- 0-937175-82-X)<footnote><para>N.d.T.: traduit en fran&ccedil;ais sous le
- titre &ldquo;TCP/IP, Administration de r&eacute;seau TCP/IP&rdquo;, chez
- le m&ecirc;me &eacute;diteur</para></footnote>, ou le livre de Douglas Comer
- sur le protocole TCP/IP.</para>
-
- <para>On suppose aussi que vous avez d&eacute;j&agrave; install&eacute; vos modems et
- configur&eacute; les fichiers syst&egrave;me appropri&eacute;s pour permettre l'ouverture
- de session via vos modems. Si vous ne l'avez pas encore fait,
- reportez-vous au guide de configuration des connexions entrantes;
- si vous disposez d'un navigateur World Wide Web, parcourez la liste
- des guides sur <ulink
- url="http://www.freebsd.org/">http://www.freebsd.org/</ulink>;
- sinon, regardez l&agrave; o&ugrave; vous avez trouv&eacute; le pr&eacute;sent document et
- cherchez un document appel&eacute; <filename>dialup.txt</filename> o&ugrave;
- quelque chose du m&ecirc;me genre. Vous pouvez aussi consulter les pages
- de manuel de
- <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> pour plus d'informations sur le pilote de port s&eacute;rie
- et de <citerefentry><refentrytitle>ttys</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum></citerefentry> et <citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></citerefentry> en
- ce qui concerne la configuration du syst&egrave;me pour qu'il autorise
- des connexions de l'ext&eacute;rieur par modem et peut-&ecirc;tre aussi celles de
- <citerefentry><refentrytitle>stty</refentrytitle><manvolnum>1</manvolnum></citerefentry> pour avoir des renseignements sur le param&egrave;trage des ports
- s&eacute;rie (comme <literal>clocal</literal> pour les interfaces s&eacute;rie
- directement connect&eacute;es).</para>
-
- </sect2>
-
- <sect2>
- <title>Br&egrave;ve vue d'ensemble</title>
-
- <para>Une configuration typique d'utilisation de FreeBSD comme
- serveur SLIP fonctionne de la fa&ccedil;on suivante: un utilisateur SLIP
- appelle votre serveur SLIP FreeBSD et ouvre une session sous un
- IDentifiant utilisateur SLIP particulier qui lance
- <filename>/usr/sbin/sliplogin</filename> &agrave; la place de
- l'interpr&eacute;teur de commandes. Le programme
- <command>sliplogin</command> consulte le fichier
- <filename>/etc/sliphome/slip.hosts</filename> pour trouver une ligne
- correspondant &agrave; cet utilisateur, et s'il la trouve, connecte la
- ligne s&eacute;rie &agrave; une interface SLIP disponible et lance ensuite la
- proc&eacute;dure <filename>/etc/sliphome/slip.login</filename> pour
- configurer cette interface SLIP.</para>
-
- <sect3>
- <title>Un exemple d'ouverture de session sur un serveur SLIP</title>
-
- <para>Par exemple, si <username>Shelmerg</username> est un
- IDentifiant utilisateur SLIP, l'entr&eacute;e pour
- <username>Shelmerg</username> dans
- <filename>/etc/master.passwd</filename> ressemblera &agrave; ce qui
- suit (sinon que tout sera sur une seule ligne):</para>
-
- <programlisting>
-Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting>
-
- <para>Quand <username>Shelmerg</username> ouvre une session,
- <command>sliplogin</command> cherche dans
- <filename>/etc/sliphome/slip.hosts</filename> la ligne qui
- contient cet IDentifiant utilisateur; il peut, par exemple, y
- avoir dans <filename>/etc/sliphome/slip.hosts</filename> la
- ligne:</para>
-
- <programlisting>
-Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
-
- <para><command>sliplogin</command> la trouvera alors, affectera la
- ligne s&eacute;rie &agrave; la prochaine interface SLIP disponible et ex&eacute;cutera
- <filename>/etc/sliphome/slip.login</filename> avec les arguments
- suivants:</para>
-
- <programlisting>
-/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
-
- <para>Si tout se passe bien,
- <filename>/etc/sliphome/slip.login</filename> ex&eacute;cutera un
- <command>ifconfig</command> sur l'interface SLIP que s'est
- attribu&eacute;e <command>sliplogin</command>
- (l'interface slip 0, dans l'exemple ci-dessus, qui est le premier
- param&egrave;tre pass&eacute; &agrave; <filename>slip.login</filename>)
- pour d&eacute;finir l'adresse IP locale (<hostid>dc-slip</hostid>),
- l'adresse IP de la machine &eacute;loign&eacute;e (<hostid>sl-helmer</hostid>),
- le masque de sous-r&eacute;seau de l'interface SLIP
- (<hostid role="netmask">0xfffffc00</hostid>) et tout autre
- indicateur suppl&eacute;mentaire (<literal>autocomp</literal>). Si
- quelque chose se passe mal, <command>sliplogin</command>
- fournit en g&eacute;n&eacute;ral des messages d'informations valables en
- utilisant la fonctionnalit&eacute; de trace du &ldquo;d&eacute;mon&rdquo;
- <command>syslog</command>, qui les enregistre habituellement dans
- <filename>/var/log/messages</filename>
- (reportez-vous au pages de manuel de <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry> et
- <citerefentry><refentrytitle>syslog.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, et regardez peut-&ecirc;tre aussi dans
- <filename>/etc/syslog.conf</filename> pour voir o&ugrave;
- <command>syslogd</command> enregistre les messages).</para>
-
- <para>OK, assez d'exemples&nbsp;-&nbsp;attelons-nous maintenant &agrave; la
- configuration du syst&egrave;me.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Configuration du noyau</title>
-
- <para>Les noyaux par d&eacute;faut de FreeBSD d&eacute;finissent habituellement
- deux interfaces SLIP (<devicename>sl0</devicename> et
- <devicename>sl1</devicename>); vous pouvez v&eacute;rifier avec
- <command>netstat -i</command> si ces interfaces sont d&eacute;finies
- dans votre noyau.</para>
-
- <para>Exemple de r&eacute;sultats de la commande
- <command>netstat -i</command>:</para>
-
- <informalexample>
- <screen>Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
-ed0 1500 &lt;Link&gt;0.0.c0.2c.5f.4a 291311 0 174209 0 133
-ed0 1500 138.247.224 ivory 291311 0 174209 0 133
-lo0 65535 &lt;Link&gt; 79 0 79 0 0
-lo0 65535 loop localhost 79 0 79 0 0
-sl0* 296 &lt;Link&gt; 0 0 0 0 0
-sl1* 296 &lt;Link&gt; 0 0 0 0 0</screen>
- </informalexample>
-
- <para>Les interfaces <devicename>sl0</devicename> et
- <devicename>sl1</devicename> apparaissent dans les sorties de
- <command>netstat -i</command>, il y a donc deux interfaces
- SLIP dans le noyau. (Les ast&eacute;risques apr&egrave;s <literal>sl0</literal>
- et <literal>sl1</literal> indiquent que les interfaces sont
- &ldquo;inactives&rdquo;&nbsp;-&nbsp;down.)</para>
-
- <para>Cependant, les noyaux par d&eacute;faut de FreeBSD ne sont pas
- configur&eacute;s pour transmettre des paquets (i.e., votre machine
- FreeBSD ne fonctionnera pas comme routeur) &agrave; cause des
- sp&eacute;cifications impos&eacute;es par les RFC Internet (reportez-vous &agrave; la
- RFC's 1009 [Sp&eacute;cifications des passerelles Internet], 1122
- [Sp&eacute;cifications des machines Internet&nbsp;-&nbsp;Couches de
- communication], et peut-&ecirc;tre aussi 1127 [Une perspective sur le
- RFCs de sp&eacute;cifications des machines]), donc, si vous voulez que
- votre serveur SLIP serve de routeur, vous devez modifier votre
- fichier <filename>/etc/rc.conf</filename> (appel&eacute;
- <filename>/etc/sysconfig</filename> dans les versions de
- FreeBSD ant&eacute;rieures &agrave; la 2.2.2) et affecter <option>YES</option>
- &agrave; la variable <literal>gateway</literal>. Si vous avez un syst&egrave;me
- plus ancien qui n'a m&ecirc;me pas de fichier
- <filename>/etc/sysconfig</filename>, ajoutez alors la commande:
-
- <programlisting>
-sysctl -w net.inet.ip.forwarding = 1</programlisting> &agrave; votre fichier
- <filename>/etc/rc.local</filename>.</para>
-
- <para>Vous devrez alors red&eacute;marrer votre syst&egrave;me pour que ce nouveau
- param&egrave;trage soit pris en compte.</para>
-
- <para>Vous remarquerez &agrave; la fin du fichier de configuration par
- d&eacute;faut du noyau (<filename>/sys/i386/conf/GENERIC</filename>)
- la ligne:</para>
-
- <programlisting>
-pseudo-device sl 2</programlisting>
-
- <para>C'est cette ligne qui d&eacute;finit le nombre de p&eacute;riph&eacute;riques
- SLIP disponibles dans le noyau; le nombre en fin de ligne est le
- nombre maximum de connexions SLIP qui peuvent &ecirc;tre simultan&eacute;ment
- actives.</para>
-
- <para>Reportez-vous s'il vous pla&icirc;t au chapitre
- <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link>
- pour des indications sur la mani&egrave;re de configurer votre
- noyau.</para>
-
- </sect2>
-
- <sect2>
- <title>Configuration de sliplogin</title>
-
- <para>Comme on l'a dit plus haut, il y a trois fichiers dans le
- r&eacute;pertoire <filename>/etc/sliphome</filename> qui servent &agrave; la
- configuration de <filename>/usr/sbin/sliplogin</filename> (voyez
- <citerefentry><refentrytitle>sliplogin</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour avoir les pages de manuel de
- <command>sliplogin</command>):
- <filename>slip.hosts</filename>, qui d&eacute;finit les utilisateurs SLIP
- et les adresses IP qui leur sont affect&eacute;es;
- <filename>slip.login</filename>, qui ne fait en g&eacute;n&eacute;ral que
- configurer l'interface SLIP; et (facultatif)
- <filename>slip.logout</filename>,
- qui fait le travail inverse de <filename>slip.login</filename>
- quand la connexion s&eacute;rie est termin&eacute;e.</para>
-
- <sect3>
- <title>Configuration de <filename>slip.hosts</filename></title>
-
- <para><filename>/etc/sliphome/slip.hosts</filename> contient des
- lignes avec au moins quatre champs, s&eacute;par&eacute;s par des
- blancs:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>L'IDentifiant d'utilisateur SLIP,</para>
- </listitem>
-
- <listitem>
- <para>L'addresse locale (locale au serveur SLIP) de la
- liaison SLIP,</para>
- </listitem>
-
- <listitem>
- <para>L'adresse de l'autre extr&eacute;mit&eacute; de la liaison
- SLIP,</para>
- </listitem>
-
- <listitem>
- <para>Le masque de r&eacute;seau.</para>
- </listitem>
-
- </itemizedlist>
-
-
- <para>Les adresses locale et &eacute;loign&eacute;e peuvent &ecirc;tre des noms de
- machines (qui seront converties en adresses IP via
- <filename>/etc/hosts</filename> ou par le service de noms de
- domaines, selon ce que contient
- <filename>/etc/host.conf</filename>), et je crois que le masque
- de r&eacute;seau peut &ecirc;tre un nom qui sera converti en consultant le
- fichier <filename>/etc/networks</filename>. Pour notre exemple
- plus haut, <filename>/etc/sliphome/slip.hosts</filename>
- contiendrait:</para>
-
- <programlisting>
-#
-# login local-addr remote-addr mask opt1 opt2
-# (normal,compress,noicmp)
-#
-Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting>
-
- <para>La ligne se termine par une ou plusieurs des options:</para>
-
- <itemizedlist>
-
- <listitem>
- <para><option>normal</option>&nbsp;-&nbsp;pas de compression
- des en-t&ecirc;tes,</para>
- </listitem>
-
- <listitem>
- <para><option>compress</option>&nbsp;-&nbsp;compression des
- en-t&ecirc;tes,</para>
- </listitem>
-
- <listitem>
- <para><option>autocomp</option>&nbsp;-&nbsp;compression des
- en-t&ecirc;tes si la machine distante l'autorise,</para>
- </listitem>
-
- <listitem>
- <para><option>noicmp</option>&nbsp;-&nbsp;interdire les
- paquets ICMP (de sorte que les paquets &ldquo;ping&rdquo;
- seront ignor&eacute;s au lieu de consommer votre bande
- passante).</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Remarquez que le programme <command>sliplogin</command> des
- premi&egrave;res versions de FreeBSD 2 ignorait les options que
- FreeBSD 1.x reconnaissait, de sorte que les options
- <option>normal</option>, <option>compress</option>,
- <option>autocomp</option> et <option>noicmp</option> restaient
- sans effet, jusqu'&agrave; ce que leur support soit ajout&eacute; &agrave;
- FreeBSD 2.2 (&agrave; moins que votre proc&eacute;dure
- <filename>slip.login</filename> n'inclue le code n&eacute;cessaire &agrave;
- la prise en compte de ces indicateurs).</para>
-
- <para>Les choix des adresses pour les deux extr&eacute;mit&eacute;s des liaisons
- SLIP d&eacute;pend du fait que vous leur d&eacute;diiez un sous-r&eacute;seau ou que
- vous comptiez utiliser &ldquo;proxy ARP&rdquo; sur votre serveur
- SLIP (ce n'est pas du &ldquo;vrai&rdquo; proxy ARP, mais c'est
- la terminologie que nous utiliserons dans ce document pour le
- d&eacute;signer). Si vous n'&ecirc;tes pas s&ucirc;r de la m&eacute;thode &agrave; choisir ou de
- la facon d'assigner les adresses IP, r&eacute;f&eacute;rez-vous s'il vous pla&icirc;t
- aux ouvrages mentionn&eacute;s &agrave; la section <link
- linkend="slips-prereqs">Pr&eacute;requis</link> et/ou consultez
- l'administrateur de votre r&eacute;seau IP.</para>
-
- <para>Si vous comptez d&eacute;dier un sous-r&eacute;seau IP &agrave; vos clients SLIP,
- vous devrez d&eacute;finir l'adresse de sous-r&eacute;seau &agrave; partir de
- l'adresse de r&eacute;seau qui vous est affect&eacute;e et attribuer &agrave; chacun
- de vos clients SLIP une adresse IP sur ce sous-r&eacute;seau. Vous devrez
- alors probablement configurer une route statique vers votre
- sous-r&eacute;seau SLIP via votre serveur SLIP, sur votre routeur le
- plus proche, ou installer <command>gated</command> sur votre
- serveur SLIP FreeBSD et le configurer pour qu'il dialogue avec
- les protocoles appropri&eacute;s avec les autres routeurs, pour leur
- annoncer la route de votre serveur SLIP vers le sous-r&eacute;seau
- SLIP.</para>
-
- <para>Sinon, si vous utilisez la m&eacute;thode &ldquo;proxy ARP&rdquo;,
- vous devrez assigner &agrave; vos client SLIP des adresses sur le
- sous-r&eacute;seau Ethernet de votre serveur SLIP, et vous devrez
- aussi adapter vos proc&eacute;dures
- <filename>/etc/sliphome/slip.login</filename> et
- <filename>/etc/sliphome/slip.logout</filename> pour qu'elles
- utilisent
- <citerefentry><refentrytitle>arp</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour g&eacute;rer les entr&eacute;es proxy-ARP dans la table ARP de
- votre serveur SLIP.</para>
-
- </sect3>
-
- <sect3>
- <title>Configuration de <filename>slip.login</filename></title>
-
- <para>Le fichier <filename>/etc/sliphome/slip.login</filename>
- ressemble typiquement &agrave; ceci:</para>
-
- <programlisting>
-#!/bin/sh -
-#
-# @(#)slip.login 5.1 (Berkeley) 7/1/90
-
-#
-# proc&eacute;dure d'ouverture de session g&eacute;n&eacute;rique pour une liaison slip
-# sliplogin l'appelle avec les param&egrave;tres:
-#
-# 1 2 3 4 5 6 7-n
-# interface vitesse nom adresse-locale adresse-&eacute;loign&eacute;e masque optionnels
-#
-/sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting>
-
- <para>Ce fichier <filename>slip.login</filename> ne fait
- qu'ex&eacute;cuter <command>ifconfig</command> sur l'interface
- SLIP appropri&eacute;e avec comme param&egrave;tres les adresses locales
- et distantes et le masque de r&eacute;seau de l'interface SLIP.</para>
-
- <para>Si vous avez choisi la m&eacute;thode &ldquo;proxy ARP&rdquo;
- (au lieu d'affecter un sous-r&eacute;seau distinct &agrave; vos clients
- SLIP), votre fichier
- <filename>/etc/sliphome/slip.login</filename> devra ressembler
- &agrave;:</para>
-
- <programlisting>
-#!/bin/sh -
-#
-# @(#)slip.login 5.1 (Berkeley) 7/1/90
-
-#
-# proc&eacute;dure d'ouverture de session g&eacute;n&eacute;rique pour une liaison slip
-# sliplogin l'appelle avec les param&egrave;tres:
-#
-# 1 2 3 4 5 6 7-n
-# interface vitesse nom adresse-locale adresse-&eacute;loign&eacute;e masque optionnels
-#
-/sbin/ifconfig sl$1 inet $4 $5 netmask $6
-#
-# r&eacute;pondre aux requ&ecirc;tes ARP concernant le client SLIP
-# pour notre adresse Ethernet
-#
-/usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting>
-
- <para>La ligne suppl&eacute;mentaire
- <command>arp -s &#36;5 00:11:22:33:44:55 pub</command>
- de ce fichier <filename>slip.login</filename> cr&eacute;e une entr&eacute;e
- ARP dans la table ARP du serveur SLIP. Cette entr&eacute;e ARP fait
- que le serveur SLIP r&eacute;pond en donnant sa propre adresse MAC
- lorsqu'un autre noeud IP du r&eacute;seau Ethernet demande &agrave; parler
- avec le client SLIP qui a cette adresse IP.</para>
-
- <para>Dans l'exemple donn&eacute; ci-dessus, remplacez bien l'adresse
- MAC Ethernet (<hostid role="mac">00:11:22:33:44:55</hostid>) par
- l'adresse MAC de la carte Ethernet de votre syst&egrave;me, sans quoi
- votre &ldquo;proxy ARP&rdquo; ne fonctionnera d&eacute;finitivement pas!
- Vous pouvez conna&icirc;tre cette adresse MAC en regardant le r&eacute;sultat
- de la commande <command>netstat -i</command>; la seconde ligne des
- sorties doit ressembler &agrave; ce qui suit:</para>
-
- <informalexample>
- <screen>ed0 1500 &lt;Link&gt;0.2.c1.28.5f.4a 191923 0 129457 0 116
- </screen>
- </informalexample>
-
- <para>Cela indique que l'adresse MAC Ethernet de ce syst&egrave;me
- est <hostid role="mac">00:02:c1:28:5f:4a</hostid>&nbsp;-&nbsp;il
- faut remplacer les &ldquo;.&rdquo; dans les adresses MAC Ethernet
- que donne <command>netstat -i</command> par des &ldquo;:&rdquo;
- et ajouter un &ldquo;0&rdquo; devant les valeurs hexad&eacute;cimales
- qui ne sont donn&eacute;es que sur un seul caract&egrave;re pour obtenir des
- adresses telles que
- <citerefentry><refentrytitle>arp</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- les demande; voyez les pages de manuel de
- <citerefentry><refentrytitle>arp</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour avoir des informations compl&egrave;tes sur ces
- conventions.</para>
-
- <note>
- <para>Quand vous cr&eacute;ez les fichiers
- <filename>/etc/sliphome/slip.login</filename>&nbsp;-&nbsp;et
- <filename>/etc/sliphome/slip.logout</filename>&nbsp;-&nbsp;, le
- bit &ldquo;ex&eacute;cutable&rdquo; doit &ecirc;tre positionn&eacute;
- (i.e., <command>chmod 755 /etc/sliphome/slip.login
- /etc/sliphome/slip.logout</command>), sinon
- <command>sliplogin</command> ne pourra pas ex&eacute;cuter la
- proc&eacute;dure.</para>
- </note>
- </sect3>
-
- <sect3>
- <title>Configuration de <filename>slip.logout</filename></title>
-
- <para><filename>/etc/sliphome/slip.logout</filename> n'est pas
- strictement indispensable (&agrave; moins que vous n'impl&eacute;mentiez
- &ldquo;proxy ARP&rdquo;), mais, si vous d&eacute;cidez de la cr&eacute;er,
- voici un exemple de proc&eacute;dure
- <filename>slip.logout</filename> &eacute;l&eacute;mentaire:</para>
-
- <programlisting>
-#!/bin/sh -
-#
-# slip.logout
-#
-# proc&eacute;dure de fermeture de session g&eacute;n&eacute;rique pour une liaison slip
-# sliplogin l'appelle avec les param&egrave;tres:
-#
-# 1 2 3 4 5 6 7-n
-# interface vitesse nom adresse-locale adresse-&eacute;loign&eacute;e masque optionnels
-#
-/sbin/ifconfig sl$1 down</programlisting>
-
- <para>Si vous utilisez &ldquo;proxy ARP&rdquo;, vous voudrez que
- <filename>/etc/sliphome/slip.logout</filename> supprime l'entr&eacute;e
- ARP pour le client SLIP:</para>
-
- <programlisting>
-#!/bin/sh -
-#
-# slip.logout
-#
-# proc&eacute;dure de fermeture de session g&eacute;n&eacute;rique pour une liaison slip
-# sliplogin l'appelle avec les param&egrave;tres:
-#
-# 1 2 3 4 5 6 7-n
-# interface vitesse nom adresse-locale adresse-&eacute;loign&eacute;e masque optionnels
-#
-/sbin/ifconfig sl$1 down
-# Cessez de r&eacute;pondre aux requ&ecirc;tes ARP concernant le client SLIP
-/usr/sbin/arp -d $5</programlisting>
-
- <para><command>arp -d &#36;5</command> supprime l'entr&eacute;e ARP que la
- proc&eacute;dure <filename>slip.login</filename> pour &ldquo;proxy
- arp&rdquo; a ajout&eacute; quand le client SLIP a ouvert la
- session.</para>
-
- <para>Il n'est pas inutile de r&eacute;p&eacute;ter: v&eacute;rifiez que le bit
- &ldquo;ex&eacute;cutable&rdquo; de la proc&eacute;dure
- <filename>/etc/sliphome/slip.logout</filename> est positionn&eacute;
- apr&egrave;s que vous l'ayez cr&eacute;&eacute;e (i.e., <command>chmod
- 755 /etc/sliphome/slip.logout</command>).</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>A propos du routage</title>
-
- <para>Si vous n'utilisez pas &ldquo;proxy ARP&rdquo; pour router
- les paquets entre vos clients SLIP et le reste de votre r&eacute;seau
- (et peut-&ecirc;tre l'Internet), vous devrez probablement soit ajouter
- des routes statiques vers votre(vos) routeur(s) par d&eacute;faut le(s)
- plus proche(s) pour router le sous-r&eacute;seau de vos clients SLIP via
- votre serveur SLIP, soit installer et configurer
- <command>gated</command> sur votre serveur SLIP FreeBSD de sorte
- qu'il fournisse &agrave; vos routeurs, en utilisant les protocoles de
- routage appropri&eacute;s, les informations qui concernent votre
- sous-r&eacute;seau SLIP.</para>
-
- <sect3>
- <title>Routes statiques</title>
-
- <para>Ajouter des routes statiques vers vos routeurs les plus
- proches peut &ecirc;tre probl&eacute;matique (voire impossible, si vous n'avez
- pas les autorisations pour ...). Si vous avez un r&eacute;seau avec
- des routeurs divers, certains d'entre eux, tels les Cisco et les
- Proteon, devront non seulement avoir la route statique vers votre
- sous-r&eacute;seau SLIP, mais devront aussi savoir quelles routes
- statiques ils doivent annoncer aux autres routeurs, il faudra
- donc quelques comp&eacute;tences, de la mise au point ou de la
- &ldquo;bidouille&rdquo; pour que vos routes statiques
- fonctionnent.</para>
-
- </sect3>
-
- <sect3>
- <title>Utiliser <command>gated</command></title>
-
- <para>Une alternative aux maux de t&ecirc;te que provoquent les routes
- statiques est d'installer <command>gated</command> sur votre
- serveur SLIP FreeBSD et de le configurer pour qu'il utilise les
- protocoles de routage appropri&eacute;s (RIP/OSPF/BGP/EGP) pour annoncer
- aux autres routeurs votre sous-r&eacute;seau SLIP. Vous pouvez utiliser
- la version de <command>gated</command> du
- <link linkend="ports">catalogue des logiciels port&eacute;s</link> ou le
- t&eacute;l&eacute;charger depuis <ulink
- url="ftp://ftp.gated.merit.edu/research.and.development/gated/">le site ftp anonyme de GateD</ulink> et
- le compiler vous-m&ecirc;me; Je crois que la derni&egrave;re version au moment
- o&ugrave; j'&eacute;cris ceci est <filename>gated-R3_5Alpha_8.tar.Z</filename>,
- qui inclut la version pour FreeBSD &ldquo;pr&ecirc;te-&agrave;-l'usage&rdquo;.
- Des informations compl&egrave;tes et la documentation de
- <command>gated</command> sont disponibles
- sur le Web sur le site du
- <ulink url="http://www.gated.merit.edu/">Merit GateD Consortium</ulink>.
- Compilez-le et installez-le, et cr&eacute;ez ensuite un fichier
- <filename>/etc/gated.conf</filename> pour le configurer; voici un
- exemple, semblable &agrave; celui que l'auteur a utilis&eacute; sur un serveur
- SLIP FreeBSD:</para>
-
- <programlisting>
-#
-# fichier de configuration de gated dc.dsu.edu;
-# pour la version 3.5alpha5 de gated
-# simplement diffuser les informations RIP pour xxx.xxx.yy
-# via l'interface Ethernet "ed"
-#
-# options de trace
-#
-traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;
-
-rip yes {
- interface sl noripout noripin ;
- interface ed ripin ripout version 1 ;
- traceoptions route ;
-} ;
-
-#
-# fournir des informations de trace sur l'interface au noyau:
-kernel {
- traceoptions remnants request routes info interface ;
-} ;
-
-#
-# Propager la route vers xxx.xxx.yy via l'Ethernet interface et RIP
-#
-
-export proto rip interface ed {
- proto direct {
- <replaceable>xxx.xxx.yy</replaceable> mask 255.255.252.0 metric 1; # SLIP connections
- } ;
-} ;
-
-#
-# Accepter les routes de RIP via les interfaces Ethernet "ed"
-
-import proto rip interface ed {
- all ;
-} ;</programlisting>
-
- <para>L'exemple ci-dessus de fichier <filename>gated.conf</filename>
- diffuse l'information de routage concernant le sous-r&eacute;seau SLP
- <replaceable>xxx.xxx.yy</replaceable> en utilisant RIP sur
- l'interface Ethernet; si vous utilisez un pilote Ethernet autre
- que <devicename>ed</devicename>, vous devrez modifier en
- cons&eacute;quence les r&eacute;f&eacute;rences &agrave; l'interface
- <devicename>ed</devicename>. Ce fichier d'exemple active aussi les
- traces sur <filename>/var/tmp/gated.output</filename> pour pouvoir
- d&eacute;boguer le fonctionnement de <command>gated</command>; vous
- pouvez certainement d&eacute;sactiver ces options de trace si
- <command>gated</command> fonctionne comme vous le voulez. Vous
- devrez remplacer les <replaceable>xxx.xxx.yy</replaceable> par
- l'adresse r&eacute;seau de votre propre sous-r&eacute;seau SLIP (veillez &agrave;
- remplacer aussi le masque de r&eacute;seau dans la clause
- <literal>proto direct</literal>).</para>
-
- <para>Une fois que vous avez compil&eacute; et install&eacute;
- <command>gated</command> et cr&eacute;er son fichier de configuration,
- vous devrez lancer <command>gated</command> au lieu de
- <command>routed</command> sur votre syst&egrave;me FreeBSD; modifiez les
- param&egrave;tres de d&eacute;marrage de <filename>routed/gated</filename> dans
- <filename>/etc/netstart</filename> comme requis par votre
- syst&egrave;me. Consultez s'il vous pla&icirc;t les pages de manuel de
- <command>gated</command> pour avoir des informations sur les
- param&egrave;tres de la ligne de commande de
- <command>gated</command>.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Remerciements</title>
-
- <para>Merci aux personnes suivantes pour leurs commentaires et leurs
- conseils &agrave; propos de ce guide:</para>
-
- <variablelist>
- <varlistentry><term>&a.wilko;</term>
- <listitem>
- <para></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Piero Serini</term>
-
- <listitem>
- <para><email>Piero@Strider.Inet.IT</email></para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
- </sect1>
- </chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml
deleted file mode 100755
index 0767427ef8..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml
+++ /dev/null
@@ -1,5375 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<chapter id="printing">
- <title>Imprimer</title>
-
- <para><emphasis>Contribution de &a.kelly;<!-- <br> -->30 Septembre
- 1995</emphasis></para>
- &trans.a.haby;
-
- <para>Pour imprimer avec FreeBSD, vous devrez configurer l'utilisation de
- vos imprimantes avec le gestionnaire de queues d'impression de
- Berkeley, connu aussi sous le nom de gestionnaire d'impression
- (&ldquo;spooling system&rdquo;) LPD (&ldquo;Line Printer
- Daemon&rdquo;). C'est le gestionnaire d'impression standard de BSD.
- Cette section d&eacute;crit le gestionnaire d'impression LPD&nbsp;-&nbsp;souvent
- abr&eacute;g&eacute; en LPD.</para>
-
- <para>Si vous connaissez d&eacute;j&agrave; LPD ou un autre gestionnaire de files
- d'impression, vous pouvez passer directement &agrave; la section
- <link linkend="printing-intro-setup">Configurer le gestionnaire
- d'impression</link>.</para>
-
- <sect1 id="printing-intro-spooler">
- <title>Que fait le gestionnaire d'impression ?</title>
-
- <para>LPD contr&ocirc;le tout ce qui concerne les imprimantes. Il assume
- un certain nombre de fonctions:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Il contr&ocirc;le l'acc&egrave;s aux imprimantes locales et aux imprimantes
- connect&eacute;es &agrave; d'autres machines du r&eacute;seau.</para>
- </listitem>
-
- <listitem>
- <para>Il permet aux utilisateurs de soumettre des fichiers &agrave;
- l'impression; Ces demandes d'impression sont appel&eacute;es
- <emphasis>travaux</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>Il emp&ecirc;che l'acc&egrave;s simultan&eacute; de plusieurs utilisateurs &agrave; une
- m&ecirc;me imprimante en g&eacute;rant une <emphasis>queue</emphasis> pour
- chaque imprimante.</para>
- </listitem>
-
- <listitem>
- <para>Il peut imprimer <emphasis>des pages d'en-t&ecirc;te</emphasis>
- (appel&eacute;es aussi <emphasis>banni&egrave;res</emphasis> ou pages
- &ldquo;burst&rdquo; (qui sautent aux yeux) de fa&ccedil;on &agrave; ce que
- les utilisateurs retrouvent facilement leurs travaux au milieu
- d'une pile de documents imprim&eacute;s.</para>
- </listitem>
-
- <listitem>
- <para>Il g&egrave;re les param&egrave;tres de communication pour les imprimantes
- raccord&eacute;es sur un port s&eacute;rie.</para>
- </listitem>
-
- <listitem>
- <para>Il peut envoyer des travaux au gestionnaire LPD d'une autre
- machine du r&eacute;seau.</para>
- </listitem>
-
- <listitem>
- <para>Il peut ex&eacute;cuter des filtres pour formater les impressions
- en fonction des possibilit&eacute;s et du langage compris par les
- diff&eacute;rentes imprimantes.</para>
- </listitem>
-
- <listitem>
- <para>Il peut comptabiliser l'utilisation d'une imprimante.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Avec un fichier de configuration et en fournissant les programmes
- de filtrage sp&eacute;cifiques, vous pouvez confier &agrave; LPD tout ou une partie
- de ces t&acirc;ches, pour une large gamme de mat&eacute;riels d'impression.</para>
- </sect1>
-
- <sect1 id="printing-intro-why">
- <title>Pourquoi faut-il utiliser le gestionnaire d'impression ?</title>
-
- <para>Si vous &ecirc;tes l'unique utilisateur de votre syst&egrave;me, vous pouvez
- vous demander pourquoi vous devriez vous compliquer la vie en
- utilisant le gestionnaire d'impression, alors que vous n'avez pas
- besoin de contr&ocirc;le d'acc&egrave;s, de pages d'en-t&ecirc;te ou de comptabilit&eacute;.
- Bien qu'il soit possible d'acc&eacute;der directement &agrave; l'imprimante, il
- vaut mieux passer malgr&eacute; tout par le gestionnaire d'impression parce
- que:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>LPD imprime les travaux en t&acirc;ches de fond; vous n'avez pas
- besoin d'attendre que l'imprimante ait re&ccedil;u vos donn&eacute;es.</para>
- </listitem>
-
- <listitem>
- <para>LPD peut appliquer des filtres aux travaux pour ajouter des
- en-t&ecirc;tes avec la date et l'heure ou convertir des fichiers d'un
- format particulier (comme les fichiers DVI de TeX) vers un format
- compr&eacute;hensible par l'imprimante. Vous n'avez pas besoin de faire
- tout cela &agrave; la main.</para>
- </listitem>
-
- <listitem>
- <para>De nombreux logiciels libres ou commerciaux disposent d'une
- fonctionnalit&eacute; d'impression pr&eacute;vue pour utiliser le gestionnaire
- d'impression. En installant le gestionnaire d'impression, vous
- aurez moins de probl&egrave;mes avec les logiciels que vous installerez
- ensuite ou qui sont d&eacute;j&agrave; sur votre syst&egrave;me.</para>
- </listitem>
-
- </itemizedlist>
-
- </sect1>
-
- <sect1 id="printing-intro-setup">
- <title>Configurer le gestionnaire d'impression</title>
-
- <para>Pour imprimer avec le gestionnaire d'impression, il vous faut
- configurer et vos imprimantes et le logiciel LPD. Ce document d&eacute;crit
- les deux &eacute;tapes de cette configuration:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Lisez la section
- <link linkend="printing-simple">Configuration simple d'une imprimante</link>
- pour apprendre &agrave; connecter une imprimante, dire &agrave; LPD comment
- communiquer avec et imprimer des fichiers texte.</para>
- </listitem>
-
- <listitem>
- <para>Lisez la section
- <link linkend="printing-advanced">Configuration avanc&eacute;e d'une imprimante</link>
- pour savoir comment imprimer
- diff&eacute;rents formats de fichiers, imprimer des pages d'en-t&ecirc;te,
- imprimer via le r&eacute;seau, contr&ocirc;ler l'acc&egrave;s aux imprimantes et
- comptabiliser leur utilisation.</para>
- </listitem>
-
- </itemizedlist>
-
- </sect1>
-
- <sect1 id="printing-simple">
- <title>Configuration simple d'une imprimante</title>
-
- <para>Cette section vous explique comment configurer l'imprimante et le
- logiciel LPD pour pouvoir imprimer. Elle vous fournit les informations
- de base:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>La section <link linkend="printing-hardware">Configuration du mat&eacute;riel</link>
- vous donne des indications sur la
- connexion de l'imprimante &agrave; votre ordinateur.</para>
- </listitem>
-
- <listitem>
- <para>La section <link linkend="printing-software">Configuration du logiciel</link>
- vous explique comment renseigner le fichier
- de configuration <filename>/etc/printcap</filename> de LPD.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Si vous installez une imprimante qui utilise une protocole r&eacute;seau
- pour recevoir les donn&eacute;es &agrave; imprimer et non une imprimante sur
- l'interface s&eacute;rie ou parall&egrave;le, reportez-vous &agrave; la section
- <link linkend="printing-advanced-network-net-if">Imprimantes avec une interface
- r&eacute;seau</link>.</para>
-
- <para>Bien que cette section soit intitul&eacute;e &ldquo;Configuration simple
- d'une imprimante&rdquo;, elle est en fait assez complexe. Arriver &agrave; faire
- fonctionner l'imprimante avec votre ordinateur et le gestionnaire
- d'impression LPD est le plus difficile. Les options avanc&eacute;es comme les
- pages d'en-t&ecirc;te et la comptabilit&eacute; sont faciles &agrave; mettre en place une
- fois que l'impression fonctionne.</para>
-
- <sect2 id="printing-hardware">
- <title>Configuration du mat&eacute;riel</title>
-
- <para>Cette section vous d&eacute;taille les diff&eacute;rentes fa&ccedil;ons de
- connecter une imprimante &agrave; votre PC. Elle traite des types de
- ports et de c&acirc;bles et de la mani&egrave;re de configurer votre noyau
- pour que FreeBSD puisse communiquer avec l'imprimante.</para>
-
- <para>Si votre imprimante est d&eacute;j&agrave; connect&eacute;e et que vous pouvez
- imprimer avec un autre syst&egrave;me d'exploitation, vous pouvez
- peut-&ecirc;tre passer directement &agrave; la section
- <link linkend="printing-software">Configuration du logiciel</link>.</para>
-
- <sect3 id="printing-ports">
- <title>Ports et C&acirc;bles</title>
-
- <para>Pratiquement toutes les imprimantes actuelles pour PC
- supportent l'une ou l'autre interface suivante
- &nbsp;-&nbsp;ou les deux:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Les interfaces <emphasis>s&eacute;rie</emphasis> utilisent un
- des ports s&eacute;rie de votre ordinateur pour envoyer des
- donn&eacute;es &agrave; l'imprimante. Les interfaces s&eacute;rie sont
- courantes dans l'industrie informatique et les c&acirc;bles
- existent pr&ecirc;ts &agrave; l'emploi et sont faciles &agrave; r&eacute;aliser
- soi-m&ecirc;me. Certaines interfaces s&eacute;rie ont besoin de c&acirc;bles
- particuliers ou d'une configuration un peu complexe des
- options de communication.</para>
- </listitem>
-
- <listitem>
- <para>Les interfaces <emphasis>parall&egrave;les</emphasis> utilisent
- un port parall&egrave;le de votre ordinateur pour envoyer des
- donn&eacute;es &agrave; l'imprimante. Les interfaces parall&egrave;les sont
- courantes sur le march&eacute; des PCs. Les c&acirc;bles existent pr&ecirc;ts &agrave;
- l'emploi, mais sont plus difficiles &agrave; faire soi-m&ecirc;me. Il
- n'y a habituellement pas d'option de communication
- particuli&egrave;re pour les interfaces parall&egrave;les, leur
- configuration est donc extr&ecirc;mement simple.</para>
-
- <para>Les interfaces parall&egrave;les sont parfois appel&eacute;es
- interfaces &ldquo;Centronics&rdquo;, du nom du type de
- connecteur de l'imprimante.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>D'une fa&ccedil;on g&eacute;n&eacute;rale, les interfaces s&eacute;rie sont plus lentes
- que les interfaces parall&egrave;les. Les interfaces parall&egrave;les ne
- permettent normalement la communication que dans un seul sens
- (de l'ordinateur vers l'imprimante) alors que la communication
- est bi-directionnelle avec les interfaces s&eacute;rie. De nombreux
- ports parall&egrave;les r&eacute;cents peuvent aussi recevoir des donn&eacute;es de
- l'imprimante, mais seules quelques imprimantes savent renvoyer
- des donn&eacute;es &agrave; l'ordinateur. Et FreeBSD ne supporte pas la
- communication parall&egrave;le bi-directionnelle.</para>
-
- <para>Normalement, vous n'avez besoin de communication
- bi-directionnelle qu'avec les imprimantes qui parlent PostScript.
- Les imprimantes PostScript peuvent &ecirc;tre tr&egrave;s bavardes. En fait,
- les travaux PostScript sont des programmes envoy&eacute;s &agrave;
- l'imprimante; ils ne produisent pas n&eacute;cessairement d'impression
- et peuvent renvoyer directement leurs r&eacute;sultats &agrave; l'ordinateur.
- PostScript utilise aussi la communication bi-directionnelle pour
- avertir l'ordinateur de probl&egrave;mes, d'erreurs dans le programme
- PostScript ou d'un bourrage papier, par exemple. Cela peut &ecirc;tre
- tr&egrave;s appr&eacute;ci&eacute; de vos utilisateurs. De plus, la fa&ccedil;on la plus
- efficace de g&eacute;rer la comptabilit&eacute; avec une imprimante PostScript
- passe par un dialogue avec l'imprimante: vous lui demandez la
- valeur de son compteur de pages (combien de pages elle a d&eacute;j&agrave;
- imprim&eacute;es dans sa vie) puis envoyez le travail de l'utilisateur
- et lui redemandez ensuite la valeur de son compteur de pages.
- La diff&eacute;rence entre les deux valeurs vous donne le nombre de
- pages &agrave; facturer &agrave; l'utilisateur.</para>
-
- <para>Quelle interface devez-vous donc utiliser?</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Si vous avez besoin de la communication
- bi-directionnelle, utilisez le port s&eacute;rie. FreeBSD ne
- supporte pas encore la communication bi-directionnelle sur
- le port parall&egrave;le.</para>
- </listitem>
-
- <listitem>
- <para>Si vous n'avez pas besoin de la communication parall&egrave;le
- et avez le choix entre le port s&eacute;rie et le port parall&egrave;le,
- pr&eacute;f&eacute;rez le port parall&egrave;le. Le port s&eacute;rie reste alors
- disponible pour d'autres p&eacute;riph&eacute;riques&nbsp;-&nbsp;comme un
- terminal ou un modem&nbsp;-&nbsp;et le port parall&egrave;le est la
- plupart du temps plus rapide. Il est aussi plus facile &agrave;
- configurer.</para>
- </listitem>
-
- <listitem>
- <para>En dernier lieu, utilisez ce qui fonctionne.</para>
- </listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="printing-parallel">
- <title>Ports parall&egrave;les</title>
-
- <para>Pour brancher l'imprimante sur l'interface parall&egrave;le,
- reliez-la &agrave; l'ordinateur avec un c&acirc;ble Centronics. La
- documentation de l'ordinateur, de l'imprimante, ou les deux,
- devraient vous donner toutes les indications n&eacute;cessaires.</para>
-
- <para>Rappelez-vous quel port parall&egrave;le vous avez utilis&eacute;. FreeBSD
- conna&icirc;t le premier port parall&egrave;le sous le nom
- <filename>/dev/lpt0</filename>; le second comme
- <filename>/dev/lpt1</filename>, et ainsi de suite.</para>
-
- </sect3>
-
- <sect3 id="printing-serial">
- <title>Ports s&eacute;rie</title>
-
- <para>Pour brancher l'imprimante sur l'interface s&eacute;rie,
- reliez-la &agrave; l'ordinateur avec le c&acirc;ble s&eacute;rie appropri&eacute;. La
- documentation de l'ordinateur, de l'imprimante, ou les deux,
- devrait vous donner toutes les indications n&eacute;cessaires.</para>
-
- <para>Si vous n'&ecirc;tes pas certain de quel est &ldquo;le c&acirc;ble s&eacute;rie
- appropri&eacute;&rdquo;, vous pouvez tester une des possibilit&eacute;s
- suivantes:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Un c&acirc;ble <emphasis>modem</emphasis> connecte directement
- chaque broche d'une des extr&eacute;mit&eacute; de la liaison &agrave; la broche
- correspondante de l'autre extr&eacute;mit&eacute;. On appelle aussi ce
- type de c&acirc;ble &ldquo;DTE-&agrave;-DCE&rdquo;.</para>
- </listitem>
-
- <listitem>
- <para>Un c&acirc;ble &ldquo;<emphasis>null-modem</emphasis>&rdquo;
- connecte certaines broches directement, en intervertit
- d'autres (donn&eacute;e &eacute;mise vers donn&eacute;e re&ccedil;ue) et en
- court-circuite certaines &agrave; chaque extr&eacute;mit&eacute;. On appelle
- aussi ce type de c&acirc;ble &ldquo;DTE-&agrave;-DTE&rdquo;.</para>
- </listitem>
-
- <listitem>
- <para>Un c&acirc;ble pour <emphasis>imprimante s&eacute;rie</emphasis>,
- dont ont besoin certaines imprimantes non standard, est
- semblable &agrave; un c&acirc;ble &ldquo;null-modem&rdquo; mais
- transmet certains signaux broche &agrave; broche au lieu de les
- court-circuiter.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Vous devrez aussi d&eacute;finir les param&egrave;tres de communication de
- l'imprimante, soit avec le panneau de contr&ocirc;le frontal, soit par
- l'interm&eacute;diaire de commutateurs DIP. Choisissez la vitesse en bps
- (bits par seconde, on dit parfois <emphasis>vitesse en
- bauds</emphasis>) la plus rapide que votre ordinateur et votre
- imprimante acceptent tous les deux. Choisissez entre des donn&eacute;es
- 7 ou 8 bits, une parit&eacute; paire, impaire ou pas de contr&ocirc;le de
- parit&eacute;; et un ou deux bits de fin. S&eacute;lectionnez aussi le
- protocole de contr&ocirc;le de flux: soit aucun, soit XON/XOFF (appel&eacute;
- aussi &ldquo;en ligne&rdquo; ou &ldquo;logiciel&rdquo;). Notez
- bien ces param&egrave;tres pour l'&eacute;tape suivante de configuration du
- logiciel.</para>
-
- </sect3>
- </sect2>
-
- <sect2 id="printing-software">
- <title>Configuration du logiciel</title>
-
- <para>Cette section explique comment configurer le logiciel pour
- imprimer sous FreeBSD avec le gestionnaire d'impression LPD.</para>
-
- <para>Voici un r&eacute;sum&eacute; des &eacute;tapes n&eacute;cessaires:</para>
-
- <procedure>
- <step>
- <para>Recompiler votre noyau au besoin pour le port sur lequel
- vous connectez votre imprimante; la section
- <link linkend="printing-kernel">Configuration du noyau</link>
- vous dit ce que vous devez faire.</para>
- </step>
- <step>
- <para>D&eacute;finir le mode de communication du port parall&egrave;le,
- si c'est celui que vous utilisez; la section <link
- linkend="printing-parallel-port-mode">D&eacute;finir le mode de
- communication avec le port parall&egrave;le</link> vous
- d&eacute;crit cette &eacute;tape en d&eacute;tails.</para>
- </step>
-
- <step>
- <para>V&eacute;rifier que le syst&egrave;me d'exploitation peut envoyer des
- donn&eacute;es &agrave; l'imprimante; la section
- <link linkend="printing-testing">Tester la communication avec
- l'imprimante</link> vous donne
- quelques indications pour cela.</para>
- </step>
-
- <step>
- <para>Configurer LPD pour cette imprimante en modifiant le
- fichier <filename>/etc/printcap</filename>; la section <link
- linkend="printing-printcap">Activer le gestionnaire d'impression : le
- fichier <filename>/etc/printcap</filename></link>
- vous explique comment.</para>
- </step>
-
- </procedure>
-
- <sect3
- id="printing-kernel">
- <title>Configuration du noyau</title>
-
- <para>Le noyau du syst&egrave;me d'exploitation est compil&eacute; pour
- fonctionner avec une s&eacute;lection de p&eacute;riph&eacute;riques donn&eacute;e. Les
- interfaces s&eacute;rie ou parall&egrave;le de l'imprimante en font partie.
- En cons&eacute;quence, il peut &ecirc;tre n&eacute;cessaire d'ajouter le suppport
- d'un port s&eacute;rie ou parall&egrave;le si votre noyau n'est pas d&eacute;j&agrave;
- configur&eacute; pour cela.</para>
-
- <para>Pour savoir si le noyau que vous utilisez supporte une interface
- s&eacute;rie, tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dmesg | grep sio<replaceable>N</replaceable></userinput></screen>
- </informalexample>
- <para>o&ugrave; <replaceable>N</replaceable> est le num&eacute;ro
- du port s&eacute;rie, z&eacute;ro ou plus. Si vous obtenez quelque chose qui
- ressemble &agrave;:</para>
-
- <informalexample>
- <screen>sio2 at 0x3e8-0x3ef irq 5 on isa
- sio2: type 16550A</screen>
- </informalexample> <para>alors le port est bien configur&eacute; dans le
- noyau.</para>
-
- <para>Pour savoir si le noyau que vous utilisez supporte une interface
- parall&egrave;le, tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>dmesg | grep lpt<replaceable>N</replaceable></userinput></screen>
- </informalexample> <para>o&ugrave; <replaceable>N</replaceable> est le num&eacute;ro
- du port parall&egrave;le, z&eacute;ro ou plus. Si vous obtenez quelque chose qui
- ressemble &agrave;:</para>
-
- <informalexample>
- <screen>lpt0 at 0x378-0x37f on isa</screen>
- </informalexample> <para>alors le port est bien configur&eacute; dans le
- noyau.</para>
-
- <para>Vous devrez peut-&ecirc;tre reconfigurer votre noyau pour que
- le syst&egrave;me d'exploitation reconnaisse et puisse utiliser le
- port s&eacute;rie ou parall&egrave;le que vous affectez &agrave; votre
- imprimante.</para>
-
- <para>Pour ajouter le support d'un port s&eacute;rie, reportez-vous
- au chapitre <link linkend="kernelconfig">Configurer le noyau de
- FreeBSD</link>. Pour ajouter le
- support d'un port parall&egrave;le, reportez-vous au chapitre sur
- la configuration du noyau <emphasis>et</emphasis> lisez la
- section suivante.</para>
-
- <sect4
- id="printing-dev-ports">
- <title>Ajouter les entr&eacute;es pour les ports
- dans le r&eacute;pertoire <filename>/dev</filename></title>
-
-
- <para>M&ecirc;me si le noyau supporte d&eacute;j&agrave; les communications
- sur le port s&eacute;rie ou parall&egrave;le, il vous faut encore
- une interface logicielle pour que les programmes
- puissent envoyer et recevoir des donn&eacute;es. C'est &agrave; cela
- que servent les entr&eacute;es du r&eacute;pertoire
- <filename>/dev</filename>.</para>
-
- <para><emphasis>Pour ajouter une entr&eacute;e pour un port au
- r&eacute;pertoire <filename>/dev</filename>:</emphasis></para>
-
- <procedure>
-
- <step>
- <para>Devenez super-utilisateur avec la commande <citerefentry>
- <refentrytitle>su</refentrytitle></citerefentry>.
- Entrez le mot de passe super-utilisateur quand on vous le
- demande.</para>
- </step>
-
- <step>
- <para>Allez dans le r&eacute;pertoire <filename>/dev</filename>:
-
- <informalexample>
- <screen>&prompt.root; cd /dev</screen>
- </informalexample></para>
- </step>
-
- <step>
- <para>Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>port</replaceable></userinput></screen>
- </informalexample> o&ugrave; <replaceable>port</replaceable> est l'entr&eacute;e (fichier sp&eacute;cial de p&eacute;riph&eacute;rique) que vous voulez
- cr&eacute;er. Utilisez <literal>lpt0</literal> pour le premier
- port parall&egrave;le, <literal>lpt1</literal> pour le second, et
- ainsi de suite; utilisez <literal>ttyd0</literal> pour le
- premier port s&eacute;rie, <literal>ttyd1</literal>
- pour le second, etc...</para>
- </step>
-
- <step>
- <para>Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>ls -l <replaceable>port</replaceable></userinput></screen>
- </informalexample>pour vous assurer que l'entr&eacute;e a bien
- &eacute;t&eacute; cr&eacute;&eacute;e.</para>
- </step>
-
- </procedure>
-
- </sect4>
-
- <sect4
- id="printing-parallel-port-mode">
- <title>D&eacute;finir le mode de communication avec le port
- parall&egrave;le</title>
-
- <para>Si vous utilisez l'interface parall&egrave;le, vous pouvez
- choisir que FreeBSD communique avec l'imprimante en
- l'interrogeant r&eacute;guli&egrave;rement ou par interruptions.</para>
-
-
- <itemizedlist>
-
- <listitem>
- <para>La m&eacute;thode
- <emphasis>pilot&eacute;e par interruptions</emphasis> est la
- m&eacute;thode par d&eacute;faut du noyau GENERIC. Le syst&egrave;me
- d'exploitation utilise dans ce cas une ligne IRQ pour
- savoir si l'imprimante est pr&ecirc;te &agrave; recevoir des
- donn&eacute;es.</para>
- </listitem>
-
- <listitem>
- <para>La m&eacute;thode
- <emphasis>par interrogations</emphasis> demande au
- syst&egrave;me d'interroger &agrave; intervalles r&eacute;guliers l'imprimante
- pour savoir si elle peut accepter de nouvelles donn&eacute;es.
- D&egrave;s que la r&eacute;ponse est positive, le noyau lui envoie
- de nouvelles donn&eacute;es.</para>
- </listitem>
-
- </itemizedlist>
-
-
- <para>La m&eacute;thode par interruptions est plus rapide mais mobilise
- une ligne IRQ pr&eacute;cieuse. Utilisez ce qui fonctionne.</para>
-
- <para>Vous pouvez d&eacute;finir le mode de communication de deux
- fa&ccedil;ons: en configurant le noyau ou avec la commande
- <citerefentry><refentrytitle>lptcontrol</refentrytitle></citerefentry>.</para>
-
- <para><emphasis>Pour d&eacute;finir le mode de communication &agrave; la
- configuration du noyau:</emphasis></para>
-
- <procedure>
-
- <step>
- <para>Editez votre fichier de configuration du noyau
- et cherchez ou ajoutez l'entr&eacute;e <literal>lpt0</literal>.
- Si vous utilisez le second port parall&egrave;le, mettez
- <literal>lpt1</literal> &agrave; la place,
- <literal>lpt2</literal> pour le troisi&egrave;me port, et ainsi
- de suite.
- <itemizedlist>
-
- <listitem>
- <para>Si vous voulez utiliser le mode par
- interruptions, ajoutez l'indicateur
- <literal>irq</literal>:
-
- <programlisting>
- device lpt0 at isa? port? tty irq <replaceable>N</replaceable> vector lptintr
- </programlisting>o&ugrave; <replaceable>N</replaceable>
- est le num&eacute;ro d'IRQ du port parall&egrave;le de votre
- ordinateur.</para>
- </listitem>
-
- <listitem>
- <para>Si vous voulez le mode par interrogations,
- ne mettez pas l'indicateur
- <literal>irq</literal>:
-
- <programlisting>
- device lpt0 at isa? port? tty vector lptintr
- </programlisting></para>
- </listitem>
-
- </itemizedlist>
- </para>
- </step>
-
- <step>
- <para>Sauvegardez le fichier. Puis configurez, compilez et
- installez le noyau, et red&eacute;marrez votre syst&egrave;me.
- Reportez-vous au chapitre
- <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link>
- pour plus de d&eacute;tails.</para>
- </step>
-
- </procedure>
-
- <para><emphasis>Pour d&eacute;finir le mode de communication avec le
- programme</emphasis> <citerefentry>
- <refentrytitle>lptcontrol</refentrytitle></citerefentry>:</para>
-
- <procedure>
-
- <step>
- <para>Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>lptcontrol -i -u <replaceable>N</replaceable></userinput></screen>
- </informalexample> pour utiliser le mode par interruptions
- avec
- <literal>lpt<replaceable>N</replaceable></literal>.</para>
- </step>
-
- <step>
- <para>Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>lptcontrol -p -u <replaceable>N</replaceable></userinput></screen>
- </informalexample> pour utiliser le mode par
- interrogations avec
- <literal>lpt<replaceable>N</replaceable></literal>.</para>
- </step>
-
- </procedure>
-
- <para>Vous pouvez introduire ces commandes dans votre fichier
- <filename>/etc/rc.local</filename> pour d&eacute;finir le mode
- &agrave; chaque red&eacute;marrage. Voyez <citerefentry><refentrytitle>lptcontrol</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour plus
- d'informations.</para>
-
- </sect4>
-
- <sect4
- id="printing-testing">
- <title>Tester la communication avec l'imprimante</title>
-
- <para>Avant de passer &agrave; la configuration du gestionnaire
- d'impression, vous devriez vous assurer que le syst&egrave;me
- d'exploitation arrive &agrave; envoyer des donn&eacute;es &agrave; l'imprimante.
- Il est plus facile de mettre s&eacute;parement au point la
- communication avec l'imprimante et la configuration du gestionnaire
- d'impression.</para>
-
- <para>Pour tester l'imprimante, nous lui enverrons du texte. Pour
- les imprimantes qui impriment imm&eacute;diatement les caract&egrave;res qu'on
- leur envoie, le programme
- <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry>
- est id&eacute;al: il g&eacute;n&egrave;re les 96 caract&egrave;res ASCII imprimables sur
- 96 lignes.</para>
-
- <para>Pour une imprimante PostScript (ou tout autre imprimante
- utilisant un langage), il nous faut un test plus sophistiqu&eacute;.
- Un petit programme PostScript, comme celui qui suit, fera l'affaire:
-
- <programlisting>
- %!PS
- 100 100 moveto 300 300 lineto stroke
- 310 310 moveto /Helvetica findfont 12 scalefont setfont
- (Is this thing working?) show
- showpage
- </programlisting>
- </para>
-
- <note>
- <para>Quand dans ce document j'utilise l'expression
- &ldquo;langage d'impression&rdquo;, je me r&eacute;f&egrave;re &agrave;
- un langage du type PostScript et non du genre PCL de
- Hewlett Packard, bien que PCL ait d'excellentes
- fonctionnalit&eacute;s&nbsp;-&nbsp;on peut ins&eacute;rer du texte au milieu
- de ses s&eacute;quences d'&eacute;chappement. PostScript ne peut
- imprimer directement du texte, et c'est pour ce genre
- de langage qu'il y a des mesures particuli&egrave;res &agrave;
- prendre.</para>
- </note>
-
- <sect5
- id="printing-checking-parallel">
- <title>Tester une imprimante parall&egrave;le</title>
-
- <para>Cette section vous explique comment tester si FreeBSD
- peut communiquer avec une imprimante connect&eacute;e sur un port
- parall&egrave;le.</para>
-
- <para><emphasis>Pour tester une imprimante sur un port
- parall&egrave;le:</emphasis></para>
-
- <procedure>
-
- <step>
- <para>Devenez super-utilisateur avec <citerefentry>
- <refentrytitle>su</refentrytitle></citerefentry>.</para>
- </step>
-
- <step>
- <para>Envoyez des donn&eacute;es &agrave; l'imprimante.
- <itemizedlist>
-
- <listitem>
- <para>Si l'imprimante accepte directement du texte,
- utilisez <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry>. Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>lptest &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
- </informalexample> o&ugrave; <replaceable>N</replaceable>
- est le num&eacute;ro du port parall&egrave;le, &agrave; partir de
- z&eacute;ro.</para>
- </listitem>
-
- <listitem>
- <para>Si l'imprimante comprend PostScript ou un
- autre langage d'impression, alors envoyez-lui un
- petit programme. Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>cat &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
- </informalexample> Puis tapez votre programme
- ligne &agrave; ligne
- <emphasis>avec soin</emphasis> car vous ne pouvez
- pas corriger la ligne une fois que vous avez tap&eacute;
- Entr&eacute;e. Quand vous avez fini de saisir votre
- programme, tapez CONTROL+D, ou une autre
- combinaison particuli&egrave;re de touches,
- pour indiquer la fin du fichier.</para>
-
- <para>Vous pouvez aussi mettre votre programme dans
- un fichier et taper:
-
- <informalexample>
- <screen>&prompt.root; <userinput>cat <replaceable>fichier</replaceable> &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
- </informalexample> o&ugrave; <replaceable>fichier</replaceable>
- est le nom du fichier contenant le programme que
- vous voulez envoyer &agrave; l'imprimante.</para>
- </listitem>
-
- </itemizedlist>
- </para>
- </step>
-
- </procedure>
-
- <para>Vous devriez obtenir une impression. Ne vous inqui&eacute;tez pas
- si le texte ne s'imprime pas correctement; nous r&eacute;glerons ces
- probl&egrave;mes ensuite.</para>
-
- </sect5>
-
- <sect5
- id="printing-checking-serial">
- <title>Tester une imprimante s&eacute;rie</title>
-
- <para>Cette section vous explique comment tester si FreeBSD
- peut communiquer avec une imprimante connect&eacute;e sur un port
- s&eacute;rie.</para>
-
- <para><emphasis>Pour tester une imprimante sur un port
- s&eacute;rie:</emphasis></para>
-
- <procedure>
-
- <step>
- <para>Devenez super-utilisateur avec <citerefentry>
- <refentrytitle>su</refentrytitle></citerefentry>.</para>
- </step>
-
- <step>
- <para>Editez le fichier <filename>/etc/remote</filename>.
- Ajoutez la ligne suivante:
-
- <programlisting>
- printer:dv=/dev/<replaceable>port</replaceable>:br#<replaceable>bps</replaceable>:pa=<replaceable>parit&eacute;</replaceable>
- </programlisting> o&ugrave; <replaceable>port</replaceable>
- est le fichier sp&eacute;cial de p&eacute;riph&eacute;rique pour le port
- s&eacute;rie (<literal>ttyd0</literal>,
- <literal>ttyd1</literal>, etc...), <replaceable>bps</replaceable> est la vitesse de communication en bits par seconde,
- et <replaceable>parit&eacute;</replaceable> est la parit&eacute;
- requise par l'imprimante
- (soit <literal>even</literal> (paire), <literal>odd</literal> (impaire), <literal>none</literal> (aucune), ou <literal>zero</literal> (toujours nulle) ).</para>
-
- <para>Voici un exemple pour une imprimante connect&eacute;e par
- une ligne s&eacute;rie au troisi&egrave;me port s&eacute;rie, &agrave; 19200 bps,
- sans contr&ocirc;le de parit&eacute;:
-
- <programlisting>
- printer:dv=/dev/ttyd2:br#19200:pa=none
- </programlisting></para>
- </step>
-
- <step>
- <para>Connectez-vous &agrave; l'imprimante avec <citerefentry>
- <refentrytitle>tip</refentrytitle></citerefentry>. Tapez:
- <informalexample>
- <screen>&prompt.root; <userinput>tip printer</userinput></screen>
- </informalexample> Si cela ne marche pas, &eacute;ditez de
- nouveau le fichier <filename>/etc/remote</filename>
- et essayez de remplacer
- <filename>/dev/ttyd<replaceable>N</replaceable></filename> par <filename>/dev/cuaa<replaceable>N</replaceable></filename>.</para>
- </step>
-
- <step>
- <para>Envoyez des donn&eacute;es &agrave; l'imprimante.
- <itemizedlist>
-
- <listitem>
- <para>Si l'imprimante accepte directement du texte,
- utilisez <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry>. Tapez:
-
- <informalexample>
- <screen><prompt>~</prompt><userinput>$lptest</userinput></screen>
- </informalexample></para>
- </listitem>
-
- <listitem>
- <para>Si votre imprimante comprend PostScript ou
- un autre langage d'impression, envoyez-lui alors
- un petit programme. Tapez le programme, ligne
- &agrave; ligne, en faisant
- <emphasis>tr&egrave;s attention</emphasis> car le retour
- arri&egrave;re ou d'autres touches d'&eacute;ditions peuvent
- vouloir dire autre chose pour l'imprimante.
- Vous devrez peut-&ecirc;tre aussi utiliser un caract&egrave;re
- particulier de fin de fichier pour que
- l'imprimante sache qu'elle a re&ccedil;u tout le
- programme. Pour les imprimantes PostScript,
- tapez CONTROL+D.</para>
-
- <para>Vous pouvez aussi enregistrer votre programme
- dans un fichier et taper:
-
- <informalexample>
- <screen><prompt>~</prompt><userinput>&gt;<replaceable>fichier</replaceable></userinput></screen>
- </informalexample> o&ugrave; <replaceable>fichier</replaceable> est le nom du fichier contenant le programme. Apr&egrave;s que
- <citerefentry>
- <refentrytitle>tip</refentrytitle></citerefentry> ait envoy&eacute; le fichier, appuyez sur la touche de fin de fichier ad&eacute;quate.</para>
- </listitem>
-
- </itemizedlist>
- </para>
- </step>
-
- </procedure>
-
- <para>Vous devriez obtenir une impression. Ne vous inqui&eacute;tez pas
- si le texte ne s'imprime pas correctement; nous r&eacute;glerons ces
- probl&egrave;mes ensuite.</para>
-
- </sect5>
- </sect4>
- </sect3>
-
- <sect3
- id="printing-printcap">
- <title>Activer le gestionnaire d'impression: Le
- fichier <filename>/etc/printcap</filename>
- </title>
-
- <para>A ce stade, votre imprimante devrait &ecirc;tre connect&eacute;e, votre
- noyau configur&eacute; (au besoin) pour communiquer avec, et vous devriez
- avoir r&eacute;ussi &agrave; lui envoyer un minimum de donn&eacute;es. Nous sommes
- maintenant pr&ecirc;t &agrave; configurer LPD pour qu'il contr&ocirc;le l'acc&egrave;s &agrave;
- votre imprimante.</para>
-
- <para>Vous configurez LPD en &eacute;ditant le fichier
- <filename>/etc/printcap</filename>. Le gestionnaire d'impression
- LPD lit ce fichier chaque fois qu'il est fait appel &agrave; lui, les
- modifications s'appliquent donc imm&eacute;diatement.</para>
-
- <para>Le format du fichier <citerefentry>
- <refentrytitle>printcap</refentrytitle></citerefentry> est
- explicite. Utilisez votre &eacute;diteur de texte pr&eacute;f&eacute;r&eacute; pour le
- modifier. Son format est similaire &agrave; celui des fichiers
- associ&eacute;s &agrave; d'autres utilitaires comme
- <filename>/usr/share/misc/termcap</filename> et
- <filename>/etc/remote</filename>. Pour une description compl&egrave;te
- de ce format, reportez-vous &agrave;
- <citerefentry><refentrytitle>cgetent</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
-
- <para>Une configuration de base du gestionnaire d'impression passe
- par les &eacute;tapes suivantes:</para>
-
- <procedure>
-
- <step>
- <para>Choisissez un nom (et quelques alias utiles) pour
- l'imprimante et introduisez-le(s) dans le fichier
- <filename>/etc/printcap</filename>; reportez-vous &agrave;
- la section <link
- linkend="printing-naming">Donner un nom &agrave; l'imprimante</link>.</para>
- </step>
-
- <step>
- <para>D&eacute;sactivez l'impression des pages d'en-t&ecirc;te (qui sont
- en service par d&eacute;faut) en ins&eacute;rant la fonctionnalit&eacute;
- <literal>sh</literal>;
- reportez-vous &agrave; la section
- <link linkend="printing-no-header-pages">Supprimer l'impression des pages
- d'en-t&ecirc;te</link>.</para>
- </step>
-
- <step>
- <para>Cr&eacute;ez un r&eacute;pertoire pour la file d'attente, et indiquez
- o&ugrave; il se trouve avec l'option <literal>sd</literal>;
- reportez-vous &agrave; la section <link linkend="printing-spooldir">Cr&eacute;er
- le r&eacute;pertoire tampon</link>.</para>
- </step>
-
- <step>
- <para>Identifiez l'entr&eacute;e <filename>/dev</filename> &agrave; utiliser
- avec cette imprimante et reportez-la dans le fichier
- <filename>/etc/printcap</filename> avec l'option
- <literal>lp</literal>; reportez-vous &agrave; la section
- <link
- linkend="printing-device">D&eacute;finir le p&eacute;riph&eacute;rique
- associ&eacute; &agrave; l'imprimante</link>. Si l'imprimante est sur un port s&eacute;rie, vous
- devez aussi pr&eacute;ciser les param&egrave;tres de communication
- avec les options
- <literal>fs</literal>, <literal>fc</literal>,
- <literal>xs</literal>, et <literal>xc</literal>;
- reportez-vous &agrave; la section <link
- linkend="printing-commparam">Configurer les param&egrave;tres
- de communication du gestionnaire d'impression</link>.</para>
- </step>
-
- <step>
- <para>Installez un filtre pour l'impression de fichiers texte;
- reportez-vous &agrave; la section <link
- linkend="printing-textfilter">Installer le filtre texte</link>.</para>
- </step>
-
- <step>
- <para>Testez la configuration en imprimant quelque chose avec
- la commande
- <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>;
- reportez-vous aux sections
- <link linkend="printing-trying">Tester la configuration</link>
- et <link linkend="printing-troubleshooting">R&eacute;gler
- les probl&egrave;mes</link>.</para>
- </step>
-
- </procedure>
-
- <note>
- <para>Les imprimantes qui utilisent un langage, comme les
- imprimantes PostScript, ne savent pas imprimer directement
- du texte. La configuration simple r&eacute;sum&eacute;e ci-desssus, et
- d&eacute;crite dans ce qui suit, suppose que si vous installez
- ce type d'imprimante, vous lui enverrez uniquement des
- fichiers qu'elle comprenne.</para>
- </note>
-
- <para>Les utilisateurs s'attendent souvent &agrave; pouvoir imprimer
- du texte simple sur toutes les imprimantes de votre syst&egrave;me.
- Les programmes qui font appel &agrave; LPD font la m&ecirc;me supposition.
- Si vous installez ce type d'imprimante et que vous voulez
- utiliser le langage d'impression <emphasis>et</emphasis>
- imprimer aussi des fichiers texte, je vous conseille fortement
- d'ajouter une &eacute;tape suppl&eacute;mentaire &agrave; la proc&eacute;dure r&eacute;sum&eacute;e
- ci-dessus: installez un filtre de conversion automatique des
- fichiers texte en PostScript (ou tout autre langage d'impression).
- La section <link
- linkend="printing-advanced-if-conversion">Imprimer du texte
- sur des imprimantes PostScript</link> vous explique comment
- faire.</para>
-
-
- <sect4
- id="printing-naming">
- <title>Donner un nom &agrave; l'imprimante</title>
-
- <para>La premi&egrave;re &eacute;tape (facile) consiste &agrave; donner
- un nom &agrave; l'imprimante. Cela n'a pas d'importance que vous lui
- donniez un nom fonctionnel ou nom bizarre parce que vous
- pouvez aussi d&eacute;finir un certain nombre d'alias.</para>
-
- <para>Au moins l'une des imprimantes que vous d&eacute;finirez dans
- le fichier <filename>/etc/printcap</filename> devrait s'appeler
- <literal>lp</literal>. C'est le nom de l'imprimante par d&eacute;faut.
- Si les utilisateurs ne d&eacute;finissent pas leur variable
- d'environnement PRINTER et ne pr&eacute;cisent pas le nom de
- l'imprimante avec une des commandes de LPD, alors
- <literal>lp</literal> est l'imprimante par d&eacute;faut &agrave; laquelle ils
- s'adressent.</para>
-
- <para>Il est aussi d'usage que le dernier alias d'une imprimante
- la d&eacute;crive compl&egrave;tement, marque et mod&egrave;le y compris.</para>
-
- <para>Un fois que vous avez choisi un nom et quelques alias
- courants, introduisez-les dans le fichier
- <filename>/etc/printcap</filename>. Le nom de l'imprimante
- doit &ecirc;tre &eacute;crit au d&eacute;but de la ligne. S&eacute;parez chaque alias
- par une barre verticale et mettez un &ldquo;:&rdquo; apr&egrave;s
- le dernier alias.</para>
-
- <para>L'exemple suivant montre un fichier
- <filename>/etc/printcap</filename> de base, qui d&eacute;finit deux
- imprimantes (une imprimante ligne Diablo 630 et une imprimante
- laser PostScript Panasonic KX-P4455):
-
- <programlisting>
- #
- # /etc/printcap pour la machine rose
- #
- rattan|line|diablo|lp|Imprimante Ligne Diablo 630:
-
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:
- </programlisting>
- Dans cet exemple, la premi&egrave;re imprimante s'appelle
- <literal>rattan</literal> et a pour alias
- <literal>line</literal>, <literal>diablo</literal>,
- <literal>lp</literal>, et <literal>Imprimante Ligne Diablo
- 630</literal>. Comme <literal>lp</literal> est un de ses alias,
- c'est aussi l'imprimante par d&eacute;faut. La seconde s'appelle
- <literal>bamboo</literal>, et a pour alias <literal>ps</literal>,
- <literal>PS</literal>, <literal>S</literal>,
- <literal>panasonic</literal>, et <literal>Panasonic KX-P4455 PostScript
- v51.4</literal>.</para>
-
- </sect4>
-
- <sect4
- id="printing-no-header-pages">
- <title>Supprimer l'impression de pages d'en-t&ecirc;te</title>
-
- <para>Le gestionnaire d'impression g&eacute;n&eacute;rera par d&eacute;faut
- une page d'en-t&ecirc;te pour chaque travail d'impression. La page
- d'en-t&ecirc;te affiche le nom de l'utilisateur qui l'a soumis,
- le nom de la machine d'o&ugrave; il a &eacute;t&eacute; lanc&eacute; et le nom du
- travail d'impression, le tout en grosses lettres.
- Malheureusement, tout ce texte suppl&eacute;mentaire complique la
- mise au point de la configuration des imprimantes, aussi
- supprimerons-nous les pages d'en-t&ecirc;te.</para>
-
- <para>Pour supprimer les pages d'en-t&ecirc;te,
- ajoutez la fonctionnalit&eacute;
- <literal>sh</literal> &agrave; l'entr&eacute;e associ&eacute;e &agrave; l'imprimante dans
- le fichier <filename>/etc/printcap</filename>. Voici un exemple
- de fichier <filename>/etc/printcap</filename> o&ugrave; l'on a ajout&eacute;
- <literal>sh</literal>:</para>
-
- <programlisting>
- #
- # /etc/printcap pour la machine rose - pas de pages d'en-t&ecirc;te
- #
- rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:
-
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:
- </programlisting>
-
- <para>Notez bien le format correct. La premi&egrave;re ligne commence
- imm&eacute;diatement &agrave; gauche, et les lignes suivantes sont indent&eacute;es
- avec un seul caract&egrave;re Tab. Chaque ligne d'une m&ecirc;me entr&eacute;e, sauf
- la derni&egrave;re, se termine par une barre oblique inverse.</para>
-
- </sect4>
-
- <sect4
- id="printing-spooldir">
- <title>Cr&eacute;er le r&eacute;pertoire tampon</title>
-
- <para>L'&eacute;tape suivante de la configuration de base du gestionnaire
- d'impression consiste &agrave; cr&eacute;er un
- <emphasis>r&eacute;pertoire tampon</emphasis>, o&ugrave; les travaux
- d'impression attendent d'&ecirc;tre trait&eacute;s et o&ugrave; se trouvent aussi
- un certain nombre de fichiers n&eacute;cessaires au gestionnaire
- d'impression.</para>
-
- <para>Comme le contenu de ces r&eacute;pertoires tampon est transitoire,
- il est habituel de les mettre dans le r&eacute;pertoire
- <filename>/var/spool</filename>. Ces r&eacute;pertoires n'ont pas non
- plus besoin d'&ecirc;tre archiv&eacute;s. Il suffit d'un simple
- <citerefentry>
- <refentrytitle>mkdir</refentrytitle></citerefentry> pour
- les recr&eacute;er.</para>
-
- <para>L'usage veut que l'on donne au r&eacute;pertoire le m&ecirc;me nom
- qu'&agrave; l'imprimante, comme ci-dessous:
-
- <informalexample>
- <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>imprimante</replaceable></userinput></screen>
- </informalexample> Cependant, s'il y a beaucoup d'imprimantes
- sur votre r&eacute;seau, vous voudrez peut-&ecirc;tre regrouper tous les
- r&eacute;pertoires tampon dans un seul r&eacute;pertoire qui sera r&eacute;serv&eacute;
- &agrave; l'impression par LPD. C'est ce que nous ferons pour nos deux
- imprimantes <literal>rattan</literal> et
- <literal>bamboo</literal>:
-
- <informalexample>
- <screen>&prompt.root; <userinput>mkdir /var/spool/lpd</userinput>
- &prompt.root; <userinput>mkdir /var/spool/lpd/rattan</userinput>
- &prompt.root; <userinput>mkdir /var/spool/lpd/bamboo</userinput></screen>
- </informalexample></para>
-
- <note>
- <para>Si la confidentialit&eacute; des travaux d'impression de
- vos utilisateurs vous pr&eacute;occuppe, vous pouvez prot&eacute;ger
- le r&eacute;pertoire tampon pour qu'il ne soit pas accessible
- &agrave; tout le monde. Les r&eacute;pertoires tampon doivent appartenir,
- &ecirc;tre accessibles en lecture et en &eacute;criture et pouvoir &ecirc;tre
- parcourus par l'utilisateur <username>daemon</username> et le
- groupe <username>daemon</username>. C'est ce que nous ferons
- pour les imprimantes de notre exemple:</para>
-
-
- <informalexample>
- <screen>&prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/rattan</userinput>
- &prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/bamboo</userinput>
- &prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan</userinput>
- &prompt.root; <userinput>chmod 770 /var/spool/lpd/bamboo</userinput></screen>
- </informalexample>
- </note>
-
- <para>En dernier lieu, il faut donner &agrave; LPD les noms de ces
- r&eacute;pertoires par l'interm&eacute;diaire du fichier
- <filename>/etc/printcap</filename>. Cela se fait avec
- la fonctionnalit&eacute;
- <literal remap="tt">sd</literal>:</para>
-
- <programlisting>
- #
- # /etc/printcap pour la machine rose - ajout des r&eacute;pertoires tampon
- #
- rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:
-
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:
- </programlisting>
-
- <para>Notez bien que le nom de l'imprimante commence en premi&egrave;re
- colonne, que toutes les autres lignes doivent &ecirc;tre indent&eacute;es
- par une tabulation et que toutes les lignes sauf la derni&egrave;re
- se terminent par une barre oblique inverse.</para>
-
- <para>Si vous ne d&eacute;finissez pas le r&eacute;pertoire tampon avec
- <literal>sd</literal>, le gestionnaire d'impression utilisera
- <filename>/var/spool/lpd</filename> par d&eacute;faut.</para>
-
- </sect4>
-
- <sect4 id="printing-device">
- <title>D&eacute;finir le p&eacute;riph&eacute;rique associ&eacute; &agrave; l'imprimante</title>
-
- <para>Dans la section <link linkend="printing-dev-ports">Ajouter
- les entr&eacute;es pour les ports dans le r&eacute;pertoire <filename>/dev</filename></link>,
- nous avons identifi&eacute; l'entr&eacute;e du r&eacute;pertoire <filename>/dev</filename>
- via laquelle FreeBSD communiquera avec l'imprimante. Il faut
- maintenant donner cette information &agrave; LPD. Quand le gestionnaire
- aura un travail &agrave; imprimer, il ouvrira le fichier sp&eacute;cial
- pour les besoins du programme filtre (qui envoie les donn&eacute;es
- &agrave; l'imprimante).</para>
-
- <para>Indiquez l'entr&eacute;e <filename>/dev</filename> utilis&eacute;e avec
- la fonctionnalit&eacute; <literal>lp</literal> dans le fichier
- <filename>/etc/printcap</filename>.</para>
-
- <para>Supposons que, dans notre exemple, l'imprimante
- <hostid>rattan</hostid> soit sur le premier port parall&egrave;le et
- et l'imprimante <hostid>bamboo</hostid> sur le sixi&egrave;me; voici
- ce qu'il faut ajouter au fichier
- <filename>/etc/printcap</filename>:</para>
-
- <programlisting>
- #
- # /etc/printcap pour la machine rose
- # d&eacute;finition des p&eacute;riph&eacute;riques &agrave; utiliser
- #
- rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:
-
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:
- </programlisting>
-
- <para>Si vous ne donnez pas de valeur
- <emphasis remap=tt>lp</emphasis> &agrave; une imprimante
- dans le fichier
- <filename>/etc/printcap</filename>, LPD utilise
- <filename>/dev/lp</filename> par d&eacute;faut.
- <filename>/dev/lp</filename> n'existe actuellement pas sous
- FreeBSD.</para>
-
- <para>Si l'imprimante est connect&eacute;e &agrave; un port parall&egrave;le, allez
- directement &agrave; la section <link
- linkend="printing-textfilter">Installer le filtre texte</link>.
- Sinon, suivez bien les instructions de
- la prochaine section.</para>
-
- </sect4>
-
- <sect4
- id="printing-commparam">
- <title>Configurer les param&egrave;tres de communication du gestionnaire
- d'impression</title>
-
- <para>Pour les imprimantes sur des ports s&eacute;rie, LPD peut d&eacute;finir
- la vitesse en bps, la parit&eacute; et les autres param&egrave;tres de
- communication s&eacute;rie, pour les besoins du programme filtre, qui
- envoie les donn&eacute;es &agrave; l'imprimante. C'est int&eacute;ressant parce que:
-
- <itemizedlist>
-
- <listitem>
- <para>Cela vous permet de tester des valeurs diff&eacute;rentes
- des param&egrave;tres en modifiant simplement le fichier
- <filename>/etc/printcap</filename>; vous n'avez pas
- besoin de recompiler le programme filtre.</para>
- </listitem>
-
- <listitem>
- <para>Cela permet au gestionnaire d'impression d'utiliser
- le m&ecirc;me programme filtre pour diff&eacute;rentes imprimantes
- qui n'ont pas les m&ecirc;mes param&egrave;tres de
- communication.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>Les fonctionnalit&eacute;s suivantes de
- <filename>/etc/printcap</filename>
- contr&ocirc;lent les param&egrave;tres de communication s&eacute;rie du p&eacute;riph&eacute;rique
- sp&eacute;cifi&eacute; avec la fonctionnalit&eacute;
- <emphasis remap=tt>lp</emphasis>:
-
- <variablelist>
- <varlistentry><term><literal>br#<replaceable>vitesse_en_bps</replaceable></literal></term>
- <listitem>
- <para>Fixe la vitesse de communication &agrave;
- <replaceable>vitesse_en_bps</replaceable>, o&ugrave;
- <replaceable>vitesse_en_bps</replaceable>
- peut prendre les valeurs 50, 75,
- 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
- 9600, 19200, ou 38400 bits par seconde.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>fc#<replaceable>bits_&agrave;_r&eacute;initialiser</replaceable></literal></term>
-
- <listitem>
- <para>R&eacute;initialise les indicateurs
- <replaceable>bits_&agrave;_r&eacute;initialiser</replaceable> de la
- structure <replaceable>sgttyb</replaceable>
- apr&egrave;s avoir ouvert le fichier sp&eacute;cial de
- p&eacute;riph&eacute;rique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>fs#<replaceable>bits_&agrave;_positionner</replaceable></literal></term>
-
- <listitem>
- <para>Positionne les indicateurs
- <replaceable>bits_&agrave;_positionner</replaceable> de la
- structure <replaceable>sgttyb</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>xc#<replaceable>bits_&agrave;_r&eacute;initialiser</replaceable></literal></term>
-
- <listitem>
- <para>R&eacute;initialise les indicateurs du mode local
- <replaceable>bits_&agrave;_r&eacute;nitialiser</replaceable>
- apr&egrave;s avoir ouvert le fichier sp&eacute;cial de
- p&eacute;riph&eacute;rique.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><literal>xs#<replaceable>bits_&agrave;_positionner</replaceable></literal></term>
-
- <listitem>
- <para>Positionne les indicateurs du mode local
- <replaceable>bits_&agrave;_positionner</replaceable>.</para>
- </listitem>
- </varlistentry>
- </variablelist> Pour plus d'informations sur les bits manipul&eacute;s
- par les fonctionnalit&eacute;s
- <literal>fc</literal>, <literal>fs</literal>, <literal>xc</literal>,
- et <literal>xs</literal>, reportez-vous au fichier
- <filename>/usr/include/sys/ioctl_compat.h</filename>.</para>
-
- <para>Quand LPD ouvre le p&eacute;riph&eacute;rique d&eacute;fini par la fonctionnalit&eacute;
- <literal>lp</literal>, il lit les indicateurs de la structure
- <literal>sgttyb</literal>; il r&eacute;initialise les bits d&eacute;finis
- par la fonctionnalit&eacute; <literal remap="tt">fc</literal>,
- puis positionne ceux d&eacute;finis par la fonctionnalit&eacute;
- <literal>fs</literal> et applique le param&egrave;trage ainsi d&eacute;fini.
- Il fait de m&ecirc;me pour les indicateurs du mode local.</para>
-
- <para>Compl&eacute;tons notre exemple pour l'imprimante sur le
- sixi&egrave;me port s&eacute;rie. Nous fixerons la vitesse &agrave; 38400 bps.
- Nous positionnerons les indicateurs
- TANDEM, ANYP, LITOUT, FLUSHO, et PASS8, et les indicateurs
- du mode local LITOUT et PASS8:
-
- <programlisting>
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820:
- </programlisting></para>
-
- </sect4>
-
- <sect4
- id="printing-textfilter">
- <title>Installer le filtre texte</title>
-
- <para>Nous sommes maintenant pr&ecirc;ts &agrave; dire &agrave; LPD quel filtre
- texte utiliser pour envoyer les travaux &agrave; l'imprimante.
- Un <emphasis>filtre texte</emphasis>, aussi appel&eacute;
- <emphasis>filtre d'entr&eacute;e</emphasis>, est un programme que LPD
- ex&eacute;cute quand il a un travail &agrave; imprimer. Quand LPD
- ex&eacute;cute un filtre texte pour une imprimante, il affecte
- &agrave; l'entr&eacute;e standard du filtre le travail &agrave; imprimer et &agrave;
- sa sortie standard le fichier sp&eacute;cial de p&eacute;riph&eacute;rique
- d&eacute;fini par la fonctionnalit&eacute; <literal>lp</literal>.
- Le filtre est
- suppos&eacute; lire le travail sur l'entr&eacute;e standard, effectuer le
- transcodage n&eacute;cessaire et envoyer le r&eacute;sultat sur la sortie
- standard. Pour plus d'informations sur les filtres texte,
- reportez-vous &agrave; la section <link
- linkend="printing-advanced-filters">Comment
- fonctionnent les filtres</link>.</para>
-
- <para>Pour notre exemple de configuration simple, le filtre texte
- peut &ecirc;tre une petite proc&eacute;dure qui ex&eacute;cute seulement
- <command>/bin/cat</command> pour envoyer le travail &agrave;
- l'imprimante. FreeBSD est livr&eacute; avec un autre filtre appel&eacute;
- <filename>lpf</filename> qui g&egrave;re les retours arri&egrave;re et les
- soulign&eacute;s pour les imprimantes qui ne traitent pas bien ces
- caract&egrave;res de contr&ocirc;le. Et, bien s&ucirc;r, vous pouvez utilisez le
- filtre que vous voulez. Le filtre <command>lpf</command> est
- d&eacute;crit en d&eacute;tail &agrave; la section
- <link linkend="printing-advanced-lpf"><command>lpf</command>: un
- filtre texte</link>.</para>
-
- <para>Cr&eacute;ons d'abord le filtre texte &eacute;l&eacute;mentaire
- <filename>/usr/local/libexec/if-simple</filename>.
- Avec votre &eacute;diteur de texte favori, donnez &agrave; ce fichier
- le contenu suivant:
-
- <programlisting>
- #!/bin/sh
- #
- # if-simple - filtre texte &eacute;l&eacute;mentaire pour lpd
- # fichier /usr/local/libexec/if-simple
- #
- # copie simplement stdin dans stdout. Ne prend aucun argument.
-
- /bin/cat &amp;&amp; exit 0
- exit 2
- </programlisting>
- Mettez les droits d'ex&eacute;cution sur le fichier:
-
- <informalexample>
- <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen>
- </informalexample></para>
-
- <para>Et pr&eacute;cisez maintenant &agrave; LPD de l'utiliser
- avec la fonctionnalit&eacute;
- <literal>if</literal> de
- <filename>/etc/printcap</filename>. Nous l'affecterons aux deux
- imprimantes que nous avons d&eacute;j&agrave; dans notre exemple de
- <filename>/etc/printcap</filename>:</para>
-
- <programlisting>
- #
- # /etc/printcap pour la machine rose - ajout du filtre texte
- #
- rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\
- :if=/usr/local/libexec/if-simple:
- </programlisting>
-
- </sect4>
-
- <sect4
- id="printing-trying">
- <title>Tester la configuration</title>
-
- <para>Vous avez termin&eacute; la configuration simple de LPD.
- Malheureusement, les f&eacute;licitations ne sont pas encore de mise,
- il nous faut d'abord faire une essai et r&eacute;gler tous les
- probl&egrave;mes. Pour tester la configuration, essayez d'imprimer
- quelque chose. Pour imprimer avec le gestionnaire LPD, vous
- invoquez la commande <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>,
- qui soumet un travail d'impression.</para>
-
- <para>Vous pouvez combiner <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>
- et le programme <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry>,
- dont nous avons parl&eacute; &agrave; la section
- <link linkend="printing-testing">Tester la communication avec
- l'imprimante</link>, pour g&eacute;n&eacute;rer du
- texte pour le test.</para>
-
- <para><emphasis>Tester la configuration simple de
- LPD:</emphasis></para>
-
- <para>Tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>imprimante</replaceable></userinput></screen>
- </informalexample> o&ugrave; <emphasis
- remap=it>imprimante</emphasis> est le nom d'une imprimante
- (ou un alias) d&eacute;finie dans <filename>/etc/printcap</filename>.
- Pour tester l'imprimante par d&eacute;faut, tapez <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>
- sans argument <option>-P</option>. Encore une fois, si vous
- tester une imprimante qui attend du PostScript, envoyez-lui
- un programme PostScript au lieu d'utiliser
- <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry>. Vous
- pouvez le faire en mettant ce programme dans un fichier et en
- tapant <command>lpr <replaceable>fichier</replaceable></command>.</para>
-
- <para>Avec une imprimante PostScript, vous devriez voir les
- r&eacute;sultats du programme. Si vous utilisez <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry>,
- alors le r&eacute;sultat devrait ressembler &agrave; ce qui suit:</para>
-
- <programlisting>
- !"#$%&amp;'()*+,-./01234
- "#$%&amp;'()*+,-./012345
- #$%&amp;'()*+,-./0123456
- $%&amp;'()*+,-./01234567
- %&amp;'()*+,-./012345678
- </programlisting>
-
- <para>Pour faire d'autres essais, envoyez des programmes plus
- longs (aux imprimantes qui comprennent un langage) ou
- ex&eacute;cutez <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry> avec
- d'autres arguments. Par exemple, <command>lptest 80 60</command> qui g&eacute;n&eacute;rera 60 lignes de 80 caract&egrave;res chacune.</para>
-
- <para>Si l'imprimante ne fonctionne pas, voyez la section suivante <link
- linkend="printing-troubleshooting">R&eacute;gler les probl&egrave;mes</link>.</para>
-
- </sect4>
-
- <sect4
- id="printing-troubleshooting">
- <title>R&eacute;gler les probl&egrave;mes</title>
-
- <para>Apr&egrave;s le test &eacute;l&eacute;mentaire avec <citerefentry>
- <refentrytitle>lptest</refentrytitle></citerefentry>, vous
- pouvez avoir rencontr&eacute; l'un des probl&egrave;mes suivants, au lieu
- d'obtenir une impression correcte:</para>
-
- <variablelist>
- <varlistentry><term>Cela a march&eacute; quelque temps; ou,
- l'imprimante n'a pas &eacute;ject&eacute; la page.</term>
- <listitem>
- <para>L'imprimante a bien imprim&eacute; les r&eacute;sultats du
- test ci-dessus, puis s'est arr&ecirc;t&eacute;e et n'a rien fait.
- Il vous aurait peut &ecirc;tre fallu appuyer sur le bouton
- &ldquo;Avance Papier&rdquo; ou &ldquo;Continuer
- l'Impression&rdquo; pour obtenir la suite.</para>
-
- <para>Dans ce cas, l'imprimante attendait probablement
- la suite de votre travail avant d'imprimer quoi que
- ce soit. Pour r&eacute;gler le probl&egrave;me, vous pouvez modifier
- le filtre texte pour qu'il envoie un caract&egrave;re de saut
- de page (&ldquo;FORM FEED&rdquo;)&nbsp;-&nbsp;ou tout autre
- caract&egrave;re n&eacute;cessaire&nbsp;-&nbsp;&agrave; l'imprimante. Cela suffit
- g&eacute;n&eacute;ralement pour que l'imprimante traite imm&eacute;diatement
- le texte qu'elle a encore en m&eacute;moire. C'est aussi
- utile pour &ecirc;tre s&ucirc;r que chaque travail d'impression
- se termine sur une page compl&egrave;te, de sorte que le
- travail suivant ne commence pas sur la derni&egrave;re page
- du travail qui le pr&eacute;c&egrave;de.</para>
-
- <para>Voici une proc&eacute;dure
- <filename>/usr/local/libexec/if-simple</filename>
- modifi&eacute;e qui envoie un saut de page &agrave; la fin du
- travail d'impression:
-
- <programlisting>
- #!/bin/sh
- #
- # if-simple - filtre texte &eacute;l&eacute;mentaire pour lpd
- # fichier /usr/local/libexec/if-simple
- #
- # copie simplement stdin dans stdout. Ne prend aucun argument.
- # envoie un caract&egrave;re de saut de page (\f) en fin d'impression.
-
- /bin/cat &amp;&amp; printf "\f" &amp;&amp; exit 0
- exit 2
- </programlisting></para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Le texte s'est imprim&eacute; &ldquo;en
- escalier.&rdquo;</term>
-
- <listitem>
- <para>Si vous obtenez ce qui suit:
-
- <programlisting>
- !"#$%&amp;'()*+,-./01234
- "#$%&amp;'()*+,-./012345
- $%&amp;'()*+,-./0123456
- </programlisting>
- vous &ecirc;tes la nouvelle victime de
- l'<emphasis>effet d'escalier</emphasis>, d&ucirc; &agrave; une
- interpr&eacute;tation divergente des caract&egrave;res de saut de
- ligne. Les syst&egrave;mes d'exploitation de type Unix
- utilisent un seul caract&egrave;re: le code ASCII 10, ou
- saut de ligne (LF&nbsp;-&nbsp;&ldquo;Line Feed&rdquo;).
- MS-DOS, OS/2 et d'autres utilisent deux caract&egrave;res,
- le code ASCII 10 <emphasis>et</emphasis> le code ASCII
- 13 (le retour-chariot ou CR&nbsp;-&nbsp;&ldquo;Carriage Return&rdquo;).
- De nombreuses imprimantes emploient les conventions
- MS-DOS pour passer &agrave; la ligne.</para>
-
- <para>Quand vous imprimez avec FreeBSD, votre texte ne
- contient que le caract&egrave;re de saut de ligne. L'imprimante
- passe alors &agrave; la ligne suivante, mais ne revient pas
- en d&eacute;but de ligne. C'est &agrave; cela que sert le
- retour-chariot: revenir au d&eacute;but de ligne avant
- d'imprimer le prochain caract&egrave;re.</para>
-
- <!-- This para needs to be rewritten - Nik -->
- <para>Voici ce que FreeBSD attend de votre imprimante:</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>L'imprimante re&ccedil;oit</entry>
- <entry>L'imprimante imprime</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>CR</entry>
- <entry>CR</entry>
- </row>
-
- <row>
- <entry>LF</entry>
- <entry>CR + LF</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Il y a plusieurs fa&ccedil;ons d'y arriver:
- <itemizedlist>
-
- <listitem>
- <para>Utilisez les interrupteurs du panneau de
- contr&ocirc;le de l'imprimante pour modifier la fa&ccedil;on
- dont elle interpr&egrave;te ces caract&egrave;res. Voyez le
- mode d'emploi de votre imprimante pour savoir
- comment faire.</para>
-
- <note>
- <para>Si vous utilisez aussi sur votre machine
- d'autres syst&egrave;mes d'exploitation que FreeBSD,
- vous devrez peut-&ecirc;tre
- <emphasis>configurer</emphasis> votre
- imprimante pour qu'elle interpr&egrave;te CR et LF
- en fonction de la mani&egrave;re dont ces autres
- syst&egrave;mes d'exploitation les utilisent. Vous
- pr&eacute;f&eacute;rerez alors une des autres solutions
- ci-dessous.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Faire en sorte que le pilote de liaison s&eacute;rie
- de FreeBSD convertisse les LF en CR+LF. Cela ne
- marche, bien entendu, <emphasis>qu'avec</emphasis>
- les imprimantes sur des ports s&eacute;rie. Pour cela,
- positionnez le bit CRMOD de la fonctionnalit&eacute;
- <emphasis remap="tt">fs</emphasis> de l'imprimante dans
- le fichier
- <filename>/etc/printcap</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Envoyer une
- <emphasis>s&eacute;quence d'&eacute;chappement</emphasis> &agrave;
- l'imprimante pour qu'elle traite temporairement
- les caract&egrave;res LF de fa&ccedil;on diff&eacute;rente. Consultez
- la documentation de votre imprimante pour
- conna&icirc;tre la commande ad&eacute;quate. Une fois que vous
- l'avez trouv&eacute;e, modifiez le filtre pour qu'il
- envoie cette commande avant le travail
- d'impression.</para>
-
- <para>Voici un exemple de filtre texte pour les
- imprimantes qui acceptent les s&eacute;quences
- d'&eacute;chappement du langage PCL de Hewlett-Packard.
- Ce filtre envoie la commande qui dit &agrave;
- l'imprimante de traiter les caract&egrave;res LF comme
- un CR et un LF, puis le travail d'impression et
- enfin un saut de page pour &eacute;jecter la derni&egrave;re
- page. Il devrait &ecirc;tre utilisable avec presque
- toutes les imprimantes Hewlett-Packard.</para>
-
- <programlisting>
- #!/bin/sh
- #
- # hpif - filtre texte &eacute;l&eacute;mentaire pour lpd
- # pour les imprimantes compatibles HP-PCL
- # fichier /usr/local/libexec/hpif
- #
- # copie simplement stdin dans stdout. Ne prend aucun argument.
- # dit &agrave; l'imprimante de traiter LF comme un CR+LF
-# envoie un caractere de saut de page (\f) en fin d'impression.
-
-printf "\033&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\f" &amp;&amp; exit 0
-exit 2
- </programlisting>
-
- <para>Voici un exemple de fichier
- <filename>/etc/printcap</filename> pour une
- machine appel&eacute;e orchid. Elle a une seule
- imprimante sur son premier port parall&egrave;le, une
- LaserJet 3Si Hewlett-Packard appel&eacute;e
- <hostid>teak</hostid>. Elle utilise la proc&eacute;dure
- ci-dessus comme filtre texte:
-
- <programlisting>
- #
- # /etc/printcap pour la machine orchid
- #
- teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:
- </programlisting></para>
- </listitem>
-
- </itemizedlist>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Les lignes se superposent.</term>
-
- <listitem>
- <para>L'imprimante n'a jamais avanc&eacute; d'une ligne.
- Toutes les lignes sont imprim&eacute;es les unes sur les
- autres.</para>
-
- <para>C'est le probl&egrave;me &ldquo;inverse&rdquo; de l'effet
- d'escalier d&eacute;crit ci-dessus, et c'est plus rare. Pour
- une raison quelconque, les caract&egrave;res LF que FreeBSD
- emploie en fin de ligne sont compris comme des
- caract&egrave;res CR de retour en d&eacute;but de ligne, sans passage
- &agrave; la ligne.</para>
-
- <!-- Need to rewrite this para -->
- <para>Utilisez les interrupteurs du panneau de
- contr&ocirc;le de l'imprimante pour modifier comme suit
- son interpr&eacute;tation des caract&egrave;res LF et CR.</para>
-
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>L'imprimante re&ccedil;oit</entry>
- <entry>L'imprimante imprime</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>CR</entry>
- <entry>CR</entry>
- </row>
-
- <row>
- <entry>LF</entry>
- <entry>CR + LF</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>L'imprimante perd des caract&egrave;res.</term>
-
- <listitem>
- <para>En cours d'impression, l'imprimante perd
- quelques caract&egrave;res de chaque ligne. Cela peut aller
- de mal en pis, de plus en plus de caract&egrave;res se
- perdent.</para>
-
- <para>Le probl&egrave;me tient &agrave; ce que l'imprimante ne
- suit pas le rythme auquel l'ordinateur lui envoie
- des donn&eacute;es sur la ligne s&eacute;rie. (Ce probl&egrave;me ne
- devrait pas se produire avec les imprimantes sur
- des ports parall&egrave;les.) Il y a deux fa&ccedil;ons de
- r&eacute;soudre ce probl&egrave;me:
- <itemizedlist>
-
- <listitem>
- <para>Si l'imprimante g&egrave;re le contr&ocirc;le de flux
- XON/XOFF, faites en sorte que FreeBSD l'utilise
- en positionnant le bit TANDEM de la
- fonctionnalit&eacute;
- <literal>fs</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Si l'imprimante g&egrave;re le contr&ocirc;le de flux
- mat&eacute;riel, positionnez le bit MDMBUF de la
- fonctionnalit&eacute; <literal>fs</literal>. V&eacute;rifiez
- que le c&acirc;ble qui relie l'imprimante &agrave;
- l'ordinateur est bien con&ccedil;u pour transmettre
- les signaux de contr&ocirc;le de flux (CTS/RTS).</para>
- </listitem>
-
- <listitem>
- <para>Si l'imprimante ne g&egrave;re aucun protocole de
- contr&ocirc;le de flux, utilisez la bonne combinaison
- de bits NLDELAY, TBDELAY, CRDELAY, VTDELAY, et
- BSDELAY de la fonctionnalit&eacute;
- <literal>fs</literal> pour introduire les d&eacute;lais
- appropri&eacute;s dans le flot de donn&eacute;es
- envoy&eacute; &agrave; l'imprimante.</para>
- </listitem>
-
- </itemizedlist>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Cela imprime n'importe quoi.</term>
-
- <listitem>
- <para>Ce qui s'imprime ressemble &agrave; tout, sauf au
- texte attendu.</para>
-
- <para>C'est en g&eacute;n&eacute;ral un autre sympt&ocirc;me d'un param&eacute;trage
- incorrect de la communication avec une imprimante s&eacute;rie.
- V&eacute;rifiez la vitesse en bps de la fonctionnalit&eacute;
- <literal>br</literal>, et les bits de parit&eacute;
- des fonctionnalit&eacute;s <literal>fs</literal> et
- <literal>fc</literal>; assurez-vous que l'imprimante
- utilise les m&ecirc;mes param&egrave;tres que ceux d&eacute;finis dans le
- fichier <filename>/etc/printcap</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Il ne se passe rien.</term>
-
- <listitem>
- <para>S'il ne se passe rien, le probl&egrave;me vient
- probablement de FreeBSD et non du mat&eacute;riel. Ajoutez
- la fonctionnalit&eacute; de trace
- (<literal>lf</literal>) &agrave; l'entr&eacute;e associ&eacute;e &agrave;
- l'imprimante que vous testez, dans le fichier
- <filename>/etc/printcap</filename>. Par exemple,
- voici l'entr&eacute;e pour <literal>rattan</literal>, avec
- la fonctionnalit&eacute; <literal>lf</literal>:
-
- <programlisting>
- rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\
- :lf=/var/log/rattan.log
- </programlisting>
- Refaites ensuite un essai d'impression et consultez le
- fichier de trace
- (<filename>/var/log/rattan.log</filename>, dans notre
- exemple) pour voir s'il y a des messages d'erreur.
- Essayez ensuite de corriger le probl&egrave;me au vu de
- ces messages.</para>
-
- <para>Si vous n'utilisez pas la fonctionnalit&eacute;
- <literal>lf</literal>, LPD utilise
- <filename>/dev/console</filename> par d&eacute;faut.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- </sect4>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1
- id="printing-using">
- <title>Utiliser les imprimantes</title>
-
- <para>Cette section vous explique comment utiliser les imprimantes
- que vous avez configur&eacute;es pour FreeBSD. Voici un r&eacute;sum&eacute; des
- commandes utilisateur:</para>
-
- <variablelist>
- <varlistentry><term><citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry></term>
- <listitem>
- <para>Imprime les travaux.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry></term>
-
- <listitem>
- <para>Consulte la file d'attente.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><citerefentry>
- <refentrytitle>lprm</refentrytitle></citerefentry></term>
-
- <listitem>
- <para>Retire des travaux de la file d'attente.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Il y a aussi une commande d'administration, <citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry>,
- d&eacute;crite dans la section <link linkend="printing-lpc">Administrer
- les imprimantes</link>,
- qui sert &agrave; g&eacute;rer les imprimantes et leurs
- files d'attente.</para>
-
- <para>Chacune des trois commandes <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>, <citerefentry>
- <refentrytitle>lprm</refentrytitle></citerefentry>, et
- <citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry>
- accepte l'option <option>-P <replaceable>imprimante</replaceable></option> pour pr&eacute;ciser &agrave; quelle imprimante/file d'attente,
- d&eacute;finie dans le fichier <filename>/etc/printcap</filename>,
- elle s'applique. Vous pouvez alors soumettre, annuler et
- consulter l'&eacute;tat de vos travaux sur les diff&eacute;rentes imprimantes.
- Si vous omettez l'option <option>-P</option>, ces commandes
- s'appliquent &agrave; l'imprimante d&eacute;finie par la variable
- d'environnement <envar>PRINTER</envar>. En dernier ressort, si
- vous n'avez pas d&eacute;fini la variable d'environnement
- <envar>PRINTER</envar>, ces commandes s'appliquent par d&eacute;faut &agrave;
- l'imprimante appel&eacute;e <emphasis remap=tt>lp</emphasis>.</para>
-
- <para>Dans ce qui suit, le terme
- <emphasis>imprimante par d&eacute;faut</emphasis> d&eacute;signe donc
- l'imprimante d&eacute;finie par la variable d'environnement
- <envar>PRINTER</envar>, ou l'imprimante appel&eacute;e
- <literal>lp</literal> s'il n'y a pas de variable d'environnement
- <envar>PRINTER</envar>.</para>
-
-
- <sect2
- id="printing-lpr">
- <title>Imprimer</title>
-
- <para>Pour imprimer des fichiers, tapez:
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr <replaceable>fichier</replaceable> <replaceable>...</replaceable></userinput></screen>
- </informalexample> Cela imprime chacun des fichiers indiqu&eacute;s sur
- l'imprimante par d&eacute;faut. Si vous ne donnez pas de nom de fichier,
- <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry>
- lit les donn&eacute;es &agrave; imprimer sur l'entr&eacute;e standard. Par exemple,
- la commande:
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen>
- </informalexample> imprime des fichiers syst&egrave;me importants. Pour
- choisir l'imprimante, tapez:
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr -P <replaceable>imprimante</replaceable> <replaceable>fichier</replaceable> <replaceable>...</replaceable></userinput></screen>
- </informalexample> Cet exemple imprime la liste longue du r&eacute;pertoire
- courant sur l'imprimante appel&eacute;e <literal>rattan</literal>:
-
- <informalexample>
- <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen>
- </informalexample> Comme on n'a pas donn&eacute; de nom de fichier &agrave; la
- commande
- <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>,
- elle lit les donn&eacute;es &agrave; imprimer sur l'entr&eacute;e standard, qui est ici
- le r&eacute;sultat de la commande <command>ls -l</command>.</para>
-
- <para>La commande <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry> accepte une
- grande vari&eacute;t&eacute; d'options pour contr&ocirc;ler le format, convertir
- les fichiers, imprimer plusieurs copies et ainsi de suite. Pour
- plus d'informations, reportez-vous &agrave; la section
- <link linkend="printing-lpr-options">Au-del&agrave; du simple texte : options
- d'impression</link>.</para>
-
- </sect2>
-
- <sect2
- id="printing-lpq">
- <title>Consulter l'&eacute;tat de la file d'attente</title>
-
- <para>Quand vous imprimez avec <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>, les
- donn&eacute;es que vous voulez imprimer sont regroup&eacute;es dans un
- &ldquo;travail d'impression&rdquo;, qui est envoy&eacute; au gestionnaire
- LPD. Chaque imprimante a sa file d'attente des travaux d'impression,
- et le votre y est mis en attente avec vos autres travaux et ceux des
- autres utilisateurs. L'imprimante les traite sur la base du premier
- arriv&eacute;, premier servi.</para>
-
- <para>Pour conna&icirc;tre l'&eacute;tat de la file d'attente de l'imprimante par
- d&eacute;faut, tapez:
- <citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry>. Pour une
- imprimante particuli&egrave;re, utilisez l'option <option>-P</option>. Par
- exemple, la commande:
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpq -P bamboo</userinput></screen>
- </informalexample>affiche la file d'attente de l'imprimante appel&eacute;e
- <hostid>bamboo</hostid>. Voici un exemple de r&eacute;sultat de la
- commande <command>lpq</command>:
-
- <informalexample>
- <screen>bamboo is ready and printing
- Rank Owner Job Files Total Size
- active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes
- 2nd kelly 10 (standard input) 1635 bytes
- 3rd mary 11 ... 78519 bytes</screen>
- </informalexample> Il y a trois travaux dans la file d'attente de
- <literal>bamboo</literal>. Le premier, soumis par l'utilisateur
- kelly, a &eacute;t&eacute; affect&eacute; du &ldquo;num&eacute;ro de travail&rdquo; 9. A chaque
- travail est attribu&eacute; un num&eacute;ro de travail unique. La plupart du
- temps, vous n'avez pas besoin de le conna&icirc;tre, sauf si vous voulez
- annuler l'impression; reportez-vous &agrave; la section
- <link linkend="printing-lprm">Annuler des impressions</link> pour plus de
- d&eacute;tails.</para>
-
- <para>Le travail num&eacute;ro neuf comporte deux fichiers &agrave; imprimer;
- lorsque plusieurs noms de fichiers sont donn&eacute;s en param&egrave;tres de
- la commande <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>,
- ils sont trait&eacute;s en un seul travail d'impression. C'est le travail
- en cours (ce qu'indique la mention <literal>active</literal>
- dans la colonne &ldquo;Rank&rdquo;), ce qui signifie que
- l'imprimante devrait &ecirc;tre en train de l'imprimer.</para>
-
- <para>Le deuxi&egrave;me travail est constitu&eacute; par des donn&eacute;es pass&eacute;es
- de l'entr&eacute;e standard &agrave; la commande <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>.
- Le troisi&egrave;me travail vient de l'utilisateur mary; il est bien
- plus volumineux. Les noms des fichiers qu'elle veut imprimer
- sont trop longs, c'est pourquoi la commande <citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry> n'affiche
- que trois points.</para>
-
- <para>La premi&egrave;re ligne du r&eacute;sultat de <citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry> est aussi
- utile: elle dit ce que l'imprimante est en train de faire (ou
- tout du moins, ce que LPD pense qu'elle est en train de
- faire).</para>
-
- <para>La commande <citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry> accepte
- aussi l'option <option>-l</option> qui g&eacute;n&egrave;re une sortie
- d&eacute;taill&eacute;e. Voici un exemple de r&eacute;sultat de
- <command>lpq -l</command>:</para>
-
- <informalexample>
- <screen>waiting for bamboo to become ready (offline ?)
- kelly: 1st [job 009rose]
- /etc/host.conf 73 bytes
- /etc/hosts.equiv 15 bytes
-
- kelly: 2nd [job 010rose]
- (standard input) 1635 bytes
-
- mary: 3rd [job 011rose]
- /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes</screen>
- </informalexample>
-
- </sect2>
-
- <sect2
- id="printing-lprm">
- <title>Annuler des impressions</title>
-
- <para>Si vous changez d'avis quant &agrave; un travail d'impression, vous
- pouvez le retirer de la file d'attente avec la commande
- <citerefentry>
- <refentrytitle>lprm</refentrytitle></citerefentry>.
- La plupart du temps, vous pouvez m&ecirc;me utiliser <citerefentry>
- <refentrytitle>lprm</refentrytitle></citerefentry> pour
- annuler une impression en cours, mais il se peut que tout ou une
- partie du travail soit malgr&eacute; tout imprim&eacute;.</para>
-
- <para>Pour annuler une impression sur l'imprimante par d&eacute;faut,
- utilisez
- <citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry> pour conna&icirc;tre
- le num&eacute;ro du travail. Puis tapez:
- <informalexample>
- <screen>&prompt.user; <userinput>lprm <replaceable>num&eacute;ro_du_travail</replaceable></userinput></screen>
- </informalexample></para>
-
- <para>Pour annuler une impression sur une imprimante donn&eacute;e, ajoutez
- l'option <option>-P</option>. La commande qui suit retire le travail
- d'impression num&eacute;ro 10 de la file d'attente de l'imprimante
- <hostid>bamboo</hostid>:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>lprm -P bamboo 10</userinput></screen>
- </informalexample>
-
- <para>La commande <citerefentry>
- <refentrytitle>lprm</refentrytitle></citerefentry>
- accepte diff&eacute;rents raccourcis:</para>
-
- <variablelist>
- <varlistentry><term>lprm -</term>
- <listitem>
- <para>Annule tous les travaux (sur l'imprimante par d&eacute;faut)
- qui vous appartiennent.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>lprm <replaceable>utilisateur</replaceable></term>
-
- <listitem>
- <para>Annule tous les travaux (sur l'imprimante par d&eacute;faut)
- qui appartiennent &agrave; l'<replaceable>utilisateur</replaceable>. Le
- super-utilisateur peut annuler les travaux d'impression
- des autres utilisateurs; vous ne pouvez retirer que vos
- propres travaux.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>lprm</term>
-
- <listitem>
- <para>Sans num&eacute;ro de travail, nom d'utilisateur, ou
- <option>-</option> sur la ligne de commande,
- <citerefentry>
- <refentrytitle>lprm</refentrytitle></citerefentry> retire
- le travail en cours de la file d'attente de l'imprimante
- par d&eacute;faut, s'il vous appartient. Le super-utilisateur
- peut annuler n'importe quel travail en cours.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Employez simplement l'option <option>-P</option> avec les
- raccourcis ci-dessus pour les appliquer &agrave; une autre imprimante
- que l'imprimante par d&eacute;faut. La commande suivante, par exemple,
- retire tous les travaux de l'utilisateur courant de la file
- d'attente de l'imprimante appel&eacute;e <literal>rattan</literal>:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>lprm -P rattan -</userinput></screen>
- </informalexample>
-
- <note>
- <para>Si vous travaillez dans un environnement en r&eacute;seau, vous
- ne pourrez annuler de travaux avec
- <citerefentry>
- <refentrytitle>lprm</refentrytitle></citerefentry>
- que depuis la machine &agrave; partir de laquelle ils ont &eacute;t&eacute; soumis,
- m&ecirc;me si l'imprimante concern&eacute;e est accessible depuis d'autres
- machines. C'est ce qu'illustre la s&eacute;quence suivante:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr -P rattan myfile</userinput>
- &prompt.user; <userinput>rlogin orchid</userinput>
- &prompt.user; <userinput>lpq -P rattan</userinput>
- Rank Owner Job Files Total Size
- active seeyan 12 ... 49123 bytes
- 2nd kelly 13 myfile 12 bytes
- &prompt.user; <userinput>lprm -P rattan 13</userinput>
- rose: Permission denied
- &prompt.user; <userinput>logout</userinput>
- &prompt.user; <userinput>lprm -P rattan 13</userinput>
- dfA013rose dequeued
- cfA013rose dequeued
- </screen>
- </informalexample>
- </note>
- </sect2>
-
- <sect2
- id="printing-lpr-options">
- <title>Au-del&agrave; du simple texte: options d'impression</title>
-
- <para>La commande <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry> accepte
- un certain nombre d'options qui contr&ocirc;lent la mise en page,
- la conversion des graphiques et d'autres formats de
- fichiers, le nombre de copies, et autres. Cette section
- d&eacute;crit ces options.</para>
-
- <sect3
- id="printing-lpr-options-format">
- <title>Options de mise en page et de conversion</title>
-
- <para>Les options de <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>
- ci-dessous contr&ocirc;lent la mise en page des fichiers d'un travail
- d'impression. Utilisez-les si vos fichiers ne contiennent pas
- uniquement du texte ou si vous voulez formater du texte avec
- l'utilitaire <citerefentry>
- <refentrytitle>pr</refentrytitle></citerefentry>.</para>
-
- <para>Par exemple, la commande suivante imprime un fichier DVI
- (produit par le traitement de texte TeX) appel&eacute;
- <filename>rapport-poissons.dvi</filename> sur l'imprimante appel&eacute;e
- <literal>bamboo</literal>:</para>
- <informalexample>
- <screen>&prompt.user; <userinput>lpr -P bamboo -d rapports-poissons.dvi</userinput></screen>
- </informalexample>
-
- <para>Ces options sont valables pour tous les fichiers du travail
- d'impression, vous ne pouvez donc pas m&eacute;langer des fichiers
- DVI et ditroff (par exemple). Vous devez les soumettre dans des
- travaux s&eacute;par&eacute;s avec des options de conversion diff&eacute;rentes pour
- chaque travail.</para>
-
- <note>
- <para>Toutes ces options, sauf <option>-p</option> et
- <option>-T</option> impliquent que les filtres de conversion
- soient install&eacute;s pour les imprimantes utilis&eacute;es. Pour l'option
- <option>-d</option>, par exemple, il faut le filtre de
- conversion DVI. La section <link
- linkend="printing-advanced-convfilters">Filtres de conversion</link>
- vous explique cela en d&eacute;tail.</para>
- </note>
-
-
- <variablelist>
- <varlistentry><term><option>-c</option></term>
- <listitem>
- <para>Imprime des fichiers cifplot.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-d</option></term>
-
- <listitem>
- <para>Imprime des fichiers DVI.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-f</option></term>
-
- <listitem>
- <para>Imprime des programmes FORTRAN.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-g</option></term>
-
- <listitem>
- <para>Imprime des graphiques pour un traceur (&ldquo;plot&rdquo;).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-i<replaceable>nombre</replaceable></option></term>
-
- <listitem>
- <para>Indente la sortie de <replaceable>nombre</replaceable> de colonnes; si vous ne pr&eacute;cisez pas
- <replaceable>nombre</replaceable>, indente de 8
- colonnes. Cette option ne s'applique qu'&agrave; certains filtres
- de conversion.</para>
-
- <note>
- <para>Ne mettez pas de blanc entre
- <option>-i</option> et le nombre.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-l</option></term>
-
- <listitem>
- <para>Imprime le texte tel quel, y compris les caract&egrave;res
- de contr&ocirc;le.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-n</option></term>
-
- <listitem>
- <para>Imprime des donn&eacute;es ditroff (troff ind&eacute;pendant du
- p&eacute;riph&eacute;rique&nbsp;-&nbsp;&ldquo;device independent troff&rdquo;).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-p</term>
-
- <listitem>
- <para>Formate du texte avec <citerefentry>
- <refentrytitle>pr</refentrytitle></citerefentry>
- avant de l'imprimer. Voyez <citerefentry><refentrytitle>pr</refentrytitle><manvolnum>1</manvolnum></citerefentry> pour plus informations.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-T
- <replaceable>titre</replaceable></option></term>
-
- <listitem>
- <para>Utilise <replaceable>titre</replaceable> comme en-t&ecirc;te
- <citerefentry>
- <refentrytitle>pr</refentrytitle></citerefentry>
- au lieu du nom de fichier. Cette option ne s'applique qu'avec
- l'option <option>-p</option>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-t</option></term>
-
- <listitem>
- <para>Imprime des donn&eacute;es troff.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-v</option></term>
-
- <listitem>
- <para>Imprime des images point par point.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>Voici un exemple: cette commande imprime une version proprement
- format&eacute;e des pages de manuel de <citerefentry>
- <refentrytitle>ls</refentrytitle></citerefentry>
- sur l'imprimante par d&eacute;faut:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen>
- </informalexample>
-
- <para>La commande <citerefentry>
- <refentrytitle>zcat</refentrytitle></citerefentry>
- d&eacute;compresse le source des pages de manuel de <citerefentry>
- <refentrytitle>ls</refentrytitle></citerefentry> et les passe
- &agrave; la commande <citerefentry>
- <refentrytitle>troff</refentrytitle></citerefentry>,
- qui les convertit au format GNU troff et le passe &agrave;
- <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>,
- qui soumet le travail au gestionnaire d'impression. Comme nous avons
- utilis&eacute; l'option <option>-t</option> de la commande
- <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>, le gestionnaire
- d'impression convertira le format GNU troff en un format compr&eacute;hensible
- par l'imprimante.</para>
-
- </sect3>
-
- <sect3
- id="printing-lpr-options-job-handling">
- <title>Options de traitement</title>
-
- <para>Les options <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry> qui suivent
- indiquent &agrave; LPD les traitements particuliers &agrave; appliquer &agrave; un
- travail d'impression:</para>
-
- <para>
- <variablelist>
- <varlistentry><term>-# <replaceable>nombre</replaceable></term>
- <listitem>
- <para>Produit le <replaceable>nombre</replaceable> de copies
- de chaque fichier du travail d'impression, au lieu d'une
- seule. L'administrateur peut d&eacute;sactiver cette option pour
- r&eacute;duire l'usure de l'imprimante et encourager l'utilisation
- de la photocopieuse. Reportez-vous &agrave; la section <link
- linkend="printing-advanced-restricting-copies">Restreindre
- l'impression de plusieurs exemplaires</link>.</para>
-
- <para>Cet exemple imprime trois exemplaires du fichier
- <filename>analyseur.c</filename> suivis de trois exemplaires
- de <filename>analyseur.h</filename> sur l'imprimante par
- d&eacute;faut:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr -#3 analyseur.c analyseur.h</userinput></screen>
- </informalexample>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-m</term>
-
- <listitem>
- <para>Envoie un courrier &eacute;lectronique &agrave; la fin du travail
- d'impression. Avec cette option, LPD vous envoie un
- courrier &eacute;lectronique quand il a fini de traiter votre
- travail d'impression. Son message vous dit si le travail
- s'est normalement d&eacute;roul&eacute; ou s'il y a eu une erreur, et
- (la plupart du temps) quelle &eacute;tait l'erreur.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-s</term>
-
- <listitem>
- <para>Ne recopie pas les fichiers dans le r&eacute;pertoire tampon, mais
- utilise des liens symboliques.</para>
-
- <para>Vous utiliserez certainement cette option si vous avez
- des travaux d'impression volumineux. Cela fait gagner de la place
- dans le r&eacute;pertoire tampon (votre travail pourrait saturer le
- syst&egrave;me de fichiers o&ugrave; se trouve le r&eacute;pertoire tampon). Cela fait
- aussi gagner du temps, car LPD n'a pas besoin de recopier votre
- travail d'impression dans le r&eacute;pertoire tampon.</para>
-
- <para>Il y a cependant une restriction: comme LPD utilisera les
- fichiers d'origine, vous ne pourrez pas les modifier ou les
- supprimer avant qu'ils aient &eacute;t&eacute; imprim&eacute;s.</para>
-
- <note>
- <para>Si vous imprimez sur une imprimante &agrave; distance, LPD
- copiera les fichiers de la machine locale
- vers la machine distante, donc l'option <option>-s</option>
- ne fera gagner de place que sur la machine locale,
- mais pas sur la machine distante. Cela reste n&eacute;anmoins
- utile.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-r</term>
-
- <listitem>
- <para>D&eacute;truit les fichiers apr&egrave;s les avoir copi&eacute;s dans le
- r&eacute;pertoire tampon, ou apr&egrave;s les avoir imprim&eacute;s avec l'option
- <option>-s</option>. Soyez prudents avec cette
- option!</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </sect3>
-
- <sect3
- id="printing-lpr-options-misc">
- <title>Options pour la page d'en-t&ecirc;te</title>
-
- <para>Ces options de <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>
- influent sur le texte qui est normalement imprim&eacute; sur la page
- d'en-t&ecirc;te du travail d'impression. Si les pages d'en-t&ecirc;te sont
- d&eacute;sactiv&eacute;es pour l'imprimante destinataire, ces options n'ont
- pas d'effet. Voyez la section <link
- linkend="printing-advanced-header-pages">Pages d'en-t&ecirc;te</link>
- pour savoir comment g&eacute;rer les pages d'en-t&ecirc;te.</para>
-
-
- <variablelist>
- <varlistentry><term>-C <replaceable>texte</replaceable></term>
- <listitem>
- <para>Remplace le nom de machine sur la page d'en-t&ecirc;te par
- <replaceable>texte</replaceable>. Le nom de machine est
- normalement celui de la machine d'o&ugrave; le travail a &eacute;t&eacute;
- soumis.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-J <replaceable>texte</replaceable></term>
-
- <listitem>
- <para>Remplace le nom du travail sur la page d'en-t&ecirc;te par
- <replaceable>texte</replaceable>. Le nom du travail est
- normalement le nom du premier fichier &agrave; imprimer, ou
- <filename>stdin</filename> si vous imprimez depuis l'entr&eacute;e
- standard.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-h</term>
-
- <listitem>
- <para>N'imprime pas de page d'en-t&ecirc;te.</para>
-
- <note>
- <para>Sur certains sites, cette option n'a pas d'effet, selon
- la fa&ccedil;on dont les pages d'en-t&ecirc;te sont g&eacute;n&eacute;r&eacute;es. Voyez la section
- <link
- linkend="printing-advanced-header-pages">Pages d'en-t&ecirc;te</link>
- pour plus de d&eacute;tails.</para>
- </note>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect3>
-</sect2>
-
-<sect2
- id="printing-lpc">
- <title>Administrer les imprimantes</title>
-
- <para>En tant qu'administrateur de vos imprimantes, vous avez d&ucirc; les
- installer, les configurer et les tester. Avec la commande <citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry>,
- vous pouvez encore agir d'autres fa&ccedil;ons sur vos imprimantes. Avec
- <citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry>, vous
- pouvez:</para>
-
- <para>
- <itemizedlist>
-
- <listitem>
- <para>D&eacute;marrer et arr&ecirc;ter les imprimantes.</para>
- </listitem>
-
- <listitem>
- <para>Activer et d&eacute;sactiver leurs files d'attente.</para>
- </listitem>
-
- <listitem>
- <para>R&eacute;ordonner les travaux de chaque file d'attente.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>Une remarque tout d'abord sur la terminologie: si une imprimante est
- <emphasis>arr&ecirc;t&eacute;e</emphasis>, elle n'imprimera plus rien de ce qui se trouve
- dans sa file d'attente. Les utilisateurs peuvent toujours soumettre leurs
- travaux, qui attendront dans la file d'attente que l'imprimante soit
- <emphasis>red&eacute;marr&eacute;e</emphasis> ou la file d'attente vid&eacute;e.</para>
-
- <para>Si une file d'attente est <emphasis>d&eacute;sactiv&eacute;e</emphasis>, aucun
- utilisateur (sauf le super-utilisateur) ne peut soumettre de travail &agrave; cette imprimante. Une
- file d'attente <emphasis>active</emphasis> autorise la soumission de
- travaux d'impression. Une imprimante peut &ecirc;tre <emphasis>d&eacute;marr&eacute;e</emphasis>
- pour une file d'attente inactive, auquel cas, elle continue &agrave; imprimer les
- travaux jusqu'&agrave; ce que la file d'attente soit vid&eacute;e.</para>
-
- <para>En g&eacute;n&eacute;ral, vous devrez avoir les droits du super-utilisateur pour utiliser la
- commande <citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry>. Les utilisateurs
- ordinaires ne peuvent utiliser <citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry> que pour interroger
- l'&eacute;tat d'une imprimante et red&eacute;marrer une imprimante qui s'est
- interrompue.</para>
-
- <para>Voici un r&eacute;sum&eacute; des commandes <citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry>.
- La plupart de ces commandes prennent un argument
- <replaceable>imprimante</replaceable> qui dit &agrave; quelle imprimante
- elles s'appliquent. Vous pouvez utiliser l'argument <literal>all</literal>
- comme <replaceable>imprimante</replaceable> pour qu'elles s'appliquent
- &agrave; toutes les imprimantes list&eacute;es dans le fichier
- <filename>/etc/printcap</filename>.</para>
-
-
- <variablelist>
- <varlistentry><term><command>abort
- <replaceable>imprimante</replaceable></command></term>
- <listitem>
- <para>Annule le travail en cours et arr&ecirc;te l'imprimante.
- Les utilisateurs peuvent toujours soumettre leurs travaux si la
- file d'attente est active.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>clean
- <replaceable>imprimante</replaceable></command></term>
-
- <listitem>
- <para>Nettoie le repertoire tampon. Il arrive que les fichiers
- associ&eacute;s &agrave; un travail d'impression ne soient pas correctement
- supprim&eacute;s par LPD, en particulier s'il s'est produit des
- erreurs lors de l'impression ou s'il y a eu beaucoup d'activit&eacute;
- d'administration. Cette commande recherche les fichiers qui
- n'ont plus lieu d'&ecirc;tre dans le r&eacute;pertoire tampon et les
- supprime.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>disable
- <replaceable>imprimante</replaceable></command></term>
-
- <listitem>
- <para>Interdit la mise en file d'attente de nouveaux travaux. Si
- l'imprimante est active, elle continuera &agrave; imprimer les travaux
- qui y sont d&eacute;j&agrave;. Le super-utilisateur (root) peut toujours
- soumettre des travaux d'impression, m&ecirc;me &agrave; une file d'attente
- d&eacute;sactiv&eacute;e.</para>
-
- <para>Cette commande est utile si vous testez une nouvelle
- imprimante ou un nouveau filtre: d&eacute;sactivez la file
- d'attente et soumettez vos travaux en &eacute;tant super-utilisateur. Les
- autres utilisateurs ne pourront pas soumettre de travaux
- tant que vous n'aurez pas fini vos tests et r&eacute;activ&eacute; la
- file d'attente avec la commande <command>enable</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command remap="tt">down
- <replaceable>imprimante</replaceable>
- <replaceable>message</replaceable></command></term>
-
- <listitem>
- <para>Arr&ecirc;te compl&egrave;tement une imprimante. C'est l'&eacute;quivalent de
- <command>disable</command> suivie de
- <command>stop</command>. Le <replaceable>message</replaceable>
- est affich&eacute; quand un utilisateur interroge l'&eacute;tat de la file
- d'attente avec la commande <citerefentry>
- <refentrytitle>lpq</refentrytitle></citerefentry>
- ou <command>lpc status</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>enable
- <replaceable>imprimante</replaceable></command></term>
-
- <listitem>
- <para>Active la file d'attente d'une imprimante. Les utilisateurs
- peuvent soumettre leurs travaux, mais ils ne seront imprim&eacute;s que
- quand l'imprimante aura &eacute;t&eacute; d&eacute;marr&eacute;e.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command remap="tt">help
- <replaceable>commande</replaceable></command></term>
-
- <listitem>
- <para>Affiche de l'aide sur la
- <replaceable>commande</replaceable>. Sans
- <replaceable>commande</replaceable>, affiche un r&eacute;sum&eacute; des
- commandes disponibles.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>restart
- <replaceable>imprimante</replaceable></command></term>
-
- <listitem>
- <para>D&eacute;marre l'imprimante. Les utilisateurs normaux peuvent utiliser
- cette commande si des circonstances extraordinaires interrompent
- le bon fonctionnement de LPD, mais ils ne peuvent pas l'employer
- pour red&eacute;marrer une imprimante arr&ecirc;t&eacute;e avec la commande
- <command>stop</command> ou <command>down</command>.
- La commande <command>restart</command>
- est l'&eacute;quivalent de <command>abort</command> suivie de
- <command>start</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>start
- <replaceable>imprimante</replaceable></command></term>
-
- <listitem>
- <para>D&eacute;marre l'imprimante. Elle imprimera les travaux de sa file
- d'attente.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>stop
- <replaceable>imprimante</replaceable></command></term>
-
- <listitem>
- <para>Arr&ecirc;te l'imprimante. Elle terminera l'impression du travail en
- cours puis cessera d'imprimer ce qui se trouve dans sa file
- d'attente. M&ecirc;me si l'imprimante est arr&ecirc;t&eacute;e, les utilisateurs
- peuvent toujours soumettre des travaux &agrave; une file d'attente
- active.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>topq
- <replaceable>imprimante</replaceable>
- <replaceable>travaux_ou_utilisateur</replaceable></command></term>
-
- <listitem>
- <para>R&eacute;ordonne la file d'attente de
- l'<replaceable>imprimante</replaceable> en pla&ccedil;ant les
- <replaceable>travaux</replaceable> dont les num&eacute;ros sont donn&eacute;s
- ou ceux qui appartiennent &agrave; l'<replaceable>utilisateur</replaceable>
- en t&ecirc;te de la file. Vous ne pouvez pas utiliser
- <literal>all</literal> comme <replaceable>imprimante</replaceable>
- avec cette commande.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><command>up
- <replaceable>imprimante</replaceable></command></term>
-
- <listitem>
- <para> Met en service une <replaceable>imprimante</replaceable>. C'est
- l'inverse de la commande <command>down</command> et &eacute;quivaut &agrave;
- <command>start</command> suivie de <command>enable</command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para><citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry> accepte toutes les
- commandes pr&eacute;c&eacute;dentes depuis la ligne de commande. Si vous ne donnez
- aucune commande, <citerefentry>
- <refentrytitle>lpc</refentrytitle></citerefentry> passe en mode interactif
- et vous pouvez entrer vos commandes jusqu'&agrave; ce que vous tapiez
- <command>exit</command>, <command>quit</command>, ou fin_de_fichier.</para>
-
-</sect2>
-</sect1>
-
-<sect1
-id="printing-advanced">
-<title>Configuration avanc&eacute;e d'une imprimante</title>
-
-<para>Cette section d&eacute;crit les filtres pour des formatages particuliers,
- les pages d'en-t&ecirc;te, l'impression en r&eacute;seau, les restrictions et la
- comptabilisation de l'utilisation des imprimantes.</para>
-
-
-<sect2
- id="printing-advanced-filter-intro">
- <title>Filtres</title>
-
- <para>Bien que LPD prenne en charge le protocole r&eacute;seau, la gestion de la
- file d'attente, le contr&ocirc;le d'acc&egrave;s et d'autres aspects des t&acirc;ches
- d'impression, la plupart du travail <emphasis>effectif</emphasis> est
- confi&eacute; aux <emphasis>filtres</emphasis>. Les filtres sont des programmes
- qui communiquent avec l'imprimante et se chargent de leurs caract&eacute;ristiques
- et exigences particuli&egrave;res. Lors de la configuration simple, nous avons
- install&eacute; un filtre texte&nbsp;-&nbsp;un filtre tr&egrave;s &eacute;l&eacute;mentaire qui devrait
- marcher avec la plupart des imprimantes.
- (cf. section <link linkend="printing-textfilter">Installer le filtre
- texte</link>).</para>
-
- <para>Cependant, pour profiter de la conversion de format, de la
- comptabilisation des impressions, des particularit&eacute;s de certaines
- imprimantes, et ainsi de suite, il est utile de comprendre comment
- fonctionnent les filtres. En dernier ressort, ce sont les filtres
- qui g&egrave;reront ces fonctionnalit&eacute;s. La mauvaise nouvelle est que la
- plupart du temps, <emphasis>vous</emphasis> devrez vous-m&ecirc;me fournir
- ces filtres. La bonne nouvelle est que beaucoup sont d&eacute;j&agrave; disponibles;
- quand ce n'est pas le cas, ils sont en g&eacute;n&eacute;ral faciles &agrave; &eacute;crire.</para>
-
- <para>FreeBSD est aussi livr&eacute; avec un filtre,
- <filename>/usr/libexec/lpr/lpf</filename>, qui fonctionne avec nombre
- d'imprimantes capables d'imprimer du texte. (Il g&egrave;re les retours arri&egrave;re,
- les tabulations et la comptabilit&eacute;, mais c'est &agrave; peu pr&egrave;s tout ce qu'il
- fait.) Il y a aussi plusieurs filtres ou composants de filtres au catalogue
- des logiciels port&eacute;s.</para>
-
- <para>Voici ce que vous trouverez dans cette section:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>La section <link linkend="printing-advanced-filters">Comment
- fonctionnent les filtres</link> essaie de vous donner une vue d'ensemble
- du r&ocirc;le du filtre dans le processus d'impression. Vous devriez
- lire cette section pour comprendre ce qui se passe
- &ldquo;dans la coulisse&rdquo; quand LPD utilise les filtres. Cela
- peut vous aider &agrave; anticiper et rem&eacute;dier aux probl&egrave;mes que vous
- rencontrerez au fur et &agrave; mesure que vous installerez de plus en
- plus de filtres sur chacune de vos imprimantes.</para>
- </listitem>
-
- <listitem>
- <para>LPD s'attend &agrave; ce que, par d&eacute;faut, chaque imprimante soit
- capable d'imprimer du texte. C'est un probl&egrave;me avec les
- imprimantes PostScript (ou d'autres imprimantes qui utilisent
- un langage d'impression), qui ne savent pas imprimer
- directement du texte. La section <link
- linkend="printing-advanced-if-conversion">Imprimer
- du texte sur des imprimantes PostScript</link>
- vous explique comment r&eacute;soudre ce probl&egrave;me.
- Je vous recommande de la lire si vous avez une imprimante
- PostScript.</para>
- </listitem>
-
- <listitem>
- <para>PostScript est un format de sortie populaire pour
- beaucoup de programmes. Certaines personnes (moi y-compris)
- &eacute;crivent directement du code PostScript. Mais les imprimantes
- PostScript sont ch&egrave;res. La section
- <link linkend="printing-advanced-ps">Emuler
- PostScript sur des imprimantes Non-PostScript</link>
- vous explique comment vous pouvez ajuster le filtre texte
- d'une imprimante pour accepter et imprimer des donn&eacute;es
- PostScript sur une imprimante qui n'est
- <emphasis>pas PostScript</emphasis>. Je vous recommande
- de le lire si vous n'avez pas d'imprimante PostScript.</para>
- </listitem>
-
- <listitem>
- <para>La section <link linkend="printing-advanced-convfilters">Filtres
- de conversion</link> vous donne une m&eacute;thode pour
- automatiser la conversion de formats de fichiers particuliers,
- comme des donn&eacute;es graphiques ou issues d'un traitement de
- texte, vers un format compr&eacute;hensible pour votre imprimante.
- Apr&egrave;s avoir lu cette section, vous devriez &ecirc;tre capable de
- configurer vos imprimantes pour que les utilisateurs puissent
- taper <command>lpr -t</command> pour imprimer des donn&eacute;es
- troff, <command>lpr -d</command> pour imprimer des donn&eacute;es
- DVI produit par TeX, ou <command>lpr -v</command>
- pour imprimer des images point &agrave; point, et ainsi de suite. Je
- conseille la lecture de cette section.</para>
- </listitem>
-
- <listitem>
- <para>La section <link linkend="printing-advanced-of">Filtres
- de sortie</link> introduit une possibilit&eacute;
- rarement utilis&eacute;e de LPD: les filtres de sortie. A moins
- que vous n'imprimiez des pages d'en-t&ecirc;te (voyez la section <link
- linkend="printing-advanced-header-pages">Pages d'en-t&ecirc;te</link>),
- vous pouvez probablement sauter
- cette section.</para>
- </listitem>
-
- <listitem>
- <para>La section <link linkend="printing-advanced-lpf"><command>lpf</command>:
- un filtre texte</link> d&eacute;crit <command>lpf</command>,
- un filtre texte assez complet, quoique simple, pour les
- imprimantes ligne (et les imprimantes laser qui fonctionnent
- comme des imprimantes ligne) et qui est livr&eacute; avec FreeBSD.
- S'il vous faut un moyen simple pour comptabiliser le
- fonctionnement d'une imprimante en mode texte, ou si vous
- avez une imprimante qui fume lorsqu'elle aper&ccedil;oit un retour
- arri&egrave;re, vous devriez absolument envisager d'utiliser
- <command>lpf</command>.</para>
- </listitem>
-
- </itemizedlist>
-
- <sect3
- id="printing-advanced-filters">
- <title>Comment fonctionnent les filtres</title>
-
- <para>Comme expliqu&eacute; plus haut, un filtre est un programme
- ex&eacute;cut&eacute; par LPD pour g&eacute;rer ce qui d&eacute;pend de l'imprimante
- dans la communication avec celle-ci.</para>
-
- <para>Quand LPD veut imprimer un fichier appartenant &agrave; un travail
- d'impression, il d&eacute;marre un programme de filtre. Il affecte &agrave;
- l'entr&eacute;e standard du filtre le fichier &agrave; imprimer, &agrave; sa sortie
- standard l'imprimante et &agrave; son fichier d'erreur standard le
- fichier de trace (d&eacute;fini par la fonctionnalit&eacute;
- <literal>lf</literal> de <filename>/etc/printcap</filename>, ou
- <filename>/dev/console</filename> par d&eacute;faut).</para>
-
- <para>Quel filtre LPD utilise et avec quels arguments d&eacute;pend du
- contenu du fichier <filename>/etc/printcap</filename> et des
- arguments qu'a donn&eacute;s l'utilisateur sur la ligne de commande de
- <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry> pour ce
- travail d'impression. Par exemple, s'il a utilis&eacute;
- <command>lpr -t</command>, LPD d&eacute;marrera le filtre troff, indiqu&eacute;
- par la fonctionnalit&eacute; <literal>tf</literal> pour l'imprimante
- destinataire. Si l'utilisateur veut imprimer du texte, il lancera
- le filtre <literal>if</literal> (c'est vrai la plupart du temps,
- voyez la section <link linkend="printing-advanced-of">Filtres de sortie</link>
- pour plus de d&eacute;tails).</para>
-
- <para>Il y a trois sortes de filtres que vous pouvez d&eacute;finir dans
- <filename>/etc/printcap</filename>:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Le <emphasis>filtre texte</emphasis>, inexactement
- appel&eacute; <emphasis>filtre d'entr&eacute;e</emphasis> dans la
- documentation de LPD, se charge de l'impression du texte
- ordinaire. Consid&eacute;rez-le comme le filtre par d&eacute;faut. LPD
- suppose que toutes les imprimantes savent par d&eacute;faut
- imprimer du texte, et c'est le r&ocirc;le du filtre texte
- de faire en sorte que les retours arri&egrave;re, tabulations
- et autres caract&egrave;res sp&eacute;ciaux ne posent pas de probl&egrave;mes
- &agrave; l'imprimante. Si vous &ecirc;tes dans un environnement o&ugrave; vous
- devez comptabiliser l'utilisation des imprimantes, le
- filtre texte doit aussi s'en charger, habituellement en
- comptant le nombre de lignes et en le comparant au nombre
- de lignes par page accept&eacute; par l'imprimante. Le filtre texte
- est ex&eacute;cut&eacute; avec les arguments suivants:
-
- <cmdsynopsis>
- <command>nom_du_filtre</command>
- <arg>-c</arg>
- <arg choice="plain">-w<replaceable>largeur</replaceable></arg>
- <arg choice="plain">-l<replaceable>hauteur</replaceable></arg>
- <arg choice="plain">-i<replaceable>indentation</replaceable></arg>
- <arg choice="plain">-n <replaceable>utilisateur</replaceable></arg>
- <arg choice="plain">-h <replaceable>h&ocirc;te</replaceable></arg>
- <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg>
- </cmdsynopsis> o&ugrave;:
-
- <variablelist>
- <varlistentry><term><option>-c</option></term>
- <listitem>
- <para>est utilis&eacute; si le travail a &eacute;t&eacute; soumis par
- <command>lpr -l</command>,</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><replaceable>largeur</replaceable></term>
-
- <listitem>
- <para>est la valeur donn&eacute;e avec la fonctionnalit&eacute;
- <literal>pw</literal> (largeur de page&nbsp;-&nbsp;&ldquo;page width&rdquo;)
- dans <filename>/etc/printcap</filename>,
- 132 par d&eacute;faut,</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><replaceable>length</replaceable></term>
-
- <listitem>
- <para>est la valeur indiqu&eacute;e par la fonctionnalit&eacute;
- <literal>pl</literal> (hauteur de page&nbsp;-&nbsp;&ldquo;page length&rdquo;), 66 par
- d&eacute;faut,</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><replaceable>indentation</replaceable></term>
-
- <listitem>
- <para>indentation pr&eacute;cis&eacute;e par
- <command>lpr -i</command>, 0 par d&eacute;faut,</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><replaceable>utilisateur</replaceable></term>
-
- <listitem>
- <para>est le nom (de session) de l'utilisateur imprimant le fichier,</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><replaceable>h&ocirc;te</replaceable></term>
-
- <listitem>
- <para>est le nom de la machine d'o&ugrave; le travail a &eacute;t&eacute;
- soumis,</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><replaceable>fichier_comptable</replaceable></term>
-
- <listitem>
- <para>est le nom du fichier de comptabilit&eacute; sp&eacute;cif&eacute;
- par la fonctionnalit&eacute; <literal>af</literal>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- </para>
- </listitem>
-
- <listitem>
- <para>Un <emphasis>filtre de conversion</emphasis> convertit
- un format de fichier particulier en un format que
- l'imprimante comprend. Par exemple, des donn&eacute;es provenant
- du traitement de texte ditroff ne peuvent pas &ecirc;tre
- imprim&eacute;es directement, mais vous pouvez installer un
- filtre de conversion pour les fichiers ditroff pour
- transformer les fichiers ditroff de fa&ccedil;on &agrave; ce que
- l'imprimante les dig&egrave;re et les imprime. La section
- <link linkend="printing-advanced-convfilters">Filtres de conversion</link>
- vous dit tout ce que vous
- devez savoir sur ces filtres. Les filtres de conversion
- doivent aussi g&eacute;rer la comptabilit&eacute;, si vous en avez besoin.
- Les filtres de conversion sont ex&eacute;cut&eacute;s avec les arguments
- suivants:
-
- <cmdsynopsis>
- <command>nom_du_filtre</command>
- <arg
- choice="plain">-x<replaceable>largeur_du_pixel</replaceable></arg>
- <arg choice="plain">-y<replaceable>hauteur_du_pixel</replaceable></arg>
- <arg choice="plain">-n <replaceable>utilisateur</replaceable></arg>
- <arg choice="plain">-h <replaceable>h&ocirc;te</replaceable></arg>
- <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg>
- </cmdsynopsis> o&ugrave; <replaceable>largeur_du_pixel</replaceable> est la valeur
- d&eacute;finie par la fonctionnalit&eacute;
- <literal>px</literal> (0 par d&eacute;faut)
- et <replaceable>hauteur_du_pixel</replaceable> celle d&eacute;finie
- par <literal>py</literal>
- (0 par d&eacute;faut).</para>
- </listitem>
-
- <listitem>
- <para>Le <emphasis>filtre de sortie</emphasis> n'est utilis&eacute;
- que s'il n'y a pas de filtre texte, ou que les pages
- d'en-t&ecirc;te sont activ&eacute;es. D'apr&egrave;s mon exp&eacute;rience personnelle,
- les filtres de sortie sont rarement utilis&eacute;s. La section
- <link linkend="printing-advanced-of">Filtres de sortie</link>
- les d&eacute;crit. Un filtre de sortie n'a que deux
- arguments:
-
- <cmdsynopsis>
- <command>nom_du_filtre</command>
- <arg choice="plain">-w<replaceable>largeur</replaceable></arg>
- <arg choice="plain">-l<replaceable>hauteur</replaceable></arg>
- </cmdsynopsis> qui sont identiques aux arguments
- <option>-w</option> et <option>-l</option>
- du filtre texte.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Les filtres doivent aussi retourner
- (&ldquo;exit&rdquo;) avec l'un des codes retour
- suivants:</para>
-
- <variablelist>
- <varlistentry><term>exit 0</term>
- <listitem>
- <para>Le filtre a correctement imprim&eacute; le fichier.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>exit 1</term>
-
- <listitem>
- <para>Le filtre n'a pas pu imprimer le fichier mais veut
- que LPD tente une nouvelle impression. LPD relancera
- le filtre s'il retourne ce code.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>exit 2</term>
-
- <listitem>
- <para>Le filtre n'a pas pu imprimer le fichier et ne veut
- pas que LPD relance l'impression. LPD supprimera le
- fichier de la file d'attente.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Le filtre texte livr&eacute; avec la distribution de FreeBSD,
- <filename>/usr/libexec/lpr/lpf</filename>, utilise les arguments
- d&eacute;finissant la largeur et la hauteur de page pour d&eacute;terminer
- quand envoyer un saut de page et pour g&eacute;rer la comptabilit&eacute;. Il
- se sert du nom d'utilisateur, du nom de machine et de celui du
- fichier comptable pour tenir &agrave; jour les enregistrements
- comptables.</para>
-
- <para>Si vous cherchez des filtres, v&eacute;rifiez qu'ils sont
- compatibles avec LPD. S'ils le sont, ils doivent accepter les
- arguments d&eacute;crits ci-dessus. Si vous envisagez d'&eacute;crire des
- filtres, vous devez faire en sorte qu'ils acceptent ces arguments
- et g&egrave;rent les bons codes retour.</para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-if-conversion">
- <title>Imprimer du texte sur des imprimantes PostScript
- </title>
-
- <para>Si vous &ecirc;tes le seul utilisateur de votre ordinateur et d'une
- imprimante PostScript (ou d'une autre imprimante fonctionnant
- avec un langage d'impression) et &ecirc;tes certain de ne jamais envoyer
- de simples fichiers texte &agrave; l'imprimante ou de ne jamais utiliser
- les options de diff&eacute;rents programmes qui feraient de m&ecirc;me, alors
- vous n'avez pas besoin de vous pr&eacute;occuper du contenu de cette
- section.</para>
-
- <para>Mais, si vous voulez envoyer et du PostScript et de simples
- fichiers texte &agrave; l'imprimante, alors je vous conjure d'adapter
- la configuration de votre imprimante. Pour cela, nous ferons en
- sorte que le filtre texte distingue entre les travaux d'impression
- qui envoient du texte et ceux qui envoient du PostScript. Tous les
- travaux PostScript commencent par <literal>%!</literal> (pour les
- autres langages, consultez la documentation de votre imprimante).
- Si nous avons ces deux caract&egrave;res au d&eacute;but du travail d'impression,
- alors c'est du PostScript, et nous pouvons l'envoyer tel quel.
- Sinon, le filtre convertira le texte en PostScript et imprimera
- le r&eacute;sultat.</para>
-
- <para>Comment r&eacute;aliser cela?</para>
-
- <para>Avec une imprimante s&eacute;rie, il suffit d'installer
- <command>lprps</command>. <command>lprps</command> est un filtre
- d'impression PostScript qui dialogue avec l'imprimante. Il met &agrave;
- jour le fichier d'&eacute;tat de l'imprimante en fonction des
- informations que celle-ci lui fournit, les utilisateurs et les
- administrateurs peuvent donc savoir exactement quel est l'&eacute;tat
- de l'imprimante (comme <errorname>manque d'encre</errorname> ou
- <errorname>bourrage</errorname>). Mais, c'est plus int&eacute;ressant,
- il comporte un programme appel&eacute; <command>psif</command> qui
- d&eacute;tecte si le prochain travail est du texte et invoque
- <command>textps</command> (un autre programme qui fait partie de
- <command>lprps</command>) pour le convertir en PostScript. Il
- utilise ensuite <command>lprps</command> pour l'envoyer &agrave;
- l'imprimante.</para>
-
- <para><command>lprps</command> fait partie du catalogue des
- logiciels port&eacute;s de FreeBSD (voyez le chapitre
- <link linkend="ports">Installer des Logiciels au &ldquo;Catalogue des
- Logiciels Port&eacute;s&rdquo;</link>). Vous
- pouvez le t&eacute;l&eacute;charger, le compiler et
- l'installer vous-m&ecirc;me, bien s&ucirc;r. Apr&egrave;s avoir install&eacute;
- <command>lprps</command>, donnez juste le chemin d'acc&egrave;s au
- programme <command>psif</command> qui fait partie de
- <command>lprps</command>. Si vous avez install&eacute;
- <command>lprps</command> depuis le catalogue des logiciels port&eacute;s,
- utilisez ce qui suit dans la d&eacute;finition de l'imprimante s&eacute;rie
- PostScript dans <filename>/etc/printcap</filename>:</para>
-
- <programlisting>
-:if=/usr/local/libexec/psif:
- </programlisting>
-
- <para>Vous devez aussi activer la fonctionnalit&eacute;
- <literal>rw</literal> qui dit &agrave; LPD d'ouvrir l'imprimante
- en lecture/&eacute;criture.</para>
-
- <para>Si vous avez une imprimante PostScript parall&egrave;le (et donc
- ne pouvez pas communiquer dans les deux sens avec l'imprimante,
- ce qui est indispensable &agrave; <command>lprps</command>), vous pouvez
- utilisez la proc&eacute;dure qui suit comme filtre texte:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# psif - Imprime du PostScript ou du texte
-# version Proc&eacute;dure; Ce N'EST PAS la version qui accompagne lprs
-# fichier /usr/local/libexec/psif
-#
-
-read first_line
-first_two_chars=`expr "$first_line" : '\(..\)'`
-
-if [ "$first_two_chars" = "%!" ]; then
- #
- # Travail PostScript; l'imprimer.
- #
- echo $first_line &amp;&amp; cat &amp;&amp; printf "\004" &amp;&amp; exit 0
- exit 2
-else
- #
- # Texte simple, le convertir, puis l'imprimer.
- #
- ( echo $first_line; cat ) | /usr/local/bin/textps &amp;&amp; printf "\004" &amp;&amp; exit 0
- exit 2
-fi
- </programlisting>
-
- <para>Dans la proc&eacute;dure ci-dessus, <command>textps</command> est un
- programme que nous avons install&eacute; s&eacute;par&eacute;ment pour convertir
- du texte en PostScript. Vous pouvez utiliser le programme de
- conversion de votre choix. Le catalogue des logiciels port&eacute;s de FreeBSD
- (voyez le chapitre <link linkend="ports">Installer des Logiciels
- au &ldquo;Catalogue des Logiciels Port&eacute;s&rdquo;</link>)
- comporte un programme complet de conversion de
- texte en PostScript appel&eacute; <citerefentry>
- <refentrytitle>a2ps</refentrytitle></citerefentry> auquel vous
- pourriez jeter un coup d'oeil.</para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-ps">
- <title>Emuler PostScript sur des imprimantes Non-PostScript
- </title>
-
- <para>PostScript est le standard <emphasis>de facto</emphasis>
- du traitement de texte et de l'impression de qualit&eacute;. PostScript
- est, toutefois, un standard <emphasis>co&ucirc;teux</emphasis>.
- Heureusement, Alladin Enterprises fournit un &eacute;mulateur PostScript
- libre, appel&eacute; <application>Ghostscript</application>, qui
- fonctionne sous FreeBSD. Ghostscript peut lire
- la plupart des fichiers PostScript
- et les convertir pour divers mod&egrave;les d'imprimantes dont de
- nombreuses imprimantes non-PostScript. En installant Ghostscript
- et avec un filtre texte adapt&eacute; &agrave; votre imprimante, vous pouvez
- utiliser votre imprimante comme une vraie imprimante
- PostScript.</para>
-
- <para>Ghostscript devrait &ecirc;tre dans le catalogue des logiciels port&eacute;s
- de FreeBSD, d'o&ugrave; vous pouvez l'installer. Vous pouvez aussi
- facilement le t&eacute;l&eacute;charger, le compiler et l'installer.</para>
-
- <para>Pour &eacute;muler PostScript, nous ferons en sorte que le filtre
- texte reconnaisse les fichiers PostScript. Quand ce n'est pas le
- cas, le filtre enverra directement le fichier &agrave; l'imprimante.
- Sinon, il utilisera Ghostscript pour convertir le fichier
- en un format que l'imprimante comprenne.</para>
-
- <para>Voici un exemple: cette proc&eacute;dure est un filtre texte pour les
- imprimantes Hewlett Packard DeskJet 500. Pour d'autres
- imprimantes, modifiez l'argument de l'option
- <option>-sDEVICE</option> de la commande
- <citerefentry>
- <refentrytitle>gs</refentrytitle></citerefentry> (Ghostscript).
- (Tapez <command>gs -h</command> pour avoir la liste des
- p&eacute;riph&eacute;riques support&eacute;s par la version courante de
- Ghostscript.)</para>
-
- <programlisting>
-#!/bin/sh
-#
-# ifhp - Imprime du PostSCript &eacute;mul&eacute; par Ghostscript sur une DeskJet 500
-# fichier /usr/local/libexec/hpif
-#
-# traiter LF comme CR+LF:
-#
-printf "\033&amp;k2G" || exit 2
-
-#
-# Lit les deux premiers caract&egrave;res du fichier
-#
-read first_line
-first_two_chars=`expr "$first_line" : '\(..\)'`
-
-if [ "$first_two_chars" = "%!" ]; then
- #
- # Si c'est du PostScript; utiliser Ghostscript pour convertir, et imprimer.
- #
- /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \
- &amp;&amp; exit 0
-else
- #
- # Texte ou HP/PCL, donc, imprimer directement; envoyer ensuite un saut
- # de page pour &eacute;jecter la derni&egrave;re page.
- #
- echo $first_line &amp;&amp; cat &amp;&amp; printf "\f" &amp;&amp; exit 0
-fi
-
-exit 2
- </programlisting>
-
- <para>Pour finir, il faut sp&eacute;cifier le filtre &agrave; LPD avec
- la fonctionnalit&eacute; <literal remap="tt">if</literal>:
- <programlisting>
-:if=/usr/local/libexec/hpif:
- </programlisting> C'est tout. Vous pouvez maintenant taper
- <command>lpr texte.simple</command> et <command>lpr
- quoique-ce-soit.ps</command> et les deux devraient
- s'imprimer.</para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-convfilters">
- <title>Filtres de conversion</title>
-
- <para>Apr&egrave;s avoir termin&eacute; l'&eacute;tape de
- <link linkend="printing-simple">Configuration simple d'une imprimante</link>, la
- premi&egrave;re chose que vous voudrez probablement faire sera
- d'installer des filtres de conversion pour vos formats de
- fichiers favoris (autres que le simple texte ASCII).</para>
-
-
- <sect4>
- <title>Pourquoi installer des filtres de conversion?</title>
-
- <para>Les filtres de conversion facilitent l'impression de
- diff&eacute;rents types de fichiers. Supposons, par exemple, que
- nous utilisions beaucoup le logiciel de traitement de texte
- TeX, et que nous ayons une imprimante PostScript. Chaque fois
- que nous g&eacute;n&eacute;rons un fichier DVI avec TeX, nous ne pouvons
- l'imprimer directement sans le convertir auparavant en
- PostScript. La s&eacute;quence de commande pour le faire est la
- suivante:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>dvips anaylse-algues.dvi</userinput>
-&prompt.user; <userinput>lpr analyse-algues.ps</userinput></screen>
- </informalexample>
-
- <para>En installant un filtre de conversion pour les fichiers
- DVI, nous pourrons nous dispenser de la conversion manuelle
- &agrave; chaque fois, en laissant LPD le faire &agrave; notre place. Quand nous aurons
- un fichier DVI, l'impression se fera en une seule &eacute;tape:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr -d analyse-algues.dvi</userinput></screen>
- </informalexample>
-
- <para>L'option <option>-d</option> dit &agrave; LPD que c'est un
- fichier DVI &agrave; convertir. La section
- <link
- linkend="printing-lpr-options-format">Options de mise en page et de conversion</link>
- liste les options de conversion.</para>
-
- <para>Pour chaque option de conversion que vous voulez que
- l'imprimante supporte, installez un
- <emphasis>filtre de conversion</emphasis> et donnez son chemin
- d'acc&egrave;s dans <filename>/etc/printcap</filename>. Un
- filtre de conversion est similaire au filtre texte de notre
- configuration simple
- (voir section <link linkend="printing-textfilter">Installer
- le filtre texte</link>) sinon qu'au lieu
- d'imprimer du texte, il convertit le fichier en un format
- compr&eacute;hensible pour l'imprimante.</para>
-
- </sect4>
-
- <sect4>
- <title>Quels filtres de conversion dois-je installer?
- </title>
-
- <para>Installez les filtres de conversion que vous pr&eacute;voyez
- d'utiliser. Si vous avez beaucoup de donn&eacute;es DVI, un filtre
- de conversion DVI s'impose. Si vous voulez imprimer beaucoup
- de troff, c'est une bonne id&eacute;e d'installer un filtre
- troff.</para>
-
- <para>La table ci-dessous r&eacute;sume les caract&eacute;ristiques des filtres
- que LPD utilise, elle donne le type de fichier,
- la fonctionnalit&eacute; correspondante dans le fichier
- <filename>/etc/printcap</filename> et l'option
- &agrave; utiliser avec la commande <command>lpr</command>.</para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Type de fichier</entry>
- <entry>Fonctionnalit&eacute; <filename>/etc/printcap</filename>
- </entry>
- <entry>Option de <command>lpr</command></entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>cifplot</entry>
- <entry><literal>cf</literal></entry>
- <entry><option>-c</option></entry>
- </row>
-
- <row>
- <entry>DVI</entry>
- <entry><literal>df</literal></entry>
- <entry><option>-d</option></entry>
- </row>
-
- <row>
- <entry>format traceur (&ldquo;plot&rdquo;)</entry>
- <entry><literal>gf</literal></entry>
- <entry><option>-g</option></entry>
- </row>
-
- <row>
- <entry>ditroff</entry>
- <entry><literal>nf</literal></entry>
- <entry><option>-n</option></entry>
- </row>
-
- <row>
- <entry>programme FORTRAN</entry>
- <entry><literal>rf</literal></entry>
- <entry><option>-f</option></entry>
- </row>
-
- <row>
- <entry>troff</entry>
- <entry><literal>rf</literal></entry>
- <entry><option>-f</option></entry>
- </row>
-
- <row>
- <entry>image point &agrave; point (&ldquo;raster&rdquo;)</entry>
- <entry><literal>vf</literal></entry>
- <entry><option>-v</option></entry>
- </row>
-
- <row>
- <entry>texte</entry>
- <entry><literal>if</literal></entry>
- <entry>aucune, <option>-p</option>, ou <option>-l</option></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Dans notre exemple, la commande
- <command>lpr -d</command> signifie que l'imprimante doit
- invoquer la fonctionnalit&eacute; <literal>df</literal> de sa
- d&eacute;finition dans <filename>/etc/printcap</filename>.</para>
-
- <para>Malgr&eacute; ce que d'aucuns en pensent, des formats tels que
- FORTRAN ou &ldquo;traceur&rdquo; sont
- probablement obsol&egrave;tes. Sur votre
- site, vous pouvez changer la signification de ces options, ou
- de n'importe quelle option de conversion, en installant des
- filtres personnalis&eacute;s. Imaginons, par exemple, que vous
- vouliez imprimer directement des fichiers Printerleaf (des
- fichiers cr&eacute;&eacute;s avec le logiciel de Publication Assist&eacute;e par
- Ordinateur Interleaf), mais n'imprimerez jamais de fichier
- traceur. Vous pouvez installer un filtre de conversion
- Printerleaf pour la fonctionnalit&eacute; <literal>gf</literal> et
- pr&eacute;venir vos utilisateur que <command>lpr -g</command>
- signifie &ldquo;imprimer des fichiers
- Printerleaf.&rdquo;</para>
-
- </sect4>
-
- <sect4>
- <title>Installer des filtres de conversion</title>
-
- <para>Les filtres de conversion sont des programmes qui ne
- font pas partie de la distribution standard de FreeBSD, ils
- ont logiquement leur place dans
- <filename>/usr/local</filename>. Le r&eacute;pertoire
- <filename>/usr/local/libexec</filename> est l'endroit habituel
- o&ugrave; les mettre, parce que ce sont des programmes r&eacute;serv&eacute;s &agrave; LPD
- que les utilisateurs ordinaires ne devraient jamais
- employer.</para>
-
- <para>Pour mettre en service un filtre de conversion, indiquez
- son chemin d'acc&egrave;s &agrave; la fonctionnalit&eacute; correspondante pour
- l'imprimante destinatrice dans
- <filename>/etc/printcap</filename>.</para>
-
- <para>Nous allons ajouter &agrave; notre exemple un filtre de conversion
- DVI pour l'imprimante appel&eacute;e <literal>bamboo</literal>. Voici
- notre nouveau fichier <filename>/etc/printcap</filename> avec
- la fonctionnalit&eacute; <literal>df</literal> pour l'imprimante
- <literal>bamboo</literal>:</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine rose - ajout du filtre df pour bamboo
-#
-rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
- </programlisting>
-
- <para>Le filtre DVI est une proc&eacute;dure appel&eacute;e
- <filename>/usr/local/libexec/psdf</filename>. Voici cette
- proc&eacute;dure:</para>
-
- <programlisting>
-#!bin/sh
-#
-# psdf - filtre de conversion de DVI en PostScript
-# fichier /usr/local/libexec/psdf
-#
-# appel&eacute; quand l'utilisateur invoque lpr -d
-#
-exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"
- </programlisting>
-
- <para>Cette proc&eacute;dure ex&eacute;cute <citerefentry>
- <refentrytitle>dvips</refentrytitle></citerefentry> en mode
- filtre (l'argument <option>-f</option>) sur l'entr&eacute;e standard,
- qui est le travail d'impression. Elle lance ensuite le filtre
- d'impression PostScript <command>lprps</command> (reportez-vous
- &agrave; la section <link linkend="printing-advanced-if-conversion">Imprimer
- du texte sur des imprimantes PostScript</link>)
- en lui passant les arguments donn&eacute;s &agrave; LPD.
- <command>lprps</command> utilisera ces arguments pour
- comptabiliser les pages imprim&eacute;es.</para>
-
- </sect4>
-
- <sect4>
- <title>Autres exemples de filtres de conversion</title>
-
- <para>La m&eacute;thode pour installer des filtres de conversion n'&eacute;tant
- pas toujours la m&ecirc;me, il vaut mieux que je vous donne d'autres
- exemples, dont vous pourrez vous inspirer pour mettre en oeuvre
- vos propres filtres. Utilisez-les tels quels, au besoin.</para>
-
- <para>Voici une proc&eacute;dure pour convertir des fichiers graphiques point &agrave; point
- (en fait, des fichiers GIF) pour une imprimante
- Hewlett Packard LaserJet III-Si:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# hpvf - Convertit des fichiers GIF en HP/PCL, et les imprime
-# fichier /usr/local/libexec/hpvf
-
-PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
- &amp;&amp; exit 0 \
- || exit 2
- </programlisting>
-
- <para>Elle convertit le fichier GIF en format portable universel, puis
- en format portable noir et blanc, puis en format portable
- &ldquo;bitmap&rdquo; et enfin en donn&eacute;es compatibles
- LaserJet/PCL.</para>
-
- <para>Voici le fichier <filename>/etc/printcap</filename> avec
- une entr&eacute;e pour une imprimante utilisant ce filtre:</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine rose
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:\
- :vf=/usr/local/libexec/hpvf:
- </programlisting>
-
- <para>La proc&eacute;dure suivante convertit des donn&eacute;es troff produites
- par le traitement de texte groff pour l'imprimante PostScript
- <literal>bamboo</literal>:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# pstf - Convertit des donn&eacute;es troff de groff en PS, et les imprime
-# fichier /usr/local/libexec/pstf
-#
-exec grops | /usr/local/libexec/lprps "$@"
- </programlisting>
-
- <para>Cette proc&eacute;dure utilise de nouveau <command>lprps</command>
- pour communiquer avec l'imprimante. Si l'imprimante &eacute;tait sur
- un port parall&egrave;le, il faudrait utiliser une autre
- m&eacute;thode:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# pstf - Convertit des donnees troff de groff en PS, et les imprime
-# fichier /usr/local/libexec/pstf
-#
-exec grops
- </programlisting>
-
- <para>C'est tout. Voici ce qu'il faut mettre dans
- <filename>/etc/printcap</filename> pour utiliser ce
- filtre:</para>
-
- <programlisting>
-:tf=/usr/local/libexec/pstf:
- </programlisting>
-
- <para>Voici un exemple qui prend en charge la sauce FORTRAN. C'est un filtre
- pour les programmes FORTRAN pour n'importe quelle imprimante
- capable d'imprimer directement du texte. Nous l'installerons
- pour l'imprimante
- <literal>teak</literal>:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# hprf - filtre de conversion pour FORTRAN pour LaserJet 3si:
-# fichier /usr/local/libexec/hprf
-#
-
-printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\f" &amp;&amp; exit 0
-exit 2
- </programlisting>
-
- <para>Et nous mettrons la ligne suivante dans
- <filename>/etc/printcap</filename> pour l'imprimante
- <literal>teak</literal> pour activer ce filtre:</para>
-
- <programlisting>
-:rf=/usr/local/libexec/hprf:
- </programlisting>
-
- <para>Voici un dernier exemple, quelque peu plus complexe. Nous
- allons installer un filtre DVI pour l'imprimante LaserJet
- <literal>teak</literal> de l'exemple pr&eacute;c&eacute;dent. Commen&ccedil;ons
- par le plus facile: mettre &agrave; jour
- <filename>/etc/printcap</filename> en lui donnant le chemin
- d'acc&egrave;s au filtre DVI:</para>
-
- <programlisting>
-:df=/usr/local/libexec/hpdf:
- </programlisting>
-
- <para>Et maintenant, la partie compliqu&eacute;e: cr&eacute;er le filtre. Il
- nous faut un programme de conversion de DVI en
- PCL pour LaserJet. Il y en a un au catalogue des logiciels
- port&eacute;s de FreeBSD (voyez le chapitre <link linkend="ports">Installer
- des Logiciels au &ldquo;Catalogue des Logiciels Port&eacute;s&rdquo;</link>):
- <citerefentry>
- <refentrytitle>dvi2xx</refentrytitle></citerefentry> est le
- nom du logiciel. En l'installant, nous r&eacute;cup&eacute;rons le programme
- dont nous avons besoin, <citerefentry>
- <refentrytitle>dvilj2p</refentrytitle></citerefentry>, qui
- convertit du DVI en instructions compatibles LaserJet IIp,
- LaserJet III et LaserJet 2000.</para>
-
- <para><citerefentry>
- <refentrytitle>dvilj2p</refentrytitle></citerefentry> rend
- le filtre <command>hpdf</command> assez complexe, parce que
- <citerefentry>
- <refentrytitle>dvilj2p</refentrytitle></citerefentry> ne
- sait pas lire sur l'entr&eacute;e standard. Il lui faut un nom de
- fichier. Pire encore, ce fichier doit avoir l'extension
- <filename>.dvi</filename>, nous ne pouvons donc pas utiliser
- <filename>/dev/fd/0</filename> qui correspond &agrave; l'entr&eacute;e
- standard. Nous contournons le probl&egrave;me avec un lien
- (symbolique) d'un fichier temporaire (avec l'extension
- <filename>.dvi</filename>) vers <filename>/dev/fd/0</filename>,
- for&ccedil;ant ainsi <citerefentry>
- <refentrytitle>dvilj2p</refentrytitle></citerefentry> &agrave; lire
- l'entr&eacute;e standard.</para>
-
- <para>Il y a cependant une mouche dans le potage. Nous ne pouvons
- pas cr&eacute;er de lien symbolique temporaire dans
- <filename>/tmp</filename>. Les liens symboliques appartiennent
- &agrave; l'utilisateur et au groupe <username>bin</username>.
- Le filtre est ex&eacute;cut&eacute; par l'utilisateur
- <username>daemon</username>. Et le bit &ldquo;sticky (persistant)&rdquo;
- du r&eacute;pertoire <filename>/tmp</filename> est positionn&eacute;. Le
- filtre peut cr&eacute;er le lien, mais ne pourra pas le d&eacute;truire
- apr&egrave;s avoir fait son travail, puisque le lien appartient
- &agrave; un autre utilisateur.</para>
-
- <para>Le filtre cr&eacute;era donc le lien dans le r&eacute;pertoire courant,
- qui est le r&eacute;pertoire tampon pour la file d'attente des
- travaux d'impression
- (d&eacute;fini par la fonctionnalit&eacute; <literal>sd</literal> dans
- <filename>/etc/printcap</filename>). C'est l'endroit id&eacute;al
- pour que les filtres accomplissent leur t&acirc;che, en particulier
- parce qu'il y a (parfois) plus de place dans le r&eacute;pertoire
- tampon que dans <filename>/tmp</filename>.</para>
-
- <para>Voici, enfin, le filtre:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# hpdf - Imprime du DVI sur une imprimante HP/PCL
-# fichier /usr/local/libexec/hpdf
-
-PATH=/usr/local/bin:$PATH; export PATH
-
-#
-# D&eacute;finit une fonction pour d&eacute;truire nos fichiers temporaires. Ces fichiers
-# sont dans le r&eacute;pertoire courant, qui est le r&eacute;pertoire de file d'attente de
-# l'imprimante
-#
-cleanup() {
- rm -f hpdf$$.dvi
-}
-
-#
-# D&eacute;finit une fonction de gestion des erreurs fatales : imprime le message
-# d'erreur et retourne le code d'erreur 2. Ce code dit &agrave; LPD de ne pas
-# relancer le travail d'impression.
-#
-fatal() {
- echo "$@" 1&gt;&amp;2
- cleanup
- exit 2
-}
-
-#
-# Si l'utilisateur annule le travail d'impression, LPD envoie SIGINT,
-# il faut donc capturer SIGINT (et quelques autres signaux)
-# pour faire ensuite le m&eacute;nage nous-m&ecirc;mes.
-#
-trap cleanup 1 2 15
-
-#
-# Assurons-nous de ne pas avoir de conflit de nom avec des fichiers existants.
-#
-cleanup
-
-#
-# Lien symbolique du fichier DVI sur l'entr&eacute;e standard (fichier &agrave; imprimer).
-#
-ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
-
-#
-# LF = CR+LF
-#
-printf "\033&amp;k2G" || fatal "Cannot initialize printer"
-
-#
-# Convertit et imprime. Le code retour de dvilj2p ne semble pas fiable,
-# nous l'ignorons.
-#
-dvilj2p -M1 -q -e- dfhp$$.dvi
-
-#
-# Fait le m&eacute;nage et termine la proc&eacute;dure
-#
-cleanup
-exit 0
- </programlisting>
-
- </sect4>
-
- <sect4
- id="printing-advanced-autoconv">
- <title>La conversion automatique: une alternative aux filtres de
- conversion
- </title>
-
- <para>Tous ces filtres de conversion am&eacute;liorent votre
- environnement d'impression, mais ils obligent l'utilisateur
- &agrave; pr&eacute;ciser (sur la ligne de commande de <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>)
- lequel utiliser. Si vos utilisateurs ne sont pas
- particuli&egrave;rement comp&eacute;tents en informatique, cela leur sera
- une g&ecirc;ne. Pire encore, une erreur d'option de filtrage
- peut lancer un filtre sur le mauvais type de fichier et
- provoquer l'impression de centaines de pages inutiles.</para>
-
- <para>Au lieu d'installer des filtres de conversion, vous pouvez
- essayer de faire en sorte que le filtre texte (qui est le
- filtre par d&eacute;faut) reconnaisse le type de fichier qu'il doit
- imprimer et ex&eacute;cute automatiquement le filtre de conversion
- ad&eacute;quat. Des utilitaires comme <command>file</command> peuvent
- &ecirc;tre employ&eacute;s pour cela. Il sera bien s&ucirc;r difficile de faire
- la diff&eacute;rence entre <emphasis>certains</emphasis> types de
- fichiers&nbsp;-&nbsp;dans ce cas, vous pouvez toujours fournir des
- filtres de conversion juste pour ces fichiers.</para>
-
- <para>Le catalogue des logiciels port&eacute;s de FreeBSD inclut un
- filtre texte appel&eacute; <citerefentry>
- <refentrytitle>apsfilter</refentrytitle></citerefentry>
- qui effectue la conversion automatique. Il sait reconna&icirc;tre les
- fichiers texte, PostScript et DVI, effectuer la
- conversion ad&eacute;quate et imprimer.</para>
-
- </sect4>
- </sect3>
-
- <sect3
- id="printing-advanced-of">
- <title>Filtres de sortie</title>
-
- <para>Le gestionnaire d'impression LPD supporte encore un autre
- type de filtre dont nous n'avons pas encore parl&eacute;: le filtre
- de sortie. Un filtre de sortie sert &agrave; imprimer du texte
- uniquement, comme le filtre texte, mais il est grandement
- simplifi&eacute;. Si vous utilisez un filtre de sortie, et pas de
- filtre texte, alors:
- <itemizedlist>
-
- <listitem>
- <para>LPD ex&eacute;cute le filtre de sortie une seule fois par
- travail d'impression et non une fois pour chaque fichier
- d'un travail d'impression.</para>
- </listitem>
-
- <listitem>
- <para>LPD ne s'inqui&egrave;te pas de d&eacute;tecter le d&eacute;but et la fin
- de chaque fichier pour les besoins du filtre de
- sortie.</para>
- </listitem>
-
- <listitem>
- <para>LPD ne passe pas le nom de la machine et de
- l'utilisateur au filtre, qui ne peut donc &ecirc;tre utilis&eacute;
- pour la comptabilit&eacute;. De fait, il n'a que deux arguments:
-
- <cmdsynopsis>
- <command>nom_du_filtre</command>
- <arg choice="plain">-w<replaceable>largeur</replaceable></arg>
- <arg choice="plain">-l<replaceable>hauteur</replaceable></arg>
- </cmdsynopsis> o&ugrave; <replaceable>largeur</replaceable> est
- la valeur d&eacute;finie par la fonctionnalit&eacute;
- <literal>pw</literal> et
- <replaceable>hauteur</replaceable> est
- la valeur d&eacute;finie par la fonctionnalit&eacute;
- <literal>pl</literal> associ&eacute;e &agrave; l'imprimante en
- question.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>Ne soyez pas abus&eacute; par la simplicit&eacute; du filtre de sortie. Si
- vous voulez que chaque fichier d'un travail d'impression commence
- sur une nouvelle page, le filtre de sortie
- <emphasis>ne convient pas</emphasis>. Utilisez un filtre texte
- (appel&eacute; aussi filtre d'entr&eacute;e); voyez la section <link
- linkend="printing-textfilter">Installer le filtre texte</link>.
- De plus, un filtre de sortie est en fait plus complexe
- car il doit examiner le flot de donn&eacute;es pour voir s'il contient
- des caract&egrave;res sp&eacute;ciaux et s'envoyer des signaux &agrave; lui-m&ecirc;me
- au lieu que ce soit LPD qui le fasse.</para>
-
- <para>Un filtre de sortie est toutefois
- <emphasis>n&eacute;cessaire</emphasis> si vous voulez avoir des pages
- d'en-t&ecirc;te et devez envoyer des s&eacute;quences d'&eacute;chappement ou d'autres
- commandes d'initialisation pour pouvoir imprimer ces pages
- d'en-t&ecirc;te. (Il est cependant <emphasis>inutilisable</emphasis> si vous
- voulez facturer ces pages d'en-t&ecirc;te &agrave; l'utilisateur,
- puisque LPD ne donne pas d'informations sur l'utilisateur et
- la machine au filtre de sortie.)</para>
-
- <para>Pour une m&ecirc;me imprimante, LPD vous autorise &agrave; avoir &agrave; la fois
- un filtre texte, un filtre de sortie et d'autres filtres. Dans ce
- cas, LPD utilisera le filtre de sortie pour imprimer la page
- d'en-t&ecirc;te (voyez la section <link
- linkend="printing-advanced-header-pages">Pages d'en-t&ecirc;te</link>)
- uniquement. LPD s'attend &agrave; ce que le filtre de sortie
- <emphasis>s'interrompe ensuite lui-m&ecirc;me</emphasis> quand il lui envoie les
- deux octets: ASCII 031 suivi de ASCII 001. Quand un filtre de
- sortie re&ccedil;oit cette s&eacute;quence (031, 001), il doit s'interrompre en
- s'envoyant le signal SIGSTOP. Quand LPD en a fini avec les autres
- filtres, il r&eacute;active le filtre de sortie en lui envoyant un
- SIGCONT.</para>
-
- <para>S'il y a un filtre de sortie mais <emphasis>pas</emphasis>
- de filtre texte et que LPD traite une impression de texte, LPD
- se sert du filtre de sortie pour faire le travail. Comme d&eacute;j&agrave; dit
- plus haut, le filtre de sortie imprimera les fichiers en continu,
- sans saut de page ou autre commande d'avance papier entre eux, ce
- qui n'est probablement <emphasis>pas</emphasis> ce que vous
- attendez. Dans la plupart des cas, vous aurez besoin d'un filtre
- texte.</para>
-
- <para>Le programme <command>lpf</command>, que nous avons cit&eacute;
- auparavant comme filtre texte, peut aussi &ecirc;tre utilis&eacute; comme
- filtre de sortie. Si vous avez besoin d'un filtre de sortie
- grossier et ne voulez pas &eacute;crire le code pour tester les
- octets et envoyer les signaux, essayez <command>lpf</command>.
- Vous pouvez aussi encapsuler <command>lpf</command> dans une
- proc&eacute;dure qui prenne en charge les codes d'initialisation
- dont l'imprimante aurait besoin.</para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-lpf">
- <title><command>lpf</command>: un filtre texte</title>
-
- <para>Le programme <filename>/usr/libexec/lpr/lpf</filename> qui
- fait partie de la distribution de FreeBSD est un filtre texte
- (filtre d'entr&eacute;e) qui sait indenter le r&eacute;sultat
- (commande <command>lpr -i</command>), imprimer litt&eacute;ralement le
- texte (commande <command>lpr -l</command>), se positionner
- &agrave; la bonne colonne d'impression pour g&eacute;rer les retours arri&egrave;re
- et les tabulations et comptabiliser les pages imprim&eacute;es. Il peut
- aussi servir de filtre de sortie.</para>
-
- <para><command>lpf</command> convient &agrave; de nombreux environnements
- d'impression. Et bien qu'il ne sache pas envoyer de s&eacute;quences
- d'initialisation &agrave; l'imprimante, il est facile d'&eacute;crire une
- proc&eacute;dure qui effectue les initialisations requises et ex&eacute;cute
- ensuite <command>lpf</command>.</para>
-
- <para>Pour que <command>lpf</command> comptabilise correctement les
- pages, il faut que les valeurs d&eacute;finies par les fonctionnalit&eacute;s
- <literal>pw</literal> et <literal>pl</literal> du fichier
- <filename>/etc/printcap</filename> soient correctement
- renseign&eacute;es. Ces valeurs sont utilis&eacute;es pour savoir quelle
- quantit&eacute; de texte tient sur une page, et combien de pages
- comporte le travail d'impression d'un utilisateur. Pour plus
- d'informations sur la comptabilisation des impressions, voyez
- la section <link linkend="printing-advanced-acct">Comptabiliser
- l'utilisation des imprimantes</link>.</para>
-
- </sect3>
- </sect2>
-
- <sect2
- id="printing-advanced-header-pages">
- <title>Pages d'en-t&ecirc;te</title>
-
- <para>Si vous avez <emphasis>beaucoup</emphasis> d'utilisateurs,
- employant tous diff&eacute;rentes imprimantes, alors vous devrez
- envisager les <emphasis>pages d'en-t&ecirc;te</emphasis> comme un
- mal n&eacute;cessaire.</para>
-
- <para>Les pages d'en-t&ecirc;te, appel&eacute;es aussi
- <emphasis>banni&egrave;res</emphasis> ou
- pages qui sautent aux yeux (<emphasis>burst</emphasis>)
- identifient les propri&eacute;taires des
- travaux apr&egrave;s qu'ils aient &eacute;t&eacute; imprim&eacute;s. Elles sont g&eacute;n&eacute;ralement
- imprim&eacute;es en gros caract&egrave;res gras, parfois encadr&eacute;s, de fa&ccedil;on &agrave;
- ce qu'elles se distinguent facilement des documents eux-m&ecirc;mes
- dans une pile d'impressions. Elles permettent aux utilisateurs
- de r&eacute;p&eacute;rer rapidement leurs propres travaux. L'inconv&eacute;nient en est
- que cela fait une page suppl&eacute;mentaire &agrave; imprimer &agrave; chaque fois,
- d'usage &eacute;ph&eacute;m&egrave;re&nbsp;-&nbsp;quelques minutes au plus, et qui finissent
- &agrave; la corbeille ou au recyclage. (Notez que comme il n'y a qu'une
- page d'en-t&ecirc;te par travail d'impression et non une pour chaque
- fichier, le gaspillage n'est peut-&ecirc;tre pas si grave.)</para>
-
- <para>Le syst&egrave;me LPD peut g&eacute;n&eacute;rer automatiquement les pages d'en-t&ecirc;te
- si votre imprimante sait imprimer directement du texte. Si vous
- avez une imprimante PostScript, il vous faudra un programme
- suppl&eacute;mentaire pour les g&eacute;n&eacute;rer; reportez-vous &agrave; la section
- <link linkend="printing-advanced-header-pages-ps">Pages
- d'en-t&ecirc;te sur les imprimantes PostScript</link>.</para>
-
- <sect3 id="printing-advanced-header-pages-enabling">
- <title>Activer les pages d'en-t&ecirc;te</title>
-
- <para>Dans la <link linkend="printing-simple">Configuration
- simple d'une imprimante</link>, nous avons supprim&eacute; l'impression
- des pages d'en-t&ecirc;te en ajoutant
- <literal>sh</literal> (pour &ldquo;suppress
- header&rdquo;&nbsp;-&nbsp;supprimer les en-t&ecirc;tes) dans le fichier
- <filename>/etc/printcap</filename>. Pour les mettre en service
- sur une imprimante, il suffit d'enlever la fonctionnalit&eacute;
- <literal>sh</literal>.</para>
-
- <para>Cela parait trop facile, non?</para>
-
- <para>Vous avez raison. Vous devrez <emphasis>peut-&ecirc;tre</emphasis>
- fournir un filtre de sortie pour envoyer une s&eacute;quence
- d'initialisation &agrave; votre imprimante. Voici un exemple de filtre
- de sortie pour une imprimante compatible avec le langage PCL
- de Hewlett Packard:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# hpof - filtre de sortie pour les imprimantes compatibles Hewlett Packard PCL
-# fichier /usr/local/libexec/hpof
-
-printf "\033&amp;k2G" || exit 2 exec
-/usr/libexec/lpr/lpf
- </programlisting>
-
- <para>Donnez le chemin d'acc&egrave;s du filtre de sortie avec la
- fonctionnalit&eacute;
- <literal remap="tt">of</literal>. Voyez la section <link
- linkend="printing-advanced-of">Filtres de sortie</link>
- pour plus d'informations.</para>
-
- <para>Voici par exemple le fichier
- <filename>/etc/printcap</filename> pour l'imprimante
- <literal>teak</literal> d&eacute;j&agrave; utilis&eacute;e plus haut; nous
- mettons en service les pages d'en-t&ecirc;te et ajoutons le
- filtre de sortie ci-dessus:</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:\
- :vf=/usr/local/libexec/hpvf:\
- :of=/usr/local/libexec/hpof:
- </programlisting>
-
- <para>Maintenant, quand nous utilisateurs imprimeront sur
- <literal>teak</literal>, ils auront une page d'en-t&ecirc;te
- pour chaque travail. S'ils pr&eacute;f&eacute;rent perdre du temps &agrave;
- retrouver leurs impressions, ils peuvent supprimer les
- pages d'en-t&ecirc;te en soumettant leurs travaux avec
- <command>lpr -h</command>; voyez la section <link
- linkend="printing-lpr-options-misc">Options pour la page
- d'en-t&ecirc;te</link> pour conna&icirc;tre les autres options
- de <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>.</para>
-
- <note>
- <para>LPD imprime un caract&egrave;re de saut de page apr&egrave;s chaque page
- d'en-t&ecirc;te. Si votre imprimante utilise un caract&egrave;re ou une
- s&eacute;quence diff&eacute;rente pour &eacute;jecter une page, pr&eacute;cisez-la avec
- la fonctionnalit&eacute; <literal>ff</literal> dans
- <filename>/etc/printcap</filename>.</para>
- </note>
-
- </sect3>
-
- <sect3
- id="printing-advanced-header-pages-controlling">
- <title>Configurer les pages d'en-t&ecirc;te</title>
-
- <para>Si les pages d'en-t&ecirc;te sont actives, LPD produira un
- <emphasis>en-t&ecirc;te long</emphasis>, une page enti&egrave;re en
- gros caract&egrave;res, donnant le nom de l'utilisateur, de la
- machine et du travail d'impression. En voici un exemple
- (kelly a imprim&eacute; un travail appel&eacute; outline depuis la
- machine rose):</para>
-
- <programlisting>
- k ll ll
- k l l
- k l l
- k k eeee l l y y
- k k e e l l y y
- k k eeeeee l l y y
- kk k e l l y y
- k k e e l l y yy
- k k eeee lll lll yyy y
- y
- y y
- yyyy
-
-
- ll
- t l i
- t l
- oooo u u ttttt l ii n nnn eeee
- o o u u t l i nn n e e
- o o u u t l i n n eeeeee
- o o u u t l i n n e
- o o u uu t t l i n n e e
- oooo uuu u tt lll iii n n eeee
-
-
-
-
-
-
-
-
-
- r rrr oooo ssss eeee
- rr r o o s s e e
- r o o ss eeeeee
- r o o ss e
- r o o s s e e
- r oooo ssss eeee
-
-
-
-
-
-
-
- Job: outline
- Date: Sun Sep 17 11:04:58 1995
- </programlisting>
-
- <para>LPD ajoute un saut de page apr&egrave;s ce texte de sorte que le
- travail commence en d&eacute;but de page (&agrave; moins que vous n'ayez mis
- <literal>sf</literal>&nbsp;-&nbsp;supprimer les sauts de
- page&nbsp;-&nbsp;dans l'entr&eacute;e
- correspondant &agrave; l'imprimante destinatrice dans
- <filename>/etc/printcap</filename>).</para>
-
- <para>Si vous le pr&eacute;f&eacute;rez, LPD peut g&eacute;n&eacute;rer des <emphasis>en-t&ecirc;tes
- courts</emphasis>; sp&eacute;cifiez <literal>sb</literal>
- (en-t&ecirc;te court&nbsp;-&nbsp;&ldquo;short banner&rdquo;) dans le
- fichier <filename>/etc/printcap</filename>.
- La page d'en-t&ecirc;te ressemblera alors &agrave; ceci:</para>
-
- <programlisting>
-rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995
- </programlisting>
-
- <para>Par d&eacute;faut, LPD imprime la page d'en-t&ecirc;te avant le contenu
- du travail. Vous pouvez faire l'inverse avec
- <literal>hl</literal> (en-t&ecirc;te &agrave; la fin&nbsp;-&nbsp;&ldquo;header
- last&rdquo;) dans
- <filename>/etc/printcap</filename>.</para>
-
- </sect3>
-
- <sect3 id="printing-advanced-header-pages-accounting">
- <title>Comptabiliser les pages d'en-t&ecirc;te</title>
-
- <para>Avec les pages d'en-t&ecirc;te pr&eacute;-programm&eacute;es de LPD, vous
- en &ecirc;tes r&eacute;duits &agrave; appliquer la politique suivante: les pages
- d'en-t&ecirc;te doivent &ecirc;tre <emphasis>gratuites</emphasis>.</para>
-
- <para>Pourquoi?</para>
-
- <para>Le filtre de sortie est le seul programme additionnel
- qui puisse savoir quand sont imprim&eacute;es les pages d'en-t&ecirc;te
- et comme il ne connait <emphasis>ni l'utilisateur, ni la
- machine</emphasis>, pas plus que le nom du fichier comptable,
- il ne peut pas savoir qui facturer. Il ne suffit pas
- de simplement &ldquo;ajouter une page&rdquo; par l'interm&eacute;diaire
- du filtre texte ou de l'un des filtres de conversion (qui
- connaissent l'utilisateur et la machine), puisque les utilisateurs
- peuvent supprimer les pages d'en-t&ecirc;te avec
- <command>lpr -h</command>. Ils seraient alors factur&eacute;s pour des
- pages d'en-t&ecirc;te qu'ils n'ont pas imprim&eacute;es. Les utilisateurs
- &eacute;cologistes pr&eacute;f&eacute;reront employer <command>lpr -h</command>, mais
- vous n'avez pas moyen de les y inciter.</para>
-
- <para>Il ne suffit <emphasis>pas non plus</emphasis> de faire
- g&eacute;n&eacute;rer les pages d'en-t&ecirc;te par les diff&eacute;rents filtres (ce
- qui permet de les facturer). Si les utilisateurs veulent
- alors les supprimer avec <command>lpr -h</command>, ils
- les auront malgr&eacute; tout et seront factur&eacute;s pour, parce que LPD
- ne passe l'information fournie par l'option
- <option>-h</option> &agrave; aucun des filtres.</para>
-
- <para>Que pouvez-vous donc faire?</para>
-
- <para>Vous pouvez :
- <itemizedlist>
-
- <listitem>
- <para>Accepter la politique de LPD et ne pas facturer les
- pages d'en-t&ecirc;te.</para>
- </listitem>
-
- <listitem>
- <para>Installer l'une des alternatives &agrave; LPD, comme
- LPDng ou PLP.
- La section
- <link linkend="printing-lpd-alternatives">Alternatives au
- gestionnaire d'impression standard</link> vous
- en dit plus sur les autres gestionnaires d'impression
- qui peuvent se substituer &agrave; LPD.</para>
- </listitem>
-
- <listitem>
- <para>Ecrire un filtre de sortie
- <emphasis>intelligent</emphasis>. Le filtre de sortie
- n'a normalement rien d'autre &agrave; faire que d'initialiser
- l'imprimante et effectuer quelques conversions simples
- de caract&egrave;res. Il convient pour les pages d'en-t&ecirc;te et
- l'impression de textes (quand il n'y a pas de filtre
- texte&nbsp;-&nbsp;ou d'entr&eacute;e). Mais, s'il y a un filtre
- texte, le filtre de sortie n'est utilis&eacute; que pour les
- pages d'en-t&ecirc;te. Le filtre de sortie peut alors
- d&eacute;terminer quel utilisateur ou quelle machine facturer
- en fonction du contenu de la page d'en-t&ecirc;te. Le seul
- probl&egrave;me avec cette m&eacute;thode est que l'on ne sait toujours
- pas quel est le fichier comptable (son nom, d&eacute;fini par
- la fonctionnalit&eacute; <literal>af</literal>, n'est pas
- transmis au filtre de sortie), mais si son nom est
- standard, vous pouvez le codez &ldquo;en dur&rdquo;
- dans le filtre de sortie. Pour faciliter l'analyse du
- contenu de la page d'en-t&ecirc;te, utilisez la fonctionnalit&eacute;
- <literal>sh</literal> (en-t&ecirc;te courte) dans
- <filename>/etc/printcap</filename>. Cependant,
- c'est peut-&ecirc;tre se donner beaucoup de mal, alors que
- les utilisateurs appr&eacute;cieront certainement plus
- l'administrateur syst&egrave;me qui leur fait cadeau des
- pages d'en-t&ecirc;te.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-header-pages-ps">
- <title>Pages d'en-t&ecirc;te sur les imprimantes PostScript</title>
-
- <para>Comme d&eacute;crit ci-dessus, LPD peut g&eacute;n&eacute;rer une page
- d'en-t&ecirc;te texte qui convient pour de nombreuses imprimantes.
- PostScript ne peut pas imprimer directement du texte, donc
- dans ce cas, les pages d'en-t&ecirc;te de LPD sont
- inutilisables&nbsp;-&nbsp;ou presque.</para>
-
- <para>Une m&eacute;thode triviale pour obtenir des pages d'en-t&ecirc;te est
- de confier leur g&eacute;n&eacute;ration &agrave; chaque filtre de conversion et
- au filtre texte. Ces filtres se serviront des noms d'utilisateur
- et de machine pour remplir correctement la page d'en-t&ecirc;te.
- L'inconv&eacute;nient de cette m&eacute;thode est que les utilisateurs
- auront toujours une page d'en-t&ecirc;te, m&ecirc;me s'ils soumettent
- leurs travaux avec <command>lpr -h</command>.</para>
-
- <para>Voyons comment cela fonctionne. La proc&eacute;dure ci-dessous a
- trois arguments (le nom de l'utilisateur, celui de la machine et
- celui du travail d'impression) et g&eacute;n&egrave;re une page d'en-t&ecirc;te
- PostScript simple:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# make-ps-header - affiche une page d'en-t&ecirc;te PostScript sur la sortie standard
-# fichier /usr/local/libexec/make-ps-header
-#
-
-#
-# Ce sont les unit&eacute;s PostScript (72 par pouce).
-# A modifier pour le format A4 ou autre.
-#
-page_width=612
-page_height=792
-border=72
-
-#
-# contr&ocirc;le des arguments
-#
-if [ $# -ne 3 ]; then
- echo "Usage: `basename $0` &lt;user&gt; &lt;host&gt; &lt;job&gt;" 1&gt;&amp;2
- exit 1
-fi
-
-#
-# Les m&eacute;moriser, pour la lisibilit&eacute; du code PostScript qui suit.
-#
-user=$1
-host=$2
-job=$3
-date=`date`
-
-#
-# Envoyer le code PostScript sur la sortie standard.
-#
-exec cat &lt;&lt;EOF
-%!PS
-
-%
-% Pour ne pas interf&eacute;rer avec le travail de l'utilisateur qui suivra.
-%
-save
-
-%
-% Un cadre large et d&eacute;sagr&eacute;able autour de la page.
-%
-$border $border moveto
-$page_width $border 2 mul sub 0 rlineto
-0 $page_height $border 2 mul sub rlineto
-currentscreen 3 -1 roll pop 100 3 1 roll setscreen
-$border 2 mul $page_width sub 0 rlineto closepath
-0.8 setgray 10 setlinewidth stroke 0 setgray
-
-%
-% Le nom de l'utilisateur en gros caract&egrave;res.
-%
-/Helvetica-Bold findfont 64 scalefont setfont
-$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
-($user) show
-
-%
-% Les caract&eacute;ristiques ennuyeuses
-%
-/Helvetica findfont 14 scalefont setfont
-/y 200 def
-[ (Job:) (Host:) (Date:) ] {
-200 y moveto show /y y 18 sub def }
-forall
-
-/Helvetica-Bold findfont 14 scalefont setfont
-/y 200 def
-[ ($job) ($host) ($date) ] {
- 270 y moveto show /y y 18 sub def
-} forall
-
-%
-% C'est tout.
-%
-restore
-showpage
-EOF
- </programlisting>
-
- <para>Chacun des filtres de conversion et le filtre texte peuvent
- maintenant utiliser cette proc&eacute;dure pour produire les pages
- d'en-t&ecirc;te avant d'imprimer le travail de l'utilisateur. Voici
- le filtre de conversion DVI d&eacute;crit plus haut dans ce chapitre,
- modifi&eacute; pour inclure la g&eacute;n&eacute;ration des pages d'en-t&ecirc;te:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# psdf - filtre de conversion de DVI en PostScript
-# fichier /usr/local/libexec/psdf
-#
-# Utilis&eacute; par lpd quand l'utilisateur emploie lpr -d
-#
-
-orig_args="$@"
-
-fail() {
- echo "$@" 1&gt;&amp;2
- exit 2
-}
-
-while getopts "x:y:n:h:" option; do
- case $option in
- x|y) ;; # Ignore
- n) login=$OPTARG ;;
- h) host=$OPTARG ;;
- *) echo "LPD started `basename $0` wrong." 1&gt;&amp;2
- exit 2
- ;;
- esac
-done
-
-[ "$login" ] || fail "Pas de nom d'utilisateur"
-[ "$host" ] || fail "Pas de nom de machine"
-
-( /usr/local/libexec/make-ps-header $login $host "DVI File"
- /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args
- </programlisting>
-
- <para>Remarquez la fa&ccedil;on dont le filtre analyse les arguments
- pour conna&icirc;tre le nom de l'utilisateur et celui de la machine.
- Ce serait la m&ecirc;me pour les autres filtres de conversion. Le
- filtre texte a un jeu d'arguments l&eacute;g&egrave;rement diff&eacute;rent (voyez
- la section <link linkend="printing-advanced-filters">Comment
- fonctionnent les filtres</link>).</para>
-
- <para>Comme nous l'avons d&eacute;j&agrave; dit, cette m&eacute;thode, quoique assez
- simple, emp&ecirc;che d'utiliser l'option de
- &ldquo;suppression de la page d'en-t&ecirc;te&rdquo; (l'option
- <option>-h</option>) de la commande <command>lpr</command>. Si
- les utilisateurs voulaient &eacute;pargner un arbre (ou quelques
- centimes, si vous facturez les pages d'en-t&ecirc;te), ils ne pourront
- pas, puisque tous les filtres imprimeront une page d'en-t&ecirc;te
- pour chaque travail.</para>
-
- <para>Pour permettre aux utilisateurs de d&eacute;sactiver les pages
- d'en-t&ecirc;te, vous devrez utiliser l'astuce d&eacute;crite &agrave; la section
- <link
- linkend="printing-advanced-header-pages-accounting">Comptabiliser
- les pages d'en-t&ecirc;te</link>: &eacute;crire un filtre de
- sortie qui analyse la page d'en-t&ecirc;te g&eacute;n&eacute;r&eacute;e par LPD et en
- produire une version PostScript. Si l'utilisateur soumet son
- travail avec <command>lpr -h</command>, LPD ne g&eacute;n&egrave;re pas
- de page d'en-t&ecirc;te, et donc le filtre de sortie non plus.
- Dans le cas contraire, votre filtre de sortie lira le texte
- produit par LPD et enverra le code PostScript de la page
- d'en-t&ecirc;te &agrave; l'imprimante.</para>
-
- <para>Si votre imprimante PostScript est sur une interface
- s&eacute;rie, vous pouvez utiliser <command>lprps</command>, qui
- inclut un filtre de sortie, <command>psof</command>, qui
- se charge de cela. Remarquez que <command>psof</command>
- ne facture pas les pages d'en-t&ecirc;te.</para>
-
- </sect3>
- </sect2>
-
- <sect2
- id="printing-advanced-network-printers">
- <title>Impression en r&eacute;seau</title>
-
- <para>FreeBSD supporte l'impression en r&eacute;seau pour envoyer des travaux
- sur des imprimantes distantes. Imprimer en r&eacute;seau veut en g&eacute;n&eacute;ral
- dire deux choses diff&eacute;rentes:
- <itemizedlist>
-
- <listitem>
- <para>Acc&eacute;der &agrave; une imprimante connect&eacute;e &agrave; une machine distante.
- Vous installez une imprimante avec une interface s&eacute;rie ou
- parall&egrave;le classique sur une machine. Vous pouvez alors
- configurer LPD pour permettre l'acc&egrave;s &agrave; cette imprimante
- depuis d'autres machines du r&eacute;seau. La section <link
- linkend="printing-advanced-network-rm">Imprimantes
- install&eacute;es sur des machines distantes</link>
- vous explique comment
- faire.</para>
- </listitem>
-
- <listitem>
- <para>Acc&eacute;der &agrave; une imprimante connect&eacute;e directement au r&eacute;seau.
- L'imprimante a une interface r&eacute;seau en plus (ou &agrave; la place)
- de l'interface s&eacute;rie ou parall&egrave;le habituelle. Une imprimante
- de ce type peut fonctionner comme suit:
-
- <itemizedlist>
-
- <listitem>
- <para>Elle peut comprendre le protocole LPD, voire m&ecirc;me
- g&eacute;rer une file d'attente de travaux venant de machines
- distantes. Dans ce cas, elle se comporte comme une
- machine distante ex&eacute;cutant LPD. Suivez la m&ecirc;me proc&eacute;dure
- qu'&agrave; la section <link
- linkend="printing-advanced-network-rm">Imprimantes
- install&eacute;es sur des machines distantes</link> pour
- configurer ce type d'imprimante.</para>
- </listitem>
-
- <listitem>
- <para>Elle ne peut que recevoir un flot de donn&eacute;es
- venant du r&eacute;seau. Dans ce cas,
- vous la &ldquo;reliez&rdquo; &agrave; une machine du r&eacute;seau
- en confiant &agrave; cette machine la gestion de la file
- d'attente et l'envoi des travaux &agrave; l'imprimante. La
- section <link
- linkend="printing-advanced-network-net-if">Imprimantes
- avec une interface r&eacute;seau</link> donne
- quelques indications sur
- l'installation de ce type d'imprimante.</para>
- </listitem>
-
- </itemizedlist>
- </para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <sect3 id="printing-advanced-network-rm">
- <title>Imprimantes install&eacute;es sur des machines distantes</title>
-
- <para>Le syst&egrave;me LPD inclut ce qu'il faut pour envoyer des
- travaux sur d'autres machines qui ex&eacute;cutent aussi LPD (ou
- sont compatibles avec). Cela vous permet d'installer une
- imprimante sur une machine et de la rendre accessible &agrave;
- d'autres machines. Cela marche aussi avec les imprimantes
- qui ont une interface r&eacute;seau qui comprend le protocole
- LPD.</para>
-
- <para>Pour utiliser ce type d'impression en r&eacute;seau, installez
- d'abord l'imprimante sur une machine, la <emphasis>machine
- d'impression</emphasis>, en utilisant la <link
- linkend="printing-simple">Configuration simple d'une
- imprimante</link>.
- Utilisez les options n&eacute;cessaires de la
- <link linkend="printing-advanced">Configuration avanc&eacute;e
- d'une imprimante</link>. Veillez &agrave; tester l'imprimante
- et vous assurez qu'elle marche avec les options de LPD que vous
- avez choisies.</para>
-
- <para>Si vous utilisez une imprimante avec une interface r&eacute;seau
- compatible avec LPD, alors la <emphasis>machine
- d'impression</emphasis> dont nous parlerons ci-dessous est
- l'imprimante elle-m&ecirc;me, et le <emphasis>nom de
- l'imprimante</emphasis> est le nom que vous avez utilis&eacute; pour
- configurer votre imprimante. Consultez la documentation de
- votre imprimante ou de son interface r&eacute;seau.</para>
-
- <para>Ensuite, sur les autres machines depuis lesquelles vous voulez
- pouvoir acc&eacute;der &agrave; cette imprimante, ajouter une entr&eacute;e dans leurs
- fichiers <filename>/etc/printcap</filename> de la fa&ccedil;on suivante:
- <orderedlist>
-
- <listitem>
- <para>Nommez cette entr&eacute;e comme vous voulez. Pour plus de
- simplicit&eacute;, vous utiliserez &eacute;ventuellement le m&ecirc;me nom
- et les m&ecirc;mes alias que sur la machine d'impression.</para>
- </listitem>
-
- <listitem>
- <para>Laissez explicitement la fonctionnalit&eacute;
- <literal>lp</literal> non renseign&eacute;e
- (<literal>:lp=:</literal>).</para>
- </listitem>
-
- <listitem>
- <para>Cr&eacute;ez un r&eacute;pertoire tampon et donnez son chemin d'acc&egrave;s
- avec la fonctionnalit&eacute; <literal>sd</literal>. LPD y
- mettra les travaux avant de les envoyer &agrave; la machine
- d'impression.</para>
- </listitem>
-
- <listitem>
- <para>Donnez le nom de l'imprimante avec la fonctionnalit&eacute;
- <literal>rm</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Donnez le nom de l'imprimante telle qu'elle est connue
- sur la <emphasis>machine
- d'impression</emphasis> avec la fonctionnalit&eacute;
- <literal>rp</literal>.</para>
- </listitem>
-
- </orderedlist>C'est tout. Vous n'avez pas besoin de pr&eacute;ciser
- les filtres, les dimensions de la page ou quoi que ce soit
- d'autre dans le fichier
- <filename>/etc/printcap</filename>.</para>
-
- <para>Voici un exemple. Il y a deux imprimantes sur la machine
- <hostid>rose</hostid>,
- <literal>bamboo</literal> et <literal>rattan</literal>. Nous
- allons permettre aux utilisateurs de la machine
- <hostid>orchid</hostid> d'utiliser ces imprimantes. Voici le
- fichier <filename>/etc/printcap</filename> de la
- machine <hostid>orchid</hostid> (repris de la section
- <link linkend="printing-advanced-header-pages-enabling">Activer
- les pages d'en-t&ecirc;te</link>). Il contenait d&eacute;j&agrave; une entr&eacute;e
- pour l'imprimante <literal>teak</literal>; nous avons ajout&eacute;
- les entr&eacute;es pour les deux imprimantes de la machine
- <hostid>rose</hostid>:</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine orchid
-# ajout des imprimantes (distantes) sur rose
-#
-# teak est locale; elle est connect&eacute;e directement &agrave; orchid:
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/ifhp:\
- :vf=/usr/local/libexec/vfhp:\
- :of=/usr/local/libexec/ofhp:
-
-#
-# rattan est connect&eacute;e &agrave; rose; envoyer les travaux pour rattan &agrave; rose:
-#
-rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
-
-#
-# bamboo est aussi connect&eacute;e &agrave; rose:
-#
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:
- </programlisting>
-
- <para>Nous n'avons plus qu'&agrave; cr&eacute;er les r&eacute;pertoires
- tampon sur <hostid>orchid</hostid>:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput></screen>
- </informalexample>
-
- <para>Les utilisateurs d'<hostid>orchid</hostid> peuvent maintenant
- imprimer sur <literal>rattan</literal>
- et <literal>bamboo</literal>. Si, par exemple, un utilisateur
- d'<hostid>orchid</hostid> tape:
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr -P bamboo -d appreciations-sushi.dvi</userinput></screen>
- </informalexample> Le syst&egrave;me LPD d'orchid copiera le travail dans
- le r&eacute;pertoire tampon
- <filename>/var/spool/lpd/bamboo</filename> et notera que c'est
- un travail DVI. D&egrave;s qu'il y aura de la place dans le r&eacute;pertoire
- tampon pour <hostid>bamboo</hostid> sur la machine rose, les deux
- LPD transf&egrave;reront le fichier sur rose. Il attendra d'&ecirc;tre imprim&eacute;
- dans la file d'attente de rose. La conversion de DVI en
- PostScript (puisque bamboo est une imprimante PostScript)
- sera faite par rose.</para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-network-net-if">
- <title>Imprimantes avec une interface r&eacute;seau</title>
-
- <para>La plupart du temps, quand vous achetez une carte d'interface
- r&eacute;seau pour une imprimante, vous avez le choix entre deux
- versions: l'une (la plus ch&egrave;re) &eacute;mule un gestionnaire
- d'impression, l'autre (la moins ch&egrave;re) ne vous permet que de lui
- envoyer des donn&eacute;es comme si elle &eacute;tait sur un port parall&egrave;le ou
- s&eacute;rie. C'est l'utilisation de cette derni&egrave;re que d&eacute;crit la
- pr&eacute;sente section. Pour la version la plus ch&egrave;re, voyez la
- section pr&eacute;c&eacute;dente, <link
- linkend="printing-advanced-network-rm">Imprimantes install&eacute;es
- sur des machines distantes</link>.</para>
-
- <para>Le format du fichier <filename>/etc/printcap</filename>
- vous permet d'indiquer quelle interface s&eacute;rie ou parall&egrave;le
- utiliser, et (si vous utilisez une interface s&eacute;rie), quelle
- est la vitesse en baud, s'il faut utiliser un contr&ocirc;le de
- flux, les d&eacute;lais pour les tabulations, la conversion des
- sauts de ligne, et ainsi de suite. Mais il n'y a rien pour
- d&eacute;crire la connexion d'une imprimante qui &eacute;coute sur un port
- TCP/IP ou un autre port r&eacute;seau.</para>
-
- <para>Pour envoyer des donn&eacute;es &agrave; une imprimante r&eacute;seau, il vous
- faut un programme de communication qui soit appel&eacute; par le
- filtre texte et les filtres de conversion. En voici une
- exemple: la proc&eacute;dure <command>netprint</command> r&eacute;cup&egrave;re
- toutes les donn&eacute;es qui arrivent sur l'entr&eacute;e standard et
- les envoie &agrave; une imprimante r&eacute;seau. Nous donnons comme
- premier argument de <command>netprint</command>
- le nom de machine de l'imprimante et comme deuxi&egrave;me argument
- le num&eacute;ro du port auquel se connecter. Remarquez que la
- communication est &agrave; sens unique (de FreeBSD vers l'imprimante);
- nombre d'imprimantes r&eacute;seau sont capables de communiquer dans
- les deux sens, et vous voudrez peut-&ecirc;tre en profiter (pour
- conna&icirc;tre l'&eacute;tat de l'imprimante, g&eacute;rer la comptabilit&eacute;,
- etc.).</para>
-
- <programlisting>
-#!/usr/bin/perl
-#
-# netprint - filtre texte pour une imprimante r&eacute;seau
-# fichier /usr/local/libexec/netprint
-#
-$#ARGV eq 1 || die "Usage: $0 &lt;printer-hostname&gt; &lt;port-number&gt;";
-
-$printer_host = $ARGV[0];
-$printer_port = $ARGV[1];
-
-require 'sys/socket.ph';
-
-($ignore, $ignore, $protocol) = getprotobyname('tcp');
-($ignore, $ignore, $ignore, $ignore, $address)
- = gethostbyname($printer_host);
-
-$sockaddr = pack('S n a4 x8', &amp;AF_INET, $printer_port, $address);
-
-socket(PRINTER, &amp;PF_INET, &amp;SOCK_STREAM, $protocol)
- || die "Impossible de cr&eacute;er la socket TCP/IP: $!";
-connect(PRINTER, $sockaddr) || die "Impossible de contacter $printer_host: $!";
-while (&lt;STDIN&gt;) { print PRINTER; }
-exit 0;
- </programlisting>
-
- <para>Nous pouvons utiliser cette proc&eacute;dure avec diff&eacute;rents
- filtres. Supposons que nous ayons une imprimante ligne
- Diablo 750-N sur notre r&eacute;seau. Cette imprimante re&ccedil;oit les donn&eacute;es
- &agrave; imprimer sur le port 5100. Son nom de machine est scrivener.
- Voici le filtre texte pour cette imprimante:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# diablo-if-net - filtre texte pour l'imprimante Diablo `scrivener' &agrave; l'&eacute;coute
-# sur le port 5100. fichier /usr/local/libexec/diablo-if-net
-/usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100
- </programlisting>
-
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-restricting">
- <title>Restreindre l'acc&egrave;s aux imprimantes</title>
-
- <para>Cette section vous donne des informations sur les
- restrictions d'acc&egrave;s aux imprimantes. Le syst&egrave;me LPD
- vous permet de contr&ocirc;ler quels sont les utilisateurs
- qui peuvent acc&eacute;der aux imprimantes, locales et distantes,
- s'ils ont le droit d'imprimer en plusieurs exemplaires,
- quelle taille peut avoir leurs travaux, et quelle peut
- &ecirc;tre la taille maximale de la file d'attente.</para>
-
-
- <sect3 id="printing-advanced-restricting-copies">
- <title>Restreindre l'impression de plusieurs exemplaires</title>
-
- <para>Avec le syst&egrave;me LPD, il est facile pour les utilisateurs
- d'imprimer en plusieurs exemplaires. Il leur suffit d'utiliser
- <command>lpr -#5</command> (par exemple) pour obtenir 5
- exemplaires de chaque fichier de leur travail d'impression.
- C'est &agrave; vous de d&eacute;cider si c'est une bonne chose.</para>
-
- <para>Si vous pensez que les impressions multiples usent
- inutilement vos imprimantes, vous pouvez d&eacute;sactiver
- l'option <option>-#</option> de
- <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry>
- en ajoutant la fonctionnalit&eacute; <literal>sc</literal> au fichier
- <filename>/etc/printcap</filename>. Quand les utilisateurs
- soumettront des travaux avec l'option <option>-#</option>,
- ils auront le message :
-
- <informalexample>
- <screen>lpr: multiple copies are not allowed</screen>
- </informalexample></para>
-
- <para>(L'impression en plusieurs exemplaires n'est pas
- autoris&eacute;e.)</para>
- <para>Notez bien que si vous avez d&eacute;fini une entr&eacute;e pour une
- imprimante distante
- (voyez la section
- <link linkend="printing-advanced-network-rm">Imprimantes
- install&eacute;es sur des machines distantes</link>), vous devrez aussi
- d&eacute;finir la fonctionnalit&eacute; <literal>sc</literal> dans le fichier
- <filename>/etc/printcap</filename> de la machine, ou bien les
- autres utilisateurs pourrons envoyer des impressions multiples
- depuis d'autres machines.</para>
-
- <para>Voici un exemple. C'est le fichier
- <filename>/etc/printcap</filename> de la machine
- <hostid>rose</hostid>. L'imprimante <literal>rattan</literal>
- est assez robuste, nous y autoriserons les impressions multiples,
- mais l'imprimante laser <literal>bamboo</literal> est un peu plus
- fragile, nous y d&eacute;sactiverons donc les impressions en plusieurs
- exemplaires en ajoutant la fonctionnalit&eacute;
- <literal remap="tt">sc</literal>:</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine rose
-# interdire plusieurs exemplaires sur bamboo
-#
-rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
- </programlisting>
-
- <para>Il nous faut encore ajouter la fonctionnalit&eacute;
- <literal>sc</literal> dans <filename>/etc/printcap</filename>
- sur la machine <hostid>orchid</hostid> (et pendant que nous y
- sommes, d&eacute;sactivons les exemplaires multiples sur l'imprimante
- <literal>teak</literal>):</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine orchid - pas d'impression en plusieurs
-# exemplaires sur l'imprimante locale teak ni sur l'imprimante distante bamboo
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
- :if=/usr/local/libexec/ifhp:\
- :vf=/usr/local/libexec/vfhp:\
- :of=/usr/local/libexec/ofhp:
-
-rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:
- </programlisting>
-
- <para>Avec la fonctionnalit&eacute; <literal>sc</literal>,
- nous emp&ecirc;chons d'utiliser la commande <command>lpr -#</command>,
- mais cela n'&eacute;vite pas que les utilisateurs ex&eacute;cutent plusieurs
- fois <citerefentry>
- <refentrytitle>lpr</refentrytitle></citerefentry>,
- ou soumettent plusieurs fois les m&ecirc;mes fichiers dans un m&ecirc;me
- travail, comme ceci:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>lpr a-vendre.annonce a-vendre.annonce a-vendre.annonce</userinput></screen>
- </informalexample>
-
- <para>Il y a de nombreux moyens d'emp&ecirc;cher ce type d'abus
- que vous &ecirc;tes libre d'essayer (y compris l'ignorer).</para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-restricting-access">
- <title>Restreindre l'acc&egrave;s aux imprimantes</title>
-
- <para>Vous pouvez contr&ocirc;ler qui imprime sur quelle imprimante
- avec le m&eacute;canisme des groupes d'UNIX et la fonctionnalit&eacute;
- <literal>rg</literal> dans <filename>/etc/printcap</filename>.
- D&eacute;finissez les utilisateurs auxquels vous voulez autoriser l'acc&egrave;s
- &agrave; une imprimante dans un groupe pr&eacute;cis et donnez ce groupe
- en param&egrave;tre de la fonctionnalit&eacute; <literal>rg</literal>.</para>
-
- <para>Les utilisateurs qui n'appartiennent pas &agrave; ce
- groupe (y compris le super-utilisateur) seront accueillis par:</para>
-
- <informalexample>
- <screen>lpr: Not a member of the restricted group</screen>
- </informalexample>
-
- <para>(Vous n'appartenez pas au groupe autoris&eacute;.)
- s'ils essaient d'utiliser l'imprimante en question.</para>
-
- <para>De m&ecirc;me que pour la fonctionnalit&eacute; <literal>sc</literal>
- (suppressions des exemplaires multiples), vous devez sp&eacute;cifier
- <literal>rg</literal> sur les machines distantes qui ont acc&egrave;s
- &agrave; l'imprimante, si cela vous para&icirc;t indiqu&eacute; (voyez la section
- <link linkend="printing-advanced-network-rm">Imprimantes
- install&eacute;es sur des machines distantes</link>).</para>
-
- <para>Par exemple, nous ne laisserons pas tout le monde imprimer sur
- <literal>rattan</literal>, mais seuls les utilisateurs du groupe
- <literal>artists</literal> pourront utiliser
- <literal>bamboo</literal>. Voici notre habituel fichier
- <filename>/etc/printcap</filename>
- pour la machine <hostid>rose</hostid>:</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine rose - restriction d'acc&egrave;s &agrave; bamboo
-#
-rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
- </programlisting>
-
- <para>Laissons tel quel l'autre fichier
- <filename>/etc/printcap</filename> (de la machine
- <hostid>orchid</hostid>). Bien s&ucirc;r, tous les utilisateurs
- d'<hostid>orchid</hostid> peuvent alors imprimer sur
- <literal>bamboo</literal>. Selon le cas, nous voudrons
- restreindre ou non l'acc&egrave;s &agrave; certains utilisateurs
- d'<hostid>orchid</hostid>.</para>
-
- <note>
- <para>Avec cette fonctionnalit&eacute;, il ne peut y avoir qu'un seul
- groupe d'utilisateurs autoris&eacute; par imprimante.</para>
- </note>
- </sect3>
-
- <sect3
- id="printing-advanced-restricting-sizes">
- <title>Contr&ocirc;ler la taille des travaux soumis</title>
-
- <para>Si de nombreux utilisateurs acc&egrave;dent &agrave; vos imprimantes,
- vous voudrez probablement limiter la taille des fichiers
- qu'ils peuvent imprimer. Apr&egrave;s tout, l'espace disponible
- sur les syst&egrave;mes de fichiers o&ugrave; se trouvent les files
- d'attente n'est pas illimit&eacute;, et vous devez aussi faire en
- sorte qu'il y ait de la place pour les travaux de tous les
- utilisateurs.</para>
-
- <para>LPD vous permet de d&eacute;finir une taille maximum en octets
- que peut avoir un fichier &agrave; imprimer gr&acirc;ce &agrave; la fonctionnalit&eacute;
- <literal>mx</literal>. L'unit&eacute; est le bloc BUFSIZ, qui est de
- 1024 octets. Si vous donnez en param&egrave;tre de cette fonctionnalit&eacute;
- la valeur z&eacute;ro, la taille des fichiers ne sera pas limit&eacute;e.</para>
-
- <note>
- <para>Cette limite s'applique &agrave; la taille des
- <emphasis>fichiers</emphasis> d'un travail d'impression,
- et <emphasis>non</emphasis> au volume total du travail.</para>
- </note>
-
- <para>LPD ne refusera pas d'imprimer un fichier trop volumineux.
- Il en mettra autant que la limite
- donn&eacute;e dans la file d'attente. Cette
- partie sera imprim&eacute;e, le reste sera ignor&eacute;. Est-ce la bonne
- m&eacute;thode, le d&eacute;bat reste ouvert.</para>
-
- <para>Ajoutons des limites aux imprimantes
- <literal>rattan</literal> et <literal>bamboo</literal>
- de notre exemple. Comme les fichiers PostScript de nos artistes
- sont assez volumineux, nous les limiterons &agrave; 5 m&eacute;ga-octets. Nous
- ne mettrons pas de limitation &agrave; l'utilisation de l'imprimante
- texte:</para>
-
- <programlisting>
-#
-# /etc/printcap pour la machine rose
-#
-
-#
-# Pas de limite &agrave; la taille des fichiers:
-#
-rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-#
-# Pas plus de 5 m&eacute;ga-octets
-#
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
- </programlisting>
-
- <para>Encore une fois, ces limitations s'appliquent aux
- utilisateurs locaux. Si ces imprimantes sont accessibles
- &agrave; distance, les utilisateurs distants ne seront pas
- assujettis &agrave; ces limites. Il vous faut aussi introduire la
- fonctionnalit&eacute; <literal>mx</literal> dans les fichiers
- <filename>/etc/printcap</filename> des machines distantes. Voyez
- la section <link
- linkend="printing-advanced-network-rm">Imprimantes install&eacute;es
- sur des machines distantes</link> pour plus d'informations sur
- l'impression &agrave; distance.</para>
-
- <para>Il y a un autre moyen de limiter le volume des travaux
- d'impression &agrave; distance; voyez la section <link
- linkend="printing-advanced-restricting-remote">Contr&ocirc;ler les
- impressions &agrave; distance</link>.</para>
-
- </sect3>
-
- <sect3
- id="printing-advanced-restricting-remote">
- <title>Contr&ocirc;ler les impressions &agrave; distance</title>
-
- <para>Le syst&egrave;me LPD fournit diff&eacute;rents moyens de contr&ocirc;ler
- les impressions depuis des machines distantes:</para>
-
-
- <variablelist>
- <varlistentry><term>Restrictions selon les machines</term>
- <listitem>
- <para>Vous pouvez contr&ocirc;ler de quelles machines distantes
- le &ldquo;d&eacute;mon&rdquo; LPD local acceptera des requ&ecirc;tes
- d'impression gr&acirc;ce aux fichiers
- <filename>/etc/hosts.equiv</filename> et
- <filename>/etc/hosts.lpd</filename>. LPD v&eacute;rifie si la
- requ&ecirc;te vient d'une machine mentionn&eacute;e dans l'un de ces
- deux fichiers. Si ce n'est pas le cas, il refuse la
- requ&ecirc;te.</para>
-
- <para>Le format de ces fichiers est trivial: un nom de
- machine par ligne. Notez que le fichier
- <filename>/etc/hosts.equiv</filename> est aussi utilis&eacute;
- par le protocole
- <citerefentry><refentrytitle>ruserok</refentrytitle><manvolnum>3</manvolnum></citerefentry>, et affecte des programmes comme
- <citerefentry>
- <refentrytitle>rsh</refentrytitle></citerefentry> et
- <citerefentry>
- <refentrytitle>rcp</refentrytitle></citerefentry>,
- faites donc attention.</para>
-
- <para>Voici par exemple le fichier
- <filename>/etc/hosts.lpd</filename> de la machine
- <hostid>rose</hostid>:
-
- <programlisting>
-orchid
-violet
-madrigal.fishbaum.de
- </programlisting>
-
- Ce qui signifie que <hostid>rose</hostid> acceptera
- les demandes qui viennent des machines
- <hostid>orchid</hostid>,
- <hostid>violet</hostid>
- et <hostid role="fqdn">madrigal.fishbaum.de</hostid>.
- Si une autre machine fait appel au LPD de
- <hostid>rose</hostid>, il lui refusera l'acc&egrave;s.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Restrictions de volume</term>
-
- <listitem>
- <para>Vous pouvez contr&ocirc;ler combien il doit rester
- d'espace libre sur le syst&egrave;me de fichiers o&ugrave; se
- trouve le r&eacute;pertoire de file d'attente. Cr&eacute;ez un
- fichier appel&eacute; <filename>minfree</filename> dans
- le r&eacute;pertoire de file d'attente de l'imprimante
- local. Mettez-y un nombre de blocs disque (512 octets)
- qui sera l'espace qui devra &ecirc;tre disponible pour
- qu'un travail d'impression &agrave; distance soit accept&eacute;.</para>
-
- <para>Vous vous assurez ainsi que les utilisateurs distants
- ne satureront pas votre syst&egrave;me de fichiers. Vous pouvez
- aussi utiliser cette possibilit&eacute; pour donner une certaine
- priorit&eacute; aux utilisateurs locaux: ils pourront mettre des
- travaux en attente bien apr&egrave;s que l'espace disponible
- soit descendu en dessous de la valeur indiqu&eacute;e par
- le fichier <filename>minfree</filename>.</para>
-
- <para>D&eacute;finissons par exemple un fichier
- <filename>minfree</filename> pour l'imprimante
- <hostid>bamboo</hostid>. Nous regardons dans
- <filename>/etc/printcap</filename> pour savoir
- quel est son r&eacute;pertoire de file d'attente. Voici l'entr&eacute;e
- pour <hostid>bamboo</hostid>:</para>
-
- <programlisting>
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:mx#5000:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
- </programlisting>
-
- <para>Le r&eacute;pertoire de file d'attente est d&eacute;fini par la
- fonctionnalit&eacute; <literal>sd</literal>. Nous fixerons &agrave;
- trois m&eacute;ga-octets (soit 6144 blocs disque) l'espace
- qui doit &ecirc;tre libre pour que LPD accepte des impressions
- distantes:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>echo 6144 &gt; /var/spool/lpd/bamboo/minfree</userinput></screen>
- </informalexample>
-
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Restrictions sur les utilisateurs</term>
-
- <listitem>
- <para>Vous pouvez contr&ocirc;ler quels utilisateurs distants
- peuvent utiliser les imprimantes locales avec la
- fonctionnalit&eacute; <literal>rs</literal> dans
- <filename>/etc/printcap</filename>. Quand
- <literal>rs</literal> est mentionn&eacute;e dans l'entr&eacute;e
- correspondant &agrave; une imprimante locale, LPD acceptera
- les impressions venant de machines distantes
- <emphasis>si et seulement si</emphasis> l'utilisateur
- qui soumet le travail a un compte sous le m&ecirc;me nom
- sur la machine locale. Sinon, le travail d'impression
- sera refus&eacute;.</para>
-
- <para>Cette fonctionnalit&eacute; est particuli&egrave;rement utile
- lorsque (par exemple) plusieurs d&eacute;partements partagent un r&eacute;seau
- et certains utilisateurs sont &agrave; cheval sur plusieurs
- d&eacute;partements. En leur ouvrant un compte sur vos
- syst&egrave;mes, ils peuvent utiliser les imprimantes de
- leur propre d&eacute;partement. Si vous pr&eacute;f&eacute;rez qu'ils
- n'utilisent que <emphasis>vos</emphasis> imprimantes, mais
- pas vos machines, vous pouvez leur ouvrir des comptes
- &ldquo;jeton&rdquo;, sans r&eacute;pertoire utilisateur et
- avec un interpr&eacute;teur de commandes inutilisable tel que
- <filename>/usr/bin/false</filename>.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect3>
- </sect2>
-
- <sect2
- id="printing-advanced-acct">
- <title>Comptabiliser l'utilisation des imprimantes</title>
-
- <para>Donc, vous voulez facturer les impressions. Et pourquoi pas?
- Le papier et l'encre co&ucirc;tent de l'argent. Il y a aussi les co&ucirc;ts
- de maintenance. Les imprimantes ont des pi&egrave;ces mobiles qui ont
- tendance &agrave; casser. Vous avez fait un bilan du co&ucirc;t de vos
- imprimantes, consommables et frais de maintenance et avez
- calcul&eacute; un coup &agrave; la page (ou au m&egrave;tre, ou toute autre unit&eacute;).
- Comment faites-vous maintenant pour comptabiliser les
- impressions?</para>
-
- <para>Bien, la mauvaise nouvelle est que le gestionnaire
- d'impression LPD n'aide pas beaucoup dans ce domaine. La
- facturation d&eacute;pend dans une large mesure du type d'imprimante,
- du format utilis&eacute;, et de <emphasis>votre</emphasis> politique
- de facturation de l'utilisation des imprimantes.</para>
-
- <para>Pour mettre en oeuvre la facturation, vous devez modifier le
- filtre texte de l'imprimante (pour facturer l'impression de
- fichiers texte) et les filtres de conversion (pour les autres
- formats de fichiers), pour qu'ils comptent les pages ou interrogent
- l'imprimante pour conna&icirc;tre le nombre de pages imprim&eacute;es. Vous
- ne pouvez pas vous en sortir avec un simple filtre de sortie, qui
- n'est pas capable de g&eacute;rer la comptabilit&eacute;. Voyez la section
- <link
- linkend="printing-advanced-filter-intro">Filtres</link>.</para>
-
- <para>D'une fa&ccedil;on g&eacute;n&eacute;rale, il y a deux m&eacute;thodes de faire la
- facturation:
- <itemizedlist>
-
- <listitem>
- <para>La <emphasis>facturation p&eacute;riodique</emphasis> est la
- m&eacute;thode la plus courante, probablement parce que c'est la
- plus facile. Chaque fois que quelqu'un imprime, le filtre
- enregistre dans le fichier comptable le nom de l'utilisateur,
- celui de la machine et le nombre de pages imprim&eacute;es. Tous
- les mois, semestres, ann&eacute;es, ou avec la p&eacute;riodicit&eacute; que vous
- voulez, vous r&eacute;cup&eacute;rez les fichiers comptables des diff&eacute;rentes
- imprimantes et facturez leur utilisation. Vous r&eacute;initialisez
- ensuite ces fichiers, et repartez &agrave; z&eacute;ro pour la p&eacute;riode
- suivante.</para>
- </listitem>
-
- <listitem>
- <para>La <emphasis>facturation &agrave; la vol&eacute;e</emphasis> est moins
- utilis&eacute;e, certainement parce qu'elle est plus d&eacute;licate. Avec
- cette m&eacute;thode, les filtres facturent les utilisateurs d&egrave;s
- qu'ils utilisent les imprimantes. Comme pour les quotas
- d'espace disque, la comptabilit&eacute; est imm&eacute;diate, Vous pouvez
- interdire aux utilisateurs d'imprimer d&egrave;s qu'ils sont dans le
- rouge et leur fournir un moyen de consulter et modifier
- leurs &ldquo;quotas d'impression&rdquo;. Mais cette
- m&eacute;thode demande de mettre en oeuvre une base de donn&eacute;es
- pour g&eacute;rer les utilisateurs et leurs quotas.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>Le gestionnaire d'impression LPD permet de mettre facilement en
- oeuvre les deux m&eacute;thodes: de m&ecirc;me que vous devez fournir des filtres
- (la plupart du temps, au moins), vous devez aussi &eacute;crire le code
- de facturation. Mais cela a un avantage: vous avez &eacute;normement de
- souplesse pour la m&eacute;thode. Par exemple, vous pouvez choisir entre
- la facturation p&eacute;riodique ou &agrave; la vol&eacute;e. Vous pouvez choisir quelles
- informations utiliser: le nom d'utilisateur, le nom de
- machine, le type d'impression, le nombre de pages, la surface ou
- la quantit&eacute; de papier utilis&eacute;e, le temps qu'a pris l'impression, et
- ainsi de suite. Vous faites cela en modifiant le filtre pour qu'il
- archive ces informations.</para>
-
- <sect3>
- <title>Facturation simplifi&eacute;e</title>
-
- <para>FreeBSD inclut deux programmes que vous pouvez imm&eacute;diatement
- configurer pour une facturation p&eacute;riodique de base. Ce sont le
- filtre texte <command>lpf</command>, d&eacute;crit &agrave; la section
- <link linkend="printing-advanced-lpf"><command>lpf</command>:
- un filtre texte</link>, et <citerefentry>
- <refentrytitle>pac</refentrytitle></citerefentry>, un programme
- qui rassemble et globalise les donn&eacute;es des fichiers
- comptables.</para>
-
- <para>Comme indiqu&eacute; &agrave; la section sur les filtres (<link
- linkend="printing-advanced-filters">Filtres</link>), LPD
- ex&eacute;cute le filtre texte et les filtres de conversion en leur
- donnant en argument le nom du fichier comptable. Les filtres
- peuvent utiliser ce param&egrave;tre pour savoir o&ugrave; &eacute;crire
- l'enregistrement comptable. Le nom du fichier est pr&eacute;cis&eacute; par
- la fonctionnalit&eacute; <literal>af</literal> du fichier
- <filename>/etc/printcap</filename>, avec un chemin d'acc&egrave;s
- absolu ou relatif au r&eacute;pertoire de file d'attente.</para>
-
- <para>LPD ex&eacute;cute <command>lpf</command> avec comme param&egrave;tres
- la largeur et la hauteur de page (d&eacute;finies par les
- fonctionnalit&eacute;s <literal>pw</literal> et <literal>pl</literal>).
- <command>lpf</command> utilise ces arguments pour savoir combien
- il faudra de papier. Apr&egrave;s avoir envoy&eacute; le fichier &agrave; l'imprimante,
- il g&eacute;n&egrave;re alors un enregistrement dans le fichier comptable. Cet
- enregistrement ressemble &agrave; ce qui suit:</para>
-
- <programlisting>
-2.00 rose:andy
-3.00 rose:kelly
-3.00 orchid:mary
-5.00 orchid:mary
-2.00 orchid:zhang</programlisting>
-
- <para>Il faut utiliser un fichier comptable diff&eacute;rent pour
- chaque imprimante, car <command>lpf</command> ne sait pas
- verrouiller les fichiers, et deux <command>lpf</command>
- pourraient corrompre leurs enregistrements respectifs
- s'ils &eacute;crivaient en m&ecirc;me temps dans le m&ecirc;me fichier. Une fa&ccedil;on
- simple d'&ecirc;tre s&ucirc;r que l'on a des fichiers diff&eacute;rents pour chaque
- imprimante est d'utiliser <literal>af=acct</literal> dans
- <filename>/etc/printcap</filename>. On a alors dans les
- r&eacute;pertoires de file d'attente de chaque imprimante, un fichier
- comptable appel&eacute; <filename>acct</filename>.</para>
-
- <para>Quand vous voulez facturer les utilisateurs,
- ex&eacute;cutez le programme <citerefentry>
- <refentrytitle>pac</refentrytitle></citerefentry>.
- Allez simplement dans le r&eacute;pertoire de file d'attente
- de l'imprimante dont vous voulez r&eacute;cup&eacute;rer les informations
- comptables et tapez <citerefentry>
- <refentrytitle>pac</refentrytitle></citerefentry>. Vous
- obtiendrez un r&eacute;sum&eacute; (en dollars) des co&ucirc;ts:</para>
-
- <informalexample>
- <screen> Login pages/feet runs price
-orchid:kelly 5.00 1 $ 0.10
-orchid:mary 31.00 3 $ 0.62
-orchid:zhang 9.00 1 $ 0.18
-rose:andy 2.00 1 $ 0.04
-rose:kelly 177.00 104 $ 3.54
-rose:mary 87.00 32 $ 1.74
-rose:root 26.00 12 $ 0.52
-
-total 337.00 154 $ 6.74</screen>
- </informalexample>
-
- <para>Voici les arguments qu'attend <citerefentry>
- <refentrytitle>pac</refentrytitle></citerefentry>:</para>
-
- <variablelist>
- <varlistentry><term><option>-P<replaceable>imprimante</replaceable></option></term>
- <listitem>
- <para>L'<replaceable>imprimante</replaceable> dont on
- veut le r&eacute;sum&eacute; comptable. Cette option ne fonctionne
- que si l'on a donn&eacute; un chemin d'acc&egrave;s absolu &agrave; la
- fonctionnalit&eacute; <literal>af</literal>
- dans <filename>/etc/printcap</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-c</option></term>
-
- <listitem>
- <para>Trier par co&ucirc;ts au lieu d'utiliser l'ordre
- alphab&eacute;tique des noms d'utilisateurs.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-m</option></term>
-
- <listitem>
- <para>Ne pas tenir compte du nom de machine indiqu&eacute; pour la
- comptabilit&eacute;. Avec cette option, l'utilisateur
- <username>smith</username> sur la machine
- <hostid>alpha</hostid> est le m&ecirc;me utilisateur que
- <username>smith</username> sur la machine
- <hostid>gamma</hostid>. Sinon, ils sont consid&eacute;r&eacute;s comme
- des utilisateurs diff&eacute;rents.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-p<replaceable>prix</replaceable></option></term>
-
- <listitem>
- <para>Calculer les co&ucirc;ts sur la base du
- <replaceable>prix</replaceable> en dollars par page ou par
- pied (&ldquo;ft&rdquo;) au lieu d'utiliser la valeur donn&eacute;e
- avec la fonctionnalit&eacute; <literal>pc</literal> dans
- <filename>/etc/printcap</filename>, ou deux
- centimes (la valeur par d&eacute;faut).
- <replaceable>prix</replaceable> peut &ecirc;tre un nombre en
- virgule flottante.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-r</option></term>
-
- <listitem>
- <para>Trier dans l'ordre inverse.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><option>-s</option></term>
-
- <listitem>
- <para>Editer le r&eacute;sum&eacute; comptable et tronquer le
- fichier.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term><replaceable>nom</replaceable> <replaceable>...</replaceable></term>
-
- <listitem>
- <para>N'imprimer les informations comptables que pour
- l'utilisateur <replaceable>nom</replaceable>.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Dans le r&eacute;sum&eacute; que produit <citerefentry>
- <refentrytitle>pac</refentrytitle></citerefentry>
- par d&eacute;faut, vous avez le nombre de pages imprim&eacute;es par
- chaque utilisateur sur chaque machine.Si, sur votre site,
- les machines n'ont pas d'importance (parce que les
- utilisateurs peuvent se servir de n'importe laquelle),
- utilisez <command>pac -m</command>, pour obtenir un
- r&eacute;capitulatif qui ressemble &agrave;:</para>
-
- <informalexample>
- <screen> Login pages/feet runs price
-andy 2.00 1 $ 0.04
-kelly 182.00 105 $ 3.64
-mary 118.00 35 $ 2.36
-root 26.00 12 $ 0.52
-zhang 9.00 1 $ 0.18
-
-total 337.00 154 $ 6.74</screen>
- </informalexample>
-
- <para>Pour calculer la facture en dollars,
- <citerefentry>
- <refentrytitle>pac</refentrytitle></citerefentry> utilise
- la fonctionnalit&eacute; <literal>pc</literal> du fichier
- <filename>/etc/printcap</filename> (200 par d&eacute;faut, soit 2
- centimes par page). Donnez, en centi&egrave;mes de centimes, le prix
- par page ou par pied que vous voulez facturer. Cette valeur
- peut &ecirc;tre red&eacute;finie quand vous utilisez
- <citerefentry>
- <refentrytitle>pac</refentrytitle></citerefentry> avec
- l'option <option>-p</option>. Avec l'option
- <option>-p</option>, l'unit&eacute; est le dollar et non plus
- le centi&egrave;me de centime. Par exemple:
-
- <informalexample>
- <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen>
- </informalexample>
-
- facture chaque page un dollar cinquante centimes. Vous pouvez
- vraiment faire des affaires avec cette option.</para>
-
- <para>Enfin, utiliser <command>pac -s</command> sauvegardera le
- r&eacute;sum&eacute; dans un fichier comptable r&eacute;capitulatif, de m&ecirc;me nom
- que le fichier comptable associ&eacute; &agrave; l'imprimante, mais suffix&eacute;
- par <literal>_sum</literal>. Le fichier comptable est ensuite
- tronqu&eacute;. La prochaine fois que vous utiliserez
- <citerefentry><refentrytitle>pac</refentrytitle></citerefentry>,
- ce fichier r&eacute;capitulatif sera relu et pris en compte pour
- recalculer les totaux, en y ajoutant ce qui est comptabilis&eacute;
- dans le fichier comptable normal.</para>
-
- </sect3>
-
- <sect3>
- <title>Comment compter le nombre de pages imprim&eacute;es?</title>
-
- <para>Pour comptabliser correctement les impressions, m&ecirc;me &agrave;
- distance, vous devez pouvoir calculer la quantit&eacute; de papier
- consomm&eacute;e par chaque travail. C'est la difficult&eacute; principale
- li&eacute;e &agrave; la facturation des impressions.</para>
-
- <para>Pour les impressions en mode texte, la difficult&eacute; n'est
- pas si grande: vous comptez le nombre de lignes &agrave; imprimer
- et le comparer au nombre de lignes que l'imprimante peut
- &eacute;diter par page. N'oubliez pas de prendre les retours arri&egrave;re
- en compte, lorsqu'il y a sur-impression, de m&ecirc;me que les lignes
- trop longues qui s'impriment sur plus d'une ligne.</para>
-
- <para>Le filtre texte <command>lpf</command>
- (d&eacute;crit dans <link
- linkend="printing-advanced-lpf"><command>lpf</command>: un filtre
- texte</link>) prend tout cela en compte lorsqu'il g&egrave;re
- la comptabilit&eacute;. Si vous &eacute;crivez un filtre texte qui doit prendre
- la facturation en charge, vous devriez jeter un oeil au code
- source de <command>lpf</command>.</para>
-
- <para>Comment prendre les autres formats en compte?</para>
-
- <para>Pour les conversions de DVI en LaserJet ou PostScript,
- le filtre peut analyser la sortie de
- <citerefentry>
- <refentrytitle>dvilj</refentrytitle></citerefentry> ou
- <citerefentry>
- <refentrytitle>dvips</refentrytitle></citerefentry>
- pour y lire le nombre de pages converties. Vous devriez
- &ecirc;tre en mesure de faire de m&ecirc;me avec d'autres formats de fichiers
- et d'autres programmes de conversion.</para>
-
- <para>Ces m&eacute;thodes sont toutefois limit&eacute;es parce qu'elles ne
- prennent pas en compte le fait que l'imprimante n'imprimera
- peut-&ecirc;tre pas toutes ces pages. Il peut par exemple y avoir
- bourrage ou manque d'encre&nbsp;-&nbsp;et l'utilisateur sera malgr&eacute;
- tout factur&eacute;.</para>
-
- <para>Que pouvez-vous alors faire?</para>
-
- <para>Il n'y a qu'une seule m&eacute;thode <emphasis>s&ucirc;re</emphasis>
- pour tenir une comptabilit&eacute; <emphasis>pr&eacute;cise</emphasis>.
- Faire dire &agrave; l'imprimante combien de papier elle utilise, et
- la connecter sur un port s&eacute;rie ou directement sur le r&eacute;seau.
- Pratiquement toutes les imprimantes PostScript offrent cette
- possibilit&eacute;. C'est aussi faisable avec d'autres mod&egrave;les (les
- imprimantes laser r&eacute;seau Imagen, par exemple). Modifiez les
- filtres de ces imprimantes pour lire le nombre de pages
- imprim&eacute;es &agrave; la fin de chaque travail et reportez dans le
- fichier comptable des informations qui se basent
- <emphasis>uniquement</emphasis> l&agrave;-dessus. Il n'y a alors pas besoin
- de compter les lignes ou d'un examen des fichiers qui peut
- &ecirc;tre source d'erreurs.</para>
-
- <para>Vous pouvez toujours en d&eacute;finitive vous montrer g&eacute;n&eacute;reux et
- instituer la gratuit&eacute; des impressions.</para>
-
- </sect3>
- </sect2>
- </sect1>
-
- <sect1
- id="printing-lpd-alternatives">
- <title>Alternatives au gestionnaire d'impression standard</title>
-
- <para>Si vous avez lu int&eacute;gralement ce document jusqu'ici,
- vous savez maintenant &agrave; peu pr&egrave;s tout ce qu'il faut savoir sur
- le gestionnaire d'impression LPD qui est livr&eacute; avec FreeBSD. Vous
- pouvez juger de ses limitations, ce qui vous am&egrave;ne tout naturellement
- &agrave; vous demander s'il existe d'autres gestionnaires d'impression
- (qui fonctionnent sous FreeBSD).</para>
-
- <para>Malheureusement, je n'ai trouv&eacute; que <emphasis>deux</emphasis>
- alternatives&nbsp;-&nbsp;et elles sont quasiment semblables! Ce sont:</para>
-
- <variablelist>
- <varlistentry><term>PLP, le &ldquo;Portable Line Printer
- Spooler&rdquo;
- (gestionnaire d'impression en ligne portable)</term>
- <listitem>
- <para>PLP est bas&eacute; sur un logiciel d&eacute;velopp&eacute; par Patrick Powell
- puis maintenu par un groupe de d&eacute;veloppeurs sur Internet. Le
- site de r&eacute;f&eacute;rence pour ce logiciel est <ulink
- url="ftp://ftp.iona.ie/pub/plp">ftp://ftp.iona.ie/pub/plp</ulink>.
- Il y a aussi une <ulink url="http://www.iona.ie:8000/www/hyplan/jmason/plp.html">page Web</ulink>.</para>
-
- <para>Il ressemble beaucoup au gestionnaire LPD de BSD, mais
- en am&eacute;liore un grand nombre de fonctionnalit&eacute;s, dont:
- <itemizedlist>
-
- <listitem>
- <para>Meilleur support r&eacute;seau, dont le support int&eacute;gr&eacute;
- des imprimantes r&eacute;seau,
- fichiers <filename>printcap</filename> g&eacute;r&eacute;s par NIS,
- et montage NFS des r&eacute;pertoires tampons.</para>
- </listitem>
-
- <listitem>
- <para>Gestion sophistiqu&eacute;e des files d'attentes,
- permettant d'avoir plusieurs imprimantes sur la m&ecirc;me
- file, le transfert de travaux d'une file &agrave; une autre,
- et la redirection des files d'attente.</para>
- </listitem>
-
- <listitem>
- <para>Fonctions de contr&ocirc;le &agrave; distance des
- imprimantes.</para>
- </listitem>
-
- <listitem>
- <para>Gestion des priorit&eacute;s des travaux.</para>
- </listitem>
-
- <listitem>
- <para>Extensions aux options d'acc&egrave;s et de s&eacute;curit&eacute;.</para>
- </listitem>
-
- </itemizedlist>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>LPRng</term>
-
- <listitem>
- <para>LPRng, qui signifie &ldquo;LPR: the Next
- Generation&rdquo; (LPR : la g&eacute;n&eacute;ration suivante) est une
- r&eacute;&eacute;criture compl&egrave;te de PLP. Patrick Powell
- et Justin Mason (le principal responsable de la maintenance
- de PLP) ont coop&eacute;r&eacute; pour r&eacute;aliser LPRng. Le site de
- r&eacute;f&eacute;rence de LPRng est <ulink
- url="ftp://dickory.sdsu.edu/pub/LPRng">ftp://dickory.sdsu.edu/pub/LPRng</ulink>.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
- </sect1>
-
- <sect1><title>Remerciements</title>
-
- <para>Je voudrais remercier les personnes suivantes pour l'aide
- qu'elles m'ont apport&eacute;e pour r&eacute;aliser ce document:</para>
-
- <variablelist>
- <varlistentry><term>Daniel Eischen
- <email>deischen@iworks.interworks.org</email></term>
- <listitem>
- <para>Qui a fourni une pl&eacute;thore de programmes de filtre HP
- que j'ai pu r&eacute;utiliser.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>&a.jehamby;</term>
-
- <listitem>
- <para>Pour le filtre de conversion Ghostscript pour HP.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Ma femme, Mary Kelly
- <email>urquhart@argyre.colorado.edu</email></term>
-
- <listitem>
- <para>Pour m'avoir laiss&eacute; passer plus de temps avec FreeBSD
- qu'avec elle.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/quotas/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/quotas/chapter.sgml
deleted file mode 100755
index 4ace312374..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/quotas/chapter.sgml
+++ /dev/null
@@ -1,284 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter
- id="quotas">
- <title>Quotas d'utilisation des disques</title>
-
- <para><emphasis>Contribution de &a.mpp;.<!-- <br> -->26 F&eacute;vrier
- 1996</emphasis></para>
- &trans.a.haby;
-
- <para>Les quotas sont une option du syst&egrave;me d'exploitation qui vous
- permet de limiter la quantit&eacute; d'espace disque et/ou le nombre
- de fichiers auxquels ont droit un utilisateur ou tous les
- utilisateurs du m&ecirc;me groupe, sur un syst&egrave;me de fichiers donn&eacute;.
- On les utilise la plupart du temps sur les syst&egrave;mes en temps
- partag&eacute; sur lequel il est souhaitable de limiter la quantit&eacute; de
- ressources allou&eacute;e &agrave; un utilisateur ou &agrave; un groupe. Cela &eacute;vite
- qu'un seul utilisateur consomme tout l'espace disque.</para>
-
-
- <sect1>
- <title>Configurer votre syst&egrave;me pour pouvoir utiliser les
- quotas d'utilisation des disques</title>
-
- <para>Avant d'essayer de mettre en place des quotas disque, il faut
- vous assurez que votre noyau est configur&eacute; pour cela. Pour ce faire,
- vous devez ajouter la ligne suivante au fichier de configuration de
- votre noyau:</para>
-
- <programlisting>
-options QUOTA
- </programlisting>
-
- <para>Cette option n'est pas activ&eacute;e par d&eacute;faut dans le fichier noyau
- <filename>GENERIC</filename> de base, vous devez donc configurer,
- compiler et installer un noyau sur-mesure pour utiliser les quotas
- disque. Reportez-vous s'il vous pla&icirc;t au chapitre
- <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link>
- pour plus d'informations sur la configuration du noyau.</para>
-
- <para>Vous devrez ensuite mettre en service les quotas dans votre
- fichier <filename>/etc/sysconfig</filename>. Pour cela, remplacez
- la ligne:
-
- <programlisting>
-quotas=NO
- </programlisting>par:
-
- <programlisting>
-quotas=YES
- </programlisting></para>
-
- <para>Si vous utilisez FreeBSD 2.2.2 ou ult&eacute;rieur, ce fichier
- de configuration s'appelle <filename>/etc/rc.conf</filename> et le
- nom de la variable a &eacute;t&eacute; modifi&eacute; en:
-
- <programlisting>
-check_quotas=YES
- </programlisting></para>
-
- <para>Vous devez enfin &eacute;diter le fichier
- <filename>/etc/fstab</filename> pour mettre en service les quotas
- syst&egrave;me de fichiers par syst&egrave;me de fichiers. C'est l&agrave; que vous
- dites si vous voulez des quotas d'utilisation des disques par
- utilisateur, par groupe ou les deux, pour chaque syst&egrave;me de
- fichiers.</para>
-
- <para>Pour mettre en service des quotas par utilisateur, ajoutez
- l'option <literal>userquota</literal> &agrave; la zone d'options de
- l'entr&eacute;e de <filename>/etc/fstab</filename> pour le syst&egrave;me de
- fichiers sur lequel vous voulez des quotas. Par exemple:</para>
-
- <programlisting>
-/dev/sd1s2g /home ufs rw,userquota 1 2
- </programlisting>
-
- <para>De m&ecirc;me, pour d&eacute;finir des quotas par groupe, utilisez l'option
- <literal>groupquota</literal> au lieu du mot-cl&eacute;
- <literal>userquota</literal>. Pour avoir &agrave; la fois des quotas par
- utilisateur et par groupe, modifiez cette entr&eacute;e de la fa&ccedil;on
- suivante:</para>
-
- <programlisting>
-/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2
- </programlisting>
-
- <para>Par d&eacute;faut, les fichiers o&ugrave; sont d&eacute;finis les quotas se trouvent
- dans le r&eacute;pertoire racine du syst&egrave;me de fichiers et s'appellent
- <filename>quota.user</filename> et
- <filename>quota.group</filename>, pour les quotas par utilisateur
- et, respectivement, par groupe. Consultez
- <command>man fstab</command> pour plus d'informations. Bien que les
- pages de manuel disent que vous pouvez mettre ces fichiers ailleurs,
- ce n'est pas recommand&eacute; parce qu'il semble que les divers utilitaires
- qui g&egrave;rent les quotas ne prennent pas tous cela correctement en
- compte.</para>
-
- <para>Vous devez maintenant red&eacute;marrer votre syst&egrave;me avec le nouveau
- noyau. La proc&eacute;dure <filename>/etc/rc</filename> ex&eacute;cutera
- automatiquement les commandes n&eacute;cessaires &agrave; la cr&eacute;ation des fichiers
- de quotas initiaux pour tous ceux que vous avez instaur&eacute;s dans
- <filename>/etc/fstab</filename>, vous n'avez donc pas besoin de
- cr&eacute;er &agrave; la main des fichiers de quotas vides.</para>
-
- <para>Vous ne devriez normalement pas avoir &agrave; ex&eacute;cuter les commandes
- <command>quotacheck</command>, <command>quotaon</command>,
- ou <command>quotaoff</command>. Vous pouvez cependant lire les pages
- de manuel qui s'y rapportent, simplement pour savoir ce qu'elles
- font.</para>
-
- </sect1>
-
- <sect1>
- <title>D&eacute;finir les quotas</title>
-
- <para>Maintenant que votre syst&egrave;me est configur&eacute; pour mettre en place
- des quotas, v&eacute;rifiez que cela marche bien. Cela ce fait facilement
- en ex&eacute;cutant:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>quota -v</userinput></screen>
- </informalexample>
-
- <para>Vous devriez obtenir une ligne de r&eacute;sum&eacute; d'utilisation du
- disque avec les quotas actuellement d&eacute;finis pour chaque syst&egrave;me de
- fichiers sur lesquels il y a des quotas.</para>
-
- <para>Vous pouvez maintenant d&eacute;finir ces quotas avec la commande
- <command>edquota</command>.</para>
-
- <para>Il y a diff&eacute;rentes option pour instaurer les quotas d'espace
- disque allou&eacute;s &agrave; un utilisateur ou &agrave; un groupe et le nombre de
- fichiers qu'ils ont le droit de cr&eacute;er. Il peuvent &ecirc;tre bas&eacute;s sur
- l'espace disque (quotas en nombre de blocs) ou le nombre de fichiers
- (quotas en nombre d'entr&eacute;es dans le
- r&eacute;pertoire&nbsp;-&nbsp;&ldquo;inode&rdquo;) ou les deux. Ces options
- peuvent encore &ecirc;tre subdivis&eacute;es en deux cat&eacute;gories: limitations
- strictes ou souples.</para>
-
- <para>Les limites strictes ne peuvent jamais &ecirc;tre d&eacute;pass&eacute;es. D&egrave;s qu'un
- utilisateur atteint sa limite stricte, il ne peut plus rien allouer
- sur le syst&egrave;me de fichiers en question. Si par exemple, il n'a
- droit qu'&agrave; 500 blocs sur un syst&egrave;me de fichiers et en utilise d&eacute;j&agrave;
- 490, il ne peut plus en allouer que 10. S'il voulait en allouer 11,
- il n'y arriverait pas.</para>
-
- <para>Les limites souples peuvent elles &ecirc;tre d&eacute;pass&eacute;es pour une p&eacute;riode
- de temps restreinte. C'est ce que l'on appelle le d&eacute;lai de gr&acirc;ce, qui
- est d'une semaine par d&eacute;faut. Si un utilisateur d&eacute;passe sa limite
- souple au del&agrave; du d&eacute;lai de gr&acirc;ce, cette limite devient stricte, et
- il ne peut plus rien allouer. Lorsqu'il redescend en dessous de
- la limite stricte, le d&eacute;lai de gr&acirc;ce lui est r&eacute;accord&eacute;.</para>
-
- <para>Voici un exemple de ce que vous pouvez voir en utilisant
- la commande <command>edquota</command>. Quand vous invoquez la
- commande <command>edquota</command>, vous vous retrouvez sous
- l'&eacute;diteur d&eacute;fini par la variable d'environnement
- <envar>EDITOR</envar>, ou sous <command>vi</command>
- si la variable d'environnement <envar>EDITOR</envar> n'est pas
- positionn&eacute;e, ce qui vous permet d'&eacute;diter les quotas.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
- </informalexample>
-
- <programlisting>
-Quotas for user test:
-/usr: blocks in use: 65, limits (soft = 50, hard = 75)
- inodes in use: 7, limits (soft = 50, hard = 60)
-/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
- inodes in use: 0, limits (soft = 50, hard = 60)
- </programlisting>
-
- <para>Il y aura normalement deux lignes pour chaque syst&egrave;me de fichiers
- sur lequel il y a des quotas: une pour les quotas de blocs, l'autre
- pour les quotas d'entr&eacute;es de r&eacute;pertoire. Modifiez simplement les
- valeurs que vous voulez mettre &agrave; jour. Par exemple, pour augmenter
- la limite de blocs accord&eacute;e &agrave; cet utilisateur de 50 pour la limite
- souple et 75 pour la limite stricte &agrave; 500 pour la limite souple et
- 600 pour la limite stricte, modifiez:
-
- <programlisting>
-/usr: blocks in use: 65, limits (soft = 50, hard = 75)
- </programlisting> en:
-
- <programlisting>
-/usr: blocks in use: 65, limits (soft = 500, hard = 600)
- </programlisting></para>
-
- <para>Ces nouveaux quotas seront en service d&egrave;s que vous quitterez
- l'&eacute;diteur.</para>
-
- <para>Il est parfois souhaitable de d&eacute;finir des quotas pour une plage
- d'UIDs (identifiants utilisateur). Cela peut &ecirc;tre r&eacute;alis&eacute; par
- l'option <option>-p</option> de la commande
- <command>edquota</command>. D&eacute;finissez d'abord les quotas voulus pour
- un seul utilisateur, puis ex&eacute;cutez <command>edquota -p
- utilisateur_prototype premier_uid-dernier_uid</command>.
- Par exemple, si les quotas voulus sont ceux de l'utilisateur
- <username>test</username>, la commande qui suit applique les
- m&ecirc;mes quotas aux &ldquo;uids&rdquo; de 10.000 &agrave; 19.999:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
- </informalexample>
-
- <para>Cette possibilit&eacute; de d&eacute;finir des quotas pour une plage
- d'&ldquo;uids&rdquo; a &eacute;t&eacute; ajout&eacute;e apr&egrave;s la version 2.1. Si
- vous voulez en b&eacute;n&eacute;ficiez sur un syst&egrave;me 2.1, vous devez
- r&eacute;cup&eacute;rer un version plus r&eacute;cente de
- <command>edquota</command>.</para>
-
- <para>Voyez <command>man edquota</command> pour des informations plus
- d&eacute;taill&eacute;es.</para>
-
- </sect1>
-
- <sect1>
- <title>Consulter les quotas et l'utilisation des disques</title>
-
- <para>Vous pouvez utiliser l'une des commandes
- <command>quota</command> ou <command>repquota</command> pour
- consulter les quotas et l'utilisation des disques.
- La commande <command>quota</command> peut &ecirc;tre employ&eacute;e pour
- conna&icirc;tre les quotas et l'utilisation des disques pour un
- utilisateur et un groupe. Seul le super-utilisateur peut
- consulter les quotas et l'usage des disques des autres
- utilisateurs ou d'un groupe auquel il n'appartient pas.
- La commande <command>repquota</command> permet d'avoir un
- r&eacute;sum&eacute; des quotas et de l'utilisation des disques pour les
- syst&egrave;mes des fichiers sur lesquels il y a des quotas.</para>
-
- <para>Voici un exemple de r&eacute;sultat obtenu avec la commande
- <command>quota -v</command> pour un utilisateur pour lequel on
- a d&eacute;fini des quotas sur deux syst&egrave;mes de fichiers.</para>
-
-
- <programlisting>
-Disk quotas for user test (uid 1002):
- Filesystem blocks quota limit grace files quota limit grace
- /usr 65* 50 75 5days 7 50 60
- /usr/var 0 50 75 0 50 60
- </programlisting>
-
- <para>Dans cet exemple, l'utilisateur occupe 15 blocs de plus que la
- limite de 50 blocs qui lui est allou&eacute;e sur le syst&egrave;me de fichiers
- <filename>/usr</filename> et dispose d'un d&eacute;lai de gr&acirc;ce de 5 jours.
- Remarquez l'ast&eacute;risque <literal>*</literal> qui indique que la limite
- est d&eacute;pass&eacute;e.</para>
-
- <para>Les syst&egrave;mes de fichiers sur lequel l'utilisateur n'occupe pas
- de place n'apparaissent normalement pas dans les sorties de la
- commande <command>quota</command>, m&ecirc;me s'il a des quotas
- sur ces syst&egrave;mes de fichiers. L'option <option>-v</option> elle
- les liste, comme <filename>/usr/var</filename> dans l'exemple
- ci-dessus.</para>
-
- </sect1>
-
- <sect1>
- <title>* Quotas avec NFS</title>
-
- <para>Cette section est encore en cours de r&eacute;daction.</para>
-
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml
deleted file mode 100755
index 3198d08340..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml
+++ /dev/null
@@ -1,1894 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter>
- <title>S&eacute;curit&eacute;</title>
- &trans.a.haby;
-
- <sect1 id="crypt">
- <title>DES, MD5, et Crypt</title>
-
- <para><emphasis>Contribution de &a.wollman;<!-- <br> -->24 Septembre
- 1995.</emphasis></para>
-
- <para>Pour &eacute;viter que les mots de passe ne soient facilement accessibles
- sur les syst&egrave;mes UN*X, ils ont traditionnellement &eacute;t&eacute; brouill&eacute;s
- d'une fa&ccedil;on ou d'une autre. Depuis la Septi&egrave;me Edition d'Unix de
- Bell Labs', les mots de passe ont &eacute;t&eacute; cod&eacute;s avec ce que les
- sp&eacute;cialistes de la s&eacute;curit&eacute; appellent
- &ldquo;un hachage irr&eacute;versible&rdquo;. Ce qui signifie que le mot de
- passe est transform&eacute; de telle sorte qu'une fois encod&eacute;, il ne puisse
- &ecirc;tre d&eacute;cod&eacute;, sinon par la force, en parcourant l'&eacute;ventail de toutes
- les possibilit&eacute;s. Malheureusement, la seule m&eacute;thode accessible aux
- chercheurs d'AT&amp;T &eacute;tait bas&eacute;e sur DES, le &ldquo;Data Encryption
- Standard&rdquo; (standard de cryptage des donn&eacute;es). C'est un probl&egrave;me
- mineur pour les distributeurs de logiciels commerciaux, mais un
- obstacle s&eacute;rieux pour un syst&egrave;me d'exploitation comme FreeBSD, dont
- tout le code source est accessible librement, parce que, dans de
- nombreux pays, l'exportation de DES et d'autres logiciels de
- cryptage est restreinte.</para>
-
- <para>L'&eacute;quipe de d&eacute;veloppement de FreeBSD s'est donc retrouv&eacute;e face
- au dilemme suivant: comment rester compatible avec les autres
- syst&egrave;mes Unix sans enfreindre la l&eacute;gislation. Nous avons donc
- d&eacute;cid&eacute; d'une double approche: avoir une distribution qui ne
- comporte que du logiciel de hachage des mots de passe non restreint
- &agrave; l'exportation, et fournir une biblioth&egrave;que s&eacute;par&eacute;e pour le DES.
- L'algorithme de codage a &eacute;t&eacute; extrait de la biblioth&egrave;que C et
- d&eacute;plac&eacute; dans une biblioth&egrave;que s&eacute;par&eacute;e appel&eacute;e
- <filename>libcrypt</filename>, du nom de la fonction C
- <function>crypt</function> qui l'impl&eacute;mente. Dans FreeBSD 1.x
- et quelques instantan&eacute;s de pr&eacute;-versions 2.0, l'algorithme librement
- exportable utilise une fonction non s&eacute;curis&eacute;e due &agrave; Nate Williams;
- dans les versions ult&eacute;rieures, il a &eacute;t&eacute; remplac&eacute; par la fonction
- de hachage irr&eacute;versible MD5 de RSA Data Security, Inc. Comme aucune
- de ces fonctions n'utilise de technique de cryptage, elles sont
- suppos&eacute;es librement exportables des Etats-Unis et importables dans
- de nombreux autres pays.</para>
-
- <para>Dans le m&ecirc;me temps, nous avons aussi travaill&eacute; sur une fonction
- bas&eacute;e sur le cryptage DES. Tout d'abord, une version de la fonction
- <function>crypt</function> &eacute;crite en dehors des Etats-Unis a &eacute;t&eacute;
- import&eacute;e, pour synchroniser le code am&eacute;ricain et celui du reste du
- monde. Puis la biblioth&egrave;que a &eacute;t&eacute; modifi&eacute;e et coup&eacute;e en deux; la
- biblioth&egrave;que <filename>libcrypt</filename> DES ne contient que le
- code de hachage irr&eacute;versible des mots de passe, et une deuxi&egrave;me
- biblioth&egrave;que <filename>libcipher</filename> contient les points
- d'entr&eacute;e vers le code effectuant le cryptage. Le code a
- &eacute;t&eacute; d&eacute;coup&eacute; de cette fa&ccedil;on pour obtenir plus facilement la licence
- d'exportation pour la biblioth&egrave;que compil&eacute;e.</para>
-
- <sect2>
- <title>Identifier votre m&eacute;canisme <command>crypt</command></title>
-
- <para>Il est assez facile de savoir si un mot de passe a &eacute;t&eacute; cod&eacute;
- avec un algorithme bas&eacute; sur DES ou sur MD5. Les mots de passe MD5
- commencent toujours par les caract&egrave;res
- <literal>&#36;1&#36;</literal>.
- Les mots de passe DES n'ont pas de caract&eacute;ristique particuli&egrave;re,
- mais sont plus courts que les mots de passe MD5 et utilisent un
- alphabet de 64 caract&egrave;res qui ne contient pas le caract&egrave;re
- <literal>&#36;</literal>, une cha&icirc;ne relativement courte qui ne
- commence pas par un &ldquo;<literal>&#36;</literal>&rdquo; a donc
- de tr&egrave;s fortes chances d'&ecirc;tre un mot de passe DES.</para>
-
- <para>Savoir quelle biblioth&egrave;que est utilis&eacute;e sur votre syst&egrave;me est
- aussi facile pour la plupart des programmes, sauf pour ceux qui,
- comme <command>init</command> sont li&eacute;s statiquement. (Pour ces
- programmes, il n'y a qu'un moyen: les utiliser avec un mot de passe
- connu et voir si cela marche.) Les programmes qui utilisent la
- fonction <function>crypt</function> sont li&eacute;s avec la biblioth&egrave;que
- <filename>libcrypt</filename>, qui pour chaque type de codage,
- est un lien symbolique vers l'impl&eacute;mentation ad&eacute;quate. Par exemple,
- sur un syst&egrave;me utilisant la version DES:</para>
-
-
- <informalexample>
- <screen>&prompt.user;<userinput> cd /usr/lib</userinput>
-&prompt.user; <userinput>ls -l /usr/lib/libcrypt*</userinput>
-lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.a -&gt; libdescrypt.a
-lrwxr-xr-x 1 bin bin 18 Sep 5 12:50 libcrypt.so.2.0 -&gt; libdescrypt.so.2.0
-lrwxr-xr-x 1 bin bin 15 Sep 5 12:50 libcrypt_p.a -&gt; libdescrypt_p.a</screen>
- </informalexample>
-
-
- <para>Sur un syst&egrave;me utilisant les bibloth&egrave;ques bas&eacute;es sur le MD5,
- on trouvera les m&ecirc;mes liens, mais ils pointeront sur
- <filename>libscrypt</filename> au lieu de
- <filename>libdescrypt</filename>.</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="skey">
- <title>S/Key</title>
-
- <para><emphasis>Contribution de &a.wollman;<!-- <br> -->25 Septembre
- 1995.</emphasis></para>
-
- <para>S/Key est un syst&egrave;me de mots de passe non r&eacute;utilisables bas&eacute; sur
- une fonction de hachage irr&eacute;versible (notre version est bas&eacute;e sur
- MD4 pour des raisons de compatibilit&eacute;; d'autres versions utilisent
- MD5 et DES-MAC). S/Key est inclus en standard dans toutes les
- distributions de FreeBSD depuis la version 1.1.5, et est aussi
- impl&eacute;ment&eacute; sur un nombre toujours plus important d'autres syst&egrave;mes.
- S/Key est une marque d&eacute;pos&eacute;e de Bell Communications Research,
- Inc.</para>
-
- <para>Il y a trois types de mots de passe diff&eacute;rents dont nous
- parlerons dans ce qui suit. Le premier est votre mot de passe
- Unix habituel ou un mot de passe Kerberos; nous l'appelerons
- &ldquo;mot de passe Unix&rdquo;. Le second est le mot de passe
- non r&eacute;utilisable g&eacute;n&eacute;r&eacute; par le programme S/Key
- <command>key</command> et reconnu par le programme
- <command>keyinit</command> et l'invite de session; nous
- l'appelerons &ldquo;mot de passe non r&eacute;utilisable&rdquo;. Le dernier
- type de mot de passe est le mot de passe secret que vous donnez au
- programme <command>key</command> (et parfois au programme
- <command>keyinit</command>) qui l'utilise pour g&eacute;n&eacute;rer des mots de
- passe non-r&eacute;utilisables; nous l'appelerons
- &ldquo;mot de passe secret&rdquo; ou simplement
- &ldquo;mot de passe&rdquo;.</para>
-
- <para>Le mot de passe secret n'a rien &agrave; voir avec votre mot de passe
- Unix (ils peuvent &ecirc;tre identiques, mais c'est d&eacute;conseill&eacute;). Les
- mots de passe Unix sont limit&eacute;s &agrave; huit caract&egrave;res, alors que les
- mots de passe secrets S/Key ont la longueur que vous voulez; j'utilise
- des phrases de sept mots. En g&eacute;n&eacute;ral, le syst&egrave;me S/Key fonctionne
- sans liaison avec le syst&egrave;me de mots de passe Unix.</para>
-
-<para>Il y a en outre deux autres types de donn&eacute;es utilis&eacute;s par le
- syst&egrave;me S/Key; l'un s'appelle &ldquo;grain de sel&rdquo;
- <footnote><para>N.d.T.: &ldquo;seed&rdquo; dans l'original en
- langue anglaise. &ldquo;salt&rdquo; est aussi parfois utilis&eacute;
- pour d&eacute;signer le pr&eacute;fixe utilis&eacute; pour perturber un
- algorithme de hachage.
- Voir <citerefentry><refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></footnote>
- ou (cela pr&ecirc;te &agrave;
- confusion) &ldquo;cl&eacute;&rdquo; et est un mot de deux lettres et cinq
- chiffres, et l'autre est le &ldquo;compteur d'it&eacute;rations&rdquo;
- compris entre 100 et 1. S/Key g&eacute;n&egrave;re un mot de passe non r&eacute;utilisable
- en concat&eacute;nant le &ldquo;grain de sel&rdquo; et le mot de passe
- secret, en lui appliquant
- la fonction de hachage irr&eacute;versible (la fonction s&eacute;curis&eacute;e MD4 de
- RSA Data Security, Inc.) autant de fois qu'indiqu&eacute; par le compteur
- d'it&eacute;rations, et en convertissant le r&eacute;sultat en six courts mots
- anglais. Les programmes <command>login</command> et
- <command>su</command> enregistrent le dernier mot de passe non
- r&eacute;utilisable employ&eacute;, et l'utilisateur est authentifi&eacute; si la valeur
- de hachage de son mot de passe est la m&ecirc;me que celle de celui
- qu'il a utilis&eacute; auparavant. Comme le hachage utilis&eacute; est irr&eacute;versible,
- il n'est pas possible de g&eacute;n&eacute;rer de mot de passe non r&eacute;utilisable
- si l'on a surpris un de ceux qui a &eacute;t&eacute; utilis&eacute; avec
- succ&egrave;s; le compteur
- est d&eacute;cr&eacute;ment&eacute; apr&egrave;s chaque ouverture de session r&eacute;ussie, de sorte que
- l'utilisateur et le programme d'initialisation de session restent en phase.
- (Quand ce compteur passe &agrave; 1, il est temps de r&eacute;initialiser
- S/Key.)</para>
-
-<para>Il y a quatre programmes du syst&egrave;me S/Key dont nous traiterons plus bas.
- Le programme <command>key</command> a comme param&egrave;tres un compteur
- d'it&eacute;rations, un &ldquo;grain de sel&rdquo; et un mot de passe
- secret et g&eacute;n&egrave;re un mot
- de passe non r&eacute;utilisable. Le programme <command>keyinit</command>
- initialise S/Key et sert &agrave; modifier les mots de passe, les compteurs
- d'it&eacute;rations et les &ldquo;grains de sel&rdquo;; Ses param&egrave;tres sont
- soit un mot de passe
- secret, soit un compteur d'it&eacute;rations, soit un
- &ldquo;grain de sel&rdquo;, et un mot de
- passe non r&eacute;utilisable. Le programme <command>keyinfo</command>
- consulte le fichier <filename>/etc/skeykeys</filename> et imprime
- la valeur du compteur d'it&eacute;rations et le &ldquo;grain de sel&rdquo;
- de l'utilisateur qui
- l'a invoqu&eacute;. Enfin, les programmes <command>login</command> et
- <command>su</command> incorporent la logique n&eacute;cessaire pour
- reconna&icirc;tre les mots de passe non r&eacute;utilisables S/Key pour
- authentifier les utilisateurs. Le programme <command>login</command>
- est aussi capable d'interdire l'utilisation de mots de passe Unix
- en fonction de l'adresse d'origine de la connexion.</para>
-
-<para>Nous d&eacute;crirons quatre sortes d'op&eacute;rations. La premi&egrave;re est
- l'utilisation du programme <command>keyinit</command> sur une
- connexion s&eacute;curis&eacute;e pour initialiser S/Key, ou pour modifier votre
- mot de passe ou votre &ldquo;grain de sel&rdquo;. La seconde est
- l'emploi du programme
- <command>keyinit</command> sur une connexion non s&eacute;curis&eacute;e, en m&ecirc;me
- temps que du programme <command>key</command> sur une connexion
- s&eacute;curis&eacute;e, pour faire la m&ecirc;me chose. La troisi&egrave;me est l'utilisation
- du programme <command>key</command> pour ouvrir une session sur une
- connexion non s&eacute;curis&eacute;e. La quatri&egrave;me est l'usage du programme
- <command>key</command> pour g&eacute;n&eacute;rer un certain nombre de cl&eacute;s qui
- peuvent &ecirc;tre not&eacute;es ou imprim&eacute;es et emport&eacute;es avec vous quand vous allez
- quelque part ou il n'y a aucune connexion s&eacute;curis&eacute;e (comme dans
- une conf&eacute;rence).</para>
-
-
-<sect2>
- <title>Initialisation depuis une connexion s&eacute;curis&eacute;e</title>
-
- <para>Pour initialiser S/Key, changer votre mot de passe ou changer
- votre &ldquo;grain de sel&rdquo; quand vous &ecirc;tes en session, sous
- votre compte, sur une
- connexion s&eacute;curis&eacute;e (e.g., sur la console d'une machine), utilisez
- la commande <command>keyinit</command> sans param&egrave;tres:</para>
-
-
- <informalexample>
- <screen>&prompt.user; keyinit
-Updating wollman: ) ceci n'appara&icirc;t pas si vous
-Old key: ha73895 ) n'avez pas d&eacute;j&agrave; utilis&eacute; S/Key
-Reminder - Only use this method if you are directly connected.
-If you are using telnet or rlogin exit with no password and use keyinit -s.
-(Rappel - N'employez cette m&eacute;thode que si vous &ecirc;tes directement connect&eacute;.
-Si vous utilisez telnet ou rlogin, quittez sans donner de mot de passe
-et utilisez keyinit -s)
-<prompt>Enter secret password:</prompt> ) j'ai tap&eacute; ma phrase cl&eacute; ici
-<prompt>Again secret password:</prompt> ) je l'ai retap&eacute;e
-
-ID wollman s/key is 99 ha73896 ) voir ci-dessous
-SAG HAS FONT GOUT FATE BOOM )</screen>
- </informalexample>
-
-
- <para>Il y a beaucoup de choses l&agrave;-dedans. A l'invite
- <prompt>Enter secret password:</prompt>, vous devez entrer un
- mot de passe ou une phrase (j'utilise des phrases d'au moins
- sept mots) qui servira &agrave; g&eacute;n&eacute;rer les mots de passe pour vos
- sessions. La ligne qui commence par &ldquo;ID&rdquo; vous
- liste vos param&egrave;tres S/Key: votre nom d'utilisateur, la valeur
- de votre compteur d'it&eacute;rations et votre
- &ldquo;grain de sel&rdquo;. Quand vous ouvrirez
- une session avec S/Key, le syst&egrave;me aura m&eacute;moris&eacute; ces valeurs et
- vous les redonnera, vous n'avez donc pas besoin de les retenir.
- La derni&egrave;re ligne vous donne le mot de passe non r&eacute;utilisable
- correspondant &agrave; ces param&egrave;tres et &agrave; votre mot de passe secret;
- si vous deviez vous reconnectez imm&eacute;diatement, c'est ce mot de
- passe que vous utiliseriez.</para>
-
-</sect2>
-
-<sect2>
- <title>Initialisation depuis une connexion non s&eacute;curis&eacute;e</title>
-
- <para>Pour initialiser S/Key, changer votre mot de passe ou changer
- votre &ldquo;grain de sel&rdquo; quand vous &ecirc;tes en session
- sur une connexion non
- s&eacute;curis&eacute;e, il vous faudra d&eacute;j&agrave; avoir une connexion s&eacute;curis&eacute;e
- sur une machine o&ugrave; vous pouvez utiliser le programme
- <command>key</command>; ce peut &ecirc;tre depuis un accessoire de
- bureau sur un Macintosh ou depuis la ligne de commande d'une
- machine s&ucirc;re (notre exemple illustre ce dernier
- cas). Il vous
- faudra donner une valeur au compteur d'it&eacute;rations et indiquer
- un &ldquo;grain de sel&rdquo; ou utiliser la valeur al&eacute;atoire
- g&eacute;n&eacute;r&eacute;e par le programme.
- Sur la connexion non s&eacute;curis&eacute;e (&agrave; la machine que vous initialisez),
- employez la commande <command>keyinit -s</command>:</para>
-
-
- <informalexample>
- <screen>&prompt.user; <userinput>keyinit -s</userinput>
-Updating wollman: Old key: kh94741
-Reminder you need the 6 English words from the skey command.
-(Rappel - Il vous faut les 6 mots Anglais fournis par la commande skey.)
-<prompt>Enter sequence count from 1 to 9999:</prompt> <userinput>100</userinput> ) j'ai tap&eacute; cela
-<prompt>Enter new key [default kh94742]:</prompt>
-s/key 100 kh94742</screen>
- </informalexample>
-
-
- <para>Pour utiliser le &ldquo;grain de sel&rdquo; par d&eacute;faut,
- (que le programme <command>keyinit</command> appelle une
- &ldquo;cl&eacute;&rdquo;&nbsp;-&nbsp;<literal>key</literal>, ce qui pr&ecirc;te
- &agrave; confusion), appuyez sur Entr&eacute;e. Passez ensuite sur votre connexion
- s&eacute;curis&eacute;e ou sur l'accessoire de bureau S/Key et donnez lui les
- m&ecirc;mes param&egrave;tres:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>key 100 kh94742</userinput>
-Reminder - Do not use this program while logged in via telnet or rlogin.
-(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.)
-<prompt>Enter secret password:</prompt> ) j'ai tap&eacute; mon mot de passe
-secret
-HULL NAY YANG TREE TOUT VETO</screen>
- </informalexample>
-
-
- <para>Retournez alors sur votre connexion non s&eacute;curis&eacute;e, et donnez le
- mot de passe non r&eacute;utilisable g&eacute;n&eacute;r&eacute; par la programme
- <command>key</command> au programme
- <command>keyinit</command>:</para>
-
-
- <informalexample>
- <screen><prompt>s/key access password:</prompt> <userinput>HULL NAY YANG TREE TOUT VETO</userinput>
-ID wollman s/key is 100 kh94742
-HULL NAY YANG TREE TOUT VETO</screen>
- </informalexample>
-
-
- <para>Le reste de la description du paragraphe pr&eacute;c&eacute;dent s'applique
- aussi ici.</para>
-
-</sect2>
-
-<sect2>
- <title>Diversion: une invite de session</title>
-
- <para>Avant d'expliquer comment g&eacute;n&eacute;rer les mots de passe non
- r&eacute;utilisables, nous allons examiner une invite de session
- S/Key:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>telnet himalia</userinput>
-Trying 18.26.0.186...
-Connected to himalia.lcs.mit.edu.
-Escape character is '^]'.
-s/key 92 hi52030
-<prompt>Password:</prompt></screen>
- </informalexample>
-
-
- <para>Remarquez qu'avant de nous demander un mot de passe, le
- programme d'initialisation de la session nous affiche le nombre
- d'it&eacute;rations et le grain de sel dont nous aurons besoin pour
- g&eacute;n&eacute;rer la cl&eacute; appropri&eacute;e. Vous d&eacute;couvrirez aussi une possibilit&eacute;
- int&eacute;ressante (qui n'est pas illustr&eacute;e ici); si vous tapez Entr&eacute;e
- quand on vous demande votre mot de passe, le programme active
- l'&eacute;cho au terminal, de sorte que vous voyez ce que vous tapez.
- C'est tr&egrave;s utile si vous essayez de taper une S/Key &agrave; la main,
- &agrave; partir d'un r&eacute;sultat imprim&eacute;, par exemple.</para>
-
- <para>Si cette machine avait &eacute;t&eacute; configur&eacute;e pour interdire l'emploi
- de mots de passe Unix depuis ma machine, l'annotation
- <literal>(s/key required)</literal>&nbsp;-&nbsp;&ldquo;(s/key obligatoire)&rdquo;
- aurait aussi figur&eacute;, pr&eacute;cisant que seul un mot de passe S/Key non
- r&eacute;utilisable serait accept&eacute;.</para>
-
-</sect2>
-
-<sect2>
- <title>G&eacute;n&eacute;rer un unique mot de passe non r&eacute;utilisable</title>
-
- <para>Pour g&eacute;n&eacute;rer le mot de passe non r&eacute;utilisable dont nous
- avons besoin pour ouvrir la session, nous utilisons une
- machine s&ucirc;re et le programme <command>key</command>.
- (Il y a des versions du programme <command>key</command> pour DOS
- et Windows, et il y a aussi un accessoire de bureau pour
- Macintosh.) La version en ligne de commande du programme
- <command>key</command> a pour param&egrave;tres le compteur d'it&eacute;rations
- et le &ldquo;grain de sel&rdquo;; vous pouvez les couper-coller
- de l'invite de session, en commen&ccedil;ant &agrave;
- <literal>key</literal> jusqu'&agrave; la fin de la ligne. Donc:</para>
-
-
- <informalexample>
- <screen>&prompt.user; <userinput>key 92 hi52030</userinput> ) coll&eacute; du programme pr&eacute;c&eacute;dent
-Reminder - Do not use this program while logged in via telnet or rlogin.
-(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.)
-<prompt>Enter secret password:</prompt> ) j'ai tap&eacute; mon mot de passe secret
-ADEN BED WOLF HAW HOT STUN</screen>
- </informalexample>
-
-
- <para>et dans l'autre fen&ecirc;tre:</para>
-
-
- <informalexample>
- <screen>s/key 92 hi52030 ) de la section pr&eacute;c&eacute;dente
-<prompt>Password:</prompt>
-(turning echo on)
-<prompt>Password:</prompt>ADEN BED WOLF HAW HOT STUN
-Last login: Wed Jun 28 15:31:00 from halloran-eldar.l
-[etc.]</screen>
- </informalexample>
-
-
- <para>C'est la m&eacute;thode la plus simple <emphasis>si</emphasis> vous
- avez une machine s&ucirc;re . Il y a une appliquette Java
- <ulink url="http://www.cs.umd.edu/~harry/jotp/src.html">The Java OTP
- Calculator</ulink>, que vous pouvez t&eacute;l&eacute;charger et ex&eacute;cuter sous
- n'importe quel navigateur supportant Java.</para>
-
-</sect2>
-
-<sect2>
- <title>G&eacute;n&eacute;rer de multiples mots de passe non r&eacute;utilisables</title>
-
- <para>Il vous faut parfois aller en des endroits o&ugrave; vous n'avez pas
- de connexion s&eacute;curis&eacute;e disponible. Dans ce cas, vous pouvez
- utiliser la commande <command>key</command> pour g&eacute;n&eacute;rer en une
- seule fois plusieurs mots de passe non r&eacute;utilisables; vous pouvez
- imprimer ces derniers. Par exemple:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>key -n 25 57 zz99999</userinput>
-Reminder - Do not use this program while logged in via telnet or rlogin.
-(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.)
-<prompt>Enter secret password:</prompt>
-33: WALT THY MALI DARN NIT HEAD
-34: ASK RICE BEAU GINA DOUR STAG
-...
-56: AMOS BOWL LUG FAT CAIN INCH
-57: GROW HAYS TUN DISH CAR BALM</screen>
- </informalexample>
-
-
- <para>L'option <option>-n 25</option> demande vingt-cinq cl&eacute;s en
- s&eacute;quence; l'option <option>57</option> indique le rang de la
- <emphasis>derni&egrave;re</emphasis> it&eacute;ration; le reste a &eacute;t&eacute; d&eacute;crit
- plus haut. Notez que les cl&eacute;s sont imprim&eacute;es dans l'ordre inverse
- de celui o&ugrave; elles seront &eacute;ventuellement utilis&eacute;es. Si vous &ecirc;tes
- vraiment parano&iuml;de, vous pouvez les recopier &agrave; la main, sinon
- vous pouvez les couper-coller vers la commande
- <command>lpr</command>. Remarquez que chaque ligne liste et le
- nombre d'it&eacute;rations et le mot de passe non r&eacute;utilisable; vous
- trouverez cependant probablement pratique de rayer les mots de
- passe au fur et &agrave; mesure de leur utilisation.</para>
-
-</sect2>
-
-<sect2>
- <title>Restreindre l'utilisation des mots de passe Unix</title>
-
- <para>Le fichier de configuration
- <filename>/etc/skey.access</filename> peut servir &agrave; d&eacute;finir des
- restrictions d'utilisation des mots de passe Unix en fonction des
- noms de machine et d'utilisateur, de la ligne utilis&eacute;e par le
- terminal ou de l'adresse IP de la machine connect&eacute;e &agrave; distance. Le
- format d&eacute;taill&eacute; de ce fichier est d&eacute;crit dans la page de manuel de
- <citerefentry><refentrytitle>skey.access</refentrytitle><manvolnum>5</manvolnum></citerefentry>;
- elle inclut aussi des avertissements relatifs &agrave; la s&eacute;curit&eacute; qu'il
- faut lire avant de se fier &agrave; ce fichier pour sa s&eacute;curit&eacute;.</para>
-
- <para>S'il n'y a pas de fichier <filename>/etc/skey.access</filename>
- (ce qui est le cas par d&eacute;faut avec la distribution de FreeBSD),
- tous les utilisateurs pourront se servir de mots de passe Unix.
- Si le fichier existe, alors tous les utilisateurs devront passer
- par S/Key, &agrave; moins qu'ils ne soient explicitement autoris&eacute;s &agrave; ne
- pas le faire par des instructions du fichier
- <filename>skey.access</filename>. Dans tous les cas, l'usage
- de mots de passe Unix est autoris&eacute; sur la console syst&egrave;me.</para>
-
- <para>Voici un exemple de fichier de configuration qui illustre
- les trois types d'instructions les plus courants:</para>
-
- <programlisting>
-permit internet 18.26.0.0 255.255.0.0
-permit user jrl
-permit port ttyd0
- </programlisting>
-
- <para>La premi&egrave;re ligne (<literal>permit
- internet</literal>) autorise les utilisateurs dont les adresses
- IP (ce qui rend vuln&eacute;rable en cas d'usurpation) appartiennent
- au sous-r&eacute;seau sp&eacute;cifi&eacute; &agrave; employer des mots de passe Unix. Il ne
- faut pas consid&eacute;rer cela comme une mesure de s&eacute;curit&eacute;, mais plut&ocirc;t
- comme un moyen de rappeler aux utilisateurs qu'ils sont sur un
- r&eacute;seau non s&eacute;curis&eacute; et qu'ils doivent utiliser S/Key pour
- s'authentifier.</para>
-
- <para>La seconde ligne (<literal>permit user</literal>)
- autorise l'utilisateur d&eacute;sign&eacute; &agrave; employer n'importe quand des
- mots de passe Unix. En g&eacute;n&eacute;ral, il faut se servir de cette
- possibilit&eacute; si les gens soit n'ont pas moyen d'utiliser
- le programme <command>key</command>, s'ils ont par exemple des
- terminaux passifs, soit s'ils sont d&eacute;finitivement r&eacute;fractaires.</para>
-
- <para>La troisi&egrave;me ligne (<literal>permit port</literal>)
- autorise tous les utilisateurs d'un terminal sur une liaison particuli&egrave;re
- &agrave; utiliser des mots de passe Unix. On emploie cela pour les connexions
- t&eacute;l&eacute;phoniques.</para>
-
- </sect2>
- </sect1>
-
- <sect1 id="kerberos">
- <title>Kerberos</title>
-
- <para><emphasis>Contribution de &a.markm; (sur la base d'une
- contribution de &a.md;).</emphasis></para>
-
- <para>Kerberos est un protocole r&eacute;seau suppl&eacute;mentaire qui permet
- aux utilisateurs de s'authentifier en passant par l'interm&eacute;diaire
- d'un serveur s&eacute;curis&eacute;. Des services comme l'ouverture de session
- et la copie &agrave; distance, la copie s&eacute;curis&eacute;e de fichiers entre syst&egrave;mes
- et autres fonctionnalit&eacute;s &agrave; haut risque deviennent ainsi
- consid&eacute;rablement plus s&ucirc;rs et contr&ocirc;lables.</para>
-
- <para>Les instructions qui suivent peuvent &ecirc;tre utilis&eacute;es comme
- guide d'installation de Kerberos dans la version distribu&eacute;e
- pour FreeBSD. Vous devriez cependant vous r&eacute;f&eacute;rer aux pages
- de manuel correspondantes pour avoir une description compl&egrave;te.</para>
-
- <para>La distribution Kerberos de FreeBSD n'est pas la distribution
- originale de 4.4BSD-Lite, mais eBones, qui avait &eacute;t&eacute;
- auparavant port&eacute;e sous FreeBSD 1.1.5.1, et dont les sources ne
- proviennent pas des Etats-Unis/Canada, ce qui la rend disponible aux
- utilisateurs d'autres pays.</para>
-
- <para>Pour ces derniers, qui ont besoin d'une distribution l&eacute;gale
- de ce logiciel, s'il vous plait, <emphasis>ne vous la procurez
- pas</emphasis> depuis un site aux Etats-Unis ou au Canada. Vous
- lui causeriez de <emphasis>graves</emphasis> probl&egrave;mes. Il y a
- une copie l&eacute;gale sur
- <hostid role="fqdn">skeleton.mikom.csir.co.za</hostid>, qui se
- situe en Afrique du Sud.</para>
-
-
- <sect2>
- <title>Cr&eacute;er la base de donn&eacute;es initiale</title>
-
- <para>Il faut faire cela uniquement sur le serveur Kerberos. V&eacute;rifiez
- d'abord qu'il ne tra&icirc;ne pas d'anciennes bases Kerberos. Allez
- dans le r&eacute;pertoire <filename>/etc/kerberosIV</filename> et
- assurez-vous qu'il ne contient que les fichiers suivants:</para>
-
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput>
-&prompt.root; <userinput>ls</userinput>
-README krb.conf krb.realms</screen>
- </informalexample>
-
-
- <para>S'il y a d'autres fichiers (comme
- <filename>principal.*</filename> ou <symbol>master_key</symbol>),
- utilisez la commande <symbol>kdb_destroy</symbol> pour supprimer
- l'ancienne base de donn&eacute;es Kerberos, ou si Kerberos ne tourne pas,
- effacez simplement les fichiers exc&eacute;dentaires avec
- <command>rm</command>.</para>
-
- <para>Vous devez maintenant &eacute;diter les fichiers
- <filename>krb.conf</filename> et
- <filename>krb.realms</filename> pour d&eacute;finir votre domaine
- (&ldquo;realm&rdquo;)
- Kerberos. Pour notre exemple, le domaine sera
- <filename>GRONDAR.ZA</filename> et le serveur
- <filename>grunt.grondar.za</filename>. Nous &eacute;ditons ou cr&eacute;ons alors
- le fichier <filename>krb.conf</filename>:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cat krb.conf</userinput>
-GRONDAR.ZA
-GRONDAR.ZA grunt.grondar.za admin server
-CS.BERKELEY.EDU okeeffe.berkeley.edu
-ATHENA.MIT.EDU kerberos.mit.edu
-ATHENA.MIT.EDU kerberos-1.mit.edu
-ATHENA.MIT.EDU kerberos-2.mit.edu
-ATHENA.MIT.EDU kerberos-3.mit.edu
-LCS.MIT.EDU kerberos.lcs.mit.edu
-TELECOM.MIT.EDU bitsy.mit.edu
-ARC.NASA.GOV trident.arc.nasa.gov</screen>
- </informalexample>
-
- <para>Les autres domaines n'ont pas besoin d'&ecirc;tre mentionn&eacute;s. Ils
- ne sont l&agrave; que pour montrer comment une machine peut avoir
- connaissance de plusieurs domaines. Pour plus de simplicit&eacute;,
- vous pouvez ne pas les inclure.</para>
-
- <para>La premi&egrave;re ligne indique pour quel domaine cette machine
- agit. Les autres lignes d&eacute;finissent les autres
- domaines/machines. Chaque ligne comporte d'abord le nom du
- domaine, puis le nom de la machine qui est le &ldquo;centre
- de distribution&rdquo; de ce domaine. Les mots
- <literal>admin server</literal> qui suivent signifient que
- cette machine est aussi serveur d'administration de la
- base de donn&eacute;es. Pour plus d'explication sur cette
- terminologie, consultez les pages de manuel de Kerberos.</para>
-
- <para>Il faut maintenant ajouter
- <hostid role="fqdn">grunt.grondar.za</hostid>
- au domaine <filename>GRONDAR.ZA</filename> et ajouter une entr&eacute;e
- pour mettre toutes les machines du domaine DNS
- <hostid role="domainname">.grondar.za</hostid> dans
- le domaine Kerberos <filename>GRONDAR.ZA</filename>. Le fichier
- <filename>krb.realms</filename> aura alors l'allure
- suivante:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cat krb.realms</userinput>
-grunt.grondar.za GRONDAR.ZA
-.grondar.za GRONDAR.ZA
-.berkeley.edu CS.BERKELEY.EDU
-.MIT.EDU ATHENA.MIT.EDU
-.mit.edu ATHENA.MIT.EDU</screen>
- </informalexample>
-
- <para>Encore une fois, les autres domaines n'ont pas besoin
- d'&ecirc;tre mentionn&eacute;s. Ils ne sont l&agrave; que pour montrer comment
- une machine peut avoir connaissance de plusieurs
- domaines. Pour plus de simplicit&eacute;, vous pouvez ne pas les
- inclure.</para>
-
- <para>La premi&egrave;re ligne assigne un syst&egrave;me
- <emphasis>particulier</emphasis> au domaine d&eacute;sign&eacute;.
- Les autres lignes montrent comment affecter par d&eacute;faut
- les syst&egrave;mes d'un sous-domaine DNS &agrave; un domaine Kerberos
- donn&eacute;.</para>
-
- <para>Nous pouvons maintenant cr&eacute;er le base de donn&eacute;es. Il n'y a &agrave;
- le faire que sur le serveur Kerberos (ou Centre de Distribution
- de Cl&eacute;s). Cela se fait avec la command
- <command>kdb_init</command>:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>kdb_init</userinput>
-<prompt>Realm name [default ATHENA.MIT.EDU ]:</prompt> <userinput>GRONDAR.ZA</userinput>
-You will be prompted for the database Master Password.
-It is important that you NOT FORGET this password.
-(On vous demandera le Mot de Passe Ma&icirc;tre de la base de donn&eacute;es.)
-(Il est important de NE PAS PERDRE ce mot de passe.)
-
-<prompt>Enter Kerberos master key:</prompt> </screen>
- </informalexample>
-
- <para>Nous devons maintenant sauvegarder la cl&eacute; pour que les serveurs
- sur la machine locale puisse la lire, avec la commande
- <command>kstash</command>:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>kstash</userinput>
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-(Cl&eacute; ma&icirc;tre saisie. ATTENTION!)</screen>
- </informalexample>
-
- <para>Le mot de passe ma&icirc;tre encrypt&eacute; est enregistr&eacute; dans
- le fichier <filename>/etc/kerberosIV/master_key</filename>.</para>
-
- </sect2>
-
- <sect2>
- <title>Installer les services</title>
-
- <para>Il faut ajouter deux entr&eacute;es (&ldquo;principals&rdquo;
- <footnote><para>N.d.T.: L'&ldquo;Introduction &agrave; Kerberos 5&rdquo;
- du NCSA&nbsp;-&nbsp;<ulink url="http://www.ncsa.uuic.edu/General/CC/ACES/kerberos/introduction.html">http://www.ncsa.uuic.edu/General/CC/ACES/kerberos/introduction.html</ulink>
- explicite cette notion: &ldquo;Toute entit&eacute; &agrave; laquelle il faut
- s'authentifier ou qui doit s'authentifier est un
- <foreignphrase>principal</foreignphrase> Kerberos ...
- chaque principal a un mot de passe secret qui n'est connu
- que de lui-m&ecirc;me et du Centre de Distribution de Cl&eacute;s. Chaque
- <foreignphrase>principal</foreignphrase> a un nom ... de la
- forme
- <emphasis>primaire/instance@domaine</emphasis>.&rdquo;</para></footnote>)
-
- &agrave; la base de donn&eacute;es pour <emphasis>chaque</emphasis> syst&egrave;me
- qui sera s&eacute;curis&eacute; par Kerberos. Ce sont <literal>kpasswd</literal>
- et <literal>rcmd</literal>. Ces deux entr&eacute;es sont d&eacute;finies pour
- chaque syst&egrave;me. A chacune de leurs instances est attribu&eacute;e le nom
- du syst&egrave;me.</para>
-
- <para>Ces &ldquo;d&eacute;mons&rdquo;, <command>kpasswd</command> et
- <command>rcmd</command> permettent aux syst&egrave;mes de changer
- les mots de passe Kerberos et d'ex&eacute;cuter des commandes comme
- <command>rcp</command>, <command>rlogin</command>
- et <command>rsh</command>.</para>
-
- <para>Ajoutons donc maintenant ces entr&eacute;es:</para>
-
-
- <informalexample>
- <screen>&prompt.root; <userinput>kdb_edit</userinput>
-Opening database...
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Previous or default values are in [brackets] ,
-enter return to leave the same, or new value.
-
-<prompt>Principal name:</prompt> <userinput>passwd</userinput>
-<prompt>Instance:</prompt> <userinput>grunt</userinput>
-
-&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
-
-Principal: passwd, Instance: grunt, kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- entrez RANDOM ici
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- entrez RANDOM ici
-
-<prompt>Random password [y] ?</prompt> <userinput>y</userinput>
-
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> <userinput>rcmd</userinput>
-<prompt>Instance:</prompt> <userinput>grunt</userinput>
-
-&lt;Not found&gt;, <prompt>Create [y] ?</prompt>
-
-Principal: rcmd, Instance: grunt, kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- entrez RANDOM ici
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- entrez RANDOM ici
-
-<prompt>Random password [y] ?</prompt>
-
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> &lt;---- ne rien entrez ici
- permet de quitter le programme</screen>
- </informalexample>
-
-
- </sect2>
-
- <sect2>
- <title>Cr&eacute;er le fichier des services</title>
-
- <para>Il faut maintenant extraire toutes les instances qui d&eacute;finissent
- les services sur chaque machine. Cela se fait avec la commande
- <command>ext_srvtab</command>. Elle cr&eacute;e un fichier qui doit &ecirc;tre
- copi&eacute; ou report&eacute; <emphasis>par un moyen s&ucirc;r</emphasis> dans le
- r&eacute;pertoire <filename>/etc/kerberosIV</filename> de chaque client
- Kerberos. Ce fichier doit exister sur tous les serveurs et tous
- les clients et est crucial au bon fonctionnement de
- Kerberos.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ext_srvtab grunt</userinput>
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Generating 'grunt-new-srvtab'....</screen>
- </informalexample>
-
- <para>Cette commande ne g&eacute;n&egrave;re qu'un fichier temporaire qui doit &ecirc;tre
- renomm&eacute; en <filename>srvtab</filename> pour que tous les serveurs
- puissent y acc&eacute;der. Utilisez la commande <command>mv</command>
- pour l'installer sur le syst&egrave;me d'origine:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen>
- </informalexample>
-
- <para>Si le fichier est destin&eacute; &agrave; un client, et que le r&eacute;seau n'est
- pas consid&eacute;r&eacute; comme s&ucirc;r, copiez le fichier
- <filename>&lt;client&gt;-new-srvtab</filename> sur un support
- amovible et transportez-le par un moyen physiquement s&ucirc;r. N'oubliez
- pas de le renommer <filename>srvtab</filename> dans le r&eacute;pertoire
- <filename>/etc/kerberosIV</filename> du client, et mettez-le bien
- en mode 600:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput>
-&prompt.root; <userinput>chmod 600 srvtab</userinput></screen>
- </informalexample>
- </sect2>
-
- <sect2>
- <title>Renseigner la base de donn&eacute;es</title>
-
- <para>Il faut maintenant cr&eacute;er des entr&eacute;es utilisateurs dans la base
- de donn&eacute;es. Ajoutons une entr&eacute;e pour l'utilisateur
- <username>jeanne</username>. Utilisez la commande
- <command>kdb_edit</command> pour cela:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>kdb_edit</userinput>
-Opening database...
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Previous or default values are in [brackets] ,
-enter return to leave the same, or new value.
-
-<prompt>Principal name:</prompt> <userinput>jeanne</userinput>
-<prompt>Instance:</prompt>
-
-&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
-
-Principal: jeanne, Instance: , kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- entrez un mot de passe s&ucirc;r ici
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- r&eacute;entrez le mot de passe s&ucirc;r l&agrave;
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> &lt;---- ne rien entrer ici permet
- de quitter le programme</screen>
- </informalexample>
- </sect2>
-
- <sect2>
- <title>Tester l'ensemble</title>
-
- <para>Il faut d'abord d&eacute;marrer les &ldquo;d&eacute;mons&rdquo; Kerberos.
- NOTEZ que si vous avez correctement modifi&eacute; votre fichier
- <filename>/etc/rc.conf</filename>, cela se fera automatiquement
- au red&eacute;marrage du syst&egrave;me. Ce n'est n&eacute;cessaire que sur le serveur
- Kerberos. Les clients Kerberos r&eacute;cup&eacute;reront automagiquement les
- informations dont ils ont besoin via leur r&eacute;pertoire
- <filename>/etc/kerberosIV</filename>.</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>kerberos &amp;</userinput>
-Kerberos server starting
-Sleep forever on error
-Log file is /var/log/kerberos.log
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-
-Current Kerberos master key version is 1
-Local realm: GRONDAR.ZA
-&prompt.root; <userinput>kadmind -n &amp;</userinput>
-KADM Server KADM0.0A initializing
-Please do not use 'kill -9' to kill this job, use a
-regular kill instead
-(S'il vous plait, n'utilisez pas kill -9 pour arr&ecirc;ter
- le programme, utilisez kill &agrave; la place)
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!</screen>
- </informalexample>
-
- <para>Vous pouvez maintenant utiliser la commande
- <command>kinit</command> pour obtenir un
- &ldquo;ticket d'entr&eacute;e&rdquo;
- pour l'utilisateur <username>jeanne</username> que nous avons cr&eacute;&eacute;
- plus haut :</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>kinit jeanne</userinput>
-MIT Project Athena (grunt.grondar.za)
-Kerberos Initialization for "jeanne"
-<prompt>Password:</prompt> </screen>
- </informalexample>
-
- <para>Essayons de lister les informations associ&eacute;es avec la commande
- <command>klist</command> pour voir si nous avons vraiment tout
- ce qu'il nous faut:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>klist</userinput>
-Ticket file: /tmp/tkt245
-Principal: jeanne@GRONDAR.ZA
-
- Issued Expires Principal
-Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen>
- </informalexample>
-
- <para>Essayons maintenant de changer de mot de passe avec la commande
- <command>passwd</command> pour voir si le &ldquo;d&eacute;mon&rdquo;
- <command>kpasswd</command> est autoris&eacute; &agrave; acc&eacute;der &agrave; la base de
- donn&eacute;es Kerberos:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>passwd</userinput>
-realm GRONDAR.ZA
-<prompt>Old password for jeanne:</prompt>
-<prompt>New Password for jeanne:</prompt>
-Verifying password
-<prompt>New Password for jeanne:</prompt>
-Password changed.</screen>
- </informalexample>
- </sect2>
-
- <sect2>
- <title>Autoriser l'utilisation de la commande <command>su</command></title>
-
- <para>Kerberos permet d'attribuer &agrave; <emphasis>chaque</emphasis>
- utilisateur qui a besoin des droits du super-utilisateur son
- <emphasis>propre</emphasis> mot de passe <command>su</command>. Nous
- pouvons cr&eacute;er un identifiant qui soit autoris&eacute; &agrave; utiliser
- <command>su</command> pour devenir <username>root</username>. Cela
- se fait en associant une instance <username>root</username> &agrave;
- l'identificateur de base. Avec la commande
- <command>kdb_edit</command> nous cr&eacute;ons l'entr&eacute;e
- <literal>jeanne.root</literal> dans la base de donn&eacute;es
- Kerberos:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>kdb_edit</userinput>
-Opening database...
-
-<prompt>Enter Kerberos master key:</prompt>
-
-Current Kerberos master key version is 1.
-
-Master key entered. BEWARE!
-Previous or default values are in [brackets] ,
-enter return to leave the same, or new value.
-
-<prompt>Principal name:</prompt> <userinput>jeanne</userinput>
-<prompt>Instance:</prompt> <userinput>root</userinput>
-
-&lt;Not found&gt;, Create [y] ? y
-
-Principal: jeanne, Instance: root, kdc_key_ver: 1
-<prompt>New Password:</prompt> &lt;---- entrez un mot de passe SUR ici
-Verifying password
-
-<prompt>New Password:</prompt> &lt;---- r&eacute;entrez le mot de passe l&agrave;
-
-Principal's new key version = 1
-<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
-<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> <userinput>12</userinput> &lt;--- Laissez une valeur faible!
-<prompt>Attributes [ 0 ] ?</prompt>
-Edit O.K.
-<prompt>Principal name:</prompt> &lt;---- ne rien entrer ici
- permet de quitter le programme</screen>
- </informalexample>
-
- <para>V&eacute;rifions maintenant les caract&eacute;ristiques associ&eacute;es pour voir si cela marche:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>kinit jeanne.root</userinput>
-MIT Project Athena (grunt.grondar.za)
-Kerberos Initialization for "jeanne.root"
-<prompt>Password:</prompt></screen>
- </informalexample>
-
- <para>Il faut maintenant ajouter l'utilisateur au fichier
- <filename>.klogin</filename> de root:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
-jeanne.root@GRONDAR.ZA</screen>
- </informalexample>
-
- <para>Essayons maintenant la commande <command>su</command>:</para>
-
- <informalexample>
- <screen>&prompt.user; <prompt>su</prompt>
-<prompt>Password:</prompt></screen>
- </informalexample>
-
- <para>et voyons quelles sont nos caract&eacute;ristiques:</para>
-
- <informalexample>
- <screen>&prompt.root; klist
-Ticket file: /tmp/tkt_root_245
-Principal: jeanne.root@GRONDAR.ZA
-
- Issued Expires Principal
-May 2 20:43:12 May 3 04:43:12 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen>
- </informalexample>
- </sect2>
-
- <sect2>
- <title>Utiliser d'autres commandes</title>
-
- <para>Dans l'exemple pr&eacute;c&eacute;dent, nous avons cr&eacute;&eacute; une entr&eacute;e principale
- <literal>jeanne</literal> avec une instance <literal>root</literal>.
- Elle reposait sur un utilisateur ayant le m&ecirc;me nom que l'entr&eacute;e
- principale. C'est ce que fait Kerberos par d&eacute;faut;
- une <literal>&lt;entr&eacute;e_principale&gt;.&lt;instance&gt;</literal>
- de la forme
- <literal>&lt;nom_d_utilisateur&gt;.</literal><literal>root</literal>
- autorisera
- <literal>&lt;nom_d_utilisateur&gt;</literal> &agrave; utiliser
- <command>su</command> pour devenir root si le fichier
- <filename>.klogin</filename> du r&eacute;pertoire utilisateur de
- <username>root</username> est correctement renseign&eacute;:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
-jeanne.root@GRONDAR.ZA</screen>
- </informalexample>
-
- <para>De m&ecirc;me, s'il y a dans un r&eacute;pertoire utilisateur
- des lignes de la forme:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>cat ~/.klogin</userinput>
-jeanne@GRONDAR.ZA
-jacques@GRONDAR.ZA</screen>
- </informalexample>
-
- <para>Cela permet &agrave; quiconque dans le domaine
- <filename>GRONDAR.ZA</filename>
- s'est authentifi&eacute; en tant que
- <username>jeanne</username> ou <username>jacques</username> (avec
- <command>kinit</command>, voir plus haut) d'acc&eacute;der avec
- <command>rlogin</command> au compte de
- <username>jeanne</username> ou &agrave; ses fichiers sur ce syst&egrave;me
- (<hostid>grunt</hostid>) avec <command>rlogin</command>, <command>rsh</command> ou
- <command>rcp</command>.</para>
-
- <para>Par exemple, jeanne ouvre maintenant une session sur un autre
- syst&egrave;me, avec Kerberos:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>kinit</userinput>
-MIT Project Athena (grunt.grondar.za)
-<prompt>Password:</prompt>
-%prompt.user; <userinput>rlogin grunt</userinput>
-Last login: Mon May 1 21:14:47 from grumble
-Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
- The Regents of the University of California. All rights reserved.
-
-FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
- </informalexample>
-
- <para>ou bien jacques ouvre une session sur le compte de jeanne
- sur la m&ecirc;me machine (jeanne ayant modifi&eacute; son fichier
- <filename>.klogin</filename> comme d&eacute;crit plus haut, et
- l'administrateur de Kerberos ayant d&eacute;fini une entr&eacute;e principale
- <emphasis>jacques</emphasis>, sans instance:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>kinit</userinput>
-&prompt.user; <userinput>rlogin grunt -l jeanne</userinput>
-MIT Project Athena (grunt.grondar.za)
-<prompt>Password:</prompt>
-Last login: Mon May 1 21:16:55 from grumble
-Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
- The Regents of the University of California. All rights reserved.
-FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
- </informalexample>
- </sect2>
- </sect1>
-
- <sect1 id="firewalls">
- <title>Coupe-Feux</title>
-
- <para><emphasis>Contribution de &a.gpalmer; et
- &a.alex;.</emphasis></para>
-
- <para>Les coupe-feux suscitent un int&eacute;r&ecirc;t croissant de la part de gens
- qui se connectent &agrave; l'Internet, et sont m&ecirc;me install&eacute;s sur des
- r&eacute;seaux priv&eacute;s pour accro&icirc;tre leur s&eacute;curit&eacute;. Cette section vise &agrave;
- vous expliquer ce que sont les coupe-feux, comment les utiliser
- et comment mettre en oeuvre les possibilit&eacute;s offertes par le noyau
- de FreeBSD pour les impl&eacute;menter.</para>
-
- <note>
- <para>Les gens pensent souvent qu'avoir un coupe-feu entre le
- r&eacute;seau interne de leur entreprise et le
- &ldquo;Grand M&eacute;chant Internet&rdquo;
- r&eacute;soud tous leurs probl&egrave;mes de s&eacute;curit&eacute;.</para>
-
- <para>Cela peut y concourir, mais une syst&egrave;me de coupe-feu mal
- configur&eacute; pr&eacute;sente pour la s&eacute;curit&eacute; un risque plus grand que
- de ne pas en avoir du tout. Un coupe-feu ajoute une couche
- protectrice
- suppl&eacute;mentaire &agrave; votre syst&egrave;me, mais ne sera pas capable
- d'emp&ecirc;cher un pirate r&eacute;ellement d&eacute;termin&eacute; de p&eacute;n&eacute;trer votre
- r&eacute;seau interne. Si vous &ecirc;tes laxiste quant &agrave; votre
- s&eacute;curit&eacute; interne parce que vous croyez votre coupe-feu
- imp&eacute;n&eacute;trable, vous avez tout bonnement simplifi&eacute; la t&acirc;che
- des pirates.</para>
- </note>
-
-
- <sect2>
- <title>Qu'est-ce qu'un coupe-feu?</title>
-
- <para>Il y a aujourd'hui deux types de coupe-feux diff&eacute;rents
- d'utilisation courante sur l'Internet. Le premier est appel&eacute;
- plus justement <emphasis>routeur filtrant</emphasis>, quand
- le noyau d'une machine interconnect&eacute;e &agrave; plusieurs r&eacute;seaux
- s&eacute;lectionne, en appliquant un ensemble de r&egrave;gles, les paquets
- qu'il transmet ou rejette. Le second, d&eacute;sign&eacute; par le terme
- de <emphasis>serveurs mandataires</emphasis>, s'appuie sur
- des &ldquo;d&eacute;mons&rdquo; pour assurer l'authentification
- et transmettre les paquets, &eacute;ventuellement sur une machine
- interconnect&eacute;e dont la transmission de paquets au niveau
- du noyau est d&eacute;sactiv&eacute;e.</para>
-
- <para>Les sites combinent parfois ces deux approches, de telle
- sorte qu'une machine seulement (appel&eacute;e
- <emphasis>bastion</emphasis>) soit autoris&eacute;e &agrave; envoyer des
- paquets, via un routeur filtrant, sur le r&eacute;seau interne. Les
- services mandat&eacute;s, qui sont g&eacute;n&eacute;ralement plus s&ucirc;rs que les
- m&eacute;canismes habituels d'authentification,
- sont fournis par le bastion.</para>
-
- <para>Le noyau de FreeBSD inclut une fonctionnalit&eacute; de filtrage
- de paquets (appel&eacute;e <application>IPFW</application>), dont traite
- essentiellement la suite de cette section. Des serveurs mandataires
- sous FreeBSD peuvent &ecirc;tre mis en oeuvre avec des logiciels
- ext&eacute;rieurs, mais il y a une telle vari&eacute;t&eacute; de serveurs mandataires
- qu'il est impossible de les d&eacute;crire dans ce document.</para>
-
- <sect3
- id="firewalls-packet-filters">
- <title>Routeurs filtrants</title>
-
- <para>Un routeur est une machine qui transmet des paquets entre
- plusieurs r&eacute;seaux. Le noyau d'un routeur filtrant comporte
- en plus du code qui applique &agrave; chaque paquet un jeu de
- r&egrave;gles pour d&eacute;cider de le transmettre ou non. La plupart
- des logiciels r&eacute;cents de routage IP comportent du code de
- filtrage de paquets. Pour l'utiliser, vous devez fournir
- au filtre un ensemble de r&egrave;gles sur la base desquelles il
- peut d&eacute;cider d'autoriser ou non la transmission des
- paquets.</para>
-
- <para>Pour d&eacute;cider si le paquet peut passer ou non, le code
- parcourt les r&egrave;gles jusqu'&agrave; ce qu'il en trouve une qui
- corresponde aux en-t&ecirc;tes du paquet. Il effectue alors
- l'op&eacute;ration associ&eacute;e &agrave; la r&egrave;gle. Ce peut &ecirc;tre rejeter
- le paquet, le transmettre, ou m&ecirc;me r&eacute;pondre par un
- message ICMP &agrave; l'&eacute;metteur. La premi&egrave;re r&egrave;gle trouv&eacute;e, en
- s&eacute;quence, est seule prise en consid&eacute;ration. On peut donc
- parler d'une &ldquo;cha&icirc;ne de r&egrave;gles&rdquo;.</para>
-
- <para>Les crit&egrave;res de s&eacute;lection des paquets varient selon
- les logiciels, mais vous pouvez typiquement d&eacute;finir des
- r&egrave;gles bas&eacute;es sur les adresses IP de l'&eacute;metteur et du
- destinataire, les ports source et destination (pour les
- protocoles qui supportent les ports), voir le type de paquet
- (UDP, TCP, ICMP, etc...).</para>
-
- </sect3>
-
- <sect3
- id="firewalls-proxy-servers">
- <title>Serveurs mandataires</title>
-
- <Para>Les serveurs mandataires sont des machines sur lesquelles
- les &ldquo;d&eacute;mons&rdquo; du syst&egrave;me standard
- (telnetd, ftpd, etc) sont remplac&eacute;s par des serveurs sp&eacute;ciaux.
- Ce sont ces serveurs que l'on appelle <emphasis>serveurs
- mandataires</emphasis>, car ils n'autorisent normalement que
- les connexions entrantes. Cela permet (par exemple),
- avec un serveur mandataire telnet sur votre bastion, aux gens
- de se connecter de l'ext&eacute;rieur et d'acc&eacute;der &agrave; votre r&eacute;seau
- interne, apr&egrave;s avoir satisfait &agrave; un m&eacute;canisme d'authentification
- (inversement, des serveurs mandataires peuvent &ecirc;tre utilis&eacute;s
- pour les connexions du r&eacute;seau interne vers l'ext&eacute;rieur).</para>
-
- <para>Les serveurs mandataires sont g&eacute;n&eacute;ralement plus s&ucirc;rs que les
- serveurs ordinaires et disposent d'une plus grande vari&eacute;t&eacute; de
- m&eacute;canismes d'authentification, dont les mots de passe &ldquo;&agrave;
- usage unique&rdquo;, de fa&ccedil;on &agrave; ce que,
- m&ecirc;me si quelqu'un arrive &agrave;
- surprendre votre mot de passe, il ne puisse l'utiliser pour
- acc&eacute;der &agrave; vos syst&egrave;mes, puisqu'il expire aussit&ocirc;t. Comme ils
- ne donnent pas aux utilisateurs l'acc&egrave;s &agrave; la machine qui les
- h&eacute;berge, il en est d'autant plus difficile d'installer une
- entr&eacute;e d&eacute;rob&eacute;e dans votre syst&egrave;me de s&eacute;curit&eacute;.</para>
-
- <para>Les serveurs mandataires ont aussi souvent la possibilit&eacute;
- de restreindre encore l'acc&egrave;s, de telle fa&ccedil;on que seules
- certaines machines y soient autoris&eacute;es, et peuvent aussi
- la plupart du temps &ecirc;tre configur&eacute;s
- pour d&eacute;finir quels utilisateurs
- peuvent acc&eacute;der aux machines cibles. L&agrave; encore, les
- fonctionnalit&eacute;s disponibles d&eacute;pendent des logiciels que
- vous choisissez.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Que me permet de faire IPFW?</title>
-
- <para><application>IPFW</application>, le logiciel fourni avec
- FreeBSD, est un syst&egrave;me de filtrage de paquets et de comptabilit&eacute;
- qui est int&eacute;gr&eacute; au noyau, et comporte un outil de configuration
- accessible &agrave; l'utilisateur,
- <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Ensemble, ils vous permettent de d&eacute;finir et de consulter
- les r&egrave;gles appliqu&eacute;es par le noyau pour prendre ses d&eacute;cisions de
- routage.</para>
-
- <para><application>IPFW</application> comporte deux parties. Le
- coupe-feu s'occupe du filtrage de paquets. Il y a aussi une
- partie comptabilit&eacute; IP, qui vous permet de tracer l'utilisation
- de votre routeur, sur la base de r&egrave;gles similaires &agrave; celle
- utilis&eacute;e par le coupe-feu. Vous pouvez (par exemple) savoir
- quel trafic votre routeur re&ccedil;oit d'une machine donn&eacute;e, ou quel
- volume de requ&ecirc;tes WWW (&ldquo;World Wide Web&rdquo;) il
- transmet.</para>
-
- <para>De par la conception d'<application>IPFW</application>,
- vous pouvez l'utiliser sur une machine qui ne fait pas de
- routage, pour filtrer les connexions entrantes et sortantes.
- C'est un cas plus particulier d'application
- d'<application>IPFW</application> que l'usage g&eacute;n&eacute;ral, qui
- se g&egrave;re avec les m&ecirc;mes commandes et les m&ecirc;mes techniques.</para>
-
- </sect2>
-
- <sect2>
- <title>Activer IPFW sur FreeBSD</title>
-
- <para>Comme la majeure partie du syst&egrave;me
- <application>IPFW</application> est int&eacute;gr&eacute;e au noyau,
- vous devrez ajouter une ou plusieurs options &agrave; votre
- fichier de configuration du noyau, selon les possibilit&eacute;s
- que vous voulez utiliser, et recompiler votre noyau.
- Reportez-vous au chapitre
- <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link>
- pour plus de d&eacute;tails sur la recompilation
- du noyau.</para>
-
- <para>Il y a trois options de configuration du noyau qui concernent
- <application>IPFW</application>:</para>
-
-
- <variablelist>
- <varlistentry><term>options IPFIREWALL</term>
- <listitem>
- <para>Int&egrave;gre au noyau le code de filtrage de
- paquets.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options IPFIREWALL_VERBOSE</term>
-
- <listitem>
- <para>Donne au code la possibilit&eacute; de tracer les paquets via
- <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- Sans cette option et m&ecirc;me si vous pr&eacute;cisez dans vos r&egrave;gles
- que les paquets doivent &ecirc;tre trac&eacute;s, rien ne se
- passera.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>options IPFIREWALL_VERBOSE_LIMIT=10</term>
-
- <listitem>
- <para>Limite le nombre de paquets similaires trac&eacute;s. Cette
- option peut &ecirc;tre utile dans un environnement hostile, si
- vous voulez surveiller l'activit&eacute; de votre coupe-feu, tout
- en &eacute;vitant les attaques par refus de service qui
- submergeraient <command>syslog</command>.</para>
-
- <para>Quand une r&egrave;gle atteint le nombre limite de paquets
- identiques, la trace est d&eacute;sactiv&eacute;e pour cette r&egrave;gle.
- Pour la remettre en service, vous devrez r&eacute;initialiser
- le compteur associ&eacute; avec l'utilitaire
- <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ipfw zero 4500</userinput></screen>
- </informalexample>
-
- <para>o&ugrave; 4500 est le num&eacute;ro de la r&egrave;gle que vous voulez de
- nouveau tracer.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>Il y avait, dans les versions ant&eacute;rieures de FreeBSD, une
- option <literal>IPFIREWALL_ACCT</literal>. Elle est maintenant
- obsol&egrave;te. Le code du coupe-feu int&egrave;gre d&eacute;sormais automatiquement
- les fonctions comptables.</para>
-
- </sect2>
-
- <sect2>
- <title>Configurer IPFW</title>
-
- <para>La configuration du logiciel <application>IPFW</application>
- se fait avec l'utilitaire <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>. La syntaxe de cette commande
- para&icirc;t assez compliqu&eacute;e, mais elle est relativement simple, une
- fois que vous en avez compris la structure.</para>
-
- <para>L'utilitaire comporte quatre cat&eacute;gories de commandes:
- ajout/suppression, liste, vidage, r&eacute;initialisation. On ajoute
- et l'on supprime des r&egrave;gles de filtrage. On liste les r&egrave;gles.
- On vide la s&eacute;quence de r&egrave;gles, pour supprimer toutes les r&egrave;gles.
- On r&eacute;initialise les informations comptables.</para>
-
-
- <sect3>
- <title>Modifier les r&egrave;gles IPFW</title>
-
- <para>La syntaxe pour ce type de commande est:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg>-N</arg>
- <arg choice="plain">commande</arg>
- <arg>index</arg>
- <arg choice="plain">action</arg>
- <arg>log</arg>
- <arg choice="plain">protocole</arg>
- <arg choice="plain">adresses</arg>
- <arg>options</arg>
- </cmdsynopsis></para>
-
- <para>Il n'y a qu'un seul indicateur avec ce type de
- commande:</para>
-
-
- <variablelist>
- <varlistentry><term>-N</term>
- <listitem>
- <para>R&eacute;soudre les adresses et les noms de services
- dans les sorties.</para>
-
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>La <emphasis>commande</emphasis> peut &ecirc;tre raccourcie
- &agrave; son abbr&eacute;viation univoque la plus courte. Les
- <emphasis>commandes</emphasis> valides sont:</para>
-
-
- <variablelist>
- <varlistentry><term>add</term>
- <listitem>
- <para>Ajoute une entr&eacute;e &agrave; la liste des r&egrave;gles de
- filtrage/comptabilit&eacute;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>delete</term>
-
- <listitem>
- <para>Supprime une entr&eacute;e de la liste des r&egrave;gles de
- filtrage/comptabilit&eacute;.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>Des versions ant&eacute;rieures d'<application>IPFW</application>
- s&eacute;paraient les r&egrave;gles de filtrage et celles de comptabilit&eacute;.
- La version actuelle autorise la comptabilisation de chaque
- r&egrave;gle de filtrage.</para>
-
- <para>L'<emphasis>index</emphasis>, s'il est renseign&eacute;, permet
- d'ins&eacute;rer la r&egrave;gle &agrave; un point pr&eacute;cis de la s&eacute;quence. Sinon,
- la r&egrave;gle est ajout&eacute;e en fin de s&eacute;quence avec un index de 100
- sup&eacute;rieur &agrave; la derni&egrave;re r&egrave;gle existante (&agrave;
- l'exception de la r&egrave;gle par d&eacute;faut, 65535,
- &ldquo;deny&rdquo;).</para>
-
- <para>L'option <literal>log</literal> active la trace de la
- r&egrave;gle &agrave; la console syst&egrave;me, si le noyau a &eacute;t&eacute; compil&eacute; avec
- l'option <literal>IPFIREWALL_VERBOSE</literal>.</para>
-
- <para>Les <emphasis>actions</emphasis> valides sont:</para>
-
-
- <variablelist>
- <varlistentry><term>reject</term>
- <listitem>
- <para>Refuse le paquet, et envoie un message ICMP
- h&ocirc;te ou port non joignable (selon le cas) &agrave;
- l'&eacute;metteur.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>allow</term>
-
- <listitem>
- <para>Transmet normalement le paquet (alias:
- <literal>pass</literal> et
- <literal>accept</literal>). </para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>deny</term>
-
- <listitem>
- <para>Rejette le paquet. N'envoie pas de message
- ICMP &agrave; l'&eacute;metteur (tout ce passe comme si le paquet
- n'&eacute;tait jamais arriv&eacute; &agrave; destination).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>count</term>
-
- <listitem>
- <para>Met &agrave; jour les informations comptables, mais le paquet
- n'est pas accept&eacute;/rejet&eacute; sur la base de cette r&egrave;gle. Le
- filtrage se poursuit avec la r&egrave;gle suivante de la
- s&eacute;quence.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>Chaque <emphasis>action</emphasis> est identifiable
- par son abbr&eacute;viation univoque la plus courte.</para>
-
- <para>Les <emphasis>protocoles</emphasis> qui peuvent &ecirc;tre
- pr&eacute;cis&eacute;s sont:</para>
-
-
- <variablelist>
- <varlistentry><term>all</term>
- <listitem>
- <para>N'importe quel paquet IP.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>icmp</term>
-
- <listitem>
- <para>Les paquets ICMP.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tcp</term>
-
- <listitem>
- <para>Les paquets TCP.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>udp</term>
-
- <listitem>
- <para>Les paquets UDP.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- <para>Les <emphasis>adresses</emphasis> sont repr&eacute;sent&eacute;es comme
- suit:</para>
-
- <cmdsynopsis>
- <arg choice="plain">from</arg>
- <arg choice="plain"><replaceable>adresse/masque</replaceable></arg><arg><replaceable>port</replaceable></arg>
- <arg choice="plain">to</arg>
- <arg choice="plain"><replaceable>adresse/masque</replaceable></arg><arg><replaceable>port</replaceable></arg>
- <arg>via <replaceable>interface</replaceable></arg>
- </cmdsynopsis>
-
- <para>Vous ne pouvez sp&eacute;cifier le <replaceable>port</replaceable>
- qu'avec les <emphasis>protocoles</emphasis> qui les supportent
- (UDP et TCP).</para>
-
- <para>Le param&egrave;tre <option>via</option> est optionnel et d&eacute;finit
- soit l'adresse IP, soit le nom de domaine d'une interface IP
- locale, soit le nom d'une interface
- (e.g. <devicename>ed0</devicename>) pour que la r&egrave;gle ne
- s'applique qu'aux paquets passant par cette interface. Le
- num&eacute;ro d'unit&eacute; de l'interface peut &ecirc;tre remplac&eacute; par un
- caract&egrave;re de substitution. Par exemple, <literal>ppp*</literal>
- d&eacute;signe toutes les interfaces associ&eacute;es au module PPP int&eacute;gr&eacute; au
- noyau.</para>
-
- <para>La syntaxe utilis&eacute;e pour
- <replaceable>adresse/masque</replaceable> est:</para>
-
- <informalexample>
- <screen><replaceable>adresse</replaceable></screen>
- </informalexample>
-
- <para>ou:</para>
-
- <informalexample>
- <screen><replaceable>adresse</replaceable>/<replaceable>longueur_du_masque</replaceable></screen>
- </informalexample>
-
- <para>ou:</para>
-
- <informalexample>
- <screen><replaceable>adresse</replaceable>:<replaceable>masque_logique</replaceable></screen>
- </informalexample>
-
- <para>Un nom de machine valide peut remplacer l'adresse IP.
- <option><replaceable>longueur_du_masque</replaceable></option> est
- une valeur d&eacute;cimale indiquant combien de digits de l'adresse
- doivent correspondre. e.g. <literal>192.216.222.1/24</literal>
- g&eacute;n&egrave;re un masque tel que toutes les adresses d'un sous-r&eacute;seau de
- classe C (dans ce cas, 192.216.222) soient s&eacute;lectionn&eacute;es.
- <option><replaceable>masque_logique</replaceable></option> est
- une adresse IP telle que le masque soit obtenu par intersection
- logique (&ldquo;ET&rdquo;) avec l'adresse associ&eacute;e. Le mot-cl&eacute;
- <literal>any</literal> peut &ecirc;tre utilis&eacute; pour indiquer
- &ldquo;n'importe quelle adresse IP&rdquo;.</para>
-
- <para>Les num&eacute;ros des ports &agrave; bloquer sont indiqu&eacute;s par:
-
- <cmdsynopsis>
- <arg choice="plain"><replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>...</arg></arg></arg></arg>
- </cmdsynopsis>pour donner un seul port ou une liste de ports, ou:
-
- <cmdsynopsis>
- <arg choice="plain"><replaceable>port</replaceable>-<replaceable>port</replaceable></arg>
- </cmdsynopsis>pour donner une plage de valeurs. On peut aussi
- combiner une seule plage et une liste, mais la plage doit toujours
- &ecirc;tre indiqu&eacute;e en premier.</para>
-
- <para>Les <emphasis>options</emphasis> disponibles sont:</para>
-
-
- <variablelist>
- <varlistentry><term>frag</term>
- <listitem>
- <para>Le paquet correspond si ce n'est pas le premier
- fragment d'un datagramme.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>in</term>
-
- <listitem>
- <para>Le paquet correspond si c'est un paquet
- entrant.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>out</term>
-
- <listitem>
- <para>Le paquet correspond si c'est un paquet
- sortant.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>ipoptions <replaceable>options</replaceable></term>
-
- <listitem>
- <para>Le paquet correspond si son en-t&ecirc;te IP contient les
- options&nbsp;-&nbsp;s&eacute;par&eacute;es par des virgules&nbsp;-&nbsp;de la liste
- d'<replaceable>options</replaceable>. Les options IP
- reconnues sont: <literal>ssrr</literal>
- (&ldquo;strict source route&rdquo;&nbsp;-&nbsp;routage strict
- par la source)
- <literal>lsrr</literal>
- (&ldquo;loose source route&rdquo;&nbsp;-&nbsp;routage souple
- par la source),
- <literal>rr</literal> (&ldquo;record packet
- route&rdquo;&nbsp;-&nbsp;enregistrer la route du paquet),
- et <literal>ts</literal>
- (&ldquo;timestamp&rdquo;&nbsp;-&nbsp;date). L'absence d'une
- option est indiqu&eacute;e en la faisant pr&eacute;c&eacute;der d'un
- <literal>!</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>established</term>
-
- <listitem>
- <para>Le paquet correspond s'il fait partie
- d'une connexion TCP d&eacute;j&agrave; &eacute;tablie,
- (i.e. si le bit RST ou ACK
- est positionn&eacute;). Vous pouver optimiser les performances
- du coupe-feu en introduisant une r&egrave;gle
- <emphasis>established</emphasis>
- assez t&ocirc;t dans la s&eacute;quence.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>setup</term>
-
- <listitem>
- <para>Le paquet correspond si c'est un paquet qui initialise
- une connexion TCP (Le bit SYN est positionn&eacute; mais pas le
- bit ACK).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>tcpflags <replaceable>indicateurs</replaceable></term>
-
- <listitem>
- <para>Le paquet correspond si son en-t&ecirc;te contient les
- indicateurs&nbsp;-&nbsp;s&eacute;par&eacute;s par des virgules&nbsp;-&nbsp;de la
- liste d'<replaceable>indicateurs</replaceable>. Les
- indicateurs reconnus sont <literal>fin</literal>,
- <literal>syn</literal>, <literal>rst</literal>,
- <literal>psh</literal>, <literal>ack</literal>, et
- <literal>urg</literal>. L'absence d'un indicateur donn&eacute;
- est indiqu&eacute;e en le faisant pr&eacute;c&eacute;der d'un
- <literal>!</literal>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>icmptypes <replaceable>types</replaceable></term>
-
- <listitem>
- <para>Le paquet correspond si son type ICMP appartient &agrave; la
- liste <replaceable>types</replaceable>. La liste est
- donn&eacute;e sous forme d'une combinaison de plages et/ou de
- types s&eacute;par&eacute;s par des virgules. Les types ICMP
- habituellement utilis&eacute;s sont:
- <literal>0</literal> &ldquo;echo reply&rdquo; (r&eacute;ponse &agrave;
- un <command>ping</command>),
- <literal>5</literal> &ldquo;redirect&rdquo;
- (modification de la route), <literal>8</literal>
- &ldquo;echo request&rdquo; (&eacute;mis par
- <command>ping</command>), et
- <literal>11</literal> &ldquo;time exceeded&rdquo;
- (utilis&eacute; pour indiquer que le TTL&nbsp;-&nbsp;&ldquo;Time To
- Live&rdquo;&nbsp;-&nbsp;dur&eacute;e de vie&nbsp;-&nbsp;,a &eacute;t&eacute; atteint, avec
- <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>, par exemple).</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect3>
-
- <sect3>
- <title>Lister les r&egrave;gles IPFW</title>
-
- <para>La syntaxe de cette forme de la commande est:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg>-a</arg>
- <arg>-t</arg>
- <arg>-N</arg>
- <arg choice="plain">l</arg>
- </cmdsynopsis></para>
-
- <para>Il y a trois indicateurs valides avec ce type de
- commande:</para>
-
-
- <variablelist>
- <varlistentry><term>-a</term>
- <listitem>
- <para>Affiche avec la liste, les valeurs des compteurs.
- Cette option est le seul moyen de consulter les
- informations comptables.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-t</term>
-
- <listitem>
- <para>Affiche la date de derni&egrave;re concordance pour chaque
- r&egrave;gle de la s&eacute;quence. Le format d'affichage n'est
- pas compatible avec la syntaxe d'entr&eacute;e de l'utilitaire
- <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>-N</term>
-
- <listitem>
- <para>Essaye de r&eacute;soudre les adresses et le noms des
- services.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect3>
-
- <sect3>
- <title>Vider les r&egrave;gles IPFW</title>
-
- <para>La commande pour vider les r&egrave;gles est:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg choice="plain">flush</arg>
- </cmdsynopsis></para>
-
- <para>Toutes les r&egrave;gles de la s&eacute;quence sont supprim&eacute;es, sauf
- la r&egrave;gle par d&eacute;faut d&eacute;finie par le noyau (index 65535). Faites
- attention quand vous utilisez cette commande, la r&egrave;gle par
- d&eacute;faut &ldquo;deny&rdquo; isolera votre coupe-feu du r&eacute;seau
- jusqu'&agrave; ce qu'une nouvelle r&egrave;gle &ldquo;allow&rdquo; soit
- ajout&eacute;e &agrave; la s&eacute;quence.</para>
-
- </sect3>
-
- <sect3>
- <title>R&eacute;initialiser les compteurs IPFW</title>
-
- <para>La syntaxe pour r&eacute;initialiser un ou plusieurs compteurs de
- paquets est:
- <cmdsynopsis>
- <command>ipfw</command>
- <arg choice="plain">zero</arg>
- <arg choice="opt"><replaceable>index</replaceable></arg>
- </cmdsynopsis></para>
-
- <para>Employ&eacute;e sans l'argument
- <replaceable>index</replaceable>, tous les compteurs sont
- r&eacute;initialis&eacute;s. Si un <replaceable>index</replaceable> est
- pr&eacute;cis&eacute;, l'op&eacute;ration ne s'applique qu'&agrave; la r&egrave;gle
- correspondante.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Exemples de commandes IPFW</title>
-
- <para>Cette commande emp&ecirc;chera le routeur de transmettre tous les
- paquets venant de la machine
- <hostid role="fqdn">sales.pirates.org</hostid> vers le port
- &ldquo;telnet&rdquo; de la machine
- <hostid role="fqdn">chics.types.org</hostid>:</para>
-
- <informalexample>
- <screen>&prompt.root <userinput>ipfw add deny tcp from sales.pirates.org to chics.types.org 23</userinput></screen>
- </informalexample>
-
- <para>L'exemple suivant rejette tout trafic TCP venant du r&eacute;seau
- <hostid role="domainname">pirates.org</hostid> (un r&eacute;seau de classe
- C) vers la machine
- <hostid role="fqdn">chics.types.org</hostid> machine (quel que
- soit le port).</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ipfw add deny log tcp from sales.pirates.org/24 to chics.types.org</userinput></screen>
- </informalexample>
-
- <para>Si vous ne voulez pas que l'on puisse ouvrir de sessions X
- sur votre r&eacute;seau interne (un sous-r&eacute;seau d'un r&eacute;seau de classe C),
- la commande suivante applique le filtrage ad&eacute;quat:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ipfw add deny tcp from any to mon.reseau.org/28 6000 setup</userinput></screen>
- </informalexample>
-
- <para>Pour lister les informations comptables:
-
- <informalexample>
- <screen>&prompt.root; <userinput>ipfw -a list</userinput></screen>
- </informalexample> ou en abr&eacute;g&eacute;:
-
- <informalexample>
- <screen>&prompt.root; <userinput>ipfw -a l</userinput></screen>
- </informalexample> Vous pouvez aussi voir la derni&egrave;re date
- d'application d'une r&egrave;gle avec:
-
- <informalexample>
- <screen>&prompt.root; <userinput>ipfw -at l</userinput></screen>
- </informalexample></para>
-
- </sect2>
-
- <sect2>
- <title>Mettre en oeuvre un coupe-feu filtrant</title>
-
- <note>
- <para>Les suggestions ci-dessous ne sont rien que des suggestions.
- Les contraintes varient d'un coupe-feu &agrave; l'autre et je ne peux
- pas vous dire comment mettre en place le coupe-feu qui r&eacute;ponde
- &agrave; votre besoin particulier.</para>
- </note>
-
- <para>Lorsque vous commencez &agrave; configurer votre coupe-feu, &agrave; moins
- que vous n'ayez un banc d'essai pour faire vos tests dans un
- environnement que vous contr&ocirc;lez, je vous conseille
- vivement d'utiliser les options de trace des commandes apr&egrave;s avoir
- compil&eacute; un noyau supportant les traces du coupe-feu. Vous pourrez
- ainsi identifier rapidement les probl&egrave;mes et y rem&eacute;dier sans
- provoquer trop de g&ecirc;ne. M&ecirc;me par la suite, je vous conseille de
- conserver l'option pour les commandes <command>deny</command>,
- ce qui vous permettra de tracer les attaques &eacute;ventuelles et aussi de
- modifier vos r&egrave;gles si vos besoins &eacute;voluent.</para>
-
- <note>
- <para>Tracer les commandes <command>accept</command> aboutit
- &agrave; de gros volumes de fichiers de trace, puisqu'il y a une
- ligne pour chaque paquet qui transite par le coupe-feu. Les
- transferts ftp/http importants ralentissent alors s&eacute;rieusement
- le syst&egrave;me. Cela augmente aussi le temps de latence pour ces
- paquets, parce que cela demande au noyau plus de traitement
- avant de les passer. <command>syslogd</command> utilisera aussi
- plus de temps CPU pour &eacute;crire toutes ces informations sur disque
- et peut m&ecirc;me assez rapidement saturer la partition sur laquelle
- r&eacute;side le r&eacute;pertoire <filename>/var/log</filename>.</para>
- </note>
-
- <para>Tel qu'il est livr&eacute;, FreeBSD ne sait pas charger les r&egrave;gles
- du coupe-feu au d&eacute;marrage du syst&egrave;me. Je vous sugg&egrave;re d'appeler
- une proc&eacute;dure ad-hoc depuis la proc&eacute;dure
- <filename>/etc/netstart</filename>. Mettez cette proc&eacute;dure assez t&ocirc;t
- dans le fichier <filename>netstart</filename>, de sorte que le
- coupe-feu soit configur&eacute; avant les interfaces IP. Il n'y a ainsi
- pas de possibilit&eacute; d'acc&egrave;s tant que votre r&eacute;seau est encore
- ouvert.</para>
-
- <para>Employez la m&eacute;thode que vous voulez pour charger les r&egrave;gles.
- La commande <command>ipfw</command> ne peut pas charger toutes
- les r&egrave;gles en une seule fois. Je proc&egrave;de de la fa&ccedil;on
- suivante:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ipfw list</userinput></screen>
- </informalexample>
-
- <para>pour &eacute;crire dans un fichier les r&egrave;gles que j'ai d&eacute;finies. Puis
- j'&eacute;dite ce fichier pour ajouter <literal>ipfw</literal> au d&eacute;but
- de chaque ligne. La proc&eacute;dure peut alors &ecirc;tre ex&eacute;cut&eacute;e pour
- recharger les r&egrave;gles. C'est n'est peut-&ecirc;tre pas la fa&ccedil;on la
- plus efficace de proc&eacute;der, mais cela marche.</para>
-
- <para>La question suivante est de savoir ce que votre coupe-feu
- doit r&eacute;ellement <emphasis>faire</emphasis>! Cela d&eacute;pend dans une
- large mesure des acc&egrave;s que vous voulez autoriser de l'ext&eacute;rieur
- &agrave; votre r&eacute;seau et vice-versa. Voici quelques r&egrave;gles
- g&eacute;n&eacute;rales:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Bloquez tous les acc&egrave;s entrants sur des ports TCP
- en dessous de 1024. C'est l&agrave; que les services les plus
- probl&eacute;matiques pour la s&eacute;curit&eacute; se trouvent, comme
- finger, SMTP (courrier &eacute;lectronique) et telnet.</para>
- </listitem>
-
- <listitem>
- <para>Bloquez <emphasis>tout</emphasis> traffic UDP entrant.
- Il y a tr&egrave;s peu de services utiles qui fonctionnent sur UDP,
- et les services qui sont utiles menacent g&eacute;n&eacute;ralement la
- s&eacute;curit&eacute; (e.g. Les protocoles RPC et NFS de Sun). Cela
- pr&eacute;sente l'inconv&eacute;nient que, comme le protocole UDP est
- sans &eacute;tat, les r&eacute;ponses aux requ&ecirc;tes UDP sortantes sont
- aussi bloqu&eacute;es. Cela peut poser probl&egrave;me &agrave; des utilisateurs
- internes qui veulent interroger des serveurs archie (prospero)
- externes. Si vous voulez autoriser l'acc&egrave;s &agrave; archie, vous
- devez accepter les paquets UDP venant des ports 191 et 1525
- sur n'importe quel port UDP interne. ntp est un autre service
- que vous pouver envisager d'autoriser; il utilise le port
- 123.</para>
- </listitem>
-
- <listitem>
- <para>Bloquez le trafic entrant vers le port 6000. Le port
- 6000 est utilis&eacute; pour acc&egrave;der aux serveurs X11, et peut
- pr&eacute;senter des risques pour la s&eacute;curit&eacute; (en particulier
- si les gens ont l'habitude d'utiliser
- <command>xhost +</command> sur leur station de travail).
- X11 peut en fait utiliser une plage de ports commen&ccedil;ant
- au port 6000, la limite sup&eacute;rieure d&eacute;pendant du nombre
- de sessions d'affichage qu'accepte la machine. La limite
- d&eacute;finie par la RFC 1700 est 6063.</para>
- </listitem>
-
- <listitem>
- <para>R&eacute;pertoriez les ports utilis&eacute;s par les serveurs
- internes (e.g. serveurs SQL, ...). C'est probablement
- une bonne id&eacute;e de les bloquer aussi, car ils sont
- normalement hors de la plage 1-1024 d&eacute;crite plus haut.</para>
- </listitem>
-
- </itemizedlist>
-
-
- <para>Le CERT propose d'autres recommendations pour la configuration
- d'un coupe-feu &agrave; l'adresse
- <ulink url="ftp://ftp.cert.org/pub/tech_tips/packet_filtering">ftp://ftp.cert.org/pub/tech_tips/packet_filtering</ulink>.</para>
-
- <para>Comme je l'ai dit plus haut, ce ne sont que des
- <emphasis>propositions</emphasis>. Vous devrez d&eacute;finir vous-m&ecirc;me
- les r&egrave;gles &agrave; appliquer &agrave; votre coupe-feu. Je ne peux endosser
- AUCUNE responsabilit&eacute; si quelqu'un s'infiltre sur votre r&eacute;seau,
- m&ecirc;me si vous suivez les conseils donn&eacute;s ci-dessus.</para>
-
- </sect2>
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/serialcomms/chapter.sgml
deleted file mode 100644
index 0c6273abe8..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ /dev/null
@@ -1,2351 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
- <chapter>
- <title>Communications s&eacute;rie</title>
- &trans.a.haby;
-
- <sect1 id="serial">
- <title>Les bases</title>
-
- <para><emphasis>Compil&eacute;es &agrave; partir de la FAQ.</emphasis></para>
-
- <para>Cette section devrait vous donner des informations
- g&eacute;n&eacute;rales sur les ports s&eacute;rie. Si vous n'y trouvez pas
- ce que vous cherchez, consultez les sections de ce manuel
- consacr&eacute;es aux terminaux et aux liaisons t&eacute;l&eacute;phoniques.</para>
-
- <para>Vos applications ouvrirons normalement le fichier sp&eacute;cial
- de p&eacute;riph&eacute;rique <filename>ttyd<replaceable>X</replaceable></filename>
- (ou <filename>cuaa<replaceable>X</replaceable></filename>). Quand
- un programme ouvre ce fichier, il retrouve normalement un ensemble
- de param&egrave;tres par d&eacute;faut pour les entr&eacute;es/sorties sur le terminal.
- Vous pouvez visualiser ces valeurs par d&eacute;faut avec la commande:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen>
- </informalexample>
-
- <para>Si vous modifiez le param&egrave;trage de ce p&eacute;riph&eacute;rique, ces
- modifications s'appliquent jusqu'&agrave; ce que vous fermiez le
- p&eacute;riph&eacute;rique. A la prochaine ouverture, le param&egrave;trage par
- d&eacute;faut s'applique de nouveau. Pour changer le param&egrave;trage
- par d&eacute;faut, vous devez ouvrir et modifier l'&ldquo;&eacute;tat
- initial&rdquo; du p&eacute;riph&eacute;rique. Par exemple, pour activer
- le mode <acronym>CLOCAL</acronym>, la transmission de donn&eacute;es
- 8 bits et le contr&ocirc;le de flux <emphasis>XON/XOFF</emphasis>
- par d&eacute;faut pour la ligne ttyd5, tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen>
- </informalexample>
-
- <para>Il est bien de confier cela &agrave; la proc&eacute;dure
- <filename>/etc/rc.serial</filename>. Ces param&egrave;tres par d&eacute;faut
- s'appliqueront maintenant lorsqu'une application ouvrira
- <filename>ttyd5</filename>. Ce qui ne l'emp&ecirc;che pas de modifier
- ces valeurs, si besoin est.</para>
-
- <para>Vous pouvez aussi emp&ecirc;cher que certaines valeurs puissent
- &ecirc;tre modifi&eacute;es par une application en changeant
- l'&ldquo;&eacute;tat verrouill&eacute;&rdquo; du p&eacute;riph&eacute;rique. Par exemple,
- pour fixer la vitesse de <filename>ttyd5</filename> &agrave; 57600 bps,
- tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
- </informalexample>
-
- <para>Si une application qui ouvre maintenant <filename>ttyd5</filename>
- essaie de modifier la vitesse de ce port, elle sera contrainte de
- garder la valeur de 57600 bps.</para>
-
- <para>Vous devriez bien entendu n'autoriser l'&eacute;criture
- de l'&eacute;tat initial et de l'&eacute;tat bloqu&eacute; du p&eacute;riph&eacute;rique qu'au
- super-utilisateur <emphasis remap=tt>root</emphasis>. La proc&eacute;dure
- <filename>MAKEDEV</filename> <emphasis>NE</emphasis> le fait
- <emphasis>PAS</emphasis> quand elle cr&eacute;e les fichiers sp&eacute;ciaux de
- p&eacute;riph&eacute;riques.</para>
-
- </sect1>
-
- <sect1 id="term">
- <title>Terminaux</title>
-
- <para><emphasis>Contribution de &a.kelly;<!-- <br> -->28 Juillet
- 1996</emphasis></para>
-
- <para>Utiliser des terminaux est une solution commode et peu co&ucirc;teuse
- pour disposer de la puissance de votre syst&egrave;me FreeBSD lorsque vous
- n'&ecirc;tes pas sur la console de l'ordinateur ou sur un r&eacute;seau auquel il
- est connect&eacute;. Cette section vous explique comment utiliser des
- terminaux avec FreeBSD.</para>
-
- <sect2 id="term-uses">
- <title>Usages et types de terminaux</title>
-
- <para>Les premiers syst&egrave;mes Unix n'avaient pas de console. Au lieu
- de cela, les gens ouvraient des sessions et ex&eacute;cutaient leurs
- programmes &agrave; partir de terminaux qui &eacute;taient connect&eacute;s aux ports
- s&eacute;rie de l'ordinateur. C'est un peu la m&ecirc;me chose que lorsque
- l'on utilise un modem et un logiciel d'&eacute;mulation de terminal
- pour se connecter &agrave; un syst&egrave;me distant et travailler en mode
- texte.</para>
-
- <para>Les PCs d'aujourd'hui ont des consoles graphiques de
- haute r&eacute;solution, mais la possibilit&eacute; d'ouvrir une session
- sur un port s&eacute;rie subsiste toujours sur presque tous les
- syst&egrave;mes d'exploitation de type Unix; FreeBSD ne fait pas
- exception &agrave; la r&egrave;gle. Avec un terminal reli&eacute; &agrave; un port s&eacute;rie
- disponible, vous pouvez ouvrir une session
- et ex&eacute;cuter des programmes
- comme vous le feriez normalement &agrave; la console ou dans une
- fen&ecirc;tre <command>xterm</command> avec le gestionnaire
- X Window.</para>
-
- <para>Pour un usage professionnel, vous pouvez connecter de
- nombreux terminaux &agrave; un syst&egrave;me FreeBSD et les installer
- sur les bureaux de vos employ&eacute;s. Pour une usage domestique,
- un ordinateur inutilis&eacute;, un vieux PC ou Macintosh, peut
- servir de terminal sur un ordinateur plus puissant sous
- FreeBSD. Vous pouvez ainsi faire de ce qui serait sinon un
- syst&egrave;me mono-utilisateur un puissant syst&egrave;me
- multi-utilisateurs.</para>
-
- <para>FreeBSD conna&icirc;t trois types de terminaux:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Les <link linkend="term-dumb">Terminaux
- passifs</link>,</para>
- </listitem>
-
- <listitem>
- <para>Les <link linkend="term-pcs">PCs servant de
- terminaux</link>,</para>
- </listitem>
-
- <listitem>
- <para>Les <link linkend="term-x">Terminaux X</link>.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Les sections qui suivent d&eacute;crivent chacun de ces types de
- terminaux.</para>
-
-
- <sect3 id="term-dumb">
- <title>Terminaux passifs</title>
-
- <para>Les terminaux passifs sont des mat&eacute;riels sp&eacute;cialis&eacute;s qui
- vous permettent de vous connecter &agrave; votre ordinateur via une
- ligne s&eacute;rie. On les appelle &ldquo;passifs&rdquo; parce qu'ils
- ne savent qu'afficher, envoyer et recevoir du texte. Ils ne
- peuvent pas ex&eacute;cuter de programmes. C'est l'ordinateur auquel
- ils sont connect&eacute;s qui dispose de tout ce qu'il faut pour faire
- tourner les logiciels de traitement de texte, les compilateurs,
- la messagerie &eacute;lectroniques, les jeux, et ainsi de suite.</para>
-
- <para>Il ya a des centaines de mod&egrave;les de terminaux passifs de
- constructeurs diff&eacute;rents, dont le VT-100 de Digital Equipment
- Corporation et le WY-75 de Wyse. Ils fonctionneront pratiquement
- tous avec FreeBSD. Certains terminaux haut de gamme peuvent m&ecirc;me
- afficher des graphiques, mais seuls certains logiciels tireront
- parti de ces possibilit&eacute;s &eacute;volu&eacute;es.</para>
-
- <para>Les terminaux passifs sont d'usage courant
- lorsque les utilisateurs
- n'ont pas besoin d'acc&eacute;der &agrave; des outils graphiques tels que ceux
- que fournit le syst&egrave;me X Window.</para>
-
- </sect3>
-
- <sect3 id="term-pcs">
- <title>PCs servant de terminaux</title>
-
- <para>Si un <link linkend="term-dumb">terminal passif</link>
- ne sait qu'afficher, envoyer et recevoir du texte, alors
- n'importe quel ordinateur personnel inutilis&eacute; peut servir
- de terminal passif. Il vous faudra uniquement le c&acirc;ble
- adapt&eacute; et un programme d'<emphasis>&eacute;mulation de
- terminal</emphasis> qui tourne sur cet ordinateur.</para>
-
- <para>C'est un usage domestique courant. Si votre femme travaille
- sur votre console syst&egrave;me FreeBSD, vous pouvez travailler en mode
- texte en m&ecirc;me temps &agrave; partir d'une machine moins puissante
- connect&eacute;e comme terminal &agrave; votre syst&egrave;me FreeBSD.</para>
-
- </sect3>
-
- <sect3 id="term-x">
- <title>Terminaux X</title>
-
- <para>Les terminaux X sont les terminaux les plus sophistiqu&eacute;s,
- ils ne se connectent pas &agrave; un port s&eacute;rie, mais habituellement
- &agrave; un r&eacute;seau du type Ethernet. Au lieu d'&ecirc;tre cantonn&eacute;s au mode
- texte, ils peuvent afficher des applications X Window.</para>
-
- <para>Les terminaux X ne sont cit&eacute;s ici que pour &ecirc;tre exhaustif.
- Ce chapitre <emphasis>ne</emphasis> d&eacute;crit
- <emphasis>pas</emphasis> comment installer, configurer et utiliser
- des terminaux X.</para>
-
- </sect3>
- </sect2>
-
- <sect2 id="term-cables-ports">
- <title>C&acirc;bles et Ports</title>
-
- <para>Pour relier un terminal &agrave; votre syst&egrave;me FreeBSD, il vous faut
- le bon c&acirc;ble et un port s&eacute;rie auquel le connecter. Cette section
- vous explique comment faire. Si vous savez d&eacute;j&agrave; comment brancher
- votre terminal et quel type de c&acirc;ble il vous faut, passez &agrave; la
- section <link linkend="term-config">Configuration</link>.</para>
-
- <sect3 id="term-cables">
- <title>C&acirc;bles</title>
-
- <para>Comme les terminaux utilisent les ports s&eacute;rie, il vous faudra
- un c&acirc;ble s&eacute;rie&nbsp;-&nbsp;appel&eacute; aussi RS-232C&nbsp;-&nbsp;pour relier le
- terminal &agrave; votre syst&egrave;me FreeBSD.</para>
-
- <para>Il y a deux sortes de c&acirc;bles s&eacute;rie. Celui que vous utiliserez
- d&eacute;pendra du type de terminal que vous voulez connecter:</para>
-
- <para>
- <itemizedlist>
-
- <listitem>
- <para>Si vous connectez un ordinateur personnel pour servir
- de terminal, utilisez un <link linkend="term-null">c&acirc;ble
- &ldquo;null-modem&rdquo;</link>. Un c&acirc;ble
- &ldquo;null-modem&rdquo; relie deux ordinateurs ou deux
- terminaux entre eux.</para>
- </listitem>
-
- <listitem>
- <para>Si vous avez un vrai terminal, la meilleure source
- d'information pour savoir quel c&acirc;ble utiliser est la
- documentation du terminal. Si vous n'avez pas de
- documentation, essayez un <link linkend="term-null">c&acirc;ble
- &ldquo;null-modem&rdquo;</link>. Si cela ne marche pas,
- alors essayez avec un <link linkend="term-std">c&acirc;ble
- standard</link>.</para>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>Il faudra aussi que les ports s&eacute;rie de votre terminal
- <emphasis>et</emphasis> de votre syst&egrave;me FreeBSD aient des
- connecteurs compatibles avec le c&acirc;ble que vous utilisez.</para>
-
- <sect4 id="term-null">
- <title>C&acirc;bles &ldquo;Null-modem&rdquo;</title>
-
- <para>Un c&acirc;ble &ldquo;null-modem&rdquo; transmet directement
- certains signaux, le &ldquo;signal &agrave; la terre&rdquo;, par
- exemple, mais en permute d'autres, les broches
- &ldquo;&eacute;mission&rdquo; et &ldquo;r&eacute;ception&rdquo;
- sont par exemple reli&eacute;es entre elles, d'une extr&eacute;mit&eacute; sur
- l'autre.</para>
-
- <para>Si vous r&eacute;alisez vous-m&ecirc;me vos propres c&acirc;bles, voici une
- table qui d&eacute;crit la m&eacute;thode recommand&eacute;e pour fabriquer un c&acirc;ble
- &ldquo;null-modem&rdquo; pour les terminaux. Cette table donne
- les noms et les num&eacute;ros de broches des signaux RS-232C sur un
- connecteur DB-25,</para>
-
- <informaltable frame="none">
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Signal</entry>
- <entry>Broche #</entry>
- <entry></entry>
- <entry>Broche #</entry>
- <entry>Signal</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>TxD</entry>
- <entry>2</entry>
- <entry>reli&eacute;e &agrave;</entry>
- <entry>3</entry>
- <entry>RxD</entry>
- </row>
-
- <row>
- <entry>RxD</entry>
- <entry>3</entry>
- <entry>reli&eacute;e &agrave;</entry>
- <entry>2</entry>
- <entry>TxD</entry>
- </row>
-
- <row>
- <entry>DTR</entry>
- <entry>20</entry>
- <entry>reli&eacute;e &agrave;</entry>
- <entry>6</entry>
- <entry>DSR</entry>
- </row>
-
- <row>
- <entry>DSR</entry>
- <entry>6</entry>
- <entry>reli&eacute;e &agrave;</entry>
- <entry>20</entry>
- <entry>DTR</entry>
- </row>
-
- <row>
- <entry>SG</entry>
- <entry>7</entry>
- <entry>reli&eacute;e &agrave;</entry>
- <entry>7</entry>
- <entry>SG</entry>
- </row>
-
- <row>
- <entry>DCD</entry>
- <entry>8</entry>
- <entry>reli&eacute;e &agrave;</entry>
- <entry>4</entry>
- <entry>RTS [a]</entry>
- </row>
-
- <row>
- <entry>RTS</entry>
- <entry>4</entry>
- <entry></entry>
- <entry>5</entry>
- <entry>CTS</entry>
- </row>
-
- <row>
- <entry>CTS</entry>
- <entry>5</entry>
- <entry>reli&eacute;e &agrave;</entry>
- <entry>8</entry>
- <entry>DCD</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- <para>Remarques :</para>
- <itemizedlist>
- <listitem>
- <para>[a] reliez les broches 4 et 5 entre elles sur le
- connecteur et &agrave; la broche 8 de l'autre extr&eacute;mit&eacute; (c&ocirc;t&eacute;
- ordinateur).</para>
- </listitem>
- </itemizedlist>
-
- </sect4>
-
- <sect4 id="term-std">
- <title>C&acirc;bles RS-232C standard</title>
-
- <para>Un c&acirc;ble s&eacute;rie standard transmet directement les signaux
- RS-232C. Ce qui signifie que la broche &ldquo;&eacute;mission&rdquo;
- d'une extr&eacute;mit&eacute; est reli&eacute;e &agrave; la broche &ldquo;&eacute;mission&rdquo;
- de l'autre. C'est le c&acirc;ble que l'on utilise pour connecter un
- modem &agrave; un syst&egrave;me FreeBSD, et dont ont besoin certains
- terminaux.</para>
-
- </sect4>
- </sect3>
-
- <sect3 id="term-ports">
- <title>Ports</title>
-
- <para>Les ports s&eacute;rie sont les p&eacute;riph&eacute;riques gr&acirc;ce auxquels
- l'information est &eacute;chang&eacute;e entre le terminal et l'ordinateur
- FreeBSD h&ocirc;te. Cette section d&eacute;crit les diff&eacute;rents types de
- ports s&eacute;rie existant et comment ils sont adress&eacute;s par
- FreeBSD.</para>
-
- <sect4 id="term-portkinds">
- <title>Types de ports</title>
-
- <para>Il y a diff&eacute;rents types de ports s&eacute;rie. Avant d'acheter ou
- de monter un c&acirc;ble, vous devez v&eacute;rifier qu'il soit adapt&eacute; aux
- ports de votre terminal et de votre machine FreeBSD.</para>
-
- <para>La plupart des terminaux ont des ports DB25. Les ordinateurs
- personnels, dont les PCs sous FreeBSD, ont des ports DB25 ou
- DB9. Si vous avez une carte multi-ports s&eacute;rie sur votre PC,
- vous pouvez avoir des ports RJ-12 ou RJ-45.</para>
-
- <para>Consultez la documentation de votre mat&eacute;riel pour conna&icirc;tre
- les sp&eacute;cifications des ports que vous allez utiliser. Un coup
- d'oeil aux ports suffit souvent aussi.</para>
-
- </sect4>
-
- <sect4 id="term-portnames">
- <title>Noms des ports</title>
-
- <para>Avec FreeBSD, vous acc&eacute;dez &agrave; chacun des ports s&eacute;rie par
- une entr&eacute;e dans le r&eacute;pertoire <filename>/dev</filename>. Il y
- a deux sortes d'entr&eacute;es:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Les ports d'appel entrant sont appel&eacute;s
- <filename>/dev/ttyd<replaceable>X</replaceable></filename>
- o&ugrave; <emphasis remap=it>X</emphasis> est le num&eacute;ro du port,
- &agrave; partir de z&eacute;ro. Vous utilisez habituellement les ports
- d'appel entrant pour les terminaux. Avec ces ports, la
- ligne s&eacute;rie doit &eacute;mettre le signal &ldquo;Data Carrier
- Detect&rdquo; (DCD)&nbsp;-&nbsp;d&eacute;tection de
- porteuse&nbsp;-&nbsp;pour qu'ils fonctionnent.</para>
- </listitem>
-
- <listitem>
- <para>Les ports d'appel sortant sont appel&eacute;s
- <filename>/dev/cuaa<replaceable>X</replaceable></filename>.
- Vous n'utilisez normalement pas les ports d'appel sortant
- pour les terminaux, mais pour les modems. Vous pouvez les
- utiliser avec un terminal, si le c&acirc;ble s&eacute;rie ou le terminal
- ne supportent pas le signal de d&eacute;tection de
- porteuse.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Reportez-vous aux pages de manuel de
- <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry>
- pour plus d'informations.</para>
-
- <para>Si vous connectez un terminal au premier port s&eacute;rie
- (<devicename>COM1</devicename> en langage DOS), vous utiliserez
- alors <filename>/dev/ttyd0</filename> pour faire r&eacute;f&eacute;rence au
- terminal. S'il est sur le second port s&eacute;rie (aussi appel&eacute;
- <devicename>COM2</devicename>), ce sera
- <filename>/dev/ttyd1</filename>, et ainsi de suite.</para>
-
- <para>Notez bien que vous devrez peut-&ecirc;tre configurer votre
- noyau pour y inclure le support de chaque port s&eacute;rie, en
- particulier si vous avez une carte s&eacute;rie multi-ports. Voyez
- le chapitre <link linkend="kernelconfig">Configurer le noyau
- de FreeBSD</link> pour plus d'informations.</para>
-
- </sect4>
- </sect3>
- </sect2>
-
- <sect2 id="term-config">
- <title>Configuration</title>
-
- <para>Cette section d&eacute;crit ce que vous devez faire pour configurer
- votre syst&egrave;me FreeBSD pour pouvoir ouvrir une session depuis un
- terminal. Elle suppose que vous avez d&eacute;j&agrave; configur&eacute; votre noyau
- pour y inclure le support du port s&eacute;rie auquel votre terminal est
- connect&eacute;&nbsp;-&nbsp;et que vous avez branch&eacute; ce dernier.</para>
-
- <para>En un mot, vous devez demander au programme
- <command>init</command>, qui contr&ocirc;le le lancement et l'ex&eacute;cution
- des processus, de lancer un processus <command>getty</command>,
- lequel se chargera de lire le nom d'utilisateur au d&eacute;but de la
- session et lancera &agrave; son tour le programme
- <command>login</command>.</para>
-
- <para>Pour cela, vous devez &eacute;diter le fichier
- <filename>/etc/ttys</filename>. Commencez par utiliser
- <command>su</command> pour devenir super-utilisateur. Modifiez
- ensuite de la fa&ccedil;on suivante <filename>/etc/ttys</filename>:</para>
-
- <procedure>
- <step>
- <para>Ajoutez &agrave; <filename>/etc/ttys</filename> une ligne pour
- l'entr&eacute;e du r&eacute;pertoire <filename>/dev</filename> correspondant
- au port s&eacute;rie, si elle n'y est pas d&eacute;j&agrave;.</para>
- </step>
-
- <step>
- <para>Pr&eacute;cisez qu'il faut ex&eacute;cuter
- <filename>/usr/libexec/getty</filename> sur ce port et donnez
- le type de &ldquo;<emphasis remap=tt>getty</emphasis>&rdquo;
- appropri&eacute;, tel qu'il est d&eacute;fini dans le fichier
- <filename>/etc/gettytab</filename>.</para>
- </step>
-
- <step>
- <para>Donnez le type de terminal par d&eacute;faut.</para>
- </step>
-
- <step>
- <para>Activez le port avec &ldquo;on&rdquo;.</para>
- </step>
-
- <step>
- <para>Indiquez si le port doit &ecirc;tre
- &ldquo;secure&rdquo;.</para>
- </step>
-
- <step>
- <para>Faites relire le fichier <filename>/etc/ttys</filename>
- par <command>init</command>.</para>
- </step>
- </procedure>
-
- <para>En option, vous pouvez d&eacute;finir un type de
- <emphasis remap=tt>getty</emphasis> sur-mesure pour l'&eacute;tape 2 en
- ajoutant une entr&eacute;e au fichier <filename>/etc/gettytab</filename>.
- Ce document ne vous explique pas comment le faire. Vous &ecirc;tes invit&eacute;s
- &agrave; consulter les pages de manuel de
- <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- et <citerefentry><refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- pour plus d'informations.</para>
-
- <para>Les sections qui suivent d&eacute;taillent chacune de ces &eacute;tapes, Dans
- l'exemple que nous prendrons pour cela, nous connecterons deux
- terminaux &agrave; notre syst&egrave;me: un Wyse-50 et un vieil IBM PC 286 avec
- un logiciel d'&eacute;mulation de terminal compatible VT-100. Nous
- connecterons le terminal Wyse au second port s&eacute;rie et le 286 au
- sixi&egrave;me port s&eacute;rie (sur une carte multi-ports).</para>
-
- <para>Pour plus d'informations sur le fichier
- <filename>/etc/ttys</filename>, lisez les pages de manuel de
- <citerefentry><refentrytitle>ttys</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
-
- <sect3 id="term-etcttys">
- <title>Ajouter une entr&eacute;e &agrave; <filename>/etc/ttys</filename></title>
-
- <para>Vous devez d'abord ajouter une entr&eacute;e au fichier
- <filename>/etc/ttys</filename>, &agrave; moins qu'il n'y en ait d&eacute;j&agrave;
- une.</para>
-
- <para>Le fichier <filename>/etc/ttys</filename> liste tous les
- ports de votre syst&egrave;me FreeBSD sur lesquels vous voulez autoriser
- l'ouverture de session. Par exemple, la premi&egrave;re console virtuelle
- <filename>ttyv0</filename> a une entr&eacute;e dans ce fichier. Vous
- pouvez ouvrir une session &agrave; la console en utilisant cette entr&eacute;e.
- Il y a des entr&eacute;es dans le fichier pour les consoles virtuelles,
- les ports s&eacute;rie et les &ldquo;pseudo-tty&rdquo;s. Pour les
- terminaux physiques, n'indiquez que l'entr&eacute;e
- <filename>/dev</filename> du port s&eacute;rie, sans le
- &ldquo;<filename>/dev/</filename>&rdquo;.</para>
-
- <para>A l'installation de votre syst&egrave;me FreeBSD, le fichier
- <filename>/etc/ttys</filename> contient les entr&eacute;es pour les
- quatre premiers ports s&eacute;rie: de <filename>ttyd0</filename> &agrave;
- <filename>ttyd3</filename>. Si vous connectez un terminal
- &agrave; l'un de ces ports, vous n'avez pas d'entr&eacute;e &agrave; ajouter.</para>
-
- <PARA>Dans notre exemple, le Wyse-50 va sur le second port s&eacute;rie,
- <filename>ttyd1</filename>, qui est d&eacute;j&agrave; dans le fichier. Il nous
- suffit d'ajouter une entr&eacute;e pour le PC 286 reli&eacute; au sixi&egrave;me port
- s&eacute;rie. Voici un extrait du fichier <filename>/etc/ttys</filename>
- apr&egrave;s que nous ayons ajout&eacute; cette nouvelle entr&eacute;e:</para>
-
- <programlisting>
-ttyd1 "/usr/libexec/getty std.9600" unknown off secure
-ttyd5
- </programlisting>
-
- </sect3>
-
- <sect3 id="term-getty">
- <title>D&eacute;finir le type de
- <emphasis remap=tt>getty</emphasis></title>
-
- <para>Nous devons ensuite pr&eacute;ciser quel est le programme &agrave; ex&eacute;cuter
- pour g&eacute;rer les ouvertures de session depuis le terminal. Le
- programme standard de FreeBSD pour cela est
- <filename>/usr/libexec/getty</filename>. C'est lui qui affiche
- l'invite <prompt>login:</prompt>.</para>
-
- <para>Le programme <command>getty</command> a un argument
- (optionnel), le type de <replaceable>getty</replaceable>. Un
- type de <replaceable>getty</replaceable> d&eacute;crit les
- caract&eacute;ristiques de la ligne sur laquelle est le terminal, telle
- sa vitesse en bps et le type de contr&ocirc;le de parit&eacute; utilis&eacute;.
- le programme <command>getty</command> lit ces caract&eacute;ristiques
- dans le fichier <filename>/etc/gettytab</filename>.</para>
-
- <para>Le fichier <filename>/etc/gettytab</filename> contient un
- grand nombre d'entr&eacute;es pour des terminaux anciens et d'autres
- plus r&eacute;cents. Dans presque tous les cas, les entr&eacute;es qui
- commencent par <literal>std</literal> fonctionneront avec les
- terminaux physiques. Ces entr&eacute;es ignorent le contr&ocirc;le de parit&eacute;.
- Il y a un entr&eacute;e <literal>std</literal> pour chaque vitesse en
- bps de 110 &agrave; 115200. Vous pouvez bien entendu ajouter vos propres
- entr&eacute;es &agrave; ce fichier.
- Les pages de manuel de
- <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- vous donnent plus d'informations.</para>
-
- <para>Quand vous d&eacute;finissez le type de
- <replaceable>getty</replaceable> dans le fichier
- <filename>/etc/ttys</filename>, v&eacute;rifiez que les param&egrave;tres
- de communication du terminal soient les m&ecirc;mes.</para>
-
- <para>Dans notre exemple, le Wyse-50 n'utilise pas de contr&ocirc;le de
- parit&eacute; et se connecte &agrave; 38400 bps. Le PC n'utilise pas de
- contr&ocirc;le de parit&eacute; et se connecte &agrave; 19200 bps. Voici le fichier
- <filename>/etc/ttys</filename> avec les d&eacute;finitions
- correspondantes (juste ce qui concerne les deux terminaux qui nous
- int&eacute;ressent):</para>
-
- <programlisting>
-ttyd1 "/usr/libexec/getty std.38400" unknown off secure
-ttyd5 "/usr/libexec/getty std.19200"
- </programlisting>
-
- <para>Remarquez que le second champ&nbsp;-&nbsp;celui qui indique quel
- programme ex&eacute;cuter&nbsp;-&nbsp;est entre guillemets. C'est important,
- parce que sans cela le type donn&eacute; en argument de
- <command>getty</command> serait interpr&eacute;t&eacute; comme troisi&egrave;me
- champ.</para>
-
- </sect3>
-
- <sect3 id="term-deftermtype">
- <title>D&eacute;finir le type de terminal par d&eacute;faut</title>
-
- <para>Le troisi&egrave;me champ du fichier <filename>/etc/ttys</filename>
- donne le type de terminal par d&eacute;faut sur le port. Pour les ports
- d'appel entrant, vous y mettez typiquement
- &ldquo;<literal>unknown</literal>&rdquo;&nbsp;-&nbsp;inconnu&nbsp;-&nbsp;ou
- <literal>dialup</literal>&nbsp;-&nbsp;appel&nbsp;-&nbsp;parce que les
- utilisateurs peuvent s'y connecter avec n'importe quel type de
- terminal ou de logiciel. Pour les terminaux physiques, le type
- de terminal ne varie pas, vous pouvez donc indiquer un vrai type
- de terminal dans ce champ.</para>
-
- <para>Habituellement, les utilisateurs emploient le programme
- <command>tset</command> depuis leur fichier
- <filename>.login</filename> ou <filename>.profile</filename>
- pour r&eacute;cup&eacute;rer le type de terminal et demander de le pr&eacute;ciser
- si n&eacute;cessaire. En d&eacute;finissant le type de terminal dans le fichier
- <filename>/etc/ttys</filename>, vous leur &eacute;vitez qu'on leur pose
- cette question.</para>
-
- <para>Pour savoir quels types de terminaux sont reconnus par
- FreeBSD, consultez le fichier
- <filename>/usr/share/misc/termcap</filename>. Il liste environ
- 600 terminaux. Vous pouvez en ajouter si vous le d&eacute;sirez. Voyez
- les pages de manuel de
- <citerefentry><refentrytitle>termcap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- pour plus d'informations.</para>
-
- <para>Dans notre exemple, le Wyse-50 est un terminal de type
- Wyse-50 (bien qu'il puisse &eacute;muler d'autres types de terminaux,
- nous le laisseront en mode Wyse-50). Le PC 286 PC utilise
- Procomm qui sera configur&eacute; pour &eacute;muler une VT-100. Voici les
- entr&eacute;es ad&eacute;quates, quoiqu'encore incompl&egrave;tes du fichier
- <filename>/etc/ttys</filename>:</para>
-
- <programlisting>
-ttyd1 "/usr/libexec/getty std.38400" wy50 off secure
-ttyd5 "/usr/libexec/getty std.19200" vt100
- </programlisting>
-
- </sect3>
-
- <sect3 id="term-enable">
- <title>Activer le port</title>
-
- <para>Le champ suivant de <filename>/etc/ttys</filename>, le
- quatri&egrave;me, indique s'il faut activer le port. Si vous y mettez
- <literal>on</literal>, alors le processus <command>init</command>
- d&eacute;marrera le programme mentionn&eacute; par le second champ,
- <command>getty</command>, qui affichera l'invite de session.
- Si vous y mettez <literal>off</literal>, il n'y aura pas de
- <command>getty</command>, et donc pas d'ouverture de session
- sur le port.</para>
-
- <para>Vous devez donc bien s&ucirc;r pr&eacute;ciser <literal>on</literal>
- dans ce champ. Voici de nouveau le fichier
- <filename>/etc/ttys</filename>. Nous avons activ&eacute; les deux
- ports avec <literal>on</literal>:</para>
-
- <programlisting>
-ttyd1 "/usr/libexec/getty std.38400" wy50 on secure
-ttyd5 "/usr/libexec/getty std.19200" vt100 on
- </programlisting>
-
- </sect3>
-
- <sect3 id="term-secure">
- <title>D&eacute;finir les ports s&eacute;curis&eacute;s</title>
-
- <para>Nous voici arriv&eacute; au dernier champ (enfin, presque: il y a
- un indicateur <literal>window</literal> optionnel, mais nous ne
- nous en pr&eacute;ocupperons pas). Le dernier champ indique si le port
- est s&eacute;curis&eacute;.</para>
-
- <para>Que veut dire &ldquo;s&eacute;curis&eacute;&rdquo;?</para>
-
- <para>Cela veut dire que le compte super-utilisateur (ou tout compte
- avec un IDentifiant utilisateur de 0) peut ouvrir une session sur
- ce port. Les ports non-s&eacute;curis&eacute;s n'autorisent pas l'ouverture de
- session super-utilisateur.</para>
-
- <para>Comment utiliser les ports s&eacute;curis&eacute;s et non s&eacute;curis&eacute;s?</para>
-
- <para>Lorsqu'un port est non s&eacute;curis&eacute;, le terminal qui y est
- connect&eacute; n'autorise pas l'ouverture de session super-utilisateur.
- Les gens qui connaissent le mot de passe super-utilisateur de
- votre syst&egrave;me FreeBSD devront d'abord se connecter sous un compte
- utilisateur ordinaire. Ils devront ensuite utiliser la commande
- <command>su</command> pour avoir les droits du
- super-utilisateur.</para>
-
- <para>Gr&acirc;ce &agrave; cela, vous aurez deux enregistrements pour pouvoir
- rep&eacute;rer les acc&egrave;s super-utilisateur ill&eacute;gitimes: les deux
- commandes <command>login</command> et <command>su</command>
- rapportent leur emploi dans le fichier de trace syst&egrave;me
- (les ouvertures de sessions sont aussi enregistr&eacute;es dans le
- fichier <filename>wtmp</filename>).</para>
-
- <para>Lorsque le port est s&eacute;curis&eacute;, l'ouverture de session
- super-utilisateur est autoris&eacute;e depuis le terminal. Les gens
- qui connaissent le mot de passe super-utilisateur peuvent
- directement se connecter en tant que tel.
- Vous n'avez plus les traces potentiellement utiles de
- l'ouverture de session et de l'utilisation de
- <command>su</command>.</para>
-
- <para>Que devez-vous utiliser?</para>
-
- <para>Utilisez &ldquo;non s&eacute;curis&eacute;&rdquo;. Utilisez
- &ldquo;non s&eacute;curis&eacute;&rdquo; <emphasis>m&ecirc;me</emphasis> pour les
- terminaux qui ne sont <emphasis>pas</emphasis> accessibles &agrave; tout
- le monde ou sont dans des locaux ferm&eacute;s &agrave; cl&eacute;. Il est facile
- d'ouvrir une session et d'utiliser <command>su</command> quand
- vous avez besoin des droits du super-utilisateur.</para>
-
- <para>Voici finalement les entr&eacute;es compl&egrave;tes du fichier
- <filename>/etc/ttys</filename> accompagn&eacute;es d'un commentaire
- qui indique o&ugrave; se trouvent les terminaux:</para>
-
- <programlisting>
-ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure # Cuisine
-ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Salle de bains
- </programlisting>
-
- </sect3>
-
- <sect3 id="term-hup">
- <title>Obliger <command>init</command> &agrave; relire le fichier
- <filename>/etc/ttys</filename></title>
-
- <para>Quand vous d&eacute;marrez FreeBSD, le premier processus,
- <command>init</command>, lit le fichier
- <filename>/etc/ttys</filename> et d&eacute;marre les programmes
- list&eacute;s pour chacun des ports activ&eacute;s, pour afficher
- l'invite de session.</para>
-
- <para>Apr&egrave;s avoir modifi&eacute; <filename>/etc/ttys</filename>, vous
- aimeriez ne pas avoir &agrave; red&eacute;marrer le syst&egrave;me pour
- qu'<command>init</command> voit vos modifications. C'est pourquoi
- <command>init</command> relit <filename>/etc/ttys</filename>
- lorsqu'il re&ccedil;oit un signal SIGHUP (&ldquo;hang up&rdquo;&nbsp;-&nbsp;raccrocher).</para>
-
- <para>Donc, apr&egrave;s avoir sauvegard&eacute; vos modifications au fichier
- <filename>/etc/ttys</filename>, envoyez un
- <literal>SIGHUP</literal> &agrave; <command>init</command> en tapant:
- <informalexample>
- <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
- </informalexample> (Le processus <command>init</command>
- a <emphasis>toujours</emphasis> l'IDentifiant de
- processus 1.)</para>
-
- <para>Si la configuration est correcte, les c&acirc;bles en place, les
- terminaux sous tension, vous devriez voir les invites de session.
- Vos terminaux sont pr&ecirc;ts &agrave; &ecirc;tre utilis&eacute;s pour la premi&egrave;re
- fois!</para>
-
- </sect3>
- </sect2>
-
- <sect2
- id="term-debug">
- <title>R&eacute;gler les probl&egrave;mes li&eacute;s &agrave; votre connection</title>
-
- <para>M&ecirc;me en ayant port&eacute; la plus m&eacute;ticuleuse attention aux d&eacute;tails,
- il peut toujours y avoir quelque chose qui ne va pas lorsque vous
- installez un terminal. Voici une liste de sympt&ocirc;mes et de
- suggestions de solutions.</para>
-
- <variablelist>
- <varlistentry><term>L'invite de session n'appara&icirc;t pas.</term>
- <listitem>
- <para>V&eacute;rifiez que le terminal est branch&eacute; et sous tension. Si
- c'est un ordinateur personnel utilis&eacute; comme terminal,
- v&eacute;rifiez qu'il utilise bien le logiciel d'&eacute;mulation de
- terminal sur le bon port.</para>
-
- <para>Assurez-vous que le c&acirc;ble est solidement raccord&eacute; sur le
- terminal et sur la machine FreeBSD. V&eacute;rifiez que c'est le
- bon type de c&acirc;ble.</para>
-
- <para>Contr&ocirc;lez que le terminal et FreeBSD utilisent la m&ecirc;me
- vitesse en bps et le m&ecirc;me contr&ocirc;le de parit&eacute;. Si c'est un
- terminal vid&eacute;o, v&eacute;rifiez que les contr&ocirc;les de luminosit&eacute; et
- de contraste ne soient pas au minimum. Si c'est un terminal
- papier, v&eacute;rifiez qu'il y ait du papier et de l'encre.</para>
-
- <para>V&eacute;rifiez qu'il y ait bien un processus
- <command>getty</command> qui s'ex&eacute;cute pour ce terminal.
- Tapez:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen>
- </informalexample>
- <para>pour avoir la liste des processus
- <command>getty</command> actifs. Vous devriez voir une
- entr&eacute;e pour le terminal. Par exemple, la ligne
- suivante:</para>
-
- <informalexample>
- <screen>22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1</screen>
- </informalexample>
- <para>montre qu'il y a un <command>getty</command> qui
- s'ex&eacute;cute sur le port s&eacute;rie <literal>ttyd1</literal> et
- utilise l'entr&eacute;e <literal>std.38400</literal> de
- <filename>/etc/gettytab</filename>.</para>
-
- <para>S'il n'y a pas de processus <command>getty</command>
- actif, assurez-vous que vous avez activ&eacute; le port dans
- <filename>/etc/ttys</filename>. Avez-vous aussi bien
- ex&eacute;cut&eacute; <command>kill -HUP 1</command>?</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Il y a n'importe quoi &agrave; la place de l'invite
- de session.</term>
-
- <listitem>
- <para>V&eacute;rifiez que le terminal et FreeBSD d&eacute;finissent la
- m&ecirc;me vitesse et le m&ecirc;me contr&ocirc;le de parit&eacute;. Assurez-vous
- que le processus <command>getty</command> utilise le bon
- type de <replaceable>getty</replaceable>. Dans le cas
- contraire, corrigez
- <filename>/etc/ttys</filename> et ex&eacute;cutez
- <command>kill -HUP 1</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>Les caract&egrave;res sont redoubl&eacute;s; le mot de passe
- s'affiche quand on le tape.</term>
-
- <listitem>
- <para>Passez le terminal (ou le logiciel d'&eacute;mulation de
- terminal) du mode &ldquo;half duplex&rdquo; ou &ldquo;echo
- local&rdquo; en mode &ldquo;full
- duplex&rdquo;.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
- </sect1>
-
- <sect1 id="dialup">
- <title>Connexions t&eacute;l&eacute;phoniques</title>
-
- <para><emphasis>Contribution de &a.ghelmer;.</emphasis></para>
-
- <para>Ce document donne des indications sur la configuration d'un
- syst&egrave;me FreeBSD pour qu'il accepte des connexions entrantes par
- modem. Ce document est bas&eacute; sur l'exp&eacute;rience de son auteur avec
- les versions 1.0, 1.1 et 1.1.5.1 de FreeBSD (et l'exp&eacute;rience de
- configuration de modems sur d'autres syst&egrave;mes d'exploitation de
- type Unix); il se peut cependant qu'il ne r&eacute;ponde pas &agrave; toutes
- vos questions et ne vous donne pas d'exemple suffisamment
- adapt&eacute; &agrave; votre environnement. L'auteur ne saurait &ecirc;tre tenu
- responsable des d&eacute;gats que vous causeriez &agrave; vos syst&egrave;mes ou
- des donn&eacute;es que vous perdriez en essayant de suivre les suggestions
- qui vous sont donn&eacute;es ici.</para>
-
- <sect2 id="dialup-prereqs">
- <title>Pr&eacute;requis</title>
-
- <para>Pour commencer, l'auteur suppose que vous connaissez d&eacute;j&agrave;
- FreeBSD. Il vous faudra un syst&egrave;me FreeBSD install&eacute;. Vous devez
- savoir &eacute;diter des fichiers dans un environnement Unix et lire
- les pages de manuel. Comme pr&eacute;cis&eacute; plus bas, il vous faudra des
- versions pr&eacute;cises de FreeBSD, un minimum de vocabulaire et
- conna&icirc;tre les modems et le c&acirc;blage.</para>
-
- <sect3>
- <title>Version de FreeBSD</title>
-
- <para>On suppose tout d'abord que vous utilisez la version 1.1 de
- FreeBSD ou une version ult&eacute;rieure (y compris les versions 2.x).
- La version 1.0 de FreeBSD comportait deux pilotes de p&eacute;riph&eacute;rique
- s&eacute;rie diff&eacute;rents, ce qui complique la situation. Le pilote de
- p&eacute;riph&eacute;rique s&eacute;rie (<devicename>sio</devicename>) a aussi &eacute;t&eacute;
- largement am&eacute;lior&eacute; avec chaque version successive de FreeBSD,
- les versions plus r&eacute;centes de FreeBSD ont donc en principe des
- pilotes meilleurs et plus efficaces que les versions plus
- anciennes.</para>
-
- </sect3>
-
- <sect3>
- <title>Terminologie</title>
-
- <para>Une revue rapide de la terminologie:</para>
-
- <variablelist>
- <varlistentry><term>bps</term>
- <listitem>
- <para>Bits par seconde&nbsp;-&nbsp;la vitesse &agrave; laquelle les
- informations sont transmises.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>DTE</term>
-
- <listitem>
- <para>Data Terminal Equipment&nbsp;-&nbsp;dispositif de traitement
- de donn&eacute;es&nbsp;-&nbsp;Par exemple, votre ordinateur.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>DCE</term>
-
- <listitem>
- <para>Data Communications Equipment&nbsp;-&nbsp;dispositif de
- communication&nbsp;-&nbsp;votre modem.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>RS-232</term>
-
- <listitem>
- <para>Standard EIA pour les communications s&eacute;rie
- physiques.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>S'il vous faut plus d'informations sur ces termes et sur les
- transmissions de donn&eacute;es en g&eacute;n&eacute;ral, l'auteur se rappelle avoir
- lu que la <emphasis>Bible RS-232</emphasis> (quelqu'un conna&icirc;t
- l'ISBN?) est une bonne r&eacute;f&eacute;rence.</para>
-
- <para>Pour parler de la vitesse de transmission des informations,
- l'auteur n'utilise pas le terme &ldquo;baud&rdquo;. Baud d&eacute;signe
- le nombre de transitions d'&eacute;tat &eacute;lectrique qui peuvent se
- produire sur une p&eacute;riode de temps donn&eacute;e, alors que
- &ldquo;bps&rdquo; (bits par seconde) est le terme
- &ldquo;correct&rdquo; &agrave; employer (au moins, il ne d&eacute;range pas
- autant les adeptes de la quadri-section capillaire).</para>
-
- </sect3>
-
- <sect3>
- <title>Modems externes vs. modems internes</title>
-
- <para>Les modems externes semblent plus adapt&eacute;s aux communications
- &agrave; la demande, parce qu'ils peuvent &ecirc;tre configur&eacute;s de fa&ccedil;on
- quasi-permanente gr&acirc;ce &agrave; leurs param&egrave;tres enregistr&eacute;s en m&eacute;moire
- non volatile et disposent habituellement de voyants lumineux
- qui affichent les signaux RS-232 les plus importants. Les lumi&egrave;res
- impressionnent les visiteurs, mais elles sont aussi tr&egrave;s utiles
- pour savoir si les modems fonctionnent correctement.</para>
-
- <para>Les modems internes ne disposent pas g&eacute;n&eacute;ralement de m&eacute;moire
- non volatile, leur configuration peut se limiter au positionnement
- de cavaliers. Quand ils disposent de voyants, ils sont
- la plupart du temps difficilement visibles quand le boitier est
- referm&eacute;.</para>
-
- </sect3>
-
- <sect3>
- <title>Modems et C&acirc;bles</title>
-
- <para>On suppose que vous avez un minumum de notions sur le
- sujet:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Vous savez connecter votre modem &agrave; votre ordinateur
- de fa&ccedil;on &agrave; ce qu'ils puissent communiquer (&agrave; moins que vous
- n'ayez un modem interne qui n'a pas besoin de c&acirc;ble).</para>
- </listitem>
-
- <listitem>
- <para>Vous ma&icirc;trisez le jeu de commandes de votre modem, ou
- savez o&ugrave; trouver les commandes dont vous avez besoin.</para>
- </listitem>
-
- <listitem>
- <para>Vous savez configurer votre modem (a priori avec un
- programme de communication pour terminal) de facon &agrave; d&eacute;finir
- ses param&egrave;tres en m&eacute;moire non volatile.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>La premi&egrave;re &eacute;tape, connecter le modem, est g&eacute;n&eacute;ralement
- simple&nbsp;-&nbsp;la plupart des c&acirc;bles s&eacute;ries standard fonctionneront
- sans probl&egrave;me. Vous aurez besoin du c&acirc;ble avec les bons
- connecteurs (DB-25 ou DB-9, et m&acirc;le ou femelle) &agrave; chaque
- extr&eacute;mit&eacute;, et il vous faudra un c&acirc;ble DCE-&agrave;-DTE avec le
- brochage suivant:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Donn&eacute;e &eacute;mise (&ldquo;Send Data&rdquo;,
- <abbrev>SD</abbrev>),</para>
- </listitem>
-
- <listitem>
- <para>Donn&eacute;e re&ccedil;ue (&ldquo;Received Data&rdquo;,
- <abbrev>RD</abbrev>),</para>
- </listitem>
-
- <listitem>
- <para>Demande d'&eacute;mission (&ldquo;Ready To Send&rdquo;,
- <abbrev>RTS</abbrev>),</para>
- </listitem>
-
- <listitem>
- <para>Pr&ecirc;t &agrave; &eacute;mettre (&ldquo;Clear To Send&rdquo;,
- <abbrev>CTS</abbrev>),</para>
- </listitem>
-
- <listitem>
- <para>Donn&eacute;es pr&ecirc;tes (&ldquo;Data Set Ready&rdquo;,
- <abbrev>DSR</abbrev>),</para>
- </listitem>
-
- <listitem>
- <para>Disponible (&ldquo;Data Terminal Ready&rdquo;,
- <abbrev>DTR</abbrev>),</para>
- </listitem>
-
- <listitem>
- <para>D&eacute;tection de porteuse(&ldquo;Carrier Detect&rdquo;,
- <abbrev>CD</abbrev>),</para>
- </listitem>
-
- <listitem>
- <para>Terre (&ldquo;Signal Ground&rdquo;,
- <abbrev>SG</abbrev>).</para>
- </listitem>
-
- </itemizedlist>
-
- <para>FreeBSD a besoin des signaux <abbrev>RTS</abbrev> et
- <abbrev>CTS</abbrev> pour le contr&ocirc;le de flux mat&eacute;riel aux
- vitesses sup&eacute;rieures &agrave; 2400bps, du signal <abbrev>CD</abbrev>
- pour savoir quand la ligne d&eacute;croche et quand elle raccroche et
- du signal <abbrev>DTR</abbrev> pour r&eacute;initialiser le modem en
- fin de session. Certains c&acirc;bles ne transmettent pas tous les
- signaux, donc, si vous avez des probl&egrave;mes, comme par exemple,
- si la session reste ouverte alors que la ligne a raccroch&eacute;,
- cela peut &ecirc;tre un probl&egrave;me de c&acirc;ble.</para>
-
- <para>Le deuxi&egrave;me pr&eacute;requis d&eacute;pend du type de modem(s) que vous
- utilisez. Si vous ne connaissez pas les commandes de votre
- modem par coeur, gardez le guide de r&eacute;f&eacute;rence ou le manuel
- utilisateur de votre modem &agrave; port&eacute;e de main. Des exemples
- de commandes seront donn&eacute;s pour les modems externes
- USR Sportster 14.400, qui peuvent vous servir de r&eacute;f&eacute;rence pour
- les commandes de votre propre modem.</para>
-
- <para>Enfin, vous devez savoir comment configurer votre modem pour
- qu'il marche correctement avec FreeBSD. Comme les autres syst&egrave;mes
- d'exploitation de type Unix, FreeBSD utilise les signaux mat&eacute;riels
- pour savoir quand la ligne a d&eacute;croch&eacute; ou raccroch&eacute; et pour
- r&eacute;initialiser le modem quand la communication est termin&eacute;e.
- FreeBSD vous &eacute;vite d'avoir &agrave; envoyer des commandes au modem ou
- &agrave; v&eacute;rifier ses informations d'&eacute;tat. Si vous avez l'habitude de
- connecter des modems &agrave; de syst&egrave;mes de discussions
- (&ldquo;BBS&rdquo;) sur PC, cela vous semblera
- peut-&ecirc;tre g&ecirc;nant.</para>
-
- </sect3>
-
- <sect3>
- <title>A propos de l'interface s&eacute;rie</title>
-
- <para>FreeBSD supporte les interfaces de communication construites
- autour des NS8250, NS16450, NS16550, et NS16550A EIA RS-232C
- (CCITT V.24). Les p&eacute;riph&eacute;riques 8250 et 16450 ont des tampon d'un
- caract&egrave;re. Le 16550 a un tampon de 16 caract&egrave;res, qui offre de
- meilleures performances. (Un bogue dans la version 16650 emp&ecirc;che
- de se servir du tampon de 16 caract&egrave;res, utilisez donc si possible
- le mod&egrave;le 16650A). Parce qu'un tampon d'un seul caract&egrave;re demande
- plus de traitement au syst&egrave;me d'exploitation qu'un tampon de 16
- caract&egrave;res, les cartes &agrave; base de 16650A sont recommand&eacute;es. Si le
- syst&egrave;me a de nombreux ports s&eacute;rie actifs ou si la charge doit &ecirc;tre
- importante, les cartes 16650A sont pr&eacute;f&eacute;rables pour avoir un taux
- d'erreur de communication plus faible.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>R&eacute;sum&eacute;</title>
-
- <para>Voici comment FreeBSD accepte des communications t&eacute;l&eacute;phoniques
- entrantes. Un processus <command>getty</command>, lanc&eacute; par
- <command>init</command>, attend patiemment le moment d'ouvrir le
- port s&eacute;rie qui lui est assign&eacute; (<filename>/dev/ttyd0</filename>,
- dans notre exemple). On peut le voir avec la commande
- <command>ps ax</command>:</para>
-
- <informalexample>
- <screen> 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0</screen>
- </informalexample>
-
- <para>Quand un utilisateur appelle, la connexion s'&eacute;tablit avec le
- modem. Le modem active le signal <abbrev>CD</abbrev>. Le noyau
- s'aper&ccedil;oit qu'une porteuse a &eacute;t&eacute; d&eacute;tect&eacute;e et ouvre le port via
- <command>getty</command>. <command>getty</command> envoie l'invite
- <prompt>login:</prompt> &agrave; la vitesse initialement d&eacute;finie pour cette
- ligne. <command>getty</command> attend de recevoir des caract&egrave;res
- valides, et si, dans un configuration habituelle, il re&ccedil;oit
- n'importe quoi (probablement parce que la vitesse du modem et celle
- de <command>getty</command> ne sont pas identiques),
- <command>getty</command> essaie d'ajuster la vitesse jusqu'&agrave; ce
- qu'il re&ccedil;oive des caract&egrave;res qui paraissent sens&eacute;s.</para>
-
- <para>Souhaitons que <command>getty</command> trouve la bonne vitesse
- et que l'utilisateur obtienne l'invite <prompt>login:</prompt>.
- Une fois que l'utilisateur a r&eacute;pondu par son nom,
- <command>getty</command> ex&eacute;cute
- <filename>/usr/bin/login</filename>, qui termine l'ouverture de la
- session en demandant &agrave; l'utilisateur son mot de passe et en lan&ccedil;ant
- l'interpr&eacute;teur de commandes affect&eacute; &agrave; cet utilisateur.</para>
-
- <para>Passons donc &agrave; la configuration...</para>
-
- </sect2>
-
- <sect2>
- <title>Configuration du noyau</title>
-
- <para>Les noyaux de FreeBSD sont habituellement livr&eacute;s pr&ecirc;ts &agrave;
- tester la pr&eacute;sence de quatre ports s&eacute;rie, connus dans le monde
- PC-DOS sous les noms de <devicename>COM1:</devicename>,
- <devicename>COM2:</devicename>, <devicename>COM3:</devicename>,
- et <devicename>COM4:</devicename>. FreeBSD peut aussi g&eacute;rer les
- cartes s&eacute;rie multi-ports &ldquo;passives&rdquo;, comme les cartes
- Boca 1008 et 2016 (reportez-vous s'il vous pla&icirc;t aux pages de manuel
- de <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry>
- pour avoir des informations sur la configuration du noyau si vous
- avez une carte s&eacute;rie multi-ports). Le noyau par d&eacute;faut ne recherche,
- quant &agrave; lui, que les ports COM standards.</para>
-
- <para>Pour v&eacute;rifier si votre noyau reconna&icirc;t vos ports s&eacute;rie,
- regardez les messages au d&eacute;marrage de votre syst&egrave;me, ou employez
- la commande <command>/sbin/dmesg</command> pour les lister ensuite.
- Cherchez en particulier les messages qui commencent par
- <literal>sio</literal>. Tuyau: pour ne voir que les messages qui
- comportent le mot <literal>sio</literal>, utilisez la
- commande:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen>
- </informalexample>
-
- <para>Par exemple, sur un syst&egrave;me avec quatre ports s&eacute;rie, voici les
- messages de d&eacute;marrage du noyau qui concernent les ports
- s&eacute;rie:</para>
-
- <informalexample>
- <screen>sio0 at 0x3f8-0x3ff irq 4 on isa
-sio0: type 16550A
-sio1 at 0x2f8-0x2ff irq 3 on isa
-sio1: type 16550A
-sio2 at 0x3e8-0x3ef irq 5 on isa
-sio2: type 16550A
-sio3 at 0x2e8-0x2ef irq 9 on isa
-sio3: type 16550A</screen>
- </informalexample>
-
- <para>Si votre noyau ne reconnait pas tous vos ports s&eacute;rie, vous
- devrez probablement recompiler un noyau sur mesure pour votre
- syst&egrave;me.</para>
-
- <para>Lisez le chapitre du Manuel de l'Administrateur Syst&egrave;me BSD sur
- &ldquo;G&eacute;n&eacute;rer les noyaux Berkeley avec Config&rdquo; [que vous
- trouverez dans le r&eacute;pertoire
- <filename>/usr/src/share/doc/smm</filename>] et les &ldquo;Options
- de Configuration de FreeBSD&rdquo; [dans
- <filename>/sys/conf/options</filename> et dans
- <filename>/sys/<replaceable>arch</replaceable>/conf/options.<replaceable>arch</replaceable></filename>,
- ou <emphasis>arch</emphasis> vaut par exemple
- <filename>i386</filename>] pour plus d'informations sur la
- configuration et la recompilation des noyaux. Vous devrez peut-&ecirc;tre
- installer les sources du noyau, si vous ne l'avez pas d&eacute;j&agrave; fait,
- (<filename>srcdist/srcsys.??</filename> pour FreeBSD 1.1,
- <filename>srcdist/sys.??</filename> pour FreeBSD 1.1.5.1,
- ou les sources de toute la distribution pour FreeBSD 2.0) pour
- pouvoir configurer et recompiler des noyaux.</para>
-
- <para>Cr&eacute;ez un fichier de configuration du noyau pour votre syst&egrave;me
- (si vous ne l'avez pas d&eacute;j&agrave; fait) en allant dans le r&eacute;pertoire
- <filename>/sys/i386/conf</filename>. Puis si, vous cr&eacute;ez un nouveau
- fichier de configuration, copiez le fichier
- <filename>GENERICAH</filename> (ou <filename>GENERICBT</filename>,
- si vous avez un contr&ocirc;leur SCSI BusTek avec FreeBSD 1.x) dans
- <filename>VOTRESYS</filename>, o&ugrave; <filename>VOTRESYS</filename>
- est le nom de votre syst&egrave;me, en majuscules. Editez le fichier, et
- modifiez les lignes:</para>
-
- <programlisting>
-device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
-device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
-device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
-device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr
- </programlisting>
-
- <para>Vous pouvez commenter ou supprimer les lignes pour les
- p&eacute;riph&eacute;riques que vous n'avez pas. Si vous avez une carte
- s&eacute;rie multi-ports, comme la carte Boca BB2016, reportez-vous
- s'il vous pla&icirc;t aux pages de manuel de
- <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry>
- pour avoir des informations compl&egrave;tes sur les lignes de
- configuration pour les cartes s&eacute;rie multi-ports. Faites attention
- si vous partez d'un fichier de configuration utilis&eacute; pour une
- version ant&eacute;rieure de FreeBSD, parce que les indicateurs associ&eacute;s
- au p&eacute;riph&eacute;rique peuvent avoir chang&eacute; d'une version &agrave; l'autre.</para>
-
- <note>
- <para><literal>port "IO_COM1"</literal> est l'&eacute;quivalent de
- <literal>port 0x3f8</literal>,
- <symbol>IO_COM2</symbol> de <literal>0x2f8</literal>,
- <symbol>IO_COM3</symbol> de <literal>0x3e8</literal> et
- <symbol>IO_COM4</symbol> de <literal>0x2e8</literal>, qui sont
- les adresses respectives les plus courantes de ces ports s&eacute;rie;
- les interruptions 4, 3, 5, et 9 sont les lignes d'interruption
- utilis&eacute;es habituellement. Notez aussi que les ports s&eacute;rie
- ordinaires <emphasis>ne peuvent pas</emphasis> partager
- d'interruption sur le bus ISA (les cartes multi-ports int&egrave;grent
- l'&eacute;lectronique n&eacute;cessaire pour permettre au 16550A de la carte de
- partager une ou deux lignes d'interruption).</para>
- </note>
-
- <para>Quand vous avez termin&eacute; de corriger votre fichier de
- configuration du noyau, utilisez le programme
- <command>config</command> en suivant la documentation fournie par
- &ldquo;G&eacute;n&eacute;rer les noyaux Berkeley avec Config&rdquo; et les pages
- de manuel de
- <citerefentry><refentrytitle>config</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- pour cr&eacute;er le r&eacute;pertoire de compilation du noyau, puis compilez,
- intallez et testez votre nouveau noyau.</para>
-
- </sect2>
-
- <sect2>
- <title>Fichiers sp&eacute;ciaux de p&eacute;riph&eacute;rique</title>
-
- <para>La plupart des p&eacute;riph&eacute;riques g&eacute;r&eacute;s par le noyau sont adress&eacute;s
- par l'interm&eacute;diaire de &ldquo;fichiers sp&eacute;ciaux de
- p&eacute;riph&eacute;rique&rdquo;, qui se trouvent dans le r&eacute;pertoire
- <filename>/dev</filename>. Les p&eacute;riph&eacute;riques
- <devicename>sio</devicename> sont adress&eacute;s via
- <filename>/dev/ttyd<replaceable>?</replaceable></filename> (liaisons
- entrantes) et
- <filename>/dev/cua0<replaceable>?</replaceable></filename> (liaisons
- sortantes). Avec les versions 1.1.5 et ult&eacute;rieures de FreeBSD,
- il y a aussi des fichiers sp&eacute;ciaux d'initialisation
- (<filename>/dev/ttyid<replaceable>?</replaceable></filename> et
- <filename>/dev/cuai0<replaceable>?</replaceable></filename>) et
- des fichiers sp&eacute;ciaux de verrouillage
- (<filename>/dev/ttyld<replaceable>?</replaceable></filename> et
- <filename>/dev/cual0<replaceable>?</replaceable></filename>). Les
- fichiers d'initialisation sont utilis&eacute;s pour initialiser les
- param&egrave;tres de communication du port chaque fois qu'il est ouvert,
- comme <literal remap="tt">crtscts</literal> pour les modems qui
- emploient les signaux <literal>CTS/RTS</literal> pour le contr&ocirc;le
- de flux. Les fichiers de verrouillage sont utilis&eacute;s pour
- verrouiller des indicateurs sur les ports pour emp&ecirc;cher les
- utilisateurs ou les programmes de modifier certains param&egrave;tres; voyez
- les pages de manuel de
- <citerefentry><refentrytitle>termios</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> et
- <citerefentry><refentrytitle>stty</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- pour plus d'informations sur le param&eacute;trage des terminaux, le
- verrouillage et l'initialisation des p&eacute;riph&eacute;riques et la d&eacute;finition
- des options pour les terminaux, respectivement.</para>
-
- <sect3>
- <title>Cr&eacute;er les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;rique</title>
-
- <para>La proc&eacute;dure <command>MAKEDEV</command> du r&eacute;pertoire
- <filename>/dev</filename> g&egrave;re les fichiers sp&eacute;ciaux de
- p&eacute;riph&eacute;rique. (Les pages de manuel
- <citerefentry><refentrytitle>MAKEDEV</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- de FreeBSD 1.1.5 comportent pas mal d'erreurs sur ce qui concerne
- les ports <acronym>COM</acronym>, donc ignorez-les.) Pour utiliser
- <command>MAKEDEV</command> pour cr&eacute;er les fichiers sp&eacute;ciaux de
- p&eacute;riph&eacute;rique pour les connexions sur
- <devicename>COM1:</devicename> (port 0), allez avec
- <command>cd</command> dans <filename>/dev</filename> et tapez la
- commande <command>MAKEDEV ttyd0</command>. De m&ecirc;me, pour cr&eacute;er
- les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;rique pour
- <devicename>COM2:</devicename> (port 1), utilisez
- <command>MAKEDEV ttyd1</command>.</para>
-
- <para>La commande <command>MAKEDEV</command> ne cr&eacute;e pas uniquement
- les fichiers
- <filename>/dev/ttyd<replaceable>?</replaceable></filename>,
- mais aussi les fichiers
- <filename>/dev/cua0<replaceable>?</replaceable></filename>
- (et tous les fichiers d'initialisation et de verrouillage &agrave; partir
- de la version 1.1.5 de FreeBSD)
- et supprime le fichier sp&eacute;cial pour le terminal physique
- <filename>/dev/tty0<replaceable>?</replaceable></filename>,
- s'il existe.</para>
-
- <para>Apr&egrave;s avoir cr&eacute;&eacute; les nouveaux fichiers sp&eacute;ciaux de
- p&eacute;riph&eacute;rique, v&eacute;rifiez les droits sur ces fichiers (en
- particulier sur les fichiers <filename>/dev/cua*</filename>)
- pour vous assurer que seuls les utilisateurs qui doivent y
- acc&eacute;der peuvent lire et &eacute;crire dessus&nbsp;-&nbsp;vous ne voulez
- probablement pas que l'utilisateur ordinaire puisse utiliser
- vos modems pour se connecter &agrave; l'ext&eacute;rieur. Les autorisations
- par d&eacute;faut sur les fichiers <filename>/dev/cua*</filename>
- devraient suffire:</para>
-
- <informalexample>
- <screen>crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cua01
-crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuai01
-crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cual01</screen>
- </informalexample>
-
- <para>Ces droits autorisent l'utilisateur <username>uucp</username>
- et les utilisateurs du groupe <username>dialer</username> &agrave; se
- servir des p&eacute;riph&eacute;riques d'appel vers l'ext&eacute;rieur.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Fichiers de Configuration</title>
-
- <para>Il y a trois fichiers de configuration du syst&egrave;me dans le
- r&eacute;pertoire <filename>/etc</filename> que vous devrez probablement
- &eacute;diter pour autoriser les acc&egrave;s t&eacute;l&eacute;phoniques &agrave; votre syst&egrave;me
- FreeBSD. Le premier, <filename>/etc/gettytab</filename>, contient
- les informations de configuration pour le &ldquo;d&eacute;mon&rdquo;
- <filename>/usr/libexec/getty</filename>. Le second,
- <filename>/etc/ttys</filename> contient les informations qui disent
- &agrave; <filename>/sbin/init</filename> sur quels p&eacute;riph&eacute;riques
- <filename>tty</filename> doivent s'ex&eacute;cuter des processus
- <command>getty</command>. Enfin, vous pouvez mettre les commandes
- d'initialisation de ports dans la proc&eacute;dure
- <filename>/etc/rc.serial</filename> si vous utilisez FreeBSD
- 1.1.5.1 ou ult&eacute;rieurs; sinon, vous pouvez initialiser les ports
- dans la proc&eacute;dure <filename>/etc/rc.local</filename>.</para>
-
- <para>Il y a deux &eacute;coles de pens&eacute;e pour ce qui concerne la
- configuration des modems sous Unix. La premi&egrave;re pr&eacute;f&egrave;re
- configurer ses syst&egrave;mes et ses modems de fa&ccedil;on &agrave; ce que quelque
- soit la vitesse &agrave; laquelle l'utilisateur se connecte, l'interface
- RS-232 entre le syst&egrave;me et le modem travaille toujours &agrave; la m&ecirc;me
- vitesse. L'avantage de cette m&eacute;thode est que l'utilisateur distant
- obtient toujours imm&eacute;diatement l'invite de session. L'inconv&eacute;nient
- est que le syst&egrave;me ne sait pas quelle est la vitesse r&eacute;elle de la
- connexion, de sorte que les programmes plein-&eacute;cran comme Emacs
- n'adaptent pas leur mode d'affichage pour am&eacute;liorer leurs temps de
- r&eacute;ponse avec des connexions lentes.</para>
-
- <para>L'autre &eacute;cole configure les interfaces RS-232 de ses modems de
- fa&ccedil;on &agrave; ce qu'elles adaptent leur vitesse en fonction de la vitesse
- de la connexion de l'utilisateur. Par exemple, les connexions
- V.32bis (14.4 Kbps) au modem feront fonctionner l'interface RS-232
- du modem &agrave; 19.2 Kbps, alors que les connexions &agrave; 2400 bps la feront
- fonctionner &agrave; 2400 bps. Comme <command>getty</command> ne comprend
- pas les informations que fournit le modem sur sa vitesse,
- <command>getty</command> affiche le message <prompt>login:</prompt>
- &agrave; la vitesse initiale et consulte la r&eacute;ponse qu'il re&ccedil;oit. Si les
- utilisateurs voient n'importe quoi, ils sont cens&eacute;s savoir qu'ils
- doivent appuyer sur la touche <literal>&lt;Entr&eacute;e&gt;</literal>
- jusqu'&agrave; ce qu'ils obtiennent une invite lisible. Si les vitesses
- ne correspondent pas, <command>getty</command> re&ccedil;oit n'importe
- quoi quoi que l'utilisateur tape, essaie de passer &agrave; la vitesse
- suivante et renvoie l'invite <prompt>login:</prompt>. Cela peut
- durer ind&eacute;finiment, mais il suffit normalement d'un ou deux essais
- pour que l'utilisateur obtienne le message correct. Bien entendu,
- cette m&eacute;thode d'ouverture de session n'est pas aussi propre que la
- premi&egrave;re, mais un utilisateur dont la connexion est lente obtiendra
- de meilleurs temps de r&eacute;ponse des logiciels plein-&eacute;cran.</para>
-
- <para>L'auteur essaiera de donner des informations de configuration
- objectives, mais la m&eacute;thode qui consiste &agrave; ajuster la vitesse
- du modem &agrave; celle de la connexion a sa pr&eacute;f&eacute;rence.</para>
-
- <sect3>
- <title><filename>/etc/gettytab</filename></title>
-
- <para><filename>/etc/gettytab</filename> est un fichier de type
- <citerefentry><refentrytitle>termcap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- qui contient les informations de configuration de
- <citerefentry><refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- Reportez-vous s'il vous pla&icirc;t aux pages de manuel de
- <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- pour une description compl&egrave;te du format de ce fichier et la liste
- des fonctionnalit&eacute;s.</para>
-
- <sect4>
- <title>Configuration &agrave; vitesse fix&eacute;e</title>
-
- <para>Si vous verrouillez la vitesse de communication avec votre
- modem &agrave; une valeur donn&eacute;e, vous n'aurez probablement pas &agrave;
- modifier le fichier <filename>/etc/gettytab</filename>.</para>
-
- </sect4>
-
- <sect4>
- <title>Configuration avec adaptation de la vitesse</title>
-
- <para>Vous devrez d&eacute;finir une entr&eacute;e dans
- <filename>/etc/gettytab</filename> pour fournir &agrave;
- <command>getty</command> des informations sur la vitesse &agrave;
- laquelle vous voulez utiliser votre modem. Si vous avez un modem
- 2400 bps, vous pouvez probablement utiliser l'entr&eacute;e
- <literal>D2400</literal>. Cette entr&eacute;e existe d&eacute;j&agrave; dans le
- fichier <filename>gettytab</filename> de FreeBSD 1.1.5.1, vous
- n'avez pas besoin de l'ajouter, &agrave; moins qu'elle n'existe pas
- dans votre version de FreeBSD:</para>
-
- <programlisting>
-#
-# Terminaux (via t&eacute;l&eacute;phone) rapides
-# s&eacute;lection 2400/1200/300 (dans l'un ou l'autre sens)
-#
-D2400|d2400|Acc&egrave;s-Rapide-2400:\
- :nx=D1200:tc=2400-baud:
-3|D1200|Acc&egrave;s-Rapide-1200:\
- :nx=D300:tc=1200-baud:
-5|D300|Acc&egrave;s-Rapide-300:\
- :nx=D2400:tc=300-baud:
- </programlisting>
-
- <para>Si vous avez un modem plus rapide, vous devrez certainement
- ajouter une entr&eacute;e &agrave; <filename>/etc/gettytab</filename>; voici
- ce que vous pourriez utiliser pour un modem &agrave; 14.4 Kbps pour
- une vitesse maximum de l'interface de 19.2 Kbps:</para>
-
- <programlisting>
-#
-# Ajouts pour un modem V.32bis
-#
-um|V300|Modem Grande Vitesse &agrave; 300,8-bit:\
- :nx=V19200:tc=std.300:
-un|V1200|Modem Grande Vitesse &agrave; 1200,8-bit:\
- :nx=V300:tc=std.1200:
-uo|V2400|Modem Grande Vitesse &agrave; 2400,8-bit:\
- :nx=V1200:tc=std.2400:
-up|V9600|Modem Grande Vitesse &agrave; 9600,8-bit:\
- :nx=V2400:tc=std.9600:
-uq|V19200|Modem Grande Vitesse &agrave; 19200,8-bit:\
- :nx=V9600:tc=std.19200:
- </programlisting>
-
- <para>Avec FreeBSD 1.1.5 et ult&eacute;rieurs, cela donnera une connexion
- 8-bit sans contr&ocirc;le de parit&eacute;. Avec FreeBSD 1.1, ajoutez les
- param&egrave;tres <literal>:np:</literal> aux entr&eacute;es
- <literal>std.<replaceable>xxx</replaceable></literal>
- en d&eacute;but de fichier, pour 8 bits, sans parit&eacute;; sinon, le
- param&egrave;trage par d&eacute;faut est &agrave; 7 bits, parit&eacute; paire.</para>
-
- <para>Avec l'exemple ci-dessus, la communication se fait
- initialement &agrave; 19.2 Kbps (pour une connexion V.32bis), puis
- passe &agrave; 9600 bps (pour V.32), 2400 bps, 1200 bps, 300 bps, et de
- nouveau &agrave; 19.2 Kbps. Ce parcours des vitesses est impl&eacute;ment&eacute;
- par la fonctionnalit&eacute; <literal>nx=</literal> (&ldquo;next
- table&rdquo;&nbsp;-&nbsp;table suivante). Chaque ligne
- comporte une entr&eacute;e <literal>tc=</literal> (&ldquo;table
- continuation&rdquo;&nbsp;-&nbsp;suite de la table) pour utiliser
- le reste de la configuration &ldquo;standard&rdquo; pour
- une vitesse donn&eacute;e.</para>
-
- <para>Si vous avez un modem &agrave; 28.8 Kbps modem et/ou voulez
- profiter de la compression sur un modem &agrave; 14.4 Kbps,
- vous devez utiliser une vitesse de communication sup&eacute;rieure &agrave;
- 19.2 Kbps. Voici un exemple d'entr&eacute;e
- <filename>gettytab</filename> commen&ccedil;ant &agrave; 57.6 Kbps:</para>
-
- <programlisting>
-#
-# Ajout pour un modem V.32bis ou V.34
-# On commence &agrave; 57.6 Kbps
-#
-vm|V300|Modem Tr&egrave;s Grande Vitesse &agrave; 300,8-bit:\
- :nx=V19200:tc=std.300:
-vn|V1200|Modem Tr&egrave;s Grande Vitesse &agrave; 1200,8-bit:\
- :nx=V300:tc=std.1200:
-vo|V2400|Modem Tr&egrave;s Grande Vitesse &agrave; 2400,8-bit:\
- :nx=V1200:tc=std.2400:
-vp|V9600|Modem Tr&egrave;s Grande Vitesse &agrave; 9600,8-bit:\
- :nx=V2400:tc=std.9600:
-vq|V57600|Modem Tr&egrave;s Grande Vitesse &agrave; 57600,8-bit:\
- :nx=V2400:tc=std.9600:
- </programlisting>
-
- <para>Si vous avez une CPU lente ou un syst&egrave;me tr&egrave;s charg&eacute; et pas
- de port s&eacute;rie &agrave; base de 16550, vous aurez peut-&ecirc;tre des erreurs
- &ldquo;silo&rdquo; de sio &agrave; 57.6 Kbps.</para>
-
- </sect4>
- </sect3>
-
- <sect3
- id="dialup-ttys">
- <title><filename>/etc/ttys</filename></title>
-
- <para><filename>/etc/ttys</filename> est la liste des
- <filename>ttys</filename> qu'<command>init</command> doit g&eacute;rer.
- <filename>/etc/ttys</filename> fournit aussi des informations
- de s&eacute;curit&eacute; &agrave; <command>login</command> (le super-utilisateur
- <username>root</username> ne peut ouvrir de session que sur des
- <filename>ttys</filename> mentionn&eacute;s comme
- <literal>secure</literal>). Voyez les pages de manuel de
- <citerefentry><refentrytitle>ttys</refentrytitle><manvolnum>5</manvolnum></citerefentry> pour plus d'informations.</para>
-
- <para>Vous devrez soit modifier les lignes existantes de
- <filename>/etc/ttys</filename>, soit ajouter de nouvelles lignes,
- pour qu'<command>init</command> ex&eacute;cute automatiquement
- les processus <command>getty</command> sur vos nouveaux ports
- d'appel. Le format g&eacute;n&eacute;ral de la ligne sera le m&ecirc;me, que vous
- utilisiez une configuration avec vitesse verrouilll&eacute;e ou
- non:</para>
-
- <programlisting>
-ttyd0 "/usr/libexec/getty xxx" dialup on
- </programlisting>
-
- <para>Le premier champ de la ligne ci-dessus est le fichier sp&eacute;cial
- de p&eacute;riph&eacute;rique pour cette entr&eacute;e - <literal>ttyd0</literal>
- signifie que <filename>/dev/ttyd0</filename> est le fichier que ce
- <command>getty</command> surveillera. Le second champ,
- <literal>"/usr/libexec/getty
- <replaceable>xxx</replaceable>"</literal>
- (<replaceable>xxx</replaceable> est &agrave; remplacer par la
- fonctionnalit&eacute; initiale de <filename>gettytab</filename>) est le
- processus qu'<command>init</command> lancera pour ce p&eacute;riph&eacute;rique.
- Le troisi&egrave;me champ, <literal>dialup</literal>, est le type de
- terminal par d&eacute;faut. Le quatri&egrave;me param&egrave;tre,
- <literal>on</literal>, indique &agrave; <command>init</command> que cette
- ligne est op&eacute;rationnelle. Il peut y avoir un cinqui&egrave;me param&egrave;tre,
- <literal>secure</literal>, mais il ne faut l'utiliser que pour
- les terminaux qui sont physiquement &ldquo;s&eacute;curis&eacute;s&rdquo;,
- comme la console syst&egrave;me.</para>
-
- <para>Le type de terminal par d&eacute;faut (<literal>dialup</literal> dans
- l'exemple pr&eacute;c&eacute;dent) peut d&eacute;pendre de vos pr&eacute;f&eacute;rences.
- <literal>dialup</literal> est le terminal
- par d&eacute;faut traditionnel pour les lignes t&eacute;l&eacute;phoniques, de fa&ccedil;on
- &agrave; ce que les utilisateurs puissent adapter leur proc&eacute;dure
- d'ouverture de session pour qu'elle sache que c'est un terminal
- <literal>dialup</literal> et ajuste en cons&eacute;quence son type de
- de terminal. L'auteur pr&eacute;f&egrave;re quant &agrave; lui utiliser
- <literal>vt102</literal> comme type de terminal par d&eacute;faut sur
- son site, car ses utilisateurs emploient l'&eacute;mulation VT102 sur
- leurs syst&egrave;mes distants.</para>
-
- <para>Apr&egrave;s avoir modifi&eacute;
- <filename>/etc/ttys</filename>, vous pouvez envoyer au processus
- <command>init</command> un signal <acronym>HUP</acronym>
- pour qu'il relise le fichier. Utilisez la commande:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>kill -1 1</userinput></screen>
- </informalexample>
-
- <para>pour envoyer ce signal. Si c'est la premi&egrave;re fois que vous
- configurer ce syst&egrave;me, vous pouvez toutefois attendre que vos
- modems soient correctement configur&eacute;s et connect&eacute;s avant
- d'envoyer un signal &agrave; <command>init</command>.</para>
-
- <sect4>
- <title>Configuration &agrave; vitesse fix&eacute;e</title>
-
- <para>Dans une configuration o&ugrave; la vitesse est fix&eacute;e, il faut
- une entr&eacute;e destin&eacute;e &agrave; <command>getty</command> dans le fichier
- <filename>ttys</filename>. Avec un modem pour lequel la vitesse
- du port s&eacute;rie est fix&eacute;e &agrave; 19.2 Kbps, l'entr&eacute;e de
- <filename>ttys</filename> ressemblera &agrave;:</para>
-
- <programlisting>
-ttyd0 "/usr/libexec/getty std.19200" dialup on
- </programlisting>
-
- <para>Si vous utilisez une vitesse diff&eacute;rente, remplacez
- l'entr&eacute;e <literal>std.19200</literal> par l'entr&eacute;e
- <literal>std.<replaceable>vitesse</replaceable></literal>
- appropri&eacute;e &agrave; la vitesse de transmission de votre modem
- d'apr&egrave;s la d&eacute;finition qui en est donn&eacute;e dans le fichier
- <filename>/etc/gettytab</filename>.</para>
-
- </sect4>
-
- <sect4>
- <title>Configuration avec adaptation de la vitesse</title>
-
- <para>Dans une configuration o&ugrave; la vitesse s'adapte &agrave; celle
- de la connexion, l'entr&eacute;e dans votre fichier
- <filename>ttys</filename> doit faire r&eacute;f&eacute;rence &agrave; l'entr&eacute;e
- &ldquo;auto-baud&rdquo; (sic) initiale de
- <filename>/etc/gettytab</filename>. Avec l'exemple donn&eacute;
- plus haut pour une configuration avec adaptation de la
- vitesse commen&ccedil;ant &agrave; 19.2 Kbps (entr&eacute;e de
- <filename>gettytab</filename> avec <literal>V19200</literal>
- pour point de d&eacute;part), l'entr&eacute;e de
- <filename>ttys</filename> ressemblera &agrave;:</para>
-
- <programlisting>
-ttyd0 "/usr/libexec/getty V19200" dialup on
- </programlisting>
- </sect4>
- </sect3>
-
- <sect3>
- <title><filename>/etc/rc.serial</filename> ou
- <filename>/etc/rc.local</filename></title>
-
- <para>Les modems &agrave; haut d&eacute;bit, comme les modems V.32, V.32bis,
- et V.34, doivent utiliser le contr&ocirc;le de flux mat&eacute;riel
- (<filename>RTS/CTS</filename>). Vous pouvez ajouter des commandes
- <command>stty</command> dans <filename>/etc/rc.serial</filename>,
- pour FreeBSD 1.1.5.1 et ult&eacute;rieurs, ou
- <filename>/etc/rc.local</filename> pour FreeBSD 1.1, pour
- positionner l'indicateur de contr&ocirc;le de flux mat&eacute;riel du noyau
- de FreeBSD sur les ports o&ugrave; sont les modems.</para>
-
- <para>Voici un extrait d'un fichier
- <filename>/etc/rc.serial</filename> d'exemple pour un syst&egrave;me
- FreeBSD 1.1.5.1:</para>
-
- <programlisting>
-#!/bin/sh
-#
-# Configuration initiale des ports s&eacute;rie
-
-stty -f /dev/ttyid1 crtscts
-stty -f /dev/cuai01 crtscts
- </programlisting>
-
- <para>Cela positionne l'indicateur <literal>crtscts</literal>
- de <literal>termios</literal> pour les fichiers sp&eacute;ciaux
- d'initialisation des connexions entrantes et sortantes
- sur le port s&eacute;rie num&eacute;ro 1
- (<devicename>COM2:</devicename>).</para>
-
- <para>Sur un vieux syst&egrave;me FreeBSD 1.1, ces entr&eacute;es devaient
- &ecirc;tre ajout&eacute;es au fichier <filename>/etc/rc.local</filename> pour
- positionner l'indicateur <literal>crtscts</literal> pour les
- p&eacute;riph&eacute;riques:</para>
-
- <programlisting>
-# Configurer les ports s&eacute;rie pour utiliser le contr&ocirc;le de flux RTS/CTS
-stty -f /dev/ttyd0 crtscts
-stty -f /dev/ttyd1 crtscts
-stty -f /dev/ttyd2 crtscts
-stty -f /dev/ttyd3 crtscts
- </programlisting>
-
- <para>Comme il n'y avait pas de fichiers sp&eacute;ciaux d'initialisation
- dans FreeBSD 1.1, il suffisait de positionner les indicateurs
- pour les fichiers sp&eacute;ciaux de p&eacute;riph&eacute;riques, et d'esp&eacute;rer qu'ils
- ne seraient pas r&eacute;initialis&eacute;s par un petit malin.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Configuration des modems</title>
-
- <para>Si vous avez un modem dont le param&eacute;trage est enregistr&eacute; en
- m&eacute;moire RAM non volatile, vous devrez utiliser un programme de
- terminal (comme Telix sous PC-DOS ou <command>tip</command> sous
- FreeBSD) pour d&eacute;finir ces param&egrave;tres. Connectez-vous au modem &agrave;
- la vitesse de communication initiale que
- <command>getty</command> utilise et introduisez en m&eacute;moire RAM
- non volatile des valeurs telles que:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Le signal <abbrev>CD</abbrev> soit activ&eacute; quand la
- ligne est active,</para>
- </listitem>
-
- <listitem>
- <para>Le signal <abbrev>DTR</abbrev> soit activ&eacute; en cours de
- fonctionnement; quand le signal <abbrev>DTR</abbrev> tombe, la
- ligne raccroche et le modem est r&eacute;initialis&eacute;,</para>
- </listitem>
-
- <listitem>
- <para>Le signal <abbrev>CTS</abbrev> soit activ&eacute; en fin de
- transmission,</para>
- </listitem>
-
- <listitem>
- <para>Le contr&ocirc;le de flux <filename>XON/XOFF</filename> soit
- d&eacute;sactiv&eacute;,</para>
- </listitem>
-
- <listitem>
- <para>Le signal <abbrev>RTS</abbrev> soit activ&eacute; en fin de
- r&eacute;ception,</para>
- </listitem>
-
- <listitem>
- <para>Le modem soit en mode silencieux (pas de code
- retour),</para>
- </listitem>
-
- <listitem>
- <para>Il n'y ait pas d'&eacute;cho des commandes.</para>
- </listitem>
-
- </itemizedlist>
-
-
- <para>Lisez s'il vous pla&icirc;t la documentation de votre modem
- pour savoir quelles commandes et/ou quels positionnements des
- cavaliers utiliser.</para>
-
- <para>Par exemple, pour passer ces param&egrave;tres &agrave; un modem externe
- USRobotics Sportster 14.400, il faudrait lui passer les commandes
- suivantes:</para>
-
-
- <programlisting>
-ATZ
-AT&amp;C1&amp;D2&amp;H1&amp;I0&amp;R2&amp;W
- </programlisting>
-
- <para>Vous pouvez aussi en profiter pour d&eacute;finir d'autres options
- de configuration du modem, par exemple, s'il doit utiliser la norme
- V.42bis et/ou la compression MNP5.</para>
-
- <para>Il y a aussi des cavaliers &agrave; positionner sur le modem externe
- USR Sportster 14.400; pour d'autres modems, la configuration
- suivante peut peut-&ecirc;tre servir d'exemple:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Cavalier 1: HAUT - DTR normal,</para>
- </listitem>
-
- <listitem>
- <para>Cavalier 2: Pas d'importance (Codes retour
- explicites/num&eacute;riques),</para>
- </listitem>
-
- <listitem>
- <para>Cavalier 3: HAUT - Pas de code retour,</para>
- </listitem>
-
- <listitem>
- <para>Cavalier 4: BAS - Pas d'&eacute;cho, commandes hors-ligne,</para>
- </listitem>
-
- <listitem>
- <para>Cavalier 5: HAUT - R&eacute;ponse automatique,</para>
- </listitem>
-
- <listitem>
- <para>Cavalier 6: HAUT - D&eacute;tection de porteuse normale,</para>
- </listitem>
-
- <listitem>
- <para>Cavalier 7: HAUT - Charger les valeurs par d&eacute;faut depuis
- la NVRAM (m&eacute;moire non volatile),</para>
- </listitem>
-
- <listitem>
- <para>Cavalier 8: Pas d'importance (Mode
- intelligent/passif).</para>
- </listitem>
-
- </itemizedlist>
-
-
- <para>Il vaut mieux d&eacute;sactiver les codes retours pour les connexions
- entrantes pour &eacute;viter les probl&egrave;mes qui peuvent se produire si
- <command>getty</command> envoie une invite <prompt>login:</prompt>
- alors que le modem est en mode commande et renvoie soit l'&eacute;cho de
- la commande soit un code retour. J'ai entendu dire que cela peut
- engendrer une dialogue absurde et interminable entre
- <command>getty</command> et le modem.</para>
-
-
- <sect3>
- <title>Configuration &agrave; vitesse fix&eacute;e</title>
-
- <para>Pour une configuration &agrave; vitesse fix&eacute;e, vous devrez
- configurer le modem pour qu'il communique toujours &agrave; la
- m&ecirc;me vitesse avec l'ordinateur, quelle que soit la vitesse
- de la ligne. Sur un modem externe USR Sportster
- 14.400, les commandes suivantes figeront la vitesse
- de communication entre le modem et l'ordinateur &agrave; la vitesse
- utilis&eacute;e pour envoyer ces commandes:</para>
-
- <programlisting>
-ATZ
-AT&amp;B1&amp;W
- </programlisting>
- </sect3>
-
- <sect3>
- <title>Configuration avec adaptation de la vitesse</title>
-
- <para>Dans une configuration o&ugrave; la vitesse peut varier, vous
- devrez configurer votre modem pour qu'il ajuste sa vitesse
- de communication sur le port s&eacute;rie &agrave; la vitesse de l'appel
- entrant. Sur un modem externe USR Sportster 14.400, les
- commandes suivantes figeront la vitesse de transmission avec
- corrections d'erreur &agrave; la vitesse employ&eacute;e pour passer ces
- m&ecirc;mes commandes, mais autoriseront une vitesse variable pour
- les connexions sans correction d'erreur:</para>
-
- <programlisting>
-ATZ
-AT&amp;B2&amp;W
- </programlisting>
- </sect3>
-
- <sect3>
- <title>V&eacute;rifier la configuration des modems</title>
-
- <para>La plupart des modems &agrave; haut d&eacute;bit disposent de commandes
- pour afficher leurs param&egrave;tres op&eacute;rationnels courants sous
- une forme plus ou moins lisible. Sur les modems externes
- USR Sportster 14.400, la commande <command>ATI5</command>
- affiche les valeurs stock&eacute;es dans la RAM non volatile. Pour
- voir les valeurs r&eacute;ellement utilis&eacute;es (compte tenu de la
- position des cavaliers), utilisez les commandes
- <command>ATZ</command> suivie de <command>ATI4</command>.</para>
-
- <para>Si vous avez une autre marque de modem, consultez le manuel
- de votre modem pour savoir comment v&eacute;rifier les param&egrave;tres de
- configuration de votre modem.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>En cas de probl&egrave;me</title>
-
- <para>Voici diff&eacute;rentes &eacute;tapes &agrave; suivre pour v&eacute;rifier le
- fonctionnement des modems sur votre syst&egrave;me.</para>
-
- <sect3>
- <title>Tester le syst&egrave;me FreeBSD</title>
-
- <para>Connectez le modem &agrave; votre syst&egrave;me FreeBSD, red&eacute;marrez le
- syst&egrave;me, et, si votre modem a des voyants d'&eacute;tat lumineux,
- regardez si le voyant <abbrev>DTR</abbrev> s'allume lorsque
- l'invite <prompt>login:</prompt> s'affiche &agrave; la console
- syst&egrave;me - si c'est la cas, cela veut normalement dire que
- FreeBSD a lanc&eacute; un processus <command>getty</command> sur le port
- de communication appropri&eacute; et attend que le modem re&ccedil;oive un
- appel.</para>
-
- <para>Si le voyant <abbrev>DTR</abbrev> ne s'allume pas, ouvrez une
- session &agrave; la console syst&egrave;me et passez la commande
- <command>ps ax</command> pour voir si FreeBSD essaie bien de
- lancer un processus <command>getty</command> sur le bon port.
- Parmi les processus affich&eacute;s, vous devriez voir une ligne comme
- celle-ci:</para>
-
- <informalexample>
- <screen> 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
- 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1</screen>
- </informalexample>
-
- <para>Si vous voyez autre chose, par exemple:
-
- <informalexample>
- <screen> 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0</screen>
- </informalexample>
-
- et que le modem n'a pas encore re&ccedil;u d'appel, cela veut dire que
- <command>getty</command> a d&eacute;j&agrave; ouvert le port de communication.
- Cela peut &ecirc;tre d&ucirc; &agrave; un probl&egrave;me de c&acirc;blage ou &agrave; un modem mal
- configur&eacute;, parce que <command>getty</command> ne devrait pas
- pouvoir ouvrir le port de communication tant que le signal
- <abbrev>CD</abbrev> (d&eacute;tection de porteuse) n'a pas &eacute;t&eacute; activ&eacute;
- par le modem.</para>
-
- <para>S'il n'y a pas de processus <command>getty</command>
- pr&ecirc;t &agrave; ouvrir le port
- <filename>ttyd<replaceable>?</replaceable></filename> voulu,
- contr&ocirc;lez vos entr&eacute;es dans <filename>/etc/ttys</filename> pour
- voir s'il n'y a pas d'erreur. Consultez aussi le fichier de trace
- <filename>/var/log/messages</filename> pour voir s'il y a des
- messages d'<command>init</command> ou de
- <command>getty</command> indiquant un probl&egrave;me. S'il y a des
- messages, rev&eacute;rifiez les fichiers de configuration
- <filename>/etc/ttys</filename> et
- <filename>/etc/gettytab</filename>, et les fichiers sp&eacute;ciaux
- de p&eacute;riph&eacute;riques <filename>/dev/ttyd?</filename> ad hoc, pour
- voir s'il y a des erreurs, s'il manque des entr&eacute;es ou des
- fichiers sp&eacute;ciaux.</para>
-
- </sect3>
-
- <sect3>
- <title>Essayer de se connecter</title>
-
- <para>Essayez d'ouvrir une connexion par t&eacute;l&eacute;phone sur le syst&egrave;me;
- Veillez &agrave; utiliser 8 bits, pas de contr&ocirc;le de parit&eacute; et
- 1 bit stop sur le syst&egrave;me distant. Si vous n'obtenez pas tout de
- suite l'invite, ou obtenez n'importe quoi, essayez d'appuyer
- plusieurs fois sur <literal>&lt;Entr&eacute;e&gt;</literal>, environ une
- fois par seconde. Si vous n'obtenez toujours pas l'invite
- <prompt>login:</prompt>, essayez d'envoyer un
- <command>Attn</command> (<command>BREAK</command>). Si vous
- utilisez un modem &agrave; haut d&eacute;bit, r&eacute;essayez de vous connecter
- apr&egrave;s avoir verrouill&eacute; la vitesse de l'interface du modem,
- (via <command>AT&amp;B1</command> sur un USR Sportster, par
- exemple).</para>
-
- <para>Si cela ne marche toujours pas, v&eacute;rifiez encore le fichier
- <filename>/etc/gettytab</filename> et contr&ocirc;lez que:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Le nom de la fonctionnalit&eacute; initiale de
- <filename>/etc/ttys</filename> pour cette liaison correspond
- bien &agrave; celui d'une fonctionnalit&eacute; d&eacute;finie dans
- <filename>/etc/gettytab</filename>,</para>
- </listitem>
-
- <listitem>
- <para>Il y a une fonctionnalit&eacute; <filename>gettytab</filename>
- de nom diff&eacute;rent pour chaque entr&eacute;e
- <literal>nx=</literal>,</para>
- </listitem>
-
- <listitem>
- <para>Il y a une fonctionnalit&eacute; <filename>gettytab</filename>
- de nom diff&eacute;rent pour chaque entr&eacute;e
- <literal>tc=</literal>,</para>
- </listitem>
-
- </itemizedlist>
-
- <para>Si vous appelez mais que le modem sur le syst&egrave;me FreeBSD ne
- r&eacute;pond pas, assurez-vous que le modem est configur&eacute; pour r&eacute;pondre
- au t&eacute;l&eacute;phone lorsque le signal <abbrev>DTR</abbrev> est actif. Si
- le modem semble correctement configur&eacute;, v&eacute;rifiez que le signal
- <abbrev>DTR</abbrev> est actif en regardant les voyants lumineux
- du modem (s'il en a).</para>
-
- <para>Si vous avez tout pass&eacute; en revue plusieurs fois et que cela
- ne marche toujours pas, faites une pause et reprenez plus tard.
- Si vous en &ecirc;tes toujours au m&ecirc;me point, vous pouvez peut-&ecirc;tre
- envoyer un courrier &eacute;lectronique &agrave; la &a.questions; d&eacute;crivant
- votre modem et votre probl&egrave;me, et les bons samaritains de la
- liste essaieront de vous aider.</para>
-
- </sect3>
- </sect2>
-
- <sect2>
- <title>Remerciements</title>
-
- <para>Merci aux personnes suivantes pour leurs conseils et leurs
- commentaires:</para>
-
- <variablelist>
- <varlistentry><term>&a.kelly;</term>
- <listitem>
- <para>pour nombre d'excellentes suggestions.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
-
- </sect2>
- </sect1>
-
- <sect1 id="dialout">
- <title>Service d'appel sortant</title>
-
- <para><emphasis>Informations reprises de la FAQ.</emphasis></para>
-
- <para>Cette section fournit des indications pour connecter votre
- machine &agrave; une autre machine par modem. Cela peut servir &agrave; ouvrir
- une session sur une machine distante.</para>
-
- <para>C'est aussi utile pour vous connecter &agrave; un &ldquo;BBS&rdquo;.</para>
-
- <para>Ce type de connexion peut &ecirc;tre tr&egrave;s utile pour r&eacute;cup&eacute;rer un
- fichier sur l'Internet si vous avez des probl&egrave;mes avec PPP. Si vous
- avez besoin d'utiliser ftp et que PPP ne fonctionne pas, vous pouvez
- le faire en lan&ccedil;ant ftp sur la session terminal. Utilisez ensuite
- zmodem pour recevoir le fichier sur votre machine.</para>
-
- <sect2>
- <title>Pourquoi ne puis-je pas utiliser <command>tip</command> ou
- <command>cu</command>?</title>
-
- <para>Sur votre syst&egrave;me, les programmes <command>tip</command>
- et <command>cu</command> ne sont probablement ex&eacute;cutables que par
- l'utilisateur <username>uucp</username> et le groupe
- <username>dialer</username>. Vous pouvez vous servir du groupe
- <username>dialer</username> pour contr&ocirc;ler qui a acc&egrave;s &agrave; vos modems
- et &agrave; vos syst&egrave;mes distants. Ajoutez-vous donc au groupe
- <username>dialer</username>.</para>
-
- <para>Vous pouvez aussi autoriser tout le monde &agrave; utiliser
- <command>tip</command> et <command>cu</command> sur votre
- syst&egrave;me en tapant:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
- </informalexample>
-
- <para>Il est inutile de changer les droits sur la
- commande <command>cu</command>, car <command>cu</command> n'est
- qu'un lien physique sur <command>tip</command>.</para>
-
- </sect2>
-
- <sect2>
- <title>Mon modem compatible Hayes n'est pas
- support&eacute;, que puis-je faire?</title>
-
- <para>En fait, les pages de manuel de <command>tip</command>
- ne sont pas &agrave; jour. Le support g&eacute;n&eacute;rique Hayes y est d&eacute;j&agrave; incorpor&eacute;.
- Mettez simplement <literal>at=hayes</literal> dans votre fichier
- <filename>/etc/remote</filename>.</para>
-
- <para>Le pilote Hayes n'est pas assez intelligent pour reconna&icirc;tre
- les possibilit&eacute;s &eacute;tendues des nouveaux messages des
- modems&nbsp;-&nbsp;<literal>BUSY</literal>,
- <literal>NO DIALTONE</literal>, ou <literal>CONNECT 115200</literal> ne feront que lui poser des probl&egrave;mes. Vous devez d&eacute;sactiver ces
- messages quand vous utilisez <command>tip</command> (avec
- <command>ATX0&amp;W</command>).</para>
-
- <para>Par ailleurs, le d&eacute;lai d'appel de <command>tip</command>
- est de 60 secondes. Il devra &ecirc;tre inf&eacute;rieur sur votre modem, sinon
- tip pensera qu'il y a un probl&egrave;me de communication. Essayez
- <command>ATS7=45&amp;W</command>.</para>
-
- <para>Tel que livr&eacute;, <command>tip</command> ne supporte pas
- encore cela compl&egrave;tement. Pour y rem&eacute;dier, il faut &eacute;diter le fichier
- <filename>tipconf.h</filename> du r&eacute;pertoire
- <filename>/usr/src/usr.bin/tip/tip</filename>. Il vous faut
- bien &eacute;videmment le source pour cela.</para>
-
- <para>Changez la ligne <literal>#define HAYES
- 0</literal> en <literal>#define HAYES
- 1</literal>. Puis <command>make</command> et
- <command>make install</command>. Tout fonctionnera ensuite
- sans probl&egrave;me.</para>
-
- </sect2>
-
- <sect2
- id="direct-at">
- <title>Comment dois-je entrer toutes ces commandes AT?</title>
-
- <para>Mettez ce que l'on appelle une entr&eacute;e &ldquo;directe&rdquo;
- dans le fichier <filename>/etc/remote</filename>. Par exemple,
- si votre modem est sur le premier port s&eacute;rie.
- <filename>/dev/cuaa0</filename>, mettez la ligne suivante:</para>
-
- <programlisting>
-cuaa0:dv=/dev/cuaa0:br#19200:pa=none
- </programlisting>
-
- <para>Utilisez la vitesse en bps la plus rapide que votre modem
- accepte avec la fonctionnalit&eacute; br. Tapez alors
- <command>tip cuaa0</command> et vous serez connect&eacute; &agrave; votre
- modem.</para>
-
- <para>S'il n'y a pas de fichier sp&eacute;cial
- <filename>/dev/cuaa0</filename> sur votre syst&egrave;me, faites la
- chose suivante:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>MAKEDEV cuaa0</userinput></screen>
- </informalexample>
-
- <para>Ou utilisez cu en tant que super-utilisateur avec la
- commande:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>cu -l<replaceable>ligne</replaceable> -s<replaceable>vitesse</replaceable></userinput></screen>
- </informalexample>
-
- <para><replaceable>ligne</replaceable> est le port s&eacute;rie
- (e.g. <filename>/dev/cuaa0</filename>)
- et <replaceable>vitesse</replaceable> est
- la vitesse (e.g. <literal>57600</literal>). Quand vous avez fini
- d'entrer vos commandes AT, tapez <command>~.</command>
- pour quitter le programme.</para>
-
- </sect2>
-
- <sect2>
- <title>Le signe <literal>@</literal> ne marche pas avec la fonctionnalit&eacute; pn!</title>
-
- <para>Le signe <literal>@</literal> comme num&eacute;ro de t&eacute;l&eacute;phone
- dit &agrave; tip de lire le num&eacute;ro de t&eacute;l&eacute;phone
- dans <filename>/etc/phones</filename>. Mais
- <literal>@</literal> est aussi un caract&egrave;re sp&eacute;cial dans les
- fichiers qui d&eacute;finissent des fonctionnalit&eacute;s,
- comme <filename>/etc/remote</filename>. Faites-le
- pr&eacute;c&eacute;der d'une barre oblique inverse:</para>
-
- <programlisting>
-pn=\@
- </programlisting>
-
- </sect2>
-
- <sect2>
- <title>Comment puis-je appeler un num&eacute;ro de t&eacute;l&eacute;phone depuis la
- ligne de commande?</title>
-
- <para>Mettez ce que l'on appelle un entr&eacute;e &ldquo;g&eacute;n&eacute;rique&rdquo;
- dans votre fichier <filename>/etc/remote</filename>. Par
- exemple:</para>
-
- <programlisting>
-tip115200|Appeler un num&eacute;ro de t&eacute;l&eacute;phone &agrave; 115200 bps:\
- :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
-tip57600|Appeler un num&eacute;ro de t&eacute;l&eacute;phone &agrave; 57600 bps:\
- :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
- </programlisting>
-
- <para>Vous pouvez alors faire la chose suivante:</para>
-
- <informalexample>
- <screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen>
- </informalexample>
-
- <para>Si vous pr&eacute;f&eacute;rez <command>cu</command> &agrave; <command>tip</command>,
- mettez une entr&eacute;e g&eacute;n&eacute;rique pour cu:
-
- <programlisting>
-cu115200|Utiliser cu pour appeler un num&eacute;ro &agrave; 115200bps:\
- :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
- </programlisting>
- et tapez:
-
- <informalexample>
- <screen>&prompt.root; <userinput>cu 5551234 -s 115200</userinput></screen>
- </informalexample></para>
- </sect2>
-
- <sect2>
- <title>Dois-je pr&eacute;ciser la vitesse en bauds &agrave; chaque fois?</title>
-
- <para>Mettez un entr&eacute;e pour <literal>tip1200</literal> ou
- <literal>cu1200</literal>, mais donnez-y la vitesse en bps
- voulue avec la fonctionnalit&eacute; br. <command>tip</command> pense
- que 1200 bps est une valeur par d&eacute;faut convenable et cherche donc
- une entr&eacute;e <literal>tip1200</literal>. Vous n'&ecirc;tes cependant pas
- oblig&eacute; d'y mettre la vitesse de 1200 bps.</para>
-
- </sect2>
-
- <sect2>
- <title>Je me connecte &agrave; plusieurs machines par l'interm&eacute;diaire d'un
- concentrateur.</title>
-
- <para>Au lieu d'attendre d'&ecirc;tre connect&eacute; et de taper
- <command>CONNECT &lt;h&ocirc;te&gt;</command> &agrave; chaque fois,
- utilisez la fonctionnalit&eacute; <literal>cm</literal> de tip. Par
- exemple, ces entr&eacute;es dans <filename>/etc/remote</filename>:
-
- <programlisting>
-pain|pain.deep13.com|la machine de Forrester:\
- :cm=CONNECT pain\n:tc=deep13:
-muffin|muffin.deep13.com|la machine de Frank:\
- :cm=CONNECT muffin\n:tc=deep13:
-deep13:le concentrateur de l'Institut Gizmonics:\
- :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
- </programlisting>
-
- vous permettent d'utiliser <command>tip pain</command>
- ou <command>tip muffin</command> pour vous connecter aux machines
- pain ou muffin; et <command>tip
- deep13</command> pour acc&eacute;der &agrave; l'autre concentrateur.</para>
-
- </sect2>
-
- <sect2>
- <title>tip peut-il essayer d'appeler plusieurs num&eacute;ros pour
- se connecter &agrave; un m&ecirc;me site?</title>
-
- <para>C'est un probl&egrave;me fr&eacute;quent dans les universit&eacute;s qui ont une
- batterie de modems et des milliers d'&eacute;tudiants qui essayent de
- s'en servir...</para>
-
- <para>D&eacute;finissez une entr&eacute;e pour votre universit&eacute; dans
- <filename>/etc/remote</filename> et employez <literal>@</literal>
- pour la fonctionnalit&eacute; <literal>pn</literal>:</para>
-
- <programlisting>
-super-universite:\
- :pn=\@:tc=dialout
-dialout:\
- :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
- </programlisting>
-
- <para>Mettez ensuite les num&eacute;ros de t&eacute;l&eacute;phone de l'universit&eacute; dans
- <filename>/etc/phones</filename>:</para>
-
- <programlisting>
-super-universite 5551111
-super-universite 5551112
-super-universite 5551113
-super-universite 5551114
- </programlisting>
-
- <para><command>tip</command> essayera d'appeler chacun de ces num&eacute;ros
- dans l'ordre, puis abandonnera la tentative. Si vous voulez
- continuer &agrave; essayer de vous connecter, ex&eacute;cutez
- <command>tip</command> dans une boucle &ldquo;tant
- que&rdquo;.</para>
-
- </sect2>
-
- <sect2>
- <title>pourquoi dois-je taper CTRL+P deux fois pour envoyer un
- seul CTRL+P?</title>
-
- <para>CTRL+P est le caract&egrave;re
- d'&eacute;chappement&nbsp;-&nbsp;&ldquo;force&rdquo; par d&eacute;faut,
- pour dire &agrave; <command>tip</command> que le caract&egrave;re suivant est &agrave;
- comprendre tel quel. Vous pouvez changer de caract&egrave;re d'&eacute;chappement
- avec la commande <command>~s</command>, qui signifie
- &ldquo;d&eacute;finir une variable.&rdquo;</para>
-
- <para>Tapez <command>~sforce=<replaceable>caract&egrave;re</replaceable></command>
- suivie d'un saut de ligne. <replaceable>caract&egrave;re</replaceable> peut
- &ecirc;tre n'importe quel caract&egrave;re. Si vous n'indiquez pas de
- <replaceable>caract&egrave;re</replaceable>, alors le caract&egrave;re
- d'&eacute;chappement est le caract&egrave;re &ldquo;nul&rdquo;, qui s'obtient en
- tapant CTRL+2 ou CTRL+barre d'espacement. Une bonne valeur
- &agrave; donner &agrave; <replaceable>caract&egrave;re</replaceable> est SHIFT+CTRL+6,
- que je n'ai jamais vue utilis&eacute;e ailleurs que sur certains
- concentrateurs.</para>
-
- <para>vous pouvez aussi donner la valeur que vous voulez au caract&egrave;re
- d'&eacute;chappement en mettant la ligne suivante dans votre fichier
- <filename>&#36;HOME/.tiprc</filename>:</para>
-
- <programlisting>
-force=&lt;caract&egrave;re&gt;
- </programlisting>
-
- </sect2>
-
- <sect2>
- <title>Tout ce que je tape s'affiche tout &agrave; coup en
- MAJUSCULES?</title>
-
- <para>Vous avez appuy&eacute; sur CTRL+A, c'est le caract&egrave;re
- &ldquo;majuscules&rdquo; de <command>tip</command>, &agrave; l'usage
- particulier de ceux dont la touche &ldquo;Majuscules&rdquo; ne
- fonctionne pas. Utilisez <command>~s</command> comme pr&eacute;c&eacute;demment et
- donnez une valeur raisonnable &agrave; la variable
- <literal>raisechar</literal>. Vous pouvez d'ailleurs lui donner la
- m&ecirc;me valeur qu'au caract&egrave;re d'&eacute;chappement, si vous n'avez pas
- l'intention de les utiliser l'un et l'autre.</para>
-
- <para>Voici une exemple de fichier <filename>.tiprc</filename> id&eacute;al
- pour les utilisateurs d'<command>Emacs</command> qui ont souvent
- besoin de CTRL+2 et CTRL+A:</para>
-
- <programlisting>
-force=^^
-raisechar=^^
- </programlisting>
-
- <para>^^ &eacute;quivaut &agrave; SHIFT+CTRL+6.</para>
-
- </sect2>
-
- <sect2>
- <title>Comment puis-je transf&eacute;rer des fichiers avec
- <command>tip</command>?</title>
-
- <para>Si vous dialoguez avec un autre syst&egrave;me Unix,
- vous pouvez envoyer
- et recevoir des fichiers avec <command>~p</command>
- (&ldquo;put&rdquo;) et <command>~t</command> (&ldquo;take&rdquo;).
- Ces commandes lancent
- <command>cat</command> et <command>echo</command> sur le syst&egrave;me
- distant pour qu'il re&ccedil;oive et envoie des fichiers. La syntaxe
- est:</para>
-
- <cmdsynopsis>
- <command>~p</command>
- <arg choice="plain">fichier_local</arg>
- <arg choice="opt">fichier_distant</arg>
- </cmdsynopsis>
-
- <cmdsynopsis>
- <command>~t</command>
- <arg choice="plain">fichier_distant</arg>
- <arg choice="opt">fichier_local</arg>
- </cmdsynopsis>
-
- <para>Il n'y a aucun contr&ocirc;le, vous devriez probablement utiliser un
- autre protocole, comme zmodem.</para>
-
- </sect2>
-
- <sect2>
- <title>Comment puis-je utiliser <command>zmodem</command> avec
- <command>tip</command>?</title>
-
- <para>Pour r&eacute;cup&eacute;rer des fichiers, lancez le programmes de transfert
- sur la machine distante. Puis tapez <command>~C rz</command> pour
- commencer &agrave; les recevoir.</para>
-
- <para>Pour transmettre des fichiers, lancer le programme de r&eacute;ception
- sur la machine distante. Puis, tapez <command>~C sz
- <replaceable>fichiers</replaceable></command> pour les lui
- envoyer.</para>
-
- </sect2>
- </sect1>
- </chapter>
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
diff --git a/fr_FR.ISO8859-1/books/handbook/staff/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/staff/chapter.sgml
deleted file mode 100644
index 1a68a2c364..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/staff/chapter.sgml
+++ /dev/null
@@ -1,859 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.17
--->
-
-<!--
- Please try to keep the CVSROOT/avail file in sync with the list of
- FreeBSD developers.
--->
-
-<chapter id="staff">
- <title>L'&eacute;quipe du projet FreeBSD</title>
-
- <para>Le projet FreeBSD est g&eacute;r&eacute; et mis en oeuvre par les
- groupes de personnes suivantes&nbsp;:</para>
-
- <sect1 id="staff-core">
- <title>L'&eacute;quipe de base
- FreeBSD&nbsp;-&nbsp;<foreignphrase>Core Team</foreignphrase></title>
-
- <para>L'&eacute;quipe de base de FreeBSD constitue le &ldquo;Comit&eacute;
- de Direction&rdquo; du projet, responsable de d&eacute;finir les objectifs
- et l'orientation du projet ainsi que de la gestion de
- <link linkend="staff-who">sections sp&eacute;cifiques</link> de l'ensemble
- du projet FreeBSD.</para>
-
- <para>(par ordre alphab&eacute;tique de patronyme)&nbsp;:</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.asami;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmb;</para>
- </listitem>
-
- <listitem>
- <para>&a.ache;</para>
- </listitem>
-
- <listitem>
- <para>&a.bde;</para>
- </listitem>
-
- <listitem>
- <para>&a.gibbs;</para>
- </listitem>
-
- <listitem>
- <para>&a.dg;</para>
- </listitem>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
-
- <listitem>
- <para>&a.phk;</para>
- </listitem>
-
- <listitem>
- <para>&a.rich;</para>
- </listitem>
-
- <listitem>
- <para>&a.gpalmer;</para>
- </listitem>
-
- <listitem>
- <para>&a.jdp;</para>
- </listitem>
-
- <listitem>
- <para>&a.sos;</para>
- </listitem>
-
- <listitem>
- <para>&a.peter;</para>
- </listitem>
-
- <listitem>
- <para>&a.wollman;</para>
- </listitem>
-
- <listitem>
- <para>&a.joerg;</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="staff-committers">
- <title>Les d&eacute;veloppeurs FreeBSD</title>
-
- <para>Ce sont ceux qui ont les droits d'&eacute;criture et effectuent le
- travail d'ing&eacute;nierie sur l'arborescence des sources. Tous les
- membres de l'&eacute;quipe de base sont aussi d&eacute;veloppeurs.</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.ugen;</para>
- </listitem>
-
- <listitem>
- <para>&a.mbarkah;</para>
- </listitem>
-
- <listitem>
- <para>&a.stb;</para>
- </listitem>
-
- <listitem>
- <para>&a.pb;</para>
- </listitem>
-
- <listitem>
- <para>&a.abial;</para>
- </listitem>
-
- <listitem>
- <para>&a.jb;</para>
- </listitem>
-
- <listitem>
- <para>&a.torstenb;</para>
- </listitem>
-
- <listitem>
- <para>&a.dburr;</para>
- </listitem>
-
- <listitem>
- <para>&a.charnier;</para>
- </listitem>
-
- <listitem>
- <para>&a.luoqi;</para>
- </listitem>
-
- <listitem>
- <para>&a.ejc;</para>
- </listitem>
-
- <listitem>
- <para>&a.kjc;</para>
- </listitem>
-
- <listitem>
- <para>&a.gclarkii;</para>
- </listitem>
-
- <listitem>
- <para>&a.archie</para>
- </listitem>
-
- <listitem>
- <para>&a.cracauer;</para>
- </listitem>
-
- <listitem>
- <para>&a.adam;</para>
- </listitem>
-
- <listitem>
- <para>&a.dillon;</para>
- </listitem>
-
- <listitem>
- <para>&a.dufault;</para>
- </listitem>
-
- <listitem>
- <para>&a.uhclem;</para>
- </listitem>
-
- <listitem>
- <para>&a.tegge;</para>
- </listitem>
-
- <listitem>
- <para>&a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>&a.julian;</para>
- </listitem>
-
- <listitem>
- <para>&a.rse;</para>
- </listitem>
-
- <listitem>
- <para>&a.se;</para>
- </listitem>
-
- <listitem>
- <para>&a.sef;</para>
- </listitem>
-
- <listitem>
- <para>&a.fenner;</para>
- </listitem>
-
- <listitem>
- <para>&a.jfieber;</para>
- </listitem>
-
- <listitem>
- <para>&a.jfitz;</para>
- </listitem>
-
- <listitem>
- <para>&a.scrappy;</para>
- </listitem>
-
- <listitem>
- <para>&a.lars;</para>
- </listitem>
-
- <listitem>
- <para>&a.dirk;</para>
- </listitem>
-
- <listitem>
- <para>&a.shige;</para>
- </listitem>
-
- <listitem>
- <para>&a.billf;</para>
- </listitem>
-
- <listitem>
- <para>&a.gallatin;</para>
- </listitem>
-
- <listitem>
- <para>&a.tg;</para>
- </listitem>
-
- <listitem>
- <para>&a.brandon;</para>
- </listitem>
-
- <listitem>
- <para>&a.graichen;</para>
- </listitem>
-
- <listitem>
- <para>&a.jgreco;</para>
- </listitem>
-
- <listitem>
- <para>&a.rgrimes;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmg;</para>
- </listitem>
-
- <listitem>
- <para>&a.hanai;</para>
- </listitem>
-
- <listitem>
- <para>&a.thepish;</para>
- </listitem>
-
- <listitem>
- <para>&a.jhay;</para>
- </listitem>
-
- <listitem>
- <para>&a.helbig;</para>
- </listitem>
-
- <listitem>
- <para>&a.ghelmer;</para>
- </listitem>
-
- <listitem>
- <para>&a.erich;</para>
- </listitem>
-
- <listitem>
- <para>&a.nhibma;</para>
- </listitem>
-
- <listitem>
- <para>&a.flathill;</para>
- </listitem>
-
- <listitem>
- <para>&a.foxfair;</para>
- </listitem>
-
- <listitem>
- <para>&a.hosokawa;</para>
- </listitem>
-
- <listitem>
- <para>&a.hsu;</para>
- </listitem>
-
- <listitem>
- <para>&a.mph;</para>
- </listitem>
-
- <listitem>
- <para>&a.itojun;</para>
- </listitem>
-
- <listitem>
- <para>&a.mjacob;</para>
- </listitem>
-
- <listitem>
- <para>&a.gj;</para>
- </listitem>
-
- <listitem>
- <para>&a.nsj;</para>
- </listitem>
-
- <listitem>
- <para>&a.ljo;</para>
- </listitem>
-
- <listitem>
- <para>&a.kato;</para>
- </listitem>
-
- <listitem>
- <para>&a.andreas;</para>
- </listitem>
-
- <listitem>
- <para>&a.motoyuki;</para>
- </listitem>
-
- <listitem>
- <para>&a.jkoshy;</para>
- </listitem>
-
- <listitem>
- <para>&a.kuriyama;</para>
- </listitem>
-
- <listitem>
- <para>&a.grog;</para>
- </listitem>
-
- <listitem>
- <para>&a.jlemon;</para>
- </listitem>
-
- <listitem>
- <para>&a.truckman;</para>
- </listitem>
-
- <listitem>
- <para>&a.imp;</para>
- </listitem>
-
- <listitem>
- <para>&a.smace;</para>
- </listitem>
-
- <listitem>
- <para>&a.mckay;</para>
- </listitem>
-
- <listitem>
- <para>&a.mckusick;</para>
- </listitem>
-
- <listitem>
- <para>&a.ken;</para>
- </listitem>
-
- <listitem>
- <para>&a.hm;</para>
- </listitem>
-
- <listitem>
- <para>&a.tedm;</para>
- </listitem>
-
- <listitem>
- <para>&a.amurai;</para>
- </listitem>
-
- <listitem>
- <para>&a.markm;</para>
- </listitem>
-
- <listitem>
- <para>&a.max;</para>
- </listitem>
-
- <listitem>
- <para>&a.alex;</para>
- </listitem>
-
- <listitem>
- <para>&a.newton;</para>
- </listitem>
-
- <listitem>
- <para>&a.rnordier;</para>
- </listitem>
-
- <listitem>
- <para>&a.davidn;</para>
- </listitem>
-
- <listitem>
- <para>&a.obrien;</para>
- </listitem>
-
- <listitem>
- <para>&a.danny;</para>
- </listitem>
-
- <listitem>
- <para>&a.ljo;</para>
- </listitem>
-
- <listitem>
- <para>&a.fsmp;</para>
- </listitem>
-
- <listitem>
- <para>&a.smpatel;</para>
- </listitem>
-
- <listitem>
- <para>&a.wpaul;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmacd;</para>
- </listitem>
-
- <listitem>
- <para>&a.wes;</para>
- </listitem>
-
- <listitem>
- <para>&a.steve;</para>
- </listitem>
-
- <listitem>
- <para>&a.mpp;</para>
- </listitem>
-
- <listitem>
- <para>&a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>&a.jraynard;</para>
- </listitem>
-
- <listitem>
- <para>&a.darrenr;</para>
- </listitem>
-
- <listitem>
- <para>&a.csgr;</para>
- </listitem>
-
- <listitem>
- <para>&a.martin;</para>
- </listitem>
-
- <listitem>
- <para>&a.paul;</para>
- </listitem>
-
- <listitem>
- <para>&a.roberto;</para>
- </listitem>
-
- <listitem>
- <para>&a.chuckr;</para>
- </listitem>
-
- <listitem>
- <para>&a.guido;</para>
- </listitem>
-
- <listitem>
- <para>&a.dima;</para>
- </listitem>
-
- <listitem>
- <para>&a.sada;</para>
- </listitem>
-
- <listitem>
- <para>&a.nsayer;</para>
- </listitem>
-
- <listitem>
- <para>&a.wosch;</para>
- </listitem>
-
- <listitem>
- <para>&a.ats;</para>
- </listitem>
-
- <listitem>
- <para>&a.jseger;</para>
- </listitem>
-
- <listitem>
- <para>&a.simokawa;</para>
- </listitem>
-
- <listitem>
- <para>&a.vanilla;</para>
- </listitem>
-
- <listitem>
- <para>&a.msmith;</para>
- </listitem>
-
- <listitem>
- <para>&a.des;</para>
- </listitem>
-
- <listitem>
- <para>&a.brian;</para>
- </listitem>
-
- <listitem>
- <para>&a.mks;</para>
- </listitem>
-
- <listitem>
- <para>&a.stark;</para>
- </listitem>
-
- <listitem>
- <para>&a.karl;</para>
- </listitem>
-
- <listitem>
- <para>&a.taoka;</para>
- </listitem>
-
- <listitem>
- <para>&a.dt;</para>
- </listitem>
-
- <listitem>
- <para>&a.cwt;</para>
- </listitem>
-
- <listitem>
- <para>&a.pst;</para>
- </listitem>
-
- <listitem>
- <para>&a.hoek;</para>
- </listitem>
-
- <listitem>
- <para>&a.nectar;</para>
- </listitem>
-
- <listitem>
- <para>&a.swallace;</para>
- </listitem>
-
- <listitem>
- <para>&a.dwhite;</para>
- </listitem>
-
- <listitem>
- <para>&a.nate;</para>
- </listitem>
-
- <listitem>
- <para>&a.yokota;</para>
- </listitem>
-
- <listitem>
- <para>&a.jmz;</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="staff-doc">
- <title>Le projet de documentation de FreeBSD</title>
-
- <para>Le <ulink URL="http://www.freebsd.org/docproj.html">Projet de
- documentation de FreeBSD</ulink> est responsable d'une s&eacute;rie de
- services, chacun &eacute;tant g&eacute;r&eacute; par une personne et ses
- <emphasis>adjoints</emphasis> (le cas &eacute;ch&eacute;ant)&nbsp;:</para>
-
- <variablelist>
- <varlistentry>
- <term>Gestion du projet de documentation</term>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Webmestre</term>
-
- <listitem>
- <para>&a.wosch;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>R&eacute;dacteur en chef des Manuel de r&eacute;f&eacute;rence
- &amp; Foire Aux Questions</term>
-
- <listitem>
- <para>&a.faq;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>R&eacute;dacteur en chef pour les nouvelles</term>
-
- <listitem>
- <para>&a.nsj;</para>
-
- <para><emphasis>Adjoint&nbsp;:</emphasis> &a.john;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>R&eacute;dacteur en chef de la lettre d'information succinte de
- FreeBSD</term>
-
- <listitem>
- <para>Chris Coleman <email>chrisc@vmunix.com</email></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>R&eacute;dacteur en chef de la galerie</term>
-
- <listitem>
- <para>&a.nsj;</para>
-
- <para><emphasis>Adjoint&nbsp;:</emphasis> &a.cawimm;</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>R&eacute;dacteur en chef commercial</term>
-
- <listitem>
- <para>&a.mbarkah;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>R&eacute;dacteur en chef pour les modifications au site Web</term>
-
- <listitem>
- <para>&a.mbarkah;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Coordination du style (Polices) &amp; graphisme</term>
-
- <listitem>
- <para>&a.opsys;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ing&eacute;nieur base de donn&eacute;es</term>
-
- <listitem>
- <para>&a.mayo;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ing&eacute;nieur CGI</term>
-
- <listitem>
- <para>&a.stb;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Finalisation</term>
-
- <listitem>
- <para>&a.nsj;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Conversion de LinuxDoc &agrave; DocBook</term>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 id="staff-who">
- <title>Qui est responsable de quoi</title>
-
- <variablelist>
- <varlistentry>
- <term>Architecte principal</term>
-
- <listitem>
- <para>&a.dg;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink
- url="http://www.freebsd.org/docproj/docproj.html">Gestionnaire du
- projet de documentation</ulink></term>
-
- <listitem>
- <para>&a.nik;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="l10n">Internationalisation</link></term>
-
- <listitem>
- <para>&a.ache;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry><term>R&eacute;seau</term>
-
- <listitem>
- <para>&a.wollman;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="eresources-mail">Postmaster</link></term>
-
- <listitem>
- <para>&a.jmb;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Coordination des versions</term>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Relations publiques &amp; avec les entreprises²</term>
-
- <listitem>
- <para>&a.jkh;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.freebsd.org/security/">Officier de
- s&eacute;curit&eacute;</ulink></term>
-
- <listitem>
- <para>&a.imp;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.freebsd.org/support.html#cvs">Gestionnaires
- des archives CVS</ulink></term>
-
- <listitem>
- <para>Principal&nbsp;: &a.peter;</para>
-
- <para>Assistant&nbsp;: &a.jdp;</para>
-
- <para>International (Crypto)&nbsp;: &a.markm;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.freebsd.org/ports/">Gestionnaire du
- catalogue des logiciels port&eacute;s</ulink></term>
-
- <listitem>
- <para>&a.asami;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Liaison avec XFree86 Project, Inc.</term>
-
- <listitem>
- <para>&a.rich;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><link linkend="eresources-news">Support des forums de
- discussion</link></term>
-
- <listitem>
- <para>&a.joerg;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink url="http://www.freebsd.org/support.html#gnats">Administrateur
- GNATS</ulink></term>
-
- <listitem>
- <para>&a.steve;</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><ulink
- url="http://www.freebsd.org/internal/">Webmestre</ulink></term>
-
- <listitem>
- <para>&a.wosch;</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/books/handbook/todo.sgml b/fr_FR.ISO8859-1/books/handbook/todo.sgml
deleted file mode 100644
index e471e64082..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/todo.sgml
+++ /dev/null
@@ -1,9 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: n.nn
--->
-
-<para>*** A Traduire ***</para>
diff --git a/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml
deleted file mode 100644
index 9f8d633ade..0000000000
--- a/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: 1.5
--->
-
-<chapter id="x11">
- <title>Le syst&egrave;me X Window</title>
-
- <para>En attendant que la r&eacute;daction de ce chapitre soit
- termin&eacute;e, reportez-vous s'il vous pla&icirc;t &agrave; la
- documentation fournie par
- <ulink URL="http://www.xfree86.org/">The XFree86 Project,
- Inc</ulink>.</para>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
--->
-
diff --git a/fr_FR.ISO8859-1/share/sgml/abstract.ent b/fr_FR.ISO8859-1/share/sgml/abstract.ent
deleted file mode 100644
index 8ebec98cff..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/abstract.ent
+++ /dev/null
@@ -1,15 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- Références vers d'autres fichiers qui peuvent être inclus à l'intérieur
- d'un élément Abstract. Les noms des éléments sont de la forme
- "abstract.<element>", où <element> est le texte de la partie visible de
- l'entité. Exemple : "abstract.legalnotice" et "abstract.preface".
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<!ENTITY abstract.license SYSTEM "license.sgml">
-<!ENTITY abstract.disclaimer SYSTEM "disclaimer.sgml">
diff --git a/fr_FR.ISO8859-1/share/sgml/artheader.ent b/fr_FR.ISO8859-1/share/sgml/artheader.ent
deleted file mode 100644
index 90b7b739ca..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/artheader.ent
+++ /dev/null
@@ -1,14 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- Références vers d'autres fichiers qui peuvent être inclus à l'intérieur
- d'un élément ArtHeader. Les noms des éléments sont de la forme
- "artheader.<element>", où <element> est le texte de la partie visible de
- l'entité. Exemple : "artheader.legalnotice" et "artheader.preface".
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<!ENTITY artheader.copyright SYSTEM "copyright.sgml">
diff --git a/fr_FR.ISO8859-1/share/sgml/bookinfo.ent b/fr_FR.ISO8859-1/share/sgml/bookinfo.ent
deleted file mode 100644
index fcd691b83d..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/bookinfo.ent
+++ /dev/null
@@ -1,16 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- Références vers d'autres fichiers qui peuvent être inclus à l'intérieur
- d'un élément BookInfo. Les noms des éléments sont de la forme
- "bookinfo.<element>", où <element> est le texte de la partie visible de
- l'entité. Exemple : "bookinfo.legalnotice" et "bookinfo.preface".
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml">
-<!ENTITY bookinfo.license SYSTEM "license.sgml">
-<!ENTITY bookinfo.disclaimer SYSTEM "disclaimer.sgml">
diff --git a/fr_FR.ISO8859-1/share/sgml/catalog b/fr_FR.ISO8859-1/share/sgml/catalog
deleted file mode 100644
index 5ebe8768fc..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/catalog
+++ /dev/null
@@ -1,9 +0,0 @@
- -- ...................................................................... --
- -- FreeBSD SGML Public Identifiers ...................................... --
-
- -- $FreeBSD: doc/share/sgml/catalog,v 1.9 2000/07/08 16:31:28 phantom Exp $
- --
-
-PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
- "freebsd.dsl"
-
diff --git a/fr_FR.ISO8859-1/share/sgml/copyright.sgml b/fr_FR.ISO8859-1/share/sgml/copyright.sgml
deleted file mode 100644
index 70b2222f34..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/copyright.sgml
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<copyright>
- <year>1999</year>
- <holder>Groupe de Documentation de FreeBSD. Tous droits
- r&eacute;serv&eacute;s.</holder>
-</copyright>
diff --git a/fr_FR.ISO8859-1/share/sgml/disclaimer.sgml b/fr_FR.ISO8859-1/share/sgml/disclaimer.sgml
deleted file mode 100644
index 3946a1c2c0..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/disclaimer.sgml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<para>CE DOCUMENT EST FOURNI &ldquo;TEL QU'EN L'&Eacute;TAT&rdquo; PAR LE
- PROJET DE DOCUMENTATION FRAN&Ccedil;AISE DE FreeBSD ET IL N'EST DONN&Eacute;
- AUCUNE GARANTIE, IMPLICITE OU EXPLICITE, QUANT &Agrave; SON UTILISATION
- COMMERCIALE, PROFESSIONNELLE OU AUTRE. LES COLLABORATEURS DU PROJET DE
- DOCUMENTATION FRAN&Ccedil;AISE DE FreeBSD NE PEUVENT EN AUCUN CAS &Ecirc;TRE
- TENUS POUR RESPONSABLES DE QUELQUE DOMMAGE OU PR&Eacute;JUDICE DIRECT,
- INDIRECT, SECONDAIRE OU ACCESSOIRE (Y COMPRIS LES PERTES FINANCI&egrave;RES
- DUES AU MANQUE &Agrave; GAGNER, &Agrave; L'INTERRUPTION D'ACTIVIT&Eacute;S,
- OU LA PERTE D'INFORMATIONS ET AUTRES) D&Eacute;COULANT DE L'UTILISATION DE
- LA DOCUMENTATION OU DE L'IMPOSSIBILIT&Eacute; D'UTILISER CELLE-CI, ET DONT
- L'UTILISATEUR ACCEPTE L'ENTI&Egrave;RE RESPONSABILIT&Eacute;.</para>
diff --git a/fr_FR.ISO8859-1/share/sgml/freebsd.dsl b/fr_FR.ISO8859-1/share/sgml/freebsd.dsl
deleted file mode 100644
index ef796ec94c..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/freebsd.dsl
+++ /dev/null
@@ -1,53 +0,0 @@
-<!-- $FreeBSD: doc/fr_FR.ISO_8859-1/share/sgml/freebsd.dsl,v 1.2 2000/09/28 23:29:46 nbm Exp $ -->
-
-<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
-<!ENTITY freebsd.dsl PUBLIC "-//FreeBSD//DOCUMENT DocBook Language Neutral Stylesheet//EN" CDATA DSSSL>
-]>
-
-<style-sheet>
- <style-specification use="docbook">
- <style-specification-body>
-
- <![ %output.html; [
- <!-- Fix a problem with the French localisation. This should really
- be a patch to the dsssl-docbook-modular port, but this gets it
- more widely available sooner. A patch will be applied to the
- port as well, and then this can be removed. -->
- (define (gentext-fr-nav-prev prev)
- (make sequence (literal "Pr\U-00E9;c\U-00E9;dent")))
-
- (define ($email-footer$)
- (make sequence
- (make element gi: "p"
- attributes: (list (list "align" "center"))
- (make element gi: "small"
- (literal "This, and other documents, can be downloaded from ")
- (make element gi: "a"
- attributes: (list (list "href" "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc"))
- (literal "ftp.FreeBSD.org/pub/FreeBSD/doc/"))
- (literal ".")))
- (make element gi: "p"
- attributes: (list (list "align" "center"))
- (make element gi: "small"
- (literal "For questions about FreeBSD, read the ")
- (make element gi: "a"
- attributes: (list (list "href" "http://www.freebsd.org/docs.html"))
- (literal "documentation"))
- (literal " before contacting <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:questions@FreeBSD.org"))
- (literal "questions@FreeBSD.org"))
- (literal ">.")
- (make empty-element gi: "br")
- (literal "For questions about this documentation, e-mail <")
- (make element gi: "a"
- attributes: (list (list "href" "mailto:doc@FreeBSD.org"))
- (literal "doc@FreeBSD.org"))
- (literal ">.")))))
-
- ]]>
- </style-specification-body>
- </style-specification>
-
- <external-specification id="docbook" document="freebsd.dsl">
-</style-sheet>
diff --git a/fr_FR.ISO8859-1/share/sgml/legalnotice.sgml b/fr_FR.ISO8859-1/share/sgml/legalnotice.sgml
deleted file mode 100644
index f3ad36c2e0..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/legalnotice.sgml
+++ /dev/null
@@ -1,14 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<legalnotice>
- &bookinfo.license;
- <important>
- &bookinfo.disclaimer;
- </important>
-</legalnotice>
diff --git a/fr_FR.ISO8859-1/share/sgml/license.sgml b/fr_FR.ISO8859-1/share/sgml/license.sgml
deleted file mode 100644
index 494968772d..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/license.sgml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<para>La redistribution du code source (SGML), modifi&eacute; ou non, et
- compil&eacute; (HTML, PostScript, etc.) est soumise aux conditions
- suivantes&nbsp;:</para>
-
-<para>
- <orderedlist>
- <listitem>
- <para>Le copyright ci-dessus, la pr&eacute;sente liste de conditions et
- l'avertissement qui la suit doivent figurer dans le code
- source.</para>
- </listitem>
-
- <listitem>
- <para>Le code source distribu&eacute; sous forme compil&eacute; doit
- faire appara&icirc;tre le copyright ci-dessus, la pr&eacute;sente
- liste de conditions et l'avertissement qui la suit.</para>
- </listitem>
- </orderedlist>
-</para>
diff --git a/fr_FR.ISO8859-1/share/sgml/translators.ent b/fr_FR.ISO8859-1/share/sgml/translators.ent
deleted file mode 100644
index ef6851599a..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/translators.ent
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- Noms et adresses de courrier &eacute;lectronique des membres de l'&eacute;quipe de
- traduction francaise
-
- $Id: translators.ent,v 1.2 2000-05-26 05:46:53 gioria Exp $
- Original revision: N/A
--->
-
-<!ENTITY a.breard "Renaud Br&eacute;ard
- <email>renaud.breard@easynet.fr</email>">
-<!ENTITY a.brive "Robert Brive
- <email>brive@mail.dotcom.fr</email>">
-<!ENTITY a.dntt "Tuyet Tram Dang Ngoc
- <email>dntt@prism.uvsq.fr</email>">
-<!ENTITY a.gioria "S&eacute;bastien Gioria
- <email>gioria@francenet.fr</email>">
-<!ENTITY a.haby "Fr&eacute;d&eacute;ric Haby
- <email>frederic.haby@mail.dotcom.fr</email>">
-<!ENTITY a.laurand "Pierre-Fran&ccedil;ois Laurand
- <email>pushf@club-internet.fr</email>">
-<!ENTITY a.legrand "St&eacute;phane Legrand
- <email>Stephane.Legrand@wanadoo.fr</email>">
-<!ENTITY a.nolin "Philippe Nolin
- <email>philippe.nolin@mail.dotcom.fr</email>">
-<!ENTITY a.vovan "Luc Vo Van
- <email>thelemmings@hotmail.com</email>">
-<!ENTITY a.boucey "Michel Boucey
- <email>MBoucey@wanadoo.fr</email>">
-<!ENTITY a.guillain "Guillain
- <email>Guillain@lycosmail.com</email>">
-<!ENTITY a.seyrat "Thomas Seyrat
- <email>thomas.seyrat@ulp.u-strasbg.fr</email>">
-
-<!-- Traductions -->
-
-<!ENTITY trans.a.breard
- "<para><emphasis>Version fran&ccedil;aise de &a.breard;.</emphasis></para>">
-<!ENTITY trans.a.brive
- "<para><emphasis>Version fran&ccedil;aise de &a.brive;.</emphasis></para>">
-<!ENTITY trans.a.dntt
- "<para><emphasis>Version fran&ccedil;aise de &a.dntt;.</emphasis></para>">
-<!ENTITY trans.a.gioria
- "<para><emphasis>Version fran&ccedil;aise de &a.gioria;.</emphasis></para>">
-<!ENTITY trans.a.haby
- "<para><emphasis>Version fran&ccedil;aise de &a.haby;.</emphasis></para>">
-<!ENTITY trans.a.legrand
- "<para><emphasis>Version fran&ccedil;aise de &a.legrand;.</emphasis></para>">
-<!ENTITY trans.a.nolin
- "<para><emphasis>Version fran&ccedil;aise de &a.nolin;.</emphasis></para>">
-<!ENTITY trans.a.laurand
- "<para><emphasis>Version fran&ccedil;aise de &a.laurand;.</emphasis></para>">
-<!ENTITY trans.a.vovan
- "<para><emphasis>Version fran&ccedil;aise de &a.vovan;.</emphasis></para>">
-<!ENTITY trans.a.boucey
- "<para><emphasis>Version fran&ccedil;aise de &a.boucey;.</emphasis></para>">
-<!ENTITY trans.a.guillain
- "<para><emphasis>Version fran&ccedil;aise de &a.guillain;.</emphasis></para>">
-<!ENTITY trans.a.seyrat
- "<para><emphasis>Version fran&ccedil;aise de &a.seyrat;.</emphasis></para>">
- \ No newline at end of file
diff --git a/fr_FR.ISO8859-1/share/sgml/urls.ent b/fr_FR.ISO8859-1/share/sgml/urls.ent
deleted file mode 100644
index 012a4072c7..0000000000
--- a/fr_FR.ISO8859-1/share/sgml/urls.ent
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD French Documentation Project
-
- URLs des documents les plus utilisés. Comme ces documents peuvent changer
- de place dans l'arborescence des documentations (et du site web), il faut
- disposer de variables pour ces URLs. Ces URLs peuvent être absolues ou
- relative aux documents.
-
- $FreeBSD$
- Original revision: N/A
--->
-
-<!ENTITY url.base "http://www.freebsd-fr.org/">
-<!ENTITY url.doc "../">
-<!ENTITY url.faq "&url.doc;faq/">
-<!ENTITY url.handbook "&url.doc;handbook/">
-<!ENTITY url.tutorials "&url.doc;">
-<!ENTITY url.others "&url.doc;">
-<!ENTITY url.picobsd "&url.doc;picobsd">
-<!ENTITY url.press "&url.doc;">
-<!ENTITY url.www "&url.base;www/fr_FR.ISO_8859-1/">
diff --git a/ja_JP.eucJP/articles/contributing/article.sgml b/ja_JP.eucJP/articles/contributing/article.sgml
deleted file mode 100644
index e0b78e146b..0000000000
--- a/ja_JP.eucJP/articles/contributing/article.sgml
+++ /dev/null
@@ -1,6473 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Japanese Documentation Project
-
- Original revision: 1.406
- $FreeBSD: doc/ja_JP.eucJP/books/handbook/contrib/chapter.sgml,v 1.63 2001/04/08 15:33:39 hrs Exp $
--->
-
-<chapter id="contrib">
- <title>FreeBSD ¤Ø¤Î¹×¸¥</title>
-
- <para><emphasis>¸¶ºî: &a.jkh;.</emphasis></para>
-
- <para><emphasis>Ìõ: &a.jp.iwasaki;,
- 1997 ǯ 4 ·î 27 Æü.</emphasis></para>
-
- <para>¤¢¤Ê¤¿¤â²¿¤« FreeBSD ¤Î¤¿¤á¤Ë¹×¸¥¤·¤¿¤¯¤Ê¤ê¤Þ¤·¤¿¤«?
- ÁÇÀ²¤é¤·¤¤! »ä¤¿¤Á¤Ï¾ï¤Ë»Ù±ç¤ò¼õ¤±¤ëÍÑ°Õ¤¬¤¢¤ê¤Þ¤¹¤·, FreeBSD
- ¤ÏÀ¸¤­»Ä¤ë¤¿¤á¤Ë¥æ¡¼
- ¥¶¥Ù¡¼¥¹¤Î¹×¸¥¤Ë<emphasis>Íê¤ë</emphasis>¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Î°ì¤Ä¤Ç¤¹.
- ¤¢¤Ê¤¿¤Î¹×¸¥¤Ï ´¶¼Õ¤µ¤ì¤ë¤À¤±¤Ç¤Ï¤Ê¤¯, FreeBSD
- ¤¬À®Ä¹¤·Â³¤±¤ë¤¿¤á¤Ë¶Ë¤á¤Æ½ÅÍפʤâ¤Î¤Ê ¤Î¤Ç¤¹!</para>
-
- <para>°ìÉô¤Î¿Í㤬¸À¤Ã¤Æ¤¤¤ë¤Î¤È¤ÏµÕ¤Ë,
- ¹×¸¥¤ò¼õ¤±ÉÕ¤±¤Æ¤â¤é¤¦¤¿¤á¤ËÏÓÍø ¤­¤Î¥×¥í¥°¥é¥Þ¡¼¤Ë¤Ê¤ë¤È¤«
- FreeBSD ¥³¥¢¥Á¡¼¥à¤Î¿Í¤È¿Æͧ¤Ë¤Ê¤ëɬÍפϤ¢ ¤ê¤Þ¤»¤ó. FreeBSD
- ¥×¥í¥¸¥§¥¯¥È¤Î³«È¯¤Ï, ¿¤¯¤Î¤½¤·¤Æ±×¡¹Áý²Ã¤¹¤ëÀ¤³¦Ãæ
- ¤Î¹×¸¥¼Ôã¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤Æ¤ª¤ê, Èà¤é¤ÎǯÎð,
- ÀìÌçµ»½ÑʬÌî¤Ï¿´ô¤ËÅϤê¤Þ ¤¹.
- ¤½¤·¤Æ¼ê¤Î¶õ¤¤¤Æ¤¤¤ë¿Í¤è¤ê¤â
- À®¤µ¤ì¤ë¤Ù¤­»Å»ö¤ÎÊý¤¬¾ï¤Ë¿¤¤¤Î¤Ç¤¹.</para>
-
- <para>FreeBSD
- ¥×¥í¥¸¥§¥¯¥È¤¬¥«¡¼¥Í¥ë¤ä»¶ºß¤·¤Æ¤¤¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤è¤ê¤â,
- ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à´Ä¶­ (¤È, ¤½¤Î¥¤¥ó¥¹¥È¡¼¥ë)
- ¤ËÂФ·¤ÆÀÕǤ¤ò»ý¤Ä ¤è¤¦¤Ë¤Ê¤Ã¤¿¤¿¤á,
- »ä¤¿¤Á¤Î<filename>TODO</filename>¥ê¥¹¥È¤Ï¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó,
- ¥Ù¡¼¥¿¥Æ ¥¹¥È,
- ¹âÅÙ¤ËÀìÌç²½¤µ¤ì¤¿¥¿¥¤¥×¤Î¥«¡¼¥Í¥ë³«È¯¤Î¹¥Îã¤ò¾Ò²ð¤¹¤ë¤Ê¤ÉÈó¾ï¤Ë
- ¹­¤¤ÈϰϤΥ¿¥¹¥¯¤ËÅϤê¤Þ¤¹. ¤¢¤Ê¤¿¤Îµ»Ç½¥ì¥Ù¥ë¤Ë´Ø¤ï¤é¤º,
- ¥×¥í¥¸¥§¥¯¥È ¤ò»Ù±ç¤Ç¤­¤ë¤³¤È¤¬É¬¤º²¿¤«¤¢¤ê¤Þ¤¹!</para>
-
- <para>FreeBSD
- ´ØÏ¢¤Î»ö¶È¤Ë½¾»ö¤·¤Æ¤¤¤ë¾¦¶ÈÃÄÂΤ¬»ä¤¿¤Á¤Ë¥³¥ó¥¿¥¯¥È¤¹¤ë¤³¤È
- ¤â´¿·Þ¤·¤Þ¤¹. ¤¢¤Ê¤¿¤ÎÀ½Éʤò (FreeBSD ¾å¤Ç) Æ°ºî¤µ¤»¤ë¤Ë¤Ï,
- ÆÃÊ̤ʳÈÄ¥ ¤¬É¬ÍפǤϤ¢¤ê¤Þ¤»¤ó¤«?
- ¤¢¤Þ¤ê¤Ë¤âÉ÷ÊѤï¤ê¤ÊÍ×µá¤Ç¤Ê¤±¤ì¤Ð, ¤½¤ì¤ò¼õ¤±
- Æþ¤ì¤ëÍÑ°Õ¤¬»ä¤¿¤Á¤Ë¤¢¤ë¤È¤ï¤«¤ë¤Ï¤º¤Ç¤¹.
- ÉղòÁÃͤΤ¢¤ëÀ½ÉʤǤ¹¤«? »ä¤¿¤Á¤ËÃΤ餻¤Æ¤¯¤À¤µ¤¤! ¿ʬ»ä¤¿¤Á¤Ï,
- ¤¢¤ë Ì̤ˤª¤¤¤Æ¶¦Æ±¤·¤Æºî¶È¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤Ç¤·¤ç¤¦.
- ¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢³¦ ¤Ï,
- ¥½¥Õ¥È¥¦¥§¥¢¤¬¤½¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤òÄ̤·¤Æ¤É¤Î¤è¤¦¤Ë³«È¯¤µ¤ì,
- Çä¤é¤ì, Êݼ餵¤ì¤Æ¤¤¤¯¤«¤Ë¤Ä¤¤¤Æ, ´û¸¤Î²¾Àâ¤ËÄ©À路¤Æ¤¤¤Þ¤¹.
- ¾¯¤Ê¤¯¤È¤â¤â¤¦°ì
- ÅÙ¹Íθ¤·¤Æ¤ß¤ë¤³¤È¤ò»ä¤¿¤Á¤Ï¶¯¤¯¤ª¾©¤á¤·¤Þ¤¹.</para>
-
- <sect1 id="contrib-what">
- <title>²¿¤¬É¬Í×?</title>
-
- <para>¼¡¤Î¥¿¥¹¥¯¤È¥µ¥Ö¥×¥í¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤Ï, ¥³¥¢¥Á¡¼¥à¤Î¿§¡¹¤Ê
- <filename>TODO</filename> ¥ê
- ¥¹¥È¤ÈºÇ¶á2¥ö·î¤Ç½¸¤á¤¿¥æ¡¼¥¶¥ê¥¯¥¨¥¹¥È¤ò¹ç¤ï¤»¤¿¤â¤Î¤Ç¤¹.
- ²Äǽ¤Ê¤È¤³ ¤í¤Ç¤Ï, ¶ÛµÞÅ٤ˤè¤Ã¤Æ¥¿¥¹¥¯¤¬¥é¥ó¥¯¤Å¤±¤µ¤ì¤Æ¤¤¤Þ¤¹.
- ¤â¤·¤³¤³¤Ë¤¢¤ë¥¿ ¥¹¥¯¤Î¼Â¹Ô¤Ë¶½Ì£¤¬¤¢¤ë¤Î¤Ç¤·¤¿¤é,
- ¥³¡¼¥Ç¥£¥Í¡¼¥¿¤Î̾Á°¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¥á¡¼ ¥ë¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤.
- ¤â¤·¥³¡¼¥Ç¥£¥Í¡¼¥¿¤¬·è¤Þ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð, ¤¢¤Ê¤¿¤¬¥Ü
- ¥é¥ó¥Æ¥£¥¢¤·¤Æ¤ß¤Þ¤»¤ó¤«?</para>
-
- <sect2>
- <title>Í¥ÀèÅ٤ι⤤¥¿¥¹¥¯</title>
-
- <para>¼¡¤Î¥¿¥¹¥¯¤ÏÄ̾ï, ¤Ò¤É¤¯²õ¤ì¤Æ¤¤¤ë¤È¤«,
- ¤È¤Æ¤âɬÍפȤµ¤ì¤Æ¤¤¤ë²¿¤«¤ò ɽ¤·¤Æ¤¤¤ë¤¿¤á,
- µÞ̳¤È¹Í¤¨¤é¤ì¤Æ¤¤¤Þ¤¹:</para>
-
- <orderedlist>
- <listitem>
- <para>Âè3¥¹¥Æ¡¼¥¸¡¦¥Ö¡¼¥ÈÌäÂê. Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó:
- &a.hackers;</para>
-
- <itemizedlist>
- <listitem>
- <para>Âè3¥¹¥Æ¡¼¥¸¤¬¥Ç¥£¥¹¥¯¤Î BIOS
- ¥¸¥ª¥á¥È¥ê¤ÎÀµ³Î¤Ê¥Þ¥Ã¥Ô¥ó¥°¤òÄó¶¡ ¤Ç¤­¤ë¤è¤¦¤Ë WinNT
- ¥³¥ó¥Ñ¥Á¥Ö¥ë¤Ê¥É¥é¥¤¥Ö¤ÎÄÉÀפò¤ª¤³¤Ê¤¦.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÌäÂê. Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó:
- &a.fs;</para>
-
- <itemizedlist>
- <listitem>
- <para>nullfs ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¡¼¥É¤Î¥¯¥ê¡¼¥ó¥¢¥Ã¥×¤È
- ¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>union ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î½¤Àµ. ¥³¡¼¥Ç¥£¥Í¡¼¥¿:
- &a.dg;</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Int13 vm86 ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Î¼ÂÁõ. ¥³¡¼¥Ç¥£¥Í¡¼¥¿:
- &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>New bus ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¥«¡¼¥Í¥ë. ¥³¡¼¥Ç¥£¥Í¡¼¥¿:
- &a.newbus;</para>
-
- <itemizedlist>
- <listitem>
- <para>¤¹¤Ù¤Æ¤Î¸½Â¸ ISA ¥É¥é¥¤¥Ð¤Î
- ¿·¤·¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ø¤Î°Ü¿¢.</para>
- </listitem>
-
- <listitem>
- <para>¤¹¤Ù¤Æ¤Î³ä¤ê¹þ¤ß½èÍý¥³¡¼¥É¤ò
- ŬÀڤʥХ¹¥É¥é¥¤¥Ð¤Ë°ÜÆ°.</para>
- </listitem>
-
- <listitem>
- <para>PCI ¥µ¥Ö¥·¥¹¥Æ¥à¤Î
- ¿·¤·¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ø¤Î°Ü¿¢. ¥³¡¼¥Ç¥£¥Í¡¼¥¿:
- &a.dfr;</para>
- </listitem>
-
- <listitem>
- <para>¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥Ð¥¤¥¹¤òÀµ¤·¤¯°·¤¦ÊýË¡¤ò¸«¤¤½Ð¤·,
- PC-Card ¤ä CardBus ¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤ÎÅÚÂæ¤Ë¤¹¤ë.</para>
- </listitem>
-
- <listitem>
- <para>¥×¥í¡¼¥Ö¡¦¥¢¥¿¥Ã¥Á¤ÎÍ¥Àè½ç°Ì¤ÎÌäÂê¤ò
- °ì²ó¤Ç¤¹¤Ã¤­¤ê¤È²ò·è¤¹¤ë.</para>
- </listitem>
-
- <listitem>
- <para>¤½¤Î¾»Ä¤ê¤Î¥Ð¥¹¤ò¤¹¤Ù¤Æ¿·¤·¤¤
- ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ø¤È°Ü¹Ô¤¹¤ë.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>¥«¡¼¥Í¥ë¤Î½ôÌäÂê. Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó:
- &a.hackers;</para>
- </listitem>
-
- <listitem>
- <para>¤è¤êÀѶËŪ¤Ë¥»¥­¥å¥ê¥Æ¥£´ðÈפÎÀ°È÷¤ò¿Ê¤á¤ë.
- Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó: &a.security;</para>
-
- <itemizedlist>
- <listitem>
- <para>Tripwire(TM) ¤Î¤è¤¦¤Ê¤â¤Î¤ò¥«¡¼¥Í¥ëÆâ¤Î
- ¥ê¥â¡¼¥È¡¦¥í¡¼¥«¥ëξÉôʬ¤ËÈ÷¤¨¤ë.
- ¤³¤ì¤òÀµ¤·¤¯¼Â¸½¤¹¤ë¾å¤Ç, °Å¹æµ»½Ñ¤Ë´Ø¤¹¤ëÌäÂ꤬
- ¤¤¤í¤¤¤í¤È¾å¤¬¤Ã¤Æ¤¤¤Þ¤¹.
- ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¥³¡¼¥Ç¥£¥Í¡¼¥¿¤ËÏ¢Íí¤ò¼è¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤.
- ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>¥«¡¼¥Í¥ë¤Ç (UID ¤ò) 0 ¤ÈÈæ³Ó¤·¤Æ¤¤¤ëÉôʬ¤ò
- ¤¹¤Ù¤Æ <literal>suser()</literal> ¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë.
- ¸½ºß, ÌóȾʬ¤Î²Õ½ê¤¬»È¤Ã¤Æ¤¤¤Þ¤¹.
- ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>¥»¥­¥å¥¢¥ì¥Ù¥ë¤ò¤¤¤¯¤Ä¤«¤ÎÉôʬ¤Ëʬ¤±¤ë.
- ¤³¤ì¤Ë¤è¤Ã¤Æ´ÉÍý¼Ô¤Ï, Êü´þ¤·¤Æ¤â¹½¤ï¤Ê¤¤
- ¸¢¸Â¤Ë¤Ä¤¤¤Æ¤ÏÊü´þ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹.
- ÅöÁ³¤Ê¤¬¤é, Á´ÂÎ¥»¥­¥å¥¢¥ì¥Ù¥ë¤ò¥»¥Ã¥È¤·¤¿¤È¤­¤Î
- ¸ú²Ì¤Ï¸½ºß¤Î¤Þ¤Þ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó.
- ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>BPF ¤ËÂФ·¤Æ <quote>µö²Ä¤µ¤ì¤¿¥×¥í¥°¥é¥à</quote>
- ¤Î¥ê¥¹¥È¤ò¥¢¥Ã¥×¥í¡¼¥É¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¡¢ BPF ¤¬¤½¤ì°Ê³°¤Î
- ¥×¥í¥°¥é¥à¤ò¼õ¤±Æþ¤ì¤ë¤Î¤ò¿©¤¤»ß¤á¤ë.
- ¤³¤ì¤Ë¤è¤Ã¤Æ, BPF ¤òÎ㤨¤Ð DHCP ¤Ë»È¤¦¤È, ¥¢¥¿¥Ã¥«¡¼¤Ë
- ¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤ò¤³¤Ã¤½¤êõ¤é¤ì¤ë¤³¤È¤â¤Ê¤¯¤Ê¤ë
- ¤Ç¤·¤ç¤¦.</para>
- </listitem>
-
- <listitem>
- <para>¥»¥­¥å¥ê¥Æ¥£¥Á¥§¥Ã¥«¥¹¥¯¥ê¥×¥È¤ò¹¹¿·¤¹¤ë.
- ²¿¤Ï¤È¤â¤¢¤ì, ¾¤Î BSD ÇÉÀ¸¥·¥¹¥Æ¥à¤Ë¤¢¤ë¥Á¥§¥Ã¥¯¤Ï
- ¤¹¤Ù¤Æ¼è¤ê¹þ¤à. ¤µ¤é¤Ë, ¥·¥¹¥Æ¥à¤¬¥»¥­¥å¥¢¥ì¥Ù¥ë¤ò
- ¹â¤¯¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï, ´ØÏ¢²Õ½ê¤Ë¤Ä¤¤¤ÆŬÀڤʥե饰¤ò
- ÀßÄꤷ¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤è¤¦¤Ë¤¹¤ë.
- ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>¥«¡¼¥Í¥ë¤Ëǧ¾Úµ¡¹½¤òÀߤ±, ǧ¾Ú¥Ý¥ê¥·¡¼¤ò
- Ê£¿ô¥µ¥Ý¡¼¥È¤¹¤ë. ¤½¤Î°ìÉô¤Ï <literal>suser()</literal>
- ¤ò½¤Àµ¤¹¤ë¤³¤È¤Ç²Äǽ¤Ç¤·¤ç¤¦.
- ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para>
- </listitem>
-
- <listitem>
- <para>NFS ¥ì¥¤¥ä¤Ë¥³¡¼¥É¤òÄɲä·, NFS ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î
- ³°¤Ë½Ð¤ë¤è¤¦¤Ê <literal>chdir("..")</literal> ¤Ï
- ¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤¹¤ë. Î㤨¤Ð, <filename>/usr</filename>
- ¤¬ UFS ¤Ç <filename>/usr/src</filename> ¤¬ NFS
- ¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤È¤·¤Þ¤¹. ¸½ºß¤Ç¤Ï,
- <filename>/usr/src</filename> ¤Ø¤Î NFS ¥Õ¥¡¥¤¥ë
- ¥Ï¥ó¥É¥ë¤ò»È¤Ã¤Æ <filename>/usr</filename> ¤Ë
- ¥¢¥¯¥»¥¹¤Ç¤­¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Í¥ÀèÅÙ¤¬¤µ¤Û¤É¹â¤¯¤Ê¤¤¥¿¥¹¥¯</title>
-
- <para>¼¡¤Î¥¿¥¹¥¯¤Ï¤ä¤Ã¤Æ¤ª¤¯¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬,
- Æäˤµ¤·Ç÷¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç ¤Ï¤¢¤ê¤Þ¤»¤ó:</para>
-
- <orderedlist>
- <listitem>
- <para>´°Á´¤Ê KLD ¥Ù¡¼¥¹¤Î¥É¥é¥¤¥Ð¤Î¥µ¥Ý¡¼¥È /
- ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Þ¥Í¡¼ ¥¸¥ã.</para>
-
- <itemizedlist>
- <listitem>
- <para>²º¤ä¤«¤ÊÊýË¡¤Ç¥Ï¡¼¥É¥¦¥§¥¢¤ò¸¡ÃΤ¹¤ë
- ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Þ¥Í¡¼¥¸¥ã ¤ÎºîÀ®
- (Âè3¥¹¥Æ¡¼¥¸¡¦¥Ö¡¼¥È¤ÎÃæ¤Ë?). ¥Ï¡¼¥É¥¦¥§¥¢¤¬É¬ÍפȤ¹¤ë
- KLD ¤À¤±¤ò »Ä¤¹Åù.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>PCMCIA/PCCARD. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.msmith; ¤È &a.imp;</para>
-
- <itemizedlist>
- <listitem>
- <para>¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó!</para>
- </listitem>
-
- <listitem>
- <para>pcic ¥É¥é¥¤¥Ð¤Î¿®ÍêÀ­¤Î¤¢¤ëÁàºî (¥Æ¥¹¥ÈÍ×).</para>
- </listitem>
-
- <listitem>
- <para><filename>sio.c</filename>
- ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é (¤Û¤Ü´°Î»).</para>
- </listitem>
-
- <listitem>
- <para><filename>ed.c</filename> ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é
- (¤Û¤Ü´°Î»).</para>
- </listitem>
-
- <listitem>
- <para><filename>ep.c</filename> ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é
- (¤Û¤Ü´°Î»).</para>
- </listitem>
-
- <listitem>
- <para>User-mode ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é
- (ÉôʬŪ¤Ë´°Î»).</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para>Àè¿ÊŪ¤Ê¥Ñ¥ï¡¼¥Þ¥Í¡¼¥¸¥á¥ó¥È. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.nate;
- ¤È &a.phk;</para>
-
- <itemizedlist>
- <listitem>
- <para>APM ¥µ¥Ö¥É¥é¥¤¥Ð (¤Û¤Ü´°Î»).</para>
- </listitem>
-
- <listitem>
- <para>IDE/ATA ¥Ç¥£¥¹¥¯¥µ¥Ö¥É¥é¥¤¥Ð (ÉôʬŪ¤Ë´°Î»).</para>
- </listitem>
-
- <listitem>
- <para>syscons/pcvt ¥µ¥Ö¥É¥é¥¤¥Ð.</para>
- </listitem>
-
- <listitem>
- <para>PCMCIA/PCCARD ¥É¥é¥¤¥Ð·²¤È¤ÎÅý¹ç (¥µ¥¹¥Ú¥ó¥É /
- ¥ì¥¸¥å¡¼¥à).</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Í¥ÀèÅÙ¤ÎÄ㤤¥¿¥¹¥¯</title>
-
- <para>¼¡¤Î¥¿¥¹¥¯¤ÏÁ´¤¯¤Î¤¢¤é±£¤·,
- ¤Þ¤¿¤Ïï¤â¤¹¤°¤Ë¤ª¤³¤Ê¤¤¤½¤¦¤â¤Ê¤¤Åê»ñ
- ¤Î¤è¤¦¤Ê»Å»ö¤òɽ¤·¤Þ¤¹:</para>
-
- <para>ºÇ½é¤Î N ¹àÌÜ¤Ï Terry Lambert
- <email>terry@lambert.org</email> ¤«¤é¤Î¤â¤Î¤Ç¤¹.</para>
-
- <orderedlist>
- <listitem>
- <para>¥Í¥Ã¥È¥ï¡¼¥¯¥«¡¼¥É¤È°ì½ï¤ËÄ󶡤µ¤ì¤ë ODI
- ¥«¡¼¥É¥É¥é¥¤¥Ð¤ò»ÈÍÑ¤Ç ¤­¤ë¤è¤¦¤Ë¤¹¤ë, NetWare ¥µ¡¼¥Ð
- (¥×¥í¥Æ¥¯¥È¥â¡¼¥É¤Î ODI ¥É¥é¥¤¥Ð) ¥í¡¼ ¥À¤È¥µ¥Ö¥µ¡¼¥Ó¥¹.
- NDIS ¥É¥é¥¤¥Ð¤È NetWare ¤Î SCSI ¥É¥é¥¤¥Ð¤Ë¤Ä¤¤¤Æ¤âƱ
- ÍÍ.</para>
- </listitem>
-
- <listitem>
- <para>Á°¤Î¥ê¥Ó¥¸¥ç¥ó¤Î FreeBSD ¥Þ¥·¥ó¤Ç¤Ï¤Ê¤¯, Linux
- ¥Þ¥·¥ó¤ÇÆ°ºî¤¹¤ë ¡Ö¥¢¥Ã¥×¥°¥ì¡¼¥É
- ¥·¥¹¥Æ¥à¡×¥ª¥×¥·¥ç¥ó.</para>
- </listitem>
-
- <listitem>
- <para>¥«¡¼¥Í¥ë¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É²½
- (¥«¡¼¥Í¥ë¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó¤¬É¬Í×).</para>
- </listitem>
-
- <listitem>
- <para>¥«¡¼¥Í¥ë¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥óÉÕ¤­ÂоΥޥë¥Á¥×¥í¥»¥Ã¥·¥ó¥°
- (¥«¡¼¥Í¥ë ¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó¤¬É¬Í×).</para>
- </listitem>
-
- <listitem>
- <para>¥Ý¡¼¥¿¥Ö¥ë¥³¥ó¥Ô¥å¡¼¥¿¤Î¥µ¥Ý¡¼¥È¤Ë¤ª¤±¤ë¶¨Ä´¤Î»î¤ß.
- ¤³¤ì¤Ï PCMCIA
- ¥Ö¥ê¥Ã¥¸¥ó¥°µ¬Â§¤ÈÅŸ»´ÉÍý¥¤¥Ù¥ó¥È½èÍý¤ÎÊѹ¹¤Ë¤è¤ê, ¤¤¤¯
- ¤é¤«¤Ï½èÍý¤Ç¤­¤Þ¤¹. ¤·¤«¤·,
- Æ⢥ǥ£¥¹¥×¥ì¥¤¤È³°Éô¥Ç¥£¥¹¥×¥ì¥¤¤Î¸¡½Ð, ¤³¤Î 2
- ¼ïÎà¤Î¥Ç¥£¥¹¥×¥ì¥¤¤¬¤¢¤ë¤È¤¤¤¦»ö¼Â¤Ë´ð¤Å¤¯
- °Û¤Ê¤ë²òÁüÅÙ¤ÎÁªÂò, ¥Þ¥·¥ó¤¬¥É¥Ã¥¯¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ï
- ¥Ç¥£¥¹¥¯¤Î¥â¡¼¥¿Ää»ß¤òËɻߤ¹¤ë¤³¤È, ¥Þ¥·¥ó¤Î
- ¥Ö¡¼¥ÈǽÎϤ˱ƶÁ¤òÍ¿¤¨¤º¤Ë¥É¥Ã¥¯¥Ù¡¼¥¹¤Î¥«¡¼¥É¤Î¾ÃÌǤò
- ²Äǽ¤Ë¤¹¤ë¤³¤È (PCMCIA ¤ÈƱ¤¸ÌäÂê)
- ¤Ê¤É¤ÎÌäÂ꤬¤¢¤ê¤Þ¤¹.</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>¤â¤Ã¤È´Êñ¤Ê¥¿¥¹¥¯</title>
-
- <para>¾å¤Î¥»¥¯¥·¥ç¥ó¤Çµó¤²¤¿¥¿¥¹¥¯¤ÏËÄÂç¤Ê»þ´Ö¤ÎÅê»ñ¤Þ¤¿¤Ï
- FreeBSD ¤Î¥«¡¼¥Í¥ë¤Ë´Ø¤¹¤ë¿¼¤¤Ã챤òɬÍפȤ·¤Þ¤¹
- (¤â¤·¤¯¤Ï¤½¤Î¤É¤Á¤é¤â). ¤·¤«¤·¤Ê¤¬¤é,
- &quot;½µËö¥Ï¥Ã¥«¡¼&quot;¤ä¥×¥í¥°¥é¥ß¥ó¥°¤Î¥¹¥­¥ë¤ò»ý
- ¤¿¤Ê¤¤¿Í¡¹¤ËŬ¤·¤¿Î©Çɤʥ¿¥¹¥¯¤â¿ô¿¤¯¤¢¤ê¤Þ¤¹.</para>
-
- <orderedlist>
- <listitem>
- <para>FreeBSD-current ¤ò±¿ÍѤ·¤Æ¤ª¤ê,
- ¾õÂÖ¤ÎÎɤ¤¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈÀܳ¤¬¤¢ ¤ë¤Ê¤é¤Ð, <hostid
- role="fqdn">current.FreeBSD.org</hostid>
- ¤È¤¤¤¦°ìÆü¤Ë°ì²ó¥Õ¥ë¥ê¥ê¡¼¥¹¤ò¹Ô¤Ã¤Æ¤¤¤ë ¥Þ¥·¥ó¤¬¤¢¤ê¤Þ¤¹
- &mdash; »þ¤ª¤êºÇ¿·¤Î¥ê¥ê¡¼¥¹¤ò¤½¤³¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤·, ¤½¤Î
- ²áÄø¤Ç²¿¤«ÌäÂ꤬¤¢¤ë¤Ê¤éÊó¹ð¤·¤Æ²¼¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para>freebsd-bugs
- ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÆɤó¤Ç¤¯¤À¤µ¤¤. ¤½¤³¤Ç¤Ï¤¢¤Ê¤¿¤¬·ú
- ÀßŪ¤Ê¥³¥á¥ó¥È¤òÉÕ¤±¤¿¤ê¥Æ¥¹¥È¤Ç¤­¤ë¥Ñ¥Ã¥Á¤¬
- Ä󶡤µ¤ì¤Æ¤¤¤ë¤è¤¦¤ÊÌäÂ꤬¤¢¤ë ¤«¤â¤·¤ì¤Þ¤»¤ó.
- ¤â¤·¤¯¤Ï¤½¤ì¤é¤ÎÌäÂê¤Î°ì¤Ä¤ò¤¢¤Ê¤¿¼«¿È¤Ç½¤Àµ¤¹¤ë¤³¤È¤µ¤¨
- ¤Ç¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó.</para>
- </listitem>
-
- <listitem>
- <para>Äê´üŪ¤Ë FAQ ¤È¥Ï¥ó¥É¥Ö¥Ã¥¯¤òÄ̤·¤ÆÆɤó¤Ç¤ß¤Æ¤¯¤À¤µ¤¤.
- ¤â¤·¤Þ¤º¤¤ÀâÌÀ¤ä¸Å¤¤»öÊÁ¤ä´°Á´¤Ë´Ö°ã¤Ã¤Æ¤¤¤ë¤³¤È¤Ê¤É¤¬
- ¤¢¤ì¤Ð²æ¡¹¤Ë ¤·¤é¤»¤Æ²¼¤µ¤¤.
- ¤µ¤é¤ËÎɤ¤¤Î¤Ï²æ¡¹¤Ë½¤Àµ°Æ¤òÁ÷¤ë¤³¤È¤Ç¤¹ (SGML
- ¤Ï³Ø¤Ö¤Î¤Ë¤½¤ì¤Û¤ÉÆñ¤·¤¯¤¢¤ê¤Þ¤»¤ó¤¬,
- ¥×¥ì¥¤¥ó¥Æ¥­¥¹¥È¤Ç¤âÌäÂê¤Ï ¤¢¤ê¤Þ¤»¤ó).</para>
- </listitem>
-
- <listitem>
- <para>(¤â¤·¤Þ¤À¤Ê¤¤¤Ê¤é¤Ð) FreeBSD
- ¤Î¥É¥­¥å¥á¥ó¥È¤ò¼«Ê¬¤ÎÊì¹ñ¸ì¤ËËÝÌõ
- ¤¹¤ë¤Î¤ò¼êÅÁ¤Ã¤Æ¤¯¤À¤µ¤¤ &mdash;
- ºî¶È¤·¤Æ¤¤¤ë¿Í¤¬¤¤¤ë¤«¤É¤¦¤« &a.doc; ¤Ë¥á¡¼¥ë¤ò
- Á÷¤Ã¤Æʹ¤¯¤À¤±¤Ç¤¹. ¤È¤Ï¤¤¤Ã¤Æ¤â,
- ¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤¢¤Ê¤¿¤¬Á´¤Æ¤Î FreeBSD
- ¥É¥­¥å¥á¥ó¥È¤ÎËÝÌõ¤Ë·È¤ï¤ë¤è¤¦¤Ë
- ¤Ê¤ë¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¤Ç¤¹¤«¤é ¤Í &mdash; ¼ÂºÝ,
- ¤â¤Ã¤È¤âËÝÌõ¤¬É¬ÍפȤµ¤ì¤Æ¤¤¤ë¥É¥­¥å¥á¥ó¥È¤Ï¥¤¥ó¥¹¥È¡¼¥ëÊý
- Ë¡¤Ç¤¹.</para>
- </listitem>
-
- <listitem>
- <para>¤¿¤Þ¤Ë(¤â¤·¤¯¤ÏÄê´üŪ¤Ë) freebsd-questions
- ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ä
- <literal>comp.unix.bsd.freebsd.misc</literal>
- ¤òÆɤó¤Ç¤¯¤À¤µ¤¤. ¤³¤ì¤Ï, ¤¢¤Ê¤¿¤Î»ý¤Ã¤Æ¤¤
- ¤ëÀìÌçÃ챤ò¶¦Í­¤·¤¿¤ê狼¤¬Êú¤¨¤Æ¤¤¤ëÌäÂê¤ò
- ²ò·è¤¹¤ë¤Î¤ËÈó¾ï¤ËÍ­¸ú¤Ê ¤â¤Î¤Ë¤Ê¤êÆÀ¤ë¤³¤È¤Ç¤¹.
- »þ¤Ë¤Ï¤¢¤Ê¤¿¼«¿È¤Ç¿·¤·¤¤¤³¤È¤ò³Ø¤Ö¤³¤È¤µ¤¨
- ¤Ç¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó.
- ¤³¤ì¤é¤Î¥Õ¥©¡¼¥é¥à¤Ï¤ä¤ë¤Ù¤­¤³¤È¤Î¥¢¥¤¥Ç¥£¥¢
- ¤Î¸»¤Ë¤â¤Ê¤êÆÀ¤ë¤Î¤Ç¤¹.</para>
- </listitem>
-
- <listitem>
- <para>-current ¤ËÀµ¤·¤¯Åö¤Æ¤é¤ì¤ë¤¬¤·¤Ð¤é¤¯·Ð¤Ã¤Æ¤â(Ä̾ï¤Ï
- 2, 3 ½µ´Ö) -stable
- ¤Ë¼è¤ê¹þ¤Þ¤ì¤Æ¤Ê¤¤¤è¤¦¤Ê¥Ð¥°¥Õ¥£¥Ã¥¯¥¹¤¬¤¢¤ë¤Ê¤é¤Ð
- ¥³¥ß¥Ã¥¿¡¼¤Ë ÃúÇ«¤Ë»×¤¤½Ð¤µ¤»¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para>´ó£¥½¥Õ¥È¥¦¥§¥¢¤ò¥½¡¼¥¹¥Ä¥ê¡¼¤Î
- <filename>src/contrib</filename>
- ¤Ë°ÜÆ°¤µ¤»¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para><filename>src/contrib</filename>
- °Ê²¼¤Î¥³¡¼¥É¤¬ºÇ¿·¤Î¤â¤Î¤Ç¤¢¤ë¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para>2000 ǯÌäÂê¤Ë´Ø¤¹¤ë¥Ð¥°¤òõ¤·¤Æ¤¯¤À¤µ¤¤(¤½¤·¤Æ,
- ¸«¤Ä¤±¤¿¤é½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤!).</para>
- </listitem>
-
- <listitem>
- <para>·Ù¹ð¤ò¾ÜºÙ¤ËÊó¹ð¤¹¤ë¤è¤¦¤Ë¤·¤Æ
- ¥½¡¼¥¹¥Ä¥ê¡¼Á´ÂÎ(¤â¤·¤¯¤Ï¤½¤Î°ìÉô)¤ò¹½ÃÛ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤.
- ¤½¤·¤Æ·Ù¹ð¤¬½Ð¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para>ports ¤Ç, gets() ¤ò»È¤Ã¤Æ¤¤¤ë¤È¤« malloc.h
- ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë
- ¤Ê¤É¤È¤¤¤Ã¤¿·Ù¹ð¤¬½Ð¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para>¤â¤·¤Ê¤ó¤é¤«¤Î ports ¤Ë´Ø¤ï¤Ã¤Æ¤¤¤ë¤Ê¤é,
- ¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥Á¤òºî¼Ô¤Ë ¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤
- (¼¡¤Î¥Ð¡¼¥¸¥ç¥ó¤¬½Ð¤¿»þ¤Ë¤¢¤Ê¤¿¤¬³Ú¤Ë¤Ê¤ê¤Þ¤¹).</para>
- </listitem>
-
- <listitem>
- <para>¤³¤Î¥ê¥¹¥È¤ËÄɲ乤륿¥¹¥¯¤òÄó°Æ¤·¤Æ²¼¤µ¤¤!</para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>¾ã³²Êó¹ð(PR; Problem Report)¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤ª¤±¤ëºî¶È</title>
-
- <para><ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">
- FreeBSD ¾ã³²Êó¹ð¥ê¥¹¥È</ulink>¤Ç¤Ï, ¸½ºßÌäÂê¤È¤Ê¤Ã¤Æ¤¤¤ëÊó¹ð¤È,
- FreeBSD ¤ÎÍøÍѼԤˤè¤Ã¤ÆÄó½Ð¤µ¤ì¤¿²þÎɤÎÍ×˾¤Ë´Ø¤¹¤ë
- Á´¤Æ¤Î¥ê¥¹¥È¤ò¸ø³«¤·¤Æ¤¤¤Þ¤¹.
- open ¾õÂ֤ξ㳲¾ðÊó¤ò¸«¤Æ, ¶½Ì£¤ò°ú¤¯ÆâÍƤ«¤É¤¦¤«³Î¤«¤á¤Æ²¼¤µ¤¤.
- ËÜÅö¤ËÊ£»¨¤Ê¤â¤Î¤â´Þ¤Þ¤ì¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¤·,
- Î㤨¤Ð, ¾ã³²Êó¹ð¤ËÂФ¹¤ë½¤Àµ¤¬¤Á¤ã¤ó¤È¤·¤¿¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«
- ñ¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¤À¤±¤Î¤È¤Æ¤â´Êñ¤Êºî¶È¤â¤¢¤ë¤Ç¤·¤ç¤¦.</para>
-
- <para>¤Þ¤º, ¤Þ¤Àï¤Ë¤â³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¾ã³²Êó¹ð¤«¤éºî¶È¤ò
- »Ï¤á¤Æ²¼¤µ¤¤. ¤â¤·, 狼¾¤Î¿Í¤Ë³ä¤êÅö¤Æ¤¬·è¤Þ¤Ã¤Æ¤¤¤ë¤±¤ì¤É¤â
- ¼«Ê¬¤¬ºî¶È²Äǽ¤À, ¤È¤¤¤¦¤â¤Î¤¬¤¢¤ì¤Ð, ºî¶È¤¬¤Ç¤­¤ë¤«¤É¤¦¤«&mdash;
- ´û¤Ë¥Æ¥¹¥ÈÍѥѥåÁ¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤Î¤«¤É¤¦¤«, ¤¢¤ë¤¤¤Ï
- ¤½¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¤¢¤Ê¤¿¤¬¹Í¤¨¤Æ¤¤¤ë,
- ¤è¤ê¿Ê¤ó¤À¹Í¤¨¤Ë´Ø¤·¤ÆµÄÏÀ¤¬¤Ç¤­¤ë¤«¤É¤¦¤«,
- ³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¿Í¤ËÅŻҥ᡼¥ë¤ÇÌ䤤¹ç¤ï¤»¤Æ²¼¤µ¤¤.
- </para>
-
- </sect2>
- </sect1>
-
- <sect1 id="contrib-how">
- <title>¹×¸¥¤Î»ÅÊý</title>
-
- <para>°ìÈÌŪ¤Ë, ¥·¥¹¥Æ¥à¤Ø¤Î¹×¸¥¤Ï¼¡¤Î 6
- ¤Ä¤Î¥«¥Æ¥´¥ê¤Î1¤Ä°Ê¾å¤ËʬÎव¤ì¤Þ¤¹:</para>
-
- <sect2 id="contrib-general">
- <title>¥Ð¥°Êó¹ð¤È°ìÈÌŪ¤ÊÏÀɾ</title>
-
- <para>Êó¹ð¤¹¤ë¤Ù¤­¥Ð¥°¤¬¤¢¤Ã¤¿¤ê, Äó°Æ¤·¤¿¤¤¤³¤È¤¬¤¢¤ì¤Ð:</para>
-
- <para><emphasis>°ìÈÌŪ¤Ê</emphasis>
- µ»½ÑŪ´Ø¿´»ö¤Ë´Ø¤¹¤ë¥¢¥¤¥Ç¥¢¤äÄó°Æ¤Ï &a.hackers;
- ¤Ø¥á¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤. ƱÍͤË, ¤³¤Î¤è¤¦¤Ê»öÊÁ¤Ë¶½Ì£¤Î¤¢¤ë
- (¤½¤·¤Æ<emphasis>ËÄÂç¤Ê</emphasis>¥á¡¼¥ë! ¤ËÂѤ¨¤é¤ì¤ë) ¿Í¤Ï,
- &a.majordomo; ¤Ø¥á¡¼¥ë¤òÁ÷¤Ã¤Æ hackers
- ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤¹¤ë¤ÈÎɤ¤¤Ç¤·¤ç¤¦. ¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï
- <link linkend="eresources-mail">¥á¡¼¥ê¥ó¥°¥ê¥¹¥È</link>
- ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para>
-
- <para>¥Ð¥°¤òȯ¸«¤·¤¿¤êÊѹ¹¤òÁ÷ÉÕ¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï
- &man.send-pr.1; ¥×¥í¥°¥é¥à¤« <ulink
- url="http://www.FreeBSD.org/send-pr.html">WEB ¥Ù¡¼¥¹¤Î
- send-pr</ulink> ¤ò»ÈÍѤ·¤ÆÊó¹ð¤·¤Æ¤¯¤À¤µ¤¤.
- ¥Ð¥°¥ì¥Ý¡¼¥È¤Î³Æ¹àÌܤòËä¤á¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤. 65KB
- ¤òĶ¤¨¤ë¤Î¤Ç¤Ê¤±¤ì¤Ð, ¥ì¥Ý¡¼¥ÈÃæ¤ËľÀÜ
- ¥Ñ¥Ã¥Á¤òÆþ¤ì¤Æ¤¯¤À¤µ¤Ã¤Æ·ë¹½¤Ç¤¹.
- ¤½¤Î¾ì¹ç, ¥«¥Ã¥È¡õ¥Ú¡¼¥¹¥È¤Ï<emphasis>¤·¤Ê¤¤¤Ç</emphasis>
- ¤¯¤À¤µ¤¤. ¥«¥Ã¥È¡õ¥Ú¡¼¥¹¥È¤Ç¤Ï¥¿¥Ö¤¬¥¹¥Ú¡¼¥¹¤ËŸ³«¤µ¤ì¤Æ
- ¥Ñ¥Ã¥Á¤¬»È¤¤Êª¤Ë¤Ê¤é¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹.
- 20KB ¤òĶ¤¨¤ë¾ì¹ç¤Ï,
- ¤½¤ì¤é¤ò compress ¤·¤Æ &man.uuencode.1;
- ¤¹¤ë¤³¤È¤â¸¡Æ¤¤·¤Æ¤¯¤À¤µ¤¤. ¤È¤Æ¤âÂ礭¤¯¤Ê¤ë¾ì¹ç¤Ï <ulink
- url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">
- ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink>
- ¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤.
- </para>
-
- <para>¥ì¥Ý¡¼¥È¤¬¥Õ¥¡¥¤¥ê¥ó¥°¤µ¤ì¤ì¤Ð, ¥Ð¥°Êó¹ð¤Î³Îǧ¤È
- ¥È¥é¥Ã¥­¥ó¥°ÈÖ¹æ¤ò¥á¡¼¥ë¤Ç¼õ¤±¼è¤ë¤Ï¤º¤Ç¤¹.
- ¤³¤Î¥È¥é¥Ã¥­¥ó¥°ÈÖ¹æ¤ò³Ð¤¨¤Æ¤ª¤­, ÌäÂê¤Ë´Ø¤¹¤ë¾ÜºÙ¾ðÊó¤ò
- <email>bug-followup@FreeBSD.org</email> ¤Ë
- ¥á¡¼¥ë¤ÇÁ÷¤Ã¤Æ¹¹¿·¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤. Î㤨¤Ð
- <literal>"Re: kern/3377"</literal> ¤Î¤è¤¦¤Ë,
- ¤³¤ÎÈÖ¹æ¤ò¥µ¥Ö¥¸¥§¥¯¥È¹Ô¤Ë»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤.
- ¤¹¤Ù¤Æ¤Î¥Ð¥°¥ì¥Ý¡¼¥È¤ÎÄɲþðÊó¤Ï,
- ¤³¤ÎÊýË¡¤ÇÁ÷ÉÕ¤µ¤ì¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó.</para>
-
- <para>¤â¤·¥¿¥¤¥à¥ê¤Ë (¤¢¤Ê¤¿¤ÎÅŻҥ᡼¥ëÀܳ·ÁÂ֤ˤâ¤è¤ê¤Þ¤¹¤¬,
- 3Æü¤«¤é 1½µ´Ö) ³Îǧ¤ò¼õ¤±¤È¤ì¤Ê¤¤¤È¤«, ²¿¤é¤«¤ÎÍýͳ¤Ç
- &man.send-pr.1; ¥³¥Þ¥ó¥É¤¬ »ÈÍѤǤ­¤Ê¤¤¾ì¹ç¤Ë¤Ï, &a.bugs;
- ¤Ø¥á¡¼¥ë¤òÁ÷¤ê, 狼Âå¤ê¤Ë¥Ð¥°Êó¹ð¤ò
- Á÷ÉÕ¤·¤Æ¤â¤é¤¦¤è¤¦¤¿¤º¤Í¤Æ¤¯¤À¤µ¤¤.</para>
- </sect2>
-
- <sect2>
- <title>ʸ½ñ¤ÎÊѹ¹</title>
-
- <para>ʸ½ñ¤ÎÊѹ¹¤Ï &a.doc; ¤¬´ÆÆĤ·¤Æ¤¤¤Þ¤¹. <link
- linkend="contrib-general">¥Ð¥°Êó¹ð¤È°ìÈÌŪ¤ÊÏÀɾ</link>
- ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë <command>send-pr</command>
- ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ, Äó°Æ¤äÊѹ¹
- (¤É¤ó¤Êº³ºÙ¤Ê¤â¤Î¤Ç¤â´¿·Þ¤·¤Þ¤¹!) ¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤.</para>
- </sect2>
-
- <sect2>
- <title>¸½Â¸¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÊѹ¹</title>
-
- <para>¸½Â¸¤Î¥½¡¼¥¹¥³¡¼¥É¤Ø¤ÎÄɲäޤ¿¤ÏÊѹ¹¤Ï,
- ¤¤¤¯¤é¤«¥È¥ê¥Ã¥­¡¼¤Ê»Å»ö¤Ç ¤¢¤ê, core ¤Î FreeBSD
- ³«È¯¤Î¸½¾õ¤Ë¤¢¤Ê¤¿¤¬¤É¤ì¤À¤±Ä̤¸¤Æ¤¤¤ë¤«¤ËÂç ¤­¤¯°Í¸¤·¤Þ¤¹.
- <quote>FreeBSD-current</quote>¤È¤·¤ÆÃΤé¤ì¤ë FreeBSD ¤ÎÆÃÊ̤Ê
- ·Ñ³Ū¥ê¥ê¡¼¥¹¤¬¤¢¤ê¤Þ¤¹. FreeBSD-current
- ¤Ï³«È¯¼Ô¤ÎÀѶËŪ¤Ê³èÆ°¤Î Êص¹¤Î¤¿¤á¤Ë,
- ¿§¡¹¤ÊÊýË¡¤ÇÍøÍѲÄǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹. FreeBSD-current
- ¤ÎÆþ¼ê¤È»ÈÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾Ü¤·¤¤¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï <link
- linkend="current">ºÇ¿·¤Î FreeBSD ¤òÄɤ¤¤«¤±¤ë</link>
- ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para>
-
- <para>ÉÔ¹¬¤Ë¤·¤Æ¸Å¤¤¥½¡¼¥¹¤ò¤â¤È¤Ë»Å»ö¤ò¤¹¤ë¤³¤È¤Ï,
- »þ¡¹¤¢¤Ê¤¿¤ÎÊѹ¹¤¬»þ ÂåÃÙ¤ì, ¤Þ¤¿¤Ï FreeBSD
- ¤Ø¤Î´Êñ¤ÊºÆÅý¹ç¤Ë¹ç¤ï¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò°Õ Ì£¤·¤Þ¤¹.
- ¥·¥¹¥Æ¥à¤Î¸½¾õ¤Ë´Ø¤¹¤ëµÄÏÀ¤¬¤ª¤³¤Ê¤ï¤ì¤Æ¤¤¤ë &a.announce; ¤È
- &a.current; ¤Ø»²²Ã¤¹¤ë¤³¤È¤Ç,
- ¤³¤Î²ÄǽÀ­¤òºÇ¾®¸Â¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.</para>
-
- <para>´°Á´¤ÊºÇ¿·¤Î¥½¡¼¥¹¤òÊѹ¹¤Î¥Ù¡¼¥¹¤Ë¤Ç¤­¤ë¤³¤È¤¬
- ³Î¼Â¤Ë¤Ê¤Ã¤¿¤È²¾Äꤷ ¤Æ, ¼¡¤Î¥¹¥Æ¥Ã¥×¤Ï FreeBSD
- ¤ÎÊݼéôÅö¼Ô¤ØÁ÷¤ëº¹Ê¬¥Õ¥¡¥¤¥ë¤ÎÀ¸À®¤Ç¤¹. ¤³¤ì¤Ï &man.diff.1;
- ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤ª¤³¤Ê¤¤¤Þ¤¹¤¬, <quote>context
- diff</quote>·Á¼°¤¬¹¥¤Þ¤ì¤ë¤è¤¦¤Ç¤¹. Î㤨¤Ð:</para>
-
- <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
-
- <para>¤Þ¤¿¤Ï</para>
-
- <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
-
- <para>¤³¤ì¤Ç»ØÄꤵ¤ì¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê³¬ÁؤË
- ÂФ¹¤ë¥³¥ó¥Æ ¥­¥¹¥È·Á¼°¤Îº¹Ê¬¤¬À¸À®¤µ¤ì¤Þ¤¹. ¾Ü¤·¤¤ÀâÌÀ¤Ï
- &man.diff.1; ¤Î¥Þ ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para>
-
- <para>º¹Ê¬¥Õ¥¡¥¤¥ë (&man.patch.1; ¥³¥Þ¥ó¥É¤Ç¥Æ¥¹¥È¤Ç¤­¤Þ¤¹)
- ¤òºî¤Ã¤¿¤é, ¤½¤ì¤é¤ò FreeBSD
- ¤Ë´Þ¤á¤Æ¤â¤é¤¦¤è¤¦¥á¡¼¥ë¤ÇÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤. <link
- linkend="contrib-general">¥Ð¥°Êó¹ð¤È°ìÈÌŪ¤ÊÏÀɾ</link>
- ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë &man.send-pr.1;
- ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤. º¹Ê¬¥Õ¥¡¥¤¥ë¤À¤±¤ò &a.hackers;
- ¤ØÁ÷¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó. ÅÓÊý¤Ë¤¯¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹!
- »ä¤¿¤Á¤Ï¿˻¤Ê¤Î¤Ç, ¤¢¤Ê¤¿¤ÎÄó°Æ¤ËÂçÊÑ´¶¼Õ¤·¤Þ¤¹
- (¤³¤ì¤Ï¥Ü¥é¥ó¥Æ¥£¥¢¤Î¥×¥í¥¸¥§¥¯¥È¤Ç¤¹!).
- ¤¹¤°¤Ë¼è¤ê¤«¤«¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬, ½èÍý¤µ¤ì¤ë¤Þ¤Ç¤Ï ¤Á¤ã¤ó¤È
- pr ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë»Ä¤Ã¤Æ¤¤¤Þ¤¹.</para>
-
- <para>¤¢¤Ê¤¿¤¬¤½¤¦¤·¤¿Êý¤¬¤¤¤¤¤È»×¤¦¾ì¹ç (Î㤨¤Ð,
- ¥Õ¥¡¥¤¥ë¤ÎÄɲÃ, ºï½ü¤Þ¤¿¤Ï̾¾ÎÊѹ¹¤Ê¤É), Êѹ¹¤ò
- <command>tar</command> ¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á, &man.uuencode.1;
- ¥×¥í¥°¥é¥à¤Ë¤«¤±¤Æ¤¯¤À¤µ¤¤. shar
- ¥¢¡¼¥«¥¤¥Ö¤â´¿·Þ¤·¤Þ¤¹.</para>
-
- <para>Î㤨¤Ð¤¢¤Ê¤¿¤¬¤½¤ì¼«¿È¤Î¤µ¤é¤Ê¤ëÇÛÉÛ¤ò´ÉÍý¤¹¤ë
- ¥³¥Ô¡¼¥é¥¤¥ÈÌäÂê¤òÎÉ ¤¯Ê¬¤«¤Ã¤Æ¤¤¤Ê¤¤¤È¤«,
- ñ¤Ë¸·¤·¤¤¥ì¥Ó¥å¡¼¤ò¤ª¤³¤Ê¤Ã¤Æ¤ª¤é¤º, ¥ê¥ê¡¼¥¹
- ¤¹¤ë½àÈ÷¤¬¤Ç¤­¤Æ¤¤¤Ê¤¤¤Ê¤É,
- ¤¢¤Ê¤¿¤ÎÊѹ¹¤¬ÀøºßŪ¤ËÉÔ°ÂÄê¤ÊÀ­¼Á¤ò¤â ¤Ä¤â¤Î¤Ç¤¢¤ë¾ì¹ç,
- &man.send-pr.1; ¤ÇÁ÷ÉÕ¤¹¤ë¤è¤ê¤à¤·¤í &a.core;
- ¤ØľÀÜÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤. ¥³¥¢¥Á¡¼¥à¥á¡¼¥ê¥ó¥°¥ê¥¹¥È°¸¤Î¥á¡¼¥ë¤Ï,
- Æü¡¹¤Î»Å»ö¤Î¤Û¤È¤ó¤É¤ò FreeBSD ¤Ç¤ª¤³¤Ê¤Ã¤Æ¤¤¤ë¿Í¤¿¤Á¤Î,
- ¤è¤ê¾®¤µ¤Ê¥°¥ë¡¼ ¥×¤ËÆϤ­¤Þ¤¹.
- ¤³¤Î¥°¥ë¡¼¥×¤â¤Þ¤¿<emphasis>¤È¤Æ¤âË»¤·¤¤</emphasis>
- ¤³¤È¤ËÃí°Õ¤· ¤Æ, ËÜÅö¤ËɬÍפʾì¹ç¤Ë¥³¥¢¥Á¡¼¥à¤ÎÈà¤é¤Ë¥á¡¼¥ë¤ò
- Á÷¤ë¤À¤±¤Ë¤·¤Æ¤¯¤À¤µ¤¤.</para>
-
- <para>¥³¡¼¥Ç¥£¥ó¥°¥¹¥¿¥¤¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ï <command>man 9
- intro</command> ¤ª¤è¤Ó <command>man 9 style</command>
- ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤. ¥³¡¼¥É¤òÄó½Ð¤¹¤ëÁ°¤Ë¤Ï,
- ¾¯¤Ê¤¯¤È¤â¤³¤Î¾ðÊó¤ò°Õ¼±¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤ë¤è¤¦¤ª´ê¤¤¤·¤Þ¤¹.
- </para>
- </sect2>
-
- <sect2>
- <title>¿·¤¿¤Ê¥³¡¼¥É¤ä¥á¥¸¥ã¡¼¤ÊÉղòÁÃͤι⤤¥Ñ¥Ã¥±¡¼¥¸</title>
-
- <para>½ÅÍפÊÂ礭¤¤»Å»ö¤Î´ó£¤ä, ½ÅÍפʿ·¤·¤¤µ¡Ç½¤ò
- FreeBSD ¤ËÄɲ乤ë¾ì¹ç¤Ë¤Ï, Êѹ¹ÅÀ¤ò tar/uuencode
- ¤·¤¿¥Õ¥¡¥¤¥ë¤Ë¤·¤ÆÁ÷¤ë¤«, ¤½¤ì¤é¤ò web ¤ä FTP ¥µ¥¤¥È¤Ø
- ¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Î
- ¤É¤Á¤é¤«¤¬Ä̾ïɬÍפˤʤê¤Þ¤¹. web ¤ä FTP ¥µ¥¤¥È¤Ø¤Î¥¢¥¯¥»¥¹¤¬
- ¤Ç¤­¤Ê¤¤¤È¤­¤ÏŬÀÚ¤Ê FreeBSD ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç狼¤Ë
- Êѹ¹¤ò¼õ¤±¼è¤Ã¤ÆÌã¤Ã¤Æ¤¯¤À¤µ¤¤.</para>
-
- <para>ÂçÎ̤Υ³¡¼¥É¤òȼ¤Ã¤¿»Å»ö¤Î¾ì¹ç,
- ¥³¥Ô¡¼¥é¥¤¥È¤Î¿À·Ð²áÉÒ¤ÊÌäÂ꤬¾ï¤Ë½Ð¤Æ¤­¤Þ¤¹. FreeBSD
- ¤Ë´Þ¤á¤ë¥³¡¼¥É¤Î¥³¥Ô¡¼¥é¥¤¥È¤È¤·¤Æ¼õ¤±Æþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï,
- °Ê²¼¤ÎÆó¤Ä¤Ç¤¹:</para>
-
- <orderedlist>
- <listitem>
- <para>BSD ¥³¥Ô¡¼¥é¥¤¥È.
- ¤³¤Î¥³¥Ô¡¼¥é¥¤¥È¤Ï<quote>¸¢Íø¤ËÇû¤é¤ì¤Ê¤¤</quote>À­³Ê
- ¤È¾¦ÍÑ´ë¶È¤Ë¤È¤Ã¤Æ°ìÈÌŪ¤ÊÌ¥ÎϤò¤â¤Ä¤¿¤á¤ËºÇ¤â¹¥¤Þ¤ì¤Þ¤¹.
- FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï¾¦ÍÑÍøÍѤòÁˤó¤À¤ê¤»¤º, ²¿¤«¤ò
- FreeBSD
- ¤ØÅê»ñ¤¹¤ëµ¤¤Ë¤Ê¤Ã¤¿¾¦¶È´Ø·¸¼Ô¤Ë¤è¤ë»²²Ã¤òÀѶËŪ¤Ë¾©Îå
- ¤·¤Þ¤¹.</para>
- </listitem>
-
- <listitem>
- <para>GNU°ìÈ̸øÍ­»ÈÍѵöÂú, ¤Þ¤¿¤Ï<quote>GPL</quote>.
- ¤³¤Î¥é¥¤¥»¥ó¥¹¤Ï¥³¡¼¥É
- ¤ò¾¦ÍÑÌÜŪ¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Ë;ʬ¤ÊÅØÎϤ¬µá¤á¤é¤ì¤ë¤¿¤á,
- »ä¤¿¤Á¤Ë¤¢¤Þ¤êɾȽ¤¬Îɤ¤¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó. ¤·¤«¤·,
- »ä¤¿¤Á¤Ï´û¤Ë GPL ²¼¤Î¹âÉʼÁ¤Ê¥³¡¼¥É (¥³¥ó¥Ñ¥¤¥é,
- ¥¢¥»¥ó¥Ö¥é, ¥Æ¥­¥¹¥È¥Õ¥©¡¼¥Þ¥Ã¥¿Åù) ¤ÎÄ󶡤ò¼õ¤±¤Æ¤ª¤ê,
- »ä¤¿¤Á¤Ï¸½ºß¤½¤ì¤òɬÍפȤ·¤Æ¤¤¤Þ¤¹. ¤½¤Î¤¿¤á,
- ¤³¤Î¥é¥¤¥»¥ó¥¹¤Ë¤è¤ë¿·¤¿¤Ê¹×¸¥¤òµñÀ䤹
- ¤ë¤È¤¤¤¦¤Î¤Ï¶ò¤«¤Ê¤³¤È¤Ç¤·¤ç¤¦. GPL
- ²¼¤Î¥³¡¼¥É¤Ï¥½¡¼¥¹¥Ä¥ê¡¼ ¤ÎÊ̤ÎÉôʬ, ¸½ºß¤Î¤È¤³¤í
- <filename>/sys/gnu</filename> ¤«
- <filename>/usr/src/gnu</filename> ¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹.
- ¤½¤Î¤¿¤á, GPL ¤¬ÌäÂê¤È¤Ê¤ë¤è¤¦¤Ê¿Í¤Ï,
- ï¤Ç¤â´Êñ¤Ë¤½¤ì¤È¤ï¤«¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹.</para>
- </listitem>
- </orderedlist>
-
- <para>¤³¤ì°Ê³°¤Î¥¿¥¤¥×¤Î¥³¥Ô¡¼¥é¥¤¥È¤Ë¤è¤ë´ó£¤Ï, FreeBSD
- ¤Ø´Þ¤á¤ë¤³¤È¤ò¹Íθ¤¹¤ëÁ°¤Ë,
- Ãí°Õ¿¼¤¤¥ì¥Ó¥å¡¼¤ò¼õ¤±¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. ºî¼Ô¤¬Æȼ«
- ¤Î¥Á¥ã¥Í¥ë¤òÄ̤·¤ÆÇÛÉÛ¤·¤Æ¤ª¤ê,
- ¤½¤Î¤è¤¦¤ÊÊѹ¹¤ò¤ª¤³¤Ê¤¦¤³¤È¤ò¾ï¤Ë¾©Î夷¤Æ¤¤¤ë¾ì¹ç¤Ç¤â,
- Æä˸ÂÄêŪ¤Ê¾¦ÍѤΥ³¥Ô¡¼¥é¥¤¥È¤¬Å¬ÍѤµ¤ì¤ë´ó
- £¤Ï°ìÈ̤˵ñÈݤµ¤ì¤Þ¤¹.</para>
-
- <para>¤¢¤Ê¤¿¤ÎºîÉÊ¤Ë <quote>BSD-¥¹¥¿¥¤¥ë</quote>
- ¤Î¥³¥Ô¡¼¥é¥¤¥È¤òÉÕ¤±¤ë¤Ë¤Ï, Êݸ¤¿
- ¤¤¥½¡¼¥¹¥³¡¼¥É¥Õ¥¡¥¤¥ë¤¹¤Ù¤Æ¤Î°ìÈֺǽé¤Ë
- °Ê²¼¤Î¥Æ¥­¥¹¥È¤òÆþ¤ì¤Æ, <literal>%%</literal>
- ¤Î´Ö¤òŬÀڤʾðÊó¤ËÃÖ¤­´¹¤¨¤¯¤À¤µ¤¤.</para>
-
- <programlisting>Copyright (c) %%ŬÀÚ¤Êǯ%%
- %%¤¢¤Ê¤¿¤Î̾Á°%%, %%¤¢¤Ê¤¿¤Î½£%% %%͹ÊØÈÖ¹æ%%.
- 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 %%¤¢¤Ê¤¿¤Î̾Á°%% ``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 %%¤¢¤Ê¤¿¤Î̾Á°%% 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>
-
- <para>(ÌõÃí: °Ê²¼¤Ï¿ÀÅÄÉÒ¹­»á¤è¤ê´ó£¤µ¤ì¤¿ bsd-style-copyright
- ¤ÎÆüËܸìÌõ¤Ç¤¹.
- ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë´Þ¤á¤ë¤â¤Î¤Ï¸¶Ê¸¤ÎÊý¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ
- ¤´ÍøÍѤ¯¤À¤µ¤¤. ¤Þ¤¿, ¸¶Ê¸¤È¤Î´Ö¤Ë¼ñ»Ý¤Îº¹°Û¤¬À¸¤¸¤¿¾ì¹ç,
- ¸¶Ê¸¤ÎÆâÍƤ¬ FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Î
- °Õ»×¤Ç¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹.)</para>
-
- <programlisting>
-Copyright (C) [ǯ]
- [¤¢¤Ê¤¿¤Î̾Á°] All rights reserved.
-
-¥½¡¼¥¹¤È¥Ð¥¤¥Ê¥ê·Á¼°¤ÎºÆÇÛÉÛ¤ª¤è¤Ó»ÈÍѤÏ, Êѹ¹¤Î̵ͭ¤Ë¤«¤«¤ï¤é¤º°Ê²¼¤Î
-¾ò·ï¤òËþ¤¿¤¹¾ì¹ç¤Ë¸Â¤êµö²Ä¤µ¤ì¤ë:
-1. ¥½¡¼¥¹¥³¡¼¥É¤ÎºÆÇÛÉÛ¤Ï, ¾åµ­¤ÎÃøºî¸¢É½¼¨¡¦¤³¤Î¾ò·ï¤Î¥ê¥¹¥È¡¦²¼µ­¤Î
- ÈÝǧÀ¼ÌÀʸ¤òÊÝ»ý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤.
-
-2. ¥Ð¥¤¥Ê¥ê·Á¼°¤ÎºÆÇÛÉÛ¤Ï, ¾åµ­¤ÎÃøºî¸¢É½¼¨¡¦¤³¤Î¾ò·ï¤Î¥ê¥¹¥È¡¦²¼µ­¤Î
- ÈÝǧÀ¼ÌÀʸ¤ò, ÇÛÉÛʪ¤È¶¦¤ËÄ󶡤µ¤ì¤ëʸ½ñ¤ª¤è¤Ó/¤Þ¤¿¤Ï¾¤Î»ñÎÁ¤ÎÃæ¤Ë
- ´Þ¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤.
-
-(ÌõÃí:¤³¤³¤«¤é¡ÖÈÝǧÀ¼ÌÀʸ¡×¤Ç¤¹)
-
-¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï[¤¢¤Ê¤¿¤Î̾Á°]¤ª¤è¤Ó¹×¸¥¼Ô¤Ë¤è¤Ã¤Æ ``¤¢¤ë¤¬¤Þ¤Þ¤Î¾õÂÖ''
-¤ÇÄ󶡤µ¤ì, ¾¦ÉÊÀ­¤ÈÆÃÄê¤ÎÌÜŪ¤ËÂФ¹¤ëŬ¹çÀ­¤Ë¤Ä¤¤¤Æ¤Î°ÅÌÛ¤ÎÊݾڤËα¤Þ
-¤é¤º, ¤¤¤«¤Ê¤ëÌÀ¼¨¤ª¤è¤Ó°ÅÌÛ¤ÎÊݾڤòǧ¤á¤Ê¤¤. [¤¢¤Ê¤¿¤Î̾Á°]¤ª¤è¤Ó¹×¸¥
-¼Ô¤Ï, ¤¢¤é¤æ¤ëľÀÜŪ¡¦´ÖÀÜŪ¡¦¶öȯŪ¡¦ÆüìŪ¡¦Åµ·¿Åª¡¦É¬Á³Åª¤Ê»³² (Âå
-ÂØÀ½Éʤޤ¿¤ÏÂåÂØ¥µ¡¼¥Ó¥¹¤Î³ÍÆÀÈñ; ¸úÍÑ¡¦¥Ç¡¼¥¿¡¦Íø±×¤ÎÁÓ¼º; ¤Þ¤¿¤Ï¶È̳
-ÃæÃǤò´Þ¤ß, ¤Þ¤¿¤½¤ì¤À¤±¤Ëα¤Þ¤é¤Ê¤¤Â»³²) ¤ËÂФ·¤Æ, ¤¿¤È¤¨¤É¤Î¤è¤¦¤Ë¤·
-¤ÆÀ¸¤¸¤¿¤È¤·¤Æ¤â, ¤½¤·¤Æ¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î»ÈÍѤˤè¤Ã¤Æ¤É¤Î¤è¤¦¤Ë¤Ç¤¢¤ì
-À¸¤¸¤ë, ·ÀÌó¾å¤Ç¤¢¤í¤¦¤È, ¸·Ì©¤ÊÀÕǤÆâ¤Ç¤¢¤í¤¦¤È, ¤¢¤ë¤¤¤ÏÉÔÀµ¹Ô°Ù (²á
-¼º¤ä¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤ò´Þ¤à) ¤Ë¤ª¤±¤ë¾ì¹ç¤Ç¤¢¤í¤¦¤È¤â, ¤¤¤«¤Ê¤ëÀÕǤÏÀ¾å¤â,
-¤¿¤È¤¨¤½¤Î¤è¤¦¤Ê»³²¤Î²ÄǽÀ­¤¬Í½¸«¤µ¤ì¤Æ¤¤¤¿¤È¤·¤Æ¤â, °ìÀÚ¤ÎÀÕǤ¤ò»ý¤¿
-¤Ê¤¤.
-
-ËÝÌõ: ¿ÀÅÄÉÒ¹­
-¸æ¶¨ÎÏ (¸Þ½½²»½ç¡¦·É¾Îά):
- ÃÓÅĸ¦Æó, ÆâÀî ´î¾Ï, ƣ¼ ±Ñ¼£, ¤à¤é¤¿¤·¤å¤¦¤¤¤Á¤í¤¦
- ÌÝÌî ²í°ì, ²£ÅÄ¡÷±§ÅÔµÜ
- </programlisting>
- </sect2>
-
- <sect2>
- <title>¶âÁ¬, ¥Ï¡¼¥É¥¦¥§¥¢¤Þ¤¿¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥¯¥»¥¹</title>
-
- <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤ÎÌÜŪ¤ò¿Ê¤á¤ë¤¿¤á¤Î´óÉÕ¤ä,
- »ä¤¿¤Á¤ÈƱ¤¸¤è¤¦¤Ê ¥Ü¥é¥ó¥Æ¥£¥¢¤ÎºÙ¤¯Ä¹¤¤! ÅØÎϤò,
- »ä¤¿¤Á¤Ï¾ï¤Ë´î¤ó¤Ç¼õ¤±Æþ¤ì¤Æ¤¤¤Þ¤¹.
- ¤Þ¤¿°ìÈÌŪ¤Ë»ä¤¿¤Á¤Ï¼«Ê¬Ã£¤Ç
- ¼þÊÕµ¡´ï¤òÇ㤦»ñ¶â¤¬ÉÔ­¤·¤Æ¤¤¤ë¤¿¤á,
- ¼þÊÕµ¡´ï¤Î¥µ¥Ý¡¼¥È¤ò½¼¼Â¤µ¤»¤ë¤Î¤Ë
- ¥Ï¡¼¥É¥¦¥§¥¢¤Î´óÉդϤȤƤâ½ÅÍפǤ¹.</para>
-
- <sect3 id="donations">
- <title>»ñ¶â¤Î´óÉÕ</title>
-
- <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï501(C3) (Èó±ÄÍø) ´ë¶È¤Ç¤Ï¤Ê¤¤¤¿¤á,
- ¤¤¤«¤Ê¤ë´óÉÕ¤ËÂФ·¤Æ¤âÆÃÊ̤ÊÀǶâ¤ÎÍ¥¶øÁ¼ÃÖ¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó.
- ¤³¤Î¤è¤¦¤Ê ´óÉÕ¤Ï¥×¥í¥¸¥§¥¯¥È¤òÂåɽ¤·¤Æ FreeBSD, Inc.
- ¤Ë¤è¤ê´¶¼Õ¤ò¤â¤Ã¤Æ¼õ¤±Æþ¤ì¤é¤ì¤ë¤Ç¤·¤ç¤¦.</para>
-
- <para>FreeBSD, Inc. ¤Ï FreeBSD
- ¥×¥í¥¸¥§¥¯¥È¤Î¿ä¿Ê¤È¥×¥í¥¸¥§¥¯¥È¤Ë´ë¶È¤È¤·
- ¤Æ¤ÎºÇ¾®¸Â¤ÎÂκۤò»ý¤¿¤»¤ë¤³¤È¤òÌÜŪ¤È¤·¤Æ, 1995ǯ¤Î½é¤á¤Ë
- &a.jkh; ¤È &a.dg; ¤Ë¤è¤êÀßΩ¤µ¤ì¤Þ¤·¤¿.
- ´óÉÕ¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î»ñ¶â¤Ï (ºÇ½ªÅª¤Ë FreeBSD,
- Inc.¤Ë¤è¤ê¤â¤¿¤é¤µ¤ì¤ë¤Ç¤¢¤í¤¦¤¹¤Ù¤Æ¤ÎÍø±×¤âƱÍͤË)
- ¥×¥í¥¸¥§¥¯¥È¤ÎÌÜɸ¤ò¿ä¿Ê¤¹¤ë¤¿¤á¤À¤±¤Ë»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦.</para>
-
- <para>»Ùʧ¤¤Àè¤ò FreeBSD, Inc. ¤È¤·¤¿¾®ÀÚ¼ê¤ò,
- ¼¡¤Î½»½êµ¤ÉÕ¤±¤ÇÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤:</para>
-
- <address>
- <otheraddr>FreeBSD, Inc.</otheraddr>
- <otheraddr>c/o Jordan Hubbard</otheraddr>
- <street>4041 Pike Lane, Suite F</street>
- <city>Concord</city>
- <state>CA</state>, <postcode>94520</postcode>
- </address>
-
- <para>[¸½ºß »ä½ñÈ¢¤¬³«Àߤµ¤ì¤ë¤Þ¤Ç°ì»þŪ¤Ë BSDi
- ¤Î½»½ê¤ò»ÈÍÑ]</para>
-
- <para>ÅÅ¿®¿¶Âؤϼ¡¤Î½ê¤Þ¤ÇľÀÜÁ÷¤ì¤ë¤Ç¤·¤ç¤¦:</para>
-
- <address>
- <otheraddr>Bank Of America</otheraddr>
- <otheraddr>Concord Main Office</otheraddr>
- <pob>P.O. Box 37176</pob>
- <city>San Francisco</city>
- <state>CA</state>, <postcode>94137-5176</postcode>
-
- <otheraddr>Routing #: 121-000-358</otheraddr>
- <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr>
- </address>
-
- <para>´óÉդ˴ؤ¹¤ë¤³¤È¤ÏÁ´¤ÆÅŻҥ᡼¥ë¤â¤·¤¯¤Ï¾åµ­ FreeBSD,
- Inc. ¤Î½»½ê°¸¤Î͹À¯¾Ê¥á¡¼¥ë¤Ë¤Æ &a.jkh
- ¤Þ¤Ç¤ªÁ÷¤ê¤¯¤À¤µ¤ë¤è¤¦¤ª´ê¤¤¤·¤Þ¤¹.</para>
-
- <para>¤â¤· <link linkend="donors">´ó£¼Ô¥®¥ã¥é¥ê¡¼</link>
- ¤ÎÀá¤Çƿ̾¤ò´õ˾¤µ¤ì¤ëÊý¤Ï, ´óÉդκݤˤ½¤Î»Ý¤ªÅÁ¤¨¤¯¤À¤µ¤¤.
- Thanks!</para>
- </sect3>
-
- <sect3>
- <title>¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£</title>
-
- <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï,
- ¼¡¤Î3¤Ä¤Î¥«¥Æ¥´¥ê¤Î¤É¤ó¤Ê¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£¤â,
- ´î¤ó¤Ç¼õ¤±ÉÕ¤±¤Þ¤¹:</para>
-
- <itemizedlist>
- <listitem>
- <para>¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö,
- ¥á¥â¥ê¤Þ¤¿¤Ï´°Á´¤Ê¥·¥¹¥Æ¥à¤È¤¤¤Ã¤¿°ìÈÌÍÑÅӤΥϡ¼¥É¥¦¥§¥¢¤Ï,
- <emphasis>»ñ¶â¤Î´óÉÕ</emphasis>¤ÎÀá¤Ë¤¢¤ë
- FreeBSD, Inc. ¤Î½»½ê¤Þ¤ÇÁ÷¤Ã ¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para>¿Ê¹ÔÃæ¤Î¼õ¤±Æþ¤ì¥Æ¥¹¥È¤Î¤¿¤á¤Î
- ¥Ï¡¼¥É¥¦¥§¥¢¤¬É¬ÍפȤµ¤ì¤Æ¤¤¤Þ ¤¹.
- ¿·¤¿¤Ê¥ê¥ê¡¼¥¹Ëè¤ËŬÀڤʵչԥƥ¹¥È¤¬¤Ç¤­¤ë¤è¤¦¤Ë,
- »ä¤¿¤Á¤Ï¸½ºß, FreeBSD
- ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤¹¤Ù¤Æ¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î
- ¥Æ¥¹¥È¥é¥Ü¤òÀßÃÖ¤·¤è¤¦ ¤È¤·¤Æ¤¤¤Þ¤¹. »ä¤¿¤Á¤Ë¤Ï¤Þ¤À,
- ¤¿¤¯¤µ¤ó¤Î½ÅÍפÊÉôÉÊ (¥Í¥Ã¥È¥ï¡¼¥¯¥«¡¼¥É,
- ¥Þ¥¶¡¼¥Ü¡¼¥É¤Ê¤É) ¤¬ÉÔ­¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç,
- ¤³¤Î¤è¤¦¤Ê´ó£¤ò¤·¤¿¤¤¤È»×¤Ã¤Æ ¤¤¤ë¤Ê¤é¤Ð, &a.dg;
- ¤Ø¥³¥ó¥¿¥¯¥È¤·¤Æ¤É¤ÎÉôÉʤ¬¤Þ¤ÀɬÍפȤµ¤ì¤Æ¤¤¤ë¤«
- ¤Î¾ðÊó¤òÆÀ¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
-
- <listitem>
- <para>¸½ºß FreeBSD ¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢¤Ç,
- ¥µ¥Ý¡¼¥È¤ËÄɲä·¤ÆÍߤ·¤¤¤â¤Î.
- »ä¤¿¤Á¤¬¿·¤·¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ò¼õ¤±¤È¤ëÁ°¤Ë¤½¤Î¥¿¥¹¥¯¤ò
- °ú¤­¼õ¤±¤Æ¤¯¤ì¤ë³«È¯¼Ô¤òõ¤¹É¬Íפ¬¤¢¤ë¤¿¤á,
- ¤½¤ÎÉôÉʤòÁ÷¤ëÁ°¤Ë &a.core;
- ¤Ë¥³¥ó¥¿¥¯¥È¤ò¼è¤Ã¤Æ¤¯¤À¤µ¤¤.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3>
- <title>¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥¯¥»¥¹¤Î´óÉÕ</title>
-
- <para>»ä¤¿¤Á¤Ï¾ï¤Ë FTP, WWW ¤ä <command>cvsup</command>
- ¤Î¿·¤·¤¤¥ß¥é¡¼¥µ¥¤¥È¤òÊ罸¤·¤Æ¤¤¤Þ¤¹.
- ¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ê¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï the FreeBSD project
- administrators <email>hubs@FreeBSD.org</email>
- ¤Ë¥³¥ó¥¿¥¯¥È¤ò¼è¤Ã¤Æ, ¾Ü¤·¤¤¾ðÊó¤ò¼ê¤ËÆþ¤ì¤Æ¤¯¤À¤µ¤¤.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="donors">
- <title>´ó£¼Ô¥®¥ã¥é¥ê¡¼</title>
-
- <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï¼¡¤Î´ó£¼Ô¤Ë²¸µÁ¤ò¼õ¤±¤Æ¤ª¤ê,
- ¤³¤³¤Ë¸øɽ¤·¤Æ´¶¼Õ¤Î°Õ¤òɽ¤·¤¿¤¤¤È»×¤¤¤Þ¤¹.</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>
- ¥»¥ó¥È¥é¥ë¥µ¡¼¥Ð¥×¥í¥¸¥§¥¯¥È¤Ø¤Î´ó£¼Ô:</emphasis></para>
-
- <para>¼¡¤Ëµó¤²¤ë¸Ä¿Í¤ª¤è¤Ó´ë¶È¤«¤é¤Ï,
- ¥»¥ó¥È¥é¥ë¥µ¡¼¥Ð¥Þ¥·¥ó¤Î¤¿¤á¤Î ÉôÉʤδó£¤ò夤¤Æ¤ª¤ê,
- ¤½¤ì¤Ë¤è¤Ã¤Æ <hostid
- role="fqdn">freefall.FreeBSD.org</hostid>
- ¤ò¥ê¥×¥ì¡¼¥¹¤·¤Æ¿·¤¿¤Ë FreeBSD
- ¥×¥í¥¸¥§¥¯¥È¤Î¥»¥ó¥È¥é¥ë¥µ¡¼¥Ð¥Þ¥·¥ó¤ò
- ¹½ÃÛ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿:</para>
-
- <itemizedlist>
- <listitem>
- <para>&a.mbarkah
- ¤ÈÈà¤Î½ê°¤¹¤ë <ulink
- url="http://www.hemi.com/">Hemisphere Online</ulink>
- ¤Ï, <emphasis>Pentium Pro (P6) 200Mhz CPU</emphasis>
- ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.asacomputers.com/">ASA
- Computers</ulink> ¤Ï, <emphasis>Tyan 1662
- ¥Þ¥¶¡¼¥Ü¡¼¥É</emphasis>
- ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.via.net/">ViaNet
- Communications</ulink> ¤Î Joe McGuckin
- <email>joe@via.net</email> ¤Ï, <emphasis>Kingston
- ¥¤¡¼¥µ¥Í¥Ã¥È¥³¥ó¥È¥í¡¼¥é</emphasis>
- ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para>Jack O'Neill
- <email>jack@diamond.xtalwind.net</email> ¤Ï,
- <emphasis>NCR 53C875 SCSI ¥³¥ó¥È¥í¡¼¥é¥«¡¼¥É</emphasis>
- ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.Alameda.net/">Alameda
- Networks</ulink> ¤Î Ulf Zimmermann
- <email>ulf@Alameda.net</email> ¤Ï, <emphasis>128MB
- ¤Î¥á¥â¥ê</emphasis>, ¤½¤·¤Æ <emphasis>4 GB
- ¤Î¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤È¶©ÂÎ</emphasis>
- ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>ľÀÜŪ¤Ê»ñ¶âÄó¶¡:</emphasis></para>
-
- <para>¼¡¤Ëµó¤²¤ë¸Ä¿Í¤ª¤è¤Ó´ë¶È¤«¤é¤Ï FreeBSD
- ¥×¥í¥¸¥§¥¯¥È¤ËÂФ¹¤ëľÀÜŪ¤Ê
- »ñ¶âÄ󶡤ò夤¤Æ¤ª¤ê¤Þ¤¹:</para>
-
- <itemizedlist>
- <listitem>
- <para>Annelise Anderson
- <email>ANDRSN@HOOVER.STANFORD.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>&a.dillon</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.bluemountain.com/">Blue Mountain
- Arts</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.epilogue.com/">
- Epilogue Technology Corporation</ulink></para>
- </listitem>
-
- <listitem>
- <para>&a.sef</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.gta.com/">Global Technology
- Associates, Inc</ulink></para>
- </listitem>
-
- <listitem>
- <para>Don Scott Wilde</para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@masternet.it</email></para>
- </listitem>
-
- <listitem>
- <para>Josef C. Grosch <email>joeg@truenorth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Robert T. Morris</para>
- </listitem>
-
- <listitem>
- <para>&a.chuckr</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.imagescape.com/">
- Imaginary Landscape, LLC.</ulink>
- ¤Î Kenneth P. Stox
- <email>ken@stox.sa.enteract.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry S. Kohmanyuk <email>dk@dog.farm.org</email></para>
- </listitem>
-
- <listitem>
- <para>ÆüËܤÎ
- <ulink url="http://www.cdrom.co.jp/">Laser5</ulink>
- ¤Ï, ¤µ¤Þ¤¶¤Þ¤Ê¼ïÎà¤Î FreeBSD CD ¤ÎÈÎÇäÍø±×¤Î°ìÉô¤ò
- ´óÉÕ¤·¤Æ¤¯¤ì¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.mmjp.or.jp/fuki/">
- Éù½ÐÈÇ</ulink> ¤Ï, <emphasis>¤Ï¤¸¤á¤Æ¤Î FreeBSD
- </emphasis> ¤ÎÇä¤ê¾å¤²¤Î°ìÉô¤ò FreeBSD ¥×¥í¥¸¥§¥¯¥ÈµÚ¤Ó
- XFree86 ¥×¥í¥¸¥§¥¯¥È¤Ø´óÉÕ¤·¤Æ¤¯¤ì¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.ascii.co.jp/">¥¢¥¹¥­¡¼</ulink>
- ¤Ï FreeBSD ´ØÏ¢¤Î½ñÀÒ¤ÎÇä¤ê¾å¤²¤Î°ìÉô¤ò FreeBSD
- ¥×¥í¥¸¥§¥¯¥ÈµÚ¤Ó FreeBSD ͧ¤Î²ñ¤Ø´óÉÕ¤·¤Æ¤¯¤ì¤Þ¤·¤¿.
- </para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.yokogawa.co.jp/">
- ²£²ÏÅŵ¡³ô¼°²ñ¼Ò</ulink> ¤«¤é¤Ï FreeBSD
- ¥×¥í¥¸¥§¥¯¥È¤Ø¿Âç¤Ê´óÉÕ¤ò¤¤¤¿¤À¤­¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.buffnet.net/">BuffNET</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.pacificsolutions.com/">Pacific
- Solutions</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.siemens.de/">Siemens AG</ulink>
- via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre
- Albsmeier</ulink></para>
- </listitem>
-
- <listitem>
- <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink>
- </para>
- </listitem>
-
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£¼Ô:</emphasis></para>
-
- <para>¼¡¤Ëµó¤²¤ë¸Ä¿Í¤ª¤è¤Ó´ë¶È¤«¤é¤Ï,
- ¥Æ¥¹¥È¤ä¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î³«È¯ / ¥µ¥Ý¡¼¥È
- ¤Î¤¿¤á¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£¤ò夤¤Æ¤ª¤ê¤Þ¤¹:</para>
-
- <itemizedlist>
- <listitem>
- <para>BSDi ¤Ï,
- ¥Í¥Ã¥È¥ï¡¼¥¯¤Ø¤Î¥¢¥¯¥»¥¹¤ª¤è¤Ó
- ¾¤Î¥Ï¡¼¥É¥¦¥§¥¢¥ê¥½¡¼¥¹¤Î´ó£¤Ï¤¤¤¦¤Þ¤Ç¤â¤Ê¤¯,
- ³«È¯¤Ë»È¤¦¤¿¤á¤Î Pentium P5-90 ¤È 486/DX2-66 EISA/VL
- ¤Î¥·¥¹¥Æ¥à¿ôÂæ¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para>TRW Financial Sysytems ¼Ò¤Ï, PC 130Âæ, 68 GB
- ¤Î¥Õ¥¡¥¤¥ë¥µ¡¼¥Ð 3Âæ, 12¤Î¥¤¡¼¥µ¥Í¥Ã¥È,
- ¥Ç¥£¥¹¥¯¥ì¥¹¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°¤ò¤ª¤³¤Ê¤¦¤¿¤á¤Î ¥ë¡¼¥¿
- 2ÂæµÚ¤Ó ATM ¥¹¥¤¥Ã¥Á¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. ¤Þ¤¿,
- Èà¤é¤Ï 2, 3¿Í¤Î FreeBSD ¥Ï¥Ã¥«¡¼¤ò¸Û¤Ã¤Æ, FreeBSD
- ¤ËÀìÇ°¤µ¤»¤Æ¤¯¤À¤µ¤Ã¤Æ¤ª¤ê¤Þ¤¹.
- ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹!</para>
- </listitem>
-
- <listitem>
- <para>Dermot McDonnell ¤Ï, Åì¼Ç XM3401B CD-ROM ¥É¥é¥¤¥Ö¤ò
- ´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. ¤½¤Î CD-ROM ¥É¥é¥¤¥Ö¤Ï¸½ºß
- freefall ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹.</para>
- </listitem>
-
- <listitem>
- <para>&a.chuck; ¤Ï, ¼Â¸³ÍѤΥեí¥Ã¥Ô¡¼¥Æ¡¼¥×¥¹¥È¥ê¡¼¥Þ¤ò
- ´óÉÕ¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email> ¤È
- &a.wilko;¤Ï, <devicename>wt</devicename>
- ¥É¥é¥¤¥Ð¤ò²þÎɤ¹¤ë¤¿¤á¤Ë Wangtek ¤È Archive ¤Î QIC-02
- ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email> ¤Ï,
- ¤³¤Î¥×¥í¥¸¥§¥¯¥È¤Ø 2.88 MB
- ¤Î¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ö¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.
- ¤¦¤Þ¤¯¤¤¤±¤Ð,
- ¤³¤ì¤Ç¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤ò½ñ¤­Ä¾¤¹¤¿¤á¤Î
- ¥×¥ì¥Ã¥·¥ã¡¼¤¬Áý¤¨¤ë¤Ç¤·¤ç¤¦. <!-- smiley -->;-)</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.tekram.com/">Tekram
- Technologies</ulink> ¤Ï NCR ¥É¥é¥¤¥Ð¤ä AMD
- ¥É¥é¥¤¥Ð¤È¼«¼Ò¤Î¥«¡¼¥É¤ÎµÕ¹Ô¥Æ¥¹¥È¤Î¤¿¤á FAST/ULTRA
- SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿ DC-390, DC-390U, DC-390F ¤ò
- ³Æ£±ËçÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. ¤Þ¤¿, ¥Õ¥ê¡¼¤Ê OS
- ¤Î¤¿¤á¤Î¥É¥é¥¤¥Ð¤Î ¥½¡¼¥¹¤ò¼«¼Ò¤Î FTP ¥µ¡¼¥Ð <ulink
- url="ftp://ftp.tekram.com/scsi/FreeBSD/">
- ftp://ftp.tekram.com/scsi/FreeBSD/</ulink>
- ¤Ç¸ø³«¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¾Î»¿¤ËÃͤ¹¤ë¤Ç¤·¤ç¤¦.</para>
- </listitem>
-
- <listitem>
- <para>Larry M. Augustin
- ¤Ï Symbios Sym8751S SCSI
- ¥«¡¼¥É¤ò´ó£¤·¤Æ¤¯¤À¤µ¤Ã¤¿¤À¤±¤Ç¤Ê¤¯, Ultra-2 ¤ä LVD
- ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¼¡´ü¥Á¥Ã¥× Sym53c895 ¤Î¤â¤Î¤ò´Þ¤à
- ¥Ç¡¼¥¿¥Ö¥Ã¥¯¤Î¥»¥Ã¥È¤È, ºÇ¿·¤Î Symbios SCSI
- ¥Á¥Ã¥×¤¬»ý¤ÄÀè¿ÊŪµ¡Ç½¤ò°ÂÁ´¤Ë»È¤¦ÊýË¡¤Ë¤Ä¤¤¤Æ½ñ¤«¤ì¤¿
- ºÇ¿·¤Î¥×¥í¥°¥é¥ß¥ó¥°¥Þ¥Ë¥å¥¢¥ë¤â´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.
- ËÜÅö¤Ë¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹!</para>
- </listitem>
-
- <listitem>
- <para>Christoph Kukulies <email>kuku@FreeBSD.org</email>
- ¤Ï, IDE CD-ROM ¥É¥é¥¤¥Ð³«È¯ÍѤΠFX120 12 ÇÜ® Mitsumi
- CD-ROM ¥É¥é¥¤¥Ö¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>ÆÃÉ®¤¹¤Ù¤­´ó£¼Ô:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><ulink url="http://www.bsdi.com/">BSDi
- </ulink> ¤Ï,
- ¸À¤¤É½¤»¤Ê¤¤¤Û¤É¿¤¯¤Î´óÉÕ¤ò¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿ (¾ÜºÙ¤Ï
- <link linkend="history">FreeBSD ¾®»Ë</link>¤ò»²¾È).
- ÆäË, »ä¤¿¤Á¤Î¤â¤È¤â¤È¤Î¥×¥é¥¤¥Þ¥ê³«È¯¥Þ¥·¥ó¤Ç¤¢¤ë
- <hostid role="fqdn">freefall.FreeBSD.org</hostid>,
- ¥Æ¥¹¥È¤ª¤è¤Ó¥Ó¥ë¥É¥Þ¥·¥ó¤Ç¤¢¤ë <hostid
- role="fqdn">thud.FreeBSD.org</hostid>
- ¤Ç»ÈÍѤ·¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¤ËÂФ·´¶¼Õ¤·¤¿¤¤¤È»×¤¤¤Þ¤¹.
- ¤Þ¤¿Èà¤é¤Ë¤Ï, ¿ôǯ¤Ë¤ï¤¿¤ë¿§¡¹¤Ê¹×¸¥¼Ô¤Ø¤Î»ñ¶âÄ󶡤ä,
- ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ø¤Î T1 ¥³¥Í¥¯¥·¥ç¥ó¤Î̵À©¸Â»ÈÍѤòÄ󶡤·¤Æ
- 夤¤¿²¸µÁ¤¬¤¢¤ê¤Þ¤¹.</para>
- </listitem>
-
- <listitem>
- <para><ulink
- url="http://www.interface-business.de/">interface
- business GmbH, Dresden</ulink> ¤Ï, &a.joerg;
- ¤òº¬µ¤¤è¤¯¥µ¥Ý¡¼¥È¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. Èà¤ÏËÜ¿¦¤è¤ê
- FreeBSD ¤Î»Å»ö¤ò¹¥¤ß¤¬¤Á¤Ç¤¢¤ê, Èà¸Ä¿Í¤ÎÀܳ¤¬¤¢¤Þ¤ê¤Ë
- ÃÙ¤¯¤Ê¤Ã¤¿¤êÅÓÀڤ줿¤ê¤·¤Æ»Å»ö¤Ë¤Ê¤é¤Ê¤¤»þ¤Ïɬ¤º
- interface business ¤Î (Èó¾ï¤Ë¹â²Á¤Ê) EUnet
- ¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈÀܳ¤ËÍê¤Ã¤¿¤â¤Î¤Ç¤¹...</para>
- </listitem>
-
- <listitem>
- <para><ulink url="http://www.bsdi.com/">Berkeley Software
- Design, Inc.</ulink> ¤Ï, Ʊ¼Ò¤Î DOS
- ¥¨¥ß¥å¥ì¡¼¥¿¤Î¥³¡¼¥É¤ò
- BSD ¥³¥ß¥å¥Ë¥Æ¥£Á´ÂΤËÂФ·¤ÆÄ󶡤·¤Æ¤¯¤ì¤Þ¤·¤¿. ¤³¤Î¥³¡¼¥É¤Ï,
- <emphasis>doscmd</emphasis>
- ¥³¥Þ¥ó¥É¤ËÍøÍѤµ¤ì¤Æ¤¤¤Þ¤¹.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-corealumni">
- <title>¥³¥¢¥Á¡¼¥à¤Î´¶ÈÀ¸</title>
-
- <para>¼¡¤Ëµó¤²¤ë¿Í¡¹¤Ï()¤Çµ­¤·¤¿´ü´Ö, FreeBSD
- ¥³¥¢¥Á¡¼¥à¤Î¥á¥ó¥Ð¡¼¤Ç¤·¤¿. FreeBSD
- ¥×¥í¥¸¥§¥¯¥È¤Ë¤ª¤±¤ëÈà¤é¤ÎÅØÎϤ˴¶¼Õ¤Î°Õ¤òɽ¤·¤Þ¤¹.
- </para>
-
- <para><emphasis>¤À¤¤¤¿¤¤¤ÎǯÂå½ç:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>&a.ache (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.jmb (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.bde (1992 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.gibbs (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.rich (1994 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.phk (1992 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.gpalmer (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.sos (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.wollman (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.joerg (1993 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.jdp (1997 - 2000)</para>
- </listitem>
-
- <listitem>
- <para>&a.guido (1995 - 1999)</para>
- </listitem>
-
- <listitem>
- <para>&a.dyson (1993 - 1998)</para>
- </listitem>
-
- <listitem>
- <para>&a.nate (1992 - 1996)</para>
- </listitem>
-
- <listitem>
- <para>&a.rgrimes (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.csgr (1993 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.paul (1992 - 1995)</para>
- </listitem>
-
- <listitem>
- <para>&a.smace (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko (1993 - 1994)</para>
- </listitem>
-
- <listitem>
- <para>J. T. Conklin (1992 - 1993)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-develalumni">
- <title>³«È¯¥Á¡¼¥à¤Î´¶ÈÀ¸</title>
-
- <para>¼¡¤Ë¤¢¤²¤ë¤Î¤Ï, ¤«¤Ä¤Æ FreeBSD
- ³«È¯¥Á¡¼¥à¤Î°ì°÷¤À¤Ã¤¿¿Í¡¹¤Ç¤¹.
- FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ë¹×¸¥¤·¤Æ¤¯¤À¤µ¤Ã¤¿Èà¤é¤Ë´¶¼Õ¤·¤Þ¤¹.</para>
-
- <para><emphasis>¤Û¤ÜǯÂå½ç¤Ë:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para>&a.tedm (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.karl (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.gclarkii (1993 - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.jraynard (???? - 2000)</para>
- </listitem>
- <listitem>
- <para>&a.jgreco (???? - 1999)</para>
- </listitem>
- <listitem>
- <para>&a.ats (???? - 1999)</para>
- </listitem>
- <listitem>
- <para>Jamil Weatherby (1997 - 1999)</para>
- </listitem>
- <listitem>
- <para>meganm (???? - 1998)</para>
- </listitem>
- <listitem>
- <para>&a.dyson (???? - 1998)</para>
- </listitem>
- <listitem>
- <para>Amancio Hasty (1997 - 1998)</para>
- </listitem>
- <listitem>
- <para>Drew Derbyshire (1997 - 1998)</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-derived">
- <title>BSD ÇÉÀ¸¥½¥Õ¥È¥¦¥§¥¢¤Ø¤Î¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿</title>
-
- <para>¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤ÏºÇ½é¤Ï William F. Jolitz ¤Î 386BSD release
- 0.1 ¤«¤éÇÉÀ¸¤·¤Þ¤·¤¿¤¬, ¥ª¥ê¥¸¥Ê¥ë¤Î 386BSD
- ¤Ë¸ÇÍ­¤Î¥³¡¼¥É¤Ï¤Û¤È¤ó¤É»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó.
- ¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï´ðËÜŪ¤Ë¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø ¥Ð¡¼¥¯¥ì¥¤¹»¤Î
- Computer Science Research Group (CSRG) ¤È¤½¤Î¶¦Æ±¸¦µæ¼Ô
- ¤¿¤Á¤Ë¤è¤ë 4.4BSD-Lite ¥ê¥ê¡¼¥¹¤«¤éºÆ¼ÂÁõ¤µ¤ì¤Þ¤·¤¿.</para>
-
- <para>¤Þ¤¿, NetBSD ¤ä OpenBSD ¤Î°ìÉô¤â FreeBSD
- ¤Ë¼è¤ê¹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹. ¤·¤¿¤¬¤Ã¤Æ»ä¤¿¤Á¤Ï NetBSD ¤È OpenBSD
- ¤Ø¹×¸¥¤·¤¿¿Í¡¹¤¹¤Ù¤Æ¤Ë´¶¼Õ¤·¤Þ¤¹.</para>
- </sect1>
-
- <sect1 id="contrib-additional">
- <title>¤½¤Î¾¤Î FreeBSD ¤Ø¤Î¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿</title>
-
- <para>(̾Á°¤Ç¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë):</para>
-
- <itemizedlist>
- <listitem>
- <para>ABURAYA Ryushirou <email>rewsirow@ff.iij4u.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>AMAGAI Yoshiji <email>amagai@nue.org</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Bornstein <email>aaronb@j51.com</email></para>
- </listitem>
-
- <listitem>
- <para>Aaron Smith <email>aaron@mutex.org</email></para>
- </listitem>
-
- <listitem>
- <para>Achim Patzner <email>ap@noses.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ada T Lim <email>ada@bsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Baran <email>badam@mw.mil.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Herzog <email>adam@herzogdesigns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adam McDougall <email>mcdouga9@egr.msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adam Strohl <email>troll@digitalspark.net</email></para>
- </listitem>
-
- <listitem>
- <para>Adoal Xu <email>adoal@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Colley <email>aecolley@ois.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>ahall@mirapoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Mariano <email>adrian@cam.cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Steinmann <email>ast@marabu.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian T. Filipi-Martin
- <email>atf3r@agate.cs.virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ajit Thyagarajan <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akio Morita
- <email>amorita@meadow.scphys.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akira SAWADA <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Akira Watanabe
- <email>akira@myaw.ei.meisei-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Akito Fujita <email>fujita@zoo.ncl.omron.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Alain Kalker
- <email>A.C.P.M.Kalker@student.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Alan Bawden <email>alan@curry.epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alec Wolman <email>wolman@cs.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Aled Morris <email>aledm@routers.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Aleksandr A Babaylov <email>.@babolo.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alex G. Bulushev <email>bag@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Alex D. Chen
- <email>dhchen@Canvas.dorm7.nccu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Le Heux <email>alexlh@funk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Kapranoff <email>kappa@zombie.antar.bryansk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Perel <email>veers@disturbed.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Varju <email>varju@webct.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alex Zepeda <email>garbanzo@hooked.net</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Gelfenbain <email>mail@gelf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Alexander Leidinger
- <email>netchild@wurzelausix.CS.Uni-SB.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Alexandre Snarskii <email>snar@paranoia.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Alistair G. Crooks <email>agc@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Bowhill <email>bowhill@bowhill.vservers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allan Saddi <email>asaddi@philosophysw.com</email></para>
- </listitem>
-
- <listitem>
- <para>Allen Campbell <email>allenc@verinet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amakawa Shuhei <email>amakawa@hoh.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Amancio Hasty <email>hasty@star-gate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amir Farah <email>amir@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Amy Baron <email>amee@beer.org</email></para>
- </listitem>
-
- <listitem>
- <para>The Anarcat <email>beaupran@iro.umontreal.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly A. Orehovsky <email>tolik@mpeks.tomsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Anatoly Vorobey <email>mellon@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Andersson <email>anders@codefactory.se</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Nordby <email>anders@fix.no</email></para>
- </listitem>
-
- <listitem>
- <para>Anders Thulin <email>Anders.X.Thulin@telia.se</email></para>
- </listitem>
-
- <listitem>
- <para>Andras Olah <email>olah@cs.utwente.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Albsmeier
- <email>Andre.Albsmeier@mchp.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Goeree <email>abgoeree@uwnet.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Andre Oppermann <email>andre@pipeline.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Haakh <email>ah@alman.robin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Kohout <email>shanee@rabbit.augusta.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Lohr <email>andreas@marvin.RoBIN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Schulz <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wetzel <email>mickey@deadline.snafu.de</email></para>
- </listitem>
-
- <listitem>
- <para>Andreas Wrede <email>andreas@planix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andres Vega Garcia <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Atrens <email>atreand@statcan.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Boothman <email>andrew@cream.org</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gillham <email>gillham@andrews.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Gordon <email>andrew.gordon@net-tel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew J. Korty <email>ajk@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Moore <email>alm@mclink.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew L. Neporada <email>andrew@chg.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew McRae <email>amcrae@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Stevenson <email>andrew@ugh.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Timonin <email>tim@pool1.convey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew V. Stesin <email>stesin@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Webster <email>awebster@dataradio.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Novikov <email>andrey@novikov.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Simonenko <email>simon@comsys.ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey Tchoritch <email>andy@venus.sympad.net</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Farkas <email>andyf@speednet.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Whitcroft <email>andy@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Angelo Turetta <email>ATuretta@stylo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony C. Chavez <email>magus@xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anthony Yee-Hang Chan <email>yeehang@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Berezin <email>tobez@plab.ku.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Anton N. Bruesov <email>antonz@library.ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Anton Voronin <email>anton@urc.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Antti Kaipila <email>anttik@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>arci <email>vega@sophia.inria.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Are Bryne <email>are.bryne@communique.no</email></para>
- </listitem>
-
- <listitem>
- <para>Ari Suutari <email>ari@suutari.iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Arindum Mukerji <email>rmukerji@execpc.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arjan de Vet <email>devet@IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Arun Sharma <email>adsharma@sharmas.dhs.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ask Bjoern Hansen <email>ask@valueclick.com</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Furuta <email>furuta@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Atsushi Murai <email>amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Bierbauch <email>pivrnec@vszbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Hutchinson <email>benhutch@xfiles.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Jackson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ben Walter <email>bwalter@itachi.swcp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Benjamin Lewis <email>bhlewis@gte.net</email></para>
- </listitem>
-
- <listitem>
- <para>Berend de Boer <email>berend@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bernd Rosauer <email>br@schiele-ct.de</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Kish <email>kish@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bill Trost <email>trost@cloud.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Blaz Zupan <email>blaz@amis.net</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Van Valzah <email>Bob@whitebarn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Willcox <email>bob@luke.pmr.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boris Staeblow <email>balu@dva.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd Faulkner <email>faulkner@mpd.tandem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Chapman <email>chapmanb@arches.uga.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Hendrickse <email>bradh@uunet.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Karp <email>karp@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Bradley Dunn <email>bradley@dunn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brad Jones <email>brad@kazrak.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Fosdick <email>bfoz@glue.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para>
- </listitem>
-
- <listitem>
- <para>&a.wlloyd</para>
- </listitem>
-
- <listitem>
- <para>Brent J. Nordquist <email>bjn@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Brett Taylor
- <email>brett@peloton.runet.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Campbell <email>brianc@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Clapper <email>bmc@willscreek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Cully <email>shmit@kublai.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Handy
- <email>handy@lambic.space.lockheed.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Litzinger <email>brian@MediaCity.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian McGovern <email>bmcgover@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Moore <email>ziff@houdini.eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Brian R. Haug <email>haug@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Brian Tao <email>taob@risc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Brion Moss <email>brion@queeg.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Albrecht <email>bruce@zuhause.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Gingery <email>bgingery@gtcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce J. Keeler <email>loodvrij@gridpoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Murphy <email>packrat@iinet.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>Bruce Walter <email>walter@fortean.com</email></para>
- </listitem>
-
- <listitem>
- <para>Carey Jones <email>mcj@acquiesce.org</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Fongheiser <email>cmf@netins.net</email></para>
- </listitem>
-
- <listitem>
- <para>Carl Mascott <email>cmascott@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Casper <email>casper@acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Castor Fu <email>castor@geocast.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chain Lee <email>chain@110.net</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Henrich <email>henrich@msu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Mott <email>cmott@scientech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Owens <email>owensc@enc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chet Ramey <email>chet@odin.INS.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chia-liang Kao <email>clkao@CirX.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Chiharu Shibata <email>chi@bd.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Chip Norkus <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Csanady <email>cc@tarsier.ca.sandia.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dabrowski <email>chris@vader.org</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Dillon <email>cdillon@wolves.k12.mo.us</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Shenton
- <email>cshenton@angst.it.hq.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Stenton <email>jacs@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Timmons <email>skynyrd@opus.cts.cwu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Gusenbauer
- <email>cg@fimp01.fim.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Haury <email>Christian.Haury@sagem.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Christian Weisgerber
- <email>naddy@mips.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph P. Kukulies <email>kuku@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Weber-Fahr
- <email>wefa@callcenter.systemhaus.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher N. Harrell <email>cnh@ivmg.net</email></para>
- </listitem>
-
- <listitem>
- <para>Christopher T. Johnson
- <email>cjohnson@neunacht.netgsi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Chrisy Luke <email>chrisy@flix.net</email></para>
- </listitem>
-
- <listitem>
- <para>Chuck Hein <email>chein@cisco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cliff Rowley <email>dozprompt@onsea.com</email></para>
- </listitem>
-
- <listitem>
- <para>Colman Reilly <email>careilly@tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Conrad Sabatier <email>conrads@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>Coranth Gryphon <email>gryphon@healer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cornelis van der Laan
- <email>nils@guru.ims.uni-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Cove Schneider <email>cove@brazil.nbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Leres <email>leres@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Loomis <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Metz <email>cmetz@inner.net</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Spannring <email>cts@internetcds.com</email></para>
- </listitem>
-
- <listitem>
- <para>Craig Struble <email>cstruble@vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Cristian Ferretti <email>cfs@riemann.mat.puc.cl</email></para>
- </listitem>
-
- <listitem>
- <para>Curt Mayer <email>curt@toad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Cy Schubert <email>cschuber@uumail.gov.bc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Cyrille Lefevre <email>clefevre@citeweb.net</email></para>
- </listitem>
-
- <listitem>
- <para>Cyrus Rahman <email>cr@jcmax.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Daisuke Watanabe <email>NU7D-WTNB@asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Damian Hamill <email>damian@cablenet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Cross <email>tenser@spitfire.ecsel.psu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Langille <email>dan@freebsddiary.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Lukes <email>dan@obluda.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Nelson <email>dnelson@emsphone.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Papasian <email>bugg@bugg.strangled.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Piponi <email>wmtop@tanelorn.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Walters <email>hannibal@cyberstation.net</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Hagan
- <email>dhagan@cs.vt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel O'Connor <email>doconnor@gsoft.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Rock <email>rock@cs.uni-sb.de</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel W. McRobb <email>dwm@caimis.com</email></para>
- </listitem>
-
- <listitem>
- <para>Danny Egen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Danny J. Zerkel <email>dzerkel@phofarm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Darren Reed <email>avalon@coombs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Andersen <email>angio@aros.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Blizzard <email>dblizzar@sprynet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Bodenstab <email>imdave@synet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Chapeskie <email>dchapes@ddm.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Cornejo <email>dave@dogwood.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Edmondson <email>davided@sco.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Glowacki <email>dglo@ssec.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Marquardt <email>marquard@austin.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Tweten <email>tweten@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Adkins <email>adkin003@tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David A. Bader <email>dbader@eece.unm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Borman <email>dab@bsdi.com</email></para>
- </listitem>
-
- <listitem>
- <para>David W. Chapman Jr. <email>dwcjr@inethouston.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@XFree86.org</email></para>
- </listitem>
-
- <listitem>
- <para>David Filo <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>David Holland <email>dholland@eecs.harvard.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Holloway <email>daveh@gwythaint.tamis.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Horwitt <email>dhorwitt@ucsd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Hovemeyer <email>daveho@infocom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Jones <email>dej@qpoint.torfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>David Kelly <email>dkelly@tomcat1.tbe.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Kulp <email>dkulp@neomorphic.com</email></para>
- </listitem>
-
- <listitem>
- <para>David L. Nugent <email>davidn@blaze.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Leonard <email>d@scry.dstc.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>David Muir Sharnoff <email>muir@idiom.com</email></para>
- </listitem>
-
- <listitem>
- <para>David Sugar <email>dyfet@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>David S. Miller <email>davem@jenolan.rutgers.edu</email></para>
- </listitem>
-
- <listitem>
- <para>David Wolfskill <email>dhw@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Gaudet <email>dgaudet@arctic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dean Huxley <email>dean@fsa.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Fortin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Denis Shaposhnikov <email>dsh@vlink.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dennis Glatting
- <email>dennis.glatting@software-munitions.com</email></para>
- </listitem>
-
- <listitem>
- <para>Denton Gentry <email>denny1@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Derek Inksetter <email>derek@saidev.com</email></para>
- </listitem>
-
- <listitem>
- <para>DI. Christian Gusenbauer
- <email>cg@scotty.edvz.uni-linz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Keunecke <email>dk@panda.rhein-main.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dirk Nehrling <email>nerle@pdv.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dishanker Rajakulendren <email>draj@oceanfree.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Khrustalev <email>dima@xyzzy.machaon.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Dmitry Kohmanyuk <email>dk@farm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Dom Mitchell <email>dom@myrddin.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Domas Mituzas <email>midom@dammit.lt</email></para>
- </listitem>
-
- <listitem>
- <para>Dominik Brettnacher <email>domi@saargate.de</email></para>
- </listitem>
-
- <listitem>
- <para>Dominik Rothert <email>dr@domix.de</email></para>
- </listitem>
-
- <listitem>
- <para>Don Croyle <email>croyle@gelemna.ft-wayne.in.us</email></para>
- </listitem>
-
- <listitem>
- <para>Donn Miller <email>dmmiller@cvzoom.net</email></para>
- </listitem>
-
- <listitem>
- <para>Dan Pelleg <email>dpelleg+unison@cs.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>&a.whiteside;</para>
- </listitem>
-
- <listitem>
- <para>Don Morrison <email>dmorrisn@u.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Don Yuniskis <email>dgy@rtd.com</email></para>
- </listitem>
-
- <listitem>
- <para>Donald Maddox <email>dmaddox@conterra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Ambrisko <email>ambrisko@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Carmichael <email>dcarmich@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Douglas Crosher <email>dtc@scrooge.ee.swin.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Drew Derbyshire <email>ahd@kew.com</email></para>
- </listitem>
-
- <listitem>
- <para>Dustin Sallings <email>dustin@spy.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eckart "Isegrim" Hofmann
- <email>Isegrim@Wunder-Nett.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Gold
- <email>vegold01@starbase.spd.louisville.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ed Hudson <email>elh@p5.spnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Chuang <email>edwardc@firebird.org.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Edward Wang <email>edward@edcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Groothus <email>edwin@nwm.wan.philips.com</email></para>
- </listitem>
-
- <listitem>
- <para>Edwin Mons <email>e@ik.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Ege Rekk <email>aagero@aage.priv.no</email></para>
- </listitem>
-
- <listitem>
- <para>Eiji-usagi-MATSUmoto <email>usagi@clave.gr.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Eike Bernhardt <email>eike.bernhardt@gmx.de</email></para>
- </listitem>
-
- <listitem>
- <para>ELISA Font Project</para>
- </listitem>
-
-
- <listitem>
- <para>Elmar Bartel
- <email>bartel@informatik.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eoin Lawless <email>eoin@maths.tcd.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Eric A. Griff <email>eagriff@global2000.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Blood <email>eblood@cs.unr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Schwertfeger <email>eric@cybernut.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric L. Hernes <email>erich@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric P. Scott <email>eps@sirius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Eric Sprinkle <email>eric@ennovatenetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Stefan Boleyn <email>erich@uruk.org</email></para>
- </listitem>
-
- <listitem>
- <para>Erich Zigler <email>erich@tacni.net</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Bakke <email>erikhb@bgnett.no</email></para>
- </listitem>
-
- <listitem>
- <para>Erik E. Rantapaa <email>rantapaa@math.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Erik H. Moe <email>ehm@cris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst de Haan <email>ernst@heinz.jollem.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ernst Winter <email>ewinter@lobo.muc.de</email></para>
- </listitem>
-
- <listitem>
- <para>Espen Skoglund <email>esk@ira.uka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene M. Kim <email>astralblue@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>Eugene Radchenko <email>genie@qsar.chem.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Eugeny Kuzakov <email>CoreDumped@coredumped.null.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Evan Champion <email>evanc@synapse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Faried Nawaz <email>fn@Hungry.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Flemming Jacobsen <email>fj@tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fong-Ching Liaw <email>fong@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Francis M J Hsieh <email>mjshieh@life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Francisco Reyes <email>fjrm@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Bartels <email>knarf@camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Chen Hsiung Chan
- <email>frankch@waru.life.nthu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Durda IV <email>uhclem@nemesis.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Frank MacLachlan <email>fpm@n2.net</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Nobis <email>fn@Radio-do.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank ten Wolde <email>franky@pinewood.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank van der Linden <email>frank@fwi.uva.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Volf <email>volf@oasis.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Cawthorne <email>fcawth@jjarray.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Gilham <email>gilham@csl.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Fred Templin <email>templin@erg.sri.com</email></para>
- </listitem>
-
- <listitem>
- <para>Frederick Earl Gray <email>fgray@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>FUJIMOTO Kensaku
- <email>fujimoto@oscar.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>FURUSAWA Kazuhisa
- <email>furusawa@com.cs.osakafu-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>G. Adam Stanislav<email>adam@whizkidtech.net</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Kincses <email>gabor@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gabor Zahemszky <email>zgabor@CoDe.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Garance A Drosehn <email>gad@eclipse.its.rpi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary J. <email>garyj@rks32.pcs.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Kline <email>kline@thought.org</email></para>
- </listitem>
-
- <listitem>
- <para>Gaspar Chilingarov <email>nightmar@lemming.acc.am</email></para>
- </listitem>
-
- <listitem>
- <para>Gea-Suan Lin <email>gsl@tpts4.seed.net.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Gene Raytsin <email>pal@paladin7.net</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Georg Wagner <email>georg.wagner@ubs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gianlorenzo Masini <email>masini@uniroma3.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gianmarco Giovannelli
- <email>gmarco@giovannelli.it</email></para>
- </listitem>
-
- <listitem>
- <para>Gil Kloepfer Jr. <email>gil@limbic.ssdl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gilad Rom <email>rom_glsa@ein-hashofet.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>Giles Lean <email>giles@nemeton.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ginga Kawaguti
- <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Giorgos Keramidas <email>keramida@ceid.upatras.gr</email></para>
- </listitem>
-
- <listitem>
- <para>Glen Foster <email>gfoster@gfoster.com</email></para>
- </listitem>
-
- <listitem>
- <para>Glenn Johnson <email>gljohns@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>Godmar Back <email>gback@facility.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Gord Matzigkeit <email>gord@enci.ucalgary.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Gordon Greeff <email>gvg@uunet.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Graham Wheeler <email>gram@cdsec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg A. Woods <email>woods@zeus.leitch.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ansley <email>gja@ansley.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Robinson <email>greg@rosevale.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Troxel <email>gdt@ir.bbn.com</email></para>
- </listitem>
-
- <listitem>
- <para>Greg Ungerer <email>gerg@stallion.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory Bond <email>gnb@itga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Gregory D. Moncreaff
- <email>moncrg@bt340707.res.ray.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@netapp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Helmer <email>ghelmer@cs.iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>HAMADA Naoki <email>hamada@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hannu Savolainen <email>hannu@voxware.pp.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Huebner <email>hans@artcom.de</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Petter Bieker <email>zerium@webindex.no</email></para>
- </listitem>
-
- <listitem>
- <para>Hans Zuidam <email>hans@brandinnovators.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harlan Stenn <email>Harlan.Stenn@pfcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harold Barker <email>hbarker@dsms.com</email></para>
- </listitem>
-
- <listitem>
- <para>Harry Newton <email>harry_newton@telinco.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Heikki Suonsivu <email>hsu@cs.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Heiko W. Rupp <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Helmut F. Wirth <email>hfwirth@ping.at</email></para>
- </listitem>
-
- <listitem>
- <para>Henrik Vestergaard Draboel
- <email>hvd@terry.ping.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideaki Ohmon <email>ohmon@tom.sfc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hidekazu Kuroki <email>hidekazu@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hideki Yamamoto <email>hyama@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hideyuki Suzuki
- <email>hideyuki@sat.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hirayama Issei <email>iss@mail.wbs.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroaki Sakai <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroharu Tamaru <email>tamaru@ap.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hironori Ikura <email>hikura@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroshi Nishikawa <email>nis@pluto.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Hiroya Tsubakimoto <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Lamm <email>holger@eit.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Holm Tiffe <email>holm@geophysik.tu-freiberg.de</email></para>
- </listitem>
-
- <listitem>
- <para>HONDA Yasuhiro
- <email>honda@kashio.info.mie-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Horance Chou
- <email>horance@freedom.ie.cycu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Horihiro Kumagai <email>kuma@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>HOTARU-YA <email>hotaru@tail.net</email></para>
- </listitem>
-
- <listitem>
- <para>Hr.Ladavac <email>lada@ws2301.gud.siemens.co.at</email></para>
- </listitem>
-
- <listitem>
- <para>Hubert Feyrer <email>hubertf@NetBSD.ORG</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh F. Mahon <email>hugh@nsmdserv.cnd.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hugh Mahon <email>h_mahon@fc.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Hung-Chi Chu <email>hcchu@r350.ee.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Holland <email>ianh@tortuga.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Struble <email>ian@broken.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ian Vaudrey <email>i.vaudrey@bigfoot.com</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Khasilev <email>igor@jabber.paco.odessa.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Roshchin <email>str@giganda.komkon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Sviridov <email>siac@ua.net</email></para>
- </listitem>
-
- <listitem>
- <para>Igor Vinokurov <email>igor@zynaps.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Ikuo Nakagawa <email>ikuo@isl.intec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ilia Chipitsine <email>ilia@jane.cgu.chel.su</email></para>
- </listitem>
-
- <listitem>
- <para>Ilya V. Komarov <email>mur@lynx.ru</email></para>
- </listitem>
-
- <listitem>
- <para>IMAI Takeshi <email>take-i@ceres.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IMAMURA Tomoaki
- <email>tomoak-i@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Itsuro Saito <email>saito@miv.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>IWASHITA Yoji <email>shuna@pop16.odn.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>J. Bryant <email>jbryant@argus.flash.net</email></para>
- </listitem>
-
- <listitem>
- <para>J. David Lowe <email>lowe@saturn5.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Han <email>hjh@photino.com</email></para>
- </listitem>
-
- <listitem>
- <para>J. Hawk <email>jhawk@MIT.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jack <email>jack@zeus.xtalwind.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jacob Bohn Lorensen <email>jacob@jblhome.ping.mk</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jake Hamby <email>jehamby@lightside.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James D. Stewart <email>jds@c4systm.com</email></para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James Raynard
- <email>fhackers@jraynard.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>James T. Liu <email>jtliu@phlebas.rockefeller.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jamie Heckford <email>jamie@jamiesdomain.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Conard
- <email>charly@fachschaften.tu-muenchen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Jan Koum <email>jkb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Janick Taillandier
- <email>Janick.Taillandier@ratp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Janusz Kokot <email>janek@gaja.ipan.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Jarle Greipsland <email>jarle@idt.unit.no</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Garman <email>init@risen.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason R. Mastaler
- <email>jason-freebsd@mastaler.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Thorpe <email>thorpej@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Wright <email>jason@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jason Young
- <email>doogie@forbidden-donut.anet-stl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Javier Martin Rueda <email>jmrueda@diatel.upm.es</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jay Krell <email>jay.krell@cornell.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jaye Mathisen <email>mrcpu@cdsnet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Bartig <email>jeffb@doit.wisc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Brown <email>jabrown@caida.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Forys <email>jeff@forys.cranbury.nj.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Kletsky <email>Jeff@Wagsky.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeff Palmer <email>jeff@isni.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Evans <email>evans@scnc.k12.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Jeffrey Wheat <email>jeff@cetlink.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Allison <email>jallison@whistle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chadwick <email>yoshi@parodius.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Chatfield <email>jdc@xinside.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Karlson <email>karlj000@unbc.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Prior <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Jeremy Shaffner <email>jeremy@external.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse McConnell <email>jesse@cylant.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jesse Rosenstock <email>jmr@ugcs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jian-Da Li <email>jdli@csie.nctu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Babb <email>babb@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Binkley <email>jrb@cs.pdx.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Bloom <email>bloom@acm.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Carroll <email>jim@carroll.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Flowers <email>jflowers@ezo.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Leppek <email>jleppek@harris.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Lowe <email>james@cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mattson <email>jmattson@sonic.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Mercer <email>jim@komodo.reptiles.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Sloan <email>odinn@atlantabiker.net</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jimbo Bahooli
- <email>griffin@blackhole.iceworld.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jin Guojun <email>jin@george.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Joachim Kuebart <email>kuebart@mathematik.uni-ulm.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joao Carlos Mendes Luis <email>jonny@jonny.eng.br</email></para>
- </listitem>
-
- <listitem>
- <para>Jochen Pohl <email>jpo.drs@sni.de</email></para>
- </listitem>
-
- <listitem>
- <para>Joe "Marcus" Clarke <email>marcus@miami.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Abley <email>jabley@automagic.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Jih-Shian Lu <email>jslu@dns.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Orthoefer <email>j_orthoefer@tia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Joe Traister <email>traister@mojozone.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Faedi <email>Joel.Faedi@esial.u-nancy.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Ray Holveck <email>joelh@gnu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Joel Sutton <email>jsutton@bbcon.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Scott <email>joseph@randomnetworks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Granlund <email>johan@granlund.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Karlsson <email>k@numeri.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johan Larsson <email>johan@moon.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Johann Tonsing <email>jtonsing@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Helander <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Johannes Stille <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Beckett <email>jbeckett@southern.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Beukema <email>jbeukema@hk.super.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Brezak <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Capo <email>jc@irbs.com</email></para>
- </listitem>
-
- <listitem>
- <para>John F. Woods <email>jfw@jfwhome.funhouse.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Goerzen
- <email>jgoerzen@alexanderwohl.complete.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Heidemann <email>johnh@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Hood <email>cgull@owl.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Kohl <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>John Lind <email>john@starfire.mn.org</email></para>
- </listitem>
-
- <listitem>
- <para>John Mackin <email>john@physiol.su.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>John P <email>johnp@lodgenet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Perry <email>perry@vishnu.alias.net</email></para>
- </listitem>
-
- <listitem>
- <para>John Preisler <email>john@vapornet.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Reynolds <email>jjreynold@home.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Rochester <email>jr@cs.mun.ca</email></para>
- </listitem>
-
- <listitem>
- <para>John Sadler <email>john_sadler@alum.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>John Saunders <email>john@pacer.nlc.net.au</email></para>
- </listitem>
-
- <listitem>
- <para>John Wehle <email>john@feith.com</email></para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Johny Mattsson <email>lonewolf@flame.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jon Morgan <email>morgan@terminus.trailblazer.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan H N Chin <email>jc254@newton.cam.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Hanna
- <email>jh@pc-21490.bc.rogers.wave.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Jonathan Pennington <email>john@coastalgeology.org</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge Goncalves <email>j@bug.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jorge M. Goncalves <email>ee96199@tom.fe.up.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Jos Backus <email>jbackus@plex.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Jose Marques <email>jose@nobody.org</email></para>
- </listitem>
-
- <listitem>
- <para>Josef Grosch
- <email>jgrosch@superior.mooseriver.com</email></para>
- </listitem>
-
- <listitem>
- <para>Joseph Stein <email>joes@wstein.com</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Gilliam <email>josh@quick.net</email></para>
- </listitem>
-
- <listitem>
- <para>Josh Tiefenbach <email>josh@ican.net</email></para>
- </listitem>
-
- <listitem>
- <para>Juergen Lock <email>nox@jelal.hb.north.de</email></para>
- </listitem>
-
- <listitem>
- <para>Juha Inkari <email>inkari@cc.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Jukka A. Ukkonen <email>jau@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Assange <email>proff@suburbia.net</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Coleman <email>j.d.coleman@ncl.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>&a.jhs</para>
- </listitem>
-
- <listitem>
- <para>Julian Jenkins <email>kaveman@magna.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Junichi Satoh <email>junichi@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junji SAKAI <email>sakai@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Junya WATANABE <email>junya-w@remus.dti.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Justas <email>justas@mbank.lv</email></para>
- </listitem>
-
- <listitem>
- <para>Justin Stanford <email>jus@security.za.net</email></para>
- </listitem>
-
- <listitem>
- <para>K.Higashino <email>a00303@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kai Vorma <email>vode@snakemail.hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Kaleb S. Keithley <email>kaleb@ics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kaneda Hiloshi <email>vanitas@ma3.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kang-ming Liu <email>gugod@gugod.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kapil Chowksey <email>kchowksey@hss.hns.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Denninger <email>karl@mcs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>KATO Tsuguru <email>tkato@prontomail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kawanobe Koh <email>kawanobe@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kees Jan Koster <email>kjk1@ukc.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@bostic.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith E. Walker <email>kew@icehouse.net</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Moore <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Sklower <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hornstein <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Key <email>key@cs.utk.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Mayer <email>kmayer@freegate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Saito <email>marukun@mx2.nisiq.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenji Tomita <email>tommyk@da2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Furge <email>kenneth.furge@us.endress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Monville <email>desmo@bandwidth.org</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth R. Westerback <email>krw@tcn.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kenneth Stailey <email>kstailey@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kent Vander Velden <email>graphix@iastate.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kentaro Inagaki <email>JBD01226@niftyserve.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Bracey <email>kbracey@art.acorn.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Day <email>toasty@dragondata.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml@nas.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Meltzer <email>perlguy@perlguy.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Street <email>street@iname.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Van Maren <email>vanmaren@fast.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Kim Scarborough <email>sluggo@unknown.nu</email></para>
- </listitem>
-
- <listitem>
- <para>Kiril Mitev <email>kiril@ideaglobal.com</email></para>
- </listitem>
-
- <listitem>
- <para>Kiroh HARADA <email>kiroh@kh.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Herrmann <email>klaus.herrmann@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus Klein <email>kleink@layla.inka.de</email></para>
- </listitem>
-
- <listitem>
- <para>Klaus-J. Wolf <email>Yanestra@t-online.de</email></para>
- </listitem>
-
- <listitem>
- <para>Koichi Sato <email>copan@ppp.fastnet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Konrad Heuer <email>kheuer@gwdu60.gwdg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Konstantin Chuguev <email>Konstantin.Chuguev@dante.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Kostya Lukin <email>lukin@okbmei.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Kouichi Hirabayashi <email>kh@mogami-wire.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kris Dow <email>kris@vilnya.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt D. Zeilenga <email>Kurt@Boolean.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Kurt Olsen <email>kurto@tiny.mcs.usu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>L. Jonas Olsson
- <email>ljo@ljo-slip.DIALIN.CWRU.Edu</email></para>
- </listitem>
-
- <listitem>
- <para>Larry Altneu <email>larry@ALR.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Lars Bernhardsson <email>lab@fnurt.net</email></para>
- </listitem>
-
- <listitem>
- <para>Lars K&ouml;ller
- <email>Lars.Koeller@Uni-Bielefeld.DE</email></para>
- </listitem>
-
- <listitem>
- <para>Laurence Lopez <email>lopez@mv.mv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lee Cremeans <email>lcremean@tidalwave.net</email></para>
- </listitem>
-
- <listitem>
- <para>Leo Kim <email>leo@florida.sarang.net</email></para>
- </listitem>
-
- <listitem>
- <para>Liang Tai-hwa
- <email>avatar@www.mmlab.cse.yzu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Lon Willett <email>lon%softt.uucp@math.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Louis A. Mamakos <email>louie@TransSys.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Louis Mamakos <email>loiue@TransSys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lowell Gilbert <email>lowell@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Lucas James <email>Lucas.James@ldjpc.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Lyndon Nerenberg <email>lyndon@orthanc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>M. L. Dodson <email>bdodson@scms.utmb.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>M.C. Wong <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Magnus Enbom <email>dot@tinto.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mahesh Neelakanta <email>mahesh@gcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto MATSUSHITA <email>matusita@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto WATANABE
- <email>watanabe@zlab.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Makoto YAMAKURA <email>makoto@pinpott.spnet.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Malte Lance <email>malte.lance@gmx.net</email></para>
- </listitem>
-
- <listitem>
- <para>MANTANI Nobutaka <email>nobutaka@nobutaka.com</email></para>
- </listitem>
-
- <listitem>
- <para>Manu Iyengar
- <email>iyengar@grunthos.pscwa.psca.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Ramirez <email>mrami@mramirez.sy.yale.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Slemko <email>marcs@znep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Kempen <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Marc van Woerkom <email>van.woerkom@netcologne.de</email></para>
- </listitem>
-
- <listitem>
- <para>Marcin Cieslak <email>saper@system.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Andrews <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Cammidge <email>mark@gmtunx.ee.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Diekhans <email>markd@grizzly.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Huizer <email>xaa@stack.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Mark J. Taylor <email>mtaylor@cybernet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Knight <email>markk@knigma.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Krentel <email>krentel@rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Mayo <email>markm@vmunix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Pulford <email>mark@kyne.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Thompson <email>thompson@tgsoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Treacy <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Valentine <email>mark@linus.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Markus Holmberg <email>saska@acc.umu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Birgmeier <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Blapp <email>blapp@attic.ch</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Hinner <email>mhi@linux.gyarab.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Ibert <email>mib@ppe.bb-data.de</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Kammerhofer <email>dada@sbox.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Minkus <email>diskiller@cnbinc.com</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Martti Kuparinen
- <email>martti.kuparinen@ericsson.com</email></para>
- </listitem>
-
- <listitem>
- <para>Masachika ISHIZUKA
- <email>ishizuka@isis.min.ntt.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro Sekiguchi
- <email>seki@sysrap.cs.fujitsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masahiro TAKEMURA
- <email>mastake@msel.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanobu Saitoh <email>msaitoh@spa.is.uec.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kanaoka <email>kana@saijo.mke.mei.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Masanori Kiriake <email>seiken@ARGV.AC</email></para>
- </listitem>
-
- <listitem>
- <para>Masatoshi TAMURA
- <email>tamrin@shinzan.kuee.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mats Lofkvist <email>mal@algonet.se</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Bartley <email>mbartley@lear35.cytex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Heckaman <email>matt@LUCIDA.QC.CA</email></para>
- </listitem>
-
- <listitem>
- <para>Matt Thomas <email>matt@3am-software.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matt White <email>mwhite+@CMU.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew C. Mead <email>mmead@Glock.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Cashdollar <email>mattc@rfcnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Emmerton <email>root@gabby.gsicomp.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Flatt <email>mflatt@cs.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Fuller <email>fullermd@futuresouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew Stein <email>matt@bdd.net</email></para>
- </listitem>
-
- <listitem>
- <para>Matthew West <email>mwest@uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Pfaller <email>leo@dachau.marco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Matthias Scheler <email>tron@netbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Gronlund
- <email>Mattias.Gronlund@sa.erisoft.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mattias Pantzare <email>pantzer@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Maurice Castro
- <email>maurice@planet.serc.rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Max Euston <email>meuston@jmrodgers.com</email></para>
- </listitem>
-
- <listitem>
- <para>Max Khon <email>fjoe@husky.iclub.nsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxim Bolotin <email>max@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Maxime Henrion <email>mhenrion@cybercable.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Micha Class
- <email>michael_class@hpbbse.bbn.hp.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Alyn Miller <email>malyn@strangeGizmo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Lucas <email>mwlucas@blackhelicopters.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Lyngbøì <email>michael@lyngbol.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butler <email>imb@scgt.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Butschky <email>butsch@computi.erols.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hancock <email>michaelh@cet.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Hohmuth <email>hohmuth@inf.tu-dresden.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Perlman <email>canuck@caam.rice.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Petry <email>petry@netwolf.NetMasters.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Reifenberger <email>root@totum.plaut.de</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Sardo <email>jaeger16@yahoo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Urban <email>murban@tznet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Vasilenko <email>acid@stu.cn.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Michal Listos <email>mcl@Amnesiac.123.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michio Karl Jinbo
- <email>karl@marcer.nagaokaut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Miguel Angel Sagreras
- <email>msagre@cactus.fi.uba.ar</email></para>
- </listitem>
-
- <listitem>
- <para>Mihoko Tanaka <email>m_tonaka@pa.yokogawa.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mika Nystrom <email>mika@cs.caltech.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Hybsch <email>micke@dynas.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mikael Karpberg
- <email>karpen@ocean.campus.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Barcroft <email>mike@q9media.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Bristow <email>mike@urgle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Del <email>repenting@hotmail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durian <email>durian@plutotech.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike E. Matsnev <email>mike@azog.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Evans <email>mevans@candle.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Grupenhoff <email>kashmir@umiacs.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Harding <email>mvh@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Hibler <email>mike@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Karels <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Mike McGaughey <email>mmcg@cs.monash.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Meyer <email>mwm@mired.org</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Mitchell <email>mitchell@ref.tfs.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Murphy <email>mrm@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Peck <email>mike@binghamton.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Sherwood <email>mike@fate.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Spengler <email>mks@msc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Mikhail A. Sokolov <email>mishania@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Ming-I Hseh <email>PA@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Mitsuru Yoshida <email>mitsuru@riken.go.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Monte Mitzelfelt <email>monte@gonefishing.org</email></para>
- </listitem>
-
- <listitem>
- <para>Morgan Davis <email>root@io.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Mostyn Lewis <email>mostyn@mrl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nadav Eiron <email>nadav@barcode.co.il</email></para>
- </listitem>
-
- <listitem>
- <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAJI Hiroyuki
- <email>nakaji@tutrp.tut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Kazushi <email>nkazushi@highway.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKAMURA Motonori
- <email>motonori@econ.kyoto-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NAKATA, Maho <email>chat95@mbox.kyoto-inet.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nanbor Wang <email>nw1@cs.wustl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Naofumi Honda
- <email>honda@Kururu.math.sci.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Narvi <email>narvi@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Nathan Dorfman <email>nathan@rtfm.net</email></para>
- </listitem>
-
- <listitem>
- <para>Neal Fachan <email>kneel@ishiboo.com</email></para>
- </listitem>
-
- <listitem>
- <para>Niall Smart <email>rotel@indigo.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Nicholas Esborn <email>nick@netdot.net</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Barnes <email>Nick.Barnes@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Hilliard <email>nick@foobar.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Johnson <email>freebsd@spatula.net</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Williams <email>njw@cs.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Nickolay N. Dudorov <email>nnd@itfs.nsk.su</email></para>
- </listitem>
-
- <listitem>
- <para>NIIMI Satoshi <email>sa2c@and.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Niklas Hallqvist <email>niklas@filippa.appli.se</email></para>
- </listitem>
-
- <listitem>
- <para>Nils M. Holm <email>nmh@t3x.org</email></para>
- </listitem>
-
- <listitem>
- <para>Nisha Talagala <email>nisha@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>adrian@virginia.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>alex@elvisti.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>anto@netscape.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bobson@egg.ics.nitch.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>bovynf@awe.be</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>burg@is.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>chris@gnome.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>colsen@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>coredump@nervosa.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dannyman@arh0300.urh.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>davids@SECNET.COM</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>derek@free.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>devet@adv.IAEhv.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>djv@bedford.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>dvv@sprint.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>enami@ba2.so-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@eru.tubank.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>flash@hway.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>fn@pain.csrv.uidaho.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>frf@xocolatl.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gclarkii@netport.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gordon@sheaky.lonestar.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>graaf@iae.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>greg@greg.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>grossman@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>gusw@fub46.zedat.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hfir@math.rochester.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>hnokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iaint@css.tuu.utas.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>invis@visi.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ishisone@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>iverson@lionheart.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>jpt@magic.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>junker@jazz.snu.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>k-sugyou@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kenji@reseau.toyonaka.osaka.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>kfurge@worldnet.att.net</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lh@aus.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>lhecking@nmrc.ucc.ie</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>mrgreen@mame.mu.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>nakagawa@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ohki@gssm.otsuka.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>owaki@st.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pechter@shell.monmouth.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pete@pelican.pelican.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>pritc003@maroon.tc.umn.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>risner@stdio.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>roman@rpd.univ.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@ns2.redline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>root@uglabgw.ug.cs.sunysb.edu</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>stephen.ma@jtec.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>sumii@is.s.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>takas-su@is.aist-nara.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tamone@eig.unige.ch</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tjevans@raleigh.ibm.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>tony-o@iij.ad.jp amurai@spec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>torii@tcd.hitachi.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uenami@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>uhlar@netlab.sk</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>vode@hut.fi</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlloyd@mpd.ca</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wlr@furball.wellsfargo.com</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>wmbfmk@urc.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>yamagata@nwgpc.kek.jp</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ziggy@ryan.org</email></para>
- </listitem>
-
- <listitem>
- <para>No Name <email>ZW6T-KND@j.asahi-net.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuhiro Yasutomi <email>nobu@psrc.isac.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nobuyuki Koganemaru
- <email>kogane@koganemaru.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>NOKUBI Hirotaka <email>h-nokubi@yyy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Norio Suzuki <email>nosuzuki@e-mail.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Noritaka Ishizumi <email>graphite@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Noriyuki Soda <email>soda@sra.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Oddbjorn Steffenson <email>oddbjorn@tricknology.org</email</para>
- </listitem>
-
- <listitem>
- <para>Oh Junseon <email>hollywar@mail.holywar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Semyonov <email>os@altavista.net</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg Sharoiko <email>os@rsu.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Oleg V. Volkov <email>rover@lglobus.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Olexander Kunytsa <email>kunia@wolf.istc.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Breuninger <email>ob@seicom.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Friedrichs <email>oliver@secnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Fromme
- <email>oliver.fromme@heim3.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Helmling
- <email>oliver.helmling@stud.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Laumann
- <email>net@informatik.uni-bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Lehmann
- <email>Kai_Allard_Liao@gmx.de</email></para>
- </listitem>
-
- <listitem>
- <para>Oliver Oberdorf <email>oly@world.std.com</email></para>
- </listitem>
-
- <listitem>
- <para>Olof Johansson <email>offe@ludd.luth.se</email></para>
- </listitem>
-
- <listitem>
- <para>Osokin Sergey aka oZZ <email>ozz@FreeBSD.org.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paco Rosich <email>rosich@modico.eleinf.uv.es</email></para>
- </listitem>
-
- <listitem>
- <para>Palle Girgensohn <email>girgen@partitur.se</email></para>
- </listitem>
-
- <listitem>
- <para>Parag Patel <email>parag@cgt.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pascal Pederiva <email>pascal@zuo.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pasvorn Boonmark <email>boonmark@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Bihan-Faou <email>patrick@mindstep.com</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Hausen <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Patrick Seal <email>patseal@hyperhost.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Antonov <email>apg@demos.su</email></para>
- </listitem>
-
- <listitem>
- <para>Paul F. Werkowski <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Fox <email>pgf@foxharp.boston.ma.us</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Koch <email>koch@thehub.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@NetBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Paul M. Lambert <email>plambert@plambert.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul S. LaFollette, Jr. <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Sandys <email>myj@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Paul T. Root <email>proot@horton.iaces.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Vixie <email>paul@vix.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>paulo@isr.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Paulo Menezes <email>pm@dee.uc.pt</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro A M Vazquez <email>vazquez@IQM.Unicamp.BR</email></para>
- </listitem>
-
- <listitem>
- <para>Pedro Giffuni <email>giffunip@asme.org</email></para>
- </listitem>
-
- <listitem>
- <para>Per Wigren <email>wigren@home.se</email></para>
- </listitem>
-
- <listitem>
- <para>Pete Bentley <email>pete@demon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Childs <email>pjchilds@imforei.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Cornelius <email>pc@inr.fzk.de</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Haight <email>peterh@prognet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Jeremy <email>perer.jeremy@alcatel.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter M. Chen <email>pmchen@eecs.umich.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Much <email>peter@citylink.dinoex.sub.org</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Olsson <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Philipp <email>pjp@bsd-daemon.net</email></para>
- </listitem>
-
- <listitem>
- <para>Peter Stubbs <email>PETERS@staidan.qld.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Peter van Heusden <email>pvh@egenetics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Maker <email>pjm@cs.ntu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Taylor <email>phil@zipmail.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Philip Musumeci <email>philip@rmit.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Philippe Lefebvre <email>nemesis@balistik.net</email></para>
- </listitem>
-
- <listitem>
- <para>Pierre Y. Dampure <email>pierre.dampure@k2c.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Pius Fischer <email>pius@ienet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pomegranate <email>daver@flag.blackened.net</email></para>
- </listitem>
-
- <listitem>
- <para>Powerdog Industries
- <email>kevin.ruddy@powerdog.com</email></para>
- </listitem>
-
- <listitem>
- <para>Priit J&auml;rv <email>priit@cc.ttu.ee</email></para>
- </listitem>
-
- <listitem>
- <para>R Joseph Wright <email>rjoseph@mammalia.org</email></para>
- </listitem>
-
- <listitem>
- <para>R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Randal S. Masutani <email>randal@comtest.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall Hopper <email>rhh@ct.picker.com</email></para>
- </listitem>
-
- <listitem>
- <para>Randall W. Dean <email>rwd@osf.org</email></para>
- </listitem>
-
- <listitem>
- <para>Randy Bush <email>rbush@bainbridge.verio.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rasmus Kaj <email>kaj@Raditex.se</email></para>
- </listitem>
-
- <listitem>
- <para>Reinier Bezuidenhout
- <email>rbezuide@mikom.csir.co.za</email></para>
- </listitem>
-
- <listitem>
- <para>Remy Card <email>Remy.Card@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Ricardas Cepas <email>rch@richard.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Riccardo Veraldi <email>veraldi@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Rich Wood <email>rich@FreeBSD.org.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Henderson <email>richard@atheist.tamu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Hwang <email>rhwang@bigpanda.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Kiss <email>richard@homemail.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard J Kuhns <email>rjk@watson.grauel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard M. Neswold
- <email>rneswold@enteract.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Seaman, Jr. <email>dick@tar.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Stallman <email>rms@gnu.ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Straka <email>straka@user1.inficad.com</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Tobin <email>richard@cogsci.ed.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wackerbarth <email>rkw@Dataplex.NET</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Winkel <email>rich@math.missouri.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Richard Wiwatowski <email>rjwiwat@adelaide.on.net</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>rick@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklin <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Austein <email>sra@epilogue.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Mallory <email>rmallory@qualcomm.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rob Snow <email>rsnow@txdirect.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Crowe <email>bob@speakez.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Eckardt
- <email>roberte@MEP.Ruhr-Uni-Bochum.de</email></para>
- </listitem>
-
- <listitem>
- <para>Robert P Ricci <email>ricci@cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sanders <email>rsanders@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Sexton <email>robert@kudra.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Shady <email>rls@id.net</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Swindells <email>swindellsr@genrad.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Withrow <email>witr@rwwa.com</email></para>
- </listitem>
-
- <listitem>
- <para>Robert Yoder <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Robin Carey
- <email>robin@mailgate.dtc.rankxerox.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Rod Taylor <email>rod@idiotswitch.org</email></para>
- </listitem>
-
- <listitem>
- <para>Roger Hardiman <email>roger@cs.strath.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Roland Jesse <email>jesse@cs.uni-magdeburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>Roman Shterenzon <email>roman@xpert.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Bickers <email>rbickers@intercenter.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ron Lenk <email>rlenk@widget.xmission.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ronald Kuehn <email>kuehn@rz.tu-clausthal.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rudolf Cejka <email>cejkar@dcse.fee.vutbr.cz</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Belkin <email>rus@home2.UA.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ruslan Shevchenko <email>rssh@cam.grad.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Russell L. Carter <email>rcarter@pinyon.org</email></para>
- </listitem>
-
- <listitem>
- <para>Russell Vincent <email>rv@groa.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Ryan Younce <email>ryany@pobox.com</email></para>
- </listitem>
-
- <listitem>
- <para>Ryuichiro IMURA <email>imura@af.airnet.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sakari Jalovaara <email>sja@tekla.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Sam Hartman <email>hartmans@mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Lam <email>skl@ScalableNetwork.com</email></para>
- </listitem>
-
- <listitem>
- <para>Samuel Tardieu <email>sam@inf.enst.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Samuele Zannoli <email>zannoli@cs.unibo.it</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Janssen <email>janssen@rendo.dekooi.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Sander Vesik <email>sander@haldjas.folklore.ee</email></para>
- </listitem>
-
- <listitem>
- <para>Sandro Sigala <email>ssigala@globalnet.it</email></para>
- </listitem>
-
- <listitem>
- <para>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SASAKI Shunsuke <email>ele@pop17.odn.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Blank <email>blank@fox.uni-trier.de</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Satoh Junichi <email>junichi@astec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SAWADA Mizuki <email>miz@qb3.so-net.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Scot Elliott <email>scot@poptart.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scot W. Hetzel <email>hetzels@westbend.net</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Kenney <email>saken@rmta.ml.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott A. Moberly <email>smoberly@xavier.dyndns.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Blachowicz
- <email>scott.blachowicz@seaslug.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Hazen Mueller <email>scott@zorch.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Michel <email>scottm@cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Mitchel <email>scott@uk.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sebastian Strollo <email>seb@erix.ericsson.se</email></para>
- </listitem>
-
- <listitem>
- <para>Serge V. Vakulenko <email>vak@zebub.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei Chechetkin <email>csl@whale.sunbay.crimea.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergei S. Laskavy <email>laskavy@pc759.cs.msu.su</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Gershtein <email>sg@mplik.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Kosyakov <email>ks@itp.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Potapov <email>sp@alkor.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Samoyloff <email>gonza@techline.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Shkonda <email>serg@bcs.zp.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey Skvortsov <email>skv@protey.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergey V.Dorokhov <email>svd@kbtelecom.nalnet.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Sergio Lenzi <email>lenzi@bsi.com.br</email></para>
- </listitem>
-
- <listitem>
- <para>Shaun Courtney <email>shaun@emma.eng.uct.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Shawn M. Carey <email>smcarey@mailbox.syr.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Shigio Yamaguchi <email>shigio@tamacom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shinya FUJIE <email>fujie@tk.elec.waseda.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Simon <email>simon@masi.ibp.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Burge <email>simonb@telstra.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Dick <email>simond@irrelevant.org</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Marlow <email>simonm@dcs.gla.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Simon Shapiro <email>shimon@simon-shapiro.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sin'ichiro MIYATANI <email>siu@phaseone.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Soochon Radee <email>slr@mitre.org</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dayton <email>csdayton@midway.uchicago.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Soren Dossing <email>sauber@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Soren S. Jorvang <email>soren@wheel.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Bethke <email>stb@hanse.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Eggers <email>seggers@semyam.dinoco.de</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Moeding <email>s.moeding@ndh.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan Petri <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stefan `Sec` Zehl <email>sec@42.org</email></para>
- </listitem>
-
- <listitem>
- <para>Eric D. Futch <email>efutch@nyct.net</email></para>
- </listitem>
-
- <listitem>
- <para>Steinar Haug <email>sthaug@nethelp.no</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane E. Potvin <email>sepotvin@videotron.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Stephane Legrand <email>stephane@lituus.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Clawson
- <email>sclawson@marker.cs.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen F. Combs <email>combssf@salem.ge.com</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Farrell <email>stephen@farrell.org</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Hocking <email>sysseh@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen J. Roznowski <email>sjr@home.net</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen Melvin <email>melvin@zytek.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Bauer <email>sbauer@rock.sdsmt.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Coltrin <email>spcoltri@unm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Deering <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gerakines <email>steve2@genesis.tiac.net</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Gericke <email>steveg@comtrol.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Piette <email>steve@simon.chi.il.US</email></para>
- </listitem>
-
- <listitem>
- <para>Steve Schwarz <email>schwarz@alpharel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Enderle <email>panic@subphase.de</email></para>
- </listitem>
-
- <listitem>
- <para>Steven G. Kargl
- <email>kargl@troutmask.apl.washington.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven H. Samorodin <email>samorodi@NUXI.com</email></para>
- </listitem>
-
- <listitem>
- <para>Steven McCanne <email>mccanne@cs.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Plite <email>splite@purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Steven Wallace <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Stijn Hoop <email>stijn@win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Stuart Henderson
- <email>stuart@internationalschool.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Sue Blake <email>sue@welearn.com.au</email></para>
- </listitem>
-
- <listitem>
- <para>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Sugiura Shiro <email>ssugiura@duo.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Sujal Patel <email>smpatel@wam.umd.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Sungman Cho <email>smcho@tsp.korea.ac.kr</email></para>
- </listitem>
-
- <listitem>
- <para>Sune Stjerneby <email>stjerneby@usa.net</email></para>
- </listitem>
-
- <listitem>
- <para>SURANYI Peter
- <email>suranyip@jks.is.tsukuba.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Suzuki Yoshiaki
- <email>zensyo@ann.tama.kawasaki.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Svein Skogen
- <email>tds@nsn.no</email></para>
- </listitem>
-
- <listitem>
- <para>Sybolt de Boer <email>bolt@xs4all.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Tadashi Kumano <email>kumano@strl.nhk.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Taguchi Takeshi <email>taguchi@tohoku.iij.ad.jp</email></para>
- </listitem>
-
- <listitem>
- <para>TAKAHASHI Kaoru <email>kaoru@kaisei.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takahiro Yugawa <email>yugawa@orleans.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Mega <email>mega@minz.org</email></para>
- </listitem>
-
- <listitem>
- <para>Takashi Uozu <email>j1594016@ed.kagu.sut.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takayuki Ariga <email>a00821@cc.hc.keio.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeru NAIKI <email>naiki@bfd.es.hokudai.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Amaike <email>amaike@iri.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi MUTOH <email>mutoh@info.nara-k.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi Ohashi
- <email>ohashi@mickey.ai.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takeshi WATANABE
- <email>watanabe@crayon.earth.s.kobe-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Takuya SHIOZAKI
- <email>tshiozak@makino.ise.chuo-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tatoku Ogaito <email>tacha@tera.fukui-med.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Buswell <email>tbuswell@mediaone.net</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Faber <email>faber@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ted Lemon <email>mellon@isc.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@lambert.org</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tetsuya Furukawa <email>tetsuya@secom-sis.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Theo de Raadt <email>deraadt@OpenBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas <email>thomas@mathematik.uni-Bremen.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas D. Dean <email>tomdean@ix.netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas David Rivers <email>rivers@dignus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas G. McWilliams <email>tgm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Graichen
- <email>graichen@omega.physik.fu-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas K&ouml;nig
- <email>Thomas.Koenig@ciw.uni-karlsruhe.de</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Ptacek <email>unknown</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Quinot <email>thomas@cuivre.fr.eu.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas A. Stephens <email>tas@stephens.org</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Stromberg <email>tstrombe@rtci.com</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Valentino Crimi
- <email>tcrimi+@andrew.cmu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Thomas Wintergerst <email>thomas@lemur.nord.de</email></para>
- </listitem>
-
- <listitem>
- <para>&THORN;&oacute;r&eth;ur &Iacute;varsson
- <email>totii@est.is</email></para>
- </listitem>
-
- <listitem>
- <para>Thierry Thomas <email>tthomas@mail.dotcom.fr</email></para>
- </listitem>
-
- <listitem>
- <para>Timothy Jensen <email>toast@blackened.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Kientzle <email>kientzle@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Singletary
- <email>tsingle@sunland.gsfc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Tim Wilkinson <email>tim@sarc.city.ac.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Timo J. Rinne <email>tri@iki.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Tobias Reifenberger <email>treif@mayn.de</email></para>
- </listitem>
-
- <listitem>
- <para>Todd Miller <email>millert@openbsd.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>root@majestix.cmr.no</email></para>
- </listitem>
-
- <listitem>
- <para>Tom <email>tom@sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Gray - DCA <email>dcasba@rain.org</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Jobbins <email>tom@tom.tj</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Pusateri <email>pusateri@juniper.net</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Rush <email>tarush@mindspring.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tom Samplonius <email>tom@misery.sdf.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tomohiko Kurahashi
- <email>kura@melchior.q.t.u-tokyo.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Kimball <email>alk@Think.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Li <email>tli@jnx.com</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Lynn <email>wing@cc.nsysu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Tony Maher <email>Tony.Maher@eBioinformatics.com</email></para>
- </listitem>
-
- <listitem>
- <para>Torbjorn Granlund <email>tege@matematik.su.se</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiko SHIMOKAWA <email>toshi@tea.forus.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshihiro Kanda <email>candy@kgc.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Toshiomi Moriki
- <email>Toshiomi.Moriki@ma1.seikyou.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Trefor S. <email>trefor@flevel.co.uk</email></para>
- </listitem>
-
- <listitem>
- <para>Trenton Schulz <email>twschulz@cord.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Trevor Blackwell <email>tlb@viaweb.com</email></para>
- </listitem>
-
- <listitem>
- <para>Udo Schweigert <email>ust@cert.siemens.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ugo Paternostro <email>paterno@dsi.unifi.it</email></para>
- </listitem>
-
- <listitem>
- <para>Ulf Kieber <email>kieber@sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ulli Linzen <email>ulli@perceval.camelot.de</email></para>
- </listitem>
-
- <listitem>
- <para>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Uwe Arndt <email>arndt@mailhost.uni-koblenz.de</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Belman <email>vab@lflat.vas.mobilix.dk</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Chekan <email>vadim@gc.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Kolontsov <email>vadim@tversu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vadim Mikhailov <email>mvp@braz.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Valentin Nechayev <email>netch@lucky.net</email></para>
- </listitem>
-
- <listitem>
- <para>Valentino Vaschetto <email>logo@blackened.com</email></para>
- </listitem>
-
- <listitem>
- <para>Van Jacobson <email>van@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Vasily V. Grechishnikov
- <email>bazilio@ns1.ied-vorstu.ac.ru</email></para>
- </listitem>
-
- <listitem>
- <para>Vasim Valejev <email>vasim@uddias.diaspro.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vernon J. Schryver <email>vjs@mica.denver.sgi.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vic Abell <email>abe@cc.purdue.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Ville Eerola <email>ve@sci.fi</email></para>
- </listitem>
-
- <listitem>
- <para>Vince Valenti <email>vince@blue-box.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincent Poy <email>vince@venus.gaianet.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vincenzo Capuano
- <email>VCAPUANO@vmprofs.esoc.esa.de</email></para>
- </listitem>
-
- <listitem>
- <para>Virgil Champlin <email>champlin@pa.dec.com</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir A. Jakovenko
- <email>vovik@ntu-kpi.kiev.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Vladimir Kushnir <email>kushn@mail.kar.net</email></para>
- </listitem>
-
- <listitem>
- <para>Vsevolod Lobko <email>seva@alex-ua.com</email></para>
- </listitem>
-
- <listitem>
- <para>W. Gerald Hicks <email>wghicks@bellsouth.net</email></para>
- </listitem>
-
- <listitem>
- <para>W. Richard Stevens <email>rstevens@noao.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt Howard <email>howard@ee.utah.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Walt M. Shandruk <email>walt@erudition.net</email</para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wayne Scott <email>wscott@ichips.intel.com</email></para>
- </listitem>
-
- <listitem>
- <para>Werner Griessl
- <email>werner@btp1da.phy.uni-bayreuth.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wes Santee <email>wsantee@wsantee.oz.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wietse Venema <email>wietse@wzv.win.tue.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>Willem Jan Withagen <email>wjw@surf.IAE.nl</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>William Liao <email>william@tale.net</email></para>
- </listitem>
-
- <listitem>
- <para>Wojtek Pilorz
- <email>wpilorz@celebris.bdk.lublin.pl</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Helbig <email>helbig@ba-stuttgart.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Wu Ching-hong <email>woju@FreeBSD.ee.Ntu.edu.TW</email></para>
- </listitem>
-
- <listitem>
- <para>Yarema <email>yds@ingress.com</email></para>
- </listitem>
-
- <listitem>
- <para>Yaroslav Terletsky <email>ts@polynet.lviv.ua</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhiro Fukama <email>yasuf@big.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Ming Lee <email>leeym@bsd.ce.ntu.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yin-Jieh Chen <email>yinjieh@Crazyman.Dorm13.NCTU.edu.tw</email></para>
- </listitem>
-
- <listitem>
- <para>Yixin Jin <email>yjin@rain.cs.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yoichi Asai <email>yatt@msc.biglobe.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoichi Nakayama <email>yoichi@eken.phys.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshiaki Uchikawa <email>yoshiaki@kt.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihiko SARUMRU <email>mistral@imasy.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshihisa NAKAGAWA
- <email>y-nakaga@ccs.mt.nec.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshikazu Goto <email>gotoh@ae.anritsu.co.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshimasa Ohnishi
- <email>ohnishi@isc.kyutech.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yoshishige Arai <email>ryo2@on.rim.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuichi MATSUTAKA <email>matutaka@osa.att.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yujiro MIYATA
- <email>miyata@bioele.nuee.nagoya-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yu-Shun Wang <email>yushunwa@isi.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Yusuke Nawano <email>azuki@azkey.org</email></para>
- </listitem>
-
- <listitem>
- <para>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuuki SAWADA <email>mami@whale.cc.muroran-it.ac.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuuichi Narahara <email>aconitum@po.teleway.ne.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@cpcoup5.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Yves Fonk <email>yves@dutncp8.tn.tudelft.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Heilig <email>zach@gaffaneys.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zach Zurflu <email>zach@pabst.bendnet.com</email></para>
- </listitem>
-
- <listitem>
- <para>Zahemszhky Gabor <email>zgabor@code.hu</email></para>
- </listitem>
-
- <listitem>
- <para>Zhong Ming-Xun <email>zmx@mail.CDPA.nsysu.edu.tw</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 id="contrib-386bsd">
- <title>386BSD ¥Ñ¥Ã¥Á¥­¥Ã¥È¤Ø¤Î¥Ñ¥Ã¥ÁÄ󶡼Ô</title>
-
- <para>(̾Á°¤Ç¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç):</para>
-
- <itemizedlist>
- <listitem>
- <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Adrian Hall <email>ahall@mirapoint.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andrey A. Chernov <email>ache@astral.msk.su</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para>
- </listitem>
-
- <listitem>
- <para>Andrew Moore <email>alm@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Andy Valencia <email>ajv@csd.mot.com</email>
- <email>jtk@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para>
- </listitem>
-
- <listitem>
- <para>Bakul Shah <email>bvs@bitblocks.com</email></para>
- </listitem>
-
- <listitem>
- <para>Barry Lustig <email>barry@ictv.com</email></para>
- </listitem>
-
- <listitem>
- <para>Bob Wilcox <email>bob@obiwan.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>Branko Lankester</para>
- </listitem>
-
- <listitem>
- <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para>
- </listitem>
-
- <listitem>
- <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris G. Demetriou
- <email>cgd@postgres.berkeley.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Chris Torek <email>torek@ee.lbl.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Christoph Robitschko
- <email>chmr@edvz.tu-graz.ac.at</email></para>
- </listitem>
-
- <listitem>
- <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para>
- </listitem>
-
- <listitem>
- <para>Dave Rivers <email>rivers@ponds.uucp</email></para>
- </listitem>
-
- <listitem>
- <para>David Dawes <email>dawes@physics.su.OZ.AU</email></para>
- </listitem>
-
- <listitem>
- <para>David Greenman <email>dg@Root.COM</email></para>
- </listitem>
-
- <listitem>
- <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Felix Gaehtgens
- <email>felix@escape.vsse.in-berlin.de</email></para>
- </listitem>
-
- <listitem>
- <para>Frank Maclachlan <email>fpm@crash.cts.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Gary Howland <email>gary@hotlava.com</email></para>
- </listitem>
-
- <listitem>
- <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Goran Hammarback <email>goran@astro.uu.se</email></para>
- </listitem>
-
- <listitem>
- <para>Guido van Rooij <email>guido@gvr.org</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Antony Halse <email>guy@rucus.ru.ac.za</email></para>
- </listitem>
-
- <listitem>
- <para>Guy Harris <email>guy@auspex.com</email></para>
- </listitem>
-
- <listitem>
- <para>Havard Eidnes
- <email>Havard.Eidnes@runit.sintef.no</email></para>
- </listitem>
-
- <listitem>
- <para>Herb Peyerl <email>hpeyerl@novatel.cuc.ab.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Holger Veit <email>Holger.Veit@gmd.de</email></para>
- </listitem>
-
- <listitem>
- <para>Ishii Masahiro, R. Kym Horsell</para>
- </listitem>
-
- <listitem>
- <para>J.T. Conklin <email>jtc@cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jagane D Sundar <email>jagane@netcom.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Clark <email>jjc@jclark.com</email></para>
- </listitem>
-
- <listitem>
- <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para>
- </listitem>
-
- <listitem>
- <para>James W. Dolter</para>
- </listitem>
-
- <listitem>
- <para>James da Silva <email>jds@cs.umd.edu</email> et al</para>
- </listitem>
-
- <listitem>
- <para>Jay Fenlason <email>hack@datacube.com</email></para>
- </listitem>
-
- <listitem>
- <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Lohse
- <email>lohse@tech7.informatik.uni-hamburg.de</email></para>
- </listitem>
-
- <listitem>
- <para>J&ouml;rg Wunsch
- <email>joerg_wunsch@uriah.heep.sax.de</email></para>
- </listitem>
-
- <listitem>
- <para>John Dyson</para>
- </listitem>
-
- <listitem>
- <para>John Woods <email>jfw@eddie.mit.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Jordan K. Hubbard <email>jkh@whisker.hubbard.ie</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Elischer <email>julian@dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Julian Stacey <email>jhs@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para>
- </listitem>
-
- <listitem>
- <para>Karl Lehenbauer <email>karl@NeoSoft.com</email>
- <email>karl@one.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Keith Bostic <email>bostic@toe.CS.Berkeley.EDU</email></para>
- </listitem>
-
- <listitem>
- <para>Ken Hughes</para>
- </listitem>
-
- <listitem>
- <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para>
- </listitem>
-
- <listitem>
- <para>Kevin Lahey <email>kml%rokkaku.UUCP@mathcs.emory.edu</email>
- <email>kml@mosquito.cis.ufl.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Konstantinos Konstantinidis <email>kkonstan@duth.gr</email></para>
- </listitem>
-
- <listitem>
- <para>Marc Frajola <email>marc@dev.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email>
- <email>tinguely@hookie.cs.ndsu.NoDak.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Martin Renters <email>martin@tdc.on.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Clay <email>mclay@weareb.org</email></para>
- </listitem>
-
- <listitem>
- <para>Michael Galassi <email>nerd@percival.rain.com</email></para>
- </listitem>
-
- <listitem>
- <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para>
- </listitem>
-
- <listitem>
- <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para>
- </listitem>
-
- <listitem>
- <para>Nate Williams <email>nate@bsd.coe.montana.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Nick Handel <email>nhandel@NeoSoft.com</email>
- <email>nick@madhouse.neosoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Pace Willisson <email>pace@blitz.com</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Kranenburg <email>pk@cs.few.eur.nl</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para>
- </listitem>
-
- <listitem>
- <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para>
- </listitem>
-
- <listitem>
- <para>Peter da Silva <email>peter@NeoSoft.com</email></para>
- </listitem>
-
- <listitem>
- <para>Phil Sutherland
- <email>philsuth@mycroft.dialix.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Poul-Henning Kamp<email>phk@FreeBSD.org</email></para>
- </listitem>
-
- <listitem>
- <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para>
- </listitem>
-
- <listitem>
- <para>Rick Macklem <email>root@snowhite.cis.uoguelph.ca</email></para>
- </listitem>
-
- <listitem>
- <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para>
- </listitem>
-
- <listitem>
- <para>Rodney W. Grimes <email>rgrimes@cdrom.com</email></para>
- </listitem>
-
- <listitem>
- <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para>
- </listitem>
-
- <listitem>
- <para>Sean Eric Fagan <email>sef@kithrup.com</email></para>
- </listitem>
-
- <listitem>
- <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email>
- <email>sjg@zen.void.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lambert <email>terry@icarus.weber.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para>
- </listitem>
-
- <listitem>
- <para>Tor Egge <email>Tor.Egge@idi.ntnu.no</email></para>
- </listitem>
-
- <listitem>
- <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para>
- </listitem>
-
- <listitem>
- <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para>
- </listitem>
-
- <listitem>
- <para>William Jolitz <email>withheld</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Solfrank <email>ws@tools.de</email></para>
- </listitem>
-
- <listitem>
- <para>Wolfgang Stanglmeier <email>wolf@dentaro.GUN.de</email></para>
- </listitem>
-
- <listitem>
- <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para>
- </listitem>
- </itemizedlist>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml b/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml
deleted file mode 100644
index 0275791de1..0000000000
--- a/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml
+++ /dev/null
@@ -1,355 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Japanese Documentation Project
-
- Original revision: 1.5
- $FreeBSD: doc/ja_JP.eucJP/books/handbook/sound/chapter.sgml,v 1.1 2000/12/24 19:08:50 hrs Exp $
--->
-
-<chapter id="sound">
- <title>¥µ¥¦¥ó¥É</title>
-
- <para><emphasis>´ó¹Æ: Moses Moore <email>jm-moses@home.com</email>,
- 2000 ǯ 11 ·î 20 Æü.</emphasis></para>
-
- <sect1>
- <title>¤³¤Î¾Ï¤Ç¤Ï</title>
-
- <para>¥Ï¥ó¥É¥Ö¥Ã¥¯¤Î¤³¤Î¾Ï¤Ç¤Ï, FreeBSD
- ¥·¥¹¥Æ¥à¤Ø¤Î¥µ¥¦¥ó¥Éµ¡Ç½¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Þ¤¹.</para>
- </sect1>
-
- <sect1>
- <title>Àµ¤·¤¤¥Ç¥Ð¥¤¥¹¤Î³Îǧ</title>
-
- <para>ÀßÄê¤ò¤Ï¤¸¤á¤ëÁ°¤Ë, ¤¢¤Ê¤¿¤¬»ý¤Ã¤Æ¤¤¤ë¥«¡¼¥É¤Î¥â¥Ç¥ë,
- ¤½¤Î¥«¡¼¥É¤¬»ÈÍѤ·¤Æ¤¤¤ë¥Á¥Ã¥×, ¤½¤·¤Æ PCI, ISA
- ¤É¤Á¤é¤Î¥«¡¼¥É¤Ê¤Î¤«¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
- FreeBSD ¤Ï, ¤µ¤Þ¤¶¤Þ¤Ê PCI ¤ª¤è¤Ó ISA ¤Î¥«¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹.
- ¤â¤·¤¢¤Ê¤¿¤Î¥«¡¼¥É¤¬¼¡¤Î¥ê¥¹¥È¤Ë̵¤¤¾ì¹ç¤Ï,
- &man.pcm.4; ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.
- ¤³¤ì¤Ï´°Á´¤Ê¥ê¥¹¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬,
- Îɤ¯»È¤ï¤ì¤Æ¤¤¤ë¥«¡¼¥É¤¬¤À¤¤¤¿¤¤´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹.</para>
-
- <itemizedlist>
- <listitem>
- <para>Crystal 4237, 4236, 4232, 4231</para>
- </listitem>
-
- <listitem>
- <para>¥ä¥Þ¥Ï OPL-SAx</para>
- </listitem>
-
- <listitem>
- <para>OPTi931</para>
- </listitem>
-
- <listitem>
- <para>Ensoniq AudioPCI 1370/1371</para>
- </listitem>
-
- <listitem>
- <para>ESS Solo-1/1E</para>
- </listitem>
-
- <listitem>
- <para>NeoMagic 256AV/ZX</para>
- </listitem>
-
- <listitem>
- <para>Sound Blaster Pro, 16, 32, AWE64, AWE128, Live</para>
- </listitem>
-
- <listitem>
- <para>Creative ViBRA16</para>
- </listitem>
-
- <listitem>
- <para>Advanced Asound 100, 110, ¤ª¤è¤Ó Logic ALS120</para>
- </listitem>
-
- <listitem>
- <para>ES 1868, 1869, 1879, 1888</para>
- </listitem>
-
- <listitem>
- <para>Gravis UltraSound</para>
- </listitem>
-
- <listitem>
- <para>Aureal Vortex 1 ¤ª¤è¤Ó 2</para>
- </listitem>
- </itemizedlist>
-
- <para>¥«¡¼¥Í¥ëÆâ¤Ç»ÈÍѤ¹¤ë¥É¥é¥¤¥Ð¤Ï,
- »ÈÍѤ¹¤ë¥«¡¼¥É¤Î¼ïÎà¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹.
- ¤³¤ÎÀá¤Ç¤Ï, ¤½¤ì¤é¤Î¾Ü¤·¤¤¾ðÊó¤È,
- <link linkend="kernelconfig">¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë</link>¤Ë
- ²¿¤òÄɲ乤ì¤ÐÎɤ¤¤Î¤«¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹.</para>
-
- <sect2>
- <title>Creative, Advance, ¤ª¤è¤Ó ESS ¼ÒÀ½¥µ¥¦¥ó¥É¥«¡¼¥É</title>
-
- <para>¤³¤ì¤é¤Î¥«¡¼¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï,
- ¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤Ë°Ê²¼¤ÎÀßÄê¤òÄɲä·¤Þ¤¹.</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>PnP ¤Î ISA ¥«¡¼¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï, ¤µ¤é¤Ë</para>
-
- <programlisting>device sbc</programlisting>
-
- <para>¤â²Ã¤¨¤Æ¤¯¤À¤µ¤¤.
- PnP ¤Ç¤Ï¤Ê¤¤ ISA ¤Î¥«¡¼¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï,</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>¤È</para>
-
- <programlisting>device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15</programlisting>
-
- <para>¤ò²Ã¤¨¤Þ¤¹.
- ¤³¤ì¤é¤Ïɸ½à¤ÎÀßÄê¤Ë¤¢¤ï¤»¤¿¤â¤Î¤Ç¤¹¤Î¤Ç,
- IRQ ¤Ê¤É¤ÎÀßÄê¤ÏɬÍפ˱þ¤¸¤ÆÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
- ¤Þ¤¿, ÀßÄê¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï, &man.sbc.4;
- ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para>
-
- <note>
- <para>¥Ñ¥Ã¥Á¤òŬÍѤ·¤Æ¤¤¤Ê¤¤ FreeBSD 4.0 ¤Ï
- Sound Blaster Live ¤ËÂбþ¤·¤Æ¤¤¤Þ¤»¤ó.
- ¤Þ¤¿, ¤³¤Îʸ½ñ¤Ç¤Ï¤½¤ÎÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï°·¤¤¤Þ¤»¤ó.
- ¤³¤Î¥«¡¼¥É¤ò»ÈÍѤ¹¤ëÁ°¤Ë, ºÇ¿·¤Î -STABLE
- ¤Ë¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Gravis ¼ÒÀ½ UltraSound ¥«¡¼¥É</title>
-
- <para>PnP ¤Î ISA ¥«¡¼¥É¤ò»ÈÍѤ¹¤ë¤Ë¤Ï,
- ¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤Ë¼¡¤Î
- 2 ¤Ä¤ÎÀßÄê¤òÄɲä·¤Þ¤¹.</para>
-
- <programlisting>device pcm</programlisting>
-
- <programlisting>device gusc</programlisting>
-
- <para>PnP ¤Ç¤Ï¤Ê¤¤ ISA ¥«¡¼¥É¤Î¾ì¹ç¤Ë¤Ï,</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>¤È</para>
-
- <programlisting>device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13</programlisting>
-
- <para>¤ò²Ã¤¨¤Þ¤¹.
- IRQ ¤Ê¤É¤ÎÀßÄê¤ÏɬÍפ˱þ¤¸¤ÆÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
- ¤Þ¤¿, ÀßÄê¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï, &man.gusc.4;
- ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </sect2>
-
- <sect2>
- <title>Crystal ¼ÒÀ½¥µ¥¦¥ó¥É¥«¡¼¥É</title>
-
- <para>Crystal ¼ÒÀ½¤Î¥«¡¼¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï,
- ¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤Ë</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>¤È</para>
-
- <programlisting>device csa</programlisting>
-
- <para>¤ÎξÊý¤¬É¬ÍפǤ¹.</para>
- </sect2>
-
- <sect2>
- <title>°ìÈÌŪ¤Ê¥«¡¼¥É¤Î¥µ¥Ý¡¼¥È</title>
-
- <para>PnP ISA ¥«¡¼¥É¤ä PCI ¥«¡¼¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï,</para>
-
- <programlisting>device pcm</programlisting>
-
- <para>¤ò¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ËÄɲä·¤Þ¤¹.
- ¥Ö¥ê¥Ã¥¸¥É¥é¥¤¥Ð¤ò»ý¤¿¤Ê¤¤, PnP ÈóÂбþ¤Î ISA
- ¥«¡¼¥É¤Î¾ì¹ç¤Ï,</para>
-
- <programlisting>device pcm0 at isa? irq 10 drq 1 flags 0x0</programlisting>
-
- <para>¤ò²Ã¤¨¤Þ¤¹.
- IRQ ¤Ê¤É¤ÎÀßÄê¤Ï,
- ¥Ï¡¼¥É¥¦¥§¥¢¤ÎÀßÄê¤Ë¹ç¤¦¤è¤¦¤ËɬÍפ˱þ¤¸¤ÆÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>¥«¡¼¥Í¥ë¤ÎºÆ¹½ÃÛ</title>
-
- <para>ɬÍפÊÀßÄê¤ò¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ËÄɲä·¤¿¤é,
- ¥«¡¼¥Í¥ë¤òºÆ¹½ÃÛ¤·¤Þ¤¹.
- ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¥Ï¥ó¥É¥Ö¥Ã¥¯¤Î<xref linkend="kernelconfig-building">¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </sect1>
-
- <sect1>
- <title>¥Ç¥Ð¥¤¥¹¥Î¡¼¥É¤ÎºîÀ®¤È¥Æ¥¹¥È</title>
-
- <para>ºÆµ¯Æ°¤·¤¿¸å, ¥í¥°¥¤¥ó¤·¤Æ <command>cat /dev/sndstat</command>
- ¤ò¼Â¹Ô¤·¤Þ¤¹. ¤¹¤ë¤È, °Ê²¼¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤ë¤Ï¤º¤Ç¤¹.</para>
-
- <programlisting>FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53
-Installed devices:
-pcm0: &lt;Aureal Vortex 8830&gt; at memory 0xfeb40000 irq 5 (4p/1r +channels duplex)</programlisting>
-
- <para>¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤ë¾ì¹ç¤Ï,
- º£¤Þ¤Ç¤Î¼ê½ç¤Î¤É¤³¤«¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹.
- ¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ò¤â¤¦°ìÅÙ¸«Ä¾¤·¤Æ,
- Àµ¤·¤¤¥Ç¥Ð¥¤¥¹¤òÁªÂò¤·¤Æ¤¤¤ë¤«¤É¤¦¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.</para>
-
- <para>¥¨¥é¡¼¤¬½ÐÎϤµ¤ì¤º¤Ë <devicename>pcm0</devicename>
- ¤¬½ÐÎϤµ¤ì¤¿¾ì¹ç¤Ï,
- <command>su</command> ¥³¥Þ¥ó¥É¤Ç
- <username>root</username> ¤Ë¤Ê¤ê,
- ¼¡¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Þ¤¹.</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
-
- <para>¥¨¥é¡¼¤¬½ÐÎϤµ¤ì¤º¤Ë <devicename>pcm1</devicename>
- ¤¬½ÐÎϤµ¤ì¤¿¾ì¹ç¤Ï,
- <command>su</command> ¥³¥Þ¥ó¥É¤Ç
- <username>root</username> ¤Ë¤Ê¤ê,
- ¼¡¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Þ¤¹.</para>
-
- <screen>
-&prompt.root; <userinput>cd /dev</userinput>
-&prompt.root; <userinput>sh MAKEDEV snd1</userinput></screen>
-
- <para>¾å¤Î¥³¥Þ¥ó¥É¤Ï¤É¤Á¤é¤â,
- <devicename>/dev/snd</devicename> ¤È¤¤¤¦
- ¥Ç¥Ð¥¤¥¹¤òºîÀ®¤¹¤ë¤â¤Î<emphasis>¤Ç¤Ï¤Ê¤¤</emphasis>¤È¤¤¤¦ÅÀ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤!
- ¤³¤ì¤é¤ÏÂå¤ï¤ê¤Ë,
- ¼¡¤Î¤è¤¦¤ÊÊ£¿ô¤Î¥Ç¥Ð¥¤¥¹¥Î¡¼¥É¤òºîÀ®¤·¤Þ¤¹.</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>¥Ç¥Ð¥¤¥¹</entry>
- <entry>ÀâÌÀ</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><devicename>/dev/audio</devicename></entry>
- <entry>SPARC ¸ß´¹¥ª¡¼¥Ç¥£¥ª¥Ç¥Ð¥¤¥¹</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/dsp</devicename></entry>
- <entry>(ÌõÃí: 8 ¥Ó¥Ã¥È¤Ç) ¥µ¥ó¥×¥ê¥ó¥°¤¹¤ë²»À¼¥Ç¥Ð¥¤¥¹</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/dspW</devicename></entry>
- <entry><devicename>/dev/dsp</devicename>¤ÈƱÍÍ.
- ¤¿¤À¤·¥µ¥ó¥×¥ê¥ó¥°¤Ï 16 ¥Ó¥Ã¥È.</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/midi</devicename></entry>
- <entry>Raw MIDI ¥¢¥¯¥»¥¹¥Ç¥Ð¥¤¥¹</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/mixer</devicename></entry>
- <entry>¥³¥ó¥È¥í¡¼¥ë¥Ý¡¼¥È¥ß¥­¥µ¡¼¥Ç¥Ð¥¤¥¹</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/music</devicename></entry>
- <entry>¥ì¥Ù¥ë 2 ¥·¡¼¥±¥ó¥µ¥¤¥ó¥¿¥Õ¥§¡¼¥¹</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/sequencer</devicename></entry>
- <entry>¥·¡¼¥±¥ó¥µ¥Ç¥Ð¥¤¥¹</entry>
- </row>
-
- <row>
- <entry><devicename>/dev/pss</devicename></entry>
- <entry>¥×¥í¥°¥é¥à²Äǽ¤Ê¥Ç¥Ð¥¤¥¹¥¤¥ó¥¿¥Õ¥§¡¼¥¹</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>¤¹¤Ù¤Æ¤¦¤Þ¤¯¹Ô¤±¤Ð,
- ¥µ¥¦¥ó¥É¥«¡¼¥É¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.
- ¤¦¤Þ¤¯¹Ô¤«¤Ê¤¤¾ì¹ç¤Ï, ¼¡¤ÎÀá¤ò¤´Í÷¤¯¤À¤µ¤¤.</para>
- </sect1>
-
- <sect1>
- <title>¤è¤¯¤¢¤ëÌäÂê</title>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>unsupported subdevice XX error ¤¬½Ð¤Þ¤·¤¿!</para>
- </question>
-
- <answer>
- <para>¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥¤¥¹¥Î¡¼¥É¤¬Àµ¤·¤¯ºîÀ®¤µ¤ì¤Æ¤¤¤Þ¤»¤ó.
- Á°Àá¤Î¼ê½ç¤ò¤â¤¦°ìÅÙ¤ä¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>sb_dspwr(XX) timed out error ¤¬½Ð¤Þ¤·¤¿!</para>
- </question>
-
- <answer>
- <para>I/O ¥Ý¡¼¥È¤¬Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>bad irq XX error ¤¬½Ð¤Þ¤·¤¿!</para>
- </question>
-
- <answer>
- <para>IRQ ¤¬Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó.
- ¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ëÃæ¤Î
- IRQ ¤ÎÀßÄê¤È,
- ¥µ¥¦¥ó¥É¥«¡¼¥É¤Î IRQ ¤ÎÀßÄ꤬Ʊ¤¸¤Ç¤¢¤ë¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>"xxx: gus pcm not attached, out of memory" ¤È¤¤¤¦¥¨¥é¡¼¤¬½Ð¤Þ¤¹.
- ²¿¤¬µ¯¤­¤¿¤Î¤Ç¤·¤ç¤¦¤«?</para>
- </question>
-
- <answer>
- <para>¤³¤ì¤Ï,
- ¥Ç¥Ð¥¤¥¹¤ò»ÈÍѤ¹¤ë¤¿¤á¤ËɬÍפʥá¥â¥ê¤¬³ÎÊݤǤ­¤Ê¤¤»þ¤Ëɽ¼¨¤µ¤ì¤Þ¤¹.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-</chapter>
-
-<!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-always-quote-attributes: t
- sgml-parent-document: ("../book.sgml" "part" "chapter")
- End:
--->
diff --git a/ja_JP.eucJP/man/man1/gtar.1 b/ja_JP.eucJP/man/man1/gtar.1
deleted file mode 100644
index 8dd715edf0..0000000000
--- a/ja_JP.eucJP/man/man1/gtar.1
+++ /dev/null
@@ -1,588 +0,0 @@
-.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*-
-.\" See /usr/src/gnu/COPYING for conditions of redistribution
-.\"
-.\" Written by John F. Woods <jfw@jfwhome.funhouse.com>
-.\" Updated by Robert Eckardt <roberte@mep.ruhr-uni-bochum.de>
-.\"
-.\" %FreeBSD: src/gnu/usr.bin/tar/tar.1,v 1.22.2.10 2001/03/05 18:17:26 ru Exp %
-.\"
-.\" jpman %Id: tar.1,v 1.2 1997/06/24 07:09:44 bobson Stab %
-.Dd December 23, 2000
-.Os FreeBSD
-.Dt TAR 1
-.Sh ̾¾Î
-.Nm tar
-.Nd "¥Æ¡¼¥×¥¢¡¼¥«¥¤¥Ð; ""tar"" ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ÎÁàºî"
-.Sh ½ñ¼°
-.Nm
-.Op Oo Fl Oc Ns Ar bundled-options Ar Args
-.Op Ar gnu-style-flags
-.Op Ar filenames | Fl C Ar directory-name
-.Ar ...
-.Sh ²òÀâ
-.Nm
-¤Ï¡¢Îò»ËŪ¤ÊÍýͳ¤Ë¤è¤ê
-.Dq tape archiver
-¤ò¾Êά¤·¤Æ̾ÉÕ¤±¤é¤ì¤Þ¤·¤¿¡£
-.Nm
-¥×¥í¥°¥é¥à¤Ï¡¢
-.Ar tarfile
-¤È¸Æ¤Ð¤ì¤ë
-.Nm
-¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¡¢¥¢¡¼¥«¥¤¥Ö¤Ë¥Õ¥¡¥¤¥ë¤òÄɲä·¤¿¤ê¡¢
-¤Þ¤¿¥¢¡¼¥«¥¤¥Ö¤«¤é¥Õ¥¡¥¤¥ë¤òÃê½Ð¤·¤¿¤ê¤·¤Þ¤¹¡£
-.Ar tarfile
-¤ÏÄ̾Gµ¤¥Æ¡¼¥×¤ò»Ø¤·¤Þ¤¹¤¬¡¢¥Õ¥í¥Ã¥Ô¥Ç¥£¥¹¥±¥Ã¥È¤ä
-Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£
-.Pp
-Ä̾
-.Nm
-¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎºÇ½é¤Î°ú¿ô¤Ï¡¢µ¡Ç½Ê¸»ú¤ª¤è¤Óµ¡Ç½Êѹ¹Ê¸»ú¤«¤é¤Ê¤ëñ¸ì¤Ç¤¢¤ê¡¢
-¤½¤ÎÁ°¤Ë ¥À¥Ã¥·¥å (-) ¤òÉÕ¤±¤Æ¤âÉÕ¤±¤Ê¤¯¤Æ¤â¤¤¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
-ñ¸ì¤Ë¤Ï¡¢¼¡¤Îµ¡Ç½Ê¸»ú¤Î¤¦¤ÁÃúÅÙ 1 ¤Ä¤ò´Þ¤ó¤Ç¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹:
-.Cm A ,
-.Cm c ,
-.Cm d ,
-.Cm r ,
-.Cm t ,
-.Cm u ,
-.Cm x ,
-¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¡¢
-.Em Äɲà (append)
-¡¢
-.Em ºîÀ® (create)
-¡¢
-.Em º¹Ê¬ (difference)
-¡¢
-.Em ÃÖ´¹ (replace)
-¡¢
-.Em ¥ê¥¹¥Èɽ¼¨ (table of contents)
-¡¢
-.Em ¹¹¿· (update)
-¡¢
-.Em Ãê½Ð (extract)
-¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹ (²¼µ­¤Ë¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹)¡£
-¤³¤ì¤é¤Î¾¤Ë¡¢°Ê²¼¤Ë¾ÜºÙ¤ò½Ò¤Ù¤ëµ¡Ç½Êѹ¹Ê¸»ú¤ò¡¢¥³¥Þ¥ó¥Éñ¸ì¤Ë
-´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤ì¤é¤Î¤¤¤¯¤Ä¤«¤Ï¡¢¥³¥Þ¥ó¥Éñ¸ìÆâ¤ÈƱ¤¸½ç¤Ç
-¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤òÍ׵ᤷ¤Þ¤¹ (
-.Sx »ÈÍÑÎã
-¤ÎÀá¤ò»²¾È)¡£
-µ¡Ç½Ê¸»ú¤Èµ¡Ç½Êѹ¹Ê¸»ú¤Ï¡¢GNU ·Á¼°¤Î°ú¿ô¤Ç»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹
-(2 ¤Ä¤Î¥À¥Ã¥·¥å¤òºÇ½é¤ËÉÕ¤±¡¢1 ¤Ä¤Î¥³¥Þ¥ó¥Éñ¸ì¤´¤È¤Ëµ¡Ç½Ê¸»ú¤«
-µ¡Ç½Êѹ¹Ê¸»ú¤ò 1 ¤Ä¤À¤±»ØÄꤹ¤ë)¡£
-¥¢¡¼¥«¥¤¥Ö¤Ø¤ÎÄɲᢥ¢¡¼¥«¥¤¥Ö¤«¤é¤ÎÃê½Ð¡¢¤½¤·¤Æ¥ê¥¹¥Èɽ¼¨¤Î¤¿¤á¤Ë
-¥³¥Þ¥ó¥É¥é¥¤¥ó»ØÄꤹ¤ë¥Õ¥¡¥¤¥ë̾¤Ë¤Ï¡¢
-¥·¥§¥ë¤Î¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Áʸ»úÎó¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Sh µ¡Ç½
-°Ê²¼¤Îµ¡Ç½¤Î¤¤¤º¤ì¤« 1 ¤Ä¤À¤±¤òɬ¤º»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-.Bl -tag -width "--concatenate" -compact
-.It Fl A
-.It Fl -catenate
-.It Fl "-concatenate"
-»ØÄꤵ¤ì¤¿ (
-.Nm
-¥¢¡¼¥«¥¤¥Ö·Á¼°¤Î) ¥Õ¥¡¥¤¥ë¤ò tar ¥¢¡¼¥«¥¤¥Ö¤ÎËöÈø
-¤ËÄɲä·¤Þ¤¹ (Äɲ乤ëÁ°¤Î¸Å¤¤ end-of-archive ¥Ö¥í¥Ã¥¯¤Ïºï½ü¤µ
-¤ì¤Þ¤¹)¡£
-¤³¤ì¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î 1 ¥Õ¥¡¥¤¥ë¤È¤Ê¤ë¤Î¤Ç
-¤Ï¤Ê¤¯¡¢»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò¡¢ºÇ½é¤Ë»ØÄê
-¤·¤¿¥¢¡¼¥«¥¤¥Ö¤ËÄɲ乤ë¤È¤¤¤¦¸ú²Ì¤ò»ý¤Á¤Þ¤¹¡£
-.Em Ãí :
-¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï
-.Ar tarfile
-¤òºÆ½ñ¤­¹þ¤ß¤¹¤ëɬÍפ¬¤¢¤ë¤¿¤á¡¢1/4
-¥¤¥ó¥Á¥«¡¼¥È¥ê¥Ã¥¸¥Æ¡¼¥×¤Ç¤ÏÆ°ºî¤·¤Þ¤»¤ó¡£
-.It Fl c
-.It Fl -create
-¿·¤·¤¤¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Æ (¤â¤·¤¯¤Ï¸Å¤¤ÆâÍƤòÀÚ¤ê¼Î¤Æ¤Æ)¡¢»ØÄê
-¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£
-.It Fl d
-.It Fl -diff
-.It Fl -compare
-¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î¥Õ¥¡¥¤¥ë¤È¡¢¤½¤ì¤ËÁêÅö¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î
-¥Õ¥¡¥¤¥ë¤È¤Î°ã¤¤¤òÄ´ºº¤·¤Þ¤¹¡£
-.It Fl -delete
-»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤«¤éºï½ü¤·¤Þ¤¹
-(1/4 ¥¤¥ó¥Á¥Æ¡¼¥×¤Ç¤ÏÆ°ºî¤·¤Þ¤»¤ó)¡£
-.It Fl r
-.It Fl -append
-¥¢¡¼¥«¥¤¥Ö¤ÎËöÈø¤Ë¥Õ¥¡¥¤¥ë¤òÄɲä·¤Þ¤¹
-(1/4 ¥¤¥ó¥Á¥Æ¡¼¥×¤Ç¤ÏÆ°ºî¤·¤Þ¤»¤ó)¡£
-.It Fl t
-.It Fl -list
-¥¢¡¼¥«¥¤¥ÖÆâÍƤΥꥹ¥Èɽ¼¨¤ò¤·¤Þ¤¹¡£¤â¤·°ú¿ô¤È¤·¤Æ
-.Ar filename
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤À¤±¤¬¥ê¥¹¥Èɽ¼¨¤µ¤ì¤Þ¤¹¡£
-¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¥¢¡¼¥«¥¤¥Ö¤Ë´Þ¤Þ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
-.It Fl u
-.It Fl -update
-»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Î¤¦¤Á¡¢¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥Õ¥¡¥¤¥ë¤è¤ê¤â¥Ç¥£¥¹¥¯¾å¤Î
-¥Õ¥¡¥¤¥ë¤ÎÊѹ¹»þ¹ï¤¬¿·¤·¤¤¤â¤Î¤À¤±¤òÄɲä·¤Þ¤¹¡£1/4 ¥¤¥ó¥Á¥Æ¡¼¥×
-¤Ç¤ÏÆ°ºî¤·¤Þ¤»¤ó¡£
-.It Fl x
-.It Fl -extract
-.It Fl -get
-¥¢¡¼¥«¥¤¥Ö¤«¤é¥Õ¥¡¥¤¥ë¤òÃê½Ð¤·¤Þ¤¹¡£²Äǽ¤Ê¤é¤Ð¡¢½êÍ­¼Ô¡¢
-Êѹ¹»þ¹ï¡¢¥Õ¥¡¥¤¥ë°À­¤Ï¥ê¥¹¥È¥¢¤µ¤ì¤Þ¤¹¡£¤â¤·
-.Ar file
-°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥¢¡¼¥«¥¤¥ÖÆâ¤ÎÁ´¥Õ¥¡¥¤¥ë¤¬Ãê½Ð¤µ¤ì¤Þ¤¹¡£
-¤â¤·
-.Ar filename
-°ú¿ô¤¬¥Æ¡¼¥×¾å¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤Ë¥Þ¥Ã¥Á¤·¤Æ¤¤¤ì¤Ð¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È
-¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤¬Ãê½Ð¤µ¤ì¤Þ¤¹ (¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î
-¤¹¤Ù¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ä¤¤¤Æ¤âƱÍͤËÃê½Ð¤µ¤ì¤Þ¤¹)¡£
-¤â¤·¥¢¡¼¥«¥¤¥ÖÆâ¤Ë¡¢ÁêÅö¤¹¤ëƱ¤¸¥Õ¥¡¥¤¥ë¤¬Ê£¿ô´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð (¾åµ­¤Î
-.Fl -append
-¥³¥Þ¥ó¥É¤ò»²¾È)¡¢ºÇ¸å¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤â¤Î¤¬Â¾¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò
-¾å½ñ¤­¤¹¤ë·Á¤ÇÃê½Ð¤µ¤ì¤Þ¤¹¡£
-.Sh ¥ª¥×¥·¥ç¥ó
-.Nm
-¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-1 ʸ»ú¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥Þ¥ó¥Éñ¸ì¤ÎÃæ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-°ú¿ô¤òÍ¿¤¨¤ë¤Ù¤­¥ª¥×¥·¥ç¥ó¤Î¾ì¹ç¡¢¥ª¥×¥·¥ç¥ó¤Ë³¤±¤Æ°ú¿ô¤ò»ØÄꤷ
-¤Þ¤¹¡£1 ʸ»ú¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤Ë³¤¯¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤ò
-»ÈÍѤ·¤Þ¤¹ (°Ê²¼¤Î
-.Sx »ÈÍÑÎã
-¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£
-.Pp
-.Bl -tag -width "--preserve-permissions" -compact
-.It Fl -help
-.Nm
-¤Î¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ°ìÍ÷¤È²òÀâ¤òɽ¼¨¤·¤Þ¤¹¡£
-.It Fl -atime-preserve
-¥Æ¡¼¥×¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤ò¥ê¥¹¥È¥¢¤·¤Þ¤¹¡£
-(inode ¤ÎÊѹ¹»þ¹ï¤¬Êѹ¹¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤!)
-.It Fl b
-.It Fl -block-size Ar number
-Æɤ߽ñ¤­¤¹¤ë¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò
-.Ar number
-* 512-byte ¥Ö¥í¥Ã¥¯ ¤ËÀßÄꤷ¤Þ¤¹¡£
-.It Fl B
-.It Fl -read-full-blocks
-û¤¤ÆɤߤÀ¤·¥Ö¥í¥Ã¥¯¤ò¡¢´°Á´¤Ê¥Ö¥í¥Ã¥¯¤ËºÆÁȤßΩ¤Æ¤·¤Þ¤¹ (
-.Bx 4.2
-¥Ñ¥¤¥×¤ÎÆɤ߹þ¤ßÍÑ)¡£
-.It Fl C Ar directory
-.It Fl -directory Ar directory
-»Ä¤ê¤Î°ú¿ô¤ò½èÍý¤¹¤ëÁ°¤Ë
-.Ar directory
-¤Ø°ÜÆ°¤·¤Þ¤¹¡£
-.It Fl -checkpoint
-¥¢¡¼¥«¥¤¥Ö¤òÆɤ߽ñ¤­¤¹¤ë´Ö¤ËÆɤ߽ñ¤­¤·¤¿¥Ð¥Ã¥Õ¥¡¤Î¿ô¤òɽ¼¨¤·¤Þ¤¹¡£
-.It Fl f Xo
-.Oo Ar hostname : Oc Ns Ar file
-.Xc
-.It Fl -file Xo
-.Oo Ar hostname : Oc Ns Ar file
-.Xc
-»ØÄꤵ¤ì¤¿
-.Ar file
-(¥Ç¥Õ¥©¥ë¥È¤Ï
-.Pa /dev/sa0 )
-¤òÆɤ߽ñ¤­¤·¤Þ¤¹¡£
-¤â¤·
-.Ar hostname
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢
-.Nm
-¤Ï
-.Xr rmt 8
-¤ò»È¤Ã¤Æ¡¢¥ê¥â¡¼¥È¥Þ¥·¥ó¾å¤Î
-.Ar file
-¤òÆɤ߽ñ¤­¤·¤Þ¤¹¡£
-.Dq Ar -
-¤Ï¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¤¬¡¢
-¤³¤ì¤Ïɸ½àÆþÎϤ«¤éÆɤ߽Ф·¤¿¤ê¡¢É¸½à½ÐÎϤؽñ¤­½Ð¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
-.It Fl -force-local
-¥³¥í¥ó¤¬¤¢¤ë»þ¤Ç¤µ¤¨¡¢¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ï¥í¡¼¥«¥ë¤Î¤â¤Î¤È¤·¤Þ¤¹¡£
-.It Fl F Ar file
-.It Fl -info-script Ar file
-.It Fl -new-volume-script Ar file
-¤½¤ì¤¾¤ì¤Î¥¢¡¼¥«¥¤¥Ö¤¬½ª¤ë¤È¡¢¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·¤Þ¤¹ (°ÅÌÛ¤Î
-.Fl M
-»ØÄ꤬¹Ô¤Ê¤ï¤ì¤Þ¤¹)¡£
-.It Fl -fast-read
-¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤ÎÃê½Ð¥¿¡¼¥²¥Ã¥È¤¬
-¥¢¡¼¥«¥¤¥ÖÆâ¤Ë¸«¤Ä¤«¤Ã¤¿¤é¡¢¤½¤Î»þÅÀ¤Ç½ªÎ»¤·¤Þ¤¹¡£
-.It Fl G
-.It Fl -incremental
-¸Å¤¤ GNU-format ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºîÀ®/¥ê¥¹¥È/Ãê½Ð¤·¤Þ¤¹¡£
-.It Fl g Ar file
-.It Fl -listed-incremental Ar file
-¿·¤·¤¤ GNU-format ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ò
-ºîÀ®/¥ê¥¹¥È/Ãê½Ð¤·¤Þ¤¹¡£
-.It Fl h
-.It Fl -dereference
-¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¥·¥ó¥Ü¥ê¥Ã¥¯¤Î¤Þ¤Þ½ñ¤­¹þ¤ß¤Þ¤»¤ó¡£¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬
-»Ø¤·¤Æ¤¤¤ë¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£
-.It Fl i
-.It Fl -ignore-zeros
-¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î¥¼¥í¥Ö¥í¥Ã¥¯ (Ä̾End-Of-File ¤ò°ÕÌ£¤¹¤ë) ¤ò̵»ë¤·¤Þ¤¹¡£
-.It Fl -ignore-failed-read
-¥Õ¥¡¥¤¥ë¤¬Æɤá¤Ê¤¯¤Æ¤â¡¢Èó 0 ¤Î¥¹¥Æ¡¼¥¿¥¹¤Ç exit ¤·¤Þ¤»¤ó¡£
-.It Fl j
-.It Fl y
-.It Fl -bzip
-.It Fl -bzip2
-.It Fl -bunzip2
-¥¢¡¼¥«¥¤¥Ö¤ò
-.Xr bzip2 1
-¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£
-.It Fl k
-.It Fl -keep-old-files
-¥Ç¥£¥¹¥¯¾å¤Ë´û¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤òÊÝ»ý¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥¢¡¼¥«¥¤¥Ö¤«¤é
-Ãê½Ð¤¹¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ç¥£¥¹¥¯¾å¤Î¥Õ¥¡¥¤¥ë¤Ø¾å½ñ¤­¤·¤Þ¤»¤ó¡£
-.It Fl K Ar file
-.It Fl -starting-file Ar file
-¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î
-.Ar file
-¤«¤é (Ãê½Ð¡¢¥ê¥¹¥È¤Ê¤É¤ò) »Ï¤á¤Þ¤¹¡£
-.It Fl l
-.It Fl -one-file-system
-¤¢¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤À¤±¤Ç¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Þ¤¹
-(¾¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¸Ù¤®¤Þ¤»¤ó)¡£
-.It Fl L Ar number
-.It Fl -tape-length Ar number
-.Ar number
-* 1024 ¥Ð¥¤¥È½ñ¤­¹þ¤ó¤À¸å¤Ç¥Æ¡¼¥×¤Î¸ò´¹¤òÍ׵ᤷ¤Þ¤¹¡£
-.It Fl m
-.It Fl -modification-time
-¥Õ¥¡¥¤¥ë¤ÎÊѹ¹»þ¹ï¤òÃê½Ð¤·¤Þ¤»¤ó¡£
-.It Fl M
-.It Fl -multi-volume
-¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥¢¡¼¥«¥¤¥Ö¤òºîÀ®/¥ê¥¹¥È/Ãê½Ð¤·¤Þ¤¹¡£
-.It Fl n
-.It Fl -norecurse
-ºîÀ®»þ¤ËºÆµ¢Åª¤Ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤òÁöºº¤·¤Þ¤»¤ó¡£
-.It Fl -volno-file Ar file
-¥Ü¥ê¥å¡¼¥àÈÖ¹æÉÕ¤­¤Î¥Õ¥¡¥¤¥ë̾¤Ç¤¹¡£
-.It Fl N Ar date
-.It Fl -after-date Ar date
-.It Fl -newer Ar date
-ºîÀ®»þ´Ö¤¬
-.Ar date
-¤è¤ê¿·¤·¤¤¥Õ¥¡¥¤¥ë¤À¤±¤òÃê½Ð¤·¤Þ¤¹¡£
-.It Fl -newer-mtime Ar date
-Êѹ¹»þ´Ö¤¬
-.Ar date
-¤è¤ê¿·¤·¤¤¥Õ¥¡¥¤¥ë¤À¤±¤òÃê½Ð¤·¤Þ¤¹¡£
-.It Fl o
-.It Fl -old-archive
-.It Fl -portability
-POSIX ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï¤Ê¤¯¡¢V7 ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Þ¤¹¡£
-.It Fl O
-.It Fl -to-stdout
-¥Õ¥¡¥¤¥ë¤òɸ½à½ÐÎϤËÃê½Ð¤·¤Þ¤¹¡£
-.It Fl p
-.It Fl -same-permissions
-.It Fl -preserve-permissions
-Êݸî¾ðÊó¤ò´°Á´¤ËÃê½Ð¤·¤Þ¤¹¡£
-.It Fl -preserve
-.Fl p s
-¤Î»ØÄê¤ÈƱ¤¸¸ú²Ì¤ò»ý¤Á¤Þ¤¹¡£
-.It Fl P
-.It Fl -absolute-paths
-¥Õ¥¡¥¤¥ë̾¤«¤éÀèƬ¤Î
-.Ql /
-¤ò¤È¤ê¤Þ¤»¤ó¡£
-.It Fl R
-.It Fl -record-number
-¥á¥Ã¥»¡¼¥¸Ãæ¤Ë¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥ì¥³¡¼¥ÉÈÖ¹æ¤òËä¤á¹þ¤ßɽ¼¨¤·¤Þ¤¹¡£
-.It Fl -remove-files
-¥¢¡¼¥«¥¤¥Ö¤ËÄɲä·¤¿¥Õ¥¡¥¤¥ë¤ò¡¢Äɲøå¤Ëºï½ü¤·¤Þ¤¹¡£
-.It Fl s
-.It Fl -same-order
-.It Fl -preserve-order
-¥¢¡¼¥«¥¤¥ÖÆ⤫¤éÃê½Ð¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¡¢»ØÄꤵ¤ì¤¿½ç¤Î¤Þ¤Þ¤Ë¤·¤Þ¤¹¡£
-.It Fl -show-omitted-dirs
-¥¢¡¼¥«¥¤¥ÖºîÀ®Ãæ¤Ë½ü³°¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨¤·¤Þ¤¹¡£
-.It Fl S
-.It Fl -sparse
-.Dq Á¤Ê
-¥Õ¥¡¥¤¥ë¤ò¸úΨŪ¤Ë°·¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£
-.It Fl T Ar file
-.It Fl I Ar file
-.It Fl -files-from Ar file
-.Ar file
-¤«¤éÃê½Ð¤â¤·¤¯¤ÏºîÀ®¤¹¤ë¥Õ¥¡¥¤¥ë̾¤òÆÀ¤Þ¤¹ (1 ¹Ô 1 ¥Õ¥¡¥¤¥ë̾)¡£
-.It Fl -null
-null ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë̾Á°¤ò¹Íθ¤·¡¢
-.Fl T
-¤Î¿¶Éñ¤òÊѹ¹¤·¤Þ¤¹¡£
-¤³¤ì¤Ï
-.Fl C
-»ØÄê¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£
-.It Fl -totals
-.Fl -create
-¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿Áí¥Ð¥¤¥È¿ô¤òɽ¼¨¤·¤Þ¤¹¡£
-.It Fl U
-.It Fl -unlink
-.It Fl -unlink-first
-¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëÁ°¤Ë¡¢¤¤¤Ã¤¿¤óºï½ü¤·¤Þ¤¹¡£
-.It Fl v
-.It Fl -verbose
-.Fl -create
-¤Ç¥¢¡¼¥«¥¤¥Ö¤Ë½ñ¤¯¥Õ¥¡¥¤¥ë¤ä
-.Fl -extract
-¤Ç¥¢¡¼¥«¥¤¥Ö¤«¤é
-¼è¤ê½Ð¤¹¥Õ¥¡¥¤¥ë̾¤ò¥ê¥¹¥Èɽ¼¨¤·¤Þ¤¹¡£
-¥Õ¥¡¥¤¥ë¤ÎÊݸî¾ðÊó¤ò¥Õ¥¡¥¤¥ë̾¤È¤È¤â¤Ëɽ¼¨¤µ¤»¤ë¤Ë¤Ï¡¢
-.Fl -list
-¤ò»È¤¤¤Þ¤¹¡£
-.It Fl V Ar volume-name
-.It Fl -label Ar volume-name
-»ØÄꤵ¤ì¤¿
-.Ar volume-name
-¤ò»ý¤Ã¤¿¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Þ¤¹¡£
-.It Fl -version
-.Nm
-¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤·¤Þ¤¹¡£
-.It Fl w
-.It Fl -interactive
-.It Fl -confirmation
-¤¹¤Ù¤Æ¤ÎÆ°ºî¤ËÂФ·¤Æ¡¢³Îǧ¤òµá¤á¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-.It Fl W
-.It Fl -verify
-¥¢¡¼¥«¥¤¥Ö¤ò½ñ¤­¹þ¤ó¤À¸å¡¢¥Ù¥ê¥Õ¥¡¥¤¤ò»î¤ß¤Þ¤¹¡£
-.It Fl -exclude Ar pattern
-.Ar pattern
-¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Õ¥¡¥¤¥ë¤ò½ü³°¤·¤Þ¤¹
-(Ãê½Ð¤·¤Þ¤»¤ó¡£Äɲä·¤Þ¤»¤ó¡£¥ê¥¹¥Èɽ¼¨¤·¤Þ¤»¤ó)¡£
-.It Fl X Ar file
-.It Fl -exclude-from Ar file
-.Ar file
-¤Ë°ìÍ÷¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò½ü³°¤·¤Þ¤¹¡£
-.It Fl Z
-.It Fl -compress
-.It Fl -uncompress
-¥¢¡¼¥«¥¤¥Ö¤ò
-.Xr compress 1
-¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£
-.It Fl z
-.It Fl -gzip
-.It Fl -gunzip
-¥¢¡¼¥«¥¤¥Ö¤ò
-.Xr gzip 1
-¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£
-.It Fl -use-compress-program Ar program
-¥¢¡¼¥«¥¤¥Ö¤ò
-.Ar program
-¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹
-(¤³¤ì¤Ï¡¢
-.Fl d
-¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Ï
-.Dq decompress
-¤ò°ÕÌ£¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó)¡£
-.It Fl -block-compress
-¥Æ¡¼¥×¤â¤·¤¯¤Ï¥Õ¥í¥Ã¥Ô¤Î¤¿¤á¤Ë¡¢°µ½Ì¥×¥í¥°¥é¥à¤Î½ÐÎϤò¥Ö¥í¥Ã¥¯
-²½¤·¤Þ¤¹ (¤½¤¦¤·¤Ê¤¤¤È¡¢¥Ö¥í¥Ã¥¯Ä¹¤¬¤ª¤«¤·¤¯¤Ê¤ê¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-¤½¤Î¥Ö¥í¥Ã¥¯¤òµñÀ䤹¤ë¤Ç¤·¤ç¤¦)¡£
-.It Fl Xo
-.Op Cm 0 Ns - Ns Cm 7 Ns
-.Op Cm lmh
-.Xc
-¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÈÌ©ÅÙ¤ò»ØÄꤷ¤Þ¤¹¡£
-.El
-.Sh ´Ä¶­
-´Ä¶­ÊÑ¿ô
-.Ev TAR_OPTIONS
-¤Ë
-.Nm
-¤Î¥Ç¥Õ¥©¥ë¥È¥ª¥×¥·¥ç¥ó¤òÊÝ»ý¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
-¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ÏºÇ½é¤Ë²ò¼á¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢
-ÌÀ¼¨Åª¤Ê¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ñ¥é¥á¡¼¥¿¤Ç¾å½ñ¤­²Äǽ¤Ç¤¹¡£
-.Sh »ÈÍÑÎã
-.Pa bert
-¤È
-.Pa ernie
-¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò´Þ¤à¡¢
-¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬ 20 ¥Ö¥í¥Ã¥¯¤Î¥¢¡¼¥«¥¤¥Ö¤ò¡¢
-¥Æ¡¼¥×¥É¥é¥¤¥Ö
-.Pa /dev/sa0
-¤Ëºî¤ë¤Ë¤Ï¡¢
-.Dl "tar cfb /dev/sa0 20 bert ernie"
-¤â¤·¤¯¤Ï
-.Dl "tar --create --file /dev/sa0 --block-size 20 bert ernie"
-¤ÈÆþÎϤ·¤Þ¤¹¡£
-.Fl f
-¤ª¤è¤Ó
-.Fl b
-¥Õ¥é¥°¤ÏξÊý¤È¤â°ú¿ô¤òɬÍפȤ·¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
-¤³¤Î°ú¿ô¤Ï¡¢¥³¥Þ¥ó¥Éñ¸ì¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤ÈƱ¤¸½ç½ø¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é
-¼èÆÀ¤µ¤ì¤Þ¤¹¡£
-.Pp
-.Pa /dev/sa0
-¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ê¡¢20 ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯
-¥µ¥¤¥º¤Ç¤¹¤Î¤Ç¡¢¾åµ­¤ÎÎã¤Ï¼¡¤Î¤è¤¦¤Ëñ½ã²½¤Ç¤­¤Þ¤¹¡£
-.Dl "tar c bert ernie"
-\&"backup.tar" ¤È¤¤¤¦¥¢¡¼¥«¥¤¥Ö¤«¤é¡¢¤¹¤Ù¤Æ¤Î C ¥½¡¼¥¹µÚ¤Ó¥Ø¥Ã¥À¤ò
-Ãê½Ð¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Þ¤¹¡£
-.Pp
-.Dl tar xf backup.tar '*.[ch]'
-.Pp
-¥·¥§¥ë¤¬¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë̾¤ËŸ³«¤·¤Ê¤¤¤è¤¦¡¢¥Ñ¥¿¡¼¥ó¤ò
-¥¯¥©¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤ (ÅöÁ³¡¢
-¥·¥§¥ë¤Ï¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó)¡£
-.Pp
-¥Õ¥¡¥¤¥ë¤ò³¬Áع½Â¤¤´¤È¥³¥Ô¡¼¤¹¤ë¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤Ë¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤:
-.Bd -literal
-tar cf - -C srcdir . | tar xpf - -C destdir
-.Ed
-.Pp
-¥Ç¥£¥¹¥±¥Ã¥È¤Ë¡¢
-.Xr gzip 1
-¤ò»È¤Ã¤¿°µ½Ì¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î
-¤è¤¦¤Ê¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò»È¤¦¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£
-.Dl "tar --block-compress -z -c -v -f /dev/fd1a -b 36 tar/"
-.Pp
-¤Þ¤È¤á»ØÄê¥Õ¥é¥°¤È
-.Fl -
-¥¹¥¿¥¤¥ë¤Î¥Õ¥é¥°¤òº®ºß¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤
-¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤ï¤±¤Ç
-¤Ï¤Ê¤¯¡¢¾åµ­¤Î¤è¤¦¤Ê½ñ¤­Êý¤Ç 1 ʸ»ú¥Õ¥é¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Dl "tar --block-compress --gzip --verbose --file /dev/fd1a --block-size 20 tar/"
-.Pp
-¾å¤Î¤è¤¦¤Ë¤·¤ÆºîÀ®¤·¤¿¥Ç¥£¥¹¥¯¤ÎÆâÍƤϡ¢¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¥ê¥¹¥È
-ɽ¼¨¤Ç¤­¤Þ¤¹¡£
-.Pp
-.Dl "tar tvfbz /dev/fd1a 36"
-.Pp
-2 ¤Ä¤Î
-.Nm
-¥¢¡¼¥«¥¤¥Ö¤ò 1 ¤Ä¤Î¥¢¡¼¥«¥¤¥Ö¤Ë¤Þ¤È¤á¤ë¤Ë¤Ï¡¢
-.Dl "tar Af archive1.tar archive2.tar"
-¤ò»È¤¤¤Þ¤¹¡£¤³¤¦¤¹¤ë¤È¡¢
-.Pa archive2.tar
-¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬
-.Pa archive1.tar
-¤ÎËöÈø¤ËÄɲ䵤ì¤Þ¤¹ (ñ½ã¤Ë
-.Dl "cat archive2.tar >> archive1.tar"
-¤È¥¿¥¤¥×¤·¤Æ¤â¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤¼¤Ê¤é¡¢
-.Nm
-¥¢¡¼¥«¥¤¥Ö¤ÎËöÈø¤Ë¤Ï end-of-file ¥Ö¥í¥Ã¥¯¤¬¤¢¤ë¤«¤é¤Ç¤¹)¡£
-.Pp
-.Pa srcdir
-¥Ç¥£¥ì¥¯¥È¥ê¤«¤é 1997 ǯ 2 ·î 9 Æü 13:00 °Ê¹ß¤ËÊѹ¹¤ò¤µ¤ì¤¿
-Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤¹¤ë¤¿¤á¤Ë¤Ï¡¢°Ê²¼¤Î·Á¼°¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£
-.Dl "tar -c -f backup.tar --newer-mtime 'Feb 9 13:15 1997' srcdir/"
-.Pp
-¾¤Î»þ´Ö»ØÄê·Á¼°¤È¤·¤Æ¤Ï¡¢
-.Sq "02/09/97 13:15" ,
-.Sq "1997-02-09 13:15" ,
-.Sq "13:15 9 Feb 1997" ,
-.Sq "'9 Feb 1997 13:15" ,
-.Sq "Feb. 9, 1997 1:15pm" ,
-.Sq "09-Feb" ,
-.Sq "3 weeks ago" ,
-.Sq "May first Sunday"
-¤¬¤¢¤ê¤Þ¤¹¡£
-Àµ¤·¤¤¥¿¥¤¥à¥¾¡¼¥ó¤ò»ØÄꤹ¤ë¤¿¤á¤Ë¤Ï¡¢
-.Sq "13:15 CEST"
-¤ä
-.Sq "13:15+200"
-¤ò»ÈÍѤ·¤Æ²¼¤µ¤¤¡£
-.Sh ´Ä¶­ÊÑ¿ô
-.Nm
-¥×¥í¥°¥é¥à¤Ï¡¢°Ê²¼¤Î´Ä¶­ÊÑ¿ô¤ò»²¾È¤·¤Þ¤¹¡£
-.Bl -tag -width "POSIXLY_CORRECT"
-.It Ev POSIXLY_CORRECT
-Ä̾
-.Nm
-¤Ï¥Õ¥¡¥¤¥ë»ØÄê¤ÎÃæ¤Ëº®¤¶¤Ã¤¿¥Õ¥é¥°¤ò½èÍý¤·¤Þ¤¹¡£
-¤³¤Î´Ä¶­ÊÑ¿ô¤òÀßÄꤹ¤ë¤È¡¢
-.Nm
-¤ÏºÇ½é¤Î¥Õ¥é¥°°Ê³°¤Î°ú¿ô¤ò¸«¤Ä¤±¤ë
-¤È¤½¤ì°Ê¹ß¤Î°ú¿ô¤ËÂФ·¤Æ¥Õ¥é¥°½èÍý¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¤¤¤¦¡¢POSIX »ÅÍÍ
-¤Ë¹ç¤ï¤»¤¿Æ°ºî¤ò¹Ô¤Ê¤¦¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-.It Ev SHELL
-¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥â¡¼¥É¤Ë¤ª¤¤¤Æ¡¢¥µ¥Ö¥·¥§¥ë¤Îµ¯Æ°¤¬Í׵ᤵ¤ì¤¿¤È¤­¡¢
-.Ev SHELL
-ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¤½¤ì¤¬¡¢ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð
-.Pa /bin/sh
-¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£
-.It Ev TAPE
-.Nm
-¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÊѹ¹¤·¤Þ¤¹ (¤³¤ì¤Ï¡¢¤µ¤é¤Ë
-.Fl f
-¥Õ¥é¥°¤Ë¤è¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹)¡£
-.It TAR_RSH
-TAR_RSH ´Ä¶­ÊÑ¿ô¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¥·¥§¥ë¤ËÍ¥À褷¤Æ¡¢
-.Nm tar
-¤Î¥Ç¡¼¥¿Å¾Á÷¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
-.El
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width "/dev/sa0"
-.It Pa /dev/sa0
-¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö
-.El
-.Sh ¸ß´¹À­
-.Fl y
-¤Ï FreeBSD ¤À¤±¤Îµ¡Ç½¤Ç¤¹¡£
-GNU
-.Nm
-¥á¥ó¥Æ¥Ê¤Ï¡¢
-.Fl j
-¤ò GNU
-.Nm
-1.13.18 °Ê¹ß¤Ë¤ª¤±¤ë¸ø¼°¤Ê
-.Xr bzip2 1
-°µ½Ì¥ª¥×¥·¥ç¥ó¤È¤·¤ÆºÎÍѤ·¤Þ¤·¤¿¡£
-.Fl I
-¥ª¥×¥·¥ç¥ó¤Ï¡¢Solaris ¤Î
-.Nm
-¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¤¢¤ê¤Þ¤¹¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr bzip2 1 ,
-.Xr compress 1 ,
-.Xr gzip 1 ,
-.Xr pax 1 ,
-.Xr rmt 8
-.Sh Îò»Ë
-.Nm
-¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏΩÇɤÊÎò»Ë¤ò»ý¤Ã¤Æ¤¤¤Æ¡¢Sixth Edition UNIX ¤Ë
-¸¶ÅÀ¤¬¤¢¤ê¤Þ¤¹¡£
-¤³¤Î
-.Nm
-¤Î¼ÂÁõ¤Ï GNU ¼ÂÁõ¤Ç¤¢¤ê¡¢
-.An John Gilmore
-¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿
-¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó
-.Nm
-¤¬¸µ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
-.Sh ºî¼Ô
-.An -nosplit
-¼¡¤Î¿Í¤ò´Þ¤à¡¢ÂçÊÑ¿¤¯¤Î¿Í¡¹¡£[¥½¡¼¥¹¤ÎÃæ¤Î
-.Pa ChangeLog
-¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¿Í¡¹]
-.An John Gilmore
-(¥ª¥ê¥¸¥Ê¥ë¤Î¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥óÈǤκî¼Ô),
-.An Jay Fenlason
-(ºÇ½é¤Î GNU ºî¼Ô),
-.An Joy Kendall ,
-.An Jim Kingdon ,
-.An David J. MacKenzie ,
-.An Michael I Bushnell ,
-.An Noah Friedman
-¤½¤·¤Æ
-¥Ð¥°¥Õ¥£¥Ã¥¯¥¹¤äÄɲäò¹×¸¥¤·¤Æ¤¯¤ì¤¿Ìµ¿ô¤Î¿Í¡¹¡£
-.Pp
-¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.Nx 1.0
-release ¤«¤é¡¢
-.Fx
-¥°¥ë¡¼¥×¤¬
-¼è¤ê¹þ¤ó¤À¤â¤Î¤Ç¤¹¡£
-.Sh ¥Ð¥°
-ÆÃħŪ¤Ê
-.Fl C
-¥ª¥×¥·¥ç¥ó¤ÎÆ°ºî¤Ï¡¢ÅÁÅýŪ¤Ê
-.Nm
-¥×¥í¥°¥é¥à¤Î¤½¤ì¤È¤Ï°Û¤Ê¤ë¤Î¤Ç¡¢
-¤¢¤Þ¤êÍê¤ê¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó¡£
-.Pp
-.Fl A
-¥³¥Þ¥ó¥É¤ÇǤ°Õ¤Î¿ô¤Î
-.Nm
-¥¢¡¼¥«¥¤¥Ö¤ò·ë¹ç¤Ç¤­¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ï¤Ç¤­¤Þ¤»¤ó¡£
-¤³¤ì¤ò¤ä¤í¤¦¤È¤·¤Æ¤â¡¢2 ¤ÄÌܰʹߤΥ¢¡¼¥«¥¤¥Ö¤Î
-end-of-archive ¥Ö¥í¥Ã¥¯¤¬ºï½ü¤µ¤ì¤º¤Ë»Ä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/aic.4 b/ja_JP.eucJP/man/man4/man4.i386/aic.4
deleted file mode 100644
index 322991a0df..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/aic.4
+++ /dev/null
@@ -1,51 +0,0 @@
-.\"
-.\" Copyright (c) 1994 James A. Jegers
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" %Id: aic.4,v 1.4 1997/02/22 13:25:10 peter Exp %
-.\" jpman %Id: aic.4,v 1.3 1999/10/06 10:51:40 horikawa Stab %
-.\"
-.Dd November 29, 1994
-.Dt AIC 4 i386
-.Os
-.Sh ̾¾Î
-.Nm aic
-.Nd Adaptec ¤Î AIC-6260 ¤È AIC-6360 ¤Î SCSI ¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device aic0 at isa? port 0x340 bio irq 11"
-.Sh ²òÀâ
-.Nm aic
-¥É¥é¥¤¥Ð¤Ï Adaptec ¤Î AIC-6260 ¤È AIC-6360 ¤Î SCSI
-¥³¥ó¥È¥í¡¼¥é¥Á¥Ã¥×¤Î¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£
-¤³¤ì¤Ï¡¢Adaptec 152x ¤È Creative
-Labs SoundBlaster SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤ò´Þ¤ß¤Þ¤¹¡£
-.Pp
-¤³¤ì¤é¤Î¥³¥ó¥È¥í¡¼¥é¥Á¥Ã¥×¤òÍѤ¤¤¿Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ï
-¥Ö¡¼¥È ROM ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤³¤«¤é¥Ö¡¼¥È¤Ï¤Ç¤­¤Þ¤»¤ó¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr cd 4 ,
-.Xr ch 4 ,
-.Xr intro 4 ,
-.Xr sd 4 ,
-.Xr st 4
-
-
diff --git a/ja_JP.eucJP/man/man4/man4.i386/apm.4 b/ja_JP.eucJP/man/man4/man4.i386/apm.4
deleted file mode 100644
index b878b8cd2f..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/apm.4
+++ /dev/null
@@ -1,160 +0,0 @@
-.\" LP (Laptop Package)
-.\"
-.\" Copyright (c) 1994 by HOSOKAWA, Tatsumi <hosokawa@mt.cs.keio.ac.jp>
-.\"
-.\" This software may be used, modified, copied, and distributed, in
-.\" both source and binary form provided that the above copyright and
-.\" these terms are retained. Under no circumstances is the author
-.\" responsible for the proper functioning of this software, nor does
-.\" the author assume any responsibility for damages incurred with its
-.\" use.
-.\"
-.\" %Id: apm.4,v 1.9 1998/12/18 03:08:57 jkoshy Exp %
-.\" jpman %Id: apm.4,v 1.4 2000/07/17 05:48:14 osana Stab %
-.\"
-.Dd November 1, 1994
-.Dt APM 4 i386
-.Os
-.Sh ̾¾Î
-.Nm apm
-.Nd APM BIOS ¥¤¥ó¥¿¥Õ¥§¡¼¥¹
-.Sh ½ñ¼°
-.Cd device apm0 at isa?
-.Sh ²òÀâ
-.Nm apm
-¤Ï¥é¥Ã¥×¥È¥Ã¥× PC ¤Î Intel / Microsoft APM (Advanced Poewr Management)
-BIOS ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¹¡£
-.Pp
-.Nm apm
-¤Ï¼¡¤ÎÅŸ»´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£
-.Bl -enum -offset indent
-.It
-¥·¥¹¥Æ¥à¤¬¥µ¥¹¥Ú¥ó¥É¥â¡¼¥É¤«¤éÉüµ¢¤·¤¿»þ¤Ë¡¢
-.Nm apm
-¤Ï¥·¥¹¥Æ¥à¤Î»þ·×¤ò RTC ¤Ë¹ç¤ï¤»¤Þ¤¹¡£
-.It
-¥·¥¹¥Æ¥à¤¬¥µ¥¹¥Ú¥ó¥É¥â¡¼¥É¤«¤éÉüµ¢¤·¤¿»þ¤Ë¡¢
-¥·¥¹¥Æ¥à¤¬Éüµ¢¤·¤¿»þ¹ï¤È¥µ¥¹¥Ú¥ó¥É¥â¡¼¥ÉÃæ¤Ë·Ð²á¤·¤¿»þ´Ö¤Ç¹½À®¤µ¤ì¤ë
-¥á¥Ã¥»¡¼¥¸¤ò¡¢
-.Nm apm
-¤Ï
-.Xr syslogd 8
-¤ËÄÌÃΤ·¤Þ¤¹¡£
-.It
-.Nm apm
-¤Ï¥·¥¹¥Æ¥à¤Î³èÆ° (¼Â¹Ô²Äǽ¤Ê¥×¥í¥»¥¹¡¢³ä¤ê¹þ¤ß¤Ê¤É) ¤¬¤Ê¤¤»þ¤Ë
-CPU ¤Î¥¯¥í¥Ã¥¯¤ò¸ºÂ®¤·¤Þ¤¹¡£
-¤³¤Îµ¡Ç½¤Ï APM ¤¬ CPU ¤Î¥¢¥¤¥É¥ê¥ó¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Î¤ßÍ­¸ú¤Ç¤¹¡£
-.It
-.Nm apm
-¤Ï¥­¥ã¥é¥¯¥¿·¿¥Ç¥Ð¥¤¥¹¤È¤·¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò²ð¤·¤Æ APM ¤òÀ©¸æ¤·¤¿¤ê¡¢
-APM ¤Î¾õÂÖ¾ðÊó¤ò°ú¤­½Ð¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Nm apm
-¤Ï¼¡¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ï
-.Dq Pa /usr/include/machine/apm_bios.h
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-.Bl -tag -width 4n -offset indent
-.It Sy APMIO_SUSPEND
-¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤·¤Þ¤¹¡£
-.It Sy APMIO_GET
-ÅŸ»´ÉÍý¾ðÊó¤òÆþ¼ê¤·¤Þ¤¹¡£
-.It Sy APMIO_ENABLE
-.It Sy APMIO_DISABLE
-ÅŸ»´ÉÍý¤òÍ­¸ú / ̵¸ú¤Ë¤·¤Þ¤¹¡£
-.It Sy APMIO_HALTCPU
-.It Sy APMIO_NOTHALTCPU
-¥«¡¼¥Í¥ë¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨¥ë¡¼¥Á¥ó¤Ç¤Î HLT ¤Î¼Â¹Ô¤òÀ©¸æ¤·¤Þ¤¹¡£
-.Pp
-HLT
-.Pq ³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë¤Þ¤Ç CPU ¤òÄä»ß
-Ì¿Îá¤ò
-.Dq Pa Idle CPU
-¸Æ¤Ó½Ð¤·¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë APM ¤Î¼ÂÁõ¤â¤¢¤ê¤Þ¤¹¤·¡¢¤½¤¦¤Ç¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£
-¤Ç¤¹¤«¤é¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢
-.Dq Pa Idle CPU
-¤ò¸Æ¤Ó½Ð¤¹¥«¡¼¥Í¥ë¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨¥ë¡¼¥Á¥ó¤¬
-¸µ¡¹ HLT Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢
-;ʬ¤Ê HLT Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
-¤³¤Î·ë²Ì¡¢¥·¥¹¥Æ¥à¤Î¥Ô¡¼¥¯À­Ç½¤ò¸º¾¯¤µ¤»¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-¤Þ¤¿¡¢¥«¡¼¥Í¥ë¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨¥ë¡¼¥Á¥ó¤Ç¤Î HLT Ì¿Îá¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¡¢
-¥Þ¥·¥ó¤Î APM ¤Î¼ÂÁõ¤¬
-.Dq Pa Idle CPU
-¤Ç HLT ¤ò¼Â¹Ô¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¤Ï¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Þ¤¹¡£
-CPU ¥¯¥í¥Ã¥¯¤Î¸ºÂ®¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¼ÂÁõ¤Ç¤Ï¡¢APM ¤Ï HLT
-¤ò¼Â¹Ô¤·¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-¤½¤Î¤è¤¦¤Ê¥Þ¥·¥ó¤Ç¤Ï¡¢
-.Nm apm
-¤Ï
-.Sy APMIO_NOTHALTCPU
-¤ÎÁàºî¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£
-.Pp
-¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Î
-.Nm apm
-¤Ï¡¢¥¯¥í¥Ã¥¯¤Î¸ºÂ®¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
-¥«¡¼¥Í¥ë¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂؤ¨¥ë¡¼¥Á¥ó¤«¤é
-.Dq Pa Idle CPU
-¤ò¸Æ¤Ó½Ð¤µ¤º¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï HLT Ì¿Îá¤ò¼Â¹Ô¤·¤Þ¤¹¡£
-¤·¤¿¤¬¤Ã¤Æ¡¢ÂçÄñ¤Î¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤Î 2 ¤Ä¤ÎÁàºî¤ò¹Ô¤¦É¬ÍפϤ¢¤ê¤Þ¤»¤ó
-.El
-.Pp
-¤³¤ì¤é¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï
-.Xr apm 8
-¤È
-.Xr apmconf 8
-¤¬»ÈÍѤ·¤Þ¤¹¡£
-.It
-.Nm apm
-¤Ï APM ¥¤¥Ù¥ó¥È¤ò¥Ý¡¼¥ê¥ó¥°¤·¡¢¼¡¤Î¥¤¥Ù¥ó¥È¤ò½èÍý¤·¤Þ¤¹¡£
-.Bl -column PMEV_POWERSTATECHANGEXXX "suspend system xxxxx"
-.It Sy "̾¾Î " "Æ°ºî " "²òÀâ"
-.It Dv "PMEV_STANDBYREQ " No "¥µ¥¹¥Ú¥ó¥É " "ÂÔµ¡Í×µá"
-.It Dv "PMEV_SUSPENDREQ " No "¥µ¥¹¥Ú¥ó¥É " "¥µ¥¹¥Ú¥ó¥ÉÍ×µá"
-.It Dv "PMEV_USERSUSPENDREQ " No "¥µ¥¹¥Ú¥ó¥É " "¥æ¡¼¥¶¥µ¥¹¥Ú¥ó¥ÉÍ×µá"
-.It Dv "PMEV_CRITSUSPEND " No "¥µ¥¹¥Ú¥ó¥É " "Èó¾ï¥µ¥¹¥Ú¥ó¥ÉÍ×µá"
-.It Dv "PMEV_NORMRESUME " No "¥ì¥¸¥å¡¼¥à " "Ä̾ï¤ÎÉü¸µ"
-.It Dv "PMEV_CRITRESUME " No "¥ì¥¸¥å¡¼¥à " "Èó¾ïÉü¸µ"
-.It Dv "PMEV_STANDBYRESUME " No "¥ì¥¸¥å¡¼¥à " "ÂÔµ¡Éü¸µ"
-.It Dv "PMEV_BATTERYLOW " No "¥á¥Ã¥»¡¼¥¸ÄÌÃÎ " "ÅÅÃÓÉÔ­"
-.It Dv "PMEV_UPDATETIME " No "»þ·×¹ç¤ï¤» " "»þ¹ï¤ò¹¹¿·"
-.El
-.El
-.Sh ¥Ð¥°
-·Ù¹ð!
-¸½ºß¤Î¤È¤³¤í¡¢¥é¥Ã¥×¥È¥Ã¥×¥Þ¥·¥ó¤Î APM BIOS ¤Î¼ÂÁõ¤Ï¡¢
-¤Û¤È¤ó¤É¤È¤Þ¤Ç¤Ï¤¤¤«¤Ê¤¯¤Æ¤â¥Ð¥°¤À¤é¤±¤Ç¤¹¡£
-¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤ë¤È LCD ¥Ç¥£¥¹¥×¥ì¥¤¤äÅÅÃÓ¤ò
-´í¸±¤Ë¤µ¤é¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
-(¤³¤ì¤¬ MS-Windows ¤ÇÌäÂê¤È¤Ê¤é¤Ê¤¤Íýͳ¤Ï¥ê¥¢¥ë¥â¡¼¥É¥¤¥ó¥¿¥Õ¥§¡¼¥¹
-¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£)
-¤³¤Î¥³¡¼¥É¤ò»ÈÍѤ·¤Æ¤¢¤Ê¤¿¤Î¥·¥¹¥Æ¥à¤¬´ñ̯¤ÊÆ°ºî¤ò¤¹¤ë¤Î¤òȯ¸«¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
-ÅŸ»¥×¥é¥°¤ÈÅÅÃÓ¤òľ¤Á¤Ë¤È¤Þ¤Ç¤Ï¤¤¤«¤Ê¤¯¤Æ¤â¤Ç¤­¤ë¤À¤±Á᤯ȴ¤­¡¢
-¤³¤Î¥³¡¼¥É¤ò̵¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
-.Pp
-»äã¤Ï¤³¤Î¥³¡¼¥É¤¬Æ°ºî¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¤³¤È¤Ë´Ø¿´¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
-°Û¾ï¤ÊÆ°ºî¤Î´Ñ»¡·ë²Ì¤ò¤¼¤Ò»äã¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤¡£
-.Pp
-.Nm apm
-¤¬Í­¸ú¤Ç¤¢¤ë»þ¡¢¥Û¥Ã¥È¥­¡¼¤ò»È¤Ã¤Æ BIOS ÀßÄê¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹¤È
-¥·¥¹¥Æ¥à¥ì¥¸¥å¡¼¥à»þ¤Ë½ÅÂç¤Ê¾ã³²¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
-BIOS ÀßÄê¥×¥í¥°¥é¥à¤Ï¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×»þ¤Þ¤¿¤Ï DOS ¤«¤é¸Æ¤Ó½Ð¤¹¤Ù¤­¤Ç¤¹¡£
-.Pp
-APM ¤Î¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢ÅŸ»¥Ü¥¿¥ó¤ò²¡¤·¤¿¤³¤È¤ä¥«¥Ð¡¼¤òÊĤ¸¤ë¤È¤¤¤Ã¤¿
-¥¤¥Ù¥ó¥È¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
-¤½¤Î¤è¤¦¤Ê¼ÂÁõ¤Ç¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢
-.Ar ɬ¤º
-.Xr apm 8
-¤Þ¤¿¤Ï
-.Xr zzz 8
-.Ar ¤À¤±
-¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
-.Pp
-¥Ç¥£¥¹¥¯¸ºÂ®¡¢LCD ¥Ð¥Ã¥¯¥é¥¤¥ÈÀ©¸æ¡¢¥Ñ¥ï¡¼¥ª¥ó¥Ç¥Þ¥ó¥É¤Ï
-¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr apm 8 ,
-.Xr apmconf 8 ,
-.Xr zzz 8
-.Sh ºî¼Ô
-Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org>
diff --git a/ja_JP.eucJP/man/man4/man4.i386/ar.4 b/ja_JP.eucJP/man/man4/man4.i386/ar.4
deleted file mode 100644
index b287c99353..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/ar.4
+++ /dev/null
@@ -1,108 +0,0 @@
-.\"
-.\" Copyright (c) 1995 John Hay. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by John Hay.
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY John Hay ``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 John Hay 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.
-.\"
-.\" %Id: ar.4,v 1.9 1998/10/22 14:12:55 bde Exp %
-.\" jpman %Id: ar.4,v 1.3 1999/04/19 14:33:05 horikawa Stab %
-.\"
-.\" WORD: link level layer ¥ê¥ó¥¯¥ì¥Ù¥ë¤ÎÁØ
-.\"
-.Dd November 19, 1995
-.Dt AR 4 i386
-.Os
-.Sh ̾¾Î
-.Nm ar
-.Nd
-Ʊ´ü Arnet ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device ar0 at isa? port 0x300 net irq 10 iomem 0xd0000"
-.Cd "device ar1 at isa? port 0x310 net irq 11 iomem 0xd0000"
-.Pp
-.Cd "pseudo-device sppp"
-.Sh ²òÀâ
-.Nm ar
-¥É¥é¥¤¥Ð¤Ï HD64570 ¥Á¥Ã¥×¤ò»ÈÍѤ·¤¿ Arnet SYNC/570i ISA ¥«¡¼¥É¤ò
-¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-2 ¥Ý¡¼¥È¤È 4 ¥Ý¡¼¥È¤ÎξÊý¤Î¥«¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¡¢¼«Æ°¸¡½Ð¤·¤Þ¤¹¡£
-.Pp
-²óÀþ®Å٤ϺÇÂç¤Ç 2Mbps ¤Þ¤ÇÆÀ¤é¤ì¤Þ¤¹¡£¤³¤Î®ÅÙ¤Ç¤Ï 486DX ¥×¥í¥»¥Ã¥µ¤Ç
-ÂÓ°è¤ÎÌó 85 % ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Pp
-¥ê¥ó¥¯¥ì¥Ù¥ë¤ÎÁؤˡ¢É¸½à¤Î
-.\" link level layer ¤Ï OSI ¥â¥Ç¥ë¤Ç¤Ï data link layer ¤ËÁêÅö¤¹¤ë¤â¤Î
-.\" ¤â¤·¤¯¤Ï data link layer ¤Î°ìÉô¤ËÁêÅö¤¹¤ë¤â¤Î¤È»×¤¤¤Þ¤¹¤¬¡¢¸¶Ê¸¤ò
-.\" º½Å¤·¤Æ¡Ö¥ê¥ó¥¯¥ì¥Ù¥ë¤ÎÁءפȤ·¤¿¤¤
-.Tn FreeBSD
-sppp ¥³¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
-¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥È¥³¥ë¤Ï PPP ¤Ç¤¹¡£
-Cisco HDLC ¥×¥í¥È¥³¥ë¤Ï
-.Xr ifconfig 8
-¤Ë
-.Ar link2
-¤òÄɲ乤뤳¤È¤Ë¤è¤Ã¤Æ»ÈÍѤǤ­¤Þ¤¹¡£
-.Sh ÈÖ¹æ
-¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¥«¡¼¥ÉËè¤Ë 1 ¹Ô¤Î¤ß¤¬É¬ÍפǤ¹¡£
-ºÇ½é¤Î¥«¡¼¥É¤Î¥Ý¡¼¥È¤Ï¡¢ar0 ¤«¤éƳÆþ¤µ¤ì¤Þ¤¹¡£
-¼¡¤Î¥«¡¼¥É¤ÎÈÖ¹æ¤Ï¡¢ºÇ½é¤Î¥«¡¼¥É¤Ç»ß¤Þ¤Ã¤¿½ê¤«¤é³¤±¤Þ¤¹¡£
-¤Ä¤Þ¤ê¡¢¤â¤·ºÇ½é¤Î¥«¡¼¥É¤¬ 2 ¥Ý¡¼¥È¤Î¥«¡¼¥É¤Ê¤é¡¢¤½¤Î¥«¡¼¥É¤Ï ar0 ¤È ar1
-¤ò»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¼¡¤Î¥«¡¼¥É¤Ï¡¢ar2 ¤«¤é»Ï¤á¤Þ¤¹¡£
-.Pp
-¥«¡¼¥É¤Ï IRQ 3, 5, 7, 10, 11, 12, 15 ¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-.Pp
-iomem Îΰè¤Ï¡¢16Kb ¥Ö¥í¥Ã¥¯¤Ç¤¢¤ê¡¢16Kb ¶­³¦¤«¤é»Ï¤Þ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-.Sh ¿ÇÃÇ
-.Bl -diag
-.It "ar%d: Warning illegal interrupt %d."
-¥«¡¼¥É¤¬»ØÄꤵ¤ì¤¿³ä¤ê¹þ¤ß¤ò»ÈÍѤǤ­¤Þ¤»¤ó¡£Â¾¤Î³ä¤ê¹þ¤ß¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£
-.El
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width /sys/i386/isa/ic/hd64570.h -compact
-.It Pa /sys/i386/isa/ic/hd64570.h
-.It Pa /sys/i386/isa/if_arregs.h
-.It Pa /sys/i386/isa/if_ar.c
-.El
-.Sh ¥Ð¥°
-¸½»þÅÀ¤Ç V.35 ¤È X.21 ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤À¤±¤ò»î¸³¤·¤Æ¤¤¤Þ¤¹¡£
-¾¤Î¤â¤Î¤Ç¤Ï¥¯¥í¥Ã¥¯Éôʬ¤Î¥³¡¼¥É¤òÈùÄ´À°¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
-.Pp
-¤³¤Î¥³¡¼¥É¤Ë¤Ï¡¢¤ª¤½¤é¤¯ºÇŬ²½¤Î;ÃϤ¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-¤³¤Î¥³¡¼¥É¤Ï¡¢¤Þ¤À¤Ç¤­¤¿¤Ð¤«¤ê¤Ç¤¹¤«¤éÈó¾ï¤Ë¿¤¯¤Î¥Ð¥°¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
-¥Ð¥°¤Ï jhay@mikom.csir.co.za ¤ØÊó¹ð¤·¤Æ¤¯¤À¤µ¤¤¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr cx 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8 ,
-.Xr lsdev 8
-.Sh ºî¼Ô
-.Nm ar
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.An John Hay Aq jhay@mikom.csir.co.za
-¤¬ºîÀ®¤·¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/cs.4 b/ja_JP.eucJP/man/man4/man4.i386/cs.4
deleted file mode 100644
index ba32f400d5..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/cs.4
+++ /dev/null
@@ -1,105 +0,0 @@
-.\"
-.\" Copyright (c) 1998 Michael Smith
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" %Id: cs.4,v 1.2 1998/10/22 14:12:55 bde Exp %
-.\" jpman %Id: cs.4,v 1.3 1999/11/28 15:53:08 horikawa Stab %
-.\"
-.Dd July 20, 1998
-.Dt CS 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm cs
-.Nd ¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device cs0 at isa? port 0x300 net irq ?"
-.Cd "device cs1 at isa? port 0x300 net irq 10 iomem 0xd0000"
-.Sh ²òÀâ
-.Nm
-¥É¥é¥¤¥Ð¤Ï
-.Nm Crystal Semiconductor CS8900 ¤È CS8920
-NIC ¤ò¥Ù¡¼¥¹¤Ë¤·¤¿ ISA ¥¤¡¼¥µ¥Í¥Ã¥È¥¢¥À¥×¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-¤³¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¤Ï CS89x0 ¥Õ¥¡¥ß¥ê¤Î·çÅÀ¤òÊ䤦¤À¤±¤Î
-¹â¤¤´°À®Å٤Ⱦ®·¿²½¤ª¤è¤ÓÄã²Á³Ê²½¤ò¼Â¸½¤·¤¿¡¢
-.Nm IBM EtherJet ISA
-¥¢¥À¥×¥¿¤ª¤è¤ÓƱ¥Ç¥Ð¥¤¥¹¤òÁȤ߹þ¤ó¤À¿¤¯¤ÎÀ½Éʤˤª¤¤¤Æ»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
-.Pp
-.Nm
-¥É¥é¥¤¥Ð¤ÏÀßÄê¥Ñ¥é¥á¡¼¥¿¤ò¡¢ÀßÄꥨ¥ó¥È¥ê¤Þ¤¿¤Ï¥«¡¼¥É¤Î¤É¤Á¤é¤«¤é¤Ç¤â
-¼èÆÀ¤Ç¤­¤Þ¤¹¡£ÀßÄꥨ¥ó¥È¥ê¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤¬¤â¤·Â¸ºß¤¹¤ì¤Ð
-¤½¤Á¤é¤ò»ÈÍѤ·¤Þ¤¹¤¬¡¢¥«¡¼¥É¤Ï¥½¥Õ¥È¥¦¥§¥¢¤ÇÀßÄê¤Ç¤­¤ë¤Î¤Ç¡¢
-¤³¤ì¤é¤ÎÀßÄê¤ÏŬÀµ¤ÊÃͤˤʤäƤ¤¤ë¤È»×¤ï¤ì¤Þ¤¹¡£
-CS8920 ¥Ù¡¼¥¹¤Î¥¢¥À¥×¥¿¤Ï¡¢Ä̾ï PnP ÀßÄê¤òÄ󶡤¹¤ë¤Î¤Ç¡¢¥É¥é¥¤¥Ð¤Ï
-.Nm IBM EtherJet
-¤È
-.Nm CSC6040
-¤ò¼«Æ°Åª¤Ë¸¡½Ð¤·¤Þ¤¹¡£
-.Pp
-CS8900 ¤Ï 4 ¤Ä¤Î IRQ Ãͤ˸ÂÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤ÎÃͤÏ
-Ä̾ï 5, 10, 11, 12 ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£CS8920 ¤Ë¤Ï¤½¤Î¤è¤¦¤ÊÀ©¸Â¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-.Pp
-¥á¥â¥ê¥Þ¥Ã¥×¤È DMA Æ°ºî¤Ï¸½»þÅÀ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-.Sh ¿ÇÃÇ
-.Bl -diag
-.It "cs%d: full/half duplex negotiation timeout"
-¥Ï¥Ö¤È¤ÎÁ´Æó½ÅÀßÄê¥Í¥´¥·¥¨¡¼¥È»î¹Ô¤¬¥¿¥¤¥à¥¢¥¦¥È¤òµ¯¤³¤·¤Þ¤·¤¿¡£
-¤³¤Î¤³¤È¤Ï¥±¡¼¥Ö¥ëÀܳ¤ËÌäÂ꤬¤¢¤ë¤«¡¢·ç´Ù¤«¡¢¸ß´¹À­¤Î¤Ê¤¤¥Ï¥Ö¤Ç¤¢¤ë¤³¤È¤ò
-¼¨¤·¤Æ¤¤¤Þ¤¹¡£
-.It "cs%d: failed to enable <media>"
-CS89x0 ¤Ï»Ø¼¨¤µ¤ì¤¿¥á¥Ç¥£¥¢¤ÎÁªÂò¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£¤½¤Î¥á¥Ç¥£¥¢¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢
-Áàºî¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£
-.It "cs%d: No EEPROM, assuming defaults"
-CS89x0 ¤Ë EEPROM ¤¬¤Ê¤¤¤«¡¢Àä˾Ū¤Ë»½ý¤·¤Æ¤¤¤Þ¤¹¡£ÀßÄꥨ¥ó¥È¥ê¤¬¥¢¥À¥×¥¿¤Î
-ÃͤËŬ¤·¤¿ÃͤˤʤäƤ¤¤¿¾ì¹ç¤Ë¤·¤«Áàºî¤Ç¤­¤Þ¤»¤ó¡£
-.It "cs%d: Invalid irq"
-ÀßÄꥨ¥ó¥È¥ê¤Ç»ØÄꤵ¤ì¤¿ IRQ ¤¬¥¢¥À¥×¥¿¤Ë¤¢¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
-.It "cs%d: Could not allocate memory for NIC"
-Ã×̿Ū¤Ê¥á¥â¥êÉÔ­¤Ç¤¹¡£¥¢¥À¥×¥¿¤ÏÆ°¤­¤Þ¤»¤ó¡£
-.It "cs%d: Adapter has no media"
-¥¢¥À¥×¥¿¤ÏÆÃÄê¤Î¥á¥Ç¥£¥¢¥¿¥¤¥×¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ï¼êÆ°¤Ç¥»¥Ã¥È¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.It "This is a %s, but LDN %d is disabled"
-PnP õºº¥³¡¼¥É¤Ï½èÍý²Äǽ¤Ê¥¢¥À¥×¥¿¤ò¸¡½Ð¤·¤Þ¤·¤¿¤¬¡¢
-¥¢¥À¥×¥¿¤Ï̵¸ú²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-.It "failed to read pnp parms"
-PnP ¥¢¥À¥×¥¿¤¬¸¡½Ð¤µ¤ì¤Þ¤·¤¿¤¬¡¢¤½¤Î¥¢¥À¥×¥¿ÍѤÎÀßÄê¥Ñ¥é¥á¡¼¥¿¤¬Æɤá¤Þ¤»¤ó¡£
-.It "failed to pnp card parametars"
-PnP ·Ðͳ¤ÇÆÀ¤¿¥Ñ¥é¥á¡¼¥¿¤ò¥É¥é¥¤¥Ð¤Ï¼õ¤±¤È¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£¥¢¥À¥×¥¿¤Ï¤¿¤Ö¤ó
-Æ°¤«¤Ê¤¤¤Ç¤·¤ç¤¦¡£
-.Sh ·Ù¹ð
-CS89x0 ¥Õ¥¡¥ß¥ê¤Î¥¢¥À¥×¥¿¤Ï¡¢¤È¤Æ¤â¾®¤µ¤Ê RAM ¥Ð¥Ã¥Õ¥¡ (4K) ¤·¤«
-»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î¤³¤È¤Ï¶Ëü¤Ë¹â¤¤¥Í¥Ã¥È¥ï¡¼¥¯Éé²Ù¤ä
-ÇúȯŪ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥È¥é¥Õ¥£¥Ã¥¯²¼¤Ç¤ÏÌäÂê¤òµ¯¤³¤¹¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-¼ÂºÝ¡¢NFS Áàºî¤Ï¥ª¡¼¥Ð¥é¥ó¤òËɤ°¤¿¤á¤Ë¡¢ 1k ¤ÎÆɤ߽ñ¤­½èÍý¤Ë
-À©¸Â¤¹¤ë¤Ù¤­¤Ç¤¹¡£
-.Sh ºî¼Ô
-.Nm
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.An Maxim Bolotin
-¤È
-.An Oleg Sharoiko
-¤¬½ñ¤­¤Þ¤·¤¿¡£
-¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.An Michael Smith
-¤¬½ñ¤­¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/cx.4 b/ja_JP.eucJP/man/man4/man4.i386/cx.4
deleted file mode 100644
index 4a9455eefd..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/cx.4
+++ /dev/null
@@ -1,289 +0,0 @@
-.\"
-.\" %Id: cx.4,v 1.4 1997/06/23 04:02:37 steve Exp %
-.\" jpman %Id: cx.4,v 1.3 2000/08/10 13:49:49 horikawa Stab %
-.\"
-.Dd December 12, 1994
-.Dt CX 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm cx ,
-.Nm if_cx
-.Nd Ʊ´ü/ÈóƱ´ü Cronyx-Sigma ¥¢¥À¥×¥¿¥É¥é¥¤¥Ð
-.Sh ÀßÄê
-.Cd "device cx0 at isa? port 0x240 irq 15 drq 7"
-.Cd "device cx1 at isa? port 0x260 irq 12 drq 6"
-.Cd pseudo-device sppp
-.Pp
-i/o ¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤Ï¡¢¥Ü¡¼¥É¾å¤Î¥¸¥ã¥ó¥Ñ¤ÇÀßÄꤵ¤ì¤Þ¤¹¡£
-DMA ¥Á¥ã¥Í¥ë¤È³ä¤ê¹þ¤ß¥ê¥¯¥¨¥¹¥ÈÈÖ¹æ¤Ï¡¢
-¥¢¥À¥×¥¿½é´ü²½»þ¤Ë¥½¥Õ¥È¥¦¥§¥¢¤ÇÀßÄꤵ¤ì¤Þ¤¹¡£
-Ä̾ï¤ÎÃͤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£
-.Pp
-.Bl -tag -compact -width Port
-.It Port
-0x240, 0x260, 0x280, 0x300, 0x320, 0x380
-.It IRQ
-3, 5, 7, 10, 11, 12, 15
-.It DMA
-5, 6, 7
-.Sh ²òÀâ
-Cronyx-Sigma ¥É¥é¥¤¥Ð¤Ï¥â¥Ç¥ë 100,
-400, 500, 401, 404, 410, 440, 703, 801, 810, 840 ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-¥â¥Ç¥ë¤¬°Û¤Ê¤ë¤È¡¢¥Á¥ã¥Í¥ë¤Î¥»¥Ã¥È¤¬°Û¤Ê¤ê¤Þ¤¹¡£
-.Pp
-.Bl -tag -compact -width Cronyx-Sigma-999
-.It ¥â¥Ç¥ë
-¥Á¥ã¥Í¥ë
-.It Cronyx-Sigma-100
-0
-.It Cronyx-Sigma-400
-4, 5, 6, 7
-.It Cronyx-Sigma-500
-0, 4, 5, 6, 7
-.It Cronyx-Sigma-401
-0, 1, 2, 3
-.It Cronyx-Sigma-404
-0, 1, 2, 3
-.It Cronyx-Sigma-410
-0, 1, 2, 3
-.It Cronyx-Sigma-440
-0, 1, 2, 3
-.It Cronyx-Sigma-703
-0, 1, 2, 4, 5, 6, 7
-.It Cronyx-Sigma-801
-0, 1, 2, 3, 4, 5, 6, 7
-.It Cronyx-Sigma-810
-0, 1, 2, 3, 4, 5, 6, 7
-.It Cronyx-Sigma-840
-0, 1, 2, 3, 4, 5, 6, 7
-.El
-.Pp
-¤Õ¤¿¤Ä¤Î¥¢¥À¥×¥¿¤Ï¡¢¥Ü¡¼¥É´ÖÀܳÍѤÎû¤¤ÀìÍÑ¥±¡¼¥Ö¥ë¤ÇÀܳ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-¤Õ¤¿¤Ä¤ÎÀܳ¤µ¤ì¤¿¥¢¥À¥×¥¿¤Ï¡¢Æ±¤¸ IRQ ¤È DMA ¥Á¥ã¥Í¥ë¤ò»ÈÍѤ·¡¢
-¥É¥é¥¤¥Ð¤«¤é¸«¤ì¤Ð¤Ò¤È¤Ä¤Î 16 ¥Á¥ã¥Í¥ë¥Þ¥ë¥Á¥×¥ì¥¯¥µ¤È¤·¤ÆÆ°ºî¤·¤Þ¤¹¡£
-Àܳ¤µ¤ì¤¿¥Ü¡¼¥É¤ÎÊÒÊý¤¬ ``¥Þ¥¹¥¿'' ¤Ë¡¢¤â¤¦°ìÊý¤¬ ``¥¹¥ì¡¼¥Ö'' ¤Ë¤Ê¤ê¤Þ¤¹¡£
-.Pp
-¥¹¥ì¡¼¥Ö¤Ë¤Ê¤Ã¤¿¥Ü¡¼¥É¤Î¥Á¥ã¥Í¥ë¤Ï¡¢
-¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ 8 ¤«¤é»Ï¤Þ¤ëÈֹ椬³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£
-¤¿¤È¤¨¤Ð¥â¥Ç¥ë 100 ¤È ¥â¥Ç¥ë 500 ¤òÀܳ¤¹¤ë¤È¡¢
-0, 8, 12, 13, 14, 15 È֤ΥÁ¥ã¥Í¥ëÈֹ椬³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£
-.Pp
-RS-232C ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¤â¤Ä¥Á¥ã¥Í¥ë¤Ï¡¢
-Ʊ´ü¥â¡¼¥É¤ÈÈóƱ´ü¥â¡¼¥É¤Î¤É¤Á¤é¤Ç¤âÆ°ºî¤¹¤ë¤³¤È¤¬²Äǽ
-(cxconfig ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤Æ¥½¥Õ¥È¥¦¥§¥¢Åª¤ËÁªÂò¤·¤Þ¤¹) ¤Ç¤¢¤ê¡¢
-¤½¤Î¤¿¤á ``¥æ¥Ë¥Ð¡¼¥µ¥ë¥Á¥ã¥Í¥ë'' ¤È¸Æ¤Ð¤ì¤Þ¤¹¡£
-.Pp
-Cronyx-Sigma ¥¢¥À¥×¥¿ÍѤΥǥХ¤¥¹·¿Æüì¥Õ¥¡¥¤¥ë
-.Pa /dev/*
-¤Ï¡¢
-.Xr MAKEDEV 8
-¤Ë¤è¤Ãºî¤é¤ì¤Þ¤¹¡£
-¤¿¤È¤¨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ëºî¤ê¤Þ¤¹:
-.Bd -literal
-cd /dev
-sh MAKEDEV cronyx ttyx0 ttyx1 ttyy0
-.El
-.Sh ÈóƱ´ü¥É¥é¥¤¥Ð
-.Pp
-ÈóƱ´ü¥Á¥ã¥Í¥ë¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ê̾Á°¤¬ÉÕ¤±¤é¤ì¤Þ¤¹:
-.Pa /dev/ttyx#
-- ¤Ï¥¢¥À¥×¥¿ cx0 ¤Ë¡¢
-.Pa /dev/ttyy#
-- ¤Ï¥¢¥À¥×¥¿ cx1 ¤Ë¡¢
-.Pa /dev/ttyz#
-- ¤Ï¥¢¥À¥×¥¿ cx2 ¤ËÉÕ¤±¤é¤ì¤Þ¤¹¡£
-¤³¤³¤Ç # ¤Ï 0-9-a-f ¤Î¡¢16 ¿Ê¿ô¤Ç¤Î¥Á¥ã¥Í¥ëÈÖ¹æ¤Ç¤¹¡£
-.Pp
-¥É¥é¥¤¥Ð¤Ï°Ê²¼¤Îɸ½à ioctl ¤ò¼õ¤±ÉÕ¤±¤Þ¤¹ (
-.Xr ioctl
-¤ò»²¾È):
-.Pp
-.Bl -tag -width TIOCXXXXX -compact
-.It Dv TIOCSBRK
-BREAK ¤òÁ÷¿®³«»Ï¤·¤Þ¤¹¡£
-.It Dv TIOCCBRK
-BREAK ¤ÎÁ÷¿®¤òÄä»ß¤·¤Þ¤¹¡£
-.It Dv TIOCSDTR
-DTR ¿®¹æ¤ò¥»¥Ã¥È¤·¤Þ¤¹ (DTR := 1)¡£
-DTR ¿®¹æ¤ÏºÇ½é¤Î open(2) ¤Çɬ¤º¥»¥Ã¥È¤µ¤ì¡¢
-.Dv TIOCCDTR ,
-.Dv TIOCSDTR ,
-.Dv TIOCMSET ,
-.Dv TIOCMBIS ,
-.Dv TIOCMBIC
-¤Î ioctl ¤Ë¤è¤êÊѹ¹²Äǽ¤Ç¤¹¡£
-.It TIOCCDTR
-DTR ¿®¹æ¤ò¥¯¥ê¥¢¤·¤Þ¤¹ (DTR := 0)¡£
-.It TIOCMSET
-DTR ¿®¹æ¤È RTS ¿®¹æ¤Ë¡¢»ØÄꤷ¤¿Ãͤò¥»¥Ã¥È¤·¤Þ¤¹ (<DTR:RTS> := data)¡£
-DTR ¿®¹æ¤È RTS ¿®¹æ¤Ï¡¢
-ioctl ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î°ú¿ôÃæ¤Î
-.Dv TIOCM_DTR
-¤È
-.Dv TIOCM_RTS
-¤Î¥Ó¥Ã¥È¤Ë¤è¤êÀ©¸æ²Äǽ¤Ç¤¹¡£
-.It TIOCMBIS
-DTR ¿®¹æ¤È RTS ¿®¹æ¤ò¥»¥Ã¥È¤·¤Þ¤¹ (<DTR:RTS> |= data)¡£
-DTR ¿®¹æ¤È RTS ¿®¹æ¤Ï¡¢
-ioctl ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î°ú¿ôÃæ¤Î
-.Dv TIOCM_DTR
-¤È
-.Dv TIOCM_RTS
-¤Î¥Ó¥Ã¥È¤Ë¤è¤êÀ©¸æ²Äǽ¤Ç¤¹¡£
-.It TIOCMBIC
-DTR ¿®¹æ¤È RTS ¿®¹æ¤ò¥¯¥ê¥¢¤·¤Þ¤¹ (<DTR:RTS> &= ~data)¡£
-DTR ¿®¹æ¤È RTS ¿®¹æ¤Ï¡¢
-ioctl ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î°ú¿ôÃæ¤Î
-.Dv TIOCM_DTR
-¤È
-.Dv TIOCM_RTS
-¤Î¥Ó¥Ã¥È¤Ë¤è¤êÀ©¸æ²Äǽ¤Ç¤¹¡£
-.It TIOCMGET
-¥é¥¤¥ó¾å¤Î¥â¥Ç¥à¿®¹æ¤Î¾õÂÖ¤òȽÄꤷ¤Þ¤¹¡£
-¸Æ¤Ó½Ð¤·¤Î¤¢¤È¡¢°ú¿ô¤Î¥Ç¡¼¥¿¤Ï²¼µ­¤Î¥Ó¥Ã¥È¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹:
-.Pp
-.Bl -tag -width TIOCM_XXX -compact
-.It TIOCM_LE
-¾ï¤Ë¥»¥Ã¥È (¥é¥¤¥ó¥¤¥Í¡¼¥Ö¥ë¾õÂÖ)
-.It TIOCM_DSR
-¥Ç¡¼¥¿¥»¥Ã¥È¥ì¥Ç¥£¿®¹æ (DSR) ¼õ¿®ºÑ
-.It TIOCM_CTS
-Á÷¿®²Äǽ¿®¹æ (CTS) ¼õ¿®ºÑ
-.It TIOCM_CD
-¥Ç¡¼¥¿¥­¥ã¥ê¥¢¸¡½Ð¿®¹æ (CD) ¼õ¿®ºÑ
-.It TIOCM_DTR
-¥Ç¡¼¥¿Ã¼Ëö¥ì¥Ç¥£ (DTR) ¿®¹æÁ÷¿®ºÑ
-.It TIOCM_RTS
-Á÷¿®Í×µá (RTS) Á÷¿®ºÑ
-.El
-.El
-.Sh Ʊ´ü¥É¥é¥¤¥Ð
-.Pp
-Ʊ´ü¥Á¥ã¥Í¥ë¤È¥æ¥Ë¥Ð¡¼¥µ¥ë¥Á¥ã¥Í¥ë¤Ï¡¢
-.Xr cxconfig 8
-¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆƱ´ü¥â¡¼¥É¤ËÀßÄꤹ¤ë¤È¡¢
-¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¥Õ¥§¡¼¥¹ ``cx#''
-(# ¤Ï 0 ¤«¤é 47 ¤Þ¤Ç¤Î¥Á¥ã¥Í¥ëÈÖ¹æ) ¤È¤·¤Æ¥¢¥¯¥»¥¹²Äǽ¤Ç¤¹¡£
-¤¹¤Ù¤Æ¤Îɸ½àŪ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥Ñ¥é¥á¡¼¥¿¤Ï¡¢
-.Xr ifconfig 8
-¤Ë¤è¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¹¡£
-¤Þ¤¿
-.Xr cxconfig 8
-¥³¥Þ¥ó¥É¤Ï¡¢³ÈÄ¥¤µ¤ì¤¿¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹¤ä¡¢
-¾å°Ì¥ì¥Ù¥ë¤Î¥½¥Õ¥È¥¦¥§¥¢¥×¥í¥È¥³¥ë
-(PpP ¤ä Cisco HDLC ¤Ê¤É) ¤ÎÀßÄê¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
-.Pp
-¥æ¥Ë¥Ð¡¼¥µ¥ë¥Á¥ã¥Í¥ë¤ÏƱ´ü¥â¡¼¥É¤Ç¤âÈóƱ´ü¥â¡¼¥É¤Ç¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÈóƱ´ü¥â¡¼¥É¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢¥â¡¼¥É¤Ï
-.Xr cxconfig 8
-¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆÊѹ¹²Äǽ¤Ç¤¹¡£
-¥Á¥ã¥Í¥ë¤¬¥Ó¥¸¡¼¾õÂÖ (ÈóƱ´ü¥Á¥ã¥Í¥ë¤¬¥ª¡¼¥×¥ó¾õÂ֤ξì¹ç¤ä¡¢
-¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬Æ°ºîÃæ (up) ¤Î¾ì¹ç)
-¤Î´Ö¡¢¥â¡¼¥É¤Ï¥Ö¥í¥Ã¥¯¤µ¤ì¤Þ¤¹¡£
-.Sh Ʊ´ü¥Ý¥¤¥ó¥È¥Ä¡¼¥Ý¥¤¥ó¥È¥×¥í¥È¥³¥ë
-.Pp
-Cronyx-Sigma ¥É¥é¥¤¥Ð¤Ï¡¢ÁȤ߹þ¤ß¤ÎƱ´ü¥Ý¥¤¥ó¥È¥Ä¡¼¥Ý¥¤¥ó¥È¥×¥í¥È¥³¥ë
-(sppp) ¤ò»ÈÍѤ·¤Þ¤¹¡£
-ËÜ¥×¥í¥È¥³¥ë¤Ë¤Ï¡¢PpP/HDLC ¤ä Cisco/HDLC¡¢keepalive ¥Ñ¥±¥Ã¥È¤Ë¤è¤ë
-¼«Æ°Åª¤Ê¥³¥Í¥¯¥·¥ç¥ó¥í¥¹¸¡½Ð¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
-sppp ¥×¥í¥È¥³¥ë¥»¥Ã¥È¤ÏÆÈΩ¤·¤¿¥â¥¸¥å¡¼¥ë¤È¤·¤Æ¼ÂÁõ¤µ¤ì¡¢
-¾¤ÎƱ´ü¥·¥ê¥¢¥ë¥Á¥ã¥Í¥ë¤Î¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ»ÈÍѤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£
-BSD/386 (BSDI) ÍѤÎ
-¥É¥é¥¤¥Ð¤Ç¤Ï¡¢OS ¦¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë°ìÈÌŪ¤ÊƱ´ü¥×¥í¥È¥³¥ë¤Î¥»¥Ã¥È¤â»ÈÍÑ
-²Äǽ¤Ç¤¹¡£³°Éô¥×¥í¥È¥³¥ë¥»¥Ã¥È¤Ï¡¢``cxconfig ext'' ¥³¥Þ¥ó¥É
-(
-.Xr cxconfig 8
-¤ò»²¾È) ¤Ë¤è¤Ã¤ÆÁªÂò²Äǽ¤Ç¤¹¡£
-.Sh ¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó¤Î´ÉÍý
-.Pp
-.Xr cxconfig 8
-¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
-¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó¤Ï¡¢Ä̾¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤¬µ¯Æ°¤¹¤ëºÝ¤Ë (¤¿¤È¤¨¤Ð
-.Pa /etc/rc
-¥Õ¥¡¥¤¥ë¤Ê¤É¤Ç) ÀßÄꤵ¤ì¤Þ¤¹¡£
-¤¹¤Ù¤Æ¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¡¢
-¤¹¤Ù¤Æ¤Î¥ª¥×¥·¥ç¥ó¤¬°ÕÌ£¤ò»ý¤Ä¤È¤Ï¸Â¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
-¤Þ¤¿¡¢
-¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Ë¤è¤Ã¤Æ¤Ï¡¢
-¥Á¥ã¥Í¥ë¤â¤·¤¯¤Ï¥¢¥À¥×¥¿Á´ÂΤΥϥ󥰥¢¥Ã¥×¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹¡£
-.Pp
-¼ÂºÝ¤Î¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó¤ÎÀ©¸æµ¡Ç½¤Ï¡¢
-¥Ç¥Ð¥¤¥¹·¿Æüì¥Õ¥¡¥¤¥ë /dev/cronyx ¤ËÂФ¹¤ë
-¤¤¤¯¤Ä¤«¤Î ioctl ¤ò·Ðͳ¤¹¤ë·Á¤Ç¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Î ioctl ¤¬»ÈÍѤǤ­¤Þ¤¹¡£
-.Pp
-.Bl -tag -width CXIOCXXXXXXX -compact
-.It CXIOCGETMODE
-¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó¤ÎÃͤò¼èÆÀ¤·¤Þ¤¹¡£
-.It CXIOCSETMODE
-¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó¤ÎÃͤòÀßÄꤷ¤Þ¤¹¡£
-.El
-.Pp
-ioctl ¥³¡¼¥ë¤Î¥Ç¡¼¥¿°ú¿ô¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¹½Â¤ÂΤΥ¢¥É¥ì¥¹¤ò»ý¤Á¤Þ¤¹:
-.Bd -literal
-typedef struct {
- unsigned char board; /* ¥¢¥À¥×¥¿ÈÖ¹æ¤Ç¤¢¤ê¡¢0..2 */
- unsigned char channel; /* ¥Á¥ã¥Í¥ëÈÖ¹æ¤Ç¤¢¤ê¡¢0..15 */
- unsigned char type; /* ¥Á¥ã¥Í¥ë¥¿¥¤¥× (Æɤ߹þ¤ßÀìÍÑ) */
- unsigned char iftype; /* chan0 ¥¤¥ó¥¿¥Õ¥§¡¼¥¹ */
- unsigned long rxbaud; /* ¼õ¿®Â®ÅÙ */
- unsigned long txbaud; /* žÁ÷®ÅÙ */
- cx_chan_mode_t mode; /* ¥Á¥ã¥Í¥ë¥â¡¼¥É */
- cx_chan_opt_t opt; /* ¶¦Ä̤ΥÁ¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó */
- cx_opt_async_t aopt; /* ÈóƱ´ü¥â¡¼¥É¥ª¥×¥·¥ç¥ó */
- cx_opt_hdlc_t hopt; /* hdlc ¥â¡¼¥É¥ª¥×¥·¥ç¥ó */
- cx_opt_bisync_t bopt; /* bisync ¥â¡¼¥É¥ª¥×¥·¥ç¥ó */
- cx_opt_x21_t xopt; /* x.21 ¥â¡¼¥É¥ª¥×¥·¥ç¥ó */
- cx_soft_opt_t sopt; /* ¥½¥Õ¥È¥¦¥§¥¢¥ª¥×¥·¥ç¥ó¤È¾õÂ֥ե饰 */
-} cx_options_t; /* ¥æ¡¼¥¶¤¬ÀßÄê²Äǽ¤Ê¥ª¥×¥·¥ç¥ó */
-.Ed
-.Pp
-.Bl -tag -width rxbaudxxx
-.It Fa board
-0..2 ¤Î¡¢¥¢¥À¥×¥¿ÈÖ¹æ
-.It Fa channel
-0..15 ¤Î¡¢¥Á¥ã¥Í¥ëÈÖ¹æ
-.It Fa type
-¥Á¥ã¥Í¥ë¤Î¥¿¥¤¥× (Æɤ߼è¤êÀìÍѤΰú¿ô)
-.It Fa iftype
-0 ÈÖ (¤È 8 ÈÖ) ¥Á¥ã¥Í¥ë¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥¿¥¤¥×¡£ 0 - RS-232, 1 - RS-449/V.35¡£
-.It Fa rxbaud
-¼õ¿®¥Ü¡¼¥ì¡¼¥È
-.It Fa txbaud
-Á÷¿®¥Ü¡¼¥ì¡¼¥È
-.It Fa mode
-¥Á¥ã¥Í¥ë¥â¡¼¥É: ÈóƱ´ü/HDLC/Bisync/X.21
-.It Fa opt
-¶¦Ä̤ΥÁ¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó
-.It Fa aopt
-ÈóƱ´ü¥â¡¼¥É¥ª¥×¥·¥ç¥ó
-.It Fa hopt
-HDLC ¥â¡¼¥É¥ª¥×¥·¥ç¥ó
-.It Fa bopt
-Bisync ¥â¡¼¥É¥ª¥×¥·¥ç¥ó
-.It Fa xopt
-X.21 ¥â¡¼¥É¥ª¥×¥·¥ç¥ó
-.It Fa sopt
-¥½¥Õ¥È¥¦¥§¥¢¥×¥í¥È¥³¥ë¥ª¥×¥·¥ç¥ó
-.El
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width /dev/cxXXXX -compact
-.It Pa /dev/cx??
-ÈóƱ´ü¥Á¥ã¥Í¥ë
-.It Pa /dev/cronyx
-¥Á¥ã¥Í¥ë¥ª¥×¥·¥ç¥ó´ÉÍýÍѤΥǥХ¤¥¹·¿Æüì¥Õ¥¡¥¤¥ë
-.El
-.Pp
-¥É¥é¥¤¥Ð¤ò´Þ¤ó¤Ç¤¤¤ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹:
-.Pp
-.Bl -tag -width /dev/cxXXXX -compact
-.It Pa /sys/i386/isa/cronyx.c
-.It Pa /sys/i386/isa/cx.c
-.It Pa /sys/i386/isa/if_cx.c
-.It Pa /sys/i386/isa/cronyx.h
-.It Pa /sys/i386/isa/cxreg.h
-.It Pa /sys/net/if_spppsubr.c
-.It Pa /sys/net/if_sppp.h
-.El
-.Sh ´ØÏ¢¹àÌÜ
-.Xr cxconfig 8 ,
-.Xr ifconfig 8
diff --git a/ja_JP.eucJP/man/man4/man4.i386/el.4 b/ja_JP.eucJP/man/man4/man4.i386/el.4
deleted file mode 100644
index 98c708c962..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/el.4
+++ /dev/null
@@ -1,58 +0,0 @@
-.\"
-.\" Copyright (c) 1994 James A. Jegers
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" %Id: el.4,v 1.7 1998/10/22 14:12:55 bde Exp %
-.\" jpman %Id: el.4,v 1.3 1999/08/18 16:40:09 horikawa Stab %
-.\"
-.Dd July 10, 1995
-.Dt EL 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm el
-.Nd 3Com Etherlink 3C501 ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î¤¿¤á¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device el0 at isa? port 0x300 net irq 9"
-.Sh ²òÀâ
-.Nm
-¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢
-3Com 3c501 8 ¥Ó¥Ã¥È ISA ¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É¤Î¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£
-3c501 ¥«¡¼¥É¤Ï¤«¤Ê¤êÃÙ¤¤¤³¤È¤¬ÃΤé¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
-¤â¤·²Äǽ¤Ê¤é¾¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É¤òÍѤ¤¤ë¤Ù¤­¤Ç¤¹¡£
-¤·¤«¤·¡¢10 Mb/s ¥¤¡¼¥µ¥Í¥Ã¥È¥Í¥Ã¥È¥ï¡¼¥¯¤Ø¤Î¥¢¥¯¥»¥¹¤È¤·¤Æ¤Ï°Â²Á¤Ç¤¹¡£
-.Pp
-Í­¸ú¤Ê I/O ¥Ý¡¼¥È¤Ï 0x280-0x3f0 ¤ÎÈϰϤǤ¹¡£
-.Sh ¥Ð¥°
-¥É¥é¥¤¥Ð¤Ï¥«¡¼¥É¤¬¥«¡¼¥Í¥ë¤ÈƱ¤¸ IRQ ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È²¾Äꤷ¤Þ¤¹¡£
-¤³¤ì¤¬Àµ¤·¤¤¤«¤É¤¦¤«³Î¤«¤á¤ë¥×¥í¡¼¥Ö¤ä¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-.Pp
-¸½ºß¡¢DMA ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£
-.Pp
-¸½ºß¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr ed 4 ,
-.Xr eg 4 ,
-.Xr ep 4 ,
-.Xr ie 4 ,
-.Xr intro 4 ,
-.Xr le 4 ,
-.Xr ifconfig 8
diff --git a/ja_JP.eucJP/man/man4/man4.i386/ep.4 b/ja_JP.eucJP/man/man4/man4.i386/ep.4
deleted file mode 100644
index 9ca7f0f87b..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/ep.4
+++ /dev/null
@@ -1,121 +0,0 @@
-.\"
-.\" Copyright (c) 1994 Herb Peyerl
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Herb Peyerl
-.\" 3. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" %Id: ep.4,v 1.9 1998/10/22 14:12:55 bde Exp %
-.\" jpman %Id: ep.4,v 1.3 1999/08/18 16:40:32 horikawa Stab %
-.\"
-.Dd February 04, 1993
-.Dt EP 4 i386
-.Os
-.Sh ̾¾Î
-.Nm ep
-.Nd
-3Com Etherlink III ¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð (3c5x9)
-.Sh ½ñ¼°
-.Cd "device ep0 at isa? port 0x300 net irq 10"
-.Sh ²òÀâ
-.Nm ep
-¥É¥é¥¤¥Ð¤Ï 3c509 (ISA) ¤È 3c579 (EISA) ¤Î¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£
-¤³¤ì¤é¤Î¥«¡¼¥É¤Î¤µ¤Þ¤¶¤Þ¤Ê¥â¥Ç¥ë¤Ï¡¢¥³¥Í¥¯¥¿¤ÎÇÛÎ󤬤½¤ì¤¾¤ì°Û¤Ê¤ê¤Þ¤¹¡£
-.Pp
-.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
-.It AUI/DIX
-ɸ½à 15 ¥Ô¥ó¥³¥Í¥¯¥¿
-.It 10Base2
-BNC (¥·¥ó¥±¡¼¥Ö¥ë¤È¤·¤Æ¤âÃΤé¤ì¤Æ¤¤¤ë¤â¤Î)
-.It 10BaseT
-UTP (¥Ä¥¤¥¹¥È¥Ú¥¢¤È¤·¤Æ¤âÃΤé¤ì¤Æ¤¤¤ë¤â¤Î)
-.El
-.Pp
-¥Ç¥Õ¥©¥ë¥È¤Ç»ÈÍѤµ¤ì¤ë¥Ý¡¼¥È¤Ï¡¢
-¥»¥Ã¥È¥¢¥Ã¥×¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ÇÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥È¤Ç¤¹¡£
-¤³¤ì¤ò¥ª¡¼¥Ð¥é¥¤¥É¤¹¤ë¤Ë¤Ï¡¢
-.Xr ifconfig 8
-¤Þ¤¿¤Ï
-.Pa /etc/rc.conf
-¥Õ¥¡¥¤¥ë¤Ç¼¡¤Î¥Õ¥é¥°¤ò»ÈÍѤ·¤Þ¤¹¡£
-.Pp
-.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
-.It link0
-AUI ¥Ý¡¼¥È¤ò»ÈÍÑ
-.It link1
-BNC ¥Ý¡¼¥È¤ò»ÈÍÑ
-.It link2
-UTP ¥Ý¡¼¥È¤ò»ÈÍÑ
-.El
-.Pp
-¥³¥ó¥Ô¥å¡¼¥¿¤ËÊ£¿ô¤Î¥«¡¼¥É¤òÁõÃ夷¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¼¡¤Î½çÈÖ¤Çõ¤µ¤ì¤Þ¤¹¡£
-ºÇ½é¤Ë 3c579 EISA ¥«¡¼¥É¤¬Ãµ¤µ¤ì¤Þ¤¹ --
-¤³¤ì¤é¤Ï EISA ¥¹¥í¥Ã¥ÈÈÖ¹æ½ç¤Ë¸¡½Ð¤µ¤ì¤Þ¤¹¡£
-¼¡¤Ë¡¢3c509 ISA ¥«¡¼¥É¤¬Ãµ¤µ¤ì¤Þ¤¹ --
-¥¤¡¼¥µ¥Í¥Ã¥È¥¢¥É¥ì¥¹¤Î¾º½ç¤Ë¸¡½Ð¤µ¤ì¤Þ¤¹¡£
-¼¡¤Ë¡¢¤É¤Î¤è¤¦¤Ë¥×¥í¡¼¥Ö¤µ¤ì¤ë¤«¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
-.Pp
-ep0 at isa0 port 0x6000-0x600f irq 10: aui/bnc address 00:60:8c:70:e5:c5
-ep1 at isa0 port 0x300-0x30f irq 3: aui/bnc/utp address 00:20:af:10:62:ab
-.Pp
-¥«¡¼¥É¤¬È¯¸«¤µ¤ì¤ë¤³¤È¤¬´üÂÔ¤µ¤ì¤ë¥Ý¡¼¥È¤È IRQ ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢
-¤³¤Î»ØÄê¤Ïɬ¤º¤·¤âɬÍפǤϤ¢¤ê¤Þ¤»¤ó¡£
-¥«¡¼¥É¤Ï ISA ¥Ð¥¹¾å¤Ç¤Î¼«Ê¬¤Îµï¾ì½ê¤ò²æ¡¹¤ËÅÁ¤¨¤ë¤Ë
-½½Ê¬¤Ê¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥¹¤òÈ÷¤¨¤Æ¤¤¤ë¤Î¤Ç¤¹¡£
-.Pp
-.Sh Ãí¼á
-3c509 ¥«¡¼¥É¤Ë¤Ï¥¢¥É¥ì¥¹¤òÀßÄꤹ¤ë¥¸¥ã¥ó¥Ñ¤¬¤¢¤ê¤Þ¤»¤ó¡£
-3Com ¤Ï¥«¡¼¥É¤Î¥¢¥É¥ì¥¹¤òÀßÄꤹ¤ë¥½¥Õ¥È¥¦¥§¥¢¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
-ISA ¥Ð¥¹¾å¤Ç¤³¤Î¥«¡¼¥É¤ò¸«¤Ä¤±¤ë¤¿¤á¤Ë¡¢
-¥«¡¼¥Í¥ë¤Ï IO ¥¢¥É¥ì¥¹ 0x110 ¤ÇÊ£»¨¤Ê¥¹¥­¥ã¥óÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£
-Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤! ¤³¤Î¥¢¥É¥ì¥¹¤Ë¾¤Î¥«¡¼¥É¤òÇÛÃÖ¤¹¤ë¤³¤È¤ÏÈò¤±¤Æ¤¯¤À¤µ¤¤¡£
-.Pp
-.Sh ¿ÇÃÇ
-ep0: reset (status: %x)
-.in +4
-¥É¥é¥¤¥Ð¤Ï FIFO ¤Î¥¢¥ó¥À¥é¥ó¤Þ¤¿¤Ï¥ª¡¼¥Ð¥é¥ó¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£¥É¥é¥¤¥Ð¤¬
-¥«¡¼¥É¤ò¥ê¥»¥Ã¥È¤·¡¢¥Ñ¥±¥Ã¥È¤¬¼º¤ï¤ì¤Þ¤¹¡£¤³¤ì¤ÏÃ×̿Ū¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-.in -4
-ep0: eeprom failed to come ready
-.in +4
-EEPROM ¤Î½àÈ÷¤¬¤Ç¤­¤Æ¤¤¤Þ¤»¤ó¡£¤ª¤½¤é¤¯¥«¡¼¥É¤¬»à¤ó¤Ç¤¤¤Þ¤¹¡£
-.in -4
-ep0: 3c509 in test mode. Erase pencil mark!
-.in +4
-狼¤¬¥«¡¼¥É¤Î¾å¤Î¥Æ¥¹¥ÈÎΰè¤Ë±ôÉ®¤ÇÍî½ñ¤­¤ò¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£±ôÉ®½ñ¤­
-¤ÎÀפò¾Ã¤·¤Æ¥ê¥Ö¡¼¥È¤·¤Æ¤¯¤À¤µ¤¤ (¤³¤ì¤Ï¥¸¥ç¡¼¥¯¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¡£
-.in -4
-.Sh ´ØÏ¢¹àÌÜ
-.Xr ed 4 ,
-.Xr eg 4 ,
-.Xr el 4 ,
-.Xr ie 4 ,
-.Xr intro 4 ,
-.Xr le 4 ,
-.Xr vx 4 ,
-.Xr ifconfig 8
-.Sh µ¬³Ê
-¤Ï°ÎÂç¤Ê¤ê¡£Ë­ÉÙ¤ÊÁªÂò»è¤¬¤¢¤ê¤Þ¤¹¡£
-
diff --git a/ja_JP.eucJP/man/man4/man4.i386/ex.4 b/ja_JP.eucJP/man/man4/man4.i386/ex.4
deleted file mode 100644
index ef427df931..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/ex.4
+++ /dev/null
@@ -1,84 +0,0 @@
-.\"
-.\" Copyright (c) 1997 David E. O'Brien
-.\"
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE DEVELOPERS 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.
-.\"
-.\" %Id: ex.4,v 1.6 1998/10/22 14:32:20 bde Exp %
-.\" jpman %Id: ex.4,v 1.4 1999/08/15 14:19:03 horikawa Stab %
-.\"
-.\" WORD: Plug-N-Play ¥×¥é¥°¥¢¥ó¥É¥×¥ì¥¤
-.\"
-.Dd January 19, 1997
-.Dt EX 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm ex
-.Nd
-Intel EtherExpress Pro/10 ¤È Pro/10+ ¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device ex0 at isa? port? net irq ?"
-.Sh ²òÀâ
-.Nm
-¥É¥é¥¤¥Ð¤Ï Intel i82595 ¥Á¥Ã¥×¤òÅëºÜ¤·¤¿ 16 ¥Ó¥Ã¥È PCI ¤Î
-Intel EtherExpress Pro/10 ¤È Pro/10+ ¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É¤Î
-¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£
-.Pp
-¥Ý¡¼¥È¤Î³«»Ï¥¢¥É¥ì¥¹¤¬¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð¡¢
-I/O ¥¢¥É¥ì¥¹¤Î 0x200 ¤«¤é 0x3a0 ¤ÎÈϰϤ«¤é¥«¡¼¥É¤òõ¤·¤Þ¤¹¡£
-IRQ ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥«¡¼¥É¤Î EEPROM ¤«¤éÆɤ߽Фµ¤ì¤Þ¤¹¡£
-¿·¤·¤á¤Î¥«¡¼¥É¤Ç¤ÎÀµ¤·¤¤Áàºî¤Î¤¿¤á¤Ë¤Ï
-¥×¥é¥°¥¢¥ó¥É¥×¥ì¥¤¤Î¥µ¥Ý¡¼¥È¤ò̵¸ú¤Ë¤¹¤Ù¤­¤Ç¤¹¡£
-.Pp
-.Sh ¿ÇÃÇ
-.Bl -diag
-.It "ex%d: Intel EtherExpress Pro/10, address %6D, connector %s"
-¥Ç¥Ð¥¤¥¹¥×¥í¡¼¥Ö¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥«¡¼¥É¤òȯ¸«¤·¤Æ¡¢
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤òÀµ¤·¤¯¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£
-.It "ex%d: WARNING: board's EEPROM is configured for IRQ %d, using %d"
-¥Ç¥Ð¥¤¥¹¥×¥í¡¼¥Ö¤Ï¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿¤â¤Î¤È¤Ï
-°Û¤Ê¤ë³ä¤ê¹þ¤ß¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥Ü¡¼¥É¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£
-.It "ex%d: invalid IRQ."
-¥Ç¥Ð¥¤¥¹¥×¥í¡¼¥Ö¤ÏÉÔÀµ¤Ê IRQ ÀßÄê¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£
-.El
-.Pp
-.Sh ¥Ð¥°
-¸½ºß¤Ï¡¢¥É¥é¥¤¥Ð¤Ï¥Þ¥ë¥Á¥­¥ã¥¹¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£
-.Pp
-.Sh ´ØÏ¢¹àÌÜ
-.Xr arp 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8
-.Sh Îò»Ë
-.Nm
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.Fx 2.2
-¤Ë½é¤á¤ÆÅо줷¤Þ¤·¤¿¡£
-.Sh ºî¼Ô
-.Nm
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.ie t .An Javier Mart\)'in Rueda
-.el .An Javier Martin Rueda
-¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤Þ¤·¤¿¡£
-¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.An David E. O'Brien
-¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/fe.4 b/ja_JP.eucJP/man/man4/man4.i386/fe.4
deleted file mode 100644
index 75474211b0..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/fe.4
+++ /dev/null
@@ -1,284 +0,0 @@
-.\" All Rights Reserved, Copyright (C) Fujitsu Limited 1995
-.\"
-.\" This document may be used, modified, copied, distributed, and sold, in
-.\" both source and printed form provided that the above copyright, these
-.\" terms and the following disclaimer are retained. The name of the author
-.\" and/or the contributor may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
-.\"
-.\" THIS DOCUMENT IS PROVIDED BY THE AUTHOR AND THE CONTRIBUTOR ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTOR 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 DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" Contributed by M. Sekiguchi <seki@sysrap.cs.fujitsu.co.jp>.
-.\" for fe driver.
-.\"
-.\" %Id: fe.4,v 1.11 1998/10/22 13:01:19 bde Exp %
-.\" jpman %Id: fe.4,v 1.3 2000/08/10 13:49:45 horikawa Stab %
-.\"" lair events -> typo of "rare" events (approved by original writer)
-.Dd March 3, 1996
-.Dt FE 4 i386
-.Sh ̾¾Î
-.Nm fe
-.Nd ÉÙ»ÎÄÌ MB86960A/MB86965A ¤ò¥Ù¡¼¥¹¤È¤·¤¿¥¤¡¼¥µ¥Í¥Ã¥È¥¢¥À¥×¥¿
-.Sh ½ñ¼°
-.Cd "device fe0 at isa? port 0x300 net irq ?"
-.Sh ²òÀâ
-.Nm fe
-¤Ï¡¢ÉÙ»ÎÄÌ MB86960A, MB86965A ¤Þ¤¿¤Ï¤½¤Î¾¤Î¸ß´¹¥Á¥Ã¥×¤ò¥Ù¡¼¥¹¤È¤·¤¿
-¥¤¡¼¥µ¥Í¥Ã¥È¥¢¥À¥×¥¿¤Î¤¿¤á¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ç¤¹¡£
-.Pp
-¤³¤Î¥É¥é¥¤¥Ð¤Ï¡¢¥¢¥À¥×¥¿¤Î¥Ï¡¼¥É¥¦¥§¥¢¤¬Âбþ¤·¤Æ¤¤¤ì¤Ð¡¢
-I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¤È IRQ ¤ÎÀßÄê¤ò¼«Æ°Åª¤Ë¹Ô¤Ê¤¤¤Þ¤¹¡£
-.Pp
-¤³¤Î¥É¥é¥¤¥Ð¤Ï¥×¥í¥°¥é¥à I/O ¥Ç¡¼¥¿Å¾Á÷µ»½Ñ¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢
-¤Þ¤º¤Þ¤º¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬ÆÀ¤é¤ì¤Þ¤¹¡£
-¥¢¥À¥×¥¿¤¬¤¿¤È¤¨»ý¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¶¦Í­¥á¥â¥ê¤Ï»ÈÍѤ·¤Þ¤»¤ó¡£
-.Pp
-¤³¤Î¥É¥é¥¤¥Ð¤Ï¸½ºß¤Î¤È¤³¤í¡¢ISA ÍѤÎÉÙ»ÎÄÌ FMV-180 ¥·¥ê¡¼¥º¡¢
-ISA ÍѤΠ¥¢¥é¥¤¥É¥Æ¥ì¥·¥¹ AT1700 ¥·¥ê¡¼¥º¤È RE2000 ¥·¥ê¡¼¥º¡¢
-ÉÙ»ÎÄÌ MBH10302 PC ¥«¡¼¥É¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
-.Ss ¥Ñ¥é¥á¡¼¥¿
-¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤ª¤¤¤Æ¡¢2 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿
-.Ar port
-¤È
-.Ar irq
-¤Ë¤Ï¡¢¥¢¥À¥×¥¿¤Î¥Ï¡¼¥É¥¦¥§¥¢ÀßÄê¤òÈ¿±Ç¤·¤¿Ãͤò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-¤â¤¦ 1 ¤Ä¥ª¥×¥·¥ç¥ó¤È¤·¤Æ
-.Ar flags
-¥Ñ¥é¥á¡¼¥¿¤¬¤¢¤ê¡¢ÉÕ²ÃŪ¤ÊÀßÄê¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-¤½¤Î¾¤Î device ʸ¤Ë¤ª¤±¤ë¥Ñ¥é¥á¡¼¥¿¤Ï½ñ¼°¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤È¤ª¤ê¤Ë
-½ñ¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-.Ar port
-¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¥¢¥À¥×¥¿¤Î¥Ù¡¼¥¹ I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Þ¤¹¡£
-¤³¤ÎÃͤϥ¢¥À¥×¥¿¤Î¥Ï¡¼¥É¥¦¥§¥¢ÀßÄê¤È¹çÃפ·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.Ar port
-¤Ï¡¢
-.Dq Li \&?
-¤Ë¤·¤Æ¡¢»ØÄꤻ¤º¤Ë»Ä¤·¤Æ¤ª¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-¤½¤Î¾ì¹ç¡¢¥É¥é¥¤¥Ð¤Ï I/O ¥¢¥É¥ì¥¹¤Ë´Ø¤¹¤ë¥Ï¡¼¥É¥¦¥§¥¢ÀßÄê¤Î¸¡½Ð¤ò
-¼«Æ°Åª¤Ë»î¤ß¤Þ¤¹¡£
-¤³¤Îµ¡Ç½¤Ï¥¢¥À¥×¥¿¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤Ã¤Æ¤ÏÆ°¤«¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-.Pp
-.Ar irq
-¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¥¢¥À¥×¥¿¤¬»ÈÍѤ¹¤ë IRQ ÈÖ¹æ¤ò»ØÄꤷ¤Þ¤¹¡£
-¤³¤ÎÃͤϥ¢¥À¥×¥¿¤Î¥Ï¡¼¥É¥¦¥§¥¢ÀßÄê¤È¹çÃפ·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.Ar irq
-¤Ï¡¢
-.Dq Li \&?
-¤Ë¤·¤Æ¡¢»ØÄꤻ¤º¤Ë»Ä¤·¤Æ¤ª¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-¤½¤Î¾ì¹ç¡¢¥É¥é¥¤¥Ð¤Ï IRQ ¤Ë´Ø¤¹¤ë¥Ï¡¼¥É¥¦¥§¥¢ÀßÄê¤Î¸¡½Ð¤ò
-¼«Æ°Åª¤Ë»î¤ß¤Þ¤¹¡£
-¤³¤Îµ¡Ç½¤Ï¥¢¥À¥×¥¿¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤Ã¤Æ¤ÏÆ°¤«¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-.Pp
-.Ar flags
-¤Ï¡¢ÍÍ¡¹¤Ê¥Ç¥Ð¥¤¥¹ÀßÄê¤ÎÁȤ߹ç¤ï¤»¤«¤é¤Ê¤ë¿ôÃͤǤ¹¡£
-¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï°Ê²¼¤Î flags ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-2 ¤Ä°Ê¾å¤ÎÀßÄê¤ò¥Ç¥Ð¥¤¥¹¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢
-¤½¤ì¤¾¤ì¤Î flag Ãͤò¿ôÃͤDzû»¤·¤Æ¤¯¤À¤µ¤¤¡£
-°Ê²¼¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ flag ¥Ó¥Ã¥È¤ÏͽÌ󤵤ì¤Æ¤ª¤ê¡¢0 ¤Ë¤·¤Ê¤±¤ì¤Ð
-¤Ê¤ê¤Þ¤»¤ó¡£¼ÂºÝ¤Ë¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥Ó¥Ã¥È¤Ïñ¤Ë̵»ë¤µ¤ì¤ë¤«¡¢¥Æ¥¹¥ÈÍѤä
-¥É¥é¥¤¥Ð¤Îʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤µ¡Ç½¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£
-ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤µ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-.Bl -tag -width "99999999"
-.It Li 0x007F
-¤³¤ì¤é¤Î flag ¥Ó¥Ã¥È¤Ï¡¢
-.Ar flags
-¤Î
-.Li 0x0080
-¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë»þ¤Ë¡¢MB86960A/MB86965A ¥Á¥Ã¥×¤Î DLCR6 ¥ì¥¸¥¹¥¿¤ò
-½é´ü²½¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
-DLCR6 ¾å½ñ¤­µ¡Ç½¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï°Ê²¼¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤ª¤±¤ë¥É¥é¥¤¥Ð¤Î¸ß´¹À­¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë¡¢
-.Li 0x0080
-¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç°Ê³°¡¢
-.Li 0x007F
-flag ¥Ó¥Ã¥È¤Ï 0 ¤Ë¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
-.It Li 0x0080
-¤³¤Î flag ¤Ï¡¢MB86960A/MB86965A ¥Á¥Ã¥×¤Î DLCR6 ¥ì¥¸¥¹¥¿¤ËÂФ¹¤ë
-¥Ç¥Õ¥©¥ë¥ÈÀßÄê¤ò flag ÃͤΠÄã°Ì 7 bit ¤òÍѤ¤¤Æ¾å½ñ¤­¤·¤Þ¤¹¡£
-¤³¤Î flag ¤ÏÌäÂê²ò·èÍѤΤâ¤Î¤Ç¤¢¤ê¡¢¥¢¥À¥×¥¿¥Ï¡¼¥É¥¦¥§¥¢¤Ë´Ø¤¹¤ë
-Ã챤¬¤¢¤ë¿Í¤Î¤ß¤¬»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
-DLCR6 ÀßÄê¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢ÉÙ»ÎÄ̤Υޥ˥奢¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-.El
-.Sh ¥ª¥×¥·¥ç¥ó
-.Nm fe
-¥É¥é¥¤¥Ð¤Ï¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤ª¤¤¤Æ¡¢
-.Dq option
-ʸ¤Ç»ØÄê¤Ç¤­¤ë¤¤¤¯¤Ä¤«¤Î»äŪ¤Ê¥ª¥×¥·¥ç¥ó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
-°Ê²¼¤Ë»äŪ¥ª¥×¥·¥ç¥ó¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£
-¥É¥é¥¤¥Ð¤Ï¤³¤ì°Ê³°¤Ë¤âʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ò¼õ¤±ÉÕ¤±¤Þ¤¹¡£
-¤½¤ì¤é¤Î̾Á°¤Ë¤ÏÁ´¤Æ
-.Dv "FE_"
-¤È¤¤¤¦¸ÇÄꤵ¤ì¤¿ÀÜƬ¼­¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤¹¡£
-ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-.Bl -tag -width "FE_"
-.It Dv "FE_DEBUG=" Ns Ar level
-¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Ð¥¤¥¹¤È (¤Þ¤¿¤Ï) ¥É¥é¥¤¥Ð¤Î¥Ç¥Ð¥Ã¥®¥ó¥°¥ì¥Ù¥ë¤ò
-À©¸æ¤¹¤ë¿ôÃͤò¼õ¤±¤È¤ê¤Þ¤¹¡£
-.Dv "FE_DEBUG"
-¤³¤³¤Ë¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤Ê¤¤Ãͤ˥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È¡¢
-ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤Æ°ºî¤ò°ú¤­µ¯¤³¤¹¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë´Ø¤¹¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄêÃÍ¤Ï 1 ¤Ç¤¹¡£
-.Bl -bullet
-.It
-.Dv "FE_DEBUG=0"
-¤òÀßÄꤹ¤ë¤È¡¢ÀµÅöÀ­¤Î³Îǧ¤ò´Þ¤á¤¿Â¿¤¯¤Î¥Ç¥Ð¥Ã¥°ÍÑ¥³¡¼¥É¤¬¡¢
-¥É¥é¥¤¥Ð¤Î¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤«¤é½ü¤«¤ì¤Þ¤¹¡£
-¤³¤ÎÀßÄê¤ÏºÇ¤â®¤¯¤Æ¾®¤µ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤òÀ¸À®¤·¤Þ¤¹¡£
-¤³¤ÎÀßÄê¤Ç¤¢¤Ã¤Æ¤â¡¢¤¤¤¯¤Ä¤«¤ÎÈó¾ï»þ¥á¥Ã¥»¡¼¥¸¤Ïµ­Ï¿¤µ¤ì¤Þ¤¹¡£
-.It
-.Dv "FE_DEBUG=1"
-¤òÀßÄꤹ¤ë¤È¡¢ºÇÄã¸Â¤Î¥Ç¥Ð¥Ã¥°ÍÑ¥³¡¼¥É¤¬´Þ¤Þ¤ì¡¢
-ºÇ¾®Î̤Υá¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£
-¤³¤ÎÀßÄê¤Ç¤ÏÃ×̿Ū¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¤ß¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£
-.It
-.Dv "FE_DEBUG=2"
-¤òÀßÄꤹ¤ë¤È¡¢É¸½àŪ¤Ê¥Ç¥Ð¥Ã¥°ÍÑ¥³¡¼¥É¤¬´Þ¤Þ¤ì¡¢
-Ãæ´ÖÎ̤Υá¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£
-¤³¤ÎÀßÄê¤Ç¤ÏÌÇ¿¤Ë¤Ê¤¤¥¤¥Ù¥ó¥È¤ä²ø¤·¤²¤Ê¾õÂ֤ǤΥá¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£
-.It
-.Dv "FE_DEBUG=3"
-¤òÀßÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥Ç¥Ð¥Ã¥°ÍÑ¥³¡¼¥É¤¬´Þ¤Þ¤ì¡¢
-ºÇÂçÎ̤Υá¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£
-¤³¤ÎÀßÄê¤Ç¤ÏÄ̾ïÆ°ºî¤ÎÊó¹ð¤ä¥ì¥¸¥¹¥¿ÃͤΥÀ¥ó¥×¤Ê¤É¤Î
-¾éĹ¤Ê¥á¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤Þ¤¹¡£
-.El
-.El
-.Sh ¥Ï¡¼¥É¥¦¥§¥¢¥â¥Ç¥ë¤ËÆÃÍ­¤Îµ¡Ç½
-.Nm fe
-¥É¥é¥¤¥Ð¤Ë¤Ï¡¢¥¢¥À¥×¥¿¤Î¥Ï¡¼¥É¥¦¥§¥¢¥â¥Ç¥ë¤ËÆÃÍ­¤Îµ¡Ç½¤äÀ©¸Â¤¬
-¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£
-°Ê²¼¤Ï¤½¤Î¤è¤¦¤ÊÀ­¼Á¤Î³µÎ¬¤Ç¤¹¡£
-.Ss ÉÙ»ÎÄÌ FMV-180 ¥·¥ê¡¼¥º¥¢¥À¥×¥¿
-¤³¤ì¤é¤Î¥¢¥À¥×¥¿¤Ç¤Ï¡¢IRQ ¤È I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¤ÎξÊý¤¬
-¼«Æ°Åª¤Ë¸¡½Ð²Äǽ¤Ç¤¹¡£
-.Pp
-FMV-180 ¥·¥ê¡¼¥º¤Ç¤Ï
-.Nm fe
-¤Î¼«Æ° I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¸¡½Ðµ¡Ç½¤Ï¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¶ñ¹çÎɤ¯Æ°¤­¤Þ¤¹¡£
-¤â¤·¥·¥¹¥Æ¥à¤Ë 2 ¤Ä°Ê¾å¤Î FMV-180 ¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢
-¤Á¤ã¤ó¤ÈÆ°¤­¤Þ¤¹¡£
-¤·¤«¤·¡¢¤½¤ì°Ê³°¤Î¥¢¥À¥×¥¿¤È¤ÎÁȤ߹ç¤ï¤»¤Ï¡¢¥É¥é¥¤¥Ð¤òº®Í𤵤»¤ë¤«¤â
-¤·¤ì¤Þ¤»¤ó¡£
-¥Ï¡¼¥É¥¦¥§¥¢¸¡½Ð¤Ç²¿¤«º¤Æñ¤ò´¶¤¸¤¿»þ¤Ï¡¢
-.Em "port ?"
-¤ò»È¤ï¤Ê¤¤¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£
-.Pp
-FMV-180 ¥·¥ê¡¼¥º¤Ç¤Ï
-.Nm fe
-¤Î¼«Æ° IRQ ¸¡½Ðµ¡Ç½¤Ï³Î¼Â¤ËÆ°¤­¤Þ¤¹¡£
-FMV-180 ¤Ë¤Ï¾ï¤Ë
-.Em "irq ?"
-¤ò»È¤¦¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£
-IRQ ¤Î¥Ï¡¼¥É¥¦¥§¥¢ÀßÄê¤Ï¡¢¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤ª¤¤¤Æ IRQ Ãͤ¬»ØÄꤵ¤ì¤Æ
-¤¤¤¿¤È¤·¤Æ¤â¡¢¥¢¥À¥×¥¿¤Î EEPROM ÀßÄ꤫¤éÆɤ߹þ¤Þ¤ì¤Þ¤¹¡£
-¥É¥é¥¤¥Ð¤Ï¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ IRQ ¤¬ EEPROM ¤ËÊݸ¤µ¤ì¤¿ÃͤÈ
-°ã¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤·¡¢
-ÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿Ãͤò»ÈÍѤ·¤Þ¤¹
-(¤³¤Î¿¶Éñ¤ÏÁ°²ó¤Î¥ê¥ê¡¼¥¹¤è¤êÊѹ¹¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹)¡£
-.Ss ¥¢¥é¥¤¥É¥Æ¥ì¥·¥¹ AT1700 ¥·¥ê¡¼¥º¤È RE2000 ¥·¥ê¡¼¥º¥¢¥À¥×¥¿
-¥¢¥é¥¤¥É¥Æ¥ì¥·¥¹ AT1700 ¥·¥ê¡¼¥º¤È RE2000 ¥·¥ê¡¼¥º¤Ç¤Ï¡¢
-¼«Æ° I/O ¥Ý¡¼¥È¥¢¥É¥ì¥¹¸¡½Ðµ¡Ç½¤ÏÆ°¤­¤Þ¤¹¤¬¡¢
-FMV-180 ¥·¥ê¡¼¥º¤è¤ê¤Ï³Î¼ÂÅÙ¤¬Íî¤Á¤Þ¤¹¡£
-¥¢¥é¥¤¥É¥Æ¥ì¥·¥¹¤Î¥¢¥À¥×¥¿¤Ç¤³¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤Î¤Ï¤ª´«¤á¤Ç¤­¤Þ¤»¤ó¡£
-.Pp
-¼«Æ° IRQ ¸¡½Ð¤âÀ©¸Â¤Ä¤­¤Ç¤¹¤¬²Äǽ¤Ç¤¹¡£
-.Nm fe
-¥É¥é¥¤¥Ð¤ÏÀßÄê¥Õ¥¡¥¤¥ë¤Ç
-.Dq irq \&?
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢¥Ü¡¼¥É¤Î EEPROM ÀßÄê¤è¤ê IRQ ÀßÄê¤òÆÀ¤è¤¦¤È¤·¤Þ¤¹¡£
-ÉÔ¹¬¤Ê¤³¤È¤Ë¡¢AT1700 ¥·¥ê¡¼¥º¤È RE2000 ¥·¥ê¡¼¥º¤Ë¤Ï 2 ¼ïÎà¤Î¥â¥Ç¥ë¤¬
-¤¢¤ë¤è¤¦¤Ë»×¤¨¤Þ¤¹;
-¤¢¤ë¥¿¥¤¥×¤Ï IRQ ¤ò 3/4/5/9 ¤«¤éÁªÂò²Äǽ¤Ç¡¢¤â¤¦ÊÒÊý¤Ï 10/11/12/15 ¤«¤éÁªÂò
-²Äǽ¤Ç¤¹¡£
-¤³¤ì¤é¤Î¥â¥Ç¥ë¤Î¼±ÊÌÊýË¡¤Ï¡¢Îɤ¯ÃΤé¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-¤³¤Î¤¿¤á¡¢¥¢¥é¥¤¥É¥Æ¥ì¥·¥¹¤Î¥¢¥À¥×¥¿¤Ç¤Î¼«Æ° IRQ ¸¡½Ð¤Ï³Î¼Â¤Ç¤Ê¤¤¤è¤¦¤Ç¤¹¡£
-²¿¤«¥È¥é¥Ö¥ë¤¬µ¯¤­¤¿»þ¤Ï¡¢Àµ³Î¤Ê IRQ ÈÖ¹æ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
-.Pp
-AT17000 ¥·¥ê¡¼¥º¤È RE2000 ¥·¥ê¡¼¥º¤Î°ã¤¤¤ä¡¢
-¤³¤ì¤é¤Î¥·¥ê¡¼¥ºÆâ¤Ç¤Î¥Þ¥¤¥Ê¥â¥Ç¥ë¤Î¸«Ê¬¤±¤Ï¤·¤Æ¤¤¤Þ¤»¤ó¡£
-.Ss ÉÙ»ÎÄÌ MBH10302 PC ¥«¡¼¥É
-.Nm fe
-¥É¥é¥¤¥Ð¤ÏÉÙ»ÎÄÌ MBH10302 ¤È¸ß´¹ PC ¥«¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
-Æ°ºî¤Ë¤Ï PC ¥«¡¼¥É (PCMCIA) ¥µ¥Ý¡¼¥È¥Ñ¥Ã¥±¡¼¥¸¤¬É¬ÍפǤ¹¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr netstat 1 ,
-.Xr crd 4 ,
-.Xr ed 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8 ,
-.Xr pccardd 8
-.Sh ¥Ð¥°
-°Ê²¼¤Ï¡¢´ûÃΤÎÂ礭¤Ê¥Ð¥°¤Ç¤¹:
-.Pp
-.Nm fe
-¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤ÆÊݤ¿¤ì¤Æ¤¤¤ë¥³¥ê¥¸¥ç¥ó¿ô¤ÎÅý·×¤ÏÀµ³Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó;
-.Xr netstat 1
-¤Î
-.Fi i
-¥ª¥×¥·¥ç¥ó¤Ï¼ÂºÝ¤Î¥³¥ê¥¸¥ç¥ó¿ô¤è¤ê¼ã´³¾¯¤Ê¤¤Ãͤò¼¨¤·¤Þ¤¹¡£
-.Pp
-»×¤Ã¤¿¤è¤ê¤â¿¤¯¤Î mbuf ¥¯¥é¥¹¥¿¤¬¾ÃÈñ¤µ¤ì¤Þ¤¹¡£
-¥Ñ¥±¥Ã¥È¼õ¿®¥ë¡¼¥Á¥ó¤¬¡¢mbuf ¥¯¥é¥¹¥¿¤Î³ä¤êÅö¤Æ¥Ý¥ê¥·¤Ë¡¢¤ï¤¶
-¤È°ãÈ¿¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£
-ÉÔɬÍפ˳ä¤êÅö¤Æ¤é¤ì¤¿¥¯¥é¥¹¥¿¤Ïû¤¤À¸Â¸´ü´Ö¤Ç²òÊü¤µ¤ì¤ë¤¿¤á¡¢
-Ť¤ÌܤǸ«¤ì¤Ð¥«¡¼¥Í¥ë¥á¥â¥ê¾ÃÈñÎ̤ˤϱƶÁ¤·¤Þ¤»¤ó¡£
-.Pp
-XNS ¤È IPX ¤Ø¤Î¥µ¥Ý¡¼¥È¤¬¥É¥é¥¤¥Ð¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢
-°ìÅÙ¤â¥Æ¥¹¥È¤Ï¤µ¤ì¤Æ¤ª¤é¤º¡¢¤¿¤¯¤µ¤ó¤Î¥Ð¥°¤¬¤¢¤ë¤Ï¤º¤Ç¤¹¡£
-.Sh ºî¼Ô¡¢Ãøºî¸¢¡¢ÌÈÀÕ¾ò¹à
-.Pp
-.Nm fe
-¥É¥é¥¤¥Ð¤Ï
-.An David Greenman
-¤¬½ñ¤¤¤¿
-.Nm ed
-¥É¥é¥¤¥Ð¤òÌÏÈϤȤ·¤Æ¡¢
-.An M. Sekiguchi Aq seki@sysrap.cs.fujitsu.co.jp
-¤¬Æȼ«¤ËºîÀ®¤·¤Æ´ó£¤·¤Þ¤·¤¿¡£
-.Nm fe
-¤Ë¤ª¤±¤ë PC ¥«¡¼¥É¥µ¥Ý¡¼¥È¤Ï
-.An Hidetoshi Kimura Aq h-kimura@tokyo.se.fujitsu.co.jp
-¤¬½ñ¤­¤Þ¤·¤¿¡£
-¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.An M. Sekiguchi
-¤¬½ñ¤­¤Þ¤·¤¿¡£
-.Pp
-.Em "All Rights Reserved, Copyright (C) Fujitsu Limited 1995"
-.Pp
-This document and the associated software may be used, modified,
-copied, distributed, and sold, in both source and binary form provided
-that the above copyright, these terms and the following disclaimer are
-retained. The name of the author and/or the contributor may not be
-used to endorse or promote products derived from this document and the
-associated software without specific prior written permission.
-.Pp
-THIS DOCUMENT AND THE ASSOCIATED SOFTWARE IS PROVIDED BY THE AUTHOR
-AND THE CONTRIBUTOR
-.Dq AS IS
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE
-CONTRIBUTOR 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
-DOCUMENT AND THE ASSOCIATED SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-.Sh Îò»Ë
-.Nm
-¥É¥é¥¤¥Ð¤Ï
-.Fx 2.0.5
-¤«¤éÅо줷¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/ie.4 b/ja_JP.eucJP/man/man4/man4.i386/ie.4
deleted file mode 100644
index 2693c4cc84..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/ie.4
+++ /dev/null
@@ -1,96 +0,0 @@
-.\" jpman %Id: ie.4,v 1.3 1999/11/28 15:53:03 horikawa Stab %
-.\"
-.\" Copyright (c) 1994, Wilko Bulte
-.\" All rights reserved.
-.\"
-.\" %Id: ie.4,v 1.7 1998/10/22 14:12:55 bde Exp %
-.\"
-.Dd September 23, 1994
-.Dt IE 4 i386
-.Os
-.Sh ̾¾Î
-.Nm ie
-.Nd
-¥¤¡¼¥µ¡¼¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000"
-.Sh ²òÀâ
-.Nm ie
-¥É¥é¥¤¥Ð¤Ï¡¢8 ¥Ó¥Ã¥ÈµÚ¤Ó 16¥Ó¥Ã¥È¤Î Intel i82586 ¥Á¥Ã¥×¤ò¥Ù¡¼¥¹¤Ë¤·¤¿¡¢
-ISA ¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É¤Î¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£
-¤³¤ì¤Ï AT&T ¤Î Starlan 10 µÚ¤Ó Starlan Fiber¡¢
-EN100¡¢Intel EtherExpress 16¡¢3COM 3C507 µÚ¤Ó RACAL Interlan NI5210
-¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-.Pp
-.Sh ¿ÇÃÇ
-.Bl -diag
-.It "ie%d: unknown board type code %d"
-i82586 ¥Á¥Ã¥×¤Ï¸«¤Ä¤«¤ê¤Þ¤·¤¿¤¬¡¢
-¥É¥é¥¤¥Ð¤Ï¥×¥í¡¼¥ÖÃæ¤Ë¼ÂºÝ¤Î¥Ü¡¼¥É¥¿¥¤¥×¤ò·èÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£
-.It "ie%d: kernel configured maddr %x doesn't match board configured maddr %x"
-¥Ç¥Ð¥¤¥¹¥×¥í¡¼¥Ö¤Ï¡¢
-¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ë»ØÄꤵ¤ì¤¿ maddr ¤È°Û¤Ê¤ë maddr ¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£
-.It "ie%d: can't find shared memory"
-¥Ç¥Ð¥¤¥¹¥×¥í¡¼¥Ö¤Ï¡¢
-¶¦Í­¥á¥â¥ê¤ÎÂ礭¤µ¤òÆÀ¤ë¤¿¤á¤Î¥¢¥¯¥»¥¹¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£
-.It "ie%d: kernel configured msize %d doesn't match board configured msize %d"
-¥Ç¥Ð¥¤¥¹¥×¥í¡¼¥Ö¤Ï¡¢
-¶¦Í­¥á¥â¥ê¤ÎÂ礭¤µ¤¬¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ë»ØÄꤵ¤ì¤¿¥µ¥¤¥º¤È°Û¤Ê¤ë¤³¤È¤ò
-¸¡½Ð¤·¤Þ¤·¤¿¡£
-.It "ie%d: kernel configured irq %d doesn't match board configured irq %d"
-¥Ç¥Ð¥¤¥¹¥×¥í¡¼¥Ö¤Ï¡¢
-¥Ü¡¼¥É¤Î³ä¤ê¹þ¤ßÀßÄ꤬¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ë»ØÄꤵ¤ì¤¿ÀßÄê¤È°Û¤Ê¤ë¤³¤È¤ò
-¸¡½Ð¤·¤Þ¤·¤¿¡£
-.It "ie%d: reset"
-Intel i82586 ¤Ï¥É¥é¥¤¥Ð¤Ë¤è¤ê¥ê¥»¥Ã¥È¤µ¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤·¤¿¡£
-.It "ie%d: transceiver problem"
-¥É¥é¥¤¥Ð¤Ï¡¢¥¤¡¼¥µ¡¼¥Í¥Ã¥È¥È¥é¥ó¥·¡¼¥Ð¤ËÌäÂê¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£
-¤³¤ì¤Ï¡¢
-³°ÉÕ¤±¥È¥é¥ó¥·¡¼¥Ð¤ò»ÈÍѤ·¤Æ¤¤¤ë¤È¤­¤Ë¥È¥é¥ó¥·¡¼¥Ð¥±¡¼¥Ö¥ë¤¬´Ë¤ó¤Ç¤¤¤ë¡¢
-¤â¤·¤¯¤ÏÇË»¤·¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
-¤â¤·¤³¤ÎÌäÂê¤ò¥«¡¼¥É¾å¤Î¥È¥é¥ó¥·¡¼¥Ð¤Ç·Ð¸³¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
-¥«¡¼¥É¤¬³°ÉÕ¤±¥È¥é¥ó¥·¡¼¥Ð¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë
-¸í¤Ã¤Æ¥¸¥ã¥ó¥ÑÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-ºÇ°­¤Î¾ì¹ç¡¢¥ª¥ó¥Ü¡¼¥É¥È¥é¥ó¥·¡¼¥Ð¤Ï²õ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-.It "ie%d: TDR detected an open %d clocks away"
-¥É¥é¥¤¥Ð¤Ï¡¢
-¥¤¡¼¥µ¡¼¥Í¥Ã¥È¥±¡¼¥Ö¥ë¤Î²óÏ©¤¬¥ª¡¼¥×¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£
-Ʊ¼´¥±¡¼¥Ö¥ë¤È½ªÅÀÄñ¹³¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
-.It "ie%d: TDR detected a short %d clocks away"
-¥É¥é¥¤¥Ð¤Ï¡¢
-¥¤¡¼¥µ¡¼¥Í¥Ã¥È¥±¡¼¥Ö¥ë¤¬Ã»Íí¤·¤Æ¤¤¤ë¤³¤È¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£
-Ʊ¼´¥±¡¼¥Ö¥ë¤È½ªÃ¼Äñ¹³¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
-.It "ie%d: TDR returned unknown status %x"
-¥É¥é¥¤¥Ð¤Ï¡¢¥¤¡¼¥µ¡¼¥Í¥Ã¥È¥±¡¼¥Ö¥ë»î¸³¤ÇÉÔÌÀ¤Ê¾õÂÖ¤òÆÀ¤Þ¤·¤¿¡£
-.It "ie%d: multicast address setup command failed"
-¥«¡¼¥É¤Ï¡¢¥Þ¥ë¥Á¥­¥ã¥¹¥È¥â¡¼¥É¤ËÆþ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£
-.It "ie%d: configure command failed"
-¥«¡¼¥É¤Ï¡¢ÀßÄêÃæ¤ËÀµ¾ï¤Ë±þÅú¤¹¤ë¤³¤È¤òµñÈݤ·¤Þ¤·¤¿¡£
-.It "ie%d: individual address setup command failed"
-¥¤¡¼¥µ¥Í¥Ã¥È¤Î MAC ¥¢¥É¥ì¥¹¤ò¥×¥í¥°¥é¥à¤¹¤ë¤³¤È¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£
-.El
-.Sh ·Ù¹ð
-Racal Interlan NI5210 ¤Ë¤Ï¡¢
-¶¦Í­¥á¥â¥ê¤¬ 8K ¥Ð¥¤¥È¤Î¤â¤Î¤È 16K ¥Ð¥¤¥È¤Î¤â¤Î¤È¤¬¤¢¤ê¤Þ¤¹¡£
-16K ¥Ð¥¤¥È¤Î¤â¤Î¤ò»ÈÍѤ¹¤ë¤³¤È¤ò¶¯¤¯¿ä¾©¤·¤Þ¤¹¡£
-8K ¥Ð¥¤¥È¥«¡¼¥É¤Ï¡¢ÄɲäΠRAM ¥Á¥Ã¥×¤ò²Ã¤¨¤ë¤³¤È¤Ë¤è¤ê¡¢
-16K ¥Ð¥¤¥È¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Pp
-.Sh ´ØÏ¢¹àÌÜ
-.Xr arp 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8
-.Sh ºî¼Ô
-.Nm
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢
-.An William F. Jolitz
-µÚ¤Ó Lawrence Berkeley Laboratories ¤Î¥³¡¼¥É¤ò´ð¤Ë
-.An Garrett A. Wollman
-¤¬ºîÀ®¤·¤Þ¤·¤¿¡£
-.Tn 3C507
-¥µ¥Ý¡¼¥È¤Ï
-.An Charles M. Hannum
-¤¬ºîÀ®¤·¤Þ¤·¤¿¡£
-¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.An Wilko C. Bulte
-¤¬µ­½Ò¤·¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/io.4 b/ja_JP.eucJP/man/man4/man4.i386/io.4
deleted file mode 100644
index 3f2eb2f255..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/io.4
+++ /dev/null
@@ -1,72 +0,0 @@
-.\"
-.\" Copyright (c) 1996 Joerg Wunsch
-.\"
-.\" All rights reserved.
-.\"
-.\" This program is free software.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE DEVELOPERS 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.
-.\"
-.\" %Id: io.4,v 1.5 1997/03/21 20:13:45 mpp Exp %
-.\" jpman %Id: io.4,v 1.4 2000/07/20 10:04:48 osana Stab %
-.\"
-.Dd Jan 1, 1996
-.Dt IO 4 i386
-.Os
-.Sh ̾¾Î
-.Nm io
-.Nd I/O Æø¢¥Õ¥¡¥¤¥ë
-.Sh ²òÀâ
-Æüì¥Õ¥¡¥¤¥ë
-.Pa /dev/io
-¤ÏÀ©¸æ²¼¤Ë¤¢¤ë¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ç¡¢
-.Pq Ä̾ï¤Ï¥«¡¼¥Í¥ë¤ÎÆâÉô¥³¡¼¥É¤ËͽÌ󤵤줿
-I/O Æø¢¤òÆÀ¤ë¤³¤È¤ò¥×¥í¥»¥¹¤Ëµö²Ä¤·¤Þ¤¹¡£
-.Pa /dev/io
-¤ò³«¤¤¤¿¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ò»ý¤Ã¤¿¤É¤ó¤Ê¥×¥í¥»¥¹¤Ç¤â¡¢
-¥Õ¥é¥°¥ì¥¸¥¹¥¿¥»¥Ã¥È¤ÎÃæ¤Î
-.Em IOPL
-¥Ó¥Ã¥È¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-¤¹¤Ê¤ï¤Á¡¢Ä¾ÀÜ I/O ¤òÁàºî¤¹¤ë¤³¤È¤¬µö¤µ¤ì¤Þ¤¹¡£
-¤³¤ì¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤òľÀÜÁàºî¤¹¤ë
-¥æ¡¼¥¶¥é¥ó¥É¤Î¥×¥í¥°¥é¥à¤ò½ñ¤¯¤¿¤á¤ËÌòΩ¤Á¤Þ¤¹¡£
-.Pp
-¥¢¥¯¥»¥¹À©¸æÁ´ÂΤÏ
-.Pa /dev/io
-¤Î¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
-¤³¤Î¥Ç¥Ð¥¤¥¹¤ËÀµ¤·¤¤¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤ë¤è¤¦¤Ë
-Ãí°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-Æɤ߹þ¤ßÀìÍѤΥ¢¥¯¥»¥¹¤Ç¤µ¤¨¡¢¤¹¤Ù¤Æ¤Î I/O Æø¢¤ò
-Í¿¤¨¤Æ¤·¤Þ¤¦¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
-.Sh ¥Õ¥¡¥¤¥ë
-.Bl -tag -width Pa -compact
-.It Pa /dev/io
-.El
-.Sh ´ØÏ¢¹àÌÜ
-.Xr mem 4
-.Sh Îò»Ë
-.Nm io
-¥Õ¥¡¥¤¥ë¤Ï
-.Fx 1.0
-¤ÇÅо줷¤Þ¤·¤¿¡£
-
-
-
diff --git a/ja_JP.eucJP/man/man4/man4.i386/lnc.4 b/ja_JP.eucJP/man/man4/man4.i386/lnc.4
deleted file mode 100644
index 5b044cc178..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/lnc.4
+++ /dev/null
@@ -1,124 +0,0 @@
-.\"
-.\" Copyright (c) 1997 David E. O'Brien
-.\"
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE DEVELOPERS 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.
-.\"
-.\" %Id: lnc.4,v 1.6 1998/11/06 09:46:02 obrien Exp %
-.\" jpman %Id: lnc.4,v 1.3 2000/01/03 03:14:36 horikawa Stab %
-.\"
-.Dd January 19, 1997
-.Dt LNC 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm lnc
-.Nd
-AMD Lance/PCnet ¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device lnc0 at isa? port 0x280 net irq 10 drq 0"
-.Sh ²òÀâ
-.Nm
-¥É¥é¥¤¥Ð¤Ï¡¢Am7990 ¤È Am79C960 ´Þ¤à AMD ¥Õ¥¡¥ß¥ê¤òÍøÍѤ·¤Æ¤¤¤ë
-Lance/PCnet Ethernet NIC ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-.Nm
-¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤è¤Ã¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹:
-.Bl -tag -width -offset ident -compat
-.It Novell NE2100
-.It Novell NE32-VL
-.It Isolan BICC
-.It Digital DEPCA
-.It Hewlett Packard Vectra 486/66XM
-.It Hewlett Packard Vectra XU
-.El
-.Sh ¿ÇÃÇ
-.Bl -diag
-.It "lnc%d: Framing error"
-¥Õ¥ì¡¼¥ß¥ó¥°¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£
-¤³¤ì¤Ï¤Þ¤¿¡¢CRC ¥¨¥é¡¼¤âȯÀ¸¤·¤¿¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£
-¤³¤Î·ë²Ì¡¢
-¥É¥é¥¤¥Ð¤Ï¥Õ¥ì¡¼¥ß¥ó¥°¥¨¥é¡¼¤ò´Þ¤ó¤Ç¤¤¤ë¥Ñ¥±¥Ã¥È¤òÍî¤È¤·¤Þ¤·¤¿¡£
-.It "lnc%d: Receive CRC error"
-¼õ¿®¤·¤¿¥¤¡¼¥µ¥Í¥Ã¥È¥Õ¥ì¡¼¥à¤Ï¡¢CRC ¥Á¥§¥Ã¥¯¥µ¥à¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£
-¤³¤Î·ë²Ì¡¢
-¥É¥é¥¤¥Ð¤¬¥Á¥§¥Ã¥¯¥µ¥à¤Ë¼ºÇÔ¤·¤¿¥Ñ¥±¥Ã¥È¤òÍî¤È¤·¤Þ¤·¤¿¡£
-.It "lnc%d: Packet dropped, no mbufs"
-¥É¥é¥¤¥Ð¤Ï mbuf ¤ò»È¤¤²Ì¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£
-¤ª¤½¤é¤¯»ñ¸»¤ÎÌäÂê¤À¤È»×¤ï¤ì¤Þ¤¹¡£
-.It "lnc%d: Couldn't allocate memory for NIC"
-Ã×̿Ū¥¨¥é¡¼¤Ç¤¹¡£
-¤³¤Î¾õ¶·²¼¤Ç¤Ï¡¢¥«¡¼¥É¤ËÂФ·¤Æ¥É¥é¥¤¥Ð¤Ï¥¢¥¿¥Ã¥Á¤µ¤ì¤Þ¤»¤ó¡£
-.It "lnc%d: Memory allocated above 16Mb limit"
-ISA ¤È ESIA ¥«¡¼¥É¤Ï¡¢
-16MB °Ê¾å¤ÎÎΰè¤Ë DMA žÁ÷¤ò¹Ô¤¦¤¿¤á¤Ë¡¢¥Ð¥¦¥ó¥¹¥Ð¥Ã¥Õ¥¡¤¬É¬ÍפȤʤê¤Þ¤¹¡£
-Am7990 ¤È Am79C960 ¤Î¥¢¥É¥ì¥¹¥é¥¤¥ó¤Ï 24 Ëܤ·¤«¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢
-ʪÍý¥á¥â¥ê¤Î¤¦¤Á¡¢²¼°Ì¤Î 16MB ¤Ë¤·¤«¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡£
-.Nm
-¥É¥é¥¤¥Ð¤Ï¡¢¼«¸Ê¤¬³ä¤êÅö¤Æ¤ë¥á¥â¥ê¤¬²¼°Ì 16MB ¤ÎÈÏ°ÏÆâ¤Ë¤¢¤ë¤È²¾Äꤷ¤Æ¤¤¤Þ¤¹¡£
-¤³¤ì¤Ï¤¢¤Þ¤êÂÅÅö¤Ê²¾Äê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢
-¤³¤ì°Ê³°¤ÎÊýË¡¤Ïº£¤Î¤È¤³¤í²¿¤â¤Ç¤­¤Þ¤»¤ó¡£
-¶¦Í­¥á¥â¥ê¤òÍøÍѤ·¤¿ NIC ¤Ë´Ø¤·¤Æ¤Ï´Ø·¸¤¢¤ê¤Þ¤»¤ó¡£
-.It "lnc%d: Device timeout -- Resetting"
-¥Ç¥Ð¥¤¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤Ë±þÅú¤¹¤ë¤Î¤òÄä»ß¤·¤¿¤«¡¢¤¢¤ë¤¤¤Ï¡¢
-¥Í¥Ã¥È¥ï¡¼¥¯Àܳ (¥±¡¼¥Ö¥ë) ¤Ë´Ø¤¹¤ëÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿¡£
-»ÈÍÑÃæ¤Î¥Í¥Ã¥È¥ï¡¼¥¯Àܳ¤È¥«¡¼¥É¤ÎÀßÄ꤬Ʊ¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«
-¤É¤¦¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
-.It "lnc%d: Transmit late collision -- Net error?"
-.It "lnc%d: Loss of carrier during transmit -- Net error?"
-.It "lnc%d: Transmit of packet failed after 16 attempts -- TDR = %d"
-.It "lnc%d: Heartbeat error -- SQE test failed"
-.It "lnc%d: Babble error - more than 1519 bytes transmitted"
-.It "lnc%d: Missed packet -- no receive buffer"
-.It "lnc%d: Memory error -- Resetting"
-.It "lnc%d: Couldn't get mbuf for transmit packet -- Resetting"
-.It "lnc%d: Receive buffer error"
-.It "lnc%d: Receive overflow error"
-.It "lnc%d: Receive interrupt with buffer still owned by controller -- Resetting"
-.It "lnc%d: Receive interrupt but not start of packet -- Resetting"
-.It "lnc%d: Start of packet found before end of previous in receive ring -- Resetting"
-.It "lnc%d: End of received packet not found -- Resetting"
-.It "lnc%d: Transmit interrupt with buffer still owned by controller -- Resetting"
-.It "lnc%d: Transmit interrupt but not start of packet -- Resetting"
-.It "lnc%d: Start of packet found before end of previous in transmit ring -- Resetting"
-.It "lnc%d: End of transmitted packet not found -- Resetting"
-.It "lnc%d: Transmit buffer error -- Resetting"
-.It "lnc%d: Transmit underflow error -- Resetting"
-.El
-.Sh ¥Ð¥°
-¤³¤Î¥É¥é¥¤¥Ð¤Ï¡¢
-¤É¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥É¥é¥¤¥Ð¤è¤ê¤â¾éĹ¤Ëºî¤é¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr arp 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8
-.Sh Îò»Ë
-.Nm
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.Fx 2.2
-¤«¤éÅо줷¤Þ¤·¤¿¡£
-.Sh ºî¼Ô
-.Nm
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.An Paul Richards
-¤¬ºîÀ®¤·¤Þ¤·¤¿¡£
-¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.An David E. O'Brien
-¤¬½ñ¤­¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/mcd.4 b/ja_JP.eucJP/man/man4/man4.i386/mcd.4
deleted file mode 100644
index af9d25bbc9..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/mcd.4
+++ /dev/null
@@ -1,151 +0,0 @@
-.\"
-.\" Copyright (c) 1994 Keith E. Walker
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. The name of the author may not be used to endorse or promote products
-.\" derived from this software withough specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" %Id: mcd.4,v 1.6 1998/10/22 14:12:55 bde Exp %
-.\" jpman %Id: mcd.4,v 1.3 1999/11/19 15:19:56 horikawa Stab %
-.\"
-.Dd December 8, 1994
-.Dt MCD 4 i386
-.Os FreeBSD 2.0
-.Sh ̾¾Î
-.Nm mcd
-.Nd Mitsumi CD-ROM ¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device mcd0 at isa? port 0x300 bio irq 10"
-.Sh ²òÀâ
-.Nm mcd
-¥É¥é¥¤¥Ð¤Ï Mitsumi À½ CD-ROM ¥×¥ì¥¤¥ä¤ËÂФ·¤Æ¡¢¥Ç¡¼¥¿¤È¥ª¡¼¥Ç¥£¥ª¤Î
-¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£
-CD-ROM ¥×¥ì¥¤¥ä¤Ï¡¢Mitsumi ÀìÍѤΥ³¥ó¥È¥í¡¼¥é
-¥Ü¡¼¥É¤Î 1 ¤Ä¤ò·Ð¤ÆISA ¥Ð¥¹¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¹¡£
-¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥È¥í¡¼¥é¥Ü¡¼¥É¤Ï LU002S, LU005S, FX001, ¤½¤·¤Æ°ìÈÌŪ¤Ê
-FX001D ¤Ç¤¹¡£
-.Pp
-.Nm mcd
-¥É¥é¥¤¥Ð¤Ï¥Ç¥£¥¹¥¯¸ÇÍ­¤Î
-.Fn ioctl
-¥³¥Þ¥ó¥É¡¢¤¹¤Ê¤ï¤Á
-.Dv DIOCGDINFO ,
-.Dv DIOCGPART ,
-.Dv DIOCWDINFO ,
-.Dv DIOCSDINFO ,
-¥³¥Þ¥ó¥É¤ËÂФ·¤Æ±þÅú¤·¤Þ¤¹¡£
-¾¤Î¥Ç¥£¥¹¥¯¸ÇÍ­¤Î
-.Fn ioctl
-¥³¥Þ¥ó¥É¤Ë¤Ï¥¨¥é¡¼¤òÊÖ¤¹¤â¤Î¤â¤¢¤ë¤Ç¤·¤ç¤¦¡£
-.Pp
-.Nm mcd
-¥É¥é¥¤¥Ð¤Ï¡¢ÆÃÊÌ¤Ê CD-ROM
-.Fn ioctl
-¥³¥Þ¥ó¥É¤ËÂФ·¤Æ¤â±þÅú¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¢CD-ROM ¥×¥ì¥¤¥ä¤Î
-¥ª¡¼¥Ç¥£¥ªµ¡Ç½¤òÀ©¸æ¤·¤Þ¤¹¡£
-¥³¥Þ¥ó¥É¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹:
-.Pp
-.Bl -tag -width CDIOCREADSUBCHANNEL -compact -offset indent
-.It CDIOCREADSUBCHANNEL
-¥Ç¥£¥¹¥¯¤òºÆÀ¸Ãæ¤Î¸½ºß¤Î¾õÂ֤ˤª¤±¤ë¥µ¥Ö¥Á¥ã¥Í¥ë¤Î¾ðÊó¤ò¼èÆÀ¤·¤Þ¤¹¡£
-.It CDIOCREADTOCHEADER
-Ìܼ¡¥Ø¥Ã¥À¤ò¼èÆÀ¤·¤Þ¤¹¡£
-.It CDIOCREADTOCENTRYS
-Á´¤Æ¤ÎÌܼ¡¤ò¼èÆÀ¤·¤Þ¤¹¡£
-.It CDIOCPLAYTRACKS
-»ØÄꤵ¤ì¤¿°ÌÃ֤ˤª¤¤¤Æ¡¢¥ª¡¼¥Ç¥£¥ªºÆÀ¸¤ò»Ï¤á¤Þ¤¹¡£
-.It CDIOCPLAYBLOCKS
-.Dv EINVAL
-¥¨¥é¡¼¤Ç¼ºÇÔ¤·¤Þ¤¹¡£
-.It CDIOCPLAYMSF
-»ØÄꤵ¤ì¤¿°ÌÃ֤ˤª¤¤¤Æ¡¢¥ª¡¼¥Ç¥£¥ªºÆÀ¸¤ò»Ï¤á¤Þ¤¹¡£
-.It CDIOCRESUME
-¤¢¤é¤«¤¸¤á°ì»þÄä»ß¤·¤¿¥Ç¥£¥¹¥¯¤ÎºÆÀ¸¤ò¥ì¥¸¥å¡¼¥à¤·¤Þ¤¹¡£
-.It CDIOCPAUSE
-¥Ç¥£¥¹¥¯¤ÎºÆÀ¸¤ò°ì»þÄä»ß¤·¤Þ¤¹¡£
-.It CDIOCSTART
-¥Ç¥£¥¹¥¯ºÆÀ¸¤ò»Ï¤á¤Þ¤¹¡£
-.It CDIOCSTOP
-¤¢¤é¤«¤¸¤áºÆÀ¸Ãæ¤Î¥Ç¥£¥¹¥¯¤òÄä»ß¤·¤Þ¤¹¡£
-.It CDIOCEJECT
-¥Ç¥£¥¹¥¯¥È¥ì¡¼¤ò¥ª¡¼¥×¥ó¤·¤Þ¤¹
-(¥¯¥í¡¼¥º¤¹¤ë¥³¥Þ¥ó¥É¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó)¡£
-.It CDIOCRESET
-¤¢¤é¤æ¤ëºÆÀ¸¤òÄä»ß¤·¡¢Mitsumi ¥³¥ó¥È¥í¡¼¥é¥Ü¡¼¥É¤ò¥ê¥»¥Ã¥È¤·¤Þ¤¹¡£
-.It CDIOCSETDEBUG
-¥«¡¼¥Í¥ë¤Ï
-.Nm mcd
-¥É¥é¥¤¥Ð¤Ë¤Ä¤¤¤Æ¤Î¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥ë¤Ë½ÐÎϤ·¤Þ¤¹¡£
-.It CDIOCCLRDEBUG
-¥«¡¼¥Í¥ë¤Ï
-.Nm mcd
-¥É¥é¥¤¥Ð¤Ë¤Ä¤¤¤Æ¤Î¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤Î½ÐÎϤò½ªÎ»¤·¤Þ¤¹¡£
-.El
-.Pp
-¾åµ­¤ÇÄêµÁ¤·¤¿
-.Fn ioctl
-¥³¥Þ¥ó¥É¤Ï
-.Nm mcd
-¥É¥é¥¤¥Ð¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥³¥Þ¥ó¥É¤À¤±¤Ç¤¹¡£(
-.Dv CDIOCSETVOL
-¤ä
-.Dv CDIOCSETSTERIO
-¤Î¤è¤¦¤Ê) CD-ROM ´ØÏ¢
-.Fn ioctl
-¥³¥Þ¥ó¥É¤â¸ºß¤·¤Þ¤¹¤¬¡¢¤½¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤Ï
-¥É¥é¥¤¥Ð¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width /dev/(r)mcd0a -compact
-.It Pa /dev/(r)mcd0a
-¥Ç¥£¥¹¥¯¾å¤Î BSD ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£Ä̾CD-ROM ¥Ç¥£¥¹¥¯
-¾å¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ïñ°ì¤Ç¤¹¡£
-.It Pa /dev/(r)mcd0c
-raw ¥Ç¥Ð¥¤¥¹¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£
-.El
-.Sh Ãí
-.Nm mcd
-¥É¥é¥¤¥Ð¤Î¥­¥ã¥é¥¯¥¿¥â¡¼¥É¥Ç¥Ð¥¤¥¹¤Ï¡¢
-¥ª¡¼¥Ç¥£¥ªµ¡Ç½¤Ë¸ÂÄꤷ¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë»È¤¦¤Ù¤­¤Ç¤¹¡£
-¥Ç¡¼¥¿µ¡Ç½¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢À­Ç½¤¬¤Ò¤É¤¯°­¤¤¤«¤é¤Ç¤¹¡£
-.Pp
-¥É¥é¥¤¥Ð¤Î¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢À¸À®¤µ¤ì¤¿¤¢¤é¤æ¤ë IRQ ¤ËÂФ·¤Æ³ä¤ê¹þ¤ß
-¥Ï¥ó¥É¥é¤òÊÝ»ý¤·¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥Ü¡¼¥É¤Î DMA ¤È
-IRQ µ¡Ç½¤Î¤É¤Á¤é¤âÍѤ¤¤Æ¤¤¤Þ¤»¤ó¡£
-¤È¤â¤«¤¯ DMA µ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Þ¤Ç¡¢¥Ü¡¼¥É
-¤ÎÀ¸À®¤¹¤ë³ä¤ê¹þ¤ß¤À¤±¤Ï¥É¥é¥¤¥Ð¤Ë¤è¤Ã¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Pa /usr/include/sys/cdio.h
-.Sh ºî¼Ô
-¥É¥é¥¤¥Ð¤Ï
-.An Holger Veit
-(¥Ç¡¼¥¿Éôʬ) µÚ¤Ó
-.An Brian Moore
-(¥ª¡¼¥Ç¥£¥ªÉôʬ) ¤¬½ñ¤­¤Þ¤·¤¿¡£¤½¤ì¤ËÂФ¹¤ëÊѹ¹¤¬
-.An Gary Clark II ,
-.An Andrew A. Chernov ,
-.An Jordan K. Hubbard
-¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤Þ¤·¤¿¡£
-.Sh Îò»Ë
-.Nm mcd
-¥É¥é¥¤¥Ð¤Ï
-.Fx 1.0
-¤ÇºÇ½é¤ËÅо줷¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/npx.4 b/ja_JP.eucJP/man/man4/man4.i386/npx.4
deleted file mode 100644
index 92bbfa1162..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/npx.4
+++ /dev/null
@@ -1,79 +0,0 @@
-.\"
-.\" Copyright (c) 1993 Christopher G. Demetriou
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Christopher G. Demetriou.
-.\" 3. The name of the author may not be used to endorse or promote products
-.\" derived from this software withough specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" from: npx.4,v 1.1 1993/08/06 10:58:03 cgd Exp
-.\" %Id: npx.4,v 1.5 1998/10/22 14:22:13 bde Exp %
-.\" jpman %Id: npx.4,v 1.3 1999/08/15 14:20:56 horikawa Stab %
-.\"
-.\" WORD: Numeric Processing Extension coprocessor ¿ôÃͱ黻¥³¥×¥í¥»¥Ã¥µ
-.\"
-.Dd August 28, 1993
-.Dt NPX 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm npx
-.Nd ¿ôÃͱ黻¥³¥×¥í¥»¥Ã¥µ¤È¥¨¥ß¥å¥ì¡¼¥¿
-.Sh ½ñ¼°
-.Cd "options MATH_EMULATE"
-.\" XXX this is awful hackery to get it to work right... -- cgd
-.Cd "device npx0 at isa? port IO_NPX tty irq 13"
-.Sh ²òÀâ
-.Nm npx
-¥É¥é¥¤¥Ð¤Ï¡¢¥·¥¹¥Æ¥à¤Ë¿ôÃͱ黻¥³¥×¥í¥»¥Ã¥µ¤¬¤¢¤ì¤Ð¡¢
-¤½¤ì¤òÍøÍѤǤ­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
-³ÈÄ¥¿ôÃͱ黻µ¡Ç½ (NPX) ¤Ï¡¢
-.Sy 486DX
-CPU ¤ò»È¤Ã¤¿¥·¥¹¥Æ¥à¤ä¡¢
-.Sy 387
-¤Þ¤¿¤Ï
-.Sy 487SX
-¥³¥×¥í¥»¥Ã¥µ¤ò»È¤Ã¤¿¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Þ¤¹¡£
-.Nm npx
-¥É¥é¥¤¥Ð¤Ï NPX ¤¬Â¸ºß¤¹¤ë¤«Èݤ«¤Ë´Ø¤ï¤é¤º¡¢
-¥·¥¹¥Æ¥à¤¬Àµ¾ï¤ËÆ°ºî¤¹¤ë¤¿¤á¤ËɬÍפǤ¹¡£
-.Pp
-¤â¤· NPX ¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
-¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ë "MATH_EMULATE" ¥ª¥×¥·¥ç¥ó¤¬
-µ­½Ò¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¹¡£
-¤³¤ì¤Ë¤è¤ê¡¢Ä̾ï¤Ï NPX ¤Ç¼Â¹Ô¤µ¤ì¤ëÌ¿Î᤬¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£
-¥·¥¹¥Æ¥à¤Ë NPX ¤¬Â¸ºß¤»¤º¡¢¥«¡¼¥Í¥ë¤¬¿ô³Ø¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤òÉÕ¤±¤º¤Ë
-¹½ÃÛ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¤Ïµ¯Æ°¤·¤Þ¤»¤ó¡£
-.Sh ·Ù¹ð
-¥¨¥ß¥å¥ì¡¼¥¿¤Ï NPX ¥³¥×¥í¥»¥Ã¥µ¤ÈÈæ¤Ù¤ÆÈó¾ï¤ËÃÙ¤¤¤Ç¤¹¡£
-¤½¤Î¤¿¤á¡¢¥¨¥ß¥å¥ì¡¼¥¿¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤­¤Ë¤Ï¡¢
-ÉâÆ°¾®¿ôÅÀ±é»»¤ÎÀ­Ç½¤¬°­¤¯¤Ê¤ê¤Þ¤¹¡£
-.Sh ¥Ð¥°
-¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£Æä˰¤äݤ¤¥Þ¥¶¡¼¥Ü¡¼¥É¾å¤Ç»È¤Ã¤¿»þ¤Ë¤Ï¤½¤¦¤Ç¤¹¡£
-NPX ¤«¤é CPU ¤Ø¤Î³ä¤ê¹þ¤ß¥é¥¤¥ó¤¬Àµ¤·¤¯·ëÀþ¤µ¤ì¤Æ¤¤¤Ê¤¤
-¥Þ¥¶¡¼¥Ü¡¼¥É¤¬¤¢¤ê¤Þ¤¹¡£
-¤â¤·¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¡¢¥·¥¹¥Æ¥à¤¬¾ï¤ËÀµ¾ï¤ÊÆ°ºî¤ò¤¹¤ë¤³¤È¤ò˾¤à¤Ê¤é¤Ð¡¢
-¥¨¥ß¥å¥ì¡¼¥¿¤ò»È¤¦¤³¤È¤¬É¬ÍפǤ¹¡£
-.Pp
-Ķ±Û´Ø¿ôÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ÏÉÔÀµ³Î¤Ç¤¹¡£
-¤½¤ì°Ê³°¤ÎÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤â²ø¤·¤¤¤Ç¤¹¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/pcf.4 b/ja_JP.eucJP/man/man4/man4.i386/pcf.4
deleted file mode 100644
index 93481c0775..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/pcf.4
+++ /dev/null
@@ -1,65 +0,0 @@
-.\" Copyright (c) 1998, Nicolas Souchu
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"
-.\" jpman %Id: pcf.4,v 1.3 1999/09/11 08:14:22 horikawa Stab %
-.Dd August 6, 1998
-.Dt PCF 4
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm pcf
-.Nd
-Philips I2C ¥Ð¥¹¥³¥ó¥È¥í¡¼¥é
-.Sh ½ñ¼°
-.Cd "controller pcf0 at isa? port? irq 5"
-.Pp
-1 ¤Ä°Ê¾å¤Î iicbus ¥Ð¥¹¤ËÂФ·
-.Cd "controller iicbus0"
-.Sh ²òÀâ
-.Em pcf
-¥É¥é¥¤¥Ð¤Ï
-.Xr iicbus 4
-¥·¥¹¥Æ¥àÍѤΠPhilips PCF8584 I2C ¥³¥ó¥È¥í¡¼¥é¤Î¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£
-.Pp
-PCF8584 ¤Ï CMOS ¥Æ¥¯¥Î¥í¥¸¤ÇÀ߷פµ¤ì¤¿½¸ÀѲóÏ©¤Ç¤¢¤ê¡¢
-¤Û¤È¤ó¤É¤Îɸ½àŪ¤Ê¥Ñ¥é¥ì¥ë¥Ð¥¹¥Þ¥¤¥¯¥í¥³¥ó¥È¥í¡¼¥é/¥Þ¥¤¥¯¥í¥×¥í¥»¥Ã¥µ¤È
-¥·¥ê¥¢¥ë I2C ¥Ð¥¹¤È¤Î´Ö¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£
-PCF8584 ¤Ï¥Þ¥¹¥¿¤È¥¹¥ì¡¼¥Ö¤ÎξÊý¤Îµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£
-I2C ¥Ð¥¹¤È¤ÎÄÌ¿®¤Ï³ä¤ê¹þ¤ß¤«¥Ý¡¼¥ê¥ó¥°¥Ï¥ó¥É¥·¥§¡¼¥¯¤ò»È¤¤¡¢
-¥Ð¥¤¥È¤ò´ðËܤȤ·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
-¤Þ¤¿¡¢I2C ¥Ð¥¹ÆÃÍ­¤Î¥·¡¼¥±¥ó¥¹¡¢¥×¥í¥È¥³¥ë¡¢Ä´Ää¡¢¥¿¥¤¥ß¥ó¥°¤ÎÁ´¤Æ¤ò
-À©¸æ¤·¤Þ¤¹¡£
-PCF8584 ¤Ï¥Ñ¥é¥ì¥ë¥Ð¥¹¥·¥¹¥Æ¥à¤Î I2C ¥Ð¥¹¤È¤ÎÁÐÊý¸þÄÌ¿®¤ò²Äǽ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
-.Pp
-.Sh ´ØÏ¢¹àÌÜ
-.Xr iicbus 4
-.Sh Îò»Ë
-.Nm
-¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.Fx 3.0
-¤ÇÅо줷¤Þ¤·¤¿¡£
-.Sh ºî¼Ô
-¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
-.An Nicolas Souchu
-¤¬½ñ¤­¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/perfmon.4 b/ja_JP.eucJP/man/man4/man4.i386/perfmon.4
deleted file mode 100644
index 58f9694811..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/perfmon.4
+++ /dev/null
@@ -1,225 +0,0 @@
-.\"
-.\" Copyright 1996 Massachusetts Institute of Technology
-.\"
-.\" Permission to use, copy, modify, and distribute this software and
-.\" its documentation for any purpose and without fee is hereby
-.\" granted, provided that both the above copyright notice and this
-.\" permission notice appear in all copies, that both the above
-.\" copyright notice and this permission notice appear in all
-.\" supporting documentation, and that the name of M.I.T. not be used
-.\" in advertising or publicity pertaining to distribution of the
-.\" software without specific, written prior permission. M.I.T. makes
-.\" no representations about the suitability of this software for any
-.\" purpose. It is provided "as is" without express or implied
-.\" warranty.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS
-.\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
-.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
-.\" SHALL M.I.T. 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.
-.\"
-.\" %Id: perfmon.4,v 1.6 1998/03/12 07:30:36 charnier Exp %
-.\" jpman %Id: perfmon.4,v 1.3 2000/08/10 13:48:05 horikawa Stab %
-.Dd March 26, 1996
-.Dt PERFMON 4 i386
-.Os FreeBSD 2.2
-.Sh ̾¾Î
-.Nm perfmon
-.Nd CPU ¤ÎÀ­Ç½¥â¥Ë¥¿¥ê¥ó¥°¤ò¤¹¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹
-.Sh ½ñ¼°
-.Cd cpu \&"I586_CPU\&"
-.Cd cpu \&"I686_CPU\&"
-.Cd options PERFMON
-.Sh ²òÀâ
-.Nm perfmon
-¥É¥é¥¤¥Ð¤Ë¤è¤ê
-.Tn Intel
-¤Î
-.Tn Pentium
-¤È
-.Tn "Pentium Pro"
-¤Î
-CPU ÆâÉô¤ÎÀ­Ç½¥â¥Ë¥¿¥ê¥ó¥°µ¡Ç½¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£
-¤³¤ì¤é¤Î¥×¥í¥»¥Ã¥µ¤Ë¤Ï¿ºÌ¤Ê¥¤¥Ù¥ó¥È¤Ë¤Ä¤¤¤ÆȯÀ¸²ó¿ô¤Þ¤¿¤Ï
-(CPU ¥µ¥¤¥¯¥ë¤Ç¤Î) »ý³»þ´Ö¤Î¤É¤Á¤é¤«¤ò¬Äꤹ¤ë¤è¤¦¤ËÀßÄê¤Ç¤­¤ë
-2 ¸Ä¤ÎÆâÉô¥«¥¦¥ó¥¿¤È¡¢Æ±¤¸¤¯¥¯¥í¥Ã¥¯¥µ¥¤¥¯¥ë¤ò¿ô¤¨¤ë
-1 ¸Ä¤Î¥µ¥¤¥¯¥ë¥«¥¦¥ó¥¿¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-.Nm
-¥É¥é¥¤¥Ð¤Ç¤Ï¤³¤ì¤é¤Îµ¡Ç½¤ËÂФ·¤Æ¥Ç¥Ð¥¤¥¹·Á¼°¤Ë¤è¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄó¶¡
-¤·¤Þ¤¹¡£
-.Pp
-À­Ç½¥â¥Ë¥¿¥ê¥ó¥°¤ò¤¹¤ë¥«¥¦¥ó¥¿¤Ø¤ÎÁ´¤Æ¤Î¥¢¥¯¥»¥¹¤Ï
-¥Ç¥Ð¥¤¥¹·¿Æüì¥Õ¥¡¥¤¥ë¤Î
-.Dq Pa /dev/perfmon
-¤òÇÞ²ð¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£
-¤³¤Î¥Ç¥Ð¥¤¥¹¤¬Ä󶡤¹¤ë
-.Xr ioctl 2
-¥ê¥¯¥¨¥¹¥È¤Ï¿¤¯¤¢¤ê
-.Aq Pa machine/perfmon.h
-¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¤Ï
-.Tn Pentium
-¤È
-.Tn "Pentium Pro"
-¥×¥í¥»¥Ã¥µ¤ÎξÊý¤Î¿§¡¹¤Ê¥«¥¦¥ó¥¿¤ÎÄêµÁ¤â¤¢¤ê¤Þ¤¹¡£
-.Pp
-.Sy Ãí°Õ»ö¹à:
-ÍøÍѲÄǽ¤Ê¥¤¥Ù¥ó¥È¤Î½¸¹ç¤Ï¥×¥í¥»¥Ã¥µËè¤Ë°Û¤Ê¤ê¤Þ¤¹¡£
-»ÈÍѤµ¤ì¤ë¥¤¥Ù¥ó¥È¥³¡¼¥É¤¬Â¬Äꤵ¤ì¤ë CPU ¤Î·¿¼°¤ËÂФ·¤Æ
-ŬÀµ¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤³¤È¤Ï¥×¥í¥°¥é¥Þ¤ÎÀÕǤ¤Ç¤¹¡£
-.Pp
-°Ê²¼¤Î
-.Xr ioctl 2
-¥ê¥¯¥¨¥¹¥È¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹:
-.Bl -tag -width PMIOTSTAMP
-.It Dv PMIOSETUP
-.Pq Li "struct pmc"
-¹½Â¤ÂΤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ñ¥é¥á¡¼¥¿¤È¥Õ¥é¥°¤Ç¥«¥¦¥ó¥¿¤òÀßÄꤷ¤Þ¤¹¡£
-°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤¬
-.Li struct pmc
-¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹:
-.Bl -tag -width "u_char pmc_eventx"
-.It Li "int pmc_num"
-»ØÄꤹ¤ë¥«¥¦¥ó¥¿ÈÖ¹æ¤Ç¤¹¡£
-.Dv NPMC
-(¸½ºß¤Ï 2) ¤è¤ê¾®¤µ¤¯¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
-.It Li "u_char pmc_event"
-¥â¥Ë¥¿¤¹¤Ù¤­ÆÃÄê¤Î¥¤¥Ù¥ó¥È¥³¡¼¥É¤Ç¡¢
-.Aq Pa machine/perfmon.h
-¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-.It Li "u_char pmc_unit"
-¥¤¥Ù¥ó¥È¤Î·¿¤ËÂбþ¤¹¤ëÁõÃ֤Υޥ¹¥¯¤ÎÃͤǤ¹ (
-.Tn Intel
-¤Îʸ½ñ¤ò»²¾È)¡£
-.It Li "u_char pmc_flags"
-¥«¥¦¥ó¥¿¤ÎƯ¤­¤òÊѹ¹¤¹¤ë¥Õ¥é¥° (²¼µ­»²¾È) ¤Ç¤¹¡£
-.It Li "u_char pmc_mask"
-¥«¥¦¥ó¥¿¤Î¥Þ¥¹¥¯¤ÎÃͤǤ¹¡£¤Ä¤Þ¤ê¡¢ËÜÍè¡¢¤³¤ÎÃͤϻØÄꤵ¤ì¤¿¿ô¤Î¥¯¥í¥Ã¥¯
-°Ê¾å (Ëô¤Ï°Ê²¼) ¤Î´Ö·Ñ³¤¹¤ë¥¤¥Ù¥ó¥È¤Ë¥«¥¦¥ó¥È¤òÀ©¸Â¤¹¤ë°Ù¤Ë»ÈÍѤµ¤ì¤ë¤·¤­¤¤ÃÍ
-¤Ç¤¹¡£
-.El
-.Pp
-¼¡¤Î¤è¤¦¤Ê
-.Li pmc_flags
-¤ÎÃͤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹:
-.Bl -tag -compact -width PMCF_USRxx
-.It Dv PMCF_USR
-¥¤¥Ù¥ó¥È¤ò¥æ¡¼¥¶¥â¡¼¥É¤Ç¥«¥¦¥ó¥È¤·¤Þ¤¹¡£
-.It Dv PMCF_OS
-¥¤¥Ù¥ó¥È¤ò¥«¡¼¥Í¥ë¥â¡¼¥É¤Ç¥«¥¦¥ó¥È¤·¤Þ¤¹¡£
-.It Dv PMCF_E
-¥¤¥Ù¥ó¥È¤ò»ý³»þ´Ö¤Ç¤Ï¤Ê¤¯¤½¤Î¿ô¤Ç¥«¥¦¥ó¥È¤·¤Þ¤¹¡£
-.It Dv PMCF_INV
-¥«¥¦¥ó¥¿¤Î¥Þ¥¹¥¯¤ÎÈæ³Ó¤Î°ÕÌ£¤òµÕž¤·¤Þ¤¹¡£
-.El
-.It Dv PMIOGET
-.Pq Li "struct pmc"
-»ØÄꤵ¤ì¤¿¥«¥¦¥ó¥¿¤Î¸½ºß¤ÎÀßÄê¤òÊÖ¤·¤Þ¤¹¡£
-.It Dv PMIOSTART
-.It Dv PMIOSTOP
-.Pq Li int
-»ØÄꤷ¤¿¥«¥¦¥ó¥¿¤òµ¯Æ° (Ää»ß) ¤·¤Þ¤¹¡£¥Ï¡¼¥É¥¦¥§¥¢¤Î·ç´Ù¤Ë¤è¤ê¡¢ÈÖ¹æ½ç¤Ë
-µ¯Æ°¤ÈÄä»ß¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
-(¨¤Á¡¢¥«¥¦¥ó¥¿ 0 ¤Ïɬ¤º¤Þ¤º¥«¥¦¥ó¥¿ 1 ¤òÄä»ß¤·¤Æ¤«¤éÄä»ß¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó)¡£
-¥É¥é¥¤¥Ð¤Ç¤Ï¤³¤ÎÀ©Ìó¤ò
-.Sy ¶¯À©¤·¤Æ¤¤¤Þ¤»¤ó
-(¤È¸À¤¦¤Î¤â¾­Íè¤Î CPU ¤Ç¤Ï¤³¤ÎÀ©Ìó¤Ï¤Ê¤¯¤Ê¤ë¤«¤âÃΤì¤Þ¤»¤ó)¡£
-.It Dv PMIORESET
-.Pq Li int
-»ØÄꤵ¤ì¤¿¥«¥¦¥ó¥¿¤ò 0 ¤Ë¥ê¥»¥Ã¥È¤·¤Þ¤¹¡£¥«¥¦¥ó¥¿¤Ï¥ê¥»¥Ã¥È¤¹¤ëÁ°¤Ë
-.Dv PMIOSTOP
-¤Ë¤è¤êÄä»ß¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Á´¤Æ¤Î¥«¥¦¥ó¥¿¤Ï¼«Æ°Åª¤Ë
-.Dv PMIOSETUP
-¤Ë¤è¤Ã¤Æ¥ê¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£
-.It Dv PMIOREAD
-.Pq Li "struct pmc_data"
-¥«¥¦¥ó¥¿¤Î¸½ºß¤ÎÃͤò¼è¤ê½Ð¤·¤Þ¤¹¡£
-.Li pmc_data
-¹½Â¤ÂΤˤϼ¡¤Î¤è¤¦¤Ê 2 ¸Ä¤Î¥Õ¥£¡¼¥ë¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹:
-.Pp
-.Bl -tag -compact -width "quad_t pmcd_value"
-.It Li "int pmcd_num"
-Æɤ߽Ф¹¥«¥¦¥ó¥¿¤ÎÈֹ档
-.It Li "int pmcd_value"
-64 ¥Ó¥Ã¥È¤ÎÉä¹æÉÕ¤­À°¿ô¤Ç¤Î½ªÎ»ÃÍ¡£
-.El
-.Pp
-¾­Íè¡¢
-.Tn "Pentium Pro"
-¥×¥í¥»¥Ã¥µ¤«¤é
-¥«¥¦¥ó¥¿¤òľÀÜÆɤ߽Ф¹°Ù¤Ë
-.Li RDPMC
-Ì¿Îá¤ò»ÈÍѽÐÍè¤ëÍͤˤʤë¤Ç¤·¤ç¤¦¡£
-.It Dv PMIOTSTAMP
-.Pq Li "struct pmc_tstamp"
-¥¿¥¤¥à¥¹¥¿¥ó¥×¥«¥¦¥ó¥¿¤òÆɤ߽Ф·¤Þ¤¹¡£
-.Li pmc_tstamp
-¹½Â¤ÂÎ¤Ç¤Ï 2 ¸Ä¤Î¥Õ¥£¡¼¥ë¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹:
-.Pp
-.Bl -tag -compact -width "quad_t pmct_value"
-.It Li "int pmct_rate"
-¥«¥¦¥ó¥¿¤Î MHz ¤Ç¤Î¤ª¤ª¤è¤½¤Î®Å٤Ǥ¹¡£
-.It Li "quad_t pmct_value"
-64 ¥Ó¥Ã¥ÈÀ°¿ô¤Ç¤Î¥«¥¦¥ó¥¿¤Î¸½ºß¤ÎÃͤǤ¹¡£
-.El
-.Pp
-.Li pmct_rate
-¥Õ¥£¡¼¥ë¥É¤ËÍ¿¤¨¤é¤ì¤ë¥«¥¦¥ó¥¿¤Î®Å٤ϡ¢
-¹»Àµ¤¬º¤Æñ¤Ê»ö¤ä¥¯¥í¥Ã¥¯¤Î¿Ê¹Ô¤¬ÉÔ´°Á´¤Ê°Ù¤Ë¡¢
-±ý¡¹¤Ë¤·¤ÆÀµ³Î¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë»ö¤¬ÂçÀڤǤ¹¡£
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ¤Ï
-¥¯¥í¥Ã¥¯¤¬¹ï¤à®ÅÙ¤ò¼ÂºÝ¤Ëɽ¼¨¤¹¤ë¤â¤Î¤È¤¤¤¦¤è¤ê¤â
-¼ê¤¬¤«¤ê¤«Ëô¤ÏŬÀµ¤µ¤Î¸¡ºº¤¯¤é¤¤¤Ë¹Í¤¨¤ë¤Ù¤­¤Ç¤¹¡£
-.El
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -compact -width "/usr/include/machine/perfmon.h"
-.It Pa /dev/perfmon
-¥«¥¦¥ó¥¿¤Ø¤Îʸ»ú·¿¥Ç¥Ð¥¤¥¹¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹
-.It Pa /usr/include/machine/perfmon.h
-¹½Â¤ÂΤȥ¤¥Ù¥ó¥È¥³¡¼¥É¤òÄêµÁ¤·¤Æ¤¤¤ë¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë
-.It Pa /usr/share/examples/perfmon
-Á´¤Æ¤Î
-.Fn ioctl
-¥³¥Þ¥ó¥É¤Î»ÈÍѤò¶ñÂÎŪ¤ËÎ㼨¤·¤¿¥µ¥ó¥×¥ë¤Î¥½¡¼¥¹¥³¡¼¥É
-.El
-.Sh ´ØÏ¢¹àÌÜ
-.Xr ioctl 2
-.Rs
-.%A Intel Corporation
-.%B Pentium Pro Family Developer's Manual
-.%D January 1996
-.%V vol. 3
-.%O Operating System Writer's Manual
-.Re
-.\"Ìõ¼ÔÃí³«»Ï
-.Rs
-.%A ¥¤¥ó¥Æ¥ë¥¸¥ã¥Ñ¥ó³ô¼°²ñ¼Ò
-.%B Pentium Pro ¥Õ¥¡¥ß¥ê¡¼ ¥Ç¥£¥Ù¥í¥Ã¥Ñ¡¼¥º ¥Þ¥Ë¥å¥¢¥ë
-.%D January 1996
-.%V ²¼´¬
-.%O ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥° ¥·¥¹¥Æ¥à ¥é¥¤¥¿¡¼¥º ¥Þ¥Ë¥å¥¢¥ë
-.Re
-.\"Ìõ¼ÔÃí½ª¤ê
-.Sh Îò»Ë
-The
-.Nm
-¥Ç¥Ð¥¤¥¹¤Ï
-.Fx 2.2
-¤Ç½é¤á¤Æ¸½¤ì¤Þ¤·¤¿¡£
-.Sh ºî¼Ô
-.Nm
-¥É¥é¥¤¥Ð¤Ï
-.An Garrett A. Wollman ,
-MIT Laboratory for Computer Science
-¤¬½ñ¤­¤Þ¤·¤¿¡£
-.\"Translated by Tetsuro Furuya <ht5t-fry@asahi-net.or.jp>, Dec. 1999.
-.\"ML Checked by Tetsuya Isaki (°æºêůÌé) <isaki@net.ipc.hiroshima-u.ac.jp>,
-.\" Satoru Koizumi (¾®Àô ¸ç )<koizumi@cms.phys.s.u-tokyo.ac.jp>
-.\"Final Checked by
diff --git a/ja_JP.eucJP/man/man4/man4.i386/pnp.4 b/ja_JP.eucJP/man/man4/man4.i386/pnp.4
deleted file mode 100644
index 9b20c43719..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/pnp.4
+++ /dev/null
@@ -1,221 +0,0 @@
-.\" pnp(4) - manual page for the scanner device driver `asc'
-.\"
-.\"
-.\" Copyright (c) 1997 Luigi Rizzo
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgements:
-.\" This product includes software developed by Luigi Rizzo.
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" %Id: pnp.4,v 1.2 1998/03/12 07:30:36 charnier Exp %
-.\"
-.\" Based on Japanese translation by Yasuhito FUTATSUKI <futatuki@fureai.or.jp>
-.\" [man-jp 1426]
-.\" jpman %Id: pnp.4,v 1.3 2000/08/31 20:36:14 kuma Stab %
-.\"
-.Dd September 7, 1997
-.Dt PNP 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm pnp
-.Nd PnP ¥Ç¥Ð¥¤¥¹¤Î¥µ¥Ý¡¼¥È
-.Sh ½ñ¼°
-.Cd controller pnp0
-.Sh ²òÀâ
-.Fx
-¤Î PnP ¥Ç¥Ð¥¤¥¹¥µ¥Ý¡¼¥È¤Ë¤è¤Ã¤Æ¡¢¥æ¡¼¥¶¤¬ PnP ¥«¡¼¥É¤ÎÀßÄê¤ò
-¶¯À©ÀßÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£¤Þ¤¿¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤¬ PnP ¥«¡¼¥É¤Î
-¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¡¦Êѹ¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
-.Pp
-¼êÆ°¤Ç¶¯À©ÀßÄꤹ¤ëµ¡Ç½¤òÍѤ¤¤ë¤¿¤á¤Ë¤Ï¡¢¥«¡¼¥Í¥ë¤ò
-.Cd options USERCONFIG
-ÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-¤³¤Î¤È¤­¥«¡¼¥Í¥ë¤Ï¡¢PnP ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤òµ­Ï¿¤¹¤ë¤¿¤á¤Î
-°ìÄê¤ÎÂ礭¤µ¤Î¥Æ¡¼¥Ö¥ë (¥Ç¥Õ¥©¥ë¥È¤Ç 20 ¥¨¥ó¥È¥ê) ¤ò³ÎÊݤ·¤Þ¤¹¡£
-PnP ¥«¡¼¥É 1 ¤Ä¤¬Ê£¿ô¤ÎÆÈΩ¤·¤¿¥Ç¥Ð¥¤¥¹¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë
-¤³¤È¤â¤¢¤ê¤Þ¤¹ (5 ¤Ä 6 ¤Ä¤â¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï°Û¾ï¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¡£
-.Pp
-¥«¡¼¥Í¥ë¤ò
-.Dq Fl c
-¥Õ¥é¥°ÉÕ¤­¤Ç¥Ö¡¼¥È¤¹¤ë¤³¤È¤Ç¡¢
-PnP ¥«¡¼¥É¤ÎÀßÄêÊѹ¹¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤǤ­¤Þ¤¹¡£¥³¥Þ¥ó¥É¤Ï
-.Dl pnp CSN LDN
-¤È¤¤¤¦¥·¡¼¥±¥ó¥¹¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£¤³¤³¤Ç¡¢CSN ¤Ê¤é¤Ó¤Ë LDN ¤Ï
-¤½¤ì¤¾¤ì¡¢¥Ç¥Ð¥¤¥¹¤Ë¿¶¤é¤ì¤Æ¤¤¤ë¥«¡¼¥ÉÁªÂòÈÖ¹æ
-.Pq Card Select Number
-¤ª¤è¤ÓÏÀÍý¥Ç¥Ð¥¤¥¹ÈÖ¹æ
-.Pq Logiacal Device Number
-¤Ç¤¹¡£
-¤³¤Î¥·¡¼¥±¥ó¥¹¤Ë³¤±¤Æ¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ÎǤ°Õ¤ÎÁȤ߹ç¤ï¤»¤¬»È¤¨¤Þ¤¹¡£
-
-.Bl -tag -width "mmmmmmmmmm""
-.It Dv irqN Ar line
-¥«¡¼¥É¾å¤Î³ä¤ê¹þ¤ß 0 ¤Þ¤¿¤Ï 1
-.Pq ÌõÃí: N ¤Ç»ØÄê
-¤Ë»ÈÍѤ¹¤ë IRQ Àþ¤òÀßÄꤷ¤Þ¤¹¡£
-.Ar line
-¤Ë 0 ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¡¢IRQ Àþ¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
-.It Dv drqN Ar n
-¥«¡¼¥É¾å¤Î DMA 0 ¤Þ¤¿¤Ï 1
-.Pq ÌõÃí: N ¤Ç»ØÄê
-¤Ë»ÈÍѤ¹¤ë DRQ ¥Á¥ã¥Í¥ë¤òÀßÄꤷ¤Þ¤¹¡£
-¥Á¥ã¥Í¥ë¤Ë 4 ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¡¢¥Á¥ã¥Í¥ë¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
-.It Dv portN Ar address
-N ÈÖÌܤΥݡ¼¥ÈÎΰè
-.Pq port's range
-¤Î´ðÄ쥢¥É¥ì¥¹
-.Pq base address
-¤òÀßÄꤷ¤Þ¤¹ (N=0..7)¡£
-.Ar address
-¤Ë 0 ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¡¢¥Ý¡¼¥È¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
-.It Dv memN Ar address
-N ÈÖÌܤΥá¥â¥êÎΰè
-.Pq memory's range
-¤Î´ðÄ쥢¥É¥ì¥¹
-.Pq base address
-¤òÀßÄꤷ¤Þ¤¹ (N=0..3)¡£
-.Ar address
-¤Ë 0 ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¡¢¥á¥â¥êÎΰè¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
-.It Dv bios
-PnP ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤È¤·¤Æ¡¢BIOS ¤¬ÀßÄꤷ¤¿¤â¤Î¤ò»ÈÍѤ·¤Þ¤¹¡£
-¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ê¡¢
-BIOS ¤¬ PnP ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÄ̾ï¤Ï¤³¤ì¤Ç¤è¤¤¤Ç¤·¤ç¤¦¡£
-BIOS ÀßÄê¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï
-.Dq Dv flags
-°Ê³°¤Î¥Ñ¥é¥á¡¼¥¿¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
-.It Dv os
-PnP ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤Ë¡¢¤³¤Î¥¨¥ó¥È¥ê¤Ç»ØÄꤷ¤¿¤â¤Î¤ò»ÈÍѤ·¤Þ¤¹¡£
-.It Dv enable
-PnP ¥Ç¥Ð¥¤¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£
-.It Dv disable
-PnP ¥Ç¥Ð¥¤¥¹¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£
-.It Dv delete
-¥Ç¥Ð¥¤¥¹¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥¨¥ó¥È¥ê¤ò³«Êü¤·¡¢Ê̤ΠCSN/LDN ¤ÎÁȤò»ý¤Ä
-¾¤Î¥Ç¥Ð¥¤¥¹¤Ç»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
-.It Dv flags
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ËÅϤ¹ 32 ¥Ó¥Ã¥È¤Î flags ¥¨¥ó¥È¥ê¤ÎÃͤòÀßÄꤷ¤Þ¤¹¡£
-flags ¤Ï¡¢ÆÃÊ̤ÊÆ°ºî¥â¡¼¥É¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
-(Î㤨¤Ð¡¢¤¢¤ë¼ï¤Î¥µ¥¦¥ó¥É¥«¡¼¥É¤Ç SB ¤È WSS ¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ò
-ÀÚ¤êÂؤ¨¤ë¡¢¤Ê¤É)
-.El
-.Pp
-¸½ºß¤Î¥Æ¡¼¥Ö¥ëÆâ¤ÎÀßÄêÃͤϡ¢userconfig ¤Î
-.Ic ls
-¥³¥Þ¥ó¥É¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£
-¤³¤Î¥Æ¡¼¥Ö¥ë¤Ï¡¢¥æ¡¼¥¶¤¬¹Ô¤Ê¤Ã¤¿Êѹ¹¤Ë²Ã¤¨¡¢
-PnP ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤¬¥¢¥¯¥»¥¹¤·¤¿¤¹¤Ù¤Æ¤ÎÏÀÍý¥Ç¥Ð¥¤¥¹¤Î¥¨¥ó¥È¥ê¤ò
-ÊÝ»ý¤·¤Þ¤¹¡£
-.Pp
-¥Æ¡¼¥Ö¥ë¤ÎÊѹ¹·ë²Ì¤Ï¡¢
-.Xr dset 8
-¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Ö¡¼¥È¥¤¥á¡¼¥¸¤ËÊݸ¤µ¤ì¤Þ¤¹¡£
-.Pq ÌõÃí: ¥«¡¼¥Í¥ë¤Î ELF ²½¤Ë¤è¤ê dset ¥³¥Þ¥ó¥É¤ÏÇѻߤµ¤ì¤Þ¤·¤¿
-.Pp
-.Sh PnP ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-¥«¡¼¥Í¥ë¤Ï PnP ¥Ç¥Ð¥¤¥¹¤ò¼«Æ°Åª¤Ëǧ¼±¤·¤ÆÀßÄꤷ¤Þ¤¹¡£
-PnP ¥Ç¥Ð¥¤¥¹¤Ï°Ê²¼¤Î¥Ç¡¼¥¿¹½Â¤¤Ç¼±Ê̤·¤Þ¤¹¡£
-.Bd -literal
-struct pnp_device {
- char *pd_name;
- char *(*pd_probe ) (u_long csn, u_long vendor_id);
- void (*pd_attach ) (u_long csn, u_long vend_id, char * name,
- struct isa_device *dev);
- u_long *pd_count;
- u_int *imask;
- struct isa_device dev;
-};
-.Ed
-.Pp
-¥×¥í¡¼¥Ö (probe) ¥ë¡¼¥Á¥ó¤Ï¡¢ÅϤµ¤ì¤ë vendor_id ¤¬¼«Ê¬¤¬
-ǧ¼±¤¹¤ë¤â¤Î¤Ç¤¢¤ë¤«¡¢
-¥«¡¼¥ÉÃæ¤ÎɬÍפʥǥХ¤¥¹¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢
-¥Á¥§¥Ã¥¯¤Ë
-¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï NULL Ãͤò¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¤Ç¤Ê¤¤ÃÍ
-(°ìÈ̤˥ǥХ¤¥¹Ì¾¤ò»Ø¤¹¥Ý¥¤¥ó¥¿) ¤òÊÖ¤·¤Þ¤¹¡£
-¥×¥í¡¼¥Ö¥ë¡¼¥Á¥óÆâ¤Ë¤ª¤¤¤Æ¡¢ÏÀÍý¥Ç¥Ð¥¤¥¹¤¬Í­¸ú¤Ç¤¢¤ë¤«¤É¤¦¤«¤Î
-¥Á¥§¥Ã¥¯¤Ë¤Ï¡¢
-.Fn read_pnp_parms
-¤ò»ÈÍѤǤ­¤Þ¤¹¡£
-.Pp
-¥¢¥¿¥Ã¥Á (attach) ¥ë¡¼¥Á¥ó¤Ï¡¢
-PnP ¥«¡¼¥É¤ò ISA ¥¢¥¯¥»¥¹²Äǽ¤Ë¤¹¤ë¡¢
-ÀßÄê¤ò¼èÆÀ¤¹¤ë¡¢¥Ç¥Ð¥¤¥¹¤Î ISA ¥É¥é¥¤¥Ð¤ò¸Æ¤Ö¡¢
-¤È¤¤¤Ã¤¿É¬Íפʽé´ü²½¤ò¤¹¤Ù¤Æ¹Ô¤¦¤³¤È¤¬É¬ÍפǤ¹¡£
-.Pp
-¼¡¤Î¥ë¡¼¥Á¥ó¤È¥Ç¡¼¥¿¹½Â¤¤¬»ÈÍѤǤ­¤Þ¤¹¡£
-.Bl -tag -width "xxxxxxxxxx"
-.It Dv struct pnp_cinfo
-¤³¤Î¥Ç¡¼¥¿¹½Â¤
-.Po
-.Pa /usr/i386/isa/pnp.h
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë
-.Pc
-¤Ï¡¢
-PnP ÏÀÍý¥Ç¥Ð¥¤¥¹¤Ë´ØÏ¢¤¹¤ë¤¹¤Ù¤Æ¤Î¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£
-.It Fn read_pnp_parms "struct pnp_cinfo *d" "int ldn"
-¤³¤Î´Ø¿ô¤ÏÍ׵ᤵ¤ì¤¿ÏÀÍý¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤òÊÖ¤·¤Þ¤¹¡£
-¤³¤Î´Ø¿ô¤Ï¥×¥í¡¼¥Ö¤ª¤è¤Ó¥¢¥¿¥Ã¥Á¤Î
-¥ë¡¼¥Á¥ó¤«¤é¸Æ¤Ð¤ì¤ë¤³¤È¤À¤±¤òÁÛÄꤷ¤Æ¤¤¤ë¤¿¤á¡¢
-CSN ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£
-.It Fn write_pnp_parms "struct pnp_cinfo *d" "int ldn"
-¤³¤Î´Ø¿ô¤ÏÍ׵ᤵ¤ì¤¿ÏÀÍý¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤷ¤Þ¤¹¡£
-Ʊ»þ¤Ë¡¢¥«¡¼¥Í¥ë¤Î¶¯À©ÀßÄêÍѥơ¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¤ò¹¹¿·¤·¤Þ¤¹¡£
-BIOS ¤ä (userconfig ¤ò»ÈÍѤ¹¤ë) ¥æ¡¼¥¶¤ÎÊý¤¬¡¢
-¤É¤¦¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤Ù¤­¤«¤ò¤è¤¯ÃΤäƤ¤¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ÏÄ̾ï¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤òÊѹ¹¤¹¤Ù¤­¤Ç¤Ï
-.Em ¤¢¤ê¤Þ¤»¤ó¡£
-Æäˡ¢
-userconfig ¤Ë¤è¤ë¶¯À©ÀßÄê¥á¥«¥Ë¥º¥à¤òÇËþ¤µ¤»¤Æ¤·¤Þ¤¦¤¿¤á¡¢
-̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÏÀÍý¥Ç¥Ð¥¤¥¹¤ò
-.Em Í­¸ú¤Ë¤·¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ÏÏÀÍý¥Ç¥Ð¥¤¥¹¤ä¥Ý¡¼¥ÈÎΰè¤Ê¤É¤ò̵¸ú¤Ë¤·¤Æ¤â
-¤«¤Þ¤¤¤Þ¤»¤ó¤¬¡¢¤³¤ì¤Ï¡¢
-ÆÃÄê¤Î¥Ç¥Ð¥¤¥¹¤ä¥Ñ¥é¥á¡¼¥¿¤¬ÌäÂê¤òµ¯¤³¤¹¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë
-¸Â¤ë¤Ù¤­¤Ç¤¹¡£
-.It Fn enable_pnp_card void
-¤³¤Î´Ø¿ô¤Ï¥¢¥¿¥Ã¥Á¥ë¡¼¥Á¥óÆâÉô¤Ç
-.Em ¤Î¤ß¡¢
-¥«¡¼¥É¤Î ISA ¥Ý¡¼¥È/¥á¥â¥ê¤Î¥¢¥É¥ì¥¹Îΰè¤Ë¥¢¥¯¥»¥¹¤¹¤ëÁ°¤Ë
-.Em ¸Æ¤Ð¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
-.El
-.Pp
-.Sh ´ØÏ¢¹àÌÜ
-.Xr dset 8
-.Pq ÌõÃí: Çѻߤµ¤ì¤Þ¤·¤¿
-.Sh ¥Ð¥°
-¥Ó¥¸¥å¥¢¥ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ë¤Ï¡¢PnP ¥Ç¥Ð¥¤¥¹ÀßÄê¤Î¥µ¥Ý¡¼¥È¤¬
-¤¢¤ê¤Þ¤»¤ó¡£
-userconfig ¤Î¥³¥Þ¥ó¥É¤Ç PnP ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ì¤Ð
-ÁÇÀ²¤é¤·¤¤¤³¤È¤Ç¤·¤ç¤¦¡£
-.Sh ºî¼Ô
-PnP ¥µ¥Ý¡¼¥È¤Ï
-.An Sujal Patel
-¤¬½é¤á¤Ë¼ê³Ý¤±¤¿¤â¤Î¤ò¸µ¤Ë¡¢
-.An Luigi Rizzo
-¤¬½ñ¤­¤Þ¤·¤¿¡£
-.Sh Îò»Ë
-.Nm
-¤Ï
-.Fx 2.2.5
-¤Ë½é¤á¤ÆÅо줷¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/scd.4 b/ja_JP.eucJP/man/man4/man4.i386/scd.4
deleted file mode 100644
index afac49411a..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/scd.4
+++ /dev/null
@@ -1,65 +0,0 @@
-.\"
-.\" Copyright (c) 1995 Jordan K. Hubbard
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. The name of the author may not be used to endorse or promote products
-.\" derived from this software withough specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" %Id: scd.4,v 1.6 1998/03/12 07:30:37 charnier Exp %
-.\" jpman %Id: scd.4,v 1.3 1999/11/19 15:19:24 horikawa Stab %
-.\"
-.Dd January 1, 1995
-.Dt SCD 4 i386
-.Os FreeBSD 2.0.5
-.Sh ̾¾Î
-.Nm scd
-.Nd Sony CDU31/33 CD-ROM ¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device scd0 at isa? port 0x230 bio"
-.Sh ²òÀâ
-.Nm scd
-¥É¥é¥¤¥Ð¤Ï Sony CDU31 µÚ¤Ó CDU33A CD-ROM ¥É¥é¥¤¥Ö¤ËÂФ¹¤ë
-¥Ç¡¼¥¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£
-¥É¥é¥¤¥Ö¤Ï¡¢
-Sony ¸ÇÍ­¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥«¡¼¥É¤«¸ß´¹¥«¡¼¥É¤ËÀܳ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width /dev/[r]scd0a -compact
-.It Pa /dev/[r]scd0a
-¥Ç¥£¥¹¥¯¾å¤Î BSD ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£Ä̾CDROM ¥Ç¥£¥¹¥¯
-¾å¤Ë¤Ïñ°ì¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤ß¸ºß¤·¤Þ¤¹¡£
-.It Pa /dev/[r]scd0c
-raw ¥Ç¥Ð¥¤¥¹¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Pa /sys/i386/isa/scd.c
-.Sh ºî¼Ô
-Ëܥɥ饤¥Ð¤Ï¡¢
-.An Holger Veit
-¤È
-.An Brian Moore
-¤¬´ó£¤·¤¿¥³¡¼¥É¤òÍѤ¤¤Æ¡¢
-.An Mikael Hybsch
-¤¬½ñ¤­¤Þ¤·¤¿¡£
-.Sh Îò»Ë
-.Nm scd
-¥É¥é¥¤¥Ð¤Ï
-.Fx 2.0.5
-¤ÇºÇ½é¤ËÅо줷¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/spkr.4 b/ja_JP.eucJP/man/man4/man4.i386/spkr.4
deleted file mode 100644
index 9650f2401c..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/spkr.4
+++ /dev/null
@@ -1,234 +0,0 @@
-.\"
-.\" %Id: spkr.4,v 1.10 1998/03/12 07:30:38 charnier Exp %
-.\" jpman %Id: spkr.4,v 1.3 1999/08/15 14:20:39 horikawa Stab %
-.\"
-.Dd November 7, 1993
-.Dt SPKR 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm speaker ,
-.Nm spkr
-.Nd ¥³¥ó¥½¡¼¥ë¥¹¥Ô¡¼¥«¤Î¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd pseudo-device speaker
-.Fd #include <machine/speaker.h>
-.Sh ²òÀâ
-¥¹¥Ô¡¼¥«¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢
-.Tn FreeBSD
-¤¬Áö¤Ã¤Æ¤¤¤ë
-.Tn IBM-PC
-¸ß´¹ PC ¾å¤Ç¡¢
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥³¥ó¥½¡¼¥ë¥¹¥Ô¡¼¥«¤òÀ©¸æ¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
-.Pp
-¤¤¤«¤Ê¤ë¤È¤­¤Ç¤â¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤Ç¤­¤ë¤Î¤Ï
-¤¿¤À 1 ¤Ä¤Î¥×¥í¥»¥¹¤À¤±¤Ç¤¹¡£
-¤³¤Î¤¿¤á¡¢¤³¤Î¥Ç¥Ð¥¤¥¹¤Î¥í¥Ã¥¯¤È²òÊü¤Ë¤Ï¡¢
-.Xr open 2
-¤È
-.Xr close 2
-¤ò»ÈÍѤ·¤Þ¤¹¡£
-¾¤Î¥×¥í¥»¥¹¤¬¥Ç¥Ð¥¤¥¹¤òÆÈÀꤷ¤Æ¤¤¤ë»þ¤Ë¥ª¡¼¥×¥ó¤·¤è¤¦¤È¤¹¤ë¤È¡¢
-.Er EBUSY
-¥¨¥é¡¼¤ò¼¨¤·¤Æ -1 ¤òÊÖ¤·¤Þ¤¹¡£
-¥Ç¥Ð¥¤¥¹¤Ø¤Î½ñ¤­¹þ¤ß¤Ï¡¢ ASCII ʸ»ú¤Çñ½ã¤Ë¥á¥í¥Ç¥£¤òɽµ­¤·¤¿
-±éÁÕʸ»úÎó (`play string') ¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£
-.Xr ioctl 2
-¥ê¥¯¥¨¥¹¥È¤Ë¤è¤ëǤ°Õ¤Î¼þÇÈ¿ô¤Îȯ²»¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-.Pp
-ȯ²»¤¹¤ë¤³¤È¤Ç¥×¥í¥»¥Ã¥µ¤òÆÈÀꤹ¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-¼ÂºÝ¤Ë¤Ï¡¢¥É¥é¥¤¥Ð¤Ï PC ¥Ï¡¼¥É¥¦¥§¥¢¤¬²»¤òȯ¤·¤Æ¤¤¤ë´Ö¤Î
-¤Û¤È¤ó¤É¤Î»þ´Ö¤ò¥¹¥ê¡¼¥×¤·¤ÆÂԤäƤ¤¤Þ¤¹¡£
-¾¤Î¥×¥í¥»¥¹¤Ï¥É¥é¥¤¥Ð¤¬Áö¤Ã¤Æ¤¤¤ë´Ö¤Ë¥Ó¡¼¥×¤òÌĤ餹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Pp
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥¹¥Ô¡¼¥«¤Î¥Õ¥¡¥¤¥ëµ­½Ò»Ò¤ËÂФ·¤Æ
-.Xr ioctl 2
-¸Æ¤Ó½Ð¤·¤ò¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥¹¥Ô¡¼¥«¥É¥é¥¤¥Ð¤òľÀÜÀ©¸æ²Äǽ¤Ç¤¹¡£
-.Xr ioctl 2
-¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤ÎÄêµÁ¤Ï
-.Pa /usr/include/machine/speaker.h
-¤Ë¤¢¤ê¤Þ¤¹¡£
-¤³¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤Ë»È¤ï¤ì¤ë
-.Li tone_t
-¹½Â¤ÂΤˤϡ¢
-¼þÇÈ¿ô (¥Ø¥ë¥Ä) ¤È»ý³»þ´Ö (1/100 ÉÃñ°Ì¤Ç) ¤ò»ØÄꤹ¤ë
-2 ¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¤Þ¤¹¡£
-¼þÇÈ¿ô 0 ¤Ï¡¢µÙÉä¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
-.Pp
-¸½ºß¤½¤Î¤è¤¦¤Ê
-.Xr ioctl 2
-¸Æ¤Ó½Ð¤·¤Ï 2 ¤Ä¤¢¤ê¤Þ¤¹¡£
-.Dv SPKRTONE
-¤Ï¡¢Âè 3 °ú¿ô¤Ëñ°ì¤Î tone ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿ 1 ¸Ä¤ò¼õ¤±¼è¤ê¡¢
-¤½¤ì¤ò±éÁÕ¤·¤Þ¤¹¡£
-.Dv SPKRTUNE
-¤Ï¡¢Ã±°ì¤Î tone ¹½Â¤ÂÎÇÛÎó¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿ 1 ¸Ä¤ò¼õ¤±¼è¤ê¡¢
-¤½¤ì¤é¤ò½çÈ֤˱éÁÕ¤·¤Þ¤¹¡£
-¤³¤ÎÇÛÎó¤ÏËöÈø¤¬»ý³»þ´Ö 0 ¤Î¥á¥ó¥Ð¤Ç½ª¤Ã¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¹¡£
-.Pp
-±éÁÕʸ»úÎó¤Î¸ìË¡¤Ï
-.Tn IBM
-Advanced BASIC 2.0 ¤Î PLAY ʸ¤Î½¬´·¤òÌÏÊ路¤Æ¤¤¤Þ¤¹¡£
-PLAY ʸ¤Î
-.Li MB ,
-.Li MF ,
-.Li X
-Í×ÁǤϻþʬ³ä´Ä¶­¤Ç¤ÏÌò¤ËΩ¤¿¤Ê¤¤¤¿¤á½ü¤«¤ì¤Þ¤¹¡£
-`¥ª¥¯¥¿¡¼¥ÖÄɽ¾' µ¡Ç½¤È¥¹¥é¡¼µ­¹æ¤Ï¿·¤·¤¯Äɲ䵤줿¤â¤Î¤Ç¤¹¡£
-.Pp
- 7 ¥ª¥¯¥¿¡¼¥Ö 84 ²»¤¬»ÈÍѲÄǽ¤Ç 1-84 ¤ÎÈֹ椬¤Ä¤¤¤Æ¤¤¤Þ¤¹¡£
-.\" ¸¶Ê¸¤Ç¤Ï 1-83 ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£ send-pr ºÑ¤ß¡£
-¤½¤ì¤¾¤ì¤Î¥ª¥¯¥¿¡¼¥Ö¤Ï C ¤«¤é B ¤Þ¤Ç³¤¤¤Æ¤¤¤Æ 0-6 ¤ÎÈֹ椬¤Ä¤¤¤Æ¤¤¤Þ¤¹¡£
-²»³¬¤Ï A440 ¤Ë¹ç¤ï¤»¤ÆĴΧ¤µ¤ì¤Æ¤¤¤Æ¡¢¥ª¥¯¥¿¡¼¥Ö 3 ¤Ï¿¿Ãæ¤Î C ¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï±éÁÕµ¡Ç½¤ÏȾÉäβ»Éä¤òȯ²»¤·¡¢¤½¤Î¤¦¤ÁºÇ¸å¤Î 1/16 Éäϵ٤ߤޤ¹¡£
-.Pp
-±éÁÕʸ»úÎó¤Ïº¸¤«¤é±¦¤Ø¤È¡¢±éÁÕ¥³¥Þ¥ó¥É¥°¥ë¡¼¥×¤ÎϢ³¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£
-Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Þ¤»¤ó¡£±éÁÕ¥³¥Þ¥ó¥É¥°¥ë¡¼¥×¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹:
-.Bl -tag -width CDEFGABxx
-.It Li CDEFGAB
-A ¤«¤é G ¤Þ¤Ç¤Îʸ»ú¤ÏÂбþ¤¹¤ë²»¤ò¸½ºß¤Î¥ª¥¯¥¿¡¼¥Ö¤ÇÌĤ餷¤Þ¤¹¡£
-²»Éäʸ»ú¤Ë¤Ï¥ª¥×¥·¥ç¥ó¤Ç¡¢ # + - ¤Î¤¦¤Á¤¤¤º¤ì¤«¤Ò¤È¤Ä¤Î
-.Dq Em "Î×»þµ­¹æ"
-¤ò³¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¤¦¤ÁºÇ½é¤Î 2 ¤Ä¤Ï²»¤òȾ²»¹â¤¯¤·¡¢
-ºÇ¸å¤Î¤â¤Î¤Ï²»¤òȾ²»Ä㤯¤·¤Þ¤¹¡£
-¤Þ¤¿²»Éäʸ»ú¤Î¸å¤Ë¤Ï²»Ä¹¤òɽ¤¹¿ô»ú¤ÈÉÕÅÀµ­¹æ (¸å½Ò) ¤ò¤Ä¤±¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-²»Ä¹¤Ï¼¡¤Î L ¥³¥Þ¥ó¥É¤Î¾ì¹ç¤ÈƱÍͤ˲ò¼á¤µ¤ì¤Þ¤¹¡£
-.It Ns Li O Sy n
-¤â¤·
-.Sy n
-¤¬¿ô»ú¤Ê¤é¡¢°Ê¸å¤Î¥ª¥¯¥¿¡¼¥Ö¤òÀßÄꤷ¤Þ¤¹¡£
-.Sy n
-¤Ë
-.Li L
-¤Þ¤¿¤Ï
-.Li N
-¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢
-¥ª¥¯¥¿¡¼¥ÖÄɽ¾¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹
-(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ç¤¹)¡£
-¥ª¥¯¥¿¡¼¥ÖÄɽ¾¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë»þ¤Ï¡¢1 ÁȤβ»Éä¤ò²ò¼á¤¹¤ë¤È¡¢
-²»Éä´Ö¤Ç¤Î²»Äø¤Îº¹¤¬ºÇ¾®¤Ë¤Ê¤ë¤è¤¦¤ËɬÍפ˱þ¤¸¤Æ¥ª¥¯¥¿¡¼¥Ö¤¬ÊѲ½¤·¤Þ¤¹¡£
-¤·¤¿¤¬¤Ã¤Æ¡¢ ``olbc'' ¤Ï ``olb>c'' ¤Î¤è¤¦¤Ë¡¢
-``olcb'' ¤Ï ``olc<b'' ¤Î¤è¤¦¤Ë±éÁÕ¤µ¤ì¤Þ¤¹¡£
-¥ª¥¯¥¿¡¼¥ÖÄɽ¾¤Ï¡¢> ¤È < ¤È O[0123456] ¤Ë³¤¯¡¢1 ²»Éä¤Ë¤Ä¤¤¤Æ¤Ï̵¸ú¤Ç¤¹¡£
-(¥ª¥¯¥¿¡¼¥ÖÄɽ¾µ¡Ç½¤Ï
-.Tn IBM
-BASIC ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£)
-.It Li >
-¸½ºß¤Î¥ª¥¯¥¿¡¼¥Ö¤ò 1 ¤Ä¾å¤²¤Þ¤¹¡£
-.It Li <
-¸½ºß¤Î¥ª¥¯¥¿¡¼¥Ö¤ò 1 ¤Ä²¼¤²¤Þ¤¹¡£
-.It Ns Li N Sy n
-²»Éä
-.Sy n
-¤ò±éÁÕ¤·¤Þ¤¹¡£
-.Sy n
-¤Ï 1 ¤«¤é 84 ¤«¡¢¸½ºß¤Î²»Ä¹¤ÎµÙÉä¤È¤·¤Æ 0 ¤Ç¤¹¡£
-ÉÕÅÀµ­¹æ¤ò³¤±¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-.It Ns Li L Sy n
-²»Éä¤Î²»Ä¹¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï
-.Li L4
-¤Ç¡¢»Íʬ²»Éä¤Ç¤¹¡£
-¤³¤ÎÃÍ¤Ï 1 ¤«¤é 64 ¤Þ¤Ç¤¬Ç§¤á¤é¤ì¤Þ¤¹¡£
-.Li L1
-¤ÏÁ´²»Éä¤Ë¡¢
-.Li L2
-¤ÏÆóʬ²»Éä¤Ë¡¢
-.Li L4
-¤Ï»Íʬ²»Éä¤Ë¡¢¤Ê¤É¤ÈÀßÄꤵ¤ì¤Þ¤¹¡£
-.It Ns Li P Sy n
-.Sy n
-¤ò
-.Ns Li L Sy n
-¤ÈƱÍͤ˲ò¼á¤·¤¿µÙÉä¤Ç¤¹¡£ÉÕÅÀµ­¹æ¤ò¤Ä¤±¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-.Li ~
-¤È½ñ¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
-.It Ns Li T Sy n
-1 ʬ¤¢¤¿¤ê¤Î»Íʬ²»Éä¤Î¿ô¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï 120 ¤Ç¤¹¡£
-¤è¤¯¤¢¤ë¥Æ¥ó¥Ý¤Î²»³Ú̾:
-
-.Bd -literal -offset indent
- ¥Æ¥ó¥Ý ʬ¤¢¤¿¤êÇï¿ô
-¤È¤Æ¤âÃÙ¤¤ Larghissimo
- Largo 40-60
- Larghetto 60-66
- Grave
- Lento
- Adagio 66-76
-ÃÙ¤¤ Adagietto
- Andante 76-108
-Ã椯¤é¤¤ Andantino
- Moderato 108-120
-®¤¤ Allegretto
- Allegro 120-168
- Vivace
- Veloce
- Presto 168-208
-¤È¤Æ¤â®¤¤ Prestissimo
-.Ed
-.It Li M[LNS]
-Ä´²»¤òÀßÄꤷ¤Þ¤¹¡£
-.Li MN
-.Ns No ( Li N
-¤ÏÉáÄÌ (normal) ¤ò¼¨¤·¤Þ¤¹) ¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¡¢²»Éä¤ÎºÇ¸å 1/8 ¤òµÙ¤ß¤Þ¤¹¡£
-¥ì¥¬¡¼¥È (µÙ¤ß¤Ê¤·) ¤Ë¤¹¤ë¤Ë¤Ï
-.Li ML
-¤ò¡¢¥¹¥¿¥Ã¥«¡¼¥È (1/4 µÙ¤à) ¤Ë¤¹¤ë¤Ë¤Ï
-.Li MS
-¤òÀßÄê¤Ç¤­¤Þ¤¹¡£
-.El
-.Pp
-²»Éä (¤Ä¤Þ¤ê
-.Li CDEFGAB
-¤Þ¤¿¤Ï
-.Li N
-¥³¥Þ¥ó¥Éʸ»ú¥°¥ë¡¼¥×) ¤Ë¤ÏÉÕÅÀµ­¹æ (.) ¤ò³¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.\" dot ¤È¤Ï . ¤Ç¤¢¤ë¤¬ÆüËܸì¤Ç¤ÏÌÀ¼¨¤·¤Ê¤¤¤È¤ï¤«¤é¤Ê¤¤
-¤½¤ì¤¾¤ì¤ÎÉÕÅÀµ­¹æ¤Ï 1 ¤Ä¤Ë¤Ä¤­¡¢²»Éä¤Î²»Ä¹¤ò 1.5 Çܤˤ·¤Þ¤¹¡£
-¤·¤¿¤¬¤Ã¤Æ¡¢ÉÕÅÀµ­¹æ¤¬ 1 ¤Ä¤Ä¤¤¤¿²»Éä¤Ï¤Ä¤¤¤Æ¤¤¤Ê¤¤¤â¤Î¤Î 3/2 ¤Î²»Ä¹¤Ë¡¢
-2 ¤Ä¤Ä¤¤¤¿²»Éä¤Ï 9/4 ¤Î²»Ä¹¤Ë¡¢
-3 ¤Ä¤Ä¤¤¤¿²»Éä¤Ï 27/8 ¤Î²»Ä¹¤Ë¤Ê¤ê¤Þ¤¹¡£
-.Pp
-²»Éä¤ÈÉÕÅÀµ­¹æ¤Ë¤Ï¥¹¥é¡¼µ­¹æ (_) ¤ò³¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-¤³¤ì¤Ë¤è¤Ã¤Æ²»Éä¤Î¸å¤ËÉáÃʤ¢¤ë¾®¤µ¤ÊµÙ¤ß¤¬Ëä¤á¤é¤ì¤Æ¡¢
-²»Éä¤ò¼¡¤Î²»Éä¤Ë¥¹¥é¡¼¤Ç¤Ä¤Ê¤²¤Þ¤¹¡£(¥¹¥é¡¼µ¡Ç½¤Ï
-.Tn IBM
-BASIC ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£)
-.Pp
-±éÁÕʸ»úÎóÃæ¤Î¶õÇò¤Ïñ¤ËÈô¤Ð¤µ¤ì¤ë¤Î¤Ç¡¢
-³ÚÀá¤òʬ¤±¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Sh ¥Ð¥°
-²»Äø¥Æ¡¼¥Ö¥ë¤Î´Ý¤á¤ä¡¢È¯²»¥Ï¡¼¥É¥¦¥§¥¢¤ä¥¿¥¤¥Þ¥Ï¡¼¥É¥¦¥§¥¢¤Î
-¤³¤Ü¤ì (¤É¤Á¤é¤âÀºÅÙ¤ò¹Íθ¤·¤Æ¤¤¤Ê¤¤) ¤Î¤¿¤á¡¢
-²»Äø¤ÎÀµ³Î¤µ¤ä¥¿¥¤¥ß¥ó¥°¤Ï¿ô³ØŪ¤Ë¸·Ì©¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-²»ÎÌÄ´Àá¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-.Pp
-2 ¤Ä°Ê¾å¤ÎÉÕÅÀµ­¹æ¤ÎÆ°ºî¤Ïɸ½àŪ¤Ê²»³Úµ­¹æ¤òÈ¿±Ç¤·¤Æ¤¤¤Þ¤»¤ó¡£
-ɸ½àŪ¤Ë¤Ï¡¢¤½¤ì¤¾¤ì¤ÎÉÕÅÀµ­¹æ¤ÏÁ°¤ÎÉÕÅÀ¤ÎȾʬ¤À¤±²»Ä¹¤òŤ¯¤¹¤ë¤Î¤Ç¤¢¤ê¡¢
-ÉÕÅÀ¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¤¿²»Éä¤ÎȾʬ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-¤Ä¤Þ¤ê¡¢ÉÕÅÀµ­¹æ¤¬ 1 ¤Ä¤Ä¤¤¤¿²»Éä¤Ï¤Ä¤¤¤Æ¤¤¤Ê¤¤¤â¤Î¤Î 3/2 ¤Î²»Ä¹¤Ë¡¢
-2 ¤Ä¤Ä¤¤¤¿²»Éä¤Ï 7/4 ¤Î²»Ä¹¤Ë¡¢
-3 ¤Ä¤Ä¤¤¤¿²»Éä¤Ï 15/8 ¤Î²»Ä¹¤Ë¤Ê¤ê¤Þ¤¹¡£
-¤½¤ì¤Ç¤â¡¢3/2 Çܤˤ¹¤ë²ò¼á¤Ï
-.Tn IBM
-BASIC ¥Þ¥Ë¥å¥¢¥ë¤Ëµ­¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
-¸ß´¹À­¤Î¤¿¤á¤Ë¤½¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
-.Pp
-Èó¾ï¤ËŤ¤ (¥·¥¹¥Æ¥à¤ÎʪÍý I/O ¥Ö¥í¥Ã¥¯¤è¤ê¤âŤ¤) ±éÁÕʸ»úÎó¤Ç¤Ï¡¢
-¥Ö¥í¥Ã¥¯¶­³¦¤ò¤Þ¤¿¤¬¤ë¤¿¤á¤Ë¡¢
-²»Éä¤Î½¤¾þ¤ä¿ôÃͤ¬»þ¡¹´Ö°ã¤Ã¤Æ²ò¼á¤µ¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width /dev/speakerxx
-.It Pa /dev/speaker
-¥¹¥Ô¡¼¥«¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë
-.El
-.Sh ´ØÏ¢¹àÌÜ
-.Xr spkrtest 8
-.Sh ºî¼Ô
-.An Eric S. Raymond Aq esr@snark.thyrsus.com
-1990 ǯ 6 ·î
-.Sh °Ü¿¢¼Ô
-.An Andrew A. Chernov Aq ache@astral.msk.su
-.Sh Îò»Ë
-.Nm
-¥Ç¥Ð¥¤¥¹¤Ï
-.Fx 1.0
-¤Ë½é¤á¤ÆÅо줷¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/sr.4 b/ja_JP.eucJP/man/man4/man4.i386/sr.4
deleted file mode 100644
index d2d885505c..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/sr.4
+++ /dev/null
@@ -1,119 +0,0 @@
-.\"
-.\" Copyright (c) 1996 John Hay. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by John Hay.
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY John Hay ``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 John Hay 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.
-.\"
-.\" %Id: sr.4,v 1.10 1998/10/22 14:12:55 bde Exp %
-.\"
-.\" jpman %Id: sr.4,v 1.3 2000/08/27 09:00:10 koich Stab %
-.Dd July 4, 1996
-.Dt SR 4 i386
-.Os
-.Sh ̾¾Î
-.Nm sr
-.Nd Ʊ´ü RISCom/N2 / WANic 400/405 ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device sr0 at isa? port 0x300 net irq 10 iomem 0xd0000"
-.Cd "device sr1 at isa? port 0x310 net irq 11 flags 0x1 iomem 0xd0000"
-.Pp
-.Cd "pseudo-device sppp"
-.Sh ²òÀâ
-.Nm sr
-¥É¥é¥¤¥Ð¤Ï¡¢HD64570 ¥Á¥Ã¥×¤ò»ÈÍѤ·¤¿¡¢
-RISCom/N2 ISA ¥«¡¼¥É¤È WANic 400/405 PCI ¥«¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-.Pp
-¥ê¥ó¥¯¥ì¥Ù¥ë¤ÎÁؤˡ¢É¸½à¤Î
-.Tn FreeBSD
-sppp ¥³¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
-¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥È¥³¥ë¤Ï PPP ¤Ç¤¹¡£
-Cisco HDLC ¥×¥í¥È¥³¥ë¤Ï
-.Xr ifconfig 8
-¤Ë
-.Em link2
-¤òÄɲ乤뤳¤È¤Ë¤è¤Ã¤Æ»ÈÍѤǤ­¤Þ¤¹¡£
-.Pp
-.Em flags
-¥Õ¥£¡¼¥ë¥É¤Ï¾Êά²Äǽ¤Ç¤¹¡£¾Êά¤·¤¿¾ì¹ç¡¢¥É¥é¥¤¥Ð¤Ï¼¡¤Î¤è¤¦¤Ë²¾Äꤷ¤Þ¤¹:
-.Pp
-.Bl -hang -offset indent
-.It "¥«¡¼¥É¤Ë¤Ï 2 ¥Ý¡¼¥È¤¢¤ê¤Þ¤¹¡£"
-.It "¥·¥ê¥¢¥ë¥Ý¡¼¥È¤Î¥¯¥í¥Ã¥¯¤Ï³°Éô¤Î¤â¤Î¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢"
-Á÷¿®¤È¼õ¿®¤Î¥¯¥í¥Ã¥¯¤ÏƱ¤¸¤Ç¤¹¡£
-.El
-.Pp
-.Em flags
-¤Ï¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ç¤¢¤ê¡¢¥Ç¥Õ¥©¥ë¥È°Ê³°¤ÎÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë»ÈÍѤ·¤Þ¤¹¡£
-.Pp
-.Bl -hang -offset indent
-.It Em 0x01
-¥«¡¼¥É¤Ë¤Ï 1 ¥Ý¡¼¥È¤À¤±¤¢¤ê¤Þ¤¹¡£
-.It Em 0x10
-¥Ý¡¼¥È 0 ¤Ç¡¢Á÷¿®¤È¼õ¿®¤ÇÊÌ¡¹¤Î³°Éô¥¯¥í¥Ã¥¯¤ò»ÈÍѤ·¤Þ¤¹¡£
-.It Em 0x40
-¥Ý¡¼¥È 1 ¤Ç¡¢Á÷¿®¤È¼õ¿®¤ÇÊÌ¡¹¤Î³°Éô¥¯¥í¥Ã¥¯¤ò»ÈÍѤ·¤Þ¤¹¡£
-.El
-.Pp
-.Sh ÈÖ¹æ
-¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¥«¡¼¥ÉËè¤Ë 1 ¹Ô¤Î¤ß¤¬É¬ÍפǤ¹¡£
-ºÇ½é¤Î¥«¡¼¥É¤Î¥Ý¡¼¥È¤Ï sr0 ¤«¤é¿¶¤é¤ì¤Þ¤¹¡£
-¼¡¤Î¥«¡¼¥É¤ÎÈÖ¹æ¤Ï¡¢ºÇ½é¤Î¥«¡¼¥É¤Î½ª¤Ã¤¿½ê¤«¤é³¤±¤é¤ì¤Þ¤¹¡£
-¤Ä¤Þ¤ê¡¢¤â¤·ºÇ½é¤Î¥«¡¼¥É¤¬ 2 ¥Ý¡¼¥È¤Î¥«¡¼¥É¤Ê¤é¡¢¤½¤Î¥«¡¼¥É¤Ï sr0 ¤È sr1
-¤ò»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¼¡¤Î¥«¡¼¥É¤Ï sr2 ¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£
-.Pp
-¥«¡¼¥É¤Ï IRQ 3, 4, 5, 7, 10, 11, 12, 15 ¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-.Pp
-iomem Îΰè¤Ï¡¢16Kb ¥Ö¥í¥Ã¥¯¤Ç¤¢¤ê¡¢16Kb ¶­³¦¤«¤é»Ï¤Þ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-.Sh ¿ÇÃÇ
-.Bl -diag
-.It "sr%d: Warning illegal interrupt %d."
-¥«¡¼¥É¤¬»ØÄꤵ¤ì¤¿³ä¤ê¹þ¤ß¤ò»ÈÍѤǤ­¤Þ¤»¤ó¡£Â¾¤Î³ä¤ê¹þ¤ß¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£
-.El
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width /sys/i386/isa/ic/hd64570.h -compact
-.It Pa /sys/i386/isa/ic/hd64570.h
-.It Pa /sys/i386/isa/if_srregs.h
-.It Pa /sys/i386/isa/if_sr.c
-.It Pa /sys/pci/if_sr_p.c
-.El
-.Sh ¥Ð¥°
-¸½»þÅÀ¤Ç X.21 ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤À¤±¤ò»î¸³¤·¤Æ¤¤¤Þ¤¹¡£
-¾¤Î¤â¤Î¤Ç¤Ï¡¢¥¯¥í¥Ã¥¯ÁªÂò¥³¡¼¥É¤òÈùÄ´À°¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
-.Pp
-¤³¤Î¥³¡¼¥É¤Ë¤Ï¡¢¤ª¤½¤é¤¯ºÇŬ²½¤Î;ÃϤ¬¤¢¤ê¤Þ¤¹¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr ar 4 ,
-.Xr cx 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8 ,
-.Xr lsdev 8
-.Sh ºî¼Ô
-.Nm sr
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.An John Hay Aq jhay@FreeBSD.org
-¤¬ºîÀ®¤·¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/vx.4 b/ja_JP.eucJP/man/man4/man4.i386/vx.4
deleted file mode 100644
index 331b3c2ce6..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/vx.4
+++ /dev/null
@@ -1,102 +0,0 @@
-.\"
-.\" Copyright (c) 1996, Fred Gray
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by David Greenman.
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" %Id: vx.4,v 1.7 1998/03/12 07:30:39 charnier Exp %
-.\" jpman %Id: vx.4,v 1.3 1999/08/15 14:20:25 horikawa Stab %
-.\"
-.Dd January 15, 1996
-.Dt VX 4 i386
-.Os
-.Sh ̾¾Î
-.Nm vx
-.Nd
-PCI ¥¤¡¼¥µ¥Í¥Ã¥È¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð
-.Sh ½ñ¼°
-.Cd "device vx0"
-.Sh ²òÀâ
-.Nm vx
-¥É¥é¥¤¥Ð¤Ï¡¢
-3Com ¤Î 3c590 ¤È 3c595¡¢¤¹¤Ê¤ï¤Á EtherLink III ¤È Fast EtherLink III ¤Î
-PCI ¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É¤ò¡¢10 Mbps ¥â¡¼¥É¤Ç¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
-¼¡¤Î
-.Xr ifconfig 8
-¥³¥Þ¥ó¥É¤Ø¤Î link ¥Õ¥é¥°¤Ë¤è¤Ã¤Æ¡¢ÇÞÂΤòÁªÂò²Äǽ¤Ç¤¹¡£
-.Pp
-.Bl -tag -width LINK0X -compact
-.It Em link0
-AUI ¥Ý¡¼¥È¤ò»ÈÍѤ·¤Þ¤¹¡£
-.It Em link1
-BNC ¥Ý¡¼¥È¤ò»ÈÍѤ·¤Þ¤¹¡£
-.It Em link2
-UTP ¥Ý¡¼¥È¤ò»ÈÍѤ·¤Þ¤¹¡£
-.El
-.Sh ¿ÇÃÇ
-.Bl -diag
-.It "vx%d: not configured; kernel is built for only %d devices."
-¥·¥¹¥Æ¥à¤Ë¤¢¤ë¥¢¥À¥×¥¿¿ô¤ËÂФ·¤Æ¡¢¥«¡¼¥Í¥ëÀßÄê¥Õ¥¡¥¤¥ëÆâ¤Î
-¥Ç¥Ð¥¤¥¹¿ô¤¬½½Ê¬¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¥Ç¥Ð¥¤¥¹¤òÄɲä·¡¢
-¥«¡¼¥Í¥ë¤òºÆ¹½ÃÛ¤·¤Æ¥ê¥Ö¡¼¥È¤·¤Æ²¼¤µ¤¤¡£
-.Pp
-¾¤Î¤¹¤Ù¤Æ¤Î¿ÇÃǤϥϡ¼¥É¥¦¥§¥¢¤ÎÌäÂ꤫¥É¥é¥¤¥Ð¤Î¥Ð¥°¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
-.Sh ·Ù¹ð
-½é´ü¤Î¤¤¤¯¤Ä¤«¤Î 3c590 ¥«¡¼¥É¤Ë¤ÏÌäÂ꤬¤¢¤ê¡¢
-¼õ¿®¤¢¤Õ¤ì¤ÎÈï³²¤ò¼õ¤±¤Þ¤¹¡£
-¤½¤Î·ë²Ì¤È¤·¤Æ¡¢¥Ñ¥±¥Ã¥È»¼º¤ò°ú¤­µ¯¤³¤·¤Þ¤¹¡£
-ºî¼Ô¤Ï¡¢3 Com ¤«¤éÄ󶡤µ¤ì¤ë¾ðÊó¤ò´ð¤Ë¡¢
-¤³¤Î¤è¤¦¤Ê¥ê¥Ó¥¸¥ç¥ó¤Î¸¡ºº¤ò¼ÂÁõ¤·¤è¤¦¤È¤·¤Þ¤·¤¿¡£
-¤·¤«¤·¡¢¸¡ºº¤Î½ÐÎϤÎÂçÉôʬ¤Ïµ¿¤ï¤·¤¤·Ù¹ð¤Ë¤¹¤®¤Þ¤»¤ó¡£
-.Pp
-¥«¡¼¥É¤Î¥Ð¥¹¥Þ¥¹¥¿¥ê¥ó¥°µ¡Ç½¤ò»ÈÍѤ»¤º
-¥Ý¡¼¥ê¥ó¥°¥â¡¼¥É¤Î I/O ¤Î¤ß¤ò»ÈÍѤ¹¤ë¤³¤È¤«¤é¡¢
-¤³¤Î¥É¥é¥¤¥Ð¤ÎÀ­Ç½¤Ï¤¤¤¯¤é¤«À©¸Â¤µ¤ì¤Þ¤¹¡£
-.Sh ¥Ð¥°
-.Nm vx
-¥É¥é¥¤¥Ð¤Ï¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¾å¤Ç¥ï¡¼¥à¥Ö¡¼¥È¤Î¸å¡¢¥¢¥À¥×¥¿¤òÀµ¤·¤¯
-¥ê¥»¥Ã¥È¤·¤Ê¤¤¤³¤È¤¬ÃΤé¤ì¤Æ¤¤¤Þ¤¹¡£
-.Pp
-.Nm vx
-¥É¥é¥¤¥Ð¤Ï¡¢¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤È¤µ¤ì¤ë¥«¡¼¥É¤Î¤¹¤Ù¤Æ¤Î¥â¥Ç¥ë¤Ç
-Å°ÄìŪ¤Ë¥Æ¥¹¥È¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-.Sh Îò»Ë
-.Nm vx
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï
-.Fx 2.1
-¤ÇºÇ½é¤ËÅо줷¤Þ¤·¤¿¡£
-¤³¤ì¤Ï
-.Nm ep
-¥É¥é¥¤¥Ð¤ËͳÍ褷¤Æ¤¤¤Æ¡¢Â¿¤¯¤ÎÀ©¸Â¤ò·Ñ¾µ¤·¤Æ¤¤¤Þ¤¹¡£
-.Sh ºî¼Ô
-.Nm vx
-¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï¡¢
-.An Herb Peyerl
-¤Îºî¶È¤È¤½¤Î¾¤Î¿¤¯¤Î¿Í¤Î±ç½õ¤ò´ð¤Ë
-.An Fred Gray Aq fgray@rice.edu
-¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/man/man4/man4.i386/wd.4 b/ja_JP.eucJP/man/man4/man4.i386/wd.4
deleted file mode 100644
index ccf0d1d9da..0000000000
--- a/ja_JP.eucJP/man/man4/man4.i386/wd.4
+++ /dev/null
@@ -1,106 +0,0 @@
-.\"
-.\" Copyright (c) 1994 Wilko Bulte
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. The name of the author may not be used to endorse or promote products
-.\" derived from this software withough specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-.\" IN NO EVENT SHALL THE AUTHOR 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.
-.\"
-.\" %Id: wd.4,v 1.10 1998/10/22 14:12:55 bde Exp %
-.\" jpman %Id: wd.4,v 1.3 1999/08/18 16:40:15 horikawa Stab %
-.\"
-.Dd August 31, 1994
-.Dt WD 4 i386
-.Os FreeBSD
-.Sh ̾¾Î
-.Nm wd
-.Nd
-°ìÈÌŪ¤Ê WD100x/IDE ¥Ç¥£¥¹¥¯¥³¥ó¥È¥í¡¼¥éÍѥɥ饤¥Ð
-.Sh ½ñ¼°
-.Cd "controller wdc0 at isa? port" \&"IO_WD1\&" bio irq 14
-.Cd "disk wd0 at wdc0 drive 0
-.Cd "disk wd1 at wdc0 drive 1
-.Pp
-CMD640b IDE ¥³¥ó¥È¥í¡¼¥éÍÑ:
-.Cd "options" \&"CMD640\&"
-.Sh ²òÀâ
-¤³¤Î¥É¥é¥¤¥Ð¤Ç¡¢Western Digital WD100x ¥·¥ê¡¼¥º¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë
-¥³¥ó¥È¥í¡¼¥é¤ËÀܳ¤µ¤ì¤¿¥Ç¥£¥¹¥¯¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-¤³¤ì¤Ë¤Ï¡¢WD1003 ST412 ¥³¥ó¥È¥í¡¼¥é¡¢WD1007 ESDI ¥³¥ó¥È¥í¡¼¥é¡¢
-¤½¤·¤Æ¤Û¤È¤ó¤É¤Î¥Þ¥¶¡¼¥Ü¡¼¥É¤Ë¤¢¤ë°ìÈÌŪ¤Ê IDE ¥³¥ó¥È¥í¡¼¥é¤ò´Þ¤ß¤Þ¤¹¡£
-.Pp
-WD100x ¥·¥ê¡¼¥º¤È¤Î¸ß´¹À­¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ä̾¥³¥ó¥È¥í¡¼¥é¤Î»ñÎÁ¤ËÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-.Ar flags
-¥Ñ¥é¥á¡¼¥¿¤ò»È¤Ã¤Æ¡¢¥É¥é¥¤¥Ð¤Ë¥Ò¥ó¥È¤ä»ØÎá¤òÅÁ¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-.Pp
-16 ¥Ó¥Ã¥ÈÀ°¿ô¤Î¥Õ¥é¥°¤¬¥É¥é¥¤¥ÖËè¤Ë¤¢¤ê¡¢
-¤½¤ì¤¾¤ì¤Ë 4 (ÌõÃí: ¼ÂºÝ¤Ë¤Ï 6) ¸Ä¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¤Þ¤¹:
-.\" By mzaki@e-mail.ne.jp (Mar 1 1999)
-.Bl -tag -width 0x0000 -offset 1c
-.It 0x8000
-¥É¥é¥¤¥Ö¤Î 32 ¥Ó¥Ã¥ÈžÁ÷µ¡Ç½¤¬»È¤¨¤ì¤Ð»È¤¤¤Þ¤¹¡£
-.It 0x4000
-¥É¥é¥¤¥Ö¤¬¥¹¥ê¡¼¥×¥â¡¼¥É¤«¤é椷¤Æ¤¤¤ë¤È¤³¤í¤Ç¤¢¤ë¤è¤¦¤Ê¤é¤Ð¡¢
-º®Í𤷤Ƥ¤¤ë¤È¤ß¤Ê¤·¤ÆºÆ½é´ü²½¤·¤Þ¤¹¡£
-.It 0x2000
-ºÇ¶á¤Î PCI ¥Á¥Ã¥×¥»¥Ã¥È¤Ë¤¢¤ë¥Ð¥¹¥Þ¥¹¥¿ DMA µ¡Ç½¤¬¤¢¤ë¤«Ä´¤Ù¤ÆÍøÍѤ·¤Þ¤¹¡£
-.It 0x1000
-¥Ç¥Õ¥©¥ë¥È¤Î CHS ¥¢¥É¥ì¥Ã¥·¥ó¥°¤Ç¤Ï¤Ê¤¯¡¢LBA ¥¢¥É¥ì¥Ã¥·¥ó¥°¤ò»È¤¤¤Þ¤¹¡£
-.It 0x0f00
-¥Ø¥Ã¥É¤Î¿ô¤ò ((flags & 0xf00)>>8) ¤È¸«¤Ê¤·¤Æ¡¢
-¤½¤ì¤Ë¹ç¤¦¤è¤¦¤Ë¥·¥ê¥ó¥À¿ô¤ò·×»»¤·Ä¾¤·¤Þ¤¹¡£
-.It 0x00ff
-¥É¥é¥¤¥Ö¤Î¥Þ¥ë¥Á¥»¥¯¥¿Å¾Á÷¥â¡¼¥É¤¬»È¤¨¤ì¤Ð»È¤¤¤Þ¤¹¡£
-ºÇÂç¤Ç (flags & 0x00ff) ¥»¥¯¥¿¤ÎžÁ÷¤ò»î¤ß¤Þ¤¹¡£
-.El
-.Pp
-¤³¤Î¥Õ¥é¥°¤Ï drive ¹Ô¤Ë 16 ¥Ó¥Ã¥ÈÀ°¿ô¤Ç»ØÄꤹ¤ë¤«¡¢
-¤¢¤ë¤¤¤Ï controller ¹Ô¤Ë 32 ¥Ó¥Ã¥ÈÀ°¿ô¤Ç»ØÄꤷ¤Þ¤¹¡£
-¤³¤Î¾ì¹ç¡¢¾å°Ì 16 ¥Ó¥Ã¥È¤¬ÈÖ¹æ¤ÎÂ礭¤Ê¥É¥é¥¤¥Ö¤ËŬÍѤµ¤ì¤Þ¤¹¡£
-.Pp
-.Dq Dv CMD640
-¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢CMD640b IDE ¥³¥ó¥È¥í¡¼¥é¤Î·ç´Ù¤ËÂн褹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢
-¤«¤Ä PCI ¥µ¥Ö¥·¥¹¥Æ¥à¤¬¤³¤Î¥Á¥Ã¥×¤ò¸¡½Ð¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
-¥×¥é¥¤¥Þ¥ê¤È¥»¥«¥ó¥À¥ê¤Î¥³¥ó¥È¥í¡¼¥é¤ÏƱ»þ¤Ë¤Ï»È¤ï¤ì¤Þ¤»¤ó¡£
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width Pa -compact
-.It Pa /dev/wd*
-¥Ç¥£¥¹¥¯¤Î¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¥Î¡¼¥É
-.It Pa /dev/rwd*
-¥Ç¥£¥¹¥¯¤Î¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¥Î¡¼¥É
-.It Pa /sys/i386/conf/GENERIC
-.\" ¸¶Ê¸
-.\" sample generic kernel config file for (a.o.) wd based systems
-.\" ¤Î a.o. ¤Ã¤Æ¤Ê¤ó¤Ç¤·¤ç¤¦¡©
-wd ¤Ë¤è¤ë¥·¥¹¥Æ¥à¤Î¤¿¤á¤Î¥¸¥§¥Í¥ê¥Ã¥¯¥«¡¼¥Í¥ë¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë
-.It Pa /sys/i386/isa/wd.c
-¥É¥é¥¤¥Ð¤Î¥½¡¼¥¹
-.El
-.Sh ´ØÏ¢¹àÌÜ
-.Xr bad144 8
-.Sh Ãí¼á
-¤³¤Î¥³¥ó¥È¥í¡¼¥é¤È¥Ç¥£¥¹¥¯¤ÎÁȹç¤ï¤»¤Ï¡¢
-¼«Æ°Åª¤Ë¥Ð¥Ã¥É¥Ö¥í¥Ã¥¯¤ò½èÍý¤ò¤¹¤ë¤¿¤á¤Îµ¡¹½¤òÈ÷¤¨¤Æ¤¤¤Þ¤»¤ó¡£
-¥Ð¥Ã¥É¥Ö¥í¥Ã¥¯¤òÄ´¤Ù¤ë¤Ë¤Ï
-.Xr bad144 8
-¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
diff --git a/ja_JP.eucJP/man/man8/man8.i386/apm.8 b/ja_JP.eucJP/man/man8/man8.i386/apm.8
deleted file mode 100644
index eb4eb322c9..0000000000
--- a/ja_JP.eucJP/man/man8/man8.i386/apm.8
+++ /dev/null
@@ -1,157 +0,0 @@
-.\" LP (Laptop Package)
-.\"
-.\" Copyright (c) 1994 by Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org>
-.\"
-.\" This software may be used, modified, copied, and distributed, in
-.\" both source and binary form provided that the above copyright and
-.\" these terms are retained. Under no circumstances is the author
-.\" responsible for the proper functioning of this software, nor does
-.\" the author assume any responsibility for damages incurred with its
-.\"
-.\" %FreeBSD: src/usr.sbin/apm/apm.8,v 1.16.2.2 2001/03/06 14:21:02 ru Exp %
-.\"
-.\" use.
-.\"
-.\" jpman %Id: apm.8,v 1.4 1997/07/26 21:52:01 horikawa Stab %
-.Dd November 1, 1994
-.Dt APM 8
-.Os
-.Sh ̾¾Î
-.Nm apm , zzz
-.Nd APM BIOS ¤ÎÀ©¸æ¤ò¹Ô¤¤¡¢¤½¤Î¾ðÊó¤òɽ¼¨¤¹¤ë
-.Sh ½ñ¼°
-.Nm
-.Op Fl ablstzZ
-.Op Fl d Ar enable
-.Op Fl e Ar enable
-.Op Fl h Ar enable
-.Op Fl r Ar delta
-.Pp
-.Nm zzz
-.Sh ²òÀâ
-.Nm
-¤Ï¡¢ Intel / Microsoft APM (Advanced Power Management) BIOS ¤òÀ©¸æ¤·¡¢
-¥é¥Ã¥×¥È¥Ã¥× PC ¾å¤Î APM ¤Î¸½ºß¤Î¾õÂÖ¤òɽ¼¨¤·¤Þ¤¹¡£
-.Nm zzz
-¤Ï¡¢ APM À©¸æ¤Ë¤è¤Ã¤Æ¡¢¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤·¤Þ¤¹¡£
-.Pp
-°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬
-.Nm
-¤ÇÍøÍѲÄǽ¤Ç¤¹
-(
-.Nm zzz
-¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤Ï¤¢¤ê¤Þ¤»¤ó)¡£
-¥ª¥×¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢
-.Nm
-¤Ï¡¢¸½ºß¤Î APM ¤Î¾õÂÖ¤ä¾ðÊó¤ò¾éĹ¥â¡¼¥É¤Çɽ¼¨¤·¤Þ¤¹¡£
-Ê£¿ô¤Îɽ¼¨¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
-¤³¤³¤Ë¼¨¤¹½çÈÖ¤ÇÃͤò 1 ¹Ô¤Ë 1 ¤Ä¤º¤Äɽ¼¨¤·¤Þ¤¹¡£
-.Bl -tag -width indent
-.It Fl a
-¸½ºß¤Î AC ÅŸ»¤Î¾õÂÖ¤òÀ°¿ôÃͤÇɽ¼¨¤·¤Þ¤¹¡£
-0, 1¤¬¤½¤ì¤¾¤ì
-.Dq ³°¤ì¤Æ¤¤¤ë (off-line)
-¾õÂÖ¤È
-.Dq ¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë (on-line)
-¾õÂÖ¤ò¤¢¤é¤ï¤·¤Þ¤¹¡£
-.It Fl b
-À°¿ôÃͤǡ¢¸½ºß¤Î¥Ð¥Ã¥Æ¥ê¾õÂÖ¤òɽ¼¨¤·¤Þ¤¹¡£
-0, 1, 2, 3¤È¤¤¤¦ÃͤϤ½¤ì¤¾¤ì¡¢
-.Dq Îɹ¥ (high)
-¾õÂÖ¡¢
-.Dq Äã¥Ð¥Ã¥Æ¥ê (low)
-¾õÂÖ¡¢
-.Dq ´í¸± (critical)
-¾õÂÖ¡¢
-.Dq ½¼ÅÅ (charging)
-¾õÂÖ¤ò¤¢¤é¤ï¤·¤Þ¤¹¡£
-.It Fl d Ar enable
-Ä̾ï¤Î¥µ¥¹¥Ú¥ó¥É¤È¥Ç¥£¥¹¥×¥ì¥¤¤Î¥µ¥¹¥Ú¥ó¥É¤òÊ̤˰·¤ï¤Ê¤¤/Ê̤˰·¤¦¤ò¡¢
-¥Ö¡¼¥ëÃÍ
-.Ar enable
-¤ÇÀ©¸æ¤·¤Þ¤¹¡£
-¤³¤Î°ú¿ô¤Ï Libretto 30CT ¤ä 50CT ¤ò´Þ¤à
-¿¼ï¤Î¥é¥Ã¥×¥È¥Ã¥×¤ÇÆ°ºî¤·¤Ê¤¤¤è¤¦¤Ç¤¹¡£
-.It Fl e Ar enable
-¥Ö¡¼¥ëÃÍ°ú¿ô
-.Ar enable
-¤Ë°Í¸¤·¤Æ¡¢¥³¥ó¥Ô¥å¡¼¥¿¤Î APM µ¡Ç½¤ÎÍ­¸ú/̵¸ú¤òÀÚ¤êÂؤ¨¤Þ¤¹¡£
-.It Fl h Ar enable
-¥Ö¡¼¥ëÃÍ°ú¿ô
-.Ar enable
-¤Ë°Í¸¤·¤Æ¡¢
-¥«¡¼¥Í¥ë¥³¥ó¥Æ¥­¥¹¥È¥¹¥¤¥Ã¥Á¥ë¡¼¥Á¥óÃæ¤Î HLT Ì¿Îá¤ÎÍ­¸ú/̵¸ú¤òÀÚ¤êÂؤ¨¤Þ¤¹¡£
-¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤Û¤È¤ó¤ÉÁ´¤Æ¤Î APM ¤Î¼ÂÁõ¤Ë¤ª¤¤¤Æ¤ÏÉÔÍפǤ¹¤¬¡¢
-.Dq Pa Idle CPU
-¸Æ¤Ó½Ð¤·¤¬ CPU ¥¯¥í¥Ã¥¯¤Î¸ºÂ®¤È HLT Ì¿Îá¤òƱ»þ¤Ë¼Â¹Ô¤¹¤ë¾ì¹ç¤Ï¡¢
-¤½¤Î¥Ô¡¼¥¯À­Ç½¤Î¸º¾¯¤«¤é¥·¥¹¥Æ¥à¤ò¤Þ¤â¤ë¤¿¤á¤Ë
-.Fl t
-¥ª¥×¥·¥ç¥ó¤¬É¬ÍפǤ¹¡£
-¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢
-.Xr apm 4
-¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-.It Fl l
-¸½ºß¤Î¥Ð¥Ã¥Æ¥ê¤Î»Ä¤ê³ä¹ç¤òɽ¼¨¤·¤Þ¤¹¡£
-¤â¤·¡¢¤¢¤Ê¤¿¤Î¥é¥Ã¥×¥È¥Ã¥×¤¬¤³¤Îµ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤»þ¤Ë¤Ï¡¢
-255 ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
-.It Fl r Ar delta
-¥é¥Ã¥×¥È¥Ã¥×¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢
-¥ì¥¸¥å¡¼¥à¥¦¥§¥¤¥¯¥¢¥Ã¥×¥¿¥¤¥Þ¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£
-¤³¤ì¤Ë¤è¤ê¥é¥Ã¥×¥È¥Ã¥×¤¬¥µ¥¹¥Ú¥ó¥É¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢
-¥é¥Ã¥×¥È¥Ã¥×¤¬¥µ¥¹¥Ú¥ó¥É¤µ¤ì
-¥µ¥¹¥Ú¥ó¥É¤«¤é¤Î¥ì¥¸¥å¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
-.Ar delta
-Éøå¤Ë¥é¥Ã¥×¥È¥Ã¥×¤¬¥ì¥¸¥å¡¼¥à¤·¤Þ¤¹
-(¥µ¥¹¥Ú¥ó¥É¤·¤¿»þ¹ï¤òµ¯ÅÀ¤È¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢
-ËÜ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿»þ´Ö¤òµ¯ÅÀ¤È¤·¤Þ¤¹)¡£
-.It Fl s
-APM ¥µ¥Ý¡¼¥È¾õÂÖ¤òÀ°¿ôÃͤÇɽ¼¨¤·¤Þ¤¹¡£0, 1 ¤È¤¤¤¦ÃͤϤ½¤ì¤¾¤ì¡¢
-.Dq ÍøÍÑÉÔ²Ä (disabled)
-¾õÂÖ
-.Dq ÍøÍѲÄǽ (enabled)
-¾õÂÖ
-¤ò¤¢¤é¤ï¤·¤Þ¤¹¡£
-.It Fl t
-»Ä¤ê¤Î¥Ð¥Ã¥Æ¥ê»þ´Ö¤òͽ¬¤·¤Æ¡¢ÉÃñ°Ì¤Çɽ¼¨¤·¤Þ¤¹¡£
-ʬ¤«¤é¤Ê¤¤¾ì¹ç¤Ë¤Ï -1 ¤òɽ¼¨¤·¤Þ¤¹¡£
-.It Fl Z
-¥¹¥¿¥ó¥Ð¥¤¥â¡¼¥É¤Ë°Ü¹Ô¤·¤Þ¤¹¡£
-Ëܥ⡼¥É¤Ç¤Ï¥Õ¥ë¥Ñ¥ï¡¼¥â¡¼¥É̤Ëþ¡¢¥µ¥¹¥Ú¥ó¥É¥â¡¼¥É°Ê¾å¤ÎÅÅÎϾÃÈñ¤È¤Ê¤ê¤Þ¤¹¡£
-¥¿¥¤¥Þ¤â¤·¤¯¤Ï¥ê¥ó¥°¥¤¥ó¥¸¥±¡¼¥¿¥¤¥Ù¥ó¥È¤Ë¤è¤ê¡¢
-¤³¤Î¾õÂÖ¤«¤é¥ì¥¸¥å¡¼¥à¤¹¤ëµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥é¥Ã¥×¥È¥Ã¥×¤¬¤¢¤ê¤Þ¤¹¡£
-apm ¤Î½ÐÎϤˤè¤ê¡¢¥é¥Ã¥×¥È¥Ã¥×¤¬²¿¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤È¼çÄ¥¤·¤Æ¤¤¤ë¤«¤¬Ê¬¤«¤ê¤Þ¤¹¡£
-.It Fl z
-¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢
-.Nm zzz
-¤ÈÅù²Á¤Ç¤¹¡£
-.El
-.Sh ¥Ð¥°
-¤¤¤¯¤Ä¤«¤Î APM ¼ÂÁõ¤Ç¤Ï¡¢
-.Nm
-¤¬É¬ÍפȤ¹¤ë¥Ñ¥é¥á¡¼¥¿¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ë±÷¤¤¤Æ¤Ï¡¢
-.Nm
-¤Ï¡¢¤½¤ì¤é¤òÃΤé¤Ê¤¤¤Èɽ¼¨¤·¤Þ¤¹¡£
-.Pp
-¤¤¤¯¤Ä¤«¤Î APM ¼ÂÁõ¤Ç¤Ï¡¢ÅŸ»¥¹¥¤¥Ã¥Á¤ò²¡¤·¤¿¤³¤È¤ä¥«¥Ð¡¼¤¬
-ÊĤá¤é¤ì¤¿¤³¤È¤Ê¤É¤Î¥¤¥Ù¥ó¥È¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£
-¤½¤Î¤è¤¦¤Ê¼ÂÁõ¤Ë±÷¤¤¤Æ¤Ï¡¢
-¥·¥¹¥Æ¥à¤Ï
-.Nm
-¤«
-.Nm zzz
-.Ar ¤À¤±¤ò
-¤Ä¤«¤Ã¤Æ¥µ¥¹¥Ú¥ó¥É¤¹¤ë
-.Ar ¤Ù¤­
-¤Ç¤¹¡£
-.Sh Ãí
-.Xr apmconf 8
-¤Ï
-.Xr apm 8
-¤Ë¥Þ¡¼¥¸¤µ¤ì¡¢
-.Xr apm 8
-¤¬Á´µ¡Ç½¤òÃÖ¤­´¹¤¨¤Þ¤·¤¿¡£
-.Sh ´ØÏ¢¹àÌÜ
-.Xr apm 4
-.Sh ºî¼Ô
-.An Tatsumi Hosokawa Aq hosokawa@jp.FreeBSD.org
diff --git a/ja_JP.eucJP/man/man8/man8.i386/apmd.8 b/ja_JP.eucJP/man/man8/man8.i386/apmd.8
deleted file mode 100644
index 01e1d1830a..0000000000
--- a/ja_JP.eucJP/man/man8/man8.i386/apmd.8
+++ /dev/null
@@ -1,296 +0,0 @@
-.\" Copyright (c) 1999 Mitsuru IWASAKI <iwasaki@FreeBSD.org>
-.\" Copyright (c) 1999 KOIE Hidetaka <koie@suri.co.jp>
-.\" Copyright (c) 1999 Yoshihiko SARUMARU Aq <mistral@imasy.or.jp>
-.\" Copyright (c) 1999 Norihiro Kumagai <kuma@nk.rim.or.jp>
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)apmd.8 1.1 (FreeBSD) 6/28/99
-.\" %FreeBSD: src/usr.sbin/apmd/apmd.8,v 1.7.2.3 2001/01/18 17:30:15 ru Exp %
-.\"
-.\" jpman %Id: apmd.8,v 1.3 1999/09/15 14:27:48 yt-kage Stab %
-.\"
-.Dd June 28, 1999
-.Dt APMD 8
-.Os
-.Sh ̾¾Î
-.Nm apmd
-.Nd Advanced Power Management ´Æ»ë¥Ç¡¼¥â¥ó
-.Sh ½ñ¼°
-.Nm
-.Op Fl d
-.Op Fl f file
-.Op Fl v
-.Sh ²òÀâ
-.Nm
-¤Ï¡¢»ØÄꤷ¤¿ Advanced Power Management
-.Pq APM
-¥¤¥Ù¥ó¥È¤ò´Æ»ë¤·¡¢
-¤¤¤º¤ì¤«¤Î¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¾ì¹ç¡¢
-Âбþ¤¹¤ë¥³¥Þ¥ó¥É¥·¡¼¥±¥ó¥¹¤ò¼Â¹Ô¤·¤Þ¤¹¡£
-ÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¤Î¤ß¤¬
-.Nm
-¤ØÄÌÃΤµ¤ì¡¢¤½¤ì°Ê³°¤Î¥¤¥Ù¥ó¥È¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
-APM BIOS ¤Ë¤è¤Ã¤Æȯ¹Ô¤µ¤ì¤¿
-¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¡¢
-.Nm
-¤ÏÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¥·¡¼¥±¥ó¥¹¤ò¼Â¹Ô¤·¤Þ¤¹¡£
-.Nm
-¤ò¥µ¥¹¥Ú¥ó¥É/¥¹¥¿¥ó¥Ð¥¤¤ò´Æ»ë¤¹¤ë¤è¤¦¤Ë¤·¤Æµ¯Æ°¤¹¤ë¤È¡¢
-¥«¡¼¥Í¥ë¤Ï¤½¤ì¤é¤ÎÍ׵ᥤ¥Ù¥ó¥È¤ËÂФ¹¤ë
-½èÍý¤ò¹Ô¤¤¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¤½¤ì¤é¤Î¥¤¥Ù¥ó¥ÈȯÀ¸»þ¤Ë
-½èÍý¤ò¤µ¤»¤¿¤¤¾ì¹ç¤Ï¡¢Å¬Àڤʥ³¥Þ¥ó¥É¤Þ¤¿¤ÏÁȤ߹þ¤ß´Ø¿ô¤ò
-ÌÀ¼¨Åª¤ËÀßÄê¥Õ¥¡¥¤¥ë¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-.Pp
-.Nm
-¤Ï°Ê²¼¤Î¼Â¹Ô»þ¥ª¥×¥·¥ç¥ó¤òÍý²ò¤·¤Þ¤¹¡£
-.Bl -tag -width -f_file
-.It Fl d
-¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£
-¥Ç¡¼¥â¥ó¥â¡¼¥É¤Ç¤Ï¤Ê¤¯¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤ÇÆ°ºî¤·¤Þ¤¹¡£
-.It Fl f Ar file
-¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë
-.Pa /etc/apmd.conf
-¤ÎÂå¤ê¤Ë»ÈÍѤ¹¤ë¡¢Ê̤ÎÀßÄê¥Õ¥¡¥¤¥ë
-.Ar file
-¤ò»ØÄꤷ¤Þ¤¹¡£
-.It Fl v
-¾éĹ¥â¡¼¥É¤ÇÆ°ºî¤·¤Þ¤¹¡£
-.El
-.Pp
-.Nm
-¤Ïµ¯Æ°»þ¤ËÀßÄê¥Õ¥¡¥¤¥ë
-.Po
-¥Ç¥Õ¥©¥ë¥È¤Ï
-.Pa /etc/apmd.conf
-.Pc
-¤òÆɤ߹þ¤ß¡¢
-´Æ»ë¤¹¤Ù¤­¥¤¥Ù¥ó¥È¤ò APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ØÄÌÃΤ·¤Þ¤¹¡£
-½ªÎ»»þ¤Ë¤Ï APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¥¤¥Ù¥ó¥È¤Î´Æ»ë¤ò¼«Æ°Åª¤Ë²ò½ü¤·¤Þ¤¹¡£
-.Pp
-.Nm
-¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë SIGHUP ¤ò¼õ¿®¤¹¤ë¤È¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ßľ¤·¤Æ¡¢
-ÀßÄê¤ÎÊѹ¹ÆâÍƤò APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ËÄÌÃΤ·¤Þ¤¹¡£
-.Pp
-.Nm
-¤Ï¡¢¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë
-.Pa /dev/apmctl
-¤ò·Ðͳ¤·¤Æ¡¢¥¤¥Ù¥ó¥È¤Î¼õ¤±¼è¤ê¤ä APM ¥·¥¹¥Æ¥àÀ©¸æÍѤÎ
-.Xr ioctl 2
-Í×µá¤òȯ¹Ô¤·¤Þ¤¹¡£¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤ÏÇÓ¾À©¸æ¤µ¤ì¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤ë¤¿¤á¡¢
-.Nm
-¥×¥í¥»¥¹¤ÏƱ»þ¤Ë 1 ¤Ä¤Î¤ßµ¯Æ°²Äǽ¤Ç¤¹¡£
-.Pp
-.Nm
-¤¬ APM ¥¤¥Ù¥ó¥È¤ò¼õ¤±¼è¤ë¤È¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿
-¥¤¥Ù¥ó¥È¤ËÂбþ¤¹¤ë¥³¥Þ¥ó¥É¥ê¥¹¥È¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë
-»Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¡¢ºÆ¤Ó APM ¥¤¥Ù¥ó¥È¤ÎÂÔ¤Á¾õÂ֤ˤʤê¤Þ¤¹¡£
-À¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢
-»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¤ò 1 ¤Ä¤º¤ÄÎóµó¤µ¤ì¤¿½çÈ֤˼¹Ԥ·¤Þ¤¹¡£
-.Pp
-.Nm
-¤¬ SUSPEND/STANDBY Í×µá¤ËÂФ¹¤ë¥³¥Þ¥ó¥É¥ê¥¹¥È¤ò½èÍý¤·¤Æ¤¤¤ë´Ö¡¢
-¥«¡¼¥Í¥ëÆâ¤Î APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢APM BIOS ¤ËÂФ·¤Æ
-ËèÉà 1 ²ó°Ê¾åÄÌÃΤòȯ¹Ô¤·Â³¤±¤Þ¤¹¡£
-¤³¤ì¤Ë¤è¤Ã¤Æ BIOS ¤Ï¡¢¥³¥Þ¥ó¥É½èÍýÃæ¤Ç¤¢¤êÍ׵᤬
-¤Þ¤À´°·ë¤·¤Æ¤¤¤Ê¤¤¤³¤È¤òǧ¼±¤·¤Þ¤¹¡£
-.Pp
-.Nm
-¥Ç¡¼¥â¥ó¤Ï¥Õ¥¡¥¤¥ë
-.Pa /var/run/apmd.pid
-¤òºîÀ®¤·¡¢¥×¥í¥»¥¹ ID ¤òµ­Ï¿¤·¤Þ¤¹¡£¤³¤ì¤Ï
-.Nm
-¤ò kill ¤ä¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤Þ¤»¤ë¤¿¤á¤Ë»È¤¨¤Þ¤¹¡£
-.Sh ÀßÄê¥Õ¥¡¥¤¥ë
-.Nm
-¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Î¹½Â¤¤ÏÈó¾ï¤Ë¥·¥ó¥×¥ë¤Ç¤¹¡£Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-.Pp
-.Bd -literal
-apm_event SUSPENDREQ {
- exec "sync && sync && sync";
- exec "sleep 1";
- exec "zzz";
-}
-.Ed
-.Pp
-¤³¤ÎÎã¤Ç¤Ï¡¢APM ¥¤¥Ù¥ó¥È
-.Ql SUSPENDREQ
-(¥Ç¥£¥¹¥×¥ì¥¤¤òÊĤ¸¤¿»þ¤Ê¤É¤ËȯÀ¸¤·¤Þ¤¹) ¤ò
-.Nm
-¤¬¼õ¤±¼è¤ë¤È¡¢
-.Ql sync
-¥³¥Þ¥ó¥É¤ò 3 ²ó¼Â¹Ô¤·¡¢¾¯¤·ÂԤ俤¢¤È¤Ë
-.Nm zzz ( Ns Nm apm Fl z )
-¤ò¼Â¹Ô¤·¤Æ¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤µ¤»¤Þ¤¹¡£
-.Pp
-.Bl -bullet
-.It
-apm_event ¥­¡¼¥ï¡¼¥É
-.Bd -ragged -offset indent
-.Ql apm_event
-¤Ï¥­¡¼¥ï¡¼¥É¤Ç¤¢¤ê¡¢¥¤¥Ù¥ó¥È¤´¤È¤ÎÀßÄê¤Î³«»Ï¤ò»Ø¼¨¤·¤Þ¤¹¡£
-.Ed
-.It
-APM ¥¤¥Ù¥ó¥È
-.Bd -ragged -offset indent
-Ê£¿ô¤Î¥¤¥Ù¥ó¥È¤ËÂФ·¤ÆƱ¤¸½èÍý¤ò¼Â¹Ô¤·¤¿¤¤¾ì¹ç¤Ï¡¢¤½¤ì¤é¤Î¥¤¥Ù¥ó¥È̾¤ò
-¥³¥ó¥Þ¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£Í­¸ú¤Ê¥¤¥Ù¥ó¥È̾¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£
-.Bl -item
-.It
--
-.Nm
-¤¬µ¯Æ°¤µ¤ì¤Æ¤¤¤ë¤È¥«¡¼¥Í¥ë¤Ç¤Î½èÍý¤ò¹Ô¤ï¤Ê¤¯¤Ê¤ë¥¤¥Ù¥ó¥È:
-.Pp
-.Bl -tag -width USERSUSPENDREQ -compact -offset indent
-.It STANDBYREQ
-.It USERSTANDBYREQ
-.It SUSPENDREQ
-¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ë sync ¤ò´Þ¤á¤ë¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹
-.It USERSUSPENDREQ
-¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ë sync ¤ò´Þ¤á¤ë¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹
-.It BATTERYLOW
-¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ï zzz ¤Î¤ß¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹
-.El
-.It
-- ¥«¡¼¥Í¥ë¤Î½èÍý½ªÎ»¸å¤Ë
-.Nm
-¤ØÄÌÃΤµ¤ì¤ë¥¤¥Ù¥ó¥È:
-.Pp
-.Bl -tag -hang -width USERSUSPENDREQ -compact -offset indent
-.It NORMRESUME
-.It CRITRESUME
-.It STANDBYRESUME
-.It POWERSTATECHANGE
-.It UPDATETIME
-.It CAPABILITIESCHANGE
-.El
-.Pp
-¾åµ­°Ê³°¤Î¥¤¥Ù¥ó¥È¤Ï
-.Nm
-¤ØÄÌÃΤµ¤ì¤Þ¤»¤ó¡£
-.El
-.Ed
-.Bl -bullet
-.It
-¥³¥Þ¥ó¥É¥é¥¤¥óʸˡ
-.Bd -ragged -offset indent
-Á°½Ò¤ÎÎã¤Ç¤Ï¡¢
-.Ql exec
-¤«¤é»Ï¤Þ¤ë 3 ¹Ô¤Ï¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥³¥Þ¥ó¥É¤Ç¤¹¡£
-¤½¤ì¤¾¤ì¤Î¹Ô¤Ï¥»¥ß¥³¥í¥ó¤Ç½ªÎ»¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
-¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ï
-.Ql {
-¤È
-.Ql }
-¤Ç°Ï¤ß¤Þ¤¹¡£
-.Nm
-¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¤Ç°Ï¤Þ¤ì¤¿¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤Ë
-.Xr system 3
-¤ÈƱÍͤË
-.Pa /bin/sh
-¤ò»ÈÍѤ·¤Þ¤¹¡£³Æ¥³¥Þ¥ó¥É¤Ï¥³¥Þ¥ó¥É¥ê¥¹¥È¤ÎºÇ¸å¤ËÅþ㤹¤ë¤« 0 °Ê³°¤Î
-½ªÎ»¥³¡¼¥É¤Ç½ª¤ï¤ë¤Þ¤Ç½çÈ֤˼¹Ԥµ¤ì¤Þ¤¹¡£
-.Nm
-¤Ï¡¢¼ºÇÔ¤·¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥³¡¼¥É¤ò¡¢
-.Xr syslog 3
-·Ðͳ¤ÇÊó¹ð¤·¤Þ¤¹¡£
-²Ã¤¨¤Æ APM BIOS ¤«¤é¤ÎÍ׵ᥤ¥Ù¥ó¥È¤ò¼è¤ê¾Ã¤·¤Þ¤¹¡£
-.Ed
-.It
-ÁȤ߹þ¤ß´Ø¿ô
-.Bd -ragged -offset indent
-¥³¥Þ¥ó¥É¹Ô¤ÎÂå¤ê¤Ë
-.Nm
-¤ÎÁȤ߹þ¤ß´Ø¿ô¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ÁȤ߹þ¤ß´Ø¿ô¤Ï¥³¥Þ¥ó¥É¹Ô¤ÈƱÍͤË
-¥»¥ß¥³¥í¥ó¤Ç½ªÎ»¤·¤Þ¤¹¡£¼¡¤ÎÁȤ߹þ¤ß´Ø¿ô¤¬¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-.Bl -item
-.It
-- reject:
-.Bd -ragged -offset indent
-APM BIOS ¤«¤é¤ÎľÁ°¤ÎÍ×µá¤òµñÈݤ·¤Þ¤¹¡£¥Ç¥£¥¹¥×¥ì¥¤¤òÊĤ¸¤¿»þ¤ËȯÀ¸¤¹
-¤ë SUSPEND Í×µá¤òµñÈݤ·¤Æ¡¢Âå¤ê¤Ë STANDBY ¾õÂ֤ˤ·¤¿¤¤¾ì¹ç¤Ê¤É¤Ë»ÈÍѤ·
-¤Þ¤¹¡£
-.Ed
-.El
-.El
-.Ed
-.Sh »ÈÍÑÎã
-ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¤Ë¤Ï¡¢°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
-.Bd -literal
-apm_event SUSPENDREQ {
- exec "/etc/rc.suspend";
-}
-
-apm_event USERSUSPENDREQ {
- exec "sync && sync && sync";
- exec "sleep 1";
- exec "apm -z";
-}
-
-apm_event NORMRESUME, STANDBYRESUME {
- exec "/etc/rc.resume";
-}
-
-# resume event configuration for serial mouse users by
-# reinitializing a moused(8) connected to a serial port.
-#
-#apm_event NORMRESUME {
-# exec "kill -HUP `cat /var/run/moused.pid`";
-#}
-
-# suspend request event configuration for ATA HDD users:
-# execute standby instead of suspend.
-#
-#apm_event SUSPENDREQ {
-# reject;
-# exec "sync && sync && sync";
-# exec "sleep 1";
-# exec "apm -Z";
-#}
-.Ed
-.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë
-.Bl -tag -width /etc/apmd.conf -compact
-.It Pa /etc/apmd.conf
-.It Pa /dev/apmctl
-.It Pa /var/run/apmd.pid
-.El
-.Sh ´ØÏ¢¹àÌÜ
-.Xr apm 4 ,
-.Xr apm 8
-.Sh ºî¼Ô
-.An Mitsuru IWASAKI Aq iwasaki@FreeBSD.org
-.An KOIE Hidetaka Aq koie@suri.co.jp
-.Pp
-¤Þ¤¿¡¢
-.An Warner Losh Aq imp@FreeBSD.org ,
-.An Hiroshi Yamashita Aq bluemoon@msj.biglobe.ne.jp ,
-.An Yoshihiko SARUMARU Aq mistral@imasy.or.jp ,
-.An Norihiro Kumagai Aq kuma@nk.rim.or.jp ,
-.An NAKAGAWA Yoshihisa Aq nakagawa@jp.FreeBSD.org ,
-.An Nick Hilliard Aq nick@foobar.org
-¤Ë¤è¤ë¹×¸¥¤¬¤¢¤ê¤Þ¤·¤¿¡£
-.Sh Îò»Ë
-.Nm
-¥³¥Þ¥ó¥É¤Ï
-.Fx 3.3
-¤«¤éÅо줷¤Þ¤·¤¿¡£
diff --git a/ja_JP.eucJP/share/sgml/authors.ent b/ja_JP.eucJP/share/sgml/authors.ent
deleted file mode 100644
index bba6d5c9a9..0000000000
--- a/ja_JP.eucJP/share/sgml/authors.ent
+++ /dev/null
@@ -1,621 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Japanese Documentation Project
-
- Original revision: 1.155
-
- $FreeBSD: doc/ja_JP.eucJP/books/handbook/authors.ent,v 1.58 2001/04/08 15:33:37 hrs Exp $
-
- 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.
--->
-
-<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>">
-
-<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>">
-
-<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>">
-
-<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>">
-
-<!ENTITY a.adrian "Adrian Chadd <email>adrian@FreeBSD.org</email>">
-
-<!ENTITY a.akiyama "½©»³ ½ÓÊå <email>akiyama@FreeBSD.org</email>">
-
-<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>">
-
-<!ENTITY a.alex "Alexander Langer <email>alex@FreeBSD.org</email>">
-
-<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>">
-
-<!ENTITY a.amurai "¼°æ ½ß <email>amurai@FreeBSD.org</email>">
-
-<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>">
-
-<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>">
-
-<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>">
-
-<!ENTITY a.asami "Àõ¸« ¸­ <email>asami@FreeBSD.org</email>">
-
-<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>">
-
-<!ENTITY a.assar "Assar Westerlund <email>assar@FreeBSD.org</email>">
-
-<!ENTITY a.ats "Andreas Schulz <email>ats@FreeBSD.org</email>">
-
-<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>">
-
-<!ENTITY a.babkin "Sergey Babkin <email>babkin@FreeBSD.org</email>">
-
-<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>">
-
-<!ENTITY a.ben "Ben Smithurst <email>ben@FreeBSD.org</email>">
-
-<!ENTITY a.bean "Rebecca Visger <email>bean@FreeBSD.org</email>">
-
-<!ENTITY a.benno "Benno Rice <email>benno@FreeBSD.org</email>">
-
-<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>">
-
-<!ENTITY a.bmah "Bruce A. Mah <email>bmah@FreeBSD.org</email>">
-
-<!ENTITY a.bmilekic "Bosko Milekic <email>bmilekic@FreeBSD.org</email>">
-
-<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>">
-
-<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>">
-
-<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>">
-
-<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>">
-
-<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>">
-
-<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>">
-
-<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>">
-
-<!ENTITY a.chm "Christoph Herrmann <email>chm@FreeBSD.org</email>">
-
-<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>">
-
-<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>">
-
-<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>">
-
-<!ENTITY a.cjh "Junho CHOI <email>cjh@FreeBSD.org</email>">
-
-<!ENTITY a.clive "Clive Lin <email>clive@FreeBSD.org</email>">
-
-<!ENTITY a.cp "Chuck Paterson <email>cp@FreeBSD.org</email>">
-
-<!ENTITY a.cokane "Coleman Kane <email>cokane@FreeBSD.org</email>">
-
-<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>">
-
-<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>">
-
-<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>">
-
-<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>">
-
-<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>">
-
-<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>">
-
-<!ENTITY a.dannyboy "Daniel Harris <email>dannyboy@FreeBSD.org</email>">
-
-<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>">
-
-<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>">
-
-<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>">
-
-<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>">
-
-<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>">
-
-<!ENTITY a.dd "Dima Dorfman <email>dd@FreeBSD.org</email>">
-
-<!ENTITY a.dec "David E. Cross <email>dec@FreeBSD.org</email>">
-
-<!ENTITY a.demon "Dmitry Sivachenko <email>demon@FreeBSD.org</email>">
-
-<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>">
-
-<!ENTITY a.des "Dag-Erling C. Sm&oslash;rgrav <email>des@FreeBSD.org</email>">
-
-<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>">
-
-<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>">
-
-<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>">
-
-<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>">
-
-<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>">
-
-<!ENTITY a.dinoex "Dirk Meyer <email>dinoex@FreeBSD.org</email>">
-
-<!ENTITY a.dirk "Dirk Fr&ouml;mberg <email>dirk@FreeBSD.org</email>">
-
-<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>">
-
-<!ENTITY a.dmlb "Duncan Barclay <email>dmlb@FreeBSD.org</email>">
-
-<!ENTITY a.dougb "Doug Barton <email>DougB@FreeBSD.org</email>">
-
-<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>">
-
-<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>">
-
-<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>">
-
-<!ENTITY a.dwmalone "David Malone <email>dwmalone@FreeBSD.org</email>">
-
-<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>">
-
-<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>">
-
-<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>">
-
-<!ENTITY a.eric "Eric Melville <email>eric@FreeBSD.org</email>">
-
-<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>">
-
-<!ENTITY a.faq "FAQ ÊݼéôÅö¼Ô <email>faq@FreeBSD.org</email>">
-
-<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>">
-
-<!ENTITY a.flathill "Ê¿²¬ À¬°ìϯ <email>flathill@FreeBSD.org</email>">
-
-<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>">
-
-<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>">
-
-<!ENTITY a.furuta "¸ÅÅÄ ÆØ <email>furuta@FreeBSD.org</email>">
-
-<!ENTITY a.gad "Garance A Drosehn <email>gad@FreeBSD.org</email>">
-
-<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>">
-
-<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>">
-
-<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>">
-
-<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>">
-
-<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>">
-
-<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>">
-
-<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>">
-
-<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>">
-
-<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>">
-
-<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>">
-
-<!ENTITY a.greid "George C. A. Reid <email>greid@FreeBSD.org</email>">
-
-<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>">
-
-<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>">
-
-<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>">
-
-<!ENTITY a.gshapiro "Gregory Neil Shapiro <email>gshapiro@FreeBSD.org</email>">
-
-<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>">
-
-<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>">
-
-<!ENTITY a.hanai "²Ö°æ ¹ÀÇ· <email>hanai@FreeBSD.org</email>">
-
-<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>">
-
-<!ENTITY a.hrs "º´Æ£ ¹­À¸ <email>hrs@FreeBSD.org</email>">
-
-<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>">
-
-<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>">
-
-<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>">
-
-<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>">
-
-<!ENTITY a.horikawa "ËÙÀî ÏÂͺ <email>horikawa@FreeBSD.org</email>">
-
-<!ENTITY a.hosokawa "ºÙÀî ã¸Ê <email>hosokawa@FreeBSD.org</email>">
-
-<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>">
-
-<!ENTITY a.iedowse "Ian Dowse <email>iedowse@FreeBSD.org</email>">
-
-<!ENTITY a.ijliao "Ying-Chieh Liao <email>ijliao@FreeBSD.org</email>">
-
-<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>">
-
-<!ENTITY a.imura "R. Imura <email>imura@FreeBSD.org</email>">
-
-<!ENTITY a.issei "ÎëÌÚ °ìÀ¸ <email>issei@FreeBSD.org</email>">
-
-<!ENTITY a.itojun "ÇëÌî (itojun) ½ã°ìϺ <email>itojun@itojun.org</email>">
-
-<!ENTITY a.iwasaki "´äºê Ëþ <email>iwasaki@FreeBSD.org</email>">
-
-<!ENTITY a.jake "Jake Burkholder <email>jake@FreeBSD.org</email>">
-
-<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>">
-
-<!ENTITY a.jayanth "Jayanth Vijayaraghavan <email>jayanth@FreeBSD.org</email>">
-
-<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>">
-
-<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>">
-
-<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>">
-
-<!ENTITY a.jeh "James Housley <email>jeh@FreeBSD.org</email>">
-
-<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>">
-
-<!ENTITY a.jesper "Jesper Skriver <email>jesper@FreeBSD.org</email>">
-
-<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>">
-
-<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>">
-
-<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>">
-
-<!ENTITY a.jgreco "Joe Greco <email>jgreco@FreeBSD.org</email>">
-
-<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>">
-
-<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>">
-
-<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>">
-
-<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>">
-
-<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>">
-
-<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>">
-
-<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>">
-
-<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>">
-
-<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>">
-
-<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>">
-
-<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>">
-
-<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>">
-
-<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>">
-
-<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>">
-
-<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>">
-
-<!ENTITY a.keichii "Michael C. Wu <email>keichii@FreeBSD.org</email>">
-
-<!ENTITY a.joerg "J&ouml;rg Wunsch <email>joerg@FreeBSD.org</email>">
-
-<!ENTITY a.jon "Jonathan Chen <email>jon@FreeBSD.org</email>">
-
-<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>">
-
-<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>">
-
-<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>">
-
-<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>">
-
-<!ENTITY a.jwd "John W. DeBoskey <email>jwd@FreeBSD.org</email>">
-
-<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>">
-
-<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>">
-
-<!ENTITY a.kato "²ÃÆ£ ¾æŵ <email>kato@FreeBSD.org</email>">
-
-<!ENTITY a.kbyanc "Kelly Yancey <email>kbyanc@FreeBSD.org</email>">
-
-<!ENTITY a.keith "Jing-Tang Keith Jang <email>keith@FreeBSD.org</email>">
-
-<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>">
-
-<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>">
-
-<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>">
-
-<!ENTITY a.kiri "¶Í»³ ÏÂɧ <email>kiri@FreeBSD.org</email>">
-
-<!ENTITY a.kjc "Ĺ ·òÆóϯ <email>kjc@FreeBSD.org</email>">
-
-<!ENTITY a.knu "Éð¼Ô ¾½µª <email>knu@FreeBSD.org</email>">
-
-<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>">
-
-<!ENTITY a.kuriyama "·ª»³ ½ß <email>kuriyama@FreeBSD.org</email>">
-
-<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>">
-
-<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>">
-
-<!ENTITY a.lioux "M&aacute;rio S&eacute;rgio Fujikawa Ferreira<email>lioux@FreeBSD.org</email>">
-
-<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>">
-
-<!ENTITY a.lkoeller "Lars Koeller <email>lkoeller@FreeBSD.org</email>">
-
-<!ENTITY a.luigi "Luigi Rizzo <email>luigi@FreeBSD.org</email>">
-
-<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>">
-
-<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>">
-
-<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>">
-
-<!ENTITY a.marko "Mark Ovens <email>marko@FreeBSD.org</email>">
-
-<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>">
-
-<!ENTITY a.max "Ã溬 ²íʸ <email>max@FreeBSD.org</email>">
-
-<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>">
-
-<!ENTITY a.mb "Maxim Bolotin <email>mb@FreeBSD.org</email>">
-
-<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>">
-
-<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>">
-
-<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>">
-
-<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>">
-
-<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>">
-
-<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>">
-
-<!ENTITY a.mi "Mikhail Teterin <email>mi@FreeBSD.org</email>">
-
-<!ENTITY a.mikeh "Mike Heffner <email>mikeh@FreeBSD.org</email>">
-
-<!ENTITY a.mita "»°ÅÄ µÈϺ <email>mita@FreeBSD.org</email>">
-
-<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>">
-
-<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>">
-
-<!ENTITY a.motoyuki "º£Ìî ¸µÇ· <email>motoyuki@FreeBSD.org</email>">
-
-<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>">
-
-<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>">
-
-<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>">
-
-<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>">
-
-<!ENTITY a.murray "Murray Stokely <email>murray@FreeBSD.org</email>">
-
-<!ENTITY a.nakai "Ãæ°æ ¹¬Çî <email>nakai@FreeBSD.org</email>">
-
-<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>">
-
-<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>">
-
-<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>">
-
-<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>">
-
-<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>">
-
-<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>">
-
-<!ENTITY a.non "¸÷±Ê Ë¡ÌÀ <email>non@FreeBSD.org</email>">
-
-<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>">
-
-<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>">
-
-<!ENTITY a.nsouch "Nicolas Souchu <email>nsouch@FreeBSD.org</email>">
-
-<!ENTITY a.nyan "¹â¶¶ ²ÂÂç <email>nyan@FreeBSD.org</email>">
-
-<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>">
-
-<!ENTITY a.okazaki "²¬ºê ůϯ <email>okazaki@FreeBSD.org</email>">
-
-<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>">
-
-<!ENTITY a.olgeni "Jimmy Olgeni <email>olgeni@FreeBSD.org</email>">
-
-<!ENTITY a.onoe "Èø¾å ½ß <email>onoe@FreeBSD.org</email>">
-
-<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>">
-
-<!ENTITY a.orion "Orion Hodson <email>orion@FreeBSD.org</email>">
-
-<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>">
-
-<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>">
-
-<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>">
-
-<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>">
-
-<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>">
-
-<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>">
-
-<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>">
-
-<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>">
-
-<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>">
-
-<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>">
-
-<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>">
-
-<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>">
-
-<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>">
-
-<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>">
-
-<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>">
-
-<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>">
-
-<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>">
-
-<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>">
-
-<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>">
-
-<!ENTITY a.roam "Peter Pentchev <email>roam@FreeBSD.org</email>">
-
-<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>">
-
-<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>">
-
-<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>">
-
-<!ENTITY a.rv "Rajesh Vaidheeswarran <email>rv@FreeBSD.org</email>">
-
-<!ENTITY a.rvb "Robert V. Baron <email>rvb@FreeBSD.org</email>">
-
-<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>">
-
-<!ENTITY a.sada "º´ÅÄ ·û¼£ <email>sada@FreeBSD.org</email>">
-
-<!ENTITY a.sanpei "»°Ê¿ Á±Ïº <email>sanpei@FreeBSD.org</email>">
-
-<!ENTITY a.schweikh "Jens Schweikhardt <email>schweikh@FreeBSD.org</email>">
-
-<!ENTITY a.scottl "Scott Long <email>scottl@FreeBSD.org</email>">
-
-<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>">
-
-<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>">
-
-<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>">
-
-<!ENTITY a.semenu "Ustimenko Semen <email>semenu@FreeBSD.org</email>">
-
-<!ENTITY a.sf "FUJISHIMA Satsuki <email>sf@FreeBSD.org</email>">
-
-<!ENTITY a.shafeeq "Shafeeq Sinnamohideen <email>shafeeq@FreeBSD.org</email>">
-
-<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>">
-
-<!ENTITY a.shiba "Takeshi Shibagaki <email>shiba@FreeBSD.org</email>">
-
-<!ENTITY a.shige "Ê¡Åç ÌÐÇ· <email>shige@FreeBSD.org</email>">
-
-<!ENTITY a.shin "°æ¾å ÎÉ¿® <email>shin@FreeBSD.org</email>">
-
-<!ENTITY a.simokawa "²¼Àî ±ÑÉÒ <email>simokawa@FreeBSD.org</email>">
-
-<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>">
-
-<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>">
-
-<!ENTITY a.sobomax "Maxim Sobolev <email>sobomax@FreeBSD.org</email>">
-
-<!ENTITY a.sos "S&oslash;ren Schmidt <email>sos@FreeBSD.org</email>">
-
-<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>">
-
-<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>">
-
-<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>">
-
-<!ENTITY a.sumikawa "³ÑÀî ½¡¶á <email>sumikawa@FreeBSD.org</email>">
-
-<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>">
-
-<!ENTITY a.tanimura "ë¼ Àµ¹ä <email>tanimura@FreeBSD.org</email>">
-
-<!ENTITY a.taoka "ÅIJ¬ ÃÒ»Ö <email>taoka@FreeBSD.org</email>">
-
-<!ENTITY a.takawata "ÅÏÊÕ Âºµª <email>takawata@FreeBSD.org</email>">
-
-<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>">
-
-<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>">
-
-<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>">
-
-<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>">
-
-<!ENTITY a.tmm "Thomas M&ouml;stl <email>tmm@FreeBSD.org</email>">
-
-<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>">
-
-<!ENTITY a.tomsoft "Thomas-Henning von Kamptz <email>tomsoft@FreeBSD.org</email>">
-
-<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>">
-
-<!ENTITY a.toshi "¿·°æ Íøɧ <email>toshi@FreeBSD.org</email>">
-
-<!ENTITY a.trevor "Trevor Johnson <email>trevor@FreeBSD.org</email>">
-
-<!ENTITY a.truckman "Don &ldquo;Truck&rdquo; Lewis <email>truckman@FreeBSD.org</email>">
-
-<!ENTITY a.uch "UCHIYAMA Yasushi <email>uch@FreeBSD.org</email>">
-
-<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>">
-
-<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>">
-
-<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>">
-
-<!ENTITY a.ume "ÇßËÜ È¥ <email>ume@FreeBSD.org</email>">
-
-<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>">
-
-<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>">
-
-<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>">
-
-<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>">
-
-<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>">
-
-<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>">
-
-<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>">
-
-<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>">
-
-<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>">
-
-<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>">
-
-<!ENTITY a.wsanchez "Wilfredo S&aacute;nchez <email>wsanchez@FreeBSD.org</email>">
-
-<!ENTITY a.yar "Yar Tikhiy <email>yar@FreeBSD.org</email>">
-
-<!ENTITY a.yokota "²£ÅÄ ÏÂδ <email>yokota@FreeBSD.org</email>">
-
diff --git a/ja_JP.eucJP/share/sgml/jauthors.ent b/ja_JP.eucJP/share/sgml/jauthors.ent
deleted file mode 100644
index 143921ae08..0000000000
--- a/ja_JP.eucJP/share/sgml/jauthors.ent
+++ /dev/null
@@ -1,91 +0,0 @@
-<!--
- The FreeBSD Documentation Project
- The FreeBSD Japanese Documentation Project
-
- Original revision:
- $FreeBSD: doc/ja_JP.eucJP/books/handbook/jauthors.ent,v 1.7 2000/07/20 00:20:57 hrs Exp $
-
- Names and email address of Japanese local contributing authors and
- castle.jp.freebsd.org CVS committers.
- Entity names for committers on castle should be the same as their login
- names on castle.jp.FreeBSD.ORG.
-
- Use these entities when referencing people.
-
- Please keep this list in alphabetical order by entity names.
--->
-
-<!ENTITY a.jp.arimura "ͭ¼ ¸÷À² <email>arimura@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.candy "¿ÀÅÄ ÉÒ¹­ <email>candy@fct.kgc.co.jp</email>">
-
-<!ENTITY a.jp.condle "¿¹ ľǷ <email>mori@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.g92k0323 "¼íÌî ¹¨¼ù <email>g92k0323@cfi.waseda.ac.jp</email>">
-
-<!ENTITY a.jp.graphite "ÀÐËÏ µª¹§ <email>graphite@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.hino "ÆüÌî ¹À»Ö <email>hino@ccm.cl.nec.co.jp</email>">
-
-<!ENTITY a.jp.ikuo "ÃæÀî °êÉ× <email>ikuo@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.iwasaki "´äºê Ëþ <email>iwasaki@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.katsu "¾¡´ÖÅÄ ½ß <email>katsu@baum.kiyose.tokyo.jp</email>">
-
-<!ENTITY a.jp.kimura "ÌÚ¼ À®È¼ <email>kimura@netlab.is.tsukuba.ac.jp</email>">
-
-<!ENTITY a.jp.kiroh "¤Ï¤é¤À ¤­¤í¤¦ <email>kiroh@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.kmiyakoda "ÅÔÅÄ¡¡¹îϺ <email>kmiyakoda@ctn.co.jp</email>">
-
-<!ENTITY a.jp.masaki "¶ûÅÄ ¾»´õ <email>masaki@po.iijnet.or.jp</email>">
-
-<!ENTITY a.jp.mihoko "ÅÄÃæ ÈþÊæ»Ò <email>Mihoko_Tanaka@yokogawa.co.jp</email>">
-
-<!ENTITY a.jp.mita "»°ÅÄ µÈϺ <email>mita@jp.FreeBSD.ORG</email>">
-
-<!ENTITY a.jp.miyasita "µÜ²¼ ·òÊå <email>miyasita@hashilab.ee.ous.ac.jp</email>">
-
-<!--
-<!ENTITY a.jp.motoyuki "º£Ìî ¸µÇ· <email>motoyuki@jp.FreeBSD.org</email>">
-authors.sgml ¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¥³¥á¥ó¥È¥¢¥¦¥È
--->
-
-<!ENTITY a.jp.mrt "¤à¤é¤¿¤·¤å¤¦¤¤¤Á¤í¤¦ <email>mrt@mickey.ai.kyutech.ac.jp</email>">
-
-<!ENTITY a.jp.nakai "Ãæ°æ ¹¬Çî <email>nakai@mlab.t.u-tokyo.ac.jp</email>">
-
-<!ENTITY a.jp.nao "ÉÍÅÄ Ä¾¼ù <email>nao@tom-yam.or.jp</email>">
-
-<!ENTITY a.jp.saeki "º´Çì δ»Ê <email>saeki@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.shou "¹­À¥ ¾»°ì <email>shou@kt.rim.or.jp</email>">
-
-<!ENTITY a.jp.simokawa "²¼Àî ±ÑÉÒ <email>simokawa@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.sugimura "¿ù¼ µ®»Î <email>sugimura@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.tmaruya "´Ý»³ ¹ä»Ê <email>tmaruya@nnc.or.jp</email>">
-
-<!ENTITY a.jp.tomo "ÅÏÊÕ ÃÒͺ <email>tomo@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.ts "ÉÚÅÄ ½ÅÀ® <email>ts@icu.ac.jp</email>">
-
-<!ENTITY a.jp.y-koga "¤³¤¬¤è¤¦¤¤¤Á¤í¤¦ <email>y-koga@ccs.mt.nec.co.jp</email>">
-
-<!ENTITY a.jp.yasu "ÎëÌÚ ¹¯½¤ <email>yasu@hike.te.chiba-u.ac.jp</email>">
-
-<!ENTITY a.jp.yoshiaki "ÆâÀî ´î¾Ï <email>yoshiaki@kt.rim.or.jp</email>">
-
-<!ENTITY a.jp.yuki "Á°ÅÄ ¹¬ÈÏ <email>yuki@jp.FreeBSD.org</email>">
-
-<!--
- Names of FreeBSD mailing list in Japan. If we refer many mailing
- lists in Japan, create jmailing-lists.ent file and store them in
- it.
--->
-
-<!ENTITY a.jp.doc-jp "ÆüËܸì¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È <email>doc-jp@jp.FreeBSD.org</email>">
-
-<!ENTITY a.jp.users-jp "FreeBSD users-jp ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È <email>FreeBSD-users-jp@jp.FreeBSD.org</email>">
diff --git a/nl_NL.ISO8859-1/Makefile b/nl_NL.ISO8859-1/Makefile
deleted file mode 100644
index f729ceb982..0000000000
--- a/nl_NL.ISO8859-1/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# $FreeBSD$
-
-COMPAT_SYMLINK = nl
-
-DOC_PREFIX?= ${.CURDIR}/..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/nl_NL.ISO8859-1/share/sgml/bookinfo.ent b/nl_NL.ISO8859-1/share/sgml/bookinfo.ent
deleted file mode 100644
index 8355c00c2d..0000000000
--- a/nl_NL.ISO8859-1/share/sgml/bookinfo.ent
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
- Referenties naar andere bestanden kunnen opgenomen worden binnen
- een DocBook BookInfo element.
-
- Entiteitnamen nemen een vorm aan volgens "bookinfo.<element>",
- waarbij <element> de naam is van het buitenste element in de
- entiteit. Voorbeelden zijn "bookinfo.legalnotice", en
- "bookinfo.preface".
-
- $FreeBSD$
--->
-
-<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml">
diff --git a/nl_NL.ISO8859-1/share/sgml/catalog b/nl_NL.ISO8859-1/share/sgml/catalog
deleted file mode 100644
index 5ebe8768fc..0000000000
--- a/nl_NL.ISO8859-1/share/sgml/catalog
+++ /dev/null
@@ -1,9 +0,0 @@
- -- ...................................................................... --
- -- FreeBSD SGML Public Identifiers ...................................... --
-
- -- $FreeBSD: doc/share/sgml/catalog,v 1.9 2000/07/08 16:31:28 phantom Exp $
- --
-
-PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN"
- "freebsd.dsl"
-
diff --git a/zh/FAQ/FAQ.sgml b/zh/FAQ/FAQ.sgml
deleted file mode 100644
index 9bf088483a..0000000000
--- a/zh/FAQ/FAQ.sgml
+++ /dev/null
@@ -1,70 +0,0 @@
-<!-- $Id: FAQ.sgml,v 1.8 1999-11-12 08:34:11 vanilla Exp $ -->
-<!-- The FreeBSD Documentation Project -->
-<!-- Translate into Chinese by ijliao@dragon2.net -->
-<!-- English Version: 1.103 -->
-
-<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
-<!ENTITY % includes SYSTEM "includes.sgml"> %includes;
-<!ENTITY preface SYSTEM "preface.sgml">
-<!ENTITY install SYSTEM "install.sgml">
-<!ENTITY hardware SYSTEM "hardware.sgml">
-<!ENTITY troubleshoot SYSTEM "troubleshoot.sgml">
-<!ENTITY commercial SYSTEM "commercial.sgml">
-<!ENTITY applications SYSTEM "applications.sgml">
-<!ENTITY kernelconfig SYSTEM "kernelconfig.sgml">
-<!ENTITY admin SYSTEM "admin.sgml">
-<!ENTITY x SYSTEM "x.sgml">
-<!ENTITY network SYSTEM "network.sgml">
-<!ENTITY serial SYSTEM "serial.sgml">
-<!ENTITY misc SYSTEM "misc.sgml">
-<!ENTITY hackers SYSTEM "hackers.sgml">
-<!ENTITY acknowledgments SYSTEM "acknowledgments.sgml">
-]>
-
-<article>
-
- <title>FreeBSD 2.X ±`¨£°Ýµª¶°</title>
- <author>
- <name>FreeBSD ¤å¥ó­pµe</name>
- </author>
-
- <date>$Date: 1999-11-12 08:34:11 $</date>
-
- <abstract>
- ³o¥÷¤å¥ó¬O FreeBSD 2.X ªº±`¨£°Ýµª¶°¡C°£«D¦³¯S§O¥[µù¡A§_«h³o¨Ç±ø¥Ø³£¾A
- ¥Î©ó FreeBSD 2.0.5 ¤Î¥H«áªºª©¥»¡C¦pªG±ø¥Ø¤º®e¤¤¦³ &lt;XXX&gt; «h¬O©|¥¼
- §¹¦¨ªº³¡¥÷¡C¦pªG±z¹ï¨ó§U¥»­pµeªº¶i¦æ¦³¿³½ìªº¸Ü¡A½Ð±H¤@«Ê¹q¤l¶l¥ó¨ì
- FreeBSD ¤å¥ó­pµeªº mailing list <htmlurl
- url="mailto:freebsd-doc@FreeBSD.org" name="<freebsd-doc@FreeBSD.org>">¡C
- ±z¥i¥H±q <url url="http://www.FreeBSD.org/"
- name="FreeBSD World Wide Web server"> ®³¨ì³o¥÷¤å¥óªº³Ì·sª©¥»¡C±z¤]¥i¥H
- §Q¥Î HTTP ¨Ó¤U¸ü¥»¤å¥óªº <url url="FAQ.latin1" name="¯Â¤å¦rª©">¡A
- <url url="FAQ.ps" name="postscript ª©">¡A
- <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/FAQ.pdf" name="PDF ª©">¡A
- ©Î¬O <url url="FAQ-html.tar.gz" name="HTML ª©">¡A©Î¬O¸g¥Ñ
- <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/docs" name="FreeBSD FTP ¯¸">
- ¨Ó¤U¸ü gzip'd ªºª©¥»¡C±z©Î³\¤]·Q
- <url url="http://www.FreeBSD.org/search/search.html"
- name="¦b±`¨£°Ýµª¶°¤¤·j´M¸ê®Æ">¡C
-
- </abstract>
-
- <toc>
-
-&preface;
-&install;
-&hardware;
-&troubleshoot;
-&commercial;
-&applications;
-&kernelconfig;
-&admin;
-&x;
-&network;
-&serial;
-&misc;
-&hackers;
-&acknowledgments;
-
-</article>
-